<?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>151963</bug_id>
          
          <creation_ts>2015-12-07 13:51:46 -0800</creation_ts>
          <short_desc>[EME] Correctly report errors when generating key requests from AVContentKeySession.</short_desc>
          <delta_ts>2016-09-05 01:24:14 -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>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></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>153267</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Jer Noble">jer.noble</reporter>
          <assigned_to name="Jer Noble">jer.noble</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>joepeck</cc>
    
    <cc>ryanhaddad</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1146996</commentid>
    <comment_count>0</comment_count>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2015-12-07 13:51:46 -0800</bug_when>
    <thetext>[EME] Correctly report errors when generating key requests from AVContentKeySession.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1146997</commentid>
    <comment_count>1</comment_count>
      <attachid>266809</attachid>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2015-12-07 13:54:03 -0800</bug_when>
    <thetext>Created attachment 266809
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1147306</commentid>
    <comment_count>2</comment_count>
      <attachid>266809</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2015-12-08 09:15:15 -0800</bug_when>
    <thetext>Comment on attachment 266809
Patch

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

&gt; Source/WebCore/platform/graphics/avfoundation/objc/CDMSessionAVContentKeySession.mm:286
&gt; +        NSError* error = nullptr;

Style should be:

    NSError *error = nil;

&gt; Source/WebCore/platform/graphics/avfoundation/objc/CDMSessionAVContentKeySession.mm:290
&gt; +            systemCode = std::abs(systemCodeForError(error));

The use of std::abs here seems bizarre. Test coverage?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1147356</commentid>
    <comment_count>3</comment_count>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2015-12-08 10:41:39 -0800</bug_when>
    <thetext>(In reply to comment #2)
&gt; Comment on attachment 266809 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=266809&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/platform/graphics/avfoundation/objc/CDMSessionAVContentKeySession.mm:286
&gt; &gt; +        NSError* error = nullptr;
&gt; 
&gt; Style should be:
&gt; 
&gt;     NSError *error = nil;

Ok.

&gt; &gt; Source/WebCore/platform/graphics/avfoundation/objc/CDMSessionAVContentKeySession.mm:290
&gt; &gt; +            systemCode = std::abs(systemCodeForError(error));
&gt; 
&gt; The use of std::abs here seems bizarre. Test coverage?

Established in https://bugs.webkit.org/show_bug.cgi?id=138986 / &lt;rdar://problem/19118302&gt;.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1156657</commentid>
    <comment_count>4</comment_count>
      <attachid>269275</attachid>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2016-01-19 11:25:25 -0800</bug_when>
    <thetext>Created attachment 269275
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1156658</commentid>
    <comment_count>5</comment_count>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2016-01-19 11:26:23 -0800</bug_when>
    <thetext>New approach; fix the underlying problem where WebIDL requires a &apos;unsigned long&apos; to be a 32-bit int, and we are storing the value as a 64-bit int.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1156666</commentid>
    <comment_count>6</comment_count>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2016-01-19 11:37:22 -0800</bug_when>
    <thetext>Committed r195302: &lt;http://trac.webkit.org/changeset/195302&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1156846</commentid>
    <comment_count>7</comment_count>
    <who name="Ryan Haddad">ryanhaddad</who>
    <bug_when>2016-01-19 19:37:44 -0800</bug_when>
    <thetext>This change broke the Windows build:

c:\cygwin\home\buildbot\slave\win-release\build\source\webcore\platform\graphics\avfoundation\cf\CDMSessionAVFoundationCF.h(47): error C3668: &apos;WebCore::CDMSessionAVFoundationCF::generateKeyRequest&apos;: method with override specifier &apos;override&apos; did not override any base class methods (compiling source file C:\cygwin\home\buildbot\slave\win-release\build\Source\WebCore\platform\graphics\avfoundation\cf\CDMSessionAVFoundationCF.cpp) [C:\cygwin\home\buildbot\slave\win-release\build\WebKitBuild\Release\Source\WebCore\WebCore.vcxproj]
c:\cygwin\home\buildbot\slave\win-release\build\source\webcore\platform\graphics\avfoundation\cf\CDMSessionAVFoundationCF.h(49): error C3668: &apos;WebCore::CDMSessionAVFoundationCF::update&apos;: method with override specifier &apos;override&apos; did not override any base class methods (compiling source file C:\cygwin\home\buildbot\slave\win-release\build\Source\WebCore\platform\graphics\avfoundation\cf\CDMSessionAVFoundationCF.cpp) [C:\cygwin\home\buildbot\slave\win-release\build\WebKitBuild\Release\Source\WebCore\WebCore.vcxproj]
  JSWebKitPlaybackTargetAvailabilityEvent.cpp

&lt;https://build.webkit.org/builders/Apple%20Win%20Release%20%28Build%29/builds/75221&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1156882</commentid>
    <comment_count>8</comment_count>
      <attachid>269339</attachid>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2016-01-19 21:51:23 -0800</bug_when>
    <thetext>Created attachment 269339
Patch for landing

Fix the Windows build.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1156900</commentid>
    <comment_count>9</comment_count>
      <attachid>269342</attachid>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2016-01-19 22:44:23 -0800</bug_when>
    <thetext>Created attachment 269342
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1157302</commentid>
    <comment_count>10</comment_count>
      <attachid>269342</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-01-21 09:15:27 -0800</bug_when>
    <thetext>Comment on attachment 269342
Patch for landing

Clearing flags on attachment: 269342

Committed r195410: &lt;http://trac.webkit.org/changeset/195410&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1157728</commentid>
    <comment_count>11</comment_count>
      <attachid>269342</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-01-22 10:45:28 -0800</bug_when>
    <thetext>Comment on attachment 269342
Patch for landing

Rejecting attachment 269342 from commit-queue.

Failed to run &quot;[&apos;/Volumes/Data/EWS/WebKit/Tools/Scripts/webkit-patch&apos;, &apos;--status-host=webkit-queues.webkit.org&apos;, &apos;--bot-id=webkit-cq-03&apos;, &apos;apply-attachment&apos;, &apos;--no-update&apos;, &apos;--non-interactive&apos;, 269342, &apos;--port=mac&apos;]&quot; exit_code: 2 cwd: /Volumes/Data/EWS/WebKit

Last 500 characters of output:
ED at 65.
Hunk #4 FAILED at 96.
4 out of 4 hunks FAILED -- saving rejects to file Source/WebCore/platform/graphics/avfoundation/objc/CDMSessionMediaSourceAVFObjC.mm.rej
patching file Source/WebCore/testing/MockCDM.cpp
Hunk #1 FAILED at 44.
Hunk #2 FAILED at 112.
Hunk #3 FAILED at 128.
3 out of 3 hunks FAILED -- saving rejects to file Source/WebCore/testing/MockCDM.cpp.rej

Failed to run &quot;[u&apos;/Volumes/Data/EWS/WebKit/Tools/Scripts/svn-apply&apos;, &apos;--force&apos;]&quot; exit_code: 1 cwd: /Volumes/Data/EWS/WebKit

Full output: http://webkit-queues.webkit.org/results/726179</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1226390</commentid>
    <comment_count>12</comment_count>
      <attachid>269342</attachid>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2016-09-05 01:24:06 -0700</bug_when>
    <thetext>Comment on attachment 269342
Patch for landing

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

&gt; Source/WebCore/platform/graphics/avfoundation/objc/CDMSessionAVStreamSession.mm:307
&gt; -PassRefPtr&lt;Uint8Array&gt; CDMSessionAVStreamSession::generateKeyReleaseMessage(unsigned short&amp; errorCode, unsigned long&amp; systemCode)
&gt; +PassRefPtr&lt;Uint8Array&gt; CDMSessionAVStreamSession::generateKeyReleaseMessage(unsigned short&amp; errorCode, uint32_t systemCode)

The change from reference to non-reference seems unintentional. No caller actually uses the value, but it does get assigned inside this method.

The static analyzer complains about the unused values assigned to systemCode.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>266809</attachid>
            <date>2015-12-07 13:54:03 -0800</date>
            <delta_ts>2016-01-19 11:25:23 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-151963-20151207135333.patch</filename>
            <type>text/plain</type>
            <size>2361</size>
            <attacher name="Jer Noble">jer.noble</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTkzNDgyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMmU4ZDkzOTQ3Yzc2NjIw
OWE0Yzg4OTc1MWRiZWE4MDc4N2Y0MjNkNC4uYzIwYzMyZGE2OWYwYzQxYWU0ZTM1NTcxN2UyMDZk
OTdmNDY5YmIxMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1IEBACisyMDE1LTEyLTA3ICBKZXIg
Tm9ibGUgIDxqZXIubm9ibGVAYXBwbGUuY29tPgorCisgICAgICAgIFtFTUVdIENvcnJlY3RseSBy
ZXBvcnQgZXJyb3JzIHdoZW4gZ2VuZXJhdGluZyBrZXkgcmVxdWVzdHMgZnJvbSBBVkNvbnRlbnRL
ZXlTZXNzaW9uLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MTUxOTYzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgQ2hlY2sgdGhlIGVycm9yIGNvZGUgaXNzdWVkIGJ5IC1jb250ZW50S2V5UmVxdWVzdERhdGFG
b3JBcHA6Y29udGVudElkZW50aWZpZXI6b3B0aW9uczplcnJvcjouCisKKyAgICAgICAgKiBwbGF0
Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9DRE1TZXNzaW9uQVZDb250ZW50S2V5U2Vz
c2lvbi5tbToKKyAgICAgICAgKFdlYkNvcmU6OkNETVNlc3Npb25BVkNvbnRlbnRLZXlTZXNzaW9u
Ojp1cGRhdGUpOgorCiAyMDE1LTEyLTA0ICBKZXIgTm9ibGUgIDxqZXIubm9ibGVAYXBwbGUuY29t
PgogCiAgICAgICAgIFVucmV2aWV3ZWQgYnVpbGQtZml4OyBBZGQgbmV3IHBhcmFtZXRlciB0byBv
dmVybG9hZGVkIGNyZWF0ZVNlc3Npb24oKSBtZXRob2QgaW4gTWVkaWFQbGF5ZXJQcml2YXRlQVZG
b3VuZGF0aW9uQ0YuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9hdmZvdW5kYXRpb24vb2JqYy9DRE1TZXNzaW9uQVZDb250ZW50S2V5U2Vzc2lvbi5tbSBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL0NETVNlc3Np
b25BVkNvbnRlbnRLZXlTZXNzaW9uLm1tCmluZGV4IGQzNmJlNTRkZjdkYzNjZmZmY2QyNGUzMmVj
ODBkZGEwM2E5M2I4YzguLmI2NjQ0ZjYwNDQzMzI2MzJhNDkzMjUwMDgyYzExYmI4NjVhNGJkZTMg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlv
bi9vYmpjL0NETVNlc3Npb25BVkNvbnRlbnRLZXlTZXNzaW9uLm1tCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL0NETVNlc3Npb25BVkNvbnRl
bnRLZXlTZXNzaW9uLm1tCkBAIC0yODMsOSArMjgzLDE1IEBAIGJvb2wgQ0RNU2Vzc2lvbkFWQ29u
dGVudEtleVNlc3Npb246OnVwZGF0ZShVaW50OEFycmF5KiBrZXksIFJlZlB0cjxVaW50OEFycmF5
PiYKIAogICAgICAgICBlcnJvckNvZGUgPSBNZWRpYVBsYXllcjo6Tm9FcnJvcjsKICAgICAgICAg
c3lzdGVtQ29kZSA9IDA7Ci0gICAgICAgIE5TRGF0YSogcmVxdWVzdERhdGEgPSBbbV9rZXlSZXF1
ZXN0IGNvbnRlbnRLZXlSZXF1ZXN0RGF0YUZvckFwcDpjZXJ0aWZpY2F0ZURhdGEuZ2V0KCkgY29u
dGVudElkZW50aWZpZXI6aW5pdERhdGEuZ2V0KCkgb3B0aW9uczpvcHRpb25zLmdldCgpIGVycm9y
Om5pbF07Ci0gICAgICAgIG5leHRNZXNzYWdlID0gVWludDhBcnJheTo6Y3JlYXRlKHN0YXRpY19j
YXN0PGNvbnN0IHVpbnQ4X3QqPihbcmVxdWVzdERhdGEgYnl0ZXNdKSwgW3JlcXVlc3REYXRhIGxl
bmd0aF0pOworICAgICAgICBOU0Vycm9yKiBlcnJvciA9IG51bGxwdHI7CisgICAgICAgIE5TRGF0
YSogcmVxdWVzdERhdGEgPSBbbV9rZXlSZXF1ZXN0IGNvbnRlbnRLZXlSZXF1ZXN0RGF0YUZvckFw
cDpjZXJ0aWZpY2F0ZURhdGEuZ2V0KCkgY29udGVudElkZW50aWZpZXI6aW5pdERhdGEuZ2V0KCkg
b3B0aW9uczpvcHRpb25zLmdldCgpIGVycm9yOiZlcnJvcl07CisgICAgICAgIGlmIChlcnJvcikg
eworICAgICAgICAgICAgZXJyb3JDb2RlID0gTWVkaWFQbGF5ZXJDbGllbnQ6OkRvbWFpbkVycm9y
OworICAgICAgICAgICAgc3lzdGVtQ29kZSA9IHN0ZDo6YWJzKHN5c3RlbUNvZGVGb3JFcnJvcihl
cnJvcikpOworICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICB9CiAKKyAgICAgICAg
bmV4dE1lc3NhZ2UgPSBVaW50OEFycmF5OjpjcmVhdGUoc3RhdGljX2Nhc3Q8Y29uc3QgdWludDhf
dCo+KFtyZXF1ZXN0RGF0YSBieXRlc10pLCBbcmVxdWVzdERhdGEgbGVuZ3RoXSk7CiAgICAgICAg
IHJldHVybiBmYWxzZTsKICAgICB9CiAK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>269275</attachid>
            <date>2016-01-19 11:25:25 -0800</date>
            <delta_ts>2016-01-19 11:33:25 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-151963-20160119112456.patch</filename>
            <type>text/plain</type>
            <size>40939</size>
            <attacher name="Jer Noble">jer.noble</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTk1MTQ0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggODZkZTNiMGVmM2Y3ZThm
YjdhODczZjViMzYwMzYzYjk3ZmFkZmE5OC4uOTIzNzJkZmU1ZGMxNTY3ODg0YzcxOTkyN2VmYzM4
MzNlOWY3YjhkMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDYxIEBACisyMDE1LTEyLTA3ICBKZXIg
Tm9ibGUgIDxqZXIubm9ibGVAYXBwbGUuY29tPgorCisgICAgICAgIFtFTUVdIENvcnJlY3RseSBy
ZXBvcnQgZXJyb3JzIHdoZW4gZ2VuZXJhdGluZyBrZXkgcmVxdWVzdHMgZnJvbSBBVkNvbnRlbnRL
ZXlTZXNzaW9uLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MTUxOTYzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgV2ViSURMJ3MgInVuc2lnbmVkIGxvbmciIGlzIGEgMzItYml0IHVuc2lnbmVkIGludGVnZXIs
IGFuZCBDKysncyAidW5zaWduZWQgbG9uZyIgaXMgKG9yLCBjYW4KKyAgICAgICAgYmUpIGEgNjQt
Yml0IGludGVnZXIgb24gNjQtYml0IHBsYXRmb3Jtcy4gQ2FzdGluZyBhIG5lZ2F0aXZlIGludGVn
ZXIgdG8gYSA2NC1iaXQgaW50ZWdlcgorICAgICAgICByZXN1bHRzIGluIGEgbnVtYmVyIHdoaWNo
IGNhbm5vdCBiZSBhY2N1cmF0ZWx5IHN0b3JlZCBpbiBhIGRvdWJsZS1sZW5ndGggZmxvYXRpbmcg
cG9pbnQKKyAgICAgICAgbnVtYmVyLiBQcmV2aW91c2x5LCB0aGUgbWFjIENETSBjb2RlIHdvdWxk
IHdvcmsgYXJvdW5kIHRoaXMgaXNzdWUgYnkgcmV0dXJuaW5nIHRoZSBhYnNvbHV0ZQorICAgICAg
ICB2YWx1ZSBvZiBOU0Vycm9yIGNvZGUgcmV0dXJuZWQgYnkgbWVkaWEgZnJhbWV3b3Jrcy4gSW5z
dGVhZCwgZml4IHRoZSB1bmRlcmx5aW5nIHByb2JsZW0gYnkKKyAgICAgICAgc3RvcmluZyB0aGUg
TWVkaWFLZXlFcnJvcidzIHN5c3RlbUNvZGUgYXMgYSB1aW50MzJfdCAod2hpY2ggbW9yZSBhY2N1
cmF0ZWx5IHJlcHJlc2VudHMgdGhlCisgICAgICAgIHNpemUgb2YgYSBXZWJJREwgInVuc2lnbmVk
IGxvbmciIG9uIGFsbCBwbGF0Zm9ybXMuKQorCisgICAgICAgIENoZWNrIHRoZSBlcnJvciBjb2Rl
IGlzc3VlZCBieSAtY29udGVudEtleVJlcXVlc3REYXRhRm9yQXBwOmNvbnRlbnRJZGVudGlmaWVy
Om9wdGlvbnM6ZXJyb3I6LgorCisgICAgICAgICogTW9kdWxlcy9lbmNyeXB0ZWRtZWRpYS9DRE0u
aDoKKyAgICAgICAgKiBNb2R1bGVzL2VuY3J5cHRlZG1lZGlhL0NETVNlc3Npb25DbGVhcktleS5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpDRE1TZXNzaW9uQ2xlYXJLZXk6OmdlbmVyYXRlS2V5UmVx
dWVzdCk6CisgICAgICAgIChXZWJDb3JlOjpDRE1TZXNzaW9uQ2xlYXJLZXk6OnVwZGF0ZSk6Cisg
ICAgICAgICogTW9kdWxlcy9lbmNyeXB0ZWRtZWRpYS9DRE1TZXNzaW9uQ2xlYXJLZXkuaDoKKyAg
ICAgICAgKiBNb2R1bGVzL2VuY3J5cHRlZG1lZGlhL01lZGlhS2V5U2Vzc2lvbi5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpNZWRpYUtleVNlc3Npb246OmtleVJlcXVlc3RUaW1lckZpcmVkKToKKyAg
ICAgICAgKFdlYkNvcmU6Ok1lZGlhS2V5U2Vzc2lvbjo6YWRkS2V5VGltZXJGaXJlZCk6CisgICAg
ICAgIChXZWJDb3JlOjpNZWRpYUtleVNlc3Npb246OnNlbmRFcnJvcik6CisgICAgICAgICogTW9k
dWxlcy9lbmNyeXB0ZWRtZWRpYS9NZWRpYUtleVNlc3Npb24uaDoKKyAgICAgICAgKiBNb2R1bGVz
L21lZGlhY29udHJvbHMvbWVkaWFDb250cm9sc0FwcGxlLmpzOgorICAgICAgICAoQ29udHJvbGxl
ci5wcm90b3R5cGUuaGFuZGxlUmVhZHlTdGF0ZUNoYW5nZSk6CisgICAgICAgICogV2ViQ29yZS54
Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIGh0bWwvTWVkaWFLZXlFcnJvci5o
OgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFLZXlFcnJvcjo6Y3JlYXRlKToKKyAgICAgICAgKFdl
YkNvcmU6Ok1lZGlhS2V5RXJyb3I6OnN5c3RlbUNvZGUpOgorICAgICAgICAqIGh0bWwvTWVkaWFL
ZXlFdmVudC5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0NETVNlc3Npb24uaDoKKyAg
ICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9DRE1TZXNzaW9uQVZD
b250ZW50S2V5U2Vzc2lvbi5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRh
dGlvbi9vYmpjL0NETVNlc3Npb25BVkNvbnRlbnRLZXlTZXNzaW9uLm1tOgorICAgICAgICAoV2Vi
Q29yZTo6Q0RNU2Vzc2lvbkFWQ29udGVudEtleVNlc3Npb246OmdlbmVyYXRlS2V5UmVxdWVzdCk6
CisgICAgICAgIChXZWJDb3JlOjpDRE1TZXNzaW9uQVZDb250ZW50S2V5U2Vzc2lvbjo6dXBkYXRl
KToKKyAgICAgICAgKFdlYkNvcmU6OkNETVNlc3Npb25BVkNvbnRlbnRLZXlTZXNzaW9uOjpnZW5l
cmF0ZUtleVJlbGVhc2VNZXNzYWdlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9hdmZv
dW5kYXRpb24vb2JqYy9DRE1TZXNzaW9uQVZGb3VuZGF0aW9uT2JqQy5oOgorICAgICAgICAqIHBs
YXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL0NETVNlc3Npb25BVkZvdW5kYXRpb25P
YmpDLm1tOgorICAgICAgICAoV2ViQ29yZTo6Q0RNU2Vzc2lvbkFWRm91bmRhdGlvbk9iakM6Omdl
bmVyYXRlS2V5UmVxdWVzdCk6CisgICAgICAgIChXZWJDb3JlOjpDRE1TZXNzaW9uQVZGb3VuZGF0
aW9uT2JqQzo6dXBkYXRlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRp
b24vb2JqYy9DRE1TZXNzaW9uQVZTdHJlYW1TZXNzaW9uLmg6CisgICAgICAgICogcGxhdGZvcm0v
Z3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvQ0RNU2Vzc2lvbkFWU3RyZWFtU2Vzc2lvbi5tbToK
KyAgICAgICAgKFdlYkNvcmU6OkNETVNlc3Npb25BVlN0cmVhbVNlc3Npb246OmdlbmVyYXRlS2V5
UmVxdWVzdCk6CisgICAgICAgIChXZWJDb3JlOjpDRE1TZXNzaW9uQVZTdHJlYW1TZXNzaW9uOjp1
cGRhdGUpOgorICAgICAgICAoV2ViQ29yZTo6Q0RNU2Vzc2lvbkFWU3RyZWFtU2Vzc2lvbjo6Z2Vu
ZXJhdGVLZXlSZWxlYXNlTWVzc2FnZSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvYXZm
b3VuZGF0aW9uL29iamMvQ0RNU2Vzc2lvbk1lZGlhU291cmNlQVZGT2JqQy5oOgorICAgICAgICAq
IHBsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL0NETVNlc3Npb25NZWRpYVNvdXJj
ZUFWRk9iakMubW06CisgICAgICAgIChXZWJDb3JlOjpDRE1TZXNzaW9uTWVkaWFTb3VyY2VBVkZP
YmpDOjpsYXllckRpZFJlY2VpdmVFcnJvcik6CisgICAgICAgIChXZWJDb3JlOjpDRE1TZXNzaW9u
TWVkaWFTb3VyY2VBVkZPYmpDOjpyZW5kZXJlckRpZFJlY2VpdmVFcnJvcik6CisgICAgICAgIChX
ZWJDb3JlOjpDRE1TZXNzaW9uTWVkaWFTb3VyY2VBVkZPYmpDOjpzeXN0ZW1Db2RlRm9yRXJyb3Ip
OiBEZWxldGVkLgorICAgICAgICAqIHRlc3RpbmcvTW9ja0NETS5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpNb2NrQ0RNU2Vzc2lvbjo6Z2VuZXJhdGVLZXlSZXF1ZXN0KToKKyAgICAgICAgKFdlYkNv
cmU6Ok1vY2tDRE1TZXNzaW9uOjp1cGRhdGUpOjIwMTYtMDEtMTUgIFNpbW9uIEZyYXNlciAgPHNp
bW9uLmZyYXNlckBhcHBsZS5jb20+CisKIDIwMTYtMDEtMTUgIFNpbW9uIEZyYXNlciAgPHNpbW9u
LmZyYXNlckBhcHBsZS5jb20+CiAKICAgICAgICAgQWRkIGtkZWJ1Z190cmFjZSBzaWducG9zdHMg
Zm9yIGEgZmV3IFdlYkNvcmUgb3BlcmF0aW9ucwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9lbmNyeXB0ZWRtZWRpYS9DRE0uaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZW5j
cnlwdGVkbWVkaWEvQ0RNLmgKaW5kZXggOWJmZDFiYzI1NzA1ZmZmNTZkMjNhZWQ3ZDEwZTM0M2Rh
OWMwMDY3Yi4uODFkMmRhOWZjZjMwMjAxNTI1Y2JkZmQ0YTBmYzBiNTA3NGU3YjM0MiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9lbmNyeXB0ZWRtZWRpYS9DRE0uaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2VuY3J5cHRlZG1lZGlhL0NETS5oCkBAIC01NSw3ICs1NSw3
IEBAIGNsYXNzIENETSB7CiBwdWJsaWM6CiAgICAgZXhwbGljaXQgQ0RNKGNvbnN0IFN0cmluZyYg
a2V5U3lzdGVtKTsKIAotICAgIGVudW0gQ0RNRXJyb3JDb2RlIHsgVW5rbm93bkVycm9yID0gMSwg
Q2xpZW50RXJyb3IsIFNlcnZpY2VFcnJvciwgT3V0cHV0RXJyb3IsIEhhcmR3YXJlQ2hhbmdlRXJy
b3IsIERvbWFpbkVycm9yIH07CisgICAgZW51bSBDRE1FcnJvckNvZGUgeyBOb0Vycm9yLCBVbmtu
b3duRXJyb3IsIENsaWVudEVycm9yLCBTZXJ2aWNlRXJyb3IsIE91dHB1dEVycm9yLCBIYXJkd2Fy
ZUNoYW5nZUVycm9yLCBEb21haW5FcnJvciB9OwogICAgIHN0YXRpYyBib29sIHN1cHBvcnRzS2V5
U3lzdGVtKGNvbnN0IFN0cmluZyYpOwogICAgIHN0YXRpYyBib29sIGtleVN5c3RlbVN1cHBvcnRz
TWltZVR5cGUoY29uc3QgU3RyaW5nJiBrZXlTeXN0ZW0sIGNvbnN0IFN0cmluZyYgbWltZVR5cGUp
OwogICAgIHN0YXRpYyBzdGQ6OnVuaXF1ZV9wdHI8Q0RNPiBjcmVhdGUoY29uc3QgU3RyaW5nJiBr
ZXlTeXN0ZW0pOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9lbmNyeXB0ZWRt
ZWRpYS9DRE1TZXNzaW9uQ2xlYXJLZXkuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9lbmNy
eXB0ZWRtZWRpYS9DRE1TZXNzaW9uQ2xlYXJLZXkuY3BwCmluZGV4IDllYzc5N2YwYzE0MWNkNWYz
YTc5YzdlNzUxMjZjNGFlMWY0Y2UwMjMuLjU4OWFjZDIyNjk1NDFmYTU2NjUyMjUwZjQ2MGNhMzdi
MmI3Yjg0ODggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZW5jcnlwdGVkbWVk
aWEvQ0RNU2Vzc2lvbkNsZWFyS2V5LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2Vu
Y3J5cHRlZG1lZGlhL0NETVNlc3Npb25DbGVhcktleS5jcHAKQEAgLTY5LDcgKzY5LDcgQEAgQ0RN
U2Vzc2lvbkNsZWFyS2V5Ojp+Q0RNU2Vzc2lvbkNsZWFyS2V5KCkKIHsKIH0KIAotUmVmUHRyPFVp
bnQ4QXJyYXk+IENETVNlc3Npb25DbGVhcktleTo6Z2VuZXJhdGVLZXlSZXF1ZXN0KGNvbnN0IFN0
cmluZyYgbWltZVR5cGUsIFVpbnQ4QXJyYXkqIGluaXREYXRhLCBTdHJpbmcmIGRlc3RpbmF0aW9u
VVJMLCB1bnNpZ25lZCBzaG9ydCYgZXJyb3JDb2RlLCB1bnNpZ25lZCBsb25nJiBzeXN0ZW1Db2Rl
KQorUmVmUHRyPFVpbnQ4QXJyYXk+IENETVNlc3Npb25DbGVhcktleTo6Z2VuZXJhdGVLZXlSZXF1
ZXN0KGNvbnN0IFN0cmluZyYgbWltZVR5cGUsIFVpbnQ4QXJyYXkqIGluaXREYXRhLCBTdHJpbmcm
IGRlc3RpbmF0aW9uVVJMLCB1bnNpZ25lZCBzaG9ydCYgZXJyb3JDb2RlLCB1aW50MzJfdCYgc3lz
dGVtQ29kZSkKIHsKICAgICBVTlVTRURfUEFSQU0obWltZVR5cGUpOwogICAgIFVOVVNFRF9QQVJB
TShkZXN0aW5hdGlvblVSTCk7CkBAIC05Niw3ICs5Niw3IEBAIHZvaWQgQ0RNU2Vzc2lvbkNsZWFy
S2V5OjpyZWxlYXNlS2V5cygpCiAgICAgbV9jYWNoZWRLZXlzLmNsZWFyKCk7CiB9CiAKLWJvb2wg
Q0RNU2Vzc2lvbkNsZWFyS2V5Ojp1cGRhdGUoVWludDhBcnJheSogcmF3S2V5c0RhdGEsIFJlZlB0
cjxVaW50OEFycmF5PiYgbmV4dE1lc3NhZ2UsIHVuc2lnbmVkIHNob3J0JiBlcnJvckNvZGUsIHVu
c2lnbmVkIGxvbmcmIHN5c3RlbUNvZGUpCitib29sIENETVNlc3Npb25DbGVhcktleTo6dXBkYXRl
KFVpbnQ4QXJyYXkqIHJhd0tleXNEYXRhLCBSZWZQdHI8VWludDhBcnJheT4mIG5leHRNZXNzYWdl
LCB1bnNpZ25lZCBzaG9ydCYgZXJyb3JDb2RlLCB1aW50MzJfdCYgc3lzdGVtQ29kZSkKIHsKICAg
ICBVTlVTRURfUEFSQU0obmV4dE1lc3NhZ2UpOwogICAgIFVOVVNFRF9QQVJBTShzeXN0ZW1Db2Rl
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZW5jcnlwdGVkbWVkaWEvQ0RN
U2Vzc2lvbkNsZWFyS2V5LmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2VuY3J5cHRlZG1lZGlh
L0NETVNlc3Npb25DbGVhcktleS5oCmluZGV4IGU1MDlmYjZhNjdhZmRlMjcyYWQwOTc5NWY4NjFh
YTI5NjNkNzhjYzIuLjQ2Mjg3MDk0YWE4YzY3ZTg0NTM2ZDk2NTNmNDUxMzFhYTZjZmRlYzYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZW5jcnlwdGVkbWVkaWEvQ0RNU2Vzc2lv
bkNsZWFyS2V5LmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9lbmNyeXB0ZWRtZWRpYS9D
RE1TZXNzaW9uQ2xlYXJLZXkuaApAQCAtNDIsOSArNDIsOSBAQCBwdWJsaWM6CiAgICAgdmlydHVh
bCBDRE1TZXNzaW9uVHlwZSB0eXBlKCkgb3ZlcnJpZGUgeyByZXR1cm4gQ0RNU2Vzc2lvblR5cGVD
bGVhcktleTsgfQogICAgIHZpcnR1YWwgdm9pZCBzZXRDbGllbnQoQ0RNU2Vzc2lvbkNsaWVudCog
Y2xpZW50KSBvdmVycmlkZSB7IG1fY2xpZW50ID0gY2xpZW50OyB9CiAgICAgdmlydHVhbCBjb25z
dCBTdHJpbmcmIHNlc3Npb25JZCgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIG1fc2Vzc2lvbklk
OyB9Ci0gICAgdmlydHVhbCBSZWZQdHI8VWludDhBcnJheT4gZ2VuZXJhdGVLZXlSZXF1ZXN0KGNv
bnN0IFN0cmluZyYgbWltZVR5cGUsIFVpbnQ4QXJyYXkqLCBTdHJpbmcmLCB1bnNpZ25lZCBzaG9y
dCYsIHVuc2lnbmVkIGxvbmcmKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIFJlZlB0cjxVaW50OEFy
cmF5PiBnZW5lcmF0ZUtleVJlcXVlc3QoY29uc3QgU3RyaW5nJiBtaW1lVHlwZSwgVWludDhBcnJh
eSosIFN0cmluZyYsIHVuc2lnbmVkIHNob3J0JiwgdWludDMyX3QmKSBvdmVycmlkZTsKICAgICB2
aXJ0dWFsIHZvaWQgcmVsZWFzZUtleXMoKSBvdmVycmlkZTsKLSAgICB2aXJ0dWFsIGJvb2wgdXBk
YXRlKFVpbnQ4QXJyYXkqLCBSZWZQdHI8VWludDhBcnJheT4mLCB1bnNpZ25lZCBzaG9ydCYsIHVu
c2lnbmVkIGxvbmcmKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIGJvb2wgdXBkYXRlKFVpbnQ4QXJy
YXkqLCBSZWZQdHI8VWludDhBcnJheT4mLCB1bnNpZ25lZCBzaG9ydCYsIHVpbnQzMl90Jikgb3Zl
cnJpZGU7CiAgICAgdmlydHVhbCBSZWZQdHI8QXJyYXlCdWZmZXI+IGNhY2hlZEtleUZvcktleUlE
KGNvbnN0IFN0cmluZyYpIGNvbnN0IG92ZXJyaWRlOwogCiBwcm90ZWN0ZWQ6CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2VuY3J5cHRlZG1lZGlhL01lZGlhS2V5U2Vzc2lvbi5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2VuY3J5cHRlZG1lZGlhL01lZGlhS2V5U2Vzc2lv
bi5jcHAKaW5kZXggYmYxNjJkZWM3MDhiYWUzYjg4Yzg4NTg1Y2FhYTJhZTVhMmE2NjE2Zi4uODcz
YmMyNjQyZDdkMTNmMGMyZjZjMzVmYjcyZDUwZjM0YTUxMjM5MiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9lbmNyeXB0ZWRtZWRpYS9NZWRpYUtleVNlc3Npb24uY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZW5jcnlwdGVkbWVkaWEvTWVkaWFLZXlTZXNzaW9uLmNw
cApAQCAtMTExLDcgKzExMSw3IEBAIHZvaWQgTWVkaWFLZXlTZXNzaW9uOjprZXlSZXF1ZXN0VGlt
ZXJGaXJlZCgpCiAgICAgICAgIC8vIDIuIExldCBkZXN0aW5hdGlvblVSTCBiZSBudWxsLgogICAg
ICAgICBTdHJpbmcgZGVzdGluYXRpb25VUkw7CiAgICAgICAgIE1lZGlhS2V5RXJyb3I6OkNvZGUg
ZXJyb3JDb2RlID0gMDsKLSAgICAgICAgdW5zaWduZWQgbG9uZyBzeXN0ZW1Db2RlID0gMDsKKyAg
ICAgICAgdWludDMyX3Qgc3lzdGVtQ29kZSA9IDA7CiAKICAgICAgICAgLy8gMy4gVXNlIGNkbSB0
byBnZW5lcmF0ZSBhIGtleSByZXF1ZXN0IGFuZCBmb2xsb3cgdGhlIHN0ZXBzIGZvciB0aGUgZmly
c3QgbWF0Y2hpbmcgY29uZGl0aW9uIGZyb20gdGhlIGZvbGxvd2luZyBsaXN0OgogCkBAIC0xNjMs
NyArMTYzLDcgQEAgdm9pZCBNZWRpYUtleVNlc3Npb246OmFkZEtleVRpbWVyRmlyZWQoKQogICAg
IHdoaWxlICghbV9wZW5kaW5nS2V5cy5pc0VtcHR5KCkpIHsKICAgICAgICAgUmVmUHRyPFVpbnQ4
QXJyYXk+IHBlbmRpbmdLZXkgPSBtX3BlbmRpbmdLZXlzLnRha2VGaXJzdCgpOwogICAgICAgICB1
bnNpZ25lZCBzaG9ydCBlcnJvckNvZGUgPSAwOwotICAgICAgICB1bnNpZ25lZCBsb25nIHN5c3Rl
bUNvZGUgPSAwOworICAgICAgICB1aW50MzJfdCBzeXN0ZW1Db2RlID0gMDsKIAogICAgICAgICAv
LyBOT1RFOiBDb250aW51ZWQgZnJvbSBzdGVwIDIuIG9mIE1lZGlhS2V5U2Vzc2lvbjo6dXBkYXRl
KCkKICAgICAgICAgLy8gMi4xLiBMZXQgY2RtIGJlIHRoZSBjZG0gbG9hZGVkIGluIHRoZSBNZWRp
YUtleXMgY29uc3RydWN0b3IuCkBAIC0yMTksNyArMjE5LDcgQEAgdm9pZCBNZWRpYUtleVNlc3Np
b246OnNlbmRNZXNzYWdlKFVpbnQ4QXJyYXkqIG1lc3NhZ2UsIFN0cmluZyBkZXN0aW5hdGlvblVS
TCkKICAgICBtX2FzeW5jRXZlbnRRdWV1ZS5lbnF1ZXVlRXZlbnQoZXZlbnQucmVsZWFzZSgpKTsK
IH0KIAotdm9pZCBNZWRpYUtleVNlc3Npb246OnNlbmRFcnJvcihDRE1TZXNzaW9uQ2xpZW50OjpN
ZWRpYUtleUVycm9yQ29kZSBlcnJvckNvZGUsIHVuc2lnbmVkIGxvbmcgc3lzdGVtQ29kZSkKK3Zv
aWQgTWVkaWFLZXlTZXNzaW9uOjpzZW5kRXJyb3IoQ0RNU2Vzc2lvbkNsaWVudDo6TWVkaWFLZXlF
cnJvckNvZGUgZXJyb3JDb2RlLCB1aW50MzJfdCBzeXN0ZW1Db2RlKQogewogICAgIFJlZjxNZWRp
YUtleUVycm9yPiBlcnJvciA9IE1lZGlhS2V5RXJyb3I6OmNyZWF0ZShlcnJvckNvZGUsIHN5c3Rl
bUNvZGUpLmdldCgpOwogICAgIHNldEVycm9yKGVycm9yLnB0cigpKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvZW5jcnlwdGVkbWVkaWEvTWVkaWFLZXlTZXNzaW9uLmggYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2VuY3J5cHRlZG1lZGlhL01lZGlhS2V5U2Vzc2lvbi5oCmlu
ZGV4IGE0NmRiYTQ3ZDE1N2JiN2FkYjY1NWU4NzkzYzFiMjYxNzk2NWI3MDcuLjRiNTE3MTQ4MDBk
ZWViMzc2Y2U2Yzg4ODBlYzNmZmM2MjQyZDIxOGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvZW5jcnlwdGVkbWVkaWEvTWVkaWFLZXlTZXNzaW9uLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9lbmNyeXB0ZWRtZWRpYS9NZWRpYUtleVNlc3Npb24uaApAQCAtODYsNyAr
ODYsNyBAQCBwcm90ZWN0ZWQ6CiAKICAgICAvLyBDRE1TZXNzaW9uQ2xpZW50CiAgICAgdmlydHVh
bCB2b2lkIHNlbmRNZXNzYWdlKFVpbnQ4QXJyYXkqLCBTdHJpbmcgZGVzdGluYXRpb25VUkwpIG92
ZXJyaWRlOwotICAgIHZpcnR1YWwgdm9pZCBzZW5kRXJyb3IoTWVkaWFLZXlFcnJvckNvZGUsIHVu
c2lnbmVkIGxvbmcgc3lzdGVtQ29kZSkgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIHNlbmRF
cnJvcihNZWRpYUtleUVycm9yQ29kZSwgdWludDMyX3Qgc3lzdGVtQ29kZSkgb3ZlcnJpZGU7CiAg
ICAgdmlydHVhbCBTdHJpbmcgbWVkaWFLZXlzU3RvcmFnZURpcmVjdG9yeSgpIGNvbnN0IG92ZXJy
aWRlOwogCiAgICAgTWVkaWFLZXlzKiBtX2tleXM7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL21lZGlhY29udHJvbHMvbWVkaWFDb250cm9sc0FwcGxlLmpzIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9tZWRpYWNvbnRyb2xzL21lZGlhQ29udHJvbHNBcHBsZS5qcwppbmRleCBi
NzU5MTA0ZjU0NWNlNmUyN2M3YjljYTYyMzJkNzU0NzJmMjc1ODM5Li4wN2QzN2Y4YTk1YTQyYTE0
NjU0ZjUyYjBkMmU2NGFjMWVmMzZlNDVkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL21lZGlhY29udHJvbHMvbWVkaWFDb250cm9sc0FwcGxlLmpzCisrKyBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvbWVkaWFjb250cm9scy9tZWRpYUNvbnRyb2xzQXBwbGUuanMKQEAgLTcwNiw2
ICs3MDYsNyBAQCBDb250cm9sbGVyLnByb3RvdHlwZSA9IHsKICAgICAgICAgdGhpcy51cGRhdGVX
aXJlbGVzc1RhcmdldFBpY2tlckJ1dHRvbigpOwogICAgICAgICB0aGlzLnVwZGF0ZVByb2dyZXNz
KCk7CiAgICAgICAgIHRoaXMudXBkYXRlQ29udHJvbHMoKTsKKyAgICAgICAgdGhpcy51cGRhdGVQ
bGF5aW5nKCk7CiAgICAgfSwKIAogICAgIGhhbmRsZVRpbWVVcGRhdGU6IGZ1bmN0aW9uKGV2ZW50
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5w
Ynhwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
CmluZGV4IDA5ZWI0OTg2YjdkY2MwNWRiYjMxMDJkZjhhZjI4YzkzZmRjNGQ1ZTQuLjJhMzk0Yzk5
ZjU2ZjZiMmM2NmEyNGY3N2NmYWFjNjliNTk2MmY2NDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTYwNjgsNiArNjA2OCw4IEBA
CiAJCUNEQzhCNUFBMTgwNDdGRjEwMDE2RTY4NSAvKiBTb3VyY2VCdWZmZXJQcml2YXRlQVZGT2Jq
Qy5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENEQzhC
NUE4MTgwNDdGRjEwMDE2RTY4NSAvKiBTb3VyY2VCdWZmZXJQcml2YXRlQVZGT2JqQy5tbSAqLzsg
fTsKIAkJQ0RDOEI1QUIxODA0N0ZGMTAwMTZFNjg1IC8qIFNvdXJjZUJ1ZmZlclByaXZhdGVBVkZP
YmpDLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDREM4
QjVBOTE4MDQ3RkYxMDAxNkU2ODUgLyogU291cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakMuaCAqLzsg
fTsKIAkJQ0RDOEI1QUQxODA0QUU1RDAwMTZFNjg1IC8qIFNvdXJjZUJ1ZmZlclByaXZhdGVDbGll
bnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENEQzhC
NUFDMTgwNEFFNUQwMDE2RTY4NSAvKiBTb3VyY2VCdWZmZXJQcml2YXRlQ2xpZW50LmggKi87IH07
CisJCUNEQzk3OUY0MUM0OThDMDkwMERCNTBENCAvKiBXZWJDb3JlTlNFcnJvckV4dHJhcy5tbSBp
biBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENEQzk3OUYyMUM0
OThDMDkwMERCNTBENCAvKiBXZWJDb3JlTlNFcnJvckV4dHJhcy5tbSAqLzsgfTsKKwkJQ0RDOTc5
RjUxQzQ5OEMwOTAwREI1MEQ0IC8qIFdlYkNvcmVOU0Vycm9yRXh0cmFzLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDREM5NzlGMzFDNDk4QzA5MDBEQjUw
RDQgLyogV2ViQ29yZU5TRXJyb3JFeHRyYXMuaCAqLzsgfTsKIAkJQ0RDQTgyOTYxNjc5MTAwRjAw
ODc1NzE0IC8qIFRleHRUcmFja1JlcHJlc2VudGF0aW9uSU9TLm1tIGluIFNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0RDQTgyOTQxNjc5MTAwRjAwODc1NzE0IC8q
IFRleHRUcmFja1JlcHJlc2VudGF0aW9uSU9TLm1tICovOyB9OwogCQlDRENBOThFQjE4QjJDOEVC
MDBDMTJGRjkgLyogQ0RNUHJpdmF0ZU1lZGlhUGxheWVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENEQ0E5OEVBMThCMkM4RUIwMEMxMkZGOSAvKiBD
RE1Qcml2YXRlTWVkaWFQbGF5ZXIuY3BwICovOyB9OwogCQlDRENGQUJCRDE4QzBBRjc4MDA2Rjg0
NTAgLyogU2VsZWN0aW9uU3VidHJlZVJvb3QuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IENEQ0ZBQkJCMThDMEFFMzEwMDZGODQ1MCAvKiBTZWxlY3Rpb25T
dWJ0cmVlUm9vdC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07
IH07CkBAIC0xMzk0Nyw2ICsxMzk0OSw4IEBACiAJCUNEQzhCNUE4MTgwNDdGRjEwMDE2RTY4NSAv
KiBTb3VyY2VCdWZmZXJQcml2YXRlQVZGT2JqQy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
Lm9iamNwcDsgcGF0aCA9IFNvdXJjZUJ1ZmZlclByaXZhdGVBVkZPYmpDLm1tOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQlDREM4QjVBOTE4MDQ3RkYxMDAxNkU2ODUgLyogU291cmNlQnVm
ZmVyUHJpdmF0ZUFWRk9iakMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU291
cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
Q0RDOEI1QUMxODA0QUU1RDAwMTZFNjg1IC8qIFNvdXJjZUJ1ZmZlclByaXZhdGVDbGllbnQuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU291cmNlQnVmZmVyUHJpdmF0ZUNsaWVu
dC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlDREM5NzlGMjFDNDk4QzA5MDBEQjUw
RDQgLyogV2ViQ29yZU5TRXJyb3JFeHRyYXMubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5v
YmpjcHA7IHBhdGggPSBXZWJDb3JlTlNFcnJvckV4dHJhcy5tbTsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKKwkJQ0RDOTc5RjMxQzQ5OEMwOTAwREI1MEQ0IC8qIFdlYkNvcmVOU0Vycm9yRXh0
cmFzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYkNvcmVOU0Vycm9yRXh0
cmFzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUNEQ0E4Mjk0MTY3OTEwMEYwMDg3
NTcxNCAvKiBUZXh0VHJhY2tSZXByZXNlbnRhdGlvbklPUy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLm9iamNwcDsgcGF0aCA9IFRleHRUcmFja1JlcHJlc2VudGF0aW9uSU9TLm1tOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlDRENBOThFOTE4QjJDOEQwMDBDMTJGRjkgLyogQ0RN
UHJpdmF0ZU1lZGlhUGxheWVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IENE
TVByaXZhdGVNZWRpYVBsYXllci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlDRENB
OThFQTE4QjJDOEVCMDBDMTJGRjkgLyogQ0RNUHJpdmF0ZU1lZGlhUGxheWVyLmNwcCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IENETVByaXZhdGVNZWRpYVBsYXllci5jcHA7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xOTc0Niw2ICsxOTc1MCw4IEBACiAJCQkJ
MzEwRDcxOTMxQjMzNUM5RDAwOUM3QjczIC8qIFRoZW1lQ29jb2EuY3BwICovLAogCQkJCTMxMEQ3
MTk0MUIzMzVDOUQwMDlDN0I3MyAvKiBUaGVtZUNvY29hLmggKi8sCiAJCQkJNDZEQjdENTYxQjIw
RkUzQzAwNTY1MUIyIC8qIFZOb2RlVHJhY2tlckNvY29hLmNwcCAqLywKKwkJCQlDREM5NzlGMjFD
NDk4QzA5MDBEQjUwRDQgLyogV2ViQ29yZU5TRXJyb3JFeHRyYXMubW0gKi8sCisJCQkJQ0RDOTc5
RjMxQzQ5OEMwOTAwREI1MEQ0IC8qIFdlYkNvcmVOU0Vycm9yRXh0cmFzLmggKi8sCiAJCQkpOwog
CQkJcGF0aCA9IGNvY29hOwogCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKQEAgLTI2NjM3LDYg
KzI2NjQzLDcgQEAKIAkJCQkzMTZGRTExQTBFNkUxREE3MDBCRjYwODggLyogS2V5ZnJhbWVBbmlt
YXRpb24uaCBpbiBIZWFkZXJzICovLAogCQkJCUJDNUVCQTExMEU4MjNFNDcwMEIyNTk2NSAvKiBL
ZXlmcmFtZUxpc3QuaCBpbiBIZWFkZXJzICovLAogCQkJCUUxNUZGN0Q1MThDOTU1MzgwMEZFNEM4
NyAvKiBLZXlwcmVzc0NvbW1hbmQuaCBpbiBIZWFkZXJzICovLAorCQkJCUNEQzk3OUY1MUM0OThD
MDkwMERCNTBENCAvKiBXZWJDb3JlTlNFcnJvckV4dHJhcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
NTIxRDQ2RjgxMUFFQzlCMTAwNTE0NjEzIC8qIEtpbGxSaW5nLmggaW4gSGVhZGVycyAqLywKIAkJ
CQk0NTBDRUJGMTE1MDczQkJFMDAyQkIxNDkgLyogTGFiZWxhYmxlRWxlbWVudC5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJQTQ1NkZBMjcxMUFENEE4MzAwMjBCNDIwIC8qIExhYmVsc05vZGVMaXN0Lmgg
aW4gSGVhZGVycyAqLywKQEAgLTI4ODM5LDYgKzI4ODQ2LDcgQEAKIAkJCQlFMTZBODRGOTE0Qzg1
Q0NDMDAyOTc3REYgLyogQ1NTQm9yZGVySW1hZ2UuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQkMy
NzRCMzExNDBFQkVEODAwRUFERkE2IC8qIENTU0JvcmRlckltYWdlU2xpY2VWYWx1ZS5jcHAgaW4g
U291cmNlcyAqLywKIAkJCQk0OUFFMkQ4RTEzNEVFNTBDMDA3MjkyMEEgLyogQ1NTQ2FsY3VsYXRp
b25WYWx1ZS5jcHAgaW4gU291cmNlcyAqLywKKwkJCQlDREM5NzlGNDFDNDk4QzA5MDBEQjUwRDQg
LyogV2ViQ29yZU5TRXJyb3JFeHRyYXMubW0gaW4gU291cmNlcyAqLywKIAkJCQlCQzYwNEE0MzBE
QjU2MzRFMDAyMDQ3MzkgLyogQ1NTQ2FudmFzVmFsdWUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJ
RTFFQkJCRDQwQUFDOUI4NzAwMUZFOEUyIC8qIENTU0NoYXJzZXRSdWxlLmNwcCBpbiBTb3VyY2Vz
ICovLAogCQkJCUJDRUE0NzhGMDk3Q0FBQzgwMDk0QzlFNCAvKiBDU1NDb21wdXRlZFN0eWxlRGVj
bGFyYXRpb24uY3BwIGluIFNvdXJjZXMgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9o
dG1sL01lZGlhS2V5RXJyb3IuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvTWVkaWFLZXlFcnJvci5o
CmluZGV4IDExNWM5NjE0Njc3M2ZlZDhiODU3N2M0YTE4MjYzODI5NTc0MGZmZTguLjQ4N2Q0NjVj
ZTdiMDhhOGRhZjViMzVlN2QxMWVkMjg0MDM3MTZjOGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2h0bWwvTWVkaWFLZXlFcnJvci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvTWVkaWFL
ZXlFcnJvci5oCkBAIC00NiwxMCArNDYsMTAgQEAgcHVibGljOgogICAgIH07CiAgICAgdHlwZWRl
ZiB1bnNpZ25lZCBzaG9ydCBDb2RlOwogCi0gICAgc3RhdGljIFJlZjxNZWRpYUtleUVycm9yPiBj
cmVhdGUoQ29kZSBjb2RlLCB1bnNpZ25lZCBsb25nIHN5c3RlbUNvZGUgPSAwKSB7IHJldHVybiBh
ZG9wdFJlZigqbmV3IE1lZGlhS2V5RXJyb3IoY29kZSwgc3lzdGVtQ29kZSkpOyB9CisgICAgc3Rh
dGljIFJlZjxNZWRpYUtleUVycm9yPiBjcmVhdGUoQ29kZSBjb2RlLCB1aW50MzJfdCBzeXN0ZW1D
b2RlID0gMCkgeyByZXR1cm4gYWRvcHRSZWYoKm5ldyBNZWRpYUtleUVycm9yKGNvZGUsIHN5c3Rl
bUNvZGUpKTsgfQogCiAgICAgQ29kZSBjb2RlKCkgY29uc3QgeyByZXR1cm4gbV9jb2RlOyB9Ci0g
ICAgdW5zaWduZWQgbG9uZyBzeXN0ZW1Db2RlKCkgeyByZXR1cm4gbV9zeXN0ZW1Db2RlOyB9Cisg
ICAgdWludDMyX3Qgc3lzdGVtQ29kZSgpIHsgcmV0dXJuIG1fc3lzdGVtQ29kZTsgfQogCiBwcml2
YXRlOgogICAgIGV4cGxpY2l0IE1lZGlhS2V5RXJyb3IoQ29kZSBjb2RlLCB1bnNpZ25lZCBsb25n
IHN5c3RlbUNvZGUpIDogbV9jb2RlKGNvZGUpLCBtX3N5c3RlbUNvZGUoc3lzdGVtQ29kZSkgeyB9
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL01lZGlhS2V5RXZlbnQuaCBiL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvTWVkaWFLZXlFdmVudC5oCmluZGV4IDc3NGRlMzBkYWQzY2RkOGMxZmVj
ZmQ4Mjc4OGE1NjkxOTA4Y2MzZjIuLmY5MTgzMjI5Y2U2OTg3OTAyZGZjZTFmMTI0MGJmNDk0MGNm
NTM1ZGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvTWVkaWFLZXlFdmVudC5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvTWVkaWFLZXlFdmVudC5oCkBAIC00Miw3ICs0Miw3IEBA
IHN0cnVjdCBNZWRpYUtleUV2ZW50SW5pdCA6IHB1YmxpYyBFdmVudEluaXQgewogICAgIFJlZlB0
cjxVaW50OEFycmF5PiBtZXNzYWdlOwogICAgIFN0cmluZyBkZWZhdWx0VVJMOwogICAgIFJlZlB0
cjxNZWRpYUtleUVycm9yPiBlcnJvckNvZGU7Ci0gICAgdW5zaWduZWQgc2hvcnQgc3lzdGVtQ29k
ZTsKKyAgICB1aW50MzJfdCBzeXN0ZW1Db2RlOwogfTsKIAogY2xhc3MgTWVkaWFLZXlFdmVudCBm
aW5hbCA6IHB1YmxpYyBFdmVudCB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9jb2NvYS9XZWJDb3JlTlNFcnJvckV4dHJhcy5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Y29jb2EvV2ViQ29yZU5TRXJyb3JFeHRyYXMuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mYjI0ZGQ0MTAyNjVjYWQ1
NDJmNmJhMTAyYjljZDhlY2E2MjIwNzc1Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vY29jb2EvV2ViQ29yZU5TRXJyb3JFeHRyYXMuaApAQCAtMCwwICsxLDM1IEBA
CisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJl
ZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVz
dCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAg
ZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRp
c3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElO
Qy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1Ig
SU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRI
RSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBB
IFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxM
IEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElS
RUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09O
U0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VS
RU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBE
QVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENB
VVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuCisgKi8KKworI2lmbmRlZiBXZWJDb3JlTlNFcnJvckV4dHJhc19oCisjZGVmaW5lIFdl
YkNvcmVOU0Vycm9yRXh0cmFzX2gKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitXRUJDT1JFX0VY
UE9SVCBsb25nIG1lZGlhS2V5RXJyb3JTeXN0ZW1Db2RlKE5TRXJyb3IgKik7CisKK30KKworI2Vu
ZGlmIC8vIFdlYkNvcmVOU0Vycm9yRXh0cmFzX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2NvY29hL1dlYkNvcmVOU0Vycm9yRXh0cmFzLm1tIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vY29jb2EvV2ViQ29yZU5TRXJyb3JFeHRyYXMubW0KbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNTIzOTlk
NjRhYTRhNWUxNjUxNGVmYmI3NGMwZDM0NTMwNzRlMjE4NQotLS0gL2Rldi9udWxsCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2NvY29hL1dlYkNvcmVOU0Vycm9yRXh0cmFzLm1tCkBAIC0w
LDAgKzEsNDYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgorICogCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1l
dDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmlu
YXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGlu
IHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVk
IHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVE
IEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5Z
IEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5P
IEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxF
IEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZ
LCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExP
U1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9O
KSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIg
SU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVH
TElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBV
U0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJ
VFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2ltcG9ydCAiY29uZmlnLmgiCisjaW1wb3J0ICJX
ZWJDb3JlTlNFcnJvckV4dHJhcy5oIgorCisjaW1wb3J0IDxBVkZvdW5kYXRpb24vQVZFcnJvci5o
PgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2xvbmcgbWVkaWFLZXlFcnJvclN5c3RlbUNvZGUo
TlNFcnJvciAqZXJyb3IpCit7CisgICAgTlNJbnRlZ2VyIGNvZGUgPSBbZXJyb3IgY29kZV07CisK
KyAgICBpZiAoY29kZSA9PSBBVkVycm9yVW5rbm93bikgeworICAgICAgICBOU0Vycm9yKiB1bmRl
cmx5aW5nRXJyb3IgPSBbZXJyb3IudXNlckluZm8gdmFsdWVGb3JLZXk6TlNVbmRlcmx5aW5nRXJy
b3JLZXldOworICAgICAgICBpZiAodW5kZXJseWluZ0Vycm9yICYmIFt1bmRlcmx5aW5nRXJyb3Ig
aXNLaW5kT2ZDbGFzczpbTlNFcnJvciBjbGFzc11dKQorICAgICAgICAgICAgcmV0dXJuIFt1bmRl
cmx5aW5nRXJyb3IgY29kZV07CisgICAgfQorCisgICAgcmV0dXJuIGNvZGU7Cit9CisKK30KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0NETVNlc3Npb24uaCBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0NETVNlc3Npb24uaAppbmRleCA0NTUx
NDA1MmE5MGJlODMwNjE0NzE3Yzc5YjEyZDYxN2I3NGJiMzkxLi5hNzFlYTVjY2I1ODMwMjU0NTM3
NTYyZjFjOTRjMjg1OTEwOTM2Y2MzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9DRE1TZXNzaW9uLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvQ0RNU2Vzc2lvbi5oCkBAIC00OSw3ICs0OSw3IEBAIHB1YmxpYzoKICAgICAgICAgTWVk
aWFLZXlFcnJvckRvbWFpbiwKICAgICB9OwogICAgIHR5cGVkZWYgdW5zaWduZWQgc2hvcnQgTWVk
aWFLZXlFcnJvckNvZGU7Ci0gICAgdmlydHVhbCB2b2lkIHNlbmRFcnJvcihNZWRpYUtleUVycm9y
Q29kZSwgdW5zaWduZWQgbG9uZyBzeXN0ZW1Db2RlKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIHNl
bmRFcnJvcihNZWRpYUtleUVycm9yQ29kZSwgdWludDMyX3Qgc3lzdGVtQ29kZSkgPSAwOwogCiAg
ICAgdmlydHVhbCBTdHJpbmcgbWVkaWFLZXlzU3RvcmFnZURpcmVjdG9yeSgpIGNvbnN0ID0gMDsK
IH07CkBAIC03MCw5ICs3MCw5IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIENETVNlc3Npb25UeXBl
IHR5cGUoKSB7IHJldHVybiBDRE1TZXNzaW9uVHlwZVVua25vd247IH0KICAgICB2aXJ0dWFsIHZv
aWQgc2V0Q2xpZW50KENETVNlc3Npb25DbGllbnQqKSA9IDA7CiAgICAgdmlydHVhbCBjb25zdCBT
dHJpbmcmIHNlc3Npb25JZCgpIGNvbnN0ID0gMDsKLSAgICB2aXJ0dWFsIFJlZlB0cjxVaW50OEFy
cmF5PiBnZW5lcmF0ZUtleVJlcXVlc3QoY29uc3QgU3RyaW5nJiBtaW1lVHlwZSwgVWludDhBcnJh
eSogaW5pdERhdGEsIFN0cmluZyYgZGVzdGluYXRpb25VUkwsIHVuc2lnbmVkIHNob3J0JiBlcnJv
ckNvZGUsIHVuc2lnbmVkIGxvbmcmIHN5c3RlbUNvZGUpID0gMDsKKyAgICB2aXJ0dWFsIFJlZlB0
cjxVaW50OEFycmF5PiBnZW5lcmF0ZUtleVJlcXVlc3QoY29uc3QgU3RyaW5nJiBtaW1lVHlwZSwg
VWludDhBcnJheSogaW5pdERhdGEsIFN0cmluZyYgZGVzdGluYXRpb25VUkwsIHVuc2lnbmVkIHNo
b3J0JiBlcnJvckNvZGUsIHVpbnQzMl90JiBzeXN0ZW1Db2RlKSA9IDA7CiAgICAgdmlydHVhbCB2
b2lkIHJlbGVhc2VLZXlzKCkgPSAwOwotICAgIHZpcnR1YWwgYm9vbCB1cGRhdGUoVWludDhBcnJh
eSosIFJlZlB0cjxVaW50OEFycmF5PiYgbmV4dE1lc3NhZ2UsIHVuc2lnbmVkIHNob3J0JiBlcnJv
ckNvZGUsIHVuc2lnbmVkIGxvbmcmIHN5c3RlbUNvZGUpID0gMDsKKyAgICB2aXJ0dWFsIGJvb2wg
dXBkYXRlKFVpbnQ4QXJyYXkqLCBSZWZQdHI8VWludDhBcnJheT4mIG5leHRNZXNzYWdlLCB1bnNp
Z25lZCBzaG9ydCYgZXJyb3JDb2RlLCB1aW50MzJfdCYgc3lzdGVtQ29kZSkgPSAwOwogICAgIHZp
cnR1YWwgUmVmUHRyPEFycmF5QnVmZmVyPiBjYWNoZWRLZXlGb3JLZXlJRChjb25zdCBTdHJpbmcm
KSBjb25zdCB7IHJldHVybiBudWxscHRyOyB9CiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9DRE1TZXNzaW9uQVZDb250
ZW50S2V5U2Vzc2lvbi5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3Vu
ZGF0aW9uL29iamMvQ0RNU2Vzc2lvbkFWQ29udGVudEtleVNlc3Npb24uaAppbmRleCA5MTg2ZmNj
NGNlMzU3YTlmYWY4MDM0ZmFiZjMzNTA3MTJkOTAyODczLi44NmRjNWFjNTlkY2FmYmM4YmVkYmE1
MGEzMzEwOWUxMGJmNmZjNDhiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9DRE1TZXNzaW9uQVZDb250ZW50S2V5U2Vzc2lvbi5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpj
L0NETVNlc3Npb25BVkNvbnRlbnRLZXlTZXNzaW9uLmgKQEAgLTQ5LDkgKzQ5LDkgQEAgcHVibGlj
OgogCiAgICAgLy8gQ0RNU2Vzc2lvbgogICAgIHZpcnR1YWwgQ0RNU2Vzc2lvblR5cGUgdHlwZSgp
IG92ZXJyaWRlIHsgcmV0dXJuIENETVNlc3Npb25UeXBlQVZDb250ZW50S2V5U2Vzc2lvbjsgfQot
ICAgIHZpcnR1YWwgUmVmUHRyPFVpbnQ4QXJyYXk+IGdlbmVyYXRlS2V5UmVxdWVzdChjb25zdCBT
dHJpbmcmIG1pbWVUeXBlLCBVaW50OEFycmF5KiBpbml0RGF0YSwgU3RyaW5nJiBkZXN0aW5hdGlv
blVSTCwgdW5zaWduZWQgc2hvcnQmIGVycm9yQ29kZSwgdW5zaWduZWQgbG9uZyYgc3lzdGVtQ29k
ZSkgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBSZWZQdHI8VWludDhBcnJheT4gZ2VuZXJhdGVLZXlS
ZXF1ZXN0KGNvbnN0IFN0cmluZyYgbWltZVR5cGUsIFVpbnQ4QXJyYXkqIGluaXREYXRhLCBTdHJp
bmcmIGRlc3RpbmF0aW9uVVJMLCB1bnNpZ25lZCBzaG9ydCYgZXJyb3JDb2RlLCB1aW50MzJfdCYg
c3lzdGVtQ29kZSkgb3ZlcnJpZGU7CiAgICAgdmlydHVhbCB2b2lkIHJlbGVhc2VLZXlzKCkgb3Zl
cnJpZGU7Ci0gICAgdmlydHVhbCBib29sIHVwZGF0ZShVaW50OEFycmF5KiBrZXksIFJlZlB0cjxV
aW50OEFycmF5PiYgbmV4dE1lc3NhZ2UsIHVuc2lnbmVkIHNob3J0JiBlcnJvckNvZGUsIHVuc2ln
bmVkIGxvbmcmIHN5c3RlbUNvZGUpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgYm9vbCB1cGRhdGUo
VWludDhBcnJheSoga2V5LCBSZWZQdHI8VWludDhBcnJheT4mIG5leHRNZXNzYWdlLCB1bnNpZ25l
ZCBzaG9ydCYgZXJyb3JDb2RlLCB1aW50MzJfdCYgc3lzdGVtQ29kZSkgb3ZlcnJpZGU7CiAKICAg
ICAvLyBDRE1TZXNzaW9uTWVkaWFTb3VyY2VBVkZPYmpDCiAgICAgdm9pZCBhZGRQYXJzZXIoQVZT
dHJlYW1EYXRhUGFyc2VyICopIG92ZXJyaWRlOwpAQCAtNjAsNyArNjAsNyBAQCBwdWJsaWM6CiAg
ICAgdm9pZCBkaWRQcm92aWRlQ29udGVudEtleVJlcXVlc3QoQVZDb250ZW50S2V5UmVxdWVzdCAq
KTsKIAogcHJvdGVjdGVkOgotICAgIFBhc3NSZWZQdHI8VWludDhBcnJheT4gZ2VuZXJhdGVLZXlS
ZWxlYXNlTWVzc2FnZSh1bnNpZ25lZCBzaG9ydCYgZXJyb3JDb2RlLCB1bnNpZ25lZCBsb25nJiBz
eXN0ZW1Db2RlKTsKKyAgICBQYXNzUmVmUHRyPFVpbnQ4QXJyYXk+IGdlbmVyYXRlS2V5UmVsZWFz
ZU1lc3NhZ2UodW5zaWduZWQgc2hvcnQmIGVycm9yQ29kZSwgdWludDMyX3QmIHN5c3RlbUNvZGUp
OwogCiAgICAgYm9vbCBoYXNDb250ZW50S2V5U2Vzc2lvbigpIGNvbnN0IHsgcmV0dXJuIG1fY29u
dGVudEtleVNlc3Npb247IH0KICAgICBBVkNvbnRlbnRLZXlTZXNzaW9uKiBjb250ZW50S2V5U2Vz
c2lvbigpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZm
b3VuZGF0aW9uL29iamMvQ0RNU2Vzc2lvbkFWQ29udGVudEtleVNlc3Npb24ubW0gYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9DRE1TZXNzaW9uQVZD
b250ZW50S2V5U2Vzc2lvbi5tbQppbmRleCA2MDI2YmM1YzIzMzRmODg1NmU4OWZhMmExYWRjMTZj
YjUxODlkM2M2Li43ZTZjZmVlNDQ4MDg3YzEzZmYzYzMyZmUzMDU3ZGE5N2I3NzhlN2JhIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2Jq
Yy9DRE1TZXNzaW9uQVZDb250ZW50S2V5U2Vzc2lvbi5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9DRE1TZXNzaW9uQVZDb250ZW50S2V5
U2Vzc2lvbi5tbQpAQCAtMzcsOSArMzcsOSBAQAogI2ltcG9ydCAiU29mdExpbmtpbmcuaCIKICNp
bXBvcnQgIlNvdXJjZUJ1ZmZlclByaXZhdGVBVkZPYmpDLmgiCiAjaW1wb3J0ICJVVUlELmgiCisj
aW1wb3J0ICJXZWJDb3JlTlNFcnJvckV4dHJhcy5oIgogI2ltcG9ydCA8QVZGb3VuZGF0aW9uL0FW
RXJyb3IuaD4KICNpbXBvcnQgPENvcmVNZWRpYS9DTUJhc2UuaD4KLSNpbXBvcnQgPGNzdGRsaWI+
CiAjaW1wb3J0IDxvYmpjL29iamMtcnVudGltZS5oPgogI2ltcG9ydCA8cnVudGltZS9UeXBlZEFy
cmF5SW5saW5lcy5oPgogI2ltcG9ydCA8d3RmL05ldmVyRGVzdHJveWVkLmg+CkBAIC0xNDQsNyAr
MTQ0LDcgQEAgYm9vbCBDRE1TZXNzaW9uQVZDb250ZW50S2V5U2Vzc2lvbjo6aXNBdmFpbGFibGUo
KQogICAgIHJldHVybiBnZXRBVkNvbnRlbnRLZXlTZXNzaW9uQ2xhc3MoKTsKIH0KIAotUmVmUHRy
PFVpbnQ4QXJyYXk+IENETVNlc3Npb25BVkNvbnRlbnRLZXlTZXNzaW9uOjpnZW5lcmF0ZUtleVJl
cXVlc3QoY29uc3QgU3RyaW5nJiBtaW1lVHlwZSwgVWludDhBcnJheSogaW5pdERhdGEsIFN0cmlu
ZyYgZGVzdGluYXRpb25VUkwsIHVuc2lnbmVkIHNob3J0JiBlcnJvckNvZGUsIHVuc2lnbmVkIGxv
bmcmIHN5c3RlbUNvZGUpCitSZWZQdHI8VWludDhBcnJheT4gQ0RNU2Vzc2lvbkFWQ29udGVudEtl
eVNlc3Npb246OmdlbmVyYXRlS2V5UmVxdWVzdChjb25zdCBTdHJpbmcmIG1pbWVUeXBlLCBVaW50
OEFycmF5KiBpbml0RGF0YSwgU3RyaW5nJiBkZXN0aW5hdGlvblVSTCwgdW5zaWduZWQgc2hvcnQm
IGVycm9yQ29kZSwgdWludDMyX3QmIHN5c3RlbUNvZGUpCiB7CiAgICAgVU5VU0VEX1BBUkFNKG1p
bWVUeXBlKTsKICAgICBVTlVTRURfUEFSQU0oZGVzdGluYXRpb25VUkwpOwpAQCAtMjI4LDcgKzIy
OCw3IEBAIHN0YXRpYyBib29sIGlzRXF1YWwoVWludDhBcnJheSogZGF0YSwgY29uc3QgY2hhciog
bGl0ZXJhbCkKICAgICByZXR1cm4gIWxpdGVyYWxbbGVuZ3RoXTsKIH0KIAotYm9vbCBDRE1TZXNz
aW9uQVZDb250ZW50S2V5U2Vzc2lvbjo6dXBkYXRlKFVpbnQ4QXJyYXkqIGtleSwgUmVmUHRyPFVp
bnQ4QXJyYXk+JiBuZXh0TWVzc2FnZSwgdW5zaWduZWQgc2hvcnQmIGVycm9yQ29kZSwgdW5zaWdu
ZWQgbG9uZyYgc3lzdGVtQ29kZSkKK2Jvb2wgQ0RNU2Vzc2lvbkFWQ29udGVudEtleVNlc3Npb246
OnVwZGF0ZShVaW50OEFycmF5KiBrZXksIFJlZlB0cjxVaW50OEFycmF5PiYgbmV4dE1lc3NhZ2Us
IHVuc2lnbmVkIHNob3J0JiBlcnJvckNvZGUsIHVpbnQzMl90JiBzeXN0ZW1Db2RlKQogewogICAg
IFVOVVNFRF9QQVJBTShuZXh0TWVzc2FnZSk7CiAKQEAgLTI4MSw5ICsyODEsMTUgQEAgYm9vbCBD
RE1TZXNzaW9uQVZDb250ZW50S2V5U2Vzc2lvbjo6dXBkYXRlKFVpbnQ4QXJyYXkqIGtleSwgUmVm
UHRyPFVpbnQ4QXJyYXk+JgogCiAgICAgICAgIGVycm9yQ29kZSA9IE1lZGlhUGxheWVyOjpOb0Vy
cm9yOwogICAgICAgICBzeXN0ZW1Db2RlID0gMDsKLSAgICAgICAgTlNEYXRhKiByZXF1ZXN0RGF0
YSA9IFttX2tleVJlcXVlc3QgY29udGVudEtleVJlcXVlc3REYXRhRm9yQXBwOmNlcnRpZmljYXRl
RGF0YS5nZXQoKSBjb250ZW50SWRlbnRpZmllcjpuaWwgb3B0aW9uczpvcHRpb25zLmdldCgpIGVy
cm9yOm5pbF07Ci0gICAgICAgIG5leHRNZXNzYWdlID0gVWludDhBcnJheTo6Y3JlYXRlKHN0YXRp
Y19jYXN0PGNvbnN0IHVpbnQ4X3QqPihbcmVxdWVzdERhdGEgYnl0ZXNdKSwgW3JlcXVlc3REYXRh
IGxlbmd0aF0pOworICAgICAgICBOU0Vycm9yKiBlcnJvciA9IG5pbDsKKyAgICAgICAgTlNEYXRh
KiByZXF1ZXN0RGF0YSA9IFttX2tleVJlcXVlc3QgY29udGVudEtleVJlcXVlc3REYXRhRm9yQXBw
OmNlcnRpZmljYXRlRGF0YS5nZXQoKSBjb250ZW50SWRlbnRpZmllcjpuaWwgb3B0aW9uczpvcHRp
b25zLmdldCgpIGVycm9yOiZlcnJvcl07CisgICAgICAgIGlmIChlcnJvcikgeworICAgICAgICAg
ICAgZXJyb3JDb2RlID0gTWVkaWFQbGF5ZXJDbGllbnQ6OkRvbWFpbkVycm9yOworICAgICAgICAg
ICAgc3lzdGVtQ29kZSA9IG1lZGlhS2V5RXJyb3JTeXN0ZW1Db2RlKGVycm9yKTsKKyAgICAgICAg
ICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgfQogCisgICAgICAgIG5leHRNZXNzYWdlID0gVWlu
dDhBcnJheTo6Y3JlYXRlKHN0YXRpY19jYXN0PGNvbnN0IHVpbnQ4X3QqPihbcmVxdWVzdERhdGEg
Ynl0ZXNdKSwgW3JlcXVlc3REYXRhIGxlbmd0aF0pOwogICAgICAgICByZXR1cm4gZmFsc2U7CiAg
ICAgfQogCkBAIC0zMDYsNyArMzEyLDcgQEAgdm9pZCBDRE1TZXNzaW9uQVZDb250ZW50S2V5U2Vz
c2lvbjo6cmVtb3ZlUGFyc2VyKEFWU3RyZWFtRGF0YVBhcnNlciogcGFyc2VyKQogICAgIFtjb250
ZW50S2V5U2Vzc2lvbigpIHJlbW92ZVN0cmVhbURhdGFQYXJzZXI6cGFyc2VyXTsKIH0KIAotUGFz
c1JlZlB0cjxVaW50OEFycmF5PiBDRE1TZXNzaW9uQVZDb250ZW50S2V5U2Vzc2lvbjo6Z2VuZXJh
dGVLZXlSZWxlYXNlTWVzc2FnZSh1bnNpZ25lZCBzaG9ydCYgZXJyb3JDb2RlLCB1bnNpZ25lZCBs
b25nJiBzeXN0ZW1Db2RlKQorUGFzc1JlZlB0cjxVaW50OEFycmF5PiBDRE1TZXNzaW9uQVZDb250
ZW50S2V5U2Vzc2lvbjo6Z2VuZXJhdGVLZXlSZWxlYXNlTWVzc2FnZSh1bnNpZ25lZCBzaG9ydCYg
ZXJyb3JDb2RlLCB1aW50MzJfdCYgc3lzdGVtQ29kZSkKIHsKICAgICBBU1NFUlQobV9tb2RlID09
IEtleVJlbGVhc2UpOwogICAgIG1fY2VydGlmaWNhdGUgPSBtX2luaXREYXRhOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvQ0RN
U2Vzc2lvbkFWRm91bmRhdGlvbk9iakMuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2F2Zm91bmRhdGlvbi9vYmpjL0NETVNlc3Npb25BVkZvdW5kYXRpb25PYmpDLmgKaW5kZXgg
NWQ5MzA3Mzc4YjFhZTM3NmQ1NzViN2I0NmI1MjRkZTFkODYwNWU3MS4uMGViMTI1YzEwNzQxODYy
ZWVkMzEyZGRhMTViN2E4OTA1MmFhYzQwYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvQ0RNU2Vzc2lvbkFWRm91bmRhdGlvbk9i
akMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24v
b2JqYy9DRE1TZXNzaW9uQVZGb3VuZGF0aW9uT2JqQy5oCkBAIC00NSw5ICs0NSw5IEBAIHB1Ymxp
YzoKICAgICB2aXJ0dWFsIENETVNlc3Npb25UeXBlIHR5cGUoKSBvdmVycmlkZSB7IHJldHVybiBD
RE1TZXNzaW9uVHlwZUFWRm91bmRhdGlvbk9iakM7IH0KICAgICB2aXJ0dWFsIHZvaWQgc2V0Q2xp
ZW50KENETVNlc3Npb25DbGllbnQqIGNsaWVudCkgb3ZlcnJpZGUgeyBtX2NsaWVudCA9IGNsaWVu
dDsgfQogICAgIHZpcnR1YWwgY29uc3QgU3RyaW5nJiBzZXNzaW9uSWQoKSBjb25zdCBvdmVycmlk
ZSB7IHJldHVybiBtX3Nlc3Npb25JZDsgfQotICAgIHZpcnR1YWwgUmVmUHRyPFVpbnQ4QXJyYXk+
IGdlbmVyYXRlS2V5UmVxdWVzdChjb25zdCBTdHJpbmcmIG1pbWVUeXBlLCBVaW50OEFycmF5KiBp
bml0RGF0YSwgU3RyaW5nJiBkZXN0aW5hdGlvblVSTCwgdW5zaWduZWQgc2hvcnQmIGVycm9yQ29k
ZSwgdW5zaWduZWQgbG9uZyYgc3lzdGVtQ29kZSkgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBSZWZQ
dHI8VWludDhBcnJheT4gZ2VuZXJhdGVLZXlSZXF1ZXN0KGNvbnN0IFN0cmluZyYgbWltZVR5cGUs
IFVpbnQ4QXJyYXkqIGluaXREYXRhLCBTdHJpbmcmIGRlc3RpbmF0aW9uVVJMLCB1bnNpZ25lZCBz
aG9ydCYgZXJyb3JDb2RlLCB1aW50MzJfdCYgc3lzdGVtQ29kZSkgb3ZlcnJpZGU7CiAgICAgdmly
dHVhbCB2b2lkIHJlbGVhc2VLZXlzKCkgb3ZlcnJpZGU7Ci0gICAgdmlydHVhbCBib29sIHVwZGF0
ZShVaW50OEFycmF5KiwgUmVmUHRyPFVpbnQ4QXJyYXk+JiBuZXh0TWVzc2FnZSwgdW5zaWduZWQg
c2hvcnQmIGVycm9yQ29kZSwgdW5zaWduZWQgbG9uZyYgc3lzdGVtQ29kZSkgb3ZlcnJpZGU7Cisg
ICAgdmlydHVhbCBib29sIHVwZGF0ZShVaW50OEFycmF5KiwgUmVmUHRyPFVpbnQ4QXJyYXk+JiBu
ZXh0TWVzc2FnZSwgdW5zaWduZWQgc2hvcnQmIGVycm9yQ29kZSwgdWludDMyX3QmIHN5c3RlbUNv
ZGUpIG92ZXJyaWRlOwogCiBwcm90ZWN0ZWQ6CiAgICAgTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3Vu
ZGF0aW9uT2JqQyogbV9wYXJlbnQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9DRE1TZXNzaW9uQVZGb3VuZGF0aW9uT2JqQy5t
bSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL0NE
TVNlc3Npb25BVkZvdW5kYXRpb25PYmpDLm1tCmluZGV4IGNiZGUxOTg5NWFjOTdlNzAxMThiM2Q4
ZjkxZGQyZTUyYTIwZTFhZDMuLjA4MTA4N2I1NjExMjQ1NmU5MzJhNDI4ZWM1MzdmODE5NzdjOGUy
ZmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRh
dGlvbi9vYmpjL0NETVNlc3Npb25BVkZvdW5kYXRpb25PYmpDLm1tCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL0NETVNlc3Npb25BVkZvdW5k
YXRpb25PYmpDLm1tCkBAIC0zNSw2ICszNSw3IEBACiAjaW1wb3J0ICJNZWRpYVBsYXllclByaXZh
dGVBVkZvdW5kYXRpb25PYmpDLmgiCiAjaW1wb3J0ICJTb2Z0TGlua2luZy5oIgogI2ltcG9ydCAi
VVVJRC5oIgorI2ltcG9ydCAiV2ViQ29yZU5TRXJyb3JFeHRyYXMuaCIKICNpbXBvcnQgPEFWRm91
bmRhdGlvbi9BVkZvdW5kYXRpb24uaD4KICNpbXBvcnQgPG9iamMvb2JqYy1ydW50aW1lLmg+CiAK
QEAgLTUzLDcgKzU0LDcgQEAgQ0RNU2Vzc2lvbkFWRm91bmRhdGlvbk9iakM6OkNETVNlc3Npb25B
VkZvdW5kYXRpb25PYmpDKE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmQKIHsKIH0KIAotUmVmUHRy
PFVpbnQ4QXJyYXk+IENETVNlc3Npb25BVkZvdW5kYXRpb25PYmpDOjpnZW5lcmF0ZUtleVJlcXVl
c3QoY29uc3QgU3RyaW5nJiBtaW1lVHlwZSwgVWludDhBcnJheSogaW5pdERhdGEsIFN0cmluZyYg
ZGVzdGluYXRpb25VUkwsIHVuc2lnbmVkIHNob3J0JiBlcnJvckNvZGUsIHVuc2lnbmVkIGxvbmcm
IHN5c3RlbUNvZGUpCitSZWZQdHI8VWludDhBcnJheT4gQ0RNU2Vzc2lvbkFWRm91bmRhdGlvbk9i
akM6OmdlbmVyYXRlS2V5UmVxdWVzdChjb25zdCBTdHJpbmcmIG1pbWVUeXBlLCBVaW50OEFycmF5
KiBpbml0RGF0YSwgU3RyaW5nJiBkZXN0aW5hdGlvblVSTCwgdW5zaWduZWQgc2hvcnQmIGVycm9y
Q29kZSwgdWludDMyX3QmIHN5c3RlbUNvZGUpCiB7CiAgICAgVU5VU0VEX1BBUkFNKG1pbWVUeXBl
KTsKIApAQCAtNjEsMTMgKzYyLDEzIEBAIFJlZlB0cjxVaW50OEFycmF5PiBDRE1TZXNzaW9uQVZG
b3VuZGF0aW9uT2JqQzo6Z2VuZXJhdGVLZXlSZXF1ZXN0KGNvbnN0IFN0cmluZyYKICAgICBTdHJp
bmcga2V5SUQ7CiAgICAgUmVmUHRyPFVpbnQ4QXJyYXk+IGNlcnRpZmljYXRlOwogICAgIGlmICgh
TWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6ZXh0cmFjdEtleVVSSUtleUlEQW5k
Q2VydGlmaWNhdGVGcm9tSW5pdERhdGEoaW5pdERhdGEsIGtleVVSSSwga2V5SUQsIGNlcnRpZmlj
YXRlKSkgewotICAgICAgICBlcnJvckNvZGUgPSBNZWRpYVBsYXllcjo6SW52YWxpZFBsYXllclN0
YXRlOworICAgICAgICBlcnJvckNvZGUgPSBDRE06OlVua25vd25FcnJvcjsKICAgICAgICAgcmV0
dXJuIG51bGxwdHI7CiAgICAgfQogCiAgICAgbV9yZXF1ZXN0ID0gbV9wYXJlbnQtPnRha2VSZXF1
ZXN0Rm9yS2V5VVJJKGtleVVSSSk7CiAgICAgaWYgKCFtX3JlcXVlc3QpIHsKLSAgICAgICAgZXJy
b3JDb2RlID0gTWVkaWFQbGF5ZXI6OkludmFsaWRQbGF5ZXJTdGF0ZTsKKyAgICAgICAgZXJyb3JD
b2RlID0gQ0RNOjpVbmtub3duRXJyb3I7CiAgICAgICAgIHJldHVybiBudWxscHRyOwogICAgIH0K
IApAQCAtNzgsOCArNzksOCBAQCBSZWZQdHI8VWludDhBcnJheT4gQ0RNU2Vzc2lvbkFWRm91bmRh
dGlvbk9iakM6OmdlbmVyYXRlS2V5UmVxdWVzdChjb25zdCBTdHJpbmcmCiAgICAgUmV0YWluUHRy
PE5TRGF0YT4ga2V5UmVxdWVzdCA9IFttX3JlcXVlc3Qgc3RyZWFtaW5nQ29udGVudEtleVJlcXVl
c3REYXRhRm9yQXBwOmNlcnRpZmljYXRlRGF0YS5nZXQoKSBjb250ZW50SWRlbnRpZmllcjphc3Nl
dElELmdldCgpIG9wdGlvbnM6bmlsIGVycm9yOiZuc0Vycm9yXTsKIAogICAgIGlmICgha2V5UmVx
dWVzdCkgewotICAgICAgICBOU0Vycm9yKiB1bmRlcmx5aW5nRXJyb3IgPSBbW25zRXJyb3IgdXNl
ckluZm9dIG9iamVjdEZvcktleTpOU1VuZGVybHlpbmdFcnJvcktleV07Ci0gICAgICAgIHN5c3Rl
bUNvZGUgPSBbdW5kZXJseWluZ0Vycm9yIGNvZGVdOworICAgICAgICBlcnJvckNvZGUgPSBDRE06
OkRvbWFpbkVycm9yOworICAgICAgICBzeXN0ZW1Db2RlID0gbWVkaWFLZXlFcnJvclN5c3RlbUNv
ZGUobnNFcnJvcik7CiAgICAgICAgIHJldHVybiBudWxscHRyOwogICAgIH0KIApAQCAtOTUsNyAr
OTYsNyBAQCB2b2lkIENETVNlc3Npb25BVkZvdW5kYXRpb25PYmpDOjpyZWxlYXNlS2V5cygpCiB7
CiB9CiAKLWJvb2wgQ0RNU2Vzc2lvbkFWRm91bmRhdGlvbk9iakM6OnVwZGF0ZShVaW50OEFycmF5
KiBrZXksIFJlZlB0cjxVaW50OEFycmF5PiYgbmV4dE1lc3NhZ2UsIHVuc2lnbmVkIHNob3J0JiBl
cnJvckNvZGUsIHVuc2lnbmVkIGxvbmcmIHN5c3RlbUNvZGUpCitib29sIENETVNlc3Npb25BVkZv
dW5kYXRpb25PYmpDOjp1cGRhdGUoVWludDhBcnJheSoga2V5LCBSZWZQdHI8VWludDhBcnJheT4m
IG5leHRNZXNzYWdlLCB1bnNpZ25lZCBzaG9ydCYgZXJyb3JDb2RlLCB1aW50MzJfdCYgc3lzdGVt
Q29kZSkKIHsKICAgICBSZXRhaW5QdHI8TlNEYXRhPiBrZXlEYXRhID0gYWRvcHROUyhbW05TRGF0
YSBhbGxvY10gaW5pdFdpdGhCeXRlczprZXktPmJhc2VBZGRyZXNzKCkgbGVuZ3RoOmtleS0+Ynl0
ZUxlbmd0aCgpXSk7CiAgICAgW1ttX3JlcXVlc3QgZGF0YVJlcXVlc3RdIHJlc3BvbmRXaXRoRGF0
YTprZXlEYXRhLmdldCgpXTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL0NETVNlc3Npb25BVlN0cmVhbVNlc3Npb24uaCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL0NETVNlc3Np
b25BVlN0cmVhbVNlc3Npb24uaAppbmRleCBkYTU3YzQ3MzZiNmFlMzQ5MTNmYzRlOTY0NDI1OGE1
ZjM5MWQ2MTNlLi40NTY3ZjQyODI1NjkyNDFkMjYxZjBiMDI4MTQ2MzA3YmYzYmFkMTQwIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2Jq
Yy9DRE1TZXNzaW9uQVZTdHJlYW1TZXNzaW9uLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvQ0RNU2Vzc2lvbkFWU3RyZWFtU2Vzc2lvbi5o
CkBAIC00Nyw5ICs0Nyw5IEBAIHB1YmxpYzoKIAogICAgIC8vIENETVNlc3Npb24KICAgICB2aXJ0
dWFsIENETVNlc3Npb25UeXBlIHR5cGUoKSBvdmVycmlkZSB7IHJldHVybiBDRE1TZXNzaW9uVHlw
ZUFWU3RyZWFtU2Vzc2lvbjsgfQotICAgIHZpcnR1YWwgUmVmUHRyPFVpbnQ4QXJyYXk+IGdlbmVy
YXRlS2V5UmVxdWVzdChjb25zdCBTdHJpbmcmIG1pbWVUeXBlLCBVaW50OEFycmF5KiBpbml0RGF0
YSwgU3RyaW5nJiBkZXN0aW5hdGlvblVSTCwgdW5zaWduZWQgc2hvcnQmIGVycm9yQ29kZSwgdW5z
aWduZWQgbG9uZyYgc3lzdGVtQ29kZSkgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBSZWZQdHI8VWlu
dDhBcnJheT4gZ2VuZXJhdGVLZXlSZXF1ZXN0KGNvbnN0IFN0cmluZyYgbWltZVR5cGUsIFVpbnQ4
QXJyYXkqIGluaXREYXRhLCBTdHJpbmcmIGRlc3RpbmF0aW9uVVJMLCB1bnNpZ25lZCBzaG9ydCYg
ZXJyb3JDb2RlLCB1aW50MzJfdCYgc3lzdGVtQ29kZSkgb3ZlcnJpZGU7CiAgICAgdmlydHVhbCB2
b2lkIHJlbGVhc2VLZXlzKCkgb3ZlcnJpZGU7Ci0gICAgdmlydHVhbCBib29sIHVwZGF0ZShVaW50
OEFycmF5KiwgUmVmUHRyPFVpbnQ4QXJyYXk+JiBuZXh0TWVzc2FnZSwgdW5zaWduZWQgc2hvcnQm
IGVycm9yQ29kZSwgdW5zaWduZWQgbG9uZyYgc3lzdGVtQ29kZSkgb3ZlcnJpZGU7CisgICAgdmly
dHVhbCBib29sIHVwZGF0ZShVaW50OEFycmF5KiwgUmVmUHRyPFVpbnQ4QXJyYXk+JiBuZXh0TWVz
c2FnZSwgdW5zaWduZWQgc2hvcnQmIGVycm9yQ29kZSwgdWludDMyX3QmIHN5c3RlbUNvZGUpIG92
ZXJyaWRlOwogCiAgICAgLy8gQ0RNU2Vzc2lvbk1lZGlhU291cmNlQVZGT2JqQwogICAgIHZvaWQg
YWRkUGFyc2VyKEFWU3RyZWFtRGF0YVBhcnNlciopIG92ZXJyaWRlOwpAQCAtNTgsNyArNTgsNyBA
QCBwdWJsaWM6CiAgICAgdm9pZCBzZXRTdHJlYW1TZXNzaW9uKEFWU3RyZWFtU2Vzc2lvbiopOwog
CiBwcm90ZWN0ZWQ6Ci0gICAgUGFzc1JlZlB0cjxVaW50OEFycmF5PiBnZW5lcmF0ZUtleVJlbGVh
c2VNZXNzYWdlKHVuc2lnbmVkIHNob3J0JiBlcnJvckNvZGUsIHVuc2lnbmVkIGxvbmcmIHN5c3Rl
bUNvZGUpOworICAgIFBhc3NSZWZQdHI8VWludDhBcnJheT4gZ2VuZXJhdGVLZXlSZWxlYXNlTWVz
c2FnZSh1bnNpZ25lZCBzaG9ydCYgZXJyb3JDb2RlLCB1aW50MzJfdCBzeXN0ZW1Db2RlKTsKIAog
ICAgIFdlYWtQdHJGYWN0b3J5PENETVNlc3Npb25BVlN0cmVhbVNlc3Npb24+IG1fd2Vha1B0ckZh
Y3Rvcnk7CiAgICAgUmV0YWluUHRyPEFWU3RyZWFtU2Vzc2lvbj4gbV9zdHJlYW1TZXNzaW9uOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9u
L29iamMvQ0RNU2Vzc2lvbkFWU3RyZWFtU2Vzc2lvbi5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL0NETVNlc3Npb25BVlN0cmVhbVNlc3Npb24u
bW0KaW5kZXggN2RiOGJmODNkZWM3YTRlMTU4ODc1MDgxNjY3MzJmYTJiZDgwZGRmYy4uOTBhYWFm
MDNmNjdhOTFhN2I1ZjIyNWMzZTA3NDQxNjU0NTNjMjllNiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvQ0RNU2Vzc2lvbkFWU3Ry
ZWFtU2Vzc2lvbi5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZv
dW5kYXRpb24vb2JqYy9DRE1TZXNzaW9uQVZTdHJlYW1TZXNzaW9uLm1tCkBAIC0zNyw5ICszNyw5
IEBACiAjaW1wb3J0ICJTb2Z0TGlua2luZy5oIgogI2ltcG9ydCAiU291cmNlQnVmZmVyUHJpdmF0
ZUFWRk9iakMuaCIKICNpbXBvcnQgIlVVSUQuaCIKKyNpbXBvcnQgIldlYkNvcmVOU0Vycm9yRXh0
cmFzLmgiCiAjaW1wb3J0IDxBVkZvdW5kYXRpb24vQVZFcnJvci5oPgogI2ltcG9ydCA8Q29yZU1l
ZGlhL0NNQmFzZS5oPgotI2ltcG9ydCA8Y3N0ZGxpYj4KICNpbXBvcnQgPG9iamMvb2JqYy1ydW50
aW1lLmg+CiAjaW1wb3J0IDxydW50aW1lL1R5cGVkQXJyYXlJbmxpbmVzLmg+CiAjaW1wb3J0IDx3
dGYvTmV2ZXJEZXN0cm95ZWQuaD4KQEAgLTExMiw3ICsxMTIsNyBAQCBDRE1TZXNzaW9uQVZTdHJl
YW1TZXNzaW9uOjp+Q0RNU2Vzc2lvbkFWU3RyZWFtU2Vzc2lvbigpCiAgICAgICAgIHJlbW92ZVBh
cnNlcihzb3VyY2VCdWZmZXItPnBhcnNlcigpKTsKIH0KIAotUmVmUHRyPFVpbnQ4QXJyYXk+IENE
TVNlc3Npb25BVlN0cmVhbVNlc3Npb246OmdlbmVyYXRlS2V5UmVxdWVzdChjb25zdCBTdHJpbmcm
IG1pbWVUeXBlLCBVaW50OEFycmF5KiBpbml0RGF0YSwgU3RyaW5nJiBkZXN0aW5hdGlvblVSTCwg
dW5zaWduZWQgc2hvcnQmIGVycm9yQ29kZSwgdW5zaWduZWQgbG9uZyYgc3lzdGVtQ29kZSkKK1Jl
ZlB0cjxVaW50OEFycmF5PiBDRE1TZXNzaW9uQVZTdHJlYW1TZXNzaW9uOjpnZW5lcmF0ZUtleVJl
cXVlc3QoY29uc3QgU3RyaW5nJiBtaW1lVHlwZSwgVWludDhBcnJheSogaW5pdERhdGEsIFN0cmlu
ZyYgZGVzdGluYXRpb25VUkwsIHVuc2lnbmVkIHNob3J0JiBlcnJvckNvZGUsIHVpbnQzMl90JiBz
eXN0ZW1Db2RlKQogewogICAgIFVOVVNFRF9QQVJBTShtaW1lVHlwZSk7CiAgICAgVU5VU0VEX1BB
UkFNKGRlc3RpbmF0aW9uVVJMKTsKQEAgLTE4Nyw3ICsxODcsNyBAQCBzdGF0aWMgYm9vbCBpc0Vx
dWFsKFVpbnQ4QXJyYXkqIGRhdGEsIGNvbnN0IGNoYXIqIGxpdGVyYWwpCiAgICAgcmV0dXJuICFs
aXRlcmFsW2xlbmd0aF07CiB9CiAKLWJvb2wgQ0RNU2Vzc2lvbkFWU3RyZWFtU2Vzc2lvbjo6dXBk
YXRlKFVpbnQ4QXJyYXkqIGtleSwgUmVmUHRyPFVpbnQ4QXJyYXk+JiBuZXh0TWVzc2FnZSwgdW5z
aWduZWQgc2hvcnQmIGVycm9yQ29kZSwgdW5zaWduZWQgbG9uZyYgc3lzdGVtQ29kZSkKK2Jvb2wg
Q0RNU2Vzc2lvbkFWU3RyZWFtU2Vzc2lvbjo6dXBkYXRlKFVpbnQ4QXJyYXkqIGtleSwgUmVmUHRy
PFVpbnQ4QXJyYXk+JiBuZXh0TWVzc2FnZSwgdW5zaWduZWQgc2hvcnQmIGVycm9yQ29kZSwgdWlu
dDMyX3QmIHN5c3RlbUNvZGUpCiB7CiAgICAgYm9vbCBzaG91bGRHZW5lcmF0ZUtleVJlcXVlc3Qg
PSAhbV9jZXJ0aWZpY2F0ZSB8fCBpc0VxdWFsKGtleSwgInJlbmV3Iik7CiAgICAgaWYgKCFtX2Nl
cnRpZmljYXRlKSB7CkBAIC0yNTUsNyArMjU1LDcgQEAgYm9vbCBDRE1TZXNzaW9uQVZTdHJlYW1T
ZXNzaW9uOjp1cGRhdGUoVWludDhBcnJheSoga2V5LCBSZWZQdHI8VWludDhBcnJheT4mIG5leHQK
ICAgICAgICAgaWYgKGVycm9yKSB7CiAgICAgICAgICAgICBMT0coTWVkaWEsICJDRE1TZXNzaW9u
QVZTdHJlYW1TZXNzaW9uOjp1cGRhdGUoJXApIC0gZXJyb3I6JUAiLCB0aGlzLCBbZXJyb3IgZGVz
Y3JpcHRpb25dKTsKICAgICAgICAgICAgIGVycm9yQ29kZSA9IE1lZGlhUGxheWVyOjpJbnZhbGlk
UGxheWVyU3RhdGU7Ci0gICAgICAgICAgICBzeXN0ZW1Db2RlID0gc3RkOjphYnMoc3lzdGVtQ29k
ZUZvckVycm9yKGVycm9yKSk7CisgICAgICAgICAgICBzeXN0ZW1Db2RlID0gbWVkaWFLZXlFcnJv
clN5c3RlbUNvZGUoZXJyb3IpOwogICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgICB9
CiAKQEAgLTMwNCw3ICszMDQsNyBAQCB2b2lkIENETVNlc3Npb25BVlN0cmVhbVNlc3Npb246OnJl
bW92ZVBhcnNlcihBVlN0cmVhbURhdGFQYXJzZXIqIHBhcnNlcikKICAgICAgICAgW21fc3RyZWFt
U2Vzc2lvbiByZW1vdmVTdHJlYW1EYXRhUGFyc2VyOnBhcnNlcl07CiB9CiAKLVBhc3NSZWZQdHI8
VWludDhBcnJheT4gQ0RNU2Vzc2lvbkFWU3RyZWFtU2Vzc2lvbjo6Z2VuZXJhdGVLZXlSZWxlYXNl
TWVzc2FnZSh1bnNpZ25lZCBzaG9ydCYgZXJyb3JDb2RlLCB1bnNpZ25lZCBsb25nJiBzeXN0ZW1D
b2RlKQorUGFzc1JlZlB0cjxVaW50OEFycmF5PiBDRE1TZXNzaW9uQVZTdHJlYW1TZXNzaW9uOjpn
ZW5lcmF0ZUtleVJlbGVhc2VNZXNzYWdlKHVuc2lnbmVkIHNob3J0JiBlcnJvckNvZGUsIHVpbnQz
Ml90IHN5c3RlbUNvZGUpCiB7CiAgICAgQVNTRVJUKG1fbW9kZSA9PSBLZXlSZWxlYXNlKTsKICAg
ICBtX2NlcnRpZmljYXRlID0gbV9pbml0RGF0YTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL0NETVNlc3Npb25NZWRpYVNvdXJj
ZUFWRk9iakMuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlv
bi9vYmpjL0NETVNlc3Npb25NZWRpYVNvdXJjZUFWRk9iakMuaAppbmRleCA3NWE0NDhiOTVjNjQx
OTQxODgxMWMxMjFhMGE3NDNmZjNiMDMyZTdhLi41NDVkODZhOWVhMWExYmM5NzkxYmZmMzMzNjVh
NzA3ZTY2MTIwMTNmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9hdmZvdW5kYXRpb24vb2JqYy9DRE1TZXNzaW9uTWVkaWFTb3VyY2VBVkZPYmpDLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvQ0RNU2Vz
c2lvbk1lZGlhU291cmNlQVZGT2JqQy5oCkBAIC02Myw3ICs2Myw2IEBAIHB1YmxpYzoKICAgICB2
b2lkIGludmFsaWRhdGVDRE0oKSB7IG1fY2RtID0gbnVsbHB0cjsgfQogCiBwcm90ZWN0ZWQ6Ci0g
ICAgc3RhdGljIGxvbmcgc3lzdGVtQ29kZUZvckVycm9yKE5TRXJyb3IgKik7CiAgICAgU3RyaW5n
IHN0b3JhZ2VQYXRoKCkgY29uc3Q7CiAKICAgICBDRE1Qcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpD
KiBtX2NkbTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2
Zm91bmRhdGlvbi9vYmpjL0NETVNlc3Npb25NZWRpYVNvdXJjZUFWRk9iakMubW0gYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9DRE1TZXNzaW9uTWVk
aWFTb3VyY2VBVkZPYmpDLm1tCmluZGV4IDQyY2I4OGNkNGFiNGMyZGFkMGE1OWMzNDkzNGRlN2Jl
Yjc4ZGQ4OTkuLjA0ZmEzNWZjOWE2ZTU4YjQxMmQ0OGE0Mjk5ZjY5MmRjMTBmODg3NDUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpj
L0NETVNlc3Npb25NZWRpYVNvdXJjZUFWRk9iakMubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvQ0RNU2Vzc2lvbk1lZGlhU291cmNlQVZG
T2JqQy5tbQpAQCAtMzAsOCArMzAsOCBAQAogCiAjaW1wb3J0ICJDRE1Qcml2YXRlTWVkaWFTb3Vy
Y2VBVkZPYmpDLmgiCiAjaW1wb3J0ICJGaWxlU3lzdGVtLmgiCisjaW1wb3J0ICJXZWJDb3JlTlNF
cnJvckV4dHJhcy5oIgogI2ltcG9ydCA8QVZGb3VuZGF0aW9uL0FWRXJyb3IuaD4KLSNpbXBvcnQg
PGNzdGRsaWI+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIApAQCAtNTIsNyArNTIsNyBAQCB2b2lk
IENETVNlc3Npb25NZWRpYVNvdXJjZUFWRk9iakM6OmxheWVyRGlkUmVjZWl2ZUVycm9yKEFWU2Ft
cGxlQnVmZmVyRGlzcGxheUxheQogICAgIGlmICghbV9jbGllbnQpCiAgICAgICAgIHJldHVybjsK
IAotICAgIHVuc2lnbmVkIGxvbmcgY29kZSA9IHN0ZDo6YWJzKHN5c3RlbUNvZGVGb3JFcnJvcihl
cnJvcikpOworICAgIHVuc2lnbmVkIGxvbmcgY29kZSA9IG1lZGlhS2V5RXJyb3JTeXN0ZW1Db2Rl
KGVycm9yKTsKIAogICAgIC8vIEZJWE1FKDE0MjI0Nik6IFJlbW92ZSB0aGUgZm9sbG93aW5nIG9u
Y2UgPHJkYXI6Ly9wcm9ibGVtLzIwMDI3NDM0PiBpcyByZXNvbHZlZC4KICAgICBzaG91bGRJZ25v
cmUgPSBtX3N0b3BwZWQgJiYgY29kZSA9PSAxMjc4NTsKQEAgLTY1LDcgKzY1LDcgQEAgdm9pZCBD
RE1TZXNzaW9uTWVkaWFTb3VyY2VBVkZPYmpDOjpyZW5kZXJlckRpZFJlY2VpdmVFcnJvcihBVlNh
bXBsZUJ1ZmZlckF1ZGlvUmUKICAgICBpZiAoIW1fY2xpZW50KQogICAgICAgICByZXR1cm47CiAK
LSAgICB1bnNpZ25lZCBsb25nIGNvZGUgPSBzdGQ6OmFicyhzeXN0ZW1Db2RlRm9yRXJyb3IoZXJy
b3IpKTsKKyAgICB1bnNpZ25lZCBsb25nIGNvZGUgPSBtZWRpYUtleUVycm9yU3lzdGVtQ29kZShl
cnJvcik7CiAKICAgICAvLyBGSVhNRSgxNDIyNDYpOiBSZW1vdmUgdGhlIGZvbGxvd2luZyBvbmNl
IDxyZGFyOi8vcHJvYmxlbS8yMDAyNzQzND4gaXMgcmVzb2x2ZWQuCiAgICAgc2hvdWxkSWdub3Jl
ID0gbV9zdG9wcGVkICYmIGNvZGUgPT0gMTI3ODU7CkBAIC05NiwxOSArOTYsNiBAQCB2b2lkIENE
TVNlc3Npb25NZWRpYVNvdXJjZUFWRk9iakM6OnJlbW92ZVNvdXJjZUJ1ZmZlcihTb3VyY2VCdWZm
ZXJQcml2YXRlQVZGT2JqQwogICAgIG1fc291cmNlQnVmZmVycy5yZW1vdmUobV9zb3VyY2VCdWZm
ZXJzLmZpbmQoc291cmNlQnVmZmVyKSk7CiB9CiAKLWxvbmcgQ0RNU2Vzc2lvbk1lZGlhU291cmNl
QVZGT2JqQzo6c3lzdGVtQ29kZUZvckVycm9yKE5TRXJyb3IgKmVycm9yKQotewotICAgIE5TSW50
ZWdlciBjb2RlID0gW2Vycm9yIGNvZGVdOwotICAgIGlmIChjb2RlICE9IEFWRXJyb3JVbmtub3du
KQotICAgICAgICByZXR1cm4gY29kZTsKLQotICAgIE5TRXJyb3IqIHVuZGVybHlpbmdFcnJvciA9
IFtlcnJvci51c2VySW5mbyB2YWx1ZUZvcktleTpOU1VuZGVybHlpbmdFcnJvcktleV07Ci0gICAg
aWYgKCF1bmRlcmx5aW5nRXJyb3IgfHwgIVt1bmRlcmx5aW5nRXJyb3IgaXNLaW5kT2ZDbGFzczpb
TlNFcnJvciBjbGFzc11dKQotICAgICAgICByZXR1cm4gY29kZTsKLQotICAgIHJldHVybiBbdW5k
ZXJseWluZ0Vycm9yIGNvZGVdOwotfQotCiBTdHJpbmcgQ0RNU2Vzc2lvbk1lZGlhU291cmNlQVZG
T2JqQzo6c3RvcmFnZVBhdGgoKSBjb25zdAogewogICAgIHJldHVybiBtX2NsaWVudCA/IHBhdGhC
eUFwcGVuZGluZ0NvbXBvbmVudChtX2NsaWVudC0+bWVkaWFLZXlzU3RvcmFnZURpcmVjdG9yeSgp
LCAiU2VjdXJlU3RvcC5wbGlzdCIpIDogZW1wdHlTdHJpbmcoKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3Rlc3RpbmcvTW9ja0NETS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL01v
Y2tDRE0uY3BwCmluZGV4IGI3MzRmZmRhNTRlZTE2MDBjNmU5NjlkZmM0YjlmZjQxNWVhM2M0OTYu
LmM0Yjg4ZDNiMjU3YjhhZTAxMDBlMDA1ZDQxMTI0ZjM3NjJhMTU5YWUgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3Rlc3RpbmcvTW9ja0NETS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvdGVz
dGluZy9Nb2NrQ0RNLmNwcApAQCAtNDQsOSArNDQsOSBAQCBwdWJsaWM6CiAKICAgICB2aXJ0dWFs
IHZvaWQgc2V0Q2xpZW50KENETVNlc3Npb25DbGllbnQqIGNsaWVudCkgb3ZlcnJpZGUgeyBtX2Ns
aWVudCA9IGNsaWVudDsgfQogICAgIHZpcnR1YWwgY29uc3QgU3RyaW5nJiBzZXNzaW9uSWQoKSBj
b25zdCBvdmVycmlkZSB7IHJldHVybiBtX3Nlc3Npb25JZDsgfQotICAgIHZpcnR1YWwgUmVmUHRy
PFVpbnQ4QXJyYXk+IGdlbmVyYXRlS2V5UmVxdWVzdChjb25zdCBTdHJpbmcmIG1pbWVUeXBlLCBV
aW50OEFycmF5KiBpbml0RGF0YSwgU3RyaW5nJiBkZXN0aW5hdGlvblVSTCwgdW5zaWduZWQgc2hv
cnQmIGVycm9yQ29kZSwgdW5zaWduZWQgbG9uZyYgc3lzdGVtQ29kZSkgb3ZlcnJpZGU7CisgICAg
dmlydHVhbCBSZWZQdHI8VWludDhBcnJheT4gZ2VuZXJhdGVLZXlSZXF1ZXN0KGNvbnN0IFN0cmlu
ZyYgbWltZVR5cGUsIFVpbnQ4QXJyYXkqIGluaXREYXRhLCBTdHJpbmcmIGRlc3RpbmF0aW9uVVJM
LCB1bnNpZ25lZCBzaG9ydCYgZXJyb3JDb2RlLCB1aW50MzJfdCYgc3lzdGVtQ29kZSkgb3ZlcnJp
ZGU7CiAgICAgdmlydHVhbCB2b2lkIHJlbGVhc2VLZXlzKCkgb3ZlcnJpZGU7Ci0gICAgdmlydHVh
bCBib29sIHVwZGF0ZShVaW50OEFycmF5KiwgUmVmUHRyPFVpbnQ4QXJyYXk+JiBuZXh0TWVzc2Fn
ZSwgdW5zaWduZWQgc2hvcnQmIGVycm9yQ29kZSwgdW5zaWduZWQgbG9uZyYgc3lzdGVtQ29kZSkg
b3ZlcnJpZGU7CisgICAgdmlydHVhbCBib29sIHVwZGF0ZShVaW50OEFycmF5KiwgUmVmUHRyPFVp
bnQ4QXJyYXk+JiBuZXh0TWVzc2FnZSwgdW5zaWduZWQgc2hvcnQmIGVycm9yQ29kZSwgdWludDMy
X3QmIHN5c3RlbUNvZGUpIG92ZXJyaWRlOwogCiBwcm90ZWN0ZWQ6CiAgICAgQ0RNU2Vzc2lvbkNs
aWVudCogbV9jbGllbnQ7CkBAIC0xMTIsNyArMTEyLDcgQEAgTW9ja0NETVNlc3Npb246Ok1vY2tD
RE1TZXNzaW9uKENETVNlc3Npb25DbGllbnQqIGNsaWVudCkKIHsKIH0KIAotUmVmUHRyPFVpbnQ4
QXJyYXk+IE1vY2tDRE1TZXNzaW9uOjpnZW5lcmF0ZUtleVJlcXVlc3QoY29uc3QgU3RyaW5nJiwg
VWludDhBcnJheSogaW5pdERhdGEsIFN0cmluZyYsIHVuc2lnbmVkIHNob3J0JiBlcnJvckNvZGUs
IHVuc2lnbmVkIGxvbmcmKQorUmVmUHRyPFVpbnQ4QXJyYXk+IE1vY2tDRE1TZXNzaW9uOjpnZW5l
cmF0ZUtleVJlcXVlc3QoY29uc3QgU3RyaW5nJiwgVWludDhBcnJheSogaW5pdERhdGEsIFN0cmlu
ZyYsIHVuc2lnbmVkIHNob3J0JiBlcnJvckNvZGUsIHVpbnQzMl90JikKIHsKICAgICBmb3IgKHVu
c2lnbmVkIGkgPSAwOyBpIDwgaW5pdERhdGFQcmVmaXgoKS0+bGVuZ3RoKCk7ICsraSkgewogICAg
ICAgICBpZiAoIWluaXREYXRhIHx8IGkgPj0gaW5pdERhdGEtPmxlbmd0aCgpIHx8IGluaXREYXRh
LT5pdGVtKGkpICE9IGluaXREYXRhUHJlZml4KCktPml0ZW0oaSkpIHsKQEAgLTEyOCw3ICsxMjgs
NyBAQCB2b2lkIE1vY2tDRE1TZXNzaW9uOjpyZWxlYXNlS2V5cygpCiAgICAgLy8gbm8tb3AKIH0K
IAotYm9vbCBNb2NrQ0RNU2Vzc2lvbjo6dXBkYXRlKFVpbnQ4QXJyYXkqIGtleSwgUmVmUHRyPFVp
bnQ4QXJyYXk+JiwgdW5zaWduZWQgc2hvcnQmIGVycm9yQ29kZSwgdW5zaWduZWQgbG9uZyYpCiti
b29sIE1vY2tDRE1TZXNzaW9uOjp1cGRhdGUoVWludDhBcnJheSoga2V5LCBSZWZQdHI8VWludDhB
cnJheT4mLCB1bnNpZ25lZCBzaG9ydCYgZXJyb3JDb2RlLCB1aW50MzJfdCYpCiB7CiAgICAgZm9y
ICh1bnNpZ25lZCBpID0gMDsgaSA8IGtleVByZWZpeCgpLT5sZW5ndGgoKTsgKytpKSB7CiAgICAg
ICAgIGlmIChpID49IGtleS0+bGVuZ3RoKCkgfHwga2V5LT5pdGVtKGkpICE9IGtleVByZWZpeCgp
LT5pdGVtKGkpKSB7Cg==
</data>
<flag name="review"
          id="294217"
          type_id="1"
          status="+"
          setter="eric.carlson"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>269339</attachid>
            <date>2016-01-19 21:51:23 -0800</date>
            <delta_ts>2016-01-19 22:43:59 -0800</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-151963-20160119215053.patch</filename>
            <type>text/plain</type>
            <size>43469</size>
            <attacher name="Jer Noble">jer.noble</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTk1MzAwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNDY4NzUyZjMyNjhlNzM3
ZWFjOTJhZTFlNTExZGRkNWM0MDg3MTU5NC4uYWRkOWQ0ZWM4N2RhZTVjN2RlOWJhMzliZGQyMjRl
ZDEyNTgwYzIxNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDY1IEBACisyMDE1LTEyLTA3ICBKZXIg
Tm9ibGUgIDxqZXIubm9ibGVAYXBwbGUuY29tPgorCisgICAgICAgIFtFTUVdIENvcnJlY3RseSBy
ZXBvcnQgZXJyb3JzIHdoZW4gZ2VuZXJhdGluZyBrZXkgcmVxdWVzdHMgZnJvbSBBVkNvbnRlbnRL
ZXlTZXNzaW9uLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MTUxOTYzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgRXJpYyBDYXJsc29uLgorCisgICAgICAg
IFdlYklETCdzICJ1bnNpZ25lZCBsb25nIiBpcyBhIDMyLWJpdCB1bnNpZ25lZCBpbnRlZ2VyLCBh
bmQgQysrJ3MgInVuc2lnbmVkIGxvbmciIGlzIChvciwgY2FuCisgICAgICAgIGJlKSBhIDY0LWJp
dCBpbnRlZ2VyIG9uIDY0LWJpdCBwbGF0Zm9ybXMuIENhc3RpbmcgYSBuZWdhdGl2ZSBpbnRlZ2Vy
IHRvIGEgNjQtYml0IGludGVnZXIKKyAgICAgICAgcmVzdWx0cyBpbiBhIG51bWJlciB3aGljaCBj
YW5ub3QgYmUgYWNjdXJhdGVseSBzdG9yZWQgaW4gYSBkb3VibGUtbGVuZ3RoIGZsb2F0aW5nIHBv
aW50CisgICAgICAgIG51bWJlci4gUHJldmlvdXNseSwgdGhlIG1hYyBDRE0gY29kZSB3b3VsZCB3
b3JrIGFyb3VuZCB0aGlzIGlzc3VlIGJ5IHJldHVybmluZyB0aGUgYWJzb2x1dGUKKyAgICAgICAg
dmFsdWUgb2YgTlNFcnJvciBjb2RlIHJldHVybmVkIGJ5IG1lZGlhIGZyYW1ld29ya3MuIEluc3Rl
YWQsIGZpeCB0aGUgdW5kZXJseWluZyBwcm9ibGVtIGJ5CisgICAgICAgIHN0b3JpbmcgdGhlIE1l
ZGlhS2V5RXJyb3IncyBzeXN0ZW1Db2RlIGFzIGEgdWludDMyX3QgKHdoaWNoIG1vcmUgYWNjdXJh
dGVseSByZXByZXNlbnRzIHRoZQorICAgICAgICBzaXplIG9mIGEgV2ViSURMICJ1bnNpZ25lZCBs
b25nIiBvbiBhbGwgcGxhdGZvcm1zLikKKworICAgICAgICBDaGVjayB0aGUgZXJyb3IgY29kZSBp
c3N1ZWQgYnkgLWNvbnRlbnRLZXlSZXF1ZXN0RGF0YUZvckFwcDpjb250ZW50SWRlbnRpZmllcjpv
cHRpb25zOmVycm9yOi4KKworICAgICAgICAqIE1vZHVsZXMvZW5jcnlwdGVkbWVkaWEvQ0RNLmg6
CisgICAgICAgICogTW9kdWxlcy9lbmNyeXB0ZWRtZWRpYS9DRE1TZXNzaW9uQ2xlYXJLZXkuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6Q0RNU2Vzc2lvbkNsZWFyS2V5OjpnZW5lcmF0ZUtleVJlcXVl
c3QpOgorICAgICAgICAoV2ViQ29yZTo6Q0RNU2Vzc2lvbkNsZWFyS2V5Ojp1cGRhdGUpOgorICAg
ICAgICAqIE1vZHVsZXMvZW5jcnlwdGVkbWVkaWEvQ0RNU2Vzc2lvbkNsZWFyS2V5Lmg6CisgICAg
ICAgICogTW9kdWxlcy9lbmNyeXB0ZWRtZWRpYS9NZWRpYUtleVNlc3Npb24uY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6TWVkaWFLZXlTZXNzaW9uOjprZXlSZXF1ZXN0VGltZXJGaXJlZCk6CisgICAg
ICAgIChXZWJDb3JlOjpNZWRpYUtleVNlc3Npb246OmFkZEtleVRpbWVyRmlyZWQpOgorICAgICAg
ICAoV2ViQ29yZTo6TWVkaWFLZXlTZXNzaW9uOjpzZW5kRXJyb3IpOgorICAgICAgICAqIE1vZHVs
ZXMvZW5jcnlwdGVkbWVkaWEvTWVkaWFLZXlTZXNzaW9uLmg6CisgICAgICAgICogTW9kdWxlcy9t
ZWRpYWNvbnRyb2xzL21lZGlhQ29udHJvbHNBcHBsZS5qczoKKyAgICAgICAgKENvbnRyb2xsZXIu
cHJvdG90eXBlLmhhbmRsZVJlYWR5U3RhdGVDaGFuZ2UpOgorICAgICAgICAqIFdlYkNvcmUueGNv
ZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBodG1sL01lZGlhS2V5RXJyb3IuaDoK
KyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhS2V5RXJyb3I6OmNyZWF0ZSk6CisgICAgICAgIChXZWJD
b3JlOjpNZWRpYUtleUVycm9yOjpzeXN0ZW1Db2RlKToKKyAgICAgICAgKiBodG1sL01lZGlhS2V5
RXZlbnQuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9DRE1TZXNzaW9uLmg6CisgICAg
ICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL2NmL0NETVNlc3Npb25BVkZvdW5k
YXRpb25DRi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDRE1TZXNzaW9uQVZGb3VuZGF0aW9uQ0Y6
OmdlbmVyYXRlS2V5UmVxdWVzdCk6CisgICAgICAgIChXZWJDb3JlOjpDRE1TZXNzaW9uQVZGb3Vu
ZGF0aW9uQ0Y6OnVwZGF0ZSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0
aW9uL2NmL0NETVNlc3Npb25BVkZvdW5kYXRpb25DRi5oOgorICAgICAgICAqIHBsYXRmb3JtL2dy
YXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL0NETVNlc3Npb25BVkNvbnRlbnRLZXlTZXNzaW9uLmg6
CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvQ0RNU2Vzc2lv
bkFWQ29udGVudEtleVNlc3Npb24ubW06CisgICAgICAgIChXZWJDb3JlOjpDRE1TZXNzaW9uQVZD
b250ZW50S2V5U2Vzc2lvbjo6Z2VuZXJhdGVLZXlSZXF1ZXN0KToKKyAgICAgICAgKFdlYkNvcmU6
OkNETVNlc3Npb25BVkNvbnRlbnRLZXlTZXNzaW9uOjp1cGRhdGUpOgorICAgICAgICAoV2ViQ29y
ZTo6Q0RNU2Vzc2lvbkFWQ29udGVudEtleVNlc3Npb246OmdlbmVyYXRlS2V5UmVsZWFzZU1lc3Nh
Z2UpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL0NETVNl
c3Npb25BVkZvdW5kYXRpb25PYmpDLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvYXZm
b3VuZGF0aW9uL29iamMvQ0RNU2Vzc2lvbkFWRm91bmRhdGlvbk9iakMubW06CisgICAgICAgIChX
ZWJDb3JlOjpDRE1TZXNzaW9uQVZGb3VuZGF0aW9uT2JqQzo6Z2VuZXJhdGVLZXlSZXF1ZXN0KToK
KyAgICAgICAgKFdlYkNvcmU6OkNETVNlc3Npb25BVkZvdW5kYXRpb25PYmpDOjp1cGRhdGUpOgor
ICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL0NETVNlc3Npb25B
VlN0cmVhbVNlc3Npb24uaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRp
b24vb2JqYy9DRE1TZXNzaW9uQVZTdHJlYW1TZXNzaW9uLm1tOgorICAgICAgICAoV2ViQ29yZTo6
Q0RNU2Vzc2lvbkFWU3RyZWFtU2Vzc2lvbjo6Z2VuZXJhdGVLZXlSZXF1ZXN0KToKKyAgICAgICAg
KFdlYkNvcmU6OkNETVNlc3Npb25BVlN0cmVhbVNlc3Npb246OnVwZGF0ZSk6CisgICAgICAgIChX
ZWJDb3JlOjpDRE1TZXNzaW9uQVZTdHJlYW1TZXNzaW9uOjpnZW5lcmF0ZUtleVJlbGVhc2VNZXNz
YWdlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9DRE1T
ZXNzaW9uTWVkaWFTb3VyY2VBVkZPYmpDLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mv
YXZmb3VuZGF0aW9uL29iamMvQ0RNU2Vzc2lvbk1lZGlhU291cmNlQVZGT2JqQy5tbToKKyAgICAg
ICAgKFdlYkNvcmU6OkNETVNlc3Npb25NZWRpYVNvdXJjZUFWRk9iakM6OmxheWVyRGlkUmVjZWl2
ZUVycm9yKToKKyAgICAgICAgKFdlYkNvcmU6OkNETVNlc3Npb25NZWRpYVNvdXJjZUFWRk9iakM6
OnJlbmRlcmVyRGlkUmVjZWl2ZUVycm9yKToKKyAgICAgICAgKFdlYkNvcmU6OkNETVNlc3Npb25N
ZWRpYVNvdXJjZUFWRk9iakM6OnN5c3RlbUNvZGVGb3JFcnJvcik6IERlbGV0ZWQuCisgICAgICAg
ICogdGVzdGluZy9Nb2NrQ0RNLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok1vY2tDRE1TZXNzaW9u
OjpnZW5lcmF0ZUtleVJlcXVlc3QpOgorICAgICAgICAoV2ViQ29yZTo6TW9ja0NETVNlc3Npb246
OnVwZGF0ZSk6MjAxNi0wMS0xNSAgU2ltb24gRnJhc2VyICA8c2ltb24uZnJhc2VyQGFwcGxlLmNv
bT4KKwogMjAxNi0wMS0xOSAgRW5yaWNhIENhc3VjY2kgIDxlbnJpY2FAYXBwbGUuY29tPgogCiAg
ICAgICAgIEFkZCBzdXBwb3J0IGZvciBEYXRhRGV0ZWN0b3JzIGluIFdLIChpT1MpLgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9lbmNyeXB0ZWRtZWRpYS9DRE0uaCBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvZW5jcnlwdGVkbWVkaWEvQ0RNLmgKaW5kZXggOWJmZDFiYzI1NzA1
ZmZmNTZkMjNhZWQ3ZDEwZTM0M2RhOWMwMDY3Yi4uODFkMmRhOWZjZjMwMjAxNTI1Y2JkZmQ0YTBm
YzBiNTA3NGU3YjM0MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9lbmNyeXB0
ZWRtZWRpYS9DRE0uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2VuY3J5cHRlZG1lZGlh
L0NETS5oCkBAIC01NSw3ICs1NSw3IEBAIGNsYXNzIENETSB7CiBwdWJsaWM6CiAgICAgZXhwbGlj
aXQgQ0RNKGNvbnN0IFN0cmluZyYga2V5U3lzdGVtKTsKIAotICAgIGVudW0gQ0RNRXJyb3JDb2Rl
IHsgVW5rbm93bkVycm9yID0gMSwgQ2xpZW50RXJyb3IsIFNlcnZpY2VFcnJvciwgT3V0cHV0RXJy
b3IsIEhhcmR3YXJlQ2hhbmdlRXJyb3IsIERvbWFpbkVycm9yIH07CisgICAgZW51bSBDRE1FcnJv
ckNvZGUgeyBOb0Vycm9yLCBVbmtub3duRXJyb3IsIENsaWVudEVycm9yLCBTZXJ2aWNlRXJyb3Is
IE91dHB1dEVycm9yLCBIYXJkd2FyZUNoYW5nZUVycm9yLCBEb21haW5FcnJvciB9OwogICAgIHN0
YXRpYyBib29sIHN1cHBvcnRzS2V5U3lzdGVtKGNvbnN0IFN0cmluZyYpOwogICAgIHN0YXRpYyBi
b29sIGtleVN5c3RlbVN1cHBvcnRzTWltZVR5cGUoY29uc3QgU3RyaW5nJiBrZXlTeXN0ZW0sIGNv
bnN0IFN0cmluZyYgbWltZVR5cGUpOwogICAgIHN0YXRpYyBzdGQ6OnVuaXF1ZV9wdHI8Q0RNPiBj
cmVhdGUoY29uc3QgU3RyaW5nJiBrZXlTeXN0ZW0pOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9lbmNyeXB0ZWRtZWRpYS9DRE1TZXNzaW9uQ2xlYXJLZXkuY3BwIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9lbmNyeXB0ZWRtZWRpYS9DRE1TZXNzaW9uQ2xlYXJLZXkuY3BwCmlu
ZGV4IDllYzc5N2YwYzE0MWNkNWYzYTc5YzdlNzUxMjZjNGFlMWY0Y2UwMjMuLjU4OWFjZDIyNjk1
NDFmYTU2NjUyMjUwZjQ2MGNhMzdiMmI3Yjg0ODggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvZW5jcnlwdGVkbWVkaWEvQ0RNU2Vzc2lvbkNsZWFyS2V5LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL2VuY3J5cHRlZG1lZGlhL0NETVNlc3Npb25DbGVhcktleS5jcHAK
QEAgLTY5LDcgKzY5LDcgQEAgQ0RNU2Vzc2lvbkNsZWFyS2V5Ojp+Q0RNU2Vzc2lvbkNsZWFyS2V5
KCkKIHsKIH0KIAotUmVmUHRyPFVpbnQ4QXJyYXk+IENETVNlc3Npb25DbGVhcktleTo6Z2VuZXJh
dGVLZXlSZXF1ZXN0KGNvbnN0IFN0cmluZyYgbWltZVR5cGUsIFVpbnQ4QXJyYXkqIGluaXREYXRh
LCBTdHJpbmcmIGRlc3RpbmF0aW9uVVJMLCB1bnNpZ25lZCBzaG9ydCYgZXJyb3JDb2RlLCB1bnNp
Z25lZCBsb25nJiBzeXN0ZW1Db2RlKQorUmVmUHRyPFVpbnQ4QXJyYXk+IENETVNlc3Npb25DbGVh
cktleTo6Z2VuZXJhdGVLZXlSZXF1ZXN0KGNvbnN0IFN0cmluZyYgbWltZVR5cGUsIFVpbnQ4QXJy
YXkqIGluaXREYXRhLCBTdHJpbmcmIGRlc3RpbmF0aW9uVVJMLCB1bnNpZ25lZCBzaG9ydCYgZXJy
b3JDb2RlLCB1aW50MzJfdCYgc3lzdGVtQ29kZSkKIHsKICAgICBVTlVTRURfUEFSQU0obWltZVR5
cGUpOwogICAgIFVOVVNFRF9QQVJBTShkZXN0aW5hdGlvblVSTCk7CkBAIC05Niw3ICs5Niw3IEBA
IHZvaWQgQ0RNU2Vzc2lvbkNsZWFyS2V5OjpyZWxlYXNlS2V5cygpCiAgICAgbV9jYWNoZWRLZXlz
LmNsZWFyKCk7CiB9CiAKLWJvb2wgQ0RNU2Vzc2lvbkNsZWFyS2V5Ojp1cGRhdGUoVWludDhBcnJh
eSogcmF3S2V5c0RhdGEsIFJlZlB0cjxVaW50OEFycmF5PiYgbmV4dE1lc3NhZ2UsIHVuc2lnbmVk
IHNob3J0JiBlcnJvckNvZGUsIHVuc2lnbmVkIGxvbmcmIHN5c3RlbUNvZGUpCitib29sIENETVNl
c3Npb25DbGVhcktleTo6dXBkYXRlKFVpbnQ4QXJyYXkqIHJhd0tleXNEYXRhLCBSZWZQdHI8VWlu
dDhBcnJheT4mIG5leHRNZXNzYWdlLCB1bnNpZ25lZCBzaG9ydCYgZXJyb3JDb2RlLCB1aW50MzJf
dCYgc3lzdGVtQ29kZSkKIHsKICAgICBVTlVTRURfUEFSQU0obmV4dE1lc3NhZ2UpOwogICAgIFVO
VVNFRF9QQVJBTShzeXN0ZW1Db2RlKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvZW5jcnlwdGVkbWVkaWEvQ0RNU2Vzc2lvbkNsZWFyS2V5LmggYi9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL2VuY3J5cHRlZG1lZGlhL0NETVNlc3Npb25DbGVhcktleS5oCmluZGV4IGU1MDlmYjZh
NjdhZmRlMjcyYWQwOTc5NWY4NjFhYTI5NjNkNzhjYzIuLjQ2Mjg3MDk0YWE4YzY3ZTg0NTM2ZDk2
NTNmNDUxMzFhYTZjZmRlYzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZW5j
cnlwdGVkbWVkaWEvQ0RNU2Vzc2lvbkNsZWFyS2V5LmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9lbmNyeXB0ZWRtZWRpYS9DRE1TZXNzaW9uQ2xlYXJLZXkuaApAQCAtNDIsOSArNDIsOSBA
QCBwdWJsaWM6CiAgICAgdmlydHVhbCBDRE1TZXNzaW9uVHlwZSB0eXBlKCkgb3ZlcnJpZGUgeyBy
ZXR1cm4gQ0RNU2Vzc2lvblR5cGVDbGVhcktleTsgfQogICAgIHZpcnR1YWwgdm9pZCBzZXRDbGll
bnQoQ0RNU2Vzc2lvbkNsaWVudCogY2xpZW50KSBvdmVycmlkZSB7IG1fY2xpZW50ID0gY2xpZW50
OyB9CiAgICAgdmlydHVhbCBjb25zdCBTdHJpbmcmIHNlc3Npb25JZCgpIGNvbnN0IG92ZXJyaWRl
IHsgcmV0dXJuIG1fc2Vzc2lvbklkOyB9Ci0gICAgdmlydHVhbCBSZWZQdHI8VWludDhBcnJheT4g
Z2VuZXJhdGVLZXlSZXF1ZXN0KGNvbnN0IFN0cmluZyYgbWltZVR5cGUsIFVpbnQ4QXJyYXkqLCBT
dHJpbmcmLCB1bnNpZ25lZCBzaG9ydCYsIHVuc2lnbmVkIGxvbmcmKSBvdmVycmlkZTsKKyAgICB2
aXJ0dWFsIFJlZlB0cjxVaW50OEFycmF5PiBnZW5lcmF0ZUtleVJlcXVlc3QoY29uc3QgU3RyaW5n
JiBtaW1lVHlwZSwgVWludDhBcnJheSosIFN0cmluZyYsIHVuc2lnbmVkIHNob3J0JiwgdWludDMy
X3QmKSBvdmVycmlkZTsKICAgICB2aXJ0dWFsIHZvaWQgcmVsZWFzZUtleXMoKSBvdmVycmlkZTsK
LSAgICB2aXJ0dWFsIGJvb2wgdXBkYXRlKFVpbnQ4QXJyYXkqLCBSZWZQdHI8VWludDhBcnJheT4m
LCB1bnNpZ25lZCBzaG9ydCYsIHVuc2lnbmVkIGxvbmcmKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFs
IGJvb2wgdXBkYXRlKFVpbnQ4QXJyYXkqLCBSZWZQdHI8VWludDhBcnJheT4mLCB1bnNpZ25lZCBz
aG9ydCYsIHVpbnQzMl90Jikgb3ZlcnJpZGU7CiAgICAgdmlydHVhbCBSZWZQdHI8QXJyYXlCdWZm
ZXI+IGNhY2hlZEtleUZvcktleUlEKGNvbnN0IFN0cmluZyYpIGNvbnN0IG92ZXJyaWRlOwogCiBw
cm90ZWN0ZWQ6CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2VuY3J5cHRlZG1l
ZGlhL01lZGlhS2V5U2Vzc2lvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2VuY3J5cHRl
ZG1lZGlhL01lZGlhS2V5U2Vzc2lvbi5jcHAKaW5kZXggYmYxNjJkZWM3MDhiYWUzYjg4Yzg4NTg1
Y2FhYTJhZTVhMmE2NjE2Zi4uODczYmMyNjQyZDdkMTNmMGMyZjZjMzVmYjcyZDUwZjM0YTUxMjM5
MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9lbmNyeXB0ZWRtZWRpYS9NZWRp
YUtleVNlc3Npb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZW5jcnlwdGVkbWVk
aWEvTWVkaWFLZXlTZXNzaW9uLmNwcApAQCAtMTExLDcgKzExMSw3IEBAIHZvaWQgTWVkaWFLZXlT
ZXNzaW9uOjprZXlSZXF1ZXN0VGltZXJGaXJlZCgpCiAgICAgICAgIC8vIDIuIExldCBkZXN0aW5h
dGlvblVSTCBiZSBudWxsLgogICAgICAgICBTdHJpbmcgZGVzdGluYXRpb25VUkw7CiAgICAgICAg
IE1lZGlhS2V5RXJyb3I6OkNvZGUgZXJyb3JDb2RlID0gMDsKLSAgICAgICAgdW5zaWduZWQgbG9u
ZyBzeXN0ZW1Db2RlID0gMDsKKyAgICAgICAgdWludDMyX3Qgc3lzdGVtQ29kZSA9IDA7CiAKICAg
ICAgICAgLy8gMy4gVXNlIGNkbSB0byBnZW5lcmF0ZSBhIGtleSByZXF1ZXN0IGFuZCBmb2xsb3cg
dGhlIHN0ZXBzIGZvciB0aGUgZmlyc3QgbWF0Y2hpbmcgY29uZGl0aW9uIGZyb20gdGhlIGZvbGxv
d2luZyBsaXN0OgogCkBAIC0xNjMsNyArMTYzLDcgQEAgdm9pZCBNZWRpYUtleVNlc3Npb246OmFk
ZEtleVRpbWVyRmlyZWQoKQogICAgIHdoaWxlICghbV9wZW5kaW5nS2V5cy5pc0VtcHR5KCkpIHsK
ICAgICAgICAgUmVmUHRyPFVpbnQ4QXJyYXk+IHBlbmRpbmdLZXkgPSBtX3BlbmRpbmdLZXlzLnRh
a2VGaXJzdCgpOwogICAgICAgICB1bnNpZ25lZCBzaG9ydCBlcnJvckNvZGUgPSAwOwotICAgICAg
ICB1bnNpZ25lZCBsb25nIHN5c3RlbUNvZGUgPSAwOworICAgICAgICB1aW50MzJfdCBzeXN0ZW1D
b2RlID0gMDsKIAogICAgICAgICAvLyBOT1RFOiBDb250aW51ZWQgZnJvbSBzdGVwIDIuIG9mIE1l
ZGlhS2V5U2Vzc2lvbjo6dXBkYXRlKCkKICAgICAgICAgLy8gMi4xLiBMZXQgY2RtIGJlIHRoZSBj
ZG0gbG9hZGVkIGluIHRoZSBNZWRpYUtleXMgY29uc3RydWN0b3IuCkBAIC0yMTksNyArMjE5LDcg
QEAgdm9pZCBNZWRpYUtleVNlc3Npb246OnNlbmRNZXNzYWdlKFVpbnQ4QXJyYXkqIG1lc3NhZ2Us
IFN0cmluZyBkZXN0aW5hdGlvblVSTCkKICAgICBtX2FzeW5jRXZlbnRRdWV1ZS5lbnF1ZXVlRXZl
bnQoZXZlbnQucmVsZWFzZSgpKTsKIH0KIAotdm9pZCBNZWRpYUtleVNlc3Npb246OnNlbmRFcnJv
cihDRE1TZXNzaW9uQ2xpZW50OjpNZWRpYUtleUVycm9yQ29kZSBlcnJvckNvZGUsIHVuc2lnbmVk
IGxvbmcgc3lzdGVtQ29kZSkKK3ZvaWQgTWVkaWFLZXlTZXNzaW9uOjpzZW5kRXJyb3IoQ0RNU2Vz
c2lvbkNsaWVudDo6TWVkaWFLZXlFcnJvckNvZGUgZXJyb3JDb2RlLCB1aW50MzJfdCBzeXN0ZW1D
b2RlKQogewogICAgIFJlZjxNZWRpYUtleUVycm9yPiBlcnJvciA9IE1lZGlhS2V5RXJyb3I6OmNy
ZWF0ZShlcnJvckNvZGUsIHN5c3RlbUNvZGUpLmdldCgpOwogICAgIHNldEVycm9yKGVycm9yLnB0
cigpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZW5jcnlwdGVkbWVkaWEv
TWVkaWFLZXlTZXNzaW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2VuY3J5cHRlZG1lZGlh
L01lZGlhS2V5U2Vzc2lvbi5oCmluZGV4IGE0NmRiYTQ3ZDE1N2JiN2FkYjY1NWU4NzkzYzFiMjYx
Nzk2NWI3MDcuLjRiNTE3MTQ4MDBkZWViMzc2Y2U2Yzg4ODBlYzNmZmM2MjQyZDIxOGUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZW5jcnlwdGVkbWVkaWEvTWVkaWFLZXlTZXNz
aW9uLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9lbmNyeXB0ZWRtZWRpYS9NZWRpYUtl
eVNlc3Npb24uaApAQCAtODYsNyArODYsNyBAQCBwcm90ZWN0ZWQ6CiAKICAgICAvLyBDRE1TZXNz
aW9uQ2xpZW50CiAgICAgdmlydHVhbCB2b2lkIHNlbmRNZXNzYWdlKFVpbnQ4QXJyYXkqLCBTdHJp
bmcgZGVzdGluYXRpb25VUkwpIG92ZXJyaWRlOwotICAgIHZpcnR1YWwgdm9pZCBzZW5kRXJyb3Io
TWVkaWFLZXlFcnJvckNvZGUsIHVuc2lnbmVkIGxvbmcgc3lzdGVtQ29kZSkgb3ZlcnJpZGU7Cisg
ICAgdmlydHVhbCB2b2lkIHNlbmRFcnJvcihNZWRpYUtleUVycm9yQ29kZSwgdWludDMyX3Qgc3lz
dGVtQ29kZSkgb3ZlcnJpZGU7CiAgICAgdmlydHVhbCBTdHJpbmcgbWVkaWFLZXlzU3RvcmFnZURp
cmVjdG9yeSgpIGNvbnN0IG92ZXJyaWRlOwogCiAgICAgTWVkaWFLZXlzKiBtX2tleXM7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2og
Yi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXgg
MTVmMmZmOTY3MzIwMGJkNzdiNTEwZWY5MGU4ZjJiODlmOTk0NzliMC4uYzUzMDNkYTZkNzc4MjE5
ZTMzOWI5MjQzYjFhYzVkNzJlMDdjZDA3YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2Vi
Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNv
cmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtNjA2OCw2ICs2MDY4LDggQEAKIAkJQ0RD
OEI1QUExODA0N0ZGMTAwMTZFNjg1IC8qIFNvdXJjZUJ1ZmZlclByaXZhdGVBVkZPYmpDLm1tIGlu
IFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0RDOEI1QTgxODA0
N0ZGMTAwMTZFNjg1IC8qIFNvdXJjZUJ1ZmZlclByaXZhdGVBVkZPYmpDLm1tICovOyB9OwogCQlD
REM4QjVBQjE4MDQ3RkYxMDAxNkU2ODUgLyogU291cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakMuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENEQzhCNUE5MTgw
NDdGRjEwMDE2RTY4NSAvKiBTb3VyY2VCdWZmZXJQcml2YXRlQVZGT2JqQy5oICovOyB9OwogCQlD
REM4QjVBRDE4MDRBRTVEMDAxNkU2ODUgLyogU291cmNlQnVmZmVyUHJpdmF0ZUNsaWVudC5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0RDOEI1QUMxODA0
QUU1RDAwMTZFNjg1IC8qIFNvdXJjZUJ1ZmZlclByaXZhdGVDbGllbnQuaCAqLzsgfTsKKwkJQ0RD
OTc5RjQxQzQ5OEMwOTAwREI1MEQ0IC8qIFdlYkNvcmVOU0Vycm9yRXh0cmFzLm1tIGluIFNvdXJj
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0RDOTc5RjIxQzQ5OEMwOTAw
REI1MEQ0IC8qIFdlYkNvcmVOU0Vycm9yRXh0cmFzLm1tICovOyB9OworCQlDREM5NzlGNTFDNDk4
QzA5MDBEQjUwRDQgLyogV2ViQ29yZU5TRXJyb3JFeHRyYXMuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENEQzk3OUYzMUM0OThDMDkwMERCNTBENCAvKiBX
ZWJDb3JlTlNFcnJvckV4dHJhcy5oICovOyB9OwogCQlDRENBODI5NjE2NzkxMDBGMDA4NzU3MTQg
LyogVGV4dFRyYWNrUmVwcmVzZW50YXRpb25JT1MubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDRENBODI5NDE2NzkxMDBGMDA4NzU3MTQgLyogVGV4dFRy
YWNrUmVwcmVzZW50YXRpb25JT1MubW0gKi87IH07CiAJCUNEQ0E5OEVCMThCMkM4RUIwMEMxMkZG
OSAvKiBDRE1Qcml2YXRlTWVkaWFQbGF5ZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gQ0RDQTk4RUExOEIyQzhFQjAwQzEyRkY5IC8qIENETVByaXZh
dGVNZWRpYVBsYXllci5jcHAgKi87IH07CiAJCUNEQ0ZBQkJEMThDMEFGNzgwMDZGODQ1MCAvKiBT
ZWxlY3Rpb25TdWJ0cmVlUm9vdC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gQ0RDRkFCQkIxOEMwQUUzMTAwNkY4NDUwIC8qIFNlbGVjdGlvblN1YnRyZWVS
b290LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKQEAg
LTEzOTQ3LDYgKzEzOTQ5LDggQEAKIAkJQ0RDOEI1QTgxODA0N0ZGMTAwMTZFNjg1IC8qIFNvdXJj
ZUJ1ZmZlclByaXZhdGVBVkZPYmpDLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3Bw
OyBwYXRoID0gU291cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakMubW07IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCUNEQzhCNUE5MTgwNDdGRjEwMDE2RTY4NSAvKiBTb3VyY2VCdWZmZXJQcml2
YXRlQVZGT2JqQy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTb3VyY2VCdWZm
ZXJQcml2YXRlQVZGT2JqQy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlDREM4QjVB
QzE4MDRBRTVEMDAxNkU2ODUgLyogU291cmNlQnVmZmVyUHJpdmF0ZUNsaWVudC5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTb3VyY2VCdWZmZXJQcml2YXRlQ2xpZW50Lmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUNEQzk3OUYyMUM0OThDMDkwMERCNTBENCAvKiBX
ZWJDb3JlTlNFcnJvckV4dHJhcy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsg
cGF0aCA9IFdlYkNvcmVOU0Vycm9yRXh0cmFzLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OworCQlDREM5NzlGMzFDNDk4QzA5MDBEQjUwRDQgLyogV2ViQ29yZU5TRXJyb3JFeHRyYXMuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViQ29yZU5TRXJyb3JFeHRyYXMuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQ0RDQTgyOTQxNjc5MTAwRjAwODc1NzE0IC8q
IFRleHRUcmFja1JlcHJlc2VudGF0aW9uSU9TLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
b2JqY3BwOyBwYXRoID0gVGV4dFRyYWNrUmVwcmVzZW50YXRpb25JT1MubW07IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCUNEQ0E5OEU5MThCMkM4RDAwMEMxMkZGOSAvKiBDRE1Qcml2YXRl
TWVkaWFQbGF5ZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQ0RNUHJpdmF0
ZU1lZGlhUGxheWVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUNEQ0E5OEVBMThC
MkM4RUIwMEMxMkZGOSAvKiBDRE1Qcml2YXRlTWVkaWFQbGF5ZXIuY3BwICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQ0RNUHJpdmF0ZU1lZGlhUGxheWVyLmNwcDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTE5NzQ4LDYgKzE5NzUyLDggQEAKIAkJCQkzMTBENzE5
MzFCMzM1QzlEMDA5QzdCNzMgLyogVGhlbWVDb2NvYS5jcHAgKi8sCiAJCQkJMzEwRDcxOTQxQjMz
NUM5RDAwOUM3QjczIC8qIFRoZW1lQ29jb2EuaCAqLywKIAkJCQk0NkRCN0Q1NjFCMjBGRTNDMDA1
NjUxQjIgLyogVk5vZGVUcmFja2VyQ29jb2EuY3BwICovLAorCQkJCUNEQzk3OUYyMUM0OThDMDkw
MERCNTBENCAvKiBXZWJDb3JlTlNFcnJvckV4dHJhcy5tbSAqLywKKwkJCQlDREM5NzlGMzFDNDk4
QzA5MDBEQjUwRDQgLyogV2ViQ29yZU5TRXJyb3JFeHRyYXMuaCAqLywKIAkJCSk7CiAJCQlwYXRo
ID0gY29jb2E7CiAJCQlzb3VyY2VUcmVlID0gIjxncm91cD4iOwpAQCAtMjY2MzcsNiArMjY2NDMs
NyBAQAogCQkJCTMxNkZFMTFBMEU2RTFEQTcwMEJGNjA4OCAvKiBLZXlmcmFtZUFuaW1hdGlvbi5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJQkM1RUJBMTEwRTgyM0U0NzAwQjI1OTY1IC8qIEtleWZyYW1l
TGlzdC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRTE1RkY3RDUxOEM5NTUzODAwRkU0Qzg3IC8qIEtl
eXByZXNzQ29tbWFuZC5oIGluIEhlYWRlcnMgKi8sCisJCQkJQ0RDOTc5RjUxQzQ5OEMwOTAwREI1
MEQ0IC8qIFdlYkNvcmVOU0Vycm9yRXh0cmFzLmggaW4gSGVhZGVycyAqLywKIAkJCQk1MjFENDZG
ODExQUVDOUIxMDA1MTQ2MTMgLyogS2lsbFJpbmcuaCBpbiBIZWFkZXJzICovLAogCQkJCTQ1MENF
QkYxMTUwNzNCQkUwMDJCQjE0OSAvKiBMYWJlbGFibGVFbGVtZW50LmggaW4gSGVhZGVycyAqLywK
IAkJCQlBNDU2RkEyNzExQUQ0QTgzMDAyMEI0MjAgLyogTGFiZWxzTm9kZUxpc3QuaCBpbiBIZWFk
ZXJzICovLApAQCAtMjg4NDAsNiArMjg4NDcsNyBAQAogCQkJCUUxNkE4NEY5MTRDODVDQ0MwMDI5
NzdERiAvKiBDU1NCb3JkZXJJbWFnZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlCQzI3NEIzMTE0
MEVCRUQ4MDBFQURGQTYgLyogQ1NTQm9yZGVySW1hZ2VTbGljZVZhbHVlLmNwcCBpbiBTb3VyY2Vz
ICovLAogCQkJCTQ5QUUyRDhFMTM0RUU1MEMwMDcyOTIwQSAvKiBDU1NDYWxjdWxhdGlvblZhbHVl
LmNwcCBpbiBTb3VyY2VzICovLAorCQkJCUNEQzk3OUY0MUM0OThDMDkwMERCNTBENCAvKiBXZWJD
b3JlTlNFcnJvckV4dHJhcy5tbSBpbiBTb3VyY2VzICovLAogCQkJCUJDNjA0QTQzMERCNTYzNEUw
MDIwNDczOSAvKiBDU1NDYW52YXNWYWx1ZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlFMUVCQkJE
NDBBQUM5Qjg3MDAxRkU4RTIgLyogQ1NTQ2hhcnNldFJ1bGUuY3BwIGluIFNvdXJjZXMgKi8sCiAJ
CQkJQkNFQTQ3OEYwOTdDQUFDODAwOTRDOUU0IC8qIENTU0NvbXB1dGVkU3R5bGVEZWNsYXJhdGlv
bi5jcHAgaW4gU291cmNlcyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvTWVk
aWFLZXlFcnJvci5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9NZWRpYUtleUVycm9yLmgKaW5kZXgg
MTE1Yzk2MTQ2NzczZmVkOGI4NTc3YzRhMTgyNjM4Mjk1NzQwZmZlOC4uNDg3ZDQ2NWNlN2IwOGE4
ZGFmNWIzNWU3ZDExZWQyODQwMzcxNmM4YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRt
bC9NZWRpYUtleUVycm9yLmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9NZWRpYUtleUVycm9y
LmgKQEAgLTQ2LDEwICs0NiwxMCBAQCBwdWJsaWM6CiAgICAgfTsKICAgICB0eXBlZGVmIHVuc2ln
bmVkIHNob3J0IENvZGU7CiAKLSAgICBzdGF0aWMgUmVmPE1lZGlhS2V5RXJyb3I+IGNyZWF0ZShD
b2RlIGNvZGUsIHVuc2lnbmVkIGxvbmcgc3lzdGVtQ29kZSA9IDApIHsgcmV0dXJuIGFkb3B0UmVm
KCpuZXcgTWVkaWFLZXlFcnJvcihjb2RlLCBzeXN0ZW1Db2RlKSk7IH0KKyAgICBzdGF0aWMgUmVm
PE1lZGlhS2V5RXJyb3I+IGNyZWF0ZShDb2RlIGNvZGUsIHVpbnQzMl90IHN5c3RlbUNvZGUgPSAw
KSB7IHJldHVybiBhZG9wdFJlZigqbmV3IE1lZGlhS2V5RXJyb3IoY29kZSwgc3lzdGVtQ29kZSkp
OyB9CiAKICAgICBDb2RlIGNvZGUoKSBjb25zdCB7IHJldHVybiBtX2NvZGU7IH0KLSAgICB1bnNp
Z25lZCBsb25nIHN5c3RlbUNvZGUoKSB7IHJldHVybiBtX3N5c3RlbUNvZGU7IH0KKyAgICB1aW50
MzJfdCBzeXN0ZW1Db2RlKCkgeyByZXR1cm4gbV9zeXN0ZW1Db2RlOyB9CiAKIHByaXZhdGU6CiAg
ICAgZXhwbGljaXQgTWVkaWFLZXlFcnJvcihDb2RlIGNvZGUsIHVuc2lnbmVkIGxvbmcgc3lzdGVt
Q29kZSkgOiBtX2NvZGUoY29kZSksIG1fc3lzdGVtQ29kZShzeXN0ZW1Db2RlKSB7IH0KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvTWVkaWFLZXlFdmVudC5oIGIvU291cmNlL1dlYkNv
cmUvaHRtbC9NZWRpYUtleUV2ZW50LmgKaW5kZXggNzc0ZGUzMGRhZDNjZGQ4YzFmZWNmZDgyNzg4
YTU2OTE5MDhjYzNmMi4uZjkxODMyMjljZTY5ODc5MDJkZmNlMWYxMjQwYmY0OTQwY2Y1MzVkYiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9NZWRpYUtleUV2ZW50LmgKKysrIGIvU291
cmNlL1dlYkNvcmUvaHRtbC9NZWRpYUtleUV2ZW50LmgKQEAgLTQyLDcgKzQyLDcgQEAgc3RydWN0
IE1lZGlhS2V5RXZlbnRJbml0IDogcHVibGljIEV2ZW50SW5pdCB7CiAgICAgUmVmUHRyPFVpbnQ4
QXJyYXk+IG1lc3NhZ2U7CiAgICAgU3RyaW5nIGRlZmF1bHRVUkw7CiAgICAgUmVmUHRyPE1lZGlh
S2V5RXJyb3I+IGVycm9yQ29kZTsKLSAgICB1bnNpZ25lZCBzaG9ydCBzeXN0ZW1Db2RlOworICAg
IHVpbnQzMl90IHN5c3RlbUNvZGU7CiB9OwogCiBjbGFzcyBNZWRpYUtleUV2ZW50IGZpbmFsIDog
cHVibGljIEV2ZW50IHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2NvY29h
L1dlYkNvcmVOU0Vycm9yRXh0cmFzLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jb2NvYS9X
ZWJDb3JlTlNFcnJvckV4dHJhcy5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmZiMjRkZDQxMDI2NWNhZDU0MmY2YmEx
MDJiOWNkOGVjYTYyMjA3NzUKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9jb2NvYS9XZWJDb3JlTlNFcnJvckV4dHJhcy5oCkBAIC0wLDAgKzEsMzUgQEAKKy8qCisg
KiBDb3B5cmlnaHQgKEMpIDIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoK
KyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmli
dXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0
aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQg
SVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJ
RUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUg
SU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5U
SUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBP
RgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9S
IFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFO
RCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4K
KyAqLworCisjaWZuZGVmIFdlYkNvcmVOU0Vycm9yRXh0cmFzX2gKKyNkZWZpbmUgV2ViQ29yZU5T
RXJyb3JFeHRyYXNfaAorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK1dFQkNPUkVfRVhQT1JUIGxv
bmcgbWVkaWFLZXlFcnJvclN5c3RlbUNvZGUoTlNFcnJvciAqKTsKKworfQorCisjZW5kaWYgLy8g
V2ViQ29yZU5TRXJyb3JFeHRyYXNfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vY29jb2EvV2ViQ29yZU5TRXJyb3JFeHRyYXMubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9jb2NvYS9XZWJDb3JlTlNFcnJvckV4dHJhcy5tbQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41MjM5OWQ2NGFhNGE1
ZTE2NTE0ZWZiYjc0YzBkMzQ1MzA3NGUyMTg1Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vY29jb2EvV2ViQ29yZU5TRXJyb3JFeHRyYXMubW0KQEAgLTAsMCArMSw0
NiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisgKiAKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICog
MS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9y
bSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisg
KiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0
aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQ
TEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVT
UyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAor
ICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1Mg
Rk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQg
U0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFO
WSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisg
KiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQ
Uk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBV
U0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VW
RVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICog
Q09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNF
IE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4KKyAqLworCisjaW1wb3J0ICJjb25maWcuaCIKKyNpbXBvcnQgIldlYkNvcmVO
U0Vycm9yRXh0cmFzLmgiCisKKyNpbXBvcnQgPEFWRm91bmRhdGlvbi9BVkVycm9yLmg+CisKK25h
bWVzcGFjZSBXZWJDb3JlIHsKKworbG9uZyBtZWRpYUtleUVycm9yU3lzdGVtQ29kZShOU0Vycm9y
ICplcnJvcikKK3sKKyAgICBOU0ludGVnZXIgY29kZSA9IFtlcnJvciBjb2RlXTsKKworICAgIGlm
IChjb2RlID09IEFWRXJyb3JVbmtub3duKSB7CisgICAgICAgIE5TRXJyb3IqIHVuZGVybHlpbmdF
cnJvciA9IFtlcnJvci51c2VySW5mbyB2YWx1ZUZvcktleTpOU1VuZGVybHlpbmdFcnJvcktleV07
CisgICAgICAgIGlmICh1bmRlcmx5aW5nRXJyb3IgJiYgW3VuZGVybHlpbmdFcnJvciBpc0tpbmRP
ZkNsYXNzOltOU0Vycm9yIGNsYXNzXV0pCisgICAgICAgICAgICByZXR1cm4gW3VuZGVybHlpbmdF
cnJvciBjb2RlXTsKKyAgICB9CisKKyAgICByZXR1cm4gY29kZTsKK30KKworfQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvQ0RNU2Vzc2lvbi5oIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvQ0RNU2Vzc2lvbi5oCmluZGV4IDQ1NTE0MDUyYTkw
YmU4MzA2MTQ3MTdjNzliMTJkNjE3Yjc0YmIzOTEuLmE3MWVhNWNjYjU4MzAyNTQ1Mzc1NjJmMWM5
NGMyODU5MTA5MzZjYzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL0NETVNlc3Npb24uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9D
RE1TZXNzaW9uLmgKQEAgLTQ5LDcgKzQ5LDcgQEAgcHVibGljOgogICAgICAgICBNZWRpYUtleUVy
cm9yRG9tYWluLAogICAgIH07CiAgICAgdHlwZWRlZiB1bnNpZ25lZCBzaG9ydCBNZWRpYUtleUVy
cm9yQ29kZTsKLSAgICB2aXJ0dWFsIHZvaWQgc2VuZEVycm9yKE1lZGlhS2V5RXJyb3JDb2RlLCB1
bnNpZ25lZCBsb25nIHN5c3RlbUNvZGUpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgc2VuZEVycm9y
KE1lZGlhS2V5RXJyb3JDb2RlLCB1aW50MzJfdCBzeXN0ZW1Db2RlKSA9IDA7CiAKICAgICB2aXJ0
dWFsIFN0cmluZyBtZWRpYUtleXNTdG9yYWdlRGlyZWN0b3J5KCkgY29uc3QgPSAwOwogfTsKQEAg
LTcwLDkgKzcwLDkgQEAgcHVibGljOgogICAgIHZpcnR1YWwgQ0RNU2Vzc2lvblR5cGUgdHlwZSgp
IHsgcmV0dXJuIENETVNlc3Npb25UeXBlVW5rbm93bjsgfQogICAgIHZpcnR1YWwgdm9pZCBzZXRD
bGllbnQoQ0RNU2Vzc2lvbkNsaWVudCopID0gMDsKICAgICB2aXJ0dWFsIGNvbnN0IFN0cmluZyYg
c2Vzc2lvbklkKCkgY29uc3QgPSAwOwotICAgIHZpcnR1YWwgUmVmUHRyPFVpbnQ4QXJyYXk+IGdl
bmVyYXRlS2V5UmVxdWVzdChjb25zdCBTdHJpbmcmIG1pbWVUeXBlLCBVaW50OEFycmF5KiBpbml0
RGF0YSwgU3RyaW5nJiBkZXN0aW5hdGlvblVSTCwgdW5zaWduZWQgc2hvcnQmIGVycm9yQ29kZSwg
dW5zaWduZWQgbG9uZyYgc3lzdGVtQ29kZSkgPSAwOworICAgIHZpcnR1YWwgUmVmUHRyPFVpbnQ4
QXJyYXk+IGdlbmVyYXRlS2V5UmVxdWVzdChjb25zdCBTdHJpbmcmIG1pbWVUeXBlLCBVaW50OEFy
cmF5KiBpbml0RGF0YSwgU3RyaW5nJiBkZXN0aW5hdGlvblVSTCwgdW5zaWduZWQgc2hvcnQmIGVy
cm9yQ29kZSwgdWludDMyX3QmIHN5c3RlbUNvZGUpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgcmVs
ZWFzZUtleXMoKSA9IDA7Ci0gICAgdmlydHVhbCBib29sIHVwZGF0ZShVaW50OEFycmF5KiwgUmVm
UHRyPFVpbnQ4QXJyYXk+JiBuZXh0TWVzc2FnZSwgdW5zaWduZWQgc2hvcnQmIGVycm9yQ29kZSwg
dW5zaWduZWQgbG9uZyYgc3lzdGVtQ29kZSkgPSAwOworICAgIHZpcnR1YWwgYm9vbCB1cGRhdGUo
VWludDhBcnJheSosIFJlZlB0cjxVaW50OEFycmF5PiYgbmV4dE1lc3NhZ2UsIHVuc2lnbmVkIHNo
b3J0JiBlcnJvckNvZGUsIHVpbnQzMl90JiBzeXN0ZW1Db2RlKSA9IDA7CiAgICAgdmlydHVhbCBS
ZWZQdHI8QXJyYXlCdWZmZXI+IGNhY2hlZEtleUZvcktleUlEKGNvbnN0IFN0cmluZyYpIGNvbnN0
IHsgcmV0dXJuIG51bGxwdHI7IH0KIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9jZi9DRE1TZXNzaW9uQVZGb3VuZGF0aW9uQ0Yu
Y3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL2NmL0NE
TVNlc3Npb25BVkZvdW5kYXRpb25DRi5jcHAKaW5kZXggOTRlZjEwMmYwZmY3ZjQyZGIzNGFlMjQ2
Y2I3NTA2MDQ5MmZjMGJiOC4uZmQ3ZTYyZDljOGI2ZjA1YjBlOGM1YzE3MGVlYTM5Yzg4N2E5NDE4
NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0
aW9uL2NmL0NETVNlc3Npb25BVkZvdW5kYXRpb25DRi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL2NmL0NETVNlc3Npb25BVkZvdW5kYXRpb25D
Ri5jcHAKQEAgLTUxLDcgKzUxLDcgQEAgQ0RNU2Vzc2lvbkFWRm91bmRhdGlvbkNGOjpDRE1TZXNz
aW9uQVZGb3VuZGF0aW9uQ0YoTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW8KIHsKIH0KIAot
UmVmUHRyPFVpbnQ4QXJyYXk+IENETVNlc3Npb25BVkZvdW5kYXRpb25DRjo6Z2VuZXJhdGVLZXlS
ZXF1ZXN0KGNvbnN0IFN0cmluZyYgbWltZVR5cGUsIFVpbnQ4QXJyYXkqIGluaXREYXRhLCBTdHJp
bmcmIGRlc3RpbmF0aW9uVVJMLCB1bnNpZ25lZCBzaG9ydCYgZXJyb3JDb2RlLCB1bnNpZ25lZCBs
b25nJiBzeXN0ZW1Db2RlKQorUmVmUHRyPFVpbnQ4QXJyYXk+IENETVNlc3Npb25BVkZvdW5kYXRp
b25DRjo6Z2VuZXJhdGVLZXlSZXF1ZXN0KGNvbnN0IFN0cmluZyYgbWltZVR5cGUsIFVpbnQ4QXJy
YXkqIGluaXREYXRhLCBTdHJpbmcmIGRlc3RpbmF0aW9uVVJMLCB1bnNpZ25lZCBzaG9ydCYgZXJy
b3JDb2RlLCBpbnQzMl90JiBzeXN0ZW1Db2RlKQogewogICAgIFVOVVNFRF9QQVJBTShtaW1lVHlw
ZSk7CiAKQEAgLTEwNyw3ICsxMDcsNyBAQCB2b2lkIENETVNlc3Npb25BVkZvdW5kYXRpb25DRjo6
cmVsZWFzZUtleXMoKQogewogfQogCi1ib29sIENETVNlc3Npb25BVkZvdW5kYXRpb25DRjo6dXBk
YXRlKFVpbnQ4QXJyYXkqIGtleSwgUmVmUHRyPFVpbnQ4QXJyYXk+JiBuZXh0TWVzc2FnZSwgdW5z
aWduZWQgc2hvcnQmIGVycm9yQ29kZSwgdW5zaWduZWQgbG9uZyYgc3lzdGVtQ29kZSkKK2Jvb2wg
Q0RNU2Vzc2lvbkFWRm91bmRhdGlvbkNGOjp1cGRhdGUoVWludDhBcnJheSoga2V5LCBSZWZQdHI8
VWludDhBcnJheT4mIG5leHRNZXNzYWdlLCB1bnNpZ25lZCBzaG9ydCYgZXJyb3JDb2RlLCBpbnQz
Ml90JiBzeXN0ZW1Db2RlKQogewogICAgIFJldGFpblB0cjxDRk11dGFibGVEYXRhUmVmPiBrZXlE
YXRhID0gYWRvcHRDRihDRkRhdGFDcmVhdGVNdXRhYmxlKGtDRkFsbG9jYXRvckRlZmF1bHQsIGtl
eS0+Ynl0ZUxlbmd0aCgpKSk7CiAgICAgQ0ZEYXRhQXBwZW5kQnl0ZXMoa2V5RGF0YS5nZXQoKSwg
cmVpbnRlcnByZXRfY2FzdDxjb25zdCBVSW50OCo+KGtleS0+YmFzZUFkZHJlc3MoKSksIGtleS0+
Ynl0ZUxlbmd0aCgpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2F2Zm91bmRhdGlvbi9jZi9DRE1TZXNzaW9uQVZGb3VuZGF0aW9uQ0YuaCBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9jZi9DRE1TZXNzaW9uQVZGb3Vu
ZGF0aW9uQ0YuaAppbmRleCA1MTBkMDNmNjhjYWNiMGMxODg3ZDgzMWMyNmE2NWRkN2YyYTYyMTcz
Li41NWU1MzdjMTU3ZTdkNjcyOTJmNDRmN2M4OGU1NzRhNjRmY2FjMjhjIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vY2YvQ0RNU2Vzc2lv
bkFWRm91bmRhdGlvbkNGLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
YXZmb3VuZGF0aW9uL2NmL0NETVNlc3Npb25BVkZvdW5kYXRpb25DRi5oCkBAIC00NCw5ICs0NCw5
IEBAIHB1YmxpYzoKIAogICAgIHZpcnR1YWwgdm9pZCBzZXRDbGllbnQoQ0RNU2Vzc2lvbkNsaWVu
dCogY2xpZW50KSBvdmVycmlkZSB7IG1fY2xpZW50ID0gY2xpZW50OyB9CiAgICAgdmlydHVhbCBj
b25zdCBTdHJpbmcmIHNlc3Npb25JZCgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIG1fc2Vzc2lv
bklkOyB9Ci0gICAgdmlydHVhbCBSZWZQdHI8VWludDhBcnJheT4gZ2VuZXJhdGVLZXlSZXF1ZXN0
KGNvbnN0IFN0cmluZyYgbWltZVR5cGUsIFVpbnQ4QXJyYXkqIGluaXREYXRhLCBTdHJpbmcmIGRl
c3RpbmF0aW9uVVJMLCB1bnNpZ25lZCBzaG9ydCYgZXJyb3JDb2RlLCB1bnNpZ25lZCBsb25nJiBz
eXN0ZW1Db2RlKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIFJlZlB0cjxVaW50OEFycmF5PiBnZW5l
cmF0ZUtleVJlcXVlc3QoY29uc3QgU3RyaW5nJiBtaW1lVHlwZSwgVWludDhBcnJheSogaW5pdERh
dGEsIFN0cmluZyYgZGVzdGluYXRpb25VUkwsIHVuc2lnbmVkIHNob3J0JiBlcnJvckNvZGUsIGlu
dDMyX3QmIHN5c3RlbUNvZGUpIG92ZXJyaWRlOwogICAgIHZpcnR1YWwgdm9pZCByZWxlYXNlS2V5
cygpIG92ZXJyaWRlOwotICAgIHZpcnR1YWwgYm9vbCB1cGRhdGUoVWludDhBcnJheSosIFJlZlB0
cjxVaW50OEFycmF5PiYgbmV4dE1lc3NhZ2UsIHVuc2lnbmVkIHNob3J0JiBlcnJvckNvZGUsIHVu
c2lnbmVkIGxvbmcmIHN5c3RlbUNvZGUpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgYm9vbCB1cGRh
dGUoVWludDhBcnJheSosIFJlZlB0cjxVaW50OEFycmF5PiYgbmV4dE1lc3NhZ2UsIHVuc2lnbmVk
IHNob3J0JiBlcnJvckNvZGUsIGludDMyX3QmIHN5c3RlbUNvZGUpIG92ZXJyaWRlOwogCiBwcm90
ZWN0ZWQ6CiAgICAgTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uQ0YqIG1fcGFyZW50Owpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9u
L29iamMvQ0RNU2Vzc2lvbkFWQ29udGVudEtleVNlc3Npb24uaCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL0NETVNlc3Npb25BVkNvbnRlbnRLZXlT
ZXNzaW9uLmgKaW5kZXggOTE4NmZjYzRjZTM1N2E5ZmFmODAzNGZhYmYzMzUwNzEyZDkwMjg3My4u
ODZkYzVhYzU5ZGNhZmJjOGJlZGJhNTBhMzMxMDllMTBiZjZmYzQ4YiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvQ0RNU2Vzc2lv
bkFWQ29udGVudEtleVNlc3Npb24uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9hdmZvdW5kYXRpb24vb2JqYy9DRE1TZXNzaW9uQVZDb250ZW50S2V5U2Vzc2lvbi5oCkBA
IC00OSw5ICs0OSw5IEBAIHB1YmxpYzoKIAogICAgIC8vIENETVNlc3Npb24KICAgICB2aXJ0dWFs
IENETVNlc3Npb25UeXBlIHR5cGUoKSBvdmVycmlkZSB7IHJldHVybiBDRE1TZXNzaW9uVHlwZUFW
Q29udGVudEtleVNlc3Npb247IH0KLSAgICB2aXJ0dWFsIFJlZlB0cjxVaW50OEFycmF5PiBnZW5l
cmF0ZUtleVJlcXVlc3QoY29uc3QgU3RyaW5nJiBtaW1lVHlwZSwgVWludDhBcnJheSogaW5pdERh
dGEsIFN0cmluZyYgZGVzdGluYXRpb25VUkwsIHVuc2lnbmVkIHNob3J0JiBlcnJvckNvZGUsIHVu
c2lnbmVkIGxvbmcmIHN5c3RlbUNvZGUpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgUmVmUHRyPFVp
bnQ4QXJyYXk+IGdlbmVyYXRlS2V5UmVxdWVzdChjb25zdCBTdHJpbmcmIG1pbWVUeXBlLCBVaW50
OEFycmF5KiBpbml0RGF0YSwgU3RyaW5nJiBkZXN0aW5hdGlvblVSTCwgdW5zaWduZWQgc2hvcnQm
IGVycm9yQ29kZSwgdWludDMyX3QmIHN5c3RlbUNvZGUpIG92ZXJyaWRlOwogICAgIHZpcnR1YWwg
dm9pZCByZWxlYXNlS2V5cygpIG92ZXJyaWRlOwotICAgIHZpcnR1YWwgYm9vbCB1cGRhdGUoVWlu
dDhBcnJheSoga2V5LCBSZWZQdHI8VWludDhBcnJheT4mIG5leHRNZXNzYWdlLCB1bnNpZ25lZCBz
aG9ydCYgZXJyb3JDb2RlLCB1bnNpZ25lZCBsb25nJiBzeXN0ZW1Db2RlKSBvdmVycmlkZTsKKyAg
ICB2aXJ0dWFsIGJvb2wgdXBkYXRlKFVpbnQ4QXJyYXkqIGtleSwgUmVmUHRyPFVpbnQ4QXJyYXk+
JiBuZXh0TWVzc2FnZSwgdW5zaWduZWQgc2hvcnQmIGVycm9yQ29kZSwgdWludDMyX3QmIHN5c3Rl
bUNvZGUpIG92ZXJyaWRlOwogCiAgICAgLy8gQ0RNU2Vzc2lvbk1lZGlhU291cmNlQVZGT2JqQwog
ICAgIHZvaWQgYWRkUGFyc2VyKEFWU3RyZWFtRGF0YVBhcnNlciAqKSBvdmVycmlkZTsKQEAgLTYw
LDcgKzYwLDcgQEAgcHVibGljOgogICAgIHZvaWQgZGlkUHJvdmlkZUNvbnRlbnRLZXlSZXF1ZXN0
KEFWQ29udGVudEtleVJlcXVlc3QgKik7CiAKIHByb3RlY3RlZDoKLSAgICBQYXNzUmVmUHRyPFVp
bnQ4QXJyYXk+IGdlbmVyYXRlS2V5UmVsZWFzZU1lc3NhZ2UodW5zaWduZWQgc2hvcnQmIGVycm9y
Q29kZSwgdW5zaWduZWQgbG9uZyYgc3lzdGVtQ29kZSk7CisgICAgUGFzc1JlZlB0cjxVaW50OEFy
cmF5PiBnZW5lcmF0ZUtleVJlbGVhc2VNZXNzYWdlKHVuc2lnbmVkIHNob3J0JiBlcnJvckNvZGUs
IHVpbnQzMl90JiBzeXN0ZW1Db2RlKTsKIAogICAgIGJvb2wgaGFzQ29udGVudEtleVNlc3Npb24o
KSBjb25zdCB7IHJldHVybiBtX2NvbnRlbnRLZXlTZXNzaW9uOyB9CiAgICAgQVZDb250ZW50S2V5
U2Vzc2lvbiogY29udGVudEtleVNlc3Npb24oKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL0NETVNlc3Npb25BVkNvbnRlbnRL
ZXlTZXNzaW9uLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0
aW9uL29iamMvQ0RNU2Vzc2lvbkFWQ29udGVudEtleVNlc3Npb24ubW0KaW5kZXggNjAyNmJjNWMy
MzM0Zjg4NTZlODlmYTJhMWFkYzE2Y2I1MTg5ZDNjNi4uN2U2Y2ZlZTQ0ODA4N2MxM2ZmM2MzMmZl
MzA1N2RhOTdiNzc4ZTdiYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvYXZmb3VuZGF0aW9uL29iamMvQ0RNU2Vzc2lvbkFWQ29udGVudEtleVNlc3Npb24ubW0K
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMv
Q0RNU2Vzc2lvbkFWQ29udGVudEtleVNlc3Npb24ubW0KQEAgLTM3LDkgKzM3LDkgQEAKICNpbXBv
cnQgIlNvZnRMaW5raW5nLmgiCiAjaW1wb3J0ICJTb3VyY2VCdWZmZXJQcml2YXRlQVZGT2JqQy5o
IgogI2ltcG9ydCAiVVVJRC5oIgorI2ltcG9ydCAiV2ViQ29yZU5TRXJyb3JFeHRyYXMuaCIKICNp
bXBvcnQgPEFWRm91bmRhdGlvbi9BVkVycm9yLmg+CiAjaW1wb3J0IDxDb3JlTWVkaWEvQ01CYXNl
Lmg+Ci0jaW1wb3J0IDxjc3RkbGliPgogI2ltcG9ydCA8b2JqYy9vYmpjLXJ1bnRpbWUuaD4KICNp
bXBvcnQgPHJ1bnRpbWUvVHlwZWRBcnJheUlubGluZXMuaD4KICNpbXBvcnQgPHd0Zi9OZXZlckRl
c3Ryb3llZC5oPgpAQCAtMTQ0LDcgKzE0NCw3IEBAIGJvb2wgQ0RNU2Vzc2lvbkFWQ29udGVudEtl
eVNlc3Npb246OmlzQXZhaWxhYmxlKCkKICAgICByZXR1cm4gZ2V0QVZDb250ZW50S2V5U2Vzc2lv
bkNsYXNzKCk7CiB9CiAKLVJlZlB0cjxVaW50OEFycmF5PiBDRE1TZXNzaW9uQVZDb250ZW50S2V5
U2Vzc2lvbjo6Z2VuZXJhdGVLZXlSZXF1ZXN0KGNvbnN0IFN0cmluZyYgbWltZVR5cGUsIFVpbnQ4
QXJyYXkqIGluaXREYXRhLCBTdHJpbmcmIGRlc3RpbmF0aW9uVVJMLCB1bnNpZ25lZCBzaG9ydCYg
ZXJyb3JDb2RlLCB1bnNpZ25lZCBsb25nJiBzeXN0ZW1Db2RlKQorUmVmUHRyPFVpbnQ4QXJyYXk+
IENETVNlc3Npb25BVkNvbnRlbnRLZXlTZXNzaW9uOjpnZW5lcmF0ZUtleVJlcXVlc3QoY29uc3Qg
U3RyaW5nJiBtaW1lVHlwZSwgVWludDhBcnJheSogaW5pdERhdGEsIFN0cmluZyYgZGVzdGluYXRp
b25VUkwsIHVuc2lnbmVkIHNob3J0JiBlcnJvckNvZGUsIHVpbnQzMl90JiBzeXN0ZW1Db2RlKQog
ewogICAgIFVOVVNFRF9QQVJBTShtaW1lVHlwZSk7CiAgICAgVU5VU0VEX1BBUkFNKGRlc3RpbmF0
aW9uVVJMKTsKQEAgLTIyOCw3ICsyMjgsNyBAQCBzdGF0aWMgYm9vbCBpc0VxdWFsKFVpbnQ4QXJy
YXkqIGRhdGEsIGNvbnN0IGNoYXIqIGxpdGVyYWwpCiAgICAgcmV0dXJuICFsaXRlcmFsW2xlbmd0
aF07CiB9CiAKLWJvb2wgQ0RNU2Vzc2lvbkFWQ29udGVudEtleVNlc3Npb246OnVwZGF0ZShVaW50
OEFycmF5KiBrZXksIFJlZlB0cjxVaW50OEFycmF5PiYgbmV4dE1lc3NhZ2UsIHVuc2lnbmVkIHNo
b3J0JiBlcnJvckNvZGUsIHVuc2lnbmVkIGxvbmcmIHN5c3RlbUNvZGUpCitib29sIENETVNlc3Np
b25BVkNvbnRlbnRLZXlTZXNzaW9uOjp1cGRhdGUoVWludDhBcnJheSoga2V5LCBSZWZQdHI8VWlu
dDhBcnJheT4mIG5leHRNZXNzYWdlLCB1bnNpZ25lZCBzaG9ydCYgZXJyb3JDb2RlLCB1aW50MzJf
dCYgc3lzdGVtQ29kZSkKIHsKICAgICBVTlVTRURfUEFSQU0obmV4dE1lc3NhZ2UpOwogCkBAIC0y
ODEsOSArMjgxLDE1IEBAIGJvb2wgQ0RNU2Vzc2lvbkFWQ29udGVudEtleVNlc3Npb246OnVwZGF0
ZShVaW50OEFycmF5KiBrZXksIFJlZlB0cjxVaW50OEFycmF5PiYKIAogICAgICAgICBlcnJvckNv
ZGUgPSBNZWRpYVBsYXllcjo6Tm9FcnJvcjsKICAgICAgICAgc3lzdGVtQ29kZSA9IDA7Ci0gICAg
ICAgIE5TRGF0YSogcmVxdWVzdERhdGEgPSBbbV9rZXlSZXF1ZXN0IGNvbnRlbnRLZXlSZXF1ZXN0
RGF0YUZvckFwcDpjZXJ0aWZpY2F0ZURhdGEuZ2V0KCkgY29udGVudElkZW50aWZpZXI6bmlsIG9w
dGlvbnM6b3B0aW9ucy5nZXQoKSBlcnJvcjpuaWxdOwotICAgICAgICBuZXh0TWVzc2FnZSA9IFVp
bnQ4QXJyYXk6OmNyZWF0ZShzdGF0aWNfY2FzdDxjb25zdCB1aW50OF90Kj4oW3JlcXVlc3REYXRh
IGJ5dGVzXSksIFtyZXF1ZXN0RGF0YSBsZW5ndGhdKTsKKyAgICAgICAgTlNFcnJvciogZXJyb3Ig
PSBuaWw7CisgICAgICAgIE5TRGF0YSogcmVxdWVzdERhdGEgPSBbbV9rZXlSZXF1ZXN0IGNvbnRl
bnRLZXlSZXF1ZXN0RGF0YUZvckFwcDpjZXJ0aWZpY2F0ZURhdGEuZ2V0KCkgY29udGVudElkZW50
aWZpZXI6bmlsIG9wdGlvbnM6b3B0aW9ucy5nZXQoKSBlcnJvcjomZXJyb3JdOworICAgICAgICBp
ZiAoZXJyb3IpIHsKKyAgICAgICAgICAgIGVycm9yQ29kZSA9IE1lZGlhUGxheWVyQ2xpZW50OjpE
b21haW5FcnJvcjsKKyAgICAgICAgICAgIHN5c3RlbUNvZGUgPSBtZWRpYUtleUVycm9yU3lzdGVt
Q29kZShlcnJvcik7CisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIH0KIAorICAg
ICAgICBuZXh0TWVzc2FnZSA9IFVpbnQ4QXJyYXk6OmNyZWF0ZShzdGF0aWNfY2FzdDxjb25zdCB1
aW50OF90Kj4oW3JlcXVlc3REYXRhIGJ5dGVzXSksIFtyZXF1ZXN0RGF0YSBsZW5ndGhdKTsKICAg
ICAgICAgcmV0dXJuIGZhbHNlOwogICAgIH0KIApAQCAtMzA2LDcgKzMxMiw3IEBAIHZvaWQgQ0RN
U2Vzc2lvbkFWQ29udGVudEtleVNlc3Npb246OnJlbW92ZVBhcnNlcihBVlN0cmVhbURhdGFQYXJz
ZXIqIHBhcnNlcikKICAgICBbY29udGVudEtleVNlc3Npb24oKSByZW1vdmVTdHJlYW1EYXRhUGFy
c2VyOnBhcnNlcl07CiB9CiAKLVBhc3NSZWZQdHI8VWludDhBcnJheT4gQ0RNU2Vzc2lvbkFWQ29u
dGVudEtleVNlc3Npb246OmdlbmVyYXRlS2V5UmVsZWFzZU1lc3NhZ2UodW5zaWduZWQgc2hvcnQm
IGVycm9yQ29kZSwgdW5zaWduZWQgbG9uZyYgc3lzdGVtQ29kZSkKK1Bhc3NSZWZQdHI8VWludDhB
cnJheT4gQ0RNU2Vzc2lvbkFWQ29udGVudEtleVNlc3Npb246OmdlbmVyYXRlS2V5UmVsZWFzZU1l
c3NhZ2UodW5zaWduZWQgc2hvcnQmIGVycm9yQ29kZSwgdWludDMyX3QmIHN5c3RlbUNvZGUpCiB7
CiAgICAgQVNTRVJUKG1fbW9kZSA9PSBLZXlSZWxlYXNlKTsKICAgICBtX2NlcnRpZmljYXRlID0g
bV9pbml0RGF0YTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2F2Zm91bmRhdGlvbi9vYmpjL0NETVNlc3Npb25BVkZvdW5kYXRpb25PYmpDLmggYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9DRE1TZXNzaW9uQVZG
b3VuZGF0aW9uT2JqQy5oCmluZGV4IDVkOTMwNzM3OGIxYWUzNzZkNTc1YjdiNDZiNTI0ZGUxZDg2
MDVlNzEuLjBlYjEyNWMxMDc0MTg2MmVlZDMxMmRkYTE1YjdhODkwNTJhYWM0MGIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL0NE
TVNlc3Npb25BVkZvdW5kYXRpb25PYmpDLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvQ0RNU2Vzc2lvbkFWRm91bmRhdGlvbk9iakMuaApA
QCAtNDUsOSArNDUsOSBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBDRE1TZXNzaW9uVHlwZSB0eXBl
KCkgb3ZlcnJpZGUgeyByZXR1cm4gQ0RNU2Vzc2lvblR5cGVBVkZvdW5kYXRpb25PYmpDOyB9CiAg
ICAgdmlydHVhbCB2b2lkIHNldENsaWVudChDRE1TZXNzaW9uQ2xpZW50KiBjbGllbnQpIG92ZXJy
aWRlIHsgbV9jbGllbnQgPSBjbGllbnQ7IH0KICAgICB2aXJ0dWFsIGNvbnN0IFN0cmluZyYgc2Vz
c2lvbklkKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gbV9zZXNzaW9uSWQ7IH0KLSAgICB2aXJ0
dWFsIFJlZlB0cjxVaW50OEFycmF5PiBnZW5lcmF0ZUtleVJlcXVlc3QoY29uc3QgU3RyaW5nJiBt
aW1lVHlwZSwgVWludDhBcnJheSogaW5pdERhdGEsIFN0cmluZyYgZGVzdGluYXRpb25VUkwsIHVu
c2lnbmVkIHNob3J0JiBlcnJvckNvZGUsIHVuc2lnbmVkIGxvbmcmIHN5c3RlbUNvZGUpIG92ZXJy
aWRlOworICAgIHZpcnR1YWwgUmVmUHRyPFVpbnQ4QXJyYXk+IGdlbmVyYXRlS2V5UmVxdWVzdChj
b25zdCBTdHJpbmcmIG1pbWVUeXBlLCBVaW50OEFycmF5KiBpbml0RGF0YSwgU3RyaW5nJiBkZXN0
aW5hdGlvblVSTCwgdW5zaWduZWQgc2hvcnQmIGVycm9yQ29kZSwgdWludDMyX3QmIHN5c3RlbUNv
ZGUpIG92ZXJyaWRlOwogICAgIHZpcnR1YWwgdm9pZCByZWxlYXNlS2V5cygpIG92ZXJyaWRlOwot
ICAgIHZpcnR1YWwgYm9vbCB1cGRhdGUoVWludDhBcnJheSosIFJlZlB0cjxVaW50OEFycmF5PiYg
bmV4dE1lc3NhZ2UsIHVuc2lnbmVkIHNob3J0JiBlcnJvckNvZGUsIHVuc2lnbmVkIGxvbmcmIHN5
c3RlbUNvZGUpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgYm9vbCB1cGRhdGUoVWludDhBcnJheSos
IFJlZlB0cjxVaW50OEFycmF5PiYgbmV4dE1lc3NhZ2UsIHVuc2lnbmVkIHNob3J0JiBlcnJvckNv
ZGUsIHVpbnQzMl90JiBzeXN0ZW1Db2RlKSBvdmVycmlkZTsKIAogcHJvdGVjdGVkOgogICAgIE1l
ZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMqIG1fcGFyZW50OwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvQ0RNU2Vz
c2lvbkFWRm91bmRhdGlvbk9iakMubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9hdmZvdW5kYXRpb24vb2JqYy9DRE1TZXNzaW9uQVZGb3VuZGF0aW9uT2JqQy5tbQppbmRleCBj
YmRlMTk4OTVhYzk3ZTcwMTE4YjNkOGY5MWRkMmU1MmEyMGUxYWQzLi4wODEwODdiNTYxMTI0NTZl
OTMyYTQyOGVjNTM3ZjgxOTc3YzhlMmZkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9DRE1TZXNzaW9uQVZGb3VuZGF0aW9uT2Jq
Qy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24v
b2JqYy9DRE1TZXNzaW9uQVZGb3VuZGF0aW9uT2JqQy5tbQpAQCAtMzUsNiArMzUsNyBAQAogI2lt
cG9ydCAiTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQy5oIgogI2ltcG9ydCAiU29m
dExpbmtpbmcuaCIKICNpbXBvcnQgIlVVSUQuaCIKKyNpbXBvcnQgIldlYkNvcmVOU0Vycm9yRXh0
cmFzLmgiCiAjaW1wb3J0IDxBVkZvdW5kYXRpb24vQVZGb3VuZGF0aW9uLmg+CiAjaW1wb3J0IDxv
YmpjL29iamMtcnVudGltZS5oPgogCkBAIC01Myw3ICs1NCw3IEBAIENETVNlc3Npb25BVkZvdW5k
YXRpb25PYmpDOjpDRE1TZXNzaW9uQVZGb3VuZGF0aW9uT2JqQyhNZWRpYVBsYXllclByaXZhdGVB
VkZvdW5kCiB7CiB9CiAKLVJlZlB0cjxVaW50OEFycmF5PiBDRE1TZXNzaW9uQVZGb3VuZGF0aW9u
T2JqQzo6Z2VuZXJhdGVLZXlSZXF1ZXN0KGNvbnN0IFN0cmluZyYgbWltZVR5cGUsIFVpbnQ4QXJy
YXkqIGluaXREYXRhLCBTdHJpbmcmIGRlc3RpbmF0aW9uVVJMLCB1bnNpZ25lZCBzaG9ydCYgZXJy
b3JDb2RlLCB1bnNpZ25lZCBsb25nJiBzeXN0ZW1Db2RlKQorUmVmUHRyPFVpbnQ4QXJyYXk+IENE
TVNlc3Npb25BVkZvdW5kYXRpb25PYmpDOjpnZW5lcmF0ZUtleVJlcXVlc3QoY29uc3QgU3RyaW5n
JiBtaW1lVHlwZSwgVWludDhBcnJheSogaW5pdERhdGEsIFN0cmluZyYgZGVzdGluYXRpb25VUkws
IHVuc2lnbmVkIHNob3J0JiBlcnJvckNvZGUsIHVpbnQzMl90JiBzeXN0ZW1Db2RlKQogewogICAg
IFVOVVNFRF9QQVJBTShtaW1lVHlwZSk7CiAKQEAgLTYxLDEzICs2MiwxMyBAQCBSZWZQdHI8VWlu
dDhBcnJheT4gQ0RNU2Vzc2lvbkFWRm91bmRhdGlvbk9iakM6OmdlbmVyYXRlS2V5UmVxdWVzdChj
b25zdCBTdHJpbmcmCiAgICAgU3RyaW5nIGtleUlEOwogICAgIFJlZlB0cjxVaW50OEFycmF5PiBj
ZXJ0aWZpY2F0ZTsKICAgICBpZiAoIU1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6
OmV4dHJhY3RLZXlVUklLZXlJREFuZENlcnRpZmljYXRlRnJvbUluaXREYXRhKGluaXREYXRhLCBr
ZXlVUkksIGtleUlELCBjZXJ0aWZpY2F0ZSkpIHsKLSAgICAgICAgZXJyb3JDb2RlID0gTWVkaWFQ
bGF5ZXI6OkludmFsaWRQbGF5ZXJTdGF0ZTsKKyAgICAgICAgZXJyb3JDb2RlID0gQ0RNOjpVbmtu
b3duRXJyb3I7CiAgICAgICAgIHJldHVybiBudWxscHRyOwogICAgIH0KIAogICAgIG1fcmVxdWVz
dCA9IG1fcGFyZW50LT50YWtlUmVxdWVzdEZvcktleVVSSShrZXlVUkkpOwogICAgIGlmICghbV9y
ZXF1ZXN0KSB7Ci0gICAgICAgIGVycm9yQ29kZSA9IE1lZGlhUGxheWVyOjpJbnZhbGlkUGxheWVy
U3RhdGU7CisgICAgICAgIGVycm9yQ29kZSA9IENETTo6VW5rbm93bkVycm9yOwogICAgICAgICBy
ZXR1cm4gbnVsbHB0cjsKICAgICB9CiAKQEAgLTc4LDggKzc5LDggQEAgUmVmUHRyPFVpbnQ4QXJy
YXk+IENETVNlc3Npb25BVkZvdW5kYXRpb25PYmpDOjpnZW5lcmF0ZUtleVJlcXVlc3QoY29uc3Qg
U3RyaW5nJgogICAgIFJldGFpblB0cjxOU0RhdGE+IGtleVJlcXVlc3QgPSBbbV9yZXF1ZXN0IHN0
cmVhbWluZ0NvbnRlbnRLZXlSZXF1ZXN0RGF0YUZvckFwcDpjZXJ0aWZpY2F0ZURhdGEuZ2V0KCkg
Y29udGVudElkZW50aWZpZXI6YXNzZXRJRC5nZXQoKSBvcHRpb25zOm5pbCBlcnJvcjombnNFcnJv
cl07CiAKICAgICBpZiAoIWtleVJlcXVlc3QpIHsKLSAgICAgICAgTlNFcnJvciogdW5kZXJseWlu
Z0Vycm9yID0gW1tuc0Vycm9yIHVzZXJJbmZvXSBvYmplY3RGb3JLZXk6TlNVbmRlcmx5aW5nRXJy
b3JLZXldOwotICAgICAgICBzeXN0ZW1Db2RlID0gW3VuZGVybHlpbmdFcnJvciBjb2RlXTsKKyAg
ICAgICAgZXJyb3JDb2RlID0gQ0RNOjpEb21haW5FcnJvcjsKKyAgICAgICAgc3lzdGVtQ29kZSA9
IG1lZGlhS2V5RXJyb3JTeXN0ZW1Db2RlKG5zRXJyb3IpOwogICAgICAgICByZXR1cm4gbnVsbHB0
cjsKICAgICB9CiAKQEAgLTk1LDcgKzk2LDcgQEAgdm9pZCBDRE1TZXNzaW9uQVZGb3VuZGF0aW9u
T2JqQzo6cmVsZWFzZUtleXMoKQogewogfQogCi1ib29sIENETVNlc3Npb25BVkZvdW5kYXRpb25P
YmpDOjp1cGRhdGUoVWludDhBcnJheSoga2V5LCBSZWZQdHI8VWludDhBcnJheT4mIG5leHRNZXNz
YWdlLCB1bnNpZ25lZCBzaG9ydCYgZXJyb3JDb2RlLCB1bnNpZ25lZCBsb25nJiBzeXN0ZW1Db2Rl
KQorYm9vbCBDRE1TZXNzaW9uQVZGb3VuZGF0aW9uT2JqQzo6dXBkYXRlKFVpbnQ4QXJyYXkqIGtl
eSwgUmVmUHRyPFVpbnQ4QXJyYXk+JiBuZXh0TWVzc2FnZSwgdW5zaWduZWQgc2hvcnQmIGVycm9y
Q29kZSwgdWludDMyX3QmIHN5c3RlbUNvZGUpCiB7CiAgICAgUmV0YWluUHRyPE5TRGF0YT4ga2V5
RGF0YSA9IGFkb3B0TlMoW1tOU0RhdGEgYWxsb2NdIGluaXRXaXRoQnl0ZXM6a2V5LT5iYXNlQWRk
cmVzcygpIGxlbmd0aDprZXktPmJ5dGVMZW5ndGgoKV0pOwogICAgIFtbbV9yZXF1ZXN0IGRhdGFS
ZXF1ZXN0XSByZXNwb25kV2l0aERhdGE6a2V5RGF0YS5nZXQoKV07CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9DRE1TZXNzaW9u
QVZTdHJlYW1TZXNzaW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZv
dW5kYXRpb24vb2JqYy9DRE1TZXNzaW9uQVZTdHJlYW1TZXNzaW9uLmgKaW5kZXggZGE1N2M0NzM2
YjZhZTM0OTEzZmM0ZTk2NDQyNThhNWYzOTFkNjEzZS4uNDU2N2Y0MjgyNTY5MjQxZDI2MWYwYjAy
ODE0NjMwN2JmM2JhZDE0MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvYXZmb3VuZGF0aW9uL29iamMvQ0RNU2Vzc2lvbkFWU3RyZWFtU2Vzc2lvbi5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL0NETVNl
c3Npb25BVlN0cmVhbVNlc3Npb24uaApAQCAtNDcsOSArNDcsOSBAQCBwdWJsaWM6CiAKICAgICAv
LyBDRE1TZXNzaW9uCiAgICAgdmlydHVhbCBDRE1TZXNzaW9uVHlwZSB0eXBlKCkgb3ZlcnJpZGUg
eyByZXR1cm4gQ0RNU2Vzc2lvblR5cGVBVlN0cmVhbVNlc3Npb247IH0KLSAgICB2aXJ0dWFsIFJl
ZlB0cjxVaW50OEFycmF5PiBnZW5lcmF0ZUtleVJlcXVlc3QoY29uc3QgU3RyaW5nJiBtaW1lVHlw
ZSwgVWludDhBcnJheSogaW5pdERhdGEsIFN0cmluZyYgZGVzdGluYXRpb25VUkwsIHVuc2lnbmVk
IHNob3J0JiBlcnJvckNvZGUsIHVuc2lnbmVkIGxvbmcmIHN5c3RlbUNvZGUpIG92ZXJyaWRlOwor
ICAgIHZpcnR1YWwgUmVmUHRyPFVpbnQ4QXJyYXk+IGdlbmVyYXRlS2V5UmVxdWVzdChjb25zdCBT
dHJpbmcmIG1pbWVUeXBlLCBVaW50OEFycmF5KiBpbml0RGF0YSwgU3RyaW5nJiBkZXN0aW5hdGlv
blVSTCwgdW5zaWduZWQgc2hvcnQmIGVycm9yQ29kZSwgdWludDMyX3QmIHN5c3RlbUNvZGUpIG92
ZXJyaWRlOwogICAgIHZpcnR1YWwgdm9pZCByZWxlYXNlS2V5cygpIG92ZXJyaWRlOwotICAgIHZp
cnR1YWwgYm9vbCB1cGRhdGUoVWludDhBcnJheSosIFJlZlB0cjxVaW50OEFycmF5PiYgbmV4dE1l
c3NhZ2UsIHVuc2lnbmVkIHNob3J0JiBlcnJvckNvZGUsIHVuc2lnbmVkIGxvbmcmIHN5c3RlbUNv
ZGUpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgYm9vbCB1cGRhdGUoVWludDhBcnJheSosIFJlZlB0
cjxVaW50OEFycmF5PiYgbmV4dE1lc3NhZ2UsIHVuc2lnbmVkIHNob3J0JiBlcnJvckNvZGUsIHVp
bnQzMl90JiBzeXN0ZW1Db2RlKSBvdmVycmlkZTsKIAogICAgIC8vIENETVNlc3Npb25NZWRpYVNv
dXJjZUFWRk9iakMKICAgICB2b2lkIGFkZFBhcnNlcihBVlN0cmVhbURhdGFQYXJzZXIqKSBvdmVy
cmlkZTsKQEAgLTU4LDcgKzU4LDcgQEAgcHVibGljOgogICAgIHZvaWQgc2V0U3RyZWFtU2Vzc2lv
bihBVlN0cmVhbVNlc3Npb24qKTsKIAogcHJvdGVjdGVkOgotICAgIFBhc3NSZWZQdHI8VWludDhB
cnJheT4gZ2VuZXJhdGVLZXlSZWxlYXNlTWVzc2FnZSh1bnNpZ25lZCBzaG9ydCYgZXJyb3JDb2Rl
LCB1bnNpZ25lZCBsb25nJiBzeXN0ZW1Db2RlKTsKKyAgICBQYXNzUmVmUHRyPFVpbnQ4QXJyYXk+
IGdlbmVyYXRlS2V5UmVsZWFzZU1lc3NhZ2UodW5zaWduZWQgc2hvcnQmIGVycm9yQ29kZSwgdWlu
dDMyX3Qgc3lzdGVtQ29kZSk7CiAKICAgICBXZWFrUHRyRmFjdG9yeTxDRE1TZXNzaW9uQVZTdHJl
YW1TZXNzaW9uPiBtX3dlYWtQdHJGYWN0b3J5OwogICAgIFJldGFpblB0cjxBVlN0cmVhbVNlc3Np
b24+IG1fc3RyZWFtU2Vzc2lvbjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL0NETVNlc3Npb25BVlN0cmVhbVNlc3Npb24ubW0g
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9DRE1T
ZXNzaW9uQVZTdHJlYW1TZXNzaW9uLm1tCmluZGV4IDdkYjhiZjgzZGVjN2E0ZTE1ODg3NTA4MTY2
NzMyZmEyYmQ4MGRkZmMuLjkwYWFhZjAzZjY3YTkxYTdiNWYyMjVjM2UwNzQ0MTY1NDUzYzI5ZTYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlv
bi9vYmpjL0NETVNlc3Npb25BVlN0cmVhbVNlc3Npb24ubW0KKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvQ0RNU2Vzc2lvbkFWU3RyZWFtU2Vz
c2lvbi5tbQpAQCAtMzcsOSArMzcsOSBAQAogI2ltcG9ydCAiU29mdExpbmtpbmcuaCIKICNpbXBv
cnQgIlNvdXJjZUJ1ZmZlclByaXZhdGVBVkZPYmpDLmgiCiAjaW1wb3J0ICJVVUlELmgiCisjaW1w
b3J0ICJXZWJDb3JlTlNFcnJvckV4dHJhcy5oIgogI2ltcG9ydCA8QVZGb3VuZGF0aW9uL0FWRXJy
b3IuaD4KICNpbXBvcnQgPENvcmVNZWRpYS9DTUJhc2UuaD4KLSNpbXBvcnQgPGNzdGRsaWI+CiAj
aW1wb3J0IDxvYmpjL29iamMtcnVudGltZS5oPgogI2ltcG9ydCA8cnVudGltZS9UeXBlZEFycmF5
SW5saW5lcy5oPgogI2ltcG9ydCA8d3RmL05ldmVyRGVzdHJveWVkLmg+CkBAIC0xMTIsNyArMTEy
LDcgQEAgQ0RNU2Vzc2lvbkFWU3RyZWFtU2Vzc2lvbjo6fkNETVNlc3Npb25BVlN0cmVhbVNlc3Np
b24oKQogICAgICAgICByZW1vdmVQYXJzZXIoc291cmNlQnVmZmVyLT5wYXJzZXIoKSk7CiB9CiAK
LVJlZlB0cjxVaW50OEFycmF5PiBDRE1TZXNzaW9uQVZTdHJlYW1TZXNzaW9uOjpnZW5lcmF0ZUtl
eVJlcXVlc3QoY29uc3QgU3RyaW5nJiBtaW1lVHlwZSwgVWludDhBcnJheSogaW5pdERhdGEsIFN0
cmluZyYgZGVzdGluYXRpb25VUkwsIHVuc2lnbmVkIHNob3J0JiBlcnJvckNvZGUsIHVuc2lnbmVk
IGxvbmcmIHN5c3RlbUNvZGUpCitSZWZQdHI8VWludDhBcnJheT4gQ0RNU2Vzc2lvbkFWU3RyZWFt
U2Vzc2lvbjo6Z2VuZXJhdGVLZXlSZXF1ZXN0KGNvbnN0IFN0cmluZyYgbWltZVR5cGUsIFVpbnQ4
QXJyYXkqIGluaXREYXRhLCBTdHJpbmcmIGRlc3RpbmF0aW9uVVJMLCB1bnNpZ25lZCBzaG9ydCYg
ZXJyb3JDb2RlLCB1aW50MzJfdCYgc3lzdGVtQ29kZSkKIHsKICAgICBVTlVTRURfUEFSQU0obWlt
ZVR5cGUpOwogICAgIFVOVVNFRF9QQVJBTShkZXN0aW5hdGlvblVSTCk7CkBAIC0xODcsNyArMTg3
LDcgQEAgc3RhdGljIGJvb2wgaXNFcXVhbChVaW50OEFycmF5KiBkYXRhLCBjb25zdCBjaGFyKiBs
aXRlcmFsKQogICAgIHJldHVybiAhbGl0ZXJhbFtsZW5ndGhdOwogfQogCi1ib29sIENETVNlc3Np
b25BVlN0cmVhbVNlc3Npb246OnVwZGF0ZShVaW50OEFycmF5KiBrZXksIFJlZlB0cjxVaW50OEFy
cmF5PiYgbmV4dE1lc3NhZ2UsIHVuc2lnbmVkIHNob3J0JiBlcnJvckNvZGUsIHVuc2lnbmVkIGxv
bmcmIHN5c3RlbUNvZGUpCitib29sIENETVNlc3Npb25BVlN0cmVhbVNlc3Npb246OnVwZGF0ZShV
aW50OEFycmF5KiBrZXksIFJlZlB0cjxVaW50OEFycmF5PiYgbmV4dE1lc3NhZ2UsIHVuc2lnbmVk
IHNob3J0JiBlcnJvckNvZGUsIHVpbnQzMl90JiBzeXN0ZW1Db2RlKQogewogICAgIGJvb2wgc2hv
dWxkR2VuZXJhdGVLZXlSZXF1ZXN0ID0gIW1fY2VydGlmaWNhdGUgfHwgaXNFcXVhbChrZXksICJy
ZW5ldyIpOwogICAgIGlmICghbV9jZXJ0aWZpY2F0ZSkgewpAQCAtMjU1LDcgKzI1NSw3IEBAIGJv
b2wgQ0RNU2Vzc2lvbkFWU3RyZWFtU2Vzc2lvbjo6dXBkYXRlKFVpbnQ4QXJyYXkqIGtleSwgUmVm
UHRyPFVpbnQ4QXJyYXk+JiBuZXh0CiAgICAgICAgIGlmIChlcnJvcikgewogICAgICAgICAgICAg
TE9HKE1lZGlhLCAiQ0RNU2Vzc2lvbkFWU3RyZWFtU2Vzc2lvbjo6dXBkYXRlKCVwKSAtIGVycm9y
OiVAIiwgdGhpcywgW2Vycm9yIGRlc2NyaXB0aW9uXSk7CiAgICAgICAgICAgICBlcnJvckNvZGUg
PSBNZWRpYVBsYXllcjo6SW52YWxpZFBsYXllclN0YXRlOwotICAgICAgICAgICAgc3lzdGVtQ29k
ZSA9IHN0ZDo6YWJzKHN5c3RlbUNvZGVGb3JFcnJvcihlcnJvcikpOworICAgICAgICAgICAgc3lz
dGVtQ29kZSA9IG1lZGlhS2V5RXJyb3JTeXN0ZW1Db2RlKGVycm9yKTsKICAgICAgICAgICAgIHJl
dHVybiBmYWxzZTsKICAgICAgICAgfQogCkBAIC0zMDQsNyArMzA0LDcgQEAgdm9pZCBDRE1TZXNz
aW9uQVZTdHJlYW1TZXNzaW9uOjpyZW1vdmVQYXJzZXIoQVZTdHJlYW1EYXRhUGFyc2VyKiBwYXJz
ZXIpCiAgICAgICAgIFttX3N0cmVhbVNlc3Npb24gcmVtb3ZlU3RyZWFtRGF0YVBhcnNlcjpwYXJz
ZXJdOwogfQogCi1QYXNzUmVmUHRyPFVpbnQ4QXJyYXk+IENETVNlc3Npb25BVlN0cmVhbVNlc3Np
b246OmdlbmVyYXRlS2V5UmVsZWFzZU1lc3NhZ2UodW5zaWduZWQgc2hvcnQmIGVycm9yQ29kZSwg
dW5zaWduZWQgbG9uZyYgc3lzdGVtQ29kZSkKK1Bhc3NSZWZQdHI8VWludDhBcnJheT4gQ0RNU2Vz
c2lvbkFWU3RyZWFtU2Vzc2lvbjo6Z2VuZXJhdGVLZXlSZWxlYXNlTWVzc2FnZSh1bnNpZ25lZCBz
aG9ydCYgZXJyb3JDb2RlLCB1aW50MzJfdCBzeXN0ZW1Db2RlKQogewogICAgIEFTU0VSVChtX21v
ZGUgPT0gS2V5UmVsZWFzZSk7CiAgICAgbV9jZXJ0aWZpY2F0ZSA9IG1faW5pdERhdGE7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2Jq
Yy9DRE1TZXNzaW9uTWVkaWFTb3VyY2VBVkZPYmpDLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9DRE1TZXNzaW9uTWVkaWFTb3VyY2VBVkZPYmpD
LmgKaW5kZXggNzVhNDQ4Yjk1YzY0MTk0MTg4MTFjMTIxYTBhNzQzZmYzYjAzMmU3YS4uNTQ1ZDg2
YTllYTFhMWJjOTc5MWJmZjMzMzY1YTcwN2U2NjEyMDEzZiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvQ0RNU2Vzc2lvbk1lZGlh
U291cmNlQVZGT2JqQy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2
Zm91bmRhdGlvbi9vYmpjL0NETVNlc3Npb25NZWRpYVNvdXJjZUFWRk9iakMuaApAQCAtNjMsNyAr
NjMsNiBAQCBwdWJsaWM6CiAgICAgdm9pZCBpbnZhbGlkYXRlQ0RNKCkgeyBtX2NkbSA9IG51bGxw
dHI7IH0KIAogcHJvdGVjdGVkOgotICAgIHN0YXRpYyBsb25nIHN5c3RlbUNvZGVGb3JFcnJvcihO
U0Vycm9yICopOwogICAgIFN0cmluZyBzdG9yYWdlUGF0aCgpIGNvbnN0OwogCiAgICAgQ0RNUHJp
dmF0ZU1lZGlhU291cmNlQVZGT2JqQyogbV9jZG07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9DRE1TZXNzaW9uTWVkaWFTb3Vy
Y2VBVkZPYmpDLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0
aW9uL29iamMvQ0RNU2Vzc2lvbk1lZGlhU291cmNlQVZGT2JqQy5tbQppbmRleCA0MmNiODhjZDRh
YjRjMmRhZDBhNTljMzQ5MzRkZTdiZWI3OGRkODk5Li4wNGZhMzVmYzlhNmU1OGI0MTJkNDhhNDI5
OWY2OTJkYzEwZjg4NzQ1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9hdmZvdW5kYXRpb24vb2JqYy9DRE1TZXNzaW9uTWVkaWFTb3VyY2VBVkZPYmpDLm1tCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL0NE
TVNlc3Npb25NZWRpYVNvdXJjZUFWRk9iakMubW0KQEAgLTMwLDggKzMwLDggQEAKIAogI2ltcG9y
dCAiQ0RNUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQy5oIgogI2ltcG9ydCAiRmlsZVN5c3RlbS5o
IgorI2ltcG9ydCAiV2ViQ29yZU5TRXJyb3JFeHRyYXMuaCIKICNpbXBvcnQgPEFWRm91bmRhdGlv
bi9BVkVycm9yLmg+Ci0jaW1wb3J0IDxjc3RkbGliPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAK
QEAgLTUyLDcgKzUyLDcgQEAgdm9pZCBDRE1TZXNzaW9uTWVkaWFTb3VyY2VBVkZPYmpDOjpsYXll
ckRpZFJlY2VpdmVFcnJvcihBVlNhbXBsZUJ1ZmZlckRpc3BsYXlMYXkKICAgICBpZiAoIW1fY2xp
ZW50KQogICAgICAgICByZXR1cm47CiAKLSAgICB1bnNpZ25lZCBsb25nIGNvZGUgPSBzdGQ6OmFi
cyhzeXN0ZW1Db2RlRm9yRXJyb3IoZXJyb3IpKTsKKyAgICB1bnNpZ25lZCBsb25nIGNvZGUgPSBt
ZWRpYUtleUVycm9yU3lzdGVtQ29kZShlcnJvcik7CiAKICAgICAvLyBGSVhNRSgxNDIyNDYpOiBS
ZW1vdmUgdGhlIGZvbGxvd2luZyBvbmNlIDxyZGFyOi8vcHJvYmxlbS8yMDAyNzQzND4gaXMgcmVz
b2x2ZWQuCiAgICAgc2hvdWxkSWdub3JlID0gbV9zdG9wcGVkICYmIGNvZGUgPT0gMTI3ODU7CkBA
IC02NSw3ICs2NSw3IEBAIHZvaWQgQ0RNU2Vzc2lvbk1lZGlhU291cmNlQVZGT2JqQzo6cmVuZGVy
ZXJEaWRSZWNlaXZlRXJyb3IoQVZTYW1wbGVCdWZmZXJBdWRpb1JlCiAgICAgaWYgKCFtX2NsaWVu
dCkKICAgICAgICAgcmV0dXJuOwogCi0gICAgdW5zaWduZWQgbG9uZyBjb2RlID0gc3RkOjphYnMo
c3lzdGVtQ29kZUZvckVycm9yKGVycm9yKSk7CisgICAgdW5zaWduZWQgbG9uZyBjb2RlID0gbWVk
aWFLZXlFcnJvclN5c3RlbUNvZGUoZXJyb3IpOwogCiAgICAgLy8gRklYTUUoMTQyMjQ2KTogUmVt
b3ZlIHRoZSBmb2xsb3dpbmcgb25jZSA8cmRhcjovL3Byb2JsZW0vMjAwMjc0MzQ+IGlzIHJlc29s
dmVkLgogICAgIHNob3VsZElnbm9yZSA9IG1fc3RvcHBlZCAmJiBjb2RlID09IDEyNzg1OwpAQCAt
OTYsMTkgKzk2LDYgQEAgdm9pZCBDRE1TZXNzaW9uTWVkaWFTb3VyY2VBVkZPYmpDOjpyZW1vdmVT
b3VyY2VCdWZmZXIoU291cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakMKICAgICBtX3NvdXJjZUJ1ZmZl
cnMucmVtb3ZlKG1fc291cmNlQnVmZmVycy5maW5kKHNvdXJjZUJ1ZmZlcikpOwogfQogCi1sb25n
IENETVNlc3Npb25NZWRpYVNvdXJjZUFWRk9iakM6OnN5c3RlbUNvZGVGb3JFcnJvcihOU0Vycm9y
ICplcnJvcikKLXsKLSAgICBOU0ludGVnZXIgY29kZSA9IFtlcnJvciBjb2RlXTsKLSAgICBpZiAo
Y29kZSAhPSBBVkVycm9yVW5rbm93bikKLSAgICAgICAgcmV0dXJuIGNvZGU7Ci0KLSAgICBOU0Vy
cm9yKiB1bmRlcmx5aW5nRXJyb3IgPSBbZXJyb3IudXNlckluZm8gdmFsdWVGb3JLZXk6TlNVbmRl
cmx5aW5nRXJyb3JLZXldOwotICAgIGlmICghdW5kZXJseWluZ0Vycm9yIHx8ICFbdW5kZXJseWlu
Z0Vycm9yIGlzS2luZE9mQ2xhc3M6W05TRXJyb3IgY2xhc3NdXSkKLSAgICAgICAgcmV0dXJuIGNv
ZGU7Ci0KLSAgICByZXR1cm4gW3VuZGVybHlpbmdFcnJvciBjb2RlXTsKLX0KLQogU3RyaW5nIENE
TVNlc3Npb25NZWRpYVNvdXJjZUFWRk9iakM6OnN0b3JhZ2VQYXRoKCkgY29uc3QKIHsKICAgICBy
ZXR1cm4gbV9jbGllbnQgPyBwYXRoQnlBcHBlbmRpbmdDb21wb25lbnQobV9jbGllbnQtPm1lZGlh
S2V5c1N0b3JhZ2VEaXJlY3RvcnkoKSwgIlNlY3VyZVN0b3AucGxpc3QiKSA6IGVtcHR5U3RyaW5n
KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL01vY2tDRE0uY3BwIGIvU291
cmNlL1dlYkNvcmUvdGVzdGluZy9Nb2NrQ0RNLmNwcAppbmRleCBiNzM0ZmZkYTU0ZWUxNjAwYzZl
OTY5ZGZjNGI5ZmY0MTVlYTNjNDk2Li5jNGI4OGQzYjI1N2I4YWUwMTAwZTAwNWQ0MTEyNGYzNzYy
YTE1OWFlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL01vY2tDRE0uY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvTW9ja0NETS5jcHAKQEAgLTQ0LDkgKzQ0LDkgQEAg
cHVibGljOgogCiAgICAgdmlydHVhbCB2b2lkIHNldENsaWVudChDRE1TZXNzaW9uQ2xpZW50KiBj
bGllbnQpIG92ZXJyaWRlIHsgbV9jbGllbnQgPSBjbGllbnQ7IH0KICAgICB2aXJ0dWFsIGNvbnN0
IFN0cmluZyYgc2Vzc2lvbklkKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gbV9zZXNzaW9uSWQ7
IH0KLSAgICB2aXJ0dWFsIFJlZlB0cjxVaW50OEFycmF5PiBnZW5lcmF0ZUtleVJlcXVlc3QoY29u
c3QgU3RyaW5nJiBtaW1lVHlwZSwgVWludDhBcnJheSogaW5pdERhdGEsIFN0cmluZyYgZGVzdGlu
YXRpb25VUkwsIHVuc2lnbmVkIHNob3J0JiBlcnJvckNvZGUsIHVuc2lnbmVkIGxvbmcmIHN5c3Rl
bUNvZGUpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgUmVmUHRyPFVpbnQ4QXJyYXk+IGdlbmVyYXRl
S2V5UmVxdWVzdChjb25zdCBTdHJpbmcmIG1pbWVUeXBlLCBVaW50OEFycmF5KiBpbml0RGF0YSwg
U3RyaW5nJiBkZXN0aW5hdGlvblVSTCwgdW5zaWduZWQgc2hvcnQmIGVycm9yQ29kZSwgdWludDMy
X3QmIHN5c3RlbUNvZGUpIG92ZXJyaWRlOwogICAgIHZpcnR1YWwgdm9pZCByZWxlYXNlS2V5cygp
IG92ZXJyaWRlOwotICAgIHZpcnR1YWwgYm9vbCB1cGRhdGUoVWludDhBcnJheSosIFJlZlB0cjxV
aW50OEFycmF5PiYgbmV4dE1lc3NhZ2UsIHVuc2lnbmVkIHNob3J0JiBlcnJvckNvZGUsIHVuc2ln
bmVkIGxvbmcmIHN5c3RlbUNvZGUpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgYm9vbCB1cGRhdGUo
VWludDhBcnJheSosIFJlZlB0cjxVaW50OEFycmF5PiYgbmV4dE1lc3NhZ2UsIHVuc2lnbmVkIHNo
b3J0JiBlcnJvckNvZGUsIHVpbnQzMl90JiBzeXN0ZW1Db2RlKSBvdmVycmlkZTsKIAogcHJvdGVj
dGVkOgogICAgIENETVNlc3Npb25DbGllbnQqIG1fY2xpZW50OwpAQCAtMTEyLDcgKzExMiw3IEBA
IE1vY2tDRE1TZXNzaW9uOjpNb2NrQ0RNU2Vzc2lvbihDRE1TZXNzaW9uQ2xpZW50KiBjbGllbnQp
CiB7CiB9CiAKLVJlZlB0cjxVaW50OEFycmF5PiBNb2NrQ0RNU2Vzc2lvbjo6Z2VuZXJhdGVLZXlS
ZXF1ZXN0KGNvbnN0IFN0cmluZyYsIFVpbnQ4QXJyYXkqIGluaXREYXRhLCBTdHJpbmcmLCB1bnNp
Z25lZCBzaG9ydCYgZXJyb3JDb2RlLCB1bnNpZ25lZCBsb25nJikKK1JlZlB0cjxVaW50OEFycmF5
PiBNb2NrQ0RNU2Vzc2lvbjo6Z2VuZXJhdGVLZXlSZXF1ZXN0KGNvbnN0IFN0cmluZyYsIFVpbnQ4
QXJyYXkqIGluaXREYXRhLCBTdHJpbmcmLCB1bnNpZ25lZCBzaG9ydCYgZXJyb3JDb2RlLCB1aW50
MzJfdCYpCiB7CiAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IGluaXREYXRhUHJlZml4KCkt
Pmxlbmd0aCgpOyArK2kpIHsKICAgICAgICAgaWYgKCFpbml0RGF0YSB8fCBpID49IGluaXREYXRh
LT5sZW5ndGgoKSB8fCBpbml0RGF0YS0+aXRlbShpKSAhPSBpbml0RGF0YVByZWZpeCgpLT5pdGVt
KGkpKSB7CkBAIC0xMjgsNyArMTI4LDcgQEAgdm9pZCBNb2NrQ0RNU2Vzc2lvbjo6cmVsZWFzZUtl
eXMoKQogICAgIC8vIG5vLW9wCiB9CiAKLWJvb2wgTW9ja0NETVNlc3Npb246OnVwZGF0ZShVaW50
OEFycmF5KiBrZXksIFJlZlB0cjxVaW50OEFycmF5PiYsIHVuc2lnbmVkIHNob3J0JiBlcnJvckNv
ZGUsIHVuc2lnbmVkIGxvbmcmKQorYm9vbCBNb2NrQ0RNU2Vzc2lvbjo6dXBkYXRlKFVpbnQ4QXJy
YXkqIGtleSwgUmVmUHRyPFVpbnQ4QXJyYXk+JiwgdW5zaWduZWQgc2hvcnQmIGVycm9yQ29kZSwg
dWludDMyX3QmKQogewogICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBrZXlQcmVmaXgoKS0+
bGVuZ3RoKCk7ICsraSkgewogICAgICAgICBpZiAoaSA+PSBrZXktPmxlbmd0aCgpIHx8IGtleS0+
aXRlbShpKSAhPSBrZXlQcmVmaXgoKS0+aXRlbShpKSkgewo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>269342</attachid>
            <date>2016-01-19 22:44:23 -0800</date>
            <delta_ts>2016-01-22 10:45:28 -0800</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-151963-20160119224354.patch</filename>
            <type>text/plain</type>
            <size>43473</size>
            <attacher name="Jer Noble">jer.noble</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTk1MzAwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNDY4NzUyZjMyNjhlNzM3
ZWFjOTJhZTFlNTExZGRkNWM0MDg3MTU5NC4uYWRkOWQ0ZWM4N2RhZTVjN2RlOWJhMzliZGQyMjRl
ZDEyNTgwYzIxNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDY1IEBACisyMDE1LTEyLTA3ICBKZXIg
Tm9ibGUgIDxqZXIubm9ibGVAYXBwbGUuY29tPgorCisgICAgICAgIFtFTUVdIENvcnJlY3RseSBy
ZXBvcnQgZXJyb3JzIHdoZW4gZ2VuZXJhdGluZyBrZXkgcmVxdWVzdHMgZnJvbSBBVkNvbnRlbnRL
ZXlTZXNzaW9uLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MTUxOTYzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgRXJpYyBDYXJsc29uLgorCisgICAgICAg
IFdlYklETCdzICJ1bnNpZ25lZCBsb25nIiBpcyBhIDMyLWJpdCB1bnNpZ25lZCBpbnRlZ2VyLCBh
bmQgQysrJ3MgInVuc2lnbmVkIGxvbmciIGlzIChvciwgY2FuCisgICAgICAgIGJlKSBhIDY0LWJp
dCBpbnRlZ2VyIG9uIDY0LWJpdCBwbGF0Zm9ybXMuIENhc3RpbmcgYSBuZWdhdGl2ZSBpbnRlZ2Vy
IHRvIGEgNjQtYml0IGludGVnZXIKKyAgICAgICAgcmVzdWx0cyBpbiBhIG51bWJlciB3aGljaCBj
YW5ub3QgYmUgYWNjdXJhdGVseSBzdG9yZWQgaW4gYSBkb3VibGUtbGVuZ3RoIGZsb2F0aW5nIHBv
aW50CisgICAgICAgIG51bWJlci4gUHJldmlvdXNseSwgdGhlIG1hYyBDRE0gY29kZSB3b3VsZCB3
b3JrIGFyb3VuZCB0aGlzIGlzc3VlIGJ5IHJldHVybmluZyB0aGUgYWJzb2x1dGUKKyAgICAgICAg
dmFsdWUgb2YgTlNFcnJvciBjb2RlIHJldHVybmVkIGJ5IG1lZGlhIGZyYW1ld29ya3MuIEluc3Rl
YWQsIGZpeCB0aGUgdW5kZXJseWluZyBwcm9ibGVtIGJ5CisgICAgICAgIHN0b3JpbmcgdGhlIE1l
ZGlhS2V5RXJyb3IncyBzeXN0ZW1Db2RlIGFzIGEgdWludDMyX3QgKHdoaWNoIG1vcmUgYWNjdXJh
dGVseSByZXByZXNlbnRzIHRoZQorICAgICAgICBzaXplIG9mIGEgV2ViSURMICJ1bnNpZ25lZCBs
b25nIiBvbiBhbGwgcGxhdGZvcm1zLikKKworICAgICAgICBDaGVjayB0aGUgZXJyb3IgY29kZSBp
c3N1ZWQgYnkgLWNvbnRlbnRLZXlSZXF1ZXN0RGF0YUZvckFwcDpjb250ZW50SWRlbnRpZmllcjpv
cHRpb25zOmVycm9yOi4KKworICAgICAgICAqIE1vZHVsZXMvZW5jcnlwdGVkbWVkaWEvQ0RNLmg6
CisgICAgICAgICogTW9kdWxlcy9lbmNyeXB0ZWRtZWRpYS9DRE1TZXNzaW9uQ2xlYXJLZXkuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6Q0RNU2Vzc2lvbkNsZWFyS2V5OjpnZW5lcmF0ZUtleVJlcXVl
c3QpOgorICAgICAgICAoV2ViQ29yZTo6Q0RNU2Vzc2lvbkNsZWFyS2V5Ojp1cGRhdGUpOgorICAg
ICAgICAqIE1vZHVsZXMvZW5jcnlwdGVkbWVkaWEvQ0RNU2Vzc2lvbkNsZWFyS2V5Lmg6CisgICAg
ICAgICogTW9kdWxlcy9lbmNyeXB0ZWRtZWRpYS9NZWRpYUtleVNlc3Npb24uY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6TWVkaWFLZXlTZXNzaW9uOjprZXlSZXF1ZXN0VGltZXJGaXJlZCk6CisgICAg
ICAgIChXZWJDb3JlOjpNZWRpYUtleVNlc3Npb246OmFkZEtleVRpbWVyRmlyZWQpOgorICAgICAg
ICAoV2ViQ29yZTo6TWVkaWFLZXlTZXNzaW9uOjpzZW5kRXJyb3IpOgorICAgICAgICAqIE1vZHVs
ZXMvZW5jcnlwdGVkbWVkaWEvTWVkaWFLZXlTZXNzaW9uLmg6CisgICAgICAgICogTW9kdWxlcy9t
ZWRpYWNvbnRyb2xzL21lZGlhQ29udHJvbHNBcHBsZS5qczoKKyAgICAgICAgKENvbnRyb2xsZXIu
cHJvdG90eXBlLmhhbmRsZVJlYWR5U3RhdGVDaGFuZ2UpOgorICAgICAgICAqIFdlYkNvcmUueGNv
ZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBodG1sL01lZGlhS2V5RXJyb3IuaDoK
KyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhS2V5RXJyb3I6OmNyZWF0ZSk6CisgICAgICAgIChXZWJD
b3JlOjpNZWRpYUtleUVycm9yOjpzeXN0ZW1Db2RlKToKKyAgICAgICAgKiBodG1sL01lZGlhS2V5
RXZlbnQuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9DRE1TZXNzaW9uLmg6CisgICAg
ICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL2NmL0NETVNlc3Npb25BVkZvdW5k
YXRpb25DRi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDRE1TZXNzaW9uQVZGb3VuZGF0aW9uQ0Y6
OmdlbmVyYXRlS2V5UmVxdWVzdCk6CisgICAgICAgIChXZWJDb3JlOjpDRE1TZXNzaW9uQVZGb3Vu
ZGF0aW9uQ0Y6OnVwZGF0ZSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0
aW9uL2NmL0NETVNlc3Npb25BVkZvdW5kYXRpb25DRi5oOgorICAgICAgICAqIHBsYXRmb3JtL2dy
YXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL0NETVNlc3Npb25BVkNvbnRlbnRLZXlTZXNzaW9uLmg6
CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvQ0RNU2Vzc2lv
bkFWQ29udGVudEtleVNlc3Npb24ubW06CisgICAgICAgIChXZWJDb3JlOjpDRE1TZXNzaW9uQVZD
b250ZW50S2V5U2Vzc2lvbjo6Z2VuZXJhdGVLZXlSZXF1ZXN0KToKKyAgICAgICAgKFdlYkNvcmU6
OkNETVNlc3Npb25BVkNvbnRlbnRLZXlTZXNzaW9uOjp1cGRhdGUpOgorICAgICAgICAoV2ViQ29y
ZTo6Q0RNU2Vzc2lvbkFWQ29udGVudEtleVNlc3Npb246OmdlbmVyYXRlS2V5UmVsZWFzZU1lc3Nh
Z2UpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL0NETVNl
c3Npb25BVkZvdW5kYXRpb25PYmpDLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvYXZm
b3VuZGF0aW9uL29iamMvQ0RNU2Vzc2lvbkFWRm91bmRhdGlvbk9iakMubW06CisgICAgICAgIChX
ZWJDb3JlOjpDRE1TZXNzaW9uQVZGb3VuZGF0aW9uT2JqQzo6Z2VuZXJhdGVLZXlSZXF1ZXN0KToK
KyAgICAgICAgKFdlYkNvcmU6OkNETVNlc3Npb25BVkZvdW5kYXRpb25PYmpDOjp1cGRhdGUpOgor
ICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL0NETVNlc3Npb25B
VlN0cmVhbVNlc3Npb24uaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRp
b24vb2JqYy9DRE1TZXNzaW9uQVZTdHJlYW1TZXNzaW9uLm1tOgorICAgICAgICAoV2ViQ29yZTo6
Q0RNU2Vzc2lvbkFWU3RyZWFtU2Vzc2lvbjo6Z2VuZXJhdGVLZXlSZXF1ZXN0KToKKyAgICAgICAg
KFdlYkNvcmU6OkNETVNlc3Npb25BVlN0cmVhbVNlc3Npb246OnVwZGF0ZSk6CisgICAgICAgIChX
ZWJDb3JlOjpDRE1TZXNzaW9uQVZTdHJlYW1TZXNzaW9uOjpnZW5lcmF0ZUtleVJlbGVhc2VNZXNz
YWdlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9DRE1T
ZXNzaW9uTWVkaWFTb3VyY2VBVkZPYmpDLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mv
YXZmb3VuZGF0aW9uL29iamMvQ0RNU2Vzc2lvbk1lZGlhU291cmNlQVZGT2JqQy5tbToKKyAgICAg
ICAgKFdlYkNvcmU6OkNETVNlc3Npb25NZWRpYVNvdXJjZUFWRk9iakM6OmxheWVyRGlkUmVjZWl2
ZUVycm9yKToKKyAgICAgICAgKFdlYkNvcmU6OkNETVNlc3Npb25NZWRpYVNvdXJjZUFWRk9iakM6
OnJlbmRlcmVyRGlkUmVjZWl2ZUVycm9yKToKKyAgICAgICAgKFdlYkNvcmU6OkNETVNlc3Npb25N
ZWRpYVNvdXJjZUFWRk9iakM6OnN5c3RlbUNvZGVGb3JFcnJvcik6IERlbGV0ZWQuCisgICAgICAg
ICogdGVzdGluZy9Nb2NrQ0RNLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok1vY2tDRE1TZXNzaW9u
OjpnZW5lcmF0ZUtleVJlcXVlc3QpOgorICAgICAgICAoV2ViQ29yZTo6TW9ja0NETVNlc3Npb246
OnVwZGF0ZSk6MjAxNi0wMS0xNSAgU2ltb24gRnJhc2VyICA8c2ltb24uZnJhc2VyQGFwcGxlLmNv
bT4KKwogMjAxNi0wMS0xOSAgRW5yaWNhIENhc3VjY2kgIDxlbnJpY2FAYXBwbGUuY29tPgogCiAg
ICAgICAgIEFkZCBzdXBwb3J0IGZvciBEYXRhRGV0ZWN0b3JzIGluIFdLIChpT1MpLgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9lbmNyeXB0ZWRtZWRpYS9DRE0uaCBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvZW5jcnlwdGVkbWVkaWEvQ0RNLmgKaW5kZXggOWJmZDFiYzI1NzA1
ZmZmNTZkMjNhZWQ3ZDEwZTM0M2RhOWMwMDY3Yi4uODFkMmRhOWZjZjMwMjAxNTI1Y2JkZmQ0YTBm
YzBiNTA3NGU3YjM0MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9lbmNyeXB0
ZWRtZWRpYS9DRE0uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2VuY3J5cHRlZG1lZGlh
L0NETS5oCkBAIC01NSw3ICs1NSw3IEBAIGNsYXNzIENETSB7CiBwdWJsaWM6CiAgICAgZXhwbGlj
aXQgQ0RNKGNvbnN0IFN0cmluZyYga2V5U3lzdGVtKTsKIAotICAgIGVudW0gQ0RNRXJyb3JDb2Rl
IHsgVW5rbm93bkVycm9yID0gMSwgQ2xpZW50RXJyb3IsIFNlcnZpY2VFcnJvciwgT3V0cHV0RXJy
b3IsIEhhcmR3YXJlQ2hhbmdlRXJyb3IsIERvbWFpbkVycm9yIH07CisgICAgZW51bSBDRE1FcnJv
ckNvZGUgeyBOb0Vycm9yLCBVbmtub3duRXJyb3IsIENsaWVudEVycm9yLCBTZXJ2aWNlRXJyb3Is
IE91dHB1dEVycm9yLCBIYXJkd2FyZUNoYW5nZUVycm9yLCBEb21haW5FcnJvciB9OwogICAgIHN0
YXRpYyBib29sIHN1cHBvcnRzS2V5U3lzdGVtKGNvbnN0IFN0cmluZyYpOwogICAgIHN0YXRpYyBi
b29sIGtleVN5c3RlbVN1cHBvcnRzTWltZVR5cGUoY29uc3QgU3RyaW5nJiBrZXlTeXN0ZW0sIGNv
bnN0IFN0cmluZyYgbWltZVR5cGUpOwogICAgIHN0YXRpYyBzdGQ6OnVuaXF1ZV9wdHI8Q0RNPiBj
cmVhdGUoY29uc3QgU3RyaW5nJiBrZXlTeXN0ZW0pOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9lbmNyeXB0ZWRtZWRpYS9DRE1TZXNzaW9uQ2xlYXJLZXkuY3BwIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9lbmNyeXB0ZWRtZWRpYS9DRE1TZXNzaW9uQ2xlYXJLZXkuY3BwCmlu
ZGV4IDllYzc5N2YwYzE0MWNkNWYzYTc5YzdlNzUxMjZjNGFlMWY0Y2UwMjMuLjU4OWFjZDIyNjk1
NDFmYTU2NjUyMjUwZjQ2MGNhMzdiMmI3Yjg0ODggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvZW5jcnlwdGVkbWVkaWEvQ0RNU2Vzc2lvbkNsZWFyS2V5LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL2VuY3J5cHRlZG1lZGlhL0NETVNlc3Npb25DbGVhcktleS5jcHAK
QEAgLTY5LDcgKzY5LDcgQEAgQ0RNU2Vzc2lvbkNsZWFyS2V5Ojp+Q0RNU2Vzc2lvbkNsZWFyS2V5
KCkKIHsKIH0KIAotUmVmUHRyPFVpbnQ4QXJyYXk+IENETVNlc3Npb25DbGVhcktleTo6Z2VuZXJh
dGVLZXlSZXF1ZXN0KGNvbnN0IFN0cmluZyYgbWltZVR5cGUsIFVpbnQ4QXJyYXkqIGluaXREYXRh
LCBTdHJpbmcmIGRlc3RpbmF0aW9uVVJMLCB1bnNpZ25lZCBzaG9ydCYgZXJyb3JDb2RlLCB1bnNp
Z25lZCBsb25nJiBzeXN0ZW1Db2RlKQorUmVmUHRyPFVpbnQ4QXJyYXk+IENETVNlc3Npb25DbGVh
cktleTo6Z2VuZXJhdGVLZXlSZXF1ZXN0KGNvbnN0IFN0cmluZyYgbWltZVR5cGUsIFVpbnQ4QXJy
YXkqIGluaXREYXRhLCBTdHJpbmcmIGRlc3RpbmF0aW9uVVJMLCB1bnNpZ25lZCBzaG9ydCYgZXJy
b3JDb2RlLCB1aW50MzJfdCYgc3lzdGVtQ29kZSkKIHsKICAgICBVTlVTRURfUEFSQU0obWltZVR5
cGUpOwogICAgIFVOVVNFRF9QQVJBTShkZXN0aW5hdGlvblVSTCk7CkBAIC05Niw3ICs5Niw3IEBA
IHZvaWQgQ0RNU2Vzc2lvbkNsZWFyS2V5OjpyZWxlYXNlS2V5cygpCiAgICAgbV9jYWNoZWRLZXlz
LmNsZWFyKCk7CiB9CiAKLWJvb2wgQ0RNU2Vzc2lvbkNsZWFyS2V5Ojp1cGRhdGUoVWludDhBcnJh
eSogcmF3S2V5c0RhdGEsIFJlZlB0cjxVaW50OEFycmF5PiYgbmV4dE1lc3NhZ2UsIHVuc2lnbmVk
IHNob3J0JiBlcnJvckNvZGUsIHVuc2lnbmVkIGxvbmcmIHN5c3RlbUNvZGUpCitib29sIENETVNl
c3Npb25DbGVhcktleTo6dXBkYXRlKFVpbnQ4QXJyYXkqIHJhd0tleXNEYXRhLCBSZWZQdHI8VWlu
dDhBcnJheT4mIG5leHRNZXNzYWdlLCB1bnNpZ25lZCBzaG9ydCYgZXJyb3JDb2RlLCB1aW50MzJf
dCYgc3lzdGVtQ29kZSkKIHsKICAgICBVTlVTRURfUEFSQU0obmV4dE1lc3NhZ2UpOwogICAgIFVO
VVNFRF9QQVJBTShzeXN0ZW1Db2RlKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvZW5jcnlwdGVkbWVkaWEvQ0RNU2Vzc2lvbkNsZWFyS2V5LmggYi9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL2VuY3J5cHRlZG1lZGlhL0NETVNlc3Npb25DbGVhcktleS5oCmluZGV4IGU1MDlmYjZh
NjdhZmRlMjcyYWQwOTc5NWY4NjFhYTI5NjNkNzhjYzIuLjQ2Mjg3MDk0YWE4YzY3ZTg0NTM2ZDk2
NTNmNDUxMzFhYTZjZmRlYzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZW5j
cnlwdGVkbWVkaWEvQ0RNU2Vzc2lvbkNsZWFyS2V5LmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9lbmNyeXB0ZWRtZWRpYS9DRE1TZXNzaW9uQ2xlYXJLZXkuaApAQCAtNDIsOSArNDIsOSBA
QCBwdWJsaWM6CiAgICAgdmlydHVhbCBDRE1TZXNzaW9uVHlwZSB0eXBlKCkgb3ZlcnJpZGUgeyBy
ZXR1cm4gQ0RNU2Vzc2lvblR5cGVDbGVhcktleTsgfQogICAgIHZpcnR1YWwgdm9pZCBzZXRDbGll
bnQoQ0RNU2Vzc2lvbkNsaWVudCogY2xpZW50KSBvdmVycmlkZSB7IG1fY2xpZW50ID0gY2xpZW50
OyB9CiAgICAgdmlydHVhbCBjb25zdCBTdHJpbmcmIHNlc3Npb25JZCgpIGNvbnN0IG92ZXJyaWRl
IHsgcmV0dXJuIG1fc2Vzc2lvbklkOyB9Ci0gICAgdmlydHVhbCBSZWZQdHI8VWludDhBcnJheT4g
Z2VuZXJhdGVLZXlSZXF1ZXN0KGNvbnN0IFN0cmluZyYgbWltZVR5cGUsIFVpbnQ4QXJyYXkqLCBT
dHJpbmcmLCB1bnNpZ25lZCBzaG9ydCYsIHVuc2lnbmVkIGxvbmcmKSBvdmVycmlkZTsKKyAgICB2
aXJ0dWFsIFJlZlB0cjxVaW50OEFycmF5PiBnZW5lcmF0ZUtleVJlcXVlc3QoY29uc3QgU3RyaW5n
JiBtaW1lVHlwZSwgVWludDhBcnJheSosIFN0cmluZyYsIHVuc2lnbmVkIHNob3J0JiwgdWludDMy
X3QmKSBvdmVycmlkZTsKICAgICB2aXJ0dWFsIHZvaWQgcmVsZWFzZUtleXMoKSBvdmVycmlkZTsK
LSAgICB2aXJ0dWFsIGJvb2wgdXBkYXRlKFVpbnQ4QXJyYXkqLCBSZWZQdHI8VWludDhBcnJheT4m
LCB1bnNpZ25lZCBzaG9ydCYsIHVuc2lnbmVkIGxvbmcmKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFs
IGJvb2wgdXBkYXRlKFVpbnQ4QXJyYXkqLCBSZWZQdHI8VWludDhBcnJheT4mLCB1bnNpZ25lZCBz
aG9ydCYsIHVpbnQzMl90Jikgb3ZlcnJpZGU7CiAgICAgdmlydHVhbCBSZWZQdHI8QXJyYXlCdWZm
ZXI+IGNhY2hlZEtleUZvcktleUlEKGNvbnN0IFN0cmluZyYpIGNvbnN0IG92ZXJyaWRlOwogCiBw
cm90ZWN0ZWQ6CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2VuY3J5cHRlZG1l
ZGlhL01lZGlhS2V5U2Vzc2lvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2VuY3J5cHRl
ZG1lZGlhL01lZGlhS2V5U2Vzc2lvbi5jcHAKaW5kZXggYmYxNjJkZWM3MDhiYWUzYjg4Yzg4NTg1
Y2FhYTJhZTVhMmE2NjE2Zi4uODczYmMyNjQyZDdkMTNmMGMyZjZjMzVmYjcyZDUwZjM0YTUxMjM5
MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9lbmNyeXB0ZWRtZWRpYS9NZWRp
YUtleVNlc3Npb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZW5jcnlwdGVkbWVk
aWEvTWVkaWFLZXlTZXNzaW9uLmNwcApAQCAtMTExLDcgKzExMSw3IEBAIHZvaWQgTWVkaWFLZXlT
ZXNzaW9uOjprZXlSZXF1ZXN0VGltZXJGaXJlZCgpCiAgICAgICAgIC8vIDIuIExldCBkZXN0aW5h
dGlvblVSTCBiZSBudWxsLgogICAgICAgICBTdHJpbmcgZGVzdGluYXRpb25VUkw7CiAgICAgICAg
IE1lZGlhS2V5RXJyb3I6OkNvZGUgZXJyb3JDb2RlID0gMDsKLSAgICAgICAgdW5zaWduZWQgbG9u
ZyBzeXN0ZW1Db2RlID0gMDsKKyAgICAgICAgdWludDMyX3Qgc3lzdGVtQ29kZSA9IDA7CiAKICAg
ICAgICAgLy8gMy4gVXNlIGNkbSB0byBnZW5lcmF0ZSBhIGtleSByZXF1ZXN0IGFuZCBmb2xsb3cg
dGhlIHN0ZXBzIGZvciB0aGUgZmlyc3QgbWF0Y2hpbmcgY29uZGl0aW9uIGZyb20gdGhlIGZvbGxv
d2luZyBsaXN0OgogCkBAIC0xNjMsNyArMTYzLDcgQEAgdm9pZCBNZWRpYUtleVNlc3Npb246OmFk
ZEtleVRpbWVyRmlyZWQoKQogICAgIHdoaWxlICghbV9wZW5kaW5nS2V5cy5pc0VtcHR5KCkpIHsK
ICAgICAgICAgUmVmUHRyPFVpbnQ4QXJyYXk+IHBlbmRpbmdLZXkgPSBtX3BlbmRpbmdLZXlzLnRh
a2VGaXJzdCgpOwogICAgICAgICB1bnNpZ25lZCBzaG9ydCBlcnJvckNvZGUgPSAwOwotICAgICAg
ICB1bnNpZ25lZCBsb25nIHN5c3RlbUNvZGUgPSAwOworICAgICAgICB1aW50MzJfdCBzeXN0ZW1D
b2RlID0gMDsKIAogICAgICAgICAvLyBOT1RFOiBDb250aW51ZWQgZnJvbSBzdGVwIDIuIG9mIE1l
ZGlhS2V5U2Vzc2lvbjo6dXBkYXRlKCkKICAgICAgICAgLy8gMi4xLiBMZXQgY2RtIGJlIHRoZSBj
ZG0gbG9hZGVkIGluIHRoZSBNZWRpYUtleXMgY29uc3RydWN0b3IuCkBAIC0yMTksNyArMjE5LDcg
QEAgdm9pZCBNZWRpYUtleVNlc3Npb246OnNlbmRNZXNzYWdlKFVpbnQ4QXJyYXkqIG1lc3NhZ2Us
IFN0cmluZyBkZXN0aW5hdGlvblVSTCkKICAgICBtX2FzeW5jRXZlbnRRdWV1ZS5lbnF1ZXVlRXZl
bnQoZXZlbnQucmVsZWFzZSgpKTsKIH0KIAotdm9pZCBNZWRpYUtleVNlc3Npb246OnNlbmRFcnJv
cihDRE1TZXNzaW9uQ2xpZW50OjpNZWRpYUtleUVycm9yQ29kZSBlcnJvckNvZGUsIHVuc2lnbmVk
IGxvbmcgc3lzdGVtQ29kZSkKK3ZvaWQgTWVkaWFLZXlTZXNzaW9uOjpzZW5kRXJyb3IoQ0RNU2Vz
c2lvbkNsaWVudDo6TWVkaWFLZXlFcnJvckNvZGUgZXJyb3JDb2RlLCB1aW50MzJfdCBzeXN0ZW1D
b2RlKQogewogICAgIFJlZjxNZWRpYUtleUVycm9yPiBlcnJvciA9IE1lZGlhS2V5RXJyb3I6OmNy
ZWF0ZShlcnJvckNvZGUsIHN5c3RlbUNvZGUpLmdldCgpOwogICAgIHNldEVycm9yKGVycm9yLnB0
cigpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZW5jcnlwdGVkbWVkaWEv
TWVkaWFLZXlTZXNzaW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2VuY3J5cHRlZG1lZGlh
L01lZGlhS2V5U2Vzc2lvbi5oCmluZGV4IGE0NmRiYTQ3ZDE1N2JiN2FkYjY1NWU4NzkzYzFiMjYx
Nzk2NWI3MDcuLjRiNTE3MTQ4MDBkZWViMzc2Y2U2Yzg4ODBlYzNmZmM2MjQyZDIxOGUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZW5jcnlwdGVkbWVkaWEvTWVkaWFLZXlTZXNz
aW9uLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9lbmNyeXB0ZWRtZWRpYS9NZWRpYUtl
eVNlc3Npb24uaApAQCAtODYsNyArODYsNyBAQCBwcm90ZWN0ZWQ6CiAKICAgICAvLyBDRE1TZXNz
aW9uQ2xpZW50CiAgICAgdmlydHVhbCB2b2lkIHNlbmRNZXNzYWdlKFVpbnQ4QXJyYXkqLCBTdHJp
bmcgZGVzdGluYXRpb25VUkwpIG92ZXJyaWRlOwotICAgIHZpcnR1YWwgdm9pZCBzZW5kRXJyb3Io
TWVkaWFLZXlFcnJvckNvZGUsIHVuc2lnbmVkIGxvbmcgc3lzdGVtQ29kZSkgb3ZlcnJpZGU7Cisg
ICAgdmlydHVhbCB2b2lkIHNlbmRFcnJvcihNZWRpYUtleUVycm9yQ29kZSwgdWludDMyX3Qgc3lz
dGVtQ29kZSkgb3ZlcnJpZGU7CiAgICAgdmlydHVhbCBTdHJpbmcgbWVkaWFLZXlzU3RvcmFnZURp
cmVjdG9yeSgpIGNvbnN0IG92ZXJyaWRlOwogCiAgICAgTWVkaWFLZXlzKiBtX2tleXM7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2og
Yi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXgg
MTVmMmZmOTY3MzIwMGJkNzdiNTEwZWY5MGU4ZjJiODlmOTk0NzliMC4uYzUzMDNkYTZkNzc4MjE5
ZTMzOWI5MjQzYjFhYzVkNzJlMDdjZDA3YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2Vi
Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNv
cmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtNjA2OCw2ICs2MDY4LDggQEAKIAkJQ0RD
OEI1QUExODA0N0ZGMTAwMTZFNjg1IC8qIFNvdXJjZUJ1ZmZlclByaXZhdGVBVkZPYmpDLm1tIGlu
IFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0RDOEI1QTgxODA0
N0ZGMTAwMTZFNjg1IC8qIFNvdXJjZUJ1ZmZlclByaXZhdGVBVkZPYmpDLm1tICovOyB9OwogCQlD
REM4QjVBQjE4MDQ3RkYxMDAxNkU2ODUgLyogU291cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakMuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENEQzhCNUE5MTgw
NDdGRjEwMDE2RTY4NSAvKiBTb3VyY2VCdWZmZXJQcml2YXRlQVZGT2JqQy5oICovOyB9OwogCQlD
REM4QjVBRDE4MDRBRTVEMDAxNkU2ODUgLyogU291cmNlQnVmZmVyUHJpdmF0ZUNsaWVudC5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0RDOEI1QUMxODA0
QUU1RDAwMTZFNjg1IC8qIFNvdXJjZUJ1ZmZlclByaXZhdGVDbGllbnQuaCAqLzsgfTsKKwkJQ0RD
OTc5RjQxQzQ5OEMwOTAwREI1MEQ0IC8qIFdlYkNvcmVOU0Vycm9yRXh0cmFzLm1tIGluIFNvdXJj
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0RDOTc5RjIxQzQ5OEMwOTAw
REI1MEQ0IC8qIFdlYkNvcmVOU0Vycm9yRXh0cmFzLm1tICovOyB9OworCQlDREM5NzlGNTFDNDk4
QzA5MDBEQjUwRDQgLyogV2ViQ29yZU5TRXJyb3JFeHRyYXMuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENEQzk3OUYzMUM0OThDMDkwMERCNTBENCAvKiBX
ZWJDb3JlTlNFcnJvckV4dHJhcy5oICovOyB9OwogCQlDRENBODI5NjE2NzkxMDBGMDA4NzU3MTQg
LyogVGV4dFRyYWNrUmVwcmVzZW50YXRpb25JT1MubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDRENBODI5NDE2NzkxMDBGMDA4NzU3MTQgLyogVGV4dFRy
YWNrUmVwcmVzZW50YXRpb25JT1MubW0gKi87IH07CiAJCUNEQ0E5OEVCMThCMkM4RUIwMEMxMkZG
OSAvKiBDRE1Qcml2YXRlTWVkaWFQbGF5ZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gQ0RDQTk4RUExOEIyQzhFQjAwQzEyRkY5IC8qIENETVByaXZh
dGVNZWRpYVBsYXllci5jcHAgKi87IH07CiAJCUNEQ0ZBQkJEMThDMEFGNzgwMDZGODQ1MCAvKiBT
ZWxlY3Rpb25TdWJ0cmVlUm9vdC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gQ0RDRkFCQkIxOEMwQUUzMTAwNkY4NDUwIC8qIFNlbGVjdGlvblN1YnRyZWVS
b290LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKQEAg
LTEzOTQ3LDYgKzEzOTQ5LDggQEAKIAkJQ0RDOEI1QTgxODA0N0ZGMTAwMTZFNjg1IC8qIFNvdXJj
ZUJ1ZmZlclByaXZhdGVBVkZPYmpDLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3Bw
OyBwYXRoID0gU291cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakMubW07IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCUNEQzhCNUE5MTgwNDdGRjEwMDE2RTY4NSAvKiBTb3VyY2VCdWZmZXJQcml2
YXRlQVZGT2JqQy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTb3VyY2VCdWZm
ZXJQcml2YXRlQVZGT2JqQy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlDREM4QjVB
QzE4MDRBRTVEMDAxNkU2ODUgLyogU291cmNlQnVmZmVyUHJpdmF0ZUNsaWVudC5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTb3VyY2VCdWZmZXJQcml2YXRlQ2xpZW50Lmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUNEQzk3OUYyMUM0OThDMDkwMERCNTBENCAvKiBX
ZWJDb3JlTlNFcnJvckV4dHJhcy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsg
cGF0aCA9IFdlYkNvcmVOU0Vycm9yRXh0cmFzLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OworCQlDREM5NzlGMzFDNDk4QzA5MDBEQjUwRDQgLyogV2ViQ29yZU5TRXJyb3JFeHRyYXMuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViQ29yZU5TRXJyb3JFeHRyYXMuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQ0RDQTgyOTQxNjc5MTAwRjAwODc1NzE0IC8q
IFRleHRUcmFja1JlcHJlc2VudGF0aW9uSU9TLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
b2JqY3BwOyBwYXRoID0gVGV4dFRyYWNrUmVwcmVzZW50YXRpb25JT1MubW07IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCUNEQ0E5OEU5MThCMkM4RDAwMEMxMkZGOSAvKiBDRE1Qcml2YXRl
TWVkaWFQbGF5ZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQ0RNUHJpdmF0
ZU1lZGlhUGxheWVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUNEQ0E5OEVBMThC
MkM4RUIwMEMxMkZGOSAvKiBDRE1Qcml2YXRlTWVkaWFQbGF5ZXIuY3BwICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQ0RNUHJpdmF0ZU1lZGlhUGxheWVyLmNwcDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTE5NzQ4LDYgKzE5NzUyLDggQEAKIAkJCQkzMTBENzE5
MzFCMzM1QzlEMDA5QzdCNzMgLyogVGhlbWVDb2NvYS5jcHAgKi8sCiAJCQkJMzEwRDcxOTQxQjMz
NUM5RDAwOUM3QjczIC8qIFRoZW1lQ29jb2EuaCAqLywKIAkJCQk0NkRCN0Q1NjFCMjBGRTNDMDA1
NjUxQjIgLyogVk5vZGVUcmFja2VyQ29jb2EuY3BwICovLAorCQkJCUNEQzk3OUYyMUM0OThDMDkw
MERCNTBENCAvKiBXZWJDb3JlTlNFcnJvckV4dHJhcy5tbSAqLywKKwkJCQlDREM5NzlGMzFDNDk4
QzA5MDBEQjUwRDQgLyogV2ViQ29yZU5TRXJyb3JFeHRyYXMuaCAqLywKIAkJCSk7CiAJCQlwYXRo
ID0gY29jb2E7CiAJCQlzb3VyY2VUcmVlID0gIjxncm91cD4iOwpAQCAtMjY2MzcsNiArMjY2NDMs
NyBAQAogCQkJCTMxNkZFMTFBMEU2RTFEQTcwMEJGNjA4OCAvKiBLZXlmcmFtZUFuaW1hdGlvbi5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJQkM1RUJBMTEwRTgyM0U0NzAwQjI1OTY1IC8qIEtleWZyYW1l
TGlzdC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRTE1RkY3RDUxOEM5NTUzODAwRkU0Qzg3IC8qIEtl
eXByZXNzQ29tbWFuZC5oIGluIEhlYWRlcnMgKi8sCisJCQkJQ0RDOTc5RjUxQzQ5OEMwOTAwREI1
MEQ0IC8qIFdlYkNvcmVOU0Vycm9yRXh0cmFzLmggaW4gSGVhZGVycyAqLywKIAkJCQk1MjFENDZG
ODExQUVDOUIxMDA1MTQ2MTMgLyogS2lsbFJpbmcuaCBpbiBIZWFkZXJzICovLAogCQkJCTQ1MENF
QkYxMTUwNzNCQkUwMDJCQjE0OSAvKiBMYWJlbGFibGVFbGVtZW50LmggaW4gSGVhZGVycyAqLywK
IAkJCQlBNDU2RkEyNzExQUQ0QTgzMDAyMEI0MjAgLyogTGFiZWxzTm9kZUxpc3QuaCBpbiBIZWFk
ZXJzICovLApAQCAtMjg4NDAsNiArMjg4NDcsNyBAQAogCQkJCUUxNkE4NEY5MTRDODVDQ0MwMDI5
NzdERiAvKiBDU1NCb3JkZXJJbWFnZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlCQzI3NEIzMTE0
MEVCRUQ4MDBFQURGQTYgLyogQ1NTQm9yZGVySW1hZ2VTbGljZVZhbHVlLmNwcCBpbiBTb3VyY2Vz
ICovLAogCQkJCTQ5QUUyRDhFMTM0RUU1MEMwMDcyOTIwQSAvKiBDU1NDYWxjdWxhdGlvblZhbHVl
LmNwcCBpbiBTb3VyY2VzICovLAorCQkJCUNEQzk3OUY0MUM0OThDMDkwMERCNTBENCAvKiBXZWJD
b3JlTlNFcnJvckV4dHJhcy5tbSBpbiBTb3VyY2VzICovLAogCQkJCUJDNjA0QTQzMERCNTYzNEUw
MDIwNDczOSAvKiBDU1NDYW52YXNWYWx1ZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlFMUVCQkJE
NDBBQUM5Qjg3MDAxRkU4RTIgLyogQ1NTQ2hhcnNldFJ1bGUuY3BwIGluIFNvdXJjZXMgKi8sCiAJ
CQkJQkNFQTQ3OEYwOTdDQUFDODAwOTRDOUU0IC8qIENTU0NvbXB1dGVkU3R5bGVEZWNsYXJhdGlv
bi5jcHAgaW4gU291cmNlcyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvTWVk
aWFLZXlFcnJvci5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9NZWRpYUtleUVycm9yLmgKaW5kZXgg
MTE1Yzk2MTQ2NzczZmVkOGI4NTc3YzRhMTgyNjM4Mjk1NzQwZmZlOC4uNDg3ZDQ2NWNlN2IwOGE4
ZGFmNWIzNWU3ZDExZWQyODQwMzcxNmM4YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRt
bC9NZWRpYUtleUVycm9yLmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9NZWRpYUtleUVycm9y
LmgKQEAgLTQ2LDEwICs0NiwxMCBAQCBwdWJsaWM6CiAgICAgfTsKICAgICB0eXBlZGVmIHVuc2ln
bmVkIHNob3J0IENvZGU7CiAKLSAgICBzdGF0aWMgUmVmPE1lZGlhS2V5RXJyb3I+IGNyZWF0ZShD
b2RlIGNvZGUsIHVuc2lnbmVkIGxvbmcgc3lzdGVtQ29kZSA9IDApIHsgcmV0dXJuIGFkb3B0UmVm
KCpuZXcgTWVkaWFLZXlFcnJvcihjb2RlLCBzeXN0ZW1Db2RlKSk7IH0KKyAgICBzdGF0aWMgUmVm
PE1lZGlhS2V5RXJyb3I+IGNyZWF0ZShDb2RlIGNvZGUsIHVpbnQzMl90IHN5c3RlbUNvZGUgPSAw
KSB7IHJldHVybiBhZG9wdFJlZigqbmV3IE1lZGlhS2V5RXJyb3IoY29kZSwgc3lzdGVtQ29kZSkp
OyB9CiAKICAgICBDb2RlIGNvZGUoKSBjb25zdCB7IHJldHVybiBtX2NvZGU7IH0KLSAgICB1bnNp
Z25lZCBsb25nIHN5c3RlbUNvZGUoKSB7IHJldHVybiBtX3N5c3RlbUNvZGU7IH0KKyAgICB1aW50
MzJfdCBzeXN0ZW1Db2RlKCkgeyByZXR1cm4gbV9zeXN0ZW1Db2RlOyB9CiAKIHByaXZhdGU6CiAg
ICAgZXhwbGljaXQgTWVkaWFLZXlFcnJvcihDb2RlIGNvZGUsIHVuc2lnbmVkIGxvbmcgc3lzdGVt
Q29kZSkgOiBtX2NvZGUoY29kZSksIG1fc3lzdGVtQ29kZShzeXN0ZW1Db2RlKSB7IH0KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvTWVkaWFLZXlFdmVudC5oIGIvU291cmNlL1dlYkNv
cmUvaHRtbC9NZWRpYUtleUV2ZW50LmgKaW5kZXggNzc0ZGUzMGRhZDNjZGQ4YzFmZWNmZDgyNzg4
YTU2OTE5MDhjYzNmMi4uZjkxODMyMjljZTY5ODc5MDJkZmNlMWYxMjQwYmY0OTQwY2Y1MzVkYiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9NZWRpYUtleUV2ZW50LmgKKysrIGIvU291
cmNlL1dlYkNvcmUvaHRtbC9NZWRpYUtleUV2ZW50LmgKQEAgLTQyLDcgKzQyLDcgQEAgc3RydWN0
IE1lZGlhS2V5RXZlbnRJbml0IDogcHVibGljIEV2ZW50SW5pdCB7CiAgICAgUmVmUHRyPFVpbnQ4
QXJyYXk+IG1lc3NhZ2U7CiAgICAgU3RyaW5nIGRlZmF1bHRVUkw7CiAgICAgUmVmUHRyPE1lZGlh
S2V5RXJyb3I+IGVycm9yQ29kZTsKLSAgICB1bnNpZ25lZCBzaG9ydCBzeXN0ZW1Db2RlOworICAg
IHVpbnQzMl90IHN5c3RlbUNvZGU7CiB9OwogCiBjbGFzcyBNZWRpYUtleUV2ZW50IGZpbmFsIDog
cHVibGljIEV2ZW50IHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2NvY29h
L1dlYkNvcmVOU0Vycm9yRXh0cmFzLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jb2NvYS9X
ZWJDb3JlTlNFcnJvckV4dHJhcy5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmZiMjRkZDQxMDI2NWNhZDU0MmY2YmEx
MDJiOWNkOGVjYTYyMjA3NzUKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9jb2NvYS9XZWJDb3JlTlNFcnJvckV4dHJhcy5oCkBAIC0wLDAgKzEsMzUgQEAKKy8qCisg
KiBDb3B5cmlnaHQgKEMpIDIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoK
KyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmli
dXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0
aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQg
SVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJ
RUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUg
SU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5U
SUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBP
RgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9S
IFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFO
RCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4K
KyAqLworCisjaWZuZGVmIFdlYkNvcmVOU0Vycm9yRXh0cmFzX2gKKyNkZWZpbmUgV2ViQ29yZU5T
RXJyb3JFeHRyYXNfaAorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK1dFQkNPUkVfRVhQT1JUIGxv
bmcgbWVkaWFLZXlFcnJvclN5c3RlbUNvZGUoTlNFcnJvciAqKTsKKworfQorCisjZW5kaWYgLy8g
V2ViQ29yZU5TRXJyb3JFeHRyYXNfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vY29jb2EvV2ViQ29yZU5TRXJyb3JFeHRyYXMubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9jb2NvYS9XZWJDb3JlTlNFcnJvckV4dHJhcy5tbQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41MjM5OWQ2NGFhNGE1
ZTE2NTE0ZWZiYjc0YzBkMzQ1MzA3NGUyMTg1Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vY29jb2EvV2ViQ29yZU5TRXJyb3JFeHRyYXMubW0KQEAgLTAsMCArMSw0
NiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisgKiAKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICog
MS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9y
bSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisg
KiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0
aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQ
TEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVT
UyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAor
ICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1Mg
Rk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQg
U0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFO
WSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisg
KiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQ
Uk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBV
U0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VW
RVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICog
Q09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNF
IE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4KKyAqLworCisjaW1wb3J0ICJjb25maWcuaCIKKyNpbXBvcnQgIldlYkNvcmVO
U0Vycm9yRXh0cmFzLmgiCisKKyNpbXBvcnQgPEFWRm91bmRhdGlvbi9BVkVycm9yLmg+CisKK25h
bWVzcGFjZSBXZWJDb3JlIHsKKworbG9uZyBtZWRpYUtleUVycm9yU3lzdGVtQ29kZShOU0Vycm9y
ICplcnJvcikKK3sKKyAgICBOU0ludGVnZXIgY29kZSA9IFtlcnJvciBjb2RlXTsKKworICAgIGlm
IChjb2RlID09IEFWRXJyb3JVbmtub3duKSB7CisgICAgICAgIE5TRXJyb3IqIHVuZGVybHlpbmdF
cnJvciA9IFtlcnJvci51c2VySW5mbyB2YWx1ZUZvcktleTpOU1VuZGVybHlpbmdFcnJvcktleV07
CisgICAgICAgIGlmICh1bmRlcmx5aW5nRXJyb3IgJiYgW3VuZGVybHlpbmdFcnJvciBpc0tpbmRP
ZkNsYXNzOltOU0Vycm9yIGNsYXNzXV0pCisgICAgICAgICAgICByZXR1cm4gW3VuZGVybHlpbmdF
cnJvciBjb2RlXTsKKyAgICB9CisKKyAgICByZXR1cm4gY29kZTsKK30KKworfQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvQ0RNU2Vzc2lvbi5oIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvQ0RNU2Vzc2lvbi5oCmluZGV4IDQ1NTE0MDUyYTkw
YmU4MzA2MTQ3MTdjNzliMTJkNjE3Yjc0YmIzOTEuLmE3MWVhNWNjYjU4MzAyNTQ1Mzc1NjJmMWM5
NGMyODU5MTA5MzZjYzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL0NETVNlc3Npb24uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9D
RE1TZXNzaW9uLmgKQEAgLTQ5LDcgKzQ5LDcgQEAgcHVibGljOgogICAgICAgICBNZWRpYUtleUVy
cm9yRG9tYWluLAogICAgIH07CiAgICAgdHlwZWRlZiB1bnNpZ25lZCBzaG9ydCBNZWRpYUtleUVy
cm9yQ29kZTsKLSAgICB2aXJ0dWFsIHZvaWQgc2VuZEVycm9yKE1lZGlhS2V5RXJyb3JDb2RlLCB1
bnNpZ25lZCBsb25nIHN5c3RlbUNvZGUpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgc2VuZEVycm9y
KE1lZGlhS2V5RXJyb3JDb2RlLCB1aW50MzJfdCBzeXN0ZW1Db2RlKSA9IDA7CiAKICAgICB2aXJ0
dWFsIFN0cmluZyBtZWRpYUtleXNTdG9yYWdlRGlyZWN0b3J5KCkgY29uc3QgPSAwOwogfTsKQEAg
LTcwLDkgKzcwLDkgQEAgcHVibGljOgogICAgIHZpcnR1YWwgQ0RNU2Vzc2lvblR5cGUgdHlwZSgp
IHsgcmV0dXJuIENETVNlc3Npb25UeXBlVW5rbm93bjsgfQogICAgIHZpcnR1YWwgdm9pZCBzZXRD
bGllbnQoQ0RNU2Vzc2lvbkNsaWVudCopID0gMDsKICAgICB2aXJ0dWFsIGNvbnN0IFN0cmluZyYg
c2Vzc2lvbklkKCkgY29uc3QgPSAwOwotICAgIHZpcnR1YWwgUmVmUHRyPFVpbnQ4QXJyYXk+IGdl
bmVyYXRlS2V5UmVxdWVzdChjb25zdCBTdHJpbmcmIG1pbWVUeXBlLCBVaW50OEFycmF5KiBpbml0
RGF0YSwgU3RyaW5nJiBkZXN0aW5hdGlvblVSTCwgdW5zaWduZWQgc2hvcnQmIGVycm9yQ29kZSwg
dW5zaWduZWQgbG9uZyYgc3lzdGVtQ29kZSkgPSAwOworICAgIHZpcnR1YWwgUmVmUHRyPFVpbnQ4
QXJyYXk+IGdlbmVyYXRlS2V5UmVxdWVzdChjb25zdCBTdHJpbmcmIG1pbWVUeXBlLCBVaW50OEFy
cmF5KiBpbml0RGF0YSwgU3RyaW5nJiBkZXN0aW5hdGlvblVSTCwgdW5zaWduZWQgc2hvcnQmIGVy
cm9yQ29kZSwgdWludDMyX3QmIHN5c3RlbUNvZGUpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgcmVs
ZWFzZUtleXMoKSA9IDA7Ci0gICAgdmlydHVhbCBib29sIHVwZGF0ZShVaW50OEFycmF5KiwgUmVm
UHRyPFVpbnQ4QXJyYXk+JiBuZXh0TWVzc2FnZSwgdW5zaWduZWQgc2hvcnQmIGVycm9yQ29kZSwg
dW5zaWduZWQgbG9uZyYgc3lzdGVtQ29kZSkgPSAwOworICAgIHZpcnR1YWwgYm9vbCB1cGRhdGUo
VWludDhBcnJheSosIFJlZlB0cjxVaW50OEFycmF5PiYgbmV4dE1lc3NhZ2UsIHVuc2lnbmVkIHNo
b3J0JiBlcnJvckNvZGUsIHVpbnQzMl90JiBzeXN0ZW1Db2RlKSA9IDA7CiAgICAgdmlydHVhbCBS
ZWZQdHI8QXJyYXlCdWZmZXI+IGNhY2hlZEtleUZvcktleUlEKGNvbnN0IFN0cmluZyYpIGNvbnN0
IHsgcmV0dXJuIG51bGxwdHI7IH0KIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9jZi9DRE1TZXNzaW9uQVZGb3VuZGF0aW9uQ0Yu
Y3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL2NmL0NE
TVNlc3Npb25BVkZvdW5kYXRpb25DRi5jcHAKaW5kZXggOTRlZjEwMmYwZmY3ZjQyZGIzNGFlMjQ2
Y2I3NTA2MDQ5MmZjMGJiOC4uNzY0MjJmMjk2ZTU3MzQxZWIzZWQ5NGM5YTY0MzQ0YmU3Y2YwZmJh
YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0
aW9uL2NmL0NETVNlc3Npb25BVkZvdW5kYXRpb25DRi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL2NmL0NETVNlc3Npb25BVkZvdW5kYXRpb25D
Ri5jcHAKQEAgLTUxLDcgKzUxLDcgQEAgQ0RNU2Vzc2lvbkFWRm91bmRhdGlvbkNGOjpDRE1TZXNz
aW9uQVZGb3VuZGF0aW9uQ0YoTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW8KIHsKIH0KIAot
UmVmUHRyPFVpbnQ4QXJyYXk+IENETVNlc3Npb25BVkZvdW5kYXRpb25DRjo6Z2VuZXJhdGVLZXlS
ZXF1ZXN0KGNvbnN0IFN0cmluZyYgbWltZVR5cGUsIFVpbnQ4QXJyYXkqIGluaXREYXRhLCBTdHJp
bmcmIGRlc3RpbmF0aW9uVVJMLCB1bnNpZ25lZCBzaG9ydCYgZXJyb3JDb2RlLCB1bnNpZ25lZCBs
b25nJiBzeXN0ZW1Db2RlKQorUmVmUHRyPFVpbnQ4QXJyYXk+IENETVNlc3Npb25BVkZvdW5kYXRp
b25DRjo6Z2VuZXJhdGVLZXlSZXF1ZXN0KGNvbnN0IFN0cmluZyYgbWltZVR5cGUsIFVpbnQ4QXJy
YXkqIGluaXREYXRhLCBTdHJpbmcmIGRlc3RpbmF0aW9uVVJMLCB1bnNpZ25lZCBzaG9ydCYgZXJy
b3JDb2RlLCB1aW50MzJfdCYgc3lzdGVtQ29kZSkKIHsKICAgICBVTlVTRURfUEFSQU0obWltZVR5
cGUpOwogCkBAIC0xMDcsNyArMTA3LDcgQEAgdm9pZCBDRE1TZXNzaW9uQVZGb3VuZGF0aW9uQ0Y6
OnJlbGVhc2VLZXlzKCkKIHsKIH0KIAotYm9vbCBDRE1TZXNzaW9uQVZGb3VuZGF0aW9uQ0Y6OnVw
ZGF0ZShVaW50OEFycmF5KiBrZXksIFJlZlB0cjxVaW50OEFycmF5PiYgbmV4dE1lc3NhZ2UsIHVu
c2lnbmVkIHNob3J0JiBlcnJvckNvZGUsIHVuc2lnbmVkIGxvbmcmIHN5c3RlbUNvZGUpCitib29s
IENETVNlc3Npb25BVkZvdW5kYXRpb25DRjo6dXBkYXRlKFVpbnQ4QXJyYXkqIGtleSwgUmVmUHRy
PFVpbnQ4QXJyYXk+JiBuZXh0TWVzc2FnZSwgdW5zaWduZWQgc2hvcnQmIGVycm9yQ29kZSwgdWlu
dDMyX3QmIHN5c3RlbUNvZGUpCiB7CiAgICAgUmV0YWluUHRyPENGTXV0YWJsZURhdGFSZWY+IGtl
eURhdGEgPSBhZG9wdENGKENGRGF0YUNyZWF0ZU11dGFibGUoa0NGQWxsb2NhdG9yRGVmYXVsdCwg
a2V5LT5ieXRlTGVuZ3RoKCkpKTsKICAgICBDRkRhdGFBcHBlbmRCeXRlcyhrZXlEYXRhLmdldCgp
LCByZWludGVycHJldF9jYXN0PGNvbnN0IFVJbnQ4Kj4oa2V5LT5iYXNlQWRkcmVzcygpKSwga2V5
LT5ieXRlTGVuZ3RoKCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvYXZmb3VuZGF0aW9uL2NmL0NETVNlc3Npb25BVkZvdW5kYXRpb25DRi5oIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL2NmL0NETVNlc3Npb25BVkZv
dW5kYXRpb25DRi5oCmluZGV4IDUxMGQwM2Y2OGNhY2IwYzE4ODdkODMxYzI2YTY1ZGQ3ZjJhNjIx
NzMuLjE0ZTEyYTUxZmE3OGUxYzhlZjZkNGZiMzg1ZmE3M2U4MGVmYTJkNWEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9jZi9DRE1TZXNz
aW9uQVZGb3VuZGF0aW9uQ0YuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9hdmZvdW5kYXRpb24vY2YvQ0RNU2Vzc2lvbkFWRm91bmRhdGlvbkNGLmgKQEAgLTQ0LDkgKzQ0
LDkgQEAgcHVibGljOgogCiAgICAgdmlydHVhbCB2b2lkIHNldENsaWVudChDRE1TZXNzaW9uQ2xp
ZW50KiBjbGllbnQpIG92ZXJyaWRlIHsgbV9jbGllbnQgPSBjbGllbnQ7IH0KICAgICB2aXJ0dWFs
IGNvbnN0IFN0cmluZyYgc2Vzc2lvbklkKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gbV9zZXNz
aW9uSWQ7IH0KLSAgICB2aXJ0dWFsIFJlZlB0cjxVaW50OEFycmF5PiBnZW5lcmF0ZUtleVJlcXVl
c3QoY29uc3QgU3RyaW5nJiBtaW1lVHlwZSwgVWludDhBcnJheSogaW5pdERhdGEsIFN0cmluZyYg
ZGVzdGluYXRpb25VUkwsIHVuc2lnbmVkIHNob3J0JiBlcnJvckNvZGUsIHVuc2lnbmVkIGxvbmcm
IHN5c3RlbUNvZGUpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgUmVmUHRyPFVpbnQ4QXJyYXk+IGdl
bmVyYXRlS2V5UmVxdWVzdChjb25zdCBTdHJpbmcmIG1pbWVUeXBlLCBVaW50OEFycmF5KiBpbml0
RGF0YSwgU3RyaW5nJiBkZXN0aW5hdGlvblVSTCwgdW5zaWduZWQgc2hvcnQmIGVycm9yQ29kZSwg
dWludDMyX3QmIHN5c3RlbUNvZGUpIG92ZXJyaWRlOwogICAgIHZpcnR1YWwgdm9pZCByZWxlYXNl
S2V5cygpIG92ZXJyaWRlOwotICAgIHZpcnR1YWwgYm9vbCB1cGRhdGUoVWludDhBcnJheSosIFJl
ZlB0cjxVaW50OEFycmF5PiYgbmV4dE1lc3NhZ2UsIHVuc2lnbmVkIHNob3J0JiBlcnJvckNvZGUs
IHVuc2lnbmVkIGxvbmcmIHN5c3RlbUNvZGUpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgYm9vbCB1
cGRhdGUoVWludDhBcnJheSosIFJlZlB0cjxVaW50OEFycmF5PiYgbmV4dE1lc3NhZ2UsIHVuc2ln
bmVkIHNob3J0JiBlcnJvckNvZGUsIHVpbnQzMl90JiBzeXN0ZW1Db2RlKSBvdmVycmlkZTsKIAog
cHJvdGVjdGVkOgogICAgIE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbkNGKiBtX3BhcmVu
dDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRh
dGlvbi9vYmpjL0NETVNlc3Npb25BVkNvbnRlbnRLZXlTZXNzaW9uLmggYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9DRE1TZXNzaW9uQVZDb250ZW50
S2V5U2Vzc2lvbi5oCmluZGV4IDkxODZmY2M0Y2UzNTdhOWZhZjgwMzRmYWJmMzM1MDcxMmQ5MDI4
NzMuLjg2ZGM1YWM1OWRjYWZiYzhiZWRiYTUwYTMzMTA5ZTEwYmY2ZmM0OGIgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL0NETVNl
c3Npb25BVkNvbnRlbnRLZXlTZXNzaW9uLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvQ0RNU2Vzc2lvbkFWQ29udGVudEtleVNlc3Npb24u
aApAQCAtNDksOSArNDksOSBAQCBwdWJsaWM6CiAKICAgICAvLyBDRE1TZXNzaW9uCiAgICAgdmly
dHVhbCBDRE1TZXNzaW9uVHlwZSB0eXBlKCkgb3ZlcnJpZGUgeyByZXR1cm4gQ0RNU2Vzc2lvblR5
cGVBVkNvbnRlbnRLZXlTZXNzaW9uOyB9Ci0gICAgdmlydHVhbCBSZWZQdHI8VWludDhBcnJheT4g
Z2VuZXJhdGVLZXlSZXF1ZXN0KGNvbnN0IFN0cmluZyYgbWltZVR5cGUsIFVpbnQ4QXJyYXkqIGlu
aXREYXRhLCBTdHJpbmcmIGRlc3RpbmF0aW9uVVJMLCB1bnNpZ25lZCBzaG9ydCYgZXJyb3JDb2Rl
LCB1bnNpZ25lZCBsb25nJiBzeXN0ZW1Db2RlKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIFJlZlB0
cjxVaW50OEFycmF5PiBnZW5lcmF0ZUtleVJlcXVlc3QoY29uc3QgU3RyaW5nJiBtaW1lVHlwZSwg
VWludDhBcnJheSogaW5pdERhdGEsIFN0cmluZyYgZGVzdGluYXRpb25VUkwsIHVuc2lnbmVkIHNo
b3J0JiBlcnJvckNvZGUsIHVpbnQzMl90JiBzeXN0ZW1Db2RlKSBvdmVycmlkZTsKICAgICB2aXJ0
dWFsIHZvaWQgcmVsZWFzZUtleXMoKSBvdmVycmlkZTsKLSAgICB2aXJ0dWFsIGJvb2wgdXBkYXRl
KFVpbnQ4QXJyYXkqIGtleSwgUmVmUHRyPFVpbnQ4QXJyYXk+JiBuZXh0TWVzc2FnZSwgdW5zaWdu
ZWQgc2hvcnQmIGVycm9yQ29kZSwgdW5zaWduZWQgbG9uZyYgc3lzdGVtQ29kZSkgb3ZlcnJpZGU7
CisgICAgdmlydHVhbCBib29sIHVwZGF0ZShVaW50OEFycmF5KiBrZXksIFJlZlB0cjxVaW50OEFy
cmF5PiYgbmV4dE1lc3NhZ2UsIHVuc2lnbmVkIHNob3J0JiBlcnJvckNvZGUsIHVpbnQzMl90JiBz
eXN0ZW1Db2RlKSBvdmVycmlkZTsKIAogICAgIC8vIENETVNlc3Npb25NZWRpYVNvdXJjZUFWRk9i
akMKICAgICB2b2lkIGFkZFBhcnNlcihBVlN0cmVhbURhdGFQYXJzZXIgKikgb3ZlcnJpZGU7CkBA
IC02MCw3ICs2MCw3IEBAIHB1YmxpYzoKICAgICB2b2lkIGRpZFByb3ZpZGVDb250ZW50S2V5UmVx
dWVzdChBVkNvbnRlbnRLZXlSZXF1ZXN0ICopOwogCiBwcm90ZWN0ZWQ6Ci0gICAgUGFzc1JlZlB0
cjxVaW50OEFycmF5PiBnZW5lcmF0ZUtleVJlbGVhc2VNZXNzYWdlKHVuc2lnbmVkIHNob3J0JiBl
cnJvckNvZGUsIHVuc2lnbmVkIGxvbmcmIHN5c3RlbUNvZGUpOworICAgIFBhc3NSZWZQdHI8VWlu
dDhBcnJheT4gZ2VuZXJhdGVLZXlSZWxlYXNlTWVzc2FnZSh1bnNpZ25lZCBzaG9ydCYgZXJyb3JD
b2RlLCB1aW50MzJfdCYgc3lzdGVtQ29kZSk7CiAKICAgICBib29sIGhhc0NvbnRlbnRLZXlTZXNz
aW9uKCkgY29uc3QgeyByZXR1cm4gbV9jb250ZW50S2V5U2Vzc2lvbjsgfQogICAgIEFWQ29udGVu
dEtleVNlc3Npb24qIGNvbnRlbnRLZXlTZXNzaW9uKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9DRE1TZXNzaW9uQVZDb250
ZW50S2V5U2Vzc2lvbi5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91
bmRhdGlvbi9vYmpjL0NETVNlc3Npb25BVkNvbnRlbnRLZXlTZXNzaW9uLm1tCmluZGV4IDYwMjZi
YzVjMjMzNGY4ODU2ZTg5ZmEyYTFhZGMxNmNiNTE4OWQzYzYuLjdlNmNmZWU0NDgwODdjMTNmZjNj
MzJmZTMwNTdkYTk3Yjc3OGU3YmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL0NETVNlc3Npb25BVkNvbnRlbnRLZXlTZXNzaW9u
Lm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9v
YmpjL0NETVNlc3Npb25BVkNvbnRlbnRLZXlTZXNzaW9uLm1tCkBAIC0zNyw5ICszNyw5IEBACiAj
aW1wb3J0ICJTb2Z0TGlua2luZy5oIgogI2ltcG9ydCAiU291cmNlQnVmZmVyUHJpdmF0ZUFWRk9i
akMuaCIKICNpbXBvcnQgIlVVSUQuaCIKKyNpbXBvcnQgIldlYkNvcmVOU0Vycm9yRXh0cmFzLmgi
CiAjaW1wb3J0IDxBVkZvdW5kYXRpb24vQVZFcnJvci5oPgogI2ltcG9ydCA8Q29yZU1lZGlhL0NN
QmFzZS5oPgotI2ltcG9ydCA8Y3N0ZGxpYj4KICNpbXBvcnQgPG9iamMvb2JqYy1ydW50aW1lLmg+
CiAjaW1wb3J0IDxydW50aW1lL1R5cGVkQXJyYXlJbmxpbmVzLmg+CiAjaW1wb3J0IDx3dGYvTmV2
ZXJEZXN0cm95ZWQuaD4KQEAgLTE0NCw3ICsxNDQsNyBAQCBib29sIENETVNlc3Npb25BVkNvbnRl
bnRLZXlTZXNzaW9uOjppc0F2YWlsYWJsZSgpCiAgICAgcmV0dXJuIGdldEFWQ29udGVudEtleVNl
c3Npb25DbGFzcygpOwogfQogCi1SZWZQdHI8VWludDhBcnJheT4gQ0RNU2Vzc2lvbkFWQ29udGVu
dEtleVNlc3Npb246OmdlbmVyYXRlS2V5UmVxdWVzdChjb25zdCBTdHJpbmcmIG1pbWVUeXBlLCBV
aW50OEFycmF5KiBpbml0RGF0YSwgU3RyaW5nJiBkZXN0aW5hdGlvblVSTCwgdW5zaWduZWQgc2hv
cnQmIGVycm9yQ29kZSwgdW5zaWduZWQgbG9uZyYgc3lzdGVtQ29kZSkKK1JlZlB0cjxVaW50OEFy
cmF5PiBDRE1TZXNzaW9uQVZDb250ZW50S2V5U2Vzc2lvbjo6Z2VuZXJhdGVLZXlSZXF1ZXN0KGNv
bnN0IFN0cmluZyYgbWltZVR5cGUsIFVpbnQ4QXJyYXkqIGluaXREYXRhLCBTdHJpbmcmIGRlc3Rp
bmF0aW9uVVJMLCB1bnNpZ25lZCBzaG9ydCYgZXJyb3JDb2RlLCB1aW50MzJfdCYgc3lzdGVtQ29k
ZSkKIHsKICAgICBVTlVTRURfUEFSQU0obWltZVR5cGUpOwogICAgIFVOVVNFRF9QQVJBTShkZXN0
aW5hdGlvblVSTCk7CkBAIC0yMjgsNyArMjI4LDcgQEAgc3RhdGljIGJvb2wgaXNFcXVhbChVaW50
OEFycmF5KiBkYXRhLCBjb25zdCBjaGFyKiBsaXRlcmFsKQogICAgIHJldHVybiAhbGl0ZXJhbFts
ZW5ndGhdOwogfQogCi1ib29sIENETVNlc3Npb25BVkNvbnRlbnRLZXlTZXNzaW9uOjp1cGRhdGUo
VWludDhBcnJheSoga2V5LCBSZWZQdHI8VWludDhBcnJheT4mIG5leHRNZXNzYWdlLCB1bnNpZ25l
ZCBzaG9ydCYgZXJyb3JDb2RlLCB1bnNpZ25lZCBsb25nJiBzeXN0ZW1Db2RlKQorYm9vbCBDRE1T
ZXNzaW9uQVZDb250ZW50S2V5U2Vzc2lvbjo6dXBkYXRlKFVpbnQ4QXJyYXkqIGtleSwgUmVmUHRy
PFVpbnQ4QXJyYXk+JiBuZXh0TWVzc2FnZSwgdW5zaWduZWQgc2hvcnQmIGVycm9yQ29kZSwgdWlu
dDMyX3QmIHN5c3RlbUNvZGUpCiB7CiAgICAgVU5VU0VEX1BBUkFNKG5leHRNZXNzYWdlKTsKIApA
QCAtMjgxLDkgKzI4MSwxNSBAQCBib29sIENETVNlc3Npb25BVkNvbnRlbnRLZXlTZXNzaW9uOjp1
cGRhdGUoVWludDhBcnJheSoga2V5LCBSZWZQdHI8VWludDhBcnJheT4mCiAKICAgICAgICAgZXJy
b3JDb2RlID0gTWVkaWFQbGF5ZXI6Ok5vRXJyb3I7CiAgICAgICAgIHN5c3RlbUNvZGUgPSAwOwot
ICAgICAgICBOU0RhdGEqIHJlcXVlc3REYXRhID0gW21fa2V5UmVxdWVzdCBjb250ZW50S2V5UmVx
dWVzdERhdGFGb3JBcHA6Y2VydGlmaWNhdGVEYXRhLmdldCgpIGNvbnRlbnRJZGVudGlmaWVyOm5p
bCBvcHRpb25zOm9wdGlvbnMuZ2V0KCkgZXJyb3I6bmlsXTsKLSAgICAgICAgbmV4dE1lc3NhZ2Ug
PSBVaW50OEFycmF5OjpjcmVhdGUoc3RhdGljX2Nhc3Q8Y29uc3QgdWludDhfdCo+KFtyZXF1ZXN0
RGF0YSBieXRlc10pLCBbcmVxdWVzdERhdGEgbGVuZ3RoXSk7CisgICAgICAgIE5TRXJyb3IqIGVy
cm9yID0gbmlsOworICAgICAgICBOU0RhdGEqIHJlcXVlc3REYXRhID0gW21fa2V5UmVxdWVzdCBj
b250ZW50S2V5UmVxdWVzdERhdGFGb3JBcHA6Y2VydGlmaWNhdGVEYXRhLmdldCgpIGNvbnRlbnRJ
ZGVudGlmaWVyOm5pbCBvcHRpb25zOm9wdGlvbnMuZ2V0KCkgZXJyb3I6JmVycm9yXTsKKyAgICAg
ICAgaWYgKGVycm9yKSB7CisgICAgICAgICAgICBlcnJvckNvZGUgPSBNZWRpYVBsYXllckNsaWVu
dDo6RG9tYWluRXJyb3I7CisgICAgICAgICAgICBzeXN0ZW1Db2RlID0gbWVkaWFLZXlFcnJvclN5
c3RlbUNvZGUoZXJyb3IpOworICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICB9CiAK
KyAgICAgICAgbmV4dE1lc3NhZ2UgPSBVaW50OEFycmF5OjpjcmVhdGUoc3RhdGljX2Nhc3Q8Y29u
c3QgdWludDhfdCo+KFtyZXF1ZXN0RGF0YSBieXRlc10pLCBbcmVxdWVzdERhdGEgbGVuZ3RoXSk7
CiAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICB9CiAKQEAgLTMwNiw3ICszMTIsNyBAQCB2b2lk
IENETVNlc3Npb25BVkNvbnRlbnRLZXlTZXNzaW9uOjpyZW1vdmVQYXJzZXIoQVZTdHJlYW1EYXRh
UGFyc2VyKiBwYXJzZXIpCiAgICAgW2NvbnRlbnRLZXlTZXNzaW9uKCkgcmVtb3ZlU3RyZWFtRGF0
YVBhcnNlcjpwYXJzZXJdOwogfQogCi1QYXNzUmVmUHRyPFVpbnQ4QXJyYXk+IENETVNlc3Npb25B
VkNvbnRlbnRLZXlTZXNzaW9uOjpnZW5lcmF0ZUtleVJlbGVhc2VNZXNzYWdlKHVuc2lnbmVkIHNo
b3J0JiBlcnJvckNvZGUsIHVuc2lnbmVkIGxvbmcmIHN5c3RlbUNvZGUpCitQYXNzUmVmUHRyPFVp
bnQ4QXJyYXk+IENETVNlc3Npb25BVkNvbnRlbnRLZXlTZXNzaW9uOjpnZW5lcmF0ZUtleVJlbGVh
c2VNZXNzYWdlKHVuc2lnbmVkIHNob3J0JiBlcnJvckNvZGUsIHVpbnQzMl90JiBzeXN0ZW1Db2Rl
KQogewogICAgIEFTU0VSVChtX21vZGUgPT0gS2V5UmVsZWFzZSk7CiAgICAgbV9jZXJ0aWZpY2F0
ZSA9IG1faW5pdERhdGE7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9hdmZvdW5kYXRpb24vb2JqYy9DRE1TZXNzaW9uQVZGb3VuZGF0aW9uT2JqQy5oIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvQ0RNU2Vzc2lv
bkFWRm91bmRhdGlvbk9iakMuaAppbmRleCA1ZDkzMDczNzhiMWFlMzc2ZDU3NWI3YjQ2YjUyNGRl
MWQ4NjA1ZTcxLi4wZWIxMjVjMTA3NDE4NjJlZWQzMTJkZGExNWI3YTg5MDUyYWFjNDBiIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2Jq
Yy9DRE1TZXNzaW9uQVZGb3VuZGF0aW9uT2JqQy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL0NETVNlc3Npb25BVkZvdW5kYXRpb25PYmpD
LmgKQEAgLTQ1LDkgKzQ1LDkgQEAgcHVibGljOgogICAgIHZpcnR1YWwgQ0RNU2Vzc2lvblR5cGUg
dHlwZSgpIG92ZXJyaWRlIHsgcmV0dXJuIENETVNlc3Npb25UeXBlQVZGb3VuZGF0aW9uT2JqQzsg
fQogICAgIHZpcnR1YWwgdm9pZCBzZXRDbGllbnQoQ0RNU2Vzc2lvbkNsaWVudCogY2xpZW50KSBv
dmVycmlkZSB7IG1fY2xpZW50ID0gY2xpZW50OyB9CiAgICAgdmlydHVhbCBjb25zdCBTdHJpbmcm
IHNlc3Npb25JZCgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIG1fc2Vzc2lvbklkOyB9Ci0gICAg
dmlydHVhbCBSZWZQdHI8VWludDhBcnJheT4gZ2VuZXJhdGVLZXlSZXF1ZXN0KGNvbnN0IFN0cmlu
ZyYgbWltZVR5cGUsIFVpbnQ4QXJyYXkqIGluaXREYXRhLCBTdHJpbmcmIGRlc3RpbmF0aW9uVVJM
LCB1bnNpZ25lZCBzaG9ydCYgZXJyb3JDb2RlLCB1bnNpZ25lZCBsb25nJiBzeXN0ZW1Db2RlKSBv
dmVycmlkZTsKKyAgICB2aXJ0dWFsIFJlZlB0cjxVaW50OEFycmF5PiBnZW5lcmF0ZUtleVJlcXVl
c3QoY29uc3QgU3RyaW5nJiBtaW1lVHlwZSwgVWludDhBcnJheSogaW5pdERhdGEsIFN0cmluZyYg
ZGVzdGluYXRpb25VUkwsIHVuc2lnbmVkIHNob3J0JiBlcnJvckNvZGUsIHVpbnQzMl90JiBzeXN0
ZW1Db2RlKSBvdmVycmlkZTsKICAgICB2aXJ0dWFsIHZvaWQgcmVsZWFzZUtleXMoKSBvdmVycmlk
ZTsKLSAgICB2aXJ0dWFsIGJvb2wgdXBkYXRlKFVpbnQ4QXJyYXkqLCBSZWZQdHI8VWludDhBcnJh
eT4mIG5leHRNZXNzYWdlLCB1bnNpZ25lZCBzaG9ydCYgZXJyb3JDb2RlLCB1bnNpZ25lZCBsb25n
JiBzeXN0ZW1Db2RlKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIGJvb2wgdXBkYXRlKFVpbnQ4QXJy
YXkqLCBSZWZQdHI8VWludDhBcnJheT4mIG5leHRNZXNzYWdlLCB1bnNpZ25lZCBzaG9ydCYgZXJy
b3JDb2RlLCB1aW50MzJfdCYgc3lzdGVtQ29kZSkgb3ZlcnJpZGU7CiAKIHByb3RlY3RlZDoKICAg
ICBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDKiBtX3BhcmVudDsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL0NE
TVNlc3Npb25BVkZvdW5kYXRpb25PYmpDLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvYXZmb3VuZGF0aW9uL29iamMvQ0RNU2Vzc2lvbkFWRm91bmRhdGlvbk9iakMubW0KaW5k
ZXggY2JkZTE5ODk1YWM5N2U3MDExOGIzZDhmOTFkZDJlNTJhMjBlMWFkMy4uMDgxMDg3YjU2MTEy
NDU2ZTkzMmE0MjhlYzUzN2Y4MTk3N2M4ZTJmZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvQ0RNU2Vzc2lvbkFWRm91bmRhdGlv
bk9iakMubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0
aW9uL29iamMvQ0RNU2Vzc2lvbkFWRm91bmRhdGlvbk9iakMubW0KQEAgLTM1LDYgKzM1LDcgQEAK
ICNpbXBvcnQgIk1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMuaCIKICNpbXBvcnQg
IlNvZnRMaW5raW5nLmgiCiAjaW1wb3J0ICJVVUlELmgiCisjaW1wb3J0ICJXZWJDb3JlTlNFcnJv
ckV4dHJhcy5oIgogI2ltcG9ydCA8QVZGb3VuZGF0aW9uL0FWRm91bmRhdGlvbi5oPgogI2ltcG9y
dCA8b2JqYy9vYmpjLXJ1bnRpbWUuaD4KIApAQCAtNTMsNyArNTQsNyBAQCBDRE1TZXNzaW9uQVZG
b3VuZGF0aW9uT2JqQzo6Q0RNU2Vzc2lvbkFWRm91bmRhdGlvbk9iakMoTWVkaWFQbGF5ZXJQcml2
YXRlQVZGb3VuZAogewogfQogCi1SZWZQdHI8VWludDhBcnJheT4gQ0RNU2Vzc2lvbkFWRm91bmRh
dGlvbk9iakM6OmdlbmVyYXRlS2V5UmVxdWVzdChjb25zdCBTdHJpbmcmIG1pbWVUeXBlLCBVaW50
OEFycmF5KiBpbml0RGF0YSwgU3RyaW5nJiBkZXN0aW5hdGlvblVSTCwgdW5zaWduZWQgc2hvcnQm
IGVycm9yQ29kZSwgdW5zaWduZWQgbG9uZyYgc3lzdGVtQ29kZSkKK1JlZlB0cjxVaW50OEFycmF5
PiBDRE1TZXNzaW9uQVZGb3VuZGF0aW9uT2JqQzo6Z2VuZXJhdGVLZXlSZXF1ZXN0KGNvbnN0IFN0
cmluZyYgbWltZVR5cGUsIFVpbnQ4QXJyYXkqIGluaXREYXRhLCBTdHJpbmcmIGRlc3RpbmF0aW9u
VVJMLCB1bnNpZ25lZCBzaG9ydCYgZXJyb3JDb2RlLCB1aW50MzJfdCYgc3lzdGVtQ29kZSkKIHsK
ICAgICBVTlVTRURfUEFSQU0obWltZVR5cGUpOwogCkBAIC02MSwxMyArNjIsMTMgQEAgUmVmUHRy
PFVpbnQ4QXJyYXk+IENETVNlc3Npb25BVkZvdW5kYXRpb25PYmpDOjpnZW5lcmF0ZUtleVJlcXVl
c3QoY29uc3QgU3RyaW5nJgogICAgIFN0cmluZyBrZXlJRDsKICAgICBSZWZQdHI8VWludDhBcnJh
eT4gY2VydGlmaWNhdGU7CiAgICAgaWYgKCFNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25P
YmpDOjpleHRyYWN0S2V5VVJJS2V5SURBbmRDZXJ0aWZpY2F0ZUZyb21Jbml0RGF0YShpbml0RGF0
YSwga2V5VVJJLCBrZXlJRCwgY2VydGlmaWNhdGUpKSB7Ci0gICAgICAgIGVycm9yQ29kZSA9IE1l
ZGlhUGxheWVyOjpJbnZhbGlkUGxheWVyU3RhdGU7CisgICAgICAgIGVycm9yQ29kZSA9IENETTo6
VW5rbm93bkVycm9yOwogICAgICAgICByZXR1cm4gbnVsbHB0cjsKICAgICB9CiAKICAgICBtX3Jl
cXVlc3QgPSBtX3BhcmVudC0+dGFrZVJlcXVlc3RGb3JLZXlVUkkoa2V5VVJJKTsKICAgICBpZiAo
IW1fcmVxdWVzdCkgewotICAgICAgICBlcnJvckNvZGUgPSBNZWRpYVBsYXllcjo6SW52YWxpZFBs
YXllclN0YXRlOworICAgICAgICBlcnJvckNvZGUgPSBDRE06OlVua25vd25FcnJvcjsKICAgICAg
ICAgcmV0dXJuIG51bGxwdHI7CiAgICAgfQogCkBAIC03OCw4ICs3OSw4IEBAIFJlZlB0cjxVaW50
OEFycmF5PiBDRE1TZXNzaW9uQVZGb3VuZGF0aW9uT2JqQzo6Z2VuZXJhdGVLZXlSZXF1ZXN0KGNv
bnN0IFN0cmluZyYKICAgICBSZXRhaW5QdHI8TlNEYXRhPiBrZXlSZXF1ZXN0ID0gW21fcmVxdWVz
dCBzdHJlYW1pbmdDb250ZW50S2V5UmVxdWVzdERhdGFGb3JBcHA6Y2VydGlmaWNhdGVEYXRhLmdl
dCgpIGNvbnRlbnRJZGVudGlmaWVyOmFzc2V0SUQuZ2V0KCkgb3B0aW9uczpuaWwgZXJyb3I6Jm5z
RXJyb3JdOwogCiAgICAgaWYgKCFrZXlSZXF1ZXN0KSB7Ci0gICAgICAgIE5TRXJyb3IqIHVuZGVy
bHlpbmdFcnJvciA9IFtbbnNFcnJvciB1c2VySW5mb10gb2JqZWN0Rm9yS2V5Ok5TVW5kZXJseWlu
Z0Vycm9yS2V5XTsKLSAgICAgICAgc3lzdGVtQ29kZSA9IFt1bmRlcmx5aW5nRXJyb3IgY29kZV07
CisgICAgICAgIGVycm9yQ29kZSA9IENETTo6RG9tYWluRXJyb3I7CisgICAgICAgIHN5c3RlbUNv
ZGUgPSBtZWRpYUtleUVycm9yU3lzdGVtQ29kZShuc0Vycm9yKTsKICAgICAgICAgcmV0dXJuIG51
bGxwdHI7CiAgICAgfQogCkBAIC05NSw3ICs5Niw3IEBAIHZvaWQgQ0RNU2Vzc2lvbkFWRm91bmRh
dGlvbk9iakM6OnJlbGVhc2VLZXlzKCkKIHsKIH0KIAotYm9vbCBDRE1TZXNzaW9uQVZGb3VuZGF0
aW9uT2JqQzo6dXBkYXRlKFVpbnQ4QXJyYXkqIGtleSwgUmVmUHRyPFVpbnQ4QXJyYXk+JiBuZXh0
TWVzc2FnZSwgdW5zaWduZWQgc2hvcnQmIGVycm9yQ29kZSwgdW5zaWduZWQgbG9uZyYgc3lzdGVt
Q29kZSkKK2Jvb2wgQ0RNU2Vzc2lvbkFWRm91bmRhdGlvbk9iakM6OnVwZGF0ZShVaW50OEFycmF5
KiBrZXksIFJlZlB0cjxVaW50OEFycmF5PiYgbmV4dE1lc3NhZ2UsIHVuc2lnbmVkIHNob3J0JiBl
cnJvckNvZGUsIHVpbnQzMl90JiBzeXN0ZW1Db2RlKQogewogICAgIFJldGFpblB0cjxOU0RhdGE+
IGtleURhdGEgPSBhZG9wdE5TKFtbTlNEYXRhIGFsbG9jXSBpbml0V2l0aEJ5dGVzOmtleS0+YmFz
ZUFkZHJlc3MoKSBsZW5ndGg6a2V5LT5ieXRlTGVuZ3RoKCldKTsKICAgICBbW21fcmVxdWVzdCBk
YXRhUmVxdWVzdF0gcmVzcG9uZFdpdGhEYXRhOmtleURhdGEuZ2V0KCldOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvQ0RNU2Vz
c2lvbkFWU3RyZWFtU2Vzc2lvbi5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
YXZmb3VuZGF0aW9uL29iamMvQ0RNU2Vzc2lvbkFWU3RyZWFtU2Vzc2lvbi5oCmluZGV4IGRhNTdj
NDczNmI2YWUzNDkxM2ZjNGU5NjQ0MjU4YTVmMzkxZDYxM2UuLjQ1NjdmNDI4MjU2OTI0MWQyNjFm
MGIwMjgxNDYzMDdiZjNiYWQxNDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL0NETVNlc3Npb25BVlN0cmVhbVNlc3Npb24uaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9D
RE1TZXNzaW9uQVZTdHJlYW1TZXNzaW9uLmgKQEAgLTQ3LDkgKzQ3LDkgQEAgcHVibGljOgogCiAg
ICAgLy8gQ0RNU2Vzc2lvbgogICAgIHZpcnR1YWwgQ0RNU2Vzc2lvblR5cGUgdHlwZSgpIG92ZXJy
aWRlIHsgcmV0dXJuIENETVNlc3Npb25UeXBlQVZTdHJlYW1TZXNzaW9uOyB9Ci0gICAgdmlydHVh
bCBSZWZQdHI8VWludDhBcnJheT4gZ2VuZXJhdGVLZXlSZXF1ZXN0KGNvbnN0IFN0cmluZyYgbWlt
ZVR5cGUsIFVpbnQ4QXJyYXkqIGluaXREYXRhLCBTdHJpbmcmIGRlc3RpbmF0aW9uVVJMLCB1bnNp
Z25lZCBzaG9ydCYgZXJyb3JDb2RlLCB1bnNpZ25lZCBsb25nJiBzeXN0ZW1Db2RlKSBvdmVycmlk
ZTsKKyAgICB2aXJ0dWFsIFJlZlB0cjxVaW50OEFycmF5PiBnZW5lcmF0ZUtleVJlcXVlc3QoY29u
c3QgU3RyaW5nJiBtaW1lVHlwZSwgVWludDhBcnJheSogaW5pdERhdGEsIFN0cmluZyYgZGVzdGlu
YXRpb25VUkwsIHVuc2lnbmVkIHNob3J0JiBlcnJvckNvZGUsIHVpbnQzMl90JiBzeXN0ZW1Db2Rl
KSBvdmVycmlkZTsKICAgICB2aXJ0dWFsIHZvaWQgcmVsZWFzZUtleXMoKSBvdmVycmlkZTsKLSAg
ICB2aXJ0dWFsIGJvb2wgdXBkYXRlKFVpbnQ4QXJyYXkqLCBSZWZQdHI8VWludDhBcnJheT4mIG5l
eHRNZXNzYWdlLCB1bnNpZ25lZCBzaG9ydCYgZXJyb3JDb2RlLCB1bnNpZ25lZCBsb25nJiBzeXN0
ZW1Db2RlKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIGJvb2wgdXBkYXRlKFVpbnQ4QXJyYXkqLCBS
ZWZQdHI8VWludDhBcnJheT4mIG5leHRNZXNzYWdlLCB1bnNpZ25lZCBzaG9ydCYgZXJyb3JDb2Rl
LCB1aW50MzJfdCYgc3lzdGVtQ29kZSkgb3ZlcnJpZGU7CiAKICAgICAvLyBDRE1TZXNzaW9uTWVk
aWFTb3VyY2VBVkZPYmpDCiAgICAgdm9pZCBhZGRQYXJzZXIoQVZTdHJlYW1EYXRhUGFyc2VyKikg
b3ZlcnJpZGU7CkBAIC01OCw3ICs1OCw3IEBAIHB1YmxpYzoKICAgICB2b2lkIHNldFN0cmVhbVNl
c3Npb24oQVZTdHJlYW1TZXNzaW9uKik7CiAKIHByb3RlY3RlZDoKLSAgICBQYXNzUmVmUHRyPFVp
bnQ4QXJyYXk+IGdlbmVyYXRlS2V5UmVsZWFzZU1lc3NhZ2UodW5zaWduZWQgc2hvcnQmIGVycm9y
Q29kZSwgdW5zaWduZWQgbG9uZyYgc3lzdGVtQ29kZSk7CisgICAgUGFzc1JlZlB0cjxVaW50OEFy
cmF5PiBnZW5lcmF0ZUtleVJlbGVhc2VNZXNzYWdlKHVuc2lnbmVkIHNob3J0JiBlcnJvckNvZGUs
IHVpbnQzMl90IHN5c3RlbUNvZGUpOwogCiAgICAgV2Vha1B0ckZhY3Rvcnk8Q0RNU2Vzc2lvbkFW
U3RyZWFtU2Vzc2lvbj4gbV93ZWFrUHRyRmFjdG9yeTsKICAgICBSZXRhaW5QdHI8QVZTdHJlYW1T
ZXNzaW9uPiBtX3N0cmVhbVNlc3Npb247CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9DRE1TZXNzaW9uQVZTdHJlYW1TZXNzaW9u
Lm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMv
Q0RNU2Vzc2lvbkFWU3RyZWFtU2Vzc2lvbi5tbQppbmRleCA3ZGI4YmY4M2RlYzdhNGUxNTg4NzUw
ODE2NjczMmZhMmJkODBkZGZjLi45MGFhYWYwM2Y2N2E5MWE3YjVmMjI1YzNlMDc0NDE2NTQ1M2My
OWU2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5k
YXRpb24vb2JqYy9DRE1TZXNzaW9uQVZTdHJlYW1TZXNzaW9uLm1tCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL0NETVNlc3Npb25BVlN0cmVh
bVNlc3Npb24ubW0KQEAgLTM3LDkgKzM3LDkgQEAKICNpbXBvcnQgIlNvZnRMaW5raW5nLmgiCiAj
aW1wb3J0ICJTb3VyY2VCdWZmZXJQcml2YXRlQVZGT2JqQy5oIgogI2ltcG9ydCAiVVVJRC5oIgor
I2ltcG9ydCAiV2ViQ29yZU5TRXJyb3JFeHRyYXMuaCIKICNpbXBvcnQgPEFWRm91bmRhdGlvbi9B
VkVycm9yLmg+CiAjaW1wb3J0IDxDb3JlTWVkaWEvQ01CYXNlLmg+Ci0jaW1wb3J0IDxjc3RkbGli
PgogI2ltcG9ydCA8b2JqYy9vYmpjLXJ1bnRpbWUuaD4KICNpbXBvcnQgPHJ1bnRpbWUvVHlwZWRB
cnJheUlubGluZXMuaD4KICNpbXBvcnQgPHd0Zi9OZXZlckRlc3Ryb3llZC5oPgpAQCAtMTEyLDcg
KzExMiw3IEBAIENETVNlc3Npb25BVlN0cmVhbVNlc3Npb246On5DRE1TZXNzaW9uQVZTdHJlYW1T
ZXNzaW9uKCkKICAgICAgICAgcmVtb3ZlUGFyc2VyKHNvdXJjZUJ1ZmZlci0+cGFyc2VyKCkpOwog
fQogCi1SZWZQdHI8VWludDhBcnJheT4gQ0RNU2Vzc2lvbkFWU3RyZWFtU2Vzc2lvbjo6Z2VuZXJh
dGVLZXlSZXF1ZXN0KGNvbnN0IFN0cmluZyYgbWltZVR5cGUsIFVpbnQ4QXJyYXkqIGluaXREYXRh
LCBTdHJpbmcmIGRlc3RpbmF0aW9uVVJMLCB1bnNpZ25lZCBzaG9ydCYgZXJyb3JDb2RlLCB1bnNp
Z25lZCBsb25nJiBzeXN0ZW1Db2RlKQorUmVmUHRyPFVpbnQ4QXJyYXk+IENETVNlc3Npb25BVlN0
cmVhbVNlc3Npb246OmdlbmVyYXRlS2V5UmVxdWVzdChjb25zdCBTdHJpbmcmIG1pbWVUeXBlLCBV
aW50OEFycmF5KiBpbml0RGF0YSwgU3RyaW5nJiBkZXN0aW5hdGlvblVSTCwgdW5zaWduZWQgc2hv
cnQmIGVycm9yQ29kZSwgdWludDMyX3QmIHN5c3RlbUNvZGUpCiB7CiAgICAgVU5VU0VEX1BBUkFN
KG1pbWVUeXBlKTsKICAgICBVTlVTRURfUEFSQU0oZGVzdGluYXRpb25VUkwpOwpAQCAtMTg3LDcg
KzE4Nyw3IEBAIHN0YXRpYyBib29sIGlzRXF1YWwoVWludDhBcnJheSogZGF0YSwgY29uc3QgY2hh
ciogbGl0ZXJhbCkKICAgICByZXR1cm4gIWxpdGVyYWxbbGVuZ3RoXTsKIH0KIAotYm9vbCBDRE1T
ZXNzaW9uQVZTdHJlYW1TZXNzaW9uOjp1cGRhdGUoVWludDhBcnJheSoga2V5LCBSZWZQdHI8VWlu
dDhBcnJheT4mIG5leHRNZXNzYWdlLCB1bnNpZ25lZCBzaG9ydCYgZXJyb3JDb2RlLCB1bnNpZ25l
ZCBsb25nJiBzeXN0ZW1Db2RlKQorYm9vbCBDRE1TZXNzaW9uQVZTdHJlYW1TZXNzaW9uOjp1cGRh
dGUoVWludDhBcnJheSoga2V5LCBSZWZQdHI8VWludDhBcnJheT4mIG5leHRNZXNzYWdlLCB1bnNp
Z25lZCBzaG9ydCYgZXJyb3JDb2RlLCB1aW50MzJfdCYgc3lzdGVtQ29kZSkKIHsKICAgICBib29s
IHNob3VsZEdlbmVyYXRlS2V5UmVxdWVzdCA9ICFtX2NlcnRpZmljYXRlIHx8IGlzRXF1YWwoa2V5
LCAicmVuZXciKTsKICAgICBpZiAoIW1fY2VydGlmaWNhdGUpIHsKQEAgLTI1NSw3ICsyNTUsNyBA
QCBib29sIENETVNlc3Npb25BVlN0cmVhbVNlc3Npb246OnVwZGF0ZShVaW50OEFycmF5KiBrZXks
IFJlZlB0cjxVaW50OEFycmF5PiYgbmV4dAogICAgICAgICBpZiAoZXJyb3IpIHsKICAgICAgICAg
ICAgIExPRyhNZWRpYSwgIkNETVNlc3Npb25BVlN0cmVhbVNlc3Npb246OnVwZGF0ZSglcCkgLSBl
cnJvcjolQCIsIHRoaXMsIFtlcnJvciBkZXNjcmlwdGlvbl0pOwogICAgICAgICAgICAgZXJyb3JD
b2RlID0gTWVkaWFQbGF5ZXI6OkludmFsaWRQbGF5ZXJTdGF0ZTsKLSAgICAgICAgICAgIHN5c3Rl
bUNvZGUgPSBzdGQ6OmFicyhzeXN0ZW1Db2RlRm9yRXJyb3IoZXJyb3IpKTsKKyAgICAgICAgICAg
IHN5c3RlbUNvZGUgPSBtZWRpYUtleUVycm9yU3lzdGVtQ29kZShlcnJvcik7CiAgICAgICAgICAg
ICByZXR1cm4gZmFsc2U7CiAgICAgICAgIH0KIApAQCAtMzA0LDcgKzMwNCw3IEBAIHZvaWQgQ0RN
U2Vzc2lvbkFWU3RyZWFtU2Vzc2lvbjo6cmVtb3ZlUGFyc2VyKEFWU3RyZWFtRGF0YVBhcnNlciog
cGFyc2VyKQogICAgICAgICBbbV9zdHJlYW1TZXNzaW9uIHJlbW92ZVN0cmVhbURhdGFQYXJzZXI6
cGFyc2VyXTsKIH0KIAotUGFzc1JlZlB0cjxVaW50OEFycmF5PiBDRE1TZXNzaW9uQVZTdHJlYW1T
ZXNzaW9uOjpnZW5lcmF0ZUtleVJlbGVhc2VNZXNzYWdlKHVuc2lnbmVkIHNob3J0JiBlcnJvckNv
ZGUsIHVuc2lnbmVkIGxvbmcmIHN5c3RlbUNvZGUpCitQYXNzUmVmUHRyPFVpbnQ4QXJyYXk+IENE
TVNlc3Npb25BVlN0cmVhbVNlc3Npb246OmdlbmVyYXRlS2V5UmVsZWFzZU1lc3NhZ2UodW5zaWdu
ZWQgc2hvcnQmIGVycm9yQ29kZSwgdWludDMyX3Qgc3lzdGVtQ29kZSkKIHsKICAgICBBU1NFUlQo
bV9tb2RlID09IEtleVJlbGVhc2UpOwogICAgIG1fY2VydGlmaWNhdGUgPSBtX2luaXREYXRhOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9u
L29iamMvQ0RNU2Vzc2lvbk1lZGlhU291cmNlQVZGT2JqQy5oIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvQ0RNU2Vzc2lvbk1lZGlhU291cmNlQVZG
T2JqQy5oCmluZGV4IDc1YTQ0OGI5NWM2NDE5NDE4ODExYzEyMWEwYTc0M2ZmM2IwMzJlN2EuLjU0
NWQ4NmE5ZWExYTFiYzk3OTFiZmYzMzM2NWE3MDdlNjYxMjAxM2YgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL0NETVNlc3Npb25N
ZWRpYVNvdXJjZUFWRk9iakMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9hdmZvdW5kYXRpb24vb2JqYy9DRE1TZXNzaW9uTWVkaWFTb3VyY2VBVkZPYmpDLmgKQEAgLTYz
LDcgKzYzLDYgQEAgcHVibGljOgogICAgIHZvaWQgaW52YWxpZGF0ZUNETSgpIHsgbV9jZG0gPSBu
dWxscHRyOyB9CiAKIHByb3RlY3RlZDoKLSAgICBzdGF0aWMgbG9uZyBzeXN0ZW1Db2RlRm9yRXJy
b3IoTlNFcnJvciAqKTsKICAgICBTdHJpbmcgc3RvcmFnZVBhdGgoKSBjb25zdDsKIAogICAgIENE
TVByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakMqIG1fY2RtOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvQ0RNU2Vzc2lvbk1lZGlh
U291cmNlQVZGT2JqQy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91
bmRhdGlvbi9vYmpjL0NETVNlc3Npb25NZWRpYVNvdXJjZUFWRk9iakMubW0KaW5kZXggNDJjYjg4
Y2Q0YWI0YzJkYWQwYTU5YzM0OTM0ZGU3YmViNzhkZDg5OS4uMDRmYTM1ZmM5YTZlNThiNDEyZDQ4
YTQyOTlmNjkyZGMxMGY4ODc0NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvQ0RNU2Vzc2lvbk1lZGlhU291cmNlQVZGT2JqQy5t
bQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2Jq
Yy9DRE1TZXNzaW9uTWVkaWFTb3VyY2VBVkZPYmpDLm1tCkBAIC0zMCw4ICszMCw4IEBACiAKICNp
bXBvcnQgIkNETVByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakMuaCIKICNpbXBvcnQgIkZpbGVTeXN0
ZW0uaCIKKyNpbXBvcnQgIldlYkNvcmVOU0Vycm9yRXh0cmFzLmgiCiAjaW1wb3J0IDxBVkZvdW5k
YXRpb24vQVZFcnJvci5oPgotI2ltcG9ydCA8Y3N0ZGxpYj4KIAogbmFtZXNwYWNlIFdlYkNvcmUg
ewogCkBAIC01Miw3ICs1Miw3IEBAIHZvaWQgQ0RNU2Vzc2lvbk1lZGlhU291cmNlQVZGT2JqQzo6
bGF5ZXJEaWRSZWNlaXZlRXJyb3IoQVZTYW1wbGVCdWZmZXJEaXNwbGF5TGF5CiAgICAgaWYgKCFt
X2NsaWVudCkKICAgICAgICAgcmV0dXJuOwogCi0gICAgdW5zaWduZWQgbG9uZyBjb2RlID0gc3Rk
OjphYnMoc3lzdGVtQ29kZUZvckVycm9yKGVycm9yKSk7CisgICAgdW5zaWduZWQgbG9uZyBjb2Rl
ID0gbWVkaWFLZXlFcnJvclN5c3RlbUNvZGUoZXJyb3IpOwogCiAgICAgLy8gRklYTUUoMTQyMjQ2
KTogUmVtb3ZlIHRoZSBmb2xsb3dpbmcgb25jZSA8cmRhcjovL3Byb2JsZW0vMjAwMjc0MzQ+IGlz
IHJlc29sdmVkLgogICAgIHNob3VsZElnbm9yZSA9IG1fc3RvcHBlZCAmJiBjb2RlID09IDEyNzg1
OwpAQCAtNjUsNyArNjUsNyBAQCB2b2lkIENETVNlc3Npb25NZWRpYVNvdXJjZUFWRk9iakM6OnJl
bmRlcmVyRGlkUmVjZWl2ZUVycm9yKEFWU2FtcGxlQnVmZmVyQXVkaW9SZQogICAgIGlmICghbV9j
bGllbnQpCiAgICAgICAgIHJldHVybjsKIAotICAgIHVuc2lnbmVkIGxvbmcgY29kZSA9IHN0ZDo6
YWJzKHN5c3RlbUNvZGVGb3JFcnJvcihlcnJvcikpOworICAgIHVuc2lnbmVkIGxvbmcgY29kZSA9
IG1lZGlhS2V5RXJyb3JTeXN0ZW1Db2RlKGVycm9yKTsKIAogICAgIC8vIEZJWE1FKDE0MjI0Nik6
IFJlbW92ZSB0aGUgZm9sbG93aW5nIG9uY2UgPHJkYXI6Ly9wcm9ibGVtLzIwMDI3NDM0PiBpcyBy
ZXNvbHZlZC4KICAgICBzaG91bGRJZ25vcmUgPSBtX3N0b3BwZWQgJiYgY29kZSA9PSAxMjc4NTsK
QEAgLTk2LDE5ICs5Niw2IEBAIHZvaWQgQ0RNU2Vzc2lvbk1lZGlhU291cmNlQVZGT2JqQzo6cmVt
b3ZlU291cmNlQnVmZmVyKFNvdXJjZUJ1ZmZlclByaXZhdGVBVkZPYmpDCiAgICAgbV9zb3VyY2VC
dWZmZXJzLnJlbW92ZShtX3NvdXJjZUJ1ZmZlcnMuZmluZChzb3VyY2VCdWZmZXIpKTsKIH0KIAot
bG9uZyBDRE1TZXNzaW9uTWVkaWFTb3VyY2VBVkZPYmpDOjpzeXN0ZW1Db2RlRm9yRXJyb3IoTlNF
cnJvciAqZXJyb3IpCi17Ci0gICAgTlNJbnRlZ2VyIGNvZGUgPSBbZXJyb3IgY29kZV07Ci0gICAg
aWYgKGNvZGUgIT0gQVZFcnJvclVua25vd24pCi0gICAgICAgIHJldHVybiBjb2RlOwotCi0gICAg
TlNFcnJvciogdW5kZXJseWluZ0Vycm9yID0gW2Vycm9yLnVzZXJJbmZvIHZhbHVlRm9yS2V5Ok5T
VW5kZXJseWluZ0Vycm9yS2V5XTsKLSAgICBpZiAoIXVuZGVybHlpbmdFcnJvciB8fCAhW3VuZGVy
bHlpbmdFcnJvciBpc0tpbmRPZkNsYXNzOltOU0Vycm9yIGNsYXNzXV0pCi0gICAgICAgIHJldHVy
biBjb2RlOwotCi0gICAgcmV0dXJuIFt1bmRlcmx5aW5nRXJyb3IgY29kZV07Ci19Ci0KIFN0cmlu
ZyBDRE1TZXNzaW9uTWVkaWFTb3VyY2VBVkZPYmpDOjpzdG9yYWdlUGF0aCgpIGNvbnN0CiB7CiAg
ICAgcmV0dXJuIG1fY2xpZW50ID8gcGF0aEJ5QXBwZW5kaW5nQ29tcG9uZW50KG1fY2xpZW50LT5t
ZWRpYUtleXNTdG9yYWdlRGlyZWN0b3J5KCksICJTZWN1cmVTdG9wLnBsaXN0IikgOiBlbXB0eVN0
cmluZygpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9Nb2NrQ0RNLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvTW9ja0NETS5jcHAKaW5kZXggYjczNGZmZGE1NGVlMTYw
MGM2ZTk2OWRmYzRiOWZmNDE1ZWEzYzQ5Ni4uYzRiODhkM2IyNTdiOGFlMDEwMGUwMDVkNDExMjRm
Mzc2MmExNTlhZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9Nb2NrQ0RNLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL01vY2tDRE0uY3BwCkBAIC00NCw5ICs0NCw5
IEBAIHB1YmxpYzoKIAogICAgIHZpcnR1YWwgdm9pZCBzZXRDbGllbnQoQ0RNU2Vzc2lvbkNsaWVu
dCogY2xpZW50KSBvdmVycmlkZSB7IG1fY2xpZW50ID0gY2xpZW50OyB9CiAgICAgdmlydHVhbCBj
b25zdCBTdHJpbmcmIHNlc3Npb25JZCgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIG1fc2Vzc2lv
bklkOyB9Ci0gICAgdmlydHVhbCBSZWZQdHI8VWludDhBcnJheT4gZ2VuZXJhdGVLZXlSZXF1ZXN0
KGNvbnN0IFN0cmluZyYgbWltZVR5cGUsIFVpbnQ4QXJyYXkqIGluaXREYXRhLCBTdHJpbmcmIGRl
c3RpbmF0aW9uVVJMLCB1bnNpZ25lZCBzaG9ydCYgZXJyb3JDb2RlLCB1bnNpZ25lZCBsb25nJiBz
eXN0ZW1Db2RlKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIFJlZlB0cjxVaW50OEFycmF5PiBnZW5l
cmF0ZUtleVJlcXVlc3QoY29uc3QgU3RyaW5nJiBtaW1lVHlwZSwgVWludDhBcnJheSogaW5pdERh
dGEsIFN0cmluZyYgZGVzdGluYXRpb25VUkwsIHVuc2lnbmVkIHNob3J0JiBlcnJvckNvZGUsIHVp
bnQzMl90JiBzeXN0ZW1Db2RlKSBvdmVycmlkZTsKICAgICB2aXJ0dWFsIHZvaWQgcmVsZWFzZUtl
eXMoKSBvdmVycmlkZTsKLSAgICB2aXJ0dWFsIGJvb2wgdXBkYXRlKFVpbnQ4QXJyYXkqLCBSZWZQ
dHI8VWludDhBcnJheT4mIG5leHRNZXNzYWdlLCB1bnNpZ25lZCBzaG9ydCYgZXJyb3JDb2RlLCB1
bnNpZ25lZCBsb25nJiBzeXN0ZW1Db2RlKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIGJvb2wgdXBk
YXRlKFVpbnQ4QXJyYXkqLCBSZWZQdHI8VWludDhBcnJheT4mIG5leHRNZXNzYWdlLCB1bnNpZ25l
ZCBzaG9ydCYgZXJyb3JDb2RlLCB1aW50MzJfdCYgc3lzdGVtQ29kZSkgb3ZlcnJpZGU7CiAKIHBy
b3RlY3RlZDoKICAgICBDRE1TZXNzaW9uQ2xpZW50KiBtX2NsaWVudDsKQEAgLTExMiw3ICsxMTIs
NyBAQCBNb2NrQ0RNU2Vzc2lvbjo6TW9ja0NETVNlc3Npb24oQ0RNU2Vzc2lvbkNsaWVudCogY2xp
ZW50KQogewogfQogCi1SZWZQdHI8VWludDhBcnJheT4gTW9ja0NETVNlc3Npb246OmdlbmVyYXRl
S2V5UmVxdWVzdChjb25zdCBTdHJpbmcmLCBVaW50OEFycmF5KiBpbml0RGF0YSwgU3RyaW5nJiwg
dW5zaWduZWQgc2hvcnQmIGVycm9yQ29kZSwgdW5zaWduZWQgbG9uZyYpCitSZWZQdHI8VWludDhB
cnJheT4gTW9ja0NETVNlc3Npb246OmdlbmVyYXRlS2V5UmVxdWVzdChjb25zdCBTdHJpbmcmLCBV
aW50OEFycmF5KiBpbml0RGF0YSwgU3RyaW5nJiwgdW5zaWduZWQgc2hvcnQmIGVycm9yQ29kZSwg
dWludDMyX3QmKQogewogICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBpbml0RGF0YVByZWZp
eCgpLT5sZW5ndGgoKTsgKytpKSB7CiAgICAgICAgIGlmICghaW5pdERhdGEgfHwgaSA+PSBpbml0
RGF0YS0+bGVuZ3RoKCkgfHwgaW5pdERhdGEtPml0ZW0oaSkgIT0gaW5pdERhdGFQcmVmaXgoKS0+
aXRlbShpKSkgewpAQCAtMTI4LDcgKzEyOCw3IEBAIHZvaWQgTW9ja0NETVNlc3Npb246OnJlbGVh
c2VLZXlzKCkKICAgICAvLyBuby1vcAogfQogCi1ib29sIE1vY2tDRE1TZXNzaW9uOjp1cGRhdGUo
VWludDhBcnJheSoga2V5LCBSZWZQdHI8VWludDhBcnJheT4mLCB1bnNpZ25lZCBzaG9ydCYgZXJy
b3JDb2RlLCB1bnNpZ25lZCBsb25nJikKK2Jvb2wgTW9ja0NETVNlc3Npb246OnVwZGF0ZShVaW50
OEFycmF5KiBrZXksIFJlZlB0cjxVaW50OEFycmF5PiYsIHVuc2lnbmVkIHNob3J0JiBlcnJvckNv
ZGUsIHVpbnQzMl90JikKIHsKICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwga2V5UHJlZml4
KCktPmxlbmd0aCgpOyArK2kpIHsKICAgICAgICAgaWYgKGkgPj0ga2V5LT5sZW5ndGgoKSB8fCBr
ZXktPml0ZW0oaSkgIT0ga2V5UHJlZml4KCktPml0ZW0oaSkpIHsK
</data>
<flag name="commit-queue"
          id="294488"
          type_id="3"
          status="-"
          setter="commit-queue"
    />
          </attachment>
      

    </bug>

</bugzilla>