<?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>188303</bug_id>
          
          <creation_ts>2018-08-03 05:17:00 -0700</creation_ts>
          <short_desc>Return extracted key ids as an optional</short_desc>
          <delta_ts>2018-08-06 09:48:30 -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>Media</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>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Charlie Turner">cturner</reporter>
          <assigned_to name="Charlie Turner">cturner</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>darin</cc>
    
    <cc>jer.noble</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1447586</commentid>
    <comment_count>0</comment_count>
    <who name="Charlie Turner">cturner</who>
    <bug_when>2018-08-03 05:17:00 -0700</bug_when>
    <thetext>Return extracted key ids as an optional</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1447587</commentid>
    <comment_count>1</comment_count>
      <attachid>346473</attachid>
    <who name="Charlie Turner">cturner</who>
    <bug_when>2018-08-03 05:28:57 -0700</bug_when>
    <thetext>Created attachment 346473
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1447590</commentid>
    <comment_count>2</comment_count>
      <attachid>346475</attachid>
    <who name="Charlie Turner">cturner</who>
    <bug_when>2018-08-03 06:14:24 -0700</bug_when>
    <thetext>Created attachment 346475
Patch

Fix build error reported from iOS bot</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1447612</commentid>
    <comment_count>3</comment_count>
      <attachid>346482</attachid>
    <who name="Charlie Turner">cturner</who>
    <bug_when>2018-08-03 07:50:52 -0700</bug_when>
    <thetext>Created attachment 346482
Patch

Fix more build errors reported from iOS bot</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1447623</commentid>
    <comment_count>4</comment_count>
      <attachid>346486</attachid>
    <who name="Charlie Turner">cturner</who>
    <bug_when>2018-08-03 08:16:02 -0700</bug_when>
    <thetext>Created attachment 346486
Patch

Fix more iOS build errors, even though keyIDs() never returns a nullopt, I am still performing extra checking for the absence of a value in case FPS at some point starts handling init data types that do not guarantee key IDs</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1447629</commentid>
    <comment_count>5</comment_count>
      <attachid>346488</attachid>
    <who name="Charlie Turner">cturner</who>
    <bug_when>2018-08-03 08:33:13 -0700</bug_when>
    <thetext>Created attachment 346488
Patch

It was not necessary to percolate the sentinel complication throughout the FairPlayStreaming module</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1447641</commentid>
    <comment_count>6</comment_count>
      <attachid>346490</attachid>
    <who name="Charlie Turner">cturner</who>
    <bug_when>2018-08-03 08:53:22 -0700</bug_when>
    <thetext>Created attachment 346490
Patch

More iOS build errors</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1447769</commentid>
    <comment_count>7</comment_count>
      <attachid>346490</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2018-08-03 13:49:30 -0700</bug_when>
    <thetext>Comment on attachment 346490
Patch

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

&gt; Source/WebCore/testing/MockCDMFactory.cpp:286
&gt; +    if (!keyIDs || (keyIDs &amp;&amp; keyIDs.value().isEmpty())) {

No need to use &amp;&amp; here.

    if (!keyIDs || keyIDs.value().isEmpty()) {</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1448100</commentid>
    <comment_count>8</comment_count>
      <attachid>346624</attachid>
    <who name="Charlie Turner">cturner</who>
    <bug_when>2018-08-06 04:40:52 -0700</bug_when>
    <thetext>Created attachment 346624
Patch

Move the key ids rather than attempting a copy, which fails with the Vector of Refs, added logical cleanup suggested by Darin.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1448144</commentid>
    <comment_count>9</comment_count>
      <attachid>346624</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2018-08-06 09:47:28 -0700</bug_when>
    <thetext>Comment on attachment 346624
Patch

Clearing flags on attachment: 346624

Committed r234603: &lt;https://trac.webkit.org/changeset/234603&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1448145</commentid>
    <comment_count>10</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2018-08-06 09:47:30 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1448146</commentid>
    <comment_count>11</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2018-08-06 09:48:30 -0700</bug_when>
    <thetext>&lt;rdar://problem/42971214&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>346473</attachid>
            <date>2018-08-03 05:28:57 -0700</date>
            <delta_ts>2018-08-03 06:14:21 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-188303-20180803132856.patch</filename>
            <type>text/plain</type>
            <size>12069</size>
            <attacher name="Charlie Turner">cturner</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjM0NDk3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNDE5ZTMzNDMxNDQyNjI4
NTAzNjFlZGUyYjkzNTFkZjkyOTlhNmZmYy4uNDI2YmIzNWYxZTllOTgyMGM3Njg1NzJiYTEzODMz
MTgzNTZmM2ExZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ1IEBACisyMDE4LTA4LTAzICBDaGFy
bGllIFR1cm5lciAgPGN0dXJuZXJAaWdhbGlhLmNvbT4KKworICAgICAgICBSZXR1cm4gZXh0cmFj
dGVkIGtleSBpZHMgYXMgYW4gb3B0aW9uYWwKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTE4ODMwMworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIEFuIGVtcHR5IGxpc3Qgb2YgZXh0cmFjdGVkIGtleSBpZHMgd2Fz
IGJlaW5nIGNvbnNpZGVyZWQgYSBmYWlsdXJlCisgICAgICAgIGNhc2UgYmVmb3JlIHRoaXMgcGF0
Y2guIEluIHRoZSBQU1NIIGJveGVzIGZyb20gdGhlIENFTkMgc3RhbmRhcmQsCisgICAgICAgIGl0
J3Mgbm90IHVuY29tbW9uIGZvciB0aGUgYm94IHRvIGJlIHZlcnNpb24gMCwgbWVhbmluZyBpdCBo
YXMgbm8KKyAgICAgICAgZW1iZWRkZWQga2V5IGlkcywgc28gdGhlIGNhc2Ugd2hlbiB0aGVyZSdz
IGFuIGVtcHR5IGxpc3Qgc2hvdWxkCisgICAgICAgIG5vdCBiZSB0cmVhdGVkIGFzIGFuIGVycm9y
LiBHaXZlbiB0aGlzLCB0aGUgaW50ZXJmYWNlIHNob3VsZCBiZQorICAgICAgICBtb3JlIGdlbmVy
YWwgYW5kIGFsbG93IGZvciBhIHNlbnRpbmVsIHZhbHVlIGluZGljYXRpbmcgYSBwYXJzaW5nCisg
ICAgICAgIGVycm9yIHJhdGhlciB0aGFuIGFuIGFic2VuY2Ugb2Yga2V5IGlkcy4KKworICAgICAg
ICBDb3ZlcmVkIGJ5IGV4aXN0aW5nIHRlc3RzLgorCisgICAgICAgICogTW9kdWxlcy9lbmNyeXB0
ZWRtZWRpYS9Jbml0RGF0YVJlZ2lzdHJ5LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmV4dHJhY3RL
ZXlJRHNLZXlpZHMpOiBDaGFuZ2UgcmV0dXJuIHR5cGUgdG8gYmUgd3JhcHBlZAorICAgICAgICBp
biBhbiBvcHRpb25hbCwgYW5kIG1ha2UgcGFyc2luZyBlcnJvcnMgcmV0dXJuIGEgbnVsbG9wdCBy
YXRoZXIKKyAgICAgICAgdGhhbiBhbiBlbXB0eSB2ZWN0b3IuCisgICAgICAgIChXZWJDb3JlOjpz
YW5pdGl6ZUtleWlkcyk6IFVzZSB0aGUgbmV3IG9wdGlvbmFsIGludGVyZmFjZSwgcmV0dXJuCisg
ICAgICAgIGEgbnVsbCBSZWZQdHIgaW4gdGhlIGNhc2Ugb2YgYSBwYXJzaW5nIGVycm9yLCB0aGlz
IG1ldGhvZCBtYXkgbm93CisgICAgICAgIHJldHVybiBhbiBlbXB0eSB2ZWN0b3IuCisgICAgICAg
IChXZWJDb3JlOjpleHRyYWN0S2V5SURzQ2VuYyk6IE5vdCBpbXBsZW1lbnRlZCwgc28gcmV0dXJu
IGFuIGVycm9yCisgICAgICAgIHZhbHVlIHJhdGhlciB0aGFuIGFuIGVtcHR5IHZlY3Rvci4KKyAg
ICAgICAgKFdlYkNvcmU6OmV4dHJhY3RLZXlJRHNXZWJNKTogRGl0dG8uCisgICAgICAgIChXZWJD
b3JlOjpJbml0RGF0YVJlZ2lzdHJ5OjpleHRyYWN0S2V5SURzKTogRGl0dG8uCisgICAgICAgICog
TW9kdWxlcy9lbmNyeXB0ZWRtZWRpYS9Jbml0RGF0YVJlZ2lzdHJ5Lmg6IFVwZGF0ZSB0aGUgaW50
ZXJmYWNlCisgICAgICAgIHRvIHVzZSBhbiBvcHRpb25hbCByZXR1cm4gdHlwZS4KKyAgICAgICAg
KiBwbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vQ0RNRmFpclBsYXlTdHJlYW1pbmcuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6Q0RNUHJpdmF0ZUZhaXJQbGF5U3RyZWFtaW5nOjpleHRyYWN0
S2V5SURzU2luZik6IFVwZGF0ZQorICAgICAgICB0byB1c2UgdGhlIG5ldyBpbnRlcmZhY2UuCisg
ICAgICAgIChXZWJDb3JlOjpDRE1Qcml2YXRlRmFpclBsYXlTdHJlYW1pbmc6OmV4dHJhY3RLZXlJ
RHNTa2QpOiBEaXR0by4KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24v
Q0RNRmFpclBsYXlTdHJlYW1pbmcuaDogRGl0dG8uCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhp
Y3MvYXZmb3VuZGF0aW9uL29iamMvQ0RNSW5zdGFuY2VGYWlyUGxheVN0cmVhbWluZ0FWRk9iakMu
bW06CisgICAgICAgIChXZWJDb3JlOjpDRE1JbnN0YW5jZUZhaXJQbGF5U3RyZWFtaW5nQVZGT2Jq
Qzo6a2V5SURzKTogRGl0dG8uCisgICAgICAgICogdGVzdGluZy9Nb2NrQ0RNRmFjdG9yeS5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpNb2NrQ0RNSW5zdGFuY2U6OnJlcXVlc3RMaWNlbnNlKTogT25s
eSByZXR1cm4gYW4gZXJyb3IKKyAgICAgICAgaWYgdGhlcmUgcmVhbGx5IHdhcyBhIHBhcnNpbmcg
ZXJyb3IsIHJhdGhlciB0aGFuIHRoZSBjYXNlIG9mIHRoZXJlCisgICAgICAgIGJlaW5nIHplcm8g
a2V5IGlkcyBpbiB0aGUgaW5pdCBkYXRhIHBheWxvYWQuCisKIDIwMTgtMDgtMDIgIENoYXJsaWUg
VHVybmVyICA8Y3R1cm5lckBpZ2FsaWEuY29tPgogCiAgICAgICAgIEhhbmRsZSB6ZXJvLXNpemVk
IElTT01QNCBib3hlcyBhcHByb3ByaWF0ZWx5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL2VuY3J5cHRlZG1lZGlhL0luaXREYXRhUmVnaXN0cnkuY3BwIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9lbmNyeXB0ZWRtZWRpYS9Jbml0RGF0YVJlZ2lzdHJ5LmNwcAppbmRleCBjMjli
MDM4YWQxZDI5MjVjNDM4NDcyZjNhZGYwOGY0YTU0YjBhM2ExLi4xZDY3ZWQ2NmJjMzJhNGUwNmIz
YzY3OTU1YjU0YmJkY2M0Njc5NWQ4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L2VuY3J5cHRlZG1lZGlhL0luaXREYXRhUmVnaXN0cnkuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvZW5jcnlwdGVkbWVkaWEvSW5pdERhdGFSZWdpc3RyeS5jcHAKQEAgLTM3LDI1ICsz
NywyNSBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLXN0YXRpYyBWZWN0b3I8UmVmPFNoYXJl
ZEJ1ZmZlcj4+IGV4dHJhY3RLZXlJRHNLZXlpZHMoY29uc3QgU2hhcmVkQnVmZmVyJiBidWZmZXIp
CitzdGF0aWMgc3RkOjpvcHRpb25hbDxWZWN0b3I8UmVmPFNoYXJlZEJ1ZmZlcj4+PiBleHRyYWN0
S2V5SURzS2V5aWRzKGNvbnN0IFNoYXJlZEJ1ZmZlciYgYnVmZmVyKQogewogICAgIC8vIDEuIEZv
cm1hdAogICAgIC8vIGh0dHBzOi8vdzNjLmdpdGh1Yi5pby9lbmNyeXB0ZWQtbWVkaWEvZm9ybWF0
LXJlZ2lzdHJ5L2luaXRkYXRhL2tleWlkcy5odG1sI2Zvcm1hdAogICAgIGlmIChidWZmZXIuc2l6
ZSgpID4gc3RkOjpudW1lcmljX2xpbWl0czx1bnNpZ25lZD46Om1heCgpKQotICAgICAgICByZXR1
cm4geyB9OworICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OwogICAgIFN0cmluZyBqc29uIHsg
YnVmZmVyLmRhdGEoKSwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KGJ1ZmZlci5zaXplKCkpIH07CiAK
ICAgICBSZWZQdHI8SlNPTjo6VmFsdWU+IHZhbHVlOwogICAgIGlmICghSlNPTjo6VmFsdWU6OnBh
cnNlSlNPTihqc29uLCB2YWx1ZSkpCi0gICAgICAgIHJldHVybiB7IH07CisgICAgICAgIHJldHVy
biBzdGQ6Om51bGxvcHQ7CiAKICAgICBSZWZQdHI8SlNPTjo6T2JqZWN0PiBvYmplY3Q7CiAgICAg
aWYgKCF2YWx1ZS0+YXNPYmplY3Qob2JqZWN0KSkKLSAgICAgICAgcmV0dXJuIHsgfTsKKyAgICAg
ICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKIAogICAgIFJlZlB0cjxKU09OOjpBcnJheT4ga2lkc0Fy
cmF5OwogICAgIGlmICghb2JqZWN0LT5nZXRBcnJheSgia2lkcyIsIGtpZHNBcnJheSkpCi0gICAg
ICAgIHJldHVybiB7IH07CisgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CiAKICAgICBWZWN0
b3I8UmVmPFNoYXJlZEJ1ZmZlcj4+IGtleUlEczsKICAgICBmb3IgKGF1dG8mIHZhbHVlIDogKmtp
ZHNBcnJheSkgewpAQCAtNzgsMTMgKzc4LDEzIEBAIHN0YXRpYyBSZWZQdHI8U2hhcmVkQnVmZmVy
PiBzYW5pdGl6ZUtleWlkcyhjb25zdCBTaGFyZWRCdWZmZXImIGJ1ZmZlcikKIHsKICAgICAvLyAx
LiBGb3JtYXQKICAgICAvLyBodHRwczovL3czYy5naXRodWIuaW8vZW5jcnlwdGVkLW1lZGlhL2Zv
cm1hdC1yZWdpc3RyeS9pbml0ZGF0YS9rZXlpZHMuaHRtbCNmb3JtYXQKLSAgICBWZWN0b3I8UmVm
PFNoYXJlZEJ1ZmZlcj4+IGtleUlEQnVmZmVyID0gZXh0cmFjdEtleUlEc0tleWlkcyhidWZmZXIp
OwotICAgIGlmIChrZXlJREJ1ZmZlci5pc0VtcHR5KCkpCisgICAgYXV0byBrZXlJREJ1ZmZlciA9
IGV4dHJhY3RLZXlJRHNLZXlpZHMoYnVmZmVyKTsKKyAgICBpZiAoIWtleUlEQnVmZmVyKQogICAg
ICAgICByZXR1cm4gbnVsbHB0cjsKIAogICAgIGF1dG8gb2JqZWN0ID0gSlNPTjo6T2JqZWN0Ojpj
cmVhdGUoKTsKICAgICBhdXRvIGtpZHNBcnJheSA9IEpTT046OkFycmF5OjpjcmVhdGUoKTsKLSAg
ICBmb3IgKGF1dG8mIGJ1ZmZlciA6IGtleUlEQnVmZmVyKQorICAgIGZvciAoYXV0byYgYnVmZmVy
IDoga2V5SURCdWZmZXIudmFsdWUoKSkKICAgICAgICAga2lkc0FycmF5LT5wdXNoU3RyaW5nKFdU
Rjo6YmFzZTY0VVJMRW5jb2RlKGJ1ZmZlci0+ZGF0YSgpLCBidWZmZXItPnNpemUoKSkpOwogICAg
IG9iamVjdC0+c2V0QXJyYXkoImtpZHMiLCBXVEZNb3ZlKGtpZHNBcnJheSkpOwogCkBAIC0xMDAs
MTIgKzEwMCwxMiBAQCBzdGF0aWMgUmVmUHRyPFNoYXJlZEJ1ZmZlcj4gc2FuaXRpemVDZW5jKGNv
bnN0IFNoYXJlZEJ1ZmZlciYgYnVmZmVyKQogICAgIHJldHVybiBidWZmZXIuY29weSgpOwogfQog
Ci1zdGF0aWMgVmVjdG9yPFJlZjxTaGFyZWRCdWZmZXI+PiBleHRyYWN0S2V5SURzQ2VuYyhjb25z
dCBTaGFyZWRCdWZmZXImKQorc3RhdGljIHN0ZDo6b3B0aW9uYWw8VmVjdG9yPFJlZjxTaGFyZWRC
dWZmZXI+Pj4gZXh0cmFjdEtleUlEc0NlbmMoY29uc3QgU2hhcmVkQnVmZmVyJikKIHsKICAgICAv
LyA0LiBDb21tb24gU3lzdGVtSUQgYW5kIFBTU0ggQm94IEZvcm1hdAogICAgIC8vIGh0dHBzOi8v
dzNjLmdpdGh1Yi5pby9lbmNyeXB0ZWQtbWVkaWEvZm9ybWF0LXJlZ2lzdHJ5L2luaXRkYXRhL2Nl
bmMuaHRtbCNjb21tb24tc3lzdGVtCiAgICAgbm90SW1wbGVtZW50ZWQoKTsKLSAgICByZXR1cm4g
eyB9OworICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CiB9CiAKIHN0YXRpYyBSZWZQdHI8U2hhcmVk
QnVmZmVyPiBzYW5pdGl6ZVdlYk0oY29uc3QgU2hhcmVkQnVmZmVyJiBidWZmZXIpCkBAIC0xMTYs
MTIgKzExNiwxMiBAQCBzdGF0aWMgUmVmUHRyPFNoYXJlZEJ1ZmZlcj4gc2FuaXRpemVXZWJNKGNv
bnN0IFNoYXJlZEJ1ZmZlciYgYnVmZmVyKQogICAgIHJldHVybiBidWZmZXIuY29weSgpOwogfQog
Ci1zdGF0aWMgVmVjdG9yPFJlZjxTaGFyZWRCdWZmZXI+PiBleHRyYWN0S2V5SURzV2ViTShjb25z
dCBTaGFyZWRCdWZmZXImKQorc3RhdGljIHN0ZDo6b3B0aW9uYWw8VmVjdG9yPFJlZjxTaGFyZWRC
dWZmZXI+Pj4gZXh0cmFjdEtleUlEc1dlYk0oY29uc3QgU2hhcmVkQnVmZmVyJikKIHsKICAgICAv
LyAxLiBGb3JtYXQKICAgICAvLyBodHRwczovL3czYy5naXRodWIuaW8vZW5jcnlwdGVkLW1lZGlh
L2Zvcm1hdC1yZWdpc3RyeS9pbml0ZGF0YS93ZWJtLmh0bWwjZm9ybWF0CiAgICAgbm90SW1wbGVt
ZW50ZWQoKTsKLSAgICByZXR1cm4geyB9OworICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CiB9CiAK
IEluaXREYXRhUmVnaXN0cnkmIEluaXREYXRhUmVnaXN0cnk6OnNoYXJlZCgpCkBAIC0xNDcsMTEg
KzE0NywxMSBAQCBSZWZQdHI8U2hhcmVkQnVmZmVyPiBJbml0RGF0YVJlZ2lzdHJ5OjpzYW5pdGl6
ZUluaXREYXRhKGNvbnN0IEF0b21pY1N0cmluZyYgaW5pdAogICAgIHJldHVybiBpdGVyLT52YWx1
ZS5zYW5pdGl6ZUluaXREYXRhKGJ1ZmZlcik7CiB9CiAKLVZlY3RvcjxSZWY8U2hhcmVkQnVmZmVy
Pj4gSW5pdERhdGFSZWdpc3RyeTo6ZXh0cmFjdEtleUlEcyhjb25zdCBBdG9taWNTdHJpbmcmIGlu
aXREYXRhVHlwZSwgY29uc3QgU2hhcmVkQnVmZmVyJiBidWZmZXIpCitzdGQ6Om9wdGlvbmFsPFZl
Y3RvcjxSZWY8U2hhcmVkQnVmZmVyPj4+IEluaXREYXRhUmVnaXN0cnk6OmV4dHJhY3RLZXlJRHMo
Y29uc3QgQXRvbWljU3RyaW5nJiBpbml0RGF0YVR5cGUsIGNvbnN0IFNoYXJlZEJ1ZmZlciYgYnVm
ZmVyKQogewogICAgIGF1dG8gaXRlciA9IG1fdHlwZXMuZmluZChpbml0RGF0YVR5cGUpOwogICAg
IGlmIChpdGVyID09IG1fdHlwZXMuZW5kKCkgfHwgIWl0ZXItPnZhbHVlLnNhbml0aXplSW5pdERh
dGEpCi0gICAgICAgIHJldHVybiB7IH07CisgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CiAg
ICAgcmV0dXJuIGl0ZXItPnZhbHVlLmV4dHJhY3RLZXlJRHMoYnVmZmVyKTsKIH0KIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9lbmNyeXB0ZWRtZWRpYS9Jbml0RGF0YVJlZ2lz
dHJ5LmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2VuY3J5cHRlZG1lZGlhL0luaXREYXRhUmVn
aXN0cnkuaAppbmRleCAzOWJmYTA0NTM1NDZkYTU3N2JhM2Q5ZjhmMWE0OTQ4OTFiODY4MTc0Li5k
MWUzNTg0ZGZlMzUwOWRmZDJiNGI5NDg3MDY4OTE4ZDQ1Yjg5MjIzIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL2VuY3J5cHRlZG1lZGlhL0luaXREYXRhUmVnaXN0cnkuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2VuY3J5cHRlZG1lZGlhL0luaXREYXRhUmVnaXN0cnku
aApAQCAtMjksNiArMjksNyBAQAogCiAjaW5jbHVkZSA8d3RmL0Z1bmN0aW9uLmg+CiAjaW5jbHVk
ZSA8d3RmL0hhc2hNYXAuaD4KKyNpbmNsdWRlIDx3dGYvT3B0aW9uYWwuaD4KICNpbmNsdWRlIDx3
dGYvUmVmLmg+CiAjaW5jbHVkZSA8d3RmL1JlZlB0ci5oPgogI2luY2x1ZGUgPHd0Zi9WZWN0b3Iu
aD4KQEAgLTQ1LDExICs0NiwxMSBAQCBwdWJsaWM6CiAgICAgZnJpZW5kIGNsYXNzIE5ldmVyRGVz
dHJveWVkPEluaXREYXRhUmVnaXN0cnk+OwogCiAgICAgUmVmUHRyPFNoYXJlZEJ1ZmZlcj4gc2Fu
aXRpemVJbml0RGF0YShjb25zdCBBdG9taWNTdHJpbmcmIGluaXREYXRhVHlwZSwgY29uc3QgU2hh
cmVkQnVmZmVyJik7Ci0gICAgV0VCQ09SRV9FWFBPUlQgVmVjdG9yPFJlZjxTaGFyZWRCdWZmZXI+
PiBleHRyYWN0S2V5SURzKGNvbnN0IEF0b21pY1N0cmluZyYgaW5pdERhdGFUeXBlLCBjb25zdCBT
aGFyZWRCdWZmZXImKTsKKyAgICBXRUJDT1JFX0VYUE9SVCBzdGQ6Om9wdGlvbmFsPFZlY3RvcjxS
ZWY8U2hhcmVkQnVmZmVyPj4+IGV4dHJhY3RLZXlJRHMoY29uc3QgQXRvbWljU3RyaW5nJiBpbml0
RGF0YVR5cGUsIGNvbnN0IFNoYXJlZEJ1ZmZlciYpOwogCiAgICAgc3RydWN0IEluaXREYXRhVHlw
ZUNhbGxiYWNrcyB7CiAgICAgICAgIHVzaW5nIFNhbml0aXplSW5pdERhdGFDYWxsYmFjayA9IEZ1
bmN0aW9uPFJlZlB0cjxTaGFyZWRCdWZmZXI+KGNvbnN0IFNoYXJlZEJ1ZmZlciYpPjsKLSAgICAg
ICAgdXNpbmcgRXh0cmFjdEtleUlEc0NhbGxiYWNrID0gRnVuY3Rpb248VmVjdG9yPFJlZjxTaGFy
ZWRCdWZmZXI+Pihjb25zdCBTaGFyZWRCdWZmZXImKT47CisgICAgICAgIHVzaW5nIEV4dHJhY3RL
ZXlJRHNDYWxsYmFjayA9IEZ1bmN0aW9uPHN0ZDo6b3B0aW9uYWw8VmVjdG9yPFJlZjxTaGFyZWRC
dWZmZXI+Pj4oY29uc3QgU2hhcmVkQnVmZmVyJik+OwogCiAgICAgICAgIFNhbml0aXplSW5pdERh
dGFDYWxsYmFjayBzYW5pdGl6ZUluaXREYXRhOwogICAgICAgICBFeHRyYWN0S2V5SURzQ2FsbGJh
Y2sgZXh0cmFjdEtleUlEczsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2F2Zm91bmRhdGlvbi9DRE1GYWlyUGxheVN0cmVhbWluZy5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vQ0RNRmFpclBsYXlTdHJlYW1pbmcu
Y3BwCmluZGV4IGQyMDg2ODQ4ZGU5ZTAzNjdiMjlhNzAyZDY0NTFlMGVlOGYyNjc0YTguLjhjNjRk
ZTFlNTE1MzZjY2ViMmI0ZjIyZTFlZmU5ODlmNjEwM2E5ZDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9DRE1GYWlyUGxheVN0cmVhbWlu
Zy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9u
L0NETUZhaXJQbGF5U3RyZWFtaW5nLmNwcApAQCAtMTU4LDkgKzE1OCw4IEBAIHN0YXRpYyBTY2hl
bWVBbmRLZXlSZXN1bHQgZXh0cmFjdFNjaGVtZUFuZEtleUlkRnJvbVNpbmYoY29uc3QgU2hhcmVk
QnVmZmVyJiBidWZmCiAgICAgcmV0dXJuIHJlc3VsdDsKIH0KIAotVmVjdG9yPFJlZjxTaGFyZWRC
dWZmZXI+PiBDRE1Qcml2YXRlRmFpclBsYXlTdHJlYW1pbmc6OmV4dHJhY3RLZXlJRHNTaW5mKGNv
bnN0IFNoYXJlZEJ1ZmZlciYgYnVmZmVyKQorc3RkOjpvcHRpb25hbDxWZWN0b3I8UmVmPFNoYXJl
ZEJ1ZmZlcj4+PiBDRE1Qcml2YXRlRmFpclBsYXlTdHJlYW1pbmc6OmV4dHJhY3RLZXlJRHNTaW5m
KGNvbnN0IFNoYXJlZEJ1ZmZlciYgYnVmZmVyKQogewotCiAgICAgVmVjdG9yPFJlZjxTaGFyZWRC
dWZmZXI+PiBrZXlJRHM7CiAgICAgYXV0byByZXN1bHRzID0gZXh0cmFjdFNjaGVtZUFuZEtleUlk
RnJvbVNpbmYoYnVmZmVyKTsKIApAQCAtMTg3LDcgKzE4Niw3IEBAIFJlZlB0cjxTaGFyZWRCdWZm
ZXI+IENETVByaXZhdGVGYWlyUGxheVN0cmVhbWluZzo6c2FuaXRpemVTa2QoY29uc3QgU2hhcmVk
QnVmZmVyCiAgICAgcmV0dXJuIGJ1ZmZlci5jb3B5KCk7CiB9CiAKLVZlY3RvcjxSZWY8U2hhcmVk
QnVmZmVyPj4gQ0RNUHJpdmF0ZUZhaXJQbGF5U3RyZWFtaW5nOjpleHRyYWN0S2V5SURzU2tkKGNv
bnN0IFNoYXJlZEJ1ZmZlciYgYnVmZmVyKQorc3RkOjpvcHRpb25hbDxWZWN0b3I8UmVmPFNoYXJl
ZEJ1ZmZlcj4+PiBDRE1Qcml2YXRlRmFpclBsYXlTdHJlYW1pbmc6OmV4dHJhY3RLZXlJRHNTa2Qo
Y29uc3QgU2hhcmVkQnVmZmVyJiBidWZmZXIpCiB7CiAgICAgLy8gSW4gdGhlICdza2QnIHNjaGVt
ZSwgdGhlIGluaXQgZGF0YSBpcyB0aGUga2V5IElELgogICAgIFZlY3RvcjxSZWY8U2hhcmVkQnVm
ZmVyPj4ga2V5SURzOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvYXZmb3VuZGF0aW9uL0NETUZhaXJQbGF5U3RyZWFtaW5nLmggYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vQ0RNRmFpclBsYXlTdHJlYW1pbmcuaAppbmRl
eCA4YWQzNjg5YTlhNzQyM2EzMzlkMDhkZjRjODNhZTAyYjEzZDJiZjVkLi4xNDRjMDIxYTJmNGNm
Nzc1Njc3NmQ1ZWQ0ZTAwNmU2ODE0ZjE5OTJkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vQ0RNRmFpclBsYXlTdHJlYW1pbmcuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vQ0RNRmFpclBs
YXlTdHJlYW1pbmcuaApAQCAtNjgsMTEgKzY4LDExIEBAIHB1YmxpYzoKICAgICBzdGQ6Om9wdGlv
bmFsPFN0cmluZz4gc2FuaXRpemVTZXNzaW9uSWQoY29uc3QgU3RyaW5nJikgY29uc3Qgb3ZlcnJp
ZGU7CiAKICAgICBzdGF0aWMgY29uc3QgQXRvbWljU3RyaW5nJiBzaW5mTmFtZSgpOwotICAgIHN0
YXRpYyBWZWN0b3I8UmVmPFNoYXJlZEJ1ZmZlcj4+IGV4dHJhY3RLZXlJRHNTaW5mKGNvbnN0IFNo
YXJlZEJ1ZmZlciYpOworICAgIHN0YXRpYyBzdGQ6Om9wdGlvbmFsPFZlY3RvcjxSZWY8U2hhcmVk
QnVmZmVyPj4+IGV4dHJhY3RLZXlJRHNTaW5mKGNvbnN0IFNoYXJlZEJ1ZmZlciYpOwogICAgIHN0
YXRpYyBSZWZQdHI8U2hhcmVkQnVmZmVyPiBzYW5pdGl6ZVNpbmYoY29uc3QgU2hhcmVkQnVmZmVy
Jik7CiAKICAgICBzdGF0aWMgY29uc3QgQXRvbWljU3RyaW5nJiBza2ROYW1lKCk7Ci0gICAgc3Rh
dGljIFZlY3RvcjxSZWY8U2hhcmVkQnVmZmVyPj4gZXh0cmFjdEtleUlEc1NrZChjb25zdCBTaGFy
ZWRCdWZmZXImKTsKKyAgICBzdGF0aWMgc3RkOjpvcHRpb25hbDxWZWN0b3I8UmVmPFNoYXJlZEJ1
ZmZlcj4+PiBleHRyYWN0S2V5SURzU2tkKGNvbnN0IFNoYXJlZEJ1ZmZlciYpOwogICAgIHN0YXRp
YyBSZWZQdHI8U2hhcmVkQnVmZmVyPiBzYW5pdGl6ZVNrZChjb25zdCBTaGFyZWRCdWZmZXImKTsK
IH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91
bmRhdGlvbi9vYmpjL0NETUluc3RhbmNlRmFpclBsYXlTdHJlYW1pbmdBVkZPYmpDLm1tIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvQ0RNSW5zdGFu
Y2VGYWlyUGxheVN0cmVhbWluZ0FWRk9iakMubW0KaW5kZXggZTEwNTQ4NmNiZjVmMDY1ZmIzNmUy
NmNmMDQyMjM0YmYwMTVhNDNmZi4uYWQ2ZWYxNzk1ZTQxNzIyZDNjNDQ4ZDYwYTRlMTc5OGU0OWM2
Y2IwYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3Vu
ZGF0aW9uL29iamMvQ0RNSW5zdGFuY2VGYWlyUGxheVN0cmVhbWluZ0FWRk9iakMubW0KKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvQ0RNSW5z
dGFuY2VGYWlyUGxheVN0cmVhbWluZ0FWRk9iakMubW0KQEAgLTIzMyw3ICsyMzMsNyBAQCBib29s
IENETUluc3RhbmNlRmFpclBsYXlTdHJlYW1pbmdBVkZPYmpDOjppc0xpY2Vuc2VUeXBlU3VwcG9y
dGVkKExpY2Vuc2VUeXBlIGxpYwogICAgIH0KIH0KIAotVmVjdG9yPFJlZjxTaGFyZWRCdWZmZXI+
PiBDRE1JbnN0YW5jZUZhaXJQbGF5U3RyZWFtaW5nQVZGT2JqQzo6a2V5SURzKCkKK3N0ZDo6b3B0
aW9uYWw8VmVjdG9yPFJlZjxTaGFyZWRCdWZmZXI+Pj4gQ0RNSW5zdGFuY2VGYWlyUGxheVN0cmVh
bWluZ0FWRk9iakM6OmtleUlEcygpCiB7CiAgICAgLy8gRklYTUUocmRhcjovL3Byb2JsZW0vMzU1
OTcxNDEpOiB1c2UgdGhlIGZ1dHVyZSBBVkNvbnRlbnRLZXlSZXF1ZXN0IGtleUlEIHByb3BlcnR5
LCByYXRoZXIgdGhhbiBwYXJzaW5nIGl0IG91dCBvZiB0aGUgaW5pdAogICAgIC8vIGRhdGEsIHRv
IGdldCB0aGUga2V5SUQuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL01vY2tD
RE1GYWN0b3J5LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvTW9ja0NETUZhY3RvcnkuY3Bw
CmluZGV4IGE3NDMzYzZjZjgyMjVjNzU4ZGJkZjIyYTEyMzYzOTI0MDA4YzNiMjIuLjYzMWUxYTUy
YzUzN2M3YmRlYjg2ZDE3MTNiOGNmNjczZTMzMWIwZGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3Rlc3RpbmcvTW9ja0NETUZhY3RvcnkuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Rlc3Rp
bmcvTW9ja0NETUZhY3RvcnkuY3BwCkBAIC0yODMsMTMgKzI4MywxMyBAQCB2b2lkIE1vY2tDRE1J
bnN0YW5jZTo6cmVxdWVzdExpY2Vuc2UoTGljZW5zZVR5cGUgbGljZW5zZVR5cGUsIGNvbnN0IEF0
b21pY1N0cmluZwogICAgIH0KIAogICAgIGF1dG8ga2V5SURzID0gSW5pdERhdGFSZWdpc3RyeTo6
c2hhcmVkKCkuZXh0cmFjdEtleUlEcyhpbml0RGF0YVR5cGUsIGluaXREYXRhKTsKLSAgICBpZiAo
a2V5SURzLmlzRW1wdHkoKSkgeworICAgIGlmICgha2V5SURzKSB7CiAgICAgICAgIGNhbGxiYWNr
KFNoYXJlZEJ1ZmZlcjo6Y3JlYXRlKCksIGVtcHR5U3RyaW5nKCksIGZhbHNlLCBTdWNjZXNzVmFs
dWU6OkZhaWxlZCk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKICAgICBTdHJpbmcgc2Vzc2lv
bklEID0gY3JlYXRlQ2Fub25pY2FsVVVJRFN0cmluZygpOwotICAgIGZhY3RvcnktPmFkZEtleXNU
b1Nlc3Npb25XaXRoSUQoc2Vzc2lvbklELCBXVEZNb3ZlKGtleUlEcykpOworICAgIGZhY3Rvcnkt
PmFkZEtleXNUb1Nlc3Npb25XaXRoSUQoc2Vzc2lvbklELCBXVEZNb3ZlKGtleUlEcy52YWx1ZSgp
KSk7CiAKICAgICBDU3RyaW5nIGxpY2Vuc2UgeyAibGljZW5zZSIgfTsKICAgICBjYWxsYmFjayhT
aGFyZWRCdWZmZXI6OmNyZWF0ZShsaWNlbnNlLmRhdGEoKSwgbGljZW5zZS5sZW5ndGgoKSksIHNl
c3Npb25JRCwgZmFsc2UsIFN1Y2Nlc3NWYWx1ZTo6U3VjY2VlZGVkKTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>346475</attachid>
            <date>2018-08-03 06:14:24 -0700</date>
            <delta_ts>2018-08-03 07:50:49 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-188303-20180803141423.patch</filename>
            <type>text/plain</type>
            <size>13017</size>
            <attacher name="Charlie Turner">cturner</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjM0NDk3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNDE5ZTMzNDMxNDQyNjI4
NTAzNjFlZGUyYjkzNTFkZjkyOTlhNmZmYy4uNDI2YmIzNWYxZTllOTgyMGM3Njg1NzJiYTEzODMz
MTgzNTZmM2ExZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ1IEBACisyMDE4LTA4LTAzICBDaGFy
bGllIFR1cm5lciAgPGN0dXJuZXJAaWdhbGlhLmNvbT4KKworICAgICAgICBSZXR1cm4gZXh0cmFj
dGVkIGtleSBpZHMgYXMgYW4gb3B0aW9uYWwKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTE4ODMwMworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIEFuIGVtcHR5IGxpc3Qgb2YgZXh0cmFjdGVkIGtleSBpZHMgd2Fz
IGJlaW5nIGNvbnNpZGVyZWQgYSBmYWlsdXJlCisgICAgICAgIGNhc2UgYmVmb3JlIHRoaXMgcGF0
Y2guIEluIHRoZSBQU1NIIGJveGVzIGZyb20gdGhlIENFTkMgc3RhbmRhcmQsCisgICAgICAgIGl0
J3Mgbm90IHVuY29tbW9uIGZvciB0aGUgYm94IHRvIGJlIHZlcnNpb24gMCwgbWVhbmluZyBpdCBo
YXMgbm8KKyAgICAgICAgZW1iZWRkZWQga2V5IGlkcywgc28gdGhlIGNhc2Ugd2hlbiB0aGVyZSdz
IGFuIGVtcHR5IGxpc3Qgc2hvdWxkCisgICAgICAgIG5vdCBiZSB0cmVhdGVkIGFzIGFuIGVycm9y
LiBHaXZlbiB0aGlzLCB0aGUgaW50ZXJmYWNlIHNob3VsZCBiZQorICAgICAgICBtb3JlIGdlbmVy
YWwgYW5kIGFsbG93IGZvciBhIHNlbnRpbmVsIHZhbHVlIGluZGljYXRpbmcgYSBwYXJzaW5nCisg
ICAgICAgIGVycm9yIHJhdGhlciB0aGFuIGFuIGFic2VuY2Ugb2Yga2V5IGlkcy4KKworICAgICAg
ICBDb3ZlcmVkIGJ5IGV4aXN0aW5nIHRlc3RzLgorCisgICAgICAgICogTW9kdWxlcy9lbmNyeXB0
ZWRtZWRpYS9Jbml0RGF0YVJlZ2lzdHJ5LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmV4dHJhY3RL
ZXlJRHNLZXlpZHMpOiBDaGFuZ2UgcmV0dXJuIHR5cGUgdG8gYmUgd3JhcHBlZAorICAgICAgICBp
biBhbiBvcHRpb25hbCwgYW5kIG1ha2UgcGFyc2luZyBlcnJvcnMgcmV0dXJuIGEgbnVsbG9wdCBy
YXRoZXIKKyAgICAgICAgdGhhbiBhbiBlbXB0eSB2ZWN0b3IuCisgICAgICAgIChXZWJDb3JlOjpz
YW5pdGl6ZUtleWlkcyk6IFVzZSB0aGUgbmV3IG9wdGlvbmFsIGludGVyZmFjZSwgcmV0dXJuCisg
ICAgICAgIGEgbnVsbCBSZWZQdHIgaW4gdGhlIGNhc2Ugb2YgYSBwYXJzaW5nIGVycm9yLCB0aGlz
IG1ldGhvZCBtYXkgbm93CisgICAgICAgIHJldHVybiBhbiBlbXB0eSB2ZWN0b3IuCisgICAgICAg
IChXZWJDb3JlOjpleHRyYWN0S2V5SURzQ2VuYyk6IE5vdCBpbXBsZW1lbnRlZCwgc28gcmV0dXJu
IGFuIGVycm9yCisgICAgICAgIHZhbHVlIHJhdGhlciB0aGFuIGFuIGVtcHR5IHZlY3Rvci4KKyAg
ICAgICAgKFdlYkNvcmU6OmV4dHJhY3RLZXlJRHNXZWJNKTogRGl0dG8uCisgICAgICAgIChXZWJD
b3JlOjpJbml0RGF0YVJlZ2lzdHJ5OjpleHRyYWN0S2V5SURzKTogRGl0dG8uCisgICAgICAgICog
TW9kdWxlcy9lbmNyeXB0ZWRtZWRpYS9Jbml0RGF0YVJlZ2lzdHJ5Lmg6IFVwZGF0ZSB0aGUgaW50
ZXJmYWNlCisgICAgICAgIHRvIHVzZSBhbiBvcHRpb25hbCByZXR1cm4gdHlwZS4KKyAgICAgICAg
KiBwbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vQ0RNRmFpclBsYXlTdHJlYW1pbmcuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6Q0RNUHJpdmF0ZUZhaXJQbGF5U3RyZWFtaW5nOjpleHRyYWN0
S2V5SURzU2luZik6IFVwZGF0ZQorICAgICAgICB0byB1c2UgdGhlIG5ldyBpbnRlcmZhY2UuCisg
ICAgICAgIChXZWJDb3JlOjpDRE1Qcml2YXRlRmFpclBsYXlTdHJlYW1pbmc6OmV4dHJhY3RLZXlJ
RHNTa2QpOiBEaXR0by4KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24v
Q0RNRmFpclBsYXlTdHJlYW1pbmcuaDogRGl0dG8uCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhp
Y3MvYXZmb3VuZGF0aW9uL29iamMvQ0RNSW5zdGFuY2VGYWlyUGxheVN0cmVhbWluZ0FWRk9iakMu
bW06CisgICAgICAgIChXZWJDb3JlOjpDRE1JbnN0YW5jZUZhaXJQbGF5U3RyZWFtaW5nQVZGT2Jq
Qzo6a2V5SURzKTogRGl0dG8uCisgICAgICAgICogdGVzdGluZy9Nb2NrQ0RNRmFjdG9yeS5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpNb2NrQ0RNSW5zdGFuY2U6OnJlcXVlc3RMaWNlbnNlKTogT25s
eSByZXR1cm4gYW4gZXJyb3IKKyAgICAgICAgaWYgdGhlcmUgcmVhbGx5IHdhcyBhIHBhcnNpbmcg
ZXJyb3IsIHJhdGhlciB0aGFuIHRoZSBjYXNlIG9mIHRoZXJlCisgICAgICAgIGJlaW5nIHplcm8g
a2V5IGlkcyBpbiB0aGUgaW5pdCBkYXRhIHBheWxvYWQuCisKIDIwMTgtMDgtMDIgIENoYXJsaWUg
VHVybmVyICA8Y3R1cm5lckBpZ2FsaWEuY29tPgogCiAgICAgICAgIEhhbmRsZSB6ZXJvLXNpemVk
IElTT01QNCBib3hlcyBhcHByb3ByaWF0ZWx5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL2VuY3J5cHRlZG1lZGlhL0luaXREYXRhUmVnaXN0cnkuY3BwIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9lbmNyeXB0ZWRtZWRpYS9Jbml0RGF0YVJlZ2lzdHJ5LmNwcAppbmRleCBjMjli
MDM4YWQxZDI5MjVjNDM4NDcyZjNhZGYwOGY0YTU0YjBhM2ExLi4xZDY3ZWQ2NmJjMzJhNGUwNmIz
YzY3OTU1YjU0YmJkY2M0Njc5NWQ4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L2VuY3J5cHRlZG1lZGlhL0luaXREYXRhUmVnaXN0cnkuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvZW5jcnlwdGVkbWVkaWEvSW5pdERhdGFSZWdpc3RyeS5jcHAKQEAgLTM3LDI1ICsz
NywyNSBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLXN0YXRpYyBWZWN0b3I8UmVmPFNoYXJl
ZEJ1ZmZlcj4+IGV4dHJhY3RLZXlJRHNLZXlpZHMoY29uc3QgU2hhcmVkQnVmZmVyJiBidWZmZXIp
CitzdGF0aWMgc3RkOjpvcHRpb25hbDxWZWN0b3I8UmVmPFNoYXJlZEJ1ZmZlcj4+PiBleHRyYWN0
S2V5SURzS2V5aWRzKGNvbnN0IFNoYXJlZEJ1ZmZlciYgYnVmZmVyKQogewogICAgIC8vIDEuIEZv
cm1hdAogICAgIC8vIGh0dHBzOi8vdzNjLmdpdGh1Yi5pby9lbmNyeXB0ZWQtbWVkaWEvZm9ybWF0
LXJlZ2lzdHJ5L2luaXRkYXRhL2tleWlkcy5odG1sI2Zvcm1hdAogICAgIGlmIChidWZmZXIuc2l6
ZSgpID4gc3RkOjpudW1lcmljX2xpbWl0czx1bnNpZ25lZD46Om1heCgpKQotICAgICAgICByZXR1
cm4geyB9OworICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OwogICAgIFN0cmluZyBqc29uIHsg
YnVmZmVyLmRhdGEoKSwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KGJ1ZmZlci5zaXplKCkpIH07CiAK
ICAgICBSZWZQdHI8SlNPTjo6VmFsdWU+IHZhbHVlOwogICAgIGlmICghSlNPTjo6VmFsdWU6OnBh
cnNlSlNPTihqc29uLCB2YWx1ZSkpCi0gICAgICAgIHJldHVybiB7IH07CisgICAgICAgIHJldHVy
biBzdGQ6Om51bGxvcHQ7CiAKICAgICBSZWZQdHI8SlNPTjo6T2JqZWN0PiBvYmplY3Q7CiAgICAg
aWYgKCF2YWx1ZS0+YXNPYmplY3Qob2JqZWN0KSkKLSAgICAgICAgcmV0dXJuIHsgfTsKKyAgICAg
ICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKIAogICAgIFJlZlB0cjxKU09OOjpBcnJheT4ga2lkc0Fy
cmF5OwogICAgIGlmICghb2JqZWN0LT5nZXRBcnJheSgia2lkcyIsIGtpZHNBcnJheSkpCi0gICAg
ICAgIHJldHVybiB7IH07CisgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CiAKICAgICBWZWN0
b3I8UmVmPFNoYXJlZEJ1ZmZlcj4+IGtleUlEczsKICAgICBmb3IgKGF1dG8mIHZhbHVlIDogKmtp
ZHNBcnJheSkgewpAQCAtNzgsMTMgKzc4LDEzIEBAIHN0YXRpYyBSZWZQdHI8U2hhcmVkQnVmZmVy
PiBzYW5pdGl6ZUtleWlkcyhjb25zdCBTaGFyZWRCdWZmZXImIGJ1ZmZlcikKIHsKICAgICAvLyAx
LiBGb3JtYXQKICAgICAvLyBodHRwczovL3czYy5naXRodWIuaW8vZW5jcnlwdGVkLW1lZGlhL2Zv
cm1hdC1yZWdpc3RyeS9pbml0ZGF0YS9rZXlpZHMuaHRtbCNmb3JtYXQKLSAgICBWZWN0b3I8UmVm
PFNoYXJlZEJ1ZmZlcj4+IGtleUlEQnVmZmVyID0gZXh0cmFjdEtleUlEc0tleWlkcyhidWZmZXIp
OwotICAgIGlmIChrZXlJREJ1ZmZlci5pc0VtcHR5KCkpCisgICAgYXV0byBrZXlJREJ1ZmZlciA9
IGV4dHJhY3RLZXlJRHNLZXlpZHMoYnVmZmVyKTsKKyAgICBpZiAoIWtleUlEQnVmZmVyKQogICAg
ICAgICByZXR1cm4gbnVsbHB0cjsKIAogICAgIGF1dG8gb2JqZWN0ID0gSlNPTjo6T2JqZWN0Ojpj
cmVhdGUoKTsKICAgICBhdXRvIGtpZHNBcnJheSA9IEpTT046OkFycmF5OjpjcmVhdGUoKTsKLSAg
ICBmb3IgKGF1dG8mIGJ1ZmZlciA6IGtleUlEQnVmZmVyKQorICAgIGZvciAoYXV0byYgYnVmZmVy
IDoga2V5SURCdWZmZXIudmFsdWUoKSkKICAgICAgICAga2lkc0FycmF5LT5wdXNoU3RyaW5nKFdU
Rjo6YmFzZTY0VVJMRW5jb2RlKGJ1ZmZlci0+ZGF0YSgpLCBidWZmZXItPnNpemUoKSkpOwogICAg
IG9iamVjdC0+c2V0QXJyYXkoImtpZHMiLCBXVEZNb3ZlKGtpZHNBcnJheSkpOwogCkBAIC0xMDAs
MTIgKzEwMCwxMiBAQCBzdGF0aWMgUmVmUHRyPFNoYXJlZEJ1ZmZlcj4gc2FuaXRpemVDZW5jKGNv
bnN0IFNoYXJlZEJ1ZmZlciYgYnVmZmVyKQogICAgIHJldHVybiBidWZmZXIuY29weSgpOwogfQog
Ci1zdGF0aWMgVmVjdG9yPFJlZjxTaGFyZWRCdWZmZXI+PiBleHRyYWN0S2V5SURzQ2VuYyhjb25z
dCBTaGFyZWRCdWZmZXImKQorc3RhdGljIHN0ZDo6b3B0aW9uYWw8VmVjdG9yPFJlZjxTaGFyZWRC
dWZmZXI+Pj4gZXh0cmFjdEtleUlEc0NlbmMoY29uc3QgU2hhcmVkQnVmZmVyJikKIHsKICAgICAv
LyA0LiBDb21tb24gU3lzdGVtSUQgYW5kIFBTU0ggQm94IEZvcm1hdAogICAgIC8vIGh0dHBzOi8v
dzNjLmdpdGh1Yi5pby9lbmNyeXB0ZWQtbWVkaWEvZm9ybWF0LXJlZ2lzdHJ5L2luaXRkYXRhL2Nl
bmMuaHRtbCNjb21tb24tc3lzdGVtCiAgICAgbm90SW1wbGVtZW50ZWQoKTsKLSAgICByZXR1cm4g
eyB9OworICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CiB9CiAKIHN0YXRpYyBSZWZQdHI8U2hhcmVk
QnVmZmVyPiBzYW5pdGl6ZVdlYk0oY29uc3QgU2hhcmVkQnVmZmVyJiBidWZmZXIpCkBAIC0xMTYs
MTIgKzExNiwxMiBAQCBzdGF0aWMgUmVmUHRyPFNoYXJlZEJ1ZmZlcj4gc2FuaXRpemVXZWJNKGNv
bnN0IFNoYXJlZEJ1ZmZlciYgYnVmZmVyKQogICAgIHJldHVybiBidWZmZXIuY29weSgpOwogfQog
Ci1zdGF0aWMgVmVjdG9yPFJlZjxTaGFyZWRCdWZmZXI+PiBleHRyYWN0S2V5SURzV2ViTShjb25z
dCBTaGFyZWRCdWZmZXImKQorc3RhdGljIHN0ZDo6b3B0aW9uYWw8VmVjdG9yPFJlZjxTaGFyZWRC
dWZmZXI+Pj4gZXh0cmFjdEtleUlEc1dlYk0oY29uc3QgU2hhcmVkQnVmZmVyJikKIHsKICAgICAv
LyAxLiBGb3JtYXQKICAgICAvLyBodHRwczovL3czYy5naXRodWIuaW8vZW5jcnlwdGVkLW1lZGlh
L2Zvcm1hdC1yZWdpc3RyeS9pbml0ZGF0YS93ZWJtLmh0bWwjZm9ybWF0CiAgICAgbm90SW1wbGVt
ZW50ZWQoKTsKLSAgICByZXR1cm4geyB9OworICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CiB9CiAK
IEluaXREYXRhUmVnaXN0cnkmIEluaXREYXRhUmVnaXN0cnk6OnNoYXJlZCgpCkBAIC0xNDcsMTEg
KzE0NywxMSBAQCBSZWZQdHI8U2hhcmVkQnVmZmVyPiBJbml0RGF0YVJlZ2lzdHJ5OjpzYW5pdGl6
ZUluaXREYXRhKGNvbnN0IEF0b21pY1N0cmluZyYgaW5pdAogICAgIHJldHVybiBpdGVyLT52YWx1
ZS5zYW5pdGl6ZUluaXREYXRhKGJ1ZmZlcik7CiB9CiAKLVZlY3RvcjxSZWY8U2hhcmVkQnVmZmVy
Pj4gSW5pdERhdGFSZWdpc3RyeTo6ZXh0cmFjdEtleUlEcyhjb25zdCBBdG9taWNTdHJpbmcmIGlu
aXREYXRhVHlwZSwgY29uc3QgU2hhcmVkQnVmZmVyJiBidWZmZXIpCitzdGQ6Om9wdGlvbmFsPFZl
Y3RvcjxSZWY8U2hhcmVkQnVmZmVyPj4+IEluaXREYXRhUmVnaXN0cnk6OmV4dHJhY3RLZXlJRHMo
Y29uc3QgQXRvbWljU3RyaW5nJiBpbml0RGF0YVR5cGUsIGNvbnN0IFNoYXJlZEJ1ZmZlciYgYnVm
ZmVyKQogewogICAgIGF1dG8gaXRlciA9IG1fdHlwZXMuZmluZChpbml0RGF0YVR5cGUpOwogICAg
IGlmIChpdGVyID09IG1fdHlwZXMuZW5kKCkgfHwgIWl0ZXItPnZhbHVlLnNhbml0aXplSW5pdERh
dGEpCi0gICAgICAgIHJldHVybiB7IH07CisgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CiAg
ICAgcmV0dXJuIGl0ZXItPnZhbHVlLmV4dHJhY3RLZXlJRHMoYnVmZmVyKTsKIH0KIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9lbmNyeXB0ZWRtZWRpYS9Jbml0RGF0YVJlZ2lz
dHJ5LmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2VuY3J5cHRlZG1lZGlhL0luaXREYXRhUmVn
aXN0cnkuaAppbmRleCAzOWJmYTA0NTM1NDZkYTU3N2JhM2Q5ZjhmMWE0OTQ4OTFiODY4MTc0Li5k
MWUzNTg0ZGZlMzUwOWRmZDJiNGI5NDg3MDY4OTE4ZDQ1Yjg5MjIzIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL2VuY3J5cHRlZG1lZGlhL0luaXREYXRhUmVnaXN0cnkuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2VuY3J5cHRlZG1lZGlhL0luaXREYXRhUmVnaXN0cnku
aApAQCAtMjksNiArMjksNyBAQAogCiAjaW5jbHVkZSA8d3RmL0Z1bmN0aW9uLmg+CiAjaW5jbHVk
ZSA8d3RmL0hhc2hNYXAuaD4KKyNpbmNsdWRlIDx3dGYvT3B0aW9uYWwuaD4KICNpbmNsdWRlIDx3
dGYvUmVmLmg+CiAjaW5jbHVkZSA8d3RmL1JlZlB0ci5oPgogI2luY2x1ZGUgPHd0Zi9WZWN0b3Iu
aD4KQEAgLTQ1LDExICs0NiwxMSBAQCBwdWJsaWM6CiAgICAgZnJpZW5kIGNsYXNzIE5ldmVyRGVz
dHJveWVkPEluaXREYXRhUmVnaXN0cnk+OwogCiAgICAgUmVmUHRyPFNoYXJlZEJ1ZmZlcj4gc2Fu
aXRpemVJbml0RGF0YShjb25zdCBBdG9taWNTdHJpbmcmIGluaXREYXRhVHlwZSwgY29uc3QgU2hh
cmVkQnVmZmVyJik7Ci0gICAgV0VCQ09SRV9FWFBPUlQgVmVjdG9yPFJlZjxTaGFyZWRCdWZmZXI+
PiBleHRyYWN0S2V5SURzKGNvbnN0IEF0b21pY1N0cmluZyYgaW5pdERhdGFUeXBlLCBjb25zdCBT
aGFyZWRCdWZmZXImKTsKKyAgICBXRUJDT1JFX0VYUE9SVCBzdGQ6Om9wdGlvbmFsPFZlY3RvcjxS
ZWY8U2hhcmVkQnVmZmVyPj4+IGV4dHJhY3RLZXlJRHMoY29uc3QgQXRvbWljU3RyaW5nJiBpbml0
RGF0YVR5cGUsIGNvbnN0IFNoYXJlZEJ1ZmZlciYpOwogCiAgICAgc3RydWN0IEluaXREYXRhVHlw
ZUNhbGxiYWNrcyB7CiAgICAgICAgIHVzaW5nIFNhbml0aXplSW5pdERhdGFDYWxsYmFjayA9IEZ1
bmN0aW9uPFJlZlB0cjxTaGFyZWRCdWZmZXI+KGNvbnN0IFNoYXJlZEJ1ZmZlciYpPjsKLSAgICAg
ICAgdXNpbmcgRXh0cmFjdEtleUlEc0NhbGxiYWNrID0gRnVuY3Rpb248VmVjdG9yPFJlZjxTaGFy
ZWRCdWZmZXI+Pihjb25zdCBTaGFyZWRCdWZmZXImKT47CisgICAgICAgIHVzaW5nIEV4dHJhY3RL
ZXlJRHNDYWxsYmFjayA9IEZ1bmN0aW9uPHN0ZDo6b3B0aW9uYWw8VmVjdG9yPFJlZjxTaGFyZWRC
dWZmZXI+Pj4oY29uc3QgU2hhcmVkQnVmZmVyJik+OwogCiAgICAgICAgIFNhbml0aXplSW5pdERh
dGFDYWxsYmFjayBzYW5pdGl6ZUluaXREYXRhOwogICAgICAgICBFeHRyYWN0S2V5SURzQ2FsbGJh
Y2sgZXh0cmFjdEtleUlEczsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2F2Zm91bmRhdGlvbi9DRE1GYWlyUGxheVN0cmVhbWluZy5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vQ0RNRmFpclBsYXlTdHJlYW1pbmcu
Y3BwCmluZGV4IGQyMDg2ODQ4ZGU5ZTAzNjdiMjlhNzAyZDY0NTFlMGVlOGYyNjc0YTguLjhjNjRk
ZTFlNTE1MzZjY2ViMmI0ZjIyZTFlZmU5ODlmNjEwM2E5ZDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9DRE1GYWlyUGxheVN0cmVhbWlu
Zy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9u
L0NETUZhaXJQbGF5U3RyZWFtaW5nLmNwcApAQCAtMTU4LDkgKzE1OCw4IEBAIHN0YXRpYyBTY2hl
bWVBbmRLZXlSZXN1bHQgZXh0cmFjdFNjaGVtZUFuZEtleUlkRnJvbVNpbmYoY29uc3QgU2hhcmVk
QnVmZmVyJiBidWZmCiAgICAgcmV0dXJuIHJlc3VsdDsKIH0KIAotVmVjdG9yPFJlZjxTaGFyZWRC
dWZmZXI+PiBDRE1Qcml2YXRlRmFpclBsYXlTdHJlYW1pbmc6OmV4dHJhY3RLZXlJRHNTaW5mKGNv
bnN0IFNoYXJlZEJ1ZmZlciYgYnVmZmVyKQorc3RkOjpvcHRpb25hbDxWZWN0b3I8UmVmPFNoYXJl
ZEJ1ZmZlcj4+PiBDRE1Qcml2YXRlRmFpclBsYXlTdHJlYW1pbmc6OmV4dHJhY3RLZXlJRHNTaW5m
KGNvbnN0IFNoYXJlZEJ1ZmZlciYgYnVmZmVyKQogewotCiAgICAgVmVjdG9yPFJlZjxTaGFyZWRC
dWZmZXI+PiBrZXlJRHM7CiAgICAgYXV0byByZXN1bHRzID0gZXh0cmFjdFNjaGVtZUFuZEtleUlk
RnJvbVNpbmYoYnVmZmVyKTsKIApAQCAtMTg3LDcgKzE4Niw3IEBAIFJlZlB0cjxTaGFyZWRCdWZm
ZXI+IENETVByaXZhdGVGYWlyUGxheVN0cmVhbWluZzo6c2FuaXRpemVTa2QoY29uc3QgU2hhcmVk
QnVmZmVyCiAgICAgcmV0dXJuIGJ1ZmZlci5jb3B5KCk7CiB9CiAKLVZlY3RvcjxSZWY8U2hhcmVk
QnVmZmVyPj4gQ0RNUHJpdmF0ZUZhaXJQbGF5U3RyZWFtaW5nOjpleHRyYWN0S2V5SURzU2tkKGNv
bnN0IFNoYXJlZEJ1ZmZlciYgYnVmZmVyKQorc3RkOjpvcHRpb25hbDxWZWN0b3I8UmVmPFNoYXJl
ZEJ1ZmZlcj4+PiBDRE1Qcml2YXRlRmFpclBsYXlTdHJlYW1pbmc6OmV4dHJhY3RLZXlJRHNTa2Qo
Y29uc3QgU2hhcmVkQnVmZmVyJiBidWZmZXIpCiB7CiAgICAgLy8gSW4gdGhlICdza2QnIHNjaGVt
ZSwgdGhlIGluaXQgZGF0YSBpcyB0aGUga2V5IElELgogICAgIFZlY3RvcjxSZWY8U2hhcmVkQnVm
ZmVyPj4ga2V5SURzOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvYXZmb3VuZGF0aW9uL0NETUZhaXJQbGF5U3RyZWFtaW5nLmggYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vQ0RNRmFpclBsYXlTdHJlYW1pbmcuaAppbmRl
eCA4YWQzNjg5YTlhNzQyM2EzMzlkMDhkZjRjODNhZTAyYjEzZDJiZjVkLi4xNDRjMDIxYTJmNGNm
Nzc1Njc3NmQ1ZWQ0ZTAwNmU2ODE0ZjE5OTJkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vQ0RNRmFpclBsYXlTdHJlYW1pbmcuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vQ0RNRmFpclBs
YXlTdHJlYW1pbmcuaApAQCAtNjgsMTEgKzY4LDExIEBAIHB1YmxpYzoKICAgICBzdGQ6Om9wdGlv
bmFsPFN0cmluZz4gc2FuaXRpemVTZXNzaW9uSWQoY29uc3QgU3RyaW5nJikgY29uc3Qgb3ZlcnJp
ZGU7CiAKICAgICBzdGF0aWMgY29uc3QgQXRvbWljU3RyaW5nJiBzaW5mTmFtZSgpOwotICAgIHN0
YXRpYyBWZWN0b3I8UmVmPFNoYXJlZEJ1ZmZlcj4+IGV4dHJhY3RLZXlJRHNTaW5mKGNvbnN0IFNo
YXJlZEJ1ZmZlciYpOworICAgIHN0YXRpYyBzdGQ6Om9wdGlvbmFsPFZlY3RvcjxSZWY8U2hhcmVk
QnVmZmVyPj4+IGV4dHJhY3RLZXlJRHNTaW5mKGNvbnN0IFNoYXJlZEJ1ZmZlciYpOwogICAgIHN0
YXRpYyBSZWZQdHI8U2hhcmVkQnVmZmVyPiBzYW5pdGl6ZVNpbmYoY29uc3QgU2hhcmVkQnVmZmVy
Jik7CiAKICAgICBzdGF0aWMgY29uc3QgQXRvbWljU3RyaW5nJiBza2ROYW1lKCk7Ci0gICAgc3Rh
dGljIFZlY3RvcjxSZWY8U2hhcmVkQnVmZmVyPj4gZXh0cmFjdEtleUlEc1NrZChjb25zdCBTaGFy
ZWRCdWZmZXImKTsKKyAgICBzdGF0aWMgc3RkOjpvcHRpb25hbDxWZWN0b3I8UmVmPFNoYXJlZEJ1
ZmZlcj4+PiBleHRyYWN0S2V5SURzU2tkKGNvbnN0IFNoYXJlZEJ1ZmZlciYpOwogICAgIHN0YXRp
YyBSZWZQdHI8U2hhcmVkQnVmZmVyPiBzYW5pdGl6ZVNrZChjb25zdCBTaGFyZWRCdWZmZXImKTsK
IH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91
bmRhdGlvbi9vYmpjL0NETUluc3RhbmNlRmFpclBsYXlTdHJlYW1pbmdBVkZPYmpDLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9DRE1JbnN0YW5j
ZUZhaXJQbGF5U3RyZWFtaW5nQVZGT2JqQy5oCmluZGV4IDgzYjlkNTAyM2NjMThhOWU0MjkzZmY2
MjVhZjE1MzNjYTJmYTAxMGYuLjg1N2RkOWUyMTY4ODg3N2I5YTI0ZDE3YWE2YjdlZTU1Y2NhNWQ5
MzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRh
dGlvbi9vYmpjL0NETUluc3RhbmNlRmFpclBsYXlTdHJlYW1pbmdBVkZPYmpDLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvQ0RNSW5zdGFu
Y2VGYWlyUGxheVN0cmVhbWluZ0FWRk9iakMuaApAQCAtMjksNiArMjksNyBAQAogCiAjaW5jbHVk
ZSAiQ0RNSW5zdGFuY2UuaCIKICNpbmNsdWRlIDx3dGYvRnVuY3Rpb24uaD4KKyNpbmNsdWRlIDx3
dGYvT3B0aW9uYWwuaD4KICNpbmNsdWRlIDx3dGYvUmV0YWluUHRyLmg+CiAjaW5jbHVkZSA8d3Rm
L1dlYWtQdHIuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KQEAgLTg0LDcgKzg1
LDcgQEAgcHVibGljOgogcHJpdmF0ZToKICAgICBib29sIGlzTGljZW5zZVR5cGVTdXBwb3J0ZWQo
TGljZW5zZVR5cGUpIGNvbnN0OwogCi0gICAgVmVjdG9yPFJlZjxTaGFyZWRCdWZmZXI+PiBrZXlJ
RHMoKTsKKyAgICBzdGQ6Om9wdGlvbmFsPFZlY3RvcjxSZWY8U2hhcmVkQnVmZmVyPj4+IGtleUlE
cygpOwogCiAgICAgUmVmUHRyPFNoYXJlZEJ1ZmZlcj4gbV9zZXJ2ZXJDZXJ0aWZpY2F0ZTsKICAg
ICBib29sIG1fcGVyc2lzdGVudFN0YXRlQWxsb3dlZCB7IHRydWUgfTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL0NETUluc3Rh
bmNlRmFpclBsYXlTdHJlYW1pbmdBVkZPYmpDLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvQ0RNSW5zdGFuY2VGYWlyUGxheVN0cmVhbWluZ0FW
Rk9iakMubW0KaW5kZXggZTEwNTQ4NmNiZjVmMDY1ZmIzNmUyNmNmMDQyMjM0YmYwMTVhNDNmZi4u
YWQ2ZWYxNzk1ZTQxNzIyZDNjNDQ4ZDYwYTRlMTc5OGU0OWM2Y2IwYiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvQ0RNSW5zdGFu
Y2VGYWlyUGxheVN0cmVhbWluZ0FWRk9iakMubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvQ0RNSW5zdGFuY2VGYWlyUGxheVN0cmVhbWlu
Z0FWRk9iakMubW0KQEAgLTIzMyw3ICsyMzMsNyBAQCBib29sIENETUluc3RhbmNlRmFpclBsYXlT
dHJlYW1pbmdBVkZPYmpDOjppc0xpY2Vuc2VUeXBlU3VwcG9ydGVkKExpY2Vuc2VUeXBlIGxpYwog
ICAgIH0KIH0KIAotVmVjdG9yPFJlZjxTaGFyZWRCdWZmZXI+PiBDRE1JbnN0YW5jZUZhaXJQbGF5
U3RyZWFtaW5nQVZGT2JqQzo6a2V5SURzKCkKK3N0ZDo6b3B0aW9uYWw8VmVjdG9yPFJlZjxTaGFy
ZWRCdWZmZXI+Pj4gQ0RNSW5zdGFuY2VGYWlyUGxheVN0cmVhbWluZ0FWRk9iakM6OmtleUlEcygp
CiB7CiAgICAgLy8gRklYTUUocmRhcjovL3Byb2JsZW0vMzU1OTcxNDEpOiB1c2UgdGhlIGZ1dHVy
ZSBBVkNvbnRlbnRLZXlSZXF1ZXN0IGtleUlEIHByb3BlcnR5LCByYXRoZXIgdGhhbiBwYXJzaW5n
IGl0IG91dCBvZiB0aGUgaW5pdAogICAgIC8vIGRhdGEsIHRvIGdldCB0aGUga2V5SUQuCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL01vY2tDRE1GYWN0b3J5LmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3Rlc3RpbmcvTW9ja0NETUZhY3RvcnkuY3BwCmluZGV4IGE3NDMzYzZjZjgyMjVj
NzU4ZGJkZjIyYTEyMzYzOTI0MDA4YzNiMjIuLjYzMWUxYTUyYzUzN2M3YmRlYjg2ZDE3MTNiOGNm
NjczZTMzMWIwZGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvTW9ja0NETUZh
Y3RvcnkuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvTW9ja0NETUZhY3RvcnkuY3Bw
CkBAIC0yODMsMTMgKzI4MywxMyBAQCB2b2lkIE1vY2tDRE1JbnN0YW5jZTo6cmVxdWVzdExpY2Vu
c2UoTGljZW5zZVR5cGUgbGljZW5zZVR5cGUsIGNvbnN0IEF0b21pY1N0cmluZwogICAgIH0KIAog
ICAgIGF1dG8ga2V5SURzID0gSW5pdERhdGFSZWdpc3RyeTo6c2hhcmVkKCkuZXh0cmFjdEtleUlE
cyhpbml0RGF0YVR5cGUsIGluaXREYXRhKTsKLSAgICBpZiAoa2V5SURzLmlzRW1wdHkoKSkgewor
ICAgIGlmICgha2V5SURzKSB7CiAgICAgICAgIGNhbGxiYWNrKFNoYXJlZEJ1ZmZlcjo6Y3JlYXRl
KCksIGVtcHR5U3RyaW5nKCksIGZhbHNlLCBTdWNjZXNzVmFsdWU6OkZhaWxlZCk7CiAgICAgICAg
IHJldHVybjsKICAgICB9CiAKICAgICBTdHJpbmcgc2Vzc2lvbklEID0gY3JlYXRlQ2Fub25pY2Fs
VVVJRFN0cmluZygpOwotICAgIGZhY3RvcnktPmFkZEtleXNUb1Nlc3Npb25XaXRoSUQoc2Vzc2lv
bklELCBXVEZNb3ZlKGtleUlEcykpOworICAgIGZhY3RvcnktPmFkZEtleXNUb1Nlc3Npb25XaXRo
SUQoc2Vzc2lvbklELCBXVEZNb3ZlKGtleUlEcy52YWx1ZSgpKSk7CiAKICAgICBDU3RyaW5nIGxp
Y2Vuc2UgeyAibGljZW5zZSIgfTsKICAgICBjYWxsYmFjayhTaGFyZWRCdWZmZXI6OmNyZWF0ZShs
aWNlbnNlLmRhdGEoKSwgbGljZW5zZS5sZW5ndGgoKSksIHNlc3Npb25JRCwgZmFsc2UsIFN1Y2Nl
c3NWYWx1ZTo6U3VjY2VlZGVkKTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>346482</attachid>
            <date>2018-08-03 07:50:52 -0700</date>
            <delta_ts>2018-08-03 08:15:59 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-188303-20180803155051.patch</filename>
            <type>text/plain</type>
            <size>15907</size>
            <attacher name="Charlie Turner">cturner</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjM0NDk3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNDE5ZTMzNDMxNDQyNjI4
NTAzNjFlZGUyYjkzNTFkZjkyOTlhNmZmYy4uNDI2YmIzNWYxZTllOTgyMGM3Njg1NzJiYTEzODMz
MTgzNTZmM2ExZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ1IEBACisyMDE4LTA4LTAzICBDaGFy
bGllIFR1cm5lciAgPGN0dXJuZXJAaWdhbGlhLmNvbT4KKworICAgICAgICBSZXR1cm4gZXh0cmFj
dGVkIGtleSBpZHMgYXMgYW4gb3B0aW9uYWwKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTE4ODMwMworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIEFuIGVtcHR5IGxpc3Qgb2YgZXh0cmFjdGVkIGtleSBpZHMgd2Fz
IGJlaW5nIGNvbnNpZGVyZWQgYSBmYWlsdXJlCisgICAgICAgIGNhc2UgYmVmb3JlIHRoaXMgcGF0
Y2guIEluIHRoZSBQU1NIIGJveGVzIGZyb20gdGhlIENFTkMgc3RhbmRhcmQsCisgICAgICAgIGl0
J3Mgbm90IHVuY29tbW9uIGZvciB0aGUgYm94IHRvIGJlIHZlcnNpb24gMCwgbWVhbmluZyBpdCBo
YXMgbm8KKyAgICAgICAgZW1iZWRkZWQga2V5IGlkcywgc28gdGhlIGNhc2Ugd2hlbiB0aGVyZSdz
IGFuIGVtcHR5IGxpc3Qgc2hvdWxkCisgICAgICAgIG5vdCBiZSB0cmVhdGVkIGFzIGFuIGVycm9y
LiBHaXZlbiB0aGlzLCB0aGUgaW50ZXJmYWNlIHNob3VsZCBiZQorICAgICAgICBtb3JlIGdlbmVy
YWwgYW5kIGFsbG93IGZvciBhIHNlbnRpbmVsIHZhbHVlIGluZGljYXRpbmcgYSBwYXJzaW5nCisg
ICAgICAgIGVycm9yIHJhdGhlciB0aGFuIGFuIGFic2VuY2Ugb2Yga2V5IGlkcy4KKworICAgICAg
ICBDb3ZlcmVkIGJ5IGV4aXN0aW5nIHRlc3RzLgorCisgICAgICAgICogTW9kdWxlcy9lbmNyeXB0
ZWRtZWRpYS9Jbml0RGF0YVJlZ2lzdHJ5LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmV4dHJhY3RL
ZXlJRHNLZXlpZHMpOiBDaGFuZ2UgcmV0dXJuIHR5cGUgdG8gYmUgd3JhcHBlZAorICAgICAgICBp
biBhbiBvcHRpb25hbCwgYW5kIG1ha2UgcGFyc2luZyBlcnJvcnMgcmV0dXJuIGEgbnVsbG9wdCBy
YXRoZXIKKyAgICAgICAgdGhhbiBhbiBlbXB0eSB2ZWN0b3IuCisgICAgICAgIChXZWJDb3JlOjpz
YW5pdGl6ZUtleWlkcyk6IFVzZSB0aGUgbmV3IG9wdGlvbmFsIGludGVyZmFjZSwgcmV0dXJuCisg
ICAgICAgIGEgbnVsbCBSZWZQdHIgaW4gdGhlIGNhc2Ugb2YgYSBwYXJzaW5nIGVycm9yLCB0aGlz
IG1ldGhvZCBtYXkgbm93CisgICAgICAgIHJldHVybiBhbiBlbXB0eSB2ZWN0b3IuCisgICAgICAg
IChXZWJDb3JlOjpleHRyYWN0S2V5SURzQ2VuYyk6IE5vdCBpbXBsZW1lbnRlZCwgc28gcmV0dXJu
IGFuIGVycm9yCisgICAgICAgIHZhbHVlIHJhdGhlciB0aGFuIGFuIGVtcHR5IHZlY3Rvci4KKyAg
ICAgICAgKFdlYkNvcmU6OmV4dHJhY3RLZXlJRHNXZWJNKTogRGl0dG8uCisgICAgICAgIChXZWJD
b3JlOjpJbml0RGF0YVJlZ2lzdHJ5OjpleHRyYWN0S2V5SURzKTogRGl0dG8uCisgICAgICAgICog
TW9kdWxlcy9lbmNyeXB0ZWRtZWRpYS9Jbml0RGF0YVJlZ2lzdHJ5Lmg6IFVwZGF0ZSB0aGUgaW50
ZXJmYWNlCisgICAgICAgIHRvIHVzZSBhbiBvcHRpb25hbCByZXR1cm4gdHlwZS4KKyAgICAgICAg
KiBwbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vQ0RNRmFpclBsYXlTdHJlYW1pbmcuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6Q0RNUHJpdmF0ZUZhaXJQbGF5U3RyZWFtaW5nOjpleHRyYWN0
S2V5SURzU2luZik6IFVwZGF0ZQorICAgICAgICB0byB1c2UgdGhlIG5ldyBpbnRlcmZhY2UuCisg
ICAgICAgIChXZWJDb3JlOjpDRE1Qcml2YXRlRmFpclBsYXlTdHJlYW1pbmc6OmV4dHJhY3RLZXlJ
RHNTa2QpOiBEaXR0by4KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24v
Q0RNRmFpclBsYXlTdHJlYW1pbmcuaDogRGl0dG8uCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhp
Y3MvYXZmb3VuZGF0aW9uL29iamMvQ0RNSW5zdGFuY2VGYWlyUGxheVN0cmVhbWluZ0FWRk9iakMu
bW06CisgICAgICAgIChXZWJDb3JlOjpDRE1JbnN0YW5jZUZhaXJQbGF5U3RyZWFtaW5nQVZGT2Jq
Qzo6a2V5SURzKTogRGl0dG8uCisgICAgICAgICogdGVzdGluZy9Nb2NrQ0RNRmFjdG9yeS5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpNb2NrQ0RNSW5zdGFuY2U6OnJlcXVlc3RMaWNlbnNlKTogT25s
eSByZXR1cm4gYW4gZXJyb3IKKyAgICAgICAgaWYgdGhlcmUgcmVhbGx5IHdhcyBhIHBhcnNpbmcg
ZXJyb3IsIHJhdGhlciB0aGFuIHRoZSBjYXNlIG9mIHRoZXJlCisgICAgICAgIGJlaW5nIHplcm8g
a2V5IGlkcyBpbiB0aGUgaW5pdCBkYXRhIHBheWxvYWQuCisKIDIwMTgtMDgtMDIgIENoYXJsaWUg
VHVybmVyICA8Y3R1cm5lckBpZ2FsaWEuY29tPgogCiAgICAgICAgIEhhbmRsZSB6ZXJvLXNpemVk
IElTT01QNCBib3hlcyBhcHByb3ByaWF0ZWx5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL2VuY3J5cHRlZG1lZGlhL0luaXREYXRhUmVnaXN0cnkuY3BwIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9lbmNyeXB0ZWRtZWRpYS9Jbml0RGF0YVJlZ2lzdHJ5LmNwcAppbmRleCBjMjli
MDM4YWQxZDI5MjVjNDM4NDcyZjNhZGYwOGY0YTU0YjBhM2ExLi4xZDY3ZWQ2NmJjMzJhNGUwNmIz
YzY3OTU1YjU0YmJkY2M0Njc5NWQ4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L2VuY3J5cHRlZG1lZGlhL0luaXREYXRhUmVnaXN0cnkuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvZW5jcnlwdGVkbWVkaWEvSW5pdERhdGFSZWdpc3RyeS5jcHAKQEAgLTM3LDI1ICsz
NywyNSBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLXN0YXRpYyBWZWN0b3I8UmVmPFNoYXJl
ZEJ1ZmZlcj4+IGV4dHJhY3RLZXlJRHNLZXlpZHMoY29uc3QgU2hhcmVkQnVmZmVyJiBidWZmZXIp
CitzdGF0aWMgc3RkOjpvcHRpb25hbDxWZWN0b3I8UmVmPFNoYXJlZEJ1ZmZlcj4+PiBleHRyYWN0
S2V5SURzS2V5aWRzKGNvbnN0IFNoYXJlZEJ1ZmZlciYgYnVmZmVyKQogewogICAgIC8vIDEuIEZv
cm1hdAogICAgIC8vIGh0dHBzOi8vdzNjLmdpdGh1Yi5pby9lbmNyeXB0ZWQtbWVkaWEvZm9ybWF0
LXJlZ2lzdHJ5L2luaXRkYXRhL2tleWlkcy5odG1sI2Zvcm1hdAogICAgIGlmIChidWZmZXIuc2l6
ZSgpID4gc3RkOjpudW1lcmljX2xpbWl0czx1bnNpZ25lZD46Om1heCgpKQotICAgICAgICByZXR1
cm4geyB9OworICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OwogICAgIFN0cmluZyBqc29uIHsg
YnVmZmVyLmRhdGEoKSwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KGJ1ZmZlci5zaXplKCkpIH07CiAK
ICAgICBSZWZQdHI8SlNPTjo6VmFsdWU+IHZhbHVlOwogICAgIGlmICghSlNPTjo6VmFsdWU6OnBh
cnNlSlNPTihqc29uLCB2YWx1ZSkpCi0gICAgICAgIHJldHVybiB7IH07CisgICAgICAgIHJldHVy
biBzdGQ6Om51bGxvcHQ7CiAKICAgICBSZWZQdHI8SlNPTjo6T2JqZWN0PiBvYmplY3Q7CiAgICAg
aWYgKCF2YWx1ZS0+YXNPYmplY3Qob2JqZWN0KSkKLSAgICAgICAgcmV0dXJuIHsgfTsKKyAgICAg
ICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKIAogICAgIFJlZlB0cjxKU09OOjpBcnJheT4ga2lkc0Fy
cmF5OwogICAgIGlmICghb2JqZWN0LT5nZXRBcnJheSgia2lkcyIsIGtpZHNBcnJheSkpCi0gICAg
ICAgIHJldHVybiB7IH07CisgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CiAKICAgICBWZWN0
b3I8UmVmPFNoYXJlZEJ1ZmZlcj4+IGtleUlEczsKICAgICBmb3IgKGF1dG8mIHZhbHVlIDogKmtp
ZHNBcnJheSkgewpAQCAtNzgsMTMgKzc4LDEzIEBAIHN0YXRpYyBSZWZQdHI8U2hhcmVkQnVmZmVy
PiBzYW5pdGl6ZUtleWlkcyhjb25zdCBTaGFyZWRCdWZmZXImIGJ1ZmZlcikKIHsKICAgICAvLyAx
LiBGb3JtYXQKICAgICAvLyBodHRwczovL3czYy5naXRodWIuaW8vZW5jcnlwdGVkLW1lZGlhL2Zv
cm1hdC1yZWdpc3RyeS9pbml0ZGF0YS9rZXlpZHMuaHRtbCNmb3JtYXQKLSAgICBWZWN0b3I8UmVm
PFNoYXJlZEJ1ZmZlcj4+IGtleUlEQnVmZmVyID0gZXh0cmFjdEtleUlEc0tleWlkcyhidWZmZXIp
OwotICAgIGlmIChrZXlJREJ1ZmZlci5pc0VtcHR5KCkpCisgICAgYXV0byBrZXlJREJ1ZmZlciA9
IGV4dHJhY3RLZXlJRHNLZXlpZHMoYnVmZmVyKTsKKyAgICBpZiAoIWtleUlEQnVmZmVyKQogICAg
ICAgICByZXR1cm4gbnVsbHB0cjsKIAogICAgIGF1dG8gb2JqZWN0ID0gSlNPTjo6T2JqZWN0Ojpj
cmVhdGUoKTsKICAgICBhdXRvIGtpZHNBcnJheSA9IEpTT046OkFycmF5OjpjcmVhdGUoKTsKLSAg
ICBmb3IgKGF1dG8mIGJ1ZmZlciA6IGtleUlEQnVmZmVyKQorICAgIGZvciAoYXV0byYgYnVmZmVy
IDoga2V5SURCdWZmZXIudmFsdWUoKSkKICAgICAgICAga2lkc0FycmF5LT5wdXNoU3RyaW5nKFdU
Rjo6YmFzZTY0VVJMRW5jb2RlKGJ1ZmZlci0+ZGF0YSgpLCBidWZmZXItPnNpemUoKSkpOwogICAg
IG9iamVjdC0+c2V0QXJyYXkoImtpZHMiLCBXVEZNb3ZlKGtpZHNBcnJheSkpOwogCkBAIC0xMDAs
MTIgKzEwMCwxMiBAQCBzdGF0aWMgUmVmUHRyPFNoYXJlZEJ1ZmZlcj4gc2FuaXRpemVDZW5jKGNv
bnN0IFNoYXJlZEJ1ZmZlciYgYnVmZmVyKQogICAgIHJldHVybiBidWZmZXIuY29weSgpOwogfQog
Ci1zdGF0aWMgVmVjdG9yPFJlZjxTaGFyZWRCdWZmZXI+PiBleHRyYWN0S2V5SURzQ2VuYyhjb25z
dCBTaGFyZWRCdWZmZXImKQorc3RhdGljIHN0ZDo6b3B0aW9uYWw8VmVjdG9yPFJlZjxTaGFyZWRC
dWZmZXI+Pj4gZXh0cmFjdEtleUlEc0NlbmMoY29uc3QgU2hhcmVkQnVmZmVyJikKIHsKICAgICAv
LyA0LiBDb21tb24gU3lzdGVtSUQgYW5kIFBTU0ggQm94IEZvcm1hdAogICAgIC8vIGh0dHBzOi8v
dzNjLmdpdGh1Yi5pby9lbmNyeXB0ZWQtbWVkaWEvZm9ybWF0LXJlZ2lzdHJ5L2luaXRkYXRhL2Nl
bmMuaHRtbCNjb21tb24tc3lzdGVtCiAgICAgbm90SW1wbGVtZW50ZWQoKTsKLSAgICByZXR1cm4g
eyB9OworICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CiB9CiAKIHN0YXRpYyBSZWZQdHI8U2hhcmVk
QnVmZmVyPiBzYW5pdGl6ZVdlYk0oY29uc3QgU2hhcmVkQnVmZmVyJiBidWZmZXIpCkBAIC0xMTYs
MTIgKzExNiwxMiBAQCBzdGF0aWMgUmVmUHRyPFNoYXJlZEJ1ZmZlcj4gc2FuaXRpemVXZWJNKGNv
bnN0IFNoYXJlZEJ1ZmZlciYgYnVmZmVyKQogICAgIHJldHVybiBidWZmZXIuY29weSgpOwogfQog
Ci1zdGF0aWMgVmVjdG9yPFJlZjxTaGFyZWRCdWZmZXI+PiBleHRyYWN0S2V5SURzV2ViTShjb25z
dCBTaGFyZWRCdWZmZXImKQorc3RhdGljIHN0ZDo6b3B0aW9uYWw8VmVjdG9yPFJlZjxTaGFyZWRC
dWZmZXI+Pj4gZXh0cmFjdEtleUlEc1dlYk0oY29uc3QgU2hhcmVkQnVmZmVyJikKIHsKICAgICAv
LyAxLiBGb3JtYXQKICAgICAvLyBodHRwczovL3czYy5naXRodWIuaW8vZW5jcnlwdGVkLW1lZGlh
L2Zvcm1hdC1yZWdpc3RyeS9pbml0ZGF0YS93ZWJtLmh0bWwjZm9ybWF0CiAgICAgbm90SW1wbGVt
ZW50ZWQoKTsKLSAgICByZXR1cm4geyB9OworICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CiB9CiAK
IEluaXREYXRhUmVnaXN0cnkmIEluaXREYXRhUmVnaXN0cnk6OnNoYXJlZCgpCkBAIC0xNDcsMTEg
KzE0NywxMSBAQCBSZWZQdHI8U2hhcmVkQnVmZmVyPiBJbml0RGF0YVJlZ2lzdHJ5OjpzYW5pdGl6
ZUluaXREYXRhKGNvbnN0IEF0b21pY1N0cmluZyYgaW5pdAogICAgIHJldHVybiBpdGVyLT52YWx1
ZS5zYW5pdGl6ZUluaXREYXRhKGJ1ZmZlcik7CiB9CiAKLVZlY3RvcjxSZWY8U2hhcmVkQnVmZmVy
Pj4gSW5pdERhdGFSZWdpc3RyeTo6ZXh0cmFjdEtleUlEcyhjb25zdCBBdG9taWNTdHJpbmcmIGlu
aXREYXRhVHlwZSwgY29uc3QgU2hhcmVkQnVmZmVyJiBidWZmZXIpCitzdGQ6Om9wdGlvbmFsPFZl
Y3RvcjxSZWY8U2hhcmVkQnVmZmVyPj4+IEluaXREYXRhUmVnaXN0cnk6OmV4dHJhY3RLZXlJRHMo
Y29uc3QgQXRvbWljU3RyaW5nJiBpbml0RGF0YVR5cGUsIGNvbnN0IFNoYXJlZEJ1ZmZlciYgYnVm
ZmVyKQogewogICAgIGF1dG8gaXRlciA9IG1fdHlwZXMuZmluZChpbml0RGF0YVR5cGUpOwogICAg
IGlmIChpdGVyID09IG1fdHlwZXMuZW5kKCkgfHwgIWl0ZXItPnZhbHVlLnNhbml0aXplSW5pdERh
dGEpCi0gICAgICAgIHJldHVybiB7IH07CisgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CiAg
ICAgcmV0dXJuIGl0ZXItPnZhbHVlLmV4dHJhY3RLZXlJRHMoYnVmZmVyKTsKIH0KIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9lbmNyeXB0ZWRtZWRpYS9Jbml0RGF0YVJlZ2lz
dHJ5LmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2VuY3J5cHRlZG1lZGlhL0luaXREYXRhUmVn
aXN0cnkuaAppbmRleCAzOWJmYTA0NTM1NDZkYTU3N2JhM2Q5ZjhmMWE0OTQ4OTFiODY4MTc0Li5k
MWUzNTg0ZGZlMzUwOWRmZDJiNGI5NDg3MDY4OTE4ZDQ1Yjg5MjIzIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL2VuY3J5cHRlZG1lZGlhL0luaXREYXRhUmVnaXN0cnkuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2VuY3J5cHRlZG1lZGlhL0luaXREYXRhUmVnaXN0cnku
aApAQCAtMjksNiArMjksNyBAQAogCiAjaW5jbHVkZSA8d3RmL0Z1bmN0aW9uLmg+CiAjaW5jbHVk
ZSA8d3RmL0hhc2hNYXAuaD4KKyNpbmNsdWRlIDx3dGYvT3B0aW9uYWwuaD4KICNpbmNsdWRlIDx3
dGYvUmVmLmg+CiAjaW5jbHVkZSA8d3RmL1JlZlB0ci5oPgogI2luY2x1ZGUgPHd0Zi9WZWN0b3Iu
aD4KQEAgLTQ1LDExICs0NiwxMSBAQCBwdWJsaWM6CiAgICAgZnJpZW5kIGNsYXNzIE5ldmVyRGVz
dHJveWVkPEluaXREYXRhUmVnaXN0cnk+OwogCiAgICAgUmVmUHRyPFNoYXJlZEJ1ZmZlcj4gc2Fu
aXRpemVJbml0RGF0YShjb25zdCBBdG9taWNTdHJpbmcmIGluaXREYXRhVHlwZSwgY29uc3QgU2hh
cmVkQnVmZmVyJik7Ci0gICAgV0VCQ09SRV9FWFBPUlQgVmVjdG9yPFJlZjxTaGFyZWRCdWZmZXI+
PiBleHRyYWN0S2V5SURzKGNvbnN0IEF0b21pY1N0cmluZyYgaW5pdERhdGFUeXBlLCBjb25zdCBT
aGFyZWRCdWZmZXImKTsKKyAgICBXRUJDT1JFX0VYUE9SVCBzdGQ6Om9wdGlvbmFsPFZlY3RvcjxS
ZWY8U2hhcmVkQnVmZmVyPj4+IGV4dHJhY3RLZXlJRHMoY29uc3QgQXRvbWljU3RyaW5nJiBpbml0
RGF0YVR5cGUsIGNvbnN0IFNoYXJlZEJ1ZmZlciYpOwogCiAgICAgc3RydWN0IEluaXREYXRhVHlw
ZUNhbGxiYWNrcyB7CiAgICAgICAgIHVzaW5nIFNhbml0aXplSW5pdERhdGFDYWxsYmFjayA9IEZ1
bmN0aW9uPFJlZlB0cjxTaGFyZWRCdWZmZXI+KGNvbnN0IFNoYXJlZEJ1ZmZlciYpPjsKLSAgICAg
ICAgdXNpbmcgRXh0cmFjdEtleUlEc0NhbGxiYWNrID0gRnVuY3Rpb248VmVjdG9yPFJlZjxTaGFy
ZWRCdWZmZXI+Pihjb25zdCBTaGFyZWRCdWZmZXImKT47CisgICAgICAgIHVzaW5nIEV4dHJhY3RL
ZXlJRHNDYWxsYmFjayA9IEZ1bmN0aW9uPHN0ZDo6b3B0aW9uYWw8VmVjdG9yPFJlZjxTaGFyZWRC
dWZmZXI+Pj4oY29uc3QgU2hhcmVkQnVmZmVyJik+OwogCiAgICAgICAgIFNhbml0aXplSW5pdERh
dGFDYWxsYmFjayBzYW5pdGl6ZUluaXREYXRhOwogICAgICAgICBFeHRyYWN0S2V5SURzQ2FsbGJh
Y2sgZXh0cmFjdEtleUlEczsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2F2Zm91bmRhdGlvbi9DRE1GYWlyUGxheVN0cmVhbWluZy5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vQ0RNRmFpclBsYXlTdHJlYW1pbmcu
Y3BwCmluZGV4IGQyMDg2ODQ4ZGU5ZTAzNjdiMjlhNzAyZDY0NTFlMGVlOGYyNjc0YTguLjhjNjRk
ZTFlNTE1MzZjY2ViMmI0ZjIyZTFlZmU5ODlmNjEwM2E5ZDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9DRE1GYWlyUGxheVN0cmVhbWlu
Zy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9u
L0NETUZhaXJQbGF5U3RyZWFtaW5nLmNwcApAQCAtMTU4LDkgKzE1OCw4IEBAIHN0YXRpYyBTY2hl
bWVBbmRLZXlSZXN1bHQgZXh0cmFjdFNjaGVtZUFuZEtleUlkRnJvbVNpbmYoY29uc3QgU2hhcmVk
QnVmZmVyJiBidWZmCiAgICAgcmV0dXJuIHJlc3VsdDsKIH0KIAotVmVjdG9yPFJlZjxTaGFyZWRC
dWZmZXI+PiBDRE1Qcml2YXRlRmFpclBsYXlTdHJlYW1pbmc6OmV4dHJhY3RLZXlJRHNTaW5mKGNv
bnN0IFNoYXJlZEJ1ZmZlciYgYnVmZmVyKQorc3RkOjpvcHRpb25hbDxWZWN0b3I8UmVmPFNoYXJl
ZEJ1ZmZlcj4+PiBDRE1Qcml2YXRlRmFpclBsYXlTdHJlYW1pbmc6OmV4dHJhY3RLZXlJRHNTaW5m
KGNvbnN0IFNoYXJlZEJ1ZmZlciYgYnVmZmVyKQogewotCiAgICAgVmVjdG9yPFJlZjxTaGFyZWRC
dWZmZXI+PiBrZXlJRHM7CiAgICAgYXV0byByZXN1bHRzID0gZXh0cmFjdFNjaGVtZUFuZEtleUlk
RnJvbVNpbmYoYnVmZmVyKTsKIApAQCAtMTg3LDcgKzE4Niw3IEBAIFJlZlB0cjxTaGFyZWRCdWZm
ZXI+IENETVByaXZhdGVGYWlyUGxheVN0cmVhbWluZzo6c2FuaXRpemVTa2QoY29uc3QgU2hhcmVk
QnVmZmVyCiAgICAgcmV0dXJuIGJ1ZmZlci5jb3B5KCk7CiB9CiAKLVZlY3RvcjxSZWY8U2hhcmVk
QnVmZmVyPj4gQ0RNUHJpdmF0ZUZhaXJQbGF5U3RyZWFtaW5nOjpleHRyYWN0S2V5SURzU2tkKGNv
bnN0IFNoYXJlZEJ1ZmZlciYgYnVmZmVyKQorc3RkOjpvcHRpb25hbDxWZWN0b3I8UmVmPFNoYXJl
ZEJ1ZmZlcj4+PiBDRE1Qcml2YXRlRmFpclBsYXlTdHJlYW1pbmc6OmV4dHJhY3RLZXlJRHNTa2Qo
Y29uc3QgU2hhcmVkQnVmZmVyJiBidWZmZXIpCiB7CiAgICAgLy8gSW4gdGhlICdza2QnIHNjaGVt
ZSwgdGhlIGluaXQgZGF0YSBpcyB0aGUga2V5IElELgogICAgIFZlY3RvcjxSZWY8U2hhcmVkQnVm
ZmVyPj4ga2V5SURzOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvYXZmb3VuZGF0aW9uL0NETUZhaXJQbGF5U3RyZWFtaW5nLmggYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vQ0RNRmFpclBsYXlTdHJlYW1pbmcuaAppbmRl
eCA4YWQzNjg5YTlhNzQyM2EzMzlkMDhkZjRjODNhZTAyYjEzZDJiZjVkLi4xNDRjMDIxYTJmNGNm
Nzc1Njc3NmQ1ZWQ0ZTAwNmU2ODE0ZjE5OTJkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vQ0RNRmFpclBsYXlTdHJlYW1pbmcuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vQ0RNRmFpclBs
YXlTdHJlYW1pbmcuaApAQCAtNjgsMTEgKzY4LDExIEBAIHB1YmxpYzoKICAgICBzdGQ6Om9wdGlv
bmFsPFN0cmluZz4gc2FuaXRpemVTZXNzaW9uSWQoY29uc3QgU3RyaW5nJikgY29uc3Qgb3ZlcnJp
ZGU7CiAKICAgICBzdGF0aWMgY29uc3QgQXRvbWljU3RyaW5nJiBzaW5mTmFtZSgpOwotICAgIHN0
YXRpYyBWZWN0b3I8UmVmPFNoYXJlZEJ1ZmZlcj4+IGV4dHJhY3RLZXlJRHNTaW5mKGNvbnN0IFNo
YXJlZEJ1ZmZlciYpOworICAgIHN0YXRpYyBzdGQ6Om9wdGlvbmFsPFZlY3RvcjxSZWY8U2hhcmVk
QnVmZmVyPj4+IGV4dHJhY3RLZXlJRHNTaW5mKGNvbnN0IFNoYXJlZEJ1ZmZlciYpOwogICAgIHN0
YXRpYyBSZWZQdHI8U2hhcmVkQnVmZmVyPiBzYW5pdGl6ZVNpbmYoY29uc3QgU2hhcmVkQnVmZmVy
Jik7CiAKICAgICBzdGF0aWMgY29uc3QgQXRvbWljU3RyaW5nJiBza2ROYW1lKCk7Ci0gICAgc3Rh
dGljIFZlY3RvcjxSZWY8U2hhcmVkQnVmZmVyPj4gZXh0cmFjdEtleUlEc1NrZChjb25zdCBTaGFy
ZWRCdWZmZXImKTsKKyAgICBzdGF0aWMgc3RkOjpvcHRpb25hbDxWZWN0b3I8UmVmPFNoYXJlZEJ1
ZmZlcj4+PiBleHRyYWN0S2V5SURzU2tkKGNvbnN0IFNoYXJlZEJ1ZmZlciYpOwogICAgIHN0YXRp
YyBSZWZQdHI8U2hhcmVkQnVmZmVyPiBzYW5pdGl6ZVNrZChjb25zdCBTaGFyZWRCdWZmZXImKTsK
IH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91
bmRhdGlvbi9vYmpjL0NETUluc3RhbmNlRmFpclBsYXlTdHJlYW1pbmdBVkZPYmpDLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9DRE1JbnN0YW5j
ZUZhaXJQbGF5U3RyZWFtaW5nQVZGT2JqQy5oCmluZGV4IDgzYjlkNTAyM2NjMThhOWU0MjkzZmY2
MjVhZjE1MzNjYTJmYTAxMGYuLjg1N2RkOWUyMTY4ODg3N2I5YTI0ZDE3YWE2YjdlZTU1Y2NhNWQ5
MzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRh
dGlvbi9vYmpjL0NETUluc3RhbmNlRmFpclBsYXlTdHJlYW1pbmdBVkZPYmpDLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvQ0RNSW5zdGFu
Y2VGYWlyUGxheVN0cmVhbWluZ0FWRk9iakMuaApAQCAtMjksNiArMjksNyBAQAogCiAjaW5jbHVk
ZSAiQ0RNSW5zdGFuY2UuaCIKICNpbmNsdWRlIDx3dGYvRnVuY3Rpb24uaD4KKyNpbmNsdWRlIDx3
dGYvT3B0aW9uYWwuaD4KICNpbmNsdWRlIDx3dGYvUmV0YWluUHRyLmg+CiAjaW5jbHVkZSA8d3Rm
L1dlYWtQdHIuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KQEAgLTg0LDcgKzg1
LDcgQEAgcHVibGljOgogcHJpdmF0ZToKICAgICBib29sIGlzTGljZW5zZVR5cGVTdXBwb3J0ZWQo
TGljZW5zZVR5cGUpIGNvbnN0OwogCi0gICAgVmVjdG9yPFJlZjxTaGFyZWRCdWZmZXI+PiBrZXlJ
RHMoKTsKKyAgICBzdGQ6Om9wdGlvbmFsPFZlY3RvcjxSZWY8U2hhcmVkQnVmZmVyPj4+IGtleUlE
cygpOwogCiAgICAgUmVmUHRyPFNoYXJlZEJ1ZmZlcj4gbV9zZXJ2ZXJDZXJ0aWZpY2F0ZTsKICAg
ICBib29sIG1fcGVyc2lzdGVudFN0YXRlQWxsb3dlZCB7IHRydWUgfTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL0NETUluc3Rh
bmNlRmFpclBsYXlTdHJlYW1pbmdBVkZPYmpDLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvQ0RNSW5zdGFuY2VGYWlyUGxheVN0cmVhbWluZ0FW
Rk9iakMubW0KaW5kZXggZTEwNTQ4NmNiZjVmMDY1ZmIzNmUyNmNmMDQyMjM0YmYwMTVhNDNmZi4u
MTY2ZmQxYjljYjZlOTQ2MTZjNGVmMzVlMDk0MWYzMDM1ZWIyZmQ0ZiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvQ0RNSW5zdGFu
Y2VGYWlyUGxheVN0cmVhbWluZ0FWRk9iakMubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvQ0RNSW5zdGFuY2VGYWlyUGxheVN0cmVhbWlu
Z0FWRk9iakMubW0KQEAgLTIzMyw3ICsyMzMsNyBAQCBib29sIENETUluc3RhbmNlRmFpclBsYXlT
dHJlYW1pbmdBVkZPYmpDOjppc0xpY2Vuc2VUeXBlU3VwcG9ydGVkKExpY2Vuc2VUeXBlIGxpYwog
ICAgIH0KIH0KIAotVmVjdG9yPFJlZjxTaGFyZWRCdWZmZXI+PiBDRE1JbnN0YW5jZUZhaXJQbGF5
U3RyZWFtaW5nQVZGT2JqQzo6a2V5SURzKCkKK3N0ZDo6b3B0aW9uYWw8VmVjdG9yPFJlZjxTaGFy
ZWRCdWZmZXI+Pj4gQ0RNSW5zdGFuY2VGYWlyUGxheVN0cmVhbWluZ0FWRk9iakM6OmtleUlEcygp
CiB7CiAgICAgLy8gRklYTUUocmRhcjovL3Byb2JsZW0vMzU1OTcxNDEpOiB1c2UgdGhlIGZ1dHVy
ZSBBVkNvbnRlbnRLZXlSZXF1ZXN0IGtleUlEIHByb3BlcnR5LCByYXRoZXIgdGhhbiBwYXJzaW5n
IGl0IG91dCBvZiB0aGUgaW5pdAogICAgIC8vIGRhdGEsIHRvIGdldCB0aGUga2V5SUQuCkBAIC0z
MDgsOCArMzA4LDggQEAgdm9pZCBDRE1JbnN0YW5jZUZhaXJQbGF5U3RyZWFtaW5nQVZGT2JqQzo6
dXBkYXRlTGljZW5zZShjb25zdCBTdHJpbmcmLCBMaWNlbnNlVHkKICAgICAgICAgY2FsbGJhY2so
ZmFsc2UsIHN0ZDo6bnVsbG9wdCwgc3RkOjpudWxsb3B0LCBzdGQ6Om51bGxvcHQsIEZhaWxlZCk7
CiAgICAgICAgIHJldHVybjsKICAgICB9Ci0gICAgVmVjdG9yPFJlZjxTaGFyZWRCdWZmZXI+PiBr
ZXlJRHMgPSB0aGlzLT5rZXlJRHMoKTsKLSAgICBpZiAoa2V5SURzLmlzRW1wdHkoKSkgeworICAg
IGF1dG8ga2V5SURzID0gdGhpcy0+a2V5SURzKCk7CisgICAgaWYgKCFrZXlJRHMgfHwgKGtleUlE
cyAmJiBrZXlJRHMudmFsdWUoKS5pc0VtcHR5KCkpKSB7CiAgICAgICAgIGNhbGxiYWNrKGZhbHNl
LCBzdGQ6Om51bGxvcHQsIHN0ZDo6bnVsbG9wdCwgc3RkOjpudWxsb3B0LCBGYWlsZWQpOwogICAg
ICAgICByZXR1cm47CiAgICAgfQpAQCAtMzIxLDcgKzMyMSw3IEBAIHZvaWQgQ0RNSW5zdGFuY2VG
YWlyUGxheVN0cmVhbWluZ0FWRk9iakM6OnVwZGF0ZUxpY2Vuc2UoY29uc3QgU3RyaW5nJiwgTGlj
ZW5zZVR5CiAgICAgaWYgKCFtZXRob2QubmFtZSkgewogICAgICAgICBLZXlTdGF0dXNWZWN0b3Ig
a2V5U3RhdHVzZXM7CiAgICAgICAgIGtleVN0YXR1c2VzLnJlc2VydmVJbml0aWFsQ2FwYWNpdHko
MSk7Ci0gICAgICAgIGtleVN0YXR1c2VzLnVuY2hlY2tlZEFwcGVuZChzdGQ6Om1ha2VfcGFpcihX
VEZNb3ZlKGtleUlEcy5maXJzdCgpKSwgS2V5U3RhdHVzOjpVc2FibGUpKTsKKyAgICAgICAga2V5
U3RhdHVzZXMudW5jaGVja2VkQXBwZW5kKHN0ZDo6bWFrZV9wYWlyKFdURk1vdmUoa2V5SURzLnZh
bHVlKCkuZmlyc3QoKSksIEtleVN0YXR1czo6VXNhYmxlKSk7CiAgICAgICAgIGNhbGxiYWNrKGZh
bHNlLCBzdGQ6Om1ha2Vfb3B0aW9uYWwoV1RGTW92ZShrZXlTdGF0dXNlcykpLCBzdGQ6Om51bGxv
cHQsIHN0ZDo6bnVsbG9wdCwgU3VjY2VlZGVkKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KQEAg
LTQ0NiwxNSArNDQ2LDE1IEBAIHZvaWQgQ0RNSW5zdGFuY2VGYWlyUGxheVN0cmVhbWluZ0FWRk9i
akM6OmRpZFByb3ZpZGVSZXF1ZXN0KEFWQ29udGVudEtleVJlcXVlc3QKICAgICAgICAgcmV0dXJu
OwogCiAgICAgUmV0YWluUHRyPE5TRGF0YT4gYXBwSWRlbnRpZmllciA9IG1fc2VydmVyQ2VydGlm
aWNhdGUgPyBtX3NlcnZlckNlcnRpZmljYXRlLT5jcmVhdGVOU0RhdGEoKSA6IG51bGxwdHI7Ci0g
ICAgVmVjdG9yPFJlZjxTaGFyZWRCdWZmZXI+PiBrZXlJRHMgPSB0aGlzLT5rZXlJRHMoKTsKKyAg
ICBhdXRvIGtleUlEcyA9IHRoaXMtPmtleUlEcygpOwogCi0gICAgaWYgKGtleUlEcy5pc0VtcHR5
KCkpIHsKKyAgICBpZiAoIWtleUlEcyB8fCAoa2V5SURzICYmIGtleUlEcy52YWx1ZSgpLmlzRW1w
dHkoKSkpIHsKICAgICAgICAgbV9yZXF1ZXN0TGljZW5zZUNhbGxiYWNrKFNoYXJlZEJ1ZmZlcjo6
Y3JlYXRlKCksIG1fc2Vzc2lvbklkLCBmYWxzZSwgRmFpbGVkKTsKICAgICAgICAgbV9yZXF1ZXN0
TGljZW5zZUNhbGxiYWNrID0gbnVsbHB0cjsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAotICAg
IFJldGFpblB0cjxOU0RhdGE+IGNvbnRlbnRJZGVudGlmaWVyID0ga2V5SURzLmZpcnN0KCktPmNy
ZWF0ZU5TRGF0YSgpOworICAgIFJldGFpblB0cjxOU0RhdGE+IGNvbnRlbnRJZGVudGlmaWVyID0g
a2V5SURzLnZhbHVlKCkuZmlyc3QoKS0+Y3JlYXRlTlNEYXRhKCk7CiAgICAgW21fcmVxdWVzdCBt
YWtlU3RyZWFtaW5nQ29udGVudEtleVJlcXVlc3REYXRhRm9yQXBwOmFwcElkZW50aWZpZXIuZ2V0
KCkgY29udGVudElkZW50aWZpZXI6Y29udGVudElkZW50aWZpZXIuZ2V0KCkgb3B0aW9uczpuaWwg
Y29tcGxldGlvbkhhbmRsZXI6W3RoaXMsIHdlYWtUaGlzID0gbWFrZVdlYWtQdHIoKnRoaXMpXSAo
TlNEYXRhICpjb250ZW50S2V5UmVxdWVzdERhdGEsIE5TRXJyb3IgKmVycm9yKSBtdXRhYmxlIHsK
ICAgICAgICAgY2FsbE9uTWFpblRocmVhZChbdGhpcywgd2Vha1RoaXMgPSBXVEZNb3ZlKHdlYWtU
aGlzKSwgZXJyb3IgPSByZXRhaW5QdHIoZXJyb3IpLCBjb250ZW50S2V5UmVxdWVzdERhdGEgPSBy
ZXRhaW5QdHIoY29udGVudEtleVJlcXVlc3REYXRhKV0gewogICAgICAgICAgICAgaWYgKCF3ZWFr
VGhpcyB8fCAhbV9yZXF1ZXN0TGljZW5zZUNhbGxiYWNrKQpAQCAtNDkzLDEwICs0OTMsMTAgQEAg
dm9pZCBDRE1JbnN0YW5jZUZhaXJQbGF5U3RyZWFtaW5nQVZGT2JqQzo6cmVxdWVzdERpZFN1Y2Nl
ZWQoQVZDb250ZW50S2V5UmVxdWVzdAogICAgIGlmICghbV91cGRhdGVMaWNlbnNlQ2FsbGJhY2sp
CiAgICAgICAgIHJldHVybjsKIAotICAgIFZlY3RvcjxSZWY8U2hhcmVkQnVmZmVyPj4ga2V5SURz
ID0gdGhpcy0+a2V5SURzKCk7CisgICAgYXV0byBrZXlJRHMgPSB0aGlzLT5rZXlJRHMoKTsKICAg
ICBLZXlTdGF0dXNWZWN0b3Iga2V5U3RhdHVzZXM7CiAgICAga2V5U3RhdHVzZXMucmVzZXJ2ZUlu
aXRpYWxDYXBhY2l0eSgxKTsKLSAgICBrZXlTdGF0dXNlcy51bmNoZWNrZWRBcHBlbmQoc3RkOjpt
YWtlX3BhaXIoV1RGTW92ZShrZXlJRHMuZmlyc3QoKSksIEtleVN0YXR1czo6VXNhYmxlKSk7Cisg
ICAga2V5U3RhdHVzZXMudW5jaGVja2VkQXBwZW5kKHN0ZDo6bWFrZV9wYWlyKFdURk1vdmUoa2V5
SURzLnZhbHVlKCkuZmlyc3QoKSksIEtleVN0YXR1czo6VXNhYmxlKSk7CiAgICAgbV91cGRhdGVM
aWNlbnNlQ2FsbGJhY2soZmFsc2UsIHN0ZDo6bWFrZV9vcHRpb25hbChXVEZNb3ZlKGtleVN0YXR1
c2VzKSksIHN0ZDo6bnVsbG9wdCwgc3RkOjpudWxsb3B0LCBTdWNjZWVkZWQpOwogfQogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL01vY2tDRE1GYWN0b3J5LmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3Rlc3RpbmcvTW9ja0NETUZhY3RvcnkuY3BwCmluZGV4IGE3NDMzYzZjZjgyMjVj
NzU4ZGJkZjIyYTEyMzYzOTI0MDA4YzNiMjIuLjUxZDc3NzU2YmFjNTU1MzJkM2ZhNzUyY2VlN2M3
NGRlNDVjZjNkMjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvTW9ja0NETUZh
Y3RvcnkuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvTW9ja0NETUZhY3RvcnkuY3Bw
CkBAIC0yODMsMTMgKzI4MywxMyBAQCB2b2lkIE1vY2tDRE1JbnN0YW5jZTo6cmVxdWVzdExpY2Vu
c2UoTGljZW5zZVR5cGUgbGljZW5zZVR5cGUsIGNvbnN0IEF0b21pY1N0cmluZwogICAgIH0KIAog
ICAgIGF1dG8ga2V5SURzID0gSW5pdERhdGFSZWdpc3RyeTo6c2hhcmVkKCkuZXh0cmFjdEtleUlE
cyhpbml0RGF0YVR5cGUsIGluaXREYXRhKTsKLSAgICBpZiAoa2V5SURzLmlzRW1wdHkoKSkgewor
ICAgIGlmICgha2V5SURzIHx8IChrZXlJRHMgJiYga2V5SURzLnZhbHVlKCkuaXNFbXB0eSgpKSkg
ewogICAgICAgICBjYWxsYmFjayhTaGFyZWRCdWZmZXI6OmNyZWF0ZSgpLCBlbXB0eVN0cmluZygp
LCBmYWxzZSwgU3VjY2Vzc1ZhbHVlOjpGYWlsZWQpOwogICAgICAgICByZXR1cm47CiAgICAgfQog
CiAgICAgU3RyaW5nIHNlc3Npb25JRCA9IGNyZWF0ZUNhbm9uaWNhbFVVSURTdHJpbmcoKTsKLSAg
ICBmYWN0b3J5LT5hZGRLZXlzVG9TZXNzaW9uV2l0aElEKHNlc3Npb25JRCwgV1RGTW92ZShrZXlJ
RHMpKTsKKyAgICBmYWN0b3J5LT5hZGRLZXlzVG9TZXNzaW9uV2l0aElEKHNlc3Npb25JRCwgV1RG
TW92ZShrZXlJRHMudmFsdWUoKSkpOwogCiAgICAgQ1N0cmluZyBsaWNlbnNlIHsgImxpY2Vuc2Ui
IH07CiAgICAgY2FsbGJhY2soU2hhcmVkQnVmZmVyOjpjcmVhdGUobGljZW5zZS5kYXRhKCksIGxp
Y2Vuc2UubGVuZ3RoKCkpLCBzZXNzaW9uSUQsIGZhbHNlLCBTdWNjZXNzVmFsdWU6OlN1Y2NlZWRl
ZCk7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>346486</attachid>
            <date>2018-08-03 08:16:02 -0700</date>
            <delta_ts>2018-08-03 08:33:09 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-188303-20180803161601.patch</filename>
            <type>text/plain</type>
            <size>16757</size>
            <attacher name="Charlie Turner">cturner</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjM0NDk3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNDE5ZTMzNDMxNDQyNjI4
NTAzNjFlZGUyYjkzNTFkZjkyOTlhNmZmYy4uNDI2YmIzNWYxZTllOTgyMGM3Njg1NzJiYTEzODMz
MTgzNTZmM2ExZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ1IEBACisyMDE4LTA4LTAzICBDaGFy
bGllIFR1cm5lciAgPGN0dXJuZXJAaWdhbGlhLmNvbT4KKworICAgICAgICBSZXR1cm4gZXh0cmFj
dGVkIGtleSBpZHMgYXMgYW4gb3B0aW9uYWwKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTE4ODMwMworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIEFuIGVtcHR5IGxpc3Qgb2YgZXh0cmFjdGVkIGtleSBpZHMgd2Fz
IGJlaW5nIGNvbnNpZGVyZWQgYSBmYWlsdXJlCisgICAgICAgIGNhc2UgYmVmb3JlIHRoaXMgcGF0
Y2guIEluIHRoZSBQU1NIIGJveGVzIGZyb20gdGhlIENFTkMgc3RhbmRhcmQsCisgICAgICAgIGl0
J3Mgbm90IHVuY29tbW9uIGZvciB0aGUgYm94IHRvIGJlIHZlcnNpb24gMCwgbWVhbmluZyBpdCBo
YXMgbm8KKyAgICAgICAgZW1iZWRkZWQga2V5IGlkcywgc28gdGhlIGNhc2Ugd2hlbiB0aGVyZSdz
IGFuIGVtcHR5IGxpc3Qgc2hvdWxkCisgICAgICAgIG5vdCBiZSB0cmVhdGVkIGFzIGFuIGVycm9y
LiBHaXZlbiB0aGlzLCB0aGUgaW50ZXJmYWNlIHNob3VsZCBiZQorICAgICAgICBtb3JlIGdlbmVy
YWwgYW5kIGFsbG93IGZvciBhIHNlbnRpbmVsIHZhbHVlIGluZGljYXRpbmcgYSBwYXJzaW5nCisg
ICAgICAgIGVycm9yIHJhdGhlciB0aGFuIGFuIGFic2VuY2Ugb2Yga2V5IGlkcy4KKworICAgICAg
ICBDb3ZlcmVkIGJ5IGV4aXN0aW5nIHRlc3RzLgorCisgICAgICAgICogTW9kdWxlcy9lbmNyeXB0
ZWRtZWRpYS9Jbml0RGF0YVJlZ2lzdHJ5LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmV4dHJhY3RL
ZXlJRHNLZXlpZHMpOiBDaGFuZ2UgcmV0dXJuIHR5cGUgdG8gYmUgd3JhcHBlZAorICAgICAgICBp
biBhbiBvcHRpb25hbCwgYW5kIG1ha2UgcGFyc2luZyBlcnJvcnMgcmV0dXJuIGEgbnVsbG9wdCBy
YXRoZXIKKyAgICAgICAgdGhhbiBhbiBlbXB0eSB2ZWN0b3IuCisgICAgICAgIChXZWJDb3JlOjpz
YW5pdGl6ZUtleWlkcyk6IFVzZSB0aGUgbmV3IG9wdGlvbmFsIGludGVyZmFjZSwgcmV0dXJuCisg
ICAgICAgIGEgbnVsbCBSZWZQdHIgaW4gdGhlIGNhc2Ugb2YgYSBwYXJzaW5nIGVycm9yLCB0aGlz
IG1ldGhvZCBtYXkgbm93CisgICAgICAgIHJldHVybiBhbiBlbXB0eSB2ZWN0b3IuCisgICAgICAg
IChXZWJDb3JlOjpleHRyYWN0S2V5SURzQ2VuYyk6IE5vdCBpbXBsZW1lbnRlZCwgc28gcmV0dXJu
IGFuIGVycm9yCisgICAgICAgIHZhbHVlIHJhdGhlciB0aGFuIGFuIGVtcHR5IHZlY3Rvci4KKyAg
ICAgICAgKFdlYkNvcmU6OmV4dHJhY3RLZXlJRHNXZWJNKTogRGl0dG8uCisgICAgICAgIChXZWJD
b3JlOjpJbml0RGF0YVJlZ2lzdHJ5OjpleHRyYWN0S2V5SURzKTogRGl0dG8uCisgICAgICAgICog
TW9kdWxlcy9lbmNyeXB0ZWRtZWRpYS9Jbml0RGF0YVJlZ2lzdHJ5Lmg6IFVwZGF0ZSB0aGUgaW50
ZXJmYWNlCisgICAgICAgIHRvIHVzZSBhbiBvcHRpb25hbCByZXR1cm4gdHlwZS4KKyAgICAgICAg
KiBwbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vQ0RNRmFpclBsYXlTdHJlYW1pbmcuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6Q0RNUHJpdmF0ZUZhaXJQbGF5U3RyZWFtaW5nOjpleHRyYWN0
S2V5SURzU2luZik6IFVwZGF0ZQorICAgICAgICB0byB1c2UgdGhlIG5ldyBpbnRlcmZhY2UuCisg
ICAgICAgIChXZWJDb3JlOjpDRE1Qcml2YXRlRmFpclBsYXlTdHJlYW1pbmc6OmV4dHJhY3RLZXlJ
RHNTa2QpOiBEaXR0by4KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24v
Q0RNRmFpclBsYXlTdHJlYW1pbmcuaDogRGl0dG8uCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhp
Y3MvYXZmb3VuZGF0aW9uL29iamMvQ0RNSW5zdGFuY2VGYWlyUGxheVN0cmVhbWluZ0FWRk9iakMu
bW06CisgICAgICAgIChXZWJDb3JlOjpDRE1JbnN0YW5jZUZhaXJQbGF5U3RyZWFtaW5nQVZGT2Jq
Qzo6a2V5SURzKTogRGl0dG8uCisgICAgICAgICogdGVzdGluZy9Nb2NrQ0RNRmFjdG9yeS5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpNb2NrQ0RNSW5zdGFuY2U6OnJlcXVlc3RMaWNlbnNlKTogT25s
eSByZXR1cm4gYW4gZXJyb3IKKyAgICAgICAgaWYgdGhlcmUgcmVhbGx5IHdhcyBhIHBhcnNpbmcg
ZXJyb3IsIHJhdGhlciB0aGFuIHRoZSBjYXNlIG9mIHRoZXJlCisgICAgICAgIGJlaW5nIHplcm8g
a2V5IGlkcyBpbiB0aGUgaW5pdCBkYXRhIHBheWxvYWQuCisKIDIwMTgtMDgtMDIgIENoYXJsaWUg
VHVybmVyICA8Y3R1cm5lckBpZ2FsaWEuY29tPgogCiAgICAgICAgIEhhbmRsZSB6ZXJvLXNpemVk
IElTT01QNCBib3hlcyBhcHByb3ByaWF0ZWx5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL2VuY3J5cHRlZG1lZGlhL0luaXREYXRhUmVnaXN0cnkuY3BwIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9lbmNyeXB0ZWRtZWRpYS9Jbml0RGF0YVJlZ2lzdHJ5LmNwcAppbmRleCBjMjli
MDM4YWQxZDI5MjVjNDM4NDcyZjNhZGYwOGY0YTU0YjBhM2ExLi4xZDY3ZWQ2NmJjMzJhNGUwNmIz
YzY3OTU1YjU0YmJkY2M0Njc5NWQ4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L2VuY3J5cHRlZG1lZGlhL0luaXREYXRhUmVnaXN0cnkuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvZW5jcnlwdGVkbWVkaWEvSW5pdERhdGFSZWdpc3RyeS5jcHAKQEAgLTM3LDI1ICsz
NywyNSBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLXN0YXRpYyBWZWN0b3I8UmVmPFNoYXJl
ZEJ1ZmZlcj4+IGV4dHJhY3RLZXlJRHNLZXlpZHMoY29uc3QgU2hhcmVkQnVmZmVyJiBidWZmZXIp
CitzdGF0aWMgc3RkOjpvcHRpb25hbDxWZWN0b3I8UmVmPFNoYXJlZEJ1ZmZlcj4+PiBleHRyYWN0
S2V5SURzS2V5aWRzKGNvbnN0IFNoYXJlZEJ1ZmZlciYgYnVmZmVyKQogewogICAgIC8vIDEuIEZv
cm1hdAogICAgIC8vIGh0dHBzOi8vdzNjLmdpdGh1Yi5pby9lbmNyeXB0ZWQtbWVkaWEvZm9ybWF0
LXJlZ2lzdHJ5L2luaXRkYXRhL2tleWlkcy5odG1sI2Zvcm1hdAogICAgIGlmIChidWZmZXIuc2l6
ZSgpID4gc3RkOjpudW1lcmljX2xpbWl0czx1bnNpZ25lZD46Om1heCgpKQotICAgICAgICByZXR1
cm4geyB9OworICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OwogICAgIFN0cmluZyBqc29uIHsg
YnVmZmVyLmRhdGEoKSwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KGJ1ZmZlci5zaXplKCkpIH07CiAK
ICAgICBSZWZQdHI8SlNPTjo6VmFsdWU+IHZhbHVlOwogICAgIGlmICghSlNPTjo6VmFsdWU6OnBh
cnNlSlNPTihqc29uLCB2YWx1ZSkpCi0gICAgICAgIHJldHVybiB7IH07CisgICAgICAgIHJldHVy
biBzdGQ6Om51bGxvcHQ7CiAKICAgICBSZWZQdHI8SlNPTjo6T2JqZWN0PiBvYmplY3Q7CiAgICAg
aWYgKCF2YWx1ZS0+YXNPYmplY3Qob2JqZWN0KSkKLSAgICAgICAgcmV0dXJuIHsgfTsKKyAgICAg
ICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKIAogICAgIFJlZlB0cjxKU09OOjpBcnJheT4ga2lkc0Fy
cmF5OwogICAgIGlmICghb2JqZWN0LT5nZXRBcnJheSgia2lkcyIsIGtpZHNBcnJheSkpCi0gICAg
ICAgIHJldHVybiB7IH07CisgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CiAKICAgICBWZWN0
b3I8UmVmPFNoYXJlZEJ1ZmZlcj4+IGtleUlEczsKICAgICBmb3IgKGF1dG8mIHZhbHVlIDogKmtp
ZHNBcnJheSkgewpAQCAtNzgsMTMgKzc4LDEzIEBAIHN0YXRpYyBSZWZQdHI8U2hhcmVkQnVmZmVy
PiBzYW5pdGl6ZUtleWlkcyhjb25zdCBTaGFyZWRCdWZmZXImIGJ1ZmZlcikKIHsKICAgICAvLyAx
LiBGb3JtYXQKICAgICAvLyBodHRwczovL3czYy5naXRodWIuaW8vZW5jcnlwdGVkLW1lZGlhL2Zv
cm1hdC1yZWdpc3RyeS9pbml0ZGF0YS9rZXlpZHMuaHRtbCNmb3JtYXQKLSAgICBWZWN0b3I8UmVm
PFNoYXJlZEJ1ZmZlcj4+IGtleUlEQnVmZmVyID0gZXh0cmFjdEtleUlEc0tleWlkcyhidWZmZXIp
OwotICAgIGlmIChrZXlJREJ1ZmZlci5pc0VtcHR5KCkpCisgICAgYXV0byBrZXlJREJ1ZmZlciA9
IGV4dHJhY3RLZXlJRHNLZXlpZHMoYnVmZmVyKTsKKyAgICBpZiAoIWtleUlEQnVmZmVyKQogICAg
ICAgICByZXR1cm4gbnVsbHB0cjsKIAogICAgIGF1dG8gb2JqZWN0ID0gSlNPTjo6T2JqZWN0Ojpj
cmVhdGUoKTsKICAgICBhdXRvIGtpZHNBcnJheSA9IEpTT046OkFycmF5OjpjcmVhdGUoKTsKLSAg
ICBmb3IgKGF1dG8mIGJ1ZmZlciA6IGtleUlEQnVmZmVyKQorICAgIGZvciAoYXV0byYgYnVmZmVy
IDoga2V5SURCdWZmZXIudmFsdWUoKSkKICAgICAgICAga2lkc0FycmF5LT5wdXNoU3RyaW5nKFdU
Rjo6YmFzZTY0VVJMRW5jb2RlKGJ1ZmZlci0+ZGF0YSgpLCBidWZmZXItPnNpemUoKSkpOwogICAg
IG9iamVjdC0+c2V0QXJyYXkoImtpZHMiLCBXVEZNb3ZlKGtpZHNBcnJheSkpOwogCkBAIC0xMDAs
MTIgKzEwMCwxMiBAQCBzdGF0aWMgUmVmUHRyPFNoYXJlZEJ1ZmZlcj4gc2FuaXRpemVDZW5jKGNv
bnN0IFNoYXJlZEJ1ZmZlciYgYnVmZmVyKQogICAgIHJldHVybiBidWZmZXIuY29weSgpOwogfQog
Ci1zdGF0aWMgVmVjdG9yPFJlZjxTaGFyZWRCdWZmZXI+PiBleHRyYWN0S2V5SURzQ2VuYyhjb25z
dCBTaGFyZWRCdWZmZXImKQorc3RhdGljIHN0ZDo6b3B0aW9uYWw8VmVjdG9yPFJlZjxTaGFyZWRC
dWZmZXI+Pj4gZXh0cmFjdEtleUlEc0NlbmMoY29uc3QgU2hhcmVkQnVmZmVyJikKIHsKICAgICAv
LyA0LiBDb21tb24gU3lzdGVtSUQgYW5kIFBTU0ggQm94IEZvcm1hdAogICAgIC8vIGh0dHBzOi8v
dzNjLmdpdGh1Yi5pby9lbmNyeXB0ZWQtbWVkaWEvZm9ybWF0LXJlZ2lzdHJ5L2luaXRkYXRhL2Nl
bmMuaHRtbCNjb21tb24tc3lzdGVtCiAgICAgbm90SW1wbGVtZW50ZWQoKTsKLSAgICByZXR1cm4g
eyB9OworICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CiB9CiAKIHN0YXRpYyBSZWZQdHI8U2hhcmVk
QnVmZmVyPiBzYW5pdGl6ZVdlYk0oY29uc3QgU2hhcmVkQnVmZmVyJiBidWZmZXIpCkBAIC0xMTYs
MTIgKzExNiwxMiBAQCBzdGF0aWMgUmVmUHRyPFNoYXJlZEJ1ZmZlcj4gc2FuaXRpemVXZWJNKGNv
bnN0IFNoYXJlZEJ1ZmZlciYgYnVmZmVyKQogICAgIHJldHVybiBidWZmZXIuY29weSgpOwogfQog
Ci1zdGF0aWMgVmVjdG9yPFJlZjxTaGFyZWRCdWZmZXI+PiBleHRyYWN0S2V5SURzV2ViTShjb25z
dCBTaGFyZWRCdWZmZXImKQorc3RhdGljIHN0ZDo6b3B0aW9uYWw8VmVjdG9yPFJlZjxTaGFyZWRC
dWZmZXI+Pj4gZXh0cmFjdEtleUlEc1dlYk0oY29uc3QgU2hhcmVkQnVmZmVyJikKIHsKICAgICAv
LyAxLiBGb3JtYXQKICAgICAvLyBodHRwczovL3czYy5naXRodWIuaW8vZW5jcnlwdGVkLW1lZGlh
L2Zvcm1hdC1yZWdpc3RyeS9pbml0ZGF0YS93ZWJtLmh0bWwjZm9ybWF0CiAgICAgbm90SW1wbGVt
ZW50ZWQoKTsKLSAgICByZXR1cm4geyB9OworICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CiB9CiAK
IEluaXREYXRhUmVnaXN0cnkmIEluaXREYXRhUmVnaXN0cnk6OnNoYXJlZCgpCkBAIC0xNDcsMTEg
KzE0NywxMSBAQCBSZWZQdHI8U2hhcmVkQnVmZmVyPiBJbml0RGF0YVJlZ2lzdHJ5OjpzYW5pdGl6
ZUluaXREYXRhKGNvbnN0IEF0b21pY1N0cmluZyYgaW5pdAogICAgIHJldHVybiBpdGVyLT52YWx1
ZS5zYW5pdGl6ZUluaXREYXRhKGJ1ZmZlcik7CiB9CiAKLVZlY3RvcjxSZWY8U2hhcmVkQnVmZmVy
Pj4gSW5pdERhdGFSZWdpc3RyeTo6ZXh0cmFjdEtleUlEcyhjb25zdCBBdG9taWNTdHJpbmcmIGlu
aXREYXRhVHlwZSwgY29uc3QgU2hhcmVkQnVmZmVyJiBidWZmZXIpCitzdGQ6Om9wdGlvbmFsPFZl
Y3RvcjxSZWY8U2hhcmVkQnVmZmVyPj4+IEluaXREYXRhUmVnaXN0cnk6OmV4dHJhY3RLZXlJRHMo
Y29uc3QgQXRvbWljU3RyaW5nJiBpbml0RGF0YVR5cGUsIGNvbnN0IFNoYXJlZEJ1ZmZlciYgYnVm
ZmVyKQogewogICAgIGF1dG8gaXRlciA9IG1fdHlwZXMuZmluZChpbml0RGF0YVR5cGUpOwogICAg
IGlmIChpdGVyID09IG1fdHlwZXMuZW5kKCkgfHwgIWl0ZXItPnZhbHVlLnNhbml0aXplSW5pdERh
dGEpCi0gICAgICAgIHJldHVybiB7IH07CisgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CiAg
ICAgcmV0dXJuIGl0ZXItPnZhbHVlLmV4dHJhY3RLZXlJRHMoYnVmZmVyKTsKIH0KIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9lbmNyeXB0ZWRtZWRpYS9Jbml0RGF0YVJlZ2lz
dHJ5LmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2VuY3J5cHRlZG1lZGlhL0luaXREYXRhUmVn
aXN0cnkuaAppbmRleCAzOWJmYTA0NTM1NDZkYTU3N2JhM2Q5ZjhmMWE0OTQ4OTFiODY4MTc0Li5k
MWUzNTg0ZGZlMzUwOWRmZDJiNGI5NDg3MDY4OTE4ZDQ1Yjg5MjIzIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL2VuY3J5cHRlZG1lZGlhL0luaXREYXRhUmVnaXN0cnkuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2VuY3J5cHRlZG1lZGlhL0luaXREYXRhUmVnaXN0cnku
aApAQCAtMjksNiArMjksNyBAQAogCiAjaW5jbHVkZSA8d3RmL0Z1bmN0aW9uLmg+CiAjaW5jbHVk
ZSA8d3RmL0hhc2hNYXAuaD4KKyNpbmNsdWRlIDx3dGYvT3B0aW9uYWwuaD4KICNpbmNsdWRlIDx3
dGYvUmVmLmg+CiAjaW5jbHVkZSA8d3RmL1JlZlB0ci5oPgogI2luY2x1ZGUgPHd0Zi9WZWN0b3Iu
aD4KQEAgLTQ1LDExICs0NiwxMSBAQCBwdWJsaWM6CiAgICAgZnJpZW5kIGNsYXNzIE5ldmVyRGVz
dHJveWVkPEluaXREYXRhUmVnaXN0cnk+OwogCiAgICAgUmVmUHRyPFNoYXJlZEJ1ZmZlcj4gc2Fu
aXRpemVJbml0RGF0YShjb25zdCBBdG9taWNTdHJpbmcmIGluaXREYXRhVHlwZSwgY29uc3QgU2hh
cmVkQnVmZmVyJik7Ci0gICAgV0VCQ09SRV9FWFBPUlQgVmVjdG9yPFJlZjxTaGFyZWRCdWZmZXI+
PiBleHRyYWN0S2V5SURzKGNvbnN0IEF0b21pY1N0cmluZyYgaW5pdERhdGFUeXBlLCBjb25zdCBT
aGFyZWRCdWZmZXImKTsKKyAgICBXRUJDT1JFX0VYUE9SVCBzdGQ6Om9wdGlvbmFsPFZlY3RvcjxS
ZWY8U2hhcmVkQnVmZmVyPj4+IGV4dHJhY3RLZXlJRHMoY29uc3QgQXRvbWljU3RyaW5nJiBpbml0
RGF0YVR5cGUsIGNvbnN0IFNoYXJlZEJ1ZmZlciYpOwogCiAgICAgc3RydWN0IEluaXREYXRhVHlw
ZUNhbGxiYWNrcyB7CiAgICAgICAgIHVzaW5nIFNhbml0aXplSW5pdERhdGFDYWxsYmFjayA9IEZ1
bmN0aW9uPFJlZlB0cjxTaGFyZWRCdWZmZXI+KGNvbnN0IFNoYXJlZEJ1ZmZlciYpPjsKLSAgICAg
ICAgdXNpbmcgRXh0cmFjdEtleUlEc0NhbGxiYWNrID0gRnVuY3Rpb248VmVjdG9yPFJlZjxTaGFy
ZWRCdWZmZXI+Pihjb25zdCBTaGFyZWRCdWZmZXImKT47CisgICAgICAgIHVzaW5nIEV4dHJhY3RL
ZXlJRHNDYWxsYmFjayA9IEZ1bmN0aW9uPHN0ZDo6b3B0aW9uYWw8VmVjdG9yPFJlZjxTaGFyZWRC
dWZmZXI+Pj4oY29uc3QgU2hhcmVkQnVmZmVyJik+OwogCiAgICAgICAgIFNhbml0aXplSW5pdERh
dGFDYWxsYmFjayBzYW5pdGl6ZUluaXREYXRhOwogICAgICAgICBFeHRyYWN0S2V5SURzQ2FsbGJh
Y2sgZXh0cmFjdEtleUlEczsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2F2Zm91bmRhdGlvbi9DRE1GYWlyUGxheVN0cmVhbWluZy5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vQ0RNRmFpclBsYXlTdHJlYW1pbmcu
Y3BwCmluZGV4IGQyMDg2ODQ4ZGU5ZTAzNjdiMjlhNzAyZDY0NTFlMGVlOGYyNjc0YTguLjhjNjRk
ZTFlNTE1MzZjY2ViMmI0ZjIyZTFlZmU5ODlmNjEwM2E5ZDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9DRE1GYWlyUGxheVN0cmVhbWlu
Zy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9u
L0NETUZhaXJQbGF5U3RyZWFtaW5nLmNwcApAQCAtMTU4LDkgKzE1OCw4IEBAIHN0YXRpYyBTY2hl
bWVBbmRLZXlSZXN1bHQgZXh0cmFjdFNjaGVtZUFuZEtleUlkRnJvbVNpbmYoY29uc3QgU2hhcmVk
QnVmZmVyJiBidWZmCiAgICAgcmV0dXJuIHJlc3VsdDsKIH0KIAotVmVjdG9yPFJlZjxTaGFyZWRC
dWZmZXI+PiBDRE1Qcml2YXRlRmFpclBsYXlTdHJlYW1pbmc6OmV4dHJhY3RLZXlJRHNTaW5mKGNv
bnN0IFNoYXJlZEJ1ZmZlciYgYnVmZmVyKQorc3RkOjpvcHRpb25hbDxWZWN0b3I8UmVmPFNoYXJl
ZEJ1ZmZlcj4+PiBDRE1Qcml2YXRlRmFpclBsYXlTdHJlYW1pbmc6OmV4dHJhY3RLZXlJRHNTaW5m
KGNvbnN0IFNoYXJlZEJ1ZmZlciYgYnVmZmVyKQogewotCiAgICAgVmVjdG9yPFJlZjxTaGFyZWRC
dWZmZXI+PiBrZXlJRHM7CiAgICAgYXV0byByZXN1bHRzID0gZXh0cmFjdFNjaGVtZUFuZEtleUlk
RnJvbVNpbmYoYnVmZmVyKTsKIApAQCAtMTg3LDcgKzE4Niw3IEBAIFJlZlB0cjxTaGFyZWRCdWZm
ZXI+IENETVByaXZhdGVGYWlyUGxheVN0cmVhbWluZzo6c2FuaXRpemVTa2QoY29uc3QgU2hhcmVk
QnVmZmVyCiAgICAgcmV0dXJuIGJ1ZmZlci5jb3B5KCk7CiB9CiAKLVZlY3RvcjxSZWY8U2hhcmVk
QnVmZmVyPj4gQ0RNUHJpdmF0ZUZhaXJQbGF5U3RyZWFtaW5nOjpleHRyYWN0S2V5SURzU2tkKGNv
bnN0IFNoYXJlZEJ1ZmZlciYgYnVmZmVyKQorc3RkOjpvcHRpb25hbDxWZWN0b3I8UmVmPFNoYXJl
ZEJ1ZmZlcj4+PiBDRE1Qcml2YXRlRmFpclBsYXlTdHJlYW1pbmc6OmV4dHJhY3RLZXlJRHNTa2Qo
Y29uc3QgU2hhcmVkQnVmZmVyJiBidWZmZXIpCiB7CiAgICAgLy8gSW4gdGhlICdza2QnIHNjaGVt
ZSwgdGhlIGluaXQgZGF0YSBpcyB0aGUga2V5IElELgogICAgIFZlY3RvcjxSZWY8U2hhcmVkQnVm
ZmVyPj4ga2V5SURzOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvYXZmb3VuZGF0aW9uL0NETUZhaXJQbGF5U3RyZWFtaW5nLmggYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vQ0RNRmFpclBsYXlTdHJlYW1pbmcuaAppbmRl
eCA4YWQzNjg5YTlhNzQyM2EzMzlkMDhkZjRjODNhZTAyYjEzZDJiZjVkLi4xNDRjMDIxYTJmNGNm
Nzc1Njc3NmQ1ZWQ0ZTAwNmU2ODE0ZjE5OTJkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vQ0RNRmFpclBsYXlTdHJlYW1pbmcuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vQ0RNRmFpclBs
YXlTdHJlYW1pbmcuaApAQCAtNjgsMTEgKzY4LDExIEBAIHB1YmxpYzoKICAgICBzdGQ6Om9wdGlv
bmFsPFN0cmluZz4gc2FuaXRpemVTZXNzaW9uSWQoY29uc3QgU3RyaW5nJikgY29uc3Qgb3ZlcnJp
ZGU7CiAKICAgICBzdGF0aWMgY29uc3QgQXRvbWljU3RyaW5nJiBzaW5mTmFtZSgpOwotICAgIHN0
YXRpYyBWZWN0b3I8UmVmPFNoYXJlZEJ1ZmZlcj4+IGV4dHJhY3RLZXlJRHNTaW5mKGNvbnN0IFNo
YXJlZEJ1ZmZlciYpOworICAgIHN0YXRpYyBzdGQ6Om9wdGlvbmFsPFZlY3RvcjxSZWY8U2hhcmVk
QnVmZmVyPj4+IGV4dHJhY3RLZXlJRHNTaW5mKGNvbnN0IFNoYXJlZEJ1ZmZlciYpOwogICAgIHN0
YXRpYyBSZWZQdHI8U2hhcmVkQnVmZmVyPiBzYW5pdGl6ZVNpbmYoY29uc3QgU2hhcmVkQnVmZmVy
Jik7CiAKICAgICBzdGF0aWMgY29uc3QgQXRvbWljU3RyaW5nJiBza2ROYW1lKCk7Ci0gICAgc3Rh
dGljIFZlY3RvcjxSZWY8U2hhcmVkQnVmZmVyPj4gZXh0cmFjdEtleUlEc1NrZChjb25zdCBTaGFy
ZWRCdWZmZXImKTsKKyAgICBzdGF0aWMgc3RkOjpvcHRpb25hbDxWZWN0b3I8UmVmPFNoYXJlZEJ1
ZmZlcj4+PiBleHRyYWN0S2V5SURzU2tkKGNvbnN0IFNoYXJlZEJ1ZmZlciYpOwogICAgIHN0YXRp
YyBSZWZQdHI8U2hhcmVkQnVmZmVyPiBzYW5pdGl6ZVNrZChjb25zdCBTaGFyZWRCdWZmZXImKTsK
IH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91
bmRhdGlvbi9vYmpjL0NETUluc3RhbmNlRmFpclBsYXlTdHJlYW1pbmdBVkZPYmpDLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9DRE1JbnN0YW5j
ZUZhaXJQbGF5U3RyZWFtaW5nQVZGT2JqQy5oCmluZGV4IDgzYjlkNTAyM2NjMThhOWU0MjkzZmY2
MjVhZjE1MzNjYTJmYTAxMGYuLjg1N2RkOWUyMTY4ODg3N2I5YTI0ZDE3YWE2YjdlZTU1Y2NhNWQ5
MzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRh
dGlvbi9vYmpjL0NETUluc3RhbmNlRmFpclBsYXlTdHJlYW1pbmdBVkZPYmpDLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvQ0RNSW5zdGFu
Y2VGYWlyUGxheVN0cmVhbWluZ0FWRk9iakMuaApAQCAtMjksNiArMjksNyBAQAogCiAjaW5jbHVk
ZSAiQ0RNSW5zdGFuY2UuaCIKICNpbmNsdWRlIDx3dGYvRnVuY3Rpb24uaD4KKyNpbmNsdWRlIDx3
dGYvT3B0aW9uYWwuaD4KICNpbmNsdWRlIDx3dGYvUmV0YWluUHRyLmg+CiAjaW5jbHVkZSA8d3Rm
L1dlYWtQdHIuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KQEAgLTg0LDcgKzg1
LDcgQEAgcHVibGljOgogcHJpdmF0ZToKICAgICBib29sIGlzTGljZW5zZVR5cGVTdXBwb3J0ZWQo
TGljZW5zZVR5cGUpIGNvbnN0OwogCi0gICAgVmVjdG9yPFJlZjxTaGFyZWRCdWZmZXI+PiBrZXlJ
RHMoKTsKKyAgICBzdGQ6Om9wdGlvbmFsPFZlY3RvcjxSZWY8U2hhcmVkQnVmZmVyPj4+IGtleUlE
cygpOwogCiAgICAgUmVmUHRyPFNoYXJlZEJ1ZmZlcj4gbV9zZXJ2ZXJDZXJ0aWZpY2F0ZTsKICAg
ICBib29sIG1fcGVyc2lzdGVudFN0YXRlQWxsb3dlZCB7IHRydWUgfTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL0NETUluc3Rh
bmNlRmFpclBsYXlTdHJlYW1pbmdBVkZPYmpDLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvQ0RNSW5zdGFuY2VGYWlyUGxheVN0cmVhbWluZ0FW
Rk9iakMubW0KaW5kZXggZTEwNTQ4NmNiZjVmMDY1ZmIzNmUyNmNmMDQyMjM0YmYwMTVhNDNmZi4u
OGIzMWQzZTMyMDBiYTM3N2VkOTE1MjU4MDcwY2I2OGFhN2M1YzQ5OSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvQ0RNSW5zdGFu
Y2VGYWlyUGxheVN0cmVhbWluZ0FWRk9iakMubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvQ0RNSW5zdGFuY2VGYWlyUGxheVN0cmVhbWlu
Z0FWRk9iakMubW0KQEAgLTIzMyw3ICsyMzMsNyBAQCBib29sIENETUluc3RhbmNlRmFpclBsYXlT
dHJlYW1pbmdBVkZPYmpDOjppc0xpY2Vuc2VUeXBlU3VwcG9ydGVkKExpY2Vuc2VUeXBlIGxpYwog
ICAgIH0KIH0KIAotVmVjdG9yPFJlZjxTaGFyZWRCdWZmZXI+PiBDRE1JbnN0YW5jZUZhaXJQbGF5
U3RyZWFtaW5nQVZGT2JqQzo6a2V5SURzKCkKK3N0ZDo6b3B0aW9uYWw8VmVjdG9yPFJlZjxTaGFy
ZWRCdWZmZXI+Pj4gQ0RNSW5zdGFuY2VGYWlyUGxheVN0cmVhbWluZ0FWRk9iakM6OmtleUlEcygp
CiB7CiAgICAgLy8gRklYTUUocmRhcjovL3Byb2JsZW0vMzU1OTcxNDEpOiB1c2UgdGhlIGZ1dHVy
ZSBBVkNvbnRlbnRLZXlSZXF1ZXN0IGtleUlEIHByb3BlcnR5LCByYXRoZXIgdGhhbiBwYXJzaW5n
IGl0IG91dCBvZiB0aGUgaW5pdAogICAgIC8vIGRhdGEsIHRvIGdldCB0aGUga2V5SUQuCkBAIC0z
MDgsOCArMzA4LDggQEAgdm9pZCBDRE1JbnN0YW5jZUZhaXJQbGF5U3RyZWFtaW5nQVZGT2JqQzo6
dXBkYXRlTGljZW5zZShjb25zdCBTdHJpbmcmLCBMaWNlbnNlVHkKICAgICAgICAgY2FsbGJhY2so
ZmFsc2UsIHN0ZDo6bnVsbG9wdCwgc3RkOjpudWxsb3B0LCBzdGQ6Om51bGxvcHQsIEZhaWxlZCk7
CiAgICAgICAgIHJldHVybjsKICAgICB9Ci0gICAgVmVjdG9yPFJlZjxTaGFyZWRCdWZmZXI+PiBr
ZXlJRHMgPSB0aGlzLT5rZXlJRHMoKTsKLSAgICBpZiAoa2V5SURzLmlzRW1wdHkoKSkgeworICAg
IGF1dG8ga2V5SURzID0gdGhpcy0+a2V5SURzKCk7CisgICAgaWYgKCFrZXlJRHMgfHwgKGtleUlE
cyAmJiBrZXlJRHMudmFsdWUoKS5pc0VtcHR5KCkpKSB7CiAgICAgICAgIGNhbGxiYWNrKGZhbHNl
LCBzdGQ6Om51bGxvcHQsIHN0ZDo6bnVsbG9wdCwgc3RkOjpudWxsb3B0LCBGYWlsZWQpOwogICAg
ICAgICByZXR1cm47CiAgICAgfQpAQCAtMzIxLDcgKzMyMSw3IEBAIHZvaWQgQ0RNSW5zdGFuY2VG
YWlyUGxheVN0cmVhbWluZ0FWRk9iakM6OnVwZGF0ZUxpY2Vuc2UoY29uc3QgU3RyaW5nJiwgTGlj
ZW5zZVR5CiAgICAgaWYgKCFtZXRob2QubmFtZSkgewogICAgICAgICBLZXlTdGF0dXNWZWN0b3Ig
a2V5U3RhdHVzZXM7CiAgICAgICAgIGtleVN0YXR1c2VzLnJlc2VydmVJbml0aWFsQ2FwYWNpdHko
MSk7Ci0gICAgICAgIGtleVN0YXR1c2VzLnVuY2hlY2tlZEFwcGVuZChzdGQ6Om1ha2VfcGFpcihX
VEZNb3ZlKGtleUlEcy5maXJzdCgpKSwgS2V5U3RhdHVzOjpVc2FibGUpKTsKKyAgICAgICAga2V5
U3RhdHVzZXMudW5jaGVja2VkQXBwZW5kKHN0ZDo6bWFrZV9wYWlyKFdURk1vdmUoa2V5SURzLnZh
bHVlKCkuZmlyc3QoKSksIEtleVN0YXR1czo6VXNhYmxlKSk7CiAgICAgICAgIGNhbGxiYWNrKGZh
bHNlLCBzdGQ6Om1ha2Vfb3B0aW9uYWwoV1RGTW92ZShrZXlTdGF0dXNlcykpLCBzdGQ6Om51bGxv
cHQsIHN0ZDo6bnVsbG9wdCwgU3VjY2VlZGVkKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KQEAg
LTQ0NiwxNSArNDQ2LDE1IEBAIHZvaWQgQ0RNSW5zdGFuY2VGYWlyUGxheVN0cmVhbWluZ0FWRk9i
akM6OmRpZFByb3ZpZGVSZXF1ZXN0KEFWQ29udGVudEtleVJlcXVlc3QKICAgICAgICAgcmV0dXJu
OwogCiAgICAgUmV0YWluUHRyPE5TRGF0YT4gYXBwSWRlbnRpZmllciA9IG1fc2VydmVyQ2VydGlm
aWNhdGUgPyBtX3NlcnZlckNlcnRpZmljYXRlLT5jcmVhdGVOU0RhdGEoKSA6IG51bGxwdHI7Ci0g
ICAgVmVjdG9yPFJlZjxTaGFyZWRCdWZmZXI+PiBrZXlJRHMgPSB0aGlzLT5rZXlJRHMoKTsKKyAg
ICBhdXRvIGtleUlEcyA9IHRoaXMtPmtleUlEcygpOwogCi0gICAgaWYgKGtleUlEcy5pc0VtcHR5
KCkpIHsKKyAgICBpZiAoIWtleUlEcyB8fCAoa2V5SURzICYmIGtleUlEcy52YWx1ZSgpLmlzRW1w
dHkoKSkpIHsKICAgICAgICAgbV9yZXF1ZXN0TGljZW5zZUNhbGxiYWNrKFNoYXJlZEJ1ZmZlcjo6
Y3JlYXRlKCksIG1fc2Vzc2lvbklkLCBmYWxzZSwgRmFpbGVkKTsKICAgICAgICAgbV9yZXF1ZXN0
TGljZW5zZUNhbGxiYWNrID0gbnVsbHB0cjsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAotICAg
IFJldGFpblB0cjxOU0RhdGE+IGNvbnRlbnRJZGVudGlmaWVyID0ga2V5SURzLmZpcnN0KCktPmNy
ZWF0ZU5TRGF0YSgpOworICAgIFJldGFpblB0cjxOU0RhdGE+IGNvbnRlbnRJZGVudGlmaWVyID0g
a2V5SURzLnZhbHVlKCkuZmlyc3QoKS0+Y3JlYXRlTlNEYXRhKCk7CiAgICAgW21fcmVxdWVzdCBt
YWtlU3RyZWFtaW5nQ29udGVudEtleVJlcXVlc3REYXRhRm9yQXBwOmFwcElkZW50aWZpZXIuZ2V0
KCkgY29udGVudElkZW50aWZpZXI6Y29udGVudElkZW50aWZpZXIuZ2V0KCkgb3B0aW9uczpuaWwg
Y29tcGxldGlvbkhhbmRsZXI6W3RoaXMsIHdlYWtUaGlzID0gbWFrZVdlYWtQdHIoKnRoaXMpXSAo
TlNEYXRhICpjb250ZW50S2V5UmVxdWVzdERhdGEsIE5TRXJyb3IgKmVycm9yKSBtdXRhYmxlIHsK
ICAgICAgICAgY2FsbE9uTWFpblRocmVhZChbdGhpcywgd2Vha1RoaXMgPSBXVEZNb3ZlKHdlYWtU
aGlzKSwgZXJyb3IgPSByZXRhaW5QdHIoZXJyb3IpLCBjb250ZW50S2V5UmVxdWVzdERhdGEgPSBy
ZXRhaW5QdHIoY29udGVudEtleVJlcXVlc3REYXRhKV0gewogICAgICAgICAgICAgaWYgKCF3ZWFr
VGhpcyB8fCAhbV9yZXF1ZXN0TGljZW5zZUNhbGxiYWNrKQpAQCAtNDkzLDEwICs0OTMsMTAgQEAg
dm9pZCBDRE1JbnN0YW5jZUZhaXJQbGF5U3RyZWFtaW5nQVZGT2JqQzo6cmVxdWVzdERpZFN1Y2Nl
ZWQoQVZDb250ZW50S2V5UmVxdWVzdAogICAgIGlmICghbV91cGRhdGVMaWNlbnNlQ2FsbGJhY2sp
CiAgICAgICAgIHJldHVybjsKIAotICAgIFZlY3RvcjxSZWY8U2hhcmVkQnVmZmVyPj4ga2V5SURz
ID0gdGhpcy0+a2V5SURzKCk7CisgICAgYXV0byBrZXlJRHMgPSB0aGlzLT5rZXlJRHMoKTsKICAg
ICBLZXlTdGF0dXNWZWN0b3Iga2V5U3RhdHVzZXM7CiAgICAga2V5U3RhdHVzZXMucmVzZXJ2ZUlu
aXRpYWxDYXBhY2l0eSgxKTsKLSAgICBrZXlTdGF0dXNlcy51bmNoZWNrZWRBcHBlbmQoc3RkOjpt
YWtlX3BhaXIoV1RGTW92ZShrZXlJRHMuZmlyc3QoKSksIEtleVN0YXR1czo6VXNhYmxlKSk7Cisg
ICAga2V5U3RhdHVzZXMudW5jaGVja2VkQXBwZW5kKHN0ZDo6bWFrZV9wYWlyKFdURk1vdmUoa2V5
SURzLnZhbHVlKCkuZmlyc3QoKSksIEtleVN0YXR1czo6VXNhYmxlKSk7CiAgICAgbV91cGRhdGVM
aWNlbnNlQ2FsbGJhY2soZmFsc2UsIHN0ZDo6bWFrZV9vcHRpb25hbChXVEZNb3ZlKGtleVN0YXR1
c2VzKSksIHN0ZDo6bnVsbG9wdCwgc3RkOjpudWxsb3B0LCBTdWNjZWVkZWQpOwogfQogCkBAIC01
MjEsNyArNTIxLDkgQEAgdm9pZCBDRE1JbnN0YW5jZUZhaXJQbGF5U3RyZWFtaW5nQVZGT2JqQzo6
c2Vzc2lvbklkZW50aWZpZXJDaGFuZ2VkKE5TRGF0YSAqc2Vzc2kKIAogdm9pZCBDRE1JbnN0YW5j
ZUZhaXJQbGF5U3RyZWFtaW5nQVZGT2JqQzo6b3V0cHV0T2JzY3VyZWREdWVUb0luc3VmZmljaWVu
dEV4dGVybmFsUHJvdGVjdGlvbkNoYW5nZWQoYm9vbCBvYnNjdXJlZCkKIHsKLSAgICBpZiAoIW1f
Y2xpZW50IHx8ICFtX3JlcXVlc3QpCisgICAgYXV0byBtYXliZUtleUlEcyA9IGtleUlEcygpOwor
CisgICAgaWYgKCFtX2NsaWVudCB8fCAhbV9yZXF1ZXN0IHx8ICFtYXliZUtleUlEcykKICAgICAg
ICAgcmV0dXJuOwogCiAgICAgQ0RNS2V5U3RhdHVzIHN0YXR1czsKQEAgLTU0Niw3ICs1NDgsNyBA
QCB2b2lkIENETUluc3RhbmNlRmFpclBsYXlTdHJlYW1pbmdBVkZPYmpDOjpvdXRwdXRPYnNjdXJl
ZER1ZVRvSW5zdWZmaWNpZW50RXh0ZXJuYQogICAgICAgICB9CiAgICAgfQogCi0gICAgYXV0byBr
ZXlTdGF0dXNlcyA9IGtleUlEcygpLm1hcChbc3RhdHVzXSAoY29uc3QgUmVmPFNoYXJlZEJ1ZmZl
cj4mIGtleUlEKSAtPiBLZXlTdGF0dXNWZWN0b3I6OlZhbHVlVHlwZSB7CisgICAgYXV0byBrZXlT
dGF0dXNlcyA9IG1heWJlS2V5SURzLnZhbHVlKCkubWFwKFtzdGF0dXNdIChjb25zdCBSZWY8U2hh
cmVkQnVmZmVyPiYga2V5SUQpIC0+IEtleVN0YXR1c1ZlY3Rvcjo6VmFsdWVUeXBlIHsKICAgICAg
ICAgcmV0dXJuIHsga2V5SUQuY29weVJlZigpLCBzdGF0dXMgfTsKICAgICB9KTsKICAgICBtX2Ns
aWVudC0+dXBkYXRlS2V5U3RhdHVzZXMoV1RGTW92ZShrZXlTdGF0dXNlcykpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9Nb2NrQ0RNRmFjdG9yeS5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS90ZXN0aW5nL01vY2tDRE1GYWN0b3J5LmNwcAppbmRleCBhNzQzM2M2Y2Y4MjI1Yzc1OGRi
ZGYyMmExMjM2MzkyNDAwOGMzYjIyLi41MWQ3Nzc1NmJhYzU1NTMyZDNmYTc1MmNlZTdjNzRkZTQ1
Y2YzZDI1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL01vY2tDRE1GYWN0b3J5
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL01vY2tDRE1GYWN0b3J5LmNwcApAQCAt
MjgzLDEzICsyODMsMTMgQEAgdm9pZCBNb2NrQ0RNSW5zdGFuY2U6OnJlcXVlc3RMaWNlbnNlKExp
Y2Vuc2VUeXBlIGxpY2Vuc2VUeXBlLCBjb25zdCBBdG9taWNTdHJpbmcKICAgICB9CiAKICAgICBh
dXRvIGtleUlEcyA9IEluaXREYXRhUmVnaXN0cnk6OnNoYXJlZCgpLmV4dHJhY3RLZXlJRHMoaW5p
dERhdGFUeXBlLCBpbml0RGF0YSk7Ci0gICAgaWYgKGtleUlEcy5pc0VtcHR5KCkpIHsKKyAgICBp
ZiAoIWtleUlEcyB8fCAoa2V5SURzICYmIGtleUlEcy52YWx1ZSgpLmlzRW1wdHkoKSkpIHsKICAg
ICAgICAgY2FsbGJhY2soU2hhcmVkQnVmZmVyOjpjcmVhdGUoKSwgZW1wdHlTdHJpbmcoKSwgZmFs
c2UsIFN1Y2Nlc3NWYWx1ZTo6RmFpbGVkKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAogICAg
IFN0cmluZyBzZXNzaW9uSUQgPSBjcmVhdGVDYW5vbmljYWxVVUlEU3RyaW5nKCk7Ci0gICAgZmFj
dG9yeS0+YWRkS2V5c1RvU2Vzc2lvbldpdGhJRChzZXNzaW9uSUQsIFdURk1vdmUoa2V5SURzKSk7
CisgICAgZmFjdG9yeS0+YWRkS2V5c1RvU2Vzc2lvbldpdGhJRChzZXNzaW9uSUQsIFdURk1vdmUo
a2V5SURzLnZhbHVlKCkpKTsKIAogICAgIENTdHJpbmcgbGljZW5zZSB7ICJsaWNlbnNlIiB9Owog
ICAgIGNhbGxiYWNrKFNoYXJlZEJ1ZmZlcjo6Y3JlYXRlKGxpY2Vuc2UuZGF0YSgpLCBsaWNlbnNl
Lmxlbmd0aCgpKSwgc2Vzc2lvbklELCBmYWxzZSwgU3VjY2Vzc1ZhbHVlOjpTdWNjZWVkZWQpOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>346488</attachid>
            <date>2018-08-03 08:33:13 -0700</date>
            <delta_ts>2018-08-03 08:53:18 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-188303-20180803163311.patch</filename>
            <type>text/plain</type>
            <size>12672</size>
            <attacher name="Charlie Turner">cturner</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjM0NDk3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNDE5ZTMzNDMxNDQyNjI4
NTAzNjFlZGUyYjkzNTFkZjkyOTlhNmZmYy4uZWE0Y2ZjYjZhMWQ0MTI1ZWQ1Y2RmOWE3MDdkMDQ2
OGI1NGY5ZTEyMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ3IEBACisyMDE4LTA4LTAzICBDaGFy
bGllIFR1cm5lciAgPGN0dXJuZXJAaWdhbGlhLmNvbT4KKworICAgICAgICBSZXR1cm4gZXh0cmFj
dGVkIGtleSBpZHMgYXMgYW4gb3B0aW9uYWwKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTE4ODMwMworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIEFuIGVtcHR5IGxpc3Qgb2YgZXh0cmFjdGVkIGtleSBpZHMgd2Fz
IGJlaW5nIGNvbnNpZGVyZWQgYSBmYWlsdXJlCisgICAgICAgIGNhc2UgYmVmb3JlIHRoaXMgcGF0
Y2guIEluIHRoZSBQU1NIIGJveGVzIGZyb20gdGhlIENFTkMgc3RhbmRhcmQsCisgICAgICAgIGl0
J3Mgbm90IHVuY29tbW9uIGZvciB0aGUgYm94IHRvIGJlIHZlcnNpb24gMCwgbWVhbmluZyBpdCBo
YXMgbm8KKyAgICAgICAgZW1iZWRkZWQga2V5IGlkcywgc28gdGhlIGNhc2Ugd2hlbiB0aGVyZSdz
IGFuIGVtcHR5IGxpc3Qgc2hvdWxkCisgICAgICAgIG5vdCBiZSB0cmVhdGVkIGFzIGFuIGVycm9y
LiBHaXZlbiB0aGlzLCB0aGUgaW50ZXJmYWNlIHNob3VsZCBiZQorICAgICAgICBtb3JlIGdlbmVy
YWwgYW5kIGFsbG93IGZvciBhIHNlbnRpbmVsIHZhbHVlIGluZGljYXRpbmcgYSBwYXJzaW5nCisg
ICAgICAgIGVycm9yIHJhdGhlciB0aGFuIGFuIGFic2VuY2Ugb2Yga2V5IGlkcy4KKworICAgICAg
ICBDb3ZlcmVkIGJ5IGV4aXN0aW5nIHRlc3RzLgorCisgICAgICAgICogTW9kdWxlcy9lbmNyeXB0
ZWRtZWRpYS9Jbml0RGF0YVJlZ2lzdHJ5LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmV4dHJhY3RL
ZXlJRHNLZXlpZHMpOiBDaGFuZ2UgcmV0dXJuIHR5cGUgdG8gYmUgd3JhcHBlZAorICAgICAgICBp
biBhbiBvcHRpb25hbCwgYW5kIG1ha2UgcGFyc2luZyBlcnJvcnMgcmV0dXJuIGEgbnVsbG9wdCBy
YXRoZXIKKyAgICAgICAgdGhhbiBhbiBlbXB0eSB2ZWN0b3IuCisgICAgICAgIChXZWJDb3JlOjpz
YW5pdGl6ZUtleWlkcyk6IFVzZSB0aGUgbmV3IG9wdGlvbmFsIGludGVyZmFjZSwgcmV0dXJuCisg
ICAgICAgIGEgbnVsbCBSZWZQdHIgaW4gdGhlIGNhc2Ugb2YgYSBwYXJzaW5nIGVycm9yLCB0aGlz
IG1ldGhvZCBtYXkgbm93CisgICAgICAgIHJldHVybiBhbiBlbXB0eSB2ZWN0b3IuCisgICAgICAg
IChXZWJDb3JlOjpleHRyYWN0S2V5SURzQ2VuYyk6IE5vdCBpbXBsZW1lbnRlZCwgc28gcmV0dXJu
IGFuIGVycm9yCisgICAgICAgIHZhbHVlIHJhdGhlciB0aGFuIGFuIGVtcHR5IHZlY3Rvci4KKyAg
ICAgICAgKFdlYkNvcmU6OmV4dHJhY3RLZXlJRHNXZWJNKTogRGl0dG8uCisgICAgICAgIChXZWJD
b3JlOjpJbml0RGF0YVJlZ2lzdHJ5OjpleHRyYWN0S2V5SURzKTogRGl0dG8uCisgICAgICAgICog
TW9kdWxlcy9lbmNyeXB0ZWRtZWRpYS9Jbml0RGF0YVJlZ2lzdHJ5Lmg6IFVwZGF0ZSB0aGUgaW50
ZXJmYWNlCisgICAgICAgIHRvIHVzZSBhbiBvcHRpb25hbCByZXR1cm4gdHlwZS4KKyAgICAgICAg
KiBwbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vQ0RNRmFpclBsYXlTdHJlYW1pbmcuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6Q0RNUHJpdmF0ZUZhaXJQbGF5U3RyZWFtaW5nOjpleHRyYWN0
S2V5SURzU2luZik6IFVwZGF0ZQorICAgICAgICB0byB1c2UgdGhlIG5ldyBpbnRlcmZhY2UuCisg
ICAgICAgIChXZWJDb3JlOjpDRE1Qcml2YXRlRmFpclBsYXlTdHJlYW1pbmc6OmV4dHJhY3RLZXlJ
RHNTa2QpOiBEaXR0by4KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24v
Q0RNRmFpclBsYXlTdHJlYW1pbmcuaDogRGl0dG8uCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhp
Y3MvYXZmb3VuZGF0aW9uL29iamMvQ0RNSW5zdGFuY2VGYWlyUGxheVN0cmVhbWluZ0FWRk9iakMu
bW06CisgICAgICAgIChXZWJDb3JlOjpDRE1JbnN0YW5jZUZhaXJQbGF5U3RyZWFtaW5nQVZGT2Jq
Qzo6a2V5SURzKTogQ29udmVydAorICAgICAgICB0aGUgb3B0aW9uYWwgdmFsdWUgaW50byBhIHZl
Y3Rvciwgc2luY2UgaXQgaXMgYXNzdW1lZCB5b3UgY2FuIG5vdAorICAgICAgICBoYXZlIGFuIGVt
cHR5IHZlY3RvciBvZiBrZXkgaWRzIGluIHRoZSBpbml0IGRhdGFzIEZQUyBzdXBwb3J0cy4KKyAg
ICAgICAgKiB0ZXN0aW5nL01vY2tDRE1GYWN0b3J5LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok1v
Y2tDRE1JbnN0YW5jZTo6cmVxdWVzdExpY2Vuc2UpOiBPbmx5IHJldHVybiBhbiBlcnJvcgorICAg
ICAgICBpZiB0aGVyZSByZWFsbHkgd2FzIGEgcGFyc2luZyBlcnJvciwgcmF0aGVyIHRoYW4gdGhl
IGNhc2Ugb2YgdGhlcmUKKyAgICAgICAgYmVpbmcgemVybyBrZXkgaWRzIGluIHRoZSBpbml0IGRh
dGEgcGF5bG9hZC4KKwogMjAxOC0wOC0wMiAgQ2hhcmxpZSBUdXJuZXIgIDxjdHVybmVyQGlnYWxp
YS5jb20+CiAKICAgICAgICAgSGFuZGxlIHplcm8tc2l6ZWQgSVNPTVA0IGJveGVzIGFwcHJvcHJp
YXRlbHkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZW5jcnlwdGVkbWVkaWEv
SW5pdERhdGFSZWdpc3RyeS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2VuY3J5cHRlZG1l
ZGlhL0luaXREYXRhUmVnaXN0cnkuY3BwCmluZGV4IGMyOWIwMzhhZDFkMjkyNWM0Mzg0NzJmM2Fk
ZjA4ZjRhNTRiMGEzYTEuLjFkNjdlZDY2YmMzMmE0ZTA2YjNjNjc5NTViNTRiYmRjYzQ2Nzk1ZDgg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZW5jcnlwdGVkbWVkaWEvSW5pdERh
dGFSZWdpc3RyeS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9lbmNyeXB0ZWRtZWRp
YS9Jbml0RGF0YVJlZ2lzdHJ5LmNwcApAQCAtMzcsMjUgKzM3LDI1IEBACiAKIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKIAotc3RhdGljIFZlY3RvcjxSZWY8U2hhcmVkQnVmZmVyPj4gZXh0cmFjdEtleUlE
c0tleWlkcyhjb25zdCBTaGFyZWRCdWZmZXImIGJ1ZmZlcikKK3N0YXRpYyBzdGQ6Om9wdGlvbmFs
PFZlY3RvcjxSZWY8U2hhcmVkQnVmZmVyPj4+IGV4dHJhY3RLZXlJRHNLZXlpZHMoY29uc3QgU2hh
cmVkQnVmZmVyJiBidWZmZXIpCiB7CiAgICAgLy8gMS4gRm9ybWF0CiAgICAgLy8gaHR0cHM6Ly93
M2MuZ2l0aHViLmlvL2VuY3J5cHRlZC1tZWRpYS9mb3JtYXQtcmVnaXN0cnkvaW5pdGRhdGEva2V5
aWRzLmh0bWwjZm9ybWF0CiAgICAgaWYgKGJ1ZmZlci5zaXplKCkgPiBzdGQ6Om51bWVyaWNfbGlt
aXRzPHVuc2lnbmVkPjo6bWF4KCkpCi0gICAgICAgIHJldHVybiB7IH07CisgICAgICAgIHJldHVy
biBzdGQ6Om51bGxvcHQ7CiAgICAgU3RyaW5nIGpzb24geyBidWZmZXIuZGF0YSgpLCBzdGF0aWNf
Y2FzdDx1bnNpZ25lZD4oYnVmZmVyLnNpemUoKSkgfTsKIAogICAgIFJlZlB0cjxKU09OOjpWYWx1
ZT4gdmFsdWU7CiAgICAgaWYgKCFKU09OOjpWYWx1ZTo6cGFyc2VKU09OKGpzb24sIHZhbHVlKSkK
LSAgICAgICAgcmV0dXJuIHsgfTsKKyAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKIAogICAg
IFJlZlB0cjxKU09OOjpPYmplY3Q+IG9iamVjdDsKICAgICBpZiAoIXZhbHVlLT5hc09iamVjdChv
YmplY3QpKQotICAgICAgICByZXR1cm4geyB9OworICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0
OwogCiAgICAgUmVmUHRyPEpTT046OkFycmF5PiBraWRzQXJyYXk7CiAgICAgaWYgKCFvYmplY3Qt
PmdldEFycmF5KCJraWRzIiwga2lkc0FycmF5KSkKLSAgICAgICAgcmV0dXJuIHsgfTsKKyAgICAg
ICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKIAogICAgIFZlY3RvcjxSZWY8U2hhcmVkQnVmZmVyPj4g
a2V5SURzOwogICAgIGZvciAoYXV0byYgdmFsdWUgOiAqa2lkc0FycmF5KSB7CkBAIC03OCwxMyAr
NzgsMTMgQEAgc3RhdGljIFJlZlB0cjxTaGFyZWRCdWZmZXI+IHNhbml0aXplS2V5aWRzKGNvbnN0
IFNoYXJlZEJ1ZmZlciYgYnVmZmVyKQogewogICAgIC8vIDEuIEZvcm1hdAogICAgIC8vIGh0dHBz
Oi8vdzNjLmdpdGh1Yi5pby9lbmNyeXB0ZWQtbWVkaWEvZm9ybWF0LXJlZ2lzdHJ5L2luaXRkYXRh
L2tleWlkcy5odG1sI2Zvcm1hdAotICAgIFZlY3RvcjxSZWY8U2hhcmVkQnVmZmVyPj4ga2V5SURC
dWZmZXIgPSBleHRyYWN0S2V5SURzS2V5aWRzKGJ1ZmZlcik7Ci0gICAgaWYgKGtleUlEQnVmZmVy
LmlzRW1wdHkoKSkKKyAgICBhdXRvIGtleUlEQnVmZmVyID0gZXh0cmFjdEtleUlEc0tleWlkcyhi
dWZmZXIpOworICAgIGlmICgha2V5SURCdWZmZXIpCiAgICAgICAgIHJldHVybiBudWxscHRyOwog
CiAgICAgYXV0byBvYmplY3QgPSBKU09OOjpPYmplY3Q6OmNyZWF0ZSgpOwogICAgIGF1dG8ga2lk
c0FycmF5ID0gSlNPTjo6QXJyYXk6OmNyZWF0ZSgpOwotICAgIGZvciAoYXV0byYgYnVmZmVyIDog
a2V5SURCdWZmZXIpCisgICAgZm9yIChhdXRvJiBidWZmZXIgOiBrZXlJREJ1ZmZlci52YWx1ZSgp
KQogICAgICAgICBraWRzQXJyYXktPnB1c2hTdHJpbmcoV1RGOjpiYXNlNjRVUkxFbmNvZGUoYnVm
ZmVyLT5kYXRhKCksIGJ1ZmZlci0+c2l6ZSgpKSk7CiAgICAgb2JqZWN0LT5zZXRBcnJheSgia2lk
cyIsIFdURk1vdmUoa2lkc0FycmF5KSk7CiAKQEAgLTEwMCwxMiArMTAwLDEyIEBAIHN0YXRpYyBS
ZWZQdHI8U2hhcmVkQnVmZmVyPiBzYW5pdGl6ZUNlbmMoY29uc3QgU2hhcmVkQnVmZmVyJiBidWZm
ZXIpCiAgICAgcmV0dXJuIGJ1ZmZlci5jb3B5KCk7CiB9CiAKLXN0YXRpYyBWZWN0b3I8UmVmPFNo
YXJlZEJ1ZmZlcj4+IGV4dHJhY3RLZXlJRHNDZW5jKGNvbnN0IFNoYXJlZEJ1ZmZlciYpCitzdGF0
aWMgc3RkOjpvcHRpb25hbDxWZWN0b3I8UmVmPFNoYXJlZEJ1ZmZlcj4+PiBleHRyYWN0S2V5SURz
Q2VuYyhjb25zdCBTaGFyZWRCdWZmZXImKQogewogICAgIC8vIDQuIENvbW1vbiBTeXN0ZW1JRCBh
bmQgUFNTSCBCb3ggRm9ybWF0CiAgICAgLy8gaHR0cHM6Ly93M2MuZ2l0aHViLmlvL2VuY3J5cHRl
ZC1tZWRpYS9mb3JtYXQtcmVnaXN0cnkvaW5pdGRhdGEvY2VuYy5odG1sI2NvbW1vbi1zeXN0ZW0K
ICAgICBub3RJbXBsZW1lbnRlZCgpOwotICAgIHJldHVybiB7IH07CisgICAgcmV0dXJuIHN0ZDo6
bnVsbG9wdDsKIH0KIAogc3RhdGljIFJlZlB0cjxTaGFyZWRCdWZmZXI+IHNhbml0aXplV2ViTShj
b25zdCBTaGFyZWRCdWZmZXImIGJ1ZmZlcikKQEAgLTExNiwxMiArMTE2LDEyIEBAIHN0YXRpYyBS
ZWZQdHI8U2hhcmVkQnVmZmVyPiBzYW5pdGl6ZVdlYk0oY29uc3QgU2hhcmVkQnVmZmVyJiBidWZm
ZXIpCiAgICAgcmV0dXJuIGJ1ZmZlci5jb3B5KCk7CiB9CiAKLXN0YXRpYyBWZWN0b3I8UmVmPFNo
YXJlZEJ1ZmZlcj4+IGV4dHJhY3RLZXlJRHNXZWJNKGNvbnN0IFNoYXJlZEJ1ZmZlciYpCitzdGF0
aWMgc3RkOjpvcHRpb25hbDxWZWN0b3I8UmVmPFNoYXJlZEJ1ZmZlcj4+PiBleHRyYWN0S2V5SURz
V2ViTShjb25zdCBTaGFyZWRCdWZmZXImKQogewogICAgIC8vIDEuIEZvcm1hdAogICAgIC8vIGh0
dHBzOi8vdzNjLmdpdGh1Yi5pby9lbmNyeXB0ZWQtbWVkaWEvZm9ybWF0LXJlZ2lzdHJ5L2luaXRk
YXRhL3dlYm0uaHRtbCNmb3JtYXQKICAgICBub3RJbXBsZW1lbnRlZCgpOwotICAgIHJldHVybiB7
IH07CisgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKIH0KIAogSW5pdERhdGFSZWdpc3RyeSYgSW5p
dERhdGFSZWdpc3RyeTo6c2hhcmVkKCkKQEAgLTE0NywxMSArMTQ3LDExIEBAIFJlZlB0cjxTaGFy
ZWRCdWZmZXI+IEluaXREYXRhUmVnaXN0cnk6OnNhbml0aXplSW5pdERhdGEoY29uc3QgQXRvbWlj
U3RyaW5nJiBpbml0CiAgICAgcmV0dXJuIGl0ZXItPnZhbHVlLnNhbml0aXplSW5pdERhdGEoYnVm
ZmVyKTsKIH0KIAotVmVjdG9yPFJlZjxTaGFyZWRCdWZmZXI+PiBJbml0RGF0YVJlZ2lzdHJ5Ojpl
eHRyYWN0S2V5SURzKGNvbnN0IEF0b21pY1N0cmluZyYgaW5pdERhdGFUeXBlLCBjb25zdCBTaGFy
ZWRCdWZmZXImIGJ1ZmZlcikKK3N0ZDo6b3B0aW9uYWw8VmVjdG9yPFJlZjxTaGFyZWRCdWZmZXI+
Pj4gSW5pdERhdGFSZWdpc3RyeTo6ZXh0cmFjdEtleUlEcyhjb25zdCBBdG9taWNTdHJpbmcmIGlu
aXREYXRhVHlwZSwgY29uc3QgU2hhcmVkQnVmZmVyJiBidWZmZXIpCiB7CiAgICAgYXV0byBpdGVy
ID0gbV90eXBlcy5maW5kKGluaXREYXRhVHlwZSk7CiAgICAgaWYgKGl0ZXIgPT0gbV90eXBlcy5l
bmQoKSB8fCAhaXRlci0+dmFsdWUuc2FuaXRpemVJbml0RGF0YSkKLSAgICAgICAgcmV0dXJuIHsg
fTsKKyAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKICAgICByZXR1cm4gaXRlci0+dmFsdWUu
ZXh0cmFjdEtleUlEcyhidWZmZXIpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL2VuY3J5cHRlZG1lZGlhL0luaXREYXRhUmVnaXN0cnkuaCBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvZW5jcnlwdGVkbWVkaWEvSW5pdERhdGFSZWdpc3RyeS5oCmluZGV4IDM5YmZhMDQ1
MzU0NmRhNTc3YmEzZDlmOGYxYTQ5NDg5MWI4NjgxNzQuLmQxZTM1ODRkZmUzNTA5ZGZkMmI0Yjk0
ODcwNjg5MThkNDViODkyMjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZW5j
cnlwdGVkbWVkaWEvSW5pdERhdGFSZWdpc3RyeS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvZW5jcnlwdGVkbWVkaWEvSW5pdERhdGFSZWdpc3RyeS5oCkBAIC0yOSw2ICsyOSw3IEBACiAK
ICNpbmNsdWRlIDx3dGYvRnVuY3Rpb24uaD4KICNpbmNsdWRlIDx3dGYvSGFzaE1hcC5oPgorI2lu
Y2x1ZGUgPHd0Zi9PcHRpb25hbC5oPgogI2luY2x1ZGUgPHd0Zi9SZWYuaD4KICNpbmNsdWRlIDx3
dGYvUmVmUHRyLmg+CiAjaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgpAQCAtNDUsMTEgKzQ2LDExIEBA
IHB1YmxpYzoKICAgICBmcmllbmQgY2xhc3MgTmV2ZXJEZXN0cm95ZWQ8SW5pdERhdGFSZWdpc3Ry
eT47CiAKICAgICBSZWZQdHI8U2hhcmVkQnVmZmVyPiBzYW5pdGl6ZUluaXREYXRhKGNvbnN0IEF0
b21pY1N0cmluZyYgaW5pdERhdGFUeXBlLCBjb25zdCBTaGFyZWRCdWZmZXImKTsKLSAgICBXRUJD
T1JFX0VYUE9SVCBWZWN0b3I8UmVmPFNoYXJlZEJ1ZmZlcj4+IGV4dHJhY3RLZXlJRHMoY29uc3Qg
QXRvbWljU3RyaW5nJiBpbml0RGF0YVR5cGUsIGNvbnN0IFNoYXJlZEJ1ZmZlciYpOworICAgIFdF
QkNPUkVfRVhQT1JUIHN0ZDo6b3B0aW9uYWw8VmVjdG9yPFJlZjxTaGFyZWRCdWZmZXI+Pj4gZXh0
cmFjdEtleUlEcyhjb25zdCBBdG9taWNTdHJpbmcmIGluaXREYXRhVHlwZSwgY29uc3QgU2hhcmVk
QnVmZmVyJik7CiAKICAgICBzdHJ1Y3QgSW5pdERhdGFUeXBlQ2FsbGJhY2tzIHsKICAgICAgICAg
dXNpbmcgU2FuaXRpemVJbml0RGF0YUNhbGxiYWNrID0gRnVuY3Rpb248UmVmUHRyPFNoYXJlZEJ1
ZmZlcj4oY29uc3QgU2hhcmVkQnVmZmVyJik+OwotICAgICAgICB1c2luZyBFeHRyYWN0S2V5SURz
Q2FsbGJhY2sgPSBGdW5jdGlvbjxWZWN0b3I8UmVmPFNoYXJlZEJ1ZmZlcj4+KGNvbnN0IFNoYXJl
ZEJ1ZmZlciYpPjsKKyAgICAgICAgdXNpbmcgRXh0cmFjdEtleUlEc0NhbGxiYWNrID0gRnVuY3Rp
b248c3RkOjpvcHRpb25hbDxWZWN0b3I8UmVmPFNoYXJlZEJ1ZmZlcj4+Pihjb25zdCBTaGFyZWRC
dWZmZXImKT47CiAKICAgICAgICAgU2FuaXRpemVJbml0RGF0YUNhbGxiYWNrIHNhbml0aXplSW5p
dERhdGE7CiAgICAgICAgIEV4dHJhY3RLZXlJRHNDYWxsYmFjayBleHRyYWN0S2V5SURzOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL0NE
TUZhaXJQbGF5U3RyZWFtaW5nLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2F2Zm91bmRhdGlvbi9DRE1GYWlyUGxheVN0cmVhbWluZy5jcHAKaW5kZXggZDIwODY4NDhkZTll
MDM2N2IyOWE3MDJkNjQ1MWUwZWU4ZjI2NzRhOC4uOGM2NGRlMWU1MTUzNmNjZWIyYjRmMjJlMWVm
ZTk4OWY2MTAzYTlkMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvYXZmb3VuZGF0aW9uL0NETUZhaXJQbGF5U3RyZWFtaW5nLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vQ0RNRmFpclBsYXlTdHJlYW1pbmcu
Y3BwCkBAIC0xNTgsOSArMTU4LDggQEAgc3RhdGljIFNjaGVtZUFuZEtleVJlc3VsdCBleHRyYWN0
U2NoZW1lQW5kS2V5SWRGcm9tU2luZihjb25zdCBTaGFyZWRCdWZmZXImIGJ1ZmYKICAgICByZXR1
cm4gcmVzdWx0OwogfQogCi1WZWN0b3I8UmVmPFNoYXJlZEJ1ZmZlcj4+IENETVByaXZhdGVGYWly
UGxheVN0cmVhbWluZzo6ZXh0cmFjdEtleUlEc1NpbmYoY29uc3QgU2hhcmVkQnVmZmVyJiBidWZm
ZXIpCitzdGQ6Om9wdGlvbmFsPFZlY3RvcjxSZWY8U2hhcmVkQnVmZmVyPj4+IENETVByaXZhdGVG
YWlyUGxheVN0cmVhbWluZzo6ZXh0cmFjdEtleUlEc1NpbmYoY29uc3QgU2hhcmVkQnVmZmVyJiBi
dWZmZXIpCiB7Ci0KICAgICBWZWN0b3I8UmVmPFNoYXJlZEJ1ZmZlcj4+IGtleUlEczsKICAgICBh
dXRvIHJlc3VsdHMgPSBleHRyYWN0U2NoZW1lQW5kS2V5SWRGcm9tU2luZihidWZmZXIpOwogCkBA
IC0xODcsNyArMTg2LDcgQEAgUmVmUHRyPFNoYXJlZEJ1ZmZlcj4gQ0RNUHJpdmF0ZUZhaXJQbGF5
U3RyZWFtaW5nOjpzYW5pdGl6ZVNrZChjb25zdCBTaGFyZWRCdWZmZXIKICAgICByZXR1cm4gYnVm
ZmVyLmNvcHkoKTsKIH0KIAotVmVjdG9yPFJlZjxTaGFyZWRCdWZmZXI+PiBDRE1Qcml2YXRlRmFp
clBsYXlTdHJlYW1pbmc6OmV4dHJhY3RLZXlJRHNTa2QoY29uc3QgU2hhcmVkQnVmZmVyJiBidWZm
ZXIpCitzdGQ6Om9wdGlvbmFsPFZlY3RvcjxSZWY8U2hhcmVkQnVmZmVyPj4+IENETVByaXZhdGVG
YWlyUGxheVN0cmVhbWluZzo6ZXh0cmFjdEtleUlEc1NrZChjb25zdCBTaGFyZWRCdWZmZXImIGJ1
ZmZlcikKIHsKICAgICAvLyBJbiB0aGUgJ3NrZCcgc2NoZW1lLCB0aGUgaW5pdCBkYXRhIGlzIHRo
ZSBrZXkgSUQuCiAgICAgVmVjdG9yPFJlZjxTaGFyZWRCdWZmZXI+PiBrZXlJRHM7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vQ0RNRmFp
clBsYXlTdHJlYW1pbmcuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91
bmRhdGlvbi9DRE1GYWlyUGxheVN0cmVhbWluZy5oCmluZGV4IDhhZDM2ODlhOWE3NDIzYTMzOWQw
OGRmNGM4M2FlMDJiMTNkMmJmNWQuLjE0NGMwMjFhMmY0Y2Y3NzU2Nzc2ZDVlZDRlMDA2ZTY4MTRm
MTk5MmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91
bmRhdGlvbi9DRE1GYWlyUGxheVN0cmVhbWluZy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9DRE1GYWlyUGxheVN0cmVhbWluZy5oCkBAIC02OCwx
MSArNjgsMTEgQEAgcHVibGljOgogICAgIHN0ZDo6b3B0aW9uYWw8U3RyaW5nPiBzYW5pdGl6ZVNl
c3Npb25JZChjb25zdCBTdHJpbmcmKSBjb25zdCBvdmVycmlkZTsKIAogICAgIHN0YXRpYyBjb25z
dCBBdG9taWNTdHJpbmcmIHNpbmZOYW1lKCk7Ci0gICAgc3RhdGljIFZlY3RvcjxSZWY8U2hhcmVk
QnVmZmVyPj4gZXh0cmFjdEtleUlEc1NpbmYoY29uc3QgU2hhcmVkQnVmZmVyJik7CisgICAgc3Rh
dGljIHN0ZDo6b3B0aW9uYWw8VmVjdG9yPFJlZjxTaGFyZWRCdWZmZXI+Pj4gZXh0cmFjdEtleUlE
c1NpbmYoY29uc3QgU2hhcmVkQnVmZmVyJik7CiAgICAgc3RhdGljIFJlZlB0cjxTaGFyZWRCdWZm
ZXI+IHNhbml0aXplU2luZihjb25zdCBTaGFyZWRCdWZmZXImKTsKIAogICAgIHN0YXRpYyBjb25z
dCBBdG9taWNTdHJpbmcmIHNrZE5hbWUoKTsKLSAgICBzdGF0aWMgVmVjdG9yPFJlZjxTaGFyZWRC
dWZmZXI+PiBleHRyYWN0S2V5SURzU2tkKGNvbnN0IFNoYXJlZEJ1ZmZlciYpOworICAgIHN0YXRp
YyBzdGQ6Om9wdGlvbmFsPFZlY3RvcjxSZWY8U2hhcmVkQnVmZmVyPj4+IGV4dHJhY3RLZXlJRHNT
a2QoY29uc3QgU2hhcmVkQnVmZmVyJik7CiAgICAgc3RhdGljIFJlZlB0cjxTaGFyZWRCdWZmZXI+
IHNhbml0aXplU2tkKGNvbnN0IFNoYXJlZEJ1ZmZlciYpOwogfTsKIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvQ0RNSW5zdGFu
Y2VGYWlyUGxheVN0cmVhbWluZ0FWRk9iakMubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9DRE1JbnN0YW5jZUZhaXJQbGF5U3RyZWFtaW5nQVZG
T2JqQy5tbQppbmRleCBlMTA1NDg2Y2JmNWYwNjVmYjM2ZTI2Y2YwNDIyMzRiZjAxNWE0M2ZmLi5k
YWRhOTQwMTg3ODdjZjk0NjgyMzA1MmFmMjFlMmIyNGJmZDQ0ZjBlIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9DRE1JbnN0YW5j
ZUZhaXJQbGF5U3RyZWFtaW5nQVZGT2JqQy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9DRE1JbnN0YW5jZUZhaXJQbGF5U3RyZWFtaW5n
QVZGT2JqQy5tbQpAQCAtMjQxLDggKzI0MSwxMCBAQCBWZWN0b3I8UmVmPFNoYXJlZEJ1ZmZlcj4+
IENETUluc3RhbmNlRmFpclBsYXlTdHJlYW1pbmdBVkZPYmpDOjprZXlJRHMoKQogICAgICAgICBy
ZXR1cm4gVmVjdG9yPFJlZjxTaGFyZWRCdWZmZXI+Pjo6ZnJvbShTaGFyZWRCdWZmZXI6OmNyZWF0
ZShbKE5TU3RyaW5nICopbV9yZXF1ZXN0LmdldCgpLmlkZW50aWZpZXIgZGF0YVVzaW5nRW5jb2Rp
bmc6TlNVVEY4U3RyaW5nRW5jb2RpbmddKSk7CiAgICAgaWYgKFttX3JlcXVlc3QuZ2V0KCkuaWRl
bnRpZmllciBpc0tpbmRPZkNsYXNzOltOU0RhdGEgY2xhc3NdXSkKICAgICAgICAgcmV0dXJuIFZl
Y3RvcjxSZWY8U2hhcmVkQnVmZmVyPj46OmZyb20oU2hhcmVkQnVmZmVyOjpjcmVhdGUoKE5TRGF0
YSAqKW1fcmVxdWVzdC5nZXQoKS5pZGVudGlmaWVyKSk7Ci0gICAgaWYgKG1fcmVxdWVzdC5nZXQo
KS5pbml0aWFsaXphdGlvbkRhdGEpCi0gICAgICAgIHJldHVybiBDRE1Qcml2YXRlRmFpclBsYXlT
dHJlYW1pbmc6OmV4dHJhY3RLZXlJRHNTaW5mKFNoYXJlZEJ1ZmZlcjo6Y3JlYXRlKG1fcmVxdWVz
dC5nZXQoKS5pbml0aWFsaXphdGlvbkRhdGEpKTsKKyAgICBpZiAobV9yZXF1ZXN0LmdldCgpLmlu
aXRpYWxpemF0aW9uRGF0YSkgeworICAgICAgICBhdXRvIHNpbmZLZXlJRHMgPSBDRE1Qcml2YXRl
RmFpclBsYXlTdHJlYW1pbmc6OmV4dHJhY3RLZXlJRHNTaW5mKFNoYXJlZEJ1ZmZlcjo6Y3JlYXRl
KG1fcmVxdWVzdC5nZXQoKS5pbml0aWFsaXphdGlvbkRhdGEpKTsKKyAgICAgICAgcmV0dXJuIHNp
bmZLZXlJRHMgPyB7IH0gOiBzaW5mS2V5SURzLnZhbHVlKCk7CisgICAgfQogICAgIHJldHVybiB7
IH07CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvTW9ja0NETUZhY3Rv
cnkuY3BwIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9Nb2NrQ0RNRmFjdG9yeS5jcHAKaW5kZXgg
YTc0MzNjNmNmODIyNWM3NThkYmRmMjJhMTIzNjM5MjQwMDhjM2IyMi4uNTFkNzc3NTZiYWM1NTUz
MmQzZmE3NTJjZWU3Yzc0ZGU0NWNmM2QyNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvdGVz
dGluZy9Nb2NrQ0RNRmFjdG9yeS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9Nb2Nr
Q0RNRmFjdG9yeS5jcHAKQEAgLTI4MywxMyArMjgzLDEzIEBAIHZvaWQgTW9ja0NETUluc3RhbmNl
OjpyZXF1ZXN0TGljZW5zZShMaWNlbnNlVHlwZSBsaWNlbnNlVHlwZSwgY29uc3QgQXRvbWljU3Ry
aW5nCiAgICAgfQogCiAgICAgYXV0byBrZXlJRHMgPSBJbml0RGF0YVJlZ2lzdHJ5OjpzaGFyZWQo
KS5leHRyYWN0S2V5SURzKGluaXREYXRhVHlwZSwgaW5pdERhdGEpOwotICAgIGlmIChrZXlJRHMu
aXNFbXB0eSgpKSB7CisgICAgaWYgKCFrZXlJRHMgfHwgKGtleUlEcyAmJiBrZXlJRHMudmFsdWUo
KS5pc0VtcHR5KCkpKSB7CiAgICAgICAgIGNhbGxiYWNrKFNoYXJlZEJ1ZmZlcjo6Y3JlYXRlKCks
IGVtcHR5U3RyaW5nKCksIGZhbHNlLCBTdWNjZXNzVmFsdWU6OkZhaWxlZCk7CiAgICAgICAgIHJl
dHVybjsKICAgICB9CiAKICAgICBTdHJpbmcgc2Vzc2lvbklEID0gY3JlYXRlQ2Fub25pY2FsVVVJ
RFN0cmluZygpOwotICAgIGZhY3RvcnktPmFkZEtleXNUb1Nlc3Npb25XaXRoSUQoc2Vzc2lvbklE
LCBXVEZNb3ZlKGtleUlEcykpOworICAgIGZhY3RvcnktPmFkZEtleXNUb1Nlc3Npb25XaXRoSUQo
c2Vzc2lvbklELCBXVEZNb3ZlKGtleUlEcy52YWx1ZSgpKSk7CiAKICAgICBDU3RyaW5nIGxpY2Vu
c2UgeyAibGljZW5zZSIgfTsKICAgICBjYWxsYmFjayhTaGFyZWRCdWZmZXI6OmNyZWF0ZShsaWNl
bnNlLmRhdGEoKSwgbGljZW5zZS5sZW5ndGgoKSksIHNlc3Npb25JRCwgZmFsc2UsIFN1Y2Nlc3NW
YWx1ZTo6U3VjY2VlZGVkKTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>346490</attachid>
            <date>2018-08-03 08:53:22 -0700</date>
            <delta_ts>2018-08-06 04:40:49 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-188303-20180803165320.patch</filename>
            <type>text/plain</type>
            <size>12704</size>
            <attacher name="Charlie Turner">cturner</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjM0NDk3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNDE5ZTMzNDMxNDQyNjI4
NTAzNjFlZGUyYjkzNTFkZjkyOTlhNmZmYy4uZWE0Y2ZjYjZhMWQ0MTI1ZWQ1Y2RmOWE3MDdkMDQ2
OGI1NGY5ZTEyMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ3IEBACisyMDE4LTA4LTAzICBDaGFy
bGllIFR1cm5lciAgPGN0dXJuZXJAaWdhbGlhLmNvbT4KKworICAgICAgICBSZXR1cm4gZXh0cmFj
dGVkIGtleSBpZHMgYXMgYW4gb3B0aW9uYWwKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTE4ODMwMworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIEFuIGVtcHR5IGxpc3Qgb2YgZXh0cmFjdGVkIGtleSBpZHMgd2Fz
IGJlaW5nIGNvbnNpZGVyZWQgYSBmYWlsdXJlCisgICAgICAgIGNhc2UgYmVmb3JlIHRoaXMgcGF0
Y2guIEluIHRoZSBQU1NIIGJveGVzIGZyb20gdGhlIENFTkMgc3RhbmRhcmQsCisgICAgICAgIGl0
J3Mgbm90IHVuY29tbW9uIGZvciB0aGUgYm94IHRvIGJlIHZlcnNpb24gMCwgbWVhbmluZyBpdCBo
YXMgbm8KKyAgICAgICAgZW1iZWRkZWQga2V5IGlkcywgc28gdGhlIGNhc2Ugd2hlbiB0aGVyZSdz
IGFuIGVtcHR5IGxpc3Qgc2hvdWxkCisgICAgICAgIG5vdCBiZSB0cmVhdGVkIGFzIGFuIGVycm9y
LiBHaXZlbiB0aGlzLCB0aGUgaW50ZXJmYWNlIHNob3VsZCBiZQorICAgICAgICBtb3JlIGdlbmVy
YWwgYW5kIGFsbG93IGZvciBhIHNlbnRpbmVsIHZhbHVlIGluZGljYXRpbmcgYSBwYXJzaW5nCisg
ICAgICAgIGVycm9yIHJhdGhlciB0aGFuIGFuIGFic2VuY2Ugb2Yga2V5IGlkcy4KKworICAgICAg
ICBDb3ZlcmVkIGJ5IGV4aXN0aW5nIHRlc3RzLgorCisgICAgICAgICogTW9kdWxlcy9lbmNyeXB0
ZWRtZWRpYS9Jbml0RGF0YVJlZ2lzdHJ5LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmV4dHJhY3RL
ZXlJRHNLZXlpZHMpOiBDaGFuZ2UgcmV0dXJuIHR5cGUgdG8gYmUgd3JhcHBlZAorICAgICAgICBp
biBhbiBvcHRpb25hbCwgYW5kIG1ha2UgcGFyc2luZyBlcnJvcnMgcmV0dXJuIGEgbnVsbG9wdCBy
YXRoZXIKKyAgICAgICAgdGhhbiBhbiBlbXB0eSB2ZWN0b3IuCisgICAgICAgIChXZWJDb3JlOjpz
YW5pdGl6ZUtleWlkcyk6IFVzZSB0aGUgbmV3IG9wdGlvbmFsIGludGVyZmFjZSwgcmV0dXJuCisg
ICAgICAgIGEgbnVsbCBSZWZQdHIgaW4gdGhlIGNhc2Ugb2YgYSBwYXJzaW5nIGVycm9yLCB0aGlz
IG1ldGhvZCBtYXkgbm93CisgICAgICAgIHJldHVybiBhbiBlbXB0eSB2ZWN0b3IuCisgICAgICAg
IChXZWJDb3JlOjpleHRyYWN0S2V5SURzQ2VuYyk6IE5vdCBpbXBsZW1lbnRlZCwgc28gcmV0dXJu
IGFuIGVycm9yCisgICAgICAgIHZhbHVlIHJhdGhlciB0aGFuIGFuIGVtcHR5IHZlY3Rvci4KKyAg
ICAgICAgKFdlYkNvcmU6OmV4dHJhY3RLZXlJRHNXZWJNKTogRGl0dG8uCisgICAgICAgIChXZWJD
b3JlOjpJbml0RGF0YVJlZ2lzdHJ5OjpleHRyYWN0S2V5SURzKTogRGl0dG8uCisgICAgICAgICog
TW9kdWxlcy9lbmNyeXB0ZWRtZWRpYS9Jbml0RGF0YVJlZ2lzdHJ5Lmg6IFVwZGF0ZSB0aGUgaW50
ZXJmYWNlCisgICAgICAgIHRvIHVzZSBhbiBvcHRpb25hbCByZXR1cm4gdHlwZS4KKyAgICAgICAg
KiBwbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vQ0RNRmFpclBsYXlTdHJlYW1pbmcuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6Q0RNUHJpdmF0ZUZhaXJQbGF5U3RyZWFtaW5nOjpleHRyYWN0
S2V5SURzU2luZik6IFVwZGF0ZQorICAgICAgICB0byB1c2UgdGhlIG5ldyBpbnRlcmZhY2UuCisg
ICAgICAgIChXZWJDb3JlOjpDRE1Qcml2YXRlRmFpclBsYXlTdHJlYW1pbmc6OmV4dHJhY3RLZXlJ
RHNTa2QpOiBEaXR0by4KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24v
Q0RNRmFpclBsYXlTdHJlYW1pbmcuaDogRGl0dG8uCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhp
Y3MvYXZmb3VuZGF0aW9uL29iamMvQ0RNSW5zdGFuY2VGYWlyUGxheVN0cmVhbWluZ0FWRk9iakMu
bW06CisgICAgICAgIChXZWJDb3JlOjpDRE1JbnN0YW5jZUZhaXJQbGF5U3RyZWFtaW5nQVZGT2Jq
Qzo6a2V5SURzKTogQ29udmVydAorICAgICAgICB0aGUgb3B0aW9uYWwgdmFsdWUgaW50byBhIHZl
Y3Rvciwgc2luY2UgaXQgaXMgYXNzdW1lZCB5b3UgY2FuIG5vdAorICAgICAgICBoYXZlIGFuIGVt
cHR5IHZlY3RvciBvZiBrZXkgaWRzIGluIHRoZSBpbml0IGRhdGFzIEZQUyBzdXBwb3J0cy4KKyAg
ICAgICAgKiB0ZXN0aW5nL01vY2tDRE1GYWN0b3J5LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok1v
Y2tDRE1JbnN0YW5jZTo6cmVxdWVzdExpY2Vuc2UpOiBPbmx5IHJldHVybiBhbiBlcnJvcgorICAg
ICAgICBpZiB0aGVyZSByZWFsbHkgd2FzIGEgcGFyc2luZyBlcnJvciwgcmF0aGVyIHRoYW4gdGhl
IGNhc2Ugb2YgdGhlcmUKKyAgICAgICAgYmVpbmcgemVybyBrZXkgaWRzIGluIHRoZSBpbml0IGRh
dGEgcGF5bG9hZC4KKwogMjAxOC0wOC0wMiAgQ2hhcmxpZSBUdXJuZXIgIDxjdHVybmVyQGlnYWxp
YS5jb20+CiAKICAgICAgICAgSGFuZGxlIHplcm8tc2l6ZWQgSVNPTVA0IGJveGVzIGFwcHJvcHJp
YXRlbHkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZW5jcnlwdGVkbWVkaWEv
SW5pdERhdGFSZWdpc3RyeS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2VuY3J5cHRlZG1l
ZGlhL0luaXREYXRhUmVnaXN0cnkuY3BwCmluZGV4IGMyOWIwMzhhZDFkMjkyNWM0Mzg0NzJmM2Fk
ZjA4ZjRhNTRiMGEzYTEuLjFkNjdlZDY2YmMzMmE0ZTA2YjNjNjc5NTViNTRiYmRjYzQ2Nzk1ZDgg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZW5jcnlwdGVkbWVkaWEvSW5pdERh
dGFSZWdpc3RyeS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9lbmNyeXB0ZWRtZWRp
YS9Jbml0RGF0YVJlZ2lzdHJ5LmNwcApAQCAtMzcsMjUgKzM3LDI1IEBACiAKIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKIAotc3RhdGljIFZlY3RvcjxSZWY8U2hhcmVkQnVmZmVyPj4gZXh0cmFjdEtleUlE
c0tleWlkcyhjb25zdCBTaGFyZWRCdWZmZXImIGJ1ZmZlcikKK3N0YXRpYyBzdGQ6Om9wdGlvbmFs
PFZlY3RvcjxSZWY8U2hhcmVkQnVmZmVyPj4+IGV4dHJhY3RLZXlJRHNLZXlpZHMoY29uc3QgU2hh
cmVkQnVmZmVyJiBidWZmZXIpCiB7CiAgICAgLy8gMS4gRm9ybWF0CiAgICAgLy8gaHR0cHM6Ly93
M2MuZ2l0aHViLmlvL2VuY3J5cHRlZC1tZWRpYS9mb3JtYXQtcmVnaXN0cnkvaW5pdGRhdGEva2V5
aWRzLmh0bWwjZm9ybWF0CiAgICAgaWYgKGJ1ZmZlci5zaXplKCkgPiBzdGQ6Om51bWVyaWNfbGlt
aXRzPHVuc2lnbmVkPjo6bWF4KCkpCi0gICAgICAgIHJldHVybiB7IH07CisgICAgICAgIHJldHVy
biBzdGQ6Om51bGxvcHQ7CiAgICAgU3RyaW5nIGpzb24geyBidWZmZXIuZGF0YSgpLCBzdGF0aWNf
Y2FzdDx1bnNpZ25lZD4oYnVmZmVyLnNpemUoKSkgfTsKIAogICAgIFJlZlB0cjxKU09OOjpWYWx1
ZT4gdmFsdWU7CiAgICAgaWYgKCFKU09OOjpWYWx1ZTo6cGFyc2VKU09OKGpzb24sIHZhbHVlKSkK
LSAgICAgICAgcmV0dXJuIHsgfTsKKyAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKIAogICAg
IFJlZlB0cjxKU09OOjpPYmplY3Q+IG9iamVjdDsKICAgICBpZiAoIXZhbHVlLT5hc09iamVjdChv
YmplY3QpKQotICAgICAgICByZXR1cm4geyB9OworICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0
OwogCiAgICAgUmVmUHRyPEpTT046OkFycmF5PiBraWRzQXJyYXk7CiAgICAgaWYgKCFvYmplY3Qt
PmdldEFycmF5KCJraWRzIiwga2lkc0FycmF5KSkKLSAgICAgICAgcmV0dXJuIHsgfTsKKyAgICAg
ICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKIAogICAgIFZlY3RvcjxSZWY8U2hhcmVkQnVmZmVyPj4g
a2V5SURzOwogICAgIGZvciAoYXV0byYgdmFsdWUgOiAqa2lkc0FycmF5KSB7CkBAIC03OCwxMyAr
NzgsMTMgQEAgc3RhdGljIFJlZlB0cjxTaGFyZWRCdWZmZXI+IHNhbml0aXplS2V5aWRzKGNvbnN0
IFNoYXJlZEJ1ZmZlciYgYnVmZmVyKQogewogICAgIC8vIDEuIEZvcm1hdAogICAgIC8vIGh0dHBz
Oi8vdzNjLmdpdGh1Yi5pby9lbmNyeXB0ZWQtbWVkaWEvZm9ybWF0LXJlZ2lzdHJ5L2luaXRkYXRh
L2tleWlkcy5odG1sI2Zvcm1hdAotICAgIFZlY3RvcjxSZWY8U2hhcmVkQnVmZmVyPj4ga2V5SURC
dWZmZXIgPSBleHRyYWN0S2V5SURzS2V5aWRzKGJ1ZmZlcik7Ci0gICAgaWYgKGtleUlEQnVmZmVy
LmlzRW1wdHkoKSkKKyAgICBhdXRvIGtleUlEQnVmZmVyID0gZXh0cmFjdEtleUlEc0tleWlkcyhi
dWZmZXIpOworICAgIGlmICgha2V5SURCdWZmZXIpCiAgICAgICAgIHJldHVybiBudWxscHRyOwog
CiAgICAgYXV0byBvYmplY3QgPSBKU09OOjpPYmplY3Q6OmNyZWF0ZSgpOwogICAgIGF1dG8ga2lk
c0FycmF5ID0gSlNPTjo6QXJyYXk6OmNyZWF0ZSgpOwotICAgIGZvciAoYXV0byYgYnVmZmVyIDog
a2V5SURCdWZmZXIpCisgICAgZm9yIChhdXRvJiBidWZmZXIgOiBrZXlJREJ1ZmZlci52YWx1ZSgp
KQogICAgICAgICBraWRzQXJyYXktPnB1c2hTdHJpbmcoV1RGOjpiYXNlNjRVUkxFbmNvZGUoYnVm
ZmVyLT5kYXRhKCksIGJ1ZmZlci0+c2l6ZSgpKSk7CiAgICAgb2JqZWN0LT5zZXRBcnJheSgia2lk
cyIsIFdURk1vdmUoa2lkc0FycmF5KSk7CiAKQEAgLTEwMCwxMiArMTAwLDEyIEBAIHN0YXRpYyBS
ZWZQdHI8U2hhcmVkQnVmZmVyPiBzYW5pdGl6ZUNlbmMoY29uc3QgU2hhcmVkQnVmZmVyJiBidWZm
ZXIpCiAgICAgcmV0dXJuIGJ1ZmZlci5jb3B5KCk7CiB9CiAKLXN0YXRpYyBWZWN0b3I8UmVmPFNo
YXJlZEJ1ZmZlcj4+IGV4dHJhY3RLZXlJRHNDZW5jKGNvbnN0IFNoYXJlZEJ1ZmZlciYpCitzdGF0
aWMgc3RkOjpvcHRpb25hbDxWZWN0b3I8UmVmPFNoYXJlZEJ1ZmZlcj4+PiBleHRyYWN0S2V5SURz
Q2VuYyhjb25zdCBTaGFyZWRCdWZmZXImKQogewogICAgIC8vIDQuIENvbW1vbiBTeXN0ZW1JRCBh
bmQgUFNTSCBCb3ggRm9ybWF0CiAgICAgLy8gaHR0cHM6Ly93M2MuZ2l0aHViLmlvL2VuY3J5cHRl
ZC1tZWRpYS9mb3JtYXQtcmVnaXN0cnkvaW5pdGRhdGEvY2VuYy5odG1sI2NvbW1vbi1zeXN0ZW0K
ICAgICBub3RJbXBsZW1lbnRlZCgpOwotICAgIHJldHVybiB7IH07CisgICAgcmV0dXJuIHN0ZDo6
bnVsbG9wdDsKIH0KIAogc3RhdGljIFJlZlB0cjxTaGFyZWRCdWZmZXI+IHNhbml0aXplV2ViTShj
b25zdCBTaGFyZWRCdWZmZXImIGJ1ZmZlcikKQEAgLTExNiwxMiArMTE2LDEyIEBAIHN0YXRpYyBS
ZWZQdHI8U2hhcmVkQnVmZmVyPiBzYW5pdGl6ZVdlYk0oY29uc3QgU2hhcmVkQnVmZmVyJiBidWZm
ZXIpCiAgICAgcmV0dXJuIGJ1ZmZlci5jb3B5KCk7CiB9CiAKLXN0YXRpYyBWZWN0b3I8UmVmPFNo
YXJlZEJ1ZmZlcj4+IGV4dHJhY3RLZXlJRHNXZWJNKGNvbnN0IFNoYXJlZEJ1ZmZlciYpCitzdGF0
aWMgc3RkOjpvcHRpb25hbDxWZWN0b3I8UmVmPFNoYXJlZEJ1ZmZlcj4+PiBleHRyYWN0S2V5SURz
V2ViTShjb25zdCBTaGFyZWRCdWZmZXImKQogewogICAgIC8vIDEuIEZvcm1hdAogICAgIC8vIGh0
dHBzOi8vdzNjLmdpdGh1Yi5pby9lbmNyeXB0ZWQtbWVkaWEvZm9ybWF0LXJlZ2lzdHJ5L2luaXRk
YXRhL3dlYm0uaHRtbCNmb3JtYXQKICAgICBub3RJbXBsZW1lbnRlZCgpOwotICAgIHJldHVybiB7
IH07CisgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKIH0KIAogSW5pdERhdGFSZWdpc3RyeSYgSW5p
dERhdGFSZWdpc3RyeTo6c2hhcmVkKCkKQEAgLTE0NywxMSArMTQ3LDExIEBAIFJlZlB0cjxTaGFy
ZWRCdWZmZXI+IEluaXREYXRhUmVnaXN0cnk6OnNhbml0aXplSW5pdERhdGEoY29uc3QgQXRvbWlj
U3RyaW5nJiBpbml0CiAgICAgcmV0dXJuIGl0ZXItPnZhbHVlLnNhbml0aXplSW5pdERhdGEoYnVm
ZmVyKTsKIH0KIAotVmVjdG9yPFJlZjxTaGFyZWRCdWZmZXI+PiBJbml0RGF0YVJlZ2lzdHJ5Ojpl
eHRyYWN0S2V5SURzKGNvbnN0IEF0b21pY1N0cmluZyYgaW5pdERhdGFUeXBlLCBjb25zdCBTaGFy
ZWRCdWZmZXImIGJ1ZmZlcikKK3N0ZDo6b3B0aW9uYWw8VmVjdG9yPFJlZjxTaGFyZWRCdWZmZXI+
Pj4gSW5pdERhdGFSZWdpc3RyeTo6ZXh0cmFjdEtleUlEcyhjb25zdCBBdG9taWNTdHJpbmcmIGlu
aXREYXRhVHlwZSwgY29uc3QgU2hhcmVkQnVmZmVyJiBidWZmZXIpCiB7CiAgICAgYXV0byBpdGVy
ID0gbV90eXBlcy5maW5kKGluaXREYXRhVHlwZSk7CiAgICAgaWYgKGl0ZXIgPT0gbV90eXBlcy5l
bmQoKSB8fCAhaXRlci0+dmFsdWUuc2FuaXRpemVJbml0RGF0YSkKLSAgICAgICAgcmV0dXJuIHsg
fTsKKyAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKICAgICByZXR1cm4gaXRlci0+dmFsdWUu
ZXh0cmFjdEtleUlEcyhidWZmZXIpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL2VuY3J5cHRlZG1lZGlhL0luaXREYXRhUmVnaXN0cnkuaCBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvZW5jcnlwdGVkbWVkaWEvSW5pdERhdGFSZWdpc3RyeS5oCmluZGV4IDM5YmZhMDQ1
MzU0NmRhNTc3YmEzZDlmOGYxYTQ5NDg5MWI4NjgxNzQuLmQxZTM1ODRkZmUzNTA5ZGZkMmI0Yjk0
ODcwNjg5MThkNDViODkyMjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZW5j
cnlwdGVkbWVkaWEvSW5pdERhdGFSZWdpc3RyeS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvZW5jcnlwdGVkbWVkaWEvSW5pdERhdGFSZWdpc3RyeS5oCkBAIC0yOSw2ICsyOSw3IEBACiAK
ICNpbmNsdWRlIDx3dGYvRnVuY3Rpb24uaD4KICNpbmNsdWRlIDx3dGYvSGFzaE1hcC5oPgorI2lu
Y2x1ZGUgPHd0Zi9PcHRpb25hbC5oPgogI2luY2x1ZGUgPHd0Zi9SZWYuaD4KICNpbmNsdWRlIDx3
dGYvUmVmUHRyLmg+CiAjaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgpAQCAtNDUsMTEgKzQ2LDExIEBA
IHB1YmxpYzoKICAgICBmcmllbmQgY2xhc3MgTmV2ZXJEZXN0cm95ZWQ8SW5pdERhdGFSZWdpc3Ry
eT47CiAKICAgICBSZWZQdHI8U2hhcmVkQnVmZmVyPiBzYW5pdGl6ZUluaXREYXRhKGNvbnN0IEF0
b21pY1N0cmluZyYgaW5pdERhdGFUeXBlLCBjb25zdCBTaGFyZWRCdWZmZXImKTsKLSAgICBXRUJD
T1JFX0VYUE9SVCBWZWN0b3I8UmVmPFNoYXJlZEJ1ZmZlcj4+IGV4dHJhY3RLZXlJRHMoY29uc3Qg
QXRvbWljU3RyaW5nJiBpbml0RGF0YVR5cGUsIGNvbnN0IFNoYXJlZEJ1ZmZlciYpOworICAgIFdF
QkNPUkVfRVhQT1JUIHN0ZDo6b3B0aW9uYWw8VmVjdG9yPFJlZjxTaGFyZWRCdWZmZXI+Pj4gZXh0
cmFjdEtleUlEcyhjb25zdCBBdG9taWNTdHJpbmcmIGluaXREYXRhVHlwZSwgY29uc3QgU2hhcmVk
QnVmZmVyJik7CiAKICAgICBzdHJ1Y3QgSW5pdERhdGFUeXBlQ2FsbGJhY2tzIHsKICAgICAgICAg
dXNpbmcgU2FuaXRpemVJbml0RGF0YUNhbGxiYWNrID0gRnVuY3Rpb248UmVmUHRyPFNoYXJlZEJ1
ZmZlcj4oY29uc3QgU2hhcmVkQnVmZmVyJik+OwotICAgICAgICB1c2luZyBFeHRyYWN0S2V5SURz
Q2FsbGJhY2sgPSBGdW5jdGlvbjxWZWN0b3I8UmVmPFNoYXJlZEJ1ZmZlcj4+KGNvbnN0IFNoYXJl
ZEJ1ZmZlciYpPjsKKyAgICAgICAgdXNpbmcgRXh0cmFjdEtleUlEc0NhbGxiYWNrID0gRnVuY3Rp
b248c3RkOjpvcHRpb25hbDxWZWN0b3I8UmVmPFNoYXJlZEJ1ZmZlcj4+Pihjb25zdCBTaGFyZWRC
dWZmZXImKT47CiAKICAgICAgICAgU2FuaXRpemVJbml0RGF0YUNhbGxiYWNrIHNhbml0aXplSW5p
dERhdGE7CiAgICAgICAgIEV4dHJhY3RLZXlJRHNDYWxsYmFjayBleHRyYWN0S2V5SURzOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL0NE
TUZhaXJQbGF5U3RyZWFtaW5nLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2F2Zm91bmRhdGlvbi9DRE1GYWlyUGxheVN0cmVhbWluZy5jcHAKaW5kZXggZDIwODY4NDhkZTll
MDM2N2IyOWE3MDJkNjQ1MWUwZWU4ZjI2NzRhOC4uOGM2NGRlMWU1MTUzNmNjZWIyYjRmMjJlMWVm
ZTk4OWY2MTAzYTlkMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvYXZmb3VuZGF0aW9uL0NETUZhaXJQbGF5U3RyZWFtaW5nLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vQ0RNRmFpclBsYXlTdHJlYW1pbmcu
Y3BwCkBAIC0xNTgsOSArMTU4LDggQEAgc3RhdGljIFNjaGVtZUFuZEtleVJlc3VsdCBleHRyYWN0
U2NoZW1lQW5kS2V5SWRGcm9tU2luZihjb25zdCBTaGFyZWRCdWZmZXImIGJ1ZmYKICAgICByZXR1
cm4gcmVzdWx0OwogfQogCi1WZWN0b3I8UmVmPFNoYXJlZEJ1ZmZlcj4+IENETVByaXZhdGVGYWly
UGxheVN0cmVhbWluZzo6ZXh0cmFjdEtleUlEc1NpbmYoY29uc3QgU2hhcmVkQnVmZmVyJiBidWZm
ZXIpCitzdGQ6Om9wdGlvbmFsPFZlY3RvcjxSZWY8U2hhcmVkQnVmZmVyPj4+IENETVByaXZhdGVG
YWlyUGxheVN0cmVhbWluZzo6ZXh0cmFjdEtleUlEc1NpbmYoY29uc3QgU2hhcmVkQnVmZmVyJiBi
dWZmZXIpCiB7Ci0KICAgICBWZWN0b3I8UmVmPFNoYXJlZEJ1ZmZlcj4+IGtleUlEczsKICAgICBh
dXRvIHJlc3VsdHMgPSBleHRyYWN0U2NoZW1lQW5kS2V5SWRGcm9tU2luZihidWZmZXIpOwogCkBA
IC0xODcsNyArMTg2LDcgQEAgUmVmUHRyPFNoYXJlZEJ1ZmZlcj4gQ0RNUHJpdmF0ZUZhaXJQbGF5
U3RyZWFtaW5nOjpzYW5pdGl6ZVNrZChjb25zdCBTaGFyZWRCdWZmZXIKICAgICByZXR1cm4gYnVm
ZmVyLmNvcHkoKTsKIH0KIAotVmVjdG9yPFJlZjxTaGFyZWRCdWZmZXI+PiBDRE1Qcml2YXRlRmFp
clBsYXlTdHJlYW1pbmc6OmV4dHJhY3RLZXlJRHNTa2QoY29uc3QgU2hhcmVkQnVmZmVyJiBidWZm
ZXIpCitzdGQ6Om9wdGlvbmFsPFZlY3RvcjxSZWY8U2hhcmVkQnVmZmVyPj4+IENETVByaXZhdGVG
YWlyUGxheVN0cmVhbWluZzo6ZXh0cmFjdEtleUlEc1NrZChjb25zdCBTaGFyZWRCdWZmZXImIGJ1
ZmZlcikKIHsKICAgICAvLyBJbiB0aGUgJ3NrZCcgc2NoZW1lLCB0aGUgaW5pdCBkYXRhIGlzIHRo
ZSBrZXkgSUQuCiAgICAgVmVjdG9yPFJlZjxTaGFyZWRCdWZmZXI+PiBrZXlJRHM7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vQ0RNRmFp
clBsYXlTdHJlYW1pbmcuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91
bmRhdGlvbi9DRE1GYWlyUGxheVN0cmVhbWluZy5oCmluZGV4IDhhZDM2ODlhOWE3NDIzYTMzOWQw
OGRmNGM4M2FlMDJiMTNkMmJmNWQuLjE0NGMwMjFhMmY0Y2Y3NzU2Nzc2ZDVlZDRlMDA2ZTY4MTRm
MTk5MmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91
bmRhdGlvbi9DRE1GYWlyUGxheVN0cmVhbWluZy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9DRE1GYWlyUGxheVN0cmVhbWluZy5oCkBAIC02OCwx
MSArNjgsMTEgQEAgcHVibGljOgogICAgIHN0ZDo6b3B0aW9uYWw8U3RyaW5nPiBzYW5pdGl6ZVNl
c3Npb25JZChjb25zdCBTdHJpbmcmKSBjb25zdCBvdmVycmlkZTsKIAogICAgIHN0YXRpYyBjb25z
dCBBdG9taWNTdHJpbmcmIHNpbmZOYW1lKCk7Ci0gICAgc3RhdGljIFZlY3RvcjxSZWY8U2hhcmVk
QnVmZmVyPj4gZXh0cmFjdEtleUlEc1NpbmYoY29uc3QgU2hhcmVkQnVmZmVyJik7CisgICAgc3Rh
dGljIHN0ZDo6b3B0aW9uYWw8VmVjdG9yPFJlZjxTaGFyZWRCdWZmZXI+Pj4gZXh0cmFjdEtleUlE
c1NpbmYoY29uc3QgU2hhcmVkQnVmZmVyJik7CiAgICAgc3RhdGljIFJlZlB0cjxTaGFyZWRCdWZm
ZXI+IHNhbml0aXplU2luZihjb25zdCBTaGFyZWRCdWZmZXImKTsKIAogICAgIHN0YXRpYyBjb25z
dCBBdG9taWNTdHJpbmcmIHNrZE5hbWUoKTsKLSAgICBzdGF0aWMgVmVjdG9yPFJlZjxTaGFyZWRC
dWZmZXI+PiBleHRyYWN0S2V5SURzU2tkKGNvbnN0IFNoYXJlZEJ1ZmZlciYpOworICAgIHN0YXRp
YyBzdGQ6Om9wdGlvbmFsPFZlY3RvcjxSZWY8U2hhcmVkQnVmZmVyPj4+IGV4dHJhY3RLZXlJRHNT
a2QoY29uc3QgU2hhcmVkQnVmZmVyJik7CiAgICAgc3RhdGljIFJlZlB0cjxTaGFyZWRCdWZmZXI+
IHNhbml0aXplU2tkKGNvbnN0IFNoYXJlZEJ1ZmZlciYpOwogfTsKIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvQ0RNSW5zdGFu
Y2VGYWlyUGxheVN0cmVhbWluZ0FWRk9iakMubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9DRE1JbnN0YW5jZUZhaXJQbGF5U3RyZWFtaW5nQVZG
T2JqQy5tbQppbmRleCBlMTA1NDg2Y2JmNWYwNjVmYjM2ZTI2Y2YwNDIyMzRiZjAxNWE0M2ZmLi45
M2RiYjNiZTkxOTBjZmRkZGFhMWJlOWYxNGIzNzVlOWE5NWE3OTdlIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9DRE1JbnN0YW5j
ZUZhaXJQbGF5U3RyZWFtaW5nQVZGT2JqQy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9DRE1JbnN0YW5jZUZhaXJQbGF5U3RyZWFtaW5n
QVZGT2JqQy5tbQpAQCAtMjQxLDggKzI0MSwxMiBAQCBWZWN0b3I8UmVmPFNoYXJlZEJ1ZmZlcj4+
IENETUluc3RhbmNlRmFpclBsYXlTdHJlYW1pbmdBVkZPYmpDOjprZXlJRHMoKQogICAgICAgICBy
ZXR1cm4gVmVjdG9yPFJlZjxTaGFyZWRCdWZmZXI+Pjo6ZnJvbShTaGFyZWRCdWZmZXI6OmNyZWF0
ZShbKE5TU3RyaW5nICopbV9yZXF1ZXN0LmdldCgpLmlkZW50aWZpZXIgZGF0YVVzaW5nRW5jb2Rp
bmc6TlNVVEY4U3RyaW5nRW5jb2RpbmddKSk7CiAgICAgaWYgKFttX3JlcXVlc3QuZ2V0KCkuaWRl
bnRpZmllciBpc0tpbmRPZkNsYXNzOltOU0RhdGEgY2xhc3NdXSkKICAgICAgICAgcmV0dXJuIFZl
Y3RvcjxSZWY8U2hhcmVkQnVmZmVyPj46OmZyb20oU2hhcmVkQnVmZmVyOjpjcmVhdGUoKE5TRGF0
YSAqKW1fcmVxdWVzdC5nZXQoKS5pZGVudGlmaWVyKSk7Ci0gICAgaWYgKG1fcmVxdWVzdC5nZXQo
KS5pbml0aWFsaXphdGlvbkRhdGEpCi0gICAgICAgIHJldHVybiBDRE1Qcml2YXRlRmFpclBsYXlT
dHJlYW1pbmc6OmV4dHJhY3RLZXlJRHNTaW5mKFNoYXJlZEJ1ZmZlcjo6Y3JlYXRlKG1fcmVxdWVz
dC5nZXQoKS5pbml0aWFsaXphdGlvbkRhdGEpKTsKKyAgICBpZiAobV9yZXF1ZXN0LmdldCgpLmlu
aXRpYWxpemF0aW9uRGF0YSkgeworICAgICAgICBhdXRvIHNpbmZLZXlJRHMgPSBDRE1Qcml2YXRl
RmFpclBsYXlTdHJlYW1pbmc6OmV4dHJhY3RLZXlJRHNTaW5mKFNoYXJlZEJ1ZmZlcjo6Y3JlYXRl
KG1fcmVxdWVzdC5nZXQoKS5pbml0aWFsaXphdGlvbkRhdGEpKTsKKyAgICAgICAgaWYgKCFzaW5m
S2V5SURzKQorICAgICAgICAgICAgcmV0dXJuIHsgfTsKKyAgICAgICAgcmV0dXJuIHNpbmZLZXlJ
RHMudmFsdWUoKTsKKyAgICB9CiAgICAgcmV0dXJuIHsgfTsKIH0KIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvdGVzdGluZy9Nb2NrQ0RNRmFjdG9yeS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS90
ZXN0aW5nL01vY2tDRE1GYWN0b3J5LmNwcAppbmRleCBhNzQzM2M2Y2Y4MjI1Yzc1OGRiZGYyMmEx
MjM2MzkyNDAwOGMzYjIyLi41MWQ3Nzc1NmJhYzU1NTMyZDNmYTc1MmNlZTdjNzRkZTQ1Y2YzZDI1
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL01vY2tDRE1GYWN0b3J5LmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL01vY2tDRE1GYWN0b3J5LmNwcApAQCAtMjgzLDEz
ICsyODMsMTMgQEAgdm9pZCBNb2NrQ0RNSW5zdGFuY2U6OnJlcXVlc3RMaWNlbnNlKExpY2Vuc2VU
eXBlIGxpY2Vuc2VUeXBlLCBjb25zdCBBdG9taWNTdHJpbmcKICAgICB9CiAKICAgICBhdXRvIGtl
eUlEcyA9IEluaXREYXRhUmVnaXN0cnk6OnNoYXJlZCgpLmV4dHJhY3RLZXlJRHMoaW5pdERhdGFU
eXBlLCBpbml0RGF0YSk7Ci0gICAgaWYgKGtleUlEcy5pc0VtcHR5KCkpIHsKKyAgICBpZiAoIWtl
eUlEcyB8fCAoa2V5SURzICYmIGtleUlEcy52YWx1ZSgpLmlzRW1wdHkoKSkpIHsKICAgICAgICAg
Y2FsbGJhY2soU2hhcmVkQnVmZmVyOjpjcmVhdGUoKSwgZW1wdHlTdHJpbmcoKSwgZmFsc2UsIFN1
Y2Nlc3NWYWx1ZTo6RmFpbGVkKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAogICAgIFN0cmlu
ZyBzZXNzaW9uSUQgPSBjcmVhdGVDYW5vbmljYWxVVUlEU3RyaW5nKCk7Ci0gICAgZmFjdG9yeS0+
YWRkS2V5c1RvU2Vzc2lvbldpdGhJRChzZXNzaW9uSUQsIFdURk1vdmUoa2V5SURzKSk7CisgICAg
ZmFjdG9yeS0+YWRkS2V5c1RvU2Vzc2lvbldpdGhJRChzZXNzaW9uSUQsIFdURk1vdmUoa2V5SURz
LnZhbHVlKCkpKTsKIAogICAgIENTdHJpbmcgbGljZW5zZSB7ICJsaWNlbnNlIiB9OwogICAgIGNh
bGxiYWNrKFNoYXJlZEJ1ZmZlcjo6Y3JlYXRlKGxpY2Vuc2UuZGF0YSgpLCBsaWNlbnNlLmxlbmd0
aCgpKSwgc2Vzc2lvbklELCBmYWxzZSwgU3VjY2Vzc1ZhbHVlOjpTdWNjZWVkZWQpOwo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>346624</attachid>
            <date>2018-08-06 04:40:52 -0700</date>
            <delta_ts>2018-08-06 09:47:28 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-188303-20180806124051.patch</filename>
            <type>text/plain</type>
            <size>12701</size>
            <attacher name="Charlie Turner">cturner</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjM0NDk3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNDE5ZTMzNDMxNDQyNjI4
NTAzNjFlZGUyYjkzNTFkZjkyOTlhNmZmYy4uZWE0Y2ZjYjZhMWQ0MTI1ZWQ1Y2RmOWE3MDdkMDQ2
OGI1NGY5ZTEyMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ3IEBACisyMDE4LTA4LTAzICBDaGFy
bGllIFR1cm5lciAgPGN0dXJuZXJAaWdhbGlhLmNvbT4KKworICAgICAgICBSZXR1cm4gZXh0cmFj
dGVkIGtleSBpZHMgYXMgYW4gb3B0aW9uYWwKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTE4ODMwMworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIEFuIGVtcHR5IGxpc3Qgb2YgZXh0cmFjdGVkIGtleSBpZHMgd2Fz
IGJlaW5nIGNvbnNpZGVyZWQgYSBmYWlsdXJlCisgICAgICAgIGNhc2UgYmVmb3JlIHRoaXMgcGF0
Y2guIEluIHRoZSBQU1NIIGJveGVzIGZyb20gdGhlIENFTkMgc3RhbmRhcmQsCisgICAgICAgIGl0
J3Mgbm90IHVuY29tbW9uIGZvciB0aGUgYm94IHRvIGJlIHZlcnNpb24gMCwgbWVhbmluZyBpdCBo
YXMgbm8KKyAgICAgICAgZW1iZWRkZWQga2V5IGlkcywgc28gdGhlIGNhc2Ugd2hlbiB0aGVyZSdz
IGFuIGVtcHR5IGxpc3Qgc2hvdWxkCisgICAgICAgIG5vdCBiZSB0cmVhdGVkIGFzIGFuIGVycm9y
LiBHaXZlbiB0aGlzLCB0aGUgaW50ZXJmYWNlIHNob3VsZCBiZQorICAgICAgICBtb3JlIGdlbmVy
YWwgYW5kIGFsbG93IGZvciBhIHNlbnRpbmVsIHZhbHVlIGluZGljYXRpbmcgYSBwYXJzaW5nCisg
ICAgICAgIGVycm9yIHJhdGhlciB0aGFuIGFuIGFic2VuY2Ugb2Yga2V5IGlkcy4KKworICAgICAg
ICBDb3ZlcmVkIGJ5IGV4aXN0aW5nIHRlc3RzLgorCisgICAgICAgICogTW9kdWxlcy9lbmNyeXB0
ZWRtZWRpYS9Jbml0RGF0YVJlZ2lzdHJ5LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmV4dHJhY3RL
ZXlJRHNLZXlpZHMpOiBDaGFuZ2UgcmV0dXJuIHR5cGUgdG8gYmUgd3JhcHBlZAorICAgICAgICBp
biBhbiBvcHRpb25hbCwgYW5kIG1ha2UgcGFyc2luZyBlcnJvcnMgcmV0dXJuIGEgbnVsbG9wdCBy
YXRoZXIKKyAgICAgICAgdGhhbiBhbiBlbXB0eSB2ZWN0b3IuCisgICAgICAgIChXZWJDb3JlOjpz
YW5pdGl6ZUtleWlkcyk6IFVzZSB0aGUgbmV3IG9wdGlvbmFsIGludGVyZmFjZSwgcmV0dXJuCisg
ICAgICAgIGEgbnVsbCBSZWZQdHIgaW4gdGhlIGNhc2Ugb2YgYSBwYXJzaW5nIGVycm9yLCB0aGlz
IG1ldGhvZCBtYXkgbm93CisgICAgICAgIHJldHVybiBhbiBlbXB0eSB2ZWN0b3IuCisgICAgICAg
IChXZWJDb3JlOjpleHRyYWN0S2V5SURzQ2VuYyk6IE5vdCBpbXBsZW1lbnRlZCwgc28gcmV0dXJu
IGFuIGVycm9yCisgICAgICAgIHZhbHVlIHJhdGhlciB0aGFuIGFuIGVtcHR5IHZlY3Rvci4KKyAg
ICAgICAgKFdlYkNvcmU6OmV4dHJhY3RLZXlJRHNXZWJNKTogRGl0dG8uCisgICAgICAgIChXZWJD
b3JlOjpJbml0RGF0YVJlZ2lzdHJ5OjpleHRyYWN0S2V5SURzKTogRGl0dG8uCisgICAgICAgICog
TW9kdWxlcy9lbmNyeXB0ZWRtZWRpYS9Jbml0RGF0YVJlZ2lzdHJ5Lmg6IFVwZGF0ZSB0aGUgaW50
ZXJmYWNlCisgICAgICAgIHRvIHVzZSBhbiBvcHRpb25hbCByZXR1cm4gdHlwZS4KKyAgICAgICAg
KiBwbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vQ0RNRmFpclBsYXlTdHJlYW1pbmcuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6Q0RNUHJpdmF0ZUZhaXJQbGF5U3RyZWFtaW5nOjpleHRyYWN0
S2V5SURzU2luZik6IFVwZGF0ZQorICAgICAgICB0byB1c2UgdGhlIG5ldyBpbnRlcmZhY2UuCisg
ICAgICAgIChXZWJDb3JlOjpDRE1Qcml2YXRlRmFpclBsYXlTdHJlYW1pbmc6OmV4dHJhY3RLZXlJ
RHNTa2QpOiBEaXR0by4KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24v
Q0RNRmFpclBsYXlTdHJlYW1pbmcuaDogRGl0dG8uCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhp
Y3MvYXZmb3VuZGF0aW9uL29iamMvQ0RNSW5zdGFuY2VGYWlyUGxheVN0cmVhbWluZ0FWRk9iakMu
bW06CisgICAgICAgIChXZWJDb3JlOjpDRE1JbnN0YW5jZUZhaXJQbGF5U3RyZWFtaW5nQVZGT2Jq
Qzo6a2V5SURzKTogQ29udmVydAorICAgICAgICB0aGUgb3B0aW9uYWwgdmFsdWUgaW50byBhIHZl
Y3Rvciwgc2luY2UgaXQgaXMgYXNzdW1lZCB5b3UgY2FuIG5vdAorICAgICAgICBoYXZlIGFuIGVt
cHR5IHZlY3RvciBvZiBrZXkgaWRzIGluIHRoZSBpbml0IGRhdGFzIEZQUyBzdXBwb3J0cy4KKyAg
ICAgICAgKiB0ZXN0aW5nL01vY2tDRE1GYWN0b3J5LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok1v
Y2tDRE1JbnN0YW5jZTo6cmVxdWVzdExpY2Vuc2UpOiBPbmx5IHJldHVybiBhbiBlcnJvcgorICAg
ICAgICBpZiB0aGVyZSByZWFsbHkgd2FzIGEgcGFyc2luZyBlcnJvciwgcmF0aGVyIHRoYW4gdGhl
IGNhc2Ugb2YgdGhlcmUKKyAgICAgICAgYmVpbmcgemVybyBrZXkgaWRzIGluIHRoZSBpbml0IGRh
dGEgcGF5bG9hZC4KKwogMjAxOC0wOC0wMiAgQ2hhcmxpZSBUdXJuZXIgIDxjdHVybmVyQGlnYWxp
YS5jb20+CiAKICAgICAgICAgSGFuZGxlIHplcm8tc2l6ZWQgSVNPTVA0IGJveGVzIGFwcHJvcHJp
YXRlbHkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZW5jcnlwdGVkbWVkaWEv
SW5pdERhdGFSZWdpc3RyeS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2VuY3J5cHRlZG1l
ZGlhL0luaXREYXRhUmVnaXN0cnkuY3BwCmluZGV4IGMyOWIwMzhhZDFkMjkyNWM0Mzg0NzJmM2Fk
ZjA4ZjRhNTRiMGEzYTEuLjFkNjdlZDY2YmMzMmE0ZTA2YjNjNjc5NTViNTRiYmRjYzQ2Nzk1ZDgg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZW5jcnlwdGVkbWVkaWEvSW5pdERh
dGFSZWdpc3RyeS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9lbmNyeXB0ZWRtZWRp
YS9Jbml0RGF0YVJlZ2lzdHJ5LmNwcApAQCAtMzcsMjUgKzM3LDI1IEBACiAKIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKIAotc3RhdGljIFZlY3RvcjxSZWY8U2hhcmVkQnVmZmVyPj4gZXh0cmFjdEtleUlE
c0tleWlkcyhjb25zdCBTaGFyZWRCdWZmZXImIGJ1ZmZlcikKK3N0YXRpYyBzdGQ6Om9wdGlvbmFs
PFZlY3RvcjxSZWY8U2hhcmVkQnVmZmVyPj4+IGV4dHJhY3RLZXlJRHNLZXlpZHMoY29uc3QgU2hh
cmVkQnVmZmVyJiBidWZmZXIpCiB7CiAgICAgLy8gMS4gRm9ybWF0CiAgICAgLy8gaHR0cHM6Ly93
M2MuZ2l0aHViLmlvL2VuY3J5cHRlZC1tZWRpYS9mb3JtYXQtcmVnaXN0cnkvaW5pdGRhdGEva2V5
aWRzLmh0bWwjZm9ybWF0CiAgICAgaWYgKGJ1ZmZlci5zaXplKCkgPiBzdGQ6Om51bWVyaWNfbGlt
aXRzPHVuc2lnbmVkPjo6bWF4KCkpCi0gICAgICAgIHJldHVybiB7IH07CisgICAgICAgIHJldHVy
biBzdGQ6Om51bGxvcHQ7CiAgICAgU3RyaW5nIGpzb24geyBidWZmZXIuZGF0YSgpLCBzdGF0aWNf
Y2FzdDx1bnNpZ25lZD4oYnVmZmVyLnNpemUoKSkgfTsKIAogICAgIFJlZlB0cjxKU09OOjpWYWx1
ZT4gdmFsdWU7CiAgICAgaWYgKCFKU09OOjpWYWx1ZTo6cGFyc2VKU09OKGpzb24sIHZhbHVlKSkK
LSAgICAgICAgcmV0dXJuIHsgfTsKKyAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKIAogICAg
IFJlZlB0cjxKU09OOjpPYmplY3Q+IG9iamVjdDsKICAgICBpZiAoIXZhbHVlLT5hc09iamVjdChv
YmplY3QpKQotICAgICAgICByZXR1cm4geyB9OworICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0
OwogCiAgICAgUmVmUHRyPEpTT046OkFycmF5PiBraWRzQXJyYXk7CiAgICAgaWYgKCFvYmplY3Qt
PmdldEFycmF5KCJraWRzIiwga2lkc0FycmF5KSkKLSAgICAgICAgcmV0dXJuIHsgfTsKKyAgICAg
ICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKIAogICAgIFZlY3RvcjxSZWY8U2hhcmVkQnVmZmVyPj4g
a2V5SURzOwogICAgIGZvciAoYXV0byYgdmFsdWUgOiAqa2lkc0FycmF5KSB7CkBAIC03OCwxMyAr
NzgsMTMgQEAgc3RhdGljIFJlZlB0cjxTaGFyZWRCdWZmZXI+IHNhbml0aXplS2V5aWRzKGNvbnN0
IFNoYXJlZEJ1ZmZlciYgYnVmZmVyKQogewogICAgIC8vIDEuIEZvcm1hdAogICAgIC8vIGh0dHBz
Oi8vdzNjLmdpdGh1Yi5pby9lbmNyeXB0ZWQtbWVkaWEvZm9ybWF0LXJlZ2lzdHJ5L2luaXRkYXRh
L2tleWlkcy5odG1sI2Zvcm1hdAotICAgIFZlY3RvcjxSZWY8U2hhcmVkQnVmZmVyPj4ga2V5SURC
dWZmZXIgPSBleHRyYWN0S2V5SURzS2V5aWRzKGJ1ZmZlcik7Ci0gICAgaWYgKGtleUlEQnVmZmVy
LmlzRW1wdHkoKSkKKyAgICBhdXRvIGtleUlEQnVmZmVyID0gZXh0cmFjdEtleUlEc0tleWlkcyhi
dWZmZXIpOworICAgIGlmICgha2V5SURCdWZmZXIpCiAgICAgICAgIHJldHVybiBudWxscHRyOwog
CiAgICAgYXV0byBvYmplY3QgPSBKU09OOjpPYmplY3Q6OmNyZWF0ZSgpOwogICAgIGF1dG8ga2lk
c0FycmF5ID0gSlNPTjo6QXJyYXk6OmNyZWF0ZSgpOwotICAgIGZvciAoYXV0byYgYnVmZmVyIDog
a2V5SURCdWZmZXIpCisgICAgZm9yIChhdXRvJiBidWZmZXIgOiBrZXlJREJ1ZmZlci52YWx1ZSgp
KQogICAgICAgICBraWRzQXJyYXktPnB1c2hTdHJpbmcoV1RGOjpiYXNlNjRVUkxFbmNvZGUoYnVm
ZmVyLT5kYXRhKCksIGJ1ZmZlci0+c2l6ZSgpKSk7CiAgICAgb2JqZWN0LT5zZXRBcnJheSgia2lk
cyIsIFdURk1vdmUoa2lkc0FycmF5KSk7CiAKQEAgLTEwMCwxMiArMTAwLDEyIEBAIHN0YXRpYyBS
ZWZQdHI8U2hhcmVkQnVmZmVyPiBzYW5pdGl6ZUNlbmMoY29uc3QgU2hhcmVkQnVmZmVyJiBidWZm
ZXIpCiAgICAgcmV0dXJuIGJ1ZmZlci5jb3B5KCk7CiB9CiAKLXN0YXRpYyBWZWN0b3I8UmVmPFNo
YXJlZEJ1ZmZlcj4+IGV4dHJhY3RLZXlJRHNDZW5jKGNvbnN0IFNoYXJlZEJ1ZmZlciYpCitzdGF0
aWMgc3RkOjpvcHRpb25hbDxWZWN0b3I8UmVmPFNoYXJlZEJ1ZmZlcj4+PiBleHRyYWN0S2V5SURz
Q2VuYyhjb25zdCBTaGFyZWRCdWZmZXImKQogewogICAgIC8vIDQuIENvbW1vbiBTeXN0ZW1JRCBh
bmQgUFNTSCBCb3ggRm9ybWF0CiAgICAgLy8gaHR0cHM6Ly93M2MuZ2l0aHViLmlvL2VuY3J5cHRl
ZC1tZWRpYS9mb3JtYXQtcmVnaXN0cnkvaW5pdGRhdGEvY2VuYy5odG1sI2NvbW1vbi1zeXN0ZW0K
ICAgICBub3RJbXBsZW1lbnRlZCgpOwotICAgIHJldHVybiB7IH07CisgICAgcmV0dXJuIHN0ZDo6
bnVsbG9wdDsKIH0KIAogc3RhdGljIFJlZlB0cjxTaGFyZWRCdWZmZXI+IHNhbml0aXplV2ViTShj
b25zdCBTaGFyZWRCdWZmZXImIGJ1ZmZlcikKQEAgLTExNiwxMiArMTE2LDEyIEBAIHN0YXRpYyBS
ZWZQdHI8U2hhcmVkQnVmZmVyPiBzYW5pdGl6ZVdlYk0oY29uc3QgU2hhcmVkQnVmZmVyJiBidWZm
ZXIpCiAgICAgcmV0dXJuIGJ1ZmZlci5jb3B5KCk7CiB9CiAKLXN0YXRpYyBWZWN0b3I8UmVmPFNo
YXJlZEJ1ZmZlcj4+IGV4dHJhY3RLZXlJRHNXZWJNKGNvbnN0IFNoYXJlZEJ1ZmZlciYpCitzdGF0
aWMgc3RkOjpvcHRpb25hbDxWZWN0b3I8UmVmPFNoYXJlZEJ1ZmZlcj4+PiBleHRyYWN0S2V5SURz
V2ViTShjb25zdCBTaGFyZWRCdWZmZXImKQogewogICAgIC8vIDEuIEZvcm1hdAogICAgIC8vIGh0
dHBzOi8vdzNjLmdpdGh1Yi5pby9lbmNyeXB0ZWQtbWVkaWEvZm9ybWF0LXJlZ2lzdHJ5L2luaXRk
YXRhL3dlYm0uaHRtbCNmb3JtYXQKICAgICBub3RJbXBsZW1lbnRlZCgpOwotICAgIHJldHVybiB7
IH07CisgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKIH0KIAogSW5pdERhdGFSZWdpc3RyeSYgSW5p
dERhdGFSZWdpc3RyeTo6c2hhcmVkKCkKQEAgLTE0NywxMSArMTQ3LDExIEBAIFJlZlB0cjxTaGFy
ZWRCdWZmZXI+IEluaXREYXRhUmVnaXN0cnk6OnNhbml0aXplSW5pdERhdGEoY29uc3QgQXRvbWlj
U3RyaW5nJiBpbml0CiAgICAgcmV0dXJuIGl0ZXItPnZhbHVlLnNhbml0aXplSW5pdERhdGEoYnVm
ZmVyKTsKIH0KIAotVmVjdG9yPFJlZjxTaGFyZWRCdWZmZXI+PiBJbml0RGF0YVJlZ2lzdHJ5Ojpl
eHRyYWN0S2V5SURzKGNvbnN0IEF0b21pY1N0cmluZyYgaW5pdERhdGFUeXBlLCBjb25zdCBTaGFy
ZWRCdWZmZXImIGJ1ZmZlcikKK3N0ZDo6b3B0aW9uYWw8VmVjdG9yPFJlZjxTaGFyZWRCdWZmZXI+
Pj4gSW5pdERhdGFSZWdpc3RyeTo6ZXh0cmFjdEtleUlEcyhjb25zdCBBdG9taWNTdHJpbmcmIGlu
aXREYXRhVHlwZSwgY29uc3QgU2hhcmVkQnVmZmVyJiBidWZmZXIpCiB7CiAgICAgYXV0byBpdGVy
ID0gbV90eXBlcy5maW5kKGluaXREYXRhVHlwZSk7CiAgICAgaWYgKGl0ZXIgPT0gbV90eXBlcy5l
bmQoKSB8fCAhaXRlci0+dmFsdWUuc2FuaXRpemVJbml0RGF0YSkKLSAgICAgICAgcmV0dXJuIHsg
fTsKKyAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKICAgICByZXR1cm4gaXRlci0+dmFsdWUu
ZXh0cmFjdEtleUlEcyhidWZmZXIpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL2VuY3J5cHRlZG1lZGlhL0luaXREYXRhUmVnaXN0cnkuaCBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvZW5jcnlwdGVkbWVkaWEvSW5pdERhdGFSZWdpc3RyeS5oCmluZGV4IDM5YmZhMDQ1
MzU0NmRhNTc3YmEzZDlmOGYxYTQ5NDg5MWI4NjgxNzQuLmQxZTM1ODRkZmUzNTA5ZGZkMmI0Yjk0
ODcwNjg5MThkNDViODkyMjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZW5j
cnlwdGVkbWVkaWEvSW5pdERhdGFSZWdpc3RyeS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvZW5jcnlwdGVkbWVkaWEvSW5pdERhdGFSZWdpc3RyeS5oCkBAIC0yOSw2ICsyOSw3IEBACiAK
ICNpbmNsdWRlIDx3dGYvRnVuY3Rpb24uaD4KICNpbmNsdWRlIDx3dGYvSGFzaE1hcC5oPgorI2lu
Y2x1ZGUgPHd0Zi9PcHRpb25hbC5oPgogI2luY2x1ZGUgPHd0Zi9SZWYuaD4KICNpbmNsdWRlIDx3
dGYvUmVmUHRyLmg+CiAjaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgpAQCAtNDUsMTEgKzQ2LDExIEBA
IHB1YmxpYzoKICAgICBmcmllbmQgY2xhc3MgTmV2ZXJEZXN0cm95ZWQ8SW5pdERhdGFSZWdpc3Ry
eT47CiAKICAgICBSZWZQdHI8U2hhcmVkQnVmZmVyPiBzYW5pdGl6ZUluaXREYXRhKGNvbnN0IEF0
b21pY1N0cmluZyYgaW5pdERhdGFUeXBlLCBjb25zdCBTaGFyZWRCdWZmZXImKTsKLSAgICBXRUJD
T1JFX0VYUE9SVCBWZWN0b3I8UmVmPFNoYXJlZEJ1ZmZlcj4+IGV4dHJhY3RLZXlJRHMoY29uc3Qg
QXRvbWljU3RyaW5nJiBpbml0RGF0YVR5cGUsIGNvbnN0IFNoYXJlZEJ1ZmZlciYpOworICAgIFdF
QkNPUkVfRVhQT1JUIHN0ZDo6b3B0aW9uYWw8VmVjdG9yPFJlZjxTaGFyZWRCdWZmZXI+Pj4gZXh0
cmFjdEtleUlEcyhjb25zdCBBdG9taWNTdHJpbmcmIGluaXREYXRhVHlwZSwgY29uc3QgU2hhcmVk
QnVmZmVyJik7CiAKICAgICBzdHJ1Y3QgSW5pdERhdGFUeXBlQ2FsbGJhY2tzIHsKICAgICAgICAg
dXNpbmcgU2FuaXRpemVJbml0RGF0YUNhbGxiYWNrID0gRnVuY3Rpb248UmVmUHRyPFNoYXJlZEJ1
ZmZlcj4oY29uc3QgU2hhcmVkQnVmZmVyJik+OwotICAgICAgICB1c2luZyBFeHRyYWN0S2V5SURz
Q2FsbGJhY2sgPSBGdW5jdGlvbjxWZWN0b3I8UmVmPFNoYXJlZEJ1ZmZlcj4+KGNvbnN0IFNoYXJl
ZEJ1ZmZlciYpPjsKKyAgICAgICAgdXNpbmcgRXh0cmFjdEtleUlEc0NhbGxiYWNrID0gRnVuY3Rp
b248c3RkOjpvcHRpb25hbDxWZWN0b3I8UmVmPFNoYXJlZEJ1ZmZlcj4+Pihjb25zdCBTaGFyZWRC
dWZmZXImKT47CiAKICAgICAgICAgU2FuaXRpemVJbml0RGF0YUNhbGxiYWNrIHNhbml0aXplSW5p
dERhdGE7CiAgICAgICAgIEV4dHJhY3RLZXlJRHNDYWxsYmFjayBleHRyYWN0S2V5SURzOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL0NE
TUZhaXJQbGF5U3RyZWFtaW5nLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2F2Zm91bmRhdGlvbi9DRE1GYWlyUGxheVN0cmVhbWluZy5jcHAKaW5kZXggZDIwODY4NDhkZTll
MDM2N2IyOWE3MDJkNjQ1MWUwZWU4ZjI2NzRhOC4uOGM2NGRlMWU1MTUzNmNjZWIyYjRmMjJlMWVm
ZTk4OWY2MTAzYTlkMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvYXZmb3VuZGF0aW9uL0NETUZhaXJQbGF5U3RyZWFtaW5nLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vQ0RNRmFpclBsYXlTdHJlYW1pbmcu
Y3BwCkBAIC0xNTgsOSArMTU4LDggQEAgc3RhdGljIFNjaGVtZUFuZEtleVJlc3VsdCBleHRyYWN0
U2NoZW1lQW5kS2V5SWRGcm9tU2luZihjb25zdCBTaGFyZWRCdWZmZXImIGJ1ZmYKICAgICByZXR1
cm4gcmVzdWx0OwogfQogCi1WZWN0b3I8UmVmPFNoYXJlZEJ1ZmZlcj4+IENETVByaXZhdGVGYWly
UGxheVN0cmVhbWluZzo6ZXh0cmFjdEtleUlEc1NpbmYoY29uc3QgU2hhcmVkQnVmZmVyJiBidWZm
ZXIpCitzdGQ6Om9wdGlvbmFsPFZlY3RvcjxSZWY8U2hhcmVkQnVmZmVyPj4+IENETVByaXZhdGVG
YWlyUGxheVN0cmVhbWluZzo6ZXh0cmFjdEtleUlEc1NpbmYoY29uc3QgU2hhcmVkQnVmZmVyJiBi
dWZmZXIpCiB7Ci0KICAgICBWZWN0b3I8UmVmPFNoYXJlZEJ1ZmZlcj4+IGtleUlEczsKICAgICBh
dXRvIHJlc3VsdHMgPSBleHRyYWN0U2NoZW1lQW5kS2V5SWRGcm9tU2luZihidWZmZXIpOwogCkBA
IC0xODcsNyArMTg2LDcgQEAgUmVmUHRyPFNoYXJlZEJ1ZmZlcj4gQ0RNUHJpdmF0ZUZhaXJQbGF5
U3RyZWFtaW5nOjpzYW5pdGl6ZVNrZChjb25zdCBTaGFyZWRCdWZmZXIKICAgICByZXR1cm4gYnVm
ZmVyLmNvcHkoKTsKIH0KIAotVmVjdG9yPFJlZjxTaGFyZWRCdWZmZXI+PiBDRE1Qcml2YXRlRmFp
clBsYXlTdHJlYW1pbmc6OmV4dHJhY3RLZXlJRHNTa2QoY29uc3QgU2hhcmVkQnVmZmVyJiBidWZm
ZXIpCitzdGQ6Om9wdGlvbmFsPFZlY3RvcjxSZWY8U2hhcmVkQnVmZmVyPj4+IENETVByaXZhdGVG
YWlyUGxheVN0cmVhbWluZzo6ZXh0cmFjdEtleUlEc1NrZChjb25zdCBTaGFyZWRCdWZmZXImIGJ1
ZmZlcikKIHsKICAgICAvLyBJbiB0aGUgJ3NrZCcgc2NoZW1lLCB0aGUgaW5pdCBkYXRhIGlzIHRo
ZSBrZXkgSUQuCiAgICAgVmVjdG9yPFJlZjxTaGFyZWRCdWZmZXI+PiBrZXlJRHM7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vQ0RNRmFp
clBsYXlTdHJlYW1pbmcuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91
bmRhdGlvbi9DRE1GYWlyUGxheVN0cmVhbWluZy5oCmluZGV4IDhhZDM2ODlhOWE3NDIzYTMzOWQw
OGRmNGM4M2FlMDJiMTNkMmJmNWQuLjE0NGMwMjFhMmY0Y2Y3NzU2Nzc2ZDVlZDRlMDA2ZTY4MTRm
MTk5MmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91
bmRhdGlvbi9DRE1GYWlyUGxheVN0cmVhbWluZy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9DRE1GYWlyUGxheVN0cmVhbWluZy5oCkBAIC02OCwx
MSArNjgsMTEgQEAgcHVibGljOgogICAgIHN0ZDo6b3B0aW9uYWw8U3RyaW5nPiBzYW5pdGl6ZVNl
c3Npb25JZChjb25zdCBTdHJpbmcmKSBjb25zdCBvdmVycmlkZTsKIAogICAgIHN0YXRpYyBjb25z
dCBBdG9taWNTdHJpbmcmIHNpbmZOYW1lKCk7Ci0gICAgc3RhdGljIFZlY3RvcjxSZWY8U2hhcmVk
QnVmZmVyPj4gZXh0cmFjdEtleUlEc1NpbmYoY29uc3QgU2hhcmVkQnVmZmVyJik7CisgICAgc3Rh
dGljIHN0ZDo6b3B0aW9uYWw8VmVjdG9yPFJlZjxTaGFyZWRCdWZmZXI+Pj4gZXh0cmFjdEtleUlE
c1NpbmYoY29uc3QgU2hhcmVkQnVmZmVyJik7CiAgICAgc3RhdGljIFJlZlB0cjxTaGFyZWRCdWZm
ZXI+IHNhbml0aXplU2luZihjb25zdCBTaGFyZWRCdWZmZXImKTsKIAogICAgIHN0YXRpYyBjb25z
dCBBdG9taWNTdHJpbmcmIHNrZE5hbWUoKTsKLSAgICBzdGF0aWMgVmVjdG9yPFJlZjxTaGFyZWRC
dWZmZXI+PiBleHRyYWN0S2V5SURzU2tkKGNvbnN0IFNoYXJlZEJ1ZmZlciYpOworICAgIHN0YXRp
YyBzdGQ6Om9wdGlvbmFsPFZlY3RvcjxSZWY8U2hhcmVkQnVmZmVyPj4+IGV4dHJhY3RLZXlJRHNT
a2QoY29uc3QgU2hhcmVkQnVmZmVyJik7CiAgICAgc3RhdGljIFJlZlB0cjxTaGFyZWRCdWZmZXI+
IHNhbml0aXplU2tkKGNvbnN0IFNoYXJlZEJ1ZmZlciYpOwogfTsKIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvQ0RNSW5zdGFu
Y2VGYWlyUGxheVN0cmVhbWluZ0FWRk9iakMubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9DRE1JbnN0YW5jZUZhaXJQbGF5U3RyZWFtaW5nQVZG
T2JqQy5tbQppbmRleCBlMTA1NDg2Y2JmNWYwNjVmYjM2ZTI2Y2YwNDIyMzRiZjAxNWE0M2ZmLi5k
ZjNiYzA5ODAyYWM2YmUzNWMwMWQ2MjM5ZWJmODVkMGY1YTQwOWFhIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9DRE1JbnN0YW5j
ZUZhaXJQbGF5U3RyZWFtaW5nQVZGT2JqQy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9DRE1JbnN0YW5jZUZhaXJQbGF5U3RyZWFtaW5n
QVZGT2JqQy5tbQpAQCAtMjQxLDggKzI0MSwxMiBAQCBWZWN0b3I8UmVmPFNoYXJlZEJ1ZmZlcj4+
IENETUluc3RhbmNlRmFpclBsYXlTdHJlYW1pbmdBVkZPYmpDOjprZXlJRHMoKQogICAgICAgICBy
ZXR1cm4gVmVjdG9yPFJlZjxTaGFyZWRCdWZmZXI+Pjo6ZnJvbShTaGFyZWRCdWZmZXI6OmNyZWF0
ZShbKE5TU3RyaW5nICopbV9yZXF1ZXN0LmdldCgpLmlkZW50aWZpZXIgZGF0YVVzaW5nRW5jb2Rp
bmc6TlNVVEY4U3RyaW5nRW5jb2RpbmddKSk7CiAgICAgaWYgKFttX3JlcXVlc3QuZ2V0KCkuaWRl
bnRpZmllciBpc0tpbmRPZkNsYXNzOltOU0RhdGEgY2xhc3NdXSkKICAgICAgICAgcmV0dXJuIFZl
Y3RvcjxSZWY8U2hhcmVkQnVmZmVyPj46OmZyb20oU2hhcmVkQnVmZmVyOjpjcmVhdGUoKE5TRGF0
YSAqKW1fcmVxdWVzdC5nZXQoKS5pZGVudGlmaWVyKSk7Ci0gICAgaWYgKG1fcmVxdWVzdC5nZXQo
KS5pbml0aWFsaXphdGlvbkRhdGEpCi0gICAgICAgIHJldHVybiBDRE1Qcml2YXRlRmFpclBsYXlT
dHJlYW1pbmc6OmV4dHJhY3RLZXlJRHNTaW5mKFNoYXJlZEJ1ZmZlcjo6Y3JlYXRlKG1fcmVxdWVz
dC5nZXQoKS5pbml0aWFsaXphdGlvbkRhdGEpKTsKKyAgICBpZiAobV9yZXF1ZXN0LmdldCgpLmlu
aXRpYWxpemF0aW9uRGF0YSkgeworICAgICAgICBhdXRvIHNpbmZLZXlJRHMgPSBDRE1Qcml2YXRl
RmFpclBsYXlTdHJlYW1pbmc6OmV4dHJhY3RLZXlJRHNTaW5mKFNoYXJlZEJ1ZmZlcjo6Y3JlYXRl
KG1fcmVxdWVzdC5nZXQoKS5pbml0aWFsaXphdGlvbkRhdGEpKTsKKyAgICAgICAgaWYgKCFzaW5m
S2V5SURzKQorICAgICAgICAgICAgcmV0dXJuIHsgfTsKKyAgICAgICAgcmV0dXJuIFdURk1vdmUo
c2luZktleUlEcy52YWx1ZSgpKTsKKyAgICB9CiAgICAgcmV0dXJuIHsgfTsKIH0KIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9Nb2NrQ0RNRmFjdG9yeS5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS90ZXN0aW5nL01vY2tDRE1GYWN0b3J5LmNwcAppbmRleCBhNzQzM2M2Y2Y4MjI1Yzc1
OGRiZGYyMmExMjM2MzkyNDAwOGMzYjIyLi4xMmJjN2Y2MDJmMWUzZTUzNzcxODZjM2VjMzVhOWJm
NDJjOTQwZDhlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL01vY2tDRE1GYWN0
b3J5LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL01vY2tDRE1GYWN0b3J5LmNwcApA
QCAtMjgzLDEzICsyODMsMTMgQEAgdm9pZCBNb2NrQ0RNSW5zdGFuY2U6OnJlcXVlc3RMaWNlbnNl
KExpY2Vuc2VUeXBlIGxpY2Vuc2VUeXBlLCBjb25zdCBBdG9taWNTdHJpbmcKICAgICB9CiAKICAg
ICBhdXRvIGtleUlEcyA9IEluaXREYXRhUmVnaXN0cnk6OnNoYXJlZCgpLmV4dHJhY3RLZXlJRHMo
aW5pdERhdGFUeXBlLCBpbml0RGF0YSk7Ci0gICAgaWYgKGtleUlEcy5pc0VtcHR5KCkpIHsKKyAg
ICBpZiAoIWtleUlEcyB8fCBrZXlJRHMudmFsdWUoKS5pc0VtcHR5KCkpIHsKICAgICAgICAgY2Fs
bGJhY2soU2hhcmVkQnVmZmVyOjpjcmVhdGUoKSwgZW1wdHlTdHJpbmcoKSwgZmFsc2UsIFN1Y2Nl
c3NWYWx1ZTo6RmFpbGVkKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAogICAgIFN0cmluZyBz
ZXNzaW9uSUQgPSBjcmVhdGVDYW5vbmljYWxVVUlEU3RyaW5nKCk7Ci0gICAgZmFjdG9yeS0+YWRk
S2V5c1RvU2Vzc2lvbldpdGhJRChzZXNzaW9uSUQsIFdURk1vdmUoa2V5SURzKSk7CisgICAgZmFj
dG9yeS0+YWRkS2V5c1RvU2Vzc2lvbldpdGhJRChzZXNzaW9uSUQsIFdURk1vdmUoa2V5SURzLnZh
bHVlKCkpKTsKIAogICAgIENTdHJpbmcgbGljZW5zZSB7ICJsaWNlbnNlIiB9OwogICAgIGNhbGxi
YWNrKFNoYXJlZEJ1ZmZlcjo6Y3JlYXRlKGxpY2Vuc2UuZGF0YSgpLCBsaWNlbnNlLmxlbmd0aCgp
KSwgc2Vzc2lvbklELCBmYWxzZSwgU3VjY2Vzc1ZhbHVlOjpTdWNjZWVkZWQpOwo=
</data>

          </attachment>
      

    </bug>

</bugzilla>