<?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>193243</bug_id>
          
          <creation_ts>2019-01-08 09:44:31 -0800</creation_ts>
          <short_desc>Stop using NetworkProcess::singleton in NetworkCache code</short_desc>
          <delta_ts>2019-01-08 13:24:28 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</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="Alex Christensen">achristensen</reporter>
          <assigned_to name="Alex Christensen">achristensen</assigned_to>
          <cc>aestes</cc>
    
    <cc>beidson</cc>
    
    <cc>bfulgham</cc>
    
    <cc>cdumez</cc>
    
    <cc>cgarcia</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1492628</commentid>
    <comment_count>0</comment_count>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2019-01-08 09:44:31 -0800</bug_when>
    <thetext>Stop using NetworkProcess::singleton in NetworkCache code</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1492629</commentid>
    <comment_count>1</comment_count>
      <attachid>358604</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2019-01-08 09:44:41 -0800</bug_when>
    <thetext>Created attachment 358604
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1492643</commentid>
    <comment_count>2</comment_count>
      <attachid>358609</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2019-01-08 10:11:07 -0800</bug_when>
    <thetext>Created attachment 358609
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1492720</commentid>
    <comment_count>3</comment_count>
      <attachid>358609</attachid>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2019-01-08 13:17:41 -0800</bug_when>
    <thetext>Comment on attachment 358609
Patch

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

&gt; Source/WebKit/ChangeLog:4
&gt; +        https://bugs.webkit.org/show_bug.cgi?id=193243

Missing radar...

&gt; Source/WebKit/NetworkProcess/cache/NetworkCache.h:166
&gt; +    Ref&lt;NetworkProcess&gt; m_networkProcess;

This means that the NetworkCache will keep the NetworkProcess alive. Is that the right ownership model? (I&apos;m not disagreeing, just want to be sure that&apos;s correct).

Otherwise we could make this a WeakPtr.

However, since it was a singleton before, I assume the expectation is we never have a cache without a process (and vice versa).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1492721</commentid>
    <comment_count>4</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2019-01-08 13:18:58 -0800</bug_when>
    <thetext>(In reply to Brent Fulgham from comment #3)
&gt; Comment on attachment 358609 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=358609&amp;action=review
&gt; 
&gt; &gt; Source/WebKit/ChangeLog:4
&gt; &gt; +        https://bugs.webkit.org/show_bug.cgi?id=193243
&gt; 
&gt; Missing radar...

We do not have a requirement have having a radar, do we? radars get auto-filed when the patch gets committed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1492723</commentid>
    <comment_count>5</comment_count>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2019-01-08 13:22:20 -0800</bug_when>
    <thetext>The NetworkCache will soon be a member of the NetworkSession, which should keep the NetworkProcess alive.
Thanks for the review.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1492725</commentid>
    <comment_count>6</comment_count>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2019-01-08 13:23:11 -0800</bug_when>
    <thetext>http://trac.webkit.org/r239740</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1492726</commentid>
    <comment_count>7</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2019-01-08 13:24:28 -0800</bug_when>
    <thetext>&lt;rdar://problem/47125976&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>358604</attachid>
            <date>2019-01-08 09:44:41 -0800</date>
            <delta_ts>2019-01-08 10:11:06 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-193243-20190108094440.patch</filename>
            <type>text/plain</type>
            <size>20746</size>
            <attacher name="Alex Christensen">achristensen</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJL
aXQvQ2hhbmdlTG9nCShyZXZpc2lvbiAyMzk3MjUpCisrKyBTb3VyY2UvV2ViS2l0L0NoYW5nZUxv
Zwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDM0IEBACisyMDE5LTAxLTA4ICBBbGV4IENocmlz
dGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CisKKyAgICAgICAgU3RvcCB1c2luZyBO
ZXR3b3JrUHJvY2Vzczo6c2luZ2xldG9uIGluIE5ldHdvcmtDYWNoZSBjb2RlCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xOTMyNDMKKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL2Nh
Y2hlL05ldHdvcmtDYWNoZS5jcHA6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtDYWNoZTo6Q2Fj
aGU6Om9wZW4pOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrQ2FjaGU6OkNhY2hlOjpDYWNoZSk6
CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvY2FjaGUvTmV0d29ya0NhY2hlLmg6CisgICAgICAg
IChXZWJLaXQ6Ok5ldHdvcmtDYWNoZTo6Q2FjaGU6Om5ldHdvcmtQcm9jZXNzKToKKyAgICAgICAg
KiBOZXR3b3JrUHJvY2Vzcy9jYWNoZS9OZXR3b3JrQ2FjaGVTcGVjdWxhdGl2ZUxvYWRNYW5hZ2Vy
LmNwcDoKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya0NhY2hlOjpsb2dTcGVjdWxhdGl2ZUxvYWRp
bmdEaWFnbm9zdGljTWVzc2FnZSk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtDYWNoZTo6U3Bl
Y3VsYXRpdmVMb2FkTWFuYWdlcjo6Y2FuUmV0cmlldmUgY29uc3QpOgorICAgICAgICAoV2ViS2l0
OjpOZXR3b3JrQ2FjaGU6OlNwZWN1bGF0aXZlTG9hZE1hbmFnZXI6OmFkZFByZWxvYWRlZEVudHJ5
KToKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya0NhY2hlOjpTcGVjdWxhdGl2ZUxvYWRNYW5hZ2Vy
OjpyZXZhbGlkYXRlU3VicmVzb3VyY2UpOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrQ2FjaGU6
OlNwZWN1bGF0aXZlTG9hZE1hbmFnZXI6OnByZWxvYWRFbnRyeSk6CisgICAgICAgIChXZWJLaXQ6
Ok5ldHdvcmtDYWNoZTo6U3BlY3VsYXRpdmVMb2FkTWFuYWdlcjo6c3RhcnRTcGVjdWxhdGl2ZVJl
dmFsaWRhdGlvbik6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvY2FjaGUvTmV0d29ya0NhY2hl
U3RhdGlzdGljcy5jcHA6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtDYWNoZTo6U3RhdGlzdGlj
czo6cmVjb3JkUmV0cmlldmFsUmVxdWVzdCk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtDYWNo
ZTo6U3RhdGlzdGljczo6cmVjb3JkTm90VXNpbmdDYWNoZUZvclJlcXVlc3QpOgorICAgICAgICAo
V2ViS2l0OjpOZXR3b3JrQ2FjaGU6OlN0YXRpc3RpY3M6OnJlY29yZFJldHJpZXZhbEZhaWx1cmUp
OgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrQ2FjaGU6OlN0YXRpc3RpY3M6OnJlY29yZFJldHJp
ZXZlZENhY2hlZEVudHJ5KToKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya0NhY2hlOjpTdGF0aXN0
aWNzOjpyZWNvcmRSZXZhbGlkYXRpb25TdWNjZXNzKToKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vz
cy9jYWNoZS9OZXR3b3JrQ2FjaGVTdG9yYWdlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6TmV0d29y
a0NhY2hlOjpyZXRyaWV2ZUZyb21NZW1vcnkpOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL2Nh
Y2hlL05ldHdvcmtDYWNoZVN0b3JhZ2UuaDoKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9jb2Nv
YS9OZXR3b3JrUHJvY2Vzc0NvY29hLm1tOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUHJvY2Vz
czo6cGxhdGZvcm1Jbml0aWFsaXplTmV0d29ya1Byb2Nlc3NDb2NvYSk6CisKIDIwMTktMDEtMDgg
IEFsZXggQ2hyaXN0ZW5zZW4gIDxhY2hyaXN0ZW5zZW5Ad2Via2l0Lm9yZz4KIAogICAgICAgICBB
bHdheXMgY2FsbCBDb21wbGV0aW9uSGFuZGxlciBpbiBDYWNoZTo6c3RvcmUKSW5kZXg6IFNvdXJj
ZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY2FjaGUvTmV0d29ya0NhY2hlLmNwcAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NhY2hlL05ldHdvcmtDYWNoZS5jcHAJ
KHJldmlzaW9uIDIzOTcyNSkKKysrIFNvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY2FjaGUv
TmV0d29ya0NhY2hlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNTksNyArNTksNyBAQCBzdGF0aWMg
Y29uc3QgQXRvbWljU3RyaW5nJiByZXNvdXJjZVR5cGUoCiAgICAgcmV0dXJuIHJlc291cmNlOwog
fQogCi1SZWZQdHI8Q2FjaGU+IENhY2hlOjpvcGVuKGNvbnN0IFN0cmluZyYgY2FjaGVQYXRoLCBP
cHRpb25TZXQ8T3B0aW9uPiBvcHRpb25zKQorUmVmUHRyPENhY2hlPiBDYWNoZTo6b3BlbihOZXR3
b3JrUHJvY2VzcyYgbmV0d29ya1Byb2Nlc3MsIGNvbnN0IFN0cmluZyYgY2FjaGVQYXRoLCBPcHRp
b25TZXQ8T3B0aW9uPiBvcHRpb25zKQogewogICAgIGF1dG8gc3RvcmFnZSA9IFN0b3JhZ2U6Om9w
ZW4oY2FjaGVQYXRoLCBvcHRpb25zLmNvbnRhaW5zKE9wdGlvbjo6VGVzdGluZ01vZGUpID8gU3Rv
cmFnZTo6TW9kZTo6QXZvaWRSYW5kb21uZXNzIDogU3RvcmFnZTo6TW9kZTo6Tm9ybWFsKTsKIApA
QCAtNjgsNyArNjgsNyBAQCBSZWZQdHI8Q2FjaGU+IENhY2hlOjpvcGVuKGNvbnN0IFN0cmluZyYg
CiAgICAgaWYgKCFzdG9yYWdlKQogICAgICAgICByZXR1cm4gbnVsbHB0cjsKIAotICAgIHJldHVy
biBhZG9wdFJlZigqbmV3IENhY2hlKHN0b3JhZ2UucmVsZWFzZU5vbk51bGwoKSwgb3B0aW9ucykp
OworICAgIHJldHVybiBhZG9wdFJlZigqbmV3IENhY2hlKG5ldHdvcmtQcm9jZXNzLCBzdG9yYWdl
LnJlbGVhc2VOb25OdWxsKCksIG9wdGlvbnMpKTsKIH0KIAogI2lmIFBMQVRGT1JNKEdUSykKQEAg
LTc4LDggKzc4LDkgQEAgc3RhdGljIHZvaWQgZHVtcEZpbGVDaGFuZ2VkKENhY2hlKiBjYWNoZQog
fQogI2VuZGlmCiAKLUNhY2hlOjpDYWNoZShSZWY8U3RvcmFnZT4mJiBzdG9yYWdlLCBPcHRpb25T
ZXQ8T3B0aW9uPiBvcHRpb25zKQorQ2FjaGU6OkNhY2hlKE5ldHdvcmtQcm9jZXNzJiBuZXR3b3Jr
UHJvY2VzcywgUmVmPFN0b3JhZ2U+JiYgc3RvcmFnZSwgT3B0aW9uU2V0PE9wdGlvbj4gb3B0aW9u
cykKICAgICA6IG1fc3RvcmFnZShXVEZNb3ZlKHN0b3JhZ2UpKQorICAgICwgbV9uZXR3b3JrUHJv
Y2VzcyhuZXR3b3JrUHJvY2VzcykKIHsKICNpZiBFTkFCTEUoTkVUV09SS19DQUNIRV9TUEVDVUxB
VElWRV9SRVZBTElEQVRJT04pCiAgICAgaWYgKG9wdGlvbnMuY29udGFpbnMoT3B0aW9uOjpTcGVj
dWxhdGl2ZVJldmFsaWRhdGlvbikpIHsKSW5kZXg6IFNvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nl
c3MvY2FjaGUvTmV0d29ya0NhY2hlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9OZXR3
b3JrUHJvY2Vzcy9jYWNoZS9OZXR3b3JrQ2FjaGUuaAkocmV2aXNpb24gMjM5NzI1KQorKysgU291
cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jYWNoZS9OZXR3b3JrQ2FjaGUuaAkod29ya2luZyBj
b3B5KQpAQCAtNDEsNiArNDEsOSBAQCBjbGFzcyBTaGFyZWRCdWZmZXI7CiB9CiAKIG5hbWVzcGFj
ZSBXZWJLaXQgeworCitjbGFzcyBOZXR3b3JrUHJvY2VzczsKKwogbmFtZXNwYWNlIE5ldHdvcmtD
YWNoZSB7CiAKIGNsYXNzIENhY2hlOwpAQCAtOTcsNyArMTAwLDcgQEAgcHVibGljOgogICAgICAg
ICBTcGVjdWxhdGl2ZVJldmFsaWRhdGlvbiA9IDEgPDwgMywKICNlbmRpZgogICAgIH07Ci0gICAg
c3RhdGljIFJlZlB0cjxDYWNoZT4gb3Blbihjb25zdCBTdHJpbmcmIGNhY2hlUGF0aCwgT3B0aW9u
U2V0PE9wdGlvbj4pOworICAgIHN0YXRpYyBSZWZQdHI8Q2FjaGU+IG9wZW4oTmV0d29ya1Byb2Nl
c3MmLCBjb25zdCBTdHJpbmcmIGNhY2hlUGF0aCwgT3B0aW9uU2V0PE9wdGlvbj4pOwogCiAgICAg
dm9pZCBzZXRDYXBhY2l0eShzaXplX3QpOwogCkBAIC0xNDMsMTAgKzE0NiwxMiBAQCBwdWJsaWM6
CiAgICAgU3BlY3VsYXRpdmVMb2FkTWFuYWdlciogc3BlY3VsYXRpdmVMb2FkTWFuYWdlcigpIHsg
cmV0dXJuIG1fc3BlY3VsYXRpdmVMb2FkTWFuYWdlci5nZXQoKTsgfQogI2VuZGlmCiAKKyAgICBO
ZXR3b3JrUHJvY2VzcyYgbmV0d29ya1Byb2Nlc3MoKSB7IHJldHVybiBtX25ldHdvcmtQcm9jZXNz
LmdldCgpOyB9CisKICAgICB+Q2FjaGUoKTsKIAogcHJpdmF0ZToKLSAgICBDYWNoZShSZWY8U3Rv
cmFnZT4mJiwgT3B0aW9uU2V0PE9wdGlvbj4gb3B0aW9ucyk7CisgICAgQ2FjaGUoTmV0d29ya1By
b2Nlc3MmLCBSZWY8U3RvcmFnZT4mJiwgT3B0aW9uU2V0PE9wdGlvbj4gb3B0aW9ucyk7CiAKICAg
ICBLZXkgbWFrZUNhY2hlS2V5KGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYpOwogCkBA
IC0xNTgsNiArMTYzLDcgQEAgcHJpdmF0ZToKICAgICBPcHRpb25hbDxTZWNvbmRzPiBtYXhBZ2VD
YXAoRW50cnkmLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmLCBQQUw6OlNlc3Npb25J
RCk7CiAKICAgICBSZWY8U3RvcmFnZT4gbV9zdG9yYWdlOworICAgIFJlZjxOZXR3b3JrUHJvY2Vz
cz4gbV9uZXR3b3JrUHJvY2VzczsKIAogI2lmIEVOQUJMRShORVRXT1JLX0NBQ0hFX1NQRUNVTEFU
SVZFX1JFVkFMSURBVElPTikKICAgICBzdGQ6OnVuaXF1ZV9wdHI8V2ViQ29yZTo6TG93UG93ZXJN
b2RlTm90aWZpZXI+IG1fbG93UG93ZXJNb2RlTm90aWZpZXI7CkBAIC0xNjgsNSArMTc0LDUgQEAg
cHJpdmF0ZToKICAgICB1bnNpZ25lZCBtX3RyYXZlcnNlQ291bnQgeyAwIH07CiB9OwogCi19Ci19
Cit9IC8vIG5hbWVzcGFjZSBOZXR3b3JrQ2FjaGUKK30gLy8gbmFtZXNwYWNlIFdlYktpdApJbmRl
eDogU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jYWNoZS9OZXR3b3JrQ2FjaGVTcGVjdWxh
dGl2ZUxvYWRNYW5hZ2VyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L05ldHdvcmtQ
cm9jZXNzL2NhY2hlL05ldHdvcmtDYWNoZVNwZWN1bGF0aXZlTG9hZE1hbmFnZXIuY3BwCShyZXZp
c2lvbiAyMzk2NzApCisrKyBTb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NhY2hlL05ldHdv
cmtDYWNoZVNwZWN1bGF0aXZlTG9hZE1hbmFnZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC02NCwx
MyArNjQsMTMgQEAgc3RhdGljIHZvaWQgcHJpbnRTcGVjdWxhdGl2ZUxvYWRpbmdEaWFnbgogfQog
I2VuZGlmCiAKLXN0YXRpYyB2b2lkIGxvZ1NwZWN1bGF0aXZlTG9hZGluZ0RpYWdub3N0aWNNZXNz
YWdlKGNvbnN0IEdsb2JhbEZyYW1lSUQmIGZyYW1lSUQsIGNvbnN0IFN0cmluZyYgbWVzc2FnZSkK
K3N0YXRpYyB2b2lkIGxvZ1NwZWN1bGF0aXZlTG9hZGluZ0RpYWdub3N0aWNNZXNzYWdlKE5ldHdv
cmtQcm9jZXNzJiBuZXR3b3JrUHJvY2VzcywgY29uc3QgR2xvYmFsRnJhbWVJRCYgZnJhbWVJRCwg
Y29uc3QgU3RyaW5nJiBtZXNzYWdlKQogewogI2lmICFMT0dfRElTQUJMRUQKICAgICBpZiAoV2Vi
S2l0MkxvZ05ldHdvcmtDYWNoZVNwZWN1bGF0aXZlUHJlbG9hZGluZy5zdGF0ZSA9PSBXVEZMb2dD
aGFubmVsT24pCiAgICAgICAgIGFsbFNwZWN1bGF0aXZlTG9hZGluZ0RpYWdub3N0aWNNZXNzYWdl
cygpLmFkZChtZXNzYWdlKTsKICNlbmRpZgotICAgIE5ldHdvcmtQcm9jZXNzOjpzaW5nbGV0b24o
KS5sb2dEaWFnbm9zdGljTWVzc2FnZShmcmFtZUlELmZpcnN0LCBXZWJDb3JlOjpEaWFnbm9zdGlj
TG9nZ2luZ0tleXM6Om5ldHdvcmtDYWNoZUtleSgpLCBtZXNzYWdlLCBXZWJDb3JlOjpTaG91bGRT
YW1wbGU6Olllcyk7CisgICAgbmV0d29ya1Byb2Nlc3MubG9nRGlhZ25vc3RpY01lc3NhZ2UoZnJh
bWVJRC5maXJzdCwgV2ViQ29yZTo6RGlhZ25vc3RpY0xvZ2dpbmdLZXlzOjpuZXR3b3JrQ2FjaGVL
ZXkoKSwgbWVzc2FnZSwgV2ViQ29yZTo6U2hvdWxkU2FtcGxlOjpZZXMpOwogfQogCiBzdGF0aWMg
Y29uc3QgQXRvbWljU3RyaW5nJiBzdWJyZXNvdXJjZXNUeXBlKCkKQEAgLTMxMywxMiArMzEzLDEy
IEBAIGJvb2wgU3BlY3VsYXRpdmVMb2FkTWFuYWdlcjo6Y2FuUmV0cmlldmUKICAgICBpZiAoYXV0
byBwcmVsb2FkZWRFbnRyeSA9IG1fcHJlbG9hZGVkRW50cmllcy5nZXQoc3RvcmFnZUtleSkpIHsK
ICAgICAgICAgaWYgKCFjYW5Vc2VQcmVsb2FkZWRFbnRyeSgqcHJlbG9hZGVkRW50cnksIHJlcXVl
c3QpKSB7CiAgICAgICAgICAgICBMT0coTmV0d29ya0NhY2hlU3BlY3VsYXRpdmVQcmVsb2FkaW5n
LCAiKE5ldHdvcmtQcm9jZXNzKSBSZXRyaWV2YWw6IENvdWxkIG5vdCB1c2UgcHJlbG9hZGVkIGVu
dHJ5IHRvIHNhdGlzZnkgcmVxdWVzdCBmb3IgJyVzJyBkdWUgdG8gSFRUUCBoZWFkZXJzIG1pc21h
dGNoOiIsIHN0b3JhZ2VLZXkuaWRlbnRpZmllcigpLnV0ZjgoKS5kYXRhKCkpOwotICAgICAgICAg
ICAgbG9nU3BlY3VsYXRpdmVMb2FkaW5nRGlhZ25vc3RpY01lc3NhZ2UoZnJhbWVJRCwgcHJlbG9h
ZGVkRW50cnktPndhc1JldmFsaWRhdGVkKCkgPyBEaWFnbm9zdGljTG9nZ2luZ0tleXM6Ondhc3Rl
ZFNwZWN1bGF0aXZlV2FybXVwV2l0aFJldmFsaWRhdGlvbktleSgpIDogRGlhZ25vc3RpY0xvZ2dp
bmdLZXlzOjp3YXN0ZWRTcGVjdWxhdGl2ZVdhcm11cFdpdGhvdXRSZXZhbGlkYXRpb25LZXkoKSk7
CisgICAgICAgICAgICBsb2dTcGVjdWxhdGl2ZUxvYWRpbmdEaWFnbm9zdGljTWVzc2FnZShtX2Nh
Y2hlLm5ldHdvcmtQcm9jZXNzKCksIGZyYW1lSUQsIHByZWxvYWRlZEVudHJ5LT53YXNSZXZhbGlk
YXRlZCgpID8gRGlhZ25vc3RpY0xvZ2dpbmdLZXlzOjp3YXN0ZWRTcGVjdWxhdGl2ZVdhcm11cFdp
dGhSZXZhbGlkYXRpb25LZXkoKSA6IERpYWdub3N0aWNMb2dnaW5nS2V5czo6d2FzdGVkU3BlY3Vs
YXRpdmVXYXJtdXBXaXRob3V0UmV2YWxpZGF0aW9uS2V5KCkpOwogICAgICAgICAgICAgcmV0dXJu
IGZhbHNlOwogICAgICAgICB9CiAKICAgICAgICAgTE9HKE5ldHdvcmtDYWNoZVNwZWN1bGF0aXZl
UHJlbG9hZGluZywgIihOZXR3b3JrUHJvY2VzcykgUmV0cmlldmFsOiBVc2luZyBwcmVsb2FkZWQg
ZW50cnkgdG8gc2F0aXNmeSByZXF1ZXN0IGZvciAnJXMnOiIsIHN0b3JhZ2VLZXkuaWRlbnRpZmll
cigpLnV0ZjgoKS5kYXRhKCkpOwotICAgICAgICBsb2dTcGVjdWxhdGl2ZUxvYWRpbmdEaWFnbm9z
dGljTWVzc2FnZShmcmFtZUlELCBwcmVsb2FkZWRFbnRyeS0+d2FzUmV2YWxpZGF0ZWQoKSA/IERp
YWdub3N0aWNMb2dnaW5nS2V5czo6c3VjY2Vzc2Z1bFNwZWN1bGF0aXZlV2FybXVwV2l0aFJldmFs
aWRhdGlvbktleSgpIDogRGlhZ25vc3RpY0xvZ2dpbmdLZXlzOjpzdWNjZXNzZnVsU3BlY3VsYXRp
dmVXYXJtdXBXaXRob3V0UmV2YWxpZGF0aW9uS2V5KCkpOworICAgICAgICBsb2dTcGVjdWxhdGl2
ZUxvYWRpbmdEaWFnbm9zdGljTWVzc2FnZShtX2NhY2hlLm5ldHdvcmtQcm9jZXNzKCksIGZyYW1l
SUQsIHByZWxvYWRlZEVudHJ5LT53YXNSZXZhbGlkYXRlZCgpID8gRGlhZ25vc3RpY0xvZ2dpbmdL
ZXlzOjpzdWNjZXNzZnVsU3BlY3VsYXRpdmVXYXJtdXBXaXRoUmV2YWxpZGF0aW9uS2V5KCkgOiBE
aWFnbm9zdGljTG9nZ2luZ0tleXM6OnN1Y2Nlc3NmdWxTcGVjdWxhdGl2ZVdhcm11cFdpdGhvdXRS
ZXZhbGlkYXRpb25LZXkoKSk7CiAgICAgICAgIHJldHVybiB0cnVlOwogICAgIH0KIApAQCAtMzI2
LDE2ICszMjYsMTYgQEAgYm9vbCBTcGVjdWxhdGl2ZUxvYWRNYW5hZ2VyOjpjYW5SZXRyaWV2ZQog
ICAgIGF1dG8qIHBlbmRpbmdQcmVsb2FkID0gbV9wZW5kaW5nUHJlbG9hZHMuZ2V0KHN0b3JhZ2VL
ZXkpOwogICAgIGlmICghcGVuZGluZ1ByZWxvYWQpIHsKICAgICAgICAgaWYgKG1fbm90UHJlbG9h
ZGVkRW50cmllcy5nZXQoc3RvcmFnZUtleSkpCi0gICAgICAgICAgICBsb2dTcGVjdWxhdGl2ZUxv
YWRpbmdEaWFnbm9zdGljTWVzc2FnZShmcmFtZUlELCBEaWFnbm9zdGljTG9nZ2luZ0tleXM6OmVu
dHJ5V3JvbmdseU5vdFdhcm1lZFVwS2V5KCkpOworICAgICAgICAgICAgbG9nU3BlY3VsYXRpdmVM
b2FkaW5nRGlhZ25vc3RpY01lc3NhZ2UobV9jYWNoZS5uZXR3b3JrUHJvY2VzcygpLCBmcmFtZUlE
LCBEaWFnbm9zdGljTG9nZ2luZ0tleXM6OmVudHJ5V3JvbmdseU5vdFdhcm1lZFVwS2V5KCkpOwog
ICAgICAgICBlbHNlCi0gICAgICAgICAgICBsb2dTcGVjdWxhdGl2ZUxvYWRpbmdEaWFnbm9zdGlj
TWVzc2FnZShmcmFtZUlELCBEaWFnbm9zdGljTG9nZ2luZ0tleXM6OnVua25vd25FbnRyeVJlcXVl
c3RLZXkoKSk7CisgICAgICAgICAgICBsb2dTcGVjdWxhdGl2ZUxvYWRpbmdEaWFnbm9zdGljTWVz
c2FnZShtX2NhY2hlLm5ldHdvcmtQcm9jZXNzKCksIGZyYW1lSUQsIERpYWdub3N0aWNMb2dnaW5n
S2V5czo6dW5rbm93bkVudHJ5UmVxdWVzdEtleSgpKTsKIAogICAgICAgICByZXR1cm4gZmFsc2U7
CiAgICAgfQogCiAgICAgaWYgKCFjYW5Vc2VQZW5kaW5nUHJlbG9hZCgqcGVuZGluZ1ByZWxvYWQs
IHJlcXVlc3QpKSB7CiAgICAgICAgIExPRyhOZXR3b3JrQ2FjaGVTcGVjdWxhdGl2ZVByZWxvYWRp
bmcsICIoTmV0d29ya1Byb2Nlc3MpIFJldHJpZXZhbDogcmV2YWxpZGF0aW9uIGFscmVhZHkgaW4g
cHJvZ3Jlc3MgZm9yICclcycgYnV0IHVudXNhYmxlIGR1ZSB0byBIVFRQIGhlYWRlcnMgbWlzbWF0
Y2g6Iiwgc3RvcmFnZUtleS5pZGVudGlmaWVyKCkudXRmOCgpLmRhdGEoKSk7Ci0gICAgICAgIGxv
Z1NwZWN1bGF0aXZlTG9hZGluZ0RpYWdub3N0aWNNZXNzYWdlKGZyYW1lSUQsIERpYWdub3N0aWNM
b2dnaW5nS2V5czo6d2FzdGVkU3BlY3VsYXRpdmVXYXJtdXBXaXRoUmV2YWxpZGF0aW9uS2V5KCkp
OworICAgICAgICBsb2dTcGVjdWxhdGl2ZUxvYWRpbmdEaWFnbm9zdGljTWVzc2FnZShtX2NhY2hl
Lm5ldHdvcmtQcm9jZXNzKCksIGZyYW1lSUQsIERpYWdub3N0aWNMb2dnaW5nS2V5czo6d2FzdGVk
U3BlY3VsYXRpdmVXYXJtdXBXaXRoUmV2YWxpZGF0aW9uS2V5KCkpOwogICAgICAgICByZXR1cm4g
ZmFsc2U7CiAgICAgfQogCkBAIC00MDgsOSArNDA4LDkgQEAgdm9pZCBTcGVjdWxhdGl2ZUxvYWRN
YW5hZ2VyOjphZGRQcmVsb2FkZQogICAgICAgICBhdXRvIHByZWxvYWRlZEVudHJ5ID0gbV9wcmVs
b2FkZWRFbnRyaWVzLnRha2Uoa2V5KTsKICAgICAgICAgQVNTRVJUKHByZWxvYWRlZEVudHJ5KTsK
ICAgICAgICAgaWYgKHByZWxvYWRlZEVudHJ5LT53YXNSZXZhbGlkYXRlZCgpKQotICAgICAgICAg
ICAgbG9nU3BlY3VsYXRpdmVMb2FkaW5nRGlhZ25vc3RpY01lc3NhZ2UoZnJhbWVJRCwgRGlhZ25v
c3RpY0xvZ2dpbmdLZXlzOjp3YXN0ZWRTcGVjdWxhdGl2ZVdhcm11cFdpdGhSZXZhbGlkYXRpb25L
ZXkoKSk7CisgICAgICAgICAgICBsb2dTcGVjdWxhdGl2ZUxvYWRpbmdEaWFnbm9zdGljTWVzc2Fn
ZShtX2NhY2hlLm5ldHdvcmtQcm9jZXNzKCksIGZyYW1lSUQsIERpYWdub3N0aWNMb2dnaW5nS2V5
czo6d2FzdGVkU3BlY3VsYXRpdmVXYXJtdXBXaXRoUmV2YWxpZGF0aW9uS2V5KCkpOwogICAgICAg
ICBlbHNlCi0gICAgICAgICAgICBsb2dTcGVjdWxhdGl2ZUxvYWRpbmdEaWFnbm9zdGljTWVzc2Fn
ZShmcmFtZUlELCBEaWFnbm9zdGljTG9nZ2luZ0tleXM6Ondhc3RlZFNwZWN1bGF0aXZlV2FybXVw
V2l0aG91dFJldmFsaWRhdGlvbktleSgpKTsKKyAgICAgICAgICAgIGxvZ1NwZWN1bGF0aXZlTG9h
ZGluZ0RpYWdub3N0aWNNZXNzYWdlKG1fY2FjaGUubmV0d29ya1Byb2Nlc3MoKSwgZnJhbWVJRCwg
RGlhZ25vc3RpY0xvZ2dpbmdLZXlzOjp3YXN0ZWRTcGVjdWxhdGl2ZVdhcm11cFdpdGhvdXRSZXZh
bGlkYXRpb25LZXkoKSk7CiAgICAgfSkpOwogfQogCkBAIC00NzcsNyArNDc3LDcgQEAgdm9pZCBT
cGVjdWxhdGl2ZUxvYWRNYW5hZ2VyOjpyZXZhbGlkYXRlUwogCiAgICAgICAgIGlmIChzYXRpc2Z5
UGVuZGluZ1JlcXVlc3RzKGtleSwgcmV2YWxpZGF0ZWRFbnRyeS5nZXQoKSkpIHsKICAgICAgICAg
ICAgIGlmIChyZXZhbGlkYXRlZEVudHJ5KQotICAgICAgICAgICAgICAgIGxvZ1NwZWN1bGF0aXZl
TG9hZGluZ0RpYWdub3N0aWNNZXNzYWdlKGZyYW1lSUQsIERpYWdub3N0aWNMb2dnaW5nS2V5czo6
c3VjY2Vzc2Z1bFNwZWN1bGF0aXZlV2FybXVwV2l0aFJldmFsaWRhdGlvbktleSgpKTsKKyAgICAg
ICAgICAgICAgICBsb2dTcGVjdWxhdGl2ZUxvYWRpbmdEaWFnbm9zdGljTWVzc2FnZShtX2NhY2hl
Lm5ldHdvcmtQcm9jZXNzKCksIGZyYW1lSUQsIERpYWdub3N0aWNMb2dnaW5nS2V5czo6c3VjY2Vz
c2Z1bFNwZWN1bGF0aXZlV2FybXVwV2l0aFJldmFsaWRhdGlvbktleSgpKTsKICAgICAgICAgICAg
IHJldHVybjsKICAgICAgICAgfQogCkBAIC01MzcsNyArNTM3LDcgQEAgdm9pZCBTcGVjdWxhdGl2
ZUxvYWRNYW5hZ2VyOjpwcmVsb2FkRW50cgogCiAgICAgICAgIGlmIChzYXRpc2Z5UGVuZGluZ1Jl
cXVlc3RzKGtleSwgZW50cnkuZ2V0KCkpKSB7CiAgICAgICAgICAgICBpZiAoZW50cnkpCi0gICAg
ICAgICAgICAgICAgbG9nU3BlY3VsYXRpdmVMb2FkaW5nRGlhZ25vc3RpY01lc3NhZ2UoZnJhbWVJ
RCwgRGlhZ25vc3RpY0xvZ2dpbmdLZXlzOjpzdWNjZXNzZnVsU3BlY3VsYXRpdmVXYXJtdXBXaXRo
b3V0UmV2YWxpZGF0aW9uS2V5KCkpOworICAgICAgICAgICAgICAgIGxvZ1NwZWN1bGF0aXZlTG9h
ZGluZ0RpYWdub3N0aWNNZXNzYWdlKG1fY2FjaGUubmV0d29ya1Byb2Nlc3MoKSwgZnJhbWVJRCwg
RGlhZ25vc3RpY0xvZ2dpbmdLZXlzOjpzdWNjZXNzZnVsU3BlY3VsYXRpdmVXYXJtdXBXaXRob3V0
UmV2YWxpZGF0aW9uS2V5KCkpOwogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9CiAgICAg
ICAgIApAQCAtNTYwLDcgKzU2MCw3IEBAIHZvaWQgU3BlY3VsYXRpdmVMb2FkTWFuYWdlcjo6c3Rh
cnRTcGVjdWwKICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICBMT0coTmV0d29ya0NhY2hlU3Bl
Y3VsYXRpdmVQcmVsb2FkaW5nLCAiKE5ldHdvcmtQcm9jZXNzKSBOb3QgcHJlbG9hZGluZyAnJXMn
IGJlY2F1c2UgaXQgaXMgbWFya2VkIGFzIHRyYW5zaWVudCIsIGtleS5pZGVudGlmaWVyKCkudXRm
OCgpLmRhdGEoKSk7CiAgICAgICAgICAgICBtX25vdFByZWxvYWRlZEVudHJpZXMuYWRkKGtleSwg
c3RkOjptYWtlX3VuaXF1ZTxFeHBpcmluZ0VudHJ5PihbdGhpcywga2V5LCBmcmFtZUlEXSB7Ci0g
ICAgICAgICAgICAgICAgbG9nU3BlY3VsYXRpdmVMb2FkaW5nRGlhZ25vc3RpY01lc3NhZ2UoZnJh
bWVJRCwgRGlhZ25vc3RpY0xvZ2dpbmdLZXlzOjplbnRyeVJpZ2h0bHlOb3RXYXJtZWRVcEtleSgp
KTsKKyAgICAgICAgICAgICAgICBsb2dTcGVjdWxhdGl2ZUxvYWRpbmdEaWFnbm9zdGljTWVzc2Fn
ZShtX2NhY2hlLm5ldHdvcmtQcm9jZXNzKCksIGZyYW1lSUQsIERpYWdub3N0aWNMb2dnaW5nS2V5
czo6ZW50cnlSaWdodGx5Tm90V2FybWVkVXBLZXkoKSk7CiAgICAgICAgICAgICAgICAgbV9ub3RQ
cmVsb2FkZWRFbnRyaWVzLnJlbW92ZShrZXkpOwogICAgICAgICAgICAgfSkpOwogICAgICAgICB9
CkluZGV4OiBTb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NhY2hlL05ldHdvcmtDYWNoZVN0
YXRpc3RpY3MuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mv
Y2FjaGUvTmV0d29ya0NhY2hlU3RhdGlzdGljcy5jcHAJKHJldmlzaW9uIDIzOTY3MCkKKysrIFNv
dXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY2FjaGUvTmV0d29ya0NhY2hlU3RhdGlzdGljcy5j
cHAJKHdvcmtpbmcgY29weSkKQEAgLTE4Niw3ICsxODYsNyBAQCB2b2lkIFN0YXRpc3RpY3M6OnNo
cmlua0lmTmVlZGVkKCkKIAogdm9pZCBTdGF0aXN0aWNzOjpyZWNvcmRSZXRyaWV2YWxSZXF1ZXN0
KHVpbnQ2NF90IHdlYlBhZ2VJRCkKIHsKLSAgICBOZXR3b3JrUHJvY2Vzczo6c2luZ2xldG9uKCku
bG9nRGlhZ25vc3RpY01lc3NhZ2Uod2ViUGFnZUlELCBXZWJDb3JlOjpEaWFnbm9zdGljTG9nZ2lu
Z0tleXM6Om5ldHdvcmtDYWNoZUtleSgpLCBXZWJDb3JlOjpEaWFnbm9zdGljTG9nZ2luZ0tleXM6
OnJldHJpZXZhbFJlcXVlc3RLZXkoKSwgV2ViQ29yZTo6U2hvdWxkU2FtcGxlOjpZZXMpOworICAg
IG1fY2FjaGUubmV0d29ya1Byb2Nlc3MoKS5sb2dEaWFnbm9zdGljTWVzc2FnZSh3ZWJQYWdlSUQs
IFdlYkNvcmU6OkRpYWdub3N0aWNMb2dnaW5nS2V5czo6bmV0d29ya0NhY2hlS2V5KCksIFdlYkNv
cmU6OkRpYWdub3N0aWNMb2dnaW5nS2V5czo6cmV0cmlldmFsUmVxdWVzdEtleSgpLCBXZWJDb3Jl
OjpTaG91bGRTYW1wbGU6Olllcyk7CiB9CiAKIHZvaWQgU3RhdGlzdGljczo6cmVjb3JkTm90Q2Fj
aGluZ1Jlc3BvbnNlKGNvbnN0IEtleSYga2V5LCBTdG9yZURlY2lzaW9uIHN0b3JlRGVjaXNpb24p
CkBAIC0yMjUsOSArMjI1LDkgQEAgdm9pZCBTdGF0aXN0aWNzOjpyZWNvcmROb3RVc2luZ0NhY2hl
Rm9yUgogICAgICAgICBpZiAod2FzRXZlclJlcXVlc3RlZCkgewogICAgICAgICAgICAgU3RyaW5n
IGRpYWdub3N0aWNLZXkgPSByZXRyaWV2ZURlY2lzaW9uVG9EaWFnbm9zdGljS2V5KHJldHJpZXZl
RGVjaXNpb24pOwogICAgICAgICAgICAgTE9HKE5ldHdvcmtDYWNoZSwgIihOZXR3b3JrUHJvY2Vz
cykgd2ViUGFnZUlEICUiIFBSSXU2NCAiOiAlcyB3YXMgcHJldmlvdXNseSByZXF1ZXN0ZWQgYnV0
IHdlIGFyZSBub3QgdXNpbmcgdGhlIGNhY2hlLCByZWFzb246ICVzIiwgd2ViUGFnZUlELCByZXF1
ZXN0VVJMLnN0cmluZygpLmFzY2lpKCkuZGF0YSgpLCBkaWFnbm9zdGljS2V5LnV0ZjgoKS5kYXRh
KCkpOwotICAgICAgICAgICAgTmV0d29ya1Byb2Nlc3M6OnNpbmdsZXRvbigpLmxvZ0RpYWdub3N0
aWNNZXNzYWdlKHdlYlBhZ2VJRCwgV2ViQ29yZTo6RGlhZ25vc3RpY0xvZ2dpbmdLZXlzOjpuZXR3
b3JrQ2FjaGVVbnVzZWRSZWFzb25LZXkoKSwgZGlhZ25vc3RpY0tleSwgV2ViQ29yZTo6U2hvdWxk
U2FtcGxlOjpZZXMpOworICAgICAgICAgICAgbV9jYWNoZS5uZXR3b3JrUHJvY2VzcygpLmxvZ0Rp
YWdub3N0aWNNZXNzYWdlKHdlYlBhZ2VJRCwgV2ViQ29yZTo6RGlhZ25vc3RpY0xvZ2dpbmdLZXlz
OjpuZXR3b3JrQ2FjaGVVbnVzZWRSZWFzb25LZXkoKSwgZGlhZ25vc3RpY0tleSwgV2ViQ29yZTo6
U2hvdWxkU2FtcGxlOjpZZXMpOwogICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgTmV0d29y
a1Byb2Nlc3M6OnNpbmdsZXRvbigpLmxvZ0RpYWdub3N0aWNNZXNzYWdlKHdlYlBhZ2VJRCwgV2Vi
Q29yZTo6RGlhZ25vc3RpY0xvZ2dpbmdLZXlzOjpuZXR3b3JrQ2FjaGVVbnVzZWRSZWFzb25LZXko
KSwgV2ViQ29yZTo6RGlhZ25vc3RpY0xvZ2dpbmdLZXlzOjpuZXZlclNlZW5CZWZvcmVLZXkoKSwg
V2ViQ29yZTo6U2hvdWxkU2FtcGxlOjpZZXMpOworICAgICAgICAgICAgbV9jYWNoZS5uZXR3b3Jr
UHJvY2VzcygpLmxvZ0RpYWdub3N0aWNNZXNzYWdlKHdlYlBhZ2VJRCwgV2ViQ29yZTo6RGlhZ25v
c3RpY0xvZ2dpbmdLZXlzOjpuZXR3b3JrQ2FjaGVVbnVzZWRSZWFzb25LZXkoKSwgV2ViQ29yZTo6
RGlhZ25vc3RpY0xvZ2dpbmdLZXlzOjpuZXZlclNlZW5CZWZvcmVLZXkoKSwgV2ViQ29yZTo6U2hv
dWxkU2FtcGxlOjpZZXMpOwogICAgICAgICAgICAgbWFya0FzUmVxdWVzdGVkKGhhc2gpOwogICAg
ICAgICB9CiAgICAgfSk7CkBAIC0yNjUsOSArMjY1LDkgQEAgdm9pZCBTdGF0aXN0aWNzOjpyZWNv
cmRSZXRyaWV2YWxGYWlsdXJlKAogICAgICAgICBpZiAod2FzUHJldmlvdXNseVJlcXVlc3RlZCkg
ewogICAgICAgICAgICAgU3RyaW5nIGRpYWdub3N0aWNLZXkgPSBzdG9yZURlY2lzaW9uVG9EaWFn
bm9zdGljS2V5KHN0b3JlRGVjaXNpb24udmFsdWUoKSk7CiAgICAgICAgICAgICBMT0coTmV0d29y
a0NhY2hlLCAiKE5ldHdvcmtQcm9jZXNzKSB3ZWJQYWdlSUQgJSIgUFJJdTY0ICI6ICVzIHdhcyBw
cmV2aW91c2x5IHJlcXVlc3QgYnV0IGlzIG5vdCBpbiB0aGUgY2FjaGUsIHJlYXNvbjogJXMiLCB3
ZWJQYWdlSUQsIHJlcXVlc3RVUkwuc3RyaW5nKCkuYXNjaWkoKS5kYXRhKCksIGRpYWdub3N0aWNL
ZXkudXRmOCgpLmRhdGEoKSk7Ci0gICAgICAgICAgICBOZXR3b3JrUHJvY2Vzczo6c2luZ2xldG9u
KCkubG9nRGlhZ25vc3RpY01lc3NhZ2Uod2ViUGFnZUlELCBXZWJDb3JlOjpEaWFnbm9zdGljTG9n
Z2luZ0tleXM6Om5ldHdvcmtDYWNoZUZhaWx1cmVSZWFzb25LZXkoKSwgZGlhZ25vc3RpY0tleSwg
V2ViQ29yZTo6U2hvdWxkU2FtcGxlOjpZZXMpOworICAgICAgICAgICAgbV9jYWNoZS5uZXR3b3Jr
UHJvY2VzcygpLmxvZ0RpYWdub3N0aWNNZXNzYWdlKHdlYlBhZ2VJRCwgV2ViQ29yZTo6RGlhZ25v
c3RpY0xvZ2dpbmdLZXlzOjpuZXR3b3JrQ2FjaGVGYWlsdXJlUmVhc29uS2V5KCksIGRpYWdub3N0
aWNLZXksIFdlYkNvcmU6OlNob3VsZFNhbXBsZTo6WWVzKTsKICAgICAgICAgfSBlbHNlIHsKLSAg
ICAgICAgICAgIE5ldHdvcmtQcm9jZXNzOjpzaW5nbGV0b24oKS5sb2dEaWFnbm9zdGljTWVzc2Fn
ZSh3ZWJQYWdlSUQsIFdlYkNvcmU6OkRpYWdub3N0aWNMb2dnaW5nS2V5czo6bmV0d29ya0NhY2hl
RmFpbHVyZVJlYXNvbktleSgpLCBXZWJDb3JlOjpEaWFnbm9zdGljTG9nZ2luZ0tleXM6Om5ldmVy
U2VlbkJlZm9yZUtleSgpLCBXZWJDb3JlOjpTaG91bGRTYW1wbGU6Olllcyk7CisgICAgICAgICAg
ICBtX2NhY2hlLm5ldHdvcmtQcm9jZXNzKCkubG9nRGlhZ25vc3RpY01lc3NhZ2Uod2ViUGFnZUlE
LCBXZWJDb3JlOjpEaWFnbm9zdGljTG9nZ2luZ0tleXM6Om5ldHdvcmtDYWNoZUZhaWx1cmVSZWFz
b25LZXkoKSwgV2ViQ29yZTo6RGlhZ25vc3RpY0xvZ2dpbmdLZXlzOjpuZXZlclNlZW5CZWZvcmVL
ZXkoKSwgV2ViQ29yZTo6U2hvdWxkU2FtcGxlOjpZZXMpOwogICAgICAgICAgICAgbWFya0FzUmVx
dWVzdGVkKGhhc2gpOwogICAgICAgICB9CiAgICAgfSk7CkBAIC0yOTUsMTkgKzI5NSwxOSBAQCB2
b2lkIFN0YXRpc3RpY3M6OnJlY29yZFJldHJpZXZlZENhY2hlZEVuCiAgICAgVVJMIHJlcXVlc3RV
UkwgPSByZXF1ZXN0LnVybCgpOwogICAgIGlmIChkZWNpc2lvbiA9PSBVc2VEZWNpc2lvbjo6VXNl
KSB7CiAgICAgICAgIExPRyhOZXR3b3JrQ2FjaGUsICIoTmV0d29ya1Byb2Nlc3MpIHdlYlBhZ2VJ
RCAlIiBQUkl1NjQgIjogJXMgaXMgaW4gdGhlIGNhY2hlIGFuZCBpcyB1c2VkIiwgd2ViUGFnZUlE
LCByZXF1ZXN0VVJMLnN0cmluZygpLmFzY2lpKCkuZGF0YSgpKTsKLSAgICAgICAgTmV0d29ya1By
b2Nlc3M6OnNpbmdsZXRvbigpLmxvZ0RpYWdub3N0aWNNZXNzYWdlV2l0aFJlc3VsdCh3ZWJQYWdl
SUQsIFdlYkNvcmU6OkRpYWdub3N0aWNMb2dnaW5nS2V5czo6bmV0d29ya0NhY2hlS2V5KCksIFdl
YkNvcmU6OkRpYWdub3N0aWNMb2dnaW5nS2V5czo6cmV0cmlldmFsS2V5KCksIFdlYkNvcmU6OkRp
YWdub3N0aWNMb2dnaW5nUmVzdWx0UGFzcywgV2ViQ29yZTo6U2hvdWxkU2FtcGxlOjpZZXMpOwor
ICAgICAgICBtX2NhY2hlLm5ldHdvcmtQcm9jZXNzKCkubG9nRGlhZ25vc3RpY01lc3NhZ2VXaXRo
UmVzdWx0KHdlYlBhZ2VJRCwgV2ViQ29yZTo6RGlhZ25vc3RpY0xvZ2dpbmdLZXlzOjpuZXR3b3Jr
Q2FjaGVLZXkoKSwgV2ViQ29yZTo6RGlhZ25vc3RpY0xvZ2dpbmdLZXlzOjpyZXRyaWV2YWxLZXko
KSwgV2ViQ29yZTo6RGlhZ25vc3RpY0xvZ2dpbmdSZXN1bHRQYXNzLCBXZWJDb3JlOjpTaG91bGRT
YW1wbGU6Olllcyk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKICAgICBpZiAoZGVjaXNpb24g
PT0gVXNlRGVjaXNpb246OlZhbGlkYXRlKSB7CiAgICAgICAgIExPRyhOZXR3b3JrQ2FjaGUsICIo
TmV0d29ya1Byb2Nlc3MpIHdlYlBhZ2VJRCAlIiBQUkl1NjQgIjogJXMgaXMgaW4gdGhlIGNhY2hl
IGJ1dCBuZWVkcyByZXZhbGlkYXRpb24iLCB3ZWJQYWdlSUQsIHJlcXVlc3RVUkwuc3RyaW5nKCku
YXNjaWkoKS5kYXRhKCkpOwotICAgICAgICBOZXR3b3JrUHJvY2Vzczo6c2luZ2xldG9uKCkubG9n
RGlhZ25vc3RpY01lc3NhZ2Uod2ViUGFnZUlELCBXZWJDb3JlOjpEaWFnbm9zdGljTG9nZ2luZ0tl
eXM6Om5ldHdvcmtDYWNoZUtleSgpLCBXZWJDb3JlOjpEaWFnbm9zdGljTG9nZ2luZ0tleXM6Om5l
ZWRzUmV2YWxpZGF0aW9uS2V5KCksIFdlYkNvcmU6OlNob3VsZFNhbXBsZTo6WWVzKTsKKyAgICAg
ICAgbV9jYWNoZS5uZXR3b3JrUHJvY2VzcygpLmxvZ0RpYWdub3N0aWNNZXNzYWdlKHdlYlBhZ2VJ
RCwgV2ViQ29yZTo6RGlhZ25vc3RpY0xvZ2dpbmdLZXlzOjpuZXR3b3JrQ2FjaGVLZXkoKSwgV2Vi
Q29yZTo6RGlhZ25vc3RpY0xvZ2dpbmdLZXlzOjpuZWVkc1JldmFsaWRhdGlvbktleSgpLCBXZWJD
b3JlOjpTaG91bGRTYW1wbGU6Olllcyk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKICAgICBT
dHJpbmcgZGlhZ25vc3RpY0tleSA9IGNhY2hlZEVudHJ5UmV1c2VGYWlsdXJlVG9EaWFnbm9zdGlj
S2V5KGRlY2lzaW9uKTsKICAgICBMT0coTmV0d29ya0NhY2hlLCAiKE5ldHdvcmtQcm9jZXNzKSB3
ZWJQYWdlSUQgJSIgUFJJdTY0ICI6ICVzIGlzIGluIHRoZSBjYWNoZSBidXQgd2Fzbid0IHVzZWQs
IHJlYXNvbjogJXMiLCB3ZWJQYWdlSUQsIHJlcXVlc3RVUkwuc3RyaW5nKCkuYXNjaWkoKS5kYXRh
KCksIGRpYWdub3N0aWNLZXkudXRmOCgpLmRhdGEoKSk7Ci0gICAgTmV0d29ya1Byb2Nlc3M6OnNp
bmdsZXRvbigpLmxvZ0RpYWdub3N0aWNNZXNzYWdlKHdlYlBhZ2VJRCwgV2ViQ29yZTo6RGlhZ25v
c3RpY0xvZ2dpbmdLZXlzOjpuZXR3b3JrQ2FjaGVSZXVzZUZhaWx1cmVLZXkoKSwgZGlhZ25vc3Rp
Y0tleSwgV2ViQ29yZTo6U2hvdWxkU2FtcGxlOjpZZXMpOworICAgIG1fY2FjaGUubmV0d29ya1By
b2Nlc3MoKS5sb2dEaWFnbm9zdGljTWVzc2FnZSh3ZWJQYWdlSUQsIFdlYkNvcmU6OkRpYWdub3N0
aWNMb2dnaW5nS2V5czo6bmV0d29ya0NhY2hlUmV1c2VGYWlsdXJlS2V5KCksIGRpYWdub3N0aWNL
ZXksIFdlYkNvcmU6OlNob3VsZFNhbXBsZTo6WWVzKTsKIH0KIAogdm9pZCBTdGF0aXN0aWNzOjpy
ZWNvcmRSZXZhbGlkYXRpb25TdWNjZXNzKHVpbnQ2NF90IHdlYlBhZ2VJRCwgY29uc3QgS2V5JiBr
ZXksIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCkKQEAgLTMxNSw3ICsz
MTUsNyBAQCB2b2lkIFN0YXRpc3RpY3M6OnJlY29yZFJldmFsaWRhdGlvblN1Y2NlCiAgICAgVVJM
IHJlcXVlc3RVUkwgPSByZXF1ZXN0LnVybCgpOwogICAgIExPRyhOZXR3b3JrQ2FjaGUsICIoTmV0
d29ya1Byb2Nlc3MpIHdlYlBhZ2VJRCAlIiBQUkl1NjQgIjogJXMgd2FzIHN1Y2Nlc3NmdWxseSBy
ZXZhbGlkYXRlZCIsIHdlYlBhZ2VJRCwgcmVxdWVzdFVSTC5zdHJpbmcoKS5hc2NpaSgpLmRhdGEo
KSk7CiAKLSAgICBOZXR3b3JrUHJvY2Vzczo6c2luZ2xldG9uKCkubG9nRGlhZ25vc3RpY01lc3Nh
Z2VXaXRoUmVzdWx0KHdlYlBhZ2VJRCwgV2ViQ29yZTo6RGlhZ25vc3RpY0xvZ2dpbmdLZXlzOjpu
ZXR3b3JrQ2FjaGVLZXkoKSwgV2ViQ29yZTo6RGlhZ25vc3RpY0xvZ2dpbmdLZXlzOjpyZXZhbGlk
YXRpbmdLZXkoKSwgV2ViQ29yZTo6RGlhZ25vc3RpY0xvZ2dpbmdSZXN1bHRQYXNzLCBXZWJDb3Jl
OjpTaG91bGRTYW1wbGU6Olllcyk7CisgICAgbV9jYWNoZS5uZXR3b3JrUHJvY2VzcygpLmxvZ0Rp
YWdub3N0aWNNZXNzYWdlV2l0aFJlc3VsdCh3ZWJQYWdlSUQsIFdlYkNvcmU6OkRpYWdub3N0aWNM
b2dnaW5nS2V5czo6bmV0d29ya0NhY2hlS2V5KCksIFdlYkNvcmU6OkRpYWdub3N0aWNMb2dnaW5n
S2V5czo6cmV2YWxpZGF0aW5nS2V5KCksIFdlYkNvcmU6OkRpYWdub3N0aWNMb2dnaW5nUmVzdWx0
UGFzcywgV2ViQ29yZTo6U2hvdWxkU2FtcGxlOjpZZXMpOwogfQogCiB2b2lkIFN0YXRpc3RpY3M6
Om1hcmtBc1JlcXVlc3RlZChjb25zdCBTdHJpbmcmIGhhc2gpCkluZGV4OiBTb3VyY2UvV2ViS2l0
L05ldHdvcmtQcm9jZXNzL2NhY2hlL05ldHdvcmtDYWNoZVN0b3JhZ2UuY3BwCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY2FjaGUvTmV0d29ya0NhY2hlU3RvcmFn
ZS5jcHAJKHJldmlzaW9uIDIzOTcyNSkKKysrIFNvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mv
Y2FjaGUvTmV0d29ya0NhY2hlU3RvcmFnZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTY1LDcgKzY1
LDcgQEAgcHVibGljOgogICAgIFJlZjxTdG9yYWdlPiBzdG9yYWdlOwogCiAgICAgY29uc3QgS2V5
IGtleTsKLSAgICBjb25zdCBSZXRyaWV2ZUNvbXBsZXRpb25IYW5kbGVyIGNvbXBsZXRpb25IYW5k
bGVyOworICAgIFJldHJpZXZlQ29tcGxldGlvbkhhbmRsZXIgY29tcGxldGlvbkhhbmRsZXI7CiAg
ICAgCiAgICAgc3RkOjp1bmlxdWVfcHRyPFJlY29yZD4gcmVzdWx0UmVjb3JkOwogICAgIFNIQTE6
OkRpZ2VzdCBleHBlY3RlZEJvZHlIYXNoOwpAQCAtNzYzLDcgKzc2Myw3IEBAIHRlbXBsYXRlIDxj
bGFzcyBUPiBib29sIHJldHJpZXZlRnJvbU1lbW8KICAgICBmb3IgKGF1dG8mIG9wZXJhdGlvbiA6
IG9wZXJhdGlvbnMpIHsKICAgICAgICAgaWYgKG9wZXJhdGlvbi0+cmVjb3JkLmtleSA9PSBrZXkp
IHsKICAgICAgICAgICAgIExPRyhOZXR3b3JrQ2FjaGVTdG9yYWdlLCAiKE5ldHdvcmtQcm9jZXNz
KSBmb3VuZCB3cml0ZSBvcGVyYXRpb24gaW4gcHJvZ3Jlc3MiKTsKLSAgICAgICAgICAgIFJ1bkxv
b3A6Om1haW4oKS5kaXNwYXRjaChbcmVjb3JkID0gb3BlcmF0aW9uLT5yZWNvcmQsIGNvbXBsZXRp
b25IYW5kbGVyID0gV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcildIHsKKyAgICAgICAgICAgIFJ1
bkxvb3A6Om1haW4oKS5kaXNwYXRjaChbcmVjb3JkID0gb3BlcmF0aW9uLT5yZWNvcmQsIGNvbXBs
ZXRpb25IYW5kbGVyID0gV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcildICgpIG11dGFibGUgewog
ICAgICAgICAgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKHN0ZDo6bWFrZV91bmlxdWU8U3RvcmFn
ZTo6UmVjb3JkPihyZWNvcmQpLCB7IH0pOwogICAgICAgICAgICAgfSk7CiAgICAgICAgICAgICBy
ZXR1cm4gdHJ1ZTsKSW5kZXg6IFNvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY2FjaGUvTmV0
d29ya0NhY2hlU3RvcmFnZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvTmV0d29ya1By
b2Nlc3MvY2FjaGUvTmV0d29ya0NhY2hlU3RvcmFnZS5oCShyZXZpc2lvbiAyMzk2NzApCisrKyBT
b3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NhY2hlL05ldHdvcmtDYWNoZVN0b3JhZ2UuaAko
d29ya2luZyBjb3B5KQpAQCAtNzgsNyArNzgsNyBAQCBwdWJsaWM6CiAgICAgfTsKIAogICAgIC8v
IFRoaXMgbWF5IGNhbGwgY29tcGxldGlvbiBoYW5kbGVyIHN5bmNocm9ub3VzbHkgb24gZmFpbHVy
ZS4KLSAgICB1c2luZyBSZXRyaWV2ZUNvbXBsZXRpb25IYW5kbGVyID0gRnVuY3Rpb248Ym9vbCAo
c3RkOjp1bmlxdWVfcHRyPFJlY29yZD4sIGNvbnN0IFRpbWluZ3MmKT47CisgICAgdXNpbmcgUmV0
cmlldmVDb21wbGV0aW9uSGFuZGxlciA9IENvbXBsZXRpb25IYW5kbGVyPGJvb2woc3RkOjp1bmlx
dWVfcHRyPFJlY29yZD4sIGNvbnN0IFRpbWluZ3MmKT47CiAgICAgdm9pZCByZXRyaWV2ZShjb25z
dCBLZXkmLCB1bnNpZ25lZCBwcmlvcml0eSwgUmV0cmlldmVDb21wbGV0aW9uSGFuZGxlciYmKTsK
IAogICAgIHVzaW5nIE1hcHBlZEJvZHlIYW5kbGVyID0gRnVuY3Rpb248dm9pZCAoY29uc3QgRGF0
YSYgbWFwcGVkQm9keSk+OwpJbmRleDogU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jb2Nv
YS9OZXR3b3JrUHJvY2Vzc0NvY29hLm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvTmV0
d29ya1Byb2Nlc3MvY29jb2EvTmV0d29ya1Byb2Nlc3NDb2NvYS5tbQkocmV2aXNpb24gMjM5Njgz
KQorKysgU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jb2NvYS9OZXR3b3JrUHJvY2Vzc0Nv
Y29hLm1tCSh3b3JraW5nIGNvcHkpCkBAIC0xMjIsNyArMTIyLDcgQEAgdm9pZCBOZXR3b3JrUHJv
Y2Vzczo6cGxhdGZvcm1Jbml0aWFsaXplTgogICAgICAgICBjYWNoZU9wdGlvbnMuYWRkKE5ldHdv
cmtDYWNoZTo6Q2FjaGU6Ok9wdGlvbjo6U3BlY3VsYXRpdmVSZXZhbGlkYXRpb24pOwogI2VuZGlm
CiAKLSAgICBtX2NhY2hlID0gTmV0d29ya0NhY2hlOjpDYWNoZTo6b3BlbihtX2Rpc2tDYWNoZURp
cmVjdG9yeSwgY2FjaGVPcHRpb25zKTsKKyAgICBtX2NhY2hlID0gTmV0d29ya0NhY2hlOjpDYWNo
ZTo6b3BlbigqdGhpcywgbV9kaXNrQ2FjaGVEaXJlY3RvcnksIGNhY2hlT3B0aW9ucyk7CiAgICAg
aWYgKCFtX2NhY2hlKQogICAgICAgICBSRUxFQVNFX0xPR19FUlJPUihOZXR3b3JrQ2FjaGUsICJG
YWlsZWQgdG8gaW5pdGlhbGl6ZSB0aGUgV2ViS2l0IG5ldHdvcmsgZGlzayBjYWNoZSIpOwogCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>358609</attachid>
            <date>2019-01-08 10:11:07 -0800</date>
            <delta_ts>2019-01-08 13:17:41 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-193243-20190108101106.patch</filename>
            <type>text/plain</type>
            <size>21521</size>
            <attacher name="Alex Christensen">achristensen</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJL
aXQvQ2hhbmdlTG9nCShyZXZpc2lvbiAyMzk3MjcpCisrKyBTb3VyY2UvV2ViS2l0L0NoYW5nZUxv
Zwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDM0IEBACisyMDE5LTAxLTA4ICBBbGV4IENocmlz
dGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CisKKyAgICAgICAgU3RvcCB1c2luZyBO
ZXR3b3JrUHJvY2Vzczo6c2luZ2xldG9uIGluIE5ldHdvcmtDYWNoZSBjb2RlCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xOTMyNDMKKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL2Nh
Y2hlL05ldHdvcmtDYWNoZS5jcHA6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtDYWNoZTo6Q2Fj
aGU6Om9wZW4pOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrQ2FjaGU6OkNhY2hlOjpDYWNoZSk6
CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvY2FjaGUvTmV0d29ya0NhY2hlLmg6CisgICAgICAg
IChXZWJLaXQ6Ok5ldHdvcmtDYWNoZTo6Q2FjaGU6Om5ldHdvcmtQcm9jZXNzKToKKyAgICAgICAg
KiBOZXR3b3JrUHJvY2Vzcy9jYWNoZS9OZXR3b3JrQ2FjaGVTcGVjdWxhdGl2ZUxvYWRNYW5hZ2Vy
LmNwcDoKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya0NhY2hlOjpsb2dTcGVjdWxhdGl2ZUxvYWRp
bmdEaWFnbm9zdGljTWVzc2FnZSk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtDYWNoZTo6U3Bl
Y3VsYXRpdmVMb2FkTWFuYWdlcjo6Y2FuUmV0cmlldmUgY29uc3QpOgorICAgICAgICAoV2ViS2l0
OjpOZXR3b3JrQ2FjaGU6OlNwZWN1bGF0aXZlTG9hZE1hbmFnZXI6OmFkZFByZWxvYWRlZEVudHJ5
KToKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya0NhY2hlOjpTcGVjdWxhdGl2ZUxvYWRNYW5hZ2Vy
OjpyZXZhbGlkYXRlU3VicmVzb3VyY2UpOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrQ2FjaGU6
OlNwZWN1bGF0aXZlTG9hZE1hbmFnZXI6OnByZWxvYWRFbnRyeSk6CisgICAgICAgIChXZWJLaXQ6
Ok5ldHdvcmtDYWNoZTo6U3BlY3VsYXRpdmVMb2FkTWFuYWdlcjo6c3RhcnRTcGVjdWxhdGl2ZVJl
dmFsaWRhdGlvbik6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvY2FjaGUvTmV0d29ya0NhY2hl
U3RhdGlzdGljcy5jcHA6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtDYWNoZTo6U3RhdGlzdGlj
czo6cmVjb3JkUmV0cmlldmFsUmVxdWVzdCk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtDYWNo
ZTo6U3RhdGlzdGljczo6cmVjb3JkTm90VXNpbmdDYWNoZUZvclJlcXVlc3QpOgorICAgICAgICAo
V2ViS2l0OjpOZXR3b3JrQ2FjaGU6OlN0YXRpc3RpY3M6OnJlY29yZFJldHJpZXZhbEZhaWx1cmUp
OgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrQ2FjaGU6OlN0YXRpc3RpY3M6OnJlY29yZFJldHJp
ZXZlZENhY2hlZEVudHJ5KToKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya0NhY2hlOjpTdGF0aXN0
aWNzOjpyZWNvcmRSZXZhbGlkYXRpb25TdWNjZXNzKToKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vz
cy9jYWNoZS9OZXR3b3JrQ2FjaGVTdG9yYWdlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6TmV0d29y
a0NhY2hlOjpyZXRyaWV2ZUZyb21NZW1vcnkpOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL2Nh
Y2hlL05ldHdvcmtDYWNoZVN0b3JhZ2UuaDoKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9jb2Nv
YS9OZXR3b3JrUHJvY2Vzc0NvY29hLm1tOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUHJvY2Vz
czo6cGxhdGZvcm1Jbml0aWFsaXplTmV0d29ya1Byb2Nlc3NDb2NvYSk6CisKIDIwMTktMDEtMDgg
IEFsZXggQ2hyaXN0ZW5zZW4gIDxhY2hyaXN0ZW5zZW5Ad2Via2l0Lm9yZz4KIAogICAgICAgICBT
dG9wIHVzaW5nIE5ldHdvcmtTdG9yYWdlU2Vzc2lvbiBpbiBXZWJQcm9jZXNzCkluZGV4OiBTb3Vy
Y2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NhY2hlL05ldHdvcmtDYWNoZS5jcHAKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jYWNoZS9OZXR3b3JrQ2FjaGUuY3Bw
CShyZXZpc2lvbiAyMzk3MjYpCisrKyBTb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NhY2hl
L05ldHdvcmtDYWNoZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTU5LDcgKzU5LDcgQEAgc3RhdGlj
IGNvbnN0IEF0b21pY1N0cmluZyYgcmVzb3VyY2VUeXBlKAogICAgIHJldHVybiByZXNvdXJjZTsK
IH0KIAotUmVmUHRyPENhY2hlPiBDYWNoZTo6b3Blbihjb25zdCBTdHJpbmcmIGNhY2hlUGF0aCwg
T3B0aW9uU2V0PE9wdGlvbj4gb3B0aW9ucykKK1JlZlB0cjxDYWNoZT4gQ2FjaGU6Om9wZW4oTmV0
d29ya1Byb2Nlc3MmIG5ldHdvcmtQcm9jZXNzLCBjb25zdCBTdHJpbmcmIGNhY2hlUGF0aCwgT3B0
aW9uU2V0PE9wdGlvbj4gb3B0aW9ucykKIHsKICAgICBhdXRvIHN0b3JhZ2UgPSBTdG9yYWdlOjpv
cGVuKGNhY2hlUGF0aCwgb3B0aW9ucy5jb250YWlucyhPcHRpb246OlRlc3RpbmdNb2RlKSA/IFN0
b3JhZ2U6Ok1vZGU6OkF2b2lkUmFuZG9tbmVzcyA6IFN0b3JhZ2U6Ok1vZGU6Ok5vcm1hbCk7CiAK
QEAgLTY4LDcgKzY4LDcgQEAgUmVmUHRyPENhY2hlPiBDYWNoZTo6b3Blbihjb25zdCBTdHJpbmcm
IAogICAgIGlmICghc3RvcmFnZSkKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAKLSAgICByZXR1
cm4gYWRvcHRSZWYoKm5ldyBDYWNoZShzdG9yYWdlLnJlbGVhc2VOb25OdWxsKCksIG9wdGlvbnMp
KTsKKyAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBDYWNoZShuZXR3b3JrUHJvY2Vzcywgc3RvcmFn
ZS5yZWxlYXNlTm9uTnVsbCgpLCBvcHRpb25zKSk7CiB9CiAKICNpZiBQTEFURk9STShHVEspCkBA
IC03OCw4ICs3OCw5IEBAIHN0YXRpYyB2b2lkIGR1bXBGaWxlQ2hhbmdlZChDYWNoZSogY2FjaGUK
IH0KICNlbmRpZgogCi1DYWNoZTo6Q2FjaGUoUmVmPFN0b3JhZ2U+JiYgc3RvcmFnZSwgT3B0aW9u
U2V0PE9wdGlvbj4gb3B0aW9ucykKK0NhY2hlOjpDYWNoZShOZXR3b3JrUHJvY2VzcyYgbmV0d29y
a1Byb2Nlc3MsIFJlZjxTdG9yYWdlPiYmIHN0b3JhZ2UsIE9wdGlvblNldDxPcHRpb24+IG9wdGlv
bnMpCiAgICAgOiBtX3N0b3JhZ2UoV1RGTW92ZShzdG9yYWdlKSkKKyAgICAsIG1fbmV0d29ya1By
b2Nlc3MobmV0d29ya1Byb2Nlc3MpCiB7CiAjaWYgRU5BQkxFKE5FVFdPUktfQ0FDSEVfU1BFQ1VM
QVRJVkVfUkVWQUxJREFUSU9OKQogICAgIGlmIChvcHRpb25zLmNvbnRhaW5zKE9wdGlvbjo6U3Bl
Y3VsYXRpdmVSZXZhbGlkYXRpb24pKSB7CkluZGV4OiBTb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9j
ZXNzL2NhY2hlL05ldHdvcmtDYWNoZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvTmV0
d29ya1Byb2Nlc3MvY2FjaGUvTmV0d29ya0NhY2hlLmgJKHJldmlzaW9uIDIzOTcyNikKKysrIFNv
dXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY2FjaGUvTmV0d29ya0NhY2hlLmgJKHdvcmtpbmcg
Y29weSkKQEAgLTQxLDYgKzQxLDkgQEAgY2xhc3MgU2hhcmVkQnVmZmVyOwogfQogCiBuYW1lc3Bh
Y2UgV2ViS2l0IHsKKworY2xhc3MgTmV0d29ya1Byb2Nlc3M7CisKIG5hbWVzcGFjZSBOZXR3b3Jr
Q2FjaGUgewogCiBjbGFzcyBDYWNoZTsKQEAgLTk3LDcgKzEwMCw3IEBAIHB1YmxpYzoKICAgICAg
ICAgU3BlY3VsYXRpdmVSZXZhbGlkYXRpb24gPSAxIDw8IDMsCiAjZW5kaWYKICAgICB9OwotICAg
IHN0YXRpYyBSZWZQdHI8Q2FjaGU+IG9wZW4oY29uc3QgU3RyaW5nJiBjYWNoZVBhdGgsIE9wdGlv
blNldDxPcHRpb24+KTsKKyAgICBzdGF0aWMgUmVmUHRyPENhY2hlPiBvcGVuKE5ldHdvcmtQcm9j
ZXNzJiwgY29uc3QgU3RyaW5nJiBjYWNoZVBhdGgsIE9wdGlvblNldDxPcHRpb24+KTsKIAogICAg
IHZvaWQgc2V0Q2FwYWNpdHkoc2l6ZV90KTsKIApAQCAtMTQzLDEwICsxNDYsMTIgQEAgcHVibGlj
OgogICAgIFNwZWN1bGF0aXZlTG9hZE1hbmFnZXIqIHNwZWN1bGF0aXZlTG9hZE1hbmFnZXIoKSB7
IHJldHVybiBtX3NwZWN1bGF0aXZlTG9hZE1hbmFnZXIuZ2V0KCk7IH0KICNlbmRpZgogCisgICAg
TmV0d29ya1Byb2Nlc3MmIG5ldHdvcmtQcm9jZXNzKCkgeyByZXR1cm4gbV9uZXR3b3JrUHJvY2Vz
cy5nZXQoKTsgfQorCiAgICAgfkNhY2hlKCk7CiAKIHByaXZhdGU6Ci0gICAgQ2FjaGUoUmVmPFN0
b3JhZ2U+JiYsIE9wdGlvblNldDxPcHRpb24+IG9wdGlvbnMpOworICAgIENhY2hlKE5ldHdvcmtQ
cm9jZXNzJiwgUmVmPFN0b3JhZ2U+JiYsIE9wdGlvblNldDxPcHRpb24+IG9wdGlvbnMpOwogCiAg
ICAgS2V5IG1ha2VDYWNoZUtleShjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmKTsKIApA
QCAtMTU4LDYgKzE2Myw3IEBAIHByaXZhdGU6CiAgICAgT3B0aW9uYWw8U2Vjb25kcz4gbWF4QWdl
Q2FwKEVudHJ5JiwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiwgUEFMOjpTZXNzaW9u
SUQpOwogCiAgICAgUmVmPFN0b3JhZ2U+IG1fc3RvcmFnZTsKKyAgICBSZWY8TmV0d29ya1Byb2Nl
c3M+IG1fbmV0d29ya1Byb2Nlc3M7CiAKICNpZiBFTkFCTEUoTkVUV09SS19DQUNIRV9TUEVDVUxB
VElWRV9SRVZBTElEQVRJT04pCiAgICAgc3RkOjp1bmlxdWVfcHRyPFdlYkNvcmU6Okxvd1Bvd2Vy
TW9kZU5vdGlmaWVyPiBtX2xvd1Bvd2VyTW9kZU5vdGlmaWVyOwpAQCAtMTY4LDUgKzE3NCw1IEBA
IHByaXZhdGU6CiAgICAgdW5zaWduZWQgbV90cmF2ZXJzZUNvdW50IHsgMCB9OwogfTsKIAotfQot
fQorfSAvLyBuYW1lc3BhY2UgTmV0d29ya0NhY2hlCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKSW5k
ZXg6IFNvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY2FjaGUvTmV0d29ya0NhY2hlU3BlY3Vs
YXRpdmVMb2FkTWFuYWdlci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9OZXR3b3Jr
UHJvY2Vzcy9jYWNoZS9OZXR3b3JrQ2FjaGVTcGVjdWxhdGl2ZUxvYWRNYW5hZ2VyLmNwcAkocmV2
aXNpb24gMjM5NzI2KQorKysgU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jYWNoZS9OZXR3
b3JrQ2FjaGVTcGVjdWxhdGl2ZUxvYWRNYW5hZ2VyLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNjQs
MTMgKzY0LDEzIEBAIHN0YXRpYyB2b2lkIHByaW50U3BlY3VsYXRpdmVMb2FkaW5nRGlhZ24KIH0K
ICNlbmRpZgogCi1zdGF0aWMgdm9pZCBsb2dTcGVjdWxhdGl2ZUxvYWRpbmdEaWFnbm9zdGljTWVz
c2FnZShjb25zdCBHbG9iYWxGcmFtZUlEJiBmcmFtZUlELCBjb25zdCBTdHJpbmcmIG1lc3NhZ2Up
CitzdGF0aWMgdm9pZCBsb2dTcGVjdWxhdGl2ZUxvYWRpbmdEaWFnbm9zdGljTWVzc2FnZShOZXR3
b3JrUHJvY2VzcyYgbmV0d29ya1Byb2Nlc3MsIGNvbnN0IEdsb2JhbEZyYW1lSUQmIGZyYW1lSUQs
IGNvbnN0IFN0cmluZyYgbWVzc2FnZSkKIHsKICNpZiAhTE9HX0RJU0FCTEVECiAgICAgaWYgKFdl
YktpdDJMb2dOZXR3b3JrQ2FjaGVTcGVjdWxhdGl2ZVByZWxvYWRpbmcuc3RhdGUgPT0gV1RGTG9n
Q2hhbm5lbE9uKQogICAgICAgICBhbGxTcGVjdWxhdGl2ZUxvYWRpbmdEaWFnbm9zdGljTWVzc2Fn
ZXMoKS5hZGQobWVzc2FnZSk7CiAjZW5kaWYKLSAgICBOZXR3b3JrUHJvY2Vzczo6c2luZ2xldG9u
KCkubG9nRGlhZ25vc3RpY01lc3NhZ2UoZnJhbWVJRC5maXJzdCwgV2ViQ29yZTo6RGlhZ25vc3Rp
Y0xvZ2dpbmdLZXlzOjpuZXR3b3JrQ2FjaGVLZXkoKSwgbWVzc2FnZSwgV2ViQ29yZTo6U2hvdWxk
U2FtcGxlOjpZZXMpOworICAgIG5ldHdvcmtQcm9jZXNzLmxvZ0RpYWdub3N0aWNNZXNzYWdlKGZy
YW1lSUQuZmlyc3QsIFdlYkNvcmU6OkRpYWdub3N0aWNMb2dnaW5nS2V5czo6bmV0d29ya0NhY2hl
S2V5KCksIG1lc3NhZ2UsIFdlYkNvcmU6OlNob3VsZFNhbXBsZTo6WWVzKTsKIH0KIAogc3RhdGlj
IGNvbnN0IEF0b21pY1N0cmluZyYgc3VicmVzb3VyY2VzVHlwZSgpCkBAIC0zMTMsMTIgKzMxMywx
MiBAQCBib29sIFNwZWN1bGF0aXZlTG9hZE1hbmFnZXI6OmNhblJldHJpZXZlCiAgICAgaWYgKGF1
dG8gcHJlbG9hZGVkRW50cnkgPSBtX3ByZWxvYWRlZEVudHJpZXMuZ2V0KHN0b3JhZ2VLZXkpKSB7
CiAgICAgICAgIGlmICghY2FuVXNlUHJlbG9hZGVkRW50cnkoKnByZWxvYWRlZEVudHJ5LCByZXF1
ZXN0KSkgewogICAgICAgICAgICAgTE9HKE5ldHdvcmtDYWNoZVNwZWN1bGF0aXZlUHJlbG9hZGlu
ZywgIihOZXR3b3JrUHJvY2VzcykgUmV0cmlldmFsOiBDb3VsZCBub3QgdXNlIHByZWxvYWRlZCBl
bnRyeSB0byBzYXRpc2Z5IHJlcXVlc3QgZm9yICclcycgZHVlIHRvIEhUVFAgaGVhZGVycyBtaXNt
YXRjaDoiLCBzdG9yYWdlS2V5LmlkZW50aWZpZXIoKS51dGY4KCkuZGF0YSgpKTsKLSAgICAgICAg
ICAgIGxvZ1NwZWN1bGF0aXZlTG9hZGluZ0RpYWdub3N0aWNNZXNzYWdlKGZyYW1lSUQsIHByZWxv
YWRlZEVudHJ5LT53YXNSZXZhbGlkYXRlZCgpID8gRGlhZ25vc3RpY0xvZ2dpbmdLZXlzOjp3YXN0
ZWRTcGVjdWxhdGl2ZVdhcm11cFdpdGhSZXZhbGlkYXRpb25LZXkoKSA6IERpYWdub3N0aWNMb2dn
aW5nS2V5czo6d2FzdGVkU3BlY3VsYXRpdmVXYXJtdXBXaXRob3V0UmV2YWxpZGF0aW9uS2V5KCkp
OworICAgICAgICAgICAgbG9nU3BlY3VsYXRpdmVMb2FkaW5nRGlhZ25vc3RpY01lc3NhZ2UobV9j
YWNoZS5uZXR3b3JrUHJvY2VzcygpLCBmcmFtZUlELCBwcmVsb2FkZWRFbnRyeS0+d2FzUmV2YWxp
ZGF0ZWQoKSA/IERpYWdub3N0aWNMb2dnaW5nS2V5czo6d2FzdGVkU3BlY3VsYXRpdmVXYXJtdXBX
aXRoUmV2YWxpZGF0aW9uS2V5KCkgOiBEaWFnbm9zdGljTG9nZ2luZ0tleXM6Ondhc3RlZFNwZWN1
bGF0aXZlV2FybXVwV2l0aG91dFJldmFsaWRhdGlvbktleSgpKTsKICAgICAgICAgICAgIHJldHVy
biBmYWxzZTsKICAgICAgICAgfQogCiAgICAgICAgIExPRyhOZXR3b3JrQ2FjaGVTcGVjdWxhdGl2
ZVByZWxvYWRpbmcsICIoTmV0d29ya1Byb2Nlc3MpIFJldHJpZXZhbDogVXNpbmcgcHJlbG9hZGVk
IGVudHJ5IHRvIHNhdGlzZnkgcmVxdWVzdCBmb3IgJyVzJzoiLCBzdG9yYWdlS2V5LmlkZW50aWZp
ZXIoKS51dGY4KCkuZGF0YSgpKTsKLSAgICAgICAgbG9nU3BlY3VsYXRpdmVMb2FkaW5nRGlhZ25v
c3RpY01lc3NhZ2UoZnJhbWVJRCwgcHJlbG9hZGVkRW50cnktPndhc1JldmFsaWRhdGVkKCkgPyBE
aWFnbm9zdGljTG9nZ2luZ0tleXM6OnN1Y2Nlc3NmdWxTcGVjdWxhdGl2ZVdhcm11cFdpdGhSZXZh
bGlkYXRpb25LZXkoKSA6IERpYWdub3N0aWNMb2dnaW5nS2V5czo6c3VjY2Vzc2Z1bFNwZWN1bGF0
aXZlV2FybXVwV2l0aG91dFJldmFsaWRhdGlvbktleSgpKTsKKyAgICAgICAgbG9nU3BlY3VsYXRp
dmVMb2FkaW5nRGlhZ25vc3RpY01lc3NhZ2UobV9jYWNoZS5uZXR3b3JrUHJvY2VzcygpLCBmcmFt
ZUlELCBwcmVsb2FkZWRFbnRyeS0+d2FzUmV2YWxpZGF0ZWQoKSA/IERpYWdub3N0aWNMb2dnaW5n
S2V5czo6c3VjY2Vzc2Z1bFNwZWN1bGF0aXZlV2FybXVwV2l0aFJldmFsaWRhdGlvbktleSgpIDog
RGlhZ25vc3RpY0xvZ2dpbmdLZXlzOjpzdWNjZXNzZnVsU3BlY3VsYXRpdmVXYXJtdXBXaXRob3V0
UmV2YWxpZGF0aW9uS2V5KCkpOwogICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICB9CiAKQEAgLTMy
NiwxNiArMzI2LDE2IEBAIGJvb2wgU3BlY3VsYXRpdmVMb2FkTWFuYWdlcjo6Y2FuUmV0cmlldmUK
ICAgICBhdXRvKiBwZW5kaW5nUHJlbG9hZCA9IG1fcGVuZGluZ1ByZWxvYWRzLmdldChzdG9yYWdl
S2V5KTsKICAgICBpZiAoIXBlbmRpbmdQcmVsb2FkKSB7CiAgICAgICAgIGlmIChtX25vdFByZWxv
YWRlZEVudHJpZXMuZ2V0KHN0b3JhZ2VLZXkpKQotICAgICAgICAgICAgbG9nU3BlY3VsYXRpdmVM
b2FkaW5nRGlhZ25vc3RpY01lc3NhZ2UoZnJhbWVJRCwgRGlhZ25vc3RpY0xvZ2dpbmdLZXlzOjpl
bnRyeVdyb25nbHlOb3RXYXJtZWRVcEtleSgpKTsKKyAgICAgICAgICAgIGxvZ1NwZWN1bGF0aXZl
TG9hZGluZ0RpYWdub3N0aWNNZXNzYWdlKG1fY2FjaGUubmV0d29ya1Byb2Nlc3MoKSwgZnJhbWVJ
RCwgRGlhZ25vc3RpY0xvZ2dpbmdLZXlzOjplbnRyeVdyb25nbHlOb3RXYXJtZWRVcEtleSgpKTsK
ICAgICAgICAgZWxzZQotICAgICAgICAgICAgbG9nU3BlY3VsYXRpdmVMb2FkaW5nRGlhZ25vc3Rp
Y01lc3NhZ2UoZnJhbWVJRCwgRGlhZ25vc3RpY0xvZ2dpbmdLZXlzOjp1bmtub3duRW50cnlSZXF1
ZXN0S2V5KCkpOworICAgICAgICAgICAgbG9nU3BlY3VsYXRpdmVMb2FkaW5nRGlhZ25vc3RpY01l
c3NhZ2UobV9jYWNoZS5uZXR3b3JrUHJvY2VzcygpLCBmcmFtZUlELCBEaWFnbm9zdGljTG9nZ2lu
Z0tleXM6OnVua25vd25FbnRyeVJlcXVlc3RLZXkoKSk7CiAKICAgICAgICAgcmV0dXJuIGZhbHNl
OwogICAgIH0KIAogICAgIGlmICghY2FuVXNlUGVuZGluZ1ByZWxvYWQoKnBlbmRpbmdQcmVsb2Fk
LCByZXF1ZXN0KSkgewogICAgICAgICBMT0coTmV0d29ya0NhY2hlU3BlY3VsYXRpdmVQcmVsb2Fk
aW5nLCAiKE5ldHdvcmtQcm9jZXNzKSBSZXRyaWV2YWw6IHJldmFsaWRhdGlvbiBhbHJlYWR5IGlu
IHByb2dyZXNzIGZvciAnJXMnIGJ1dCB1bnVzYWJsZSBkdWUgdG8gSFRUUCBoZWFkZXJzIG1pc21h
dGNoOiIsIHN0b3JhZ2VLZXkuaWRlbnRpZmllcigpLnV0ZjgoKS5kYXRhKCkpOwotICAgICAgICBs
b2dTcGVjdWxhdGl2ZUxvYWRpbmdEaWFnbm9zdGljTWVzc2FnZShmcmFtZUlELCBEaWFnbm9zdGlj
TG9nZ2luZ0tleXM6Ondhc3RlZFNwZWN1bGF0aXZlV2FybXVwV2l0aFJldmFsaWRhdGlvbktleSgp
KTsKKyAgICAgICAgbG9nU3BlY3VsYXRpdmVMb2FkaW5nRGlhZ25vc3RpY01lc3NhZ2UobV9jYWNo
ZS5uZXR3b3JrUHJvY2VzcygpLCBmcmFtZUlELCBEaWFnbm9zdGljTG9nZ2luZ0tleXM6Ondhc3Rl
ZFNwZWN1bGF0aXZlV2FybXVwV2l0aFJldmFsaWRhdGlvbktleSgpKTsKICAgICAgICAgcmV0dXJu
IGZhbHNlOwogICAgIH0KIApAQCAtNDA4LDkgKzQwOCw5IEBAIHZvaWQgU3BlY3VsYXRpdmVMb2Fk
TWFuYWdlcjo6YWRkUHJlbG9hZGUKICAgICAgICAgYXV0byBwcmVsb2FkZWRFbnRyeSA9IG1fcHJl
bG9hZGVkRW50cmllcy50YWtlKGtleSk7CiAgICAgICAgIEFTU0VSVChwcmVsb2FkZWRFbnRyeSk7
CiAgICAgICAgIGlmIChwcmVsb2FkZWRFbnRyeS0+d2FzUmV2YWxpZGF0ZWQoKSkKLSAgICAgICAg
ICAgIGxvZ1NwZWN1bGF0aXZlTG9hZGluZ0RpYWdub3N0aWNNZXNzYWdlKGZyYW1lSUQsIERpYWdu
b3N0aWNMb2dnaW5nS2V5czo6d2FzdGVkU3BlY3VsYXRpdmVXYXJtdXBXaXRoUmV2YWxpZGF0aW9u
S2V5KCkpOworICAgICAgICAgICAgbG9nU3BlY3VsYXRpdmVMb2FkaW5nRGlhZ25vc3RpY01lc3Nh
Z2UobV9jYWNoZS5uZXR3b3JrUHJvY2VzcygpLCBmcmFtZUlELCBEaWFnbm9zdGljTG9nZ2luZ0tl
eXM6Ondhc3RlZFNwZWN1bGF0aXZlV2FybXVwV2l0aFJldmFsaWRhdGlvbktleSgpKTsKICAgICAg
ICAgZWxzZQotICAgICAgICAgICAgbG9nU3BlY3VsYXRpdmVMb2FkaW5nRGlhZ25vc3RpY01lc3Nh
Z2UoZnJhbWVJRCwgRGlhZ25vc3RpY0xvZ2dpbmdLZXlzOjp3YXN0ZWRTcGVjdWxhdGl2ZVdhcm11
cFdpdGhvdXRSZXZhbGlkYXRpb25LZXkoKSk7CisgICAgICAgICAgICBsb2dTcGVjdWxhdGl2ZUxv
YWRpbmdEaWFnbm9zdGljTWVzc2FnZShtX2NhY2hlLm5ldHdvcmtQcm9jZXNzKCksIGZyYW1lSUQs
IERpYWdub3N0aWNMb2dnaW5nS2V5czo6d2FzdGVkU3BlY3VsYXRpdmVXYXJtdXBXaXRob3V0UmV2
YWxpZGF0aW9uS2V5KCkpOwogICAgIH0pKTsKIH0KIApAQCAtNDc3LDcgKzQ3Nyw3IEBAIHZvaWQg
U3BlY3VsYXRpdmVMb2FkTWFuYWdlcjo6cmV2YWxpZGF0ZVMKIAogICAgICAgICBpZiAoc2F0aXNm
eVBlbmRpbmdSZXF1ZXN0cyhrZXksIHJldmFsaWRhdGVkRW50cnkuZ2V0KCkpKSB7CiAgICAgICAg
ICAgICBpZiAocmV2YWxpZGF0ZWRFbnRyeSkKLSAgICAgICAgICAgICAgICBsb2dTcGVjdWxhdGl2
ZUxvYWRpbmdEaWFnbm9zdGljTWVzc2FnZShmcmFtZUlELCBEaWFnbm9zdGljTG9nZ2luZ0tleXM6
OnN1Y2Nlc3NmdWxTcGVjdWxhdGl2ZVdhcm11cFdpdGhSZXZhbGlkYXRpb25LZXkoKSk7CisgICAg
ICAgICAgICAgICAgbG9nU3BlY3VsYXRpdmVMb2FkaW5nRGlhZ25vc3RpY01lc3NhZ2UobV9jYWNo
ZS5uZXR3b3JrUHJvY2VzcygpLCBmcmFtZUlELCBEaWFnbm9zdGljTG9nZ2luZ0tleXM6OnN1Y2Nl
c3NmdWxTcGVjdWxhdGl2ZVdhcm11cFdpdGhSZXZhbGlkYXRpb25LZXkoKSk7CiAgICAgICAgICAg
ICByZXR1cm47CiAgICAgICAgIH0KIApAQCAtNTM3LDcgKzUzNyw3IEBAIHZvaWQgU3BlY3VsYXRp
dmVMb2FkTWFuYWdlcjo6cHJlbG9hZEVudHIKIAogICAgICAgICBpZiAoc2F0aXNmeVBlbmRpbmdS
ZXF1ZXN0cyhrZXksIGVudHJ5LmdldCgpKSkgewogICAgICAgICAgICAgaWYgKGVudHJ5KQotICAg
ICAgICAgICAgICAgIGxvZ1NwZWN1bGF0aXZlTG9hZGluZ0RpYWdub3N0aWNNZXNzYWdlKGZyYW1l
SUQsIERpYWdub3N0aWNMb2dnaW5nS2V5czo6c3VjY2Vzc2Z1bFNwZWN1bGF0aXZlV2FybXVwV2l0
aG91dFJldmFsaWRhdGlvbktleSgpKTsKKyAgICAgICAgICAgICAgICBsb2dTcGVjdWxhdGl2ZUxv
YWRpbmdEaWFnbm9zdGljTWVzc2FnZShtX2NhY2hlLm5ldHdvcmtQcm9jZXNzKCksIGZyYW1lSUQs
IERpYWdub3N0aWNMb2dnaW5nS2V5czo6c3VjY2Vzc2Z1bFNwZWN1bGF0aXZlV2FybXVwV2l0aG91
dFJldmFsaWRhdGlvbktleSgpKTsKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQogICAg
ICAgICAKQEAgLTU2MCw3ICs1NjAsNyBAQCB2b2lkIFNwZWN1bGF0aXZlTG9hZE1hbmFnZXI6OnN0
YXJ0U3BlY3VsCiAgICAgICAgIGVsc2UgewogICAgICAgICAgICAgTE9HKE5ldHdvcmtDYWNoZVNw
ZWN1bGF0aXZlUHJlbG9hZGluZywgIihOZXR3b3JrUHJvY2VzcykgTm90IHByZWxvYWRpbmcgJyVz
JyBiZWNhdXNlIGl0IGlzIG1hcmtlZCBhcyB0cmFuc2llbnQiLCBrZXkuaWRlbnRpZmllcigpLnV0
ZjgoKS5kYXRhKCkpOwogICAgICAgICAgICAgbV9ub3RQcmVsb2FkZWRFbnRyaWVzLmFkZChrZXks
IHN0ZDo6bWFrZV91bmlxdWU8RXhwaXJpbmdFbnRyeT4oW3RoaXMsIGtleSwgZnJhbWVJRF0gewot
ICAgICAgICAgICAgICAgIGxvZ1NwZWN1bGF0aXZlTG9hZGluZ0RpYWdub3N0aWNNZXNzYWdlKGZy
YW1lSUQsIERpYWdub3N0aWNMb2dnaW5nS2V5czo6ZW50cnlSaWdodGx5Tm90V2FybWVkVXBLZXko
KSk7CisgICAgICAgICAgICAgICAgbG9nU3BlY3VsYXRpdmVMb2FkaW5nRGlhZ25vc3RpY01lc3Nh
Z2UobV9jYWNoZS5uZXR3b3JrUHJvY2VzcygpLCBmcmFtZUlELCBEaWFnbm9zdGljTG9nZ2luZ0tl
eXM6OmVudHJ5UmlnaHRseU5vdFdhcm1lZFVwS2V5KCkpOwogICAgICAgICAgICAgICAgIG1fbm90
UHJlbG9hZGVkRW50cmllcy5yZW1vdmUoa2V5KTsKICAgICAgICAgICAgIH0pKTsKICAgICAgICAg
fQpJbmRleDogU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jYWNoZS9OZXR3b3JrQ2FjaGVT
dGF0aXN0aWNzLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNz
L2NhY2hlL05ldHdvcmtDYWNoZVN0YXRpc3RpY3MuY3BwCShyZXZpc2lvbiAyMzk3MjYpCisrKyBT
b3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NhY2hlL05ldHdvcmtDYWNoZVN0YXRpc3RpY3Mu
Y3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xODYsNyArMTg2LDcgQEAgdm9pZCBTdGF0aXN0aWNzOjpz
aHJpbmtJZk5lZWRlZCgpCiAKIHZvaWQgU3RhdGlzdGljczo6cmVjb3JkUmV0cmlldmFsUmVxdWVz
dCh1aW50NjRfdCB3ZWJQYWdlSUQpCiB7Ci0gICAgTmV0d29ya1Byb2Nlc3M6OnNpbmdsZXRvbigp
LmxvZ0RpYWdub3N0aWNNZXNzYWdlKHdlYlBhZ2VJRCwgV2ViQ29yZTo6RGlhZ25vc3RpY0xvZ2dp
bmdLZXlzOjpuZXR3b3JrQ2FjaGVLZXkoKSwgV2ViQ29yZTo6RGlhZ25vc3RpY0xvZ2dpbmdLZXlz
OjpyZXRyaWV2YWxSZXF1ZXN0S2V5KCksIFdlYkNvcmU6OlNob3VsZFNhbXBsZTo6WWVzKTsKKyAg
ICBtX2NhY2hlLm5ldHdvcmtQcm9jZXNzKCkubG9nRGlhZ25vc3RpY01lc3NhZ2Uod2ViUGFnZUlE
LCBXZWJDb3JlOjpEaWFnbm9zdGljTG9nZ2luZ0tleXM6Om5ldHdvcmtDYWNoZUtleSgpLCBXZWJD
b3JlOjpEaWFnbm9zdGljTG9nZ2luZ0tleXM6OnJldHJpZXZhbFJlcXVlc3RLZXkoKSwgV2ViQ29y
ZTo6U2hvdWxkU2FtcGxlOjpZZXMpOwogfQogCiB2b2lkIFN0YXRpc3RpY3M6OnJlY29yZE5vdENh
Y2hpbmdSZXNwb25zZShjb25zdCBLZXkmIGtleSwgU3RvcmVEZWNpc2lvbiBzdG9yZURlY2lzaW9u
KQpAQCAtMjI1LDkgKzIyNSw5IEBAIHZvaWQgU3RhdGlzdGljczo6cmVjb3JkTm90VXNpbmdDYWNo
ZUZvclIKICAgICAgICAgaWYgKHdhc0V2ZXJSZXF1ZXN0ZWQpIHsKICAgICAgICAgICAgIFN0cmlu
ZyBkaWFnbm9zdGljS2V5ID0gcmV0cmlldmVEZWNpc2lvblRvRGlhZ25vc3RpY0tleShyZXRyaWV2
ZURlY2lzaW9uKTsKICAgICAgICAgICAgIExPRyhOZXR3b3JrQ2FjaGUsICIoTmV0d29ya1Byb2Nl
c3MpIHdlYlBhZ2VJRCAlIiBQUkl1NjQgIjogJXMgd2FzIHByZXZpb3VzbHkgcmVxdWVzdGVkIGJ1
dCB3ZSBhcmUgbm90IHVzaW5nIHRoZSBjYWNoZSwgcmVhc29uOiAlcyIsIHdlYlBhZ2VJRCwgcmVx
dWVzdFVSTC5zdHJpbmcoKS5hc2NpaSgpLmRhdGEoKSwgZGlhZ25vc3RpY0tleS51dGY4KCkuZGF0
YSgpKTsKLSAgICAgICAgICAgIE5ldHdvcmtQcm9jZXNzOjpzaW5nbGV0b24oKS5sb2dEaWFnbm9z
dGljTWVzc2FnZSh3ZWJQYWdlSUQsIFdlYkNvcmU6OkRpYWdub3N0aWNMb2dnaW5nS2V5czo6bmV0
d29ya0NhY2hlVW51c2VkUmVhc29uS2V5KCksIGRpYWdub3N0aWNLZXksIFdlYkNvcmU6OlNob3Vs
ZFNhbXBsZTo6WWVzKTsKKyAgICAgICAgICAgIG1fY2FjaGUubmV0d29ya1Byb2Nlc3MoKS5sb2dE
aWFnbm9zdGljTWVzc2FnZSh3ZWJQYWdlSUQsIFdlYkNvcmU6OkRpYWdub3N0aWNMb2dnaW5nS2V5
czo6bmV0d29ya0NhY2hlVW51c2VkUmVhc29uS2V5KCksIGRpYWdub3N0aWNLZXksIFdlYkNvcmU6
OlNob3VsZFNhbXBsZTo6WWVzKTsKICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgIE5ldHdv
cmtQcm9jZXNzOjpzaW5nbGV0b24oKS5sb2dEaWFnbm9zdGljTWVzc2FnZSh3ZWJQYWdlSUQsIFdl
YkNvcmU6OkRpYWdub3N0aWNMb2dnaW5nS2V5czo6bmV0d29ya0NhY2hlVW51c2VkUmVhc29uS2V5
KCksIFdlYkNvcmU6OkRpYWdub3N0aWNMb2dnaW5nS2V5czo6bmV2ZXJTZWVuQmVmb3JlS2V5KCks
IFdlYkNvcmU6OlNob3VsZFNhbXBsZTo6WWVzKTsKKyAgICAgICAgICAgIG1fY2FjaGUubmV0d29y
a1Byb2Nlc3MoKS5sb2dEaWFnbm9zdGljTWVzc2FnZSh3ZWJQYWdlSUQsIFdlYkNvcmU6OkRpYWdu
b3N0aWNMb2dnaW5nS2V5czo6bmV0d29ya0NhY2hlVW51c2VkUmVhc29uS2V5KCksIFdlYkNvcmU6
OkRpYWdub3N0aWNMb2dnaW5nS2V5czo6bmV2ZXJTZWVuQmVmb3JlS2V5KCksIFdlYkNvcmU6OlNo
b3VsZFNhbXBsZTo6WWVzKTsKICAgICAgICAgICAgIG1hcmtBc1JlcXVlc3RlZChoYXNoKTsKICAg
ICAgICAgfQogICAgIH0pOwpAQCAtMjY1LDkgKzI2NSw5IEBAIHZvaWQgU3RhdGlzdGljczo6cmVj
b3JkUmV0cmlldmFsRmFpbHVyZSgKICAgICAgICAgaWYgKHdhc1ByZXZpb3VzbHlSZXF1ZXN0ZWQp
IHsKICAgICAgICAgICAgIFN0cmluZyBkaWFnbm9zdGljS2V5ID0gc3RvcmVEZWNpc2lvblRvRGlh
Z25vc3RpY0tleShzdG9yZURlY2lzaW9uLnZhbHVlKCkpOwogICAgICAgICAgICAgTE9HKE5ldHdv
cmtDYWNoZSwgIihOZXR3b3JrUHJvY2Vzcykgd2ViUGFnZUlEICUiIFBSSXU2NCAiOiAlcyB3YXMg
cHJldmlvdXNseSByZXF1ZXN0IGJ1dCBpcyBub3QgaW4gdGhlIGNhY2hlLCByZWFzb246ICVzIiwg
d2ViUGFnZUlELCByZXF1ZXN0VVJMLnN0cmluZygpLmFzY2lpKCkuZGF0YSgpLCBkaWFnbm9zdGlj
S2V5LnV0ZjgoKS5kYXRhKCkpOwotICAgICAgICAgICAgTmV0d29ya1Byb2Nlc3M6OnNpbmdsZXRv
bigpLmxvZ0RpYWdub3N0aWNNZXNzYWdlKHdlYlBhZ2VJRCwgV2ViQ29yZTo6RGlhZ25vc3RpY0xv
Z2dpbmdLZXlzOjpuZXR3b3JrQ2FjaGVGYWlsdXJlUmVhc29uS2V5KCksIGRpYWdub3N0aWNLZXks
IFdlYkNvcmU6OlNob3VsZFNhbXBsZTo6WWVzKTsKKyAgICAgICAgICAgIG1fY2FjaGUubmV0d29y
a1Byb2Nlc3MoKS5sb2dEaWFnbm9zdGljTWVzc2FnZSh3ZWJQYWdlSUQsIFdlYkNvcmU6OkRpYWdu
b3N0aWNMb2dnaW5nS2V5czo6bmV0d29ya0NhY2hlRmFpbHVyZVJlYXNvbktleSgpLCBkaWFnbm9z
dGljS2V5LCBXZWJDb3JlOjpTaG91bGRTYW1wbGU6Olllcyk7CiAgICAgICAgIH0gZWxzZSB7Ci0g
ICAgICAgICAgICBOZXR3b3JrUHJvY2Vzczo6c2luZ2xldG9uKCkubG9nRGlhZ25vc3RpY01lc3Nh
Z2Uod2ViUGFnZUlELCBXZWJDb3JlOjpEaWFnbm9zdGljTG9nZ2luZ0tleXM6Om5ldHdvcmtDYWNo
ZUZhaWx1cmVSZWFzb25LZXkoKSwgV2ViQ29yZTo6RGlhZ25vc3RpY0xvZ2dpbmdLZXlzOjpuZXZl
clNlZW5CZWZvcmVLZXkoKSwgV2ViQ29yZTo6U2hvdWxkU2FtcGxlOjpZZXMpOworICAgICAgICAg
ICAgbV9jYWNoZS5uZXR3b3JrUHJvY2VzcygpLmxvZ0RpYWdub3N0aWNNZXNzYWdlKHdlYlBhZ2VJ
RCwgV2ViQ29yZTo6RGlhZ25vc3RpY0xvZ2dpbmdLZXlzOjpuZXR3b3JrQ2FjaGVGYWlsdXJlUmVh
c29uS2V5KCksIFdlYkNvcmU6OkRpYWdub3N0aWNMb2dnaW5nS2V5czo6bmV2ZXJTZWVuQmVmb3Jl
S2V5KCksIFdlYkNvcmU6OlNob3VsZFNhbXBsZTo6WWVzKTsKICAgICAgICAgICAgIG1hcmtBc1Jl
cXVlc3RlZChoYXNoKTsKICAgICAgICAgfQogICAgIH0pOwpAQCAtMjk1LDE5ICsyOTUsMTkgQEAg
dm9pZCBTdGF0aXN0aWNzOjpyZWNvcmRSZXRyaWV2ZWRDYWNoZWRFbgogICAgIFVSTCByZXF1ZXN0
VVJMID0gcmVxdWVzdC51cmwoKTsKICAgICBpZiAoZGVjaXNpb24gPT0gVXNlRGVjaXNpb246OlVz
ZSkgewogICAgICAgICBMT0coTmV0d29ya0NhY2hlLCAiKE5ldHdvcmtQcm9jZXNzKSB3ZWJQYWdl
SUQgJSIgUFJJdTY0ICI6ICVzIGlzIGluIHRoZSBjYWNoZSBhbmQgaXMgdXNlZCIsIHdlYlBhZ2VJ
RCwgcmVxdWVzdFVSTC5zdHJpbmcoKS5hc2NpaSgpLmRhdGEoKSk7Ci0gICAgICAgIE5ldHdvcmtQ
cm9jZXNzOjpzaW5nbGV0b24oKS5sb2dEaWFnbm9zdGljTWVzc2FnZVdpdGhSZXN1bHQod2ViUGFn
ZUlELCBXZWJDb3JlOjpEaWFnbm9zdGljTG9nZ2luZ0tleXM6Om5ldHdvcmtDYWNoZUtleSgpLCBX
ZWJDb3JlOjpEaWFnbm9zdGljTG9nZ2luZ0tleXM6OnJldHJpZXZhbEtleSgpLCBXZWJDb3JlOjpE
aWFnbm9zdGljTG9nZ2luZ1Jlc3VsdFBhc3MsIFdlYkNvcmU6OlNob3VsZFNhbXBsZTo6WWVzKTsK
KyAgICAgICAgbV9jYWNoZS5uZXR3b3JrUHJvY2VzcygpLmxvZ0RpYWdub3N0aWNNZXNzYWdlV2l0
aFJlc3VsdCh3ZWJQYWdlSUQsIFdlYkNvcmU6OkRpYWdub3N0aWNMb2dnaW5nS2V5czo6bmV0d29y
a0NhY2hlS2V5KCksIFdlYkNvcmU6OkRpYWdub3N0aWNMb2dnaW5nS2V5czo6cmV0cmlldmFsS2V5
KCksIFdlYkNvcmU6OkRpYWdub3N0aWNMb2dnaW5nUmVzdWx0UGFzcywgV2ViQ29yZTo6U2hvdWxk
U2FtcGxlOjpZZXMpOwogICAgICAgICByZXR1cm47CiAgICAgfQogCiAgICAgaWYgKGRlY2lzaW9u
ID09IFVzZURlY2lzaW9uOjpWYWxpZGF0ZSkgewogICAgICAgICBMT0coTmV0d29ya0NhY2hlLCAi
KE5ldHdvcmtQcm9jZXNzKSB3ZWJQYWdlSUQgJSIgUFJJdTY0ICI6ICVzIGlzIGluIHRoZSBjYWNo
ZSBidXQgbmVlZHMgcmV2YWxpZGF0aW9uIiwgd2ViUGFnZUlELCByZXF1ZXN0VVJMLnN0cmluZygp
LmFzY2lpKCkuZGF0YSgpKTsKLSAgICAgICAgTmV0d29ya1Byb2Nlc3M6OnNpbmdsZXRvbigpLmxv
Z0RpYWdub3N0aWNNZXNzYWdlKHdlYlBhZ2VJRCwgV2ViQ29yZTo6RGlhZ25vc3RpY0xvZ2dpbmdL
ZXlzOjpuZXR3b3JrQ2FjaGVLZXkoKSwgV2ViQ29yZTo6RGlhZ25vc3RpY0xvZ2dpbmdLZXlzOjpu
ZWVkc1JldmFsaWRhdGlvbktleSgpLCBXZWJDb3JlOjpTaG91bGRTYW1wbGU6Olllcyk7CisgICAg
ICAgIG1fY2FjaGUubmV0d29ya1Byb2Nlc3MoKS5sb2dEaWFnbm9zdGljTWVzc2FnZSh3ZWJQYWdl
SUQsIFdlYkNvcmU6OkRpYWdub3N0aWNMb2dnaW5nS2V5czo6bmV0d29ya0NhY2hlS2V5KCksIFdl
YkNvcmU6OkRpYWdub3N0aWNMb2dnaW5nS2V5czo6bmVlZHNSZXZhbGlkYXRpb25LZXkoKSwgV2Vi
Q29yZTo6U2hvdWxkU2FtcGxlOjpZZXMpOwogICAgICAgICByZXR1cm47CiAgICAgfQogCiAgICAg
U3RyaW5nIGRpYWdub3N0aWNLZXkgPSBjYWNoZWRFbnRyeVJldXNlRmFpbHVyZVRvRGlhZ25vc3Rp
Y0tleShkZWNpc2lvbik7CiAgICAgTE9HKE5ldHdvcmtDYWNoZSwgIihOZXR3b3JrUHJvY2Vzcykg
d2ViUGFnZUlEICUiIFBSSXU2NCAiOiAlcyBpcyBpbiB0aGUgY2FjaGUgYnV0IHdhc24ndCB1c2Vk
LCByZWFzb246ICVzIiwgd2ViUGFnZUlELCByZXF1ZXN0VVJMLnN0cmluZygpLmFzY2lpKCkuZGF0
YSgpLCBkaWFnbm9zdGljS2V5LnV0ZjgoKS5kYXRhKCkpOwotICAgIE5ldHdvcmtQcm9jZXNzOjpz
aW5nbGV0b24oKS5sb2dEaWFnbm9zdGljTWVzc2FnZSh3ZWJQYWdlSUQsIFdlYkNvcmU6OkRpYWdu
b3N0aWNMb2dnaW5nS2V5czo6bmV0d29ya0NhY2hlUmV1c2VGYWlsdXJlS2V5KCksIGRpYWdub3N0
aWNLZXksIFdlYkNvcmU6OlNob3VsZFNhbXBsZTo6WWVzKTsKKyAgICBtX2NhY2hlLm5ldHdvcmtQ
cm9jZXNzKCkubG9nRGlhZ25vc3RpY01lc3NhZ2Uod2ViUGFnZUlELCBXZWJDb3JlOjpEaWFnbm9z
dGljTG9nZ2luZ0tleXM6Om5ldHdvcmtDYWNoZVJldXNlRmFpbHVyZUtleSgpLCBkaWFnbm9zdGlj
S2V5LCBXZWJDb3JlOjpTaG91bGRTYW1wbGU6Olllcyk7CiB9CiAKIHZvaWQgU3RhdGlzdGljczo6
cmVjb3JkUmV2YWxpZGF0aW9uU3VjY2Vzcyh1aW50NjRfdCB3ZWJQYWdlSUQsIGNvbnN0IEtleSYg
a2V5LCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QpCkBAIC0zMTUsNyAr
MzE1LDcgQEAgdm9pZCBTdGF0aXN0aWNzOjpyZWNvcmRSZXZhbGlkYXRpb25TdWNjZQogICAgIFVS
TCByZXF1ZXN0VVJMID0gcmVxdWVzdC51cmwoKTsKICAgICBMT0coTmV0d29ya0NhY2hlLCAiKE5l
dHdvcmtQcm9jZXNzKSB3ZWJQYWdlSUQgJSIgUFJJdTY0ICI6ICVzIHdhcyBzdWNjZXNzZnVsbHkg
cmV2YWxpZGF0ZWQiLCB3ZWJQYWdlSUQsIHJlcXVlc3RVUkwuc3RyaW5nKCkuYXNjaWkoKS5kYXRh
KCkpOwogCi0gICAgTmV0d29ya1Byb2Nlc3M6OnNpbmdsZXRvbigpLmxvZ0RpYWdub3N0aWNNZXNz
YWdlV2l0aFJlc3VsdCh3ZWJQYWdlSUQsIFdlYkNvcmU6OkRpYWdub3N0aWNMb2dnaW5nS2V5czo6
bmV0d29ya0NhY2hlS2V5KCksIFdlYkNvcmU6OkRpYWdub3N0aWNMb2dnaW5nS2V5czo6cmV2YWxp
ZGF0aW5nS2V5KCksIFdlYkNvcmU6OkRpYWdub3N0aWNMb2dnaW5nUmVzdWx0UGFzcywgV2ViQ29y
ZTo6U2hvdWxkU2FtcGxlOjpZZXMpOworICAgIG1fY2FjaGUubmV0d29ya1Byb2Nlc3MoKS5sb2dE
aWFnbm9zdGljTWVzc2FnZVdpdGhSZXN1bHQod2ViUGFnZUlELCBXZWJDb3JlOjpEaWFnbm9zdGlj
TG9nZ2luZ0tleXM6Om5ldHdvcmtDYWNoZUtleSgpLCBXZWJDb3JlOjpEaWFnbm9zdGljTG9nZ2lu
Z0tleXM6OnJldmFsaWRhdGluZ0tleSgpLCBXZWJDb3JlOjpEaWFnbm9zdGljTG9nZ2luZ1Jlc3Vs
dFBhc3MsIFdlYkNvcmU6OlNob3VsZFNhbXBsZTo6WWVzKTsKIH0KIAogdm9pZCBTdGF0aXN0aWNz
OjptYXJrQXNSZXF1ZXN0ZWQoY29uc3QgU3RyaW5nJiBoYXNoKQpJbmRleDogU291cmNlL1dlYktp
dC9OZXR3b3JrUHJvY2Vzcy9jYWNoZS9OZXR3b3JrQ2FjaGVTdG9yYWdlLmNwcAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NhY2hlL05ldHdvcmtDYWNoZVN0b3Jh
Z2UuY3BwCShyZXZpc2lvbiAyMzk3MjYpCisrKyBTb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNz
L2NhY2hlL05ldHdvcmtDYWNoZVN0b3JhZ2UuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC02NSw3ICs2
NSw3IEBAIHB1YmxpYzoKICAgICBSZWY8U3RvcmFnZT4gc3RvcmFnZTsKIAogICAgIGNvbnN0IEtl
eSBrZXk7Ci0gICAgY29uc3QgUmV0cmlldmVDb21wbGV0aW9uSGFuZGxlciBjb21wbGV0aW9uSGFu
ZGxlcjsKKyAgICBSZXRyaWV2ZUNvbXBsZXRpb25IYW5kbGVyIGNvbXBsZXRpb25IYW5kbGVyOwog
ICAgIAogICAgIHN0ZDo6dW5pcXVlX3B0cjxSZWNvcmQ+IHJlc3VsdFJlY29yZDsKICAgICBTSEEx
OjpEaWdlc3QgZXhwZWN0ZWRCb2R5SGFzaDsKQEAgLTc2Myw3ICs3NjMsNyBAQCB0ZW1wbGF0ZSA8
Y2xhc3MgVD4gYm9vbCByZXRyaWV2ZUZyb21NZW1vCiAgICAgZm9yIChhdXRvJiBvcGVyYXRpb24g
OiBvcGVyYXRpb25zKSB7CiAgICAgICAgIGlmIChvcGVyYXRpb24tPnJlY29yZC5rZXkgPT0ga2V5
KSB7CiAgICAgICAgICAgICBMT0coTmV0d29ya0NhY2hlU3RvcmFnZSwgIihOZXR3b3JrUHJvY2Vz
cykgZm91bmQgd3JpdGUgb3BlcmF0aW9uIGluIHByb2dyZXNzIik7Ci0gICAgICAgICAgICBSdW5M
b29wOjptYWluKCkuZGlzcGF0Y2goW3JlY29yZCA9IG9wZXJhdGlvbi0+cmVjb3JkLCBjb21wbGV0
aW9uSGFuZGxlciA9IFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpXSB7CisgICAgICAgICAgICBS
dW5Mb29wOjptYWluKCkuZGlzcGF0Y2goW3JlY29yZCA9IG9wZXJhdGlvbi0+cmVjb3JkLCBjb21w
bGV0aW9uSGFuZGxlciA9IFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpXSAoKSBtdXRhYmxlIHsK
ICAgICAgICAgICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihzdGQ6Om1ha2VfdW5pcXVlPFN0b3Jh
Z2U6OlJlY29yZD4ocmVjb3JkKSwgeyB9KTsKICAgICAgICAgICAgIH0pOwogICAgICAgICAgICAg
cmV0dXJuIHRydWU7CkluZGV4OiBTb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NhY2hlL05l
dHdvcmtDYWNoZVN0b3JhZ2UuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L05ldHdvcmtQ
cm9jZXNzL2NhY2hlL05ldHdvcmtDYWNoZVN0b3JhZ2UuaAkocmV2aXNpb24gMjM5NzI2KQorKysg
U291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jYWNoZS9OZXR3b3JrQ2FjaGVTdG9yYWdlLmgJ
KHdvcmtpbmcgY29weSkKQEAgLTc4LDcgKzc4LDcgQEAgcHVibGljOgogICAgIH07CiAKICAgICAv
LyBUaGlzIG1heSBjYWxsIGNvbXBsZXRpb24gaGFuZGxlciBzeW5jaHJvbm91c2x5IG9uIGZhaWx1
cmUuCi0gICAgdXNpbmcgUmV0cmlldmVDb21wbGV0aW9uSGFuZGxlciA9IEZ1bmN0aW9uPGJvb2wg
KHN0ZDo6dW5pcXVlX3B0cjxSZWNvcmQ+LCBjb25zdCBUaW1pbmdzJik+OworICAgIHVzaW5nIFJl
dHJpZXZlQ29tcGxldGlvbkhhbmRsZXIgPSBDb21wbGV0aW9uSGFuZGxlcjxib29sKHN0ZDo6dW5p
cXVlX3B0cjxSZWNvcmQ+LCBjb25zdCBUaW1pbmdzJik+OwogICAgIHZvaWQgcmV0cmlldmUoY29u
c3QgS2V5JiwgdW5zaWduZWQgcHJpb3JpdHksIFJldHJpZXZlQ29tcGxldGlvbkhhbmRsZXImJik7
CiAKICAgICB1c2luZyBNYXBwZWRCb2R5SGFuZGxlciA9IEZ1bmN0aW9uPHZvaWQgKGNvbnN0IERh
dGEmIG1hcHBlZEJvZHkpPjsKSW5kZXg6IFNvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY29j
b2EvTmV0d29ya1Byb2Nlc3NDb2NvYS5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L05l
dHdvcmtQcm9jZXNzL2NvY29hL05ldHdvcmtQcm9jZXNzQ29jb2EubW0JKHJldmlzaW9uIDIzOTcy
NikKKysrIFNvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY29jb2EvTmV0d29ya1Byb2Nlc3ND
b2NvYS5tbQkod29ya2luZyBjb3B5KQpAQCAtMTIyLDcgKzEyMiw3IEBAIHZvaWQgTmV0d29ya1By
b2Nlc3M6OnBsYXRmb3JtSW5pdGlhbGl6ZU4KICAgICAgICAgY2FjaGVPcHRpb25zLmFkZChOZXR3
b3JrQ2FjaGU6OkNhY2hlOjpPcHRpb246OlNwZWN1bGF0aXZlUmV2YWxpZGF0aW9uKTsKICNlbmRp
ZgogCi0gICAgbV9jYWNoZSA9IE5ldHdvcmtDYWNoZTo6Q2FjaGU6Om9wZW4obV9kaXNrQ2FjaGVE
aXJlY3RvcnksIGNhY2hlT3B0aW9ucyk7CisgICAgbV9jYWNoZSA9IE5ldHdvcmtDYWNoZTo6Q2Fj
aGU6Om9wZW4oKnRoaXMsIG1fZGlza0NhY2hlRGlyZWN0b3J5LCBjYWNoZU9wdGlvbnMpOwogICAg
IGlmICghbV9jYWNoZSkKICAgICAgICAgUkVMRUFTRV9MT0dfRVJST1IoTmV0d29ya0NhY2hlLCAi
RmFpbGVkIHRvIGluaXRpYWxpemUgdGhlIFdlYktpdCBuZXR3b3JrIGRpc2sgY2FjaGUiKTsKIApJ
bmRleDogU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9zb3VwL05ldHdvcmtQcm9jZXNzU291
cC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9zb3VwL05l
dHdvcmtQcm9jZXNzU291cC5jcHAJKHJldmlzaW9uIDIzOTcyNikKKysrIFNvdXJjZS9XZWJLaXQv
TmV0d29ya1Byb2Nlc3Mvc291cC9OZXR3b3JrUHJvY2Vzc1NvdXAuY3BwCSh3b3JraW5nIGNvcHkp
CkBAIC0xMTksNyArMTE5LDcgQEAgdm9pZCBOZXR3b3JrUHJvY2Vzczo6cGxhdGZvcm1Jbml0aWFs
aXplTgogICAgICAgICBjYWNoZU9wdGlvbnMuYWRkKE5ldHdvcmtDYWNoZTo6Q2FjaGU6Ok9wdGlv
bjo6U3BlY3VsYXRpdmVSZXZhbGlkYXRpb24pOwogI2VuZGlmCiAKLSAgICBtX2NhY2hlID0gTmV0
d29ya0NhY2hlOjpDYWNoZTo6b3BlbihtX2Rpc2tDYWNoZURpcmVjdG9yeSwgY2FjaGVPcHRpb25z
KTsKKyAgICBtX2NhY2hlID0gTmV0d29ya0NhY2hlOjpDYWNoZTo6b3BlbigqdGhpcywgbV9kaXNr
Q2FjaGVEaXJlY3RvcnksIGNhY2hlT3B0aW9ucyk7CiAKICAgICBpZiAoIXBhcmFtZXRlcnMuY29v
a2llUGVyc2lzdGVudFN0b3JhZ2VQYXRoLmlzRW1wdHkoKSkgewogICAgICAgICBzdXBwbGVtZW50
PFdlYkNvb2tpZU1hbmFnZXI+KCktPnNldENvb2tpZVBlcnNpc3RlbnRTdG9yYWdlKHBhcmFtZXRl
cnMuY29va2llUGVyc2lzdGVudFN0b3JhZ2VQYXRoLAo=
</data>
<flag name="review"
          id="375432"
          type_id="1"
          status="+"
          setter="bfulgham"
    />
          </attachment>
      

    </bug>

</bugzilla>