<?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>209666</bug_id>
          
          <creation_ts>2020-03-27 11:06:22 -0700</creation_ts>
          <short_desc>Remove synchronous termination of service workers</short_desc>
          <delta_ts>2020-04-02 04:01:00 -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>Service Workers</component>
          <version>WebKit Local Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="youenn fablet">youennf</reporter>
          <assigned_to name="youenn fablet">youennf</assigned_to>
          <cc>achristensen</cc>
    
    <cc>cdumez</cc>
    
    <cc>ggaren</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1634886</commentid>
    <comment_count>0</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2020-03-27 11:06:22 -0700</bug_when>
    <thetext>Remove synchronous termination of service workers</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1635416</commentid>
    <comment_count>1</comment_count>
      <attachid>394890</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2020-03-30 00:57:42 -0700</bug_when>
    <thetext>Created attachment 394890
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1635469</commentid>
    <comment_count>2</comment_count>
      <attachid>394908</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2020-03-30 05:47:47 -0700</bug_when>
    <thetext>Created attachment 394908
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1635486</commentid>
    <comment_count>3</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2020-03-30 07:08:42 -0700</bug_when>
    <thetext>&lt;rdar://problem/59318239&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1635510</commentid>
    <comment_count>4</comment_count>
      <attachid>394908</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2020-03-30 08:09:46 -0700</bug_when>
    <thetext>Comment on attachment 394908
Patch

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

&gt; Source/WebCore/ChangeLog:8
&gt; +        Instead of supporting sycnhronous IPC to terminate a service worker, SWServerWorker will asynchronously ask for the service worker to terminate.

Typo: sycnhronous

&gt; Source/WebCore/workers/service/WorkerSWClientConnection.cpp:161
&gt; +    notImplemented();

What&apos;s this?

&gt; Source/WebCore/workers/service/server/SWServerWorker.cpp:126
&gt; +void SWServerWorker::terminateCompleted()

startTermination -&gt; terminationCompleted would be more consistent.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1635511</commentid>
    <comment_count>5</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2020-03-30 08:11:44 -0700</bug_when>
    <thetext>&gt; &gt; Source/WebCore/workers/service/WorkerSWClientConnection.cpp:161
&gt; &gt; +    notImplemented();
&gt; 
&gt; What&apos;s this?

We are not calling terminate from a worker but only from a document and for testing purposes.
Plan is to add support for it should we need to call this for testing from workers.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1635514</commentid>
    <comment_count>6</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2020-03-30 08:17:44 -0700</bug_when>
    <thetext>(In reply to youenn fablet from comment #5)
&gt; &gt; &gt; Source/WebCore/workers/service/WorkerSWClientConnection.cpp:161
&gt; &gt; &gt; +    notImplemented();
&gt; &gt; 
&gt; &gt; What&apos;s this?
&gt; 
&gt; We are not calling terminate from a worker but only from a document and for
&gt; testing purposes.
&gt; Plan is to add support for it should we need to call this for testing from
&gt; workers.

It looks like something that used to work and no longer does, aka a regression. How hard would it be to keep it working?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1635524</commentid>
    <comment_count>7</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2020-03-30 08:41:54 -0700</bug_when>
    <thetext>(In reply to Chris Dumez from comment #6)
&gt; (In reply to youenn fablet from comment #5)
&gt; &gt; &gt; &gt; Source/WebCore/workers/service/WorkerSWClientConnection.cpp:161
&gt; &gt; &gt; &gt; +    notImplemented();
&gt; &gt; &gt; 
&gt; &gt; &gt; What&apos;s this?
&gt; &gt; 
&gt; &gt; We are not calling terminate from a worker but only from a document and for
&gt; &gt; testing purposes.
&gt; &gt; Plan is to add support for it should we need to call this for testing from
&gt; &gt; workers.
&gt; 
&gt; It looks like something that used to work and no longer does, aka a
&gt; regression. How hard would it be to keep it working?

We could and it would be fairly simple (although we would add a Vector&lt;callback&gt;) but I do not think this is worth it.
Another option is to move this API to ServiceWorkerProvider so that only Documents would do that. I would tend to go this way in that case.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1635525</commentid>
    <comment_count>8</comment_count>
      <attachid>394908</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2020-03-30 08:44:44 -0700</bug_when>
    <thetext>Comment on attachment 394908
Patch

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

&gt;&gt; Source/WebCore/workers/service/WorkerSWClientConnection.cpp:161
&gt;&gt; +    notImplemented();
&gt; 
&gt; What&apos;s this?

This looks bad. I think we should either make it work or drop this code (assuming it is not currently useful). Going from something that works to something notImplemented() does not seem like the right thing to do.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1635538</commentid>
    <comment_count>9</comment_count>
      <attachid>394924</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2020-03-30 09:05:48 -0700</bug_when>
    <thetext>Created attachment 394924
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1636427</commentid>
    <comment_count>10</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2020-04-01 01:54:15 -0700</bug_when>
    <thetext>Ping review.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1636608</commentid>
    <comment_count>11</comment_count>
      <attachid>394924</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2020-04-01 12:34:28 -0700</bug_when>
    <thetext>Comment on attachment 394924
Patch

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1636820</commentid>
    <comment_count>12</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2020-04-02 00:54:20 -0700</bug_when>
    <thetext>Patch 394924 does not build</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1636845</commentid>
    <comment_count>13</comment_count>
      <attachid>395256</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2020-04-02 03:02:18 -0700</bug_when>
    <thetext>Created attachment 395256
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1636849</commentid>
    <comment_count>14</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2020-04-02 04:00:59 -0700</bug_when>
    <thetext>Committed r259383: &lt;https://trac.webkit.org/changeset/259383&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 395256.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>394890</attachid>
            <date>2020-03-30 00:57:42 -0700</date>
            <delta_ts>2020-03-30 05:47:42 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-209666-20200330095740.patch</filename>
            <type>text/plain</type>
            <size>38990</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU5MTEwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZGQzNThiMmU3ZjVmNDQy
YmUwMmMxNDQ2OWYyNDEwNmIzOTViZDAwMS4uZDE4YmU3N2FkMDc1MGQzMDUzNDA3ODFiMmUwMmM0
YjdhODBkNDQ4YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ1IEBACisyMDIwLTAzLTI3ICB5b3Vl
bm4gZmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBSZW1vdmUgc3luY2hyb25v
dXMgdGVybWluYXRpb24gb2Ygc2VydmljZSB3b3JrZXJzCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDk2NjYKKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICBJbnN0ZWFkIG9mIHN1cHBvcnRpbmcgc3ljbmhyb25v
dXMgSVBDIHRvIHRlcm1pbmF0ZSBhIHNlcnZpY2Ugd29ya2VyLCBTV1NlcnZlcldvcmtlciB3aWxs
IGFzeW5jaHJvbm91c2x5IGFzayBmb3IgdGhlIHNlcnZpY2Ugd29ya2VyIHRvIHRlcm1pbmF0ZS4K
KyAgICAgICAgSWYgaXQgaXMgbm90IHRlcm1pbmF0ZWQgYWZ0ZXIgc29tZSB0aW1lLCBTV1NlcnZl
cldvcmtlciB3aWxsIHRoZW4gYXNrIHRvIHRlcm1pbmF0ZSB0aGUgcHJvY2VzcyBydW5uaW5nIHRo
ZSBzZXJ2aWNlIHdvcmtlci4KKworICAgICAgICBXZSBjYW4gdGhlbiByZW1vdmUgYWxsIHN5bmNo
cm9ub3VzIHJlbGF0ZWQgY29kZSByZWxhdGVkIHRvIHRlcm1pbmF0aW9uLgorICAgICAgICBXZSBt
aWdyYXRlIHRoZSB0ZXJtaW5hdGVTZXJ2aWNlV29ya2VyIGludGVybmFsIEFQSSB0byBiZSBQcm9t
aXNlIGJhc2VkLgorCisgICAgICAgIENvdmVyZWQgYnkgZXhpc3RpbmcgdGVzdHMuCisKKyAgICAg
ICAgKiB0ZXN0aW5nL0ludGVybmFscy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbnRlcm5hbHM6
OnRlcm1pbmF0ZVNlcnZpY2VXb3JrZXIpOgorICAgICAgICAqIHRlc3RpbmcvSW50ZXJuYWxzLmg6
CisgICAgICAgICogdGVzdGluZy9JbnRlcm5hbHMuaWRsOgorICAgICAgICAqIHdvcmtlcnMvc2Vy
dmljZS9TV0NsaWVudENvbm5lY3Rpb24uaDoKKyAgICAgICAgKiB3b3JrZXJzL3NlcnZpY2UvV29y
a2VyU1dDbGllbnRDb25uZWN0aW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OldvcmtlclNXQ2xp
ZW50Q29ubmVjdGlvbjo6dGVybWluYXRlV29ya2VyRm9yVGVzdGluZyk6CisgICAgICAgIChXZWJD
b3JlOjpXb3JrZXJTV0NsaWVudENvbm5lY3Rpb246OnN5bmNUZXJtaW5hdGVXb3JrZXIpOiBEZWxl
dGVkLgorICAgICAgICAqIHdvcmtlcnMvc2VydmljZS9Xb3JrZXJTV0NsaWVudENvbm5lY3Rpb24u
aDoKKyAgICAgICAgKiB3b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1NXU2VydmVyLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OlNXU2VydmVyOjp0ZXJtaW5hdGVXb3JrZXIpOgorICAgICAgICAoV2ViQ29y
ZTo6U1dTZXJ2ZXI6OkNvbm5lY3Rpb246OnN5bmNUZXJtaW5hdGVXb3JrZXIpOiBEZWxldGVkLgor
ICAgICAgICAoV2ViQ29yZTo6U1dTZXJ2ZXI6OnN5bmNUZXJtaW5hdGVXb3JrZXIpOiBEZWxldGVk
LgorICAgICAgICAoV2ViQ29yZTo6U1dTZXJ2ZXI6OnRlcm1pbmF0ZVdvcmtlckludGVybmFsKTog
RGVsZXRlZC4KKyAgICAgICAgKiB3b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1NXU2VydmVyLmg6Cisg
ICAgICAgICogd29ya2Vycy9zZXJ2aWNlL3NlcnZlci9TV1NlcnZlclRvQ29udGV4dENvbm5lY3Rp
b24uaDoKKyAgICAgICAgKiB3b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1NXU2VydmVyV29ya2VyLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6Om1fdGVybWluYXRlVGltZXIpOgorICAgICAgICAoV2ViQ29y
ZTo6U1dTZXJ2ZXJXb3JrZXI6On5TV1NlcnZlcldvcmtlcik6CisgICAgICAgIChXZWJDb3JlOjpT
V1NlcnZlcldvcmtlcjo6dGVybWluYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OlNXU2VydmVyV29y
a2VyOjp0ZXJtaW5hdGVUaW1lckZpcmVkKToKKyAgICAgICAgKFdlYkNvcmU6OlNXU2VydmVyV29y
a2VyOjpzZXRTdGF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpTV1NlcnZlcldvcmtlcjo6ZGlkRmFp
bEhlYXJ0QmVhdENoZWNrKToKKyAgICAgICAgKFdlYkNvcmU6Om1fc2NyaXB0UmVzb3VyY2VNYXAp
OiBEZWxldGVkLgorICAgICAgICAqIHdvcmtlcnMvc2VydmljZS9zZXJ2ZXIvU1dTZXJ2ZXJXb3Jr
ZXIuaDoKKyAgICAgICAgKFdlYkNvcmU6OlNXU2VydmVyV29ya2VyOjp0ZXJtaW5hdGUpOgorCiAy
MDIwLTAzLTI3ICB5b3Vlbm4gZmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KIAogICAgICAgICBG
aWx0ZXIgRE9NQ2FjaGUgcmVjb3JkcyBpbiBuZXR3b3JrIHByb2Nlc3MgdG8gcmVkdWNlIHRoZSBu
dW1iZXIgb2YgcmVjb3JkcyBiZWluZyBzZW50IHRvIFdlYlByb2Nlc3MKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggYmU1
Mjg4NTA3NDcyYjFlNDBlNzU5OGQ0MGVjMjRhMDU2MWVjZjdiNy4uNDYzNTAxYTRjY2FkNGE4N2U3
MTA5NzM3OGMyZjk4NDhkZjkzYjI5NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VM
b2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzMiBAQAorMjAyMC0w
My0yNyAgeW91ZW5uIGZhYmxldCAgPHlvdWVubkBhcHBsZS5jb20+CisKKyAgICAgICAgUmVtb3Zl
IHN5bmNocm9ub3VzIHRlcm1pbmF0aW9uIG9mIHNlcnZpY2Ugd29ya2VycworICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA5NjY2CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVXBkYXRlIElQQyBjb2RlIGFjY29y
ZGluZyByZW1vdmFsIG9mIHN5bmNocm9ub3VzIHRlcm1pbmF0aW9uIG9mIHNlcnZpY2Ugd29ya2Vy
LgorICAgICAgICBJbXBsZW1lbnQgYXN5bmMtd2l0aC1yZXBseSB0ZXJtaW5hdGlvbiBpbnN0ZWFk
LgorCisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvU2VydmljZVdvcmtlci9XZWJTV1NlcnZlckNv
bm5lY3Rpb24uY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJTV1NlcnZlckNvbm5lY3Rpb246OnRl
cm1pbmF0ZVdvcmtlckZyb21DbGllbnQpOgorICAgICAgICAoV2ViS2l0OjpXZWJTV1NlcnZlckNv
bm5lY3Rpb246OmZldGNoVGFza1RpbWVkT3V0KToKKyAgICAgICAgKFdlYktpdDo6V2ViU1dTZXJ2
ZXJDb25uZWN0aW9uOjpzeW5jVGVybWluYXRlV29ya2VyRnJvbUNsaWVudCk6IERlbGV0ZWQuCisg
ICAgICAgICogTmV0d29ya1Byb2Nlc3MvU2VydmljZVdvcmtlci9XZWJTV1NlcnZlckNvbm5lY3Rp
b24uaDoKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1dlYlNXU2VydmVy
Q29ubmVjdGlvbi5tZXNzYWdlcy5pbjoKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9TZXJ2aWNl
V29ya2VyL1dlYlNXU2VydmVyVG9Db250ZXh0Q29ubmVjdGlvbi5jcHA6CisgICAgICAgIChXZWJL
aXQ6OldlYlNXU2VydmVyVG9Db250ZXh0Q29ubmVjdGlvbjo6dGVybWluYXRlRHVlVG9VbnJlc3Bv
bnNpdmVuZXNzKToKKyAgICAgICAgKFdlYktpdDo6V2ViU1dTZXJ2ZXJUb0NvbnRleHRDb25uZWN0
aW9uOjpzeW5jVGVybWluYXRlV29ya2VyKTogRGVsZXRlZC4KKyAgICAgICAgKiBOZXR3b3JrUHJv
Y2Vzcy9TZXJ2aWNlV29ya2VyL1dlYlNXU2VydmVyVG9Db250ZXh0Q29ubmVjdGlvbi5oOgorICAg
ICAgICAqIFdlYlByb2Nlc3MvU3RvcmFnZS9XZWJTV0NsaWVudENvbm5lY3Rpb24uY3BwOgorICAg
ICAgICAoV2ViS2l0OjpXZWJTV0NsaWVudENvbm5lY3Rpb246OnRlcm1pbmF0ZVdvcmtlckZvclRl
c3RpbmcpOgorICAgICAgICAoV2ViS2l0OjpXZWJTV0NsaWVudENvbm5lY3Rpb246OnN5bmNUZXJt
aW5hdGVXb3JrZXIpOiBEZWxldGVkLgorICAgICAgICAqIFdlYlByb2Nlc3MvU3RvcmFnZS9XZWJT
V0NsaWVudENvbm5lY3Rpb24uaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dD
b250ZXh0TWFuYWdlckNvbm5lY3Rpb24uY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJTV0NvbnRl
eHRNYW5hZ2VyQ29ubmVjdGlvbjo6c3luY1Rlcm1pbmF0ZVdvcmtlcik6IERlbGV0ZWQuCisgICAg
ICAgICogV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uLmg6
CisgICAgICAgICogV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0
aW9uLm1lc3NhZ2VzLmluOgorCiAyMDIwLTAzLTI3ICB5b3Vlbm4gZmFibGV0ICA8eW91ZW5uQGFw
cGxlLmNvbT4KIAogICAgICAgICBGaWx0ZXIgRE9NQ2FjaGUgcmVjb3JkcyBpbiBuZXR3b3JrIHBy
b2Nlc3MgdG8gcmVkdWNlIHRoZSBudW1iZXIgb2YgcmVjb3JkcyBiZWluZyBzZW50IHRvIFdlYlBy
b2Nlc3MKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNwcAppbmRleCBhZjI3Yjk5ZjM4N2Mx
MjhhZmZiNDM2OWFiNGVjM2E5YzBiZmZjMjk4Li42OWU0ZTg0OTZjYWIxMTI1ODhiMWI4NjVmNWY3
Y2YwNjRhZjkzZTlkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFs
cy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuY3BwCkBAIC01MTUz
LDEyICs1MTUzLDExIEBAIHZvaWQgSW50ZXJuYWxzOjpoYXNTZXJ2aWNlV29ya2VyUmVnaXN0cmF0
aW9uKGNvbnN0IFN0cmluZyYgY2xpZW50VVJMLCBIYXNSZWdpc3RyCiAgICAgfSk7CiB9CiAKLXZv
aWQgSW50ZXJuYWxzOjp0ZXJtaW5hdGVTZXJ2aWNlV29ya2VyKFNlcnZpY2VXb3JrZXImIHdvcmtl
cikKK3ZvaWQgSW50ZXJuYWxzOjp0ZXJtaW5hdGVTZXJ2aWNlV29ya2VyKFNlcnZpY2VXb3JrZXIm
IHdvcmtlciwgRE9NUHJvbWlzZURlZmVycmVkPHZvaWQ+JiYgcHJvbWlzZSkKIHsKLSAgICBpZiAo
IWNvbnRleHREb2N1bWVudCgpKQotICAgICAgICByZXR1cm47Ci0KLSAgICBTZXJ2aWNlV29ya2Vy
UHJvdmlkZXI6OnNpbmdsZXRvbigpLnNlcnZpY2VXb3JrZXJDb25uZWN0aW9uKCkuc3luY1Rlcm1p
bmF0ZVdvcmtlcih3b3JrZXIuaWRlbnRpZmllcigpKTsKKyAgICBTZXJ2aWNlV29ya2VyUHJvdmlk
ZXI6OnNpbmdsZXRvbigpLnNlcnZpY2VXb3JrZXJDb25uZWN0aW9uKCkudGVybWluYXRlV29ya2Vy
Rm9yVGVzdGluZyh3b3JrZXIuaWRlbnRpZmllcigpLCBbcHJvbWlzZSA9IFdURk1vdmUocHJvbWlz
ZSldKCkgbXV0YWJsZSB7CisgICAgICAgIHByb21pc2UucmVzb2x2ZSgpOworICAgIH0pOwogfQog
CiB2b2lkIEludGVybmFsczo6aXNTZXJ2aWNlV29ya2VyUnVubmluZyhTZXJ2aWNlV29ya2VyJiB3
b3JrZXIsIERPTVByb21pc2VEZWZlcnJlZDxJRExCb29sZWFuPiYmIHByb21pc2UpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5oIGIvU291cmNlL1dlYkNvcmUv
dGVzdGluZy9JbnRlcm5hbHMuaAppbmRleCBlMjM1MjM0MWRiOGMxNWQ0MjlmOWNlZmQyODlkZjUy
MjcwZTVhYzdjLi4xMTRjY2Q2OWYxZjc0MzczYWZhYThiNGJmN2E5ZDdkZjFkNmNiYmMzIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmgKQEAgLTc4Myw3ICs3ODMsNyBAQCBwdWJsaWM6CiAj
aWYgRU5BQkxFKFNFUlZJQ0VfV09SS0VSKQogICAgIHVzaW5nIEhhc1JlZ2lzdHJhdGlvblByb21p
c2UgPSBET01Qcm9taXNlRGVmZXJyZWQ8SURMQm9vbGVhbj47CiAgICAgdm9pZCBoYXNTZXJ2aWNl
V29ya2VyUmVnaXN0cmF0aW9uKGNvbnN0IFN0cmluZyYgY2xpZW50VVJMLCBIYXNSZWdpc3RyYXRp
b25Qcm9taXNlJiYpOwotICAgIHZvaWQgdGVybWluYXRlU2VydmljZVdvcmtlcihTZXJ2aWNlV29y
a2VyJik7CisgICAgdm9pZCB0ZXJtaW5hdGVTZXJ2aWNlV29ya2VyKFNlcnZpY2VXb3JrZXImLCBE
T01Qcm9taXNlRGVmZXJyZWQ8dm9pZD4mJik7CiAgICAgdm9pZCBpc1NlcnZpY2VXb3JrZXJSdW5u
aW5nKFNlcnZpY2VXb3JrZXImLCBET01Qcm9taXNlRGVmZXJyZWQ8SURMQm9vbGVhbj4mJik7CiAj
ZW5kaWYKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaWRs
IGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaWRsCmluZGV4IDE2MmZhZjQ5NDZl
YWFkZDk4MGU1Nzg5YTE4YmJkZWM1NTgzZjYzMjMuLjY5ZWQwZjFjY2RkN2VhMTQ2OTc1MjBkMGNk
NTMzODkzZjJjZDkyNjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJu
YWxzLmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5pZGwKQEAgLTc3
MCw3ICs3NzAsNyBAQCBlbnVtIENvbXBvc2l0aW5nUG9saWN5IHsKICAgICBib29sZWFuIGF1ZGlv
U2Vzc2lvbkFjdGl2ZSgpOwogCiAgICAgW0NvbmRpdGlvbmFsPVNFUlZJQ0VfV09SS0VSXSBQcm9t
aXNlPGJvb2xlYW4+IGhhc1NlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb24oRE9NU3RyaW5nIHNjb3Bl
VVJMKTsKLSAgICBbQ29uZGl0aW9uYWw9U0VSVklDRV9XT1JLRVJdIHZvaWQgdGVybWluYXRlU2Vy
dmljZVdvcmtlcihTZXJ2aWNlV29ya2VyIHdvcmtlcik7CisgICAgW0NvbmRpdGlvbmFsPVNFUlZJ
Q0VfV09SS0VSXSBQcm9taXNlPHZvaWQ+IHRlcm1pbmF0ZVNlcnZpY2VXb3JrZXIoU2VydmljZVdv
cmtlciB3b3JrZXIpOwogICAgIFtDb25kaXRpb25hbD1TRVJWSUNFX1dPUktFUl0gUHJvbWlzZTxi
b29sZWFuPiBpc1NlcnZpY2VXb3JrZXJSdW5uaW5nKFNlcnZpY2VXb3JrZXIgd29ya2VyKTsKIAog
ICAgIFtDYWxsV2l0aD1Eb2N1bWVudCwgQ29uZGl0aW9uYWw9QVBQTEVfUEFZXSByZWFkb25seSBh
dHRyaWJ1dGUgTW9ja1BheW1lbnRDb29yZGluYXRvciBtb2NrUGF5bWVudENvb3JkaW5hdG9yOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL1NXQ2xpZW50Q29ubmVj
dGlvbi5oIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL1NXQ2xpZW50Q29ubmVjdGlv
bi5oCmluZGV4IGIyYmM0NGQxOGQ1NDQwMDAzOWM2MThmZTMwMDg2NGQ2YWY0YmNhZTcuLmQzNmZh
MGNiM2JmMzNjYjMyMzE0NjM3NmNjZDhhODQ1ZGE0MmFkYzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3dvcmtlcnMvc2VydmljZS9TV0NsaWVudENvbm5lY3Rpb24uaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvU1dDbGllbnRDb25uZWN0aW9uLmgKQEAgLTc5LDcgKzc5
LDcgQEAgcHVibGljOgogCiAgICAgdmlydHVhbCBTV1NlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVy
IHNlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyKCkgY29uc3QgPSAwOwogICAgIHZpcnR1YWwgYm9v
bCBtYXlIYXZlU2VydmljZVdvcmtlclJlZ2lzdGVyZWRGb3JPcmlnaW4oY29uc3QgU2VjdXJpdHlP
cmlnaW5EYXRhJikgY29uc3QgPSAwOwotICAgIHZpcnR1YWwgdm9pZCBzeW5jVGVybWluYXRlV29y
a2VyKFNlcnZpY2VXb3JrZXJJZGVudGlmaWVyKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIHRlcm1p
bmF0ZVdvcmtlckZvclRlc3RpbmcoU2VydmljZVdvcmtlcklkZW50aWZpZXIsIENvbXBsZXRpb25I
YW5kbGVyPHZvaWQoKT4mJikgPSAwOwogCiAgICAgdmlydHVhbCB2b2lkIHJlZ2lzdGVyU2Vydmlj
ZVdvcmtlckNsaWVudChjb25zdCBTZWN1cml0eU9yaWdpbiYgdG9wT3JpZ2luLCBjb25zdCBTZXJ2
aWNlV29ya2VyQ2xpZW50RGF0YSYsIGNvbnN0IE9wdGlvbmFsPFNlcnZpY2VXb3JrZXJSZWdpc3Ry
YXRpb25JZGVudGlmaWVyPiYsIGNvbnN0IFN0cmluZyYgdXNlckFnZW50KSA9IDA7CiAgICAgdmly
dHVhbCB2b2lkIHVucmVnaXN0ZXJTZXJ2aWNlV29ya2VyQ2xpZW50KERvY3VtZW50SWRlbnRpZmll
cikgPSAwOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL1dvcmtl
clNXQ2xpZW50Q29ubmVjdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2Uv
V29ya2VyU1dDbGllbnRDb25uZWN0aW9uLmNwcAppbmRleCA3NTgyNTc1ZGRmMzZkNWU0ZmY2YWIy
MWQ2NzhmMWZiNTcxMjFkMWVkLi42MWJmYTU3ZTRhZGUyYTIyYTFkNGUxZTcxOWQ0ZmMyNWRhYTg3
M2I0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvV29ya2VyU1dD
bGllbnRDb25uZWN0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2Uv
V29ya2VyU1dDbGllbnRDb25uZWN0aW9uLmNwcApAQCAtMjgsNiArMjgsNyBAQAogCiAjaWYgRU5B
QkxFKFNFUlZJQ0VfV09SS0VSKQogCisjaW5jbHVkZSAiTm90SW1wbGVtZW50ZWQuaCIKICNpbmNs
dWRlICJTZWN1cml0eU9yaWdpbi5oIgogI2luY2x1ZGUgIlNlcnZpY2VXb3JrZXJDbGllbnREYXRh
LmgiCiAjaW5jbHVkZSAiU2VydmljZVdvcmtlckZldGNoUmVzdWx0LmgiCkBAIC0xNTUsMTIgKzE1
Niw5IEBAIGJvb2wgV29ya2VyU1dDbGllbnRDb25uZWN0aW9uOjptYXlIYXZlU2VydmljZVdvcmtl
clJlZ2lzdGVyZWRGb3JPcmlnaW4oY29uc3QgU2VjCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLXZv
aWQgV29ya2VyU1dDbGllbnRDb25uZWN0aW9uOjpzeW5jVGVybWluYXRlV29ya2VyKFNlcnZpY2VX
b3JrZXJJZGVudGlmaWVyIGlkZW50aWZpZXIpCit2b2lkIFdvcmtlclNXQ2xpZW50Q29ubmVjdGlv
bjo6dGVybWluYXRlV29ya2VyRm9yVGVzdGluZyhTZXJ2aWNlV29ya2VySWRlbnRpZmllciwgQ29t
cGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKQogewotICAgIGNhbGxPbk1haW5UaHJlYWQoW2lkZW50
aWZpZXJdKCkgbXV0YWJsZSB7Ci0gICAgICAgIGF1dG8mIGNvbm5lY3Rpb24gPSBTZXJ2aWNlV29y
a2VyUHJvdmlkZXI6OnNpbmdsZXRvbigpLnNlcnZpY2VXb3JrZXJDb25uZWN0aW9uKCk7Ci0gICAg
ICAgIGNvbm5lY3Rpb24uc3luY1Rlcm1pbmF0ZVdvcmtlcihpZGVudGlmaWVyKTsKLSAgICB9KTsK
KyAgICBub3RJbXBsZW1lbnRlZCgpOwogfQogCiB2b2lkIFdvcmtlclNXQ2xpZW50Q29ubmVjdGlv
bjo6cmVnaXN0ZXJTZXJ2aWNlV29ya2VyQ2xpZW50KGNvbnN0IFNlY3VyaXR5T3JpZ2luJiB0b3BP
cmlnaW4sIGNvbnN0IFNlcnZpY2VXb3JrZXJDbGllbnREYXRhJiBkYXRhLCBjb25zdCBPcHRpb25h
bDxTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uSWRlbnRpZmllcj4mIGlkZW50aWZpZXIsIGNvbnN0
IFN0cmluZyYgdXNlckFnZW50KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9z
ZXJ2aWNlL1dvcmtlclNXQ2xpZW50Q29ubmVjdGlvbi5oIGIvU291cmNlL1dlYkNvcmUvd29ya2Vy
cy9zZXJ2aWNlL1dvcmtlclNXQ2xpZW50Q29ubmVjdGlvbi5oCmluZGV4IDUxOGVhMmY0YjY0ZWE1
YmExMjMwZDE4YWZiNjdhOGM2NTczZDcyNmQuLmNmNTJkZmEyYWJjYThkMTkzNjNhZDA1MWQ1NmZl
MmU0NDIzNWM3ODYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9X
b3JrZXJTV0NsaWVudENvbm5lY3Rpb24uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3Nl
cnZpY2UvV29ya2VyU1dDbGllbnRDb25uZWN0aW9uLmgKQEAgLTUxLDcgKzUxLDcgQEAgcHJpdmF0
ZToKICAgICB2b2lkIHBvc3RNZXNzYWdlVG9TZXJ2aWNlV29ya2VyKFNlcnZpY2VXb3JrZXJJZGVu
dGlmaWVyIGRlc3RpbmF0aW9uLCBNZXNzYWdlV2l0aE1lc3NhZ2VQb3J0cyYmLCBjb25zdCBTZXJ2
aWNlV29ya2VyT3JDbGllbnRJZGVudGlmaWVyJiBzb3VyY2UpIGZpbmFsOwogICAgIFNXU2VydmVy
Q29ubmVjdGlvbklkZW50aWZpZXIgc2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIoKSBjb25zdCBm
aW5hbDsKICAgICBib29sIG1heUhhdmVTZXJ2aWNlV29ya2VyUmVnaXN0ZXJlZEZvck9yaWdpbihj
b25zdCBTZWN1cml0eU9yaWdpbkRhdGEmKSBjb25zdCBmaW5hbDsKLSAgICB2b2lkIHN5bmNUZXJt
aW5hdGVXb3JrZXIoU2VydmljZVdvcmtlcklkZW50aWZpZXIpIGZpbmFsOworICAgIHZvaWQgdGVy
bWluYXRlV29ya2VyRm9yVGVzdGluZyhTZXJ2aWNlV29ya2VySWRlbnRpZmllciwgQ29tcGxldGlv
bkhhbmRsZXI8dm9pZCgpPiYmKSBmaW5hbDsKICAgICB2b2lkIHJlZ2lzdGVyU2VydmljZVdvcmtl
ckNsaWVudChjb25zdCBTZWN1cml0eU9yaWdpbiYgdG9wT3JpZ2luLCBjb25zdCBTZXJ2aWNlV29y
a2VyQ2xpZW50RGF0YSYsIGNvbnN0IE9wdGlvbmFsPFNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25J
ZGVudGlmaWVyPiYsIGNvbnN0IFN0cmluZyYgdXNlckFnZW50KSBmaW5hbDsKICAgICB2b2lkIHVu
cmVnaXN0ZXJTZXJ2aWNlV29ya2VyQ2xpZW50KERvY3VtZW50SWRlbnRpZmllcikgZmluYWw7CiAg
ICAgdm9pZCBmaW5pc2hGZXRjaGluZ1NjcmlwdEluU2VydmVyKGNvbnN0IFNlcnZpY2VXb3JrZXJG
ZXRjaFJlc3VsdCYpIGZpbmFsOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9z
ZXJ2aWNlL3NlcnZlci9TV1NlcnZlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZp
Y2Uvc2VydmVyL1NXU2VydmVyLmNwcAppbmRleCBhODE1MWNjZDE1NDQxYmViM2U2ZmFlMmI1MDEx
ZjQ5ODU5MDg0MmRhLi5kM2MxM2Y3NzY1MzFlMWFkMGNiYzU1ZDBiZTI5Zjg0ZGE3NDliNjU3IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1NXU2VydmVy
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1NXU2VydmVy
LmNwcApAQCAtNDksOCArNDksNiBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLXN0YXRpYyBT
ZWNvbmRzIHRlcm1pbmF0aW9uRGVsYXkgeyAxMF9zIH07Ci0KIFNXU2VydmVyOjpDb25uZWN0aW9u
OjpDb25uZWN0aW9uKFNXU2VydmVyJiBzZXJ2ZXIsIElkZW50aWZpZXIgaWRlbnRpZmllcikKICAg
ICA6IG1fc2VydmVyKHNlcnZlcikKICAgICAsIG1faWRlbnRpZmllcihpZGVudGlmaWVyKQpAQCAt
MzA3LDEyICszMDUsNiBAQCB2b2lkIFNXU2VydmVyOjpDb25uZWN0aW9uOjpyZW1vdmVTZXJ2aWNl
V29ya2VyUmVnaXN0cmF0aW9uSW5TZXJ2ZXIoU2VydmljZVdvcmtlcgogICAgIG1fc2VydmVyLnJl
bW92ZUNsaWVudFNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb24oKnRoaXMsIGlkZW50aWZpZXIpOwog
fQogCi12b2lkIFNXU2VydmVyOjpDb25uZWN0aW9uOjpzeW5jVGVybWluYXRlV29ya2VyKFNlcnZp
Y2VXb3JrZXJJZGVudGlmaWVyIGlkZW50aWZpZXIpCi17Ci0gICAgaWYgKGF1dG8qIHdvcmtlciA9
IG1fc2VydmVyLndvcmtlckJ5SUQoaWRlbnRpZmllcikpCi0gICAgICAgIG1fc2VydmVyLnN5bmNU
ZXJtaW5hdGVXb3JrZXIoKndvcmtlcik7Ci19Ci0KIFNXU2VydmVyOjpTV1NlcnZlcihVbmlxdWVS
ZWY8U1dPcmlnaW5TdG9yZT4mJiBvcmlnaW5TdG9yZSwgYm9vbCBwcm9jZXNzVGVybWluYXRpb25E
ZWxheUVuYWJsZWQsIFN0cmluZyYmIHJlZ2lzdHJhdGlvbkRhdGFiYXNlRGlyZWN0b3J5LCBQQUw6
OlNlc3Npb25JRCBzZXNzaW9uSUQsIFNvZnRVcGRhdGVDYWxsYmFjayYmIHNvZnRVcGRhdGVDYWxs
YmFjaywgQ3JlYXRlQ29udGV4dENvbm5lY3Rpb25DYWxsYmFjayYmIGNhbGxiYWNrKQogICAgIDog
bV9vcmlnaW5TdG9yZShXVEZNb3ZlKG9yaWdpblN0b3JlKSkKICAgICAsIG1fc2Vzc2lvbklEKHNl
c3Npb25JRCkKQEAgLTczNCwyMSArNzI2LDExIEBAIGJvb2wgU1dTZXJ2ZXI6OnJ1blNlcnZpY2VX
b3JrZXIoU2VydmljZVdvcmtlcklkZW50aWZpZXIgaWRlbnRpZmllcikKIH0KIAogdm9pZCBTV1Nl
cnZlcjo6dGVybWluYXRlV29ya2VyKFNXU2VydmVyV29ya2VyJiB3b3JrZXIpCi17Ci0gICAgdGVy
bWluYXRlV29ya2VySW50ZXJuYWwod29ya2VyLCBBc3luY2hyb25vdXMpOwotfQotCi12b2lkIFNX
U2VydmVyOjpzeW5jVGVybWluYXRlV29ya2VyKFNXU2VydmVyV29ya2VyJiB3b3JrZXIpCi17Ci0g
ICAgdGVybWluYXRlV29ya2VySW50ZXJuYWwod29ya2VyLCBTeW5jaHJvbm91cyk7Ci19Ci0KLXZv
aWQgU1dTZXJ2ZXI6OnRlcm1pbmF0ZVdvcmtlckludGVybmFsKFNXU2VydmVyV29ya2VyJiB3b3Jr
ZXIsIFRlcm1pbmF0aW9uTW9kZSBtb2RlKQogewogICAgIEFTU0VSVChtX3J1bm5pbmdPclRlcm1p
bmF0aW5nV29ya2Vycy5nZXQod29ya2VyLmlkZW50aWZpZXIoKSkgPT0gJndvcmtlcik7CiAgICAg
QVNTRVJUKHdvcmtlci5pc1J1bm5pbmcoKSk7CiAKLSAgICBSRUxFQVNFX0xPRyhTZXJ2aWNlV29y
a2VyLCAiJXAgLSBTV1NlcnZlcjo6dGVybWluYXRlV29ya2VySW50ZXJuYWw6IFRlcm1pbmF0aW5n
IHNlcnZpY2Ugd29ya2VyICVsbHUiLCB0aGlzLCB3b3JrZXIuaWRlbnRpZmllcigpLnRvVUludDY0
KCkpOworICAgIFJFTEVBU0VfTE9HKFNlcnZpY2VXb3JrZXIsICIlcCAtIFNXU2VydmVyOjp0ZXJt
aW5hdGVXb3JrZXI6IFRlcm1pbmF0aW5nIHNlcnZpY2Ugd29ya2VyICVsbHUiLCB0aGlzLCB3b3Jr
ZXIuaWRlbnRpZmllcigpLnRvVUludDY0KCkpOwogCiAgICAgd29ya2VyLnNldFN0YXRlKFNXU2Vy
dmVyV29ya2VyOjpTdGF0ZTo6VGVybWluYXRpbmcpOwogCkBAIC03NjAsMTQgKzc0Miw3IEBAIHZv
aWQgU1dTZXJ2ZXI6OnRlcm1pbmF0ZVdvcmtlckludGVybmFsKFNXU2VydmVyV29ya2VyJiB3b3Jr
ZXIsIFRlcm1pbmF0aW9uTW9kZSBtCiAgICAgICAgIHJldHVybjsKICAgICB9CiAKLSAgICBzd2l0
Y2ggKG1vZGUpIHsKLSAgICBjYXNlIEFzeW5jaHJvbm91czoKLSAgICAgICAgY29udGV4dENvbm5l
Y3Rpb24tPnRlcm1pbmF0ZVdvcmtlcih3b3JrZXIuaWRlbnRpZmllcigpKTsKLSAgICAgICAgYnJl
YWs7Ci0gICAgY2FzZSBTeW5jaHJvbm91czoKLSAgICAgICAgY29udGV4dENvbm5lY3Rpb24tPnN5
bmNUZXJtaW5hdGVXb3JrZXIod29ya2VyLmlkZW50aWZpZXIoKSk7Ci0gICAgICAgIGJyZWFrOwot
ICAgIH07CisgICAgY29udGV4dENvbm5lY3Rpb24tPnRlcm1pbmF0ZVdvcmtlcih3b3JrZXIuaWRl
bnRpZmllcigpKTsKIH0KIAogdm9pZCBTV1NlcnZlcjo6bWFya0FsbFdvcmtlcnNGb3JSZWdpc3Ry
YWJsZURvbWFpbkFzVGVybWluYXRlZChjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYgcmVnaXN0cmFi
bGVEb21haW4pCkBAIC05MjgsNyArOTAzLDcgQEAgdm9pZCBTV1NlcnZlcjo6dW5yZWdpc3RlclNl
cnZpY2VXb3JrZXJDbGllbnQoY29uc3QgQ2xpZW50T3JpZ2luJiBjbGllbnRPcmlnaW4sIFMKIAog
ICAgICAgICAgICAgbV9jbGllbnRJZGVudGlmaWVyc1Blck9yaWdpbi5yZW1vdmUoY2xpZW50T3Jp
Z2luKTsKICAgICAgICAgfSk7Ci0gICAgICAgIGl0ZXJhdG9yLT52YWx1ZS50ZXJtaW5hdGVTZXJ2
aWNlV29ya2Vyc1RpbWVyLT5zdGFydE9uZVNob3QobV9pc1Byb2Nlc3NUZXJtaW5hdGlvbkRlbGF5
RW5hYmxlZCAmJiAhTWVtb3J5UHJlc3N1cmVIYW5kbGVyOjpzaW5nbGV0b24oKS5pc1VuZGVyTWVt
b3J5UHJlc3N1cmUoKSA/IHRlcm1pbmF0aW9uRGVsYXkgOiAwX3MpOworICAgICAgICBpdGVyYXRv
ci0+dmFsdWUudGVybWluYXRlU2VydmljZVdvcmtlcnNUaW1lci0+c3RhcnRPbmVTaG90KG1faXNQ
cm9jZXNzVGVybWluYXRpb25EZWxheUVuYWJsZWQgJiYgIU1lbW9yeVByZXNzdXJlSGFuZGxlcjo6
c2luZ2xldG9uKCkuaXNVbmRlck1lbW9yeVByZXNzdXJlKCkgPyBkZWZhdWx0VGVybWluYXRpb25E
ZWxheSA6IDBfcyk7CiAgICAgfQogCiAgICAgYXV0byBjbGllbnRzQnlSZWdpc3RyYWJsZURvbWFp
bkl0ZXJhdG9yID0gbV9jbGllbnRzQnlSZWdpc3RyYWJsZURvbWFpbi5maW5kKGNsaWVudFJlZ2lz
dHJhYmxlRG9tYWluKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2Vydmlj
ZS9zZXJ2ZXIvU1dTZXJ2ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9zZXJ2
ZXIvU1dTZXJ2ZXIuaAppbmRleCBhZWYxOTgzMDU3MTJjMjNjNDNiZjMzMDBkYzUyMzM1NDhiNzky
ODI5Li45MjBhNmVjNjgyZjA0NTFjYWQzNTA3YmQ4YTkxNjQzNTgzZDQ3NmQ5IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1NXU2VydmVyLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL3NlcnZlci9TV1NlcnZlci5oCkBAIC0xMDIs
NyArMTAyLDYgQEAgcHVibGljOgogICAgICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIGZpbmlzaEZl
dGNoaW5nU2NyaXB0SW5TZXJ2ZXIoY29uc3QgU2VydmljZVdvcmtlckZldGNoUmVzdWx0Jik7CiAg
ICAgICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgYWRkU2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbklu
U2VydmVyKFNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25JZGVudGlmaWVyKTsKICAgICAgICAgV0VC
Q09SRV9FWFBPUlQgdm9pZCByZW1vdmVTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uSW5TZXJ2ZXIo
U2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbklkZW50aWZpZXIpOwotICAgICAgICBXRUJDT1JFX0VY
UE9SVCB2b2lkIHN5bmNUZXJtaW5hdGVXb3JrZXIoU2VydmljZVdvcmtlcklkZW50aWZpZXIpOwog
ICAgICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHdoZW5SZWdpc3RyYXRpb25SZWFkeSh1aW50NjRf
dCByZWdpc3RyYXRpb25SZWFkeVJlcXVlc3RJZGVudGlmaWVyLCBjb25zdCBTZWN1cml0eU9yaWdp
bkRhdGEmIHRvcE9yaWdpbiwgY29uc3QgVVJMJiBjbGllbnRVUkwpOwogCiAgICAgICAgIFdFQkNP
UkVfRVhQT1JUIHZvaWQgc3RvcmVSZWdpc3RyYXRpb25zT25EaXNrKENvbXBsZXRpb25IYW5kbGVy
PHZvaWQoKT4mJik7CkBAIC0xNTMsNyArMTUyLDYgQEAgcHVibGljOgogCiAgICAgdm9pZCB1cGRh
dGVXb3JrZXIoY29uc3QgU2VydmljZVdvcmtlckpvYkRhdGFJZGVudGlmaWVyJiwgU1dTZXJ2ZXJS
ZWdpc3RyYXRpb24mLCBjb25zdCBVUkwmLCBjb25zdCBTdHJpbmcmIHNjcmlwdCwgY29uc3QgQ29u
dGVudFNlY3VyaXR5UG9saWN5UmVzcG9uc2VIZWFkZXJzJiwgY29uc3QgU3RyaW5nJiByZWZlcnJl
clBvbGljeSwgV29ya2VyVHlwZSwgSGFzaE1hcDxVUkwsIFNlcnZpY2VXb3JrZXJDb250ZXh0RGF0
YTo6SW1wb3J0ZWRTY3JpcHQ+JiYpOwogICAgIHZvaWQgdGVybWluYXRlV29ya2VyKFNXU2VydmVy
V29ya2VyJik7Ci0gICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBzeW5jVGVybWluYXRlV29ya2VyKFNX
U2VydmVyV29ya2VyJik7CiAgICAgdm9pZCBmaXJlSW5zdGFsbEV2ZW50KFNXU2VydmVyV29ya2Vy
Jik7CiAgICAgdm9pZCBmaXJlQWN0aXZhdGVFdmVudChTV1NlcnZlcldvcmtlciYpOwogCkBAIC0y
MTUsNiArMjEzLDggQEAgcHVibGljOgogCiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBoYW5kbGVM
b3dNZW1vcnlXYXJuaW5nKCk7CiAKKyAgICBzdGF0aWMgY29uc3RleHByIFNlY29uZHMgZGVmYXVs
dFRlcm1pbmF0aW9uRGVsYXkgPSAxMF9zOworCiBwcml2YXRlOgogICAgIHZvaWQgc2NyaXB0RmV0
Y2hGaW5pc2hlZChjb25zdCBTZXJ2aWNlV29ya2VyRmV0Y2hSZXN1bHQmKTsKIApAQCAtMjM2LDEy
ICsyMzYsNiBAQCBwcml2YXRlOgogCiAgICAgdm9pZCBwZXJmb3JtR2V0T3JpZ2luc1dpdGhSZWdp
c3RyYXRpb25zQ2FsbGJhY2tzKCk7CiAKLSAgICBlbnVtIFRlcm1pbmF0aW9uTW9kZSB7Ci0gICAg
ICAgIFN5bmNocm9ub3VzLAotICAgICAgICBBc3luY2hyb25vdXMsCi0gICAgfTsKLSAgICB2b2lk
IHRlcm1pbmF0ZVdvcmtlckludGVybmFsKFNXU2VydmVyV29ya2VyJiwgVGVybWluYXRpb25Nb2Rl
KTsKLQogICAgIHZvaWQgY29udGV4dENvbm5lY3Rpb25DcmVhdGVkKFNXU2VydmVyVG9Db250ZXh0
Q29ubmVjdGlvbiYpOwogCiAgICAgSGFzaE1hcDxTV1NlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVy
LCBzdGQ6OnVuaXF1ZV9wdHI8Q29ubmVjdGlvbj4+IG1fY29ubmVjdGlvbnM7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1NXU2VydmVyVG9Db250ZXh0
Q29ubmVjdGlvbi5oIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL3NlcnZlci9TV1Nl
cnZlclRvQ29udGV4dENvbm5lY3Rpb24uaAppbmRleCAwNTg4NGM4YmI5MWViNDQ1NTQzZDBmMjll
MWE2OWYyMjhjYTE3NmQ5Li40NjU5ZjlmOWZhNmM2YmFhOGRlOTY4ZDM5MTVmZTMzYzRlMzEyNjY4
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1NXU2Vy
dmVyVG9Db250ZXh0Q29ubmVjdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2Vy
dmljZS9zZXJ2ZXIvU1dTZXJ2ZXJUb0NvbnRleHRDb25uZWN0aW9uLmgKQEAgLTU0LDcgKzU0LDYg
QEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBmaXJlSW5zdGFsbEV2ZW50KFNlcnZpY2VXb3Jr
ZXJJZGVudGlmaWVyKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIGZpcmVBY3RpdmF0ZUV2ZW50KFNl
cnZpY2VXb3JrZXJJZGVudGlmaWVyKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIHRlcm1pbmF0ZVdv
cmtlcihTZXJ2aWNlV29ya2VySWRlbnRpZmllcikgPSAwOwotICAgIHZpcnR1YWwgdm9pZCBzeW5j
VGVybWluYXRlV29ya2VyKFNlcnZpY2VXb3JrZXJJZGVudGlmaWVyKSA9IDA7CiAgICAgdmlydHVh
bCB2b2lkIGZpbmRDbGllbnRCeUlkZW50aWZpZXJDb21wbGV0ZWQodWludDY0X3QgcmVxdWVzdElk
ZW50aWZpZXIsIGNvbnN0IE9wdGlvbmFsPFNlcnZpY2VXb3JrZXJDbGllbnREYXRhPiYsIGJvb2wg
aGFzU2VjdXJpdHlFcnJvcikgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBtYXRjaEFsbENvbXBsZXRl
ZCh1aW50NjRfdCByZXF1ZXN0SWRlbnRpZmllciwgY29uc3QgVmVjdG9yPFNlcnZpY2VXb3JrZXJD
bGllbnREYXRhPiYpID0gMDsKIApAQCAtNzUsNiArNzQsNyBAQCBwdWJsaWM6CiAgICAgY29uc3Qg
UmVnaXN0cmFibGVEb21haW4mIHJlZ2lzdHJhYmxlRG9tYWluKCkgY29uc3QgeyByZXR1cm4gbV9y
ZWdpc3RyYWJsZURvbWFpbjsgfQogCiAgICAgdmlydHVhbCB2b2lkIGNvbm5lY3Rpb25Jc05vTG9u
Z2VyTmVlZGVkKCkgPSAwOworICAgIHZpcnR1YWwgdm9pZCB0ZXJtaW5hdGVEdWVUb1VucmVzcG9u
c2l2ZW5lc3MoKSA9IDA7CiAKIHByb3RlY3RlZDoKICAgICBXRUJDT1JFX0VYUE9SVCBleHBsaWNp
dCBTV1NlcnZlclRvQ29udGV4dENvbm5lY3Rpb24oUmVnaXN0cmFibGVEb21haW4mJik7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1NXU2VydmVyV29y
a2VyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9zZXJ2ZXIvU1dTZXJ2ZXJX
b3JrZXIuY3BwCmluZGV4IDQwMGFhNDdmNGZjMTRhMzc2ZWY0ZDljYzkyYjJmZTdjZmM3NGYyZTgu
Ljk2MTQ0NjU0ZGRjZTU0NGRjNGZhZjk3MjY3ZDA2OTZlZjMzMmM3OWUgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9zZXJ2ZXIvU1dTZXJ2ZXJXb3JrZXIuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9zZXJ2ZXIvU1dTZXJ2ZXJXb3JrZXIu
Y3BwCkBAIC01OCw2ICs1OCw3IEBAIFNXU2VydmVyV29ya2VyOjpTV1NlcnZlcldvcmtlcihTV1Nl
cnZlciYgc2VydmVyLCBTV1NlcnZlclJlZ2lzdHJhdGlvbiYgcmVnaXN0cmF0CiAgICAgLCBtX3Jl
ZmVycmVyUG9saWN5KFdURk1vdmUocmVmZXJyZXJQb2xpY3kpKQogICAgICwgbV9yZWdpc3RyYWJs
ZURvbWFpbihtX2RhdGEuc2NyaXB0VVJMKQogICAgICwgbV9zY3JpcHRSZXNvdXJjZU1hcChXVEZN
b3ZlKHNjcmlwdFJlc291cmNlTWFwKSkKKyAgICAsIG1fdGVybWluYXRpb25UaW1lcigqdGhpcywg
JlNXU2VydmVyV29ya2VyOjp0ZXJtaW5hdGlvblRpbWVyRmlyZWQpCiB7CiAgICAgbV9kYXRhLnNj
cmlwdFVSTC5yZW1vdmVGcmFnbWVudElkZW50aWZpZXIoKTsKIApAQCAtNzQsNiArNzUsOSBAQCBT
V1NlcnZlcldvcmtlcjo6flNXU2VydmVyV29ya2VyKCkKIAogICAgIGF1dG8gdGFrZW4gPSBhbGxX
b3JrZXJzKCkudGFrZShpZGVudGlmaWVyKCkpOwogICAgIEFTU0VSVF9VTlVTRUQodGFrZW4sIHRh
a2VuID09IHRoaXMpOworCisgICAgaWYgKG1fdGVybWluYXRpb25DYWxsYmFjaykKKyAgICAgICAg
bV90ZXJtaW5hdGlvbkNhbGxiYWNrKCk7CiB9CiAKIFNlcnZpY2VXb3JrZXJDb250ZXh0RGF0YSBT
V1NlcnZlcldvcmtlcjo6Y29udGV4dERhdGEoKSBjb25zdApAQCAtODMsMTAgKzg3LDMwIEBAIFNl
cnZpY2VXb3JrZXJDb250ZXh0RGF0YSBTV1NlcnZlcldvcmtlcjo6Y29udGV4dERhdGEoKSBjb25z
dAogICAgIHJldHVybiB7IFdURjo6bnVsbG9wdCwgbV9yZWdpc3RyYXRpb24tPmRhdGEoKSwgbV9k
YXRhLmlkZW50aWZpZXIsIG1fc2NyaXB0LCBtX2NvbnRlbnRTZWN1cml0eVBvbGljeSwgbV9yZWZl
cnJlclBvbGljeSwgbV9kYXRhLnNjcmlwdFVSTCwgbV9kYXRhLnR5cGUsIGZhbHNlLCBtX3Njcmlw
dFJlc291cmNlTWFwIH07CiB9CiAKLXZvaWQgU1dTZXJ2ZXJXb3JrZXI6OnRlcm1pbmF0ZSgpCit2
b2lkIFNXU2VydmVyV29ya2VyOjp0ZXJtaW5hdGUoQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYm
IGNhbGxiYWNrKQoreworICAgIGlmICghbV9zZXJ2ZXIgfHwgIWlzUnVubmluZygpKQorICAgICAg
ICByZXR1cm4gY2FsbGJhY2soKTsKKworICAgIG1fc2VydmVyLT50ZXJtaW5hdGVXb3JrZXIoKnRo
aXMpOworICAgIGlmICghaXNUZXJtaW5hdGluZygpKQorICAgICAgICByZXR1cm4gY2FsbGJhY2so
KTsKKyAgICBtX3Rlcm1pbmF0aW9uQ2FsbGJhY2sgPSBXVEZNb3ZlKGNhbGxiYWNrKTsKKyAgICBt
X3Rlcm1pbmF0aW9uVGltZXIuc3RhcnRPbmVTaG90KFNXU2VydmVyOjpkZWZhdWx0VGVybWluYXRp
b25EZWxheSk7Cit9CisKK3ZvaWQgU1dTZXJ2ZXJXb3JrZXI6OnRlcm1pbmF0ZUNvbXBsZXRlZCgp
CiB7Ci0gICAgaWYgKGlzUnVubmluZygpKQotICAgICAgICBtX3NlcnZlci0+dGVybWluYXRlV29y
a2VyKCp0aGlzKTsKKyAgICBtX3Rlcm1pbmF0aW9uVGltZXIuc3RvcCgpOworICAgIGlmIChtX3Rl
cm1pbmF0aW9uQ2FsbGJhY2spCisgICAgICAgIG1fdGVybWluYXRpb25DYWxsYmFjaygpOworfQor
Cit2b2lkIFNXU2VydmVyV29ya2VyOjp0ZXJtaW5hdGlvblRpbWVyRmlyZWQoKQoreworICAgIEFT
U0VSVChpc1Rlcm1pbmF0aW5nKCkpOworICAgIGNvbnRleHRDb25uZWN0aW9uKCktPnRlcm1pbmF0
ZUR1ZVRvVW5yZXNwb25zaXZlbmVzcygpOworICAgIG1fdGVybWluYXRpb25DYWxsYmFjaygpOwog
fQogCiBjb25zdCBDbGllbnRPcmlnaW4mIFNXU2VydmVyV29ya2VyOjpvcmlnaW4oKSBjb25zdApA
QCAtMjUyLDYgKzI3Niw5IEBAIHZvaWQgU1dTZXJ2ZXJXb3JrZXI6OnNldFN0YXRlKFN0YXRlIHN0
YXRlKQogICAgICAgICBjYWxsV2hlbkFjdGl2YXRlZEhhbmRsZXIoZmFsc2UpOwogICAgICAgICBi
cmVhazsKICAgICBjYXNlIFN0YXRlOjpOb3RSdW5uaW5nOgorICAgICAgICBpZiAobV90ZXJtaW5h
dGlvblRpbWVyLmlzQWN0aXZlKCkpCisgICAgICAgICAgICB0ZXJtaW5hdGVDb21wbGV0ZWQoKTsK
KwogICAgICAgICBjYWxsV2hlbkFjdGl2YXRlZEhhbmRsZXIoZmFsc2UpOwogICAgICAgICAvLyBB
cyBwZXIgaHR0cHM6Ly93M2MuZ2l0aHViLmlvL1NlcnZpY2VXb3JrZXIvI2FjdGl2YXRlLCBhIHdv
cmtlciBnb2VzIHRvIGFjdGl2YXRlZCBldmVuIGlmIGFjdGl2YXRpbmcgZmFpbHMuCiAgICAgICAg
IGlmIChtX2RhdGEuc3RhdGUgPT0gU2VydmljZVdvcmtlclN0YXRlOjpBY3RpdmF0aW5nKQpAQCAt
MjY3LDggKzI5NCw3IEBAIFNXU2VydmVyUmVnaXN0cmF0aW9uKiBTV1NlcnZlcldvcmtlcjo6cmVn
aXN0cmF0aW9uKCkgY29uc3QKIAogdm9pZCBTV1NlcnZlcldvcmtlcjo6ZGlkRmFpbEhlYXJ0QmVh
dENoZWNrKCkKIHsKLSAgICBpZiAobV9zZXJ2ZXIgJiYgaXNSdW5uaW5nKCkpCi0gICAgICAgIG1f
c2VydmVyLT50ZXJtaW5hdGVXb3JrZXIoKnRoaXMpOworICAgIHRlcm1pbmF0ZSgpOwogfQogCiB9
IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJz
L3NlcnZpY2Uvc2VydmVyL1NXU2VydmVyV29ya2VyLmggYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJz
L3NlcnZpY2Uvc2VydmVyL1NXU2VydmVyV29ya2VyLmgKaW5kZXggZTAyYWUwMDEwZmNmYWM1ZGUx
MTliNGZkYTEyYTcxNzEzOGVmNWMwNS4uNDc2M2E3NDc3MGUyOGY5ZWZhODg2YzM1YjhjMGQzNzFl
MTQ5OGY2MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL3NlcnZl
ci9TV1NlcnZlcldvcmtlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9z
ZXJ2ZXIvU1dTZXJ2ZXJXb3JrZXIuaApAQCAtMzYsNiArMzYsNyBAQAogI2luY2x1ZGUgIlNlcnZp
Y2VXb3JrZXJJZGVudGlmaWVyLmgiCiAjaW5jbHVkZSAiU2VydmljZVdvcmtlclJlZ2lzdHJhdGlv
bktleS5oIgogI2luY2x1ZGUgIlNlcnZpY2VXb3JrZXJUeXBlcy5oIgorI2luY2x1ZGUgIlRpbWVy
LmgiCiAjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KICNpbmNsdWRlIDx3dGYvV2Vha1B0ci5o
PgogCkBAIC02MCw3ICs2MSw3IEBAIHB1YmxpYzoKICAgICBTV1NlcnZlcldvcmtlcihjb25zdCBT
V1NlcnZlcldvcmtlciYpID0gZGVsZXRlOwogICAgIFdFQkNPUkVfRVhQT1JUIH5TV1NlcnZlcldv
cmtlcigpOwogCi0gICAgdm9pZCB0ZXJtaW5hdGUoKTsKKyAgICBXRUJDT1JFX0VYUE9SVCB2b2lk
IHRlcm1pbmF0ZShDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYgPSBbXSB7IH0pOwogCiAgICAg
V0VCQ09SRV9FWFBPUlQgdm9pZCB3aGVuQWN0aXZhdGVkKENvbXBsZXRpb25IYW5kbGVyPHZvaWQo
Ym9vbCk+JiYpOwogCkBAIC0xMjYsNiArMTI3LDkgQEAgcHJpdmF0ZToKIAogICAgIHZvaWQgY2Fs
bFdoZW5BY3RpdmF0ZWRIYW5kbGVyKGJvb2wgc3VjY2Vzcyk7CiAKKyAgICB2b2lkIHRlcm1pbmF0
ZUNvbXBsZXRlZCgpOworICAgIHZvaWQgdGVybWluYXRpb25UaW1lckZpcmVkKCk7CisKICAgICBX
ZWFrUHRyPFNXU2VydmVyPiBtX3NlcnZlcjsKICAgICBTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9u
S2V5IG1fcmVnaXN0cmF0aW9uS2V5OwogICAgIFdlYWtQdHI8U1dTZXJ2ZXJSZWdpc3RyYXRpb24+
IG1fcmVnaXN0cmF0aW9uOwpAQCAtMTQyLDYgKzE0Niw4IEBAIHByaXZhdGU6CiAgICAgSGFzaE1h
cDxVUkwsIFNlcnZpY2VXb3JrZXJDb250ZXh0RGF0YTo6SW1wb3J0ZWRTY3JpcHQ+IG1fc2NyaXB0
UmVzb3VyY2VNYXA7CiAgICAgYm9vbCBtX3Nob3VsZFNraXBIYW5kbGVGZXRjaDsKICAgICBib29s
IG1faGFzVGltZWRPdXRBbnlGZXRjaFRhc2tzIHsgZmFsc2UgfTsKKyAgICBDb21wbGV0aW9uSGFu
ZGxlcjx2b2lkKCk+IG1fdGVybWluYXRpb25DYWxsYmFjazsKKyAgICBUaW1lciBtX3Rlcm1pbmF0
aW9uVGltZXI7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1NlcnZpY2VXb3JrZXIvV2ViU1dTZXJ2ZXJDb25uZWN0
aW9uLmNwcCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvU2VydmljZVdvcmtlci9XZWJT
V1NlcnZlckNvbm5lY3Rpb24uY3BwCmluZGV4IGQxNDQ2ZmU2NTNmYTI5Y2M2MjNlYzgyMGVjNTA3
ZmU1Mzc2MjBkMzUuLjlhYWQ5ZWQwZjJhMTMyMWFiNDk2ZWVhZjNkZjRhODhiNjIyOTcwNGQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvU2VydmljZVdvcmtlci9XZWJT
V1NlcnZlckNvbm5lY3Rpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mv
U2VydmljZVdvcmtlci9XZWJTV1NlcnZlckNvbm5lY3Rpb24uY3BwCkBAIC00NTYsMTAgKzQ1Niwx
MiBAQCB2b2lkIFdlYlNXU2VydmVyQ29ubmVjdGlvbjo6Y29udGV4dENvbm5lY3Rpb25DcmVhdGVk
KFNXU2VydmVyVG9Db250ZXh0Q29ubmVjdGlvbgogICAgICAgICBtX25ldHdvcmtQcm9jZXNzLT5w
YXJlbnRQcm9jZXNzQ29ubmVjdGlvbigpLT5zZW5kKE1lc3NhZ2VzOjpOZXR3b3JrUHJvY2Vzc1By
b3h5OjpSZWdpc3RlclNlcnZpY2VXb3JrZXJDbGllbnRQcm9jZXNzIHsgaWRlbnRpZmllcigpLCBj
b25uZWN0aW9uLndlYlByb2Nlc3NJZGVudGlmaWVyKCkgfSwgMCk7CiB9CiAKLXZvaWQgV2ViU1dT
ZXJ2ZXJDb25uZWN0aW9uOjpzeW5jVGVybWluYXRlV29ya2VyRnJvbUNsaWVudChTZXJ2aWNlV29y
a2VySWRlbnRpZmllciBpZGVudGlmaWVyLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYgY29t
cGxldGlvbkhhbmRsZXIpCit2b2lkIFdlYlNXU2VydmVyQ29ubmVjdGlvbjo6dGVybWluYXRlV29y
a2VyRnJvbUNsaWVudChTZXJ2aWNlV29ya2VySWRlbnRpZmllciBzZXJ2aWNlV29ya2VySWRlbnRp
ZmllciwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmIGNhbGxiYWNrKQogewotICAgIHN5bmNU
ZXJtaW5hdGVXb3JrZXIoV1RGTW92ZShpZGVudGlmaWVyKSk7Ci0gICAgY29tcGxldGlvbkhhbmRs
ZXIoKTsKKyAgICBhdXRvKiB3b3JrZXIgPSBzZXJ2ZXIoKS53b3JrZXJCeUlEKHNlcnZpY2VXb3Jr
ZXJJZGVudGlmaWVyKTsKKyAgICBpZiAoIXdvcmtlcikKKyAgICAgICAgcmV0dXJuIGNhbGxiYWNr
KCk7CisgICAgd29ya2VyLT50ZXJtaW5hdGUoV1RGTW92ZShjYWxsYmFjaykpOwogfQogCiB2b2lk
IFdlYlNXU2VydmVyQ29ubmVjdGlvbjo6aXNTZXJ2aWNlV29ya2VyUnVubmluZyhTZXJ2aWNlV29y
a2VySWRlbnRpZmllciBpZGVudGlmaWVyLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYm
IGNvbXBsZXRpb25IYW5kbGVyKQpAQCAtNDg1LDggKzQ4Nyw3IEBAIHZvaWQgV2ViU1dTZXJ2ZXJD
b25uZWN0aW9uOjpmZXRjaFRhc2tUaW1lZE91dChTZXJ2aWNlV29ya2VySWRlbnRpZmllciBzZXJ2
aWNlV29yCiAgICAgICAgIHJldHVybjsKIAogICAgIHdvcmtlci0+c2V0SGFzVGltZWRPdXRBbnlG
ZXRjaFRhc2tzKCk7Ci0gICAgaWYgKHdvcmtlci0+aXNSdW5uaW5nKCkpCi0gICAgICAgIHNlcnZl
cigpLnN5bmNUZXJtaW5hdGVXb3JrZXIoKndvcmtlcik7CisgICAgd29ya2VyLT50ZXJtaW5hdGUo
KTsKIH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L05ldHdvcmtQcm9jZXNzL1NlcnZpY2VXb3JrZXIvV2ViU1dTZXJ2ZXJDb25uZWN0aW9uLmggYi9T
b3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1NlcnZpY2VXb3JrZXIvV2ViU1dTZXJ2ZXJDb25u
ZWN0aW9uLmgKaW5kZXggMWJiMjgzYzhhNmE5NzM4OTZiM2IwZDc4MmZkN2ZhN2ZiY2UyN2RjYy4u
OGU0ODQxZTA2NmQ3NmFiMWE3NWUwYWI0NThlNjU1NDMyNzIyNjIxYiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1dlYlNXU2VydmVyQ29ubmVj
dGlvbi5oCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvU2VydmljZVdvcmtlci9X
ZWJTV1NlcnZlckNvbm5lY3Rpb24uaApAQCAtNzAsNyArNzAsNiBAQCBwdWJsaWM6CiAgICAgSVBD
OjpDb25uZWN0aW9uJiBpcGNDb25uZWN0aW9uKCkgY29uc3QgeyByZXR1cm4gbV9jb250ZW50Q29u
bmVjdGlvbi5nZXQoKTsgfQogCiAgICAgdm9pZCBkaWRSZWNlaXZlTWVzc2FnZShJUEM6OkNvbm5l
Y3Rpb24mLCBJUEM6OkRlY29kZXImKSBmaW5hbDsKLSAgICB2b2lkIGRpZFJlY2VpdmVTeW5jTWVz
c2FnZShJUEM6OkNvbm5lY3Rpb24mLCBJUEM6OkRlY29kZXImLCBzdGQ6OnVuaXF1ZV9wdHI8SVBD
OjpFbmNvZGVyPiYpOwogICAgIAogICAgIFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCgpIGNvbnN0
OwogCkBAIC0xMDMsNyArMTAyLDcgQEAgcHJpdmF0ZToKIAogICAgIHZvaWQgcmVnaXN0ZXJTZXJ2
aWNlV29ya2VyQ2xpZW50KFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSYmIHRvcE9yaWdpbiwg
V2ViQ29yZTo6U2VydmljZVdvcmtlckNsaWVudERhdGEmJiwgY29uc3QgT3B0aW9uYWw8V2ViQ29y
ZTo6U2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbklkZW50aWZpZXI+JiwgU3RyaW5nJiYgdXNlckFn
ZW50KTsKICAgICB2b2lkIHVucmVnaXN0ZXJTZXJ2aWNlV29ya2VyQ2xpZW50KGNvbnN0IFdlYkNv
cmU6OlNlcnZpY2VXb3JrZXJDbGllbnRJZGVudGlmaWVyJik7Ci0gICAgdm9pZCBzeW5jVGVybWlu
YXRlV29ya2VyRnJvbUNsaWVudChXZWJDb3JlOjpTZXJ2aWNlV29ya2VySWRlbnRpZmllciwgQ29t
cGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsKKyAgICB2b2lkIHRlcm1pbmF0ZVdvcmtlckZyb21D
bGllbnQoV2ViQ29yZTo6U2VydmljZVdvcmtlcklkZW50aWZpZXIsIENvbXBsZXRpb25IYW5kbGVy
PHZvaWQoKT4mJik7CiAgICAgdm9pZCBpc1NlcnZpY2VXb3JrZXJSdW5uaW5nKFdlYkNvcmU6OlNl
cnZpY2VXb3JrZXJJZGVudGlmaWVyLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmKTsK
IAogICAgIHZvaWQgcG9zdE1lc3NhZ2VUb1NlcnZpY2VXb3JrZXJDbGllbnQoV2ViQ29yZTo6RG9j
dW1lbnRJZGVudGlmaWVyIGRlc3RpbmF0aW9uQ29udGV4dElkZW50aWZpZXIsIGNvbnN0IFdlYkNv
cmU6Ok1lc3NhZ2VXaXRoTWVzc2FnZVBvcnRzJiwgV2ViQ29yZTo6U2VydmljZVdvcmtlcklkZW50
aWZpZXIgc291cmNlU2VydmljZVdvcmtlcklkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYgc291cmNl
T3JpZ2luKSBmaW5hbDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mv
U2VydmljZVdvcmtlci9XZWJTV1NlcnZlckNvbm5lY3Rpb24ubWVzc2FnZXMuaW4gYi9Tb3VyY2Uv
V2ViS2l0L05ldHdvcmtQcm9jZXNzL1NlcnZpY2VXb3JrZXIvV2ViU1dTZXJ2ZXJDb25uZWN0aW9u
Lm1lc3NhZ2VzLmluCmluZGV4IDk1M2Y2YzM1NjE0MDllZjUyOTIyODUzNGE0MzMxMWVjNjYxOTFk
YTYuLmUyNWQ3MWU5YWRlOTE5Yzg1YjExNzFlYTY3NzQxYTBiMGU2ZGIwMDQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvU2VydmljZVdvcmtlci9XZWJTV1NlcnZlckNv
bm5lY3Rpb24ubWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9T
ZXJ2aWNlV29ya2VyL1dlYlNXU2VydmVyQ29ubmVjdGlvbi5tZXNzYWdlcy5pbgpAQCAtNDEsNyAr
NDEsNyBAQCBtZXNzYWdlcyAtPiBXZWJTV1NlcnZlckNvbm5lY3Rpb24gTm90UmVmQ291bnRlZCB7
CiAgICAgUmVnaXN0ZXJTZXJ2aWNlV29ya2VyQ2xpZW50KHN0cnVjdCBXZWJDb3JlOjpTZWN1cml0
eU9yaWdpbkRhdGEgdG9wT3JpZ2luLCBzdHJ1Y3QgV2ViQ29yZTo6U2VydmljZVdvcmtlckNsaWVu
dERhdGEgZGF0YSwgT3B0aW9uYWw8V2ViQ29yZTo6U2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbklk
ZW50aWZpZXI+IGNvbnRyb2xsaW5nU2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbklkZW50aWZpZXIs
IFN0cmluZyB1c2VyQWdlbnQpCiAgICAgVW5yZWdpc3RlclNlcnZpY2VXb3JrZXJDbGllbnQoc3Ry
dWN0IFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJDbGllbnRJZGVudGlmaWVyIGlkZW50aWZpZXIpCiAK
LSAgICBTeW5jVGVybWluYXRlV29ya2VyRnJvbUNsaWVudChXZWJDb3JlOjpTZXJ2aWNlV29ya2Vy
SWRlbnRpZmllciB3b3JrZXJJZGVudGlmaWVyKSAtPiAoKSBTeW5jaHJvbm91cworICAgIFRlcm1p
bmF0ZVdvcmtlckZyb21DbGllbnQoV2ViQ29yZTo6U2VydmljZVdvcmtlcklkZW50aWZpZXIgd29y
a2VySWRlbnRpZmllcikgLT4gKCkgQXN5bmMKIAogICAgIFNldFRocm90dGxlU3RhdGUoYm9vbCBp
c1Rocm90dGxlYWJsZSkKICAgICBTdG9yZVJlZ2lzdHJhdGlvbnNPbkRpc2soKSAtPiAoKSBBc3lu
YwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9TZXJ2aWNlV29ya2Vy
L1dlYlNXU2VydmVyVG9Db250ZXh0Q29ubmVjdGlvbi5jcHAgYi9Tb3VyY2UvV2ViS2l0L05ldHdv
cmtQcm9jZXNzL1NlcnZpY2VXb3JrZXIvV2ViU1dTZXJ2ZXJUb0NvbnRleHRDb25uZWN0aW9uLmNw
cAppbmRleCBjMGY2Y2ViMTRiZTUxN2NmY2EwNzhkYTk3Njk1MDM4MDk0MjE1NDMxLi42MzdjOGVk
ODk1YmMzODZjYzE3Zjc3ZTY1Y2NlMzdmZDRmZGIyMzRkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L05ldHdvcmtQcm9jZXNzL1NlcnZpY2VXb3JrZXIvV2ViU1dTZXJ2ZXJUb0NvbnRleHRDb25u
ZWN0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1NlcnZpY2VXb3Jr
ZXIvV2ViU1dTZXJ2ZXJUb0NvbnRleHRDb25uZWN0aW9uLmNwcApAQCAtMTA2LDEwICsxMDYsOSBA
QCB2b2lkIFdlYlNXU2VydmVyVG9Db250ZXh0Q29ubmVjdGlvbjo6dGVybWluYXRlV29ya2VyKFNl
cnZpY2VXb3JrZXJJZGVudGlmaWVyIHNlcgogICAgIHNlbmQoTWVzc2FnZXM6OldlYlNXQ29udGV4
dE1hbmFnZXJDb25uZWN0aW9uOjpUZXJtaW5hdGVXb3JrZXIoc2VydmljZVdvcmtlcklkZW50aWZp
ZXIpKTsKIH0KIAotdm9pZCBXZWJTV1NlcnZlclRvQ29udGV4dENvbm5lY3Rpb246OnN5bmNUZXJt
aW5hdGVXb3JrZXIoU2VydmljZVdvcmtlcklkZW50aWZpZXIgc2VydmljZVdvcmtlcklkZW50aWZp
ZXIpCit2b2lkIFdlYlNXU2VydmVyVG9Db250ZXh0Q29ubmVjdGlvbjo6dGVybWluYXRlRHVlVG9V
bnJlc3BvbnNpdmVuZXNzKCkKIHsKLSAgICBpZiAoIXNlbmRTeW5jKE1lc3NhZ2VzOjpXZWJTV0Nv
bnRleHRNYW5hZ2VyQ29ubmVjdGlvbjo6U3luY1Rlcm1pbmF0ZVdvcmtlcihzZXJ2aWNlV29ya2Vy
SWRlbnRpZmllciksIE1lc3NhZ2VzOjpXZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbjo6U3lu
Y1Rlcm1pbmF0ZVdvcmtlcjo6UmVwbHkoKSwgMCwgMTBfcywgSVBDOjpTZW5kU3luY09wdGlvbjo6
Rm9yY2VEaXNwYXRjaFdoZW5EZXN0aW5hdGlvbklzV2FpdGluZ0ZvclVuYm91bmRlZFN5bmNSZXBs
eSkpCi0gICAgICAgIG1fY29ubmVjdGlvbi5uZXR3b3JrUHJvY2VzcygpLnBhcmVudFByb2Nlc3ND
b25uZWN0aW9uKCktPnNlbmQoTWVzc2FnZXM6Ok5ldHdvcmtQcm9jZXNzUHJveHk6OlRlcm1pbmF0
ZVVucmVzcG9uc2l2ZVNlcnZpY2VXb3JrZXJQcm9jZXNzZXMgeyB3ZWJQcm9jZXNzSWRlbnRpZmll
cigpIH0sIDApOworICAgIG1fY29ubmVjdGlvbi5uZXR3b3JrUHJvY2VzcygpLnBhcmVudFByb2Nl
c3NDb25uZWN0aW9uKCktPnNlbmQoTWVzc2FnZXM6Ok5ldHdvcmtQcm9jZXNzUHJveHk6OlRlcm1p
bmF0ZVVucmVzcG9uc2l2ZVNlcnZpY2VXb3JrZXJQcm9jZXNzZXMgeyB3ZWJQcm9jZXNzSWRlbnRp
ZmllcigpIH0sIDApOwogfQogCiB2b2lkIFdlYlNXU2VydmVyVG9Db250ZXh0Q29ubmVjdGlvbjo6
ZmluZENsaWVudEJ5SWRlbnRpZmllckNvbXBsZXRlZCh1aW50NjRfdCByZXF1ZXN0SWRlbnRpZmll
ciwgY29uc3QgT3B0aW9uYWw8U2VydmljZVdvcmtlckNsaWVudERhdGE+JiBkYXRhLCBib29sIGhh
c1NlY3VyaXR5RXJyb3IpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNz
L1NlcnZpY2VXb3JrZXIvV2ViU1dTZXJ2ZXJUb0NvbnRleHRDb25uZWN0aW9uLmggYi9Tb3VyY2Uv
V2ViS2l0L05ldHdvcmtQcm9jZXNzL1NlcnZpY2VXb3JrZXIvV2ViU1dTZXJ2ZXJUb0NvbnRleHRD
b25uZWN0aW9uLmgKaW5kZXggZmUxMjJjZmY2YTYxZjkxNmY0NjVhMDQwYTdlYzZiMTI5NDBmMWE1
Ny4uNTc0ODE2NDBiZTgxYTYzM2E5ZWI5NzgyMzYxZjhkOGQ2Yjc4MDUzNCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1dlYlNXU2VydmVyVG9D
b250ZXh0Q29ubmVjdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvU2Vy
dmljZVdvcmtlci9XZWJTV1NlcnZlclRvQ29udGV4dENvbm5lY3Rpb24uaApAQCAtODcsMTEgKzg3
LDExIEBAIHByaXZhdGU6CiAgICAgdm9pZCBmaXJlSW5zdGFsbEV2ZW50KFdlYkNvcmU6OlNlcnZp
Y2VXb3JrZXJJZGVudGlmaWVyKSBmaW5hbDsKICAgICB2b2lkIGZpcmVBY3RpdmF0ZUV2ZW50KFdl
YkNvcmU6OlNlcnZpY2VXb3JrZXJJZGVudGlmaWVyKSBmaW5hbDsKICAgICB2b2lkIHRlcm1pbmF0
ZVdvcmtlcihXZWJDb3JlOjpTZXJ2aWNlV29ya2VySWRlbnRpZmllcikgZmluYWw7Ci0gICAgdm9p
ZCBzeW5jVGVybWluYXRlV29ya2VyKFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJJZGVudGlmaWVyKSBm
aW5hbDsKICAgICB2b2lkIGZpbmRDbGllbnRCeUlkZW50aWZpZXJDb21wbGV0ZWQodWludDY0X3Qg
cmVxdWVzdElkZW50aWZpZXIsIGNvbnN0IE9wdGlvbmFsPFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJD
bGllbnREYXRhPiYsIGJvb2wgaGFzU2VjdXJpdHlFcnJvcikgZmluYWw7CiAgICAgdm9pZCBtYXRj
aEFsbENvbXBsZXRlZCh1aW50NjRfdCByZXF1ZXN0SWRlbnRpZmllciwgY29uc3QgVmVjdG9yPFdl
YkNvcmU6OlNlcnZpY2VXb3JrZXJDbGllbnREYXRhPiYpIGZpbmFsOwogCiAgICAgdm9pZCBjb25u
ZWN0aW9uSXNOb0xvbmdlck5lZWRlZCgpIGZpbmFsOworICAgIHZvaWQgdGVybWluYXRlRHVlVG9V
bnJlc3BvbnNpdmVuZXNzKCkgZmluYWw7CiAKICAgICB2b2lkIGNvbm5lY3Rpb25DbG9zZWQoKTsK
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dDbGll
bnRDb25uZWN0aW9uLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNX
Q2xpZW50Q29ubmVjdGlvbi5jcHAKaW5kZXggYjFhMWVhNmIwMjRkNjBhNWQ3Nzk0ODU0MjA1Mjg5
Y2U0MTBlZDBhZC4uYzNjY2M2OWE2ZWNhMTNhYTlhODdmNjIyNDdlMDMzNTY5YTJjMTc5YiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dDbGllbnRDb25u
ZWN0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3RvcmFnZS9XZWJTV0Ns
aWVudENvbm5lY3Rpb24uY3BwCkBAIC0yNDMsOSArMjQzLDkgQEAgdm9pZCBXZWJTV0NsaWVudENv
bm5lY3Rpb246OmNsZWFyKCkKICAgICBjbGVhclBlbmRpbmdKb2JzKCk7CiB9CiAKLXZvaWQgV2Vi
U1dDbGllbnRDb25uZWN0aW9uOjpzeW5jVGVybWluYXRlV29ya2VyKFNlcnZpY2VXb3JrZXJJZGVu
dGlmaWVyIGlkZW50aWZpZXIpCit2b2lkIFdlYlNXQ2xpZW50Q29ubmVjdGlvbjo6dGVybWluYXRl
V29ya2VyRm9yVGVzdGluZyhTZXJ2aWNlV29ya2VySWRlbnRpZmllciBpZGVudGlmaWVyLCBDb21w
bGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYgY2FsbGJhY2spCiB7Ci0gICAgc2VuZFN5bmMoTWVzc2Fn
ZXM6OldlYlNXU2VydmVyQ29ubmVjdGlvbjo6U3luY1Rlcm1pbmF0ZVdvcmtlckZyb21DbGllbnQg
eyBpZGVudGlmaWVyIH0sIE1lc3NhZ2VzOjpXZWJTV1NlcnZlckNvbm5lY3Rpb246OlN5bmNUZXJt
aW5hdGVXb3JrZXJGcm9tQ2xpZW50OjpSZXBseSgpKTsKKyAgICBzZW5kV2l0aEFzeW5jUmVwbHko
TWVzc2FnZXM6OldlYlNXU2VydmVyQ29ubmVjdGlvbjo6VGVybWluYXRlV29ya2VyRnJvbUNsaWVu
dCB7IGlkZW50aWZpZXIgfSwgV1RGTW92ZShjYWxsYmFjaykpOwogfQogCiB2b2lkIFdlYlNXQ2xp
ZW50Q29ubmVjdGlvbjo6aXNTZXJ2aWNlV29ya2VyUnVubmluZyhTZXJ2aWNlV29ya2VySWRlbnRp
ZmllciBpZGVudGlmaWVyLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmIGNhbGxiYWNr
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dDbGll
bnRDb25uZWN0aW9uLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3RvcmFnZS9XZWJTV0Ns
aWVudENvbm5lY3Rpb24uaAppbmRleCA3NmM0NjI4MzQ5NGI2MDAyZjQxZDUwN2M5MTNkYThmZThm
MzgzMTU4Li4yMjlkYTQ4ZGZjMGI4ZDRlZjhkMDQyMGY2NTQyNThkYmMyYmI1M2NiIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3RvcmFnZS9XZWJTV0NsaWVudENvbm5lY3Rp
b24uaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3RvcmFnZS9XZWJTV0NsaWVudENv
bm5lY3Rpb24uaApAQCAtNjIsOCArNjIsNiBAQCBwdWJsaWM6CiAKICAgICB2b2lkIGNvbm5lY3Rp
b25Ub1NlcnZlckxvc3QoKTsKIAotICAgIHZvaWQgc3luY1Rlcm1pbmF0ZVdvcmtlcihXZWJDb3Jl
OjpTZXJ2aWNlV29ya2VySWRlbnRpZmllcikgZmluYWw7Ci0KICAgICBib29sIGlzVGhyb3R0bGVh
YmxlKCkgY29uc3QgeyByZXR1cm4gbV9pc1Rocm90dGxlYWJsZTsgfQogICAgIHZvaWQgdXBkYXRl
VGhyb3R0bGVTdGF0ZSgpOwogCkBAIC05MSw2ICs4OSw4IEBAIHByaXZhdGU6CiAgICAgdm9pZCBk
aWRSZXNvbHZlUmVnaXN0cmF0aW9uUHJvbWlzZShjb25zdCBXZWJDb3JlOjpTZXJ2aWNlV29ya2Vy
UmVnaXN0cmF0aW9uS2V5JikgZmluYWw7CiAgICAgdm9pZCBzdG9yZVJlZ2lzdHJhdGlvbnNPbkRp
c2tGb3JUZXN0aW5nKENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJikgZmluYWw7CiAKKyAgICB2
b2lkIHRlcm1pbmF0ZVdvcmtlckZvclRlc3RpbmcoV2ViQ29yZTo6U2VydmljZVdvcmtlcklkZW50
aWZpZXIsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJikgZmluYWw7CisKICAgICB2b2lkIHNj
aGVkdWxlU3RvcmFnZUpvYihjb25zdCBXZWJDb3JlOjpTZXJ2aWNlV29ya2VySm9iRGF0YSYpOwog
CiAgICAgdm9pZCBydW5PckRlbGF5VGFza0ZvckltcG9ydChGdW5jdGlvbjx2b2lkKCk+JiYgdGFz
ayk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3RvcmFnZS9XZWJTV0Nv
bnRleHRNYW5hZ2VyQ29ubmVjdGlvbi5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3Rv
cmFnZS9XZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbi5jcHAKaW5kZXggOWMwYjU2OTZjMTE1
NmY1ZDg4YjZjNTkxNmU3MGU0NzQ3ZTNlMmZmMC4uM2JiMjAyMTQ2NWI5NjQ3ZGZjOGM4NzNiYzRh
MzQ5ZmE4OGQ4ZjliNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0b3Jh
Z2UvV2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uLmNwcApAQCAt
MjU1LDExICsyNTUsNiBAQCB2b2lkIFdlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uOjp0ZXJt
aW5hdGVXb3JrZXIoU2VydmljZVdvcmtlcklkZW50aWZpZXIgaWRlbgogICAgIFNXQ29udGV4dE1h
bmFnZXI6OnNpbmdsZXRvbigpLnRlcm1pbmF0ZVdvcmtlcihpZGVudGlmaWVyLCBTV0NvbnRleHRN
YW5hZ2VyOjp3b3JrZXJUZXJtaW5hdGlvblRpbWVvdXQsIG51bGxwdHIpOwogfQogCi12b2lkIFdl
YlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uOjpzeW5jVGVybWluYXRlV29ya2VyKFNlcnZpY2VX
b3JrZXJJZGVudGlmaWVyIGlkZW50aWZpZXIsIE1lc3NhZ2VzOjpXZWJTV0NvbnRleHRNYW5hZ2Vy
Q29ubmVjdGlvbjo6U3luY1Rlcm1pbmF0ZVdvcmtlcjo6RGVsYXllZFJlcGx5JiYgcmVwbHkpCi17
Ci0gICAgU1dDb250ZXh0TWFuYWdlcjo6c2luZ2xldG9uKCkudGVybWluYXRlV29ya2VyKGlkZW50
aWZpZXIsIFNXQ29udGV4dE1hbmFnZXI6OnN5bmNXb3JrZXJUZXJtaW5hdGlvblRpbWVvdXQsIFdU
Rk1vdmUocmVwbHkpKTsKLX0KLQogdm9pZCBXZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbjo6
cG9zdE1lc3NhZ2VUb1NlcnZpY2VXb3JrZXJDbGllbnQoY29uc3QgU2VydmljZVdvcmtlckNsaWVu
dElkZW50aWZpZXImIGRlc3RpbmF0aW9uSWRlbnRpZmllciwgY29uc3QgTWVzc2FnZVdpdGhNZXNz
YWdlUG9ydHMmIG1lc3NhZ2UsIFNlcnZpY2VXb3JrZXJJZGVudGlmaWVyIHNvdXJjZUlkZW50aWZp
ZXIsIGNvbnN0IFN0cmluZyYgc291cmNlT3JpZ2luKQogewogICAgIG1fY29ubmVjdGlvblRvTmV0
d29ya1Byb2Nlc3MtPnNlbmQoTWVzc2FnZXM6OldlYlNXU2VydmVyVG9Db250ZXh0Q29ubmVjdGlv
bjo6UG9zdE1lc3NhZ2VUb1NlcnZpY2VXb3JrZXJDbGllbnQoZGVzdGluYXRpb25JZGVudGlmaWVy
LCBtZXNzYWdlLCBzb3VyY2VJZGVudGlmaWVyLCBzb3VyY2VPcmlnaW4pLCAwKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNXQ29udGV4dE1hbmFnZXJD
b25uZWN0aW9uLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3RvcmFnZS9XZWJTV0NvbnRl
eHRNYW5hZ2VyQ29ubmVjdGlvbi5oCmluZGV4IDZkOGM4NzZjYTEyYThmM2E5ZGRmMDhjNThhMjU2
NDFlMDMwMjEwOTQuLjEwY2NkMThlNWFiZWYxNTczZmM3NGYyYWI2MzQ5OTVlOWQ5MzY2MWUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNXQ29udGV4dE1h
bmFnZXJDb25uZWN0aW9uLmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0b3JhZ2Uv
V2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb24uaApAQCAtNjAsNyArNjAsNiBAQCBwdWJsaWM6
CiAgICAgfldlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uKCk7CiAKICAgICB2b2lkIGRpZFJl
Y2VpdmVNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYsIElQQzo6RGVjb2RlciYpIGZpbmFsOwotICAg
IHZvaWQgZGlkUmVjZWl2ZVN5bmNNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYsIElQQzo6RGVjb2Rl
ciYsIHN0ZDo6dW5pcXVlX3B0cjxJUEM6OkVuY29kZXI+JikgZmluYWw7CiAKIHByaXZhdGU6CiAg
ICAgdm9pZCB1cGRhdGVQcmVmZXJlbmNlc1N0b3JlKGNvbnN0IFdlYlByZWZlcmVuY2VzU3RvcmUm
KTsKQEAgLTkxLDcgKzkwLDYgQEAgcHJpdmF0ZToKICAgICB2b2lkIGZpcmVJbnN0YWxsRXZlbnQo
V2ViQ29yZTo6U2VydmljZVdvcmtlcklkZW50aWZpZXIpOwogICAgIHZvaWQgZmlyZUFjdGl2YXRl
RXZlbnQoV2ViQ29yZTo6U2VydmljZVdvcmtlcklkZW50aWZpZXIpOwogICAgIHZvaWQgdGVybWlu
YXRlV29ya2VyKFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJJZGVudGlmaWVyKTsKLSAgICB2b2lkIHN5
bmNUZXJtaW5hdGVXb3JrZXIoV2ViQ29yZTo6U2VydmljZVdvcmtlcklkZW50aWZpZXIsIE1lc3Nh
Z2VzOjpXZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbjo6U3luY1Rlcm1pbmF0ZVdvcmtlckRl
bGF5ZWRSZXBseSYmKTsKICAgICB2b2lkIGZpbmRDbGllbnRCeUlkZW50aWZpZXJDb21wbGV0ZWQo
dWludDY0X3QgcmVxdWVzdElkZW50aWZpZXIsIE9wdGlvbmFsPFdlYkNvcmU6OlNlcnZpY2VXb3Jr
ZXJDbGllbnREYXRhPiYmLCBib29sIGhhc1NlY3VyaXR5RXJyb3IpOwogICAgIHZvaWQgbWF0Y2hB
bGxDb21wbGV0ZWQodWludDY0X3QgbWF0Y2hBbGxSZXF1ZXN0SWRlbnRpZmllciwgVmVjdG9yPFdl
YkNvcmU6OlNlcnZpY2VXb3JrZXJDbGllbnREYXRhPiYmKTsKICAgICB2b2lkIHNldFVzZXJBZ2Vu
dChTdHJpbmcmJiB1c2VyQWdlbnQpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL1N0b3JhZ2UvV2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb24ubWVzc2FnZXMuaW4gYi9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3RvcmFnZS9XZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVj
dGlvbi5tZXNzYWdlcy5pbgppbmRleCA0YTRkZGI3Y2E4YWEyMDA3ZDYzYWIyNGQ1Mzk1OTc4MmY3
MjJlMThlLi41Mjg0Y2Q0YTVmZmNhNTc2MjQ5OGFiYTMyZDExNzczODZkNjQzYmZlIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3RvcmFnZS9XZWJTV0NvbnRleHRNYW5hZ2Vy
Q29ubmVjdGlvbi5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3Rv
cmFnZS9XZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbi5tZXNzYWdlcy5pbgpAQCAtMzEsNyAr
MzEsNiBAQCBtZXNzYWdlcyAtPiBXZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbiBOb3RSZWZD
b3VudGVkIHsKICAgICBGaXJlSW5zdGFsbEV2ZW50KFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJJZGVu
dGlmaWVyIGlkZW50aWZpZXIpCiAgICAgRmlyZUFjdGl2YXRlRXZlbnQoV2ViQ29yZTo6U2Vydmlj
ZVdvcmtlcklkZW50aWZpZXIgaWRlbnRpZmllcikKICAgICBUZXJtaW5hdGVXb3JrZXIoV2ViQ29y
ZTo6U2VydmljZVdvcmtlcklkZW50aWZpZXIgaWRlbnRpZmllcikKLSAgICBTeW5jVGVybWluYXRl
V29ya2VyKFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJJZGVudGlmaWVyIGlkZW50aWZpZXIpIC0+ICgp
IFN5bmNocm9ub3VzCiAgICAgRmluZENsaWVudEJ5SWRlbnRpZmllckNvbXBsZXRlZCh1aW50NjRf
dCBjbGllbnRJZFJlcXVlc3RJZGVudGlmaWVyLCBPcHRpb25hbDxXZWJDb3JlOjpTZXJ2aWNlV29y
a2VyQ2xpZW50RGF0YT4gZGF0YSwgYm9vbCBoYXNTZWN1cml0eUVycm9yKQogICAgIE1hdGNoQWxs
Q29tcGxldGVkKHVpbnQ2NF90IG1hdGNoQWxsUmVxdWVzdElkZW50aWZpZXIsIFZlY3RvcjxXZWJD
b3JlOjpTZXJ2aWNlV29ya2VyQ2xpZW50RGF0YT4gY2xpZW50c0RhdGEpCiAgICAgU2V0VXNlckFn
ZW50KFN0cmluZyB1c2VyQWdlbnQpCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cg
Yi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggNzA4YTY1YjhiODkwNjg2NGI0Y2VkN2M5OGRk
ZTEwNmQxZDgwZWNhNS4uODk3OWIwODY0MmEwMjU1ZGZkNzM0MjgxODcxMzc2MjI2N2IwYjg2NSAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5n
ZUxvZwpAQCAtMSwzICsxLDE5IEBACisyMDIwLTAzLTI3ICB5b3Vlbm4gZmFibGV0ICA8eW91ZW5u
QGFwcGxlLmNvbT4KKworICAgICAgICBSZW1vdmUgc3luY2hyb25vdXMgdGVybWluYXRpb24gb2Yg
c2VydmljZSB3b3JrZXJzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0yMDk2NjYKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICAqIGh0dHAvdGVzdHMvd29ya2Vycy9zZXJ2aWNlL3Jlc291cmNlcy9wb3N0bWVzc2Fn
ZS1hZnRlci1zdy1wcm9jZXNzLWNyYXNoLmpzOgorICAgICAgICAoYXN5bmMgZXZlbnQpOgorICAg
ICAgICAoc2VydmljZVdvcmtlckhhc1JlY2VpdmVkU3RhdGUuaGFuZGxlLnNldEludGVydmFsKTog
RGVsZXRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3dvcmtlcnMvc2VydmljZS9yZXNvdXJjZXMv
cG9zdG1lc3NhZ2UtYWZ0ZXItdGVybWluYXRlLmpzOgorICAgICAgICAoYXN5bmMgZXZlbnQpOgor
ICAgICAgICAqIGh0dHAvdGVzdHMvd29ya2Vycy9zZXJ2aWNlL3Jlc291cmNlcy9wb3N0bWVzc2Fn
ZS1hZnRlci10ZXJtaW5hdGluZy1odW5nLXdvcmtlci5qczoKKyAgICAgICAgKGFzeW5jIGV2ZW50
KToKKyAgICAgICAgKHN0YXRlLnN0cmluZ19hcHBlYXJlZF9oZXJlLnN0YXRlLnN0cmluZ19hcHBl
YXJlZF9oZXJlLmhhbmRsZS5zZXRJbnRlcnZhbCk6IERlbGV0ZWQuCisKIDIwMjAtMDMtMjUgIHlv
dWVubiBmYWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgogCiAgICAgICAgIEJ1bXAgbGlid2VicnRj
IHRvIE04MgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93b3JrZXJzL3NlcnZp
Y2UvcmVzb3VyY2VzL3Bvc3RtZXNzYWdlLWFmdGVyLXN3LXByb2Nlc3MtY3Jhc2guanMgYi9MYXlv
dXRUZXN0cy9odHRwL3Rlc3RzL3dvcmtlcnMvc2VydmljZS9yZXNvdXJjZXMvcG9zdG1lc3NhZ2Ut
YWZ0ZXItc3ctcHJvY2Vzcy1jcmFzaC5qcwppbmRleCBhYWQyZGU2NGJlMjBmZjZmNWMzYWI2OGVl
YTRlNGVmNzA0YzIxMWM3Li4xMGQ4ZTcwZjE2MWRlMjhkY2NjYzk1NmNmYzYwMmQ0ZTIyMmRhY2Fh
IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dvcmtlcnMvc2VydmljZS9yZXNv
dXJjZXMvcG9zdG1lc3NhZ2UtYWZ0ZXItc3ctcHJvY2Vzcy1jcmFzaC5qcworKysgYi9MYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL3dvcmtlcnMvc2VydmljZS9yZXNvdXJjZXMvcG9zdG1lc3NhZ2UtYWZ0
ZXItc3ctcHJvY2Vzcy1jcmFzaC5qcwpAQCAtMiw3ICsyLDcgQEAgbGV0IHNlcnZpY2VXb3JrZXJI
YXNSZWNlaXZlZFN0YXRlID0gZmFsc2U7CiBsZXQgd29ya2VyID0gbnVsbDsKIGxldCByZW1haW5p
bmdBdHRlbXB0cyA9IDEwMDA7IC8vIFdlIHRyeSBmb3IgMTAgc2Vjb25kcyBiZWZvcmUgdGltaW5n
IG91dC4KIAotbmF2aWdhdG9yLnNlcnZpY2VXb3JrZXIuYWRkRXZlbnRMaXN0ZW5lcigibWVzc2Fn
ZSIsIGZ1bmN0aW9uKGV2ZW50KSB7CituYXZpZ2F0b3Iuc2VydmljZVdvcmtlci5hZGRFdmVudExp
c3RlbmVyKCJtZXNzYWdlIiwgYXN5bmMgZnVuY3Rpb24oZXZlbnQpIHsKICAgICBpZiAoIXNlcnZp
Y2VXb3JrZXJIYXNSZWNlaXZlZFN0YXRlKSB7CiAgICAgICAgIGlmICghZXZlbnQuZGF0YSkgewog
ICAgICAgICAgICAgbG9nKCJGQUlMOiBzZXJ2aWNlIHdvcmtlciBkaWQgbm90IHJlY2VpdmUgdGhl
IHN0YXRlIik7CkBAIC0xMiw3ICsxMiw3IEBAIG5hdmlnYXRvci5zZXJ2aWNlV29ya2VyLmFkZEV2
ZW50TGlzdGVuZXIoIm1lc3NhZ2UiLCBmdW5jdGlvbihldmVudCkgewogICAgICAgICBzZXJ2aWNl
V29ya2VySGFzUmVjZWl2ZWRTdGF0ZSA9IHRydWU7CiAKICAgICAgICAgbG9nKCIqIFNpbXVsYXRp
bmcgU2VydmljZSBXb3JrZXIgcHJvY2VzcyBjcmFzaCIpOwotICAgICAgICB0ZXN0UnVubmVyLnRl
cm1pbmF0ZVNlcnZpY2VXb3JrZXJzKCk7CisgICAgICAgIGF3YWl0IHRlc3RSdW5uZXIudGVybWlu
YXRlU2VydmljZVdvcmtlcnMoKTsKIAogICAgICAgICBoYW5kbGUgPSBzZXRJbnRlcnZhbChmdW5j
dGlvbigpIHsKICAgICAgICAgICAgIHJlbWFpbmluZ0F0dGVtcHRzLS07CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dvcmtlcnMvc2VydmljZS9yZXNvdXJjZXMvcG9zdG1lc3Nh
Z2UtYWZ0ZXItdGVybWluYXRlLmpzIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93b3JrZXJzL3Nl
cnZpY2UvcmVzb3VyY2VzL3Bvc3RtZXNzYWdlLWFmdGVyLXRlcm1pbmF0ZS5qcwppbmRleCBhYzdj
YWQ3NGVjNmFlOGUxMDkwOTU1NzUzMGJlNGU4YTJlNDNkMGY3Li4wOTIwNDMzMjgyNTQ0ODJlMTM3
NjlkNjZlYjQ2ZGNhOTMxYThhYTgwIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3Rz
L3dvcmtlcnMvc2VydmljZS9yZXNvdXJjZXMvcG9zdG1lc3NhZ2UtYWZ0ZXItdGVybWluYXRlLmpz
CisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd29ya2Vycy9zZXJ2aWNlL3Jlc291cmNlcy9w
b3N0bWVzc2FnZS1hZnRlci10ZXJtaW5hdGUuanMKQEAgLTEsOSArMSw5IEBACiB2YXIgbWVzc2Fn
ZU51bWJlciA9IDE7Ci1uYXZpZ2F0b3Iuc2VydmljZVdvcmtlci5hZGRFdmVudExpc3RlbmVyKCJt
ZXNzYWdlIiwgZnVuY3Rpb24oZXZlbnQpIHsKK25hdmlnYXRvci5zZXJ2aWNlV29ya2VyLmFkZEV2
ZW50TGlzdGVuZXIoIm1lc3NhZ2UiLCBhc3luYyBmdW5jdGlvbihldmVudCkgewogICAgIGxvZygi
UEFTUzogQ2xpZW50IHJlY2VpdmVkIG1lc3NhZ2UgZnJvbSBzZXJ2aWNlIHdvcmtlciwgb3JpZ2lu
OiAiICsgZXZlbnQub3JpZ2luKTsKICAgICBsb2coZXZlbnQuZGF0YSk7CiAgICAgaWYgKG1lc3Nh
Z2VOdW1iZXIgPT0gMSkgewotICAgICAgICB3aW5kb3cuaW50ZXJuYWxzLnRlcm1pbmF0ZVNlcnZp
Y2VXb3JrZXIoZXZlbnQuc291cmNlKTsKKyAgICAgICAgYXdhaXQgd2luZG93LmludGVybmFscy50
ZXJtaW5hdGVTZXJ2aWNlV29ya2VyKGV2ZW50LnNvdXJjZSk7CiAgICAgICAgIGV2ZW50LnNvdXJj
ZS5wb3N0TWVzc2FnZSgiTWVzc2FnZSAyIik7CiAgICAgICAgIG1lc3NhZ2VOdW1iZXIrKzsKICAg
ICB9IGVsc2UKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd29ya2Vycy9zZXJ2
aWNlL3Jlc291cmNlcy9wb3N0bWVzc2FnZS1hZnRlci10ZXJtaW5hdGluZy1odW5nLXdvcmtlci5q
cyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd29ya2Vycy9zZXJ2aWNlL3Jlc291cmNlcy9wb3N0
bWVzc2FnZS1hZnRlci10ZXJtaW5hdGluZy1odW5nLXdvcmtlci5qcwppbmRleCA4NmE0MzFiNWM3
MjFlMDI5MjA2YTJhMzM5YWExZGI4MDg5YTFmY2QyLi5mZDRhZDQ2OTg2MzJjMjljMzc3ZGY0ZTk1
ODE4MDVjNThlMzFkMTlmIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dvcmtl
cnMvc2VydmljZS9yZXNvdXJjZXMvcG9zdG1lc3NhZ2UtYWZ0ZXItdGVybWluYXRpbmctaHVuZy13
b3JrZXIuanMKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93b3JrZXJzL3NlcnZpY2UvcmVz
b3VyY2VzL3Bvc3RtZXNzYWdlLWFmdGVyLXRlcm1pbmF0aW5nLWh1bmctd29ya2VyLmpzCkBAIC0x
LDEyICsxLDEyIEBACiBsZXQgc3RhdGUgPSAiV2FpdGluZ0ZvckhhbmciOwogCi1uYXZpZ2F0b3Iu
c2VydmljZVdvcmtlci5hZGRFdmVudExpc3RlbmVyKCJtZXNzYWdlIiwgZnVuY3Rpb24oZXZlbnQp
IHsKK25hdmlnYXRvci5zZXJ2aWNlV29ya2VyLmFkZEV2ZW50TGlzdGVuZXIoIm1lc3NhZ2UiLCBh
c3luYyBmdW5jdGlvbihldmVudCkgewogICAgIGxvZyhldmVudC5kYXRhKTsKICAgICBpZiAoc3Rh
dGUgPT09ICJXYWl0aW5nRm9ySGFuZyIpIHsKICAgICAgICAgbG9nKCJQQVNTOiBTZXJ2aWNlV29y
a2VyIHJlY2VpdmVkIG1lc3NhZ2U6ICIgKyBldmVudC5kYXRhKTsKICAgICAgICAgbG9nKCJTZXJ2
aWNlIFdvcmtlciBzaG91bGQgbm93IGJlIGh1bmciKTsKICAgICAgICAgbG9nKCJUZXJtaW5hdGlu
ZyBzZXJ2aWNlIHdvcmtlci4uLiIpCi0gICAgICAgIGludGVybmFscy50ZXJtaW5hdGVTZXJ2aWNl
V29ya2VyKHdvcmtlcik7CisgICAgICAgIGF3YWl0IGludGVybmFscy50ZXJtaW5hdGVTZXJ2aWNl
V29ya2VyKHdvcmtlcik7CiAgICAgICAgIGxvZygiVGVybWluYXRlZCBzZXJ2aWNlIHdvcmtlci4i
KTsKICAgICAgICAgc3RhdGUgPSAiV2FpdGluZ0Zvck1lc3NhZ2VBZnRlclRlcm1pbmF0aW5nSHVu
Z1NlcnZpY2VXb3JrZXIiCiAgICAgICAgIGhhbmRsZSA9IHNldEludGVydmFsKGZ1bmN0aW9uKCkg
ewo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>394908</attachid>
            <date>2020-03-30 05:47:47 -0700</date>
            <delta_ts>2020-03-30 09:05:44 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-209666-20200330144744.patch</filename>
            <type>text/plain</type>
            <size>40130</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU5MTEwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNGVjOGY2MjRlYmVhZDBh
ODcwZTA4MzRkMTk4MzI1NmI5MWExZTRhNy4uNmVkY2E0ZjQ3ODE3NzhiYWU4YTljNWRkOTgwZjEy
OTFlMGQ1M2U2ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ1IEBACisyMDIwLTAzLTMwICB5b3Vl
bm4gZmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBSZW1vdmUgc3luY2hyb25v
dXMgdGVybWluYXRpb24gb2Ygc2VydmljZSB3b3JrZXJzCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDk2NjYKKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICBJbnN0ZWFkIG9mIHN1cHBvcnRpbmcgc3ljbmhyb25v
dXMgSVBDIHRvIHRlcm1pbmF0ZSBhIHNlcnZpY2Ugd29ya2VyLCBTV1NlcnZlcldvcmtlciB3aWxs
IGFzeW5jaHJvbm91c2x5IGFzayBmb3IgdGhlIHNlcnZpY2Ugd29ya2VyIHRvIHRlcm1pbmF0ZS4K
KyAgICAgICAgSWYgaXQgaXMgbm90IHRlcm1pbmF0ZWQgYWZ0ZXIgc29tZSB0aW1lLCBTV1NlcnZl
cldvcmtlciB3aWxsIHRoZW4gYXNrIHRvIHRlcm1pbmF0ZSB0aGUgcHJvY2VzcyBydW5uaW5nIHRo
ZSBzZXJ2aWNlIHdvcmtlci4KKyAgICAgICAgVGltZSBpcyBrZXB0IHRvIDEwIHNlY29uZHMuCisK
KyAgICAgICAgV2UgY2FuIHRoZW4gcmVtb3ZlIGFsbCBzeW5jaHJvbm91cyByZWxhdGVkIGNvZGUg
cmVsYXRlZCB0byB0ZXJtaW5hdGlvbi4KKyAgICAgICAgV2UgbWlncmF0ZSB0aGUgdGVybWluYXRl
U2VydmljZVdvcmtlciBpbnRlcm5hbCBBUEkgdG8gYmUgUHJvbWlzZSBiYXNlZC4KKworICAgICAg
ICBDb3ZlcmVkIGJ5IGV4aXN0aW5nIHRlc3RzLgorCisgICAgICAgICogdGVzdGluZy9JbnRlcm5h
bHMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW50ZXJuYWxzOjp0ZXJtaW5hdGVTZXJ2aWNlV29y
a2VyKToKKyAgICAgICAgKiB0ZXN0aW5nL0ludGVybmFscy5oOgorICAgICAgICAqIHRlc3Rpbmcv
SW50ZXJuYWxzLmlkbDoKKyAgICAgICAgKiB3b3JrZXJzL3NlcnZpY2UvU1dDbGllbnRDb25uZWN0
aW9uLmg6CisgICAgICAgICogd29ya2Vycy9zZXJ2aWNlL1dvcmtlclNXQ2xpZW50Q29ubmVjdGlv
bi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpXb3JrZXJTV0NsaWVudENvbm5lY3Rpb246OnRlcm1p
bmF0ZVdvcmtlckZvclRlc3RpbmcpOgorICAgICAgICAqIHdvcmtlcnMvc2VydmljZS9Xb3JrZXJT
V0NsaWVudENvbm5lY3Rpb24uaDoKKyAgICAgICAgKiB3b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1NX
U2VydmVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNXU2VydmVyOjp+U1dTZXJ2ZXIpOgorICAg
ICAgICAoV2ViQ29yZTo6U1dTZXJ2ZXI6OnVucmVnaXN0ZXJTZXJ2aWNlV29ya2VyQ2xpZW50KToK
KyAgICAgICAgKiB3b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1NXU2VydmVyLmg6CisgICAgICAgICog
d29ya2Vycy9zZXJ2aWNlL3NlcnZlci9TV1NlcnZlclRvQ29udGV4dENvbm5lY3Rpb24uaDoKKyAg
ICAgICAgKiB3b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1NXU2VydmVyV29ya2VyLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6Om1fdGVybWluYXRpb25UaW1lcik6CisgICAgICAgIChXZWJDb3JlOjpTV1Nl
cnZlcldvcmtlcjo6flNXU2VydmVyV29ya2VyKToKKyAgICAgICAgKFdlYkNvcmU6OlNXU2VydmVy
V29ya2VyOjp0ZXJtaW5hdGUpOgorICAgICAgICAoV2ViQ29yZTo6U1dTZXJ2ZXJXb3JrZXI6OnN0
YXJ0VGVybWluYXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6U1dTZXJ2ZXJXb3JrZXI6OnRlcm1p
bmF0ZUNvbXBsZXRlZCk6CisgICAgICAgIChXZWJDb3JlOjpTV1NlcnZlcldvcmtlcjo6Y2FsbFRl
cm1pbmF0aW9uQ2FsbGJhY2tzKToKKyAgICAgICAgKFdlYkNvcmU6OlNXU2VydmVyV29ya2VyOjp0
ZXJtaW5hdGlvblRpbWVyRmlyZWQpOgorICAgICAgICAoV2ViQ29yZTo6U1dTZXJ2ZXJXb3JrZXI6
OnNldFN0YXRlKToKKyAgICAgICAgKFdlYkNvcmU6OlNXU2VydmVyV29ya2VyOjpkaWRGYWlsSGVh
cnRCZWF0Q2hlY2spOgorICAgICAgICAqIHdvcmtlcnMvc2VydmljZS9zZXJ2ZXIvU1dTZXJ2ZXJX
b3JrZXIuaDoKKyAgICAgICAgKFdlYkNvcmU6OlNXU2VydmVyV29ya2VyOjp0ZXJtaW5hdGUpOgor
CiAyMDIwLTAzLTI1ICB5b3Vlbm4gZmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KIAogICAgICAg
ICBCdW1wIGxpYndlYnJ0YyB0byBNODIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdl
TG9nIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggNDliNjU3ZDlhYWJlNzY5ZWEyODU5
NDQ1YzVmNWZiZTEwMGQxYzQ1MC4uMDRlNTJlNWNkNzZiOGQ3YTEyOTUyMDhiOWVjZjE4Mzk3NWQ1
NTYzMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dl
YktpdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyOCBAQAorMjAyMC0wMy0zMCAgeW91ZW5uIGZhYmxl
dCAgPHlvdWVubkBhcHBsZS5jb20+CisKKyAgICAgICAgUmVtb3ZlIHN5bmNocm9ub3VzIHRlcm1p
bmF0aW9uIG9mIHNlcnZpY2Ugd29ya2VycworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MjA5NjY2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgVXBkYXRlIElQQyBjb2RlIGFjY29yZGluZyByZW1vdmFsIG9mIHN5
bmNocm9ub3VzIHRlcm1pbmF0aW9uIG9mIHNlcnZpY2Ugd29ya2VyLgorICAgICAgICBJbXBsZW1l
bnQgYXN5bmMtd2l0aC1yZXBseSB0ZXJtaW5hdGlvbiBpbnN0ZWFkLgorCisgICAgICAgICogTmV0
d29ya1Byb2Nlc3MvU2VydmljZVdvcmtlci9XZWJTV1NlcnZlckNvbm5lY3Rpb24uY3BwOgorICAg
ICAgICAoV2ViS2l0OjpXZWJTV1NlcnZlckNvbm5lY3Rpb246OnRlcm1pbmF0ZVdvcmtlckZyb21D
bGllbnQpOgorICAgICAgICAoV2ViS2l0OjpXZWJTV1NlcnZlckNvbm5lY3Rpb246OmZldGNoVGFz
a1RpbWVkT3V0KToKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1dlYlNX
U2VydmVyQ29ubmVjdGlvbi5oOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL1NlcnZpY2VXb3Jr
ZXIvV2ViU1dTZXJ2ZXJDb25uZWN0aW9uLm1lc3NhZ2VzLmluOgorICAgICAgICAqIE5ldHdvcmtQ
cm9jZXNzL1NlcnZpY2VXb3JrZXIvV2ViU1dTZXJ2ZXJUb0NvbnRleHRDb25uZWN0aW9uLmNwcDoK
KyAgICAgICAgKFdlYktpdDo6V2ViU1dTZXJ2ZXJUb0NvbnRleHRDb25uZWN0aW9uOjp0ZXJtaW5h
dGVEdWVUb1VucmVzcG9uc2l2ZW5lc3MpOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL1NlcnZp
Y2VXb3JrZXIvV2ViU1dTZXJ2ZXJUb0NvbnRleHRDb25uZWN0aW9uLmg6CisgICAgICAgICogV2Vi
UHJvY2Vzcy9TdG9yYWdlL1dlYlNXQ2xpZW50Q29ubmVjdGlvbi5jcHA6CisgICAgICAgIChXZWJL
aXQ6OldlYlNXQ2xpZW50Q29ubmVjdGlvbjo6dGVybWluYXRlV29ya2VyRm9yVGVzdGluZyk6Cisg
ICAgICAgICogV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNXQ2xpZW50Q29ubmVjdGlvbi5oOgorICAg
ICAgICAqIFdlYlByb2Nlc3MvU3RvcmFnZS9XZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbi5j
cHA6CisgICAgICAgICogV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNXQ29udGV4dE1hbmFnZXJDb25u
ZWN0aW9uLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNXQ29udGV4dE1hbmFn
ZXJDb25uZWN0aW9uLm1lc3NhZ2VzLmluOgorCiAyMDIwLTAzLTI2ICBEYXZpZCBLaWx6ZXIgIDxk
ZGtpbHplckBhcHBsZS5jb20+CiAKICAgICAgICAgTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nl
c3M6OmRvbUNvb2tpZXNGb3JIb3N0IHNob3VsZCB2YWxpZGF0ZSBpdHMgYGhvc3RgIHBhcmFtZXRl
cgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuY3BwIGIvU291
cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuY3BwCmluZGV4IGFmMjdiOTlmMzg3YzEyOGFm
ZmI0MzY5YWI0ZWMzYTljMGJmZmMyOTguLjY5ZTRlODQ5NmNhYjExMjU4OGIxYjg2NWY1ZjdjZjA2
NGFmOTNlOWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5jcHAKQEAgLTUxNTMsMTIg
KzUxNTMsMTEgQEAgdm9pZCBJbnRlcm5hbHM6Omhhc1NlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb24o
Y29uc3QgU3RyaW5nJiBjbGllbnRVUkwsIEhhc1JlZ2lzdHIKICAgICB9KTsKIH0KIAotdm9pZCBJ
bnRlcm5hbHM6OnRlcm1pbmF0ZVNlcnZpY2VXb3JrZXIoU2VydmljZVdvcmtlciYgd29ya2VyKQor
dm9pZCBJbnRlcm5hbHM6OnRlcm1pbmF0ZVNlcnZpY2VXb3JrZXIoU2VydmljZVdvcmtlciYgd29y
a2VyLCBET01Qcm9taXNlRGVmZXJyZWQ8dm9pZD4mJiBwcm9taXNlKQogewotICAgIGlmICghY29u
dGV4dERvY3VtZW50KCkpCi0gICAgICAgIHJldHVybjsKLQotICAgIFNlcnZpY2VXb3JrZXJQcm92
aWRlcjo6c2luZ2xldG9uKCkuc2VydmljZVdvcmtlckNvbm5lY3Rpb24oKS5zeW5jVGVybWluYXRl
V29ya2VyKHdvcmtlci5pZGVudGlmaWVyKCkpOworICAgIFNlcnZpY2VXb3JrZXJQcm92aWRlcjo6
c2luZ2xldG9uKCkuc2VydmljZVdvcmtlckNvbm5lY3Rpb24oKS50ZXJtaW5hdGVXb3JrZXJGb3JU
ZXN0aW5nKHdvcmtlci5pZGVudGlmaWVyKCksIFtwcm9taXNlID0gV1RGTW92ZShwcm9taXNlKV0o
KSBtdXRhYmxlIHsKKyAgICAgICAgcHJvbWlzZS5yZXNvbHZlKCk7CisgICAgfSk7CiB9CiAKIHZv
aWQgSW50ZXJuYWxzOjppc1NlcnZpY2VXb3JrZXJSdW5uaW5nKFNlcnZpY2VXb3JrZXImIHdvcmtl
ciwgRE9NUHJvbWlzZURlZmVycmVkPElETEJvb2xlYW4+JiYgcHJvbWlzZSkKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmggYi9Tb3VyY2UvV2ViQ29yZS90ZXN0
aW5nL0ludGVybmFscy5oCmluZGV4IGUyMzUyMzQxZGI4YzE1ZDQyOWY5Y2VmZDI4OWRmNTIyNzBl
NWFjN2MuLjExNGNjZDY5ZjFmNzQzNzNhZmFhOGI0YmY3YTlkN2RmMWQ2Y2JiYzMgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvdGVzdGluZy9JbnRlcm5hbHMuaApAQCAtNzgzLDcgKzc4Myw3IEBAIHB1YmxpYzoKICNpZiBF
TkFCTEUoU0VSVklDRV9XT1JLRVIpCiAgICAgdXNpbmcgSGFzUmVnaXN0cmF0aW9uUHJvbWlzZSA9
IERPTVByb21pc2VEZWZlcnJlZDxJRExCb29sZWFuPjsKICAgICB2b2lkIGhhc1NlcnZpY2VXb3Jr
ZXJSZWdpc3RyYXRpb24oY29uc3QgU3RyaW5nJiBjbGllbnRVUkwsIEhhc1JlZ2lzdHJhdGlvblBy
b21pc2UmJik7Ci0gICAgdm9pZCB0ZXJtaW5hdGVTZXJ2aWNlV29ya2VyKFNlcnZpY2VXb3JrZXIm
KTsKKyAgICB2b2lkIHRlcm1pbmF0ZVNlcnZpY2VXb3JrZXIoU2VydmljZVdvcmtlciYsIERPTVBy
b21pc2VEZWZlcnJlZDx2b2lkPiYmKTsKICAgICB2b2lkIGlzU2VydmljZVdvcmtlclJ1bm5pbmco
U2VydmljZVdvcmtlciYsIERPTVByb21pc2VEZWZlcnJlZDxJRExCb29sZWFuPiYmKTsKICNlbmRp
ZgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5pZGwgYi9T
b3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5pZGwKaW5kZXggMTYyZmFmNDk0NmVhYWRk
OTgwZTU3ODlhMThiYmRlYzU1ODNmNjMyMy4uNjllZDBmMWNjZGQ3ZWExNDY5NzUyMGQwY2Q1MzM4
OTNmMmNkOTI2MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMu
aWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmlkbApAQCAtNzcwLDcg
Kzc3MCw3IEBAIGVudW0gQ29tcG9zaXRpbmdQb2xpY3kgewogICAgIGJvb2xlYW4gYXVkaW9TZXNz
aW9uQWN0aXZlKCk7CiAKICAgICBbQ29uZGl0aW9uYWw9U0VSVklDRV9XT1JLRVJdIFByb21pc2U8
Ym9vbGVhbj4gaGFzU2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbihET01TdHJpbmcgc2NvcGVVUkwp
OwotICAgIFtDb25kaXRpb25hbD1TRVJWSUNFX1dPUktFUl0gdm9pZCB0ZXJtaW5hdGVTZXJ2aWNl
V29ya2VyKFNlcnZpY2VXb3JrZXIgd29ya2VyKTsKKyAgICBbQ29uZGl0aW9uYWw9U0VSVklDRV9X
T1JLRVJdIFByb21pc2U8dm9pZD4gdGVybWluYXRlU2VydmljZVdvcmtlcihTZXJ2aWNlV29ya2Vy
IHdvcmtlcik7CiAgICAgW0NvbmRpdGlvbmFsPVNFUlZJQ0VfV09SS0VSXSBQcm9taXNlPGJvb2xl
YW4+IGlzU2VydmljZVdvcmtlclJ1bm5pbmcoU2VydmljZVdvcmtlciB3b3JrZXIpOwogCiAgICAg
W0NhbGxXaXRoPURvY3VtZW50LCBDb25kaXRpb25hbD1BUFBMRV9QQVldIHJlYWRvbmx5IGF0dHJp
YnV0ZSBNb2NrUGF5bWVudENvb3JkaW5hdG9yIG1vY2tQYXltZW50Q29vcmRpbmF0b3I7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvU1dDbGllbnRDb25uZWN0aW9u
LmggYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvU1dDbGllbnRDb25uZWN0aW9uLmgK
aW5kZXggYjJiYzQ0ZDE4ZDU0NDAwMDM5YzYxOGZlMzAwODY0ZDZhZjRiY2FlNy4uZDM2ZmEwY2Iz
YmYzM2NiMzIzMTQ2Mzc2Y2NkOGE4NDVkYTQyYWRjNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvd29ya2Vycy9zZXJ2aWNlL1NXQ2xpZW50Q29ubmVjdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3dvcmtlcnMvc2VydmljZS9TV0NsaWVudENvbm5lY3Rpb24uaApAQCAtNzksNyArNzksNyBA
QCBwdWJsaWM6CiAKICAgICB2aXJ0dWFsIFNXU2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIgc2Vy
dmVyQ29ubmVjdGlvbklkZW50aWZpZXIoKSBjb25zdCA9IDA7CiAgICAgdmlydHVhbCBib29sIG1h
eUhhdmVTZXJ2aWNlV29ya2VyUmVnaXN0ZXJlZEZvck9yaWdpbihjb25zdCBTZWN1cml0eU9yaWdp
bkRhdGEmKSBjb25zdCA9IDA7Ci0gICAgdmlydHVhbCB2b2lkIHN5bmNUZXJtaW5hdGVXb3JrZXIo
U2VydmljZVdvcmtlcklkZW50aWZpZXIpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgdGVybWluYXRl
V29ya2VyRm9yVGVzdGluZyhTZXJ2aWNlV29ya2VySWRlbnRpZmllciwgQ29tcGxldGlvbkhhbmRs
ZXI8dm9pZCgpPiYmKSA9IDA7CiAKICAgICB2aXJ0dWFsIHZvaWQgcmVnaXN0ZXJTZXJ2aWNlV29y
a2VyQ2xpZW50KGNvbnN0IFNlY3VyaXR5T3JpZ2luJiB0b3BPcmlnaW4sIGNvbnN0IFNlcnZpY2VX
b3JrZXJDbGllbnREYXRhJiwgY29uc3QgT3B0aW9uYWw8U2VydmljZVdvcmtlclJlZ2lzdHJhdGlv
bklkZW50aWZpZXI+JiwgY29uc3QgU3RyaW5nJiB1c2VyQWdlbnQpID0gMDsKICAgICB2aXJ0dWFs
IHZvaWQgdW5yZWdpc3RlclNlcnZpY2VXb3JrZXJDbGllbnQoRG9jdW1lbnRJZGVudGlmaWVyKSA9
IDA7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvV29ya2VyU1dD
bGllbnRDb25uZWN0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9Xb3Jr
ZXJTV0NsaWVudENvbm5lY3Rpb24uY3BwCmluZGV4IDc1ODI1NzVkZGYzNmQ1ZTRmZjZhYjIxZDY3
OGYxZmI1NzEyMWQxZWQuLjYxYmZhNTdlNGFkZTJhMjJhMWQ0ZTFlNzE5ZDRmYzI1ZGFhODczYjQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9Xb3JrZXJTV0NsaWVu
dENvbm5lY3Rpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9Xb3Jr
ZXJTV0NsaWVudENvbm5lY3Rpb24uY3BwCkBAIC0yOCw2ICsyOCw3IEBACiAKICNpZiBFTkFCTEUo
U0VSVklDRV9XT1JLRVIpCiAKKyNpbmNsdWRlICJOb3RJbXBsZW1lbnRlZC5oIgogI2luY2x1ZGUg
IlNlY3VyaXR5T3JpZ2luLmgiCiAjaW5jbHVkZSAiU2VydmljZVdvcmtlckNsaWVudERhdGEuaCIK
ICNpbmNsdWRlICJTZXJ2aWNlV29ya2VyRmV0Y2hSZXN1bHQuaCIKQEAgLTE1NSwxMiArMTU2LDkg
QEAgYm9vbCBXb3JrZXJTV0NsaWVudENvbm5lY3Rpb246Om1heUhhdmVTZXJ2aWNlV29ya2VyUmVn
aXN0ZXJlZEZvck9yaWdpbihjb25zdCBTZWMKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotdm9pZCBX
b3JrZXJTV0NsaWVudENvbm5lY3Rpb246OnN5bmNUZXJtaW5hdGVXb3JrZXIoU2VydmljZVdvcmtl
cklkZW50aWZpZXIgaWRlbnRpZmllcikKK3ZvaWQgV29ya2VyU1dDbGllbnRDb25uZWN0aW9uOjp0
ZXJtaW5hdGVXb3JrZXJGb3JUZXN0aW5nKFNlcnZpY2VXb3JrZXJJZGVudGlmaWVyLCBDb21wbGV0
aW9uSGFuZGxlcjx2b2lkKCk+JiYpCiB7Ci0gICAgY2FsbE9uTWFpblRocmVhZChbaWRlbnRpZmll
cl0oKSBtdXRhYmxlIHsKLSAgICAgICAgYXV0byYgY29ubmVjdGlvbiA9IFNlcnZpY2VXb3JrZXJQ
cm92aWRlcjo6c2luZ2xldG9uKCkuc2VydmljZVdvcmtlckNvbm5lY3Rpb24oKTsKLSAgICAgICAg
Y29ubmVjdGlvbi5zeW5jVGVybWluYXRlV29ya2VyKGlkZW50aWZpZXIpOwotICAgIH0pOworICAg
IG5vdEltcGxlbWVudGVkKCk7CiB9CiAKIHZvaWQgV29ya2VyU1dDbGllbnRDb25uZWN0aW9uOjpy
ZWdpc3RlclNlcnZpY2VXb3JrZXJDbGllbnQoY29uc3QgU2VjdXJpdHlPcmlnaW4mIHRvcE9yaWdp
biwgY29uc3QgU2VydmljZVdvcmtlckNsaWVudERhdGEmIGRhdGEsIGNvbnN0IE9wdGlvbmFsPFNl
cnZpY2VXb3JrZXJSZWdpc3RyYXRpb25JZGVudGlmaWVyPiYgaWRlbnRpZmllciwgY29uc3QgU3Ry
aW5nJiB1c2VyQWdlbnQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZp
Y2UvV29ya2VyU1dDbGllbnRDb25uZWN0aW9uLmggYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3Nl
cnZpY2UvV29ya2VyU1dDbGllbnRDb25uZWN0aW9uLmgKaW5kZXggNTE4ZWEyZjRiNjRlYTViYTEy
MzBkMThhZmI2N2E4YzY1NzNkNzI2ZC4uY2Y1MmRmYTJhYmNhOGQxOTM2M2FkMDUxZDU2ZmUyZTQ0
MjM1Yzc4NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL1dvcmtl
clNXQ2xpZW50Q29ubmVjdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2Vydmlj
ZS9Xb3JrZXJTV0NsaWVudENvbm5lY3Rpb24uaApAQCAtNTEsNyArNTEsNyBAQCBwcml2YXRlOgog
ICAgIHZvaWQgcG9zdE1lc3NhZ2VUb1NlcnZpY2VXb3JrZXIoU2VydmljZVdvcmtlcklkZW50aWZp
ZXIgZGVzdGluYXRpb24sIE1lc3NhZ2VXaXRoTWVzc2FnZVBvcnRzJiYsIGNvbnN0IFNlcnZpY2VX
b3JrZXJPckNsaWVudElkZW50aWZpZXImIHNvdXJjZSkgZmluYWw7CiAgICAgU1dTZXJ2ZXJDb25u
ZWN0aW9uSWRlbnRpZmllciBzZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllcigpIGNvbnN0IGZpbmFs
OwogICAgIGJvb2wgbWF5SGF2ZVNlcnZpY2VXb3JrZXJSZWdpc3RlcmVkRm9yT3JpZ2luKGNvbnN0
IFNlY3VyaXR5T3JpZ2luRGF0YSYpIGNvbnN0IGZpbmFsOwotICAgIHZvaWQgc3luY1Rlcm1pbmF0
ZVdvcmtlcihTZXJ2aWNlV29ya2VySWRlbnRpZmllcikgZmluYWw7CisgICAgdm9pZCB0ZXJtaW5h
dGVXb3JrZXJGb3JUZXN0aW5nKFNlcnZpY2VXb3JrZXJJZGVudGlmaWVyLCBDb21wbGV0aW9uSGFu
ZGxlcjx2b2lkKCk+JiYpIGZpbmFsOwogICAgIHZvaWQgcmVnaXN0ZXJTZXJ2aWNlV29ya2VyQ2xp
ZW50KGNvbnN0IFNlY3VyaXR5T3JpZ2luJiB0b3BPcmlnaW4sIGNvbnN0IFNlcnZpY2VXb3JrZXJD
bGllbnREYXRhJiwgY29uc3QgT3B0aW9uYWw8U2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbklkZW50
aWZpZXI+JiwgY29uc3QgU3RyaW5nJiB1c2VyQWdlbnQpIGZpbmFsOwogICAgIHZvaWQgdW5yZWdp
c3RlclNlcnZpY2VXb3JrZXJDbGllbnQoRG9jdW1lbnRJZGVudGlmaWVyKSBmaW5hbDsKICAgICB2
b2lkIGZpbmlzaEZldGNoaW5nU2NyaXB0SW5TZXJ2ZXIoY29uc3QgU2VydmljZVdvcmtlckZldGNo
UmVzdWx0JikgZmluYWw7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZp
Y2Uvc2VydmVyL1NXU2VydmVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9z
ZXJ2ZXIvU1dTZXJ2ZXIuY3BwCmluZGV4IGE4MTUxY2NkMTU0NDFiZWIzZTZmYWUyYjUwMTFmNDk4
NTkwODQyZGEuLmU2ZGY1MWExYzFlMmY3N2E1MGJhOGM2YjRkYmNmMTk0YWJjNmEyZDUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9zZXJ2ZXIvU1dTZXJ2ZXIuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9zZXJ2ZXIvU1dTZXJ2ZXIuY3Bw
CkBAIC00OSw4ICs0OSw2IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotc3RhdGljIFNlY29u
ZHMgdGVybWluYXRpb25EZWxheSB7IDEwX3MgfTsKLQogU1dTZXJ2ZXI6OkNvbm5lY3Rpb246OkNv
bm5lY3Rpb24oU1dTZXJ2ZXImIHNlcnZlciwgSWRlbnRpZmllciBpZGVudGlmaWVyKQogICAgIDog
bV9zZXJ2ZXIoc2VydmVyKQogICAgICwgbV9pZGVudGlmaWVyKGlkZW50aWZpZXIpCkBAIC03OSw3
ICs3Nyw3IEBAIFNXU2VydmVyOjp+U1dTZXJ2ZXIoKQogICAgICAgICAgICAgcnVubmluZ1dvcmtl
cnMuYXBwZW5kKHdvcmtlci5wdHIoKSk7CiAgICAgfQogICAgIGZvciAoYXV0byYgcnVubmluZ1dv
cmtlciA6IHJ1bm5pbmdXb3JrZXJzKQotICAgICAgICB0ZXJtaW5hdGVXb3JrZXIoKnJ1bm5pbmdX
b3JrZXIpOworICAgICAgICBydW5uaW5nV29ya2VyLT50ZXJtaW5hdGUoKTsKIAogICAgIGFsbFNl
cnZlcnMoKS5yZW1vdmUodGhpcyk7CiB9CkBAIC0zMDcsMTIgKzMwNSw2IEBAIHZvaWQgU1dTZXJ2
ZXI6OkNvbm5lY3Rpb246OnJlbW92ZVNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25JblNlcnZlcihT
ZXJ2aWNlV29ya2VyCiAgICAgbV9zZXJ2ZXIucmVtb3ZlQ2xpZW50U2VydmljZVdvcmtlclJlZ2lz
dHJhdGlvbigqdGhpcywgaWRlbnRpZmllcik7CiB9CiAKLXZvaWQgU1dTZXJ2ZXI6OkNvbm5lY3Rp
b246OnN5bmNUZXJtaW5hdGVXb3JrZXIoU2VydmljZVdvcmtlcklkZW50aWZpZXIgaWRlbnRpZmll
cikKLXsKLSAgICBpZiAoYXV0byogd29ya2VyID0gbV9zZXJ2ZXIud29ya2VyQnlJRChpZGVudGlm
aWVyKSkKLSAgICAgICAgbV9zZXJ2ZXIuc3luY1Rlcm1pbmF0ZVdvcmtlcigqd29ya2VyKTsKLX0K
LQogU1dTZXJ2ZXI6OlNXU2VydmVyKFVuaXF1ZVJlZjxTV09yaWdpblN0b3JlPiYmIG9yaWdpblN0
b3JlLCBib29sIHByb2Nlc3NUZXJtaW5hdGlvbkRlbGF5RW5hYmxlZCwgU3RyaW5nJiYgcmVnaXN0
cmF0aW9uRGF0YWJhc2VEaXJlY3RvcnksIFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgU29mdFVw
ZGF0ZUNhbGxiYWNrJiYgc29mdFVwZGF0ZUNhbGxiYWNrLCBDcmVhdGVDb250ZXh0Q29ubmVjdGlv
bkNhbGxiYWNrJiYgY2FsbGJhY2spCiAgICAgOiBtX29yaWdpblN0b3JlKFdURk1vdmUob3JpZ2lu
U3RvcmUpKQogICAgICwgbV9zZXNzaW9uSUQoc2Vzc2lvbklEKQpAQCAtNzMzLDQzICs3MjUsNiBA
QCBib29sIFNXU2VydmVyOjpydW5TZXJ2aWNlV29ya2VyKFNlcnZpY2VXb3JrZXJJZGVudGlmaWVy
IGlkZW50aWZpZXIpCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLXZvaWQgU1dTZXJ2ZXI6OnRlcm1p
bmF0ZVdvcmtlcihTV1NlcnZlcldvcmtlciYgd29ya2VyKQotewotICAgIHRlcm1pbmF0ZVdvcmtl
ckludGVybmFsKHdvcmtlciwgQXN5bmNocm9ub3VzKTsKLX0KLQotdm9pZCBTV1NlcnZlcjo6c3lu
Y1Rlcm1pbmF0ZVdvcmtlcihTV1NlcnZlcldvcmtlciYgd29ya2VyKQotewotICAgIHRlcm1pbmF0
ZVdvcmtlckludGVybmFsKHdvcmtlciwgU3luY2hyb25vdXMpOwotfQotCi12b2lkIFNXU2VydmVy
Ojp0ZXJtaW5hdGVXb3JrZXJJbnRlcm5hbChTV1NlcnZlcldvcmtlciYgd29ya2VyLCBUZXJtaW5h
dGlvbk1vZGUgbW9kZSkKLXsKLSAgICBBU1NFUlQobV9ydW5uaW5nT3JUZXJtaW5hdGluZ1dvcmtl
cnMuZ2V0KHdvcmtlci5pZGVudGlmaWVyKCkpID09ICZ3b3JrZXIpOwotICAgIEFTU0VSVCh3b3Jr
ZXIuaXNSdW5uaW5nKCkpOwotCi0gICAgUkVMRUFTRV9MT0coU2VydmljZVdvcmtlciwgIiVwIC0g
U1dTZXJ2ZXI6OnRlcm1pbmF0ZVdvcmtlckludGVybmFsOiBUZXJtaW5hdGluZyBzZXJ2aWNlIHdv
cmtlciAlbGx1IiwgdGhpcywgd29ya2VyLmlkZW50aWZpZXIoKS50b1VJbnQ2NCgpKTsKLQotICAg
IHdvcmtlci5zZXRTdGF0ZShTV1NlcnZlcldvcmtlcjo6U3RhdGU6OlRlcm1pbmF0aW5nKTsKLQot
ICAgIGF1dG8qIGNvbnRleHRDb25uZWN0aW9uID0gd29ya2VyLmNvbnRleHRDb25uZWN0aW9uKCk7
Ci0gICAgQVNTRVJUKGNvbnRleHRDb25uZWN0aW9uKTsKLSAgICBpZiAoIWNvbnRleHRDb25uZWN0
aW9uKSB7Ci0gICAgICAgIExPR19FUlJPUigiUmVxdWVzdCB0byB0ZXJtaW5hdGUgYSB3b3JrZXIg
d2hvc2UgY29udGV4dCBjb25uZWN0aW9uIGRvZXMgbm90IGV4aXN0Iik7Ci0gICAgICAgIHdvcmtl
ckNvbnRleHRUZXJtaW5hdGVkKHdvcmtlcik7Ci0gICAgICAgIHJldHVybjsKLSAgICB9Ci0KLSAg
ICBzd2l0Y2ggKG1vZGUpIHsKLSAgICBjYXNlIEFzeW5jaHJvbm91czoKLSAgICAgICAgY29udGV4
dENvbm5lY3Rpb24tPnRlcm1pbmF0ZVdvcmtlcih3b3JrZXIuaWRlbnRpZmllcigpKTsKLSAgICAg
ICAgYnJlYWs7Ci0gICAgY2FzZSBTeW5jaHJvbm91czoKLSAgICAgICAgY29udGV4dENvbm5lY3Rp
b24tPnN5bmNUZXJtaW5hdGVXb3JrZXIod29ya2VyLmlkZW50aWZpZXIoKSk7Ci0gICAgICAgIGJy
ZWFrOwotICAgIH07Ci19Ci0KIHZvaWQgU1dTZXJ2ZXI6Om1hcmtBbGxXb3JrZXJzRm9yUmVnaXN0
cmFibGVEb21haW5Bc1Rlcm1pbmF0ZWQoY29uc3QgUmVnaXN0cmFibGVEb21haW4mIHJlZ2lzdHJh
YmxlRG9tYWluKQogewogICAgIFZlY3RvcjxTV1NlcnZlcldvcmtlcio+IHRlcm1pbmF0ZWRXb3Jr
ZXJzOwpAQCAtOTE3LDcgKzg3Miw3IEBAIHZvaWQgU1dTZXJ2ZXI6OnVucmVnaXN0ZXJTZXJ2aWNl
V29ya2VyQ2xpZW50KGNvbnN0IENsaWVudE9yaWdpbiYgY2xpZW50T3JpZ2luLCBTCiAgICAgICAg
ICAgICAgICAgICAgIHdvcmtlcnNUb1Rlcm1pbmF0ZS5hcHBlbmQod29ya2VyLnB0cigpKTsKICAg
ICAgICAgICAgIH0KICAgICAgICAgICAgIGZvciAoYXV0byogd29ya2VyIDogd29ya2Vyc1RvVGVy
bWluYXRlKQotICAgICAgICAgICAgICAgIHRlcm1pbmF0ZVdvcmtlcigqd29ya2VyKTsKKyAgICAg
ICAgICAgICAgICB3b3JrZXItPnRlcm1pbmF0ZSgpOwogCiAgICAgICAgICAgICBpZiAoIW1fY2xp
ZW50c0J5UmVnaXN0cmFibGVEb21haW4uY29udGFpbnMoY2xpZW50UmVnaXN0cmFibGVEb21haW4p
KSB7CiAgICAgICAgICAgICAgICAgaWYgKGF1dG8qIGNvbm5lY3Rpb24gPSBjb250ZXh0Q29ubmVj
dGlvbkZvclJlZ2lzdHJhYmxlRG9tYWluKGNsaWVudFJlZ2lzdHJhYmxlRG9tYWluKSkgewpAQCAt
OTI4LDcgKzg4Myw3IEBAIHZvaWQgU1dTZXJ2ZXI6OnVucmVnaXN0ZXJTZXJ2aWNlV29ya2VyQ2xp
ZW50KGNvbnN0IENsaWVudE9yaWdpbiYgY2xpZW50T3JpZ2luLCBTCiAKICAgICAgICAgICAgIG1f
Y2xpZW50SWRlbnRpZmllcnNQZXJPcmlnaW4ucmVtb3ZlKGNsaWVudE9yaWdpbik7CiAgICAgICAg
IH0pOwotICAgICAgICBpdGVyYXRvci0+dmFsdWUudGVybWluYXRlU2VydmljZVdvcmtlcnNUaW1l
ci0+c3RhcnRPbmVTaG90KG1faXNQcm9jZXNzVGVybWluYXRpb25EZWxheUVuYWJsZWQgJiYgIU1l
bW9yeVByZXNzdXJlSGFuZGxlcjo6c2luZ2xldG9uKCkuaXNVbmRlck1lbW9yeVByZXNzdXJlKCkg
PyB0ZXJtaW5hdGlvbkRlbGF5IDogMF9zKTsKKyAgICAgICAgaXRlcmF0b3ItPnZhbHVlLnRlcm1p
bmF0ZVNlcnZpY2VXb3JrZXJzVGltZXItPnN0YXJ0T25lU2hvdChtX2lzUHJvY2Vzc1Rlcm1pbmF0
aW9uRGVsYXlFbmFibGVkICYmICFNZW1vcnlQcmVzc3VyZUhhbmRsZXI6OnNpbmdsZXRvbigpLmlz
VW5kZXJNZW1vcnlQcmVzc3VyZSgpID8gZGVmYXVsdFRlcm1pbmF0aW9uRGVsYXkgOiAwX3MpOwog
ICAgIH0KIAogICAgIGF1dG8gY2xpZW50c0J5UmVnaXN0cmFibGVEb21haW5JdGVyYXRvciA9IG1f
Y2xpZW50c0J5UmVnaXN0cmFibGVEb21haW4uZmluZChjbGllbnRSZWdpc3RyYWJsZURvbWFpbik7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1NXU2Vy
dmVyLmggYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1NXU2VydmVyLmgK
aW5kZXggYWVmMTk4MzA1NzEyYzIzYzQzYmYzMzAwZGM1MjMzNTQ4Yjc5MjgyOS4uMjg3OTI4M2Vh
ZTBhZjgzZTk1NmM5OThlMzVmMDQ5NDNlZTczNWM2MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvd29ya2Vycy9zZXJ2aWNlL3NlcnZlci9TV1NlcnZlci5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3dvcmtlcnMvc2VydmljZS9zZXJ2ZXIvU1dTZXJ2ZXIuaApAQCAtMTAyLDcgKzEwMiw2IEBAIHB1
YmxpYzoKICAgICAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBmaW5pc2hGZXRjaGluZ1NjcmlwdElu
U2VydmVyKGNvbnN0IFNlcnZpY2VXb3JrZXJGZXRjaFJlc3VsdCYpOwogICAgICAgICBXRUJDT1JF
X0VYUE9SVCB2b2lkIGFkZFNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25JblNlcnZlcihTZXJ2aWNl
V29ya2VyUmVnaXN0cmF0aW9uSWRlbnRpZmllcik7CiAgICAgICAgIFdFQkNPUkVfRVhQT1JUIHZv
aWQgcmVtb3ZlU2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbkluU2VydmVyKFNlcnZpY2VXb3JrZXJS
ZWdpc3RyYXRpb25JZGVudGlmaWVyKTsKLSAgICAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBzeW5j
VGVybWluYXRlV29ya2VyKFNlcnZpY2VXb3JrZXJJZGVudGlmaWVyKTsKICAgICAgICAgV0VCQ09S
RV9FWFBPUlQgdm9pZCB3aGVuUmVnaXN0cmF0aW9uUmVhZHkodWludDY0X3QgcmVnaXN0cmF0aW9u
UmVhZHlSZXF1ZXN0SWRlbnRpZmllciwgY29uc3QgU2VjdXJpdHlPcmlnaW5EYXRhJiB0b3BPcmln
aW4sIGNvbnN0IFVSTCYgY2xpZW50VVJMKTsKIAogICAgICAgICBXRUJDT1JFX0VYUE9SVCB2b2lk
IHN0b3JlUmVnaXN0cmF0aW9uc09uRGlzayhDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpOwpA
QCAtMTUyLDggKzE1MSw2IEBAIHB1YmxpYzoKICAgICB2b2lkIHN0YXJ0U2NyaXB0RmV0Y2goY29u
c3QgU2VydmljZVdvcmtlckpvYkRhdGEmLCBib29sIHNob3VsZFJlZnJlc2hDYWNoZSk7CiAKICAg
ICB2b2lkIHVwZGF0ZVdvcmtlcihjb25zdCBTZXJ2aWNlV29ya2VySm9iRGF0YUlkZW50aWZpZXIm
LCBTV1NlcnZlclJlZ2lzdHJhdGlvbiYsIGNvbnN0IFVSTCYsIGNvbnN0IFN0cmluZyYgc2NyaXB0
LCBjb25zdCBDb250ZW50U2VjdXJpdHlQb2xpY3lSZXNwb25zZUhlYWRlcnMmLCBjb25zdCBTdHJp
bmcmIHJlZmVycmVyUG9saWN5LCBXb3JrZXJUeXBlLCBIYXNoTWFwPFVSTCwgU2VydmljZVdvcmtl
ckNvbnRleHREYXRhOjpJbXBvcnRlZFNjcmlwdD4mJik7Ci0gICAgdm9pZCB0ZXJtaW5hdGVXb3Jr
ZXIoU1dTZXJ2ZXJXb3JrZXImKTsKLSAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHN5bmNUZXJtaW5h
dGVXb3JrZXIoU1dTZXJ2ZXJXb3JrZXImKTsKICAgICB2b2lkIGZpcmVJbnN0YWxsRXZlbnQoU1dT
ZXJ2ZXJXb3JrZXImKTsKICAgICB2b2lkIGZpcmVBY3RpdmF0ZUV2ZW50KFNXU2VydmVyV29ya2Vy
Jik7CiAKQEAgLTIxNSw2ICsyMTIsOCBAQCBwdWJsaWM6CiAKICAgICBXRUJDT1JFX0VYUE9SVCB2
b2lkIGhhbmRsZUxvd01lbW9yeVdhcm5pbmcoKTsKIAorICAgIHN0YXRpYyBjb25zdGV4cHIgU2Vj
b25kcyBkZWZhdWx0VGVybWluYXRpb25EZWxheSA9IDEwX3M7CisKIHByaXZhdGU6CiAgICAgdm9p
ZCBzY3JpcHRGZXRjaEZpbmlzaGVkKGNvbnN0IFNlcnZpY2VXb3JrZXJGZXRjaFJlc3VsdCYpOwog
CkBAIC0yMzYsMTIgKzIzNSw2IEBAIHByaXZhdGU6CiAKICAgICB2b2lkIHBlcmZvcm1HZXRPcmln
aW5zV2l0aFJlZ2lzdHJhdGlvbnNDYWxsYmFja3MoKTsKIAotICAgIGVudW0gVGVybWluYXRpb25N
b2RlIHsKLSAgICAgICAgU3luY2hyb25vdXMsCi0gICAgICAgIEFzeW5jaHJvbm91cywKLSAgICB9
OwotICAgIHZvaWQgdGVybWluYXRlV29ya2VySW50ZXJuYWwoU1dTZXJ2ZXJXb3JrZXImLCBUZXJt
aW5hdGlvbk1vZGUpOwotCiAgICAgdm9pZCBjb250ZXh0Q29ubmVjdGlvbkNyZWF0ZWQoU1dTZXJ2
ZXJUb0NvbnRleHRDb25uZWN0aW9uJik7CiAKICAgICBIYXNoTWFwPFNXU2VydmVyQ29ubmVjdGlv
bklkZW50aWZpZXIsIHN0ZDo6dW5pcXVlX3B0cjxDb25uZWN0aW9uPj4gbV9jb25uZWN0aW9uczsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9zZXJ2ZXIvU1dTZXJ2
ZXJUb0NvbnRleHRDb25uZWN0aW9uLmggYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2Uv
c2VydmVyL1NXU2VydmVyVG9Db250ZXh0Q29ubmVjdGlvbi5oCmluZGV4IDA1ODg0YzhiYjkxZWI0
NDU1NDNkMGYyOWUxYTY5ZjIyOGNhMTc2ZDkuLjQ2NTlmOWY5ZmE2YzZiYWE4ZGU5NjhkMzkxNWZl
MzNjNGUzMTI2NjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9z
ZXJ2ZXIvU1dTZXJ2ZXJUb0NvbnRleHRDb25uZWN0aW9uLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
d29ya2Vycy9zZXJ2aWNlL3NlcnZlci9TV1NlcnZlclRvQ29udGV4dENvbm5lY3Rpb24uaApAQCAt
NTQsNyArNTQsNiBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIGZpcmVJbnN0YWxsRXZlbnQo
U2VydmljZVdvcmtlcklkZW50aWZpZXIpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgZmlyZUFjdGl2
YXRlRXZlbnQoU2VydmljZVdvcmtlcklkZW50aWZpZXIpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQg
dGVybWluYXRlV29ya2VyKFNlcnZpY2VXb3JrZXJJZGVudGlmaWVyKSA9IDA7Ci0gICAgdmlydHVh
bCB2b2lkIHN5bmNUZXJtaW5hdGVXb3JrZXIoU2VydmljZVdvcmtlcklkZW50aWZpZXIpID0gMDsK
ICAgICB2aXJ0dWFsIHZvaWQgZmluZENsaWVudEJ5SWRlbnRpZmllckNvbXBsZXRlZCh1aW50NjRf
dCByZXF1ZXN0SWRlbnRpZmllciwgY29uc3QgT3B0aW9uYWw8U2VydmljZVdvcmtlckNsaWVudERh
dGE+JiwgYm9vbCBoYXNTZWN1cml0eUVycm9yKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIG1hdGNo
QWxsQ29tcGxldGVkKHVpbnQ2NF90IHJlcXVlc3RJZGVudGlmaWVyLCBjb25zdCBWZWN0b3I8U2Vy
dmljZVdvcmtlckNsaWVudERhdGE+JikgPSAwOwogCkBAIC03NSw2ICs3NCw3IEBAIHB1YmxpYzoK
ICAgICBjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYgcmVnaXN0cmFibGVEb21haW4oKSBjb25zdCB7
IHJldHVybiBtX3JlZ2lzdHJhYmxlRG9tYWluOyB9CiAKICAgICB2aXJ0dWFsIHZvaWQgY29ubmVj
dGlvbklzTm9Mb25nZXJOZWVkZWQoKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIHRlcm1pbmF0ZUR1
ZVRvVW5yZXNwb25zaXZlbmVzcygpID0gMDsKIAogcHJvdGVjdGVkOgogICAgIFdFQkNPUkVfRVhQ
T1JUIGV4cGxpY2l0IFNXU2VydmVyVG9Db250ZXh0Q29ubmVjdGlvbihSZWdpc3RyYWJsZURvbWFp
biYmKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9zZXJ2ZXIv
U1dTZXJ2ZXJXb3JrZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL3NlcnZl
ci9TV1NlcnZlcldvcmtlci5jcHAKaW5kZXggNDAwYWE0N2Y0ZmMxNGEzNzZlZjRkOWNjOTJiMmZl
N2NmYzc0ZjJlOC4uYTIwMTEzYTU4NzVmYmFiYTQzYmM0YWFhODViMTBmNWEzODhmMWJmMyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL3NlcnZlci9TV1NlcnZlcldv
cmtlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL3NlcnZlci9TV1Nl
cnZlcldvcmtlci5jcHAKQEAgLTU4LDYgKzU4LDcgQEAgU1dTZXJ2ZXJXb3JrZXI6OlNXU2VydmVy
V29ya2VyKFNXU2VydmVyJiBzZXJ2ZXIsIFNXU2VydmVyUmVnaXN0cmF0aW9uJiByZWdpc3RyYXQK
ICAgICAsIG1fcmVmZXJyZXJQb2xpY3koV1RGTW92ZShyZWZlcnJlclBvbGljeSkpCiAgICAgLCBt
X3JlZ2lzdHJhYmxlRG9tYWluKG1fZGF0YS5zY3JpcHRVUkwpCiAgICAgLCBtX3NjcmlwdFJlc291
cmNlTWFwKFdURk1vdmUoc2NyaXB0UmVzb3VyY2VNYXApKQorICAgICwgbV90ZXJtaW5hdGlvblRp
bWVyKCp0aGlzLCAmU1dTZXJ2ZXJXb3JrZXI6OnRlcm1pbmF0aW9uVGltZXJGaXJlZCkKIHsKICAg
ICBtX2RhdGEuc2NyaXB0VVJMLnJlbW92ZUZyYWdtZW50SWRlbnRpZmllcigpOwogCkBAIC03NCw2
ICs3NSw4IEBAIFNXU2VydmVyV29ya2VyOjp+U1dTZXJ2ZXJXb3JrZXIoKQogCiAgICAgYXV0byB0
YWtlbiA9IGFsbFdvcmtlcnMoKS50YWtlKGlkZW50aWZpZXIoKSk7CiAgICAgQVNTRVJUX1VOVVNF
RCh0YWtlbiwgdGFrZW4gPT0gdGhpcyk7CisKKyAgICBjYWxsVGVybWluYXRpb25DYWxsYmFja3Mo
KTsKIH0KIAogU2VydmljZVdvcmtlckNvbnRleHREYXRhIFNXU2VydmVyV29ya2VyOjpjb250ZXh0
RGF0YSgpIGNvbnN0CkBAIC04MywxMCArODYsNjAgQEAgU2VydmljZVdvcmtlckNvbnRleHREYXRh
IFNXU2VydmVyV29ya2VyOjpjb250ZXh0RGF0YSgpIGNvbnN0CiAgICAgcmV0dXJuIHsgV1RGOjpu
dWxsb3B0LCBtX3JlZ2lzdHJhdGlvbi0+ZGF0YSgpLCBtX2RhdGEuaWRlbnRpZmllciwgbV9zY3Jp
cHQsIG1fY29udGVudFNlY3VyaXR5UG9saWN5LCBtX3JlZmVycmVyUG9saWN5LCBtX2RhdGEuc2Ny
aXB0VVJMLCBtX2RhdGEudHlwZSwgZmFsc2UsIG1fc2NyaXB0UmVzb3VyY2VNYXAgfTsKIH0KIAot
dm9pZCBTV1NlcnZlcldvcmtlcjo6dGVybWluYXRlKCkKK3ZvaWQgU1dTZXJ2ZXJXb3JrZXI6OnRl
cm1pbmF0ZShDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYgY2FsbGJhY2spCit7CisgICAgaWYg
KCFtX3NlcnZlcikKKyAgICAgICAgcmV0dXJuIGNhbGxiYWNrKCk7CisKKyAgICBzd2l0Y2ggKG1f
c3RhdGUpIHsKKyAgICBjYXNlIFN0YXRlOjpSdW5uaW5nOgorICAgICAgICBzdGFydFRlcm1pbmF0
aW9uKFdURk1vdmUoY2FsbGJhY2spKTsKKyAgICAgICAgcmV0dXJuOworICAgIGNhc2UgU3RhdGU6
OlRlcm1pbmF0aW5nOgorICAgICAgICBtX3Rlcm1pbmF0aW9uQ2FsbGJhY2tzLmFwcGVuZChXVEZN
b3ZlKGNhbGxiYWNrKSk7CisgICAgICAgIHJldHVybjsKKyAgICBjYXNlIFN0YXRlOjpOb3RSdW5u
aW5nOgorICAgICAgICByZXR1cm4gY2FsbGJhY2soKTsKKyAgICB9Cit9CisKK3ZvaWQgU1dTZXJ2
ZXJXb3JrZXI6OnN0YXJ0VGVybWluYXRpb24oQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmIGNh
bGxiYWNrKQoreworICAgIGF1dG8qIGNvbnRleHRDb25uZWN0aW9uID0gdGhpcy0+Y29udGV4dENv
bm5lY3Rpb24oKTsKKyAgICBBU1NFUlQoY29udGV4dENvbm5lY3Rpb24pOworICAgIGlmICghY29u
dGV4dENvbm5lY3Rpb24pIHsKKyAgICAgICAgUkVMRUFTRV9MT0dfRVJST1IoU2VydmljZVdvcmtl
ciwgIlJlcXVlc3QgdG8gdGVybWluYXRlIGEgd29ya2VyICVsbHUgd2hvc2UgY29udGV4dCBjb25u
ZWN0aW9uIGRvZXMgbm90IGV4aXN0IiwgaWRlbnRpZmllcigpLnRvVUludDY0KCkpOworICAgICAg
ICBzZXRTdGF0ZShTdGF0ZTo6Tm90UnVubmluZyk7CisgICAgICAgIGNhbGxiYWNrKCk7CisgICAg
ICAgIG1fc2VydmVyLT53b3JrZXJDb250ZXh0VGVybWluYXRlZCgqdGhpcyk7CisgICAgICAgIHJl
dHVybjsKKyAgICB9CisKKyAgICBzZXRTdGF0ZShTdGF0ZTo6VGVybWluYXRpbmcpOworCisgICAg
bV90ZXJtaW5hdGlvbkNhbGxiYWNrcy5hcHBlbmQoV1RGTW92ZShjYWxsYmFjaykpOworICAgIG1f
dGVybWluYXRpb25UaW1lci5zdGFydE9uZVNob3QoU1dTZXJ2ZXI6OmRlZmF1bHRUZXJtaW5hdGlv
bkRlbGF5KTsKKworICAgIGNvbnRleHRDb25uZWN0aW9uLT50ZXJtaW5hdGVXb3JrZXIoaWRlbnRp
ZmllcigpKTsKK30KKwordm9pZCBTV1NlcnZlcldvcmtlcjo6dGVybWluYXRlQ29tcGxldGVkKCkK
IHsKLSAgICBpZiAoaXNSdW5uaW5nKCkpCi0gICAgICAgIG1fc2VydmVyLT50ZXJtaW5hdGVXb3Jr
ZXIoKnRoaXMpOworICAgIG1fdGVybWluYXRpb25UaW1lci5zdG9wKCk7CisgICAgY2FsbFRlcm1p
bmF0aW9uQ2FsbGJhY2tzKCk7Cit9CisKK3ZvaWQgU1dTZXJ2ZXJXb3JrZXI6OmNhbGxUZXJtaW5h
dGlvbkNhbGxiYWNrcygpCit7CisgICAgYXV0byBjYWxsYmFja3MgPSBXVEZNb3ZlKG1fdGVybWlu
YXRpb25DYWxsYmFja3MpOworICAgIGZvciAoYXV0byYgY2FsbGJhY2sgOiBjYWxsYmFja3MpCisg
ICAgICAgIGNhbGxiYWNrKCk7Cit9CisKK3ZvaWQgU1dTZXJ2ZXJXb3JrZXI6OnRlcm1pbmF0aW9u
VGltZXJGaXJlZCgpCit7CisgICAgQVNTRVJUKGlzVGVybWluYXRpbmcoKSk7CisgICAgY29udGV4
dENvbm5lY3Rpb24oKS0+dGVybWluYXRlRHVlVG9VbnJlc3BvbnNpdmVuZXNzKCk7CiB9CiAKIGNv
bnN0IENsaWVudE9yaWdpbiYgU1dTZXJ2ZXJXb3JrZXI6Om9yaWdpbigpIGNvbnN0CkBAIC0yNTIs
NiArMzA1LDggQEAgdm9pZCBTV1NlcnZlcldvcmtlcjo6c2V0U3RhdGUoU3RhdGUgc3RhdGUpCiAg
ICAgICAgIGNhbGxXaGVuQWN0aXZhdGVkSGFuZGxlcihmYWxzZSk7CiAgICAgICAgIGJyZWFrOwog
ICAgIGNhc2UgU3RhdGU6Ok5vdFJ1bm5pbmc6CisgICAgICAgIHRlcm1pbmF0ZUNvbXBsZXRlZCgp
OworCiAgICAgICAgIGNhbGxXaGVuQWN0aXZhdGVkSGFuZGxlcihmYWxzZSk7CiAgICAgICAgIC8v
IEFzIHBlciBodHRwczovL3czYy5naXRodWIuaW8vU2VydmljZVdvcmtlci8jYWN0aXZhdGUsIGEg
d29ya2VyIGdvZXMgdG8gYWN0aXZhdGVkIGV2ZW4gaWYgYWN0aXZhdGluZyBmYWlscy4KICAgICAg
ICAgaWYgKG1fZGF0YS5zdGF0ZSA9PSBTZXJ2aWNlV29ya2VyU3RhdGU6OkFjdGl2YXRpbmcpCkBA
IC0yNjcsOCArMzIyLDcgQEAgU1dTZXJ2ZXJSZWdpc3RyYXRpb24qIFNXU2VydmVyV29ya2VyOjpy
ZWdpc3RyYXRpb24oKSBjb25zdAogCiB2b2lkIFNXU2VydmVyV29ya2VyOjpkaWRGYWlsSGVhcnRC
ZWF0Q2hlY2soKQogewotICAgIGlmIChtX3NlcnZlciAmJiBpc1J1bm5pbmcoKSkKLSAgICAgICAg
bV9zZXJ2ZXItPnRlcm1pbmF0ZVdvcmtlcigqdGhpcyk7CisgICAgdGVybWluYXRlKCk7CiB9CiAK
IH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtl
cnMvc2VydmljZS9zZXJ2ZXIvU1dTZXJ2ZXJXb3JrZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtl
cnMvc2VydmljZS9zZXJ2ZXIvU1dTZXJ2ZXJXb3JrZXIuaAppbmRleCBlMDJhZTAwMTBmY2ZhYzVk
ZTExOWI0ZmRhMTJhNzE3MTM4ZWY1YzA1Li5iMDUxODdhODM5MWM4ZmI0ZWVmZDA3ZmJhYWM1YTBi
ZTk3ZjI1NDY3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2Uvc2Vy
dmVyL1NXU2VydmVyV29ya2VyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNl
L3NlcnZlci9TV1NlcnZlcldvcmtlci5oCkBAIC0zNiw2ICszNiw3IEBACiAjaW5jbHVkZSAiU2Vy
dmljZVdvcmtlcklkZW50aWZpZXIuaCIKICNpbmNsdWRlICJTZXJ2aWNlV29ya2VyUmVnaXN0cmF0
aW9uS2V5LmgiCiAjaW5jbHVkZSAiU2VydmljZVdvcmtlclR5cGVzLmgiCisjaW5jbHVkZSAiVGlt
ZXIuaCIKICNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgogI2luY2x1ZGUgPHd0Zi9XZWFrUHRy
Lmg+CiAKQEAgLTYwLDcgKzYxLDcgQEAgcHVibGljOgogICAgIFNXU2VydmVyV29ya2VyKGNvbnN0
IFNXU2VydmVyV29ya2VyJikgPSBkZWxldGU7CiAgICAgV0VCQ09SRV9FWFBPUlQgflNXU2VydmVy
V29ya2VyKCk7CiAKLSAgICB2b2lkIHRlcm1pbmF0ZSgpOworICAgIFdFQkNPUkVfRVhQT1JUIHZv
aWQgdGVybWluYXRlKENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJiA9IFtdIHsgfSk7CiAKICAg
ICBXRUJDT1JFX0VYUE9SVCB2b2lkIHdoZW5BY3RpdmF0ZWQoQ29tcGxldGlvbkhhbmRsZXI8dm9p
ZChib29sKT4mJik7CiAKQEAgLTEyNiw2ICsxMjcsMTEgQEAgcHJpdmF0ZToKIAogICAgIHZvaWQg
Y2FsbFdoZW5BY3RpdmF0ZWRIYW5kbGVyKGJvb2wgc3VjY2Vzcyk7CiAKKyAgICB2b2lkIHN0YXJ0
VGVybWluYXRpb24oQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsKKyAgICB2b2lkIHRlcm1p
bmF0ZUNvbXBsZXRlZCgpOworICAgIHZvaWQgdGVybWluYXRpb25UaW1lckZpcmVkKCk7CisgICAg
dm9pZCBjYWxsVGVybWluYXRpb25DYWxsYmFja3MoKTsKKwogICAgIFdlYWtQdHI8U1dTZXJ2ZXI+
IG1fc2VydmVyOwogICAgIFNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25LZXkgbV9yZWdpc3RyYXRp
b25LZXk7CiAgICAgV2Vha1B0cjxTV1NlcnZlclJlZ2lzdHJhdGlvbj4gbV9yZWdpc3RyYXRpb247
CkBAIC0xNDIsNiArMTQ4LDggQEAgcHJpdmF0ZToKICAgICBIYXNoTWFwPFVSTCwgU2VydmljZVdv
cmtlckNvbnRleHREYXRhOjpJbXBvcnRlZFNjcmlwdD4gbV9zY3JpcHRSZXNvdXJjZU1hcDsKICAg
ICBib29sIG1fc2hvdWxkU2tpcEhhbmRsZUZldGNoOwogICAgIGJvb2wgbV9oYXNUaW1lZE91dEFu
eUZldGNoVGFza3MgeyBmYWxzZSB9OworICAgIFZlY3RvcjxDb21wbGV0aW9uSGFuZGxlcjx2b2lk
KCk+PiBtX3Rlcm1pbmF0aW9uQ2FsbGJhY2tzOworICAgIFRpbWVyIG1fdGVybWluYXRpb25UaW1l
cjsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvTmV0d29ya1Byb2Nlc3MvU2VydmljZVdvcmtlci9XZWJTV1NlcnZlckNvbm5lY3Rpb24uY3Bw
IGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1dlYlNXU2VydmVy
Q29ubmVjdGlvbi5jcHAKaW5kZXggZDE0NDZmZTY1M2ZhMjljYzYyM2VjODIwZWM1MDdmZTUzNzYy
MGQzNS4uOWFhZDllZDBmMmExMzIxYWI0OTZlZWFmM2RmNGE4OGI2MjI5NzA0ZCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1dlYlNXU2VydmVy
Q29ubmVjdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9TZXJ2aWNl
V29ya2VyL1dlYlNXU2VydmVyQ29ubmVjdGlvbi5jcHAKQEAgLTQ1NiwxMCArNDU2LDEyIEBAIHZv
aWQgV2ViU1dTZXJ2ZXJDb25uZWN0aW9uOjpjb250ZXh0Q29ubmVjdGlvbkNyZWF0ZWQoU1dTZXJ2
ZXJUb0NvbnRleHRDb25uZWN0aW9uCiAgICAgICAgIG1fbmV0d29ya1Byb2Nlc3MtPnBhcmVudFBy
b2Nlc3NDb25uZWN0aW9uKCktPnNlbmQoTWVzc2FnZXM6Ok5ldHdvcmtQcm9jZXNzUHJveHk6OlJl
Z2lzdGVyU2VydmljZVdvcmtlckNsaWVudFByb2Nlc3MgeyBpZGVudGlmaWVyKCksIGNvbm5lY3Rp
b24ud2ViUHJvY2Vzc0lkZW50aWZpZXIoKSB9LCAwKTsKIH0KIAotdm9pZCBXZWJTV1NlcnZlckNv
bm5lY3Rpb246OnN5bmNUZXJtaW5hdGVXb3JrZXJGcm9tQ2xpZW50KFNlcnZpY2VXb3JrZXJJZGVu
dGlmaWVyIGlkZW50aWZpZXIsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJiBjb21wbGV0aW9u
SGFuZGxlcikKK3ZvaWQgV2ViU1dTZXJ2ZXJDb25uZWN0aW9uOjp0ZXJtaW5hdGVXb3JrZXJGcm9t
Q2xpZW50KFNlcnZpY2VXb3JrZXJJZGVudGlmaWVyIHNlcnZpY2VXb3JrZXJJZGVudGlmaWVyLCBD
b21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYgY2FsbGJhY2spCiB7Ci0gICAgc3luY1Rlcm1pbmF0
ZVdvcmtlcihXVEZNb3ZlKGlkZW50aWZpZXIpKTsKLSAgICBjb21wbGV0aW9uSGFuZGxlcigpOwor
ICAgIGF1dG8qIHdvcmtlciA9IHNlcnZlcigpLndvcmtlckJ5SUQoc2VydmljZVdvcmtlcklkZW50
aWZpZXIpOworICAgIGlmICghd29ya2VyKQorICAgICAgICByZXR1cm4gY2FsbGJhY2soKTsKKyAg
ICB3b3JrZXItPnRlcm1pbmF0ZShXVEZNb3ZlKGNhbGxiYWNrKSk7CiB9CiAKIHZvaWQgV2ViU1dT
ZXJ2ZXJDb25uZWN0aW9uOjppc1NlcnZpY2VXb3JrZXJSdW5uaW5nKFNlcnZpY2VXb3JrZXJJZGVu
dGlmaWVyIGlkZW50aWZpZXIsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYgY29tcGxl
dGlvbkhhbmRsZXIpCkBAIC00ODUsOCArNDg3LDcgQEAgdm9pZCBXZWJTV1NlcnZlckNvbm5lY3Rp
b246OmZldGNoVGFza1RpbWVkT3V0KFNlcnZpY2VXb3JrZXJJZGVudGlmaWVyIHNlcnZpY2VXb3IK
ICAgICAgICAgcmV0dXJuOwogCiAgICAgd29ya2VyLT5zZXRIYXNUaW1lZE91dEFueUZldGNoVGFz
a3MoKTsKLSAgICBpZiAod29ya2VyLT5pc1J1bm5pbmcoKSkKLSAgICAgICAgc2VydmVyKCkuc3lu
Y1Rlcm1pbmF0ZVdvcmtlcigqd29ya2VyKTsKKyAgICB3b3JrZXItPnRlcm1pbmF0ZSgpOwogfQog
CiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29y
a1Byb2Nlc3MvU2VydmljZVdvcmtlci9XZWJTV1NlcnZlckNvbm5lY3Rpb24uaCBiL1NvdXJjZS9X
ZWJLaXQvTmV0d29ya1Byb2Nlc3MvU2VydmljZVdvcmtlci9XZWJTV1NlcnZlckNvbm5lY3Rpb24u
aAppbmRleCAxYmIyODNjOGE2YTk3Mzg5NmIzYjBkNzgyZmQ3ZmE3ZmJjZTI3ZGNjLi44ZTQ4NDFl
MDY2ZDc2YWIxYTc1ZTBhYjQ1OGU2NTU0MzI3MjI2MjFiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L05ldHdvcmtQcm9jZXNzL1NlcnZpY2VXb3JrZXIvV2ViU1dTZXJ2ZXJDb25uZWN0aW9uLmgK
KysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1dlYlNXU2Vy
dmVyQ29ubmVjdGlvbi5oCkBAIC03MCw3ICs3MCw2IEBAIHB1YmxpYzoKICAgICBJUEM6OkNvbm5l
Y3Rpb24mIGlwY0Nvbm5lY3Rpb24oKSBjb25zdCB7IHJldHVybiBtX2NvbnRlbnRDb25uZWN0aW9u
LmdldCgpOyB9CiAKICAgICB2b2lkIGRpZFJlY2VpdmVNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYs
IElQQzo6RGVjb2RlciYpIGZpbmFsOwotICAgIHZvaWQgZGlkUmVjZWl2ZVN5bmNNZXNzYWdlKElQ
Qzo6Q29ubmVjdGlvbiYsIElQQzo6RGVjb2RlciYsIHN0ZDo6dW5pcXVlX3B0cjxJUEM6OkVuY29k
ZXI+Jik7CiAgICAgCiAgICAgUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklEKCkgY29uc3Q7CiAKQEAg
LTEwMyw3ICsxMDIsNyBAQCBwcml2YXRlOgogCiAgICAgdm9pZCByZWdpc3RlclNlcnZpY2VXb3Jr
ZXJDbGllbnQoV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhJiYgdG9wT3JpZ2luLCBXZWJDb3Jl
OjpTZXJ2aWNlV29ya2VyQ2xpZW50RGF0YSYmLCBjb25zdCBPcHRpb25hbDxXZWJDb3JlOjpTZXJ2
aWNlV29ya2VyUmVnaXN0cmF0aW9uSWRlbnRpZmllcj4mLCBTdHJpbmcmJiB1c2VyQWdlbnQpOwog
ICAgIHZvaWQgdW5yZWdpc3RlclNlcnZpY2VXb3JrZXJDbGllbnQoY29uc3QgV2ViQ29yZTo6U2Vy
dmljZVdvcmtlckNsaWVudElkZW50aWZpZXImKTsKLSAgICB2b2lkIHN5bmNUZXJtaW5hdGVXb3Jr
ZXJGcm9tQ2xpZW50KFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJJZGVudGlmaWVyLCBDb21wbGV0aW9u
SGFuZGxlcjx2b2lkKCk+JiYpOworICAgIHZvaWQgdGVybWluYXRlV29ya2VyRnJvbUNsaWVudChX
ZWJDb3JlOjpTZXJ2aWNlV29ya2VySWRlbnRpZmllciwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgp
PiYmKTsKICAgICB2b2lkIGlzU2VydmljZVdvcmtlclJ1bm5pbmcoV2ViQ29yZTo6U2VydmljZVdv
cmtlcklkZW50aWZpZXIsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYpOwogCiAgICAg
dm9pZCBwb3N0TWVzc2FnZVRvU2VydmljZVdvcmtlckNsaWVudChXZWJDb3JlOjpEb2N1bWVudElk
ZW50aWZpZXIgZGVzdGluYXRpb25Db250ZXh0SWRlbnRpZmllciwgY29uc3QgV2ViQ29yZTo6TWVz
c2FnZVdpdGhNZXNzYWdlUG9ydHMmLCBXZWJDb3JlOjpTZXJ2aWNlV29ya2VySWRlbnRpZmllciBz
b3VyY2VTZXJ2aWNlV29ya2VySWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiBzb3VyY2VPcmlnaW4p
IGZpbmFsOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9TZXJ2aWNl
V29ya2VyL1dlYlNXU2VydmVyQ29ubmVjdGlvbi5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQv
TmV0d29ya1Byb2Nlc3MvU2VydmljZVdvcmtlci9XZWJTV1NlcnZlckNvbm5lY3Rpb24ubWVzc2Fn
ZXMuaW4KaW5kZXggOTUzZjZjMzU2MTQwOWVmNTI5MjI4NTM0YTQzMzExZWM2NjE5MWRhNi4uZTI1
ZDcxZTlhZGU5MTljODViMTE3MWVhNjc3NDFhMGIwZTZkYjAwNCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1dlYlNXU2VydmVyQ29ubmVjdGlv
bi5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1NlcnZpY2VX
b3JrZXIvV2ViU1dTZXJ2ZXJDb25uZWN0aW9uLm1lc3NhZ2VzLmluCkBAIC00MSw3ICs0MSw3IEBA
IG1lc3NhZ2VzIC0+IFdlYlNXU2VydmVyQ29ubmVjdGlvbiBOb3RSZWZDb3VudGVkIHsKICAgICBS
ZWdpc3RlclNlcnZpY2VXb3JrZXJDbGllbnQoc3RydWN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2lu
RGF0YSB0b3BPcmlnaW4sIHN0cnVjdCBXZWJDb3JlOjpTZXJ2aWNlV29ya2VyQ2xpZW50RGF0YSBk
YXRhLCBPcHRpb25hbDxXZWJDb3JlOjpTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uSWRlbnRpZmll
cj4gY29udHJvbGxpbmdTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uSWRlbnRpZmllciwgU3RyaW5n
IHVzZXJBZ2VudCkKICAgICBVbnJlZ2lzdGVyU2VydmljZVdvcmtlckNsaWVudChzdHJ1Y3QgV2Vi
Q29yZTo6U2VydmljZVdvcmtlckNsaWVudElkZW50aWZpZXIgaWRlbnRpZmllcikKIAotICAgIFN5
bmNUZXJtaW5hdGVXb3JrZXJGcm9tQ2xpZW50KFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJJZGVudGlm
aWVyIHdvcmtlcklkZW50aWZpZXIpIC0+ICgpIFN5bmNocm9ub3VzCisgICAgVGVybWluYXRlV29y
a2VyRnJvbUNsaWVudChXZWJDb3JlOjpTZXJ2aWNlV29ya2VySWRlbnRpZmllciB3b3JrZXJJZGVu
dGlmaWVyKSAtPiAoKSBBc3luYwogCiAgICAgU2V0VGhyb3R0bGVTdGF0ZShib29sIGlzVGhyb3R0
bGVhYmxlKQogICAgIFN0b3JlUmVnaXN0cmF0aW9uc09uRGlzaygpIC0+ICgpIEFzeW5jCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1NlcnZpY2VXb3JrZXIvV2ViU1dT
ZXJ2ZXJUb0NvbnRleHRDb25uZWN0aW9uLmNwcCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nl
c3MvU2VydmljZVdvcmtlci9XZWJTV1NlcnZlclRvQ29udGV4dENvbm5lY3Rpb24uY3BwCmluZGV4
IGMwZjZjZWIxNGJlNTE3Y2ZjYTA3OGRhOTc2OTUwMzgwOTQyMTU0MzEuLjYzN2M4ZWQ4OTViYzM4
NmNjMTdmNzdlNjVjY2UzN2ZkNGZkYjIzNGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0
d29ya1Byb2Nlc3MvU2VydmljZVdvcmtlci9XZWJTV1NlcnZlclRvQ29udGV4dENvbm5lY3Rpb24u
Y3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvU2VydmljZVdvcmtlci9XZWJT
V1NlcnZlclRvQ29udGV4dENvbm5lY3Rpb24uY3BwCkBAIC0xMDYsMTAgKzEwNiw5IEBAIHZvaWQg
V2ViU1dTZXJ2ZXJUb0NvbnRleHRDb25uZWN0aW9uOjp0ZXJtaW5hdGVXb3JrZXIoU2VydmljZVdv
cmtlcklkZW50aWZpZXIgc2VyCiAgICAgc2VuZChNZXNzYWdlczo6V2ViU1dDb250ZXh0TWFuYWdl
ckNvbm5lY3Rpb246OlRlcm1pbmF0ZVdvcmtlcihzZXJ2aWNlV29ya2VySWRlbnRpZmllcikpOwog
fQogCi12b2lkIFdlYlNXU2VydmVyVG9Db250ZXh0Q29ubmVjdGlvbjo6c3luY1Rlcm1pbmF0ZVdv
cmtlcihTZXJ2aWNlV29ya2VySWRlbnRpZmllciBzZXJ2aWNlV29ya2VySWRlbnRpZmllcikKK3Zv
aWQgV2ViU1dTZXJ2ZXJUb0NvbnRleHRDb25uZWN0aW9uOjp0ZXJtaW5hdGVEdWVUb1VucmVzcG9u
c2l2ZW5lc3MoKQogewotICAgIGlmICghc2VuZFN5bmMoTWVzc2FnZXM6OldlYlNXQ29udGV4dE1h
bmFnZXJDb25uZWN0aW9uOjpTeW5jVGVybWluYXRlV29ya2VyKHNlcnZpY2VXb3JrZXJJZGVudGlm
aWVyKSwgTWVzc2FnZXM6OldlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uOjpTeW5jVGVybWlu
YXRlV29ya2VyOjpSZXBseSgpLCAwLCAxMF9zLCBJUEM6OlNlbmRTeW5jT3B0aW9uOjpGb3JjZURp
c3BhdGNoV2hlbkRlc3RpbmF0aW9uSXNXYWl0aW5nRm9yVW5ib3VuZGVkU3luY1JlcGx5KSkKLSAg
ICAgICAgbV9jb25uZWN0aW9uLm5ldHdvcmtQcm9jZXNzKCkucGFyZW50UHJvY2Vzc0Nvbm5lY3Rp
b24oKS0+c2VuZChNZXNzYWdlczo6TmV0d29ya1Byb2Nlc3NQcm94eTo6VGVybWluYXRlVW5yZXNw
b25zaXZlU2VydmljZVdvcmtlclByb2Nlc3NlcyB7IHdlYlByb2Nlc3NJZGVudGlmaWVyKCkgfSwg
MCk7CisgICAgbV9jb25uZWN0aW9uLm5ldHdvcmtQcm9jZXNzKCkucGFyZW50UHJvY2Vzc0Nvbm5l
Y3Rpb24oKS0+c2VuZChNZXNzYWdlczo6TmV0d29ya1Byb2Nlc3NQcm94eTo6VGVybWluYXRlVW5y
ZXNwb25zaXZlU2VydmljZVdvcmtlclByb2Nlc3NlcyB7IHdlYlByb2Nlc3NJZGVudGlmaWVyKCkg
fSwgMCk7CiB9CiAKIHZvaWQgV2ViU1dTZXJ2ZXJUb0NvbnRleHRDb25uZWN0aW9uOjpmaW5kQ2xp
ZW50QnlJZGVudGlmaWVyQ29tcGxldGVkKHVpbnQ2NF90IHJlcXVlc3RJZGVudGlmaWVyLCBjb25z
dCBPcHRpb25hbDxTZXJ2aWNlV29ya2VyQ2xpZW50RGF0YT4mIGRhdGEsIGJvb2wgaGFzU2VjdXJp
dHlFcnJvcikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvU2Vydmlj
ZVdvcmtlci9XZWJTV1NlcnZlclRvQ29udGV4dENvbm5lY3Rpb24uaCBiL1NvdXJjZS9XZWJLaXQv
TmV0d29ya1Byb2Nlc3MvU2VydmljZVdvcmtlci9XZWJTV1NlcnZlclRvQ29udGV4dENvbm5lY3Rp
b24uaAppbmRleCBmZTEyMmNmZjZhNjFmOTE2ZjQ2NWEwNDBhN2VjNmIxMjk0MGYxYTU3Li41NzQ4
MTY0MGJlODFhNjMzYTllYjk3ODIzNjFmOGQ4ZDZiNzgwNTM0IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L05ldHdvcmtQcm9jZXNzL1NlcnZpY2VXb3JrZXIvV2ViU1dTZXJ2ZXJUb0NvbnRleHRD
b25uZWN0aW9uLmgKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9TZXJ2aWNlV29y
a2VyL1dlYlNXU2VydmVyVG9Db250ZXh0Q29ubmVjdGlvbi5oCkBAIC04NywxMSArODcsMTEgQEAg
cHJpdmF0ZToKICAgICB2b2lkIGZpcmVJbnN0YWxsRXZlbnQoV2ViQ29yZTo6U2VydmljZVdvcmtl
cklkZW50aWZpZXIpIGZpbmFsOwogICAgIHZvaWQgZmlyZUFjdGl2YXRlRXZlbnQoV2ViQ29yZTo6
U2VydmljZVdvcmtlcklkZW50aWZpZXIpIGZpbmFsOwogICAgIHZvaWQgdGVybWluYXRlV29ya2Vy
KFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJJZGVudGlmaWVyKSBmaW5hbDsKLSAgICB2b2lkIHN5bmNU
ZXJtaW5hdGVXb3JrZXIoV2ViQ29yZTo6U2VydmljZVdvcmtlcklkZW50aWZpZXIpIGZpbmFsOwog
ICAgIHZvaWQgZmluZENsaWVudEJ5SWRlbnRpZmllckNvbXBsZXRlZCh1aW50NjRfdCByZXF1ZXN0
SWRlbnRpZmllciwgY29uc3QgT3B0aW9uYWw8V2ViQ29yZTo6U2VydmljZVdvcmtlckNsaWVudERh
dGE+JiwgYm9vbCBoYXNTZWN1cml0eUVycm9yKSBmaW5hbDsKICAgICB2b2lkIG1hdGNoQWxsQ29t
cGxldGVkKHVpbnQ2NF90IHJlcXVlc3RJZGVudGlmaWVyLCBjb25zdCBWZWN0b3I8V2ViQ29yZTo6
U2VydmljZVdvcmtlckNsaWVudERhdGE+JikgZmluYWw7CiAKICAgICB2b2lkIGNvbm5lY3Rpb25J
c05vTG9uZ2VyTmVlZGVkKCkgZmluYWw7CisgICAgdm9pZCB0ZXJtaW5hdGVEdWVUb1VucmVzcG9u
c2l2ZW5lc3MoKSBmaW5hbDsKIAogICAgIHZvaWQgY29ubmVjdGlvbkNsb3NlZCgpOwogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3RvcmFnZS9XZWJTV0NsaWVudENvbm5l
Y3Rpb24uY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dDbGllbnRD
b25uZWN0aW9uLmNwcAppbmRleCBiMWExZWE2YjAyNGQ2MGE1ZDc3OTQ4NTQyMDUyODljZTQxMGVk
MGFkLi5jM2NjYzY5YTZlY2ExM2FhOWE4N2Y2MjI0N2UwMzM1NjlhMmMxNzliIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3RvcmFnZS9XZWJTV0NsaWVudENvbm5lY3Rpb24u
Y3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNXQ2xpZW50Q29u
bmVjdGlvbi5jcHAKQEAgLTI0Myw5ICsyNDMsOSBAQCB2b2lkIFdlYlNXQ2xpZW50Q29ubmVjdGlv
bjo6Y2xlYXIoKQogICAgIGNsZWFyUGVuZGluZ0pvYnMoKTsKIH0KIAotdm9pZCBXZWJTV0NsaWVu
dENvbm5lY3Rpb246OnN5bmNUZXJtaW5hdGVXb3JrZXIoU2VydmljZVdvcmtlcklkZW50aWZpZXIg
aWRlbnRpZmllcikKK3ZvaWQgV2ViU1dDbGllbnRDb25uZWN0aW9uOjp0ZXJtaW5hdGVXb3JrZXJG
b3JUZXN0aW5nKFNlcnZpY2VXb3JrZXJJZGVudGlmaWVyIGlkZW50aWZpZXIsIENvbXBsZXRpb25I
YW5kbGVyPHZvaWQoKT4mJiBjYWxsYmFjaykKIHsKLSAgICBzZW5kU3luYyhNZXNzYWdlczo6V2Vi
U1dTZXJ2ZXJDb25uZWN0aW9uOjpTeW5jVGVybWluYXRlV29ya2VyRnJvbUNsaWVudCB7IGlkZW50
aWZpZXIgfSwgTWVzc2FnZXM6OldlYlNXU2VydmVyQ29ubmVjdGlvbjo6U3luY1Rlcm1pbmF0ZVdv
cmtlckZyb21DbGllbnQ6OlJlcGx5KCkpOworICAgIHNlbmRXaXRoQXN5bmNSZXBseShNZXNzYWdl
czo6V2ViU1dTZXJ2ZXJDb25uZWN0aW9uOjpUZXJtaW5hdGVXb3JrZXJGcm9tQ2xpZW50IHsgaWRl
bnRpZmllciB9LCBXVEZNb3ZlKGNhbGxiYWNrKSk7CiB9CiAKIHZvaWQgV2ViU1dDbGllbnRDb25u
ZWN0aW9uOjppc1NlcnZpY2VXb3JrZXJSdW5uaW5nKFNlcnZpY2VXb3JrZXJJZGVudGlmaWVyIGlk
ZW50aWZpZXIsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYgY2FsbGJhY2spCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3RvcmFnZS9XZWJTV0NsaWVudENvbm5l
Y3Rpb24uaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNXQ2xpZW50Q29u
bmVjdGlvbi5oCmluZGV4IDc2YzQ2MjgzNDk0YjYwMDJmNDFkNTA3YzkxM2RhOGZlOGYzODMxNTgu
LjIyOWRhNDhkZmMwYjhkNGVmOGQwNDIwZjY1NDI1OGRiYzJiYjUzY2IgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNXQ2xpZW50Q29ubmVjdGlvbi5oCisr
KyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNXQ2xpZW50Q29ubmVjdGlv
bi5oCkBAIC02Miw4ICs2Miw2IEBAIHB1YmxpYzoKIAogICAgIHZvaWQgY29ubmVjdGlvblRvU2Vy
dmVyTG9zdCgpOwogCi0gICAgdm9pZCBzeW5jVGVybWluYXRlV29ya2VyKFdlYkNvcmU6OlNlcnZp
Y2VXb3JrZXJJZGVudGlmaWVyKSBmaW5hbDsKLQogICAgIGJvb2wgaXNUaHJvdHRsZWFibGUoKSBj
b25zdCB7IHJldHVybiBtX2lzVGhyb3R0bGVhYmxlOyB9CiAgICAgdm9pZCB1cGRhdGVUaHJvdHRs
ZVN0YXRlKCk7CiAKQEAgLTkxLDYgKzg5LDggQEAgcHJpdmF0ZToKICAgICB2b2lkIGRpZFJlc29s
dmVSZWdpc3RyYXRpb25Qcm9taXNlKGNvbnN0IFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJSZWdpc3Ry
YXRpb25LZXkmKSBmaW5hbDsKICAgICB2b2lkIHN0b3JlUmVnaXN0cmF0aW9uc09uRGlza0ZvclRl
c3RpbmcoQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKSBmaW5hbDsKIAorICAgIHZvaWQgdGVy
bWluYXRlV29ya2VyRm9yVGVzdGluZyhXZWJDb3JlOjpTZXJ2aWNlV29ya2VySWRlbnRpZmllciwg
Q29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKSBmaW5hbDsKKwogICAgIHZvaWQgc2NoZWR1bGVT
dG9yYWdlSm9iKGNvbnN0IFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJKb2JEYXRhJik7CiAKICAgICB2
b2lkIHJ1bk9yRGVsYXlUYXNrRm9ySW1wb3J0KEZ1bmN0aW9uPHZvaWQoKT4mJiB0YXNrKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNXQ29udGV4dE1h
bmFnZXJDb25uZWN0aW9uLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TdG9yYWdlL1dl
YlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uLmNwcAppbmRleCA5YzBiNTY5NmMxMTU2ZjVkODhi
NmM1OTE2ZTcwZTQ3NDdlM2UyZmYwLi4zYmIyMDIxNDY1Yjk2NDdkZmM4Yzg3M2JjNGEzNDlmYTg4
ZDhmOWI1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3RvcmFnZS9XZWJT
V0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL1N0b3JhZ2UvV2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb24uY3BwCkBAIC0yNTUsMTEg
KzI1NSw2IEBAIHZvaWQgV2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb246OnRlcm1pbmF0ZVdv
cmtlcihTZXJ2aWNlV29ya2VySWRlbnRpZmllciBpZGVuCiAgICAgU1dDb250ZXh0TWFuYWdlcjo6
c2luZ2xldG9uKCkudGVybWluYXRlV29ya2VyKGlkZW50aWZpZXIsIFNXQ29udGV4dE1hbmFnZXI6
OndvcmtlclRlcm1pbmF0aW9uVGltZW91dCwgbnVsbHB0cik7CiB9CiAKLXZvaWQgV2ViU1dDb250
ZXh0TWFuYWdlckNvbm5lY3Rpb246OnN5bmNUZXJtaW5hdGVXb3JrZXIoU2VydmljZVdvcmtlcklk
ZW50aWZpZXIgaWRlbnRpZmllciwgTWVzc2FnZXM6OldlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0
aW9uOjpTeW5jVGVybWluYXRlV29ya2VyOjpEZWxheWVkUmVwbHkmJiByZXBseSkKLXsKLSAgICBT
V0NvbnRleHRNYW5hZ2VyOjpzaW5nbGV0b24oKS50ZXJtaW5hdGVXb3JrZXIoaWRlbnRpZmllciwg
U1dDb250ZXh0TWFuYWdlcjo6c3luY1dvcmtlclRlcm1pbmF0aW9uVGltZW91dCwgV1RGTW92ZShy
ZXBseSkpOwotfQotCiB2b2lkIFdlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uOjpwb3N0TWVz
c2FnZVRvU2VydmljZVdvcmtlckNsaWVudChjb25zdCBTZXJ2aWNlV29ya2VyQ2xpZW50SWRlbnRp
ZmllciYgZGVzdGluYXRpb25JZGVudGlmaWVyLCBjb25zdCBNZXNzYWdlV2l0aE1lc3NhZ2VQb3J0
cyYgbWVzc2FnZSwgU2VydmljZVdvcmtlcklkZW50aWZpZXIgc291cmNlSWRlbnRpZmllciwgY29u
c3QgU3RyaW5nJiBzb3VyY2VPcmlnaW4pCiB7CiAgICAgbV9jb25uZWN0aW9uVG9OZXR3b3JrUHJv
Y2Vzcy0+c2VuZChNZXNzYWdlczo6V2ViU1dTZXJ2ZXJUb0NvbnRleHRDb25uZWN0aW9uOjpQb3N0
TWVzc2FnZVRvU2VydmljZVdvcmtlckNsaWVudChkZXN0aW5hdGlvbklkZW50aWZpZXIsIG1lc3Nh
Z2UsIHNvdXJjZUlkZW50aWZpZXIsIHNvdXJjZU9yaWdpbiksIDApOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rp
b24uaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNXQ29udGV4dE1hbmFn
ZXJDb25uZWN0aW9uLmgKaW5kZXggNmQ4Yzg3NmNhMTJhOGYzYTlkZGYwOGM1OGEyNTY0MWUwMzAy
MTA5NC4uMTBjY2QxOGU1YWJlZjE1NzNmYzc0ZjJhYjYzNDk5NWU5ZDkzNjYxZSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dDb250ZXh0TWFuYWdlckNv
bm5lY3Rpb24uaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3RvcmFnZS9XZWJTV0Nv
bnRleHRNYW5hZ2VyQ29ubmVjdGlvbi5oCkBAIC02MCw3ICs2MCw2IEBAIHB1YmxpYzoKICAgICB+
V2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb24oKTsKIAogICAgIHZvaWQgZGlkUmVjZWl2ZU1l
c3NhZ2UoSVBDOjpDb25uZWN0aW9uJiwgSVBDOjpEZWNvZGVyJikgZmluYWw7Ci0gICAgdm9pZCBk
aWRSZWNlaXZlU3luY01lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiwgSVBDOjpEZWNvZGVyJiwgc3Rk
Ojp1bmlxdWVfcHRyPElQQzo6RW5jb2Rlcj4mKSBmaW5hbDsKIAogcHJpdmF0ZToKICAgICB2b2lk
IHVwZGF0ZVByZWZlcmVuY2VzU3RvcmUoY29uc3QgV2ViUHJlZmVyZW5jZXNTdG9yZSYpOwpAQCAt
OTEsNyArOTAsNiBAQCBwcml2YXRlOgogICAgIHZvaWQgZmlyZUluc3RhbGxFdmVudChXZWJDb3Jl
OjpTZXJ2aWNlV29ya2VySWRlbnRpZmllcik7CiAgICAgdm9pZCBmaXJlQWN0aXZhdGVFdmVudChX
ZWJDb3JlOjpTZXJ2aWNlV29ya2VySWRlbnRpZmllcik7CiAgICAgdm9pZCB0ZXJtaW5hdGVXb3Jr
ZXIoV2ViQ29yZTo6U2VydmljZVdvcmtlcklkZW50aWZpZXIpOwotICAgIHZvaWQgc3luY1Rlcm1p
bmF0ZVdvcmtlcihXZWJDb3JlOjpTZXJ2aWNlV29ya2VySWRlbnRpZmllciwgTWVzc2FnZXM6Oldl
YlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uOjpTeW5jVGVybWluYXRlV29ya2VyRGVsYXllZFJl
cGx5JiYpOwogICAgIHZvaWQgZmluZENsaWVudEJ5SWRlbnRpZmllckNvbXBsZXRlZCh1aW50NjRf
dCByZXF1ZXN0SWRlbnRpZmllciwgT3B0aW9uYWw8V2ViQ29yZTo6U2VydmljZVdvcmtlckNsaWVu
dERhdGE+JiYsIGJvb2wgaGFzU2VjdXJpdHlFcnJvcik7CiAgICAgdm9pZCBtYXRjaEFsbENvbXBs
ZXRlZCh1aW50NjRfdCBtYXRjaEFsbFJlcXVlc3RJZGVudGlmaWVyLCBWZWN0b3I8V2ViQ29yZTo6
U2VydmljZVdvcmtlckNsaWVudERhdGE+JiYpOwogICAgIHZvaWQgc2V0VXNlckFnZW50KFN0cmlu
ZyYmIHVzZXJBZ2VudCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3Rv
cmFnZS9XZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbi5tZXNzYWdlcy5pbiBiL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uLm1l
c3NhZ2VzLmluCmluZGV4IDRhNGRkYjdjYThhYTIwMDdkNjNhYjI0ZDUzOTU5NzgyZjcyMmUxOGUu
LjUyODRjZDRhNWZmY2E1NzYyNDk4YWJhMzJkMTE3NzM4NmQ2NDNiZmUgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0
aW9uLm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TdG9yYWdlL1dl
YlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uLm1lc3NhZ2VzLmluCkBAIC0zMSw3ICszMSw2IEBA
IG1lc3NhZ2VzIC0+IFdlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uIE5vdFJlZkNvdW50ZWQg
ewogICAgIEZpcmVJbnN0YWxsRXZlbnQoV2ViQ29yZTo6U2VydmljZVdvcmtlcklkZW50aWZpZXIg
aWRlbnRpZmllcikKICAgICBGaXJlQWN0aXZhdGVFdmVudChXZWJDb3JlOjpTZXJ2aWNlV29ya2Vy
SWRlbnRpZmllciBpZGVudGlmaWVyKQogICAgIFRlcm1pbmF0ZVdvcmtlcihXZWJDb3JlOjpTZXJ2
aWNlV29ya2VySWRlbnRpZmllciBpZGVudGlmaWVyKQotICAgIFN5bmNUZXJtaW5hdGVXb3JrZXIo
V2ViQ29yZTo6U2VydmljZVdvcmtlcklkZW50aWZpZXIgaWRlbnRpZmllcikgLT4gKCkgU3luY2hy
b25vdXMKICAgICBGaW5kQ2xpZW50QnlJZGVudGlmaWVyQ29tcGxldGVkKHVpbnQ2NF90IGNsaWVu
dElkUmVxdWVzdElkZW50aWZpZXIsIE9wdGlvbmFsPFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJDbGll
bnREYXRhPiBkYXRhLCBib29sIGhhc1NlY3VyaXR5RXJyb3IpCiAgICAgTWF0Y2hBbGxDb21wbGV0
ZWQodWludDY0X3QgbWF0Y2hBbGxSZXF1ZXN0SWRlbnRpZmllciwgVmVjdG9yPFdlYkNvcmU6OlNl
cnZpY2VXb3JrZXJDbGllbnREYXRhPiBjbGllbnRzRGF0YSkKICAgICBTZXRVc2VyQWdlbnQoU3Ry
aW5nIHVzZXJBZ2VudCkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91
dFRlc3RzL0NoYW5nZUxvZwppbmRleCA3MDhhNjViOGI4OTA2ODY0YjRjZWQ3Yzk4ZGRlMTA2ZDFk
ODBlY2E1Li42OGE4M2UyZGJiMjRhNTVjNTc5NWRkY2ZkNDE0N2YxNTIyNjlmNThjIDEwMDY0NAot
LS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBA
IC0xLDMgKzEsMTcgQEAKKzIwMjAtMDMtMzAgIHlvdWVubiBmYWJsZXQgIDx5b3Vlbm5AYXBwbGUu
Y29tPgorCisgICAgICAgIFJlbW92ZSBzeW5jaHJvbm91cyB0ZXJtaW5hdGlvbiBvZiBzZXJ2aWNl
IHdvcmtlcnMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTIwOTY2NgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
ICogaHR0cC90ZXN0cy93b3JrZXJzL3NlcnZpY2UvcmVzb3VyY2VzL3Bvc3RtZXNzYWdlLWFmdGVy
LXN3LXByb2Nlc3MtY3Jhc2guanM6CisgICAgICAgIChhc3luYyBldmVudCk6CisgICAgICAgICog
aHR0cC90ZXN0cy93b3JrZXJzL3NlcnZpY2UvcmVzb3VyY2VzL3Bvc3RtZXNzYWdlLWFmdGVyLXRl
cm1pbmF0ZS5qczoKKyAgICAgICAgKGFzeW5jIGV2ZW50KToKKyAgICAgICAgKiBodHRwL3Rlc3Rz
L3dvcmtlcnMvc2VydmljZS9yZXNvdXJjZXMvcG9zdG1lc3NhZ2UtYWZ0ZXItdGVybWluYXRpbmct
aHVuZy13b3JrZXIuanM6CisgICAgICAgIChhc3luYyBldmVudCk6CisKIDIwMjAtMDMtMjUgIHlv
dWVubiBmYWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgogCiAgICAgICAgIEJ1bXAgbGlid2VicnRj
IHRvIE04MgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93b3JrZXJzL3NlcnZp
Y2UvcmVzb3VyY2VzL3Bvc3RtZXNzYWdlLWFmdGVyLXN3LXByb2Nlc3MtY3Jhc2guanMgYi9MYXlv
dXRUZXN0cy9odHRwL3Rlc3RzL3dvcmtlcnMvc2VydmljZS9yZXNvdXJjZXMvcG9zdG1lc3NhZ2Ut
YWZ0ZXItc3ctcHJvY2Vzcy1jcmFzaC5qcwppbmRleCBhYWQyZGU2NGJlMjBmZjZmNWMzYWI2OGVl
YTRlNGVmNzA0YzIxMWM3Li4xMGQ4ZTcwZjE2MWRlMjhkY2NjYzk1NmNmYzYwMmQ0ZTIyMmRhY2Fh
IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dvcmtlcnMvc2VydmljZS9yZXNv
dXJjZXMvcG9zdG1lc3NhZ2UtYWZ0ZXItc3ctcHJvY2Vzcy1jcmFzaC5qcworKysgYi9MYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL3dvcmtlcnMvc2VydmljZS9yZXNvdXJjZXMvcG9zdG1lc3NhZ2UtYWZ0
ZXItc3ctcHJvY2Vzcy1jcmFzaC5qcwpAQCAtMiw3ICsyLDcgQEAgbGV0IHNlcnZpY2VXb3JrZXJI
YXNSZWNlaXZlZFN0YXRlID0gZmFsc2U7CiBsZXQgd29ya2VyID0gbnVsbDsKIGxldCByZW1haW5p
bmdBdHRlbXB0cyA9IDEwMDA7IC8vIFdlIHRyeSBmb3IgMTAgc2Vjb25kcyBiZWZvcmUgdGltaW5n
IG91dC4KIAotbmF2aWdhdG9yLnNlcnZpY2VXb3JrZXIuYWRkRXZlbnRMaXN0ZW5lcigibWVzc2Fn
ZSIsIGZ1bmN0aW9uKGV2ZW50KSB7CituYXZpZ2F0b3Iuc2VydmljZVdvcmtlci5hZGRFdmVudExp
c3RlbmVyKCJtZXNzYWdlIiwgYXN5bmMgZnVuY3Rpb24oZXZlbnQpIHsKICAgICBpZiAoIXNlcnZp
Y2VXb3JrZXJIYXNSZWNlaXZlZFN0YXRlKSB7CiAgICAgICAgIGlmICghZXZlbnQuZGF0YSkgewog
ICAgICAgICAgICAgbG9nKCJGQUlMOiBzZXJ2aWNlIHdvcmtlciBkaWQgbm90IHJlY2VpdmUgdGhl
IHN0YXRlIik7CkBAIC0xMiw3ICsxMiw3IEBAIG5hdmlnYXRvci5zZXJ2aWNlV29ya2VyLmFkZEV2
ZW50TGlzdGVuZXIoIm1lc3NhZ2UiLCBmdW5jdGlvbihldmVudCkgewogICAgICAgICBzZXJ2aWNl
V29ya2VySGFzUmVjZWl2ZWRTdGF0ZSA9IHRydWU7CiAKICAgICAgICAgbG9nKCIqIFNpbXVsYXRp
bmcgU2VydmljZSBXb3JrZXIgcHJvY2VzcyBjcmFzaCIpOwotICAgICAgICB0ZXN0UnVubmVyLnRl
cm1pbmF0ZVNlcnZpY2VXb3JrZXJzKCk7CisgICAgICAgIGF3YWl0IHRlc3RSdW5uZXIudGVybWlu
YXRlU2VydmljZVdvcmtlcnMoKTsKIAogICAgICAgICBoYW5kbGUgPSBzZXRJbnRlcnZhbChmdW5j
dGlvbigpIHsKICAgICAgICAgICAgIHJlbWFpbmluZ0F0dGVtcHRzLS07CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dvcmtlcnMvc2VydmljZS9yZXNvdXJjZXMvcG9zdG1lc3Nh
Z2UtYWZ0ZXItdGVybWluYXRlLmpzIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93b3JrZXJzL3Nl
cnZpY2UvcmVzb3VyY2VzL3Bvc3RtZXNzYWdlLWFmdGVyLXRlcm1pbmF0ZS5qcwppbmRleCBhYzdj
YWQ3NGVjNmFlOGUxMDkwOTU1NzUzMGJlNGU4YTJlNDNkMGY3Li4wOTIwNDMzMjgyNTQ0ODJlMTM3
NjlkNjZlYjQ2ZGNhOTMxYThhYTgwIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3Rz
L3dvcmtlcnMvc2VydmljZS9yZXNvdXJjZXMvcG9zdG1lc3NhZ2UtYWZ0ZXItdGVybWluYXRlLmpz
CisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd29ya2Vycy9zZXJ2aWNlL3Jlc291cmNlcy9w
b3N0bWVzc2FnZS1hZnRlci10ZXJtaW5hdGUuanMKQEAgLTEsOSArMSw5IEBACiB2YXIgbWVzc2Fn
ZU51bWJlciA9IDE7Ci1uYXZpZ2F0b3Iuc2VydmljZVdvcmtlci5hZGRFdmVudExpc3RlbmVyKCJt
ZXNzYWdlIiwgZnVuY3Rpb24oZXZlbnQpIHsKK25hdmlnYXRvci5zZXJ2aWNlV29ya2VyLmFkZEV2
ZW50TGlzdGVuZXIoIm1lc3NhZ2UiLCBhc3luYyBmdW5jdGlvbihldmVudCkgewogICAgIGxvZygi
UEFTUzogQ2xpZW50IHJlY2VpdmVkIG1lc3NhZ2UgZnJvbSBzZXJ2aWNlIHdvcmtlciwgb3JpZ2lu
OiAiICsgZXZlbnQub3JpZ2luKTsKICAgICBsb2coZXZlbnQuZGF0YSk7CiAgICAgaWYgKG1lc3Nh
Z2VOdW1iZXIgPT0gMSkgewotICAgICAgICB3aW5kb3cuaW50ZXJuYWxzLnRlcm1pbmF0ZVNlcnZp
Y2VXb3JrZXIoZXZlbnQuc291cmNlKTsKKyAgICAgICAgYXdhaXQgd2luZG93LmludGVybmFscy50
ZXJtaW5hdGVTZXJ2aWNlV29ya2VyKGV2ZW50LnNvdXJjZSk7CiAgICAgICAgIGV2ZW50LnNvdXJj
ZS5wb3N0TWVzc2FnZSgiTWVzc2FnZSAyIik7CiAgICAgICAgIG1lc3NhZ2VOdW1iZXIrKzsKICAg
ICB9IGVsc2UKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd29ya2Vycy9zZXJ2
aWNlL3Jlc291cmNlcy9wb3N0bWVzc2FnZS1hZnRlci10ZXJtaW5hdGluZy1odW5nLXdvcmtlci5q
cyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd29ya2Vycy9zZXJ2aWNlL3Jlc291cmNlcy9wb3N0
bWVzc2FnZS1hZnRlci10ZXJtaW5hdGluZy1odW5nLXdvcmtlci5qcwppbmRleCA4NmE0MzFiNWM3
MjFlMDI5MjA2YTJhMzM5YWExZGI4MDg5YTFmY2QyLi5mZDRhZDQ2OTg2MzJjMjljMzc3ZGY0ZTk1
ODE4MDVjNThlMzFkMTlmIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dvcmtl
cnMvc2VydmljZS9yZXNvdXJjZXMvcG9zdG1lc3NhZ2UtYWZ0ZXItdGVybWluYXRpbmctaHVuZy13
b3JrZXIuanMKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93b3JrZXJzL3NlcnZpY2UvcmVz
b3VyY2VzL3Bvc3RtZXNzYWdlLWFmdGVyLXRlcm1pbmF0aW5nLWh1bmctd29ya2VyLmpzCkBAIC0x
LDEyICsxLDEyIEBACiBsZXQgc3RhdGUgPSAiV2FpdGluZ0ZvckhhbmciOwogCi1uYXZpZ2F0b3Iu
c2VydmljZVdvcmtlci5hZGRFdmVudExpc3RlbmVyKCJtZXNzYWdlIiwgZnVuY3Rpb24oZXZlbnQp
IHsKK25hdmlnYXRvci5zZXJ2aWNlV29ya2VyLmFkZEV2ZW50TGlzdGVuZXIoIm1lc3NhZ2UiLCBh
c3luYyBmdW5jdGlvbihldmVudCkgewogICAgIGxvZyhldmVudC5kYXRhKTsKICAgICBpZiAoc3Rh
dGUgPT09ICJXYWl0aW5nRm9ySGFuZyIpIHsKICAgICAgICAgbG9nKCJQQVNTOiBTZXJ2aWNlV29y
a2VyIHJlY2VpdmVkIG1lc3NhZ2U6ICIgKyBldmVudC5kYXRhKTsKICAgICAgICAgbG9nKCJTZXJ2
aWNlIFdvcmtlciBzaG91bGQgbm93IGJlIGh1bmciKTsKICAgICAgICAgbG9nKCJUZXJtaW5hdGlu
ZyBzZXJ2aWNlIHdvcmtlci4uLiIpCi0gICAgICAgIGludGVybmFscy50ZXJtaW5hdGVTZXJ2aWNl
V29ya2VyKHdvcmtlcik7CisgICAgICAgIGF3YWl0IGludGVybmFscy50ZXJtaW5hdGVTZXJ2aWNl
V29ya2VyKHdvcmtlcik7CiAgICAgICAgIGxvZygiVGVybWluYXRlZCBzZXJ2aWNlIHdvcmtlci4i
KTsKICAgICAgICAgc3RhdGUgPSAiV2FpdGluZ0Zvck1lc3NhZ2VBZnRlclRlcm1pbmF0aW5nSHVu
Z1NlcnZpY2VXb3JrZXIiCiAgICAgICAgIGhhbmRsZSA9IHNldEludGVydmFsKGZ1bmN0aW9uKCkg
ewo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>394924</attachid>
            <date>2020-03-30 09:05:48 -0700</date>
            <delta_ts>2020-04-02 03:02:12 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-209666-20200330180546.patch</filename>
            <type>text/plain</type>
            <size>41760</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU5MTEwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNGVjOGY2MjRlYmVhZDBh
ODcwZTA4MzRkMTk4MzI1NmI5MWExZTRhNy4uNGMwMDhlMDQxOWQ5ZmQ1NDhhNWYyY2ZlN2RiMzEy
MTdhYTRiNGIwYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ1IEBACisyMDIwLTAzLTMwICB5b3Vl
bm4gZmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBSZW1vdmUgc3luY2hyb25v
dXMgdGVybWluYXRpb24gb2Ygc2VydmljZSB3b3JrZXJzCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDk2NjYKKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICBJbnN0ZWFkIG9mIHN1cHBvcnRpbmcgc3luY2hyb25v
dXMgSVBDIHRvIHRlcm1pbmF0ZSBhIHNlcnZpY2Ugd29ya2VyLCBTV1NlcnZlcldvcmtlciB3aWxs
IGFzeW5jaHJvbm91c2x5IGFzayBmb3IgdGhlIHNlcnZpY2Ugd29ya2VyIHRvIHRlcm1pbmF0ZS4K
KyAgICAgICAgSWYgaXQgaXMgbm90IHRlcm1pbmF0ZWQgYWZ0ZXIgc29tZSB0aW1lLCBTV1NlcnZl
cldvcmtlciB3aWxsIHRoZW4gYXNrIHRvIHRlcm1pbmF0ZSB0aGUgcHJvY2VzcyBydW5uaW5nIHRo
ZSBzZXJ2aWNlIHdvcmtlci4KKyAgICAgICAgVGltZSBpcyBrZXB0IHRvIDEwIHNlY29uZHMuCisK
KyAgICAgICAgV2UgY2FuIHRoZW4gcmVtb3ZlIGFsbCBzeW5jaHJvbm91cyByZWxhdGVkIGNvZGUg
cmVsYXRlZCB0byB0ZXJtaW5hdGlvbi4KKyAgICAgICAgV2UgbWlncmF0ZSB0aGUgdGVybWluYXRl
U2VydmljZVdvcmtlciBpbnRlcm5hbCBBUEkgdG8gYmUgUHJvbWlzZSBiYXNlZC4KKworICAgICAg
ICBDb3ZlcmVkIGJ5IGV4aXN0aW5nIHRlc3RzLgorCisgICAgICAgICogdGVzdGluZy9JbnRlcm5h
bHMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW50ZXJuYWxzOjp0ZXJtaW5hdGVTZXJ2aWNlV29y
a2VyKToKKyAgICAgICAgKiB0ZXN0aW5nL0ludGVybmFscy5oOgorICAgICAgICAqIHRlc3Rpbmcv
SW50ZXJuYWxzLmlkbDoKKyAgICAgICAgKiB3b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlclBy
b3ZpZGVyLmg6CisgICAgICAgICogd29ya2Vycy9zZXJ2aWNlL1NXQ2xpZW50Q29ubmVjdGlvbi5o
OgorICAgICAgICAqIHdvcmtlcnMvc2VydmljZS9Xb3JrZXJTV0NsaWVudENvbm5lY3Rpb24uY3Bw
OgorICAgICAgICAqIHdvcmtlcnMvc2VydmljZS9Xb3JrZXJTV0NsaWVudENvbm5lY3Rpb24uaDoK
KyAgICAgICAgKiB3b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1NXU2VydmVyLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OlNXU2VydmVyOjp+U1dTZXJ2ZXIpOgorICAgICAgICAoV2ViQ29yZTo6U1dTZXJ2
ZXI6OnVucmVnaXN0ZXJTZXJ2aWNlV29ya2VyQ2xpZW50KToKKyAgICAgICAgKiB3b3JrZXJzL3Nl
cnZpY2Uvc2VydmVyL1NXU2VydmVyLmg6CisgICAgICAgICogd29ya2Vycy9zZXJ2aWNlL3NlcnZl
ci9TV1NlcnZlclRvQ29udGV4dENvbm5lY3Rpb24uaDoKKyAgICAgICAgKiB3b3JrZXJzL3NlcnZp
Y2Uvc2VydmVyL1NXU2VydmVyV29ya2VyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Om1fdGVybWlu
YXRpb25UaW1lcik6CisgICAgICAgIChXZWJDb3JlOjpTV1NlcnZlcldvcmtlcjo6flNXU2VydmVy
V29ya2VyKToKKyAgICAgICAgKFdlYkNvcmU6OlNXU2VydmVyV29ya2VyOjp0ZXJtaW5hdGUpOgor
ICAgICAgICAoV2ViQ29yZTo6U1dTZXJ2ZXJXb3JrZXI6OnN0YXJ0VGVybWluYXRpb24pOgorICAg
ICAgICAoV2ViQ29yZTo6U1dTZXJ2ZXJXb3JrZXI6OnRlcm1pbmF0ZUNvbXBsZXRlZCk6CisgICAg
ICAgIChXZWJDb3JlOjpTV1NlcnZlcldvcmtlcjo6Y2FsbFRlcm1pbmF0aW9uQ2FsbGJhY2tzKToK
KyAgICAgICAgKFdlYkNvcmU6OlNXU2VydmVyV29ya2VyOjp0ZXJtaW5hdGlvblRpbWVyRmlyZWQp
OgorICAgICAgICAoV2ViQ29yZTo6U1dTZXJ2ZXJXb3JrZXI6OnNldFN0YXRlKToKKyAgICAgICAg
KFdlYkNvcmU6OlNXU2VydmVyV29ya2VyOjpkaWRGYWlsSGVhcnRCZWF0Q2hlY2spOgorICAgICAg
ICAqIHdvcmtlcnMvc2VydmljZS9zZXJ2ZXIvU1dTZXJ2ZXJXb3JrZXIuaDoKKyAgICAgICAgKFdl
YkNvcmU6OlNXU2VydmVyV29ya2VyOjp0ZXJtaW5hdGUpOgorCiAyMDIwLTAzLTI1ICB5b3Vlbm4g
ZmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KIAogICAgICAgICBCdW1wIGxpYndlYnJ0YyB0byBN
ODIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9D
aGFuZ2VMb2cKaW5kZXggNDliNjU3ZDlhYWJlNzY5ZWEyODU5NDQ1YzVmNWZiZTEwMGQxYzQ1MC4u
ODRlMmM2YjUwNDU2MTMxYzQ0NjY0MzBhYjQ4MzZmY2U3MDU5MDQzMSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwzMCBAQAorMjAyMC0wMy0zMCAgeW91ZW5uIGZhYmxldCAgPHlvdWVubkBhcHBsZS5jb20+
CisKKyAgICAgICAgUmVtb3ZlIHN5bmNocm9ub3VzIHRlcm1pbmF0aW9uIG9mIHNlcnZpY2Ugd29y
a2VycworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA5
NjY2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVXBk
YXRlIElQQyBjb2RlIGFjY29yZGluZyByZW1vdmFsIG9mIHN5bmNocm9ub3VzIHRlcm1pbmF0aW9u
IG9mIHNlcnZpY2Ugd29ya2VyLgorICAgICAgICBJbXBsZW1lbnQgYXN5bmMtd2l0aC1yZXBseSB0
ZXJtaW5hdGlvbiBpbnN0ZWFkLgorCisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvU2VydmljZVdv
cmtlci9XZWJTV1NlcnZlckNvbm5lY3Rpb24uY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJTV1Nl
cnZlckNvbm5lY3Rpb246OnRlcm1pbmF0ZVdvcmtlckZyb21DbGllbnQpOgorICAgICAgICAoV2Vi
S2l0OjpXZWJTV1NlcnZlckNvbm5lY3Rpb246OmZldGNoVGFza1RpbWVkT3V0KToKKyAgICAgICAg
KiBOZXR3b3JrUHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1dlYlNXU2VydmVyQ29ubmVjdGlvbi5oOgor
ICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL1NlcnZpY2VXb3JrZXIvV2ViU1dTZXJ2ZXJDb25uZWN0
aW9uLm1lc3NhZ2VzLmluOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL1NlcnZpY2VXb3JrZXIv
V2ViU1dTZXJ2ZXJUb0NvbnRleHRDb25uZWN0aW9uLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2Vi
U1dTZXJ2ZXJUb0NvbnRleHRDb25uZWN0aW9uOjp0ZXJtaW5hdGVEdWVUb1VucmVzcG9uc2l2ZW5l
c3MpOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL1NlcnZpY2VXb3JrZXIvV2ViU1dTZXJ2ZXJU
b0NvbnRleHRDb25uZWN0aW9uLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNl
cnZpY2VXb3JrZXJQcm92aWRlci5jcHA6CisgICAgICAgICogV2ViUHJvY2Vzcy9TdG9yYWdlL1dl
YlNlcnZpY2VXb3JrZXJQcm92aWRlci5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvU3RvcmFnZS9X
ZWJTV0NsaWVudENvbm5lY3Rpb24uY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJTV0NsaWVudENv
bm5lY3Rpb246OnRlcm1pbmF0ZVdvcmtlckZvclRlc3RpbmcpOgorICAgICAgICAqIFdlYlByb2Nl
c3MvU3RvcmFnZS9XZWJTV0NsaWVudENvbm5lY3Rpb24uaDoKKyAgICAgICAgKiBXZWJQcm9jZXNz
L1N0b3JhZ2UvV2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb24uY3BwOgorICAgICAgICAqIFdl
YlByb2Nlc3MvU3RvcmFnZS9XZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbi5oOgorICAgICAg
ICAqIFdlYlByb2Nlc3MvU3RvcmFnZS9XZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbi5tZXNz
YWdlcy5pbjoKKwogMjAyMC0wMy0yNiAgRGF2aWQgS2lsemVyICA8ZGRraWx6ZXJAYXBwbGUuY29t
PgogCiAgICAgICAgIE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpkb21Db29raWVzRm9y
SG9zdCBzaG91bGQgdmFsaWRhdGUgaXRzIGBob3N0YCBwYXJhbWV0ZXIKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Rlc3Rp
bmcvSW50ZXJuYWxzLmNwcAppbmRleCBhZjI3Yjk5ZjM4N2MxMjhhZmZiNDM2OWFiNGVjM2E5YzBi
ZmZjMjk4Li41ZTQ2ZWI5MTg0YTM0MGVjNzBmZGYzNDdmYTUwZGZlNTE0ZDllNzdkIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuY3BwCkBAIC01MTUzLDEyICs1MTUzLDExIEBAIHZvaWQg
SW50ZXJuYWxzOjpoYXNTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uKGNvbnN0IFN0cmluZyYgY2xp
ZW50VVJMLCBIYXNSZWdpc3RyCiAgICAgfSk7CiB9CiAKLXZvaWQgSW50ZXJuYWxzOjp0ZXJtaW5h
dGVTZXJ2aWNlV29ya2VyKFNlcnZpY2VXb3JrZXImIHdvcmtlcikKK3ZvaWQgSW50ZXJuYWxzOjp0
ZXJtaW5hdGVTZXJ2aWNlV29ya2VyKFNlcnZpY2VXb3JrZXImIHdvcmtlciwgRE9NUHJvbWlzZURl
ZmVycmVkPHZvaWQ+JiYgcHJvbWlzZSkKIHsKLSAgICBpZiAoIWNvbnRleHREb2N1bWVudCgpKQot
ICAgICAgICByZXR1cm47Ci0KLSAgICBTZXJ2aWNlV29ya2VyUHJvdmlkZXI6OnNpbmdsZXRvbigp
LnNlcnZpY2VXb3JrZXJDb25uZWN0aW9uKCkuc3luY1Rlcm1pbmF0ZVdvcmtlcih3b3JrZXIuaWRl
bnRpZmllcigpKTsKKyAgICBTZXJ2aWNlV29ya2VyUHJvdmlkZXI6OnNpbmdsZXRvbigpLnRlcm1p
bmF0ZVdvcmtlckZvclRlc3Rpbmcod29ya2VyLmlkZW50aWZpZXIoKSwgW3Byb21pc2UgPSBXVEZN
b3ZlKHByb21pc2UpXSgpIG11dGFibGUgeworICAgICAgICBwcm9taXNlLnJlc29sdmUoKTsKKyAg
ICB9KTsKIH0KIAogdm9pZCBJbnRlcm5hbHM6OmlzU2VydmljZVdvcmtlclJ1bm5pbmcoU2Vydmlj
ZVdvcmtlciYgd29ya2VyLCBET01Qcm9taXNlRGVmZXJyZWQ8SURMQm9vbGVhbj4mJiBwcm9taXNl
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaCBiL1NvdXJj
ZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmgKaW5kZXggZTIzNTIzNDFkYjhjMTVkNDI5Zjlj
ZWZkMjg5ZGY1MjI3MGU1YWM3Yy4uMTE0Y2NkNjlmMWY3NDM3M2FmYWE4YjRiZjdhOWQ3ZGYxZDZj
YmJjMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5oCkBAIC03ODMsNyArNzgzLDcgQEAg
cHVibGljOgogI2lmIEVOQUJMRShTRVJWSUNFX1dPUktFUikKICAgICB1c2luZyBIYXNSZWdpc3Ry
YXRpb25Qcm9taXNlID0gRE9NUHJvbWlzZURlZmVycmVkPElETEJvb2xlYW4+OwogICAgIHZvaWQg
aGFzU2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbihjb25zdCBTdHJpbmcmIGNsaWVudFVSTCwgSGFz
UmVnaXN0cmF0aW9uUHJvbWlzZSYmKTsKLSAgICB2b2lkIHRlcm1pbmF0ZVNlcnZpY2VXb3JrZXIo
U2VydmljZVdvcmtlciYpOworICAgIHZvaWQgdGVybWluYXRlU2VydmljZVdvcmtlcihTZXJ2aWNl
V29ya2VyJiwgRE9NUHJvbWlzZURlZmVycmVkPHZvaWQ+JiYpOwogICAgIHZvaWQgaXNTZXJ2aWNl
V29ya2VyUnVubmluZyhTZXJ2aWNlV29ya2VyJiwgRE9NUHJvbWlzZURlZmVycmVkPElETEJvb2xl
YW4+JiYpOwogI2VuZGlmCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50
ZXJuYWxzLmlkbCBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmlkbAppbmRleCAx
NjJmYWY0OTQ2ZWFhZGQ5ODBlNTc4OWExOGJiZGVjNTU4M2Y2MzIzLi42OWVkMGYxY2NkZDdlYTE0
Njk3NTIwZDBjZDUzMzg5M2YyY2Q5MjYzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS90ZXN0
aW5nL0ludGVybmFscy5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMu
aWRsCkBAIC03NzAsNyArNzcwLDcgQEAgZW51bSBDb21wb3NpdGluZ1BvbGljeSB7CiAgICAgYm9v
bGVhbiBhdWRpb1Nlc3Npb25BY3RpdmUoKTsKIAogICAgIFtDb25kaXRpb25hbD1TRVJWSUNFX1dP
UktFUl0gUHJvbWlzZTxib29sZWFuPiBoYXNTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uKERPTVN0
cmluZyBzY29wZVVSTCk7Ci0gICAgW0NvbmRpdGlvbmFsPVNFUlZJQ0VfV09SS0VSXSB2b2lkIHRl
cm1pbmF0ZVNlcnZpY2VXb3JrZXIoU2VydmljZVdvcmtlciB3b3JrZXIpOworICAgIFtDb25kaXRp
b25hbD1TRVJWSUNFX1dPUktFUl0gUHJvbWlzZTx2b2lkPiB0ZXJtaW5hdGVTZXJ2aWNlV29ya2Vy
KFNlcnZpY2VXb3JrZXIgd29ya2VyKTsKICAgICBbQ29uZGl0aW9uYWw9U0VSVklDRV9XT1JLRVJd
IFByb21pc2U8Ym9vbGVhbj4gaXNTZXJ2aWNlV29ya2VyUnVubmluZyhTZXJ2aWNlV29ya2VyIHdv
cmtlcik7CiAKICAgICBbQ2FsbFdpdGg9RG9jdW1lbnQsIENvbmRpdGlvbmFsPUFQUExFX1BBWV0g
cmVhZG9ubHkgYXR0cmlidXRlIE1vY2tQYXltZW50Q29vcmRpbmF0b3IgbW9ja1BheW1lbnRDb29y
ZGluYXRvcjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9TV0Ns
aWVudENvbm5lY3Rpb24uaCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9TV0NsaWVu
dENvbm5lY3Rpb24uaAppbmRleCBiMmJjNDRkMThkNTQ0MDAwMzljNjE4ZmUzMDA4NjRkNmFmNGJj
YWU3Li45YjM5NGMxMThjNjI1MDM2MWU3NDcyZmVkNTE5NzIzNmJmZWI1NGVhIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvU1dDbGllbnRDb25uZWN0aW9uLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL1NXQ2xpZW50Q29ubmVjdGlvbi5oCkBA
IC03OSw3ICs3OSw2IEBAIHB1YmxpYzoKIAogICAgIHZpcnR1YWwgU1dTZXJ2ZXJDb25uZWN0aW9u
SWRlbnRpZmllciBzZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllcigpIGNvbnN0ID0gMDsKICAgICB2
aXJ0dWFsIGJvb2wgbWF5SGF2ZVNlcnZpY2VXb3JrZXJSZWdpc3RlcmVkRm9yT3JpZ2luKGNvbnN0
IFNlY3VyaXR5T3JpZ2luRGF0YSYpIGNvbnN0ID0gMDsKLSAgICB2aXJ0dWFsIHZvaWQgc3luY1Rl
cm1pbmF0ZVdvcmtlcihTZXJ2aWNlV29ya2VySWRlbnRpZmllcikgPSAwOwogCiAgICAgdmlydHVh
bCB2b2lkIHJlZ2lzdGVyU2VydmljZVdvcmtlckNsaWVudChjb25zdCBTZWN1cml0eU9yaWdpbiYg
dG9wT3JpZ2luLCBjb25zdCBTZXJ2aWNlV29ya2VyQ2xpZW50RGF0YSYsIGNvbnN0IE9wdGlvbmFs
PFNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25JZGVudGlmaWVyPiYsIGNvbnN0IFN0cmluZyYgdXNl
ckFnZW50KSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIHVucmVnaXN0ZXJTZXJ2aWNlV29ya2VyQ2xp
ZW50KERvY3VtZW50SWRlbnRpZmllcikgPSAwOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
d29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXJQcm92aWRlci5oIGIvU291cmNlL1dlYkNvcmUv
d29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXJQcm92aWRlci5oCmluZGV4IGUyOTY3YmUwYmIw
YzMzMzA5NzgzMDI1MmE2NzI5NTdiNjQ1ODEyYTIuLjBhZGZlOTRlNWJjMGEzZWI1NDQwODM4NGM0
YTJjZWI1ZTMwZTE1YzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2Vydmlj
ZS9TZXJ2aWNlV29ya2VyUHJvdmlkZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3Nl
cnZpY2UvU2VydmljZVdvcmtlclByb3ZpZGVyLmgKQEAgLTQxLDYgKzQxLDcgQEAgcHVibGljOgog
ICAgIHN0YXRpYyB2b2lkIHNldFNoYXJlZFByb3ZpZGVyKFNlcnZpY2VXb3JrZXJQcm92aWRlciYp
OwogCiAgICAgdmlydHVhbCBTV0NsaWVudENvbm5lY3Rpb24mIHNlcnZpY2VXb3JrZXJDb25uZWN0
aW9uKCkgPSAwOworICAgIHZpcnR1YWwgdm9pZCB0ZXJtaW5hdGVXb3JrZXJGb3JUZXN0aW5nKFNl
cnZpY2VXb3JrZXJJZGVudGlmaWVyLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpID0gMDsK
IAogICAgIHZvaWQgc2V0TWF5SGF2ZVJlZ2lzdGVyZWRTZXJ2aWNlV29ya2VycygpIHsgbV9tYXlI
YXZlUmVnaXN0ZXJlZFNlcnZpY2VXb3JrZXJzID0gdHJ1ZTsgfQogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvV29ya2VyU1dDbGllbnRDb25uZWN0aW9uLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9Xb3JrZXJTV0NsaWVudENvbm5lY3Rpb24u
Y3BwCmluZGV4IDc1ODI1NzVkZGYzNmQ1ZTRmZjZhYjIxZDY3OGYxZmI1NzEyMWQxZWQuLjdjNjMw
OWFkMGY3ZTk5ZWJiMTQ2MjNiZjBhM2Y5ZDk4OWVmZTU5ZGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3dvcmtlcnMvc2VydmljZS9Xb3JrZXJTV0NsaWVudENvbm5lY3Rpb24uY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9Xb3JrZXJTV0NsaWVudENvbm5lY3Rpb24u
Y3BwCkBAIC0xNTUsMTQgKzE1NSw2IEBAIGJvb2wgV29ya2VyU1dDbGllbnRDb25uZWN0aW9uOjpt
YXlIYXZlU2VydmljZVdvcmtlclJlZ2lzdGVyZWRGb3JPcmlnaW4oY29uc3QgU2VjCiAgICAgcmV0
dXJuIHRydWU7CiB9CiAKLXZvaWQgV29ya2VyU1dDbGllbnRDb25uZWN0aW9uOjpzeW5jVGVybWlu
YXRlV29ya2VyKFNlcnZpY2VXb3JrZXJJZGVudGlmaWVyIGlkZW50aWZpZXIpCi17Ci0gICAgY2Fs
bE9uTWFpblRocmVhZChbaWRlbnRpZmllcl0oKSBtdXRhYmxlIHsKLSAgICAgICAgYXV0byYgY29u
bmVjdGlvbiA9IFNlcnZpY2VXb3JrZXJQcm92aWRlcjo6c2luZ2xldG9uKCkuc2VydmljZVdvcmtl
ckNvbm5lY3Rpb24oKTsKLSAgICAgICAgY29ubmVjdGlvbi5zeW5jVGVybWluYXRlV29ya2VyKGlk
ZW50aWZpZXIpOwotICAgIH0pOwotfQotCiB2b2lkIFdvcmtlclNXQ2xpZW50Q29ubmVjdGlvbjo6
cmVnaXN0ZXJTZXJ2aWNlV29ya2VyQ2xpZW50KGNvbnN0IFNlY3VyaXR5T3JpZ2luJiB0b3BPcmln
aW4sIGNvbnN0IFNlcnZpY2VXb3JrZXJDbGllbnREYXRhJiBkYXRhLCBjb25zdCBPcHRpb25hbDxT
ZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uSWRlbnRpZmllcj4mIGlkZW50aWZpZXIsIGNvbnN0IFN0
cmluZyYgdXNlckFnZW50KQogewogICAgIGNhbGxPbk1haW5UaHJlYWQoW3RvcE9yaWdpbiA9IHRv
cE9yaWdpbi5pc29sYXRlZENvcHkoKSwgZGF0YSA9IGNyb3NzVGhyZWFkQ29weShkYXRhKSwgaWRl
bnRpZmllciwgdXNlckFnZW50ID0gY3Jvc3NUaHJlYWRDb3B5KHVzZXJBZ2VudCldIHsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9Xb3JrZXJTV0NsaWVudENvbm5l
Y3Rpb24uaCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9Xb3JrZXJTV0NsaWVudENv
bm5lY3Rpb24uaAppbmRleCA1MThlYTJmNGI2NGVhNWJhMTIzMGQxOGFmYjY3YThjNjU3M2Q3MjZk
Li5iNDE3OTEzMjA2OGE4MTBhNDk1NGIzMmEzMDMyMGY0Yjc2MmU4MDc5IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvV29ya2VyU1dDbGllbnRDb25uZWN0aW9uLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL1dvcmtlclNXQ2xpZW50Q29ubmVj
dGlvbi5oCkBAIC01MSw3ICs1MSw2IEBAIHByaXZhdGU6CiAgICAgdm9pZCBwb3N0TWVzc2FnZVRv
U2VydmljZVdvcmtlcihTZXJ2aWNlV29ya2VySWRlbnRpZmllciBkZXN0aW5hdGlvbiwgTWVzc2Fn
ZVdpdGhNZXNzYWdlUG9ydHMmJiwgY29uc3QgU2VydmljZVdvcmtlck9yQ2xpZW50SWRlbnRpZmll
ciYgc291cmNlKSBmaW5hbDsKICAgICBTV1NlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyIHNlcnZl
ckNvbm5lY3Rpb25JZGVudGlmaWVyKCkgY29uc3QgZmluYWw7CiAgICAgYm9vbCBtYXlIYXZlU2Vy
dmljZVdvcmtlclJlZ2lzdGVyZWRGb3JPcmlnaW4oY29uc3QgU2VjdXJpdHlPcmlnaW5EYXRhJikg
Y29uc3QgZmluYWw7Ci0gICAgdm9pZCBzeW5jVGVybWluYXRlV29ya2VyKFNlcnZpY2VXb3JrZXJJ
ZGVudGlmaWVyKSBmaW5hbDsKICAgICB2b2lkIHJlZ2lzdGVyU2VydmljZVdvcmtlckNsaWVudChj
b25zdCBTZWN1cml0eU9yaWdpbiYgdG9wT3JpZ2luLCBjb25zdCBTZXJ2aWNlV29ya2VyQ2xpZW50
RGF0YSYsIGNvbnN0IE9wdGlvbmFsPFNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25JZGVudGlmaWVy
PiYsIGNvbnN0IFN0cmluZyYgdXNlckFnZW50KSBmaW5hbDsKICAgICB2b2lkIHVucmVnaXN0ZXJT
ZXJ2aWNlV29ya2VyQ2xpZW50KERvY3VtZW50SWRlbnRpZmllcikgZmluYWw7CiAgICAgdm9pZCBm
aW5pc2hGZXRjaGluZ1NjcmlwdEluU2VydmVyKGNvbnN0IFNlcnZpY2VXb3JrZXJGZXRjaFJlc3Vs
dCYpIGZpbmFsOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL3Nl
cnZlci9TV1NlcnZlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2Uvc2VydmVy
L1NXU2VydmVyLmNwcAppbmRleCBhODE1MWNjZDE1NDQxYmViM2U2ZmFlMmI1MDExZjQ5ODU5MDg0
MmRhLi5lNmRmNTFhMWMxZTJmNzdhNTBiYThjNmI0ZGJjZjE5NGFiYzZhMmQ1IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1NXU2VydmVyLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1NXU2VydmVyLmNwcApAQCAt
NDksOCArNDksNiBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLXN0YXRpYyBTZWNvbmRzIHRl
cm1pbmF0aW9uRGVsYXkgeyAxMF9zIH07Ci0KIFNXU2VydmVyOjpDb25uZWN0aW9uOjpDb25uZWN0
aW9uKFNXU2VydmVyJiBzZXJ2ZXIsIElkZW50aWZpZXIgaWRlbnRpZmllcikKICAgICA6IG1fc2Vy
dmVyKHNlcnZlcikKICAgICAsIG1faWRlbnRpZmllcihpZGVudGlmaWVyKQpAQCAtNzksNyArNzcs
NyBAQCBTV1NlcnZlcjo6flNXU2VydmVyKCkKICAgICAgICAgICAgIHJ1bm5pbmdXb3JrZXJzLmFw
cGVuZCh3b3JrZXIucHRyKCkpOwogICAgIH0KICAgICBmb3IgKGF1dG8mIHJ1bm5pbmdXb3JrZXIg
OiBydW5uaW5nV29ya2VycykKLSAgICAgICAgdGVybWluYXRlV29ya2VyKCpydW5uaW5nV29ya2Vy
KTsKKyAgICAgICAgcnVubmluZ1dvcmtlci0+dGVybWluYXRlKCk7CiAKICAgICBhbGxTZXJ2ZXJz
KCkucmVtb3ZlKHRoaXMpOwogfQpAQCAtMzA3LDEyICszMDUsNiBAQCB2b2lkIFNXU2VydmVyOjpD
b25uZWN0aW9uOjpyZW1vdmVTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uSW5TZXJ2ZXIoU2Vydmlj
ZVdvcmtlcgogICAgIG1fc2VydmVyLnJlbW92ZUNsaWVudFNlcnZpY2VXb3JrZXJSZWdpc3RyYXRp
b24oKnRoaXMsIGlkZW50aWZpZXIpOwogfQogCi12b2lkIFNXU2VydmVyOjpDb25uZWN0aW9uOjpz
eW5jVGVybWluYXRlV29ya2VyKFNlcnZpY2VXb3JrZXJJZGVudGlmaWVyIGlkZW50aWZpZXIpCi17
Ci0gICAgaWYgKGF1dG8qIHdvcmtlciA9IG1fc2VydmVyLndvcmtlckJ5SUQoaWRlbnRpZmllcikp
Ci0gICAgICAgIG1fc2VydmVyLnN5bmNUZXJtaW5hdGVXb3JrZXIoKndvcmtlcik7Ci19Ci0KIFNX
U2VydmVyOjpTV1NlcnZlcihVbmlxdWVSZWY8U1dPcmlnaW5TdG9yZT4mJiBvcmlnaW5TdG9yZSwg
Ym9vbCBwcm9jZXNzVGVybWluYXRpb25EZWxheUVuYWJsZWQsIFN0cmluZyYmIHJlZ2lzdHJhdGlv
bkRhdGFiYXNlRGlyZWN0b3J5LCBQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIFNvZnRVcGRhdGVD
YWxsYmFjayYmIHNvZnRVcGRhdGVDYWxsYmFjaywgQ3JlYXRlQ29udGV4dENvbm5lY3Rpb25DYWxs
YmFjayYmIGNhbGxiYWNrKQogICAgIDogbV9vcmlnaW5TdG9yZShXVEZNb3ZlKG9yaWdpblN0b3Jl
KSkKICAgICAsIG1fc2Vzc2lvbklEKHNlc3Npb25JRCkKQEAgLTczMyw0MyArNzI1LDYgQEAgYm9v
bCBTV1NlcnZlcjo6cnVuU2VydmljZVdvcmtlcihTZXJ2aWNlV29ya2VySWRlbnRpZmllciBpZGVu
dGlmaWVyKQogICAgIHJldHVybiB0cnVlOwogfQogCi12b2lkIFNXU2VydmVyOjp0ZXJtaW5hdGVX
b3JrZXIoU1dTZXJ2ZXJXb3JrZXImIHdvcmtlcikKLXsKLSAgICB0ZXJtaW5hdGVXb3JrZXJJbnRl
cm5hbCh3b3JrZXIsIEFzeW5jaHJvbm91cyk7Ci19Ci0KLXZvaWQgU1dTZXJ2ZXI6OnN5bmNUZXJt
aW5hdGVXb3JrZXIoU1dTZXJ2ZXJXb3JrZXImIHdvcmtlcikKLXsKLSAgICB0ZXJtaW5hdGVXb3Jr
ZXJJbnRlcm5hbCh3b3JrZXIsIFN5bmNocm9ub3VzKTsKLX0KLQotdm9pZCBTV1NlcnZlcjo6dGVy
bWluYXRlV29ya2VySW50ZXJuYWwoU1dTZXJ2ZXJXb3JrZXImIHdvcmtlciwgVGVybWluYXRpb25N
b2RlIG1vZGUpCi17Ci0gICAgQVNTRVJUKG1fcnVubmluZ09yVGVybWluYXRpbmdXb3JrZXJzLmdl
dCh3b3JrZXIuaWRlbnRpZmllcigpKSA9PSAmd29ya2VyKTsKLSAgICBBU1NFUlQod29ya2VyLmlz
UnVubmluZygpKTsKLQotICAgIFJFTEVBU0VfTE9HKFNlcnZpY2VXb3JrZXIsICIlcCAtIFNXU2Vy
dmVyOjp0ZXJtaW5hdGVXb3JrZXJJbnRlcm5hbDogVGVybWluYXRpbmcgc2VydmljZSB3b3JrZXIg
JWxsdSIsIHRoaXMsIHdvcmtlci5pZGVudGlmaWVyKCkudG9VSW50NjQoKSk7Ci0KLSAgICB3b3Jr
ZXIuc2V0U3RhdGUoU1dTZXJ2ZXJXb3JrZXI6OlN0YXRlOjpUZXJtaW5hdGluZyk7Ci0KLSAgICBh
dXRvKiBjb250ZXh0Q29ubmVjdGlvbiA9IHdvcmtlci5jb250ZXh0Q29ubmVjdGlvbigpOwotICAg
IEFTU0VSVChjb250ZXh0Q29ubmVjdGlvbik7Ci0gICAgaWYgKCFjb250ZXh0Q29ubmVjdGlvbikg
ewotICAgICAgICBMT0dfRVJST1IoIlJlcXVlc3QgdG8gdGVybWluYXRlIGEgd29ya2VyIHdob3Nl
IGNvbnRleHQgY29ubmVjdGlvbiBkb2VzIG5vdCBleGlzdCIpOwotICAgICAgICB3b3JrZXJDb250
ZXh0VGVybWluYXRlZCh3b3JrZXIpOwotICAgICAgICByZXR1cm47Ci0gICAgfQotCi0gICAgc3dp
dGNoIChtb2RlKSB7Ci0gICAgY2FzZSBBc3luY2hyb25vdXM6Ci0gICAgICAgIGNvbnRleHRDb25u
ZWN0aW9uLT50ZXJtaW5hdGVXb3JrZXIod29ya2VyLmlkZW50aWZpZXIoKSk7Ci0gICAgICAgIGJy
ZWFrOwotICAgIGNhc2UgU3luY2hyb25vdXM6Ci0gICAgICAgIGNvbnRleHRDb25uZWN0aW9uLT5z
eW5jVGVybWluYXRlV29ya2VyKHdvcmtlci5pZGVudGlmaWVyKCkpOwotICAgICAgICBicmVhazsK
LSAgICB9OwotfQotCiB2b2lkIFNXU2VydmVyOjptYXJrQWxsV29ya2Vyc0ZvclJlZ2lzdHJhYmxl
RG9tYWluQXNUZXJtaW5hdGVkKGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJiByZWdpc3RyYWJsZURv
bWFpbikKIHsKICAgICBWZWN0b3I8U1dTZXJ2ZXJXb3JrZXIqPiB0ZXJtaW5hdGVkV29ya2VyczsK
QEAgLTkxNyw3ICs4NzIsNyBAQCB2b2lkIFNXU2VydmVyOjp1bnJlZ2lzdGVyU2VydmljZVdvcmtl
ckNsaWVudChjb25zdCBDbGllbnRPcmlnaW4mIGNsaWVudE9yaWdpbiwgUwogICAgICAgICAgICAg
ICAgICAgICB3b3JrZXJzVG9UZXJtaW5hdGUuYXBwZW5kKHdvcmtlci5wdHIoKSk7CiAgICAgICAg
ICAgICB9CiAgICAgICAgICAgICBmb3IgKGF1dG8qIHdvcmtlciA6IHdvcmtlcnNUb1Rlcm1pbmF0
ZSkKLSAgICAgICAgICAgICAgICB0ZXJtaW5hdGVXb3JrZXIoKndvcmtlcik7CisgICAgICAgICAg
ICAgICAgd29ya2VyLT50ZXJtaW5hdGUoKTsKIAogICAgICAgICAgICAgaWYgKCFtX2NsaWVudHNC
eVJlZ2lzdHJhYmxlRG9tYWluLmNvbnRhaW5zKGNsaWVudFJlZ2lzdHJhYmxlRG9tYWluKSkgewog
ICAgICAgICAgICAgICAgIGlmIChhdXRvKiBjb25uZWN0aW9uID0gY29udGV4dENvbm5lY3Rpb25G
b3JSZWdpc3RyYWJsZURvbWFpbihjbGllbnRSZWdpc3RyYWJsZURvbWFpbikpIHsKQEAgLTkyOCw3
ICs4ODMsNyBAQCB2b2lkIFNXU2VydmVyOjp1bnJlZ2lzdGVyU2VydmljZVdvcmtlckNsaWVudChj
b25zdCBDbGllbnRPcmlnaW4mIGNsaWVudE9yaWdpbiwgUwogCiAgICAgICAgICAgICBtX2NsaWVu
dElkZW50aWZpZXJzUGVyT3JpZ2luLnJlbW92ZShjbGllbnRPcmlnaW4pOwogICAgICAgICB9KTsK
LSAgICAgICAgaXRlcmF0b3ItPnZhbHVlLnRlcm1pbmF0ZVNlcnZpY2VXb3JrZXJzVGltZXItPnN0
YXJ0T25lU2hvdChtX2lzUHJvY2Vzc1Rlcm1pbmF0aW9uRGVsYXlFbmFibGVkICYmICFNZW1vcnlQ
cmVzc3VyZUhhbmRsZXI6OnNpbmdsZXRvbigpLmlzVW5kZXJNZW1vcnlQcmVzc3VyZSgpID8gdGVy
bWluYXRpb25EZWxheSA6IDBfcyk7CisgICAgICAgIGl0ZXJhdG9yLT52YWx1ZS50ZXJtaW5hdGVT
ZXJ2aWNlV29ya2Vyc1RpbWVyLT5zdGFydE9uZVNob3QobV9pc1Byb2Nlc3NUZXJtaW5hdGlvbkRl
bGF5RW5hYmxlZCAmJiAhTWVtb3J5UHJlc3N1cmVIYW5kbGVyOjpzaW5nbGV0b24oKS5pc1VuZGVy
TWVtb3J5UHJlc3N1cmUoKSA/IGRlZmF1bHRUZXJtaW5hdGlvbkRlbGF5IDogMF9zKTsKICAgICB9
CiAKICAgICBhdXRvIGNsaWVudHNCeVJlZ2lzdHJhYmxlRG9tYWluSXRlcmF0b3IgPSBtX2NsaWVu
dHNCeVJlZ2lzdHJhYmxlRG9tYWluLmZpbmQoY2xpZW50UmVnaXN0cmFibGVEb21haW4pOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL3NlcnZlci9TV1NlcnZlci5o
IGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL3NlcnZlci9TV1NlcnZlci5oCmluZGV4
IGFlZjE5ODMwNTcxMmMyM2M0M2JmMzMwMGRjNTIzMzU0OGI3OTI4MjkuLjI4NzkyODNlYWUwYWY4
M2U5NTZjOTk4ZTM1ZjA0OTQzZWU3MzVjNjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dv
cmtlcnMvc2VydmljZS9zZXJ2ZXIvU1dTZXJ2ZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3Jr
ZXJzL3NlcnZpY2Uvc2VydmVyL1NXU2VydmVyLmgKQEAgLTEwMiw3ICsxMDIsNiBAQCBwdWJsaWM6
CiAgICAgICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgZmluaXNoRmV0Y2hpbmdTY3JpcHRJblNlcnZl
cihjb25zdCBTZXJ2aWNlV29ya2VyRmV0Y2hSZXN1bHQmKTsKICAgICAgICAgV0VCQ09SRV9FWFBP
UlQgdm9pZCBhZGRTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uSW5TZXJ2ZXIoU2VydmljZVdvcmtl
clJlZ2lzdHJhdGlvbklkZW50aWZpZXIpOwogICAgICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHJl
bW92ZVNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25JblNlcnZlcihTZXJ2aWNlV29ya2VyUmVnaXN0
cmF0aW9uSWRlbnRpZmllcik7Ci0gICAgICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc3luY1Rlcm1p
bmF0ZVdvcmtlcihTZXJ2aWNlV29ya2VySWRlbnRpZmllcik7CiAgICAgICAgIFdFQkNPUkVfRVhQ
T1JUIHZvaWQgd2hlblJlZ2lzdHJhdGlvblJlYWR5KHVpbnQ2NF90IHJlZ2lzdHJhdGlvblJlYWR5
UmVxdWVzdElkZW50aWZpZXIsIGNvbnN0IFNlY3VyaXR5T3JpZ2luRGF0YSYgdG9wT3JpZ2luLCBj
b25zdCBVUkwmIGNsaWVudFVSTCk7CiAKICAgICAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBzdG9y
ZVJlZ2lzdHJhdGlvbnNPbkRpc2soQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsKQEAgLTE1
Miw4ICsxNTEsNiBAQCBwdWJsaWM6CiAgICAgdm9pZCBzdGFydFNjcmlwdEZldGNoKGNvbnN0IFNl
cnZpY2VXb3JrZXJKb2JEYXRhJiwgYm9vbCBzaG91bGRSZWZyZXNoQ2FjaGUpOwogCiAgICAgdm9p
ZCB1cGRhdGVXb3JrZXIoY29uc3QgU2VydmljZVdvcmtlckpvYkRhdGFJZGVudGlmaWVyJiwgU1dT
ZXJ2ZXJSZWdpc3RyYXRpb24mLCBjb25zdCBVUkwmLCBjb25zdCBTdHJpbmcmIHNjcmlwdCwgY29u
c3QgQ29udGVudFNlY3VyaXR5UG9saWN5UmVzcG9uc2VIZWFkZXJzJiwgY29uc3QgU3RyaW5nJiBy
ZWZlcnJlclBvbGljeSwgV29ya2VyVHlwZSwgSGFzaE1hcDxVUkwsIFNlcnZpY2VXb3JrZXJDb250
ZXh0RGF0YTo6SW1wb3J0ZWRTY3JpcHQ+JiYpOwotICAgIHZvaWQgdGVybWluYXRlV29ya2VyKFNX
U2VydmVyV29ya2VyJik7Ci0gICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBzeW5jVGVybWluYXRlV29y
a2VyKFNXU2VydmVyV29ya2VyJik7CiAgICAgdm9pZCBmaXJlSW5zdGFsbEV2ZW50KFNXU2VydmVy
V29ya2VyJik7CiAgICAgdm9pZCBmaXJlQWN0aXZhdGVFdmVudChTV1NlcnZlcldvcmtlciYpOwog
CkBAIC0yMTUsNiArMjEyLDggQEAgcHVibGljOgogCiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBo
YW5kbGVMb3dNZW1vcnlXYXJuaW5nKCk7CiAKKyAgICBzdGF0aWMgY29uc3RleHByIFNlY29uZHMg
ZGVmYXVsdFRlcm1pbmF0aW9uRGVsYXkgPSAxMF9zOworCiBwcml2YXRlOgogICAgIHZvaWQgc2Ny
aXB0RmV0Y2hGaW5pc2hlZChjb25zdCBTZXJ2aWNlV29ya2VyRmV0Y2hSZXN1bHQmKTsKIApAQCAt
MjM2LDEyICsyMzUsNiBAQCBwcml2YXRlOgogCiAgICAgdm9pZCBwZXJmb3JtR2V0T3JpZ2luc1dp
dGhSZWdpc3RyYXRpb25zQ2FsbGJhY2tzKCk7CiAKLSAgICBlbnVtIFRlcm1pbmF0aW9uTW9kZSB7
Ci0gICAgICAgIFN5bmNocm9ub3VzLAotICAgICAgICBBc3luY2hyb25vdXMsCi0gICAgfTsKLSAg
ICB2b2lkIHRlcm1pbmF0ZVdvcmtlckludGVybmFsKFNXU2VydmVyV29ya2VyJiwgVGVybWluYXRp
b25Nb2RlKTsKLQogICAgIHZvaWQgY29udGV4dENvbm5lY3Rpb25DcmVhdGVkKFNXU2VydmVyVG9D
b250ZXh0Q29ubmVjdGlvbiYpOwogCiAgICAgSGFzaE1hcDxTV1NlcnZlckNvbm5lY3Rpb25JZGVu
dGlmaWVyLCBzdGQ6OnVuaXF1ZV9wdHI8Q29ubmVjdGlvbj4+IG1fY29ubmVjdGlvbnM7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1NXU2VydmVyVG9D
b250ZXh0Q29ubmVjdGlvbi5oIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL3NlcnZl
ci9TV1NlcnZlclRvQ29udGV4dENvbm5lY3Rpb24uaAppbmRleCAwNTg4NGM4YmI5MWViNDQ1NTQz
ZDBmMjllMWE2OWYyMjhjYTE3NmQ5Li40NjU5ZjlmOWZhNmM2YmFhOGRlOTY4ZDM5MTVmZTMzYzRl
MzEyNjY4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2Uvc2VydmVy
L1NXU2VydmVyVG9Db250ZXh0Q29ubmVjdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtl
cnMvc2VydmljZS9zZXJ2ZXIvU1dTZXJ2ZXJUb0NvbnRleHRDb25uZWN0aW9uLmgKQEAgLTU0LDcg
KzU0LDYgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBmaXJlSW5zdGFsbEV2ZW50KFNlcnZp
Y2VXb3JrZXJJZGVudGlmaWVyKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIGZpcmVBY3RpdmF0ZUV2
ZW50KFNlcnZpY2VXb3JrZXJJZGVudGlmaWVyKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIHRlcm1p
bmF0ZVdvcmtlcihTZXJ2aWNlV29ya2VySWRlbnRpZmllcikgPSAwOwotICAgIHZpcnR1YWwgdm9p
ZCBzeW5jVGVybWluYXRlV29ya2VyKFNlcnZpY2VXb3JrZXJJZGVudGlmaWVyKSA9IDA7CiAgICAg
dmlydHVhbCB2b2lkIGZpbmRDbGllbnRCeUlkZW50aWZpZXJDb21wbGV0ZWQodWludDY0X3QgcmVx
dWVzdElkZW50aWZpZXIsIGNvbnN0IE9wdGlvbmFsPFNlcnZpY2VXb3JrZXJDbGllbnREYXRhPiYs
IGJvb2wgaGFzU2VjdXJpdHlFcnJvcikgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBtYXRjaEFsbENv
bXBsZXRlZCh1aW50NjRfdCByZXF1ZXN0SWRlbnRpZmllciwgY29uc3QgVmVjdG9yPFNlcnZpY2VX
b3JrZXJDbGllbnREYXRhPiYpID0gMDsKIApAQCAtNzUsNiArNzQsNyBAQCBwdWJsaWM6CiAgICAg
Y29uc3QgUmVnaXN0cmFibGVEb21haW4mIHJlZ2lzdHJhYmxlRG9tYWluKCkgY29uc3QgeyByZXR1
cm4gbV9yZWdpc3RyYWJsZURvbWFpbjsgfQogCiAgICAgdmlydHVhbCB2b2lkIGNvbm5lY3Rpb25J
c05vTG9uZ2VyTmVlZGVkKCkgPSAwOworICAgIHZpcnR1YWwgdm9pZCB0ZXJtaW5hdGVEdWVUb1Vu
cmVzcG9uc2l2ZW5lc3MoKSA9IDA7CiAKIHByb3RlY3RlZDoKICAgICBXRUJDT1JFX0VYUE9SVCBl
eHBsaWNpdCBTV1NlcnZlclRvQ29udGV4dENvbm5lY3Rpb24oUmVnaXN0cmFibGVEb21haW4mJik7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1NXU2Vy
dmVyV29ya2VyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9zZXJ2ZXIvU1dT
ZXJ2ZXJXb3JrZXIuY3BwCmluZGV4IDQwMGFhNDdmNGZjMTRhMzc2ZWY0ZDljYzkyYjJmZTdjZmM3
NGYyZTguLmJlYmQyMWZlOTFiYjNmMWYzNTY5ZDY3MDFlYzNiZWU3Mzk5Y2U3MDAgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9zZXJ2ZXIvU1dTZXJ2ZXJXb3JrZXIu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9zZXJ2ZXIvU1dTZXJ2ZXJX
b3JrZXIuY3BwCkBAIC01OCw2ICs1OCw3IEBAIFNXU2VydmVyV29ya2VyOjpTV1NlcnZlcldvcmtl
cihTV1NlcnZlciYgc2VydmVyLCBTV1NlcnZlclJlZ2lzdHJhdGlvbiYgcmVnaXN0cmF0CiAgICAg
LCBtX3JlZmVycmVyUG9saWN5KFdURk1vdmUocmVmZXJyZXJQb2xpY3kpKQogICAgICwgbV9yZWdp
c3RyYWJsZURvbWFpbihtX2RhdGEuc2NyaXB0VVJMKQogICAgICwgbV9zY3JpcHRSZXNvdXJjZU1h
cChXVEZNb3ZlKHNjcmlwdFJlc291cmNlTWFwKSkKKyAgICAsIG1fdGVybWluYXRpb25UaW1lcigq
dGhpcywgJlNXU2VydmVyV29ya2VyOjp0ZXJtaW5hdGlvblRpbWVyRmlyZWQpCiB7CiAgICAgbV9k
YXRhLnNjcmlwdFVSTC5yZW1vdmVGcmFnbWVudElkZW50aWZpZXIoKTsKIApAQCAtNzQsNiArNzUs
OCBAQCBTV1NlcnZlcldvcmtlcjo6flNXU2VydmVyV29ya2VyKCkKIAogICAgIGF1dG8gdGFrZW4g
PSBhbGxXb3JrZXJzKCkudGFrZShpZGVudGlmaWVyKCkpOwogICAgIEFTU0VSVF9VTlVTRUQodGFr
ZW4sIHRha2VuID09IHRoaXMpOworCisgICAgY2FsbFRlcm1pbmF0aW9uQ2FsbGJhY2tzKCk7CiB9
CiAKIFNlcnZpY2VXb3JrZXJDb250ZXh0RGF0YSBTV1NlcnZlcldvcmtlcjo6Y29udGV4dERhdGEo
KSBjb25zdApAQCAtODMsMTAgKzg2LDYwIEBAIFNlcnZpY2VXb3JrZXJDb250ZXh0RGF0YSBTV1Nl
cnZlcldvcmtlcjo6Y29udGV4dERhdGEoKSBjb25zdAogICAgIHJldHVybiB7IFdURjo6bnVsbG9w
dCwgbV9yZWdpc3RyYXRpb24tPmRhdGEoKSwgbV9kYXRhLmlkZW50aWZpZXIsIG1fc2NyaXB0LCBt
X2NvbnRlbnRTZWN1cml0eVBvbGljeSwgbV9yZWZlcnJlclBvbGljeSwgbV9kYXRhLnNjcmlwdFVS
TCwgbV9kYXRhLnR5cGUsIGZhbHNlLCBtX3NjcmlwdFJlc291cmNlTWFwIH07CiB9CiAKLXZvaWQg
U1dTZXJ2ZXJXb3JrZXI6OnRlcm1pbmF0ZSgpCit2b2lkIFNXU2VydmVyV29ya2VyOjp0ZXJtaW5h
dGUoQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmIGNhbGxiYWNrKQoreworICAgIGlmICghbV9z
ZXJ2ZXIpCisgICAgICAgIHJldHVybiBjYWxsYmFjaygpOworCisgICAgc3dpdGNoIChtX3N0YXRl
KSB7CisgICAgY2FzZSBTdGF0ZTo6UnVubmluZzoKKyAgICAgICAgc3RhcnRUZXJtaW5hdGlvbihX
VEZNb3ZlKGNhbGxiYWNrKSk7CisgICAgICAgIHJldHVybjsKKyAgICBjYXNlIFN0YXRlOjpUZXJt
aW5hdGluZzoKKyAgICAgICAgbV90ZXJtaW5hdGlvbkNhbGxiYWNrcy5hcHBlbmQoV1RGTW92ZShj
YWxsYmFjaykpOworICAgICAgICByZXR1cm47CisgICAgY2FzZSBTdGF0ZTo6Tm90UnVubmluZzoK
KyAgICAgICAgcmV0dXJuIGNhbGxiYWNrKCk7CisgICAgfQorfQorCit2b2lkIFNXU2VydmVyV29y
a2VyOjpzdGFydFRlcm1pbmF0aW9uKENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJiBjYWxsYmFj
aykKK3sKKyAgICBhdXRvKiBjb250ZXh0Q29ubmVjdGlvbiA9IHRoaXMtPmNvbnRleHRDb25uZWN0
aW9uKCk7CisgICAgQVNTRVJUKGNvbnRleHRDb25uZWN0aW9uKTsKKyAgICBpZiAoIWNvbnRleHRD
b25uZWN0aW9uKSB7CisgICAgICAgIFJFTEVBU0VfTE9HX0VSUk9SKFNlcnZpY2VXb3JrZXIsICJS
ZXF1ZXN0IHRvIHRlcm1pbmF0ZSBhIHdvcmtlciAlbGx1IHdob3NlIGNvbnRleHQgY29ubmVjdGlv
biBkb2VzIG5vdCBleGlzdCIsIGlkZW50aWZpZXIoKS50b1VJbnQ2NCgpKTsKKyAgICAgICAgc2V0
U3RhdGUoU3RhdGU6Ok5vdFJ1bm5pbmcpOworICAgICAgICBjYWxsYmFjaygpOworICAgICAgICBt
X3NlcnZlci0+d29ya2VyQ29udGV4dFRlcm1pbmF0ZWQoKnRoaXMpOworICAgICAgICByZXR1cm47
CisgICAgfQorCisgICAgc2V0U3RhdGUoU3RhdGU6OlRlcm1pbmF0aW5nKTsKKworICAgIG1fdGVy
bWluYXRpb25DYWxsYmFja3MuYXBwZW5kKFdURk1vdmUoY2FsbGJhY2spKTsKKyAgICBtX3Rlcm1p
bmF0aW9uVGltZXIuc3RhcnRPbmVTaG90KFNXU2VydmVyOjpkZWZhdWx0VGVybWluYXRpb25EZWxh
eSk7CisKKyAgICBjb250ZXh0Q29ubmVjdGlvbi0+dGVybWluYXRlV29ya2VyKGlkZW50aWZpZXIo
KSk7Cit9CisKK3ZvaWQgU1dTZXJ2ZXJXb3JrZXI6OnRlcm1pbmF0aW9uQ29tcGxldGVkKCkKIHsK
LSAgICBpZiAoaXNSdW5uaW5nKCkpCi0gICAgICAgIG1fc2VydmVyLT50ZXJtaW5hdGVXb3JrZXIo
KnRoaXMpOworICAgIG1fdGVybWluYXRpb25UaW1lci5zdG9wKCk7CisgICAgY2FsbFRlcm1pbmF0
aW9uQ2FsbGJhY2tzKCk7Cit9CisKK3ZvaWQgU1dTZXJ2ZXJXb3JrZXI6OmNhbGxUZXJtaW5hdGlv
bkNhbGxiYWNrcygpCit7CisgICAgYXV0byBjYWxsYmFja3MgPSBXVEZNb3ZlKG1fdGVybWluYXRp
b25DYWxsYmFja3MpOworICAgIGZvciAoYXV0byYgY2FsbGJhY2sgOiBjYWxsYmFja3MpCisgICAg
ICAgIGNhbGxiYWNrKCk7Cit9CisKK3ZvaWQgU1dTZXJ2ZXJXb3JrZXI6OnRlcm1pbmF0aW9uVGlt
ZXJGaXJlZCgpCit7CisgICAgQVNTRVJUKGlzVGVybWluYXRpbmcoKSk7CisgICAgY29udGV4dENv
bm5lY3Rpb24oKS0+dGVybWluYXRlRHVlVG9VbnJlc3BvbnNpdmVuZXNzKCk7CiB9CiAKIGNvbnN0
IENsaWVudE9yaWdpbiYgU1dTZXJ2ZXJXb3JrZXI6Om9yaWdpbigpIGNvbnN0CkBAIC0yNTIsNiAr
MzA1LDggQEAgdm9pZCBTV1NlcnZlcldvcmtlcjo6c2V0U3RhdGUoU3RhdGUgc3RhdGUpCiAgICAg
ICAgIGNhbGxXaGVuQWN0aXZhdGVkSGFuZGxlcihmYWxzZSk7CiAgICAgICAgIGJyZWFrOwogICAg
IGNhc2UgU3RhdGU6Ok5vdFJ1bm5pbmc6CisgICAgICAgIHRlcm1pbmF0aW9uQ29tcGxldGVkKCk7
CisKICAgICAgICAgY2FsbFdoZW5BY3RpdmF0ZWRIYW5kbGVyKGZhbHNlKTsKICAgICAgICAgLy8g
QXMgcGVyIGh0dHBzOi8vdzNjLmdpdGh1Yi5pby9TZXJ2aWNlV29ya2VyLyNhY3RpdmF0ZSwgYSB3
b3JrZXIgZ29lcyB0byBhY3RpdmF0ZWQgZXZlbiBpZiBhY3RpdmF0aW5nIGZhaWxzLgogICAgICAg
ICBpZiAobV9kYXRhLnN0YXRlID09IFNlcnZpY2VXb3JrZXJTdGF0ZTo6QWN0aXZhdGluZykKQEAg
LTI2Nyw4ICszMjIsNyBAQCBTV1NlcnZlclJlZ2lzdHJhdGlvbiogU1dTZXJ2ZXJXb3JrZXI6OnJl
Z2lzdHJhdGlvbigpIGNvbnN0CiAKIHZvaWQgU1dTZXJ2ZXJXb3JrZXI6OmRpZEZhaWxIZWFydEJl
YXRDaGVjaygpCiB7Ci0gICAgaWYgKG1fc2VydmVyICYmIGlzUnVubmluZygpKQotICAgICAgICBt
X3NlcnZlci0+dGVybWluYXRlV29ya2VyKCp0aGlzKTsKKyAgICB0ZXJtaW5hdGUoKTsKIH0KIAog
fSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vy
cy9zZXJ2aWNlL3NlcnZlci9TV1NlcnZlcldvcmtlci5oIGIvU291cmNlL1dlYkNvcmUvd29ya2Vy
cy9zZXJ2aWNlL3NlcnZlci9TV1NlcnZlcldvcmtlci5oCmluZGV4IGUwMmFlMDAxMGZjZmFjNWRl
MTE5YjRmZGExMmE3MTcxMzhlZjVjMDUuLjM3Y2ZhNGE2ZDM2NDA5MTFlN2Q1ZWE4Mzc5MzhlNGVl
YjI1MGE5MWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9zZXJ2
ZXIvU1dTZXJ2ZXJXb3JrZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2Uv
c2VydmVyL1NXU2VydmVyV29ya2VyLmgKQEAgLTM2LDYgKzM2LDcgQEAKICNpbmNsdWRlICJTZXJ2
aWNlV29ya2VySWRlbnRpZmllci5oIgogI2luY2x1ZGUgIlNlcnZpY2VXb3JrZXJSZWdpc3RyYXRp
b25LZXkuaCIKICNpbmNsdWRlICJTZXJ2aWNlV29ya2VyVHlwZXMuaCIKKyNpbmNsdWRlICJUaW1l
ci5oIgogI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CiAjaW5jbHVkZSA8d3RmL1dlYWtQdHIu
aD4KIApAQCAtNjAsNyArNjEsNyBAQCBwdWJsaWM6CiAgICAgU1dTZXJ2ZXJXb3JrZXIoY29uc3Qg
U1dTZXJ2ZXJXb3JrZXImKSA9IGRlbGV0ZTsKICAgICBXRUJDT1JFX0VYUE9SVCB+U1dTZXJ2ZXJX
b3JrZXIoKTsKIAotICAgIHZvaWQgdGVybWluYXRlKCk7CisgICAgV0VCQ09SRV9FWFBPUlQgdm9p
ZCB0ZXJtaW5hdGUoQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmID0gW10geyB9KTsKIAogICAg
IFdFQkNPUkVfRVhQT1JUIHZvaWQgd2hlbkFjdGl2YXRlZChDb21wbGV0aW9uSGFuZGxlcjx2b2lk
KGJvb2wpPiYmKTsKIApAQCAtMTI2LDYgKzEyNywxMSBAQCBwcml2YXRlOgogCiAgICAgdm9pZCBj
YWxsV2hlbkFjdGl2YXRlZEhhbmRsZXIoYm9vbCBzdWNjZXNzKTsKIAorICAgIHZvaWQgc3RhcnRU
ZXJtaW5hdGlvbihDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpOworICAgIHZvaWQgdGVybWlu
YXRpb25Db21wbGV0ZWQoKTsKKyAgICB2b2lkIHRlcm1pbmF0aW9uVGltZXJGaXJlZCgpOworICAg
IHZvaWQgY2FsbFRlcm1pbmF0aW9uQ2FsbGJhY2tzKCk7CisKICAgICBXZWFrUHRyPFNXU2VydmVy
PiBtX3NlcnZlcjsKICAgICBTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uS2V5IG1fcmVnaXN0cmF0
aW9uS2V5OwogICAgIFdlYWtQdHI8U1dTZXJ2ZXJSZWdpc3RyYXRpb24+IG1fcmVnaXN0cmF0aW9u
OwpAQCAtMTQyLDYgKzE0OCw4IEBAIHByaXZhdGU6CiAgICAgSGFzaE1hcDxVUkwsIFNlcnZpY2VX
b3JrZXJDb250ZXh0RGF0YTo6SW1wb3J0ZWRTY3JpcHQ+IG1fc2NyaXB0UmVzb3VyY2VNYXA7CiAg
ICAgYm9vbCBtX3Nob3VsZFNraXBIYW5kbGVGZXRjaDsKICAgICBib29sIG1faGFzVGltZWRPdXRB
bnlGZXRjaFRhc2tzIHsgZmFsc2UgfTsKKyAgICBWZWN0b3I8Q29tcGxldGlvbkhhbmRsZXI8dm9p
ZCgpPj4gbV90ZXJtaW5hdGlvbkNhbGxiYWNrczsKKyAgICBUaW1lciBtX3Rlcm1pbmF0aW9uVGlt
ZXI7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L05ldHdvcmtQcm9jZXNzL1NlcnZpY2VXb3JrZXIvV2ViU1dTZXJ2ZXJDb25uZWN0aW9uLmNw
cCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvU2VydmljZVdvcmtlci9XZWJTV1NlcnZl
ckNvbm5lY3Rpb24uY3BwCmluZGV4IGQxNDQ2ZmU2NTNmYTI5Y2M2MjNlYzgyMGVjNTA3ZmU1Mzc2
MjBkMzUuLjlhYWQ5ZWQwZjJhMTMyMWFiNDk2ZWVhZjNkZjRhODhiNjIyOTcwNGQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvU2VydmljZVdvcmtlci9XZWJTV1NlcnZl
ckNvbm5lY3Rpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvU2Vydmlj
ZVdvcmtlci9XZWJTV1NlcnZlckNvbm5lY3Rpb24uY3BwCkBAIC00NTYsMTAgKzQ1NiwxMiBAQCB2
b2lkIFdlYlNXU2VydmVyQ29ubmVjdGlvbjo6Y29udGV4dENvbm5lY3Rpb25DcmVhdGVkKFNXU2Vy
dmVyVG9Db250ZXh0Q29ubmVjdGlvbgogICAgICAgICBtX25ldHdvcmtQcm9jZXNzLT5wYXJlbnRQ
cm9jZXNzQ29ubmVjdGlvbigpLT5zZW5kKE1lc3NhZ2VzOjpOZXR3b3JrUHJvY2Vzc1Byb3h5OjpS
ZWdpc3RlclNlcnZpY2VXb3JrZXJDbGllbnRQcm9jZXNzIHsgaWRlbnRpZmllcigpLCBjb25uZWN0
aW9uLndlYlByb2Nlc3NJZGVudGlmaWVyKCkgfSwgMCk7CiB9CiAKLXZvaWQgV2ViU1dTZXJ2ZXJD
b25uZWN0aW9uOjpzeW5jVGVybWluYXRlV29ya2VyRnJvbUNsaWVudChTZXJ2aWNlV29ya2VySWRl
bnRpZmllciBpZGVudGlmaWVyLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYgY29tcGxldGlv
bkhhbmRsZXIpCit2b2lkIFdlYlNXU2VydmVyQ29ubmVjdGlvbjo6dGVybWluYXRlV29ya2VyRnJv
bUNsaWVudChTZXJ2aWNlV29ya2VySWRlbnRpZmllciBzZXJ2aWNlV29ya2VySWRlbnRpZmllciwg
Q29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmIGNhbGxiYWNrKQogewotICAgIHN5bmNUZXJtaW5h
dGVXb3JrZXIoV1RGTW92ZShpZGVudGlmaWVyKSk7Ci0gICAgY29tcGxldGlvbkhhbmRsZXIoKTsK
KyAgICBhdXRvKiB3b3JrZXIgPSBzZXJ2ZXIoKS53b3JrZXJCeUlEKHNlcnZpY2VXb3JrZXJJZGVu
dGlmaWVyKTsKKyAgICBpZiAoIXdvcmtlcikKKyAgICAgICAgcmV0dXJuIGNhbGxiYWNrKCk7Cisg
ICAgd29ya2VyLT50ZXJtaW5hdGUoV1RGTW92ZShjYWxsYmFjaykpOwogfQogCiB2b2lkIFdlYlNX
U2VydmVyQ29ubmVjdGlvbjo6aXNTZXJ2aWNlV29ya2VyUnVubmluZyhTZXJ2aWNlV29ya2VySWRl
bnRpZmllciBpZGVudGlmaWVyLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmIGNvbXBs
ZXRpb25IYW5kbGVyKQpAQCAtNDg1LDggKzQ4Nyw3IEBAIHZvaWQgV2ViU1dTZXJ2ZXJDb25uZWN0
aW9uOjpmZXRjaFRhc2tUaW1lZE91dChTZXJ2aWNlV29ya2VySWRlbnRpZmllciBzZXJ2aWNlV29y
CiAgICAgICAgIHJldHVybjsKIAogICAgIHdvcmtlci0+c2V0SGFzVGltZWRPdXRBbnlGZXRjaFRh
c2tzKCk7Ci0gICAgaWYgKHdvcmtlci0+aXNSdW5uaW5nKCkpCi0gICAgICAgIHNlcnZlcigpLnN5
bmNUZXJtaW5hdGVXb3JrZXIoKndvcmtlcik7CisgICAgd29ya2VyLT50ZXJtaW5hdGUoKTsKIH0K
IAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdv
cmtQcm9jZXNzL1NlcnZpY2VXb3JrZXIvV2ViU1dTZXJ2ZXJDb25uZWN0aW9uLmggYi9Tb3VyY2Uv
V2ViS2l0L05ldHdvcmtQcm9jZXNzL1NlcnZpY2VXb3JrZXIvV2ViU1dTZXJ2ZXJDb25uZWN0aW9u
LmgKaW5kZXggMWJiMjgzYzhhNmE5NzM4OTZiM2IwZDc4MmZkN2ZhN2ZiY2UyN2RjYy4uOGU0ODQx
ZTA2NmQ3NmFiMWE3NWUwYWI0NThlNjU1NDMyNzIyNjIxYiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9OZXR3b3JrUHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1dlYlNXU2VydmVyQ29ubmVjdGlvbi5o
CisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvU2VydmljZVdvcmtlci9XZWJTV1Nl
cnZlckNvbm5lY3Rpb24uaApAQCAtNzAsNyArNzAsNiBAQCBwdWJsaWM6CiAgICAgSVBDOjpDb25u
ZWN0aW9uJiBpcGNDb25uZWN0aW9uKCkgY29uc3QgeyByZXR1cm4gbV9jb250ZW50Q29ubmVjdGlv
bi5nZXQoKTsgfQogCiAgICAgdm9pZCBkaWRSZWNlaXZlTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24m
LCBJUEM6OkRlY29kZXImKSBmaW5hbDsKLSAgICB2b2lkIGRpZFJlY2VpdmVTeW5jTWVzc2FnZShJ
UEM6OkNvbm5lY3Rpb24mLCBJUEM6OkRlY29kZXImLCBzdGQ6OnVuaXF1ZV9wdHI8SVBDOjpFbmNv
ZGVyPiYpOwogICAgIAogICAgIFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCgpIGNvbnN0OwogCkBA
IC0xMDMsNyArMTAyLDcgQEAgcHJpdmF0ZToKIAogICAgIHZvaWQgcmVnaXN0ZXJTZXJ2aWNlV29y
a2VyQ2xpZW50KFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSYmIHRvcE9yaWdpbiwgV2ViQ29y
ZTo6U2VydmljZVdvcmtlckNsaWVudERhdGEmJiwgY29uc3QgT3B0aW9uYWw8V2ViQ29yZTo6U2Vy
dmljZVdvcmtlclJlZ2lzdHJhdGlvbklkZW50aWZpZXI+JiwgU3RyaW5nJiYgdXNlckFnZW50KTsK
ICAgICB2b2lkIHVucmVnaXN0ZXJTZXJ2aWNlV29ya2VyQ2xpZW50KGNvbnN0IFdlYkNvcmU6OlNl
cnZpY2VXb3JrZXJDbGllbnRJZGVudGlmaWVyJik7Ci0gICAgdm9pZCBzeW5jVGVybWluYXRlV29y
a2VyRnJvbUNsaWVudChXZWJDb3JlOjpTZXJ2aWNlV29ya2VySWRlbnRpZmllciwgQ29tcGxldGlv
bkhhbmRsZXI8dm9pZCgpPiYmKTsKKyAgICB2b2lkIHRlcm1pbmF0ZVdvcmtlckZyb21DbGllbnQo
V2ViQ29yZTo6U2VydmljZVdvcmtlcklkZW50aWZpZXIsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQo
KT4mJik7CiAgICAgdm9pZCBpc1NlcnZpY2VXb3JrZXJSdW5uaW5nKFdlYkNvcmU6OlNlcnZpY2VX
b3JrZXJJZGVudGlmaWVyLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmKTsKIAogICAg
IHZvaWQgcG9zdE1lc3NhZ2VUb1NlcnZpY2VXb3JrZXJDbGllbnQoV2ViQ29yZTo6RG9jdW1lbnRJ
ZGVudGlmaWVyIGRlc3RpbmF0aW9uQ29udGV4dElkZW50aWZpZXIsIGNvbnN0IFdlYkNvcmU6Ok1l
c3NhZ2VXaXRoTWVzc2FnZVBvcnRzJiwgV2ViQ29yZTo6U2VydmljZVdvcmtlcklkZW50aWZpZXIg
c291cmNlU2VydmljZVdvcmtlcklkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYgc291cmNlT3JpZ2lu
KSBmaW5hbDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvU2Vydmlj
ZVdvcmtlci9XZWJTV1NlcnZlckNvbm5lY3Rpb24ubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0
L05ldHdvcmtQcm9jZXNzL1NlcnZpY2VXb3JrZXIvV2ViU1dTZXJ2ZXJDb25uZWN0aW9uLm1lc3Nh
Z2VzLmluCmluZGV4IDk1M2Y2YzM1NjE0MDllZjUyOTIyODUzNGE0MzMxMWVjNjYxOTFkYTYuLmUy
NWQ3MWU5YWRlOTE5Yzg1YjExNzFlYTY3NzQxYTBiMGU2ZGIwMDQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvU2VydmljZVdvcmtlci9XZWJTV1NlcnZlckNvbm5lY3Rp
b24ubWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9TZXJ2aWNl
V29ya2VyL1dlYlNXU2VydmVyQ29ubmVjdGlvbi5tZXNzYWdlcy5pbgpAQCAtNDEsNyArNDEsNyBA
QCBtZXNzYWdlcyAtPiBXZWJTV1NlcnZlckNvbm5lY3Rpb24gTm90UmVmQ291bnRlZCB7CiAgICAg
UmVnaXN0ZXJTZXJ2aWNlV29ya2VyQ2xpZW50KHN0cnVjdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdp
bkRhdGEgdG9wT3JpZ2luLCBzdHJ1Y3QgV2ViQ29yZTo6U2VydmljZVdvcmtlckNsaWVudERhdGEg
ZGF0YSwgT3B0aW9uYWw8V2ViQ29yZTo6U2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbklkZW50aWZp
ZXI+IGNvbnRyb2xsaW5nU2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbklkZW50aWZpZXIsIFN0cmlu
ZyB1c2VyQWdlbnQpCiAgICAgVW5yZWdpc3RlclNlcnZpY2VXb3JrZXJDbGllbnQoc3RydWN0IFdl
YkNvcmU6OlNlcnZpY2VXb3JrZXJDbGllbnRJZGVudGlmaWVyIGlkZW50aWZpZXIpCiAKLSAgICBT
eW5jVGVybWluYXRlV29ya2VyRnJvbUNsaWVudChXZWJDb3JlOjpTZXJ2aWNlV29ya2VySWRlbnRp
ZmllciB3b3JrZXJJZGVudGlmaWVyKSAtPiAoKSBTeW5jaHJvbm91cworICAgIFRlcm1pbmF0ZVdv
cmtlckZyb21DbGllbnQoV2ViQ29yZTo6U2VydmljZVdvcmtlcklkZW50aWZpZXIgd29ya2VySWRl
bnRpZmllcikgLT4gKCkgQXN5bmMKIAogICAgIFNldFRocm90dGxlU3RhdGUoYm9vbCBpc1Rocm90
dGxlYWJsZSkKICAgICBTdG9yZVJlZ2lzdHJhdGlvbnNPbkRpc2soKSAtPiAoKSBBc3luYwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1dlYlNX
U2VydmVyVG9Db250ZXh0Q29ubmVjdGlvbi5jcHAgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9j
ZXNzL1NlcnZpY2VXb3JrZXIvV2ViU1dTZXJ2ZXJUb0NvbnRleHRDb25uZWN0aW9uLmNwcAppbmRl
eCBjMGY2Y2ViMTRiZTUxN2NmY2EwNzhkYTk3Njk1MDM4MDk0MjE1NDMxLi42MzdjOGVkODk1YmMz
ODZjYzE3Zjc3ZTY1Y2NlMzdmZDRmZGIyMzRkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05l
dHdvcmtQcm9jZXNzL1NlcnZpY2VXb3JrZXIvV2ViU1dTZXJ2ZXJUb0NvbnRleHRDb25uZWN0aW9u
LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1NlcnZpY2VXb3JrZXIvV2Vi
U1dTZXJ2ZXJUb0NvbnRleHRDb25uZWN0aW9uLmNwcApAQCAtMTA2LDEwICsxMDYsOSBAQCB2b2lk
IFdlYlNXU2VydmVyVG9Db250ZXh0Q29ubmVjdGlvbjo6dGVybWluYXRlV29ya2VyKFNlcnZpY2VX
b3JrZXJJZGVudGlmaWVyIHNlcgogICAgIHNlbmQoTWVzc2FnZXM6OldlYlNXQ29udGV4dE1hbmFn
ZXJDb25uZWN0aW9uOjpUZXJtaW5hdGVXb3JrZXIoc2VydmljZVdvcmtlcklkZW50aWZpZXIpKTsK
IH0KIAotdm9pZCBXZWJTV1NlcnZlclRvQ29udGV4dENvbm5lY3Rpb246OnN5bmNUZXJtaW5hdGVX
b3JrZXIoU2VydmljZVdvcmtlcklkZW50aWZpZXIgc2VydmljZVdvcmtlcklkZW50aWZpZXIpCit2
b2lkIFdlYlNXU2VydmVyVG9Db250ZXh0Q29ubmVjdGlvbjo6dGVybWluYXRlRHVlVG9VbnJlc3Bv
bnNpdmVuZXNzKCkKIHsKLSAgICBpZiAoIXNlbmRTeW5jKE1lc3NhZ2VzOjpXZWJTV0NvbnRleHRN
YW5hZ2VyQ29ubmVjdGlvbjo6U3luY1Rlcm1pbmF0ZVdvcmtlcihzZXJ2aWNlV29ya2VySWRlbnRp
ZmllciksIE1lc3NhZ2VzOjpXZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbjo6U3luY1Rlcm1p
bmF0ZVdvcmtlcjo6UmVwbHkoKSwgMCwgMTBfcywgSVBDOjpTZW5kU3luY09wdGlvbjo6Rm9yY2VE
aXNwYXRjaFdoZW5EZXN0aW5hdGlvbklzV2FpdGluZ0ZvclVuYm91bmRlZFN5bmNSZXBseSkpCi0g
ICAgICAgIG1fY29ubmVjdGlvbi5uZXR3b3JrUHJvY2VzcygpLnBhcmVudFByb2Nlc3NDb25uZWN0
aW9uKCktPnNlbmQoTWVzc2FnZXM6Ok5ldHdvcmtQcm9jZXNzUHJveHk6OlRlcm1pbmF0ZVVucmVz
cG9uc2l2ZVNlcnZpY2VXb3JrZXJQcm9jZXNzZXMgeyB3ZWJQcm9jZXNzSWRlbnRpZmllcigpIH0s
IDApOworICAgIG1fY29ubmVjdGlvbi5uZXR3b3JrUHJvY2VzcygpLnBhcmVudFByb2Nlc3NDb25u
ZWN0aW9uKCktPnNlbmQoTWVzc2FnZXM6Ok5ldHdvcmtQcm9jZXNzUHJveHk6OlRlcm1pbmF0ZVVu
cmVzcG9uc2l2ZVNlcnZpY2VXb3JrZXJQcm9jZXNzZXMgeyB3ZWJQcm9jZXNzSWRlbnRpZmllcigp
IH0sIDApOwogfQogCiB2b2lkIFdlYlNXU2VydmVyVG9Db250ZXh0Q29ubmVjdGlvbjo6ZmluZENs
aWVudEJ5SWRlbnRpZmllckNvbXBsZXRlZCh1aW50NjRfdCByZXF1ZXN0SWRlbnRpZmllciwgY29u
c3QgT3B0aW9uYWw8U2VydmljZVdvcmtlckNsaWVudERhdGE+JiBkYXRhLCBib29sIGhhc1NlY3Vy
aXR5RXJyb3IpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1NlcnZp
Y2VXb3JrZXIvV2ViU1dTZXJ2ZXJUb0NvbnRleHRDb25uZWN0aW9uLmggYi9Tb3VyY2UvV2ViS2l0
L05ldHdvcmtQcm9jZXNzL1NlcnZpY2VXb3JrZXIvV2ViU1dTZXJ2ZXJUb0NvbnRleHRDb25uZWN0
aW9uLmgKaW5kZXggZmUxMjJjZmY2YTYxZjkxNmY0NjVhMDQwYTdlYzZiMTI5NDBmMWE1Ny4uNTc0
ODE2NDBiZTgxYTYzM2E5ZWI5NzgyMzYxZjhkOGQ2Yjc4MDUzNCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1dlYlNXU2VydmVyVG9Db250ZXh0
Q29ubmVjdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvU2VydmljZVdv
cmtlci9XZWJTV1NlcnZlclRvQ29udGV4dENvbm5lY3Rpb24uaApAQCAtODcsMTEgKzg3LDExIEBA
IHByaXZhdGU6CiAgICAgdm9pZCBmaXJlSW5zdGFsbEV2ZW50KFdlYkNvcmU6OlNlcnZpY2VXb3Jr
ZXJJZGVudGlmaWVyKSBmaW5hbDsKICAgICB2b2lkIGZpcmVBY3RpdmF0ZUV2ZW50KFdlYkNvcmU6
OlNlcnZpY2VXb3JrZXJJZGVudGlmaWVyKSBmaW5hbDsKICAgICB2b2lkIHRlcm1pbmF0ZVdvcmtl
cihXZWJDb3JlOjpTZXJ2aWNlV29ya2VySWRlbnRpZmllcikgZmluYWw7Ci0gICAgdm9pZCBzeW5j
VGVybWluYXRlV29ya2VyKFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJJZGVudGlmaWVyKSBmaW5hbDsK
ICAgICB2b2lkIGZpbmRDbGllbnRCeUlkZW50aWZpZXJDb21wbGV0ZWQodWludDY0X3QgcmVxdWVz
dElkZW50aWZpZXIsIGNvbnN0IE9wdGlvbmFsPFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJDbGllbnRE
YXRhPiYsIGJvb2wgaGFzU2VjdXJpdHlFcnJvcikgZmluYWw7CiAgICAgdm9pZCBtYXRjaEFsbENv
bXBsZXRlZCh1aW50NjRfdCByZXF1ZXN0SWRlbnRpZmllciwgY29uc3QgVmVjdG9yPFdlYkNvcmU6
OlNlcnZpY2VXb3JrZXJDbGllbnREYXRhPiYpIGZpbmFsOwogCiAgICAgdm9pZCBjb25uZWN0aW9u
SXNOb0xvbmdlck5lZWRlZCgpIGZpbmFsOworICAgIHZvaWQgdGVybWluYXRlRHVlVG9VbnJlc3Bv
bnNpdmVuZXNzKCkgZmluYWw7CiAKICAgICB2b2lkIGNvbm5lY3Rpb25DbG9zZWQoKTsKIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dDbGllbnRDb25u
ZWN0aW9uLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNXQ2xpZW50
Q29ubmVjdGlvbi5jcHAKaW5kZXggYjFhMWVhNmIwMjRkNjBhNWQ3Nzk0ODU0MjA1Mjg5Y2U0MTBl
ZDBhZC4uYzNjY2M2OWE2ZWNhMTNhYTlhODdmNjIyNDdlMDMzNTY5YTJjMTc5YiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dDbGllbnRDb25uZWN0aW9u
LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3RvcmFnZS9XZWJTV0NsaWVudENv
bm5lY3Rpb24uY3BwCkBAIC0yNDMsOSArMjQzLDkgQEAgdm9pZCBXZWJTV0NsaWVudENvbm5lY3Rp
b246OmNsZWFyKCkKICAgICBjbGVhclBlbmRpbmdKb2JzKCk7CiB9CiAKLXZvaWQgV2ViU1dDbGll
bnRDb25uZWN0aW9uOjpzeW5jVGVybWluYXRlV29ya2VyKFNlcnZpY2VXb3JrZXJJZGVudGlmaWVy
IGlkZW50aWZpZXIpCit2b2lkIFdlYlNXQ2xpZW50Q29ubmVjdGlvbjo6dGVybWluYXRlV29ya2Vy
Rm9yVGVzdGluZyhTZXJ2aWNlV29ya2VySWRlbnRpZmllciBpZGVudGlmaWVyLCBDb21wbGV0aW9u
SGFuZGxlcjx2b2lkKCk+JiYgY2FsbGJhY2spCiB7Ci0gICAgc2VuZFN5bmMoTWVzc2FnZXM6Oldl
YlNXU2VydmVyQ29ubmVjdGlvbjo6U3luY1Rlcm1pbmF0ZVdvcmtlckZyb21DbGllbnQgeyBpZGVu
dGlmaWVyIH0sIE1lc3NhZ2VzOjpXZWJTV1NlcnZlckNvbm5lY3Rpb246OlN5bmNUZXJtaW5hdGVX
b3JrZXJGcm9tQ2xpZW50OjpSZXBseSgpKTsKKyAgICBzZW5kV2l0aEFzeW5jUmVwbHkoTWVzc2Fn
ZXM6OldlYlNXU2VydmVyQ29ubmVjdGlvbjo6VGVybWluYXRlV29ya2VyRnJvbUNsaWVudCB7IGlk
ZW50aWZpZXIgfSwgV1RGTW92ZShjYWxsYmFjaykpOwogfQogCiB2b2lkIFdlYlNXQ2xpZW50Q29u
bmVjdGlvbjo6aXNTZXJ2aWNlV29ya2VyUnVubmluZyhTZXJ2aWNlV29ya2VySWRlbnRpZmllciBp
ZGVudGlmaWVyLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmIGNhbGxiYWNrKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dDbGllbnRDb25u
ZWN0aW9uLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3RvcmFnZS9XZWJTV0NsaWVudENv
bm5lY3Rpb24uaAppbmRleCA3NmM0NjI4MzQ5NGI2MDAyZjQxZDUwN2M5MTNkYThmZThmMzgzMTU4
Li42YzkyZTcwOTA0MGIwNGVjMTEyMWUwZTA1NjdjMTE2YTU2ZWI2YWE1IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3RvcmFnZS9XZWJTV0NsaWVudENvbm5lY3Rpb24uaAor
KysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3RvcmFnZS9XZWJTV0NsaWVudENvbm5lY3Rp
b24uaApAQCAtNjIsMTEgKzYyLDExIEBAIHB1YmxpYzoKIAogICAgIHZvaWQgY29ubmVjdGlvblRv
U2VydmVyTG9zdCgpOwogCi0gICAgdm9pZCBzeW5jVGVybWluYXRlV29ya2VyKFdlYkNvcmU6OlNl
cnZpY2VXb3JrZXJJZGVudGlmaWVyKSBmaW5hbDsKLQogICAgIGJvb2wgaXNUaHJvdHRsZWFibGUo
KSBjb25zdCB7IHJldHVybiBtX2lzVGhyb3R0bGVhYmxlOyB9CiAgICAgdm9pZCB1cGRhdGVUaHJv
dHRsZVN0YXRlKCk7CiAKKyAgICB2b2lkIHRlcm1pbmF0ZVdvcmtlckZvclRlc3RpbmcoV2ViQ29y
ZTo6U2VydmljZVdvcmtlcklkZW50aWZpZXIsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7
CisKIHByaXZhdGU6CiAgICAgV2ViU1dDbGllbnRDb25uZWN0aW9uKCk7CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNXQ29udGV4dE1hbmFnZXJDb25u
ZWN0aW9uLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNXQ29udGV4
dE1hbmFnZXJDb25uZWN0aW9uLmNwcAppbmRleCA5YzBiNTY5NmMxMTU2ZjVkODhiNmM1OTE2ZTcw
ZTQ3NDdlM2UyZmYwLi4zYmIyMDIxNDY1Yjk2NDdkZmM4Yzg3M2JjNGEzNDlmYTg4ZDhmOWI1IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3RvcmFnZS9XZWJTV0NvbnRleHRN
YW5hZ2VyQ29ubmVjdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0b3Jh
Z2UvV2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb24uY3BwCkBAIC0yNTUsMTEgKzI1NSw2IEBA
IHZvaWQgV2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb246OnRlcm1pbmF0ZVdvcmtlcihTZXJ2
aWNlV29ya2VySWRlbnRpZmllciBpZGVuCiAgICAgU1dDb250ZXh0TWFuYWdlcjo6c2luZ2xldG9u
KCkudGVybWluYXRlV29ya2VyKGlkZW50aWZpZXIsIFNXQ29udGV4dE1hbmFnZXI6OndvcmtlclRl
cm1pbmF0aW9uVGltZW91dCwgbnVsbHB0cik7CiB9CiAKLXZvaWQgV2ViU1dDb250ZXh0TWFuYWdl
ckNvbm5lY3Rpb246OnN5bmNUZXJtaW5hdGVXb3JrZXIoU2VydmljZVdvcmtlcklkZW50aWZpZXIg
aWRlbnRpZmllciwgTWVzc2FnZXM6OldlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uOjpTeW5j
VGVybWluYXRlV29ya2VyOjpEZWxheWVkUmVwbHkmJiByZXBseSkKLXsKLSAgICBTV0NvbnRleHRN
YW5hZ2VyOjpzaW5nbGV0b24oKS50ZXJtaW5hdGVXb3JrZXIoaWRlbnRpZmllciwgU1dDb250ZXh0
TWFuYWdlcjo6c3luY1dvcmtlclRlcm1pbmF0aW9uVGltZW91dCwgV1RGTW92ZShyZXBseSkpOwot
fQotCiB2b2lkIFdlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uOjpwb3N0TWVzc2FnZVRvU2Vy
dmljZVdvcmtlckNsaWVudChjb25zdCBTZXJ2aWNlV29ya2VyQ2xpZW50SWRlbnRpZmllciYgZGVz
dGluYXRpb25JZGVudGlmaWVyLCBjb25zdCBNZXNzYWdlV2l0aE1lc3NhZ2VQb3J0cyYgbWVzc2Fn
ZSwgU2VydmljZVdvcmtlcklkZW50aWZpZXIgc291cmNlSWRlbnRpZmllciwgY29uc3QgU3RyaW5n
JiBzb3VyY2VPcmlnaW4pCiB7CiAgICAgbV9jb25uZWN0aW9uVG9OZXR3b3JrUHJvY2Vzcy0+c2Vu
ZChNZXNzYWdlczo6V2ViU1dTZXJ2ZXJUb0NvbnRleHRDb25uZWN0aW9uOjpQb3N0TWVzc2FnZVRv
U2VydmljZVdvcmtlckNsaWVudChkZXN0aW5hdGlvbklkZW50aWZpZXIsIG1lc3NhZ2UsIHNvdXJj
ZUlkZW50aWZpZXIsIHNvdXJjZU9yaWdpbiksIDApOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb24uaCBiL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0
aW9uLmgKaW5kZXggNmQ4Yzg3NmNhMTJhOGYzYTlkZGYwOGM1OGEyNTY0MWUwMzAyMTA5NC4uMTBj
Y2QxOGU1YWJlZjE1NzNmYzc0ZjJhYjYzNDk5NWU5ZDkzNjYxZSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb24u
aAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3RvcmFnZS9XZWJTV0NvbnRleHRNYW5h
Z2VyQ29ubmVjdGlvbi5oCkBAIC02MCw3ICs2MCw2IEBAIHB1YmxpYzoKICAgICB+V2ViU1dDb250
ZXh0TWFuYWdlckNvbm5lY3Rpb24oKTsKIAogICAgIHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2UoSVBD
OjpDb25uZWN0aW9uJiwgSVBDOjpEZWNvZGVyJikgZmluYWw7Ci0gICAgdm9pZCBkaWRSZWNlaXZl
U3luY01lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiwgSVBDOjpEZWNvZGVyJiwgc3RkOjp1bmlxdWVf
cHRyPElQQzo6RW5jb2Rlcj4mKSBmaW5hbDsKIAogcHJpdmF0ZToKICAgICB2b2lkIHVwZGF0ZVBy
ZWZlcmVuY2VzU3RvcmUoY29uc3QgV2ViUHJlZmVyZW5jZXNTdG9yZSYpOwpAQCAtOTEsNyArOTAs
NiBAQCBwcml2YXRlOgogICAgIHZvaWQgZmlyZUluc3RhbGxFdmVudChXZWJDb3JlOjpTZXJ2aWNl
V29ya2VySWRlbnRpZmllcik7CiAgICAgdm9pZCBmaXJlQWN0aXZhdGVFdmVudChXZWJDb3JlOjpT
ZXJ2aWNlV29ya2VySWRlbnRpZmllcik7CiAgICAgdm9pZCB0ZXJtaW5hdGVXb3JrZXIoV2ViQ29y
ZTo6U2VydmljZVdvcmtlcklkZW50aWZpZXIpOwotICAgIHZvaWQgc3luY1Rlcm1pbmF0ZVdvcmtl
cihXZWJDb3JlOjpTZXJ2aWNlV29ya2VySWRlbnRpZmllciwgTWVzc2FnZXM6OldlYlNXQ29udGV4
dE1hbmFnZXJDb25uZWN0aW9uOjpTeW5jVGVybWluYXRlV29ya2VyRGVsYXllZFJlcGx5JiYpOwog
ICAgIHZvaWQgZmluZENsaWVudEJ5SWRlbnRpZmllckNvbXBsZXRlZCh1aW50NjRfdCByZXF1ZXN0
SWRlbnRpZmllciwgT3B0aW9uYWw8V2ViQ29yZTo6U2VydmljZVdvcmtlckNsaWVudERhdGE+JiYs
IGJvb2wgaGFzU2VjdXJpdHlFcnJvcik7CiAgICAgdm9pZCBtYXRjaEFsbENvbXBsZXRlZCh1aW50
NjRfdCBtYXRjaEFsbFJlcXVlc3RJZGVudGlmaWVyLCBWZWN0b3I8V2ViQ29yZTo6U2VydmljZVdv
cmtlckNsaWVudERhdGE+JiYpOwogICAgIHZvaWQgc2V0VXNlckFnZW50KFN0cmluZyYmIHVzZXJB
Z2VudCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3RvcmFnZS9XZWJT
V0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbi5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9TdG9yYWdlL1dlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uLm1lc3NhZ2VzLmlu
CmluZGV4IDRhNGRkYjdjYThhYTIwMDdkNjNhYjI0ZDUzOTU5NzgyZjcyMmUxOGUuLjUyODRjZDRh
NWZmY2E1NzYyNDk4YWJhMzJkMTE3NzM4NmQ2NDNiZmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uLm1lc3Nh
Z2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNXQ29udGV4
dE1hbmFnZXJDb25uZWN0aW9uLm1lc3NhZ2VzLmluCkBAIC0zMSw3ICszMSw2IEBAIG1lc3NhZ2Vz
IC0+IFdlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uIE5vdFJlZkNvdW50ZWQgewogICAgIEZp
cmVJbnN0YWxsRXZlbnQoV2ViQ29yZTo6U2VydmljZVdvcmtlcklkZW50aWZpZXIgaWRlbnRpZmll
cikKICAgICBGaXJlQWN0aXZhdGVFdmVudChXZWJDb3JlOjpTZXJ2aWNlV29ya2VySWRlbnRpZmll
ciBpZGVudGlmaWVyKQogICAgIFRlcm1pbmF0ZVdvcmtlcihXZWJDb3JlOjpTZXJ2aWNlV29ya2Vy
SWRlbnRpZmllciBpZGVudGlmaWVyKQotICAgIFN5bmNUZXJtaW5hdGVXb3JrZXIoV2ViQ29yZTo6
U2VydmljZVdvcmtlcklkZW50aWZpZXIgaWRlbnRpZmllcikgLT4gKCkgU3luY2hyb25vdXMKICAg
ICBGaW5kQ2xpZW50QnlJZGVudGlmaWVyQ29tcGxldGVkKHVpbnQ2NF90IGNsaWVudElkUmVxdWVz
dElkZW50aWZpZXIsIE9wdGlvbmFsPFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJDbGllbnREYXRhPiBk
YXRhLCBib29sIGhhc1NlY3VyaXR5RXJyb3IpCiAgICAgTWF0Y2hBbGxDb21wbGV0ZWQodWludDY0
X3QgbWF0Y2hBbGxSZXF1ZXN0SWRlbnRpZmllciwgVmVjdG9yPFdlYkNvcmU6OlNlcnZpY2VXb3Jr
ZXJDbGllbnREYXRhPiBjbGllbnRzRGF0YSkKICAgICBTZXRVc2VyQWdlbnQoU3RyaW5nIHVzZXJB
Z2VudCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNl
cnZpY2VXb3JrZXJQcm92aWRlci5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3RvcmFn
ZS9XZWJTZXJ2aWNlV29ya2VyUHJvdmlkZXIuY3BwCmluZGV4IGE0NjI2ZDExOTcwNTI1Y2IwN2Ji
N2M2MmEzODI4NTc0MjZiYWQ5ZjUuLjhmNzU4MzVjMzlkN2I0NTBiMzM0OWZjZmQ0ZGFlYzYwYjQz
Y2U0OWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNl
cnZpY2VXb3JrZXJQcm92aWRlci5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0
b3JhZ2UvV2ViU2VydmljZVdvcmtlclByb3ZpZGVyLmNwcApAQCAtNzAsNiArNzAsMTEgQEAgdm9p
ZCBXZWJTZXJ2aWNlV29ya2VyUHJvdmlkZXI6OnVwZGF0ZVRocm90dGxlU3RhdGUoYm9vbCBpc1Ro
cm90dGxlYWJsZSkKICAgICAgICAgY29ubmVjdGlvbi51cGRhdGVUaHJvdHRsZVN0YXRlKCk7CiB9
CiAKK3ZvaWQgV2ViU2VydmljZVdvcmtlclByb3ZpZGVyOjp0ZXJtaW5hdGVXb3JrZXJGb3JUZXN0
aW5nKFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJJZGVudGlmaWVyIGlkZW50aWZpZXIsIENvbXBsZXRp
b25IYW5kbGVyPHZvaWQoKT4mJiBjYWxsYmFjaykKK3sKKyAgICBXZWJQcm9jZXNzOjpzaW5nbGV0
b24oKS5lbnN1cmVOZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24oKS5zZXJ2aWNlV29ya2VyQ29ubmVj
dGlvbigpLnRlcm1pbmF0ZVdvcmtlckZvclRlc3RpbmcoaWRlbnRpZmllciwgV1RGTW92ZShjYWxs
YmFjaykpOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKIAogI2VuZGlmIC8vIEVOQUJMRShT
RVJWSUNFX1dPUktFUikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TdG9y
YWdlL1dlYlNlcnZpY2VXb3JrZXJQcm92aWRlci5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L1N0b3JhZ2UvV2ViU2VydmljZVdvcmtlclByb3ZpZGVyLmgKaW5kZXggYWFlZmFkMzgwNDAyMjE1
ODVhZWZmYTJiMTg0YzNhNjgwNmY0YjNlZC4uZTVjYTIwODM5MjlkMmM5ZWYxNGJlYjJlNTM2MmRk
NTUxMDc3MGFkZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0b3JhZ2Uv
V2ViU2VydmljZVdvcmtlclByb3ZpZGVyLmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L1N0b3JhZ2UvV2ViU2VydmljZVdvcmtlclByb3ZpZGVyLmgKQEAgLTUzLDYgKzUzLDcgQEAgcHJp
dmF0ZToKICAgICBXZWJTZXJ2aWNlV29ya2VyUHJvdmlkZXIoKTsKIAogICAgIFdlYkNvcmU6OlNX
Q2xpZW50Q29ubmVjdGlvbiYgc2VydmljZVdvcmtlckNvbm5lY3Rpb24oKSBmaW5hbDsKKyAgICB2
b2lkIHRlcm1pbmF0ZVdvcmtlckZvclRlc3RpbmcoV2ViQ29yZTo6U2VydmljZVdvcmtlcklkZW50
aWZpZXIsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJikgZmluYWw7CiB9OyAvLyBjbGFzcyBX
ZWJTZXJ2aWNlV29ya2VyUHJvdmlkZXIKIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXgg
NzA4YTY1YjhiODkwNjg2NGI0Y2VkN2M5OGRkZTEwNmQxZDgwZWNhNS4uNjhhODNlMmRiYjI0YTU1
YzU3OTVkZGNmZDQxNDdmMTUyMjY5ZjU4YyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdl
TG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE3IEBACisyMDIwLTAz
LTMwICB5b3Vlbm4gZmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBSZW1vdmUg
c3luY2hyb25vdXMgdGVybWluYXRpb24gb2Ygc2VydmljZSB3b3JrZXJzCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDk2NjYKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIGh0dHAvdGVzdHMvd29ya2Vycy9z
ZXJ2aWNlL3Jlc291cmNlcy9wb3N0bWVzc2FnZS1hZnRlci1zdy1wcm9jZXNzLWNyYXNoLmpzOgor
ICAgICAgICAoYXN5bmMgZXZlbnQpOgorICAgICAgICAqIGh0dHAvdGVzdHMvd29ya2Vycy9zZXJ2
aWNlL3Jlc291cmNlcy9wb3N0bWVzc2FnZS1hZnRlci10ZXJtaW5hdGUuanM6CisgICAgICAgIChh
c3luYyBldmVudCk6CisgICAgICAgICogaHR0cC90ZXN0cy93b3JrZXJzL3NlcnZpY2UvcmVzb3Vy
Y2VzL3Bvc3RtZXNzYWdlLWFmdGVyLXRlcm1pbmF0aW5nLWh1bmctd29ya2VyLmpzOgorICAgICAg
ICAoYXN5bmMgZXZlbnQpOgorCiAyMDIwLTAzLTI1ICB5b3Vlbm4gZmFibGV0ICA8eW91ZW5uQGFw
cGxlLmNvbT4KIAogICAgICAgICBCdW1wIGxpYndlYnJ0YyB0byBNODIKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2h0dHAvdGVzdHMvd29ya2Vycy9zZXJ2aWNlL3Jlc291cmNlcy9wb3N0bWVzc2Fn
ZS1hZnRlci1zdy1wcm9jZXNzLWNyYXNoLmpzIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93b3Jr
ZXJzL3NlcnZpY2UvcmVzb3VyY2VzL3Bvc3RtZXNzYWdlLWFmdGVyLXN3LXByb2Nlc3MtY3Jhc2gu
anMKaW5kZXggYWFkMmRlNjRiZTIwZmY2ZjVjM2FiNjhlZWE0ZTRlZjcwNGMyMTFjNy4uMTBkOGU3
MGYxNjFkZTI4ZGNjY2M5NTZjZmM2MDJkNGUyMjJkYWNhYSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvaHR0cC90ZXN0cy93b3JrZXJzL3NlcnZpY2UvcmVzb3VyY2VzL3Bvc3RtZXNzYWdlLWFmdGVy
LXN3LXByb2Nlc3MtY3Jhc2guanMKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93b3JrZXJz
L3NlcnZpY2UvcmVzb3VyY2VzL3Bvc3RtZXNzYWdlLWFmdGVyLXN3LXByb2Nlc3MtY3Jhc2guanMK
QEAgLTIsNyArMiw3IEBAIGxldCBzZXJ2aWNlV29ya2VySGFzUmVjZWl2ZWRTdGF0ZSA9IGZhbHNl
OwogbGV0IHdvcmtlciA9IG51bGw7CiBsZXQgcmVtYWluaW5nQXR0ZW1wdHMgPSAxMDAwOyAvLyBX
ZSB0cnkgZm9yIDEwIHNlY29uZHMgYmVmb3JlIHRpbWluZyBvdXQuCiAKLW5hdmlnYXRvci5zZXJ2
aWNlV29ya2VyLmFkZEV2ZW50TGlzdGVuZXIoIm1lc3NhZ2UiLCBmdW5jdGlvbihldmVudCkgewor
bmF2aWdhdG9yLnNlcnZpY2VXb3JrZXIuYWRkRXZlbnRMaXN0ZW5lcigibWVzc2FnZSIsIGFzeW5j
IGZ1bmN0aW9uKGV2ZW50KSB7CiAgICAgaWYgKCFzZXJ2aWNlV29ya2VySGFzUmVjZWl2ZWRTdGF0
ZSkgewogICAgICAgICBpZiAoIWV2ZW50LmRhdGEpIHsKICAgICAgICAgICAgIGxvZygiRkFJTDog
c2VydmljZSB3b3JrZXIgZGlkIG5vdCByZWNlaXZlIHRoZSBzdGF0ZSIpOwpAQCAtMTIsNyArMTIs
NyBAQCBuYXZpZ2F0b3Iuc2VydmljZVdvcmtlci5hZGRFdmVudExpc3RlbmVyKCJtZXNzYWdlIiwg
ZnVuY3Rpb24oZXZlbnQpIHsKICAgICAgICAgc2VydmljZVdvcmtlckhhc1JlY2VpdmVkU3RhdGUg
PSB0cnVlOwogCiAgICAgICAgIGxvZygiKiBTaW11bGF0aW5nIFNlcnZpY2UgV29ya2VyIHByb2Nl
c3MgY3Jhc2giKTsKLSAgICAgICAgdGVzdFJ1bm5lci50ZXJtaW5hdGVTZXJ2aWNlV29ya2Vycygp
OworICAgICAgICBhd2FpdCB0ZXN0UnVubmVyLnRlcm1pbmF0ZVNlcnZpY2VXb3JrZXJzKCk7CiAK
ICAgICAgICAgaGFuZGxlID0gc2V0SW50ZXJ2YWwoZnVuY3Rpb24oKSB7CiAgICAgICAgICAgICBy
ZW1haW5pbmdBdHRlbXB0cy0tOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93
b3JrZXJzL3NlcnZpY2UvcmVzb3VyY2VzL3Bvc3RtZXNzYWdlLWFmdGVyLXRlcm1pbmF0ZS5qcyBi
L0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd29ya2Vycy9zZXJ2aWNlL3Jlc291cmNlcy9wb3N0bWVz
c2FnZS1hZnRlci10ZXJtaW5hdGUuanMKaW5kZXggYWM3Y2FkNzRlYzZhZThlMTA5MDk1NTc1MzBi
ZTRlOGEyZTQzZDBmNy4uMDkyMDQzMzI4MjU0NDgyZTEzNzY5ZDY2ZWI0NmRjYTkzMWE4YWE4MCAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93b3JrZXJzL3NlcnZpY2UvcmVzb3Vy
Y2VzL3Bvc3RtZXNzYWdlLWFmdGVyLXRlcm1pbmF0ZS5qcworKysgYi9MYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL3dvcmtlcnMvc2VydmljZS9yZXNvdXJjZXMvcG9zdG1lc3NhZ2UtYWZ0ZXItdGVybWlu
YXRlLmpzCkBAIC0xLDkgKzEsOSBAQAogdmFyIG1lc3NhZ2VOdW1iZXIgPSAxOwotbmF2aWdhdG9y
LnNlcnZpY2VXb3JrZXIuYWRkRXZlbnRMaXN0ZW5lcigibWVzc2FnZSIsIGZ1bmN0aW9uKGV2ZW50
KSB7CituYXZpZ2F0b3Iuc2VydmljZVdvcmtlci5hZGRFdmVudExpc3RlbmVyKCJtZXNzYWdlIiwg
YXN5bmMgZnVuY3Rpb24oZXZlbnQpIHsKICAgICBsb2coIlBBU1M6IENsaWVudCByZWNlaXZlZCBt
ZXNzYWdlIGZyb20gc2VydmljZSB3b3JrZXIsIG9yaWdpbjogIiArIGV2ZW50Lm9yaWdpbik7CiAg
ICAgbG9nKGV2ZW50LmRhdGEpOwogICAgIGlmIChtZXNzYWdlTnVtYmVyID09IDEpIHsKLSAgICAg
ICAgd2luZG93LmludGVybmFscy50ZXJtaW5hdGVTZXJ2aWNlV29ya2VyKGV2ZW50LnNvdXJjZSk7
CisgICAgICAgIGF3YWl0IHdpbmRvdy5pbnRlcm5hbHMudGVybWluYXRlU2VydmljZVdvcmtlcihl
dmVudC5zb3VyY2UpOwogICAgICAgICBldmVudC5zb3VyY2UucG9zdE1lc3NhZ2UoIk1lc3NhZ2Ug
MiIpOwogICAgICAgICBtZXNzYWdlTnVtYmVyKys7CiAgICAgfSBlbHNlCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dvcmtlcnMvc2VydmljZS9yZXNvdXJjZXMvcG9zdG1lc3Nh
Z2UtYWZ0ZXItdGVybWluYXRpbmctaHVuZy13b3JrZXIuanMgYi9MYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL3dvcmtlcnMvc2VydmljZS9yZXNvdXJjZXMvcG9zdG1lc3NhZ2UtYWZ0ZXItdGVybWluYXRp
bmctaHVuZy13b3JrZXIuanMKaW5kZXggODZhNDMxYjVjNzIxZTAyOTIwNmEyYTMzOWFhMWRiODA4
OWExZmNkMi4uZmQ0YWQ0Njk4NjMyYzI5YzM3N2RmNGU5NTgxODA1YzU4ZTMxZDE5ZiAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93b3JrZXJzL3NlcnZpY2UvcmVzb3VyY2VzL3Bv
c3RtZXNzYWdlLWFmdGVyLXRlcm1pbmF0aW5nLWh1bmctd29ya2VyLmpzCisrKyBiL0xheW91dFRl
c3RzL2h0dHAvdGVzdHMvd29ya2Vycy9zZXJ2aWNlL3Jlc291cmNlcy9wb3N0bWVzc2FnZS1hZnRl
ci10ZXJtaW5hdGluZy1odW5nLXdvcmtlci5qcwpAQCAtMSwxMiArMSwxMiBAQAogbGV0IHN0YXRl
ID0gIldhaXRpbmdGb3JIYW5nIjsKIAotbmF2aWdhdG9yLnNlcnZpY2VXb3JrZXIuYWRkRXZlbnRM
aXN0ZW5lcigibWVzc2FnZSIsIGZ1bmN0aW9uKGV2ZW50KSB7CituYXZpZ2F0b3Iuc2VydmljZVdv
cmtlci5hZGRFdmVudExpc3RlbmVyKCJtZXNzYWdlIiwgYXN5bmMgZnVuY3Rpb24oZXZlbnQpIHsK
ICAgICBsb2coZXZlbnQuZGF0YSk7CiAgICAgaWYgKHN0YXRlID09PSAiV2FpdGluZ0Zvckhhbmci
KSB7CiAgICAgICAgIGxvZygiUEFTUzogU2VydmljZVdvcmtlciByZWNlaXZlZCBtZXNzYWdlOiAi
ICsgZXZlbnQuZGF0YSk7CiAgICAgICAgIGxvZygiU2VydmljZSBXb3JrZXIgc2hvdWxkIG5vdyBi
ZSBodW5nIik7CiAgICAgICAgIGxvZygiVGVybWluYXRpbmcgc2VydmljZSB3b3JrZXIuLi4iKQot
ICAgICAgICBpbnRlcm5hbHMudGVybWluYXRlU2VydmljZVdvcmtlcih3b3JrZXIpOworICAgICAg
ICBhd2FpdCBpbnRlcm5hbHMudGVybWluYXRlU2VydmljZVdvcmtlcih3b3JrZXIpOwogICAgICAg
ICBsb2coIlRlcm1pbmF0ZWQgc2VydmljZSB3b3JrZXIuIik7CiAgICAgICAgIHN0YXRlID0gIldh
aXRpbmdGb3JNZXNzYWdlQWZ0ZXJUZXJtaW5hdGluZ0h1bmdTZXJ2aWNlV29ya2VyIgogICAgICAg
ICBoYW5kbGUgPSBzZXRJbnRlcnZhbChmdW5jdGlvbigpIHsK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>395256</attachid>
            <date>2020-04-02 03:02:18 -0700</date>
            <delta_ts>2020-04-02 04:01:00 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-209666-20200402120214.patch</filename>
            <type>text/plain</type>
            <size>41936</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU5MzUwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZjAzM2ZlNzIxMWVlODU0
OWIzNzQyYjFkMjkyOTc4NWVmYjZiZmE4Zi4uYjA3N2FkZDE1OWZjMWI0Mjk0YzY5YWFhMTljZDA0
ODY0MzBjNGI5NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ1IEBACisyMDIwLTA0LTAyICB5b3Vl
bm4gZmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBSZW1vdmUgc3luY2hyb25v
dXMgdGVybWluYXRpb24gb2Ygc2VydmljZSB3b3JrZXJzCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDk2NjYKKworICAgICAgICBSZXZpZXdlZCBieSBD
aHJpcyBEdW1lei4KKworICAgICAgICBJbnN0ZWFkIG9mIHN1cHBvcnRpbmcgc3luY2hyb25vdXMg
SVBDIHRvIHRlcm1pbmF0ZSBhIHNlcnZpY2Ugd29ya2VyLCBTV1NlcnZlcldvcmtlciB3aWxsIGFz
eW5jaHJvbm91c2x5IGFzayBmb3IgdGhlIHNlcnZpY2Ugd29ya2VyIHRvIHRlcm1pbmF0ZS4KKyAg
ICAgICAgSWYgaXQgaXMgbm90IHRlcm1pbmF0ZWQgYWZ0ZXIgc29tZSB0aW1lLCBTV1NlcnZlcldv
cmtlciB3aWxsIHRoZW4gYXNrIHRvIHRlcm1pbmF0ZSB0aGUgcHJvY2VzcyBydW5uaW5nIHRoZSBz
ZXJ2aWNlIHdvcmtlci4KKyAgICAgICAgVGltZSBpcyBrZXB0IHRvIDEwIHNlY29uZHMuCisKKyAg
ICAgICAgV2UgY2FuIHRoZW4gcmVtb3ZlIGFsbCBzeW5jaHJvbm91cyByZWxhdGVkIGNvZGUgcmVs
YXRlZCB0byB0ZXJtaW5hdGlvbi4KKyAgICAgICAgV2UgbWlncmF0ZSB0aGUgdGVybWluYXRlU2Vy
dmljZVdvcmtlciBpbnRlcm5hbCBBUEkgdG8gYmUgUHJvbWlzZSBiYXNlZC4KKworICAgICAgICBD
b3ZlcmVkIGJ5IGV4aXN0aW5nIHRlc3RzLgorCisgICAgICAgICogdGVzdGluZy9JbnRlcm5hbHMu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6SW50ZXJuYWxzOjp0ZXJtaW5hdGVTZXJ2aWNlV29ya2Vy
KToKKyAgICAgICAgKiB0ZXN0aW5nL0ludGVybmFscy5oOgorICAgICAgICAqIHRlc3RpbmcvSW50
ZXJuYWxzLmlkbDoKKyAgICAgICAgKiB3b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlclByb3Zp
ZGVyLmg6CisgICAgICAgICogd29ya2Vycy9zZXJ2aWNlL1NXQ2xpZW50Q29ubmVjdGlvbi5oOgor
ICAgICAgICAqIHdvcmtlcnMvc2VydmljZS9Xb3JrZXJTV0NsaWVudENvbm5lY3Rpb24uY3BwOgor
ICAgICAgICAqIHdvcmtlcnMvc2VydmljZS9Xb3JrZXJTV0NsaWVudENvbm5lY3Rpb24uaDoKKyAg
ICAgICAgKiB3b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1NXU2VydmVyLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OlNXU2VydmVyOjp+U1dTZXJ2ZXIpOgorICAgICAgICAoV2ViQ29yZTo6U1dTZXJ2ZXI6
OnVucmVnaXN0ZXJTZXJ2aWNlV29ya2VyQ2xpZW50KToKKyAgICAgICAgKiB3b3JrZXJzL3NlcnZp
Y2Uvc2VydmVyL1NXU2VydmVyLmg6CisgICAgICAgICogd29ya2Vycy9zZXJ2aWNlL3NlcnZlci9T
V1NlcnZlclRvQ29udGV4dENvbm5lY3Rpb24uaDoKKyAgICAgICAgKiB3b3JrZXJzL3NlcnZpY2Uv
c2VydmVyL1NXU2VydmVyV29ya2VyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Om1fdGVybWluYXRp
b25UaW1lcik6CisgICAgICAgIChXZWJDb3JlOjpTV1NlcnZlcldvcmtlcjo6flNXU2VydmVyV29y
a2VyKToKKyAgICAgICAgKFdlYkNvcmU6OlNXU2VydmVyV29ya2VyOjp0ZXJtaW5hdGUpOgorICAg
ICAgICAoV2ViQ29yZTo6U1dTZXJ2ZXJXb3JrZXI6OnN0YXJ0VGVybWluYXRpb24pOgorICAgICAg
ICAoV2ViQ29yZTo6U1dTZXJ2ZXJXb3JrZXI6OnRlcm1pbmF0ZUNvbXBsZXRlZCk6CisgICAgICAg
IChXZWJDb3JlOjpTV1NlcnZlcldvcmtlcjo6Y2FsbFRlcm1pbmF0aW9uQ2FsbGJhY2tzKToKKyAg
ICAgICAgKFdlYkNvcmU6OlNXU2VydmVyV29ya2VyOjp0ZXJtaW5hdGlvblRpbWVyRmlyZWQpOgor
ICAgICAgICAoV2ViQ29yZTo6U1dTZXJ2ZXJXb3JrZXI6OnNldFN0YXRlKToKKyAgICAgICAgKFdl
YkNvcmU6OlNXU2VydmVyV29ya2VyOjpkaWRGYWlsSGVhcnRCZWF0Q2hlY2spOgorICAgICAgICAq
IHdvcmtlcnMvc2VydmljZS9zZXJ2ZXIvU1dTZXJ2ZXJXb3JrZXIuaDoKKyAgICAgICAgKFdlYkNv
cmU6OlNXU2VydmVyV29ya2VyOjp0ZXJtaW5hdGUpOgorCiAyMDIwLTA0LTAxICB5b3Vlbm4gZmFi
bGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KIAogICAgICAgICBBZGQgaW5pdGlhbCBzdXBwb3J0IGZv
ciBXZWJSVEMgSEVWQwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3Vy
Y2UvV2ViS2l0L0NoYW5nZUxvZwppbmRleCBlNTJjZmE2MjJlMjFmOGVmNGM4MWJiMGRmN2E5Njdk
MDc4ZGUxMjA0Li45YmNmMjNhM2UyYjM2NzBiMTk3YjU1ZjczYjA3NWQzOTEwOWI3YmQ2IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5n
ZUxvZwpAQCAtMSwzICsxLDMwIEBACisyMDIwLTA0LTAyICB5b3Vlbm4gZmFibGV0ICA8eW91ZW5u
QGFwcGxlLmNvbT4KKworICAgICAgICBSZW1vdmUgc3luY2hyb25vdXMgdGVybWluYXRpb24gb2Yg
c2VydmljZSB3b3JrZXJzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0yMDk2NjYKKworICAgICAgICBSZXZpZXdlZCBieSBDaHJpcyBEdW1lei4KKworICAg
ICAgICBVcGRhdGUgSVBDIGNvZGUgYWNjb3JkaW5nIHJlbW92YWwgb2Ygc3luY2hyb25vdXMgdGVy
bWluYXRpb24gb2Ygc2VydmljZSB3b3JrZXIuCisgICAgICAgIEltcGxlbWVudCBhc3luYy13aXRo
LXJlcGx5IHRlcm1pbmF0aW9uIGluc3RlYWQuCisKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9T
ZXJ2aWNlV29ya2VyL1dlYlNXU2VydmVyQ29ubmVjdGlvbi5jcHA6CisgICAgICAgIChXZWJLaXQ6
OldlYlNXU2VydmVyQ29ubmVjdGlvbjo6dGVybWluYXRlV29ya2VyRnJvbUNsaWVudCk6CisgICAg
ICAgIChXZWJLaXQ6OldlYlNXU2VydmVyQ29ubmVjdGlvbjo6ZmV0Y2hUYXNrVGltZWRPdXQpOgor
ICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL1NlcnZpY2VXb3JrZXIvV2ViU1dTZXJ2ZXJDb25uZWN0
aW9uLmg6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvU2VydmljZVdvcmtlci9XZWJTV1NlcnZl
ckNvbm5lY3Rpb24ubWVzc2FnZXMuaW46CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvU2Vydmlj
ZVdvcmtlci9XZWJTV1NlcnZlclRvQ29udGV4dENvbm5lY3Rpb24uY3BwOgorICAgICAgICAoV2Vi
S2l0OjpXZWJTV1NlcnZlclRvQ29udGV4dENvbm5lY3Rpb246OnRlcm1pbmF0ZUR1ZVRvVW5yZXNw
b25zaXZlbmVzcyk6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvU2VydmljZVdvcmtlci9XZWJT
V1NlcnZlclRvQ29udGV4dENvbm5lY3Rpb24uaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1N0b3Jh
Z2UvV2ViU2VydmljZVdvcmtlclByb3ZpZGVyLmNwcDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1N0
b3JhZ2UvV2ViU2VydmljZVdvcmtlclByb3ZpZGVyLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9T
dG9yYWdlL1dlYlNXQ2xpZW50Q29ubmVjdGlvbi5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlNX
Q2xpZW50Q29ubmVjdGlvbjo6dGVybWluYXRlV29ya2VyRm9yVGVzdGluZyk6CisgICAgICAgICog
V2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNXQ2xpZW50Q29ubmVjdGlvbi5oOgorICAgICAgICAqIFdl
YlByb2Nlc3MvU3RvcmFnZS9XZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbi5jcHA6CisgICAg
ICAgICogV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uLmg6
CisgICAgICAgICogV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0
aW9uLm1lc3NhZ2VzLmluOgorCiAyMDIwLTA0LTAxICB5b3Vlbm4gZmFibGV0ICA8eW91ZW5uQGFw
cGxlLmNvbT4KIAogICAgICAgICBBZGQgaW5pdGlhbCBzdXBwb3J0IGZvciBXZWJSVEMgSEVWQwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuY3BwIGIvU291cmNl
L1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuY3BwCmluZGV4IDY4NWNkMzUwZTYyNTY4Y2RmNjlk
ODY2NDJiYjJhYzk0MmQ4MGYyODIuLjNjNzc1YmE3YTQzMmJmYTFlMjg0NTc1ZGRmYWRiNTcxM2Fi
YWVjMWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5jcHAKQEAgLTUxNTIsMTIgKzUx
NTIsMTEgQEAgdm9pZCBJbnRlcm5hbHM6Omhhc1NlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb24oY29u
c3QgU3RyaW5nJiBjbGllbnRVUkwsIEhhc1JlZ2lzdHIKICAgICB9KTsKIH0KIAotdm9pZCBJbnRl
cm5hbHM6OnRlcm1pbmF0ZVNlcnZpY2VXb3JrZXIoU2VydmljZVdvcmtlciYgd29ya2VyKQordm9p
ZCBJbnRlcm5hbHM6OnRlcm1pbmF0ZVNlcnZpY2VXb3JrZXIoU2VydmljZVdvcmtlciYgd29ya2Vy
LCBET01Qcm9taXNlRGVmZXJyZWQ8dm9pZD4mJiBwcm9taXNlKQogewotICAgIGlmICghY29udGV4
dERvY3VtZW50KCkpCi0gICAgICAgIHJldHVybjsKLQotICAgIFNlcnZpY2VXb3JrZXJQcm92aWRl
cjo6c2luZ2xldG9uKCkuc2VydmljZVdvcmtlckNvbm5lY3Rpb24oKS5zeW5jVGVybWluYXRlV29y
a2VyKHdvcmtlci5pZGVudGlmaWVyKCkpOworICAgIFNlcnZpY2VXb3JrZXJQcm92aWRlcjo6c2lu
Z2xldG9uKCkudGVybWluYXRlV29ya2VyRm9yVGVzdGluZyh3b3JrZXIuaWRlbnRpZmllcigpLCBb
cHJvbWlzZSA9IFdURk1vdmUocHJvbWlzZSldKCkgbXV0YWJsZSB7CisgICAgICAgIHByb21pc2Uu
cmVzb2x2ZSgpOworICAgIH0pOwogfQogCiB2b2lkIEludGVybmFsczo6aXNTZXJ2aWNlV29ya2Vy
UnVubmluZyhTZXJ2aWNlV29ya2VyJiB3b3JrZXIsIERPTVByb21pc2VEZWZlcnJlZDxJRExCb29s
ZWFuPiYmIHByb21pc2UpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVy
bmFscy5oIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaAppbmRleCAxMjRmMGVj
ZTFjOWRhZWEzNzY3MmExNTJkMjAxOWI5NDIyMDE3YTczLi4wZmM4YzM0NzY0YTRiZmRlOGYyMDc0
YWQ4NWI5M2M1NDNlZWNlYTg0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0lu
dGVybmFscy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmgKQEAgLTc4
NCw3ICs3ODQsNyBAQCBwdWJsaWM6CiAjaWYgRU5BQkxFKFNFUlZJQ0VfV09SS0VSKQogICAgIHVz
aW5nIEhhc1JlZ2lzdHJhdGlvblByb21pc2UgPSBET01Qcm9taXNlRGVmZXJyZWQ8SURMQm9vbGVh
bj47CiAgICAgdm9pZCBoYXNTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uKGNvbnN0IFN0cmluZyYg
Y2xpZW50VVJMLCBIYXNSZWdpc3RyYXRpb25Qcm9taXNlJiYpOwotICAgIHZvaWQgdGVybWluYXRl
U2VydmljZVdvcmtlcihTZXJ2aWNlV29ya2VyJik7CisgICAgdm9pZCB0ZXJtaW5hdGVTZXJ2aWNl
V29ya2VyKFNlcnZpY2VXb3JrZXImLCBET01Qcm9taXNlRGVmZXJyZWQ8dm9pZD4mJik7CiAgICAg
dm9pZCBpc1NlcnZpY2VXb3JrZXJSdW5uaW5nKFNlcnZpY2VXb3JrZXImLCBET01Qcm9taXNlRGVm
ZXJyZWQ8SURMQm9vbGVhbj4mJik7CiAjZW5kaWYKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvdGVzdGluZy9JbnRlcm5hbHMuaWRsIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5h
bHMuaWRsCmluZGV4IDZkZTI2ODU1ZGNmMDg2ZTYxNDQ5N2U0MWU0NGMwY2YxMmQ2YzNiMmYuLmU5
OTRmOGI4NWJjZjEzNzcwNDc2NTAzZGQ3OWVjZjVmYjlmNzg1MjEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0
aW5nL0ludGVybmFscy5pZGwKQEAgLTc3MCw3ICs3NzAsNyBAQCBlbnVtIENvbXBvc2l0aW5nUG9s
aWN5IHsKICAgICBib29sZWFuIGF1ZGlvU2Vzc2lvbkFjdGl2ZSgpOwogCiAgICAgW0NvbmRpdGlv
bmFsPVNFUlZJQ0VfV09SS0VSXSBQcm9taXNlPGJvb2xlYW4+IGhhc1NlcnZpY2VXb3JrZXJSZWdp
c3RyYXRpb24oRE9NU3RyaW5nIHNjb3BlVVJMKTsKLSAgICBbQ29uZGl0aW9uYWw9U0VSVklDRV9X
T1JLRVJdIHZvaWQgdGVybWluYXRlU2VydmljZVdvcmtlcihTZXJ2aWNlV29ya2VyIHdvcmtlcik7
CisgICAgW0NvbmRpdGlvbmFsPVNFUlZJQ0VfV09SS0VSXSBQcm9taXNlPHZvaWQ+IHRlcm1pbmF0
ZVNlcnZpY2VXb3JrZXIoU2VydmljZVdvcmtlciB3b3JrZXIpOwogICAgIFtDb25kaXRpb25hbD1T
RVJWSUNFX1dPUktFUl0gUHJvbWlzZTxib29sZWFuPiBpc1NlcnZpY2VXb3JrZXJSdW5uaW5nKFNl
cnZpY2VXb3JrZXIgd29ya2VyKTsKIAogICAgIFtDYWxsV2l0aD1Eb2N1bWVudCwgQ29uZGl0aW9u
YWw9QVBQTEVfUEFZXSByZWFkb25seSBhdHRyaWJ1dGUgTW9ja1BheW1lbnRDb29yZGluYXRvciBt
b2NrUGF5bWVudENvb3JkaW5hdG9yOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vy
cy9zZXJ2aWNlL1NXQ2xpZW50Q29ubmVjdGlvbi5oIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9z
ZXJ2aWNlL1NXQ2xpZW50Q29ubmVjdGlvbi5oCmluZGV4IGIyYmM0NGQxOGQ1NDQwMDAzOWM2MThm
ZTMwMDg2NGQ2YWY0YmNhZTcuLjliMzk0YzExOGM2MjUwMzYxZTc0NzJmZWQ1MTk3MjM2YmZlYjU0
ZWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9TV0NsaWVudENv
bm5lY3Rpb24uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvU1dDbGllbnRD
b25uZWN0aW9uLmgKQEAgLTc5LDcgKzc5LDYgQEAgcHVibGljOgogCiAgICAgdmlydHVhbCBTV1Nl
cnZlckNvbm5lY3Rpb25JZGVudGlmaWVyIHNlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyKCkgY29u
c3QgPSAwOwogICAgIHZpcnR1YWwgYm9vbCBtYXlIYXZlU2VydmljZVdvcmtlclJlZ2lzdGVyZWRG
b3JPcmlnaW4oY29uc3QgU2VjdXJpdHlPcmlnaW5EYXRhJikgY29uc3QgPSAwOwotICAgIHZpcnR1
YWwgdm9pZCBzeW5jVGVybWluYXRlV29ya2VyKFNlcnZpY2VXb3JrZXJJZGVudGlmaWVyKSA9IDA7
CiAKICAgICB2aXJ0dWFsIHZvaWQgcmVnaXN0ZXJTZXJ2aWNlV29ya2VyQ2xpZW50KGNvbnN0IFNl
Y3VyaXR5T3JpZ2luJiB0b3BPcmlnaW4sIGNvbnN0IFNlcnZpY2VXb3JrZXJDbGllbnREYXRhJiwg
Y29uc3QgT3B0aW9uYWw8U2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbklkZW50aWZpZXI+JiwgY29u
c3QgU3RyaW5nJiB1c2VyQWdlbnQpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgdW5yZWdpc3RlclNl
cnZpY2VXb3JrZXJDbGllbnQoRG9jdW1lbnRJZGVudGlmaWVyKSA9IDA7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlclByb3ZpZGVyLmggYi9T
b3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlclByb3ZpZGVyLmgKaW5k
ZXggZTI5NjdiZTBiYjBjMzMzMDk3ODMwMjUyYTY3Mjk1N2I2NDU4MTJhMi4uMGFkZmU5NGU1YmMw
YTNlYjU0NDA4Mzg0YzRhMmNlYjVlMzBlMTVjNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
d29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXJQcm92aWRlci5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3dvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2VyUHJvdmlkZXIuaApAQCAtNDEsNiArNDEs
NyBAQCBwdWJsaWM6CiAgICAgc3RhdGljIHZvaWQgc2V0U2hhcmVkUHJvdmlkZXIoU2VydmljZVdv
cmtlclByb3ZpZGVyJik7CiAKICAgICB2aXJ0dWFsIFNXQ2xpZW50Q29ubmVjdGlvbiYgc2Vydmlj
ZVdvcmtlckNvbm5lY3Rpb24oKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIHRlcm1pbmF0ZVdvcmtl
ckZvclRlc3RpbmcoU2VydmljZVdvcmtlcklkZW50aWZpZXIsIENvbXBsZXRpb25IYW5kbGVyPHZv
aWQoKT4mJikgPSAwOwogCiAgICAgdm9pZCBzZXRNYXlIYXZlUmVnaXN0ZXJlZFNlcnZpY2VXb3Jr
ZXJzKCkgeyBtX21heUhhdmVSZWdpc3RlcmVkU2VydmljZVdvcmtlcnMgPSB0cnVlOyB9CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9Xb3JrZXJTV0NsaWVudENv
bm5lY3Rpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL1dvcmtlclNXQ2xp
ZW50Q29ubmVjdGlvbi5jcHAKaW5kZXggNzU4MjU3NWRkZjM2ZDVlNGZmNmFiMjFkNjc4ZjFmYjU3
MTIxZDFlZC4uN2M2MzA5YWQwZjdlOTllYmIxNDYyM2JmMGEzZjlkOTg5ZWZlNTlkZSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL1dvcmtlclNXQ2xpZW50Q29ubmVj
dGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL1dvcmtlclNXQ2xp
ZW50Q29ubmVjdGlvbi5jcHAKQEAgLTE1NSwxNCArMTU1LDYgQEAgYm9vbCBXb3JrZXJTV0NsaWVu
dENvbm5lY3Rpb246Om1heUhhdmVTZXJ2aWNlV29ya2VyUmVnaXN0ZXJlZEZvck9yaWdpbihjb25z
dCBTZWMKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotdm9pZCBXb3JrZXJTV0NsaWVudENvbm5lY3Rp
b246OnN5bmNUZXJtaW5hdGVXb3JrZXIoU2VydmljZVdvcmtlcklkZW50aWZpZXIgaWRlbnRpZmll
cikKLXsKLSAgICBjYWxsT25NYWluVGhyZWFkKFtpZGVudGlmaWVyXSgpIG11dGFibGUgewotICAg
ICAgICBhdXRvJiBjb25uZWN0aW9uID0gU2VydmljZVdvcmtlclByb3ZpZGVyOjpzaW5nbGV0b24o
KS5zZXJ2aWNlV29ya2VyQ29ubmVjdGlvbigpOwotICAgICAgICBjb25uZWN0aW9uLnN5bmNUZXJt
aW5hdGVXb3JrZXIoaWRlbnRpZmllcik7Ci0gICAgfSk7Ci19Ci0KIHZvaWQgV29ya2VyU1dDbGll
bnRDb25uZWN0aW9uOjpyZWdpc3RlclNlcnZpY2VXb3JrZXJDbGllbnQoY29uc3QgU2VjdXJpdHlP
cmlnaW4mIHRvcE9yaWdpbiwgY29uc3QgU2VydmljZVdvcmtlckNsaWVudERhdGEmIGRhdGEsIGNv
bnN0IE9wdGlvbmFsPFNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25JZGVudGlmaWVyPiYgaWRlbnRp
ZmllciwgY29uc3QgU3RyaW5nJiB1c2VyQWdlbnQpCiB7CiAgICAgY2FsbE9uTWFpblRocmVhZChb
dG9wT3JpZ2luID0gdG9wT3JpZ2luLmlzb2xhdGVkQ29weSgpLCBkYXRhID0gY3Jvc3NUaHJlYWRD
b3B5KGRhdGEpLCBpZGVudGlmaWVyLCB1c2VyQWdlbnQgPSBjcm9zc1RocmVhZENvcHkodXNlckFn
ZW50KV0gewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL1dvcmtl
clNXQ2xpZW50Q29ubmVjdGlvbi5oIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL1dv
cmtlclNXQ2xpZW50Q29ubmVjdGlvbi5oCmluZGV4IDUxOGVhMmY0YjY0ZWE1YmExMjMwZDE4YWZi
NjdhOGM2NTczZDcyNmQuLmI0MTc5MTMyMDY4YTgxMGE0OTU0YjMyYTMwMzIwZjRiNzYyZTgwNzkg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9Xb3JrZXJTV0NsaWVu
dENvbm5lY3Rpb24uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvV29ya2Vy
U1dDbGllbnRDb25uZWN0aW9uLmgKQEAgLTUxLDcgKzUxLDYgQEAgcHJpdmF0ZToKICAgICB2b2lk
IHBvc3RNZXNzYWdlVG9TZXJ2aWNlV29ya2VyKFNlcnZpY2VXb3JrZXJJZGVudGlmaWVyIGRlc3Rp
bmF0aW9uLCBNZXNzYWdlV2l0aE1lc3NhZ2VQb3J0cyYmLCBjb25zdCBTZXJ2aWNlV29ya2VyT3JD
bGllbnRJZGVudGlmaWVyJiBzb3VyY2UpIGZpbmFsOwogICAgIFNXU2VydmVyQ29ubmVjdGlvbklk
ZW50aWZpZXIgc2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIoKSBjb25zdCBmaW5hbDsKICAgICBi
b29sIG1heUhhdmVTZXJ2aWNlV29ya2VyUmVnaXN0ZXJlZEZvck9yaWdpbihjb25zdCBTZWN1cml0
eU9yaWdpbkRhdGEmKSBjb25zdCBmaW5hbDsKLSAgICB2b2lkIHN5bmNUZXJtaW5hdGVXb3JrZXIo
U2VydmljZVdvcmtlcklkZW50aWZpZXIpIGZpbmFsOwogICAgIHZvaWQgcmVnaXN0ZXJTZXJ2aWNl
V29ya2VyQ2xpZW50KGNvbnN0IFNlY3VyaXR5T3JpZ2luJiB0b3BPcmlnaW4sIGNvbnN0IFNlcnZp
Y2VXb3JrZXJDbGllbnREYXRhJiwgY29uc3QgT3B0aW9uYWw8U2VydmljZVdvcmtlclJlZ2lzdHJh
dGlvbklkZW50aWZpZXI+JiwgY29uc3QgU3RyaW5nJiB1c2VyQWdlbnQpIGZpbmFsOwogICAgIHZv
aWQgdW5yZWdpc3RlclNlcnZpY2VXb3JrZXJDbGllbnQoRG9jdW1lbnRJZGVudGlmaWVyKSBmaW5h
bDsKICAgICB2b2lkIGZpbmlzaEZldGNoaW5nU2NyaXB0SW5TZXJ2ZXIoY29uc3QgU2VydmljZVdv
cmtlckZldGNoUmVzdWx0JikgZmluYWw7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3Jr
ZXJzL3NlcnZpY2Uvc2VydmVyL1NXU2VydmVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMv
c2VydmljZS9zZXJ2ZXIvU1dTZXJ2ZXIuY3BwCmluZGV4IGE4MTUxY2NkMTU0NDFiZWIzZTZmYWUy
YjUwMTFmNDk4NTkwODQyZGEuLmU2ZGY1MWExYzFlMmY3N2E1MGJhOGM2YjRkYmNmMTk0YWJjNmEy
ZDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9zZXJ2ZXIvU1dT
ZXJ2ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9zZXJ2ZXIvU1dT
ZXJ2ZXIuY3BwCkBAIC00OSw4ICs0OSw2IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotc3Rh
dGljIFNlY29uZHMgdGVybWluYXRpb25EZWxheSB7IDEwX3MgfTsKLQogU1dTZXJ2ZXI6OkNvbm5l
Y3Rpb246OkNvbm5lY3Rpb24oU1dTZXJ2ZXImIHNlcnZlciwgSWRlbnRpZmllciBpZGVudGlmaWVy
KQogICAgIDogbV9zZXJ2ZXIoc2VydmVyKQogICAgICwgbV9pZGVudGlmaWVyKGlkZW50aWZpZXIp
CkBAIC03OSw3ICs3Nyw3IEBAIFNXU2VydmVyOjp+U1dTZXJ2ZXIoKQogICAgICAgICAgICAgcnVu
bmluZ1dvcmtlcnMuYXBwZW5kKHdvcmtlci5wdHIoKSk7CiAgICAgfQogICAgIGZvciAoYXV0byYg
cnVubmluZ1dvcmtlciA6IHJ1bm5pbmdXb3JrZXJzKQotICAgICAgICB0ZXJtaW5hdGVXb3JrZXIo
KnJ1bm5pbmdXb3JrZXIpOworICAgICAgICBydW5uaW5nV29ya2VyLT50ZXJtaW5hdGUoKTsKIAog
ICAgIGFsbFNlcnZlcnMoKS5yZW1vdmUodGhpcyk7CiB9CkBAIC0zMDcsMTIgKzMwNSw2IEBAIHZv
aWQgU1dTZXJ2ZXI6OkNvbm5lY3Rpb246OnJlbW92ZVNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25J
blNlcnZlcihTZXJ2aWNlV29ya2VyCiAgICAgbV9zZXJ2ZXIucmVtb3ZlQ2xpZW50U2VydmljZVdv
cmtlclJlZ2lzdHJhdGlvbigqdGhpcywgaWRlbnRpZmllcik7CiB9CiAKLXZvaWQgU1dTZXJ2ZXI6
OkNvbm5lY3Rpb246OnN5bmNUZXJtaW5hdGVXb3JrZXIoU2VydmljZVdvcmtlcklkZW50aWZpZXIg
aWRlbnRpZmllcikKLXsKLSAgICBpZiAoYXV0byogd29ya2VyID0gbV9zZXJ2ZXIud29ya2VyQnlJ
RChpZGVudGlmaWVyKSkKLSAgICAgICAgbV9zZXJ2ZXIuc3luY1Rlcm1pbmF0ZVdvcmtlcigqd29y
a2VyKTsKLX0KLQogU1dTZXJ2ZXI6OlNXU2VydmVyKFVuaXF1ZVJlZjxTV09yaWdpblN0b3JlPiYm
IG9yaWdpblN0b3JlLCBib29sIHByb2Nlc3NUZXJtaW5hdGlvbkRlbGF5RW5hYmxlZCwgU3RyaW5n
JiYgcmVnaXN0cmF0aW9uRGF0YWJhc2VEaXJlY3RvcnksIFBBTDo6U2Vzc2lvbklEIHNlc3Npb25J
RCwgU29mdFVwZGF0ZUNhbGxiYWNrJiYgc29mdFVwZGF0ZUNhbGxiYWNrLCBDcmVhdGVDb250ZXh0
Q29ubmVjdGlvbkNhbGxiYWNrJiYgY2FsbGJhY2spCiAgICAgOiBtX29yaWdpblN0b3JlKFdURk1v
dmUob3JpZ2luU3RvcmUpKQogICAgICwgbV9zZXNzaW9uSUQoc2Vzc2lvbklEKQpAQCAtNzMzLDQz
ICs3MjUsNiBAQCBib29sIFNXU2VydmVyOjpydW5TZXJ2aWNlV29ya2VyKFNlcnZpY2VXb3JrZXJJ
ZGVudGlmaWVyIGlkZW50aWZpZXIpCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLXZvaWQgU1dTZXJ2
ZXI6OnRlcm1pbmF0ZVdvcmtlcihTV1NlcnZlcldvcmtlciYgd29ya2VyKQotewotICAgIHRlcm1p
bmF0ZVdvcmtlckludGVybmFsKHdvcmtlciwgQXN5bmNocm9ub3VzKTsKLX0KLQotdm9pZCBTV1Nl
cnZlcjo6c3luY1Rlcm1pbmF0ZVdvcmtlcihTV1NlcnZlcldvcmtlciYgd29ya2VyKQotewotICAg
IHRlcm1pbmF0ZVdvcmtlckludGVybmFsKHdvcmtlciwgU3luY2hyb25vdXMpOwotfQotCi12b2lk
IFNXU2VydmVyOjp0ZXJtaW5hdGVXb3JrZXJJbnRlcm5hbChTV1NlcnZlcldvcmtlciYgd29ya2Vy
LCBUZXJtaW5hdGlvbk1vZGUgbW9kZSkKLXsKLSAgICBBU1NFUlQobV9ydW5uaW5nT3JUZXJtaW5h
dGluZ1dvcmtlcnMuZ2V0KHdvcmtlci5pZGVudGlmaWVyKCkpID09ICZ3b3JrZXIpOwotICAgIEFT
U0VSVCh3b3JrZXIuaXNSdW5uaW5nKCkpOwotCi0gICAgUkVMRUFTRV9MT0coU2VydmljZVdvcmtl
ciwgIiVwIC0gU1dTZXJ2ZXI6OnRlcm1pbmF0ZVdvcmtlckludGVybmFsOiBUZXJtaW5hdGluZyBz
ZXJ2aWNlIHdvcmtlciAlbGx1IiwgdGhpcywgd29ya2VyLmlkZW50aWZpZXIoKS50b1VJbnQ2NCgp
KTsKLQotICAgIHdvcmtlci5zZXRTdGF0ZShTV1NlcnZlcldvcmtlcjo6U3RhdGU6OlRlcm1pbmF0
aW5nKTsKLQotICAgIGF1dG8qIGNvbnRleHRDb25uZWN0aW9uID0gd29ya2VyLmNvbnRleHRDb25u
ZWN0aW9uKCk7Ci0gICAgQVNTRVJUKGNvbnRleHRDb25uZWN0aW9uKTsKLSAgICBpZiAoIWNvbnRl
eHRDb25uZWN0aW9uKSB7Ci0gICAgICAgIExPR19FUlJPUigiUmVxdWVzdCB0byB0ZXJtaW5hdGUg
YSB3b3JrZXIgd2hvc2UgY29udGV4dCBjb25uZWN0aW9uIGRvZXMgbm90IGV4aXN0Iik7Ci0gICAg
ICAgIHdvcmtlckNvbnRleHRUZXJtaW5hdGVkKHdvcmtlcik7Ci0gICAgICAgIHJldHVybjsKLSAg
ICB9Ci0KLSAgICBzd2l0Y2ggKG1vZGUpIHsKLSAgICBjYXNlIEFzeW5jaHJvbm91czoKLSAgICAg
ICAgY29udGV4dENvbm5lY3Rpb24tPnRlcm1pbmF0ZVdvcmtlcih3b3JrZXIuaWRlbnRpZmllcigp
KTsKLSAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBTeW5jaHJvbm91czoKLSAgICAgICAgY29udGV4
dENvbm5lY3Rpb24tPnN5bmNUZXJtaW5hdGVXb3JrZXIod29ya2VyLmlkZW50aWZpZXIoKSk7Ci0g
ICAgICAgIGJyZWFrOwotICAgIH07Ci19Ci0KIHZvaWQgU1dTZXJ2ZXI6Om1hcmtBbGxXb3JrZXJz
Rm9yUmVnaXN0cmFibGVEb21haW5Bc1Rlcm1pbmF0ZWQoY29uc3QgUmVnaXN0cmFibGVEb21haW4m
IHJlZ2lzdHJhYmxlRG9tYWluKQogewogICAgIFZlY3RvcjxTV1NlcnZlcldvcmtlcio+IHRlcm1p
bmF0ZWRXb3JrZXJzOwpAQCAtOTE3LDcgKzg3Miw3IEBAIHZvaWQgU1dTZXJ2ZXI6OnVucmVnaXN0
ZXJTZXJ2aWNlV29ya2VyQ2xpZW50KGNvbnN0IENsaWVudE9yaWdpbiYgY2xpZW50T3JpZ2luLCBT
CiAgICAgICAgICAgICAgICAgICAgIHdvcmtlcnNUb1Rlcm1pbmF0ZS5hcHBlbmQod29ya2VyLnB0
cigpKTsKICAgICAgICAgICAgIH0KICAgICAgICAgICAgIGZvciAoYXV0byogd29ya2VyIDogd29y
a2Vyc1RvVGVybWluYXRlKQotICAgICAgICAgICAgICAgIHRlcm1pbmF0ZVdvcmtlcigqd29ya2Vy
KTsKKyAgICAgICAgICAgICAgICB3b3JrZXItPnRlcm1pbmF0ZSgpOwogCiAgICAgICAgICAgICBp
ZiAoIW1fY2xpZW50c0J5UmVnaXN0cmFibGVEb21haW4uY29udGFpbnMoY2xpZW50UmVnaXN0cmFi
bGVEb21haW4pKSB7CiAgICAgICAgICAgICAgICAgaWYgKGF1dG8qIGNvbm5lY3Rpb24gPSBjb250
ZXh0Q29ubmVjdGlvbkZvclJlZ2lzdHJhYmxlRG9tYWluKGNsaWVudFJlZ2lzdHJhYmxlRG9tYWlu
KSkgewpAQCAtOTI4LDcgKzg4Myw3IEBAIHZvaWQgU1dTZXJ2ZXI6OnVucmVnaXN0ZXJTZXJ2aWNl
V29ya2VyQ2xpZW50KGNvbnN0IENsaWVudE9yaWdpbiYgY2xpZW50T3JpZ2luLCBTCiAKICAgICAg
ICAgICAgIG1fY2xpZW50SWRlbnRpZmllcnNQZXJPcmlnaW4ucmVtb3ZlKGNsaWVudE9yaWdpbik7
CiAgICAgICAgIH0pOwotICAgICAgICBpdGVyYXRvci0+dmFsdWUudGVybWluYXRlU2VydmljZVdv
cmtlcnNUaW1lci0+c3RhcnRPbmVTaG90KG1faXNQcm9jZXNzVGVybWluYXRpb25EZWxheUVuYWJs
ZWQgJiYgIU1lbW9yeVByZXNzdXJlSGFuZGxlcjo6c2luZ2xldG9uKCkuaXNVbmRlck1lbW9yeVBy
ZXNzdXJlKCkgPyB0ZXJtaW5hdGlvbkRlbGF5IDogMF9zKTsKKyAgICAgICAgaXRlcmF0b3ItPnZh
bHVlLnRlcm1pbmF0ZVNlcnZpY2VXb3JrZXJzVGltZXItPnN0YXJ0T25lU2hvdChtX2lzUHJvY2Vz
c1Rlcm1pbmF0aW9uRGVsYXlFbmFibGVkICYmICFNZW1vcnlQcmVzc3VyZUhhbmRsZXI6OnNpbmds
ZXRvbigpLmlzVW5kZXJNZW1vcnlQcmVzc3VyZSgpID8gZGVmYXVsdFRlcm1pbmF0aW9uRGVsYXkg
OiAwX3MpOwogICAgIH0KIAogICAgIGF1dG8gY2xpZW50c0J5UmVnaXN0cmFibGVEb21haW5JdGVy
YXRvciA9IG1fY2xpZW50c0J5UmVnaXN0cmFibGVEb21haW4uZmluZChjbGllbnRSZWdpc3RyYWJs
ZURvbWFpbik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2Uvc2Vy
dmVyL1NXU2VydmVyLmggYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1NX
U2VydmVyLmgKaW5kZXggYWVmMTk4MzA1NzEyYzIzYzQzYmYzMzAwZGM1MjMzNTQ4Yjc5MjgyOS4u
Mjg3OTI4M2VhZTBhZjgzZTk1NmM5OThlMzVmMDQ5NDNlZTczNWM2MyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL3NlcnZlci9TV1NlcnZlci5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9zZXJ2ZXIvU1dTZXJ2ZXIuaApAQCAtMTAyLDcgKzEw
Miw2IEBAIHB1YmxpYzoKICAgICAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBmaW5pc2hGZXRjaGlu
Z1NjcmlwdEluU2VydmVyKGNvbnN0IFNlcnZpY2VXb3JrZXJGZXRjaFJlc3VsdCYpOwogICAgICAg
ICBXRUJDT1JFX0VYUE9SVCB2b2lkIGFkZFNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25JblNlcnZl
cihTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uSWRlbnRpZmllcik7CiAgICAgICAgIFdFQkNPUkVf
RVhQT1JUIHZvaWQgcmVtb3ZlU2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbkluU2VydmVyKFNlcnZp
Y2VXb3JrZXJSZWdpc3RyYXRpb25JZGVudGlmaWVyKTsKLSAgICAgICAgV0VCQ09SRV9FWFBPUlQg
dm9pZCBzeW5jVGVybWluYXRlV29ya2VyKFNlcnZpY2VXb3JrZXJJZGVudGlmaWVyKTsKICAgICAg
ICAgV0VCQ09SRV9FWFBPUlQgdm9pZCB3aGVuUmVnaXN0cmF0aW9uUmVhZHkodWludDY0X3QgcmVn
aXN0cmF0aW9uUmVhZHlSZXF1ZXN0SWRlbnRpZmllciwgY29uc3QgU2VjdXJpdHlPcmlnaW5EYXRh
JiB0b3BPcmlnaW4sIGNvbnN0IFVSTCYgY2xpZW50VVJMKTsKIAogICAgICAgICBXRUJDT1JFX0VY
UE9SVCB2b2lkIHN0b3JlUmVnaXN0cmF0aW9uc09uRGlzayhDb21wbGV0aW9uSGFuZGxlcjx2b2lk
KCk+JiYpOwpAQCAtMTUyLDggKzE1MSw2IEBAIHB1YmxpYzoKICAgICB2b2lkIHN0YXJ0U2NyaXB0
RmV0Y2goY29uc3QgU2VydmljZVdvcmtlckpvYkRhdGEmLCBib29sIHNob3VsZFJlZnJlc2hDYWNo
ZSk7CiAKICAgICB2b2lkIHVwZGF0ZVdvcmtlcihjb25zdCBTZXJ2aWNlV29ya2VySm9iRGF0YUlk
ZW50aWZpZXImLCBTV1NlcnZlclJlZ2lzdHJhdGlvbiYsIGNvbnN0IFVSTCYsIGNvbnN0IFN0cmlu
ZyYgc2NyaXB0LCBjb25zdCBDb250ZW50U2VjdXJpdHlQb2xpY3lSZXNwb25zZUhlYWRlcnMmLCBj
b25zdCBTdHJpbmcmIHJlZmVycmVyUG9saWN5LCBXb3JrZXJUeXBlLCBIYXNoTWFwPFVSTCwgU2Vy
dmljZVdvcmtlckNvbnRleHREYXRhOjpJbXBvcnRlZFNjcmlwdD4mJik7Ci0gICAgdm9pZCB0ZXJt
aW5hdGVXb3JrZXIoU1dTZXJ2ZXJXb3JrZXImKTsKLSAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHN5
bmNUZXJtaW5hdGVXb3JrZXIoU1dTZXJ2ZXJXb3JrZXImKTsKICAgICB2b2lkIGZpcmVJbnN0YWxs
RXZlbnQoU1dTZXJ2ZXJXb3JrZXImKTsKICAgICB2b2lkIGZpcmVBY3RpdmF0ZUV2ZW50KFNXU2Vy
dmVyV29ya2VyJik7CiAKQEAgLTIxNSw2ICsyMTIsOCBAQCBwdWJsaWM6CiAKICAgICBXRUJDT1JF
X0VYUE9SVCB2b2lkIGhhbmRsZUxvd01lbW9yeVdhcm5pbmcoKTsKIAorICAgIHN0YXRpYyBjb25z
dGV4cHIgU2Vjb25kcyBkZWZhdWx0VGVybWluYXRpb25EZWxheSA9IDEwX3M7CisKIHByaXZhdGU6
CiAgICAgdm9pZCBzY3JpcHRGZXRjaEZpbmlzaGVkKGNvbnN0IFNlcnZpY2VXb3JrZXJGZXRjaFJl
c3VsdCYpOwogCkBAIC0yMzYsMTIgKzIzNSw2IEBAIHByaXZhdGU6CiAKICAgICB2b2lkIHBlcmZv
cm1HZXRPcmlnaW5zV2l0aFJlZ2lzdHJhdGlvbnNDYWxsYmFja3MoKTsKIAotICAgIGVudW0gVGVy
bWluYXRpb25Nb2RlIHsKLSAgICAgICAgU3luY2hyb25vdXMsCi0gICAgICAgIEFzeW5jaHJvbm91
cywKLSAgICB9OwotICAgIHZvaWQgdGVybWluYXRlV29ya2VySW50ZXJuYWwoU1dTZXJ2ZXJXb3Jr
ZXImLCBUZXJtaW5hdGlvbk1vZGUpOwotCiAgICAgdm9pZCBjb250ZXh0Q29ubmVjdGlvbkNyZWF0
ZWQoU1dTZXJ2ZXJUb0NvbnRleHRDb25uZWN0aW9uJik7CiAKICAgICBIYXNoTWFwPFNXU2VydmVy
Q29ubmVjdGlvbklkZW50aWZpZXIsIHN0ZDo6dW5pcXVlX3B0cjxDb25uZWN0aW9uPj4gbV9jb25u
ZWN0aW9uczsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9zZXJ2
ZXIvU1dTZXJ2ZXJUb0NvbnRleHRDb25uZWN0aW9uLmggYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJz
L3NlcnZpY2Uvc2VydmVyL1NXU2VydmVyVG9Db250ZXh0Q29ubmVjdGlvbi5oCmluZGV4IDA1ODg0
YzhiYjkxZWI0NDU1NDNkMGYyOWUxYTY5ZjIyOGNhMTc2ZDkuLjQ2NTlmOWY5ZmE2YzZiYWE4ZGU5
NjhkMzkxNWZlMzNjNGUzMTI2NjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMv
c2VydmljZS9zZXJ2ZXIvU1dTZXJ2ZXJUb0NvbnRleHRDb25uZWN0aW9uLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL3NlcnZlci9TV1NlcnZlclRvQ29udGV4dENvbm5lY3Rp
b24uaApAQCAtNTQsNyArNTQsNiBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIGZpcmVJbnN0
YWxsRXZlbnQoU2VydmljZVdvcmtlcklkZW50aWZpZXIpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQg
ZmlyZUFjdGl2YXRlRXZlbnQoU2VydmljZVdvcmtlcklkZW50aWZpZXIpID0gMDsKICAgICB2aXJ0
dWFsIHZvaWQgdGVybWluYXRlV29ya2VyKFNlcnZpY2VXb3JrZXJJZGVudGlmaWVyKSA9IDA7Ci0g
ICAgdmlydHVhbCB2b2lkIHN5bmNUZXJtaW5hdGVXb3JrZXIoU2VydmljZVdvcmtlcklkZW50aWZp
ZXIpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgZmluZENsaWVudEJ5SWRlbnRpZmllckNvbXBsZXRl
ZCh1aW50NjRfdCByZXF1ZXN0SWRlbnRpZmllciwgY29uc3QgT3B0aW9uYWw8U2VydmljZVdvcmtl
ckNsaWVudERhdGE+JiwgYm9vbCBoYXNTZWN1cml0eUVycm9yKSA9IDA7CiAgICAgdmlydHVhbCB2
b2lkIG1hdGNoQWxsQ29tcGxldGVkKHVpbnQ2NF90IHJlcXVlc3RJZGVudGlmaWVyLCBjb25zdCBW
ZWN0b3I8U2VydmljZVdvcmtlckNsaWVudERhdGE+JikgPSAwOwogCkBAIC03NSw2ICs3NCw3IEBA
IHB1YmxpYzoKICAgICBjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYgcmVnaXN0cmFibGVEb21haW4o
KSBjb25zdCB7IHJldHVybiBtX3JlZ2lzdHJhYmxlRG9tYWluOyB9CiAKICAgICB2aXJ0dWFsIHZv
aWQgY29ubmVjdGlvbklzTm9Mb25nZXJOZWVkZWQoKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIHRl
cm1pbmF0ZUR1ZVRvVW5yZXNwb25zaXZlbmVzcygpID0gMDsKIAogcHJvdGVjdGVkOgogICAgIFdF
QkNPUkVfRVhQT1JUIGV4cGxpY2l0IFNXU2VydmVyVG9Db250ZXh0Q29ubmVjdGlvbihSZWdpc3Ry
YWJsZURvbWFpbiYmKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2Vydmlj
ZS9zZXJ2ZXIvU1dTZXJ2ZXJXb3JrZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2
aWNlL3NlcnZlci9TV1NlcnZlcldvcmtlci5jcHAKaW5kZXggNDAwYWE0N2Y0ZmMxNGEzNzZlZjRk
OWNjOTJiMmZlN2NmYzc0ZjJlOC4uNDZiNzRlODllMzVlOTUxNGQ4MDA5MzZiYjQwZTA0ZjIwMDMy
OTRjMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL3NlcnZlci9T
V1NlcnZlcldvcmtlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL3Nl
cnZlci9TV1NlcnZlcldvcmtlci5jcHAKQEAgLTI4LDYgKzI4LDcgQEAKIAogI2lmIEVOQUJMRShT
RVJWSUNFX1dPUktFUikKIAorI2luY2x1ZGUgIkxvZ2dpbmcuaCIKICNpbmNsdWRlICJTV1NlcnZl
ci5oIgogI2luY2x1ZGUgIlNXU2VydmVyUmVnaXN0cmF0aW9uLmgiCiAjaW5jbHVkZSAiU1dTZXJ2
ZXJUb0NvbnRleHRDb25uZWN0aW9uLmgiCkBAIC01OCw2ICs1OSw3IEBAIFNXU2VydmVyV29ya2Vy
OjpTV1NlcnZlcldvcmtlcihTV1NlcnZlciYgc2VydmVyLCBTV1NlcnZlclJlZ2lzdHJhdGlvbiYg
cmVnaXN0cmF0CiAgICAgLCBtX3JlZmVycmVyUG9saWN5KFdURk1vdmUocmVmZXJyZXJQb2xpY3kp
KQogICAgICwgbV9yZWdpc3RyYWJsZURvbWFpbihtX2RhdGEuc2NyaXB0VVJMKQogICAgICwgbV9z
Y3JpcHRSZXNvdXJjZU1hcChXVEZNb3ZlKHNjcmlwdFJlc291cmNlTWFwKSkKKyAgICAsIG1fdGVy
bWluYXRpb25UaW1lcigqdGhpcywgJlNXU2VydmVyV29ya2VyOjp0ZXJtaW5hdGlvblRpbWVyRmly
ZWQpCiB7CiAgICAgbV9kYXRhLnNjcmlwdFVSTC5yZW1vdmVGcmFnbWVudElkZW50aWZpZXIoKTsK
IApAQCAtNzQsNiArNzYsOCBAQCBTV1NlcnZlcldvcmtlcjo6flNXU2VydmVyV29ya2VyKCkKIAog
ICAgIGF1dG8gdGFrZW4gPSBhbGxXb3JrZXJzKCkudGFrZShpZGVudGlmaWVyKCkpOwogICAgIEFT
U0VSVF9VTlVTRUQodGFrZW4sIHRha2VuID09IHRoaXMpOworCisgICAgY2FsbFRlcm1pbmF0aW9u
Q2FsbGJhY2tzKCk7CiB9CiAKIFNlcnZpY2VXb3JrZXJDb250ZXh0RGF0YSBTV1NlcnZlcldvcmtl
cjo6Y29udGV4dERhdGEoKSBjb25zdApAQCAtODMsMTAgKzg3LDYwIEBAIFNlcnZpY2VXb3JrZXJD
b250ZXh0RGF0YSBTV1NlcnZlcldvcmtlcjo6Y29udGV4dERhdGEoKSBjb25zdAogICAgIHJldHVy
biB7IFdURjo6bnVsbG9wdCwgbV9yZWdpc3RyYXRpb24tPmRhdGEoKSwgbV9kYXRhLmlkZW50aWZp
ZXIsIG1fc2NyaXB0LCBtX2NvbnRlbnRTZWN1cml0eVBvbGljeSwgbV9yZWZlcnJlclBvbGljeSwg
bV9kYXRhLnNjcmlwdFVSTCwgbV9kYXRhLnR5cGUsIGZhbHNlLCBtX3NjcmlwdFJlc291cmNlTWFw
IH07CiB9CiAKLXZvaWQgU1dTZXJ2ZXJXb3JrZXI6OnRlcm1pbmF0ZSgpCit2b2lkIFNXU2VydmVy
V29ya2VyOjp0ZXJtaW5hdGUoQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmIGNhbGxiYWNrKQor
eworICAgIGlmICghbV9zZXJ2ZXIpCisgICAgICAgIHJldHVybiBjYWxsYmFjaygpOworCisgICAg
c3dpdGNoIChtX3N0YXRlKSB7CisgICAgY2FzZSBTdGF0ZTo6UnVubmluZzoKKyAgICAgICAgc3Rh
cnRUZXJtaW5hdGlvbihXVEZNb3ZlKGNhbGxiYWNrKSk7CisgICAgICAgIHJldHVybjsKKyAgICBj
YXNlIFN0YXRlOjpUZXJtaW5hdGluZzoKKyAgICAgICAgbV90ZXJtaW5hdGlvbkNhbGxiYWNrcy5h
cHBlbmQoV1RGTW92ZShjYWxsYmFjaykpOworICAgICAgICByZXR1cm47CisgICAgY2FzZSBTdGF0
ZTo6Tm90UnVubmluZzoKKyAgICAgICAgcmV0dXJuIGNhbGxiYWNrKCk7CisgICAgfQorfQorCit2
b2lkIFNXU2VydmVyV29ya2VyOjpzdGFydFRlcm1pbmF0aW9uKENvbXBsZXRpb25IYW5kbGVyPHZv
aWQoKT4mJiBjYWxsYmFjaykKK3sKKyAgICBhdXRvKiBjb250ZXh0Q29ubmVjdGlvbiA9IHRoaXMt
PmNvbnRleHRDb25uZWN0aW9uKCk7CisgICAgQVNTRVJUKGNvbnRleHRDb25uZWN0aW9uKTsKKyAg
ICBpZiAoIWNvbnRleHRDb25uZWN0aW9uKSB7CisgICAgICAgIFJFTEVBU0VfTE9HX0VSUk9SKFNl
cnZpY2VXb3JrZXIsICJSZXF1ZXN0IHRvIHRlcm1pbmF0ZSBhIHdvcmtlciAlbGx1IHdob3NlIGNv
bnRleHQgY29ubmVjdGlvbiBkb2VzIG5vdCBleGlzdCIsIGlkZW50aWZpZXIoKS50b1VJbnQ2NCgp
KTsKKyAgICAgICAgc2V0U3RhdGUoU3RhdGU6Ok5vdFJ1bm5pbmcpOworICAgICAgICBjYWxsYmFj
aygpOworICAgICAgICBtX3NlcnZlci0+d29ya2VyQ29udGV4dFRlcm1pbmF0ZWQoKnRoaXMpOwor
ICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgc2V0U3RhdGUoU3RhdGU6OlRlcm1pbmF0aW5n
KTsKKworICAgIG1fdGVybWluYXRpb25DYWxsYmFja3MuYXBwZW5kKFdURk1vdmUoY2FsbGJhY2sp
KTsKKyAgICBtX3Rlcm1pbmF0aW9uVGltZXIuc3RhcnRPbmVTaG90KFNXU2VydmVyOjpkZWZhdWx0
VGVybWluYXRpb25EZWxheSk7CisKKyAgICBjb250ZXh0Q29ubmVjdGlvbi0+dGVybWluYXRlV29y
a2VyKGlkZW50aWZpZXIoKSk7Cit9CisKK3ZvaWQgU1dTZXJ2ZXJXb3JrZXI6OnRlcm1pbmF0aW9u
Q29tcGxldGVkKCkKIHsKLSAgICBpZiAoaXNSdW5uaW5nKCkpCi0gICAgICAgIG1fc2VydmVyLT50
ZXJtaW5hdGVXb3JrZXIoKnRoaXMpOworICAgIG1fdGVybWluYXRpb25UaW1lci5zdG9wKCk7Cisg
ICAgY2FsbFRlcm1pbmF0aW9uQ2FsbGJhY2tzKCk7Cit9CisKK3ZvaWQgU1dTZXJ2ZXJXb3JrZXI6
OmNhbGxUZXJtaW5hdGlvbkNhbGxiYWNrcygpCit7CisgICAgYXV0byBjYWxsYmFja3MgPSBXVEZN
b3ZlKG1fdGVybWluYXRpb25DYWxsYmFja3MpOworICAgIGZvciAoYXV0byYgY2FsbGJhY2sgOiBj
YWxsYmFja3MpCisgICAgICAgIGNhbGxiYWNrKCk7Cit9CisKK3ZvaWQgU1dTZXJ2ZXJXb3JrZXI6
OnRlcm1pbmF0aW9uVGltZXJGaXJlZCgpCit7CisgICAgQVNTRVJUKGlzVGVybWluYXRpbmcoKSk7
CisgICAgY29udGV4dENvbm5lY3Rpb24oKS0+dGVybWluYXRlRHVlVG9VbnJlc3BvbnNpdmVuZXNz
KCk7CiB9CiAKIGNvbnN0IENsaWVudE9yaWdpbiYgU1dTZXJ2ZXJXb3JrZXI6Om9yaWdpbigpIGNv
bnN0CkBAIC0yNTIsNiArMzA2LDggQEAgdm9pZCBTV1NlcnZlcldvcmtlcjo6c2V0U3RhdGUoU3Rh
dGUgc3RhdGUpCiAgICAgICAgIGNhbGxXaGVuQWN0aXZhdGVkSGFuZGxlcihmYWxzZSk7CiAgICAg
ICAgIGJyZWFrOwogICAgIGNhc2UgU3RhdGU6Ok5vdFJ1bm5pbmc6CisgICAgICAgIHRlcm1pbmF0
aW9uQ29tcGxldGVkKCk7CisKICAgICAgICAgY2FsbFdoZW5BY3RpdmF0ZWRIYW5kbGVyKGZhbHNl
KTsKICAgICAgICAgLy8gQXMgcGVyIGh0dHBzOi8vdzNjLmdpdGh1Yi5pby9TZXJ2aWNlV29ya2Vy
LyNhY3RpdmF0ZSwgYSB3b3JrZXIgZ29lcyB0byBhY3RpdmF0ZWQgZXZlbiBpZiBhY3RpdmF0aW5n
IGZhaWxzLgogICAgICAgICBpZiAobV9kYXRhLnN0YXRlID09IFNlcnZpY2VXb3JrZXJTdGF0ZTo6
QWN0aXZhdGluZykKQEAgLTI2Nyw4ICszMjMsNyBAQCBTV1NlcnZlclJlZ2lzdHJhdGlvbiogU1dT
ZXJ2ZXJXb3JrZXI6OnJlZ2lzdHJhdGlvbigpIGNvbnN0CiAKIHZvaWQgU1dTZXJ2ZXJXb3JrZXI6
OmRpZEZhaWxIZWFydEJlYXRDaGVjaygpCiB7Ci0gICAgaWYgKG1fc2VydmVyICYmIGlzUnVubmlu
ZygpKQotICAgICAgICBtX3NlcnZlci0+dGVybWluYXRlV29ya2VyKCp0aGlzKTsKKyAgICB0ZXJt
aW5hdGUoKTsKIH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL3NlcnZlci9TV1NlcnZlcldvcmtlci5oIGIvU291cmNl
L1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL3NlcnZlci9TV1NlcnZlcldvcmtlci5oCmluZGV4IGUw
MmFlMDAxMGZjZmFjNWRlMTE5YjRmZGExMmE3MTcxMzhlZjVjMDUuLjYxMDBjZDk2YjU5Y2YzYzI5
M2NiODViZWQzNThiMTAwOTc1ODFiY2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtl
cnMvc2VydmljZS9zZXJ2ZXIvU1dTZXJ2ZXJXb3JrZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS93
b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1NXU2VydmVyV29ya2VyLmgKQEAgLTM2LDYgKzM2LDggQEAK
ICNpbmNsdWRlICJTZXJ2aWNlV29ya2VySWRlbnRpZmllci5oIgogI2luY2x1ZGUgIlNlcnZpY2VX
b3JrZXJSZWdpc3RyYXRpb25LZXkuaCIKICNpbmNsdWRlICJTZXJ2aWNlV29ya2VyVHlwZXMuaCIK
KyNpbmNsdWRlICJUaW1lci5oIgorI2luY2x1ZGUgPHd0Zi9Db21wbGV0aW9uSGFuZGxlci5oPgog
I2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CiAjaW5jbHVkZSA8d3RmL1dlYWtQdHIuaD4KIApA
QCAtNjAsNyArNjIsNyBAQCBwdWJsaWM6CiAgICAgU1dTZXJ2ZXJXb3JrZXIoY29uc3QgU1dTZXJ2
ZXJXb3JrZXImKSA9IGRlbGV0ZTsKICAgICBXRUJDT1JFX0VYUE9SVCB+U1dTZXJ2ZXJXb3JrZXIo
KTsKIAotICAgIHZvaWQgdGVybWluYXRlKCk7CisgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCB0ZXJt
aW5hdGUoQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmID0gW10geyB9KTsKIAogICAgIFdFQkNP
UkVfRVhQT1JUIHZvaWQgd2hlbkFjdGl2YXRlZChDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wp
PiYmKTsKIApAQCAtMTI2LDYgKzEyOCwxMSBAQCBwcml2YXRlOgogCiAgICAgdm9pZCBjYWxsV2hl
bkFjdGl2YXRlZEhhbmRsZXIoYm9vbCBzdWNjZXNzKTsKIAorICAgIHZvaWQgc3RhcnRUZXJtaW5h
dGlvbihDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpOworICAgIHZvaWQgdGVybWluYXRpb25D
b21wbGV0ZWQoKTsKKyAgICB2b2lkIHRlcm1pbmF0aW9uVGltZXJGaXJlZCgpOworICAgIHZvaWQg
Y2FsbFRlcm1pbmF0aW9uQ2FsbGJhY2tzKCk7CisKICAgICBXZWFrUHRyPFNXU2VydmVyPiBtX3Nl
cnZlcjsKICAgICBTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uS2V5IG1fcmVnaXN0cmF0aW9uS2V5
OwogICAgIFdlYWtQdHI8U1dTZXJ2ZXJSZWdpc3RyYXRpb24+IG1fcmVnaXN0cmF0aW9uOwpAQCAt
MTQyLDYgKzE0OSw4IEBAIHByaXZhdGU6CiAgICAgSGFzaE1hcDxVUkwsIFNlcnZpY2VXb3JrZXJD
b250ZXh0RGF0YTo6SW1wb3J0ZWRTY3JpcHQ+IG1fc2NyaXB0UmVzb3VyY2VNYXA7CiAgICAgYm9v
bCBtX3Nob3VsZFNraXBIYW5kbGVGZXRjaDsKICAgICBib29sIG1faGFzVGltZWRPdXRBbnlGZXRj
aFRhc2tzIHsgZmFsc2UgfTsKKyAgICBWZWN0b3I8Q29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPj4g
bV90ZXJtaW5hdGlvbkNhbGxiYWNrczsKKyAgICBUaW1lciBtX3Rlcm1pbmF0aW9uVGltZXI7CiB9
OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05l
dHdvcmtQcm9jZXNzL1NlcnZpY2VXb3JrZXIvV2ViU1dTZXJ2ZXJDb25uZWN0aW9uLmNwcCBiL1Nv
dXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvU2VydmljZVdvcmtlci9XZWJTV1NlcnZlckNvbm5l
Y3Rpb24uY3BwCmluZGV4IGQxNDQ2ZmU2NTNmYTI5Y2M2MjNlYzgyMGVjNTA3ZmU1Mzc2MjBkMzUu
LjlhYWQ5ZWQwZjJhMTMyMWFiNDk2ZWVhZjNkZjRhODhiNjIyOTcwNGQgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvU2VydmljZVdvcmtlci9XZWJTV1NlcnZlckNvbm5l
Y3Rpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvU2VydmljZVdvcmtl
ci9XZWJTV1NlcnZlckNvbm5lY3Rpb24uY3BwCkBAIC00NTYsMTAgKzQ1NiwxMiBAQCB2b2lkIFdl
YlNXU2VydmVyQ29ubmVjdGlvbjo6Y29udGV4dENvbm5lY3Rpb25DcmVhdGVkKFNXU2VydmVyVG9D
b250ZXh0Q29ubmVjdGlvbgogICAgICAgICBtX25ldHdvcmtQcm9jZXNzLT5wYXJlbnRQcm9jZXNz
Q29ubmVjdGlvbigpLT5zZW5kKE1lc3NhZ2VzOjpOZXR3b3JrUHJvY2Vzc1Byb3h5OjpSZWdpc3Rl
clNlcnZpY2VXb3JrZXJDbGllbnRQcm9jZXNzIHsgaWRlbnRpZmllcigpLCBjb25uZWN0aW9uLndl
YlByb2Nlc3NJZGVudGlmaWVyKCkgfSwgMCk7CiB9CiAKLXZvaWQgV2ViU1dTZXJ2ZXJDb25uZWN0
aW9uOjpzeW5jVGVybWluYXRlV29ya2VyRnJvbUNsaWVudChTZXJ2aWNlV29ya2VySWRlbnRpZmll
ciBpZGVudGlmaWVyLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYgY29tcGxldGlvbkhhbmRs
ZXIpCit2b2lkIFdlYlNXU2VydmVyQ29ubmVjdGlvbjo6dGVybWluYXRlV29ya2VyRnJvbUNsaWVu
dChTZXJ2aWNlV29ya2VySWRlbnRpZmllciBzZXJ2aWNlV29ya2VySWRlbnRpZmllciwgQ29tcGxl
dGlvbkhhbmRsZXI8dm9pZCgpPiYmIGNhbGxiYWNrKQogewotICAgIHN5bmNUZXJtaW5hdGVXb3Jr
ZXIoV1RGTW92ZShpZGVudGlmaWVyKSk7Ci0gICAgY29tcGxldGlvbkhhbmRsZXIoKTsKKyAgICBh
dXRvKiB3b3JrZXIgPSBzZXJ2ZXIoKS53b3JrZXJCeUlEKHNlcnZpY2VXb3JrZXJJZGVudGlmaWVy
KTsKKyAgICBpZiAoIXdvcmtlcikKKyAgICAgICAgcmV0dXJuIGNhbGxiYWNrKCk7CisgICAgd29y
a2VyLT50ZXJtaW5hdGUoV1RGTW92ZShjYWxsYmFjaykpOwogfQogCiB2b2lkIFdlYlNXU2VydmVy
Q29ubmVjdGlvbjo6aXNTZXJ2aWNlV29ya2VyUnVubmluZyhTZXJ2aWNlV29ya2VySWRlbnRpZmll
ciBpZGVudGlmaWVyLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmIGNvbXBsZXRpb25I
YW5kbGVyKQpAQCAtNDg1LDggKzQ4Nyw3IEBAIHZvaWQgV2ViU1dTZXJ2ZXJDb25uZWN0aW9uOjpm
ZXRjaFRhc2tUaW1lZE91dChTZXJ2aWNlV29ya2VySWRlbnRpZmllciBzZXJ2aWNlV29yCiAgICAg
ICAgIHJldHVybjsKIAogICAgIHdvcmtlci0+c2V0SGFzVGltZWRPdXRBbnlGZXRjaFRhc2tzKCk7
Ci0gICAgaWYgKHdvcmtlci0+aXNSdW5uaW5nKCkpCi0gICAgICAgIHNlcnZlcigpLnN5bmNUZXJt
aW5hdGVXb3JrZXIoKndvcmtlcik7CisgICAgd29ya2VyLT50ZXJtaW5hdGUoKTsKIH0KIAogfSAv
LyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9j
ZXNzL1NlcnZpY2VXb3JrZXIvV2ViU1dTZXJ2ZXJDb25uZWN0aW9uLmggYi9Tb3VyY2UvV2ViS2l0
L05ldHdvcmtQcm9jZXNzL1NlcnZpY2VXb3JrZXIvV2ViU1dTZXJ2ZXJDb25uZWN0aW9uLmgKaW5k
ZXggMWJiMjgzYzhhNmE5NzM4OTZiM2IwZDc4MmZkN2ZhN2ZiY2UyN2RjYy4uOGU0ODQxZTA2NmQ3
NmFiMWE3NWUwYWI0NThlNjU1NDMyNzIyNjIxYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9O
ZXR3b3JrUHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1dlYlNXU2VydmVyQ29ubmVjdGlvbi5oCisrKyBi
L1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvU2VydmljZVdvcmtlci9XZWJTV1NlcnZlckNv
bm5lY3Rpb24uaApAQCAtNzAsNyArNzAsNiBAQCBwdWJsaWM6CiAgICAgSVBDOjpDb25uZWN0aW9u
JiBpcGNDb25uZWN0aW9uKCkgY29uc3QgeyByZXR1cm4gbV9jb250ZW50Q29ubmVjdGlvbi5nZXQo
KTsgfQogCiAgICAgdm9pZCBkaWRSZWNlaXZlTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mLCBJUEM6
OkRlY29kZXImKSBmaW5hbDsKLSAgICB2b2lkIGRpZFJlY2VpdmVTeW5jTWVzc2FnZShJUEM6OkNv
bm5lY3Rpb24mLCBJUEM6OkRlY29kZXImLCBzdGQ6OnVuaXF1ZV9wdHI8SVBDOjpFbmNvZGVyPiYp
OwogICAgIAogICAgIFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCgpIGNvbnN0OwogCkBAIC0xMDMs
NyArMTAyLDcgQEAgcHJpdmF0ZToKIAogICAgIHZvaWQgcmVnaXN0ZXJTZXJ2aWNlV29ya2VyQ2xp
ZW50KFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSYmIHRvcE9yaWdpbiwgV2ViQ29yZTo6U2Vy
dmljZVdvcmtlckNsaWVudERhdGEmJiwgY29uc3QgT3B0aW9uYWw8V2ViQ29yZTo6U2VydmljZVdv
cmtlclJlZ2lzdHJhdGlvbklkZW50aWZpZXI+JiwgU3RyaW5nJiYgdXNlckFnZW50KTsKICAgICB2
b2lkIHVucmVnaXN0ZXJTZXJ2aWNlV29ya2VyQ2xpZW50KGNvbnN0IFdlYkNvcmU6OlNlcnZpY2VX
b3JrZXJDbGllbnRJZGVudGlmaWVyJik7Ci0gICAgdm9pZCBzeW5jVGVybWluYXRlV29ya2VyRnJv
bUNsaWVudChXZWJDb3JlOjpTZXJ2aWNlV29ya2VySWRlbnRpZmllciwgQ29tcGxldGlvbkhhbmRs
ZXI8dm9pZCgpPiYmKTsKKyAgICB2b2lkIHRlcm1pbmF0ZVdvcmtlckZyb21DbGllbnQoV2ViQ29y
ZTo6U2VydmljZVdvcmtlcklkZW50aWZpZXIsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7
CiAgICAgdm9pZCBpc1NlcnZpY2VXb3JrZXJSdW5uaW5nKFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJJ
ZGVudGlmaWVyLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmKTsKIAogICAgIHZvaWQg
cG9zdE1lc3NhZ2VUb1NlcnZpY2VXb3JrZXJDbGllbnQoV2ViQ29yZTo6RG9jdW1lbnRJZGVudGlm
aWVyIGRlc3RpbmF0aW9uQ29udGV4dElkZW50aWZpZXIsIGNvbnN0IFdlYkNvcmU6Ok1lc3NhZ2VX
aXRoTWVzc2FnZVBvcnRzJiwgV2ViQ29yZTo6U2VydmljZVdvcmtlcklkZW50aWZpZXIgc291cmNl
U2VydmljZVdvcmtlcklkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYgc291cmNlT3JpZ2luKSBmaW5h
bDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvU2VydmljZVdvcmtl
ci9XZWJTV1NlcnZlckNvbm5lY3Rpb24ubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L05ldHdv
cmtQcm9jZXNzL1NlcnZpY2VXb3JrZXIvV2ViU1dTZXJ2ZXJDb25uZWN0aW9uLm1lc3NhZ2VzLmlu
CmluZGV4IDk1M2Y2YzM1NjE0MDllZjUyOTIyODUzNGE0MzMxMWVjNjYxOTFkYTYuLmUyNWQ3MWU5
YWRlOTE5Yzg1YjExNzFlYTY3NzQxYTBiMGU2ZGIwMDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvTmV0d29ya1Byb2Nlc3MvU2VydmljZVdvcmtlci9XZWJTV1NlcnZlckNvbm5lY3Rpb24ubWVz
c2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9TZXJ2aWNlV29ya2Vy
L1dlYlNXU2VydmVyQ29ubmVjdGlvbi5tZXNzYWdlcy5pbgpAQCAtNDEsNyArNDEsNyBAQCBtZXNz
YWdlcyAtPiBXZWJTV1NlcnZlckNvbm5lY3Rpb24gTm90UmVmQ291bnRlZCB7CiAgICAgUmVnaXN0
ZXJTZXJ2aWNlV29ya2VyQ2xpZW50KHN0cnVjdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEg
dG9wT3JpZ2luLCBzdHJ1Y3QgV2ViQ29yZTo6U2VydmljZVdvcmtlckNsaWVudERhdGEgZGF0YSwg
T3B0aW9uYWw8V2ViQ29yZTo6U2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbklkZW50aWZpZXI+IGNv
bnRyb2xsaW5nU2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbklkZW50aWZpZXIsIFN0cmluZyB1c2Vy
QWdlbnQpCiAgICAgVW5yZWdpc3RlclNlcnZpY2VXb3JrZXJDbGllbnQoc3RydWN0IFdlYkNvcmU6
OlNlcnZpY2VXb3JrZXJDbGllbnRJZGVudGlmaWVyIGlkZW50aWZpZXIpCiAKLSAgICBTeW5jVGVy
bWluYXRlV29ya2VyRnJvbUNsaWVudChXZWJDb3JlOjpTZXJ2aWNlV29ya2VySWRlbnRpZmllciB3
b3JrZXJJZGVudGlmaWVyKSAtPiAoKSBTeW5jaHJvbm91cworICAgIFRlcm1pbmF0ZVdvcmtlckZy
b21DbGllbnQoV2ViQ29yZTo6U2VydmljZVdvcmtlcklkZW50aWZpZXIgd29ya2VySWRlbnRpZmll
cikgLT4gKCkgQXN5bmMKIAogICAgIFNldFRocm90dGxlU3RhdGUoYm9vbCBpc1Rocm90dGxlYWJs
ZSkKICAgICBTdG9yZVJlZ2lzdHJhdGlvbnNPbkRpc2soKSAtPiAoKSBBc3luYwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1dlYlNXU2VydmVy
VG9Db250ZXh0Q29ubmVjdGlvbi5jcHAgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1Nl
cnZpY2VXb3JrZXIvV2ViU1dTZXJ2ZXJUb0NvbnRleHRDb25uZWN0aW9uLmNwcAppbmRleCBjMGY2
Y2ViMTRiZTUxN2NmY2EwNzhkYTk3Njk1MDM4MDk0MjE1NDMxLi42MzdjOGVkODk1YmMzODZjYzE3
Zjc3ZTY1Y2NlMzdmZDRmZGIyMzRkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQ
cm9jZXNzL1NlcnZpY2VXb3JrZXIvV2ViU1dTZXJ2ZXJUb0NvbnRleHRDb25uZWN0aW9uLmNwcAor
KysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1NlcnZpY2VXb3JrZXIvV2ViU1dTZXJ2
ZXJUb0NvbnRleHRDb25uZWN0aW9uLmNwcApAQCAtMTA2LDEwICsxMDYsOSBAQCB2b2lkIFdlYlNX
U2VydmVyVG9Db250ZXh0Q29ubmVjdGlvbjo6dGVybWluYXRlV29ya2VyKFNlcnZpY2VXb3JrZXJJ
ZGVudGlmaWVyIHNlcgogICAgIHNlbmQoTWVzc2FnZXM6OldlYlNXQ29udGV4dE1hbmFnZXJDb25u
ZWN0aW9uOjpUZXJtaW5hdGVXb3JrZXIoc2VydmljZVdvcmtlcklkZW50aWZpZXIpKTsKIH0KIAot
dm9pZCBXZWJTV1NlcnZlclRvQ29udGV4dENvbm5lY3Rpb246OnN5bmNUZXJtaW5hdGVXb3JrZXIo
U2VydmljZVdvcmtlcklkZW50aWZpZXIgc2VydmljZVdvcmtlcklkZW50aWZpZXIpCit2b2lkIFdl
YlNXU2VydmVyVG9Db250ZXh0Q29ubmVjdGlvbjo6dGVybWluYXRlRHVlVG9VbnJlc3BvbnNpdmVu
ZXNzKCkKIHsKLSAgICBpZiAoIXNlbmRTeW5jKE1lc3NhZ2VzOjpXZWJTV0NvbnRleHRNYW5hZ2Vy
Q29ubmVjdGlvbjo6U3luY1Rlcm1pbmF0ZVdvcmtlcihzZXJ2aWNlV29ya2VySWRlbnRpZmllciks
IE1lc3NhZ2VzOjpXZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbjo6U3luY1Rlcm1pbmF0ZVdv
cmtlcjo6UmVwbHkoKSwgMCwgMTBfcywgSVBDOjpTZW5kU3luY09wdGlvbjo6Rm9yY2VEaXNwYXRj
aFdoZW5EZXN0aW5hdGlvbklzV2FpdGluZ0ZvclVuYm91bmRlZFN5bmNSZXBseSkpCi0gICAgICAg
IG1fY29ubmVjdGlvbi5uZXR3b3JrUHJvY2VzcygpLnBhcmVudFByb2Nlc3NDb25uZWN0aW9uKCkt
PnNlbmQoTWVzc2FnZXM6Ok5ldHdvcmtQcm9jZXNzUHJveHk6OlRlcm1pbmF0ZVVucmVzcG9uc2l2
ZVNlcnZpY2VXb3JrZXJQcm9jZXNzZXMgeyB3ZWJQcm9jZXNzSWRlbnRpZmllcigpIH0sIDApOwor
ICAgIG1fY29ubmVjdGlvbi5uZXR3b3JrUHJvY2VzcygpLnBhcmVudFByb2Nlc3NDb25uZWN0aW9u
KCktPnNlbmQoTWVzc2FnZXM6Ok5ldHdvcmtQcm9jZXNzUHJveHk6OlRlcm1pbmF0ZVVucmVzcG9u
c2l2ZVNlcnZpY2VXb3JrZXJQcm9jZXNzZXMgeyB3ZWJQcm9jZXNzSWRlbnRpZmllcigpIH0sIDAp
OwogfQogCiB2b2lkIFdlYlNXU2VydmVyVG9Db250ZXh0Q29ubmVjdGlvbjo6ZmluZENsaWVudEJ5
SWRlbnRpZmllckNvbXBsZXRlZCh1aW50NjRfdCByZXF1ZXN0SWRlbnRpZmllciwgY29uc3QgT3B0
aW9uYWw8U2VydmljZVdvcmtlckNsaWVudERhdGE+JiBkYXRhLCBib29sIGhhc1NlY3VyaXR5RXJy
b3IpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1NlcnZpY2VXb3Jr
ZXIvV2ViU1dTZXJ2ZXJUb0NvbnRleHRDb25uZWN0aW9uLmggYi9Tb3VyY2UvV2ViS2l0L05ldHdv
cmtQcm9jZXNzL1NlcnZpY2VXb3JrZXIvV2ViU1dTZXJ2ZXJUb0NvbnRleHRDb25uZWN0aW9uLmgK
aW5kZXggZmUxMjJjZmY2YTYxZjkxNmY0NjVhMDQwYTdlYzZiMTI5NDBmMWE1Ny4uNTc0ODE2NDBi
ZTgxYTYzM2E5ZWI5NzgyMzYxZjhkOGQ2Yjc4MDUzNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9OZXR3b3JrUHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1dlYlNXU2VydmVyVG9Db250ZXh0Q29ubmVj
dGlvbi5oCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvU2VydmljZVdvcmtlci9X
ZWJTV1NlcnZlclRvQ29udGV4dENvbm5lY3Rpb24uaApAQCAtODcsMTEgKzg3LDExIEBAIHByaXZh
dGU6CiAgICAgdm9pZCBmaXJlSW5zdGFsbEV2ZW50KFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJJZGVu
dGlmaWVyKSBmaW5hbDsKICAgICB2b2lkIGZpcmVBY3RpdmF0ZUV2ZW50KFdlYkNvcmU6OlNlcnZp
Y2VXb3JrZXJJZGVudGlmaWVyKSBmaW5hbDsKICAgICB2b2lkIHRlcm1pbmF0ZVdvcmtlcihXZWJD
b3JlOjpTZXJ2aWNlV29ya2VySWRlbnRpZmllcikgZmluYWw7Ci0gICAgdm9pZCBzeW5jVGVybWlu
YXRlV29ya2VyKFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJJZGVudGlmaWVyKSBmaW5hbDsKICAgICB2
b2lkIGZpbmRDbGllbnRCeUlkZW50aWZpZXJDb21wbGV0ZWQodWludDY0X3QgcmVxdWVzdElkZW50
aWZpZXIsIGNvbnN0IE9wdGlvbmFsPFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJDbGllbnREYXRhPiYs
IGJvb2wgaGFzU2VjdXJpdHlFcnJvcikgZmluYWw7CiAgICAgdm9pZCBtYXRjaEFsbENvbXBsZXRl
ZCh1aW50NjRfdCByZXF1ZXN0SWRlbnRpZmllciwgY29uc3QgVmVjdG9yPFdlYkNvcmU6OlNlcnZp
Y2VXb3JrZXJDbGllbnREYXRhPiYpIGZpbmFsOwogCiAgICAgdm9pZCBjb25uZWN0aW9uSXNOb0xv
bmdlck5lZWRlZCgpIGZpbmFsOworICAgIHZvaWQgdGVybWluYXRlRHVlVG9VbnJlc3BvbnNpdmVu
ZXNzKCkgZmluYWw7CiAKICAgICB2b2lkIGNvbm5lY3Rpb25DbG9zZWQoKTsKIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dDbGllbnRDb25uZWN0aW9u
LmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNXQ2xpZW50Q29ubmVj
dGlvbi5jcHAKaW5kZXggYjFhMWVhNmIwMjRkNjBhNWQ3Nzk0ODU0MjA1Mjg5Y2U0MTBlZDBhZC4u
YzNjY2M2OWE2ZWNhMTNhYTlhODdmNjIyNDdlMDMzNTY5YTJjMTc5YiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dDbGllbnRDb25uZWN0aW9uLmNwcAor
KysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3RvcmFnZS9XZWJTV0NsaWVudENvbm5lY3Rp
b24uY3BwCkBAIC0yNDMsOSArMjQzLDkgQEAgdm9pZCBXZWJTV0NsaWVudENvbm5lY3Rpb246OmNs
ZWFyKCkKICAgICBjbGVhclBlbmRpbmdKb2JzKCk7CiB9CiAKLXZvaWQgV2ViU1dDbGllbnRDb25u
ZWN0aW9uOjpzeW5jVGVybWluYXRlV29ya2VyKFNlcnZpY2VXb3JrZXJJZGVudGlmaWVyIGlkZW50
aWZpZXIpCit2b2lkIFdlYlNXQ2xpZW50Q29ubmVjdGlvbjo6dGVybWluYXRlV29ya2VyRm9yVGVz
dGluZyhTZXJ2aWNlV29ya2VySWRlbnRpZmllciBpZGVudGlmaWVyLCBDb21wbGV0aW9uSGFuZGxl
cjx2b2lkKCk+JiYgY2FsbGJhY2spCiB7Ci0gICAgc2VuZFN5bmMoTWVzc2FnZXM6OldlYlNXU2Vy
dmVyQ29ubmVjdGlvbjo6U3luY1Rlcm1pbmF0ZVdvcmtlckZyb21DbGllbnQgeyBpZGVudGlmaWVy
IH0sIE1lc3NhZ2VzOjpXZWJTV1NlcnZlckNvbm5lY3Rpb246OlN5bmNUZXJtaW5hdGVXb3JrZXJG
cm9tQ2xpZW50OjpSZXBseSgpKTsKKyAgICBzZW5kV2l0aEFzeW5jUmVwbHkoTWVzc2FnZXM6Oldl
YlNXU2VydmVyQ29ubmVjdGlvbjo6VGVybWluYXRlV29ya2VyRnJvbUNsaWVudCB7IGlkZW50aWZp
ZXIgfSwgV1RGTW92ZShjYWxsYmFjaykpOwogfQogCiB2b2lkIFdlYlNXQ2xpZW50Q29ubmVjdGlv
bjo6aXNTZXJ2aWNlV29ya2VyUnVubmluZyhTZXJ2aWNlV29ya2VySWRlbnRpZmllciBpZGVudGlm
aWVyLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmIGNhbGxiYWNrKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dDbGllbnRDb25uZWN0aW9u
LmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3RvcmFnZS9XZWJTV0NsaWVudENvbm5lY3Rp
b24uaAppbmRleCA3NmM0NjI4MzQ5NGI2MDAyZjQxZDUwN2M5MTNkYThmZThmMzgzMTU4Li42Yzky
ZTcwOTA0MGIwNGVjMTEyMWUwZTA1NjdjMTE2YTU2ZWI2YWE1IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvU3RvcmFnZS9XZWJTV0NsaWVudENvbm5lY3Rpb24uaAorKysgYi9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3RvcmFnZS9XZWJTV0NsaWVudENvbm5lY3Rpb24uaApA
QCAtNjIsMTEgKzYyLDExIEBAIHB1YmxpYzoKIAogICAgIHZvaWQgY29ubmVjdGlvblRvU2VydmVy
TG9zdCgpOwogCi0gICAgdm9pZCBzeW5jVGVybWluYXRlV29ya2VyKFdlYkNvcmU6OlNlcnZpY2VX
b3JrZXJJZGVudGlmaWVyKSBmaW5hbDsKLQogICAgIGJvb2wgaXNUaHJvdHRsZWFibGUoKSBjb25z
dCB7IHJldHVybiBtX2lzVGhyb3R0bGVhYmxlOyB9CiAgICAgdm9pZCB1cGRhdGVUaHJvdHRsZVN0
YXRlKCk7CiAKKyAgICB2b2lkIHRlcm1pbmF0ZVdvcmtlckZvclRlc3RpbmcoV2ViQ29yZTo6U2Vy
dmljZVdvcmtlcklkZW50aWZpZXIsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7CisKIHBy
aXZhdGU6CiAgICAgV2ViU1dDbGllbnRDb25uZWN0aW9uKCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9u
LmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNXQ29udGV4dE1hbmFn
ZXJDb25uZWN0aW9uLmNwcAppbmRleCA5YzBiNTY5NmMxMTU2ZjVkODhiNmM1OTE2ZTcwZTQ3NDdl
M2UyZmYwLi4zYmIyMDIxNDY1Yjk2NDdkZmM4Yzg3M2JjNGEzNDlmYTg4ZDhmOWI1IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3RvcmFnZS9XZWJTV0NvbnRleHRNYW5hZ2Vy
Q29ubmVjdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0b3JhZ2UvV2Vi
U1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb24uY3BwCkBAIC0yNTUsMTEgKzI1NSw2IEBAIHZvaWQg
V2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb246OnRlcm1pbmF0ZVdvcmtlcihTZXJ2aWNlV29y
a2VySWRlbnRpZmllciBpZGVuCiAgICAgU1dDb250ZXh0TWFuYWdlcjo6c2luZ2xldG9uKCkudGVy
bWluYXRlV29ya2VyKGlkZW50aWZpZXIsIFNXQ29udGV4dE1hbmFnZXI6OndvcmtlclRlcm1pbmF0
aW9uVGltZW91dCwgbnVsbHB0cik7CiB9CiAKLXZvaWQgV2ViU1dDb250ZXh0TWFuYWdlckNvbm5l
Y3Rpb246OnN5bmNUZXJtaW5hdGVXb3JrZXIoU2VydmljZVdvcmtlcklkZW50aWZpZXIgaWRlbnRp
ZmllciwgTWVzc2FnZXM6OldlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uOjpTeW5jVGVybWlu
YXRlV29ya2VyOjpEZWxheWVkUmVwbHkmJiByZXBseSkKLXsKLSAgICBTV0NvbnRleHRNYW5hZ2Vy
OjpzaW5nbGV0b24oKS50ZXJtaW5hdGVXb3JrZXIoaWRlbnRpZmllciwgU1dDb250ZXh0TWFuYWdl
cjo6c3luY1dvcmtlclRlcm1pbmF0aW9uVGltZW91dCwgV1RGTW92ZShyZXBseSkpOwotfQotCiB2
b2lkIFdlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uOjpwb3N0TWVzc2FnZVRvU2VydmljZVdv
cmtlckNsaWVudChjb25zdCBTZXJ2aWNlV29ya2VyQ2xpZW50SWRlbnRpZmllciYgZGVzdGluYXRp
b25JZGVudGlmaWVyLCBjb25zdCBNZXNzYWdlV2l0aE1lc3NhZ2VQb3J0cyYgbWVzc2FnZSwgU2Vy
dmljZVdvcmtlcklkZW50aWZpZXIgc291cmNlSWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiBzb3Vy
Y2VPcmlnaW4pCiB7CiAgICAgbV9jb25uZWN0aW9uVG9OZXR3b3JrUHJvY2Vzcy0+c2VuZChNZXNz
YWdlczo6V2ViU1dTZXJ2ZXJUb0NvbnRleHRDb25uZWN0aW9uOjpQb3N0TWVzc2FnZVRvU2Vydmlj
ZVdvcmtlckNsaWVudChkZXN0aW5hdGlvbklkZW50aWZpZXIsIG1lc3NhZ2UsIHNvdXJjZUlkZW50
aWZpZXIsIHNvdXJjZU9yaWdpbiksIDApOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL1N0b3JhZ2UvV2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb24uaCBiL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uLmgK
aW5kZXggNmQ4Yzg3NmNhMTJhOGYzYTlkZGYwOGM1OGEyNTY0MWUwMzAyMTA5NC4uMTBjY2QxOGU1
YWJlZjE1NzNmYzc0ZjJhYjYzNDk5NWU5ZDkzNjYxZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb24uaAorKysg
Yi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3RvcmFnZS9XZWJTV0NvbnRleHRNYW5hZ2VyQ29u
bmVjdGlvbi5oCkBAIC02MCw3ICs2MCw2IEBAIHB1YmxpYzoKICAgICB+V2ViU1dDb250ZXh0TWFu
YWdlckNvbm5lY3Rpb24oKTsKIAogICAgIHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2UoSVBDOjpDb25u
ZWN0aW9uJiwgSVBDOjpEZWNvZGVyJikgZmluYWw7Ci0gICAgdm9pZCBkaWRSZWNlaXZlU3luY01l
c3NhZ2UoSVBDOjpDb25uZWN0aW9uJiwgSVBDOjpEZWNvZGVyJiwgc3RkOjp1bmlxdWVfcHRyPElQ
Qzo6RW5jb2Rlcj4mKSBmaW5hbDsKIAogcHJpdmF0ZToKICAgICB2b2lkIHVwZGF0ZVByZWZlcmVu
Y2VzU3RvcmUoY29uc3QgV2ViUHJlZmVyZW5jZXNTdG9yZSYpOwpAQCAtOTEsNyArOTAsNiBAQCBw
cml2YXRlOgogICAgIHZvaWQgZmlyZUluc3RhbGxFdmVudChXZWJDb3JlOjpTZXJ2aWNlV29ya2Vy
SWRlbnRpZmllcik7CiAgICAgdm9pZCBmaXJlQWN0aXZhdGVFdmVudChXZWJDb3JlOjpTZXJ2aWNl
V29ya2VySWRlbnRpZmllcik7CiAgICAgdm9pZCB0ZXJtaW5hdGVXb3JrZXIoV2ViQ29yZTo6U2Vy
dmljZVdvcmtlcklkZW50aWZpZXIpOwotICAgIHZvaWQgc3luY1Rlcm1pbmF0ZVdvcmtlcihXZWJD
b3JlOjpTZXJ2aWNlV29ya2VySWRlbnRpZmllciwgTWVzc2FnZXM6OldlYlNXQ29udGV4dE1hbmFn
ZXJDb25uZWN0aW9uOjpTeW5jVGVybWluYXRlV29ya2VyRGVsYXllZFJlcGx5JiYpOwogICAgIHZv
aWQgZmluZENsaWVudEJ5SWRlbnRpZmllckNvbXBsZXRlZCh1aW50NjRfdCByZXF1ZXN0SWRlbnRp
ZmllciwgT3B0aW9uYWw8V2ViQ29yZTo6U2VydmljZVdvcmtlckNsaWVudERhdGE+JiYsIGJvb2wg
aGFzU2VjdXJpdHlFcnJvcik7CiAgICAgdm9pZCBtYXRjaEFsbENvbXBsZXRlZCh1aW50NjRfdCBt
YXRjaEFsbFJlcXVlc3RJZGVudGlmaWVyLCBWZWN0b3I8V2ViQ29yZTo6U2VydmljZVdvcmtlckNs
aWVudERhdGE+JiYpOwogICAgIHZvaWQgc2V0VXNlckFnZW50KFN0cmluZyYmIHVzZXJBZ2VudCk7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3RvcmFnZS9XZWJTV0NvbnRl
eHRNYW5hZ2VyQ29ubmVjdGlvbi5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9TdG9yYWdlL1dlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uLm1lc3NhZ2VzLmluCmluZGV4
IDRhNGRkYjdjYThhYTIwMDdkNjNhYjI0ZDUzOTU5NzgyZjcyMmUxOGUuLjUyODRjZDRhNWZmY2E1
NzYyNDk4YWJhMzJkMTE3NzM4NmQ2NDNiZmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9TdG9yYWdlL1dlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uLm1lc3NhZ2VzLmlu
CisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNXQ29udGV4dE1hbmFn
ZXJDb25uZWN0aW9uLm1lc3NhZ2VzLmluCkBAIC0zMSw3ICszMSw2IEBAIG1lc3NhZ2VzIC0+IFdl
YlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uIE5vdFJlZkNvdW50ZWQgewogICAgIEZpcmVJbnN0
YWxsRXZlbnQoV2ViQ29yZTo6U2VydmljZVdvcmtlcklkZW50aWZpZXIgaWRlbnRpZmllcikKICAg
ICBGaXJlQWN0aXZhdGVFdmVudChXZWJDb3JlOjpTZXJ2aWNlV29ya2VySWRlbnRpZmllciBpZGVu
dGlmaWVyKQogICAgIFRlcm1pbmF0ZVdvcmtlcihXZWJDb3JlOjpTZXJ2aWNlV29ya2VySWRlbnRp
ZmllciBpZGVudGlmaWVyKQotICAgIFN5bmNUZXJtaW5hdGVXb3JrZXIoV2ViQ29yZTo6U2Vydmlj
ZVdvcmtlcklkZW50aWZpZXIgaWRlbnRpZmllcikgLT4gKCkgU3luY2hyb25vdXMKICAgICBGaW5k
Q2xpZW50QnlJZGVudGlmaWVyQ29tcGxldGVkKHVpbnQ2NF90IGNsaWVudElkUmVxdWVzdElkZW50
aWZpZXIsIE9wdGlvbmFsPFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJDbGllbnREYXRhPiBkYXRhLCBi
b29sIGhhc1NlY3VyaXR5RXJyb3IpCiAgICAgTWF0Y2hBbGxDb21wbGV0ZWQodWludDY0X3QgbWF0
Y2hBbGxSZXF1ZXN0SWRlbnRpZmllciwgVmVjdG9yPFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJDbGll
bnREYXRhPiBjbGllbnRzRGF0YSkKICAgICBTZXRVc2VyQWdlbnQoU3RyaW5nIHVzZXJBZ2VudCkK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNlcnZpY2VX
b3JrZXJQcm92aWRlci5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3RvcmFnZS9XZWJT
ZXJ2aWNlV29ya2VyUHJvdmlkZXIuY3BwCmluZGV4IGE0NjI2ZDExOTcwNTI1Y2IwN2JiN2M2MmEz
ODI4NTc0MjZiYWQ5ZjUuLjhmNzU4MzVjMzlkN2I0NTBiMzM0OWZjZmQ0ZGFlYzYwYjQzY2U0OWYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNlcnZpY2VX
b3JrZXJQcm92aWRlci5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0b3JhZ2Uv
V2ViU2VydmljZVdvcmtlclByb3ZpZGVyLmNwcApAQCAtNzAsNiArNzAsMTEgQEAgdm9pZCBXZWJT
ZXJ2aWNlV29ya2VyUHJvdmlkZXI6OnVwZGF0ZVRocm90dGxlU3RhdGUoYm9vbCBpc1Rocm90dGxl
YWJsZSkKICAgICAgICAgY29ubmVjdGlvbi51cGRhdGVUaHJvdHRsZVN0YXRlKCk7CiB9CiAKK3Zv
aWQgV2ViU2VydmljZVdvcmtlclByb3ZpZGVyOjp0ZXJtaW5hdGVXb3JrZXJGb3JUZXN0aW5nKFdl
YkNvcmU6OlNlcnZpY2VXb3JrZXJJZGVudGlmaWVyIGlkZW50aWZpZXIsIENvbXBsZXRpb25IYW5k
bGVyPHZvaWQoKT4mJiBjYWxsYmFjaykKK3sKKyAgICBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5l
bnN1cmVOZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24oKS5zZXJ2aWNlV29ya2VyQ29ubmVjdGlvbigp
LnRlcm1pbmF0ZVdvcmtlckZvclRlc3RpbmcoaWRlbnRpZmllciwgV1RGTW92ZShjYWxsYmFjaykp
OworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKIAogI2VuZGlmIC8vIEVOQUJMRShTRVJWSUNF
X1dPUktFUikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TdG9yYWdlL1dl
YlNlcnZpY2VXb3JrZXJQcm92aWRlci5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0b3Jh
Z2UvV2ViU2VydmljZVdvcmtlclByb3ZpZGVyLmgKaW5kZXggYWFlZmFkMzgwNDAyMjE1ODVhZWZm
YTJiMTg0YzNhNjgwNmY0YjNlZC4uZTVjYTIwODM5MjlkMmM5ZWYxNGJlYjJlNTM2MmRkNTUxMDc3
MGFkZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU2Vy
dmljZVdvcmtlclByb3ZpZGVyLmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0b3Jh
Z2UvV2ViU2VydmljZVdvcmtlclByb3ZpZGVyLmgKQEAgLTUzLDYgKzUzLDcgQEAgcHJpdmF0ZToK
ICAgICBXZWJTZXJ2aWNlV29ya2VyUHJvdmlkZXIoKTsKIAogICAgIFdlYkNvcmU6OlNXQ2xpZW50
Q29ubmVjdGlvbiYgc2VydmljZVdvcmtlckNvbm5lY3Rpb24oKSBmaW5hbDsKKyAgICB2b2lkIHRl
cm1pbmF0ZVdvcmtlckZvclRlc3RpbmcoV2ViQ29yZTo6U2VydmljZVdvcmtlcklkZW50aWZpZXIs
IENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJikgZmluYWw7CiB9OyAvLyBjbGFzcyBXZWJTZXJ2
aWNlV29ya2VyUHJvdmlkZXIKIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggNjM5MDQw
YmQ0ZDk3MzQwMzJjYmFjNGQ3NzljMzI2YzFmMjk4YTY3MS4uOWMxNGI2OTUxZTVmOWExNDA0ZmU2
NDBhNDRlMTg5YWRjNzRhYzhjNCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisr
KyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE3IEBACisyMDIwLTA0LTAyICB5
b3Vlbm4gZmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBSZW1vdmUgc3luY2hy
b25vdXMgdGVybWluYXRpb24gb2Ygc2VydmljZSB3b3JrZXJzCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDk2NjYKKworICAgICAgICBSZXZpZXdlZCBi
eSBDaHJpcyBEdW1lei4KKworICAgICAgICAqIGh0dHAvdGVzdHMvd29ya2Vycy9zZXJ2aWNlL3Jl
c291cmNlcy9wb3N0bWVzc2FnZS1hZnRlci1zdy1wcm9jZXNzLWNyYXNoLmpzOgorICAgICAgICAo
YXN5bmMgZXZlbnQpOgorICAgICAgICAqIGh0dHAvdGVzdHMvd29ya2Vycy9zZXJ2aWNlL3Jlc291
cmNlcy9wb3N0bWVzc2FnZS1hZnRlci10ZXJtaW5hdGUuanM6CisgICAgICAgIChhc3luYyBldmVu
dCk6CisgICAgICAgICogaHR0cC90ZXN0cy93b3JrZXJzL3NlcnZpY2UvcmVzb3VyY2VzL3Bvc3Rt
ZXNzYWdlLWFmdGVyLXRlcm1pbmF0aW5nLWh1bmctd29ya2VyLmpzOgorICAgICAgICAoYXN5bmMg
ZXZlbnQpOgorCiAyMDIwLTA0LTAxICB5b3Vlbm4gZmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4K
IAogICAgICAgICBBZGQgaW5pdGlhbCBzdXBwb3J0IGZvciBXZWJSVEMgSEVWQwpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93b3JrZXJzL3NlcnZpY2UvcmVzb3VyY2VzL3Bvc3Rt
ZXNzYWdlLWFmdGVyLXN3LXByb2Nlc3MtY3Jhc2guanMgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3Rz
L3dvcmtlcnMvc2VydmljZS9yZXNvdXJjZXMvcG9zdG1lc3NhZ2UtYWZ0ZXItc3ctcHJvY2Vzcy1j
cmFzaC5qcwppbmRleCBhYWQyZGU2NGJlMjBmZjZmNWMzYWI2OGVlYTRlNGVmNzA0YzIxMWM3Li4x
MGQ4ZTcwZjE2MWRlMjhkY2NjYzk1NmNmYzYwMmQ0ZTIyMmRhY2FhIDEwMDY0NAotLS0gYS9MYXlv
dXRUZXN0cy9odHRwL3Rlc3RzL3dvcmtlcnMvc2VydmljZS9yZXNvdXJjZXMvcG9zdG1lc3NhZ2Ut
YWZ0ZXItc3ctcHJvY2Vzcy1jcmFzaC5qcworKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dv
cmtlcnMvc2VydmljZS9yZXNvdXJjZXMvcG9zdG1lc3NhZ2UtYWZ0ZXItc3ctcHJvY2Vzcy1jcmFz
aC5qcwpAQCAtMiw3ICsyLDcgQEAgbGV0IHNlcnZpY2VXb3JrZXJIYXNSZWNlaXZlZFN0YXRlID0g
ZmFsc2U7CiBsZXQgd29ya2VyID0gbnVsbDsKIGxldCByZW1haW5pbmdBdHRlbXB0cyA9IDEwMDA7
IC8vIFdlIHRyeSBmb3IgMTAgc2Vjb25kcyBiZWZvcmUgdGltaW5nIG91dC4KIAotbmF2aWdhdG9y
LnNlcnZpY2VXb3JrZXIuYWRkRXZlbnRMaXN0ZW5lcigibWVzc2FnZSIsIGZ1bmN0aW9uKGV2ZW50
KSB7CituYXZpZ2F0b3Iuc2VydmljZVdvcmtlci5hZGRFdmVudExpc3RlbmVyKCJtZXNzYWdlIiwg
YXN5bmMgZnVuY3Rpb24oZXZlbnQpIHsKICAgICBpZiAoIXNlcnZpY2VXb3JrZXJIYXNSZWNlaXZl
ZFN0YXRlKSB7CiAgICAgICAgIGlmICghZXZlbnQuZGF0YSkgewogICAgICAgICAgICAgbG9nKCJG
QUlMOiBzZXJ2aWNlIHdvcmtlciBkaWQgbm90IHJlY2VpdmUgdGhlIHN0YXRlIik7CkBAIC0xMiw3
ICsxMiw3IEBAIG5hdmlnYXRvci5zZXJ2aWNlV29ya2VyLmFkZEV2ZW50TGlzdGVuZXIoIm1lc3Nh
Z2UiLCBmdW5jdGlvbihldmVudCkgewogICAgICAgICBzZXJ2aWNlV29ya2VySGFzUmVjZWl2ZWRT
dGF0ZSA9IHRydWU7CiAKICAgICAgICAgbG9nKCIqIFNpbXVsYXRpbmcgU2VydmljZSBXb3JrZXIg
cHJvY2VzcyBjcmFzaCIpOwotICAgICAgICB0ZXN0UnVubmVyLnRlcm1pbmF0ZVNlcnZpY2VXb3Jr
ZXJzKCk7CisgICAgICAgIGF3YWl0IHRlc3RSdW5uZXIudGVybWluYXRlU2VydmljZVdvcmtlcnMo
KTsKIAogICAgICAgICBoYW5kbGUgPSBzZXRJbnRlcnZhbChmdW5jdGlvbigpIHsKICAgICAgICAg
ICAgIHJlbWFpbmluZ0F0dGVtcHRzLS07CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL3dvcmtlcnMvc2VydmljZS9yZXNvdXJjZXMvcG9zdG1lc3NhZ2UtYWZ0ZXItdGVybWluYXRl
LmpzIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93b3JrZXJzL3NlcnZpY2UvcmVzb3VyY2VzL3Bv
c3RtZXNzYWdlLWFmdGVyLXRlcm1pbmF0ZS5qcwppbmRleCBhYzdjYWQ3NGVjNmFlOGUxMDkwOTU1
NzUzMGJlNGU4YTJlNDNkMGY3Li4wOTIwNDMzMjgyNTQ0ODJlMTM3NjlkNjZlYjQ2ZGNhOTMxYThh
YTgwIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dvcmtlcnMvc2VydmljZS9y
ZXNvdXJjZXMvcG9zdG1lc3NhZ2UtYWZ0ZXItdGVybWluYXRlLmpzCisrKyBiL0xheW91dFRlc3Rz
L2h0dHAvdGVzdHMvd29ya2Vycy9zZXJ2aWNlL3Jlc291cmNlcy9wb3N0bWVzc2FnZS1hZnRlci10
ZXJtaW5hdGUuanMKQEAgLTEsOSArMSw5IEBACiB2YXIgbWVzc2FnZU51bWJlciA9IDE7Ci1uYXZp
Z2F0b3Iuc2VydmljZVdvcmtlci5hZGRFdmVudExpc3RlbmVyKCJtZXNzYWdlIiwgZnVuY3Rpb24o
ZXZlbnQpIHsKK25hdmlnYXRvci5zZXJ2aWNlV29ya2VyLmFkZEV2ZW50TGlzdGVuZXIoIm1lc3Nh
Z2UiLCBhc3luYyBmdW5jdGlvbihldmVudCkgewogICAgIGxvZygiUEFTUzogQ2xpZW50IHJlY2Vp
dmVkIG1lc3NhZ2UgZnJvbSBzZXJ2aWNlIHdvcmtlciwgb3JpZ2luOiAiICsgZXZlbnQub3JpZ2lu
KTsKICAgICBsb2coZXZlbnQuZGF0YSk7CiAgICAgaWYgKG1lc3NhZ2VOdW1iZXIgPT0gMSkgewot
ICAgICAgICB3aW5kb3cuaW50ZXJuYWxzLnRlcm1pbmF0ZVNlcnZpY2VXb3JrZXIoZXZlbnQuc291
cmNlKTsKKyAgICAgICAgYXdhaXQgd2luZG93LmludGVybmFscy50ZXJtaW5hdGVTZXJ2aWNlV29y
a2VyKGV2ZW50LnNvdXJjZSk7CiAgICAgICAgIGV2ZW50LnNvdXJjZS5wb3N0TWVzc2FnZSgiTWVz
c2FnZSAyIik7CiAgICAgICAgIG1lc3NhZ2VOdW1iZXIrKzsKICAgICB9IGVsc2UKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd29ya2Vycy9zZXJ2aWNlL3Jlc291cmNlcy9wb3N0
bWVzc2FnZS1hZnRlci10ZXJtaW5hdGluZy1odW5nLXdvcmtlci5qcyBiL0xheW91dFRlc3RzL2h0
dHAvdGVzdHMvd29ya2Vycy9zZXJ2aWNlL3Jlc291cmNlcy9wb3N0bWVzc2FnZS1hZnRlci10ZXJt
aW5hdGluZy1odW5nLXdvcmtlci5qcwppbmRleCA4NmE0MzFiNWM3MjFlMDI5MjA2YTJhMzM5YWEx
ZGI4MDg5YTFmY2QyLi5mZDRhZDQ2OTg2MzJjMjljMzc3ZGY0ZTk1ODE4MDVjNThlMzFkMTlmIDEw
MDY0NAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dvcmtlcnMvc2VydmljZS9yZXNvdXJj
ZXMvcG9zdG1lc3NhZ2UtYWZ0ZXItdGVybWluYXRpbmctaHVuZy13b3JrZXIuanMKKysrIGIvTGF5
b3V0VGVzdHMvaHR0cC90ZXN0cy93b3JrZXJzL3NlcnZpY2UvcmVzb3VyY2VzL3Bvc3RtZXNzYWdl
LWFmdGVyLXRlcm1pbmF0aW5nLWh1bmctd29ya2VyLmpzCkBAIC0xLDEyICsxLDEyIEBACiBsZXQg
c3RhdGUgPSAiV2FpdGluZ0ZvckhhbmciOwogCi1uYXZpZ2F0b3Iuc2VydmljZVdvcmtlci5hZGRF
dmVudExpc3RlbmVyKCJtZXNzYWdlIiwgZnVuY3Rpb24oZXZlbnQpIHsKK25hdmlnYXRvci5zZXJ2
aWNlV29ya2VyLmFkZEV2ZW50TGlzdGVuZXIoIm1lc3NhZ2UiLCBhc3luYyBmdW5jdGlvbihldmVu
dCkgewogICAgIGxvZyhldmVudC5kYXRhKTsKICAgICBpZiAoc3RhdGUgPT09ICJXYWl0aW5nRm9y
SGFuZyIpIHsKICAgICAgICAgbG9nKCJQQVNTOiBTZXJ2aWNlV29ya2VyIHJlY2VpdmVkIG1lc3Nh
Z2U6ICIgKyBldmVudC5kYXRhKTsKICAgICAgICAgbG9nKCJTZXJ2aWNlIFdvcmtlciBzaG91bGQg
bm93IGJlIGh1bmciKTsKICAgICAgICAgbG9nKCJUZXJtaW5hdGluZyBzZXJ2aWNlIHdvcmtlci4u
LiIpCi0gICAgICAgIGludGVybmFscy50ZXJtaW5hdGVTZXJ2aWNlV29ya2VyKHdvcmtlcik7Cisg
ICAgICAgIGF3YWl0IGludGVybmFscy50ZXJtaW5hdGVTZXJ2aWNlV29ya2VyKHdvcmtlcik7CiAg
ICAgICAgIGxvZygiVGVybWluYXRlZCBzZXJ2aWNlIHdvcmtlci4iKTsKICAgICAgICAgc3RhdGUg
PSAiV2FpdGluZ0Zvck1lc3NhZ2VBZnRlclRlcm1pbmF0aW5nSHVuZ1NlcnZpY2VXb3JrZXIiCiAg
ICAgICAgIGhhbmRsZSA9IHNldEludGVydmFsKGZ1bmN0aW9uKCkgewo=
</data>

          </attachment>
      

    </bug>

</bugzilla>