<?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>231679</bug_id>
          
          <creation_ts>2021-10-13 09:11:32 -0700</creation_ts>
          <short_desc>Drop makeWeakPtr() and use WeakPtr { } directly</short_desc>
          <delta_ts>2021-10-14 07:49:13 -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>Web Template Framework</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>231580</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Chris Dumez">cdumez</reporter>
          <assigned_to name="Chris Dumez">cdumez</assigned_to>
          <cc>aboxhall</cc>
    
    <cc>achristensen</cc>
    
    <cc>andresg_22</cc>
    
    <cc>apinheiro</cc>
    
    <cc>benjamin</cc>
    
    <cc>berto</cc>
    
    <cc>cfleizach</cc>
    
    <cc>cgarcia</cc>
    
    <cc>changseok</cc>
    
    <cc>cmarcelo</cc>
    
    <cc>darin</cc>
    
    <cc>dmazzoni</cc>
    
    <cc>eric.carlson</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>ggaren</cc>
    
    <cc>glenn</cc>
    
    <cc>gustavo</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>hi</cc>
    
    <cc>japhet</cc>
    
    <cc>jbedard</cc>
    
    <cc>jcraig</cc>
    
    <cc>jdiggs</cc>
    
    <cc>jer.noble</cc>
    
    <cc>jiewen_tan</cc>
    
    <cc>joepeck</cc>
    
    <cc>kangil.han</cc>
    
    <cc>mifenton</cc>
    
    <cc>mkwst</cc>
    
    <cc>pangle</cc>
    
    <cc>philipj</cc>
    
    <cc>samuel_white</cc>
    
    <cc>sam</cc>
    
    <cc>sergio</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1803796</commentid>
    <comment_count>0</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-10-13 09:11:32 -0700</bug_when>
    <thetext>Drop makeWeakPtr() and use WeakPtr { } directly.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1803812</commentid>
    <comment_count>1</comment_count>
      <attachid>441093</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-10-13 09:48:10 -0700</bug_when>
    <thetext>Created attachment 441093
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1803813</commentid>
    <comment_count>2</comment_count>
    <who name="EWS Watchlist">ews-watchlist</who>
    <bug_when>2021-10-13 09:49:00 -0700</bug_when>
    <thetext>Thanks for the patch. If this patch contains new public API please make sure it follows the guidelines for new WebKit2 GTK+ API. See https://trac.webkit.org/wiki/WebKitGTK/AddingNewWebKit2API</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1803826</commentid>
    <comment_count>3</comment_count>
      <attachid>441095</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-10-13 10:08:08 -0700</bug_when>
    <thetext>Created attachment 441095
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1803835</commentid>
    <comment_count>4</comment_count>
      <attachid>441096</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-10-13 10:27:18 -0700</bug_when>
    <thetext>Created attachment 441096
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1803944</commentid>
    <comment_count>5</comment_count>
      <attachid>441128</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-10-13 13:37:14 -0700</bug_when>
    <thetext>Created attachment 441128
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1804000</commentid>
    <comment_count>6</comment_count>
      <attachid>441128</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2021-10-13 15:17:57 -0700</bug_when>
    <thetext>Comment on attachment 441128
Patch

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

&gt; Source/WebKit/GPUProcess/GPUConnectionToWebProcess.cpp:233
&gt; +    gpuProcess.audioSessionManager().session().setRoutingArbitrationClient(WeakPtr { m_routingArbitrator.get() });

Can we leave out the explicit conversion to WeakPtr? I saw many other cases where it seems we were able to do that.

&gt; Source/WebKit/GPUProcess/media/RemoteCDMInstanceProxy.cpp:56
&gt; +    m_instance-&gt;setClient(static_cast&lt;CDMInstanceClient&amp;&gt;(*this));

Why is the static_cast needed? What compilation failure do we get without the cast?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1804005</commentid>
    <comment_count>7</comment_count>
      <attachid>441128</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-10-13 15:20:55 -0700</bug_when>
    <thetext>Comment on attachment 441128
Patch

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

&gt;&gt; Source/WebKit/GPUProcess/GPUConnectionToWebProcess.cpp:233
&gt;&gt; +    gpuProcess.audioSessionManager().session().setRoutingArbitrationClient(WeakPtr { m_routingArbitrator.get() });
&gt; 
&gt; Can we leave out the explicit conversion to WeakPtr? I saw many other cases where it seems we were able to do that.

I had initially tried to drop the explicit conversion but it failed to build so I put it back.

The issue is that setRoutingArbitrationClient() takes in a `WeakPtr&lt;AudioSessionRoutingArbitrationClient&gt;&amp;&amp;`, but AudioSessionRoutingArbitrationClient doesn&apos;t subclass CanMakeWeakPtr (its subclasses do). It is a bit weird it was implemented this way. I tried not to refactor the code too much in this patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1804008</commentid>
    <comment_count>8</comment_count>
      <attachid>441128</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-10-13 15:23:29 -0700</bug_when>
    <thetext>Comment on attachment 441128
Patch

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

&gt;&gt; Source/WebKit/GPUProcess/media/RemoteCDMInstanceProxy.cpp:56
&gt;&gt; +    m_instance-&gt;setClient(static_cast&lt;CDMInstanceClient&amp;&gt;(*this));
&gt; 
&gt; Why is the static_cast needed? What compilation failure do we get without the cast?

The issue is that RemoteCDMInstanceProxy inherits CanMakeWeakPtr&lt;&gt; from 2 base classes, this cast resolves the ambiguity. We could also resolve the ambiguity with a couple of `using` statements in the RemoteCDMInstanceProxy header too though.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1804016</commentid>
    <comment_count>9</comment_count>
      <attachid>441128</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2021-10-13 15:34:07 -0700</bug_when>
    <thetext>Comment on attachment 441128
Patch

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

&gt;&gt;&gt; Source/WebKit/GPUProcess/GPUConnectionToWebProcess.cpp:233
&gt;&gt;&gt; +    gpuProcess.audioSessionManager().session().setRoutingArbitrationClient(WeakPtr { m_routingArbitrator.get() });
&gt;&gt; 
&gt;&gt; Can we leave out the explicit conversion to WeakPtr? I saw many other cases where it seems we were able to do that.
&gt; 
&gt; I had initially tried to drop the explicit conversion but it failed to build so I put it back.
&gt; 
&gt; The issue is that setRoutingArbitrationClient() takes in a `WeakPtr&lt;AudioSessionRoutingArbitrationClient&gt;&amp;&amp;`, but AudioSessionRoutingArbitrationClient doesn&apos;t subclass CanMakeWeakPtr (its subclasses do). It is a bit weird it was implemented this way. I tried not to refactor the code too much in this patch.

I am kind of surprised that works; can’t really figure out how it does. How can WeakPtr&lt;AudioSessionRoutingArbitrationClient&gt; member functions successfully compile? I guess it’s down to the implementation internals of WeakPtr.

After landing this, it seems like we should streamline this code by moving CanMakeWeakPtr into AudioSessionRoutingArbitrationClient unless that would lead to derived classes that inherit from two different CanMakeWeakPtr bases.

&gt;&gt;&gt; Source/WebKit/GPUProcess/media/RemoteCDMInstanceProxy.cpp:56
&gt;&gt;&gt; +    m_instance-&gt;setClient(static_cast&lt;CDMInstanceClient&amp;&gt;(*this));
&gt;&gt; 
&gt;&gt; Why is the static_cast needed? What compilation failure do we get without the cast?
&gt; 
&gt; The issue is that RemoteCDMInstanceProxy inherits CanMakeWeakPtr&lt;&gt; from 2 base classes, this cast resolves the ambiguity. We could also resolve the ambiguity with a couple of `using` statements in the RemoteCDMInstanceProxy header too though.

I wouldn’t block landing the patch over this; on the other hand, I think the using statements would be a more elegant solution.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1804044</commentid>
    <comment_count>10</comment_count>
      <attachid>441155</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-10-13 16:05:21 -0700</bug_when>
    <thetext>Created attachment 441155
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1804046</commentid>
    <comment_count>11</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-10-13 16:09:26 -0700</bug_when>
    <thetext>(In reply to Chris Dumez from comment #10)
&gt; Created attachment 441155 [details]
&gt; Patch

I made the 2 suggested changes as they were painless.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1804118</commentid>
    <comment_count>12</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-10-13 18:46:33 -0700</bug_when>
    <thetext>Committed r284142 (242962@main): &lt;https://commits.webkit.org/242962@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 441155.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1804119</commentid>
    <comment_count>13</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-10-13 18:47:20 -0700</bug_when>
    <thetext>&lt;rdar://problem/84227975&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1804273</commentid>
    <comment_count>14</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-10-14 07:49:13 -0700</bug_when>
    <thetext>Follow-up fix in https://commits.webkit.org/r284160 to address some assertions on Mac-wk1 debug bots.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>441093</attachid>
            <date>2021-10-13 09:48:10 -0700</date>
            <delta_ts>2021-10-13 10:16:24 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-231679-20211013094810.patch</filename>
            <type>text/plain</type>
            <size>210416</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg0MDkzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IGUwYjcxYTY3ZTE1ZGYxNjMxMWIyNWE5
NmU0YTk2MDhlMWY4NmI1YWQuLmEwNTA5YjhjZDFjMjJmMGRmOTgxZTFjYjBlNDU0YmE2MWNmNjJk
ODQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIwMjEtMTAtMTMgIENocmlzIER1bWV6ICA8Y2R1bWV6
QGFwcGxlLmNvbT4KKworICAgICAgICBEcm9wIG1ha2VXZWFrUHRyKCkgYW5kIHVzZSBXZWFrUHRy
IHsgfSBkaXJlY3RseQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MjMxNjc5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgKiB3dGYvV2Vha0hhc2hNYXAuaDoKKyAgICAgICAgKiB3dGYvV2Vha0hhc2hTZXQuaDoK
KyAgICAgICAgKFdURjo6Y29weVRvVmVjdG9yKToKKyAgICAgICAgKiB3dGYvV2Vha1B0ci5oOgor
ICAgICAgICAoV1RGOjptYWtlV2Vha1B0cik6IERlbGV0ZWQuCisKIDIwMjEtMTAtMTMgIENocmlz
IER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KIAogICAgICAgICBTdG9wIHVzaW5nIG1ha2VXZWFr
UHRyKCkgaW4gV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIv
U291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IDJjNDUxYTc1ZjIyZjY2MDQ0NmU4MGRlOThm
YjllMjUwYjU2ZjY3ZjEuLjZlYzdiM2U5Zjc3NzdjZTk3NjQzYWJmODA5NWViZGQ3YjE0NzYwYTIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxOCBAQAorMjAyMS0xMC0xMyAgQ2hyaXMgRHVtZXogIDxj
ZHVtZXpAYXBwbGUuY29tPgorCisgICAgICAgIERyb3AgbWFrZVdlYWtQdHIoKSBhbmQgdXNlIFdl
YWtQdHIgeyB9IGRpcmVjdGx5CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0yMzE2NzkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICAqIE1vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVtU3luY0FjY2Vz
c0hhbmRsZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRs
ZTo6dHJ1bmNhdGUpOgorICAgICAgICAoV2ViQ29yZTo6RmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5k
bGU6OmdldFNpemUpOgorICAgICAgICAoV2ViQ29yZTo6RmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5k
bGU6OmZsdXNoKToKKyAgICAgICAgKFdlYkNvcmU6OkZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxl
OjpjbG9zZSk6CisgICAgICAgICogZG9tL0VsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
RWxlbWVudDo6YWRkU2hhZG93Um9vdCk6CisKIDIwMjEtMTAtMTMgIENocmlzIER1bWV6ICA8Y2R1
bWV6QGFwcGxlLmNvbT4KIAogICAgICAgICBTdG9wIHVzaW5nIG1ha2VXZWFrUHRyKCkgaW4gV2Vi
Q29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0
L0NoYW5nZUxvZwppbmRleCA2YTA3M2I5M2FiYzM2NzU3NTk2NTQ1NzQ2Yjc3NDY1OGJiMGJiMGNh
Li4xNzM2NzAwNmViN2QyZjMxOTcxZWRlMTkxMDBkNDE0ODU2OWU4MjNkIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAt
MSwzICsxLDM4MyBAQAorMjAyMS0xMC0xMyAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29t
PgorCisgICAgICAgIERyb3AgbWFrZVdlYWtQdHIoKSBhbmQgdXNlIFdlYWtQdHIgeyB9IGRpcmVj
dGx5CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzE2
NzkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIEdQ
VVByb2Nlc3MvR1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5jcHA6CisgICAgICAgIChXZWJLaXQ6
OkdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OkdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MpOgor
ICAgICAgICAqIEdQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlR3JhcGhpY3NDb250ZXh0R0wuY3Bw
OgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVHcmFwaGljc0NvbnRleHRHTDo6UmVtb3RlR3JhcGhp
Y3NDb250ZXh0R0wpOgorICAgICAgICAqIEdQVVByb2Nlc3MvbWVkaWEvUmVtb3RlQXVkaW9IYXJk
d2FyZUxpc3RlbmVyUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVBdWRpb0hhcmR3
YXJlTGlzdGVuZXJQcm94eTo6UmVtb3RlQXVkaW9IYXJkd2FyZUxpc3RlbmVyUHJveHkpOgorICAg
ICAgICAqIEdQVVByb2Nlc3MvbWVkaWEvUmVtb3RlQXVkaW9UcmFja1Byb3h5LmNwcDoKKyAgICAg
ICAgKFdlYktpdDo6UmVtb3RlQXVkaW9UcmFja1Byb3h5OjpSZW1vdGVBdWRpb1RyYWNrUHJveHkp
OgorICAgICAgICAqIEdQVVByb2Nlc3MvbWVkaWEvUmVtb3RlQ0RNRmFjdG9yeVByb3h5LmNwcDoK
KyAgICAgICAgKFdlYktpdDo6UmVtb3RlQ0RNRmFjdG9yeVByb3h5OjpSZW1vdGVDRE1GYWN0b3J5
UHJveHkpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVDRE1GYWN0b3J5UHJveHk6OmNyZWF0ZUNE
TSk6CisgICAgICAgICogR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVDRE1JbnN0YW5jZVByb3h5LmNw
cDoKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlQ0RNSW5zdGFuY2VQcm94eTo6UmVtb3RlQ0RNSW5z
dGFuY2VQcm94eSk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUNETUluc3RhbmNlUHJveHk6OmNy
ZWF0ZVNlc3Npb24pOgorICAgICAgICAqIEdQVVByb2Nlc3MvbWVkaWEvUmVtb3RlQ0RNSW5zdGFu
Y2VTZXNzaW9uUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVDRE1JbnN0YW5jZVNl
c3Npb25Qcm94eTo6Y3JlYXRlKToKKyAgICAgICAgKiBHUFVQcm9jZXNzL21lZGlhL1JlbW90ZUNE
TVByb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlQ0RNUHJveHk6OmNyZWF0ZUluc3Rh
bmNlKToKKyAgICAgICAgKiBHUFVQcm9jZXNzL21lZGlhL1JlbW90ZUltYWdlRGVjb2RlckFWRlBy
b3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlSW1hZ2VEZWNvZGVyQVZGUHJveHk6OlJl
bW90ZUltYWdlRGVjb2RlckFWRlByb3h5KToKKyAgICAgICAgKiBHUFVQcm9jZXNzL21lZGlhL1Jl
bW90ZUxlZ2FjeUNETUZhY3RvcnlQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUxl
Z2FjeUNETUZhY3RvcnlQcm94eTo6UmVtb3RlTGVnYWN5Q0RNRmFjdG9yeVByb3h5KToKKyAgICAg
ICAgKFdlYktpdDo6UmVtb3RlTGVnYWN5Q0RNRmFjdG9yeVByb3h5OjpjcmVhdGVDRE0pOgorICAg
ICAgICAqIEdQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTGVnYWN5Q0RNUHJveHkuY3BwOgorICAgICAg
ICAoV2ViS2l0OjpSZW1vdGVMZWdhY3lDRE1Qcm94eTo6Y3JlYXRlU2Vzc2lvbik6CisgICAgICAg
ICogR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVBsYXllck1hbmFnZXJQcm94eS5jcHA6Cisg
ICAgICAgIChXZWJLaXQ6OlJlbW90ZU1lZGlhUGxheWVyTWFuYWdlclByb3h5OjpSZW1vdGVNZWRp
YVBsYXllck1hbmFnZXJQcm94eSk6CisgICAgICAgICogR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVN
ZWRpYVBsYXllclByb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlTWVkaWFQbGF5ZXJQ
cm94eTo6UmVtb3RlTWVkaWFQbGF5ZXJQcm94eSk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZU1l
ZGlhUGxheWVyUHJveHk6OnNldExlZ2FjeUNETVNlc3Npb24pOgorICAgICAgICAqIEdQVVByb2Nl
c3MvbWVkaWEvUmVtb3RlTWVkaWFSZXNvdXJjZS5jcHA6CisgICAgICAgIChXZWJLaXQ6OlJlbW90
ZU1lZGlhUmVzb3VyY2U6OlJlbW90ZU1lZGlhUmVzb3VyY2UpOgorICAgICAgICAqIEdQVVByb2Nl
c3MvbWVkaWEvUmVtb3RlTWVkaWFSZXNvdXJjZUxvYWRlci5jcHA6CisgICAgICAgIChXZWJLaXQ6
OlJlbW90ZU1lZGlhUmVzb3VyY2VMb2FkZXI6OlJlbW90ZU1lZGlhUmVzb3VyY2VMb2FkZXIpOgor
ICAgICAgICAqIEdQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFTb3VyY2VQcm94eS5jcHA6Cisg
ICAgICAgIChXZWJLaXQ6OlJlbW90ZU1lZGlhU291cmNlUHJveHk6OlJlbW90ZU1lZGlhU291cmNl
UHJveHkpOgorICAgICAgICAqIEdQVVByb2Nlc3MvbWVkaWEvUmVtb3RlUmVtb3RlQ29tbWFuZExp
c3RlbmVyUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVSZW1vdGVDb21tYW5kTGlz
dGVuZXJQcm94eTo6UmVtb3RlUmVtb3RlQ29tbWFuZExpc3RlbmVyUHJveHkpOgorICAgICAgICAq
IEdQVVByb2Nlc3MvbWVkaWEvUmVtb3RlU291cmNlQnVmZmVyUHJveHkuY3BwOgorICAgICAgICAo
V2ViS2l0OjpSZW1vdGVTb3VyY2VCdWZmZXJQcm94eTo6UmVtb3RlU291cmNlQnVmZmVyUHJveHkp
OgorICAgICAgICAqIEdQVVByb2Nlc3MvbWVkaWEvUmVtb3RlVGV4dFRyYWNrUHJveHkuY3BwOgor
ICAgICAgICAoV2ViS2l0OjpSZW1vdGVUZXh0VHJhY2tQcm94eTo6UmVtb3RlVGV4dFRyYWNrUHJv
eHkpOgorICAgICAgICAqIEdQVVByb2Nlc3MvbWVkaWEvUmVtb3RlVmlkZW9UcmFja1Byb3h5LmNw
cDoKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlVmlkZW9UcmFja1Byb3h5OjpSZW1vdGVWaWRlb1Ry
YWNrUHJveHkpOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL0NsYXNzaWZpZXIvV2ViUmVzb3Vy
Y2VMb2FkU3RhdGlzdGljc1N0b3JlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUmVzb3VyY2VM
b2FkU3RhdGlzdGljc1N0b3JlOjpXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmUpOgorICAg
ICAgICAqIE5ldHdvcmtQcm9jZXNzL0Rvd25sb2Fkcy9jb2NvYS9XS0Rvd25sb2FkUHJvZ3Jlc3Mu
bW06CisgICAgICAgICgtW1dLRG93bmxvYWRQcm9ncmVzcyBpbml0V2l0aERvd25sb2FkVGFzazpk
b3dubG9hZDpVUkw6c2FuZGJveEV4dGVuc2lvbjpdKToKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vz
cy9OZXR3b3JrQ09SU1ByZWZsaWdodENoZWNrZXIuY3BwOgorICAgICAgICAoV2ViS2l0OjpOZXR3
b3JrQ09SU1ByZWZsaWdodENoZWNrZXI6Ok5ldHdvcmtDT1JTUHJlZmxpZ2h0Q2hlY2tlcik6Cisg
ICAgICAgICogTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuY3Bw
OgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6ZXN0YWJs
aXNoU1dTZXJ2ZXJDb25uZWN0aW9uKToKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3Jr
RGF0YVRhc2suY3BwOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrRGF0YVRhc2s6Ok5ldHdvcmtE
YXRhVGFzayk6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvTmV0d29ya0xvYWQuY3BwOgorICAg
ICAgICAoV2ViS2l0OjpOZXR3b3JrTG9hZDo6c3RhcnRXaXRoU2NoZWR1bGluZyk6CisgICAgICAg
ICogTmV0d29ya1Byb2Nlc3MvTmV0d29ya0xvYWRDaGVja2VyLmNwcDoKKyAgICAgICAgKFdlYktp
dDo6TmV0d29ya0xvYWRDaGVja2VyOjpOZXR3b3JrTG9hZENoZWNrZXIpOgorICAgICAgICAqIE5l
dHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmNwcDoKKyAgICAgICAgKFdlYktpdDo6TmV0d29y
a1Byb2Nlc3M6OnByZWNvbm5lY3RUbyk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNz
OjpkZWxldGVBbmRSZXN0cmljdFdlYnNpdGVEYXRhRm9yUmVnaXN0cmFibGVEb21haW5zKToKKyAg
ICAgICAgKFdlYktpdDo6TmV0d29ya1Byb2Nlc3M6OnNpbXVsYXRlUmVzb3VyY2VMb2FkU3RhdGlz
dGljc1Nlc3Npb25SZXN0YXJ0KToKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUmVz
b3VyY2VMb2FkZXIuY3BwOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUmVzb3VyY2VMb2FkZXI6
OnNlbmREaWRSZWNlaXZlUmVzcG9uc2VQb3RlbnRpYWxseUluTmV3QnJvd3NpbmdDb250ZXh0R3Jv
dXApOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtTb2NrZXRDaGFubmVsLmNwcDoK
KyAgICAgICAgKFdlYktpdDo6TmV0d29ya1NvY2tldENoYW5uZWw6Ok5ldHdvcmtTb2NrZXRDaGFu
bmVsKToKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrU3RvcmFnZVNlc3Npb25Qcm92
aWRlci5oOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL1ByaXZhdGVDbGlja01lYXN1cmVtZW50
L1ByaXZhdGVDbGlja01lYXN1cmVtZW50Q2xpZW50SW1wbC5jcHA6CisgICAgICAgIChXZWJLaXQ6
OlBDTTo6Q2xpZW50SW1wbDo6Q2xpZW50SW1wbCk6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3Mv
UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRDb25uZWN0aW9u
LmNwcDoKKyAgICAgICAgKFdlYktpdDo6UENNOjpDb25uZWN0aW9uVG9NYWNoU2VydmljZTo6Q29u
bmVjdGlvblRvTWFjaFNlcnZpY2UpOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL1ByaXZhdGVD
bGlja01lYXN1cmVtZW50L2NvY29hL1ByaXZhdGVDbGlja01lYXN1cmVtZW50Q29ubmVjdGlvbkNv
Y29hLm1tOgorICAgICAgICAoV2ViS2l0OjpQQ006OkNvbm5lY3Rpb25Ub01hY2hTZXJ2aWNlOjpp
bml0aWFsaXplQ29ubmVjdGlvbklmTmVlZGVkIGNvbnN0KToKKyAgICAgICAgKiBOZXR3b3JrUHJv
Y2Vzcy9TZXJ2aWNlV29ya2VyL1NlcnZpY2VXb3JrZXJGZXRjaFRhc2suY3BwOgorICAgICAgICAo
V2ViS2l0OjpTZXJ2aWNlV29ya2VyRmV0Y2hUYXNrOjpTZXJ2aWNlV29ya2VyRmV0Y2hUYXNrKToK
KyAgICAgICAgKFdlYktpdDo6U2VydmljZVdvcmtlckZldGNoVGFzazo6c3RhcnQpOgorICAgICAg
ICAqIE5ldHdvcmtQcm9jZXNzL1NlcnZpY2VXb3JrZXIvU2VydmljZVdvcmtlclNvZnRVcGRhdGVM
b2FkZXIuY3BwOgorICAgICAgICAoV2ViS2l0OjpTZXJ2aWNlV29ya2VyU29mdFVwZGF0ZUxvYWRl
cjo6U2VydmljZVdvcmtlclNvZnRVcGRhdGVMb2FkZXIpOgorICAgICAgICAqIE5ldHdvcmtQcm9j
ZXNzL1NlcnZpY2VXb3JrZXIvV2ViU1dTZXJ2ZXJUb0NvbnRleHRDb25uZWN0aW9uLmNwcDoKKyAg
ICAgICAgKFdlYktpdDo6V2ViU1dTZXJ2ZXJUb0NvbnRleHRDb25uZWN0aW9uOjpXZWJTV1NlcnZl
clRvQ29udGV4dENvbm5lY3Rpb24pOgorICAgICAgICAoV2ViS2l0OjpXZWJTV1NlcnZlclRvQ29u
dGV4dENvbm5lY3Rpb246OnJlZ2lzdGVyRmV0Y2gpOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNz
L1dlYlN0b3JhZ2UvU3RvcmFnZUFyZWEuY3BwOgorICAgICAgICAoV2ViS2l0OjpTdG9yYWdlQXJl
YTo6U3RvcmFnZUFyZWEpOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL1dlYlN0b3JhZ2UvU3Rv
cmFnZU1hbmFnZXJTZXQuY3BwOgorICAgICAgICAoV2ViS2l0OjpTdG9yYWdlTWFuYWdlclNldDo6
Y29ubmVjdFRvTG9jYWxTdG9yYWdlQXJlYSk6CisgICAgICAgIChXZWJLaXQ6OlN0b3JhZ2VNYW5h
Z2VyU2V0Ojpjb25uZWN0VG9UcmFuc2llbnRMb2NhbFN0b3JhZ2VBcmVhKToKKyAgICAgICAgKFdl
YktpdDo6U3RvcmFnZU1hbmFnZXJTZXQ6OmNvbm5lY3RUb1Nlc3Npb25TdG9yYWdlQXJlYSk6Cisg
ICAgICAgICogTmV0d29ya1Byb2Nlc3MvY2FjaGUvQ2FjaGVTdG9yYWdlRW5naW5lLmNwcDoKKyAg
ICAgICAgKFdlYktpdDo6Q2FjaGVTdG9yYWdlOjpFbmdpbmU6OkVuZ2luZSk6CisgICAgICAgICog
TmV0d29ya1Byb2Nlc3MvY29jb2EvTmV0d29ya0RhdGFUYXNrQ29jb2EubW06CisgICAgICAgIChX
ZWJLaXQ6Ok5ldHdvcmtEYXRhVGFza0NvY29hOjpOZXR3b3JrRGF0YVRhc2tDb2NvYSk6CisgICAg
ICAgIChXZWJLaXQ6Ok5ldHdvcmtEYXRhVGFza0NvY29hOjpzd2FwU2Vzc2lvbklmTmVjZXNzYXJ5
KToKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9jb2NvYS9OZXR3b3JrU2Vzc2lvbkNvY29hLm1t
OgorICAgICAgICAoLVtXS05ldHdvcmtTZXNzaW9uRGVsZWdhdGUgaW5pdFdpdGhOZXR3b3JrU2Vz
c2lvbjp3cmFwcGVyOndpdGhDcmVkZW50aWFsczpdKToKKyAgICAgICAgKC1bV0tOZXR3b3JrU2Vz
c2lvbkRlbGVnYXRlIFVSTFNlc3Npb246dGFzazpkaWRSZWNlaXZlQ2hhbGxlbmdlOmNvbXBsZXRp
b25IYW5kbGVyOl0pOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrU2Vzc2lvbkNvY29hOjpjcmVh
dGVXZWJTb2NrZXRUYXNrKToKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Nlc3Npb25Db2NvYTo6
YWRkV2ViUGFnZU5ldHdvcmtQYXJhbWV0ZXJzKToKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9z
dG9yYWdlL0ZpbGVTeXN0ZW1TdG9yYWdlSGFuZGxlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6Rmls
ZVN5c3RlbVN0b3JhZ2VIYW5kbGU6OkZpbGVTeXN0ZW1TdG9yYWdlSGFuZGxlKToKKyAgICAgICAg
KiBOZXR3b3JrUHJvY2Vzcy9zdG9yYWdlL0ZpbGVTeXN0ZW1TdG9yYWdlSGFuZGxlUmVnaXN0cnku
Y3BwOgorICAgICAgICAoV2ViS2l0OjpGaWxlU3lzdGVtU3RvcmFnZUhhbmRsZVJlZ2lzdHJ5Ojpy
ZWdpc3RlckhhbmRsZSk6CisgICAgICAgICogUGxhdGZvcm0vSVBDL0Nvbm5lY3Rpb24uY3BwOgor
ICAgICAgICAoSVBDOjpDb25uZWN0aW9uOjphZGRNZXNzYWdlT2JzZXJ2ZXIpOgorICAgICAgICAq
IFBsYXRmb3JtL0lQQy9NZXNzYWdlUmVjZWl2ZXJNYXAuY3BwOgorICAgICAgICAoSVBDOjpNZXNz
YWdlUmVjZWl2ZXJNYXA6OmFkZE1lc3NhZ2VSZWNlaXZlcik6CisgICAgICAgICogUGxhdGZvcm0v
Y29jb2EvV0tQYXltZW50QXV0aG9yaXphdGlvbkRlbGVnYXRlLm1tOgorICAgICAgICAoLVtXS1Bh
eW1lbnRBdXRob3JpemF0aW9uRGVsZWdhdGUgX2luaXRXaXRoUmVxdWVzdDpwcmVzZW50ZXI6XSk6
CisgICAgICAgICogU2hhcmVkL0FwcGxlUGF5L1dlYlBheW1lbnRDb29yZGluYXRvclByb3h5LmNw
cDoKKyAgICAgICAgKFdlYktpdDo6V2ViUGF5bWVudENvb3JkaW5hdG9yUHJveHk6OnNob3dQYXlt
ZW50VUkpOgorICAgICAgICAqIFNoYXJlZC9XZWJTUUxpdGVEYXRhYmFzZVRyYWNrZXIuaDoKKyAg
ICAgICAgKiBTaGFyZWQvWFIvWFJEZXZpY2VQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OlhS
RGV2aWNlUHJveHk6OlhSRGV2aWNlUHJveHkpOgorICAgICAgICAqIFNoYXJlZC9tYWMvU2VjSXRl
bVNoaW0uY3BwOgorICAgICAgICAoV2ViS2l0Ojppbml0aWFsaXplU2VjSXRlbVNoaW0pOgorICAg
ICAgICAqIFVJUHJvY2Vzcy9BUEkvQVBJQXR0YWNobWVudC5jcHA6CisgICAgICAgIChBUEk6OkF0
dGFjaG1lbnQ6OkF0dGFjaG1lbnQpOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQVBJSFRUUENv
b2tpZVN0b3JlLmNwcDoKKyAgICAgICAgKEFQSTo6SFRUUENvb2tpZVN0b3JlOjpIVFRQQ29va2ll
U3RvcmUpOgorICAgICAgICAoQVBJOjpIVFRQQ29va2llU3RvcmU6OnJlZ2lzdGVyT2JzZXJ2ZXIp
OgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQVBJSW5zcGVjdG9yRXh0ZW5zaW9uLmNwcDoKKyAg
ICAgICAgKEFQSTo6SW5zcGVjdG9yRXh0ZW5zaW9uOjpJbnNwZWN0b3JFeHRlbnNpb24pOgorICAg
ICAgICAqIFVJUHJvY2Vzcy9BUEkvQVBJV2ViQXV0aGVudGljYXRpb25QYW5lbC5jcHA6CisgICAg
ICAgIChBUEk6OldlYkF1dGhlbnRpY2F0aW9uUGFuZWw6OldlYkF1dGhlbnRpY2F0aW9uUGFuZWwp
OgorICAgICAgICAoQVBJOjpXZWJBdXRoZW50aWNhdGlvblBhbmVsOjpoYW5kbGVSZXF1ZXN0KToK
KyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlldy5tbToKKyAgICAgICAgKC1b
V0tXZWJWaWV3IF9yZW1vdmVEYXRhRGV0ZWN0ZWRMaW5rczpdKToKKyAgICAgICAgKiBVSVByb2Nl
c3MvQVBJL0NvY29hL1dLV2ViVmlld1Rlc3RpbmcubW06CisgICAgICAgICgtW1dLTWVkaWFTZXNz
aW9uQ29vcmRpbmF0b3JIZWxwZXIgaW5pdFdpdGhDb29yZGluYXRvcjpdKToKKyAgICAgICAgKiBV
SVByb2Nlc3MvQVBJL0NvY29hL19XS1dlYkF1dGhlbnRpY2F0aW9uUGFuZWwubW06CisgICAgICAg
ICgtW19XS1dlYkF1dGhlbnRpY2F0aW9uUGFuZWwgc2V0RGVsZWdhdGU6XSk6CisgICAgICAgICog
VUlQcm9jZXNzL0FQSS9pb3MvV0tXZWJWaWV3SU9TLm1tOgorICAgICAgICAoLVtXS1dlYlZpZXcg
X2RldGVjdERhdGFXaXRoVHlwZXM6Y29tcGxldGlvbkhhbmRsZXI6XSk6CisgICAgICAgICogVUlQ
cm9jZXNzL0NvY29hL0dyb3VwQWN0aXZpdGllcy9Hcm91cEFjdGl2aXRpZXNDb29yZGluYXRvci5t
bToKKyAgICAgICAgKC1bV0tHcm91cEFjdGl2aXRpZXNDb29yZGluYXRvckRlbGVnYXRlIGluaXRX
aXRoUGFyZW50Ol0pOgorICAgICAgICAqIFVJUHJvY2Vzcy9Db2NvYS9MZWdhY3lDdXN0b21Qcm90
b2NvbE1hbmFnZXJDbGllbnQubW06CisgICAgICAgICgtW1dLQ3VzdG9tUHJvdG9jb2xMb2FkZXIg
aW5pdFdpdGhMZWdhY3lDdXN0b21Qcm90b2NvbE1hbmFnZXJQcm94eTpjdXN0b21Qcm90b2NvbElE
OnJlcXVlc3Q6XSk6CisgICAgICAgICogVUlQcm9jZXNzL0NvY29hL05hdmlnYXRpb25TdGF0ZS5t
bToKKyAgICAgICAgKFdlYktpdDo6TmF2aWdhdGlvblN0YXRlOjpOYXZpZ2F0aW9uU3RhdGUpOgor
ICAgICAgICAoV2ViS2l0OjpOYXZpZ2F0aW9uU3RhdGU6Ok5hdmlnYXRpb25DbGllbnQ6Ok5hdmln
YXRpb25DbGllbnQpOgorICAgICAgICAoV2ViS2l0Ojp0cnlJbnRlcmNlcHROYXZpZ2F0aW9uKToK
KyAgICAgICAgKFdlYktpdDo6TmF2aWdhdGlvblN0YXRlOjpIaXN0b3J5Q2xpZW50OjpIaXN0b3J5
Q2xpZW50KToKKyAgICAgICAgKiBVSVByb2Nlc3MvQ29jb2EvU09BdXRob3JpemF0aW9uL1BvcFVw
U09BdXRob3JpemF0aW9uU2Vzc2lvbi5tbToKKyAgICAgICAgKC1bV0tTT1NlY3JldERlbGVnYXRl
IGluaXRXaXRoU2Vzc2lvbjpdKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQ29jb2EvU09BdXRob3Jp
emF0aW9uL1NPQXV0aG9yaXphdGlvblNlc3Npb24ubW06CisgICAgICAgIChXZWJLaXQ6OlNPQXV0
aG9yaXphdGlvblNlc3Npb246OlNPQXV0aG9yaXphdGlvblNlc3Npb24pOgorICAgICAgICAqIFVJ
UHJvY2Vzcy9Db2NvYS9VSURlbGVnYXRlLm1tOgorICAgICAgICAoV2ViS2l0OjpVSURlbGVnYXRl
OjpDb250ZXh0TWVudUNsaWVudDo6Q29udGV4dE1lbnVDbGllbnQpOgorICAgICAgICAoV2ViS2l0
OjpVSURlbGVnYXRlOjpVSUNsaWVudDo6VUlDbGllbnQpOgorICAgICAgICAoV2ViS2l0OjpVSURl
bGVnYXRlOjpVSUNsaWVudDo6ZGVjaWRlUG9saWN5Rm9yR2VvbG9jYXRpb25QZXJtaXNzaW9uUmVx
dWVzdCk6CisgICAgICAgIChXZWJLaXQ6OlVJRGVsZWdhdGU6OlVJQ2xpZW50OjpzaG91bGRBbGxv
d0RldmljZU9yaWVudGF0aW9uQW5kTW90aW9uQWNjZXNzKToKKyAgICAgICAgKiBVSVByb2Nlc3Mv
Q29jb2EvV2ViUGFzdGVib2FyZFByb3h5Q29jb2EubW06CisgICAgICAgIChXZWJLaXQ6OldlYlBh
c3RlYm9hcmRQcm94eTo6Z3JhbnRBY2Nlc3MpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYXN0ZWJv
YXJkUHJveHk6OmRpZE1vZGlmeUNvbnRlbnRzT2ZQYXN0ZWJvYXJkKToKKyAgICAgICAgKFdlYktp
dDo6V2ViUGFzdGVib2FyZFByb3h5OjpQYXN0ZWJvYXJkQWNjZXNzSW5mb3JtYXRpb246OmdyYW50
QWNjZXNzKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQ29jb2EvV2ViUHJvY2Vzc1Bvb2xDb2NvYS5t
bToKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzc1Bvb2w6OnNldE1lZGlhQWNjZXNzaWJpbGl0
eVByZWZlcmVuY2VzKToKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzc1Bvb2w6OnJlZ2lzdGVy
Tm90aWZpY2F0aW9uT2JzZXJ2ZXJzKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQ29jb2EvV2ViVmll
d0ltcGwubW06CisgICAgICAgICgtW1dLRE9NUGFzdGVNZW51RGVsZWdhdGUgaW5pdFdpdGhXZWJW
aWV3SW1wbDpdKToKKyAgICAgICAgKiBVSVByb2Nlc3MvRG93bmxvYWRzL0Rvd25sb2FkUHJveHku
Y3BwOgorICAgICAgICAoV2ViS2l0OjpEb3dubG9hZFByb3h5OjpEb3dubG9hZFByb3h5KToKKyAg
ICAgICAgKiBVSVByb2Nlc3MvR1BVL0dQVVByb2Nlc3NQcm94eS5jcHA6CisgICAgICAgIChXZWJL
aXQ6OkdQVVByb2Nlc3NQcm94eTo6Z2V0T3JDcmVhdGUpOgorICAgICAgICAqIFVJUHJvY2Vzcy9J
bnNwZWN0b3IvSW5zcGVjdG9yVGFyZ2V0UHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpJbnNw
ZWN0b3JUYXJnZXRQcm94eTo6Y3JlYXRlKToKKyAgICAgICAgKiBVSVByb2Nlc3MvSW5zcGVjdG9y
L1dlYkluc3BlY3RvclVJRXh0ZW5zaW9uQ29udHJvbGxlclByb3h5LmNwcDoKKyAgICAgICAgKFdl
YktpdDo6V2ViSW5zcGVjdG9yVUlFeHRlbnNpb25Db250cm9sbGVyUHJveHk6OldlYkluc3BlY3Rv
clVJRXh0ZW5zaW9uQ29udHJvbGxlclByb3h5KToKKyAgICAgICAgKiBVSVByb2Nlc3MvTGF1bmNo
ZXIvbWFjL1Byb2Nlc3NMYXVuY2hlck1hYy5tbToKKyAgICAgICAgKFdlYktpdDo6UHJvY2Vzc0xh
dW5jaGVyOjpsYXVuY2hQcm9jZXNzKToKKyAgICAgICAgKiBVSVByb2Nlc3MvTWVkaWEvUmVtb3Rl
TWVkaWFTZXNzaW9uQ29vcmRpbmF0b3JQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OlJlbW90
ZU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yUHJveHk6OlJlbW90ZU1lZGlhU2Vzc2lvbkNvb3JkaW5h
dG9yUHJveHkpOgorICAgICAgICAqIFVJUHJvY2Vzcy9NZWRpYUtleVN5c3RlbVBlcm1pc3Npb25S
ZXF1ZXN0UHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpNZWRpYUtleVN5c3RlbVBlcm1pc3Np
b25SZXF1ZXN0UHJveHk6Ok1lZGlhS2V5U3lzdGVtUGVybWlzc2lvblJlcXVlc3RQcm94eSk6Cisg
ICAgICAgICogVUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5jcHA6CisgICAg
ICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzUHJveHk6OmRpZFJlY2VpdmVBdXRoZW50aWNhdGlv
bkNoYWxsZW5nZSk6CisgICAgICAgICogVUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQ
cm94eUNvY29hLm1tOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUHJvY2Vzc1Byb3h5OjpYUENF
dmVudEhhbmRsZXI6OlhQQ0V2ZW50SGFuZGxlcik6CisgICAgICAgICogVUlQcm9jZXNzL1BERi9X
S1BERkhVRFZpZXcubW06CisgICAgICAgICgtW1dLUERGSFVEVmlldyBpbml0V2l0aEZyYW1lOnBs
dWdpbklkZW50aWZpZXI6cGFnZTpdKToKKyAgICAgICAgKiBVSVByb2Nlc3MvU3BlZWNoUmVjb2du
aXRpb25QZXJtaXNzaW9uUmVxdWVzdC5oOgorICAgICAgICAoV2ViS2l0OjpTcGVlY2hSZWNvZ25p
dGlvblBlcm1pc3Npb25SZXF1ZXN0OjpTcGVlY2hSZWNvZ25pdGlvblBlcm1pc3Npb25SZXF1ZXN0
KToKKyAgICAgICAgKiBVSVByb2Nlc3MvU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1l
ZGlhU291cmNlLmNwcDoKKyAgICAgICAgKiBVSVByb2Nlc3MvU3BlZWNoUmVjb2duaXRpb25SZW1v
dGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlci5jcHA6CisgICAgICAgIChXZWJLaXQ6OlNwZWVj
aFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXI6OmFkZFNvdXJjZSk6
CisgICAgICAgICogVUlQcm9jZXNzL1ZpZXdHZXN0dXJlQ29udHJvbGxlci5jcHA6CisgICAgICAg
IChXZWJLaXQ6OlZpZXdHZXN0dXJlQ29udHJvbGxlcjo6c2V0QWx0ZXJuYXRlQmFja0ZvcndhcmRM
aXN0U291cmNlUGFnZSk6CisgICAgICAgICogVUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL0F1
dGhlbnRpY2F0b3IuaDoKKyAgICAgICAgKFdlYktpdDo6QXV0aGVudGljYXRvcjo6c2V0T2JzZXJ2
ZXIpOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9BdXRoZW50aWNhdG9y
TWFuYWdlci5jcHA6CisgICAgICAgIChXZWJLaXQ6OkF1dGhlbnRpY2F0b3JNYW5hZ2VyOjpydW5Q
YW5lbCk6CisgICAgICAgIChXZWJLaXQ6OkF1dGhlbnRpY2F0b3JNYW5hZ2VyOjpkaXNwYXRjaFBh
bmVsQ2xpZW50Q2FsbCBjb25zdCk6CisgICAgICAgICogVUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0
aW9uL0F1dGhlbnRpY2F0b3JUcmFuc3BvcnRTZXJ2aWNlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6
QXV0aGVudGljYXRvclRyYW5zcG9ydFNlcnZpY2U6OkF1dGhlbnRpY2F0b3JUcmFuc3BvcnRTZXJ2
aWNlKToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViQXV0aGVudGljYXRpb24vQ29jb2EvQXV0aGVu
dGljYXRvclByZXNlbnRlckNvb3JkaW5hdG9yLm1tOgorICAgICAgICAoV2ViS2l0OjpBdXRoZW50
aWNhdG9yUHJlc2VudGVyQ29vcmRpbmF0b3I6OkF1dGhlbnRpY2F0b3JQcmVzZW50ZXJDb29yZGlu
YXRvcik6CisgICAgICAgICogVUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL0NvY29hL05mY0Nv
bm5lY3Rpb24ubW06CisgICAgICAgIChXZWJLaXQ6Ok5mY0Nvbm5lY3Rpb246Ok5mY0Nvbm5lY3Rp
b24pOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9Db2NvYS9XS0FTQ0F1
dGhvcml6YXRpb25QcmVzZW50ZXJEZWxlZ2F0ZS5tbToKKyAgICAgICAgKC1bV0tBU0NBdXRob3Jp
emF0aW9uUHJlc2VudGVyRGVsZWdhdGUgaW5pdFdpdGhDb29yZGluYXRvcjpdKToKKyAgICAgICAg
KiBVSVByb2Nlc3MvV2ViQXV0aGVudGljYXRpb24vQ29jb2EvV0tORlJlYWRlclNlc3Npb25EZWxl
Z2F0ZS5tbToKKyAgICAgICAgKC1bV0tORlJlYWRlclNlc3Npb25EZWxlZ2F0ZSBpbml0V2l0aENv
bm5lY3Rpb246XSk6CisgICAgICAgICogVUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL0NvY29h
L1dlYkF1dGhlbnRpY2F0b3JDb29yZGluYXRvclByb3h5Lm1tOgorICAgICAgICAoV2ViS2l0OjpX
ZWJBdXRoZW50aWNhdG9yQ29vcmRpbmF0b3JQcm94eTo6cGVyZm9ybVJlcXVlc3QpOgorICAgICAg
ICAqIFVJUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9XZWJBdXRoZW50aWNhdG9yQ29vcmRpbmF0
b3JQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYkF1dGhlbnRpY2F0b3JDb29yZGluYXRv
clByb3h5OjptYWtlQ3JlZGVudGlhbCk6CisgICAgICAgIChXZWJLaXQ6OldlYkF1dGhlbnRpY2F0
b3JDb29yZGluYXRvclByb3h5OjpnZXRBc3NlcnRpb24pOgorICAgICAgICAqIFVJUHJvY2Vzcy9X
ZWJBdXRoZW50aWNhdGlvbi9maWRvL0ZpZG9TZXJ2aWNlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6
Rmlkb1NlcnZpY2U6OmdldEluZm8pOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJDb250ZXh0TWVu
dUxpc3RlbmVyUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJDb250ZXh0TWVudUxpc3Rl
bmVyUHJveHk6OldlYkNvbnRleHRNZW51TGlzdGVuZXJQcm94eSk6CisgICAgICAgICogVUlQcm9j
ZXNzL1dlYkNvbnRleHRNZW51UHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJDb250ZXh0
TWVudVByb3h5OjpXZWJDb250ZXh0TWVudVByb3h5KToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2Vi
Q29va2llTWFuYWdlclByb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViQ29va2llTWFuYWdl
clByb3h5OjpXZWJDb29raWVNYW5hZ2VyUHJveHkpOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJE
YXRhTGlzdFN1Z2dlc3Rpb25zRHJvcGRvd24uY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJEYXRh
TGlzdFN1Z2dlc3Rpb25zRHJvcGRvd246OldlYkRhdGFMaXN0U3VnZ2VzdGlvbnNEcm9wZG93bik6
CisgICAgICAgICogVUlQcm9jZXNzL1dlYkRhdGVUaW1lUGlja2VyLmNwcDoKKyAgICAgICAgKFdl
YktpdDo6V2ViRGF0ZVRpbWVQaWNrZXI6OldlYkRhdGVUaW1lUGlja2VyKToKKyAgICAgICAgKiBV
SVByb2Nlc3MvV2ViRWRpdENvbW1hbmRQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYkVk
aXRDb21tYW5kUHJveHk6OldlYkVkaXRDb21tYW5kUHJveHkpOgorICAgICAgICAqIFVJUHJvY2Vz
cy9XZWJGcmFtZVByb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViRnJhbWVQcm94eTo6V2Vi
RnJhbWVQcm94eSk6CisgICAgICAgICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHA6CisgICAg
ICAgIChXZWJLaXQ6OlBhZ2VDbGllbnRQcm90ZWN0b3I6OlBhZ2VDbGllbnRQcm90ZWN0b3IpOgor
ICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OldlYlBhZ2VQcm94eSk6CisgICAgICAgIChX
ZWJLaXQ6OldlYlBhZ2VQcm94eTo6c3VzcGVuZEN1cnJlbnRQYWdlSWZQb3NzaWJsZSk6CisgICAg
ICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6YWRkT2JzZXJ2ZXIpOgorICAgICAgICAqIFVJUHJv
Y2Vzcy9XZWJQcm9jZXNzUG9vbC5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3NQb29s
OjpnZXRHUFVQcm9jZXNzQ29ubmVjdGlvbik6CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3NQ
b29sOjpnZXRXZWJBdXRoblByb2Nlc3NDb25uZWN0aW9uKToKKyAgICAgICAgKFdlYktpdDo6V2Vi
UHJvY2Vzc1Bvb2w6OmluaXRpYWxpemVOZXdXZWJQcm9jZXNzKToKKyAgICAgICAgKFdlYktpdDo6
V2ViUHJvY2Vzc1Bvb2w6OmNyZWF0ZVdlYlBhZ2UpOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQ
cm9jZXNzUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzUHJveHk6OnByb2Nl
c3NEaWRUZXJtaW5hdGVPckZhaWxlZFRvTGF1bmNoKToKKyAgICAgICAgKFdlYktpdDo6V2ViUHJv
Y2Vzc1Byb3h5OjpjcmVhdGVTcGVlY2hSZWNvZ25pdGlvblNlcnZlcik6CisgICAgICAgICogVUlQ
cm9jZXNzL1dlYlByb2Nlc3NQcm94eS5oOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzUHJv
eHk6OldlYWtPclN0cm9uZ1B0cjo6V2Vha09yU3Ryb25nUHRyKToKKyAgICAgICAgKiBVSVByb2Nl
c3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9yZS5jcHA6CisgICAgICAgIChXZWJLaXQ6Oldl
YnNpdGVEYXRhU3RvcmU6OmdldE5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbik6CisgICAgICAgICog
VUlQcm9jZXNzL2d0ay9XYXlsYW5kQ29tcG9zaXRvci5jcHA6CisgICAgICAgIChXZWJLaXQ6Oldh
eWxhbmRDb21wb3NpdG9yOjpTdXJmYWNlOjphdHRhY2hCdWZmZXIpOgorICAgICAgICAoV2ViS2l0
OjpXYXlsYW5kQ29tcG9zaXRvcjo6YmluZFN1cmZhY2VUb1dlYlBhZ2UpOgorICAgICAgICAqIFVJ
UHJvY2Vzcy9pb3MvUHJvY2Vzc0Fzc2VydGlvbklPUy5tbToKKyAgICAgICAgKC1bV0tQcm9jZXNz
QXNzZXJ0aW9uQmFja2dyb3VuZFRhc2tNYW5hZ2VyIF9ub3RpZnlBc3NlcnRpb25zT2ZJbW1pbmVu
dFN1c3BlbnNpb25dKToKKyAgICAgICAgKiBVSVByb2Nlc3MvaW9zL1dlYkRhdGFMaXN0U3VnZ2Vz
dGlvbnNEcm9wZG93bklPUy5tbToKKyAgICAgICAgKC1bV0tEYXRhTGlzdFN1Z2dlc3Rpb25zQ29u
dHJvbCBzaG93U3VnZ2VzdGlvbnNEcm9wZG93bjphY3RpdmF0aW9uVHlwZTpdKToKKyAgICAgICAg
KiBVSVByb2Nlc3MvbWFjL1BhZ2VDbGllbnRJbXBsTWFjLm1tOgorICAgICAgICAoV2ViS2l0OjpQ
YWdlQ2xpZW50SW1wbDo6c2V0SW1wbCk6CisgICAgICAgICogVUlQcm9jZXNzL21hYy9XS1JldmVh
bEl0ZW1QcmVzZW50ZXIubW06CisgICAgICAgICgtW1dLUmV2ZWFsSXRlbVByZXNlbnRlciBpbml0
V2l0aFdlYlZpZXdJbXBsOml0ZW06ZnJhbWU6bWVudUxvY2F0aW9uOl0pOgorICAgICAgICAqIFVJ
UHJvY2Vzcy9tYWMvV2ViQ29udGV4dE1lbnVQcm94eU1hYy5tbToKKyAgICAgICAgKFdlYktpdDo6
V2ViQ29udGV4dE1lbnVQcm94eU1hYzo6Z2V0Q29udGV4dE1lbnVGcm9tSXRlbXMpOgorICAgICAg
ICAoV2ViS2l0OjpXZWJDb250ZXh0TWVudVByb3h5TWFjOjppbnNlcnRPclVwZGF0ZVF1aWNrTG9v
a0ltYWdlSXRlbSk6CisgICAgICAgICogVUlQcm9jZXNzL21hYy9XZWJEYXRhTGlzdFN1Z2dlc3Rp
b25zRHJvcGRvd25NYWMubW06CisgICAgICAgICgtW1dLRGF0YUxpc3RTdWdnZXN0aW9uc0NvbnRy
b2xsZXIgc2hvd1N1Z2dlc3Rpb25zRHJvcGRvd246XSk6CisgICAgICAgICogVUlQcm9jZXNzL21h
Yy9XZWJEYXRlVGltZVBpY2tlck1hYy5tbToKKyAgICAgICAgKC1bV0tEYXRlVGltZVBpY2tlciBz
aG93UGlja2VyOl0pOgorICAgICAgICAqIFdlYlByb2Nlc3MvQXV0b21hdGlvbi9XZWJBdXRvbWF0
aW9uRE9NV2luZG93T2JzZXJ2ZXIuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJBdXRvbWF0aW9u
RE9NV2luZG93T2JzZXJ2ZXI6OldlYkF1dG9tYXRpb25ET01XaW5kb3dPYnNlcnZlcik6CisgICAg
ICAgICogV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlclBy
b3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6bV9yZW5kZXJpbmdCYWNrZW5kKToKKyAgICAgICAg
KiBXZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVJbWFnZUJ1ZmZlclByb3h5Lmg6CisgICAg
ICAgIChXZWJLaXQ6OlJlbW90ZUltYWdlQnVmZmVyUHJveHk6OlJlbW90ZUltYWdlQnVmZmVyUHJv
eHkpOgorICAgICAgICAqIFdlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90ZVJlbmRlcmluZ0Jh
Y2tlbmRQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVJlbmRlcmluZ0JhY2tlbmRQ
cm94eTo6ZW5zdXJlR1BVUHJvY2Vzc0Nvbm5lY3Rpb24pOgorICAgICAgICAqIFdlYlByb2Nlc3Mv
R1BVL2dyYXBoaWNzL1JlbW90ZVJlc291cmNlQ2FjaGVQcm94eS5jcHA6CisgICAgICAgIChXZWJL
aXQ6OlJlbW90ZVJlc291cmNlQ2FjaGVQcm94eTo6Y2FjaGVJbWFnZUJ1ZmZlcik6CisgICAgICAg
IChXZWJLaXQ6OlJlbW90ZVJlc291cmNlQ2FjaGVQcm94eTo6cmVjb3JkTmF0aXZlSW1hZ2VVc2Up
OgorICAgICAgICAqIFdlYlByb2Nlc3MvR1BVL21lZGlhL0F1ZGlvVHJhY2tQcml2YXRlUmVtb3Rl
LmNwcDoKKyAgICAgICAgKFdlYktpdDo6QXVkaW9UcmFja1ByaXZhdGVSZW1vdGU6OkF1ZGlvVHJh
Y2tQcml2YXRlUmVtb3RlKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL0dQVS9tZWRpYS9NZWRpYVBs
YXllclByaXZhdGVSZW1vdGUuY3BwOgorICAgICAgICAoV2ViS2l0OjpNZWRpYVBsYXllclByaXZh
dGVSZW1vdGU6Ok1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZSk6CisgICAgICAgICogV2ViUHJvY2Vz
cy9HUFUvbWVkaWEvTWVkaWFTb3VyY2VQcml2YXRlUmVtb3RlLmNwcDoKKyAgICAgICAgKFdlYktp
dDo6TWVkaWFTb3VyY2VQcml2YXRlUmVtb3RlOjpNZWRpYVNvdXJjZVByaXZhdGVSZW1vdGUpOgor
ICAgICAgICAqIFdlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZUF1ZGlvRGVzdGluYXRpb25Qcm94
eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUF1ZGlvRGVzdGluYXRpb25Qcm94eTo6Y29u
bmVjdGlvbik6CisgICAgICAgICogV2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlQXVkaW9IYXJk
d2FyZUxpc3RlbmVyLmNwcDoKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlQXVkaW9IYXJkd2FyZUxp
c3RlbmVyOjpSZW1vdGVBdWRpb0hhcmR3YXJlTGlzdGVuZXIpOgorICAgICAgICAqIFdlYlByb2Nl
c3MvR1BVL21lZGlhL1JlbW90ZUF1ZGlvU2Vzc2lvbi5jcHA6CisgICAgICAgIChXZWJLaXQ6OlJl
bW90ZUF1ZGlvU2Vzc2lvbjo6ZW5zdXJlQ29ubmVjdGlvbik6CisgICAgICAgICogV2ViUHJvY2Vz
cy9HUFUvbWVkaWEvUmVtb3RlQXVkaW9Tb3VyY2VQcm92aWRlci5jcHA6CisgICAgICAgIChXZWJL
aXQ6OlJlbW90ZUF1ZGlvU291cmNlUHJvdmlkZXI6OlJlbW90ZUF1ZGlvU291cmNlUHJvdmlkZXIp
OgorICAgICAgICAqIFdlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZUNETS5jcHA6CisgICAgICAg
IChXZWJLaXQ6OlJlbW90ZUNETTo6Y3JlYXRlSW5zdGFuY2UpOgorICAgICAgICAqIFdlYlByb2Nl
c3MvR1BVL21lZGlhL1JlbW90ZUNETUZhY3RvcnkuY3BwOgorICAgICAgICAoV2ViS2l0OjpSZW1v
dGVDRE1GYWN0b3J5OjpjcmVhdGVDRE0pOgorICAgICAgICAqIFdlYlByb2Nlc3MvR1BVL21lZGlh
L1JlbW90ZUNETUluc3RhbmNlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlQ0RNSW5zdGFu
Y2U6OmNyZWF0ZVNlc3Npb24pOgorICAgICAgICAqIFdlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90
ZUltYWdlRGVjb2RlckFWRi5jcHA6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUltYWdlRGVjb2Rl
ckFWRjo6UmVtb3RlSW1hZ2VEZWNvZGVyQVZGKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL0dQVS9t
ZWRpYS9SZW1vdGVJbWFnZURlY29kZXJBVkZNYW5hZ2VyLmNwcDoKKyAgICAgICAgKFdlYktpdDo6
UmVtb3RlSW1hZ2VEZWNvZGVyQVZGTWFuYWdlcjo6Y3JlYXRlSW1hZ2VEZWNvZGVyKToKKyAgICAg
ICAgKFdlYktpdDo6UmVtb3RlSW1hZ2VEZWNvZGVyQVZGTWFuYWdlcjo6ZW5zdXJlR1BVUHJvY2Vz
c0Nvbm5lY3Rpb24pOgorICAgICAgICAqIFdlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZUxlZ2Fj
eUNETUZhY3RvcnkuY3BwOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVMZWdhY3lDRE1GYWN0b3J5
OjpjcmVhdGVDRE0pOgorICAgICAgICAqIFdlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZU1lZGlh
UGxheWVyTWFuYWdlci5jcHA6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZU1lZGlhUGxheWVyTWFu
YWdlcjo6Y3JlYXRlUmVtb3RlTWVkaWFQbGF5ZXIpOgorICAgICAgICAqIFdlYlByb2Nlc3MvR1BV
L21lZGlhL1JlbW90ZVJlbW90ZUNvbW1hbmRMaXN0ZW5lci5jcHA6CisgICAgICAgIChXZWJLaXQ6
OlJlbW90ZVJlbW90ZUNvbW1hbmRMaXN0ZW5lcjo6ZW5zdXJlR1BVUHJvY2Vzc0Nvbm5lY3Rpb24p
OgorICAgICAgICAqIFdlYlByb2Nlc3MvR1BVL21lZGlhL1NvdXJjZUJ1ZmZlclByaXZhdGVSZW1v
dGUuY3BwOgorICAgICAgICAoV2ViS2l0OjpTb3VyY2VCdWZmZXJQcml2YXRlUmVtb3RlOjpTb3Vy
Y2VCdWZmZXJQcml2YXRlUmVtb3RlKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL0dQVS9tZWRpYS9U
ZXh0VHJhY2tQcml2YXRlUmVtb3RlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6VGV4dFRyYWNrUHJp
dmF0ZVJlbW90ZTo6VGV4dFRyYWNrUHJpdmF0ZVJlbW90ZSk6CisgICAgICAgICogV2ViUHJvY2Vz
cy9HUFUvbWVkaWEvVmlkZW9UcmFja1ByaXZhdGVSZW1vdGUuY3BwOgorICAgICAgICAoV2ViS2l0
OjpWaWRlb1RyYWNrUHJpdmF0ZVJlbW90ZTo6VmlkZW9UcmFja1ByaXZhdGVSZW1vdGUpOgorICAg
ICAgICAqIFdlYlByb2Nlc3MvR1BVL21lZGlhL2NvY29hL1ZpZGVvTGF5ZXJSZW1vdGVDb2NvYS5t
bToKKyAgICAgICAgKC1bV0tWaWRlb0xheWVyUmVtb3RlIHNldE1lZGlhUGxheWVyUHJpdmF0ZVJl
bW90ZTpdKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL0dQVS9tZWRpYS9pb3MvUmVtb3RlTWVkaWFT
ZXNzaW9uSGVscGVyLmNwcDoKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlTWVkaWFTZXNzaW9uSGVs
cGVyOjplbnN1cmVDb25uZWN0aW9uKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL0dQVS93ZWJydGMv
QXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJJbnRlcm5hbFVuaXRNYW5hZ2VyLmNwcDoKKyAg
ICAgICAgKFdlYktpdDo6QXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJJbnRlcm5hbFVuaXRN
YW5hZ2VyOjphZGQpOgorICAgICAgICAqIFdlYlByb2Nlc3MvR1BVL3dlYnJ0Yy9TYW1wbGVCdWZm
ZXJEaXNwbGF5TGF5ZXIuY3BwOgorICAgICAgICAoV2ViS2l0OjpTYW1wbGVCdWZmZXJEaXNwbGF5
TGF5ZXI6OlNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllcik6CisgICAgICAgICogV2ViUHJvY2Vzcy9H
UFUvd2VicnRjL1NhbXBsZUJ1ZmZlckRpc3BsYXlMYXllck1hbmFnZXIuY3BwOgorICAgICAgICAo
V2ViS2l0OjpTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXJNYW5hZ2VyOjpjcmVhdGVMYXllcik6Cisg
ICAgICAgIChXZWJLaXQ6OlNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllck1hbmFnZXI6OmFkZExheWVy
KToKKyAgICAgICAgKiBXZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9nbGliL0RPTS9ET01P
YmplY3RDYWNoZS5jcHA6CisgICAgICAgICogV2ViUHJvY2Vzcy9JbnNwZWN0b3IvV2ViSW5zcGVj
dG9yVUlFeHRlbnNpb25Db250cm9sbGVyLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViSW5zcGVj
dG9yVUlFeHRlbnNpb25Db250cm9sbGVyOjpXZWJJbnNwZWN0b3JVSUV4dGVuc2lvbkNvbnRyb2xs
ZXIpOgorICAgICAgICAqIFdlYlByb2Nlc3MvTmV0d29yay9XZWJTb2NrZXRDaGFubmVsLmNwcDoK
KyAgICAgICAgKFdlYktpdDo6V2ViU29ja2V0Q2hhbm5lbDo6V2ViU29ja2V0Q2hhbm5lbCk6Cisg
ICAgICAgICogV2ViUHJvY2Vzcy9OZXR3b3JrL1dlYlNvY2tldENoYW5uZWxNYW5hZ2VyLmNwcDoK
KyAgICAgICAgKFdlYktpdDo6V2ViU29ja2V0Q2hhbm5lbE1hbmFnZXI6OmFkZENoYW5uZWwpOgor
ICAgICAgICAqIFdlYlByb2Nlc3MvTmV0d29yay93ZWJydGMvUlRDRGF0YUNoYW5uZWxSZW1vdGVN
YW5hZ2VyLmNwcDoKKyAgICAgICAgKFdlYktpdDo6UlRDRGF0YUNoYW5uZWxSZW1vdGVNYW5hZ2Vy
OjpSZW1vdGVIYW5kbGVyQ29ubmVjdGlvbjo6Y29ubmVjdFRvU291cmNlKToKKyAgICAgICAgKiBX
ZWJQcm9jZXNzL1BsdWdpbnMvUERGL1BERlBsdWdpbi5oOgorICAgICAgICAqIFdlYlByb2Nlc3Mv
UGx1Z2lucy9QREYvUERGUGx1Z2luLm1tOgorICAgICAgICAoLVtXS1BERlBsdWdpbkFjY2Vzc2li
aWxpdHlPYmplY3QgaW5pdFdpdGhQREZQbHVnaW46YW5kRWxlbWVudDpdKToKKyAgICAgICAgKFdl
YktpdDo6UERGUGx1Z2luOjpQREZQbHVnaW4pOgorICAgICAgICAqIFdlYlByb2Nlc3MvUGx1Z2lu
cy9QbHVnaW4uY3BwOgorICAgICAgICAoV2ViS2l0OjpQbHVnaW46OmluaXRpYWxpemUpOgorICAg
ICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRGV2aWNlT3JpZW50YXRpb25VcGRh
dGVQcm92aWRlci5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYkRldmljZU9yaWVudGF0aW9uVXBk
YXRlUHJvdmlkZXI6OldlYkRldmljZU9yaWVudGF0aW9uVXBkYXRlUHJvdmlkZXIpOgorICAgICAg
ICAoV2ViS2l0OjpXZWJEZXZpY2VPcmllbnRhdGlvblVwZGF0ZVByb3ZpZGVyOjpkZXZpY2VPcmll
bnRhdGlvbkNoYW5nZWQpOgorICAgICAgICAoV2ViS2l0OjpXZWJEZXZpY2VPcmllbnRhdGlvblVw
ZGF0ZVByb3ZpZGVyOjpkZXZpY2VNb3Rpb25DaGFuZ2VkKToKKyAgICAgICAgKiBXZWJQcm9jZXNz
L1dlYkNvcmVTdXBwb3J0L1dlYlBlcm1pc3Npb25Db250cm9sbGVyLmNwcDoKKyAgICAgICAgKFdl
YktpdDo6V2ViUGVybWlzc2lvbkNvbnRyb2xsZXI6OldlYlBlcm1pc3Npb25Db250cm9sbGVyKToK
KyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlNwZWVjaFJlY29nbml0aW9u
Q29ubmVjdGlvbi5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlNwZWVjaFJlY29nbml0aW9uQ29u
bmVjdGlvbjo6cmVnaXN0ZXJDbGllbnQpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9D
b2NvYS9XZWJQYWdlQ29jb2EubW06CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OnNldFJlbW90
ZU9iamVjdFJlZ2lzdHJ5KToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvRmluZENvbnRy
b2xsZXIuY3BwOgorICAgICAgICAoV2ViS2l0OjpGaW5kQ29udHJvbGxlcjo6ZHJhd1JlY3QpOgor
ICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9JUENUZXN0aW5nQVBJLmNwcDoKKyAgICAgICAg
KFdlYktpdDo6SVBDVGVzdGluZ0FQSTo6SlNJUEM6OkpTSVBDKToKKyAgICAgICAgKFdlYktpdDo6
SVBDVGVzdGluZ0FQSTo6SlNNZXNzYWdlTGlzdGVuZXI6OkpTTWVzc2FnZUxpc3RlbmVyKToKKyAg
ICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZUxheWVyVHJl
ZURpc3BsYXlSZWZyZXNoTW9uaXRvci5tbToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlTGF5ZXJU
cmVlRGlzcGxheVJlZnJlc2hNb25pdG9yOjpSZW1vdGVMYXllclRyZWVEaXNwbGF5UmVmcmVzaE1v
bml0b3IpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVMYXllclRyZWVEaXNwbGF5UmVmcmVzaE1v
bml0b3I6OnVwZGF0ZURyYXdpbmdBcmVhKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2Uv
V2ViQ29udGV4dE1lbnUuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJDb250ZXh0TWVudTo6V2Vi
Q29udGV4dE1lbnUpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJGcmFtZS5jcHA6
CisgICAgICAgIChXZWJLaXQ6OldlYkZyYW1lOjppbml0V2l0aENvcmVNYWluRnJhbWUpOgorICAg
ICAgICAoV2ViS2l0OjpXZWJGcmFtZTo6Y3JlYXRlU3ViZnJhbWUpOgorICAgICAgICAqIFdlYlBy
b2Nlc3MvV2ViUGFnZS9XZWJGcmFtZS5oOgorICAgICAgICAoV2ViS2l0OjpXZWJGcmFtZTo6c2V0
TG9hZExpc3RlbmVyKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHA6
CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OnNldEFjdGl2ZURhdGFMaXN0U3VnZ2VzdGlvblBp
Y2tlcik6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OnNldEFjdGl2ZURhdGVUaW1lQ2hvb3Nl
cik6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OnN0YXJ0VGV4dE1hbmlwdWxhdGlvbnMpOgor
ICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjpyZXF1ZXN0VGV4dFJlY29nbml0aW9uKToKKyAgICAg
ICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvaW9zL1dlYlBhZ2VJT1MubW06CisgICAgICAgIChXZWJL
aXQ6OldlYlBhZ2U6OmRpZEZpbmlzaENvbnRlbnRDaGFuZ2VPYnNlcnZpbmcpOgorICAgICAgICAo
V2ViS2l0OjpXZWJQYWdlOjpzZWxlY3RUZXh0V2l0aEdyYW51bGFyaXR5QXRQb2ludCk6CisgICAg
ICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9XZWJQYWdlTWFjLm1tOgorICAgICAgICAoV2Vi
S2l0OjpXZWJQYWdlOjpjcmVhdGVQREZIVUQpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViU3Rv
cmFnZS9TdG9yYWdlQXJlYUltcGwuY3BwOgorICAgICAgICAoV2ViS2l0OjpTdG9yYWdlQXJlYUlt
cGw6OlN0b3JhZ2VBcmVhSW1wbCk6CisgICAgICAgICogV2ViUHJvY2Vzcy9jb2NvYS9BdWRpb1Nl
c3Npb25Sb3V0aW5nQXJiaXRyYXRvci5jcHA6CisgICAgICAgIChXZWJLaXQ6OkF1ZGlvU2Vzc2lv
blJvdXRpbmdBcmJpdHJhdG9yOjpBdWRpb1Nlc3Npb25Sb3V0aW5nQXJiaXRyYXRvcik6CisgICAg
ICAgICogV2ViUHJvY2Vzcy9jb2NvYS9WaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyLm1tOgorICAgICAg
ICAoV2ViS2l0OjpWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyOjplbnRlclZpZGVvRnVsbHNjcmVlbkZv
clZpZGVvRWxlbWVudCk6CisKIDIwMjEtMTAtMTIgIEplciBOb2JsZSAgPGplci5ub2JsZUBhcHBs
ZS5jb20+CiAKICAgICAgICAgW0J1aWxkLXRpbWUgcGVyZl0gRm9yd2FyZC1kZWNsYXJlIG1vcmUg
dGhpbmdzIGluIERvY3VtZW50LmgKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvQ2hh
bmdlTG9nIGIvU291cmNlL1dlYktpdExlZ2FjeS9DaGFuZ2VMb2cKaW5kZXggY2ZhMTljNzA3MDhj
YTJhNTZlYjA0MTI0NTczNzhhMDA4NTMzZDdjMy4uOGRmNGZlMjEwZjY2ZTdhM2IzYThkODA1MTFk
YmJiM2RmNWM0ZDU3OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9DaGFuZ2VMb2cK
KysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNiBAQAorMjAy
MS0xMC0xMyAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgorCisgICAgICAgIERyb3Ag
bWFrZVdlYWtQdHIoKSBhbmQgdXNlIFdlYWtQdHIgeyB9IGRpcmVjdGx5CisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzE2NzkKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFN0b3JhZ2UvSW5Qcm9jZXNzSURC
U2VydmVyLmNwcDoKKyAgICAgICAgKHN0b3JhZ2VRdW90YU1hbmFnZXJTcGFjZVJlcXVlc3Rlcik6
CisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvUGFnZVN0b3JhZ2VTZXNzaW9uUHJvdmlkZXIuaDoK
KyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9XZWJCcm9hZGNhc3RDaGFubmVsUmVnaXN0cnkuY3Bw
OgorICAgICAgICAoV2ViQnJvYWRjYXN0Q2hhbm5lbFJlZ2lzdHJ5OjpnZXRPckNyZWF0ZSk6CisK
IDIwMjEtMTAtMDEgIElhbiBBbmRlcnNvbiAgPGlhbmFAYXBwbGUuY29tPgogCiAgICAgICAgIFdl
YktpdExlZ2FjeSdzIG1vZHVsZSBtYXAgZmlsZXMgZG9uJ3QgZ2V0IGluc3RhbGxlZApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdExl
Z2FjeS9tYWMvQ2hhbmdlTG9nCmluZGV4IDVjMmNhOTU0OGFkNDI5YjlhNmY3MGFmY2Y4OTA0MWM2
ZmY4YzViYTcuLjVkNmQ5MjRkY2Y0YjUyYWYyMDUzNGJhZGQ2ODVhMTBjZjFlYjY1YTIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2Vi
S2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMyBAQAorMjAyMS0xMC0xMyAgQ2hy
aXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgorCisgICAgICAgIERyb3AgbWFrZVdlYWtQdHIo
KSBhbmQgdXNlIFdlYWtQdHIgeyB9IGRpcmVjdGx5CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzE2NzkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L1dlYkVkaXRvckNsaWVudC5t
bToKKyAgICAgICAgKFdlYkVkaXRvckNsaWVudDo6cmVxdWVzdENhbmRpZGF0ZXNGb3JTZWxlY3Rp
b24pOgorCiAyMDIxLTEwLTEyICBKZXIgTm9ibGUgIDxqZXIubm9ibGVAYXBwbGUuY29tPgogCiAg
ICAgICAgIFtCdWlsZC10aW1lIHBlcmZdIEZvcndhcmQtZGVjbGFyZSBtb3JlIHRoaW5ncyBpbiBE
b2N1bWVudC5oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9XZWFrSGFzaE1hcC5oIGIvU291
cmNlL1dURi93dGYvV2Vha0hhc2hNYXAuaAppbmRleCA3MTRhNTBkNmJkY2Y3YmZiNDdjMzU5ZTQx
YWZjNjZmZWQwYzg4ZjY2Li4zNGE5OTA2ZTZhMGE1YWExNWNmNjM4M2E1NDAzM2YxYTQ3YTRmZTQ3
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9XZWFrSGFzaE1hcC5oCisrKyBiL1NvdXJjZS9X
VEYvd3RmL1dlYWtIYXNoTWFwLmgKQEAgLTM1MSw3ICszNTEsNyBAQCBwcml2YXRlOgogICAgIHRl
bXBsYXRlIDx0eXBlbmFtZSBUPgogICAgIHN0YXRpYyBSZWZUeXBlIG1ha2VLZXlJbXBsKGNvbnN0
IFQmIGtleSkKICAgICB7Ci0gICAgICAgIHJldHVybiAqbWFrZVdlYWtQdHI8S2V5VHlwZT4oY29u
c3RfY2FzdDxUJj4oa2V5KSkubV9pbXBsOworICAgICAgICByZXR1cm4gKldlYWtQdHI8S2V5VHlw
ZT4geyBjb25zdF9jYXN0PFQmPihrZXkpIH0ubV9pbXBsOwogICAgIH0KIAogICAgIHRlbXBsYXRl
IDx0eXBlbmFtZSBUPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvV2Vha0hhc2hTZXQuaCBi
L1NvdXJjZS9XVEYvd3RmL1dlYWtIYXNoU2V0LmgKaW5kZXggZWU3YjMyOWJmNzMzODU0YjEzZjNk
ODVkMzcxMzk5YjJhZDI1OTFhMy4uNzNjN2UxMGY5Zjc5M2I0OTgyZjQ3ODFkZGQ1YTcyMzMwOTY5
MTIxNCAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvV2Vha0hhc2hTZXQuaAorKysgYi9Tb3Vy
Y2UvV1RGL3d0Zi9XZWFrSGFzaFNldC5oCkBAIC05MSw3ICs5MSw3IEBAIHB1YmxpYzoKICAgICB0
ZW1wbGF0ZSA8dHlwZW5hbWUgVT4KICAgICBBZGRSZXN1bHQgYWRkKGNvbnN0IFUmIHZhbHVlKQog
ICAgIHsKLSAgICAgICAgcmV0dXJuIG1fc2V0LmFkZCgqbWFrZVdlYWtQdHI8VD4oY29uc3RfY2Fz
dDxVJj4odmFsdWUpKS5tX2ltcGwpOworICAgICAgICByZXR1cm4gbV9zZXQuYWRkKCpXZWFrUHRy
PFQ+IHsgY29uc3RfY2FzdDxVJj4odmFsdWUpIH0ubV9pbXBsKTsKICAgICB9CiAKICAgICB0ZW1w
bGF0ZSA8dHlwZW5hbWUgVT4KQEAgLTE2OSw3ICsxNjksNyBAQCBzdHJ1Y3QgTWFwcGVyPE1hcEZ1
bmN0aW9uLCBjb25zdCBXZWFrSGFzaFNldDxUPiAmLCB2b2lkPiB7CiB0ZW1wbGF0ZTx0eXBlbmFt
ZSBUPgogaW5saW5lIGF1dG8gY29weVRvVmVjdG9yKGNvbnN0IFdlYWtIYXNoU2V0PFQ+JiBjb2xs
ZWN0aW9uKSAtPiBWZWN0b3I8V2Vha1B0cjxUPj4KIHsKLSAgICByZXR1cm4gV1RGOjptYXAoY29s
bGVjdGlvbiwgW10gKGF1dG8mIHYpIC0+IFdlYWtQdHI8VD4geyByZXR1cm4gbWFrZVdlYWtQdHI8
VD4odik7IH0pOworICAgIHJldHVybiBXVEY6Om1hcChjb2xsZWN0aW9uLCBbXSAoYXV0byYgdikg
LT4gV2Vha1B0cjxUPiB7IHJldHVybiBXZWFrUHRyPFQ+IHsgdiB9OyB9KTsKIH0KIAogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9XZWFrUHRyLmggYi9Tb3VyY2UvV1RGL3d0Zi9XZWFrUHRy
LmgKaW5kZXggOGJhNzI4N2U5NjA0MTE4MDA3NmYwNTdlMGI3MzM3YjUxOGQzNmNmZS4uYTM5ZmY1
YTcxZDBlMzBjOTA3MjkxYWExNTI3NzAzYzY2ZWM0MGYwNCAxMDA2NDQKLS0tIGEvU291cmNlL1dU
Ri93dGYvV2Vha1B0ci5oCisrKyBiL1NvdXJjZS9XVEYvd3RmL1dlYWtQdHIuaApAQCAtMjQ5LDcg
KzI0OSw3IEBAIHByaXZhdGU6CiB9OwogCiAvLyBXZSB1c2UgbGF6eSBpbml0aWFsaXphdGlvbiBv
ZiB0aGUgV2Vha1B0ckZhY3RvcnkgYnkgZGVmYXVsdCB0byBhdm9pZCB1bm5lY2Vzc2FyeSBpbml0
aWFsaXphdGlvbi4gRWFnZXIKLS8vIGluaXRpYWxpemF0aW9uIGlzIGhvd2V2ZXIgdXNlZnVsIGlm
IHlvdSBwbGFuIHRvIGNhbGwgbWFrZVdlYWtQdHIoKSBmcm9tIG90aGVyIHRocmVhZHMuCisvLyBp
bml0aWFsaXphdGlvbiBpcyBob3dldmVyIHVzZWZ1bCBpZiB5b3UgcGxhbiB0byBjYWxsIGNvbnN0
cnVjdCBXZWFrUHRycyBmcm9tIG90aGVyIHRocmVhZHMuCiBlbnVtIGNsYXNzIFdlYWtQdHJGYWN0
b3J5SW5pdGlhbGl6YXRpb24geyBMYXp5LCBFYWdlciB9OwogCiB0ZW1wbGF0ZTx0eXBlbmFtZSBU
LCBXZWFrUHRyRmFjdG9yeUluaXRpYWxpemF0aW9uIGluaXRpYWxpemF0aW9uTW9kZSA9IFdlYWtQ
dHJGYWN0b3J5SW5pdGlhbGl6YXRpb246OkxhenksIHR5cGVuYW1lIENvdW50ZXIgPSBFbXB0eUNv
dW50ZXI+IGNsYXNzIENhbk1ha2VXZWFrUHRyIHsKQEAgLTMwMywzMiArMzAzLDYgQEAgdGVtcGxh
dGU8dHlwZW5hbWUgVCwgdHlwZW5hbWUgQ291bnRlcj4gdGVtcGxhdGU8dHlwZW5hbWUgVT4gaW5s
aW5lIFdlYWtQdHI8VCwgQ28KICAgICByZXR1cm4gKnRoaXM7CiB9CiAKLS8vIG1ha2VXZWFrUHRy
KCkgaXMgZGVwcmVjYXRlZC4gVXNlIFdlYWtQdHIgeyBvYmplY3QgfSBkaXJlY3RseSBpbnN0ZWFk
LgotdGVtcGxhdGU8dHlwZW5hbWUgVCwgdHlwZW5hbWUgPSBzdGQ6OmVuYWJsZV9pZl90PCFJc1Nt
YXJ0UHRyPFQ+Ojp2YWx1ZT4+IGlubGluZSBhdXRvIG1ha2VXZWFrUHRyKFQmIG9iamVjdCwgRW5h
YmxlV2Vha1B0clRocmVhZGluZ0Fzc2VydGlvbnMgZW5hYmxlV2Vha1B0clRocmVhZGluZ0Fzc2Vy
dGlvbnMgPSBFbmFibGVXZWFrUHRyVGhyZWFkaW5nQXNzZXJ0aW9uczo6WWVzKQotewotICAgIHJl
dHVybiBvYmplY3Qud2Vha1B0ckZhY3RvcnkoKS50ZW1wbGF0ZSBjcmVhdGVXZWFrUHRyPFQ+KG9i
amVjdCwgZW5hYmxlV2Vha1B0clRocmVhZGluZ0Fzc2VydGlvbnMpOwotfQotCi0vLyBtYWtlV2Vh
a1B0cigpIGlzIGRlcHJlY2F0ZWQuIFVzZSBXZWFrUHRyIHsgb2JqZWN0IH0gZGlyZWN0bHkgaW5z
dGVhZC4KLXRlbXBsYXRlPHR5cGVuYW1lIFQsIHR5cGVuYW1lID0gc3RkOjplbmFibGVfaWZfdDwh
SXNTbWFydFB0cjxUPjo6dmFsdWU+PiBpbmxpbmUgYXV0byBtYWtlV2Vha1B0cihUKiBwdHIsIEVu
YWJsZVdlYWtQdHJUaHJlYWRpbmdBc3NlcnRpb25zIGVuYWJsZVdlYWtQdHJUaHJlYWRpbmdBc3Nl
cnRpb25zID0gRW5hYmxlV2Vha1B0clRocmVhZGluZ0Fzc2VydGlvbnM6OlllcykgLT4gZGVjbHR5
cGUobWFrZVdlYWtQdHIoKnB0cikpCi17Ci0gICAgaWYgKCFwdHIpCi0gICAgICAgIHJldHVybiB7
IH07Ci0gICAgcmV0dXJuIG1ha2VXZWFrUHRyKCpwdHIsIGVuYWJsZVdlYWtQdHJUaHJlYWRpbmdB
c3NlcnRpb25zKTsKLX0KLQotLy8gbWFrZVdlYWtQdHIoKSBpcyBkZXByZWNhdGVkLiBVc2UgV2Vh
a1B0ciB7IG9iamVjdCB9IGRpcmVjdGx5IGluc3RlYWQuCi10ZW1wbGF0ZTx0eXBlbmFtZSBULCB0
eXBlbmFtZSA9IHN0ZDo6ZW5hYmxlX2lmX3Q8IUlzU21hcnRQdHI8VD46OnZhbHVlPj4gaW5saW5l
IGF1dG8gbWFrZVdlYWtQdHIoY29uc3QgUmVmPFQ+JiBvYmplY3QsIEVuYWJsZVdlYWtQdHJUaHJl
YWRpbmdBc3NlcnRpb25zIGVuYWJsZVdlYWtQdHJUaHJlYWRpbmdBc3NlcnRpb25zID0gRW5hYmxl
V2Vha1B0clRocmVhZGluZ0Fzc2VydGlvbnM6OlllcykKLXsKLSAgICByZXR1cm4gbWFrZVdlYWtQ
dHIob2JqZWN0LmdldCgpLCBlbmFibGVXZWFrUHRyVGhyZWFkaW5nQXNzZXJ0aW9ucyk7Ci19Ci0K
LS8vIG1ha2VXZWFrUHRyKCkgaXMgZGVwcmVjYXRlZC4gVXNlIFdlYWtQdHIgeyBvYmplY3QgfSBk
aXJlY3RseSBpbnN0ZWFkLgotdGVtcGxhdGU8dHlwZW5hbWUgVCwgdHlwZW5hbWUgPSBzdGQ6OmVu
YWJsZV9pZl90PCFJc1NtYXJ0UHRyPFQ+Ojp2YWx1ZT4+IGlubGluZSBhdXRvIG1ha2VXZWFrUHRy
KGNvbnN0IFJlZlB0cjxUPiYgb2JqZWN0LCBFbmFibGVXZWFrUHRyVGhyZWFkaW5nQXNzZXJ0aW9u
cyBlbmFibGVXZWFrUHRyVGhyZWFkaW5nQXNzZXJ0aW9ucyA9IEVuYWJsZVdlYWtQdHJUaHJlYWRp
bmdBc3NlcnRpb25zOjpZZXMpCi17Ci0gICAgcmV0dXJuIG1ha2VXZWFrUHRyKG9iamVjdC5nZXQo
KSwgZW5hYmxlV2Vha1B0clRocmVhZGluZ0Fzc2VydGlvbnMpOwotfQotCiB0ZW1wbGF0ZSA8dHlw
ZW5hbWUgVCwgdHlwZW5hbWUgQ291bnRlcj4KIHN0cnVjdCBHZXRQdHJIZWxwZXI8V2Vha1B0cjxU
LCBDb3VudGVyPj4gewogICAgIHVzaW5nIFB0clR5cGUgPSBUKjsKQEAgLTM4OSw0ICszNjMsMyBA
QCB1c2luZyBXVEY6OkVuYWJsZVdlYWtQdHJUaHJlYWRpbmdBc3NlcnRpb25zOwogdXNpbmcgV1RG
OjpXZWFrUHRyOwogdXNpbmcgV1RGOjpXZWFrUHRyRmFjdG9yeTsKIHVzaW5nIFdURjo6V2Vha1B0
ckZhY3RvcnlJbml0aWFsaXphdGlvbjsKLXVzaW5nIFdURjo6bWFrZVdlYWtQdHI7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3RlbVN5
bmNBY2Nlc3NIYW5kbGUuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxlc3lzdGVtYWNj
ZXNzL0ZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlLmNwcAppbmRleCBkMjJlMjA4MGI2Y2M2NDdj
M2U1YmZlOTFlYzUyNDc2Y2FhOWQ0ODljLi4yYmNmNzRhMDg3YjgzOTdmMzBhMjI2MzZkODAyZTBj
MWU5MDY4MmFiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0ZW1h
Y2Nlc3MvRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZS5jcHAK
QEAgLTU1LDcgKzU1LDcgQEAgRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGU6On5GaWxlU3lzdGVt
U3luY0FjY2Vzc0hhbmRsZSgpCiB2b2lkIEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlOjp0cnVu
Y2F0ZSh1bnNpZ25lZCBsb25nIGxvbmcgc2l6ZSwgRE9NUHJvbWlzZURlZmVycmVkPHZvaWQ+JiYg
cHJvbWlzZSkKIHsKICAgICBtX3BlbmRpbmdPcGVyYXRpb25Db3VudCsrOwotICAgIG1fc291cmNl
LT50cnVuY2F0ZShtX2lkZW50aWZpZXIsIHNpemUsIFt3ZWFrVGhpcyA9IG1ha2VXZWFrUHRyKCp0
aGlzKSwgcHJvbWlzZSA9IFdURk1vdmUocHJvbWlzZSldKGF1dG8gcmVzdWx0KSBtdXRhYmxlIHsK
KyAgICBtX3NvdXJjZS0+dHJ1bmNhdGUobV9pZGVudGlmaWVyLCBzaXplLCBbd2Vha1RoaXMgPSBX
ZWFrUHRyIHsgKnRoaXMgfSwgcHJvbWlzZSA9IFdURk1vdmUocHJvbWlzZSldKGF1dG8gcmVzdWx0
KSBtdXRhYmxlIHsKICAgICAgICAgaWYgKHdlYWtUaGlzKQogICAgICAgICAgICAgd2Vha1RoaXMt
Pm1fcGVuZGluZ09wZXJhdGlvbkNvdW50LS07CiAKQEAgLTY2LDcgKzY2LDcgQEAgdm9pZCBGaWxl
U3lzdGVtU3luY0FjY2Vzc0hhbmRsZTo6dHJ1bmNhdGUodW5zaWduZWQgbG9uZyBsb25nIHNpemUs
IERPTVByb21pc2VEZWYKIHZvaWQgRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGU6OmdldFNpemUo
RE9NUHJvbWlzZURlZmVycmVkPElETFVuc2lnbmVkTG9uZ0xvbmc+JiYgcHJvbWlzZSkKIHsKICAg
ICBtX3BlbmRpbmdPcGVyYXRpb25Db3VudCsrOwotICAgIG1fc291cmNlLT5nZXRTaXplKG1faWRl
bnRpZmllciwgW3dlYWtUaGlzID0gbWFrZVdlYWtQdHIoKnRoaXMpLCBwcm9taXNlID0gV1RGTW92
ZShwcm9taXNlKV0oYXV0byByZXN1bHQpIG11dGFibGUgeworICAgIG1fc291cmNlLT5nZXRTaXpl
KG1faWRlbnRpZmllciwgW3dlYWtUaGlzID0gV2Vha1B0ciB7ICp0aGlzIH0sIHByb21pc2UgPSBX
VEZNb3ZlKHByb21pc2UpXShhdXRvIHJlc3VsdCkgbXV0YWJsZSB7CiAgICAgICAgIGlmICh3ZWFr
VGhpcykKICAgICAgICAgICAgIHdlYWtUaGlzLT5tX3BlbmRpbmdPcGVyYXRpb25Db3VudC0tOwog
CkBAIC03Nyw3ICs3Nyw3IEBAIHZvaWQgRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGU6OmdldFNp
emUoRE9NUHJvbWlzZURlZmVycmVkPElETFVuc2lnbmVkTG9uZ0xvbmc+CiB2b2lkIEZpbGVTeXN0
ZW1TeW5jQWNjZXNzSGFuZGxlOjpmbHVzaChET01Qcm9taXNlRGVmZXJyZWQ8dm9pZD4mJiBwcm9t
aXNlKQogewogICAgIG1fcGVuZGluZ09wZXJhdGlvbkNvdW50Kys7Ci0gICAgbV9zb3VyY2UtPmZs
dXNoKG1faWRlbnRpZmllciwgW3dlYWtUaGlzID0gbWFrZVdlYWtQdHIoKnRoaXMpLCBwcm9taXNl
ID0gV1RGTW92ZShwcm9taXNlKV0oYXV0byByZXN1bHQpIG11dGFibGUgeworICAgIG1fc291cmNl
LT5mbHVzaChtX2lkZW50aWZpZXIsIFt3ZWFrVGhpcyA9IFdlYWtQdHIgeyAqdGhpcyB9LCBwcm9t
aXNlID0gV1RGTW92ZShwcm9taXNlKV0oYXV0byByZXN1bHQpIG11dGFibGUgewogICAgICAgICBp
ZiAod2Vha1RoaXMpCiAgICAgICAgICAgICB3ZWFrVGhpcy0+bV9wZW5kaW5nT3BlcmF0aW9uQ291
bnQtLTsKIApAQCAtOTEsNyArOTEsNyBAQCB2b2lkIEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxl
OjpjbG9zZShET01Qcm9taXNlRGVmZXJyZWQ8dm9pZD4mJiBwcm9taXNlKQogICAgICAgICByZXR1
cm4gcHJvbWlzZS5yZWplY3QoRXhjZXB0aW9uIHsgSW52YWxpZFN0YXRlRXJyb3IgfSk7CiAKICAg
ICBtX3BlbmRpbmdPcGVyYXRpb25Db3VudCsrOwotICAgIG1fc291cmNlLT5jbG9zZShtX2lkZW50
aWZpZXIsIFt3ZWFrVGhpcyA9IG1ha2VXZWFrUHRyKCp0aGlzKSwgcHJvbWlzZSA9IFdURk1vdmUo
cHJvbWlzZSldKGF1dG8gcmVzdWx0KSBtdXRhYmxlIHsKKyAgICBtX3NvdXJjZS0+Y2xvc2UobV9p
ZGVudGlmaWVyLCBbd2Vha1RoaXMgPSBXZWFrUHRyIHsgKnRoaXMgfSwgcHJvbWlzZSA9IFdURk1v
dmUocHJvbWlzZSldKGF1dG8gcmVzdWx0KSBtdXRhYmxlIHsKICAgICAgICAgaWYgKHdlYWtUaGlz
KSB7CiAgICAgICAgICAgICB3ZWFrVGhpcy0+bV9wZW5kaW5nT3BlcmF0aW9uQ291bnQtLTsKICAg
ICAgICAgICAgIHdlYWtUaGlzLT5kaWRDbG9zZSgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvZG9tL0VsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuY3BwCmluZGV4
IGRlMjdjNmY1NWZkNzdhM2E3NzNiODQxZmJlOWRhM2Y3ZjZjMDYwN2YuLmJlODY1Nzc5OGNkMjcw
OGRlOTg1ZWY5NjU2ODA3ODNjZDBmOTcyYzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Rv
bS9FbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5jcHAKQEAgLTIz
NTQsNyArMjM1NCw3IEBAIHZvaWQgRWxlbWVudDo6YWRkU2hhZG93Um9vdChSZWY8U2hhZG93Um9v
dD4mJiBuZXdTaGFkb3dSb290KQogCiAgICAgICAgIGVuc3VyZUVsZW1lbnRSYXJlRGF0YSgpLnNl
dFNoYWRvd1Jvb3QoV1RGTW92ZShuZXdTaGFkb3dSb290KSk7CiAKLSAgICAgICAgc2hhZG93Um9v
dC5zZXRIb3N0KG1ha2VXZWFrUHRyPEVsZW1lbnQ+KHRoaXMpKTsKKyAgICAgICAgc2hhZG93Um9v
dC5zZXRIb3N0KCp0aGlzKTsKICAgICAgICAgc2hhZG93Um9vdC5zZXRQYXJlbnRUcmVlU2NvcGUo
dHJlZVNjb3BlKCkpOwogCiAjaWYgQVNTRVJUX0VOQUJMRUQKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvR1BVUHJvY2Vzcy9HUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmNwcCBiL1NvdXJjZS9X
ZWJLaXQvR1BVUHJvY2Vzcy9HUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmNwcAppbmRleCA2Njk5
OTBiZWM5Nzg2NjhiZWZjM2NiYzkzNzBhODI1YmNkNzE1MmUwLi5lNDQ1ZTU5ZGM3YmI1NmQ3NTE0
N2E5NmY2YWFhNDNiYTc1M2YwNjBhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nl
c3MvR1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5jcHAKKysrIGIvU291cmNlL1dlYktpdC9HUFVQ
cm9jZXNzL0dQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuY3BwCkBAIC0yMzAsNyArMjMwLDcgQEAg
R1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6R1BVQ29ubmVjdGlvblRvV2ViUHJvY2VzcyhHUFVQ
cm9jZXNzJiBncHVQcm9jZXNzLCBXZWIKICAgICBSRUxFQVNFX0FTU0VSVChSdW5Mb29wOjppc01h
aW4oKSk7CiAKICNpZiBFTkFCTEUoUk9VVElOR19BUkJJVFJBVElPTikgJiYgSEFWRShBVkFVRElP
X1JPVVRJTkdfQVJCSVRFUikKLSAgICBncHVQcm9jZXNzLmF1ZGlvU2Vzc2lvbk1hbmFnZXIoKS5z
ZXNzaW9uKCkuc2V0Um91dGluZ0FyYml0cmF0aW9uQ2xpZW50KG1ha2VXZWFrUHRyKG1fcm91dGlu
Z0FyYml0cmF0b3IuZ2V0KCkpKTsKKyAgICBncHVQcm9jZXNzLmF1ZGlvU2Vzc2lvbk1hbmFnZXIo
KS5zZXNzaW9uKCkuc2V0Um91dGluZ0FyYml0cmF0aW9uQ2xpZW50KFdlYWtQdHIgeyBtX3JvdXRp
bmdBcmJpdHJhdG9yLmdldCgpIH0pOwogI2VuZGlmCiAKICAgICBpZiAoIXBhcmFtZXRlcnMub3Zl
cnJpZGVMYW5ndWFnZXMuaXNFbXB0eSgpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQ
cm9jZXNzL2dyYXBoaWNzL1JlbW90ZUdyYXBoaWNzQ29udGV4dEdMLmNwcCBiL1NvdXJjZS9XZWJL
aXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVHcmFwaGljc0NvbnRleHRHTC5jcHAKaW5kZXgg
MmI3YjgyN2Q3MjM5YTQ1MGJkMGM0OWEwMDI3MmVlNGRmNmEyZGVkZS4uYWM5NTk1MjBhMmUzZGZh
ZDlmY2Q4MmIzOTJmMTBhOWE1YTYwNDg0MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9HUFVQ
cm9jZXNzL2dyYXBoaWNzL1JlbW90ZUdyYXBoaWNzQ29udGV4dEdMLmNwcAorKysgYi9Tb3VyY2Uv
V2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlR3JhcGhpY3NDb250ZXh0R0wuY3BwCkBA
IC02NCw3ICs2NCw3IEBAIFJlZjxSZW1vdGVHcmFwaGljc0NvbnRleHRHTD4gUmVtb3RlR3JhcGhp
Y3NDb250ZXh0R0w6OmNyZWF0ZShHUFVDb25uZWN0aW9uVG9XZWJQCiAjZW5kaWYKIAogUmVtb3Rl
R3JhcGhpY3NDb250ZXh0R0w6OlJlbW90ZUdyYXBoaWNzQ29udGV4dEdMKEdQVUNvbm5lY3Rpb25U
b1dlYlByb2Nlc3MmIGdwdUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MsIEdyYXBoaWNzQ29udGV4dEdM
SWRlbnRpZmllciBncmFwaGljc0NvbnRleHRHTElkZW50aWZpZXIsIFJlbW90ZVJlbmRlcmluZ0Jh
Y2tlbmQmIHJlbmRlcmluZ0JhY2tlbmQsIElQQzo6U3RyZWFtQ29ubmVjdGlvbkJ1ZmZlciYmIHN0
cmVhbSkKLSAgICA6IG1fZ3B1Q29ubmVjdGlvblRvV2ViUHJvY2VzcyhtYWtlV2Vha1B0cihncHVD
b25uZWN0aW9uVG9XZWJQcm9jZXNzKSkKKyAgICA6IG1fZ3B1Q29ubmVjdGlvblRvV2ViUHJvY2Vz
cyhncHVDb25uZWN0aW9uVG9XZWJQcm9jZXNzKQogICAgICwgbV9zdHJlYW1Db25uZWN0aW9uKElQ
Qzo6U3RyZWFtU2VydmVyQ29ubmVjdGlvbjo6Y3JlYXRlKGdwdUNvbm5lY3Rpb25Ub1dlYlByb2Nl
c3MuY29ubmVjdGlvbigpLCBXVEZNb3ZlKHN0cmVhbSksIHJlbW90ZUdyYXBoaWNzQ29udGV4dEdM
U3RyZWFtV29ya1F1ZXVlKCkpKQogICAgICwgbV9ncmFwaGljc0NvbnRleHRHTElkZW50aWZpZXIo
Z3JhcGhpY3NDb250ZXh0R0xJZGVudGlmaWVyKQogICAgICwgbV9yZW5kZXJpbmdCYWNrZW5kKHJl
bmRlcmluZ0JhY2tlbmQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVk
aWEvUmVtb3RlQXVkaW9IYXJkd2FyZUxpc3RlbmVyUHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9H
UFVQcm9jZXNzL21lZGlhL1JlbW90ZUF1ZGlvSGFyZHdhcmVMaXN0ZW5lclByb3h5LmNwcAppbmRl
eCBkMTFkNTdhYWE2YTk0NTQ2MDk4NDgzMmIyYmRjMWRkYWFiMDBiMGIzLi4zYTNjMWY5MWQyZjk3
YmIzZGYwMzExNzhmNWVjOTkxZGIwY2Q2NTA5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0dQ
VVByb2Nlc3MvbWVkaWEvUmVtb3RlQXVkaW9IYXJkd2FyZUxpc3RlbmVyUHJveHkuY3BwCisrKyBi
L1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVBdWRpb0hhcmR3YXJlTGlzdGVu
ZXJQcm94eS5jcHAKQEAgLTM0LDcgKzM0LDcgQEAKIG5hbWVzcGFjZSBXZWJLaXQgewogCiBSZW1v
dGVBdWRpb0hhcmR3YXJlTGlzdGVuZXJQcm94eTo6UmVtb3RlQXVkaW9IYXJkd2FyZUxpc3RlbmVy
UHJveHkoR1BVQ29ubmVjdGlvblRvV2ViUHJvY2VzcyYgZ3B1Q29ubmVjdGlvbiwgUmVtb3RlQXVk
aW9IYXJkd2FyZUxpc3RlbmVySWRlbnRpZmllciYmIGlkZW50aWZpZXIpCi0gICAgOiBtX2dwdUNv
bm5lY3Rpb24obWFrZVdlYWtQdHIoZ3B1Q29ubmVjdGlvbikpCisgICAgOiBtX2dwdUNvbm5lY3Rp
b24oZ3B1Q29ubmVjdGlvbikKICAgICAsIG1faWRlbnRpZmllcihXVEZNb3ZlKGlkZW50aWZpZXIp
KQogICAgICwgbV9saXN0ZW5lcihXZWJDb3JlOjpBdWRpb0hhcmR3YXJlTGlzdGVuZXI6OmNyZWF0
ZSgqdGhpcykpCiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEv
UmVtb3RlQXVkaW9UcmFja1Byb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRp
YS9SZW1vdGVBdWRpb1RyYWNrUHJveHkuY3BwCmluZGV4IDZkY2RkZGI2ZjIyNjZkZTJlMThlNDE2
ZTYyOGIwYWQ3MzM5MzNjZDkuLjY1MjM5NmY3YTY0MjJiYWJmYTUyNDFkMjM4MmEyNGQ5YTg0OGZh
NTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVBdWRp
b1RyYWNrUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1v
dGVBdWRpb1RyYWNrUHJveHkuY3BwCkBAIC00MCw3ICs0MCw3IEBAIG5hbWVzcGFjZSBXZWJLaXQg
ewogdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAKIFJlbW90ZUF1ZGlvVHJhY2tQcm94eTo6UmVt
b3RlQXVkaW9UcmFja1Byb3h5KEdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MmIGNvbm5lY3Rpb25U
b1dlYlByb2Nlc3MsIFRyYWNrUHJpdmF0ZVJlbW90ZUlkZW50aWZpZXIgaWRlbnRpZmllciwgQXVk
aW9UcmFja1ByaXZhdGUmIHRyYWNrUHJpdmF0ZSwgTWVkaWFQbGF5ZXJJZGVudGlmaWVyIG1lZGlh
UGxheWVySWRlbnRpZmllcikKLSAgICA6IG1fY29ubmVjdGlvblRvV2ViUHJvY2VzcyhtYWtlV2Vh
a1B0cihjb25uZWN0aW9uVG9XZWJQcm9jZXNzKSkKKyAgICA6IG1fY29ubmVjdGlvblRvV2ViUHJv
Y2Vzcyhjb25uZWN0aW9uVG9XZWJQcm9jZXNzKQogICAgICwgbV9pZGVudGlmaWVyKGlkZW50aWZp
ZXIpCiAgICAgLCBtX3RyYWNrUHJpdmF0ZSh0cmFja1ByaXZhdGUpCiAgICAgLCBtX21lZGlhUGxh
eWVySWRlbnRpZmllcihtZWRpYVBsYXllcklkZW50aWZpZXIpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlQ0RNRmFjdG9yeVByb3h5LmNwcCBiL1NvdXJj
ZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVDRE1GYWN0b3J5UHJveHkuY3BwCmluZGV4
IDA2ZWM1MjcwNmZjYTdmNzE1MzlhOTcwNTk0M2Y4YzdkNWI1MjFkMzEuLjQ4OTgzYzAxODg5YTZl
YzNiZDQwZWE1NThjOWRjMjk3ZjUzMTVjMWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvR1BV
UHJvY2Vzcy9tZWRpYS9SZW1vdGVDRE1GYWN0b3J5UHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJL
aXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVDRE1GYWN0b3J5UHJveHkuY3BwCkBAIC00MSw3ICs0
MSw3IEBAIG5hbWVzcGFjZSBXZWJLaXQgewogdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAKIFJl
bW90ZUNETUZhY3RvcnlQcm94eTo6UmVtb3RlQ0RNRmFjdG9yeVByb3h5KEdQVUNvbm5lY3Rpb25U
b1dlYlByb2Nlc3MmIGNvbm5lY3Rpb24pCi0gICAgOiBtX2dwdUNvbm5lY3Rpb25Ub1dlYlByb2Nl
c3MobWFrZVdlYWtQdHIoY29ubmVjdGlvbikpCisgICAgOiBtX2dwdUNvbm5lY3Rpb25Ub1dlYlBy
b2Nlc3MoY29ubmVjdGlvbikKIHsKIH0KIApAQCAtNzAsNyArNzAsNyBAQCB2b2lkIFJlbW90ZUNE
TUZhY3RvcnlQcm94eTo6Y3JlYXRlQ0RNKGNvbnN0IFN0cmluZyYga2V5U3lzdGVtLCBDb21wbGV0
aW9uSGFuZGxlcgogICAgICAgICByZXR1cm47CiAgICAgfQogCi0gICAgYXV0byBwcm94eSA9IFJl
bW90ZUNETVByb3h5OjpjcmVhdGUobWFrZVdlYWtQdHIodGhpcyksIFdURk1vdmUocHJpdmF0ZUNE
TSkpOworICAgIGF1dG8gcHJveHkgPSBSZW1vdGVDRE1Qcm94eTo6Y3JlYXRlKCp0aGlzLCBXVEZN
b3ZlKHByaXZhdGVDRE0pKTsKICAgICBhdXRvIGlkZW50aWZpZXIgPSBSZW1vdGVDRE1JZGVudGlm
aWVyOjpnZW5lcmF0ZSgpOwogICAgIFJlbW90ZUNETUNvbmZpZ3VyYXRpb24gY29uZmlndXJhdGlv
biA9IHByb3h5LT5jb25maWd1cmF0aW9uKCk7CiAgICAgYWRkUHJveHkoaWRlbnRpZmllciwgV1RG
TW92ZShwcm94eSkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlh
L1JlbW90ZUNETUluc3RhbmNlUHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21l
ZGlhL1JlbW90ZUNETUluc3RhbmNlUHJveHkuY3BwCmluZGV4IGJkODM1YzUxYThjYWVkZDY5NWUw
MGMyNWIwZDIzOWU3MGZkNzlkMWIuLjFiOWI0ODJiOTBiMzc1YzljNjE1NmExMjYyMTU3OTNjMjBh
OTQ4OWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVD
RE1JbnN0YW5jZVByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEv
UmVtb3RlQ0RNSW5zdGFuY2VQcm94eS5jcHAKQEAgLTUzLDcgKzUzLDcgQEAgUmVtb3RlQ0RNSW5z
dGFuY2VQcm94eTo6UmVtb3RlQ0RNSW5zdGFuY2VQcm94eShXZWFrUHRyPFJlbW90ZUNETVByb3h5
PiYmIGNkbSwgUmUKICAgICAsIG1fY29uZmlndXJhdGlvbihXVEZNb3ZlKGNvbmZpZ3VyYXRpb24p
KQogICAgICwgbV9pZGVudGlmaWVyKGlkZW50aWZpZXIpCiB7Ci0gICAgbV9pbnN0YW5jZS0+c2V0
Q2xpZW50KG1ha2VXZWFrUHRyPENETUluc3RhbmNlQ2xpZW50Pih0aGlzKSk7CisgICAgbV9pbnN0
YW5jZS0+c2V0Q2xpZW50KHN0YXRpY19jYXN0PENETUluc3RhbmNlQ2xpZW50Jj4oKnRoaXMpKTsK
IH0KIAogUmVtb3RlQ0RNSW5zdGFuY2VQcm94eTo6flJlbW90ZUNETUluc3RhbmNlUHJveHkoKQpA
QCAtMTA1LDcgKzEwNSw3IEBAIHZvaWQgUmVtb3RlQ0RNSW5zdGFuY2VQcm94eTo6Y3JlYXRlU2Vz
c2lvbihDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGNvbnN0IFJlbW90ZUNECiAgICAgICAgIHJldHVy
bjsKICAgICB9CiAgICAgYXV0byBpZGVudGlmaWVyID0gUmVtb3RlQ0RNSW5zdGFuY2VTZXNzaW9u
SWRlbnRpZmllcjo6Z2VuZXJhdGUoKTsKLSAgICBhdXRvIHNlc3Npb24gPSBSZW1vdGVDRE1JbnN0
YW5jZVNlc3Npb25Qcm94eTo6Y3JlYXRlKG1ha2VXZWFrUHRyKG1fY2RtLmdldCgpKSwgcHJpdlNl
c3Npb24ucmVsZWFzZU5vbk51bGwoKSwgaWRlbnRpZmllcik7CisgICAgYXV0byBzZXNzaW9uID0g
UmVtb3RlQ0RNSW5zdGFuY2VTZXNzaW9uUHJveHk6OmNyZWF0ZShtX2NkbS5nZXQoKSwgcHJpdlNl
c3Npb24ucmVsZWFzZU5vbk51bGwoKSwgaWRlbnRpZmllcik7CiAgICAgbV9jZG0tPmZhY3Rvcnko
KS0+YWRkU2Vzc2lvbihpZGVudGlmaWVyLCBXVEZNb3ZlKHNlc3Npb24pKTsKICAgICBjb21wbGV0
aW9uKGlkZW50aWZpZXIpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNz
L21lZGlhL1JlbW90ZUNETUluc3RhbmNlU2Vzc2lvblByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQv
R1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVDRE1JbnN0YW5jZVNlc3Npb25Qcm94eS5jcHAKaW5kZXgg
ODA2MTQ2MTc3MGYzZWU4NzQzYWE2MjFiN2E4ZDAzMzVmMTExNjFjOC4uZTU3NjZjMjMzNGNmZDM4
OTMxMGNkNGIyMTcyM2NhYmEzNzQyZmM3YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9HUFVQ
cm9jZXNzL21lZGlhL1JlbW90ZUNETUluc3RhbmNlU2Vzc2lvblByb3h5LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlQ0RNSW5zdGFuY2VTZXNzaW9uUHJveHku
Y3BwCkBAIC00MSw3ICs0MSw3IEBAIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogc3RkOjp1bmlx
dWVfcHRyPFJlbW90ZUNETUluc3RhbmNlU2Vzc2lvblByb3h5PiBSZW1vdGVDRE1JbnN0YW5jZVNl
c3Npb25Qcm94eTo6Y3JlYXRlKFdlYWtQdHI8UmVtb3RlQ0RNUHJveHk+JiYgcHJveHksIFJlZjxX
ZWJDb3JlOjpDRE1JbnN0YW5jZVNlc3Npb24+JiYgc2Vzc2lvbiwgUmVtb3RlQ0RNSW5zdGFuY2VT
ZXNzaW9uSWRlbnRpZmllciBpZGVudGlmaWVyKQogewogICAgIGF1dG8gc2Vzc2lvblByb3h5ID0g
c3RkOjp1bmlxdWVfcHRyPFJlbW90ZUNETUluc3RhbmNlU2Vzc2lvblByb3h5PihuZXcgUmVtb3Rl
Q0RNSW5zdGFuY2VTZXNzaW9uUHJveHkoV1RGTW92ZShwcm94eSksIFdURk1vdmUoc2Vzc2lvbiks
IGlkZW50aWZpZXIpKTsKLSAgICBhdXRvIGNsaWVudCA9IG1ha2VXZWFrUHRyPFdlYkNvcmU6OkNE
TUluc3RhbmNlU2Vzc2lvbkNsaWVudD4oc2Vzc2lvblByb3h5LmdldCgpKTsKKyAgICBXZWFrUHRy
PFdlYkNvcmU6OkNETUluc3RhbmNlU2Vzc2lvbkNsaWVudD4gY2xpZW50ID0gc2Vzc2lvblByb3h5
LmdldCgpOwogICAgIHNlc3Npb25Qcm94eS0+bV9zZXNzaW9uLT5zZXRDbGllbnQoV1RGTW92ZShj
bGllbnQpKTsKICAgICByZXR1cm4gc2Vzc2lvblByb3h5OwogfQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZUNETVByb3h5LmNwcCBiL1NvdXJjZS9XZWJL
aXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVDRE1Qcm94eS5jcHAKaW5kZXggNWU1NGU4MjNkN2U3
N2NiYjYwN2Q1NjEyNmEyOTI2ZTI0NmFmYzMyZi4uOWFiMzU3NWY0YzNiNTU5NTU1YjliODdiMjMz
NzFiMWIxYTY2ZGMxNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlh
L1JlbW90ZUNETVByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEv
UmVtb3RlQ0RNUHJveHkuY3BwCkBAIC05MSw3ICs5MSw3IEBAIHZvaWQgUmVtb3RlQ0RNUHJveHk6
OmNyZWF0ZUluc3RhbmNlKENvbXBsZXRpb25IYW5kbGVyPHZvaWQoUmVtb3RlQ0RNSW5zdGFuY2VJ
ZGVuCiAgICAgICAgIHJldHVybjsKICAgICB9CiAgICAgYXV0byBpZGVudGlmaWVyID0gUmVtb3Rl
Q0RNSW5zdGFuY2VJZGVudGlmaWVyOjpnZW5lcmF0ZSgpOwotICAgIGF1dG8gaW5zdGFuY2UgPSBS
ZW1vdGVDRE1JbnN0YW5jZVByb3h5OjpjcmVhdGUobWFrZVdlYWtQdHIodGhpcyksIHByaXZhdGVJ
bnN0YW5jZS5yZWxlYXNlTm9uTnVsbCgpLCBpZGVudGlmaWVyKTsKKyAgICBhdXRvIGluc3RhbmNl
ID0gUmVtb3RlQ0RNSW5zdGFuY2VQcm94eTo6Y3JlYXRlKCp0aGlzLCBwcml2YXRlSW5zdGFuY2Uu
cmVsZWFzZU5vbk51bGwoKSwgaWRlbnRpZmllcik7CiAgICAgUmVtb3RlQ0RNSW5zdGFuY2VDb25m
aWd1cmF0aW9uIGNvbmZpZ3VyYXRpb24gPSBpbnN0YW5jZS0+Y29uZmlndXJhdGlvbigpOwogICAg
IG1fZmFjdG9yeS0+YWRkSW5zdGFuY2UoaWRlbnRpZmllciwgV1RGTW92ZShpbnN0YW5jZSkpOwog
ICAgIGNvbXBsZXRpb24oaWRlbnRpZmllciwgV1RGTW92ZShjb25maWd1cmF0aW9uKSk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlSW1hZ2VEZWNvZGVy
QVZGUHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZUltYWdl
RGVjb2RlckFWRlByb3h5LmNwcAppbmRleCA5NjgzZWRlMDlmOTZmY2Q5ZDE5M2YzNDJmYjVmMDhj
YmFhYjI5ZjYwLi5mYTgzODc0OTQzMjM2NWE0MDg5YWVhNWFlY2JjZWE2NjBkYjY0YmEwIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlSW1hZ2VEZWNvZGVy
QVZGUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVJ
bWFnZURlY29kZXJBVkZQcm94eS5jcHAKQEAgLTQxLDcgKzQxLDcgQEAgbmFtZXNwYWNlIFdlYktp
dCB7CiB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIAogUmVtb3RlSW1hZ2VEZWNvZGVyQVZGUHJv
eHk6OlJlbW90ZUltYWdlRGVjb2RlckFWRlByb3h5KEdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3Mm
IGNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MpCi0gICAgOiBtX2Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3Mo
bWFrZVdlYWtQdHIoY29ubmVjdGlvblRvV2ViUHJvY2VzcykpCisgICAgOiBtX2Nvbm5lY3Rpb25U
b1dlYlByb2Nlc3MoY29ubmVjdGlvblRvV2ViUHJvY2VzcykKIHsKIH0KIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZUxlZ2FjeUNETUZhY3RvcnlQcm94
eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTGVnYWN5Q0RNRmFj
dG9yeVByb3h5LmNwcAppbmRleCA2YWE0ZDFlNzJhOGNlMjllYTdlZmEyOGRkYjliMzc0ZjE4ZjNk
NWZlLi43Y2VkYjk3MTJmYzY2YjViOGRiNTJiYWYwOGNiMGMyYTY0ZTk0ZWU3IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTGVnYWN5Q0RNRmFjdG9yeVBy
b3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTGVnYWN5
Q0RNRmFjdG9yeVByb3h5LmNwcApAQCAtNDIsNyArNDIsNyBAQCBuYW1lc3BhY2UgV2ViS2l0IHsK
IHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogCiBSZW1vdGVMZWdhY3lDRE1GYWN0b3J5UHJveHk6
OlJlbW90ZUxlZ2FjeUNETUZhY3RvcnlQcm94eShHUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzJiBj
b25uZWN0aW9uKQotICAgIDogbV9ncHVDb25uZWN0aW9uVG9XZWJQcm9jZXNzKG1ha2VXZWFrUHRy
KGNvbm5lY3Rpb24pKQorICAgIDogbV9ncHVDb25uZWN0aW9uVG9XZWJQcm9jZXNzKGNvbm5lY3Rp
b24pCiB7CiB9CiAKQEAgLTcwLDcgKzcwLDcgQEAgdm9pZCBSZW1vdGVMZWdhY3lDRE1GYWN0b3J5
UHJveHk6OmNyZWF0ZUNETShjb25zdCBTdHJpbmcmIGtleVN5c3RlbSwgc3RkOjpvcHRpb24KICAg
ICBpZiAob3B0aW9uYWxQbGF5ZXJJZCkKICAgICAgICAgcGxheWVySWQgPSBXVEZNb3ZlKG9wdGlv
bmFsUGxheWVySWQudmFsdWUoKSk7CiAKLSAgICBhdXRvIHByb3h5ID0gUmVtb3RlTGVnYWN5Q0RN
UHJveHk6OmNyZWF0ZShtYWtlV2Vha1B0cih0aGlzKSwgV1RGTW92ZShwbGF5ZXJJZCksIFdURk1v
dmUocHJpdmF0ZUNETSkpOworICAgIGF1dG8gcHJveHkgPSBSZW1vdGVMZWdhY3lDRE1Qcm94eTo6
Y3JlYXRlKCp0aGlzLCBXVEZNb3ZlKHBsYXllcklkKSwgV1RGTW92ZShwcml2YXRlQ0RNKSk7CiAg
ICAgYXV0byBpZGVudGlmaWVyID0gUmVtb3RlTGVnYWN5Q0RNSWRlbnRpZmllcjo6Z2VuZXJhdGUo
KTsKICAgICBhZGRQcm94eShpZGVudGlmaWVyLCBXVEZNb3ZlKHByb3h5KSk7CiAgICAgY29tcGxl
dGlvbihXVEZNb3ZlKGlkZW50aWZpZXIpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BV
UHJvY2Vzcy9tZWRpYS9SZW1vdGVMZWdhY3lDRE1Qcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L0dQ
VVByb2Nlc3MvbWVkaWEvUmVtb3RlTGVnYWN5Q0RNUHJveHkuY3BwCmluZGV4IGJmNTE3NTkyYTAx
ZTBlZWFjN2MyYzhjOTU4OTViYzJmYThlMzc2OTMuLmZmZjZlYjUyOWU1NjlmYjhmNGJlMTMwZDdk
OGNlMzA3NjUzOWI3ODAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRp
YS9SZW1vdGVMZWdhY3lDRE1Qcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNz
L21lZGlhL1JlbW90ZUxlZ2FjeUNETVByb3h5LmNwcApAQCAtNjksNyArNjksNyBAQCB2b2lkIFJl
bW90ZUxlZ2FjeUNETVByb3h5OjpjcmVhdGVTZXNzaW9uKGNvbnN0IFN0cmluZyYga2V5U3lzdGVt
LCBDcmVhdGVTZXNzaW9uQwogICAgIH0KIAogICAgIGF1dG8gaWRlbnRpZmllciA9IFJlbW90ZUxl
Z2FjeUNETVNlc3Npb25JZGVudGlmaWVyOjpnZW5lcmF0ZSgpOwotICAgIGF1dG8gc2Vzc2lvbiA9
IFJlbW90ZUxlZ2FjeUNETVNlc3Npb25Qcm94eTo6Y3JlYXRlKG1ha2VXZWFrUHRyKG1fZmFjdG9y
eS5nZXQoKSksIGlkZW50aWZpZXIsICptX2NkbSk7CisgICAgYXV0byBzZXNzaW9uID0gUmVtb3Rl
TGVnYWN5Q0RNU2Vzc2lvblByb3h5OjpjcmVhdGUobV9mYWN0b3J5LmdldCgpLCBpZGVudGlmaWVy
LCAqbV9jZG0pOwogICAgIG1fZmFjdG9yeS0+YWRkU2Vzc2lvbihpZGVudGlmaWVyLCBXVEZNb3Zl
KHNlc3Npb24pKTsKICAgICBjYWxsYmFjayhXVEZNb3ZlKGlkZW50aWZpZXIpKTsKIH0KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVBsYXllck1h
bmFnZXJQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVk
aWFQbGF5ZXJNYW5hZ2VyUHJveHkuY3BwCmluZGV4IDBhMDBlNDhiYjIxOTZjMmEyNmJkMjI5ZjMy
OWM5ZWRiOGU4YjIyNjUuLjczMTAzZmE0YWI2ZDZmMTk1MDNkNTM4NWNhNDUwYzcyYmM3YjM3ZGIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVBs
YXllck1hbmFnZXJQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlh
L1JlbW90ZU1lZGlhUGxheWVyTWFuYWdlclByb3h5LmNwcApAQCAtNDksNyArNDksNyBAQCBuYW1l
c3BhY2UgV2ViS2l0IHsKIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogCiBSZW1vdGVNZWRpYVBs
YXllck1hbmFnZXJQcm94eTo6UmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyUHJveHkoR1BVQ29ubmVj
dGlvblRvV2ViUHJvY2VzcyYgY29ubmVjdGlvbikKLSAgICA6IG1fZ3B1Q29ubmVjdGlvblRvV2Vi
UHJvY2VzcyhtYWtlV2Vha1B0cihjb25uZWN0aW9uKSkKKyAgICA6IG1fZ3B1Q29ubmVjdGlvblRv
V2ViUHJvY2Vzcyhjb25uZWN0aW9uKQogewogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJQcm94eS5jcHAgYi9Tb3VyY2UvV2Vi
S2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJQcm94eS5jcHAKaW5kZXggZGVl
ZTAyMmI1ZjQxZTJhMzZhZTgzNzlkOTIyMWIzZWZjMzVlMDBmMS4uMWFkYjVhMjhlZDgxMzExZTlj
YjZlNjRiMWVlMzBkNTcwYjQyMzU3MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9HUFVQcm9j
ZXNzL21lZGlhL1JlbW90ZU1lZGlhUGxheWVyUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQv
R1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVBsYXllclByb3h5LmNwcApAQCAtNzYsNyArNzYs
NyBAQCB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIFJlbW90ZU1lZGlhUGxheWVyUHJveHk6OlJl
bW90ZU1lZGlhUGxheWVyUHJveHkoUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyUHJveHkmIG1hbmFn
ZXIsIE1lZGlhUGxheWVySWRlbnRpZmllciBpZGVudGlmaWVyLCBSZWY8SVBDOjpDb25uZWN0aW9u
PiYmIGNvbm5lY3Rpb24sIE1lZGlhUGxheWVyRW51bXM6Ok1lZGlhRW5naW5lSWRlbnRpZmllciBl
bmdpbmVJZGVudGlmaWVyLCBSZW1vdGVNZWRpYVBsYXllclByb3h5Q29uZmlndXJhdGlvbiYmIGNv
bmZpZ3VyYXRpb24pCiAgICAgOiBtX2lkKGlkZW50aWZpZXIpCiAgICAgLCBtX3dlYlByb2Nlc3ND
b25uZWN0aW9uKFdURk1vdmUoY29ubmVjdGlvbikpCi0gICAgLCBtX21hbmFnZXIobWFrZVdlYWtQ
dHIobWFuYWdlcikpCisgICAgLCBtX21hbmFnZXIobWFuYWdlcikKICAgICAsIG1fZW5naW5lSWRl
bnRpZmllcihlbmdpbmVJZGVudGlmaWVyKQogICAgICwgbV91cGRhdGVDYWNoZWRTdGF0ZU1lc3Nh
Z2VUaW1lcihSdW5Mb29wOjptYWluKCksIHRoaXMsICZSZW1vdGVNZWRpYVBsYXllclByb3h5Ojp0
aW1lckZpcmVkKQogICAgICwgbV9jb25maWd1cmF0aW9uKGNvbmZpZ3VyYXRpb24pCkBAIC05MDks
NyArOTA5LDcgQEAgdm9pZCBSZW1vdGVNZWRpYVBsYXllclByb3h5OjpzZXRMZWdhY3lDRE1TZXNz
aW9uKHN0ZDo6b3B0aW9uYWw8UmVtb3RlTGVnYWN5Q0RNU2UKICAgICBpZiAobV9sZWdhY3lTZXNz
aW9uKSB7CiAgICAgICAgIGlmIChhdXRvIGNkbVNlc3Npb24gPSBtX21hbmFnZXItPmdwdUNvbm5l
Y3Rpb25Ub1dlYlByb2Nlc3MoKS0+bGVnYWN5Q2RtRmFjdG9yeVByb3h5KCkuZ2V0U2Vzc2lvbigq
bV9sZWdhY3lTZXNzaW9uKSkgewogICAgICAgICAgICAgbV9wbGF5ZXItPnNldENETVNlc3Npb24o
Y2RtU2Vzc2lvbi0+c2Vzc2lvbigpKTsKLSAgICAgICAgICAgIGNkbVNlc3Npb24tPnNldFBsYXll
cihtYWtlV2Vha1B0cih0aGlzKSk7CisgICAgICAgICAgICBjZG1TZXNzaW9uLT5zZXRQbGF5ZXIo
KnRoaXMpOwogICAgICAgICB9CiAgICAgfQogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9H
UFVQcm9jZXNzL21lZGlhL1JlbW90ZU1lZGlhUmVzb3VyY2UuY3BwIGIvU291cmNlL1dlYktpdC9H
UFVQcm9jZXNzL21lZGlhL1JlbW90ZU1lZGlhUmVzb3VyY2UuY3BwCmluZGV4IDFjZGU3OWIxMWQ5
MDcyZDExOWUxNmFjZWVjODZlNDVkMGE0NGU5YWUuLjkwMjM1NGE5OTMxZmVkMTU1OWU1NGU0MWIx
YzAwNTlhZTg3MTgyMzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRp
YS9SZW1vdGVNZWRpYVJlc291cmNlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3Mv
bWVkaWEvUmVtb3RlTWVkaWFSZXNvdXJjZS5jcHAKQEAgLTQyLDggKzQyLDggQEAgUmVmPFJlbW90
ZU1lZGlhUmVzb3VyY2U+IFJlbW90ZU1lZGlhUmVzb3VyY2U6OmNyZWF0ZShSZW1vdGVNZWRpYVJl
c291cmNlTWFuYWdlciYKIH0KIAogUmVtb3RlTWVkaWFSZXNvdXJjZTo6UmVtb3RlTWVkaWFSZXNv
dXJjZShSZW1vdGVNZWRpYVJlc291cmNlTWFuYWdlciYgcmVtb3RlTWVkaWFSZXNvdXJjZU1hbmFn
ZXIsIFJlbW90ZU1lZGlhUGxheWVyUHJveHkmIHJlbW90ZU1lZGlhUGxheWVyUHJveHksIFJlbW90
ZU1lZGlhUmVzb3VyY2VJZGVudGlmaWVyIGlkZW50aWZpZXIpCi0gICAgOiBtX3JlbW90ZU1lZGlh
UmVzb3VyY2VNYW5hZ2VyKG1ha2VXZWFrUHRyKHJlbW90ZU1lZGlhUmVzb3VyY2VNYW5hZ2VyKSkK
LSAgICAsIG1fcmVtb3RlTWVkaWFQbGF5ZXJQcm94eShtYWtlV2Vha1B0cihyZW1vdGVNZWRpYVBs
YXllclByb3h5KSkKKyAgICA6IG1fcmVtb3RlTWVkaWFSZXNvdXJjZU1hbmFnZXIocmVtb3RlTWVk
aWFSZXNvdXJjZU1hbmFnZXIpCisgICAgLCBtX3JlbW90ZU1lZGlhUGxheWVyUHJveHkocmVtb3Rl
TWVkaWFQbGF5ZXJQcm94eSkKICAgICAsIG1faWQoaWRlbnRpZmllcikKIHsKIH0KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVJlc291cmNlTG9h
ZGVyLmNwcCBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVJlc291
cmNlTG9hZGVyLmNwcAppbmRleCBlZThmZDJkM2U1Y2QyNzYxMWU0MWRlMzhjNjRmODJlZTIxMzU4
MjA3Li5jYzcwZDFjNDE2YmI5YzNjOWI1MGJiNzliMjc1YTIzYmFiOWI0MGVmIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFSZXNvdXJjZUxvYWRl
ci5jcHAKKysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZU1lZGlhUmVz
b3VyY2VMb2FkZXIuY3BwCkBAIC0zNiw3ICszNiw3IEBAIG5hbWVzcGFjZSBXZWJLaXQgewogdXNp
bmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAKIFJlbW90ZU1lZGlhUmVzb3VyY2VMb2FkZXI6OlJlbW90
ZU1lZGlhUmVzb3VyY2VMb2FkZXIoUmVtb3RlTWVkaWFQbGF5ZXJQcm94eSYgcmVtb3RlTWVkaWFQ
bGF5ZXJQcm94eSkKLSAgICA6IG1fcmVtb3RlTWVkaWFQbGF5ZXJQcm94eShtYWtlV2Vha1B0cihy
ZW1vdGVNZWRpYVBsYXllclByb3h5KSkKKyAgICA6IG1fcmVtb3RlTWVkaWFQbGF5ZXJQcm94eShy
ZW1vdGVNZWRpYVBsYXllclByb3h5KQogewogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFTb3VyY2VQcm94eS5jcHAgYi9Tb3VyY2UvV2Vi
S2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFTb3VyY2VQcm94eS5jcHAKaW5kZXggNjMw
ZWJmY2FjMjAwMWMwNjZiOTViNjIyM2QyNjkyMGRhNzkyNmU3MS4uZGQ3YTUxZTQ4YjQyNmE2ODg2
MzZlNmFmZTMxYTY1NDBhMDU3NjhhMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9HUFVQcm9j
ZXNzL21lZGlhL1JlbW90ZU1lZGlhU291cmNlUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQv
R1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVNvdXJjZVByb3h5LmNwcApAQCAtNDIsMTAgKzQy
LDEwIEBAIG5hbWVzcGFjZSBXZWJLaXQgewogdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAKIFJl
bW90ZU1lZGlhU291cmNlUHJveHk6OlJlbW90ZU1lZGlhU291cmNlUHJveHkoR1BVQ29ubmVjdGlv
blRvV2ViUHJvY2VzcyYgY29ubmVjdGlvblRvV2ViUHJvY2VzcywgUmVtb3RlTWVkaWFTb3VyY2VJ
ZGVudGlmaWVyIGlkZW50aWZpZXIsIGJvb2wgd2ViTVBhcnNlckVuYWJsZWQsIFJlbW90ZU1lZGlh
UGxheWVyUHJveHkmIHJlbW90ZU1lZGlhUGxheWVyUHJveHkpCi0gICAgOiBtX2Nvbm5lY3Rpb25U
b1dlYlByb2Nlc3MobWFrZVdlYWtQdHIoY29ubmVjdGlvblRvV2ViUHJvY2VzcykpCisgICAgOiBt
X2Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MoY29ubmVjdGlvblRvV2ViUHJvY2VzcykKICAgICAsIG1f
aWRlbnRpZmllcihpZGVudGlmaWVyKQogICAgICwgbV93ZWJNUGFyc2VyRW5hYmxlZCh3ZWJNUGFy
c2VyRW5hYmxlZCkKLSAgICAsIG1fcmVtb3RlTWVkaWFQbGF5ZXJQcm94eShtYWtlV2Vha1B0cihy
ZW1vdGVNZWRpYVBsYXllclByb3h5KSkKKyAgICAsIG1fcmVtb3RlTWVkaWFQbGF5ZXJQcm94eShy
ZW1vdGVNZWRpYVBsYXllclByb3h5KQogewogICAgIG1fY29ubmVjdGlvblRvV2ViUHJvY2Vzcy0+
bWVzc2FnZVJlY2VpdmVyTWFwKCkuYWRkTWVzc2FnZVJlY2VpdmVyKE1lc3NhZ2VzOjpSZW1vdGVN
ZWRpYVNvdXJjZVByb3h5OjptZXNzYWdlUmVjZWl2ZXJOYW1lKCksIG1faWRlbnRpZmllci50b1VJ
bnQ2NCgpLCAqdGhpcyk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3Mv
bWVkaWEvUmVtb3RlUmVtb3RlQ29tbWFuZExpc3RlbmVyUHJveHkuY3BwIGIvU291cmNlL1dlYktp
dC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZVJlbW90ZUNvbW1hbmRMaXN0ZW5lclByb3h5LmNwcApp
bmRleCA4M2Q4N2EwYWYwZTAxYWYzNGM5M2Q4YTgxYmJjMzRlMWUyYjdiNzM1Li45Yzk3NGE0ZTBh
OGQzYmYzYjIzMWJhZTcwM2M5YzI5OGVlNGY3OGYwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlUmVtb3RlQ29tbWFuZExpc3RlbmVyUHJveHkuY3BwCisr
KyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVSZW1vdGVDb21tYW5kTGlz
dGVuZXJQcm94eS5jcHAKQEAgLTM3LDcgKzM3LDcgQEAgbmFtZXNwYWNlIFdlYktpdCB7CiB1c2lu
ZyBuYW1lc3BhY2UgV2ViQ29yZTsKIAogUmVtb3RlUmVtb3RlQ29tbWFuZExpc3RlbmVyUHJveHk6
OlJlbW90ZVJlbW90ZUNvbW1hbmRMaXN0ZW5lclByb3h5KEdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nl
c3MmIGdwdUNvbm5lY3Rpb24sIFJlbW90ZVJlbW90ZUNvbW1hbmRMaXN0ZW5lcklkZW50aWZpZXIm
JiBpZGVudGlmaWVyKQotICAgIDogbV9ncHVDb25uZWN0aW9uKG1ha2VXZWFrUHRyKGdwdUNvbm5l
Y3Rpb24pKQorICAgIDogbV9ncHVDb25uZWN0aW9uKGdwdUNvbm5lY3Rpb24pCiAgICAgLCBtX2lk
ZW50aWZpZXIoV1RGTW92ZShpZGVudGlmaWVyKSkKIHsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVTb3VyY2VCdWZmZXJQcm94eS5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlU291cmNlQnVmZmVyUHJveHkuY3BwCmlu
ZGV4IGQ3ZGRlMGE4ZWNjZmE5OGE5MDhkOWU1ZTJmYWZmMGQ3ZGU2YzY5ZGIuLjI3OTE2NWRlNjZh
YWZlMDI0NjgxZTE2MWEwMzVjNGExMDk1NGU2ZTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
R1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVTb3VyY2VCdWZmZXJQcm94eS5jcHAKKysrIGIvU291cmNl
L1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZVNvdXJjZUJ1ZmZlclByb3h5LmNwcApAQCAt
NTAsMTAgKzUwLDEwIEBAIFJlZjxSZW1vdGVTb3VyY2VCdWZmZXJQcm94eT4gUmVtb3RlU291cmNl
QnVmZmVyUHJveHk6OmNyZWF0ZShHUFVDb25uZWN0aW9uVG9XZWJQCiB9CiAKIFJlbW90ZVNvdXJj
ZUJ1ZmZlclByb3h5OjpSZW1vdGVTb3VyY2VCdWZmZXJQcm94eShHUFVDb25uZWN0aW9uVG9XZWJQ
cm9jZXNzJiBjb25uZWN0aW9uVG9XZWJQcm9jZXNzLCBSZW1vdGVTb3VyY2VCdWZmZXJJZGVudGlm
aWVyIGlkZW50aWZpZXIsIFJlZjxTb3VyY2VCdWZmZXJQcml2YXRlPiYmIHNvdXJjZUJ1ZmZlclBy
aXZhdGUsIFJlbW90ZU1lZGlhUGxheWVyUHJveHkmIHJlbW90ZU1lZGlhUGxheWVyUHJveHkpCi0g
ICAgOiBtX2Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MobWFrZVdlYWtQdHIoY29ubmVjdGlvblRvV2Vi
UHJvY2VzcykpCisgICAgOiBtX2Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MoY29ubmVjdGlvblRvV2Vi
UHJvY2VzcykKICAgICAsIG1faWRlbnRpZmllcihpZGVudGlmaWVyKQogICAgICwgbV9zb3VyY2VC
dWZmZXJQcml2YXRlKFdURk1vdmUoc291cmNlQnVmZmVyUHJpdmF0ZSkpCi0gICAgLCBtX3JlbW90
ZU1lZGlhUGxheWVyUHJveHkobWFrZVdlYWtQdHIocmVtb3RlTWVkaWFQbGF5ZXJQcm94eSkpCisg
ICAgLCBtX3JlbW90ZU1lZGlhUGxheWVyUHJveHkocmVtb3RlTWVkaWFQbGF5ZXJQcm94eSkKIHsK
ICAgICBtX2Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MtPm1lc3NhZ2VSZWNlaXZlck1hcCgpLmFkZE1l
c3NhZ2VSZWNlaXZlcihNZXNzYWdlczo6UmVtb3RlU291cmNlQnVmZmVyUHJveHk6Om1lc3NhZ2VS
ZWNlaXZlck5hbWUoKSwgbV9pZGVudGlmaWVyLnRvVUludDY0KCksICp0aGlzKTsKICAgICBtX3Nv
dXJjZUJ1ZmZlclByaXZhdGUtPnNldENsaWVudCh0aGlzKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVUZXh0VHJhY2tQcm94eS5jcHAgYi9Tb3VyY2Uv
V2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlVGV4dFRyYWNrUHJveHkuY3BwCmluZGV4IDk4
ZDY2MzVlOWE1MDcyNGRmOWU5Yzg3YThiMGI1NDY0ODMzYjk3N2MuLmFjMjEwNzk0Y2Q0ZTMwMTAz
MjVjNmM2YjNjY2ZhODZmYjRlODk1MTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvR1BVUHJv
Y2Vzcy9tZWRpYS9SZW1vdGVUZXh0VHJhY2tQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9H
UFVQcm9jZXNzL21lZGlhL1JlbW90ZVRleHRUcmFja1Byb3h5LmNwcApAQCAtNDQsNyArNDQsNyBA
QCBuYW1lc3BhY2UgV2ViS2l0IHsKIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogCiBSZW1vdGVU
ZXh0VHJhY2tQcm94eTo6UmVtb3RlVGV4dFRyYWNrUHJveHkoR1BVQ29ubmVjdGlvblRvV2ViUHJv
Y2VzcyYgY29ubmVjdGlvblRvV2ViUHJvY2VzcywgVHJhY2tQcml2YXRlUmVtb3RlSWRlbnRpZmll
ciBpZGVudGlmaWVyLCBJbmJhbmRUZXh0VHJhY2tQcml2YXRlJiB0cmFja1ByaXZhdGUsIE1lZGlh
UGxheWVySWRlbnRpZmllciBtZWRpYVBsYXllcklkZW50aWZpZXIpCi0gICAgOiBtX2Nvbm5lY3Rp
b25Ub1dlYlByb2Nlc3MobWFrZVdlYWtQdHIoY29ubmVjdGlvblRvV2ViUHJvY2VzcykpCisgICAg
OiBtX2Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MoY29ubmVjdGlvblRvV2ViUHJvY2VzcykKICAgICAs
IG1faWRlbnRpZmllcihpZGVudGlmaWVyKQogICAgICwgbV90cmFja1ByaXZhdGUodHJhY2tQcml2
YXRlKQogICAgICwgbV9tZWRpYVBsYXllcklkZW50aWZpZXIobWVkaWFQbGF5ZXJJZGVudGlmaWVy
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZVZpZGVv
VHJhY2tQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlVmlk
ZW9UcmFja1Byb3h5LmNwcAppbmRleCA0OWM0N2EzNTUxMzhiMjVhNTliODMxMjdiNWU2OWM2Y2Vi
Mjk3OTQyLi5mZjM3YzRmOTljM2MxOTZhN2U1NmU5ZmRjNzg2NzUxZmJjNzVhYjQ5IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlVmlkZW9UcmFja1Byb3h5
LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlVmlkZW9UcmFj
a1Byb3h5LmNwcApAQCAtNDAsNyArNDAsNyBAQCBuYW1lc3BhY2UgV2ViS2l0IHsKIHVzaW5nIG5h
bWVzcGFjZSBXZWJDb3JlOwogCiBSZW1vdGVWaWRlb1RyYWNrUHJveHk6OlJlbW90ZVZpZGVvVHJh
Y2tQcm94eShHUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzJiBjb25uZWN0aW9uVG9XZWJQcm9jZXNz
LCBUcmFja1ByaXZhdGVSZW1vdGVJZGVudGlmaWVyIGlkZW50aWZpZXIsIFZpZGVvVHJhY2tQcml2
YXRlJiB0cmFja1ByaXZhdGUsIE1lZGlhUGxheWVySWRlbnRpZmllciBtZWRpYVBsYXllcklkZW50
aWZpZXIpCi0gICAgOiBtX2Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MobWFrZVdlYWtQdHIoY29ubmVj
dGlvblRvV2ViUHJvY2VzcykpCisgICAgOiBtX2Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MoY29ubmVj
dGlvblRvV2ViUHJvY2VzcykKICAgICAsIG1faWRlbnRpZmllcihpZGVudGlmaWVyKQogICAgICwg
bV90cmFja1ByaXZhdGUodHJhY2tQcml2YXRlKQogICAgICwgbV9tZWRpYVBsYXllcklkZW50aWZp
ZXIobWVkaWFQbGF5ZXJJZGVudGlmaWVyKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3
b3JrUHJvY2Vzcy9DbGFzc2lmaWVyL1dlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZS5jcHAg
Yi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0NsYXNzaWZpZXIvV2ViUmVzb3VyY2VMb2Fk
U3RhdGlzdGljc1N0b3JlLmNwcAppbmRleCBhZWE0MDkxYTViYjE0YjcxYTU5MTUyZmFhNGY0Nzhm
NWNiZDRjNTE5Li41Mzk5NTQ1NWY3NWYzYzViZjRiZjk2MjM4ZjYzZjNkNzIzNzVmNDFmIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0NsYXNzaWZpZXIvV2ViUmVzb3Vy
Y2VMb2FkU3RhdGlzdGljc1N0b3JlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9j
ZXNzL0NsYXNzaWZpZXIvV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlLmNwcApAQCAtMTUw
LDcgKzE1MCw3IEBAIHN0YXRpYyBSZWY8U3VzcGVuZGFibGVXb3JrUXVldWU+IHNoYXJlZFN0YXRp
c3RpY3NRdWV1ZSgpCiB9CiAKIFdlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZTo6V2ViUmVz
b3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlKE5ldHdvcmtTZXNzaW9uJiBuZXR3b3JrU2Vzc2lvbiwg
Y29uc3QgU3RyaW5nJiByZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGlyZWN0b3J5LCBTaG91bGRJbmNs
dWRlTG9jYWxob3N0IHNob3VsZEluY2x1ZGVMb2NhbGhvc3QsIFJlc291cmNlTG9hZFN0YXRpc3Rp
Y3M6OklzRXBoZW1lcmFsIGlzRXBoZW1lcmFsKQotICAgIDogbV9uZXR3b3JrU2Vzc2lvbihtYWtl
V2Vha1B0cihuZXR3b3JrU2Vzc2lvbikpCisgICAgOiBtX25ldHdvcmtTZXNzaW9uKG5ldHdvcmtT
ZXNzaW9uKQogICAgICwgbV9zdGF0aXN0aWNzUXVldWUoc2hhcmVkU3RhdGlzdGljc1F1ZXVlKCkp
CiAgICAgLCBtX2RhaWx5VGFza3NUaW1lcihSdW5Mb29wOjptYWluKCksIHRoaXMsICZXZWJSZXNv
dXJjZUxvYWRTdGF0aXN0aWNzU3RvcmU6OnBlcmZvcm1EYWlseVRhc2tzKQogICAgICwgbV9pc0Vw
aGVtZXJhbChpc0VwaGVtZXJhbCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1By
b2Nlc3MvRG93bmxvYWRzL2NvY29hL1dLRG93bmxvYWRQcm9ncmVzcy5tbSBiL1NvdXJjZS9XZWJL
aXQvTmV0d29ya1Byb2Nlc3MvRG93bmxvYWRzL2NvY29hL1dLRG93bmxvYWRQcm9ncmVzcy5tbQpp
bmRleCAyZGFhOTM2NWUxNmI1NmMwOWE5MjBjMGE1MGI4MDdjNmMyZTVlNzUxLi41NzAzNWQxMjRl
N2E0OTJmNGFjNDgzNGQwZjQ5YjUzMDU4M2EwZWJhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L05ldHdvcmtQcm9jZXNzL0Rvd25sb2Fkcy9jb2NvYS9XS0Rvd25sb2FkUHJvZ3Jlc3MubW0KKysr
IGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9Eb3dubG9hZHMvY29jb2EvV0tEb3dubG9h
ZFByb2dyZXNzLm1tCkBAIC01Niw3ICs1Niw3IEBAIC0gKGluc3RhbmNldHlwZSlpbml0V2l0aERv
d25sb2FkVGFzazooTlNVUkxTZXNzaW9uRG93bmxvYWRUYXNrICopdGFzayBkb3dubG9hZDooCiAg
ICAgICAgIHJldHVybiBuaWw7CiAKICAgICBtX3Rhc2sgPSB0YXNrOwotICAgIG1fZG93bmxvYWQg
PSBtYWtlV2Vha1B0cihkb3dubG9hZCk7CisgICAgbV9kb3dubG9hZCA9IGRvd25sb2FkOwogCiAg
ICAgW3Rhc2sgYWRkT2JzZXJ2ZXI6c2VsZiBmb3JLZXlQYXRoOmNvdW50T2ZCeXRlc0V4cGVjdGVk
VG9SZWNlaXZlS2V5UGF0aCBvcHRpb25zOk5TS2V5VmFsdWVPYnNlcnZpbmdPcHRpb25OZXcgfCBO
U0tleVZhbHVlT2JzZXJ2aW5nT3B0aW9uSW5pdGlhbCBjb250ZXh0OldLRG93bmxvYWRQcm9ncmVz
c0J5dGVzRXhwZWN0ZWRUb1JlY2VpdmVDb3VudENvbnRleHRdOwogICAgIFt0YXNrIGFkZE9ic2Vy
dmVyOnNlbGYgZm9yS2V5UGF0aDpjb3VudE9mQnl0ZXNSZWNlaXZlZEtleVBhdGggb3B0aW9uczpO
U0tleVZhbHVlT2JzZXJ2aW5nT3B0aW9uTmV3IHwgTlNLZXlWYWx1ZU9ic2VydmluZ09wdGlvbklu
aXRpYWwgY29udGV4dDpXS0Rvd25sb2FkUHJvZ3Jlc3NCeXRlc1JlY2VpdmVkQ29udGV4dF07CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtDT1JTUHJlZmxp
Z2h0Q2hlY2tlci5jcHAgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtDT1JT
UHJlZmxpZ2h0Q2hlY2tlci5jcHAKaW5kZXggMTdiNGY5YTljOGNiOGFjNTBkNWNlYmRlOTVkYTYz
MzY1YmM0MWU5MS4uZjQwNTk2NjRkYzdhMmEwZTMxZjM2NjExMzhmMWEzNmEwYjNmMDg1NSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ09SU1ByZWZsaWdo
dENoZWNrZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0NP
UlNQcmVmbGlnaHRDaGVja2VyLmNwcApAQCAtNDYsNyArNDYsNyBAQCBOZXR3b3JrQ09SU1ByZWZs
aWdodENoZWNrZXI6Ok5ldHdvcmtDT1JTUHJlZmxpZ2h0Q2hlY2tlcihOZXR3b3JrUHJvY2VzcyYg
bmV0d29yawogICAgICwgbV9uZXR3b3JrUHJvY2VzcyhuZXR3b3JrUHJvY2VzcykKICAgICAsIG1f
Y29tcGxldGlvbkNhbGxiYWNrKFdURk1vdmUoY29tcGxldGlvbkNhbGxiYWNrKSkKICAgICAsIG1f
c2hvdWxkQ2FwdHVyZUV4dHJhTmV0d29ya0xvYWRNZXRyaWNzKHNob3VsZENhcHR1cmVFeHRyYU5l
dHdvcmtMb2FkTWV0cmljcykKLSAgICAsIG1fbmV0d29ya1Jlc291cmNlTG9hZGVyKG1ha2VXZWFr
UHRyKG5ldHdvcmtSZXNvdXJjZUxvYWRlcikpCisgICAgLCBtX25ldHdvcmtSZXNvdXJjZUxvYWRl
cihuZXR3b3JrUmVzb3VyY2VMb2FkZXIpCiB7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuY3BwIGIvU291
cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5j
cHAKaW5kZXggN2VmZjJlODk4NTIwNTdhMjc3MzlkNjEyNmFmYTIwNGMzMjllNGIxNC4uNWQ3YjVl
YTE0NjE2OGRmNGQwNDk3YjIxNDFmM2IzZDhkMTMwYjA2NyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5jcHAKKysr
IGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJv
Y2Vzcy5jcHAKQEAgLTExMzksNyArMTEzOSw3IEBAIHZvaWQgTmV0d29ya0Nvbm5lY3Rpb25Ub1dl
YlByb2Nlc3M6OmVzdGFibGlzaFNXU2VydmVyQ29ubmVjdGlvbigpCiAgICAgYXV0byYgc2VydmVy
ID0gbV9uZXR3b3JrUHJvY2Vzcy0+c3dTZXJ2ZXJGb3JTZXNzaW9uKG1fc2Vzc2lvbklEKTsKICAg
ICBhdXRvIGNvbm5lY3Rpb24gPSBtYWtlVW5pcXVlPFdlYlNXU2VydmVyQ29ubmVjdGlvbj4obV9u
ZXR3b3JrUHJvY2Vzcywgc2VydmVyLCBtX2Nvbm5lY3Rpb24uZ2V0KCksIG1fd2ViUHJvY2Vzc0lk
ZW50aWZpZXIpOwogCi0gICAgbV9zd0Nvbm5lY3Rpb24gPSBtYWtlV2Vha1B0cigqY29ubmVjdGlv
bik7CisgICAgbV9zd0Nvbm5lY3Rpb24gPSAqY29ubmVjdGlvbjsKICAgICBzZXJ2ZXIuYWRkQ29u
bmVjdGlvbihXVEZNb3ZlKGNvbm5lY3Rpb24pKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrRGF0YVRhc2suY3BwIGIvU291cmNlL1dlYktpdC9O
ZXR3b3JrUHJvY2Vzcy9OZXR3b3JrRGF0YVRhc2suY3BwCmluZGV4IGRlZTRmODk3NDI4M2I0MDAx
MDk2YzlhZDM5NjY5MzY4Zjc0YzFiYzUuLmQ1MTc4NTczZGNjYTE5ZDVlNjY2ZDRhNGM3MTg4NTgz
YmIxMTdhMjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29y
a0RhdGFUYXNrLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtE
YXRhVGFzay5jcHAKQEAgLTY0LDcgKzY0LDcgQEAgUmVmPE5ldHdvcmtEYXRhVGFzaz4gTmV0d29y
a0RhdGFUYXNrOjpjcmVhdGUoTmV0d29ya1Nlc3Npb24mIHNlc3Npb24sIE5ldHdvcmtEYXQKIH0K
IAogTmV0d29ya0RhdGFUYXNrOjpOZXR3b3JrRGF0YVRhc2soTmV0d29ya1Nlc3Npb24mIHNlc3Np
b24sIE5ldHdvcmtEYXRhVGFza0NsaWVudCYgY2xpZW50LCBjb25zdCBSZXNvdXJjZVJlcXVlc3Qm
IHJlcXVlc3RXaXRoQ3JlZGVudGlhbHMsIFN0b3JlZENyZWRlbnRpYWxzUG9saWN5IHN0b3JlZENy
ZWRlbnRpYWxzUG9saWN5LCBib29sIHNob3VsZENsZWFyUmVmZXJyZXJPbkhUVFBTVG9IVFRQUmVk
aXJlY3QsIGJvb2wgZGF0YVRhc2tJc0Zvck1haW5GcmFtZU5hdmlnYXRpb24pCi0gICAgOiBtX3Nl
c3Npb24obWFrZVdlYWtQdHIoc2Vzc2lvbikpCisgICAgOiBtX3Nlc3Npb24oc2Vzc2lvbikKICAg
ICAsIG1fY2xpZW50KCZjbGllbnQpCiAgICAgLCBtX3BhcnRpdGlvbihyZXF1ZXN0V2l0aENyZWRl
bnRpYWxzLmNhY2hlUGFydGl0aW9uKCkpCiAgICAgLCBtX3N0b3JlZENyZWRlbnRpYWxzUG9saWN5
KHN0b3JlZENyZWRlbnRpYWxzUG9saWN5KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3
b3JrUHJvY2Vzcy9OZXR3b3JrTG9hZC5jcHAgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNz
L05ldHdvcmtMb2FkLmNwcAppbmRleCBhYWY2YjExZDNlZDk5MjczNWE2MjA1OGEwODIwNGNjMGZi
MzkzNTFhLi5hMTg1YmE1NmJiNzI2NDM3MjkyYzJiMWUwZDYyNDlkM2ZhY2FlY2U4IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtMb2FkLmNwcAorKysgYi9T
b3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtMb2FkLmNwcApAQCAtNzYsNyArNzYs
NyBAQCB2b2lkIE5ldHdvcmtMb2FkOjpzdGFydFdpdGhTY2hlZHVsaW5nKCkKIHsKICAgICBpZiAo
IW1fdGFzayB8fCAhbV90YXNrLT5uZXR3b3JrU2Vzc2lvbigpKQogICAgICAgICByZXR1cm47Ci0g
ICAgbV9zY2hlZHVsZXIgPSBtYWtlV2Vha1B0cihtX3Rhc2stPm5ldHdvcmtTZXNzaW9uKCktPm5l
dHdvcmtMb2FkU2NoZWR1bGVyKCkpOworICAgIG1fc2NoZWR1bGVyID0gbV90YXNrLT5uZXR3b3Jr
U2Vzc2lvbigpLT5uZXR3b3JrTG9hZFNjaGVkdWxlcigpOwogICAgIG1fc2NoZWR1bGVyLT5zY2hl
ZHVsZSgqdGhpcyk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nl
c3MvTmV0d29ya0xvYWRDaGVja2VyLmNwcCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mv
TmV0d29ya0xvYWRDaGVja2VyLmNwcAppbmRleCA4YjRjY2E3NjIxMjczMzBjOWVkOTMwZDg3NDA4
NGY1NGQ0NGZiODQ0Li4yNzVlZmI3MzZlYzEzMmQ2NjFiOTUyNDc3YzFhMzc3MThiZGQzYWZmIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtMb2FkQ2hlY2tl
ci5jcHAKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrTG9hZENoZWNr
ZXIuY3BwCkBAIC02Nyw3ICs2Nyw3IEBAIE5ldHdvcmtMb2FkQ2hlY2tlcjo6TmV0d29ya0xvYWRD
aGVja2VyKE5ldHdvcmtQcm9jZXNzJiBuZXR3b3JrUHJvY2VzcywgTmV0d29ya1JlCiAgICAgLCBt
X3Nob3VsZENhcHR1cmVFeHRyYU5ldHdvcmtMb2FkTWV0cmljcyhzaG91bGRDYXB0dXJlRXh0cmFO
ZXR3b3JrTG9hZE1ldHJpY3MpCiAgICAgLCBtX3JlcXVlc3RMb2FkVHlwZShyZXF1ZXN0TG9hZFR5
cGUpCiAgICAgLCBtX3NjaGVtZVJlZ2lzdHJ5KHNjaGVtZVJlZ2lzdHJ5KQotICAgICwgbV9uZXR3
b3JrUmVzb3VyY2VMb2FkZXIobWFrZVdlYWtQdHIobmV0d29ya1Jlc291cmNlTG9hZGVyKSkKKyAg
ICAsIG1fbmV0d29ya1Jlc291cmNlTG9hZGVyKG5ldHdvcmtSZXNvdXJjZUxvYWRlcikKIHsKICAg
ICBtX2lzU2FtZU9yaWdpblJlcXVlc3QgPSBpc1NhbWVPcmlnaW4obV91cmwsIG1fb3JpZ2luLmdl
dCgpKTsKICAgICBzd2l0Y2ggKG9wdGlvbnMuY3JlZGVudGlhbHMpIHsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuY3BwIGIvU291cmNlL1dl
YktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5jcHAKaW5kZXggMWQ1YWNkNTAyMmQy
NjU1NzUwNzJhMDVlZTRmYjFkNzdhYTRlYTE3NC4uZjk1MDYyNjE0ZTk2NDBjM2NkNjI5ZDczOTRj
YmViODU5ODJiNTRjOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9O
ZXR3b3JrUHJvY2Vzcy5jcHAKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3
b3JrUHJvY2Vzcy5jcHAKQEAgLTEzODgsNyArMTM4OCw3IEBAIHZvaWQgTmV0d29ya1Byb2Nlc3M6
OnByZWNvbm5lY3RUbyhQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIFdlYlBhZ2VQcm94eUlkZW50
aWZpCiAgICAgcGFyYW1ldGVycy5zaG91bGRQcmVjb25uZWN0T25seSA9IFByZWNvbm5lY3RPbmx5
OjpZZXM7CiAKICAgICBuZXR3b3JrU2Vzc2lvbi0+bmV0d29ya0xvYWRTY2hlZHVsZXIoKS5zdGFy
dGVkUHJlY29ubmVjdEZvck1haW5SZXNvdXJjZSh1cmwsIHVzZXJBZ2VudCk7Ci0gICAgYXV0byB0
YXNrID0gbmV3IFByZWNvbm5lY3RUYXNrKCpuZXR3b3JrU2Vzc2lvbiwgV1RGTW92ZShwYXJhbWV0
ZXJzKSwgW3dlYWtOZXR3b3JrU2Vzc2lvbiA9IG1ha2VXZWFrUHRyKCpuZXR3b3JrU2Vzc2lvbiks
IHVybCwgdXNlckFnZW50XShjb25zdCBXZWJDb3JlOjpSZXNvdXJjZUVycm9yJiBlcnJvcikgewor
ICAgIGF1dG8gdGFzayA9IG5ldyBQcmVjb25uZWN0VGFzaygqbmV0d29ya1Nlc3Npb24sIFdURk1v
dmUocGFyYW1ldGVycyksIFt3ZWFrTmV0d29ya1Nlc3Npb24gPSBXZWFrUHRyIHsgKm5ldHdvcmtT
ZXNzaW9uIH0sIHVybCwgdXNlckFnZW50XShjb25zdCBXZWJDb3JlOjpSZXNvdXJjZUVycm9yJiBl
cnJvcikgewogICAgICAgICBpZiAod2Vha05ldHdvcmtTZXNzaW9uKQogICAgICAgICAgICAgd2Vh
a05ldHdvcmtTZXNzaW9uLT5uZXR3b3JrTG9hZFNjaGVkdWxlcigpLmZpbmlzaGVkUHJlY29ubmVj
dEZvck1haW5SZXNvdXJjZSh1cmwsIHVzZXJBZ2VudCwgZXJyb3IpOwogICAgIH0pOwpAQCAtMTk0
MCw3ICsxOTQwLDcgQEAgdm9pZCBOZXR3b3JrUHJvY2Vzczo6ZGVsZXRlQW5kUmVzdHJpY3RXZWJz
aXRlRGF0YUZvclJlZ2lzdHJhYmxlRG9tYWlucyhQQUw6OlNlc3MKIAogICAgIGlmICh3ZWJzaXRl
RGF0YVR5cGVzLmNvbnRhaW5zKFdlYnNpdGVEYXRhVHlwZTo6RGlza0NhY2hlKSkgewogICAgICAg
ICBmb3JFYWNoTmV0d29ya1Nlc3Npb24oW3Nlc3Npb25JRCwgZmV0Y2hPcHRpb25zLCAmZG9tYWlu
c1RvRGVsZXRlQWxsTm9uQ29va2llV2Vic2l0ZURhdGFGb3IsICZjYWxsYmFja0FnZ3JlZ2F0b3Jd
KGF1dG8mIHNlc3Npb24pIHsKLSAgICAgICAgICAgIGZldGNoRGlza0NhY2hlRW50cmllcyhzZXNz
aW9uLmNhY2hlKCksIHNlc3Npb25JRCwgZmV0Y2hPcHRpb25zLCBbZG9tYWluc1RvRGVsZXRlQWxs
Tm9uQ29va2llV2Vic2l0ZURhdGFGb3IsIGNhbGxiYWNrQWdncmVnYXRvciwgc2Vzc2lvbiA9IG1h
a2VXZWFrUHRyKCZzZXNzaW9uKV0oYXV0byBlbnRyaWVzKSBtdXRhYmxlIHsKKyAgICAgICAgICAg
IGZldGNoRGlza0NhY2hlRW50cmllcyhzZXNzaW9uLmNhY2hlKCksIHNlc3Npb25JRCwgZmV0Y2hP
cHRpb25zLCBbZG9tYWluc1RvRGVsZXRlQWxsTm9uQ29va2llV2Vic2l0ZURhdGFGb3IsIGNhbGxi
YWNrQWdncmVnYXRvciwgc2Vzc2lvbiA9IFdlYWtQdHIgeyBzZXNzaW9uIH1dKGF1dG8gZW50cmll
cykgbXV0YWJsZSB7CiAgICAgICAgICAgICAgICAgaWYgKCFzZXNzaW9uKQogICAgICAgICAgICAg
ICAgICAgICByZXR1cm47CiAKQEAgLTI2MTUsNyArMjYxNSw3IEBAIHZvaWQgTmV0d29ya1Byb2Nl
c3M6OnNpbXVsYXRlUmVzb3VyY2VMb2FkU3RhdGlzdGljc1Nlc3Npb25SZXN0YXJ0KFBBTDo6U2Vz
c2lvbklECiB7CiAgICAgLy8gRklYTUU6IFJlbmFtZSB0aGlzIHRvIHNpbXVsYXRlUHJpdmF0ZUNs
aWNrTWVhc3VyZW1lbnRTZXNzaW9uUmVzdGFydC4KICAgICBpZiAoYXV0byogc2Vzc2lvbiA9IG5l
dHdvcmtTZXNzaW9uKHNlc3Npb25JRCkpIHsKLSAgICAgICAgc2Vzc2lvbi0+cmVjcmVhdGVQcml2
YXRlQ2xpY2tNZWFzdXJlbWVudFN0b3JlKFtzZXNzaW9uID0gbWFrZVdlYWtQdHIoKnNlc3Npb24p
LCBjb21wbGV0aW9uSGFuZGxlciA9IFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpXSAoKSBtdXRh
YmxlIHsKKyAgICAgICAgc2Vzc2lvbi0+cmVjcmVhdGVQcml2YXRlQ2xpY2tNZWFzdXJlbWVudFN0
b3JlKFtzZXNzaW9uID0gV2Vha1B0ciB7ICpzZXNzaW9uIH0sIGNvbXBsZXRpb25IYW5kbGVyID0g
V1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcildICgpIG11dGFibGUgewogICAgICAgICAgICAgaWYg
KHNlc3Npb24pCiAgICAgICAgICAgICAgICAgc2Vzc2lvbi0+ZmlyZVByaXZhdGVDbGlja01lYXN1
cmVtZW50VGltZXJJbW1lZGlhdGVseUZvclRlc3RpbmcoKTsKICAgICAgICAgICAgIGNvbXBsZXRp
b25IYW5kbGVyKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05l
dHdvcmtSZXNvdXJjZUxvYWRlci5jcHAgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05l
dHdvcmtSZXNvdXJjZUxvYWRlci5jcHAKaW5kZXggZGFjMTg0MDVjYmNmNWY2Y2ZkZjAzNjM0YjQ0
NjhmMmZiYjE4ZDk0MC4uMGVmODFjZWRiNjdjMTk3MjAwZDI3MGNhNjk1ZDNkYThkZmFjNmIwYSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUmVzb3VyY2VM
b2FkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Jlc291
cmNlTG9hZGVyLmNwcApAQCAtODUwLDcgKzg1MCw3IEBAIHZvaWQgTmV0d29ya1Jlc291cmNlTG9h
ZGVyOjpzZW5kRGlkUmVjZWl2ZVJlc3BvbnNlUG90ZW50aWFsbHlJbk5ld0Jyb3dzaW5nQ29udGV4
CiAgICAgYXV0byBleGlzdGluZ05ldHdvcmtSZXNvdXJjZUxvYWRJZGVudGlmaWVyVG9SZXN1bWUg
PSBsb2FkZXItPmlkZW50aWZpZXIoKTsKICAgICBtX2Nvbm5lY3Rpb24tPm5ldHdvcmtTZXNzaW9u
KCktPmFkZExvYWRlckF3YWl0aW5nV2ViUHJvY2Vzc1RyYW5zZmVyKGxvYWRlci5yZWxlYXNlTm9u
TnVsbCgpKTsKICAgICBSZWdpc3RyYWJsZURvbWFpbiByZXNwb25zZURvbWFpbiB7IHJlc3BvbnNl
LnVybCgpIH07Ci0gICAgbV9jb25uZWN0aW9uLT5uZXR3b3JrUHJvY2VzcygpLnBhcmVudFByb2Nl
c3NDb25uZWN0aW9uKCktPnNlbmRXaXRoQXN5bmNSZXBseShNZXNzYWdlczo6TmV0d29ya1Byb2Nl
c3NQcm94eTo6VHJpZ2dlckJyb3dzaW5nQ29udGV4dEdyb3VwU3dpdGNoRm9yTmF2aWdhdGlvbiht
X3BhcmFtZXRlcnMud2ViUGFnZVByb3h5SUQsIG1fcGFyYW1ldGVycy5uYXZpZ2F0aW9uSUQsIGJy
b3dzaW5nQ29udGV4dEdyb3VwU3dpdGNoRGVjaXNpb24sIHJlc3BvbnNlRG9tYWluLCBleGlzdGlu
Z05ldHdvcmtSZXNvdXJjZUxvYWRJZGVudGlmaWVyVG9SZXN1bWUpLCBbZXhpc3RpbmdOZXR3b3Jr
UmVzb3VyY2VMb2FkSWRlbnRpZmllclRvUmVzdW1lLCBzZXNzaW9uID0gbWFrZVdlYWtQdHIoY29u
bmVjdGlvblRvV2ViUHJvY2VzcygpLm5ldHdvcmtTZXNzaW9uKCkpXShib29sIHN1Y2Nlc3MpIHsK
KyAgICBtX2Nvbm5lY3Rpb24tPm5ldHdvcmtQcm9jZXNzKCkucGFyZW50UHJvY2Vzc0Nvbm5lY3Rp
b24oKS0+c2VuZFdpdGhBc3luY1JlcGx5KE1lc3NhZ2VzOjpOZXR3b3JrUHJvY2Vzc1Byb3h5OjpU
cmlnZ2VyQnJvd3NpbmdDb250ZXh0R3JvdXBTd2l0Y2hGb3JOYXZpZ2F0aW9uKG1fcGFyYW1ldGVy
cy53ZWJQYWdlUHJveHlJRCwgbV9wYXJhbWV0ZXJzLm5hdmlnYXRpb25JRCwgYnJvd3NpbmdDb250
ZXh0R3JvdXBTd2l0Y2hEZWNpc2lvbiwgcmVzcG9uc2VEb21haW4sIGV4aXN0aW5nTmV0d29ya1Jl
c291cmNlTG9hZElkZW50aWZpZXJUb1Jlc3VtZSksIFtleGlzdGluZ05ldHdvcmtSZXNvdXJjZUxv
YWRJZGVudGlmaWVyVG9SZXN1bWUsIHNlc3Npb24gPSBXZWFrUHRyIHsgY29ubmVjdGlvblRvV2Vi
UHJvY2VzcygpLm5ldHdvcmtTZXNzaW9uKCkgfV0oYm9vbCBzdWNjZXNzKSB7CiAgICAgICAgIGlm
IChzdWNjZXNzKQogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICBpZiAoc2Vzc2lvbikKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1NvY2tldENoYW5u
ZWwuY3BwIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrU29ja2V0Q2hhbm5l
bC5jcHAKaW5kZXggNzcxMTJmNzhiMmI4ZTQ0ZDJjZDAyNjg1ZjJjOWVhYWYyODhkMTUxYy4uZTg3
MTUyNDAzM2Q4NmNhNjlhYWFhNjBjZDczYTI0YjEzNmJjZjA2NiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrU29ja2V0Q2hhbm5lbC5jcHAKKysrIGIvU291
cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrU29ja2V0Q2hhbm5lbC5jcHAKQEAgLTQ5
LDcgKzQ5LDcgQEAgc3RkOjp1bmlxdWVfcHRyPE5ldHdvcmtTb2NrZXRDaGFubmVsPiBOZXR3b3Jr
U29ja2V0Q2hhbm5lbDo6Y3JlYXRlKE5ldHdvcmtDb25uZWMKIE5ldHdvcmtTb2NrZXRDaGFubmVs
OjpOZXR3b3JrU29ja2V0Q2hhbm5lbChOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2VzcyYgY29u
bmVjdGlvbiwgTmV0d29ya1Nlc3Npb24qIHNlc3Npb24sIGNvbnN0IFJlc291cmNlUmVxdWVzdCYg
cmVxdWVzdCwgY29uc3QgU3RyaW5nJiBwcm90b2NvbCwgV2ViU29ja2V0SWRlbnRpZmllciBpZGVu
dGlmaWVyLCBXZWJQYWdlUHJveHlJZGVudGlmaWVyIHdlYlBhZ2VQcm94eUlEKQogICAgIDogbV9j
b25uZWN0aW9uVG9XZWJQcm9jZXNzKGNvbm5lY3Rpb24pCiAgICAgLCBtX2lkZW50aWZpZXIoaWRl
bnRpZmllcikKLSAgICAsIG1fc2Vzc2lvbihtYWtlV2Vha1B0cihzZXNzaW9uKSkKKyAgICAsIG1f
c2Vzc2lvbihzZXNzaW9uKQogICAgICwgbV9lcnJvclRpbWVyKCp0aGlzLCAmTmV0d29ya1NvY2tl
dENoYW5uZWw6OnNlbmREZWxheWVkRXJyb3IpCiAgICAgLCBtX3dlYlBhZ2VQcm94eUlEKHdlYlBh
Z2VQcm94eUlEKQogewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9O
ZXR3b3JrU3RvcmFnZVNlc3Npb25Qcm92aWRlci5oIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJv
Y2Vzcy9OZXR3b3JrU3RvcmFnZVNlc3Npb25Qcm92aWRlci5oCmluZGV4IGNiMzIxOTg4ZWM4NDFj
YmE5MmFjY2FlMTNjZmM0MzkyMTM0NzljY2YuLjI3ZTAxZGY1YzFjMDRjZGUwOTM0OGIyNDhmZGYx
ODFhYTJlMmRkYzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0
d29ya1N0b3JhZ2VTZXNzaW9uUHJvdmlkZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQ
cm9jZXNzL05ldHdvcmtTdG9yYWdlU2Vzc2lvblByb3ZpZGVyLmgKQEAgLTM5LDcgKzM5LDcgQEAg
cHVibGljOgogICAgIAogcHJpdmF0ZToKICAgICBOZXR3b3JrU3RvcmFnZVNlc3Npb25Qcm92aWRl
cihOZXR3b3JrUHJvY2VzcyYgbmV0d29ya1Byb2Nlc3MsIFBBTDo6U2Vzc2lvbklEIHNlc3Npb25J
RCkKLSAgICAgICAgOiBtX25ldHdvcmtQcm9jZXNzKG1ha2VXZWFrUHRyKG5ldHdvcmtQcm9jZXNz
KSkKKyAgICAgICAgOiBtX25ldHdvcmtQcm9jZXNzKG5ldHdvcmtQcm9jZXNzKQogICAgICAgICAs
IG1fc2Vzc2lvbklEKHNlc3Npb25JRCkgeyB9CiAKICAgICBXZWJDb3JlOjpOZXR3b3JrU3RvcmFn
ZVNlc3Npb24qIHN0b3JhZ2VTZXNzaW9uKCkgY29uc3QgZmluYWwKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvUHJpdmF0ZUNs
aWNrTWVhc3VyZW1lbnRDbGllbnRJbXBsLmNwcCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nl
c3MvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRDbGllbnRJ
bXBsLmNwcAppbmRleCA1NzZlNGY1OTQ5ODczZmVmNjM2NjZkY2JhMjRlOWI5OTdkOWUyMDdmLi5h
OTg3YzY1ZTFiYTEwNGIwYWYyMmJlOWQ0NmVjNzgyOWVkOGY0NWZkIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1ByaXZhdGVDbGlja01lYXN1cmVtZW50L1ByaXZhdGVD
bGlja01lYXN1cmVtZW50Q2xpZW50SW1wbC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3Jr
UHJvY2Vzcy9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudENs
aWVudEltcGwuY3BwCkBAIC0zNCw3ICszNCw3IEBAIG5hbWVzcGFjZSBXZWJLaXQgewogbmFtZXNw
YWNlIFBDTSB7CiAKIENsaWVudEltcGw6OkNsaWVudEltcGwoTmV0d29ya1Nlc3Npb24mIHNlc3Np
b24sIE5ldHdvcmtQcm9jZXNzJiBuZXR3b3JrUHJvY2VzcykKLSAgICA6IG1fbmV0d29ya1Nlc3Np
b24obWFrZVdlYWtQdHIoc2Vzc2lvbikpCisgICAgOiBtX25ldHdvcmtTZXNzaW9uKHNlc3Npb24p
CiAgICAgLCBtX25ldHdvcmtQcm9jZXNzKG5ldHdvcmtQcm9jZXNzKSB7IH0KIAogdm9pZCBDbGll
bnRJbXBsOjpicm9hZGNhc3RDb25zb2xlTWVzc2FnZShKU0M6Ok1lc3NhZ2VMZXZlbCBtZXNzYWdl
TGV2ZWwsIGNvbnN0IFN0cmluZyYgbWVzc2FnZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
TmV0d29ya1Byb2Nlc3MvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvUHJpdmF0ZUNsaWNrTWVhc3Vy
ZW1lbnRDb25uZWN0aW9uLmNwcCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvUHJpdmF0
ZUNsaWNrTWVhc3VyZW1lbnQvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRDb25uZWN0aW9uLmNwcApp
bmRleCBhNmU1ZjNlZjhmMTY4NmIwNDEwNmI0ZWU1MTNiMWRiZTA4OTJmMzc1Li5kMGQ4YTgxZjlm
M2MzNWM0MDU1MDQxNGM0NDY4ZjY4MTRiMjM1NzNhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L05ldHdvcmtQcm9jZXNzL1ByaXZhdGVDbGlja01lYXN1cmVtZW50L1ByaXZhdGVDbGlja01lYXN1
cmVtZW50Q29ubmVjdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9Q
cml2YXRlQ2xpY2tNZWFzdXJlbWVudC9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudENvbm5lY3Rpb24u
Y3BwCkBAIC0zNSw3ICszNSw4IEBAIG5hbWVzcGFjZSBQQ00gewogCiBDb25uZWN0aW9uVG9NYWNo
U2VydmljZTo6Q29ubmVjdGlvblRvTWFjaFNlcnZpY2UoQ1N0cmluZyYmIG1hY2hTZXJ2aWNlTmFt
ZSwgTmV0d29ya1Nlc3Npb24mIG5ldHdvcmtTZXNzaW9uKQogICAgIDogbV9tYWNoU2VydmljZU5h
bWUoV1RGTW92ZShtYWNoU2VydmljZU5hbWUpKQotICAgICwgbV9uZXR3b3JrU2Vzc2lvbihtYWtl
V2Vha1B0cihuZXR3b3JrU2Vzc2lvbikpIHsgfQorICAgICwgbV9uZXR3b3JrU2Vzc2lvbihuZXR3
b3JrU2Vzc2lvbikKK3sgfQogCiAjaWYgIVBMQVRGT1JNKENPQ09BKQogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1ByaXZhdGVDbGlja01lYXN1cmVtZW50L2NvY29h
L1ByaXZhdGVDbGlja01lYXN1cmVtZW50Q29ubmVjdGlvbkNvY29hLm1tIGIvU291cmNlL1dlYktp
dC9OZXR3b3JrUHJvY2Vzcy9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9jb2NvYS9Qcml2YXRlQ2xp
Y2tNZWFzdXJlbWVudENvbm5lY3Rpb25Db2NvYS5tbQppbmRleCA3MzU1YmYyMDMwMTA1M2FmMTNh
ZDkyMGM4ODdlOWYzMDdiYmE1ZGI4Li5lOGFmNDkxMmU0OTA2NmViNTgzYWIwZTBjMTRmMGEzYzll
MDZkODdmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1ByaXZhdGVD
bGlja01lYXN1cmVtZW50L2NvY29hL1ByaXZhdGVDbGlja01lYXN1cmVtZW50Q29ubmVjdGlvbkNv
Y29hLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvUHJpdmF0ZUNsaWNrTWVh
c3VyZW1lbnQvY29jb2EvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRDb25uZWN0aW9uQ29jb2EubW0K
QEAgLTM5LDcgKzM5LDcgQEAgdm9pZCBDb25uZWN0aW9uVG9NYWNoU2VydmljZTo6aW5pdGlhbGl6
ZUNvbm5lY3Rpb25JZk5lZWRlZCgpIGNvbnN0CiAgICAgaWYgKG1fY29ubmVjdGlvbikKICAgICAg
ICAgcmV0dXJuOwogICAgIG1fY29ubmVjdGlvbiA9IGFkb3B0TlMoeHBjX2Nvbm5lY3Rpb25fY3Jl
YXRlX21hY2hfc2VydmljZShtX21hY2hTZXJ2aWNlTmFtZS5kYXRhKCksIGRpc3BhdGNoX2dldF9t
YWluX3F1ZXVlKCksIDApKTsKLSAgICB4cGNfY29ubmVjdGlvbl9zZXRfZXZlbnRfaGFuZGxlciht
X2Nvbm5lY3Rpb24uZ2V0KCksIFt3ZWFrVGhpcyA9IG1ha2VXZWFrUHRyKCp0aGlzKV0oeHBjX29i
amVjdF90IGV2ZW50KSB7CisgICAgeHBjX2Nvbm5lY3Rpb25fc2V0X2V2ZW50X2hhbmRsZXIobV9j
b25uZWN0aW9uLmdldCgpLCBbd2Vha1RoaXMgPSBXZWFrUHRyIHsgKnRoaXMgfV0oeHBjX29iamVj
dF90IGV2ZW50KSB7CiAgICAgICAgIGlmICghd2Vha1RoaXMpCiAgICAgICAgICAgICByZXR1cm47
CiAgICAgICAgIGlmIChldmVudCA9PSBYUENfRVJST1JfQ09OTkVDVElPTl9JTlZBTElEKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1NlcnZp
Y2VXb3JrZXJGZXRjaFRhc2suY3BwIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9TZXJ2
aWNlV29ya2VyL1NlcnZpY2VXb3JrZXJGZXRjaFRhc2suY3BwCmluZGV4IDgyNTdlYzgxNGZmMjkw
YTY1YzY0MjVjMjJhNTcyZGFlMzE1ZTU1MTAuLmUyYmY1OGQ3MTI2NGNiODdjZjEyMzk5ZTI1N2U4
NTA5OTU2Yzk5YzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvU2Vy
dmljZVdvcmtlci9TZXJ2aWNlV29ya2VyRmV0Y2hUYXNrLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0
L05ldHdvcmtQcm9jZXNzL1NlcnZpY2VXb3JrZXIvU2VydmljZVdvcmtlckZldGNoVGFzay5jcHAK
QEAgLTUwLDcgKzUwLDcgQEAgbmFtZXNwYWNlIFdlYktpdCB7CiB1c2luZyBuYW1lc3BhY2UgV2Vi
Q29yZTsKIAogU2VydmljZVdvcmtlckZldGNoVGFzazo6U2VydmljZVdvcmtlckZldGNoVGFzayhX
ZWJTV1NlcnZlckNvbm5lY3Rpb24mIHN3U2VydmVyQ29ubmVjdGlvbiwgTmV0d29ya1Jlc291cmNl
TG9hZGVyJiBsb2FkZXIsIFJlc291cmNlUmVxdWVzdCYmIHJlcXVlc3QsIFNXU2VydmVyQ29ubmVj
dGlvbklkZW50aWZpZXIgc2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIsIFNlcnZpY2VXb3JrZXJJ
ZGVudGlmaWVyIHNlcnZpY2VXb3JrZXJJZGVudGlmaWVyLCBTZXJ2aWNlV29ya2VyUmVnaXN0cmF0
aW9uSWRlbnRpZmllciBzZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uSWRlbnRpZmllciwgYm9vbCBz
aG91bGRTb2Z0VXBkYXRlKQotICAgIDogbV9zd1NlcnZlckNvbm5lY3Rpb24obWFrZVdlYWtQdHIo
c3dTZXJ2ZXJDb25uZWN0aW9uKSkKKyAgICA6IG1fc3dTZXJ2ZXJDb25uZWN0aW9uKHN3U2VydmVy
Q29ubmVjdGlvbikKICAgICAsIG1fbG9hZGVyKGxvYWRlcikKICAgICAsIG1fZmV0Y2hJZGVudGlm
aWVyKFdlYkNvcmU6OkZldGNoSWRlbnRpZmllcjo6Z2VuZXJhdGUoKSkKICAgICAsIG1fc2VydmVy
Q29ubmVjdGlvbklkZW50aWZpZXIoc2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIpCkBAIC04NCw3
ICs4NCw3IEBAIHRlbXBsYXRlPHR5cGVuYW1lIE1lc3NhZ2U+IGJvb2wgU2VydmljZVdvcmtlckZl
dGNoVGFzazo6c2VuZFRvQ2xpZW50KE1lc3NhZ2UmJiBtCiB2b2lkIFNlcnZpY2VXb3JrZXJGZXRj
aFRhc2s6OnN0YXJ0KFdlYlNXU2VydmVyVG9Db250ZXh0Q29ubmVjdGlvbiYgc2VydmljZVdvcmtl
ckNvbm5lY3Rpb24pCiB7CiAgICAgU1dGRVRDSF9SRUxFQVNFX0xPRygic3RhcnQ6Iik7Ci0gICAg
bV9zZXJ2aWNlV29ya2VyQ29ubmVjdGlvbiA9IG1ha2VXZWFrUHRyKHNlcnZpY2VXb3JrZXJDb25u
ZWN0aW9uKTsKKyAgICBtX3NlcnZpY2VXb3JrZXJDb25uZWN0aW9uID0gc2VydmljZVdvcmtlckNv
bm5lY3Rpb247CiAgICAgc2VydmljZVdvcmtlckNvbm5lY3Rpb24ucmVnaXN0ZXJGZXRjaCgqdGhp
cyk7CiAKICAgICBzdGFydEZldGNoKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdv
cmtQcm9jZXNzL1NlcnZpY2VXb3JrZXIvU2VydmljZVdvcmtlclNvZnRVcGRhdGVMb2FkZXIuY3Bw
IGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1NlcnZpY2VXb3Jr
ZXJTb2Z0VXBkYXRlTG9hZGVyLmNwcAppbmRleCA5NTI5ODkwNGRjMjcxODE0YzY5NmRiOTk3MmNk
ZWYwNTU3NzM5MmVhLi44ZWUxMTJhOWRmODI4OTU0YzE2MjNmZmYyMmMyYTIwZmQ4ZTJmZTdkIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1NlcnZpY2VXb3JrZXIvU2Vy
dmljZVdvcmtlclNvZnRVcGRhdGVMb2FkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29y
a1Byb2Nlc3MvU2VydmljZVdvcmtlci9TZXJ2aWNlV29ya2VyU29mdFVwZGF0ZUxvYWRlci5jcHAK
QEAgLTUyLDcgKzUyLDcgQEAgdm9pZCBTZXJ2aWNlV29ya2VyU29mdFVwZGF0ZUxvYWRlcjo6c3Rh
cnQoTmV0d29ya1Nlc3Npb24qIHNlc3Npb24sIFNlcnZpY2VXb3JrZXIKIFNlcnZpY2VXb3JrZXJT
b2Z0VXBkYXRlTG9hZGVyOjpTZXJ2aWNlV29ya2VyU29mdFVwZGF0ZUxvYWRlcihOZXR3b3JrU2Vz
c2lvbiYgc2Vzc2lvbiwgU2VydmljZVdvcmtlckpvYkRhdGEmJiBqb2JEYXRhLCBib29sIHNob3Vs
ZFJlZnJlc2hDYWNoZSwgUmVzb3VyY2VSZXF1ZXN0JiYgcmVxdWVzdCwgSGFuZGxlciYmIGNvbXBs
ZXRpb25IYW5kbGVyKQogICAgIDogbV9jb21wbGV0aW9uSGFuZGxlcihXVEZNb3ZlKGNvbXBsZXRp
b25IYW5kbGVyKSkKICAgICAsIG1fam9iRGF0YShXVEZNb3ZlKGpvYkRhdGEpKQotICAgICwgbV9z
ZXNzaW9uKG1ha2VXZWFrUHRyKHNlc3Npb24pKQorICAgICwgbV9zZXNzaW9uKHNlc3Npb24pCiB7
CiAgICAgQVNTRVJUKCFyZXF1ZXN0LmlzQ29uZGl0aW9uYWwoKSk7CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvU2VydmljZVdvcmtlci9XZWJTV1NlcnZlclRvQ29u
dGV4dENvbm5lY3Rpb24uY3BwIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9TZXJ2aWNl
V29ya2VyL1dlYlNXU2VydmVyVG9Db250ZXh0Q29ubmVjdGlvbi5jcHAKaW5kZXggM2NhMDk2Yzdj
NGI3NzkzMTg0MTBhM2IxYTNiNzI2MzEzNjY5MWIyMy4uODVlZWRjNmU5NjMyYzZkMjYwZWNhMWIy
MjBhOWM1M2E4ODhjMWUyYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vz
cy9TZXJ2aWNlV29ya2VyL1dlYlNXU2VydmVyVG9Db250ZXh0Q29ubmVjdGlvbi5jcHAKKysrIGIv
U291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1dlYlNXU2VydmVyVG9D
b250ZXh0Q29ubmVjdGlvbi5jcHAKQEAgLTQ3LDcgKzQ3LDcgQEAgdXNpbmcgbmFtZXNwYWNlIFdl
YkNvcmU7CiBXZWJTV1NlcnZlclRvQ29udGV4dENvbm5lY3Rpb246OldlYlNXU2VydmVyVG9Db250
ZXh0Q29ubmVjdGlvbihOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2VzcyYgY29ubmVjdGlvbiwg
V2ViUGFnZVByb3h5SWRlbnRpZmllciB3ZWJQYWdlUHJveHlJRCwgUmVnaXN0cmFibGVEb21haW4m
JiByZWdpc3RyYWJsZURvbWFpbiwgc3RkOjpvcHRpb25hbDxTZXJ2aWNlV29ya2VyQ2xpZW50SWRl
bnRpZmllcj4gc2VydmljZVdvcmtlclBhZ2VJZGVudGlmaWVyLCBTV1NlcnZlciYgc2VydmVyKQog
ICAgIDogU1dTZXJ2ZXJUb0NvbnRleHRDb25uZWN0aW9uKFdURk1vdmUocmVnaXN0cmFibGVEb21h
aW4pLCBzZXJ2aWNlV29ya2VyUGFnZUlkZW50aWZpZXIpCiAgICAgLCBtX2Nvbm5lY3Rpb24oY29u
bmVjdGlvbikKLSAgICAsIG1fc2VydmVyKG1ha2VXZWFrUHRyKHNlcnZlcikpCisgICAgLCBtX3Nl
cnZlcihzZXJ2ZXIpCiAgICAgLCBtX3dlYlBhZ2VQcm94eUlEKHdlYlBhZ2VQcm94eUlEKQogewog
ICAgIHNlcnZlci5hZGRDb250ZXh0Q29ubmVjdGlvbigqdGhpcyk7CkBAIC0xODgsNyArMTg4LDcg
QEAgdm9pZCBXZWJTV1NlcnZlclRvQ29udGV4dENvbm5lY3Rpb246OmRpZFJlY2VpdmVGZXRjaFRh
c2tNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYKIHZvaWQgV2ViU1dTZXJ2ZXJUb0NvbnRleHRDb25u
ZWN0aW9uOjpyZWdpc3RlckZldGNoKFNlcnZpY2VXb3JrZXJGZXRjaFRhc2smIHRhc2spCiB7CiAg
ICAgQVNTRVJUKCFtX29uZ29pbmdGZXRjaGVzLmNvbnRhaW5zKHRhc2suZmV0Y2hJZGVudGlmaWVy
KCkpKTsKLSAgICBtX29uZ29pbmdGZXRjaGVzLmFkZCh0YXNrLmZldGNoSWRlbnRpZmllcigpLCBt
YWtlV2Vha1B0cih0YXNrKSk7CisgICAgbV9vbmdvaW5nRmV0Y2hlcy5hZGQodGFzay5mZXRjaElk
ZW50aWZpZXIoKSwgdGFzayk7CiB9CiAKIHZvaWQgV2ViU1dTZXJ2ZXJUb0NvbnRleHRDb25uZWN0
aW9uOjp1bnJlZ2lzdGVyRmV0Y2goU2VydmljZVdvcmtlckZldGNoVGFzayYgdGFzaykKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvV2ViU3RvcmFnZS9TdG9yYWdlQXJl
YS5jcHAgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1dlYlN0b3JhZ2UvU3RvcmFnZUFy
ZWEuY3BwCmluZGV4IGRkOTFlNzhhNWIxNjA5MTUxZWFiMTFlNjQwNmRmNjU5ZDFiZDUwMTAuLmM4
NGVhZDQzMGFiMTVkOTRmZDhlZjI1MzNkNmU0OTI4NzJiNmUxMmIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvV2ViU3RvcmFnZS9TdG9yYWdlQXJlYS5jcHAKKysrIGIv
U291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9XZWJTdG9yYWdlL1N0b3JhZ2VBcmVhLmNwcApA
QCAtMzcsNyArMzcsNyBAQCBuYW1lc3BhY2UgV2ViS2l0IHsKIHVzaW5nIG5hbWVzcGFjZSBXZWJD
b3JlOwogCiBTdG9yYWdlQXJlYTo6U3RvcmFnZUFyZWEoTG9jYWxTdG9yYWdlTmFtZXNwYWNlKiBs
b2NhbFN0b3JhZ2VOYW1lc3BhY2UsIGNvbnN0IFNlY3VyaXR5T3JpZ2luRGF0YSYgc2VjdXJpdHlP
cmlnaW4sIHVuc2lnbmVkIHF1b3RhSW5CeXRlcywgUmVmPFN1c3BlbmRhYmxlV29ya1F1ZXVlPiYm
IHF1ZXVlKQotICAgIDogbV9sb2NhbFN0b3JhZ2VOYW1lc3BhY2UobWFrZVdlYWtQdHIobG9jYWxT
dG9yYWdlTmFtZXNwYWNlKSkKKyAgICA6IG1fbG9jYWxTdG9yYWdlTmFtZXNwYWNlKGxvY2FsU3Rv
cmFnZU5hbWVzcGFjZSkKICAgICAsIG1fc2VjdXJpdHlPcmlnaW4oc2VjdXJpdHlPcmlnaW4pCiAg
ICAgLCBtX3F1b3RhSW5CeXRlcyhxdW90YUluQnl0ZXMpCiAgICAgLCBtX2lkZW50aWZpZXIoSWRl
bnRpZmllcjo6Z2VuZXJhdGUoKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1By
b2Nlc3MvV2ViU3RvcmFnZS9TdG9yYWdlTWFuYWdlclNldC5jcHAgYi9Tb3VyY2UvV2ViS2l0L05l
dHdvcmtQcm9jZXNzL1dlYlN0b3JhZ2UvU3RvcmFnZU1hbmFnZXJTZXQuY3BwCmluZGV4IDA4ZjYx
YWJkN2FhYjU4ZGNmNGRjMzFmMzYxMGRiMWQ3ZGVlYWI0MTEuLjZmZDcwM2E1ZTViMmQwMTQzNTk4
NWVhYjNhZWRjMWUwZDFhOTNiMTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1By
b2Nlc3MvV2ViU3RvcmFnZS9TdG9yYWdlTWFuYWdlclNldC5jcHAKKysrIGIvU291cmNlL1dlYktp
dC9OZXR3b3JrUHJvY2Vzcy9XZWJTdG9yYWdlL1N0b3JhZ2VNYW5hZ2VyU2V0LmNwcApAQCAtMzE1
LDcgKzMxNSw3IEBAIHZvaWQgU3RvcmFnZU1hbmFnZXJTZXQ6OmNvbm5lY3RUb0xvY2FsU3RvcmFn
ZUFyZWEoSVBDOjpDb25uZWN0aW9uJiBjb25uZWN0aW9uLCBQCiAgICAgfQogCiAgICAgYXV0byBz
dG9yYWdlQXJlYUlEID0gc3RvcmFnZUFyZWEtPmlkZW50aWZpZXIoKTsKLSAgICBhdXRvIGl0ZXIg
PSBtX3N0b3JhZ2VBcmVhcy5hZGQoc3RvcmFnZUFyZWFJRCwgbWFrZVdlYWtQdHIoc3RvcmFnZUFy
ZWEpKS5pdGVyYXRvcjsKKyAgICBhdXRvIGl0ZXIgPSBtX3N0b3JhZ2VBcmVhcy5hZGQoc3RvcmFn
ZUFyZWFJRCwgc3RvcmFnZUFyZWEpLml0ZXJhdG9yOwogICAgIEFTU0VSVF9VTlVTRUQoaXRlciwg
c3RvcmFnZUFyZWEgPT0gaXRlci0+dmFsdWUuZ2V0KCkpOwogCiAgICAgY29tcGxldGlvbkhhbmRs
ZXIoc3RvcmFnZUFyZWFJRCk7CkBAIC0zNDAsNyArMzQwLDcgQEAgdm9pZCBTdG9yYWdlTWFuYWdl
clNldDo6Y29ubmVjdFRvVHJhbnNpZW50TG9jYWxTdG9yYWdlQXJlYShJUEM6OkNvbm5lY3Rpb24m
IGNvbm4KICAgICB9CiAKICAgICBhdXRvIHN0b3JhZ2VBcmVhSUQgPSBzdG9yYWdlQXJlYS0+aWRl
bnRpZmllcigpOwotICAgIGF1dG8gaXRlciA9IG1fc3RvcmFnZUFyZWFzLmFkZChzdG9yYWdlQXJl
YUlELCBtYWtlV2Vha1B0cihzdG9yYWdlQXJlYSkpLml0ZXJhdG9yOworICAgIGF1dG8gaXRlciA9
IG1fc3RvcmFnZUFyZWFzLmFkZChzdG9yYWdlQXJlYUlELCBzdG9yYWdlQXJlYSkuaXRlcmF0b3I7
CiAgICAgQVNTRVJUX1VOVVNFRChpdGVyLCBzdG9yYWdlQXJlYSA9PSBpdGVyLT52YWx1ZS5nZXQo
KSk7CiAKICAgICBjb21wbGV0aW9uSGFuZGxlcihzdG9yYWdlQXJlYUlEKTsKQEAgLTM2NSw3ICsz
NjUsNyBAQCB2b2lkIFN0b3JhZ2VNYW5hZ2VyU2V0Ojpjb25uZWN0VG9TZXNzaW9uU3RvcmFnZUFy
ZWEoSVBDOjpDb25uZWN0aW9uJiBjb25uZWN0aW9uLAogICAgIH0KIAogICAgIGF1dG8gc3RvcmFn
ZUFyZWFJRCA9IHN0b3JhZ2VBcmVhLT5pZGVudGlmaWVyKCk7Ci0gICAgYXV0byBpdGVyID0gbV9z
dG9yYWdlQXJlYXMuYWRkKHN0b3JhZ2VBcmVhSUQsIG1ha2VXZWFrUHRyKHN0b3JhZ2VBcmVhKSku
aXRlcmF0b3I7CisgICAgYXV0byBpdGVyID0gbV9zdG9yYWdlQXJlYXMuYWRkKHN0b3JhZ2VBcmVh
SUQsIHN0b3JhZ2VBcmVhKS5pdGVyYXRvcjsKICAgICBBU1NFUlRfVU5VU0VEKGl0ZXIsIHN0b3Jh
Z2VBcmVhID09IGl0ZXItPnZhbHVlLmdldCgpKTsKIAogICAgIGNvbXBsZXRpb25IYW5kbGVyKHN0
b3JhZ2VBcmVhSUQpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9j
YWNoZS9DYWNoZVN0b3JhZ2VFbmdpbmUuY3BwIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vz
cy9jYWNoZS9DYWNoZVN0b3JhZ2VFbmdpbmUuY3BwCmluZGV4IGJmMTk3NGZjNTcwNDExZGVjMDU3
ZWE0MTQ3MDJlMGNjMDUxZjYzMzAuLmYzMjcyMTVmZTU4N2ExOGMxZGI4YzRjZWNkNThiMDVkNjM1
NTQ4MTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY2FjaGUvQ2Fj
aGVTdG9yYWdlRW5naW5lLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2Nh
Y2hlL0NhY2hlU3RvcmFnZUVuZ2luZS5jcHAKQEAgLTI2MCw3ICsyNjAsNyBAQCB2b2lkIEVuZ2lu
ZTo6cmVxdWVzdFNwYWNlKGNvbnN0IFdlYkNvcmU6OkNsaWVudE9yaWdpbiYgb3JpZ2luLCB1aW50
NjRfdCBzcGFjZVJlcQogCiBFbmdpbmU6OkVuZ2luZShQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQs
IE5ldHdvcmtQcm9jZXNzJiBwcm9jZXNzLCBTdHJpbmcmJiByb290UGF0aCkKICAgICA6IG1fc2Vz
c2lvbklEKHNlc3Npb25JRCkKLSAgICAsIG1fbmV0d29ya1Byb2Nlc3MobWFrZVdlYWtQdHIocHJv
Y2VzcykpCisgICAgLCBtX25ldHdvcmtQcm9jZXNzKHByb2Nlc3MpCiAgICAgLCBtX3Jvb3RQYXRo
KFdURk1vdmUocm9vdFBhdGgpKQogewogICAgIGlmICghbV9yb290UGF0aC5pc051bGwoKSkKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY29jb2EvTmV0d29ya0RhdGFU
YXNrQ29jb2EubW0gYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NvY29hL05ldHdvcmtE
YXRhVGFza0NvY29hLm1tCmluZGV4IDE5ZDRlYjQ1YjUyMzg2MTY1MGM2ZWQ4NzA4M2Q2OTZiN2Y1
ZjdhZGEuLmI5MGNmMDA3ZWE5OTc0NjQyMDhiZTVhZmQyNzVlNjJkY2U4MzdkNDcgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY29jb2EvTmV0d29ya0RhdGFUYXNrQ29j
b2EubW0KKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jb2NvYS9OZXR3b3JrRGF0
YVRhc2tDb2NvYS5tbQpAQCAtMjkzLDcgKzI5Myw3IEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBjb21w
dXRlSXNBbHdheXNPbkxvZ2dpbmdBbGxvd2VkKE5ldHdvcmtTZXNzaW9uJiBzZXNzaW9uKQogCiBO
ZXR3b3JrRGF0YVRhc2tDb2NvYTo6TmV0d29ya0RhdGFUYXNrQ29jb2EoTmV0d29ya1Nlc3Npb24m
IHNlc3Npb24sIE5ldHdvcmtEYXRhVGFza0NsaWVudCYgY2xpZW50LCBjb25zdCBOZXR3b3JrTG9h
ZFBhcmFtZXRlcnMmIHBhcmFtZXRlcnMpCiAgICAgOiBOZXR3b3JrRGF0YVRhc2soc2Vzc2lvbiwg
Y2xpZW50LCBwYXJhbWV0ZXJzLnJlcXVlc3QsIHBhcmFtZXRlcnMuc3RvcmVkQ3JlZGVudGlhbHNQ
b2xpY3ksIHBhcmFtZXRlcnMuc2hvdWxkQ2xlYXJSZWZlcnJlck9uSFRUUFNUb0hUVFBSZWRpcmVj
dCwgcGFyYW1ldGVycy5pc01haW5GcmFtZU5hdmlnYXRpb24pCi0gICAgLCBtX3Nlc3Npb25XcmFw
cGVyKG1ha2VXZWFrUHRyKHN0YXRpY19jYXN0PE5ldHdvcmtTZXNzaW9uQ29jb2EmPihzZXNzaW9u
KS5zZXNzaW9uV3JhcHBlckZvclRhc2socGFyYW1ldGVycy53ZWJQYWdlUHJveHlJRCwgcGFyYW1l
dGVycy5yZXF1ZXN0LCBwYXJhbWV0ZXJzLnN0b3JlZENyZWRlbnRpYWxzUG9saWN5LCBwYXJhbWV0
ZXJzLmlzTmF2aWdhdGluZ1RvQXBwQm91bmREb21haW4pKSkKKyAgICAsIG1fc2Vzc2lvbldyYXBw
ZXIoc3RhdGljX2Nhc3Q8TmV0d29ya1Nlc3Npb25Db2NvYSY+KHNlc3Npb24pLnNlc3Npb25XcmFw
cGVyRm9yVGFzayhwYXJhbWV0ZXJzLndlYlBhZ2VQcm94eUlELCBwYXJhbWV0ZXJzLnJlcXVlc3Qs
IHBhcmFtZXRlcnMuc3RvcmVkQ3JlZGVudGlhbHNQb2xpY3ksIHBhcmFtZXRlcnMuaXNOYXZpZ2F0
aW5nVG9BcHBCb3VuZERvbWFpbikpCiAgICAgLCBtX2ZyYW1lSUQocGFyYW1ldGVycy53ZWJGcmFt
ZUlEKQogICAgICwgbV9wYWdlSUQocGFyYW1ldGVycy53ZWJQYWdlSUQpCiAgICAgLCBtX3dlYlBh
Z2VQcm94eUlEKHBhcmFtZXRlcnMud2ViUGFnZVByb3h5SUQpCkBAIC01NzgsNyArNTc4LDcgQEAg
dm9pZCBOZXR3b3JrRGF0YVRhc2tDb2NvYTo6c3dhcFNlc3Npb25JZk5lY2Vzc2FyeShXZWJDb3Jl
OjpSZXNvdXJjZVJlcXVlc3QmIHJlcXUKICAgICBhdXRvIHByZXZpb3VzVGFzayA9IHN0ZDo6ZXhj
aGFuZ2UobV90YXNrLCBudWxscHRyKTsKIAogICAgIG1fc2Vzc2lvbldyYXBwZXItPmRhdGFUYXNr
TWFwLnJlbW92ZShbcHJldmlvdXNUYXNrIHRhc2tJZGVudGlmaWVyXSk7Ci0gICAgbV9zZXNzaW9u
V3JhcHBlciA9IG1ha2VXZWFrUHRyKHVwZGF0ZWRTZXNzaW9uKTsKKyAgICBtX3Nlc3Npb25XcmFw
cGVyID0gdXBkYXRlZFNlc3Npb247CiAKICAgICBtX3Rhc2sgPSBbbV9zZXNzaW9uV3JhcHBlci0+
c2Vzc2lvbiBkYXRhVGFza1dpdGhSZXF1ZXN0OnJlcXVlc3QubnNVUkxSZXF1ZXN0KFdlYkNvcmU6
OkhUVFBCb2R5VXBkYXRlUG9saWN5OjpVcGRhdGVIVFRQQm9keSldOwogICAgIG1fc2Vzc2lvbldy
YXBwZXItPmRhdGFUYXNrTWFwLmFkZChbbV90YXNrIHRhc2tJZGVudGlmaWVyXSwgdGhpcyk7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NvY29hL05ldHdvcmtTZXNz
aW9uQ29jb2EubW0gYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NvY29hL05ldHdvcmtT
ZXNzaW9uQ29jb2EubW0KaW5kZXggY2I2N2NjNjI2MjZlOGM5NDFkMjVjNjdiM2MxM2EyMjE1NTM2
MGIyNi4uNGU5YTUzMTk1ZjFjYWZjMTAxZjc3NWVkZjA1NTcyNjVmMmFhMGQ5ZiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jb2NvYS9OZXR3b3JrU2Vzc2lvbkNvY29h
Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY29jb2EvTmV0d29ya1Nlc3Np
b25Db2NvYS5tbQpAQCAtNDYwLDggKzQ2MCw4IEBAIC0gKGlkKWluaXRXaXRoTmV0d29ya1Nlc3Np
b246KE5ha2VkUmVmPFdlYktpdDo6TmV0d29ya1Nlc3Npb25Db2NvYT4pc2Vzc2lvbiB3cmFwCiAg
ICAgaWYgKCFzZWxmKQogICAgICAgICByZXR1cm4gbmlsOwogCi0gICAgX3Nlc3Npb24gPSBtYWtl
V2Vha1B0cihzZXNzaW9uLmdldCgpKTsKLSAgICBfc2Vzc2lvbldyYXBwZXIgPSBtYWtlV2Vha1B0
cihzZXNzaW9uV3JhcHBlcik7CisgICAgX3Nlc3Npb24gPSBzZXNzaW9uLmdldCgpOworICAgIF9z
ZXNzaW9uV3JhcHBlciA9IHNlc3Npb25XcmFwcGVyOwogICAgIF93aXRoQ3JlZGVudGlhbHMgPSB3
aXRoQ3JlZGVudGlhbHM7CiAKICAgICByZXR1cm4gc2VsZjsKQEAgLTc0Niw3ICs3NDYsNyBAQCBB
TExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19FTkQKICAgICAgICAgICAgICAgICBOU1VSTFBy
b3RlY3Rpb25TcGFjZSAqcHJvdGVjdGlvblNwYWNlID0gY2hhbGxlbmdlLnByb3RlY3Rpb25TcGFj
ZTsKICAgICAgICAgICAgICAgICBuZXR3b3JrRGF0YVRhc2stPmRpZE5lZ290aWF0ZU1vZGVyblRM
UyhVUkwoVVJMKCksIG1ha2VTdHJpbmcoU3RyaW5nKHByb3RlY3Rpb25TcGFjZS5wcm90b2NvbCks
ICI6Ly8iLCBTdHJpbmcocHJvdGVjdGlvblNwYWNlLmhvc3QpLCAnOicsIHByb3RlY3Rpb25TcGFj
ZS5wb3J0KSkpOwogICAgICAgICAgICAgfQotICAgICAgICAgICAgYXV0byBkZWNpc2lvbkhhbmRs
ZXIgPSBtYWtlQmxvY2tQdHIoW3dlYWtTZWxmID0gV2Vha09iakNQdHI8V0tOZXR3b3JrU2Vzc2lv
bkRlbGVnYXRlPihzZWxmKSwgc2Vzc2lvbkNvY29hID0gbWFrZVdlYWtQdHIoc2Vzc2lvbkNvY29h
KSwgY29tcGxldGlvbkhhbmRsZXIgPSBtYWtlQmxvY2tQdHIoY29tcGxldGlvbkhhbmRsZXIpLCB0
YXNrSWRlbnRpZmllciwgbmV0d29ya0RhdGFUYXNrID0gUmVmUHRyIHsgbmV0d29ya0RhdGFUYXNr
IH0sIG5lZ290aWF0ZWRMZWdhY3lUTFNdKE5TVVJMQXV0aGVudGljYXRpb25DaGFsbGVuZ2UgKmNo
YWxsZW5nZSwgT1NTdGF0dXMgdHJ1c3RSZXN1bHQpIG11dGFibGUgeworICAgICAgICAgICAgYXV0
byBkZWNpc2lvbkhhbmRsZXIgPSBtYWtlQmxvY2tQdHIoW3dlYWtTZWxmID0gV2Vha09iakNQdHI8
V0tOZXR3b3JrU2Vzc2lvbkRlbGVnYXRlPihzZWxmKSwgc2Vzc2lvbkNvY29hID0gV2Vha1B0ciB7
IHNlc3Npb25Db2NvYSB9LCBjb21wbGV0aW9uSGFuZGxlciA9IG1ha2VCbG9ja1B0cihjb21wbGV0
aW9uSGFuZGxlciksIHRhc2tJZGVudGlmaWVyLCBuZXR3b3JrRGF0YVRhc2sgPSBSZWZQdHIgeyBu
ZXR3b3JrRGF0YVRhc2sgfSwgbmVnb3RpYXRlZExlZ2FjeVRMU10oTlNVUkxBdXRoZW50aWNhdGlv
bkNoYWxsZW5nZSAqY2hhbGxlbmdlLCBPU1N0YXR1cyB0cnVzdFJlc3VsdCkgbXV0YWJsZSB7CiAg
ICAgICAgICAgICAgICAgYXV0byBzdHJvbmdTZWxmID0gd2Vha1NlbGYuZ2V0KCk7CiAgICAgICAg
ICAgICAgICAgaWYgKCFzdHJvbmdTZWxmKQogICAgICAgICAgICAgICAgICAgICByZXR1cm4gY29t
cGxldGlvbkhhbmRsZXIoTlNVUkxTZXNzaW9uQXV0aENoYWxsZW5nZUNhbmNlbEF1dGhlbnRpY2F0
aW9uQ2hhbGxlbmdlLCBuaWwpOwpAQCAtMTY5NSw3ICsxNjk1LDcgQEAgc3RkOjp1bmlxdWVfcHRy
PFdlYlNvY2tldFRhc2s+IE5ldHdvcmtTZXNzaW9uQ29jb2E6OmNyZWF0ZVdlYlNvY2tldFRhc2so
V2ViUGFnZVAKICAgICAvLyBBbHRob3VnaCB0aGUgV2ViU29ja2V0IHByb3RvY29sIGFsbG93cyBm
dWxsIDY0LWJpdCBsZW5ndGhzLCBDaHJvbWUgYW5kIEZpcmVmb3ggbGltaXQgdGhlIGxlbmd0aCB0
byAyXjYzIC0gMQogICAgIHRhc2suZ2V0KCkubWF4aW11bU1lc3NhZ2VTaXplID0gMHg3RkZGRkZG
RkZGRkZGRkZGdWxsOwogCi0gICAgcmV0dXJuIG1ha2VVbmlxdWU8V2ViU29ja2V0VGFzaz4oY2hh
bm5lbCwgd2ViUGFnZVByb3h5SUQsIG1ha2VXZWFrUHRyKHNlc3Npb25TZXQpLCByZXF1ZXN0LCBX
VEZNb3ZlKHRhc2spKTsKKyAgICByZXR1cm4gbWFrZVVuaXF1ZTxXZWJTb2NrZXRUYXNrPihjaGFu
bmVsLCB3ZWJQYWdlUHJveHlJRCwgc2Vzc2lvblNldCwgcmVxdWVzdCwgV1RGTW92ZSh0YXNrKSk7
CiB9CiAKIHZvaWQgTmV0d29ya1Nlc3Npb25Db2NvYTo6YWRkV2ViU29ja2V0VGFzayhXZWJQYWdl
UHJveHlJZGVudGlmaWVyIHdlYlBhZ2VQcm94eUlELCBXZWJTb2NrZXRUYXNrJiB0YXNrKQpAQCAt
MTcyOCw3ICsxNzI4LDcgQEAgdm9pZCBOZXR3b3JrU2Vzc2lvbkNvY29hOjphZGRXZWJQYWdlTmV0
d29ya1BhcmFtZXRlcnMoV2ViUGFnZVByb3h5SWRlbnRpZmllciBwYWcKICAgICAgICAgY29uZmln
dXJhdGlvbi5nZXQoKS5fYXR0cmlidXRlZEJ1bmRsZUlkZW50aWZpZXIgPSBwYXJhbWV0ZXJzLmF0
dHJpYnV0ZWRCdW5kbGVJZGVudGlmaWVyKCk7CiAjZW5kaWYKICAgICBpbml0aWFsaXplTlNVUkxT
ZXNzaW9uc0luU2V0KGFkZFJlc3VsdDIuaXRlcmF0b3ItPnZhbHVlLmdldCgpLCBjb25maWd1cmF0
aW9uLmdldCgpKTsKLSAgICBhZGRSZXN1bHQxLml0ZXJhdG9yLT52YWx1ZSA9IG1ha2VXZWFrUHRy
KGFkZFJlc3VsdDIuaXRlcmF0b3ItPnZhbHVlLmdldCgpKTsKKyAgICBhZGRSZXN1bHQxLml0ZXJh
dG9yLT52YWx1ZSA9IGFkZFJlc3VsdDIuaXRlcmF0b3ItPnZhbHVlLmdldCgpOwogCiAgICAgbV9h
dHRyaWJ1dGVkQnVuZGxlSWRlbnRpZmllckZyb21QYWdlSWRlbnRpZmllcnMuYWRkKHBhZ2VJRCwg
cGFyYW1ldGVycy5hdHRyaWJ1dGVkQnVuZGxlSWRlbnRpZmllcigpKTsKIH0KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvc3RvcmFnZS9GaWxlU3lzdGVtU3RvcmFnZUhh
bmRsZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3N0b3JhZ2UvRmlsZVN5c3Rl
bVN0b3JhZ2VIYW5kbGUuY3BwCmluZGV4IDA4ZjYwY2MxMmRlOTE0OTRjMmMwN2MwM2Y3YTcwMWY3
MjM2MTQxMmQuLmZiNmMyYmJhOWMxMWJmMTE1Yzg4ZjMxYmNkMWE3YjdjZmU2NmQ3OWEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvc3RvcmFnZS9GaWxlU3lzdGVtU3Rv
cmFnZUhhbmRsZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9zdG9yYWdl
L0ZpbGVTeXN0ZW1TdG9yYWdlSGFuZGxlLmNwcApAQCAtNDEsNyArNDEsNyBAQCBjb25zdGV4cHIg
Y2hhciBwYXRoU2VwYXJhdG9yID0gJy8nOwogCiBGaWxlU3lzdGVtU3RvcmFnZUhhbmRsZTo6Rmls
ZVN5c3RlbVN0b3JhZ2VIYW5kbGUoRmlsZVN5c3RlbVN0b3JhZ2VNYW5hZ2VyJiBtYW5hZ2VyLCBU
eXBlIHR5cGUsIFN0cmluZyYmIHBhdGgsIFN0cmluZyYmIG5hbWUpCiAgICAgOiBtX2lkZW50aWZp
ZXIoV2ViQ29yZTo6RmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXI6OmdlbmVyYXRlVGhyZWFkU2Fm
ZSgpKQotICAgICwgbV9tYW5hZ2VyKG1ha2VXZWFrUHRyKG1hbmFnZXIpKQorICAgICwgbV9tYW5h
Z2VyKG1hbmFnZXIpCiAgICAgLCBtX3R5cGUodHlwZSkKICAgICAsIG1fcGF0aChXVEZNb3ZlKHBh
dGgpKQogICAgICwgbV9uYW1lKFdURk1vdmUobmFtZSkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L05ldHdvcmtQcm9jZXNzL3N0b3JhZ2UvRmlsZVN5c3RlbVN0b3JhZ2VIYW5kbGVSZWdpc3Ry
eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3N0b3JhZ2UvRmlsZVN5c3RlbVN0
b3JhZ2VIYW5kbGVSZWdpc3RyeS5jcHAKaW5kZXggYjg0Y2Y2Y2M4YjExNDlmYjZhZjgwZDFmZDcx
MjZkODQ4YWI2MjgwYS4uNDQzMjVjMDRiMDhhMDExZWVjZGYwMWUyOTEzNGJiYmNmM2FlZjRkMyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9zdG9yYWdlL0ZpbGVTeXN0
ZW1TdG9yYWdlSGFuZGxlUmVnaXN0cnkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1By
b2Nlc3Mvc3RvcmFnZS9GaWxlU3lzdGVtU3RvcmFnZUhhbmRsZVJlZ2lzdHJ5LmNwcApAQCAtMzYs
NyArMzYsNyBAQCB2b2lkIEZpbGVTeXN0ZW1TdG9yYWdlSGFuZGxlUmVnaXN0cnk6OnJlZ2lzdGVy
SGFuZGxlKFdlYkNvcmU6OkZpbGVTeXN0ZW1IYW5kbGVJZAogewogICAgIEFTU0VSVCghbV9oYW5k
bGVzLmNvbnRhaW5zKGlkZW50aWZpZXIpKTsKIAotICAgIG1faGFuZGxlcy5hZGQoaWRlbnRpZmll
ciwgbWFrZVdlYWtQdHIoaGFuZGxlKSk7CisgICAgbV9oYW5kbGVzLmFkZChpZGVudGlmaWVyLCBo
YW5kbGUpOwogfQogCiB2b2lkIEZpbGVTeXN0ZW1TdG9yYWdlSGFuZGxlUmVnaXN0cnk6OnVucmVn
aXN0ZXJIYW5kbGUoV2ViQ29yZTo6RmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIgaWRlbnRpZmll
cikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm0vSVBDL0Nvbm5lY3Rpb24uY3Bw
IGIvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9JUEMvQ29ubmVjdGlvbi5jcHAKaW5kZXggZDZlYTlj
OGNhNTNjOWQ1ODAyYzYwYjZkM2RkNDMyYTE4NWM5YmRhOS4uZmNhMmI1NGQwZjNiZjkzMDk5N2Fl
MDk4OTczNGZkNWVhZmZkNTcyNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9J
UEMvQ29ubmVjdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9JUEMvQ29ubmVj
dGlvbi5jcHAKQEAgLTg1Miw3ICs4NTIsNyBAQCB2b2lkIENvbm5lY3Rpb246OmVuYWJsZUluY29t
aW5nTWVzc2FnZXNUaHJvdHRsaW5nKCkKICNpZiBFTkFCTEUoSVBDX1RFU1RJTkdfQVBJKQogdm9p
ZCBDb25uZWN0aW9uOjphZGRNZXNzYWdlT2JzZXJ2ZXIoY29uc3QgTWVzc2FnZU9ic2VydmVyJiBv
YnNlcnZlcikKIHsKLSAgICBtX21lc3NhZ2VPYnNlcnZlcnMuYXBwZW5kKG1ha2VXZWFrUHRyKG9i
c2VydmVyKSk7CisgICAgbV9tZXNzYWdlT2JzZXJ2ZXJzLmFwcGVuZChvYnNlcnZlcik7CiB9CiAj
ZW5kaWYKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9JUEMvTWVzc2FnZVJl
Y2VpdmVyTWFwLmNwcCBiL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm0vSVBDL01lc3NhZ2VSZWNlaXZl
ck1hcC5jcHAKaW5kZXggZDg4MGU5MGM1YmM1Mjc1NjAzODUxMTRmNjk3MTI3MmE5ZGZhZmU1Ny4u
M2ViNDEyYTIyMWJhZjA4NTk2NjQ4ZGI3YTcwYzBmNDBkMGIxNGViZiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9QbGF0Zm9ybS9JUEMvTWVzc2FnZVJlY2VpdmVyTWFwLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1BsYXRmb3JtL0lQQy9NZXNzYWdlUmVjZWl2ZXJNYXAuY3BwCkBAIC00NCw3ICs0
NCw3IEBAIHZvaWQgTWVzc2FnZVJlY2VpdmVyTWFwOjphZGRNZXNzYWdlUmVjZWl2ZXIoUmVjZWl2
ZXJOYW1lIG1lc3NhZ2VSZWNlaXZlck5hbWUsIE1lCiAgICAgQVNTRVJUKCFtX2dsb2JhbE1lc3Nh
Z2VSZWNlaXZlcnMuY29udGFpbnMobWVzc2FnZVJlY2VpdmVyTmFtZSkpOwogCiAgICAgbWVzc2Fn
ZVJlY2VpdmVyLndpbGxCZUFkZGVkVG9NZXNzYWdlUmVjZWl2ZXJNYXAoKTsKLSAgICBtX2dsb2Jh
bE1lc3NhZ2VSZWNlaXZlcnMuc2V0KG1lc3NhZ2VSZWNlaXZlck5hbWUsIG1ha2VXZWFrUHRyKG1l
c3NhZ2VSZWNlaXZlcikpOworICAgIG1fZ2xvYmFsTWVzc2FnZVJlY2VpdmVycy5zZXQobWVzc2Fn
ZVJlY2VpdmVyTmFtZSwgbWVzc2FnZVJlY2VpdmVyKTsKIH0KIAogdm9pZCBNZXNzYWdlUmVjZWl2
ZXJNYXA6OmFkZE1lc3NhZ2VSZWNlaXZlcihSZWNlaXZlck5hbWUgbWVzc2FnZVJlY2VpdmVyTmFt
ZSwgdWludDY0X3QgZGVzdGluYXRpb25JRCwgTWVzc2FnZVJlY2VpdmVyJiBtZXNzYWdlUmVjZWl2
ZXIpCkBAIC01NCw3ICs1NCw3IEBAIHZvaWQgTWVzc2FnZVJlY2VpdmVyTWFwOjphZGRNZXNzYWdl
UmVjZWl2ZXIoUmVjZWl2ZXJOYW1lIG1lc3NhZ2VSZWNlaXZlck5hbWUsIHVpCiAgICAgQVNTRVJU
KCFtX2dsb2JhbE1lc3NhZ2VSZWNlaXZlcnMuY29udGFpbnMobWVzc2FnZVJlY2VpdmVyTmFtZSkp
OwogCiAgICAgbWVzc2FnZVJlY2VpdmVyLndpbGxCZUFkZGVkVG9NZXNzYWdlUmVjZWl2ZXJNYXAo
KTsKLSAgICBtX21lc3NhZ2VSZWNlaXZlcnMuc2V0KHN0ZDo6bWFrZV9wYWlyKG1lc3NhZ2VSZWNl
aXZlck5hbWUsIGRlc3RpbmF0aW9uSUQpLCBtYWtlV2Vha1B0cihtZXNzYWdlUmVjZWl2ZXIpKTsK
KyAgICBtX21lc3NhZ2VSZWNlaXZlcnMuc2V0KHN0ZDo6bWFrZV9wYWlyKG1lc3NhZ2VSZWNlaXZl
ck5hbWUsIGRlc3RpbmF0aW9uSUQpLCBtZXNzYWdlUmVjZWl2ZXIpOwogfQogCiB2b2lkIE1lc3Nh
Z2VSZWNlaXZlck1hcDo6cmVtb3ZlTWVzc2FnZVJlY2VpdmVyKFJlY2VpdmVyTmFtZSBtZXNzYWdl
UmVjZWl2ZXJOYW1lKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9jb2NvYS9X
S1BheW1lbnRBdXRob3JpemF0aW9uRGVsZWdhdGUubW0gYi9Tb3VyY2UvV2ViS2l0L1BsYXRmb3Jt
L2NvY29hL1dLUGF5bWVudEF1dGhvcml6YXRpb25EZWxlZ2F0ZS5tbQppbmRleCBhOTViZjQzNDg0
YWY3NDBhNDg5ZjAwYmY3MzRhMDIxMTQxOGE1YzAzLi40YzcxMzA4YWU0ZDY0ZGE2YWU5ZGRlYmQ3
MmZjZGExY2M2OGE1MmFiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtL2NvY29h
L1dLUGF5bWVudEF1dGhvcml6YXRpb25EZWxlZ2F0ZS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1Bs
YXRmb3JtL2NvY29hL1dLUGF5bWVudEF1dGhvcml6YXRpb25EZWxlZ2F0ZS5tbQpAQCAtMTE2LDcg
KzExNiw3IEBAIC0gKGluc3RhbmNldHlwZSlfaW5pdFdpdGhSZXF1ZXN0OihQS1BheW1lbnRSZXF1
ZXN0ICopcmVxdWVzdCBwcmVzZW50ZXI6KFdlYktpdDo6CiAgICAgaWYgKCEoc2VsZiA9IFtzdXBl
ciBpbml0XSkpCiAgICAgICAgIHJldHVybiBuaWw7CiAKLSAgICBfcHJlc2VudGVyID0gbWFrZVdl
YWtQdHIocHJlc2VudGVyKTsKKyAgICBfcHJlc2VudGVyID0gcHJlc2VudGVyOwogICAgIF9yZXF1
ZXN0ID0gcmVxdWVzdDsKICAgICBfc2hpcHBpbmdNZXRob2RzID0gcmVxdWVzdC5zaGlwcGluZ01l
dGhvZHM7CiAgICAgX3N1bW1hcnlJdGVtcyA9IHJlcXVlc3QucGF5bWVudFN1bW1hcnlJdGVtczsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0FwcGxlUGF5L1dlYlBheW1lbnRDb29y
ZGluYXRvclByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0FwcGxlUGF5L1dlYlBheW1l
bnRDb29yZGluYXRvclByb3h5LmNwcAppbmRleCA0NWI5YjVhMzNkNDFmZjgzOTZiZjAxMWEzYmUw
OWU0ZjM0NjNmMmFhLi4xNDM5OWFlZjczYjQ4NGM2YmM5ZGYxOGE1MGZlNDc0MjFhZDhkYjMyIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9BcHBsZVBheS9XZWJQYXltZW50Q29vcmRp
bmF0b3JQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvQXBwbGVQYXkvV2ViUGF5
bWVudENvb3JkaW5hdG9yUHJveHkuY3BwCkBAIC04Miw3ICs4Miw3IEBAIHZvaWQgV2ViUGF5bWVu
dENvb3JkaW5hdG9yUHJveHk6OnNob3dQYXltZW50VUkoV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIg
ZGVzdGluYXRpCiB7CiAgICAgaWYgKGF1dG8mIGNvb3JkaW5hdG9yID0gYWN0aXZlUGF5bWVudENv
b3JkaW5hdG9yUHJveHkoKSkKICAgICAgICAgY29vcmRpbmF0b3ItPmRpZFJlYWNoRmluYWxTdGF0
ZSgpOwotICAgIGFjdGl2ZVBheW1lbnRDb29yZGluYXRvclByb3h5KCkgPSBtYWtlV2Vha1B0cih0
aGlzKTsKKyAgICBhY3RpdmVQYXltZW50Q29vcmRpbmF0b3JQcm94eSgpID0gKnRoaXM7CiAKICAg
ICBNRVNTQUdFX0NIRUNLKGNhbkJlZ2luKCkpOwogICAgIE1FU1NBR0VfQ0hFQ0soIW1fZGVzdGlu
YXRpb25JRCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJTUUxpdGVEYXRh
YmFzZVRyYWNrZXIuaCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlNRTGl0ZURhdGFiYXNlVHJh
Y2tlci5oCmluZGV4IGIwNWIwZDE5ZWVkMGZiYTg1YjRjMjk1MzRmOWNiNDczMTBlN2MwOWIuLjU2
NDJlYjA4OGE4MzIwYTM4ZjM2N2Y4YzU4MzAxZDYwYzY4NzBhOWQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvU2hhcmVkL1dlYlNRTGl0ZURhdGFiYXNlVHJhY2tlci5oCisrKyBiL1NvdXJjZS9X
ZWJLaXQvU2hhcmVkL1dlYlNRTGl0ZURhdGFiYXNlVHJhY2tlci5oCkBAIC0zNCw3ICszNCw3IEBA
CiAKIG5hbWVzcGFjZSBXZWJLaXQgewogCi0vLyBVc2UgZWFnZXIgaW5pdGlhbGl6YXRpb24gZm9y
IHRoZSBXZWFrUHRyRmFjdG9yeSBzaW5jZSB3ZSBjYWxsIG1ha2VXZWFrUHRyKCkgZnJvbSBhIG5v
bi1tYWluIHRocmVhZC4KKy8vIFVzZSBlYWdlciBpbml0aWFsaXphdGlvbiBmb3IgdGhlIFdlYWtQ
dHJGYWN0b3J5IHNpbmNlIHdlIGNvbnN0cnVjdCBXZWFrUHRycyBmcm9tIGEgbm9uLW1haW4gdGhy
ZWFkLgogY2xhc3MgV2ViU1FMaXRlRGF0YWJhc2VUcmFja2VyIGZpbmFsIDogcHVibGljIFdlYkNv
cmU6OlNRTGl0ZURhdGFiYXNlVHJhY2tlckNsaWVudCwgcHVibGljIENhbk1ha2VXZWFrUHRyPFdl
YlNRTGl0ZURhdGFiYXNlVHJhY2tlciwgV2Vha1B0ckZhY3RvcnlJbml0aWFsaXphdGlvbjo6RWFn
ZXI+IHsKICAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShXZWJTUUxpdGVEYXRhYmFzZVRyYWNrZXIp
CiBwdWJsaWM6CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9YUi9YUkRldmljZVBy
b3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1hSL1hSRGV2aWNlUHJveHkuY3BwCmluZGV4
IGZhMTNkZGNhZGNjZmEzNjQyYmE1MDYxOGQzYjE3ZWEyOGY1ZmQyMzAuLjMyZWM2ODgwNjEzZGVl
YzE1YWNlYmFlYWYxZjM2NTc0ZjVkMzhhMGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hh
cmVkL1hSL1hSRGV2aWNlUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1hSL1hS
RGV2aWNlUHJveHkuY3BwCkBAIC00MSw3ICs0MSw3IEBAIFJlZjxYUkRldmljZVByb3h5PiBYUkRl
dmljZVByb3h5OjpjcmVhdGUoWFJEZXZpY2VJbmZvJiYgZGV2aWNlSW5mbywgUGxhdGZvcm1YUlN5
CiB9CiAKIFhSRGV2aWNlUHJveHk6OlhSRGV2aWNlUHJveHkoWFJEZXZpY2VJbmZvJiYgZGV2aWNl
SW5mbywgUGxhdGZvcm1YUlN5c3RlbVByb3h5JiB4clN5c3RlbSkKLSAgICA6IG1feHJTeXN0ZW0o
bWFrZVdlYWtQdHIoeHJTeXN0ZW0pKQorICAgIDogbV94clN5c3RlbSh4clN5c3RlbSkKIHsKICAg
ICBtX2lkZW50aWZpZXIgPSBkZXZpY2VJbmZvLmlkZW50aWZpZXI7CiAgICAgbV9zdXBwb3J0c1N0
ZXJlb1JlbmRlcmluZyA9IGRldmljZUluZm8uc3VwcG9ydHNTdGVyZW9SZW5kZXJpbmc7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9tYWMvU2VjSXRlbVNoaW0uY3BwIGIvU291cmNl
L1dlYktpdC9TaGFyZWQvbWFjL1NlY0l0ZW1TaGltLmNwcAppbmRleCA1MTllZGMyZGQ5MGJjZThl
ZGVmYTFjMGU4ZDliNTA4NzZmZGM5YThhLi5mOTk5ODQ4NzVmNzZhYWZhN2U1MWNjZWMxNWFlMjRh
ODY1YzkwOGRhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9tYWMvU2VjSXRlbVNo
aW0uY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL21hYy9TZWNJdGVtU2hpbS5jcHAKQEAg
LTE0MCw3ICsxNDAsNyBAQCBzdGF0aWMgT1NTdGF0dXMgd2ViU2VjSXRlbURlbGV0ZShDRkRpY3Rp
b25hcnlSZWYgcXVlcnkpCiAKIHZvaWQgaW5pdGlhbGl6ZVNlY0l0ZW1TaGltKE5ldHdvcmtQcm9j
ZXNzJiBwcm9jZXNzKQogewotICAgIGdsb2JhbE5ldHdvcmtQcm9jZXNzKCkgPSBtYWtlV2Vha1B0
cihwcm9jZXNzKTsKKyAgICBnbG9iYWxOZXR3b3JrUHJvY2VzcygpID0gcHJvY2VzczsKIAogICAg
IHN0cnVjdCBfQ0ZORnJhbWV3b3Jrc1N0dWJzIHN0dWJzID0gewogICAgICAgICAudmVyc2lvbiA9
IDAsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQVBJQXR0YWNobWVu
dC5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQVBJQXR0YWNobWVudC5jcHAKaW5k
ZXggNmUyMWY2ZjljZDQ2OTVkYTVlOTM3Yzk0YWM2ZmQyMzY1YzYyZTFjMC4uYjM0ZWM3MzYzNjNj
NGYxZDJiMGU3NjBhZDNmNGE5ZDViYWMxYTM0ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvQVBJL0FQSUF0dGFjaG1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0FQSS9BUElBdHRhY2htZW50LmNwcApAQCAtNDEsNyArNDEsNyBAQCBSZWY8QXR0YWNobWVu
dD4gQXR0YWNobWVudDo6Y3JlYXRlKGNvbnN0IFdURjo6U3RyaW5nJiBpZGVudGlmaWVyLCBXZWJL
aXQ6OldlYlBhZwogCiBBdHRhY2htZW50OjpBdHRhY2htZW50KGNvbnN0IFdURjo6U3RyaW5nJiBp
ZGVudGlmaWVyLCBXZWJLaXQ6OldlYlBhZ2VQcm94eSYgd2ViUGFnZSkKICAgICA6IG1faWRlbnRp
ZmllcihpZGVudGlmaWVyKQotICAgICwgbV93ZWJQYWdlKG1ha2VXZWFrUHRyKHdlYlBhZ2UpKQor
ICAgICwgbV93ZWJQYWdlKHdlYlBhZ2UpCiB7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0FQSS9BUElIVFRQQ29va2llU3RvcmUuY3BwIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvQVBJL0FQSUhUVFBDb29raWVTdG9yZS5jcHAKaW5kZXggNWM3OWIzMDg4MWRhOTlk
Y2NhZjU0Yjk3ZjNhNzkwMDY4ODUzZWZkYi4uNDMwY2NhMDU0ZmYwNWQ5ZWFmZTEzNmU0ZTZiNTli
NDMwN2I4YjNiOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0FQSUhU
VFBDb29raWVTdG9yZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0FQSUhU
VFBDb29raWVTdG9yZS5jcHAKQEAgLTQ0LDcgKzQ0LDcgQEAgdXNpbmcgbmFtZXNwYWNlIFdlYktp
dDsKIG5hbWVzcGFjZSBBUEkgewogCiBIVFRQQ29va2llU3RvcmU6OkhUVFBDb29raWVTdG9yZShX
ZWJLaXQ6OldlYnNpdGVEYXRhU3RvcmUmIHdlYnNpdGVEYXRhU3RvcmUpCi0gICAgOiBtX293bmlu
Z0RhdGFTdG9yZShtYWtlV2Vha1B0cih3ZWJzaXRlRGF0YVN0b3JlKSkKKyAgICA6IG1fb3duaW5n
RGF0YVN0b3JlKHdlYnNpdGVEYXRhU3RvcmUpCiB7CiB9CiAKQEAgLTE2Nyw3ICsxNjcsNyBAQCB2
b2lkIEhUVFBDb29raWVTdG9yZTo6cmVnaXN0ZXJPYnNlcnZlcihPYnNlcnZlciYgb2JzZXJ2ZXIp
CiAKICAgICBtX2Nvb2tpZU1hbmFnZXJQcm94eU9ic2VydmVyID0gbWFrZVVuaXF1ZTxBUElXZWJD
b29raWVNYW5hZ2VyUHJveHlPYnNlcnZlcj4oKnRoaXMpOwogCi0gICAgbV9vYnNlcnZlZENvb2tp
ZU1hbmFnZXJQcm94eSA9IG1ha2VXZWFrUHRyKG1fb3duaW5nRGF0YVN0b3JlLT5uZXR3b3JrUHJv
Y2VzcygpLmNvb2tpZU1hbmFnZXIoKSk7CisgICAgbV9vYnNlcnZlZENvb2tpZU1hbmFnZXJQcm94
eSA9IG1fb3duaW5nRGF0YVN0b3JlLT5uZXR3b3JrUHJvY2VzcygpLmNvb2tpZU1hbmFnZXIoKTsK
ICAgICBtX29ic2VydmVkQ29va2llTWFuYWdlclByb3h5LT5yZWdpc3Rlck9ic2VydmVyKG1fb3du
aW5nRGF0YVN0b3JlLT5zZXNzaW9uSUQoKSwgKm1fY29va2llTWFuYWdlclByb3h5T2JzZXJ2ZXIp
OwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQVBJSW5zcGVj
dG9yRXh0ZW5zaW9uLmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9BUElJbnNwZWN0
b3JFeHRlbnNpb24uY3BwCmluZGV4IDg3MWMyNzNlYWYxMWRlYjkxYjlkMDJiZjQ1MGYwZDEwZWJj
ODM3NDUuLjgyYzhhYWEzNjM2NGJmN2E1OTZmYTBlMmM2MDZkYWI4NTBlYTRhNmMgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9BUElJbnNwZWN0b3JFeHRlbnNpb24uY3Bw
CisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9BUElJbnNwZWN0b3JFeHRlbnNpb24u
Y3BwCkBAIC0zNyw3ICszNyw3IEBAIG5hbWVzcGFjZSBBUEkgewogCiBJbnNwZWN0b3JFeHRlbnNp
b246Okluc3BlY3RvckV4dGVuc2lvbihjb25zdCBXVEY6OlN0cmluZyYgaWRlbnRpZmllciwgV2Vi
S2l0OjpXZWJJbnNwZWN0b3JVSUV4dGVuc2lvbkNvbnRyb2xsZXJQcm94eSYgZXh0ZW5zaW9uQ29u
dHJvbGxlclByb3h5KQogICAgIDogbV9pZGVudGlmaWVyKGlkZW50aWZpZXIpCi0gICAgLCBtX2V4
dGVuc2lvbkNvbnRyb2xsZXJQcm94eShtYWtlV2Vha1B0cihleHRlbnNpb25Db250cm9sbGVyUHJv
eHkpKQorICAgICwgbV9leHRlbnNpb25Db250cm9sbGVyUHJveHkoZXh0ZW5zaW9uQ29udHJvbGxl
clByb3h5KQogewogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkv
QVBJV2ViQXV0aGVudGljYXRpb25QYW5lbC5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9B
UEkvQVBJV2ViQXV0aGVudGljYXRpb25QYW5lbC5jcHAKaW5kZXggNTE1M2JlMTYwZmI2ZDM0ZDM1
NjAwODZmYWYwZTMzMzFlNDM1ODM3ZS4uOWM3YzVkZGRmMmY4ODU0NGQyZjQ5Zjc3NzU2MDBjOTAw
YThjNjAzOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0FQSVdlYkF1
dGhlbnRpY2F0aW9uUGFuZWwuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9B
UElXZWJBdXRoZW50aWNhdGlvblBhbmVsLmNwcApAQCAtNTEsNyArNTEsNyBAQCBXZWJBdXRoZW50
aWNhdGlvblBhbmVsOjpXZWJBdXRoZW50aWNhdGlvblBhbmVsKCkKIAogV2ViQXV0aGVudGljYXRp
b25QYW5lbDo6V2ViQXV0aGVudGljYXRpb25QYW5lbChjb25zdCBBdXRoZW50aWNhdG9yTWFuYWdl
ciYgbWFuYWdlciwgY29uc3QgV1RGOjpTdHJpbmcmIHJwSWQsIGNvbnN0IFRyYW5zcG9ydFNldCYg
dHJhbnNwb3J0cywgQ2xpZW50RGF0YVR5cGUgdHlwZSwgY29uc3QgV1RGOjpTdHJpbmcmIHVzZXJO
YW1lKQogICAgIDogbV9jbGllbnQobWFrZVVuaXF1ZVJlZjxXZWJBdXRoZW50aWNhdGlvblBhbmVs
Q2xpZW50PigpKQotICAgICwgbV93ZWFrTWFuYWdlcihtYWtlV2Vha1B0cihtYW5hZ2VyKSkKKyAg
ICAsIG1fd2Vha01hbmFnZXIobWFuYWdlcikKICAgICAsIG1fcnBJZChycElkKQogICAgICwgbV9j
bGllbnREYXRhVHlwZSh0eXBlKQogICAgICwgbV91c2VyTmFtZSh1c2VyTmFtZSkKQEAgLTcxLDcg
KzcxLDcgQEAgV2ViQXV0aGVudGljYXRpb25QYW5lbDo6fldlYkF1dGhlbnRpY2F0aW9uUGFuZWwo
KSA9IGRlZmF1bHQ7CiB2b2lkIFdlYkF1dGhlbnRpY2F0aW9uUGFuZWw6OmhhbmRsZVJlcXVlc3Qo
V2ViQXV0aGVudGljYXRpb25SZXF1ZXN0RGF0YSYmIHJlcXVlc3QsIENhbGxiYWNrJiYgY2FsbGJh
Y2spCiB7CiAgICAgQVNTRVJUKG1fbWFuYWdlcik7Ci0gICAgcmVxdWVzdC53ZWFrUGFuZWwgPSBt
YWtlV2Vha1B0cigqdGhpcyk7CisgICAgcmVxdWVzdC53ZWFrUGFuZWwgPSAqdGhpczsKICAgICBt
X21hbmFnZXItPmhhbmRsZVJlcXVlc3QoV1RGTW92ZShyZXF1ZXN0KSwgV1RGTW92ZShjYWxsYmFj
aykpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2Ev
V0tXZWJWaWV3Lm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmll
dy5tbQppbmRleCBkZDExOWZkNzM2OWNkZDliM2EyNWFiYWY1NDlhZjAyMDZhZjIzY2JlLi4xNzNk
NzMwZDUyNTU4N2ZmNDIyZWViOTAyODdkMzI4ZDU3ZmU3ZDdmIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Lm1tCisrKyBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcubW0KQEAgLTM2MTQsNyArMzYxNCw3IEBA
IC0gKHZvaWQpX3JlbW92ZURhdGFEZXRlY3RlZExpbmtzOihkaXNwYXRjaF9ibG9ja190KWNvbXBs
ZXRpb24KIHsKICAgICBUSFJPV19JRl9TVVNQRU5ERUQ7CiAjaWYgRU5BQkxFKERBVEFfREVURUNU
SU9OKQotICAgIF9wYWdlLT5yZW1vdmVEYXRhRGV0ZWN0ZWRMaW5rcyhbY29tcGxldGlvbiA9IG1h
a2VCbG9ja1B0cihjb21wbGV0aW9uKSwgcGFnZSA9IG1ha2VXZWFrUHRyKF9wYWdlLmdldCgpKV0g
KGF1dG8mIHJlc3VsdCkgeworICAgIF9wYWdlLT5yZW1vdmVEYXRhRGV0ZWN0ZWRMaW5rcyhbY29t
cGxldGlvbiA9IG1ha2VCbG9ja1B0cihjb21wbGV0aW9uKSwgcGFnZSA9IFdlYWtQdHIgeyBfcGFn
ZS5nZXQoKSB9XSAoYXV0byYgcmVzdWx0KSB7CiAgICAgICAgIGlmIChwYWdlKQogICAgICAgICAg
ICAgcGFnZS0+c2V0RGF0YURldGVjdGlvblJlc3VsdChyZXN1bHQpOwogICAgICAgICBpZiAoY29t
cGxldGlvbikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9X
S1dlYlZpZXdUZXN0aW5nLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dL
V2ViVmlld1Rlc3RpbmcubW0KaW5kZXggNzNjYTkzNDQ0ZTA5MGM2NzhmYmY4NGM4NDM4Yjg5ODU0
MzRiOGExNi4uNDg1NDA0ODNjMzFhZGU4ZjI1MTg0N2NmYmQ4YzYzOTU5N2M2MjhlZSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlld1Rlc3Rpbmcu
bW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlld1Rlc3Rp
bmcubW0KQEAgLTYyOSw3ICs2MjksNyBAQCAtIChpZClpbml0V2l0aENvb3JkaW5hdG9yOihXZWJD
b3JlOjpNZWRpYVNlc3Npb25Db29yZGluYXRvckNsaWVudCopY29vcmRpbmF0b3IKICAgICBzZWxm
ID0gW3N1cGVyIGluaXRdOwogICAgIGlmICghc2VsZikKICAgICAgICAgcmV0dXJuIG5pbDsKLSAg
ICBtX2Nvb3JkaW5hdG9yQ2xpZW50ID0gbWFrZVdlYWtQdHIoY29vcmRpbmF0b3IpOworICAgIG1f
Y29vcmRpbmF0b3JDbGllbnQgPSBjb29yZGluYXRvcjsKICAgICByZXR1cm4gc2VsZjsKIH0KIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL19XS1dlYkF1dGhl
bnRpY2F0aW9uUGFuZWwubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dL
V2ViQXV0aGVudGljYXRpb25QYW5lbC5tbQppbmRleCBjN2QwNjgxNmFjMWZlY2Q3YTJmMDczOTZi
NzcyZWY4ZmZiYmEwMGZlLi5jNzdkZWEwMjhmYzE5MDAxZDA4NmRiNjRiZjhhNDViYjkwNzMyYjAx
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLV2ViQXV0
aGVudGljYXRpb25QYW5lbC5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29j
b2EvX1dLV2ViQXV0aGVudGljYXRpb25QYW5lbC5tbQpAQCAtMTM5LDcgKzEzOSw3IEBAIC0gKGlk
IDxfV0tXZWJBdXRoZW50aWNhdGlvblBhbmVsRGVsZWdhdGU+KWRlbGVnYXRlCiAtICh2b2lkKXNl
dERlbGVnYXRlOihpZDxfV0tXZWJBdXRoZW50aWNhdGlvblBhbmVsRGVsZWdhdGU+KWRlbGVnYXRl
CiB7CiAgICAgYXV0byBjbGllbnQgPSBXVEY6Om1ha2VVbmlxdWVSZWY8V2ViS2l0OjpXZWJBdXRo
ZW50aWNhdGlvblBhbmVsQ2xpZW50PihzZWxmLCBkZWxlZ2F0ZSk7Ci0gICAgX2NsaWVudCA9IG1h
a2VXZWFrUHRyKGNsaWVudC5nZXQoKSk7CisgICAgX2NsaWVudCA9IGNsaWVudC5nZXQoKTsKICAg
ICBfcGFuZWwtPnNldENsaWVudChXVEZNb3ZlKGNsaWVudCkpOwogfQogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvaW9zL1dLV2ViVmlld0lPUy5tbSBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL0FQSS9pb3MvV0tXZWJWaWV3SU9TLm1tCmluZGV4IDQzMGQzMzJkZjA0
YzNjODdhYTQ1YjAwYzllYjczZDdiMmViZWFmNTIuLmY5MGFiYTlhZDk5ZGIzNTNiNDQyMzEwMTg2
NmZhMWU1OGRkNTRiOTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9p
b3MvV0tXZWJWaWV3SU9TLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9pb3Mv
V0tXZWJWaWV3SU9TLm1tCkBAIC0yOTQ4LDcgKzI5NDgsNyBAQCAtICh2b2lkKV9zZXRUZXh0Q29s
b3I6KFVJQ29sb3IgKiljb2xvciBzZW5kZXI6KGlkKXNlbmRlcgogLSAodm9pZClfZGV0ZWN0RGF0
YVdpdGhUeXBlczooV0tEYXRhRGV0ZWN0b3JUeXBlcyl0eXBlcyBjb21wbGV0aW9uSGFuZGxlcjoo
ZGlzcGF0Y2hfYmxvY2tfdCljb21wbGV0aW9uCiB7CiAjaWYgRU5BQkxFKERBVEFfREVURUNUSU9O
KQotICAgIF9wYWdlLT5kZXRlY3REYXRhSW5BbGxGcmFtZXMoZnJvbVdLRGF0YURldGVjdG9yVHlw
ZXModHlwZXMpLCBbY29tcGxldGlvbiA9IG1ha2VCbG9ja1B0cihjb21wbGV0aW9uKSwgcGFnZSA9
IG1ha2VXZWFrUHRyKF9wYWdlLmdldCgpKV0gKGF1dG8mIHJlc3VsdCkgeworICAgIF9wYWdlLT5k
ZXRlY3REYXRhSW5BbGxGcmFtZXMoZnJvbVdLRGF0YURldGVjdG9yVHlwZXModHlwZXMpLCBbY29t
cGxldGlvbiA9IG1ha2VCbG9ja1B0cihjb21wbGV0aW9uKSwgcGFnZSA9IFdlYWtQdHIgeyBfcGFn
ZS5nZXQoKSB9XSAoYXV0byYgcmVzdWx0KSB7CiAgICAgICAgIGlmIChwYWdlKQogICAgICAgICAg
ICAgcGFnZS0+c2V0RGF0YURldGVjdGlvblJlc3VsdChyZXN1bHQpOwogICAgICAgICBpZiAoY29t
cGxldGlvbikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL0dyb3Vw
QWN0aXZpdGllcy9Hcm91cEFjdGl2aXRpZXNDb29yZGluYXRvci5tbSBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL0NvY29hL0dyb3VwQWN0aXZpdGllcy9Hcm91cEFjdGl2aXRpZXNDb29yZGluYXRv
ci5tbQppbmRleCAxY2RjYmFiNDdmYzIwZDQzNGUxYjZmNmJiM2VkMDI2MzU0NTc4MWFiLi5iM2I3
ODJlY2YzMTFiZTU0YWQyM2YwZTZjOGVhNjBjNjc5N2FmNGE5IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9Hcm91cEFjdGl2aXRpZXMvR3JvdXBBY3Rpdml0aWVzQ29v
cmRpbmF0b3IubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvR3JvdXBBY3Rp
dml0aWVzL0dyb3VwQWN0aXZpdGllc0Nvb3JkaW5hdG9yLm1tCkBAIC00OCw3ICs0OCw3IEBAIC0g
KGlkKWluaXRXaXRoUGFyZW50OihXZWJLaXQ6Okdyb3VwQWN0aXZpdGllc0Nvb3JkaW5hdG9yJilw
YXJlbnQKICAgICBpZiAoIXNlbGYpCiAgICAgICAgIHJldHVybiBuaWw7CiAKLSAgICBfcGFyZW50
ID0gbWFrZVdlYWtQdHIocGFyZW50KTsKKyAgICBfcGFyZW50ID0gcGFyZW50OwogICAgIHJldHVy
biBzZWxmOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9M
ZWdhY3lDdXN0b21Qcm90b2NvbE1hbmFnZXJDbGllbnQubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9Db2NvYS9MZWdhY3lDdXN0b21Qcm90b2NvbE1hbmFnZXJDbGllbnQubW0KaW5kZXggN2Zi
N2Y4YWEzNmUwZTVmZmI4M2M2MjAyYzZiOTQ0Yzg0N2ZhYmJjOS4uYjQxZDI2YzgyN2I1MjI2NTcw
OTZkNDFhODI0NWNkZWVmZmZiOWE4NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvQ29jb2EvTGVnYWN5Q3VzdG9tUHJvdG9jb2xNYW5hZ2VyQ2xpZW50Lm1tCisrKyBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL0xlZ2FjeUN1c3RvbVByb3RvY29sTWFuYWdlckNsaWVu
dC5tbQpAQCAtNTIsNyArNTIsNyBAQCAtIChpZClpbml0V2l0aExlZ2FjeUN1c3RvbVByb3RvY29s
TWFuYWdlclByb3h5OihXZWJLaXQ6OkxlZ2FjeUN1c3RvbVByb3RvY29sTWFuYQogICAgICAgICBy
ZXR1cm4gbmlsOwogCiAgICAgQVNTRVJUKHJlcXVlc3QpOwotICAgIF9jdXN0b21Qcm90b2NvbE1h
bmFnZXJQcm94eSA9IG1ha2VXZWFrUHRyKGN1c3RvbVByb3RvY29sTWFuYWdlclByb3h5KTsKKyAg
ICBfY3VzdG9tUHJvdG9jb2xNYW5hZ2VyUHJveHkgPSBjdXN0b21Qcm90b2NvbE1hbmFnZXJQcm94
eTsKICAgICBfY3VzdG9tUHJvdG9jb2xJRCA9IGN1c3RvbVByb3RvY29sSUQ7CiAgICAgX3N0b3Jh
Z2VQb2xpY3kgPSBOU1VSTENhY2hlU3RvcmFnZU5vdEFsbG93ZWQ7CiAgICAgQUxMT1dfREVQUkVD
QVRFRF9ERUNMQVJBVElPTlNfQkVHSU4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0NvY29hL05hdmlnYXRpb25TdGF0ZS5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0Nv
Y29hL05hdmlnYXRpb25TdGF0ZS5tbQppbmRleCBkNGU4ZDZlYmRlZjkyZDRiMmZhMGYxNzM3NTY4
NDYzMjNhZTA3NTFlLi44ZmI4ODVlMDU5ODkzYWNjZjhjMmQwY2E1NDIxZGUyODM4YTM1YTQ5IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9OYXZpZ2F0aW9uU3RhdGUu
bW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvTmF2aWdhdGlvblN0YXRlLm1t
CkBAIC0xMTEsNyArMTExLDcgQEAgTmF2aWdhdGlvblN0YXRlOjpOYXZpZ2F0aW9uU3RhdGUoV0tX
ZWJWaWV3ICp3ZWJWaWV3KQogICAgIEFTU0VSVChtX3dlYlZpZXctPl9wYWdlKTsKICAgICBBU1NF
UlQoIW5hdmlnYXRpb25TdGF0ZXMoKS5jb250YWlucyhtX3dlYlZpZXctPl9wYWdlLmdldCgpKSk7
CiAKLSAgICBuYXZpZ2F0aW9uU3RhdGVzKCkuYWRkKG1fd2ViVmlldy0+X3BhZ2UuZ2V0KCksIG1h
a2VXZWFrUHRyKCp0aGlzKSk7CisgICAgbmF2aWdhdGlvblN0YXRlcygpLmFkZChtX3dlYlZpZXct
Pl9wYWdlLmdldCgpLCAqdGhpcyk7CiAgICAgbV93ZWJWaWV3LT5fcGFnZS0+cGFnZUxvYWRTdGF0
ZSgpLmFkZE9ic2VydmVyKCp0aGlzKTsKIH0KIApAQCAtMzE0LDcgKzMxNCw3IEBAIHZvaWQgTmF2
aWdhdGlvblN0YXRlOjpkaWRGaXJzdFBhaW50KCkKIH0KIAogTmF2aWdhdGlvblN0YXRlOjpOYXZp
Z2F0aW9uQ2xpZW50OjpOYXZpZ2F0aW9uQ2xpZW50KE5hdmlnYXRpb25TdGF0ZSYgbmF2aWdhdGlv
blN0YXRlKQotICAgIDogbV9uYXZpZ2F0aW9uU3RhdGUobWFrZVdlYWtQdHIobmF2aWdhdGlvblN0
YXRlKSkKKyAgICA6IG1fbmF2aWdhdGlvblN0YXRlKG5hdmlnYXRpb25TdGF0ZSkKIHsKIH0KIApA
QCAtNDM1LDcgKzQzNSw3IEBAIHN0YXRpYyB2b2lkIHRyeUludGVyY2VwdE5hdmlnYXRpb24oUmVm
PEFQSTo6TmF2aWdhdGlvbkFjdGlvbj4mJiBuYXZpZ2F0aW9uQWN0aW9uCiAjaWYgSEFWRShBUFBf
TElOS1MpCiAgICAgaWYgKG5hdmlnYXRpb25BY3Rpb24tPnNob3VsZE9wZW5BcHBMaW5rcygpKSB7
CiAgICAgICAgIGF1dG8gdXJsID0gbmF2aWdhdGlvbkFjdGlvbi0+cmVxdWVzdCgpLnVybCgpOwot
ICAgICAgICBhdXRvKiBsb2NhbENvbXBsZXRpb25IYW5kbGVyID0gbmV3IFdURjo6RnVuY3Rpb248
dm9pZCAoYm9vbCk+KFtuYXZpZ2F0aW9uQWN0aW9uID0gV1RGTW92ZShuYXZpZ2F0aW9uQWN0aW9u
KSwgd2Vha1BhZ2UgPSBtYWtlV2Vha1B0cihwYWdlKSwgY29tcGxldGlvbkhhbmRsZXIgPSBXVEZN
b3ZlKGNvbXBsZXRpb25IYW5kbGVyKV0gKGJvb2wgc3VjY2VzcykgbXV0YWJsZSB7CisgICAgICAg
IGF1dG8qIGxvY2FsQ29tcGxldGlvbkhhbmRsZXIgPSBuZXcgV1RGOjpGdW5jdGlvbjx2b2lkIChi
b29sKT4oW25hdmlnYXRpb25BY3Rpb24gPSBXVEZNb3ZlKG5hdmlnYXRpb25BY3Rpb24pLCB3ZWFr
UGFnZSA9IFdlYWtQdHIgeyBwYWdlIH0sIGNvbXBsZXRpb25IYW5kbGVyID0gV1RGTW92ZShjb21w
bGV0aW9uSGFuZGxlcildIChib29sIHN1Y2Nlc3MpIG11dGFibGUgewogICAgICAgICAgICAgQVNT
RVJUKFJ1bkxvb3A6OmlzTWFpbigpKTsKICAgICAgICAgICAgIGlmICghc3VjY2VzcyAmJiB3ZWFr
UGFnZSkgewogICAgICAgICAgICAgICAgIHRyeVNPQXV0aG9yaXphdGlvbihXVEZNb3ZlKG5hdmln
YXRpb25BY3Rpb24pLCAqd2Vha1BhZ2UsIFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKTsKQEAg
LTEyODgsNyArMTI4OCw3IEBAIHZvaWQgTmF2aWdhdGlvblN0YXRlOjpOYXZpZ2F0aW9uQ2xpZW50
OjpkZWNpZGVQb2xpY3lGb3JTT0F1dGhvcml6YXRpb25Mb2FkKFdlYlBhCiAvLyBIaXN0b3J5RGVs
ZWdhdGVQcml2YXRlIHN1cHBvcnQKICAgICAKIE5hdmlnYXRpb25TdGF0ZTo6SGlzdG9yeUNsaWVu
dDo6SGlzdG9yeUNsaWVudChOYXZpZ2F0aW9uU3RhdGUmIG5hdmlnYXRpb25TdGF0ZSkKLSAgICA6
IG1fbmF2aWdhdGlvblN0YXRlKG1ha2VXZWFrUHRyKG5hdmlnYXRpb25TdGF0ZSkpCisgICAgOiBt
X25hdmlnYXRpb25TdGF0ZShuYXZpZ2F0aW9uU3RhdGUpCiB7CiB9CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1NPQXV0aG9yaXphdGlvbi9Qb3BVcFNPQXV0aG9y
aXphdGlvblNlc3Npb24ubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9TT0F1dGhv
cml6YXRpb24vUG9wVXBTT0F1dGhvcml6YXRpb25TZXNzaW9uLm1tCmluZGV4IDlmMWViYzhmZWQ5
NTJiYWY5NmYwZDdmNjVlZjg4NDI1NDkzYTkyYTIuLmUxZGE5NmY4MjU5MzJjZjFlZGQ1M2IyNzA3
MTc1YTA4OTRlZTIxMzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29h
L1NPQXV0aG9yaXphdGlvbi9Qb3BVcFNPQXV0aG9yaXphdGlvblNlc3Npb24ubW0KKysrIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvU09BdXRob3JpemF0aW9uL1BvcFVwU09BdXRob3Jp
emF0aW9uU2Vzc2lvbi5tbQpAQCAtNTIsNyArNTIsNyBAQCBAaW1wbGVtZW50YXRpb24gV0tTT1Nl
Y3JldERlbGVnYXRlCiAtIChpbnN0YW5jZXR5cGUpaW5pdFdpdGhTZXNzaW9uOihXZWJLaXQ6OlBv
cFVwU09BdXRob3JpemF0aW9uU2Vzc2lvbiAqKXNlc3Npb24KIHsKICAgICBpZiAoKHNlbGYgPSBb
c3VwZXIgaW5pdF0pKSB7Ci0gICAgICAgIF9zZXNzaW9uID0gbWFrZVdlYWtQdHIoc2Vzc2lvbik7
CisgICAgICAgIF9zZXNzaW9uID0gc2Vzc2lvbjsKICAgICAgICAgX2lzRmlyc3ROYXZpZ2F0aW9u
ID0gWUVTOwogICAgIH0KICAgICByZXR1cm4gc2VsZjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0NvY29hL1NPQXV0aG9yaXphdGlvbi9TT0F1dGhvcml6YXRpb25TZXNzaW9u
Lm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvU09BdXRob3JpemF0aW9uL1NPQXV0
aG9yaXphdGlvblNlc3Npb24ubW0KaW5kZXggYjllZjBiY2VlZDUyNzY0OWE0M2VkZmE4MDliMzYy
Y2Q4YzI1Nzc3Zi4uNzIwNDMzMmVhODgyZGUxMWMyYjY5MTk0ODQxM2E1MGY4ZTAzYjc4MSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvU09BdXRob3JpemF0aW9uL1NP
QXV0aG9yaXphdGlvblNlc3Npb24ubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29j
b2EvU09BdXRob3JpemF0aW9uL1NPQXV0aG9yaXphdGlvblNlc3Npb24ubW0KQEAgLTg5LDcgKzg5
LDcgQEAgc3RhdGljIGJvb2wgaXNTYW1lT3JpZ2luKGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVx
dWVzdCYgcmVxdWVzdCwgY29uc3QgV2ViQ29yZToKIFNPQXV0aG9yaXphdGlvblNlc3Npb246OlNP
QXV0aG9yaXphdGlvblNlc3Npb24oU09BdXRob3JpemF0aW9uICpzb0F1dGhvcml6YXRpb24sIFJl
ZjxBUEk6Ok5hdmlnYXRpb25BY3Rpb24+JiYgbmF2aWdhdGlvbkFjdGlvbiwgV2ViUGFnZVByb3h5
JiBwYWdlLCBJbml0aWF0aW5nQWN0aW9uIGFjdGlvbikKICAgICA6IG1fc29BdXRob3JpemF0aW9u
KHNvQXV0aG9yaXphdGlvbikKICAgICAsIG1fbmF2aWdhdGlvbkFjdGlvbihXVEZNb3ZlKG5hdmln
YXRpb25BY3Rpb24pKQotICAgICwgbV9wYWdlKG1ha2VXZWFrUHRyKHBhZ2UpKQorICAgICwgbV9w
YWdlKHBhZ2UpCiAgICAgLCBtX2FjdGlvbihhY3Rpb24pCiB7CiB9CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9VSURlbGVnYXRlLm1tIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvQ29jb2EvVUlEZWxlZ2F0ZS5tbQppbmRleCBkNzhmNGNjMGQ1NjU1OTRjMGU4ODFh
NDU4YmZkMjM4Mjc1MTIyNDVhLi4xMDdmYTI0Y2UxNDc1MzQwN2RmYWNmMDU2MDg0ODZiNWQ5ZGEy
ZWVkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9VSURlbGVnYXRl
Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1VJRGVsZWdhdGUubW0KQEAg
LTE5Nyw3ICsxOTcsNyBAQCB2b2lkIFVJRGVsZWdhdGU6OnNldERlbGVnYXRlKGlkIDxXS1VJRGVs
ZWdhdGU+IGRlbGVnYXRlKQogCiAjaWYgRU5BQkxFKENPTlRFWFRfTUVOVVMpCiBVSURlbGVnYXRl
OjpDb250ZXh0TWVudUNsaWVudDo6Q29udGV4dE1lbnVDbGllbnQoVUlEZWxlZ2F0ZSYgdWlEZWxl
Z2F0ZSkKLSAgICA6IG1fdWlEZWxlZ2F0ZShtYWtlV2Vha1B0cih1aURlbGVnYXRlKSkKKyAgICA6
IG1fdWlEZWxlZ2F0ZSh1aURlbGVnYXRlKQogewogfQogCkBAIC0yNDIsNyArMjQyLDcgQEAgdm9p
ZCBVSURlbGVnYXRlOjpDb250ZXh0TWVudUNsaWVudDo6bWVudUZyb21Qcm9wb3NlZE1lbnUoV2Vi
UGFnZVByb3h5JiwgTlNNZW51ICoKICNlbmRpZgogCiBVSURlbGVnYXRlOjpVSUNsaWVudDo6VUlD
bGllbnQoVUlEZWxlZ2F0ZSYgdWlEZWxlZ2F0ZSkKLSAgICA6IG1fdWlEZWxlZ2F0ZShtYWtlV2Vh
a1B0cih1aURlbGVnYXRlKSkKKyAgICA6IG1fdWlEZWxlZ2F0ZSh1aURlbGVnYXRlKQogewogfQog
CkBAIC00MjMsNyArNDIzLDcgQEAgdm9pZCBVSURlbGVnYXRlOjpVSUNsaWVudDo6ZGVjaWRlUG9s
aWN5Rm9yR2VvbG9jYXRpb25QZXJtaXNzaW9uUmVxdWVzdChXZWJLaXQ6OlcKICAgICBpZiAobV91
aURlbGVnYXRlLT5tX2RlbGVnYXRlTWV0aG9kcy53ZWJWaWV3UmVxdWVzdEdlb2xvY2F0aW9uUGVy
bWlzc2lvbkZvck9yaWdpbkRlY2lzaW9uSGFuZGxlcikgewogICAgICAgICBhdXRvIHNlY3VyaXR5
T3JpZ2luID0gV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW46OmNyZWF0ZUZyb21TdHJpbmcocGFnZS5w
YWdlTG9hZFN0YXRlKCkuYWN0aXZlVVJMKCkpOwogICAgICAgICBhdXRvIGNoZWNrZXIgPSBDb21w
bGV0aW9uSGFuZGxlckNhbGxDaGVja2VyOjpjcmVhdGUoZGVsZWdhdGUuZ2V0KCksIEBzZWxlY3Rv
cihfd2ViVmlldzpyZXF1ZXN0R2VvbG9jYXRpb25QZXJtaXNzaW9uRm9yT3JpZ2luOmluaXRpYXRl
ZEJ5RnJhbWU6ZGVjaXNpb25IYW5kbGVyOikpOwotICAgICAgICBhdXRvIGRlY2lzaW9uSGFuZGxl
ciA9IG1ha2VCbG9ja1B0cihbY29tcGxldGlvbkhhbmRsZXIgPSBzdGQ6OmV4Y2hhbmdlKGNvbXBs
ZXRpb25IYW5kbGVyLCBudWxscHRyKSwgc2VjdXJpdHlPcmlnaW4gPSBzZWN1cml0eU9yaWdpbi0+
ZGF0YSgpLCBjaGVja2VyID0gV1RGTW92ZShjaGVja2VyKSwgcGFnZSA9IG1ha2VXZWFrUHRyKHBh
Z2UpXSAoV0tQZXJtaXNzaW9uRGVjaXNpb24gZGVjaXNpb24pIG11dGFibGUgeworICAgICAgICBh
dXRvIGRlY2lzaW9uSGFuZGxlciA9IG1ha2VCbG9ja1B0cihbY29tcGxldGlvbkhhbmRsZXIgPSBz
dGQ6OmV4Y2hhbmdlKGNvbXBsZXRpb25IYW5kbGVyLCBudWxscHRyKSwgc2VjdXJpdHlPcmlnaW4g
PSBzZWN1cml0eU9yaWdpbi0+ZGF0YSgpLCBjaGVja2VyID0gV1RGTW92ZShjaGVja2VyKSwgcGFn
ZSA9IFdlYWtQdHIgeyBwYWdlIH1dIChXS1Blcm1pc3Npb25EZWNpc2lvbiBkZWNpc2lvbikgbXV0
YWJsZSB7CiAgICAgICAgICAgICBpZiAoY2hlY2tlci0+Y29tcGxldGlvbkhhbmRsZXJIYXNCZWVu
Q2FsbGVkKCkpCiAgICAgICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAgICAgY2hlY2tlci0+
ZGlkQ2FsbENvbXBsZXRpb25IYW5kbGVyKCk7CkBAIC0xMDYxLDcgKzEwNjEsNyBAQCB2b2lkIFVJ
RGVsZWdhdGU6OlVJQ2xpZW50OjpzaG91bGRBbGxvd0RldmljZU9yaWVudGF0aW9uQW5kTW90aW9u
QWNjZXNzKFdlYktpdDo6VwogCiAgICAgYXV0byBkZWxlZ2F0ZSA9IG1fdWlEZWxlZ2F0ZS0+bV9k
ZWxlZ2F0ZS5nZXQoKTsKICAgICBhdXRvIGNoZWNrZXIgPSBDb21wbGV0aW9uSGFuZGxlckNhbGxD
aGVja2VyOjpjcmVhdGUoZGVsZWdhdGUuZ2V0KCksIEBzZWxlY3Rvcih3ZWJWaWV3OnJlcXVlc3RE
ZXZpY2VPcmllbnRhdGlvbkFuZE1vdGlvblBlcm1pc3Npb25Gb3JPcmlnaW46aW5pdGlhdGVkQnlG
cmFtZTpkZWNpc2lvbkhhbmRsZXI6KSk7Ci0gICAgYXV0byBkZWNpc2lvbkhhbmRsZXIgPSBtYWtl
QmxvY2tQdHIoW2NvbXBsZXRpb25IYW5kbGVyID0gV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlciks
IHNlY3VyaXR5T3JpZ2luID0gc2VjdXJpdHlPcmlnaW4tPmRhdGEoKSwgY2hlY2tlciA9IFdURk1v
dmUoY2hlY2tlciksIHBhZ2UgPSBtYWtlV2Vha1B0cihwYWdlKV0oV0tQZXJtaXNzaW9uRGVjaXNp
b24gZGVjaXNpb24pIG11dGFibGUgeworICAgIGF1dG8gZGVjaXNpb25IYW5kbGVyID0gbWFrZUJs
b2NrUHRyKFtjb21wbGV0aW9uSGFuZGxlciA9IFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpLCBz
ZWN1cml0eU9yaWdpbiA9IHNlY3VyaXR5T3JpZ2luLT5kYXRhKCksIGNoZWNrZXIgPSBXVEZNb3Zl
KGNoZWNrZXIpLCBwYWdlID0gV2Vha1B0ciB7IHBhZ2UgfV0oV0tQZXJtaXNzaW9uRGVjaXNpb24g
ZGVjaXNpb24pIG11dGFibGUgewogICAgICAgICBpZiAoY2hlY2tlci0+Y29tcGxldGlvbkhhbmRs
ZXJIYXNCZWVuQ2FsbGVkKCkpCiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIGNoZWNrZXIt
PmRpZENhbGxDb21wbGV0aW9uSGFuZGxlcigpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvQ29jb2EvV2ViUGFzdGVib2FyZFByb3h5Q29jb2EubW0gYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9Db2NvYS9XZWJQYXN0ZWJvYXJkUHJveHlDb2NvYS5tbQppbmRleCA3Yzg5YTFi
ZDhhZmE2ZTljOTQyNzg0ZTBkNzVmY2E5NDMyYTBmYjMwLi5iYWQxYWY4MmFiYWMxNmFmNWZmYmZi
OWU5Y2FjOWYyNmY3NWVmMjZiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9D
b2NvYS9XZWJQYXN0ZWJvYXJkUHJveHlDb2NvYS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9Db2NvYS9XZWJQYXN0ZWJvYXJkUHJveHlDb2NvYS5tbQpAQCAtNzUsNyArNzUsNyBAQCB2
b2lkIFdlYlBhc3RlYm9hcmRQcm94eTo6Z3JhbnRBY2Nlc3MoV2ViUHJvY2Vzc1Byb3h5JiBwcm9j
ZXNzLCBjb25zdCBTdHJpbmcmIHBhcwogICAgICAgICByZXR1cm47CiAgICAgfQogCi0gICAgbV9w
YXN0ZWJvYXJkTmFtZVRvQWNjZXNzSW5mb3JtYXRpb25NYXAuc2V0KHBhc3RlYm9hcmROYW1lLCBQ
YXN0ZWJvYXJkQWNjZXNzSW5mb3JtYXRpb24geyBjaGFuZ2VDb3VudCwge3sgbWFrZVdlYWtQdHIo
cHJvY2VzcyksIHR5cGUgfX0gfSk7CisgICAgbV9wYXN0ZWJvYXJkTmFtZVRvQWNjZXNzSW5mb3Jt
YXRpb25NYXAuc2V0KHBhc3RlYm9hcmROYW1lLCBQYXN0ZWJvYXJkQWNjZXNzSW5mb3JtYXRpb24g
eyBjaGFuZ2VDb3VudCwge3sgcHJvY2VzcywgdHlwZSB9fSB9KTsKIH0KIAogdm9pZCBXZWJQYXN0
ZWJvYXJkUHJveHk6OnJldm9rZUFjY2VzcyhXZWJQcm9jZXNzUHJveHkmIHByb2Nlc3MpCkBAIC0x
MzUsNyArMTM1LDcgQEAgdm9pZCBXZWJQYXN0ZWJvYXJkUHJveHk6OmRpZE1vZGlmeUNvbnRlbnRz
T2ZQYXN0ZWJvYXJkKElQQzo6Q29ubmVjdGlvbiYgY29ubmVjdGkKICAgICBhdXRvIGNoYW5nZUNv
dW50QW5kUHJvY2Vzc2VzID0gbV9wYXN0ZWJvYXJkTmFtZVRvQWNjZXNzSW5mb3JtYXRpb25NYXAu
ZmluZChwYXN0ZWJvYXJkTmFtZSk7CiAgICAgaWYgKGNoYW5nZUNvdW50QW5kUHJvY2Vzc2VzICE9
IG1fcGFzdGVib2FyZE5hbWVUb0FjY2Vzc0luZm9ybWF0aW9uTWFwLmVuZCgpICYmIHByZXZpb3Vz
Q2hhbmdlQ291bnQgPT0gY2hhbmdlQ291bnRBbmRQcm9jZXNzZXMtPnZhbHVlLmNoYW5nZUNvdW50
KSB7CiAgICAgICAgIGlmIChhdXRvIGFjY2Vzc1R5cGUgPSBjaGFuZ2VDb3VudEFuZFByb2Nlc3Nl
cy0+dmFsdWUuYWNjZXNzVHlwZSgqcHJvY2VzcykpCi0gICAgICAgICAgICBjaGFuZ2VDb3VudEFu
ZFByb2Nlc3Nlcy0+dmFsdWUgPSBQYXN0ZWJvYXJkQWNjZXNzSW5mb3JtYXRpb24geyBuZXdDaGFu
Z2VDb3VudCwge3sgbWFrZVdlYWtQdHIoKnByb2Nlc3MpLCAqYWNjZXNzVHlwZSB9fSB9OworICAg
ICAgICAgICAgY2hhbmdlQ291bnRBbmRQcm9jZXNzZXMtPnZhbHVlID0gUGFzdGVib2FyZEFjY2Vz
c0luZm9ybWF0aW9uIHsgbmV3Q2hhbmdlQ291bnQsIHt7ICpwcm9jZXNzLCAqYWNjZXNzVHlwZSB9
fSB9OwogICAgIH0KIH0KIApAQCAtNjg5LDcgKzY4OSw3IEBAIHZvaWQgV2ViUGFzdGVib2FyZFBy
b3h5OjpQYXN0ZWJvYXJkQWNjZXNzSW5mb3JtYXRpb246OmdyYW50QWNjZXNzKFdlYlByb2Nlc3NQ
cm94CiAgICAgfSk7CiAKICAgICBpZiAobWF0Y2hJbmRleCA9PSBub3RGb3VuZCkgewotICAgICAg
ICBwcm9jZXNzZXMuYXBwZW5kKHsgbWFrZVdlYWtQdHIocHJvY2VzcyksIHR5cGUgfSk7CisgICAg
ICAgIHByb2Nlc3Nlcy5hcHBlbmQoeyBwcm9jZXNzLCB0eXBlIH0pOwogICAgICAgICByZXR1cm47
CiAgICAgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9XZWJQ
cm9jZXNzUG9vbENvY29hLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvV2ViUHJv
Y2Vzc1Bvb2xDb2NvYS5tbQppbmRleCA2NGNhNDE2NTUwOTdlMTk2NzkwNDZjYTM5N2ZhZTM5ZGJj
OTM3OGIzLi40YzIxMWY1ZmNlYmNkMTE0MTg0N2RlODExMWVhMTI0ODBjNzAzNmYzIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9XZWJQcm9jZXNzUG9vbENvY29hLm1t
CisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dlYlByb2Nlc3NQb29sQ29jb2Eu
bW0KQEAgLTIxOCw3ICsyMTgsNyBAQCBzdGF0aWMgQWNjZXNzaWJpbGl0eVByZWZlcmVuY2VzIGFj
Y2Vzc2liaWxpdHlQcmVmZXJlbmNlcygpCiAjaWYgSEFWRShNRURJQV9BQ0NFU1NJQklMSVRZX0ZS
QU1FV09SSykKIHZvaWQgV2ViUHJvY2Vzc1Bvb2w6OnNldE1lZGlhQWNjZXNzaWJpbGl0eVByZWZl
cmVuY2VzKFdlYlByb2Nlc3NQcm94eSYgcHJvY2VzcykKIHsKLSAgICBkaXNwYXRjaF9hc3luYyhk
aXNwYXRjaF9nZXRfZ2xvYmFsX3F1ZXVlKERJU1BBVENIX1FVRVVFX1BSSU9SSVRZX0RFRkFVTFQs
IDApLCBbd2Vha1Byb2Nlc3MgPSBtYWtlV2Vha1B0cihwcm9jZXNzKV0geworICAgIGRpc3BhdGNo
X2FzeW5jKGRpc3BhdGNoX2dldF9nbG9iYWxfcXVldWUoRElTUEFUQ0hfUVVFVUVfUFJJT1JJVFlf
REVGQVVMVCwgMCksIFt3ZWFrUHJvY2VzcyA9IFdlYWtQdHIgeyBwcm9jZXNzIH1dIHsKICAgICAg
ICAgYXV0byBjYXB0aW9uRGlzcGxheU1vZGUgPSBXZWJDb3JlOjpDYXB0aW9uVXNlclByZWZlcmVu
Y2VzTWVkaWFBRjo6cGxhdGZvcm1DYXB0aW9uRGlzcGxheU1vZGUoKTsKICAgICAgICAgYXV0byBw
cmVmZXJyZWRMYW5ndWFnZXMgPSBXZWJDb3JlOjpDYXB0aW9uVXNlclByZWZlcmVuY2VzTWVkaWFB
Rjo6cGxhdGZvcm1QcmVmZXJyZWRMYW5ndWFnZXMoKTsKICAgICAgICAgY2FsbE9uTWFpblJ1bkxv
b3AoW3dlYWtQcm9jZXNzLCBjYXB0aW9uRGlzcGxheU1vZGUsIHByZWZlcnJlZExhbmd1YWdlcyA9
IFdURk1vdmUocHJlZmVycmVkTGFuZ3VhZ2VzKS5pc29sYXRlZENvcHkoKV0gewpAQCAtNzE2LDcg
KzcxNiw3IEBAIHZvaWQgV2ViUHJvY2Vzc1Bvb2w6OnJlbW92ZUNGTm90aWZpY2F0aW9uT2JzZXJ2
ZXIoQ0ZTdHJpbmdSZWYgbmFtZSwgQ0ZOb3RpZmljYXRpCiAKIHZvaWQgV2ViUHJvY2Vzc1Bvb2w6
OnJlZ2lzdGVyTm90aWZpY2F0aW9uT2JzZXJ2ZXJzKCkKIHsKLSAgICBtX3dlYWtPYnNlcnZlciA9
IGFkb3B0TlMoW1tXS1Byb2Nlc3NQb29sV2Vha09ic2VydmVyIGFsbG9jXSBpbml0V2l0aFdlYWtQ
dHI6bWFrZVdlYWtQdHIoKnRoaXMpXSk7CisgICAgbV93ZWFrT2JzZXJ2ZXIgPSBhZG9wdE5TKFtb
V0tQcm9jZXNzUG9vbFdlYWtPYnNlcnZlciBhbGxvY10gaW5pdFdpdGhXZWFrUHRyOip0aGlzXSk7
CiAKICNpZiAhUExBVEZPUk0oSU9TX0ZBTUlMWSkKICAgICBtX3Bvd2VyT2JzZXJ2ZXIgPSBtYWtl
VW5pcXVlPFdlYkNvcmU6OlBvd2VyT2JzZXJ2ZXI+KFt3ZWFrVGhpcyA9IFdlYWtQdHIgeyAqdGhp
cyB9XSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9XZWJWaWV3
SW1wbC5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dlYlZpZXdJbXBsLm1tCmlu
ZGV4IGNiODIzNjlhZTFhZTc5ZmFiYzExN2IzNDY2NjZiMzdiYjViZjkzNzguLjY1OTVmNGU1YjU2
ZjRiZWJlZGM2OTE3OGQ0MDM2MzVmYjlhNWRhYjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL0NvY29hL1dlYlZpZXdJbXBsLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0NvY29hL1dlYlZpZXdJbXBsLm1tCkBAIC0xMDExLDcgKzEwMTEsNyBAQCAtIChpbnN0YW5j
ZXR5cGUpaW5pdFdpdGhXZWJWaWV3SW1wbDooV2ViS2l0OjpXZWJWaWV3SW1wbCYpaW1wbAogICAg
IGlmICghKHNlbGYgPSBbc3VwZXIgaW5pdF0pKQogICAgICAgICByZXR1cm4gbmlsOwogCi0gICAg
X2ltcGwgPSBtYWtlV2Vha1B0cihpbXBsKTsKKyAgICBfaW1wbCA9IGltcGw7CiAgICAgcmV0dXJu
IHNlbGY7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0Rvd25sb2Fk
cy9Eb3dubG9hZFByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0Rvd25sb2Fkcy9E
b3dubG9hZFByb3h5LmNwcAppbmRleCA0NjM4NGU0MmY5MWUxNGMxMjIxNTRjYjkwNzUwZDI5ZWIy
ZDQ2ZTBkLi5lYjBjZmMzNzU3Y2VlMTcxMDViYzQzNzNhMDg3N2Q4NmM4OTg1OWQzIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Eb3dubG9hZHMvRG93bmxvYWRQcm94eS5jcHAK
KysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvRG93bmxvYWRzL0Rvd25sb2FkUHJveHkuY3Bw
CkBAIC01NCw3ICs1NCw3IEBAIERvd25sb2FkUHJveHk6OkRvd25sb2FkUHJveHkoRG93bmxvYWRQ
cm94eU1hcCYgZG93bmxvYWRQcm94eU1hcCwgV2Vic2l0ZURhdGFTdG9yCiAgICAgLCBtX2NsaWVu
dChjbGllbnQpCiAgICAgLCBtX2Rvd25sb2FkSUQoRG93bmxvYWRJRDo6Z2VuZXJhdGUoKSkKICAg
ICAsIG1fcmVxdWVzdChyZXNvdXJjZVJlcXVlc3QpCi0gICAgLCBtX29yaWdpbmF0aW5nUGFnZSht
YWtlV2Vha1B0cihvcmlnaW5hdGluZ1BhZ2UpKQorICAgICwgbV9vcmlnaW5hdGluZ1BhZ2Uob3Jp
Z2luYXRpbmdQYWdlKQogICAgICwgbV9mcmFtZUluZm8oQVBJOjpGcmFtZUluZm86OmNyZWF0ZShG
cmFtZUluZm9EYXRhIHsgZnJhbWVJbmZvRGF0YSB9LCBvcmlnaW5hdGluZ1BhZ2UpKQogewogfQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvR1BVL0dQVVByb2Nlc3NQcm94eS5j
cHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9HUFUvR1BVUHJvY2Vzc1Byb3h5LmNwcAppbmRl
eCBmYWQ1ZjlkNjc0NGFjMmZjYjU0Y2FhZWVlNjNlYjYzMzI1MTRjMDFkLi43Y2E2N2ViYjY2NmQ1
NGJlODY5Zjc5NGI0NWU3OGYyNzcxOWEzM2ZhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9HUFUvR1BVUHJvY2Vzc1Byb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9HUFUvR1BVUHJvY2Vzc1Byb3h5LmNwcApAQCAtMTA4LDcgKzEwOCw3IEBAIFJlZjxHUFVQ
cm9jZXNzUHJveHk+IEdQVVByb2Nlc3NQcm94eTo6Z2V0T3JDcmVhdGUoKQogICAgIH0KICAgICBh
dXRvIGdwdVByb2Nlc3MgPSBhZG9wdFJlZigqbmV3IEdQVVByb2Nlc3NQcm94eSk7CiAgICAgZ3B1
UHJvY2Vzcy0+dXBkYXRlUHJlZmVyZW5jZXMoKTsKLSAgICBzaW5nbGV0b24oKSA9IG1ha2VXZWFr
UHRyKGdwdVByb2Nlc3MuZ2V0KCkpOworICAgIHNpbmdsZXRvbigpID0gZ3B1UHJvY2VzczsKICAg
ICByZXR1cm4gZ3B1UHJvY2VzczsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvSW5zcGVjdG9yL0luc3BlY3RvclRhcmdldFByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL0luc3BlY3Rvci9JbnNwZWN0b3JUYXJnZXRQcm94eS5jcHAKaW5kZXggNjkyOGNh
MmZiZmI2OTM5MDYyZTNjZDE0YmI3YmE2ZjJmZGM4N2Y1Zi4uY2ZjYWNjZTAxMjJiYjAzZmE0N2Zk
ODU4MGNmYmVkZmIyYWQzN2Q0OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
SW5zcGVjdG9yL0luc3BlY3RvclRhcmdldFByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9JbnNwZWN0b3IvSW5zcGVjdG9yVGFyZ2V0UHJveHkuY3BwCkBAIC00NSw3ICs0NSw3
IEBAIHN0ZDo6dW5pcXVlX3B0cjxJbnNwZWN0b3JUYXJnZXRQcm94eT4gSW5zcGVjdG9yVGFyZ2V0
UHJveHk6OmNyZWF0ZShXZWJQYWdlUHJveHkmCiBzdGQ6OnVuaXF1ZV9wdHI8SW5zcGVjdG9yVGFy
Z2V0UHJveHk+IEluc3BlY3RvclRhcmdldFByb3h5OjpjcmVhdGUoUHJvdmlzaW9uYWxQYWdlUHJv
eHkmIHByb3Zpc2lvbmFsUGFnZSwgY29uc3QgU3RyaW5nJiB0YXJnZXRJZCwgSW5zcGVjdG9yOjpJ
bnNwZWN0b3JUYXJnZXRUeXBlIHR5cGUpCiB7CiAgICAgYXV0byB0YXJnZXQgPSBJbnNwZWN0b3JU
YXJnZXRQcm94eTo6Y3JlYXRlKHByb3Zpc2lvbmFsUGFnZS5wYWdlKCksIHRhcmdldElkLCB0eXBl
KTsKLSAgICB0YXJnZXQtPm1fcHJvdmlzaW9uYWxQYWdlID0gbWFrZVdlYWtQdHIocHJvdmlzaW9u
YWxQYWdlKTsKKyAgICB0YXJnZXQtPm1fcHJvdmlzaW9uYWxQYWdlID0gcHJvdmlzaW9uYWxQYWdl
OwogICAgIHJldHVybiB0YXJnZXQ7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL0luc3BlY3Rvci9XZWJJbnNwZWN0b3JVSUV4dGVuc2lvbkNvbnRyb2xsZXJQcm94eS5j
cHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9JbnNwZWN0b3IvV2ViSW5zcGVjdG9yVUlFeHRl
bnNpb25Db250cm9sbGVyUHJveHkuY3BwCmluZGV4IDA3YTYzZjQ5ZGE4NTY4MDdlMmJhMWVlMDE5
MjAxZGE4ZWMzOTgyOTAuLjdiZDFlMjhmNGYxOTZiZjFiZDMzMmNjYzgzYzFiOWU4YjJmMzliZGUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0luc3BlY3Rvci9XZWJJbnNwZWN0
b3JVSUV4dGVuc2lvbkNvbnRyb2xsZXJQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvSW5zcGVjdG9yL1dlYkluc3BlY3RvclVJRXh0ZW5zaW9uQ29udHJvbGxlclByb3h5LmNw
cApAQCAtMzgsNyArMzgsNyBAQAogbmFtZXNwYWNlIFdlYktpdCB7CiAKIFdlYkluc3BlY3RvclVJ
RXh0ZW5zaW9uQ29udHJvbGxlclByb3h5OjpXZWJJbnNwZWN0b3JVSUV4dGVuc2lvbkNvbnRyb2xs
ZXJQcm94eShXZWJQYWdlUHJveHkmIGluc3BlY3RvclBhZ2UpCi0gICAgOiBtX2luc3BlY3RvclBh
Z2UobWFrZVdlYWtQdHIoaW5zcGVjdG9yUGFnZSkpCisgICAgOiBtX2luc3BlY3RvclBhZ2UoaW5z
cGVjdG9yUGFnZSkKIHsKICAgICBtX2luc3BlY3RvclBhZ2UtPnByb2Nlc3MoKS5hZGRNZXNzYWdl
UmVjZWl2ZXIoTWVzc2FnZXM6OldlYkluc3BlY3RvclVJRXh0ZW5zaW9uQ29udHJvbGxlclByb3h5
OjptZXNzYWdlUmVjZWl2ZXJOYW1lKCksIG1faW5zcGVjdG9yUGFnZS0+d2ViUGFnZUlEKCksICp0
aGlzKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0xhdW5jaGVyL21h
Yy9Qcm9jZXNzTGF1bmNoZXJNYWMubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9MYXVuY2hl
ci9tYWMvUHJvY2Vzc0xhdW5jaGVyTWFjLm1tCmluZGV4IGRhYzMxYzNkOWY2NmEwOGIwZTBkMDY1
NmFmZTY3YTViZjg4YWEzYTUuLmVjMjZkMzc0M2FhYTJkNjdiNTkyMDJlZDlhNmFjMDRhOWFhM2Ji
OGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0xhdW5jaGVyL21hYy9Qcm9j
ZXNzTGF1bmNoZXJNYWMubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTGF1bmNoZXIv
bWFjL1Byb2Nlc3NMYXVuY2hlck1hYy5tbQpAQCAtMjMzLDcgKzIzMyw3IEBAIHZvaWQgUHJvY2Vz
c0xhdW5jaGVyOjpsYXVuY2hQcm9jZXNzKCkKIAogICAgIHhwY19kaWN0aW9uYXJ5X3NldF92YWx1
ZShib290c3RyYXBNZXNzYWdlLmdldCgpLCAiZXh0cmEtaW5pdGlhbGl6YXRpb24tZGF0YSIsIGV4
dHJhSW5pdGlhbGl6YXRpb25EYXRhLmdldCgpKTsKIAotICAgIGF1dG8gZXJyb3JIYW5kbGVySW1w
bCA9IFt3ZWFrUHJvY2Vzc0xhdW5jaGVyID0gbWFrZVdlYWtQdHIoKnRoaXMpLCBsaXN0ZW5pbmdQ
b3J0XSAoeHBjX29iamVjdF90IGV2ZW50KSB7CisgICAgYXV0byBlcnJvckhhbmRsZXJJbXBsID0g
W3dlYWtQcm9jZXNzTGF1bmNoZXIgPSBXZWFrUHRyIHsgKnRoaXMgfSwgbGlzdGVuaW5nUG9ydF0g
KHhwY19vYmplY3RfdCBldmVudCkgewogICAgICAgICBBU1NFUlQoIWV2ZW50IHx8IHhwY19nZXRf
dHlwZShldmVudCkgPT0gWFBDX1RZUEVfRVJST1IpOwogICAgICAgICAKICAgICAgICAgYXV0byBw
cm9jZXNzTGF1bmNoZXIgPSB3ZWFrUHJvY2Vzc0xhdW5jaGVyLmdldCgpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvTWVkaWEvUmVtb3RlTWVkaWFTZXNzaW9uQ29vcmRpbmF0
b3JQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9NZWRpYS9SZW1vdGVNZWRpYVNl
c3Npb25Db29yZGluYXRvclByb3h5LmNwcAppbmRleCA3MTE1NGFkZDBhZjJiOTE0YWUyM2FiM2Nl
YzQzM2EwZTEzMGUxMWQyLi4zZmUwYWJjZmUzNmJlZjdjYTQ1YmVkNTY2MWE3MzdlZDJiZmU1NmQw
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9NZWRpYS9SZW1vdGVNZWRpYVNl
c3Npb25Db29yZGluYXRvclByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9N
ZWRpYS9SZW1vdGVNZWRpYVNlc3Npb25Db29yZGluYXRvclByb3h5LmNwcApAQCAtNjAsNyArNjAs
NyBAQCBSZW1vdGVNZWRpYVNlc3Npb25Db29yZGluYXRvclByb3h5OjpSZW1vdGVNZWRpYVNlc3Np
b25Db29yZGluYXRvclByb3h5KFdlYlBhZ2VQcgogICAgICwgbV9sb2dJZGVudGlmaWVyKExvZ2dl
ckhlbHBlcjo6dW5pcXVlTG9nSWRlbnRpZmllcigpKQogI2VuZGlmCiB7Ci0gICAgbV9wcml2YXRl
Q29vcmRpbmF0b3ItPnNldENsaWVudChtYWtlV2Vha1B0cih0aGlzKSk7CisgICAgbV9wcml2YXRl
Q29vcmRpbmF0b3ItPnNldENsaWVudCgqdGhpcyk7CiAgICAgbV93ZWJQYWdlUHJveHkucHJvY2Vz
cygpLmFkZE1lc3NhZ2VSZWNlaXZlcihNZXNzYWdlczo6UmVtb3RlTWVkaWFTZXNzaW9uQ29vcmRp
bmF0b3JQcm94eTo6bWVzc2FnZVJlY2VpdmVyTmFtZSgpLCBtX3dlYlBhZ2VQcm94eS53ZWJQYWdl
SUQoKSwgKnRoaXMpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9N
ZWRpYUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0UHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvTWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdFByb3h5LmNwcAppbmRleCA4
OGJhMjNiOWU4YzIyZjJmMWVhZjdiNDVjNjhhZTFiOTY2OWFiY2Q1Li4yNjgzMjdhZWIyMzFhMmYy
ZjJkNjY2OGY0NWY0YThhZWE5YjUyYTRiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9NZWRpYUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0UHJveHkuY3BwCisrKyBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL01lZGlhS2V5U3lzdGVtUGVybWlzc2lvblJlcXVlc3RQcm94eS5j
cHAKQEAgLTM1LDcgKzM1LDcgQEAgbmFtZXNwYWNlIFdlYktpdCB7CiB1c2luZyBuYW1lc3BhY2Ug
V2ViQ29yZTsKIAogTWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdFByb3h5OjpNZWRpYUtl
eVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0UHJveHkoTWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVx
dWVzdE1hbmFnZXJQcm94eSYgbWFuYWdlciwgTWVkaWFLZXlTeXN0ZW1SZXF1ZXN0SWRlbnRpZmll
ciBtZWRpYUtleVN5c3RlbUlELCBGcmFtZUlkZW50aWZpZXIgbWFpbkZyYW1lSUQsIEZyYW1lSWRl
bnRpZmllciBmcmFtZUlELCBSZWY8V2ViQ29yZTo6U2VjdXJpdHlPcmlnaW4+JiYgdG9wTGV2ZWxE
b2N1bWVudE9yaWdpbiwgY29uc3QgU3RyaW5nJiBrZXlTeXN0ZW0pCi0gICAgOiBtX21hbmFnZXIo
bWFrZVdlYWtQdHIobWFuYWdlcikpCisgICAgOiBtX21hbmFnZXIobWFuYWdlcikKICAgICAsIG1f
bWVkaWFLZXlTeXN0ZW1JRChtZWRpYUtleVN5c3RlbUlEKQogICAgICwgbV9tYWluRnJhbWVJRCht
YWluRnJhbWVJRCkKICAgICAsIG1fZnJhbWVJRChmcmFtZUlEKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5LmNwcCBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5jcHAKaW5kZXgg
MmY1NWM2M2FiYjU1OWIxMDBkNzQ4ZGUxNWVmMDE3NmNhYTlkZGI3NS4uYzU1M2Y5Y2E3MTI5OGY4
NjkxY2FkMDFkMGY3OGJlM2E3MDY0ODVkYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHkuY3BwCkBAIC0zOTEsNyArMzkx
LDcgQEAgdm9pZCBOZXR3b3JrUHJvY2Vzc1Byb3h5OjpkaWRSZWNlaXZlQXV0aGVudGljYXRpb25D
aGFsbGVuZ2UoUEFMOjpTZXNzaW9uSUQgc2Vzc2kKICAgICBpZiAoY29yZUNoYWxsZW5nZS5wcm90
ZWN0aW9uU3BhY2UoKS5hdXRoZW50aWNhdGlvblNjaGVtZSgpID09IFByb3RlY3Rpb25TcGFjZUF1
dGhlbnRpY2F0aW9uU2NoZW1lQ2xpZW50Q2VydGlmaWNhdGVSZXF1ZXN0ZWQpIHsKICAgICAgICAg
aWYgKGF1dG8qIHN0b3JlID0gd2Vic2l0ZURhdGFTdG9yZUZyb21TZXNzaW9uSUQoc2Vzc2lvbklE
KSkgewogICAgICAgICAgICAgYXV0byBuZXdTZWNLZXlQcm94eVN0b3JlID0gU2VjS2V5UHJveHlT
dG9yZTo6Y3JlYXRlKCk7Ci0gICAgICAgICAgICBzZWNLZXlQcm94eVN0b3JlID0gbWFrZVdlYWtQ
dHIobmV3U2VjS2V5UHJveHlTdG9yZS5nZXQoKSk7CisgICAgICAgICAgICBzZWNLZXlQcm94eVN0
b3JlID0gbmV3U2VjS2V5UHJveHlTdG9yZTsKICAgICAgICAgICAgIHN0b3JlLT5hZGRTZWNLZXlQ
cm94eVN0b3JlKFdURk1vdmUobmV3U2VjS2V5UHJveHlTdG9yZSkpOwogICAgICAgICB9CiAgICAg
fQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJv
Y2Vzc1Byb3h5Q29jb2EubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9OZXR3b3JrL05ldHdv
cmtQcm9jZXNzUHJveHlDb2NvYS5tbQppbmRleCA2M2EwNWRkNTQwYWI1ZWFkYjVmMDBlYzQ0NTZh
ODk4MWUxNjM0YWI5Li4zMTU1NmQyMzcwZjc0MWEzOTA1MGNhNzI5MDIwYzNkYmU3NWY3ZDc1IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNz
UHJveHlDb2NvYS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9OZXR3b3JrL05ldHdv
cmtQcm9jZXNzUHJveHlDb2NvYS5tbQpAQCAtNjEsNyArNjEsNyBAQCBib29sIE5ldHdvcmtQcm9j
ZXNzUHJveHk6OlhQQ0V2ZW50SGFuZGxlcjo6aGFuZGxlWFBDRXZlbnQoeHBjX29iamVjdF90IGV2
ZW50KSBjbwogfQogCiBOZXR3b3JrUHJvY2Vzc1Byb3h5OjpYUENFdmVudEhhbmRsZXI6OlhQQ0V2
ZW50SGFuZGxlcihjb25zdCBOZXR3b3JrUHJvY2Vzc1Byb3h5JiBuZXR3b3JrUHJvY2VzcykKLSAg
ICA6IG1fbmV0d29ya1Byb2Nlc3MobWFrZVdlYWtQdHIobmV0d29ya1Byb2Nlc3MpKQorICAgIDog
bV9uZXR3b3JrUHJvY2VzcyhuZXR3b3JrUHJvY2VzcykKIHsKIH0KIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvUERGL1dLUERGSFVEVmlldy5tbSBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL1BERi9XS1BERkhVRFZpZXcubW0KaW5kZXggNmM0NjUwM2Y5ODdiMGYxMjY1ZTkz
OGIxZTBiNWY4MjQ1NWEzMzZjMi4uM2NmMjdkMWJlOTcwNGQ2YWY2NzExNGQ4ZTlhZDA5MGIyNmEx
ZThjZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUERGL1dLUERGSFVEVmll
dy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9QREYvV0tQREZIVURWaWV3Lm1tCkBA
IC0xMDIsNyArMTAyLDcgQEAgLSAoaW5zdGFuY2V0eXBlKWluaXRXaXRoRnJhbWU6KE5TUmVjdClm
cmFtZSBwbHVnaW5JZGVudGlmaWVyOihXZWJLaXQ6OlBERlBsdWdpbkkKICAgICBzZWxmLndhbnRz
TGF5ZXIgPSBZRVM7CiAgICAgX2NhY2hlZEljb25zID0gYWRvcHROUyhbW05TTXV0YWJsZURpY3Rp
b25hcnkgYWxsb2NdIGluaXRdKTsKICAgICBfcGx1Z2luSWRlbnRpZmllciA9IHBsdWdpbklkZW50
aWZpZXI7Ci0gICAgX3BhZ2UgPSBtYWtlV2Vha1B0cihwYWdlKTsKKyAgICBfcGFnZSA9IHBhZ2U7
CiAgICAgX2RldmljZVNjYWxlRmFjdG9yID0gcGFnZS5kZXZpY2VTY2FsZUZhY3RvcigpOwogICAg
IF92aXNpYmxlID0gWUVTOwogICAgIFtzZWxmIF9zZXR1cExheWVyOnNlbGYubGF5ZXJdOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvU3BlZWNoUmVjb2duaXRpb25QZXJtaXNz
aW9uUmVxdWVzdC5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvU3BlZWNoUmVjb2duaXRpb25Q
ZXJtaXNzaW9uUmVxdWVzdC5oCmluZGV4IDI4YWViNTg3YWMxMzlkOTI1ODQzYmU3NmYyNDE2MTU3
NmJlYWRjN2MuLjYyNjZjMTY3NTFjZWM2MTI0ZDEzMzExMGZiOWU0ZDQzMTI2MjVkMjEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1NwZWVjaFJlY29nbml0aW9uUGVybWlzc2lv
blJlcXVlc3QuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9TcGVlY2hSZWNvZ25pdGlv
blBlcm1pc3Npb25SZXF1ZXN0LmgKQEAgLTU5LDcgKzU5LDcgQEAgcHVibGljOgogCiBwcml2YXRl
OgogICAgIFNwZWVjaFJlY29nbml0aW9uUGVybWlzc2lvblJlcXVlc3QoV2ViQ29yZTo6U3BlZWNo
UmVjb2duaXRpb25SZXF1ZXN0JiByZXF1ZXN0LCBTcGVlY2hSZWNvZ25pdGlvblBlcm1pc3Npb25S
ZXF1ZXN0Q2FsbGJhY2smJiBjb21wbGV0aW9uSGFuZGxlcikKLSAgICAgICAgOiBtX3JlcXVlc3Qo
bWFrZVdlYWtQdHIocmVxdWVzdCkpCisgICAgICAgIDogbV9yZXF1ZXN0KHJlcXVlc3QpCiAgICAg
ICAgICwgbV9jb21wbGV0aW9uSGFuZGxlcihXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSkKICAg
ICB7IH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvU3BlZWNoUmVjb2du
aXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlLmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL1NwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZS5jcHAKaW5kZXgg
ZTQyZGJmMTI4MWQzNmZlZjJlMzAzZTcwN2Q1YjViYWYxNjZlZTE1Mi4uNTNjYWRkMzRhYjkyODBl
MjBmNzNmMWEyYmEzYmMxM2QxYTU0MTkzOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlLmNwcAorKysg
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9TcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1l
TWVkaWFTb3VyY2UuY3BwCkBAIC00Nyw3ICs0Nyw3IEBAIFJlZjxXZWJDb3JlOjpSZWFsdGltZU1l
ZGlhU291cmNlPiBTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2U6OmNy
CiBTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2U6OlNwZWVjaFJlY29n
bml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZShXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291
cmNlSWRlbnRpZmllciBpZGVudGlmaWVyLCBTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1l
TWVkaWFTb3VyY2VNYW5hZ2VyJiBtYW5hZ2VyLCBjb25zdCBXZWJDb3JlOjpDYXB0dXJlRGV2aWNl
JiBjYXB0dXJlRGV2aWNlKQogICAgIDogV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZShXZWJD
b3JlOjpSZWFsdGltZU1lZGlhU291cmNlOjpUeXBlOjpBdWRpbywgU3RyaW5nIHsgY2FwdHVyZURl
dmljZS5sYWJlbCgpIH0sIFN0cmluZyB7IGNhcHR1cmVEZXZpY2UucGVyc2lzdGVudElkKCkgfSkK
ICAgICAsIG1faWRlbnRpZmllcihpZGVudGlmaWVyKQotICAgICwgbV9tYW5hZ2VyKG1ha2VXZWFr
UHRyKG1hbmFnZXIpKQorICAgICwgbV9tYW5hZ2VyKG1hbmFnZXIpCiAjaWYgUExBVEZPUk0oQ09D
T0EpCiAgICAgLCBtX3JpbmdCdWZmZXIobWFrZVVuaXF1ZTxXZWJDb3JlOjpDQVJpbmdCdWZmZXI+
KCkpCiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1NwZWVjaFJl
Y29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIuY3BwIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNl
TWFuYWdlci5jcHAKaW5kZXggYmMwYzcwOGE4NjQ3YjNiNmViMDVjMDFhYzEyYTA3Y2Y4YzgyMDdm
Yi4uNjhkYzExNWYxNjlmMTllZjg5ZjY2ZmU1YzhmMjQxYzg1Yjk3OGQ3MSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1l
ZGlhU291cmNlTWFuYWdlci5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvU3BlZWNo
UmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlci5jcHAKQEAgLTQyLDcg
KzQyLDcgQEAgdm9pZCBTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VN
YW5hZ2VyOjphZGRTb3VyY2UoU3BlZWNoUmVjb2duaXQKIHsKICAgICBhdXRvIGlkZW50aWZpZXIg
PSBzb3VyY2UuaWRlbnRpZmllcigpOwogICAgIEFTU0VSVCghbV9zb3VyY2VzLmNvbnRhaW5zKGlk
ZW50aWZpZXIpKTsKLSAgICBtX3NvdXJjZXMuYWRkKGlkZW50aWZpZXIsIG1ha2VXZWFrUHRyKHNv
dXJjZSkpOworICAgIG1fc291cmNlcy5hZGQoaWRlbnRpZmllciwgc291cmNlKTsKIAogI2lmIEVO
QUJMRShTQU5EQk9YX0VYVEVOU0lPTlMpCiAgICAgaWYgKCFjYXB0dXJlRGV2aWNlLmlzTW9ja0Rl
dmljZSgpKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9WaWV3R2VzdHVy
ZUNvbnRyb2xsZXIuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvVmlld0dlc3R1cmVDb250
cm9sbGVyLmNwcAppbmRleCA1YjQ5Yjk5MTdiNzc0NzU2MmQ4N2UwYjM4MzZiMTRjYzFlN2Q2NDI0
Li43YmQ1ODc3ZGQ4ZTkyNThkYzVkNmE3ZmE0Mjg2N2ZiOTI5NzlkNmZhIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9WaWV3R2VzdHVyZUNvbnRyb2xsZXIuY3BwCisrKyBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL1ZpZXdHZXN0dXJlQ29udHJvbGxlci5jcHAKQEAgLTE0Niw3
ICsxNDYsNyBAQCB2b2lkIFZpZXdHZXN0dXJlQ29udHJvbGxlcjo6ZGlkRW5kR2VzdHVyZSgpCiAK
IHZvaWQgVmlld0dlc3R1cmVDb250cm9sbGVyOjpzZXRBbHRlcm5hdGVCYWNrRm9yd2FyZExpc3RT
b3VyY2VQYWdlKFdlYlBhZ2VQcm94eSogcGFnZSkKIHsKLSAgICBtX2FsdGVybmF0ZUJhY2tGb3J3
YXJkTGlzdFNvdXJjZVBhZ2UgPSBtYWtlV2Vha1B0cihwYWdlKTsKKyAgICBtX2FsdGVybmF0ZUJh
Y2tGb3J3YXJkTGlzdFNvdXJjZVBhZ2UgPSBwYWdlOwogfQogCiBib29sIFZpZXdHZXN0dXJlQ29u
dHJvbGxlcjo6Y2FuU3dpcGVJbkRpcmVjdGlvbihTd2lwZURpcmVjdGlvbiBkaXJlY3Rpb24pIGNv
bnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlv
bi9BdXRoZW50aWNhdG9yLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJBdXRoZW50aWNh
dGlvbi9BdXRoZW50aWNhdG9yLmgKaW5kZXggMmU3MTBhYTJlN2JlMmY3YzRhYWUxMGU0MDNkOTgy
MTQzZTBhYjU4NC4uNWNmOWFmNTcwOGU4YzFiMWYxN2JjNGRkY2EyMmVmYzk0Y2MzNGFhYiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViQXV0aGVudGljYXRpb24vQXV0aGVu
dGljYXRvci5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9u
L0F1dGhlbnRpY2F0b3IuaApAQCAtNjMsNyArNjMsNyBAQCBwdWJsaWM6CiAKICAgICB2aXJ0dWFs
IH5BdXRoZW50aWNhdG9yKCkgPSBkZWZhdWx0OwogCi0gICAgdm9pZCBzZXRPYnNlcnZlcihPYnNl
cnZlciYgb2JzZXJ2ZXIpIHsgbV9vYnNlcnZlciA9IG1ha2VXZWFrUHRyKG9ic2VydmVyKTsgfQor
ICAgIHZvaWQgc2V0T2JzZXJ2ZXIoT2JzZXJ2ZXImIG9ic2VydmVyKSB7IG1fb2JzZXJ2ZXIgPSBv
YnNlcnZlcjsgfQogCiAgICAgLy8gVGhpcyBvcGVyYXRpb24gaXMgZ3VhcmFudGVlZCB0byBleGVj
dXRlIGFzeW5jaHJvbm91c2x5LgogICAgIHZvaWQgaGFuZGxlUmVxdWVzdChjb25zdCBXZWJBdXRo
ZW50aWNhdGlvblJlcXVlc3REYXRhJik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9BdXRoZW50aWNhdG9yTWFuYWdlci5jcHAgYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9BdXRoZW50aWNhdG9yTWFuYWdlci5j
cHAKaW5kZXggMzc3MTE2MWEyOTU2YmU0Yzg4N2QwMWNhNTYxYWY2Yjg4Yjc1OGRhNS4uZDNhZTQw
M2VmYmQ5N2U5Njc1MWRhZTM5ZjQ1MjYzMWI4YzEzOGJlYyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvV2ViQXV0aGVudGljYXRpb24vQXV0aGVudGljYXRvck1hbmFnZXIuY3Bw
CisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL0F1dGhlbnRp
Y2F0b3JNYW5hZ2VyLmNwcApAQCAtNDYyLDcgKzQ2Miw3IEBAIHZvaWQgQXV0aGVudGljYXRvck1h
bmFnZXI6OnJ1blBhbmVsKCkKIAogICAgIG1fcGVuZGluZ1JlcXVlc3REYXRhLnBhbmVsID0gQVBJ
OjpXZWJBdXRoZW50aWNhdGlvblBhbmVsOjpjcmVhdGUoKnRoaXMsIGdldFJwSWQob3B0aW9ucyks
IHRyYW5zcG9ydHMsIGdldENsaWVudERhdGFUeXBlKG9wdGlvbnMpLCBnZXRVc2VyTmFtZShvcHRp
b25zKSk7CiAgICAgYXV0byYgcGFuZWwgPSAqbV9wZW5kaW5nUmVxdWVzdERhdGEucGFuZWw7Ci0g
ICAgcGFnZS0+dWlDbGllbnQoKS5ydW5XZWJBdXRoZW50aWNhdGlvblBhbmVsKCpwYWdlLCBwYW5l
bCwgKmZyYW1lLCBGcmFtZUluZm9EYXRhIHsgbV9wZW5kaW5nUmVxdWVzdERhdGEuZnJhbWVJbmZv
IH0sIFt0cmFuc3BvcnRzID0gV1RGTW92ZSh0cmFuc3BvcnRzKSwgd2Vha1BhbmVsID0gbWFrZVdl
YWtQdHIocGFuZWwpLCB3ZWFrVGhpcyA9IFdlYWtQdHIgeyAqdGhpcyB9LCB0aGlzXSAoV2ViQXV0
aGVudGljYXRpb25QYW5lbFJlc3VsdCByZXN1bHQpIHsKKyAgICBwYWdlLT51aUNsaWVudCgpLnJ1
bldlYkF1dGhlbnRpY2F0aW9uUGFuZWwoKnBhZ2UsIHBhbmVsLCAqZnJhbWUsIEZyYW1lSW5mb0Rh
dGEgeyBtX3BlbmRpbmdSZXF1ZXN0RGF0YS5mcmFtZUluZm8gfSwgW3RyYW5zcG9ydHMgPSBXVEZN
b3ZlKHRyYW5zcG9ydHMpLCB3ZWFrUGFuZWwgPSBXZWFrUHRyIHsgcGFuZWwgfSwgd2Vha1RoaXMg
PSBXZWFrUHRyIHsgKnRoaXMgfSwgdGhpc10gKFdlYkF1dGhlbnRpY2F0aW9uUGFuZWxSZXN1bHQg
cmVzdWx0KSB7CiAgICAgICAgIC8vIFRoZSBwYW5lbCBhZGRyZXNzIGlzIHVzZWQgdG8gZGV0ZXJt
aW5lIGlmIHRoZSBjdXJyZW50IHBlbmRpbmcgcmVxdWVzdCBpcyBzdGlsbCB0aGUgc2FtZS4KICAg
ICAgICAgaWYgKCF3ZWFrVGhpcyB8fCAhd2Vha1BhbmVsCiAgICAgICAgICAgICB8fCAocmVzdWx0
ID09IFdlYkF1dGhlbnRpY2F0aW9uUGFuZWxSZXN1bHQ6OkRpZE5vdFByZXNlbnQpCkBAIC01MzUs
NyArNTM1LDcgQEAgdm9pZCBBdXRoZW50aWNhdG9yTWFuYWdlcjo6ZGlzcGF0Y2hQYW5lbENsaWVu
dENhbGwoRnVuY3Rpb248dm9pZChjb25zdCBBUEk6OldlYkEKIHsKICAgICBhdXRvIHdlYWtQYW5l
bCA9IG1fcGVuZGluZ1JlcXVlc3REYXRhLndlYWtQYW5lbDsKICAgICBpZiAoIXdlYWtQYW5lbCkK
LSAgICAgICAgd2Vha1BhbmVsID0gbWFrZVdlYWtQdHIobV9wZW5kaW5nUmVxdWVzdERhdGEucGFu
ZWwuZ2V0KCkpOworICAgICAgICB3ZWFrUGFuZWwgPSBtX3BlbmRpbmdSZXF1ZXN0RGF0YS5wYW5l
bDsKICAgICBpZiAoIXdlYWtQYW5lbCkKICAgICAgICAgcmV0dXJuOwogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9BdXRoZW50aWNhdG9yVHJh
bnNwb3J0U2VydmljZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJBdXRoZW50aWNh
dGlvbi9BdXRoZW50aWNhdG9yVHJhbnNwb3J0U2VydmljZS5jcHAKaW5kZXggMTNiOTEzNjc0NTRk
ZjJkOGUyZDljMzkxOWE3ZjUxOTgyMzhjYzQ1Yi4uMDUwYmM1MjQwYWNkNzcyYmExZDRkOWZiMDE2
NzAyZmY3ODAxYWZhOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViQXV0
aGVudGljYXRpb24vQXV0aGVudGljYXRvclRyYW5zcG9ydFNlcnZpY2UuY3BwCisrKyBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL0F1dGhlbnRpY2F0b3JUcmFuc3Bv
cnRTZXJ2aWNlLmNwcApAQCAtNjksNyArNjksNyBAQCBVbmlxdWVSZWY8QXV0aGVudGljYXRvclRy
YW5zcG9ydFNlcnZpY2U+IEF1dGhlbnRpY2F0b3JUcmFuc3BvcnRTZXJ2aWNlOjpjcmVhdGVNbwog
fQogCiBBdXRoZW50aWNhdG9yVHJhbnNwb3J0U2VydmljZTo6QXV0aGVudGljYXRvclRyYW5zcG9y
dFNlcnZpY2UoT2JzZXJ2ZXImIG9ic2VydmVyKQotICAgIDogbV9vYnNlcnZlcihtYWtlV2Vha1B0
cihvYnNlcnZlcikpCisgICAgOiBtX29ic2VydmVyKG9ic2VydmVyKQogewogfQogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9Db2NvYS9BdXRo
ZW50aWNhdG9yUHJlc2VudGVyQ29vcmRpbmF0b3IubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9XZWJBdXRoZW50aWNhdGlvbi9Db2NvYS9BdXRoZW50aWNhdG9yUHJlc2VudGVyQ29vcmRpbmF0
b3IubW0KaW5kZXggYmQwZThjYWI3OTY4NWI3MDYxYzkyMTFkNDk5N2Y1YzJhYTE0Y2MxMS4uYTE3
ZjhhMmRiY2QzYTAyZjNmOGFlOWI1NjMxYmY4ZGUxMzEyMThlYyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvV2ViQXV0aGVudGljYXRpb24vQ29jb2EvQXV0aGVudGljYXRvclBy
ZXNlbnRlckNvb3JkaW5hdG9yLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkF1
dGhlbnRpY2F0aW9uL0NvY29hL0F1dGhlbnRpY2F0b3JQcmVzZW50ZXJDb29yZGluYXRvci5tbQpA
QCAtMzgsNyArMzgsNyBAQCBuYW1lc3BhY2UgV2ViS2l0IHsKIHVzaW5nIG5hbWVzcGFjZSBXZWJD
b3JlOwogCiBBdXRoZW50aWNhdG9yUHJlc2VudGVyQ29vcmRpbmF0b3I6OkF1dGhlbnRpY2F0b3JQ
cmVzZW50ZXJDb29yZGluYXRvcihjb25zdCBBdXRoZW50aWNhdG9yTWFuYWdlciYgbWFuYWdlciwg
Y29uc3QgU3RyaW5nJiBycElkLCBjb25zdCBUcmFuc3BvcnRTZXQmIHRyYW5zcG9ydHMsIENsaWVu
dERhdGFUeXBlIHR5cGUsIGNvbnN0IFN0cmluZyYgdXNlcm5hbWUpCi0gICAgOiBtX21hbmFnZXIo
bWFrZVdlYWtQdHIobWFuYWdlcikpCisgICAgOiBtX21hbmFnZXIobWFuYWdlcikKIHsKICNpZiBI
QVZFKEFTQ19BVVRIX1VJKQogICAgIG1fY29udGV4dCA9IGFkb3B0TlMoW2FsbG9jQVNDQXV0aG9y
aXphdGlvblByZXNlbnRhdGlvbkNvbnRleHRJbnN0YW5jZSgpIGluaXRXaXRoUmVxdWVzdENvbnRl
eHQ6bnVsbHB0ciBhcHBJZGVudGlmaWVyOm51bGxwdHJdKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL0NvY29hL05mY0Nvbm5lY3Rpb24ubW0g
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9Db2NvYS9OZmNDb25u
ZWN0aW9uLm1tCmluZGV4IDFlNzBhMzE1NDFmM2E2MzA4YzNlMzFjNGJkMmI2YTE2YWQ3ZTlkOWMu
LmNkOGY4YjgyNzRkZmEzNmQzOWQ3YjA1NGZiZGIxOTYyOThjNWU3YzIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL0NvY29hL05mY0Nvbm5lY3Rp
b24ubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViQXV0aGVudGljYXRpb24vQ29j
b2EvTmZjQ29ubmVjdGlvbi5tbQpAQCAtNzcsNyArNzcsNyBAQCBSZWY8TmZjQ29ubmVjdGlvbj4g
TmZjQ29ubmVjdGlvbjo6Y3JlYXRlKFJldGFpblB0cjxORlJlYWRlclNlc3Npb24+JiYgc2Vzc2lv
biwgTgogTmZjQ29ubmVjdGlvbjo6TmZjQ29ubmVjdGlvbihSZXRhaW5QdHI8TkZSZWFkZXJTZXNz
aW9uPiYmIHNlc3Npb24sIE5mY1NlcnZpY2UmIHNlcnZpY2UpCiAgICAgOiBtX3Nlc3Npb24oV1RG
TW92ZShzZXNzaW9uKSkKICAgICAsIG1fZGVsZWdhdGUoYWRvcHROUyhbW1dLTkZSZWFkZXJTZXNz
aW9uRGVsZWdhdGUgYWxsb2NdIGluaXRXaXRoQ29ubmVjdGlvbjoqdGhpc10pKQotICAgICwgbV9z
ZXJ2aWNlKG1ha2VXZWFrUHRyKHNlcnZpY2UpKQorICAgICwgbV9zZXJ2aWNlKHNlcnZpY2UpCiAg
ICAgLCBtX3JldHJ5VGltZXIoUnVuTG9vcDo6bWFpbigpLCB0aGlzLCAmTmZjQ29ubmVjdGlvbjo6
c3RhcnRQb2xsaW5nKQogewogICAgIFttX3Nlc3Npb24gc2V0RGVsZWdhdGU6bV9kZWxlZ2F0ZS5n
ZXQoKV07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJBdXRoZW50aWNh
dGlvbi9Db2NvYS9XS0FTQ0F1dGhvcml6YXRpb25QcmVzZW50ZXJEZWxlZ2F0ZS5tbSBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL0NvY29hL1dLQVNDQXV0aG9yaXph
dGlvblByZXNlbnRlckRlbGVnYXRlLm1tCmluZGV4IGYyOTUwZmUzMDY5MTVmMDFjN2RhYjhiMDI5
MGQ3MGEzZWM3OTAzMTUuLjllMzQyNDU5ZDk3ZDUyNjZmMWYwMmY1ZmNhOGMxZTFiMTkzM2Q5NjIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL0Nv
Y29hL1dLQVNDQXV0aG9yaXphdGlvblByZXNlbnRlckRlbGVnYXRlLm1tCisrKyBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL0NvY29hL1dLQVNDQXV0aG9yaXphdGlv
blByZXNlbnRlckRlbGVnYXRlLm1tCkBAIC00Myw3ICs0Myw3IEBAIEBpbXBsZW1lbnRhdGlvbiBX
S0FTQ0F1dGhvcml6YXRpb25QcmVzZW50ZXJEZWxlZ2F0ZSB7CiAtIChpbnN0YW5jZXR5cGUpaW5p
dFdpdGhDb29yZGluYXRvcjooV2ViS2l0OjpBdXRoZW50aWNhdG9yUHJlc2VudGVyQ29vcmRpbmF0
b3ImKWNvb3JkaW5hdG9yCiB7CiAgICAgaWYgKChzZWxmID0gW3N1cGVyIGluaXRdKSkKLSAgICAg
ICAgX2Nvb3JkaW5hdG9yID0gbWFrZVdlYWtQdHIoY29vcmRpbmF0b3IpOworICAgICAgICBfY29v
cmRpbmF0b3IgPSBjb29yZGluYXRvcjsKICAgICByZXR1cm4gc2VsZjsKIH0KIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViQXV0aGVudGljYXRpb24vQ29jb2EvV0tORlJl
YWRlclNlc3Npb25EZWxlZ2F0ZS5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkF1dGhl
bnRpY2F0aW9uL0NvY29hL1dLTkZSZWFkZXJTZXNzaW9uRGVsZWdhdGUubW0KaW5kZXggYzdjZmNi
NTU4MzJiZDY4YjVmYWIxMDg2NTljYjE4YTRjYWNjYmViMy4uYjMwOWI4MWE3ZTk4NTY4MzI1ZmFj
NTQ3YWZkZjZjZjA4NTQ2ZGY0ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
V2ViQXV0aGVudGljYXRpb24vQ29jb2EvV0tORlJlYWRlclNlc3Npb25EZWxlZ2F0ZS5tbQorKysg
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9Db2NvYS9XS05GUmVh
ZGVyU2Vzc2lvbkRlbGVnYXRlLm1tCkBAIC00MSw3ICs0MSw3IEBAIEBpbXBsZW1lbnRhdGlvbiBX
S05GUmVhZGVyU2Vzc2lvbkRlbGVnYXRlIHsKIC0gKGluc3RhbmNldHlwZSlpbml0V2l0aENvbm5l
Y3Rpb246KFdlYktpdDo6TmZjQ29ubmVjdGlvbiYpY29ubmVjdGlvbgogewogICAgIGlmICgoc2Vs
ZiA9IFtzdXBlciBpbml0XSkpCi0gICAgICAgIF9jb25uZWN0aW9uID0gbWFrZVdlYWtQdHIoY29u
bmVjdGlvbik7CisgICAgICAgIF9jb25uZWN0aW9uID0gY29ubmVjdGlvbjsKICAgICByZXR1cm4g
c2VsZjsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViQXV0aGVu
dGljYXRpb24vQ29jb2EvV2ViQXV0aGVudGljYXRvckNvb3JkaW5hdG9yUHJveHkubW0gYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9Db2NvYS9XZWJBdXRoZW50aWNh
dG9yQ29vcmRpbmF0b3JQcm94eS5tbQppbmRleCBhMmEyOTcxOWJhNzdkZTQ3M2RjM2YyNGE0NGQw
NWEwMmE5ODM3MTVkLi4wYmJkYmYzNmE1NGY5YzViNDE4MDQ2OWVmMDMxMjk5M2U4ODVhNmE4IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9Db2Nv
YS9XZWJBdXRoZW50aWNhdG9yQ29vcmRpbmF0b3JQcm94eS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9Db2NvYS9XZWJBdXRoZW50aWNhdG9yQ29vcmRp
bmF0b3JQcm94eS5tbQpAQCAtMjY0LDcgKzI2NCw3IEBAIHZvaWQgV2ViQXV0aGVudGljYXRvckNv
b3JkaW5hdG9yUHJveHk6OnBlcmZvcm1SZXF1ZXN0KFJldGFpblB0cjxBU0NDcmVkZW50aWFsUmVx
CiAgICAgYXV0byBwcm94eSA9IGFkb3B0TlMoW2FsbG9jQVNDQWdlbnRQcm94eUluc3RhbmNlKCkg
aW5pdF0pOwogCiAgICAgUmV0YWluUHRyPE5TV2luZG93PiB3aW5kb3cgPSBtX3dlYlBhZ2VQcm94
eS5wbGF0Zm9ybVdpbmRvdygpOwotICAgIFtwcm94eSBwZXJmb3JtQXV0aG9yaXphdGlvblJlcXVl
c3RzRm9yQ29udGV4dDpyZXF1ZXN0Q29udGV4dC5nZXQoKSB3aXRoQ2xlYXJhbmNlSGFuZGxlcjpt
YWtlQmxvY2tQdHIoW3dlYWtUaGlzID0gbWFrZVdlYWtQdHIoKnRoaXMpLCBoYW5kbGVyID0gV1RG
TW92ZShoYW5kbGVyKSwgd2luZG93ID0gV1RGTW92ZSh3aW5kb3cpXShOU1hQQ0xpc3RlbmVyRW5k
cG9pbnQgKmRhZW1vbkVucG9pbnQsIE5TRXJyb3IgKmVycm9yKSBtdXRhYmxlIHsKKyAgICBbcHJv
eHkgcGVyZm9ybUF1dGhvcml6YXRpb25SZXF1ZXN0c0ZvckNvbnRleHQ6cmVxdWVzdENvbnRleHQu
Z2V0KCkgd2l0aENsZWFyYW5jZUhhbmRsZXI6bWFrZUJsb2NrUHRyKFt3ZWFrVGhpcyA9IFdlYWtQ
dHIgeyAqdGhpcyB9LCBoYW5kbGVyID0gV1RGTW92ZShoYW5kbGVyKSwgd2luZG93ID0gV1RGTW92
ZSh3aW5kb3cpXShOU1hQQ0xpc3RlbmVyRW5kcG9pbnQgKmRhZW1vbkVucG9pbnQsIE5TRXJyb3Ig
KmVycm9yKSBtdXRhYmxlIHsKICAgICAgICAgYXV0byBwcm90ZWN0ZWRUaGlzID0gd2Vha1RoaXMu
Z2V0KCk7CiAKICAgICAgICAgaWYgKCFwcm90ZWN0ZWRUaGlzIHx8ICFkYWVtb25FbnBvaW50KSB7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9X
ZWJBdXRoZW50aWNhdG9yQ29vcmRpbmF0b3JQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9XZWJBdXRoZW50aWNhdG9yQ29vcmRpbmF0b3JQcm94eS5j
cHAKaW5kZXggOTgyMzdmMTU0NTAxN2U2ZTMzZWUzZWI1MzFiODU1MjZjYTA4MDMwOC4uOTNiMmNk
ZjAxNmNiNWY2YWZjMWVjMzMxMmMxYjg1M2I2YTY1MTFjMCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvV2ViQXV0aGVudGljYXRpb24vV2ViQXV0aGVudGljYXRvckNvb3JkaW5h
dG9yUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0
aW9uL1dlYkF1dGhlbnRpY2F0b3JDb29yZGluYXRvclByb3h5LmNwcApAQCAtNTgsMTIgKzU4LDEy
IEBAIFdlYkF1dGhlbnRpY2F0b3JDb29yZGluYXRvclByb3h5Ojp+V2ViQXV0aGVudGljYXRvckNv
b3JkaW5hdG9yUHJveHkoKQogI2lmICFIQVZFKFVOSUZJRURfQVNDX0FVVEhfVUkpCiB2b2lkIFdl
YkF1dGhlbnRpY2F0b3JDb29yZGluYXRvclByb3h5OjptYWtlQ3JlZGVudGlhbChGcmFtZUlkZW50
aWZpZXIgZnJhbWVJZCwgRnJhbWVJbmZvRGF0YSYmIGZyYW1lSW5mbywgVmVjdG9yPHVpbnQ4X3Q+
JiYgaGFzaCwgUHVibGljS2V5Q3JlZGVudGlhbENyZWF0aW9uT3B0aW9ucyYmIG9wdGlvbnMsIGJv
b2wgcHJvY2Vzc2luZ1VzZXJHZXN0dXJlLCBSZXF1ZXN0Q29tcGxldGlvbkhhbmRsZXImJiBoYW5k
bGVyKQogewotICAgIGhhbmRsZVJlcXVlc3QoeyBXVEZNb3ZlKGhhc2gpLCBXVEZNb3ZlKG9wdGlv
bnMpLCBtYWtlV2Vha1B0cihtX3dlYlBhZ2VQcm94eSksIFdlYkF1dGhlbnRpY2F0aW9uUGFuZWxS
ZXN1bHQ6OlVuYXZhaWxhYmxlLCBudWxscHRyLCBHbG9iYWxGcmFtZUlkZW50aWZpZXIgeyBtX3dl
YlBhZ2VQcm94eS53ZWJQYWdlSUQoKSwgZnJhbWVJZCB9LCBXVEZNb3ZlKGZyYW1lSW5mbyksIHBy
b2Nlc3NpbmdVc2VyR2VzdHVyZSwgU3RyaW5nKCksIG51bGxwdHIgfSwgV1RGTW92ZShoYW5kbGVy
KSk7CisgICAgaGFuZGxlUmVxdWVzdCh7IFdURk1vdmUoaGFzaCksIFdURk1vdmUob3B0aW9ucyks
IG1fd2ViUGFnZVByb3h5LCBXZWJBdXRoZW50aWNhdGlvblBhbmVsUmVzdWx0OjpVbmF2YWlsYWJs
ZSwgbnVsbHB0ciwgR2xvYmFsRnJhbWVJZGVudGlmaWVyIHsgbV93ZWJQYWdlUHJveHkud2ViUGFn
ZUlEKCksIGZyYW1lSWQgfSwgV1RGTW92ZShmcmFtZUluZm8pLCBwcm9jZXNzaW5nVXNlckdlc3R1
cmUsIFN0cmluZygpLCBudWxscHRyIH0sIFdURk1vdmUoaGFuZGxlcikpOwogfQogCiB2b2lkIFdl
YkF1dGhlbnRpY2F0b3JDb29yZGluYXRvclByb3h5OjpnZXRBc3NlcnRpb24oRnJhbWVJZGVudGlm
aWVyIGZyYW1lSWQsIEZyYW1lSW5mb0RhdGEmJiBmcmFtZUluZm8sIFZlY3Rvcjx1aW50OF90PiYm
IGhhc2gsIFB1YmxpY0tleUNyZWRlbnRpYWxSZXF1ZXN0T3B0aW9ucyYmIG9wdGlvbnMsIGJvb2wg
cHJvY2Vzc2luZ1VzZXJHZXN0dXJlLCBSZXF1ZXN0Q29tcGxldGlvbkhhbmRsZXImJiBoYW5kbGVy
KQogewotICAgIGhhbmRsZVJlcXVlc3QoeyBXVEZNb3ZlKGhhc2gpLCBXVEZNb3ZlKG9wdGlvbnMp
LCBtYWtlV2Vha1B0cihtX3dlYlBhZ2VQcm94eSksIFdlYkF1dGhlbnRpY2F0aW9uUGFuZWxSZXN1
bHQ6OlVuYXZhaWxhYmxlLCBudWxscHRyLCBHbG9iYWxGcmFtZUlkZW50aWZpZXIgeyBtX3dlYlBh
Z2VQcm94eS53ZWJQYWdlSUQoKSwgZnJhbWVJZCB9LCBXVEZNb3ZlKGZyYW1lSW5mbyksIHByb2Nl
c3NpbmdVc2VyR2VzdHVyZSwgU3RyaW5nKCksIG51bGxwdHIgfSwgV1RGTW92ZShoYW5kbGVyKSk7
CisgICAgaGFuZGxlUmVxdWVzdCh7IFdURk1vdmUoaGFzaCksIFdURk1vdmUob3B0aW9ucyksIG1f
d2ViUGFnZVByb3h5LCBXZWJBdXRoZW50aWNhdGlvblBhbmVsUmVzdWx0OjpVbmF2YWlsYWJsZSwg
bnVsbHB0ciwgR2xvYmFsRnJhbWVJZGVudGlmaWVyIHsgbV93ZWJQYWdlUHJveHkud2ViUGFnZUlE
KCksIGZyYW1lSWQgfSwgV1RGTW92ZShmcmFtZUluZm8pLCBwcm9jZXNzaW5nVXNlckdlc3R1cmUs
IFN0cmluZygpLCBudWxscHRyIH0sIFdURk1vdmUoaGFuZGxlcikpOwogfQogI2VuZGlmCiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL2ZpZG8v
Rmlkb1NlcnZpY2UuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViQXV0aGVudGljYXRp
b24vZmlkby9GaWRvU2VydmljZS5jcHAKaW5kZXggNDhiOWQyZjA3YWViNmQ1N2E2N2Y3NWM5ZjEx
YzM0NTc5NGQwNjU1Mi4uYTFlNjQ3M2JjYmI5ZWM2MWU5NmRjNTk1MGIzZGZjMWE5MmVmZjNlYyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViQXV0aGVudGljYXRpb24vZmlk
by9GaWRvU2VydmljZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViQXV0aGVu
dGljYXRpb24vZmlkby9GaWRvU2VydmljZS5jcHAKQEAgLTQ5LDcgKzQ5LDcgQEAgRmlkb1NlcnZp
Y2U6OkZpZG9TZXJ2aWNlKE9ic2VydmVyJiBvYnNlcnZlcikKIHZvaWQgRmlkb1NlcnZpY2U6Omdl
dEluZm8oc3RkOjp1bmlxdWVfcHRyPEN0YXBEcml2ZXI+JiYgZHJpdmVyKQogewogICAgIC8vIEdl
dCBhdXRoZW50aWNhdG9yIGluZm8gZnJvbSB0aGUgZGV2aWNlLgotICAgIGRyaXZlci0+dHJhbnNh
Y3QoZW5jb2RlRW1wdHlBdXRoZW50aWNhdG9yUmVxdWVzdChDdGFwUmVxdWVzdENvbW1hbmQ6OmtB
dXRoZW50aWNhdG9yR2V0SW5mbyksIFt3ZWFrVGhpcyA9IFdlYWtQdHIgeyAqdGhpcyB9LCB3ZWFr
RHJpdmVyID0gbWFrZVdlYWtQdHIoKmRyaXZlcildIChWZWN0b3I8dWludDhfdD4mJiByZXNwb25z
ZSkgbXV0YWJsZSB7CisgICAgZHJpdmVyLT50cmFuc2FjdChlbmNvZGVFbXB0eUF1dGhlbnRpY2F0
b3JSZXF1ZXN0KEN0YXBSZXF1ZXN0Q29tbWFuZDo6a0F1dGhlbnRpY2F0b3JHZXRJbmZvKSwgW3dl
YWtUaGlzID0gV2Vha1B0ciB7ICp0aGlzIH0sIHdlYWtEcml2ZXIgPSBXZWFrUHRyIHsgKmRyaXZl
ciB9XSAoVmVjdG9yPHVpbnQ4X3Q+JiYgcmVzcG9uc2UpIG11dGFibGUgewogICAgICAgICBBU1NF
UlQoUnVuTG9vcDo6aXNNYWluKCkpOwogICAgICAgICBpZiAoIXdlYWtUaGlzKQogICAgICAgICAg
ICAgcmV0dXJuOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViQ29udGV4
dE1lbnVMaXN0ZW5lclByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkNvbnRl
eHRNZW51TGlzdGVuZXJQcm94eS5jcHAKaW5kZXggZGM3NDg0ZWNiZDJjYThhOTEwNzU3MmI2Yjhi
OWY1YTgzMjRiNGYwZS4uMmM5ZDc4MTJlNGNiYzM0NzRhZDdiOWIzZDA1ZjhiZDA3ZmE5ZGU1NyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViQ29udGV4dE1lbnVMaXN0ZW5l
clByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJDb250ZXh0TWVudUxp
c3RlbmVyUHJveHkuY3BwCkBAIC0zNCw3ICszNCw3IEBAIG5hbWVzcGFjZSBXZWJLaXQgewogdXNp
bmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAKIFdlYkNvbnRleHRNZW51TGlzdGVuZXJQcm94eTo6V2Vi
Q29udGV4dE1lbnVMaXN0ZW5lclByb3h5KFdlYkNvbnRleHRNZW51TGlzdGVuZXJQcm94eTo6Q2xp
ZW50JiBjbGllbnQpCi0gICAgOiBtX2NsaWVudChtYWtlV2Vha1B0cihjbGllbnQpKQorICAgIDog
bV9jbGllbnQoY2xpZW50KQogewogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9XZWJDb250ZXh0TWVudVByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dl
YkNvbnRleHRNZW51UHJveHkuY3BwCmluZGV4IGNjYmNjNTc0NTUyODdhMjUyZTZjZmU0MzE3YTc3
MjRkYTdjNTI1MTUuLjljZmYzMWZlMTJhNzJlMDNmNmNhM2Q4Mjg0NDhmMmRmN2Q4MzdlYTAgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkNvbnRleHRNZW51UHJveHkuY3Bw
CisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkNvbnRleHRNZW51UHJveHkuY3BwCkBA
IC0zOCw3ICszOCw3IEBAIG5hbWVzcGFjZSBXZWJLaXQgewogV2ViQ29udGV4dE1lbnVQcm94eTo6
V2ViQ29udGV4dE1lbnVQcm94eShXZWJQYWdlUHJveHkmIHBhZ2UsIENvbnRleHRNZW51Q29udGV4
dERhdGEmJiBjb250ZXh0LCBjb25zdCBVc2VyRGF0YSYgdXNlckRhdGEpCiAgICAgOiBtX2NvbnRl
eHQoV1RGTW92ZShjb250ZXh0KSkKICAgICAsIG1fdXNlckRhdGEodXNlckRhdGEpCi0gICAgLCBt
X3BhZ2UobWFrZVdlYWtQdHIocGFnZSkpCisgICAgLCBtX3BhZ2UocGFnZSkKIHsKIH0KIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViQ29va2llTWFuYWdlclByb3h5LmNw
cCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkNvb2tpZU1hbmFnZXJQcm94eS5jcHAKaW5k
ZXggOTMyZDQxMmE5M2UyNWZhNTExNDM1YjdlNTc4ODRiM2UyNmFlOWU5Zi4uNWM1Y2FlYjRhNmI4
MTdmNDg1MDhhMzE3ODI3MjUzNDliYjkxMTBmZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvV2ViQ29va2llTWFuYWdlclByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9XZWJDb29raWVNYW5hZ2VyUHJveHkuY3BwCkBAIC00MCw3ICs0MCw3IEBAIG5hbWVz
cGFjZSBXZWJLaXQgewogdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAKIFdlYkNvb2tpZU1hbmFn
ZXJQcm94eTo6V2ViQ29va2llTWFuYWdlclByb3h5KE5ldHdvcmtQcm9jZXNzUHJveHkmIG5ldHdv
cmtQcm9jZXNzKQotICAgIDogbV9uZXR3b3JrUHJvY2VzcyhtYWtlV2Vha1B0cihuZXR3b3JrUHJv
Y2VzcykpCisgICAgOiBtX25ldHdvcmtQcm9jZXNzKG5ldHdvcmtQcm9jZXNzKQogewogICAgIG5l
dHdvcmtQcm9jZXNzLmFkZE1lc3NhZ2VSZWNlaXZlcihNZXNzYWdlczo6V2ViQ29va2llTWFuYWdl
clByb3h5OjptZXNzYWdlUmVjZWl2ZXJOYW1lKCksICp0aGlzKTsKIH0KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkRhdGFMaXN0U3VnZ2VzdGlvbnNEcm9wZG93bi5jcHAg
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJEYXRhTGlzdFN1Z2dlc3Rpb25zRHJvcGRvd24u
Y3BwCmluZGV4IDgyNDJjZWNlYjM2MzgwMTIyMWVlZGRkMDBlYmMxN2Y1ZTYxN2U2NGIuLmU3ODA1
ODdkNTkxM2M2NDNhYjNiYWEzNTA2OWU1OTYxOWM0MWQ1MWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL1dlYkRhdGFMaXN0U3VnZ2VzdGlvbnNEcm9wZG93bi5jcHAKKysrIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViRGF0YUxpc3RTdWdnZXN0aW9uc0Ryb3Bkb3duLmNw
cApAQCAtMzMsNyArMzMsNyBAQAogbmFtZXNwYWNlIFdlYktpdCB7CiAKIFdlYkRhdGFMaXN0U3Vn
Z2VzdGlvbnNEcm9wZG93bjo6V2ViRGF0YUxpc3RTdWdnZXN0aW9uc0Ryb3Bkb3duKFdlYlBhZ2VQ
cm94eSYgcGFnZSkKLSAgICA6IG1fcGFnZShtYWtlV2Vha1B0cihwYWdlKSkKKyAgICA6IG1fcGFn
ZShwYWdlKQogewogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJE
YXRlVGltZVBpY2tlci5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJEYXRlVGltZVBp
Y2tlci5jcHAKaW5kZXggNGI4YmRjNWM1N2RjZGYxZWIwODI3ZWU1ZGE2NDMxMDNiMGIzZmQwMy4u
OGVkN2ExZWIyNGRmODNlMDQyMWNkMmVhODBmZDFjZTFjZTU2ODdjYSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViRGF0ZVRpbWVQaWNrZXIuY3BwCisrKyBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL1dlYkRhdGVUaW1lUGlja2VyLmNwcApAQCAtMzMsNyArMzMsNyBAQAog
bmFtZXNwYWNlIFdlYktpdCB7CiAKIFdlYkRhdGVUaW1lUGlja2VyOjpXZWJEYXRlVGltZVBpY2tl
cihXZWJQYWdlUHJveHkmIHBhZ2UpCi0gICAgOiBtX3BhZ2UobWFrZVdlYWtQdHIocGFnZSkpCisg
ICAgOiBtX3BhZ2UocGFnZSkKIHsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvV2ViRWRpdENvbW1hbmRQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9X
ZWJFZGl0Q29tbWFuZFByb3h5LmNwcAppbmRleCAwZGJlMGFmYjQzM2YwMjE3MTU5ZTE0NmY0YmMw
ODUzZWQ1MTZmZDg3Li5lYzNjNTUwZDY4M2ViN2UwMzE4NGQ1MzgyMWI3MjMxMDgwMmRjMTdjIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJFZGl0Q29tbWFuZFByb3h5LmNw
cAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJFZGl0Q29tbWFuZFByb3h5LmNwcApA
QCAtMzksNyArMzksNyBAQCB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIFdlYkVkaXRDb21tYW5k
UHJveHk6OldlYkVkaXRDb21tYW5kUHJveHkoV2ViVW5kb1N0ZXBJRCBjb21tYW5kSUQsIGNvbnN0
IFN0cmluZyYgbGFiZWwsIFdlYlBhZ2VQcm94eSYgcGFnZSkKICAgICA6IG1fY29tbWFuZElEKGNv
bW1hbmRJRCkKICAgICAsIG1fbGFiZWwobGFiZWwpCi0gICAgLCBtX3BhZ2UobWFrZVdlYWtQdHIo
cGFnZSkpCisgICAgLCBtX3BhZ2UocGFnZSkKIHsKICAgICBtX3BhZ2UtPmFkZEVkaXRDb21tYW5k
KCp0aGlzKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkZyYW1l
UHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViRnJhbWVQcm94eS5jcHAKaW5k
ZXggZTJjNDc1NzE0NGM3NmUwZDFlZjViYmUyY2FjZjQzMzBjOTgyMTI2YS4uZDQ0YTVkYmU2YTNm
MjY2MzBiMzQ5MTMyNDRlN2U0M2IyYzFmMTYzMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvV2ViRnJhbWVQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
V2ViRnJhbWVQcm94eS5jcHAKQEAgLTQ2LDcgKzQ2LDcgQEAgdXNpbmcgbmFtZXNwYWNlIFdlYkNv
cmU7CiBjbGFzcyBXZWJQYWdlUHJveHk7CiAKIFdlYkZyYW1lUHJveHk6OldlYkZyYW1lUHJveHko
V2ViUGFnZVByb3h5JiBwYWdlLCBGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCkKLSAgICA6IG1fcGFn
ZShtYWtlV2Vha1B0cihwYWdlKSkKKyAgICA6IG1fcGFnZShwYWdlKQogICAgICwgbV9mcmFtZUlE
KGZyYW1lSUQpCiB7CiAgICAgV2ViUHJvY2Vzc1Bvb2w6OnN0YXRpc3RpY3MoKS53a0ZyYW1lQ291
bnQrKzsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5j
cHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCmluZGV4IDdhNWU1
YzQ5OTYyYWEwZjNiM2E5ZGY1MDA0OTk2M2M5ZmM5MzI2N2MuLjcxZmFkZmRlZDZmNGU5ZDBkMzcw
MTkyMjQ0NDhmZGMwMzg3ODcwNmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L1dlYlBhZ2VQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVBy
b3h5LmNwcApAQCAtNDIxLDcgKzQyMSw3IEBAIGNsYXNzIFBhZ2VDbGllbnRQcm90ZWN0b3Igewog
ICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKFBhZ2VDbGllbnRQcm90ZWN0b3IpOwogcHVibGljOgog
ICAgIFBhZ2VDbGllbnRQcm90ZWN0b3IoUGFnZUNsaWVudCYgcGFnZUNsaWVudCkKLSAgICAgICAg
OiBtX3BhZ2VDbGllbnQobWFrZVdlYWtQdHIocGFnZUNsaWVudCkpCisgICAgICAgIDogbV9wYWdl
Q2xpZW50KHBhZ2VDbGllbnQpCiAgICAgewogICAgICAgICBtX3BhZ2VDbGllbnQtPnJlZlZpZXco
KTsKICAgICB9CkBAIC00NjMsNyArNDYzLDcgQEAgUmVmPFdlYlBhZ2VQcm94eT4gV2ViUGFnZVBy
b3h5OjpjcmVhdGUoUGFnZUNsaWVudCYgcGFnZUNsaWVudCwgV2ViUHJvY2Vzc1Byb3h5JgogV2Vi
UGFnZVByb3h5OjpXZWJQYWdlUHJveHkoUGFnZUNsaWVudCYgcGFnZUNsaWVudCwgV2ViUHJvY2Vz
c1Byb3h5JiBwcm9jZXNzLCBSZWY8QVBJOjpQYWdlQ29uZmlndXJhdGlvbj4mJiBjb25maWd1cmF0
aW9uKQogICAgIDogbV9pZGVudGlmaWVyKElkZW50aWZpZXI6OmdlbmVyYXRlKCkpCiAgICAgLCBt
X3dlYlBhZ2VJRChQYWdlSWRlbnRpZmllcjo6Z2VuZXJhdGUoKSkKLSAgICAsIG1fcGFnZUNsaWVu
dChtYWtlV2Vha1B0cihwYWdlQ2xpZW50KSkKKyAgICAsIG1fcGFnZUNsaWVudChwYWdlQ2xpZW50
KQogICAgICwgbV9jb25maWd1cmF0aW9uKFdURk1vdmUoY29uZmlndXJhdGlvbikpCiAgICAgLCBt
X25hdmlnYXRpb25DbGllbnQobWFrZVVuaXF1ZVJlZjxBUEk6Ok5hdmlnYXRpb25DbGllbnQ+KCkp
CiAgICAgLCBtX2hpc3RvcnlDbGllbnQobWFrZVVuaXF1ZVJlZjxBUEk6Okhpc3RvcnlDbGllbnQ+
KCkpCkBAIC05MTMsNyArOTEzLDcgQEAgYm9vbCBXZWJQYWdlUHJveHk6OnN1c3BlbmRDdXJyZW50
UGFnZUlmUG9zc2libGUoQVBJOjpOYXZpZ2F0aW9uJiBuYXZpZ2F0aW9uLCBzdGQKIAogICAgIExP
RyhQcm9jZXNzU3dhcHBpbmcsICJXZWJQYWdlUHJveHkgJSIgUFJJdTY0ICIgY3JlYXRlZCBzdXNw
ZW5kZWQgcGFnZSAlcyBmb3IgcHJvY2VzcyBwaWQgJWksIGJhY2svZm9yd2FyZCBpdGVtICVzIiBQ
Ukl1NjQsIGlkZW50aWZpZXIoKS50b1VJbnQ2NCgpLCBzdXNwZW5kZWRQYWdlLT5sb2dnaW5nU3Ry
aW5nKCksIG1fcHJvY2Vzcy0+cHJvY2Vzc0lkZW50aWZpZXIoKSwgZnJvbUl0ZW0gPyBmcm9tSXRl
bS0+aXRlbUlEKCkubG9nU3RyaW5nKCkgOiAwKTsKIAotICAgIG1fbGFzdFN1c3BlbmRlZFBhZ2Ug
PSBtYWtlV2Vha1B0cigqc3VzcGVuZGVkUGFnZSk7CisgICAgbV9sYXN0U3VzcGVuZGVkUGFnZSA9
ICpzdXNwZW5kZWRQYWdlOwogCiAgICAgaWYgKGZyb21JdGVtICYmIHNob3VsZFVzZUJhY2tGb3J3
YXJkQ2FjaGUoKSkKICAgICAgICAgYmFja0ZvcndhcmRDYWNoZSgpLmFkZEVudHJ5KCpmcm9tSXRl
bSwgV1RGTW92ZShzdXNwZW5kZWRQYWdlKSk7CkBAIC0xMDU4Myw3ICsxMDU4Myw3IEBAIFdlYkNv
bnRlbnRNb2RlIFdlYlBhZ2VQcm94eTo6ZWZmZWN0aXZlQ29udGVudE1vZGVBZnRlckFkanVzdGlu
Z1BvbGljaWVzKEFQSTo6V2ViCiAKIHZvaWQgV2ViUGFnZVByb3h5OjphZGRPYnNlcnZlcihXZWJW
aWV3RGlkTW92ZVRvV2luZG93T2JzZXJ2ZXImIG9ic2VydmVyKQogewotICAgIGF1dG8gcmVzdWx0
ID0gbV93ZWJWaWV3RGlkTW92ZVRvV2luZG93T2JzZXJ2ZXJzLmFkZCgmb2JzZXJ2ZXIsIG1ha2VX
ZWFrUHRyKG9ic2VydmVyKSk7CisgICAgYXV0byByZXN1bHQgPSBtX3dlYlZpZXdEaWRNb3ZlVG9X
aW5kb3dPYnNlcnZlcnMuYWRkKCZvYnNlcnZlciwgb2JzZXJ2ZXIpOwogICAgIEFTU0VSVF9VTlVT
RUQocmVzdWx0LCByZXN1bHQuaXNOZXdFbnRyeSk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL1dlYlByb2Nlc3NQb29sLmNwcAppbmRleCA4NTY5OGY1YmY4MzBlYjk0N2I1OWE3MjJlOTE2
OGY1MjcyMjkyMDk3Li5jZTk4MWRkODcwMTc3YTA5MzdiYjAwNjgxYjJmOThkZjU3YTlhZjkzIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5jcHAKKysr
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuY3BwCkBAIC00NjgsNyAr
NDY4LDcgQEAgdm9pZCBXZWJQcm9jZXNzUG9vbDo6Z2V0R1BVUHJvY2Vzc0Nvbm5lY3Rpb24oV2Vi
UHJvY2Vzc1Byb3h5JiB3ZWJQcm9jZXNzUHJveHksIEcKICNpZiBFTkFCTEUoSVBDX1RFU1RJTkdf
QVBJKQogICAgIHBhcmFtZXRlcnMuaWdub3JlSW52YWxpZE1lc3NhZ2VGb3JUZXN0aW5nID0gd2Vi
UHJvY2Vzc1Byb3h5Lmlnbm9yZUludmFsaWRNZXNzYWdlRm9yVGVzdGluZygpOwogI2VuZGlmCi0g
ICAgZW5zdXJlR1BVUHJvY2VzcygpLmdldEdQVVByb2Nlc3NDb25uZWN0aW9uKHdlYlByb2Nlc3NQ
cm94eSwgcGFyYW1ldGVycywgW3RoaXMsIHdlYWtUaGlzID0gV2Vha1B0ciB7ICp0aGlzIH0sIHBh
cmFtZXRlcnMsIHdlYlByb2Nlc3NQcm94eSA9IG1ha2VXZWFrUHRyKHdlYlByb2Nlc3NQcm94eSks
IHJlcGx5ID0gV1RGTW92ZShyZXBseSldIChhdXRvJiBjb25uZWN0aW9uSW5mbykgbXV0YWJsZSB7
CisgICAgZW5zdXJlR1BVUHJvY2VzcygpLmdldEdQVVByb2Nlc3NDb25uZWN0aW9uKHdlYlByb2Nl
c3NQcm94eSwgcGFyYW1ldGVycywgW3RoaXMsIHdlYWtUaGlzID0gV2Vha1B0ciB7ICp0aGlzIH0s
IHBhcmFtZXRlcnMsIHdlYlByb2Nlc3NQcm94eSA9IFdlYWtQdHIgeyB3ZWJQcm9jZXNzUHJveHkg
fSwgcmVwbHkgPSBXVEZNb3ZlKHJlcGx5KV0gKGF1dG8mIGNvbm5lY3Rpb25JbmZvKSBtdXRhYmxl
IHsKICAgICAgICAgaWYgKFVOTElLRUxZKCFJUEM6OkNvbm5lY3Rpb246OmlkZW50aWZpZXJJc1Zh
bGlkKGNvbm5lY3Rpb25JbmZvLmlkZW50aWZpZXIoKSkpKSB7CiAgICAgICAgICAgICAvLyBSZXRy
eSBvbiB0aGUgbmV4dCBSdW5Mb29wIGl0ZXJhdGlvbiBiZWNhdXNlIHdlIG1heSBiZSBpbnNpZGUg
dGhlIFdlYlByb2Nlc3NQb29sIGRlc3RydWN0b3IuCiAgICAgICAgICAgICBSdW5Mb29wOjptYWlu
KCkuZGlzcGF0Y2goW3RoaXMsIHdlYWtUaGlzID0gV1RGTW92ZSh3ZWFrVGhpcyksIHdlYlByb2Nl
c3NQcm94eSA9IFdURk1vdmUod2ViUHJvY2Vzc1Byb3h5KSwgcGFyYW1ldGVycyA9IFdURk1vdmUo
cGFyYW1ldGVycyksIHJlcGx5ID0gV1RGTW92ZShyZXBseSldICgpIG11dGFibGUgewpAQCAtNDg4
LDcgKzQ4OCw3IEBAIHZvaWQgV2ViUHJvY2Vzc1Bvb2w6OmdldEdQVVByb2Nlc3NDb25uZWN0aW9u
KFdlYlByb2Nlc3NQcm94eSYgd2ViUHJvY2Vzc1Byb3h5LCBHCiAjaWYgRU5BQkxFKFdFQl9BVVRI
TikKIHZvaWQgV2ViUHJvY2Vzc1Bvb2w6OmdldFdlYkF1dGhuUHJvY2Vzc0Nvbm5lY3Rpb24oV2Vi
UHJvY2Vzc1Byb3h5JiB3ZWJQcm9jZXNzUHJveHksIE1lc3NhZ2VzOjpXZWJQcm9jZXNzUHJveHk6
OkdldFdlYkF1dGhuUHJvY2Vzc0Nvbm5lY3Rpb246OkRlbGF5ZWRSZXBseSYmIHJlcGx5KQogewot
ICAgIFdlYkF1dGhuUHJvY2Vzc1Byb3h5OjpzaW5nbGV0b24oKS5nZXRXZWJBdXRoblByb2Nlc3ND
b25uZWN0aW9uKHdlYlByb2Nlc3NQcm94eSwgW3RoaXMsIHdlYWtUaGlzID0gV2Vha1B0ciB7ICp0
aGlzIH0sIHdlYlByb2Nlc3NQcm94eSA9IG1ha2VXZWFrUHRyKHdlYlByb2Nlc3NQcm94eSksIHJl
cGx5ID0gV1RGTW92ZShyZXBseSldIChhdXRvJiBjb25uZWN0aW9uSW5mbykgbXV0YWJsZSB7Cisg
ICAgV2ViQXV0aG5Qcm9jZXNzUHJveHk6OnNpbmdsZXRvbigpLmdldFdlYkF1dGhuUHJvY2Vzc0Nv
bm5lY3Rpb24od2ViUHJvY2Vzc1Byb3h5LCBbdGhpcywgd2Vha1RoaXMgPSBXZWFrUHRyIHsgKnRo
aXMgfSwgd2ViUHJvY2Vzc1Byb3h5ID0gV2Vha1B0ciB7IHdlYlByb2Nlc3NQcm94eSB9LCByZXBs
eSA9IFdURk1vdmUocmVwbHkpXSAoYXV0byYgY29ubmVjdGlvbkluZm8pIG11dGFibGUgewogICAg
ICAgICBpZiAoVU5MSUtFTFkoIUlQQzo6Q29ubmVjdGlvbjo6aWRlbnRpZmllcklzVmFsaWQoY29u
bmVjdGlvbkluZm8uaWRlbnRpZmllcigpKSAmJiB3ZWJQcm9jZXNzUHJveHkgJiYgd2Vha1RoaXMp
KSB7CiAgICAgICAgICAgICBXRUJQUk9DRVNTUE9PTF9SRUxFQVNFX0xPR19FUlJPUihQcm9jZXNz
LCAiZ2V0V2ViQXV0aG5Qcm9jZXNzQ29ubmVjdGlvbjogRmFpbGVkIGZpcnN0IGF0dGVtcHQsIHJl
dHJ5aW5nIik7CiAgICAgICAgICAgICBXZWJBdXRoblByb2Nlc3NQcm94eTo6c2luZ2xldG9uKCku
Z2V0V2ViQXV0aG5Qcm9jZXNzQ29ubmVjdGlvbigqd2ViUHJvY2Vzc1Byb3h5LCBXVEZNb3ZlKHJl
cGx5KSk7CkBAIC04NTQsNyArODU0LDcgQEAgdm9pZCBXZWJQcm9jZXNzUG9vbDo6aW5pdGlhbGl6
ZU5ld1dlYlByb2Nlc3MoV2ViUHJvY2Vzc1Byb3h5JiBwcm9jZXNzLCBXZWJzaXRlRGEKIAogICAg
IGlmIChpc1ByZXdhcm1lZCA9PSBXZWJQcm9jZXNzUHJveHk6OklzUHJld2FybWVkOjpZZXMpIHsK
ICAgICAgICAgQVNTRVJUKCFtX3ByZXdhcm1lZFByb2Nlc3MpOwotICAgICAgICBtX3ByZXdhcm1l
ZFByb2Nlc3MgPSBtYWtlV2Vha1B0cihwcm9jZXNzKTsKKyAgICAgICAgbV9wcmV3YXJtZWRQcm9j
ZXNzID0gcHJvY2VzczsKICAgICB9CiAKICNpZiBQTEFURk9STShJT1NfRkFNSUxZKSAmJiAhUExB
VEZPUk0oTUFDQ0FUQUxZU1QpCkBAIC0xMDY3LDcgKzEwNjcsNyBAQCBSZWY8V2ViUGFnZVByb3h5
PiBXZWJQcm9jZXNzUG9vbDo6Y3JlYXRlV2ViUGFnZShQYWdlQ2xpZW50JiBwYWdlQ2xpZW50LCBS
ZWY8QVBJOgogICAgICAgICBwcm9jZXNzID0gZHVtbXlQcm9jZXNzUHJveHkocGFnZUNvbmZpZ3Vy
YXRpb24tPndlYnNpdGVEYXRhU3RvcmUoKS0+c2Vzc2lvbklEKCkpOwogICAgICAgICBpZiAoIXBy
b2Nlc3MpIHsKICAgICAgICAgICAgIHByb2Nlc3MgPSBXZWJQcm9jZXNzUHJveHk6OmNyZWF0ZSgq
dGhpcywgcGFnZUNvbmZpZ3VyYXRpb24tPndlYnNpdGVEYXRhU3RvcmUoKSwgV2ViUHJvY2Vzc1By
b3h5OjpJc1ByZXdhcm1lZDo6Tm8sIENyb3NzT3JpZ2luTW9kZTo6U2hhcmVkLCBXZWJQcm9jZXNz
UHJveHk6OlNob3VsZExhdW5jaFByb2Nlc3M6Ok5vKTsKLSAgICAgICAgICAgIG1fZHVtbXlQcm9j
ZXNzUHJveGllcy5hZGQocGFnZUNvbmZpZ3VyYXRpb24tPndlYnNpdGVEYXRhU3RvcmUoKS0+c2Vz
c2lvbklEKCksIG1ha2VXZWFrUHRyKCpwcm9jZXNzKSk7CisgICAgICAgICAgICBtX2R1bW15UHJv
Y2Vzc1Byb3hpZXMuYWRkKHBhZ2VDb25maWd1cmF0aW9uLT53ZWJzaXRlRGF0YVN0b3JlKCktPnNl
c3Npb25JRCgpLCAqcHJvY2Vzcyk7CiAgICAgICAgICAgICBtX3Byb2Nlc3Nlcy5hcHBlbmQoKnBy
b2Nlc3MpOwogICAgICAgICB9CiAgICAgfSBlbHNlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
V2ViUHJvY2Vzc1Byb3h5LmNwcAppbmRleCA5MjUzNzFhNDc1ODdkNTI1MDZhNDU5MTY3NWY2ZTM5
Yzc4Nzg3YmFmLi41YzU5NjZlY2NiOWU4YTJjYTAyYzFhMjg5ZTFiODE4MjBkNzNkOTJjIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuY3BwCisrKyBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5jcHAKQEAgLTkzOSw3ICs5
MzksNyBAQCB2b2lkIFdlYlByb2Nlc3NQcm94eTo6cHJvY2Vzc0RpZFRlcm1pbmF0ZU9yRmFpbGVk
VG9MYXVuY2goUHJvY2Vzc1Rlcm1pbmF0aW9uUmVhcwogICAgICAgICB3ZWJDb25uZWN0aW9uLT5k
aWRDbG9zZSgpOwogCiAgICAgYXV0byBwYWdlcyA9IGNvcHlUb1ZlY3Rvck9mPFJlZlB0cjxXZWJQ
YWdlUHJveHk+PihtX3BhZ2VNYXAudmFsdWVzKCkpOwotICAgIGF1dG8gcHJvdmlzaW9uYWxQYWdl
cyA9IFdURjo6bWFwKG1fcHJvdmlzaW9uYWxQYWdlcywgW10oYXV0byogcHJvdmlzaW9uYWxQYWdl
KSB7IHJldHVybiBtYWtlV2Vha1B0cihwcm92aXNpb25hbFBhZ2UpOyB9KTsKKyAgICBhdXRvIHBy
b3Zpc2lvbmFsUGFnZXMgPSBXVEY6Om1hcChtX3Byb3Zpc2lvbmFsUGFnZXMsIFtdKGF1dG8qIHBy
b3Zpc2lvbmFsUGFnZSkgeyByZXR1cm4gV2Vha1B0ciB7IHByb3Zpc2lvbmFsUGFnZSB9OyB9KTsK
IAogICAgIGF1dG8gaXNSZXNwb25zaXZlQ2FsbGJhY2tzID0gc3RkOjpleGNoYW5nZShtX2lzUmVz
cG9uc2l2ZUNhbGxiYWNrcywgeyB9KTsKICAgICBmb3IgKGF1dG8mIGNhbGxiYWNrIDogaXNSZXNw
b25zaXZlQ2FsbGJhY2tzKQpAQCAtMTc5MSw3ICsxNzkxLDcgQEAgdm9pZCBXZWJQcm9jZXNzUHJv
eHk6OmNyZWF0ZVNwZWVjaFJlY29nbml0aW9uU2VydmVyKFNwZWVjaFJlY29nbml0aW9uU2VydmVy
SWRlbnQKICAgICBNRVNTQUdFX0NIRUNLKCFtX3NwZWVjaFJlY29nbml0aW9uU2VydmVyTWFwLmNv
bnRhaW5zKGlkZW50aWZpZXIpKTsKIAogICAgIGF1dG8mIHNwZWVjaFJlY29nbml0aW9uU2VydmVy
ID0gbV9zcGVlY2hSZWNvZ25pdGlvblNlcnZlck1hcC5hZGQoaWRlbnRpZmllciwgbnVsbHB0ciku
aXRlcmF0b3ItPnZhbHVlOwotICAgIGF1dG8gcGVybWlzc2lvbkNoZWNrZXIgPSBbd2Vha1BhZ2Ug
PSBtYWtlV2Vha1B0cih0YXJnZXRQYWdlKV0oYXV0byYgcmVxdWVzdCwgYXV0byYmIGNvbXBsZXRp
b25IYW5kbGVyKSBtdXRhYmxlIHsKKyAgICBhdXRvIHBlcm1pc3Npb25DaGVja2VyID0gW3dlYWtQ
YWdlID0gV2Vha1B0ciB7IHRhcmdldFBhZ2UgfV0oYXV0byYgcmVxdWVzdCwgYXV0byYmIGNvbXBs
ZXRpb25IYW5kbGVyKSBtdXRhYmxlIHsKICAgICAgICAgaWYgKCF3ZWFrUGFnZSkgewogICAgICAg
ICAgICAgY29tcGxldGlvbkhhbmRsZXIoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25FcnJvciB7
IFNwZWVjaFJlY29nbml0aW9uRXJyb3JUeXBlOjpOb3RBbGxvd2VkLCAiUGFnZSBubyBsb25nZXIg
ZXhpc3RzIl9zIH0pOwogICAgICAgICAgICAgcmV0dXJuOwpAQCAtMTc5OSwxMiArMTc5OSwxMiBA
QCB2b2lkIFdlYlByb2Nlc3NQcm94eTo6Y3JlYXRlU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXIoU3Bl
ZWNoUmVjb2duaXRpb25TZXJ2ZXJJZGVudAogCiAgICAgICAgIHdlYWtQYWdlLT5yZXF1ZXN0U3Bl
ZWNoUmVjb2duaXRpb25QZXJtaXNzaW9uKHJlcXVlc3QsIFdURk1vdmUoY29tcGxldGlvbkhhbmRs
ZXIpKTsKICAgICB9OwotICAgIGF1dG8gY2hlY2tJZk1vY2tDYXB0dXJlRGV2aWNlc0VuYWJsZWQg
PSBbd2Vha1BhZ2UgPSBtYWtlV2Vha1B0cih0YXJnZXRQYWdlKV0oKSB7CisgICAgYXV0byBjaGVj
a0lmTW9ja0NhcHR1cmVEZXZpY2VzRW5hYmxlZCA9IFt3ZWFrUGFnZSA9IFdlYWtQdHIgeyB0YXJn
ZXRQYWdlIH1dKCkgewogICAgICAgICByZXR1cm4gd2Vha1BhZ2UgJiYgd2Vha1BhZ2UtPnByZWZl
cmVuY2VzKCkubW9ja0NhcHR1cmVEZXZpY2VzRW5hYmxlZCgpOwogICAgIH07CiAKICNpZiBFTkFC
TEUoTUVESUFfU1RSRUFNKQotICAgIGF1dG8gY3JlYXRlUmVhbHRpbWVNZWRpYVNvdXJjZSA9IFt3
ZWFrUGFnZSA9IG1ha2VXZWFrUHRyKHRhcmdldFBhZ2UpXSgpIHsKKyAgICBhdXRvIGNyZWF0ZVJl
YWx0aW1lTWVkaWFTb3VyY2UgPSBbd2Vha1BhZ2UgPSBXZWFrUHRyIHsgdGFyZ2V0UGFnZSB9XSgp
IHsKICAgICAgICAgcmV0dXJuIHdlYWtQYWdlID8gd2Vha1BhZ2UtPmNyZWF0ZVJlYWx0aW1lTWVk
aWFTb3VyY2VGb3JTcGVlY2hSZWNvZ25pdGlvbigpIDogQ2FwdHVyZVNvdXJjZU9yRXJyb3IgeyAi
UGFnZSBpcyBpbnZhbGlkIiB9OwogICAgIH07CiAgICAgc3BlZWNoUmVjb2duaXRpb25TZXJ2ZXIg
PSBtYWtlVW5pcXVlPFNwZWVjaFJlY29nbml0aW9uU2VydmVyPigqY29ubmVjdGlvbigpLCBpZGVu
dGlmaWVyLCBXVEZNb3ZlKHBlcm1pc3Npb25DaGVja2VyKSwgV1RGTW92ZShjaGVja0lmTW9ja0Nh
cHR1cmVEZXZpY2VzRW5hYmxlZCksIFdURk1vdmUoY3JlYXRlUmVhbHRpbWVNZWRpYVNvdXJjZSkp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5Lmgg
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuaAppbmRleCBlMzlkNGFm
ODY1M2JkNzg0YTA5MGMxMzZlODBlMGM1N2I3NDc0OWY1Li4xMzk1MTdiZGIyNGI1NGM0OGVkZmJi
ZWIwMTNkZTkyOWE1ZjE0ZWY2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9X
ZWJQcm9jZXNzUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNz
UHJveHkuaApAQCAtNTUxLDcgKzU1MSw3IEBAIHByaXZhdGU6CiAgICAgcHVibGljOgogICAgICAg
ICBXZWFrT3JTdHJvbmdQdHIoVCYgb2JqZWN0LCBJc1dlYWsgaXNXZWFrKQogICAgICAgICAgICAg
OiBtX2lzV2Vhayhpc1dlYWspCi0gICAgICAgICAgICAsIG1fd2Vha09iamVjdChtYWtlV2Vha1B0
cihvYmplY3QpKQorICAgICAgICAgICAgLCBtX3dlYWtPYmplY3Qob2JqZWN0KQogICAgICAgICB7
CiAgICAgICAgICAgICB1cGRhdGVTdHJvbmdSZWZlcmVuY2UoKTsKICAgICAgICAgfQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9y
ZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0
b3JlLmNwcAppbmRleCBjOWU2ZTExM2U5ZGUzN2U5Yzg1MzA1NjM3NTVhN2M5YWEyZmEzNzYxLi4x
ZDU1MDc5ZDIxNDZiODI3Y2Q0MjgzOTRmMDIzNzNhZWJlN2U4MjlkIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlLmNwcAorKysg
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlLmNw
cApAQCAtMTc0Niw3ICsxNzQ2LDcgQEAgdm9pZCBXZWJzaXRlRGF0YVN0b3JlOjpyZW1vdmVNZWRp
YUtleXMoY29uc3QgU3RyaW5nJiBtZWRpYUtleXNTdG9yYWdlRGlyZWN0b3J5LAogdm9pZCBXZWJz
aXRlRGF0YVN0b3JlOjpnZXROZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24oV2ViUHJvY2Vzc1Byb3h5
JiB3ZWJQcm9jZXNzUHJveHksIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoY29uc3QgTmV0d29ya1By
b2Nlc3NDb25uZWN0aW9uSW5mbyYpPiYmIHJlcGx5LCBTaG91bGRSZXRyeU9uRmFpbHVyZSBzaG91
bGRSZXRyeU9uRmFpbHVyZSkKIHsKICAgICBhdXRvJiBuZXR3b3JrUHJvY2Vzc1Byb3h5ID0gbmV0
d29ya1Byb2Nlc3MoKTsKLSAgICBuZXR3b3JrUHJvY2Vzc1Byb3h5LmdldE5ldHdvcmtQcm9jZXNz
Q29ubmVjdGlvbih3ZWJQcm9jZXNzUHJveHksIFt3ZWFrVGhpcyA9IFdlYWtQdHIgeyAqdGhpcyB9
LCBuZXR3b3JrUHJvY2Vzc1Byb3h5ID0gbWFrZVdlYWtQdHIobmV0d29ya1Byb2Nlc3NQcm94eSks
IHdlYlByb2Nlc3NQcm94eSA9IG1ha2VXZWFrUHRyKHdlYlByb2Nlc3NQcm94eSksIHJlcGx5ID0g
V1RGTW92ZShyZXBseSksIHNob3VsZFJldHJ5T25GYWlsdXJlXSAoYXV0byYgY29ubmVjdGlvbklu
Zm8pIG11dGFibGUgeworICAgIG5ldHdvcmtQcm9jZXNzUHJveHkuZ2V0TmV0d29ya1Byb2Nlc3ND
b25uZWN0aW9uKHdlYlByb2Nlc3NQcm94eSwgW3dlYWtUaGlzID0gV2Vha1B0ciB7ICp0aGlzIH0s
IG5ldHdvcmtQcm9jZXNzUHJveHkgPSBXZWFrUHRyIHsgbmV0d29ya1Byb2Nlc3NQcm94eSB9LCB3
ZWJQcm9jZXNzUHJveHkgPSBXZWFrUHRyIHsgd2ViUHJvY2Vzc1Byb3h5IH0sIHJlcGx5ID0gV1RG
TW92ZShyZXBseSksIHNob3VsZFJldHJ5T25GYWlsdXJlXSAoYXV0byYgY29ubmVjdGlvbkluZm8p
IG11dGFibGUgewogICAgICAgICBpZiAoVU5MSUtFTFkoIUlQQzo6Q29ubmVjdGlvbjo6aWRlbnRp
ZmllcklzVmFsaWQoY29ubmVjdGlvbkluZm8uaWRlbnRpZmllcigpKSkpIHsKICAgICAgICAgICAg
IGF1dG8gbG9nRXJyb3IgPSBbbmV0d29ya1Byb2Nlc3NQcm94eSwgd2ViUHJvY2Vzc1Byb3h5XSgp
IHsKICNpZiBPUyhEQVJXSU4pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9n
dGsvV2F5bGFuZENvbXBvc2l0b3IuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvZ3RrL1dh
eWxhbmRDb21wb3NpdG9yLmNwcAppbmRleCBiMzRkMTNiODY1YzUwMjIyN2VjYWEwNzgzZGYxMGMy
ZjUwMzg5YWU0Li4xMTA4YWFlNzc4YTg0ZGNjMTc2NDRiYzlkOTM5NWU0MzZkOTFkYmY1IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9ndGsvV2F5bGFuZENvbXBvc2l0b3IuY3Bw
CisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2d0ay9XYXlsYW5kQ29tcG9zaXRvci5jcHAK
QEAgLTIzMyw3ICsyMzMsNyBAQCB2b2lkIFdheWxhbmRDb21wb3NpdG9yOjpTdXJmYWNlOjphdHRh
Y2hCdWZmZXIoc3RydWN0IHdsX3Jlc291cmNlKiBidWZmZXIpCiAKICAgICBpZiAoYnVmZmVyKSB7
CiAgICAgICAgIGF1dG8qIGNvbXBvc2l0b3JCdWZmZXIgPSBXYXlsYW5kQ29tcG9zaXRvcjo6QnVm
ZmVyOjpnZXRPckNyZWF0ZShidWZmZXIpOwotICAgICAgICBtX3BlbmRpbmdCdWZmZXIgPSBtYWtl
V2Vha1B0cigqY29tcG9zaXRvckJ1ZmZlcik7CisgICAgICAgIG1fcGVuZGluZ0J1ZmZlciA9ICpj
b21wb3NpdG9yQnVmZmVyOwogICAgIH0KIH0KIApAQCAtNTcxLDcgKzU3MSw3IEBAIHZvaWQgV2F5
bGFuZENvbXBvc2l0b3I6OmJpbmRTdXJmYWNlVG9XZWJQYWdlKFdheWxhbmRDb21wb3NpdG9yOjpT
dXJmYWNlKiBzdXJmYWNlCiAKICAgICB1bmJpbmRXZWJQYWdlKCp3ZWJQYWdlKTsKICAgICBzdXJm
YWNlLT5zZXRXZWJQYWdlKHdlYlBhZ2UpOwotICAgIG1fcGFnZU1hcC5zZXQod2ViUGFnZSwgbWFr
ZVdlYWtQdHIoKnN1cmZhY2UpKTsKKyAgICBtX3BhZ2VNYXAuc2V0KHdlYlBhZ2UsICpzdXJmYWNl
KTsKIH0KIAogdm9pZCBXYXlsYW5kQ29tcG9zaXRvcjo6YmluZFdlYlBhZ2UoV2ViUGFnZVByb3h5
JiB3ZWJQYWdlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1Byb2Nl
c3NBc3NlcnRpb25JT1MubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvUHJvY2Vzc0Fz
c2VydGlvbklPUy5tbQppbmRleCAxMThiYmIzNmJjODdmMzNhYTFlYTI4ZDFjZjRiZDhmOGU2ODFk
OTRhLi41ZTNiOTBiMzMyMDcxZWVhZDI0OTMzZGVmOWY4ZmFiNGU5ZGVlZWVmIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvUHJvY2Vzc0Fzc2VydGlvbklPUy5tbQorKysg
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvUHJvY2Vzc0Fzc2VydGlvbklPUy5tbQpAQCAt
MTI2LDcgKzEyNiw3IEBAIC0gKHZvaWQpX25vdGlmeUFzc2VydGlvbnNPZkltbWluZW50U3VzcGVu
c2lvbgogCiAgICAgVmVjdG9yPFdlYWtQdHI8UHJvY2Vzc0FuZFVJQXNzZXJ0aW9uPj4gYXNzZXJ0
aW9uc05lZWRpbmdCYWNrZ3JvdW5kVGFzazsKICAgICBmb3IgKGF1dG8mIGFzc2VydGlvbiA6IF9h
c3NlcnRpb25zTmVlZGluZ0JhY2tncm91bmRUYXNrKQotICAgICAgICBhc3NlcnRpb25zTmVlZGlu
Z0JhY2tncm91bmRUYXNrLmFwcGVuZChtYWtlV2Vha1B0cihhc3NlcnRpb24pKTsKKyAgICAgICAg
YXNzZXJ0aW9uc05lZWRpbmdCYWNrZ3JvdW5kVGFzay5hcHBlbmQoYXNzZXJ0aW9uKTsKIAogICAg
IC8vIE5vdGUgdGhhdCB3ZSBkb24ndCBleHBlY3QgY2xpZW50cyB0byByZWdpc3RlciBuZXcgYXNz
ZXJ0aW9ucyB3aGVuIGdldHRpbmcgbm90aWZpZWQgdGhhdCB0aGUgVUkgYXNzZXJ0aW9uIHdpbGwg
ZXhwaXJlIGltbWluZW50bHkuCiAgICAgLy8gSWYgY2xpZW50cyB3ZXJlIHRvIGRvIHNvLCB0aGVu
IHRob3NlIG5ldyBhc3NlcnRpb25zIHdvdWxkIG5vdCBnZXQgbm90aWZpZWQgb2YgdGhlIGltbWlu
ZW50IHN1c3BlbnNpb24uCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3Mv
V2ViRGF0YUxpc3RTdWdnZXN0aW9uc0Ryb3Bkb3duSU9TLm1tIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvaW9zL1dlYkRhdGFMaXN0U3VnZ2VzdGlvbnNEcm9wZG93bklPUy5tbQppbmRleCA3NWI3
ZmE3NWYyYzYxNjUzY2Y5YzRjYmZhZDAwYWJjMGU0NDMwZjdjLi5lZjZkZjY1OGNkMjkwM2E1ZjNm
NmE3MDJhYmJjZmI1ZDJmNGY3ZDMxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9pb3MvV2ViRGF0YUxpc3RTdWdnZXN0aW9uc0Ryb3Bkb3duSU9TLm1tCisrKyBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL2lvcy9XZWJEYXRhTGlzdFN1Z2dlc3Rpb25zRHJvcGRvd25JT1MubW0K
QEAgLTE3Myw3ICsxNzMsNyBAQCAtICh2b2lkKXVwZGF0ZVdpdGhJbmZvcm1hdGlvbjooV2ViQ29y
ZTo6RGF0YUxpc3RTdWdnZXN0aW9uSW5mb3JtYXRpb24mJilpbmZvcm1hdAogCiAtICh2b2lkKXNo
b3dTdWdnZXN0aW9uc0Ryb3Bkb3duOihXZWJLaXQ6OldlYkRhdGFMaXN0U3VnZ2VzdGlvbnNEcm9w
ZG93bklPUyYpZHJvcGRvd24gYWN0aXZhdGlvblR5cGU6KFdlYkNvcmU6OkRhdGFMaXN0U3VnZ2Vz
dGlvbkFjdGl2YXRpb25UeXBlKWFjdGl2YXRpb25UeXBlCiB7Ci0gICAgX2Ryb3Bkb3duID0gbWFr
ZVdlYWtQdHIoZHJvcGRvd24pOworICAgIF9kcm9wZG93biA9IGRyb3Bkb3duOwogfQogCiAtICh2
b2lkKWRpZFNlbGVjdE9wdGlvbkF0SW5kZXg6KE5TSW50ZWdlcilpbmRleApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFjL1BhZ2VDbGllbnRJbXBsTWFjLm1tIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvbWFjL1BhZ2VDbGllbnRJbXBsTWFjLm1tCmluZGV4IGE4NTU3NTMw
ZjBjNjVlM2E0ZjlmYzJlMGU2MmE1MjZhNTc4NDk0ZDAuLjdmMTU2ZGRlZmFjZjcxMGRmNDU3ODZh
YzY1ZGE4OTQ0ZjA5ZDEyZDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL21h
Yy9QYWdlQ2xpZW50SW1wbE1hYy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMv
UGFnZUNsaWVudEltcGxNYWMubW0KQEAgLTExNyw3ICsxMTcsNyBAQCBQYWdlQ2xpZW50SW1wbDo6
flBhZ2VDbGllbnRJbXBsKCkgPSBkZWZhdWx0OwogCiB2b2lkIFBhZ2VDbGllbnRJbXBsOjpzZXRJ
bXBsKFdlYlZpZXdJbXBsJiBpbXBsKQogewotICAgIG1faW1wbCA9IG1ha2VXZWFrUHRyKGltcGwp
OworICAgIG1faW1wbCA9IGltcGw7CiB9CiAKIHN0ZDo6dW5pcXVlX3B0cjxEcmF3aW5nQXJlYVBy
b3h5PiBQYWdlQ2xpZW50SW1wbDo6Y3JlYXRlRHJhd2luZ0FyZWFQcm94eShXZWJQcm9jZXNzUHJv
eHkmIHByb2Nlc3MpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMvV0tS
ZXZlYWxJdGVtUHJlc2VudGVyLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFjL1dLUmV2
ZWFsSXRlbVByZXNlbnRlci5tbQppbmRleCAwZmU0MTRkOThkZTljZjk2ZjQ4NGRlMzc1OWNkMmI2
MmQwNmRkZDdhLi4wZjUxZmQ4ZWJiMDEwOTVjYWE4NTc0NzNkNGY0NWVmZTAxOGU1MWVhIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMvV0tSZXZlYWxJdGVtUHJlc2VudGVy
Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9XS1JldmVhbEl0ZW1QcmVzZW50
ZXIubW0KQEAgLTUzLDcgKzUzLDcgQEAgLSAoaW5zdGFuY2V0eXBlKWluaXRXaXRoV2ViVmlld0lt
cGw6KGNvbnN0IFdlYktpdDo6V2ViVmlld0ltcGwmKWltcGwgaXRlbTooUlZJdGUKICAgICBpZiAo
IShzZWxmID0gW3N1cGVyIGluaXRdKSkKICAgICAgICAgcmV0dXJuIG5pbDsKIAotICAgIF9pbXBs
ID0gbWFrZVdlYWtQdHIoaW1wbCk7CisgICAgX2ltcGwgPSBpbXBsOwogICAgIF9wcmVzZW50ZXIg
PSBhZG9wdE5TKFtQQUw6OmFsbG9jUlZQcmVzZW50ZXJJbnN0YW5jZSgpIGluaXRdKTsKICAgICBf
cHJlc2VudGluZ0NvbnRleHQgPSBhZG9wdE5TKFtQQUw6OmFsbG9jUlZQcmVzZW50aW5nQ29udGV4
dEluc3RhbmNlKCkgaW5pdFdpdGhQb2ludGVyTG9jYXRpb25JblZpZXc6bWVudUxvY2F0aW9uSW5W
aWV3IGluVmlldzppbXBsLnZpZXcoKSBoaWdobGlnaHREZWxlZ2F0ZTpzZWxmXSk7CiAgICAgX2l0
ZW0gPSBpdGVtOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFjL1dlYkNv
bnRleHRNZW51UHJveHlNYWMubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMvV2ViQ29u
dGV4dE1lbnVQcm94eU1hYy5tbQppbmRleCA3NzkyYjBmMjJkN2Q1ZjVlNWNiNzIzZWFmYmVmZTQ4
Yjk4MzA4NGM4Li4zNDU0NTE5OGVlZmUxMGZjN2QyZWM5ZWI0YWQwYWRmNDAzNTQ0MGM2IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMvV2ViQ29udGV4dE1lbnVQcm94eU1h
Yy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMvV2ViQ29udGV4dE1lbnVQcm94
eU1hYy5tbQpAQCAtNTM3LDcgKzUzNyw3IEBAIHZvaWQgV2ViQ29udGV4dE1lbnVQcm94eU1hYzo6
Z2V0Q29udGV4dE1lbnVGcm9tSXRlbXMoY29uc3QgVmVjdG9yPFdlYkNvbnRleHRNZW51CiAgICAg
YXV0byBpbWFnZUJpdG1hcCA9IG1fY29udGV4dC53ZWJIaXRUZXN0UmVzdWx0RGF0YSgpLmltYWdl
Qml0bWFwOwogCiAgICAgYXV0byBzcGFyc2VNZW51SXRlbXMgPSByZXRhaW5QdHIoW05TUG9pbnRl
ckFycmF5IHN0cm9uZ09iamVjdHNQb2ludGVyQXJyYXldKTsKLSAgICBhdXRvIGluc2VydE1lbnVJ
dGVtID0gbWFrZUJsb2NrUHRyKFtwcm90ZWN0ZWRUaGlzID0gUmVmIHsgKnRoaXMgfSwgd2Vha1Bh
Z2UgPSBtYWtlV2Vha1B0cihwYWdlKCkpLCBpbWFnZVVSTCA9IFdURk1vdmUoaW1hZ2VVUkwpLCBp
bWFnZUJpdG1hcCA9IFdURk1vdmUoaW1hZ2VCaXRtYXApLCBzaG91bGRVcGRhdGVRdWlja0xvb2tJ
dGVtVGl0bGUsIHF1aWNrTG9va0l0ZW1Ub0luc2VydElmTmVlZGVkID0gV1RGTW92ZShxdWlja0xv
b2tJdGVtVG9JbnNlcnRJZk5lZWRlZCksIGNvbXBsZXRpb25IYW5kbGVyID0gV1RGTW92ZShjb21w
bGV0aW9uSGFuZGxlciksIGl0ZW1zUmVtYWluaW5nID0gZmlsdGVyZWRJdGVtcy5zaXplKCksIG1l
bnUgPSBXVEZNb3ZlKG1lbnUpLCBzcGFyc2VNZW51SXRlbXNdKE5TTWVudUl0ZW0gKml0ZW0sIE5T
VUludGVnZXIgaW5kZXgpIG11dGFibGUgeworICAgIGF1dG8gaW5zZXJ0TWVudUl0ZW0gPSBtYWtl
QmxvY2tQdHIoW3Byb3RlY3RlZFRoaXMgPSBSZWYgeyAqdGhpcyB9LCB3ZWFrUGFnZSA9IFdlYWtQ
dHIgeyBwYWdlKCkgfSwgaW1hZ2VVUkwgPSBXVEZNb3ZlKGltYWdlVVJMKSwgaW1hZ2VCaXRtYXAg
PSBXVEZNb3ZlKGltYWdlQml0bWFwKSwgc2hvdWxkVXBkYXRlUXVpY2tMb29rSXRlbVRpdGxlLCBx
dWlja0xvb2tJdGVtVG9JbnNlcnRJZk5lZWRlZCA9IFdURk1vdmUocXVpY2tMb29rSXRlbVRvSW5z
ZXJ0SWZOZWVkZWQpLCBjb21wbGV0aW9uSGFuZGxlciA9IFdURk1vdmUoY29tcGxldGlvbkhhbmRs
ZXIpLCBpdGVtc1JlbWFpbmluZyA9IGZpbHRlcmVkSXRlbXMuc2l6ZSgpLCBtZW51ID0gV1RGTW92
ZShtZW51KSwgc3BhcnNlTWVudUl0ZW1zXShOU01lbnVJdGVtICppdGVtLCBOU1VJbnRlZ2VyIGlu
ZGV4KSBtdXRhYmxlIHsKICAgICAgICAgQVNTRVJUKGluZGV4IDwgW3NwYXJzZU1lbnVJdGVtcyBj
b3VudF0pOwogICAgICAgICBBU1NFUlQoIVtzcGFyc2VNZW51SXRlbXMgcG9pbnRlckF0SW5kZXg6
aW5kZXhdKTsKICAgICAgICAgW3NwYXJzZU1lbnVJdGVtcyByZXBsYWNlUG9pbnRlckF0SW5kZXg6
aW5kZXggd2l0aFBvaW50ZXI6aXRlbV07CkBAIC01ODUsNyArNTg1LDcgQEAgdm9pZCBXZWJDb250
ZXh0TWVudVByb3h5TWFjOjppbnNlcnRPclVwZGF0ZVF1aWNrTG9va0ltYWdlSXRlbShjb25zdCBV
UkwmIGltYWdlVVIKICAgICB9CiAKICAgICBpZiAoc2hvdWxkVXBkYXRlUXVpY2tMb29rSXRlbVRp
dGxlKSB7Ci0gICAgICAgIHBhZ2UtPmNvbXB1dGVIYXNJbWFnZUFuYWx5c2lzUmVzdWx0cyhpbWFn
ZVVSTCwgaW1hZ2VCaXRtYXAuZ2V0KCksIEltYWdlQW5hbHlzaXNUeXBlOjpWaXN1YWxTZWFyY2gs
IFt3ZWFrVGhpcyA9IFdlYWtQdHIgeyAqdGhpcyB9LCB3ZWFrUGFnZSA9IG1ha2VXZWFrUHRyKHBh
Z2UuZ2V0KCkpLCBpbWFnZVVSTCwgaW1hZ2VCaXRtYXAgPSBXVEZNb3ZlKGltYWdlQml0bWFwKV0g
KGJvb2wgaGFzVmlzdWFsU2VhcmNoUmVzdWx0cykgbXV0YWJsZSB7CisgICAgICAgIHBhZ2UtPmNv
bXB1dGVIYXNJbWFnZUFuYWx5c2lzUmVzdWx0cyhpbWFnZVVSTCwgaW1hZ2VCaXRtYXAuZ2V0KCks
IEltYWdlQW5hbHlzaXNUeXBlOjpWaXN1YWxTZWFyY2gsIFt3ZWFrVGhpcyA9IFdlYWtQdHIgeyAq
dGhpcyB9LCB3ZWFrUGFnZSA9IFdlYWtQdHIgeyBwYWdlIH0sIGltYWdlVVJMLCBpbWFnZUJpdG1h
cCA9IFdURk1vdmUoaW1hZ2VCaXRtYXApXSAoYm9vbCBoYXNWaXN1YWxTZWFyY2hSZXN1bHRzKSBt
dXRhYmxlIHsKICAgICAgICAgICAgIFJlZlB0ciBwcm90ZWN0ZWRUaGlzIHsgd2Vha1RoaXMuZ2V0
KCkgfTsKICAgICAgICAgICAgIGlmICghcHJvdGVjdGVkVGhpcykKICAgICAgICAgICAgICAgICBy
ZXR1cm47CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMvV2ViRGF0YUxp
c3RTdWdnZXN0aW9uc0Ryb3Bkb3duTWFjLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFj
L1dlYkRhdGFMaXN0U3VnZ2VzdGlvbnNEcm9wZG93bk1hYy5tbQppbmRleCBkMWE0MGFlMDk1ZWJm
YmNhOTEyMDk3MWFhOTQ5Yzc5NTRkNTM4ODA5Li44ZjM1Y2JmNjAyYjYzNDc2NmEwMDFiNGNlOGQy
NmUzZDNlMWZmNjgyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMvV2Vi
RGF0YUxpc3RTdWdnZXN0aW9uc0Ryb3Bkb3duTWFjLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL21hYy9XZWJEYXRhTGlzdFN1Z2dlc3Rpb25zRHJvcGRvd25NYWMubW0KQEAgLTQ1NSw3
ICs0NTUsNyBAQCAtIChOU1JlY3QpZHJvcGRvd25SZWN0Rm9yRWxlbWVudFJlY3Q6KGNvbnN0IFdl
YkNvcmU6OkludFJlY3QmKXJlY3QKIAogLSAodm9pZClzaG93U3VnZ2VzdGlvbnNEcm9wZG93bjoo
V2ViS2l0OjpXZWJEYXRhTGlzdFN1Z2dlc3Rpb25zRHJvcGRvd25NYWMmKWRyb3Bkb3duCiB7Ci0g
ICAgX2Ryb3Bkb3duID0gbWFrZVdlYWtQdHIoZHJvcGRvd24pOworICAgIF9kcm9wZG93biA9IGRy
b3Bkb3duOwogICAgIFtbX2VuY2xvc2luZ1dpbmRvdyBjb250ZW50Vmlld10gYWRkU3Vidmlldzpf
c2Nyb2xsVmlldy5nZXQoKV07CiAgICAgW190YWJsZSByZWxvYWRdOwogICAgIFtbX3ByZXNlbnRp
bmdWaWV3IHdpbmRvd10gYWRkQ2hpbGRXaW5kb3c6X2VuY2xvc2luZ1dpbmRvdy5nZXQoKSBvcmRl
cmVkOk5TV2luZG93QWJvdmVdOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
bWFjL1dlYkRhdGVUaW1lUGlja2VyTWFjLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFj
L1dlYkRhdGVUaW1lUGlja2VyTWFjLm1tCmluZGV4IDdiNWNhODJhYjNkNmQ3MDVlZGE4NjkyN2Vj
MzUyYmI3MzJjZTkzNDUuLjJhNDIzM2YzZjc5MDAzODAxZjYyYzkyNWQyNTQ1MjdhNjhjNDZhMzgg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9XZWJEYXRlVGltZVBpY2tl
ck1hYy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMvV2ViRGF0ZVRpbWVQaWNr
ZXJNYWMubW0KQEAgLTIyOCw3ICsyMjgsNyBAQCAtIChpZClpbml0V2l0aFBhcmFtczooV2ViQ29y
ZTo6RGF0ZVRpbWVDaG9vc2VyUGFyYW1ldGVycyYmKXBhcmFtcyBpblZpZXc6KE5TVmlldwogCiAt
ICh2b2lkKXNob3dQaWNrZXI6KFdlYktpdDo6V2ViRGF0ZVRpbWVQaWNrZXJNYWMmKXBpY2tlcgog
ewotICAgIF9waWNrZXIgPSBtYWtlV2Vha1B0cihwaWNrZXIpOworICAgIF9waWNrZXIgPSBwaWNr
ZXI7CiAKICAgICBbW19lbmNsb3NpbmdXaW5kb3cgY29udGVudFZpZXddIGFkZFN1YnZpZXc6X2Rh
dGVQaWNrZXIuZ2V0KCldOwogICAgIFtbX3ByZXNlbnRpbmdWaWV3IHdpbmRvd10gYWRkQ2hpbGRX
aW5kb3c6X2VuY2xvc2luZ1dpbmRvdy5nZXQoKSBvcmRlcmVkOk5TV2luZG93QWJvdmVdOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0F1dG9tYXRpb24vV2ViQXV0b21hdGlv
bkRPTVdpbmRvd09ic2VydmVyLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9BdXRvbWF0
aW9uL1dlYkF1dG9tYXRpb25ET01XaW5kb3dPYnNlcnZlci5jcHAKaW5kZXggYzAyOThmMTJhY2U4
YmE4NGQwYThjNWI3MzFiNzI0MWIyMjcxN2Y3OC4uODZlMDdhMDQ2MDQzYzFiMTM5YjI1YWNhNDFi
MzdiZTJhMzViYjI1MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0F1dG9t
YXRpb24vV2ViQXV0b21hdGlvbkRPTVdpbmRvd09ic2VydmVyLmNwcAorKysgYi9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvQXV0b21hdGlvbi9XZWJBdXRvbWF0aW9uRE9NV2luZG93T2JzZXJ2ZXIu
Y3BwCkBAIC0zMiw3ICszMiw3IEBACiBuYW1lc3BhY2UgV2ViS2l0IHsKIAogV2ViQXV0b21hdGlv
bkRPTVdpbmRvd09ic2VydmVyOjpXZWJBdXRvbWF0aW9uRE9NV2luZG93T2JzZXJ2ZXIoV2ViQ29y
ZTo6RE9NV2luZG93JiB3aW5kb3csIFdURjo6RnVuY3Rpb248dm9pZChXZWJBdXRvbWF0aW9uRE9N
V2luZG93T2JzZXJ2ZXImKT4mJiBjYWxsYmFjaykKLSAgICA6IG1fd2luZG93KG1ha2VXZWFrUHRy
KHdpbmRvdykpCisgICAgOiBtX3dpbmRvdyh3aW5kb3cpCiAgICAgLCBtX2NhbGxiYWNrKFdURk1v
dmUoY2FsbGJhY2spKQogewogICAgIEFTU0VSVChtX3dpbmRvdy0+ZnJhbWUoKSk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90ZURpc3BsYXlM
aXN0UmVjb3JkZXJQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBo
aWNzL1JlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXJQcm94eS5jcHAKaW5kZXggYTIzOWVkMjE5YmU3
OWZmMzZiYTY3ODBhYmJiNDJmNzBkM2Q3YzY5NS4uNmM5MTRkODA4MjVkNWUwZmFhYzhiN2E0OGEy
NDgzOWFlN2FkMWIzMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9n
cmFwaGljcy9SZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyUHJveHkuY3BwCisrKyBiL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlclBy
b3h5LmNwcApAQCAtNDUsOCArNDUsOCBAQCB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIFJlbW90
ZURpc3BsYXlMaXN0UmVjb3JkZXJQcm94eTo6UmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlclByb3h5
KEltYWdlQnVmZmVyJiBpbWFnZUJ1ZmZlciwgUmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5JiBy
ZW5kZXJpbmdCYWNrZW5kLCBjb25zdCBGbG9hdFJlY3QmIGluaXRpYWxDbGlwLCBjb25zdCBBZmZp
bmVUcmFuc2Zvcm0mIGluaXRpYWxDVE0sIERyYXdHbHlwaHNSZWNvcmRlcjo6RGVjb25zdHJ1Y3RE
cmF3R2x5cGhzIGRlY29uc3RydWN0RHJhd0dseXBocykKICAgICA6IERpc3BsYXlMaXN0OjpSZWNv
cmRlcih7IH0sIGluaXRpYWxDbGlwLCBpbml0aWFsQ1RNLCBkZWNvbnN0cnVjdERyYXdHbHlwaHMp
CiAgICAgLCBtX2Rlc3RpbmF0aW9uQnVmZmVySWRlbnRpZmllcihpbWFnZUJ1ZmZlci5yZW5kZXJp
bmdSZXNvdXJjZUlkZW50aWZpZXIoKSkKLSAgICAsIG1faW1hZ2VCdWZmZXIobWFrZVdlYWtQdHIo
aW1hZ2VCdWZmZXIpKQotICAgICwgbV9yZW5kZXJpbmdCYWNrZW5kKG1ha2VXZWFrUHRyKHJlbmRl
cmluZ0JhY2tlbmQpKQorICAgICwgbV9pbWFnZUJ1ZmZlcihpbWFnZUJ1ZmZlcikKKyAgICAsIG1f
cmVuZGVyaW5nQmFja2VuZChyZW5kZXJpbmdCYWNrZW5kKQogewogfQogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90ZUltYWdlQnVmZmVyUHJv
eHkuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3RlSW1hZ2VC
dWZmZXJQcm94eS5oCmluZGV4IDJiYTkzNjk5YThjY2ExM2FiNzFiYTZhYTQ0ZDBmNDg3ZjViMzU0
YTYuLjY5MzRiYjQ2MTZjZTAwYmVhYjE0MGJhYTk0MTA5YjZiYTk1ZjNjMjQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3RlSW1hZ2VCdWZmZXJQ
cm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3Rl
SW1hZ2VCdWZmZXJQcm94eS5oCkBAIC05OCw3ICs5OCw3IEBAIHB1YmxpYzoKIHByb3RlY3RlZDoK
ICAgICBSZW1vdGVJbWFnZUJ1ZmZlclByb3h5KGNvbnN0IFdlYkNvcmU6OkltYWdlQnVmZmVyQmFj
a2VuZDo6UGFyYW1ldGVycyYgcGFyYW1ldGVycywgUmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5
JiByZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHkpCiAgICAgICAgIDogQmFzZUNvbmNyZXRlSW1h
Z2VCdWZmZXIocGFyYW1ldGVycykKLSAgICAgICAgLCBtX3JlbW90ZVJlbmRlcmluZ0JhY2tlbmRQ
cm94eShtYWtlV2Vha1B0cihyZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHkpKQorICAgICAgICAs
IG1fcmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5KHJlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94
eSkKICAgICAgICAgLCBtX3JlbW90ZURpc3BsYXlMaXN0KCp0aGlzLCByZW1vdGVSZW5kZXJpbmdC
YWNrZW5kUHJveHksIHsgeyB9LCBCYXNlQ29uY3JldGVJbWFnZUJ1ZmZlcjo6bG9naWNhbFNpemUo
KSB9LCBCYXNlQ29uY3JldGVJbWFnZUJ1ZmZlcjo6YmFzZVRyYW5zZm9ybSgpKQogICAgIHsKICAg
ICAgICAgQVNTRVJUKG1fcmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5KTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFj
a2VuZFByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVt
b3RlUmVuZGVyaW5nQmFja2VuZFByb3h5LmNwcAppbmRleCBkOTgyMWFjNTdhNzc3ZDA0Y2I5NTQ3
ZmI0MzcyZDQ3MDg1ZWYyNmU4Li4yOGJiMjQ0ODE2ODE5M2VlZTdkY2FjZWIzODFhOGYzZGUwOGRh
MWFmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1Jl
bW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHkuY3BwCkBAIC03OCw3
ICs3OCw3IEBAIEdQVVByb2Nlc3NDb25uZWN0aW9uJiBSZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJv
eHk6OmVuc3VyZUdQVVByb2Nlc3NDb25uZWN0aW9uKCkKICAgICAgICAgc3RhdGljIGNvbnN0ZXhw
ciBhdXRvIGNvbm5lY3Rpb25CdWZmZXJTaXplID0gMSA8PCAyMTsKICAgICAgICAgbV9zdHJlYW1D
b25uZWN0aW9uID0gbWFrZVVuaXF1ZTxJUEM6OlN0cmVhbUNsaWVudENvbm5lY3Rpb24+KGdwdVBy
b2Nlc3NDb25uZWN0aW9uLmNvbm5lY3Rpb24oKSwgY29ubmVjdGlvbkJ1ZmZlclNpemUpOwogICAg
ICAgICBncHVQcm9jZXNzQ29ubmVjdGlvbi5jb25uZWN0aW9uKCkuc2VuZChNZXNzYWdlczo6R1BV
Q29ubmVjdGlvblRvV2ViUHJvY2Vzczo6Q3JlYXRlUmVuZGVyaW5nQmFja2VuZChtX3BhcmFtZXRl
cnMsIG1fc3RyZWFtQ29ubmVjdGlvbi0+c3RyZWFtQnVmZmVyKCkpLCAwLCBJUEM6OlNlbmRPcHRp
b246OkRpc3BhdGNoTWVzc2FnZUV2ZW5XaGVuV2FpdGluZ0ZvclN5bmNSZXBseSk7Ci0gICAgICAg
IG1fZ3B1UHJvY2Vzc0Nvbm5lY3Rpb24gPSBtYWtlV2Vha1B0cihncHVQcm9jZXNzQ29ubmVjdGlv
bik7CisgICAgICAgIG1fZ3B1UHJvY2Vzc0Nvbm5lY3Rpb24gPSBncHVQcm9jZXNzQ29ubmVjdGlv
bjsKICAgICB9CiAgICAgcmV0dXJuICptX2dwdVByb2Nlc3NDb25uZWN0aW9uOwogfQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVSZXNvdXJj
ZUNhY2hlUHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9S
ZW1vdGVSZXNvdXJjZUNhY2hlUHJveHkuY3BwCmluZGV4IDQxMTcwNGQ3MzUxMDVmYjUxY2E5NTUy
NThlZWViODk3OTNhYzQ1NmMuLjE3MDRlNWMzODIxMzllMTgzNzM2NzdlZWNhYjNjMTY4NDg0YmM4
MWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVt
b3RlUmVzb3VyY2VDYWNoZVByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
R1BVL2dyYXBoaWNzL1JlbW90ZVJlc291cmNlQ2FjaGVQcm94eS5jcHAKQEAgLTQ2LDcgKzQ2LDcg
QEAgUmVtb3RlUmVzb3VyY2VDYWNoZVByb3h5Ojp+UmVtb3RlUmVzb3VyY2VDYWNoZVByb3h5KCkK
IAogdm9pZCBSZW1vdGVSZXNvdXJjZUNhY2hlUHJveHk6OmNhY2hlSW1hZ2VCdWZmZXIoV2ViQ29y
ZTo6SW1hZ2VCdWZmZXImIGltYWdlQnVmZmVyKQogewotICAgIGF1dG8gYWRkUmVzdWx0ID0gbV9p
bWFnZUJ1ZmZlcnMuYWRkKGltYWdlQnVmZmVyLnJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllcigp
LCBJbWFnZUJ1ZmZlclN0YXRlIHsgbWFrZVdlYWtQdHIoaW1hZ2VCdWZmZXIpLCAwIH0pOworICAg
IGF1dG8gYWRkUmVzdWx0ID0gbV9pbWFnZUJ1ZmZlcnMuYWRkKGltYWdlQnVmZmVyLnJlbmRlcmlu
Z1Jlc291cmNlSWRlbnRpZmllcigpLCBJbWFnZUJ1ZmZlclN0YXRlIHsgaW1hZ2VCdWZmZXIsIDAg
fSk7CiAgICAgQVNTRVJUX1VOVVNFRChhZGRSZXN1bHQsIGFkZFJlc3VsdC5pc05ld0VudHJ5KTsK
IH0KIApAQCAtMTA5LDcgKzEwOSw3IEBAIHZvaWQgUmVtb3RlUmVzb3VyY2VDYWNoZVByb3h5Ojpy
ZWNvcmROYXRpdmVJbWFnZVVzZShOYXRpdmVJbWFnZSYgaW1hZ2UpCiAgICAgaWYgKGhhbmRsZS5p
c051bGwoKSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgbV9uYXRpdmVJbWFnZXMuYWRkKGltYWdl
LnJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllcigpLCBOYXRpdmVJbWFnZVN0YXRlIHsgbWFrZVdl
YWtQdHIoaW1hZ2UpLCAxIH0pOworICAgIG1fbmF0aXZlSW1hZ2VzLmFkZChpbWFnZS5yZW5kZXJp
bmdSZXNvdXJjZUlkZW50aWZpZXIoKSwgTmF0aXZlSW1hZ2VTdGF0ZSB7IGltYWdlLCAxIH0pOwog
CiAgICAgLy8gU2V0IGl0c2VsZiBhcyBhbiBvYnNlcnZlciB0byBOYXRpdmVJbWFnZSwgc28gcmVs
ZWFzZU5hdGl2ZUltYWdlKCkKICAgICAvLyBnZXRzIGNhbGxlZCB3aGVuIE5hdGl2ZUltYWdlIGlz
IGJlaW5nIGRlbGVsZXRlZC4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9H
UFUvbWVkaWEvQXVkaW9UcmFja1ByaXZhdGVSZW1vdGUuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL0dQVS9tZWRpYS9BdWRpb1RyYWNrUHJpdmF0ZVJlbW90ZS5jcHAKaW5kZXggMWNkMjk2
NzQ0Y2Q0YTYzNjBkNzhmOWQyMzdiMTFkMzU4NDdjZjBkMy4uMzVlODVmNmQ2YjY0YjQ1NWVlNDVj
ZTJkZTQ2OGMzMGIwNjc3N2I3ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L0dQVS9tZWRpYS9BdWRpb1RyYWNrUHJpdmF0ZVJlbW90ZS5jcHAKKysrIGIvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9BdWRpb1RyYWNrUHJpdmF0ZVJlbW90ZS5jcHAKQEAgLTM3
LDcgKzM3LDcgQEAKIG5hbWVzcGFjZSBXZWJLaXQgewogCiBBdWRpb1RyYWNrUHJpdmF0ZVJlbW90
ZTo6QXVkaW9UcmFja1ByaXZhdGVSZW1vdGUoR1BVUHJvY2Vzc0Nvbm5lY3Rpb24mIGdwdVByb2Nl
c3NDb25uZWN0aW9uLCBXZWJDb3JlOjpNZWRpYVBsYXllcklkZW50aWZpZXIgcGxheWVySWRlbnRp
ZmllciwgVHJhY2tQcml2YXRlUmVtb3RlSWRlbnRpZmllciBpZGVuZGlmaWVyLCBUcmFja1ByaXZh
dGVSZW1vdGVDb25maWd1cmF0aW9uJiYgY29uZmlndXJhdGlvbikKLSAgICA6IG1fZ3B1UHJvY2Vz
c0Nvbm5lY3Rpb24obWFrZVdlYWtQdHIoZ3B1UHJvY2Vzc0Nvbm5lY3Rpb24pKQorICAgIDogbV9n
cHVQcm9jZXNzQ29ubmVjdGlvbihncHVQcm9jZXNzQ29ubmVjdGlvbikKICAgICAsIG1fcGxheWVy
SWRlbnRpZmllcihwbGF5ZXJJZGVudGlmaWVyKQogICAgICwgbV9pZGVuZGlmaWVyKGlkZW5kaWZp
ZXIpCiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL01l
ZGlhUGxheWVyUHJpdmF0ZVJlbW90ZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BV
L21lZGlhL01lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZS5jcHAKaW5kZXggMDJmNzQ4OWI1MGY1MGRm
ZTBiNzFiMGFmYjVjNjViNzQwMGMwMGJlNS4uZmRmOTZjNTZjNDkxYmIwNjRhYjcyZWMwN2ZlOGU2
ZmY1MTk1ZWM1YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRp
YS9NZWRpYVBsYXllclByaXZhdGVSZW1vdGUuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9HUFUvbWVkaWEvTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlLmNwcApAQCAtMTEwLDcgKzEx
MCw3IEBAIE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTo6TWVkaWFQbGF5ZXJQcml2YXRlUmVtb3Rl
KE1lZGlhUGxheWVyKiBwbGF5ZXIsIE1lZGlhUGxhCiAgICAgLCBtX2xvZ0lkZW50aWZpZXIocGxh
eWVyLT5tZWRpYVBsYXllckxvZ0lkZW50aWZpZXIoKSkKICAgICAsCiAjZW5kaWYKLSAgICAgIG1f
cGxheWVyKG1ha2VXZWFrUHRyKCpwbGF5ZXIpKQorICAgICAgbV9wbGF5ZXIoKnBsYXllcikKICAg
ICAsIG1fbWVkaWFSZXNvdXJjZUxvYWRlcigqcGxheWVyLT5jcmVhdGVSZXNvdXJjZUxvYWRlcigp
KQogI2lmIFBMQVRGT1JNKENPQ09BKQogICAgICwgbV92aWRlb0xheWVyTWFuYWdlcihtYWtlVW5p
cXVlUmVmPFZpZGVvTGF5ZXJNYW5hZ2VyT2JqQz4obG9nZ2VyKCksIGxvZ0lkZW50aWZpZXIoKSkp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL01lZGlhU291
cmNlUHJpdmF0ZVJlbW90ZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlh
L01lZGlhU291cmNlUHJpdmF0ZVJlbW90ZS5jcHAKaW5kZXggMzY1MGJiZGFkM2Q3ZDJmYmViNjUx
MzVjN2QzNmVlMjNhMWVkMDkyZC4uNmEyMGQ3NTBhNDk0NGZiMzhkYTc0ODI4OTcwOWYyMDU1YzU2
NDBkMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9NZWRp
YVNvdXJjZVByaXZhdGVSZW1vdGUuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9H
UFUvbWVkaWEvTWVkaWFTb3VyY2VQcml2YXRlUmVtb3RlLmNwcApAQCAtNTQsMTAgKzU0LDEwIEBA
IFJlZjxNZWRpYVNvdXJjZVByaXZhdGVSZW1vdGU+IE1lZGlhU291cmNlUHJpdmF0ZVJlbW90ZTo6
Y3JlYXRlKEdQVVByb2Nlc3NDb25uZWN0CiB9CiAKIE1lZGlhU291cmNlUHJpdmF0ZVJlbW90ZTo6
TWVkaWFTb3VyY2VQcml2YXRlUmVtb3RlKEdQVVByb2Nlc3NDb25uZWN0aW9uJiBncHVQcm9jZXNz
Q29ubmVjdGlvbiwgUmVtb3RlTWVkaWFTb3VyY2VJZGVudGlmaWVyIGlkZW50aWZpZXIsIFJlbW90
ZU1lZGlhUGxheWVyTUlNRVR5cGVDYWNoZSYgbWltZVR5cGVDYWNoZSwgY29uc3QgTWVkaWFQbGF5
ZXJQcml2YXRlUmVtb3RlJiBtZWRpYVBsYXllclByaXZhdGUsIE1lZGlhU291cmNlUHJpdmF0ZUNs
aWVudCogY2xpZW50KQotICAgIDogbV9ncHVQcm9jZXNzQ29ubmVjdGlvbihtYWtlV2Vha1B0cihn
cHVQcm9jZXNzQ29ubmVjdGlvbikpCisgICAgOiBtX2dwdVByb2Nlc3NDb25uZWN0aW9uKGdwdVBy
b2Nlc3NDb25uZWN0aW9uKQogICAgICwgbV9pZGVudGlmaWVyKGlkZW50aWZpZXIpCiAgICAgLCBt
X21pbWVUeXBlQ2FjaGUobWltZVR5cGVDYWNoZSkKLSAgICAsIG1fbWVkaWFQbGF5ZXJQcml2YXRl
KG1ha2VXZWFrUHRyKG1lZGlhUGxheWVyUHJpdmF0ZSkpCisgICAgLCBtX21lZGlhUGxheWVyUHJp
dmF0ZShtZWRpYVBsYXllclByaXZhdGUpCiAgICAgLCBtX2NsaWVudChjbGllbnQpCiAjaWYgIVJF
TEVBU0VfTE9HX0RJU0FCTEVECiAgICAgLCBtX2xvZ2dlcihtX21lZGlhUGxheWVyUHJpdmF0ZS0+
bWVkaWFQbGF5ZXJMb2dnZXIoKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9HUFUvbWVkaWEvUmVtb3RlQXVkaW9EZXN0aW5hdGlvblByb3h5LmNwcCBiL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlQXVkaW9EZXN0aW5hdGlvblByb3h5LmNwcApp
bmRleCA3NzQwZGE0NWVhNjJmMWIyN2VkZDA2MWQxNTNjNzY3Nzk0ODNkNTkwLi44YWFkYTJmMDZj
MmM5NmZjNjBlN2I2YzNmY2M3OGJkZjQ0N2E3ZGNmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZUF1ZGlvRGVzdGluYXRpb25Qcm94eS5jcHAKKysr
IGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVBdWRpb0Rlc3RpbmF0
aW9uUHJveHkuY3BwCkBAIC0xMDEsNyArMTAxLDcgQEAgdm9pZCBSZW1vdGVBdWRpb0Rlc3RpbmF0
aW9uUHJveHk6OnN0b3BSZW5kZXJpbmdUaHJlYWQoKQogSVBDOjpDb25uZWN0aW9uKiBSZW1vdGVB
dWRpb0Rlc3RpbmF0aW9uUHJveHk6OmNvbm5lY3Rpb24oKQogewogICAgIGlmICghbV9ncHVQcm9j
ZXNzQ29ubmVjdGlvbikgewotICAgICAgICBtX2dwdVByb2Nlc3NDb25uZWN0aW9uID0gbWFrZVdl
YWtQdHIoV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkuZW5zdXJlR1BVUHJvY2Vzc0Nvbm5lY3Rpb24o
KSk7CisgICAgICAgIG1fZ3B1UHJvY2Vzc0Nvbm5lY3Rpb24gPSBXZWJQcm9jZXNzOjpzaW5nbGV0
b24oKS5lbnN1cmVHUFVQcm9jZXNzQ29ubmVjdGlvbigpOwogICAgICAgICBtX2dwdVByb2Nlc3ND
b25uZWN0aW9uLT5hZGRDbGllbnQoKnRoaXMpOwogCiAgICAgICAgIGlmICghbV9ncHVQcm9jZXNz
Q29ubmVjdGlvbi0+Y29ubmVjdGlvbigpLnNlbmRTeW5jKE1lc3NhZ2VzOjpSZW1vdGVBdWRpb0Rl
c3RpbmF0aW9uTWFuYWdlcjo6Q3JlYXRlQXVkaW9EZXN0aW5hdGlvbihtX2lucHV0RGV2aWNlSWQs
IG1fbnVtYmVyT2ZJbnB1dENoYW5uZWxzLCBudW1iZXJPZk91dHB1dENoYW5uZWxzKCksIHNhbXBs
ZVJhdGUoKSwgaGFyZHdhcmVTYW1wbGVSYXRlKCksIG1fcmVuZGVyU2VtYXBob3JlKSwgTWVzc2Fn
ZXM6OlJlbW90ZUF1ZGlvRGVzdGluYXRpb25NYW5hZ2VyOjpDcmVhdGVBdWRpb0Rlc3RpbmF0aW9u
OjpSZXBseShtX2Rlc3RpbmF0aW9uSUQpLCAwKSkgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVBdWRpb0hhcmR3YXJlTGlzdGVuZXIuY3BwIGIv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVBdWRpb0hhcmR3YXJlTGlz
dGVuZXIuY3BwCmluZGV4IGIwNjg5OTE2ZjA1NTJlZTA5YzljNGNlZjMwNDI0NTk4ZTJhNjAwODgu
LjIyMDgxZTdhZTdlMGNmM2Y4MzMxM2I1ODRkYmVlNWQ0N2QwM2IyYjggMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlQXVkaW9IYXJkd2FyZUxpc3Rl
bmVyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZUF1
ZGlvSGFyZHdhcmVMaXN0ZW5lci5jcHAKQEAgLTQ1LDcgKzQ1LDcgQEAgUmVmPFJlbW90ZUF1ZGlv
SGFyZHdhcmVMaXN0ZW5lcj4gUmVtb3RlQXVkaW9IYXJkd2FyZUxpc3RlbmVyOjpjcmVhdGUoQXVk
aW9IYXJkd2EKIFJlbW90ZUF1ZGlvSGFyZHdhcmVMaXN0ZW5lcjo6UmVtb3RlQXVkaW9IYXJkd2Fy
ZUxpc3RlbmVyKEF1ZGlvSGFyZHdhcmVMaXN0ZW5lcjo6Q2xpZW50JiBjbGllbnQsIFdlYlByb2Nl
c3MmIHdlYlByb2Nlc3MpCiAgICAgOiBBdWRpb0hhcmR3YXJlTGlzdGVuZXIoY2xpZW50KQogICAg
ICwgbV9pZGVudGlmaWVyKFJlbW90ZUF1ZGlvSGFyZHdhcmVMaXN0ZW5lcklkZW50aWZpZXI6Omdl
bmVyYXRlKCkpCi0gICAgLCBtX2dwdVByb2Nlc3NDb25uZWN0aW9uKG1ha2VXZWFrUHRyKFdlYlBy
b2Nlc3M6OnNpbmdsZXRvbigpLmVuc3VyZUdQVVByb2Nlc3NDb25uZWN0aW9uKCkpKQorICAgICwg
bV9ncHVQcm9jZXNzQ29ubmVjdGlvbihXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5lbnN1cmVHUFVQ
cm9jZXNzQ29ubmVjdGlvbigpKQogewogICAgIG1fZ3B1UHJvY2Vzc0Nvbm5lY3Rpb24tPmFkZENs
aWVudCgqdGhpcyk7CiAgICAgbV9ncHVQcm9jZXNzQ29ubmVjdGlvbi0+bWVzc2FnZVJlY2VpdmVy
TWFwKCkuYWRkTWVzc2FnZVJlY2VpdmVyKE1lc3NhZ2VzOjpSZW1vdGVBdWRpb0hhcmR3YXJlTGlz
dGVuZXI6Om1lc3NhZ2VSZWNlaXZlck5hbWUoKSwgbV9pZGVudGlmaWVyLnRvVUludDY0KCksICp0
aGlzKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVt
b3RlQXVkaW9TZXNzaW9uLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEv
UmVtb3RlQXVkaW9TZXNzaW9uLmNwcAppbmRleCBjZGE2YzI3YzEwNDI2YzEwZDcwZTY5YmJkNTc3
NDgzMTQxODdlNGJkLi4wOGVmZjk4YWE3YjM0ZTY4MzQ3ZTZkNDc2NzMwMWUxMjVjZWM5YTNkIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZUF1ZGlv
U2Vzc2lvbi5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1v
dGVBdWRpb1Nlc3Npb24uY3BwCkBAIC02Niw3ICs2Niw3IEBAIHZvaWQgUmVtb3RlQXVkaW9TZXNz
aW9uOjpncHVQcm9jZXNzQ29ubmVjdGlvbkRpZENsb3NlKEdQVVByb2Nlc3NDb25uZWN0aW9uJiBj
b25uCiBJUEM6OkNvbm5lY3Rpb24mIFJlbW90ZUF1ZGlvU2Vzc2lvbjo6ZW5zdXJlQ29ubmVjdGlv
bigpCiB7CiAgICAgaWYgKCFtX2dwdVByb2Nlc3NDb25uZWN0aW9uKSB7Ci0gICAgICAgIG1fZ3B1
UHJvY2Vzc0Nvbm5lY3Rpb24gPSBtYWtlV2Vha1B0cihtX3Byb2Nlc3MuZW5zdXJlR1BVUHJvY2Vz
c0Nvbm5lY3Rpb24oKSk7CisgICAgICAgIG1fZ3B1UHJvY2Vzc0Nvbm5lY3Rpb24gPSBtX3Byb2Nl
c3MuZW5zdXJlR1BVUHJvY2Vzc0Nvbm5lY3Rpb24oKTsKICAgICAgICAgbV9ncHVQcm9jZXNzQ29u
bmVjdGlvbi0+YWRkQ2xpZW50KCp0aGlzKTsKICAgICAgICAgbV9ncHVQcm9jZXNzQ29ubmVjdGlv
bi0+bWVzc2FnZVJlY2VpdmVyTWFwKCkuYWRkTWVzc2FnZVJlY2VpdmVyKE1lc3NhZ2VzOjpSZW1v
dGVBdWRpb1Nlc3Npb246Om1lc3NhZ2VSZWNlaXZlck5hbWUoKSwgKnRoaXMpOwogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZUF1ZGlvU291cmNl
UHJvdmlkZXIuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVB
dWRpb1NvdXJjZVByb3ZpZGVyLmNwcAppbmRleCA0NmNkYjAyNzY1M2I2ZTMyNGM4ODUyNDkzOWVm
MmRkNzUwZjRjNzlhLi45M2QzYzE4NWM1ODJmNTcxZWNkMGVmZDliN2JmMWVkNzA5NjljYjBiIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZUF1ZGlv
U291cmNlUHJvdmlkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVk
aWEvUmVtb3RlQXVkaW9Tb3VyY2VQcm92aWRlci5jcHAKQEAgLTUxLDcgKzUxLDcgQEAgUmVmPFJl
bW90ZUF1ZGlvU291cmNlUHJvdmlkZXI+IFJlbW90ZUF1ZGlvU291cmNlUHJvdmlkZXI6OmNyZWF0
ZShXZWJDb3JlOjpNZWRpYVAKIAogUmVtb3RlQXVkaW9Tb3VyY2VQcm92aWRlcjo6UmVtb3RlQXVk
aW9Tb3VyY2VQcm92aWRlcihNZWRpYVBsYXllcklkZW50aWZpZXIgaWRlbnRpZmllciwgV1RGOjpM
b2dnZXJIZWxwZXImIGhlbHBlcikKICAgICA6IG1faWRlbnRpZmllcihpZGVudGlmaWVyKQotICAg
ICwgbV9ncHVQcm9jZXNzQ29ubmVjdGlvbihtYWtlV2Vha1B0cihXZWJQcm9jZXNzOjpzaW5nbGV0
b24oKS5lbnN1cmVHUFVQcm9jZXNzQ29ubmVjdGlvbigpKSkKKyAgICAsIG1fZ3B1UHJvY2Vzc0Nv
bm5lY3Rpb24oV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkuZW5zdXJlR1BVUHJvY2Vzc0Nvbm5lY3Rp
b24oKSkKICNpZiAhUkVMRUFTRV9MT0dfRElTQUJMRUQKICAgICAsIG1fbG9nZ2VyKGhlbHBlci5s
b2dnZXIoKSkKICAgICAsIG1fbG9nSWRlbnRpZmllcihoZWxwZXIubG9nSWRlbnRpZmllcigpKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVDRE0u
Y3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVDRE0uY3BwCmlu
ZGV4IGRhZTQ5NWJmNmRkZDNmMmNmZGRiYjY4ZTgxZjUyN2ViNWQ4ODg0ZWEuLmZhOTQwMjVlZDc0
NzMwZDI4ZTcxNjQ2Mjg1ZjllNWJhNjUzYjhmMTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlQ0RNLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZUNETS5jcHAKQEAgLTExOCw3ICsxMTgsNyBAQCBSZWZQ
dHI8Q0RNSW5zdGFuY2U+IFJlbW90ZUNETTo6Y3JlYXRlSW5zdGFuY2UoKQogICAgIG1fZmFjdG9y
eS0+Z3B1UHJvY2Vzc0Nvbm5lY3Rpb24oKS5jb25uZWN0aW9uKCkuc2VuZFN5bmMoTWVzc2FnZXM6
OlJlbW90ZUNETVByb3h5OjpDcmVhdGVJbnN0YW5jZSgpLCBNZXNzYWdlczo6UmVtb3RlQ0RNUHJv
eHk6OkNyZWF0ZUluc3RhbmNlOjpSZXBseShpZGVudGlmaWVyLCBjb25maWd1cmF0aW9uKSwgbV9p
ZGVudGlmaWVyKTsKICAgICBpZiAoIWlkZW50aWZpZXIpCiAgICAgICAgIHJldHVybiBudWxscHRy
OwotICAgIHJldHVybiBSZW1vdGVDRE1JbnN0YW5jZTo6Y3JlYXRlKG1ha2VXZWFrUHRyKG1fZmFj
dG9yeS5nZXQoKSksIFdURk1vdmUoaWRlbnRpZmllciksIFdURk1vdmUoY29uZmlndXJhdGlvbikp
OworICAgIHJldHVybiBSZW1vdGVDRE1JbnN0YW5jZTo6Y3JlYXRlKG1fZmFjdG9yeS5nZXQoKSwg
V1RGTW92ZShpZGVudGlmaWVyKSwgV1RGTW92ZShjb25maWd1cmF0aW9uKSk7CiB9CiAKIHZvaWQg
UmVtb3RlQ0RNOjpsb2FkQW5kSW5pdGlhbGl6ZSgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZUNETUZhY3RvcnkuY3BwIGIvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVDRE1GYWN0b3J5LmNwcAppbmRleCA1OTEwYWU2
YjE2ZTAwNGFjYjVmMGYyNDE4OWUwMGE3YTQ4ZWNmMjkwLi44NmYzOGQ0YTMyMTAwMWFlNjUxZjI2
ZGMwNmZhOWE4MjEyYjJmNzE5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
R1BVL21lZGlhL1JlbW90ZUNETUZhY3RvcnkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9HUFUvbWVkaWEvUmVtb3RlQ0RNRmFjdG9yeS5jcHAKQEAgLTc1LDcgKzc1LDcgQEAgc3Rk
Ojp1bmlxdWVfcHRyPENETVByaXZhdGU+IFJlbW90ZUNETUZhY3Rvcnk6OmNyZWF0ZUNETShjb25z
dCBTdHJpbmcmIGtleVN5c3RlbSkKICAgICBncHVQcm9jZXNzQ29ubmVjdGlvbigpLmNvbm5lY3Rp
b24oKS5zZW5kU3luYyhNZXNzYWdlczo6UmVtb3RlQ0RNRmFjdG9yeVByb3h5OjpDcmVhdGVDRE0o
a2V5U3lzdGVtKSwgTWVzc2FnZXM6OlJlbW90ZUNETUZhY3RvcnlQcm94eTo6Q3JlYXRlQ0RNOjpS
ZXBseShpZGVudGlmaWVyLCBjb25maWd1cmF0aW9uKSwgeyB9KTsKICAgICBpZiAoIWlkZW50aWZp
ZXIpCiAgICAgICAgIHJldHVybiBudWxscHRyOwotICAgIHJldHVybiBSZW1vdGVDRE06OmNyZWF0
ZShtYWtlV2Vha1B0cih0aGlzKSwgV1RGTW92ZShpZGVudGlmaWVyKSwgV1RGTW92ZShjb25maWd1
cmF0aW9uKSk7CisgICAgcmV0dXJuIFJlbW90ZUNETTo6Y3JlYXRlKCp0aGlzLCBXVEZNb3ZlKGlk
ZW50aWZpZXIpLCBXVEZNb3ZlKGNvbmZpZ3VyYXRpb24pKTsKIH0KIAogdm9pZCBSZW1vdGVDRE1G
YWN0b3J5OjphZGRTZXNzaW9uKFJlZjxSZW1vdGVDRE1JbnN0YW5jZVNlc3Npb24+JiYgc2Vzc2lv
bikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3Rl
Q0RNSW5zdGFuY2UuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1v
dGVDRE1JbnN0YW5jZS5jcHAKaW5kZXggZWRjODk0ZWU5MzNiOGVhYzYxOGQ5YTVmNjk3NmU5YzRk
MjgzODY4My4uYjVkZWEyMWU5OTVhNzM3ZjAzNmY2NDUzOGMxZmIzZWNiNWU2YmI1NSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVDRE1JbnN0YW5j
ZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVDRE1J
bnN0YW5jZS5jcHAKQEAgLTEwNSw3ICsxMDUsNyBAQCBSZWZQdHI8V2ViQ29yZTo6Q0RNSW5zdGFu
Y2VTZXNzaW9uPiBSZW1vdGVDRE1JbnN0YW5jZTo6Y3JlYXRlU2Vzc2lvbigpCiAgICAgbV9mYWN0
b3J5LT5ncHVQcm9jZXNzQ29ubmVjdGlvbigpLmNvbm5lY3Rpb24oKS5zZW5kU3luYyhNZXNzYWdl
czo6UmVtb3RlQ0RNSW5zdGFuY2VQcm94eTo6Q3JlYXRlU2Vzc2lvbigpLCBNZXNzYWdlczo6UmVt
b3RlQ0RNSW5zdGFuY2VQcm94eTo6Q3JlYXRlU2Vzc2lvbjo6UmVwbHkoaWRlbnRpZmllciksIG1f
aWRlbnRpZmllcik7CiAgICAgaWYgKCFpZGVudGlmaWVyKQogICAgICAgICByZXR1cm4gbnVsbHB0
cjsKLSAgICBhdXRvIHNlc3Npb24gPSBSZW1vdGVDRE1JbnN0YW5jZVNlc3Npb246OmNyZWF0ZSht
YWtlV2Vha1B0cihtX2ZhY3RvcnkuZ2V0KCkpLCBXVEZNb3ZlKGlkZW50aWZpZXIpKTsKKyAgICBh
dXRvIHNlc3Npb24gPSBSZW1vdGVDRE1JbnN0YW5jZVNlc3Npb246OmNyZWF0ZShtX2ZhY3Rvcnku
Z2V0KCksIFdURk1vdmUoaWRlbnRpZmllcikpOwogICAgIG1fZmFjdG9yeS0+YWRkU2Vzc2lvbihz
ZXNzaW9uLmNvcHlSZWYoKSk7CiAgICAgcmV0dXJuIHNlc3Npb247CiB9CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZUltYWdlRGVjb2RlckFWRi5j
cHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZUltYWdlRGVjb2Rl
ckFWRi5jcHAKaW5kZXggOGQ2NzVlMTVlMzdiYWRjNGZhYmY5YTMzNmM2ZjY5N2M0YWEzYzAxOS4u
OWEyMTlhNTQ0ZTU1MzgzZjU0ZTcxZGFiZDM1NGNjNDQwYTQxNDJiOSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVJbWFnZURlY29kZXJBVkYuY3Bw
CisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlSW1hZ2VEZWNv
ZGVyQVZGLmNwcApAQCAtNDcsNyArNDcsNyBAQCB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIAog
UmVtb3RlSW1hZ2VEZWNvZGVyQVZGOjpSZW1vdGVJbWFnZURlY29kZXJBVkYoUmVtb3RlSW1hZ2VE
ZWNvZGVyQVZGTWFuYWdlciYgbWFuYWdlciwgY29uc3QgV2ViQ29yZTo6SW1hZ2VEZWNvZGVySWRl
bnRpZmllciYgaWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiBtaW1lVHlwZSkKICAgICA6IEltYWdl
RGVjb2RlcigpCi0gICAgLCBtX2dwdVByb2Nlc3NDb25uZWN0aW9uKG1ha2VXZWFrUHRyKG1hbmFn
ZXIuZW5zdXJlR1BVUHJvY2Vzc0Nvbm5lY3Rpb24oKSkpCisgICAgLCBtX2dwdVByb2Nlc3NDb25u
ZWN0aW9uKG1hbmFnZXIuZW5zdXJlR1BVUHJvY2Vzc0Nvbm5lY3Rpb24oKSkKICAgICAsIG1fbWFu
YWdlcihtYW5hZ2VyKQogICAgICwgbV9pZGVudGlmaWVyKGlkZW50aWZpZXIpCiAgICAgLCBtX21p
bWVUeXBlKG1pbWVUeXBlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQ
VS9tZWRpYS9SZW1vdGVJbWFnZURlY29kZXJBVkZNYW5hZ2VyLmNwcCBiL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlSW1hZ2VEZWNvZGVyQVZGTWFuYWdlci5jcHAKaW5k
ZXggNzZlOTczNGVkMTA3NTRjMjZhM2M2ODJjNWE4ZjY2OTI0ODY5Yzc4OC4uNDFkNTM4ODAyM2Qz
OTE0OTUyMTgzNWY2ODhkZTRkNDhmNjVkNzY3ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVJbWFnZURlY29kZXJBVkZNYW5hZ2VyLmNwcAorKysg
Yi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZUltYWdlRGVjb2RlckFW
Rk1hbmFnZXIuY3BwCkBAIC01MCw3ICs1MCw3IEBAIFJlZlB0cjxSZW1vdGVJbWFnZURlY29kZXJB
VkY+IFJlbW90ZUltYWdlRGVjb2RlckFWRk1hbmFnZXI6OmNyZWF0ZUltYWdlRGVjb2RlcihTCiAg
ICAgICAgIHJldHVybiBudWxscHRyOwogCiAgICAgYXV0byByZW1vdGVJbWFnZURlY29kZXIgPSBS
ZW1vdGVJbWFnZURlY29kZXJBVkY6OmNyZWF0ZSgqdGhpcywgKmltYWdlRGVjb2RlcklkZW50aWZp
ZXIsIGRhdGEsIG1pbWVUeXBlKTsKLSAgICBtX3JlbW90ZUltYWdlRGVjb2RlcnMuYWRkKCppbWFn
ZURlY29kZXJJZGVudGlmaWVyLCBtYWtlV2Vha1B0cihyZW1vdGVJbWFnZURlY29kZXIuZ2V0KCkp
KTsKKyAgICBtX3JlbW90ZUltYWdlRGVjb2RlcnMuYWRkKCppbWFnZURlY29kZXJJZGVudGlmaWVy
LCByZW1vdGVJbWFnZURlY29kZXIpOwogCiAgICAgcmV0dXJuIHJlbW90ZUltYWdlRGVjb2RlcjsK
IH0KQEAgLTkwLDcgKzkwLDcgQEAgY29uc3QgY2hhciogIFJlbW90ZUltYWdlRGVjb2RlckFWRk1h
bmFnZXI6OnN1cHBsZW1lbnROYW1lKCkKIEdQVVByb2Nlc3NDb25uZWN0aW9uJiBSZW1vdGVJbWFn
ZURlY29kZXJBVkZNYW5hZ2VyOjplbnN1cmVHUFVQcm9jZXNzQ29ubmVjdGlvbigpCiB7CiAgICAg
aWYgKCFtX2dwdVByb2Nlc3NDb25uZWN0aW9uKSB7Ci0gICAgICAgIG1fZ3B1UHJvY2Vzc0Nvbm5l
Y3Rpb24gPSBtYWtlV2Vha1B0cihtX3Byb2Nlc3MuZW5zdXJlR1BVUHJvY2Vzc0Nvbm5lY3Rpb24o
KSk7CisgICAgICAgIG1fZ3B1UHJvY2Vzc0Nvbm5lY3Rpb24gPSBtX3Byb2Nlc3MuZW5zdXJlR1BV
UHJvY2Vzc0Nvbm5lY3Rpb24oKTsKICAgICAgICAgbV9ncHVQcm9jZXNzQ29ubmVjdGlvbi0+YWRk
Q2xpZW50KCp0aGlzKTsKICAgICAgICAgbV9ncHVQcm9jZXNzQ29ubmVjdGlvbi0+bWVzc2FnZVJl
Y2VpdmVyTWFwKCkuYWRkTWVzc2FnZVJlY2VpdmVyKE1lc3NhZ2VzOjpSZW1vdGVJbWFnZURlY29k
ZXJBVkZNYW5hZ2VyOjptZXNzYWdlUmVjZWl2ZXJOYW1lKCksICp0aGlzKTsKICAgICB9CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZUxlZ2FjeUNE
TUZhY3RvcnkuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVM
ZWdhY3lDRE1GYWN0b3J5LmNwcAppbmRleCA2YWY3MDBiNWNhZDJlMmUyNWM0NGQ2Mjc2ZGU4MzM1
MGE0YThhMDU3Li40YWVkYjI3YTk0ZmEwYjRiMzBhZjRhNDQzNDFiMTgzZTI2ZTA2NjBlIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZUxlZ2FjeUNE
TUZhY3RvcnkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVt
b3RlTGVnYWN5Q0RNRmFjdG9yeS5jcHAKQEAgLTExNiw4ICsxMTYsOCBAQCBzdGQ6OnVuaXF1ZV9w
dHI8Q0RNUHJpdmF0ZUludGVyZmFjZT4gUmVtb3RlTGVnYWN5Q0RNRmFjdG9yeTo6Y3JlYXRlQ0RN
KFdlYkNvcmU6OgogICAgIGdwdVByb2Nlc3NDb25uZWN0aW9uKCkuY29ubmVjdGlvbigpLnNlbmRT
eW5jKE1lc3NhZ2VzOjpSZW1vdGVMZWdhY3lDRE1GYWN0b3J5UHJveHk6OkNyZWF0ZUNETShjZG0t
PmtleVN5c3RlbSgpLCBXVEZNb3ZlKHBsYXllcklkKSksIE1lc3NhZ2VzOjpSZW1vdGVMZWdhY3lD
RE1GYWN0b3J5UHJveHk6OkNyZWF0ZUNETTo6UmVwbHkoaWRlbnRpZmllciksIHsgfSk7CiAgICAg
aWYgKCFpZGVudGlmaWVyKQogICAgICAgICByZXR1cm4gbnVsbHB0cjsKLSAgICBhdXRvIHJlbW90
ZUNETSA9IFJlbW90ZUxlZ2FjeUNETTo6Y3JlYXRlKG1ha2VXZWFrUHRyKHRoaXMpLCBpZGVudGlm
aWVyKTsKLSAgICBtX2NkbXMuc2V0KGlkZW50aWZpZXIsIG1ha2VXZWFrUHRyKHJlbW90ZUNETS5n
ZXQoKSkpOworICAgIGF1dG8gcmVtb3RlQ0RNID0gUmVtb3RlTGVnYWN5Q0RNOjpjcmVhdGUoKnRo
aXMsIGlkZW50aWZpZXIpOworICAgIG1fY2Rtcy5zZXQoaWRlbnRpZmllciwgcmVtb3RlQ0RNLmdl
dCgpKTsKICAgICByZXR1cm4gcmVtb3RlQ0RNOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZU1lZGlhUGxheWVyTWFuYWdlci5jcHAgYi9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZU1lZGlhUGxheWVyTWFuYWdl
ci5jcHAKaW5kZXggOGU5ZWMzYTUwOWVhMjQwOWE0MjQxMWI3OGJkOWIzZmZkYjczZTE4Ny4uNThm
YzFlNGVlMjU1ZWQ1ODMwYzk5NmRmZTY4YmYyYWJkMzUzZWFmOCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVNZWRpYVBsYXllck1hbmFnZXIuY3Bw
CisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlTWVkaWFQbGF5
ZXJNYW5hZ2VyLmNwcApAQCAtMTcwLDcgKzE3MCw3IEBAIHN0ZDo6dW5pcXVlX3B0cjxNZWRpYVBs
YXllclByaXZhdGVJbnRlcmZhY2U+IFJlbW90ZU1lZGlhUGxheWVyTWFuYWdlcjo6Y3JlYXRlUmVt
CiAgICAgZ3B1UHJvY2Vzc0Nvbm5lY3Rpb24oKS5jb25uZWN0aW9uKCkuc2VuZChNZXNzYWdlczo6
UmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyUHJveHk6OkNyZWF0ZU1lZGlhUGxheWVyKGlkZW50aWZp
ZXIsIHJlbW90ZUVuZ2luZUlkZW50aWZpZXIsIHByb3h5Q29uZmlndXJhdGlvbiksIDApOwogCiAg
ICAgYXV0byByZW1vdGVQbGF5ZXIgPSBNZWRpYVBsYXllclByaXZhdGVSZW1vdGU6OmNyZWF0ZShw
bGF5ZXIsIHJlbW90ZUVuZ2luZUlkZW50aWZpZXIsIGlkZW50aWZpZXIsICp0aGlzKTsKLSAgICBt
X3BsYXllcnMuYWRkKGlkZW50aWZpZXIsIG1ha2VXZWFrUHRyKCpyZW1vdGVQbGF5ZXIpKTsKKyAg
ICBtX3BsYXllcnMuYWRkKGlkZW50aWZpZXIsICpyZW1vdGVQbGF5ZXIpOwogCiAgICAgcmV0dXJu
IHJlbW90ZVBsYXllcjsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9H
UFUvbWVkaWEvUmVtb3RlUmVtb3RlQ29tbWFuZExpc3RlbmVyLmNwcCBiL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlUmVtb3RlQ29tbWFuZExpc3RlbmVyLmNwcAppbmRl
eCA2NDk0YjI5OTg3ZjY2MWUwM2ZlYjJmMTAyZDhlYmFhNjc0OTg3ODgwLi43NzEwYTNhNDQxMDAx
YWZjNmRmZDBjZGQyNWNhM2I4ZWVmN2E4ZmFlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZVJlbW90ZUNvbW1hbmRMaXN0ZW5lci5jcHAKKysrIGIv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVSZW1vdGVDb21tYW5kTGlz
dGVuZXIuY3BwCkBAIC02Miw3ICs2Miw3IEBAIFJlbW90ZVJlbW90ZUNvbW1hbmRMaXN0ZW5lcjo6
flJlbW90ZVJlbW90ZUNvbW1hbmRMaXN0ZW5lcigpCiBHUFVQcm9jZXNzQ29ubmVjdGlvbiYgUmVt
b3RlUmVtb3RlQ29tbWFuZExpc3RlbmVyOjplbnN1cmVHUFVQcm9jZXNzQ29ubmVjdGlvbigpCiB7
CiAgICAgaWYgKCFtX2dwdVByb2Nlc3NDb25uZWN0aW9uKSB7Ci0gICAgICAgIG1fZ3B1UHJvY2Vz
c0Nvbm5lY3Rpb24gPSBtYWtlV2Vha1B0cihtX3Byb2Nlc3MuZW5zdXJlR1BVUHJvY2Vzc0Nvbm5l
Y3Rpb24oKSk7CisgICAgICAgIG1fZ3B1UHJvY2Vzc0Nvbm5lY3Rpb24gPSBtX3Byb2Nlc3MuZW5z
dXJlR1BVUHJvY2Vzc0Nvbm5lY3Rpb24oKTsKICAgICAgICAgbV9ncHVQcm9jZXNzQ29ubmVjdGlv
bi0+YWRkQ2xpZW50KCp0aGlzKTsKICAgICAgICAgbV9ncHVQcm9jZXNzQ29ubmVjdGlvbi0+bWVz
c2FnZVJlY2VpdmVyTWFwKCkuYWRkTWVzc2FnZVJlY2VpdmVyKE1lc3NhZ2VzOjpSZW1vdGVSZW1v
dGVDb21tYW5kTGlzdGVuZXI6Om1lc3NhZ2VSZWNlaXZlck5hbWUoKSwgbV9pZGVudGlmaWVyLnRv
VUludDY0KCksICp0aGlzKTsKICAgICAgICAgbV9ncHVQcm9jZXNzQ29ubmVjdGlvbi0+Y29ubmVj
dGlvbigpLnNlbmQoTWVzc2FnZXM6OkdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OkNyZWF0ZVJl
bW90ZUNvbW1hbmRMaXN0ZW5lcihtX2lkZW50aWZpZXIpLCB7IH0pOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9Tb3VyY2VCdWZmZXJQcml2YXRlUmVtb3Rl
LmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvU291cmNlQnVmZmVyUHJp
dmF0ZVJlbW90ZS5jcHAKaW5kZXggYWI1N2NlYjkwNTA5MzkzOTJmNGVhMGFhZThjODFlMjBhNDcy
MzkwNC4uOTY2ZmM5M2I3N2FmYWEzZTYyMDhkN2FiYTVhZWQyYzdhOTRjNzRiMiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9Tb3VyY2VCdWZmZXJQcml2YXRl
UmVtb3RlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1NvdXJj
ZUJ1ZmZlclByaXZhdGVSZW1vdGUuY3BwCkBAIC01NCwxMCArNTQsMTAgQEAgUmVmPFNvdXJjZUJ1
ZmZlclByaXZhdGVSZW1vdGU+IFNvdXJjZUJ1ZmZlclByaXZhdGVSZW1vdGU6OmNyZWF0ZShHUFVQ
cm9jZXNzQ29ubmUKIH0KIAogU291cmNlQnVmZmVyUHJpdmF0ZVJlbW90ZTo6U291cmNlQnVmZmVy
UHJpdmF0ZVJlbW90ZShHUFVQcm9jZXNzQ29ubmVjdGlvbiYgZ3B1UHJvY2Vzc0Nvbm5lY3Rpb24s
IFJlbW90ZVNvdXJjZUJ1ZmZlcklkZW50aWZpZXIgcmVtb3RlU291cmNlQnVmZmVySWRlbnRpZmll
ciwgY29uc3QgTWVkaWFTb3VyY2VQcml2YXRlUmVtb3RlJiBtZWRpYVNvdXJjZVByaXZhdGUsIGNv
bnN0IE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZSYgbWVkaWFQbGF5ZXJQcml2YXRlKQotICAgIDog
bV9ncHVQcm9jZXNzQ29ubmVjdGlvbihtYWtlV2Vha1B0cihncHVQcm9jZXNzQ29ubmVjdGlvbikp
CisgICAgOiBtX2dwdVByb2Nlc3NDb25uZWN0aW9uKGdwdVByb2Nlc3NDb25uZWN0aW9uKQogICAg
ICwgbV9yZW1vdGVTb3VyY2VCdWZmZXJJZGVudGlmaWVyKHJlbW90ZVNvdXJjZUJ1ZmZlcklkZW50
aWZpZXIpCi0gICAgLCBtX21lZGlhU291cmNlUHJpdmF0ZShtYWtlV2Vha1B0cihtZWRpYVNvdXJj
ZVByaXZhdGUpKQotICAgICwgbV9tZWRpYVBsYXllclByaXZhdGUobWFrZVdlYWtQdHIobWVkaWFQ
bGF5ZXJQcml2YXRlKSkKKyAgICAsIG1fbWVkaWFTb3VyY2VQcml2YXRlKG1lZGlhU291cmNlUHJp
dmF0ZSkKKyAgICAsIG1fbWVkaWFQbGF5ZXJQcml2YXRlKG1lZGlhUGxheWVyUHJpdmF0ZSkKICNp
ZiAhUkVMRUFTRV9MT0dfRElTQUJMRUQKICAgICAsIG1fbG9nZ2VyKG1fbWVkaWFTb3VyY2VQcml2
YXRlLT5sb2dnZXIoKSkKICAgICAsIG1fbG9nSWRlbnRpZmllcihtX21lZGlhU291cmNlUHJpdmF0
ZS0+bmV4dFNvdXJjZUJ1ZmZlckxvZ0lkZW50aWZpZXIoKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvVGV4dFRyYWNrUHJpdmF0ZVJlbW90ZS5jcHAgYi9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1RleHRUcmFja1ByaXZhdGVSZW1vdGUu
Y3BwCmluZGV4IGY3ZDcyM2M2M2JmYzYyYWM1N2FhYTAzNWFmMmVjNThkZGYxMjRmMzAuLjcwY2Rj
YWJhMDlkMWFjNDBkNzIzODI4MWEzNDZmZTJlZGFjYmRlM2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvVGV4dFRyYWNrUHJpdmF0ZVJlbW90ZS5jcHAKKysr
IGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9UZXh0VHJhY2tQcml2YXRlUmVt
b3RlLmNwcApAQCAtMzksNyArMzksNyBAQCB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIAogVGV4
dFRyYWNrUHJpdmF0ZVJlbW90ZTo6VGV4dFRyYWNrUHJpdmF0ZVJlbW90ZShHUFVQcm9jZXNzQ29u
bmVjdGlvbiYgZ3B1UHJvY2Vzc0Nvbm5lY3Rpb24sIE1lZGlhUGxheWVySWRlbnRpZmllciBwbGF5
ZXJJZGVudGlmaWVyLCBUcmFja1ByaXZhdGVSZW1vdGVJZGVudGlmaWVyIGlkZW5kaWZpZXIsIFRl
eHRUcmFja1ByaXZhdGVSZW1vdGVDb25maWd1cmF0aW9uJiYgY29uZmlndXJhdGlvbikKICAgICA6
IFdlYkNvcmU6OkluYmFuZFRleHRUcmFja1ByaXZhdGUoY29uZmlndXJhdGlvbi5jdWVGb3JtYXQp
Ci0gICAgLCBtX2dwdVByb2Nlc3NDb25uZWN0aW9uKG1ha2VXZWFrUHRyKGdwdVByb2Nlc3NDb25u
ZWN0aW9uKSkKKyAgICAsIG1fZ3B1UHJvY2Vzc0Nvbm5lY3Rpb24oZ3B1UHJvY2Vzc0Nvbm5lY3Rp
b24pCiAgICAgLCBtX3BsYXllcklkZW50aWZpZXIocGxheWVySWRlbnRpZmllcikKICAgICAsIG1f
aWRlbnRpZmllcihpZGVuZGlmaWVyKQogewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL0dQVS9tZWRpYS9WaWRlb1RyYWNrUHJpdmF0ZVJlbW90ZS5jcHAgYi9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1ZpZGVvVHJhY2tQcml2YXRlUmVtb3RlLmNwcAppbmRl
eCAxNWIyN2YxOTg3OGVkYzk0NTE3ZWYwYmI2MmMzYjRkOTRhZGI2ZTJkLi5hNmY5OGQ4NTA0NWY5
NmYyMDllMGU4NWQ0YTVlZjUwODc3MzMxMzcxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvR1BVL21lZGlhL1ZpZGVvVHJhY2tQcml2YXRlUmVtb3RlLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1ZpZGVvVHJhY2tQcml2YXRlUmVtb3RlLmNw
cApAQCAtMzYsNyArMzYsNyBAQAogbmFtZXNwYWNlIFdlYktpdCB7CiAKIFZpZGVvVHJhY2tQcml2
YXRlUmVtb3RlOjpWaWRlb1RyYWNrUHJpdmF0ZVJlbW90ZShHUFVQcm9jZXNzQ29ubmVjdGlvbiYg
Z3B1UHJvY2Vzc0Nvbm5lY3Rpb24sIFdlYkNvcmU6Ok1lZGlhUGxheWVySWRlbnRpZmllciBwbGF5
ZXJJZGVudGlmaWVyLCBUcmFja1ByaXZhdGVSZW1vdGVJZGVudGlmaWVyIGlkZW5kaWZpZXIsIFRy
YWNrUHJpdmF0ZVJlbW90ZUNvbmZpZ3VyYXRpb24mJiBjb25maWd1cmF0aW9uKQotICAgIDogbV9n
cHVQcm9jZXNzQ29ubmVjdGlvbihtYWtlV2Vha1B0cihncHVQcm9jZXNzQ29ubmVjdGlvbikpCisg
ICAgOiBtX2dwdVByb2Nlc3NDb25uZWN0aW9uKGdwdVByb2Nlc3NDb25uZWN0aW9uKQogICAgICwg
bV9wbGF5ZXJJZGVudGlmaWVyKHBsYXllcklkZW50aWZpZXIpCiAgICAgLCBtX2lkZW5kaWZpZXIo
aWRlbmRpZmllcikKIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUv
bWVkaWEvY29jb2EvVmlkZW9MYXllclJlbW90ZUNvY29hLm1tIGIvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL0dQVS9tZWRpYS9jb2NvYS9WaWRlb0xheWVyUmVtb3RlQ29jb2EubW0KaW5kZXggM2Fl
NjVlMTFlMGJkNGY1NTM2MGFmZGI4MzY4M2RiMDBhYWUxOWM0Yy4uNGMwMTZkMDk0ZTA3NGY2NTY0
YzBkMDNkOGYzMmM3MTY2NDg4NjJkYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL0dQVS9tZWRpYS9jb2NvYS9WaWRlb0xheWVyUmVtb3RlQ29jb2EubW0KKysrIGIvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9jb2NvYS9WaWRlb0xheWVyUmVtb3RlQ29jb2Eu
bW0KQEAgLTc4LDcgKzc4LDcgQEAgLSAoV2ViS2l0OjpNZWRpYVBsYXllclByaXZhdGVSZW1vdGUq
KW1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZQogCiAtICh2b2lkKXNldE1lZGlhUGxheWVyUHJpdmF0
ZVJlbW90ZTooV2ViS2l0OjpNZWRpYVBsYXllclByaXZhdGVSZW1vdGUqKW1lZGlhUGxheWVyUHJp
dmF0ZVJlbW90ZQogewotICAgIF9tZWRpYVBsYXllclByaXZhdGVSZW1vdGUgPSBtYWtlV2Vha1B0
cigqbWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlKTsKKyAgICBfbWVkaWFQbGF5ZXJQcml2YXRlUmVt
b3RlID0gKm1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTsKIH0KIAogLSAoV2ViQ29yZTo6TWVkaWFQ
bGF5ZXJFbnVtczo6VmlkZW9HcmF2aXR5KXZpZGVvR3Jhdml0eQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9pb3MvUmVtb3RlTWVkaWFTZXNzaW9uSGVscGVy
LmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvaW9zL1JlbW90ZU1lZGlh
U2Vzc2lvbkhlbHBlci5jcHAKaW5kZXggNDg2MmFmNzY0NTY3ZDZiZjZhZmY2OGQyODc4ZjhmOTRl
MTk1OGYyNi4uOTE2NDA2YmJlMjQyN2M3ZGVhMDc0Y2YxZmViNWQyMTBmYTlkZDFlYSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9pb3MvUmVtb3RlTWVkaWFT
ZXNzaW9uSGVscGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlh
L2lvcy9SZW1vdGVNZWRpYVNlc3Npb25IZWxwZXIuY3BwCkBAIC00OSw3ICs0OSw3IEBAIFJlbW90
ZU1lZGlhU2Vzc2lvbkhlbHBlcjo6UmVtb3RlTWVkaWFTZXNzaW9uSGVscGVyKFdlYlByb2Nlc3Mm
IHByb2Nlc3MpCiBJUEM6OkNvbm5lY3Rpb24mIFJlbW90ZU1lZGlhU2Vzc2lvbkhlbHBlcjo6ZW5z
dXJlQ29ubmVjdGlvbigpCiB7CiAgICAgaWYgKCFtX2dwdVByb2Nlc3NDb25uZWN0aW9uKSB7Ci0g
ICAgICAgIG1fZ3B1UHJvY2Vzc0Nvbm5lY3Rpb24gPSBtYWtlV2Vha1B0cihtX3Byb2Nlc3MuZW5z
dXJlR1BVUHJvY2Vzc0Nvbm5lY3Rpb24oKSk7CisgICAgICAgIG1fZ3B1UHJvY2Vzc0Nvbm5lY3Rp
b24gPSBtX3Byb2Nlc3MuZW5zdXJlR1BVUHJvY2Vzc0Nvbm5lY3Rpb24oKTsKICAgICAgICAgbV9n
cHVQcm9jZXNzQ29ubmVjdGlvbi0+YWRkQ2xpZW50KCp0aGlzKTsKICAgICAgICAgbV9ncHVQcm9j
ZXNzQ29ubmVjdGlvbi0+bWVzc2FnZVJlY2VpdmVyTWFwKCkuYWRkTWVzc2FnZVJlY2VpdmVyKE1l
c3NhZ2VzOjpSZW1vdGVNZWRpYVNlc3Npb25IZWxwZXI6Om1lc3NhZ2VSZWNlaXZlck5hbWUoKSwg
KnRoaXMpOwogICAgICAgICBtX2dwdVByb2Nlc3NDb25uZWN0aW9uLT5jb25uZWN0aW9uKCkuc2Vu
ZChNZXNzYWdlczo6R1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6RW5zdXJlTWVkaWFTZXNzaW9u
SGVscGVyKCksIHsgfSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BV
L3dlYnJ0Yy9BdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlckludGVybmFsVW5pdE1hbmFnZXIu
Y3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS93ZWJydGMvQXVkaW9NZWRpYVN0cmVh
bVRyYWNrUmVuZGVyZXJJbnRlcm5hbFVuaXRNYW5hZ2VyLmNwcAppbmRleCBlZGY4NjdlODE1M2Uz
MGQ2NzA5YTU2NWI2NjRjN2VjZjE3Y2JjMjZmLi42ODUxZDFhOTQ0OTcwNjI5MTU1ZjZmMmM5NmE0
N2ExMjk4NzI1MGY1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL3dl
YnJ0Yy9BdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlckludGVybmFsVW5pdE1hbmFnZXIuY3Bw
CisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvd2VicnRjL0F1ZGlvTWVkaWFTdHJl
YW1UcmFja1JlbmRlcmVySW50ZXJuYWxVbml0TWFuYWdlci5jcHAKQEAgLTg5LDcgKzg5LDcgQEAg
cHJpdmF0ZToKIAogdm9pZCBBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlckludGVybmFsVW5p
dE1hbmFnZXI6OmFkZChQcm94eSYgcHJveHkpCiB7Ci0gICAgbV9wcm94aWVzLmFkZChwcm94eS5p
ZGVudGlmaWVyKCksIG1ha2VXZWFrUHRyKHByb3h5KSk7CisgICAgbV9wcm94aWVzLmFkZChwcm94
eS5pZGVudGlmaWVyKCksIHByb3h5KTsKIH0KIAogdm9pZCBBdWRpb01lZGlhU3RyZWFtVHJhY2tS
ZW5kZXJlckludGVybmFsVW5pdE1hbmFnZXI6OnJlbW92ZShQcm94eSYgcHJveHkpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL3dlYnJ0Yy9TYW1wbGVCdWZmZXJEaXNw
bGF5TGF5ZXIuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS93ZWJydGMvU2FtcGxl
QnVmZmVyRGlzcGxheUxheWVyLmNwcAppbmRleCBmZGJhMGRiYzdlNjIwMmRmMGI3NWUxNTllOGZk
Y2UyZjkyNGQ2YTcyLi5iZTkxOWNkZDFmMDA4MWY1MzY5NTQxYTIxNzMwM2YyNGU2MDIyYTBjIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL3dlYnJ0Yy9TYW1wbGVCdWZm
ZXJEaXNwbGF5TGF5ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvd2Vi
cnRjL1NhbXBsZUJ1ZmZlckRpc3BsYXlMYXllci5jcHAKQEAgLTQ5LDcgKzQ5LDcgQEAgc3RkOjp1
bmlxdWVfcHRyPFNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllcj4gU2FtcGxlQnVmZmVyRGlzcGxheUxh
eWVyOjpjcmVhdGUoU2FtcGwKIAogU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyOjpTYW1wbGVCdWZm
ZXJEaXNwbGF5TGF5ZXIoU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyTWFuYWdlciYgbWFuYWdlciwg
V2ViQ29yZTo6U2FtcGxlQnVmZmVyRGlzcGxheUxheWVyOjpDbGllbnQmIGNsaWVudCkKICAgICA6
IFdlYkNvcmU6OlNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllcihjbGllbnQpCi0gICAgLCBtX21hbmFn
ZXIobWFrZVdlYWtQdHIobWFuYWdlcikpCisgICAgLCBtX21hbmFnZXIobWFuYWdlcikKICAgICAs
IG1fY29ubmVjdGlvbihXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5lbnN1cmVHUFVQcm9jZXNzQ29u
bmVjdGlvbigpLmNvbm5lY3Rpb24oKSkKICAgICAsIG1faWRlbnRpZmllcihTYW1wbGVCdWZmZXJE
aXNwbGF5TGF5ZXJJZGVudGlmaWVyOjpnZW5lcmF0ZSgpKQogewpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL0dQVS93ZWJydGMvU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyTWFu
YWdlci5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL3dlYnJ0Yy9TYW1wbGVCdWZm
ZXJEaXNwbGF5TGF5ZXJNYW5hZ2VyLmNwcAppbmRleCBjNDA0MjcyYTc1ZjM5MmEwZmRhOTRmMGMy
YjYyM2NkNGFmZjI1OWViLi5hYTFlY2U3OGEyNDY2N2FmOWY2MDllMzhhMjFhMjRkMmY4NzY2MjEx
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL3dlYnJ0Yy9TYW1wbGVC
dWZmZXJEaXNwbGF5TGF5ZXJNYW5hZ2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvR1BVL3dlYnJ0Yy9TYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXJNYW5hZ2VyLmNwcApAQCAtNDYs
MTQgKzQ2LDE0IEBAIHN0ZDo6dW5pcXVlX3B0cjxXZWJDb3JlOjpTYW1wbGVCdWZmZXJEaXNwbGF5
TGF5ZXI+IFNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllck1hbmFnCiAgICAgaWYgKCFsYXllcikKICAg
ICAgICAgcmV0dXJuIHsgfTsKIAotICAgIG1fbGF5ZXJzLmFkZChsYXllci0+aWRlbnRpZmllcigp
LCBtYWtlV2Vha1B0cigqbGF5ZXIpKTsKKyAgICBtX2xheWVycy5hZGQobGF5ZXItPmlkZW50aWZp
ZXIoKSwgKmxheWVyKTsKICAgICByZXR1cm4gbGF5ZXI7CiB9CiAKIHZvaWQgU2FtcGxlQnVmZmVy
RGlzcGxheUxheWVyTWFuYWdlcjo6YWRkTGF5ZXIoU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyJiBs
YXllcikKIHsKICAgICBBU1NFUlQoIW1fbGF5ZXJzLmNvbnRhaW5zKGxheWVyLmlkZW50aWZpZXIo
KSkpOwotICAgIG1fbGF5ZXJzLmFkZChsYXllci5pZGVudGlmaWVyKCksIG1ha2VXZWFrUHRyKGxh
eWVyKSk7CisgICAgbV9sYXllcnMuYWRkKGxheWVyLmlkZW50aWZpZXIoKSwgbGF5ZXIpOwogfQog
CiB2b2lkIFNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllck1hbmFnZXI6OnJlbW92ZUxheWVyKFNhbXBs
ZUJ1ZmZlckRpc3BsYXlMYXllciYgbGF5ZXIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2dsaWIvRE9NL0RPTU9iamVjdENhY2hlLmNwcCBi
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ2xpYi9ET00vRE9N
T2JqZWN0Q2FjaGUuY3BwCmluZGV4IDQ5NDBiMTBiZWQ3ZDZkOTk2MWIyZDBjNDEwNGRiZGFlZGQ5
MTdlZmIuLmI2Mzk2ZTI3ZTI0MmVhMDk3NmIyMzNkNjBiZGE1MDZjZDdhOGFhZDQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ2xpYi9ET00v
RE9NT2JqZWN0Q2FjaGUuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3Rl
ZEJ1bmRsZS9BUEkvZ2xpYi9ET00vRE9NT2JqZWN0Q2FjaGUuY3BwCkBAIC0xMTEsNyArMTExLDcg
QEAgcHJpdmF0ZToKICAgICAgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CiAgICAgcHVibGlj
OgogICAgICAgICBET01XaW5kb3dPYnNlcnZlcihXZWJDb3JlOjpET01XaW5kb3cmIHdpbmRvdywg
RE9NT2JqZWN0Q2FjaGVGcmFtZU9ic2VydmVyJiBmcmFtZU9ic2VydmVyKQotICAgICAgICAgICAg
OiBtX3dpbmRvdyhtYWtlV2Vha1B0cih3aW5kb3cpKQorICAgICAgICAgICAgOiBtX3dpbmRvdyh3
aW5kb3cpCiAgICAgICAgICAgICAsIG1fZnJhbWVPYnNlcnZlcihmcmFtZU9ic2VydmVyKQogICAg
ICAgICB7CiAgICAgICAgICAgICB3aW5kb3cucmVnaXN0ZXJPYnNlcnZlcigqdGhpcyk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5zcGVjdG9yL1dlYkluc3BlY3RvclVJ
RXh0ZW5zaW9uQ29udHJvbGxlci5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5zcGVj
dG9yL1dlYkluc3BlY3RvclVJRXh0ZW5zaW9uQ29udHJvbGxlci5jcHAKaW5kZXggZWUzOTI2MDgx
YjgzZDk2MTZhZTVlOWRjZTQyMDgxZTRkM2IwZWM2My4uYzYyNTk2ZTgwYzJlMmYwZDY4OGNmMDY2
MTM4OWY4NzM2YzM1MzIyNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0lu
c3BlY3Rvci9XZWJJbnNwZWN0b3JVSUV4dGVuc2lvbkNvbnRyb2xsZXIuY3BwCisrKyBiL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbnNwZWN0b3IvV2ViSW5zcGVjdG9yVUlFeHRlbnNpb25Db250
cm9sbGVyLmNwcApAQCAtNDQsNyArNDQsNyBAQAogbmFtZXNwYWNlIFdlYktpdCB7CiAKIFdlYklu
c3BlY3RvclVJRXh0ZW5zaW9uQ29udHJvbGxlcjo6V2ViSW5zcGVjdG9yVUlFeHRlbnNpb25Db250
cm9sbGVyKFdlYkNvcmU6Okluc3BlY3RvckZyb250ZW5kQ2xpZW50JiBpbnNwZWN0b3JGcm9udGVu
ZCkKLSAgICA6IG1fZnJvbnRlbmRDbGllbnQobWFrZVdlYWtQdHIoaW5zcGVjdG9yRnJvbnRlbmQp
KQorICAgIDogbV9mcm9udGVuZENsaWVudChpbnNwZWN0b3JGcm9udGVuZCkKIHsKICAgICBhdXRv
KiBwYWdlID0gaW5zcGVjdG9yRnJvbnRlbmQuZnJvbnRlbmRQYWdlKCk7CiAgICAgQVNTRVJUKHBh
Z2UpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05ldHdvcmsvV2ViU29j
a2V0Q2hhbm5lbC5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0d29yay9XZWJTb2Nr
ZXRDaGFubmVsLmNwcAppbmRleCBjZjE0NWFhMWRiMzFhMzZjNDA2ZWQ1MDA5NGFjYjU1Yjk3N2Vk
ODUxLi45MTg1NmE1NzcyOTY3MjJkMjRhYmU2OTc4M2EwMTZhYThmYjczYWQwIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0d29yay9XZWJTb2NrZXRDaGFubmVsLmNwcAor
KysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0d29yay9XZWJTb2NrZXRDaGFubmVsLmNw
cApAQCAtNjksOCArNjksOCBAQCBOZXR3b3JrU2VuZFF1ZXVlIFdlYlNvY2tldENoYW5uZWw6OmNy
ZWF0ZU1lc3NhZ2VRdWV1ZShEb2N1bWVudCYgZG9jdW1lbnQsIFdlYlNvYwogfQogCiBXZWJTb2Nr
ZXRDaGFubmVsOjpXZWJTb2NrZXRDaGFubmVsKFdlYlBhZ2VQcm94eUlkZW50aWZpZXIgd2ViUGFn
ZVByb3h5SUQsIERvY3VtZW50JiBkb2N1bWVudCwgV2ViU29ja2V0Q2hhbm5lbENsaWVudCYgY2xp
ZW50KQotICAgIDogbV9kb2N1bWVudChtYWtlV2Vha1B0cihkb2N1bWVudCkpCi0gICAgLCBtX2Ns
aWVudChtYWtlV2Vha1B0cihjbGllbnQpKQorICAgIDogbV9kb2N1bWVudChkb2N1bWVudCkKKyAg
ICAsIG1fY2xpZW50KGNsaWVudCkKICAgICAsIG1fbWVzc2FnZVF1ZXVlKGNyZWF0ZU1lc3NhZ2VR
dWV1ZShkb2N1bWVudCwgKnRoaXMpKQogICAgICwgbV9pbnNwZWN0b3IoZG9jdW1lbnQpCiAgICAg
LCBtX3dlYlBhZ2VQcm94eUlEKHdlYlBhZ2VQcm94eUlEKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL05ldHdvcmsvV2ViU29ja2V0Q2hhbm5lbE1hbmFnZXIuY3BwIGIvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL05ldHdvcmsvV2ViU29ja2V0Q2hhbm5lbE1hbmFnZXIuY3Bw
CmluZGV4IGI5ODZhNzk5NmMzMmNlNTQ1MDJmYWJmNWM5ZmRiZTNmZjBhNzc4MGUuLjg5OWU2NThh
YzY4MTYzZjU4YTUxY2JhZmUxZTExNzExMWRiNmVmM2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9OZXR3b3JrL1dlYlNvY2tldENoYW5uZWxNYW5hZ2VyLmNwcAorKysgYi9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0d29yay9XZWJTb2NrZXRDaGFubmVsTWFuYWdlci5j
cHAKQEAgLTMzLDcgKzMzLDcgQEAgbmFtZXNwYWNlIFdlYktpdCB7CiB2b2lkIFdlYlNvY2tldENo
YW5uZWxNYW5hZ2VyOjphZGRDaGFubmVsKFdlYlNvY2tldENoYW5uZWwmIGNoYW5uZWwpCiB7CiAg
ICAgQVNTRVJUKCFtX2NoYW5uZWxzLmNvbnRhaW5zKGNoYW5uZWwuaWRlbnRpZmllcigpKSk7Ci0g
ICAgbV9jaGFubmVscy5hZGQoY2hhbm5lbC5pZGVudGlmaWVyKCksIG1ha2VXZWFrUHRyKGNoYW5u
ZWwpKTsKKyAgICBtX2NoYW5uZWxzLmFkZChjaGFubmVsLmlkZW50aWZpZXIoKSwgY2hhbm5lbCk7
CiB9CiAKIHZvaWQgV2ViU29ja2V0Q2hhbm5lbE1hbmFnZXI6Om5ldHdvcmtQcm9jZXNzQ3Jhc2hl
ZCgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0d29yay93ZWJydGMv
UlRDRGF0YUNoYW5uZWxSZW1vdGVNYW5hZ2VyLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9OZXR3b3JrL3dlYnJ0Yy9SVENEYXRhQ2hhbm5lbFJlbW90ZU1hbmFnZXIuY3BwCmluZGV4IDli
OTZmNGExM2RjMzRjMDUyYjNkOTQ2MjU2NDcxNTUzMGU5NjdkODMuLjZkMTE5ZTY4ODA0MmRiNmI4
MGYwNjQ3Y2MxMmRkMjMxMjZlZjI5NzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9OZXR3b3JrL3dlYnJ0Yy9SVENEYXRhQ2hhbm5lbFJlbW90ZU1hbmFnZXIuY3BwCisrKyBi
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9OZXR3b3JrL3dlYnJ0Yy9SVENEYXRhQ2hhbm5lbFJl
bW90ZU1hbmFnZXIuY3BwCkBAIC0xODUsNyArMTg1LDcgQEAgUlRDRGF0YUNoYW5uZWxSZW1vdGVN
YW5hZ2VyOjpSZW1vdGVIYW5kbGVyQ29ubmVjdGlvbjo6UmVtb3RlSGFuZGxlckNvbm5lY3Rpb24o
UmUKIAogdm9pZCBSVENEYXRhQ2hhbm5lbFJlbW90ZU1hbmFnZXI6OlJlbW90ZUhhbmRsZXJDb25u
ZWN0aW9uOjpjb25uZWN0VG9Tb3VyY2UoV2ViQ29yZTo6UlRDRGF0YUNoYW5uZWxSZW1vdGVIYW5k
bGVyJiBoYW5kbGVyLCBXZWJDb3JlOjpTY3JpcHRFeGVjdXRpb25Db250ZXh0SWRlbnRpZmllciBj
b250ZXh0SWRlbnRpZmllciwgV2ViQ29yZTo6UlRDRGF0YUNoYW5uZWxJZGVudGlmaWVyIGxvY2Fs
SWRlbnRpZmllciwgV2ViQ29yZTo6UlRDRGF0YUNoYW5uZWxJZGVudGlmaWVyIHJlbW90ZUlkZW50
aWZpZXIpCiB7Ci0gICAgbV9xdWV1ZS0+ZGlzcGF0Y2goW2hhbmRsZXIgPSBtYWtlV2Vha1B0ciho
YW5kbGVyKSwgY29udGV4dElkZW50aWZpZXIsIGxvY2FsSWRlbnRpZmllcl0oKSBtdXRhYmxlIHsK
KyAgICBtX3F1ZXVlLT5kaXNwYXRjaChbaGFuZGxlciA9IFdlYWtQdHIgeyBoYW5kbGVyIH0sIGNv
bnRleHRJZGVudGlmaWVyLCBsb2NhbElkZW50aWZpZXJdKCkgbXV0YWJsZSB7CiAgICAgICAgIFJU
Q0RhdGFDaGFubmVsUmVtb3RlTWFuYWdlcjo6c2hhcmVkTWFuYWdlcigpLm1faGFuZGxlcnMuYWRk
KGxvY2FsSWRlbnRpZmllci5jaGFubmVsSWRlbnRpZmllciwgUmVtb3RlSGFuZGxlciB7IFdURk1v
dmUoaGFuZGxlciksIGNvbnRleHRJZGVudGlmaWVyIH0pOwogICAgIH0pOwogICAgIG1fY29ubmVj
dGlvbi0+c2VuZFdpdGhBc3luY1JlcGx5KE1lc3NhZ2VzOjpOZXR3b3JrQ29ubmVjdGlvblRvV2Vi
UHJvY2Vzczo6Q29ubmVjdFRvUlRDRGF0YUNoYW5uZWxSZW1vdGVTb3VyY2UgeyBsb2NhbElkZW50
aWZpZXIsIHJlbW90ZUlkZW50aWZpZXIgfSwgW2xvY2FsSWRlbnRpZmllcl0oYXV0byYmIHJlc3Vs
dCkgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1BsdWdpbnMvUERGL1BE
RlBsdWdpbi5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1BsdWdpbnMvUERGL1BERlBsdWdp
bi5oCmluZGV4IDBlNTQwMjE2NjA5MDk0ZGZkZGJkNzBkYmY5MDZlNGE4YzAyMTM2ZjkuLjQyZGU0
NjE0MTk3NzhiN2M0NTBmY2ExZWIwMzdjMWNlOTdkMmQ2MzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9QbHVnaW5zL1BERi9QREZQbHVnaW4uaAorKysgYi9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvUGx1Z2lucy9QREYvUERGUGx1Z2luLmgKQEAgLTM1OSw3ICszNTksNyBA
QCBwcml2YXRlOgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHB1Ymxp
YyBXZWJDb3JlOjpOZXRzY2FwZVBsdWdJblN0cmVhbUxvYWRlckNsaWVudCB7CiAgICAgcHVibGlj
OgogICAgICAgICBQREZQbHVnaW5TdHJlYW1Mb2FkZXJDbGllbnQoUERGUGx1Z2luJiBwZGZQbHVn
aW4pCi0gICAgICAgICAgICA6IG1fcGRmUGx1Z2luKG1ha2VXZWFrUHRyKHBkZlBsdWdpbikpCisg
ICAgICAgICAgICA6IG1fcGRmUGx1Z2luKHBkZlBsdWdpbikKICAgICAgICAgewogICAgICAgICB9
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9QbHVnaW5zL1BERi9QREZQ
bHVnaW4ubW0gYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvUGx1Z2lucy9QREYvUERGUGx1Z2lu
Lm1tCmluZGV4IDViNjU0NDFlNmRmNWJjODVjNDQyM2FiOWNlZGVjYWZhNGQ2YmQxZmQuLjBlMWQw
N2FlM2QwYzgxNzRlYjZjM2RiYzkzODJhZDU0YjY3MzQzMDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9QbHVnaW5zL1BERi9QREZQbHVnaW4ubW0KKysrIGIvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL1BsdWdpbnMvUERGL1BERlBsdWdpbi5tbQpAQCAtMTgwLDcgKzE4MCw3
IEBAIC0gKGlkKWluaXRXaXRoUERGUGx1Z2luOihXZWJLaXQ6OlBERlBsdWdpbiAqKXBsdWdpbiBh
bmRFbGVtZW50OihXZWJDb3JlOjpIVE1MUGx1CiAgICAgICAgIHJldHVybiBuaWw7CiAKICAgICBf
cGRmUGx1Z2luID0gcGx1Z2luOwotICAgIF9wbHVnaW5FbGVtZW50ID0gbWFrZVdlYWtQdHIoZWxl
bWVudCk7CisgICAgX3BsdWdpbkVsZW1lbnQgPSBlbGVtZW50OwogCiAgICAgcmV0dXJuIHNlbGY7
CiB9CkBAIC02MzMsNyArNjMzLDcgQEAgUmVmPFBERlBsdWdpbj4gUERGUGx1Z2luOjpjcmVhdGUo
V2ViRnJhbWUmIGZyYW1lLCBIVE1MUGx1Z0luRWxlbWVudCogcGx1Z2luRWxlbWUKIAogaW5saW5l
IFBERlBsdWdpbjo6UERGUGx1Z2luKFdlYkZyYW1lJiBmcmFtZSwgSFRNTFBsdWdJbkVsZW1lbnQq
IHBsdWdpbkVsZW1lbnQpCiAgICAgOiBQbHVnaW4oUERGUGx1Z2luVHlwZSkKLSAgICAsIG1fZnJh
bWUobWFrZVdlYWtQdHIoZnJhbWUpKQorICAgICwgbV9mcmFtZShmcmFtZSkKICAgICAsIG1fY29u
dGFpbmVyTGF5ZXIoYWRvcHROUyhbW0NBTGF5ZXIgYWxsb2NdIGluaXRdKSkKICAgICAsIG1fY29u
dGVudExheWVyKGFkb3B0TlMoW1tDQUxheWVyIGFsbG9jXSBpbml0XSkpCiAgICAgLCBtX3Njcm9s
bENvcm5lckxheWVyKGFkb3B0TlMoW1tXS1BERlBsdWdpblNjcm9sbGJhckxheWVyIGFsbG9jXSBp
bml0V2l0aFBERlBsdWdpbjp0aGlzXSkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvUGx1Z2lucy9QbHVnaW4uY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1BsdWdp
bnMvUGx1Z2luLmNwcAppbmRleCBkMzYxMWY0MDU4Y2ViYTAxZGQ5ODYzZGMzOGVjZTQxZDlkMzVm
MmQwLi4xNDg4OTM5YWE2NDM2ZWJkOTFmMDU2YWQ5ZGIxNDA5YjJhNTU0YmY0IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvUGx1Z2lucy9QbHVnaW4uY3BwCisrKyBiL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9QbHVnaW5zL1BsdWdpbi5jcHAKQEAgLTkwLDcgKzkwLDcgQEAg
Ym9vbCBQbHVnaW46OmluaXRpYWxpemUoUGx1Z2luQ29udHJvbGxlciYgcGx1Z2luQ29udHJvbGxl
ciwgY29uc3QgUGFyYW1ldGVycyYgcGEKIHsKICAgICBBU1NFUlQoIW1fcGx1Z2luQ29udHJvbGxl
cik7CiAKLSAgICBtX3BsdWdpbkNvbnRyb2xsZXIgPSBtYWtlV2Vha1B0cihwbHVnaW5Db250cm9s
bGVyKTsKKyAgICBtX3BsdWdpbkNvbnRyb2xsZXIgPSBwbHVnaW5Db250cm9sbGVyOwogCiAgICAg
cmV0dXJuIGluaXRpYWxpemUocGFyYW1ldGVycyk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRGV2aWNlT3JpZW50YXRpb25VcGRhdGVQ
cm92aWRlci5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2Vi
RGV2aWNlT3JpZW50YXRpb25VcGRhdGVQcm92aWRlci5jcHAKaW5kZXggYTEzMDIyY2I4ZjZlZTY2
MzkzM2RkODRiNjdmOGY2ZjA0NDA4Y2VkNy4uZjlhZjlhYjkzZjdlMDEyODc3MzY1MGMxZDI0OTVh
ZGRlMzlmZDQzNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVT
dXBwb3J0L1dlYkRldmljZU9yaWVudGF0aW9uVXBkYXRlUHJvdmlkZXIuY3BwCisrKyBiL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJEZXZpY2VPcmllbnRhdGlvblVw
ZGF0ZVByb3ZpZGVyLmNwcApAQCAtMzgsNyArMzgsNyBAQAogbmFtZXNwYWNlIFdlYktpdCB7CiAK
IFdlYkRldmljZU9yaWVudGF0aW9uVXBkYXRlUHJvdmlkZXI6OldlYkRldmljZU9yaWVudGF0aW9u
VXBkYXRlUHJvdmlkZXIoV2ViUGFnZSYgcGFnZSkKLSAgICA6IG1fcGFnZShtYWtlV2Vha1B0cihw
YWdlKSkKKyAgICA6IG1fcGFnZShwYWdlKQogICAgICwgbV9wYWdlSWRlbnRpZmllcihwYWdlLmlk
ZW50aWZpZXIoKSkKIHsKICAgICBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5hZGRNZXNzYWdlUmVj
ZWl2ZXIoTWVzc2FnZXM6OldlYkRldmljZU9yaWVudGF0aW9uVXBkYXRlUHJvdmlkZXI6Om1lc3Nh
Z2VSZWNlaXZlck5hbWUoKSwgcGFnZS5pZGVudGlmaWVyKCksICp0aGlzKTsKQEAgLTg1LDcgKzg1
LDcgQEAgdm9pZCBXZWJEZXZpY2VPcmllbnRhdGlvblVwZGF0ZVByb3ZpZGVyOjpkZXZpY2VPcmll
bnRhdGlvbkNoYW5nZWQoZG91YmxlIGFscGhhLAogewogICAgIFZlY3RvcjxXZWFrUHRyPFdlYkNv
cmU6Ok1vdGlvbk1hbmFnZXJDbGllbnQ+PiBjbGllbnRzOwogICAgIGZvciAoYXV0byYgY2xpZW50
IDogbV9kZXZpY2VPcmllbnRhdGlvbkNsaWVudHMpCi0gICAgICAgIGNsaWVudHMuYXBwZW5kKG1h
a2VXZWFrUHRyKCZjbGllbnQpKTsKKyAgICAgICAgY2xpZW50cy5hcHBlbmQoY2xpZW50KTsKIAog
ICAgIGZvciAoYXV0byYgY2xpZW50IDogY2xpZW50cykgewogICAgICAgICBpZiAoY2xpZW50KQpA
QCAtOTcsNyArOTcsNyBAQCB2b2lkIFdlYkRldmljZU9yaWVudGF0aW9uVXBkYXRlUHJvdmlkZXI6
OmRldmljZU1vdGlvbkNoYW5nZWQoZG91YmxlIHhBY2NlbGVyYXRpbwogewogICAgIFZlY3RvcjxX
ZWFrUHRyPFdlYkNvcmU6Ok1vdGlvbk1hbmFnZXJDbGllbnQ+PiBjbGllbnRzOwogICAgIGZvciAo
YXV0byYgY2xpZW50IDogbV9kZXZpY2VNb3Rpb25DbGllbnRzKQotICAgICAgICBjbGllbnRzLmFw
cGVuZChtYWtlV2Vha1B0cigmY2xpZW50KSk7CisgICAgICAgIGNsaWVudHMuYXBwZW5kKGNsaWVu
dCk7CiAgICAgCiAgICAgZm9yIChhdXRvJiBjbGllbnQgOiBjbGllbnRzKSB7CiAgICAgICAgIGlm
IChjbGllbnQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1
cHBvcnQvV2ViUGVybWlzc2lvbkNvbnRyb2xsZXIuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlBlcm1pc3Npb25Db250cm9sbGVyLmNwcAppbmRleCAwMDg1
ZTQ5OGNlMGQ2NmE1ODJjZjY4MWU0NmQ4YWRiYzFkMjJmZTE2Li5kNjAxODIxZjBhODVjMDMyMTAw
M2ZlMGRjZWQ3OTc2ZDllMjBlZTVkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvV2ViQ29yZVN1cHBvcnQvV2ViUGVybWlzc2lvbkNvbnRyb2xsZXIuY3BwCisrKyBiL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJQZXJtaXNzaW9uQ29udHJvbGxl
ci5jcHAKQEAgLTM5LDcgKzM5LDcgQEAgUmVmPFdlYlBlcm1pc3Npb25Db250cm9sbGVyPiBXZWJQ
ZXJtaXNzaW9uQ29udHJvbGxlcjo6Y3JlYXRlKFdlYlBhZ2UmIHBhZ2UpCiB9CiAKIFdlYlBlcm1p
c3Npb25Db250cm9sbGVyOjpXZWJQZXJtaXNzaW9uQ29udHJvbGxlcihXZWJQYWdlJiBwYWdlKQot
ICAgIDogbV9wYWdlKG1ha2VXZWFrUHRyKHBhZ2UpKQorICAgIDogbV9wYWdlKHBhZ2UpCiB7CiB9
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9X
ZWJTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb24uY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbi5jcHAKaW5k
ZXggNGI3NjNiY2RlZTYzYmRmZjRmYTFmMjlkZTc4NTY2MGQ0OGI0ZjFlZC4uNzg5NzM4ZWM0YTNi
MTEzMDU2N2JlMWUyODAxMDkzZDdmNjc3YTE3OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbi5j
cHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlNwZWVj
aFJlY29nbml0aW9uQ29ubmVjdGlvbi5jcHAKQEAgLTYxLDcgKzYxLDcgQEAgV2ViU3BlZWNoUmVj
b2duaXRpb25Db25uZWN0aW9uOjp+V2ViU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uKCkKIAog
dm9pZCBXZWJTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb246OnJlZ2lzdGVyQ2xpZW50KFdlYkNv
cmU6OlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbkNsaWVudCYgY2xpZW50KQogewotICAgIG1f
Y2xpZW50TWFwLmFkZChjbGllbnQuaWRlbnRpZmllcigpLCBtYWtlV2Vha1B0cihjbGllbnQpKTsK
KyAgICBtX2NsaWVudE1hcC5hZGQoY2xpZW50LmlkZW50aWZpZXIoKSwgY2xpZW50KTsKIH0KIAog
dm9pZCBXZWJTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb246OnVucmVnaXN0ZXJDbGllbnQoV2Vi
Q29yZTo6U3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uQ2xpZW50JiBjbGllbnQpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9Db2NvYS9XZWJQYWdlQ29jb2Eu
bW0gYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9Db2NvYS9XZWJQYWdlQ29jb2Eu
bW0KaW5kZXggZTliZGQ1N2MxNDkzNDY0ODQyNTNiZTI5Y2FjMjhhMjIyOTEzMzA5Ny4uYTI3Mzc1
YjI5Y2VlZmFiMzg1ZTQ4ZDA4M2RlYzViN2EwZWJkNzQxMSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvQ29jb2EvV2ViUGFnZUNvY29hLm1tCisrKyBiL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL0NvY29hL1dlYlBhZ2VDb2NvYS5tbQpAQCAtMjcy
LDcgKzI3Miw3IEBAIHZvaWQgV2ViUGFnZTo6Z2V0Q29udGVudHNBc0F0dHJpYnV0ZWRTdHJpbmco
Q29tcGxldGlvbkhhbmRsZXI8dm9pZChjb25zdCBXZWJDb3JlCiAKIHZvaWQgV2ViUGFnZTo6c2V0
UmVtb3RlT2JqZWN0UmVnaXN0cnkoV2ViUmVtb3RlT2JqZWN0UmVnaXN0cnkqIHJlZ2lzdHJ5KQog
ewotICAgIG1fcmVtb3RlT2JqZWN0UmVnaXN0cnkgPSBtYWtlV2Vha1B0cihyZWdpc3RyeSk7Cisg
ICAgbV9yZW1vdGVPYmplY3RSZWdpc3RyeSA9IHJlZ2lzdHJ5OwogfQogCiBXZWJSZW1vdGVPYmpl
Y3RSZWdpc3RyeSogV2ViUGFnZTo6cmVtb3RlT2JqZWN0UmVnaXN0cnkoKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvRmluZENvbnRyb2xsZXIuY3BwIGIvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvRmluZENvbnRyb2xsZXIuY3BwCmluZGV4IGI3
NzNmMGJlMzQ2NzQ4OTIxNGY5NmY4NmUyZTM5OWE2MjE1YjI0YzMuLmI1MGFlZDE2MmZjNTJlN2Y0
YThjMzljYTAzNjY1OWM1NWIwODkwYTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9XZWJQYWdlL0ZpbmRDb250cm9sbGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvV2ViUGFnZS9GaW5kQ29udHJvbGxlci5jcHAKQEAgLTU0NSw3ICs1NDUsNyBAQCB2b2lk
IEZpbmRDb250cm9sbGVyOjpkcmF3UmVjdChQYWdlT3ZlcmxheSYsIEdyYXBoaWNzQ29udGV4dCYg
Z3JhcGhpY3NDb250ZXh0LCBjbwogCiAgICAgICAgIGlmIChmaW5kSW5kaWNhdG9yUmVjdCAhPSBt
X2ZpbmRJbmRpY2F0b3JSZWN0KSB7CiAgICAgICAgICAgICAvLyBXZSBhcmUgdW5kZXJuZWF0aCBw
YWludGluZywgc28gaXQncyBub3Qgc2FmZSB0byBtdXRhdGUgdGhlIGxheWVyIHRyZWUgc3luY2hy
b25vdXNseS4KLSAgICAgICAgICAgIGNhbGxPbk1haW5SdW5Mb29wKFt3ZWFrV2ViUGFnZSA9IG1h
a2VXZWFrUHRyKG1fd2ViUGFnZSldIHsKKyAgICAgICAgICAgIGNhbGxPbk1haW5SdW5Mb29wKFt3
ZWFrV2ViUGFnZSA9IFdlYWtQdHIgeyBtX3dlYlBhZ2UgfV0gewogICAgICAgICAgICAgICAgIGlm
ICghd2Vha1dlYlBhZ2UpCiAgICAgICAgICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgICAg
ICAgICB3ZWFrV2ViUGFnZS0+ZmluZENvbnRyb2xsZXIoKS5kaWRTY3JvbGxBZmZlY3RpbmdGaW5k
SW5kaWNhdG9yUG9zaXRpb24oKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9XZWJQYWdlL0lQQ1Rlc3RpbmdBUEkuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dl
YlBhZ2UvSVBDVGVzdGluZ0FQSS5jcHAKaW5kZXggNjAwNTRhYTkzZTNiNWEyN2I3YzU4YjIzMWE3
ZGFhYWJmYzM4YjQ0NC4uOWM5NjAyYzAyYjM0YjUyMjc0M2YwNDJmM2NmMjQ0NjVmNTgwMTZlMiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvSVBDVGVzdGluZ0FQ
SS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvSVBDVGVzdGluZ0FQ
SS5jcHAKQEAgLTE2Nyw4ICsxNjcsOCBAQCBwdWJsaWM6CiAKIHByaXZhdGU6CiAgICAgSlNJUEMo
V2ViUGFnZSYgd2ViUGFnZSwgV2ViRnJhbWUmIHdlYkZyYW1lKQotICAgICAgICA6IG1fd2ViUGFn
ZShtYWtlV2Vha1B0cih3ZWJQYWdlKSkKLSAgICAgICAgLCBtX3dlYkZyYW1lKG1ha2VXZWFrUHRy
KHdlYkZyYW1lKSkKKyAgICAgICAgOiBtX3dlYlBhZ2Uod2ViUGFnZSkKKyAgICAgICAgLCBtX3dl
YkZyYW1lKHdlYkZyYW1lKQogICAgIHsgfQogCiAgICAgc3RhdGljIEpTSVBDKiB1bndyYXAoSlNP
YmplY3RSZWYpOwpAQCAtMTQxOSw3ICsxNDE5LDcgQEAgSlNWYWx1ZVJlZiBKU0lQQzo6bWVzc2Fn
ZXMoSlNDb250ZXh0UmVmIGNvbnRleHQsIEpTT2JqZWN0UmVmIHRoaXNPYmplY3QsIEpTU3RyaW4K
IH0KIAogSlNNZXNzYWdlTGlzdGVuZXI6OkpTTWVzc2FnZUxpc3RlbmVyKEpTSVBDJiBqc0lQQywg
VHlwZSB0eXBlLCBKU0NvbnRleHRSZWYgY29udGV4dCwgSlNPYmplY3RSZWYgY2FsbGJhY2spCi0g
ICAgOiBtX2pzSVBDKG1ha2VXZWFrUHRyKGpzSVBDKSkKKyAgICA6IG1fanNJUEMoanNJUEMpCiAg
ICAgLCBtX3R5cGUodHlwZSkKICAgICAsIG1fY29udGV4dChjb250ZXh0KQogICAgICwgbV9jYWxs
YmFjayhjYWxsYmFjaykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQ
YWdlL1JlbW90ZUxheWVyVHJlZS9SZW1vdGVMYXllclRyZWVEaXNwbGF5UmVmcmVzaE1vbml0b3Iu
bW0gYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9SZW1vdGVMYXllclRyZWUvUmVt
b3RlTGF5ZXJUcmVlRGlzcGxheVJlZnJlc2hNb25pdG9yLm1tCmluZGV4IGNjMzllM2QxNjI0Zjk3
Yzg4OWNiZGNjZWU2NGU2OTBmN2RhNzVhZWIuLjdhNWFjZGQwYjUwZGNmNjBlZTRiMDczMzFjZThl
NzA3N2Q2ODI3Y2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdl
L1JlbW90ZUxheWVyVHJlZS9SZW1vdGVMYXllclRyZWVEaXNwbGF5UmVmcmVzaE1vbml0b3IubW0K
KysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvUmVtb3RlTGF5ZXJUcmVlL1Jl
bW90ZUxheWVyVHJlZURpc3BsYXlSZWZyZXNoTW9uaXRvci5tbQpAQCAtMzYsNyArMzYsNyBAQCBj
b25zdGV4cHIgRnJhbWVzUGVyU2Vjb25kIERlZmF1bHRQcmVmZXJyZWRGcmFtZXNQZXJTZWNvbmQg
PSA2MDsKIAogUmVtb3RlTGF5ZXJUcmVlRGlzcGxheVJlZnJlc2hNb25pdG9yOjpSZW1vdGVMYXll
clRyZWVEaXNwbGF5UmVmcmVzaE1vbml0b3IoUGxhdGZvcm1EaXNwbGF5SUQgZGlzcGxheUlELCBS
ZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYSYgZHJhd2luZ0FyZWEpCiAgICAgOiBEaXNwbGF5UmVm
cmVzaE1vbml0b3IoZGlzcGxheUlEKQotICAgICwgbV9kcmF3aW5nQXJlYShtYWtlV2Vha1B0cihk
cmF3aW5nQXJlYSkpCisgICAgLCBtX2RyYXdpbmdBcmVhKGRyYXdpbmdBcmVhKQogICAgICwgbV9w
cmVmZXJyZWRGcmFtZXNQZXJTZWNvbmQoRGVmYXVsdFByZWZlcnJlZEZyYW1lc1BlclNlY29uZCkK
ICAgICAsIG1fY3VycmVudFVwZGF0ZSh7IDAsIG1fcHJlZmVycmVkRnJhbWVzUGVyU2Vjb25kIH0p
CiB7CkBAIC05MCw3ICs5MCw3IEBAIHZvaWQgUmVtb3RlTGF5ZXJUcmVlRGlzcGxheVJlZnJlc2hN
b25pdG9yOjpkaWRVcGRhdGVMYXllcnMoKQogCiB2b2lkIFJlbW90ZUxheWVyVHJlZURpc3BsYXlS
ZWZyZXNoTW9uaXRvcjo6dXBkYXRlRHJhd2luZ0FyZWEoUmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0Fy
ZWEmIGRyYXdpbmdBcmVhKQogewotICAgIG1fZHJhd2luZ0FyZWEgPSBtYWtlV2Vha1B0cihkcmF3
aW5nQXJlYSk7CisgICAgbV9kcmF3aW5nQXJlYSA9IGRyYXdpbmdBcmVhOwogfQogCiBzdGQ6Om9w
dGlvbmFsPEZyYW1lc1BlclNlY29uZD4gUmVtb3RlTGF5ZXJUcmVlRGlzcGxheVJlZnJlc2hNb25p
dG9yOjpkaXNwbGF5Tm9taW5hbEZyYW1lc1BlclNlY29uZCgpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJDb250ZXh0TWVudS5jcHAgYi9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJDb250ZXh0TWVudS5jcHAKaW5kZXggMjg2NzMwYTM4
M2Q2Y2NjYTg0MzE2NTg1YWIzMWEwN2EyNGU1ZmM5Yi4uYjE4Y2VjNThlM2E2MTg4NTFlNDM2YmY3
OTNjMzM1NjVjNzA4YWE1YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dl
YlBhZ2UvV2ViQ29udGV4dE1lbnUuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9X
ZWJQYWdlL1dlYkNvbnRleHRNZW51LmNwcApAQCAtNDEsNyArNDEsNyBAQCBuYW1lc3BhY2UgV2Vi
S2l0IHsKIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogCiBXZWJDb250ZXh0TWVudTo6V2ViQ29u
dGV4dE1lbnUoV2ViUGFnZSYgcGFnZSkKLSAgICA6IG1fcGFnZShtYWtlV2Vha1B0cihwYWdlKSkK
KyAgICA6IG1fcGFnZShwYWdlKQogewogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvV2ViUGFnZS9XZWJGcmFtZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
V2ViUGFnZS9XZWJGcmFtZS5jcHAKaW5kZXggODE1NzgzNzhlODdhNWI5NGM3YTQ5YmY1NWM2M2E2
NjE3NmJiMzY1YS4uZDkxOWU0NDhmNzU1Zjk4YjZkMGU5ZWFiNzRmNTNmZjI0OGJiYmYzMiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViRnJhbWUuY3BwCisr
KyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYkZyYW1lLmNwcApAQCAtMTA4
LDcgKzEwOCw3IEBAIHZvaWQgV2ViRnJhbWU6OmluaXRXaXRoQ29yZU1haW5GcmFtZShXZWJQYWdl
JiBwYWdlLCBGcmFtZSYgY29yZUZyYW1lKQogewogICAgIHBhZ2Uuc2VuZChNZXNzYWdlczo6V2Vi
UGFnZVByb3h5OjpEaWRDcmVhdGVNYWluRnJhbWUoZnJhbWVJRCgpKSk7CiAKLSAgICBtX2NvcmVG
cmFtZSA9IG1ha2VXZWFrUHRyKGNvcmVGcmFtZSk7CisgICAgbV9jb3JlRnJhbWUgPSBjb3JlRnJh
bWU7CiAgICAgbV9jb3JlRnJhbWUtPnRyZWUoKS5zZXROYW1lKFN0cmluZygpKTsKICAgICBtX2Nv
cmVGcmFtZS0+aW5pdCgpOwogfQpAQCAtMTE5LDcgKzExOSw3IEBAIFJlZjxXZWJGcmFtZT4gV2Vi
RnJhbWU6OmNyZWF0ZVN1YmZyYW1lKFdlYlBhZ2UqIHBhZ2UsIGNvbnN0IFN0cmluZyYgZnJhbWVO
YW1lLCBICiAgICAgcGFnZS0+c2VuZChNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpEaWRDcmVhdGVT
dWJmcmFtZShmcmFtZS0+ZnJhbWVJRCgpKSk7CiAKICAgICBhdXRvIGNvcmVGcmFtZSA9IEZyYW1l
OjpjcmVhdGUocGFnZS0+Y29yZVBhZ2UoKSwgb3duZXJFbGVtZW50LCBtYWtlVW5pcXVlUmVmPFdl
YkZyYW1lTG9hZGVyQ2xpZW50PihmcmFtZS5nZXQoKSkpOwotICAgIGZyYW1lLT5tX2NvcmVGcmFt
ZSA9IG1ha2VXZWFrUHRyKGNvcmVGcmFtZS5nZXQoKSk7CisgICAgZnJhbWUtPm1fY29yZUZyYW1l
ID0gY29yZUZyYW1lOwogCiAgICAgY29yZUZyYW1lLT50cmVlKCkuc2V0TmFtZShmcmFtZU5hbWUp
OwogICAgIGlmIChvd25lckVsZW1lbnQpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9XZWJQYWdlL1dlYkZyYW1lLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2Vi
UGFnZS9XZWJGcmFtZS5oCmluZGV4IGIwY2NkOGVhZDQ5MGY5YmJmZGE2YWQ4ZGNkNDhmNTlhMTA2
NTMyMjQuLjU3MjY2ZTRkNTQwNzNlMDg5ODNjOWYzZGFmY2Q5NDkzMmE3OTJmMDUgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYkZyYW1lLmgKKysrIGIvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViRnJhbWUuaApAQCAtMTczLDcgKzE3Myw3
IEBAIHB1YmxpYzoKICAgICAgICAgdmlydHVhbCB2b2lkIGRpZEZpbmlzaExvYWQoV2ViRnJhbWUq
KSA9IDA7CiAgICAgICAgIHZpcnR1YWwgdm9pZCBkaWRGYWlsTG9hZChXZWJGcmFtZSosIGJvb2wg
d2FzQ2FuY2VsbGVkKSA9IDA7CiAgICAgfTsKLSAgICB2b2lkIHNldExvYWRMaXN0ZW5lcihMb2Fk
TGlzdGVuZXIqIGxvYWRMaXN0ZW5lcikgeyBtX2xvYWRMaXN0ZW5lciA9IG1ha2VXZWFrUHRyKGxv
YWRMaXN0ZW5lcik7IH0KKyAgICB2b2lkIHNldExvYWRMaXN0ZW5lcihMb2FkTGlzdGVuZXIqIGxv
YWRMaXN0ZW5lcikgeyBtX2xvYWRMaXN0ZW5lciA9IGxvYWRMaXN0ZW5lcjsgfQogICAgIExvYWRM
aXN0ZW5lciogbG9hZExpc3RlbmVyKCkgY29uc3QgeyByZXR1cm4gbV9sb2FkTGlzdGVuZXIuZ2V0
KCk7IH0KICAgICAKICNpZiBQTEFURk9STShDT0NPQSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKaW5kZXggZWZmOGIxOGIxZDAwNzJmZTJlMWQwZWVkNWNl
NGQ0NzI1NTc0YjFhZS4uN2Y0MzQ0MjA0NDRlM2M2OTQ4YTQ3MzdmYmViZTUyYWE0NDY0YzM0ZiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAK
KysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKQEAgLTQ2
MDAsNyArNDYwMCw3IEBAIHZvaWQgV2ViUGFnZTo6ZGlkQ2hvb3NlQ29sb3IoY29uc3QgV2ViQ29y
ZTo6Q29sb3ImIGNvbG9yKQogCiB2b2lkIFdlYlBhZ2U6OnNldEFjdGl2ZURhdGFMaXN0U3VnZ2Vz
dGlvblBpY2tlcihXZWJEYXRhTGlzdFN1Z2dlc3Rpb25QaWNrZXImIGRhdGFMaXN0U3VnZ2VzdGlv
blBpY2tlcikKIHsKLSAgICBtX2FjdGl2ZURhdGFMaXN0U3VnZ2VzdGlvblBpY2tlciA9IG1ha2VX
ZWFrUHRyKCZkYXRhTGlzdFN1Z2dlc3Rpb25QaWNrZXIpOworICAgIG1fYWN0aXZlRGF0YUxpc3RT
dWdnZXN0aW9uUGlja2VyID0gZGF0YUxpc3RTdWdnZXN0aW9uUGlja2VyOwogfQogCiB2b2lkIFdl
YlBhZ2U6OmRpZFNlbGVjdERhdGFMaXN0T3B0aW9uKGNvbnN0IFN0cmluZyYgc2VsZWN0ZWRPcHRp
b24pCkBAIC00NjIxLDcgKzQ2MjEsNyBAQCB2b2lkIFdlYlBhZ2U6OmRpZENsb3NlU3VnZ2VzdGlv
bnMoKQogCiB2b2lkIFdlYlBhZ2U6OnNldEFjdGl2ZURhdGVUaW1lQ2hvb3NlcihXZWJEYXRlVGlt
ZUNob29zZXImIGRhdGVUaW1lQ2hvb3NlcikKIHsKLSAgICBtX2FjdGl2ZURhdGVUaW1lQ2hvb3Nl
ciA9IG1ha2VXZWFrUHRyKCZkYXRlVGltZUNob29zZXIpOworICAgIG1fYWN0aXZlRGF0ZVRpbWVD
aG9vc2VyID0gZGF0ZVRpbWVDaG9vc2VyOwogfQogCiB2b2lkIFdlYlBhZ2U6OmRpZENob29zZURh
dGUoY29uc3QgU3RyaW5nJiBkYXRlKQpAQCAtNzMyNiw3ICs3MzI2LDcgQEAgdm9pZCBXZWJQYWdl
OjpzdGFydFRleHRNYW5pcHVsYXRpb25zKFZlY3RvcjxXZWJDb3JlOjpUZXh0TWFuaXB1bGF0aW9u
Q29udHJvbGxlcjoKICAgICBpZiAoIW1haW5Eb2N1bWVudCkKICAgICAgICAgcmV0dXJuOwogCi0g
ICAgbWFpbkRvY3VtZW50LT50ZXh0TWFuaXB1bGF0aW9uQ29udHJvbGxlcigpLnN0YXJ0T2JzZXJ2
aW5nUGFyYWdyYXBocyhbd2ViUGFnZSA9IG1ha2VXZWFrUHRyKCp0aGlzKV0gKERvY3VtZW50JiBk
b2N1bWVudCwgY29uc3QgVmVjdG9yPFdlYkNvcmU6OlRleHRNYW5pcHVsYXRpb25Db250cm9sbGVy
OjpNYW5pcHVsYXRpb25JdGVtPiYgaXRlbXMpIHsKKyAgICBtYWluRG9jdW1lbnQtPnRleHRNYW5p
cHVsYXRpb25Db250cm9sbGVyKCkuc3RhcnRPYnNlcnZpbmdQYXJhZ3JhcGhzKFt3ZWJQYWdlID0g
V2Vha1B0ciB7ICp0aGlzIH1dIChEb2N1bWVudCYgZG9jdW1lbnQsIGNvbnN0IFZlY3RvcjxXZWJD
b3JlOjpUZXh0TWFuaXB1bGF0aW9uQ29udHJvbGxlcjo6TWFuaXB1bGF0aW9uSXRlbT4mIGl0ZW1z
KSB7CiAgICAgICAgIGF1dG8qIGZyYW1lID0gZG9jdW1lbnQuZnJhbWUoKTsKICAgICAgICAgaWYg
KCF3ZWJQYWdlIHx8ICFmcmFtZSB8fCB3ZWJQYWdlLT5tYWluRnJhbWUoKSAhPSBmcmFtZSkKICAg
ICAgICAgICAgIHJldHVybjsKQEAgLTc1MzcsMTEgKzc1MzcsMTEgQEAgdm9pZCBXZWJQYWdlOjpy
ZXF1ZXN0VGV4dFJlY29nbml0aW9uKFdlYkNvcmU6OkVsZW1lbnQmIGVsZW1lbnQsIENvbXBsZXRp
b25IYW5kbGUKICAgICBWZWN0b3I8Q29tcGxldGlvbkhhbmRsZXI8dm9pZChSZWZQdHI8RWxlbWVu
dD4mJik+PiBjb21wbGV0aW9uSGFuZGxlcnM7CiAgICAgaWYgKGNvbXBsZXRpb24pCiAgICAgICAg
IGNvbXBsZXRpb25IYW5kbGVycy5hcHBlbmQoV1RGTW92ZShjb21wbGV0aW9uKSk7Ci0gICAgbV9l
bGVtZW50c1BlbmRpbmdUZXh0UmVjb2duaXRpb24uYXBwZW5kKHsgbWFrZVdlYWtQdHIoZWxlbWVu
dCksIFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXJzKSB9KTsKKyAgICBtX2VsZW1lbnRzUGVuZGlu
Z1RleHRSZWNvZ25pdGlvbi5hcHBlbmQoeyBXZWFrUHRyIHsgZWxlbWVudCB9LCBXVEZNb3ZlKGNv
bXBsZXRpb25IYW5kbGVycykgfSk7CiAKICAgICBhdXRvIGNhY2hlZEltYWdlID0gcmVuZGVySW1h
Z2UuY2FjaGVkSW1hZ2UoKTsKICAgICBhdXRvIGltYWdlVVJMID0gY2FjaGVkSW1hZ2UgPyBlbGVt
ZW50LmRvY3VtZW50KCkuY29tcGxldGVVUkwoY2FjaGVkSW1hZ2UtPnVybCgpLnN0cmluZygpKSA6
IFVSTCB7IH07Ci0gICAgc2VuZFdpdGhBc3luY1JlcGx5KE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6
OlJlcXVlc3RUZXh0UmVjb2duaXRpb24oV1RGTW92ZShpbWFnZVVSTCksIFdURk1vdmUoYml0bWFw
SGFuZGxlKSksIFt3ZWJQYWdlID0gbWFrZVdlYWtQdHIoKnRoaXMpLCB3ZWFrRWxlbWVudCA9IG1h
a2VXZWFrUHRyKGVsZW1lbnQpXSAoYXV0byYmIHJlc3VsdCkgeworICAgIHNlbmRXaXRoQXN5bmNS
ZXBseShNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpSZXF1ZXN0VGV4dFJlY29nbml0aW9uKFdURk1v
dmUoaW1hZ2VVUkwpLCBXVEZNb3ZlKGJpdG1hcEhhbmRsZSkpLCBbd2ViUGFnZSA9IFdlYWtQdHIg
eyAqdGhpcyB9LCB3ZWFrRWxlbWVudCA9IFdlYWtQdHIgeyBlbGVtZW50IH1dIChhdXRvJiYgcmVz
dWx0KSB7CiAgICAgICAgIFJlZlB0ciBwcm90ZWN0ZWRQYWdlIHsgd2ViUGFnZS5nZXQoKSB9Owog
ICAgICAgICBpZiAoIXByb3RlY3RlZFBhZ2UpCiAgICAgICAgICAgICByZXR1cm47CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9pb3MvV2ViUGFnZUlPUy5tbSBi
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL2lvcy9XZWJQYWdlSU9TLm1tCmluZGV4
IDgwZGU4NjBiOTA3ZTJlYWFjMTFjYzFjNDEyMTlmNDdkNDQ0ZDk0MDguLjExMmM4ZGNlMzIzMGUz
YjYwNjE3MWJiZTk5NTE0ZTJhNThhZThlMjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9XZWJQYWdlL2lvcy9XZWJQYWdlSU9TLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9XZWJQYWdlL2lvcy9XZWJQYWdlSU9TLm1tCkBAIC04MTIsNyArODEyLDcgQEAgdm9p
ZCBXZWJQYWdlOjpkaWRGaW5pc2hDb250ZW50Q2hhbmdlT2JzZXJ2aW5nKFdLQ29udGVudENoYW5n
ZSBvYnNlcnZlZENvbnRlbnRDaGEKICAgICBMT0dfV0lUSF9TVFJFQU0oQ29udGVudE9ic2VydmF0
aW9uLCBzdHJlYW0gPDwgImRpZEZpbmlzaENvbnRlbnRDaGFuZ2VPYnNlcnZpbmc6IHBlbmRpbmcg
dGFyZ2V0IG5vZGUoIiA8PCBtX3BlbmRpbmdTeW50aGV0aWNDbGlja05vZGUgPDwgIikiKTsKICAg
ICBpZiAoIW1fcGVuZGluZ1N5bnRoZXRpY0NsaWNrTm9kZSkKICAgICAgICAgcmV0dXJuOwotICAg
IGNhbGxPbk1haW5SdW5Mb29wKFtwcm90ZWN0ZWRUaGlzID0gUmVmIHsgKnRoaXMgfSwgdGFyZ2V0
Tm9kZSA9IFJlZjxOb2RlPigqbV9wZW5kaW5nU3ludGhldGljQ2xpY2tOb2RlKSwgb3JpZ2luYWxE
b2N1bWVudCA9IG1ha2VXZWFrUHRyKG1fcGVuZGluZ1N5bnRoZXRpY0NsaWNrTm9kZS0+ZG9jdW1l
bnQoKSksIG9ic2VydmVkQ29udGVudENoYW5nZSwgbG9jYXRpb24gPSBtX3BlbmRpbmdTeW50aGV0
aWNDbGlja0xvY2F0aW9uLCBtb2RpZmllcnMgPSBtX3BlbmRpbmdTeW50aGV0aWNDbGlja01vZGlm
aWVycywgcG9pbnRlcklkID0gbV9wZW5kaW5nU3ludGhldGljQ2xpY2tQb2ludGVySWRdIHsKKyAg
ICBjYWxsT25NYWluUnVuTG9vcChbcHJvdGVjdGVkVGhpcyA9IFJlZiB7ICp0aGlzIH0sIHRhcmdl
dE5vZGUgPSBSZWY8Tm9kZT4oKm1fcGVuZGluZ1N5bnRoZXRpY0NsaWNrTm9kZSksIG9yaWdpbmFs
RG9jdW1lbnQgPSBXZWFrUHRyIHsgbV9wZW5kaW5nU3ludGhldGljQ2xpY2tOb2RlLT5kb2N1bWVu
dCgpIH0sIG9ic2VydmVkQ29udGVudENoYW5nZSwgbG9jYXRpb24gPSBtX3BlbmRpbmdTeW50aGV0
aWNDbGlja0xvY2F0aW9uLCBtb2RpZmllcnMgPSBtX3BlbmRpbmdTeW50aGV0aWNDbGlja01vZGlm
aWVycywgcG9pbnRlcklkID0gbV9wZW5kaW5nU3ludGhldGljQ2xpY2tQb2ludGVySWRdIHsKICAg
ICAgICAgaWYgKHByb3RlY3RlZFRoaXMtPm1faXNDbG9zZWQgfHwgIXByb3RlY3RlZFRoaXMtPmNv
cmVQYWdlKCkpCiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIGlmICghb3JpZ2luYWxEb2N1
bWVudCB8fCAmdGFyZ2V0Tm9kZS0+ZG9jdW1lbnQoKSAhPSBvcmlnaW5hbERvY3VtZW50KQpAQCAt
MjIwMiw3ICsyMjAyLDcgQEAgdm9pZCBXZWJQYWdlOjpzZWxlY3RUZXh0V2l0aEdyYW51bGFyaXR5
QXRQb2ludChjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYgcG9pbnQsIFcKICAgICBpZiAoYXV0byBz
ZWxlY3Rpb25DaGFuZ2VkSGFuZGxlciA9IHN0ZDo6ZXhjaGFuZ2UobV9zZWxlY3Rpb25DaGFuZ2Vk
SGFuZGxlciwge30pKQogICAgICAgICBzZWxlY3Rpb25DaGFuZ2VkSGFuZGxlcigpOwogCi0gICAg
bV9zZWxlY3Rpb25DaGFuZ2VkSGFuZGxlciA9IFtwb2ludCwgZ3JhbnVsYXJpdHksIGlzSW50ZXJh
Y3RpbmdXaXRoRm9jdXNlZEVsZW1lbnQsIGNvbXBsZXRpb25IYW5kbGVyID0gV1RGTW92ZShjb21w
bGV0aW9uSGFuZGxlciksIHdlYlBhZ2UgPSBtYWtlV2Vha1B0cigqdGhpcyksIHRoaXNdKCkgbXV0
YWJsZSB7CisgICAgbV9zZWxlY3Rpb25DaGFuZ2VkSGFuZGxlciA9IFtwb2ludCwgZ3JhbnVsYXJp
dHksIGlzSW50ZXJhY3RpbmdXaXRoRm9jdXNlZEVsZW1lbnQsIGNvbXBsZXRpb25IYW5kbGVyID0g
V1RGTW92ZShjb21wbGV0aW9uSGFuZGxlciksIHdlYlBhZ2UgPSBXZWFrUHRyIHsgKnRoaXMgfSwg
dGhpc10oKSBtdXRhYmxlIHsKICAgICAgICAgUmVmUHRyPFdlYlBhZ2U+IHN0cm9uZ1BhZ2UgPSB3
ZWJQYWdlLmdldCgpOwogICAgICAgICBpZiAoIXN0cm9uZ1BhZ2UpIHsKICAgICAgICAgICAgIGNv
bXBsZXRpb25IYW5kbGVyKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
V2ViUGFnZS9tYWMvV2ViUGFnZU1hYy5tbSBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQ
YWdlL21hYy9XZWJQYWdlTWFjLm1tCmluZGV4IGMyNTVmMzhjMzU4YTBjNWM0ZTE3YTY2MjFkN2Iz
N2RkZTQ1ZjYxZTUuLmIzYzQ4YmJiNGEyOGI4MGNkY2MxYjg5ODAwNzgwYTdkYjkwYTI1MTYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9XZWJQYWdlTWFj
Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9XZWJQYWdlTWFj
Lm1tCkBAIC0xMTQ0LDcgKzExNDQsNyBAQCB2b2lkIFdlYlBhZ2U6Om9wZW5QREZXaXRoUHJldmll
dyhQREZQbHVnaW5JZGVudGlmaWVyIGlkZW50aWZpZXIsIENvbXBsZXRpb25IYW5kbAogCiB2b2lk
IFdlYlBhZ2U6OmNyZWF0ZVBERkhVRChQREZQbHVnaW4mIHBsdWdpbiwgY29uc3QgSW50UmVjdCYg
Ym91bmRpbmdCb3gpCiB7Ci0gICAgYXV0byBhZGRSZXN1bHQgPSBtX3BkZlBsdWdJbnNXaXRoSFVE
LmFkZChwbHVnaW4uaWRlbnRpZmllcigpLCBtYWtlV2Vha1B0cihwbHVnaW4pKTsKKyAgICBhdXRv
IGFkZFJlc3VsdCA9IG1fcGRmUGx1Z0luc1dpdGhIVUQuYWRkKHBsdWdpbi5pZGVudGlmaWVyKCks
IHBsdWdpbik7CiAgICAgaWYgKGFkZFJlc3VsdC5pc05ld0VudHJ5KQogICAgICAgICBzZW5kKE1l
c3NhZ2VzOjpXZWJQYWdlUHJveHk6OkNyZWF0ZVBERkhVRChwbHVnaW4uaWRlbnRpZmllcigpLCBi
b3VuZGluZ0JveCkpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dl
YlN0b3JhZ2UvU3RvcmFnZUFyZWFJbXBsLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9X
ZWJTdG9yYWdlL1N0b3JhZ2VBcmVhSW1wbC5jcHAKaW5kZXggOGE1NDdlYTg5OTQ3NDRlYmJkZjgx
MzNhNDczOGZiNDY3NzExMDQxYi4uYjEyYzU4YzBhYWQ2N2U5OTU3NzA2ZTI5ZTZkZTY1NjllZmU2
NDg0NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlN0b3JhZ2UvU3Rv
cmFnZUFyZWFJbXBsLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViU3RvcmFn
ZS9TdG9yYWdlQXJlYUltcGwuY3BwCkBAIC00NCw3ICs0NCw3IEBAIFJlZjxTdG9yYWdlQXJlYUlt
cGw+IFN0b3JhZ2VBcmVhSW1wbDo6Y3JlYXRlKFN0b3JhZ2VBcmVhTWFwJiBzdG9yYWdlQXJlYU1h
cCkKIAogU3RvcmFnZUFyZWFJbXBsOjpTdG9yYWdlQXJlYUltcGwoU3RvcmFnZUFyZWFNYXAmIHN0
b3JhZ2VBcmVhTWFwKQogICAgIDogbV9pZGVudGlmaWVyKElkZW50aWZpZXI6OmdlbmVyYXRlKCkp
Ci0gICAgLCBtX3N0b3JhZ2VBcmVhTWFwKG1ha2VXZWFrUHRyKHN0b3JhZ2VBcmVhTWFwKSkKKyAg
ICAsIG1fc3RvcmFnZUFyZWFNYXAoc3RvcmFnZUFyZWFNYXApCiB7CiAgICAgc3RvcmFnZUFyZWFN
YXAuaW5jcmVtZW50VXNlQ291bnQoKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9jb2NvYS9BdWRpb1Nlc3Npb25Sb3V0aW5nQXJiaXRyYXRvci5jcHAgYi9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvQXVkaW9TZXNzaW9uUm91dGluZ0FyYml0cmF0b3IuY3Bw
CmluZGV4IDdlZWQzOWRiODdkNWI1YWFlNTE4NTU4OWU5YjFmZTIzODBhYWE5MjEuLmNjNjk4ZDc0
MDAyMDVkMmEwOGZmNmFkNTI1YzQzNWQ2N2EyZTM0NzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9jb2NvYS9BdWRpb1Nlc3Npb25Sb3V0aW5nQXJiaXRyYXRvci5jcHAKKysr
IGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL0F1ZGlvU2Vzc2lvblJvdXRpbmdBcmJp
dHJhdG9yLmNwcApAQCAtMzksNyArMzksNyBAQCB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIAog
QXVkaW9TZXNzaW9uUm91dGluZ0FyYml0cmF0b3I6OkF1ZGlvU2Vzc2lvblJvdXRpbmdBcmJpdHJh
dG9yKFdlYlByb2Nlc3MmIHByb2Nlc3MpCiAgICAgOiBtX3Byb2Nlc3MocHJvY2VzcykKLSAgICAs
IG1fb2JzZXJ2ZXIoW3RoaXNdIChBdWRpb1Nlc3Npb24mIHNlc3Npb24pIHsgc2Vzc2lvbi5zZXRS
b3V0aW5nQXJiaXRyYXRpb25DbGllbnQobWFrZVdlYWtQdHIodGhpcykpOyB9KQorICAgICwgbV9v
YnNlcnZlcihbdGhpc10gKEF1ZGlvU2Vzc2lvbiYgc2Vzc2lvbikgeyBzZXNzaW9uLnNldFJvdXRp
bmdBcmJpdHJhdGlvbkNsaWVudChXZWFrUHRyIHsgKnRoaXMgfSk7IH0pCiB7CiAgICAgQXVkaW9T
ZXNzaW9uOjphZGRBdWRpb1Nlc3Npb25DaGFuZ2VkT2JzZXJ2ZXIobV9vYnNlcnZlcik7CiB9CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvVmlkZW9GdWxsc2NyZWVu
TWFuYWdlci5tbSBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9WaWRlb0Z1bGxzY3Jl
ZW5NYW5hZ2VyLm1tCmluZGV4IDdiMzRlNDM4MGZjMjhmYTAwMTVjMTNjNzc3MzRkYWVkYjhjYmJk
M2YuLjEzYTZiZjkxYzlmNTNmNTUzYzRiN2NlNzQ0MjY2YTAxY2MxMGQ5MjEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9WaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyLm1t
CisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9WaWRlb0Z1bGxzY3JlZW5NYW5h
Z2VyLm1tCkBAIC0yNzUsNyArMjc1LDcgQEAgdm9pZCBWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyOjpl
bnRlclZpZGVvRnVsbHNjcmVlbkZvclZpZGVvRWxlbWVudChIVE1MVmlkZW9FbGVtZW4KICAgICAg
ICAgaW50ZXJmYWNlLT5zZXRUYXJnZXRJc0Z1bGxzY3JlZW4oZmFsc2UpOwogCiAgICAgaWYgKG1v
ZGUgPT0gSFRNTE1lZGlhRWxlbWVudEVudW1zOjpWaWRlb0Z1bGxzY3JlZW5Nb2RlUGljdHVyZUlu
UGljdHVyZSkKLSAgICAgICAgbV92aWRlb0VsZW1lbnRJblBpY3R1cmVJblBpY3R1cmUgPSBtYWtl
V2Vha1B0cih2aWRlb0VsZW1lbnQpOworICAgICAgICBtX3ZpZGVvRWxlbWVudEluUGljdHVyZUlu
UGljdHVyZSA9IHZpZGVvRWxlbWVudDsKIAogICAgIGludGVyZmFjZS0+c2V0RnVsbHNjcmVlbk1v
ZGUobW9kZSk7CiAgICAgaW50ZXJmYWNlLT5zZXRGdWxsc2NyZWVuU3RhbmRieShzdGFuZGJ5KTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvU3RvcmFnZS9JblByb2Nlc3NJREJTZXJ2
ZXIuY3BwIGIvU291cmNlL1dlYktpdExlZ2FjeS9TdG9yYWdlL0luUHJvY2Vzc0lEQlNlcnZlci5j
cHAKaW5kZXggZDU5MTZjMWE0M2NhOWE2NDViNjdjZWJlMjQwY2FkNWNkOTk1YjFkMi4uNWU0NGMz
Yjg1ODJkNmFmMzdkMGI4NTJlMThhZDgyZTg4MTQ1ZGFjMCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdExlZ2FjeS9TdG9yYWdlL0luUHJvY2Vzc0lEQlNlcnZlci5jcHAKKysrIGIvU291cmNlL1dl
YktpdExlZ2FjeS9TdG9yYWdlL0luUHJvY2Vzc0lEQlNlcnZlci5jcHAKQEAgLTgzLDggKzgzLDgg
QEAgU3RvcmFnZVF1b3RhTWFuYWdlciogSW5Qcm9jZXNzSURCU2VydmVyOjpxdW90YU1hbmFnZXIo
Y29uc3QgQ2xpZW50T3JpZ2luJiBvcmlnaW4KIAogc3RhdGljIGlubGluZSBJREJTZXJ2ZXI6OklE
QlNlcnZlcjo6U3RvcmFnZVF1b3RhTWFuYWdlclNwYWNlUmVxdWVzdGVyIHN0b3JhZ2VRdW90YU1h
bmFnZXJTcGFjZVJlcXVlc3RlcihJblByb2Nlc3NJREJTZXJ2ZXImIHNlcnZlcikKIHsKLSAgICBy
ZXR1cm4gW3NlcnZlciA9ICZzZXJ2ZXIsIHdlYWtTZXJ2ZXIgPSBtYWtlV2Vha1B0cihzZXJ2ZXIp
XShjb25zdCBDbGllbnRPcmlnaW4mIG9yaWdpbiwgdWludDY0X3Qgc3BhY2VSZXF1ZXN0ZWQpIG11
dGFibGUgewotICAgICAgICBhdXRvKiBzdG9yYWdlUXVvdGFNYW5hZ2VyID0gd2Vha1NlcnZlciA/
IHNlcnZlci0+cXVvdGFNYW5hZ2VyKG9yaWdpbikgOiBudWxscHRyOworICAgIHJldHVybiBbd2Vh
a1NlcnZlciA9IFdlYWtQdHIgeyBzZXJ2ZXIgfV0oY29uc3QgQ2xpZW50T3JpZ2luJiBvcmlnaW4s
IHVpbnQ2NF90IHNwYWNlUmVxdWVzdGVkKSBtdXRhYmxlIHsKKyAgICAgICAgYXV0byogc3RvcmFn
ZVF1b3RhTWFuYWdlciA9IHdlYWtTZXJ2ZXIgPyB3ZWFrU2VydmVyLT5xdW90YU1hbmFnZXIob3Jp
Z2luKSA6IG51bGxwdHI7CiAgICAgICAgIHJldHVybiBzdG9yYWdlUXVvdGFNYW5hZ2VyID8gc3Rv
cmFnZVF1b3RhTWFuYWdlci0+cmVxdWVzdFNwYWNlT25CYWNrZ3JvdW5kVGhyZWFkKHNwYWNlUmVx
dWVzdGVkKSA6IFN0b3JhZ2VRdW90YU1hbmFnZXI6OkRlY2lzaW9uOjpEZW55OwogICAgIH07CiB9
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L1dlYkNvcmVTdXBwb3J0L1BhZ2VTdG9y
YWdlU2Vzc2lvblByb3ZpZGVyLmggYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L1dlYkNvcmVTdXBwb3J0
L1BhZ2VTdG9yYWdlU2Vzc2lvblByb3ZpZGVyLmgKaW5kZXggNzU2ZWFiZjNjMTllNTc5OGM5N2U2
MGI3OWMyNzFmZWM1N2U3NjgzYy4uZjIwYzJiNTQ5ZTMzYzY2ODgzNjY5OTM1NjgwOGMxY2JkYjdk
MDdhNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9XZWJDb3JlU3VwcG9ydC9QYWdl
U3RvcmFnZVNlc3Npb25Qcm92aWRlci5oCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvV2ViQ29y
ZVN1cHBvcnQvUGFnZVN0b3JhZ2VTZXNzaW9uUHJvdmlkZXIuaApAQCAtNDQsNyArNDQsNyBAQCBw
dWJsaWM6CiAKICAgICB2b2lkIHNldFBhZ2UoV2ViQ29yZTo6UGFnZSYgcGFnZSkKICAgICB7Ci0g
ICAgICAgIG1fcGFnZSA9IG1ha2VXZWFrUHRyKHBhZ2UpOworICAgICAgICBtX3BhZ2UgPSBwYWdl
OwogICAgIH0KIAogcHJpdmF0ZToKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvV2Vi
Q29yZVN1cHBvcnQvV2ViQnJvYWRjYXN0Q2hhbm5lbFJlZ2lzdHJ5LmNwcCBiL1NvdXJjZS9XZWJL
aXRMZWdhY3kvV2ViQ29yZVN1cHBvcnQvV2ViQnJvYWRjYXN0Q2hhbm5lbFJlZ2lzdHJ5LmNwcApp
bmRleCBkMTAzMjA4YzhmODYzM2Q2MDhhYzIzZTU3ZjRlZjM1Nzg2ZWQ0MmY2Li42NGM2NGIyY2Nj
MWE1ZDBiZDc0ZDNjMDRlNjgxOTQ4NGJmODI4MmU1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
TGVnYWN5L1dlYkNvcmVTdXBwb3J0L1dlYkJyb2FkY2FzdENoYW5uZWxSZWdpc3RyeS5jcHAKKysr
IGIvU291cmNlL1dlYktpdExlZ2FjeS9XZWJDb3JlU3VwcG9ydC9XZWJCcm9hZGNhc3RDaGFubmVs
UmVnaXN0cnkuY3BwCkBAIC00MCw3ICs0MCw3IEBAIFJlZjxXZWJCcm9hZGNhc3RDaGFubmVsUmVn
aXN0cnk+IFdlYkJyb2FkY2FzdENoYW5uZWxSZWdpc3RyeTo6Z2V0T3JDcmVhdGUoYm9vbCBwCiAg
ICAgICAgIHJldHVybiAqZXhpc3RpbmdSZWdpc3RyeS5nZXQoKTsKIAogICAgIGF1dG8gcmVnaXN0
cnkgPSBhZG9wdFJlZigqbmV3IFdlYkJyb2FkY2FzdENoYW5uZWxSZWdpc3RyeSk7Ci0gICAgZXhp
c3RpbmdSZWdpc3RyeS5nZXQoKSA9IG1ha2VXZWFrUHRyKHJlZ2lzdHJ5LmdldCgpKTsKKyAgICBl
eGlzdGluZ1JlZ2lzdHJ5LmdldCgpID0gcmVnaXN0cnk7CiAgICAgcmV0dXJuIHJlZ2lzdHJ5Owog
fQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJDb3JlU3VwcG9ydC9X
ZWJFZGl0b3JDbGllbnQubW0gYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJDb3JlU3VwcG9y
dC9XZWJFZGl0b3JDbGllbnQubW0KaW5kZXggYmQ1YzU2OTUxOWZjNThmMTI3ZTVlYmI1MjQ1ODJl
YTk0YTk4MDlhOS4uYzJjNDBkM2QyYTEzM2YyODEzNDE1NjAzNGRlNTQxNDFhNGNlOWMzMiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9y
Q2xpZW50Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dl
YkVkaXRvckNsaWVudC5tbQpAQCAtMTExNiw3ICsxMTE2LDcgQEAgdm9pZCBXZWJFZGl0b3JDbGll
bnQ6OnJlcXVlc3RDYW5kaWRhdGVzRm9yU2VsZWN0aW9uKGNvbnN0IFZpc2libGVTZWxlY3Rpb24m
IHNlbGUKICAgICBtX3BhcmFncmFwaENvbnRleHRGb3JDYW5kaWRhdGVSZXF1ZXN0ID0gY29udGV4
dEZvckNhbmRpZGF0ZVJlcWV1ZXN0OwogCiAgICAgTlNUZXh0Q2hlY2tpbmdUeXBlcyBjaGVja2lu
Z1R5cGVzID0gTlNUZXh0Q2hlY2tpbmdUeXBlU3BlbGxpbmcgfCBOU1RleHRDaGVja2luZ1R5cGVS
ZXBsYWNlbWVudCB8IE5TVGV4dENoZWNraW5nVHlwZUNvcnJlY3Rpb247Ci0gICAgYXV0byB3ZWFr
RWRpdG9yID0gbWFrZVdlYWtQdHIoKnRoaXMpOworICAgIFdlYWtQdHIgd2Vha0VkaXRvciB7ICp0
aGlzIH07CiAgICAgbV9sYXN0Q2FuZGlkYXRlUmVxdWVzdFNlcXVlbmNlTnVtYmVyID0gW1tOU1Nw
ZWxsQ2hlY2tlciBzaGFyZWRTcGVsbENoZWNrZXJdIHJlcXVlc3RDYW5kaWRhdGVzRm9yU2VsZWN0
ZWRSYW5nZTptX3JhbmdlRm9yQ2FuZGlkYXRlcyBpblN0cmluZzptX3BhcmFncmFwaENvbnRleHRG
b3JDYW5kaWRhdGVSZXF1ZXN0LmdldCgpIHR5cGVzOmNoZWNraW5nVHlwZXMgb3B0aW9uczpuaWwg
aW5TcGVsbERvY3VtZW50V2l0aFRhZzpzcGVsbENoZWNrZXJEb2N1bWVudFRhZygpIGNvbXBsZXRp
b25IYW5kbGVyOlt3ZWFrRWRpdG9yXShOU0ludGVnZXIgc2VxdWVuY2VOdW1iZXIsIE5TQXJyYXk8
TlNUZXh0Q2hlY2tpbmdSZXN1bHQgKj4gKmNhbmRpZGF0ZXMpIHsKICAgICAgICAgUnVuTG9vcDo6
bWFpbigpLmRpc3BhdGNoKFt3ZWFrRWRpdG9yLCBzZXF1ZW5jZU51bWJlciwgY2FuZGlkYXRlcyA9
IHJldGFpblB0cihjYW5kaWRhdGVzKV0gewogICAgICAgICAgICAgaWYgKCF3ZWFrRWRpdG9yKQpk
aWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4IDg3YWEz
Yzc4NTJhZTAwMGQwNDJiODM3MDIyYWEzNDdlOGY3NGJlZmUuLmQ0MTA5MDBkYWI0MjQ4MGQzNjA0
OGUxYWY2Zjk2MWY1OGYwNWE3NDQgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZworKysgYi9U
b29scy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxOSBAQAorMjAyMS0xMC0xMyAgQ2hyaXMgRHVtZXog
IDxjZHVtZXpAYXBwbGUuY29tPgorCisgICAgICAgIERyb3AgbWFrZVdlYWtQdHIoKSBhbmQgdXNl
IFdlYWtQdHIgeyB9IGRpcmVjdGx5CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0yMzE2NzkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvc3R5bGUvY2hlY2tlcnMvY3BwLnB5Ogor
ICAgICAgICAoY2hlY2tfY2FsbG9ubWFpbnRocmVhZCk6CisgICAgICAgIChwcm9jZXNzX2xpbmUp
OgorICAgICAgICAoY2hlY2tfbWFrZXdlYWtwdHIpOiBEZWxldGVkLgorICAgICAgICAqIFRlc3RX
ZWJLaXRBUEkvVGVzdHMvV1RGL09ic2VydmVyLmNwcDoKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6
OlRFU1QpOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL1dlYWtQdHIuY3BwOgor
ICAgICAgICAoVGVzdFdlYktpdEFQSTo6bWFrZVdlYWtQdHIpOgorCiAyMDIxLTEwLTEyICBKb25h
dGhhbiBCZWRhcmQgIDxqYmVkYXJkQGFwcGxlLmNvbT4KIAogICAgICAgICBbQXBwbGVTaWxpY29u
XSBTdXBwb3J0IG5hdGl2ZSBzaW11bGF0b3IgdGVzdGluZwpkaWZmIC0tZ2l0IGEvVG9vbHMvU2Ny
aXB0cy93ZWJraXRweS9zdHlsZS9jaGVja2Vycy9jcHAucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtp
dHB5L3N0eWxlL2NoZWNrZXJzL2NwcC5weQppbmRleCBlZDZjMTgxNzdlMTc4OWM3ZDJjODY1MzM0
NTcyNTU2MGYzZWFmZGVmLi44OTg1ZjkxOTcyZTljY2YxYmQ1NWRlYzIyOThhZGJmMzc4OWU1YTYy
IDEwMDY0NAotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3N0eWxlL2NoZWNrZXJzL2NwcC5w
eQorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3N0eWxlL2NoZWNrZXJzL2NwcC5weQpAQCAt
Mjc0MywyMyArMjc0Myw2IEBAIGRlZiBjaGVja19jYWxsb25tYWludGhyZWFkKGZpbGVuYW1lLCBj
bGVhbl9saW5lcywgbGluZV9udW1iZXIsIGZpbGVfc3RhdGUsIGVycm9yCiAgICAgICAgIGVycm9y
KGxpbmVfbnVtYmVyLCAncnVudGltZS9jYWxsb25tYWludGhyZWFkJywgNCwgIlVzZSAnY2FsbE9u
TWFpblJ1bkxvb3BBbmRXYWl0KCknIGluc3RlYWQgb2YgJ2NhbGxPbk1haW5UaHJlYWRBbmRXYWl0
KCknIGluIFNvdXJjZS9XZWJLaXQuIikKIAogCi1kZWYgY2hlY2tfbWFrZXdlYWtwdHIoY2xlYW5f
bGluZXMsIGxpbmVfbnVtYmVyLCBmaWxlX3N0YXRlLCBlcnJvcik6Ci0gICAgIiIiTG9va3MgZm9y
IHVzZSBvZiBsZWdhY3kgJ21ha2VXZWFrUHRyKCknLgotCi0gICAgQXJnczoKLSAgICAgIGNsZWFu
X2xpbmVzOiBBIENsZWFuc2VkTGluZXMgaW5zdGFuY2UgY29udGFpbmluZyB0aGUgZmlsZS4KLSAg
ICAgIGxpbmVfbnVtYmVyOiBUaGUgbnVtYmVyIG9mIHRoZSBsaW5lIHRvIGNoZWNrLgotICAgICAg
ZmlsZV9zdGF0ZTogQSBfRmlsZVN0YXRlIGluc3RhbmNlIHdoaWNoIG1haW50YWlucyBpbmZvcm1h
dGlvbiBhYm91dAotICAgICAgICAgICAgICAgICAgdGhlIHN0YXRlIG9mIHRoaW5ncyBpbiB0aGUg
ZmlsZS4KLSAgICAgIGVycm9yOiBUaGUgZnVuY3Rpb24gdG8gY2FsbCB3aXRoIGFueSBlcnJvcnMg
Zm91bmQuCi0gICAgIiIiCi0KLSAgICBsaW5lID0gY2xlYW5fbGluZXMuZWxpZGVkW2xpbmVfbnVt
YmVyXSAgIyBHZXQgcmlkIG9mIGNvbW1lbnRzIGFuZCBzdHJpbmdzLgotICAgIHVzaW5nX21ha2V3
ZWFrcHRyID0gc2VhcmNoKHInXGJtYWtlV2Vha1B0clxzKlwoJywgbGluZSkKLSAgICBpZiB1c2lu
Z19tYWtld2Vha3B0cjoKLSAgICAgICAgZXJyb3IobGluZV9udW1iZXIsICdydW50aW1lL21ha2V3
ZWFrcHRyJywgNCwgIlVzZSBXZWFrUHRyIHsgfSBkaXJlY3RseSBpbnN0ZWFkIG9mICdtYWtlV2Vh
a1B0cigpJy4iKQotCi0KIGRlZiBjaGVja19pc21haW50aHJlYWQoZmlsZW5hbWUsIGNsZWFuX2xp
bmVzLCBsaW5lX251bWJlciwgZmlsZV9zdGF0ZSwgZXJyb3IpOgogICAgICIiIkxvb2tzIGZvciB1
c2Ugb2YgJ2lzTWFpblRocmVhZCgpJyB3aGljaCBzaG91bGQgYmUgcmVwbGFjZWQgd2l0aCAnaXNN
YWluUnVuTG9vcCgpJy4KIApAQCAtNDUyMCw3ICs0NTAzLDYgQEAgZGVmIHByb2Nlc3NfbGluZShm
aWxlbmFtZSwgZmlsZV9leHRlbnNpb24sCiAgICAgY2hlY2tfZm9yX25vbl9zdGFuZGFyZF9jb25z
dHJ1Y3RzKGNsZWFuX2xpbmVzLCBsaW5lLCBjbGFzc19zdGF0ZSwgZXJyb3IpCiAgICAgY2hlY2tf
cG9zaXhfdGhyZWFkaW5nKGNsZWFuX2xpbmVzLCBsaW5lLCBlcnJvcikKICAgICBjaGVja19pbnZh
bGlkX2luY3JlbWVudChjbGVhbl9saW5lcywgbGluZSwgZXJyb3IpCi0gICAgY2hlY2tfbWFrZXdl
YWtwdHIoY2xlYW5fbGluZXMsIGxpbmUsIGZpbGVfc3RhdGUsIGVycm9yKQogICAgIGNoZWNrX29z
X3ZlcnNpb25fY2hlY2tzKGZpbGVuYW1lLCBjbGVhbl9saW5lcywgbGluZSwgZXJyb3IpCiAgICAg
Y2hlY2tfY2FsbG9ubWFpbnRocmVhZChmaWxlbmFtZSwgY2xlYW5fbGluZXMsIGxpbmUsIGZpbGVf
c3RhdGUsIGVycm9yKQogICAgIGNoZWNrX2lzbWFpbnRocmVhZChmaWxlbmFtZSwgY2xlYW5fbGlu
ZXMsIGxpbmUsIGZpbGVfc3RhdGUsIGVycm9yKQpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktp
dEFQSS9UZXN0cy9XVEYvT2JzZXJ2ZXIuY3BwIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9X
VEYvT2JzZXJ2ZXIuY3BwCmluZGV4IDk4MmJmMmI4NzI0Y2Q3Zjg5OWM3M2IyODRiYTE5Nzk3NGFk
ZjQzMTYuLjEwZDBlOGE0YzBlOTE5YjQ4ZmQ3MDU2YWU3NmY4MDliZmZjYzk0NTUgMTAwNjQ0Ci0t
LSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL09ic2VydmVyLmNwcAorKysgYi9Ub29s
cy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9PYnNlcnZlci5jcHAKQEAgLTQ5LDcgKzQ5LDcgQEAg
VEVTVChXVEZfT2JzZXJ2ZXIsIFdlYWspCiAgICAgICAgIHRlc3RWYWx1ZSA9IHZhbHVlOwogICAg
IH0pOwogCi0gICAgYXV0byB3ZWFrT2JzZXJ2ZXIgPSBtYWtlV2Vha1B0cih1bmlxdWVPYnNlcnZl
ci5nZXQoKSk7CisgICAgV2Vha1B0ciB3ZWFrT2JzZXJ2ZXIgPSB1bmlxdWVPYnNlcnZlci5nZXQo
KTsKIAogICAgIEFTU0VSVF9UUlVFKHN0YXRpY19jYXN0PGJvb2w+KHdlYWtPYnNlcnZlcikpOwog
CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9XZWFrUHRyLmNwcCBi
L1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL1dlYWtQdHIuY3BwCmluZGV4IDdiNTY0MzZk
MWQyNDI5NmVjODY1N2I2YzEwNWI5MmVlM2FjYzNlZmIuLjdhNTAxYTQ1OTJiZGRhOTM4ODhhNDg5
NWVhZjU1ODUzYTRkYjkyMzggMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMv
V1RGL1dlYWtQdHIuY3BwCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL1dlYWtQ
dHIuY3BwCkBAIC00NCw2ICs0NCwyMCBAQCB0ZW1wbGF0ZTx0eXBlbmFtZSBUPiB1c2luZyBXZWFr
SGFzaFNldCA9IFdURjo6V2Vha0hhc2hTZXQ8VCwgV2Vha1B0ckNvdW50ZXI+OwogdGVtcGxhdGU8
dHlwZW5hbWUgVD4gdXNpbmcgV2Vha1B0ciA9IFdURjo6V2Vha1B0cjxULCBXZWFrUHRyQ291bnRl
cj47CiB0ZW1wbGF0ZTx0eXBlbmFtZSBUPiB1c2luZyBXZWFrUHRyRmFjdG9yeSA9IFdURjo6V2Vh
a1B0ckZhY3Rvcnk8VCwgV2Vha1B0ckNvdW50ZXI+OwogCisvLyBGSVhNRTogRHJvcCB3aGVuIHdl
IHN1cHBvcnQgQysrMjAuIEMrKzE3IGRvZXMgbm90IHN1cHBvcnQgdGVtcGxhdGUgcGFyYW1ldGVy
IGRlZHVjdGlvbiBmb3IgYWxpYXNlcyBhbmQgV2Vha1B0ciBpcyBhbiBhbGlhcyBpbiB0aGlzIGZp
bGUuCit0ZW1wbGF0ZTx0eXBlbmFtZSBULCB0eXBlbmFtZSA9IHN0ZDo6ZW5hYmxlX2lmX3Q8IUlz
U21hcnRQdHI8VD46OnZhbHVlPj4gaW5saW5lIGF1dG8gbWFrZVdlYWtQdHIoVCYgb2JqZWN0LCBF
bmFibGVXZWFrUHRyVGhyZWFkaW5nQXNzZXJ0aW9ucyBlbmFibGVXZWFrUHRyVGhyZWFkaW5nQXNz
ZXJ0aW9ucyA9IEVuYWJsZVdlYWtQdHJUaHJlYWRpbmdBc3NlcnRpb25zOjpZZXMpCit7CisgICAg
cmV0dXJuIG9iamVjdC53ZWFrUHRyRmFjdG9yeSgpLnRlbXBsYXRlIGNyZWF0ZVdlYWtQdHI8VD4o
b2JqZWN0LCBlbmFibGVXZWFrUHRyVGhyZWFkaW5nQXNzZXJ0aW9ucyk7Cit9CisKKy8vIEZJWE1F
OiBEcm9wIHdoZW4gd2Ugc3VwcG9ydCBDKysyMC4gQysrMTcgZG9lcyBub3Qgc3VwcG9ydCB0ZW1w
bGF0ZSBwYXJhbWV0ZXIgZGVkdWN0aW9uIGZvciBhbGlhc2VzIGFuZCBXZWFrUHRyIGlzIGFuIGFs
aWFzIGluIHRoaXMgZmlsZS4KK3RlbXBsYXRlPHR5cGVuYW1lIFQsIHR5cGVuYW1lID0gc3RkOjpl
bmFibGVfaWZfdDwhSXNTbWFydFB0cjxUPjo6dmFsdWU+PiBpbmxpbmUgYXV0byBtYWtlV2Vha1B0
cihUKiBwdHIsIEVuYWJsZVdlYWtQdHJUaHJlYWRpbmdBc3NlcnRpb25zIGVuYWJsZVdlYWtQdHJU
aHJlYWRpbmdBc3NlcnRpb25zID0gRW5hYmxlV2Vha1B0clRocmVhZGluZ0Fzc2VydGlvbnM6Olll
cykgLT4gZGVjbHR5cGUobWFrZVdlYWtQdHIoKnB0cikpCit7CisgICAgaWYgKCFwdHIpCisgICAg
ICAgIHJldHVybiB7IH07CisgICAgcmV0dXJuIG1ha2VXZWFrUHRyKCpwdHIsIGVuYWJsZVdlYWtQ
dHJUaHJlYWRpbmdBc3NlcnRpb25zKTsKK30KKwogc3RydWN0IEludCA6IHB1YmxpYyBDYW5NYWtl
V2Vha1B0cjxJbnQ+IHsKICAgICBJbnQoaW50IGkpIDogbV9pKGkpIHsgfQogICAgIG9wZXJhdG9y
IGludCgpIGNvbnN0IHsgcmV0dXJuIG1faTsgfQo=
</data>
<flag name="commit-queue"
          id="465232"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>441095</attachid>
            <date>2021-10-13 10:08:08 -0700</date>
            <delta_ts>2021-10-13 10:39:10 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-231679-20211013100807.patch</filename>
            <type>text/plain</type>
            <size>210426</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg0MDkzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IGUwYjcxYTY3ZTE1ZGYxNjMxMWIyNWE5
NmU0YTk2MDhlMWY4NmI1YWQuLmEwNTA5YjhjZDFjMjJmMGRmOTgxZTFjYjBlNDU0YmE2MWNmNjJk
ODQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIwMjEtMTAtMTMgIENocmlzIER1bWV6ICA8Y2R1bWV6
QGFwcGxlLmNvbT4KKworICAgICAgICBEcm9wIG1ha2VXZWFrUHRyKCkgYW5kIHVzZSBXZWFrUHRy
IHsgfSBkaXJlY3RseQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MjMxNjc5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgKiB3dGYvV2Vha0hhc2hNYXAuaDoKKyAgICAgICAgKiB3dGYvV2Vha0hhc2hTZXQuaDoK
KyAgICAgICAgKFdURjo6Y29weVRvVmVjdG9yKToKKyAgICAgICAgKiB3dGYvV2Vha1B0ci5oOgor
ICAgICAgICAoV1RGOjptYWtlV2Vha1B0cik6IERlbGV0ZWQuCisKIDIwMjEtMTAtMTMgIENocmlz
IER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KIAogICAgICAgICBTdG9wIHVzaW5nIG1ha2VXZWFr
UHRyKCkgaW4gV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIv
U291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IDJjNDUxYTc1ZjIyZjY2MDQ0NmU4MGRlOThm
YjllMjUwYjU2ZjY3ZjEuLjZlYzdiM2U5Zjc3NzdjZTk3NjQzYWJmODA5NWViZGQ3YjE0NzYwYTIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxOCBAQAorMjAyMS0xMC0xMyAgQ2hyaXMgRHVtZXogIDxj
ZHVtZXpAYXBwbGUuY29tPgorCisgICAgICAgIERyb3AgbWFrZVdlYWtQdHIoKSBhbmQgdXNlIFdl
YWtQdHIgeyB9IGRpcmVjdGx5CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0yMzE2NzkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICAqIE1vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVtU3luY0FjY2Vz
c0hhbmRsZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRs
ZTo6dHJ1bmNhdGUpOgorICAgICAgICAoV2ViQ29yZTo6RmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5k
bGU6OmdldFNpemUpOgorICAgICAgICAoV2ViQ29yZTo6RmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5k
bGU6OmZsdXNoKToKKyAgICAgICAgKFdlYkNvcmU6OkZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxl
OjpjbG9zZSk6CisgICAgICAgICogZG9tL0VsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
RWxlbWVudDo6YWRkU2hhZG93Um9vdCk6CisKIDIwMjEtMTAtMTMgIENocmlzIER1bWV6ICA8Y2R1
bWV6QGFwcGxlLmNvbT4KIAogICAgICAgICBTdG9wIHVzaW5nIG1ha2VXZWFrUHRyKCkgaW4gV2Vi
Q29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0
L0NoYW5nZUxvZwppbmRleCA2YTA3M2I5M2FiYzM2NzU3NTk2NTQ1NzQ2Yjc3NDY1OGJiMGJiMGNh
Li4xNzM2NzAwNmViN2QyZjMxOTcxZWRlMTkxMDBkNDE0ODU2OWU4MjNkIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAt
MSwzICsxLDM4MyBAQAorMjAyMS0xMC0xMyAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29t
PgorCisgICAgICAgIERyb3AgbWFrZVdlYWtQdHIoKSBhbmQgdXNlIFdlYWtQdHIgeyB9IGRpcmVj
dGx5CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzE2
NzkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIEdQ
VVByb2Nlc3MvR1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5jcHA6CisgICAgICAgIChXZWJLaXQ6
OkdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OkdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MpOgor
ICAgICAgICAqIEdQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlR3JhcGhpY3NDb250ZXh0R0wuY3Bw
OgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVHcmFwaGljc0NvbnRleHRHTDo6UmVtb3RlR3JhcGhp
Y3NDb250ZXh0R0wpOgorICAgICAgICAqIEdQVVByb2Nlc3MvbWVkaWEvUmVtb3RlQXVkaW9IYXJk
d2FyZUxpc3RlbmVyUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVBdWRpb0hhcmR3
YXJlTGlzdGVuZXJQcm94eTo6UmVtb3RlQXVkaW9IYXJkd2FyZUxpc3RlbmVyUHJveHkpOgorICAg
ICAgICAqIEdQVVByb2Nlc3MvbWVkaWEvUmVtb3RlQXVkaW9UcmFja1Byb3h5LmNwcDoKKyAgICAg
ICAgKFdlYktpdDo6UmVtb3RlQXVkaW9UcmFja1Byb3h5OjpSZW1vdGVBdWRpb1RyYWNrUHJveHkp
OgorICAgICAgICAqIEdQVVByb2Nlc3MvbWVkaWEvUmVtb3RlQ0RNRmFjdG9yeVByb3h5LmNwcDoK
KyAgICAgICAgKFdlYktpdDo6UmVtb3RlQ0RNRmFjdG9yeVByb3h5OjpSZW1vdGVDRE1GYWN0b3J5
UHJveHkpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVDRE1GYWN0b3J5UHJveHk6OmNyZWF0ZUNE
TSk6CisgICAgICAgICogR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVDRE1JbnN0YW5jZVByb3h5LmNw
cDoKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlQ0RNSW5zdGFuY2VQcm94eTo6UmVtb3RlQ0RNSW5z
dGFuY2VQcm94eSk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUNETUluc3RhbmNlUHJveHk6OmNy
ZWF0ZVNlc3Npb24pOgorICAgICAgICAqIEdQVVByb2Nlc3MvbWVkaWEvUmVtb3RlQ0RNSW5zdGFu
Y2VTZXNzaW9uUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVDRE1JbnN0YW5jZVNl
c3Npb25Qcm94eTo6Y3JlYXRlKToKKyAgICAgICAgKiBHUFVQcm9jZXNzL21lZGlhL1JlbW90ZUNE
TVByb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlQ0RNUHJveHk6OmNyZWF0ZUluc3Rh
bmNlKToKKyAgICAgICAgKiBHUFVQcm9jZXNzL21lZGlhL1JlbW90ZUltYWdlRGVjb2RlckFWRlBy
b3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlSW1hZ2VEZWNvZGVyQVZGUHJveHk6OlJl
bW90ZUltYWdlRGVjb2RlckFWRlByb3h5KToKKyAgICAgICAgKiBHUFVQcm9jZXNzL21lZGlhL1Jl
bW90ZUxlZ2FjeUNETUZhY3RvcnlQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUxl
Z2FjeUNETUZhY3RvcnlQcm94eTo6UmVtb3RlTGVnYWN5Q0RNRmFjdG9yeVByb3h5KToKKyAgICAg
ICAgKFdlYktpdDo6UmVtb3RlTGVnYWN5Q0RNRmFjdG9yeVByb3h5OjpjcmVhdGVDRE0pOgorICAg
ICAgICAqIEdQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTGVnYWN5Q0RNUHJveHkuY3BwOgorICAgICAg
ICAoV2ViS2l0OjpSZW1vdGVMZWdhY3lDRE1Qcm94eTo6Y3JlYXRlU2Vzc2lvbik6CisgICAgICAg
ICogR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVBsYXllck1hbmFnZXJQcm94eS5jcHA6Cisg
ICAgICAgIChXZWJLaXQ6OlJlbW90ZU1lZGlhUGxheWVyTWFuYWdlclByb3h5OjpSZW1vdGVNZWRp
YVBsYXllck1hbmFnZXJQcm94eSk6CisgICAgICAgICogR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVN
ZWRpYVBsYXllclByb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlTWVkaWFQbGF5ZXJQ
cm94eTo6UmVtb3RlTWVkaWFQbGF5ZXJQcm94eSk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZU1l
ZGlhUGxheWVyUHJveHk6OnNldExlZ2FjeUNETVNlc3Npb24pOgorICAgICAgICAqIEdQVVByb2Nl
c3MvbWVkaWEvUmVtb3RlTWVkaWFSZXNvdXJjZS5jcHA6CisgICAgICAgIChXZWJLaXQ6OlJlbW90
ZU1lZGlhUmVzb3VyY2U6OlJlbW90ZU1lZGlhUmVzb3VyY2UpOgorICAgICAgICAqIEdQVVByb2Nl
c3MvbWVkaWEvUmVtb3RlTWVkaWFSZXNvdXJjZUxvYWRlci5jcHA6CisgICAgICAgIChXZWJLaXQ6
OlJlbW90ZU1lZGlhUmVzb3VyY2VMb2FkZXI6OlJlbW90ZU1lZGlhUmVzb3VyY2VMb2FkZXIpOgor
ICAgICAgICAqIEdQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFTb3VyY2VQcm94eS5jcHA6Cisg
ICAgICAgIChXZWJLaXQ6OlJlbW90ZU1lZGlhU291cmNlUHJveHk6OlJlbW90ZU1lZGlhU291cmNl
UHJveHkpOgorICAgICAgICAqIEdQVVByb2Nlc3MvbWVkaWEvUmVtb3RlUmVtb3RlQ29tbWFuZExp
c3RlbmVyUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVSZW1vdGVDb21tYW5kTGlz
dGVuZXJQcm94eTo6UmVtb3RlUmVtb3RlQ29tbWFuZExpc3RlbmVyUHJveHkpOgorICAgICAgICAq
IEdQVVByb2Nlc3MvbWVkaWEvUmVtb3RlU291cmNlQnVmZmVyUHJveHkuY3BwOgorICAgICAgICAo
V2ViS2l0OjpSZW1vdGVTb3VyY2VCdWZmZXJQcm94eTo6UmVtb3RlU291cmNlQnVmZmVyUHJveHkp
OgorICAgICAgICAqIEdQVVByb2Nlc3MvbWVkaWEvUmVtb3RlVGV4dFRyYWNrUHJveHkuY3BwOgor
ICAgICAgICAoV2ViS2l0OjpSZW1vdGVUZXh0VHJhY2tQcm94eTo6UmVtb3RlVGV4dFRyYWNrUHJv
eHkpOgorICAgICAgICAqIEdQVVByb2Nlc3MvbWVkaWEvUmVtb3RlVmlkZW9UcmFja1Byb3h5LmNw
cDoKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlVmlkZW9UcmFja1Byb3h5OjpSZW1vdGVWaWRlb1Ry
YWNrUHJveHkpOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL0NsYXNzaWZpZXIvV2ViUmVzb3Vy
Y2VMb2FkU3RhdGlzdGljc1N0b3JlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUmVzb3VyY2VM
b2FkU3RhdGlzdGljc1N0b3JlOjpXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmUpOgorICAg
ICAgICAqIE5ldHdvcmtQcm9jZXNzL0Rvd25sb2Fkcy9jb2NvYS9XS0Rvd25sb2FkUHJvZ3Jlc3Mu
bW06CisgICAgICAgICgtW1dLRG93bmxvYWRQcm9ncmVzcyBpbml0V2l0aERvd25sb2FkVGFzazpk
b3dubG9hZDpVUkw6c2FuZGJveEV4dGVuc2lvbjpdKToKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vz
cy9OZXR3b3JrQ09SU1ByZWZsaWdodENoZWNrZXIuY3BwOgorICAgICAgICAoV2ViS2l0OjpOZXR3
b3JrQ09SU1ByZWZsaWdodENoZWNrZXI6Ok5ldHdvcmtDT1JTUHJlZmxpZ2h0Q2hlY2tlcik6Cisg
ICAgICAgICogTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuY3Bw
OgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6ZXN0YWJs
aXNoU1dTZXJ2ZXJDb25uZWN0aW9uKToKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3Jr
RGF0YVRhc2suY3BwOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrRGF0YVRhc2s6Ok5ldHdvcmtE
YXRhVGFzayk6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvTmV0d29ya0xvYWQuY3BwOgorICAg
ICAgICAoV2ViS2l0OjpOZXR3b3JrTG9hZDo6c3RhcnRXaXRoU2NoZWR1bGluZyk6CisgICAgICAg
ICogTmV0d29ya1Byb2Nlc3MvTmV0d29ya0xvYWRDaGVja2VyLmNwcDoKKyAgICAgICAgKFdlYktp
dDo6TmV0d29ya0xvYWRDaGVja2VyOjpOZXR3b3JrTG9hZENoZWNrZXIpOgorICAgICAgICAqIE5l
dHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmNwcDoKKyAgICAgICAgKFdlYktpdDo6TmV0d29y
a1Byb2Nlc3M6OnByZWNvbm5lY3RUbyk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNz
OjpkZWxldGVBbmRSZXN0cmljdFdlYnNpdGVEYXRhRm9yUmVnaXN0cmFibGVEb21haW5zKToKKyAg
ICAgICAgKFdlYktpdDo6TmV0d29ya1Byb2Nlc3M6OnNpbXVsYXRlUmVzb3VyY2VMb2FkU3RhdGlz
dGljc1Nlc3Npb25SZXN0YXJ0KToKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUmVz
b3VyY2VMb2FkZXIuY3BwOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUmVzb3VyY2VMb2FkZXI6
OnNlbmREaWRSZWNlaXZlUmVzcG9uc2VQb3RlbnRpYWxseUluTmV3QnJvd3NpbmdDb250ZXh0R3Jv
dXApOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtTb2NrZXRDaGFubmVsLmNwcDoK
KyAgICAgICAgKFdlYktpdDo6TmV0d29ya1NvY2tldENoYW5uZWw6Ok5ldHdvcmtTb2NrZXRDaGFu
bmVsKToKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrU3RvcmFnZVNlc3Npb25Qcm92
aWRlci5oOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL1ByaXZhdGVDbGlja01lYXN1cmVtZW50
L1ByaXZhdGVDbGlja01lYXN1cmVtZW50Q2xpZW50SW1wbC5jcHA6CisgICAgICAgIChXZWJLaXQ6
OlBDTTo6Q2xpZW50SW1wbDo6Q2xpZW50SW1wbCk6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3Mv
UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRDb25uZWN0aW9u
LmNwcDoKKyAgICAgICAgKFdlYktpdDo6UENNOjpDb25uZWN0aW9uVG9NYWNoU2VydmljZTo6Q29u
bmVjdGlvblRvTWFjaFNlcnZpY2UpOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL1ByaXZhdGVD
bGlja01lYXN1cmVtZW50L2NvY29hL1ByaXZhdGVDbGlja01lYXN1cmVtZW50Q29ubmVjdGlvbkNv
Y29hLm1tOgorICAgICAgICAoV2ViS2l0OjpQQ006OkNvbm5lY3Rpb25Ub01hY2hTZXJ2aWNlOjpp
bml0aWFsaXplQ29ubmVjdGlvbklmTmVlZGVkIGNvbnN0KToKKyAgICAgICAgKiBOZXR3b3JrUHJv
Y2Vzcy9TZXJ2aWNlV29ya2VyL1NlcnZpY2VXb3JrZXJGZXRjaFRhc2suY3BwOgorICAgICAgICAo
V2ViS2l0OjpTZXJ2aWNlV29ya2VyRmV0Y2hUYXNrOjpTZXJ2aWNlV29ya2VyRmV0Y2hUYXNrKToK
KyAgICAgICAgKFdlYktpdDo6U2VydmljZVdvcmtlckZldGNoVGFzazo6c3RhcnQpOgorICAgICAg
ICAqIE5ldHdvcmtQcm9jZXNzL1NlcnZpY2VXb3JrZXIvU2VydmljZVdvcmtlclNvZnRVcGRhdGVM
b2FkZXIuY3BwOgorICAgICAgICAoV2ViS2l0OjpTZXJ2aWNlV29ya2VyU29mdFVwZGF0ZUxvYWRl
cjo6U2VydmljZVdvcmtlclNvZnRVcGRhdGVMb2FkZXIpOgorICAgICAgICAqIE5ldHdvcmtQcm9j
ZXNzL1NlcnZpY2VXb3JrZXIvV2ViU1dTZXJ2ZXJUb0NvbnRleHRDb25uZWN0aW9uLmNwcDoKKyAg
ICAgICAgKFdlYktpdDo6V2ViU1dTZXJ2ZXJUb0NvbnRleHRDb25uZWN0aW9uOjpXZWJTV1NlcnZl
clRvQ29udGV4dENvbm5lY3Rpb24pOgorICAgICAgICAoV2ViS2l0OjpXZWJTV1NlcnZlclRvQ29u
dGV4dENvbm5lY3Rpb246OnJlZ2lzdGVyRmV0Y2gpOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNz
L1dlYlN0b3JhZ2UvU3RvcmFnZUFyZWEuY3BwOgorICAgICAgICAoV2ViS2l0OjpTdG9yYWdlQXJl
YTo6U3RvcmFnZUFyZWEpOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL1dlYlN0b3JhZ2UvU3Rv
cmFnZU1hbmFnZXJTZXQuY3BwOgorICAgICAgICAoV2ViS2l0OjpTdG9yYWdlTWFuYWdlclNldDo6
Y29ubmVjdFRvTG9jYWxTdG9yYWdlQXJlYSk6CisgICAgICAgIChXZWJLaXQ6OlN0b3JhZ2VNYW5h
Z2VyU2V0Ojpjb25uZWN0VG9UcmFuc2llbnRMb2NhbFN0b3JhZ2VBcmVhKToKKyAgICAgICAgKFdl
YktpdDo6U3RvcmFnZU1hbmFnZXJTZXQ6OmNvbm5lY3RUb1Nlc3Npb25TdG9yYWdlQXJlYSk6Cisg
ICAgICAgICogTmV0d29ya1Byb2Nlc3MvY2FjaGUvQ2FjaGVTdG9yYWdlRW5naW5lLmNwcDoKKyAg
ICAgICAgKFdlYktpdDo6Q2FjaGVTdG9yYWdlOjpFbmdpbmU6OkVuZ2luZSk6CisgICAgICAgICog
TmV0d29ya1Byb2Nlc3MvY29jb2EvTmV0d29ya0RhdGFUYXNrQ29jb2EubW06CisgICAgICAgIChX
ZWJLaXQ6Ok5ldHdvcmtEYXRhVGFza0NvY29hOjpOZXR3b3JrRGF0YVRhc2tDb2NvYSk6CisgICAg
ICAgIChXZWJLaXQ6Ok5ldHdvcmtEYXRhVGFza0NvY29hOjpzd2FwU2Vzc2lvbklmTmVjZXNzYXJ5
KToKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9jb2NvYS9OZXR3b3JrU2Vzc2lvbkNvY29hLm1t
OgorICAgICAgICAoLVtXS05ldHdvcmtTZXNzaW9uRGVsZWdhdGUgaW5pdFdpdGhOZXR3b3JrU2Vz
c2lvbjp3cmFwcGVyOndpdGhDcmVkZW50aWFsczpdKToKKyAgICAgICAgKC1bV0tOZXR3b3JrU2Vz
c2lvbkRlbGVnYXRlIFVSTFNlc3Npb246dGFzazpkaWRSZWNlaXZlQ2hhbGxlbmdlOmNvbXBsZXRp
b25IYW5kbGVyOl0pOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrU2Vzc2lvbkNvY29hOjpjcmVh
dGVXZWJTb2NrZXRUYXNrKToKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Nlc3Npb25Db2NvYTo6
YWRkV2ViUGFnZU5ldHdvcmtQYXJhbWV0ZXJzKToKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9z
dG9yYWdlL0ZpbGVTeXN0ZW1TdG9yYWdlSGFuZGxlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6Rmls
ZVN5c3RlbVN0b3JhZ2VIYW5kbGU6OkZpbGVTeXN0ZW1TdG9yYWdlSGFuZGxlKToKKyAgICAgICAg
KiBOZXR3b3JrUHJvY2Vzcy9zdG9yYWdlL0ZpbGVTeXN0ZW1TdG9yYWdlSGFuZGxlUmVnaXN0cnku
Y3BwOgorICAgICAgICAoV2ViS2l0OjpGaWxlU3lzdGVtU3RvcmFnZUhhbmRsZVJlZ2lzdHJ5Ojpy
ZWdpc3RlckhhbmRsZSk6CisgICAgICAgICogUGxhdGZvcm0vSVBDL0Nvbm5lY3Rpb24uY3BwOgor
ICAgICAgICAoSVBDOjpDb25uZWN0aW9uOjphZGRNZXNzYWdlT2JzZXJ2ZXIpOgorICAgICAgICAq
IFBsYXRmb3JtL0lQQy9NZXNzYWdlUmVjZWl2ZXJNYXAuY3BwOgorICAgICAgICAoSVBDOjpNZXNz
YWdlUmVjZWl2ZXJNYXA6OmFkZE1lc3NhZ2VSZWNlaXZlcik6CisgICAgICAgICogUGxhdGZvcm0v
Y29jb2EvV0tQYXltZW50QXV0aG9yaXphdGlvbkRlbGVnYXRlLm1tOgorICAgICAgICAoLVtXS1Bh
eW1lbnRBdXRob3JpemF0aW9uRGVsZWdhdGUgX2luaXRXaXRoUmVxdWVzdDpwcmVzZW50ZXI6XSk6
CisgICAgICAgICogU2hhcmVkL0FwcGxlUGF5L1dlYlBheW1lbnRDb29yZGluYXRvclByb3h5LmNw
cDoKKyAgICAgICAgKFdlYktpdDo6V2ViUGF5bWVudENvb3JkaW5hdG9yUHJveHk6OnNob3dQYXlt
ZW50VUkpOgorICAgICAgICAqIFNoYXJlZC9XZWJTUUxpdGVEYXRhYmFzZVRyYWNrZXIuaDoKKyAg
ICAgICAgKiBTaGFyZWQvWFIvWFJEZXZpY2VQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OlhS
RGV2aWNlUHJveHk6OlhSRGV2aWNlUHJveHkpOgorICAgICAgICAqIFNoYXJlZC9tYWMvU2VjSXRl
bVNoaW0uY3BwOgorICAgICAgICAoV2ViS2l0Ojppbml0aWFsaXplU2VjSXRlbVNoaW0pOgorICAg
ICAgICAqIFVJUHJvY2Vzcy9BUEkvQVBJQXR0YWNobWVudC5jcHA6CisgICAgICAgIChBUEk6OkF0
dGFjaG1lbnQ6OkF0dGFjaG1lbnQpOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQVBJSFRUUENv
b2tpZVN0b3JlLmNwcDoKKyAgICAgICAgKEFQSTo6SFRUUENvb2tpZVN0b3JlOjpIVFRQQ29va2ll
U3RvcmUpOgorICAgICAgICAoQVBJOjpIVFRQQ29va2llU3RvcmU6OnJlZ2lzdGVyT2JzZXJ2ZXIp
OgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQVBJSW5zcGVjdG9yRXh0ZW5zaW9uLmNwcDoKKyAg
ICAgICAgKEFQSTo6SW5zcGVjdG9yRXh0ZW5zaW9uOjpJbnNwZWN0b3JFeHRlbnNpb24pOgorICAg
ICAgICAqIFVJUHJvY2Vzcy9BUEkvQVBJV2ViQXV0aGVudGljYXRpb25QYW5lbC5jcHA6CisgICAg
ICAgIChBUEk6OldlYkF1dGhlbnRpY2F0aW9uUGFuZWw6OldlYkF1dGhlbnRpY2F0aW9uUGFuZWwp
OgorICAgICAgICAoQVBJOjpXZWJBdXRoZW50aWNhdGlvblBhbmVsOjpoYW5kbGVSZXF1ZXN0KToK
KyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlldy5tbToKKyAgICAgICAgKC1b
V0tXZWJWaWV3IF9yZW1vdmVEYXRhRGV0ZWN0ZWRMaW5rczpdKToKKyAgICAgICAgKiBVSVByb2Nl
c3MvQVBJL0NvY29hL1dLV2ViVmlld1Rlc3RpbmcubW06CisgICAgICAgICgtW1dLTWVkaWFTZXNz
aW9uQ29vcmRpbmF0b3JIZWxwZXIgaW5pdFdpdGhDb29yZGluYXRvcjpdKToKKyAgICAgICAgKiBV
SVByb2Nlc3MvQVBJL0NvY29hL19XS1dlYkF1dGhlbnRpY2F0aW9uUGFuZWwubW06CisgICAgICAg
ICgtW19XS1dlYkF1dGhlbnRpY2F0aW9uUGFuZWwgc2V0RGVsZWdhdGU6XSk6CisgICAgICAgICog
VUlQcm9jZXNzL0FQSS9pb3MvV0tXZWJWaWV3SU9TLm1tOgorICAgICAgICAoLVtXS1dlYlZpZXcg
X2RldGVjdERhdGFXaXRoVHlwZXM6Y29tcGxldGlvbkhhbmRsZXI6XSk6CisgICAgICAgICogVUlQ
cm9jZXNzL0NvY29hL0dyb3VwQWN0aXZpdGllcy9Hcm91cEFjdGl2aXRpZXNDb29yZGluYXRvci5t
bToKKyAgICAgICAgKC1bV0tHcm91cEFjdGl2aXRpZXNDb29yZGluYXRvckRlbGVnYXRlIGluaXRX
aXRoUGFyZW50Ol0pOgorICAgICAgICAqIFVJUHJvY2Vzcy9Db2NvYS9MZWdhY3lDdXN0b21Qcm90
b2NvbE1hbmFnZXJDbGllbnQubW06CisgICAgICAgICgtW1dLQ3VzdG9tUHJvdG9jb2xMb2FkZXIg
aW5pdFdpdGhMZWdhY3lDdXN0b21Qcm90b2NvbE1hbmFnZXJQcm94eTpjdXN0b21Qcm90b2NvbElE
OnJlcXVlc3Q6XSk6CisgICAgICAgICogVUlQcm9jZXNzL0NvY29hL05hdmlnYXRpb25TdGF0ZS5t
bToKKyAgICAgICAgKFdlYktpdDo6TmF2aWdhdGlvblN0YXRlOjpOYXZpZ2F0aW9uU3RhdGUpOgor
ICAgICAgICAoV2ViS2l0OjpOYXZpZ2F0aW9uU3RhdGU6Ok5hdmlnYXRpb25DbGllbnQ6Ok5hdmln
YXRpb25DbGllbnQpOgorICAgICAgICAoV2ViS2l0Ojp0cnlJbnRlcmNlcHROYXZpZ2F0aW9uKToK
KyAgICAgICAgKFdlYktpdDo6TmF2aWdhdGlvblN0YXRlOjpIaXN0b3J5Q2xpZW50OjpIaXN0b3J5
Q2xpZW50KToKKyAgICAgICAgKiBVSVByb2Nlc3MvQ29jb2EvU09BdXRob3JpemF0aW9uL1BvcFVw
U09BdXRob3JpemF0aW9uU2Vzc2lvbi5tbToKKyAgICAgICAgKC1bV0tTT1NlY3JldERlbGVnYXRl
IGluaXRXaXRoU2Vzc2lvbjpdKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQ29jb2EvU09BdXRob3Jp
emF0aW9uL1NPQXV0aG9yaXphdGlvblNlc3Npb24ubW06CisgICAgICAgIChXZWJLaXQ6OlNPQXV0
aG9yaXphdGlvblNlc3Npb246OlNPQXV0aG9yaXphdGlvblNlc3Npb24pOgorICAgICAgICAqIFVJ
UHJvY2Vzcy9Db2NvYS9VSURlbGVnYXRlLm1tOgorICAgICAgICAoV2ViS2l0OjpVSURlbGVnYXRl
OjpDb250ZXh0TWVudUNsaWVudDo6Q29udGV4dE1lbnVDbGllbnQpOgorICAgICAgICAoV2ViS2l0
OjpVSURlbGVnYXRlOjpVSUNsaWVudDo6VUlDbGllbnQpOgorICAgICAgICAoV2ViS2l0OjpVSURl
bGVnYXRlOjpVSUNsaWVudDo6ZGVjaWRlUG9saWN5Rm9yR2VvbG9jYXRpb25QZXJtaXNzaW9uUmVx
dWVzdCk6CisgICAgICAgIChXZWJLaXQ6OlVJRGVsZWdhdGU6OlVJQ2xpZW50OjpzaG91bGRBbGxv
d0RldmljZU9yaWVudGF0aW9uQW5kTW90aW9uQWNjZXNzKToKKyAgICAgICAgKiBVSVByb2Nlc3Mv
Q29jb2EvV2ViUGFzdGVib2FyZFByb3h5Q29jb2EubW06CisgICAgICAgIChXZWJLaXQ6OldlYlBh
c3RlYm9hcmRQcm94eTo6Z3JhbnRBY2Nlc3MpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYXN0ZWJv
YXJkUHJveHk6OmRpZE1vZGlmeUNvbnRlbnRzT2ZQYXN0ZWJvYXJkKToKKyAgICAgICAgKFdlYktp
dDo6V2ViUGFzdGVib2FyZFByb3h5OjpQYXN0ZWJvYXJkQWNjZXNzSW5mb3JtYXRpb246OmdyYW50
QWNjZXNzKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQ29jb2EvV2ViUHJvY2Vzc1Bvb2xDb2NvYS5t
bToKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzc1Bvb2w6OnNldE1lZGlhQWNjZXNzaWJpbGl0
eVByZWZlcmVuY2VzKToKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzc1Bvb2w6OnJlZ2lzdGVy
Tm90aWZpY2F0aW9uT2JzZXJ2ZXJzKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQ29jb2EvV2ViVmll
d0ltcGwubW06CisgICAgICAgICgtW1dLRE9NUGFzdGVNZW51RGVsZWdhdGUgaW5pdFdpdGhXZWJW
aWV3SW1wbDpdKToKKyAgICAgICAgKiBVSVByb2Nlc3MvRG93bmxvYWRzL0Rvd25sb2FkUHJveHku
Y3BwOgorICAgICAgICAoV2ViS2l0OjpEb3dubG9hZFByb3h5OjpEb3dubG9hZFByb3h5KToKKyAg
ICAgICAgKiBVSVByb2Nlc3MvR1BVL0dQVVByb2Nlc3NQcm94eS5jcHA6CisgICAgICAgIChXZWJL
aXQ6OkdQVVByb2Nlc3NQcm94eTo6Z2V0T3JDcmVhdGUpOgorICAgICAgICAqIFVJUHJvY2Vzcy9J
bnNwZWN0b3IvSW5zcGVjdG9yVGFyZ2V0UHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpJbnNw
ZWN0b3JUYXJnZXRQcm94eTo6Y3JlYXRlKToKKyAgICAgICAgKiBVSVByb2Nlc3MvSW5zcGVjdG9y
L1dlYkluc3BlY3RvclVJRXh0ZW5zaW9uQ29udHJvbGxlclByb3h5LmNwcDoKKyAgICAgICAgKFdl
YktpdDo6V2ViSW5zcGVjdG9yVUlFeHRlbnNpb25Db250cm9sbGVyUHJveHk6OldlYkluc3BlY3Rv
clVJRXh0ZW5zaW9uQ29udHJvbGxlclByb3h5KToKKyAgICAgICAgKiBVSVByb2Nlc3MvTGF1bmNo
ZXIvbWFjL1Byb2Nlc3NMYXVuY2hlck1hYy5tbToKKyAgICAgICAgKFdlYktpdDo6UHJvY2Vzc0xh
dW5jaGVyOjpsYXVuY2hQcm9jZXNzKToKKyAgICAgICAgKiBVSVByb2Nlc3MvTWVkaWEvUmVtb3Rl
TWVkaWFTZXNzaW9uQ29vcmRpbmF0b3JQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OlJlbW90
ZU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yUHJveHk6OlJlbW90ZU1lZGlhU2Vzc2lvbkNvb3JkaW5h
dG9yUHJveHkpOgorICAgICAgICAqIFVJUHJvY2Vzcy9NZWRpYUtleVN5c3RlbVBlcm1pc3Npb25S
ZXF1ZXN0UHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpNZWRpYUtleVN5c3RlbVBlcm1pc3Np
b25SZXF1ZXN0UHJveHk6Ok1lZGlhS2V5U3lzdGVtUGVybWlzc2lvblJlcXVlc3RQcm94eSk6Cisg
ICAgICAgICogVUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5jcHA6CisgICAg
ICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzUHJveHk6OmRpZFJlY2VpdmVBdXRoZW50aWNhdGlv
bkNoYWxsZW5nZSk6CisgICAgICAgICogVUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQ
cm94eUNvY29hLm1tOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUHJvY2Vzc1Byb3h5OjpYUENF
dmVudEhhbmRsZXI6OlhQQ0V2ZW50SGFuZGxlcik6CisgICAgICAgICogVUlQcm9jZXNzL1BERi9X
S1BERkhVRFZpZXcubW06CisgICAgICAgICgtW1dLUERGSFVEVmlldyBpbml0V2l0aEZyYW1lOnBs
dWdpbklkZW50aWZpZXI6cGFnZTpdKToKKyAgICAgICAgKiBVSVByb2Nlc3MvU3BlZWNoUmVjb2du
aXRpb25QZXJtaXNzaW9uUmVxdWVzdC5oOgorICAgICAgICAoV2ViS2l0OjpTcGVlY2hSZWNvZ25p
dGlvblBlcm1pc3Npb25SZXF1ZXN0OjpTcGVlY2hSZWNvZ25pdGlvblBlcm1pc3Npb25SZXF1ZXN0
KToKKyAgICAgICAgKiBVSVByb2Nlc3MvU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1l
ZGlhU291cmNlLmNwcDoKKyAgICAgICAgKiBVSVByb2Nlc3MvU3BlZWNoUmVjb2duaXRpb25SZW1v
dGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlci5jcHA6CisgICAgICAgIChXZWJLaXQ6OlNwZWVj
aFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXI6OmFkZFNvdXJjZSk6
CisgICAgICAgICogVUlQcm9jZXNzL1ZpZXdHZXN0dXJlQ29udHJvbGxlci5jcHA6CisgICAgICAg
IChXZWJLaXQ6OlZpZXdHZXN0dXJlQ29udHJvbGxlcjo6c2V0QWx0ZXJuYXRlQmFja0ZvcndhcmRM
aXN0U291cmNlUGFnZSk6CisgICAgICAgICogVUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL0F1
dGhlbnRpY2F0b3IuaDoKKyAgICAgICAgKFdlYktpdDo6QXV0aGVudGljYXRvcjo6c2V0T2JzZXJ2
ZXIpOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9BdXRoZW50aWNhdG9y
TWFuYWdlci5jcHA6CisgICAgICAgIChXZWJLaXQ6OkF1dGhlbnRpY2F0b3JNYW5hZ2VyOjpydW5Q
YW5lbCk6CisgICAgICAgIChXZWJLaXQ6OkF1dGhlbnRpY2F0b3JNYW5hZ2VyOjpkaXNwYXRjaFBh
bmVsQ2xpZW50Q2FsbCBjb25zdCk6CisgICAgICAgICogVUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0
aW9uL0F1dGhlbnRpY2F0b3JUcmFuc3BvcnRTZXJ2aWNlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6
QXV0aGVudGljYXRvclRyYW5zcG9ydFNlcnZpY2U6OkF1dGhlbnRpY2F0b3JUcmFuc3BvcnRTZXJ2
aWNlKToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViQXV0aGVudGljYXRpb24vQ29jb2EvQXV0aGVu
dGljYXRvclByZXNlbnRlckNvb3JkaW5hdG9yLm1tOgorICAgICAgICAoV2ViS2l0OjpBdXRoZW50
aWNhdG9yUHJlc2VudGVyQ29vcmRpbmF0b3I6OkF1dGhlbnRpY2F0b3JQcmVzZW50ZXJDb29yZGlu
YXRvcik6CisgICAgICAgICogVUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL0NvY29hL05mY0Nv
bm5lY3Rpb24ubW06CisgICAgICAgIChXZWJLaXQ6Ok5mY0Nvbm5lY3Rpb246Ok5mY0Nvbm5lY3Rp
b24pOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9Db2NvYS9XS0FTQ0F1
dGhvcml6YXRpb25QcmVzZW50ZXJEZWxlZ2F0ZS5tbToKKyAgICAgICAgKC1bV0tBU0NBdXRob3Jp
emF0aW9uUHJlc2VudGVyRGVsZWdhdGUgaW5pdFdpdGhDb29yZGluYXRvcjpdKToKKyAgICAgICAg
KiBVSVByb2Nlc3MvV2ViQXV0aGVudGljYXRpb24vQ29jb2EvV0tORlJlYWRlclNlc3Npb25EZWxl
Z2F0ZS5tbToKKyAgICAgICAgKC1bV0tORlJlYWRlclNlc3Npb25EZWxlZ2F0ZSBpbml0V2l0aENv
bm5lY3Rpb246XSk6CisgICAgICAgICogVUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL0NvY29h
L1dlYkF1dGhlbnRpY2F0b3JDb29yZGluYXRvclByb3h5Lm1tOgorICAgICAgICAoV2ViS2l0OjpX
ZWJBdXRoZW50aWNhdG9yQ29vcmRpbmF0b3JQcm94eTo6cGVyZm9ybVJlcXVlc3QpOgorICAgICAg
ICAqIFVJUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9XZWJBdXRoZW50aWNhdG9yQ29vcmRpbmF0
b3JQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYkF1dGhlbnRpY2F0b3JDb29yZGluYXRv
clByb3h5OjptYWtlQ3JlZGVudGlhbCk6CisgICAgICAgIChXZWJLaXQ6OldlYkF1dGhlbnRpY2F0
b3JDb29yZGluYXRvclByb3h5OjpnZXRBc3NlcnRpb24pOgorICAgICAgICAqIFVJUHJvY2Vzcy9X
ZWJBdXRoZW50aWNhdGlvbi9maWRvL0ZpZG9TZXJ2aWNlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6
Rmlkb1NlcnZpY2U6OmdldEluZm8pOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJDb250ZXh0TWVu
dUxpc3RlbmVyUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJDb250ZXh0TWVudUxpc3Rl
bmVyUHJveHk6OldlYkNvbnRleHRNZW51TGlzdGVuZXJQcm94eSk6CisgICAgICAgICogVUlQcm9j
ZXNzL1dlYkNvbnRleHRNZW51UHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJDb250ZXh0
TWVudVByb3h5OjpXZWJDb250ZXh0TWVudVByb3h5KToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2Vi
Q29va2llTWFuYWdlclByb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViQ29va2llTWFuYWdl
clByb3h5OjpXZWJDb29raWVNYW5hZ2VyUHJveHkpOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJE
YXRhTGlzdFN1Z2dlc3Rpb25zRHJvcGRvd24uY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJEYXRh
TGlzdFN1Z2dlc3Rpb25zRHJvcGRvd246OldlYkRhdGFMaXN0U3VnZ2VzdGlvbnNEcm9wZG93bik6
CisgICAgICAgICogVUlQcm9jZXNzL1dlYkRhdGVUaW1lUGlja2VyLmNwcDoKKyAgICAgICAgKFdl
YktpdDo6V2ViRGF0ZVRpbWVQaWNrZXI6OldlYkRhdGVUaW1lUGlja2VyKToKKyAgICAgICAgKiBV
SVByb2Nlc3MvV2ViRWRpdENvbW1hbmRQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYkVk
aXRDb21tYW5kUHJveHk6OldlYkVkaXRDb21tYW5kUHJveHkpOgorICAgICAgICAqIFVJUHJvY2Vz
cy9XZWJGcmFtZVByb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViRnJhbWVQcm94eTo6V2Vi
RnJhbWVQcm94eSk6CisgICAgICAgICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHA6CisgICAg
ICAgIChXZWJLaXQ6OlBhZ2VDbGllbnRQcm90ZWN0b3I6OlBhZ2VDbGllbnRQcm90ZWN0b3IpOgor
ICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OldlYlBhZ2VQcm94eSk6CisgICAgICAgIChX
ZWJLaXQ6OldlYlBhZ2VQcm94eTo6c3VzcGVuZEN1cnJlbnRQYWdlSWZQb3NzaWJsZSk6CisgICAg
ICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6YWRkT2JzZXJ2ZXIpOgorICAgICAgICAqIFVJUHJv
Y2Vzcy9XZWJQcm9jZXNzUG9vbC5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3NQb29s
OjpnZXRHUFVQcm9jZXNzQ29ubmVjdGlvbik6CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3NQ
b29sOjpnZXRXZWJBdXRoblByb2Nlc3NDb25uZWN0aW9uKToKKyAgICAgICAgKFdlYktpdDo6V2Vi
UHJvY2Vzc1Bvb2w6OmluaXRpYWxpemVOZXdXZWJQcm9jZXNzKToKKyAgICAgICAgKFdlYktpdDo6
V2ViUHJvY2Vzc1Bvb2w6OmNyZWF0ZVdlYlBhZ2UpOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQ
cm9jZXNzUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzUHJveHk6OnByb2Nl
c3NEaWRUZXJtaW5hdGVPckZhaWxlZFRvTGF1bmNoKToKKyAgICAgICAgKFdlYktpdDo6V2ViUHJv
Y2Vzc1Byb3h5OjpjcmVhdGVTcGVlY2hSZWNvZ25pdGlvblNlcnZlcik6CisgICAgICAgICogVUlQ
cm9jZXNzL1dlYlByb2Nlc3NQcm94eS5oOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzUHJv
eHk6OldlYWtPclN0cm9uZ1B0cjo6V2Vha09yU3Ryb25nUHRyKToKKyAgICAgICAgKiBVSVByb2Nl
c3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9yZS5jcHA6CisgICAgICAgIChXZWJLaXQ6Oldl
YnNpdGVEYXRhU3RvcmU6OmdldE5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbik6CisgICAgICAgICog
VUlQcm9jZXNzL2d0ay9XYXlsYW5kQ29tcG9zaXRvci5jcHA6CisgICAgICAgIChXZWJLaXQ6Oldh
eWxhbmRDb21wb3NpdG9yOjpTdXJmYWNlOjphdHRhY2hCdWZmZXIpOgorICAgICAgICAoV2ViS2l0
OjpXYXlsYW5kQ29tcG9zaXRvcjo6YmluZFN1cmZhY2VUb1dlYlBhZ2UpOgorICAgICAgICAqIFVJ
UHJvY2Vzcy9pb3MvUHJvY2Vzc0Fzc2VydGlvbklPUy5tbToKKyAgICAgICAgKC1bV0tQcm9jZXNz
QXNzZXJ0aW9uQmFja2dyb3VuZFRhc2tNYW5hZ2VyIF9ub3RpZnlBc3NlcnRpb25zT2ZJbW1pbmVu
dFN1c3BlbnNpb25dKToKKyAgICAgICAgKiBVSVByb2Nlc3MvaW9zL1dlYkRhdGFMaXN0U3VnZ2Vz
dGlvbnNEcm9wZG93bklPUy5tbToKKyAgICAgICAgKC1bV0tEYXRhTGlzdFN1Z2dlc3Rpb25zQ29u
dHJvbCBzaG93U3VnZ2VzdGlvbnNEcm9wZG93bjphY3RpdmF0aW9uVHlwZTpdKToKKyAgICAgICAg
KiBVSVByb2Nlc3MvbWFjL1BhZ2VDbGllbnRJbXBsTWFjLm1tOgorICAgICAgICAoV2ViS2l0OjpQ
YWdlQ2xpZW50SW1wbDo6c2V0SW1wbCk6CisgICAgICAgICogVUlQcm9jZXNzL21hYy9XS1JldmVh
bEl0ZW1QcmVzZW50ZXIubW06CisgICAgICAgICgtW1dLUmV2ZWFsSXRlbVByZXNlbnRlciBpbml0
V2l0aFdlYlZpZXdJbXBsOml0ZW06ZnJhbWU6bWVudUxvY2F0aW9uOl0pOgorICAgICAgICAqIFVJ
UHJvY2Vzcy9tYWMvV2ViQ29udGV4dE1lbnVQcm94eU1hYy5tbToKKyAgICAgICAgKFdlYktpdDo6
V2ViQ29udGV4dE1lbnVQcm94eU1hYzo6Z2V0Q29udGV4dE1lbnVGcm9tSXRlbXMpOgorICAgICAg
ICAoV2ViS2l0OjpXZWJDb250ZXh0TWVudVByb3h5TWFjOjppbnNlcnRPclVwZGF0ZVF1aWNrTG9v
a0ltYWdlSXRlbSk6CisgICAgICAgICogVUlQcm9jZXNzL21hYy9XZWJEYXRhTGlzdFN1Z2dlc3Rp
b25zRHJvcGRvd25NYWMubW06CisgICAgICAgICgtW1dLRGF0YUxpc3RTdWdnZXN0aW9uc0NvbnRy
b2xsZXIgc2hvd1N1Z2dlc3Rpb25zRHJvcGRvd246XSk6CisgICAgICAgICogVUlQcm9jZXNzL21h
Yy9XZWJEYXRlVGltZVBpY2tlck1hYy5tbToKKyAgICAgICAgKC1bV0tEYXRlVGltZVBpY2tlciBz
aG93UGlja2VyOl0pOgorICAgICAgICAqIFdlYlByb2Nlc3MvQXV0b21hdGlvbi9XZWJBdXRvbWF0
aW9uRE9NV2luZG93T2JzZXJ2ZXIuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJBdXRvbWF0aW9u
RE9NV2luZG93T2JzZXJ2ZXI6OldlYkF1dG9tYXRpb25ET01XaW5kb3dPYnNlcnZlcik6CisgICAg
ICAgICogV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlclBy
b3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6bV9yZW5kZXJpbmdCYWNrZW5kKToKKyAgICAgICAg
KiBXZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVJbWFnZUJ1ZmZlclByb3h5Lmg6CisgICAg
ICAgIChXZWJLaXQ6OlJlbW90ZUltYWdlQnVmZmVyUHJveHk6OlJlbW90ZUltYWdlQnVmZmVyUHJv
eHkpOgorICAgICAgICAqIFdlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90ZVJlbmRlcmluZ0Jh
Y2tlbmRQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVJlbmRlcmluZ0JhY2tlbmRQ
cm94eTo6ZW5zdXJlR1BVUHJvY2Vzc0Nvbm5lY3Rpb24pOgorICAgICAgICAqIFdlYlByb2Nlc3Mv
R1BVL2dyYXBoaWNzL1JlbW90ZVJlc291cmNlQ2FjaGVQcm94eS5jcHA6CisgICAgICAgIChXZWJL
aXQ6OlJlbW90ZVJlc291cmNlQ2FjaGVQcm94eTo6Y2FjaGVJbWFnZUJ1ZmZlcik6CisgICAgICAg
IChXZWJLaXQ6OlJlbW90ZVJlc291cmNlQ2FjaGVQcm94eTo6cmVjb3JkTmF0aXZlSW1hZ2VVc2Up
OgorICAgICAgICAqIFdlYlByb2Nlc3MvR1BVL21lZGlhL0F1ZGlvVHJhY2tQcml2YXRlUmVtb3Rl
LmNwcDoKKyAgICAgICAgKFdlYktpdDo6QXVkaW9UcmFja1ByaXZhdGVSZW1vdGU6OkF1ZGlvVHJh
Y2tQcml2YXRlUmVtb3RlKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL0dQVS9tZWRpYS9NZWRpYVBs
YXllclByaXZhdGVSZW1vdGUuY3BwOgorICAgICAgICAoV2ViS2l0OjpNZWRpYVBsYXllclByaXZh
dGVSZW1vdGU6Ok1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZSk6CisgICAgICAgICogV2ViUHJvY2Vz
cy9HUFUvbWVkaWEvTWVkaWFTb3VyY2VQcml2YXRlUmVtb3RlLmNwcDoKKyAgICAgICAgKFdlYktp
dDo6TWVkaWFTb3VyY2VQcml2YXRlUmVtb3RlOjpNZWRpYVNvdXJjZVByaXZhdGVSZW1vdGUpOgor
ICAgICAgICAqIFdlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZUF1ZGlvRGVzdGluYXRpb25Qcm94
eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUF1ZGlvRGVzdGluYXRpb25Qcm94eTo6Y29u
bmVjdGlvbik6CisgICAgICAgICogV2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlQXVkaW9IYXJk
d2FyZUxpc3RlbmVyLmNwcDoKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlQXVkaW9IYXJkd2FyZUxp
c3RlbmVyOjpSZW1vdGVBdWRpb0hhcmR3YXJlTGlzdGVuZXIpOgorICAgICAgICAqIFdlYlByb2Nl
c3MvR1BVL21lZGlhL1JlbW90ZUF1ZGlvU2Vzc2lvbi5jcHA6CisgICAgICAgIChXZWJLaXQ6OlJl
bW90ZUF1ZGlvU2Vzc2lvbjo6ZW5zdXJlQ29ubmVjdGlvbik6CisgICAgICAgICogV2ViUHJvY2Vz
cy9HUFUvbWVkaWEvUmVtb3RlQXVkaW9Tb3VyY2VQcm92aWRlci5jcHA6CisgICAgICAgIChXZWJL
aXQ6OlJlbW90ZUF1ZGlvU291cmNlUHJvdmlkZXI6OlJlbW90ZUF1ZGlvU291cmNlUHJvdmlkZXIp
OgorICAgICAgICAqIFdlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZUNETS5jcHA6CisgICAgICAg
IChXZWJLaXQ6OlJlbW90ZUNETTo6Y3JlYXRlSW5zdGFuY2UpOgorICAgICAgICAqIFdlYlByb2Nl
c3MvR1BVL21lZGlhL1JlbW90ZUNETUZhY3RvcnkuY3BwOgorICAgICAgICAoV2ViS2l0OjpSZW1v
dGVDRE1GYWN0b3J5OjpjcmVhdGVDRE0pOgorICAgICAgICAqIFdlYlByb2Nlc3MvR1BVL21lZGlh
L1JlbW90ZUNETUluc3RhbmNlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlQ0RNSW5zdGFu
Y2U6OmNyZWF0ZVNlc3Npb24pOgorICAgICAgICAqIFdlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90
ZUltYWdlRGVjb2RlckFWRi5jcHA6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUltYWdlRGVjb2Rl
ckFWRjo6UmVtb3RlSW1hZ2VEZWNvZGVyQVZGKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL0dQVS9t
ZWRpYS9SZW1vdGVJbWFnZURlY29kZXJBVkZNYW5hZ2VyLmNwcDoKKyAgICAgICAgKFdlYktpdDo6
UmVtb3RlSW1hZ2VEZWNvZGVyQVZGTWFuYWdlcjo6Y3JlYXRlSW1hZ2VEZWNvZGVyKToKKyAgICAg
ICAgKFdlYktpdDo6UmVtb3RlSW1hZ2VEZWNvZGVyQVZGTWFuYWdlcjo6ZW5zdXJlR1BVUHJvY2Vz
c0Nvbm5lY3Rpb24pOgorICAgICAgICAqIFdlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZUxlZ2Fj
eUNETUZhY3RvcnkuY3BwOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVMZWdhY3lDRE1GYWN0b3J5
OjpjcmVhdGVDRE0pOgorICAgICAgICAqIFdlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZU1lZGlh
UGxheWVyTWFuYWdlci5jcHA6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZU1lZGlhUGxheWVyTWFu
YWdlcjo6Y3JlYXRlUmVtb3RlTWVkaWFQbGF5ZXIpOgorICAgICAgICAqIFdlYlByb2Nlc3MvR1BV
L21lZGlhL1JlbW90ZVJlbW90ZUNvbW1hbmRMaXN0ZW5lci5jcHA6CisgICAgICAgIChXZWJLaXQ6
OlJlbW90ZVJlbW90ZUNvbW1hbmRMaXN0ZW5lcjo6ZW5zdXJlR1BVUHJvY2Vzc0Nvbm5lY3Rpb24p
OgorICAgICAgICAqIFdlYlByb2Nlc3MvR1BVL21lZGlhL1NvdXJjZUJ1ZmZlclByaXZhdGVSZW1v
dGUuY3BwOgorICAgICAgICAoV2ViS2l0OjpTb3VyY2VCdWZmZXJQcml2YXRlUmVtb3RlOjpTb3Vy
Y2VCdWZmZXJQcml2YXRlUmVtb3RlKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL0dQVS9tZWRpYS9U
ZXh0VHJhY2tQcml2YXRlUmVtb3RlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6VGV4dFRyYWNrUHJp
dmF0ZVJlbW90ZTo6VGV4dFRyYWNrUHJpdmF0ZVJlbW90ZSk6CisgICAgICAgICogV2ViUHJvY2Vz
cy9HUFUvbWVkaWEvVmlkZW9UcmFja1ByaXZhdGVSZW1vdGUuY3BwOgorICAgICAgICAoV2ViS2l0
OjpWaWRlb1RyYWNrUHJpdmF0ZVJlbW90ZTo6VmlkZW9UcmFja1ByaXZhdGVSZW1vdGUpOgorICAg
ICAgICAqIFdlYlByb2Nlc3MvR1BVL21lZGlhL2NvY29hL1ZpZGVvTGF5ZXJSZW1vdGVDb2NvYS5t
bToKKyAgICAgICAgKC1bV0tWaWRlb0xheWVyUmVtb3RlIHNldE1lZGlhUGxheWVyUHJpdmF0ZVJl
bW90ZTpdKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL0dQVS9tZWRpYS9pb3MvUmVtb3RlTWVkaWFT
ZXNzaW9uSGVscGVyLmNwcDoKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlTWVkaWFTZXNzaW9uSGVs
cGVyOjplbnN1cmVDb25uZWN0aW9uKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL0dQVS93ZWJydGMv
QXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJJbnRlcm5hbFVuaXRNYW5hZ2VyLmNwcDoKKyAg
ICAgICAgKFdlYktpdDo6QXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJJbnRlcm5hbFVuaXRN
YW5hZ2VyOjphZGQpOgorICAgICAgICAqIFdlYlByb2Nlc3MvR1BVL3dlYnJ0Yy9TYW1wbGVCdWZm
ZXJEaXNwbGF5TGF5ZXIuY3BwOgorICAgICAgICAoV2ViS2l0OjpTYW1wbGVCdWZmZXJEaXNwbGF5
TGF5ZXI6OlNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllcik6CisgICAgICAgICogV2ViUHJvY2Vzcy9H
UFUvd2VicnRjL1NhbXBsZUJ1ZmZlckRpc3BsYXlMYXllck1hbmFnZXIuY3BwOgorICAgICAgICAo
V2ViS2l0OjpTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXJNYW5hZ2VyOjpjcmVhdGVMYXllcik6Cisg
ICAgICAgIChXZWJLaXQ6OlNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllck1hbmFnZXI6OmFkZExheWVy
KToKKyAgICAgICAgKiBXZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9nbGliL0RPTS9ET01P
YmplY3RDYWNoZS5jcHA6CisgICAgICAgICogV2ViUHJvY2Vzcy9JbnNwZWN0b3IvV2ViSW5zcGVj
dG9yVUlFeHRlbnNpb25Db250cm9sbGVyLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViSW5zcGVj
dG9yVUlFeHRlbnNpb25Db250cm9sbGVyOjpXZWJJbnNwZWN0b3JVSUV4dGVuc2lvbkNvbnRyb2xs
ZXIpOgorICAgICAgICAqIFdlYlByb2Nlc3MvTmV0d29yay9XZWJTb2NrZXRDaGFubmVsLmNwcDoK
KyAgICAgICAgKFdlYktpdDo6V2ViU29ja2V0Q2hhbm5lbDo6V2ViU29ja2V0Q2hhbm5lbCk6Cisg
ICAgICAgICogV2ViUHJvY2Vzcy9OZXR3b3JrL1dlYlNvY2tldENoYW5uZWxNYW5hZ2VyLmNwcDoK
KyAgICAgICAgKFdlYktpdDo6V2ViU29ja2V0Q2hhbm5lbE1hbmFnZXI6OmFkZENoYW5uZWwpOgor
ICAgICAgICAqIFdlYlByb2Nlc3MvTmV0d29yay93ZWJydGMvUlRDRGF0YUNoYW5uZWxSZW1vdGVN
YW5hZ2VyLmNwcDoKKyAgICAgICAgKFdlYktpdDo6UlRDRGF0YUNoYW5uZWxSZW1vdGVNYW5hZ2Vy
OjpSZW1vdGVIYW5kbGVyQ29ubmVjdGlvbjo6Y29ubmVjdFRvU291cmNlKToKKyAgICAgICAgKiBX
ZWJQcm9jZXNzL1BsdWdpbnMvUERGL1BERlBsdWdpbi5oOgorICAgICAgICAqIFdlYlByb2Nlc3Mv
UGx1Z2lucy9QREYvUERGUGx1Z2luLm1tOgorICAgICAgICAoLVtXS1BERlBsdWdpbkFjY2Vzc2li
aWxpdHlPYmplY3QgaW5pdFdpdGhQREZQbHVnaW46YW5kRWxlbWVudDpdKToKKyAgICAgICAgKFdl
YktpdDo6UERGUGx1Z2luOjpQREZQbHVnaW4pOgorICAgICAgICAqIFdlYlByb2Nlc3MvUGx1Z2lu
cy9QbHVnaW4uY3BwOgorICAgICAgICAoV2ViS2l0OjpQbHVnaW46OmluaXRpYWxpemUpOgorICAg
ICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRGV2aWNlT3JpZW50YXRpb25VcGRh
dGVQcm92aWRlci5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYkRldmljZU9yaWVudGF0aW9uVXBk
YXRlUHJvdmlkZXI6OldlYkRldmljZU9yaWVudGF0aW9uVXBkYXRlUHJvdmlkZXIpOgorICAgICAg
ICAoV2ViS2l0OjpXZWJEZXZpY2VPcmllbnRhdGlvblVwZGF0ZVByb3ZpZGVyOjpkZXZpY2VPcmll
bnRhdGlvbkNoYW5nZWQpOgorICAgICAgICAoV2ViS2l0OjpXZWJEZXZpY2VPcmllbnRhdGlvblVw
ZGF0ZVByb3ZpZGVyOjpkZXZpY2VNb3Rpb25DaGFuZ2VkKToKKyAgICAgICAgKiBXZWJQcm9jZXNz
L1dlYkNvcmVTdXBwb3J0L1dlYlBlcm1pc3Npb25Db250cm9sbGVyLmNwcDoKKyAgICAgICAgKFdl
YktpdDo6V2ViUGVybWlzc2lvbkNvbnRyb2xsZXI6OldlYlBlcm1pc3Npb25Db250cm9sbGVyKToK
KyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlNwZWVjaFJlY29nbml0aW9u
Q29ubmVjdGlvbi5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlNwZWVjaFJlY29nbml0aW9uQ29u
bmVjdGlvbjo6cmVnaXN0ZXJDbGllbnQpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9D
b2NvYS9XZWJQYWdlQ29jb2EubW06CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OnNldFJlbW90
ZU9iamVjdFJlZ2lzdHJ5KToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvRmluZENvbnRy
b2xsZXIuY3BwOgorICAgICAgICAoV2ViS2l0OjpGaW5kQ29udHJvbGxlcjo6ZHJhd1JlY3QpOgor
ICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9JUENUZXN0aW5nQVBJLmNwcDoKKyAgICAgICAg
KFdlYktpdDo6SVBDVGVzdGluZ0FQSTo6SlNJUEM6OkpTSVBDKToKKyAgICAgICAgKFdlYktpdDo6
SVBDVGVzdGluZ0FQSTo6SlNNZXNzYWdlTGlzdGVuZXI6OkpTTWVzc2FnZUxpc3RlbmVyKToKKyAg
ICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZUxheWVyVHJl
ZURpc3BsYXlSZWZyZXNoTW9uaXRvci5tbToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlTGF5ZXJU
cmVlRGlzcGxheVJlZnJlc2hNb25pdG9yOjpSZW1vdGVMYXllclRyZWVEaXNwbGF5UmVmcmVzaE1v
bml0b3IpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVMYXllclRyZWVEaXNwbGF5UmVmcmVzaE1v
bml0b3I6OnVwZGF0ZURyYXdpbmdBcmVhKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2Uv
V2ViQ29udGV4dE1lbnUuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJDb250ZXh0TWVudTo6V2Vi
Q29udGV4dE1lbnUpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJGcmFtZS5jcHA6
CisgICAgICAgIChXZWJLaXQ6OldlYkZyYW1lOjppbml0V2l0aENvcmVNYWluRnJhbWUpOgorICAg
ICAgICAoV2ViS2l0OjpXZWJGcmFtZTo6Y3JlYXRlU3ViZnJhbWUpOgorICAgICAgICAqIFdlYlBy
b2Nlc3MvV2ViUGFnZS9XZWJGcmFtZS5oOgorICAgICAgICAoV2ViS2l0OjpXZWJGcmFtZTo6c2V0
TG9hZExpc3RlbmVyKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHA6
CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OnNldEFjdGl2ZURhdGFMaXN0U3VnZ2VzdGlvblBp
Y2tlcik6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OnNldEFjdGl2ZURhdGVUaW1lQ2hvb3Nl
cik6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OnN0YXJ0VGV4dE1hbmlwdWxhdGlvbnMpOgor
ICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjpyZXF1ZXN0VGV4dFJlY29nbml0aW9uKToKKyAgICAg
ICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvaW9zL1dlYlBhZ2VJT1MubW06CisgICAgICAgIChXZWJL
aXQ6OldlYlBhZ2U6OmRpZEZpbmlzaENvbnRlbnRDaGFuZ2VPYnNlcnZpbmcpOgorICAgICAgICAo
V2ViS2l0OjpXZWJQYWdlOjpzZWxlY3RUZXh0V2l0aEdyYW51bGFyaXR5QXRQb2ludCk6CisgICAg
ICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9XZWJQYWdlTWFjLm1tOgorICAgICAgICAoV2Vi
S2l0OjpXZWJQYWdlOjpjcmVhdGVQREZIVUQpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViU3Rv
cmFnZS9TdG9yYWdlQXJlYUltcGwuY3BwOgorICAgICAgICAoV2ViS2l0OjpTdG9yYWdlQXJlYUlt
cGw6OlN0b3JhZ2VBcmVhSW1wbCk6CisgICAgICAgICogV2ViUHJvY2Vzcy9jb2NvYS9BdWRpb1Nl
c3Npb25Sb3V0aW5nQXJiaXRyYXRvci5jcHA6CisgICAgICAgIChXZWJLaXQ6OkF1ZGlvU2Vzc2lv
blJvdXRpbmdBcmJpdHJhdG9yOjpBdWRpb1Nlc3Npb25Sb3V0aW5nQXJiaXRyYXRvcik6CisgICAg
ICAgICogV2ViUHJvY2Vzcy9jb2NvYS9WaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyLm1tOgorICAgICAg
ICAoV2ViS2l0OjpWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyOjplbnRlclZpZGVvRnVsbHNjcmVlbkZv
clZpZGVvRWxlbWVudCk6CisKIDIwMjEtMTAtMTIgIEplciBOb2JsZSAgPGplci5ub2JsZUBhcHBs
ZS5jb20+CiAKICAgICAgICAgW0J1aWxkLXRpbWUgcGVyZl0gRm9yd2FyZC1kZWNsYXJlIG1vcmUg
dGhpbmdzIGluIERvY3VtZW50LmgKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvQ2hh
bmdlTG9nIGIvU291cmNlL1dlYktpdExlZ2FjeS9DaGFuZ2VMb2cKaW5kZXggY2ZhMTljNzA3MDhj
YTJhNTZlYjA0MTI0NTczNzhhMDA4NTMzZDdjMy4uOGRmNGZlMjEwZjY2ZTdhM2IzYThkODA1MTFk
YmJiM2RmNWM0ZDU3OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9DaGFuZ2VMb2cK
KysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNiBAQAorMjAy
MS0xMC0xMyAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgorCisgICAgICAgIERyb3Ag
bWFrZVdlYWtQdHIoKSBhbmQgdXNlIFdlYWtQdHIgeyB9IGRpcmVjdGx5CisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzE2NzkKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFN0b3JhZ2UvSW5Qcm9jZXNzSURC
U2VydmVyLmNwcDoKKyAgICAgICAgKHN0b3JhZ2VRdW90YU1hbmFnZXJTcGFjZVJlcXVlc3Rlcik6
CisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvUGFnZVN0b3JhZ2VTZXNzaW9uUHJvdmlkZXIuaDoK
KyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9XZWJCcm9hZGNhc3RDaGFubmVsUmVnaXN0cnkuY3Bw
OgorICAgICAgICAoV2ViQnJvYWRjYXN0Q2hhbm5lbFJlZ2lzdHJ5OjpnZXRPckNyZWF0ZSk6CisK
IDIwMjEtMTAtMDEgIElhbiBBbmRlcnNvbiAgPGlhbmFAYXBwbGUuY29tPgogCiAgICAgICAgIFdl
YktpdExlZ2FjeSdzIG1vZHVsZSBtYXAgZmlsZXMgZG9uJ3QgZ2V0IGluc3RhbGxlZApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdExl
Z2FjeS9tYWMvQ2hhbmdlTG9nCmluZGV4IDVjMmNhOTU0OGFkNDI5YjlhNmY3MGFmY2Y4OTA0MWM2
ZmY4YzViYTcuLjVkNmQ5MjRkY2Y0YjUyYWYyMDUzNGJhZGQ2ODVhMTBjZjFlYjY1YTIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2Vi
S2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMyBAQAorMjAyMS0xMC0xMyAgQ2hy
aXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgorCisgICAgICAgIERyb3AgbWFrZVdlYWtQdHIo
KSBhbmQgdXNlIFdlYWtQdHIgeyB9IGRpcmVjdGx5CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzE2NzkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L1dlYkVkaXRvckNsaWVudC5t
bToKKyAgICAgICAgKFdlYkVkaXRvckNsaWVudDo6cmVxdWVzdENhbmRpZGF0ZXNGb3JTZWxlY3Rp
b24pOgorCiAyMDIxLTEwLTEyICBKZXIgTm9ibGUgIDxqZXIubm9ibGVAYXBwbGUuY29tPgogCiAg
ICAgICAgIFtCdWlsZC10aW1lIHBlcmZdIEZvcndhcmQtZGVjbGFyZSBtb3JlIHRoaW5ncyBpbiBE
b2N1bWVudC5oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9XZWFrSGFzaE1hcC5oIGIvU291
cmNlL1dURi93dGYvV2Vha0hhc2hNYXAuaAppbmRleCA3MTRhNTBkNmJkY2Y3YmZiNDdjMzU5ZTQx
YWZjNjZmZWQwYzg4ZjY2Li4zNGE5OTA2ZTZhMGE1YWExNWNmNjM4M2E1NDAzM2YxYTQ3YTRmZTQ3
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9XZWFrSGFzaE1hcC5oCisrKyBiL1NvdXJjZS9X
VEYvd3RmL1dlYWtIYXNoTWFwLmgKQEAgLTM1MSw3ICszNTEsNyBAQCBwcml2YXRlOgogICAgIHRl
bXBsYXRlIDx0eXBlbmFtZSBUPgogICAgIHN0YXRpYyBSZWZUeXBlIG1ha2VLZXlJbXBsKGNvbnN0
IFQmIGtleSkKICAgICB7Ci0gICAgICAgIHJldHVybiAqbWFrZVdlYWtQdHI8S2V5VHlwZT4oY29u
c3RfY2FzdDxUJj4oa2V5KSkubV9pbXBsOworICAgICAgICByZXR1cm4gKldlYWtQdHI8S2V5VHlw
ZT4geyBjb25zdF9jYXN0PFQmPihrZXkpIH0ubV9pbXBsOwogICAgIH0KIAogICAgIHRlbXBsYXRl
IDx0eXBlbmFtZSBUPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvV2Vha0hhc2hTZXQuaCBi
L1NvdXJjZS9XVEYvd3RmL1dlYWtIYXNoU2V0LmgKaW5kZXggZWU3YjMyOWJmNzMzODU0YjEzZjNk
ODVkMzcxMzk5YjJhZDI1OTFhMy4uNzNjN2UxMGY5Zjc5M2I0OTgyZjQ3ODFkZGQ1YTcyMzMwOTY5
MTIxNCAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvV2Vha0hhc2hTZXQuaAorKysgYi9Tb3Vy
Y2UvV1RGL3d0Zi9XZWFrSGFzaFNldC5oCkBAIC05MSw3ICs5MSw3IEBAIHB1YmxpYzoKICAgICB0
ZW1wbGF0ZSA8dHlwZW5hbWUgVT4KICAgICBBZGRSZXN1bHQgYWRkKGNvbnN0IFUmIHZhbHVlKQog
ICAgIHsKLSAgICAgICAgcmV0dXJuIG1fc2V0LmFkZCgqbWFrZVdlYWtQdHI8VD4oY29uc3RfY2Fz
dDxVJj4odmFsdWUpKS5tX2ltcGwpOworICAgICAgICByZXR1cm4gbV9zZXQuYWRkKCpXZWFrUHRy
PFQ+IHsgY29uc3RfY2FzdDxVJj4odmFsdWUpIH0ubV9pbXBsKTsKICAgICB9CiAKICAgICB0ZW1w
bGF0ZSA8dHlwZW5hbWUgVT4KQEAgLTE2OSw3ICsxNjksNyBAQCBzdHJ1Y3QgTWFwcGVyPE1hcEZ1
bmN0aW9uLCBjb25zdCBXZWFrSGFzaFNldDxUPiAmLCB2b2lkPiB7CiB0ZW1wbGF0ZTx0eXBlbmFt
ZSBUPgogaW5saW5lIGF1dG8gY29weVRvVmVjdG9yKGNvbnN0IFdlYWtIYXNoU2V0PFQ+JiBjb2xs
ZWN0aW9uKSAtPiBWZWN0b3I8V2Vha1B0cjxUPj4KIHsKLSAgICByZXR1cm4gV1RGOjptYXAoY29s
bGVjdGlvbiwgW10gKGF1dG8mIHYpIC0+IFdlYWtQdHI8VD4geyByZXR1cm4gbWFrZVdlYWtQdHI8
VD4odik7IH0pOworICAgIHJldHVybiBXVEY6Om1hcChjb2xsZWN0aW9uLCBbXSAoYXV0byYgdikg
LT4gV2Vha1B0cjxUPiB7IHJldHVybiBXZWFrUHRyPFQ+IHsgdiB9OyB9KTsKIH0KIAogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9XZWFrUHRyLmggYi9Tb3VyY2UvV1RGL3d0Zi9XZWFrUHRy
LmgKaW5kZXggOGJhNzI4N2U5NjA0MTE4MDA3NmYwNTdlMGI3MzM3YjUxOGQzNmNmZS4uYTM5ZmY1
YTcxZDBlMzBjOTA3MjkxYWExNTI3NzAzYzY2ZWM0MGYwNCAxMDA2NDQKLS0tIGEvU291cmNlL1dU
Ri93dGYvV2Vha1B0ci5oCisrKyBiL1NvdXJjZS9XVEYvd3RmL1dlYWtQdHIuaApAQCAtMjQ5LDcg
KzI0OSw3IEBAIHByaXZhdGU6CiB9OwogCiAvLyBXZSB1c2UgbGF6eSBpbml0aWFsaXphdGlvbiBv
ZiB0aGUgV2Vha1B0ckZhY3RvcnkgYnkgZGVmYXVsdCB0byBhdm9pZCB1bm5lY2Vzc2FyeSBpbml0
aWFsaXphdGlvbi4gRWFnZXIKLS8vIGluaXRpYWxpemF0aW9uIGlzIGhvd2V2ZXIgdXNlZnVsIGlm
IHlvdSBwbGFuIHRvIGNhbGwgbWFrZVdlYWtQdHIoKSBmcm9tIG90aGVyIHRocmVhZHMuCisvLyBp
bml0aWFsaXphdGlvbiBpcyBob3dldmVyIHVzZWZ1bCBpZiB5b3UgcGxhbiB0byBjYWxsIGNvbnN0
cnVjdCBXZWFrUHRycyBmcm9tIG90aGVyIHRocmVhZHMuCiBlbnVtIGNsYXNzIFdlYWtQdHJGYWN0
b3J5SW5pdGlhbGl6YXRpb24geyBMYXp5LCBFYWdlciB9OwogCiB0ZW1wbGF0ZTx0eXBlbmFtZSBU
LCBXZWFrUHRyRmFjdG9yeUluaXRpYWxpemF0aW9uIGluaXRpYWxpemF0aW9uTW9kZSA9IFdlYWtQ
dHJGYWN0b3J5SW5pdGlhbGl6YXRpb246OkxhenksIHR5cGVuYW1lIENvdW50ZXIgPSBFbXB0eUNv
dW50ZXI+IGNsYXNzIENhbk1ha2VXZWFrUHRyIHsKQEAgLTMwMywzMiArMzAzLDYgQEAgdGVtcGxh
dGU8dHlwZW5hbWUgVCwgdHlwZW5hbWUgQ291bnRlcj4gdGVtcGxhdGU8dHlwZW5hbWUgVT4gaW5s
aW5lIFdlYWtQdHI8VCwgQ28KICAgICByZXR1cm4gKnRoaXM7CiB9CiAKLS8vIG1ha2VXZWFrUHRy
KCkgaXMgZGVwcmVjYXRlZC4gVXNlIFdlYWtQdHIgeyBvYmplY3QgfSBkaXJlY3RseSBpbnN0ZWFk
LgotdGVtcGxhdGU8dHlwZW5hbWUgVCwgdHlwZW5hbWUgPSBzdGQ6OmVuYWJsZV9pZl90PCFJc1Nt
YXJ0UHRyPFQ+Ojp2YWx1ZT4+IGlubGluZSBhdXRvIG1ha2VXZWFrUHRyKFQmIG9iamVjdCwgRW5h
YmxlV2Vha1B0clRocmVhZGluZ0Fzc2VydGlvbnMgZW5hYmxlV2Vha1B0clRocmVhZGluZ0Fzc2Vy
dGlvbnMgPSBFbmFibGVXZWFrUHRyVGhyZWFkaW5nQXNzZXJ0aW9uczo6WWVzKQotewotICAgIHJl
dHVybiBvYmplY3Qud2Vha1B0ckZhY3RvcnkoKS50ZW1wbGF0ZSBjcmVhdGVXZWFrUHRyPFQ+KG9i
amVjdCwgZW5hYmxlV2Vha1B0clRocmVhZGluZ0Fzc2VydGlvbnMpOwotfQotCi0vLyBtYWtlV2Vh
a1B0cigpIGlzIGRlcHJlY2F0ZWQuIFVzZSBXZWFrUHRyIHsgb2JqZWN0IH0gZGlyZWN0bHkgaW5z
dGVhZC4KLXRlbXBsYXRlPHR5cGVuYW1lIFQsIHR5cGVuYW1lID0gc3RkOjplbmFibGVfaWZfdDwh
SXNTbWFydFB0cjxUPjo6dmFsdWU+PiBpbmxpbmUgYXV0byBtYWtlV2Vha1B0cihUKiBwdHIsIEVu
YWJsZVdlYWtQdHJUaHJlYWRpbmdBc3NlcnRpb25zIGVuYWJsZVdlYWtQdHJUaHJlYWRpbmdBc3Nl
cnRpb25zID0gRW5hYmxlV2Vha1B0clRocmVhZGluZ0Fzc2VydGlvbnM6OlllcykgLT4gZGVjbHR5
cGUobWFrZVdlYWtQdHIoKnB0cikpCi17Ci0gICAgaWYgKCFwdHIpCi0gICAgICAgIHJldHVybiB7
IH07Ci0gICAgcmV0dXJuIG1ha2VXZWFrUHRyKCpwdHIsIGVuYWJsZVdlYWtQdHJUaHJlYWRpbmdB
c3NlcnRpb25zKTsKLX0KLQotLy8gbWFrZVdlYWtQdHIoKSBpcyBkZXByZWNhdGVkLiBVc2UgV2Vh
a1B0ciB7IG9iamVjdCB9IGRpcmVjdGx5IGluc3RlYWQuCi10ZW1wbGF0ZTx0eXBlbmFtZSBULCB0
eXBlbmFtZSA9IHN0ZDo6ZW5hYmxlX2lmX3Q8IUlzU21hcnRQdHI8VD46OnZhbHVlPj4gaW5saW5l
IGF1dG8gbWFrZVdlYWtQdHIoY29uc3QgUmVmPFQ+JiBvYmplY3QsIEVuYWJsZVdlYWtQdHJUaHJl
YWRpbmdBc3NlcnRpb25zIGVuYWJsZVdlYWtQdHJUaHJlYWRpbmdBc3NlcnRpb25zID0gRW5hYmxl
V2Vha1B0clRocmVhZGluZ0Fzc2VydGlvbnM6OlllcykKLXsKLSAgICByZXR1cm4gbWFrZVdlYWtQ
dHIob2JqZWN0LmdldCgpLCBlbmFibGVXZWFrUHRyVGhyZWFkaW5nQXNzZXJ0aW9ucyk7Ci19Ci0K
LS8vIG1ha2VXZWFrUHRyKCkgaXMgZGVwcmVjYXRlZC4gVXNlIFdlYWtQdHIgeyBvYmplY3QgfSBk
aXJlY3RseSBpbnN0ZWFkLgotdGVtcGxhdGU8dHlwZW5hbWUgVCwgdHlwZW5hbWUgPSBzdGQ6OmVu
YWJsZV9pZl90PCFJc1NtYXJ0UHRyPFQ+Ojp2YWx1ZT4+IGlubGluZSBhdXRvIG1ha2VXZWFrUHRy
KGNvbnN0IFJlZlB0cjxUPiYgb2JqZWN0LCBFbmFibGVXZWFrUHRyVGhyZWFkaW5nQXNzZXJ0aW9u
cyBlbmFibGVXZWFrUHRyVGhyZWFkaW5nQXNzZXJ0aW9ucyA9IEVuYWJsZVdlYWtQdHJUaHJlYWRp
bmdBc3NlcnRpb25zOjpZZXMpCi17Ci0gICAgcmV0dXJuIG1ha2VXZWFrUHRyKG9iamVjdC5nZXQo
KSwgZW5hYmxlV2Vha1B0clRocmVhZGluZ0Fzc2VydGlvbnMpOwotfQotCiB0ZW1wbGF0ZSA8dHlw
ZW5hbWUgVCwgdHlwZW5hbWUgQ291bnRlcj4KIHN0cnVjdCBHZXRQdHJIZWxwZXI8V2Vha1B0cjxU
LCBDb3VudGVyPj4gewogICAgIHVzaW5nIFB0clR5cGUgPSBUKjsKQEAgLTM4OSw0ICszNjMsMyBA
QCB1c2luZyBXVEY6OkVuYWJsZVdlYWtQdHJUaHJlYWRpbmdBc3NlcnRpb25zOwogdXNpbmcgV1RG
OjpXZWFrUHRyOwogdXNpbmcgV1RGOjpXZWFrUHRyRmFjdG9yeTsKIHVzaW5nIFdURjo6V2Vha1B0
ckZhY3RvcnlJbml0aWFsaXphdGlvbjsKLXVzaW5nIFdURjo6bWFrZVdlYWtQdHI7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3RlbVN5
bmNBY2Nlc3NIYW5kbGUuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxlc3lzdGVtYWNj
ZXNzL0ZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlLmNwcAppbmRleCBkMjJlMjA4MGI2Y2M2NDdj
M2U1YmZlOTFlYzUyNDc2Y2FhOWQ0ODljLi4yYmNmNzRhMDg3YjgzOTdmMzBhMjI2MzZkODAyZTBj
MWU5MDY4MmFiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0ZW1h
Y2Nlc3MvRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZS5jcHAK
QEAgLTU1LDcgKzU1LDcgQEAgRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGU6On5GaWxlU3lzdGVt
U3luY0FjY2Vzc0hhbmRsZSgpCiB2b2lkIEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlOjp0cnVu
Y2F0ZSh1bnNpZ25lZCBsb25nIGxvbmcgc2l6ZSwgRE9NUHJvbWlzZURlZmVycmVkPHZvaWQ+JiYg
cHJvbWlzZSkKIHsKICAgICBtX3BlbmRpbmdPcGVyYXRpb25Db3VudCsrOwotICAgIG1fc291cmNl
LT50cnVuY2F0ZShtX2lkZW50aWZpZXIsIHNpemUsIFt3ZWFrVGhpcyA9IG1ha2VXZWFrUHRyKCp0
aGlzKSwgcHJvbWlzZSA9IFdURk1vdmUocHJvbWlzZSldKGF1dG8gcmVzdWx0KSBtdXRhYmxlIHsK
KyAgICBtX3NvdXJjZS0+dHJ1bmNhdGUobV9pZGVudGlmaWVyLCBzaXplLCBbd2Vha1RoaXMgPSBX
ZWFrUHRyIHsgKnRoaXMgfSwgcHJvbWlzZSA9IFdURk1vdmUocHJvbWlzZSldKGF1dG8gcmVzdWx0
KSBtdXRhYmxlIHsKICAgICAgICAgaWYgKHdlYWtUaGlzKQogICAgICAgICAgICAgd2Vha1RoaXMt
Pm1fcGVuZGluZ09wZXJhdGlvbkNvdW50LS07CiAKQEAgLTY2LDcgKzY2LDcgQEAgdm9pZCBGaWxl
U3lzdGVtU3luY0FjY2Vzc0hhbmRsZTo6dHJ1bmNhdGUodW5zaWduZWQgbG9uZyBsb25nIHNpemUs
IERPTVByb21pc2VEZWYKIHZvaWQgRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGU6OmdldFNpemUo
RE9NUHJvbWlzZURlZmVycmVkPElETFVuc2lnbmVkTG9uZ0xvbmc+JiYgcHJvbWlzZSkKIHsKICAg
ICBtX3BlbmRpbmdPcGVyYXRpb25Db3VudCsrOwotICAgIG1fc291cmNlLT5nZXRTaXplKG1faWRl
bnRpZmllciwgW3dlYWtUaGlzID0gbWFrZVdlYWtQdHIoKnRoaXMpLCBwcm9taXNlID0gV1RGTW92
ZShwcm9taXNlKV0oYXV0byByZXN1bHQpIG11dGFibGUgeworICAgIG1fc291cmNlLT5nZXRTaXpl
KG1faWRlbnRpZmllciwgW3dlYWtUaGlzID0gV2Vha1B0ciB7ICp0aGlzIH0sIHByb21pc2UgPSBX
VEZNb3ZlKHByb21pc2UpXShhdXRvIHJlc3VsdCkgbXV0YWJsZSB7CiAgICAgICAgIGlmICh3ZWFr
VGhpcykKICAgICAgICAgICAgIHdlYWtUaGlzLT5tX3BlbmRpbmdPcGVyYXRpb25Db3VudC0tOwog
CkBAIC03Nyw3ICs3Nyw3IEBAIHZvaWQgRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGU6OmdldFNp
emUoRE9NUHJvbWlzZURlZmVycmVkPElETFVuc2lnbmVkTG9uZ0xvbmc+CiB2b2lkIEZpbGVTeXN0
ZW1TeW5jQWNjZXNzSGFuZGxlOjpmbHVzaChET01Qcm9taXNlRGVmZXJyZWQ8dm9pZD4mJiBwcm9t
aXNlKQogewogICAgIG1fcGVuZGluZ09wZXJhdGlvbkNvdW50Kys7Ci0gICAgbV9zb3VyY2UtPmZs
dXNoKG1faWRlbnRpZmllciwgW3dlYWtUaGlzID0gbWFrZVdlYWtQdHIoKnRoaXMpLCBwcm9taXNl
ID0gV1RGTW92ZShwcm9taXNlKV0oYXV0byByZXN1bHQpIG11dGFibGUgeworICAgIG1fc291cmNl
LT5mbHVzaChtX2lkZW50aWZpZXIsIFt3ZWFrVGhpcyA9IFdlYWtQdHIgeyAqdGhpcyB9LCBwcm9t
aXNlID0gV1RGTW92ZShwcm9taXNlKV0oYXV0byByZXN1bHQpIG11dGFibGUgewogICAgICAgICBp
ZiAod2Vha1RoaXMpCiAgICAgICAgICAgICB3ZWFrVGhpcy0+bV9wZW5kaW5nT3BlcmF0aW9uQ291
bnQtLTsKIApAQCAtOTEsNyArOTEsNyBAQCB2b2lkIEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxl
OjpjbG9zZShET01Qcm9taXNlRGVmZXJyZWQ8dm9pZD4mJiBwcm9taXNlKQogICAgICAgICByZXR1
cm4gcHJvbWlzZS5yZWplY3QoRXhjZXB0aW9uIHsgSW52YWxpZFN0YXRlRXJyb3IgfSk7CiAKICAg
ICBtX3BlbmRpbmdPcGVyYXRpb25Db3VudCsrOwotICAgIG1fc291cmNlLT5jbG9zZShtX2lkZW50
aWZpZXIsIFt3ZWFrVGhpcyA9IG1ha2VXZWFrUHRyKCp0aGlzKSwgcHJvbWlzZSA9IFdURk1vdmUo
cHJvbWlzZSldKGF1dG8gcmVzdWx0KSBtdXRhYmxlIHsKKyAgICBtX3NvdXJjZS0+Y2xvc2UobV9p
ZGVudGlmaWVyLCBbd2Vha1RoaXMgPSBXZWFrUHRyIHsgKnRoaXMgfSwgcHJvbWlzZSA9IFdURk1v
dmUocHJvbWlzZSldKGF1dG8gcmVzdWx0KSBtdXRhYmxlIHsKICAgICAgICAgaWYgKHdlYWtUaGlz
KSB7CiAgICAgICAgICAgICB3ZWFrVGhpcy0+bV9wZW5kaW5nT3BlcmF0aW9uQ291bnQtLTsKICAg
ICAgICAgICAgIHdlYWtUaGlzLT5kaWRDbG9zZSgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvZG9tL0VsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuY3BwCmluZGV4
IGRlMjdjNmY1NWZkNzdhM2E3NzNiODQxZmJlOWRhM2Y3ZjZjMDYwN2YuLmJlODY1Nzc5OGNkMjcw
OGRlOTg1ZWY5NjU2ODA3ODNjZDBmOTcyYzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Rv
bS9FbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5jcHAKQEAgLTIz
NTQsNyArMjM1NCw3IEBAIHZvaWQgRWxlbWVudDo6YWRkU2hhZG93Um9vdChSZWY8U2hhZG93Um9v
dD4mJiBuZXdTaGFkb3dSb290KQogCiAgICAgICAgIGVuc3VyZUVsZW1lbnRSYXJlRGF0YSgpLnNl
dFNoYWRvd1Jvb3QoV1RGTW92ZShuZXdTaGFkb3dSb290KSk7CiAKLSAgICAgICAgc2hhZG93Um9v
dC5zZXRIb3N0KG1ha2VXZWFrUHRyPEVsZW1lbnQ+KHRoaXMpKTsKKyAgICAgICAgc2hhZG93Um9v
dC5zZXRIb3N0KCp0aGlzKTsKICAgICAgICAgc2hhZG93Um9vdC5zZXRQYXJlbnRUcmVlU2NvcGUo
dHJlZVNjb3BlKCkpOwogCiAjaWYgQVNTRVJUX0VOQUJMRUQKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvR1BVUHJvY2Vzcy9HUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmNwcCBiL1NvdXJjZS9X
ZWJLaXQvR1BVUHJvY2Vzcy9HUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmNwcAppbmRleCA2Njk5
OTBiZWM5Nzg2NjhiZWZjM2NiYzkzNzBhODI1YmNkNzE1MmUwLi5lNDQ1ZTU5ZGM3YmI1NmQ3NTE0
N2E5NmY2YWFhNDNiYTc1M2YwNjBhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nl
c3MvR1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5jcHAKKysrIGIvU291cmNlL1dlYktpdC9HUFVQ
cm9jZXNzL0dQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuY3BwCkBAIC0yMzAsNyArMjMwLDcgQEAg
R1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6R1BVQ29ubmVjdGlvblRvV2ViUHJvY2VzcyhHUFVQ
cm9jZXNzJiBncHVQcm9jZXNzLCBXZWIKICAgICBSRUxFQVNFX0FTU0VSVChSdW5Mb29wOjppc01h
aW4oKSk7CiAKICNpZiBFTkFCTEUoUk9VVElOR19BUkJJVFJBVElPTikgJiYgSEFWRShBVkFVRElP
X1JPVVRJTkdfQVJCSVRFUikKLSAgICBncHVQcm9jZXNzLmF1ZGlvU2Vzc2lvbk1hbmFnZXIoKS5z
ZXNzaW9uKCkuc2V0Um91dGluZ0FyYml0cmF0aW9uQ2xpZW50KG1ha2VXZWFrUHRyKG1fcm91dGlu
Z0FyYml0cmF0b3IuZ2V0KCkpKTsKKyAgICBncHVQcm9jZXNzLmF1ZGlvU2Vzc2lvbk1hbmFnZXIo
KS5zZXNzaW9uKCkuc2V0Um91dGluZ0FyYml0cmF0aW9uQ2xpZW50KFdlYWtQdHIgeyBtX3JvdXRp
bmdBcmJpdHJhdG9yLmdldCgpIH0pOwogI2VuZGlmCiAKICAgICBpZiAoIXBhcmFtZXRlcnMub3Zl
cnJpZGVMYW5ndWFnZXMuaXNFbXB0eSgpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQ
cm9jZXNzL2dyYXBoaWNzL1JlbW90ZUdyYXBoaWNzQ29udGV4dEdMLmNwcCBiL1NvdXJjZS9XZWJL
aXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVHcmFwaGljc0NvbnRleHRHTC5jcHAKaW5kZXgg
MmI3YjgyN2Q3MjM5YTQ1MGJkMGM0OWEwMDI3MmVlNGRmNmEyZGVkZS4uYWM5NTk1MjBhMmUzZGZh
ZDlmY2Q4MmIzOTJmMTBhOWE1YTYwNDg0MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9HUFVQ
cm9jZXNzL2dyYXBoaWNzL1JlbW90ZUdyYXBoaWNzQ29udGV4dEdMLmNwcAorKysgYi9Tb3VyY2Uv
V2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlR3JhcGhpY3NDb250ZXh0R0wuY3BwCkBA
IC02NCw3ICs2NCw3IEBAIFJlZjxSZW1vdGVHcmFwaGljc0NvbnRleHRHTD4gUmVtb3RlR3JhcGhp
Y3NDb250ZXh0R0w6OmNyZWF0ZShHUFVDb25uZWN0aW9uVG9XZWJQCiAjZW5kaWYKIAogUmVtb3Rl
R3JhcGhpY3NDb250ZXh0R0w6OlJlbW90ZUdyYXBoaWNzQ29udGV4dEdMKEdQVUNvbm5lY3Rpb25U
b1dlYlByb2Nlc3MmIGdwdUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MsIEdyYXBoaWNzQ29udGV4dEdM
SWRlbnRpZmllciBncmFwaGljc0NvbnRleHRHTElkZW50aWZpZXIsIFJlbW90ZVJlbmRlcmluZ0Jh
Y2tlbmQmIHJlbmRlcmluZ0JhY2tlbmQsIElQQzo6U3RyZWFtQ29ubmVjdGlvbkJ1ZmZlciYmIHN0
cmVhbSkKLSAgICA6IG1fZ3B1Q29ubmVjdGlvblRvV2ViUHJvY2VzcyhtYWtlV2Vha1B0cihncHVD
b25uZWN0aW9uVG9XZWJQcm9jZXNzKSkKKyAgICA6IG1fZ3B1Q29ubmVjdGlvblRvV2ViUHJvY2Vz
cyhncHVDb25uZWN0aW9uVG9XZWJQcm9jZXNzKQogICAgICwgbV9zdHJlYW1Db25uZWN0aW9uKElQ
Qzo6U3RyZWFtU2VydmVyQ29ubmVjdGlvbjo6Y3JlYXRlKGdwdUNvbm5lY3Rpb25Ub1dlYlByb2Nl
c3MuY29ubmVjdGlvbigpLCBXVEZNb3ZlKHN0cmVhbSksIHJlbW90ZUdyYXBoaWNzQ29udGV4dEdM
U3RyZWFtV29ya1F1ZXVlKCkpKQogICAgICwgbV9ncmFwaGljc0NvbnRleHRHTElkZW50aWZpZXIo
Z3JhcGhpY3NDb250ZXh0R0xJZGVudGlmaWVyKQogICAgICwgbV9yZW5kZXJpbmdCYWNrZW5kKHJl
bmRlcmluZ0JhY2tlbmQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVk
aWEvUmVtb3RlQXVkaW9IYXJkd2FyZUxpc3RlbmVyUHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9H
UFVQcm9jZXNzL21lZGlhL1JlbW90ZUF1ZGlvSGFyZHdhcmVMaXN0ZW5lclByb3h5LmNwcAppbmRl
eCBkMTFkNTdhYWE2YTk0NTQ2MDk4NDgzMmIyYmRjMWRkYWFiMDBiMGIzLi4zYTNjMWY5MWQyZjk3
YmIzZGYwMzExNzhmNWVjOTkxZGIwY2Q2NTA5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0dQ
VVByb2Nlc3MvbWVkaWEvUmVtb3RlQXVkaW9IYXJkd2FyZUxpc3RlbmVyUHJveHkuY3BwCisrKyBi
L1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVBdWRpb0hhcmR3YXJlTGlzdGVu
ZXJQcm94eS5jcHAKQEAgLTM0LDcgKzM0LDcgQEAKIG5hbWVzcGFjZSBXZWJLaXQgewogCiBSZW1v
dGVBdWRpb0hhcmR3YXJlTGlzdGVuZXJQcm94eTo6UmVtb3RlQXVkaW9IYXJkd2FyZUxpc3RlbmVy
UHJveHkoR1BVQ29ubmVjdGlvblRvV2ViUHJvY2VzcyYgZ3B1Q29ubmVjdGlvbiwgUmVtb3RlQXVk
aW9IYXJkd2FyZUxpc3RlbmVySWRlbnRpZmllciYmIGlkZW50aWZpZXIpCi0gICAgOiBtX2dwdUNv
bm5lY3Rpb24obWFrZVdlYWtQdHIoZ3B1Q29ubmVjdGlvbikpCisgICAgOiBtX2dwdUNvbm5lY3Rp
b24oZ3B1Q29ubmVjdGlvbikKICAgICAsIG1faWRlbnRpZmllcihXVEZNb3ZlKGlkZW50aWZpZXIp
KQogICAgICwgbV9saXN0ZW5lcihXZWJDb3JlOjpBdWRpb0hhcmR3YXJlTGlzdGVuZXI6OmNyZWF0
ZSgqdGhpcykpCiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEv
UmVtb3RlQXVkaW9UcmFja1Byb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRp
YS9SZW1vdGVBdWRpb1RyYWNrUHJveHkuY3BwCmluZGV4IDZkY2RkZGI2ZjIyNjZkZTJlMThlNDE2
ZTYyOGIwYWQ3MzM5MzNjZDkuLjY1MjM5NmY3YTY0MjJiYWJmYTUyNDFkMjM4MmEyNGQ5YTg0OGZh
NTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVBdWRp
b1RyYWNrUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1v
dGVBdWRpb1RyYWNrUHJveHkuY3BwCkBAIC00MCw3ICs0MCw3IEBAIG5hbWVzcGFjZSBXZWJLaXQg
ewogdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAKIFJlbW90ZUF1ZGlvVHJhY2tQcm94eTo6UmVt
b3RlQXVkaW9UcmFja1Byb3h5KEdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MmIGNvbm5lY3Rpb25U
b1dlYlByb2Nlc3MsIFRyYWNrUHJpdmF0ZVJlbW90ZUlkZW50aWZpZXIgaWRlbnRpZmllciwgQXVk
aW9UcmFja1ByaXZhdGUmIHRyYWNrUHJpdmF0ZSwgTWVkaWFQbGF5ZXJJZGVudGlmaWVyIG1lZGlh
UGxheWVySWRlbnRpZmllcikKLSAgICA6IG1fY29ubmVjdGlvblRvV2ViUHJvY2VzcyhtYWtlV2Vh
a1B0cihjb25uZWN0aW9uVG9XZWJQcm9jZXNzKSkKKyAgICA6IG1fY29ubmVjdGlvblRvV2ViUHJv
Y2Vzcyhjb25uZWN0aW9uVG9XZWJQcm9jZXNzKQogICAgICwgbV9pZGVudGlmaWVyKGlkZW50aWZp
ZXIpCiAgICAgLCBtX3RyYWNrUHJpdmF0ZSh0cmFja1ByaXZhdGUpCiAgICAgLCBtX21lZGlhUGxh
eWVySWRlbnRpZmllcihtZWRpYVBsYXllcklkZW50aWZpZXIpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlQ0RNRmFjdG9yeVByb3h5LmNwcCBiL1NvdXJj
ZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVDRE1GYWN0b3J5UHJveHkuY3BwCmluZGV4
IDA2ZWM1MjcwNmZjYTdmNzE1MzlhOTcwNTk0M2Y4YzdkNWI1MjFkMzEuLjQ4OTgzYzAxODg5YTZl
YzNiZDQwZWE1NThjOWRjMjk3ZjUzMTVjMWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvR1BV
UHJvY2Vzcy9tZWRpYS9SZW1vdGVDRE1GYWN0b3J5UHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJL
aXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVDRE1GYWN0b3J5UHJveHkuY3BwCkBAIC00MSw3ICs0
MSw3IEBAIG5hbWVzcGFjZSBXZWJLaXQgewogdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAKIFJl
bW90ZUNETUZhY3RvcnlQcm94eTo6UmVtb3RlQ0RNRmFjdG9yeVByb3h5KEdQVUNvbm5lY3Rpb25U
b1dlYlByb2Nlc3MmIGNvbm5lY3Rpb24pCi0gICAgOiBtX2dwdUNvbm5lY3Rpb25Ub1dlYlByb2Nl
c3MobWFrZVdlYWtQdHIoY29ubmVjdGlvbikpCisgICAgOiBtX2dwdUNvbm5lY3Rpb25Ub1dlYlBy
b2Nlc3MoY29ubmVjdGlvbikKIHsKIH0KIApAQCAtNzAsNyArNzAsNyBAQCB2b2lkIFJlbW90ZUNE
TUZhY3RvcnlQcm94eTo6Y3JlYXRlQ0RNKGNvbnN0IFN0cmluZyYga2V5U3lzdGVtLCBDb21wbGV0
aW9uSGFuZGxlcgogICAgICAgICByZXR1cm47CiAgICAgfQogCi0gICAgYXV0byBwcm94eSA9IFJl
bW90ZUNETVByb3h5OjpjcmVhdGUobWFrZVdlYWtQdHIodGhpcyksIFdURk1vdmUocHJpdmF0ZUNE
TSkpOworICAgIGF1dG8gcHJveHkgPSBSZW1vdGVDRE1Qcm94eTo6Y3JlYXRlKCp0aGlzLCBXVEZN
b3ZlKHByaXZhdGVDRE0pKTsKICAgICBhdXRvIGlkZW50aWZpZXIgPSBSZW1vdGVDRE1JZGVudGlm
aWVyOjpnZW5lcmF0ZSgpOwogICAgIFJlbW90ZUNETUNvbmZpZ3VyYXRpb24gY29uZmlndXJhdGlv
biA9IHByb3h5LT5jb25maWd1cmF0aW9uKCk7CiAgICAgYWRkUHJveHkoaWRlbnRpZmllciwgV1RG
TW92ZShwcm94eSkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlh
L1JlbW90ZUNETUluc3RhbmNlUHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21l
ZGlhL1JlbW90ZUNETUluc3RhbmNlUHJveHkuY3BwCmluZGV4IGJkODM1YzUxYThjYWVkZDY5NWUw
MGMyNWIwZDIzOWU3MGZkNzlkMWIuLjFiOWI0ODJiOTBiMzc1YzljNjE1NmExMjYyMTU3OTNjMjBh
OTQ4OWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVD
RE1JbnN0YW5jZVByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEv
UmVtb3RlQ0RNSW5zdGFuY2VQcm94eS5jcHAKQEAgLTUzLDcgKzUzLDcgQEAgUmVtb3RlQ0RNSW5z
dGFuY2VQcm94eTo6UmVtb3RlQ0RNSW5zdGFuY2VQcm94eShXZWFrUHRyPFJlbW90ZUNETVByb3h5
PiYmIGNkbSwgUmUKICAgICAsIG1fY29uZmlndXJhdGlvbihXVEZNb3ZlKGNvbmZpZ3VyYXRpb24p
KQogICAgICwgbV9pZGVudGlmaWVyKGlkZW50aWZpZXIpCiB7Ci0gICAgbV9pbnN0YW5jZS0+c2V0
Q2xpZW50KG1ha2VXZWFrUHRyPENETUluc3RhbmNlQ2xpZW50Pih0aGlzKSk7CisgICAgbV9pbnN0
YW5jZS0+c2V0Q2xpZW50KHN0YXRpY19jYXN0PENETUluc3RhbmNlQ2xpZW50Jj4oKnRoaXMpKTsK
IH0KIAogUmVtb3RlQ0RNSW5zdGFuY2VQcm94eTo6flJlbW90ZUNETUluc3RhbmNlUHJveHkoKQpA
QCAtMTA1LDcgKzEwNSw3IEBAIHZvaWQgUmVtb3RlQ0RNSW5zdGFuY2VQcm94eTo6Y3JlYXRlU2Vz
c2lvbihDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGNvbnN0IFJlbW90ZUNECiAgICAgICAgIHJldHVy
bjsKICAgICB9CiAgICAgYXV0byBpZGVudGlmaWVyID0gUmVtb3RlQ0RNSW5zdGFuY2VTZXNzaW9u
SWRlbnRpZmllcjo6Z2VuZXJhdGUoKTsKLSAgICBhdXRvIHNlc3Npb24gPSBSZW1vdGVDRE1JbnN0
YW5jZVNlc3Npb25Qcm94eTo6Y3JlYXRlKG1ha2VXZWFrUHRyKG1fY2RtLmdldCgpKSwgcHJpdlNl
c3Npb24ucmVsZWFzZU5vbk51bGwoKSwgaWRlbnRpZmllcik7CisgICAgYXV0byBzZXNzaW9uID0g
UmVtb3RlQ0RNSW5zdGFuY2VTZXNzaW9uUHJveHk6OmNyZWF0ZShtX2NkbS5nZXQoKSwgcHJpdlNl
c3Npb24ucmVsZWFzZU5vbk51bGwoKSwgaWRlbnRpZmllcik7CiAgICAgbV9jZG0tPmZhY3Rvcnko
KS0+YWRkU2Vzc2lvbihpZGVudGlmaWVyLCBXVEZNb3ZlKHNlc3Npb24pKTsKICAgICBjb21wbGV0
aW9uKGlkZW50aWZpZXIpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNz
L21lZGlhL1JlbW90ZUNETUluc3RhbmNlU2Vzc2lvblByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQv
R1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVDRE1JbnN0YW5jZVNlc3Npb25Qcm94eS5jcHAKaW5kZXgg
ODA2MTQ2MTc3MGYzZWU4NzQzYWE2MjFiN2E4ZDAzMzVmMTExNjFjOC4uZTU3NjZjMjMzNGNmZDM4
OTMxMGNkNGIyMTcyM2NhYmEzNzQyZmM3YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9HUFVQ
cm9jZXNzL21lZGlhL1JlbW90ZUNETUluc3RhbmNlU2Vzc2lvblByb3h5LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlQ0RNSW5zdGFuY2VTZXNzaW9uUHJveHku
Y3BwCkBAIC00MSw3ICs0MSw3IEBAIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogc3RkOjp1bmlx
dWVfcHRyPFJlbW90ZUNETUluc3RhbmNlU2Vzc2lvblByb3h5PiBSZW1vdGVDRE1JbnN0YW5jZVNl
c3Npb25Qcm94eTo6Y3JlYXRlKFdlYWtQdHI8UmVtb3RlQ0RNUHJveHk+JiYgcHJveHksIFJlZjxX
ZWJDb3JlOjpDRE1JbnN0YW5jZVNlc3Npb24+JiYgc2Vzc2lvbiwgUmVtb3RlQ0RNSW5zdGFuY2VT
ZXNzaW9uSWRlbnRpZmllciBpZGVudGlmaWVyKQogewogICAgIGF1dG8gc2Vzc2lvblByb3h5ID0g
c3RkOjp1bmlxdWVfcHRyPFJlbW90ZUNETUluc3RhbmNlU2Vzc2lvblByb3h5PihuZXcgUmVtb3Rl
Q0RNSW5zdGFuY2VTZXNzaW9uUHJveHkoV1RGTW92ZShwcm94eSksIFdURk1vdmUoc2Vzc2lvbiks
IGlkZW50aWZpZXIpKTsKLSAgICBhdXRvIGNsaWVudCA9IG1ha2VXZWFrUHRyPFdlYkNvcmU6OkNE
TUluc3RhbmNlU2Vzc2lvbkNsaWVudD4oc2Vzc2lvblByb3h5LmdldCgpKTsKKyAgICBXZWFrUHRy
PFdlYkNvcmU6OkNETUluc3RhbmNlU2Vzc2lvbkNsaWVudD4gY2xpZW50ID0gc2Vzc2lvblByb3h5
LmdldCgpOwogICAgIHNlc3Npb25Qcm94eS0+bV9zZXNzaW9uLT5zZXRDbGllbnQoV1RGTW92ZShj
bGllbnQpKTsKICAgICByZXR1cm4gc2Vzc2lvblByb3h5OwogfQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZUNETVByb3h5LmNwcCBiL1NvdXJjZS9XZWJL
aXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVDRE1Qcm94eS5jcHAKaW5kZXggNWU1NGU4MjNkN2U3
N2NiYjYwN2Q1NjEyNmEyOTI2ZTI0NmFmYzMyZi4uOWFiMzU3NWY0YzNiNTU5NTU1YjliODdiMjMz
NzFiMWIxYTY2ZGMxNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlh
L1JlbW90ZUNETVByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEv
UmVtb3RlQ0RNUHJveHkuY3BwCkBAIC05MSw3ICs5MSw3IEBAIHZvaWQgUmVtb3RlQ0RNUHJveHk6
OmNyZWF0ZUluc3RhbmNlKENvbXBsZXRpb25IYW5kbGVyPHZvaWQoUmVtb3RlQ0RNSW5zdGFuY2VJ
ZGVuCiAgICAgICAgIHJldHVybjsKICAgICB9CiAgICAgYXV0byBpZGVudGlmaWVyID0gUmVtb3Rl
Q0RNSW5zdGFuY2VJZGVudGlmaWVyOjpnZW5lcmF0ZSgpOwotICAgIGF1dG8gaW5zdGFuY2UgPSBS
ZW1vdGVDRE1JbnN0YW5jZVByb3h5OjpjcmVhdGUobWFrZVdlYWtQdHIodGhpcyksIHByaXZhdGVJ
bnN0YW5jZS5yZWxlYXNlTm9uTnVsbCgpLCBpZGVudGlmaWVyKTsKKyAgICBhdXRvIGluc3RhbmNl
ID0gUmVtb3RlQ0RNSW5zdGFuY2VQcm94eTo6Y3JlYXRlKCp0aGlzLCBwcml2YXRlSW5zdGFuY2Uu
cmVsZWFzZU5vbk51bGwoKSwgaWRlbnRpZmllcik7CiAgICAgUmVtb3RlQ0RNSW5zdGFuY2VDb25m
aWd1cmF0aW9uIGNvbmZpZ3VyYXRpb24gPSBpbnN0YW5jZS0+Y29uZmlndXJhdGlvbigpOwogICAg
IG1fZmFjdG9yeS0+YWRkSW5zdGFuY2UoaWRlbnRpZmllciwgV1RGTW92ZShpbnN0YW5jZSkpOwog
ICAgIGNvbXBsZXRpb24oaWRlbnRpZmllciwgV1RGTW92ZShjb25maWd1cmF0aW9uKSk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlSW1hZ2VEZWNvZGVy
QVZGUHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZUltYWdl
RGVjb2RlckFWRlByb3h5LmNwcAppbmRleCA5NjgzZWRlMDlmOTZmY2Q5ZDE5M2YzNDJmYjVmMDhj
YmFhYjI5ZjYwLi5mYTgzODc0OTQzMjM2NWE0MDg5YWVhNWFlY2JjZWE2NjBkYjY0YmEwIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlSW1hZ2VEZWNvZGVy
QVZGUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVJ
bWFnZURlY29kZXJBVkZQcm94eS5jcHAKQEAgLTQxLDcgKzQxLDcgQEAgbmFtZXNwYWNlIFdlYktp
dCB7CiB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIAogUmVtb3RlSW1hZ2VEZWNvZGVyQVZGUHJv
eHk6OlJlbW90ZUltYWdlRGVjb2RlckFWRlByb3h5KEdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3Mm
IGNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MpCi0gICAgOiBtX2Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3Mo
bWFrZVdlYWtQdHIoY29ubmVjdGlvblRvV2ViUHJvY2VzcykpCisgICAgOiBtX2Nvbm5lY3Rpb25U
b1dlYlByb2Nlc3MoY29ubmVjdGlvblRvV2ViUHJvY2VzcykKIHsKIH0KIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZUxlZ2FjeUNETUZhY3RvcnlQcm94
eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTGVnYWN5Q0RNRmFj
dG9yeVByb3h5LmNwcAppbmRleCA2YWE0ZDFlNzJhOGNlMjllYTdlZmEyOGRkYjliMzc0ZjE4ZjNk
NWZlLi43Y2VkYjk3MTJmYzY2YjViOGRiNTJiYWYwOGNiMGMyYTY0ZTk0ZWU3IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTGVnYWN5Q0RNRmFjdG9yeVBy
b3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTGVnYWN5
Q0RNRmFjdG9yeVByb3h5LmNwcApAQCAtNDIsNyArNDIsNyBAQCBuYW1lc3BhY2UgV2ViS2l0IHsK
IHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogCiBSZW1vdGVMZWdhY3lDRE1GYWN0b3J5UHJveHk6
OlJlbW90ZUxlZ2FjeUNETUZhY3RvcnlQcm94eShHUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzJiBj
b25uZWN0aW9uKQotICAgIDogbV9ncHVDb25uZWN0aW9uVG9XZWJQcm9jZXNzKG1ha2VXZWFrUHRy
KGNvbm5lY3Rpb24pKQorICAgIDogbV9ncHVDb25uZWN0aW9uVG9XZWJQcm9jZXNzKGNvbm5lY3Rp
b24pCiB7CiB9CiAKQEAgLTcwLDcgKzcwLDcgQEAgdm9pZCBSZW1vdGVMZWdhY3lDRE1GYWN0b3J5
UHJveHk6OmNyZWF0ZUNETShjb25zdCBTdHJpbmcmIGtleVN5c3RlbSwgc3RkOjpvcHRpb24KICAg
ICBpZiAob3B0aW9uYWxQbGF5ZXJJZCkKICAgICAgICAgcGxheWVySWQgPSBXVEZNb3ZlKG9wdGlv
bmFsUGxheWVySWQudmFsdWUoKSk7CiAKLSAgICBhdXRvIHByb3h5ID0gUmVtb3RlTGVnYWN5Q0RN
UHJveHk6OmNyZWF0ZShtYWtlV2Vha1B0cih0aGlzKSwgV1RGTW92ZShwbGF5ZXJJZCksIFdURk1v
dmUocHJpdmF0ZUNETSkpOworICAgIGF1dG8gcHJveHkgPSBSZW1vdGVMZWdhY3lDRE1Qcm94eTo6
Y3JlYXRlKCp0aGlzLCBXVEZNb3ZlKHBsYXllcklkKSwgV1RGTW92ZShwcml2YXRlQ0RNKSk7CiAg
ICAgYXV0byBpZGVudGlmaWVyID0gUmVtb3RlTGVnYWN5Q0RNSWRlbnRpZmllcjo6Z2VuZXJhdGUo
KTsKICAgICBhZGRQcm94eShpZGVudGlmaWVyLCBXVEZNb3ZlKHByb3h5KSk7CiAgICAgY29tcGxl
dGlvbihXVEZNb3ZlKGlkZW50aWZpZXIpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BV
UHJvY2Vzcy9tZWRpYS9SZW1vdGVMZWdhY3lDRE1Qcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L0dQ
VVByb2Nlc3MvbWVkaWEvUmVtb3RlTGVnYWN5Q0RNUHJveHkuY3BwCmluZGV4IGJmNTE3NTkyYTAx
ZTBlZWFjN2MyYzhjOTU4OTViYzJmYThlMzc2OTMuLmZmZjZlYjUyOWU1NjlmYjhmNGJlMTMwZDdk
OGNlMzA3NjUzOWI3ODAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRp
YS9SZW1vdGVMZWdhY3lDRE1Qcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNz
L21lZGlhL1JlbW90ZUxlZ2FjeUNETVByb3h5LmNwcApAQCAtNjksNyArNjksNyBAQCB2b2lkIFJl
bW90ZUxlZ2FjeUNETVByb3h5OjpjcmVhdGVTZXNzaW9uKGNvbnN0IFN0cmluZyYga2V5U3lzdGVt
LCBDcmVhdGVTZXNzaW9uQwogICAgIH0KIAogICAgIGF1dG8gaWRlbnRpZmllciA9IFJlbW90ZUxl
Z2FjeUNETVNlc3Npb25JZGVudGlmaWVyOjpnZW5lcmF0ZSgpOwotICAgIGF1dG8gc2Vzc2lvbiA9
IFJlbW90ZUxlZ2FjeUNETVNlc3Npb25Qcm94eTo6Y3JlYXRlKG1ha2VXZWFrUHRyKG1fZmFjdG9y
eS5nZXQoKSksIGlkZW50aWZpZXIsICptX2NkbSk7CisgICAgYXV0byBzZXNzaW9uID0gUmVtb3Rl
TGVnYWN5Q0RNU2Vzc2lvblByb3h5OjpjcmVhdGUobV9mYWN0b3J5LmdldCgpLCBpZGVudGlmaWVy
LCAqbV9jZG0pOwogICAgIG1fZmFjdG9yeS0+YWRkU2Vzc2lvbihpZGVudGlmaWVyLCBXVEZNb3Zl
KHNlc3Npb24pKTsKICAgICBjYWxsYmFjayhXVEZNb3ZlKGlkZW50aWZpZXIpKTsKIH0KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVBsYXllck1h
bmFnZXJQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVk
aWFQbGF5ZXJNYW5hZ2VyUHJveHkuY3BwCmluZGV4IDBhMDBlNDhiYjIxOTZjMmEyNmJkMjI5ZjMy
OWM5ZWRiOGU4YjIyNjUuLjczMTAzZmE0YWI2ZDZmMTk1MDNkNTM4NWNhNDUwYzcyYmM3YjM3ZGIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVBs
YXllck1hbmFnZXJQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlh
L1JlbW90ZU1lZGlhUGxheWVyTWFuYWdlclByb3h5LmNwcApAQCAtNDksNyArNDksNyBAQCBuYW1l
c3BhY2UgV2ViS2l0IHsKIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogCiBSZW1vdGVNZWRpYVBs
YXllck1hbmFnZXJQcm94eTo6UmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyUHJveHkoR1BVQ29ubmVj
dGlvblRvV2ViUHJvY2VzcyYgY29ubmVjdGlvbikKLSAgICA6IG1fZ3B1Q29ubmVjdGlvblRvV2Vi
UHJvY2VzcyhtYWtlV2Vha1B0cihjb25uZWN0aW9uKSkKKyAgICA6IG1fZ3B1Q29ubmVjdGlvblRv
V2ViUHJvY2Vzcyhjb25uZWN0aW9uKQogewogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJQcm94eS5jcHAgYi9Tb3VyY2UvV2Vi
S2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJQcm94eS5jcHAKaW5kZXggZGVl
ZTAyMmI1ZjQxZTJhMzZhZTgzNzlkOTIyMWIzZWZjMzVlMDBmMS4uMWFkYjVhMjhlZDgxMzExZTlj
YjZlNjRiMWVlMzBkNTcwYjQyMzU3MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9HUFVQcm9j
ZXNzL21lZGlhL1JlbW90ZU1lZGlhUGxheWVyUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQv
R1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVBsYXllclByb3h5LmNwcApAQCAtNzYsNyArNzYs
NyBAQCB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIFJlbW90ZU1lZGlhUGxheWVyUHJveHk6OlJl
bW90ZU1lZGlhUGxheWVyUHJveHkoUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyUHJveHkmIG1hbmFn
ZXIsIE1lZGlhUGxheWVySWRlbnRpZmllciBpZGVudGlmaWVyLCBSZWY8SVBDOjpDb25uZWN0aW9u
PiYmIGNvbm5lY3Rpb24sIE1lZGlhUGxheWVyRW51bXM6Ok1lZGlhRW5naW5lSWRlbnRpZmllciBl
bmdpbmVJZGVudGlmaWVyLCBSZW1vdGVNZWRpYVBsYXllclByb3h5Q29uZmlndXJhdGlvbiYmIGNv
bmZpZ3VyYXRpb24pCiAgICAgOiBtX2lkKGlkZW50aWZpZXIpCiAgICAgLCBtX3dlYlByb2Nlc3ND
b25uZWN0aW9uKFdURk1vdmUoY29ubmVjdGlvbikpCi0gICAgLCBtX21hbmFnZXIobWFrZVdlYWtQ
dHIobWFuYWdlcikpCisgICAgLCBtX21hbmFnZXIobWFuYWdlcikKICAgICAsIG1fZW5naW5lSWRl
bnRpZmllcihlbmdpbmVJZGVudGlmaWVyKQogICAgICwgbV91cGRhdGVDYWNoZWRTdGF0ZU1lc3Nh
Z2VUaW1lcihSdW5Mb29wOjptYWluKCksIHRoaXMsICZSZW1vdGVNZWRpYVBsYXllclByb3h5Ojp0
aW1lckZpcmVkKQogICAgICwgbV9jb25maWd1cmF0aW9uKGNvbmZpZ3VyYXRpb24pCkBAIC05MDks
NyArOTA5LDcgQEAgdm9pZCBSZW1vdGVNZWRpYVBsYXllclByb3h5OjpzZXRMZWdhY3lDRE1TZXNz
aW9uKHN0ZDo6b3B0aW9uYWw8UmVtb3RlTGVnYWN5Q0RNU2UKICAgICBpZiAobV9sZWdhY3lTZXNz
aW9uKSB7CiAgICAgICAgIGlmIChhdXRvIGNkbVNlc3Npb24gPSBtX21hbmFnZXItPmdwdUNvbm5l
Y3Rpb25Ub1dlYlByb2Nlc3MoKS0+bGVnYWN5Q2RtRmFjdG9yeVByb3h5KCkuZ2V0U2Vzc2lvbigq
bV9sZWdhY3lTZXNzaW9uKSkgewogICAgICAgICAgICAgbV9wbGF5ZXItPnNldENETVNlc3Npb24o
Y2RtU2Vzc2lvbi0+c2Vzc2lvbigpKTsKLSAgICAgICAgICAgIGNkbVNlc3Npb24tPnNldFBsYXll
cihtYWtlV2Vha1B0cih0aGlzKSk7CisgICAgICAgICAgICBjZG1TZXNzaW9uLT5zZXRQbGF5ZXIo
KnRoaXMpOwogICAgICAgICB9CiAgICAgfQogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9H
UFVQcm9jZXNzL21lZGlhL1JlbW90ZU1lZGlhUmVzb3VyY2UuY3BwIGIvU291cmNlL1dlYktpdC9H
UFVQcm9jZXNzL21lZGlhL1JlbW90ZU1lZGlhUmVzb3VyY2UuY3BwCmluZGV4IDFjZGU3OWIxMWQ5
MDcyZDExOWUxNmFjZWVjODZlNDVkMGE0NGU5YWUuLjkwMjM1NGE5OTMxZmVkMTU1OWU1NGU0MWIx
YzAwNTlhZTg3MTgyMzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRp
YS9SZW1vdGVNZWRpYVJlc291cmNlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3Mv
bWVkaWEvUmVtb3RlTWVkaWFSZXNvdXJjZS5jcHAKQEAgLTQyLDggKzQyLDggQEAgUmVmPFJlbW90
ZU1lZGlhUmVzb3VyY2U+IFJlbW90ZU1lZGlhUmVzb3VyY2U6OmNyZWF0ZShSZW1vdGVNZWRpYVJl
c291cmNlTWFuYWdlciYKIH0KIAogUmVtb3RlTWVkaWFSZXNvdXJjZTo6UmVtb3RlTWVkaWFSZXNv
dXJjZShSZW1vdGVNZWRpYVJlc291cmNlTWFuYWdlciYgcmVtb3RlTWVkaWFSZXNvdXJjZU1hbmFn
ZXIsIFJlbW90ZU1lZGlhUGxheWVyUHJveHkmIHJlbW90ZU1lZGlhUGxheWVyUHJveHksIFJlbW90
ZU1lZGlhUmVzb3VyY2VJZGVudGlmaWVyIGlkZW50aWZpZXIpCi0gICAgOiBtX3JlbW90ZU1lZGlh
UmVzb3VyY2VNYW5hZ2VyKG1ha2VXZWFrUHRyKHJlbW90ZU1lZGlhUmVzb3VyY2VNYW5hZ2VyKSkK
LSAgICAsIG1fcmVtb3RlTWVkaWFQbGF5ZXJQcm94eShtYWtlV2Vha1B0cihyZW1vdGVNZWRpYVBs
YXllclByb3h5KSkKKyAgICA6IG1fcmVtb3RlTWVkaWFSZXNvdXJjZU1hbmFnZXIocmVtb3RlTWVk
aWFSZXNvdXJjZU1hbmFnZXIpCisgICAgLCBtX3JlbW90ZU1lZGlhUGxheWVyUHJveHkocmVtb3Rl
TWVkaWFQbGF5ZXJQcm94eSkKICAgICAsIG1faWQoaWRlbnRpZmllcikKIHsKIH0KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVJlc291cmNlTG9h
ZGVyLmNwcCBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVJlc291
cmNlTG9hZGVyLmNwcAppbmRleCBlZThmZDJkM2U1Y2QyNzYxMWU0MWRlMzhjNjRmODJlZTIxMzU4
MjA3Li5jYzcwZDFjNDE2YmI5YzNjOWI1MGJiNzliMjc1YTIzYmFiOWI0MGVmIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFSZXNvdXJjZUxvYWRl
ci5jcHAKKysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZU1lZGlhUmVz
b3VyY2VMb2FkZXIuY3BwCkBAIC0zNiw3ICszNiw3IEBAIG5hbWVzcGFjZSBXZWJLaXQgewogdXNp
bmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAKIFJlbW90ZU1lZGlhUmVzb3VyY2VMb2FkZXI6OlJlbW90
ZU1lZGlhUmVzb3VyY2VMb2FkZXIoUmVtb3RlTWVkaWFQbGF5ZXJQcm94eSYgcmVtb3RlTWVkaWFQ
bGF5ZXJQcm94eSkKLSAgICA6IG1fcmVtb3RlTWVkaWFQbGF5ZXJQcm94eShtYWtlV2Vha1B0cihy
ZW1vdGVNZWRpYVBsYXllclByb3h5KSkKKyAgICA6IG1fcmVtb3RlTWVkaWFQbGF5ZXJQcm94eShy
ZW1vdGVNZWRpYVBsYXllclByb3h5KQogewogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFTb3VyY2VQcm94eS5jcHAgYi9Tb3VyY2UvV2Vi
S2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFTb3VyY2VQcm94eS5jcHAKaW5kZXggNjMw
ZWJmY2FjMjAwMWMwNjZiOTViNjIyM2QyNjkyMGRhNzkyNmU3MS4uZGQ3YTUxZTQ4YjQyNmE2ODg2
MzZlNmFmZTMxYTY1NDBhMDU3NjhhMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9HUFVQcm9j
ZXNzL21lZGlhL1JlbW90ZU1lZGlhU291cmNlUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQv
R1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVNvdXJjZVByb3h5LmNwcApAQCAtNDIsMTAgKzQy
LDEwIEBAIG5hbWVzcGFjZSBXZWJLaXQgewogdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAKIFJl
bW90ZU1lZGlhU291cmNlUHJveHk6OlJlbW90ZU1lZGlhU291cmNlUHJveHkoR1BVQ29ubmVjdGlv
blRvV2ViUHJvY2VzcyYgY29ubmVjdGlvblRvV2ViUHJvY2VzcywgUmVtb3RlTWVkaWFTb3VyY2VJ
ZGVudGlmaWVyIGlkZW50aWZpZXIsIGJvb2wgd2ViTVBhcnNlckVuYWJsZWQsIFJlbW90ZU1lZGlh
UGxheWVyUHJveHkmIHJlbW90ZU1lZGlhUGxheWVyUHJveHkpCi0gICAgOiBtX2Nvbm5lY3Rpb25U
b1dlYlByb2Nlc3MobWFrZVdlYWtQdHIoY29ubmVjdGlvblRvV2ViUHJvY2VzcykpCisgICAgOiBt
X2Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MoY29ubmVjdGlvblRvV2ViUHJvY2VzcykKICAgICAsIG1f
aWRlbnRpZmllcihpZGVudGlmaWVyKQogICAgICwgbV93ZWJNUGFyc2VyRW5hYmxlZCh3ZWJNUGFy
c2VyRW5hYmxlZCkKLSAgICAsIG1fcmVtb3RlTWVkaWFQbGF5ZXJQcm94eShtYWtlV2Vha1B0cihy
ZW1vdGVNZWRpYVBsYXllclByb3h5KSkKKyAgICAsIG1fcmVtb3RlTWVkaWFQbGF5ZXJQcm94eShy
ZW1vdGVNZWRpYVBsYXllclByb3h5KQogewogICAgIG1fY29ubmVjdGlvblRvV2ViUHJvY2Vzcy0+
bWVzc2FnZVJlY2VpdmVyTWFwKCkuYWRkTWVzc2FnZVJlY2VpdmVyKE1lc3NhZ2VzOjpSZW1vdGVN
ZWRpYVNvdXJjZVByb3h5OjptZXNzYWdlUmVjZWl2ZXJOYW1lKCksIG1faWRlbnRpZmllci50b1VJ
bnQ2NCgpLCAqdGhpcyk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3Mv
bWVkaWEvUmVtb3RlUmVtb3RlQ29tbWFuZExpc3RlbmVyUHJveHkuY3BwIGIvU291cmNlL1dlYktp
dC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZVJlbW90ZUNvbW1hbmRMaXN0ZW5lclByb3h5LmNwcApp
bmRleCA4M2Q4N2EwYWYwZTAxYWYzNGM5M2Q4YTgxYmJjMzRlMWUyYjdiNzM1Li45Yzk3NGE0ZTBh
OGQzYmYzYjIzMWJhZTcwM2M5YzI5OGVlNGY3OGYwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlUmVtb3RlQ29tbWFuZExpc3RlbmVyUHJveHkuY3BwCisr
KyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVSZW1vdGVDb21tYW5kTGlz
dGVuZXJQcm94eS5jcHAKQEAgLTM3LDcgKzM3LDcgQEAgbmFtZXNwYWNlIFdlYktpdCB7CiB1c2lu
ZyBuYW1lc3BhY2UgV2ViQ29yZTsKIAogUmVtb3RlUmVtb3RlQ29tbWFuZExpc3RlbmVyUHJveHk6
OlJlbW90ZVJlbW90ZUNvbW1hbmRMaXN0ZW5lclByb3h5KEdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nl
c3MmIGdwdUNvbm5lY3Rpb24sIFJlbW90ZVJlbW90ZUNvbW1hbmRMaXN0ZW5lcklkZW50aWZpZXIm
JiBpZGVudGlmaWVyKQotICAgIDogbV9ncHVDb25uZWN0aW9uKG1ha2VXZWFrUHRyKGdwdUNvbm5l
Y3Rpb24pKQorICAgIDogbV9ncHVDb25uZWN0aW9uKGdwdUNvbm5lY3Rpb24pCiAgICAgLCBtX2lk
ZW50aWZpZXIoV1RGTW92ZShpZGVudGlmaWVyKSkKIHsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVTb3VyY2VCdWZmZXJQcm94eS5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlU291cmNlQnVmZmVyUHJveHkuY3BwCmlu
ZGV4IGQ3ZGRlMGE4ZWNjZmE5OGE5MDhkOWU1ZTJmYWZmMGQ3ZGU2YzY5ZGIuLjI3OTE2NWRlNjZh
YWZlMDI0NjgxZTE2MWEwMzVjNGExMDk1NGU2ZTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
R1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVTb3VyY2VCdWZmZXJQcm94eS5jcHAKKysrIGIvU291cmNl
L1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZVNvdXJjZUJ1ZmZlclByb3h5LmNwcApAQCAt
NTAsMTAgKzUwLDEwIEBAIFJlZjxSZW1vdGVTb3VyY2VCdWZmZXJQcm94eT4gUmVtb3RlU291cmNl
QnVmZmVyUHJveHk6OmNyZWF0ZShHUFVDb25uZWN0aW9uVG9XZWJQCiB9CiAKIFJlbW90ZVNvdXJj
ZUJ1ZmZlclByb3h5OjpSZW1vdGVTb3VyY2VCdWZmZXJQcm94eShHUFVDb25uZWN0aW9uVG9XZWJQ
cm9jZXNzJiBjb25uZWN0aW9uVG9XZWJQcm9jZXNzLCBSZW1vdGVTb3VyY2VCdWZmZXJJZGVudGlm
aWVyIGlkZW50aWZpZXIsIFJlZjxTb3VyY2VCdWZmZXJQcml2YXRlPiYmIHNvdXJjZUJ1ZmZlclBy
aXZhdGUsIFJlbW90ZU1lZGlhUGxheWVyUHJveHkmIHJlbW90ZU1lZGlhUGxheWVyUHJveHkpCi0g
ICAgOiBtX2Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MobWFrZVdlYWtQdHIoY29ubmVjdGlvblRvV2Vi
UHJvY2VzcykpCisgICAgOiBtX2Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MoY29ubmVjdGlvblRvV2Vi
UHJvY2VzcykKICAgICAsIG1faWRlbnRpZmllcihpZGVudGlmaWVyKQogICAgICwgbV9zb3VyY2VC
dWZmZXJQcml2YXRlKFdURk1vdmUoc291cmNlQnVmZmVyUHJpdmF0ZSkpCi0gICAgLCBtX3JlbW90
ZU1lZGlhUGxheWVyUHJveHkobWFrZVdlYWtQdHIocmVtb3RlTWVkaWFQbGF5ZXJQcm94eSkpCisg
ICAgLCBtX3JlbW90ZU1lZGlhUGxheWVyUHJveHkocmVtb3RlTWVkaWFQbGF5ZXJQcm94eSkKIHsK
ICAgICBtX2Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MtPm1lc3NhZ2VSZWNlaXZlck1hcCgpLmFkZE1l
c3NhZ2VSZWNlaXZlcihNZXNzYWdlczo6UmVtb3RlU291cmNlQnVmZmVyUHJveHk6Om1lc3NhZ2VS
ZWNlaXZlck5hbWUoKSwgbV9pZGVudGlmaWVyLnRvVUludDY0KCksICp0aGlzKTsKICAgICBtX3Nv
dXJjZUJ1ZmZlclByaXZhdGUtPnNldENsaWVudCh0aGlzKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVUZXh0VHJhY2tQcm94eS5jcHAgYi9Tb3VyY2Uv
V2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlVGV4dFRyYWNrUHJveHkuY3BwCmluZGV4IDk4
ZDY2MzVlOWE1MDcyNGRmOWU5Yzg3YThiMGI1NDY0ODMzYjk3N2MuLmFjMjEwNzk0Y2Q0ZTMwMTAz
MjVjNmM2YjNjY2ZhODZmYjRlODk1MTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvR1BVUHJv
Y2Vzcy9tZWRpYS9SZW1vdGVUZXh0VHJhY2tQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9H
UFVQcm9jZXNzL21lZGlhL1JlbW90ZVRleHRUcmFja1Byb3h5LmNwcApAQCAtNDQsNyArNDQsNyBA
QCBuYW1lc3BhY2UgV2ViS2l0IHsKIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogCiBSZW1vdGVU
ZXh0VHJhY2tQcm94eTo6UmVtb3RlVGV4dFRyYWNrUHJveHkoR1BVQ29ubmVjdGlvblRvV2ViUHJv
Y2VzcyYgY29ubmVjdGlvblRvV2ViUHJvY2VzcywgVHJhY2tQcml2YXRlUmVtb3RlSWRlbnRpZmll
ciBpZGVudGlmaWVyLCBJbmJhbmRUZXh0VHJhY2tQcml2YXRlJiB0cmFja1ByaXZhdGUsIE1lZGlh
UGxheWVySWRlbnRpZmllciBtZWRpYVBsYXllcklkZW50aWZpZXIpCi0gICAgOiBtX2Nvbm5lY3Rp
b25Ub1dlYlByb2Nlc3MobWFrZVdlYWtQdHIoY29ubmVjdGlvblRvV2ViUHJvY2VzcykpCisgICAg
OiBtX2Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MoY29ubmVjdGlvblRvV2ViUHJvY2VzcykKICAgICAs
IG1faWRlbnRpZmllcihpZGVudGlmaWVyKQogICAgICwgbV90cmFja1ByaXZhdGUodHJhY2tQcml2
YXRlKQogICAgICwgbV9tZWRpYVBsYXllcklkZW50aWZpZXIobWVkaWFQbGF5ZXJJZGVudGlmaWVy
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZVZpZGVv
VHJhY2tQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlVmlk
ZW9UcmFja1Byb3h5LmNwcAppbmRleCA0OWM0N2EzNTUxMzhiMjVhNTliODMxMjdiNWU2OWM2Y2Vi
Mjk3OTQyLi5mZjM3YzRmOTljM2MxOTZhN2U1NmU5ZmRjNzg2NzUxZmJjNzVhYjQ5IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlVmlkZW9UcmFja1Byb3h5
LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlVmlkZW9UcmFj
a1Byb3h5LmNwcApAQCAtNDAsNyArNDAsNyBAQCBuYW1lc3BhY2UgV2ViS2l0IHsKIHVzaW5nIG5h
bWVzcGFjZSBXZWJDb3JlOwogCiBSZW1vdGVWaWRlb1RyYWNrUHJveHk6OlJlbW90ZVZpZGVvVHJh
Y2tQcm94eShHUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzJiBjb25uZWN0aW9uVG9XZWJQcm9jZXNz
LCBUcmFja1ByaXZhdGVSZW1vdGVJZGVudGlmaWVyIGlkZW50aWZpZXIsIFZpZGVvVHJhY2tQcml2
YXRlJiB0cmFja1ByaXZhdGUsIE1lZGlhUGxheWVySWRlbnRpZmllciBtZWRpYVBsYXllcklkZW50
aWZpZXIpCi0gICAgOiBtX2Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MobWFrZVdlYWtQdHIoY29ubmVj
dGlvblRvV2ViUHJvY2VzcykpCisgICAgOiBtX2Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MoY29ubmVj
dGlvblRvV2ViUHJvY2VzcykKICAgICAsIG1faWRlbnRpZmllcihpZGVudGlmaWVyKQogICAgICwg
bV90cmFja1ByaXZhdGUodHJhY2tQcml2YXRlKQogICAgICwgbV9tZWRpYVBsYXllcklkZW50aWZp
ZXIobWVkaWFQbGF5ZXJJZGVudGlmaWVyKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3
b3JrUHJvY2Vzcy9DbGFzc2lmaWVyL1dlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZS5jcHAg
Yi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0NsYXNzaWZpZXIvV2ViUmVzb3VyY2VMb2Fk
U3RhdGlzdGljc1N0b3JlLmNwcAppbmRleCBhZWE0MDkxYTViYjE0YjcxYTU5MTUyZmFhNGY0Nzhm
NWNiZDRjNTE5Li41Mzk5NTQ1NWY3NWYzYzViZjRiZjk2MjM4ZjYzZjNkNzIzNzVmNDFmIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0NsYXNzaWZpZXIvV2ViUmVzb3Vy
Y2VMb2FkU3RhdGlzdGljc1N0b3JlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9j
ZXNzL0NsYXNzaWZpZXIvV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlLmNwcApAQCAtMTUw
LDcgKzE1MCw3IEBAIHN0YXRpYyBSZWY8U3VzcGVuZGFibGVXb3JrUXVldWU+IHNoYXJlZFN0YXRp
c3RpY3NRdWV1ZSgpCiB9CiAKIFdlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZTo6V2ViUmVz
b3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlKE5ldHdvcmtTZXNzaW9uJiBuZXR3b3JrU2Vzc2lvbiwg
Y29uc3QgU3RyaW5nJiByZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGlyZWN0b3J5LCBTaG91bGRJbmNs
dWRlTG9jYWxob3N0IHNob3VsZEluY2x1ZGVMb2NhbGhvc3QsIFJlc291cmNlTG9hZFN0YXRpc3Rp
Y3M6OklzRXBoZW1lcmFsIGlzRXBoZW1lcmFsKQotICAgIDogbV9uZXR3b3JrU2Vzc2lvbihtYWtl
V2Vha1B0cihuZXR3b3JrU2Vzc2lvbikpCisgICAgOiBtX25ldHdvcmtTZXNzaW9uKG5ldHdvcmtT
ZXNzaW9uKQogICAgICwgbV9zdGF0aXN0aWNzUXVldWUoc2hhcmVkU3RhdGlzdGljc1F1ZXVlKCkp
CiAgICAgLCBtX2RhaWx5VGFza3NUaW1lcihSdW5Mb29wOjptYWluKCksIHRoaXMsICZXZWJSZXNv
dXJjZUxvYWRTdGF0aXN0aWNzU3RvcmU6OnBlcmZvcm1EYWlseVRhc2tzKQogICAgICwgbV9pc0Vw
aGVtZXJhbChpc0VwaGVtZXJhbCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1By
b2Nlc3MvRG93bmxvYWRzL2NvY29hL1dLRG93bmxvYWRQcm9ncmVzcy5tbSBiL1NvdXJjZS9XZWJL
aXQvTmV0d29ya1Byb2Nlc3MvRG93bmxvYWRzL2NvY29hL1dLRG93bmxvYWRQcm9ncmVzcy5tbQpp
bmRleCAyZGFhOTM2NWUxNmI1NmMwOWE5MjBjMGE1MGI4MDdjNmMyZTVlNzUxLi41NzAzNWQxMjRl
N2E0OTJmNGFjNDgzNGQwZjQ5YjUzMDU4M2EwZWJhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L05ldHdvcmtQcm9jZXNzL0Rvd25sb2Fkcy9jb2NvYS9XS0Rvd25sb2FkUHJvZ3Jlc3MubW0KKysr
IGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9Eb3dubG9hZHMvY29jb2EvV0tEb3dubG9h
ZFByb2dyZXNzLm1tCkBAIC01Niw3ICs1Niw3IEBAIC0gKGluc3RhbmNldHlwZSlpbml0V2l0aERv
d25sb2FkVGFzazooTlNVUkxTZXNzaW9uRG93bmxvYWRUYXNrICopdGFzayBkb3dubG9hZDooCiAg
ICAgICAgIHJldHVybiBuaWw7CiAKICAgICBtX3Rhc2sgPSB0YXNrOwotICAgIG1fZG93bmxvYWQg
PSBtYWtlV2Vha1B0cihkb3dubG9hZCk7CisgICAgbV9kb3dubG9hZCA9IGRvd25sb2FkOwogCiAg
ICAgW3Rhc2sgYWRkT2JzZXJ2ZXI6c2VsZiBmb3JLZXlQYXRoOmNvdW50T2ZCeXRlc0V4cGVjdGVk
VG9SZWNlaXZlS2V5UGF0aCBvcHRpb25zOk5TS2V5VmFsdWVPYnNlcnZpbmdPcHRpb25OZXcgfCBO
U0tleVZhbHVlT2JzZXJ2aW5nT3B0aW9uSW5pdGlhbCBjb250ZXh0OldLRG93bmxvYWRQcm9ncmVz
c0J5dGVzRXhwZWN0ZWRUb1JlY2VpdmVDb3VudENvbnRleHRdOwogICAgIFt0YXNrIGFkZE9ic2Vy
dmVyOnNlbGYgZm9yS2V5UGF0aDpjb3VudE9mQnl0ZXNSZWNlaXZlZEtleVBhdGggb3B0aW9uczpO
U0tleVZhbHVlT2JzZXJ2aW5nT3B0aW9uTmV3IHwgTlNLZXlWYWx1ZU9ic2VydmluZ09wdGlvbklu
aXRpYWwgY29udGV4dDpXS0Rvd25sb2FkUHJvZ3Jlc3NCeXRlc1JlY2VpdmVkQ29udGV4dF07CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtDT1JTUHJlZmxp
Z2h0Q2hlY2tlci5jcHAgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtDT1JT
UHJlZmxpZ2h0Q2hlY2tlci5jcHAKaW5kZXggMTdiNGY5YTljOGNiOGFjNTBkNWNlYmRlOTVkYTYz
MzY1YmM0MWU5MS4uZjQwNTk2NjRkYzdhMmEwZTMxZjM2NjExMzhmMWEzNmEwYjNmMDg1NSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ09SU1ByZWZsaWdo
dENoZWNrZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0NP
UlNQcmVmbGlnaHRDaGVja2VyLmNwcApAQCAtNDYsNyArNDYsNyBAQCBOZXR3b3JrQ09SU1ByZWZs
aWdodENoZWNrZXI6Ok5ldHdvcmtDT1JTUHJlZmxpZ2h0Q2hlY2tlcihOZXR3b3JrUHJvY2VzcyYg
bmV0d29yawogICAgICwgbV9uZXR3b3JrUHJvY2VzcyhuZXR3b3JrUHJvY2VzcykKICAgICAsIG1f
Y29tcGxldGlvbkNhbGxiYWNrKFdURk1vdmUoY29tcGxldGlvbkNhbGxiYWNrKSkKICAgICAsIG1f
c2hvdWxkQ2FwdHVyZUV4dHJhTmV0d29ya0xvYWRNZXRyaWNzKHNob3VsZENhcHR1cmVFeHRyYU5l
dHdvcmtMb2FkTWV0cmljcykKLSAgICAsIG1fbmV0d29ya1Jlc291cmNlTG9hZGVyKG1ha2VXZWFr
UHRyKG5ldHdvcmtSZXNvdXJjZUxvYWRlcikpCisgICAgLCBtX25ldHdvcmtSZXNvdXJjZUxvYWRl
cihuZXR3b3JrUmVzb3VyY2VMb2FkZXIpCiB7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuY3BwIGIvU291
cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5j
cHAKaW5kZXggN2VmZjJlODk4NTIwNTdhMjc3MzlkNjEyNmFmYTIwNGMzMjllNGIxNC4uNWQ3YjVl
YTE0NjE2OGRmNGQwNDk3YjIxNDFmM2IzZDhkMTMwYjA2NyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5jcHAKKysr
IGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJv
Y2Vzcy5jcHAKQEAgLTExMzksNyArMTEzOSw3IEBAIHZvaWQgTmV0d29ya0Nvbm5lY3Rpb25Ub1dl
YlByb2Nlc3M6OmVzdGFibGlzaFNXU2VydmVyQ29ubmVjdGlvbigpCiAgICAgYXV0byYgc2VydmVy
ID0gbV9uZXR3b3JrUHJvY2Vzcy0+c3dTZXJ2ZXJGb3JTZXNzaW9uKG1fc2Vzc2lvbklEKTsKICAg
ICBhdXRvIGNvbm5lY3Rpb24gPSBtYWtlVW5pcXVlPFdlYlNXU2VydmVyQ29ubmVjdGlvbj4obV9u
ZXR3b3JrUHJvY2Vzcywgc2VydmVyLCBtX2Nvbm5lY3Rpb24uZ2V0KCksIG1fd2ViUHJvY2Vzc0lk
ZW50aWZpZXIpOwogCi0gICAgbV9zd0Nvbm5lY3Rpb24gPSBtYWtlV2Vha1B0cigqY29ubmVjdGlv
bik7CisgICAgbV9zd0Nvbm5lY3Rpb24gPSAqY29ubmVjdGlvbjsKICAgICBzZXJ2ZXIuYWRkQ29u
bmVjdGlvbihXVEZNb3ZlKGNvbm5lY3Rpb24pKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrRGF0YVRhc2suY3BwIGIvU291cmNlL1dlYktpdC9O
ZXR3b3JrUHJvY2Vzcy9OZXR3b3JrRGF0YVRhc2suY3BwCmluZGV4IGRlZTRmODk3NDI4M2I0MDAx
MDk2YzlhZDM5NjY5MzY4Zjc0YzFiYzUuLmQ1MTc4NTczZGNjYTE5ZDVlNjY2ZDRhNGM3MTg4NTgz
YmIxMTdhMjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29y
a0RhdGFUYXNrLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtE
YXRhVGFzay5jcHAKQEAgLTY0LDcgKzY0LDcgQEAgUmVmPE5ldHdvcmtEYXRhVGFzaz4gTmV0d29y
a0RhdGFUYXNrOjpjcmVhdGUoTmV0d29ya1Nlc3Npb24mIHNlc3Npb24sIE5ldHdvcmtEYXQKIH0K
IAogTmV0d29ya0RhdGFUYXNrOjpOZXR3b3JrRGF0YVRhc2soTmV0d29ya1Nlc3Npb24mIHNlc3Np
b24sIE5ldHdvcmtEYXRhVGFza0NsaWVudCYgY2xpZW50LCBjb25zdCBSZXNvdXJjZVJlcXVlc3Qm
IHJlcXVlc3RXaXRoQ3JlZGVudGlhbHMsIFN0b3JlZENyZWRlbnRpYWxzUG9saWN5IHN0b3JlZENy
ZWRlbnRpYWxzUG9saWN5LCBib29sIHNob3VsZENsZWFyUmVmZXJyZXJPbkhUVFBTVG9IVFRQUmVk
aXJlY3QsIGJvb2wgZGF0YVRhc2tJc0Zvck1haW5GcmFtZU5hdmlnYXRpb24pCi0gICAgOiBtX3Nl
c3Npb24obWFrZVdlYWtQdHIoc2Vzc2lvbikpCisgICAgOiBtX3Nlc3Npb24oc2Vzc2lvbikKICAg
ICAsIG1fY2xpZW50KCZjbGllbnQpCiAgICAgLCBtX3BhcnRpdGlvbihyZXF1ZXN0V2l0aENyZWRl
bnRpYWxzLmNhY2hlUGFydGl0aW9uKCkpCiAgICAgLCBtX3N0b3JlZENyZWRlbnRpYWxzUG9saWN5
KHN0b3JlZENyZWRlbnRpYWxzUG9saWN5KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3
b3JrUHJvY2Vzcy9OZXR3b3JrTG9hZC5jcHAgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNz
L05ldHdvcmtMb2FkLmNwcAppbmRleCBhYWY2YjExZDNlZDk5MjczNWE2MjA1OGEwODIwNGNjMGZi
MzkzNTFhLi5hMTg1YmE1NmJiNzI2NDM3MjkyYzJiMWUwZDYyNDlkM2ZhY2FlY2U4IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtMb2FkLmNwcAorKysgYi9T
b3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtMb2FkLmNwcApAQCAtNzYsNyArNzYs
NyBAQCB2b2lkIE5ldHdvcmtMb2FkOjpzdGFydFdpdGhTY2hlZHVsaW5nKCkKIHsKICAgICBpZiAo
IW1fdGFzayB8fCAhbV90YXNrLT5uZXR3b3JrU2Vzc2lvbigpKQogICAgICAgICByZXR1cm47Ci0g
ICAgbV9zY2hlZHVsZXIgPSBtYWtlV2Vha1B0cihtX3Rhc2stPm5ldHdvcmtTZXNzaW9uKCktPm5l
dHdvcmtMb2FkU2NoZWR1bGVyKCkpOworICAgIG1fc2NoZWR1bGVyID0gbV90YXNrLT5uZXR3b3Jr
U2Vzc2lvbigpLT5uZXR3b3JrTG9hZFNjaGVkdWxlcigpOwogICAgIG1fc2NoZWR1bGVyLT5zY2hl
ZHVsZSgqdGhpcyk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nl
c3MvTmV0d29ya0xvYWRDaGVja2VyLmNwcCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mv
TmV0d29ya0xvYWRDaGVja2VyLmNwcAppbmRleCA4YjRjY2E3NjIxMjczMzBjOWVkOTMwZDg3NDA4
NGY1NGQ0NGZiODQ0Li4yNzVlZmI3MzZlYzEzMmQ2NjFiOTUyNDc3YzFhMzc3MThiZGQzYWZmIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtMb2FkQ2hlY2tl
ci5jcHAKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrTG9hZENoZWNr
ZXIuY3BwCkBAIC02Nyw3ICs2Nyw3IEBAIE5ldHdvcmtMb2FkQ2hlY2tlcjo6TmV0d29ya0xvYWRD
aGVja2VyKE5ldHdvcmtQcm9jZXNzJiBuZXR3b3JrUHJvY2VzcywgTmV0d29ya1JlCiAgICAgLCBt
X3Nob3VsZENhcHR1cmVFeHRyYU5ldHdvcmtMb2FkTWV0cmljcyhzaG91bGRDYXB0dXJlRXh0cmFO
ZXR3b3JrTG9hZE1ldHJpY3MpCiAgICAgLCBtX3JlcXVlc3RMb2FkVHlwZShyZXF1ZXN0TG9hZFR5
cGUpCiAgICAgLCBtX3NjaGVtZVJlZ2lzdHJ5KHNjaGVtZVJlZ2lzdHJ5KQotICAgICwgbV9uZXR3
b3JrUmVzb3VyY2VMb2FkZXIobWFrZVdlYWtQdHIobmV0d29ya1Jlc291cmNlTG9hZGVyKSkKKyAg
ICAsIG1fbmV0d29ya1Jlc291cmNlTG9hZGVyKG5ldHdvcmtSZXNvdXJjZUxvYWRlcikKIHsKICAg
ICBtX2lzU2FtZU9yaWdpblJlcXVlc3QgPSBpc1NhbWVPcmlnaW4obV91cmwsIG1fb3JpZ2luLmdl
dCgpKTsKICAgICBzd2l0Y2ggKG9wdGlvbnMuY3JlZGVudGlhbHMpIHsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuY3BwIGIvU291cmNlL1dl
YktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5jcHAKaW5kZXggMWQ1YWNkNTAyMmQy
NjU1NzUwNzJhMDVlZTRmYjFkNzdhYTRlYTE3NC4uZjk1MDYyNjE0ZTk2NDBjM2NkNjI5ZDczOTRj
YmViODU5ODJiNTRjOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9O
ZXR3b3JrUHJvY2Vzcy5jcHAKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3
b3JrUHJvY2Vzcy5jcHAKQEAgLTEzODgsNyArMTM4OCw3IEBAIHZvaWQgTmV0d29ya1Byb2Nlc3M6
OnByZWNvbm5lY3RUbyhQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIFdlYlBhZ2VQcm94eUlkZW50
aWZpCiAgICAgcGFyYW1ldGVycy5zaG91bGRQcmVjb25uZWN0T25seSA9IFByZWNvbm5lY3RPbmx5
OjpZZXM7CiAKICAgICBuZXR3b3JrU2Vzc2lvbi0+bmV0d29ya0xvYWRTY2hlZHVsZXIoKS5zdGFy
dGVkUHJlY29ubmVjdEZvck1haW5SZXNvdXJjZSh1cmwsIHVzZXJBZ2VudCk7Ci0gICAgYXV0byB0
YXNrID0gbmV3IFByZWNvbm5lY3RUYXNrKCpuZXR3b3JrU2Vzc2lvbiwgV1RGTW92ZShwYXJhbWV0
ZXJzKSwgW3dlYWtOZXR3b3JrU2Vzc2lvbiA9IG1ha2VXZWFrUHRyKCpuZXR3b3JrU2Vzc2lvbiks
IHVybCwgdXNlckFnZW50XShjb25zdCBXZWJDb3JlOjpSZXNvdXJjZUVycm9yJiBlcnJvcikgewor
ICAgIGF1dG8gdGFzayA9IG5ldyBQcmVjb25uZWN0VGFzaygqbmV0d29ya1Nlc3Npb24sIFdURk1v
dmUocGFyYW1ldGVycyksIFt3ZWFrTmV0d29ya1Nlc3Npb24gPSBXZWFrUHRyIHsgKm5ldHdvcmtT
ZXNzaW9uIH0sIHVybCwgdXNlckFnZW50XShjb25zdCBXZWJDb3JlOjpSZXNvdXJjZUVycm9yJiBl
cnJvcikgewogICAgICAgICBpZiAod2Vha05ldHdvcmtTZXNzaW9uKQogICAgICAgICAgICAgd2Vh
a05ldHdvcmtTZXNzaW9uLT5uZXR3b3JrTG9hZFNjaGVkdWxlcigpLmZpbmlzaGVkUHJlY29ubmVj
dEZvck1haW5SZXNvdXJjZSh1cmwsIHVzZXJBZ2VudCwgZXJyb3IpOwogICAgIH0pOwpAQCAtMTk0
MCw3ICsxOTQwLDcgQEAgdm9pZCBOZXR3b3JrUHJvY2Vzczo6ZGVsZXRlQW5kUmVzdHJpY3RXZWJz
aXRlRGF0YUZvclJlZ2lzdHJhYmxlRG9tYWlucyhQQUw6OlNlc3MKIAogICAgIGlmICh3ZWJzaXRl
RGF0YVR5cGVzLmNvbnRhaW5zKFdlYnNpdGVEYXRhVHlwZTo6RGlza0NhY2hlKSkgewogICAgICAg
ICBmb3JFYWNoTmV0d29ya1Nlc3Npb24oW3Nlc3Npb25JRCwgZmV0Y2hPcHRpb25zLCAmZG9tYWlu
c1RvRGVsZXRlQWxsTm9uQ29va2llV2Vic2l0ZURhdGFGb3IsICZjYWxsYmFja0FnZ3JlZ2F0b3Jd
KGF1dG8mIHNlc3Npb24pIHsKLSAgICAgICAgICAgIGZldGNoRGlza0NhY2hlRW50cmllcyhzZXNz
aW9uLmNhY2hlKCksIHNlc3Npb25JRCwgZmV0Y2hPcHRpb25zLCBbZG9tYWluc1RvRGVsZXRlQWxs
Tm9uQ29va2llV2Vic2l0ZURhdGFGb3IsIGNhbGxiYWNrQWdncmVnYXRvciwgc2Vzc2lvbiA9IG1h
a2VXZWFrUHRyKCZzZXNzaW9uKV0oYXV0byBlbnRyaWVzKSBtdXRhYmxlIHsKKyAgICAgICAgICAg
IGZldGNoRGlza0NhY2hlRW50cmllcyhzZXNzaW9uLmNhY2hlKCksIHNlc3Npb25JRCwgZmV0Y2hP
cHRpb25zLCBbZG9tYWluc1RvRGVsZXRlQWxsTm9uQ29va2llV2Vic2l0ZURhdGFGb3IsIGNhbGxi
YWNrQWdncmVnYXRvciwgc2Vzc2lvbiA9IFdlYWtQdHIgeyBzZXNzaW9uIH1dKGF1dG8gZW50cmll
cykgbXV0YWJsZSB7CiAgICAgICAgICAgICAgICAgaWYgKCFzZXNzaW9uKQogICAgICAgICAgICAg
ICAgICAgICByZXR1cm47CiAKQEAgLTI2MTUsNyArMjYxNSw3IEBAIHZvaWQgTmV0d29ya1Byb2Nl
c3M6OnNpbXVsYXRlUmVzb3VyY2VMb2FkU3RhdGlzdGljc1Nlc3Npb25SZXN0YXJ0KFBBTDo6U2Vz
c2lvbklECiB7CiAgICAgLy8gRklYTUU6IFJlbmFtZSB0aGlzIHRvIHNpbXVsYXRlUHJpdmF0ZUNs
aWNrTWVhc3VyZW1lbnRTZXNzaW9uUmVzdGFydC4KICAgICBpZiAoYXV0byogc2Vzc2lvbiA9IG5l
dHdvcmtTZXNzaW9uKHNlc3Npb25JRCkpIHsKLSAgICAgICAgc2Vzc2lvbi0+cmVjcmVhdGVQcml2
YXRlQ2xpY2tNZWFzdXJlbWVudFN0b3JlKFtzZXNzaW9uID0gbWFrZVdlYWtQdHIoKnNlc3Npb24p
LCBjb21wbGV0aW9uSGFuZGxlciA9IFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpXSAoKSBtdXRh
YmxlIHsKKyAgICAgICAgc2Vzc2lvbi0+cmVjcmVhdGVQcml2YXRlQ2xpY2tNZWFzdXJlbWVudFN0
b3JlKFtzZXNzaW9uID0gV2Vha1B0ciB7ICpzZXNzaW9uIH0sIGNvbXBsZXRpb25IYW5kbGVyID0g
V1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcildICgpIG11dGFibGUgewogICAgICAgICAgICAgaWYg
KHNlc3Npb24pCiAgICAgICAgICAgICAgICAgc2Vzc2lvbi0+ZmlyZVByaXZhdGVDbGlja01lYXN1
cmVtZW50VGltZXJJbW1lZGlhdGVseUZvclRlc3RpbmcoKTsKICAgICAgICAgICAgIGNvbXBsZXRp
b25IYW5kbGVyKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05l
dHdvcmtSZXNvdXJjZUxvYWRlci5jcHAgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05l
dHdvcmtSZXNvdXJjZUxvYWRlci5jcHAKaW5kZXggZGFjMTg0MDVjYmNmNWY2Y2ZkZjAzNjM0YjQ0
NjhmMmZiYjE4ZDk0MC4uMGVmODFjZWRiNjdjMTk3MjAwZDI3MGNhNjk1ZDNkYThkZmFjNmIwYSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUmVzb3VyY2VM
b2FkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Jlc291
cmNlTG9hZGVyLmNwcApAQCAtODUwLDcgKzg1MCw3IEBAIHZvaWQgTmV0d29ya1Jlc291cmNlTG9h
ZGVyOjpzZW5kRGlkUmVjZWl2ZVJlc3BvbnNlUG90ZW50aWFsbHlJbk5ld0Jyb3dzaW5nQ29udGV4
CiAgICAgYXV0byBleGlzdGluZ05ldHdvcmtSZXNvdXJjZUxvYWRJZGVudGlmaWVyVG9SZXN1bWUg
PSBsb2FkZXItPmlkZW50aWZpZXIoKTsKICAgICBtX2Nvbm5lY3Rpb24tPm5ldHdvcmtTZXNzaW9u
KCktPmFkZExvYWRlckF3YWl0aW5nV2ViUHJvY2Vzc1RyYW5zZmVyKGxvYWRlci5yZWxlYXNlTm9u
TnVsbCgpKTsKICAgICBSZWdpc3RyYWJsZURvbWFpbiByZXNwb25zZURvbWFpbiB7IHJlc3BvbnNl
LnVybCgpIH07Ci0gICAgbV9jb25uZWN0aW9uLT5uZXR3b3JrUHJvY2VzcygpLnBhcmVudFByb2Nl
c3NDb25uZWN0aW9uKCktPnNlbmRXaXRoQXN5bmNSZXBseShNZXNzYWdlczo6TmV0d29ya1Byb2Nl
c3NQcm94eTo6VHJpZ2dlckJyb3dzaW5nQ29udGV4dEdyb3VwU3dpdGNoRm9yTmF2aWdhdGlvbiht
X3BhcmFtZXRlcnMud2ViUGFnZVByb3h5SUQsIG1fcGFyYW1ldGVycy5uYXZpZ2F0aW9uSUQsIGJy
b3dzaW5nQ29udGV4dEdyb3VwU3dpdGNoRGVjaXNpb24sIHJlc3BvbnNlRG9tYWluLCBleGlzdGlu
Z05ldHdvcmtSZXNvdXJjZUxvYWRJZGVudGlmaWVyVG9SZXN1bWUpLCBbZXhpc3RpbmdOZXR3b3Jr
UmVzb3VyY2VMb2FkSWRlbnRpZmllclRvUmVzdW1lLCBzZXNzaW9uID0gbWFrZVdlYWtQdHIoY29u
bmVjdGlvblRvV2ViUHJvY2VzcygpLm5ldHdvcmtTZXNzaW9uKCkpXShib29sIHN1Y2Nlc3MpIHsK
KyAgICBtX2Nvbm5lY3Rpb24tPm5ldHdvcmtQcm9jZXNzKCkucGFyZW50UHJvY2Vzc0Nvbm5lY3Rp
b24oKS0+c2VuZFdpdGhBc3luY1JlcGx5KE1lc3NhZ2VzOjpOZXR3b3JrUHJvY2Vzc1Byb3h5OjpU
cmlnZ2VyQnJvd3NpbmdDb250ZXh0R3JvdXBTd2l0Y2hGb3JOYXZpZ2F0aW9uKG1fcGFyYW1ldGVy
cy53ZWJQYWdlUHJveHlJRCwgbV9wYXJhbWV0ZXJzLm5hdmlnYXRpb25JRCwgYnJvd3NpbmdDb250
ZXh0R3JvdXBTd2l0Y2hEZWNpc2lvbiwgcmVzcG9uc2VEb21haW4sIGV4aXN0aW5nTmV0d29ya1Jl
c291cmNlTG9hZElkZW50aWZpZXJUb1Jlc3VtZSksIFtleGlzdGluZ05ldHdvcmtSZXNvdXJjZUxv
YWRJZGVudGlmaWVyVG9SZXN1bWUsIHNlc3Npb24gPSBXZWFrUHRyIHsgY29ubmVjdGlvblRvV2Vi
UHJvY2VzcygpLm5ldHdvcmtTZXNzaW9uKCkgfV0oYm9vbCBzdWNjZXNzKSB7CiAgICAgICAgIGlm
IChzdWNjZXNzKQogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICBpZiAoc2Vzc2lvbikKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1NvY2tldENoYW5u
ZWwuY3BwIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrU29ja2V0Q2hhbm5l
bC5jcHAKaW5kZXggNzcxMTJmNzhiMmI4ZTQ0ZDJjZDAyNjg1ZjJjOWVhYWYyODhkMTUxYy4uZTg3
MTUyNDAzM2Q4NmNhNjlhYWFhNjBjZDczYTI0YjEzNmJjZjA2NiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrU29ja2V0Q2hhbm5lbC5jcHAKKysrIGIvU291
cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrU29ja2V0Q2hhbm5lbC5jcHAKQEAgLTQ5
LDcgKzQ5LDcgQEAgc3RkOjp1bmlxdWVfcHRyPE5ldHdvcmtTb2NrZXRDaGFubmVsPiBOZXR3b3Jr
U29ja2V0Q2hhbm5lbDo6Y3JlYXRlKE5ldHdvcmtDb25uZWMKIE5ldHdvcmtTb2NrZXRDaGFubmVs
OjpOZXR3b3JrU29ja2V0Q2hhbm5lbChOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2VzcyYgY29u
bmVjdGlvbiwgTmV0d29ya1Nlc3Npb24qIHNlc3Npb24sIGNvbnN0IFJlc291cmNlUmVxdWVzdCYg
cmVxdWVzdCwgY29uc3QgU3RyaW5nJiBwcm90b2NvbCwgV2ViU29ja2V0SWRlbnRpZmllciBpZGVu
dGlmaWVyLCBXZWJQYWdlUHJveHlJZGVudGlmaWVyIHdlYlBhZ2VQcm94eUlEKQogICAgIDogbV9j
b25uZWN0aW9uVG9XZWJQcm9jZXNzKGNvbm5lY3Rpb24pCiAgICAgLCBtX2lkZW50aWZpZXIoaWRl
bnRpZmllcikKLSAgICAsIG1fc2Vzc2lvbihtYWtlV2Vha1B0cihzZXNzaW9uKSkKKyAgICAsIG1f
c2Vzc2lvbihzZXNzaW9uKQogICAgICwgbV9lcnJvclRpbWVyKCp0aGlzLCAmTmV0d29ya1NvY2tl
dENoYW5uZWw6OnNlbmREZWxheWVkRXJyb3IpCiAgICAgLCBtX3dlYlBhZ2VQcm94eUlEKHdlYlBh
Z2VQcm94eUlEKQogewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9O
ZXR3b3JrU3RvcmFnZVNlc3Npb25Qcm92aWRlci5oIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJv
Y2Vzcy9OZXR3b3JrU3RvcmFnZVNlc3Npb25Qcm92aWRlci5oCmluZGV4IGNiMzIxOTg4ZWM4NDFj
YmE5MmFjY2FlMTNjZmM0MzkyMTM0NzljY2YuLjI3ZTAxZGY1YzFjMDRjZGUwOTM0OGIyNDhmZGYx
ODFhYTJlMmRkYzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0
d29ya1N0b3JhZ2VTZXNzaW9uUHJvdmlkZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQ
cm9jZXNzL05ldHdvcmtTdG9yYWdlU2Vzc2lvblByb3ZpZGVyLmgKQEAgLTM5LDcgKzM5LDcgQEAg
cHVibGljOgogICAgIAogcHJpdmF0ZToKICAgICBOZXR3b3JrU3RvcmFnZVNlc3Npb25Qcm92aWRl
cihOZXR3b3JrUHJvY2VzcyYgbmV0d29ya1Byb2Nlc3MsIFBBTDo6U2Vzc2lvbklEIHNlc3Npb25J
RCkKLSAgICAgICAgOiBtX25ldHdvcmtQcm9jZXNzKG1ha2VXZWFrUHRyKG5ldHdvcmtQcm9jZXNz
KSkKKyAgICAgICAgOiBtX25ldHdvcmtQcm9jZXNzKG5ldHdvcmtQcm9jZXNzKQogICAgICAgICAs
IG1fc2Vzc2lvbklEKHNlc3Npb25JRCkgeyB9CiAKICAgICBXZWJDb3JlOjpOZXR3b3JrU3RvcmFn
ZVNlc3Npb24qIHN0b3JhZ2VTZXNzaW9uKCkgY29uc3QgZmluYWwKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvUHJpdmF0ZUNs
aWNrTWVhc3VyZW1lbnRDbGllbnRJbXBsLmNwcCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nl
c3MvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRDbGllbnRJ
bXBsLmNwcAppbmRleCA1NzZlNGY1OTQ5ODczZmVmNjM2NjZkY2JhMjRlOWI5OTdkOWUyMDdmLi5h
OTg3YzY1ZTFiYTEwNGIwYWYyMmJlOWQ0NmVjNzgyOWVkOGY0NWZkIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1ByaXZhdGVDbGlja01lYXN1cmVtZW50L1ByaXZhdGVD
bGlja01lYXN1cmVtZW50Q2xpZW50SW1wbC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3Jr
UHJvY2Vzcy9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudENs
aWVudEltcGwuY3BwCkBAIC0zNCw3ICszNCw3IEBAIG5hbWVzcGFjZSBXZWJLaXQgewogbmFtZXNw
YWNlIFBDTSB7CiAKIENsaWVudEltcGw6OkNsaWVudEltcGwoTmV0d29ya1Nlc3Npb24mIHNlc3Np
b24sIE5ldHdvcmtQcm9jZXNzJiBuZXR3b3JrUHJvY2VzcykKLSAgICA6IG1fbmV0d29ya1Nlc3Np
b24obWFrZVdlYWtQdHIoc2Vzc2lvbikpCisgICAgOiBtX25ldHdvcmtTZXNzaW9uKHNlc3Npb24p
CiAgICAgLCBtX25ldHdvcmtQcm9jZXNzKG5ldHdvcmtQcm9jZXNzKSB7IH0KIAogdm9pZCBDbGll
bnRJbXBsOjpicm9hZGNhc3RDb25zb2xlTWVzc2FnZShKU0M6Ok1lc3NhZ2VMZXZlbCBtZXNzYWdl
TGV2ZWwsIGNvbnN0IFN0cmluZyYgbWVzc2FnZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
TmV0d29ya1Byb2Nlc3MvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvUHJpdmF0ZUNsaWNrTWVhc3Vy
ZW1lbnRDb25uZWN0aW9uLmNwcCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvUHJpdmF0
ZUNsaWNrTWVhc3VyZW1lbnQvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRDb25uZWN0aW9uLmNwcApp
bmRleCBhNmU1ZjNlZjhmMTY4NmIwNDEwNmI0ZWU1MTNiMWRiZTA4OTJmMzc1Li5kMGQ4YTgxZjlm
M2MzNWM0MDU1MDQxNGM0NDY4ZjY4MTRiMjM1NzNhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L05ldHdvcmtQcm9jZXNzL1ByaXZhdGVDbGlja01lYXN1cmVtZW50L1ByaXZhdGVDbGlja01lYXN1
cmVtZW50Q29ubmVjdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9Q
cml2YXRlQ2xpY2tNZWFzdXJlbWVudC9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudENvbm5lY3Rpb24u
Y3BwCkBAIC0zNSw3ICszNSw4IEBAIG5hbWVzcGFjZSBQQ00gewogCiBDb25uZWN0aW9uVG9NYWNo
U2VydmljZTo6Q29ubmVjdGlvblRvTWFjaFNlcnZpY2UoQ1N0cmluZyYmIG1hY2hTZXJ2aWNlTmFt
ZSwgTmV0d29ya1Nlc3Npb24mIG5ldHdvcmtTZXNzaW9uKQogICAgIDogbV9tYWNoU2VydmljZU5h
bWUoV1RGTW92ZShtYWNoU2VydmljZU5hbWUpKQotICAgICwgbV9uZXR3b3JrU2Vzc2lvbihtYWtl
V2Vha1B0cihuZXR3b3JrU2Vzc2lvbikpIHsgfQorICAgICwgbV9uZXR3b3JrU2Vzc2lvbihuZXR3
b3JrU2Vzc2lvbikKK3sgfQogCiAjaWYgIVBMQVRGT1JNKENPQ09BKQogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1ByaXZhdGVDbGlja01lYXN1cmVtZW50L2NvY29h
L1ByaXZhdGVDbGlja01lYXN1cmVtZW50Q29ubmVjdGlvbkNvY29hLm1tIGIvU291cmNlL1dlYktp
dC9OZXR3b3JrUHJvY2Vzcy9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9jb2NvYS9Qcml2YXRlQ2xp
Y2tNZWFzdXJlbWVudENvbm5lY3Rpb25Db2NvYS5tbQppbmRleCA3MzU1YmYyMDMwMTA1M2FmMTNh
ZDkyMGM4ODdlOWYzMDdiYmE1ZGI4Li5lOGFmNDkxMmU0OTA2NmViNTgzYWIwZTBjMTRmMGEzYzll
MDZkODdmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1ByaXZhdGVD
bGlja01lYXN1cmVtZW50L2NvY29hL1ByaXZhdGVDbGlja01lYXN1cmVtZW50Q29ubmVjdGlvbkNv
Y29hLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvUHJpdmF0ZUNsaWNrTWVh
c3VyZW1lbnQvY29jb2EvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRDb25uZWN0aW9uQ29jb2EubW0K
QEAgLTM5LDcgKzM5LDcgQEAgdm9pZCBDb25uZWN0aW9uVG9NYWNoU2VydmljZTo6aW5pdGlhbGl6
ZUNvbm5lY3Rpb25JZk5lZWRlZCgpIGNvbnN0CiAgICAgaWYgKG1fY29ubmVjdGlvbikKICAgICAg
ICAgcmV0dXJuOwogICAgIG1fY29ubmVjdGlvbiA9IGFkb3B0TlMoeHBjX2Nvbm5lY3Rpb25fY3Jl
YXRlX21hY2hfc2VydmljZShtX21hY2hTZXJ2aWNlTmFtZS5kYXRhKCksIGRpc3BhdGNoX2dldF9t
YWluX3F1ZXVlKCksIDApKTsKLSAgICB4cGNfY29ubmVjdGlvbl9zZXRfZXZlbnRfaGFuZGxlciht
X2Nvbm5lY3Rpb24uZ2V0KCksIFt3ZWFrVGhpcyA9IG1ha2VXZWFrUHRyKCp0aGlzKV0oeHBjX29i
amVjdF90IGV2ZW50KSB7CisgICAgeHBjX2Nvbm5lY3Rpb25fc2V0X2V2ZW50X2hhbmRsZXIobV9j
b25uZWN0aW9uLmdldCgpLCBbd2Vha1RoaXMgPSBXZWFrUHRyIHsgKnRoaXMgfV0oeHBjX29iamVj
dF90IGV2ZW50KSB7CiAgICAgICAgIGlmICghd2Vha1RoaXMpCiAgICAgICAgICAgICByZXR1cm47
CiAgICAgICAgIGlmIChldmVudCA9PSBYUENfRVJST1JfQ09OTkVDVElPTl9JTlZBTElEKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1NlcnZp
Y2VXb3JrZXJGZXRjaFRhc2suY3BwIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9TZXJ2
aWNlV29ya2VyL1NlcnZpY2VXb3JrZXJGZXRjaFRhc2suY3BwCmluZGV4IDgyNTdlYzgxNGZmMjkw
YTY1YzY0MjVjMjJhNTcyZGFlMzE1ZTU1MTAuLmUyYmY1OGQ3MTI2NGNiODdjZjEyMzk5ZTI1N2U4
NTA5OTU2Yzk5YzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvU2Vy
dmljZVdvcmtlci9TZXJ2aWNlV29ya2VyRmV0Y2hUYXNrLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0
L05ldHdvcmtQcm9jZXNzL1NlcnZpY2VXb3JrZXIvU2VydmljZVdvcmtlckZldGNoVGFzay5jcHAK
QEAgLTUwLDcgKzUwLDcgQEAgbmFtZXNwYWNlIFdlYktpdCB7CiB1c2luZyBuYW1lc3BhY2UgV2Vi
Q29yZTsKIAogU2VydmljZVdvcmtlckZldGNoVGFzazo6U2VydmljZVdvcmtlckZldGNoVGFzayhX
ZWJTV1NlcnZlckNvbm5lY3Rpb24mIHN3U2VydmVyQ29ubmVjdGlvbiwgTmV0d29ya1Jlc291cmNl
TG9hZGVyJiBsb2FkZXIsIFJlc291cmNlUmVxdWVzdCYmIHJlcXVlc3QsIFNXU2VydmVyQ29ubmVj
dGlvbklkZW50aWZpZXIgc2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIsIFNlcnZpY2VXb3JrZXJJ
ZGVudGlmaWVyIHNlcnZpY2VXb3JrZXJJZGVudGlmaWVyLCBTZXJ2aWNlV29ya2VyUmVnaXN0cmF0
aW9uSWRlbnRpZmllciBzZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uSWRlbnRpZmllciwgYm9vbCBz
aG91bGRTb2Z0VXBkYXRlKQotICAgIDogbV9zd1NlcnZlckNvbm5lY3Rpb24obWFrZVdlYWtQdHIo
c3dTZXJ2ZXJDb25uZWN0aW9uKSkKKyAgICA6IG1fc3dTZXJ2ZXJDb25uZWN0aW9uKHN3U2VydmVy
Q29ubmVjdGlvbikKICAgICAsIG1fbG9hZGVyKGxvYWRlcikKICAgICAsIG1fZmV0Y2hJZGVudGlm
aWVyKFdlYkNvcmU6OkZldGNoSWRlbnRpZmllcjo6Z2VuZXJhdGUoKSkKICAgICAsIG1fc2VydmVy
Q29ubmVjdGlvbklkZW50aWZpZXIoc2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIpCkBAIC04NCw3
ICs4NCw3IEBAIHRlbXBsYXRlPHR5cGVuYW1lIE1lc3NhZ2U+IGJvb2wgU2VydmljZVdvcmtlckZl
dGNoVGFzazo6c2VuZFRvQ2xpZW50KE1lc3NhZ2UmJiBtCiB2b2lkIFNlcnZpY2VXb3JrZXJGZXRj
aFRhc2s6OnN0YXJ0KFdlYlNXU2VydmVyVG9Db250ZXh0Q29ubmVjdGlvbiYgc2VydmljZVdvcmtl
ckNvbm5lY3Rpb24pCiB7CiAgICAgU1dGRVRDSF9SRUxFQVNFX0xPRygic3RhcnQ6Iik7Ci0gICAg
bV9zZXJ2aWNlV29ya2VyQ29ubmVjdGlvbiA9IG1ha2VXZWFrUHRyKHNlcnZpY2VXb3JrZXJDb25u
ZWN0aW9uKTsKKyAgICBtX3NlcnZpY2VXb3JrZXJDb25uZWN0aW9uID0gc2VydmljZVdvcmtlckNv
bm5lY3Rpb247CiAgICAgc2VydmljZVdvcmtlckNvbm5lY3Rpb24ucmVnaXN0ZXJGZXRjaCgqdGhp
cyk7CiAKICAgICBzdGFydEZldGNoKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdv
cmtQcm9jZXNzL1NlcnZpY2VXb3JrZXIvU2VydmljZVdvcmtlclNvZnRVcGRhdGVMb2FkZXIuY3Bw
IGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1NlcnZpY2VXb3Jr
ZXJTb2Z0VXBkYXRlTG9hZGVyLmNwcAppbmRleCA5NTI5ODkwNGRjMjcxODE0YzY5NmRiOTk3MmNk
ZWYwNTU3NzM5MmVhLi44ZWUxMTJhOWRmODI4OTU0YzE2MjNmZmYyMmMyYTIwZmQ4ZTJmZTdkIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1NlcnZpY2VXb3JrZXIvU2Vy
dmljZVdvcmtlclNvZnRVcGRhdGVMb2FkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29y
a1Byb2Nlc3MvU2VydmljZVdvcmtlci9TZXJ2aWNlV29ya2VyU29mdFVwZGF0ZUxvYWRlci5jcHAK
QEAgLTUyLDcgKzUyLDcgQEAgdm9pZCBTZXJ2aWNlV29ya2VyU29mdFVwZGF0ZUxvYWRlcjo6c3Rh
cnQoTmV0d29ya1Nlc3Npb24qIHNlc3Npb24sIFNlcnZpY2VXb3JrZXIKIFNlcnZpY2VXb3JrZXJT
b2Z0VXBkYXRlTG9hZGVyOjpTZXJ2aWNlV29ya2VyU29mdFVwZGF0ZUxvYWRlcihOZXR3b3JrU2Vz
c2lvbiYgc2Vzc2lvbiwgU2VydmljZVdvcmtlckpvYkRhdGEmJiBqb2JEYXRhLCBib29sIHNob3Vs
ZFJlZnJlc2hDYWNoZSwgUmVzb3VyY2VSZXF1ZXN0JiYgcmVxdWVzdCwgSGFuZGxlciYmIGNvbXBs
ZXRpb25IYW5kbGVyKQogICAgIDogbV9jb21wbGV0aW9uSGFuZGxlcihXVEZNb3ZlKGNvbXBsZXRp
b25IYW5kbGVyKSkKICAgICAsIG1fam9iRGF0YShXVEZNb3ZlKGpvYkRhdGEpKQotICAgICwgbV9z
ZXNzaW9uKG1ha2VXZWFrUHRyKHNlc3Npb24pKQorICAgICwgbV9zZXNzaW9uKHNlc3Npb24pCiB7
CiAgICAgQVNTRVJUKCFyZXF1ZXN0LmlzQ29uZGl0aW9uYWwoKSk7CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvU2VydmljZVdvcmtlci9XZWJTV1NlcnZlclRvQ29u
dGV4dENvbm5lY3Rpb24uY3BwIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9TZXJ2aWNl
V29ya2VyL1dlYlNXU2VydmVyVG9Db250ZXh0Q29ubmVjdGlvbi5jcHAKaW5kZXggM2NhMDk2Yzdj
NGI3NzkzMTg0MTBhM2IxYTNiNzI2MzEzNjY5MWIyMy4uODVlZWRjNmU5NjMyYzZkMjYwZWNhMWIy
MjBhOWM1M2E4ODhjMWUyYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vz
cy9TZXJ2aWNlV29ya2VyL1dlYlNXU2VydmVyVG9Db250ZXh0Q29ubmVjdGlvbi5jcHAKKysrIGIv
U291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1dlYlNXU2VydmVyVG9D
b250ZXh0Q29ubmVjdGlvbi5jcHAKQEAgLTQ3LDcgKzQ3LDcgQEAgdXNpbmcgbmFtZXNwYWNlIFdl
YkNvcmU7CiBXZWJTV1NlcnZlclRvQ29udGV4dENvbm5lY3Rpb246OldlYlNXU2VydmVyVG9Db250
ZXh0Q29ubmVjdGlvbihOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2VzcyYgY29ubmVjdGlvbiwg
V2ViUGFnZVByb3h5SWRlbnRpZmllciB3ZWJQYWdlUHJveHlJRCwgUmVnaXN0cmFibGVEb21haW4m
JiByZWdpc3RyYWJsZURvbWFpbiwgc3RkOjpvcHRpb25hbDxTZXJ2aWNlV29ya2VyQ2xpZW50SWRl
bnRpZmllcj4gc2VydmljZVdvcmtlclBhZ2VJZGVudGlmaWVyLCBTV1NlcnZlciYgc2VydmVyKQog
ICAgIDogU1dTZXJ2ZXJUb0NvbnRleHRDb25uZWN0aW9uKFdURk1vdmUocmVnaXN0cmFibGVEb21h
aW4pLCBzZXJ2aWNlV29ya2VyUGFnZUlkZW50aWZpZXIpCiAgICAgLCBtX2Nvbm5lY3Rpb24oY29u
bmVjdGlvbikKLSAgICAsIG1fc2VydmVyKG1ha2VXZWFrUHRyKHNlcnZlcikpCisgICAgLCBtX3Nl
cnZlcihzZXJ2ZXIpCiAgICAgLCBtX3dlYlBhZ2VQcm94eUlEKHdlYlBhZ2VQcm94eUlEKQogewog
ICAgIHNlcnZlci5hZGRDb250ZXh0Q29ubmVjdGlvbigqdGhpcyk7CkBAIC0xODgsNyArMTg4LDcg
QEAgdm9pZCBXZWJTV1NlcnZlclRvQ29udGV4dENvbm5lY3Rpb246OmRpZFJlY2VpdmVGZXRjaFRh
c2tNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYKIHZvaWQgV2ViU1dTZXJ2ZXJUb0NvbnRleHRDb25u
ZWN0aW9uOjpyZWdpc3RlckZldGNoKFNlcnZpY2VXb3JrZXJGZXRjaFRhc2smIHRhc2spCiB7CiAg
ICAgQVNTRVJUKCFtX29uZ29pbmdGZXRjaGVzLmNvbnRhaW5zKHRhc2suZmV0Y2hJZGVudGlmaWVy
KCkpKTsKLSAgICBtX29uZ29pbmdGZXRjaGVzLmFkZCh0YXNrLmZldGNoSWRlbnRpZmllcigpLCBt
YWtlV2Vha1B0cih0YXNrKSk7CisgICAgbV9vbmdvaW5nRmV0Y2hlcy5hZGQodGFzay5mZXRjaElk
ZW50aWZpZXIoKSwgdGFzayk7CiB9CiAKIHZvaWQgV2ViU1dTZXJ2ZXJUb0NvbnRleHRDb25uZWN0
aW9uOjp1bnJlZ2lzdGVyRmV0Y2goU2VydmljZVdvcmtlckZldGNoVGFzayYgdGFzaykKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvV2ViU3RvcmFnZS9TdG9yYWdlQXJl
YS5jcHAgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1dlYlN0b3JhZ2UvU3RvcmFnZUFy
ZWEuY3BwCmluZGV4IGRkOTFlNzhhNWIxNjA5MTUxZWFiMTFlNjQwNmRmNjU5ZDFiZDUwMTAuLmM4
NGVhZDQzMGFiMTVkOTRmZDhlZjI1MzNkNmU0OTI4NzJiNmUxMmIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvV2ViU3RvcmFnZS9TdG9yYWdlQXJlYS5jcHAKKysrIGIv
U291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9XZWJTdG9yYWdlL1N0b3JhZ2VBcmVhLmNwcApA
QCAtMzcsNyArMzcsNyBAQCBuYW1lc3BhY2UgV2ViS2l0IHsKIHVzaW5nIG5hbWVzcGFjZSBXZWJD
b3JlOwogCiBTdG9yYWdlQXJlYTo6U3RvcmFnZUFyZWEoTG9jYWxTdG9yYWdlTmFtZXNwYWNlKiBs
b2NhbFN0b3JhZ2VOYW1lc3BhY2UsIGNvbnN0IFNlY3VyaXR5T3JpZ2luRGF0YSYgc2VjdXJpdHlP
cmlnaW4sIHVuc2lnbmVkIHF1b3RhSW5CeXRlcywgUmVmPFN1c3BlbmRhYmxlV29ya1F1ZXVlPiYm
IHF1ZXVlKQotICAgIDogbV9sb2NhbFN0b3JhZ2VOYW1lc3BhY2UobWFrZVdlYWtQdHIobG9jYWxT
dG9yYWdlTmFtZXNwYWNlKSkKKyAgICA6IG1fbG9jYWxTdG9yYWdlTmFtZXNwYWNlKGxvY2FsU3Rv
cmFnZU5hbWVzcGFjZSkKICAgICAsIG1fc2VjdXJpdHlPcmlnaW4oc2VjdXJpdHlPcmlnaW4pCiAg
ICAgLCBtX3F1b3RhSW5CeXRlcyhxdW90YUluQnl0ZXMpCiAgICAgLCBtX2lkZW50aWZpZXIoSWRl
bnRpZmllcjo6Z2VuZXJhdGUoKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1By
b2Nlc3MvV2ViU3RvcmFnZS9TdG9yYWdlTWFuYWdlclNldC5jcHAgYi9Tb3VyY2UvV2ViS2l0L05l
dHdvcmtQcm9jZXNzL1dlYlN0b3JhZ2UvU3RvcmFnZU1hbmFnZXJTZXQuY3BwCmluZGV4IDA4ZjYx
YWJkN2FhYjU4ZGNmNGRjMzFmMzYxMGRiMWQ3ZGVlYWI0MTEuLjZmZDcwM2E1ZTViMmQwMTQzNTk4
NWVhYjNhZWRjMWUwZDFhOTNiMTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1By
b2Nlc3MvV2ViU3RvcmFnZS9TdG9yYWdlTWFuYWdlclNldC5jcHAKKysrIGIvU291cmNlL1dlYktp
dC9OZXR3b3JrUHJvY2Vzcy9XZWJTdG9yYWdlL1N0b3JhZ2VNYW5hZ2VyU2V0LmNwcApAQCAtMzE1
LDcgKzMxNSw3IEBAIHZvaWQgU3RvcmFnZU1hbmFnZXJTZXQ6OmNvbm5lY3RUb0xvY2FsU3RvcmFn
ZUFyZWEoSVBDOjpDb25uZWN0aW9uJiBjb25uZWN0aW9uLCBQCiAgICAgfQogCiAgICAgYXV0byBz
dG9yYWdlQXJlYUlEID0gc3RvcmFnZUFyZWEtPmlkZW50aWZpZXIoKTsKLSAgICBhdXRvIGl0ZXIg
PSBtX3N0b3JhZ2VBcmVhcy5hZGQoc3RvcmFnZUFyZWFJRCwgbWFrZVdlYWtQdHIoc3RvcmFnZUFy
ZWEpKS5pdGVyYXRvcjsKKyAgICBhdXRvIGl0ZXIgPSBtX3N0b3JhZ2VBcmVhcy5hZGQoc3RvcmFn
ZUFyZWFJRCwgc3RvcmFnZUFyZWEpLml0ZXJhdG9yOwogICAgIEFTU0VSVF9VTlVTRUQoaXRlciwg
c3RvcmFnZUFyZWEgPT0gaXRlci0+dmFsdWUuZ2V0KCkpOwogCiAgICAgY29tcGxldGlvbkhhbmRs
ZXIoc3RvcmFnZUFyZWFJRCk7CkBAIC0zNDAsNyArMzQwLDcgQEAgdm9pZCBTdG9yYWdlTWFuYWdl
clNldDo6Y29ubmVjdFRvVHJhbnNpZW50TG9jYWxTdG9yYWdlQXJlYShJUEM6OkNvbm5lY3Rpb24m
IGNvbm4KICAgICB9CiAKICAgICBhdXRvIHN0b3JhZ2VBcmVhSUQgPSBzdG9yYWdlQXJlYS0+aWRl
bnRpZmllcigpOwotICAgIGF1dG8gaXRlciA9IG1fc3RvcmFnZUFyZWFzLmFkZChzdG9yYWdlQXJl
YUlELCBtYWtlV2Vha1B0cihzdG9yYWdlQXJlYSkpLml0ZXJhdG9yOworICAgIGF1dG8gaXRlciA9
IG1fc3RvcmFnZUFyZWFzLmFkZChzdG9yYWdlQXJlYUlELCBzdG9yYWdlQXJlYSkuaXRlcmF0b3I7
CiAgICAgQVNTRVJUX1VOVVNFRChpdGVyLCBzdG9yYWdlQXJlYSA9PSBpdGVyLT52YWx1ZS5nZXQo
KSk7CiAKICAgICBjb21wbGV0aW9uSGFuZGxlcihzdG9yYWdlQXJlYUlEKTsKQEAgLTM2NSw3ICsz
NjUsNyBAQCB2b2lkIFN0b3JhZ2VNYW5hZ2VyU2V0Ojpjb25uZWN0VG9TZXNzaW9uU3RvcmFnZUFy
ZWEoSVBDOjpDb25uZWN0aW9uJiBjb25uZWN0aW9uLAogICAgIH0KIAogICAgIGF1dG8gc3RvcmFn
ZUFyZWFJRCA9IHN0b3JhZ2VBcmVhLT5pZGVudGlmaWVyKCk7Ci0gICAgYXV0byBpdGVyID0gbV9z
dG9yYWdlQXJlYXMuYWRkKHN0b3JhZ2VBcmVhSUQsIG1ha2VXZWFrUHRyKHN0b3JhZ2VBcmVhKSku
aXRlcmF0b3I7CisgICAgYXV0byBpdGVyID0gbV9zdG9yYWdlQXJlYXMuYWRkKHN0b3JhZ2VBcmVh
SUQsIHN0b3JhZ2VBcmVhKS5pdGVyYXRvcjsKICAgICBBU1NFUlRfVU5VU0VEKGl0ZXIsIHN0b3Jh
Z2VBcmVhID09IGl0ZXItPnZhbHVlLmdldCgpKTsKIAogICAgIGNvbXBsZXRpb25IYW5kbGVyKHN0
b3JhZ2VBcmVhSUQpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9j
YWNoZS9DYWNoZVN0b3JhZ2VFbmdpbmUuY3BwIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vz
cy9jYWNoZS9DYWNoZVN0b3JhZ2VFbmdpbmUuY3BwCmluZGV4IGJmMTk3NGZjNTcwNDExZGVjMDU3
ZWE0MTQ3MDJlMGNjMDUxZjYzMzAuLmYzMjcyMTVmZTU4N2ExOGMxZGI4YzRjZWNkNThiMDVkNjM1
NTQ4MTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY2FjaGUvQ2Fj
aGVTdG9yYWdlRW5naW5lLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2Nh
Y2hlL0NhY2hlU3RvcmFnZUVuZ2luZS5jcHAKQEAgLTI2MCw3ICsyNjAsNyBAQCB2b2lkIEVuZ2lu
ZTo6cmVxdWVzdFNwYWNlKGNvbnN0IFdlYkNvcmU6OkNsaWVudE9yaWdpbiYgb3JpZ2luLCB1aW50
NjRfdCBzcGFjZVJlcQogCiBFbmdpbmU6OkVuZ2luZShQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQs
IE5ldHdvcmtQcm9jZXNzJiBwcm9jZXNzLCBTdHJpbmcmJiByb290UGF0aCkKICAgICA6IG1fc2Vz
c2lvbklEKHNlc3Npb25JRCkKLSAgICAsIG1fbmV0d29ya1Byb2Nlc3MobWFrZVdlYWtQdHIocHJv
Y2VzcykpCisgICAgLCBtX25ldHdvcmtQcm9jZXNzKHByb2Nlc3MpCiAgICAgLCBtX3Jvb3RQYXRo
KFdURk1vdmUocm9vdFBhdGgpKQogewogICAgIGlmICghbV9yb290UGF0aC5pc051bGwoKSkKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY29jb2EvTmV0d29ya0RhdGFU
YXNrQ29jb2EubW0gYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NvY29hL05ldHdvcmtE
YXRhVGFza0NvY29hLm1tCmluZGV4IDE5ZDRlYjQ1YjUyMzg2MTY1MGM2ZWQ4NzA4M2Q2OTZiN2Y1
ZjdhZGEuLmI5MGNmMDA3ZWE5OTc0NjQyMDhiZTVhZmQyNzVlNjJkY2U4MzdkNDcgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY29jb2EvTmV0d29ya0RhdGFUYXNrQ29j
b2EubW0KKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jb2NvYS9OZXR3b3JrRGF0
YVRhc2tDb2NvYS5tbQpAQCAtMjkzLDcgKzI5Myw3IEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBjb21w
dXRlSXNBbHdheXNPbkxvZ2dpbmdBbGxvd2VkKE5ldHdvcmtTZXNzaW9uJiBzZXNzaW9uKQogCiBO
ZXR3b3JrRGF0YVRhc2tDb2NvYTo6TmV0d29ya0RhdGFUYXNrQ29jb2EoTmV0d29ya1Nlc3Npb24m
IHNlc3Npb24sIE5ldHdvcmtEYXRhVGFza0NsaWVudCYgY2xpZW50LCBjb25zdCBOZXR3b3JrTG9h
ZFBhcmFtZXRlcnMmIHBhcmFtZXRlcnMpCiAgICAgOiBOZXR3b3JrRGF0YVRhc2soc2Vzc2lvbiwg
Y2xpZW50LCBwYXJhbWV0ZXJzLnJlcXVlc3QsIHBhcmFtZXRlcnMuc3RvcmVkQ3JlZGVudGlhbHNQ
b2xpY3ksIHBhcmFtZXRlcnMuc2hvdWxkQ2xlYXJSZWZlcnJlck9uSFRUUFNUb0hUVFBSZWRpcmVj
dCwgcGFyYW1ldGVycy5pc01haW5GcmFtZU5hdmlnYXRpb24pCi0gICAgLCBtX3Nlc3Npb25XcmFw
cGVyKG1ha2VXZWFrUHRyKHN0YXRpY19jYXN0PE5ldHdvcmtTZXNzaW9uQ29jb2EmPihzZXNzaW9u
KS5zZXNzaW9uV3JhcHBlckZvclRhc2socGFyYW1ldGVycy53ZWJQYWdlUHJveHlJRCwgcGFyYW1l
dGVycy5yZXF1ZXN0LCBwYXJhbWV0ZXJzLnN0b3JlZENyZWRlbnRpYWxzUG9saWN5LCBwYXJhbWV0
ZXJzLmlzTmF2aWdhdGluZ1RvQXBwQm91bmREb21haW4pKSkKKyAgICAsIG1fc2Vzc2lvbldyYXBw
ZXIoc3RhdGljX2Nhc3Q8TmV0d29ya1Nlc3Npb25Db2NvYSY+KHNlc3Npb24pLnNlc3Npb25XcmFw
cGVyRm9yVGFzayhwYXJhbWV0ZXJzLndlYlBhZ2VQcm94eUlELCBwYXJhbWV0ZXJzLnJlcXVlc3Qs
IHBhcmFtZXRlcnMuc3RvcmVkQ3JlZGVudGlhbHNQb2xpY3ksIHBhcmFtZXRlcnMuaXNOYXZpZ2F0
aW5nVG9BcHBCb3VuZERvbWFpbikpCiAgICAgLCBtX2ZyYW1lSUQocGFyYW1ldGVycy53ZWJGcmFt
ZUlEKQogICAgICwgbV9wYWdlSUQocGFyYW1ldGVycy53ZWJQYWdlSUQpCiAgICAgLCBtX3dlYlBh
Z2VQcm94eUlEKHBhcmFtZXRlcnMud2ViUGFnZVByb3h5SUQpCkBAIC01NzgsNyArNTc4LDcgQEAg
dm9pZCBOZXR3b3JrRGF0YVRhc2tDb2NvYTo6c3dhcFNlc3Npb25JZk5lY2Vzc2FyeShXZWJDb3Jl
OjpSZXNvdXJjZVJlcXVlc3QmIHJlcXUKICAgICBhdXRvIHByZXZpb3VzVGFzayA9IHN0ZDo6ZXhj
aGFuZ2UobV90YXNrLCBudWxscHRyKTsKIAogICAgIG1fc2Vzc2lvbldyYXBwZXItPmRhdGFUYXNr
TWFwLnJlbW92ZShbcHJldmlvdXNUYXNrIHRhc2tJZGVudGlmaWVyXSk7Ci0gICAgbV9zZXNzaW9u
V3JhcHBlciA9IG1ha2VXZWFrUHRyKHVwZGF0ZWRTZXNzaW9uKTsKKyAgICBtX3Nlc3Npb25XcmFw
cGVyID0gdXBkYXRlZFNlc3Npb247CiAKICAgICBtX3Rhc2sgPSBbbV9zZXNzaW9uV3JhcHBlci0+
c2Vzc2lvbiBkYXRhVGFza1dpdGhSZXF1ZXN0OnJlcXVlc3QubnNVUkxSZXF1ZXN0KFdlYkNvcmU6
OkhUVFBCb2R5VXBkYXRlUG9saWN5OjpVcGRhdGVIVFRQQm9keSldOwogICAgIG1fc2Vzc2lvbldy
YXBwZXItPmRhdGFUYXNrTWFwLmFkZChbbV90YXNrIHRhc2tJZGVudGlmaWVyXSwgdGhpcyk7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NvY29hL05ldHdvcmtTZXNz
aW9uQ29jb2EubW0gYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NvY29hL05ldHdvcmtT
ZXNzaW9uQ29jb2EubW0KaW5kZXggY2I2N2NjNjI2MjZlOGM5NDFkMjVjNjdiM2MxM2EyMjE1NTM2
MGIyNi4uNGU5YTUzMTk1ZjFjYWZjMTAxZjc3NWVkZjA1NTcyNjVmMmFhMGQ5ZiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jb2NvYS9OZXR3b3JrU2Vzc2lvbkNvY29h
Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY29jb2EvTmV0d29ya1Nlc3Np
b25Db2NvYS5tbQpAQCAtNDYwLDggKzQ2MCw4IEBAIC0gKGlkKWluaXRXaXRoTmV0d29ya1Nlc3Np
b246KE5ha2VkUmVmPFdlYktpdDo6TmV0d29ya1Nlc3Npb25Db2NvYT4pc2Vzc2lvbiB3cmFwCiAg
ICAgaWYgKCFzZWxmKQogICAgICAgICByZXR1cm4gbmlsOwogCi0gICAgX3Nlc3Npb24gPSBtYWtl
V2Vha1B0cihzZXNzaW9uLmdldCgpKTsKLSAgICBfc2Vzc2lvbldyYXBwZXIgPSBtYWtlV2Vha1B0
cihzZXNzaW9uV3JhcHBlcik7CisgICAgX3Nlc3Npb24gPSBzZXNzaW9uLmdldCgpOworICAgIF9z
ZXNzaW9uV3JhcHBlciA9IHNlc3Npb25XcmFwcGVyOwogICAgIF93aXRoQ3JlZGVudGlhbHMgPSB3
aXRoQ3JlZGVudGlhbHM7CiAKICAgICByZXR1cm4gc2VsZjsKQEAgLTc0Niw3ICs3NDYsNyBAQCBB
TExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19FTkQKICAgICAgICAgICAgICAgICBOU1VSTFBy
b3RlY3Rpb25TcGFjZSAqcHJvdGVjdGlvblNwYWNlID0gY2hhbGxlbmdlLnByb3RlY3Rpb25TcGFj
ZTsKICAgICAgICAgICAgICAgICBuZXR3b3JrRGF0YVRhc2stPmRpZE5lZ290aWF0ZU1vZGVyblRM
UyhVUkwoVVJMKCksIG1ha2VTdHJpbmcoU3RyaW5nKHByb3RlY3Rpb25TcGFjZS5wcm90b2NvbCks
ICI6Ly8iLCBTdHJpbmcocHJvdGVjdGlvblNwYWNlLmhvc3QpLCAnOicsIHByb3RlY3Rpb25TcGFj
ZS5wb3J0KSkpOwogICAgICAgICAgICAgfQotICAgICAgICAgICAgYXV0byBkZWNpc2lvbkhhbmRs
ZXIgPSBtYWtlQmxvY2tQdHIoW3dlYWtTZWxmID0gV2Vha09iakNQdHI8V0tOZXR3b3JrU2Vzc2lv
bkRlbGVnYXRlPihzZWxmKSwgc2Vzc2lvbkNvY29hID0gbWFrZVdlYWtQdHIoc2Vzc2lvbkNvY29h
KSwgY29tcGxldGlvbkhhbmRsZXIgPSBtYWtlQmxvY2tQdHIoY29tcGxldGlvbkhhbmRsZXIpLCB0
YXNrSWRlbnRpZmllciwgbmV0d29ya0RhdGFUYXNrID0gUmVmUHRyIHsgbmV0d29ya0RhdGFUYXNr
IH0sIG5lZ290aWF0ZWRMZWdhY3lUTFNdKE5TVVJMQXV0aGVudGljYXRpb25DaGFsbGVuZ2UgKmNo
YWxsZW5nZSwgT1NTdGF0dXMgdHJ1c3RSZXN1bHQpIG11dGFibGUgeworICAgICAgICAgICAgYXV0
byBkZWNpc2lvbkhhbmRsZXIgPSBtYWtlQmxvY2tQdHIoW3dlYWtTZWxmID0gV2Vha09iakNQdHI8
V0tOZXR3b3JrU2Vzc2lvbkRlbGVnYXRlPihzZWxmKSwgc2Vzc2lvbkNvY29hID0gV2Vha1B0ciB7
IHNlc3Npb25Db2NvYSB9LCBjb21wbGV0aW9uSGFuZGxlciA9IG1ha2VCbG9ja1B0cihjb21wbGV0
aW9uSGFuZGxlciksIHRhc2tJZGVudGlmaWVyLCBuZXR3b3JrRGF0YVRhc2sgPSBSZWZQdHIgeyBu
ZXR3b3JrRGF0YVRhc2sgfSwgbmVnb3RpYXRlZExlZ2FjeVRMU10oTlNVUkxBdXRoZW50aWNhdGlv
bkNoYWxsZW5nZSAqY2hhbGxlbmdlLCBPU1N0YXR1cyB0cnVzdFJlc3VsdCkgbXV0YWJsZSB7CiAg
ICAgICAgICAgICAgICAgYXV0byBzdHJvbmdTZWxmID0gd2Vha1NlbGYuZ2V0KCk7CiAgICAgICAg
ICAgICAgICAgaWYgKCFzdHJvbmdTZWxmKQogICAgICAgICAgICAgICAgICAgICByZXR1cm4gY29t
cGxldGlvbkhhbmRsZXIoTlNVUkxTZXNzaW9uQXV0aENoYWxsZW5nZUNhbmNlbEF1dGhlbnRpY2F0
aW9uQ2hhbGxlbmdlLCBuaWwpOwpAQCAtMTY5NSw3ICsxNjk1LDcgQEAgc3RkOjp1bmlxdWVfcHRy
PFdlYlNvY2tldFRhc2s+IE5ldHdvcmtTZXNzaW9uQ29jb2E6OmNyZWF0ZVdlYlNvY2tldFRhc2so
V2ViUGFnZVAKICAgICAvLyBBbHRob3VnaCB0aGUgV2ViU29ja2V0IHByb3RvY29sIGFsbG93cyBm
dWxsIDY0LWJpdCBsZW5ndGhzLCBDaHJvbWUgYW5kIEZpcmVmb3ggbGltaXQgdGhlIGxlbmd0aCB0
byAyXjYzIC0gMQogICAgIHRhc2suZ2V0KCkubWF4aW11bU1lc3NhZ2VTaXplID0gMHg3RkZGRkZG
RkZGRkZGRkZGdWxsOwogCi0gICAgcmV0dXJuIG1ha2VVbmlxdWU8V2ViU29ja2V0VGFzaz4oY2hh
bm5lbCwgd2ViUGFnZVByb3h5SUQsIG1ha2VXZWFrUHRyKHNlc3Npb25TZXQpLCByZXF1ZXN0LCBX
VEZNb3ZlKHRhc2spKTsKKyAgICByZXR1cm4gbWFrZVVuaXF1ZTxXZWJTb2NrZXRUYXNrPihjaGFu
bmVsLCB3ZWJQYWdlUHJveHlJRCwgc2Vzc2lvblNldCwgcmVxdWVzdCwgV1RGTW92ZSh0YXNrKSk7
CiB9CiAKIHZvaWQgTmV0d29ya1Nlc3Npb25Db2NvYTo6YWRkV2ViU29ja2V0VGFzayhXZWJQYWdl
UHJveHlJZGVudGlmaWVyIHdlYlBhZ2VQcm94eUlELCBXZWJTb2NrZXRUYXNrJiB0YXNrKQpAQCAt
MTcyOCw3ICsxNzI4LDcgQEAgdm9pZCBOZXR3b3JrU2Vzc2lvbkNvY29hOjphZGRXZWJQYWdlTmV0
d29ya1BhcmFtZXRlcnMoV2ViUGFnZVByb3h5SWRlbnRpZmllciBwYWcKICAgICAgICAgY29uZmln
dXJhdGlvbi5nZXQoKS5fYXR0cmlidXRlZEJ1bmRsZUlkZW50aWZpZXIgPSBwYXJhbWV0ZXJzLmF0
dHJpYnV0ZWRCdW5kbGVJZGVudGlmaWVyKCk7CiAjZW5kaWYKICAgICBpbml0aWFsaXplTlNVUkxT
ZXNzaW9uc0luU2V0KGFkZFJlc3VsdDIuaXRlcmF0b3ItPnZhbHVlLmdldCgpLCBjb25maWd1cmF0
aW9uLmdldCgpKTsKLSAgICBhZGRSZXN1bHQxLml0ZXJhdG9yLT52YWx1ZSA9IG1ha2VXZWFrUHRy
KGFkZFJlc3VsdDIuaXRlcmF0b3ItPnZhbHVlLmdldCgpKTsKKyAgICBhZGRSZXN1bHQxLml0ZXJh
dG9yLT52YWx1ZSA9IGFkZFJlc3VsdDIuaXRlcmF0b3ItPnZhbHVlLmdldCgpOwogCiAgICAgbV9h
dHRyaWJ1dGVkQnVuZGxlSWRlbnRpZmllckZyb21QYWdlSWRlbnRpZmllcnMuYWRkKHBhZ2VJRCwg
cGFyYW1ldGVycy5hdHRyaWJ1dGVkQnVuZGxlSWRlbnRpZmllcigpKTsKIH0KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvc3RvcmFnZS9GaWxlU3lzdGVtU3RvcmFnZUhh
bmRsZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3N0b3JhZ2UvRmlsZVN5c3Rl
bVN0b3JhZ2VIYW5kbGUuY3BwCmluZGV4IDA4ZjYwY2MxMmRlOTE0OTRjMmMwN2MwM2Y3YTcwMWY3
MjM2MTQxMmQuLmZiNmMyYmJhOWMxMWJmMTE1Yzg4ZjMxYmNkMWE3YjdjZmU2NmQ3OWEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvc3RvcmFnZS9GaWxlU3lzdGVtU3Rv
cmFnZUhhbmRsZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9zdG9yYWdl
L0ZpbGVTeXN0ZW1TdG9yYWdlSGFuZGxlLmNwcApAQCAtNDEsNyArNDEsNyBAQCBjb25zdGV4cHIg
Y2hhciBwYXRoU2VwYXJhdG9yID0gJy8nOwogCiBGaWxlU3lzdGVtU3RvcmFnZUhhbmRsZTo6Rmls
ZVN5c3RlbVN0b3JhZ2VIYW5kbGUoRmlsZVN5c3RlbVN0b3JhZ2VNYW5hZ2VyJiBtYW5hZ2VyLCBU
eXBlIHR5cGUsIFN0cmluZyYmIHBhdGgsIFN0cmluZyYmIG5hbWUpCiAgICAgOiBtX2lkZW50aWZp
ZXIoV2ViQ29yZTo6RmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXI6OmdlbmVyYXRlVGhyZWFkU2Fm
ZSgpKQotICAgICwgbV9tYW5hZ2VyKG1ha2VXZWFrUHRyKG1hbmFnZXIpKQorICAgICwgbV9tYW5h
Z2VyKG1hbmFnZXIpCiAgICAgLCBtX3R5cGUodHlwZSkKICAgICAsIG1fcGF0aChXVEZNb3ZlKHBh
dGgpKQogICAgICwgbV9uYW1lKFdURk1vdmUobmFtZSkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L05ldHdvcmtQcm9jZXNzL3N0b3JhZ2UvRmlsZVN5c3RlbVN0b3JhZ2VIYW5kbGVSZWdpc3Ry
eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3N0b3JhZ2UvRmlsZVN5c3RlbVN0
b3JhZ2VIYW5kbGVSZWdpc3RyeS5jcHAKaW5kZXggYjg0Y2Y2Y2M4YjExNDlmYjZhZjgwZDFmZDcx
MjZkODQ4YWI2MjgwYS4uNDQzMjVjMDRiMDhhMDExZWVjZGYwMWUyOTEzNGJiYmNmM2FlZjRkMyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9zdG9yYWdlL0ZpbGVTeXN0
ZW1TdG9yYWdlSGFuZGxlUmVnaXN0cnkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1By
b2Nlc3Mvc3RvcmFnZS9GaWxlU3lzdGVtU3RvcmFnZUhhbmRsZVJlZ2lzdHJ5LmNwcApAQCAtMzYs
NyArMzYsNyBAQCB2b2lkIEZpbGVTeXN0ZW1TdG9yYWdlSGFuZGxlUmVnaXN0cnk6OnJlZ2lzdGVy
SGFuZGxlKFdlYkNvcmU6OkZpbGVTeXN0ZW1IYW5kbGVJZAogewogICAgIEFTU0VSVCghbV9oYW5k
bGVzLmNvbnRhaW5zKGlkZW50aWZpZXIpKTsKIAotICAgIG1faGFuZGxlcy5hZGQoaWRlbnRpZmll
ciwgbWFrZVdlYWtQdHIoaGFuZGxlKSk7CisgICAgbV9oYW5kbGVzLmFkZChpZGVudGlmaWVyLCBo
YW5kbGUpOwogfQogCiB2b2lkIEZpbGVTeXN0ZW1TdG9yYWdlSGFuZGxlUmVnaXN0cnk6OnVucmVn
aXN0ZXJIYW5kbGUoV2ViQ29yZTo6RmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIgaWRlbnRpZmll
cikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm0vSVBDL0Nvbm5lY3Rpb24uY3Bw
IGIvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9JUEMvQ29ubmVjdGlvbi5jcHAKaW5kZXggZDZlYTlj
OGNhNTNjOWQ1ODAyYzYwYjZkM2RkNDMyYTE4NWM5YmRhOS4uZmNhMmI1NGQwZjNiZjkzMDk5N2Fl
MDk4OTczNGZkNWVhZmZkNTcyNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9J
UEMvQ29ubmVjdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9JUEMvQ29ubmVj
dGlvbi5jcHAKQEAgLTg1Miw3ICs4NTIsNyBAQCB2b2lkIENvbm5lY3Rpb246OmVuYWJsZUluY29t
aW5nTWVzc2FnZXNUaHJvdHRsaW5nKCkKICNpZiBFTkFCTEUoSVBDX1RFU1RJTkdfQVBJKQogdm9p
ZCBDb25uZWN0aW9uOjphZGRNZXNzYWdlT2JzZXJ2ZXIoY29uc3QgTWVzc2FnZU9ic2VydmVyJiBv
YnNlcnZlcikKIHsKLSAgICBtX21lc3NhZ2VPYnNlcnZlcnMuYXBwZW5kKG1ha2VXZWFrUHRyKG9i
c2VydmVyKSk7CisgICAgbV9tZXNzYWdlT2JzZXJ2ZXJzLmFwcGVuZChvYnNlcnZlcik7CiB9CiAj
ZW5kaWYKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9JUEMvTWVzc2FnZVJl
Y2VpdmVyTWFwLmNwcCBiL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm0vSVBDL01lc3NhZ2VSZWNlaXZl
ck1hcC5jcHAKaW5kZXggZDg4MGU5MGM1YmM1Mjc1NjAzODUxMTRmNjk3MTI3MmE5ZGZhZmU1Ny4u
M2ViNDEyYTIyMWJhZjA4NTk2NjQ4ZGI3YTcwYzBmNDBkMGIxNGViZiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9QbGF0Zm9ybS9JUEMvTWVzc2FnZVJlY2VpdmVyTWFwLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1BsYXRmb3JtL0lQQy9NZXNzYWdlUmVjZWl2ZXJNYXAuY3BwCkBAIC00NCw3ICs0
NCw3IEBAIHZvaWQgTWVzc2FnZVJlY2VpdmVyTWFwOjphZGRNZXNzYWdlUmVjZWl2ZXIoUmVjZWl2
ZXJOYW1lIG1lc3NhZ2VSZWNlaXZlck5hbWUsIE1lCiAgICAgQVNTRVJUKCFtX2dsb2JhbE1lc3Nh
Z2VSZWNlaXZlcnMuY29udGFpbnMobWVzc2FnZVJlY2VpdmVyTmFtZSkpOwogCiAgICAgbWVzc2Fn
ZVJlY2VpdmVyLndpbGxCZUFkZGVkVG9NZXNzYWdlUmVjZWl2ZXJNYXAoKTsKLSAgICBtX2dsb2Jh
bE1lc3NhZ2VSZWNlaXZlcnMuc2V0KG1lc3NhZ2VSZWNlaXZlck5hbWUsIG1ha2VXZWFrUHRyKG1l
c3NhZ2VSZWNlaXZlcikpOworICAgIG1fZ2xvYmFsTWVzc2FnZVJlY2VpdmVycy5zZXQobWVzc2Fn
ZVJlY2VpdmVyTmFtZSwgbWVzc2FnZVJlY2VpdmVyKTsKIH0KIAogdm9pZCBNZXNzYWdlUmVjZWl2
ZXJNYXA6OmFkZE1lc3NhZ2VSZWNlaXZlcihSZWNlaXZlck5hbWUgbWVzc2FnZVJlY2VpdmVyTmFt
ZSwgdWludDY0X3QgZGVzdGluYXRpb25JRCwgTWVzc2FnZVJlY2VpdmVyJiBtZXNzYWdlUmVjZWl2
ZXIpCkBAIC01NCw3ICs1NCw3IEBAIHZvaWQgTWVzc2FnZVJlY2VpdmVyTWFwOjphZGRNZXNzYWdl
UmVjZWl2ZXIoUmVjZWl2ZXJOYW1lIG1lc3NhZ2VSZWNlaXZlck5hbWUsIHVpCiAgICAgQVNTRVJU
KCFtX2dsb2JhbE1lc3NhZ2VSZWNlaXZlcnMuY29udGFpbnMobWVzc2FnZVJlY2VpdmVyTmFtZSkp
OwogCiAgICAgbWVzc2FnZVJlY2VpdmVyLndpbGxCZUFkZGVkVG9NZXNzYWdlUmVjZWl2ZXJNYXAo
KTsKLSAgICBtX21lc3NhZ2VSZWNlaXZlcnMuc2V0KHN0ZDo6bWFrZV9wYWlyKG1lc3NhZ2VSZWNl
aXZlck5hbWUsIGRlc3RpbmF0aW9uSUQpLCBtYWtlV2Vha1B0cihtZXNzYWdlUmVjZWl2ZXIpKTsK
KyAgICBtX21lc3NhZ2VSZWNlaXZlcnMuc2V0KHN0ZDo6bWFrZV9wYWlyKG1lc3NhZ2VSZWNlaXZl
ck5hbWUsIGRlc3RpbmF0aW9uSUQpLCBtZXNzYWdlUmVjZWl2ZXIpOwogfQogCiB2b2lkIE1lc3Nh
Z2VSZWNlaXZlck1hcDo6cmVtb3ZlTWVzc2FnZVJlY2VpdmVyKFJlY2VpdmVyTmFtZSBtZXNzYWdl
UmVjZWl2ZXJOYW1lKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9jb2NvYS9X
S1BheW1lbnRBdXRob3JpemF0aW9uRGVsZWdhdGUubW0gYi9Tb3VyY2UvV2ViS2l0L1BsYXRmb3Jt
L2NvY29hL1dLUGF5bWVudEF1dGhvcml6YXRpb25EZWxlZ2F0ZS5tbQppbmRleCBhOTViZjQzNDg0
YWY3NDBhNDg5ZjAwYmY3MzRhMDIxMTQxOGE1YzAzLi40YzcxMzA4YWU0ZDY0ZGE2YWU5ZGRlYmQ3
MmZjZGExY2M2OGE1MmFiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtL2NvY29h
L1dLUGF5bWVudEF1dGhvcml6YXRpb25EZWxlZ2F0ZS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1Bs
YXRmb3JtL2NvY29hL1dLUGF5bWVudEF1dGhvcml6YXRpb25EZWxlZ2F0ZS5tbQpAQCAtMTE2LDcg
KzExNiw3IEBAIC0gKGluc3RhbmNldHlwZSlfaW5pdFdpdGhSZXF1ZXN0OihQS1BheW1lbnRSZXF1
ZXN0ICopcmVxdWVzdCBwcmVzZW50ZXI6KFdlYktpdDo6CiAgICAgaWYgKCEoc2VsZiA9IFtzdXBl
ciBpbml0XSkpCiAgICAgICAgIHJldHVybiBuaWw7CiAKLSAgICBfcHJlc2VudGVyID0gbWFrZVdl
YWtQdHIocHJlc2VudGVyKTsKKyAgICBfcHJlc2VudGVyID0gcHJlc2VudGVyOwogICAgIF9yZXF1
ZXN0ID0gcmVxdWVzdDsKICAgICBfc2hpcHBpbmdNZXRob2RzID0gcmVxdWVzdC5zaGlwcGluZ01l
dGhvZHM7CiAgICAgX3N1bW1hcnlJdGVtcyA9IHJlcXVlc3QucGF5bWVudFN1bW1hcnlJdGVtczsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0FwcGxlUGF5L1dlYlBheW1lbnRDb29y
ZGluYXRvclByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0FwcGxlUGF5L1dlYlBheW1l
bnRDb29yZGluYXRvclByb3h5LmNwcAppbmRleCA0NWI5YjVhMzNkNDFmZjgzOTZiZjAxMWEzYmUw
OWU0ZjM0NjNmMmFhLi4xNDM5OWFlZjczYjQ4NGM2YmM5ZGYxOGE1MGZlNDc0MjFhZDhkYjMyIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9BcHBsZVBheS9XZWJQYXltZW50Q29vcmRp
bmF0b3JQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvQXBwbGVQYXkvV2ViUGF5
bWVudENvb3JkaW5hdG9yUHJveHkuY3BwCkBAIC04Miw3ICs4Miw3IEBAIHZvaWQgV2ViUGF5bWVu
dENvb3JkaW5hdG9yUHJveHk6OnNob3dQYXltZW50VUkoV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIg
ZGVzdGluYXRpCiB7CiAgICAgaWYgKGF1dG8mIGNvb3JkaW5hdG9yID0gYWN0aXZlUGF5bWVudENv
b3JkaW5hdG9yUHJveHkoKSkKICAgICAgICAgY29vcmRpbmF0b3ItPmRpZFJlYWNoRmluYWxTdGF0
ZSgpOwotICAgIGFjdGl2ZVBheW1lbnRDb29yZGluYXRvclByb3h5KCkgPSBtYWtlV2Vha1B0cih0
aGlzKTsKKyAgICBhY3RpdmVQYXltZW50Q29vcmRpbmF0b3JQcm94eSgpID0gKnRoaXM7CiAKICAg
ICBNRVNTQUdFX0NIRUNLKGNhbkJlZ2luKCkpOwogICAgIE1FU1NBR0VfQ0hFQ0soIW1fZGVzdGlu
YXRpb25JRCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJTUUxpdGVEYXRh
YmFzZVRyYWNrZXIuaCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlNRTGl0ZURhdGFiYXNlVHJh
Y2tlci5oCmluZGV4IGIwNWIwZDE5ZWVkMGZiYTg1YjRjMjk1MzRmOWNiNDczMTBlN2MwOWIuLjU2
NDJlYjA4OGE4MzIwYTM4ZjM2N2Y4YzU4MzAxZDYwYzY4NzBhOWQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvU2hhcmVkL1dlYlNRTGl0ZURhdGFiYXNlVHJhY2tlci5oCisrKyBiL1NvdXJjZS9X
ZWJLaXQvU2hhcmVkL1dlYlNRTGl0ZURhdGFiYXNlVHJhY2tlci5oCkBAIC0zNCw3ICszNCw3IEBA
CiAKIG5hbWVzcGFjZSBXZWJLaXQgewogCi0vLyBVc2UgZWFnZXIgaW5pdGlhbGl6YXRpb24gZm9y
IHRoZSBXZWFrUHRyRmFjdG9yeSBzaW5jZSB3ZSBjYWxsIG1ha2VXZWFrUHRyKCkgZnJvbSBhIG5v
bi1tYWluIHRocmVhZC4KKy8vIFVzZSBlYWdlciBpbml0aWFsaXphdGlvbiBmb3IgdGhlIFdlYWtQ
dHJGYWN0b3J5IHNpbmNlIHdlIGNvbnN0cnVjdCBXZWFrUHRycyBmcm9tIGEgbm9uLW1haW4gdGhy
ZWFkLgogY2xhc3MgV2ViU1FMaXRlRGF0YWJhc2VUcmFja2VyIGZpbmFsIDogcHVibGljIFdlYkNv
cmU6OlNRTGl0ZURhdGFiYXNlVHJhY2tlckNsaWVudCwgcHVibGljIENhbk1ha2VXZWFrUHRyPFdl
YlNRTGl0ZURhdGFiYXNlVHJhY2tlciwgV2Vha1B0ckZhY3RvcnlJbml0aWFsaXphdGlvbjo6RWFn
ZXI+IHsKICAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShXZWJTUUxpdGVEYXRhYmFzZVRyYWNrZXIp
CiBwdWJsaWM6CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9YUi9YUkRldmljZVBy
b3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1hSL1hSRGV2aWNlUHJveHkuY3BwCmluZGV4
IGZhMTNkZGNhZGNjZmEzNjQyYmE1MDYxOGQzYjE3ZWEyOGY1ZmQyMzAuLjMyZWM2ODgwNjEzZGVl
YzE1YWNlYmFlYWYxZjM2NTc0ZjVkMzhhMGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hh
cmVkL1hSL1hSRGV2aWNlUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1hSL1hS
RGV2aWNlUHJveHkuY3BwCkBAIC00MSw3ICs0MSw3IEBAIFJlZjxYUkRldmljZVByb3h5PiBYUkRl
dmljZVByb3h5OjpjcmVhdGUoWFJEZXZpY2VJbmZvJiYgZGV2aWNlSW5mbywgUGxhdGZvcm1YUlN5
CiB9CiAKIFhSRGV2aWNlUHJveHk6OlhSRGV2aWNlUHJveHkoWFJEZXZpY2VJbmZvJiYgZGV2aWNl
SW5mbywgUGxhdGZvcm1YUlN5c3RlbVByb3h5JiB4clN5c3RlbSkKLSAgICA6IG1feHJTeXN0ZW0o
bWFrZVdlYWtQdHIoeHJTeXN0ZW0pKQorICAgIDogbV94clN5c3RlbSh4clN5c3RlbSkKIHsKICAg
ICBtX2lkZW50aWZpZXIgPSBkZXZpY2VJbmZvLmlkZW50aWZpZXI7CiAgICAgbV9zdXBwb3J0c1N0
ZXJlb1JlbmRlcmluZyA9IGRldmljZUluZm8uc3VwcG9ydHNTdGVyZW9SZW5kZXJpbmc7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9tYWMvU2VjSXRlbVNoaW0uY3BwIGIvU291cmNl
L1dlYktpdC9TaGFyZWQvbWFjL1NlY0l0ZW1TaGltLmNwcAppbmRleCA1MTllZGMyZGQ5MGJjZThl
ZGVmYTFjMGU4ZDliNTA4NzZmZGM5YThhLi5mOTk5ODQ4NzVmNzZhYWZhN2U1MWNjZWMxNWFlMjRh
ODY1YzkwOGRhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9tYWMvU2VjSXRlbVNo
aW0uY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL21hYy9TZWNJdGVtU2hpbS5jcHAKQEAg
LTE0MCw3ICsxNDAsNyBAQCBzdGF0aWMgT1NTdGF0dXMgd2ViU2VjSXRlbURlbGV0ZShDRkRpY3Rp
b25hcnlSZWYgcXVlcnkpCiAKIHZvaWQgaW5pdGlhbGl6ZVNlY0l0ZW1TaGltKE5ldHdvcmtQcm9j
ZXNzJiBwcm9jZXNzKQogewotICAgIGdsb2JhbE5ldHdvcmtQcm9jZXNzKCkgPSBtYWtlV2Vha1B0
cihwcm9jZXNzKTsKKyAgICBnbG9iYWxOZXR3b3JrUHJvY2VzcygpID0gcHJvY2VzczsKIAogICAg
IHN0cnVjdCBfQ0ZORnJhbWV3b3Jrc1N0dWJzIHN0dWJzID0gewogICAgICAgICAudmVyc2lvbiA9
IDAsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQVBJQXR0YWNobWVu
dC5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQVBJQXR0YWNobWVudC5jcHAKaW5k
ZXggNmUyMWY2ZjljZDQ2OTVkYTVlOTM3Yzk0YWM2ZmQyMzY1YzYyZTFjMC4uYjM0ZWM3MzYzNjNj
NGYxZDJiMGU3NjBhZDNmNGE5ZDViYWMxYTM0ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvQVBJL0FQSUF0dGFjaG1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0FQSS9BUElBdHRhY2htZW50LmNwcApAQCAtNDEsNyArNDEsNyBAQCBSZWY8QXR0YWNobWVu
dD4gQXR0YWNobWVudDo6Y3JlYXRlKGNvbnN0IFdURjo6U3RyaW5nJiBpZGVudGlmaWVyLCBXZWJL
aXQ6OldlYlBhZwogCiBBdHRhY2htZW50OjpBdHRhY2htZW50KGNvbnN0IFdURjo6U3RyaW5nJiBp
ZGVudGlmaWVyLCBXZWJLaXQ6OldlYlBhZ2VQcm94eSYgd2ViUGFnZSkKICAgICA6IG1faWRlbnRp
ZmllcihpZGVudGlmaWVyKQotICAgICwgbV93ZWJQYWdlKG1ha2VXZWFrUHRyKHdlYlBhZ2UpKQor
ICAgICwgbV93ZWJQYWdlKHdlYlBhZ2UpCiB7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0FQSS9BUElIVFRQQ29va2llU3RvcmUuY3BwIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvQVBJL0FQSUhUVFBDb29raWVTdG9yZS5jcHAKaW5kZXggNWM3OWIzMDg4MWRhOTlk
Y2NhZjU0Yjk3ZjNhNzkwMDY4ODUzZWZkYi4uNDMwY2NhMDU0ZmYwNWQ5ZWFmZTEzNmU0ZTZiNTli
NDMwN2I4YjNiOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0FQSUhU
VFBDb29raWVTdG9yZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0FQSUhU
VFBDb29raWVTdG9yZS5jcHAKQEAgLTQ0LDcgKzQ0LDcgQEAgdXNpbmcgbmFtZXNwYWNlIFdlYktp
dDsKIG5hbWVzcGFjZSBBUEkgewogCiBIVFRQQ29va2llU3RvcmU6OkhUVFBDb29raWVTdG9yZShX
ZWJLaXQ6OldlYnNpdGVEYXRhU3RvcmUmIHdlYnNpdGVEYXRhU3RvcmUpCi0gICAgOiBtX293bmlu
Z0RhdGFTdG9yZShtYWtlV2Vha1B0cih3ZWJzaXRlRGF0YVN0b3JlKSkKKyAgICA6IG1fb3duaW5n
RGF0YVN0b3JlKHdlYnNpdGVEYXRhU3RvcmUpCiB7CiB9CiAKQEAgLTE2Nyw3ICsxNjcsNyBAQCB2
b2lkIEhUVFBDb29raWVTdG9yZTo6cmVnaXN0ZXJPYnNlcnZlcihPYnNlcnZlciYgb2JzZXJ2ZXIp
CiAKICAgICBtX2Nvb2tpZU1hbmFnZXJQcm94eU9ic2VydmVyID0gbWFrZVVuaXF1ZTxBUElXZWJD
b29raWVNYW5hZ2VyUHJveHlPYnNlcnZlcj4oKnRoaXMpOwogCi0gICAgbV9vYnNlcnZlZENvb2tp
ZU1hbmFnZXJQcm94eSA9IG1ha2VXZWFrUHRyKG1fb3duaW5nRGF0YVN0b3JlLT5uZXR3b3JrUHJv
Y2VzcygpLmNvb2tpZU1hbmFnZXIoKSk7CisgICAgbV9vYnNlcnZlZENvb2tpZU1hbmFnZXJQcm94
eSA9IG1fb3duaW5nRGF0YVN0b3JlLT5uZXR3b3JrUHJvY2VzcygpLmNvb2tpZU1hbmFnZXIoKTsK
ICAgICBtX29ic2VydmVkQ29va2llTWFuYWdlclByb3h5LT5yZWdpc3Rlck9ic2VydmVyKG1fb3du
aW5nRGF0YVN0b3JlLT5zZXNzaW9uSUQoKSwgKm1fY29va2llTWFuYWdlclByb3h5T2JzZXJ2ZXIp
OwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQVBJSW5zcGVj
dG9yRXh0ZW5zaW9uLmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9BUElJbnNwZWN0
b3JFeHRlbnNpb24uY3BwCmluZGV4IDg3MWMyNzNlYWYxMWRlYjkxYjlkMDJiZjQ1MGYwZDEwZWJj
ODM3NDUuLjgyYzhhYWEzNjM2NGJmN2E1OTZmYTBlMmM2MDZkYWI4NTBlYTRhNmMgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9BUElJbnNwZWN0b3JFeHRlbnNpb24uY3Bw
CisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9BUElJbnNwZWN0b3JFeHRlbnNpb24u
Y3BwCkBAIC0zNyw3ICszNyw3IEBAIG5hbWVzcGFjZSBBUEkgewogCiBJbnNwZWN0b3JFeHRlbnNp
b246Okluc3BlY3RvckV4dGVuc2lvbihjb25zdCBXVEY6OlN0cmluZyYgaWRlbnRpZmllciwgV2Vi
S2l0OjpXZWJJbnNwZWN0b3JVSUV4dGVuc2lvbkNvbnRyb2xsZXJQcm94eSYgZXh0ZW5zaW9uQ29u
dHJvbGxlclByb3h5KQogICAgIDogbV9pZGVudGlmaWVyKGlkZW50aWZpZXIpCi0gICAgLCBtX2V4
dGVuc2lvbkNvbnRyb2xsZXJQcm94eShtYWtlV2Vha1B0cihleHRlbnNpb25Db250cm9sbGVyUHJv
eHkpKQorICAgICwgbV9leHRlbnNpb25Db250cm9sbGVyUHJveHkoZXh0ZW5zaW9uQ29udHJvbGxl
clByb3h5KQogewogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkv
QVBJV2ViQXV0aGVudGljYXRpb25QYW5lbC5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9B
UEkvQVBJV2ViQXV0aGVudGljYXRpb25QYW5lbC5jcHAKaW5kZXggNTE1M2JlMTYwZmI2ZDM0ZDM1
NjAwODZmYWYwZTMzMzFlNDM1ODM3ZS4uOWM3YzVkZGRmMmY4ODU0NGQyZjQ5Zjc3NzU2MDBjOTAw
YThjNjAzOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0FQSVdlYkF1
dGhlbnRpY2F0aW9uUGFuZWwuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9B
UElXZWJBdXRoZW50aWNhdGlvblBhbmVsLmNwcApAQCAtNTEsNyArNTEsNyBAQCBXZWJBdXRoZW50
aWNhdGlvblBhbmVsOjpXZWJBdXRoZW50aWNhdGlvblBhbmVsKCkKIAogV2ViQXV0aGVudGljYXRp
b25QYW5lbDo6V2ViQXV0aGVudGljYXRpb25QYW5lbChjb25zdCBBdXRoZW50aWNhdG9yTWFuYWdl
ciYgbWFuYWdlciwgY29uc3QgV1RGOjpTdHJpbmcmIHJwSWQsIGNvbnN0IFRyYW5zcG9ydFNldCYg
dHJhbnNwb3J0cywgQ2xpZW50RGF0YVR5cGUgdHlwZSwgY29uc3QgV1RGOjpTdHJpbmcmIHVzZXJO
YW1lKQogICAgIDogbV9jbGllbnQobWFrZVVuaXF1ZVJlZjxXZWJBdXRoZW50aWNhdGlvblBhbmVs
Q2xpZW50PigpKQotICAgICwgbV93ZWFrTWFuYWdlcihtYWtlV2Vha1B0cihtYW5hZ2VyKSkKKyAg
ICAsIG1fd2Vha01hbmFnZXIobWFuYWdlcikKICAgICAsIG1fcnBJZChycElkKQogICAgICwgbV9j
bGllbnREYXRhVHlwZSh0eXBlKQogICAgICwgbV91c2VyTmFtZSh1c2VyTmFtZSkKQEAgLTcxLDcg
KzcxLDcgQEAgV2ViQXV0aGVudGljYXRpb25QYW5lbDo6fldlYkF1dGhlbnRpY2F0aW9uUGFuZWwo
KSA9IGRlZmF1bHQ7CiB2b2lkIFdlYkF1dGhlbnRpY2F0aW9uUGFuZWw6OmhhbmRsZVJlcXVlc3Qo
V2ViQXV0aGVudGljYXRpb25SZXF1ZXN0RGF0YSYmIHJlcXVlc3QsIENhbGxiYWNrJiYgY2FsbGJh
Y2spCiB7CiAgICAgQVNTRVJUKG1fbWFuYWdlcik7Ci0gICAgcmVxdWVzdC53ZWFrUGFuZWwgPSBt
YWtlV2Vha1B0cigqdGhpcyk7CisgICAgcmVxdWVzdC53ZWFrUGFuZWwgPSAqdGhpczsKICAgICBt
X21hbmFnZXItPmhhbmRsZVJlcXVlc3QoV1RGTW92ZShyZXF1ZXN0KSwgV1RGTW92ZShjYWxsYmFj
aykpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2Ev
V0tXZWJWaWV3Lm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmll
dy5tbQppbmRleCBkZDExOWZkNzM2OWNkZDliM2EyNWFiYWY1NDlhZjAyMDZhZjIzY2JlLi4xNzNk
NzMwZDUyNTU4N2ZmNDIyZWViOTAyODdkMzI4ZDU3ZmU3ZDdmIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Lm1tCisrKyBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcubW0KQEAgLTM2MTQsNyArMzYxNCw3IEBA
IC0gKHZvaWQpX3JlbW92ZURhdGFEZXRlY3RlZExpbmtzOihkaXNwYXRjaF9ibG9ja190KWNvbXBs
ZXRpb24KIHsKICAgICBUSFJPV19JRl9TVVNQRU5ERUQ7CiAjaWYgRU5BQkxFKERBVEFfREVURUNU
SU9OKQotICAgIF9wYWdlLT5yZW1vdmVEYXRhRGV0ZWN0ZWRMaW5rcyhbY29tcGxldGlvbiA9IG1h
a2VCbG9ja1B0cihjb21wbGV0aW9uKSwgcGFnZSA9IG1ha2VXZWFrUHRyKF9wYWdlLmdldCgpKV0g
KGF1dG8mIHJlc3VsdCkgeworICAgIF9wYWdlLT5yZW1vdmVEYXRhRGV0ZWN0ZWRMaW5rcyhbY29t
cGxldGlvbiA9IG1ha2VCbG9ja1B0cihjb21wbGV0aW9uKSwgcGFnZSA9IFdlYWtQdHIgeyBfcGFn
ZS5nZXQoKSB9XSAoYXV0byYgcmVzdWx0KSB7CiAgICAgICAgIGlmIChwYWdlKQogICAgICAgICAg
ICAgcGFnZS0+c2V0RGF0YURldGVjdGlvblJlc3VsdChyZXN1bHQpOwogICAgICAgICBpZiAoY29t
cGxldGlvbikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9X
S1dlYlZpZXdUZXN0aW5nLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dL
V2ViVmlld1Rlc3RpbmcubW0KaW5kZXggNzNjYTkzNDQ0ZTA5MGM2NzhmYmY4NGM4NDM4Yjg5ODU0
MzRiOGExNi4uNDg1NDA0ODNjMzFhZGU4ZjI1MTg0N2NmYmQ4YzYzOTU5N2M2MjhlZSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlld1Rlc3Rpbmcu
bW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlld1Rlc3Rp
bmcubW0KQEAgLTYyOSw3ICs2MjksNyBAQCAtIChpZClpbml0V2l0aENvb3JkaW5hdG9yOihXZWJD
b3JlOjpNZWRpYVNlc3Npb25Db29yZGluYXRvckNsaWVudCopY29vcmRpbmF0b3IKICAgICBzZWxm
ID0gW3N1cGVyIGluaXRdOwogICAgIGlmICghc2VsZikKICAgICAgICAgcmV0dXJuIG5pbDsKLSAg
ICBtX2Nvb3JkaW5hdG9yQ2xpZW50ID0gbWFrZVdlYWtQdHIoY29vcmRpbmF0b3IpOworICAgIG1f
Y29vcmRpbmF0b3JDbGllbnQgPSBjb29yZGluYXRvcjsKICAgICByZXR1cm4gc2VsZjsKIH0KIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL19XS1dlYkF1dGhl
bnRpY2F0aW9uUGFuZWwubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dL
V2ViQXV0aGVudGljYXRpb25QYW5lbC5tbQppbmRleCBjN2QwNjgxNmFjMWZlY2Q3YTJmMDczOTZi
NzcyZWY4ZmZiYmEwMGZlLi5jNzdkZWEwMjhmYzE5MDAxZDA4NmRiNjRiZjhhNDViYjkwNzMyYjAx
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLV2ViQXV0
aGVudGljYXRpb25QYW5lbC5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29j
b2EvX1dLV2ViQXV0aGVudGljYXRpb25QYW5lbC5tbQpAQCAtMTM5LDcgKzEzOSw3IEBAIC0gKGlk
IDxfV0tXZWJBdXRoZW50aWNhdGlvblBhbmVsRGVsZWdhdGU+KWRlbGVnYXRlCiAtICh2b2lkKXNl
dERlbGVnYXRlOihpZDxfV0tXZWJBdXRoZW50aWNhdGlvblBhbmVsRGVsZWdhdGU+KWRlbGVnYXRl
CiB7CiAgICAgYXV0byBjbGllbnQgPSBXVEY6Om1ha2VVbmlxdWVSZWY8V2ViS2l0OjpXZWJBdXRo
ZW50aWNhdGlvblBhbmVsQ2xpZW50PihzZWxmLCBkZWxlZ2F0ZSk7Ci0gICAgX2NsaWVudCA9IG1h
a2VXZWFrUHRyKGNsaWVudC5nZXQoKSk7CisgICAgX2NsaWVudCA9IGNsaWVudC5nZXQoKTsKICAg
ICBfcGFuZWwtPnNldENsaWVudChXVEZNb3ZlKGNsaWVudCkpOwogfQogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvaW9zL1dLV2ViVmlld0lPUy5tbSBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL0FQSS9pb3MvV0tXZWJWaWV3SU9TLm1tCmluZGV4IDQzMGQzMzJkZjA0
YzNjODdhYTQ1YjAwYzllYjczZDdiMmViZWFmNTIuLmY5MGFiYTlhZDk5ZGIzNTNiNDQyMzEwMTg2
NmZhMWU1OGRkNTRiOTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9p
b3MvV0tXZWJWaWV3SU9TLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9pb3Mv
V0tXZWJWaWV3SU9TLm1tCkBAIC0yOTQ4LDcgKzI5NDgsNyBAQCAtICh2b2lkKV9zZXRUZXh0Q29s
b3I6KFVJQ29sb3IgKiljb2xvciBzZW5kZXI6KGlkKXNlbmRlcgogLSAodm9pZClfZGV0ZWN0RGF0
YVdpdGhUeXBlczooV0tEYXRhRGV0ZWN0b3JUeXBlcyl0eXBlcyBjb21wbGV0aW9uSGFuZGxlcjoo
ZGlzcGF0Y2hfYmxvY2tfdCljb21wbGV0aW9uCiB7CiAjaWYgRU5BQkxFKERBVEFfREVURUNUSU9O
KQotICAgIF9wYWdlLT5kZXRlY3REYXRhSW5BbGxGcmFtZXMoZnJvbVdLRGF0YURldGVjdG9yVHlw
ZXModHlwZXMpLCBbY29tcGxldGlvbiA9IG1ha2VCbG9ja1B0cihjb21wbGV0aW9uKSwgcGFnZSA9
IG1ha2VXZWFrUHRyKF9wYWdlLmdldCgpKV0gKGF1dG8mIHJlc3VsdCkgeworICAgIF9wYWdlLT5k
ZXRlY3REYXRhSW5BbGxGcmFtZXMoZnJvbVdLRGF0YURldGVjdG9yVHlwZXModHlwZXMpLCBbY29t
cGxldGlvbiA9IG1ha2VCbG9ja1B0cihjb21wbGV0aW9uKSwgcGFnZSA9IFdlYWtQdHIgeyBfcGFn
ZS5nZXQoKSB9XSAoYXV0byYgcmVzdWx0KSB7CiAgICAgICAgIGlmIChwYWdlKQogICAgICAgICAg
ICAgcGFnZS0+c2V0RGF0YURldGVjdGlvblJlc3VsdChyZXN1bHQpOwogICAgICAgICBpZiAoY29t
cGxldGlvbikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL0dyb3Vw
QWN0aXZpdGllcy9Hcm91cEFjdGl2aXRpZXNDb29yZGluYXRvci5tbSBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL0NvY29hL0dyb3VwQWN0aXZpdGllcy9Hcm91cEFjdGl2aXRpZXNDb29yZGluYXRv
ci5tbQppbmRleCAxY2RjYmFiNDdmYzIwZDQzNGUxYjZmNmJiM2VkMDI2MzU0NTc4MWFiLi5iM2I3
ODJlY2YzMTFiZTU0YWQyM2YwZTZjOGVhNjBjNjc5N2FmNGE5IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9Hcm91cEFjdGl2aXRpZXMvR3JvdXBBY3Rpdml0aWVzQ29v
cmRpbmF0b3IubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvR3JvdXBBY3Rp
dml0aWVzL0dyb3VwQWN0aXZpdGllc0Nvb3JkaW5hdG9yLm1tCkBAIC00OCw3ICs0OCw3IEBAIC0g
KGlkKWluaXRXaXRoUGFyZW50OihXZWJLaXQ6Okdyb3VwQWN0aXZpdGllc0Nvb3JkaW5hdG9yJilw
YXJlbnQKICAgICBpZiAoIXNlbGYpCiAgICAgICAgIHJldHVybiBuaWw7CiAKLSAgICBfcGFyZW50
ID0gbWFrZVdlYWtQdHIocGFyZW50KTsKKyAgICBfcGFyZW50ID0gcGFyZW50OwogICAgIHJldHVy
biBzZWxmOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9M
ZWdhY3lDdXN0b21Qcm90b2NvbE1hbmFnZXJDbGllbnQubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9Db2NvYS9MZWdhY3lDdXN0b21Qcm90b2NvbE1hbmFnZXJDbGllbnQubW0KaW5kZXggN2Zi
N2Y4YWEzNmUwZTVmZmI4M2M2MjAyYzZiOTQ0Yzg0N2ZhYmJjOS4uYjQxZDI2YzgyN2I1MjI2NTcw
OTZkNDFhODI0NWNkZWVmZmZiOWE4NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvQ29jb2EvTGVnYWN5Q3VzdG9tUHJvdG9jb2xNYW5hZ2VyQ2xpZW50Lm1tCisrKyBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL0xlZ2FjeUN1c3RvbVByb3RvY29sTWFuYWdlckNsaWVu
dC5tbQpAQCAtNTIsNyArNTIsNyBAQCAtIChpZClpbml0V2l0aExlZ2FjeUN1c3RvbVByb3RvY29s
TWFuYWdlclByb3h5OihXZWJLaXQ6OkxlZ2FjeUN1c3RvbVByb3RvY29sTWFuYQogICAgICAgICBy
ZXR1cm4gbmlsOwogCiAgICAgQVNTRVJUKHJlcXVlc3QpOwotICAgIF9jdXN0b21Qcm90b2NvbE1h
bmFnZXJQcm94eSA9IG1ha2VXZWFrUHRyKGN1c3RvbVByb3RvY29sTWFuYWdlclByb3h5KTsKKyAg
ICBfY3VzdG9tUHJvdG9jb2xNYW5hZ2VyUHJveHkgPSBjdXN0b21Qcm90b2NvbE1hbmFnZXJQcm94
eTsKICAgICBfY3VzdG9tUHJvdG9jb2xJRCA9IGN1c3RvbVByb3RvY29sSUQ7CiAgICAgX3N0b3Jh
Z2VQb2xpY3kgPSBOU1VSTENhY2hlU3RvcmFnZU5vdEFsbG93ZWQ7CiAgICAgQUxMT1dfREVQUkVD
QVRFRF9ERUNMQVJBVElPTlNfQkVHSU4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0NvY29hL05hdmlnYXRpb25TdGF0ZS5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0Nv
Y29hL05hdmlnYXRpb25TdGF0ZS5tbQppbmRleCBkNGU4ZDZlYmRlZjkyZDRiMmZhMGYxNzM3NTY4
NDYzMjNhZTA3NTFlLi44ZmI4ODVlMDU5ODkzYWNjZjhjMmQwY2E1NDIxZGUyODM4YTM1YTQ5IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9OYXZpZ2F0aW9uU3RhdGUu
bW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvTmF2aWdhdGlvblN0YXRlLm1t
CkBAIC0xMTEsNyArMTExLDcgQEAgTmF2aWdhdGlvblN0YXRlOjpOYXZpZ2F0aW9uU3RhdGUoV0tX
ZWJWaWV3ICp3ZWJWaWV3KQogICAgIEFTU0VSVChtX3dlYlZpZXctPl9wYWdlKTsKICAgICBBU1NF
UlQoIW5hdmlnYXRpb25TdGF0ZXMoKS5jb250YWlucyhtX3dlYlZpZXctPl9wYWdlLmdldCgpKSk7
CiAKLSAgICBuYXZpZ2F0aW9uU3RhdGVzKCkuYWRkKG1fd2ViVmlldy0+X3BhZ2UuZ2V0KCksIG1h
a2VXZWFrUHRyKCp0aGlzKSk7CisgICAgbmF2aWdhdGlvblN0YXRlcygpLmFkZChtX3dlYlZpZXct
Pl9wYWdlLmdldCgpLCAqdGhpcyk7CiAgICAgbV93ZWJWaWV3LT5fcGFnZS0+cGFnZUxvYWRTdGF0
ZSgpLmFkZE9ic2VydmVyKCp0aGlzKTsKIH0KIApAQCAtMzE0LDcgKzMxNCw3IEBAIHZvaWQgTmF2
aWdhdGlvblN0YXRlOjpkaWRGaXJzdFBhaW50KCkKIH0KIAogTmF2aWdhdGlvblN0YXRlOjpOYXZp
Z2F0aW9uQ2xpZW50OjpOYXZpZ2F0aW9uQ2xpZW50KE5hdmlnYXRpb25TdGF0ZSYgbmF2aWdhdGlv
blN0YXRlKQotICAgIDogbV9uYXZpZ2F0aW9uU3RhdGUobWFrZVdlYWtQdHIobmF2aWdhdGlvblN0
YXRlKSkKKyAgICA6IG1fbmF2aWdhdGlvblN0YXRlKG5hdmlnYXRpb25TdGF0ZSkKIHsKIH0KIApA
QCAtNDM1LDcgKzQzNSw3IEBAIHN0YXRpYyB2b2lkIHRyeUludGVyY2VwdE5hdmlnYXRpb24oUmVm
PEFQSTo6TmF2aWdhdGlvbkFjdGlvbj4mJiBuYXZpZ2F0aW9uQWN0aW9uCiAjaWYgSEFWRShBUFBf
TElOS1MpCiAgICAgaWYgKG5hdmlnYXRpb25BY3Rpb24tPnNob3VsZE9wZW5BcHBMaW5rcygpKSB7
CiAgICAgICAgIGF1dG8gdXJsID0gbmF2aWdhdGlvbkFjdGlvbi0+cmVxdWVzdCgpLnVybCgpOwot
ICAgICAgICBhdXRvKiBsb2NhbENvbXBsZXRpb25IYW5kbGVyID0gbmV3IFdURjo6RnVuY3Rpb248
dm9pZCAoYm9vbCk+KFtuYXZpZ2F0aW9uQWN0aW9uID0gV1RGTW92ZShuYXZpZ2F0aW9uQWN0aW9u
KSwgd2Vha1BhZ2UgPSBtYWtlV2Vha1B0cihwYWdlKSwgY29tcGxldGlvbkhhbmRsZXIgPSBXVEZN
b3ZlKGNvbXBsZXRpb25IYW5kbGVyKV0gKGJvb2wgc3VjY2VzcykgbXV0YWJsZSB7CisgICAgICAg
IGF1dG8qIGxvY2FsQ29tcGxldGlvbkhhbmRsZXIgPSBuZXcgV1RGOjpGdW5jdGlvbjx2b2lkIChi
b29sKT4oW25hdmlnYXRpb25BY3Rpb24gPSBXVEZNb3ZlKG5hdmlnYXRpb25BY3Rpb24pLCB3ZWFr
UGFnZSA9IFdlYWtQdHIgeyBwYWdlIH0sIGNvbXBsZXRpb25IYW5kbGVyID0gV1RGTW92ZShjb21w
bGV0aW9uSGFuZGxlcildIChib29sIHN1Y2Nlc3MpIG11dGFibGUgewogICAgICAgICAgICAgQVNT
RVJUKFJ1bkxvb3A6OmlzTWFpbigpKTsKICAgICAgICAgICAgIGlmICghc3VjY2VzcyAmJiB3ZWFr
UGFnZSkgewogICAgICAgICAgICAgICAgIHRyeVNPQXV0aG9yaXphdGlvbihXVEZNb3ZlKG5hdmln
YXRpb25BY3Rpb24pLCAqd2Vha1BhZ2UsIFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKTsKQEAg
LTEyODgsNyArMTI4OCw3IEBAIHZvaWQgTmF2aWdhdGlvblN0YXRlOjpOYXZpZ2F0aW9uQ2xpZW50
OjpkZWNpZGVQb2xpY3lGb3JTT0F1dGhvcml6YXRpb25Mb2FkKFdlYlBhCiAvLyBIaXN0b3J5RGVs
ZWdhdGVQcml2YXRlIHN1cHBvcnQKICAgICAKIE5hdmlnYXRpb25TdGF0ZTo6SGlzdG9yeUNsaWVu
dDo6SGlzdG9yeUNsaWVudChOYXZpZ2F0aW9uU3RhdGUmIG5hdmlnYXRpb25TdGF0ZSkKLSAgICA6
IG1fbmF2aWdhdGlvblN0YXRlKG1ha2VXZWFrUHRyKG5hdmlnYXRpb25TdGF0ZSkpCisgICAgOiBt
X25hdmlnYXRpb25TdGF0ZShuYXZpZ2F0aW9uU3RhdGUpCiB7CiB9CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1NPQXV0aG9yaXphdGlvbi9Qb3BVcFNPQXV0aG9y
aXphdGlvblNlc3Npb24ubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9TT0F1dGhv
cml6YXRpb24vUG9wVXBTT0F1dGhvcml6YXRpb25TZXNzaW9uLm1tCmluZGV4IDlmMWViYzhmZWQ5
NTJiYWY5NmYwZDdmNjVlZjg4NDI1NDkzYTkyYTIuLmUxZGE5NmY4MjU5MzJjZjFlZGQ1M2IyNzA3
MTc1YTA4OTRlZTIxMzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29h
L1NPQXV0aG9yaXphdGlvbi9Qb3BVcFNPQXV0aG9yaXphdGlvblNlc3Npb24ubW0KKysrIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvU09BdXRob3JpemF0aW9uL1BvcFVwU09BdXRob3Jp
emF0aW9uU2Vzc2lvbi5tbQpAQCAtNTIsNyArNTIsNyBAQCBAaW1wbGVtZW50YXRpb24gV0tTT1Nl
Y3JldERlbGVnYXRlCiAtIChpbnN0YW5jZXR5cGUpaW5pdFdpdGhTZXNzaW9uOihXZWJLaXQ6OlBv
cFVwU09BdXRob3JpemF0aW9uU2Vzc2lvbiAqKXNlc3Npb24KIHsKICAgICBpZiAoKHNlbGYgPSBb
c3VwZXIgaW5pdF0pKSB7Ci0gICAgICAgIF9zZXNzaW9uID0gbWFrZVdlYWtQdHIoc2Vzc2lvbik7
CisgICAgICAgIF9zZXNzaW9uID0gc2Vzc2lvbjsKICAgICAgICAgX2lzRmlyc3ROYXZpZ2F0aW9u
ID0gWUVTOwogICAgIH0KICAgICByZXR1cm4gc2VsZjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0NvY29hL1NPQXV0aG9yaXphdGlvbi9TT0F1dGhvcml6YXRpb25TZXNzaW9u
Lm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvU09BdXRob3JpemF0aW9uL1NPQXV0
aG9yaXphdGlvblNlc3Npb24ubW0KaW5kZXggYjllZjBiY2VlZDUyNzY0OWE0M2VkZmE4MDliMzYy
Y2Q4YzI1Nzc3Zi4uNzIwNDMzMmVhODgyZGUxMWMyYjY5MTk0ODQxM2E1MGY4ZTAzYjc4MSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvU09BdXRob3JpemF0aW9uL1NP
QXV0aG9yaXphdGlvblNlc3Npb24ubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29j
b2EvU09BdXRob3JpemF0aW9uL1NPQXV0aG9yaXphdGlvblNlc3Npb24ubW0KQEAgLTg5LDcgKzg5
LDcgQEAgc3RhdGljIGJvb2wgaXNTYW1lT3JpZ2luKGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVx
dWVzdCYgcmVxdWVzdCwgY29uc3QgV2ViQ29yZToKIFNPQXV0aG9yaXphdGlvblNlc3Npb246OlNP
QXV0aG9yaXphdGlvblNlc3Npb24oU09BdXRob3JpemF0aW9uICpzb0F1dGhvcml6YXRpb24sIFJl
ZjxBUEk6Ok5hdmlnYXRpb25BY3Rpb24+JiYgbmF2aWdhdGlvbkFjdGlvbiwgV2ViUGFnZVByb3h5
JiBwYWdlLCBJbml0aWF0aW5nQWN0aW9uIGFjdGlvbikKICAgICA6IG1fc29BdXRob3JpemF0aW9u
KHNvQXV0aG9yaXphdGlvbikKICAgICAsIG1fbmF2aWdhdGlvbkFjdGlvbihXVEZNb3ZlKG5hdmln
YXRpb25BY3Rpb24pKQotICAgICwgbV9wYWdlKG1ha2VXZWFrUHRyKHBhZ2UpKQorICAgICwgbV9w
YWdlKHBhZ2UpCiAgICAgLCBtX2FjdGlvbihhY3Rpb24pCiB7CiB9CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9VSURlbGVnYXRlLm1tIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvQ29jb2EvVUlEZWxlZ2F0ZS5tbQppbmRleCBkNzhmNGNjMGQ1NjU1OTRjMGU4ODFh
NDU4YmZkMjM4Mjc1MTIyNDVhLi4xMDdmYTI0Y2UxNDc1MzQwN2RmYWNmMDU2MDg0ODZiNWQ5ZGEy
ZWVkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9VSURlbGVnYXRl
Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1VJRGVsZWdhdGUubW0KQEAg
LTE5Nyw3ICsxOTcsNyBAQCB2b2lkIFVJRGVsZWdhdGU6OnNldERlbGVnYXRlKGlkIDxXS1VJRGVs
ZWdhdGU+IGRlbGVnYXRlKQogCiAjaWYgRU5BQkxFKENPTlRFWFRfTUVOVVMpCiBVSURlbGVnYXRl
OjpDb250ZXh0TWVudUNsaWVudDo6Q29udGV4dE1lbnVDbGllbnQoVUlEZWxlZ2F0ZSYgdWlEZWxl
Z2F0ZSkKLSAgICA6IG1fdWlEZWxlZ2F0ZShtYWtlV2Vha1B0cih1aURlbGVnYXRlKSkKKyAgICA6
IG1fdWlEZWxlZ2F0ZSh1aURlbGVnYXRlKQogewogfQogCkBAIC0yNDIsNyArMjQyLDcgQEAgdm9p
ZCBVSURlbGVnYXRlOjpDb250ZXh0TWVudUNsaWVudDo6bWVudUZyb21Qcm9wb3NlZE1lbnUoV2Vi
UGFnZVByb3h5JiwgTlNNZW51ICoKICNlbmRpZgogCiBVSURlbGVnYXRlOjpVSUNsaWVudDo6VUlD
bGllbnQoVUlEZWxlZ2F0ZSYgdWlEZWxlZ2F0ZSkKLSAgICA6IG1fdWlEZWxlZ2F0ZShtYWtlV2Vh
a1B0cih1aURlbGVnYXRlKSkKKyAgICA6IG1fdWlEZWxlZ2F0ZSh1aURlbGVnYXRlKQogewogfQog
CkBAIC00MjMsNyArNDIzLDcgQEAgdm9pZCBVSURlbGVnYXRlOjpVSUNsaWVudDo6ZGVjaWRlUG9s
aWN5Rm9yR2VvbG9jYXRpb25QZXJtaXNzaW9uUmVxdWVzdChXZWJLaXQ6OlcKICAgICBpZiAobV91
aURlbGVnYXRlLT5tX2RlbGVnYXRlTWV0aG9kcy53ZWJWaWV3UmVxdWVzdEdlb2xvY2F0aW9uUGVy
bWlzc2lvbkZvck9yaWdpbkRlY2lzaW9uSGFuZGxlcikgewogICAgICAgICBhdXRvIHNlY3VyaXR5
T3JpZ2luID0gV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW46OmNyZWF0ZUZyb21TdHJpbmcocGFnZS5w
YWdlTG9hZFN0YXRlKCkuYWN0aXZlVVJMKCkpOwogICAgICAgICBhdXRvIGNoZWNrZXIgPSBDb21w
bGV0aW9uSGFuZGxlckNhbGxDaGVja2VyOjpjcmVhdGUoZGVsZWdhdGUuZ2V0KCksIEBzZWxlY3Rv
cihfd2ViVmlldzpyZXF1ZXN0R2VvbG9jYXRpb25QZXJtaXNzaW9uRm9yT3JpZ2luOmluaXRpYXRl
ZEJ5RnJhbWU6ZGVjaXNpb25IYW5kbGVyOikpOwotICAgICAgICBhdXRvIGRlY2lzaW9uSGFuZGxl
ciA9IG1ha2VCbG9ja1B0cihbY29tcGxldGlvbkhhbmRsZXIgPSBzdGQ6OmV4Y2hhbmdlKGNvbXBs
ZXRpb25IYW5kbGVyLCBudWxscHRyKSwgc2VjdXJpdHlPcmlnaW4gPSBzZWN1cml0eU9yaWdpbi0+
ZGF0YSgpLCBjaGVja2VyID0gV1RGTW92ZShjaGVja2VyKSwgcGFnZSA9IG1ha2VXZWFrUHRyKHBh
Z2UpXSAoV0tQZXJtaXNzaW9uRGVjaXNpb24gZGVjaXNpb24pIG11dGFibGUgeworICAgICAgICBh
dXRvIGRlY2lzaW9uSGFuZGxlciA9IG1ha2VCbG9ja1B0cihbY29tcGxldGlvbkhhbmRsZXIgPSBz
dGQ6OmV4Y2hhbmdlKGNvbXBsZXRpb25IYW5kbGVyLCBudWxscHRyKSwgc2VjdXJpdHlPcmlnaW4g
PSBzZWN1cml0eU9yaWdpbi0+ZGF0YSgpLCBjaGVja2VyID0gV1RGTW92ZShjaGVja2VyKSwgcGFn
ZSA9IFdlYWtQdHIgeyBwYWdlIH1dIChXS1Blcm1pc3Npb25EZWNpc2lvbiBkZWNpc2lvbikgbXV0
YWJsZSB7CiAgICAgICAgICAgICBpZiAoY2hlY2tlci0+Y29tcGxldGlvbkhhbmRsZXJIYXNCZWVu
Q2FsbGVkKCkpCiAgICAgICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAgICAgY2hlY2tlci0+
ZGlkQ2FsbENvbXBsZXRpb25IYW5kbGVyKCk7CkBAIC0xMDYxLDcgKzEwNjEsNyBAQCB2b2lkIFVJ
RGVsZWdhdGU6OlVJQ2xpZW50OjpzaG91bGRBbGxvd0RldmljZU9yaWVudGF0aW9uQW5kTW90aW9u
QWNjZXNzKFdlYktpdDo6VwogCiAgICAgYXV0byBkZWxlZ2F0ZSA9IG1fdWlEZWxlZ2F0ZS0+bV9k
ZWxlZ2F0ZS5nZXQoKTsKICAgICBhdXRvIGNoZWNrZXIgPSBDb21wbGV0aW9uSGFuZGxlckNhbGxD
aGVja2VyOjpjcmVhdGUoZGVsZWdhdGUuZ2V0KCksIEBzZWxlY3Rvcih3ZWJWaWV3OnJlcXVlc3RE
ZXZpY2VPcmllbnRhdGlvbkFuZE1vdGlvblBlcm1pc3Npb25Gb3JPcmlnaW46aW5pdGlhdGVkQnlG
cmFtZTpkZWNpc2lvbkhhbmRsZXI6KSk7Ci0gICAgYXV0byBkZWNpc2lvbkhhbmRsZXIgPSBtYWtl
QmxvY2tQdHIoW2NvbXBsZXRpb25IYW5kbGVyID0gV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlciks
IHNlY3VyaXR5T3JpZ2luID0gc2VjdXJpdHlPcmlnaW4tPmRhdGEoKSwgY2hlY2tlciA9IFdURk1v
dmUoY2hlY2tlciksIHBhZ2UgPSBtYWtlV2Vha1B0cihwYWdlKV0oV0tQZXJtaXNzaW9uRGVjaXNp
b24gZGVjaXNpb24pIG11dGFibGUgeworICAgIGF1dG8gZGVjaXNpb25IYW5kbGVyID0gbWFrZUJs
b2NrUHRyKFtjb21wbGV0aW9uSGFuZGxlciA9IFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpLCBz
ZWN1cml0eU9yaWdpbiA9IHNlY3VyaXR5T3JpZ2luLT5kYXRhKCksIGNoZWNrZXIgPSBXVEZNb3Zl
KGNoZWNrZXIpLCBwYWdlID0gV2Vha1B0ciB7IHBhZ2UgfV0oV0tQZXJtaXNzaW9uRGVjaXNpb24g
ZGVjaXNpb24pIG11dGFibGUgewogICAgICAgICBpZiAoY2hlY2tlci0+Y29tcGxldGlvbkhhbmRs
ZXJIYXNCZWVuQ2FsbGVkKCkpCiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIGNoZWNrZXIt
PmRpZENhbGxDb21wbGV0aW9uSGFuZGxlcigpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvQ29jb2EvV2ViUGFzdGVib2FyZFByb3h5Q29jb2EubW0gYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9Db2NvYS9XZWJQYXN0ZWJvYXJkUHJveHlDb2NvYS5tbQppbmRleCA3Yzg5YTFi
ZDhhZmE2ZTljOTQyNzg0ZTBkNzVmY2E5NDMyYTBmYjMwLi5iYWQxYWY4MmFiYWMxNmFmNWZmYmZi
OWU5Y2FjOWYyNmY3NWVmMjZiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9D
b2NvYS9XZWJQYXN0ZWJvYXJkUHJveHlDb2NvYS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9Db2NvYS9XZWJQYXN0ZWJvYXJkUHJveHlDb2NvYS5tbQpAQCAtNzUsNyArNzUsNyBAQCB2
b2lkIFdlYlBhc3RlYm9hcmRQcm94eTo6Z3JhbnRBY2Nlc3MoV2ViUHJvY2Vzc1Byb3h5JiBwcm9j
ZXNzLCBjb25zdCBTdHJpbmcmIHBhcwogICAgICAgICByZXR1cm47CiAgICAgfQogCi0gICAgbV9w
YXN0ZWJvYXJkTmFtZVRvQWNjZXNzSW5mb3JtYXRpb25NYXAuc2V0KHBhc3RlYm9hcmROYW1lLCBQ
YXN0ZWJvYXJkQWNjZXNzSW5mb3JtYXRpb24geyBjaGFuZ2VDb3VudCwge3sgbWFrZVdlYWtQdHIo
cHJvY2VzcyksIHR5cGUgfX0gfSk7CisgICAgbV9wYXN0ZWJvYXJkTmFtZVRvQWNjZXNzSW5mb3Jt
YXRpb25NYXAuc2V0KHBhc3RlYm9hcmROYW1lLCBQYXN0ZWJvYXJkQWNjZXNzSW5mb3JtYXRpb24g
eyBjaGFuZ2VDb3VudCwge3sgcHJvY2VzcywgdHlwZSB9fSB9KTsKIH0KIAogdm9pZCBXZWJQYXN0
ZWJvYXJkUHJveHk6OnJldm9rZUFjY2VzcyhXZWJQcm9jZXNzUHJveHkmIHByb2Nlc3MpCkBAIC0x
MzUsNyArMTM1LDcgQEAgdm9pZCBXZWJQYXN0ZWJvYXJkUHJveHk6OmRpZE1vZGlmeUNvbnRlbnRz
T2ZQYXN0ZWJvYXJkKElQQzo6Q29ubmVjdGlvbiYgY29ubmVjdGkKICAgICBhdXRvIGNoYW5nZUNv
dW50QW5kUHJvY2Vzc2VzID0gbV9wYXN0ZWJvYXJkTmFtZVRvQWNjZXNzSW5mb3JtYXRpb25NYXAu
ZmluZChwYXN0ZWJvYXJkTmFtZSk7CiAgICAgaWYgKGNoYW5nZUNvdW50QW5kUHJvY2Vzc2VzICE9
IG1fcGFzdGVib2FyZE5hbWVUb0FjY2Vzc0luZm9ybWF0aW9uTWFwLmVuZCgpICYmIHByZXZpb3Vz
Q2hhbmdlQ291bnQgPT0gY2hhbmdlQ291bnRBbmRQcm9jZXNzZXMtPnZhbHVlLmNoYW5nZUNvdW50
KSB7CiAgICAgICAgIGlmIChhdXRvIGFjY2Vzc1R5cGUgPSBjaGFuZ2VDb3VudEFuZFByb2Nlc3Nl
cy0+dmFsdWUuYWNjZXNzVHlwZSgqcHJvY2VzcykpCi0gICAgICAgICAgICBjaGFuZ2VDb3VudEFu
ZFByb2Nlc3Nlcy0+dmFsdWUgPSBQYXN0ZWJvYXJkQWNjZXNzSW5mb3JtYXRpb24geyBuZXdDaGFu
Z2VDb3VudCwge3sgbWFrZVdlYWtQdHIoKnByb2Nlc3MpLCAqYWNjZXNzVHlwZSB9fSB9OworICAg
ICAgICAgICAgY2hhbmdlQ291bnRBbmRQcm9jZXNzZXMtPnZhbHVlID0gUGFzdGVib2FyZEFjY2Vz
c0luZm9ybWF0aW9uIHsgbmV3Q2hhbmdlQ291bnQsIHt7ICpwcm9jZXNzLCAqYWNjZXNzVHlwZSB9
fSB9OwogICAgIH0KIH0KIApAQCAtNjg5LDcgKzY4OSw3IEBAIHZvaWQgV2ViUGFzdGVib2FyZFBy
b3h5OjpQYXN0ZWJvYXJkQWNjZXNzSW5mb3JtYXRpb246OmdyYW50QWNjZXNzKFdlYlByb2Nlc3NQ
cm94CiAgICAgfSk7CiAKICAgICBpZiAobWF0Y2hJbmRleCA9PSBub3RGb3VuZCkgewotICAgICAg
ICBwcm9jZXNzZXMuYXBwZW5kKHsgbWFrZVdlYWtQdHIocHJvY2VzcyksIHR5cGUgfSk7CisgICAg
ICAgIHByb2Nlc3Nlcy5hcHBlbmQoeyBwcm9jZXNzLCB0eXBlIH0pOwogICAgICAgICByZXR1cm47
CiAgICAgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9XZWJQ
cm9jZXNzUG9vbENvY29hLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvV2ViUHJv
Y2Vzc1Bvb2xDb2NvYS5tbQppbmRleCA2NGNhNDE2NTUwOTdlMTk2NzkwNDZjYTM5N2ZhZTM5ZGJj
OTM3OGIzLi40YzIxMWY1ZmNlYmNkMTE0MTg0N2RlODExMWVhMTI0ODBjNzAzNmYzIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9XZWJQcm9jZXNzUG9vbENvY29hLm1t
CisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dlYlByb2Nlc3NQb29sQ29jb2Eu
bW0KQEAgLTIxOCw3ICsyMTgsNyBAQCBzdGF0aWMgQWNjZXNzaWJpbGl0eVByZWZlcmVuY2VzIGFj
Y2Vzc2liaWxpdHlQcmVmZXJlbmNlcygpCiAjaWYgSEFWRShNRURJQV9BQ0NFU1NJQklMSVRZX0ZS
QU1FV09SSykKIHZvaWQgV2ViUHJvY2Vzc1Bvb2w6OnNldE1lZGlhQWNjZXNzaWJpbGl0eVByZWZl
cmVuY2VzKFdlYlByb2Nlc3NQcm94eSYgcHJvY2VzcykKIHsKLSAgICBkaXNwYXRjaF9hc3luYyhk
aXNwYXRjaF9nZXRfZ2xvYmFsX3F1ZXVlKERJU1BBVENIX1FVRVVFX1BSSU9SSVRZX0RFRkFVTFQs
IDApLCBbd2Vha1Byb2Nlc3MgPSBtYWtlV2Vha1B0cihwcm9jZXNzKV0geworICAgIGRpc3BhdGNo
X2FzeW5jKGRpc3BhdGNoX2dldF9nbG9iYWxfcXVldWUoRElTUEFUQ0hfUVVFVUVfUFJJT1JJVFlf
REVGQVVMVCwgMCksIFt3ZWFrUHJvY2VzcyA9IFdlYWtQdHIgeyBwcm9jZXNzIH1dIHsKICAgICAg
ICAgYXV0byBjYXB0aW9uRGlzcGxheU1vZGUgPSBXZWJDb3JlOjpDYXB0aW9uVXNlclByZWZlcmVu
Y2VzTWVkaWFBRjo6cGxhdGZvcm1DYXB0aW9uRGlzcGxheU1vZGUoKTsKICAgICAgICAgYXV0byBw
cmVmZXJyZWRMYW5ndWFnZXMgPSBXZWJDb3JlOjpDYXB0aW9uVXNlclByZWZlcmVuY2VzTWVkaWFB
Rjo6cGxhdGZvcm1QcmVmZXJyZWRMYW5ndWFnZXMoKTsKICAgICAgICAgY2FsbE9uTWFpblJ1bkxv
b3AoW3dlYWtQcm9jZXNzLCBjYXB0aW9uRGlzcGxheU1vZGUsIHByZWZlcnJlZExhbmd1YWdlcyA9
IFdURk1vdmUocHJlZmVycmVkTGFuZ3VhZ2VzKS5pc29sYXRlZENvcHkoKV0gewpAQCAtNzE2LDcg
KzcxNiw3IEBAIHZvaWQgV2ViUHJvY2Vzc1Bvb2w6OnJlbW92ZUNGTm90aWZpY2F0aW9uT2JzZXJ2
ZXIoQ0ZTdHJpbmdSZWYgbmFtZSwgQ0ZOb3RpZmljYXRpCiAKIHZvaWQgV2ViUHJvY2Vzc1Bvb2w6
OnJlZ2lzdGVyTm90aWZpY2F0aW9uT2JzZXJ2ZXJzKCkKIHsKLSAgICBtX3dlYWtPYnNlcnZlciA9
IGFkb3B0TlMoW1tXS1Byb2Nlc3NQb29sV2Vha09ic2VydmVyIGFsbG9jXSBpbml0V2l0aFdlYWtQ
dHI6bWFrZVdlYWtQdHIoKnRoaXMpXSk7CisgICAgbV93ZWFrT2JzZXJ2ZXIgPSBhZG9wdE5TKFtb
V0tQcm9jZXNzUG9vbFdlYWtPYnNlcnZlciBhbGxvY10gaW5pdFdpdGhXZWFrUHRyOip0aGlzXSk7
CiAKICNpZiAhUExBVEZPUk0oSU9TX0ZBTUlMWSkKICAgICBtX3Bvd2VyT2JzZXJ2ZXIgPSBtYWtl
VW5pcXVlPFdlYkNvcmU6OlBvd2VyT2JzZXJ2ZXI+KFt3ZWFrVGhpcyA9IFdlYWtQdHIgeyAqdGhp
cyB9XSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9XZWJWaWV3
SW1wbC5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dlYlZpZXdJbXBsLm1tCmlu
ZGV4IGNiODIzNjlhZTFhZTc5ZmFiYzExN2IzNDY2NjZiMzdiYjViZjkzNzguLjY1OTVmNGU1YjU2
ZjRiZWJlZGM2OTE3OGQ0MDM2MzVmYjlhNWRhYjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL0NvY29hL1dlYlZpZXdJbXBsLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0NvY29hL1dlYlZpZXdJbXBsLm1tCkBAIC0xMDExLDcgKzEwMTEsNyBAQCAtIChpbnN0YW5j
ZXR5cGUpaW5pdFdpdGhXZWJWaWV3SW1wbDooV2ViS2l0OjpXZWJWaWV3SW1wbCYpaW1wbAogICAg
IGlmICghKHNlbGYgPSBbc3VwZXIgaW5pdF0pKQogICAgICAgICByZXR1cm4gbmlsOwogCi0gICAg
X2ltcGwgPSBtYWtlV2Vha1B0cihpbXBsKTsKKyAgICBfaW1wbCA9IGltcGw7CiAgICAgcmV0dXJu
IHNlbGY7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0Rvd25sb2Fk
cy9Eb3dubG9hZFByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0Rvd25sb2Fkcy9E
b3dubG9hZFByb3h5LmNwcAppbmRleCA0NjM4NGU0MmY5MWUxNGMxMjIxNTRjYjkwNzUwZDI5ZWIy
ZDQ2ZTBkLi5lYjBjZmMzNzU3Y2VlMTcxMDViYzQzNzNhMDg3N2Q4NmM4OTg1OWQzIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Eb3dubG9hZHMvRG93bmxvYWRQcm94eS5jcHAK
KysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvRG93bmxvYWRzL0Rvd25sb2FkUHJveHkuY3Bw
CkBAIC01NCw3ICs1NCw3IEBAIERvd25sb2FkUHJveHk6OkRvd25sb2FkUHJveHkoRG93bmxvYWRQ
cm94eU1hcCYgZG93bmxvYWRQcm94eU1hcCwgV2Vic2l0ZURhdGFTdG9yCiAgICAgLCBtX2NsaWVu
dChjbGllbnQpCiAgICAgLCBtX2Rvd25sb2FkSUQoRG93bmxvYWRJRDo6Z2VuZXJhdGUoKSkKICAg
ICAsIG1fcmVxdWVzdChyZXNvdXJjZVJlcXVlc3QpCi0gICAgLCBtX29yaWdpbmF0aW5nUGFnZSht
YWtlV2Vha1B0cihvcmlnaW5hdGluZ1BhZ2UpKQorICAgICwgbV9vcmlnaW5hdGluZ1BhZ2Uob3Jp
Z2luYXRpbmdQYWdlKQogICAgICwgbV9mcmFtZUluZm8oQVBJOjpGcmFtZUluZm86OmNyZWF0ZShG
cmFtZUluZm9EYXRhIHsgZnJhbWVJbmZvRGF0YSB9LCBvcmlnaW5hdGluZ1BhZ2UpKQogewogfQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvR1BVL0dQVVByb2Nlc3NQcm94eS5j
cHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9HUFUvR1BVUHJvY2Vzc1Byb3h5LmNwcAppbmRl
eCBmYWQ1ZjlkNjc0NGFjMmZjYjU0Y2FhZWVlNjNlYjYzMzI1MTRjMDFkLi43Y2E2N2ViYjY2NmQ1
NGJlODY5Zjc5NGI0NWU3OGYyNzcxOWEzM2ZhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9HUFUvR1BVUHJvY2Vzc1Byb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9HUFUvR1BVUHJvY2Vzc1Byb3h5LmNwcApAQCAtMTA4LDcgKzEwOCw3IEBAIFJlZjxHUFVQ
cm9jZXNzUHJveHk+IEdQVVByb2Nlc3NQcm94eTo6Z2V0T3JDcmVhdGUoKQogICAgIH0KICAgICBh
dXRvIGdwdVByb2Nlc3MgPSBhZG9wdFJlZigqbmV3IEdQVVByb2Nlc3NQcm94eSk7CiAgICAgZ3B1
UHJvY2Vzcy0+dXBkYXRlUHJlZmVyZW5jZXMoKTsKLSAgICBzaW5nbGV0b24oKSA9IG1ha2VXZWFr
UHRyKGdwdVByb2Nlc3MuZ2V0KCkpOworICAgIHNpbmdsZXRvbigpID0gZ3B1UHJvY2VzczsKICAg
ICByZXR1cm4gZ3B1UHJvY2VzczsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvSW5zcGVjdG9yL0luc3BlY3RvclRhcmdldFByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL0luc3BlY3Rvci9JbnNwZWN0b3JUYXJnZXRQcm94eS5jcHAKaW5kZXggNjkyOGNh
MmZiZmI2OTM5MDYyZTNjZDE0YmI3YmE2ZjJmZGM4N2Y1Zi4uY2ZjYWNjZTAxMjJiYjAzZmE0N2Zk
ODU4MGNmYmVkZmIyYWQzN2Q0OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
SW5zcGVjdG9yL0luc3BlY3RvclRhcmdldFByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9JbnNwZWN0b3IvSW5zcGVjdG9yVGFyZ2V0UHJveHkuY3BwCkBAIC00NSw3ICs0NSw3
IEBAIHN0ZDo6dW5pcXVlX3B0cjxJbnNwZWN0b3JUYXJnZXRQcm94eT4gSW5zcGVjdG9yVGFyZ2V0
UHJveHk6OmNyZWF0ZShXZWJQYWdlUHJveHkmCiBzdGQ6OnVuaXF1ZV9wdHI8SW5zcGVjdG9yVGFy
Z2V0UHJveHk+IEluc3BlY3RvclRhcmdldFByb3h5OjpjcmVhdGUoUHJvdmlzaW9uYWxQYWdlUHJv
eHkmIHByb3Zpc2lvbmFsUGFnZSwgY29uc3QgU3RyaW5nJiB0YXJnZXRJZCwgSW5zcGVjdG9yOjpJ
bnNwZWN0b3JUYXJnZXRUeXBlIHR5cGUpCiB7CiAgICAgYXV0byB0YXJnZXQgPSBJbnNwZWN0b3JU
YXJnZXRQcm94eTo6Y3JlYXRlKHByb3Zpc2lvbmFsUGFnZS5wYWdlKCksIHRhcmdldElkLCB0eXBl
KTsKLSAgICB0YXJnZXQtPm1fcHJvdmlzaW9uYWxQYWdlID0gbWFrZVdlYWtQdHIocHJvdmlzaW9u
YWxQYWdlKTsKKyAgICB0YXJnZXQtPm1fcHJvdmlzaW9uYWxQYWdlID0gcHJvdmlzaW9uYWxQYWdl
OwogICAgIHJldHVybiB0YXJnZXQ7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL0luc3BlY3Rvci9XZWJJbnNwZWN0b3JVSUV4dGVuc2lvbkNvbnRyb2xsZXJQcm94eS5j
cHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9JbnNwZWN0b3IvV2ViSW5zcGVjdG9yVUlFeHRl
bnNpb25Db250cm9sbGVyUHJveHkuY3BwCmluZGV4IDA3YTYzZjQ5ZGE4NTY4MDdlMmJhMWVlMDE5
MjAxZGE4ZWMzOTgyOTAuLjdiZDFlMjhmNGYxOTZiZjFiZDMzMmNjYzgzYzFiOWU4YjJmMzliZGUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0luc3BlY3Rvci9XZWJJbnNwZWN0
b3JVSUV4dGVuc2lvbkNvbnRyb2xsZXJQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvSW5zcGVjdG9yL1dlYkluc3BlY3RvclVJRXh0ZW5zaW9uQ29udHJvbGxlclByb3h5LmNw
cApAQCAtMzgsNyArMzgsNyBAQAogbmFtZXNwYWNlIFdlYktpdCB7CiAKIFdlYkluc3BlY3RvclVJ
RXh0ZW5zaW9uQ29udHJvbGxlclByb3h5OjpXZWJJbnNwZWN0b3JVSUV4dGVuc2lvbkNvbnRyb2xs
ZXJQcm94eShXZWJQYWdlUHJveHkmIGluc3BlY3RvclBhZ2UpCi0gICAgOiBtX2luc3BlY3RvclBh
Z2UobWFrZVdlYWtQdHIoaW5zcGVjdG9yUGFnZSkpCisgICAgOiBtX2luc3BlY3RvclBhZ2UoaW5z
cGVjdG9yUGFnZSkKIHsKICAgICBtX2luc3BlY3RvclBhZ2UtPnByb2Nlc3MoKS5hZGRNZXNzYWdl
UmVjZWl2ZXIoTWVzc2FnZXM6OldlYkluc3BlY3RvclVJRXh0ZW5zaW9uQ29udHJvbGxlclByb3h5
OjptZXNzYWdlUmVjZWl2ZXJOYW1lKCksIG1faW5zcGVjdG9yUGFnZS0+d2ViUGFnZUlEKCksICp0
aGlzKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0xhdW5jaGVyL21h
Yy9Qcm9jZXNzTGF1bmNoZXJNYWMubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9MYXVuY2hl
ci9tYWMvUHJvY2Vzc0xhdW5jaGVyTWFjLm1tCmluZGV4IGRhYzMxYzNkOWY2NmEwOGIwZTBkMDY1
NmFmZTY3YTViZjg4YWEzYTUuLmVjMjZkMzc0M2FhYTJkNjdiNTkyMDJlZDlhNmFjMDRhOWFhM2Ji
OGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0xhdW5jaGVyL21hYy9Qcm9j
ZXNzTGF1bmNoZXJNYWMubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTGF1bmNoZXIv
bWFjL1Byb2Nlc3NMYXVuY2hlck1hYy5tbQpAQCAtMjMzLDcgKzIzMyw3IEBAIHZvaWQgUHJvY2Vz
c0xhdW5jaGVyOjpsYXVuY2hQcm9jZXNzKCkKIAogICAgIHhwY19kaWN0aW9uYXJ5X3NldF92YWx1
ZShib290c3RyYXBNZXNzYWdlLmdldCgpLCAiZXh0cmEtaW5pdGlhbGl6YXRpb24tZGF0YSIsIGV4
dHJhSW5pdGlhbGl6YXRpb25EYXRhLmdldCgpKTsKIAotICAgIGF1dG8gZXJyb3JIYW5kbGVySW1w
bCA9IFt3ZWFrUHJvY2Vzc0xhdW5jaGVyID0gbWFrZVdlYWtQdHIoKnRoaXMpLCBsaXN0ZW5pbmdQ
b3J0XSAoeHBjX29iamVjdF90IGV2ZW50KSB7CisgICAgYXV0byBlcnJvckhhbmRsZXJJbXBsID0g
W3dlYWtQcm9jZXNzTGF1bmNoZXIgPSBXZWFrUHRyIHsgKnRoaXMgfSwgbGlzdGVuaW5nUG9ydF0g
KHhwY19vYmplY3RfdCBldmVudCkgewogICAgICAgICBBU1NFUlQoIWV2ZW50IHx8IHhwY19nZXRf
dHlwZShldmVudCkgPT0gWFBDX1RZUEVfRVJST1IpOwogICAgICAgICAKICAgICAgICAgYXV0byBw
cm9jZXNzTGF1bmNoZXIgPSB3ZWFrUHJvY2Vzc0xhdW5jaGVyLmdldCgpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvTWVkaWEvUmVtb3RlTWVkaWFTZXNzaW9uQ29vcmRpbmF0
b3JQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9NZWRpYS9SZW1vdGVNZWRpYVNl
c3Npb25Db29yZGluYXRvclByb3h5LmNwcAppbmRleCA3MTE1NGFkZDBhZjJiOTE0YWUyM2FiM2Nl
YzQzM2EwZTEzMGUxMWQyLi4zZmUwYWJjZmUzNmJlZjdjYTQ1YmVkNTY2MWE3MzdlZDJiZmU1NmQw
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9NZWRpYS9SZW1vdGVNZWRpYVNl
c3Npb25Db29yZGluYXRvclByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9N
ZWRpYS9SZW1vdGVNZWRpYVNlc3Npb25Db29yZGluYXRvclByb3h5LmNwcApAQCAtNjAsNyArNjAs
NyBAQCBSZW1vdGVNZWRpYVNlc3Npb25Db29yZGluYXRvclByb3h5OjpSZW1vdGVNZWRpYVNlc3Np
b25Db29yZGluYXRvclByb3h5KFdlYlBhZ2VQcgogICAgICwgbV9sb2dJZGVudGlmaWVyKExvZ2dl
ckhlbHBlcjo6dW5pcXVlTG9nSWRlbnRpZmllcigpKQogI2VuZGlmCiB7Ci0gICAgbV9wcml2YXRl
Q29vcmRpbmF0b3ItPnNldENsaWVudChtYWtlV2Vha1B0cih0aGlzKSk7CisgICAgbV9wcml2YXRl
Q29vcmRpbmF0b3ItPnNldENsaWVudCgqdGhpcyk7CiAgICAgbV93ZWJQYWdlUHJveHkucHJvY2Vz
cygpLmFkZE1lc3NhZ2VSZWNlaXZlcihNZXNzYWdlczo6UmVtb3RlTWVkaWFTZXNzaW9uQ29vcmRp
bmF0b3JQcm94eTo6bWVzc2FnZVJlY2VpdmVyTmFtZSgpLCBtX3dlYlBhZ2VQcm94eS53ZWJQYWdl
SUQoKSwgKnRoaXMpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9N
ZWRpYUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0UHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvTWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdFByb3h5LmNwcAppbmRleCA4
OGJhMjNiOWU4YzIyZjJmMWVhZjdiNDVjNjhhZTFiOTY2OWFiY2Q1Li4yNjgzMjdhZWIyMzFhMmYy
ZjJkNjY2OGY0NWY0YThhZWE5YjUyYTRiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9NZWRpYUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0UHJveHkuY3BwCisrKyBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL01lZGlhS2V5U3lzdGVtUGVybWlzc2lvblJlcXVlc3RQcm94eS5j
cHAKQEAgLTM1LDcgKzM1LDcgQEAgbmFtZXNwYWNlIFdlYktpdCB7CiB1c2luZyBuYW1lc3BhY2Ug
V2ViQ29yZTsKIAogTWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdFByb3h5OjpNZWRpYUtl
eVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0UHJveHkoTWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVx
dWVzdE1hbmFnZXJQcm94eSYgbWFuYWdlciwgTWVkaWFLZXlTeXN0ZW1SZXF1ZXN0SWRlbnRpZmll
ciBtZWRpYUtleVN5c3RlbUlELCBGcmFtZUlkZW50aWZpZXIgbWFpbkZyYW1lSUQsIEZyYW1lSWRl
bnRpZmllciBmcmFtZUlELCBSZWY8V2ViQ29yZTo6U2VjdXJpdHlPcmlnaW4+JiYgdG9wTGV2ZWxE
b2N1bWVudE9yaWdpbiwgY29uc3QgU3RyaW5nJiBrZXlTeXN0ZW0pCi0gICAgOiBtX21hbmFnZXIo
bWFrZVdlYWtQdHIobWFuYWdlcikpCisgICAgOiBtX21hbmFnZXIobWFuYWdlcikKICAgICAsIG1f
bWVkaWFLZXlTeXN0ZW1JRChtZWRpYUtleVN5c3RlbUlEKQogICAgICwgbV9tYWluRnJhbWVJRCht
YWluRnJhbWVJRCkKICAgICAsIG1fZnJhbWVJRChmcmFtZUlEKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5LmNwcCBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5jcHAKaW5kZXgg
MmY1NWM2M2FiYjU1OWIxMDBkNzQ4ZGUxNWVmMDE3NmNhYTlkZGI3NS4uYzU1M2Y5Y2E3MTI5OGY4
NjkxY2FkMDFkMGY3OGJlM2E3MDY0ODVkYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHkuY3BwCkBAIC0zOTEsNyArMzkx
LDcgQEAgdm9pZCBOZXR3b3JrUHJvY2Vzc1Byb3h5OjpkaWRSZWNlaXZlQXV0aGVudGljYXRpb25D
aGFsbGVuZ2UoUEFMOjpTZXNzaW9uSUQgc2Vzc2kKICAgICBpZiAoY29yZUNoYWxsZW5nZS5wcm90
ZWN0aW9uU3BhY2UoKS5hdXRoZW50aWNhdGlvblNjaGVtZSgpID09IFByb3RlY3Rpb25TcGFjZUF1
dGhlbnRpY2F0aW9uU2NoZW1lQ2xpZW50Q2VydGlmaWNhdGVSZXF1ZXN0ZWQpIHsKICAgICAgICAg
aWYgKGF1dG8qIHN0b3JlID0gd2Vic2l0ZURhdGFTdG9yZUZyb21TZXNzaW9uSUQoc2Vzc2lvbklE
KSkgewogICAgICAgICAgICAgYXV0byBuZXdTZWNLZXlQcm94eVN0b3JlID0gU2VjS2V5UHJveHlT
dG9yZTo6Y3JlYXRlKCk7Ci0gICAgICAgICAgICBzZWNLZXlQcm94eVN0b3JlID0gbWFrZVdlYWtQ
dHIobmV3U2VjS2V5UHJveHlTdG9yZS5nZXQoKSk7CisgICAgICAgICAgICBzZWNLZXlQcm94eVN0
b3JlID0gbmV3U2VjS2V5UHJveHlTdG9yZTsKICAgICAgICAgICAgIHN0b3JlLT5hZGRTZWNLZXlQ
cm94eVN0b3JlKFdURk1vdmUobmV3U2VjS2V5UHJveHlTdG9yZSkpOwogICAgICAgICB9CiAgICAg
fQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJv
Y2Vzc1Byb3h5Q29jb2EubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9OZXR3b3JrL05ldHdv
cmtQcm9jZXNzUHJveHlDb2NvYS5tbQppbmRleCA2M2EwNWRkNTQwYWI1ZWFkYjVmMDBlYzQ0NTZh
ODk4MWUxNjM0YWI5Li4zMTU1NmQyMzcwZjc0MWEzOTA1MGNhNzI5MDIwYzNkYmU3NWY3ZDc1IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNz
UHJveHlDb2NvYS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9OZXR3b3JrL05ldHdv
cmtQcm9jZXNzUHJveHlDb2NvYS5tbQpAQCAtNjEsNyArNjEsNyBAQCBib29sIE5ldHdvcmtQcm9j
ZXNzUHJveHk6OlhQQ0V2ZW50SGFuZGxlcjo6aGFuZGxlWFBDRXZlbnQoeHBjX29iamVjdF90IGV2
ZW50KSBjbwogfQogCiBOZXR3b3JrUHJvY2Vzc1Byb3h5OjpYUENFdmVudEhhbmRsZXI6OlhQQ0V2
ZW50SGFuZGxlcihjb25zdCBOZXR3b3JrUHJvY2Vzc1Byb3h5JiBuZXR3b3JrUHJvY2VzcykKLSAg
ICA6IG1fbmV0d29ya1Byb2Nlc3MobWFrZVdlYWtQdHIobmV0d29ya1Byb2Nlc3MpKQorICAgIDog
bV9uZXR3b3JrUHJvY2VzcyhuZXR3b3JrUHJvY2VzcykKIHsKIH0KIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvUERGL1dLUERGSFVEVmlldy5tbSBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL1BERi9XS1BERkhVRFZpZXcubW0KaW5kZXggNmM0NjUwM2Y5ODdiMGYxMjY1ZTkz
OGIxZTBiNWY4MjQ1NWEzMzZjMi4uM2NmMjdkMWJlOTcwNGQ2YWY2NzExNGQ4ZTlhZDA5MGIyNmEx
ZThjZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUERGL1dLUERGSFVEVmll
dy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9QREYvV0tQREZIVURWaWV3Lm1tCkBA
IC0xMDIsNyArMTAyLDcgQEAgLSAoaW5zdGFuY2V0eXBlKWluaXRXaXRoRnJhbWU6KE5TUmVjdClm
cmFtZSBwbHVnaW5JZGVudGlmaWVyOihXZWJLaXQ6OlBERlBsdWdpbkkKICAgICBzZWxmLndhbnRz
TGF5ZXIgPSBZRVM7CiAgICAgX2NhY2hlZEljb25zID0gYWRvcHROUyhbW05TTXV0YWJsZURpY3Rp
b25hcnkgYWxsb2NdIGluaXRdKTsKICAgICBfcGx1Z2luSWRlbnRpZmllciA9IHBsdWdpbklkZW50
aWZpZXI7Ci0gICAgX3BhZ2UgPSBtYWtlV2Vha1B0cihwYWdlKTsKKyAgICBfcGFnZSA9IHBhZ2U7
CiAgICAgX2RldmljZVNjYWxlRmFjdG9yID0gcGFnZS5kZXZpY2VTY2FsZUZhY3RvcigpOwogICAg
IF92aXNpYmxlID0gWUVTOwogICAgIFtzZWxmIF9zZXR1cExheWVyOnNlbGYubGF5ZXJdOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvU3BlZWNoUmVjb2duaXRpb25QZXJtaXNz
aW9uUmVxdWVzdC5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvU3BlZWNoUmVjb2duaXRpb25Q
ZXJtaXNzaW9uUmVxdWVzdC5oCmluZGV4IDI4YWViNTg3YWMxMzlkOTI1ODQzYmU3NmYyNDE2MTU3
NmJlYWRjN2MuLjYyNjZjMTY3NTFjZWM2MTI0ZDEzMzExMGZiOWU0ZDQzMTI2MjVkMjEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1NwZWVjaFJlY29nbml0aW9uUGVybWlzc2lv
blJlcXVlc3QuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9TcGVlY2hSZWNvZ25pdGlv
blBlcm1pc3Npb25SZXF1ZXN0LmgKQEAgLTU5LDcgKzU5LDcgQEAgcHVibGljOgogCiBwcml2YXRl
OgogICAgIFNwZWVjaFJlY29nbml0aW9uUGVybWlzc2lvblJlcXVlc3QoV2ViQ29yZTo6U3BlZWNo
UmVjb2duaXRpb25SZXF1ZXN0JiByZXF1ZXN0LCBTcGVlY2hSZWNvZ25pdGlvblBlcm1pc3Npb25S
ZXF1ZXN0Q2FsbGJhY2smJiBjb21wbGV0aW9uSGFuZGxlcikKLSAgICAgICAgOiBtX3JlcXVlc3Qo
bWFrZVdlYWtQdHIocmVxdWVzdCkpCisgICAgICAgIDogbV9yZXF1ZXN0KHJlcXVlc3QpCiAgICAg
ICAgICwgbV9jb21wbGV0aW9uSGFuZGxlcihXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSkKICAg
ICB7IH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvU3BlZWNoUmVjb2du
aXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlLmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL1NwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZS5jcHAKaW5kZXgg
ZTQyZGJmMTI4MWQzNmZlZjJlMzAzZTcwN2Q1YjViYWYxNjZlZTE1Mi4uNTNjYWRkMzRhYjkyODBl
MjBmNzNmMWEyYmEzYmMxM2QxYTU0MTkzOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlLmNwcAorKysg
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9TcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1l
TWVkaWFTb3VyY2UuY3BwCkBAIC00Nyw3ICs0Nyw3IEBAIFJlZjxXZWJDb3JlOjpSZWFsdGltZU1l
ZGlhU291cmNlPiBTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2U6OmNy
CiBTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2U6OlNwZWVjaFJlY29n
bml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZShXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291
cmNlSWRlbnRpZmllciBpZGVudGlmaWVyLCBTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1l
TWVkaWFTb3VyY2VNYW5hZ2VyJiBtYW5hZ2VyLCBjb25zdCBXZWJDb3JlOjpDYXB0dXJlRGV2aWNl
JiBjYXB0dXJlRGV2aWNlKQogICAgIDogV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZShXZWJD
b3JlOjpSZWFsdGltZU1lZGlhU291cmNlOjpUeXBlOjpBdWRpbywgU3RyaW5nIHsgY2FwdHVyZURl
dmljZS5sYWJlbCgpIH0sIFN0cmluZyB7IGNhcHR1cmVEZXZpY2UucGVyc2lzdGVudElkKCkgfSkK
ICAgICAsIG1faWRlbnRpZmllcihpZGVudGlmaWVyKQotICAgICwgbV9tYW5hZ2VyKG1ha2VXZWFr
UHRyKG1hbmFnZXIpKQorICAgICwgbV9tYW5hZ2VyKG1hbmFnZXIpCiAjaWYgUExBVEZPUk0oQ09D
T0EpCiAgICAgLCBtX3JpbmdCdWZmZXIobWFrZVVuaXF1ZTxXZWJDb3JlOjpDQVJpbmdCdWZmZXI+
KCkpCiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1NwZWVjaFJl
Y29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIuY3BwIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNl
TWFuYWdlci5jcHAKaW5kZXggYmMwYzcwOGE4NjQ3YjNiNmViMDVjMDFhYzEyYTA3Y2Y4YzgyMDdm
Yi4uNjhkYzExNWYxNjlmMTllZjg5ZjY2ZmU1YzhmMjQxYzg1Yjk3OGQ3MSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1l
ZGlhU291cmNlTWFuYWdlci5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvU3BlZWNo
UmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlci5jcHAKQEAgLTQyLDcg
KzQyLDcgQEAgdm9pZCBTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VN
YW5hZ2VyOjphZGRTb3VyY2UoU3BlZWNoUmVjb2duaXQKIHsKICAgICBhdXRvIGlkZW50aWZpZXIg
PSBzb3VyY2UuaWRlbnRpZmllcigpOwogICAgIEFTU0VSVCghbV9zb3VyY2VzLmNvbnRhaW5zKGlk
ZW50aWZpZXIpKTsKLSAgICBtX3NvdXJjZXMuYWRkKGlkZW50aWZpZXIsIG1ha2VXZWFrUHRyKHNv
dXJjZSkpOworICAgIG1fc291cmNlcy5hZGQoaWRlbnRpZmllciwgc291cmNlKTsKIAogI2lmIEVO
QUJMRShTQU5EQk9YX0VYVEVOU0lPTlMpCiAgICAgaWYgKCFjYXB0dXJlRGV2aWNlLmlzTW9ja0Rl
dmljZSgpKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9WaWV3R2VzdHVy
ZUNvbnRyb2xsZXIuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvVmlld0dlc3R1cmVDb250
cm9sbGVyLmNwcAppbmRleCA1YjQ5Yjk5MTdiNzc0NzU2MmQ4N2UwYjM4MzZiMTRjYzFlN2Q2NDI0
Li43YmQ1ODc3ZGQ4ZTkyNThkYzVkNmE3ZmE0Mjg2N2ZiOTI5NzlkNmZhIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9WaWV3R2VzdHVyZUNvbnRyb2xsZXIuY3BwCisrKyBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL1ZpZXdHZXN0dXJlQ29udHJvbGxlci5jcHAKQEAgLTE0Niw3
ICsxNDYsNyBAQCB2b2lkIFZpZXdHZXN0dXJlQ29udHJvbGxlcjo6ZGlkRW5kR2VzdHVyZSgpCiAK
IHZvaWQgVmlld0dlc3R1cmVDb250cm9sbGVyOjpzZXRBbHRlcm5hdGVCYWNrRm9yd2FyZExpc3RT
b3VyY2VQYWdlKFdlYlBhZ2VQcm94eSogcGFnZSkKIHsKLSAgICBtX2FsdGVybmF0ZUJhY2tGb3J3
YXJkTGlzdFNvdXJjZVBhZ2UgPSBtYWtlV2Vha1B0cihwYWdlKTsKKyAgICBtX2FsdGVybmF0ZUJh
Y2tGb3J3YXJkTGlzdFNvdXJjZVBhZ2UgPSBwYWdlOwogfQogCiBib29sIFZpZXdHZXN0dXJlQ29u
dHJvbGxlcjo6Y2FuU3dpcGVJbkRpcmVjdGlvbihTd2lwZURpcmVjdGlvbiBkaXJlY3Rpb24pIGNv
bnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlv
bi9BdXRoZW50aWNhdG9yLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJBdXRoZW50aWNh
dGlvbi9BdXRoZW50aWNhdG9yLmgKaW5kZXggMmU3MTBhYTJlN2JlMmY3YzRhYWUxMGU0MDNkOTgy
MTQzZTBhYjU4NC4uNWNmOWFmNTcwOGU4YzFiMWYxN2JjNGRkY2EyMmVmYzk0Y2MzNGFhYiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViQXV0aGVudGljYXRpb24vQXV0aGVu
dGljYXRvci5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9u
L0F1dGhlbnRpY2F0b3IuaApAQCAtNjMsNyArNjMsNyBAQCBwdWJsaWM6CiAKICAgICB2aXJ0dWFs
IH5BdXRoZW50aWNhdG9yKCkgPSBkZWZhdWx0OwogCi0gICAgdm9pZCBzZXRPYnNlcnZlcihPYnNl
cnZlciYgb2JzZXJ2ZXIpIHsgbV9vYnNlcnZlciA9IG1ha2VXZWFrUHRyKG9ic2VydmVyKTsgfQor
ICAgIHZvaWQgc2V0T2JzZXJ2ZXIoT2JzZXJ2ZXImIG9ic2VydmVyKSB7IG1fb2JzZXJ2ZXIgPSBv
YnNlcnZlcjsgfQogCiAgICAgLy8gVGhpcyBvcGVyYXRpb24gaXMgZ3VhcmFudGVlZCB0byBleGVj
dXRlIGFzeW5jaHJvbm91c2x5LgogICAgIHZvaWQgaGFuZGxlUmVxdWVzdChjb25zdCBXZWJBdXRo
ZW50aWNhdGlvblJlcXVlc3REYXRhJik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9BdXRoZW50aWNhdG9yTWFuYWdlci5jcHAgYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9BdXRoZW50aWNhdG9yTWFuYWdlci5j
cHAKaW5kZXggMzc3MTE2MWEyOTU2YmU0Yzg4N2QwMWNhNTYxYWY2Yjg4Yjc1OGRhNS4uZDNhZTQw
M2VmYmQ5N2U5Njc1MWRhZTM5ZjQ1MjYzMWI4YzEzOGJlYyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvV2ViQXV0aGVudGljYXRpb24vQXV0aGVudGljYXRvck1hbmFnZXIuY3Bw
CisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL0F1dGhlbnRp
Y2F0b3JNYW5hZ2VyLmNwcApAQCAtNDYyLDcgKzQ2Miw3IEBAIHZvaWQgQXV0aGVudGljYXRvck1h
bmFnZXI6OnJ1blBhbmVsKCkKIAogICAgIG1fcGVuZGluZ1JlcXVlc3REYXRhLnBhbmVsID0gQVBJ
OjpXZWJBdXRoZW50aWNhdGlvblBhbmVsOjpjcmVhdGUoKnRoaXMsIGdldFJwSWQob3B0aW9ucyks
IHRyYW5zcG9ydHMsIGdldENsaWVudERhdGFUeXBlKG9wdGlvbnMpLCBnZXRVc2VyTmFtZShvcHRp
b25zKSk7CiAgICAgYXV0byYgcGFuZWwgPSAqbV9wZW5kaW5nUmVxdWVzdERhdGEucGFuZWw7Ci0g
ICAgcGFnZS0+dWlDbGllbnQoKS5ydW5XZWJBdXRoZW50aWNhdGlvblBhbmVsKCpwYWdlLCBwYW5l
bCwgKmZyYW1lLCBGcmFtZUluZm9EYXRhIHsgbV9wZW5kaW5nUmVxdWVzdERhdGEuZnJhbWVJbmZv
IH0sIFt0cmFuc3BvcnRzID0gV1RGTW92ZSh0cmFuc3BvcnRzKSwgd2Vha1BhbmVsID0gbWFrZVdl
YWtQdHIocGFuZWwpLCB3ZWFrVGhpcyA9IFdlYWtQdHIgeyAqdGhpcyB9LCB0aGlzXSAoV2ViQXV0
aGVudGljYXRpb25QYW5lbFJlc3VsdCByZXN1bHQpIHsKKyAgICBwYWdlLT51aUNsaWVudCgpLnJ1
bldlYkF1dGhlbnRpY2F0aW9uUGFuZWwoKnBhZ2UsIHBhbmVsLCAqZnJhbWUsIEZyYW1lSW5mb0Rh
dGEgeyBtX3BlbmRpbmdSZXF1ZXN0RGF0YS5mcmFtZUluZm8gfSwgW3RyYW5zcG9ydHMgPSBXVEZN
b3ZlKHRyYW5zcG9ydHMpLCB3ZWFrUGFuZWwgPSBXZWFrUHRyIHsgcGFuZWwgfSwgd2Vha1RoaXMg
PSBXZWFrUHRyIHsgKnRoaXMgfSwgdGhpc10gKFdlYkF1dGhlbnRpY2F0aW9uUGFuZWxSZXN1bHQg
cmVzdWx0KSB7CiAgICAgICAgIC8vIFRoZSBwYW5lbCBhZGRyZXNzIGlzIHVzZWQgdG8gZGV0ZXJt
aW5lIGlmIHRoZSBjdXJyZW50IHBlbmRpbmcgcmVxdWVzdCBpcyBzdGlsbCB0aGUgc2FtZS4KICAg
ICAgICAgaWYgKCF3ZWFrVGhpcyB8fCAhd2Vha1BhbmVsCiAgICAgICAgICAgICB8fCAocmVzdWx0
ID09IFdlYkF1dGhlbnRpY2F0aW9uUGFuZWxSZXN1bHQ6OkRpZE5vdFByZXNlbnQpCkBAIC01MzUs
NyArNTM1LDcgQEAgdm9pZCBBdXRoZW50aWNhdG9yTWFuYWdlcjo6ZGlzcGF0Y2hQYW5lbENsaWVu
dENhbGwoRnVuY3Rpb248dm9pZChjb25zdCBBUEk6OldlYkEKIHsKICAgICBhdXRvIHdlYWtQYW5l
bCA9IG1fcGVuZGluZ1JlcXVlc3REYXRhLndlYWtQYW5lbDsKICAgICBpZiAoIXdlYWtQYW5lbCkK
LSAgICAgICAgd2Vha1BhbmVsID0gbWFrZVdlYWtQdHIobV9wZW5kaW5nUmVxdWVzdERhdGEucGFu
ZWwuZ2V0KCkpOworICAgICAgICB3ZWFrUGFuZWwgPSBtX3BlbmRpbmdSZXF1ZXN0RGF0YS5wYW5l
bDsKICAgICBpZiAoIXdlYWtQYW5lbCkKICAgICAgICAgcmV0dXJuOwogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9BdXRoZW50aWNhdG9yVHJh
bnNwb3J0U2VydmljZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJBdXRoZW50aWNh
dGlvbi9BdXRoZW50aWNhdG9yVHJhbnNwb3J0U2VydmljZS5jcHAKaW5kZXggMTNiOTEzNjc0NTRk
ZjJkOGUyZDljMzkxOWE3ZjUxOTgyMzhjYzQ1Yi4uMDUwYmM1MjQwYWNkNzcyYmExZDRkOWZiMDE2
NzAyZmY3ODAxYWZhOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViQXV0
aGVudGljYXRpb24vQXV0aGVudGljYXRvclRyYW5zcG9ydFNlcnZpY2UuY3BwCisrKyBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL0F1dGhlbnRpY2F0b3JUcmFuc3Bv
cnRTZXJ2aWNlLmNwcApAQCAtNjksNyArNjksNyBAQCBVbmlxdWVSZWY8QXV0aGVudGljYXRvclRy
YW5zcG9ydFNlcnZpY2U+IEF1dGhlbnRpY2F0b3JUcmFuc3BvcnRTZXJ2aWNlOjpjcmVhdGVNbwog
fQogCiBBdXRoZW50aWNhdG9yVHJhbnNwb3J0U2VydmljZTo6QXV0aGVudGljYXRvclRyYW5zcG9y
dFNlcnZpY2UoT2JzZXJ2ZXImIG9ic2VydmVyKQotICAgIDogbV9vYnNlcnZlcihtYWtlV2Vha1B0
cihvYnNlcnZlcikpCisgICAgOiBtX29ic2VydmVyKG9ic2VydmVyKQogewogfQogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9Db2NvYS9BdXRo
ZW50aWNhdG9yUHJlc2VudGVyQ29vcmRpbmF0b3IubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9XZWJBdXRoZW50aWNhdGlvbi9Db2NvYS9BdXRoZW50aWNhdG9yUHJlc2VudGVyQ29vcmRpbmF0
b3IubW0KaW5kZXggYmQwZThjYWI3OTY4NWI3MDYxYzkyMTFkNDk5N2Y1YzJhYTE0Y2MxMS4uYTE3
ZjhhMmRiY2QzYTAyZjNmOGFlOWI1NjMxYmY4ZGUxMzEyMThlYyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvV2ViQXV0aGVudGljYXRpb24vQ29jb2EvQXV0aGVudGljYXRvclBy
ZXNlbnRlckNvb3JkaW5hdG9yLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkF1
dGhlbnRpY2F0aW9uL0NvY29hL0F1dGhlbnRpY2F0b3JQcmVzZW50ZXJDb29yZGluYXRvci5tbQpA
QCAtMzgsNyArMzgsNyBAQCBuYW1lc3BhY2UgV2ViS2l0IHsKIHVzaW5nIG5hbWVzcGFjZSBXZWJD
b3JlOwogCiBBdXRoZW50aWNhdG9yUHJlc2VudGVyQ29vcmRpbmF0b3I6OkF1dGhlbnRpY2F0b3JQ
cmVzZW50ZXJDb29yZGluYXRvcihjb25zdCBBdXRoZW50aWNhdG9yTWFuYWdlciYgbWFuYWdlciwg
Y29uc3QgU3RyaW5nJiBycElkLCBjb25zdCBUcmFuc3BvcnRTZXQmIHRyYW5zcG9ydHMsIENsaWVu
dERhdGFUeXBlIHR5cGUsIGNvbnN0IFN0cmluZyYgdXNlcm5hbWUpCi0gICAgOiBtX21hbmFnZXIo
bWFrZVdlYWtQdHIobWFuYWdlcikpCisgICAgOiBtX21hbmFnZXIobWFuYWdlcikKIHsKICNpZiBI
QVZFKEFTQ19BVVRIX1VJKQogICAgIG1fY29udGV4dCA9IGFkb3B0TlMoW2FsbG9jQVNDQXV0aG9y
aXphdGlvblByZXNlbnRhdGlvbkNvbnRleHRJbnN0YW5jZSgpIGluaXRXaXRoUmVxdWVzdENvbnRl
eHQ6bnVsbHB0ciBhcHBJZGVudGlmaWVyOm51bGxwdHJdKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL0NvY29hL05mY0Nvbm5lY3Rpb24ubW0g
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9Db2NvYS9OZmNDb25u
ZWN0aW9uLm1tCmluZGV4IDFlNzBhMzE1NDFmM2E2MzA4YzNlMzFjNGJkMmI2YTE2YWQ3ZTlkOWMu
LmNkOGY4YjgyNzRkZmEzNmQzOWQ3YjA1NGZiZGIxOTYyOThjNWU3YzIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL0NvY29hL05mY0Nvbm5lY3Rp
b24ubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViQXV0aGVudGljYXRpb24vQ29j
b2EvTmZjQ29ubmVjdGlvbi5tbQpAQCAtNzcsNyArNzcsNyBAQCBSZWY8TmZjQ29ubmVjdGlvbj4g
TmZjQ29ubmVjdGlvbjo6Y3JlYXRlKFJldGFpblB0cjxORlJlYWRlclNlc3Npb24+JiYgc2Vzc2lv
biwgTgogTmZjQ29ubmVjdGlvbjo6TmZjQ29ubmVjdGlvbihSZXRhaW5QdHI8TkZSZWFkZXJTZXNz
aW9uPiYmIHNlc3Npb24sIE5mY1NlcnZpY2UmIHNlcnZpY2UpCiAgICAgOiBtX3Nlc3Npb24oV1RG
TW92ZShzZXNzaW9uKSkKICAgICAsIG1fZGVsZWdhdGUoYWRvcHROUyhbW1dLTkZSZWFkZXJTZXNz
aW9uRGVsZWdhdGUgYWxsb2NdIGluaXRXaXRoQ29ubmVjdGlvbjoqdGhpc10pKQotICAgICwgbV9z
ZXJ2aWNlKG1ha2VXZWFrUHRyKHNlcnZpY2UpKQorICAgICwgbV9zZXJ2aWNlKHNlcnZpY2UpCiAg
ICAgLCBtX3JldHJ5VGltZXIoUnVuTG9vcDo6bWFpbigpLCB0aGlzLCAmTmZjQ29ubmVjdGlvbjo6
c3RhcnRQb2xsaW5nKQogewogICAgIFttX3Nlc3Npb24gc2V0RGVsZWdhdGU6bV9kZWxlZ2F0ZS5n
ZXQoKV07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJBdXRoZW50aWNh
dGlvbi9Db2NvYS9XS0FTQ0F1dGhvcml6YXRpb25QcmVzZW50ZXJEZWxlZ2F0ZS5tbSBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL0NvY29hL1dLQVNDQXV0aG9yaXph
dGlvblByZXNlbnRlckRlbGVnYXRlLm1tCmluZGV4IGYyOTUwZmUzMDY5MTVmMDFjN2RhYjhiMDI5
MGQ3MGEzZWM3OTAzMTUuLjllMzQyNDU5ZDk3ZDUyNjZmMWYwMmY1ZmNhOGMxZTFiMTkzM2Q5NjIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL0Nv
Y29hL1dLQVNDQXV0aG9yaXphdGlvblByZXNlbnRlckRlbGVnYXRlLm1tCisrKyBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL0NvY29hL1dLQVNDQXV0aG9yaXphdGlv
blByZXNlbnRlckRlbGVnYXRlLm1tCkBAIC00Myw3ICs0Myw3IEBAIEBpbXBsZW1lbnRhdGlvbiBX
S0FTQ0F1dGhvcml6YXRpb25QcmVzZW50ZXJEZWxlZ2F0ZSB7CiAtIChpbnN0YW5jZXR5cGUpaW5p
dFdpdGhDb29yZGluYXRvcjooV2ViS2l0OjpBdXRoZW50aWNhdG9yUHJlc2VudGVyQ29vcmRpbmF0
b3ImKWNvb3JkaW5hdG9yCiB7CiAgICAgaWYgKChzZWxmID0gW3N1cGVyIGluaXRdKSkKLSAgICAg
ICAgX2Nvb3JkaW5hdG9yID0gbWFrZVdlYWtQdHIoY29vcmRpbmF0b3IpOworICAgICAgICBfY29v
cmRpbmF0b3IgPSBjb29yZGluYXRvcjsKICAgICByZXR1cm4gc2VsZjsKIH0KIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViQXV0aGVudGljYXRpb24vQ29jb2EvV0tORlJl
YWRlclNlc3Npb25EZWxlZ2F0ZS5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkF1dGhl
bnRpY2F0aW9uL0NvY29hL1dLTkZSZWFkZXJTZXNzaW9uRGVsZWdhdGUubW0KaW5kZXggYzdjZmNi
NTU4MzJiZDY4YjVmYWIxMDg2NTljYjE4YTRjYWNjYmViMy4uYjMwOWI4MWE3ZTk4NTY4MzI1ZmFj
NTQ3YWZkZjZjZjA4NTQ2ZGY0ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
V2ViQXV0aGVudGljYXRpb24vQ29jb2EvV0tORlJlYWRlclNlc3Npb25EZWxlZ2F0ZS5tbQorKysg
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9Db2NvYS9XS05GUmVh
ZGVyU2Vzc2lvbkRlbGVnYXRlLm1tCkBAIC00MSw3ICs0MSw3IEBAIEBpbXBsZW1lbnRhdGlvbiBX
S05GUmVhZGVyU2Vzc2lvbkRlbGVnYXRlIHsKIC0gKGluc3RhbmNldHlwZSlpbml0V2l0aENvbm5l
Y3Rpb246KFdlYktpdDo6TmZjQ29ubmVjdGlvbiYpY29ubmVjdGlvbgogewogICAgIGlmICgoc2Vs
ZiA9IFtzdXBlciBpbml0XSkpCi0gICAgICAgIF9jb25uZWN0aW9uID0gbWFrZVdlYWtQdHIoY29u
bmVjdGlvbik7CisgICAgICAgIF9jb25uZWN0aW9uID0gY29ubmVjdGlvbjsKICAgICByZXR1cm4g
c2VsZjsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViQXV0aGVu
dGljYXRpb24vQ29jb2EvV2ViQXV0aGVudGljYXRvckNvb3JkaW5hdG9yUHJveHkubW0gYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9Db2NvYS9XZWJBdXRoZW50aWNh
dG9yQ29vcmRpbmF0b3JQcm94eS5tbQppbmRleCBhMmEyOTcxOWJhNzdkZTQ3M2RjM2YyNGE0NGQw
NWEwMmE5ODM3MTVkLi4wYmJkYmYzNmE1NGY5YzViNDE4MDQ2OWVmMDMxMjk5M2U4ODVhNmE4IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9Db2Nv
YS9XZWJBdXRoZW50aWNhdG9yQ29vcmRpbmF0b3JQcm94eS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9Db2NvYS9XZWJBdXRoZW50aWNhdG9yQ29vcmRp
bmF0b3JQcm94eS5tbQpAQCAtMjY0LDcgKzI2NCw3IEBAIHZvaWQgV2ViQXV0aGVudGljYXRvckNv
b3JkaW5hdG9yUHJveHk6OnBlcmZvcm1SZXF1ZXN0KFJldGFpblB0cjxBU0NDcmVkZW50aWFsUmVx
CiAgICAgYXV0byBwcm94eSA9IGFkb3B0TlMoW2FsbG9jQVNDQWdlbnRQcm94eUluc3RhbmNlKCkg
aW5pdF0pOwogCiAgICAgUmV0YWluUHRyPE5TV2luZG93PiB3aW5kb3cgPSBtX3dlYlBhZ2VQcm94
eS5wbGF0Zm9ybVdpbmRvdygpOwotICAgIFtwcm94eSBwZXJmb3JtQXV0aG9yaXphdGlvblJlcXVl
c3RzRm9yQ29udGV4dDpyZXF1ZXN0Q29udGV4dC5nZXQoKSB3aXRoQ2xlYXJhbmNlSGFuZGxlcjpt
YWtlQmxvY2tQdHIoW3dlYWtUaGlzID0gbWFrZVdlYWtQdHIoKnRoaXMpLCBoYW5kbGVyID0gV1RG
TW92ZShoYW5kbGVyKSwgd2luZG93ID0gV1RGTW92ZSh3aW5kb3cpXShOU1hQQ0xpc3RlbmVyRW5k
cG9pbnQgKmRhZW1vbkVucG9pbnQsIE5TRXJyb3IgKmVycm9yKSBtdXRhYmxlIHsKKyAgICBbcHJv
eHkgcGVyZm9ybUF1dGhvcml6YXRpb25SZXF1ZXN0c0ZvckNvbnRleHQ6cmVxdWVzdENvbnRleHQu
Z2V0KCkgd2l0aENsZWFyYW5jZUhhbmRsZXI6bWFrZUJsb2NrUHRyKFt3ZWFrVGhpcyA9IFdlYWtQ
dHIgeyAqdGhpcyB9LCBoYW5kbGVyID0gV1RGTW92ZShoYW5kbGVyKSwgd2luZG93ID0gV1RGTW92
ZSh3aW5kb3cpXShOU1hQQ0xpc3RlbmVyRW5kcG9pbnQgKmRhZW1vbkVucG9pbnQsIE5TRXJyb3Ig
KmVycm9yKSBtdXRhYmxlIHsKICAgICAgICAgYXV0byBwcm90ZWN0ZWRUaGlzID0gd2Vha1RoaXMu
Z2V0KCk7CiAKICAgICAgICAgaWYgKCFwcm90ZWN0ZWRUaGlzIHx8ICFkYWVtb25FbnBvaW50KSB7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9X
ZWJBdXRoZW50aWNhdG9yQ29vcmRpbmF0b3JQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9XZWJBdXRoZW50aWNhdG9yQ29vcmRpbmF0b3JQcm94eS5j
cHAKaW5kZXggOTgyMzdmMTU0NTAxN2U2ZTMzZWUzZWI1MzFiODU1MjZjYTA4MDMwOC4uOTNiMmNk
ZjAxNmNiNWY2YWZjMWVjMzMxMmMxYjg1M2I2YTY1MTFjMCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvV2ViQXV0aGVudGljYXRpb24vV2ViQXV0aGVudGljYXRvckNvb3JkaW5h
dG9yUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0
aW9uL1dlYkF1dGhlbnRpY2F0b3JDb29yZGluYXRvclByb3h5LmNwcApAQCAtNTgsMTIgKzU4LDEy
IEBAIFdlYkF1dGhlbnRpY2F0b3JDb29yZGluYXRvclByb3h5Ojp+V2ViQXV0aGVudGljYXRvckNv
b3JkaW5hdG9yUHJveHkoKQogI2lmICFIQVZFKFVOSUZJRURfQVNDX0FVVEhfVUkpCiB2b2lkIFdl
YkF1dGhlbnRpY2F0b3JDb29yZGluYXRvclByb3h5OjptYWtlQ3JlZGVudGlhbChGcmFtZUlkZW50
aWZpZXIgZnJhbWVJZCwgRnJhbWVJbmZvRGF0YSYmIGZyYW1lSW5mbywgVmVjdG9yPHVpbnQ4X3Q+
JiYgaGFzaCwgUHVibGljS2V5Q3JlZGVudGlhbENyZWF0aW9uT3B0aW9ucyYmIG9wdGlvbnMsIGJv
b2wgcHJvY2Vzc2luZ1VzZXJHZXN0dXJlLCBSZXF1ZXN0Q29tcGxldGlvbkhhbmRsZXImJiBoYW5k
bGVyKQogewotICAgIGhhbmRsZVJlcXVlc3QoeyBXVEZNb3ZlKGhhc2gpLCBXVEZNb3ZlKG9wdGlv
bnMpLCBtYWtlV2Vha1B0cihtX3dlYlBhZ2VQcm94eSksIFdlYkF1dGhlbnRpY2F0aW9uUGFuZWxS
ZXN1bHQ6OlVuYXZhaWxhYmxlLCBudWxscHRyLCBHbG9iYWxGcmFtZUlkZW50aWZpZXIgeyBtX3dl
YlBhZ2VQcm94eS53ZWJQYWdlSUQoKSwgZnJhbWVJZCB9LCBXVEZNb3ZlKGZyYW1lSW5mbyksIHBy
b2Nlc3NpbmdVc2VyR2VzdHVyZSwgU3RyaW5nKCksIG51bGxwdHIgfSwgV1RGTW92ZShoYW5kbGVy
KSk7CisgICAgaGFuZGxlUmVxdWVzdCh7IFdURk1vdmUoaGFzaCksIFdURk1vdmUob3B0aW9ucyks
IG1fd2ViUGFnZVByb3h5LCBXZWJBdXRoZW50aWNhdGlvblBhbmVsUmVzdWx0OjpVbmF2YWlsYWJs
ZSwgbnVsbHB0ciwgR2xvYmFsRnJhbWVJZGVudGlmaWVyIHsgbV93ZWJQYWdlUHJveHkud2ViUGFn
ZUlEKCksIGZyYW1lSWQgfSwgV1RGTW92ZShmcmFtZUluZm8pLCBwcm9jZXNzaW5nVXNlckdlc3R1
cmUsIFN0cmluZygpLCBudWxscHRyIH0sIFdURk1vdmUoaGFuZGxlcikpOwogfQogCiB2b2lkIFdl
YkF1dGhlbnRpY2F0b3JDb29yZGluYXRvclByb3h5OjpnZXRBc3NlcnRpb24oRnJhbWVJZGVudGlm
aWVyIGZyYW1lSWQsIEZyYW1lSW5mb0RhdGEmJiBmcmFtZUluZm8sIFZlY3Rvcjx1aW50OF90PiYm
IGhhc2gsIFB1YmxpY0tleUNyZWRlbnRpYWxSZXF1ZXN0T3B0aW9ucyYmIG9wdGlvbnMsIGJvb2wg
cHJvY2Vzc2luZ1VzZXJHZXN0dXJlLCBSZXF1ZXN0Q29tcGxldGlvbkhhbmRsZXImJiBoYW5kbGVy
KQogewotICAgIGhhbmRsZVJlcXVlc3QoeyBXVEZNb3ZlKGhhc2gpLCBXVEZNb3ZlKG9wdGlvbnMp
LCBtYWtlV2Vha1B0cihtX3dlYlBhZ2VQcm94eSksIFdlYkF1dGhlbnRpY2F0aW9uUGFuZWxSZXN1
bHQ6OlVuYXZhaWxhYmxlLCBudWxscHRyLCBHbG9iYWxGcmFtZUlkZW50aWZpZXIgeyBtX3dlYlBh
Z2VQcm94eS53ZWJQYWdlSUQoKSwgZnJhbWVJZCB9LCBXVEZNb3ZlKGZyYW1lSW5mbyksIHByb2Nl
c3NpbmdVc2VyR2VzdHVyZSwgU3RyaW5nKCksIG51bGxwdHIgfSwgV1RGTW92ZShoYW5kbGVyKSk7
CisgICAgaGFuZGxlUmVxdWVzdCh7IFdURk1vdmUoaGFzaCksIFdURk1vdmUob3B0aW9ucyksIG1f
d2ViUGFnZVByb3h5LCBXZWJBdXRoZW50aWNhdGlvblBhbmVsUmVzdWx0OjpVbmF2YWlsYWJsZSwg
bnVsbHB0ciwgR2xvYmFsRnJhbWVJZGVudGlmaWVyIHsgbV93ZWJQYWdlUHJveHkud2ViUGFnZUlE
KCksIGZyYW1lSWQgfSwgV1RGTW92ZShmcmFtZUluZm8pLCBwcm9jZXNzaW5nVXNlckdlc3R1cmUs
IFN0cmluZygpLCBudWxscHRyIH0sIFdURk1vdmUoaGFuZGxlcikpOwogfQogI2VuZGlmCiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL2ZpZG8v
Rmlkb1NlcnZpY2UuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViQXV0aGVudGljYXRp
b24vZmlkby9GaWRvU2VydmljZS5jcHAKaW5kZXggNDhiOWQyZjA3YWViNmQ1N2E2N2Y3NWM5ZjEx
YzM0NTc5NGQwNjU1Mi4uYTFlNjQ3M2JjYmI5ZWM2MWU5NmRjNTk1MGIzZGZjMWE5MmVmZjNlYyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViQXV0aGVudGljYXRpb24vZmlk
by9GaWRvU2VydmljZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViQXV0aGVu
dGljYXRpb24vZmlkby9GaWRvU2VydmljZS5jcHAKQEAgLTQ5LDcgKzQ5LDcgQEAgRmlkb1NlcnZp
Y2U6OkZpZG9TZXJ2aWNlKE9ic2VydmVyJiBvYnNlcnZlcikKIHZvaWQgRmlkb1NlcnZpY2U6Omdl
dEluZm8oc3RkOjp1bmlxdWVfcHRyPEN0YXBEcml2ZXI+JiYgZHJpdmVyKQogewogICAgIC8vIEdl
dCBhdXRoZW50aWNhdG9yIGluZm8gZnJvbSB0aGUgZGV2aWNlLgotICAgIGRyaXZlci0+dHJhbnNh
Y3QoZW5jb2RlRW1wdHlBdXRoZW50aWNhdG9yUmVxdWVzdChDdGFwUmVxdWVzdENvbW1hbmQ6OmtB
dXRoZW50aWNhdG9yR2V0SW5mbyksIFt3ZWFrVGhpcyA9IFdlYWtQdHIgeyAqdGhpcyB9LCB3ZWFr
RHJpdmVyID0gbWFrZVdlYWtQdHIoKmRyaXZlcildIChWZWN0b3I8dWludDhfdD4mJiByZXNwb25z
ZSkgbXV0YWJsZSB7CisgICAgZHJpdmVyLT50cmFuc2FjdChlbmNvZGVFbXB0eUF1dGhlbnRpY2F0
b3JSZXF1ZXN0KEN0YXBSZXF1ZXN0Q29tbWFuZDo6a0F1dGhlbnRpY2F0b3JHZXRJbmZvKSwgW3dl
YWtUaGlzID0gV2Vha1B0ciB7ICp0aGlzIH0sIHdlYWtEcml2ZXIgPSBXZWFrUHRyIHsgKmRyaXZl
ciB9XSAoVmVjdG9yPHVpbnQ4X3Q+JiYgcmVzcG9uc2UpIG11dGFibGUgewogICAgICAgICBBU1NF
UlQoUnVuTG9vcDo6aXNNYWluKCkpOwogICAgICAgICBpZiAoIXdlYWtUaGlzKQogICAgICAgICAg
ICAgcmV0dXJuOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViQ29udGV4
dE1lbnVMaXN0ZW5lclByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkNvbnRl
eHRNZW51TGlzdGVuZXJQcm94eS5jcHAKaW5kZXggZGM3NDg0ZWNiZDJjYThhOTEwNzU3MmI2Yjhi
OWY1YTgzMjRiNGYwZS4uMmM5ZDc4MTJlNGNiYzM0NzRhZDdiOWIzZDA1ZjhiZDA3ZmE5ZGU1NyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViQ29udGV4dE1lbnVMaXN0ZW5l
clByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJDb250ZXh0TWVudUxp
c3RlbmVyUHJveHkuY3BwCkBAIC0zNCw3ICszNCw3IEBAIG5hbWVzcGFjZSBXZWJLaXQgewogdXNp
bmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAKIFdlYkNvbnRleHRNZW51TGlzdGVuZXJQcm94eTo6V2Vi
Q29udGV4dE1lbnVMaXN0ZW5lclByb3h5KFdlYkNvbnRleHRNZW51TGlzdGVuZXJQcm94eTo6Q2xp
ZW50JiBjbGllbnQpCi0gICAgOiBtX2NsaWVudChtYWtlV2Vha1B0cihjbGllbnQpKQorICAgIDog
bV9jbGllbnQoY2xpZW50KQogewogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9XZWJDb250ZXh0TWVudVByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dl
YkNvbnRleHRNZW51UHJveHkuY3BwCmluZGV4IGNjYmNjNTc0NTUyODdhMjUyZTZjZmU0MzE3YTc3
MjRkYTdjNTI1MTUuLjljZmYzMWZlMTJhNzJlMDNmNmNhM2Q4Mjg0NDhmMmRmN2Q4MzdlYTAgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkNvbnRleHRNZW51UHJveHkuY3Bw
CisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkNvbnRleHRNZW51UHJveHkuY3BwCkBA
IC0zOCw3ICszOCw3IEBAIG5hbWVzcGFjZSBXZWJLaXQgewogV2ViQ29udGV4dE1lbnVQcm94eTo6
V2ViQ29udGV4dE1lbnVQcm94eShXZWJQYWdlUHJveHkmIHBhZ2UsIENvbnRleHRNZW51Q29udGV4
dERhdGEmJiBjb250ZXh0LCBjb25zdCBVc2VyRGF0YSYgdXNlckRhdGEpCiAgICAgOiBtX2NvbnRl
eHQoV1RGTW92ZShjb250ZXh0KSkKICAgICAsIG1fdXNlckRhdGEodXNlckRhdGEpCi0gICAgLCBt
X3BhZ2UobWFrZVdlYWtQdHIocGFnZSkpCisgICAgLCBtX3BhZ2UocGFnZSkKIHsKIH0KIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViQ29va2llTWFuYWdlclByb3h5LmNw
cCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkNvb2tpZU1hbmFnZXJQcm94eS5jcHAKaW5k
ZXggOTMyZDQxMmE5M2UyNWZhNTExNDM1YjdlNTc4ODRiM2UyNmFlOWU5Zi4uNWM1Y2FlYjRhNmI4
MTdmNDg1MDhhMzE3ODI3MjUzNDliYjkxMTBmZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvV2ViQ29va2llTWFuYWdlclByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9XZWJDb29raWVNYW5hZ2VyUHJveHkuY3BwCkBAIC00MCw3ICs0MCw3IEBAIG5hbWVz
cGFjZSBXZWJLaXQgewogdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAKIFdlYkNvb2tpZU1hbmFn
ZXJQcm94eTo6V2ViQ29va2llTWFuYWdlclByb3h5KE5ldHdvcmtQcm9jZXNzUHJveHkmIG5ldHdv
cmtQcm9jZXNzKQotICAgIDogbV9uZXR3b3JrUHJvY2VzcyhtYWtlV2Vha1B0cihuZXR3b3JrUHJv
Y2VzcykpCisgICAgOiBtX25ldHdvcmtQcm9jZXNzKG5ldHdvcmtQcm9jZXNzKQogewogICAgIG5l
dHdvcmtQcm9jZXNzLmFkZE1lc3NhZ2VSZWNlaXZlcihNZXNzYWdlczo6V2ViQ29va2llTWFuYWdl
clByb3h5OjptZXNzYWdlUmVjZWl2ZXJOYW1lKCksICp0aGlzKTsKIH0KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkRhdGFMaXN0U3VnZ2VzdGlvbnNEcm9wZG93bi5jcHAg
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJEYXRhTGlzdFN1Z2dlc3Rpb25zRHJvcGRvd24u
Y3BwCmluZGV4IDgyNDJjZWNlYjM2MzgwMTIyMWVlZGRkMDBlYmMxN2Y1ZTYxN2U2NGIuLmU3ODA1
ODdkNTkxM2M2NDNhYjNiYWEzNTA2OWU1OTYxOWM0MWQ1MWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL1dlYkRhdGFMaXN0U3VnZ2VzdGlvbnNEcm9wZG93bi5jcHAKKysrIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViRGF0YUxpc3RTdWdnZXN0aW9uc0Ryb3Bkb3duLmNw
cApAQCAtMzMsNyArMzMsNyBAQAogbmFtZXNwYWNlIFdlYktpdCB7CiAKIFdlYkRhdGFMaXN0U3Vn
Z2VzdGlvbnNEcm9wZG93bjo6V2ViRGF0YUxpc3RTdWdnZXN0aW9uc0Ryb3Bkb3duKFdlYlBhZ2VQ
cm94eSYgcGFnZSkKLSAgICA6IG1fcGFnZShtYWtlV2Vha1B0cihwYWdlKSkKKyAgICA6IG1fcGFn
ZShwYWdlKQogewogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJE
YXRlVGltZVBpY2tlci5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJEYXRlVGltZVBp
Y2tlci5jcHAKaW5kZXggNGI4YmRjNWM1N2RjZGYxZWIwODI3ZWU1ZGE2NDMxMDNiMGIzZmQwMy4u
OGVkN2ExZWIyNGRmODNlMDQyMWNkMmVhODBmZDFjZTFjZTU2ODdjYSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViRGF0ZVRpbWVQaWNrZXIuY3BwCisrKyBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL1dlYkRhdGVUaW1lUGlja2VyLmNwcApAQCAtMzMsNyArMzMsNyBAQAog
bmFtZXNwYWNlIFdlYktpdCB7CiAKIFdlYkRhdGVUaW1lUGlja2VyOjpXZWJEYXRlVGltZVBpY2tl
cihXZWJQYWdlUHJveHkmIHBhZ2UpCi0gICAgOiBtX3BhZ2UobWFrZVdlYWtQdHIocGFnZSkpCisg
ICAgOiBtX3BhZ2UocGFnZSkKIHsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvV2ViRWRpdENvbW1hbmRQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9X
ZWJFZGl0Q29tbWFuZFByb3h5LmNwcAppbmRleCAwZGJlMGFmYjQzM2YwMjE3MTU5ZTE0NmY0YmMw
ODUzZWQ1MTZmZDg3Li5lYzNjNTUwZDY4M2ViN2UwMzE4NGQ1MzgyMWI3MjMxMDgwMmRjMTdjIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJFZGl0Q29tbWFuZFByb3h5LmNw
cAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJFZGl0Q29tbWFuZFByb3h5LmNwcApA
QCAtMzksNyArMzksNyBAQCB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIFdlYkVkaXRDb21tYW5k
UHJveHk6OldlYkVkaXRDb21tYW5kUHJveHkoV2ViVW5kb1N0ZXBJRCBjb21tYW5kSUQsIGNvbnN0
IFN0cmluZyYgbGFiZWwsIFdlYlBhZ2VQcm94eSYgcGFnZSkKICAgICA6IG1fY29tbWFuZElEKGNv
bW1hbmRJRCkKICAgICAsIG1fbGFiZWwobGFiZWwpCi0gICAgLCBtX3BhZ2UobWFrZVdlYWtQdHIo
cGFnZSkpCisgICAgLCBtX3BhZ2UocGFnZSkKIHsKICAgICBtX3BhZ2UtPmFkZEVkaXRDb21tYW5k
KCp0aGlzKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkZyYW1l
UHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViRnJhbWVQcm94eS5jcHAKaW5k
ZXggZTJjNDc1NzE0NGM3NmUwZDFlZjViYmUyY2FjZjQzMzBjOTgyMTI2YS4uZDQ0YTVkYmU2YTNm
MjY2MzBiMzQ5MTMyNDRlN2U0M2IyYzFmMTYzMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvV2ViRnJhbWVQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
V2ViRnJhbWVQcm94eS5jcHAKQEAgLTQ2LDcgKzQ2LDcgQEAgdXNpbmcgbmFtZXNwYWNlIFdlYkNv
cmU7CiBjbGFzcyBXZWJQYWdlUHJveHk7CiAKIFdlYkZyYW1lUHJveHk6OldlYkZyYW1lUHJveHko
V2ViUGFnZVByb3h5JiBwYWdlLCBGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCkKLSAgICA6IG1fcGFn
ZShtYWtlV2Vha1B0cihwYWdlKSkKKyAgICA6IG1fcGFnZShwYWdlKQogICAgICwgbV9mcmFtZUlE
KGZyYW1lSUQpCiB7CiAgICAgV2ViUHJvY2Vzc1Bvb2w6OnN0YXRpc3RpY3MoKS53a0ZyYW1lQ291
bnQrKzsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5j
cHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCmluZGV4IDdhNWU1
YzQ5OTYyYWEwZjNiM2E5ZGY1MDA0OTk2M2M5ZmM5MzI2N2MuLjcxZmFkZmRlZDZmNGU5ZDBkMzcw
MTkyMjQ0NDhmZGMwMzg3ODcwNmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L1dlYlBhZ2VQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVBy
b3h5LmNwcApAQCAtNDIxLDcgKzQyMSw3IEBAIGNsYXNzIFBhZ2VDbGllbnRQcm90ZWN0b3Igewog
ICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKFBhZ2VDbGllbnRQcm90ZWN0b3IpOwogcHVibGljOgog
ICAgIFBhZ2VDbGllbnRQcm90ZWN0b3IoUGFnZUNsaWVudCYgcGFnZUNsaWVudCkKLSAgICAgICAg
OiBtX3BhZ2VDbGllbnQobWFrZVdlYWtQdHIocGFnZUNsaWVudCkpCisgICAgICAgIDogbV9wYWdl
Q2xpZW50KHBhZ2VDbGllbnQpCiAgICAgewogICAgICAgICBtX3BhZ2VDbGllbnQtPnJlZlZpZXco
KTsKICAgICB9CkBAIC00NjMsNyArNDYzLDcgQEAgUmVmPFdlYlBhZ2VQcm94eT4gV2ViUGFnZVBy
b3h5OjpjcmVhdGUoUGFnZUNsaWVudCYgcGFnZUNsaWVudCwgV2ViUHJvY2Vzc1Byb3h5JgogV2Vi
UGFnZVByb3h5OjpXZWJQYWdlUHJveHkoUGFnZUNsaWVudCYgcGFnZUNsaWVudCwgV2ViUHJvY2Vz
c1Byb3h5JiBwcm9jZXNzLCBSZWY8QVBJOjpQYWdlQ29uZmlndXJhdGlvbj4mJiBjb25maWd1cmF0
aW9uKQogICAgIDogbV9pZGVudGlmaWVyKElkZW50aWZpZXI6OmdlbmVyYXRlKCkpCiAgICAgLCBt
X3dlYlBhZ2VJRChQYWdlSWRlbnRpZmllcjo6Z2VuZXJhdGUoKSkKLSAgICAsIG1fcGFnZUNsaWVu
dChtYWtlV2Vha1B0cihwYWdlQ2xpZW50KSkKKyAgICAsIG1fcGFnZUNsaWVudChwYWdlQ2xpZW50
KQogICAgICwgbV9jb25maWd1cmF0aW9uKFdURk1vdmUoY29uZmlndXJhdGlvbikpCiAgICAgLCBt
X25hdmlnYXRpb25DbGllbnQobWFrZVVuaXF1ZVJlZjxBUEk6Ok5hdmlnYXRpb25DbGllbnQ+KCkp
CiAgICAgLCBtX2hpc3RvcnlDbGllbnQobWFrZVVuaXF1ZVJlZjxBUEk6Okhpc3RvcnlDbGllbnQ+
KCkpCkBAIC05MTMsNyArOTEzLDcgQEAgYm9vbCBXZWJQYWdlUHJveHk6OnN1c3BlbmRDdXJyZW50
UGFnZUlmUG9zc2libGUoQVBJOjpOYXZpZ2F0aW9uJiBuYXZpZ2F0aW9uLCBzdGQKIAogICAgIExP
RyhQcm9jZXNzU3dhcHBpbmcsICJXZWJQYWdlUHJveHkgJSIgUFJJdTY0ICIgY3JlYXRlZCBzdXNw
ZW5kZWQgcGFnZSAlcyBmb3IgcHJvY2VzcyBwaWQgJWksIGJhY2svZm9yd2FyZCBpdGVtICVzIiBQ
Ukl1NjQsIGlkZW50aWZpZXIoKS50b1VJbnQ2NCgpLCBzdXNwZW5kZWRQYWdlLT5sb2dnaW5nU3Ry
aW5nKCksIG1fcHJvY2Vzcy0+cHJvY2Vzc0lkZW50aWZpZXIoKSwgZnJvbUl0ZW0gPyBmcm9tSXRl
bS0+aXRlbUlEKCkubG9nU3RyaW5nKCkgOiAwKTsKIAotICAgIG1fbGFzdFN1c3BlbmRlZFBhZ2Ug
PSBtYWtlV2Vha1B0cigqc3VzcGVuZGVkUGFnZSk7CisgICAgbV9sYXN0U3VzcGVuZGVkUGFnZSA9
ICpzdXNwZW5kZWRQYWdlOwogCiAgICAgaWYgKGZyb21JdGVtICYmIHNob3VsZFVzZUJhY2tGb3J3
YXJkQ2FjaGUoKSkKICAgICAgICAgYmFja0ZvcndhcmRDYWNoZSgpLmFkZEVudHJ5KCpmcm9tSXRl
bSwgV1RGTW92ZShzdXNwZW5kZWRQYWdlKSk7CkBAIC0xMDU4Myw3ICsxMDU4Myw3IEBAIFdlYkNv
bnRlbnRNb2RlIFdlYlBhZ2VQcm94eTo6ZWZmZWN0aXZlQ29udGVudE1vZGVBZnRlckFkanVzdGlu
Z1BvbGljaWVzKEFQSTo6V2ViCiAKIHZvaWQgV2ViUGFnZVByb3h5OjphZGRPYnNlcnZlcihXZWJW
aWV3RGlkTW92ZVRvV2luZG93T2JzZXJ2ZXImIG9ic2VydmVyKQogewotICAgIGF1dG8gcmVzdWx0
ID0gbV93ZWJWaWV3RGlkTW92ZVRvV2luZG93T2JzZXJ2ZXJzLmFkZCgmb2JzZXJ2ZXIsIG1ha2VX
ZWFrUHRyKG9ic2VydmVyKSk7CisgICAgYXV0byByZXN1bHQgPSBtX3dlYlZpZXdEaWRNb3ZlVG9X
aW5kb3dPYnNlcnZlcnMuYWRkKCZvYnNlcnZlciwgb2JzZXJ2ZXIpOwogICAgIEFTU0VSVF9VTlVT
RUQocmVzdWx0LCByZXN1bHQuaXNOZXdFbnRyeSk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL1dlYlByb2Nlc3NQb29sLmNwcAppbmRleCA4NTY5OGY1YmY4MzBlYjk0N2I1OWE3MjJlOTE2
OGY1MjcyMjkyMDk3Li5jZTk4MWRkODcwMTc3YTA5MzdiYjAwNjgxYjJmOThkZjU3YTlhZjkzIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5jcHAKKysr
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuY3BwCkBAIC00NjgsNyAr
NDY4LDcgQEAgdm9pZCBXZWJQcm9jZXNzUG9vbDo6Z2V0R1BVUHJvY2Vzc0Nvbm5lY3Rpb24oV2Vi
UHJvY2Vzc1Byb3h5JiB3ZWJQcm9jZXNzUHJveHksIEcKICNpZiBFTkFCTEUoSVBDX1RFU1RJTkdf
QVBJKQogICAgIHBhcmFtZXRlcnMuaWdub3JlSW52YWxpZE1lc3NhZ2VGb3JUZXN0aW5nID0gd2Vi
UHJvY2Vzc1Byb3h5Lmlnbm9yZUludmFsaWRNZXNzYWdlRm9yVGVzdGluZygpOwogI2VuZGlmCi0g
ICAgZW5zdXJlR1BVUHJvY2VzcygpLmdldEdQVVByb2Nlc3NDb25uZWN0aW9uKHdlYlByb2Nlc3NQ
cm94eSwgcGFyYW1ldGVycywgW3RoaXMsIHdlYWtUaGlzID0gV2Vha1B0ciB7ICp0aGlzIH0sIHBh
cmFtZXRlcnMsIHdlYlByb2Nlc3NQcm94eSA9IG1ha2VXZWFrUHRyKHdlYlByb2Nlc3NQcm94eSks
IHJlcGx5ID0gV1RGTW92ZShyZXBseSldIChhdXRvJiBjb25uZWN0aW9uSW5mbykgbXV0YWJsZSB7
CisgICAgZW5zdXJlR1BVUHJvY2VzcygpLmdldEdQVVByb2Nlc3NDb25uZWN0aW9uKHdlYlByb2Nl
c3NQcm94eSwgcGFyYW1ldGVycywgW3RoaXMsIHdlYWtUaGlzID0gV2Vha1B0ciB7ICp0aGlzIH0s
IHBhcmFtZXRlcnMsIHdlYlByb2Nlc3NQcm94eSA9IFdlYWtQdHIgeyB3ZWJQcm9jZXNzUHJveHkg
fSwgcmVwbHkgPSBXVEZNb3ZlKHJlcGx5KV0gKGF1dG8mIGNvbm5lY3Rpb25JbmZvKSBtdXRhYmxl
IHsKICAgICAgICAgaWYgKFVOTElLRUxZKCFJUEM6OkNvbm5lY3Rpb246OmlkZW50aWZpZXJJc1Zh
bGlkKGNvbm5lY3Rpb25JbmZvLmlkZW50aWZpZXIoKSkpKSB7CiAgICAgICAgICAgICAvLyBSZXRy
eSBvbiB0aGUgbmV4dCBSdW5Mb29wIGl0ZXJhdGlvbiBiZWNhdXNlIHdlIG1heSBiZSBpbnNpZGUg
dGhlIFdlYlByb2Nlc3NQb29sIGRlc3RydWN0b3IuCiAgICAgICAgICAgICBSdW5Mb29wOjptYWlu
KCkuZGlzcGF0Y2goW3RoaXMsIHdlYWtUaGlzID0gV1RGTW92ZSh3ZWFrVGhpcyksIHdlYlByb2Nl
c3NQcm94eSA9IFdURk1vdmUod2ViUHJvY2Vzc1Byb3h5KSwgcGFyYW1ldGVycyA9IFdURk1vdmUo
cGFyYW1ldGVycyksIHJlcGx5ID0gV1RGTW92ZShyZXBseSldICgpIG11dGFibGUgewpAQCAtNDg4
LDcgKzQ4OCw3IEBAIHZvaWQgV2ViUHJvY2Vzc1Bvb2w6OmdldEdQVVByb2Nlc3NDb25uZWN0aW9u
KFdlYlByb2Nlc3NQcm94eSYgd2ViUHJvY2Vzc1Byb3h5LCBHCiAjaWYgRU5BQkxFKFdFQl9BVVRI
TikKIHZvaWQgV2ViUHJvY2Vzc1Bvb2w6OmdldFdlYkF1dGhuUHJvY2Vzc0Nvbm5lY3Rpb24oV2Vi
UHJvY2Vzc1Byb3h5JiB3ZWJQcm9jZXNzUHJveHksIE1lc3NhZ2VzOjpXZWJQcm9jZXNzUHJveHk6
OkdldFdlYkF1dGhuUHJvY2Vzc0Nvbm5lY3Rpb246OkRlbGF5ZWRSZXBseSYmIHJlcGx5KQogewot
ICAgIFdlYkF1dGhuUHJvY2Vzc1Byb3h5OjpzaW5nbGV0b24oKS5nZXRXZWJBdXRoblByb2Nlc3ND
b25uZWN0aW9uKHdlYlByb2Nlc3NQcm94eSwgW3RoaXMsIHdlYWtUaGlzID0gV2Vha1B0ciB7ICp0
aGlzIH0sIHdlYlByb2Nlc3NQcm94eSA9IG1ha2VXZWFrUHRyKHdlYlByb2Nlc3NQcm94eSksIHJl
cGx5ID0gV1RGTW92ZShyZXBseSldIChhdXRvJiBjb25uZWN0aW9uSW5mbykgbXV0YWJsZSB7Cisg
ICAgV2ViQXV0aG5Qcm9jZXNzUHJveHk6OnNpbmdsZXRvbigpLmdldFdlYkF1dGhuUHJvY2Vzc0Nv
bm5lY3Rpb24od2ViUHJvY2Vzc1Byb3h5LCBbdGhpcywgd2Vha1RoaXMgPSBXZWFrUHRyIHsgKnRo
aXMgfSwgd2ViUHJvY2Vzc1Byb3h5ID0gV2Vha1B0ciB7IHdlYlByb2Nlc3NQcm94eSB9LCByZXBs
eSA9IFdURk1vdmUocmVwbHkpXSAoYXV0byYgY29ubmVjdGlvbkluZm8pIG11dGFibGUgewogICAg
ICAgICBpZiAoVU5MSUtFTFkoIUlQQzo6Q29ubmVjdGlvbjo6aWRlbnRpZmllcklzVmFsaWQoY29u
bmVjdGlvbkluZm8uaWRlbnRpZmllcigpKSAmJiB3ZWJQcm9jZXNzUHJveHkgJiYgd2Vha1RoaXMp
KSB7CiAgICAgICAgICAgICBXRUJQUk9DRVNTUE9PTF9SRUxFQVNFX0xPR19FUlJPUihQcm9jZXNz
LCAiZ2V0V2ViQXV0aG5Qcm9jZXNzQ29ubmVjdGlvbjogRmFpbGVkIGZpcnN0IGF0dGVtcHQsIHJl
dHJ5aW5nIik7CiAgICAgICAgICAgICBXZWJBdXRoblByb2Nlc3NQcm94eTo6c2luZ2xldG9uKCku
Z2V0V2ViQXV0aG5Qcm9jZXNzQ29ubmVjdGlvbigqd2ViUHJvY2Vzc1Byb3h5LCBXVEZNb3ZlKHJl
cGx5KSk7CkBAIC04NTQsNyArODU0LDcgQEAgdm9pZCBXZWJQcm9jZXNzUG9vbDo6aW5pdGlhbGl6
ZU5ld1dlYlByb2Nlc3MoV2ViUHJvY2Vzc1Byb3h5JiBwcm9jZXNzLCBXZWJzaXRlRGEKIAogICAg
IGlmIChpc1ByZXdhcm1lZCA9PSBXZWJQcm9jZXNzUHJveHk6OklzUHJld2FybWVkOjpZZXMpIHsK
ICAgICAgICAgQVNTRVJUKCFtX3ByZXdhcm1lZFByb2Nlc3MpOwotICAgICAgICBtX3ByZXdhcm1l
ZFByb2Nlc3MgPSBtYWtlV2Vha1B0cihwcm9jZXNzKTsKKyAgICAgICAgbV9wcmV3YXJtZWRQcm9j
ZXNzID0gcHJvY2VzczsKICAgICB9CiAKICNpZiBQTEFURk9STShJT1NfRkFNSUxZKSAmJiAhUExB
VEZPUk0oTUFDQ0FUQUxZU1QpCkBAIC0xMDY3LDcgKzEwNjcsNyBAQCBSZWY8V2ViUGFnZVByb3h5
PiBXZWJQcm9jZXNzUG9vbDo6Y3JlYXRlV2ViUGFnZShQYWdlQ2xpZW50JiBwYWdlQ2xpZW50LCBS
ZWY8QVBJOgogICAgICAgICBwcm9jZXNzID0gZHVtbXlQcm9jZXNzUHJveHkocGFnZUNvbmZpZ3Vy
YXRpb24tPndlYnNpdGVEYXRhU3RvcmUoKS0+c2Vzc2lvbklEKCkpOwogICAgICAgICBpZiAoIXBy
b2Nlc3MpIHsKICAgICAgICAgICAgIHByb2Nlc3MgPSBXZWJQcm9jZXNzUHJveHk6OmNyZWF0ZSgq
dGhpcywgcGFnZUNvbmZpZ3VyYXRpb24tPndlYnNpdGVEYXRhU3RvcmUoKSwgV2ViUHJvY2Vzc1By
b3h5OjpJc1ByZXdhcm1lZDo6Tm8sIENyb3NzT3JpZ2luTW9kZTo6U2hhcmVkLCBXZWJQcm9jZXNz
UHJveHk6OlNob3VsZExhdW5jaFByb2Nlc3M6Ok5vKTsKLSAgICAgICAgICAgIG1fZHVtbXlQcm9j
ZXNzUHJveGllcy5hZGQocGFnZUNvbmZpZ3VyYXRpb24tPndlYnNpdGVEYXRhU3RvcmUoKS0+c2Vz
c2lvbklEKCksIG1ha2VXZWFrUHRyKCpwcm9jZXNzKSk7CisgICAgICAgICAgICBtX2R1bW15UHJv
Y2Vzc1Byb3hpZXMuYWRkKHBhZ2VDb25maWd1cmF0aW9uLT53ZWJzaXRlRGF0YVN0b3JlKCktPnNl
c3Npb25JRCgpLCAqcHJvY2Vzcyk7CiAgICAgICAgICAgICBtX3Byb2Nlc3Nlcy5hcHBlbmQoKnBy
b2Nlc3MpOwogICAgICAgICB9CiAgICAgfSBlbHNlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
V2ViUHJvY2Vzc1Byb3h5LmNwcAppbmRleCA5MjUzNzFhNDc1ODdkNTI1MDZhNDU5MTY3NWY2ZTM5
Yzc4Nzg3YmFmLi41YzU5NjZlY2NiOWU4YTJjYTAyYzFhMjg5ZTFiODE4MjBkNzNkOTJjIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuY3BwCisrKyBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5jcHAKQEAgLTkzOSw3ICs5
MzksNyBAQCB2b2lkIFdlYlByb2Nlc3NQcm94eTo6cHJvY2Vzc0RpZFRlcm1pbmF0ZU9yRmFpbGVk
VG9MYXVuY2goUHJvY2Vzc1Rlcm1pbmF0aW9uUmVhcwogICAgICAgICB3ZWJDb25uZWN0aW9uLT5k
aWRDbG9zZSgpOwogCiAgICAgYXV0byBwYWdlcyA9IGNvcHlUb1ZlY3Rvck9mPFJlZlB0cjxXZWJQ
YWdlUHJveHk+PihtX3BhZ2VNYXAudmFsdWVzKCkpOwotICAgIGF1dG8gcHJvdmlzaW9uYWxQYWdl
cyA9IFdURjo6bWFwKG1fcHJvdmlzaW9uYWxQYWdlcywgW10oYXV0byogcHJvdmlzaW9uYWxQYWdl
KSB7IHJldHVybiBtYWtlV2Vha1B0cihwcm92aXNpb25hbFBhZ2UpOyB9KTsKKyAgICBhdXRvIHBy
b3Zpc2lvbmFsUGFnZXMgPSBXVEY6Om1hcChtX3Byb3Zpc2lvbmFsUGFnZXMsIFtdKGF1dG8qIHBy
b3Zpc2lvbmFsUGFnZSkgeyByZXR1cm4gV2Vha1B0ciB7IHByb3Zpc2lvbmFsUGFnZSB9OyB9KTsK
IAogICAgIGF1dG8gaXNSZXNwb25zaXZlQ2FsbGJhY2tzID0gc3RkOjpleGNoYW5nZShtX2lzUmVz
cG9uc2l2ZUNhbGxiYWNrcywgeyB9KTsKICAgICBmb3IgKGF1dG8mIGNhbGxiYWNrIDogaXNSZXNw
b25zaXZlQ2FsbGJhY2tzKQpAQCAtMTc5MSw3ICsxNzkxLDcgQEAgdm9pZCBXZWJQcm9jZXNzUHJv
eHk6OmNyZWF0ZVNwZWVjaFJlY29nbml0aW9uU2VydmVyKFNwZWVjaFJlY29nbml0aW9uU2VydmVy
SWRlbnQKICAgICBNRVNTQUdFX0NIRUNLKCFtX3NwZWVjaFJlY29nbml0aW9uU2VydmVyTWFwLmNv
bnRhaW5zKGlkZW50aWZpZXIpKTsKIAogICAgIGF1dG8mIHNwZWVjaFJlY29nbml0aW9uU2VydmVy
ID0gbV9zcGVlY2hSZWNvZ25pdGlvblNlcnZlck1hcC5hZGQoaWRlbnRpZmllciwgbnVsbHB0ciku
aXRlcmF0b3ItPnZhbHVlOwotICAgIGF1dG8gcGVybWlzc2lvbkNoZWNrZXIgPSBbd2Vha1BhZ2Ug
PSBtYWtlV2Vha1B0cih0YXJnZXRQYWdlKV0oYXV0byYgcmVxdWVzdCwgYXV0byYmIGNvbXBsZXRp
b25IYW5kbGVyKSBtdXRhYmxlIHsKKyAgICBhdXRvIHBlcm1pc3Npb25DaGVja2VyID0gW3dlYWtQ
YWdlID0gV2Vha1B0ciB7IHRhcmdldFBhZ2UgfV0oYXV0byYgcmVxdWVzdCwgYXV0byYmIGNvbXBs
ZXRpb25IYW5kbGVyKSBtdXRhYmxlIHsKICAgICAgICAgaWYgKCF3ZWFrUGFnZSkgewogICAgICAg
ICAgICAgY29tcGxldGlvbkhhbmRsZXIoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25FcnJvciB7
IFNwZWVjaFJlY29nbml0aW9uRXJyb3JUeXBlOjpOb3RBbGxvd2VkLCAiUGFnZSBubyBsb25nZXIg
ZXhpc3RzIl9zIH0pOwogICAgICAgICAgICAgcmV0dXJuOwpAQCAtMTc5OSwxMiArMTc5OSwxMiBA
QCB2b2lkIFdlYlByb2Nlc3NQcm94eTo6Y3JlYXRlU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXIoU3Bl
ZWNoUmVjb2duaXRpb25TZXJ2ZXJJZGVudAogCiAgICAgICAgIHdlYWtQYWdlLT5yZXF1ZXN0U3Bl
ZWNoUmVjb2duaXRpb25QZXJtaXNzaW9uKHJlcXVlc3QsIFdURk1vdmUoY29tcGxldGlvbkhhbmRs
ZXIpKTsKICAgICB9OwotICAgIGF1dG8gY2hlY2tJZk1vY2tDYXB0dXJlRGV2aWNlc0VuYWJsZWQg
PSBbd2Vha1BhZ2UgPSBtYWtlV2Vha1B0cih0YXJnZXRQYWdlKV0oKSB7CisgICAgYXV0byBjaGVj
a0lmTW9ja0NhcHR1cmVEZXZpY2VzRW5hYmxlZCA9IFt3ZWFrUGFnZSA9IFdlYWtQdHIgeyB0YXJn
ZXRQYWdlIH1dKCkgewogICAgICAgICByZXR1cm4gd2Vha1BhZ2UgJiYgd2Vha1BhZ2UtPnByZWZl
cmVuY2VzKCkubW9ja0NhcHR1cmVEZXZpY2VzRW5hYmxlZCgpOwogICAgIH07CiAKICNpZiBFTkFC
TEUoTUVESUFfU1RSRUFNKQotICAgIGF1dG8gY3JlYXRlUmVhbHRpbWVNZWRpYVNvdXJjZSA9IFt3
ZWFrUGFnZSA9IG1ha2VXZWFrUHRyKHRhcmdldFBhZ2UpXSgpIHsKKyAgICBhdXRvIGNyZWF0ZVJl
YWx0aW1lTWVkaWFTb3VyY2UgPSBbd2Vha1BhZ2UgPSBXZWFrUHRyIHsgdGFyZ2V0UGFnZSB9XSgp
IHsKICAgICAgICAgcmV0dXJuIHdlYWtQYWdlID8gd2Vha1BhZ2UtPmNyZWF0ZVJlYWx0aW1lTWVk
aWFTb3VyY2VGb3JTcGVlY2hSZWNvZ25pdGlvbigpIDogQ2FwdHVyZVNvdXJjZU9yRXJyb3IgeyAi
UGFnZSBpcyBpbnZhbGlkIiB9OwogICAgIH07CiAgICAgc3BlZWNoUmVjb2duaXRpb25TZXJ2ZXIg
PSBtYWtlVW5pcXVlPFNwZWVjaFJlY29nbml0aW9uU2VydmVyPigqY29ubmVjdGlvbigpLCBpZGVu
dGlmaWVyLCBXVEZNb3ZlKHBlcm1pc3Npb25DaGVja2VyKSwgV1RGTW92ZShjaGVja0lmTW9ja0Nh
cHR1cmVEZXZpY2VzRW5hYmxlZCksIFdURk1vdmUoY3JlYXRlUmVhbHRpbWVNZWRpYVNvdXJjZSkp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5Lmgg
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuaAppbmRleCBlMzlkNGFm
ODY1M2JkNzg0YTA5MGMxMzZlODBlMGM1N2I3NDc0OWY1Li4xMzk1MTdiZGIyNGI1NGM0OGVkZmJi
ZWIwMTNkZTkyOWE1ZjE0ZWY2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9X
ZWJQcm9jZXNzUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNz
UHJveHkuaApAQCAtNTUxLDcgKzU1MSw3IEBAIHByaXZhdGU6CiAgICAgcHVibGljOgogICAgICAg
ICBXZWFrT3JTdHJvbmdQdHIoVCYgb2JqZWN0LCBJc1dlYWsgaXNXZWFrKQogICAgICAgICAgICAg
OiBtX2lzV2Vhayhpc1dlYWspCi0gICAgICAgICAgICAsIG1fd2Vha09iamVjdChtYWtlV2Vha1B0
cihvYmplY3QpKQorICAgICAgICAgICAgLCBtX3dlYWtPYmplY3Qob2JqZWN0KQogICAgICAgICB7
CiAgICAgICAgICAgICB1cGRhdGVTdHJvbmdSZWZlcmVuY2UoKTsKICAgICAgICAgfQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9y
ZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0
b3JlLmNwcAppbmRleCBjOWU2ZTExM2U5ZGUzN2U5Yzg1MzA1NjM3NTVhN2M5YWEyZmEzNzYxLi4x
ZDU1MDc5ZDIxNDZiODI3Y2Q0MjgzOTRmMDIzNzNhZWJlN2U4MjlkIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlLmNwcAorKysg
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlLmNw
cApAQCAtMTc0Niw3ICsxNzQ2LDcgQEAgdm9pZCBXZWJzaXRlRGF0YVN0b3JlOjpyZW1vdmVNZWRp
YUtleXMoY29uc3QgU3RyaW5nJiBtZWRpYUtleXNTdG9yYWdlRGlyZWN0b3J5LAogdm9pZCBXZWJz
aXRlRGF0YVN0b3JlOjpnZXROZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24oV2ViUHJvY2Vzc1Byb3h5
JiB3ZWJQcm9jZXNzUHJveHksIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoY29uc3QgTmV0d29ya1By
b2Nlc3NDb25uZWN0aW9uSW5mbyYpPiYmIHJlcGx5LCBTaG91bGRSZXRyeU9uRmFpbHVyZSBzaG91
bGRSZXRyeU9uRmFpbHVyZSkKIHsKICAgICBhdXRvJiBuZXR3b3JrUHJvY2Vzc1Byb3h5ID0gbmV0
d29ya1Byb2Nlc3MoKTsKLSAgICBuZXR3b3JrUHJvY2Vzc1Byb3h5LmdldE5ldHdvcmtQcm9jZXNz
Q29ubmVjdGlvbih3ZWJQcm9jZXNzUHJveHksIFt3ZWFrVGhpcyA9IFdlYWtQdHIgeyAqdGhpcyB9
LCBuZXR3b3JrUHJvY2Vzc1Byb3h5ID0gbWFrZVdlYWtQdHIobmV0d29ya1Byb2Nlc3NQcm94eSks
IHdlYlByb2Nlc3NQcm94eSA9IG1ha2VXZWFrUHRyKHdlYlByb2Nlc3NQcm94eSksIHJlcGx5ID0g
V1RGTW92ZShyZXBseSksIHNob3VsZFJldHJ5T25GYWlsdXJlXSAoYXV0byYgY29ubmVjdGlvbklu
Zm8pIG11dGFibGUgeworICAgIG5ldHdvcmtQcm9jZXNzUHJveHkuZ2V0TmV0d29ya1Byb2Nlc3ND
b25uZWN0aW9uKHdlYlByb2Nlc3NQcm94eSwgW3dlYWtUaGlzID0gV2Vha1B0ciB7ICp0aGlzIH0s
IG5ldHdvcmtQcm9jZXNzUHJveHkgPSBXZWFrUHRyIHsgbmV0d29ya1Byb2Nlc3NQcm94eSB9LCB3
ZWJQcm9jZXNzUHJveHkgPSBXZWFrUHRyIHsgd2ViUHJvY2Vzc1Byb3h5IH0sIHJlcGx5ID0gV1RG
TW92ZShyZXBseSksIHNob3VsZFJldHJ5T25GYWlsdXJlXSAoYXV0byYgY29ubmVjdGlvbkluZm8p
IG11dGFibGUgewogICAgICAgICBpZiAoVU5MSUtFTFkoIUlQQzo6Q29ubmVjdGlvbjo6aWRlbnRp
ZmllcklzVmFsaWQoY29ubmVjdGlvbkluZm8uaWRlbnRpZmllcigpKSkpIHsKICAgICAgICAgICAg
IGF1dG8gbG9nRXJyb3IgPSBbbmV0d29ya1Byb2Nlc3NQcm94eSwgd2ViUHJvY2Vzc1Byb3h5XSgp
IHsKICNpZiBPUyhEQVJXSU4pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9n
dGsvV2F5bGFuZENvbXBvc2l0b3IuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvZ3RrL1dh
eWxhbmRDb21wb3NpdG9yLmNwcAppbmRleCBiMzRkMTNiODY1YzUwMjIyN2VjYWEwNzgzZGYxMGMy
ZjUwMzg5YWU0Li4xMTA4YWFlNzc4YTg0ZGNjMTc2NDRiYzlkOTM5NWU0MzZkOTFkYmY1IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9ndGsvV2F5bGFuZENvbXBvc2l0b3IuY3Bw
CisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2d0ay9XYXlsYW5kQ29tcG9zaXRvci5jcHAK
QEAgLTIzMyw3ICsyMzMsNyBAQCB2b2lkIFdheWxhbmRDb21wb3NpdG9yOjpTdXJmYWNlOjphdHRh
Y2hCdWZmZXIoc3RydWN0IHdsX3Jlc291cmNlKiBidWZmZXIpCiAKICAgICBpZiAoYnVmZmVyKSB7
CiAgICAgICAgIGF1dG8qIGNvbXBvc2l0b3JCdWZmZXIgPSBXYXlsYW5kQ29tcG9zaXRvcjo6QnVm
ZmVyOjpnZXRPckNyZWF0ZShidWZmZXIpOwotICAgICAgICBtX3BlbmRpbmdCdWZmZXIgPSBtYWtl
V2Vha1B0cigqY29tcG9zaXRvckJ1ZmZlcik7CisgICAgICAgIG1fcGVuZGluZ0J1ZmZlciA9ICpj
b21wb3NpdG9yQnVmZmVyOwogICAgIH0KIH0KIApAQCAtNTcxLDcgKzU3MSw3IEBAIHZvaWQgV2F5
bGFuZENvbXBvc2l0b3I6OmJpbmRTdXJmYWNlVG9XZWJQYWdlKFdheWxhbmRDb21wb3NpdG9yOjpT
dXJmYWNlKiBzdXJmYWNlCiAKICAgICB1bmJpbmRXZWJQYWdlKCp3ZWJQYWdlKTsKICAgICBzdXJm
YWNlLT5zZXRXZWJQYWdlKHdlYlBhZ2UpOwotICAgIG1fcGFnZU1hcC5zZXQod2ViUGFnZSwgbWFr
ZVdlYWtQdHIoKnN1cmZhY2UpKTsKKyAgICBtX3BhZ2VNYXAuc2V0KHdlYlBhZ2UsICpzdXJmYWNl
KTsKIH0KIAogdm9pZCBXYXlsYW5kQ29tcG9zaXRvcjo6YmluZFdlYlBhZ2UoV2ViUGFnZVByb3h5
JiB3ZWJQYWdlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1Byb2Nl
c3NBc3NlcnRpb25JT1MubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvUHJvY2Vzc0Fz
c2VydGlvbklPUy5tbQppbmRleCAxMThiYmIzNmJjODdmMzNhYTFlYTI4ZDFjZjRiZDhmOGU2ODFk
OTRhLi41ZTNiOTBiMzMyMDcxZWVhZDI0OTMzZGVmOWY4ZmFiNGU5ZGVlZWVmIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvUHJvY2Vzc0Fzc2VydGlvbklPUy5tbQorKysg
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvUHJvY2Vzc0Fzc2VydGlvbklPUy5tbQpAQCAt
MTI2LDcgKzEyNiw3IEBAIC0gKHZvaWQpX25vdGlmeUFzc2VydGlvbnNPZkltbWluZW50U3VzcGVu
c2lvbgogCiAgICAgVmVjdG9yPFdlYWtQdHI8UHJvY2Vzc0FuZFVJQXNzZXJ0aW9uPj4gYXNzZXJ0
aW9uc05lZWRpbmdCYWNrZ3JvdW5kVGFzazsKICAgICBmb3IgKGF1dG8mIGFzc2VydGlvbiA6IF9h
c3NlcnRpb25zTmVlZGluZ0JhY2tncm91bmRUYXNrKQotICAgICAgICBhc3NlcnRpb25zTmVlZGlu
Z0JhY2tncm91bmRUYXNrLmFwcGVuZChtYWtlV2Vha1B0cihhc3NlcnRpb24pKTsKKyAgICAgICAg
YXNzZXJ0aW9uc05lZWRpbmdCYWNrZ3JvdW5kVGFzay5hcHBlbmQoYXNzZXJ0aW9uKTsKIAogICAg
IC8vIE5vdGUgdGhhdCB3ZSBkb24ndCBleHBlY3QgY2xpZW50cyB0byByZWdpc3RlciBuZXcgYXNz
ZXJ0aW9ucyB3aGVuIGdldHRpbmcgbm90aWZpZWQgdGhhdCB0aGUgVUkgYXNzZXJ0aW9uIHdpbGwg
ZXhwaXJlIGltbWluZW50bHkuCiAgICAgLy8gSWYgY2xpZW50cyB3ZXJlIHRvIGRvIHNvLCB0aGVu
IHRob3NlIG5ldyBhc3NlcnRpb25zIHdvdWxkIG5vdCBnZXQgbm90aWZpZWQgb2YgdGhlIGltbWlu
ZW50IHN1c3BlbnNpb24uCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3Mv
V2ViRGF0YUxpc3RTdWdnZXN0aW9uc0Ryb3Bkb3duSU9TLm1tIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvaW9zL1dlYkRhdGFMaXN0U3VnZ2VzdGlvbnNEcm9wZG93bklPUy5tbQppbmRleCA3NWI3
ZmE3NWYyYzYxNjUzY2Y5YzRjYmZhZDAwYWJjMGU0NDMwZjdjLi5lZjZkZjY1OGNkMjkwM2E1ZjNm
NmE3MDJhYmJjZmI1ZDJmNGY3ZDMxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9pb3MvV2ViRGF0YUxpc3RTdWdnZXN0aW9uc0Ryb3Bkb3duSU9TLm1tCisrKyBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL2lvcy9XZWJEYXRhTGlzdFN1Z2dlc3Rpb25zRHJvcGRvd25JT1MubW0K
QEAgLTE3Myw3ICsxNzMsNyBAQCAtICh2b2lkKXVwZGF0ZVdpdGhJbmZvcm1hdGlvbjooV2ViQ29y
ZTo6RGF0YUxpc3RTdWdnZXN0aW9uSW5mb3JtYXRpb24mJilpbmZvcm1hdAogCiAtICh2b2lkKXNo
b3dTdWdnZXN0aW9uc0Ryb3Bkb3duOihXZWJLaXQ6OldlYkRhdGFMaXN0U3VnZ2VzdGlvbnNEcm9w
ZG93bklPUyYpZHJvcGRvd24gYWN0aXZhdGlvblR5cGU6KFdlYkNvcmU6OkRhdGFMaXN0U3VnZ2Vz
dGlvbkFjdGl2YXRpb25UeXBlKWFjdGl2YXRpb25UeXBlCiB7Ci0gICAgX2Ryb3Bkb3duID0gbWFr
ZVdlYWtQdHIoZHJvcGRvd24pOworICAgIF9kcm9wZG93biA9IGRyb3Bkb3duOwogfQogCiAtICh2
b2lkKWRpZFNlbGVjdE9wdGlvbkF0SW5kZXg6KE5TSW50ZWdlcilpbmRleApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFjL1BhZ2VDbGllbnRJbXBsTWFjLm1tIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvbWFjL1BhZ2VDbGllbnRJbXBsTWFjLm1tCmluZGV4IGE4NTU3NTMw
ZjBjNjVlM2E0ZjlmYzJlMGU2MmE1MjZhNTc4NDk0ZDAuLjdmMTU2ZGRlZmFjZjcxMGRmNDU3ODZh
YzY1ZGE4OTQ0ZjA5ZDEyZDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL21h
Yy9QYWdlQ2xpZW50SW1wbE1hYy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMv
UGFnZUNsaWVudEltcGxNYWMubW0KQEAgLTExNyw3ICsxMTcsNyBAQCBQYWdlQ2xpZW50SW1wbDo6
flBhZ2VDbGllbnRJbXBsKCkgPSBkZWZhdWx0OwogCiB2b2lkIFBhZ2VDbGllbnRJbXBsOjpzZXRJ
bXBsKFdlYlZpZXdJbXBsJiBpbXBsKQogewotICAgIG1faW1wbCA9IG1ha2VXZWFrUHRyKGltcGwp
OworICAgIG1faW1wbCA9IGltcGw7CiB9CiAKIHN0ZDo6dW5pcXVlX3B0cjxEcmF3aW5nQXJlYVBy
b3h5PiBQYWdlQ2xpZW50SW1wbDo6Y3JlYXRlRHJhd2luZ0FyZWFQcm94eShXZWJQcm9jZXNzUHJv
eHkmIHByb2Nlc3MpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMvV0tS
ZXZlYWxJdGVtUHJlc2VudGVyLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFjL1dLUmV2
ZWFsSXRlbVByZXNlbnRlci5tbQppbmRleCAwZmU0MTRkOThkZTljZjk2ZjQ4NGRlMzc1OWNkMmI2
MmQwNmRkZDdhLi4wZjUxZmQ4ZWJiMDEwOTVjYWE4NTc0NzNkNGY0NWVmZTAxOGU1MWVhIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMvV0tSZXZlYWxJdGVtUHJlc2VudGVy
Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9XS1JldmVhbEl0ZW1QcmVzZW50
ZXIubW0KQEAgLTUzLDcgKzUzLDcgQEAgLSAoaW5zdGFuY2V0eXBlKWluaXRXaXRoV2ViVmlld0lt
cGw6KGNvbnN0IFdlYktpdDo6V2ViVmlld0ltcGwmKWltcGwgaXRlbTooUlZJdGUKICAgICBpZiAo
IShzZWxmID0gW3N1cGVyIGluaXRdKSkKICAgICAgICAgcmV0dXJuIG5pbDsKIAotICAgIF9pbXBs
ID0gbWFrZVdlYWtQdHIoaW1wbCk7CisgICAgX2ltcGwgPSBpbXBsOwogICAgIF9wcmVzZW50ZXIg
PSBhZG9wdE5TKFtQQUw6OmFsbG9jUlZQcmVzZW50ZXJJbnN0YW5jZSgpIGluaXRdKTsKICAgICBf
cHJlc2VudGluZ0NvbnRleHQgPSBhZG9wdE5TKFtQQUw6OmFsbG9jUlZQcmVzZW50aW5nQ29udGV4
dEluc3RhbmNlKCkgaW5pdFdpdGhQb2ludGVyTG9jYXRpb25JblZpZXc6bWVudUxvY2F0aW9uSW5W
aWV3IGluVmlldzppbXBsLnZpZXcoKSBoaWdobGlnaHREZWxlZ2F0ZTpzZWxmXSk7CiAgICAgX2l0
ZW0gPSBpdGVtOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFjL1dlYkNv
bnRleHRNZW51UHJveHlNYWMubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMvV2ViQ29u
dGV4dE1lbnVQcm94eU1hYy5tbQppbmRleCA3NzkyYjBmMjJkN2Q1ZjVlNWNiNzIzZWFmYmVmZTQ4
Yjk4MzA4NGM4Li4zNDU0NTE5OGVlZmUxMGZjN2QyZWM5ZWI0YWQwYWRmNDAzNTQ0MGM2IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMvV2ViQ29udGV4dE1lbnVQcm94eU1h
Yy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMvV2ViQ29udGV4dE1lbnVQcm94
eU1hYy5tbQpAQCAtNTM3LDcgKzUzNyw3IEBAIHZvaWQgV2ViQ29udGV4dE1lbnVQcm94eU1hYzo6
Z2V0Q29udGV4dE1lbnVGcm9tSXRlbXMoY29uc3QgVmVjdG9yPFdlYkNvbnRleHRNZW51CiAgICAg
YXV0byBpbWFnZUJpdG1hcCA9IG1fY29udGV4dC53ZWJIaXRUZXN0UmVzdWx0RGF0YSgpLmltYWdl
Qml0bWFwOwogCiAgICAgYXV0byBzcGFyc2VNZW51SXRlbXMgPSByZXRhaW5QdHIoW05TUG9pbnRl
ckFycmF5IHN0cm9uZ09iamVjdHNQb2ludGVyQXJyYXldKTsKLSAgICBhdXRvIGluc2VydE1lbnVJ
dGVtID0gbWFrZUJsb2NrUHRyKFtwcm90ZWN0ZWRUaGlzID0gUmVmIHsgKnRoaXMgfSwgd2Vha1Bh
Z2UgPSBtYWtlV2Vha1B0cihwYWdlKCkpLCBpbWFnZVVSTCA9IFdURk1vdmUoaW1hZ2VVUkwpLCBp
bWFnZUJpdG1hcCA9IFdURk1vdmUoaW1hZ2VCaXRtYXApLCBzaG91bGRVcGRhdGVRdWlja0xvb2tJ
dGVtVGl0bGUsIHF1aWNrTG9va0l0ZW1Ub0luc2VydElmTmVlZGVkID0gV1RGTW92ZShxdWlja0xv
b2tJdGVtVG9JbnNlcnRJZk5lZWRlZCksIGNvbXBsZXRpb25IYW5kbGVyID0gV1RGTW92ZShjb21w
bGV0aW9uSGFuZGxlciksIGl0ZW1zUmVtYWluaW5nID0gZmlsdGVyZWRJdGVtcy5zaXplKCksIG1l
bnUgPSBXVEZNb3ZlKG1lbnUpLCBzcGFyc2VNZW51SXRlbXNdKE5TTWVudUl0ZW0gKml0ZW0sIE5T
VUludGVnZXIgaW5kZXgpIG11dGFibGUgeworICAgIGF1dG8gaW5zZXJ0TWVudUl0ZW0gPSBtYWtl
QmxvY2tQdHIoW3Byb3RlY3RlZFRoaXMgPSBSZWYgeyAqdGhpcyB9LCB3ZWFrUGFnZSA9IFdlYWtQ
dHIgeyBwYWdlKCkgfSwgaW1hZ2VVUkwgPSBXVEZNb3ZlKGltYWdlVVJMKSwgaW1hZ2VCaXRtYXAg
PSBXVEZNb3ZlKGltYWdlQml0bWFwKSwgc2hvdWxkVXBkYXRlUXVpY2tMb29rSXRlbVRpdGxlLCBx
dWlja0xvb2tJdGVtVG9JbnNlcnRJZk5lZWRlZCA9IFdURk1vdmUocXVpY2tMb29rSXRlbVRvSW5z
ZXJ0SWZOZWVkZWQpLCBjb21wbGV0aW9uSGFuZGxlciA9IFdURk1vdmUoY29tcGxldGlvbkhhbmRs
ZXIpLCBpdGVtc1JlbWFpbmluZyA9IGZpbHRlcmVkSXRlbXMuc2l6ZSgpLCBtZW51ID0gV1RGTW92
ZShtZW51KSwgc3BhcnNlTWVudUl0ZW1zXShOU01lbnVJdGVtICppdGVtLCBOU1VJbnRlZ2VyIGlu
ZGV4KSBtdXRhYmxlIHsKICAgICAgICAgQVNTRVJUKGluZGV4IDwgW3NwYXJzZU1lbnVJdGVtcyBj
b3VudF0pOwogICAgICAgICBBU1NFUlQoIVtzcGFyc2VNZW51SXRlbXMgcG9pbnRlckF0SW5kZXg6
aW5kZXhdKTsKICAgICAgICAgW3NwYXJzZU1lbnVJdGVtcyByZXBsYWNlUG9pbnRlckF0SW5kZXg6
aW5kZXggd2l0aFBvaW50ZXI6aXRlbV07CkBAIC01ODUsNyArNTg1LDcgQEAgdm9pZCBXZWJDb250
ZXh0TWVudVByb3h5TWFjOjppbnNlcnRPclVwZGF0ZVF1aWNrTG9va0ltYWdlSXRlbShjb25zdCBV
UkwmIGltYWdlVVIKICAgICB9CiAKICAgICBpZiAoc2hvdWxkVXBkYXRlUXVpY2tMb29rSXRlbVRp
dGxlKSB7Ci0gICAgICAgIHBhZ2UtPmNvbXB1dGVIYXNJbWFnZUFuYWx5c2lzUmVzdWx0cyhpbWFn
ZVVSTCwgaW1hZ2VCaXRtYXAuZ2V0KCksIEltYWdlQW5hbHlzaXNUeXBlOjpWaXN1YWxTZWFyY2gs
IFt3ZWFrVGhpcyA9IFdlYWtQdHIgeyAqdGhpcyB9LCB3ZWFrUGFnZSA9IG1ha2VXZWFrUHRyKHBh
Z2UuZ2V0KCkpLCBpbWFnZVVSTCwgaW1hZ2VCaXRtYXAgPSBXVEZNb3ZlKGltYWdlQml0bWFwKV0g
KGJvb2wgaGFzVmlzdWFsU2VhcmNoUmVzdWx0cykgbXV0YWJsZSB7CisgICAgICAgIHBhZ2UtPmNv
bXB1dGVIYXNJbWFnZUFuYWx5c2lzUmVzdWx0cyhpbWFnZVVSTCwgaW1hZ2VCaXRtYXAuZ2V0KCks
IEltYWdlQW5hbHlzaXNUeXBlOjpWaXN1YWxTZWFyY2gsIFt3ZWFrVGhpcyA9IFdlYWtQdHIgeyAq
dGhpcyB9LCB3ZWFrUGFnZSA9IFdlYWtQdHIgeyBwYWdlIH0sIGltYWdlVVJMLCBpbWFnZUJpdG1h
cCA9IFdURk1vdmUoaW1hZ2VCaXRtYXApXSAoYm9vbCBoYXNWaXN1YWxTZWFyY2hSZXN1bHRzKSBt
dXRhYmxlIHsKICAgICAgICAgICAgIFJlZlB0ciBwcm90ZWN0ZWRUaGlzIHsgd2Vha1RoaXMuZ2V0
KCkgfTsKICAgICAgICAgICAgIGlmICghcHJvdGVjdGVkVGhpcykKICAgICAgICAgICAgICAgICBy
ZXR1cm47CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMvV2ViRGF0YUxp
c3RTdWdnZXN0aW9uc0Ryb3Bkb3duTWFjLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFj
L1dlYkRhdGFMaXN0U3VnZ2VzdGlvbnNEcm9wZG93bk1hYy5tbQppbmRleCBkMWE0MGFlMDk1ZWJm
YmNhOTEyMDk3MWFhOTQ5Yzc5NTRkNTM4ODA5Li44ZjM1Y2JmNjAyYjYzNDc2NmEwMDFiNGNlOGQy
NmUzZDNlMWZmNjgyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMvV2Vi
RGF0YUxpc3RTdWdnZXN0aW9uc0Ryb3Bkb3duTWFjLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL21hYy9XZWJEYXRhTGlzdFN1Z2dlc3Rpb25zRHJvcGRvd25NYWMubW0KQEAgLTQ1NSw3
ICs0NTUsNyBAQCAtIChOU1JlY3QpZHJvcGRvd25SZWN0Rm9yRWxlbWVudFJlY3Q6KGNvbnN0IFdl
YkNvcmU6OkludFJlY3QmKXJlY3QKIAogLSAodm9pZClzaG93U3VnZ2VzdGlvbnNEcm9wZG93bjoo
V2ViS2l0OjpXZWJEYXRhTGlzdFN1Z2dlc3Rpb25zRHJvcGRvd25NYWMmKWRyb3Bkb3duCiB7Ci0g
ICAgX2Ryb3Bkb3duID0gbWFrZVdlYWtQdHIoZHJvcGRvd24pOworICAgIF9kcm9wZG93biA9IGRy
b3Bkb3duOwogICAgIFtbX2VuY2xvc2luZ1dpbmRvdyBjb250ZW50Vmlld10gYWRkU3Vidmlldzpf
c2Nyb2xsVmlldy5nZXQoKV07CiAgICAgW190YWJsZSByZWxvYWRdOwogICAgIFtbX3ByZXNlbnRp
bmdWaWV3IHdpbmRvd10gYWRkQ2hpbGRXaW5kb3c6X2VuY2xvc2luZ1dpbmRvdy5nZXQoKSBvcmRl
cmVkOk5TV2luZG93QWJvdmVdOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
bWFjL1dlYkRhdGVUaW1lUGlja2VyTWFjLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFj
L1dlYkRhdGVUaW1lUGlja2VyTWFjLm1tCmluZGV4IDdiNWNhODJhYjNkNmQ3MDVlZGE4NjkyN2Vj
MzUyYmI3MzJjZTkzNDUuLjJhNDIzM2YzZjc5MDAzODAxZjYyYzkyNWQyNTQ1MjdhNjhjNDZhMzgg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9XZWJEYXRlVGltZVBpY2tl
ck1hYy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMvV2ViRGF0ZVRpbWVQaWNr
ZXJNYWMubW0KQEAgLTIyOCw3ICsyMjgsNyBAQCAtIChpZClpbml0V2l0aFBhcmFtczooV2ViQ29y
ZTo6RGF0ZVRpbWVDaG9vc2VyUGFyYW1ldGVycyYmKXBhcmFtcyBpblZpZXc6KE5TVmlldwogCiAt
ICh2b2lkKXNob3dQaWNrZXI6KFdlYktpdDo6V2ViRGF0ZVRpbWVQaWNrZXJNYWMmKXBpY2tlcgog
ewotICAgIF9waWNrZXIgPSBtYWtlV2Vha1B0cihwaWNrZXIpOworICAgIF9waWNrZXIgPSBwaWNr
ZXI7CiAKICAgICBbW19lbmNsb3NpbmdXaW5kb3cgY29udGVudFZpZXddIGFkZFN1YnZpZXc6X2Rh
dGVQaWNrZXIuZ2V0KCldOwogICAgIFtbX3ByZXNlbnRpbmdWaWV3IHdpbmRvd10gYWRkQ2hpbGRX
aW5kb3c6X2VuY2xvc2luZ1dpbmRvdy5nZXQoKSBvcmRlcmVkOk5TV2luZG93QWJvdmVdOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0F1dG9tYXRpb24vV2ViQXV0b21hdGlv
bkRPTVdpbmRvd09ic2VydmVyLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9BdXRvbWF0
aW9uL1dlYkF1dG9tYXRpb25ET01XaW5kb3dPYnNlcnZlci5jcHAKaW5kZXggYzAyOThmMTJhY2U4
YmE4NGQwYThjNWI3MzFiNzI0MWIyMjcxN2Y3OC4uODZlMDdhMDQ2MDQzYzFiMTM5YjI1YWNhNDFi
MzdiZTJhMzViYjI1MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0F1dG9t
YXRpb24vV2ViQXV0b21hdGlvbkRPTVdpbmRvd09ic2VydmVyLmNwcAorKysgYi9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvQXV0b21hdGlvbi9XZWJBdXRvbWF0aW9uRE9NV2luZG93T2JzZXJ2ZXIu
Y3BwCkBAIC0zMiw3ICszMiw3IEBACiBuYW1lc3BhY2UgV2ViS2l0IHsKIAogV2ViQXV0b21hdGlv
bkRPTVdpbmRvd09ic2VydmVyOjpXZWJBdXRvbWF0aW9uRE9NV2luZG93T2JzZXJ2ZXIoV2ViQ29y
ZTo6RE9NV2luZG93JiB3aW5kb3csIFdURjo6RnVuY3Rpb248dm9pZChXZWJBdXRvbWF0aW9uRE9N
V2luZG93T2JzZXJ2ZXImKT4mJiBjYWxsYmFjaykKLSAgICA6IG1fd2luZG93KG1ha2VXZWFrUHRy
KHdpbmRvdykpCisgICAgOiBtX3dpbmRvdyh3aW5kb3cpCiAgICAgLCBtX2NhbGxiYWNrKFdURk1v
dmUoY2FsbGJhY2spKQogewogICAgIEFTU0VSVChtX3dpbmRvdy0+ZnJhbWUoKSk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90ZURpc3BsYXlM
aXN0UmVjb3JkZXJQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBo
aWNzL1JlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXJQcm94eS5jcHAKaW5kZXggYTIzOWVkMjE5YmU3
OWZmMzZiYTY3ODBhYmJiNDJmNzBkM2Q3YzY5NS4uNmM5MTRkODA4MjVkNWUwZmFhYzhiN2E0OGEy
NDgzOWFlN2FkMWIzMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9n
cmFwaGljcy9SZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyUHJveHkuY3BwCisrKyBiL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlclBy
b3h5LmNwcApAQCAtNDUsOCArNDUsOCBAQCB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIFJlbW90
ZURpc3BsYXlMaXN0UmVjb3JkZXJQcm94eTo6UmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlclByb3h5
KEltYWdlQnVmZmVyJiBpbWFnZUJ1ZmZlciwgUmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5JiBy
ZW5kZXJpbmdCYWNrZW5kLCBjb25zdCBGbG9hdFJlY3QmIGluaXRpYWxDbGlwLCBjb25zdCBBZmZp
bmVUcmFuc2Zvcm0mIGluaXRpYWxDVE0sIERyYXdHbHlwaHNSZWNvcmRlcjo6RGVjb25zdHJ1Y3RE
cmF3R2x5cGhzIGRlY29uc3RydWN0RHJhd0dseXBocykKICAgICA6IERpc3BsYXlMaXN0OjpSZWNv
cmRlcih7IH0sIGluaXRpYWxDbGlwLCBpbml0aWFsQ1RNLCBkZWNvbnN0cnVjdERyYXdHbHlwaHMp
CiAgICAgLCBtX2Rlc3RpbmF0aW9uQnVmZmVySWRlbnRpZmllcihpbWFnZUJ1ZmZlci5yZW5kZXJp
bmdSZXNvdXJjZUlkZW50aWZpZXIoKSkKLSAgICAsIG1faW1hZ2VCdWZmZXIobWFrZVdlYWtQdHIo
aW1hZ2VCdWZmZXIpKQotICAgICwgbV9yZW5kZXJpbmdCYWNrZW5kKG1ha2VXZWFrUHRyKHJlbmRl
cmluZ0JhY2tlbmQpKQorICAgICwgbV9pbWFnZUJ1ZmZlcihpbWFnZUJ1ZmZlcikKKyAgICAsIG1f
cmVuZGVyaW5nQmFja2VuZChyZW5kZXJpbmdCYWNrZW5kKQogewogfQogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90ZUltYWdlQnVmZmVyUHJv
eHkuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3RlSW1hZ2VC
dWZmZXJQcm94eS5oCmluZGV4IDJiYTkzNjk5YThjY2ExM2FiNzFiYTZhYTQ0ZDBmNDg3ZjViMzU0
YTYuLjY5MzRiYjQ2MTZjZTAwYmVhYjE0MGJhYTk0MTA5YjZiYTk1ZjNjMjQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3RlSW1hZ2VCdWZmZXJQ
cm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3Rl
SW1hZ2VCdWZmZXJQcm94eS5oCkBAIC05OCw3ICs5OCw3IEBAIHB1YmxpYzoKIHByb3RlY3RlZDoK
ICAgICBSZW1vdGVJbWFnZUJ1ZmZlclByb3h5KGNvbnN0IFdlYkNvcmU6OkltYWdlQnVmZmVyQmFj
a2VuZDo6UGFyYW1ldGVycyYgcGFyYW1ldGVycywgUmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5
JiByZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHkpCiAgICAgICAgIDogQmFzZUNvbmNyZXRlSW1h
Z2VCdWZmZXIocGFyYW1ldGVycykKLSAgICAgICAgLCBtX3JlbW90ZVJlbmRlcmluZ0JhY2tlbmRQ
cm94eShtYWtlV2Vha1B0cihyZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHkpKQorICAgICAgICAs
IG1fcmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5KHJlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94
eSkKICAgICAgICAgLCBtX3JlbW90ZURpc3BsYXlMaXN0KCp0aGlzLCByZW1vdGVSZW5kZXJpbmdC
YWNrZW5kUHJveHksIHsgeyB9LCBCYXNlQ29uY3JldGVJbWFnZUJ1ZmZlcjo6bG9naWNhbFNpemUo
KSB9LCBCYXNlQ29uY3JldGVJbWFnZUJ1ZmZlcjo6YmFzZVRyYW5zZm9ybSgpKQogICAgIHsKICAg
ICAgICAgQVNTRVJUKG1fcmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5KTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFj
a2VuZFByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVt
b3RlUmVuZGVyaW5nQmFja2VuZFByb3h5LmNwcAppbmRleCBkOTgyMWFjNTdhNzc3ZDA0Y2I5NTQ3
ZmI0MzcyZDQ3MDg1ZWYyNmU4Li4yOGJiMjQ0ODE2ODE5M2VlZTdkY2FjZWIzODFhOGYzZGUwOGRh
MWFmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1Jl
bW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHkuY3BwCkBAIC03OCw3
ICs3OCw3IEBAIEdQVVByb2Nlc3NDb25uZWN0aW9uJiBSZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJv
eHk6OmVuc3VyZUdQVVByb2Nlc3NDb25uZWN0aW9uKCkKICAgICAgICAgc3RhdGljIGNvbnN0ZXhw
ciBhdXRvIGNvbm5lY3Rpb25CdWZmZXJTaXplID0gMSA8PCAyMTsKICAgICAgICAgbV9zdHJlYW1D
b25uZWN0aW9uID0gbWFrZVVuaXF1ZTxJUEM6OlN0cmVhbUNsaWVudENvbm5lY3Rpb24+KGdwdVBy
b2Nlc3NDb25uZWN0aW9uLmNvbm5lY3Rpb24oKSwgY29ubmVjdGlvbkJ1ZmZlclNpemUpOwogICAg
ICAgICBncHVQcm9jZXNzQ29ubmVjdGlvbi5jb25uZWN0aW9uKCkuc2VuZChNZXNzYWdlczo6R1BV
Q29ubmVjdGlvblRvV2ViUHJvY2Vzczo6Q3JlYXRlUmVuZGVyaW5nQmFja2VuZChtX3BhcmFtZXRl
cnMsIG1fc3RyZWFtQ29ubmVjdGlvbi0+c3RyZWFtQnVmZmVyKCkpLCAwLCBJUEM6OlNlbmRPcHRp
b246OkRpc3BhdGNoTWVzc2FnZUV2ZW5XaGVuV2FpdGluZ0ZvclN5bmNSZXBseSk7Ci0gICAgICAg
IG1fZ3B1UHJvY2Vzc0Nvbm5lY3Rpb24gPSBtYWtlV2Vha1B0cihncHVQcm9jZXNzQ29ubmVjdGlv
bik7CisgICAgICAgIG1fZ3B1UHJvY2Vzc0Nvbm5lY3Rpb24gPSBncHVQcm9jZXNzQ29ubmVjdGlv
bjsKICAgICB9CiAgICAgcmV0dXJuICptX2dwdVByb2Nlc3NDb25uZWN0aW9uOwogfQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVSZXNvdXJj
ZUNhY2hlUHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9S
ZW1vdGVSZXNvdXJjZUNhY2hlUHJveHkuY3BwCmluZGV4IDQxMTcwNGQ3MzUxMDVmYjUxY2E5NTUy
NThlZWViODk3OTNhYzQ1NmMuLjE3MDRlNWMzODIxMzllMTgzNzM2NzdlZWNhYjNjMTY4NDg0YmM4
MWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVt
b3RlUmVzb3VyY2VDYWNoZVByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
R1BVL2dyYXBoaWNzL1JlbW90ZVJlc291cmNlQ2FjaGVQcm94eS5jcHAKQEAgLTQ2LDcgKzQ2LDcg
QEAgUmVtb3RlUmVzb3VyY2VDYWNoZVByb3h5Ojp+UmVtb3RlUmVzb3VyY2VDYWNoZVByb3h5KCkK
IAogdm9pZCBSZW1vdGVSZXNvdXJjZUNhY2hlUHJveHk6OmNhY2hlSW1hZ2VCdWZmZXIoV2ViQ29y
ZTo6SW1hZ2VCdWZmZXImIGltYWdlQnVmZmVyKQogewotICAgIGF1dG8gYWRkUmVzdWx0ID0gbV9p
bWFnZUJ1ZmZlcnMuYWRkKGltYWdlQnVmZmVyLnJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllcigp
LCBJbWFnZUJ1ZmZlclN0YXRlIHsgbWFrZVdlYWtQdHIoaW1hZ2VCdWZmZXIpLCAwIH0pOworICAg
IGF1dG8gYWRkUmVzdWx0ID0gbV9pbWFnZUJ1ZmZlcnMuYWRkKGltYWdlQnVmZmVyLnJlbmRlcmlu
Z1Jlc291cmNlSWRlbnRpZmllcigpLCBJbWFnZUJ1ZmZlclN0YXRlIHsgaW1hZ2VCdWZmZXIsIDAg
fSk7CiAgICAgQVNTRVJUX1VOVVNFRChhZGRSZXN1bHQsIGFkZFJlc3VsdC5pc05ld0VudHJ5KTsK
IH0KIApAQCAtMTA5LDcgKzEwOSw3IEBAIHZvaWQgUmVtb3RlUmVzb3VyY2VDYWNoZVByb3h5Ojpy
ZWNvcmROYXRpdmVJbWFnZVVzZShOYXRpdmVJbWFnZSYgaW1hZ2UpCiAgICAgaWYgKGhhbmRsZS5p
c051bGwoKSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgbV9uYXRpdmVJbWFnZXMuYWRkKGltYWdl
LnJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllcigpLCBOYXRpdmVJbWFnZVN0YXRlIHsgbWFrZVdl
YWtQdHIoaW1hZ2UpLCAxIH0pOworICAgIG1fbmF0aXZlSW1hZ2VzLmFkZChpbWFnZS5yZW5kZXJp
bmdSZXNvdXJjZUlkZW50aWZpZXIoKSwgTmF0aXZlSW1hZ2VTdGF0ZSB7IGltYWdlLCAxIH0pOwog
CiAgICAgLy8gU2V0IGl0c2VsZiBhcyBhbiBvYnNlcnZlciB0byBOYXRpdmVJbWFnZSwgc28gcmVs
ZWFzZU5hdGl2ZUltYWdlKCkKICAgICAvLyBnZXRzIGNhbGxlZCB3aGVuIE5hdGl2ZUltYWdlIGlz
IGJlaW5nIGRlbGVsZXRlZC4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9H
UFUvbWVkaWEvQXVkaW9UcmFja1ByaXZhdGVSZW1vdGUuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL0dQVS9tZWRpYS9BdWRpb1RyYWNrUHJpdmF0ZVJlbW90ZS5jcHAKaW5kZXggMWNkMjk2
NzQ0Y2Q0YTYzNjBkNzhmOWQyMzdiMTFkMzU4NDdjZjBkMy4uMzVlODVmNmQ2YjY0YjQ1NWVlNDVj
ZTJkZTQ2OGMzMGIwNjc3N2I3ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L0dQVS9tZWRpYS9BdWRpb1RyYWNrUHJpdmF0ZVJlbW90ZS5jcHAKKysrIGIvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9BdWRpb1RyYWNrUHJpdmF0ZVJlbW90ZS5jcHAKQEAgLTM3
LDcgKzM3LDcgQEAKIG5hbWVzcGFjZSBXZWJLaXQgewogCiBBdWRpb1RyYWNrUHJpdmF0ZVJlbW90
ZTo6QXVkaW9UcmFja1ByaXZhdGVSZW1vdGUoR1BVUHJvY2Vzc0Nvbm5lY3Rpb24mIGdwdVByb2Nl
c3NDb25uZWN0aW9uLCBXZWJDb3JlOjpNZWRpYVBsYXllcklkZW50aWZpZXIgcGxheWVySWRlbnRp
ZmllciwgVHJhY2tQcml2YXRlUmVtb3RlSWRlbnRpZmllciBpZGVuZGlmaWVyLCBUcmFja1ByaXZh
dGVSZW1vdGVDb25maWd1cmF0aW9uJiYgY29uZmlndXJhdGlvbikKLSAgICA6IG1fZ3B1UHJvY2Vz
c0Nvbm5lY3Rpb24obWFrZVdlYWtQdHIoZ3B1UHJvY2Vzc0Nvbm5lY3Rpb24pKQorICAgIDogbV9n
cHVQcm9jZXNzQ29ubmVjdGlvbihncHVQcm9jZXNzQ29ubmVjdGlvbikKICAgICAsIG1fcGxheWVy
SWRlbnRpZmllcihwbGF5ZXJJZGVudGlmaWVyKQogICAgICwgbV9pZGVuZGlmaWVyKGlkZW5kaWZp
ZXIpCiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL01l
ZGlhUGxheWVyUHJpdmF0ZVJlbW90ZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BV
L21lZGlhL01lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZS5jcHAKaW5kZXggMDJmNzQ4OWI1MGY1MGRm
ZTBiNzFiMGFmYjVjNjViNzQwMGMwMGJlNS4uZmRmOTZjNTZjNDkxYmIwNjRhYjcyZWMwN2ZlOGU2
ZmY1MTk1ZWM1YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRp
YS9NZWRpYVBsYXllclByaXZhdGVSZW1vdGUuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9HUFUvbWVkaWEvTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlLmNwcApAQCAtMTEwLDcgKzEx
MCw3IEBAIE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTo6TWVkaWFQbGF5ZXJQcml2YXRlUmVtb3Rl
KE1lZGlhUGxheWVyKiBwbGF5ZXIsIE1lZGlhUGxhCiAgICAgLCBtX2xvZ0lkZW50aWZpZXIocGxh
eWVyLT5tZWRpYVBsYXllckxvZ0lkZW50aWZpZXIoKSkKICAgICAsCiAjZW5kaWYKLSAgICAgIG1f
cGxheWVyKG1ha2VXZWFrUHRyKCpwbGF5ZXIpKQorICAgICAgbV9wbGF5ZXIoKnBsYXllcikKICAg
ICAsIG1fbWVkaWFSZXNvdXJjZUxvYWRlcigqcGxheWVyLT5jcmVhdGVSZXNvdXJjZUxvYWRlcigp
KQogI2lmIFBMQVRGT1JNKENPQ09BKQogICAgICwgbV92aWRlb0xheWVyTWFuYWdlcihtYWtlVW5p
cXVlUmVmPFZpZGVvTGF5ZXJNYW5hZ2VyT2JqQz4obG9nZ2VyKCksIGxvZ0lkZW50aWZpZXIoKSkp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL01lZGlhU291
cmNlUHJpdmF0ZVJlbW90ZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlh
L01lZGlhU291cmNlUHJpdmF0ZVJlbW90ZS5jcHAKaW5kZXggMzY1MGJiZGFkM2Q3ZDJmYmViNjUx
MzVjN2QzNmVlMjNhMWVkMDkyZC4uNmEyMGQ3NTBhNDk0NGZiMzhkYTc0ODI4OTcwOWYyMDU1YzU2
NDBkMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9NZWRp
YVNvdXJjZVByaXZhdGVSZW1vdGUuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9H
UFUvbWVkaWEvTWVkaWFTb3VyY2VQcml2YXRlUmVtb3RlLmNwcApAQCAtNTQsMTAgKzU0LDEwIEBA
IFJlZjxNZWRpYVNvdXJjZVByaXZhdGVSZW1vdGU+IE1lZGlhU291cmNlUHJpdmF0ZVJlbW90ZTo6
Y3JlYXRlKEdQVVByb2Nlc3NDb25uZWN0CiB9CiAKIE1lZGlhU291cmNlUHJpdmF0ZVJlbW90ZTo6
TWVkaWFTb3VyY2VQcml2YXRlUmVtb3RlKEdQVVByb2Nlc3NDb25uZWN0aW9uJiBncHVQcm9jZXNz
Q29ubmVjdGlvbiwgUmVtb3RlTWVkaWFTb3VyY2VJZGVudGlmaWVyIGlkZW50aWZpZXIsIFJlbW90
ZU1lZGlhUGxheWVyTUlNRVR5cGVDYWNoZSYgbWltZVR5cGVDYWNoZSwgY29uc3QgTWVkaWFQbGF5
ZXJQcml2YXRlUmVtb3RlJiBtZWRpYVBsYXllclByaXZhdGUsIE1lZGlhU291cmNlUHJpdmF0ZUNs
aWVudCogY2xpZW50KQotICAgIDogbV9ncHVQcm9jZXNzQ29ubmVjdGlvbihtYWtlV2Vha1B0cihn
cHVQcm9jZXNzQ29ubmVjdGlvbikpCisgICAgOiBtX2dwdVByb2Nlc3NDb25uZWN0aW9uKGdwdVBy
b2Nlc3NDb25uZWN0aW9uKQogICAgICwgbV9pZGVudGlmaWVyKGlkZW50aWZpZXIpCiAgICAgLCBt
X21pbWVUeXBlQ2FjaGUobWltZVR5cGVDYWNoZSkKLSAgICAsIG1fbWVkaWFQbGF5ZXJQcml2YXRl
KG1ha2VXZWFrUHRyKG1lZGlhUGxheWVyUHJpdmF0ZSkpCisgICAgLCBtX21lZGlhUGxheWVyUHJp
dmF0ZShtZWRpYVBsYXllclByaXZhdGUpCiAgICAgLCBtX2NsaWVudChjbGllbnQpCiAjaWYgIVJF
TEVBU0VfTE9HX0RJU0FCTEVECiAgICAgLCBtX2xvZ2dlcihtX21lZGlhUGxheWVyUHJpdmF0ZS0+
bWVkaWFQbGF5ZXJMb2dnZXIoKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9HUFUvbWVkaWEvUmVtb3RlQXVkaW9EZXN0aW5hdGlvblByb3h5LmNwcCBiL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlQXVkaW9EZXN0aW5hdGlvblByb3h5LmNwcApp
bmRleCA3NzQwZGE0NWVhNjJmMWIyN2VkZDA2MWQxNTNjNzY3Nzk0ODNkNTkwLi44YWFkYTJmMDZj
MmM5NmZjNjBlN2I2YzNmY2M3OGJkZjQ0N2E3ZGNmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZUF1ZGlvRGVzdGluYXRpb25Qcm94eS5jcHAKKysr
IGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVBdWRpb0Rlc3RpbmF0
aW9uUHJveHkuY3BwCkBAIC0xMDEsNyArMTAxLDcgQEAgdm9pZCBSZW1vdGVBdWRpb0Rlc3RpbmF0
aW9uUHJveHk6OnN0b3BSZW5kZXJpbmdUaHJlYWQoKQogSVBDOjpDb25uZWN0aW9uKiBSZW1vdGVB
dWRpb0Rlc3RpbmF0aW9uUHJveHk6OmNvbm5lY3Rpb24oKQogewogICAgIGlmICghbV9ncHVQcm9j
ZXNzQ29ubmVjdGlvbikgewotICAgICAgICBtX2dwdVByb2Nlc3NDb25uZWN0aW9uID0gbWFrZVdl
YWtQdHIoV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkuZW5zdXJlR1BVUHJvY2Vzc0Nvbm5lY3Rpb24o
KSk7CisgICAgICAgIG1fZ3B1UHJvY2Vzc0Nvbm5lY3Rpb24gPSBXZWJQcm9jZXNzOjpzaW5nbGV0
b24oKS5lbnN1cmVHUFVQcm9jZXNzQ29ubmVjdGlvbigpOwogICAgICAgICBtX2dwdVByb2Nlc3ND
b25uZWN0aW9uLT5hZGRDbGllbnQoKnRoaXMpOwogCiAgICAgICAgIGlmICghbV9ncHVQcm9jZXNz
Q29ubmVjdGlvbi0+Y29ubmVjdGlvbigpLnNlbmRTeW5jKE1lc3NhZ2VzOjpSZW1vdGVBdWRpb0Rl
c3RpbmF0aW9uTWFuYWdlcjo6Q3JlYXRlQXVkaW9EZXN0aW5hdGlvbihtX2lucHV0RGV2aWNlSWQs
IG1fbnVtYmVyT2ZJbnB1dENoYW5uZWxzLCBudW1iZXJPZk91dHB1dENoYW5uZWxzKCksIHNhbXBs
ZVJhdGUoKSwgaGFyZHdhcmVTYW1wbGVSYXRlKCksIG1fcmVuZGVyU2VtYXBob3JlKSwgTWVzc2Fn
ZXM6OlJlbW90ZUF1ZGlvRGVzdGluYXRpb25NYW5hZ2VyOjpDcmVhdGVBdWRpb0Rlc3RpbmF0aW9u
OjpSZXBseShtX2Rlc3RpbmF0aW9uSUQpLCAwKSkgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVBdWRpb0hhcmR3YXJlTGlzdGVuZXIuY3BwIGIv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVBdWRpb0hhcmR3YXJlTGlz
dGVuZXIuY3BwCmluZGV4IGIwNjg5OTE2ZjA1NTJlZTA5YzljNGNlZjMwNDI0NTk4ZTJhNjAwODgu
LjIyMDgxZTdhZTdlMGNmM2Y4MzMxM2I1ODRkYmVlNWQ0N2QwM2IyYjggMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlQXVkaW9IYXJkd2FyZUxpc3Rl
bmVyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZUF1
ZGlvSGFyZHdhcmVMaXN0ZW5lci5jcHAKQEAgLTQ1LDcgKzQ1LDcgQEAgUmVmPFJlbW90ZUF1ZGlv
SGFyZHdhcmVMaXN0ZW5lcj4gUmVtb3RlQXVkaW9IYXJkd2FyZUxpc3RlbmVyOjpjcmVhdGUoQXVk
aW9IYXJkd2EKIFJlbW90ZUF1ZGlvSGFyZHdhcmVMaXN0ZW5lcjo6UmVtb3RlQXVkaW9IYXJkd2Fy
ZUxpc3RlbmVyKEF1ZGlvSGFyZHdhcmVMaXN0ZW5lcjo6Q2xpZW50JiBjbGllbnQsIFdlYlByb2Nl
c3MmIHdlYlByb2Nlc3MpCiAgICAgOiBBdWRpb0hhcmR3YXJlTGlzdGVuZXIoY2xpZW50KQogICAg
ICwgbV9pZGVudGlmaWVyKFJlbW90ZUF1ZGlvSGFyZHdhcmVMaXN0ZW5lcklkZW50aWZpZXI6Omdl
bmVyYXRlKCkpCi0gICAgLCBtX2dwdVByb2Nlc3NDb25uZWN0aW9uKG1ha2VXZWFrUHRyKFdlYlBy
b2Nlc3M6OnNpbmdsZXRvbigpLmVuc3VyZUdQVVByb2Nlc3NDb25uZWN0aW9uKCkpKQorICAgICwg
bV9ncHVQcm9jZXNzQ29ubmVjdGlvbihXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5lbnN1cmVHUFVQ
cm9jZXNzQ29ubmVjdGlvbigpKQogewogICAgIG1fZ3B1UHJvY2Vzc0Nvbm5lY3Rpb24tPmFkZENs
aWVudCgqdGhpcyk7CiAgICAgbV9ncHVQcm9jZXNzQ29ubmVjdGlvbi0+bWVzc2FnZVJlY2VpdmVy
TWFwKCkuYWRkTWVzc2FnZVJlY2VpdmVyKE1lc3NhZ2VzOjpSZW1vdGVBdWRpb0hhcmR3YXJlTGlz
dGVuZXI6Om1lc3NhZ2VSZWNlaXZlck5hbWUoKSwgbV9pZGVudGlmaWVyLnRvVUludDY0KCksICp0
aGlzKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVt
b3RlQXVkaW9TZXNzaW9uLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEv
UmVtb3RlQXVkaW9TZXNzaW9uLmNwcAppbmRleCBjZGE2YzI3YzEwNDI2YzEwZDcwZTY5YmJkNTc3
NDgzMTQxODdlNGJkLi4wOGVmZjk4YWE3YjM0ZTY4MzQ3ZTZkNDc2NzMwMWUxMjVjZWM5YTNkIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZUF1ZGlv
U2Vzc2lvbi5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1v
dGVBdWRpb1Nlc3Npb24uY3BwCkBAIC02Niw3ICs2Niw3IEBAIHZvaWQgUmVtb3RlQXVkaW9TZXNz
aW9uOjpncHVQcm9jZXNzQ29ubmVjdGlvbkRpZENsb3NlKEdQVVByb2Nlc3NDb25uZWN0aW9uJiBj
b25uCiBJUEM6OkNvbm5lY3Rpb24mIFJlbW90ZUF1ZGlvU2Vzc2lvbjo6ZW5zdXJlQ29ubmVjdGlv
bigpCiB7CiAgICAgaWYgKCFtX2dwdVByb2Nlc3NDb25uZWN0aW9uKSB7Ci0gICAgICAgIG1fZ3B1
UHJvY2Vzc0Nvbm5lY3Rpb24gPSBtYWtlV2Vha1B0cihtX3Byb2Nlc3MuZW5zdXJlR1BVUHJvY2Vz
c0Nvbm5lY3Rpb24oKSk7CisgICAgICAgIG1fZ3B1UHJvY2Vzc0Nvbm5lY3Rpb24gPSBtX3Byb2Nl
c3MuZW5zdXJlR1BVUHJvY2Vzc0Nvbm5lY3Rpb24oKTsKICAgICAgICAgbV9ncHVQcm9jZXNzQ29u
bmVjdGlvbi0+YWRkQ2xpZW50KCp0aGlzKTsKICAgICAgICAgbV9ncHVQcm9jZXNzQ29ubmVjdGlv
bi0+bWVzc2FnZVJlY2VpdmVyTWFwKCkuYWRkTWVzc2FnZVJlY2VpdmVyKE1lc3NhZ2VzOjpSZW1v
dGVBdWRpb1Nlc3Npb246Om1lc3NhZ2VSZWNlaXZlck5hbWUoKSwgKnRoaXMpOwogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZUF1ZGlvU291cmNl
UHJvdmlkZXIuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVB
dWRpb1NvdXJjZVByb3ZpZGVyLmNwcAppbmRleCA0NmNkYjAyNzY1M2I2ZTMyNGM4ODUyNDkzOWVm
MmRkNzUwZjRjNzlhLi45M2QzYzE4NWM1ODJmNTcxZWNkMGVmZDliN2JmMWVkNzA5NjljYjBiIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZUF1ZGlv
U291cmNlUHJvdmlkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVk
aWEvUmVtb3RlQXVkaW9Tb3VyY2VQcm92aWRlci5jcHAKQEAgLTUxLDcgKzUxLDcgQEAgUmVmPFJl
bW90ZUF1ZGlvU291cmNlUHJvdmlkZXI+IFJlbW90ZUF1ZGlvU291cmNlUHJvdmlkZXI6OmNyZWF0
ZShXZWJDb3JlOjpNZWRpYVAKIAogUmVtb3RlQXVkaW9Tb3VyY2VQcm92aWRlcjo6UmVtb3RlQXVk
aW9Tb3VyY2VQcm92aWRlcihNZWRpYVBsYXllcklkZW50aWZpZXIgaWRlbnRpZmllciwgV1RGOjpM
b2dnZXJIZWxwZXImIGhlbHBlcikKICAgICA6IG1faWRlbnRpZmllcihpZGVudGlmaWVyKQotICAg
ICwgbV9ncHVQcm9jZXNzQ29ubmVjdGlvbihtYWtlV2Vha1B0cihXZWJQcm9jZXNzOjpzaW5nbGV0
b24oKS5lbnN1cmVHUFVQcm9jZXNzQ29ubmVjdGlvbigpKSkKKyAgICAsIG1fZ3B1UHJvY2Vzc0Nv
bm5lY3Rpb24oV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkuZW5zdXJlR1BVUHJvY2Vzc0Nvbm5lY3Rp
b24oKSkKICNpZiAhUkVMRUFTRV9MT0dfRElTQUJMRUQKICAgICAsIG1fbG9nZ2VyKGhlbHBlci5s
b2dnZXIoKSkKICAgICAsIG1fbG9nSWRlbnRpZmllcihoZWxwZXIubG9nSWRlbnRpZmllcigpKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVDRE0u
Y3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVDRE0uY3BwCmlu
ZGV4IGRhZTQ5NWJmNmRkZDNmMmNmZGRiYjY4ZTgxZjUyN2ViNWQ4ODg0ZWEuLmZhOTQwMjVlZDc0
NzMwZDI4ZTcxNjQ2Mjg1ZjllNWJhNjUzYjhmMTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlQ0RNLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZUNETS5jcHAKQEAgLTExOCw3ICsxMTgsNyBAQCBSZWZQ
dHI8Q0RNSW5zdGFuY2U+IFJlbW90ZUNETTo6Y3JlYXRlSW5zdGFuY2UoKQogICAgIG1fZmFjdG9y
eS0+Z3B1UHJvY2Vzc0Nvbm5lY3Rpb24oKS5jb25uZWN0aW9uKCkuc2VuZFN5bmMoTWVzc2FnZXM6
OlJlbW90ZUNETVByb3h5OjpDcmVhdGVJbnN0YW5jZSgpLCBNZXNzYWdlczo6UmVtb3RlQ0RNUHJv
eHk6OkNyZWF0ZUluc3RhbmNlOjpSZXBseShpZGVudGlmaWVyLCBjb25maWd1cmF0aW9uKSwgbV9p
ZGVudGlmaWVyKTsKICAgICBpZiAoIWlkZW50aWZpZXIpCiAgICAgICAgIHJldHVybiBudWxscHRy
OwotICAgIHJldHVybiBSZW1vdGVDRE1JbnN0YW5jZTo6Y3JlYXRlKG1ha2VXZWFrUHRyKG1fZmFj
dG9yeS5nZXQoKSksIFdURk1vdmUoaWRlbnRpZmllciksIFdURk1vdmUoY29uZmlndXJhdGlvbikp
OworICAgIHJldHVybiBSZW1vdGVDRE1JbnN0YW5jZTo6Y3JlYXRlKG1fZmFjdG9yeS5nZXQoKSwg
V1RGTW92ZShpZGVudGlmaWVyKSwgV1RGTW92ZShjb25maWd1cmF0aW9uKSk7CiB9CiAKIHZvaWQg
UmVtb3RlQ0RNOjpsb2FkQW5kSW5pdGlhbGl6ZSgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZUNETUZhY3RvcnkuY3BwIGIvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVDRE1GYWN0b3J5LmNwcAppbmRleCA1OTEwYWU2
YjE2ZTAwNGFjYjVmMGYyNDE4OWUwMGE3YTQ4ZWNmMjkwLi44NmYzOGQ0YTMyMTAwMWFlNjUxZjI2
ZGMwNmZhOWE4MjEyYjJmNzE5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
R1BVL21lZGlhL1JlbW90ZUNETUZhY3RvcnkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9HUFUvbWVkaWEvUmVtb3RlQ0RNRmFjdG9yeS5jcHAKQEAgLTc1LDcgKzc1LDcgQEAgc3Rk
Ojp1bmlxdWVfcHRyPENETVByaXZhdGU+IFJlbW90ZUNETUZhY3Rvcnk6OmNyZWF0ZUNETShjb25z
dCBTdHJpbmcmIGtleVN5c3RlbSkKICAgICBncHVQcm9jZXNzQ29ubmVjdGlvbigpLmNvbm5lY3Rp
b24oKS5zZW5kU3luYyhNZXNzYWdlczo6UmVtb3RlQ0RNRmFjdG9yeVByb3h5OjpDcmVhdGVDRE0o
a2V5U3lzdGVtKSwgTWVzc2FnZXM6OlJlbW90ZUNETUZhY3RvcnlQcm94eTo6Q3JlYXRlQ0RNOjpS
ZXBseShpZGVudGlmaWVyLCBjb25maWd1cmF0aW9uKSwgeyB9KTsKICAgICBpZiAoIWlkZW50aWZp
ZXIpCiAgICAgICAgIHJldHVybiBudWxscHRyOwotICAgIHJldHVybiBSZW1vdGVDRE06OmNyZWF0
ZShtYWtlV2Vha1B0cih0aGlzKSwgV1RGTW92ZShpZGVudGlmaWVyKSwgV1RGTW92ZShjb25maWd1
cmF0aW9uKSk7CisgICAgcmV0dXJuIFJlbW90ZUNETTo6Y3JlYXRlKCp0aGlzLCBXVEZNb3ZlKGlk
ZW50aWZpZXIpLCBXVEZNb3ZlKGNvbmZpZ3VyYXRpb24pKTsKIH0KIAogdm9pZCBSZW1vdGVDRE1G
YWN0b3J5OjphZGRTZXNzaW9uKFJlZjxSZW1vdGVDRE1JbnN0YW5jZVNlc3Npb24+JiYgc2Vzc2lv
bikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3Rl
Q0RNSW5zdGFuY2UuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1v
dGVDRE1JbnN0YW5jZS5jcHAKaW5kZXggZWRjODk0ZWU5MzNiOGVhYzYxOGQ5YTVmNjk3NmU5YzRk
MjgzODY4My4uYjVkZWEyMWU5OTVhNzM3ZjAzNmY2NDUzOGMxZmIzZWNiNWU2YmI1NSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVDRE1JbnN0YW5j
ZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVDRE1J
bnN0YW5jZS5jcHAKQEAgLTEwNSw3ICsxMDUsNyBAQCBSZWZQdHI8V2ViQ29yZTo6Q0RNSW5zdGFu
Y2VTZXNzaW9uPiBSZW1vdGVDRE1JbnN0YW5jZTo6Y3JlYXRlU2Vzc2lvbigpCiAgICAgbV9mYWN0
b3J5LT5ncHVQcm9jZXNzQ29ubmVjdGlvbigpLmNvbm5lY3Rpb24oKS5zZW5kU3luYyhNZXNzYWdl
czo6UmVtb3RlQ0RNSW5zdGFuY2VQcm94eTo6Q3JlYXRlU2Vzc2lvbigpLCBNZXNzYWdlczo6UmVt
b3RlQ0RNSW5zdGFuY2VQcm94eTo6Q3JlYXRlU2Vzc2lvbjo6UmVwbHkoaWRlbnRpZmllciksIG1f
aWRlbnRpZmllcik7CiAgICAgaWYgKCFpZGVudGlmaWVyKQogICAgICAgICByZXR1cm4gbnVsbHB0
cjsKLSAgICBhdXRvIHNlc3Npb24gPSBSZW1vdGVDRE1JbnN0YW5jZVNlc3Npb246OmNyZWF0ZSht
YWtlV2Vha1B0cihtX2ZhY3RvcnkuZ2V0KCkpLCBXVEZNb3ZlKGlkZW50aWZpZXIpKTsKKyAgICBh
dXRvIHNlc3Npb24gPSBSZW1vdGVDRE1JbnN0YW5jZVNlc3Npb246OmNyZWF0ZShtX2ZhY3Rvcnku
Z2V0KCksIFdURk1vdmUoaWRlbnRpZmllcikpOwogICAgIG1fZmFjdG9yeS0+YWRkU2Vzc2lvbihz
ZXNzaW9uLmNvcHlSZWYoKSk7CiAgICAgcmV0dXJuIHNlc3Npb247CiB9CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZUltYWdlRGVjb2RlckFWRi5j
cHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZUltYWdlRGVjb2Rl
ckFWRi5jcHAKaW5kZXggOGQ2NzVlMTVlMzdiYWRjNGZhYmY5YTMzNmM2ZjY5N2M0YWEzYzAxOS4u
OWEyMTlhNTQ0ZTU1MzgzZjU0ZTcxZGFiZDM1NGNjNDQwYTQxNDJiOSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVJbWFnZURlY29kZXJBVkYuY3Bw
CisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlSW1hZ2VEZWNv
ZGVyQVZGLmNwcApAQCAtNDcsNyArNDcsNyBAQCB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIAog
UmVtb3RlSW1hZ2VEZWNvZGVyQVZGOjpSZW1vdGVJbWFnZURlY29kZXJBVkYoUmVtb3RlSW1hZ2VE
ZWNvZGVyQVZGTWFuYWdlciYgbWFuYWdlciwgY29uc3QgV2ViQ29yZTo6SW1hZ2VEZWNvZGVySWRl
bnRpZmllciYgaWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiBtaW1lVHlwZSkKICAgICA6IEltYWdl
RGVjb2RlcigpCi0gICAgLCBtX2dwdVByb2Nlc3NDb25uZWN0aW9uKG1ha2VXZWFrUHRyKG1hbmFn
ZXIuZW5zdXJlR1BVUHJvY2Vzc0Nvbm5lY3Rpb24oKSkpCisgICAgLCBtX2dwdVByb2Nlc3NDb25u
ZWN0aW9uKG1hbmFnZXIuZW5zdXJlR1BVUHJvY2Vzc0Nvbm5lY3Rpb24oKSkKICAgICAsIG1fbWFu
YWdlcihtYW5hZ2VyKQogICAgICwgbV9pZGVudGlmaWVyKGlkZW50aWZpZXIpCiAgICAgLCBtX21p
bWVUeXBlKG1pbWVUeXBlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQ
VS9tZWRpYS9SZW1vdGVJbWFnZURlY29kZXJBVkZNYW5hZ2VyLmNwcCBiL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlSW1hZ2VEZWNvZGVyQVZGTWFuYWdlci5jcHAKaW5k
ZXggNzZlOTczNGVkMTA3NTRjMjZhM2M2ODJjNWE4ZjY2OTI0ODY5Yzc4OC4uNDFkNTM4ODAyM2Qz
OTE0OTUyMTgzNWY2ODhkZTRkNDhmNjVkNzY3ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVJbWFnZURlY29kZXJBVkZNYW5hZ2VyLmNwcAorKysg
Yi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZUltYWdlRGVjb2RlckFW
Rk1hbmFnZXIuY3BwCkBAIC01MCw3ICs1MCw3IEBAIFJlZlB0cjxSZW1vdGVJbWFnZURlY29kZXJB
VkY+IFJlbW90ZUltYWdlRGVjb2RlckFWRk1hbmFnZXI6OmNyZWF0ZUltYWdlRGVjb2RlcihTCiAg
ICAgICAgIHJldHVybiBudWxscHRyOwogCiAgICAgYXV0byByZW1vdGVJbWFnZURlY29kZXIgPSBS
ZW1vdGVJbWFnZURlY29kZXJBVkY6OmNyZWF0ZSgqdGhpcywgKmltYWdlRGVjb2RlcklkZW50aWZp
ZXIsIGRhdGEsIG1pbWVUeXBlKTsKLSAgICBtX3JlbW90ZUltYWdlRGVjb2RlcnMuYWRkKCppbWFn
ZURlY29kZXJJZGVudGlmaWVyLCBtYWtlV2Vha1B0cihyZW1vdGVJbWFnZURlY29kZXIuZ2V0KCkp
KTsKKyAgICBtX3JlbW90ZUltYWdlRGVjb2RlcnMuYWRkKCppbWFnZURlY29kZXJJZGVudGlmaWVy
LCByZW1vdGVJbWFnZURlY29kZXIpOwogCiAgICAgcmV0dXJuIHJlbW90ZUltYWdlRGVjb2RlcjsK
IH0KQEAgLTkwLDcgKzkwLDcgQEAgY29uc3QgY2hhciogIFJlbW90ZUltYWdlRGVjb2RlckFWRk1h
bmFnZXI6OnN1cHBsZW1lbnROYW1lKCkKIEdQVVByb2Nlc3NDb25uZWN0aW9uJiBSZW1vdGVJbWFn
ZURlY29kZXJBVkZNYW5hZ2VyOjplbnN1cmVHUFVQcm9jZXNzQ29ubmVjdGlvbigpCiB7CiAgICAg
aWYgKCFtX2dwdVByb2Nlc3NDb25uZWN0aW9uKSB7Ci0gICAgICAgIG1fZ3B1UHJvY2Vzc0Nvbm5l
Y3Rpb24gPSBtYWtlV2Vha1B0cihtX3Byb2Nlc3MuZW5zdXJlR1BVUHJvY2Vzc0Nvbm5lY3Rpb24o
KSk7CisgICAgICAgIG1fZ3B1UHJvY2Vzc0Nvbm5lY3Rpb24gPSBtX3Byb2Nlc3MuZW5zdXJlR1BV
UHJvY2Vzc0Nvbm5lY3Rpb24oKTsKICAgICAgICAgbV9ncHVQcm9jZXNzQ29ubmVjdGlvbi0+YWRk
Q2xpZW50KCp0aGlzKTsKICAgICAgICAgbV9ncHVQcm9jZXNzQ29ubmVjdGlvbi0+bWVzc2FnZVJl
Y2VpdmVyTWFwKCkuYWRkTWVzc2FnZVJlY2VpdmVyKE1lc3NhZ2VzOjpSZW1vdGVJbWFnZURlY29k
ZXJBVkZNYW5hZ2VyOjptZXNzYWdlUmVjZWl2ZXJOYW1lKCksICp0aGlzKTsKICAgICB9CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZUxlZ2FjeUNE
TUZhY3RvcnkuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVM
ZWdhY3lDRE1GYWN0b3J5LmNwcAppbmRleCA2YWY3MDBiNWNhZDJlMmUyNWM0NGQ2Mjc2ZGU4MzM1
MGE0YThhMDU3Li40YWVkYjI3YTk0ZmEwYjRiMzBhZjRhNDQzNDFiMTgzZTI2ZTA2NjBlIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZUxlZ2FjeUNE
TUZhY3RvcnkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVt
b3RlTGVnYWN5Q0RNRmFjdG9yeS5jcHAKQEAgLTExNiw4ICsxMTYsOCBAQCBzdGQ6OnVuaXF1ZV9w
dHI8Q0RNUHJpdmF0ZUludGVyZmFjZT4gUmVtb3RlTGVnYWN5Q0RNRmFjdG9yeTo6Y3JlYXRlQ0RN
KFdlYkNvcmU6OgogICAgIGdwdVByb2Nlc3NDb25uZWN0aW9uKCkuY29ubmVjdGlvbigpLnNlbmRT
eW5jKE1lc3NhZ2VzOjpSZW1vdGVMZWdhY3lDRE1GYWN0b3J5UHJveHk6OkNyZWF0ZUNETShjZG0t
PmtleVN5c3RlbSgpLCBXVEZNb3ZlKHBsYXllcklkKSksIE1lc3NhZ2VzOjpSZW1vdGVMZWdhY3lD
RE1GYWN0b3J5UHJveHk6OkNyZWF0ZUNETTo6UmVwbHkoaWRlbnRpZmllciksIHsgfSk7CiAgICAg
aWYgKCFpZGVudGlmaWVyKQogICAgICAgICByZXR1cm4gbnVsbHB0cjsKLSAgICBhdXRvIHJlbW90
ZUNETSA9IFJlbW90ZUxlZ2FjeUNETTo6Y3JlYXRlKG1ha2VXZWFrUHRyKHRoaXMpLCBpZGVudGlm
aWVyKTsKLSAgICBtX2NkbXMuc2V0KGlkZW50aWZpZXIsIG1ha2VXZWFrUHRyKHJlbW90ZUNETS5n
ZXQoKSkpOworICAgIGF1dG8gcmVtb3RlQ0RNID0gUmVtb3RlTGVnYWN5Q0RNOjpjcmVhdGUoKnRo
aXMsIGlkZW50aWZpZXIpOworICAgIG1fY2Rtcy5zZXQoaWRlbnRpZmllciwgcmVtb3RlQ0RNLmdl
dCgpKTsKICAgICByZXR1cm4gcmVtb3RlQ0RNOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZU1lZGlhUGxheWVyTWFuYWdlci5jcHAgYi9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZU1lZGlhUGxheWVyTWFuYWdl
ci5jcHAKaW5kZXggOGU5ZWMzYTUwOWVhMjQwOWE0MjQxMWI3OGJkOWIzZmZkYjczZTE4Ny4uNThm
YzFlNGVlMjU1ZWQ1ODMwYzk5NmRmZTY4YmYyYWJkMzUzZWFmOCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVNZWRpYVBsYXllck1hbmFnZXIuY3Bw
CisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlTWVkaWFQbGF5
ZXJNYW5hZ2VyLmNwcApAQCAtMTcwLDcgKzE3MCw3IEBAIHN0ZDo6dW5pcXVlX3B0cjxNZWRpYVBs
YXllclByaXZhdGVJbnRlcmZhY2U+IFJlbW90ZU1lZGlhUGxheWVyTWFuYWdlcjo6Y3JlYXRlUmVt
CiAgICAgZ3B1UHJvY2Vzc0Nvbm5lY3Rpb24oKS5jb25uZWN0aW9uKCkuc2VuZChNZXNzYWdlczo6
UmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyUHJveHk6OkNyZWF0ZU1lZGlhUGxheWVyKGlkZW50aWZp
ZXIsIHJlbW90ZUVuZ2luZUlkZW50aWZpZXIsIHByb3h5Q29uZmlndXJhdGlvbiksIDApOwogCiAg
ICAgYXV0byByZW1vdGVQbGF5ZXIgPSBNZWRpYVBsYXllclByaXZhdGVSZW1vdGU6OmNyZWF0ZShw
bGF5ZXIsIHJlbW90ZUVuZ2luZUlkZW50aWZpZXIsIGlkZW50aWZpZXIsICp0aGlzKTsKLSAgICBt
X3BsYXllcnMuYWRkKGlkZW50aWZpZXIsIG1ha2VXZWFrUHRyKCpyZW1vdGVQbGF5ZXIpKTsKKyAg
ICBtX3BsYXllcnMuYWRkKGlkZW50aWZpZXIsICpyZW1vdGVQbGF5ZXIpOwogCiAgICAgcmV0dXJu
IHJlbW90ZVBsYXllcjsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9H
UFUvbWVkaWEvUmVtb3RlUmVtb3RlQ29tbWFuZExpc3RlbmVyLmNwcCBiL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlUmVtb3RlQ29tbWFuZExpc3RlbmVyLmNwcAppbmRl
eCA2NDk0YjI5OTg3ZjY2MWUwM2ZlYjJmMTAyZDhlYmFhNjc0OTg3ODgwLi43NzEwYTNhNDQxMDAx
YWZjNmRmZDBjZGQyNWNhM2I4ZWVmN2E4ZmFlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZVJlbW90ZUNvbW1hbmRMaXN0ZW5lci5jcHAKKysrIGIv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVSZW1vdGVDb21tYW5kTGlz
dGVuZXIuY3BwCkBAIC02Miw3ICs2Miw3IEBAIFJlbW90ZVJlbW90ZUNvbW1hbmRMaXN0ZW5lcjo6
flJlbW90ZVJlbW90ZUNvbW1hbmRMaXN0ZW5lcigpCiBHUFVQcm9jZXNzQ29ubmVjdGlvbiYgUmVt
b3RlUmVtb3RlQ29tbWFuZExpc3RlbmVyOjplbnN1cmVHUFVQcm9jZXNzQ29ubmVjdGlvbigpCiB7
CiAgICAgaWYgKCFtX2dwdVByb2Nlc3NDb25uZWN0aW9uKSB7Ci0gICAgICAgIG1fZ3B1UHJvY2Vz
c0Nvbm5lY3Rpb24gPSBtYWtlV2Vha1B0cihtX3Byb2Nlc3MuZW5zdXJlR1BVUHJvY2Vzc0Nvbm5l
Y3Rpb24oKSk7CisgICAgICAgIG1fZ3B1UHJvY2Vzc0Nvbm5lY3Rpb24gPSBtX3Byb2Nlc3MuZW5z
dXJlR1BVUHJvY2Vzc0Nvbm5lY3Rpb24oKTsKICAgICAgICAgbV9ncHVQcm9jZXNzQ29ubmVjdGlv
bi0+YWRkQ2xpZW50KCp0aGlzKTsKICAgICAgICAgbV9ncHVQcm9jZXNzQ29ubmVjdGlvbi0+bWVz
c2FnZVJlY2VpdmVyTWFwKCkuYWRkTWVzc2FnZVJlY2VpdmVyKE1lc3NhZ2VzOjpSZW1vdGVSZW1v
dGVDb21tYW5kTGlzdGVuZXI6Om1lc3NhZ2VSZWNlaXZlck5hbWUoKSwgbV9pZGVudGlmaWVyLnRv
VUludDY0KCksICp0aGlzKTsKICAgICAgICAgbV9ncHVQcm9jZXNzQ29ubmVjdGlvbi0+Y29ubmVj
dGlvbigpLnNlbmQoTWVzc2FnZXM6OkdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OkNyZWF0ZVJl
bW90ZUNvbW1hbmRMaXN0ZW5lcihtX2lkZW50aWZpZXIpLCB7IH0pOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9Tb3VyY2VCdWZmZXJQcml2YXRlUmVtb3Rl
LmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvU291cmNlQnVmZmVyUHJp
dmF0ZVJlbW90ZS5jcHAKaW5kZXggYWI1N2NlYjkwNTA5MzkzOTJmNGVhMGFhZThjODFlMjBhNDcy
MzkwNC4uOTY2ZmM5M2I3N2FmYWEzZTYyMDhkN2FiYTVhZWQyYzdhOTRjNzRiMiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9Tb3VyY2VCdWZmZXJQcml2YXRl
UmVtb3RlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1NvdXJj
ZUJ1ZmZlclByaXZhdGVSZW1vdGUuY3BwCkBAIC01NCwxMCArNTQsMTAgQEAgUmVmPFNvdXJjZUJ1
ZmZlclByaXZhdGVSZW1vdGU+IFNvdXJjZUJ1ZmZlclByaXZhdGVSZW1vdGU6OmNyZWF0ZShHUFVQ
cm9jZXNzQ29ubmUKIH0KIAogU291cmNlQnVmZmVyUHJpdmF0ZVJlbW90ZTo6U291cmNlQnVmZmVy
UHJpdmF0ZVJlbW90ZShHUFVQcm9jZXNzQ29ubmVjdGlvbiYgZ3B1UHJvY2Vzc0Nvbm5lY3Rpb24s
IFJlbW90ZVNvdXJjZUJ1ZmZlcklkZW50aWZpZXIgcmVtb3RlU291cmNlQnVmZmVySWRlbnRpZmll
ciwgY29uc3QgTWVkaWFTb3VyY2VQcml2YXRlUmVtb3RlJiBtZWRpYVNvdXJjZVByaXZhdGUsIGNv
bnN0IE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZSYgbWVkaWFQbGF5ZXJQcml2YXRlKQotICAgIDog
bV9ncHVQcm9jZXNzQ29ubmVjdGlvbihtYWtlV2Vha1B0cihncHVQcm9jZXNzQ29ubmVjdGlvbikp
CisgICAgOiBtX2dwdVByb2Nlc3NDb25uZWN0aW9uKGdwdVByb2Nlc3NDb25uZWN0aW9uKQogICAg
ICwgbV9yZW1vdGVTb3VyY2VCdWZmZXJJZGVudGlmaWVyKHJlbW90ZVNvdXJjZUJ1ZmZlcklkZW50
aWZpZXIpCi0gICAgLCBtX21lZGlhU291cmNlUHJpdmF0ZShtYWtlV2Vha1B0cihtZWRpYVNvdXJj
ZVByaXZhdGUpKQotICAgICwgbV9tZWRpYVBsYXllclByaXZhdGUobWFrZVdlYWtQdHIobWVkaWFQ
bGF5ZXJQcml2YXRlKSkKKyAgICAsIG1fbWVkaWFTb3VyY2VQcml2YXRlKG1lZGlhU291cmNlUHJp
dmF0ZSkKKyAgICAsIG1fbWVkaWFQbGF5ZXJQcml2YXRlKG1lZGlhUGxheWVyUHJpdmF0ZSkKICNp
ZiAhUkVMRUFTRV9MT0dfRElTQUJMRUQKICAgICAsIG1fbG9nZ2VyKG1fbWVkaWFTb3VyY2VQcml2
YXRlLT5sb2dnZXIoKSkKICAgICAsIG1fbG9nSWRlbnRpZmllcihtX21lZGlhU291cmNlUHJpdmF0
ZS0+bmV4dFNvdXJjZUJ1ZmZlckxvZ0lkZW50aWZpZXIoKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvVGV4dFRyYWNrUHJpdmF0ZVJlbW90ZS5jcHAgYi9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1RleHRUcmFja1ByaXZhdGVSZW1vdGUu
Y3BwCmluZGV4IGY3ZDcyM2M2M2JmYzYyYWM1N2FhYTAzNWFmMmVjNThkZGYxMjRmMzAuLjcwY2Rj
YWJhMDlkMWFjNDBkNzIzODI4MWEzNDZmZTJlZGFjYmRlM2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvVGV4dFRyYWNrUHJpdmF0ZVJlbW90ZS5jcHAKKysr
IGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9UZXh0VHJhY2tQcml2YXRlUmVt
b3RlLmNwcApAQCAtMzksNyArMzksNyBAQCB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIAogVGV4
dFRyYWNrUHJpdmF0ZVJlbW90ZTo6VGV4dFRyYWNrUHJpdmF0ZVJlbW90ZShHUFVQcm9jZXNzQ29u
bmVjdGlvbiYgZ3B1UHJvY2Vzc0Nvbm5lY3Rpb24sIE1lZGlhUGxheWVySWRlbnRpZmllciBwbGF5
ZXJJZGVudGlmaWVyLCBUcmFja1ByaXZhdGVSZW1vdGVJZGVudGlmaWVyIGlkZW5kaWZpZXIsIFRl
eHRUcmFja1ByaXZhdGVSZW1vdGVDb25maWd1cmF0aW9uJiYgY29uZmlndXJhdGlvbikKICAgICA6
IFdlYkNvcmU6OkluYmFuZFRleHRUcmFja1ByaXZhdGUoY29uZmlndXJhdGlvbi5jdWVGb3JtYXQp
Ci0gICAgLCBtX2dwdVByb2Nlc3NDb25uZWN0aW9uKG1ha2VXZWFrUHRyKGdwdVByb2Nlc3NDb25u
ZWN0aW9uKSkKKyAgICAsIG1fZ3B1UHJvY2Vzc0Nvbm5lY3Rpb24oZ3B1UHJvY2Vzc0Nvbm5lY3Rp
b24pCiAgICAgLCBtX3BsYXllcklkZW50aWZpZXIocGxheWVySWRlbnRpZmllcikKICAgICAsIG1f
aWRlbnRpZmllcihpZGVuZGlmaWVyKQogewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL0dQVS9tZWRpYS9WaWRlb1RyYWNrUHJpdmF0ZVJlbW90ZS5jcHAgYi9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1ZpZGVvVHJhY2tQcml2YXRlUmVtb3RlLmNwcAppbmRl
eCAxNWIyN2YxOTg3OGVkYzk0NTE3ZWYwYmI2MmMzYjRkOTRhZGI2ZTJkLi5hNmY5OGQ4NTA0NWY5
NmYyMDllMGU4NWQ0YTVlZjUwODc3MzMxMzcxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvR1BVL21lZGlhL1ZpZGVvVHJhY2tQcml2YXRlUmVtb3RlLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1ZpZGVvVHJhY2tQcml2YXRlUmVtb3RlLmNw
cApAQCAtMzYsNyArMzYsNyBAQAogbmFtZXNwYWNlIFdlYktpdCB7CiAKIFZpZGVvVHJhY2tQcml2
YXRlUmVtb3RlOjpWaWRlb1RyYWNrUHJpdmF0ZVJlbW90ZShHUFVQcm9jZXNzQ29ubmVjdGlvbiYg
Z3B1UHJvY2Vzc0Nvbm5lY3Rpb24sIFdlYkNvcmU6Ok1lZGlhUGxheWVySWRlbnRpZmllciBwbGF5
ZXJJZGVudGlmaWVyLCBUcmFja1ByaXZhdGVSZW1vdGVJZGVudGlmaWVyIGlkZW5kaWZpZXIsIFRy
YWNrUHJpdmF0ZVJlbW90ZUNvbmZpZ3VyYXRpb24mJiBjb25maWd1cmF0aW9uKQotICAgIDogbV9n
cHVQcm9jZXNzQ29ubmVjdGlvbihtYWtlV2Vha1B0cihncHVQcm9jZXNzQ29ubmVjdGlvbikpCisg
ICAgOiBtX2dwdVByb2Nlc3NDb25uZWN0aW9uKGdwdVByb2Nlc3NDb25uZWN0aW9uKQogICAgICwg
bV9wbGF5ZXJJZGVudGlmaWVyKHBsYXllcklkZW50aWZpZXIpCiAgICAgLCBtX2lkZW5kaWZpZXIo
aWRlbmRpZmllcikKIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUv
bWVkaWEvY29jb2EvVmlkZW9MYXllclJlbW90ZUNvY29hLm1tIGIvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL0dQVS9tZWRpYS9jb2NvYS9WaWRlb0xheWVyUmVtb3RlQ29jb2EubW0KaW5kZXggM2Fl
NjVlMTFlMGJkNGY1NTM2MGFmZGI4MzY4M2RiMDBhYWUxOWM0Yy4uNGMwMTZkMDk0ZTA3NGY2NTY0
YzBkMDNkOGYzMmM3MTY2NDg4NjJkYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL0dQVS9tZWRpYS9jb2NvYS9WaWRlb0xheWVyUmVtb3RlQ29jb2EubW0KKysrIGIvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9jb2NvYS9WaWRlb0xheWVyUmVtb3RlQ29jb2Eu
bW0KQEAgLTc4LDcgKzc4LDcgQEAgLSAoV2ViS2l0OjpNZWRpYVBsYXllclByaXZhdGVSZW1vdGUq
KW1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZQogCiAtICh2b2lkKXNldE1lZGlhUGxheWVyUHJpdmF0
ZVJlbW90ZTooV2ViS2l0OjpNZWRpYVBsYXllclByaXZhdGVSZW1vdGUqKW1lZGlhUGxheWVyUHJp
dmF0ZVJlbW90ZQogewotICAgIF9tZWRpYVBsYXllclByaXZhdGVSZW1vdGUgPSBtYWtlV2Vha1B0
cigqbWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlKTsKKyAgICBfbWVkaWFQbGF5ZXJQcml2YXRlUmVt
b3RlID0gKm1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTsKIH0KIAogLSAoV2ViQ29yZTo6TWVkaWFQ
bGF5ZXJFbnVtczo6VmlkZW9HcmF2aXR5KXZpZGVvR3Jhdml0eQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9pb3MvUmVtb3RlTWVkaWFTZXNzaW9uSGVscGVy
LmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvaW9zL1JlbW90ZU1lZGlh
U2Vzc2lvbkhlbHBlci5jcHAKaW5kZXggNDg2MmFmNzY0NTY3ZDZiZjZhZmY2OGQyODc4ZjhmOTRl
MTk1OGYyNi4uOTE2NDA2YmJlMjQyN2M3ZGVhMDc0Y2YxZmViNWQyMTBmYTlkZDFlYSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9pb3MvUmVtb3RlTWVkaWFT
ZXNzaW9uSGVscGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlh
L2lvcy9SZW1vdGVNZWRpYVNlc3Npb25IZWxwZXIuY3BwCkBAIC00OSw3ICs0OSw3IEBAIFJlbW90
ZU1lZGlhU2Vzc2lvbkhlbHBlcjo6UmVtb3RlTWVkaWFTZXNzaW9uSGVscGVyKFdlYlByb2Nlc3Mm
IHByb2Nlc3MpCiBJUEM6OkNvbm5lY3Rpb24mIFJlbW90ZU1lZGlhU2Vzc2lvbkhlbHBlcjo6ZW5z
dXJlQ29ubmVjdGlvbigpCiB7CiAgICAgaWYgKCFtX2dwdVByb2Nlc3NDb25uZWN0aW9uKSB7Ci0g
ICAgICAgIG1fZ3B1UHJvY2Vzc0Nvbm5lY3Rpb24gPSBtYWtlV2Vha1B0cihtX3Byb2Nlc3MuZW5z
dXJlR1BVUHJvY2Vzc0Nvbm5lY3Rpb24oKSk7CisgICAgICAgIG1fZ3B1UHJvY2Vzc0Nvbm5lY3Rp
b24gPSBtX3Byb2Nlc3MuZW5zdXJlR1BVUHJvY2Vzc0Nvbm5lY3Rpb24oKTsKICAgICAgICAgbV9n
cHVQcm9jZXNzQ29ubmVjdGlvbi0+YWRkQ2xpZW50KCp0aGlzKTsKICAgICAgICAgbV9ncHVQcm9j
ZXNzQ29ubmVjdGlvbi0+bWVzc2FnZVJlY2VpdmVyTWFwKCkuYWRkTWVzc2FnZVJlY2VpdmVyKE1l
c3NhZ2VzOjpSZW1vdGVNZWRpYVNlc3Npb25IZWxwZXI6Om1lc3NhZ2VSZWNlaXZlck5hbWUoKSwg
KnRoaXMpOwogICAgICAgICBtX2dwdVByb2Nlc3NDb25uZWN0aW9uLT5jb25uZWN0aW9uKCkuc2Vu
ZChNZXNzYWdlczo6R1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6RW5zdXJlTWVkaWFTZXNzaW9u
SGVscGVyKCksIHsgfSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BV
L3dlYnJ0Yy9BdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlckludGVybmFsVW5pdE1hbmFnZXIu
Y3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS93ZWJydGMvQXVkaW9NZWRpYVN0cmVh
bVRyYWNrUmVuZGVyZXJJbnRlcm5hbFVuaXRNYW5hZ2VyLmNwcAppbmRleCBlZGY4NjdlODE1M2Uz
MGQ2NzA5YTU2NWI2NjRjN2VjZjE3Y2JjMjZmLi42ODUxZDFhOTQ0OTcwNjI5MTU1ZjZmMmM5NmE0
N2ExMjk4NzI1MGY1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL3dl
YnJ0Yy9BdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlckludGVybmFsVW5pdE1hbmFnZXIuY3Bw
CisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvd2VicnRjL0F1ZGlvTWVkaWFTdHJl
YW1UcmFja1JlbmRlcmVySW50ZXJuYWxVbml0TWFuYWdlci5jcHAKQEAgLTg5LDcgKzg5LDcgQEAg
cHJpdmF0ZToKIAogdm9pZCBBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlckludGVybmFsVW5p
dE1hbmFnZXI6OmFkZChQcm94eSYgcHJveHkpCiB7Ci0gICAgbV9wcm94aWVzLmFkZChwcm94eS5p
ZGVudGlmaWVyKCksIG1ha2VXZWFrUHRyKHByb3h5KSk7CisgICAgbV9wcm94aWVzLmFkZChwcm94
eS5pZGVudGlmaWVyKCksIHByb3h5KTsKIH0KIAogdm9pZCBBdWRpb01lZGlhU3RyZWFtVHJhY2tS
ZW5kZXJlckludGVybmFsVW5pdE1hbmFnZXI6OnJlbW92ZShQcm94eSYgcHJveHkpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL3dlYnJ0Yy9TYW1wbGVCdWZmZXJEaXNw
bGF5TGF5ZXIuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS93ZWJydGMvU2FtcGxl
QnVmZmVyRGlzcGxheUxheWVyLmNwcAppbmRleCBmZGJhMGRiYzdlNjIwMmRmMGI3NWUxNTllOGZk
Y2UyZjkyNGQ2YTcyLi5iZTkxOWNkZDFmMDA4MWY1MzY5NTQxYTIxNzMwM2YyNGU2MDIyYTBjIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL3dlYnJ0Yy9TYW1wbGVCdWZm
ZXJEaXNwbGF5TGF5ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvd2Vi
cnRjL1NhbXBsZUJ1ZmZlckRpc3BsYXlMYXllci5jcHAKQEAgLTQ5LDcgKzQ5LDcgQEAgc3RkOjp1
bmlxdWVfcHRyPFNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllcj4gU2FtcGxlQnVmZmVyRGlzcGxheUxh
eWVyOjpjcmVhdGUoU2FtcGwKIAogU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyOjpTYW1wbGVCdWZm
ZXJEaXNwbGF5TGF5ZXIoU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyTWFuYWdlciYgbWFuYWdlciwg
V2ViQ29yZTo6U2FtcGxlQnVmZmVyRGlzcGxheUxheWVyOjpDbGllbnQmIGNsaWVudCkKICAgICA6
IFdlYkNvcmU6OlNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllcihjbGllbnQpCi0gICAgLCBtX21hbmFn
ZXIobWFrZVdlYWtQdHIobWFuYWdlcikpCisgICAgLCBtX21hbmFnZXIobWFuYWdlcikKICAgICAs
IG1fY29ubmVjdGlvbihXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5lbnN1cmVHUFVQcm9jZXNzQ29u
bmVjdGlvbigpLmNvbm5lY3Rpb24oKSkKICAgICAsIG1faWRlbnRpZmllcihTYW1wbGVCdWZmZXJE
aXNwbGF5TGF5ZXJJZGVudGlmaWVyOjpnZW5lcmF0ZSgpKQogewpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL0dQVS93ZWJydGMvU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyTWFu
YWdlci5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL3dlYnJ0Yy9TYW1wbGVCdWZm
ZXJEaXNwbGF5TGF5ZXJNYW5hZ2VyLmNwcAppbmRleCBjNDA0MjcyYTc1ZjM5MmEwZmRhOTRmMGMy
YjYyM2NkNGFmZjI1OWViLi5hYTFlY2U3OGEyNDY2N2FmOWY2MDllMzhhMjFhMjRkMmY4NzY2MjEx
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL3dlYnJ0Yy9TYW1wbGVC
dWZmZXJEaXNwbGF5TGF5ZXJNYW5hZ2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvR1BVL3dlYnJ0Yy9TYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXJNYW5hZ2VyLmNwcApAQCAtNDYs
MTQgKzQ2LDE0IEBAIHN0ZDo6dW5pcXVlX3B0cjxXZWJDb3JlOjpTYW1wbGVCdWZmZXJEaXNwbGF5
TGF5ZXI+IFNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllck1hbmFnCiAgICAgaWYgKCFsYXllcikKICAg
ICAgICAgcmV0dXJuIHsgfTsKIAotICAgIG1fbGF5ZXJzLmFkZChsYXllci0+aWRlbnRpZmllcigp
LCBtYWtlV2Vha1B0cigqbGF5ZXIpKTsKKyAgICBtX2xheWVycy5hZGQobGF5ZXItPmlkZW50aWZp
ZXIoKSwgKmxheWVyKTsKICAgICByZXR1cm4gbGF5ZXI7CiB9CiAKIHZvaWQgU2FtcGxlQnVmZmVy
RGlzcGxheUxheWVyTWFuYWdlcjo6YWRkTGF5ZXIoU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyJiBs
YXllcikKIHsKICAgICBBU1NFUlQoIW1fbGF5ZXJzLmNvbnRhaW5zKGxheWVyLmlkZW50aWZpZXIo
KSkpOwotICAgIG1fbGF5ZXJzLmFkZChsYXllci5pZGVudGlmaWVyKCksIG1ha2VXZWFrUHRyKGxh
eWVyKSk7CisgICAgbV9sYXllcnMuYWRkKGxheWVyLmlkZW50aWZpZXIoKSwgbGF5ZXIpOwogfQog
CiB2b2lkIFNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllck1hbmFnZXI6OnJlbW92ZUxheWVyKFNhbXBs
ZUJ1ZmZlckRpc3BsYXlMYXllciYgbGF5ZXIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2dsaWIvRE9NL0RPTU9iamVjdENhY2hlLmNwcCBi
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ2xpYi9ET00vRE9N
T2JqZWN0Q2FjaGUuY3BwCmluZGV4IDQ5NDBiMTBiZWQ3ZDZkOTk2MWIyZDBjNDEwNGRiZGFlZGQ5
MTdlZmIuLmI2Mzk2ZTI3ZTI0MmVhMDk3NmIyMzNkNjBiZGE1MDZjZDdhOGFhZDQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ2xpYi9ET00v
RE9NT2JqZWN0Q2FjaGUuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3Rl
ZEJ1bmRsZS9BUEkvZ2xpYi9ET00vRE9NT2JqZWN0Q2FjaGUuY3BwCkBAIC0xMTEsNyArMTExLDcg
QEAgcHJpdmF0ZToKICAgICAgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CiAgICAgcHVibGlj
OgogICAgICAgICBET01XaW5kb3dPYnNlcnZlcihXZWJDb3JlOjpET01XaW5kb3cmIHdpbmRvdywg
RE9NT2JqZWN0Q2FjaGVGcmFtZU9ic2VydmVyJiBmcmFtZU9ic2VydmVyKQotICAgICAgICAgICAg
OiBtX3dpbmRvdyhtYWtlV2Vha1B0cih3aW5kb3cpKQorICAgICAgICAgICAgOiBtX3dpbmRvdyh3
aW5kb3cpCiAgICAgICAgICAgICAsIG1fZnJhbWVPYnNlcnZlcihmcmFtZU9ic2VydmVyKQogICAg
ICAgICB7CiAgICAgICAgICAgICB3aW5kb3cucmVnaXN0ZXJPYnNlcnZlcigqdGhpcyk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5zcGVjdG9yL1dlYkluc3BlY3RvclVJ
RXh0ZW5zaW9uQ29udHJvbGxlci5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5zcGVj
dG9yL1dlYkluc3BlY3RvclVJRXh0ZW5zaW9uQ29udHJvbGxlci5jcHAKaW5kZXggZWUzOTI2MDgx
YjgzZDk2MTZhZTVlOWRjZTQyMDgxZTRkM2IwZWM2My4uYzYyNTk2ZTgwYzJlMmYwZDY4OGNmMDY2
MTM4OWY4NzM2YzM1MzIyNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0lu
c3BlY3Rvci9XZWJJbnNwZWN0b3JVSUV4dGVuc2lvbkNvbnRyb2xsZXIuY3BwCisrKyBiL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbnNwZWN0b3IvV2ViSW5zcGVjdG9yVUlFeHRlbnNpb25Db250
cm9sbGVyLmNwcApAQCAtNDQsNyArNDQsNyBAQAogbmFtZXNwYWNlIFdlYktpdCB7CiAKIFdlYklu
c3BlY3RvclVJRXh0ZW5zaW9uQ29udHJvbGxlcjo6V2ViSW5zcGVjdG9yVUlFeHRlbnNpb25Db250
cm9sbGVyKFdlYkNvcmU6Okluc3BlY3RvckZyb250ZW5kQ2xpZW50JiBpbnNwZWN0b3JGcm9udGVu
ZCkKLSAgICA6IG1fZnJvbnRlbmRDbGllbnQobWFrZVdlYWtQdHIoaW5zcGVjdG9yRnJvbnRlbmQp
KQorICAgIDogbV9mcm9udGVuZENsaWVudChpbnNwZWN0b3JGcm9udGVuZCkKIHsKICAgICBhdXRv
KiBwYWdlID0gaW5zcGVjdG9yRnJvbnRlbmQuZnJvbnRlbmRQYWdlKCk7CiAgICAgQVNTRVJUKHBh
Z2UpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05ldHdvcmsvV2ViU29j
a2V0Q2hhbm5lbC5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0d29yay9XZWJTb2Nr
ZXRDaGFubmVsLmNwcAppbmRleCBjZjE0NWFhMWRiMzFhMzZjNDA2ZWQ1MDA5NGFjYjU1Yjk3N2Vk
ODUxLi45MTg1NmE1NzcyOTY3MjJkMjRhYmU2OTc4M2EwMTZhYThmYjczYWQwIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0d29yay9XZWJTb2NrZXRDaGFubmVsLmNwcAor
KysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0d29yay9XZWJTb2NrZXRDaGFubmVsLmNw
cApAQCAtNjksOCArNjksOCBAQCBOZXR3b3JrU2VuZFF1ZXVlIFdlYlNvY2tldENoYW5uZWw6OmNy
ZWF0ZU1lc3NhZ2VRdWV1ZShEb2N1bWVudCYgZG9jdW1lbnQsIFdlYlNvYwogfQogCiBXZWJTb2Nr
ZXRDaGFubmVsOjpXZWJTb2NrZXRDaGFubmVsKFdlYlBhZ2VQcm94eUlkZW50aWZpZXIgd2ViUGFn
ZVByb3h5SUQsIERvY3VtZW50JiBkb2N1bWVudCwgV2ViU29ja2V0Q2hhbm5lbENsaWVudCYgY2xp
ZW50KQotICAgIDogbV9kb2N1bWVudChtYWtlV2Vha1B0cihkb2N1bWVudCkpCi0gICAgLCBtX2Ns
aWVudChtYWtlV2Vha1B0cihjbGllbnQpKQorICAgIDogbV9kb2N1bWVudChkb2N1bWVudCkKKyAg
ICAsIG1fY2xpZW50KGNsaWVudCkKICAgICAsIG1fbWVzc2FnZVF1ZXVlKGNyZWF0ZU1lc3NhZ2VR
dWV1ZShkb2N1bWVudCwgKnRoaXMpKQogICAgICwgbV9pbnNwZWN0b3IoZG9jdW1lbnQpCiAgICAg
LCBtX3dlYlBhZ2VQcm94eUlEKHdlYlBhZ2VQcm94eUlEKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL05ldHdvcmsvV2ViU29ja2V0Q2hhbm5lbE1hbmFnZXIuY3BwIGIvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL05ldHdvcmsvV2ViU29ja2V0Q2hhbm5lbE1hbmFnZXIuY3Bw
CmluZGV4IGI5ODZhNzk5NmMzMmNlNTQ1MDJmYWJmNWM5ZmRiZTNmZjBhNzc4MGUuLjg5OWU2NThh
YzY4MTYzZjU4YTUxY2JhZmUxZTExNzExMWRiNmVmM2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9OZXR3b3JrL1dlYlNvY2tldENoYW5uZWxNYW5hZ2VyLmNwcAorKysgYi9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0d29yay9XZWJTb2NrZXRDaGFubmVsTWFuYWdlci5j
cHAKQEAgLTMzLDcgKzMzLDcgQEAgbmFtZXNwYWNlIFdlYktpdCB7CiB2b2lkIFdlYlNvY2tldENo
YW5uZWxNYW5hZ2VyOjphZGRDaGFubmVsKFdlYlNvY2tldENoYW5uZWwmIGNoYW5uZWwpCiB7CiAg
ICAgQVNTRVJUKCFtX2NoYW5uZWxzLmNvbnRhaW5zKGNoYW5uZWwuaWRlbnRpZmllcigpKSk7Ci0g
ICAgbV9jaGFubmVscy5hZGQoY2hhbm5lbC5pZGVudGlmaWVyKCksIG1ha2VXZWFrUHRyKGNoYW5u
ZWwpKTsKKyAgICBtX2NoYW5uZWxzLmFkZChjaGFubmVsLmlkZW50aWZpZXIoKSwgY2hhbm5lbCk7
CiB9CiAKIHZvaWQgV2ViU29ja2V0Q2hhbm5lbE1hbmFnZXI6Om5ldHdvcmtQcm9jZXNzQ3Jhc2hl
ZCgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0d29yay93ZWJydGMv
UlRDRGF0YUNoYW5uZWxSZW1vdGVNYW5hZ2VyLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9OZXR3b3JrL3dlYnJ0Yy9SVENEYXRhQ2hhbm5lbFJlbW90ZU1hbmFnZXIuY3BwCmluZGV4IDli
OTZmNGExM2RjMzRjMDUyYjNkOTQ2MjU2NDcxNTUzMGU5NjdkODMuLjZkMTE5ZTY4ODA0MmRiNmI4
MGYwNjQ3Y2MxMmRkMjMxMjZlZjI5NzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9OZXR3b3JrL3dlYnJ0Yy9SVENEYXRhQ2hhbm5lbFJlbW90ZU1hbmFnZXIuY3BwCisrKyBi
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9OZXR3b3JrL3dlYnJ0Yy9SVENEYXRhQ2hhbm5lbFJl
bW90ZU1hbmFnZXIuY3BwCkBAIC0xODUsNyArMTg1LDcgQEAgUlRDRGF0YUNoYW5uZWxSZW1vdGVN
YW5hZ2VyOjpSZW1vdGVIYW5kbGVyQ29ubmVjdGlvbjo6UmVtb3RlSGFuZGxlckNvbm5lY3Rpb24o
UmUKIAogdm9pZCBSVENEYXRhQ2hhbm5lbFJlbW90ZU1hbmFnZXI6OlJlbW90ZUhhbmRsZXJDb25u
ZWN0aW9uOjpjb25uZWN0VG9Tb3VyY2UoV2ViQ29yZTo6UlRDRGF0YUNoYW5uZWxSZW1vdGVIYW5k
bGVyJiBoYW5kbGVyLCBXZWJDb3JlOjpTY3JpcHRFeGVjdXRpb25Db250ZXh0SWRlbnRpZmllciBj
b250ZXh0SWRlbnRpZmllciwgV2ViQ29yZTo6UlRDRGF0YUNoYW5uZWxJZGVudGlmaWVyIGxvY2Fs
SWRlbnRpZmllciwgV2ViQ29yZTo6UlRDRGF0YUNoYW5uZWxJZGVudGlmaWVyIHJlbW90ZUlkZW50
aWZpZXIpCiB7Ci0gICAgbV9xdWV1ZS0+ZGlzcGF0Y2goW2hhbmRsZXIgPSBtYWtlV2Vha1B0ciho
YW5kbGVyKSwgY29udGV4dElkZW50aWZpZXIsIGxvY2FsSWRlbnRpZmllcl0oKSBtdXRhYmxlIHsK
KyAgICBtX3F1ZXVlLT5kaXNwYXRjaChbaGFuZGxlciA9IFdlYWtQdHIgeyBoYW5kbGVyIH0sIGNv
bnRleHRJZGVudGlmaWVyLCBsb2NhbElkZW50aWZpZXJdKCkgbXV0YWJsZSB7CiAgICAgICAgIFJU
Q0RhdGFDaGFubmVsUmVtb3RlTWFuYWdlcjo6c2hhcmVkTWFuYWdlcigpLm1faGFuZGxlcnMuYWRk
KGxvY2FsSWRlbnRpZmllci5jaGFubmVsSWRlbnRpZmllciwgUmVtb3RlSGFuZGxlciB7IFdURk1v
dmUoaGFuZGxlciksIGNvbnRleHRJZGVudGlmaWVyIH0pOwogICAgIH0pOwogICAgIG1fY29ubmVj
dGlvbi0+c2VuZFdpdGhBc3luY1JlcGx5KE1lc3NhZ2VzOjpOZXR3b3JrQ29ubmVjdGlvblRvV2Vi
UHJvY2Vzczo6Q29ubmVjdFRvUlRDRGF0YUNoYW5uZWxSZW1vdGVTb3VyY2UgeyBsb2NhbElkZW50
aWZpZXIsIHJlbW90ZUlkZW50aWZpZXIgfSwgW2xvY2FsSWRlbnRpZmllcl0oYXV0byYmIHJlc3Vs
dCkgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1BsdWdpbnMvUERGL1BE
RlBsdWdpbi5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1BsdWdpbnMvUERGL1BERlBsdWdp
bi5oCmluZGV4IDBlNTQwMjE2NjA5MDk0ZGZkZGJkNzBkYmY5MDZlNGE4YzAyMTM2ZjkuLjQyZGU0
NjE0MTk3NzhiN2M0NTBmY2ExZWIwMzdjMWNlOTdkMmQ2MzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9QbHVnaW5zL1BERi9QREZQbHVnaW4uaAorKysgYi9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvUGx1Z2lucy9QREYvUERGUGx1Z2luLmgKQEAgLTM1OSw3ICszNTksNyBA
QCBwcml2YXRlOgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHB1Ymxp
YyBXZWJDb3JlOjpOZXRzY2FwZVBsdWdJblN0cmVhbUxvYWRlckNsaWVudCB7CiAgICAgcHVibGlj
OgogICAgICAgICBQREZQbHVnaW5TdHJlYW1Mb2FkZXJDbGllbnQoUERGUGx1Z2luJiBwZGZQbHVn
aW4pCi0gICAgICAgICAgICA6IG1fcGRmUGx1Z2luKG1ha2VXZWFrUHRyKHBkZlBsdWdpbikpCisg
ICAgICAgICAgICA6IG1fcGRmUGx1Z2luKHBkZlBsdWdpbikKICAgICAgICAgewogICAgICAgICB9
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9QbHVnaW5zL1BERi9QREZQ
bHVnaW4ubW0gYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvUGx1Z2lucy9QREYvUERGUGx1Z2lu
Lm1tCmluZGV4IDViNjU0NDFlNmRmNWJjODVjNDQyM2FiOWNlZGVjYWZhNGQ2YmQxZmQuLjBlMWQw
N2FlM2QwYzgxNzRlYjZjM2RiYzkzODJhZDU0YjY3MzQzMDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9QbHVnaW5zL1BERi9QREZQbHVnaW4ubW0KKysrIGIvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL1BsdWdpbnMvUERGL1BERlBsdWdpbi5tbQpAQCAtMTgwLDcgKzE4MCw3
IEBAIC0gKGlkKWluaXRXaXRoUERGUGx1Z2luOihXZWJLaXQ6OlBERlBsdWdpbiAqKXBsdWdpbiBh
bmRFbGVtZW50OihXZWJDb3JlOjpIVE1MUGx1CiAgICAgICAgIHJldHVybiBuaWw7CiAKICAgICBf
cGRmUGx1Z2luID0gcGx1Z2luOwotICAgIF9wbHVnaW5FbGVtZW50ID0gbWFrZVdlYWtQdHIoZWxl
bWVudCk7CisgICAgX3BsdWdpbkVsZW1lbnQgPSBlbGVtZW50OwogCiAgICAgcmV0dXJuIHNlbGY7
CiB9CkBAIC02MzMsNyArNjMzLDcgQEAgUmVmPFBERlBsdWdpbj4gUERGUGx1Z2luOjpjcmVhdGUo
V2ViRnJhbWUmIGZyYW1lLCBIVE1MUGx1Z0luRWxlbWVudCogcGx1Z2luRWxlbWUKIAogaW5saW5l
IFBERlBsdWdpbjo6UERGUGx1Z2luKFdlYkZyYW1lJiBmcmFtZSwgSFRNTFBsdWdJbkVsZW1lbnQq
IHBsdWdpbkVsZW1lbnQpCiAgICAgOiBQbHVnaW4oUERGUGx1Z2luVHlwZSkKLSAgICAsIG1fZnJh
bWUobWFrZVdlYWtQdHIoZnJhbWUpKQorICAgICwgbV9mcmFtZShmcmFtZSkKICAgICAsIG1fY29u
dGFpbmVyTGF5ZXIoYWRvcHROUyhbW0NBTGF5ZXIgYWxsb2NdIGluaXRdKSkKICAgICAsIG1fY29u
dGVudExheWVyKGFkb3B0TlMoW1tDQUxheWVyIGFsbG9jXSBpbml0XSkpCiAgICAgLCBtX3Njcm9s
bENvcm5lckxheWVyKGFkb3B0TlMoW1tXS1BERlBsdWdpblNjcm9sbGJhckxheWVyIGFsbG9jXSBp
bml0V2l0aFBERlBsdWdpbjp0aGlzXSkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvUGx1Z2lucy9QbHVnaW4uY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1BsdWdp
bnMvUGx1Z2luLmNwcAppbmRleCBkMzYxMWY0MDU4Y2ViYTAxZGQ5ODYzZGMzOGVjZTQxZDlkMzVm
MmQwLi4xNDg4OTM5YWE2NDM2ZWJkOTFmMDU2YWQ5ZGIxNDA5YjJhNTU0YmY0IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvUGx1Z2lucy9QbHVnaW4uY3BwCisrKyBiL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9QbHVnaW5zL1BsdWdpbi5jcHAKQEAgLTkwLDcgKzkwLDcgQEAg
Ym9vbCBQbHVnaW46OmluaXRpYWxpemUoUGx1Z2luQ29udHJvbGxlciYgcGx1Z2luQ29udHJvbGxl
ciwgY29uc3QgUGFyYW1ldGVycyYgcGEKIHsKICAgICBBU1NFUlQoIW1fcGx1Z2luQ29udHJvbGxl
cik7CiAKLSAgICBtX3BsdWdpbkNvbnRyb2xsZXIgPSBtYWtlV2Vha1B0cihwbHVnaW5Db250cm9s
bGVyKTsKKyAgICBtX3BsdWdpbkNvbnRyb2xsZXIgPSBwbHVnaW5Db250cm9sbGVyOwogCiAgICAg
cmV0dXJuIGluaXRpYWxpemUocGFyYW1ldGVycyk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRGV2aWNlT3JpZW50YXRpb25VcGRhdGVQ
cm92aWRlci5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2Vi
RGV2aWNlT3JpZW50YXRpb25VcGRhdGVQcm92aWRlci5jcHAKaW5kZXggYTEzMDIyY2I4ZjZlZTY2
MzkzM2RkODRiNjdmOGY2ZjA0NDA4Y2VkNy4uZjlhZjlhYjkzZjdlMDEyODc3MzY1MGMxZDI0OTVh
ZGRlMzlmZDQzNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVT
dXBwb3J0L1dlYkRldmljZU9yaWVudGF0aW9uVXBkYXRlUHJvdmlkZXIuY3BwCisrKyBiL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJEZXZpY2VPcmllbnRhdGlvblVw
ZGF0ZVByb3ZpZGVyLmNwcApAQCAtMzgsNyArMzgsNyBAQAogbmFtZXNwYWNlIFdlYktpdCB7CiAK
IFdlYkRldmljZU9yaWVudGF0aW9uVXBkYXRlUHJvdmlkZXI6OldlYkRldmljZU9yaWVudGF0aW9u
VXBkYXRlUHJvdmlkZXIoV2ViUGFnZSYgcGFnZSkKLSAgICA6IG1fcGFnZShtYWtlV2Vha1B0cihw
YWdlKSkKKyAgICA6IG1fcGFnZShwYWdlKQogICAgICwgbV9wYWdlSWRlbnRpZmllcihwYWdlLmlk
ZW50aWZpZXIoKSkKIHsKICAgICBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5hZGRNZXNzYWdlUmVj
ZWl2ZXIoTWVzc2FnZXM6OldlYkRldmljZU9yaWVudGF0aW9uVXBkYXRlUHJvdmlkZXI6Om1lc3Nh
Z2VSZWNlaXZlck5hbWUoKSwgcGFnZS5pZGVudGlmaWVyKCksICp0aGlzKTsKQEAgLTg1LDcgKzg1
LDcgQEAgdm9pZCBXZWJEZXZpY2VPcmllbnRhdGlvblVwZGF0ZVByb3ZpZGVyOjpkZXZpY2VPcmll
bnRhdGlvbkNoYW5nZWQoZG91YmxlIGFscGhhLAogewogICAgIFZlY3RvcjxXZWFrUHRyPFdlYkNv
cmU6Ok1vdGlvbk1hbmFnZXJDbGllbnQ+PiBjbGllbnRzOwogICAgIGZvciAoYXV0byYgY2xpZW50
IDogbV9kZXZpY2VPcmllbnRhdGlvbkNsaWVudHMpCi0gICAgICAgIGNsaWVudHMuYXBwZW5kKG1h
a2VXZWFrUHRyKCZjbGllbnQpKTsKKyAgICAgICAgY2xpZW50cy5hcHBlbmQoY2xpZW50KTsKIAog
ICAgIGZvciAoYXV0byYgY2xpZW50IDogY2xpZW50cykgewogICAgICAgICBpZiAoY2xpZW50KQpA
QCAtOTcsNyArOTcsNyBAQCB2b2lkIFdlYkRldmljZU9yaWVudGF0aW9uVXBkYXRlUHJvdmlkZXI6
OmRldmljZU1vdGlvbkNoYW5nZWQoZG91YmxlIHhBY2NlbGVyYXRpbwogewogICAgIFZlY3RvcjxX
ZWFrUHRyPFdlYkNvcmU6Ok1vdGlvbk1hbmFnZXJDbGllbnQ+PiBjbGllbnRzOwogICAgIGZvciAo
YXV0byYgY2xpZW50IDogbV9kZXZpY2VNb3Rpb25DbGllbnRzKQotICAgICAgICBjbGllbnRzLmFw
cGVuZChtYWtlV2Vha1B0cigmY2xpZW50KSk7CisgICAgICAgIGNsaWVudHMuYXBwZW5kKGNsaWVu
dCk7CiAgICAgCiAgICAgZm9yIChhdXRvJiBjbGllbnQgOiBjbGllbnRzKSB7CiAgICAgICAgIGlm
IChjbGllbnQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1
cHBvcnQvV2ViUGVybWlzc2lvbkNvbnRyb2xsZXIuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlBlcm1pc3Npb25Db250cm9sbGVyLmNwcAppbmRleCAwMDg1
ZTQ5OGNlMGQ2NmE1ODJjZjY4MWU0NmQ4YWRiYzFkMjJmZTE2Li5kNjAxODIxZjBhODVjMDMyMTAw
M2ZlMGRjZWQ3OTc2ZDllMjBlZTVkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvV2ViQ29yZVN1cHBvcnQvV2ViUGVybWlzc2lvbkNvbnRyb2xsZXIuY3BwCisrKyBiL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJQZXJtaXNzaW9uQ29udHJvbGxl
ci5jcHAKQEAgLTM5LDcgKzM5LDcgQEAgUmVmPFdlYlBlcm1pc3Npb25Db250cm9sbGVyPiBXZWJQ
ZXJtaXNzaW9uQ29udHJvbGxlcjo6Y3JlYXRlKFdlYlBhZ2UmIHBhZ2UpCiB9CiAKIFdlYlBlcm1p
c3Npb25Db250cm9sbGVyOjpXZWJQZXJtaXNzaW9uQ29udHJvbGxlcihXZWJQYWdlJiBwYWdlKQot
ICAgIDogbV9wYWdlKG1ha2VXZWFrUHRyKHBhZ2UpKQorICAgIDogbV9wYWdlKHBhZ2UpCiB7CiB9
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9X
ZWJTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb24uY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbi5jcHAKaW5k
ZXggNGI3NjNiY2RlZTYzYmRmZjRmYTFmMjlkZTc4NTY2MGQ0OGI0ZjFlZC4uNzg5NzM4ZWM0YTNi
MTEzMDU2N2JlMWUyODAxMDkzZDdmNjc3YTE3OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbi5j
cHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlNwZWVj
aFJlY29nbml0aW9uQ29ubmVjdGlvbi5jcHAKQEAgLTYxLDcgKzYxLDcgQEAgV2ViU3BlZWNoUmVj
b2duaXRpb25Db25uZWN0aW9uOjp+V2ViU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uKCkKIAog
dm9pZCBXZWJTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb246OnJlZ2lzdGVyQ2xpZW50KFdlYkNv
cmU6OlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbkNsaWVudCYgY2xpZW50KQogewotICAgIG1f
Y2xpZW50TWFwLmFkZChjbGllbnQuaWRlbnRpZmllcigpLCBtYWtlV2Vha1B0cihjbGllbnQpKTsK
KyAgICBtX2NsaWVudE1hcC5hZGQoY2xpZW50LmlkZW50aWZpZXIoKSwgY2xpZW50KTsKIH0KIAog
dm9pZCBXZWJTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb246OnVucmVnaXN0ZXJDbGllbnQoV2Vi
Q29yZTo6U3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uQ2xpZW50JiBjbGllbnQpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9Db2NvYS9XZWJQYWdlQ29jb2Eu
bW0gYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9Db2NvYS9XZWJQYWdlQ29jb2Eu
bW0KaW5kZXggZTliZGQ1N2MxNDkzNDY0ODQyNTNiZTI5Y2FjMjhhMjIyOTEzMzA5Ny4uYTI3Mzc1
YjI5Y2VlZmFiMzg1ZTQ4ZDA4M2RlYzViN2EwZWJkNzQxMSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvQ29jb2EvV2ViUGFnZUNvY29hLm1tCisrKyBiL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL0NvY29hL1dlYlBhZ2VDb2NvYS5tbQpAQCAtMjcy
LDcgKzI3Miw3IEBAIHZvaWQgV2ViUGFnZTo6Z2V0Q29udGVudHNBc0F0dHJpYnV0ZWRTdHJpbmco
Q29tcGxldGlvbkhhbmRsZXI8dm9pZChjb25zdCBXZWJDb3JlCiAKIHZvaWQgV2ViUGFnZTo6c2V0
UmVtb3RlT2JqZWN0UmVnaXN0cnkoV2ViUmVtb3RlT2JqZWN0UmVnaXN0cnkqIHJlZ2lzdHJ5KQog
ewotICAgIG1fcmVtb3RlT2JqZWN0UmVnaXN0cnkgPSBtYWtlV2Vha1B0cihyZWdpc3RyeSk7Cisg
ICAgbV9yZW1vdGVPYmplY3RSZWdpc3RyeSA9IHJlZ2lzdHJ5OwogfQogCiBXZWJSZW1vdGVPYmpl
Y3RSZWdpc3RyeSogV2ViUGFnZTo6cmVtb3RlT2JqZWN0UmVnaXN0cnkoKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvRmluZENvbnRyb2xsZXIuY3BwIGIvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvRmluZENvbnRyb2xsZXIuY3BwCmluZGV4IGI3
NzNmMGJlMzQ2NzQ4OTIxNGY5NmY4NmUyZTM5OWE2MjE1YjI0YzMuLmI1MGFlZDE2MmZjNTJlN2Y0
YThjMzljYTAzNjY1OWM1NWIwODkwYTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9XZWJQYWdlL0ZpbmRDb250cm9sbGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvV2ViUGFnZS9GaW5kQ29udHJvbGxlci5jcHAKQEAgLTU0NSw3ICs1NDUsNyBAQCB2b2lk
IEZpbmRDb250cm9sbGVyOjpkcmF3UmVjdChQYWdlT3ZlcmxheSYsIEdyYXBoaWNzQ29udGV4dCYg
Z3JhcGhpY3NDb250ZXh0LCBjbwogCiAgICAgICAgIGlmIChmaW5kSW5kaWNhdG9yUmVjdCAhPSBt
X2ZpbmRJbmRpY2F0b3JSZWN0KSB7CiAgICAgICAgICAgICAvLyBXZSBhcmUgdW5kZXJuZWF0aCBw
YWludGluZywgc28gaXQncyBub3Qgc2FmZSB0byBtdXRhdGUgdGhlIGxheWVyIHRyZWUgc3luY2hy
b25vdXNseS4KLSAgICAgICAgICAgIGNhbGxPbk1haW5SdW5Mb29wKFt3ZWFrV2ViUGFnZSA9IG1h
a2VXZWFrUHRyKG1fd2ViUGFnZSldIHsKKyAgICAgICAgICAgIGNhbGxPbk1haW5SdW5Mb29wKFt3
ZWFrV2ViUGFnZSA9IFdlYWtQdHIgeyBtX3dlYlBhZ2UgfV0gewogICAgICAgICAgICAgICAgIGlm
ICghd2Vha1dlYlBhZ2UpCiAgICAgICAgICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgICAg
ICAgICB3ZWFrV2ViUGFnZS0+ZmluZENvbnRyb2xsZXIoKS5kaWRTY3JvbGxBZmZlY3RpbmdGaW5k
SW5kaWNhdG9yUG9zaXRpb24oKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9XZWJQYWdlL0lQQ1Rlc3RpbmdBUEkuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dl
YlBhZ2UvSVBDVGVzdGluZ0FQSS5jcHAKaW5kZXggNjAwNTRhYTkzZTNiNWEyN2I3YzU4YjIzMWE3
ZGFhYWJmYzM4YjQ0NC4uOWM5NjAyYzAyYjM0YjUyMjc0M2YwNDJmM2NmMjQ0NjVmNTgwMTZlMiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvSVBDVGVzdGluZ0FQ
SS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvSVBDVGVzdGluZ0FQ
SS5jcHAKQEAgLTE2Nyw4ICsxNjcsOCBAQCBwdWJsaWM6CiAKIHByaXZhdGU6CiAgICAgSlNJUEMo
V2ViUGFnZSYgd2ViUGFnZSwgV2ViRnJhbWUmIHdlYkZyYW1lKQotICAgICAgICA6IG1fd2ViUGFn
ZShtYWtlV2Vha1B0cih3ZWJQYWdlKSkKLSAgICAgICAgLCBtX3dlYkZyYW1lKG1ha2VXZWFrUHRy
KHdlYkZyYW1lKSkKKyAgICAgICAgOiBtX3dlYlBhZ2Uod2ViUGFnZSkKKyAgICAgICAgLCBtX3dl
YkZyYW1lKHdlYkZyYW1lKQogICAgIHsgfQogCiAgICAgc3RhdGljIEpTSVBDKiB1bndyYXAoSlNP
YmplY3RSZWYpOwpAQCAtMTQxOSw3ICsxNDE5LDcgQEAgSlNWYWx1ZVJlZiBKU0lQQzo6bWVzc2Fn
ZXMoSlNDb250ZXh0UmVmIGNvbnRleHQsIEpTT2JqZWN0UmVmIHRoaXNPYmplY3QsIEpTU3RyaW4K
IH0KIAogSlNNZXNzYWdlTGlzdGVuZXI6OkpTTWVzc2FnZUxpc3RlbmVyKEpTSVBDJiBqc0lQQywg
VHlwZSB0eXBlLCBKU0NvbnRleHRSZWYgY29udGV4dCwgSlNPYmplY3RSZWYgY2FsbGJhY2spCi0g
ICAgOiBtX2pzSVBDKG1ha2VXZWFrUHRyKGpzSVBDKSkKKyAgICA6IG1fanNJUEMoanNJUEMpCiAg
ICAgLCBtX3R5cGUodHlwZSkKICAgICAsIG1fY29udGV4dChjb250ZXh0KQogICAgICwgbV9jYWxs
YmFjayhjYWxsYmFjaykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQ
YWdlL1JlbW90ZUxheWVyVHJlZS9SZW1vdGVMYXllclRyZWVEaXNwbGF5UmVmcmVzaE1vbml0b3Iu
bW0gYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9SZW1vdGVMYXllclRyZWUvUmVt
b3RlTGF5ZXJUcmVlRGlzcGxheVJlZnJlc2hNb25pdG9yLm1tCmluZGV4IGNjMzllM2QxNjI0Zjk3
Yzg4OWNiZGNjZWU2NGU2OTBmN2RhNzVhZWIuLjdhNWFjZGQwYjUwZGNmNjBlZTRiMDczMzFjZThl
NzA3N2Q2ODI3Y2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdl
L1JlbW90ZUxheWVyVHJlZS9SZW1vdGVMYXllclRyZWVEaXNwbGF5UmVmcmVzaE1vbml0b3IubW0K
KysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvUmVtb3RlTGF5ZXJUcmVlL1Jl
bW90ZUxheWVyVHJlZURpc3BsYXlSZWZyZXNoTW9uaXRvci5tbQpAQCAtMzYsNyArMzYsNyBAQCBj
b25zdGV4cHIgRnJhbWVzUGVyU2Vjb25kIERlZmF1bHRQcmVmZXJyZWRGcmFtZXNQZXJTZWNvbmQg
PSA2MDsKIAogUmVtb3RlTGF5ZXJUcmVlRGlzcGxheVJlZnJlc2hNb25pdG9yOjpSZW1vdGVMYXll
clRyZWVEaXNwbGF5UmVmcmVzaE1vbml0b3IoUGxhdGZvcm1EaXNwbGF5SUQgZGlzcGxheUlELCBS
ZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYSYgZHJhd2luZ0FyZWEpCiAgICAgOiBEaXNwbGF5UmVm
cmVzaE1vbml0b3IoZGlzcGxheUlEKQotICAgICwgbV9kcmF3aW5nQXJlYShtYWtlV2Vha1B0cihk
cmF3aW5nQXJlYSkpCisgICAgLCBtX2RyYXdpbmdBcmVhKGRyYXdpbmdBcmVhKQogICAgICwgbV9w
cmVmZXJyZWRGcmFtZXNQZXJTZWNvbmQoRGVmYXVsdFByZWZlcnJlZEZyYW1lc1BlclNlY29uZCkK
ICAgICAsIG1fY3VycmVudFVwZGF0ZSh7IDAsIG1fcHJlZmVycmVkRnJhbWVzUGVyU2Vjb25kIH0p
CiB7CkBAIC05MCw3ICs5MCw3IEBAIHZvaWQgUmVtb3RlTGF5ZXJUcmVlRGlzcGxheVJlZnJlc2hN
b25pdG9yOjpkaWRVcGRhdGVMYXllcnMoKQogCiB2b2lkIFJlbW90ZUxheWVyVHJlZURpc3BsYXlS
ZWZyZXNoTW9uaXRvcjo6dXBkYXRlRHJhd2luZ0FyZWEoUmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0Fy
ZWEmIGRyYXdpbmdBcmVhKQogewotICAgIG1fZHJhd2luZ0FyZWEgPSBtYWtlV2Vha1B0cihkcmF3
aW5nQXJlYSk7CisgICAgbV9kcmF3aW5nQXJlYSA9IGRyYXdpbmdBcmVhOwogfQogCiBzdGQ6Om9w
dGlvbmFsPEZyYW1lc1BlclNlY29uZD4gUmVtb3RlTGF5ZXJUcmVlRGlzcGxheVJlZnJlc2hNb25p
dG9yOjpkaXNwbGF5Tm9taW5hbEZyYW1lc1BlclNlY29uZCgpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJDb250ZXh0TWVudS5jcHAgYi9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJDb250ZXh0TWVudS5jcHAKaW5kZXggMjg2NzMwYTM4
M2Q2Y2NjYTg0MzE2NTg1YWIzMWEwN2EyNGU1ZmM5Yi4uYjE4Y2VjNThlM2E2MTg4NTFlNDM2YmY3
OTNjMzM1NjVjNzA4YWE1YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dl
YlBhZ2UvV2ViQ29udGV4dE1lbnUuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9X
ZWJQYWdlL1dlYkNvbnRleHRNZW51LmNwcApAQCAtNDEsNyArNDEsNyBAQCBuYW1lc3BhY2UgV2Vi
S2l0IHsKIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogCiBXZWJDb250ZXh0TWVudTo6V2ViQ29u
dGV4dE1lbnUoV2ViUGFnZSYgcGFnZSkKLSAgICA6IG1fcGFnZShtYWtlV2Vha1B0cihwYWdlKSkK
KyAgICA6IG1fcGFnZShwYWdlKQogewogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvV2ViUGFnZS9XZWJGcmFtZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
V2ViUGFnZS9XZWJGcmFtZS5jcHAKaW5kZXggODE1NzgzNzhlODdhNWI5NGM3YTQ5YmY1NWM2M2E2
NjE3NmJiMzY1YS4uZDkxOWU0NDhmNzU1Zjk4YjZkMGU5ZWFiNzRmNTNmZjI0OGJiYmYzMiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViRnJhbWUuY3BwCisr
KyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYkZyYW1lLmNwcApAQCAtMTA4
LDcgKzEwOCw3IEBAIHZvaWQgV2ViRnJhbWU6OmluaXRXaXRoQ29yZU1haW5GcmFtZShXZWJQYWdl
JiBwYWdlLCBGcmFtZSYgY29yZUZyYW1lKQogewogICAgIHBhZ2Uuc2VuZChNZXNzYWdlczo6V2Vi
UGFnZVByb3h5OjpEaWRDcmVhdGVNYWluRnJhbWUoZnJhbWVJRCgpKSk7CiAKLSAgICBtX2NvcmVG
cmFtZSA9IG1ha2VXZWFrUHRyKGNvcmVGcmFtZSk7CisgICAgbV9jb3JlRnJhbWUgPSBjb3JlRnJh
bWU7CiAgICAgbV9jb3JlRnJhbWUtPnRyZWUoKS5zZXROYW1lKFN0cmluZygpKTsKICAgICBtX2Nv
cmVGcmFtZS0+aW5pdCgpOwogfQpAQCAtMTE5LDcgKzExOSw3IEBAIFJlZjxXZWJGcmFtZT4gV2Vi
RnJhbWU6OmNyZWF0ZVN1YmZyYW1lKFdlYlBhZ2UqIHBhZ2UsIGNvbnN0IFN0cmluZyYgZnJhbWVO
YW1lLCBICiAgICAgcGFnZS0+c2VuZChNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpEaWRDcmVhdGVT
dWJmcmFtZShmcmFtZS0+ZnJhbWVJRCgpKSk7CiAKICAgICBhdXRvIGNvcmVGcmFtZSA9IEZyYW1l
OjpjcmVhdGUocGFnZS0+Y29yZVBhZ2UoKSwgb3duZXJFbGVtZW50LCBtYWtlVW5pcXVlUmVmPFdl
YkZyYW1lTG9hZGVyQ2xpZW50PihmcmFtZS5nZXQoKSkpOwotICAgIGZyYW1lLT5tX2NvcmVGcmFt
ZSA9IG1ha2VXZWFrUHRyKGNvcmVGcmFtZS5nZXQoKSk7CisgICAgZnJhbWUtPm1fY29yZUZyYW1l
ID0gY29yZUZyYW1lOwogCiAgICAgY29yZUZyYW1lLT50cmVlKCkuc2V0TmFtZShmcmFtZU5hbWUp
OwogICAgIGlmIChvd25lckVsZW1lbnQpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9XZWJQYWdlL1dlYkZyYW1lLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2Vi
UGFnZS9XZWJGcmFtZS5oCmluZGV4IGIwY2NkOGVhZDQ5MGY5YmJmZGE2YWQ4ZGNkNDhmNTlhMTA2
NTMyMjQuLjU3MjY2ZTRkNTQwNzNlMDg5ODNjOWYzZGFmY2Q5NDkzMmE3OTJmMDUgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYkZyYW1lLmgKKysrIGIvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViRnJhbWUuaApAQCAtMTczLDcgKzE3Myw3
IEBAIHB1YmxpYzoKICAgICAgICAgdmlydHVhbCB2b2lkIGRpZEZpbmlzaExvYWQoV2ViRnJhbWUq
KSA9IDA7CiAgICAgICAgIHZpcnR1YWwgdm9pZCBkaWRGYWlsTG9hZChXZWJGcmFtZSosIGJvb2wg
d2FzQ2FuY2VsbGVkKSA9IDA7CiAgICAgfTsKLSAgICB2b2lkIHNldExvYWRMaXN0ZW5lcihMb2Fk
TGlzdGVuZXIqIGxvYWRMaXN0ZW5lcikgeyBtX2xvYWRMaXN0ZW5lciA9IG1ha2VXZWFrUHRyKGxv
YWRMaXN0ZW5lcik7IH0KKyAgICB2b2lkIHNldExvYWRMaXN0ZW5lcihMb2FkTGlzdGVuZXIqIGxv
YWRMaXN0ZW5lcikgeyBtX2xvYWRMaXN0ZW5lciA9IGxvYWRMaXN0ZW5lcjsgfQogICAgIExvYWRM
aXN0ZW5lciogbG9hZExpc3RlbmVyKCkgY29uc3QgeyByZXR1cm4gbV9sb2FkTGlzdGVuZXIuZ2V0
KCk7IH0KICAgICAKICNpZiBQTEFURk9STShDT0NPQSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKaW5kZXggZWZmOGIxOGIxZDAwNzJmZTJlMWQwZWVkNWNl
NGQ0NzI1NTc0YjFhZS4uN2Y0MzQ0MjA0NDRlM2M2OTQ4YTQ3MzdmYmViZTUyYWE0NDY0YzM0ZiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAK
KysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKQEAgLTQ2
MDAsNyArNDYwMCw3IEBAIHZvaWQgV2ViUGFnZTo6ZGlkQ2hvb3NlQ29sb3IoY29uc3QgV2ViQ29y
ZTo6Q29sb3ImIGNvbG9yKQogCiB2b2lkIFdlYlBhZ2U6OnNldEFjdGl2ZURhdGFMaXN0U3VnZ2Vz
dGlvblBpY2tlcihXZWJEYXRhTGlzdFN1Z2dlc3Rpb25QaWNrZXImIGRhdGFMaXN0U3VnZ2VzdGlv
blBpY2tlcikKIHsKLSAgICBtX2FjdGl2ZURhdGFMaXN0U3VnZ2VzdGlvblBpY2tlciA9IG1ha2VX
ZWFrUHRyKCZkYXRhTGlzdFN1Z2dlc3Rpb25QaWNrZXIpOworICAgIG1fYWN0aXZlRGF0YUxpc3RT
dWdnZXN0aW9uUGlja2VyID0gZGF0YUxpc3RTdWdnZXN0aW9uUGlja2VyOwogfQogCiB2b2lkIFdl
YlBhZ2U6OmRpZFNlbGVjdERhdGFMaXN0T3B0aW9uKGNvbnN0IFN0cmluZyYgc2VsZWN0ZWRPcHRp
b24pCkBAIC00NjIxLDcgKzQ2MjEsNyBAQCB2b2lkIFdlYlBhZ2U6OmRpZENsb3NlU3VnZ2VzdGlv
bnMoKQogCiB2b2lkIFdlYlBhZ2U6OnNldEFjdGl2ZURhdGVUaW1lQ2hvb3NlcihXZWJEYXRlVGlt
ZUNob29zZXImIGRhdGVUaW1lQ2hvb3NlcikKIHsKLSAgICBtX2FjdGl2ZURhdGVUaW1lQ2hvb3Nl
ciA9IG1ha2VXZWFrUHRyKCZkYXRlVGltZUNob29zZXIpOworICAgIG1fYWN0aXZlRGF0ZVRpbWVD
aG9vc2VyID0gZGF0ZVRpbWVDaG9vc2VyOwogfQogCiB2b2lkIFdlYlBhZ2U6OmRpZENob29zZURh
dGUoY29uc3QgU3RyaW5nJiBkYXRlKQpAQCAtNzMyNiw3ICs3MzI2LDcgQEAgdm9pZCBXZWJQYWdl
OjpzdGFydFRleHRNYW5pcHVsYXRpb25zKFZlY3RvcjxXZWJDb3JlOjpUZXh0TWFuaXB1bGF0aW9u
Q29udHJvbGxlcjoKICAgICBpZiAoIW1haW5Eb2N1bWVudCkKICAgICAgICAgcmV0dXJuOwogCi0g
ICAgbWFpbkRvY3VtZW50LT50ZXh0TWFuaXB1bGF0aW9uQ29udHJvbGxlcigpLnN0YXJ0T2JzZXJ2
aW5nUGFyYWdyYXBocyhbd2ViUGFnZSA9IG1ha2VXZWFrUHRyKCp0aGlzKV0gKERvY3VtZW50JiBk
b2N1bWVudCwgY29uc3QgVmVjdG9yPFdlYkNvcmU6OlRleHRNYW5pcHVsYXRpb25Db250cm9sbGVy
OjpNYW5pcHVsYXRpb25JdGVtPiYgaXRlbXMpIHsKKyAgICBtYWluRG9jdW1lbnQtPnRleHRNYW5p
cHVsYXRpb25Db250cm9sbGVyKCkuc3RhcnRPYnNlcnZpbmdQYXJhZ3JhcGhzKFt3ZWJQYWdlID0g
V2Vha1B0ciB7ICp0aGlzIH1dIChEb2N1bWVudCYgZG9jdW1lbnQsIGNvbnN0IFZlY3RvcjxXZWJD
b3JlOjpUZXh0TWFuaXB1bGF0aW9uQ29udHJvbGxlcjo6TWFuaXB1bGF0aW9uSXRlbT4mIGl0ZW1z
KSB7CiAgICAgICAgIGF1dG8qIGZyYW1lID0gZG9jdW1lbnQuZnJhbWUoKTsKICAgICAgICAgaWYg
KCF3ZWJQYWdlIHx8ICFmcmFtZSB8fCB3ZWJQYWdlLT5tYWluRnJhbWUoKSAhPSBmcmFtZSkKICAg
ICAgICAgICAgIHJldHVybjsKQEAgLTc1MzcsMTEgKzc1MzcsMTEgQEAgdm9pZCBXZWJQYWdlOjpy
ZXF1ZXN0VGV4dFJlY29nbml0aW9uKFdlYkNvcmU6OkVsZW1lbnQmIGVsZW1lbnQsIENvbXBsZXRp
b25IYW5kbGUKICAgICBWZWN0b3I8Q29tcGxldGlvbkhhbmRsZXI8dm9pZChSZWZQdHI8RWxlbWVu
dD4mJik+PiBjb21wbGV0aW9uSGFuZGxlcnM7CiAgICAgaWYgKGNvbXBsZXRpb24pCiAgICAgICAg
IGNvbXBsZXRpb25IYW5kbGVycy5hcHBlbmQoV1RGTW92ZShjb21wbGV0aW9uKSk7Ci0gICAgbV9l
bGVtZW50c1BlbmRpbmdUZXh0UmVjb2duaXRpb24uYXBwZW5kKHsgbWFrZVdlYWtQdHIoZWxlbWVu
dCksIFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXJzKSB9KTsKKyAgICBtX2VsZW1lbnRzUGVuZGlu
Z1RleHRSZWNvZ25pdGlvbi5hcHBlbmQoeyBXZWFrUHRyIHsgZWxlbWVudCB9LCBXVEZNb3ZlKGNv
bXBsZXRpb25IYW5kbGVycykgfSk7CiAKICAgICBhdXRvIGNhY2hlZEltYWdlID0gcmVuZGVySW1h
Z2UuY2FjaGVkSW1hZ2UoKTsKICAgICBhdXRvIGltYWdlVVJMID0gY2FjaGVkSW1hZ2UgPyBlbGVt
ZW50LmRvY3VtZW50KCkuY29tcGxldGVVUkwoY2FjaGVkSW1hZ2UtPnVybCgpLnN0cmluZygpKSA6
IFVSTCB7IH07Ci0gICAgc2VuZFdpdGhBc3luY1JlcGx5KE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6
OlJlcXVlc3RUZXh0UmVjb2duaXRpb24oV1RGTW92ZShpbWFnZVVSTCksIFdURk1vdmUoYml0bWFw
SGFuZGxlKSksIFt3ZWJQYWdlID0gbWFrZVdlYWtQdHIoKnRoaXMpLCB3ZWFrRWxlbWVudCA9IG1h
a2VXZWFrUHRyKGVsZW1lbnQpXSAoYXV0byYmIHJlc3VsdCkgeworICAgIHNlbmRXaXRoQXN5bmNS
ZXBseShNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpSZXF1ZXN0VGV4dFJlY29nbml0aW9uKFdURk1v
dmUoaW1hZ2VVUkwpLCBXVEZNb3ZlKGJpdG1hcEhhbmRsZSkpLCBbd2ViUGFnZSA9IFdlYWtQdHIg
eyAqdGhpcyB9LCB3ZWFrRWxlbWVudCA9IFdlYWtQdHIgeyBlbGVtZW50IH1dIChhdXRvJiYgcmVz
dWx0KSB7CiAgICAgICAgIFJlZlB0ciBwcm90ZWN0ZWRQYWdlIHsgd2ViUGFnZS5nZXQoKSB9Owog
ICAgICAgICBpZiAoIXByb3RlY3RlZFBhZ2UpCiAgICAgICAgICAgICByZXR1cm47CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9pb3MvV2ViUGFnZUlPUy5tbSBi
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL2lvcy9XZWJQYWdlSU9TLm1tCmluZGV4
IDgwZGU4NjBiOTA3ZTJlYWFjMTFjYzFjNDEyMTlmNDdkNDQ0ZDk0MDguLjExMmM4ZGNlMzIzMGUz
YjYwNjE3MWJiZTk5NTE0ZTJhNThhZThlMjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9XZWJQYWdlL2lvcy9XZWJQYWdlSU9TLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9XZWJQYWdlL2lvcy9XZWJQYWdlSU9TLm1tCkBAIC04MTIsNyArODEyLDcgQEAgdm9p
ZCBXZWJQYWdlOjpkaWRGaW5pc2hDb250ZW50Q2hhbmdlT2JzZXJ2aW5nKFdLQ29udGVudENoYW5n
ZSBvYnNlcnZlZENvbnRlbnRDaGEKICAgICBMT0dfV0lUSF9TVFJFQU0oQ29udGVudE9ic2VydmF0
aW9uLCBzdHJlYW0gPDwgImRpZEZpbmlzaENvbnRlbnRDaGFuZ2VPYnNlcnZpbmc6IHBlbmRpbmcg
dGFyZ2V0IG5vZGUoIiA8PCBtX3BlbmRpbmdTeW50aGV0aWNDbGlja05vZGUgPDwgIikiKTsKICAg
ICBpZiAoIW1fcGVuZGluZ1N5bnRoZXRpY0NsaWNrTm9kZSkKICAgICAgICAgcmV0dXJuOwotICAg
IGNhbGxPbk1haW5SdW5Mb29wKFtwcm90ZWN0ZWRUaGlzID0gUmVmIHsgKnRoaXMgfSwgdGFyZ2V0
Tm9kZSA9IFJlZjxOb2RlPigqbV9wZW5kaW5nU3ludGhldGljQ2xpY2tOb2RlKSwgb3JpZ2luYWxE
b2N1bWVudCA9IG1ha2VXZWFrUHRyKG1fcGVuZGluZ1N5bnRoZXRpY0NsaWNrTm9kZS0+ZG9jdW1l
bnQoKSksIG9ic2VydmVkQ29udGVudENoYW5nZSwgbG9jYXRpb24gPSBtX3BlbmRpbmdTeW50aGV0
aWNDbGlja0xvY2F0aW9uLCBtb2RpZmllcnMgPSBtX3BlbmRpbmdTeW50aGV0aWNDbGlja01vZGlm
aWVycywgcG9pbnRlcklkID0gbV9wZW5kaW5nU3ludGhldGljQ2xpY2tQb2ludGVySWRdIHsKKyAg
ICBjYWxsT25NYWluUnVuTG9vcChbcHJvdGVjdGVkVGhpcyA9IFJlZiB7ICp0aGlzIH0sIHRhcmdl
dE5vZGUgPSBSZWY8Tm9kZT4oKm1fcGVuZGluZ1N5bnRoZXRpY0NsaWNrTm9kZSksIG9yaWdpbmFs
RG9jdW1lbnQgPSBXZWFrUHRyIHsgbV9wZW5kaW5nU3ludGhldGljQ2xpY2tOb2RlLT5kb2N1bWVu
dCgpIH0sIG9ic2VydmVkQ29udGVudENoYW5nZSwgbG9jYXRpb24gPSBtX3BlbmRpbmdTeW50aGV0
aWNDbGlja0xvY2F0aW9uLCBtb2RpZmllcnMgPSBtX3BlbmRpbmdTeW50aGV0aWNDbGlja01vZGlm
aWVycywgcG9pbnRlcklkID0gbV9wZW5kaW5nU3ludGhldGljQ2xpY2tQb2ludGVySWRdIHsKICAg
ICAgICAgaWYgKHByb3RlY3RlZFRoaXMtPm1faXNDbG9zZWQgfHwgIXByb3RlY3RlZFRoaXMtPmNv
cmVQYWdlKCkpCiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIGlmICghb3JpZ2luYWxEb2N1
bWVudCB8fCAmdGFyZ2V0Tm9kZS0+ZG9jdW1lbnQoKSAhPSBvcmlnaW5hbERvY3VtZW50KQpAQCAt
MjIwMiw3ICsyMjAyLDcgQEAgdm9pZCBXZWJQYWdlOjpzZWxlY3RUZXh0V2l0aEdyYW51bGFyaXR5
QXRQb2ludChjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYgcG9pbnQsIFcKICAgICBpZiAoYXV0byBz
ZWxlY3Rpb25DaGFuZ2VkSGFuZGxlciA9IHN0ZDo6ZXhjaGFuZ2UobV9zZWxlY3Rpb25DaGFuZ2Vk
SGFuZGxlciwge30pKQogICAgICAgICBzZWxlY3Rpb25DaGFuZ2VkSGFuZGxlcigpOwogCi0gICAg
bV9zZWxlY3Rpb25DaGFuZ2VkSGFuZGxlciA9IFtwb2ludCwgZ3JhbnVsYXJpdHksIGlzSW50ZXJh
Y3RpbmdXaXRoRm9jdXNlZEVsZW1lbnQsIGNvbXBsZXRpb25IYW5kbGVyID0gV1RGTW92ZShjb21w
bGV0aW9uSGFuZGxlciksIHdlYlBhZ2UgPSBtYWtlV2Vha1B0cigqdGhpcyksIHRoaXNdKCkgbXV0
YWJsZSB7CisgICAgbV9zZWxlY3Rpb25DaGFuZ2VkSGFuZGxlciA9IFtwb2ludCwgZ3JhbnVsYXJp
dHksIGlzSW50ZXJhY3RpbmdXaXRoRm9jdXNlZEVsZW1lbnQsIGNvbXBsZXRpb25IYW5kbGVyID0g
V1RGTW92ZShjb21wbGV0aW9uSGFuZGxlciksIHdlYlBhZ2UgPSBXZWFrUHRyIHsgKnRoaXMgfSwg
dGhpc10oKSBtdXRhYmxlIHsKICAgICAgICAgUmVmUHRyPFdlYlBhZ2U+IHN0cm9uZ1BhZ2UgPSB3
ZWJQYWdlLmdldCgpOwogICAgICAgICBpZiAoIXN0cm9uZ1BhZ2UpIHsKICAgICAgICAgICAgIGNv
bXBsZXRpb25IYW5kbGVyKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
V2ViUGFnZS9tYWMvV2ViUGFnZU1hYy5tbSBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQ
YWdlL21hYy9XZWJQYWdlTWFjLm1tCmluZGV4IGMyNTVmMzhjMzU4YTBjNWM0ZTE3YTY2MjFkN2Iz
N2RkZTQ1ZjYxZTUuLmIzYzQ4YmJiNGEyOGI4MGNkY2MxYjg5ODAwNzgwYTdkYjkwYTI1MTYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9XZWJQYWdlTWFj
Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9XZWJQYWdlTWFj
Lm1tCkBAIC0xMTQ0LDcgKzExNDQsNyBAQCB2b2lkIFdlYlBhZ2U6Om9wZW5QREZXaXRoUHJldmll
dyhQREZQbHVnaW5JZGVudGlmaWVyIGlkZW50aWZpZXIsIENvbXBsZXRpb25IYW5kbAogCiB2b2lk
IFdlYlBhZ2U6OmNyZWF0ZVBERkhVRChQREZQbHVnaW4mIHBsdWdpbiwgY29uc3QgSW50UmVjdCYg
Ym91bmRpbmdCb3gpCiB7Ci0gICAgYXV0byBhZGRSZXN1bHQgPSBtX3BkZlBsdWdJbnNXaXRoSFVE
LmFkZChwbHVnaW4uaWRlbnRpZmllcigpLCBtYWtlV2Vha1B0cihwbHVnaW4pKTsKKyAgICBhdXRv
IGFkZFJlc3VsdCA9IG1fcGRmUGx1Z0luc1dpdGhIVUQuYWRkKHBsdWdpbi5pZGVudGlmaWVyKCks
IHBsdWdpbik7CiAgICAgaWYgKGFkZFJlc3VsdC5pc05ld0VudHJ5KQogICAgICAgICBzZW5kKE1l
c3NhZ2VzOjpXZWJQYWdlUHJveHk6OkNyZWF0ZVBERkhVRChwbHVnaW4uaWRlbnRpZmllcigpLCBi
b3VuZGluZ0JveCkpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dl
YlN0b3JhZ2UvU3RvcmFnZUFyZWFJbXBsLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9X
ZWJTdG9yYWdlL1N0b3JhZ2VBcmVhSW1wbC5jcHAKaW5kZXggOGE1NDdlYTg5OTQ3NDRlYmJkZjgx
MzNhNDczOGZiNDY3NzExMDQxYi4uYjEyYzU4YzBhYWQ2N2U5OTU3NzA2ZTI5ZTZkZTY1NjllZmU2
NDg0NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlN0b3JhZ2UvU3Rv
cmFnZUFyZWFJbXBsLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViU3RvcmFn
ZS9TdG9yYWdlQXJlYUltcGwuY3BwCkBAIC00NCw3ICs0NCw3IEBAIFJlZjxTdG9yYWdlQXJlYUlt
cGw+IFN0b3JhZ2VBcmVhSW1wbDo6Y3JlYXRlKFN0b3JhZ2VBcmVhTWFwJiBzdG9yYWdlQXJlYU1h
cCkKIAogU3RvcmFnZUFyZWFJbXBsOjpTdG9yYWdlQXJlYUltcGwoU3RvcmFnZUFyZWFNYXAmIHN0
b3JhZ2VBcmVhTWFwKQogICAgIDogbV9pZGVudGlmaWVyKElkZW50aWZpZXI6OmdlbmVyYXRlKCkp
Ci0gICAgLCBtX3N0b3JhZ2VBcmVhTWFwKG1ha2VXZWFrUHRyKHN0b3JhZ2VBcmVhTWFwKSkKKyAg
ICAsIG1fc3RvcmFnZUFyZWFNYXAoc3RvcmFnZUFyZWFNYXApCiB7CiAgICAgc3RvcmFnZUFyZWFN
YXAuaW5jcmVtZW50VXNlQ291bnQoKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9jb2NvYS9BdWRpb1Nlc3Npb25Sb3V0aW5nQXJiaXRyYXRvci5jcHAgYi9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvQXVkaW9TZXNzaW9uUm91dGluZ0FyYml0cmF0b3IuY3Bw
CmluZGV4IDdlZWQzOWRiODdkNWI1YWFlNTE4NTU4OWU5YjFmZTIzODBhYWE5MjEuLmNjNjk4ZDc0
MDAyMDVkMmEwOGZmNmFkNTI1YzQzNWQ2N2EyZTM0NzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9jb2NvYS9BdWRpb1Nlc3Npb25Sb3V0aW5nQXJiaXRyYXRvci5jcHAKKysr
IGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL0F1ZGlvU2Vzc2lvblJvdXRpbmdBcmJp
dHJhdG9yLmNwcApAQCAtMzksNyArMzksNyBAQCB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIAog
QXVkaW9TZXNzaW9uUm91dGluZ0FyYml0cmF0b3I6OkF1ZGlvU2Vzc2lvblJvdXRpbmdBcmJpdHJh
dG9yKFdlYlByb2Nlc3MmIHByb2Nlc3MpCiAgICAgOiBtX3Byb2Nlc3MocHJvY2VzcykKLSAgICAs
IG1fb2JzZXJ2ZXIoW3RoaXNdIChBdWRpb1Nlc3Npb24mIHNlc3Npb24pIHsgc2Vzc2lvbi5zZXRS
b3V0aW5nQXJiaXRyYXRpb25DbGllbnQobWFrZVdlYWtQdHIodGhpcykpOyB9KQorICAgICwgbV9v
YnNlcnZlcihbdGhpc10gKEF1ZGlvU2Vzc2lvbiYgc2Vzc2lvbikgeyBzZXNzaW9uLnNldFJvdXRp
bmdBcmJpdHJhdGlvbkNsaWVudChXZWFrUHRyIHsgKnRoaXMgfSk7IH0pCiB7CiAgICAgQXVkaW9T
ZXNzaW9uOjphZGRBdWRpb1Nlc3Npb25DaGFuZ2VkT2JzZXJ2ZXIobV9vYnNlcnZlcik7CiB9CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvVmlkZW9GdWxsc2NyZWVu
TWFuYWdlci5tbSBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9WaWRlb0Z1bGxzY3Jl
ZW5NYW5hZ2VyLm1tCmluZGV4IDdiMzRlNDM4MGZjMjhmYTAwMTVjMTNjNzc3MzRkYWVkYjhjYmJk
M2YuLjEzYTZiZjkxYzlmNTNmNTUzYzRiN2NlNzQ0MjY2YTAxY2MxMGQ5MjEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9WaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyLm1t
CisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9WaWRlb0Z1bGxzY3JlZW5NYW5h
Z2VyLm1tCkBAIC0yNzUsNyArMjc1LDcgQEAgdm9pZCBWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyOjpl
bnRlclZpZGVvRnVsbHNjcmVlbkZvclZpZGVvRWxlbWVudChIVE1MVmlkZW9FbGVtZW4KICAgICAg
ICAgaW50ZXJmYWNlLT5zZXRUYXJnZXRJc0Z1bGxzY3JlZW4oZmFsc2UpOwogCiAgICAgaWYgKG1v
ZGUgPT0gSFRNTE1lZGlhRWxlbWVudEVudW1zOjpWaWRlb0Z1bGxzY3JlZW5Nb2RlUGljdHVyZUlu
UGljdHVyZSkKLSAgICAgICAgbV92aWRlb0VsZW1lbnRJblBpY3R1cmVJblBpY3R1cmUgPSBtYWtl
V2Vha1B0cih2aWRlb0VsZW1lbnQpOworICAgICAgICBtX3ZpZGVvRWxlbWVudEluUGljdHVyZUlu
UGljdHVyZSA9IHZpZGVvRWxlbWVudDsKIAogICAgIGludGVyZmFjZS0+c2V0RnVsbHNjcmVlbk1v
ZGUobW9kZSk7CiAgICAgaW50ZXJmYWNlLT5zZXRGdWxsc2NyZWVuU3RhbmRieShzdGFuZGJ5KTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvU3RvcmFnZS9JblByb2Nlc3NJREJTZXJ2
ZXIuY3BwIGIvU291cmNlL1dlYktpdExlZ2FjeS9TdG9yYWdlL0luUHJvY2Vzc0lEQlNlcnZlci5j
cHAKaW5kZXggZDU5MTZjMWE0M2NhOWE2NDViNjdjZWJlMjQwY2FkNWNkOTk1YjFkMi4uNWU0NGMz
Yjg1ODJkNmFmMzdkMGI4NTJlMThhZDgyZTg4MTQ1ZGFjMCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdExlZ2FjeS9TdG9yYWdlL0luUHJvY2Vzc0lEQlNlcnZlci5jcHAKKysrIGIvU291cmNlL1dl
YktpdExlZ2FjeS9TdG9yYWdlL0luUHJvY2Vzc0lEQlNlcnZlci5jcHAKQEAgLTgzLDggKzgzLDgg
QEAgU3RvcmFnZVF1b3RhTWFuYWdlciogSW5Qcm9jZXNzSURCU2VydmVyOjpxdW90YU1hbmFnZXIo
Y29uc3QgQ2xpZW50T3JpZ2luJiBvcmlnaW4KIAogc3RhdGljIGlubGluZSBJREJTZXJ2ZXI6OklE
QlNlcnZlcjo6U3RvcmFnZVF1b3RhTWFuYWdlclNwYWNlUmVxdWVzdGVyIHN0b3JhZ2VRdW90YU1h
bmFnZXJTcGFjZVJlcXVlc3RlcihJblByb2Nlc3NJREJTZXJ2ZXImIHNlcnZlcikKIHsKLSAgICBy
ZXR1cm4gW3NlcnZlciA9ICZzZXJ2ZXIsIHdlYWtTZXJ2ZXIgPSBtYWtlV2Vha1B0cihzZXJ2ZXIp
XShjb25zdCBDbGllbnRPcmlnaW4mIG9yaWdpbiwgdWludDY0X3Qgc3BhY2VSZXF1ZXN0ZWQpIG11
dGFibGUgewotICAgICAgICBhdXRvKiBzdG9yYWdlUXVvdGFNYW5hZ2VyID0gd2Vha1NlcnZlciA/
IHNlcnZlci0+cXVvdGFNYW5hZ2VyKG9yaWdpbikgOiBudWxscHRyOworICAgIHJldHVybiBbd2Vh
a1NlcnZlciA9IFdlYWtQdHIgeyBzZXJ2ZXIgfV0oY29uc3QgQ2xpZW50T3JpZ2luJiBvcmlnaW4s
IHVpbnQ2NF90IHNwYWNlUmVxdWVzdGVkKSBtdXRhYmxlIHsKKyAgICAgICAgYXV0byogc3RvcmFn
ZVF1b3RhTWFuYWdlciA9IHdlYWtTZXJ2ZXIgPyB3ZWFrU2VydmVyLT5xdW90YU1hbmFnZXIob3Jp
Z2luKSA6IG51bGxwdHI7CiAgICAgICAgIHJldHVybiBzdG9yYWdlUXVvdGFNYW5hZ2VyID8gc3Rv
cmFnZVF1b3RhTWFuYWdlci0+cmVxdWVzdFNwYWNlT25CYWNrZ3JvdW5kVGhyZWFkKHNwYWNlUmVx
dWVzdGVkKSA6IFN0b3JhZ2VRdW90YU1hbmFnZXI6OkRlY2lzaW9uOjpEZW55OwogICAgIH07CiB9
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L1dlYkNvcmVTdXBwb3J0L1BhZ2VTdG9y
YWdlU2Vzc2lvblByb3ZpZGVyLmggYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L1dlYkNvcmVTdXBwb3J0
L1BhZ2VTdG9yYWdlU2Vzc2lvblByb3ZpZGVyLmgKaW5kZXggNzU2ZWFiZjNjMTllNTc5OGM5N2U2
MGI3OWMyNzFmZWM1N2U3NjgzYy4uZjIwYzJiNTQ5ZTMzYzY2ODgzNjY5OTM1NjgwOGMxY2JkYjdk
MDdhNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9XZWJDb3JlU3VwcG9ydC9QYWdl
U3RvcmFnZVNlc3Npb25Qcm92aWRlci5oCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvV2ViQ29y
ZVN1cHBvcnQvUGFnZVN0b3JhZ2VTZXNzaW9uUHJvdmlkZXIuaApAQCAtNDQsNyArNDQsNyBAQCBw
dWJsaWM6CiAKICAgICB2b2lkIHNldFBhZ2UoV2ViQ29yZTo6UGFnZSYgcGFnZSkKICAgICB7Ci0g
ICAgICAgIG1fcGFnZSA9IG1ha2VXZWFrUHRyKHBhZ2UpOworICAgICAgICBtX3BhZ2UgPSBwYWdl
OwogICAgIH0KIAogcHJpdmF0ZToKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvV2Vi
Q29yZVN1cHBvcnQvV2ViQnJvYWRjYXN0Q2hhbm5lbFJlZ2lzdHJ5LmNwcCBiL1NvdXJjZS9XZWJL
aXRMZWdhY3kvV2ViQ29yZVN1cHBvcnQvV2ViQnJvYWRjYXN0Q2hhbm5lbFJlZ2lzdHJ5LmNwcApp
bmRleCBkMTAzMjA4YzhmODYzM2Q2MDhhYzIzZTU3ZjRlZjM1Nzg2ZWQ0MmY2Li42NGM2NGIyY2Nj
MWE1ZDBiZDc0ZDNjMDRlNjgxOTQ4NGJmODI4MmU1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
TGVnYWN5L1dlYkNvcmVTdXBwb3J0L1dlYkJyb2FkY2FzdENoYW5uZWxSZWdpc3RyeS5jcHAKKysr
IGIvU291cmNlL1dlYktpdExlZ2FjeS9XZWJDb3JlU3VwcG9ydC9XZWJCcm9hZGNhc3RDaGFubmVs
UmVnaXN0cnkuY3BwCkBAIC00MCw3ICs0MCw3IEBAIFJlZjxXZWJCcm9hZGNhc3RDaGFubmVsUmVn
aXN0cnk+IFdlYkJyb2FkY2FzdENoYW5uZWxSZWdpc3RyeTo6Z2V0T3JDcmVhdGUoYm9vbCBwCiAg
ICAgICAgIHJldHVybiAqZXhpc3RpbmdSZWdpc3RyeS5nZXQoKTsKIAogICAgIGF1dG8gcmVnaXN0
cnkgPSBhZG9wdFJlZigqbmV3IFdlYkJyb2FkY2FzdENoYW5uZWxSZWdpc3RyeSk7Ci0gICAgZXhp
c3RpbmdSZWdpc3RyeS5nZXQoKSA9IG1ha2VXZWFrUHRyKHJlZ2lzdHJ5LmdldCgpKTsKKyAgICBl
eGlzdGluZ1JlZ2lzdHJ5LmdldCgpID0gcmVnaXN0cnk7CiAgICAgcmV0dXJuIHJlZ2lzdHJ5Owog
fQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJDb3JlU3VwcG9ydC9X
ZWJFZGl0b3JDbGllbnQubW0gYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJDb3JlU3VwcG9y
dC9XZWJFZGl0b3JDbGllbnQubW0KaW5kZXggYmQ1YzU2OTUxOWZjNThmMTI3ZTVlYmI1MjQ1ODJl
YTk0YTk4MDlhOS4uYzJjNDBkM2QyYTEzM2YyODEzNDE1NjAzNGRlNTQxNDFhNGNlOWMzMiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9y
Q2xpZW50Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dl
YkVkaXRvckNsaWVudC5tbQpAQCAtMTExNiw3ICsxMTE2LDcgQEAgdm9pZCBXZWJFZGl0b3JDbGll
bnQ6OnJlcXVlc3RDYW5kaWRhdGVzRm9yU2VsZWN0aW9uKGNvbnN0IFZpc2libGVTZWxlY3Rpb24m
IHNlbGUKICAgICBtX3BhcmFncmFwaENvbnRleHRGb3JDYW5kaWRhdGVSZXF1ZXN0ID0gY29udGV4
dEZvckNhbmRpZGF0ZVJlcWV1ZXN0OwogCiAgICAgTlNUZXh0Q2hlY2tpbmdUeXBlcyBjaGVja2lu
Z1R5cGVzID0gTlNUZXh0Q2hlY2tpbmdUeXBlU3BlbGxpbmcgfCBOU1RleHRDaGVja2luZ1R5cGVS
ZXBsYWNlbWVudCB8IE5TVGV4dENoZWNraW5nVHlwZUNvcnJlY3Rpb247Ci0gICAgYXV0byB3ZWFr
RWRpdG9yID0gbWFrZVdlYWtQdHIoKnRoaXMpOworICAgIFdlYWtQdHIgd2Vha0VkaXRvciB7ICp0
aGlzIH07CiAgICAgbV9sYXN0Q2FuZGlkYXRlUmVxdWVzdFNlcXVlbmNlTnVtYmVyID0gW1tOU1Nw
ZWxsQ2hlY2tlciBzaGFyZWRTcGVsbENoZWNrZXJdIHJlcXVlc3RDYW5kaWRhdGVzRm9yU2VsZWN0
ZWRSYW5nZTptX3JhbmdlRm9yQ2FuZGlkYXRlcyBpblN0cmluZzptX3BhcmFncmFwaENvbnRleHRG
b3JDYW5kaWRhdGVSZXF1ZXN0LmdldCgpIHR5cGVzOmNoZWNraW5nVHlwZXMgb3B0aW9uczpuaWwg
aW5TcGVsbERvY3VtZW50V2l0aFRhZzpzcGVsbENoZWNrZXJEb2N1bWVudFRhZygpIGNvbXBsZXRp
b25IYW5kbGVyOlt3ZWFrRWRpdG9yXShOU0ludGVnZXIgc2VxdWVuY2VOdW1iZXIsIE5TQXJyYXk8
TlNUZXh0Q2hlY2tpbmdSZXN1bHQgKj4gKmNhbmRpZGF0ZXMpIHsKICAgICAgICAgUnVuTG9vcDo6
bWFpbigpLmRpc3BhdGNoKFt3ZWFrRWRpdG9yLCBzZXF1ZW5jZU51bWJlciwgY2FuZGlkYXRlcyA9
IHJldGFpblB0cihjYW5kaWRhdGVzKV0gewogICAgICAgICAgICAgaWYgKCF3ZWFrRWRpdG9yKQpk
aWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4IDg3YWEz
Yzc4NTJhZTAwMGQwNDJiODM3MDIyYWEzNDdlOGY3NGJlZmUuLmQ0MTA5MDBkYWI0MjQ4MGQzNjA0
OGUxYWY2Zjk2MWY1OGYwNWE3NDQgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZworKysgYi9U
b29scy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxOSBAQAorMjAyMS0xMC0xMyAgQ2hyaXMgRHVtZXog
IDxjZHVtZXpAYXBwbGUuY29tPgorCisgICAgICAgIERyb3AgbWFrZVdlYWtQdHIoKSBhbmQgdXNl
IFdlYWtQdHIgeyB9IGRpcmVjdGx5CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0yMzE2NzkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvc3R5bGUvY2hlY2tlcnMvY3BwLnB5Ogor
ICAgICAgICAoY2hlY2tfY2FsbG9ubWFpbnRocmVhZCk6CisgICAgICAgIChwcm9jZXNzX2xpbmUp
OgorICAgICAgICAoY2hlY2tfbWFrZXdlYWtwdHIpOiBEZWxldGVkLgorICAgICAgICAqIFRlc3RX
ZWJLaXRBUEkvVGVzdHMvV1RGL09ic2VydmVyLmNwcDoKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6
OlRFU1QpOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL1dlYWtQdHIuY3BwOgor
ICAgICAgICAoVGVzdFdlYktpdEFQSTo6bWFrZVdlYWtQdHIpOgorCiAyMDIxLTEwLTEyICBKb25h
dGhhbiBCZWRhcmQgIDxqYmVkYXJkQGFwcGxlLmNvbT4KIAogICAgICAgICBbQXBwbGVTaWxpY29u
XSBTdXBwb3J0IG5hdGl2ZSBzaW11bGF0b3IgdGVzdGluZwpkaWZmIC0tZ2l0IGEvVG9vbHMvU2Ny
aXB0cy93ZWJraXRweS9zdHlsZS9jaGVja2Vycy9jcHAucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtp
dHB5L3N0eWxlL2NoZWNrZXJzL2NwcC5weQppbmRleCBlZDZjMTgxNzdlMTc4OWM3ZDJjODY1MzM0
NTcyNTU2MGYzZWFmZGVmLi44OTg1ZjkxOTcyZTljY2YxYmQ1NWRlYzIyOThhZGJmMzc4OWU1YTYy
IDEwMDY0NAotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3N0eWxlL2NoZWNrZXJzL2NwcC5w
eQorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3N0eWxlL2NoZWNrZXJzL2NwcC5weQpAQCAt
Mjc0MywyMyArMjc0Myw2IEBAIGRlZiBjaGVja19jYWxsb25tYWludGhyZWFkKGZpbGVuYW1lLCBj
bGVhbl9saW5lcywgbGluZV9udW1iZXIsIGZpbGVfc3RhdGUsIGVycm9yCiAgICAgICAgIGVycm9y
KGxpbmVfbnVtYmVyLCAncnVudGltZS9jYWxsb25tYWludGhyZWFkJywgNCwgIlVzZSAnY2FsbE9u
TWFpblJ1bkxvb3BBbmRXYWl0KCknIGluc3RlYWQgb2YgJ2NhbGxPbk1haW5UaHJlYWRBbmRXYWl0
KCknIGluIFNvdXJjZS9XZWJLaXQuIikKIAogCi1kZWYgY2hlY2tfbWFrZXdlYWtwdHIoY2xlYW5f
bGluZXMsIGxpbmVfbnVtYmVyLCBmaWxlX3N0YXRlLCBlcnJvcik6Ci0gICAgIiIiTG9va3MgZm9y
IHVzZSBvZiBsZWdhY3kgJ21ha2VXZWFrUHRyKCknLgotCi0gICAgQXJnczoKLSAgICAgIGNsZWFu
X2xpbmVzOiBBIENsZWFuc2VkTGluZXMgaW5zdGFuY2UgY29udGFpbmluZyB0aGUgZmlsZS4KLSAg
ICAgIGxpbmVfbnVtYmVyOiBUaGUgbnVtYmVyIG9mIHRoZSBsaW5lIHRvIGNoZWNrLgotICAgICAg
ZmlsZV9zdGF0ZTogQSBfRmlsZVN0YXRlIGluc3RhbmNlIHdoaWNoIG1haW50YWlucyBpbmZvcm1h
dGlvbiBhYm91dAotICAgICAgICAgICAgICAgICAgdGhlIHN0YXRlIG9mIHRoaW5ncyBpbiB0aGUg
ZmlsZS4KLSAgICAgIGVycm9yOiBUaGUgZnVuY3Rpb24gdG8gY2FsbCB3aXRoIGFueSBlcnJvcnMg
Zm91bmQuCi0gICAgIiIiCi0KLSAgICBsaW5lID0gY2xlYW5fbGluZXMuZWxpZGVkW2xpbmVfbnVt
YmVyXSAgIyBHZXQgcmlkIG9mIGNvbW1lbnRzIGFuZCBzdHJpbmdzLgotICAgIHVzaW5nX21ha2V3
ZWFrcHRyID0gc2VhcmNoKHInXGJtYWtlV2Vha1B0clxzKlwoJywgbGluZSkKLSAgICBpZiB1c2lu
Z19tYWtld2Vha3B0cjoKLSAgICAgICAgZXJyb3IobGluZV9udW1iZXIsICdydW50aW1lL21ha2V3
ZWFrcHRyJywgNCwgIlVzZSBXZWFrUHRyIHsgfSBkaXJlY3RseSBpbnN0ZWFkIG9mICdtYWtlV2Vh
a1B0cigpJy4iKQotCi0KIGRlZiBjaGVja19pc21haW50aHJlYWQoZmlsZW5hbWUsIGNsZWFuX2xp
bmVzLCBsaW5lX251bWJlciwgZmlsZV9zdGF0ZSwgZXJyb3IpOgogICAgICIiIkxvb2tzIGZvciB1
c2Ugb2YgJ2lzTWFpblRocmVhZCgpJyB3aGljaCBzaG91bGQgYmUgcmVwbGFjZWQgd2l0aCAnaXNN
YWluUnVuTG9vcCgpJy4KIApAQCAtNDUyMCw3ICs0NTAzLDYgQEAgZGVmIHByb2Nlc3NfbGluZShm
aWxlbmFtZSwgZmlsZV9leHRlbnNpb24sCiAgICAgY2hlY2tfZm9yX25vbl9zdGFuZGFyZF9jb25z
dHJ1Y3RzKGNsZWFuX2xpbmVzLCBsaW5lLCBjbGFzc19zdGF0ZSwgZXJyb3IpCiAgICAgY2hlY2tf
cG9zaXhfdGhyZWFkaW5nKGNsZWFuX2xpbmVzLCBsaW5lLCBlcnJvcikKICAgICBjaGVja19pbnZh
bGlkX2luY3JlbWVudChjbGVhbl9saW5lcywgbGluZSwgZXJyb3IpCi0gICAgY2hlY2tfbWFrZXdl
YWtwdHIoY2xlYW5fbGluZXMsIGxpbmUsIGZpbGVfc3RhdGUsIGVycm9yKQogICAgIGNoZWNrX29z
X3ZlcnNpb25fY2hlY2tzKGZpbGVuYW1lLCBjbGVhbl9saW5lcywgbGluZSwgZXJyb3IpCiAgICAg
Y2hlY2tfY2FsbG9ubWFpbnRocmVhZChmaWxlbmFtZSwgY2xlYW5fbGluZXMsIGxpbmUsIGZpbGVf
c3RhdGUsIGVycm9yKQogICAgIGNoZWNrX2lzbWFpbnRocmVhZChmaWxlbmFtZSwgY2xlYW5fbGlu
ZXMsIGxpbmUsIGZpbGVfc3RhdGUsIGVycm9yKQpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktp
dEFQSS9UZXN0cy9XVEYvT2JzZXJ2ZXIuY3BwIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9X
VEYvT2JzZXJ2ZXIuY3BwCmluZGV4IDk4MmJmMmI4NzI0Y2Q3Zjg5OWM3M2IyODRiYTE5Nzk3NGFk
ZjQzMTYuLjEwZDBlOGE0YzBlOTE5YjQ4ZmQ3MDU2YWU3NmY4MDliZmZjYzk0NTUgMTAwNjQ0Ci0t
LSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL09ic2VydmVyLmNwcAorKysgYi9Ub29s
cy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9PYnNlcnZlci5jcHAKQEAgLTQ5LDcgKzQ5LDcgQEAg
VEVTVChXVEZfT2JzZXJ2ZXIsIFdlYWspCiAgICAgICAgIHRlc3RWYWx1ZSA9IHZhbHVlOwogICAg
IH0pOwogCi0gICAgYXV0byB3ZWFrT2JzZXJ2ZXIgPSBtYWtlV2Vha1B0cih1bmlxdWVPYnNlcnZl
ci5nZXQoKSk7CisgICAgV2Vha1B0ciB3ZWFrT2JzZXJ2ZXIgPSB1bmlxdWVPYnNlcnZlci5nZXQo
KTsKIAogICAgIEFTU0VSVF9UUlVFKHN0YXRpY19jYXN0PGJvb2w+KHdlYWtPYnNlcnZlcikpOwog
CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9XZWFrUHRyLmNwcCBi
L1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL1dlYWtQdHIuY3BwCmluZGV4IDdiNTY0MzZk
MWQyNDI5NmVjODY1N2I2YzEwNWI5MmVlM2FjYzNlZmIuLmI0N2E0OWRhMzE2YzA5YzI1ZTYxYjk2
NjBlNWYxOTc0ZDhmZjFhMzkgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMv
V1RGL1dlYWtQdHIuY3BwCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL1dlYWtQ
dHIuY3BwCkBAIC00NCw2ICs0NCwyMCBAQCB0ZW1wbGF0ZTx0eXBlbmFtZSBUPiB1c2luZyBXZWFr
SGFzaFNldCA9IFdURjo6V2Vha0hhc2hTZXQ8VCwgV2Vha1B0ckNvdW50ZXI+OwogdGVtcGxhdGU8
dHlwZW5hbWUgVD4gdXNpbmcgV2Vha1B0ciA9IFdURjo6V2Vha1B0cjxULCBXZWFrUHRyQ291bnRl
cj47CiB0ZW1wbGF0ZTx0eXBlbmFtZSBUPiB1c2luZyBXZWFrUHRyRmFjdG9yeSA9IFdURjo6V2Vh
a1B0ckZhY3Rvcnk8VCwgV2Vha1B0ckNvdW50ZXI+OwogCisvLyBGSVhNRTogRHJvcCB3aGVuIHdl
IHN1cHBvcnQgQysrMjAuIEMrKzE3IGRvZXMgbm90IHN1cHBvcnQgdGVtcGxhdGUgcGFyYW1ldGVy
IGRlZHVjdGlvbiBmb3IgYWxpYXNlcyBhbmQgV2Vha1B0ciBpcyBhbiBhbGlhcyBpbiB0aGlzIGZp
bGUuCit0ZW1wbGF0ZTx0eXBlbmFtZSBULCB0eXBlbmFtZSA9IHN0ZDo6ZW5hYmxlX2lmX3Q8IVdU
Rjo6SXNTbWFydFB0cjxUPjo6dmFsdWU+PiBpbmxpbmUgYXV0byBtYWtlV2Vha1B0cihUJiBvYmpl
Y3QsIEVuYWJsZVdlYWtQdHJUaHJlYWRpbmdBc3NlcnRpb25zIGVuYWJsZVdlYWtQdHJUaHJlYWRp
bmdBc3NlcnRpb25zID0gRW5hYmxlV2Vha1B0clRocmVhZGluZ0Fzc2VydGlvbnM6OlllcykKK3sK
KyAgICByZXR1cm4gb2JqZWN0LndlYWtQdHJGYWN0b3J5KCkudGVtcGxhdGUgY3JlYXRlV2Vha1B0
cjxUPihvYmplY3QsIGVuYWJsZVdlYWtQdHJUaHJlYWRpbmdBc3NlcnRpb25zKTsKK30KKworLy8g
RklYTUU6IERyb3Agd2hlbiB3ZSBzdXBwb3J0IEMrKzIwLiBDKysxNyBkb2VzIG5vdCBzdXBwb3J0
IHRlbXBsYXRlIHBhcmFtZXRlciBkZWR1Y3Rpb24gZm9yIGFsaWFzZXMgYW5kIFdlYWtQdHIgaXMg
YW4gYWxpYXMgaW4gdGhpcyBmaWxlLgordGVtcGxhdGU8dHlwZW5hbWUgVCwgdHlwZW5hbWUgPSBz
dGQ6OmVuYWJsZV9pZl90PCFXVEY6OklzU21hcnRQdHI8VD46OnZhbHVlPj4gaW5saW5lIGF1dG8g
bWFrZVdlYWtQdHIoVCogcHRyLCBFbmFibGVXZWFrUHRyVGhyZWFkaW5nQXNzZXJ0aW9ucyBlbmFi
bGVXZWFrUHRyVGhyZWFkaW5nQXNzZXJ0aW9ucyA9IEVuYWJsZVdlYWtQdHJUaHJlYWRpbmdBc3Nl
cnRpb25zOjpZZXMpIC0+IGRlY2x0eXBlKG1ha2VXZWFrUHRyKCpwdHIpKQoreworICAgIGlmICgh
cHRyKQorICAgICAgICByZXR1cm4geyB9OworICAgIHJldHVybiBtYWtlV2Vha1B0cigqcHRyLCBl
bmFibGVXZWFrUHRyVGhyZWFkaW5nQXNzZXJ0aW9ucyk7Cit9CisKIHN0cnVjdCBJbnQgOiBwdWJs
aWMgQ2FuTWFrZVdlYWtQdHI8SW50PiB7CiAgICAgSW50KGludCBpKSA6IG1faShpKSB7IH0KICAg
ICBvcGVyYXRvciBpbnQoKSBjb25zdCB7IHJldHVybiBtX2k7IH0K
</data>
<flag name="commit-queue"
          id="465239"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>441096</attachid>
            <date>2021-10-13 10:27:18 -0700</date>
            <delta_ts>2021-10-13 14:08:59 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-231679-20211013102717.patch</filename>
            <type>text/plain</type>
            <size>211337</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg0MDkzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IGUwYjcxYTY3ZTE1ZGYxNjMxMWIyNWE5
NmU0YTk2MDhlMWY4NmI1YWQuLmEwNTA5YjhjZDFjMjJmMGRmOTgxZTFjYjBlNDU0YmE2MWNmNjJk
ODQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIwMjEtMTAtMTMgIENocmlzIER1bWV6ICA8Y2R1bWV6
QGFwcGxlLmNvbT4KKworICAgICAgICBEcm9wIG1ha2VXZWFrUHRyKCkgYW5kIHVzZSBXZWFrUHRy
IHsgfSBkaXJlY3RseQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MjMxNjc5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgKiB3dGYvV2Vha0hhc2hNYXAuaDoKKyAgICAgICAgKiB3dGYvV2Vha0hhc2hTZXQuaDoK
KyAgICAgICAgKFdURjo6Y29weVRvVmVjdG9yKToKKyAgICAgICAgKiB3dGYvV2Vha1B0ci5oOgor
ICAgICAgICAoV1RGOjptYWtlV2Vha1B0cik6IERlbGV0ZWQuCisKIDIwMjEtMTAtMTMgIENocmlz
IER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KIAogICAgICAgICBTdG9wIHVzaW5nIG1ha2VXZWFr
UHRyKCkgaW4gV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIv
U291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IDJjNDUxYTc1ZjIyZjY2MDQ0NmU4MGRlOThm
YjllMjUwYjU2ZjY3ZjEuLjZlYzdiM2U5Zjc3NzdjZTk3NjQzYWJmODA5NWViZGQ3YjE0NzYwYTIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxOCBAQAorMjAyMS0xMC0xMyAgQ2hyaXMgRHVtZXogIDxj
ZHVtZXpAYXBwbGUuY29tPgorCisgICAgICAgIERyb3AgbWFrZVdlYWtQdHIoKSBhbmQgdXNlIFdl
YWtQdHIgeyB9IGRpcmVjdGx5CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0yMzE2NzkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICAqIE1vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVtU3luY0FjY2Vz
c0hhbmRsZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRs
ZTo6dHJ1bmNhdGUpOgorICAgICAgICAoV2ViQ29yZTo6RmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5k
bGU6OmdldFNpemUpOgorICAgICAgICAoV2ViQ29yZTo6RmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5k
bGU6OmZsdXNoKToKKyAgICAgICAgKFdlYkNvcmU6OkZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxl
OjpjbG9zZSk6CisgICAgICAgICogZG9tL0VsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
RWxlbWVudDo6YWRkU2hhZG93Um9vdCk6CisKIDIwMjEtMTAtMTMgIENocmlzIER1bWV6ICA8Y2R1
bWV6QGFwcGxlLmNvbT4KIAogICAgICAgICBTdG9wIHVzaW5nIG1ha2VXZWFrUHRyKCkgaW4gV2Vi
Q29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0
L0NoYW5nZUxvZwppbmRleCA2YTA3M2I5M2FiYzM2NzU3NTk2NTQ1NzQ2Yjc3NDY1OGJiMGJiMGNh
Li4xNzM2NzAwNmViN2QyZjMxOTcxZWRlMTkxMDBkNDE0ODU2OWU4MjNkIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAt
MSwzICsxLDM4MyBAQAorMjAyMS0xMC0xMyAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29t
PgorCisgICAgICAgIERyb3AgbWFrZVdlYWtQdHIoKSBhbmQgdXNlIFdlYWtQdHIgeyB9IGRpcmVj
dGx5CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzE2
NzkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIEdQ
VVByb2Nlc3MvR1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5jcHA6CisgICAgICAgIChXZWJLaXQ6
OkdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OkdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MpOgor
ICAgICAgICAqIEdQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlR3JhcGhpY3NDb250ZXh0R0wuY3Bw
OgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVHcmFwaGljc0NvbnRleHRHTDo6UmVtb3RlR3JhcGhp
Y3NDb250ZXh0R0wpOgorICAgICAgICAqIEdQVVByb2Nlc3MvbWVkaWEvUmVtb3RlQXVkaW9IYXJk
d2FyZUxpc3RlbmVyUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVBdWRpb0hhcmR3
YXJlTGlzdGVuZXJQcm94eTo6UmVtb3RlQXVkaW9IYXJkd2FyZUxpc3RlbmVyUHJveHkpOgorICAg
ICAgICAqIEdQVVByb2Nlc3MvbWVkaWEvUmVtb3RlQXVkaW9UcmFja1Byb3h5LmNwcDoKKyAgICAg
ICAgKFdlYktpdDo6UmVtb3RlQXVkaW9UcmFja1Byb3h5OjpSZW1vdGVBdWRpb1RyYWNrUHJveHkp
OgorICAgICAgICAqIEdQVVByb2Nlc3MvbWVkaWEvUmVtb3RlQ0RNRmFjdG9yeVByb3h5LmNwcDoK
KyAgICAgICAgKFdlYktpdDo6UmVtb3RlQ0RNRmFjdG9yeVByb3h5OjpSZW1vdGVDRE1GYWN0b3J5
UHJveHkpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVDRE1GYWN0b3J5UHJveHk6OmNyZWF0ZUNE
TSk6CisgICAgICAgICogR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVDRE1JbnN0YW5jZVByb3h5LmNw
cDoKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlQ0RNSW5zdGFuY2VQcm94eTo6UmVtb3RlQ0RNSW5z
dGFuY2VQcm94eSk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUNETUluc3RhbmNlUHJveHk6OmNy
ZWF0ZVNlc3Npb24pOgorICAgICAgICAqIEdQVVByb2Nlc3MvbWVkaWEvUmVtb3RlQ0RNSW5zdGFu
Y2VTZXNzaW9uUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVDRE1JbnN0YW5jZVNl
c3Npb25Qcm94eTo6Y3JlYXRlKToKKyAgICAgICAgKiBHUFVQcm9jZXNzL21lZGlhL1JlbW90ZUNE
TVByb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlQ0RNUHJveHk6OmNyZWF0ZUluc3Rh
bmNlKToKKyAgICAgICAgKiBHUFVQcm9jZXNzL21lZGlhL1JlbW90ZUltYWdlRGVjb2RlckFWRlBy
b3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlSW1hZ2VEZWNvZGVyQVZGUHJveHk6OlJl
bW90ZUltYWdlRGVjb2RlckFWRlByb3h5KToKKyAgICAgICAgKiBHUFVQcm9jZXNzL21lZGlhL1Jl
bW90ZUxlZ2FjeUNETUZhY3RvcnlQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUxl
Z2FjeUNETUZhY3RvcnlQcm94eTo6UmVtb3RlTGVnYWN5Q0RNRmFjdG9yeVByb3h5KToKKyAgICAg
ICAgKFdlYktpdDo6UmVtb3RlTGVnYWN5Q0RNRmFjdG9yeVByb3h5OjpjcmVhdGVDRE0pOgorICAg
ICAgICAqIEdQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTGVnYWN5Q0RNUHJveHkuY3BwOgorICAgICAg
ICAoV2ViS2l0OjpSZW1vdGVMZWdhY3lDRE1Qcm94eTo6Y3JlYXRlU2Vzc2lvbik6CisgICAgICAg
ICogR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVBsYXllck1hbmFnZXJQcm94eS5jcHA6Cisg
ICAgICAgIChXZWJLaXQ6OlJlbW90ZU1lZGlhUGxheWVyTWFuYWdlclByb3h5OjpSZW1vdGVNZWRp
YVBsYXllck1hbmFnZXJQcm94eSk6CisgICAgICAgICogR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVN
ZWRpYVBsYXllclByb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlTWVkaWFQbGF5ZXJQ
cm94eTo6UmVtb3RlTWVkaWFQbGF5ZXJQcm94eSk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZU1l
ZGlhUGxheWVyUHJveHk6OnNldExlZ2FjeUNETVNlc3Npb24pOgorICAgICAgICAqIEdQVVByb2Nl
c3MvbWVkaWEvUmVtb3RlTWVkaWFSZXNvdXJjZS5jcHA6CisgICAgICAgIChXZWJLaXQ6OlJlbW90
ZU1lZGlhUmVzb3VyY2U6OlJlbW90ZU1lZGlhUmVzb3VyY2UpOgorICAgICAgICAqIEdQVVByb2Nl
c3MvbWVkaWEvUmVtb3RlTWVkaWFSZXNvdXJjZUxvYWRlci5jcHA6CisgICAgICAgIChXZWJLaXQ6
OlJlbW90ZU1lZGlhUmVzb3VyY2VMb2FkZXI6OlJlbW90ZU1lZGlhUmVzb3VyY2VMb2FkZXIpOgor
ICAgICAgICAqIEdQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFTb3VyY2VQcm94eS5jcHA6Cisg
ICAgICAgIChXZWJLaXQ6OlJlbW90ZU1lZGlhU291cmNlUHJveHk6OlJlbW90ZU1lZGlhU291cmNl
UHJveHkpOgorICAgICAgICAqIEdQVVByb2Nlc3MvbWVkaWEvUmVtb3RlUmVtb3RlQ29tbWFuZExp
c3RlbmVyUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVSZW1vdGVDb21tYW5kTGlz
dGVuZXJQcm94eTo6UmVtb3RlUmVtb3RlQ29tbWFuZExpc3RlbmVyUHJveHkpOgorICAgICAgICAq
IEdQVVByb2Nlc3MvbWVkaWEvUmVtb3RlU291cmNlQnVmZmVyUHJveHkuY3BwOgorICAgICAgICAo
V2ViS2l0OjpSZW1vdGVTb3VyY2VCdWZmZXJQcm94eTo6UmVtb3RlU291cmNlQnVmZmVyUHJveHkp
OgorICAgICAgICAqIEdQVVByb2Nlc3MvbWVkaWEvUmVtb3RlVGV4dFRyYWNrUHJveHkuY3BwOgor
ICAgICAgICAoV2ViS2l0OjpSZW1vdGVUZXh0VHJhY2tQcm94eTo6UmVtb3RlVGV4dFRyYWNrUHJv
eHkpOgorICAgICAgICAqIEdQVVByb2Nlc3MvbWVkaWEvUmVtb3RlVmlkZW9UcmFja1Byb3h5LmNw
cDoKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlVmlkZW9UcmFja1Byb3h5OjpSZW1vdGVWaWRlb1Ry
YWNrUHJveHkpOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL0NsYXNzaWZpZXIvV2ViUmVzb3Vy
Y2VMb2FkU3RhdGlzdGljc1N0b3JlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUmVzb3VyY2VM
b2FkU3RhdGlzdGljc1N0b3JlOjpXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmUpOgorICAg
ICAgICAqIE5ldHdvcmtQcm9jZXNzL0Rvd25sb2Fkcy9jb2NvYS9XS0Rvd25sb2FkUHJvZ3Jlc3Mu
bW06CisgICAgICAgICgtW1dLRG93bmxvYWRQcm9ncmVzcyBpbml0V2l0aERvd25sb2FkVGFzazpk
b3dubG9hZDpVUkw6c2FuZGJveEV4dGVuc2lvbjpdKToKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vz
cy9OZXR3b3JrQ09SU1ByZWZsaWdodENoZWNrZXIuY3BwOgorICAgICAgICAoV2ViS2l0OjpOZXR3
b3JrQ09SU1ByZWZsaWdodENoZWNrZXI6Ok5ldHdvcmtDT1JTUHJlZmxpZ2h0Q2hlY2tlcik6Cisg
ICAgICAgICogTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuY3Bw
OgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6ZXN0YWJs
aXNoU1dTZXJ2ZXJDb25uZWN0aW9uKToKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3Jr
RGF0YVRhc2suY3BwOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrRGF0YVRhc2s6Ok5ldHdvcmtE
YXRhVGFzayk6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvTmV0d29ya0xvYWQuY3BwOgorICAg
ICAgICAoV2ViS2l0OjpOZXR3b3JrTG9hZDo6c3RhcnRXaXRoU2NoZWR1bGluZyk6CisgICAgICAg
ICogTmV0d29ya1Byb2Nlc3MvTmV0d29ya0xvYWRDaGVja2VyLmNwcDoKKyAgICAgICAgKFdlYktp
dDo6TmV0d29ya0xvYWRDaGVja2VyOjpOZXR3b3JrTG9hZENoZWNrZXIpOgorICAgICAgICAqIE5l
dHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmNwcDoKKyAgICAgICAgKFdlYktpdDo6TmV0d29y
a1Byb2Nlc3M6OnByZWNvbm5lY3RUbyk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNz
OjpkZWxldGVBbmRSZXN0cmljdFdlYnNpdGVEYXRhRm9yUmVnaXN0cmFibGVEb21haW5zKToKKyAg
ICAgICAgKFdlYktpdDo6TmV0d29ya1Byb2Nlc3M6OnNpbXVsYXRlUmVzb3VyY2VMb2FkU3RhdGlz
dGljc1Nlc3Npb25SZXN0YXJ0KToKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUmVz
b3VyY2VMb2FkZXIuY3BwOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUmVzb3VyY2VMb2FkZXI6
OnNlbmREaWRSZWNlaXZlUmVzcG9uc2VQb3RlbnRpYWxseUluTmV3QnJvd3NpbmdDb250ZXh0R3Jv
dXApOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtTb2NrZXRDaGFubmVsLmNwcDoK
KyAgICAgICAgKFdlYktpdDo6TmV0d29ya1NvY2tldENoYW5uZWw6Ok5ldHdvcmtTb2NrZXRDaGFu
bmVsKToKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrU3RvcmFnZVNlc3Npb25Qcm92
aWRlci5oOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL1ByaXZhdGVDbGlja01lYXN1cmVtZW50
L1ByaXZhdGVDbGlja01lYXN1cmVtZW50Q2xpZW50SW1wbC5jcHA6CisgICAgICAgIChXZWJLaXQ6
OlBDTTo6Q2xpZW50SW1wbDo6Q2xpZW50SW1wbCk6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3Mv
UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRDb25uZWN0aW9u
LmNwcDoKKyAgICAgICAgKFdlYktpdDo6UENNOjpDb25uZWN0aW9uVG9NYWNoU2VydmljZTo6Q29u
bmVjdGlvblRvTWFjaFNlcnZpY2UpOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL1ByaXZhdGVD
bGlja01lYXN1cmVtZW50L2NvY29hL1ByaXZhdGVDbGlja01lYXN1cmVtZW50Q29ubmVjdGlvbkNv
Y29hLm1tOgorICAgICAgICAoV2ViS2l0OjpQQ006OkNvbm5lY3Rpb25Ub01hY2hTZXJ2aWNlOjpp
bml0aWFsaXplQ29ubmVjdGlvbklmTmVlZGVkIGNvbnN0KToKKyAgICAgICAgKiBOZXR3b3JrUHJv
Y2Vzcy9TZXJ2aWNlV29ya2VyL1NlcnZpY2VXb3JrZXJGZXRjaFRhc2suY3BwOgorICAgICAgICAo
V2ViS2l0OjpTZXJ2aWNlV29ya2VyRmV0Y2hUYXNrOjpTZXJ2aWNlV29ya2VyRmV0Y2hUYXNrKToK
KyAgICAgICAgKFdlYktpdDo6U2VydmljZVdvcmtlckZldGNoVGFzazo6c3RhcnQpOgorICAgICAg
ICAqIE5ldHdvcmtQcm9jZXNzL1NlcnZpY2VXb3JrZXIvU2VydmljZVdvcmtlclNvZnRVcGRhdGVM
b2FkZXIuY3BwOgorICAgICAgICAoV2ViS2l0OjpTZXJ2aWNlV29ya2VyU29mdFVwZGF0ZUxvYWRl
cjo6U2VydmljZVdvcmtlclNvZnRVcGRhdGVMb2FkZXIpOgorICAgICAgICAqIE5ldHdvcmtQcm9j
ZXNzL1NlcnZpY2VXb3JrZXIvV2ViU1dTZXJ2ZXJUb0NvbnRleHRDb25uZWN0aW9uLmNwcDoKKyAg
ICAgICAgKFdlYktpdDo6V2ViU1dTZXJ2ZXJUb0NvbnRleHRDb25uZWN0aW9uOjpXZWJTV1NlcnZl
clRvQ29udGV4dENvbm5lY3Rpb24pOgorICAgICAgICAoV2ViS2l0OjpXZWJTV1NlcnZlclRvQ29u
dGV4dENvbm5lY3Rpb246OnJlZ2lzdGVyRmV0Y2gpOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNz
L1dlYlN0b3JhZ2UvU3RvcmFnZUFyZWEuY3BwOgorICAgICAgICAoV2ViS2l0OjpTdG9yYWdlQXJl
YTo6U3RvcmFnZUFyZWEpOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL1dlYlN0b3JhZ2UvU3Rv
cmFnZU1hbmFnZXJTZXQuY3BwOgorICAgICAgICAoV2ViS2l0OjpTdG9yYWdlTWFuYWdlclNldDo6
Y29ubmVjdFRvTG9jYWxTdG9yYWdlQXJlYSk6CisgICAgICAgIChXZWJLaXQ6OlN0b3JhZ2VNYW5h
Z2VyU2V0Ojpjb25uZWN0VG9UcmFuc2llbnRMb2NhbFN0b3JhZ2VBcmVhKToKKyAgICAgICAgKFdl
YktpdDo6U3RvcmFnZU1hbmFnZXJTZXQ6OmNvbm5lY3RUb1Nlc3Npb25TdG9yYWdlQXJlYSk6Cisg
ICAgICAgICogTmV0d29ya1Byb2Nlc3MvY2FjaGUvQ2FjaGVTdG9yYWdlRW5naW5lLmNwcDoKKyAg
ICAgICAgKFdlYktpdDo6Q2FjaGVTdG9yYWdlOjpFbmdpbmU6OkVuZ2luZSk6CisgICAgICAgICog
TmV0d29ya1Byb2Nlc3MvY29jb2EvTmV0d29ya0RhdGFUYXNrQ29jb2EubW06CisgICAgICAgIChX
ZWJLaXQ6Ok5ldHdvcmtEYXRhVGFza0NvY29hOjpOZXR3b3JrRGF0YVRhc2tDb2NvYSk6CisgICAg
ICAgIChXZWJLaXQ6Ok5ldHdvcmtEYXRhVGFza0NvY29hOjpzd2FwU2Vzc2lvbklmTmVjZXNzYXJ5
KToKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9jb2NvYS9OZXR3b3JrU2Vzc2lvbkNvY29hLm1t
OgorICAgICAgICAoLVtXS05ldHdvcmtTZXNzaW9uRGVsZWdhdGUgaW5pdFdpdGhOZXR3b3JrU2Vz
c2lvbjp3cmFwcGVyOndpdGhDcmVkZW50aWFsczpdKToKKyAgICAgICAgKC1bV0tOZXR3b3JrU2Vz
c2lvbkRlbGVnYXRlIFVSTFNlc3Npb246dGFzazpkaWRSZWNlaXZlQ2hhbGxlbmdlOmNvbXBsZXRp
b25IYW5kbGVyOl0pOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrU2Vzc2lvbkNvY29hOjpjcmVh
dGVXZWJTb2NrZXRUYXNrKToKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Nlc3Npb25Db2NvYTo6
YWRkV2ViUGFnZU5ldHdvcmtQYXJhbWV0ZXJzKToKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9z
dG9yYWdlL0ZpbGVTeXN0ZW1TdG9yYWdlSGFuZGxlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6Rmls
ZVN5c3RlbVN0b3JhZ2VIYW5kbGU6OkZpbGVTeXN0ZW1TdG9yYWdlSGFuZGxlKToKKyAgICAgICAg
KiBOZXR3b3JrUHJvY2Vzcy9zdG9yYWdlL0ZpbGVTeXN0ZW1TdG9yYWdlSGFuZGxlUmVnaXN0cnku
Y3BwOgorICAgICAgICAoV2ViS2l0OjpGaWxlU3lzdGVtU3RvcmFnZUhhbmRsZVJlZ2lzdHJ5Ojpy
ZWdpc3RlckhhbmRsZSk6CisgICAgICAgICogUGxhdGZvcm0vSVBDL0Nvbm5lY3Rpb24uY3BwOgor
ICAgICAgICAoSVBDOjpDb25uZWN0aW9uOjphZGRNZXNzYWdlT2JzZXJ2ZXIpOgorICAgICAgICAq
IFBsYXRmb3JtL0lQQy9NZXNzYWdlUmVjZWl2ZXJNYXAuY3BwOgorICAgICAgICAoSVBDOjpNZXNz
YWdlUmVjZWl2ZXJNYXA6OmFkZE1lc3NhZ2VSZWNlaXZlcik6CisgICAgICAgICogUGxhdGZvcm0v
Y29jb2EvV0tQYXltZW50QXV0aG9yaXphdGlvbkRlbGVnYXRlLm1tOgorICAgICAgICAoLVtXS1Bh
eW1lbnRBdXRob3JpemF0aW9uRGVsZWdhdGUgX2luaXRXaXRoUmVxdWVzdDpwcmVzZW50ZXI6XSk6
CisgICAgICAgICogU2hhcmVkL0FwcGxlUGF5L1dlYlBheW1lbnRDb29yZGluYXRvclByb3h5LmNw
cDoKKyAgICAgICAgKFdlYktpdDo6V2ViUGF5bWVudENvb3JkaW5hdG9yUHJveHk6OnNob3dQYXlt
ZW50VUkpOgorICAgICAgICAqIFNoYXJlZC9XZWJTUUxpdGVEYXRhYmFzZVRyYWNrZXIuaDoKKyAg
ICAgICAgKiBTaGFyZWQvWFIvWFJEZXZpY2VQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OlhS
RGV2aWNlUHJveHk6OlhSRGV2aWNlUHJveHkpOgorICAgICAgICAqIFNoYXJlZC9tYWMvU2VjSXRl
bVNoaW0uY3BwOgorICAgICAgICAoV2ViS2l0Ojppbml0aWFsaXplU2VjSXRlbVNoaW0pOgorICAg
ICAgICAqIFVJUHJvY2Vzcy9BUEkvQVBJQXR0YWNobWVudC5jcHA6CisgICAgICAgIChBUEk6OkF0
dGFjaG1lbnQ6OkF0dGFjaG1lbnQpOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQVBJSFRUUENv
b2tpZVN0b3JlLmNwcDoKKyAgICAgICAgKEFQSTo6SFRUUENvb2tpZVN0b3JlOjpIVFRQQ29va2ll
U3RvcmUpOgorICAgICAgICAoQVBJOjpIVFRQQ29va2llU3RvcmU6OnJlZ2lzdGVyT2JzZXJ2ZXIp
OgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQVBJSW5zcGVjdG9yRXh0ZW5zaW9uLmNwcDoKKyAg
ICAgICAgKEFQSTo6SW5zcGVjdG9yRXh0ZW5zaW9uOjpJbnNwZWN0b3JFeHRlbnNpb24pOgorICAg
ICAgICAqIFVJUHJvY2Vzcy9BUEkvQVBJV2ViQXV0aGVudGljYXRpb25QYW5lbC5jcHA6CisgICAg
ICAgIChBUEk6OldlYkF1dGhlbnRpY2F0aW9uUGFuZWw6OldlYkF1dGhlbnRpY2F0aW9uUGFuZWwp
OgorICAgICAgICAoQVBJOjpXZWJBdXRoZW50aWNhdGlvblBhbmVsOjpoYW5kbGVSZXF1ZXN0KToK
KyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlldy5tbToKKyAgICAgICAgKC1b
V0tXZWJWaWV3IF9yZW1vdmVEYXRhRGV0ZWN0ZWRMaW5rczpdKToKKyAgICAgICAgKiBVSVByb2Nl
c3MvQVBJL0NvY29hL1dLV2ViVmlld1Rlc3RpbmcubW06CisgICAgICAgICgtW1dLTWVkaWFTZXNz
aW9uQ29vcmRpbmF0b3JIZWxwZXIgaW5pdFdpdGhDb29yZGluYXRvcjpdKToKKyAgICAgICAgKiBV
SVByb2Nlc3MvQVBJL0NvY29hL19XS1dlYkF1dGhlbnRpY2F0aW9uUGFuZWwubW06CisgICAgICAg
ICgtW19XS1dlYkF1dGhlbnRpY2F0aW9uUGFuZWwgc2V0RGVsZWdhdGU6XSk6CisgICAgICAgICog
VUlQcm9jZXNzL0FQSS9pb3MvV0tXZWJWaWV3SU9TLm1tOgorICAgICAgICAoLVtXS1dlYlZpZXcg
X2RldGVjdERhdGFXaXRoVHlwZXM6Y29tcGxldGlvbkhhbmRsZXI6XSk6CisgICAgICAgICogVUlQ
cm9jZXNzL0NvY29hL0dyb3VwQWN0aXZpdGllcy9Hcm91cEFjdGl2aXRpZXNDb29yZGluYXRvci5t
bToKKyAgICAgICAgKC1bV0tHcm91cEFjdGl2aXRpZXNDb29yZGluYXRvckRlbGVnYXRlIGluaXRX
aXRoUGFyZW50Ol0pOgorICAgICAgICAqIFVJUHJvY2Vzcy9Db2NvYS9MZWdhY3lDdXN0b21Qcm90
b2NvbE1hbmFnZXJDbGllbnQubW06CisgICAgICAgICgtW1dLQ3VzdG9tUHJvdG9jb2xMb2FkZXIg
aW5pdFdpdGhMZWdhY3lDdXN0b21Qcm90b2NvbE1hbmFnZXJQcm94eTpjdXN0b21Qcm90b2NvbElE
OnJlcXVlc3Q6XSk6CisgICAgICAgICogVUlQcm9jZXNzL0NvY29hL05hdmlnYXRpb25TdGF0ZS5t
bToKKyAgICAgICAgKFdlYktpdDo6TmF2aWdhdGlvblN0YXRlOjpOYXZpZ2F0aW9uU3RhdGUpOgor
ICAgICAgICAoV2ViS2l0OjpOYXZpZ2F0aW9uU3RhdGU6Ok5hdmlnYXRpb25DbGllbnQ6Ok5hdmln
YXRpb25DbGllbnQpOgorICAgICAgICAoV2ViS2l0Ojp0cnlJbnRlcmNlcHROYXZpZ2F0aW9uKToK
KyAgICAgICAgKFdlYktpdDo6TmF2aWdhdGlvblN0YXRlOjpIaXN0b3J5Q2xpZW50OjpIaXN0b3J5
Q2xpZW50KToKKyAgICAgICAgKiBVSVByb2Nlc3MvQ29jb2EvU09BdXRob3JpemF0aW9uL1BvcFVw
U09BdXRob3JpemF0aW9uU2Vzc2lvbi5tbToKKyAgICAgICAgKC1bV0tTT1NlY3JldERlbGVnYXRl
IGluaXRXaXRoU2Vzc2lvbjpdKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQ29jb2EvU09BdXRob3Jp
emF0aW9uL1NPQXV0aG9yaXphdGlvblNlc3Npb24ubW06CisgICAgICAgIChXZWJLaXQ6OlNPQXV0
aG9yaXphdGlvblNlc3Npb246OlNPQXV0aG9yaXphdGlvblNlc3Npb24pOgorICAgICAgICAqIFVJ
UHJvY2Vzcy9Db2NvYS9VSURlbGVnYXRlLm1tOgorICAgICAgICAoV2ViS2l0OjpVSURlbGVnYXRl
OjpDb250ZXh0TWVudUNsaWVudDo6Q29udGV4dE1lbnVDbGllbnQpOgorICAgICAgICAoV2ViS2l0
OjpVSURlbGVnYXRlOjpVSUNsaWVudDo6VUlDbGllbnQpOgorICAgICAgICAoV2ViS2l0OjpVSURl
bGVnYXRlOjpVSUNsaWVudDo6ZGVjaWRlUG9saWN5Rm9yR2VvbG9jYXRpb25QZXJtaXNzaW9uUmVx
dWVzdCk6CisgICAgICAgIChXZWJLaXQ6OlVJRGVsZWdhdGU6OlVJQ2xpZW50OjpzaG91bGRBbGxv
d0RldmljZU9yaWVudGF0aW9uQW5kTW90aW9uQWNjZXNzKToKKyAgICAgICAgKiBVSVByb2Nlc3Mv
Q29jb2EvV2ViUGFzdGVib2FyZFByb3h5Q29jb2EubW06CisgICAgICAgIChXZWJLaXQ6OldlYlBh
c3RlYm9hcmRQcm94eTo6Z3JhbnRBY2Nlc3MpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYXN0ZWJv
YXJkUHJveHk6OmRpZE1vZGlmeUNvbnRlbnRzT2ZQYXN0ZWJvYXJkKToKKyAgICAgICAgKFdlYktp
dDo6V2ViUGFzdGVib2FyZFByb3h5OjpQYXN0ZWJvYXJkQWNjZXNzSW5mb3JtYXRpb246OmdyYW50
QWNjZXNzKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQ29jb2EvV2ViUHJvY2Vzc1Bvb2xDb2NvYS5t
bToKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzc1Bvb2w6OnNldE1lZGlhQWNjZXNzaWJpbGl0
eVByZWZlcmVuY2VzKToKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzc1Bvb2w6OnJlZ2lzdGVy
Tm90aWZpY2F0aW9uT2JzZXJ2ZXJzKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQ29jb2EvV2ViVmll
d0ltcGwubW06CisgICAgICAgICgtW1dLRE9NUGFzdGVNZW51RGVsZWdhdGUgaW5pdFdpdGhXZWJW
aWV3SW1wbDpdKToKKyAgICAgICAgKiBVSVByb2Nlc3MvRG93bmxvYWRzL0Rvd25sb2FkUHJveHku
Y3BwOgorICAgICAgICAoV2ViS2l0OjpEb3dubG9hZFByb3h5OjpEb3dubG9hZFByb3h5KToKKyAg
ICAgICAgKiBVSVByb2Nlc3MvR1BVL0dQVVByb2Nlc3NQcm94eS5jcHA6CisgICAgICAgIChXZWJL
aXQ6OkdQVVByb2Nlc3NQcm94eTo6Z2V0T3JDcmVhdGUpOgorICAgICAgICAqIFVJUHJvY2Vzcy9J
bnNwZWN0b3IvSW5zcGVjdG9yVGFyZ2V0UHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpJbnNw
ZWN0b3JUYXJnZXRQcm94eTo6Y3JlYXRlKToKKyAgICAgICAgKiBVSVByb2Nlc3MvSW5zcGVjdG9y
L1dlYkluc3BlY3RvclVJRXh0ZW5zaW9uQ29udHJvbGxlclByb3h5LmNwcDoKKyAgICAgICAgKFdl
YktpdDo6V2ViSW5zcGVjdG9yVUlFeHRlbnNpb25Db250cm9sbGVyUHJveHk6OldlYkluc3BlY3Rv
clVJRXh0ZW5zaW9uQ29udHJvbGxlclByb3h5KToKKyAgICAgICAgKiBVSVByb2Nlc3MvTGF1bmNo
ZXIvbWFjL1Byb2Nlc3NMYXVuY2hlck1hYy5tbToKKyAgICAgICAgKFdlYktpdDo6UHJvY2Vzc0xh
dW5jaGVyOjpsYXVuY2hQcm9jZXNzKToKKyAgICAgICAgKiBVSVByb2Nlc3MvTWVkaWEvUmVtb3Rl
TWVkaWFTZXNzaW9uQ29vcmRpbmF0b3JQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OlJlbW90
ZU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yUHJveHk6OlJlbW90ZU1lZGlhU2Vzc2lvbkNvb3JkaW5h
dG9yUHJveHkpOgorICAgICAgICAqIFVJUHJvY2Vzcy9NZWRpYUtleVN5c3RlbVBlcm1pc3Npb25S
ZXF1ZXN0UHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpNZWRpYUtleVN5c3RlbVBlcm1pc3Np
b25SZXF1ZXN0UHJveHk6Ok1lZGlhS2V5U3lzdGVtUGVybWlzc2lvblJlcXVlc3RQcm94eSk6Cisg
ICAgICAgICogVUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5jcHA6CisgICAg
ICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzUHJveHk6OmRpZFJlY2VpdmVBdXRoZW50aWNhdGlv
bkNoYWxsZW5nZSk6CisgICAgICAgICogVUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQ
cm94eUNvY29hLm1tOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUHJvY2Vzc1Byb3h5OjpYUENF
dmVudEhhbmRsZXI6OlhQQ0V2ZW50SGFuZGxlcik6CisgICAgICAgICogVUlQcm9jZXNzL1BERi9X
S1BERkhVRFZpZXcubW06CisgICAgICAgICgtW1dLUERGSFVEVmlldyBpbml0V2l0aEZyYW1lOnBs
dWdpbklkZW50aWZpZXI6cGFnZTpdKToKKyAgICAgICAgKiBVSVByb2Nlc3MvU3BlZWNoUmVjb2du
aXRpb25QZXJtaXNzaW9uUmVxdWVzdC5oOgorICAgICAgICAoV2ViS2l0OjpTcGVlY2hSZWNvZ25p
dGlvblBlcm1pc3Npb25SZXF1ZXN0OjpTcGVlY2hSZWNvZ25pdGlvblBlcm1pc3Npb25SZXF1ZXN0
KToKKyAgICAgICAgKiBVSVByb2Nlc3MvU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1l
ZGlhU291cmNlLmNwcDoKKyAgICAgICAgKiBVSVByb2Nlc3MvU3BlZWNoUmVjb2duaXRpb25SZW1v
dGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlci5jcHA6CisgICAgICAgIChXZWJLaXQ6OlNwZWVj
aFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXI6OmFkZFNvdXJjZSk6
CisgICAgICAgICogVUlQcm9jZXNzL1ZpZXdHZXN0dXJlQ29udHJvbGxlci5jcHA6CisgICAgICAg
IChXZWJLaXQ6OlZpZXdHZXN0dXJlQ29udHJvbGxlcjo6c2V0QWx0ZXJuYXRlQmFja0ZvcndhcmRM
aXN0U291cmNlUGFnZSk6CisgICAgICAgICogVUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL0F1
dGhlbnRpY2F0b3IuaDoKKyAgICAgICAgKFdlYktpdDo6QXV0aGVudGljYXRvcjo6c2V0T2JzZXJ2
ZXIpOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9BdXRoZW50aWNhdG9y
TWFuYWdlci5jcHA6CisgICAgICAgIChXZWJLaXQ6OkF1dGhlbnRpY2F0b3JNYW5hZ2VyOjpydW5Q
YW5lbCk6CisgICAgICAgIChXZWJLaXQ6OkF1dGhlbnRpY2F0b3JNYW5hZ2VyOjpkaXNwYXRjaFBh
bmVsQ2xpZW50Q2FsbCBjb25zdCk6CisgICAgICAgICogVUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0
aW9uL0F1dGhlbnRpY2F0b3JUcmFuc3BvcnRTZXJ2aWNlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6
QXV0aGVudGljYXRvclRyYW5zcG9ydFNlcnZpY2U6OkF1dGhlbnRpY2F0b3JUcmFuc3BvcnRTZXJ2
aWNlKToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViQXV0aGVudGljYXRpb24vQ29jb2EvQXV0aGVu
dGljYXRvclByZXNlbnRlckNvb3JkaW5hdG9yLm1tOgorICAgICAgICAoV2ViS2l0OjpBdXRoZW50
aWNhdG9yUHJlc2VudGVyQ29vcmRpbmF0b3I6OkF1dGhlbnRpY2F0b3JQcmVzZW50ZXJDb29yZGlu
YXRvcik6CisgICAgICAgICogVUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL0NvY29hL05mY0Nv
bm5lY3Rpb24ubW06CisgICAgICAgIChXZWJLaXQ6Ok5mY0Nvbm5lY3Rpb246Ok5mY0Nvbm5lY3Rp
b24pOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9Db2NvYS9XS0FTQ0F1
dGhvcml6YXRpb25QcmVzZW50ZXJEZWxlZ2F0ZS5tbToKKyAgICAgICAgKC1bV0tBU0NBdXRob3Jp
emF0aW9uUHJlc2VudGVyRGVsZWdhdGUgaW5pdFdpdGhDb29yZGluYXRvcjpdKToKKyAgICAgICAg
KiBVSVByb2Nlc3MvV2ViQXV0aGVudGljYXRpb24vQ29jb2EvV0tORlJlYWRlclNlc3Npb25EZWxl
Z2F0ZS5tbToKKyAgICAgICAgKC1bV0tORlJlYWRlclNlc3Npb25EZWxlZ2F0ZSBpbml0V2l0aENv
bm5lY3Rpb246XSk6CisgICAgICAgICogVUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL0NvY29h
L1dlYkF1dGhlbnRpY2F0b3JDb29yZGluYXRvclByb3h5Lm1tOgorICAgICAgICAoV2ViS2l0OjpX
ZWJBdXRoZW50aWNhdG9yQ29vcmRpbmF0b3JQcm94eTo6cGVyZm9ybVJlcXVlc3QpOgorICAgICAg
ICAqIFVJUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9XZWJBdXRoZW50aWNhdG9yQ29vcmRpbmF0
b3JQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYkF1dGhlbnRpY2F0b3JDb29yZGluYXRv
clByb3h5OjptYWtlQ3JlZGVudGlhbCk6CisgICAgICAgIChXZWJLaXQ6OldlYkF1dGhlbnRpY2F0
b3JDb29yZGluYXRvclByb3h5OjpnZXRBc3NlcnRpb24pOgorICAgICAgICAqIFVJUHJvY2Vzcy9X
ZWJBdXRoZW50aWNhdGlvbi9maWRvL0ZpZG9TZXJ2aWNlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6
Rmlkb1NlcnZpY2U6OmdldEluZm8pOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJDb250ZXh0TWVu
dUxpc3RlbmVyUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJDb250ZXh0TWVudUxpc3Rl
bmVyUHJveHk6OldlYkNvbnRleHRNZW51TGlzdGVuZXJQcm94eSk6CisgICAgICAgICogVUlQcm9j
ZXNzL1dlYkNvbnRleHRNZW51UHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJDb250ZXh0
TWVudVByb3h5OjpXZWJDb250ZXh0TWVudVByb3h5KToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2Vi
Q29va2llTWFuYWdlclByb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViQ29va2llTWFuYWdl
clByb3h5OjpXZWJDb29raWVNYW5hZ2VyUHJveHkpOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJE
YXRhTGlzdFN1Z2dlc3Rpb25zRHJvcGRvd24uY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJEYXRh
TGlzdFN1Z2dlc3Rpb25zRHJvcGRvd246OldlYkRhdGFMaXN0U3VnZ2VzdGlvbnNEcm9wZG93bik6
CisgICAgICAgICogVUlQcm9jZXNzL1dlYkRhdGVUaW1lUGlja2VyLmNwcDoKKyAgICAgICAgKFdl
YktpdDo6V2ViRGF0ZVRpbWVQaWNrZXI6OldlYkRhdGVUaW1lUGlja2VyKToKKyAgICAgICAgKiBV
SVByb2Nlc3MvV2ViRWRpdENvbW1hbmRQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYkVk
aXRDb21tYW5kUHJveHk6OldlYkVkaXRDb21tYW5kUHJveHkpOgorICAgICAgICAqIFVJUHJvY2Vz
cy9XZWJGcmFtZVByb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViRnJhbWVQcm94eTo6V2Vi
RnJhbWVQcm94eSk6CisgICAgICAgICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHA6CisgICAg
ICAgIChXZWJLaXQ6OlBhZ2VDbGllbnRQcm90ZWN0b3I6OlBhZ2VDbGllbnRQcm90ZWN0b3IpOgor
ICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OldlYlBhZ2VQcm94eSk6CisgICAgICAgIChX
ZWJLaXQ6OldlYlBhZ2VQcm94eTo6c3VzcGVuZEN1cnJlbnRQYWdlSWZQb3NzaWJsZSk6CisgICAg
ICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6YWRkT2JzZXJ2ZXIpOgorICAgICAgICAqIFVJUHJv
Y2Vzcy9XZWJQcm9jZXNzUG9vbC5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3NQb29s
OjpnZXRHUFVQcm9jZXNzQ29ubmVjdGlvbik6CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3NQ
b29sOjpnZXRXZWJBdXRoblByb2Nlc3NDb25uZWN0aW9uKToKKyAgICAgICAgKFdlYktpdDo6V2Vi
UHJvY2Vzc1Bvb2w6OmluaXRpYWxpemVOZXdXZWJQcm9jZXNzKToKKyAgICAgICAgKFdlYktpdDo6
V2ViUHJvY2Vzc1Bvb2w6OmNyZWF0ZVdlYlBhZ2UpOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQ
cm9jZXNzUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzUHJveHk6OnByb2Nl
c3NEaWRUZXJtaW5hdGVPckZhaWxlZFRvTGF1bmNoKToKKyAgICAgICAgKFdlYktpdDo6V2ViUHJv
Y2Vzc1Byb3h5OjpjcmVhdGVTcGVlY2hSZWNvZ25pdGlvblNlcnZlcik6CisgICAgICAgICogVUlQ
cm9jZXNzL1dlYlByb2Nlc3NQcm94eS5oOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzUHJv
eHk6OldlYWtPclN0cm9uZ1B0cjo6V2Vha09yU3Ryb25nUHRyKToKKyAgICAgICAgKiBVSVByb2Nl
c3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9yZS5jcHA6CisgICAgICAgIChXZWJLaXQ6Oldl
YnNpdGVEYXRhU3RvcmU6OmdldE5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbik6CisgICAgICAgICog
VUlQcm9jZXNzL2d0ay9XYXlsYW5kQ29tcG9zaXRvci5jcHA6CisgICAgICAgIChXZWJLaXQ6Oldh
eWxhbmRDb21wb3NpdG9yOjpTdXJmYWNlOjphdHRhY2hCdWZmZXIpOgorICAgICAgICAoV2ViS2l0
OjpXYXlsYW5kQ29tcG9zaXRvcjo6YmluZFN1cmZhY2VUb1dlYlBhZ2UpOgorICAgICAgICAqIFVJ
UHJvY2Vzcy9pb3MvUHJvY2Vzc0Fzc2VydGlvbklPUy5tbToKKyAgICAgICAgKC1bV0tQcm9jZXNz
QXNzZXJ0aW9uQmFja2dyb3VuZFRhc2tNYW5hZ2VyIF9ub3RpZnlBc3NlcnRpb25zT2ZJbW1pbmVu
dFN1c3BlbnNpb25dKToKKyAgICAgICAgKiBVSVByb2Nlc3MvaW9zL1dlYkRhdGFMaXN0U3VnZ2Vz
dGlvbnNEcm9wZG93bklPUy5tbToKKyAgICAgICAgKC1bV0tEYXRhTGlzdFN1Z2dlc3Rpb25zQ29u
dHJvbCBzaG93U3VnZ2VzdGlvbnNEcm9wZG93bjphY3RpdmF0aW9uVHlwZTpdKToKKyAgICAgICAg
KiBVSVByb2Nlc3MvbWFjL1BhZ2VDbGllbnRJbXBsTWFjLm1tOgorICAgICAgICAoV2ViS2l0OjpQ
YWdlQ2xpZW50SW1wbDo6c2V0SW1wbCk6CisgICAgICAgICogVUlQcm9jZXNzL21hYy9XS1JldmVh
bEl0ZW1QcmVzZW50ZXIubW06CisgICAgICAgICgtW1dLUmV2ZWFsSXRlbVByZXNlbnRlciBpbml0
V2l0aFdlYlZpZXdJbXBsOml0ZW06ZnJhbWU6bWVudUxvY2F0aW9uOl0pOgorICAgICAgICAqIFVJ
UHJvY2Vzcy9tYWMvV2ViQ29udGV4dE1lbnVQcm94eU1hYy5tbToKKyAgICAgICAgKFdlYktpdDo6
V2ViQ29udGV4dE1lbnVQcm94eU1hYzo6Z2V0Q29udGV4dE1lbnVGcm9tSXRlbXMpOgorICAgICAg
ICAoV2ViS2l0OjpXZWJDb250ZXh0TWVudVByb3h5TWFjOjppbnNlcnRPclVwZGF0ZVF1aWNrTG9v
a0ltYWdlSXRlbSk6CisgICAgICAgICogVUlQcm9jZXNzL21hYy9XZWJEYXRhTGlzdFN1Z2dlc3Rp
b25zRHJvcGRvd25NYWMubW06CisgICAgICAgICgtW1dLRGF0YUxpc3RTdWdnZXN0aW9uc0NvbnRy
b2xsZXIgc2hvd1N1Z2dlc3Rpb25zRHJvcGRvd246XSk6CisgICAgICAgICogVUlQcm9jZXNzL21h
Yy9XZWJEYXRlVGltZVBpY2tlck1hYy5tbToKKyAgICAgICAgKC1bV0tEYXRlVGltZVBpY2tlciBz
aG93UGlja2VyOl0pOgorICAgICAgICAqIFdlYlByb2Nlc3MvQXV0b21hdGlvbi9XZWJBdXRvbWF0
aW9uRE9NV2luZG93T2JzZXJ2ZXIuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJBdXRvbWF0aW9u
RE9NV2luZG93T2JzZXJ2ZXI6OldlYkF1dG9tYXRpb25ET01XaW5kb3dPYnNlcnZlcik6CisgICAg
ICAgICogV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlclBy
b3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6bV9yZW5kZXJpbmdCYWNrZW5kKToKKyAgICAgICAg
KiBXZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVJbWFnZUJ1ZmZlclByb3h5Lmg6CisgICAg
ICAgIChXZWJLaXQ6OlJlbW90ZUltYWdlQnVmZmVyUHJveHk6OlJlbW90ZUltYWdlQnVmZmVyUHJv
eHkpOgorICAgICAgICAqIFdlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90ZVJlbmRlcmluZ0Jh
Y2tlbmRQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVJlbmRlcmluZ0JhY2tlbmRQ
cm94eTo6ZW5zdXJlR1BVUHJvY2Vzc0Nvbm5lY3Rpb24pOgorICAgICAgICAqIFdlYlByb2Nlc3Mv
R1BVL2dyYXBoaWNzL1JlbW90ZVJlc291cmNlQ2FjaGVQcm94eS5jcHA6CisgICAgICAgIChXZWJL
aXQ6OlJlbW90ZVJlc291cmNlQ2FjaGVQcm94eTo6Y2FjaGVJbWFnZUJ1ZmZlcik6CisgICAgICAg
IChXZWJLaXQ6OlJlbW90ZVJlc291cmNlQ2FjaGVQcm94eTo6cmVjb3JkTmF0aXZlSW1hZ2VVc2Up
OgorICAgICAgICAqIFdlYlByb2Nlc3MvR1BVL21lZGlhL0F1ZGlvVHJhY2tQcml2YXRlUmVtb3Rl
LmNwcDoKKyAgICAgICAgKFdlYktpdDo6QXVkaW9UcmFja1ByaXZhdGVSZW1vdGU6OkF1ZGlvVHJh
Y2tQcml2YXRlUmVtb3RlKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL0dQVS9tZWRpYS9NZWRpYVBs
YXllclByaXZhdGVSZW1vdGUuY3BwOgorICAgICAgICAoV2ViS2l0OjpNZWRpYVBsYXllclByaXZh
dGVSZW1vdGU6Ok1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZSk6CisgICAgICAgICogV2ViUHJvY2Vz
cy9HUFUvbWVkaWEvTWVkaWFTb3VyY2VQcml2YXRlUmVtb3RlLmNwcDoKKyAgICAgICAgKFdlYktp
dDo6TWVkaWFTb3VyY2VQcml2YXRlUmVtb3RlOjpNZWRpYVNvdXJjZVByaXZhdGVSZW1vdGUpOgor
ICAgICAgICAqIFdlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZUF1ZGlvRGVzdGluYXRpb25Qcm94
eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUF1ZGlvRGVzdGluYXRpb25Qcm94eTo6Y29u
bmVjdGlvbik6CisgICAgICAgICogV2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlQXVkaW9IYXJk
d2FyZUxpc3RlbmVyLmNwcDoKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlQXVkaW9IYXJkd2FyZUxp
c3RlbmVyOjpSZW1vdGVBdWRpb0hhcmR3YXJlTGlzdGVuZXIpOgorICAgICAgICAqIFdlYlByb2Nl
c3MvR1BVL21lZGlhL1JlbW90ZUF1ZGlvU2Vzc2lvbi5jcHA6CisgICAgICAgIChXZWJLaXQ6OlJl
bW90ZUF1ZGlvU2Vzc2lvbjo6ZW5zdXJlQ29ubmVjdGlvbik6CisgICAgICAgICogV2ViUHJvY2Vz
cy9HUFUvbWVkaWEvUmVtb3RlQXVkaW9Tb3VyY2VQcm92aWRlci5jcHA6CisgICAgICAgIChXZWJL
aXQ6OlJlbW90ZUF1ZGlvU291cmNlUHJvdmlkZXI6OlJlbW90ZUF1ZGlvU291cmNlUHJvdmlkZXIp
OgorICAgICAgICAqIFdlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZUNETS5jcHA6CisgICAgICAg
IChXZWJLaXQ6OlJlbW90ZUNETTo6Y3JlYXRlSW5zdGFuY2UpOgorICAgICAgICAqIFdlYlByb2Nl
c3MvR1BVL21lZGlhL1JlbW90ZUNETUZhY3RvcnkuY3BwOgorICAgICAgICAoV2ViS2l0OjpSZW1v
dGVDRE1GYWN0b3J5OjpjcmVhdGVDRE0pOgorICAgICAgICAqIFdlYlByb2Nlc3MvR1BVL21lZGlh
L1JlbW90ZUNETUluc3RhbmNlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlQ0RNSW5zdGFu
Y2U6OmNyZWF0ZVNlc3Npb24pOgorICAgICAgICAqIFdlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90
ZUltYWdlRGVjb2RlckFWRi5jcHA6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUltYWdlRGVjb2Rl
ckFWRjo6UmVtb3RlSW1hZ2VEZWNvZGVyQVZGKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL0dQVS9t
ZWRpYS9SZW1vdGVJbWFnZURlY29kZXJBVkZNYW5hZ2VyLmNwcDoKKyAgICAgICAgKFdlYktpdDo6
UmVtb3RlSW1hZ2VEZWNvZGVyQVZGTWFuYWdlcjo6Y3JlYXRlSW1hZ2VEZWNvZGVyKToKKyAgICAg
ICAgKFdlYktpdDo6UmVtb3RlSW1hZ2VEZWNvZGVyQVZGTWFuYWdlcjo6ZW5zdXJlR1BVUHJvY2Vz
c0Nvbm5lY3Rpb24pOgorICAgICAgICAqIFdlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZUxlZ2Fj
eUNETUZhY3RvcnkuY3BwOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVMZWdhY3lDRE1GYWN0b3J5
OjpjcmVhdGVDRE0pOgorICAgICAgICAqIFdlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZU1lZGlh
UGxheWVyTWFuYWdlci5jcHA6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZU1lZGlhUGxheWVyTWFu
YWdlcjo6Y3JlYXRlUmVtb3RlTWVkaWFQbGF5ZXIpOgorICAgICAgICAqIFdlYlByb2Nlc3MvR1BV
L21lZGlhL1JlbW90ZVJlbW90ZUNvbW1hbmRMaXN0ZW5lci5jcHA6CisgICAgICAgIChXZWJLaXQ6
OlJlbW90ZVJlbW90ZUNvbW1hbmRMaXN0ZW5lcjo6ZW5zdXJlR1BVUHJvY2Vzc0Nvbm5lY3Rpb24p
OgorICAgICAgICAqIFdlYlByb2Nlc3MvR1BVL21lZGlhL1NvdXJjZUJ1ZmZlclByaXZhdGVSZW1v
dGUuY3BwOgorICAgICAgICAoV2ViS2l0OjpTb3VyY2VCdWZmZXJQcml2YXRlUmVtb3RlOjpTb3Vy
Y2VCdWZmZXJQcml2YXRlUmVtb3RlKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL0dQVS9tZWRpYS9U
ZXh0VHJhY2tQcml2YXRlUmVtb3RlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6VGV4dFRyYWNrUHJp
dmF0ZVJlbW90ZTo6VGV4dFRyYWNrUHJpdmF0ZVJlbW90ZSk6CisgICAgICAgICogV2ViUHJvY2Vz
cy9HUFUvbWVkaWEvVmlkZW9UcmFja1ByaXZhdGVSZW1vdGUuY3BwOgorICAgICAgICAoV2ViS2l0
OjpWaWRlb1RyYWNrUHJpdmF0ZVJlbW90ZTo6VmlkZW9UcmFja1ByaXZhdGVSZW1vdGUpOgorICAg
ICAgICAqIFdlYlByb2Nlc3MvR1BVL21lZGlhL2NvY29hL1ZpZGVvTGF5ZXJSZW1vdGVDb2NvYS5t
bToKKyAgICAgICAgKC1bV0tWaWRlb0xheWVyUmVtb3RlIHNldE1lZGlhUGxheWVyUHJpdmF0ZVJl
bW90ZTpdKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL0dQVS9tZWRpYS9pb3MvUmVtb3RlTWVkaWFT
ZXNzaW9uSGVscGVyLmNwcDoKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlTWVkaWFTZXNzaW9uSGVs
cGVyOjplbnN1cmVDb25uZWN0aW9uKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL0dQVS93ZWJydGMv
QXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJJbnRlcm5hbFVuaXRNYW5hZ2VyLmNwcDoKKyAg
ICAgICAgKFdlYktpdDo6QXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJJbnRlcm5hbFVuaXRN
YW5hZ2VyOjphZGQpOgorICAgICAgICAqIFdlYlByb2Nlc3MvR1BVL3dlYnJ0Yy9TYW1wbGVCdWZm
ZXJEaXNwbGF5TGF5ZXIuY3BwOgorICAgICAgICAoV2ViS2l0OjpTYW1wbGVCdWZmZXJEaXNwbGF5
TGF5ZXI6OlNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllcik6CisgICAgICAgICogV2ViUHJvY2Vzcy9H
UFUvd2VicnRjL1NhbXBsZUJ1ZmZlckRpc3BsYXlMYXllck1hbmFnZXIuY3BwOgorICAgICAgICAo
V2ViS2l0OjpTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXJNYW5hZ2VyOjpjcmVhdGVMYXllcik6Cisg
ICAgICAgIChXZWJLaXQ6OlNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllck1hbmFnZXI6OmFkZExheWVy
KToKKyAgICAgICAgKiBXZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9nbGliL0RPTS9ET01P
YmplY3RDYWNoZS5jcHA6CisgICAgICAgICogV2ViUHJvY2Vzcy9JbnNwZWN0b3IvV2ViSW5zcGVj
dG9yVUlFeHRlbnNpb25Db250cm9sbGVyLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViSW5zcGVj
dG9yVUlFeHRlbnNpb25Db250cm9sbGVyOjpXZWJJbnNwZWN0b3JVSUV4dGVuc2lvbkNvbnRyb2xs
ZXIpOgorICAgICAgICAqIFdlYlByb2Nlc3MvTmV0d29yay9XZWJTb2NrZXRDaGFubmVsLmNwcDoK
KyAgICAgICAgKFdlYktpdDo6V2ViU29ja2V0Q2hhbm5lbDo6V2ViU29ja2V0Q2hhbm5lbCk6Cisg
ICAgICAgICogV2ViUHJvY2Vzcy9OZXR3b3JrL1dlYlNvY2tldENoYW5uZWxNYW5hZ2VyLmNwcDoK
KyAgICAgICAgKFdlYktpdDo6V2ViU29ja2V0Q2hhbm5lbE1hbmFnZXI6OmFkZENoYW5uZWwpOgor
ICAgICAgICAqIFdlYlByb2Nlc3MvTmV0d29yay93ZWJydGMvUlRDRGF0YUNoYW5uZWxSZW1vdGVN
YW5hZ2VyLmNwcDoKKyAgICAgICAgKFdlYktpdDo6UlRDRGF0YUNoYW5uZWxSZW1vdGVNYW5hZ2Vy
OjpSZW1vdGVIYW5kbGVyQ29ubmVjdGlvbjo6Y29ubmVjdFRvU291cmNlKToKKyAgICAgICAgKiBX
ZWJQcm9jZXNzL1BsdWdpbnMvUERGL1BERlBsdWdpbi5oOgorICAgICAgICAqIFdlYlByb2Nlc3Mv
UGx1Z2lucy9QREYvUERGUGx1Z2luLm1tOgorICAgICAgICAoLVtXS1BERlBsdWdpbkFjY2Vzc2li
aWxpdHlPYmplY3QgaW5pdFdpdGhQREZQbHVnaW46YW5kRWxlbWVudDpdKToKKyAgICAgICAgKFdl
YktpdDo6UERGUGx1Z2luOjpQREZQbHVnaW4pOgorICAgICAgICAqIFdlYlByb2Nlc3MvUGx1Z2lu
cy9QbHVnaW4uY3BwOgorICAgICAgICAoV2ViS2l0OjpQbHVnaW46OmluaXRpYWxpemUpOgorICAg
ICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRGV2aWNlT3JpZW50YXRpb25VcGRh
dGVQcm92aWRlci5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYkRldmljZU9yaWVudGF0aW9uVXBk
YXRlUHJvdmlkZXI6OldlYkRldmljZU9yaWVudGF0aW9uVXBkYXRlUHJvdmlkZXIpOgorICAgICAg
ICAoV2ViS2l0OjpXZWJEZXZpY2VPcmllbnRhdGlvblVwZGF0ZVByb3ZpZGVyOjpkZXZpY2VPcmll
bnRhdGlvbkNoYW5nZWQpOgorICAgICAgICAoV2ViS2l0OjpXZWJEZXZpY2VPcmllbnRhdGlvblVw
ZGF0ZVByb3ZpZGVyOjpkZXZpY2VNb3Rpb25DaGFuZ2VkKToKKyAgICAgICAgKiBXZWJQcm9jZXNz
L1dlYkNvcmVTdXBwb3J0L1dlYlBlcm1pc3Npb25Db250cm9sbGVyLmNwcDoKKyAgICAgICAgKFdl
YktpdDo6V2ViUGVybWlzc2lvbkNvbnRyb2xsZXI6OldlYlBlcm1pc3Npb25Db250cm9sbGVyKToK
KyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlNwZWVjaFJlY29nbml0aW9u
Q29ubmVjdGlvbi5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlNwZWVjaFJlY29nbml0aW9uQ29u
bmVjdGlvbjo6cmVnaXN0ZXJDbGllbnQpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9D
b2NvYS9XZWJQYWdlQ29jb2EubW06CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OnNldFJlbW90
ZU9iamVjdFJlZ2lzdHJ5KToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvRmluZENvbnRy
b2xsZXIuY3BwOgorICAgICAgICAoV2ViS2l0OjpGaW5kQ29udHJvbGxlcjo6ZHJhd1JlY3QpOgor
ICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9JUENUZXN0aW5nQVBJLmNwcDoKKyAgICAgICAg
KFdlYktpdDo6SVBDVGVzdGluZ0FQSTo6SlNJUEM6OkpTSVBDKToKKyAgICAgICAgKFdlYktpdDo6
SVBDVGVzdGluZ0FQSTo6SlNNZXNzYWdlTGlzdGVuZXI6OkpTTWVzc2FnZUxpc3RlbmVyKToKKyAg
ICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZUxheWVyVHJl
ZURpc3BsYXlSZWZyZXNoTW9uaXRvci5tbToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlTGF5ZXJU
cmVlRGlzcGxheVJlZnJlc2hNb25pdG9yOjpSZW1vdGVMYXllclRyZWVEaXNwbGF5UmVmcmVzaE1v
bml0b3IpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVMYXllclRyZWVEaXNwbGF5UmVmcmVzaE1v
bml0b3I6OnVwZGF0ZURyYXdpbmdBcmVhKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2Uv
V2ViQ29udGV4dE1lbnUuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJDb250ZXh0TWVudTo6V2Vi
Q29udGV4dE1lbnUpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJGcmFtZS5jcHA6
CisgICAgICAgIChXZWJLaXQ6OldlYkZyYW1lOjppbml0V2l0aENvcmVNYWluRnJhbWUpOgorICAg
ICAgICAoV2ViS2l0OjpXZWJGcmFtZTo6Y3JlYXRlU3ViZnJhbWUpOgorICAgICAgICAqIFdlYlBy
b2Nlc3MvV2ViUGFnZS9XZWJGcmFtZS5oOgorICAgICAgICAoV2ViS2l0OjpXZWJGcmFtZTo6c2V0
TG9hZExpc3RlbmVyKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHA6
CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OnNldEFjdGl2ZURhdGFMaXN0U3VnZ2VzdGlvblBp
Y2tlcik6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OnNldEFjdGl2ZURhdGVUaW1lQ2hvb3Nl
cik6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OnN0YXJ0VGV4dE1hbmlwdWxhdGlvbnMpOgor
ICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjpyZXF1ZXN0VGV4dFJlY29nbml0aW9uKToKKyAgICAg
ICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvaW9zL1dlYlBhZ2VJT1MubW06CisgICAgICAgIChXZWJL
aXQ6OldlYlBhZ2U6OmRpZEZpbmlzaENvbnRlbnRDaGFuZ2VPYnNlcnZpbmcpOgorICAgICAgICAo
V2ViS2l0OjpXZWJQYWdlOjpzZWxlY3RUZXh0V2l0aEdyYW51bGFyaXR5QXRQb2ludCk6CisgICAg
ICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9XZWJQYWdlTWFjLm1tOgorICAgICAgICAoV2Vi
S2l0OjpXZWJQYWdlOjpjcmVhdGVQREZIVUQpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViU3Rv
cmFnZS9TdG9yYWdlQXJlYUltcGwuY3BwOgorICAgICAgICAoV2ViS2l0OjpTdG9yYWdlQXJlYUlt
cGw6OlN0b3JhZ2VBcmVhSW1wbCk6CisgICAgICAgICogV2ViUHJvY2Vzcy9jb2NvYS9BdWRpb1Nl
c3Npb25Sb3V0aW5nQXJiaXRyYXRvci5jcHA6CisgICAgICAgIChXZWJLaXQ6OkF1ZGlvU2Vzc2lv
blJvdXRpbmdBcmJpdHJhdG9yOjpBdWRpb1Nlc3Npb25Sb3V0aW5nQXJiaXRyYXRvcik6CisgICAg
ICAgICogV2ViUHJvY2Vzcy9jb2NvYS9WaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyLm1tOgorICAgICAg
ICAoV2ViS2l0OjpWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyOjplbnRlclZpZGVvRnVsbHNjcmVlbkZv
clZpZGVvRWxlbWVudCk6CisKIDIwMjEtMTAtMTIgIEplciBOb2JsZSAgPGplci5ub2JsZUBhcHBs
ZS5jb20+CiAKICAgICAgICAgW0J1aWxkLXRpbWUgcGVyZl0gRm9yd2FyZC1kZWNsYXJlIG1vcmUg
dGhpbmdzIGluIERvY3VtZW50LmgKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvQ2hh
bmdlTG9nIGIvU291cmNlL1dlYktpdExlZ2FjeS9DaGFuZ2VMb2cKaW5kZXggY2ZhMTljNzA3MDhj
YTJhNTZlYjA0MTI0NTczNzhhMDA4NTMzZDdjMy4uOGRmNGZlMjEwZjY2ZTdhM2IzYThkODA1MTFk
YmJiM2RmNWM0ZDU3OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9DaGFuZ2VMb2cK
KysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNiBAQAorMjAy
MS0xMC0xMyAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgorCisgICAgICAgIERyb3Ag
bWFrZVdlYWtQdHIoKSBhbmQgdXNlIFdlYWtQdHIgeyB9IGRpcmVjdGx5CisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzE2NzkKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFN0b3JhZ2UvSW5Qcm9jZXNzSURC
U2VydmVyLmNwcDoKKyAgICAgICAgKHN0b3JhZ2VRdW90YU1hbmFnZXJTcGFjZVJlcXVlc3Rlcik6
CisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvUGFnZVN0b3JhZ2VTZXNzaW9uUHJvdmlkZXIuaDoK
KyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9XZWJCcm9hZGNhc3RDaGFubmVsUmVnaXN0cnkuY3Bw
OgorICAgICAgICAoV2ViQnJvYWRjYXN0Q2hhbm5lbFJlZ2lzdHJ5OjpnZXRPckNyZWF0ZSk6CisK
IDIwMjEtMTAtMDEgIElhbiBBbmRlcnNvbiAgPGlhbmFAYXBwbGUuY29tPgogCiAgICAgICAgIFdl
YktpdExlZ2FjeSdzIG1vZHVsZSBtYXAgZmlsZXMgZG9uJ3QgZ2V0IGluc3RhbGxlZApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdExl
Z2FjeS9tYWMvQ2hhbmdlTG9nCmluZGV4IDVjMmNhOTU0OGFkNDI5YjlhNmY3MGFmY2Y4OTA0MWM2
ZmY4YzViYTcuLjVkNmQ5MjRkY2Y0YjUyYWYyMDUzNGJhZGQ2ODVhMTBjZjFlYjY1YTIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2Vi
S2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMyBAQAorMjAyMS0xMC0xMyAgQ2hy
aXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgorCisgICAgICAgIERyb3AgbWFrZVdlYWtQdHIo
KSBhbmQgdXNlIFdlYWtQdHIgeyB9IGRpcmVjdGx5CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzE2NzkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L1dlYkVkaXRvckNsaWVudC5t
bToKKyAgICAgICAgKFdlYkVkaXRvckNsaWVudDo6cmVxdWVzdENhbmRpZGF0ZXNGb3JTZWxlY3Rp
b24pOgorCiAyMDIxLTEwLTEyICBKZXIgTm9ibGUgIDxqZXIubm9ibGVAYXBwbGUuY29tPgogCiAg
ICAgICAgIFtCdWlsZC10aW1lIHBlcmZdIEZvcndhcmQtZGVjbGFyZSBtb3JlIHRoaW5ncyBpbiBE
b2N1bWVudC5oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9XZWFrSGFzaE1hcC5oIGIvU291
cmNlL1dURi93dGYvV2Vha0hhc2hNYXAuaAppbmRleCA3MTRhNTBkNmJkY2Y3YmZiNDdjMzU5ZTQx
YWZjNjZmZWQwYzg4ZjY2Li4zNGE5OTA2ZTZhMGE1YWExNWNmNjM4M2E1NDAzM2YxYTQ3YTRmZTQ3
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9XZWFrSGFzaE1hcC5oCisrKyBiL1NvdXJjZS9X
VEYvd3RmL1dlYWtIYXNoTWFwLmgKQEAgLTM1MSw3ICszNTEsNyBAQCBwcml2YXRlOgogICAgIHRl
bXBsYXRlIDx0eXBlbmFtZSBUPgogICAgIHN0YXRpYyBSZWZUeXBlIG1ha2VLZXlJbXBsKGNvbnN0
IFQmIGtleSkKICAgICB7Ci0gICAgICAgIHJldHVybiAqbWFrZVdlYWtQdHI8S2V5VHlwZT4oY29u
c3RfY2FzdDxUJj4oa2V5KSkubV9pbXBsOworICAgICAgICByZXR1cm4gKldlYWtQdHI8S2V5VHlw
ZT4geyBjb25zdF9jYXN0PFQmPihrZXkpIH0ubV9pbXBsOwogICAgIH0KIAogICAgIHRlbXBsYXRl
IDx0eXBlbmFtZSBUPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvV2Vha0hhc2hTZXQuaCBi
L1NvdXJjZS9XVEYvd3RmL1dlYWtIYXNoU2V0LmgKaW5kZXggZWU3YjMyOWJmNzMzODU0YjEzZjNk
ODVkMzcxMzk5YjJhZDI1OTFhMy4uNzNjN2UxMGY5Zjc5M2I0OTgyZjQ3ODFkZGQ1YTcyMzMwOTY5
MTIxNCAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvV2Vha0hhc2hTZXQuaAorKysgYi9Tb3Vy
Y2UvV1RGL3d0Zi9XZWFrSGFzaFNldC5oCkBAIC05MSw3ICs5MSw3IEBAIHB1YmxpYzoKICAgICB0
ZW1wbGF0ZSA8dHlwZW5hbWUgVT4KICAgICBBZGRSZXN1bHQgYWRkKGNvbnN0IFUmIHZhbHVlKQog
ICAgIHsKLSAgICAgICAgcmV0dXJuIG1fc2V0LmFkZCgqbWFrZVdlYWtQdHI8VD4oY29uc3RfY2Fz
dDxVJj4odmFsdWUpKS5tX2ltcGwpOworICAgICAgICByZXR1cm4gbV9zZXQuYWRkKCpXZWFrUHRy
PFQ+IHsgY29uc3RfY2FzdDxVJj4odmFsdWUpIH0ubV9pbXBsKTsKICAgICB9CiAKICAgICB0ZW1w
bGF0ZSA8dHlwZW5hbWUgVT4KQEAgLTE2OSw3ICsxNjksNyBAQCBzdHJ1Y3QgTWFwcGVyPE1hcEZ1
bmN0aW9uLCBjb25zdCBXZWFrSGFzaFNldDxUPiAmLCB2b2lkPiB7CiB0ZW1wbGF0ZTx0eXBlbmFt
ZSBUPgogaW5saW5lIGF1dG8gY29weVRvVmVjdG9yKGNvbnN0IFdlYWtIYXNoU2V0PFQ+JiBjb2xs
ZWN0aW9uKSAtPiBWZWN0b3I8V2Vha1B0cjxUPj4KIHsKLSAgICByZXR1cm4gV1RGOjptYXAoY29s
bGVjdGlvbiwgW10gKGF1dG8mIHYpIC0+IFdlYWtQdHI8VD4geyByZXR1cm4gbWFrZVdlYWtQdHI8
VD4odik7IH0pOworICAgIHJldHVybiBXVEY6Om1hcChjb2xsZWN0aW9uLCBbXSAoYXV0byYgdikg
LT4gV2Vha1B0cjxUPiB7IHJldHVybiBXZWFrUHRyPFQ+IHsgdiB9OyB9KTsKIH0KIAogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9XZWFrUHRyLmggYi9Tb3VyY2UvV1RGL3d0Zi9XZWFrUHRy
LmgKaW5kZXggOGJhNzI4N2U5NjA0MTE4MDA3NmYwNTdlMGI3MzM3YjUxOGQzNmNmZS4uYTM5ZmY1
YTcxZDBlMzBjOTA3MjkxYWExNTI3NzAzYzY2ZWM0MGYwNCAxMDA2NDQKLS0tIGEvU291cmNlL1dU
Ri93dGYvV2Vha1B0ci5oCisrKyBiL1NvdXJjZS9XVEYvd3RmL1dlYWtQdHIuaApAQCAtMjQ5LDcg
KzI0OSw3IEBAIHByaXZhdGU6CiB9OwogCiAvLyBXZSB1c2UgbGF6eSBpbml0aWFsaXphdGlvbiBv
ZiB0aGUgV2Vha1B0ckZhY3RvcnkgYnkgZGVmYXVsdCB0byBhdm9pZCB1bm5lY2Vzc2FyeSBpbml0
aWFsaXphdGlvbi4gRWFnZXIKLS8vIGluaXRpYWxpemF0aW9uIGlzIGhvd2V2ZXIgdXNlZnVsIGlm
IHlvdSBwbGFuIHRvIGNhbGwgbWFrZVdlYWtQdHIoKSBmcm9tIG90aGVyIHRocmVhZHMuCisvLyBp
bml0aWFsaXphdGlvbiBpcyBob3dldmVyIHVzZWZ1bCBpZiB5b3UgcGxhbiB0byBjYWxsIGNvbnN0
cnVjdCBXZWFrUHRycyBmcm9tIG90aGVyIHRocmVhZHMuCiBlbnVtIGNsYXNzIFdlYWtQdHJGYWN0
b3J5SW5pdGlhbGl6YXRpb24geyBMYXp5LCBFYWdlciB9OwogCiB0ZW1wbGF0ZTx0eXBlbmFtZSBU
LCBXZWFrUHRyRmFjdG9yeUluaXRpYWxpemF0aW9uIGluaXRpYWxpemF0aW9uTW9kZSA9IFdlYWtQ
dHJGYWN0b3J5SW5pdGlhbGl6YXRpb246OkxhenksIHR5cGVuYW1lIENvdW50ZXIgPSBFbXB0eUNv
dW50ZXI+IGNsYXNzIENhbk1ha2VXZWFrUHRyIHsKQEAgLTMwMywzMiArMzAzLDYgQEAgdGVtcGxh
dGU8dHlwZW5hbWUgVCwgdHlwZW5hbWUgQ291bnRlcj4gdGVtcGxhdGU8dHlwZW5hbWUgVT4gaW5s
aW5lIFdlYWtQdHI8VCwgQ28KICAgICByZXR1cm4gKnRoaXM7CiB9CiAKLS8vIG1ha2VXZWFrUHRy
KCkgaXMgZGVwcmVjYXRlZC4gVXNlIFdlYWtQdHIgeyBvYmplY3QgfSBkaXJlY3RseSBpbnN0ZWFk
LgotdGVtcGxhdGU8dHlwZW5hbWUgVCwgdHlwZW5hbWUgPSBzdGQ6OmVuYWJsZV9pZl90PCFJc1Nt
YXJ0UHRyPFQ+Ojp2YWx1ZT4+IGlubGluZSBhdXRvIG1ha2VXZWFrUHRyKFQmIG9iamVjdCwgRW5h
YmxlV2Vha1B0clRocmVhZGluZ0Fzc2VydGlvbnMgZW5hYmxlV2Vha1B0clRocmVhZGluZ0Fzc2Vy
dGlvbnMgPSBFbmFibGVXZWFrUHRyVGhyZWFkaW5nQXNzZXJ0aW9uczo6WWVzKQotewotICAgIHJl
dHVybiBvYmplY3Qud2Vha1B0ckZhY3RvcnkoKS50ZW1wbGF0ZSBjcmVhdGVXZWFrUHRyPFQ+KG9i
amVjdCwgZW5hYmxlV2Vha1B0clRocmVhZGluZ0Fzc2VydGlvbnMpOwotfQotCi0vLyBtYWtlV2Vh
a1B0cigpIGlzIGRlcHJlY2F0ZWQuIFVzZSBXZWFrUHRyIHsgb2JqZWN0IH0gZGlyZWN0bHkgaW5z
dGVhZC4KLXRlbXBsYXRlPHR5cGVuYW1lIFQsIHR5cGVuYW1lID0gc3RkOjplbmFibGVfaWZfdDwh
SXNTbWFydFB0cjxUPjo6dmFsdWU+PiBpbmxpbmUgYXV0byBtYWtlV2Vha1B0cihUKiBwdHIsIEVu
YWJsZVdlYWtQdHJUaHJlYWRpbmdBc3NlcnRpb25zIGVuYWJsZVdlYWtQdHJUaHJlYWRpbmdBc3Nl
cnRpb25zID0gRW5hYmxlV2Vha1B0clRocmVhZGluZ0Fzc2VydGlvbnM6OlllcykgLT4gZGVjbHR5
cGUobWFrZVdlYWtQdHIoKnB0cikpCi17Ci0gICAgaWYgKCFwdHIpCi0gICAgICAgIHJldHVybiB7
IH07Ci0gICAgcmV0dXJuIG1ha2VXZWFrUHRyKCpwdHIsIGVuYWJsZVdlYWtQdHJUaHJlYWRpbmdB
c3NlcnRpb25zKTsKLX0KLQotLy8gbWFrZVdlYWtQdHIoKSBpcyBkZXByZWNhdGVkLiBVc2UgV2Vh
a1B0ciB7IG9iamVjdCB9IGRpcmVjdGx5IGluc3RlYWQuCi10ZW1wbGF0ZTx0eXBlbmFtZSBULCB0
eXBlbmFtZSA9IHN0ZDo6ZW5hYmxlX2lmX3Q8IUlzU21hcnRQdHI8VD46OnZhbHVlPj4gaW5saW5l
IGF1dG8gbWFrZVdlYWtQdHIoY29uc3QgUmVmPFQ+JiBvYmplY3QsIEVuYWJsZVdlYWtQdHJUaHJl
YWRpbmdBc3NlcnRpb25zIGVuYWJsZVdlYWtQdHJUaHJlYWRpbmdBc3NlcnRpb25zID0gRW5hYmxl
V2Vha1B0clRocmVhZGluZ0Fzc2VydGlvbnM6OlllcykKLXsKLSAgICByZXR1cm4gbWFrZVdlYWtQ
dHIob2JqZWN0LmdldCgpLCBlbmFibGVXZWFrUHRyVGhyZWFkaW5nQXNzZXJ0aW9ucyk7Ci19Ci0K
LS8vIG1ha2VXZWFrUHRyKCkgaXMgZGVwcmVjYXRlZC4gVXNlIFdlYWtQdHIgeyBvYmplY3QgfSBk
aXJlY3RseSBpbnN0ZWFkLgotdGVtcGxhdGU8dHlwZW5hbWUgVCwgdHlwZW5hbWUgPSBzdGQ6OmVu
YWJsZV9pZl90PCFJc1NtYXJ0UHRyPFQ+Ojp2YWx1ZT4+IGlubGluZSBhdXRvIG1ha2VXZWFrUHRy
KGNvbnN0IFJlZlB0cjxUPiYgb2JqZWN0LCBFbmFibGVXZWFrUHRyVGhyZWFkaW5nQXNzZXJ0aW9u
cyBlbmFibGVXZWFrUHRyVGhyZWFkaW5nQXNzZXJ0aW9ucyA9IEVuYWJsZVdlYWtQdHJUaHJlYWRp
bmdBc3NlcnRpb25zOjpZZXMpCi17Ci0gICAgcmV0dXJuIG1ha2VXZWFrUHRyKG9iamVjdC5nZXQo
KSwgZW5hYmxlV2Vha1B0clRocmVhZGluZ0Fzc2VydGlvbnMpOwotfQotCiB0ZW1wbGF0ZSA8dHlw
ZW5hbWUgVCwgdHlwZW5hbWUgQ291bnRlcj4KIHN0cnVjdCBHZXRQdHJIZWxwZXI8V2Vha1B0cjxU
LCBDb3VudGVyPj4gewogICAgIHVzaW5nIFB0clR5cGUgPSBUKjsKQEAgLTM4OSw0ICszNjMsMyBA
QCB1c2luZyBXVEY6OkVuYWJsZVdlYWtQdHJUaHJlYWRpbmdBc3NlcnRpb25zOwogdXNpbmcgV1RG
OjpXZWFrUHRyOwogdXNpbmcgV1RGOjpXZWFrUHRyRmFjdG9yeTsKIHVzaW5nIFdURjo6V2Vha1B0
ckZhY3RvcnlJbml0aWFsaXphdGlvbjsKLXVzaW5nIFdURjo6bWFrZVdlYWtQdHI7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3RlbVN5
bmNBY2Nlc3NIYW5kbGUuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxlc3lzdGVtYWNj
ZXNzL0ZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlLmNwcAppbmRleCBkMjJlMjA4MGI2Y2M2NDdj
M2U1YmZlOTFlYzUyNDc2Y2FhOWQ0ODljLi4yYmNmNzRhMDg3YjgzOTdmMzBhMjI2MzZkODAyZTBj
MWU5MDY4MmFiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0ZW1h
Y2Nlc3MvRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZS5jcHAK
QEAgLTU1LDcgKzU1LDcgQEAgRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGU6On5GaWxlU3lzdGVt
U3luY0FjY2Vzc0hhbmRsZSgpCiB2b2lkIEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlOjp0cnVu
Y2F0ZSh1bnNpZ25lZCBsb25nIGxvbmcgc2l6ZSwgRE9NUHJvbWlzZURlZmVycmVkPHZvaWQ+JiYg
cHJvbWlzZSkKIHsKICAgICBtX3BlbmRpbmdPcGVyYXRpb25Db3VudCsrOwotICAgIG1fc291cmNl
LT50cnVuY2F0ZShtX2lkZW50aWZpZXIsIHNpemUsIFt3ZWFrVGhpcyA9IG1ha2VXZWFrUHRyKCp0
aGlzKSwgcHJvbWlzZSA9IFdURk1vdmUocHJvbWlzZSldKGF1dG8gcmVzdWx0KSBtdXRhYmxlIHsK
KyAgICBtX3NvdXJjZS0+dHJ1bmNhdGUobV9pZGVudGlmaWVyLCBzaXplLCBbd2Vha1RoaXMgPSBX
ZWFrUHRyIHsgKnRoaXMgfSwgcHJvbWlzZSA9IFdURk1vdmUocHJvbWlzZSldKGF1dG8gcmVzdWx0
KSBtdXRhYmxlIHsKICAgICAgICAgaWYgKHdlYWtUaGlzKQogICAgICAgICAgICAgd2Vha1RoaXMt
Pm1fcGVuZGluZ09wZXJhdGlvbkNvdW50LS07CiAKQEAgLTY2LDcgKzY2LDcgQEAgdm9pZCBGaWxl
U3lzdGVtU3luY0FjY2Vzc0hhbmRsZTo6dHJ1bmNhdGUodW5zaWduZWQgbG9uZyBsb25nIHNpemUs
IERPTVByb21pc2VEZWYKIHZvaWQgRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGU6OmdldFNpemUo
RE9NUHJvbWlzZURlZmVycmVkPElETFVuc2lnbmVkTG9uZ0xvbmc+JiYgcHJvbWlzZSkKIHsKICAg
ICBtX3BlbmRpbmdPcGVyYXRpb25Db3VudCsrOwotICAgIG1fc291cmNlLT5nZXRTaXplKG1faWRl
bnRpZmllciwgW3dlYWtUaGlzID0gbWFrZVdlYWtQdHIoKnRoaXMpLCBwcm9taXNlID0gV1RGTW92
ZShwcm9taXNlKV0oYXV0byByZXN1bHQpIG11dGFibGUgeworICAgIG1fc291cmNlLT5nZXRTaXpl
KG1faWRlbnRpZmllciwgW3dlYWtUaGlzID0gV2Vha1B0ciB7ICp0aGlzIH0sIHByb21pc2UgPSBX
VEZNb3ZlKHByb21pc2UpXShhdXRvIHJlc3VsdCkgbXV0YWJsZSB7CiAgICAgICAgIGlmICh3ZWFr
VGhpcykKICAgICAgICAgICAgIHdlYWtUaGlzLT5tX3BlbmRpbmdPcGVyYXRpb25Db3VudC0tOwog
CkBAIC03Nyw3ICs3Nyw3IEBAIHZvaWQgRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGU6OmdldFNp
emUoRE9NUHJvbWlzZURlZmVycmVkPElETFVuc2lnbmVkTG9uZ0xvbmc+CiB2b2lkIEZpbGVTeXN0
ZW1TeW5jQWNjZXNzSGFuZGxlOjpmbHVzaChET01Qcm9taXNlRGVmZXJyZWQ8dm9pZD4mJiBwcm9t
aXNlKQogewogICAgIG1fcGVuZGluZ09wZXJhdGlvbkNvdW50Kys7Ci0gICAgbV9zb3VyY2UtPmZs
dXNoKG1faWRlbnRpZmllciwgW3dlYWtUaGlzID0gbWFrZVdlYWtQdHIoKnRoaXMpLCBwcm9taXNl
ID0gV1RGTW92ZShwcm9taXNlKV0oYXV0byByZXN1bHQpIG11dGFibGUgeworICAgIG1fc291cmNl
LT5mbHVzaChtX2lkZW50aWZpZXIsIFt3ZWFrVGhpcyA9IFdlYWtQdHIgeyAqdGhpcyB9LCBwcm9t
aXNlID0gV1RGTW92ZShwcm9taXNlKV0oYXV0byByZXN1bHQpIG11dGFibGUgewogICAgICAgICBp
ZiAod2Vha1RoaXMpCiAgICAgICAgICAgICB3ZWFrVGhpcy0+bV9wZW5kaW5nT3BlcmF0aW9uQ291
bnQtLTsKIApAQCAtOTEsNyArOTEsNyBAQCB2b2lkIEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxl
OjpjbG9zZShET01Qcm9taXNlRGVmZXJyZWQ8dm9pZD4mJiBwcm9taXNlKQogICAgICAgICByZXR1
cm4gcHJvbWlzZS5yZWplY3QoRXhjZXB0aW9uIHsgSW52YWxpZFN0YXRlRXJyb3IgfSk7CiAKICAg
ICBtX3BlbmRpbmdPcGVyYXRpb25Db3VudCsrOwotICAgIG1fc291cmNlLT5jbG9zZShtX2lkZW50
aWZpZXIsIFt3ZWFrVGhpcyA9IG1ha2VXZWFrUHRyKCp0aGlzKSwgcHJvbWlzZSA9IFdURk1vdmUo
cHJvbWlzZSldKGF1dG8gcmVzdWx0KSBtdXRhYmxlIHsKKyAgICBtX3NvdXJjZS0+Y2xvc2UobV9p
ZGVudGlmaWVyLCBbd2Vha1RoaXMgPSBXZWFrUHRyIHsgKnRoaXMgfSwgcHJvbWlzZSA9IFdURk1v
dmUocHJvbWlzZSldKGF1dG8gcmVzdWx0KSBtdXRhYmxlIHsKICAgICAgICAgaWYgKHdlYWtUaGlz
KSB7CiAgICAgICAgICAgICB3ZWFrVGhpcy0+bV9wZW5kaW5nT3BlcmF0aW9uQ291bnQtLTsKICAg
ICAgICAgICAgIHdlYWtUaGlzLT5kaWRDbG9zZSgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvZG9tL0VsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuY3BwCmluZGV4
IGRlMjdjNmY1NWZkNzdhM2E3NzNiODQxZmJlOWRhM2Y3ZjZjMDYwN2YuLmJlODY1Nzc5OGNkMjcw
OGRlOTg1ZWY5NjU2ODA3ODNjZDBmOTcyYzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Rv
bS9FbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5jcHAKQEAgLTIz
NTQsNyArMjM1NCw3IEBAIHZvaWQgRWxlbWVudDo6YWRkU2hhZG93Um9vdChSZWY8U2hhZG93Um9v
dD4mJiBuZXdTaGFkb3dSb290KQogCiAgICAgICAgIGVuc3VyZUVsZW1lbnRSYXJlRGF0YSgpLnNl
dFNoYWRvd1Jvb3QoV1RGTW92ZShuZXdTaGFkb3dSb290KSk7CiAKLSAgICAgICAgc2hhZG93Um9v
dC5zZXRIb3N0KG1ha2VXZWFrUHRyPEVsZW1lbnQ+KHRoaXMpKTsKKyAgICAgICAgc2hhZG93Um9v
dC5zZXRIb3N0KCp0aGlzKTsKICAgICAgICAgc2hhZG93Um9vdC5zZXRQYXJlbnRUcmVlU2NvcGUo
dHJlZVNjb3BlKCkpOwogCiAjaWYgQVNTRVJUX0VOQUJMRUQKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvR1BVUHJvY2Vzcy9HUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmNwcCBiL1NvdXJjZS9X
ZWJLaXQvR1BVUHJvY2Vzcy9HUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmNwcAppbmRleCA2Njk5
OTBiZWM5Nzg2NjhiZWZjM2NiYzkzNzBhODI1YmNkNzE1MmUwLi5lNDQ1ZTU5ZGM3YmI1NmQ3NTE0
N2E5NmY2YWFhNDNiYTc1M2YwNjBhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nl
c3MvR1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5jcHAKKysrIGIvU291cmNlL1dlYktpdC9HUFVQ
cm9jZXNzL0dQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuY3BwCkBAIC0yMzAsNyArMjMwLDcgQEAg
R1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6R1BVQ29ubmVjdGlvblRvV2ViUHJvY2VzcyhHUFVQ
cm9jZXNzJiBncHVQcm9jZXNzLCBXZWIKICAgICBSRUxFQVNFX0FTU0VSVChSdW5Mb29wOjppc01h
aW4oKSk7CiAKICNpZiBFTkFCTEUoUk9VVElOR19BUkJJVFJBVElPTikgJiYgSEFWRShBVkFVRElP
X1JPVVRJTkdfQVJCSVRFUikKLSAgICBncHVQcm9jZXNzLmF1ZGlvU2Vzc2lvbk1hbmFnZXIoKS5z
ZXNzaW9uKCkuc2V0Um91dGluZ0FyYml0cmF0aW9uQ2xpZW50KG1ha2VXZWFrUHRyKG1fcm91dGlu
Z0FyYml0cmF0b3IuZ2V0KCkpKTsKKyAgICBncHVQcm9jZXNzLmF1ZGlvU2Vzc2lvbk1hbmFnZXIo
KS5zZXNzaW9uKCkuc2V0Um91dGluZ0FyYml0cmF0aW9uQ2xpZW50KFdlYWtQdHIgeyBtX3JvdXRp
bmdBcmJpdHJhdG9yLmdldCgpIH0pOwogI2VuZGlmCiAKICAgICBpZiAoIXBhcmFtZXRlcnMub3Zl
cnJpZGVMYW5ndWFnZXMuaXNFbXB0eSgpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQ
cm9jZXNzL2dyYXBoaWNzL1JlbW90ZUdyYXBoaWNzQ29udGV4dEdMLmNwcCBiL1NvdXJjZS9XZWJL
aXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVHcmFwaGljc0NvbnRleHRHTC5jcHAKaW5kZXgg
MmI3YjgyN2Q3MjM5YTQ1MGJkMGM0OWEwMDI3MmVlNGRmNmEyZGVkZS4uYWM5NTk1MjBhMmUzZGZh
ZDlmY2Q4MmIzOTJmMTBhOWE1YTYwNDg0MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9HUFVQ
cm9jZXNzL2dyYXBoaWNzL1JlbW90ZUdyYXBoaWNzQ29udGV4dEdMLmNwcAorKysgYi9Tb3VyY2Uv
V2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlR3JhcGhpY3NDb250ZXh0R0wuY3BwCkBA
IC02NCw3ICs2NCw3IEBAIFJlZjxSZW1vdGVHcmFwaGljc0NvbnRleHRHTD4gUmVtb3RlR3JhcGhp
Y3NDb250ZXh0R0w6OmNyZWF0ZShHUFVDb25uZWN0aW9uVG9XZWJQCiAjZW5kaWYKIAogUmVtb3Rl
R3JhcGhpY3NDb250ZXh0R0w6OlJlbW90ZUdyYXBoaWNzQ29udGV4dEdMKEdQVUNvbm5lY3Rpb25U
b1dlYlByb2Nlc3MmIGdwdUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MsIEdyYXBoaWNzQ29udGV4dEdM
SWRlbnRpZmllciBncmFwaGljc0NvbnRleHRHTElkZW50aWZpZXIsIFJlbW90ZVJlbmRlcmluZ0Jh
Y2tlbmQmIHJlbmRlcmluZ0JhY2tlbmQsIElQQzo6U3RyZWFtQ29ubmVjdGlvbkJ1ZmZlciYmIHN0
cmVhbSkKLSAgICA6IG1fZ3B1Q29ubmVjdGlvblRvV2ViUHJvY2VzcyhtYWtlV2Vha1B0cihncHVD
b25uZWN0aW9uVG9XZWJQcm9jZXNzKSkKKyAgICA6IG1fZ3B1Q29ubmVjdGlvblRvV2ViUHJvY2Vz
cyhncHVDb25uZWN0aW9uVG9XZWJQcm9jZXNzKQogICAgICwgbV9zdHJlYW1Db25uZWN0aW9uKElQ
Qzo6U3RyZWFtU2VydmVyQ29ubmVjdGlvbjo6Y3JlYXRlKGdwdUNvbm5lY3Rpb25Ub1dlYlByb2Nl
c3MuY29ubmVjdGlvbigpLCBXVEZNb3ZlKHN0cmVhbSksIHJlbW90ZUdyYXBoaWNzQ29udGV4dEdM
U3RyZWFtV29ya1F1ZXVlKCkpKQogICAgICwgbV9ncmFwaGljc0NvbnRleHRHTElkZW50aWZpZXIo
Z3JhcGhpY3NDb250ZXh0R0xJZGVudGlmaWVyKQogICAgICwgbV9yZW5kZXJpbmdCYWNrZW5kKHJl
bmRlcmluZ0JhY2tlbmQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVk
aWEvUmVtb3RlQXVkaW9IYXJkd2FyZUxpc3RlbmVyUHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9H
UFVQcm9jZXNzL21lZGlhL1JlbW90ZUF1ZGlvSGFyZHdhcmVMaXN0ZW5lclByb3h5LmNwcAppbmRl
eCBkMTFkNTdhYWE2YTk0NTQ2MDk4NDgzMmIyYmRjMWRkYWFiMDBiMGIzLi4zYTNjMWY5MWQyZjk3
YmIzZGYwMzExNzhmNWVjOTkxZGIwY2Q2NTA5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0dQ
VVByb2Nlc3MvbWVkaWEvUmVtb3RlQXVkaW9IYXJkd2FyZUxpc3RlbmVyUHJveHkuY3BwCisrKyBi
L1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVBdWRpb0hhcmR3YXJlTGlzdGVu
ZXJQcm94eS5jcHAKQEAgLTM0LDcgKzM0LDcgQEAKIG5hbWVzcGFjZSBXZWJLaXQgewogCiBSZW1v
dGVBdWRpb0hhcmR3YXJlTGlzdGVuZXJQcm94eTo6UmVtb3RlQXVkaW9IYXJkd2FyZUxpc3RlbmVy
UHJveHkoR1BVQ29ubmVjdGlvblRvV2ViUHJvY2VzcyYgZ3B1Q29ubmVjdGlvbiwgUmVtb3RlQXVk
aW9IYXJkd2FyZUxpc3RlbmVySWRlbnRpZmllciYmIGlkZW50aWZpZXIpCi0gICAgOiBtX2dwdUNv
bm5lY3Rpb24obWFrZVdlYWtQdHIoZ3B1Q29ubmVjdGlvbikpCisgICAgOiBtX2dwdUNvbm5lY3Rp
b24oZ3B1Q29ubmVjdGlvbikKICAgICAsIG1faWRlbnRpZmllcihXVEZNb3ZlKGlkZW50aWZpZXIp
KQogICAgICwgbV9saXN0ZW5lcihXZWJDb3JlOjpBdWRpb0hhcmR3YXJlTGlzdGVuZXI6OmNyZWF0
ZSgqdGhpcykpCiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEv
UmVtb3RlQXVkaW9UcmFja1Byb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRp
YS9SZW1vdGVBdWRpb1RyYWNrUHJveHkuY3BwCmluZGV4IDZkY2RkZGI2ZjIyNjZkZTJlMThlNDE2
ZTYyOGIwYWQ3MzM5MzNjZDkuLjY1MjM5NmY3YTY0MjJiYWJmYTUyNDFkMjM4MmEyNGQ5YTg0OGZh
NTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVBdWRp
b1RyYWNrUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1v
dGVBdWRpb1RyYWNrUHJveHkuY3BwCkBAIC00MCw3ICs0MCw3IEBAIG5hbWVzcGFjZSBXZWJLaXQg
ewogdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAKIFJlbW90ZUF1ZGlvVHJhY2tQcm94eTo6UmVt
b3RlQXVkaW9UcmFja1Byb3h5KEdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MmIGNvbm5lY3Rpb25U
b1dlYlByb2Nlc3MsIFRyYWNrUHJpdmF0ZVJlbW90ZUlkZW50aWZpZXIgaWRlbnRpZmllciwgQXVk
aW9UcmFja1ByaXZhdGUmIHRyYWNrUHJpdmF0ZSwgTWVkaWFQbGF5ZXJJZGVudGlmaWVyIG1lZGlh
UGxheWVySWRlbnRpZmllcikKLSAgICA6IG1fY29ubmVjdGlvblRvV2ViUHJvY2VzcyhtYWtlV2Vh
a1B0cihjb25uZWN0aW9uVG9XZWJQcm9jZXNzKSkKKyAgICA6IG1fY29ubmVjdGlvblRvV2ViUHJv
Y2Vzcyhjb25uZWN0aW9uVG9XZWJQcm9jZXNzKQogICAgICwgbV9pZGVudGlmaWVyKGlkZW50aWZp
ZXIpCiAgICAgLCBtX3RyYWNrUHJpdmF0ZSh0cmFja1ByaXZhdGUpCiAgICAgLCBtX21lZGlhUGxh
eWVySWRlbnRpZmllcihtZWRpYVBsYXllcklkZW50aWZpZXIpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlQ0RNRmFjdG9yeVByb3h5LmNwcCBiL1NvdXJj
ZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVDRE1GYWN0b3J5UHJveHkuY3BwCmluZGV4
IDA2ZWM1MjcwNmZjYTdmNzE1MzlhOTcwNTk0M2Y4YzdkNWI1MjFkMzEuLjQ4OTgzYzAxODg5YTZl
YzNiZDQwZWE1NThjOWRjMjk3ZjUzMTVjMWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvR1BV
UHJvY2Vzcy9tZWRpYS9SZW1vdGVDRE1GYWN0b3J5UHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJL
aXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVDRE1GYWN0b3J5UHJveHkuY3BwCkBAIC00MSw3ICs0
MSw3IEBAIG5hbWVzcGFjZSBXZWJLaXQgewogdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAKIFJl
bW90ZUNETUZhY3RvcnlQcm94eTo6UmVtb3RlQ0RNRmFjdG9yeVByb3h5KEdQVUNvbm5lY3Rpb25U
b1dlYlByb2Nlc3MmIGNvbm5lY3Rpb24pCi0gICAgOiBtX2dwdUNvbm5lY3Rpb25Ub1dlYlByb2Nl
c3MobWFrZVdlYWtQdHIoY29ubmVjdGlvbikpCisgICAgOiBtX2dwdUNvbm5lY3Rpb25Ub1dlYlBy
b2Nlc3MoY29ubmVjdGlvbikKIHsKIH0KIApAQCAtNzAsNyArNzAsNyBAQCB2b2lkIFJlbW90ZUNE
TUZhY3RvcnlQcm94eTo6Y3JlYXRlQ0RNKGNvbnN0IFN0cmluZyYga2V5U3lzdGVtLCBDb21wbGV0
aW9uSGFuZGxlcgogICAgICAgICByZXR1cm47CiAgICAgfQogCi0gICAgYXV0byBwcm94eSA9IFJl
bW90ZUNETVByb3h5OjpjcmVhdGUobWFrZVdlYWtQdHIodGhpcyksIFdURk1vdmUocHJpdmF0ZUNE
TSkpOworICAgIGF1dG8gcHJveHkgPSBSZW1vdGVDRE1Qcm94eTo6Y3JlYXRlKCp0aGlzLCBXVEZN
b3ZlKHByaXZhdGVDRE0pKTsKICAgICBhdXRvIGlkZW50aWZpZXIgPSBSZW1vdGVDRE1JZGVudGlm
aWVyOjpnZW5lcmF0ZSgpOwogICAgIFJlbW90ZUNETUNvbmZpZ3VyYXRpb24gY29uZmlndXJhdGlv
biA9IHByb3h5LT5jb25maWd1cmF0aW9uKCk7CiAgICAgYWRkUHJveHkoaWRlbnRpZmllciwgV1RG
TW92ZShwcm94eSkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlh
L1JlbW90ZUNETUluc3RhbmNlUHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21l
ZGlhL1JlbW90ZUNETUluc3RhbmNlUHJveHkuY3BwCmluZGV4IGJkODM1YzUxYThjYWVkZDY5NWUw
MGMyNWIwZDIzOWU3MGZkNzlkMWIuLjFiOWI0ODJiOTBiMzc1YzljNjE1NmExMjYyMTU3OTNjMjBh
OTQ4OWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVD
RE1JbnN0YW5jZVByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEv
UmVtb3RlQ0RNSW5zdGFuY2VQcm94eS5jcHAKQEAgLTUzLDcgKzUzLDcgQEAgUmVtb3RlQ0RNSW5z
dGFuY2VQcm94eTo6UmVtb3RlQ0RNSW5zdGFuY2VQcm94eShXZWFrUHRyPFJlbW90ZUNETVByb3h5
PiYmIGNkbSwgUmUKICAgICAsIG1fY29uZmlndXJhdGlvbihXVEZNb3ZlKGNvbmZpZ3VyYXRpb24p
KQogICAgICwgbV9pZGVudGlmaWVyKGlkZW50aWZpZXIpCiB7Ci0gICAgbV9pbnN0YW5jZS0+c2V0
Q2xpZW50KG1ha2VXZWFrUHRyPENETUluc3RhbmNlQ2xpZW50Pih0aGlzKSk7CisgICAgbV9pbnN0
YW5jZS0+c2V0Q2xpZW50KHN0YXRpY19jYXN0PENETUluc3RhbmNlQ2xpZW50Jj4oKnRoaXMpKTsK
IH0KIAogUmVtb3RlQ0RNSW5zdGFuY2VQcm94eTo6flJlbW90ZUNETUluc3RhbmNlUHJveHkoKQpA
QCAtMTA1LDcgKzEwNSw3IEBAIHZvaWQgUmVtb3RlQ0RNSW5zdGFuY2VQcm94eTo6Y3JlYXRlU2Vz
c2lvbihDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGNvbnN0IFJlbW90ZUNECiAgICAgICAgIHJldHVy
bjsKICAgICB9CiAgICAgYXV0byBpZGVudGlmaWVyID0gUmVtb3RlQ0RNSW5zdGFuY2VTZXNzaW9u
SWRlbnRpZmllcjo6Z2VuZXJhdGUoKTsKLSAgICBhdXRvIHNlc3Npb24gPSBSZW1vdGVDRE1JbnN0
YW5jZVNlc3Npb25Qcm94eTo6Y3JlYXRlKG1ha2VXZWFrUHRyKG1fY2RtLmdldCgpKSwgcHJpdlNl
c3Npb24ucmVsZWFzZU5vbk51bGwoKSwgaWRlbnRpZmllcik7CisgICAgYXV0byBzZXNzaW9uID0g
UmVtb3RlQ0RNSW5zdGFuY2VTZXNzaW9uUHJveHk6OmNyZWF0ZShtX2NkbS5nZXQoKSwgcHJpdlNl
c3Npb24ucmVsZWFzZU5vbk51bGwoKSwgaWRlbnRpZmllcik7CiAgICAgbV9jZG0tPmZhY3Rvcnko
KS0+YWRkU2Vzc2lvbihpZGVudGlmaWVyLCBXVEZNb3ZlKHNlc3Npb24pKTsKICAgICBjb21wbGV0
aW9uKGlkZW50aWZpZXIpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNz
L21lZGlhL1JlbW90ZUNETUluc3RhbmNlU2Vzc2lvblByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQv
R1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVDRE1JbnN0YW5jZVNlc3Npb25Qcm94eS5jcHAKaW5kZXgg
ODA2MTQ2MTc3MGYzZWU4NzQzYWE2MjFiN2E4ZDAzMzVmMTExNjFjOC4uZTU3NjZjMjMzNGNmZDM4
OTMxMGNkNGIyMTcyM2NhYmEzNzQyZmM3YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9HUFVQ
cm9jZXNzL21lZGlhL1JlbW90ZUNETUluc3RhbmNlU2Vzc2lvblByb3h5LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlQ0RNSW5zdGFuY2VTZXNzaW9uUHJveHku
Y3BwCkBAIC00MSw3ICs0MSw3IEBAIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogc3RkOjp1bmlx
dWVfcHRyPFJlbW90ZUNETUluc3RhbmNlU2Vzc2lvblByb3h5PiBSZW1vdGVDRE1JbnN0YW5jZVNl
c3Npb25Qcm94eTo6Y3JlYXRlKFdlYWtQdHI8UmVtb3RlQ0RNUHJveHk+JiYgcHJveHksIFJlZjxX
ZWJDb3JlOjpDRE1JbnN0YW5jZVNlc3Npb24+JiYgc2Vzc2lvbiwgUmVtb3RlQ0RNSW5zdGFuY2VT
ZXNzaW9uSWRlbnRpZmllciBpZGVudGlmaWVyKQogewogICAgIGF1dG8gc2Vzc2lvblByb3h5ID0g
c3RkOjp1bmlxdWVfcHRyPFJlbW90ZUNETUluc3RhbmNlU2Vzc2lvblByb3h5PihuZXcgUmVtb3Rl
Q0RNSW5zdGFuY2VTZXNzaW9uUHJveHkoV1RGTW92ZShwcm94eSksIFdURk1vdmUoc2Vzc2lvbiks
IGlkZW50aWZpZXIpKTsKLSAgICBhdXRvIGNsaWVudCA9IG1ha2VXZWFrUHRyPFdlYkNvcmU6OkNE
TUluc3RhbmNlU2Vzc2lvbkNsaWVudD4oc2Vzc2lvblByb3h5LmdldCgpKTsKKyAgICBXZWFrUHRy
PFdlYkNvcmU6OkNETUluc3RhbmNlU2Vzc2lvbkNsaWVudD4gY2xpZW50ID0gc2Vzc2lvblByb3h5
LmdldCgpOwogICAgIHNlc3Npb25Qcm94eS0+bV9zZXNzaW9uLT5zZXRDbGllbnQoV1RGTW92ZShj
bGllbnQpKTsKICAgICByZXR1cm4gc2Vzc2lvblByb3h5OwogfQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZUNETVByb3h5LmNwcCBiL1NvdXJjZS9XZWJL
aXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVDRE1Qcm94eS5jcHAKaW5kZXggNWU1NGU4MjNkN2U3
N2NiYjYwN2Q1NjEyNmEyOTI2ZTI0NmFmYzMyZi4uOWFiMzU3NWY0YzNiNTU5NTU1YjliODdiMjMz
NzFiMWIxYTY2ZGMxNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlh
L1JlbW90ZUNETVByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEv
UmVtb3RlQ0RNUHJveHkuY3BwCkBAIC05MSw3ICs5MSw3IEBAIHZvaWQgUmVtb3RlQ0RNUHJveHk6
OmNyZWF0ZUluc3RhbmNlKENvbXBsZXRpb25IYW5kbGVyPHZvaWQoUmVtb3RlQ0RNSW5zdGFuY2VJ
ZGVuCiAgICAgICAgIHJldHVybjsKICAgICB9CiAgICAgYXV0byBpZGVudGlmaWVyID0gUmVtb3Rl
Q0RNSW5zdGFuY2VJZGVudGlmaWVyOjpnZW5lcmF0ZSgpOwotICAgIGF1dG8gaW5zdGFuY2UgPSBS
ZW1vdGVDRE1JbnN0YW5jZVByb3h5OjpjcmVhdGUobWFrZVdlYWtQdHIodGhpcyksIHByaXZhdGVJ
bnN0YW5jZS5yZWxlYXNlTm9uTnVsbCgpLCBpZGVudGlmaWVyKTsKKyAgICBhdXRvIGluc3RhbmNl
ID0gUmVtb3RlQ0RNSW5zdGFuY2VQcm94eTo6Y3JlYXRlKCp0aGlzLCBwcml2YXRlSW5zdGFuY2Uu
cmVsZWFzZU5vbk51bGwoKSwgaWRlbnRpZmllcik7CiAgICAgUmVtb3RlQ0RNSW5zdGFuY2VDb25m
aWd1cmF0aW9uIGNvbmZpZ3VyYXRpb24gPSBpbnN0YW5jZS0+Y29uZmlndXJhdGlvbigpOwogICAg
IG1fZmFjdG9yeS0+YWRkSW5zdGFuY2UoaWRlbnRpZmllciwgV1RGTW92ZShpbnN0YW5jZSkpOwog
ICAgIGNvbXBsZXRpb24oaWRlbnRpZmllciwgV1RGTW92ZShjb25maWd1cmF0aW9uKSk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlSW1hZ2VEZWNvZGVy
QVZGUHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZUltYWdl
RGVjb2RlckFWRlByb3h5LmNwcAppbmRleCA5NjgzZWRlMDlmOTZmY2Q5ZDE5M2YzNDJmYjVmMDhj
YmFhYjI5ZjYwLi5mYTgzODc0OTQzMjM2NWE0MDg5YWVhNWFlY2JjZWE2NjBkYjY0YmEwIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlSW1hZ2VEZWNvZGVy
QVZGUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVJ
bWFnZURlY29kZXJBVkZQcm94eS5jcHAKQEAgLTQxLDcgKzQxLDcgQEAgbmFtZXNwYWNlIFdlYktp
dCB7CiB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIAogUmVtb3RlSW1hZ2VEZWNvZGVyQVZGUHJv
eHk6OlJlbW90ZUltYWdlRGVjb2RlckFWRlByb3h5KEdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3Mm
IGNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MpCi0gICAgOiBtX2Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3Mo
bWFrZVdlYWtQdHIoY29ubmVjdGlvblRvV2ViUHJvY2VzcykpCisgICAgOiBtX2Nvbm5lY3Rpb25U
b1dlYlByb2Nlc3MoY29ubmVjdGlvblRvV2ViUHJvY2VzcykKIHsKIH0KIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZUxlZ2FjeUNETUZhY3RvcnlQcm94
eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTGVnYWN5Q0RNRmFj
dG9yeVByb3h5LmNwcAppbmRleCA2YWE0ZDFlNzJhOGNlMjllYTdlZmEyOGRkYjliMzc0ZjE4ZjNk
NWZlLi43Y2VkYjk3MTJmYzY2YjViOGRiNTJiYWYwOGNiMGMyYTY0ZTk0ZWU3IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTGVnYWN5Q0RNRmFjdG9yeVBy
b3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTGVnYWN5
Q0RNRmFjdG9yeVByb3h5LmNwcApAQCAtNDIsNyArNDIsNyBAQCBuYW1lc3BhY2UgV2ViS2l0IHsK
IHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogCiBSZW1vdGVMZWdhY3lDRE1GYWN0b3J5UHJveHk6
OlJlbW90ZUxlZ2FjeUNETUZhY3RvcnlQcm94eShHUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzJiBj
b25uZWN0aW9uKQotICAgIDogbV9ncHVDb25uZWN0aW9uVG9XZWJQcm9jZXNzKG1ha2VXZWFrUHRy
KGNvbm5lY3Rpb24pKQorICAgIDogbV9ncHVDb25uZWN0aW9uVG9XZWJQcm9jZXNzKGNvbm5lY3Rp
b24pCiB7CiB9CiAKQEAgLTcwLDcgKzcwLDcgQEAgdm9pZCBSZW1vdGVMZWdhY3lDRE1GYWN0b3J5
UHJveHk6OmNyZWF0ZUNETShjb25zdCBTdHJpbmcmIGtleVN5c3RlbSwgc3RkOjpvcHRpb24KICAg
ICBpZiAob3B0aW9uYWxQbGF5ZXJJZCkKICAgICAgICAgcGxheWVySWQgPSBXVEZNb3ZlKG9wdGlv
bmFsUGxheWVySWQudmFsdWUoKSk7CiAKLSAgICBhdXRvIHByb3h5ID0gUmVtb3RlTGVnYWN5Q0RN
UHJveHk6OmNyZWF0ZShtYWtlV2Vha1B0cih0aGlzKSwgV1RGTW92ZShwbGF5ZXJJZCksIFdURk1v
dmUocHJpdmF0ZUNETSkpOworICAgIGF1dG8gcHJveHkgPSBSZW1vdGVMZWdhY3lDRE1Qcm94eTo6
Y3JlYXRlKCp0aGlzLCBXVEZNb3ZlKHBsYXllcklkKSwgV1RGTW92ZShwcml2YXRlQ0RNKSk7CiAg
ICAgYXV0byBpZGVudGlmaWVyID0gUmVtb3RlTGVnYWN5Q0RNSWRlbnRpZmllcjo6Z2VuZXJhdGUo
KTsKICAgICBhZGRQcm94eShpZGVudGlmaWVyLCBXVEZNb3ZlKHByb3h5KSk7CiAgICAgY29tcGxl
dGlvbihXVEZNb3ZlKGlkZW50aWZpZXIpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BV
UHJvY2Vzcy9tZWRpYS9SZW1vdGVMZWdhY3lDRE1Qcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L0dQ
VVByb2Nlc3MvbWVkaWEvUmVtb3RlTGVnYWN5Q0RNUHJveHkuY3BwCmluZGV4IGJmNTE3NTkyYTAx
ZTBlZWFjN2MyYzhjOTU4OTViYzJmYThlMzc2OTMuLmZmZjZlYjUyOWU1NjlmYjhmNGJlMTMwZDdk
OGNlMzA3NjUzOWI3ODAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRp
YS9SZW1vdGVMZWdhY3lDRE1Qcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNz
L21lZGlhL1JlbW90ZUxlZ2FjeUNETVByb3h5LmNwcApAQCAtNjksNyArNjksNyBAQCB2b2lkIFJl
bW90ZUxlZ2FjeUNETVByb3h5OjpjcmVhdGVTZXNzaW9uKGNvbnN0IFN0cmluZyYga2V5U3lzdGVt
LCBDcmVhdGVTZXNzaW9uQwogICAgIH0KIAogICAgIGF1dG8gaWRlbnRpZmllciA9IFJlbW90ZUxl
Z2FjeUNETVNlc3Npb25JZGVudGlmaWVyOjpnZW5lcmF0ZSgpOwotICAgIGF1dG8gc2Vzc2lvbiA9
IFJlbW90ZUxlZ2FjeUNETVNlc3Npb25Qcm94eTo6Y3JlYXRlKG1ha2VXZWFrUHRyKG1fZmFjdG9y
eS5nZXQoKSksIGlkZW50aWZpZXIsICptX2NkbSk7CisgICAgYXV0byBzZXNzaW9uID0gUmVtb3Rl
TGVnYWN5Q0RNU2Vzc2lvblByb3h5OjpjcmVhdGUobV9mYWN0b3J5LmdldCgpLCBpZGVudGlmaWVy
LCAqbV9jZG0pOwogICAgIG1fZmFjdG9yeS0+YWRkU2Vzc2lvbihpZGVudGlmaWVyLCBXVEZNb3Zl
KHNlc3Npb24pKTsKICAgICBjYWxsYmFjayhXVEZNb3ZlKGlkZW50aWZpZXIpKTsKIH0KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVBsYXllck1h
bmFnZXJQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVk
aWFQbGF5ZXJNYW5hZ2VyUHJveHkuY3BwCmluZGV4IDBhMDBlNDhiYjIxOTZjMmEyNmJkMjI5ZjMy
OWM5ZWRiOGU4YjIyNjUuLjczMTAzZmE0YWI2ZDZmMTk1MDNkNTM4NWNhNDUwYzcyYmM3YjM3ZGIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVBs
YXllck1hbmFnZXJQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlh
L1JlbW90ZU1lZGlhUGxheWVyTWFuYWdlclByb3h5LmNwcApAQCAtNDksNyArNDksNyBAQCBuYW1l
c3BhY2UgV2ViS2l0IHsKIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogCiBSZW1vdGVNZWRpYVBs
YXllck1hbmFnZXJQcm94eTo6UmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyUHJveHkoR1BVQ29ubmVj
dGlvblRvV2ViUHJvY2VzcyYgY29ubmVjdGlvbikKLSAgICA6IG1fZ3B1Q29ubmVjdGlvblRvV2Vi
UHJvY2VzcyhtYWtlV2Vha1B0cihjb25uZWN0aW9uKSkKKyAgICA6IG1fZ3B1Q29ubmVjdGlvblRv
V2ViUHJvY2Vzcyhjb25uZWN0aW9uKQogewogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJQcm94eS5jcHAgYi9Tb3VyY2UvV2Vi
S2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJQcm94eS5jcHAKaW5kZXggZGVl
ZTAyMmI1ZjQxZTJhMzZhZTgzNzlkOTIyMWIzZWZjMzVlMDBmMS4uMWFkYjVhMjhlZDgxMzExZTlj
YjZlNjRiMWVlMzBkNTcwYjQyMzU3MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9HUFVQcm9j
ZXNzL21lZGlhL1JlbW90ZU1lZGlhUGxheWVyUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQv
R1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVBsYXllclByb3h5LmNwcApAQCAtNzYsNyArNzYs
NyBAQCB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIFJlbW90ZU1lZGlhUGxheWVyUHJveHk6OlJl
bW90ZU1lZGlhUGxheWVyUHJveHkoUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyUHJveHkmIG1hbmFn
ZXIsIE1lZGlhUGxheWVySWRlbnRpZmllciBpZGVudGlmaWVyLCBSZWY8SVBDOjpDb25uZWN0aW9u
PiYmIGNvbm5lY3Rpb24sIE1lZGlhUGxheWVyRW51bXM6Ok1lZGlhRW5naW5lSWRlbnRpZmllciBl
bmdpbmVJZGVudGlmaWVyLCBSZW1vdGVNZWRpYVBsYXllclByb3h5Q29uZmlndXJhdGlvbiYmIGNv
bmZpZ3VyYXRpb24pCiAgICAgOiBtX2lkKGlkZW50aWZpZXIpCiAgICAgLCBtX3dlYlByb2Nlc3ND
b25uZWN0aW9uKFdURk1vdmUoY29ubmVjdGlvbikpCi0gICAgLCBtX21hbmFnZXIobWFrZVdlYWtQ
dHIobWFuYWdlcikpCisgICAgLCBtX21hbmFnZXIobWFuYWdlcikKICAgICAsIG1fZW5naW5lSWRl
bnRpZmllcihlbmdpbmVJZGVudGlmaWVyKQogICAgICwgbV91cGRhdGVDYWNoZWRTdGF0ZU1lc3Nh
Z2VUaW1lcihSdW5Mb29wOjptYWluKCksIHRoaXMsICZSZW1vdGVNZWRpYVBsYXllclByb3h5Ojp0
aW1lckZpcmVkKQogICAgICwgbV9jb25maWd1cmF0aW9uKGNvbmZpZ3VyYXRpb24pCkBAIC05MDks
NyArOTA5LDcgQEAgdm9pZCBSZW1vdGVNZWRpYVBsYXllclByb3h5OjpzZXRMZWdhY3lDRE1TZXNz
aW9uKHN0ZDo6b3B0aW9uYWw8UmVtb3RlTGVnYWN5Q0RNU2UKICAgICBpZiAobV9sZWdhY3lTZXNz
aW9uKSB7CiAgICAgICAgIGlmIChhdXRvIGNkbVNlc3Npb24gPSBtX21hbmFnZXItPmdwdUNvbm5l
Y3Rpb25Ub1dlYlByb2Nlc3MoKS0+bGVnYWN5Q2RtRmFjdG9yeVByb3h5KCkuZ2V0U2Vzc2lvbigq
bV9sZWdhY3lTZXNzaW9uKSkgewogICAgICAgICAgICAgbV9wbGF5ZXItPnNldENETVNlc3Npb24o
Y2RtU2Vzc2lvbi0+c2Vzc2lvbigpKTsKLSAgICAgICAgICAgIGNkbVNlc3Npb24tPnNldFBsYXll
cihtYWtlV2Vha1B0cih0aGlzKSk7CisgICAgICAgICAgICBjZG1TZXNzaW9uLT5zZXRQbGF5ZXIo
KnRoaXMpOwogICAgICAgICB9CiAgICAgfQogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9H
UFVQcm9jZXNzL21lZGlhL1JlbW90ZU1lZGlhUmVzb3VyY2UuY3BwIGIvU291cmNlL1dlYktpdC9H
UFVQcm9jZXNzL21lZGlhL1JlbW90ZU1lZGlhUmVzb3VyY2UuY3BwCmluZGV4IDFjZGU3OWIxMWQ5
MDcyZDExOWUxNmFjZWVjODZlNDVkMGE0NGU5YWUuLjkwMjM1NGE5OTMxZmVkMTU1OWU1NGU0MWIx
YzAwNTlhZTg3MTgyMzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRp
YS9SZW1vdGVNZWRpYVJlc291cmNlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3Mv
bWVkaWEvUmVtb3RlTWVkaWFSZXNvdXJjZS5jcHAKQEAgLTQyLDggKzQyLDggQEAgUmVmPFJlbW90
ZU1lZGlhUmVzb3VyY2U+IFJlbW90ZU1lZGlhUmVzb3VyY2U6OmNyZWF0ZShSZW1vdGVNZWRpYVJl
c291cmNlTWFuYWdlciYKIH0KIAogUmVtb3RlTWVkaWFSZXNvdXJjZTo6UmVtb3RlTWVkaWFSZXNv
dXJjZShSZW1vdGVNZWRpYVJlc291cmNlTWFuYWdlciYgcmVtb3RlTWVkaWFSZXNvdXJjZU1hbmFn
ZXIsIFJlbW90ZU1lZGlhUGxheWVyUHJveHkmIHJlbW90ZU1lZGlhUGxheWVyUHJveHksIFJlbW90
ZU1lZGlhUmVzb3VyY2VJZGVudGlmaWVyIGlkZW50aWZpZXIpCi0gICAgOiBtX3JlbW90ZU1lZGlh
UmVzb3VyY2VNYW5hZ2VyKG1ha2VXZWFrUHRyKHJlbW90ZU1lZGlhUmVzb3VyY2VNYW5hZ2VyKSkK
LSAgICAsIG1fcmVtb3RlTWVkaWFQbGF5ZXJQcm94eShtYWtlV2Vha1B0cihyZW1vdGVNZWRpYVBs
YXllclByb3h5KSkKKyAgICA6IG1fcmVtb3RlTWVkaWFSZXNvdXJjZU1hbmFnZXIocmVtb3RlTWVk
aWFSZXNvdXJjZU1hbmFnZXIpCisgICAgLCBtX3JlbW90ZU1lZGlhUGxheWVyUHJveHkocmVtb3Rl
TWVkaWFQbGF5ZXJQcm94eSkKICAgICAsIG1faWQoaWRlbnRpZmllcikKIHsKIH0KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVJlc291cmNlTG9h
ZGVyLmNwcCBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVJlc291
cmNlTG9hZGVyLmNwcAppbmRleCBlZThmZDJkM2U1Y2QyNzYxMWU0MWRlMzhjNjRmODJlZTIxMzU4
MjA3Li5jYzcwZDFjNDE2YmI5YzNjOWI1MGJiNzliMjc1YTIzYmFiOWI0MGVmIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFSZXNvdXJjZUxvYWRl
ci5jcHAKKysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZU1lZGlhUmVz
b3VyY2VMb2FkZXIuY3BwCkBAIC0zNiw3ICszNiw3IEBAIG5hbWVzcGFjZSBXZWJLaXQgewogdXNp
bmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAKIFJlbW90ZU1lZGlhUmVzb3VyY2VMb2FkZXI6OlJlbW90
ZU1lZGlhUmVzb3VyY2VMb2FkZXIoUmVtb3RlTWVkaWFQbGF5ZXJQcm94eSYgcmVtb3RlTWVkaWFQ
bGF5ZXJQcm94eSkKLSAgICA6IG1fcmVtb3RlTWVkaWFQbGF5ZXJQcm94eShtYWtlV2Vha1B0cihy
ZW1vdGVNZWRpYVBsYXllclByb3h5KSkKKyAgICA6IG1fcmVtb3RlTWVkaWFQbGF5ZXJQcm94eShy
ZW1vdGVNZWRpYVBsYXllclByb3h5KQogewogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFTb3VyY2VQcm94eS5jcHAgYi9Tb3VyY2UvV2Vi
S2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFTb3VyY2VQcm94eS5jcHAKaW5kZXggNjMw
ZWJmY2FjMjAwMWMwNjZiOTViNjIyM2QyNjkyMGRhNzkyNmU3MS4uZGQ3YTUxZTQ4YjQyNmE2ODg2
MzZlNmFmZTMxYTY1NDBhMDU3NjhhMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9HUFVQcm9j
ZXNzL21lZGlhL1JlbW90ZU1lZGlhU291cmNlUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQv
R1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVNvdXJjZVByb3h5LmNwcApAQCAtNDIsMTAgKzQy
LDEwIEBAIG5hbWVzcGFjZSBXZWJLaXQgewogdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAKIFJl
bW90ZU1lZGlhU291cmNlUHJveHk6OlJlbW90ZU1lZGlhU291cmNlUHJveHkoR1BVQ29ubmVjdGlv
blRvV2ViUHJvY2VzcyYgY29ubmVjdGlvblRvV2ViUHJvY2VzcywgUmVtb3RlTWVkaWFTb3VyY2VJ
ZGVudGlmaWVyIGlkZW50aWZpZXIsIGJvb2wgd2ViTVBhcnNlckVuYWJsZWQsIFJlbW90ZU1lZGlh
UGxheWVyUHJveHkmIHJlbW90ZU1lZGlhUGxheWVyUHJveHkpCi0gICAgOiBtX2Nvbm5lY3Rpb25U
b1dlYlByb2Nlc3MobWFrZVdlYWtQdHIoY29ubmVjdGlvblRvV2ViUHJvY2VzcykpCisgICAgOiBt
X2Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MoY29ubmVjdGlvblRvV2ViUHJvY2VzcykKICAgICAsIG1f
aWRlbnRpZmllcihpZGVudGlmaWVyKQogICAgICwgbV93ZWJNUGFyc2VyRW5hYmxlZCh3ZWJNUGFy
c2VyRW5hYmxlZCkKLSAgICAsIG1fcmVtb3RlTWVkaWFQbGF5ZXJQcm94eShtYWtlV2Vha1B0cihy
ZW1vdGVNZWRpYVBsYXllclByb3h5KSkKKyAgICAsIG1fcmVtb3RlTWVkaWFQbGF5ZXJQcm94eShy
ZW1vdGVNZWRpYVBsYXllclByb3h5KQogewogICAgIG1fY29ubmVjdGlvblRvV2ViUHJvY2Vzcy0+
bWVzc2FnZVJlY2VpdmVyTWFwKCkuYWRkTWVzc2FnZVJlY2VpdmVyKE1lc3NhZ2VzOjpSZW1vdGVN
ZWRpYVNvdXJjZVByb3h5OjptZXNzYWdlUmVjZWl2ZXJOYW1lKCksIG1faWRlbnRpZmllci50b1VJ
bnQ2NCgpLCAqdGhpcyk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3Mv
bWVkaWEvUmVtb3RlUmVtb3RlQ29tbWFuZExpc3RlbmVyUHJveHkuY3BwIGIvU291cmNlL1dlYktp
dC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZVJlbW90ZUNvbW1hbmRMaXN0ZW5lclByb3h5LmNwcApp
bmRleCA4M2Q4N2EwYWYwZTAxYWYzNGM5M2Q4YTgxYmJjMzRlMWUyYjdiNzM1Li45Yzk3NGE0ZTBh
OGQzYmYzYjIzMWJhZTcwM2M5YzI5OGVlNGY3OGYwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlUmVtb3RlQ29tbWFuZExpc3RlbmVyUHJveHkuY3BwCisr
KyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVSZW1vdGVDb21tYW5kTGlz
dGVuZXJQcm94eS5jcHAKQEAgLTM3LDcgKzM3LDcgQEAgbmFtZXNwYWNlIFdlYktpdCB7CiB1c2lu
ZyBuYW1lc3BhY2UgV2ViQ29yZTsKIAogUmVtb3RlUmVtb3RlQ29tbWFuZExpc3RlbmVyUHJveHk6
OlJlbW90ZVJlbW90ZUNvbW1hbmRMaXN0ZW5lclByb3h5KEdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nl
c3MmIGdwdUNvbm5lY3Rpb24sIFJlbW90ZVJlbW90ZUNvbW1hbmRMaXN0ZW5lcklkZW50aWZpZXIm
JiBpZGVudGlmaWVyKQotICAgIDogbV9ncHVDb25uZWN0aW9uKG1ha2VXZWFrUHRyKGdwdUNvbm5l
Y3Rpb24pKQorICAgIDogbV9ncHVDb25uZWN0aW9uKGdwdUNvbm5lY3Rpb24pCiAgICAgLCBtX2lk
ZW50aWZpZXIoV1RGTW92ZShpZGVudGlmaWVyKSkKIHsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVTb3VyY2VCdWZmZXJQcm94eS5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlU291cmNlQnVmZmVyUHJveHkuY3BwCmlu
ZGV4IGQ3ZGRlMGE4ZWNjZmE5OGE5MDhkOWU1ZTJmYWZmMGQ3ZGU2YzY5ZGIuLjI3OTE2NWRlNjZh
YWZlMDI0NjgxZTE2MWEwMzVjNGExMDk1NGU2ZTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
R1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVTb3VyY2VCdWZmZXJQcm94eS5jcHAKKysrIGIvU291cmNl
L1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZVNvdXJjZUJ1ZmZlclByb3h5LmNwcApAQCAt
NTAsMTAgKzUwLDEwIEBAIFJlZjxSZW1vdGVTb3VyY2VCdWZmZXJQcm94eT4gUmVtb3RlU291cmNl
QnVmZmVyUHJveHk6OmNyZWF0ZShHUFVDb25uZWN0aW9uVG9XZWJQCiB9CiAKIFJlbW90ZVNvdXJj
ZUJ1ZmZlclByb3h5OjpSZW1vdGVTb3VyY2VCdWZmZXJQcm94eShHUFVDb25uZWN0aW9uVG9XZWJQ
cm9jZXNzJiBjb25uZWN0aW9uVG9XZWJQcm9jZXNzLCBSZW1vdGVTb3VyY2VCdWZmZXJJZGVudGlm
aWVyIGlkZW50aWZpZXIsIFJlZjxTb3VyY2VCdWZmZXJQcml2YXRlPiYmIHNvdXJjZUJ1ZmZlclBy
aXZhdGUsIFJlbW90ZU1lZGlhUGxheWVyUHJveHkmIHJlbW90ZU1lZGlhUGxheWVyUHJveHkpCi0g
ICAgOiBtX2Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MobWFrZVdlYWtQdHIoY29ubmVjdGlvblRvV2Vi
UHJvY2VzcykpCisgICAgOiBtX2Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MoY29ubmVjdGlvblRvV2Vi
UHJvY2VzcykKICAgICAsIG1faWRlbnRpZmllcihpZGVudGlmaWVyKQogICAgICwgbV9zb3VyY2VC
dWZmZXJQcml2YXRlKFdURk1vdmUoc291cmNlQnVmZmVyUHJpdmF0ZSkpCi0gICAgLCBtX3JlbW90
ZU1lZGlhUGxheWVyUHJveHkobWFrZVdlYWtQdHIocmVtb3RlTWVkaWFQbGF5ZXJQcm94eSkpCisg
ICAgLCBtX3JlbW90ZU1lZGlhUGxheWVyUHJveHkocmVtb3RlTWVkaWFQbGF5ZXJQcm94eSkKIHsK
ICAgICBtX2Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MtPm1lc3NhZ2VSZWNlaXZlck1hcCgpLmFkZE1l
c3NhZ2VSZWNlaXZlcihNZXNzYWdlczo6UmVtb3RlU291cmNlQnVmZmVyUHJveHk6Om1lc3NhZ2VS
ZWNlaXZlck5hbWUoKSwgbV9pZGVudGlmaWVyLnRvVUludDY0KCksICp0aGlzKTsKICAgICBtX3Nv
dXJjZUJ1ZmZlclByaXZhdGUtPnNldENsaWVudCh0aGlzKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVUZXh0VHJhY2tQcm94eS5jcHAgYi9Tb3VyY2Uv
V2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlVGV4dFRyYWNrUHJveHkuY3BwCmluZGV4IDk4
ZDY2MzVlOWE1MDcyNGRmOWU5Yzg3YThiMGI1NDY0ODMzYjk3N2MuLmFjMjEwNzk0Y2Q0ZTMwMTAz
MjVjNmM2YjNjY2ZhODZmYjRlODk1MTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvR1BVUHJv
Y2Vzcy9tZWRpYS9SZW1vdGVUZXh0VHJhY2tQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9H
UFVQcm9jZXNzL21lZGlhL1JlbW90ZVRleHRUcmFja1Byb3h5LmNwcApAQCAtNDQsNyArNDQsNyBA
QCBuYW1lc3BhY2UgV2ViS2l0IHsKIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogCiBSZW1vdGVU
ZXh0VHJhY2tQcm94eTo6UmVtb3RlVGV4dFRyYWNrUHJveHkoR1BVQ29ubmVjdGlvblRvV2ViUHJv
Y2VzcyYgY29ubmVjdGlvblRvV2ViUHJvY2VzcywgVHJhY2tQcml2YXRlUmVtb3RlSWRlbnRpZmll
ciBpZGVudGlmaWVyLCBJbmJhbmRUZXh0VHJhY2tQcml2YXRlJiB0cmFja1ByaXZhdGUsIE1lZGlh
UGxheWVySWRlbnRpZmllciBtZWRpYVBsYXllcklkZW50aWZpZXIpCi0gICAgOiBtX2Nvbm5lY3Rp
b25Ub1dlYlByb2Nlc3MobWFrZVdlYWtQdHIoY29ubmVjdGlvblRvV2ViUHJvY2VzcykpCisgICAg
OiBtX2Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MoY29ubmVjdGlvblRvV2ViUHJvY2VzcykKICAgICAs
IG1faWRlbnRpZmllcihpZGVudGlmaWVyKQogICAgICwgbV90cmFja1ByaXZhdGUodHJhY2tQcml2
YXRlKQogICAgICwgbV9tZWRpYVBsYXllcklkZW50aWZpZXIobWVkaWFQbGF5ZXJJZGVudGlmaWVy
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZVZpZGVv
VHJhY2tQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlVmlk
ZW9UcmFja1Byb3h5LmNwcAppbmRleCA0OWM0N2EzNTUxMzhiMjVhNTliODMxMjdiNWU2OWM2Y2Vi
Mjk3OTQyLi5mZjM3YzRmOTljM2MxOTZhN2U1NmU5ZmRjNzg2NzUxZmJjNzVhYjQ5IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlVmlkZW9UcmFja1Byb3h5
LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlVmlkZW9UcmFj
a1Byb3h5LmNwcApAQCAtNDAsNyArNDAsNyBAQCBuYW1lc3BhY2UgV2ViS2l0IHsKIHVzaW5nIG5h
bWVzcGFjZSBXZWJDb3JlOwogCiBSZW1vdGVWaWRlb1RyYWNrUHJveHk6OlJlbW90ZVZpZGVvVHJh
Y2tQcm94eShHUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzJiBjb25uZWN0aW9uVG9XZWJQcm9jZXNz
LCBUcmFja1ByaXZhdGVSZW1vdGVJZGVudGlmaWVyIGlkZW50aWZpZXIsIFZpZGVvVHJhY2tQcml2
YXRlJiB0cmFja1ByaXZhdGUsIE1lZGlhUGxheWVySWRlbnRpZmllciBtZWRpYVBsYXllcklkZW50
aWZpZXIpCi0gICAgOiBtX2Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MobWFrZVdlYWtQdHIoY29ubmVj
dGlvblRvV2ViUHJvY2VzcykpCisgICAgOiBtX2Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MoY29ubmVj
dGlvblRvV2ViUHJvY2VzcykKICAgICAsIG1faWRlbnRpZmllcihpZGVudGlmaWVyKQogICAgICwg
bV90cmFja1ByaXZhdGUodHJhY2tQcml2YXRlKQogICAgICwgbV9tZWRpYVBsYXllcklkZW50aWZp
ZXIobWVkaWFQbGF5ZXJJZGVudGlmaWVyKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3
b3JrUHJvY2Vzcy9DbGFzc2lmaWVyL1dlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZS5jcHAg
Yi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0NsYXNzaWZpZXIvV2ViUmVzb3VyY2VMb2Fk
U3RhdGlzdGljc1N0b3JlLmNwcAppbmRleCBhZWE0MDkxYTViYjE0YjcxYTU5MTUyZmFhNGY0Nzhm
NWNiZDRjNTE5Li41Mzk5NTQ1NWY3NWYzYzViZjRiZjk2MjM4ZjYzZjNkNzIzNzVmNDFmIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0NsYXNzaWZpZXIvV2ViUmVzb3Vy
Y2VMb2FkU3RhdGlzdGljc1N0b3JlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9j
ZXNzL0NsYXNzaWZpZXIvV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlLmNwcApAQCAtMTUw
LDcgKzE1MCw3IEBAIHN0YXRpYyBSZWY8U3VzcGVuZGFibGVXb3JrUXVldWU+IHNoYXJlZFN0YXRp
c3RpY3NRdWV1ZSgpCiB9CiAKIFdlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZTo6V2ViUmVz
b3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlKE5ldHdvcmtTZXNzaW9uJiBuZXR3b3JrU2Vzc2lvbiwg
Y29uc3QgU3RyaW5nJiByZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGlyZWN0b3J5LCBTaG91bGRJbmNs
dWRlTG9jYWxob3N0IHNob3VsZEluY2x1ZGVMb2NhbGhvc3QsIFJlc291cmNlTG9hZFN0YXRpc3Rp
Y3M6OklzRXBoZW1lcmFsIGlzRXBoZW1lcmFsKQotICAgIDogbV9uZXR3b3JrU2Vzc2lvbihtYWtl
V2Vha1B0cihuZXR3b3JrU2Vzc2lvbikpCisgICAgOiBtX25ldHdvcmtTZXNzaW9uKG5ldHdvcmtT
ZXNzaW9uKQogICAgICwgbV9zdGF0aXN0aWNzUXVldWUoc2hhcmVkU3RhdGlzdGljc1F1ZXVlKCkp
CiAgICAgLCBtX2RhaWx5VGFza3NUaW1lcihSdW5Mb29wOjptYWluKCksIHRoaXMsICZXZWJSZXNv
dXJjZUxvYWRTdGF0aXN0aWNzU3RvcmU6OnBlcmZvcm1EYWlseVRhc2tzKQogICAgICwgbV9pc0Vw
aGVtZXJhbChpc0VwaGVtZXJhbCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1By
b2Nlc3MvRG93bmxvYWRzL2NvY29hL1dLRG93bmxvYWRQcm9ncmVzcy5tbSBiL1NvdXJjZS9XZWJL
aXQvTmV0d29ya1Byb2Nlc3MvRG93bmxvYWRzL2NvY29hL1dLRG93bmxvYWRQcm9ncmVzcy5tbQpp
bmRleCAyZGFhOTM2NWUxNmI1NmMwOWE5MjBjMGE1MGI4MDdjNmMyZTVlNzUxLi41NzAzNWQxMjRl
N2E0OTJmNGFjNDgzNGQwZjQ5YjUzMDU4M2EwZWJhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L05ldHdvcmtQcm9jZXNzL0Rvd25sb2Fkcy9jb2NvYS9XS0Rvd25sb2FkUHJvZ3Jlc3MubW0KKysr
IGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9Eb3dubG9hZHMvY29jb2EvV0tEb3dubG9h
ZFByb2dyZXNzLm1tCkBAIC01Niw3ICs1Niw3IEBAIC0gKGluc3RhbmNldHlwZSlpbml0V2l0aERv
d25sb2FkVGFzazooTlNVUkxTZXNzaW9uRG93bmxvYWRUYXNrICopdGFzayBkb3dubG9hZDooCiAg
ICAgICAgIHJldHVybiBuaWw7CiAKICAgICBtX3Rhc2sgPSB0YXNrOwotICAgIG1fZG93bmxvYWQg
PSBtYWtlV2Vha1B0cihkb3dubG9hZCk7CisgICAgbV9kb3dubG9hZCA9IGRvd25sb2FkOwogCiAg
ICAgW3Rhc2sgYWRkT2JzZXJ2ZXI6c2VsZiBmb3JLZXlQYXRoOmNvdW50T2ZCeXRlc0V4cGVjdGVk
VG9SZWNlaXZlS2V5UGF0aCBvcHRpb25zOk5TS2V5VmFsdWVPYnNlcnZpbmdPcHRpb25OZXcgfCBO
U0tleVZhbHVlT2JzZXJ2aW5nT3B0aW9uSW5pdGlhbCBjb250ZXh0OldLRG93bmxvYWRQcm9ncmVz
c0J5dGVzRXhwZWN0ZWRUb1JlY2VpdmVDb3VudENvbnRleHRdOwogICAgIFt0YXNrIGFkZE9ic2Vy
dmVyOnNlbGYgZm9yS2V5UGF0aDpjb3VudE9mQnl0ZXNSZWNlaXZlZEtleVBhdGggb3B0aW9uczpO
U0tleVZhbHVlT2JzZXJ2aW5nT3B0aW9uTmV3IHwgTlNLZXlWYWx1ZU9ic2VydmluZ09wdGlvbklu
aXRpYWwgY29udGV4dDpXS0Rvd25sb2FkUHJvZ3Jlc3NCeXRlc1JlY2VpdmVkQ29udGV4dF07CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtDT1JTUHJlZmxp
Z2h0Q2hlY2tlci5jcHAgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtDT1JT
UHJlZmxpZ2h0Q2hlY2tlci5jcHAKaW5kZXggMTdiNGY5YTljOGNiOGFjNTBkNWNlYmRlOTVkYTYz
MzY1YmM0MWU5MS4uZjQwNTk2NjRkYzdhMmEwZTMxZjM2NjExMzhmMWEzNmEwYjNmMDg1NSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ09SU1ByZWZsaWdo
dENoZWNrZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0NP
UlNQcmVmbGlnaHRDaGVja2VyLmNwcApAQCAtNDYsNyArNDYsNyBAQCBOZXR3b3JrQ09SU1ByZWZs
aWdodENoZWNrZXI6Ok5ldHdvcmtDT1JTUHJlZmxpZ2h0Q2hlY2tlcihOZXR3b3JrUHJvY2VzcyYg
bmV0d29yawogICAgICwgbV9uZXR3b3JrUHJvY2VzcyhuZXR3b3JrUHJvY2VzcykKICAgICAsIG1f
Y29tcGxldGlvbkNhbGxiYWNrKFdURk1vdmUoY29tcGxldGlvbkNhbGxiYWNrKSkKICAgICAsIG1f
c2hvdWxkQ2FwdHVyZUV4dHJhTmV0d29ya0xvYWRNZXRyaWNzKHNob3VsZENhcHR1cmVFeHRyYU5l
dHdvcmtMb2FkTWV0cmljcykKLSAgICAsIG1fbmV0d29ya1Jlc291cmNlTG9hZGVyKG1ha2VXZWFr
UHRyKG5ldHdvcmtSZXNvdXJjZUxvYWRlcikpCisgICAgLCBtX25ldHdvcmtSZXNvdXJjZUxvYWRl
cihuZXR3b3JrUmVzb3VyY2VMb2FkZXIpCiB7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuY3BwIGIvU291
cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5j
cHAKaW5kZXggN2VmZjJlODk4NTIwNTdhMjc3MzlkNjEyNmFmYTIwNGMzMjllNGIxNC4uNWQ3YjVl
YTE0NjE2OGRmNGQwNDk3YjIxNDFmM2IzZDhkMTMwYjA2NyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5jcHAKKysr
IGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJv
Y2Vzcy5jcHAKQEAgLTExMzksNyArMTEzOSw3IEBAIHZvaWQgTmV0d29ya0Nvbm5lY3Rpb25Ub1dl
YlByb2Nlc3M6OmVzdGFibGlzaFNXU2VydmVyQ29ubmVjdGlvbigpCiAgICAgYXV0byYgc2VydmVy
ID0gbV9uZXR3b3JrUHJvY2Vzcy0+c3dTZXJ2ZXJGb3JTZXNzaW9uKG1fc2Vzc2lvbklEKTsKICAg
ICBhdXRvIGNvbm5lY3Rpb24gPSBtYWtlVW5pcXVlPFdlYlNXU2VydmVyQ29ubmVjdGlvbj4obV9u
ZXR3b3JrUHJvY2Vzcywgc2VydmVyLCBtX2Nvbm5lY3Rpb24uZ2V0KCksIG1fd2ViUHJvY2Vzc0lk
ZW50aWZpZXIpOwogCi0gICAgbV9zd0Nvbm5lY3Rpb24gPSBtYWtlV2Vha1B0cigqY29ubmVjdGlv
bik7CisgICAgbV9zd0Nvbm5lY3Rpb24gPSAqY29ubmVjdGlvbjsKICAgICBzZXJ2ZXIuYWRkQ29u
bmVjdGlvbihXVEZNb3ZlKGNvbm5lY3Rpb24pKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrRGF0YVRhc2suY3BwIGIvU291cmNlL1dlYktpdC9O
ZXR3b3JrUHJvY2Vzcy9OZXR3b3JrRGF0YVRhc2suY3BwCmluZGV4IGRlZTRmODk3NDI4M2I0MDAx
MDk2YzlhZDM5NjY5MzY4Zjc0YzFiYzUuLmQ1MTc4NTczZGNjYTE5ZDVlNjY2ZDRhNGM3MTg4NTgz
YmIxMTdhMjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29y
a0RhdGFUYXNrLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtE
YXRhVGFzay5jcHAKQEAgLTY0LDcgKzY0LDcgQEAgUmVmPE5ldHdvcmtEYXRhVGFzaz4gTmV0d29y
a0RhdGFUYXNrOjpjcmVhdGUoTmV0d29ya1Nlc3Npb24mIHNlc3Npb24sIE5ldHdvcmtEYXQKIH0K
IAogTmV0d29ya0RhdGFUYXNrOjpOZXR3b3JrRGF0YVRhc2soTmV0d29ya1Nlc3Npb24mIHNlc3Np
b24sIE5ldHdvcmtEYXRhVGFza0NsaWVudCYgY2xpZW50LCBjb25zdCBSZXNvdXJjZVJlcXVlc3Qm
IHJlcXVlc3RXaXRoQ3JlZGVudGlhbHMsIFN0b3JlZENyZWRlbnRpYWxzUG9saWN5IHN0b3JlZENy
ZWRlbnRpYWxzUG9saWN5LCBib29sIHNob3VsZENsZWFyUmVmZXJyZXJPbkhUVFBTVG9IVFRQUmVk
aXJlY3QsIGJvb2wgZGF0YVRhc2tJc0Zvck1haW5GcmFtZU5hdmlnYXRpb24pCi0gICAgOiBtX3Nl
c3Npb24obWFrZVdlYWtQdHIoc2Vzc2lvbikpCisgICAgOiBtX3Nlc3Npb24oc2Vzc2lvbikKICAg
ICAsIG1fY2xpZW50KCZjbGllbnQpCiAgICAgLCBtX3BhcnRpdGlvbihyZXF1ZXN0V2l0aENyZWRl
bnRpYWxzLmNhY2hlUGFydGl0aW9uKCkpCiAgICAgLCBtX3N0b3JlZENyZWRlbnRpYWxzUG9saWN5
KHN0b3JlZENyZWRlbnRpYWxzUG9saWN5KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3
b3JrUHJvY2Vzcy9OZXR3b3JrTG9hZC5jcHAgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNz
L05ldHdvcmtMb2FkLmNwcAppbmRleCBhYWY2YjExZDNlZDk5MjczNWE2MjA1OGEwODIwNGNjMGZi
MzkzNTFhLi5hMTg1YmE1NmJiNzI2NDM3MjkyYzJiMWUwZDYyNDlkM2ZhY2FlY2U4IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtMb2FkLmNwcAorKysgYi9T
b3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtMb2FkLmNwcApAQCAtNzYsNyArNzYs
NyBAQCB2b2lkIE5ldHdvcmtMb2FkOjpzdGFydFdpdGhTY2hlZHVsaW5nKCkKIHsKICAgICBpZiAo
IW1fdGFzayB8fCAhbV90YXNrLT5uZXR3b3JrU2Vzc2lvbigpKQogICAgICAgICByZXR1cm47Ci0g
ICAgbV9zY2hlZHVsZXIgPSBtYWtlV2Vha1B0cihtX3Rhc2stPm5ldHdvcmtTZXNzaW9uKCktPm5l
dHdvcmtMb2FkU2NoZWR1bGVyKCkpOworICAgIG1fc2NoZWR1bGVyID0gbV90YXNrLT5uZXR3b3Jr
U2Vzc2lvbigpLT5uZXR3b3JrTG9hZFNjaGVkdWxlcigpOwogICAgIG1fc2NoZWR1bGVyLT5zY2hl
ZHVsZSgqdGhpcyk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nl
c3MvTmV0d29ya0xvYWRDaGVja2VyLmNwcCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mv
TmV0d29ya0xvYWRDaGVja2VyLmNwcAppbmRleCA4YjRjY2E3NjIxMjczMzBjOWVkOTMwZDg3NDA4
NGY1NGQ0NGZiODQ0Li4yNzVlZmI3MzZlYzEzMmQ2NjFiOTUyNDc3YzFhMzc3MThiZGQzYWZmIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtMb2FkQ2hlY2tl
ci5jcHAKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrTG9hZENoZWNr
ZXIuY3BwCkBAIC02Nyw3ICs2Nyw3IEBAIE5ldHdvcmtMb2FkQ2hlY2tlcjo6TmV0d29ya0xvYWRD
aGVja2VyKE5ldHdvcmtQcm9jZXNzJiBuZXR3b3JrUHJvY2VzcywgTmV0d29ya1JlCiAgICAgLCBt
X3Nob3VsZENhcHR1cmVFeHRyYU5ldHdvcmtMb2FkTWV0cmljcyhzaG91bGRDYXB0dXJlRXh0cmFO
ZXR3b3JrTG9hZE1ldHJpY3MpCiAgICAgLCBtX3JlcXVlc3RMb2FkVHlwZShyZXF1ZXN0TG9hZFR5
cGUpCiAgICAgLCBtX3NjaGVtZVJlZ2lzdHJ5KHNjaGVtZVJlZ2lzdHJ5KQotICAgICwgbV9uZXR3
b3JrUmVzb3VyY2VMb2FkZXIobWFrZVdlYWtQdHIobmV0d29ya1Jlc291cmNlTG9hZGVyKSkKKyAg
ICAsIG1fbmV0d29ya1Jlc291cmNlTG9hZGVyKG5ldHdvcmtSZXNvdXJjZUxvYWRlcikKIHsKICAg
ICBtX2lzU2FtZU9yaWdpblJlcXVlc3QgPSBpc1NhbWVPcmlnaW4obV91cmwsIG1fb3JpZ2luLmdl
dCgpKTsKICAgICBzd2l0Y2ggKG9wdGlvbnMuY3JlZGVudGlhbHMpIHsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuY3BwIGIvU291cmNlL1dl
YktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5jcHAKaW5kZXggMWQ1YWNkNTAyMmQy
NjU1NzUwNzJhMDVlZTRmYjFkNzdhYTRlYTE3NC4uZjk1MDYyNjE0ZTk2NDBjM2NkNjI5ZDczOTRj
YmViODU5ODJiNTRjOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9O
ZXR3b3JrUHJvY2Vzcy5jcHAKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3
b3JrUHJvY2Vzcy5jcHAKQEAgLTEzODgsNyArMTM4OCw3IEBAIHZvaWQgTmV0d29ya1Byb2Nlc3M6
OnByZWNvbm5lY3RUbyhQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIFdlYlBhZ2VQcm94eUlkZW50
aWZpCiAgICAgcGFyYW1ldGVycy5zaG91bGRQcmVjb25uZWN0T25seSA9IFByZWNvbm5lY3RPbmx5
OjpZZXM7CiAKICAgICBuZXR3b3JrU2Vzc2lvbi0+bmV0d29ya0xvYWRTY2hlZHVsZXIoKS5zdGFy
dGVkUHJlY29ubmVjdEZvck1haW5SZXNvdXJjZSh1cmwsIHVzZXJBZ2VudCk7Ci0gICAgYXV0byB0
YXNrID0gbmV3IFByZWNvbm5lY3RUYXNrKCpuZXR3b3JrU2Vzc2lvbiwgV1RGTW92ZShwYXJhbWV0
ZXJzKSwgW3dlYWtOZXR3b3JrU2Vzc2lvbiA9IG1ha2VXZWFrUHRyKCpuZXR3b3JrU2Vzc2lvbiks
IHVybCwgdXNlckFnZW50XShjb25zdCBXZWJDb3JlOjpSZXNvdXJjZUVycm9yJiBlcnJvcikgewor
ICAgIGF1dG8gdGFzayA9IG5ldyBQcmVjb25uZWN0VGFzaygqbmV0d29ya1Nlc3Npb24sIFdURk1v
dmUocGFyYW1ldGVycyksIFt3ZWFrTmV0d29ya1Nlc3Npb24gPSBXZWFrUHRyIHsgKm5ldHdvcmtT
ZXNzaW9uIH0sIHVybCwgdXNlckFnZW50XShjb25zdCBXZWJDb3JlOjpSZXNvdXJjZUVycm9yJiBl
cnJvcikgewogICAgICAgICBpZiAod2Vha05ldHdvcmtTZXNzaW9uKQogICAgICAgICAgICAgd2Vh
a05ldHdvcmtTZXNzaW9uLT5uZXR3b3JrTG9hZFNjaGVkdWxlcigpLmZpbmlzaGVkUHJlY29ubmVj
dEZvck1haW5SZXNvdXJjZSh1cmwsIHVzZXJBZ2VudCwgZXJyb3IpOwogICAgIH0pOwpAQCAtMTk0
MCw3ICsxOTQwLDcgQEAgdm9pZCBOZXR3b3JrUHJvY2Vzczo6ZGVsZXRlQW5kUmVzdHJpY3RXZWJz
aXRlRGF0YUZvclJlZ2lzdHJhYmxlRG9tYWlucyhQQUw6OlNlc3MKIAogICAgIGlmICh3ZWJzaXRl
RGF0YVR5cGVzLmNvbnRhaW5zKFdlYnNpdGVEYXRhVHlwZTo6RGlza0NhY2hlKSkgewogICAgICAg
ICBmb3JFYWNoTmV0d29ya1Nlc3Npb24oW3Nlc3Npb25JRCwgZmV0Y2hPcHRpb25zLCAmZG9tYWlu
c1RvRGVsZXRlQWxsTm9uQ29va2llV2Vic2l0ZURhdGFGb3IsICZjYWxsYmFja0FnZ3JlZ2F0b3Jd
KGF1dG8mIHNlc3Npb24pIHsKLSAgICAgICAgICAgIGZldGNoRGlza0NhY2hlRW50cmllcyhzZXNz
aW9uLmNhY2hlKCksIHNlc3Npb25JRCwgZmV0Y2hPcHRpb25zLCBbZG9tYWluc1RvRGVsZXRlQWxs
Tm9uQ29va2llV2Vic2l0ZURhdGFGb3IsIGNhbGxiYWNrQWdncmVnYXRvciwgc2Vzc2lvbiA9IG1h
a2VXZWFrUHRyKCZzZXNzaW9uKV0oYXV0byBlbnRyaWVzKSBtdXRhYmxlIHsKKyAgICAgICAgICAg
IGZldGNoRGlza0NhY2hlRW50cmllcyhzZXNzaW9uLmNhY2hlKCksIHNlc3Npb25JRCwgZmV0Y2hP
cHRpb25zLCBbZG9tYWluc1RvRGVsZXRlQWxsTm9uQ29va2llV2Vic2l0ZURhdGFGb3IsIGNhbGxi
YWNrQWdncmVnYXRvciwgc2Vzc2lvbiA9IFdlYWtQdHIgeyBzZXNzaW9uIH1dKGF1dG8gZW50cmll
cykgbXV0YWJsZSB7CiAgICAgICAgICAgICAgICAgaWYgKCFzZXNzaW9uKQogICAgICAgICAgICAg
ICAgICAgICByZXR1cm47CiAKQEAgLTI2MTUsNyArMjYxNSw3IEBAIHZvaWQgTmV0d29ya1Byb2Nl
c3M6OnNpbXVsYXRlUmVzb3VyY2VMb2FkU3RhdGlzdGljc1Nlc3Npb25SZXN0YXJ0KFBBTDo6U2Vz
c2lvbklECiB7CiAgICAgLy8gRklYTUU6IFJlbmFtZSB0aGlzIHRvIHNpbXVsYXRlUHJpdmF0ZUNs
aWNrTWVhc3VyZW1lbnRTZXNzaW9uUmVzdGFydC4KICAgICBpZiAoYXV0byogc2Vzc2lvbiA9IG5l
dHdvcmtTZXNzaW9uKHNlc3Npb25JRCkpIHsKLSAgICAgICAgc2Vzc2lvbi0+cmVjcmVhdGVQcml2
YXRlQ2xpY2tNZWFzdXJlbWVudFN0b3JlKFtzZXNzaW9uID0gbWFrZVdlYWtQdHIoKnNlc3Npb24p
LCBjb21wbGV0aW9uSGFuZGxlciA9IFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpXSAoKSBtdXRh
YmxlIHsKKyAgICAgICAgc2Vzc2lvbi0+cmVjcmVhdGVQcml2YXRlQ2xpY2tNZWFzdXJlbWVudFN0
b3JlKFtzZXNzaW9uID0gV2Vha1B0ciB7ICpzZXNzaW9uIH0sIGNvbXBsZXRpb25IYW5kbGVyID0g
V1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcildICgpIG11dGFibGUgewogICAgICAgICAgICAgaWYg
KHNlc3Npb24pCiAgICAgICAgICAgICAgICAgc2Vzc2lvbi0+ZmlyZVByaXZhdGVDbGlja01lYXN1
cmVtZW50VGltZXJJbW1lZGlhdGVseUZvclRlc3RpbmcoKTsKICAgICAgICAgICAgIGNvbXBsZXRp
b25IYW5kbGVyKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05l
dHdvcmtSZXNvdXJjZUxvYWRlci5jcHAgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05l
dHdvcmtSZXNvdXJjZUxvYWRlci5jcHAKaW5kZXggZGFjMTg0MDVjYmNmNWY2Y2ZkZjAzNjM0YjQ0
NjhmMmZiYjE4ZDk0MC4uMGVmODFjZWRiNjdjMTk3MjAwZDI3MGNhNjk1ZDNkYThkZmFjNmIwYSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUmVzb3VyY2VM
b2FkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Jlc291
cmNlTG9hZGVyLmNwcApAQCAtODUwLDcgKzg1MCw3IEBAIHZvaWQgTmV0d29ya1Jlc291cmNlTG9h
ZGVyOjpzZW5kRGlkUmVjZWl2ZVJlc3BvbnNlUG90ZW50aWFsbHlJbk5ld0Jyb3dzaW5nQ29udGV4
CiAgICAgYXV0byBleGlzdGluZ05ldHdvcmtSZXNvdXJjZUxvYWRJZGVudGlmaWVyVG9SZXN1bWUg
PSBsb2FkZXItPmlkZW50aWZpZXIoKTsKICAgICBtX2Nvbm5lY3Rpb24tPm5ldHdvcmtTZXNzaW9u
KCktPmFkZExvYWRlckF3YWl0aW5nV2ViUHJvY2Vzc1RyYW5zZmVyKGxvYWRlci5yZWxlYXNlTm9u
TnVsbCgpKTsKICAgICBSZWdpc3RyYWJsZURvbWFpbiByZXNwb25zZURvbWFpbiB7IHJlc3BvbnNl
LnVybCgpIH07Ci0gICAgbV9jb25uZWN0aW9uLT5uZXR3b3JrUHJvY2VzcygpLnBhcmVudFByb2Nl
c3NDb25uZWN0aW9uKCktPnNlbmRXaXRoQXN5bmNSZXBseShNZXNzYWdlczo6TmV0d29ya1Byb2Nl
c3NQcm94eTo6VHJpZ2dlckJyb3dzaW5nQ29udGV4dEdyb3VwU3dpdGNoRm9yTmF2aWdhdGlvbiht
X3BhcmFtZXRlcnMud2ViUGFnZVByb3h5SUQsIG1fcGFyYW1ldGVycy5uYXZpZ2F0aW9uSUQsIGJy
b3dzaW5nQ29udGV4dEdyb3VwU3dpdGNoRGVjaXNpb24sIHJlc3BvbnNlRG9tYWluLCBleGlzdGlu
Z05ldHdvcmtSZXNvdXJjZUxvYWRJZGVudGlmaWVyVG9SZXN1bWUpLCBbZXhpc3RpbmdOZXR3b3Jr
UmVzb3VyY2VMb2FkSWRlbnRpZmllclRvUmVzdW1lLCBzZXNzaW9uID0gbWFrZVdlYWtQdHIoY29u
bmVjdGlvblRvV2ViUHJvY2VzcygpLm5ldHdvcmtTZXNzaW9uKCkpXShib29sIHN1Y2Nlc3MpIHsK
KyAgICBtX2Nvbm5lY3Rpb24tPm5ldHdvcmtQcm9jZXNzKCkucGFyZW50UHJvY2Vzc0Nvbm5lY3Rp
b24oKS0+c2VuZFdpdGhBc3luY1JlcGx5KE1lc3NhZ2VzOjpOZXR3b3JrUHJvY2Vzc1Byb3h5OjpU
cmlnZ2VyQnJvd3NpbmdDb250ZXh0R3JvdXBTd2l0Y2hGb3JOYXZpZ2F0aW9uKG1fcGFyYW1ldGVy
cy53ZWJQYWdlUHJveHlJRCwgbV9wYXJhbWV0ZXJzLm5hdmlnYXRpb25JRCwgYnJvd3NpbmdDb250
ZXh0R3JvdXBTd2l0Y2hEZWNpc2lvbiwgcmVzcG9uc2VEb21haW4sIGV4aXN0aW5nTmV0d29ya1Jl
c291cmNlTG9hZElkZW50aWZpZXJUb1Jlc3VtZSksIFtleGlzdGluZ05ldHdvcmtSZXNvdXJjZUxv
YWRJZGVudGlmaWVyVG9SZXN1bWUsIHNlc3Npb24gPSBXZWFrUHRyIHsgY29ubmVjdGlvblRvV2Vi
UHJvY2VzcygpLm5ldHdvcmtTZXNzaW9uKCkgfV0oYm9vbCBzdWNjZXNzKSB7CiAgICAgICAgIGlm
IChzdWNjZXNzKQogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICBpZiAoc2Vzc2lvbikKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1NvY2tldENoYW5u
ZWwuY3BwIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrU29ja2V0Q2hhbm5l
bC5jcHAKaW5kZXggNzcxMTJmNzhiMmI4ZTQ0ZDJjZDAyNjg1ZjJjOWVhYWYyODhkMTUxYy4uZTg3
MTUyNDAzM2Q4NmNhNjlhYWFhNjBjZDczYTI0YjEzNmJjZjA2NiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrU29ja2V0Q2hhbm5lbC5jcHAKKysrIGIvU291
cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrU29ja2V0Q2hhbm5lbC5jcHAKQEAgLTQ5
LDcgKzQ5LDcgQEAgc3RkOjp1bmlxdWVfcHRyPE5ldHdvcmtTb2NrZXRDaGFubmVsPiBOZXR3b3Jr
U29ja2V0Q2hhbm5lbDo6Y3JlYXRlKE5ldHdvcmtDb25uZWMKIE5ldHdvcmtTb2NrZXRDaGFubmVs
OjpOZXR3b3JrU29ja2V0Q2hhbm5lbChOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2VzcyYgY29u
bmVjdGlvbiwgTmV0d29ya1Nlc3Npb24qIHNlc3Npb24sIGNvbnN0IFJlc291cmNlUmVxdWVzdCYg
cmVxdWVzdCwgY29uc3QgU3RyaW5nJiBwcm90b2NvbCwgV2ViU29ja2V0SWRlbnRpZmllciBpZGVu
dGlmaWVyLCBXZWJQYWdlUHJveHlJZGVudGlmaWVyIHdlYlBhZ2VQcm94eUlEKQogICAgIDogbV9j
b25uZWN0aW9uVG9XZWJQcm9jZXNzKGNvbm5lY3Rpb24pCiAgICAgLCBtX2lkZW50aWZpZXIoaWRl
bnRpZmllcikKLSAgICAsIG1fc2Vzc2lvbihtYWtlV2Vha1B0cihzZXNzaW9uKSkKKyAgICAsIG1f
c2Vzc2lvbihzZXNzaW9uKQogICAgICwgbV9lcnJvclRpbWVyKCp0aGlzLCAmTmV0d29ya1NvY2tl
dENoYW5uZWw6OnNlbmREZWxheWVkRXJyb3IpCiAgICAgLCBtX3dlYlBhZ2VQcm94eUlEKHdlYlBh
Z2VQcm94eUlEKQogewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9O
ZXR3b3JrU3RvcmFnZVNlc3Npb25Qcm92aWRlci5oIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJv
Y2Vzcy9OZXR3b3JrU3RvcmFnZVNlc3Npb25Qcm92aWRlci5oCmluZGV4IGNiMzIxOTg4ZWM4NDFj
YmE5MmFjY2FlMTNjZmM0MzkyMTM0NzljY2YuLjI3ZTAxZGY1YzFjMDRjZGUwOTM0OGIyNDhmZGYx
ODFhYTJlMmRkYzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0
d29ya1N0b3JhZ2VTZXNzaW9uUHJvdmlkZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQ
cm9jZXNzL05ldHdvcmtTdG9yYWdlU2Vzc2lvblByb3ZpZGVyLmgKQEAgLTM5LDcgKzM5LDcgQEAg
cHVibGljOgogICAgIAogcHJpdmF0ZToKICAgICBOZXR3b3JrU3RvcmFnZVNlc3Npb25Qcm92aWRl
cihOZXR3b3JrUHJvY2VzcyYgbmV0d29ya1Byb2Nlc3MsIFBBTDo6U2Vzc2lvbklEIHNlc3Npb25J
RCkKLSAgICAgICAgOiBtX25ldHdvcmtQcm9jZXNzKG1ha2VXZWFrUHRyKG5ldHdvcmtQcm9jZXNz
KSkKKyAgICAgICAgOiBtX25ldHdvcmtQcm9jZXNzKG5ldHdvcmtQcm9jZXNzKQogICAgICAgICAs
IG1fc2Vzc2lvbklEKHNlc3Npb25JRCkgeyB9CiAKICAgICBXZWJDb3JlOjpOZXR3b3JrU3RvcmFn
ZVNlc3Npb24qIHN0b3JhZ2VTZXNzaW9uKCkgY29uc3QgZmluYWwKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvUHJpdmF0ZUNs
aWNrTWVhc3VyZW1lbnRDbGllbnRJbXBsLmNwcCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nl
c3MvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRDbGllbnRJ
bXBsLmNwcAppbmRleCA1NzZlNGY1OTQ5ODczZmVmNjM2NjZkY2JhMjRlOWI5OTdkOWUyMDdmLi5h
OTg3YzY1ZTFiYTEwNGIwYWYyMmJlOWQ0NmVjNzgyOWVkOGY0NWZkIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1ByaXZhdGVDbGlja01lYXN1cmVtZW50L1ByaXZhdGVD
bGlja01lYXN1cmVtZW50Q2xpZW50SW1wbC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3Jr
UHJvY2Vzcy9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudENs
aWVudEltcGwuY3BwCkBAIC0zNCw3ICszNCw3IEBAIG5hbWVzcGFjZSBXZWJLaXQgewogbmFtZXNw
YWNlIFBDTSB7CiAKIENsaWVudEltcGw6OkNsaWVudEltcGwoTmV0d29ya1Nlc3Npb24mIHNlc3Np
b24sIE5ldHdvcmtQcm9jZXNzJiBuZXR3b3JrUHJvY2VzcykKLSAgICA6IG1fbmV0d29ya1Nlc3Np
b24obWFrZVdlYWtQdHIoc2Vzc2lvbikpCisgICAgOiBtX25ldHdvcmtTZXNzaW9uKHNlc3Npb24p
CiAgICAgLCBtX25ldHdvcmtQcm9jZXNzKG5ldHdvcmtQcm9jZXNzKSB7IH0KIAogdm9pZCBDbGll
bnRJbXBsOjpicm9hZGNhc3RDb25zb2xlTWVzc2FnZShKU0M6Ok1lc3NhZ2VMZXZlbCBtZXNzYWdl
TGV2ZWwsIGNvbnN0IFN0cmluZyYgbWVzc2FnZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
TmV0d29ya1Byb2Nlc3MvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvUHJpdmF0ZUNsaWNrTWVhc3Vy
ZW1lbnRDb25uZWN0aW9uLmNwcCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvUHJpdmF0
ZUNsaWNrTWVhc3VyZW1lbnQvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRDb25uZWN0aW9uLmNwcApp
bmRleCBhNmU1ZjNlZjhmMTY4NmIwNDEwNmI0ZWU1MTNiMWRiZTA4OTJmMzc1Li5kMGQ4YTgxZjlm
M2MzNWM0MDU1MDQxNGM0NDY4ZjY4MTRiMjM1NzNhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L05ldHdvcmtQcm9jZXNzL1ByaXZhdGVDbGlja01lYXN1cmVtZW50L1ByaXZhdGVDbGlja01lYXN1
cmVtZW50Q29ubmVjdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9Q
cml2YXRlQ2xpY2tNZWFzdXJlbWVudC9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudENvbm5lY3Rpb24u
Y3BwCkBAIC0zNSw3ICszNSw4IEBAIG5hbWVzcGFjZSBQQ00gewogCiBDb25uZWN0aW9uVG9NYWNo
U2VydmljZTo6Q29ubmVjdGlvblRvTWFjaFNlcnZpY2UoQ1N0cmluZyYmIG1hY2hTZXJ2aWNlTmFt
ZSwgTmV0d29ya1Nlc3Npb24mIG5ldHdvcmtTZXNzaW9uKQogICAgIDogbV9tYWNoU2VydmljZU5h
bWUoV1RGTW92ZShtYWNoU2VydmljZU5hbWUpKQotICAgICwgbV9uZXR3b3JrU2Vzc2lvbihtYWtl
V2Vha1B0cihuZXR3b3JrU2Vzc2lvbikpIHsgfQorICAgICwgbV9uZXR3b3JrU2Vzc2lvbihuZXR3
b3JrU2Vzc2lvbikKK3sgfQogCiAjaWYgIVBMQVRGT1JNKENPQ09BKQogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1ByaXZhdGVDbGlja01lYXN1cmVtZW50L2NvY29h
L1ByaXZhdGVDbGlja01lYXN1cmVtZW50Q29ubmVjdGlvbkNvY29hLm1tIGIvU291cmNlL1dlYktp
dC9OZXR3b3JrUHJvY2Vzcy9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9jb2NvYS9Qcml2YXRlQ2xp
Y2tNZWFzdXJlbWVudENvbm5lY3Rpb25Db2NvYS5tbQppbmRleCA3MzU1YmYyMDMwMTA1M2FmMTNh
ZDkyMGM4ODdlOWYzMDdiYmE1ZGI4Li5lOGFmNDkxMmU0OTA2NmViNTgzYWIwZTBjMTRmMGEzYzll
MDZkODdmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1ByaXZhdGVD
bGlja01lYXN1cmVtZW50L2NvY29hL1ByaXZhdGVDbGlja01lYXN1cmVtZW50Q29ubmVjdGlvbkNv
Y29hLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvUHJpdmF0ZUNsaWNrTWVh
c3VyZW1lbnQvY29jb2EvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRDb25uZWN0aW9uQ29jb2EubW0K
QEAgLTM5LDcgKzM5LDcgQEAgdm9pZCBDb25uZWN0aW9uVG9NYWNoU2VydmljZTo6aW5pdGlhbGl6
ZUNvbm5lY3Rpb25JZk5lZWRlZCgpIGNvbnN0CiAgICAgaWYgKG1fY29ubmVjdGlvbikKICAgICAg
ICAgcmV0dXJuOwogICAgIG1fY29ubmVjdGlvbiA9IGFkb3B0TlMoeHBjX2Nvbm5lY3Rpb25fY3Jl
YXRlX21hY2hfc2VydmljZShtX21hY2hTZXJ2aWNlTmFtZS5kYXRhKCksIGRpc3BhdGNoX2dldF9t
YWluX3F1ZXVlKCksIDApKTsKLSAgICB4cGNfY29ubmVjdGlvbl9zZXRfZXZlbnRfaGFuZGxlciht
X2Nvbm5lY3Rpb24uZ2V0KCksIFt3ZWFrVGhpcyA9IG1ha2VXZWFrUHRyKCp0aGlzKV0oeHBjX29i
amVjdF90IGV2ZW50KSB7CisgICAgeHBjX2Nvbm5lY3Rpb25fc2V0X2V2ZW50X2hhbmRsZXIobV9j
b25uZWN0aW9uLmdldCgpLCBbd2Vha1RoaXMgPSBXZWFrUHRyIHsgKnRoaXMgfV0oeHBjX29iamVj
dF90IGV2ZW50KSB7CiAgICAgICAgIGlmICghd2Vha1RoaXMpCiAgICAgICAgICAgICByZXR1cm47
CiAgICAgICAgIGlmIChldmVudCA9PSBYUENfRVJST1JfQ09OTkVDVElPTl9JTlZBTElEKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1NlcnZp
Y2VXb3JrZXJGZXRjaFRhc2suY3BwIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9TZXJ2
aWNlV29ya2VyL1NlcnZpY2VXb3JrZXJGZXRjaFRhc2suY3BwCmluZGV4IDgyNTdlYzgxNGZmMjkw
YTY1YzY0MjVjMjJhNTcyZGFlMzE1ZTU1MTAuLmUyYmY1OGQ3MTI2NGNiODdjZjEyMzk5ZTI1N2U4
NTA5OTU2Yzk5YzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvU2Vy
dmljZVdvcmtlci9TZXJ2aWNlV29ya2VyRmV0Y2hUYXNrLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0
L05ldHdvcmtQcm9jZXNzL1NlcnZpY2VXb3JrZXIvU2VydmljZVdvcmtlckZldGNoVGFzay5jcHAK
QEAgLTUwLDcgKzUwLDcgQEAgbmFtZXNwYWNlIFdlYktpdCB7CiB1c2luZyBuYW1lc3BhY2UgV2Vi
Q29yZTsKIAogU2VydmljZVdvcmtlckZldGNoVGFzazo6U2VydmljZVdvcmtlckZldGNoVGFzayhX
ZWJTV1NlcnZlckNvbm5lY3Rpb24mIHN3U2VydmVyQ29ubmVjdGlvbiwgTmV0d29ya1Jlc291cmNl
TG9hZGVyJiBsb2FkZXIsIFJlc291cmNlUmVxdWVzdCYmIHJlcXVlc3QsIFNXU2VydmVyQ29ubmVj
dGlvbklkZW50aWZpZXIgc2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIsIFNlcnZpY2VXb3JrZXJJ
ZGVudGlmaWVyIHNlcnZpY2VXb3JrZXJJZGVudGlmaWVyLCBTZXJ2aWNlV29ya2VyUmVnaXN0cmF0
aW9uSWRlbnRpZmllciBzZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uSWRlbnRpZmllciwgYm9vbCBz
aG91bGRTb2Z0VXBkYXRlKQotICAgIDogbV9zd1NlcnZlckNvbm5lY3Rpb24obWFrZVdlYWtQdHIo
c3dTZXJ2ZXJDb25uZWN0aW9uKSkKKyAgICA6IG1fc3dTZXJ2ZXJDb25uZWN0aW9uKHN3U2VydmVy
Q29ubmVjdGlvbikKICAgICAsIG1fbG9hZGVyKGxvYWRlcikKICAgICAsIG1fZmV0Y2hJZGVudGlm
aWVyKFdlYkNvcmU6OkZldGNoSWRlbnRpZmllcjo6Z2VuZXJhdGUoKSkKICAgICAsIG1fc2VydmVy
Q29ubmVjdGlvbklkZW50aWZpZXIoc2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIpCkBAIC04NCw3
ICs4NCw3IEBAIHRlbXBsYXRlPHR5cGVuYW1lIE1lc3NhZ2U+IGJvb2wgU2VydmljZVdvcmtlckZl
dGNoVGFzazo6c2VuZFRvQ2xpZW50KE1lc3NhZ2UmJiBtCiB2b2lkIFNlcnZpY2VXb3JrZXJGZXRj
aFRhc2s6OnN0YXJ0KFdlYlNXU2VydmVyVG9Db250ZXh0Q29ubmVjdGlvbiYgc2VydmljZVdvcmtl
ckNvbm5lY3Rpb24pCiB7CiAgICAgU1dGRVRDSF9SRUxFQVNFX0xPRygic3RhcnQ6Iik7Ci0gICAg
bV9zZXJ2aWNlV29ya2VyQ29ubmVjdGlvbiA9IG1ha2VXZWFrUHRyKHNlcnZpY2VXb3JrZXJDb25u
ZWN0aW9uKTsKKyAgICBtX3NlcnZpY2VXb3JrZXJDb25uZWN0aW9uID0gc2VydmljZVdvcmtlckNv
bm5lY3Rpb247CiAgICAgc2VydmljZVdvcmtlckNvbm5lY3Rpb24ucmVnaXN0ZXJGZXRjaCgqdGhp
cyk7CiAKICAgICBzdGFydEZldGNoKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdv
cmtQcm9jZXNzL1NlcnZpY2VXb3JrZXIvU2VydmljZVdvcmtlclNvZnRVcGRhdGVMb2FkZXIuY3Bw
IGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1NlcnZpY2VXb3Jr
ZXJTb2Z0VXBkYXRlTG9hZGVyLmNwcAppbmRleCA5NTI5ODkwNGRjMjcxODE0YzY5NmRiOTk3MmNk
ZWYwNTU3NzM5MmVhLi44ZWUxMTJhOWRmODI4OTU0YzE2MjNmZmYyMmMyYTIwZmQ4ZTJmZTdkIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1NlcnZpY2VXb3JrZXIvU2Vy
dmljZVdvcmtlclNvZnRVcGRhdGVMb2FkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29y
a1Byb2Nlc3MvU2VydmljZVdvcmtlci9TZXJ2aWNlV29ya2VyU29mdFVwZGF0ZUxvYWRlci5jcHAK
QEAgLTUyLDcgKzUyLDcgQEAgdm9pZCBTZXJ2aWNlV29ya2VyU29mdFVwZGF0ZUxvYWRlcjo6c3Rh
cnQoTmV0d29ya1Nlc3Npb24qIHNlc3Npb24sIFNlcnZpY2VXb3JrZXIKIFNlcnZpY2VXb3JrZXJT
b2Z0VXBkYXRlTG9hZGVyOjpTZXJ2aWNlV29ya2VyU29mdFVwZGF0ZUxvYWRlcihOZXR3b3JrU2Vz
c2lvbiYgc2Vzc2lvbiwgU2VydmljZVdvcmtlckpvYkRhdGEmJiBqb2JEYXRhLCBib29sIHNob3Vs
ZFJlZnJlc2hDYWNoZSwgUmVzb3VyY2VSZXF1ZXN0JiYgcmVxdWVzdCwgSGFuZGxlciYmIGNvbXBs
ZXRpb25IYW5kbGVyKQogICAgIDogbV9jb21wbGV0aW9uSGFuZGxlcihXVEZNb3ZlKGNvbXBsZXRp
b25IYW5kbGVyKSkKICAgICAsIG1fam9iRGF0YShXVEZNb3ZlKGpvYkRhdGEpKQotICAgICwgbV9z
ZXNzaW9uKG1ha2VXZWFrUHRyKHNlc3Npb24pKQorICAgICwgbV9zZXNzaW9uKHNlc3Npb24pCiB7
CiAgICAgQVNTRVJUKCFyZXF1ZXN0LmlzQ29uZGl0aW9uYWwoKSk7CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvU2VydmljZVdvcmtlci9XZWJTV1NlcnZlclRvQ29u
dGV4dENvbm5lY3Rpb24uY3BwIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9TZXJ2aWNl
V29ya2VyL1dlYlNXU2VydmVyVG9Db250ZXh0Q29ubmVjdGlvbi5jcHAKaW5kZXggM2NhMDk2Yzdj
NGI3NzkzMTg0MTBhM2IxYTNiNzI2MzEzNjY5MWIyMy4uODVlZWRjNmU5NjMyYzZkMjYwZWNhMWIy
MjBhOWM1M2E4ODhjMWUyYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vz
cy9TZXJ2aWNlV29ya2VyL1dlYlNXU2VydmVyVG9Db250ZXh0Q29ubmVjdGlvbi5jcHAKKysrIGIv
U291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1dlYlNXU2VydmVyVG9D
b250ZXh0Q29ubmVjdGlvbi5jcHAKQEAgLTQ3LDcgKzQ3LDcgQEAgdXNpbmcgbmFtZXNwYWNlIFdl
YkNvcmU7CiBXZWJTV1NlcnZlclRvQ29udGV4dENvbm5lY3Rpb246OldlYlNXU2VydmVyVG9Db250
ZXh0Q29ubmVjdGlvbihOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2VzcyYgY29ubmVjdGlvbiwg
V2ViUGFnZVByb3h5SWRlbnRpZmllciB3ZWJQYWdlUHJveHlJRCwgUmVnaXN0cmFibGVEb21haW4m
JiByZWdpc3RyYWJsZURvbWFpbiwgc3RkOjpvcHRpb25hbDxTZXJ2aWNlV29ya2VyQ2xpZW50SWRl
bnRpZmllcj4gc2VydmljZVdvcmtlclBhZ2VJZGVudGlmaWVyLCBTV1NlcnZlciYgc2VydmVyKQog
ICAgIDogU1dTZXJ2ZXJUb0NvbnRleHRDb25uZWN0aW9uKFdURk1vdmUocmVnaXN0cmFibGVEb21h
aW4pLCBzZXJ2aWNlV29ya2VyUGFnZUlkZW50aWZpZXIpCiAgICAgLCBtX2Nvbm5lY3Rpb24oY29u
bmVjdGlvbikKLSAgICAsIG1fc2VydmVyKG1ha2VXZWFrUHRyKHNlcnZlcikpCisgICAgLCBtX3Nl
cnZlcihzZXJ2ZXIpCiAgICAgLCBtX3dlYlBhZ2VQcm94eUlEKHdlYlBhZ2VQcm94eUlEKQogewog
ICAgIHNlcnZlci5hZGRDb250ZXh0Q29ubmVjdGlvbigqdGhpcyk7CkBAIC0xODgsNyArMTg4LDcg
QEAgdm9pZCBXZWJTV1NlcnZlclRvQ29udGV4dENvbm5lY3Rpb246OmRpZFJlY2VpdmVGZXRjaFRh
c2tNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYKIHZvaWQgV2ViU1dTZXJ2ZXJUb0NvbnRleHRDb25u
ZWN0aW9uOjpyZWdpc3RlckZldGNoKFNlcnZpY2VXb3JrZXJGZXRjaFRhc2smIHRhc2spCiB7CiAg
ICAgQVNTRVJUKCFtX29uZ29pbmdGZXRjaGVzLmNvbnRhaW5zKHRhc2suZmV0Y2hJZGVudGlmaWVy
KCkpKTsKLSAgICBtX29uZ29pbmdGZXRjaGVzLmFkZCh0YXNrLmZldGNoSWRlbnRpZmllcigpLCBt
YWtlV2Vha1B0cih0YXNrKSk7CisgICAgbV9vbmdvaW5nRmV0Y2hlcy5hZGQodGFzay5mZXRjaElk
ZW50aWZpZXIoKSwgdGFzayk7CiB9CiAKIHZvaWQgV2ViU1dTZXJ2ZXJUb0NvbnRleHRDb25uZWN0
aW9uOjp1bnJlZ2lzdGVyRmV0Y2goU2VydmljZVdvcmtlckZldGNoVGFzayYgdGFzaykKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvV2ViU3RvcmFnZS9TdG9yYWdlQXJl
YS5jcHAgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1dlYlN0b3JhZ2UvU3RvcmFnZUFy
ZWEuY3BwCmluZGV4IGRkOTFlNzhhNWIxNjA5MTUxZWFiMTFlNjQwNmRmNjU5ZDFiZDUwMTAuLmM4
NGVhZDQzMGFiMTVkOTRmZDhlZjI1MzNkNmU0OTI4NzJiNmUxMmIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvV2ViU3RvcmFnZS9TdG9yYWdlQXJlYS5jcHAKKysrIGIv
U291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9XZWJTdG9yYWdlL1N0b3JhZ2VBcmVhLmNwcApA
QCAtMzcsNyArMzcsNyBAQCBuYW1lc3BhY2UgV2ViS2l0IHsKIHVzaW5nIG5hbWVzcGFjZSBXZWJD
b3JlOwogCiBTdG9yYWdlQXJlYTo6U3RvcmFnZUFyZWEoTG9jYWxTdG9yYWdlTmFtZXNwYWNlKiBs
b2NhbFN0b3JhZ2VOYW1lc3BhY2UsIGNvbnN0IFNlY3VyaXR5T3JpZ2luRGF0YSYgc2VjdXJpdHlP
cmlnaW4sIHVuc2lnbmVkIHF1b3RhSW5CeXRlcywgUmVmPFN1c3BlbmRhYmxlV29ya1F1ZXVlPiYm
IHF1ZXVlKQotICAgIDogbV9sb2NhbFN0b3JhZ2VOYW1lc3BhY2UobWFrZVdlYWtQdHIobG9jYWxT
dG9yYWdlTmFtZXNwYWNlKSkKKyAgICA6IG1fbG9jYWxTdG9yYWdlTmFtZXNwYWNlKGxvY2FsU3Rv
cmFnZU5hbWVzcGFjZSkKICAgICAsIG1fc2VjdXJpdHlPcmlnaW4oc2VjdXJpdHlPcmlnaW4pCiAg
ICAgLCBtX3F1b3RhSW5CeXRlcyhxdW90YUluQnl0ZXMpCiAgICAgLCBtX2lkZW50aWZpZXIoSWRl
bnRpZmllcjo6Z2VuZXJhdGUoKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1By
b2Nlc3MvV2ViU3RvcmFnZS9TdG9yYWdlTWFuYWdlclNldC5jcHAgYi9Tb3VyY2UvV2ViS2l0L05l
dHdvcmtQcm9jZXNzL1dlYlN0b3JhZ2UvU3RvcmFnZU1hbmFnZXJTZXQuY3BwCmluZGV4IDA4ZjYx
YWJkN2FhYjU4ZGNmNGRjMzFmMzYxMGRiMWQ3ZGVlYWI0MTEuLjZmZDcwM2E1ZTViMmQwMTQzNTk4
NWVhYjNhZWRjMWUwZDFhOTNiMTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1By
b2Nlc3MvV2ViU3RvcmFnZS9TdG9yYWdlTWFuYWdlclNldC5jcHAKKysrIGIvU291cmNlL1dlYktp
dC9OZXR3b3JrUHJvY2Vzcy9XZWJTdG9yYWdlL1N0b3JhZ2VNYW5hZ2VyU2V0LmNwcApAQCAtMzE1
LDcgKzMxNSw3IEBAIHZvaWQgU3RvcmFnZU1hbmFnZXJTZXQ6OmNvbm5lY3RUb0xvY2FsU3RvcmFn
ZUFyZWEoSVBDOjpDb25uZWN0aW9uJiBjb25uZWN0aW9uLCBQCiAgICAgfQogCiAgICAgYXV0byBz
dG9yYWdlQXJlYUlEID0gc3RvcmFnZUFyZWEtPmlkZW50aWZpZXIoKTsKLSAgICBhdXRvIGl0ZXIg
PSBtX3N0b3JhZ2VBcmVhcy5hZGQoc3RvcmFnZUFyZWFJRCwgbWFrZVdlYWtQdHIoc3RvcmFnZUFy
ZWEpKS5pdGVyYXRvcjsKKyAgICBhdXRvIGl0ZXIgPSBtX3N0b3JhZ2VBcmVhcy5hZGQoc3RvcmFn
ZUFyZWFJRCwgc3RvcmFnZUFyZWEpLml0ZXJhdG9yOwogICAgIEFTU0VSVF9VTlVTRUQoaXRlciwg
c3RvcmFnZUFyZWEgPT0gaXRlci0+dmFsdWUuZ2V0KCkpOwogCiAgICAgY29tcGxldGlvbkhhbmRs
ZXIoc3RvcmFnZUFyZWFJRCk7CkBAIC0zNDAsNyArMzQwLDcgQEAgdm9pZCBTdG9yYWdlTWFuYWdl
clNldDo6Y29ubmVjdFRvVHJhbnNpZW50TG9jYWxTdG9yYWdlQXJlYShJUEM6OkNvbm5lY3Rpb24m
IGNvbm4KICAgICB9CiAKICAgICBhdXRvIHN0b3JhZ2VBcmVhSUQgPSBzdG9yYWdlQXJlYS0+aWRl
bnRpZmllcigpOwotICAgIGF1dG8gaXRlciA9IG1fc3RvcmFnZUFyZWFzLmFkZChzdG9yYWdlQXJl
YUlELCBtYWtlV2Vha1B0cihzdG9yYWdlQXJlYSkpLml0ZXJhdG9yOworICAgIGF1dG8gaXRlciA9
IG1fc3RvcmFnZUFyZWFzLmFkZChzdG9yYWdlQXJlYUlELCBzdG9yYWdlQXJlYSkuaXRlcmF0b3I7
CiAgICAgQVNTRVJUX1VOVVNFRChpdGVyLCBzdG9yYWdlQXJlYSA9PSBpdGVyLT52YWx1ZS5nZXQo
KSk7CiAKICAgICBjb21wbGV0aW9uSGFuZGxlcihzdG9yYWdlQXJlYUlEKTsKQEAgLTM2NSw3ICsz
NjUsNyBAQCB2b2lkIFN0b3JhZ2VNYW5hZ2VyU2V0Ojpjb25uZWN0VG9TZXNzaW9uU3RvcmFnZUFy
ZWEoSVBDOjpDb25uZWN0aW9uJiBjb25uZWN0aW9uLAogICAgIH0KIAogICAgIGF1dG8gc3RvcmFn
ZUFyZWFJRCA9IHN0b3JhZ2VBcmVhLT5pZGVudGlmaWVyKCk7Ci0gICAgYXV0byBpdGVyID0gbV9z
dG9yYWdlQXJlYXMuYWRkKHN0b3JhZ2VBcmVhSUQsIG1ha2VXZWFrUHRyKHN0b3JhZ2VBcmVhKSku
aXRlcmF0b3I7CisgICAgYXV0byBpdGVyID0gbV9zdG9yYWdlQXJlYXMuYWRkKHN0b3JhZ2VBcmVh
SUQsIHN0b3JhZ2VBcmVhKS5pdGVyYXRvcjsKICAgICBBU1NFUlRfVU5VU0VEKGl0ZXIsIHN0b3Jh
Z2VBcmVhID09IGl0ZXItPnZhbHVlLmdldCgpKTsKIAogICAgIGNvbXBsZXRpb25IYW5kbGVyKHN0
b3JhZ2VBcmVhSUQpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9j
YWNoZS9DYWNoZVN0b3JhZ2VFbmdpbmUuY3BwIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vz
cy9jYWNoZS9DYWNoZVN0b3JhZ2VFbmdpbmUuY3BwCmluZGV4IGJmMTk3NGZjNTcwNDExZGVjMDU3
ZWE0MTQ3MDJlMGNjMDUxZjYzMzAuLmYzMjcyMTVmZTU4N2ExOGMxZGI4YzRjZWNkNThiMDVkNjM1
NTQ4MTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY2FjaGUvQ2Fj
aGVTdG9yYWdlRW5naW5lLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2Nh
Y2hlL0NhY2hlU3RvcmFnZUVuZ2luZS5jcHAKQEAgLTI2MCw3ICsyNjAsNyBAQCB2b2lkIEVuZ2lu
ZTo6cmVxdWVzdFNwYWNlKGNvbnN0IFdlYkNvcmU6OkNsaWVudE9yaWdpbiYgb3JpZ2luLCB1aW50
NjRfdCBzcGFjZVJlcQogCiBFbmdpbmU6OkVuZ2luZShQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQs
IE5ldHdvcmtQcm9jZXNzJiBwcm9jZXNzLCBTdHJpbmcmJiByb290UGF0aCkKICAgICA6IG1fc2Vz
c2lvbklEKHNlc3Npb25JRCkKLSAgICAsIG1fbmV0d29ya1Byb2Nlc3MobWFrZVdlYWtQdHIocHJv
Y2VzcykpCisgICAgLCBtX25ldHdvcmtQcm9jZXNzKHByb2Nlc3MpCiAgICAgLCBtX3Jvb3RQYXRo
KFdURk1vdmUocm9vdFBhdGgpKQogewogICAgIGlmICghbV9yb290UGF0aC5pc051bGwoKSkKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY29jb2EvTmV0d29ya0RhdGFU
YXNrQ29jb2EubW0gYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NvY29hL05ldHdvcmtE
YXRhVGFza0NvY29hLm1tCmluZGV4IDE5ZDRlYjQ1YjUyMzg2MTY1MGM2ZWQ4NzA4M2Q2OTZiN2Y1
ZjdhZGEuLmI5MGNmMDA3ZWE5OTc0NjQyMDhiZTVhZmQyNzVlNjJkY2U4MzdkNDcgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY29jb2EvTmV0d29ya0RhdGFUYXNrQ29j
b2EubW0KKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jb2NvYS9OZXR3b3JrRGF0
YVRhc2tDb2NvYS5tbQpAQCAtMjkzLDcgKzI5Myw3IEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBjb21w
dXRlSXNBbHdheXNPbkxvZ2dpbmdBbGxvd2VkKE5ldHdvcmtTZXNzaW9uJiBzZXNzaW9uKQogCiBO
ZXR3b3JrRGF0YVRhc2tDb2NvYTo6TmV0d29ya0RhdGFUYXNrQ29jb2EoTmV0d29ya1Nlc3Npb24m
IHNlc3Npb24sIE5ldHdvcmtEYXRhVGFza0NsaWVudCYgY2xpZW50LCBjb25zdCBOZXR3b3JrTG9h
ZFBhcmFtZXRlcnMmIHBhcmFtZXRlcnMpCiAgICAgOiBOZXR3b3JrRGF0YVRhc2soc2Vzc2lvbiwg
Y2xpZW50LCBwYXJhbWV0ZXJzLnJlcXVlc3QsIHBhcmFtZXRlcnMuc3RvcmVkQ3JlZGVudGlhbHNQ
b2xpY3ksIHBhcmFtZXRlcnMuc2hvdWxkQ2xlYXJSZWZlcnJlck9uSFRUUFNUb0hUVFBSZWRpcmVj
dCwgcGFyYW1ldGVycy5pc01haW5GcmFtZU5hdmlnYXRpb24pCi0gICAgLCBtX3Nlc3Npb25XcmFw
cGVyKG1ha2VXZWFrUHRyKHN0YXRpY19jYXN0PE5ldHdvcmtTZXNzaW9uQ29jb2EmPihzZXNzaW9u
KS5zZXNzaW9uV3JhcHBlckZvclRhc2socGFyYW1ldGVycy53ZWJQYWdlUHJveHlJRCwgcGFyYW1l
dGVycy5yZXF1ZXN0LCBwYXJhbWV0ZXJzLnN0b3JlZENyZWRlbnRpYWxzUG9saWN5LCBwYXJhbWV0
ZXJzLmlzTmF2aWdhdGluZ1RvQXBwQm91bmREb21haW4pKSkKKyAgICAsIG1fc2Vzc2lvbldyYXBw
ZXIoc3RhdGljX2Nhc3Q8TmV0d29ya1Nlc3Npb25Db2NvYSY+KHNlc3Npb24pLnNlc3Npb25XcmFw
cGVyRm9yVGFzayhwYXJhbWV0ZXJzLndlYlBhZ2VQcm94eUlELCBwYXJhbWV0ZXJzLnJlcXVlc3Qs
IHBhcmFtZXRlcnMuc3RvcmVkQ3JlZGVudGlhbHNQb2xpY3ksIHBhcmFtZXRlcnMuaXNOYXZpZ2F0
aW5nVG9BcHBCb3VuZERvbWFpbikpCiAgICAgLCBtX2ZyYW1lSUQocGFyYW1ldGVycy53ZWJGcmFt
ZUlEKQogICAgICwgbV9wYWdlSUQocGFyYW1ldGVycy53ZWJQYWdlSUQpCiAgICAgLCBtX3dlYlBh
Z2VQcm94eUlEKHBhcmFtZXRlcnMud2ViUGFnZVByb3h5SUQpCkBAIC01NzgsNyArNTc4LDcgQEAg
dm9pZCBOZXR3b3JrRGF0YVRhc2tDb2NvYTo6c3dhcFNlc3Npb25JZk5lY2Vzc2FyeShXZWJDb3Jl
OjpSZXNvdXJjZVJlcXVlc3QmIHJlcXUKICAgICBhdXRvIHByZXZpb3VzVGFzayA9IHN0ZDo6ZXhj
aGFuZ2UobV90YXNrLCBudWxscHRyKTsKIAogICAgIG1fc2Vzc2lvbldyYXBwZXItPmRhdGFUYXNr
TWFwLnJlbW92ZShbcHJldmlvdXNUYXNrIHRhc2tJZGVudGlmaWVyXSk7Ci0gICAgbV9zZXNzaW9u
V3JhcHBlciA9IG1ha2VXZWFrUHRyKHVwZGF0ZWRTZXNzaW9uKTsKKyAgICBtX3Nlc3Npb25XcmFw
cGVyID0gdXBkYXRlZFNlc3Npb247CiAKICAgICBtX3Rhc2sgPSBbbV9zZXNzaW9uV3JhcHBlci0+
c2Vzc2lvbiBkYXRhVGFza1dpdGhSZXF1ZXN0OnJlcXVlc3QubnNVUkxSZXF1ZXN0KFdlYkNvcmU6
OkhUVFBCb2R5VXBkYXRlUG9saWN5OjpVcGRhdGVIVFRQQm9keSldOwogICAgIG1fc2Vzc2lvbldy
YXBwZXItPmRhdGFUYXNrTWFwLmFkZChbbV90YXNrIHRhc2tJZGVudGlmaWVyXSwgdGhpcyk7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NvY29hL05ldHdvcmtTZXNz
aW9uQ29jb2EubW0gYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NvY29hL05ldHdvcmtT
ZXNzaW9uQ29jb2EubW0KaW5kZXggY2I2N2NjNjI2MjZlOGM5NDFkMjVjNjdiM2MxM2EyMjE1NTM2
MGIyNi4uNGU5YTUzMTk1ZjFjYWZjMTAxZjc3NWVkZjA1NTcyNjVmMmFhMGQ5ZiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jb2NvYS9OZXR3b3JrU2Vzc2lvbkNvY29h
Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY29jb2EvTmV0d29ya1Nlc3Np
b25Db2NvYS5tbQpAQCAtNDYwLDggKzQ2MCw4IEBAIC0gKGlkKWluaXRXaXRoTmV0d29ya1Nlc3Np
b246KE5ha2VkUmVmPFdlYktpdDo6TmV0d29ya1Nlc3Npb25Db2NvYT4pc2Vzc2lvbiB3cmFwCiAg
ICAgaWYgKCFzZWxmKQogICAgICAgICByZXR1cm4gbmlsOwogCi0gICAgX3Nlc3Npb24gPSBtYWtl
V2Vha1B0cihzZXNzaW9uLmdldCgpKTsKLSAgICBfc2Vzc2lvbldyYXBwZXIgPSBtYWtlV2Vha1B0
cihzZXNzaW9uV3JhcHBlcik7CisgICAgX3Nlc3Npb24gPSBzZXNzaW9uLmdldCgpOworICAgIF9z
ZXNzaW9uV3JhcHBlciA9IHNlc3Npb25XcmFwcGVyOwogICAgIF93aXRoQ3JlZGVudGlhbHMgPSB3
aXRoQ3JlZGVudGlhbHM7CiAKICAgICByZXR1cm4gc2VsZjsKQEAgLTc0Niw3ICs3NDYsNyBAQCBB
TExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19FTkQKICAgICAgICAgICAgICAgICBOU1VSTFBy
b3RlY3Rpb25TcGFjZSAqcHJvdGVjdGlvblNwYWNlID0gY2hhbGxlbmdlLnByb3RlY3Rpb25TcGFj
ZTsKICAgICAgICAgICAgICAgICBuZXR3b3JrRGF0YVRhc2stPmRpZE5lZ290aWF0ZU1vZGVyblRM
UyhVUkwoVVJMKCksIG1ha2VTdHJpbmcoU3RyaW5nKHByb3RlY3Rpb25TcGFjZS5wcm90b2NvbCks
ICI6Ly8iLCBTdHJpbmcocHJvdGVjdGlvblNwYWNlLmhvc3QpLCAnOicsIHByb3RlY3Rpb25TcGFj
ZS5wb3J0KSkpOwogICAgICAgICAgICAgfQotICAgICAgICAgICAgYXV0byBkZWNpc2lvbkhhbmRs
ZXIgPSBtYWtlQmxvY2tQdHIoW3dlYWtTZWxmID0gV2Vha09iakNQdHI8V0tOZXR3b3JrU2Vzc2lv
bkRlbGVnYXRlPihzZWxmKSwgc2Vzc2lvbkNvY29hID0gbWFrZVdlYWtQdHIoc2Vzc2lvbkNvY29h
KSwgY29tcGxldGlvbkhhbmRsZXIgPSBtYWtlQmxvY2tQdHIoY29tcGxldGlvbkhhbmRsZXIpLCB0
YXNrSWRlbnRpZmllciwgbmV0d29ya0RhdGFUYXNrID0gUmVmUHRyIHsgbmV0d29ya0RhdGFUYXNr
IH0sIG5lZ290aWF0ZWRMZWdhY3lUTFNdKE5TVVJMQXV0aGVudGljYXRpb25DaGFsbGVuZ2UgKmNo
YWxsZW5nZSwgT1NTdGF0dXMgdHJ1c3RSZXN1bHQpIG11dGFibGUgeworICAgICAgICAgICAgYXV0
byBkZWNpc2lvbkhhbmRsZXIgPSBtYWtlQmxvY2tQdHIoW3dlYWtTZWxmID0gV2Vha09iakNQdHI8
V0tOZXR3b3JrU2Vzc2lvbkRlbGVnYXRlPihzZWxmKSwgc2Vzc2lvbkNvY29hID0gV2Vha1B0ciB7
IHNlc3Npb25Db2NvYSB9LCBjb21wbGV0aW9uSGFuZGxlciA9IG1ha2VCbG9ja1B0cihjb21wbGV0
aW9uSGFuZGxlciksIHRhc2tJZGVudGlmaWVyLCBuZXR3b3JrRGF0YVRhc2sgPSBSZWZQdHIgeyBu
ZXR3b3JrRGF0YVRhc2sgfSwgbmVnb3RpYXRlZExlZ2FjeVRMU10oTlNVUkxBdXRoZW50aWNhdGlv
bkNoYWxsZW5nZSAqY2hhbGxlbmdlLCBPU1N0YXR1cyB0cnVzdFJlc3VsdCkgbXV0YWJsZSB7CiAg
ICAgICAgICAgICAgICAgYXV0byBzdHJvbmdTZWxmID0gd2Vha1NlbGYuZ2V0KCk7CiAgICAgICAg
ICAgICAgICAgaWYgKCFzdHJvbmdTZWxmKQogICAgICAgICAgICAgICAgICAgICByZXR1cm4gY29t
cGxldGlvbkhhbmRsZXIoTlNVUkxTZXNzaW9uQXV0aENoYWxsZW5nZUNhbmNlbEF1dGhlbnRpY2F0
aW9uQ2hhbGxlbmdlLCBuaWwpOwpAQCAtMTY5NSw3ICsxNjk1LDcgQEAgc3RkOjp1bmlxdWVfcHRy
PFdlYlNvY2tldFRhc2s+IE5ldHdvcmtTZXNzaW9uQ29jb2E6OmNyZWF0ZVdlYlNvY2tldFRhc2so
V2ViUGFnZVAKICAgICAvLyBBbHRob3VnaCB0aGUgV2ViU29ja2V0IHByb3RvY29sIGFsbG93cyBm
dWxsIDY0LWJpdCBsZW5ndGhzLCBDaHJvbWUgYW5kIEZpcmVmb3ggbGltaXQgdGhlIGxlbmd0aCB0
byAyXjYzIC0gMQogICAgIHRhc2suZ2V0KCkubWF4aW11bU1lc3NhZ2VTaXplID0gMHg3RkZGRkZG
RkZGRkZGRkZGdWxsOwogCi0gICAgcmV0dXJuIG1ha2VVbmlxdWU8V2ViU29ja2V0VGFzaz4oY2hh
bm5lbCwgd2ViUGFnZVByb3h5SUQsIG1ha2VXZWFrUHRyKHNlc3Npb25TZXQpLCByZXF1ZXN0LCBX
VEZNb3ZlKHRhc2spKTsKKyAgICByZXR1cm4gbWFrZVVuaXF1ZTxXZWJTb2NrZXRUYXNrPihjaGFu
bmVsLCB3ZWJQYWdlUHJveHlJRCwgc2Vzc2lvblNldCwgcmVxdWVzdCwgV1RGTW92ZSh0YXNrKSk7
CiB9CiAKIHZvaWQgTmV0d29ya1Nlc3Npb25Db2NvYTo6YWRkV2ViU29ja2V0VGFzayhXZWJQYWdl
UHJveHlJZGVudGlmaWVyIHdlYlBhZ2VQcm94eUlELCBXZWJTb2NrZXRUYXNrJiB0YXNrKQpAQCAt
MTcyOCw3ICsxNzI4LDcgQEAgdm9pZCBOZXR3b3JrU2Vzc2lvbkNvY29hOjphZGRXZWJQYWdlTmV0
d29ya1BhcmFtZXRlcnMoV2ViUGFnZVByb3h5SWRlbnRpZmllciBwYWcKICAgICAgICAgY29uZmln
dXJhdGlvbi5nZXQoKS5fYXR0cmlidXRlZEJ1bmRsZUlkZW50aWZpZXIgPSBwYXJhbWV0ZXJzLmF0
dHJpYnV0ZWRCdW5kbGVJZGVudGlmaWVyKCk7CiAjZW5kaWYKICAgICBpbml0aWFsaXplTlNVUkxT
ZXNzaW9uc0luU2V0KGFkZFJlc3VsdDIuaXRlcmF0b3ItPnZhbHVlLmdldCgpLCBjb25maWd1cmF0
aW9uLmdldCgpKTsKLSAgICBhZGRSZXN1bHQxLml0ZXJhdG9yLT52YWx1ZSA9IG1ha2VXZWFrUHRy
KGFkZFJlc3VsdDIuaXRlcmF0b3ItPnZhbHVlLmdldCgpKTsKKyAgICBhZGRSZXN1bHQxLml0ZXJh
dG9yLT52YWx1ZSA9IGFkZFJlc3VsdDIuaXRlcmF0b3ItPnZhbHVlLmdldCgpOwogCiAgICAgbV9h
dHRyaWJ1dGVkQnVuZGxlSWRlbnRpZmllckZyb21QYWdlSWRlbnRpZmllcnMuYWRkKHBhZ2VJRCwg
cGFyYW1ldGVycy5hdHRyaWJ1dGVkQnVuZGxlSWRlbnRpZmllcigpKTsKIH0KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvc3RvcmFnZS9GaWxlU3lzdGVtU3RvcmFnZUhh
bmRsZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3N0b3JhZ2UvRmlsZVN5c3Rl
bVN0b3JhZ2VIYW5kbGUuY3BwCmluZGV4IDA4ZjYwY2MxMmRlOTE0OTRjMmMwN2MwM2Y3YTcwMWY3
MjM2MTQxMmQuLmZiNmMyYmJhOWMxMWJmMTE1Yzg4ZjMxYmNkMWE3YjdjZmU2NmQ3OWEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvc3RvcmFnZS9GaWxlU3lzdGVtU3Rv
cmFnZUhhbmRsZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9zdG9yYWdl
L0ZpbGVTeXN0ZW1TdG9yYWdlSGFuZGxlLmNwcApAQCAtNDEsNyArNDEsNyBAQCBjb25zdGV4cHIg
Y2hhciBwYXRoU2VwYXJhdG9yID0gJy8nOwogCiBGaWxlU3lzdGVtU3RvcmFnZUhhbmRsZTo6Rmls
ZVN5c3RlbVN0b3JhZ2VIYW5kbGUoRmlsZVN5c3RlbVN0b3JhZ2VNYW5hZ2VyJiBtYW5hZ2VyLCBU
eXBlIHR5cGUsIFN0cmluZyYmIHBhdGgsIFN0cmluZyYmIG5hbWUpCiAgICAgOiBtX2lkZW50aWZp
ZXIoV2ViQ29yZTo6RmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXI6OmdlbmVyYXRlVGhyZWFkU2Fm
ZSgpKQotICAgICwgbV9tYW5hZ2VyKG1ha2VXZWFrUHRyKG1hbmFnZXIpKQorICAgICwgbV9tYW5h
Z2VyKG1hbmFnZXIpCiAgICAgLCBtX3R5cGUodHlwZSkKICAgICAsIG1fcGF0aChXVEZNb3ZlKHBh
dGgpKQogICAgICwgbV9uYW1lKFdURk1vdmUobmFtZSkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L05ldHdvcmtQcm9jZXNzL3N0b3JhZ2UvRmlsZVN5c3RlbVN0b3JhZ2VIYW5kbGVSZWdpc3Ry
eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3N0b3JhZ2UvRmlsZVN5c3RlbVN0
b3JhZ2VIYW5kbGVSZWdpc3RyeS5jcHAKaW5kZXggYjg0Y2Y2Y2M4YjExNDlmYjZhZjgwZDFmZDcx
MjZkODQ4YWI2MjgwYS4uNDQzMjVjMDRiMDhhMDExZWVjZGYwMWUyOTEzNGJiYmNmM2FlZjRkMyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9zdG9yYWdlL0ZpbGVTeXN0
ZW1TdG9yYWdlSGFuZGxlUmVnaXN0cnkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1By
b2Nlc3Mvc3RvcmFnZS9GaWxlU3lzdGVtU3RvcmFnZUhhbmRsZVJlZ2lzdHJ5LmNwcApAQCAtMzYs
NyArMzYsNyBAQCB2b2lkIEZpbGVTeXN0ZW1TdG9yYWdlSGFuZGxlUmVnaXN0cnk6OnJlZ2lzdGVy
SGFuZGxlKFdlYkNvcmU6OkZpbGVTeXN0ZW1IYW5kbGVJZAogewogICAgIEFTU0VSVCghbV9oYW5k
bGVzLmNvbnRhaW5zKGlkZW50aWZpZXIpKTsKIAotICAgIG1faGFuZGxlcy5hZGQoaWRlbnRpZmll
ciwgbWFrZVdlYWtQdHIoaGFuZGxlKSk7CisgICAgbV9oYW5kbGVzLmFkZChpZGVudGlmaWVyLCBo
YW5kbGUpOwogfQogCiB2b2lkIEZpbGVTeXN0ZW1TdG9yYWdlSGFuZGxlUmVnaXN0cnk6OnVucmVn
aXN0ZXJIYW5kbGUoV2ViQ29yZTo6RmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIgaWRlbnRpZmll
cikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm0vSVBDL0Nvbm5lY3Rpb24uY3Bw
IGIvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9JUEMvQ29ubmVjdGlvbi5jcHAKaW5kZXggZDZlYTlj
OGNhNTNjOWQ1ODAyYzYwYjZkM2RkNDMyYTE4NWM5YmRhOS4uZmNhMmI1NGQwZjNiZjkzMDk5N2Fl
MDk4OTczNGZkNWVhZmZkNTcyNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9J
UEMvQ29ubmVjdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9JUEMvQ29ubmVj
dGlvbi5jcHAKQEAgLTg1Miw3ICs4NTIsNyBAQCB2b2lkIENvbm5lY3Rpb246OmVuYWJsZUluY29t
aW5nTWVzc2FnZXNUaHJvdHRsaW5nKCkKICNpZiBFTkFCTEUoSVBDX1RFU1RJTkdfQVBJKQogdm9p
ZCBDb25uZWN0aW9uOjphZGRNZXNzYWdlT2JzZXJ2ZXIoY29uc3QgTWVzc2FnZU9ic2VydmVyJiBv
YnNlcnZlcikKIHsKLSAgICBtX21lc3NhZ2VPYnNlcnZlcnMuYXBwZW5kKG1ha2VXZWFrUHRyKG9i
c2VydmVyKSk7CisgICAgbV9tZXNzYWdlT2JzZXJ2ZXJzLmFwcGVuZChvYnNlcnZlcik7CiB9CiAj
ZW5kaWYKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9JUEMvTWVzc2FnZVJl
Y2VpdmVyTWFwLmNwcCBiL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm0vSVBDL01lc3NhZ2VSZWNlaXZl
ck1hcC5jcHAKaW5kZXggZDg4MGU5MGM1YmM1Mjc1NjAzODUxMTRmNjk3MTI3MmE5ZGZhZmU1Ny4u
M2ViNDEyYTIyMWJhZjA4NTk2NjQ4ZGI3YTcwYzBmNDBkMGIxNGViZiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9QbGF0Zm9ybS9JUEMvTWVzc2FnZVJlY2VpdmVyTWFwLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1BsYXRmb3JtL0lQQy9NZXNzYWdlUmVjZWl2ZXJNYXAuY3BwCkBAIC00NCw3ICs0
NCw3IEBAIHZvaWQgTWVzc2FnZVJlY2VpdmVyTWFwOjphZGRNZXNzYWdlUmVjZWl2ZXIoUmVjZWl2
ZXJOYW1lIG1lc3NhZ2VSZWNlaXZlck5hbWUsIE1lCiAgICAgQVNTRVJUKCFtX2dsb2JhbE1lc3Nh
Z2VSZWNlaXZlcnMuY29udGFpbnMobWVzc2FnZVJlY2VpdmVyTmFtZSkpOwogCiAgICAgbWVzc2Fn
ZVJlY2VpdmVyLndpbGxCZUFkZGVkVG9NZXNzYWdlUmVjZWl2ZXJNYXAoKTsKLSAgICBtX2dsb2Jh
bE1lc3NhZ2VSZWNlaXZlcnMuc2V0KG1lc3NhZ2VSZWNlaXZlck5hbWUsIG1ha2VXZWFrUHRyKG1l
c3NhZ2VSZWNlaXZlcikpOworICAgIG1fZ2xvYmFsTWVzc2FnZVJlY2VpdmVycy5zZXQobWVzc2Fn
ZVJlY2VpdmVyTmFtZSwgbWVzc2FnZVJlY2VpdmVyKTsKIH0KIAogdm9pZCBNZXNzYWdlUmVjZWl2
ZXJNYXA6OmFkZE1lc3NhZ2VSZWNlaXZlcihSZWNlaXZlck5hbWUgbWVzc2FnZVJlY2VpdmVyTmFt
ZSwgdWludDY0X3QgZGVzdGluYXRpb25JRCwgTWVzc2FnZVJlY2VpdmVyJiBtZXNzYWdlUmVjZWl2
ZXIpCkBAIC01NCw3ICs1NCw3IEBAIHZvaWQgTWVzc2FnZVJlY2VpdmVyTWFwOjphZGRNZXNzYWdl
UmVjZWl2ZXIoUmVjZWl2ZXJOYW1lIG1lc3NhZ2VSZWNlaXZlck5hbWUsIHVpCiAgICAgQVNTRVJU
KCFtX2dsb2JhbE1lc3NhZ2VSZWNlaXZlcnMuY29udGFpbnMobWVzc2FnZVJlY2VpdmVyTmFtZSkp
OwogCiAgICAgbWVzc2FnZVJlY2VpdmVyLndpbGxCZUFkZGVkVG9NZXNzYWdlUmVjZWl2ZXJNYXAo
KTsKLSAgICBtX21lc3NhZ2VSZWNlaXZlcnMuc2V0KHN0ZDo6bWFrZV9wYWlyKG1lc3NhZ2VSZWNl
aXZlck5hbWUsIGRlc3RpbmF0aW9uSUQpLCBtYWtlV2Vha1B0cihtZXNzYWdlUmVjZWl2ZXIpKTsK
KyAgICBtX21lc3NhZ2VSZWNlaXZlcnMuc2V0KHN0ZDo6bWFrZV9wYWlyKG1lc3NhZ2VSZWNlaXZl
ck5hbWUsIGRlc3RpbmF0aW9uSUQpLCBtZXNzYWdlUmVjZWl2ZXIpOwogfQogCiB2b2lkIE1lc3Nh
Z2VSZWNlaXZlck1hcDo6cmVtb3ZlTWVzc2FnZVJlY2VpdmVyKFJlY2VpdmVyTmFtZSBtZXNzYWdl
UmVjZWl2ZXJOYW1lKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9jb2NvYS9X
S1BheW1lbnRBdXRob3JpemF0aW9uRGVsZWdhdGUubW0gYi9Tb3VyY2UvV2ViS2l0L1BsYXRmb3Jt
L2NvY29hL1dLUGF5bWVudEF1dGhvcml6YXRpb25EZWxlZ2F0ZS5tbQppbmRleCBhOTViZjQzNDg0
YWY3NDBhNDg5ZjAwYmY3MzRhMDIxMTQxOGE1YzAzLi40YzcxMzA4YWU0ZDY0ZGE2YWU5ZGRlYmQ3
MmZjZGExY2M2OGE1MmFiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtL2NvY29h
L1dLUGF5bWVudEF1dGhvcml6YXRpb25EZWxlZ2F0ZS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1Bs
YXRmb3JtL2NvY29hL1dLUGF5bWVudEF1dGhvcml6YXRpb25EZWxlZ2F0ZS5tbQpAQCAtMTE2LDcg
KzExNiw3IEBAIC0gKGluc3RhbmNldHlwZSlfaW5pdFdpdGhSZXF1ZXN0OihQS1BheW1lbnRSZXF1
ZXN0ICopcmVxdWVzdCBwcmVzZW50ZXI6KFdlYktpdDo6CiAgICAgaWYgKCEoc2VsZiA9IFtzdXBl
ciBpbml0XSkpCiAgICAgICAgIHJldHVybiBuaWw7CiAKLSAgICBfcHJlc2VudGVyID0gbWFrZVdl
YWtQdHIocHJlc2VudGVyKTsKKyAgICBfcHJlc2VudGVyID0gcHJlc2VudGVyOwogICAgIF9yZXF1
ZXN0ID0gcmVxdWVzdDsKICAgICBfc2hpcHBpbmdNZXRob2RzID0gcmVxdWVzdC5zaGlwcGluZ01l
dGhvZHM7CiAgICAgX3N1bW1hcnlJdGVtcyA9IHJlcXVlc3QucGF5bWVudFN1bW1hcnlJdGVtczsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0FwcGxlUGF5L1dlYlBheW1lbnRDb29y
ZGluYXRvclByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0FwcGxlUGF5L1dlYlBheW1l
bnRDb29yZGluYXRvclByb3h5LmNwcAppbmRleCA0NWI5YjVhMzNkNDFmZjgzOTZiZjAxMWEzYmUw
OWU0ZjM0NjNmMmFhLi4xNDM5OWFlZjczYjQ4NGM2YmM5ZGYxOGE1MGZlNDc0MjFhZDhkYjMyIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9BcHBsZVBheS9XZWJQYXltZW50Q29vcmRp
bmF0b3JQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvQXBwbGVQYXkvV2ViUGF5
bWVudENvb3JkaW5hdG9yUHJveHkuY3BwCkBAIC04Miw3ICs4Miw3IEBAIHZvaWQgV2ViUGF5bWVu
dENvb3JkaW5hdG9yUHJveHk6OnNob3dQYXltZW50VUkoV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIg
ZGVzdGluYXRpCiB7CiAgICAgaWYgKGF1dG8mIGNvb3JkaW5hdG9yID0gYWN0aXZlUGF5bWVudENv
b3JkaW5hdG9yUHJveHkoKSkKICAgICAgICAgY29vcmRpbmF0b3ItPmRpZFJlYWNoRmluYWxTdGF0
ZSgpOwotICAgIGFjdGl2ZVBheW1lbnRDb29yZGluYXRvclByb3h5KCkgPSBtYWtlV2Vha1B0cih0
aGlzKTsKKyAgICBhY3RpdmVQYXltZW50Q29vcmRpbmF0b3JQcm94eSgpID0gKnRoaXM7CiAKICAg
ICBNRVNTQUdFX0NIRUNLKGNhbkJlZ2luKCkpOwogICAgIE1FU1NBR0VfQ0hFQ0soIW1fZGVzdGlu
YXRpb25JRCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJTUUxpdGVEYXRh
YmFzZVRyYWNrZXIuaCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlNRTGl0ZURhdGFiYXNlVHJh
Y2tlci5oCmluZGV4IGIwNWIwZDE5ZWVkMGZiYTg1YjRjMjk1MzRmOWNiNDczMTBlN2MwOWIuLjU2
NDJlYjA4OGE4MzIwYTM4ZjM2N2Y4YzU4MzAxZDYwYzY4NzBhOWQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvU2hhcmVkL1dlYlNRTGl0ZURhdGFiYXNlVHJhY2tlci5oCisrKyBiL1NvdXJjZS9X
ZWJLaXQvU2hhcmVkL1dlYlNRTGl0ZURhdGFiYXNlVHJhY2tlci5oCkBAIC0zNCw3ICszNCw3IEBA
CiAKIG5hbWVzcGFjZSBXZWJLaXQgewogCi0vLyBVc2UgZWFnZXIgaW5pdGlhbGl6YXRpb24gZm9y
IHRoZSBXZWFrUHRyRmFjdG9yeSBzaW5jZSB3ZSBjYWxsIG1ha2VXZWFrUHRyKCkgZnJvbSBhIG5v
bi1tYWluIHRocmVhZC4KKy8vIFVzZSBlYWdlciBpbml0aWFsaXphdGlvbiBmb3IgdGhlIFdlYWtQ
dHJGYWN0b3J5IHNpbmNlIHdlIGNvbnN0cnVjdCBXZWFrUHRycyBmcm9tIGEgbm9uLW1haW4gdGhy
ZWFkLgogY2xhc3MgV2ViU1FMaXRlRGF0YWJhc2VUcmFja2VyIGZpbmFsIDogcHVibGljIFdlYkNv
cmU6OlNRTGl0ZURhdGFiYXNlVHJhY2tlckNsaWVudCwgcHVibGljIENhbk1ha2VXZWFrUHRyPFdl
YlNRTGl0ZURhdGFiYXNlVHJhY2tlciwgV2Vha1B0ckZhY3RvcnlJbml0aWFsaXphdGlvbjo6RWFn
ZXI+IHsKICAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShXZWJTUUxpdGVEYXRhYmFzZVRyYWNrZXIp
CiBwdWJsaWM6CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9YUi9YUkRldmljZVBy
b3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1hSL1hSRGV2aWNlUHJveHkuY3BwCmluZGV4
IGZhMTNkZGNhZGNjZmEzNjQyYmE1MDYxOGQzYjE3ZWEyOGY1ZmQyMzAuLjMyZWM2ODgwNjEzZGVl
YzE1YWNlYmFlYWYxZjM2NTc0ZjVkMzhhMGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hh
cmVkL1hSL1hSRGV2aWNlUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1hSL1hS
RGV2aWNlUHJveHkuY3BwCkBAIC00MSw3ICs0MSw3IEBAIFJlZjxYUkRldmljZVByb3h5PiBYUkRl
dmljZVByb3h5OjpjcmVhdGUoWFJEZXZpY2VJbmZvJiYgZGV2aWNlSW5mbywgUGxhdGZvcm1YUlN5
CiB9CiAKIFhSRGV2aWNlUHJveHk6OlhSRGV2aWNlUHJveHkoWFJEZXZpY2VJbmZvJiYgZGV2aWNl
SW5mbywgUGxhdGZvcm1YUlN5c3RlbVByb3h5JiB4clN5c3RlbSkKLSAgICA6IG1feHJTeXN0ZW0o
bWFrZVdlYWtQdHIoeHJTeXN0ZW0pKQorICAgIDogbV94clN5c3RlbSh4clN5c3RlbSkKIHsKICAg
ICBtX2lkZW50aWZpZXIgPSBkZXZpY2VJbmZvLmlkZW50aWZpZXI7CiAgICAgbV9zdXBwb3J0c1N0
ZXJlb1JlbmRlcmluZyA9IGRldmljZUluZm8uc3VwcG9ydHNTdGVyZW9SZW5kZXJpbmc7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9tYWMvU2VjSXRlbVNoaW0uY3BwIGIvU291cmNl
L1dlYktpdC9TaGFyZWQvbWFjL1NlY0l0ZW1TaGltLmNwcAppbmRleCA1MTllZGMyZGQ5MGJjZThl
ZGVmYTFjMGU4ZDliNTA4NzZmZGM5YThhLi5mOTk5ODQ4NzVmNzZhYWZhN2U1MWNjZWMxNWFlMjRh
ODY1YzkwOGRhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9tYWMvU2VjSXRlbVNo
aW0uY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL21hYy9TZWNJdGVtU2hpbS5jcHAKQEAg
LTE0MCw3ICsxNDAsNyBAQCBzdGF0aWMgT1NTdGF0dXMgd2ViU2VjSXRlbURlbGV0ZShDRkRpY3Rp
b25hcnlSZWYgcXVlcnkpCiAKIHZvaWQgaW5pdGlhbGl6ZVNlY0l0ZW1TaGltKE5ldHdvcmtQcm9j
ZXNzJiBwcm9jZXNzKQogewotICAgIGdsb2JhbE5ldHdvcmtQcm9jZXNzKCkgPSBtYWtlV2Vha1B0
cihwcm9jZXNzKTsKKyAgICBnbG9iYWxOZXR3b3JrUHJvY2VzcygpID0gcHJvY2VzczsKIAogICAg
IHN0cnVjdCBfQ0ZORnJhbWV3b3Jrc1N0dWJzIHN0dWJzID0gewogICAgICAgICAudmVyc2lvbiA9
IDAsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQVBJQXR0YWNobWVu
dC5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQVBJQXR0YWNobWVudC5jcHAKaW5k
ZXggNmUyMWY2ZjljZDQ2OTVkYTVlOTM3Yzk0YWM2ZmQyMzY1YzYyZTFjMC4uYjM0ZWM3MzYzNjNj
NGYxZDJiMGU3NjBhZDNmNGE5ZDViYWMxYTM0ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvQVBJL0FQSUF0dGFjaG1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0FQSS9BUElBdHRhY2htZW50LmNwcApAQCAtNDEsNyArNDEsNyBAQCBSZWY8QXR0YWNobWVu
dD4gQXR0YWNobWVudDo6Y3JlYXRlKGNvbnN0IFdURjo6U3RyaW5nJiBpZGVudGlmaWVyLCBXZWJL
aXQ6OldlYlBhZwogCiBBdHRhY2htZW50OjpBdHRhY2htZW50KGNvbnN0IFdURjo6U3RyaW5nJiBp
ZGVudGlmaWVyLCBXZWJLaXQ6OldlYlBhZ2VQcm94eSYgd2ViUGFnZSkKICAgICA6IG1faWRlbnRp
ZmllcihpZGVudGlmaWVyKQotICAgICwgbV93ZWJQYWdlKG1ha2VXZWFrUHRyKHdlYlBhZ2UpKQor
ICAgICwgbV93ZWJQYWdlKHdlYlBhZ2UpCiB7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0FQSS9BUElIVFRQQ29va2llU3RvcmUuY3BwIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvQVBJL0FQSUhUVFBDb29raWVTdG9yZS5jcHAKaW5kZXggNWM3OWIzMDg4MWRhOTlk
Y2NhZjU0Yjk3ZjNhNzkwMDY4ODUzZWZkYi4uNDMwY2NhMDU0ZmYwNWQ5ZWFmZTEzNmU0ZTZiNTli
NDMwN2I4YjNiOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0FQSUhU
VFBDb29raWVTdG9yZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0FQSUhU
VFBDb29raWVTdG9yZS5jcHAKQEAgLTQ0LDcgKzQ0LDcgQEAgdXNpbmcgbmFtZXNwYWNlIFdlYktp
dDsKIG5hbWVzcGFjZSBBUEkgewogCiBIVFRQQ29va2llU3RvcmU6OkhUVFBDb29raWVTdG9yZShX
ZWJLaXQ6OldlYnNpdGVEYXRhU3RvcmUmIHdlYnNpdGVEYXRhU3RvcmUpCi0gICAgOiBtX293bmlu
Z0RhdGFTdG9yZShtYWtlV2Vha1B0cih3ZWJzaXRlRGF0YVN0b3JlKSkKKyAgICA6IG1fb3duaW5n
RGF0YVN0b3JlKHdlYnNpdGVEYXRhU3RvcmUpCiB7CiB9CiAKQEAgLTE2Nyw3ICsxNjcsNyBAQCB2
b2lkIEhUVFBDb29raWVTdG9yZTo6cmVnaXN0ZXJPYnNlcnZlcihPYnNlcnZlciYgb2JzZXJ2ZXIp
CiAKICAgICBtX2Nvb2tpZU1hbmFnZXJQcm94eU9ic2VydmVyID0gbWFrZVVuaXF1ZTxBUElXZWJD
b29raWVNYW5hZ2VyUHJveHlPYnNlcnZlcj4oKnRoaXMpOwogCi0gICAgbV9vYnNlcnZlZENvb2tp
ZU1hbmFnZXJQcm94eSA9IG1ha2VXZWFrUHRyKG1fb3duaW5nRGF0YVN0b3JlLT5uZXR3b3JrUHJv
Y2VzcygpLmNvb2tpZU1hbmFnZXIoKSk7CisgICAgbV9vYnNlcnZlZENvb2tpZU1hbmFnZXJQcm94
eSA9IG1fb3duaW5nRGF0YVN0b3JlLT5uZXR3b3JrUHJvY2VzcygpLmNvb2tpZU1hbmFnZXIoKTsK
ICAgICBtX29ic2VydmVkQ29va2llTWFuYWdlclByb3h5LT5yZWdpc3Rlck9ic2VydmVyKG1fb3du
aW5nRGF0YVN0b3JlLT5zZXNzaW9uSUQoKSwgKm1fY29va2llTWFuYWdlclByb3h5T2JzZXJ2ZXIp
OwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQVBJSW5zcGVj
dG9yRXh0ZW5zaW9uLmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9BUElJbnNwZWN0
b3JFeHRlbnNpb24uY3BwCmluZGV4IDg3MWMyNzNlYWYxMWRlYjkxYjlkMDJiZjQ1MGYwZDEwZWJj
ODM3NDUuLjgyYzhhYWEzNjM2NGJmN2E1OTZmYTBlMmM2MDZkYWI4NTBlYTRhNmMgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9BUElJbnNwZWN0b3JFeHRlbnNpb24uY3Bw
CisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9BUElJbnNwZWN0b3JFeHRlbnNpb24u
Y3BwCkBAIC0zNyw3ICszNyw3IEBAIG5hbWVzcGFjZSBBUEkgewogCiBJbnNwZWN0b3JFeHRlbnNp
b246Okluc3BlY3RvckV4dGVuc2lvbihjb25zdCBXVEY6OlN0cmluZyYgaWRlbnRpZmllciwgV2Vi
S2l0OjpXZWJJbnNwZWN0b3JVSUV4dGVuc2lvbkNvbnRyb2xsZXJQcm94eSYgZXh0ZW5zaW9uQ29u
dHJvbGxlclByb3h5KQogICAgIDogbV9pZGVudGlmaWVyKGlkZW50aWZpZXIpCi0gICAgLCBtX2V4
dGVuc2lvbkNvbnRyb2xsZXJQcm94eShtYWtlV2Vha1B0cihleHRlbnNpb25Db250cm9sbGVyUHJv
eHkpKQorICAgICwgbV9leHRlbnNpb25Db250cm9sbGVyUHJveHkoZXh0ZW5zaW9uQ29udHJvbGxl
clByb3h5KQogewogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkv
QVBJV2ViQXV0aGVudGljYXRpb25QYW5lbC5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9B
UEkvQVBJV2ViQXV0aGVudGljYXRpb25QYW5lbC5jcHAKaW5kZXggNTE1M2JlMTYwZmI2ZDM0ZDM1
NjAwODZmYWYwZTMzMzFlNDM1ODM3ZS4uOWM3YzVkZGRmMmY4ODU0NGQyZjQ5Zjc3NzU2MDBjOTAw
YThjNjAzOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0FQSVdlYkF1
dGhlbnRpY2F0aW9uUGFuZWwuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9B
UElXZWJBdXRoZW50aWNhdGlvblBhbmVsLmNwcApAQCAtNTEsNyArNTEsNyBAQCBXZWJBdXRoZW50
aWNhdGlvblBhbmVsOjpXZWJBdXRoZW50aWNhdGlvblBhbmVsKCkKIAogV2ViQXV0aGVudGljYXRp
b25QYW5lbDo6V2ViQXV0aGVudGljYXRpb25QYW5lbChjb25zdCBBdXRoZW50aWNhdG9yTWFuYWdl
ciYgbWFuYWdlciwgY29uc3QgV1RGOjpTdHJpbmcmIHJwSWQsIGNvbnN0IFRyYW5zcG9ydFNldCYg
dHJhbnNwb3J0cywgQ2xpZW50RGF0YVR5cGUgdHlwZSwgY29uc3QgV1RGOjpTdHJpbmcmIHVzZXJO
YW1lKQogICAgIDogbV9jbGllbnQobWFrZVVuaXF1ZVJlZjxXZWJBdXRoZW50aWNhdGlvblBhbmVs
Q2xpZW50PigpKQotICAgICwgbV93ZWFrTWFuYWdlcihtYWtlV2Vha1B0cihtYW5hZ2VyKSkKKyAg
ICAsIG1fd2Vha01hbmFnZXIobWFuYWdlcikKICAgICAsIG1fcnBJZChycElkKQogICAgICwgbV9j
bGllbnREYXRhVHlwZSh0eXBlKQogICAgICwgbV91c2VyTmFtZSh1c2VyTmFtZSkKQEAgLTcxLDcg
KzcxLDcgQEAgV2ViQXV0aGVudGljYXRpb25QYW5lbDo6fldlYkF1dGhlbnRpY2F0aW9uUGFuZWwo
KSA9IGRlZmF1bHQ7CiB2b2lkIFdlYkF1dGhlbnRpY2F0aW9uUGFuZWw6OmhhbmRsZVJlcXVlc3Qo
V2ViQXV0aGVudGljYXRpb25SZXF1ZXN0RGF0YSYmIHJlcXVlc3QsIENhbGxiYWNrJiYgY2FsbGJh
Y2spCiB7CiAgICAgQVNTRVJUKG1fbWFuYWdlcik7Ci0gICAgcmVxdWVzdC53ZWFrUGFuZWwgPSBt
YWtlV2Vha1B0cigqdGhpcyk7CisgICAgcmVxdWVzdC53ZWFrUGFuZWwgPSAqdGhpczsKICAgICBt
X21hbmFnZXItPmhhbmRsZVJlcXVlc3QoV1RGTW92ZShyZXF1ZXN0KSwgV1RGTW92ZShjYWxsYmFj
aykpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2Ev
V0tXZWJWaWV3Lm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmll
dy5tbQppbmRleCBkZDExOWZkNzM2OWNkZDliM2EyNWFiYWY1NDlhZjAyMDZhZjIzY2JlLi4xNzNk
NzMwZDUyNTU4N2ZmNDIyZWViOTAyODdkMzI4ZDU3ZmU3ZDdmIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Lm1tCisrKyBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcubW0KQEAgLTM2MTQsNyArMzYxNCw3IEBA
IC0gKHZvaWQpX3JlbW92ZURhdGFEZXRlY3RlZExpbmtzOihkaXNwYXRjaF9ibG9ja190KWNvbXBs
ZXRpb24KIHsKICAgICBUSFJPV19JRl9TVVNQRU5ERUQ7CiAjaWYgRU5BQkxFKERBVEFfREVURUNU
SU9OKQotICAgIF9wYWdlLT5yZW1vdmVEYXRhRGV0ZWN0ZWRMaW5rcyhbY29tcGxldGlvbiA9IG1h
a2VCbG9ja1B0cihjb21wbGV0aW9uKSwgcGFnZSA9IG1ha2VXZWFrUHRyKF9wYWdlLmdldCgpKV0g
KGF1dG8mIHJlc3VsdCkgeworICAgIF9wYWdlLT5yZW1vdmVEYXRhRGV0ZWN0ZWRMaW5rcyhbY29t
cGxldGlvbiA9IG1ha2VCbG9ja1B0cihjb21wbGV0aW9uKSwgcGFnZSA9IFdlYWtQdHIgeyBfcGFn
ZS5nZXQoKSB9XSAoYXV0byYgcmVzdWx0KSB7CiAgICAgICAgIGlmIChwYWdlKQogICAgICAgICAg
ICAgcGFnZS0+c2V0RGF0YURldGVjdGlvblJlc3VsdChyZXN1bHQpOwogICAgICAgICBpZiAoY29t
cGxldGlvbikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9X
S1dlYlZpZXdUZXN0aW5nLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dL
V2ViVmlld1Rlc3RpbmcubW0KaW5kZXggNzNjYTkzNDQ0ZTA5MGM2NzhmYmY4NGM4NDM4Yjg5ODU0
MzRiOGExNi4uNDg1NDA0ODNjMzFhZGU4ZjI1MTg0N2NmYmQ4YzYzOTU5N2M2MjhlZSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlld1Rlc3Rpbmcu
bW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlld1Rlc3Rp
bmcubW0KQEAgLTYyOSw3ICs2MjksNyBAQCAtIChpZClpbml0V2l0aENvb3JkaW5hdG9yOihXZWJD
b3JlOjpNZWRpYVNlc3Npb25Db29yZGluYXRvckNsaWVudCopY29vcmRpbmF0b3IKICAgICBzZWxm
ID0gW3N1cGVyIGluaXRdOwogICAgIGlmICghc2VsZikKICAgICAgICAgcmV0dXJuIG5pbDsKLSAg
ICBtX2Nvb3JkaW5hdG9yQ2xpZW50ID0gbWFrZVdlYWtQdHIoY29vcmRpbmF0b3IpOworICAgIG1f
Y29vcmRpbmF0b3JDbGllbnQgPSBjb29yZGluYXRvcjsKICAgICByZXR1cm4gc2VsZjsKIH0KIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL19XS1dlYkF1dGhl
bnRpY2F0aW9uUGFuZWwubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dL
V2ViQXV0aGVudGljYXRpb25QYW5lbC5tbQppbmRleCBjN2QwNjgxNmFjMWZlY2Q3YTJmMDczOTZi
NzcyZWY4ZmZiYmEwMGZlLi5jNzdkZWEwMjhmYzE5MDAxZDA4NmRiNjRiZjhhNDViYjkwNzMyYjAx
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLV2ViQXV0
aGVudGljYXRpb25QYW5lbC5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29j
b2EvX1dLV2ViQXV0aGVudGljYXRpb25QYW5lbC5tbQpAQCAtMTM5LDcgKzEzOSw3IEBAIC0gKGlk
IDxfV0tXZWJBdXRoZW50aWNhdGlvblBhbmVsRGVsZWdhdGU+KWRlbGVnYXRlCiAtICh2b2lkKXNl
dERlbGVnYXRlOihpZDxfV0tXZWJBdXRoZW50aWNhdGlvblBhbmVsRGVsZWdhdGU+KWRlbGVnYXRl
CiB7CiAgICAgYXV0byBjbGllbnQgPSBXVEY6Om1ha2VVbmlxdWVSZWY8V2ViS2l0OjpXZWJBdXRo
ZW50aWNhdGlvblBhbmVsQ2xpZW50PihzZWxmLCBkZWxlZ2F0ZSk7Ci0gICAgX2NsaWVudCA9IG1h
a2VXZWFrUHRyKGNsaWVudC5nZXQoKSk7CisgICAgX2NsaWVudCA9IGNsaWVudC5nZXQoKTsKICAg
ICBfcGFuZWwtPnNldENsaWVudChXVEZNb3ZlKGNsaWVudCkpOwogfQogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvaW9zL1dLV2ViVmlld0lPUy5tbSBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL0FQSS9pb3MvV0tXZWJWaWV3SU9TLm1tCmluZGV4IDQzMGQzMzJkZjA0
YzNjODdhYTQ1YjAwYzllYjczZDdiMmViZWFmNTIuLmY5MGFiYTlhZDk5ZGIzNTNiNDQyMzEwMTg2
NmZhMWU1OGRkNTRiOTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9p
b3MvV0tXZWJWaWV3SU9TLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9pb3Mv
V0tXZWJWaWV3SU9TLm1tCkBAIC0yOTQ4LDcgKzI5NDgsNyBAQCAtICh2b2lkKV9zZXRUZXh0Q29s
b3I6KFVJQ29sb3IgKiljb2xvciBzZW5kZXI6KGlkKXNlbmRlcgogLSAodm9pZClfZGV0ZWN0RGF0
YVdpdGhUeXBlczooV0tEYXRhRGV0ZWN0b3JUeXBlcyl0eXBlcyBjb21wbGV0aW9uSGFuZGxlcjoo
ZGlzcGF0Y2hfYmxvY2tfdCljb21wbGV0aW9uCiB7CiAjaWYgRU5BQkxFKERBVEFfREVURUNUSU9O
KQotICAgIF9wYWdlLT5kZXRlY3REYXRhSW5BbGxGcmFtZXMoZnJvbVdLRGF0YURldGVjdG9yVHlw
ZXModHlwZXMpLCBbY29tcGxldGlvbiA9IG1ha2VCbG9ja1B0cihjb21wbGV0aW9uKSwgcGFnZSA9
IG1ha2VXZWFrUHRyKF9wYWdlLmdldCgpKV0gKGF1dG8mIHJlc3VsdCkgeworICAgIF9wYWdlLT5k
ZXRlY3REYXRhSW5BbGxGcmFtZXMoZnJvbVdLRGF0YURldGVjdG9yVHlwZXModHlwZXMpLCBbY29t
cGxldGlvbiA9IG1ha2VCbG9ja1B0cihjb21wbGV0aW9uKSwgcGFnZSA9IFdlYWtQdHIgeyBfcGFn
ZS5nZXQoKSB9XSAoYXV0byYgcmVzdWx0KSB7CiAgICAgICAgIGlmIChwYWdlKQogICAgICAgICAg
ICAgcGFnZS0+c2V0RGF0YURldGVjdGlvblJlc3VsdChyZXN1bHQpOwogICAgICAgICBpZiAoY29t
cGxldGlvbikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL0dyb3Vw
QWN0aXZpdGllcy9Hcm91cEFjdGl2aXRpZXNDb29yZGluYXRvci5tbSBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL0NvY29hL0dyb3VwQWN0aXZpdGllcy9Hcm91cEFjdGl2aXRpZXNDb29yZGluYXRv
ci5tbQppbmRleCAxY2RjYmFiNDdmYzIwZDQzNGUxYjZmNmJiM2VkMDI2MzU0NTc4MWFiLi5iM2I3
ODJlY2YzMTFiZTU0YWQyM2YwZTZjOGVhNjBjNjc5N2FmNGE5IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9Hcm91cEFjdGl2aXRpZXMvR3JvdXBBY3Rpdml0aWVzQ29v
cmRpbmF0b3IubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvR3JvdXBBY3Rp
dml0aWVzL0dyb3VwQWN0aXZpdGllc0Nvb3JkaW5hdG9yLm1tCkBAIC00OCw3ICs0OCw3IEBAIC0g
KGlkKWluaXRXaXRoUGFyZW50OihXZWJLaXQ6Okdyb3VwQWN0aXZpdGllc0Nvb3JkaW5hdG9yJilw
YXJlbnQKICAgICBpZiAoIXNlbGYpCiAgICAgICAgIHJldHVybiBuaWw7CiAKLSAgICBfcGFyZW50
ID0gbWFrZVdlYWtQdHIocGFyZW50KTsKKyAgICBfcGFyZW50ID0gcGFyZW50OwogICAgIHJldHVy
biBzZWxmOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9M
ZWdhY3lDdXN0b21Qcm90b2NvbE1hbmFnZXJDbGllbnQubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9Db2NvYS9MZWdhY3lDdXN0b21Qcm90b2NvbE1hbmFnZXJDbGllbnQubW0KaW5kZXggN2Zi
N2Y4YWEzNmUwZTVmZmI4M2M2MjAyYzZiOTQ0Yzg0N2ZhYmJjOS4uYjQxZDI2YzgyN2I1MjI2NTcw
OTZkNDFhODI0NWNkZWVmZmZiOWE4NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvQ29jb2EvTGVnYWN5Q3VzdG9tUHJvdG9jb2xNYW5hZ2VyQ2xpZW50Lm1tCisrKyBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL0xlZ2FjeUN1c3RvbVByb3RvY29sTWFuYWdlckNsaWVu
dC5tbQpAQCAtNTIsNyArNTIsNyBAQCAtIChpZClpbml0V2l0aExlZ2FjeUN1c3RvbVByb3RvY29s
TWFuYWdlclByb3h5OihXZWJLaXQ6OkxlZ2FjeUN1c3RvbVByb3RvY29sTWFuYQogICAgICAgICBy
ZXR1cm4gbmlsOwogCiAgICAgQVNTRVJUKHJlcXVlc3QpOwotICAgIF9jdXN0b21Qcm90b2NvbE1h
bmFnZXJQcm94eSA9IG1ha2VXZWFrUHRyKGN1c3RvbVByb3RvY29sTWFuYWdlclByb3h5KTsKKyAg
ICBfY3VzdG9tUHJvdG9jb2xNYW5hZ2VyUHJveHkgPSBjdXN0b21Qcm90b2NvbE1hbmFnZXJQcm94
eTsKICAgICBfY3VzdG9tUHJvdG9jb2xJRCA9IGN1c3RvbVByb3RvY29sSUQ7CiAgICAgX3N0b3Jh
Z2VQb2xpY3kgPSBOU1VSTENhY2hlU3RvcmFnZU5vdEFsbG93ZWQ7CiAgICAgQUxMT1dfREVQUkVD
QVRFRF9ERUNMQVJBVElPTlNfQkVHSU4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0NvY29hL05hdmlnYXRpb25TdGF0ZS5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0Nv
Y29hL05hdmlnYXRpb25TdGF0ZS5tbQppbmRleCBkNGU4ZDZlYmRlZjkyZDRiMmZhMGYxNzM3NTY4
NDYzMjNhZTA3NTFlLi44ZmI4ODVlMDU5ODkzYWNjZjhjMmQwY2E1NDIxZGUyODM4YTM1YTQ5IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9OYXZpZ2F0aW9uU3RhdGUu
bW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvTmF2aWdhdGlvblN0YXRlLm1t
CkBAIC0xMTEsNyArMTExLDcgQEAgTmF2aWdhdGlvblN0YXRlOjpOYXZpZ2F0aW9uU3RhdGUoV0tX
ZWJWaWV3ICp3ZWJWaWV3KQogICAgIEFTU0VSVChtX3dlYlZpZXctPl9wYWdlKTsKICAgICBBU1NF
UlQoIW5hdmlnYXRpb25TdGF0ZXMoKS5jb250YWlucyhtX3dlYlZpZXctPl9wYWdlLmdldCgpKSk7
CiAKLSAgICBuYXZpZ2F0aW9uU3RhdGVzKCkuYWRkKG1fd2ViVmlldy0+X3BhZ2UuZ2V0KCksIG1h
a2VXZWFrUHRyKCp0aGlzKSk7CisgICAgbmF2aWdhdGlvblN0YXRlcygpLmFkZChtX3dlYlZpZXct
Pl9wYWdlLmdldCgpLCAqdGhpcyk7CiAgICAgbV93ZWJWaWV3LT5fcGFnZS0+cGFnZUxvYWRTdGF0
ZSgpLmFkZE9ic2VydmVyKCp0aGlzKTsKIH0KIApAQCAtMzE0LDcgKzMxNCw3IEBAIHZvaWQgTmF2
aWdhdGlvblN0YXRlOjpkaWRGaXJzdFBhaW50KCkKIH0KIAogTmF2aWdhdGlvblN0YXRlOjpOYXZp
Z2F0aW9uQ2xpZW50OjpOYXZpZ2F0aW9uQ2xpZW50KE5hdmlnYXRpb25TdGF0ZSYgbmF2aWdhdGlv
blN0YXRlKQotICAgIDogbV9uYXZpZ2F0aW9uU3RhdGUobWFrZVdlYWtQdHIobmF2aWdhdGlvblN0
YXRlKSkKKyAgICA6IG1fbmF2aWdhdGlvblN0YXRlKG5hdmlnYXRpb25TdGF0ZSkKIHsKIH0KIApA
QCAtNDM1LDcgKzQzNSw3IEBAIHN0YXRpYyB2b2lkIHRyeUludGVyY2VwdE5hdmlnYXRpb24oUmVm
PEFQSTo6TmF2aWdhdGlvbkFjdGlvbj4mJiBuYXZpZ2F0aW9uQWN0aW9uCiAjaWYgSEFWRShBUFBf
TElOS1MpCiAgICAgaWYgKG5hdmlnYXRpb25BY3Rpb24tPnNob3VsZE9wZW5BcHBMaW5rcygpKSB7
CiAgICAgICAgIGF1dG8gdXJsID0gbmF2aWdhdGlvbkFjdGlvbi0+cmVxdWVzdCgpLnVybCgpOwot
ICAgICAgICBhdXRvKiBsb2NhbENvbXBsZXRpb25IYW5kbGVyID0gbmV3IFdURjo6RnVuY3Rpb248
dm9pZCAoYm9vbCk+KFtuYXZpZ2F0aW9uQWN0aW9uID0gV1RGTW92ZShuYXZpZ2F0aW9uQWN0aW9u
KSwgd2Vha1BhZ2UgPSBtYWtlV2Vha1B0cihwYWdlKSwgY29tcGxldGlvbkhhbmRsZXIgPSBXVEZN
b3ZlKGNvbXBsZXRpb25IYW5kbGVyKV0gKGJvb2wgc3VjY2VzcykgbXV0YWJsZSB7CisgICAgICAg
IGF1dG8qIGxvY2FsQ29tcGxldGlvbkhhbmRsZXIgPSBuZXcgV1RGOjpGdW5jdGlvbjx2b2lkIChi
b29sKT4oW25hdmlnYXRpb25BY3Rpb24gPSBXVEZNb3ZlKG5hdmlnYXRpb25BY3Rpb24pLCB3ZWFr
UGFnZSA9IFdlYWtQdHIgeyBwYWdlIH0sIGNvbXBsZXRpb25IYW5kbGVyID0gV1RGTW92ZShjb21w
bGV0aW9uSGFuZGxlcildIChib29sIHN1Y2Nlc3MpIG11dGFibGUgewogICAgICAgICAgICAgQVNT
RVJUKFJ1bkxvb3A6OmlzTWFpbigpKTsKICAgICAgICAgICAgIGlmICghc3VjY2VzcyAmJiB3ZWFr
UGFnZSkgewogICAgICAgICAgICAgICAgIHRyeVNPQXV0aG9yaXphdGlvbihXVEZNb3ZlKG5hdmln
YXRpb25BY3Rpb24pLCAqd2Vha1BhZ2UsIFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKTsKQEAg
LTEyODgsNyArMTI4OCw3IEBAIHZvaWQgTmF2aWdhdGlvblN0YXRlOjpOYXZpZ2F0aW9uQ2xpZW50
OjpkZWNpZGVQb2xpY3lGb3JTT0F1dGhvcml6YXRpb25Mb2FkKFdlYlBhCiAvLyBIaXN0b3J5RGVs
ZWdhdGVQcml2YXRlIHN1cHBvcnQKICAgICAKIE5hdmlnYXRpb25TdGF0ZTo6SGlzdG9yeUNsaWVu
dDo6SGlzdG9yeUNsaWVudChOYXZpZ2F0aW9uU3RhdGUmIG5hdmlnYXRpb25TdGF0ZSkKLSAgICA6
IG1fbmF2aWdhdGlvblN0YXRlKG1ha2VXZWFrUHRyKG5hdmlnYXRpb25TdGF0ZSkpCisgICAgOiBt
X25hdmlnYXRpb25TdGF0ZShuYXZpZ2F0aW9uU3RhdGUpCiB7CiB9CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1NPQXV0aG9yaXphdGlvbi9Qb3BVcFNPQXV0aG9y
aXphdGlvblNlc3Npb24ubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9TT0F1dGhv
cml6YXRpb24vUG9wVXBTT0F1dGhvcml6YXRpb25TZXNzaW9uLm1tCmluZGV4IDlmMWViYzhmZWQ5
NTJiYWY5NmYwZDdmNjVlZjg4NDI1NDkzYTkyYTIuLmUxZGE5NmY4MjU5MzJjZjFlZGQ1M2IyNzA3
MTc1YTA4OTRlZTIxMzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29h
L1NPQXV0aG9yaXphdGlvbi9Qb3BVcFNPQXV0aG9yaXphdGlvblNlc3Npb24ubW0KKysrIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvU09BdXRob3JpemF0aW9uL1BvcFVwU09BdXRob3Jp
emF0aW9uU2Vzc2lvbi5tbQpAQCAtNTIsNyArNTIsNyBAQCBAaW1wbGVtZW50YXRpb24gV0tTT1Nl
Y3JldERlbGVnYXRlCiAtIChpbnN0YW5jZXR5cGUpaW5pdFdpdGhTZXNzaW9uOihXZWJLaXQ6OlBv
cFVwU09BdXRob3JpemF0aW9uU2Vzc2lvbiAqKXNlc3Npb24KIHsKICAgICBpZiAoKHNlbGYgPSBb
c3VwZXIgaW5pdF0pKSB7Ci0gICAgICAgIF9zZXNzaW9uID0gbWFrZVdlYWtQdHIoc2Vzc2lvbik7
CisgICAgICAgIF9zZXNzaW9uID0gc2Vzc2lvbjsKICAgICAgICAgX2lzRmlyc3ROYXZpZ2F0aW9u
ID0gWUVTOwogICAgIH0KICAgICByZXR1cm4gc2VsZjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0NvY29hL1NPQXV0aG9yaXphdGlvbi9TT0F1dGhvcml6YXRpb25TZXNzaW9u
Lm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvU09BdXRob3JpemF0aW9uL1NPQXV0
aG9yaXphdGlvblNlc3Npb24ubW0KaW5kZXggYjllZjBiY2VlZDUyNzY0OWE0M2VkZmE4MDliMzYy
Y2Q4YzI1Nzc3Zi4uNzIwNDMzMmVhODgyZGUxMWMyYjY5MTk0ODQxM2E1MGY4ZTAzYjc4MSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvU09BdXRob3JpemF0aW9uL1NP
QXV0aG9yaXphdGlvblNlc3Npb24ubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29j
b2EvU09BdXRob3JpemF0aW9uL1NPQXV0aG9yaXphdGlvblNlc3Npb24ubW0KQEAgLTg5LDcgKzg5
LDcgQEAgc3RhdGljIGJvb2wgaXNTYW1lT3JpZ2luKGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVx
dWVzdCYgcmVxdWVzdCwgY29uc3QgV2ViQ29yZToKIFNPQXV0aG9yaXphdGlvblNlc3Npb246OlNP
QXV0aG9yaXphdGlvblNlc3Npb24oU09BdXRob3JpemF0aW9uICpzb0F1dGhvcml6YXRpb24sIFJl
ZjxBUEk6Ok5hdmlnYXRpb25BY3Rpb24+JiYgbmF2aWdhdGlvbkFjdGlvbiwgV2ViUGFnZVByb3h5
JiBwYWdlLCBJbml0aWF0aW5nQWN0aW9uIGFjdGlvbikKICAgICA6IG1fc29BdXRob3JpemF0aW9u
KHNvQXV0aG9yaXphdGlvbikKICAgICAsIG1fbmF2aWdhdGlvbkFjdGlvbihXVEZNb3ZlKG5hdmln
YXRpb25BY3Rpb24pKQotICAgICwgbV9wYWdlKG1ha2VXZWFrUHRyKHBhZ2UpKQorICAgICwgbV9w
YWdlKHBhZ2UpCiAgICAgLCBtX2FjdGlvbihhY3Rpb24pCiB7CiB9CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9VSURlbGVnYXRlLm1tIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvQ29jb2EvVUlEZWxlZ2F0ZS5tbQppbmRleCBkNzhmNGNjMGQ1NjU1OTRjMGU4ODFh
NDU4YmZkMjM4Mjc1MTIyNDVhLi4xMDdmYTI0Y2UxNDc1MzQwN2RmYWNmMDU2MDg0ODZiNWQ5ZGEy
ZWVkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9VSURlbGVnYXRl
Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1VJRGVsZWdhdGUubW0KQEAg
LTE5Nyw3ICsxOTcsNyBAQCB2b2lkIFVJRGVsZWdhdGU6OnNldERlbGVnYXRlKGlkIDxXS1VJRGVs
ZWdhdGU+IGRlbGVnYXRlKQogCiAjaWYgRU5BQkxFKENPTlRFWFRfTUVOVVMpCiBVSURlbGVnYXRl
OjpDb250ZXh0TWVudUNsaWVudDo6Q29udGV4dE1lbnVDbGllbnQoVUlEZWxlZ2F0ZSYgdWlEZWxl
Z2F0ZSkKLSAgICA6IG1fdWlEZWxlZ2F0ZShtYWtlV2Vha1B0cih1aURlbGVnYXRlKSkKKyAgICA6
IG1fdWlEZWxlZ2F0ZSh1aURlbGVnYXRlKQogewogfQogCkBAIC0yNDIsNyArMjQyLDcgQEAgdm9p
ZCBVSURlbGVnYXRlOjpDb250ZXh0TWVudUNsaWVudDo6bWVudUZyb21Qcm9wb3NlZE1lbnUoV2Vi
UGFnZVByb3h5JiwgTlNNZW51ICoKICNlbmRpZgogCiBVSURlbGVnYXRlOjpVSUNsaWVudDo6VUlD
bGllbnQoVUlEZWxlZ2F0ZSYgdWlEZWxlZ2F0ZSkKLSAgICA6IG1fdWlEZWxlZ2F0ZShtYWtlV2Vh
a1B0cih1aURlbGVnYXRlKSkKKyAgICA6IG1fdWlEZWxlZ2F0ZSh1aURlbGVnYXRlKQogewogfQog
CkBAIC00MjMsNyArNDIzLDcgQEAgdm9pZCBVSURlbGVnYXRlOjpVSUNsaWVudDo6ZGVjaWRlUG9s
aWN5Rm9yR2VvbG9jYXRpb25QZXJtaXNzaW9uUmVxdWVzdChXZWJLaXQ6OlcKICAgICBpZiAobV91
aURlbGVnYXRlLT5tX2RlbGVnYXRlTWV0aG9kcy53ZWJWaWV3UmVxdWVzdEdlb2xvY2F0aW9uUGVy
bWlzc2lvbkZvck9yaWdpbkRlY2lzaW9uSGFuZGxlcikgewogICAgICAgICBhdXRvIHNlY3VyaXR5
T3JpZ2luID0gV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW46OmNyZWF0ZUZyb21TdHJpbmcocGFnZS5w
YWdlTG9hZFN0YXRlKCkuYWN0aXZlVVJMKCkpOwogICAgICAgICBhdXRvIGNoZWNrZXIgPSBDb21w
bGV0aW9uSGFuZGxlckNhbGxDaGVja2VyOjpjcmVhdGUoZGVsZWdhdGUuZ2V0KCksIEBzZWxlY3Rv
cihfd2ViVmlldzpyZXF1ZXN0R2VvbG9jYXRpb25QZXJtaXNzaW9uRm9yT3JpZ2luOmluaXRpYXRl
ZEJ5RnJhbWU6ZGVjaXNpb25IYW5kbGVyOikpOwotICAgICAgICBhdXRvIGRlY2lzaW9uSGFuZGxl
ciA9IG1ha2VCbG9ja1B0cihbY29tcGxldGlvbkhhbmRsZXIgPSBzdGQ6OmV4Y2hhbmdlKGNvbXBs
ZXRpb25IYW5kbGVyLCBudWxscHRyKSwgc2VjdXJpdHlPcmlnaW4gPSBzZWN1cml0eU9yaWdpbi0+
ZGF0YSgpLCBjaGVja2VyID0gV1RGTW92ZShjaGVja2VyKSwgcGFnZSA9IG1ha2VXZWFrUHRyKHBh
Z2UpXSAoV0tQZXJtaXNzaW9uRGVjaXNpb24gZGVjaXNpb24pIG11dGFibGUgeworICAgICAgICBh
dXRvIGRlY2lzaW9uSGFuZGxlciA9IG1ha2VCbG9ja1B0cihbY29tcGxldGlvbkhhbmRsZXIgPSBz
dGQ6OmV4Y2hhbmdlKGNvbXBsZXRpb25IYW5kbGVyLCBudWxscHRyKSwgc2VjdXJpdHlPcmlnaW4g
PSBzZWN1cml0eU9yaWdpbi0+ZGF0YSgpLCBjaGVja2VyID0gV1RGTW92ZShjaGVja2VyKSwgcGFn
ZSA9IFdlYWtQdHIgeyBwYWdlIH1dIChXS1Blcm1pc3Npb25EZWNpc2lvbiBkZWNpc2lvbikgbXV0
YWJsZSB7CiAgICAgICAgICAgICBpZiAoY2hlY2tlci0+Y29tcGxldGlvbkhhbmRsZXJIYXNCZWVu
Q2FsbGVkKCkpCiAgICAgICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAgICAgY2hlY2tlci0+
ZGlkQ2FsbENvbXBsZXRpb25IYW5kbGVyKCk7CkBAIC0xMDYxLDcgKzEwNjEsNyBAQCB2b2lkIFVJ
RGVsZWdhdGU6OlVJQ2xpZW50OjpzaG91bGRBbGxvd0RldmljZU9yaWVudGF0aW9uQW5kTW90aW9u
QWNjZXNzKFdlYktpdDo6VwogCiAgICAgYXV0byBkZWxlZ2F0ZSA9IG1fdWlEZWxlZ2F0ZS0+bV9k
ZWxlZ2F0ZS5nZXQoKTsKICAgICBhdXRvIGNoZWNrZXIgPSBDb21wbGV0aW9uSGFuZGxlckNhbGxD
aGVja2VyOjpjcmVhdGUoZGVsZWdhdGUuZ2V0KCksIEBzZWxlY3Rvcih3ZWJWaWV3OnJlcXVlc3RE
ZXZpY2VPcmllbnRhdGlvbkFuZE1vdGlvblBlcm1pc3Npb25Gb3JPcmlnaW46aW5pdGlhdGVkQnlG
cmFtZTpkZWNpc2lvbkhhbmRsZXI6KSk7Ci0gICAgYXV0byBkZWNpc2lvbkhhbmRsZXIgPSBtYWtl
QmxvY2tQdHIoW2NvbXBsZXRpb25IYW5kbGVyID0gV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlciks
IHNlY3VyaXR5T3JpZ2luID0gc2VjdXJpdHlPcmlnaW4tPmRhdGEoKSwgY2hlY2tlciA9IFdURk1v
dmUoY2hlY2tlciksIHBhZ2UgPSBtYWtlV2Vha1B0cihwYWdlKV0oV0tQZXJtaXNzaW9uRGVjaXNp
b24gZGVjaXNpb24pIG11dGFibGUgeworICAgIGF1dG8gZGVjaXNpb25IYW5kbGVyID0gbWFrZUJs
b2NrUHRyKFtjb21wbGV0aW9uSGFuZGxlciA9IFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpLCBz
ZWN1cml0eU9yaWdpbiA9IHNlY3VyaXR5T3JpZ2luLT5kYXRhKCksIGNoZWNrZXIgPSBXVEZNb3Zl
KGNoZWNrZXIpLCBwYWdlID0gV2Vha1B0ciB7IHBhZ2UgfV0oV0tQZXJtaXNzaW9uRGVjaXNpb24g
ZGVjaXNpb24pIG11dGFibGUgewogICAgICAgICBpZiAoY2hlY2tlci0+Y29tcGxldGlvbkhhbmRs
ZXJIYXNCZWVuQ2FsbGVkKCkpCiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIGNoZWNrZXIt
PmRpZENhbGxDb21wbGV0aW9uSGFuZGxlcigpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvQ29jb2EvV2ViUGFzdGVib2FyZFByb3h5Q29jb2EubW0gYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9Db2NvYS9XZWJQYXN0ZWJvYXJkUHJveHlDb2NvYS5tbQppbmRleCA3Yzg5YTFi
ZDhhZmE2ZTljOTQyNzg0ZTBkNzVmY2E5NDMyYTBmYjMwLi5iYWQxYWY4MmFiYWMxNmFmNWZmYmZi
OWU5Y2FjOWYyNmY3NWVmMjZiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9D
b2NvYS9XZWJQYXN0ZWJvYXJkUHJveHlDb2NvYS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9Db2NvYS9XZWJQYXN0ZWJvYXJkUHJveHlDb2NvYS5tbQpAQCAtNzUsNyArNzUsNyBAQCB2
b2lkIFdlYlBhc3RlYm9hcmRQcm94eTo6Z3JhbnRBY2Nlc3MoV2ViUHJvY2Vzc1Byb3h5JiBwcm9j
ZXNzLCBjb25zdCBTdHJpbmcmIHBhcwogICAgICAgICByZXR1cm47CiAgICAgfQogCi0gICAgbV9w
YXN0ZWJvYXJkTmFtZVRvQWNjZXNzSW5mb3JtYXRpb25NYXAuc2V0KHBhc3RlYm9hcmROYW1lLCBQ
YXN0ZWJvYXJkQWNjZXNzSW5mb3JtYXRpb24geyBjaGFuZ2VDb3VudCwge3sgbWFrZVdlYWtQdHIo
cHJvY2VzcyksIHR5cGUgfX0gfSk7CisgICAgbV9wYXN0ZWJvYXJkTmFtZVRvQWNjZXNzSW5mb3Jt
YXRpb25NYXAuc2V0KHBhc3RlYm9hcmROYW1lLCBQYXN0ZWJvYXJkQWNjZXNzSW5mb3JtYXRpb24g
eyBjaGFuZ2VDb3VudCwge3sgcHJvY2VzcywgdHlwZSB9fSB9KTsKIH0KIAogdm9pZCBXZWJQYXN0
ZWJvYXJkUHJveHk6OnJldm9rZUFjY2VzcyhXZWJQcm9jZXNzUHJveHkmIHByb2Nlc3MpCkBAIC0x
MzUsNyArMTM1LDcgQEAgdm9pZCBXZWJQYXN0ZWJvYXJkUHJveHk6OmRpZE1vZGlmeUNvbnRlbnRz
T2ZQYXN0ZWJvYXJkKElQQzo6Q29ubmVjdGlvbiYgY29ubmVjdGkKICAgICBhdXRvIGNoYW5nZUNv
dW50QW5kUHJvY2Vzc2VzID0gbV9wYXN0ZWJvYXJkTmFtZVRvQWNjZXNzSW5mb3JtYXRpb25NYXAu
ZmluZChwYXN0ZWJvYXJkTmFtZSk7CiAgICAgaWYgKGNoYW5nZUNvdW50QW5kUHJvY2Vzc2VzICE9
IG1fcGFzdGVib2FyZE5hbWVUb0FjY2Vzc0luZm9ybWF0aW9uTWFwLmVuZCgpICYmIHByZXZpb3Vz
Q2hhbmdlQ291bnQgPT0gY2hhbmdlQ291bnRBbmRQcm9jZXNzZXMtPnZhbHVlLmNoYW5nZUNvdW50
KSB7CiAgICAgICAgIGlmIChhdXRvIGFjY2Vzc1R5cGUgPSBjaGFuZ2VDb3VudEFuZFByb2Nlc3Nl
cy0+dmFsdWUuYWNjZXNzVHlwZSgqcHJvY2VzcykpCi0gICAgICAgICAgICBjaGFuZ2VDb3VudEFu
ZFByb2Nlc3Nlcy0+dmFsdWUgPSBQYXN0ZWJvYXJkQWNjZXNzSW5mb3JtYXRpb24geyBuZXdDaGFu
Z2VDb3VudCwge3sgbWFrZVdlYWtQdHIoKnByb2Nlc3MpLCAqYWNjZXNzVHlwZSB9fSB9OworICAg
ICAgICAgICAgY2hhbmdlQ291bnRBbmRQcm9jZXNzZXMtPnZhbHVlID0gUGFzdGVib2FyZEFjY2Vz
c0luZm9ybWF0aW9uIHsgbmV3Q2hhbmdlQ291bnQsIHt7ICpwcm9jZXNzLCAqYWNjZXNzVHlwZSB9
fSB9OwogICAgIH0KIH0KIApAQCAtNjg5LDcgKzY4OSw3IEBAIHZvaWQgV2ViUGFzdGVib2FyZFBy
b3h5OjpQYXN0ZWJvYXJkQWNjZXNzSW5mb3JtYXRpb246OmdyYW50QWNjZXNzKFdlYlByb2Nlc3NQ
cm94CiAgICAgfSk7CiAKICAgICBpZiAobWF0Y2hJbmRleCA9PSBub3RGb3VuZCkgewotICAgICAg
ICBwcm9jZXNzZXMuYXBwZW5kKHsgbWFrZVdlYWtQdHIocHJvY2VzcyksIHR5cGUgfSk7CisgICAg
ICAgIHByb2Nlc3Nlcy5hcHBlbmQoeyBwcm9jZXNzLCB0eXBlIH0pOwogICAgICAgICByZXR1cm47
CiAgICAgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9XZWJQ
cm9jZXNzUG9vbENvY29hLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvV2ViUHJv
Y2Vzc1Bvb2xDb2NvYS5tbQppbmRleCA2NGNhNDE2NTUwOTdlMTk2NzkwNDZjYTM5N2ZhZTM5ZGJj
OTM3OGIzLi40YzIxMWY1ZmNlYmNkMTE0MTg0N2RlODExMWVhMTI0ODBjNzAzNmYzIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9XZWJQcm9jZXNzUG9vbENvY29hLm1t
CisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dlYlByb2Nlc3NQb29sQ29jb2Eu
bW0KQEAgLTIxOCw3ICsyMTgsNyBAQCBzdGF0aWMgQWNjZXNzaWJpbGl0eVByZWZlcmVuY2VzIGFj
Y2Vzc2liaWxpdHlQcmVmZXJlbmNlcygpCiAjaWYgSEFWRShNRURJQV9BQ0NFU1NJQklMSVRZX0ZS
QU1FV09SSykKIHZvaWQgV2ViUHJvY2Vzc1Bvb2w6OnNldE1lZGlhQWNjZXNzaWJpbGl0eVByZWZl
cmVuY2VzKFdlYlByb2Nlc3NQcm94eSYgcHJvY2VzcykKIHsKLSAgICBkaXNwYXRjaF9hc3luYyhk
aXNwYXRjaF9nZXRfZ2xvYmFsX3F1ZXVlKERJU1BBVENIX1FVRVVFX1BSSU9SSVRZX0RFRkFVTFQs
IDApLCBbd2Vha1Byb2Nlc3MgPSBtYWtlV2Vha1B0cihwcm9jZXNzKV0geworICAgIGRpc3BhdGNo
X2FzeW5jKGRpc3BhdGNoX2dldF9nbG9iYWxfcXVldWUoRElTUEFUQ0hfUVVFVUVfUFJJT1JJVFlf
REVGQVVMVCwgMCksIFt3ZWFrUHJvY2VzcyA9IFdlYWtQdHIgeyBwcm9jZXNzIH1dIHsKICAgICAg
ICAgYXV0byBjYXB0aW9uRGlzcGxheU1vZGUgPSBXZWJDb3JlOjpDYXB0aW9uVXNlclByZWZlcmVu
Y2VzTWVkaWFBRjo6cGxhdGZvcm1DYXB0aW9uRGlzcGxheU1vZGUoKTsKICAgICAgICAgYXV0byBw
cmVmZXJyZWRMYW5ndWFnZXMgPSBXZWJDb3JlOjpDYXB0aW9uVXNlclByZWZlcmVuY2VzTWVkaWFB
Rjo6cGxhdGZvcm1QcmVmZXJyZWRMYW5ndWFnZXMoKTsKICAgICAgICAgY2FsbE9uTWFpblJ1bkxv
b3AoW3dlYWtQcm9jZXNzLCBjYXB0aW9uRGlzcGxheU1vZGUsIHByZWZlcnJlZExhbmd1YWdlcyA9
IFdURk1vdmUocHJlZmVycmVkTGFuZ3VhZ2VzKS5pc29sYXRlZENvcHkoKV0gewpAQCAtNzE2LDcg
KzcxNiw3IEBAIHZvaWQgV2ViUHJvY2Vzc1Bvb2w6OnJlbW92ZUNGTm90aWZpY2F0aW9uT2JzZXJ2
ZXIoQ0ZTdHJpbmdSZWYgbmFtZSwgQ0ZOb3RpZmljYXRpCiAKIHZvaWQgV2ViUHJvY2Vzc1Bvb2w6
OnJlZ2lzdGVyTm90aWZpY2F0aW9uT2JzZXJ2ZXJzKCkKIHsKLSAgICBtX3dlYWtPYnNlcnZlciA9
IGFkb3B0TlMoW1tXS1Byb2Nlc3NQb29sV2Vha09ic2VydmVyIGFsbG9jXSBpbml0V2l0aFdlYWtQ
dHI6bWFrZVdlYWtQdHIoKnRoaXMpXSk7CisgICAgbV93ZWFrT2JzZXJ2ZXIgPSBhZG9wdE5TKFtb
V0tQcm9jZXNzUG9vbFdlYWtPYnNlcnZlciBhbGxvY10gaW5pdFdpdGhXZWFrUHRyOip0aGlzXSk7
CiAKICNpZiAhUExBVEZPUk0oSU9TX0ZBTUlMWSkKICAgICBtX3Bvd2VyT2JzZXJ2ZXIgPSBtYWtl
VW5pcXVlPFdlYkNvcmU6OlBvd2VyT2JzZXJ2ZXI+KFt3ZWFrVGhpcyA9IFdlYWtQdHIgeyAqdGhp
cyB9XSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9XZWJWaWV3
SW1wbC5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dlYlZpZXdJbXBsLm1tCmlu
ZGV4IGNiODIzNjlhZTFhZTc5ZmFiYzExN2IzNDY2NjZiMzdiYjViZjkzNzguLjY1OTVmNGU1YjU2
ZjRiZWJlZGM2OTE3OGQ0MDM2MzVmYjlhNWRhYjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL0NvY29hL1dlYlZpZXdJbXBsLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0NvY29hL1dlYlZpZXdJbXBsLm1tCkBAIC0xMDExLDcgKzEwMTEsNyBAQCAtIChpbnN0YW5j
ZXR5cGUpaW5pdFdpdGhXZWJWaWV3SW1wbDooV2ViS2l0OjpXZWJWaWV3SW1wbCYpaW1wbAogICAg
IGlmICghKHNlbGYgPSBbc3VwZXIgaW5pdF0pKQogICAgICAgICByZXR1cm4gbmlsOwogCi0gICAg
X2ltcGwgPSBtYWtlV2Vha1B0cihpbXBsKTsKKyAgICBfaW1wbCA9IGltcGw7CiAgICAgcmV0dXJu
IHNlbGY7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0Rvd25sb2Fk
cy9Eb3dubG9hZFByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0Rvd25sb2Fkcy9E
b3dubG9hZFByb3h5LmNwcAppbmRleCA0NjM4NGU0MmY5MWUxNGMxMjIxNTRjYjkwNzUwZDI5ZWIy
ZDQ2ZTBkLi5lYjBjZmMzNzU3Y2VlMTcxMDViYzQzNzNhMDg3N2Q4NmM4OTg1OWQzIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Eb3dubG9hZHMvRG93bmxvYWRQcm94eS5jcHAK
KysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvRG93bmxvYWRzL0Rvd25sb2FkUHJveHkuY3Bw
CkBAIC01NCw3ICs1NCw3IEBAIERvd25sb2FkUHJveHk6OkRvd25sb2FkUHJveHkoRG93bmxvYWRQ
cm94eU1hcCYgZG93bmxvYWRQcm94eU1hcCwgV2Vic2l0ZURhdGFTdG9yCiAgICAgLCBtX2NsaWVu
dChjbGllbnQpCiAgICAgLCBtX2Rvd25sb2FkSUQoRG93bmxvYWRJRDo6Z2VuZXJhdGUoKSkKICAg
ICAsIG1fcmVxdWVzdChyZXNvdXJjZVJlcXVlc3QpCi0gICAgLCBtX29yaWdpbmF0aW5nUGFnZSht
YWtlV2Vha1B0cihvcmlnaW5hdGluZ1BhZ2UpKQorICAgICwgbV9vcmlnaW5hdGluZ1BhZ2Uob3Jp
Z2luYXRpbmdQYWdlKQogICAgICwgbV9mcmFtZUluZm8oQVBJOjpGcmFtZUluZm86OmNyZWF0ZShG
cmFtZUluZm9EYXRhIHsgZnJhbWVJbmZvRGF0YSB9LCBvcmlnaW5hdGluZ1BhZ2UpKQogewogfQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvR1BVL0dQVVByb2Nlc3NQcm94eS5j
cHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9HUFUvR1BVUHJvY2Vzc1Byb3h5LmNwcAppbmRl
eCBmYWQ1ZjlkNjc0NGFjMmZjYjU0Y2FhZWVlNjNlYjYzMzI1MTRjMDFkLi43Y2E2N2ViYjY2NmQ1
NGJlODY5Zjc5NGI0NWU3OGYyNzcxOWEzM2ZhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9HUFUvR1BVUHJvY2Vzc1Byb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9HUFUvR1BVUHJvY2Vzc1Byb3h5LmNwcApAQCAtMTA4LDcgKzEwOCw3IEBAIFJlZjxHUFVQ
cm9jZXNzUHJveHk+IEdQVVByb2Nlc3NQcm94eTo6Z2V0T3JDcmVhdGUoKQogICAgIH0KICAgICBh
dXRvIGdwdVByb2Nlc3MgPSBhZG9wdFJlZigqbmV3IEdQVVByb2Nlc3NQcm94eSk7CiAgICAgZ3B1
UHJvY2Vzcy0+dXBkYXRlUHJlZmVyZW5jZXMoKTsKLSAgICBzaW5nbGV0b24oKSA9IG1ha2VXZWFr
UHRyKGdwdVByb2Nlc3MuZ2V0KCkpOworICAgIHNpbmdsZXRvbigpID0gZ3B1UHJvY2VzczsKICAg
ICByZXR1cm4gZ3B1UHJvY2VzczsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvSW5zcGVjdG9yL0luc3BlY3RvclRhcmdldFByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL0luc3BlY3Rvci9JbnNwZWN0b3JUYXJnZXRQcm94eS5jcHAKaW5kZXggNjkyOGNh
MmZiZmI2OTM5MDYyZTNjZDE0YmI3YmE2ZjJmZGM4N2Y1Zi4uY2ZjYWNjZTAxMjJiYjAzZmE0N2Zk
ODU4MGNmYmVkZmIyYWQzN2Q0OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
SW5zcGVjdG9yL0luc3BlY3RvclRhcmdldFByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9JbnNwZWN0b3IvSW5zcGVjdG9yVGFyZ2V0UHJveHkuY3BwCkBAIC00NSw3ICs0NSw3
IEBAIHN0ZDo6dW5pcXVlX3B0cjxJbnNwZWN0b3JUYXJnZXRQcm94eT4gSW5zcGVjdG9yVGFyZ2V0
UHJveHk6OmNyZWF0ZShXZWJQYWdlUHJveHkmCiBzdGQ6OnVuaXF1ZV9wdHI8SW5zcGVjdG9yVGFy
Z2V0UHJveHk+IEluc3BlY3RvclRhcmdldFByb3h5OjpjcmVhdGUoUHJvdmlzaW9uYWxQYWdlUHJv
eHkmIHByb3Zpc2lvbmFsUGFnZSwgY29uc3QgU3RyaW5nJiB0YXJnZXRJZCwgSW5zcGVjdG9yOjpJ
bnNwZWN0b3JUYXJnZXRUeXBlIHR5cGUpCiB7CiAgICAgYXV0byB0YXJnZXQgPSBJbnNwZWN0b3JU
YXJnZXRQcm94eTo6Y3JlYXRlKHByb3Zpc2lvbmFsUGFnZS5wYWdlKCksIHRhcmdldElkLCB0eXBl
KTsKLSAgICB0YXJnZXQtPm1fcHJvdmlzaW9uYWxQYWdlID0gbWFrZVdlYWtQdHIocHJvdmlzaW9u
YWxQYWdlKTsKKyAgICB0YXJnZXQtPm1fcHJvdmlzaW9uYWxQYWdlID0gcHJvdmlzaW9uYWxQYWdl
OwogICAgIHJldHVybiB0YXJnZXQ7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL0luc3BlY3Rvci9XZWJJbnNwZWN0b3JVSUV4dGVuc2lvbkNvbnRyb2xsZXJQcm94eS5j
cHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9JbnNwZWN0b3IvV2ViSW5zcGVjdG9yVUlFeHRl
bnNpb25Db250cm9sbGVyUHJveHkuY3BwCmluZGV4IDA3YTYzZjQ5ZGE4NTY4MDdlMmJhMWVlMDE5
MjAxZGE4ZWMzOTgyOTAuLjdiZDFlMjhmNGYxOTZiZjFiZDMzMmNjYzgzYzFiOWU4YjJmMzliZGUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0luc3BlY3Rvci9XZWJJbnNwZWN0
b3JVSUV4dGVuc2lvbkNvbnRyb2xsZXJQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvSW5zcGVjdG9yL1dlYkluc3BlY3RvclVJRXh0ZW5zaW9uQ29udHJvbGxlclByb3h5LmNw
cApAQCAtMzgsNyArMzgsNyBAQAogbmFtZXNwYWNlIFdlYktpdCB7CiAKIFdlYkluc3BlY3RvclVJ
RXh0ZW5zaW9uQ29udHJvbGxlclByb3h5OjpXZWJJbnNwZWN0b3JVSUV4dGVuc2lvbkNvbnRyb2xs
ZXJQcm94eShXZWJQYWdlUHJveHkmIGluc3BlY3RvclBhZ2UpCi0gICAgOiBtX2luc3BlY3RvclBh
Z2UobWFrZVdlYWtQdHIoaW5zcGVjdG9yUGFnZSkpCisgICAgOiBtX2luc3BlY3RvclBhZ2UoaW5z
cGVjdG9yUGFnZSkKIHsKICAgICBtX2luc3BlY3RvclBhZ2UtPnByb2Nlc3MoKS5hZGRNZXNzYWdl
UmVjZWl2ZXIoTWVzc2FnZXM6OldlYkluc3BlY3RvclVJRXh0ZW5zaW9uQ29udHJvbGxlclByb3h5
OjptZXNzYWdlUmVjZWl2ZXJOYW1lKCksIG1faW5zcGVjdG9yUGFnZS0+d2ViUGFnZUlEKCksICp0
aGlzKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0xhdW5jaGVyL21h
Yy9Qcm9jZXNzTGF1bmNoZXJNYWMubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9MYXVuY2hl
ci9tYWMvUHJvY2Vzc0xhdW5jaGVyTWFjLm1tCmluZGV4IGRhYzMxYzNkOWY2NmEwOGIwZTBkMDY1
NmFmZTY3YTViZjg4YWEzYTUuLmVjMjZkMzc0M2FhYTJkNjdiNTkyMDJlZDlhNmFjMDRhOWFhM2Ji
OGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0xhdW5jaGVyL21hYy9Qcm9j
ZXNzTGF1bmNoZXJNYWMubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTGF1bmNoZXIv
bWFjL1Byb2Nlc3NMYXVuY2hlck1hYy5tbQpAQCAtMjMzLDcgKzIzMyw3IEBAIHZvaWQgUHJvY2Vz
c0xhdW5jaGVyOjpsYXVuY2hQcm9jZXNzKCkKIAogICAgIHhwY19kaWN0aW9uYXJ5X3NldF92YWx1
ZShib290c3RyYXBNZXNzYWdlLmdldCgpLCAiZXh0cmEtaW5pdGlhbGl6YXRpb24tZGF0YSIsIGV4
dHJhSW5pdGlhbGl6YXRpb25EYXRhLmdldCgpKTsKIAotICAgIGF1dG8gZXJyb3JIYW5kbGVySW1w
bCA9IFt3ZWFrUHJvY2Vzc0xhdW5jaGVyID0gbWFrZVdlYWtQdHIoKnRoaXMpLCBsaXN0ZW5pbmdQ
b3J0XSAoeHBjX29iamVjdF90IGV2ZW50KSB7CisgICAgYXV0byBlcnJvckhhbmRsZXJJbXBsID0g
W3dlYWtQcm9jZXNzTGF1bmNoZXIgPSBXZWFrUHRyIHsgKnRoaXMgfSwgbGlzdGVuaW5nUG9ydF0g
KHhwY19vYmplY3RfdCBldmVudCkgewogICAgICAgICBBU1NFUlQoIWV2ZW50IHx8IHhwY19nZXRf
dHlwZShldmVudCkgPT0gWFBDX1RZUEVfRVJST1IpOwogICAgICAgICAKICAgICAgICAgYXV0byBw
cm9jZXNzTGF1bmNoZXIgPSB3ZWFrUHJvY2Vzc0xhdW5jaGVyLmdldCgpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvTWVkaWEvUmVtb3RlTWVkaWFTZXNzaW9uQ29vcmRpbmF0
b3JQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9NZWRpYS9SZW1vdGVNZWRpYVNl
c3Npb25Db29yZGluYXRvclByb3h5LmNwcAppbmRleCA3MTE1NGFkZDBhZjJiOTE0YWUyM2FiM2Nl
YzQzM2EwZTEzMGUxMWQyLi4zZmUwYWJjZmUzNmJlZjdjYTQ1YmVkNTY2MWE3MzdlZDJiZmU1NmQw
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9NZWRpYS9SZW1vdGVNZWRpYVNl
c3Npb25Db29yZGluYXRvclByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9N
ZWRpYS9SZW1vdGVNZWRpYVNlc3Npb25Db29yZGluYXRvclByb3h5LmNwcApAQCAtNjAsNyArNjAs
NyBAQCBSZW1vdGVNZWRpYVNlc3Npb25Db29yZGluYXRvclByb3h5OjpSZW1vdGVNZWRpYVNlc3Np
b25Db29yZGluYXRvclByb3h5KFdlYlBhZ2VQcgogICAgICwgbV9sb2dJZGVudGlmaWVyKExvZ2dl
ckhlbHBlcjo6dW5pcXVlTG9nSWRlbnRpZmllcigpKQogI2VuZGlmCiB7Ci0gICAgbV9wcml2YXRl
Q29vcmRpbmF0b3ItPnNldENsaWVudChtYWtlV2Vha1B0cih0aGlzKSk7CisgICAgbV9wcml2YXRl
Q29vcmRpbmF0b3ItPnNldENsaWVudCgqdGhpcyk7CiAgICAgbV93ZWJQYWdlUHJveHkucHJvY2Vz
cygpLmFkZE1lc3NhZ2VSZWNlaXZlcihNZXNzYWdlczo6UmVtb3RlTWVkaWFTZXNzaW9uQ29vcmRp
bmF0b3JQcm94eTo6bWVzc2FnZVJlY2VpdmVyTmFtZSgpLCBtX3dlYlBhZ2VQcm94eS53ZWJQYWdl
SUQoKSwgKnRoaXMpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9N
ZWRpYUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0UHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvTWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdFByb3h5LmNwcAppbmRleCA4
OGJhMjNiOWU4YzIyZjJmMWVhZjdiNDVjNjhhZTFiOTY2OWFiY2Q1Li4yNjgzMjdhZWIyMzFhMmYy
ZjJkNjY2OGY0NWY0YThhZWE5YjUyYTRiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9NZWRpYUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0UHJveHkuY3BwCisrKyBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL01lZGlhS2V5U3lzdGVtUGVybWlzc2lvblJlcXVlc3RQcm94eS5j
cHAKQEAgLTM1LDcgKzM1LDcgQEAgbmFtZXNwYWNlIFdlYktpdCB7CiB1c2luZyBuYW1lc3BhY2Ug
V2ViQ29yZTsKIAogTWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdFByb3h5OjpNZWRpYUtl
eVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0UHJveHkoTWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVx
dWVzdE1hbmFnZXJQcm94eSYgbWFuYWdlciwgTWVkaWFLZXlTeXN0ZW1SZXF1ZXN0SWRlbnRpZmll
ciBtZWRpYUtleVN5c3RlbUlELCBGcmFtZUlkZW50aWZpZXIgbWFpbkZyYW1lSUQsIEZyYW1lSWRl
bnRpZmllciBmcmFtZUlELCBSZWY8V2ViQ29yZTo6U2VjdXJpdHlPcmlnaW4+JiYgdG9wTGV2ZWxE
b2N1bWVudE9yaWdpbiwgY29uc3QgU3RyaW5nJiBrZXlTeXN0ZW0pCi0gICAgOiBtX21hbmFnZXIo
bWFrZVdlYWtQdHIobWFuYWdlcikpCisgICAgOiBtX21hbmFnZXIobWFuYWdlcikKICAgICAsIG1f
bWVkaWFLZXlTeXN0ZW1JRChtZWRpYUtleVN5c3RlbUlEKQogICAgICwgbV9tYWluRnJhbWVJRCht
YWluRnJhbWVJRCkKICAgICAsIG1fZnJhbWVJRChmcmFtZUlEKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5LmNwcCBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5jcHAKaW5kZXgg
MmY1NWM2M2FiYjU1OWIxMDBkNzQ4ZGUxNWVmMDE3NmNhYTlkZGI3NS4uYzU1M2Y5Y2E3MTI5OGY4
NjkxY2FkMDFkMGY3OGJlM2E3MDY0ODVkYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHkuY3BwCkBAIC0zOTEsNyArMzkx
LDcgQEAgdm9pZCBOZXR3b3JrUHJvY2Vzc1Byb3h5OjpkaWRSZWNlaXZlQXV0aGVudGljYXRpb25D
aGFsbGVuZ2UoUEFMOjpTZXNzaW9uSUQgc2Vzc2kKICAgICBpZiAoY29yZUNoYWxsZW5nZS5wcm90
ZWN0aW9uU3BhY2UoKS5hdXRoZW50aWNhdGlvblNjaGVtZSgpID09IFByb3RlY3Rpb25TcGFjZUF1
dGhlbnRpY2F0aW9uU2NoZW1lQ2xpZW50Q2VydGlmaWNhdGVSZXF1ZXN0ZWQpIHsKICAgICAgICAg
aWYgKGF1dG8qIHN0b3JlID0gd2Vic2l0ZURhdGFTdG9yZUZyb21TZXNzaW9uSUQoc2Vzc2lvbklE
KSkgewogICAgICAgICAgICAgYXV0byBuZXdTZWNLZXlQcm94eVN0b3JlID0gU2VjS2V5UHJveHlT
dG9yZTo6Y3JlYXRlKCk7Ci0gICAgICAgICAgICBzZWNLZXlQcm94eVN0b3JlID0gbWFrZVdlYWtQ
dHIobmV3U2VjS2V5UHJveHlTdG9yZS5nZXQoKSk7CisgICAgICAgICAgICBzZWNLZXlQcm94eVN0
b3JlID0gbmV3U2VjS2V5UHJveHlTdG9yZTsKICAgICAgICAgICAgIHN0b3JlLT5hZGRTZWNLZXlQ
cm94eVN0b3JlKFdURk1vdmUobmV3U2VjS2V5UHJveHlTdG9yZSkpOwogICAgICAgICB9CiAgICAg
fQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJv
Y2Vzc1Byb3h5Q29jb2EubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9OZXR3b3JrL05ldHdv
cmtQcm9jZXNzUHJveHlDb2NvYS5tbQppbmRleCA2M2EwNWRkNTQwYWI1ZWFkYjVmMDBlYzQ0NTZh
ODk4MWUxNjM0YWI5Li4zMTU1NmQyMzcwZjc0MWEzOTA1MGNhNzI5MDIwYzNkYmU3NWY3ZDc1IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNz
UHJveHlDb2NvYS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9OZXR3b3JrL05ldHdv
cmtQcm9jZXNzUHJveHlDb2NvYS5tbQpAQCAtNjEsNyArNjEsNyBAQCBib29sIE5ldHdvcmtQcm9j
ZXNzUHJveHk6OlhQQ0V2ZW50SGFuZGxlcjo6aGFuZGxlWFBDRXZlbnQoeHBjX29iamVjdF90IGV2
ZW50KSBjbwogfQogCiBOZXR3b3JrUHJvY2Vzc1Byb3h5OjpYUENFdmVudEhhbmRsZXI6OlhQQ0V2
ZW50SGFuZGxlcihjb25zdCBOZXR3b3JrUHJvY2Vzc1Byb3h5JiBuZXR3b3JrUHJvY2VzcykKLSAg
ICA6IG1fbmV0d29ya1Byb2Nlc3MobWFrZVdlYWtQdHIobmV0d29ya1Byb2Nlc3MpKQorICAgIDog
bV9uZXR3b3JrUHJvY2VzcyhuZXR3b3JrUHJvY2VzcykKIHsKIH0KIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvUERGL1dLUERGSFVEVmlldy5tbSBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL1BERi9XS1BERkhVRFZpZXcubW0KaW5kZXggNmM0NjUwM2Y5ODdiMGYxMjY1ZTkz
OGIxZTBiNWY4MjQ1NWEzMzZjMi4uM2NmMjdkMWJlOTcwNGQ2YWY2NzExNGQ4ZTlhZDA5MGIyNmEx
ZThjZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUERGL1dLUERGSFVEVmll
dy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9QREYvV0tQREZIVURWaWV3Lm1tCkBA
IC0xMDIsNyArMTAyLDcgQEAgLSAoaW5zdGFuY2V0eXBlKWluaXRXaXRoRnJhbWU6KE5TUmVjdClm
cmFtZSBwbHVnaW5JZGVudGlmaWVyOihXZWJLaXQ6OlBERlBsdWdpbkkKICAgICBzZWxmLndhbnRz
TGF5ZXIgPSBZRVM7CiAgICAgX2NhY2hlZEljb25zID0gYWRvcHROUyhbW05TTXV0YWJsZURpY3Rp
b25hcnkgYWxsb2NdIGluaXRdKTsKICAgICBfcGx1Z2luSWRlbnRpZmllciA9IHBsdWdpbklkZW50
aWZpZXI7Ci0gICAgX3BhZ2UgPSBtYWtlV2Vha1B0cihwYWdlKTsKKyAgICBfcGFnZSA9IHBhZ2U7
CiAgICAgX2RldmljZVNjYWxlRmFjdG9yID0gcGFnZS5kZXZpY2VTY2FsZUZhY3RvcigpOwogICAg
IF92aXNpYmxlID0gWUVTOwogICAgIFtzZWxmIF9zZXR1cExheWVyOnNlbGYubGF5ZXJdOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvU3BlZWNoUmVjb2duaXRpb25QZXJtaXNz
aW9uUmVxdWVzdC5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvU3BlZWNoUmVjb2duaXRpb25Q
ZXJtaXNzaW9uUmVxdWVzdC5oCmluZGV4IDI4YWViNTg3YWMxMzlkOTI1ODQzYmU3NmYyNDE2MTU3
NmJlYWRjN2MuLjYyNjZjMTY3NTFjZWM2MTI0ZDEzMzExMGZiOWU0ZDQzMTI2MjVkMjEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1NwZWVjaFJlY29nbml0aW9uUGVybWlzc2lv
blJlcXVlc3QuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9TcGVlY2hSZWNvZ25pdGlv
blBlcm1pc3Npb25SZXF1ZXN0LmgKQEAgLTU5LDcgKzU5LDcgQEAgcHVibGljOgogCiBwcml2YXRl
OgogICAgIFNwZWVjaFJlY29nbml0aW9uUGVybWlzc2lvblJlcXVlc3QoV2ViQ29yZTo6U3BlZWNo
UmVjb2duaXRpb25SZXF1ZXN0JiByZXF1ZXN0LCBTcGVlY2hSZWNvZ25pdGlvblBlcm1pc3Npb25S
ZXF1ZXN0Q2FsbGJhY2smJiBjb21wbGV0aW9uSGFuZGxlcikKLSAgICAgICAgOiBtX3JlcXVlc3Qo
bWFrZVdlYWtQdHIocmVxdWVzdCkpCisgICAgICAgIDogbV9yZXF1ZXN0KHJlcXVlc3QpCiAgICAg
ICAgICwgbV9jb21wbGV0aW9uSGFuZGxlcihXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSkKICAg
ICB7IH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvU3BlZWNoUmVjb2du
aXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlLmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL1NwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZS5jcHAKaW5kZXgg
ZTQyZGJmMTI4MWQzNmZlZjJlMzAzZTcwN2Q1YjViYWYxNjZlZTE1Mi4uNTNjYWRkMzRhYjkyODBl
MjBmNzNmMWEyYmEzYmMxM2QxYTU0MTkzOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlLmNwcAorKysg
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9TcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1l
TWVkaWFTb3VyY2UuY3BwCkBAIC00Nyw3ICs0Nyw3IEBAIFJlZjxXZWJDb3JlOjpSZWFsdGltZU1l
ZGlhU291cmNlPiBTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2U6OmNy
CiBTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2U6OlNwZWVjaFJlY29n
bml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZShXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291
cmNlSWRlbnRpZmllciBpZGVudGlmaWVyLCBTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1l
TWVkaWFTb3VyY2VNYW5hZ2VyJiBtYW5hZ2VyLCBjb25zdCBXZWJDb3JlOjpDYXB0dXJlRGV2aWNl
JiBjYXB0dXJlRGV2aWNlKQogICAgIDogV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZShXZWJD
b3JlOjpSZWFsdGltZU1lZGlhU291cmNlOjpUeXBlOjpBdWRpbywgU3RyaW5nIHsgY2FwdHVyZURl
dmljZS5sYWJlbCgpIH0sIFN0cmluZyB7IGNhcHR1cmVEZXZpY2UucGVyc2lzdGVudElkKCkgfSkK
ICAgICAsIG1faWRlbnRpZmllcihpZGVudGlmaWVyKQotICAgICwgbV9tYW5hZ2VyKG1ha2VXZWFr
UHRyKG1hbmFnZXIpKQorICAgICwgbV9tYW5hZ2VyKG1hbmFnZXIpCiAjaWYgUExBVEZPUk0oQ09D
T0EpCiAgICAgLCBtX3JpbmdCdWZmZXIobWFrZVVuaXF1ZTxXZWJDb3JlOjpDQVJpbmdCdWZmZXI+
KCkpCiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1NwZWVjaFJl
Y29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIuY3BwIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNl
TWFuYWdlci5jcHAKaW5kZXggYmMwYzcwOGE4NjQ3YjNiNmViMDVjMDFhYzEyYTA3Y2Y4YzgyMDdm
Yi4uNjhkYzExNWYxNjlmMTllZjg5ZjY2ZmU1YzhmMjQxYzg1Yjk3OGQ3MSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1l
ZGlhU291cmNlTWFuYWdlci5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvU3BlZWNo
UmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlci5jcHAKQEAgLTQyLDcg
KzQyLDcgQEAgdm9pZCBTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VN
YW5hZ2VyOjphZGRTb3VyY2UoU3BlZWNoUmVjb2duaXQKIHsKICAgICBhdXRvIGlkZW50aWZpZXIg
PSBzb3VyY2UuaWRlbnRpZmllcigpOwogICAgIEFTU0VSVCghbV9zb3VyY2VzLmNvbnRhaW5zKGlk
ZW50aWZpZXIpKTsKLSAgICBtX3NvdXJjZXMuYWRkKGlkZW50aWZpZXIsIG1ha2VXZWFrUHRyKHNv
dXJjZSkpOworICAgIG1fc291cmNlcy5hZGQoaWRlbnRpZmllciwgc291cmNlKTsKIAogI2lmIEVO
QUJMRShTQU5EQk9YX0VYVEVOU0lPTlMpCiAgICAgaWYgKCFjYXB0dXJlRGV2aWNlLmlzTW9ja0Rl
dmljZSgpKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9WaWV3R2VzdHVy
ZUNvbnRyb2xsZXIuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvVmlld0dlc3R1cmVDb250
cm9sbGVyLmNwcAppbmRleCA1YjQ5Yjk5MTdiNzc0NzU2MmQ4N2UwYjM4MzZiMTRjYzFlN2Q2NDI0
Li43YmQ1ODc3ZGQ4ZTkyNThkYzVkNmE3ZmE0Mjg2N2ZiOTI5NzlkNmZhIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9WaWV3R2VzdHVyZUNvbnRyb2xsZXIuY3BwCisrKyBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL1ZpZXdHZXN0dXJlQ29udHJvbGxlci5jcHAKQEAgLTE0Niw3
ICsxNDYsNyBAQCB2b2lkIFZpZXdHZXN0dXJlQ29udHJvbGxlcjo6ZGlkRW5kR2VzdHVyZSgpCiAK
IHZvaWQgVmlld0dlc3R1cmVDb250cm9sbGVyOjpzZXRBbHRlcm5hdGVCYWNrRm9yd2FyZExpc3RT
b3VyY2VQYWdlKFdlYlBhZ2VQcm94eSogcGFnZSkKIHsKLSAgICBtX2FsdGVybmF0ZUJhY2tGb3J3
YXJkTGlzdFNvdXJjZVBhZ2UgPSBtYWtlV2Vha1B0cihwYWdlKTsKKyAgICBtX2FsdGVybmF0ZUJh
Y2tGb3J3YXJkTGlzdFNvdXJjZVBhZ2UgPSBwYWdlOwogfQogCiBib29sIFZpZXdHZXN0dXJlQ29u
dHJvbGxlcjo6Y2FuU3dpcGVJbkRpcmVjdGlvbihTd2lwZURpcmVjdGlvbiBkaXJlY3Rpb24pIGNv
bnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlv
bi9BdXRoZW50aWNhdG9yLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJBdXRoZW50aWNh
dGlvbi9BdXRoZW50aWNhdG9yLmgKaW5kZXggMmU3MTBhYTJlN2JlMmY3YzRhYWUxMGU0MDNkOTgy
MTQzZTBhYjU4NC4uNWNmOWFmNTcwOGU4YzFiMWYxN2JjNGRkY2EyMmVmYzk0Y2MzNGFhYiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViQXV0aGVudGljYXRpb24vQXV0aGVu
dGljYXRvci5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9u
L0F1dGhlbnRpY2F0b3IuaApAQCAtNjMsNyArNjMsNyBAQCBwdWJsaWM6CiAKICAgICB2aXJ0dWFs
IH5BdXRoZW50aWNhdG9yKCkgPSBkZWZhdWx0OwogCi0gICAgdm9pZCBzZXRPYnNlcnZlcihPYnNl
cnZlciYgb2JzZXJ2ZXIpIHsgbV9vYnNlcnZlciA9IG1ha2VXZWFrUHRyKG9ic2VydmVyKTsgfQor
ICAgIHZvaWQgc2V0T2JzZXJ2ZXIoT2JzZXJ2ZXImIG9ic2VydmVyKSB7IG1fb2JzZXJ2ZXIgPSBv
YnNlcnZlcjsgfQogCiAgICAgLy8gVGhpcyBvcGVyYXRpb24gaXMgZ3VhcmFudGVlZCB0byBleGVj
dXRlIGFzeW5jaHJvbm91c2x5LgogICAgIHZvaWQgaGFuZGxlUmVxdWVzdChjb25zdCBXZWJBdXRo
ZW50aWNhdGlvblJlcXVlc3REYXRhJik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9BdXRoZW50aWNhdG9yTWFuYWdlci5jcHAgYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9BdXRoZW50aWNhdG9yTWFuYWdlci5j
cHAKaW5kZXggMzc3MTE2MWEyOTU2YmU0Yzg4N2QwMWNhNTYxYWY2Yjg4Yjc1OGRhNS4uZDNhZTQw
M2VmYmQ5N2U5Njc1MWRhZTM5ZjQ1MjYzMWI4YzEzOGJlYyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvV2ViQXV0aGVudGljYXRpb24vQXV0aGVudGljYXRvck1hbmFnZXIuY3Bw
CisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL0F1dGhlbnRp
Y2F0b3JNYW5hZ2VyLmNwcApAQCAtNDYyLDcgKzQ2Miw3IEBAIHZvaWQgQXV0aGVudGljYXRvck1h
bmFnZXI6OnJ1blBhbmVsKCkKIAogICAgIG1fcGVuZGluZ1JlcXVlc3REYXRhLnBhbmVsID0gQVBJ
OjpXZWJBdXRoZW50aWNhdGlvblBhbmVsOjpjcmVhdGUoKnRoaXMsIGdldFJwSWQob3B0aW9ucyks
IHRyYW5zcG9ydHMsIGdldENsaWVudERhdGFUeXBlKG9wdGlvbnMpLCBnZXRVc2VyTmFtZShvcHRp
b25zKSk7CiAgICAgYXV0byYgcGFuZWwgPSAqbV9wZW5kaW5nUmVxdWVzdERhdGEucGFuZWw7Ci0g
ICAgcGFnZS0+dWlDbGllbnQoKS5ydW5XZWJBdXRoZW50aWNhdGlvblBhbmVsKCpwYWdlLCBwYW5l
bCwgKmZyYW1lLCBGcmFtZUluZm9EYXRhIHsgbV9wZW5kaW5nUmVxdWVzdERhdGEuZnJhbWVJbmZv
IH0sIFt0cmFuc3BvcnRzID0gV1RGTW92ZSh0cmFuc3BvcnRzKSwgd2Vha1BhbmVsID0gbWFrZVdl
YWtQdHIocGFuZWwpLCB3ZWFrVGhpcyA9IFdlYWtQdHIgeyAqdGhpcyB9LCB0aGlzXSAoV2ViQXV0
aGVudGljYXRpb25QYW5lbFJlc3VsdCByZXN1bHQpIHsKKyAgICBwYWdlLT51aUNsaWVudCgpLnJ1
bldlYkF1dGhlbnRpY2F0aW9uUGFuZWwoKnBhZ2UsIHBhbmVsLCAqZnJhbWUsIEZyYW1lSW5mb0Rh
dGEgeyBtX3BlbmRpbmdSZXF1ZXN0RGF0YS5mcmFtZUluZm8gfSwgW3RyYW5zcG9ydHMgPSBXVEZN
b3ZlKHRyYW5zcG9ydHMpLCB3ZWFrUGFuZWwgPSBXZWFrUHRyIHsgcGFuZWwgfSwgd2Vha1RoaXMg
PSBXZWFrUHRyIHsgKnRoaXMgfSwgdGhpc10gKFdlYkF1dGhlbnRpY2F0aW9uUGFuZWxSZXN1bHQg
cmVzdWx0KSB7CiAgICAgICAgIC8vIFRoZSBwYW5lbCBhZGRyZXNzIGlzIHVzZWQgdG8gZGV0ZXJt
aW5lIGlmIHRoZSBjdXJyZW50IHBlbmRpbmcgcmVxdWVzdCBpcyBzdGlsbCB0aGUgc2FtZS4KICAg
ICAgICAgaWYgKCF3ZWFrVGhpcyB8fCAhd2Vha1BhbmVsCiAgICAgICAgICAgICB8fCAocmVzdWx0
ID09IFdlYkF1dGhlbnRpY2F0aW9uUGFuZWxSZXN1bHQ6OkRpZE5vdFByZXNlbnQpCkBAIC01MzUs
NyArNTM1LDcgQEAgdm9pZCBBdXRoZW50aWNhdG9yTWFuYWdlcjo6ZGlzcGF0Y2hQYW5lbENsaWVu
dENhbGwoRnVuY3Rpb248dm9pZChjb25zdCBBUEk6OldlYkEKIHsKICAgICBhdXRvIHdlYWtQYW5l
bCA9IG1fcGVuZGluZ1JlcXVlc3REYXRhLndlYWtQYW5lbDsKICAgICBpZiAoIXdlYWtQYW5lbCkK
LSAgICAgICAgd2Vha1BhbmVsID0gbWFrZVdlYWtQdHIobV9wZW5kaW5nUmVxdWVzdERhdGEucGFu
ZWwuZ2V0KCkpOworICAgICAgICB3ZWFrUGFuZWwgPSBtX3BlbmRpbmdSZXF1ZXN0RGF0YS5wYW5l
bDsKICAgICBpZiAoIXdlYWtQYW5lbCkKICAgICAgICAgcmV0dXJuOwogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9BdXRoZW50aWNhdG9yVHJh
bnNwb3J0U2VydmljZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJBdXRoZW50aWNh
dGlvbi9BdXRoZW50aWNhdG9yVHJhbnNwb3J0U2VydmljZS5jcHAKaW5kZXggMTNiOTEzNjc0NTRk
ZjJkOGUyZDljMzkxOWE3ZjUxOTgyMzhjYzQ1Yi4uMDUwYmM1MjQwYWNkNzcyYmExZDRkOWZiMDE2
NzAyZmY3ODAxYWZhOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViQXV0
aGVudGljYXRpb24vQXV0aGVudGljYXRvclRyYW5zcG9ydFNlcnZpY2UuY3BwCisrKyBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL0F1dGhlbnRpY2F0b3JUcmFuc3Bv
cnRTZXJ2aWNlLmNwcApAQCAtNjksNyArNjksNyBAQCBVbmlxdWVSZWY8QXV0aGVudGljYXRvclRy
YW5zcG9ydFNlcnZpY2U+IEF1dGhlbnRpY2F0b3JUcmFuc3BvcnRTZXJ2aWNlOjpjcmVhdGVNbwog
fQogCiBBdXRoZW50aWNhdG9yVHJhbnNwb3J0U2VydmljZTo6QXV0aGVudGljYXRvclRyYW5zcG9y
dFNlcnZpY2UoT2JzZXJ2ZXImIG9ic2VydmVyKQotICAgIDogbV9vYnNlcnZlcihtYWtlV2Vha1B0
cihvYnNlcnZlcikpCisgICAgOiBtX29ic2VydmVyKG9ic2VydmVyKQogewogfQogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9Db2NvYS9BdXRo
ZW50aWNhdG9yUHJlc2VudGVyQ29vcmRpbmF0b3IubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9XZWJBdXRoZW50aWNhdGlvbi9Db2NvYS9BdXRoZW50aWNhdG9yUHJlc2VudGVyQ29vcmRpbmF0
b3IubW0KaW5kZXggYmQwZThjYWI3OTY4NWI3MDYxYzkyMTFkNDk5N2Y1YzJhYTE0Y2MxMS4uYTE3
ZjhhMmRiY2QzYTAyZjNmOGFlOWI1NjMxYmY4ZGUxMzEyMThlYyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvV2ViQXV0aGVudGljYXRpb24vQ29jb2EvQXV0aGVudGljYXRvclBy
ZXNlbnRlckNvb3JkaW5hdG9yLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkF1
dGhlbnRpY2F0aW9uL0NvY29hL0F1dGhlbnRpY2F0b3JQcmVzZW50ZXJDb29yZGluYXRvci5tbQpA
QCAtMzgsNyArMzgsNyBAQCBuYW1lc3BhY2UgV2ViS2l0IHsKIHVzaW5nIG5hbWVzcGFjZSBXZWJD
b3JlOwogCiBBdXRoZW50aWNhdG9yUHJlc2VudGVyQ29vcmRpbmF0b3I6OkF1dGhlbnRpY2F0b3JQ
cmVzZW50ZXJDb29yZGluYXRvcihjb25zdCBBdXRoZW50aWNhdG9yTWFuYWdlciYgbWFuYWdlciwg
Y29uc3QgU3RyaW5nJiBycElkLCBjb25zdCBUcmFuc3BvcnRTZXQmIHRyYW5zcG9ydHMsIENsaWVu
dERhdGFUeXBlIHR5cGUsIGNvbnN0IFN0cmluZyYgdXNlcm5hbWUpCi0gICAgOiBtX21hbmFnZXIo
bWFrZVdlYWtQdHIobWFuYWdlcikpCisgICAgOiBtX21hbmFnZXIobWFuYWdlcikKIHsKICNpZiBI
QVZFKEFTQ19BVVRIX1VJKQogICAgIG1fY29udGV4dCA9IGFkb3B0TlMoW2FsbG9jQVNDQXV0aG9y
aXphdGlvblByZXNlbnRhdGlvbkNvbnRleHRJbnN0YW5jZSgpIGluaXRXaXRoUmVxdWVzdENvbnRl
eHQ6bnVsbHB0ciBhcHBJZGVudGlmaWVyOm51bGxwdHJdKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL0NvY29hL05mY0Nvbm5lY3Rpb24ubW0g
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9Db2NvYS9OZmNDb25u
ZWN0aW9uLm1tCmluZGV4IDFlNzBhMzE1NDFmM2E2MzA4YzNlMzFjNGJkMmI2YTE2YWQ3ZTlkOWMu
LmNkOGY4YjgyNzRkZmEzNmQzOWQ3YjA1NGZiZGIxOTYyOThjNWU3YzIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL0NvY29hL05mY0Nvbm5lY3Rp
b24ubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViQXV0aGVudGljYXRpb24vQ29j
b2EvTmZjQ29ubmVjdGlvbi5tbQpAQCAtNzcsNyArNzcsNyBAQCBSZWY8TmZjQ29ubmVjdGlvbj4g
TmZjQ29ubmVjdGlvbjo6Y3JlYXRlKFJldGFpblB0cjxORlJlYWRlclNlc3Npb24+JiYgc2Vzc2lv
biwgTgogTmZjQ29ubmVjdGlvbjo6TmZjQ29ubmVjdGlvbihSZXRhaW5QdHI8TkZSZWFkZXJTZXNz
aW9uPiYmIHNlc3Npb24sIE5mY1NlcnZpY2UmIHNlcnZpY2UpCiAgICAgOiBtX3Nlc3Npb24oV1RG
TW92ZShzZXNzaW9uKSkKICAgICAsIG1fZGVsZWdhdGUoYWRvcHROUyhbW1dLTkZSZWFkZXJTZXNz
aW9uRGVsZWdhdGUgYWxsb2NdIGluaXRXaXRoQ29ubmVjdGlvbjoqdGhpc10pKQotICAgICwgbV9z
ZXJ2aWNlKG1ha2VXZWFrUHRyKHNlcnZpY2UpKQorICAgICwgbV9zZXJ2aWNlKHNlcnZpY2UpCiAg
ICAgLCBtX3JldHJ5VGltZXIoUnVuTG9vcDo6bWFpbigpLCB0aGlzLCAmTmZjQ29ubmVjdGlvbjo6
c3RhcnRQb2xsaW5nKQogewogICAgIFttX3Nlc3Npb24gc2V0RGVsZWdhdGU6bV9kZWxlZ2F0ZS5n
ZXQoKV07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJBdXRoZW50aWNh
dGlvbi9Db2NvYS9XS0FTQ0F1dGhvcml6YXRpb25QcmVzZW50ZXJEZWxlZ2F0ZS5tbSBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL0NvY29hL1dLQVNDQXV0aG9yaXph
dGlvblByZXNlbnRlckRlbGVnYXRlLm1tCmluZGV4IGYyOTUwZmUzMDY5MTVmMDFjN2RhYjhiMDI5
MGQ3MGEzZWM3OTAzMTUuLjllMzQyNDU5ZDk3ZDUyNjZmMWYwMmY1ZmNhOGMxZTFiMTkzM2Q5NjIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL0Nv
Y29hL1dLQVNDQXV0aG9yaXphdGlvblByZXNlbnRlckRlbGVnYXRlLm1tCisrKyBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL0NvY29hL1dLQVNDQXV0aG9yaXphdGlv
blByZXNlbnRlckRlbGVnYXRlLm1tCkBAIC00Myw3ICs0Myw3IEBAIEBpbXBsZW1lbnRhdGlvbiBX
S0FTQ0F1dGhvcml6YXRpb25QcmVzZW50ZXJEZWxlZ2F0ZSB7CiAtIChpbnN0YW5jZXR5cGUpaW5p
dFdpdGhDb29yZGluYXRvcjooV2ViS2l0OjpBdXRoZW50aWNhdG9yUHJlc2VudGVyQ29vcmRpbmF0
b3ImKWNvb3JkaW5hdG9yCiB7CiAgICAgaWYgKChzZWxmID0gW3N1cGVyIGluaXRdKSkKLSAgICAg
ICAgX2Nvb3JkaW5hdG9yID0gbWFrZVdlYWtQdHIoY29vcmRpbmF0b3IpOworICAgICAgICBfY29v
cmRpbmF0b3IgPSBjb29yZGluYXRvcjsKICAgICByZXR1cm4gc2VsZjsKIH0KIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViQXV0aGVudGljYXRpb24vQ29jb2EvV0tORlJl
YWRlclNlc3Npb25EZWxlZ2F0ZS5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkF1dGhl
bnRpY2F0aW9uL0NvY29hL1dLTkZSZWFkZXJTZXNzaW9uRGVsZWdhdGUubW0KaW5kZXggYzdjZmNi
NTU4MzJiZDY4YjVmYWIxMDg2NTljYjE4YTRjYWNjYmViMy4uYjMwOWI4MWE3ZTk4NTY4MzI1ZmFj
NTQ3YWZkZjZjZjA4NTQ2ZGY0ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
V2ViQXV0aGVudGljYXRpb24vQ29jb2EvV0tORlJlYWRlclNlc3Npb25EZWxlZ2F0ZS5tbQorKysg
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9Db2NvYS9XS05GUmVh
ZGVyU2Vzc2lvbkRlbGVnYXRlLm1tCkBAIC00MSw3ICs0MSw3IEBAIEBpbXBsZW1lbnRhdGlvbiBX
S05GUmVhZGVyU2Vzc2lvbkRlbGVnYXRlIHsKIC0gKGluc3RhbmNldHlwZSlpbml0V2l0aENvbm5l
Y3Rpb246KFdlYktpdDo6TmZjQ29ubmVjdGlvbiYpY29ubmVjdGlvbgogewogICAgIGlmICgoc2Vs
ZiA9IFtzdXBlciBpbml0XSkpCi0gICAgICAgIF9jb25uZWN0aW9uID0gbWFrZVdlYWtQdHIoY29u
bmVjdGlvbik7CisgICAgICAgIF9jb25uZWN0aW9uID0gY29ubmVjdGlvbjsKICAgICByZXR1cm4g
c2VsZjsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViQXV0aGVu
dGljYXRpb24vQ29jb2EvV2ViQXV0aGVudGljYXRvckNvb3JkaW5hdG9yUHJveHkubW0gYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9Db2NvYS9XZWJBdXRoZW50aWNh
dG9yQ29vcmRpbmF0b3JQcm94eS5tbQppbmRleCBhMmEyOTcxOWJhNzdkZTQ3M2RjM2YyNGE0NGQw
NWEwMmE5ODM3MTVkLi4wYmJkYmYzNmE1NGY5YzViNDE4MDQ2OWVmMDMxMjk5M2U4ODVhNmE4IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9Db2Nv
YS9XZWJBdXRoZW50aWNhdG9yQ29vcmRpbmF0b3JQcm94eS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9Db2NvYS9XZWJBdXRoZW50aWNhdG9yQ29vcmRp
bmF0b3JQcm94eS5tbQpAQCAtMjY0LDcgKzI2NCw3IEBAIHZvaWQgV2ViQXV0aGVudGljYXRvckNv
b3JkaW5hdG9yUHJveHk6OnBlcmZvcm1SZXF1ZXN0KFJldGFpblB0cjxBU0NDcmVkZW50aWFsUmVx
CiAgICAgYXV0byBwcm94eSA9IGFkb3B0TlMoW2FsbG9jQVNDQWdlbnRQcm94eUluc3RhbmNlKCkg
aW5pdF0pOwogCiAgICAgUmV0YWluUHRyPE5TV2luZG93PiB3aW5kb3cgPSBtX3dlYlBhZ2VQcm94
eS5wbGF0Zm9ybVdpbmRvdygpOwotICAgIFtwcm94eSBwZXJmb3JtQXV0aG9yaXphdGlvblJlcXVl
c3RzRm9yQ29udGV4dDpyZXF1ZXN0Q29udGV4dC5nZXQoKSB3aXRoQ2xlYXJhbmNlSGFuZGxlcjpt
YWtlQmxvY2tQdHIoW3dlYWtUaGlzID0gbWFrZVdlYWtQdHIoKnRoaXMpLCBoYW5kbGVyID0gV1RG
TW92ZShoYW5kbGVyKSwgd2luZG93ID0gV1RGTW92ZSh3aW5kb3cpXShOU1hQQ0xpc3RlbmVyRW5k
cG9pbnQgKmRhZW1vbkVucG9pbnQsIE5TRXJyb3IgKmVycm9yKSBtdXRhYmxlIHsKKyAgICBbcHJv
eHkgcGVyZm9ybUF1dGhvcml6YXRpb25SZXF1ZXN0c0ZvckNvbnRleHQ6cmVxdWVzdENvbnRleHQu
Z2V0KCkgd2l0aENsZWFyYW5jZUhhbmRsZXI6bWFrZUJsb2NrUHRyKFt3ZWFrVGhpcyA9IFdlYWtQ
dHIgeyAqdGhpcyB9LCBoYW5kbGVyID0gV1RGTW92ZShoYW5kbGVyKSwgd2luZG93ID0gV1RGTW92
ZSh3aW5kb3cpXShOU1hQQ0xpc3RlbmVyRW5kcG9pbnQgKmRhZW1vbkVucG9pbnQsIE5TRXJyb3Ig
KmVycm9yKSBtdXRhYmxlIHsKICAgICAgICAgYXV0byBwcm90ZWN0ZWRUaGlzID0gd2Vha1RoaXMu
Z2V0KCk7CiAKICAgICAgICAgaWYgKCFwcm90ZWN0ZWRUaGlzIHx8ICFkYWVtb25FbnBvaW50KSB7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9X
ZWJBdXRoZW50aWNhdG9yQ29vcmRpbmF0b3JQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9XZWJBdXRoZW50aWNhdG9yQ29vcmRpbmF0b3JQcm94eS5j
cHAKaW5kZXggOTgyMzdmMTU0NTAxN2U2ZTMzZWUzZWI1MzFiODU1MjZjYTA4MDMwOC4uOTNiMmNk
ZjAxNmNiNWY2YWZjMWVjMzMxMmMxYjg1M2I2YTY1MTFjMCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvV2ViQXV0aGVudGljYXRpb24vV2ViQXV0aGVudGljYXRvckNvb3JkaW5h
dG9yUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0
aW9uL1dlYkF1dGhlbnRpY2F0b3JDb29yZGluYXRvclByb3h5LmNwcApAQCAtNTgsMTIgKzU4LDEy
IEBAIFdlYkF1dGhlbnRpY2F0b3JDb29yZGluYXRvclByb3h5Ojp+V2ViQXV0aGVudGljYXRvckNv
b3JkaW5hdG9yUHJveHkoKQogI2lmICFIQVZFKFVOSUZJRURfQVNDX0FVVEhfVUkpCiB2b2lkIFdl
YkF1dGhlbnRpY2F0b3JDb29yZGluYXRvclByb3h5OjptYWtlQ3JlZGVudGlhbChGcmFtZUlkZW50
aWZpZXIgZnJhbWVJZCwgRnJhbWVJbmZvRGF0YSYmIGZyYW1lSW5mbywgVmVjdG9yPHVpbnQ4X3Q+
JiYgaGFzaCwgUHVibGljS2V5Q3JlZGVudGlhbENyZWF0aW9uT3B0aW9ucyYmIG9wdGlvbnMsIGJv
b2wgcHJvY2Vzc2luZ1VzZXJHZXN0dXJlLCBSZXF1ZXN0Q29tcGxldGlvbkhhbmRsZXImJiBoYW5k
bGVyKQogewotICAgIGhhbmRsZVJlcXVlc3QoeyBXVEZNb3ZlKGhhc2gpLCBXVEZNb3ZlKG9wdGlv
bnMpLCBtYWtlV2Vha1B0cihtX3dlYlBhZ2VQcm94eSksIFdlYkF1dGhlbnRpY2F0aW9uUGFuZWxS
ZXN1bHQ6OlVuYXZhaWxhYmxlLCBudWxscHRyLCBHbG9iYWxGcmFtZUlkZW50aWZpZXIgeyBtX3dl
YlBhZ2VQcm94eS53ZWJQYWdlSUQoKSwgZnJhbWVJZCB9LCBXVEZNb3ZlKGZyYW1lSW5mbyksIHBy
b2Nlc3NpbmdVc2VyR2VzdHVyZSwgU3RyaW5nKCksIG51bGxwdHIgfSwgV1RGTW92ZShoYW5kbGVy
KSk7CisgICAgaGFuZGxlUmVxdWVzdCh7IFdURk1vdmUoaGFzaCksIFdURk1vdmUob3B0aW9ucyks
IG1fd2ViUGFnZVByb3h5LCBXZWJBdXRoZW50aWNhdGlvblBhbmVsUmVzdWx0OjpVbmF2YWlsYWJs
ZSwgbnVsbHB0ciwgR2xvYmFsRnJhbWVJZGVudGlmaWVyIHsgbV93ZWJQYWdlUHJveHkud2ViUGFn
ZUlEKCksIGZyYW1lSWQgfSwgV1RGTW92ZShmcmFtZUluZm8pLCBwcm9jZXNzaW5nVXNlckdlc3R1
cmUsIFN0cmluZygpLCBudWxscHRyIH0sIFdURk1vdmUoaGFuZGxlcikpOwogfQogCiB2b2lkIFdl
YkF1dGhlbnRpY2F0b3JDb29yZGluYXRvclByb3h5OjpnZXRBc3NlcnRpb24oRnJhbWVJZGVudGlm
aWVyIGZyYW1lSWQsIEZyYW1lSW5mb0RhdGEmJiBmcmFtZUluZm8sIFZlY3Rvcjx1aW50OF90PiYm
IGhhc2gsIFB1YmxpY0tleUNyZWRlbnRpYWxSZXF1ZXN0T3B0aW9ucyYmIG9wdGlvbnMsIGJvb2wg
cHJvY2Vzc2luZ1VzZXJHZXN0dXJlLCBSZXF1ZXN0Q29tcGxldGlvbkhhbmRsZXImJiBoYW5kbGVy
KQogewotICAgIGhhbmRsZVJlcXVlc3QoeyBXVEZNb3ZlKGhhc2gpLCBXVEZNb3ZlKG9wdGlvbnMp
LCBtYWtlV2Vha1B0cihtX3dlYlBhZ2VQcm94eSksIFdlYkF1dGhlbnRpY2F0aW9uUGFuZWxSZXN1
bHQ6OlVuYXZhaWxhYmxlLCBudWxscHRyLCBHbG9iYWxGcmFtZUlkZW50aWZpZXIgeyBtX3dlYlBh
Z2VQcm94eS53ZWJQYWdlSUQoKSwgZnJhbWVJZCB9LCBXVEZNb3ZlKGZyYW1lSW5mbyksIHByb2Nl
c3NpbmdVc2VyR2VzdHVyZSwgU3RyaW5nKCksIG51bGxwdHIgfSwgV1RGTW92ZShoYW5kbGVyKSk7
CisgICAgaGFuZGxlUmVxdWVzdCh7IFdURk1vdmUoaGFzaCksIFdURk1vdmUob3B0aW9ucyksIG1f
d2ViUGFnZVByb3h5LCBXZWJBdXRoZW50aWNhdGlvblBhbmVsUmVzdWx0OjpVbmF2YWlsYWJsZSwg
bnVsbHB0ciwgR2xvYmFsRnJhbWVJZGVudGlmaWVyIHsgbV93ZWJQYWdlUHJveHkud2ViUGFnZUlE
KCksIGZyYW1lSWQgfSwgV1RGTW92ZShmcmFtZUluZm8pLCBwcm9jZXNzaW5nVXNlckdlc3R1cmUs
IFN0cmluZygpLCBudWxscHRyIH0sIFdURk1vdmUoaGFuZGxlcikpOwogfQogI2VuZGlmCiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL2ZpZG8v
Rmlkb1NlcnZpY2UuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViQXV0aGVudGljYXRp
b24vZmlkby9GaWRvU2VydmljZS5jcHAKaW5kZXggNDhiOWQyZjA3YWViNmQ1N2E2N2Y3NWM5ZjEx
YzM0NTc5NGQwNjU1Mi4uYTFlNjQ3M2JjYmI5ZWM2MWU5NmRjNTk1MGIzZGZjMWE5MmVmZjNlYyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViQXV0aGVudGljYXRpb24vZmlk
by9GaWRvU2VydmljZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViQXV0aGVu
dGljYXRpb24vZmlkby9GaWRvU2VydmljZS5jcHAKQEAgLTQ5LDcgKzQ5LDcgQEAgRmlkb1NlcnZp
Y2U6OkZpZG9TZXJ2aWNlKE9ic2VydmVyJiBvYnNlcnZlcikKIHZvaWQgRmlkb1NlcnZpY2U6Omdl
dEluZm8oc3RkOjp1bmlxdWVfcHRyPEN0YXBEcml2ZXI+JiYgZHJpdmVyKQogewogICAgIC8vIEdl
dCBhdXRoZW50aWNhdG9yIGluZm8gZnJvbSB0aGUgZGV2aWNlLgotICAgIGRyaXZlci0+dHJhbnNh
Y3QoZW5jb2RlRW1wdHlBdXRoZW50aWNhdG9yUmVxdWVzdChDdGFwUmVxdWVzdENvbW1hbmQ6OmtB
dXRoZW50aWNhdG9yR2V0SW5mbyksIFt3ZWFrVGhpcyA9IFdlYWtQdHIgeyAqdGhpcyB9LCB3ZWFr
RHJpdmVyID0gbWFrZVdlYWtQdHIoKmRyaXZlcildIChWZWN0b3I8dWludDhfdD4mJiByZXNwb25z
ZSkgbXV0YWJsZSB7CisgICAgZHJpdmVyLT50cmFuc2FjdChlbmNvZGVFbXB0eUF1dGhlbnRpY2F0
b3JSZXF1ZXN0KEN0YXBSZXF1ZXN0Q29tbWFuZDo6a0F1dGhlbnRpY2F0b3JHZXRJbmZvKSwgW3dl
YWtUaGlzID0gV2Vha1B0ciB7ICp0aGlzIH0sIHdlYWtEcml2ZXIgPSBXZWFrUHRyIHsgKmRyaXZl
ciB9XSAoVmVjdG9yPHVpbnQ4X3Q+JiYgcmVzcG9uc2UpIG11dGFibGUgewogICAgICAgICBBU1NF
UlQoUnVuTG9vcDo6aXNNYWluKCkpOwogICAgICAgICBpZiAoIXdlYWtUaGlzKQogICAgICAgICAg
ICAgcmV0dXJuOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViQ29udGV4
dE1lbnVMaXN0ZW5lclByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkNvbnRl
eHRNZW51TGlzdGVuZXJQcm94eS5jcHAKaW5kZXggZGM3NDg0ZWNiZDJjYThhOTEwNzU3MmI2Yjhi
OWY1YTgzMjRiNGYwZS4uMmM5ZDc4MTJlNGNiYzM0NzRhZDdiOWIzZDA1ZjhiZDA3ZmE5ZGU1NyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViQ29udGV4dE1lbnVMaXN0ZW5l
clByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJDb250ZXh0TWVudUxp
c3RlbmVyUHJveHkuY3BwCkBAIC0zNCw3ICszNCw3IEBAIG5hbWVzcGFjZSBXZWJLaXQgewogdXNp
bmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAKIFdlYkNvbnRleHRNZW51TGlzdGVuZXJQcm94eTo6V2Vi
Q29udGV4dE1lbnVMaXN0ZW5lclByb3h5KFdlYkNvbnRleHRNZW51TGlzdGVuZXJQcm94eTo6Q2xp
ZW50JiBjbGllbnQpCi0gICAgOiBtX2NsaWVudChtYWtlV2Vha1B0cihjbGllbnQpKQorICAgIDog
bV9jbGllbnQoY2xpZW50KQogewogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9XZWJDb250ZXh0TWVudVByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dl
YkNvbnRleHRNZW51UHJveHkuY3BwCmluZGV4IGNjYmNjNTc0NTUyODdhMjUyZTZjZmU0MzE3YTc3
MjRkYTdjNTI1MTUuLjljZmYzMWZlMTJhNzJlMDNmNmNhM2Q4Mjg0NDhmMmRmN2Q4MzdlYTAgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkNvbnRleHRNZW51UHJveHkuY3Bw
CisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkNvbnRleHRNZW51UHJveHkuY3BwCkBA
IC0zOCw3ICszOCw3IEBAIG5hbWVzcGFjZSBXZWJLaXQgewogV2ViQ29udGV4dE1lbnVQcm94eTo6
V2ViQ29udGV4dE1lbnVQcm94eShXZWJQYWdlUHJveHkmIHBhZ2UsIENvbnRleHRNZW51Q29udGV4
dERhdGEmJiBjb250ZXh0LCBjb25zdCBVc2VyRGF0YSYgdXNlckRhdGEpCiAgICAgOiBtX2NvbnRl
eHQoV1RGTW92ZShjb250ZXh0KSkKICAgICAsIG1fdXNlckRhdGEodXNlckRhdGEpCi0gICAgLCBt
X3BhZ2UobWFrZVdlYWtQdHIocGFnZSkpCisgICAgLCBtX3BhZ2UocGFnZSkKIHsKIH0KIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViQ29va2llTWFuYWdlclByb3h5LmNw
cCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkNvb2tpZU1hbmFnZXJQcm94eS5jcHAKaW5k
ZXggOTMyZDQxMmE5M2UyNWZhNTExNDM1YjdlNTc4ODRiM2UyNmFlOWU5Zi4uNWM1Y2FlYjRhNmI4
MTdmNDg1MDhhMzE3ODI3MjUzNDliYjkxMTBmZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvV2ViQ29va2llTWFuYWdlclByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9XZWJDb29raWVNYW5hZ2VyUHJveHkuY3BwCkBAIC00MCw3ICs0MCw3IEBAIG5hbWVz
cGFjZSBXZWJLaXQgewogdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAKIFdlYkNvb2tpZU1hbmFn
ZXJQcm94eTo6V2ViQ29va2llTWFuYWdlclByb3h5KE5ldHdvcmtQcm9jZXNzUHJveHkmIG5ldHdv
cmtQcm9jZXNzKQotICAgIDogbV9uZXR3b3JrUHJvY2VzcyhtYWtlV2Vha1B0cihuZXR3b3JrUHJv
Y2VzcykpCisgICAgOiBtX25ldHdvcmtQcm9jZXNzKG5ldHdvcmtQcm9jZXNzKQogewogICAgIG5l
dHdvcmtQcm9jZXNzLmFkZE1lc3NhZ2VSZWNlaXZlcihNZXNzYWdlczo6V2ViQ29va2llTWFuYWdl
clByb3h5OjptZXNzYWdlUmVjZWl2ZXJOYW1lKCksICp0aGlzKTsKIH0KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkRhdGFMaXN0U3VnZ2VzdGlvbnNEcm9wZG93bi5jcHAg
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJEYXRhTGlzdFN1Z2dlc3Rpb25zRHJvcGRvd24u
Y3BwCmluZGV4IDgyNDJjZWNlYjM2MzgwMTIyMWVlZGRkMDBlYmMxN2Y1ZTYxN2U2NGIuLmU3ODA1
ODdkNTkxM2M2NDNhYjNiYWEzNTA2OWU1OTYxOWM0MWQ1MWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL1dlYkRhdGFMaXN0U3VnZ2VzdGlvbnNEcm9wZG93bi5jcHAKKysrIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViRGF0YUxpc3RTdWdnZXN0aW9uc0Ryb3Bkb3duLmNw
cApAQCAtMzMsNyArMzMsNyBAQAogbmFtZXNwYWNlIFdlYktpdCB7CiAKIFdlYkRhdGFMaXN0U3Vn
Z2VzdGlvbnNEcm9wZG93bjo6V2ViRGF0YUxpc3RTdWdnZXN0aW9uc0Ryb3Bkb3duKFdlYlBhZ2VQ
cm94eSYgcGFnZSkKLSAgICA6IG1fcGFnZShtYWtlV2Vha1B0cihwYWdlKSkKKyAgICA6IG1fcGFn
ZShwYWdlKQogewogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJE
YXRlVGltZVBpY2tlci5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJEYXRlVGltZVBp
Y2tlci5jcHAKaW5kZXggNGI4YmRjNWM1N2RjZGYxZWIwODI3ZWU1ZGE2NDMxMDNiMGIzZmQwMy4u
OGVkN2ExZWIyNGRmODNlMDQyMWNkMmVhODBmZDFjZTFjZTU2ODdjYSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViRGF0ZVRpbWVQaWNrZXIuY3BwCisrKyBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL1dlYkRhdGVUaW1lUGlja2VyLmNwcApAQCAtMzMsNyArMzMsNyBAQAog
bmFtZXNwYWNlIFdlYktpdCB7CiAKIFdlYkRhdGVUaW1lUGlja2VyOjpXZWJEYXRlVGltZVBpY2tl
cihXZWJQYWdlUHJveHkmIHBhZ2UpCi0gICAgOiBtX3BhZ2UobWFrZVdlYWtQdHIocGFnZSkpCisg
ICAgOiBtX3BhZ2UocGFnZSkKIHsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvV2ViRWRpdENvbW1hbmRQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9X
ZWJFZGl0Q29tbWFuZFByb3h5LmNwcAppbmRleCAwZGJlMGFmYjQzM2YwMjE3MTU5ZTE0NmY0YmMw
ODUzZWQ1MTZmZDg3Li5lYzNjNTUwZDY4M2ViN2UwMzE4NGQ1MzgyMWI3MjMxMDgwMmRjMTdjIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJFZGl0Q29tbWFuZFByb3h5LmNw
cAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJFZGl0Q29tbWFuZFByb3h5LmNwcApA
QCAtMzksNyArMzksNyBAQCB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIFdlYkVkaXRDb21tYW5k
UHJveHk6OldlYkVkaXRDb21tYW5kUHJveHkoV2ViVW5kb1N0ZXBJRCBjb21tYW5kSUQsIGNvbnN0
IFN0cmluZyYgbGFiZWwsIFdlYlBhZ2VQcm94eSYgcGFnZSkKICAgICA6IG1fY29tbWFuZElEKGNv
bW1hbmRJRCkKICAgICAsIG1fbGFiZWwobGFiZWwpCi0gICAgLCBtX3BhZ2UobWFrZVdlYWtQdHIo
cGFnZSkpCisgICAgLCBtX3BhZ2UocGFnZSkKIHsKICAgICBtX3BhZ2UtPmFkZEVkaXRDb21tYW5k
KCp0aGlzKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkZyYW1l
UHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViRnJhbWVQcm94eS5jcHAKaW5k
ZXggZTJjNDc1NzE0NGM3NmUwZDFlZjViYmUyY2FjZjQzMzBjOTgyMTI2YS4uZDQ0YTVkYmU2YTNm
MjY2MzBiMzQ5MTMyNDRlN2U0M2IyYzFmMTYzMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvV2ViRnJhbWVQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
V2ViRnJhbWVQcm94eS5jcHAKQEAgLTQ2LDcgKzQ2LDcgQEAgdXNpbmcgbmFtZXNwYWNlIFdlYkNv
cmU7CiBjbGFzcyBXZWJQYWdlUHJveHk7CiAKIFdlYkZyYW1lUHJveHk6OldlYkZyYW1lUHJveHko
V2ViUGFnZVByb3h5JiBwYWdlLCBGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCkKLSAgICA6IG1fcGFn
ZShtYWtlV2Vha1B0cihwYWdlKSkKKyAgICA6IG1fcGFnZShwYWdlKQogICAgICwgbV9mcmFtZUlE
KGZyYW1lSUQpCiB7CiAgICAgV2ViUHJvY2Vzc1Bvb2w6OnN0YXRpc3RpY3MoKS53a0ZyYW1lQ291
bnQrKzsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5j
cHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCmluZGV4IDdhNWU1
YzQ5OTYyYWEwZjNiM2E5ZGY1MDA0OTk2M2M5ZmM5MzI2N2MuLjcxZmFkZmRlZDZmNGU5ZDBkMzcw
MTkyMjQ0NDhmZGMwMzg3ODcwNmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L1dlYlBhZ2VQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVBy
b3h5LmNwcApAQCAtNDIxLDcgKzQyMSw3IEBAIGNsYXNzIFBhZ2VDbGllbnRQcm90ZWN0b3Igewog
ICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKFBhZ2VDbGllbnRQcm90ZWN0b3IpOwogcHVibGljOgog
ICAgIFBhZ2VDbGllbnRQcm90ZWN0b3IoUGFnZUNsaWVudCYgcGFnZUNsaWVudCkKLSAgICAgICAg
OiBtX3BhZ2VDbGllbnQobWFrZVdlYWtQdHIocGFnZUNsaWVudCkpCisgICAgICAgIDogbV9wYWdl
Q2xpZW50KHBhZ2VDbGllbnQpCiAgICAgewogICAgICAgICBtX3BhZ2VDbGllbnQtPnJlZlZpZXco
KTsKICAgICB9CkBAIC00NjMsNyArNDYzLDcgQEAgUmVmPFdlYlBhZ2VQcm94eT4gV2ViUGFnZVBy
b3h5OjpjcmVhdGUoUGFnZUNsaWVudCYgcGFnZUNsaWVudCwgV2ViUHJvY2Vzc1Byb3h5JgogV2Vi
UGFnZVByb3h5OjpXZWJQYWdlUHJveHkoUGFnZUNsaWVudCYgcGFnZUNsaWVudCwgV2ViUHJvY2Vz
c1Byb3h5JiBwcm9jZXNzLCBSZWY8QVBJOjpQYWdlQ29uZmlndXJhdGlvbj4mJiBjb25maWd1cmF0
aW9uKQogICAgIDogbV9pZGVudGlmaWVyKElkZW50aWZpZXI6OmdlbmVyYXRlKCkpCiAgICAgLCBt
X3dlYlBhZ2VJRChQYWdlSWRlbnRpZmllcjo6Z2VuZXJhdGUoKSkKLSAgICAsIG1fcGFnZUNsaWVu
dChtYWtlV2Vha1B0cihwYWdlQ2xpZW50KSkKKyAgICAsIG1fcGFnZUNsaWVudChwYWdlQ2xpZW50
KQogICAgICwgbV9jb25maWd1cmF0aW9uKFdURk1vdmUoY29uZmlndXJhdGlvbikpCiAgICAgLCBt
X25hdmlnYXRpb25DbGllbnQobWFrZVVuaXF1ZVJlZjxBUEk6Ok5hdmlnYXRpb25DbGllbnQ+KCkp
CiAgICAgLCBtX2hpc3RvcnlDbGllbnQobWFrZVVuaXF1ZVJlZjxBUEk6Okhpc3RvcnlDbGllbnQ+
KCkpCkBAIC05MTMsNyArOTEzLDcgQEAgYm9vbCBXZWJQYWdlUHJveHk6OnN1c3BlbmRDdXJyZW50
UGFnZUlmUG9zc2libGUoQVBJOjpOYXZpZ2F0aW9uJiBuYXZpZ2F0aW9uLCBzdGQKIAogICAgIExP
RyhQcm9jZXNzU3dhcHBpbmcsICJXZWJQYWdlUHJveHkgJSIgUFJJdTY0ICIgY3JlYXRlZCBzdXNw
ZW5kZWQgcGFnZSAlcyBmb3IgcHJvY2VzcyBwaWQgJWksIGJhY2svZm9yd2FyZCBpdGVtICVzIiBQ
Ukl1NjQsIGlkZW50aWZpZXIoKS50b1VJbnQ2NCgpLCBzdXNwZW5kZWRQYWdlLT5sb2dnaW5nU3Ry
aW5nKCksIG1fcHJvY2Vzcy0+cHJvY2Vzc0lkZW50aWZpZXIoKSwgZnJvbUl0ZW0gPyBmcm9tSXRl
bS0+aXRlbUlEKCkubG9nU3RyaW5nKCkgOiAwKTsKIAotICAgIG1fbGFzdFN1c3BlbmRlZFBhZ2Ug
PSBtYWtlV2Vha1B0cigqc3VzcGVuZGVkUGFnZSk7CisgICAgbV9sYXN0U3VzcGVuZGVkUGFnZSA9
ICpzdXNwZW5kZWRQYWdlOwogCiAgICAgaWYgKGZyb21JdGVtICYmIHNob3VsZFVzZUJhY2tGb3J3
YXJkQ2FjaGUoKSkKICAgICAgICAgYmFja0ZvcndhcmRDYWNoZSgpLmFkZEVudHJ5KCpmcm9tSXRl
bSwgV1RGTW92ZShzdXNwZW5kZWRQYWdlKSk7CkBAIC0xMDU4Myw3ICsxMDU4Myw3IEBAIFdlYkNv
bnRlbnRNb2RlIFdlYlBhZ2VQcm94eTo6ZWZmZWN0aXZlQ29udGVudE1vZGVBZnRlckFkanVzdGlu
Z1BvbGljaWVzKEFQSTo6V2ViCiAKIHZvaWQgV2ViUGFnZVByb3h5OjphZGRPYnNlcnZlcihXZWJW
aWV3RGlkTW92ZVRvV2luZG93T2JzZXJ2ZXImIG9ic2VydmVyKQogewotICAgIGF1dG8gcmVzdWx0
ID0gbV93ZWJWaWV3RGlkTW92ZVRvV2luZG93T2JzZXJ2ZXJzLmFkZCgmb2JzZXJ2ZXIsIG1ha2VX
ZWFrUHRyKG9ic2VydmVyKSk7CisgICAgYXV0byByZXN1bHQgPSBtX3dlYlZpZXdEaWRNb3ZlVG9X
aW5kb3dPYnNlcnZlcnMuYWRkKCZvYnNlcnZlciwgb2JzZXJ2ZXIpOwogICAgIEFTU0VSVF9VTlVT
RUQocmVzdWx0LCByZXN1bHQuaXNOZXdFbnRyeSk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL1dlYlByb2Nlc3NQb29sLmNwcAppbmRleCA4NTY5OGY1YmY4MzBlYjk0N2I1OWE3MjJlOTE2
OGY1MjcyMjkyMDk3Li5jZTk4MWRkODcwMTc3YTA5MzdiYjAwNjgxYjJmOThkZjU3YTlhZjkzIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5jcHAKKysr
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuY3BwCkBAIC00NjgsNyAr
NDY4LDcgQEAgdm9pZCBXZWJQcm9jZXNzUG9vbDo6Z2V0R1BVUHJvY2Vzc0Nvbm5lY3Rpb24oV2Vi
UHJvY2Vzc1Byb3h5JiB3ZWJQcm9jZXNzUHJveHksIEcKICNpZiBFTkFCTEUoSVBDX1RFU1RJTkdf
QVBJKQogICAgIHBhcmFtZXRlcnMuaWdub3JlSW52YWxpZE1lc3NhZ2VGb3JUZXN0aW5nID0gd2Vi
UHJvY2Vzc1Byb3h5Lmlnbm9yZUludmFsaWRNZXNzYWdlRm9yVGVzdGluZygpOwogI2VuZGlmCi0g
ICAgZW5zdXJlR1BVUHJvY2VzcygpLmdldEdQVVByb2Nlc3NDb25uZWN0aW9uKHdlYlByb2Nlc3NQ
cm94eSwgcGFyYW1ldGVycywgW3RoaXMsIHdlYWtUaGlzID0gV2Vha1B0ciB7ICp0aGlzIH0sIHBh
cmFtZXRlcnMsIHdlYlByb2Nlc3NQcm94eSA9IG1ha2VXZWFrUHRyKHdlYlByb2Nlc3NQcm94eSks
IHJlcGx5ID0gV1RGTW92ZShyZXBseSldIChhdXRvJiBjb25uZWN0aW9uSW5mbykgbXV0YWJsZSB7
CisgICAgZW5zdXJlR1BVUHJvY2VzcygpLmdldEdQVVByb2Nlc3NDb25uZWN0aW9uKHdlYlByb2Nl
c3NQcm94eSwgcGFyYW1ldGVycywgW3RoaXMsIHdlYWtUaGlzID0gV2Vha1B0ciB7ICp0aGlzIH0s
IHBhcmFtZXRlcnMsIHdlYlByb2Nlc3NQcm94eSA9IFdlYWtQdHIgeyB3ZWJQcm9jZXNzUHJveHkg
fSwgcmVwbHkgPSBXVEZNb3ZlKHJlcGx5KV0gKGF1dG8mIGNvbm5lY3Rpb25JbmZvKSBtdXRhYmxl
IHsKICAgICAgICAgaWYgKFVOTElLRUxZKCFJUEM6OkNvbm5lY3Rpb246OmlkZW50aWZpZXJJc1Zh
bGlkKGNvbm5lY3Rpb25JbmZvLmlkZW50aWZpZXIoKSkpKSB7CiAgICAgICAgICAgICAvLyBSZXRy
eSBvbiB0aGUgbmV4dCBSdW5Mb29wIGl0ZXJhdGlvbiBiZWNhdXNlIHdlIG1heSBiZSBpbnNpZGUg
dGhlIFdlYlByb2Nlc3NQb29sIGRlc3RydWN0b3IuCiAgICAgICAgICAgICBSdW5Mb29wOjptYWlu
KCkuZGlzcGF0Y2goW3RoaXMsIHdlYWtUaGlzID0gV1RGTW92ZSh3ZWFrVGhpcyksIHdlYlByb2Nl
c3NQcm94eSA9IFdURk1vdmUod2ViUHJvY2Vzc1Byb3h5KSwgcGFyYW1ldGVycyA9IFdURk1vdmUo
cGFyYW1ldGVycyksIHJlcGx5ID0gV1RGTW92ZShyZXBseSldICgpIG11dGFibGUgewpAQCAtNDg4
LDcgKzQ4OCw3IEBAIHZvaWQgV2ViUHJvY2Vzc1Bvb2w6OmdldEdQVVByb2Nlc3NDb25uZWN0aW9u
KFdlYlByb2Nlc3NQcm94eSYgd2ViUHJvY2Vzc1Byb3h5LCBHCiAjaWYgRU5BQkxFKFdFQl9BVVRI
TikKIHZvaWQgV2ViUHJvY2Vzc1Bvb2w6OmdldFdlYkF1dGhuUHJvY2Vzc0Nvbm5lY3Rpb24oV2Vi
UHJvY2Vzc1Byb3h5JiB3ZWJQcm9jZXNzUHJveHksIE1lc3NhZ2VzOjpXZWJQcm9jZXNzUHJveHk6
OkdldFdlYkF1dGhuUHJvY2Vzc0Nvbm5lY3Rpb246OkRlbGF5ZWRSZXBseSYmIHJlcGx5KQogewot
ICAgIFdlYkF1dGhuUHJvY2Vzc1Byb3h5OjpzaW5nbGV0b24oKS5nZXRXZWJBdXRoblByb2Nlc3ND
b25uZWN0aW9uKHdlYlByb2Nlc3NQcm94eSwgW3RoaXMsIHdlYWtUaGlzID0gV2Vha1B0ciB7ICp0
aGlzIH0sIHdlYlByb2Nlc3NQcm94eSA9IG1ha2VXZWFrUHRyKHdlYlByb2Nlc3NQcm94eSksIHJl
cGx5ID0gV1RGTW92ZShyZXBseSldIChhdXRvJiBjb25uZWN0aW9uSW5mbykgbXV0YWJsZSB7Cisg
ICAgV2ViQXV0aG5Qcm9jZXNzUHJveHk6OnNpbmdsZXRvbigpLmdldFdlYkF1dGhuUHJvY2Vzc0Nv
bm5lY3Rpb24od2ViUHJvY2Vzc1Byb3h5LCBbdGhpcywgd2Vha1RoaXMgPSBXZWFrUHRyIHsgKnRo
aXMgfSwgd2ViUHJvY2Vzc1Byb3h5ID0gV2Vha1B0ciB7IHdlYlByb2Nlc3NQcm94eSB9LCByZXBs
eSA9IFdURk1vdmUocmVwbHkpXSAoYXV0byYgY29ubmVjdGlvbkluZm8pIG11dGFibGUgewogICAg
ICAgICBpZiAoVU5MSUtFTFkoIUlQQzo6Q29ubmVjdGlvbjo6aWRlbnRpZmllcklzVmFsaWQoY29u
bmVjdGlvbkluZm8uaWRlbnRpZmllcigpKSAmJiB3ZWJQcm9jZXNzUHJveHkgJiYgd2Vha1RoaXMp
KSB7CiAgICAgICAgICAgICBXRUJQUk9DRVNTUE9PTF9SRUxFQVNFX0xPR19FUlJPUihQcm9jZXNz
LCAiZ2V0V2ViQXV0aG5Qcm9jZXNzQ29ubmVjdGlvbjogRmFpbGVkIGZpcnN0IGF0dGVtcHQsIHJl
dHJ5aW5nIik7CiAgICAgICAgICAgICBXZWJBdXRoblByb2Nlc3NQcm94eTo6c2luZ2xldG9uKCku
Z2V0V2ViQXV0aG5Qcm9jZXNzQ29ubmVjdGlvbigqd2ViUHJvY2Vzc1Byb3h5LCBXVEZNb3ZlKHJl
cGx5KSk7CkBAIC04NTQsNyArODU0LDcgQEAgdm9pZCBXZWJQcm9jZXNzUG9vbDo6aW5pdGlhbGl6
ZU5ld1dlYlByb2Nlc3MoV2ViUHJvY2Vzc1Byb3h5JiBwcm9jZXNzLCBXZWJzaXRlRGEKIAogICAg
IGlmIChpc1ByZXdhcm1lZCA9PSBXZWJQcm9jZXNzUHJveHk6OklzUHJld2FybWVkOjpZZXMpIHsK
ICAgICAgICAgQVNTRVJUKCFtX3ByZXdhcm1lZFByb2Nlc3MpOwotICAgICAgICBtX3ByZXdhcm1l
ZFByb2Nlc3MgPSBtYWtlV2Vha1B0cihwcm9jZXNzKTsKKyAgICAgICAgbV9wcmV3YXJtZWRQcm9j
ZXNzID0gcHJvY2VzczsKICAgICB9CiAKICNpZiBQTEFURk9STShJT1NfRkFNSUxZKSAmJiAhUExB
VEZPUk0oTUFDQ0FUQUxZU1QpCkBAIC0xMDY3LDcgKzEwNjcsNyBAQCBSZWY8V2ViUGFnZVByb3h5
PiBXZWJQcm9jZXNzUG9vbDo6Y3JlYXRlV2ViUGFnZShQYWdlQ2xpZW50JiBwYWdlQ2xpZW50LCBS
ZWY8QVBJOgogICAgICAgICBwcm9jZXNzID0gZHVtbXlQcm9jZXNzUHJveHkocGFnZUNvbmZpZ3Vy
YXRpb24tPndlYnNpdGVEYXRhU3RvcmUoKS0+c2Vzc2lvbklEKCkpOwogICAgICAgICBpZiAoIXBy
b2Nlc3MpIHsKICAgICAgICAgICAgIHByb2Nlc3MgPSBXZWJQcm9jZXNzUHJveHk6OmNyZWF0ZSgq
dGhpcywgcGFnZUNvbmZpZ3VyYXRpb24tPndlYnNpdGVEYXRhU3RvcmUoKSwgV2ViUHJvY2Vzc1By
b3h5OjpJc1ByZXdhcm1lZDo6Tm8sIENyb3NzT3JpZ2luTW9kZTo6U2hhcmVkLCBXZWJQcm9jZXNz
UHJveHk6OlNob3VsZExhdW5jaFByb2Nlc3M6Ok5vKTsKLSAgICAgICAgICAgIG1fZHVtbXlQcm9j
ZXNzUHJveGllcy5hZGQocGFnZUNvbmZpZ3VyYXRpb24tPndlYnNpdGVEYXRhU3RvcmUoKS0+c2Vz
c2lvbklEKCksIG1ha2VXZWFrUHRyKCpwcm9jZXNzKSk7CisgICAgICAgICAgICBtX2R1bW15UHJv
Y2Vzc1Byb3hpZXMuYWRkKHBhZ2VDb25maWd1cmF0aW9uLT53ZWJzaXRlRGF0YVN0b3JlKCktPnNl
c3Npb25JRCgpLCAqcHJvY2Vzcyk7CiAgICAgICAgICAgICBtX3Byb2Nlc3Nlcy5hcHBlbmQoKnBy
b2Nlc3MpOwogICAgICAgICB9CiAgICAgfSBlbHNlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
V2ViUHJvY2Vzc1Byb3h5LmNwcAppbmRleCA5MjUzNzFhNDc1ODdkNTI1MDZhNDU5MTY3NWY2ZTM5
Yzc4Nzg3YmFmLi41YzU5NjZlY2NiOWU4YTJjYTAyYzFhMjg5ZTFiODE4MjBkNzNkOTJjIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuY3BwCisrKyBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5jcHAKQEAgLTkzOSw3ICs5
MzksNyBAQCB2b2lkIFdlYlByb2Nlc3NQcm94eTo6cHJvY2Vzc0RpZFRlcm1pbmF0ZU9yRmFpbGVk
VG9MYXVuY2goUHJvY2Vzc1Rlcm1pbmF0aW9uUmVhcwogICAgICAgICB3ZWJDb25uZWN0aW9uLT5k
aWRDbG9zZSgpOwogCiAgICAgYXV0byBwYWdlcyA9IGNvcHlUb1ZlY3Rvck9mPFJlZlB0cjxXZWJQ
YWdlUHJveHk+PihtX3BhZ2VNYXAudmFsdWVzKCkpOwotICAgIGF1dG8gcHJvdmlzaW9uYWxQYWdl
cyA9IFdURjo6bWFwKG1fcHJvdmlzaW9uYWxQYWdlcywgW10oYXV0byogcHJvdmlzaW9uYWxQYWdl
KSB7IHJldHVybiBtYWtlV2Vha1B0cihwcm92aXNpb25hbFBhZ2UpOyB9KTsKKyAgICBhdXRvIHBy
b3Zpc2lvbmFsUGFnZXMgPSBXVEY6Om1hcChtX3Byb3Zpc2lvbmFsUGFnZXMsIFtdKGF1dG8qIHBy
b3Zpc2lvbmFsUGFnZSkgeyByZXR1cm4gV2Vha1B0ciB7IHByb3Zpc2lvbmFsUGFnZSB9OyB9KTsK
IAogICAgIGF1dG8gaXNSZXNwb25zaXZlQ2FsbGJhY2tzID0gc3RkOjpleGNoYW5nZShtX2lzUmVz
cG9uc2l2ZUNhbGxiYWNrcywgeyB9KTsKICAgICBmb3IgKGF1dG8mIGNhbGxiYWNrIDogaXNSZXNw
b25zaXZlQ2FsbGJhY2tzKQpAQCAtMTc5MSw3ICsxNzkxLDcgQEAgdm9pZCBXZWJQcm9jZXNzUHJv
eHk6OmNyZWF0ZVNwZWVjaFJlY29nbml0aW9uU2VydmVyKFNwZWVjaFJlY29nbml0aW9uU2VydmVy
SWRlbnQKICAgICBNRVNTQUdFX0NIRUNLKCFtX3NwZWVjaFJlY29nbml0aW9uU2VydmVyTWFwLmNv
bnRhaW5zKGlkZW50aWZpZXIpKTsKIAogICAgIGF1dG8mIHNwZWVjaFJlY29nbml0aW9uU2VydmVy
ID0gbV9zcGVlY2hSZWNvZ25pdGlvblNlcnZlck1hcC5hZGQoaWRlbnRpZmllciwgbnVsbHB0ciku
aXRlcmF0b3ItPnZhbHVlOwotICAgIGF1dG8gcGVybWlzc2lvbkNoZWNrZXIgPSBbd2Vha1BhZ2Ug
PSBtYWtlV2Vha1B0cih0YXJnZXRQYWdlKV0oYXV0byYgcmVxdWVzdCwgYXV0byYmIGNvbXBsZXRp
b25IYW5kbGVyKSBtdXRhYmxlIHsKKyAgICBhdXRvIHBlcm1pc3Npb25DaGVja2VyID0gW3dlYWtQ
YWdlID0gV2Vha1B0ciB7IHRhcmdldFBhZ2UgfV0oYXV0byYgcmVxdWVzdCwgYXV0byYmIGNvbXBs
ZXRpb25IYW5kbGVyKSBtdXRhYmxlIHsKICAgICAgICAgaWYgKCF3ZWFrUGFnZSkgewogICAgICAg
ICAgICAgY29tcGxldGlvbkhhbmRsZXIoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25FcnJvciB7
IFNwZWVjaFJlY29nbml0aW9uRXJyb3JUeXBlOjpOb3RBbGxvd2VkLCAiUGFnZSBubyBsb25nZXIg
ZXhpc3RzIl9zIH0pOwogICAgICAgICAgICAgcmV0dXJuOwpAQCAtMTc5OSwxMiArMTc5OSwxMiBA
QCB2b2lkIFdlYlByb2Nlc3NQcm94eTo6Y3JlYXRlU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXIoU3Bl
ZWNoUmVjb2duaXRpb25TZXJ2ZXJJZGVudAogCiAgICAgICAgIHdlYWtQYWdlLT5yZXF1ZXN0U3Bl
ZWNoUmVjb2duaXRpb25QZXJtaXNzaW9uKHJlcXVlc3QsIFdURk1vdmUoY29tcGxldGlvbkhhbmRs
ZXIpKTsKICAgICB9OwotICAgIGF1dG8gY2hlY2tJZk1vY2tDYXB0dXJlRGV2aWNlc0VuYWJsZWQg
PSBbd2Vha1BhZ2UgPSBtYWtlV2Vha1B0cih0YXJnZXRQYWdlKV0oKSB7CisgICAgYXV0byBjaGVj
a0lmTW9ja0NhcHR1cmVEZXZpY2VzRW5hYmxlZCA9IFt3ZWFrUGFnZSA9IFdlYWtQdHIgeyB0YXJn
ZXRQYWdlIH1dKCkgewogICAgICAgICByZXR1cm4gd2Vha1BhZ2UgJiYgd2Vha1BhZ2UtPnByZWZl
cmVuY2VzKCkubW9ja0NhcHR1cmVEZXZpY2VzRW5hYmxlZCgpOwogICAgIH07CiAKICNpZiBFTkFC
TEUoTUVESUFfU1RSRUFNKQotICAgIGF1dG8gY3JlYXRlUmVhbHRpbWVNZWRpYVNvdXJjZSA9IFt3
ZWFrUGFnZSA9IG1ha2VXZWFrUHRyKHRhcmdldFBhZ2UpXSgpIHsKKyAgICBhdXRvIGNyZWF0ZVJl
YWx0aW1lTWVkaWFTb3VyY2UgPSBbd2Vha1BhZ2UgPSBXZWFrUHRyIHsgdGFyZ2V0UGFnZSB9XSgp
IHsKICAgICAgICAgcmV0dXJuIHdlYWtQYWdlID8gd2Vha1BhZ2UtPmNyZWF0ZVJlYWx0aW1lTWVk
aWFTb3VyY2VGb3JTcGVlY2hSZWNvZ25pdGlvbigpIDogQ2FwdHVyZVNvdXJjZU9yRXJyb3IgeyAi
UGFnZSBpcyBpbnZhbGlkIiB9OwogICAgIH07CiAgICAgc3BlZWNoUmVjb2duaXRpb25TZXJ2ZXIg
PSBtYWtlVW5pcXVlPFNwZWVjaFJlY29nbml0aW9uU2VydmVyPigqY29ubmVjdGlvbigpLCBpZGVu
dGlmaWVyLCBXVEZNb3ZlKHBlcm1pc3Npb25DaGVja2VyKSwgV1RGTW92ZShjaGVja0lmTW9ja0Nh
cHR1cmVEZXZpY2VzRW5hYmxlZCksIFdURk1vdmUoY3JlYXRlUmVhbHRpbWVNZWRpYVNvdXJjZSkp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5Lmgg
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuaAppbmRleCBlMzlkNGFm
ODY1M2JkNzg0YTA5MGMxMzZlODBlMGM1N2I3NDc0OWY1Li4xMzk1MTdiZGIyNGI1NGM0OGVkZmJi
ZWIwMTNkZTkyOWE1ZjE0ZWY2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9X
ZWJQcm9jZXNzUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNz
UHJveHkuaApAQCAtNTUxLDcgKzU1MSw3IEBAIHByaXZhdGU6CiAgICAgcHVibGljOgogICAgICAg
ICBXZWFrT3JTdHJvbmdQdHIoVCYgb2JqZWN0LCBJc1dlYWsgaXNXZWFrKQogICAgICAgICAgICAg
OiBtX2lzV2Vhayhpc1dlYWspCi0gICAgICAgICAgICAsIG1fd2Vha09iamVjdChtYWtlV2Vha1B0
cihvYmplY3QpKQorICAgICAgICAgICAgLCBtX3dlYWtPYmplY3Qob2JqZWN0KQogICAgICAgICB7
CiAgICAgICAgICAgICB1cGRhdGVTdHJvbmdSZWZlcmVuY2UoKTsKICAgICAgICAgfQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9y
ZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0
b3JlLmNwcAppbmRleCBjOWU2ZTExM2U5ZGUzN2U5Yzg1MzA1NjM3NTVhN2M5YWEyZmEzNzYxLi4x
ZDU1MDc5ZDIxNDZiODI3Y2Q0MjgzOTRmMDIzNzNhZWJlN2U4MjlkIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlLmNwcAorKysg
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlLmNw
cApAQCAtMTc0Niw3ICsxNzQ2LDcgQEAgdm9pZCBXZWJzaXRlRGF0YVN0b3JlOjpyZW1vdmVNZWRp
YUtleXMoY29uc3QgU3RyaW5nJiBtZWRpYUtleXNTdG9yYWdlRGlyZWN0b3J5LAogdm9pZCBXZWJz
aXRlRGF0YVN0b3JlOjpnZXROZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24oV2ViUHJvY2Vzc1Byb3h5
JiB3ZWJQcm9jZXNzUHJveHksIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoY29uc3QgTmV0d29ya1By
b2Nlc3NDb25uZWN0aW9uSW5mbyYpPiYmIHJlcGx5LCBTaG91bGRSZXRyeU9uRmFpbHVyZSBzaG91
bGRSZXRyeU9uRmFpbHVyZSkKIHsKICAgICBhdXRvJiBuZXR3b3JrUHJvY2Vzc1Byb3h5ID0gbmV0
d29ya1Byb2Nlc3MoKTsKLSAgICBuZXR3b3JrUHJvY2Vzc1Byb3h5LmdldE5ldHdvcmtQcm9jZXNz
Q29ubmVjdGlvbih3ZWJQcm9jZXNzUHJveHksIFt3ZWFrVGhpcyA9IFdlYWtQdHIgeyAqdGhpcyB9
LCBuZXR3b3JrUHJvY2Vzc1Byb3h5ID0gbWFrZVdlYWtQdHIobmV0d29ya1Byb2Nlc3NQcm94eSks
IHdlYlByb2Nlc3NQcm94eSA9IG1ha2VXZWFrUHRyKHdlYlByb2Nlc3NQcm94eSksIHJlcGx5ID0g
V1RGTW92ZShyZXBseSksIHNob3VsZFJldHJ5T25GYWlsdXJlXSAoYXV0byYgY29ubmVjdGlvbklu
Zm8pIG11dGFibGUgeworICAgIG5ldHdvcmtQcm9jZXNzUHJveHkuZ2V0TmV0d29ya1Byb2Nlc3ND
b25uZWN0aW9uKHdlYlByb2Nlc3NQcm94eSwgW3dlYWtUaGlzID0gV2Vha1B0ciB7ICp0aGlzIH0s
IG5ldHdvcmtQcm9jZXNzUHJveHkgPSBXZWFrUHRyIHsgbmV0d29ya1Byb2Nlc3NQcm94eSB9LCB3
ZWJQcm9jZXNzUHJveHkgPSBXZWFrUHRyIHsgd2ViUHJvY2Vzc1Byb3h5IH0sIHJlcGx5ID0gV1RG
TW92ZShyZXBseSksIHNob3VsZFJldHJ5T25GYWlsdXJlXSAoYXV0byYgY29ubmVjdGlvbkluZm8p
IG11dGFibGUgewogICAgICAgICBpZiAoVU5MSUtFTFkoIUlQQzo6Q29ubmVjdGlvbjo6aWRlbnRp
ZmllcklzVmFsaWQoY29ubmVjdGlvbkluZm8uaWRlbnRpZmllcigpKSkpIHsKICAgICAgICAgICAg
IGF1dG8gbG9nRXJyb3IgPSBbbmV0d29ya1Byb2Nlc3NQcm94eSwgd2ViUHJvY2Vzc1Byb3h5XSgp
IHsKICNpZiBPUyhEQVJXSU4pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9n
dGsvV2F5bGFuZENvbXBvc2l0b3IuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvZ3RrL1dh
eWxhbmRDb21wb3NpdG9yLmNwcAppbmRleCBiMzRkMTNiODY1YzUwMjIyN2VjYWEwNzgzZGYxMGMy
ZjUwMzg5YWU0Li4xMTA4YWFlNzc4YTg0ZGNjMTc2NDRiYzlkOTM5NWU0MzZkOTFkYmY1IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9ndGsvV2F5bGFuZENvbXBvc2l0b3IuY3Bw
CisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2d0ay9XYXlsYW5kQ29tcG9zaXRvci5jcHAK
QEAgLTIzMyw3ICsyMzMsNyBAQCB2b2lkIFdheWxhbmRDb21wb3NpdG9yOjpTdXJmYWNlOjphdHRh
Y2hCdWZmZXIoc3RydWN0IHdsX3Jlc291cmNlKiBidWZmZXIpCiAKICAgICBpZiAoYnVmZmVyKSB7
CiAgICAgICAgIGF1dG8qIGNvbXBvc2l0b3JCdWZmZXIgPSBXYXlsYW5kQ29tcG9zaXRvcjo6QnVm
ZmVyOjpnZXRPckNyZWF0ZShidWZmZXIpOwotICAgICAgICBtX3BlbmRpbmdCdWZmZXIgPSBtYWtl
V2Vha1B0cigqY29tcG9zaXRvckJ1ZmZlcik7CisgICAgICAgIG1fcGVuZGluZ0J1ZmZlciA9ICpj
b21wb3NpdG9yQnVmZmVyOwogICAgIH0KIH0KIApAQCAtNTcxLDcgKzU3MSw3IEBAIHZvaWQgV2F5
bGFuZENvbXBvc2l0b3I6OmJpbmRTdXJmYWNlVG9XZWJQYWdlKFdheWxhbmRDb21wb3NpdG9yOjpT
dXJmYWNlKiBzdXJmYWNlCiAKICAgICB1bmJpbmRXZWJQYWdlKCp3ZWJQYWdlKTsKICAgICBzdXJm
YWNlLT5zZXRXZWJQYWdlKHdlYlBhZ2UpOwotICAgIG1fcGFnZU1hcC5zZXQod2ViUGFnZSwgbWFr
ZVdlYWtQdHIoKnN1cmZhY2UpKTsKKyAgICBtX3BhZ2VNYXAuc2V0KHdlYlBhZ2UsICpzdXJmYWNl
KTsKIH0KIAogdm9pZCBXYXlsYW5kQ29tcG9zaXRvcjo6YmluZFdlYlBhZ2UoV2ViUGFnZVByb3h5
JiB3ZWJQYWdlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1Byb2Nl
c3NBc3NlcnRpb25JT1MubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvUHJvY2Vzc0Fz
c2VydGlvbklPUy5tbQppbmRleCAxMThiYmIzNmJjODdmMzNhYTFlYTI4ZDFjZjRiZDhmOGU2ODFk
OTRhLi41ZTNiOTBiMzMyMDcxZWVhZDI0OTMzZGVmOWY4ZmFiNGU5ZGVlZWVmIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvUHJvY2Vzc0Fzc2VydGlvbklPUy5tbQorKysg
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvUHJvY2Vzc0Fzc2VydGlvbklPUy5tbQpAQCAt
MTI2LDcgKzEyNiw3IEBAIC0gKHZvaWQpX25vdGlmeUFzc2VydGlvbnNPZkltbWluZW50U3VzcGVu
c2lvbgogCiAgICAgVmVjdG9yPFdlYWtQdHI8UHJvY2Vzc0FuZFVJQXNzZXJ0aW9uPj4gYXNzZXJ0
aW9uc05lZWRpbmdCYWNrZ3JvdW5kVGFzazsKICAgICBmb3IgKGF1dG8mIGFzc2VydGlvbiA6IF9h
c3NlcnRpb25zTmVlZGluZ0JhY2tncm91bmRUYXNrKQotICAgICAgICBhc3NlcnRpb25zTmVlZGlu
Z0JhY2tncm91bmRUYXNrLmFwcGVuZChtYWtlV2Vha1B0cihhc3NlcnRpb24pKTsKKyAgICAgICAg
YXNzZXJ0aW9uc05lZWRpbmdCYWNrZ3JvdW5kVGFzay5hcHBlbmQoYXNzZXJ0aW9uKTsKIAogICAg
IC8vIE5vdGUgdGhhdCB3ZSBkb24ndCBleHBlY3QgY2xpZW50cyB0byByZWdpc3RlciBuZXcgYXNz
ZXJ0aW9ucyB3aGVuIGdldHRpbmcgbm90aWZpZWQgdGhhdCB0aGUgVUkgYXNzZXJ0aW9uIHdpbGwg
ZXhwaXJlIGltbWluZW50bHkuCiAgICAgLy8gSWYgY2xpZW50cyB3ZXJlIHRvIGRvIHNvLCB0aGVu
IHRob3NlIG5ldyBhc3NlcnRpb25zIHdvdWxkIG5vdCBnZXQgbm90aWZpZWQgb2YgdGhlIGltbWlu
ZW50IHN1c3BlbnNpb24uCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3Mv
V2ViRGF0YUxpc3RTdWdnZXN0aW9uc0Ryb3Bkb3duSU9TLm1tIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvaW9zL1dlYkRhdGFMaXN0U3VnZ2VzdGlvbnNEcm9wZG93bklPUy5tbQppbmRleCA3NWI3
ZmE3NWYyYzYxNjUzY2Y5YzRjYmZhZDAwYWJjMGU0NDMwZjdjLi5lZjZkZjY1OGNkMjkwM2E1ZjNm
NmE3MDJhYmJjZmI1ZDJmNGY3ZDMxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9pb3MvV2ViRGF0YUxpc3RTdWdnZXN0aW9uc0Ryb3Bkb3duSU9TLm1tCisrKyBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL2lvcy9XZWJEYXRhTGlzdFN1Z2dlc3Rpb25zRHJvcGRvd25JT1MubW0K
QEAgLTE3Myw3ICsxNzMsNyBAQCAtICh2b2lkKXVwZGF0ZVdpdGhJbmZvcm1hdGlvbjooV2ViQ29y
ZTo6RGF0YUxpc3RTdWdnZXN0aW9uSW5mb3JtYXRpb24mJilpbmZvcm1hdAogCiAtICh2b2lkKXNo
b3dTdWdnZXN0aW9uc0Ryb3Bkb3duOihXZWJLaXQ6OldlYkRhdGFMaXN0U3VnZ2VzdGlvbnNEcm9w
ZG93bklPUyYpZHJvcGRvd24gYWN0aXZhdGlvblR5cGU6KFdlYkNvcmU6OkRhdGFMaXN0U3VnZ2Vz
dGlvbkFjdGl2YXRpb25UeXBlKWFjdGl2YXRpb25UeXBlCiB7Ci0gICAgX2Ryb3Bkb3duID0gbWFr
ZVdlYWtQdHIoZHJvcGRvd24pOworICAgIF9kcm9wZG93biA9IGRyb3Bkb3duOwogfQogCiAtICh2
b2lkKWRpZFNlbGVjdE9wdGlvbkF0SW5kZXg6KE5TSW50ZWdlcilpbmRleApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFjL1BhZ2VDbGllbnRJbXBsTWFjLm1tIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvbWFjL1BhZ2VDbGllbnRJbXBsTWFjLm1tCmluZGV4IGE4NTU3NTMw
ZjBjNjVlM2E0ZjlmYzJlMGU2MmE1MjZhNTc4NDk0ZDAuLjdmMTU2ZGRlZmFjZjcxMGRmNDU3ODZh
YzY1ZGE4OTQ0ZjA5ZDEyZDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL21h
Yy9QYWdlQ2xpZW50SW1wbE1hYy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMv
UGFnZUNsaWVudEltcGxNYWMubW0KQEAgLTExNyw3ICsxMTcsNyBAQCBQYWdlQ2xpZW50SW1wbDo6
flBhZ2VDbGllbnRJbXBsKCkgPSBkZWZhdWx0OwogCiB2b2lkIFBhZ2VDbGllbnRJbXBsOjpzZXRJ
bXBsKFdlYlZpZXdJbXBsJiBpbXBsKQogewotICAgIG1faW1wbCA9IG1ha2VXZWFrUHRyKGltcGwp
OworICAgIG1faW1wbCA9IGltcGw7CiB9CiAKIHN0ZDo6dW5pcXVlX3B0cjxEcmF3aW5nQXJlYVBy
b3h5PiBQYWdlQ2xpZW50SW1wbDo6Y3JlYXRlRHJhd2luZ0FyZWFQcm94eShXZWJQcm9jZXNzUHJv
eHkmIHByb2Nlc3MpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMvV0tS
ZXZlYWxJdGVtUHJlc2VudGVyLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFjL1dLUmV2
ZWFsSXRlbVByZXNlbnRlci5tbQppbmRleCAwZmU0MTRkOThkZTljZjk2ZjQ4NGRlMzc1OWNkMmI2
MmQwNmRkZDdhLi4wZjUxZmQ4ZWJiMDEwOTVjYWE4NTc0NzNkNGY0NWVmZTAxOGU1MWVhIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMvV0tSZXZlYWxJdGVtUHJlc2VudGVy
Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9XS1JldmVhbEl0ZW1QcmVzZW50
ZXIubW0KQEAgLTUzLDcgKzUzLDcgQEAgLSAoaW5zdGFuY2V0eXBlKWluaXRXaXRoV2ViVmlld0lt
cGw6KGNvbnN0IFdlYktpdDo6V2ViVmlld0ltcGwmKWltcGwgaXRlbTooUlZJdGUKICAgICBpZiAo
IShzZWxmID0gW3N1cGVyIGluaXRdKSkKICAgICAgICAgcmV0dXJuIG5pbDsKIAotICAgIF9pbXBs
ID0gbWFrZVdlYWtQdHIoaW1wbCk7CisgICAgX2ltcGwgPSBpbXBsOwogICAgIF9wcmVzZW50ZXIg
PSBhZG9wdE5TKFtQQUw6OmFsbG9jUlZQcmVzZW50ZXJJbnN0YW5jZSgpIGluaXRdKTsKICAgICBf
cHJlc2VudGluZ0NvbnRleHQgPSBhZG9wdE5TKFtQQUw6OmFsbG9jUlZQcmVzZW50aW5nQ29udGV4
dEluc3RhbmNlKCkgaW5pdFdpdGhQb2ludGVyTG9jYXRpb25JblZpZXc6bWVudUxvY2F0aW9uSW5W
aWV3IGluVmlldzppbXBsLnZpZXcoKSBoaWdobGlnaHREZWxlZ2F0ZTpzZWxmXSk7CiAgICAgX2l0
ZW0gPSBpdGVtOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFjL1dlYkNv
bnRleHRNZW51UHJveHlNYWMubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMvV2ViQ29u
dGV4dE1lbnVQcm94eU1hYy5tbQppbmRleCA3NzkyYjBmMjJkN2Q1ZjVlNWNiNzIzZWFmYmVmZTQ4
Yjk4MzA4NGM4Li4zNDU0NTE5OGVlZmUxMGZjN2QyZWM5ZWI0YWQwYWRmNDAzNTQ0MGM2IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMvV2ViQ29udGV4dE1lbnVQcm94eU1h
Yy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMvV2ViQ29udGV4dE1lbnVQcm94
eU1hYy5tbQpAQCAtNTM3LDcgKzUzNyw3IEBAIHZvaWQgV2ViQ29udGV4dE1lbnVQcm94eU1hYzo6
Z2V0Q29udGV4dE1lbnVGcm9tSXRlbXMoY29uc3QgVmVjdG9yPFdlYkNvbnRleHRNZW51CiAgICAg
YXV0byBpbWFnZUJpdG1hcCA9IG1fY29udGV4dC53ZWJIaXRUZXN0UmVzdWx0RGF0YSgpLmltYWdl
Qml0bWFwOwogCiAgICAgYXV0byBzcGFyc2VNZW51SXRlbXMgPSByZXRhaW5QdHIoW05TUG9pbnRl
ckFycmF5IHN0cm9uZ09iamVjdHNQb2ludGVyQXJyYXldKTsKLSAgICBhdXRvIGluc2VydE1lbnVJ
dGVtID0gbWFrZUJsb2NrUHRyKFtwcm90ZWN0ZWRUaGlzID0gUmVmIHsgKnRoaXMgfSwgd2Vha1Bh
Z2UgPSBtYWtlV2Vha1B0cihwYWdlKCkpLCBpbWFnZVVSTCA9IFdURk1vdmUoaW1hZ2VVUkwpLCBp
bWFnZUJpdG1hcCA9IFdURk1vdmUoaW1hZ2VCaXRtYXApLCBzaG91bGRVcGRhdGVRdWlja0xvb2tJ
dGVtVGl0bGUsIHF1aWNrTG9va0l0ZW1Ub0luc2VydElmTmVlZGVkID0gV1RGTW92ZShxdWlja0xv
b2tJdGVtVG9JbnNlcnRJZk5lZWRlZCksIGNvbXBsZXRpb25IYW5kbGVyID0gV1RGTW92ZShjb21w
bGV0aW9uSGFuZGxlciksIGl0ZW1zUmVtYWluaW5nID0gZmlsdGVyZWRJdGVtcy5zaXplKCksIG1l
bnUgPSBXVEZNb3ZlKG1lbnUpLCBzcGFyc2VNZW51SXRlbXNdKE5TTWVudUl0ZW0gKml0ZW0sIE5T
VUludGVnZXIgaW5kZXgpIG11dGFibGUgeworICAgIGF1dG8gaW5zZXJ0TWVudUl0ZW0gPSBtYWtl
QmxvY2tQdHIoW3Byb3RlY3RlZFRoaXMgPSBSZWYgeyAqdGhpcyB9LCB3ZWFrUGFnZSA9IFdlYWtQ
dHIgeyBwYWdlKCkgfSwgaW1hZ2VVUkwgPSBXVEZNb3ZlKGltYWdlVVJMKSwgaW1hZ2VCaXRtYXAg
PSBXVEZNb3ZlKGltYWdlQml0bWFwKSwgc2hvdWxkVXBkYXRlUXVpY2tMb29rSXRlbVRpdGxlLCBx
dWlja0xvb2tJdGVtVG9JbnNlcnRJZk5lZWRlZCA9IFdURk1vdmUocXVpY2tMb29rSXRlbVRvSW5z
ZXJ0SWZOZWVkZWQpLCBjb21wbGV0aW9uSGFuZGxlciA9IFdURk1vdmUoY29tcGxldGlvbkhhbmRs
ZXIpLCBpdGVtc1JlbWFpbmluZyA9IGZpbHRlcmVkSXRlbXMuc2l6ZSgpLCBtZW51ID0gV1RGTW92
ZShtZW51KSwgc3BhcnNlTWVudUl0ZW1zXShOU01lbnVJdGVtICppdGVtLCBOU1VJbnRlZ2VyIGlu
ZGV4KSBtdXRhYmxlIHsKICAgICAgICAgQVNTRVJUKGluZGV4IDwgW3NwYXJzZU1lbnVJdGVtcyBj
b3VudF0pOwogICAgICAgICBBU1NFUlQoIVtzcGFyc2VNZW51SXRlbXMgcG9pbnRlckF0SW5kZXg6
aW5kZXhdKTsKICAgICAgICAgW3NwYXJzZU1lbnVJdGVtcyByZXBsYWNlUG9pbnRlckF0SW5kZXg6
aW5kZXggd2l0aFBvaW50ZXI6aXRlbV07CkBAIC01ODUsNyArNTg1LDcgQEAgdm9pZCBXZWJDb250
ZXh0TWVudVByb3h5TWFjOjppbnNlcnRPclVwZGF0ZVF1aWNrTG9va0ltYWdlSXRlbShjb25zdCBV
UkwmIGltYWdlVVIKICAgICB9CiAKICAgICBpZiAoc2hvdWxkVXBkYXRlUXVpY2tMb29rSXRlbVRp
dGxlKSB7Ci0gICAgICAgIHBhZ2UtPmNvbXB1dGVIYXNJbWFnZUFuYWx5c2lzUmVzdWx0cyhpbWFn
ZVVSTCwgaW1hZ2VCaXRtYXAuZ2V0KCksIEltYWdlQW5hbHlzaXNUeXBlOjpWaXN1YWxTZWFyY2gs
IFt3ZWFrVGhpcyA9IFdlYWtQdHIgeyAqdGhpcyB9LCB3ZWFrUGFnZSA9IG1ha2VXZWFrUHRyKHBh
Z2UuZ2V0KCkpLCBpbWFnZVVSTCwgaW1hZ2VCaXRtYXAgPSBXVEZNb3ZlKGltYWdlQml0bWFwKV0g
KGJvb2wgaGFzVmlzdWFsU2VhcmNoUmVzdWx0cykgbXV0YWJsZSB7CisgICAgICAgIHBhZ2UtPmNv
bXB1dGVIYXNJbWFnZUFuYWx5c2lzUmVzdWx0cyhpbWFnZVVSTCwgaW1hZ2VCaXRtYXAuZ2V0KCks
IEltYWdlQW5hbHlzaXNUeXBlOjpWaXN1YWxTZWFyY2gsIFt3ZWFrVGhpcyA9IFdlYWtQdHIgeyAq
dGhpcyB9LCB3ZWFrUGFnZSA9IFdlYWtQdHIgeyBwYWdlIH0sIGltYWdlVVJMLCBpbWFnZUJpdG1h
cCA9IFdURk1vdmUoaW1hZ2VCaXRtYXApXSAoYm9vbCBoYXNWaXN1YWxTZWFyY2hSZXN1bHRzKSBt
dXRhYmxlIHsKICAgICAgICAgICAgIFJlZlB0ciBwcm90ZWN0ZWRUaGlzIHsgd2Vha1RoaXMuZ2V0
KCkgfTsKICAgICAgICAgICAgIGlmICghcHJvdGVjdGVkVGhpcykKICAgICAgICAgICAgICAgICBy
ZXR1cm47CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMvV2ViRGF0YUxp
c3RTdWdnZXN0aW9uc0Ryb3Bkb3duTWFjLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFj
L1dlYkRhdGFMaXN0U3VnZ2VzdGlvbnNEcm9wZG93bk1hYy5tbQppbmRleCBkMWE0MGFlMDk1ZWJm
YmNhOTEyMDk3MWFhOTQ5Yzc5NTRkNTM4ODA5Li44ZjM1Y2JmNjAyYjYzNDc2NmEwMDFiNGNlOGQy
NmUzZDNlMWZmNjgyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMvV2Vi
RGF0YUxpc3RTdWdnZXN0aW9uc0Ryb3Bkb3duTWFjLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL21hYy9XZWJEYXRhTGlzdFN1Z2dlc3Rpb25zRHJvcGRvd25NYWMubW0KQEAgLTQ1NSw3
ICs0NTUsNyBAQCAtIChOU1JlY3QpZHJvcGRvd25SZWN0Rm9yRWxlbWVudFJlY3Q6KGNvbnN0IFdl
YkNvcmU6OkludFJlY3QmKXJlY3QKIAogLSAodm9pZClzaG93U3VnZ2VzdGlvbnNEcm9wZG93bjoo
V2ViS2l0OjpXZWJEYXRhTGlzdFN1Z2dlc3Rpb25zRHJvcGRvd25NYWMmKWRyb3Bkb3duCiB7Ci0g
ICAgX2Ryb3Bkb3duID0gbWFrZVdlYWtQdHIoZHJvcGRvd24pOworICAgIF9kcm9wZG93biA9IGRy
b3Bkb3duOwogICAgIFtbX2VuY2xvc2luZ1dpbmRvdyBjb250ZW50Vmlld10gYWRkU3Vidmlldzpf
c2Nyb2xsVmlldy5nZXQoKV07CiAgICAgW190YWJsZSByZWxvYWRdOwogICAgIFtbX3ByZXNlbnRp
bmdWaWV3IHdpbmRvd10gYWRkQ2hpbGRXaW5kb3c6X2VuY2xvc2luZ1dpbmRvdy5nZXQoKSBvcmRl
cmVkOk5TV2luZG93QWJvdmVdOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
bWFjL1dlYkRhdGVUaW1lUGlja2VyTWFjLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFj
L1dlYkRhdGVUaW1lUGlja2VyTWFjLm1tCmluZGV4IDdiNWNhODJhYjNkNmQ3MDVlZGE4NjkyN2Vj
MzUyYmI3MzJjZTkzNDUuLjJhNDIzM2YzZjc5MDAzODAxZjYyYzkyNWQyNTQ1MjdhNjhjNDZhMzgg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9XZWJEYXRlVGltZVBpY2tl
ck1hYy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMvV2ViRGF0ZVRpbWVQaWNr
ZXJNYWMubW0KQEAgLTIyOCw3ICsyMjgsNyBAQCAtIChpZClpbml0V2l0aFBhcmFtczooV2ViQ29y
ZTo6RGF0ZVRpbWVDaG9vc2VyUGFyYW1ldGVycyYmKXBhcmFtcyBpblZpZXc6KE5TVmlldwogCiAt
ICh2b2lkKXNob3dQaWNrZXI6KFdlYktpdDo6V2ViRGF0ZVRpbWVQaWNrZXJNYWMmKXBpY2tlcgog
ewotICAgIF9waWNrZXIgPSBtYWtlV2Vha1B0cihwaWNrZXIpOworICAgIF9waWNrZXIgPSBwaWNr
ZXI7CiAKICAgICBbW19lbmNsb3NpbmdXaW5kb3cgY29udGVudFZpZXddIGFkZFN1YnZpZXc6X2Rh
dGVQaWNrZXIuZ2V0KCldOwogICAgIFtbX3ByZXNlbnRpbmdWaWV3IHdpbmRvd10gYWRkQ2hpbGRX
aW5kb3c6X2VuY2xvc2luZ1dpbmRvdy5nZXQoKSBvcmRlcmVkOk5TV2luZG93QWJvdmVdOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0F1dG9tYXRpb24vV2ViQXV0b21hdGlv
bkRPTVdpbmRvd09ic2VydmVyLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9BdXRvbWF0
aW9uL1dlYkF1dG9tYXRpb25ET01XaW5kb3dPYnNlcnZlci5jcHAKaW5kZXggYzAyOThmMTJhY2U4
YmE4NGQwYThjNWI3MzFiNzI0MWIyMjcxN2Y3OC4uODZlMDdhMDQ2MDQzYzFiMTM5YjI1YWNhNDFi
MzdiZTJhMzViYjI1MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0F1dG9t
YXRpb24vV2ViQXV0b21hdGlvbkRPTVdpbmRvd09ic2VydmVyLmNwcAorKysgYi9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvQXV0b21hdGlvbi9XZWJBdXRvbWF0aW9uRE9NV2luZG93T2JzZXJ2ZXIu
Y3BwCkBAIC0zMiw3ICszMiw3IEBACiBuYW1lc3BhY2UgV2ViS2l0IHsKIAogV2ViQXV0b21hdGlv
bkRPTVdpbmRvd09ic2VydmVyOjpXZWJBdXRvbWF0aW9uRE9NV2luZG93T2JzZXJ2ZXIoV2ViQ29y
ZTo6RE9NV2luZG93JiB3aW5kb3csIFdURjo6RnVuY3Rpb248dm9pZChXZWJBdXRvbWF0aW9uRE9N
V2luZG93T2JzZXJ2ZXImKT4mJiBjYWxsYmFjaykKLSAgICA6IG1fd2luZG93KG1ha2VXZWFrUHRy
KHdpbmRvdykpCisgICAgOiBtX3dpbmRvdyh3aW5kb3cpCiAgICAgLCBtX2NhbGxiYWNrKFdURk1v
dmUoY2FsbGJhY2spKQogewogICAgIEFTU0VSVChtX3dpbmRvdy0+ZnJhbWUoKSk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90ZURpc3BsYXlM
aXN0UmVjb3JkZXJQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBo
aWNzL1JlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXJQcm94eS5jcHAKaW5kZXggYTIzOWVkMjE5YmU3
OWZmMzZiYTY3ODBhYmJiNDJmNzBkM2Q3YzY5NS4uNmM5MTRkODA4MjVkNWUwZmFhYzhiN2E0OGEy
NDgzOWFlN2FkMWIzMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9n
cmFwaGljcy9SZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyUHJveHkuY3BwCisrKyBiL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlclBy
b3h5LmNwcApAQCAtNDUsOCArNDUsOCBAQCB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIFJlbW90
ZURpc3BsYXlMaXN0UmVjb3JkZXJQcm94eTo6UmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlclByb3h5
KEltYWdlQnVmZmVyJiBpbWFnZUJ1ZmZlciwgUmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5JiBy
ZW5kZXJpbmdCYWNrZW5kLCBjb25zdCBGbG9hdFJlY3QmIGluaXRpYWxDbGlwLCBjb25zdCBBZmZp
bmVUcmFuc2Zvcm0mIGluaXRpYWxDVE0sIERyYXdHbHlwaHNSZWNvcmRlcjo6RGVjb25zdHJ1Y3RE
cmF3R2x5cGhzIGRlY29uc3RydWN0RHJhd0dseXBocykKICAgICA6IERpc3BsYXlMaXN0OjpSZWNv
cmRlcih7IH0sIGluaXRpYWxDbGlwLCBpbml0aWFsQ1RNLCBkZWNvbnN0cnVjdERyYXdHbHlwaHMp
CiAgICAgLCBtX2Rlc3RpbmF0aW9uQnVmZmVySWRlbnRpZmllcihpbWFnZUJ1ZmZlci5yZW5kZXJp
bmdSZXNvdXJjZUlkZW50aWZpZXIoKSkKLSAgICAsIG1faW1hZ2VCdWZmZXIobWFrZVdlYWtQdHIo
aW1hZ2VCdWZmZXIpKQotICAgICwgbV9yZW5kZXJpbmdCYWNrZW5kKG1ha2VXZWFrUHRyKHJlbmRl
cmluZ0JhY2tlbmQpKQorICAgICwgbV9pbWFnZUJ1ZmZlcihpbWFnZUJ1ZmZlcikKKyAgICAsIG1f
cmVuZGVyaW5nQmFja2VuZChyZW5kZXJpbmdCYWNrZW5kKQogewogfQogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90ZUltYWdlQnVmZmVyUHJv
eHkuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3RlSW1hZ2VC
dWZmZXJQcm94eS5oCmluZGV4IDJiYTkzNjk5YThjY2ExM2FiNzFiYTZhYTQ0ZDBmNDg3ZjViMzU0
YTYuLjY5MzRiYjQ2MTZjZTAwYmVhYjE0MGJhYTk0MTA5YjZiYTk1ZjNjMjQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3RlSW1hZ2VCdWZmZXJQ
cm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3Rl
SW1hZ2VCdWZmZXJQcm94eS5oCkBAIC05OCw3ICs5OCw3IEBAIHB1YmxpYzoKIHByb3RlY3RlZDoK
ICAgICBSZW1vdGVJbWFnZUJ1ZmZlclByb3h5KGNvbnN0IFdlYkNvcmU6OkltYWdlQnVmZmVyQmFj
a2VuZDo6UGFyYW1ldGVycyYgcGFyYW1ldGVycywgUmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5
JiByZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHkpCiAgICAgICAgIDogQmFzZUNvbmNyZXRlSW1h
Z2VCdWZmZXIocGFyYW1ldGVycykKLSAgICAgICAgLCBtX3JlbW90ZVJlbmRlcmluZ0JhY2tlbmRQ
cm94eShtYWtlV2Vha1B0cihyZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHkpKQorICAgICAgICAs
IG1fcmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5KHJlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94
eSkKICAgICAgICAgLCBtX3JlbW90ZURpc3BsYXlMaXN0KCp0aGlzLCByZW1vdGVSZW5kZXJpbmdC
YWNrZW5kUHJveHksIHsgeyB9LCBCYXNlQ29uY3JldGVJbWFnZUJ1ZmZlcjo6bG9naWNhbFNpemUo
KSB9LCBCYXNlQ29uY3JldGVJbWFnZUJ1ZmZlcjo6YmFzZVRyYW5zZm9ybSgpKQogICAgIHsKICAg
ICAgICAgQVNTRVJUKG1fcmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5KTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFj
a2VuZFByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVt
b3RlUmVuZGVyaW5nQmFja2VuZFByb3h5LmNwcAppbmRleCBkOTgyMWFjNTdhNzc3ZDA0Y2I5NTQ3
ZmI0MzcyZDQ3MDg1ZWYyNmU4Li4yOGJiMjQ0ODE2ODE5M2VlZTdkY2FjZWIzODFhOGYzZGUwOGRh
MWFmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1Jl
bW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHkuY3BwCkBAIC03OCw3
ICs3OCw3IEBAIEdQVVByb2Nlc3NDb25uZWN0aW9uJiBSZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJv
eHk6OmVuc3VyZUdQVVByb2Nlc3NDb25uZWN0aW9uKCkKICAgICAgICAgc3RhdGljIGNvbnN0ZXhw
ciBhdXRvIGNvbm5lY3Rpb25CdWZmZXJTaXplID0gMSA8PCAyMTsKICAgICAgICAgbV9zdHJlYW1D
b25uZWN0aW9uID0gbWFrZVVuaXF1ZTxJUEM6OlN0cmVhbUNsaWVudENvbm5lY3Rpb24+KGdwdVBy
b2Nlc3NDb25uZWN0aW9uLmNvbm5lY3Rpb24oKSwgY29ubmVjdGlvbkJ1ZmZlclNpemUpOwogICAg
ICAgICBncHVQcm9jZXNzQ29ubmVjdGlvbi5jb25uZWN0aW9uKCkuc2VuZChNZXNzYWdlczo6R1BV
Q29ubmVjdGlvblRvV2ViUHJvY2Vzczo6Q3JlYXRlUmVuZGVyaW5nQmFja2VuZChtX3BhcmFtZXRl
cnMsIG1fc3RyZWFtQ29ubmVjdGlvbi0+c3RyZWFtQnVmZmVyKCkpLCAwLCBJUEM6OlNlbmRPcHRp
b246OkRpc3BhdGNoTWVzc2FnZUV2ZW5XaGVuV2FpdGluZ0ZvclN5bmNSZXBseSk7Ci0gICAgICAg
IG1fZ3B1UHJvY2Vzc0Nvbm5lY3Rpb24gPSBtYWtlV2Vha1B0cihncHVQcm9jZXNzQ29ubmVjdGlv
bik7CisgICAgICAgIG1fZ3B1UHJvY2Vzc0Nvbm5lY3Rpb24gPSBncHVQcm9jZXNzQ29ubmVjdGlv
bjsKICAgICB9CiAgICAgcmV0dXJuICptX2dwdVByb2Nlc3NDb25uZWN0aW9uOwogfQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVSZXNvdXJj
ZUNhY2hlUHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9S
ZW1vdGVSZXNvdXJjZUNhY2hlUHJveHkuY3BwCmluZGV4IDQxMTcwNGQ3MzUxMDVmYjUxY2E5NTUy
NThlZWViODk3OTNhYzQ1NmMuLjE3MDRlNWMzODIxMzllMTgzNzM2NzdlZWNhYjNjMTY4NDg0YmM4
MWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVt
b3RlUmVzb3VyY2VDYWNoZVByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
R1BVL2dyYXBoaWNzL1JlbW90ZVJlc291cmNlQ2FjaGVQcm94eS5jcHAKQEAgLTQ2LDcgKzQ2LDcg
QEAgUmVtb3RlUmVzb3VyY2VDYWNoZVByb3h5Ojp+UmVtb3RlUmVzb3VyY2VDYWNoZVByb3h5KCkK
IAogdm9pZCBSZW1vdGVSZXNvdXJjZUNhY2hlUHJveHk6OmNhY2hlSW1hZ2VCdWZmZXIoV2ViQ29y
ZTo6SW1hZ2VCdWZmZXImIGltYWdlQnVmZmVyKQogewotICAgIGF1dG8gYWRkUmVzdWx0ID0gbV9p
bWFnZUJ1ZmZlcnMuYWRkKGltYWdlQnVmZmVyLnJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllcigp
LCBJbWFnZUJ1ZmZlclN0YXRlIHsgbWFrZVdlYWtQdHIoaW1hZ2VCdWZmZXIpLCAwIH0pOworICAg
IGF1dG8gYWRkUmVzdWx0ID0gbV9pbWFnZUJ1ZmZlcnMuYWRkKGltYWdlQnVmZmVyLnJlbmRlcmlu
Z1Jlc291cmNlSWRlbnRpZmllcigpLCBJbWFnZUJ1ZmZlclN0YXRlIHsgaW1hZ2VCdWZmZXIsIDAg
fSk7CiAgICAgQVNTRVJUX1VOVVNFRChhZGRSZXN1bHQsIGFkZFJlc3VsdC5pc05ld0VudHJ5KTsK
IH0KIApAQCAtMTA5LDcgKzEwOSw3IEBAIHZvaWQgUmVtb3RlUmVzb3VyY2VDYWNoZVByb3h5Ojpy
ZWNvcmROYXRpdmVJbWFnZVVzZShOYXRpdmVJbWFnZSYgaW1hZ2UpCiAgICAgaWYgKGhhbmRsZS5p
c051bGwoKSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgbV9uYXRpdmVJbWFnZXMuYWRkKGltYWdl
LnJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllcigpLCBOYXRpdmVJbWFnZVN0YXRlIHsgbWFrZVdl
YWtQdHIoaW1hZ2UpLCAxIH0pOworICAgIG1fbmF0aXZlSW1hZ2VzLmFkZChpbWFnZS5yZW5kZXJp
bmdSZXNvdXJjZUlkZW50aWZpZXIoKSwgTmF0aXZlSW1hZ2VTdGF0ZSB7IGltYWdlLCAxIH0pOwog
CiAgICAgLy8gU2V0IGl0c2VsZiBhcyBhbiBvYnNlcnZlciB0byBOYXRpdmVJbWFnZSwgc28gcmVs
ZWFzZU5hdGl2ZUltYWdlKCkKICAgICAvLyBnZXRzIGNhbGxlZCB3aGVuIE5hdGl2ZUltYWdlIGlz
IGJlaW5nIGRlbGVsZXRlZC4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9H
UFUvbWVkaWEvQXVkaW9UcmFja1ByaXZhdGVSZW1vdGUuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL0dQVS9tZWRpYS9BdWRpb1RyYWNrUHJpdmF0ZVJlbW90ZS5jcHAKaW5kZXggMWNkMjk2
NzQ0Y2Q0YTYzNjBkNzhmOWQyMzdiMTFkMzU4NDdjZjBkMy4uMzVlODVmNmQ2YjY0YjQ1NWVlNDVj
ZTJkZTQ2OGMzMGIwNjc3N2I3ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L0dQVS9tZWRpYS9BdWRpb1RyYWNrUHJpdmF0ZVJlbW90ZS5jcHAKKysrIGIvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9BdWRpb1RyYWNrUHJpdmF0ZVJlbW90ZS5jcHAKQEAgLTM3
LDcgKzM3LDcgQEAKIG5hbWVzcGFjZSBXZWJLaXQgewogCiBBdWRpb1RyYWNrUHJpdmF0ZVJlbW90
ZTo6QXVkaW9UcmFja1ByaXZhdGVSZW1vdGUoR1BVUHJvY2Vzc0Nvbm5lY3Rpb24mIGdwdVByb2Nl
c3NDb25uZWN0aW9uLCBXZWJDb3JlOjpNZWRpYVBsYXllcklkZW50aWZpZXIgcGxheWVySWRlbnRp
ZmllciwgVHJhY2tQcml2YXRlUmVtb3RlSWRlbnRpZmllciBpZGVuZGlmaWVyLCBUcmFja1ByaXZh
dGVSZW1vdGVDb25maWd1cmF0aW9uJiYgY29uZmlndXJhdGlvbikKLSAgICA6IG1fZ3B1UHJvY2Vz
c0Nvbm5lY3Rpb24obWFrZVdlYWtQdHIoZ3B1UHJvY2Vzc0Nvbm5lY3Rpb24pKQorICAgIDogbV9n
cHVQcm9jZXNzQ29ubmVjdGlvbihncHVQcm9jZXNzQ29ubmVjdGlvbikKICAgICAsIG1fcGxheWVy
SWRlbnRpZmllcihwbGF5ZXJJZGVudGlmaWVyKQogICAgICwgbV9pZGVuZGlmaWVyKGlkZW5kaWZp
ZXIpCiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL01l
ZGlhUGxheWVyUHJpdmF0ZVJlbW90ZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BV
L21lZGlhL01lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZS5jcHAKaW5kZXggMDJmNzQ4OWI1MGY1MGRm
ZTBiNzFiMGFmYjVjNjViNzQwMGMwMGJlNS4uZmRmOTZjNTZjNDkxYmIwNjRhYjcyZWMwN2ZlOGU2
ZmY1MTk1ZWM1YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRp
YS9NZWRpYVBsYXllclByaXZhdGVSZW1vdGUuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9HUFUvbWVkaWEvTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlLmNwcApAQCAtMTEwLDcgKzEx
MCw3IEBAIE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTo6TWVkaWFQbGF5ZXJQcml2YXRlUmVtb3Rl
KE1lZGlhUGxheWVyKiBwbGF5ZXIsIE1lZGlhUGxhCiAgICAgLCBtX2xvZ0lkZW50aWZpZXIocGxh
eWVyLT5tZWRpYVBsYXllckxvZ0lkZW50aWZpZXIoKSkKICAgICAsCiAjZW5kaWYKLSAgICAgIG1f
cGxheWVyKG1ha2VXZWFrUHRyKCpwbGF5ZXIpKQorICAgICAgbV9wbGF5ZXIoKnBsYXllcikKICAg
ICAsIG1fbWVkaWFSZXNvdXJjZUxvYWRlcigqcGxheWVyLT5jcmVhdGVSZXNvdXJjZUxvYWRlcigp
KQogI2lmIFBMQVRGT1JNKENPQ09BKQogICAgICwgbV92aWRlb0xheWVyTWFuYWdlcihtYWtlVW5p
cXVlUmVmPFZpZGVvTGF5ZXJNYW5hZ2VyT2JqQz4obG9nZ2VyKCksIGxvZ0lkZW50aWZpZXIoKSkp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL01lZGlhU291
cmNlUHJpdmF0ZVJlbW90ZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlh
L01lZGlhU291cmNlUHJpdmF0ZVJlbW90ZS5jcHAKaW5kZXggMzY1MGJiZGFkM2Q3ZDJmYmViNjUx
MzVjN2QzNmVlMjNhMWVkMDkyZC4uNmEyMGQ3NTBhNDk0NGZiMzhkYTc0ODI4OTcwOWYyMDU1YzU2
NDBkMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9NZWRp
YVNvdXJjZVByaXZhdGVSZW1vdGUuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9H
UFUvbWVkaWEvTWVkaWFTb3VyY2VQcml2YXRlUmVtb3RlLmNwcApAQCAtNTQsMTAgKzU0LDEwIEBA
IFJlZjxNZWRpYVNvdXJjZVByaXZhdGVSZW1vdGU+IE1lZGlhU291cmNlUHJpdmF0ZVJlbW90ZTo6
Y3JlYXRlKEdQVVByb2Nlc3NDb25uZWN0CiB9CiAKIE1lZGlhU291cmNlUHJpdmF0ZVJlbW90ZTo6
TWVkaWFTb3VyY2VQcml2YXRlUmVtb3RlKEdQVVByb2Nlc3NDb25uZWN0aW9uJiBncHVQcm9jZXNz
Q29ubmVjdGlvbiwgUmVtb3RlTWVkaWFTb3VyY2VJZGVudGlmaWVyIGlkZW50aWZpZXIsIFJlbW90
ZU1lZGlhUGxheWVyTUlNRVR5cGVDYWNoZSYgbWltZVR5cGVDYWNoZSwgY29uc3QgTWVkaWFQbGF5
ZXJQcml2YXRlUmVtb3RlJiBtZWRpYVBsYXllclByaXZhdGUsIE1lZGlhU291cmNlUHJpdmF0ZUNs
aWVudCogY2xpZW50KQotICAgIDogbV9ncHVQcm9jZXNzQ29ubmVjdGlvbihtYWtlV2Vha1B0cihn
cHVQcm9jZXNzQ29ubmVjdGlvbikpCisgICAgOiBtX2dwdVByb2Nlc3NDb25uZWN0aW9uKGdwdVBy
b2Nlc3NDb25uZWN0aW9uKQogICAgICwgbV9pZGVudGlmaWVyKGlkZW50aWZpZXIpCiAgICAgLCBt
X21pbWVUeXBlQ2FjaGUobWltZVR5cGVDYWNoZSkKLSAgICAsIG1fbWVkaWFQbGF5ZXJQcml2YXRl
KG1ha2VXZWFrUHRyKG1lZGlhUGxheWVyUHJpdmF0ZSkpCisgICAgLCBtX21lZGlhUGxheWVyUHJp
dmF0ZShtZWRpYVBsYXllclByaXZhdGUpCiAgICAgLCBtX2NsaWVudChjbGllbnQpCiAjaWYgIVJF
TEVBU0VfTE9HX0RJU0FCTEVECiAgICAgLCBtX2xvZ2dlcihtX21lZGlhUGxheWVyUHJpdmF0ZS0+
bWVkaWFQbGF5ZXJMb2dnZXIoKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9HUFUvbWVkaWEvUmVtb3RlQXVkaW9EZXN0aW5hdGlvblByb3h5LmNwcCBiL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlQXVkaW9EZXN0aW5hdGlvblByb3h5LmNwcApp
bmRleCA3NzQwZGE0NWVhNjJmMWIyN2VkZDA2MWQxNTNjNzY3Nzk0ODNkNTkwLi44YWFkYTJmMDZj
MmM5NmZjNjBlN2I2YzNmY2M3OGJkZjQ0N2E3ZGNmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZUF1ZGlvRGVzdGluYXRpb25Qcm94eS5jcHAKKysr
IGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVBdWRpb0Rlc3RpbmF0
aW9uUHJveHkuY3BwCkBAIC0xMDEsNyArMTAxLDcgQEAgdm9pZCBSZW1vdGVBdWRpb0Rlc3RpbmF0
aW9uUHJveHk6OnN0b3BSZW5kZXJpbmdUaHJlYWQoKQogSVBDOjpDb25uZWN0aW9uKiBSZW1vdGVB
dWRpb0Rlc3RpbmF0aW9uUHJveHk6OmNvbm5lY3Rpb24oKQogewogICAgIGlmICghbV9ncHVQcm9j
ZXNzQ29ubmVjdGlvbikgewotICAgICAgICBtX2dwdVByb2Nlc3NDb25uZWN0aW9uID0gbWFrZVdl
YWtQdHIoV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkuZW5zdXJlR1BVUHJvY2Vzc0Nvbm5lY3Rpb24o
KSk7CisgICAgICAgIG1fZ3B1UHJvY2Vzc0Nvbm5lY3Rpb24gPSBXZWJQcm9jZXNzOjpzaW5nbGV0
b24oKS5lbnN1cmVHUFVQcm9jZXNzQ29ubmVjdGlvbigpOwogICAgICAgICBtX2dwdVByb2Nlc3ND
b25uZWN0aW9uLT5hZGRDbGllbnQoKnRoaXMpOwogCiAgICAgICAgIGlmICghbV9ncHVQcm9jZXNz
Q29ubmVjdGlvbi0+Y29ubmVjdGlvbigpLnNlbmRTeW5jKE1lc3NhZ2VzOjpSZW1vdGVBdWRpb0Rl
c3RpbmF0aW9uTWFuYWdlcjo6Q3JlYXRlQXVkaW9EZXN0aW5hdGlvbihtX2lucHV0RGV2aWNlSWQs
IG1fbnVtYmVyT2ZJbnB1dENoYW5uZWxzLCBudW1iZXJPZk91dHB1dENoYW5uZWxzKCksIHNhbXBs
ZVJhdGUoKSwgaGFyZHdhcmVTYW1wbGVSYXRlKCksIG1fcmVuZGVyU2VtYXBob3JlKSwgTWVzc2Fn
ZXM6OlJlbW90ZUF1ZGlvRGVzdGluYXRpb25NYW5hZ2VyOjpDcmVhdGVBdWRpb0Rlc3RpbmF0aW9u
OjpSZXBseShtX2Rlc3RpbmF0aW9uSUQpLCAwKSkgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVBdWRpb0hhcmR3YXJlTGlzdGVuZXIuY3BwIGIv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVBdWRpb0hhcmR3YXJlTGlz
dGVuZXIuY3BwCmluZGV4IGIwNjg5OTE2ZjA1NTJlZTA5YzljNGNlZjMwNDI0NTk4ZTJhNjAwODgu
LjIyMDgxZTdhZTdlMGNmM2Y4MzMxM2I1ODRkYmVlNWQ0N2QwM2IyYjggMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlQXVkaW9IYXJkd2FyZUxpc3Rl
bmVyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZUF1
ZGlvSGFyZHdhcmVMaXN0ZW5lci5jcHAKQEAgLTQ1LDcgKzQ1LDcgQEAgUmVmPFJlbW90ZUF1ZGlv
SGFyZHdhcmVMaXN0ZW5lcj4gUmVtb3RlQXVkaW9IYXJkd2FyZUxpc3RlbmVyOjpjcmVhdGUoQXVk
aW9IYXJkd2EKIFJlbW90ZUF1ZGlvSGFyZHdhcmVMaXN0ZW5lcjo6UmVtb3RlQXVkaW9IYXJkd2Fy
ZUxpc3RlbmVyKEF1ZGlvSGFyZHdhcmVMaXN0ZW5lcjo6Q2xpZW50JiBjbGllbnQsIFdlYlByb2Nl
c3MmIHdlYlByb2Nlc3MpCiAgICAgOiBBdWRpb0hhcmR3YXJlTGlzdGVuZXIoY2xpZW50KQogICAg
ICwgbV9pZGVudGlmaWVyKFJlbW90ZUF1ZGlvSGFyZHdhcmVMaXN0ZW5lcklkZW50aWZpZXI6Omdl
bmVyYXRlKCkpCi0gICAgLCBtX2dwdVByb2Nlc3NDb25uZWN0aW9uKG1ha2VXZWFrUHRyKFdlYlBy
b2Nlc3M6OnNpbmdsZXRvbigpLmVuc3VyZUdQVVByb2Nlc3NDb25uZWN0aW9uKCkpKQorICAgICwg
bV9ncHVQcm9jZXNzQ29ubmVjdGlvbihXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5lbnN1cmVHUFVQ
cm9jZXNzQ29ubmVjdGlvbigpKQogewogICAgIG1fZ3B1UHJvY2Vzc0Nvbm5lY3Rpb24tPmFkZENs
aWVudCgqdGhpcyk7CiAgICAgbV9ncHVQcm9jZXNzQ29ubmVjdGlvbi0+bWVzc2FnZVJlY2VpdmVy
TWFwKCkuYWRkTWVzc2FnZVJlY2VpdmVyKE1lc3NhZ2VzOjpSZW1vdGVBdWRpb0hhcmR3YXJlTGlz
dGVuZXI6Om1lc3NhZ2VSZWNlaXZlck5hbWUoKSwgbV9pZGVudGlmaWVyLnRvVUludDY0KCksICp0
aGlzKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVt
b3RlQXVkaW9TZXNzaW9uLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEv
UmVtb3RlQXVkaW9TZXNzaW9uLmNwcAppbmRleCBjZGE2YzI3YzEwNDI2YzEwZDcwZTY5YmJkNTc3
NDgzMTQxODdlNGJkLi4wOGVmZjk4YWE3YjM0ZTY4MzQ3ZTZkNDc2NzMwMWUxMjVjZWM5YTNkIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZUF1ZGlv
U2Vzc2lvbi5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1v
dGVBdWRpb1Nlc3Npb24uY3BwCkBAIC02Niw3ICs2Niw3IEBAIHZvaWQgUmVtb3RlQXVkaW9TZXNz
aW9uOjpncHVQcm9jZXNzQ29ubmVjdGlvbkRpZENsb3NlKEdQVVByb2Nlc3NDb25uZWN0aW9uJiBj
b25uCiBJUEM6OkNvbm5lY3Rpb24mIFJlbW90ZUF1ZGlvU2Vzc2lvbjo6ZW5zdXJlQ29ubmVjdGlv
bigpCiB7CiAgICAgaWYgKCFtX2dwdVByb2Nlc3NDb25uZWN0aW9uKSB7Ci0gICAgICAgIG1fZ3B1
UHJvY2Vzc0Nvbm5lY3Rpb24gPSBtYWtlV2Vha1B0cihtX3Byb2Nlc3MuZW5zdXJlR1BVUHJvY2Vz
c0Nvbm5lY3Rpb24oKSk7CisgICAgICAgIG1fZ3B1UHJvY2Vzc0Nvbm5lY3Rpb24gPSBtX3Byb2Nl
c3MuZW5zdXJlR1BVUHJvY2Vzc0Nvbm5lY3Rpb24oKTsKICAgICAgICAgbV9ncHVQcm9jZXNzQ29u
bmVjdGlvbi0+YWRkQ2xpZW50KCp0aGlzKTsKICAgICAgICAgbV9ncHVQcm9jZXNzQ29ubmVjdGlv
bi0+bWVzc2FnZVJlY2VpdmVyTWFwKCkuYWRkTWVzc2FnZVJlY2VpdmVyKE1lc3NhZ2VzOjpSZW1v
dGVBdWRpb1Nlc3Npb246Om1lc3NhZ2VSZWNlaXZlck5hbWUoKSwgKnRoaXMpOwogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZUF1ZGlvU291cmNl
UHJvdmlkZXIuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVB
dWRpb1NvdXJjZVByb3ZpZGVyLmNwcAppbmRleCA0NmNkYjAyNzY1M2I2ZTMyNGM4ODUyNDkzOWVm
MmRkNzUwZjRjNzlhLi45M2QzYzE4NWM1ODJmNTcxZWNkMGVmZDliN2JmMWVkNzA5NjljYjBiIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZUF1ZGlv
U291cmNlUHJvdmlkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVk
aWEvUmVtb3RlQXVkaW9Tb3VyY2VQcm92aWRlci5jcHAKQEAgLTUxLDcgKzUxLDcgQEAgUmVmPFJl
bW90ZUF1ZGlvU291cmNlUHJvdmlkZXI+IFJlbW90ZUF1ZGlvU291cmNlUHJvdmlkZXI6OmNyZWF0
ZShXZWJDb3JlOjpNZWRpYVAKIAogUmVtb3RlQXVkaW9Tb3VyY2VQcm92aWRlcjo6UmVtb3RlQXVk
aW9Tb3VyY2VQcm92aWRlcihNZWRpYVBsYXllcklkZW50aWZpZXIgaWRlbnRpZmllciwgV1RGOjpM
b2dnZXJIZWxwZXImIGhlbHBlcikKICAgICA6IG1faWRlbnRpZmllcihpZGVudGlmaWVyKQotICAg
ICwgbV9ncHVQcm9jZXNzQ29ubmVjdGlvbihtYWtlV2Vha1B0cihXZWJQcm9jZXNzOjpzaW5nbGV0
b24oKS5lbnN1cmVHUFVQcm9jZXNzQ29ubmVjdGlvbigpKSkKKyAgICAsIG1fZ3B1UHJvY2Vzc0Nv
bm5lY3Rpb24oV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkuZW5zdXJlR1BVUHJvY2Vzc0Nvbm5lY3Rp
b24oKSkKICNpZiAhUkVMRUFTRV9MT0dfRElTQUJMRUQKICAgICAsIG1fbG9nZ2VyKGhlbHBlci5s
b2dnZXIoKSkKICAgICAsIG1fbG9nSWRlbnRpZmllcihoZWxwZXIubG9nSWRlbnRpZmllcigpKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVDRE0u
Y3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVDRE0uY3BwCmlu
ZGV4IGRhZTQ5NWJmNmRkZDNmMmNmZGRiYjY4ZTgxZjUyN2ViNWQ4ODg0ZWEuLmZhOTQwMjVlZDc0
NzMwZDI4ZTcxNjQ2Mjg1ZjllNWJhNjUzYjhmMTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlQ0RNLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZUNETS5jcHAKQEAgLTExOCw3ICsxMTgsNyBAQCBSZWZQ
dHI8Q0RNSW5zdGFuY2U+IFJlbW90ZUNETTo6Y3JlYXRlSW5zdGFuY2UoKQogICAgIG1fZmFjdG9y
eS0+Z3B1UHJvY2Vzc0Nvbm5lY3Rpb24oKS5jb25uZWN0aW9uKCkuc2VuZFN5bmMoTWVzc2FnZXM6
OlJlbW90ZUNETVByb3h5OjpDcmVhdGVJbnN0YW5jZSgpLCBNZXNzYWdlczo6UmVtb3RlQ0RNUHJv
eHk6OkNyZWF0ZUluc3RhbmNlOjpSZXBseShpZGVudGlmaWVyLCBjb25maWd1cmF0aW9uKSwgbV9p
ZGVudGlmaWVyKTsKICAgICBpZiAoIWlkZW50aWZpZXIpCiAgICAgICAgIHJldHVybiBudWxscHRy
OwotICAgIHJldHVybiBSZW1vdGVDRE1JbnN0YW5jZTo6Y3JlYXRlKG1ha2VXZWFrUHRyKG1fZmFj
dG9yeS5nZXQoKSksIFdURk1vdmUoaWRlbnRpZmllciksIFdURk1vdmUoY29uZmlndXJhdGlvbikp
OworICAgIHJldHVybiBSZW1vdGVDRE1JbnN0YW5jZTo6Y3JlYXRlKG1fZmFjdG9yeS5nZXQoKSwg
V1RGTW92ZShpZGVudGlmaWVyKSwgV1RGTW92ZShjb25maWd1cmF0aW9uKSk7CiB9CiAKIHZvaWQg
UmVtb3RlQ0RNOjpsb2FkQW5kSW5pdGlhbGl6ZSgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZUNETUZhY3RvcnkuY3BwIGIvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVDRE1GYWN0b3J5LmNwcAppbmRleCA1OTEwYWU2
YjE2ZTAwNGFjYjVmMGYyNDE4OWUwMGE3YTQ4ZWNmMjkwLi44NmYzOGQ0YTMyMTAwMWFlNjUxZjI2
ZGMwNmZhOWE4MjEyYjJmNzE5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
R1BVL21lZGlhL1JlbW90ZUNETUZhY3RvcnkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9HUFUvbWVkaWEvUmVtb3RlQ0RNRmFjdG9yeS5jcHAKQEAgLTc1LDcgKzc1LDcgQEAgc3Rk
Ojp1bmlxdWVfcHRyPENETVByaXZhdGU+IFJlbW90ZUNETUZhY3Rvcnk6OmNyZWF0ZUNETShjb25z
dCBTdHJpbmcmIGtleVN5c3RlbSkKICAgICBncHVQcm9jZXNzQ29ubmVjdGlvbigpLmNvbm5lY3Rp
b24oKS5zZW5kU3luYyhNZXNzYWdlczo6UmVtb3RlQ0RNRmFjdG9yeVByb3h5OjpDcmVhdGVDRE0o
a2V5U3lzdGVtKSwgTWVzc2FnZXM6OlJlbW90ZUNETUZhY3RvcnlQcm94eTo6Q3JlYXRlQ0RNOjpS
ZXBseShpZGVudGlmaWVyLCBjb25maWd1cmF0aW9uKSwgeyB9KTsKICAgICBpZiAoIWlkZW50aWZp
ZXIpCiAgICAgICAgIHJldHVybiBudWxscHRyOwotICAgIHJldHVybiBSZW1vdGVDRE06OmNyZWF0
ZShtYWtlV2Vha1B0cih0aGlzKSwgV1RGTW92ZShpZGVudGlmaWVyKSwgV1RGTW92ZShjb25maWd1
cmF0aW9uKSk7CisgICAgcmV0dXJuIFJlbW90ZUNETTo6Y3JlYXRlKCp0aGlzLCBXVEZNb3ZlKGlk
ZW50aWZpZXIpLCBXVEZNb3ZlKGNvbmZpZ3VyYXRpb24pKTsKIH0KIAogdm9pZCBSZW1vdGVDRE1G
YWN0b3J5OjphZGRTZXNzaW9uKFJlZjxSZW1vdGVDRE1JbnN0YW5jZVNlc3Npb24+JiYgc2Vzc2lv
bikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3Rl
Q0RNSW5zdGFuY2UuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1v
dGVDRE1JbnN0YW5jZS5jcHAKaW5kZXggZWRjODk0ZWU5MzNiOGVhYzYxOGQ5YTVmNjk3NmU5YzRk
MjgzODY4My4uYjVkZWEyMWU5OTVhNzM3ZjAzNmY2NDUzOGMxZmIzZWNiNWU2YmI1NSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVDRE1JbnN0YW5j
ZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVDRE1J
bnN0YW5jZS5jcHAKQEAgLTEwNSw3ICsxMDUsNyBAQCBSZWZQdHI8V2ViQ29yZTo6Q0RNSW5zdGFu
Y2VTZXNzaW9uPiBSZW1vdGVDRE1JbnN0YW5jZTo6Y3JlYXRlU2Vzc2lvbigpCiAgICAgbV9mYWN0
b3J5LT5ncHVQcm9jZXNzQ29ubmVjdGlvbigpLmNvbm5lY3Rpb24oKS5zZW5kU3luYyhNZXNzYWdl
czo6UmVtb3RlQ0RNSW5zdGFuY2VQcm94eTo6Q3JlYXRlU2Vzc2lvbigpLCBNZXNzYWdlczo6UmVt
b3RlQ0RNSW5zdGFuY2VQcm94eTo6Q3JlYXRlU2Vzc2lvbjo6UmVwbHkoaWRlbnRpZmllciksIG1f
aWRlbnRpZmllcik7CiAgICAgaWYgKCFpZGVudGlmaWVyKQogICAgICAgICByZXR1cm4gbnVsbHB0
cjsKLSAgICBhdXRvIHNlc3Npb24gPSBSZW1vdGVDRE1JbnN0YW5jZVNlc3Npb246OmNyZWF0ZSht
YWtlV2Vha1B0cihtX2ZhY3RvcnkuZ2V0KCkpLCBXVEZNb3ZlKGlkZW50aWZpZXIpKTsKKyAgICBh
dXRvIHNlc3Npb24gPSBSZW1vdGVDRE1JbnN0YW5jZVNlc3Npb246OmNyZWF0ZShtX2ZhY3Rvcnku
Z2V0KCksIFdURk1vdmUoaWRlbnRpZmllcikpOwogICAgIG1fZmFjdG9yeS0+YWRkU2Vzc2lvbihz
ZXNzaW9uLmNvcHlSZWYoKSk7CiAgICAgcmV0dXJuIHNlc3Npb247CiB9CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZUltYWdlRGVjb2RlckFWRi5j
cHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZUltYWdlRGVjb2Rl
ckFWRi5jcHAKaW5kZXggOGQ2NzVlMTVlMzdiYWRjNGZhYmY5YTMzNmM2ZjY5N2M0YWEzYzAxOS4u
OWEyMTlhNTQ0ZTU1MzgzZjU0ZTcxZGFiZDM1NGNjNDQwYTQxNDJiOSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVJbWFnZURlY29kZXJBVkYuY3Bw
CisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlSW1hZ2VEZWNv
ZGVyQVZGLmNwcApAQCAtNDcsNyArNDcsNyBAQCB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIAog
UmVtb3RlSW1hZ2VEZWNvZGVyQVZGOjpSZW1vdGVJbWFnZURlY29kZXJBVkYoUmVtb3RlSW1hZ2VE
ZWNvZGVyQVZGTWFuYWdlciYgbWFuYWdlciwgY29uc3QgV2ViQ29yZTo6SW1hZ2VEZWNvZGVySWRl
bnRpZmllciYgaWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiBtaW1lVHlwZSkKICAgICA6IEltYWdl
RGVjb2RlcigpCi0gICAgLCBtX2dwdVByb2Nlc3NDb25uZWN0aW9uKG1ha2VXZWFrUHRyKG1hbmFn
ZXIuZW5zdXJlR1BVUHJvY2Vzc0Nvbm5lY3Rpb24oKSkpCisgICAgLCBtX2dwdVByb2Nlc3NDb25u
ZWN0aW9uKG1hbmFnZXIuZW5zdXJlR1BVUHJvY2Vzc0Nvbm5lY3Rpb24oKSkKICAgICAsIG1fbWFu
YWdlcihtYW5hZ2VyKQogICAgICwgbV9pZGVudGlmaWVyKGlkZW50aWZpZXIpCiAgICAgLCBtX21p
bWVUeXBlKG1pbWVUeXBlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQ
VS9tZWRpYS9SZW1vdGVJbWFnZURlY29kZXJBVkZNYW5hZ2VyLmNwcCBiL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlSW1hZ2VEZWNvZGVyQVZGTWFuYWdlci5jcHAKaW5k
ZXggNzZlOTczNGVkMTA3NTRjMjZhM2M2ODJjNWE4ZjY2OTI0ODY5Yzc4OC4uNDFkNTM4ODAyM2Qz
OTE0OTUyMTgzNWY2ODhkZTRkNDhmNjVkNzY3ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVJbWFnZURlY29kZXJBVkZNYW5hZ2VyLmNwcAorKysg
Yi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZUltYWdlRGVjb2RlckFW
Rk1hbmFnZXIuY3BwCkBAIC01MCw3ICs1MCw3IEBAIFJlZlB0cjxSZW1vdGVJbWFnZURlY29kZXJB
VkY+IFJlbW90ZUltYWdlRGVjb2RlckFWRk1hbmFnZXI6OmNyZWF0ZUltYWdlRGVjb2RlcihTCiAg
ICAgICAgIHJldHVybiBudWxscHRyOwogCiAgICAgYXV0byByZW1vdGVJbWFnZURlY29kZXIgPSBS
ZW1vdGVJbWFnZURlY29kZXJBVkY6OmNyZWF0ZSgqdGhpcywgKmltYWdlRGVjb2RlcklkZW50aWZp
ZXIsIGRhdGEsIG1pbWVUeXBlKTsKLSAgICBtX3JlbW90ZUltYWdlRGVjb2RlcnMuYWRkKCppbWFn
ZURlY29kZXJJZGVudGlmaWVyLCBtYWtlV2Vha1B0cihyZW1vdGVJbWFnZURlY29kZXIuZ2V0KCkp
KTsKKyAgICBtX3JlbW90ZUltYWdlRGVjb2RlcnMuYWRkKCppbWFnZURlY29kZXJJZGVudGlmaWVy
LCByZW1vdGVJbWFnZURlY29kZXIpOwogCiAgICAgcmV0dXJuIHJlbW90ZUltYWdlRGVjb2RlcjsK
IH0KQEAgLTkwLDcgKzkwLDcgQEAgY29uc3QgY2hhciogIFJlbW90ZUltYWdlRGVjb2RlckFWRk1h
bmFnZXI6OnN1cHBsZW1lbnROYW1lKCkKIEdQVVByb2Nlc3NDb25uZWN0aW9uJiBSZW1vdGVJbWFn
ZURlY29kZXJBVkZNYW5hZ2VyOjplbnN1cmVHUFVQcm9jZXNzQ29ubmVjdGlvbigpCiB7CiAgICAg
aWYgKCFtX2dwdVByb2Nlc3NDb25uZWN0aW9uKSB7Ci0gICAgICAgIG1fZ3B1UHJvY2Vzc0Nvbm5l
Y3Rpb24gPSBtYWtlV2Vha1B0cihtX3Byb2Nlc3MuZW5zdXJlR1BVUHJvY2Vzc0Nvbm5lY3Rpb24o
KSk7CisgICAgICAgIG1fZ3B1UHJvY2Vzc0Nvbm5lY3Rpb24gPSBtX3Byb2Nlc3MuZW5zdXJlR1BV
UHJvY2Vzc0Nvbm5lY3Rpb24oKTsKICAgICAgICAgbV9ncHVQcm9jZXNzQ29ubmVjdGlvbi0+YWRk
Q2xpZW50KCp0aGlzKTsKICAgICAgICAgbV9ncHVQcm9jZXNzQ29ubmVjdGlvbi0+bWVzc2FnZVJl
Y2VpdmVyTWFwKCkuYWRkTWVzc2FnZVJlY2VpdmVyKE1lc3NhZ2VzOjpSZW1vdGVJbWFnZURlY29k
ZXJBVkZNYW5hZ2VyOjptZXNzYWdlUmVjZWl2ZXJOYW1lKCksICp0aGlzKTsKICAgICB9CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZUxlZ2FjeUNE
TUZhY3RvcnkuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVM
ZWdhY3lDRE1GYWN0b3J5LmNwcAppbmRleCA2YWY3MDBiNWNhZDJlMmUyNWM0NGQ2Mjc2ZGU4MzM1
MGE0YThhMDU3Li40YWVkYjI3YTk0ZmEwYjRiMzBhZjRhNDQzNDFiMTgzZTI2ZTA2NjBlIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZUxlZ2FjeUNE
TUZhY3RvcnkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVt
b3RlTGVnYWN5Q0RNRmFjdG9yeS5jcHAKQEAgLTExNiw4ICsxMTYsOCBAQCBzdGQ6OnVuaXF1ZV9w
dHI8Q0RNUHJpdmF0ZUludGVyZmFjZT4gUmVtb3RlTGVnYWN5Q0RNRmFjdG9yeTo6Y3JlYXRlQ0RN
KFdlYkNvcmU6OgogICAgIGdwdVByb2Nlc3NDb25uZWN0aW9uKCkuY29ubmVjdGlvbigpLnNlbmRT
eW5jKE1lc3NhZ2VzOjpSZW1vdGVMZWdhY3lDRE1GYWN0b3J5UHJveHk6OkNyZWF0ZUNETShjZG0t
PmtleVN5c3RlbSgpLCBXVEZNb3ZlKHBsYXllcklkKSksIE1lc3NhZ2VzOjpSZW1vdGVMZWdhY3lD
RE1GYWN0b3J5UHJveHk6OkNyZWF0ZUNETTo6UmVwbHkoaWRlbnRpZmllciksIHsgfSk7CiAgICAg
aWYgKCFpZGVudGlmaWVyKQogICAgICAgICByZXR1cm4gbnVsbHB0cjsKLSAgICBhdXRvIHJlbW90
ZUNETSA9IFJlbW90ZUxlZ2FjeUNETTo6Y3JlYXRlKG1ha2VXZWFrUHRyKHRoaXMpLCBpZGVudGlm
aWVyKTsKLSAgICBtX2NkbXMuc2V0KGlkZW50aWZpZXIsIG1ha2VXZWFrUHRyKHJlbW90ZUNETS5n
ZXQoKSkpOworICAgIGF1dG8gcmVtb3RlQ0RNID0gUmVtb3RlTGVnYWN5Q0RNOjpjcmVhdGUoKnRo
aXMsIGlkZW50aWZpZXIpOworICAgIG1fY2Rtcy5zZXQoaWRlbnRpZmllciwgcmVtb3RlQ0RNLmdl
dCgpKTsKICAgICByZXR1cm4gcmVtb3RlQ0RNOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZU1lZGlhUGxheWVyTWFuYWdlci5jcHAgYi9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZU1lZGlhUGxheWVyTWFuYWdl
ci5jcHAKaW5kZXggOGU5ZWMzYTUwOWVhMjQwOWE0MjQxMWI3OGJkOWIzZmZkYjczZTE4Ny4uNThm
YzFlNGVlMjU1ZWQ1ODMwYzk5NmRmZTY4YmYyYWJkMzUzZWFmOCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVNZWRpYVBsYXllck1hbmFnZXIuY3Bw
CisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlTWVkaWFQbGF5
ZXJNYW5hZ2VyLmNwcApAQCAtMTcwLDcgKzE3MCw3IEBAIHN0ZDo6dW5pcXVlX3B0cjxNZWRpYVBs
YXllclByaXZhdGVJbnRlcmZhY2U+IFJlbW90ZU1lZGlhUGxheWVyTWFuYWdlcjo6Y3JlYXRlUmVt
CiAgICAgZ3B1UHJvY2Vzc0Nvbm5lY3Rpb24oKS5jb25uZWN0aW9uKCkuc2VuZChNZXNzYWdlczo6
UmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyUHJveHk6OkNyZWF0ZU1lZGlhUGxheWVyKGlkZW50aWZp
ZXIsIHJlbW90ZUVuZ2luZUlkZW50aWZpZXIsIHByb3h5Q29uZmlndXJhdGlvbiksIDApOwogCiAg
ICAgYXV0byByZW1vdGVQbGF5ZXIgPSBNZWRpYVBsYXllclByaXZhdGVSZW1vdGU6OmNyZWF0ZShw
bGF5ZXIsIHJlbW90ZUVuZ2luZUlkZW50aWZpZXIsIGlkZW50aWZpZXIsICp0aGlzKTsKLSAgICBt
X3BsYXllcnMuYWRkKGlkZW50aWZpZXIsIG1ha2VXZWFrUHRyKCpyZW1vdGVQbGF5ZXIpKTsKKyAg
ICBtX3BsYXllcnMuYWRkKGlkZW50aWZpZXIsICpyZW1vdGVQbGF5ZXIpOwogCiAgICAgcmV0dXJu
IHJlbW90ZVBsYXllcjsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9H
UFUvbWVkaWEvUmVtb3RlUmVtb3RlQ29tbWFuZExpc3RlbmVyLmNwcCBiL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlUmVtb3RlQ29tbWFuZExpc3RlbmVyLmNwcAppbmRl
eCA2NDk0YjI5OTg3ZjY2MWUwM2ZlYjJmMTAyZDhlYmFhNjc0OTg3ODgwLi43NzEwYTNhNDQxMDAx
YWZjNmRmZDBjZGQyNWNhM2I4ZWVmN2E4ZmFlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZVJlbW90ZUNvbW1hbmRMaXN0ZW5lci5jcHAKKysrIGIv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVSZW1vdGVDb21tYW5kTGlz
dGVuZXIuY3BwCkBAIC02Miw3ICs2Miw3IEBAIFJlbW90ZVJlbW90ZUNvbW1hbmRMaXN0ZW5lcjo6
flJlbW90ZVJlbW90ZUNvbW1hbmRMaXN0ZW5lcigpCiBHUFVQcm9jZXNzQ29ubmVjdGlvbiYgUmVt
b3RlUmVtb3RlQ29tbWFuZExpc3RlbmVyOjplbnN1cmVHUFVQcm9jZXNzQ29ubmVjdGlvbigpCiB7
CiAgICAgaWYgKCFtX2dwdVByb2Nlc3NDb25uZWN0aW9uKSB7Ci0gICAgICAgIG1fZ3B1UHJvY2Vz
c0Nvbm5lY3Rpb24gPSBtYWtlV2Vha1B0cihtX3Byb2Nlc3MuZW5zdXJlR1BVUHJvY2Vzc0Nvbm5l
Y3Rpb24oKSk7CisgICAgICAgIG1fZ3B1UHJvY2Vzc0Nvbm5lY3Rpb24gPSBtX3Byb2Nlc3MuZW5z
dXJlR1BVUHJvY2Vzc0Nvbm5lY3Rpb24oKTsKICAgICAgICAgbV9ncHVQcm9jZXNzQ29ubmVjdGlv
bi0+YWRkQ2xpZW50KCp0aGlzKTsKICAgICAgICAgbV9ncHVQcm9jZXNzQ29ubmVjdGlvbi0+bWVz
c2FnZVJlY2VpdmVyTWFwKCkuYWRkTWVzc2FnZVJlY2VpdmVyKE1lc3NhZ2VzOjpSZW1vdGVSZW1v
dGVDb21tYW5kTGlzdGVuZXI6Om1lc3NhZ2VSZWNlaXZlck5hbWUoKSwgbV9pZGVudGlmaWVyLnRv
VUludDY0KCksICp0aGlzKTsKICAgICAgICAgbV9ncHVQcm9jZXNzQ29ubmVjdGlvbi0+Y29ubmVj
dGlvbigpLnNlbmQoTWVzc2FnZXM6OkdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OkNyZWF0ZVJl
bW90ZUNvbW1hbmRMaXN0ZW5lcihtX2lkZW50aWZpZXIpLCB7IH0pOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9Tb3VyY2VCdWZmZXJQcml2YXRlUmVtb3Rl
LmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvU291cmNlQnVmZmVyUHJp
dmF0ZVJlbW90ZS5jcHAKaW5kZXggYWI1N2NlYjkwNTA5MzkzOTJmNGVhMGFhZThjODFlMjBhNDcy
MzkwNC4uOTY2ZmM5M2I3N2FmYWEzZTYyMDhkN2FiYTVhZWQyYzdhOTRjNzRiMiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9Tb3VyY2VCdWZmZXJQcml2YXRl
UmVtb3RlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1NvdXJj
ZUJ1ZmZlclByaXZhdGVSZW1vdGUuY3BwCkBAIC01NCwxMCArNTQsMTAgQEAgUmVmPFNvdXJjZUJ1
ZmZlclByaXZhdGVSZW1vdGU+IFNvdXJjZUJ1ZmZlclByaXZhdGVSZW1vdGU6OmNyZWF0ZShHUFVQ
cm9jZXNzQ29ubmUKIH0KIAogU291cmNlQnVmZmVyUHJpdmF0ZVJlbW90ZTo6U291cmNlQnVmZmVy
UHJpdmF0ZVJlbW90ZShHUFVQcm9jZXNzQ29ubmVjdGlvbiYgZ3B1UHJvY2Vzc0Nvbm5lY3Rpb24s
IFJlbW90ZVNvdXJjZUJ1ZmZlcklkZW50aWZpZXIgcmVtb3RlU291cmNlQnVmZmVySWRlbnRpZmll
ciwgY29uc3QgTWVkaWFTb3VyY2VQcml2YXRlUmVtb3RlJiBtZWRpYVNvdXJjZVByaXZhdGUsIGNv
bnN0IE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZSYgbWVkaWFQbGF5ZXJQcml2YXRlKQotICAgIDog
bV9ncHVQcm9jZXNzQ29ubmVjdGlvbihtYWtlV2Vha1B0cihncHVQcm9jZXNzQ29ubmVjdGlvbikp
CisgICAgOiBtX2dwdVByb2Nlc3NDb25uZWN0aW9uKGdwdVByb2Nlc3NDb25uZWN0aW9uKQogICAg
ICwgbV9yZW1vdGVTb3VyY2VCdWZmZXJJZGVudGlmaWVyKHJlbW90ZVNvdXJjZUJ1ZmZlcklkZW50
aWZpZXIpCi0gICAgLCBtX21lZGlhU291cmNlUHJpdmF0ZShtYWtlV2Vha1B0cihtZWRpYVNvdXJj
ZVByaXZhdGUpKQotICAgICwgbV9tZWRpYVBsYXllclByaXZhdGUobWFrZVdlYWtQdHIobWVkaWFQ
bGF5ZXJQcml2YXRlKSkKKyAgICAsIG1fbWVkaWFTb3VyY2VQcml2YXRlKG1lZGlhU291cmNlUHJp
dmF0ZSkKKyAgICAsIG1fbWVkaWFQbGF5ZXJQcml2YXRlKG1lZGlhUGxheWVyUHJpdmF0ZSkKICNp
ZiAhUkVMRUFTRV9MT0dfRElTQUJMRUQKICAgICAsIG1fbG9nZ2VyKG1fbWVkaWFTb3VyY2VQcml2
YXRlLT5sb2dnZXIoKSkKICAgICAsIG1fbG9nSWRlbnRpZmllcihtX21lZGlhU291cmNlUHJpdmF0
ZS0+bmV4dFNvdXJjZUJ1ZmZlckxvZ0lkZW50aWZpZXIoKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvVGV4dFRyYWNrUHJpdmF0ZVJlbW90ZS5jcHAgYi9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1RleHRUcmFja1ByaXZhdGVSZW1vdGUu
Y3BwCmluZGV4IGY3ZDcyM2M2M2JmYzYyYWM1N2FhYTAzNWFmMmVjNThkZGYxMjRmMzAuLjcwY2Rj
YWJhMDlkMWFjNDBkNzIzODI4MWEzNDZmZTJlZGFjYmRlM2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvVGV4dFRyYWNrUHJpdmF0ZVJlbW90ZS5jcHAKKysr
IGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9UZXh0VHJhY2tQcml2YXRlUmVt
b3RlLmNwcApAQCAtMzksNyArMzksNyBAQCB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIAogVGV4
dFRyYWNrUHJpdmF0ZVJlbW90ZTo6VGV4dFRyYWNrUHJpdmF0ZVJlbW90ZShHUFVQcm9jZXNzQ29u
bmVjdGlvbiYgZ3B1UHJvY2Vzc0Nvbm5lY3Rpb24sIE1lZGlhUGxheWVySWRlbnRpZmllciBwbGF5
ZXJJZGVudGlmaWVyLCBUcmFja1ByaXZhdGVSZW1vdGVJZGVudGlmaWVyIGlkZW5kaWZpZXIsIFRl
eHRUcmFja1ByaXZhdGVSZW1vdGVDb25maWd1cmF0aW9uJiYgY29uZmlndXJhdGlvbikKICAgICA6
IFdlYkNvcmU6OkluYmFuZFRleHRUcmFja1ByaXZhdGUoY29uZmlndXJhdGlvbi5jdWVGb3JtYXQp
Ci0gICAgLCBtX2dwdVByb2Nlc3NDb25uZWN0aW9uKG1ha2VXZWFrUHRyKGdwdVByb2Nlc3NDb25u
ZWN0aW9uKSkKKyAgICAsIG1fZ3B1UHJvY2Vzc0Nvbm5lY3Rpb24oZ3B1UHJvY2Vzc0Nvbm5lY3Rp
b24pCiAgICAgLCBtX3BsYXllcklkZW50aWZpZXIocGxheWVySWRlbnRpZmllcikKICAgICAsIG1f
aWRlbnRpZmllcihpZGVuZGlmaWVyKQogewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL0dQVS9tZWRpYS9WaWRlb1RyYWNrUHJpdmF0ZVJlbW90ZS5jcHAgYi9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1ZpZGVvVHJhY2tQcml2YXRlUmVtb3RlLmNwcAppbmRl
eCAxNWIyN2YxOTg3OGVkYzk0NTE3ZWYwYmI2MmMzYjRkOTRhZGI2ZTJkLi5hNmY5OGQ4NTA0NWY5
NmYyMDllMGU4NWQ0YTVlZjUwODc3MzMxMzcxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvR1BVL21lZGlhL1ZpZGVvVHJhY2tQcml2YXRlUmVtb3RlLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1ZpZGVvVHJhY2tQcml2YXRlUmVtb3RlLmNw
cApAQCAtMzYsNyArMzYsNyBAQAogbmFtZXNwYWNlIFdlYktpdCB7CiAKIFZpZGVvVHJhY2tQcml2
YXRlUmVtb3RlOjpWaWRlb1RyYWNrUHJpdmF0ZVJlbW90ZShHUFVQcm9jZXNzQ29ubmVjdGlvbiYg
Z3B1UHJvY2Vzc0Nvbm5lY3Rpb24sIFdlYkNvcmU6Ok1lZGlhUGxheWVySWRlbnRpZmllciBwbGF5
ZXJJZGVudGlmaWVyLCBUcmFja1ByaXZhdGVSZW1vdGVJZGVudGlmaWVyIGlkZW5kaWZpZXIsIFRy
YWNrUHJpdmF0ZVJlbW90ZUNvbmZpZ3VyYXRpb24mJiBjb25maWd1cmF0aW9uKQotICAgIDogbV9n
cHVQcm9jZXNzQ29ubmVjdGlvbihtYWtlV2Vha1B0cihncHVQcm9jZXNzQ29ubmVjdGlvbikpCisg
ICAgOiBtX2dwdVByb2Nlc3NDb25uZWN0aW9uKGdwdVByb2Nlc3NDb25uZWN0aW9uKQogICAgICwg
bV9wbGF5ZXJJZGVudGlmaWVyKHBsYXllcklkZW50aWZpZXIpCiAgICAgLCBtX2lkZW5kaWZpZXIo
aWRlbmRpZmllcikKIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUv
bWVkaWEvY29jb2EvVmlkZW9MYXllclJlbW90ZUNvY29hLm1tIGIvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL0dQVS9tZWRpYS9jb2NvYS9WaWRlb0xheWVyUmVtb3RlQ29jb2EubW0KaW5kZXggM2Fl
NjVlMTFlMGJkNGY1NTM2MGFmZGI4MzY4M2RiMDBhYWUxOWM0Yy4uNGMwMTZkMDk0ZTA3NGY2NTY0
YzBkMDNkOGYzMmM3MTY2NDg4NjJkYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL0dQVS9tZWRpYS9jb2NvYS9WaWRlb0xheWVyUmVtb3RlQ29jb2EubW0KKysrIGIvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9jb2NvYS9WaWRlb0xheWVyUmVtb3RlQ29jb2Eu
bW0KQEAgLTc4LDcgKzc4LDcgQEAgLSAoV2ViS2l0OjpNZWRpYVBsYXllclByaXZhdGVSZW1vdGUq
KW1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZQogCiAtICh2b2lkKXNldE1lZGlhUGxheWVyUHJpdmF0
ZVJlbW90ZTooV2ViS2l0OjpNZWRpYVBsYXllclByaXZhdGVSZW1vdGUqKW1lZGlhUGxheWVyUHJp
dmF0ZVJlbW90ZQogewotICAgIF9tZWRpYVBsYXllclByaXZhdGVSZW1vdGUgPSBtYWtlV2Vha1B0
cigqbWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlKTsKKyAgICBfbWVkaWFQbGF5ZXJQcml2YXRlUmVt
b3RlID0gKm1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTsKIH0KIAogLSAoV2ViQ29yZTo6TWVkaWFQ
bGF5ZXJFbnVtczo6VmlkZW9HcmF2aXR5KXZpZGVvR3Jhdml0eQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9pb3MvUmVtb3RlTWVkaWFTZXNzaW9uSGVscGVy
LmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvaW9zL1JlbW90ZU1lZGlh
U2Vzc2lvbkhlbHBlci5jcHAKaW5kZXggNDg2MmFmNzY0NTY3ZDZiZjZhZmY2OGQyODc4ZjhmOTRl
MTk1OGYyNi4uOTE2NDA2YmJlMjQyN2M3ZGVhMDc0Y2YxZmViNWQyMTBmYTlkZDFlYSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9pb3MvUmVtb3RlTWVkaWFT
ZXNzaW9uSGVscGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlh
L2lvcy9SZW1vdGVNZWRpYVNlc3Npb25IZWxwZXIuY3BwCkBAIC00OSw3ICs0OSw3IEBAIFJlbW90
ZU1lZGlhU2Vzc2lvbkhlbHBlcjo6UmVtb3RlTWVkaWFTZXNzaW9uSGVscGVyKFdlYlByb2Nlc3Mm
IHByb2Nlc3MpCiBJUEM6OkNvbm5lY3Rpb24mIFJlbW90ZU1lZGlhU2Vzc2lvbkhlbHBlcjo6ZW5z
dXJlQ29ubmVjdGlvbigpCiB7CiAgICAgaWYgKCFtX2dwdVByb2Nlc3NDb25uZWN0aW9uKSB7Ci0g
ICAgICAgIG1fZ3B1UHJvY2Vzc0Nvbm5lY3Rpb24gPSBtYWtlV2Vha1B0cihtX3Byb2Nlc3MuZW5z
dXJlR1BVUHJvY2Vzc0Nvbm5lY3Rpb24oKSk7CisgICAgICAgIG1fZ3B1UHJvY2Vzc0Nvbm5lY3Rp
b24gPSBtX3Byb2Nlc3MuZW5zdXJlR1BVUHJvY2Vzc0Nvbm5lY3Rpb24oKTsKICAgICAgICAgbV9n
cHVQcm9jZXNzQ29ubmVjdGlvbi0+YWRkQ2xpZW50KCp0aGlzKTsKICAgICAgICAgbV9ncHVQcm9j
ZXNzQ29ubmVjdGlvbi0+bWVzc2FnZVJlY2VpdmVyTWFwKCkuYWRkTWVzc2FnZVJlY2VpdmVyKE1l
c3NhZ2VzOjpSZW1vdGVNZWRpYVNlc3Npb25IZWxwZXI6Om1lc3NhZ2VSZWNlaXZlck5hbWUoKSwg
KnRoaXMpOwogICAgICAgICBtX2dwdVByb2Nlc3NDb25uZWN0aW9uLT5jb25uZWN0aW9uKCkuc2Vu
ZChNZXNzYWdlczo6R1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6RW5zdXJlTWVkaWFTZXNzaW9u
SGVscGVyKCksIHsgfSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BV
L3dlYnJ0Yy9BdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlckludGVybmFsVW5pdE1hbmFnZXIu
Y3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS93ZWJydGMvQXVkaW9NZWRpYVN0cmVh
bVRyYWNrUmVuZGVyZXJJbnRlcm5hbFVuaXRNYW5hZ2VyLmNwcAppbmRleCBlZGY4NjdlODE1M2Uz
MGQ2NzA5YTU2NWI2NjRjN2VjZjE3Y2JjMjZmLi42ODUxZDFhOTQ0OTcwNjI5MTU1ZjZmMmM5NmE0
N2ExMjk4NzI1MGY1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL3dl
YnJ0Yy9BdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlckludGVybmFsVW5pdE1hbmFnZXIuY3Bw
CisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvd2VicnRjL0F1ZGlvTWVkaWFTdHJl
YW1UcmFja1JlbmRlcmVySW50ZXJuYWxVbml0TWFuYWdlci5jcHAKQEAgLTg5LDcgKzg5LDcgQEAg
cHJpdmF0ZToKIAogdm9pZCBBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlckludGVybmFsVW5p
dE1hbmFnZXI6OmFkZChQcm94eSYgcHJveHkpCiB7Ci0gICAgbV9wcm94aWVzLmFkZChwcm94eS5p
ZGVudGlmaWVyKCksIG1ha2VXZWFrUHRyKHByb3h5KSk7CisgICAgbV9wcm94aWVzLmFkZChwcm94
eS5pZGVudGlmaWVyKCksIHByb3h5KTsKIH0KIAogdm9pZCBBdWRpb01lZGlhU3RyZWFtVHJhY2tS
ZW5kZXJlckludGVybmFsVW5pdE1hbmFnZXI6OnJlbW92ZShQcm94eSYgcHJveHkpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL3dlYnJ0Yy9TYW1wbGVCdWZmZXJEaXNw
bGF5TGF5ZXIuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS93ZWJydGMvU2FtcGxl
QnVmZmVyRGlzcGxheUxheWVyLmNwcAppbmRleCBmZGJhMGRiYzdlNjIwMmRmMGI3NWUxNTllOGZk
Y2UyZjkyNGQ2YTcyLi5iZTkxOWNkZDFmMDA4MWY1MzY5NTQxYTIxNzMwM2YyNGU2MDIyYTBjIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL3dlYnJ0Yy9TYW1wbGVCdWZm
ZXJEaXNwbGF5TGF5ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvd2Vi
cnRjL1NhbXBsZUJ1ZmZlckRpc3BsYXlMYXllci5jcHAKQEAgLTQ5LDcgKzQ5LDcgQEAgc3RkOjp1
bmlxdWVfcHRyPFNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllcj4gU2FtcGxlQnVmZmVyRGlzcGxheUxh
eWVyOjpjcmVhdGUoU2FtcGwKIAogU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyOjpTYW1wbGVCdWZm
ZXJEaXNwbGF5TGF5ZXIoU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyTWFuYWdlciYgbWFuYWdlciwg
V2ViQ29yZTo6U2FtcGxlQnVmZmVyRGlzcGxheUxheWVyOjpDbGllbnQmIGNsaWVudCkKICAgICA6
IFdlYkNvcmU6OlNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllcihjbGllbnQpCi0gICAgLCBtX21hbmFn
ZXIobWFrZVdlYWtQdHIobWFuYWdlcikpCisgICAgLCBtX21hbmFnZXIobWFuYWdlcikKICAgICAs
IG1fY29ubmVjdGlvbihXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5lbnN1cmVHUFVQcm9jZXNzQ29u
bmVjdGlvbigpLmNvbm5lY3Rpb24oKSkKICAgICAsIG1faWRlbnRpZmllcihTYW1wbGVCdWZmZXJE
aXNwbGF5TGF5ZXJJZGVudGlmaWVyOjpnZW5lcmF0ZSgpKQogewpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL0dQVS93ZWJydGMvU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyTWFu
YWdlci5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL3dlYnJ0Yy9TYW1wbGVCdWZm
ZXJEaXNwbGF5TGF5ZXJNYW5hZ2VyLmNwcAppbmRleCBjNDA0MjcyYTc1ZjM5MmEwZmRhOTRmMGMy
YjYyM2NkNGFmZjI1OWViLi5hYTFlY2U3OGEyNDY2N2FmOWY2MDllMzhhMjFhMjRkMmY4NzY2MjEx
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL3dlYnJ0Yy9TYW1wbGVC
dWZmZXJEaXNwbGF5TGF5ZXJNYW5hZ2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvR1BVL3dlYnJ0Yy9TYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXJNYW5hZ2VyLmNwcApAQCAtNDYs
MTQgKzQ2LDE0IEBAIHN0ZDo6dW5pcXVlX3B0cjxXZWJDb3JlOjpTYW1wbGVCdWZmZXJEaXNwbGF5
TGF5ZXI+IFNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllck1hbmFnCiAgICAgaWYgKCFsYXllcikKICAg
ICAgICAgcmV0dXJuIHsgfTsKIAotICAgIG1fbGF5ZXJzLmFkZChsYXllci0+aWRlbnRpZmllcigp
LCBtYWtlV2Vha1B0cigqbGF5ZXIpKTsKKyAgICBtX2xheWVycy5hZGQobGF5ZXItPmlkZW50aWZp
ZXIoKSwgKmxheWVyKTsKICAgICByZXR1cm4gbGF5ZXI7CiB9CiAKIHZvaWQgU2FtcGxlQnVmZmVy
RGlzcGxheUxheWVyTWFuYWdlcjo6YWRkTGF5ZXIoU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyJiBs
YXllcikKIHsKICAgICBBU1NFUlQoIW1fbGF5ZXJzLmNvbnRhaW5zKGxheWVyLmlkZW50aWZpZXIo
KSkpOwotICAgIG1fbGF5ZXJzLmFkZChsYXllci5pZGVudGlmaWVyKCksIG1ha2VXZWFrUHRyKGxh
eWVyKSk7CisgICAgbV9sYXllcnMuYWRkKGxheWVyLmlkZW50aWZpZXIoKSwgbGF5ZXIpOwogfQog
CiB2b2lkIFNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllck1hbmFnZXI6OnJlbW92ZUxheWVyKFNhbXBs
ZUJ1ZmZlckRpc3BsYXlMYXllciYgbGF5ZXIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2dsaWIvRE9NL0RPTU9iamVjdENhY2hlLmNwcCBi
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ2xpYi9ET00vRE9N
T2JqZWN0Q2FjaGUuY3BwCmluZGV4IDQ5NDBiMTBiZWQ3ZDZkOTk2MWIyZDBjNDEwNGRiZGFlZGQ5
MTdlZmIuLmI2Mzk2ZTI3ZTI0MmVhMDk3NmIyMzNkNjBiZGE1MDZjZDdhOGFhZDQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ2xpYi9ET00v
RE9NT2JqZWN0Q2FjaGUuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3Rl
ZEJ1bmRsZS9BUEkvZ2xpYi9ET00vRE9NT2JqZWN0Q2FjaGUuY3BwCkBAIC0xMTEsNyArMTExLDcg
QEAgcHJpdmF0ZToKICAgICAgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CiAgICAgcHVibGlj
OgogICAgICAgICBET01XaW5kb3dPYnNlcnZlcihXZWJDb3JlOjpET01XaW5kb3cmIHdpbmRvdywg
RE9NT2JqZWN0Q2FjaGVGcmFtZU9ic2VydmVyJiBmcmFtZU9ic2VydmVyKQotICAgICAgICAgICAg
OiBtX3dpbmRvdyhtYWtlV2Vha1B0cih3aW5kb3cpKQorICAgICAgICAgICAgOiBtX3dpbmRvdyh3
aW5kb3cpCiAgICAgICAgICAgICAsIG1fZnJhbWVPYnNlcnZlcihmcmFtZU9ic2VydmVyKQogICAg
ICAgICB7CiAgICAgICAgICAgICB3aW5kb3cucmVnaXN0ZXJPYnNlcnZlcigqdGhpcyk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5zcGVjdG9yL1dlYkluc3BlY3RvclVJ
RXh0ZW5zaW9uQ29udHJvbGxlci5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5zcGVj
dG9yL1dlYkluc3BlY3RvclVJRXh0ZW5zaW9uQ29udHJvbGxlci5jcHAKaW5kZXggZWUzOTI2MDgx
YjgzZDk2MTZhZTVlOWRjZTQyMDgxZTRkM2IwZWM2My4uYzYyNTk2ZTgwYzJlMmYwZDY4OGNmMDY2
MTM4OWY4NzM2YzM1MzIyNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0lu
c3BlY3Rvci9XZWJJbnNwZWN0b3JVSUV4dGVuc2lvbkNvbnRyb2xsZXIuY3BwCisrKyBiL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbnNwZWN0b3IvV2ViSW5zcGVjdG9yVUlFeHRlbnNpb25Db250
cm9sbGVyLmNwcApAQCAtNDQsNyArNDQsNyBAQAogbmFtZXNwYWNlIFdlYktpdCB7CiAKIFdlYklu
c3BlY3RvclVJRXh0ZW5zaW9uQ29udHJvbGxlcjo6V2ViSW5zcGVjdG9yVUlFeHRlbnNpb25Db250
cm9sbGVyKFdlYkNvcmU6Okluc3BlY3RvckZyb250ZW5kQ2xpZW50JiBpbnNwZWN0b3JGcm9udGVu
ZCkKLSAgICA6IG1fZnJvbnRlbmRDbGllbnQobWFrZVdlYWtQdHIoaW5zcGVjdG9yRnJvbnRlbmQp
KQorICAgIDogbV9mcm9udGVuZENsaWVudChpbnNwZWN0b3JGcm9udGVuZCkKIHsKICAgICBhdXRv
KiBwYWdlID0gaW5zcGVjdG9yRnJvbnRlbmQuZnJvbnRlbmRQYWdlKCk7CiAgICAgQVNTRVJUKHBh
Z2UpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05ldHdvcmsvV2ViU29j
a2V0Q2hhbm5lbC5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0d29yay9XZWJTb2Nr
ZXRDaGFubmVsLmNwcAppbmRleCBjZjE0NWFhMWRiMzFhMzZjNDA2ZWQ1MDA5NGFjYjU1Yjk3N2Vk
ODUxLi45MTg1NmE1NzcyOTY3MjJkMjRhYmU2OTc4M2EwMTZhYThmYjczYWQwIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0d29yay9XZWJTb2NrZXRDaGFubmVsLmNwcAor
KysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0d29yay9XZWJTb2NrZXRDaGFubmVsLmNw
cApAQCAtNjksOCArNjksOCBAQCBOZXR3b3JrU2VuZFF1ZXVlIFdlYlNvY2tldENoYW5uZWw6OmNy
ZWF0ZU1lc3NhZ2VRdWV1ZShEb2N1bWVudCYgZG9jdW1lbnQsIFdlYlNvYwogfQogCiBXZWJTb2Nr
ZXRDaGFubmVsOjpXZWJTb2NrZXRDaGFubmVsKFdlYlBhZ2VQcm94eUlkZW50aWZpZXIgd2ViUGFn
ZVByb3h5SUQsIERvY3VtZW50JiBkb2N1bWVudCwgV2ViU29ja2V0Q2hhbm5lbENsaWVudCYgY2xp
ZW50KQotICAgIDogbV9kb2N1bWVudChtYWtlV2Vha1B0cihkb2N1bWVudCkpCi0gICAgLCBtX2Ns
aWVudChtYWtlV2Vha1B0cihjbGllbnQpKQorICAgIDogbV9kb2N1bWVudChkb2N1bWVudCkKKyAg
ICAsIG1fY2xpZW50KGNsaWVudCkKICAgICAsIG1fbWVzc2FnZVF1ZXVlKGNyZWF0ZU1lc3NhZ2VR
dWV1ZShkb2N1bWVudCwgKnRoaXMpKQogICAgICwgbV9pbnNwZWN0b3IoZG9jdW1lbnQpCiAgICAg
LCBtX3dlYlBhZ2VQcm94eUlEKHdlYlBhZ2VQcm94eUlEKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL05ldHdvcmsvV2ViU29ja2V0Q2hhbm5lbE1hbmFnZXIuY3BwIGIvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL05ldHdvcmsvV2ViU29ja2V0Q2hhbm5lbE1hbmFnZXIuY3Bw
CmluZGV4IGI5ODZhNzk5NmMzMmNlNTQ1MDJmYWJmNWM5ZmRiZTNmZjBhNzc4MGUuLjg5OWU2NThh
YzY4MTYzZjU4YTUxY2JhZmUxZTExNzExMWRiNmVmM2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9OZXR3b3JrL1dlYlNvY2tldENoYW5uZWxNYW5hZ2VyLmNwcAorKysgYi9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0d29yay9XZWJTb2NrZXRDaGFubmVsTWFuYWdlci5j
cHAKQEAgLTMzLDcgKzMzLDcgQEAgbmFtZXNwYWNlIFdlYktpdCB7CiB2b2lkIFdlYlNvY2tldENo
YW5uZWxNYW5hZ2VyOjphZGRDaGFubmVsKFdlYlNvY2tldENoYW5uZWwmIGNoYW5uZWwpCiB7CiAg
ICAgQVNTRVJUKCFtX2NoYW5uZWxzLmNvbnRhaW5zKGNoYW5uZWwuaWRlbnRpZmllcigpKSk7Ci0g
ICAgbV9jaGFubmVscy5hZGQoY2hhbm5lbC5pZGVudGlmaWVyKCksIG1ha2VXZWFrUHRyKGNoYW5u
ZWwpKTsKKyAgICBtX2NoYW5uZWxzLmFkZChjaGFubmVsLmlkZW50aWZpZXIoKSwgY2hhbm5lbCk7
CiB9CiAKIHZvaWQgV2ViU29ja2V0Q2hhbm5lbE1hbmFnZXI6Om5ldHdvcmtQcm9jZXNzQ3Jhc2hl
ZCgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0d29yay93ZWJydGMv
UlRDRGF0YUNoYW5uZWxSZW1vdGVNYW5hZ2VyLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9OZXR3b3JrL3dlYnJ0Yy9SVENEYXRhQ2hhbm5lbFJlbW90ZU1hbmFnZXIuY3BwCmluZGV4IDli
OTZmNGExM2RjMzRjMDUyYjNkOTQ2MjU2NDcxNTUzMGU5NjdkODMuLjZkMTE5ZTY4ODA0MmRiNmI4
MGYwNjQ3Y2MxMmRkMjMxMjZlZjI5NzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9OZXR3b3JrL3dlYnJ0Yy9SVENEYXRhQ2hhbm5lbFJlbW90ZU1hbmFnZXIuY3BwCisrKyBi
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9OZXR3b3JrL3dlYnJ0Yy9SVENEYXRhQ2hhbm5lbFJl
bW90ZU1hbmFnZXIuY3BwCkBAIC0xODUsNyArMTg1LDcgQEAgUlRDRGF0YUNoYW5uZWxSZW1vdGVN
YW5hZ2VyOjpSZW1vdGVIYW5kbGVyQ29ubmVjdGlvbjo6UmVtb3RlSGFuZGxlckNvbm5lY3Rpb24o
UmUKIAogdm9pZCBSVENEYXRhQ2hhbm5lbFJlbW90ZU1hbmFnZXI6OlJlbW90ZUhhbmRsZXJDb25u
ZWN0aW9uOjpjb25uZWN0VG9Tb3VyY2UoV2ViQ29yZTo6UlRDRGF0YUNoYW5uZWxSZW1vdGVIYW5k
bGVyJiBoYW5kbGVyLCBXZWJDb3JlOjpTY3JpcHRFeGVjdXRpb25Db250ZXh0SWRlbnRpZmllciBj
b250ZXh0SWRlbnRpZmllciwgV2ViQ29yZTo6UlRDRGF0YUNoYW5uZWxJZGVudGlmaWVyIGxvY2Fs
SWRlbnRpZmllciwgV2ViQ29yZTo6UlRDRGF0YUNoYW5uZWxJZGVudGlmaWVyIHJlbW90ZUlkZW50
aWZpZXIpCiB7Ci0gICAgbV9xdWV1ZS0+ZGlzcGF0Y2goW2hhbmRsZXIgPSBtYWtlV2Vha1B0ciho
YW5kbGVyKSwgY29udGV4dElkZW50aWZpZXIsIGxvY2FsSWRlbnRpZmllcl0oKSBtdXRhYmxlIHsK
KyAgICBtX3F1ZXVlLT5kaXNwYXRjaChbaGFuZGxlciA9IFdlYWtQdHIgeyBoYW5kbGVyIH0sIGNv
bnRleHRJZGVudGlmaWVyLCBsb2NhbElkZW50aWZpZXJdKCkgbXV0YWJsZSB7CiAgICAgICAgIFJU
Q0RhdGFDaGFubmVsUmVtb3RlTWFuYWdlcjo6c2hhcmVkTWFuYWdlcigpLm1faGFuZGxlcnMuYWRk
KGxvY2FsSWRlbnRpZmllci5jaGFubmVsSWRlbnRpZmllciwgUmVtb3RlSGFuZGxlciB7IFdURk1v
dmUoaGFuZGxlciksIGNvbnRleHRJZGVudGlmaWVyIH0pOwogICAgIH0pOwogICAgIG1fY29ubmVj
dGlvbi0+c2VuZFdpdGhBc3luY1JlcGx5KE1lc3NhZ2VzOjpOZXR3b3JrQ29ubmVjdGlvblRvV2Vi
UHJvY2Vzczo6Q29ubmVjdFRvUlRDRGF0YUNoYW5uZWxSZW1vdGVTb3VyY2UgeyBsb2NhbElkZW50
aWZpZXIsIHJlbW90ZUlkZW50aWZpZXIgfSwgW2xvY2FsSWRlbnRpZmllcl0oYXV0byYmIHJlc3Vs
dCkgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1BsdWdpbnMvUERGL1BE
RlBsdWdpbi5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1BsdWdpbnMvUERGL1BERlBsdWdp
bi5oCmluZGV4IDBlNTQwMjE2NjA5MDk0ZGZkZGJkNzBkYmY5MDZlNGE4YzAyMTM2ZjkuLjQyZGU0
NjE0MTk3NzhiN2M0NTBmY2ExZWIwMzdjMWNlOTdkMmQ2MzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9QbHVnaW5zL1BERi9QREZQbHVnaW4uaAorKysgYi9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvUGx1Z2lucy9QREYvUERGUGx1Z2luLmgKQEAgLTM1OSw3ICszNTksNyBA
QCBwcml2YXRlOgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHB1Ymxp
YyBXZWJDb3JlOjpOZXRzY2FwZVBsdWdJblN0cmVhbUxvYWRlckNsaWVudCB7CiAgICAgcHVibGlj
OgogICAgICAgICBQREZQbHVnaW5TdHJlYW1Mb2FkZXJDbGllbnQoUERGUGx1Z2luJiBwZGZQbHVn
aW4pCi0gICAgICAgICAgICA6IG1fcGRmUGx1Z2luKG1ha2VXZWFrUHRyKHBkZlBsdWdpbikpCisg
ICAgICAgICAgICA6IG1fcGRmUGx1Z2luKHBkZlBsdWdpbikKICAgICAgICAgewogICAgICAgICB9
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9QbHVnaW5zL1BERi9QREZQ
bHVnaW4ubW0gYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvUGx1Z2lucy9QREYvUERGUGx1Z2lu
Lm1tCmluZGV4IDViNjU0NDFlNmRmNWJjODVjNDQyM2FiOWNlZGVjYWZhNGQ2YmQxZmQuLjBlMWQw
N2FlM2QwYzgxNzRlYjZjM2RiYzkzODJhZDU0YjY3MzQzMDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9QbHVnaW5zL1BERi9QREZQbHVnaW4ubW0KKysrIGIvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL1BsdWdpbnMvUERGL1BERlBsdWdpbi5tbQpAQCAtMTgwLDcgKzE4MCw3
IEBAIC0gKGlkKWluaXRXaXRoUERGUGx1Z2luOihXZWJLaXQ6OlBERlBsdWdpbiAqKXBsdWdpbiBh
bmRFbGVtZW50OihXZWJDb3JlOjpIVE1MUGx1CiAgICAgICAgIHJldHVybiBuaWw7CiAKICAgICBf
cGRmUGx1Z2luID0gcGx1Z2luOwotICAgIF9wbHVnaW5FbGVtZW50ID0gbWFrZVdlYWtQdHIoZWxl
bWVudCk7CisgICAgX3BsdWdpbkVsZW1lbnQgPSBlbGVtZW50OwogCiAgICAgcmV0dXJuIHNlbGY7
CiB9CkBAIC02MzMsNyArNjMzLDcgQEAgUmVmPFBERlBsdWdpbj4gUERGUGx1Z2luOjpjcmVhdGUo
V2ViRnJhbWUmIGZyYW1lLCBIVE1MUGx1Z0luRWxlbWVudCogcGx1Z2luRWxlbWUKIAogaW5saW5l
IFBERlBsdWdpbjo6UERGUGx1Z2luKFdlYkZyYW1lJiBmcmFtZSwgSFRNTFBsdWdJbkVsZW1lbnQq
IHBsdWdpbkVsZW1lbnQpCiAgICAgOiBQbHVnaW4oUERGUGx1Z2luVHlwZSkKLSAgICAsIG1fZnJh
bWUobWFrZVdlYWtQdHIoZnJhbWUpKQorICAgICwgbV9mcmFtZShmcmFtZSkKICAgICAsIG1fY29u
dGFpbmVyTGF5ZXIoYWRvcHROUyhbW0NBTGF5ZXIgYWxsb2NdIGluaXRdKSkKICAgICAsIG1fY29u
dGVudExheWVyKGFkb3B0TlMoW1tDQUxheWVyIGFsbG9jXSBpbml0XSkpCiAgICAgLCBtX3Njcm9s
bENvcm5lckxheWVyKGFkb3B0TlMoW1tXS1BERlBsdWdpblNjcm9sbGJhckxheWVyIGFsbG9jXSBp
bml0V2l0aFBERlBsdWdpbjp0aGlzXSkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvUGx1Z2lucy9QbHVnaW4uY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1BsdWdp
bnMvUGx1Z2luLmNwcAppbmRleCBkMzYxMWY0MDU4Y2ViYTAxZGQ5ODYzZGMzOGVjZTQxZDlkMzVm
MmQwLi4xNDg4OTM5YWE2NDM2ZWJkOTFmMDU2YWQ5ZGIxNDA5YjJhNTU0YmY0IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvUGx1Z2lucy9QbHVnaW4uY3BwCisrKyBiL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9QbHVnaW5zL1BsdWdpbi5jcHAKQEAgLTkwLDcgKzkwLDcgQEAg
Ym9vbCBQbHVnaW46OmluaXRpYWxpemUoUGx1Z2luQ29udHJvbGxlciYgcGx1Z2luQ29udHJvbGxl
ciwgY29uc3QgUGFyYW1ldGVycyYgcGEKIHsKICAgICBBU1NFUlQoIW1fcGx1Z2luQ29udHJvbGxl
cik7CiAKLSAgICBtX3BsdWdpbkNvbnRyb2xsZXIgPSBtYWtlV2Vha1B0cihwbHVnaW5Db250cm9s
bGVyKTsKKyAgICBtX3BsdWdpbkNvbnRyb2xsZXIgPSBwbHVnaW5Db250cm9sbGVyOwogCiAgICAg
cmV0dXJuIGluaXRpYWxpemUocGFyYW1ldGVycyk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRGV2aWNlT3JpZW50YXRpb25VcGRhdGVQ
cm92aWRlci5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2Vi
RGV2aWNlT3JpZW50YXRpb25VcGRhdGVQcm92aWRlci5jcHAKaW5kZXggYTEzMDIyY2I4ZjZlZTY2
MzkzM2RkODRiNjdmOGY2ZjA0NDA4Y2VkNy4uZjlhZjlhYjkzZjdlMDEyODc3MzY1MGMxZDI0OTVh
ZGRlMzlmZDQzNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVT
dXBwb3J0L1dlYkRldmljZU9yaWVudGF0aW9uVXBkYXRlUHJvdmlkZXIuY3BwCisrKyBiL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJEZXZpY2VPcmllbnRhdGlvblVw
ZGF0ZVByb3ZpZGVyLmNwcApAQCAtMzgsNyArMzgsNyBAQAogbmFtZXNwYWNlIFdlYktpdCB7CiAK
IFdlYkRldmljZU9yaWVudGF0aW9uVXBkYXRlUHJvdmlkZXI6OldlYkRldmljZU9yaWVudGF0aW9u
VXBkYXRlUHJvdmlkZXIoV2ViUGFnZSYgcGFnZSkKLSAgICA6IG1fcGFnZShtYWtlV2Vha1B0cihw
YWdlKSkKKyAgICA6IG1fcGFnZShwYWdlKQogICAgICwgbV9wYWdlSWRlbnRpZmllcihwYWdlLmlk
ZW50aWZpZXIoKSkKIHsKICAgICBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5hZGRNZXNzYWdlUmVj
ZWl2ZXIoTWVzc2FnZXM6OldlYkRldmljZU9yaWVudGF0aW9uVXBkYXRlUHJvdmlkZXI6Om1lc3Nh
Z2VSZWNlaXZlck5hbWUoKSwgcGFnZS5pZGVudGlmaWVyKCksICp0aGlzKTsKQEAgLTg1LDcgKzg1
LDcgQEAgdm9pZCBXZWJEZXZpY2VPcmllbnRhdGlvblVwZGF0ZVByb3ZpZGVyOjpkZXZpY2VPcmll
bnRhdGlvbkNoYW5nZWQoZG91YmxlIGFscGhhLAogewogICAgIFZlY3RvcjxXZWFrUHRyPFdlYkNv
cmU6Ok1vdGlvbk1hbmFnZXJDbGllbnQ+PiBjbGllbnRzOwogICAgIGZvciAoYXV0byYgY2xpZW50
IDogbV9kZXZpY2VPcmllbnRhdGlvbkNsaWVudHMpCi0gICAgICAgIGNsaWVudHMuYXBwZW5kKG1h
a2VXZWFrUHRyKCZjbGllbnQpKTsKKyAgICAgICAgY2xpZW50cy5hcHBlbmQoY2xpZW50KTsKIAog
ICAgIGZvciAoYXV0byYgY2xpZW50IDogY2xpZW50cykgewogICAgICAgICBpZiAoY2xpZW50KQpA
QCAtOTcsNyArOTcsNyBAQCB2b2lkIFdlYkRldmljZU9yaWVudGF0aW9uVXBkYXRlUHJvdmlkZXI6
OmRldmljZU1vdGlvbkNoYW5nZWQoZG91YmxlIHhBY2NlbGVyYXRpbwogewogICAgIFZlY3RvcjxX
ZWFrUHRyPFdlYkNvcmU6Ok1vdGlvbk1hbmFnZXJDbGllbnQ+PiBjbGllbnRzOwogICAgIGZvciAo
YXV0byYgY2xpZW50IDogbV9kZXZpY2VNb3Rpb25DbGllbnRzKQotICAgICAgICBjbGllbnRzLmFw
cGVuZChtYWtlV2Vha1B0cigmY2xpZW50KSk7CisgICAgICAgIGNsaWVudHMuYXBwZW5kKGNsaWVu
dCk7CiAgICAgCiAgICAgZm9yIChhdXRvJiBjbGllbnQgOiBjbGllbnRzKSB7CiAgICAgICAgIGlm
IChjbGllbnQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1
cHBvcnQvV2ViUGVybWlzc2lvbkNvbnRyb2xsZXIuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlBlcm1pc3Npb25Db250cm9sbGVyLmNwcAppbmRleCAwMDg1
ZTQ5OGNlMGQ2NmE1ODJjZjY4MWU0NmQ4YWRiYzFkMjJmZTE2Li5kNjAxODIxZjBhODVjMDMyMTAw
M2ZlMGRjZWQ3OTc2ZDllMjBlZTVkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvV2ViQ29yZVN1cHBvcnQvV2ViUGVybWlzc2lvbkNvbnRyb2xsZXIuY3BwCisrKyBiL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJQZXJtaXNzaW9uQ29udHJvbGxl
ci5jcHAKQEAgLTM5LDcgKzM5LDcgQEAgUmVmPFdlYlBlcm1pc3Npb25Db250cm9sbGVyPiBXZWJQ
ZXJtaXNzaW9uQ29udHJvbGxlcjo6Y3JlYXRlKFdlYlBhZ2UmIHBhZ2UpCiB9CiAKIFdlYlBlcm1p
c3Npb25Db250cm9sbGVyOjpXZWJQZXJtaXNzaW9uQ29udHJvbGxlcihXZWJQYWdlJiBwYWdlKQot
ICAgIDogbV9wYWdlKG1ha2VXZWFrUHRyKHBhZ2UpKQorICAgIDogbV9wYWdlKHBhZ2UpCiB7CiB9
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9X
ZWJTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb24uY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbi5jcHAKaW5k
ZXggNGI3NjNiY2RlZTYzYmRmZjRmYTFmMjlkZTc4NTY2MGQ0OGI0ZjFlZC4uNzg5NzM4ZWM0YTNi
MTEzMDU2N2JlMWUyODAxMDkzZDdmNjc3YTE3OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbi5j
cHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlNwZWVj
aFJlY29nbml0aW9uQ29ubmVjdGlvbi5jcHAKQEAgLTYxLDcgKzYxLDcgQEAgV2ViU3BlZWNoUmVj
b2duaXRpb25Db25uZWN0aW9uOjp+V2ViU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uKCkKIAog
dm9pZCBXZWJTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb246OnJlZ2lzdGVyQ2xpZW50KFdlYkNv
cmU6OlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbkNsaWVudCYgY2xpZW50KQogewotICAgIG1f
Y2xpZW50TWFwLmFkZChjbGllbnQuaWRlbnRpZmllcigpLCBtYWtlV2Vha1B0cihjbGllbnQpKTsK
KyAgICBtX2NsaWVudE1hcC5hZGQoY2xpZW50LmlkZW50aWZpZXIoKSwgY2xpZW50KTsKIH0KIAog
dm9pZCBXZWJTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb246OnVucmVnaXN0ZXJDbGllbnQoV2Vi
Q29yZTo6U3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uQ2xpZW50JiBjbGllbnQpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9Db2NvYS9XZWJQYWdlQ29jb2Eu
bW0gYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9Db2NvYS9XZWJQYWdlQ29jb2Eu
bW0KaW5kZXggZTliZGQ1N2MxNDkzNDY0ODQyNTNiZTI5Y2FjMjhhMjIyOTEzMzA5Ny4uYTI3Mzc1
YjI5Y2VlZmFiMzg1ZTQ4ZDA4M2RlYzViN2EwZWJkNzQxMSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvQ29jb2EvV2ViUGFnZUNvY29hLm1tCisrKyBiL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL0NvY29hL1dlYlBhZ2VDb2NvYS5tbQpAQCAtMjcy
LDcgKzI3Miw3IEBAIHZvaWQgV2ViUGFnZTo6Z2V0Q29udGVudHNBc0F0dHJpYnV0ZWRTdHJpbmco
Q29tcGxldGlvbkhhbmRsZXI8dm9pZChjb25zdCBXZWJDb3JlCiAKIHZvaWQgV2ViUGFnZTo6c2V0
UmVtb3RlT2JqZWN0UmVnaXN0cnkoV2ViUmVtb3RlT2JqZWN0UmVnaXN0cnkqIHJlZ2lzdHJ5KQog
ewotICAgIG1fcmVtb3RlT2JqZWN0UmVnaXN0cnkgPSBtYWtlV2Vha1B0cihyZWdpc3RyeSk7Cisg
ICAgbV9yZW1vdGVPYmplY3RSZWdpc3RyeSA9IHJlZ2lzdHJ5OwogfQogCiBXZWJSZW1vdGVPYmpl
Y3RSZWdpc3RyeSogV2ViUGFnZTo6cmVtb3RlT2JqZWN0UmVnaXN0cnkoKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvRmluZENvbnRyb2xsZXIuY3BwIGIvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvRmluZENvbnRyb2xsZXIuY3BwCmluZGV4IGI3
NzNmMGJlMzQ2NzQ4OTIxNGY5NmY4NmUyZTM5OWE2MjE1YjI0YzMuLmI1MGFlZDE2MmZjNTJlN2Y0
YThjMzljYTAzNjY1OWM1NWIwODkwYTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9XZWJQYWdlL0ZpbmRDb250cm9sbGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvV2ViUGFnZS9GaW5kQ29udHJvbGxlci5jcHAKQEAgLTU0NSw3ICs1NDUsNyBAQCB2b2lk
IEZpbmRDb250cm9sbGVyOjpkcmF3UmVjdChQYWdlT3ZlcmxheSYsIEdyYXBoaWNzQ29udGV4dCYg
Z3JhcGhpY3NDb250ZXh0LCBjbwogCiAgICAgICAgIGlmIChmaW5kSW5kaWNhdG9yUmVjdCAhPSBt
X2ZpbmRJbmRpY2F0b3JSZWN0KSB7CiAgICAgICAgICAgICAvLyBXZSBhcmUgdW5kZXJuZWF0aCBw
YWludGluZywgc28gaXQncyBub3Qgc2FmZSB0byBtdXRhdGUgdGhlIGxheWVyIHRyZWUgc3luY2hy
b25vdXNseS4KLSAgICAgICAgICAgIGNhbGxPbk1haW5SdW5Mb29wKFt3ZWFrV2ViUGFnZSA9IG1h
a2VXZWFrUHRyKG1fd2ViUGFnZSldIHsKKyAgICAgICAgICAgIGNhbGxPbk1haW5SdW5Mb29wKFt3
ZWFrV2ViUGFnZSA9IFdlYWtQdHIgeyBtX3dlYlBhZ2UgfV0gewogICAgICAgICAgICAgICAgIGlm
ICghd2Vha1dlYlBhZ2UpCiAgICAgICAgICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgICAg
ICAgICB3ZWFrV2ViUGFnZS0+ZmluZENvbnRyb2xsZXIoKS5kaWRTY3JvbGxBZmZlY3RpbmdGaW5k
SW5kaWNhdG9yUG9zaXRpb24oKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9XZWJQYWdlL0lQQ1Rlc3RpbmdBUEkuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dl
YlBhZ2UvSVBDVGVzdGluZ0FQSS5jcHAKaW5kZXggNjAwNTRhYTkzZTNiNWEyN2I3YzU4YjIzMWE3
ZGFhYWJmYzM4YjQ0NC4uOWM5NjAyYzAyYjM0YjUyMjc0M2YwNDJmM2NmMjQ0NjVmNTgwMTZlMiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvSVBDVGVzdGluZ0FQ
SS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvSVBDVGVzdGluZ0FQ
SS5jcHAKQEAgLTE2Nyw4ICsxNjcsOCBAQCBwdWJsaWM6CiAKIHByaXZhdGU6CiAgICAgSlNJUEMo
V2ViUGFnZSYgd2ViUGFnZSwgV2ViRnJhbWUmIHdlYkZyYW1lKQotICAgICAgICA6IG1fd2ViUGFn
ZShtYWtlV2Vha1B0cih3ZWJQYWdlKSkKLSAgICAgICAgLCBtX3dlYkZyYW1lKG1ha2VXZWFrUHRy
KHdlYkZyYW1lKSkKKyAgICAgICAgOiBtX3dlYlBhZ2Uod2ViUGFnZSkKKyAgICAgICAgLCBtX3dl
YkZyYW1lKHdlYkZyYW1lKQogICAgIHsgfQogCiAgICAgc3RhdGljIEpTSVBDKiB1bndyYXAoSlNP
YmplY3RSZWYpOwpAQCAtMTQxOSw3ICsxNDE5LDcgQEAgSlNWYWx1ZVJlZiBKU0lQQzo6bWVzc2Fn
ZXMoSlNDb250ZXh0UmVmIGNvbnRleHQsIEpTT2JqZWN0UmVmIHRoaXNPYmplY3QsIEpTU3RyaW4K
IH0KIAogSlNNZXNzYWdlTGlzdGVuZXI6OkpTTWVzc2FnZUxpc3RlbmVyKEpTSVBDJiBqc0lQQywg
VHlwZSB0eXBlLCBKU0NvbnRleHRSZWYgY29udGV4dCwgSlNPYmplY3RSZWYgY2FsbGJhY2spCi0g
ICAgOiBtX2pzSVBDKG1ha2VXZWFrUHRyKGpzSVBDKSkKKyAgICA6IG1fanNJUEMoanNJUEMpCiAg
ICAgLCBtX3R5cGUodHlwZSkKICAgICAsIG1fY29udGV4dChjb250ZXh0KQogICAgICwgbV9jYWxs
YmFjayhjYWxsYmFjaykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQ
YWdlL1JlbW90ZUxheWVyVHJlZS9SZW1vdGVMYXllclRyZWVEaXNwbGF5UmVmcmVzaE1vbml0b3Iu
bW0gYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9SZW1vdGVMYXllclRyZWUvUmVt
b3RlTGF5ZXJUcmVlRGlzcGxheVJlZnJlc2hNb25pdG9yLm1tCmluZGV4IGNjMzllM2QxNjI0Zjk3
Yzg4OWNiZGNjZWU2NGU2OTBmN2RhNzVhZWIuLjdhNWFjZGQwYjUwZGNmNjBlZTRiMDczMzFjZThl
NzA3N2Q2ODI3Y2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdl
L1JlbW90ZUxheWVyVHJlZS9SZW1vdGVMYXllclRyZWVEaXNwbGF5UmVmcmVzaE1vbml0b3IubW0K
KysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvUmVtb3RlTGF5ZXJUcmVlL1Jl
bW90ZUxheWVyVHJlZURpc3BsYXlSZWZyZXNoTW9uaXRvci5tbQpAQCAtMzYsNyArMzYsNyBAQCBj
b25zdGV4cHIgRnJhbWVzUGVyU2Vjb25kIERlZmF1bHRQcmVmZXJyZWRGcmFtZXNQZXJTZWNvbmQg
PSA2MDsKIAogUmVtb3RlTGF5ZXJUcmVlRGlzcGxheVJlZnJlc2hNb25pdG9yOjpSZW1vdGVMYXll
clRyZWVEaXNwbGF5UmVmcmVzaE1vbml0b3IoUGxhdGZvcm1EaXNwbGF5SUQgZGlzcGxheUlELCBS
ZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYSYgZHJhd2luZ0FyZWEpCiAgICAgOiBEaXNwbGF5UmVm
cmVzaE1vbml0b3IoZGlzcGxheUlEKQotICAgICwgbV9kcmF3aW5nQXJlYShtYWtlV2Vha1B0cihk
cmF3aW5nQXJlYSkpCisgICAgLCBtX2RyYXdpbmdBcmVhKGRyYXdpbmdBcmVhKQogICAgICwgbV9w
cmVmZXJyZWRGcmFtZXNQZXJTZWNvbmQoRGVmYXVsdFByZWZlcnJlZEZyYW1lc1BlclNlY29uZCkK
ICAgICAsIG1fY3VycmVudFVwZGF0ZSh7IDAsIG1fcHJlZmVycmVkRnJhbWVzUGVyU2Vjb25kIH0p
CiB7CkBAIC05MCw3ICs5MCw3IEBAIHZvaWQgUmVtb3RlTGF5ZXJUcmVlRGlzcGxheVJlZnJlc2hN
b25pdG9yOjpkaWRVcGRhdGVMYXllcnMoKQogCiB2b2lkIFJlbW90ZUxheWVyVHJlZURpc3BsYXlS
ZWZyZXNoTW9uaXRvcjo6dXBkYXRlRHJhd2luZ0FyZWEoUmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0Fy
ZWEmIGRyYXdpbmdBcmVhKQogewotICAgIG1fZHJhd2luZ0FyZWEgPSBtYWtlV2Vha1B0cihkcmF3
aW5nQXJlYSk7CisgICAgbV9kcmF3aW5nQXJlYSA9IGRyYXdpbmdBcmVhOwogfQogCiBzdGQ6Om9w
dGlvbmFsPEZyYW1lc1BlclNlY29uZD4gUmVtb3RlTGF5ZXJUcmVlRGlzcGxheVJlZnJlc2hNb25p
dG9yOjpkaXNwbGF5Tm9taW5hbEZyYW1lc1BlclNlY29uZCgpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJDb250ZXh0TWVudS5jcHAgYi9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJDb250ZXh0TWVudS5jcHAKaW5kZXggMjg2NzMwYTM4
M2Q2Y2NjYTg0MzE2NTg1YWIzMWEwN2EyNGU1ZmM5Yi4uYjE4Y2VjNThlM2E2MTg4NTFlNDM2YmY3
OTNjMzM1NjVjNzA4YWE1YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dl
YlBhZ2UvV2ViQ29udGV4dE1lbnUuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9X
ZWJQYWdlL1dlYkNvbnRleHRNZW51LmNwcApAQCAtNDEsNyArNDEsNyBAQCBuYW1lc3BhY2UgV2Vi
S2l0IHsKIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogCiBXZWJDb250ZXh0TWVudTo6V2ViQ29u
dGV4dE1lbnUoV2ViUGFnZSYgcGFnZSkKLSAgICA6IG1fcGFnZShtYWtlV2Vha1B0cihwYWdlKSkK
KyAgICA6IG1fcGFnZShwYWdlKQogewogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvV2ViUGFnZS9XZWJGcmFtZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
V2ViUGFnZS9XZWJGcmFtZS5jcHAKaW5kZXggODE1NzgzNzhlODdhNWI5NGM3YTQ5YmY1NWM2M2E2
NjE3NmJiMzY1YS4uZDkxOWU0NDhmNzU1Zjk4YjZkMGU5ZWFiNzRmNTNmZjI0OGJiYmYzMiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViRnJhbWUuY3BwCisr
KyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYkZyYW1lLmNwcApAQCAtMTA4
LDcgKzEwOCw3IEBAIHZvaWQgV2ViRnJhbWU6OmluaXRXaXRoQ29yZU1haW5GcmFtZShXZWJQYWdl
JiBwYWdlLCBGcmFtZSYgY29yZUZyYW1lKQogewogICAgIHBhZ2Uuc2VuZChNZXNzYWdlczo6V2Vi
UGFnZVByb3h5OjpEaWRDcmVhdGVNYWluRnJhbWUoZnJhbWVJRCgpKSk7CiAKLSAgICBtX2NvcmVG
cmFtZSA9IG1ha2VXZWFrUHRyKGNvcmVGcmFtZSk7CisgICAgbV9jb3JlRnJhbWUgPSBjb3JlRnJh
bWU7CiAgICAgbV9jb3JlRnJhbWUtPnRyZWUoKS5zZXROYW1lKFN0cmluZygpKTsKICAgICBtX2Nv
cmVGcmFtZS0+aW5pdCgpOwogfQpAQCAtMTE5LDcgKzExOSw3IEBAIFJlZjxXZWJGcmFtZT4gV2Vi
RnJhbWU6OmNyZWF0ZVN1YmZyYW1lKFdlYlBhZ2UqIHBhZ2UsIGNvbnN0IFN0cmluZyYgZnJhbWVO
YW1lLCBICiAgICAgcGFnZS0+c2VuZChNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpEaWRDcmVhdGVT
dWJmcmFtZShmcmFtZS0+ZnJhbWVJRCgpKSk7CiAKICAgICBhdXRvIGNvcmVGcmFtZSA9IEZyYW1l
OjpjcmVhdGUocGFnZS0+Y29yZVBhZ2UoKSwgb3duZXJFbGVtZW50LCBtYWtlVW5pcXVlUmVmPFdl
YkZyYW1lTG9hZGVyQ2xpZW50PihmcmFtZS5nZXQoKSkpOwotICAgIGZyYW1lLT5tX2NvcmVGcmFt
ZSA9IG1ha2VXZWFrUHRyKGNvcmVGcmFtZS5nZXQoKSk7CisgICAgZnJhbWUtPm1fY29yZUZyYW1l
ID0gY29yZUZyYW1lOwogCiAgICAgY29yZUZyYW1lLT50cmVlKCkuc2V0TmFtZShmcmFtZU5hbWUp
OwogICAgIGlmIChvd25lckVsZW1lbnQpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9XZWJQYWdlL1dlYkZyYW1lLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2Vi
UGFnZS9XZWJGcmFtZS5oCmluZGV4IGIwY2NkOGVhZDQ5MGY5YmJmZGE2YWQ4ZGNkNDhmNTlhMTA2
NTMyMjQuLjU3MjY2ZTRkNTQwNzNlMDg5ODNjOWYzZGFmY2Q5NDkzMmE3OTJmMDUgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYkZyYW1lLmgKKysrIGIvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViRnJhbWUuaApAQCAtMTczLDcgKzE3Myw3
IEBAIHB1YmxpYzoKICAgICAgICAgdmlydHVhbCB2b2lkIGRpZEZpbmlzaExvYWQoV2ViRnJhbWUq
KSA9IDA7CiAgICAgICAgIHZpcnR1YWwgdm9pZCBkaWRGYWlsTG9hZChXZWJGcmFtZSosIGJvb2wg
d2FzQ2FuY2VsbGVkKSA9IDA7CiAgICAgfTsKLSAgICB2b2lkIHNldExvYWRMaXN0ZW5lcihMb2Fk
TGlzdGVuZXIqIGxvYWRMaXN0ZW5lcikgeyBtX2xvYWRMaXN0ZW5lciA9IG1ha2VXZWFrUHRyKGxv
YWRMaXN0ZW5lcik7IH0KKyAgICB2b2lkIHNldExvYWRMaXN0ZW5lcihMb2FkTGlzdGVuZXIqIGxv
YWRMaXN0ZW5lcikgeyBtX2xvYWRMaXN0ZW5lciA9IGxvYWRMaXN0ZW5lcjsgfQogICAgIExvYWRM
aXN0ZW5lciogbG9hZExpc3RlbmVyKCkgY29uc3QgeyByZXR1cm4gbV9sb2FkTGlzdGVuZXIuZ2V0
KCk7IH0KICAgICAKICNpZiBQTEFURk9STShDT0NPQSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKaW5kZXggZWZmOGIxOGIxZDAwNzJmZTJlMWQwZWVkNWNl
NGQ0NzI1NTc0YjFhZS4uN2Y0MzQ0MjA0NDRlM2M2OTQ4YTQ3MzdmYmViZTUyYWE0NDY0YzM0ZiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAK
KysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKQEAgLTQ2
MDAsNyArNDYwMCw3IEBAIHZvaWQgV2ViUGFnZTo6ZGlkQ2hvb3NlQ29sb3IoY29uc3QgV2ViQ29y
ZTo6Q29sb3ImIGNvbG9yKQogCiB2b2lkIFdlYlBhZ2U6OnNldEFjdGl2ZURhdGFMaXN0U3VnZ2Vz
dGlvblBpY2tlcihXZWJEYXRhTGlzdFN1Z2dlc3Rpb25QaWNrZXImIGRhdGFMaXN0U3VnZ2VzdGlv
blBpY2tlcikKIHsKLSAgICBtX2FjdGl2ZURhdGFMaXN0U3VnZ2VzdGlvblBpY2tlciA9IG1ha2VX
ZWFrUHRyKCZkYXRhTGlzdFN1Z2dlc3Rpb25QaWNrZXIpOworICAgIG1fYWN0aXZlRGF0YUxpc3RT
dWdnZXN0aW9uUGlja2VyID0gZGF0YUxpc3RTdWdnZXN0aW9uUGlja2VyOwogfQogCiB2b2lkIFdl
YlBhZ2U6OmRpZFNlbGVjdERhdGFMaXN0T3B0aW9uKGNvbnN0IFN0cmluZyYgc2VsZWN0ZWRPcHRp
b24pCkBAIC00NjIxLDcgKzQ2MjEsNyBAQCB2b2lkIFdlYlBhZ2U6OmRpZENsb3NlU3VnZ2VzdGlv
bnMoKQogCiB2b2lkIFdlYlBhZ2U6OnNldEFjdGl2ZURhdGVUaW1lQ2hvb3NlcihXZWJEYXRlVGlt
ZUNob29zZXImIGRhdGVUaW1lQ2hvb3NlcikKIHsKLSAgICBtX2FjdGl2ZURhdGVUaW1lQ2hvb3Nl
ciA9IG1ha2VXZWFrUHRyKCZkYXRlVGltZUNob29zZXIpOworICAgIG1fYWN0aXZlRGF0ZVRpbWVD
aG9vc2VyID0gZGF0ZVRpbWVDaG9vc2VyOwogfQogCiB2b2lkIFdlYlBhZ2U6OmRpZENob29zZURh
dGUoY29uc3QgU3RyaW5nJiBkYXRlKQpAQCAtNzMyNiw3ICs3MzI2LDcgQEAgdm9pZCBXZWJQYWdl
OjpzdGFydFRleHRNYW5pcHVsYXRpb25zKFZlY3RvcjxXZWJDb3JlOjpUZXh0TWFuaXB1bGF0aW9u
Q29udHJvbGxlcjoKICAgICBpZiAoIW1haW5Eb2N1bWVudCkKICAgICAgICAgcmV0dXJuOwogCi0g
ICAgbWFpbkRvY3VtZW50LT50ZXh0TWFuaXB1bGF0aW9uQ29udHJvbGxlcigpLnN0YXJ0T2JzZXJ2
aW5nUGFyYWdyYXBocyhbd2ViUGFnZSA9IG1ha2VXZWFrUHRyKCp0aGlzKV0gKERvY3VtZW50JiBk
b2N1bWVudCwgY29uc3QgVmVjdG9yPFdlYkNvcmU6OlRleHRNYW5pcHVsYXRpb25Db250cm9sbGVy
OjpNYW5pcHVsYXRpb25JdGVtPiYgaXRlbXMpIHsKKyAgICBtYWluRG9jdW1lbnQtPnRleHRNYW5p
cHVsYXRpb25Db250cm9sbGVyKCkuc3RhcnRPYnNlcnZpbmdQYXJhZ3JhcGhzKFt3ZWJQYWdlID0g
V2Vha1B0ciB7ICp0aGlzIH1dIChEb2N1bWVudCYgZG9jdW1lbnQsIGNvbnN0IFZlY3RvcjxXZWJD
b3JlOjpUZXh0TWFuaXB1bGF0aW9uQ29udHJvbGxlcjo6TWFuaXB1bGF0aW9uSXRlbT4mIGl0ZW1z
KSB7CiAgICAgICAgIGF1dG8qIGZyYW1lID0gZG9jdW1lbnQuZnJhbWUoKTsKICAgICAgICAgaWYg
KCF3ZWJQYWdlIHx8ICFmcmFtZSB8fCB3ZWJQYWdlLT5tYWluRnJhbWUoKSAhPSBmcmFtZSkKICAg
ICAgICAgICAgIHJldHVybjsKQEAgLTc1MzcsMTEgKzc1MzcsMTEgQEAgdm9pZCBXZWJQYWdlOjpy
ZXF1ZXN0VGV4dFJlY29nbml0aW9uKFdlYkNvcmU6OkVsZW1lbnQmIGVsZW1lbnQsIENvbXBsZXRp
b25IYW5kbGUKICAgICBWZWN0b3I8Q29tcGxldGlvbkhhbmRsZXI8dm9pZChSZWZQdHI8RWxlbWVu
dD4mJik+PiBjb21wbGV0aW9uSGFuZGxlcnM7CiAgICAgaWYgKGNvbXBsZXRpb24pCiAgICAgICAg
IGNvbXBsZXRpb25IYW5kbGVycy5hcHBlbmQoV1RGTW92ZShjb21wbGV0aW9uKSk7Ci0gICAgbV9l
bGVtZW50c1BlbmRpbmdUZXh0UmVjb2duaXRpb24uYXBwZW5kKHsgbWFrZVdlYWtQdHIoZWxlbWVu
dCksIFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXJzKSB9KTsKKyAgICBtX2VsZW1lbnRzUGVuZGlu
Z1RleHRSZWNvZ25pdGlvbi5hcHBlbmQoeyBXZWFrUHRyIHsgZWxlbWVudCB9LCBXVEZNb3ZlKGNv
bXBsZXRpb25IYW5kbGVycykgfSk7CiAKICAgICBhdXRvIGNhY2hlZEltYWdlID0gcmVuZGVySW1h
Z2UuY2FjaGVkSW1hZ2UoKTsKICAgICBhdXRvIGltYWdlVVJMID0gY2FjaGVkSW1hZ2UgPyBlbGVt
ZW50LmRvY3VtZW50KCkuY29tcGxldGVVUkwoY2FjaGVkSW1hZ2UtPnVybCgpLnN0cmluZygpKSA6
IFVSTCB7IH07Ci0gICAgc2VuZFdpdGhBc3luY1JlcGx5KE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6
OlJlcXVlc3RUZXh0UmVjb2duaXRpb24oV1RGTW92ZShpbWFnZVVSTCksIFdURk1vdmUoYml0bWFw
SGFuZGxlKSksIFt3ZWJQYWdlID0gbWFrZVdlYWtQdHIoKnRoaXMpLCB3ZWFrRWxlbWVudCA9IG1h
a2VXZWFrUHRyKGVsZW1lbnQpXSAoYXV0byYmIHJlc3VsdCkgeworICAgIHNlbmRXaXRoQXN5bmNS
ZXBseShNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpSZXF1ZXN0VGV4dFJlY29nbml0aW9uKFdURk1v
dmUoaW1hZ2VVUkwpLCBXVEZNb3ZlKGJpdG1hcEhhbmRsZSkpLCBbd2ViUGFnZSA9IFdlYWtQdHIg
eyAqdGhpcyB9LCB3ZWFrRWxlbWVudCA9IFdlYWtQdHIgeyBlbGVtZW50IH1dIChhdXRvJiYgcmVz
dWx0KSB7CiAgICAgICAgIFJlZlB0ciBwcm90ZWN0ZWRQYWdlIHsgd2ViUGFnZS5nZXQoKSB9Owog
ICAgICAgICBpZiAoIXByb3RlY3RlZFBhZ2UpCiAgICAgICAgICAgICByZXR1cm47CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9pb3MvV2ViUGFnZUlPUy5tbSBi
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL2lvcy9XZWJQYWdlSU9TLm1tCmluZGV4
IDgwZGU4NjBiOTA3ZTJlYWFjMTFjYzFjNDEyMTlmNDdkNDQ0ZDk0MDguLjExMmM4ZGNlMzIzMGUz
YjYwNjE3MWJiZTk5NTE0ZTJhNThhZThlMjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9XZWJQYWdlL2lvcy9XZWJQYWdlSU9TLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9XZWJQYWdlL2lvcy9XZWJQYWdlSU9TLm1tCkBAIC04MTIsNyArODEyLDcgQEAgdm9p
ZCBXZWJQYWdlOjpkaWRGaW5pc2hDb250ZW50Q2hhbmdlT2JzZXJ2aW5nKFdLQ29udGVudENoYW5n
ZSBvYnNlcnZlZENvbnRlbnRDaGEKICAgICBMT0dfV0lUSF9TVFJFQU0oQ29udGVudE9ic2VydmF0
aW9uLCBzdHJlYW0gPDwgImRpZEZpbmlzaENvbnRlbnRDaGFuZ2VPYnNlcnZpbmc6IHBlbmRpbmcg
dGFyZ2V0IG5vZGUoIiA8PCBtX3BlbmRpbmdTeW50aGV0aWNDbGlja05vZGUgPDwgIikiKTsKICAg
ICBpZiAoIW1fcGVuZGluZ1N5bnRoZXRpY0NsaWNrTm9kZSkKICAgICAgICAgcmV0dXJuOwotICAg
IGNhbGxPbk1haW5SdW5Mb29wKFtwcm90ZWN0ZWRUaGlzID0gUmVmIHsgKnRoaXMgfSwgdGFyZ2V0
Tm9kZSA9IFJlZjxOb2RlPigqbV9wZW5kaW5nU3ludGhldGljQ2xpY2tOb2RlKSwgb3JpZ2luYWxE
b2N1bWVudCA9IG1ha2VXZWFrUHRyKG1fcGVuZGluZ1N5bnRoZXRpY0NsaWNrTm9kZS0+ZG9jdW1l
bnQoKSksIG9ic2VydmVkQ29udGVudENoYW5nZSwgbG9jYXRpb24gPSBtX3BlbmRpbmdTeW50aGV0
aWNDbGlja0xvY2F0aW9uLCBtb2RpZmllcnMgPSBtX3BlbmRpbmdTeW50aGV0aWNDbGlja01vZGlm
aWVycywgcG9pbnRlcklkID0gbV9wZW5kaW5nU3ludGhldGljQ2xpY2tQb2ludGVySWRdIHsKKyAg
ICBjYWxsT25NYWluUnVuTG9vcChbcHJvdGVjdGVkVGhpcyA9IFJlZiB7ICp0aGlzIH0sIHRhcmdl
dE5vZGUgPSBSZWY8Tm9kZT4oKm1fcGVuZGluZ1N5bnRoZXRpY0NsaWNrTm9kZSksIG9yaWdpbmFs
RG9jdW1lbnQgPSBXZWFrUHRyIHsgbV9wZW5kaW5nU3ludGhldGljQ2xpY2tOb2RlLT5kb2N1bWVu
dCgpIH0sIG9ic2VydmVkQ29udGVudENoYW5nZSwgbG9jYXRpb24gPSBtX3BlbmRpbmdTeW50aGV0
aWNDbGlja0xvY2F0aW9uLCBtb2RpZmllcnMgPSBtX3BlbmRpbmdTeW50aGV0aWNDbGlja01vZGlm
aWVycywgcG9pbnRlcklkID0gbV9wZW5kaW5nU3ludGhldGljQ2xpY2tQb2ludGVySWRdIHsKICAg
ICAgICAgaWYgKHByb3RlY3RlZFRoaXMtPm1faXNDbG9zZWQgfHwgIXByb3RlY3RlZFRoaXMtPmNv
cmVQYWdlKCkpCiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIGlmICghb3JpZ2luYWxEb2N1
bWVudCB8fCAmdGFyZ2V0Tm9kZS0+ZG9jdW1lbnQoKSAhPSBvcmlnaW5hbERvY3VtZW50KQpAQCAt
MjIwMiw3ICsyMjAyLDcgQEAgdm9pZCBXZWJQYWdlOjpzZWxlY3RUZXh0V2l0aEdyYW51bGFyaXR5
QXRQb2ludChjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYgcG9pbnQsIFcKICAgICBpZiAoYXV0byBz
ZWxlY3Rpb25DaGFuZ2VkSGFuZGxlciA9IHN0ZDo6ZXhjaGFuZ2UobV9zZWxlY3Rpb25DaGFuZ2Vk
SGFuZGxlciwge30pKQogICAgICAgICBzZWxlY3Rpb25DaGFuZ2VkSGFuZGxlcigpOwogCi0gICAg
bV9zZWxlY3Rpb25DaGFuZ2VkSGFuZGxlciA9IFtwb2ludCwgZ3JhbnVsYXJpdHksIGlzSW50ZXJh
Y3RpbmdXaXRoRm9jdXNlZEVsZW1lbnQsIGNvbXBsZXRpb25IYW5kbGVyID0gV1RGTW92ZShjb21w
bGV0aW9uSGFuZGxlciksIHdlYlBhZ2UgPSBtYWtlV2Vha1B0cigqdGhpcyksIHRoaXNdKCkgbXV0
YWJsZSB7CisgICAgbV9zZWxlY3Rpb25DaGFuZ2VkSGFuZGxlciA9IFtwb2ludCwgZ3JhbnVsYXJp
dHksIGlzSW50ZXJhY3RpbmdXaXRoRm9jdXNlZEVsZW1lbnQsIGNvbXBsZXRpb25IYW5kbGVyID0g
V1RGTW92ZShjb21wbGV0aW9uSGFuZGxlciksIHdlYlBhZ2UgPSBXZWFrUHRyIHsgKnRoaXMgfSwg
dGhpc10oKSBtdXRhYmxlIHsKICAgICAgICAgUmVmUHRyPFdlYlBhZ2U+IHN0cm9uZ1BhZ2UgPSB3
ZWJQYWdlLmdldCgpOwogICAgICAgICBpZiAoIXN0cm9uZ1BhZ2UpIHsKICAgICAgICAgICAgIGNv
bXBsZXRpb25IYW5kbGVyKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
V2ViUGFnZS9tYWMvV2ViUGFnZU1hYy5tbSBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQ
YWdlL21hYy9XZWJQYWdlTWFjLm1tCmluZGV4IGMyNTVmMzhjMzU4YTBjNWM0ZTE3YTY2MjFkN2Iz
N2RkZTQ1ZjYxZTUuLmIzYzQ4YmJiNGEyOGI4MGNkY2MxYjg5ODAwNzgwYTdkYjkwYTI1MTYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9XZWJQYWdlTWFj
Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9XZWJQYWdlTWFj
Lm1tCkBAIC0xMTQ0LDcgKzExNDQsNyBAQCB2b2lkIFdlYlBhZ2U6Om9wZW5QREZXaXRoUHJldmll
dyhQREZQbHVnaW5JZGVudGlmaWVyIGlkZW50aWZpZXIsIENvbXBsZXRpb25IYW5kbAogCiB2b2lk
IFdlYlBhZ2U6OmNyZWF0ZVBERkhVRChQREZQbHVnaW4mIHBsdWdpbiwgY29uc3QgSW50UmVjdCYg
Ym91bmRpbmdCb3gpCiB7Ci0gICAgYXV0byBhZGRSZXN1bHQgPSBtX3BkZlBsdWdJbnNXaXRoSFVE
LmFkZChwbHVnaW4uaWRlbnRpZmllcigpLCBtYWtlV2Vha1B0cihwbHVnaW4pKTsKKyAgICBhdXRv
IGFkZFJlc3VsdCA9IG1fcGRmUGx1Z0luc1dpdGhIVUQuYWRkKHBsdWdpbi5pZGVudGlmaWVyKCks
IHBsdWdpbik7CiAgICAgaWYgKGFkZFJlc3VsdC5pc05ld0VudHJ5KQogICAgICAgICBzZW5kKE1l
c3NhZ2VzOjpXZWJQYWdlUHJveHk6OkNyZWF0ZVBERkhVRChwbHVnaW4uaWRlbnRpZmllcigpLCBi
b3VuZGluZ0JveCkpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dl
YlN0b3JhZ2UvU3RvcmFnZUFyZWFJbXBsLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9X
ZWJTdG9yYWdlL1N0b3JhZ2VBcmVhSW1wbC5jcHAKaW5kZXggOGE1NDdlYTg5OTQ3NDRlYmJkZjgx
MzNhNDczOGZiNDY3NzExMDQxYi4uYjEyYzU4YzBhYWQ2N2U5OTU3NzA2ZTI5ZTZkZTY1NjllZmU2
NDg0NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlN0b3JhZ2UvU3Rv
cmFnZUFyZWFJbXBsLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViU3RvcmFn
ZS9TdG9yYWdlQXJlYUltcGwuY3BwCkBAIC00NCw3ICs0NCw3IEBAIFJlZjxTdG9yYWdlQXJlYUlt
cGw+IFN0b3JhZ2VBcmVhSW1wbDo6Y3JlYXRlKFN0b3JhZ2VBcmVhTWFwJiBzdG9yYWdlQXJlYU1h
cCkKIAogU3RvcmFnZUFyZWFJbXBsOjpTdG9yYWdlQXJlYUltcGwoU3RvcmFnZUFyZWFNYXAmIHN0
b3JhZ2VBcmVhTWFwKQogICAgIDogbV9pZGVudGlmaWVyKElkZW50aWZpZXI6OmdlbmVyYXRlKCkp
Ci0gICAgLCBtX3N0b3JhZ2VBcmVhTWFwKG1ha2VXZWFrUHRyKHN0b3JhZ2VBcmVhTWFwKSkKKyAg
ICAsIG1fc3RvcmFnZUFyZWFNYXAoc3RvcmFnZUFyZWFNYXApCiB7CiAgICAgc3RvcmFnZUFyZWFN
YXAuaW5jcmVtZW50VXNlQ291bnQoKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9jb2NvYS9BdWRpb1Nlc3Npb25Sb3V0aW5nQXJiaXRyYXRvci5jcHAgYi9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvQXVkaW9TZXNzaW9uUm91dGluZ0FyYml0cmF0b3IuY3Bw
CmluZGV4IDdlZWQzOWRiODdkNWI1YWFlNTE4NTU4OWU5YjFmZTIzODBhYWE5MjEuLmNjNjk4ZDc0
MDAyMDVkMmEwOGZmNmFkNTI1YzQzNWQ2N2EyZTM0NzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9jb2NvYS9BdWRpb1Nlc3Npb25Sb3V0aW5nQXJiaXRyYXRvci5jcHAKKysr
IGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL0F1ZGlvU2Vzc2lvblJvdXRpbmdBcmJp
dHJhdG9yLmNwcApAQCAtMzksNyArMzksNyBAQCB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIAog
QXVkaW9TZXNzaW9uUm91dGluZ0FyYml0cmF0b3I6OkF1ZGlvU2Vzc2lvblJvdXRpbmdBcmJpdHJh
dG9yKFdlYlByb2Nlc3MmIHByb2Nlc3MpCiAgICAgOiBtX3Byb2Nlc3MocHJvY2VzcykKLSAgICAs
IG1fb2JzZXJ2ZXIoW3RoaXNdIChBdWRpb1Nlc3Npb24mIHNlc3Npb24pIHsgc2Vzc2lvbi5zZXRS
b3V0aW5nQXJiaXRyYXRpb25DbGllbnQobWFrZVdlYWtQdHIodGhpcykpOyB9KQorICAgICwgbV9v
YnNlcnZlcihbdGhpc10gKEF1ZGlvU2Vzc2lvbiYgc2Vzc2lvbikgeyBzZXNzaW9uLnNldFJvdXRp
bmdBcmJpdHJhdGlvbkNsaWVudChXZWFrUHRyIHsgKnRoaXMgfSk7IH0pCiB7CiAgICAgQXVkaW9T
ZXNzaW9uOjphZGRBdWRpb1Nlc3Npb25DaGFuZ2VkT2JzZXJ2ZXIobV9vYnNlcnZlcik7CiB9CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvVmlkZW9GdWxsc2NyZWVu
TWFuYWdlci5tbSBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9WaWRlb0Z1bGxzY3Jl
ZW5NYW5hZ2VyLm1tCmluZGV4IDdiMzRlNDM4MGZjMjhmYTAwMTVjMTNjNzc3MzRkYWVkYjhjYmJk
M2YuLjEzYTZiZjkxYzlmNTNmNTUzYzRiN2NlNzQ0MjY2YTAxY2MxMGQ5MjEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9WaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyLm1t
CisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9WaWRlb0Z1bGxzY3JlZW5NYW5h
Z2VyLm1tCkBAIC0yNzUsNyArMjc1LDcgQEAgdm9pZCBWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyOjpl
bnRlclZpZGVvRnVsbHNjcmVlbkZvclZpZGVvRWxlbWVudChIVE1MVmlkZW9FbGVtZW4KICAgICAg
ICAgaW50ZXJmYWNlLT5zZXRUYXJnZXRJc0Z1bGxzY3JlZW4oZmFsc2UpOwogCiAgICAgaWYgKG1v
ZGUgPT0gSFRNTE1lZGlhRWxlbWVudEVudW1zOjpWaWRlb0Z1bGxzY3JlZW5Nb2RlUGljdHVyZUlu
UGljdHVyZSkKLSAgICAgICAgbV92aWRlb0VsZW1lbnRJblBpY3R1cmVJblBpY3R1cmUgPSBtYWtl
V2Vha1B0cih2aWRlb0VsZW1lbnQpOworICAgICAgICBtX3ZpZGVvRWxlbWVudEluUGljdHVyZUlu
UGljdHVyZSA9IHZpZGVvRWxlbWVudDsKIAogICAgIGludGVyZmFjZS0+c2V0RnVsbHNjcmVlbk1v
ZGUobW9kZSk7CiAgICAgaW50ZXJmYWNlLT5zZXRGdWxsc2NyZWVuU3RhbmRieShzdGFuZGJ5KTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvU3RvcmFnZS9JblByb2Nlc3NJREJTZXJ2
ZXIuY3BwIGIvU291cmNlL1dlYktpdExlZ2FjeS9TdG9yYWdlL0luUHJvY2Vzc0lEQlNlcnZlci5j
cHAKaW5kZXggZDU5MTZjMWE0M2NhOWE2NDViNjdjZWJlMjQwY2FkNWNkOTk1YjFkMi4uNWU0NGMz
Yjg1ODJkNmFmMzdkMGI4NTJlMThhZDgyZTg4MTQ1ZGFjMCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdExlZ2FjeS9TdG9yYWdlL0luUHJvY2Vzc0lEQlNlcnZlci5jcHAKKysrIGIvU291cmNlL1dl
YktpdExlZ2FjeS9TdG9yYWdlL0luUHJvY2Vzc0lEQlNlcnZlci5jcHAKQEAgLTgzLDggKzgzLDgg
QEAgU3RvcmFnZVF1b3RhTWFuYWdlciogSW5Qcm9jZXNzSURCU2VydmVyOjpxdW90YU1hbmFnZXIo
Y29uc3QgQ2xpZW50T3JpZ2luJiBvcmlnaW4KIAogc3RhdGljIGlubGluZSBJREJTZXJ2ZXI6OklE
QlNlcnZlcjo6U3RvcmFnZVF1b3RhTWFuYWdlclNwYWNlUmVxdWVzdGVyIHN0b3JhZ2VRdW90YU1h
bmFnZXJTcGFjZVJlcXVlc3RlcihJblByb2Nlc3NJREJTZXJ2ZXImIHNlcnZlcikKIHsKLSAgICBy
ZXR1cm4gW3NlcnZlciA9ICZzZXJ2ZXIsIHdlYWtTZXJ2ZXIgPSBtYWtlV2Vha1B0cihzZXJ2ZXIp
XShjb25zdCBDbGllbnRPcmlnaW4mIG9yaWdpbiwgdWludDY0X3Qgc3BhY2VSZXF1ZXN0ZWQpIG11
dGFibGUgewotICAgICAgICBhdXRvKiBzdG9yYWdlUXVvdGFNYW5hZ2VyID0gd2Vha1NlcnZlciA/
IHNlcnZlci0+cXVvdGFNYW5hZ2VyKG9yaWdpbikgOiBudWxscHRyOworICAgIHJldHVybiBbd2Vh
a1NlcnZlciA9IFdlYWtQdHIgeyBzZXJ2ZXIgfV0oY29uc3QgQ2xpZW50T3JpZ2luJiBvcmlnaW4s
IHVpbnQ2NF90IHNwYWNlUmVxdWVzdGVkKSBtdXRhYmxlIHsKKyAgICAgICAgYXV0byogc3RvcmFn
ZVF1b3RhTWFuYWdlciA9IHdlYWtTZXJ2ZXIgPyB3ZWFrU2VydmVyLT5xdW90YU1hbmFnZXIob3Jp
Z2luKSA6IG51bGxwdHI7CiAgICAgICAgIHJldHVybiBzdG9yYWdlUXVvdGFNYW5hZ2VyID8gc3Rv
cmFnZVF1b3RhTWFuYWdlci0+cmVxdWVzdFNwYWNlT25CYWNrZ3JvdW5kVGhyZWFkKHNwYWNlUmVx
dWVzdGVkKSA6IFN0b3JhZ2VRdW90YU1hbmFnZXI6OkRlY2lzaW9uOjpEZW55OwogICAgIH07CiB9
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L1dlYkNvcmVTdXBwb3J0L1BhZ2VTdG9y
YWdlU2Vzc2lvblByb3ZpZGVyLmggYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L1dlYkNvcmVTdXBwb3J0
L1BhZ2VTdG9yYWdlU2Vzc2lvblByb3ZpZGVyLmgKaW5kZXggNzU2ZWFiZjNjMTllNTc5OGM5N2U2
MGI3OWMyNzFmZWM1N2U3NjgzYy4uZjIwYzJiNTQ5ZTMzYzY2ODgzNjY5OTM1NjgwOGMxY2JkYjdk
MDdhNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9XZWJDb3JlU3VwcG9ydC9QYWdl
U3RvcmFnZVNlc3Npb25Qcm92aWRlci5oCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvV2ViQ29y
ZVN1cHBvcnQvUGFnZVN0b3JhZ2VTZXNzaW9uUHJvdmlkZXIuaApAQCAtNDQsNyArNDQsNyBAQCBw
dWJsaWM6CiAKICAgICB2b2lkIHNldFBhZ2UoV2ViQ29yZTo6UGFnZSYgcGFnZSkKICAgICB7Ci0g
ICAgICAgIG1fcGFnZSA9IG1ha2VXZWFrUHRyKHBhZ2UpOworICAgICAgICBtX3BhZ2UgPSBwYWdl
OwogICAgIH0KIAogcHJpdmF0ZToKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvV2Vi
Q29yZVN1cHBvcnQvV2ViQnJvYWRjYXN0Q2hhbm5lbFJlZ2lzdHJ5LmNwcCBiL1NvdXJjZS9XZWJL
aXRMZWdhY3kvV2ViQ29yZVN1cHBvcnQvV2ViQnJvYWRjYXN0Q2hhbm5lbFJlZ2lzdHJ5LmNwcApp
bmRleCBkMTAzMjA4YzhmODYzM2Q2MDhhYzIzZTU3ZjRlZjM1Nzg2ZWQ0MmY2Li42NGM2NGIyY2Nj
MWE1ZDBiZDc0ZDNjMDRlNjgxOTQ4NGJmODI4MmU1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
TGVnYWN5L1dlYkNvcmVTdXBwb3J0L1dlYkJyb2FkY2FzdENoYW5uZWxSZWdpc3RyeS5jcHAKKysr
IGIvU291cmNlL1dlYktpdExlZ2FjeS9XZWJDb3JlU3VwcG9ydC9XZWJCcm9hZGNhc3RDaGFubmVs
UmVnaXN0cnkuY3BwCkBAIC00MCw3ICs0MCw3IEBAIFJlZjxXZWJCcm9hZGNhc3RDaGFubmVsUmVn
aXN0cnk+IFdlYkJyb2FkY2FzdENoYW5uZWxSZWdpc3RyeTo6Z2V0T3JDcmVhdGUoYm9vbCBwCiAg
ICAgICAgIHJldHVybiAqZXhpc3RpbmdSZWdpc3RyeS5nZXQoKTsKIAogICAgIGF1dG8gcmVnaXN0
cnkgPSBhZG9wdFJlZigqbmV3IFdlYkJyb2FkY2FzdENoYW5uZWxSZWdpc3RyeSk7Ci0gICAgZXhp
c3RpbmdSZWdpc3RyeS5nZXQoKSA9IG1ha2VXZWFrUHRyKHJlZ2lzdHJ5LmdldCgpKTsKKyAgICBl
eGlzdGluZ1JlZ2lzdHJ5LmdldCgpID0gcmVnaXN0cnk7CiAgICAgcmV0dXJuIHJlZ2lzdHJ5Owog
fQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJDb3JlU3VwcG9ydC9X
ZWJFZGl0b3JDbGllbnQubW0gYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJDb3JlU3VwcG9y
dC9XZWJFZGl0b3JDbGllbnQubW0KaW5kZXggYmQ1YzU2OTUxOWZjNThmMTI3ZTVlYmI1MjQ1ODJl
YTk0YTk4MDlhOS4uYzJjNDBkM2QyYTEzM2YyODEzNDE1NjAzNGRlNTQxNDFhNGNlOWMzMiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9y
Q2xpZW50Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dl
YkVkaXRvckNsaWVudC5tbQpAQCAtMTExNiw3ICsxMTE2LDcgQEAgdm9pZCBXZWJFZGl0b3JDbGll
bnQ6OnJlcXVlc3RDYW5kaWRhdGVzRm9yU2VsZWN0aW9uKGNvbnN0IFZpc2libGVTZWxlY3Rpb24m
IHNlbGUKICAgICBtX3BhcmFncmFwaENvbnRleHRGb3JDYW5kaWRhdGVSZXF1ZXN0ID0gY29udGV4
dEZvckNhbmRpZGF0ZVJlcWV1ZXN0OwogCiAgICAgTlNUZXh0Q2hlY2tpbmdUeXBlcyBjaGVja2lu
Z1R5cGVzID0gTlNUZXh0Q2hlY2tpbmdUeXBlU3BlbGxpbmcgfCBOU1RleHRDaGVja2luZ1R5cGVS
ZXBsYWNlbWVudCB8IE5TVGV4dENoZWNraW5nVHlwZUNvcnJlY3Rpb247Ci0gICAgYXV0byB3ZWFr
RWRpdG9yID0gbWFrZVdlYWtQdHIoKnRoaXMpOworICAgIFdlYWtQdHIgd2Vha0VkaXRvciB7ICp0
aGlzIH07CiAgICAgbV9sYXN0Q2FuZGlkYXRlUmVxdWVzdFNlcXVlbmNlTnVtYmVyID0gW1tOU1Nw
ZWxsQ2hlY2tlciBzaGFyZWRTcGVsbENoZWNrZXJdIHJlcXVlc3RDYW5kaWRhdGVzRm9yU2VsZWN0
ZWRSYW5nZTptX3JhbmdlRm9yQ2FuZGlkYXRlcyBpblN0cmluZzptX3BhcmFncmFwaENvbnRleHRG
b3JDYW5kaWRhdGVSZXF1ZXN0LmdldCgpIHR5cGVzOmNoZWNraW5nVHlwZXMgb3B0aW9uczpuaWwg
aW5TcGVsbERvY3VtZW50V2l0aFRhZzpzcGVsbENoZWNrZXJEb2N1bWVudFRhZygpIGNvbXBsZXRp
b25IYW5kbGVyOlt3ZWFrRWRpdG9yXShOU0ludGVnZXIgc2VxdWVuY2VOdW1iZXIsIE5TQXJyYXk8
TlNUZXh0Q2hlY2tpbmdSZXN1bHQgKj4gKmNhbmRpZGF0ZXMpIHsKICAgICAgICAgUnVuTG9vcDo6
bWFpbigpLmRpc3BhdGNoKFt3ZWFrRWRpdG9yLCBzZXF1ZW5jZU51bWJlciwgY2FuZGlkYXRlcyA9
IHJldGFpblB0cihjYW5kaWRhdGVzKV0gewogICAgICAgICAgICAgaWYgKCF3ZWFrRWRpdG9yKQpk
aWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4IDg3YWEz
Yzc4NTJhZTAwMGQwNDJiODM3MDIyYWEzNDdlOGY3NGJlZmUuLmQ0MTA5MDBkYWI0MjQ4MGQzNjA0
OGUxYWY2Zjk2MWY1OGYwNWE3NDQgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZworKysgYi9U
b29scy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxOSBAQAorMjAyMS0xMC0xMyAgQ2hyaXMgRHVtZXog
IDxjZHVtZXpAYXBwbGUuY29tPgorCisgICAgICAgIERyb3AgbWFrZVdlYWtQdHIoKSBhbmQgdXNl
IFdlYWtQdHIgeyB9IGRpcmVjdGx5CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0yMzE2NzkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvc3R5bGUvY2hlY2tlcnMvY3BwLnB5Ogor
ICAgICAgICAoY2hlY2tfY2FsbG9ubWFpbnRocmVhZCk6CisgICAgICAgIChwcm9jZXNzX2xpbmUp
OgorICAgICAgICAoY2hlY2tfbWFrZXdlYWtwdHIpOiBEZWxldGVkLgorICAgICAgICAqIFRlc3RX
ZWJLaXRBUEkvVGVzdHMvV1RGL09ic2VydmVyLmNwcDoKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6
OlRFU1QpOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL1dlYWtQdHIuY3BwOgor
ICAgICAgICAoVGVzdFdlYktpdEFQSTo6bWFrZVdlYWtQdHIpOgorCiAyMDIxLTEwLTEyICBKb25h
dGhhbiBCZWRhcmQgIDxqYmVkYXJkQGFwcGxlLmNvbT4KIAogICAgICAgICBbQXBwbGVTaWxpY29u
XSBTdXBwb3J0IG5hdGl2ZSBzaW11bGF0b3IgdGVzdGluZwpkaWZmIC0tZ2l0IGEvVG9vbHMvU2Ny
aXB0cy93ZWJraXRweS9zdHlsZS9jaGVja2Vycy9jcHAucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtp
dHB5L3N0eWxlL2NoZWNrZXJzL2NwcC5weQppbmRleCBlZDZjMTgxNzdlMTc4OWM3ZDJjODY1MzM0
NTcyNTU2MGYzZWFmZGVmLi44OTg1ZjkxOTcyZTljY2YxYmQ1NWRlYzIyOThhZGJmMzc4OWU1YTYy
IDEwMDY0NAotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3N0eWxlL2NoZWNrZXJzL2NwcC5w
eQorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3N0eWxlL2NoZWNrZXJzL2NwcC5weQpAQCAt
Mjc0MywyMyArMjc0Myw2IEBAIGRlZiBjaGVja19jYWxsb25tYWludGhyZWFkKGZpbGVuYW1lLCBj
bGVhbl9saW5lcywgbGluZV9udW1iZXIsIGZpbGVfc3RhdGUsIGVycm9yCiAgICAgICAgIGVycm9y
KGxpbmVfbnVtYmVyLCAncnVudGltZS9jYWxsb25tYWludGhyZWFkJywgNCwgIlVzZSAnY2FsbE9u
TWFpblJ1bkxvb3BBbmRXYWl0KCknIGluc3RlYWQgb2YgJ2NhbGxPbk1haW5UaHJlYWRBbmRXYWl0
KCknIGluIFNvdXJjZS9XZWJLaXQuIikKIAogCi1kZWYgY2hlY2tfbWFrZXdlYWtwdHIoY2xlYW5f
bGluZXMsIGxpbmVfbnVtYmVyLCBmaWxlX3N0YXRlLCBlcnJvcik6Ci0gICAgIiIiTG9va3MgZm9y
IHVzZSBvZiBsZWdhY3kgJ21ha2VXZWFrUHRyKCknLgotCi0gICAgQXJnczoKLSAgICAgIGNsZWFu
X2xpbmVzOiBBIENsZWFuc2VkTGluZXMgaW5zdGFuY2UgY29udGFpbmluZyB0aGUgZmlsZS4KLSAg
ICAgIGxpbmVfbnVtYmVyOiBUaGUgbnVtYmVyIG9mIHRoZSBsaW5lIHRvIGNoZWNrLgotICAgICAg
ZmlsZV9zdGF0ZTogQSBfRmlsZVN0YXRlIGluc3RhbmNlIHdoaWNoIG1haW50YWlucyBpbmZvcm1h
dGlvbiBhYm91dAotICAgICAgICAgICAgICAgICAgdGhlIHN0YXRlIG9mIHRoaW5ncyBpbiB0aGUg
ZmlsZS4KLSAgICAgIGVycm9yOiBUaGUgZnVuY3Rpb24gdG8gY2FsbCB3aXRoIGFueSBlcnJvcnMg
Zm91bmQuCi0gICAgIiIiCi0KLSAgICBsaW5lID0gY2xlYW5fbGluZXMuZWxpZGVkW2xpbmVfbnVt
YmVyXSAgIyBHZXQgcmlkIG9mIGNvbW1lbnRzIGFuZCBzdHJpbmdzLgotICAgIHVzaW5nX21ha2V3
ZWFrcHRyID0gc2VhcmNoKHInXGJtYWtlV2Vha1B0clxzKlwoJywgbGluZSkKLSAgICBpZiB1c2lu
Z19tYWtld2Vha3B0cjoKLSAgICAgICAgZXJyb3IobGluZV9udW1iZXIsICdydW50aW1lL21ha2V3
ZWFrcHRyJywgNCwgIlVzZSBXZWFrUHRyIHsgfSBkaXJlY3RseSBpbnN0ZWFkIG9mICdtYWtlV2Vh
a1B0cigpJy4iKQotCi0KIGRlZiBjaGVja19pc21haW50aHJlYWQoZmlsZW5hbWUsIGNsZWFuX2xp
bmVzLCBsaW5lX251bWJlciwgZmlsZV9zdGF0ZSwgZXJyb3IpOgogICAgICIiIkxvb2tzIGZvciB1
c2Ugb2YgJ2lzTWFpblRocmVhZCgpJyB3aGljaCBzaG91bGQgYmUgcmVwbGFjZWQgd2l0aCAnaXNN
YWluUnVuTG9vcCgpJy4KIApAQCAtNDUyMCw3ICs0NTAzLDYgQEAgZGVmIHByb2Nlc3NfbGluZShm
aWxlbmFtZSwgZmlsZV9leHRlbnNpb24sCiAgICAgY2hlY2tfZm9yX25vbl9zdGFuZGFyZF9jb25z
dHJ1Y3RzKGNsZWFuX2xpbmVzLCBsaW5lLCBjbGFzc19zdGF0ZSwgZXJyb3IpCiAgICAgY2hlY2tf
cG9zaXhfdGhyZWFkaW5nKGNsZWFuX2xpbmVzLCBsaW5lLCBlcnJvcikKICAgICBjaGVja19pbnZh
bGlkX2luY3JlbWVudChjbGVhbl9saW5lcywgbGluZSwgZXJyb3IpCi0gICAgY2hlY2tfbWFrZXdl
YWtwdHIoY2xlYW5fbGluZXMsIGxpbmUsIGZpbGVfc3RhdGUsIGVycm9yKQogICAgIGNoZWNrX29z
X3ZlcnNpb25fY2hlY2tzKGZpbGVuYW1lLCBjbGVhbl9saW5lcywgbGluZSwgZXJyb3IpCiAgICAg
Y2hlY2tfY2FsbG9ubWFpbnRocmVhZChmaWxlbmFtZSwgY2xlYW5fbGluZXMsIGxpbmUsIGZpbGVf
c3RhdGUsIGVycm9yKQogICAgIGNoZWNrX2lzbWFpbnRocmVhZChmaWxlbmFtZSwgY2xlYW5fbGlu
ZXMsIGxpbmUsIGZpbGVfc3RhdGUsIGVycm9yKQpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktp
dEFQSS9UZXN0cy9XVEYvT2JzZXJ2ZXIuY3BwIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9X
VEYvT2JzZXJ2ZXIuY3BwCmluZGV4IDk4MmJmMmI4NzI0Y2Q3Zjg5OWM3M2IyODRiYTE5Nzk3NGFk
ZjQzMTYuLjEwZDBlOGE0YzBlOTE5YjQ4ZmQ3MDU2YWU3NmY4MDliZmZjYzk0NTUgMTAwNjQ0Ci0t
LSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL09ic2VydmVyLmNwcAorKysgYi9Ub29s
cy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9PYnNlcnZlci5jcHAKQEAgLTQ5LDcgKzQ5LDcgQEAg
VEVTVChXVEZfT2JzZXJ2ZXIsIFdlYWspCiAgICAgICAgIHRlc3RWYWx1ZSA9IHZhbHVlOwogICAg
IH0pOwogCi0gICAgYXV0byB3ZWFrT2JzZXJ2ZXIgPSBtYWtlV2Vha1B0cih1bmlxdWVPYnNlcnZl
ci5nZXQoKSk7CisgICAgV2Vha1B0ciB3ZWFrT2JzZXJ2ZXIgPSB1bmlxdWVPYnNlcnZlci5nZXQo
KTsKIAogICAgIEFTU0VSVF9UUlVFKHN0YXRpY19jYXN0PGJvb2w+KHdlYWtPYnNlcnZlcikpOwog
CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9XZWFrUHRyLmNwcCBi
L1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL1dlYWtQdHIuY3BwCmluZGV4IDdiNTY0MzZk
MWQyNDI5NmVjODY1N2I2YzEwNWI5MmVlM2FjYzNlZmIuLjUwMzI5Njk5MGJkNzkwNjBjNTU4NzMy
MTEzMDRhOWYzYTQzYWZjZDAgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMv
V1RGL1dlYWtQdHIuY3BwCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL1dlYWtQ
dHIuY3BwCkBAIC00NCw2ICs0NCwzMiBAQCB0ZW1wbGF0ZTx0eXBlbmFtZSBUPiB1c2luZyBXZWFr
SGFzaFNldCA9IFdURjo6V2Vha0hhc2hTZXQ8VCwgV2Vha1B0ckNvdW50ZXI+OwogdGVtcGxhdGU8
dHlwZW5hbWUgVD4gdXNpbmcgV2Vha1B0ciA9IFdURjo6V2Vha1B0cjxULCBXZWFrUHRyQ291bnRl
cj47CiB0ZW1wbGF0ZTx0eXBlbmFtZSBUPiB1c2luZyBXZWFrUHRyRmFjdG9yeSA9IFdURjo6V2Vh
a1B0ckZhY3Rvcnk8VCwgV2Vha1B0ckNvdW50ZXI+OwogCisvLyBGSVhNRTogRHJvcCB3aGVuIHdl
IHN1cHBvcnQgQysrMjAuIEMrKzE3IGRvZXMgbm90IHN1cHBvcnQgdGVtcGxhdGUgcGFyYW1ldGVy
IGRlZHVjdGlvbiBmb3IgYWxpYXNlcyBhbmQgV2Vha1B0ciBpcyBhbiBhbGlhcyBpbiB0aGlzIGZp
bGUuCit0ZW1wbGF0ZTx0eXBlbmFtZSBULCB0eXBlbmFtZSA9IHN0ZDo6ZW5hYmxlX2lmX3Q8IVdU
Rjo6SXNTbWFydFB0cjxUPjo6dmFsdWU+PiBpbmxpbmUgYXV0byBtYWtlV2Vha1B0cihUJiBvYmpl
Y3QsIEVuYWJsZVdlYWtQdHJUaHJlYWRpbmdBc3NlcnRpb25zIGVuYWJsZVdlYWtQdHJUaHJlYWRp
bmdBc3NlcnRpb25zID0gRW5hYmxlV2Vha1B0clRocmVhZGluZ0Fzc2VydGlvbnM6OlllcykKK3sK
KyAgICByZXR1cm4gb2JqZWN0LndlYWtQdHJGYWN0b3J5KCkudGVtcGxhdGUgY3JlYXRlV2Vha1B0
cjxUPihvYmplY3QsIGVuYWJsZVdlYWtQdHJUaHJlYWRpbmdBc3NlcnRpb25zKTsKK30KKworLy8g
RklYTUU6IERyb3Agd2hlbiB3ZSBzdXBwb3J0IEMrKzIwLiBDKysxNyBkb2VzIG5vdCBzdXBwb3J0
IHRlbXBsYXRlIHBhcmFtZXRlciBkZWR1Y3Rpb24gZm9yIGFsaWFzZXMgYW5kIFdlYWtQdHIgaXMg
YW4gYWxpYXMgaW4gdGhpcyBmaWxlLgordGVtcGxhdGU8dHlwZW5hbWUgVCwgdHlwZW5hbWUgPSBz
dGQ6OmVuYWJsZV9pZl90PCFXVEY6OklzU21hcnRQdHI8VD46OnZhbHVlPj4gaW5saW5lIGF1dG8g
bWFrZVdlYWtQdHIoVCogcHRyLCBFbmFibGVXZWFrUHRyVGhyZWFkaW5nQXNzZXJ0aW9ucyBlbmFi
bGVXZWFrUHRyVGhyZWFkaW5nQXNzZXJ0aW9ucyA9IEVuYWJsZVdlYWtQdHJUaHJlYWRpbmdBc3Nl
cnRpb25zOjpZZXMpIC0+IGRlY2x0eXBlKG1ha2VXZWFrUHRyKCpwdHIpKQoreworICAgIGlmICgh
cHRyKQorICAgICAgICByZXR1cm4geyB9OworICAgIHJldHVybiBtYWtlV2Vha1B0cigqcHRyLCBl
bmFibGVXZWFrUHRyVGhyZWFkaW5nQXNzZXJ0aW9ucyk7Cit9CisKKy8vIEZJWE1FOiBEcm9wIHdo
ZW4gd2Ugc3VwcG9ydCBDKysyMC4gQysrMTcgZG9lcyBub3Qgc3VwcG9ydCB0ZW1wbGF0ZSBwYXJh
bWV0ZXIgZGVkdWN0aW9uIGZvciBhbGlhc2VzIGFuZCBXZWFrUHRyIGlzIGFuIGFsaWFzIGluIHRo
aXMgZmlsZS4KK3RlbXBsYXRlPHR5cGVuYW1lIFQsIHR5cGVuYW1lID0gc3RkOjplbmFibGVfaWZf
dDwhV1RGOjpJc1NtYXJ0UHRyPFQ+Ojp2YWx1ZT4+IGlubGluZSBhdXRvIG1ha2VXZWFrUHRyKGNv
bnN0IFJlZjxUPiYgb2JqZWN0LCBFbmFibGVXZWFrUHRyVGhyZWFkaW5nQXNzZXJ0aW9ucyBlbmFi
bGVXZWFrUHRyVGhyZWFkaW5nQXNzZXJ0aW9ucyA9IEVuYWJsZVdlYWtQdHJUaHJlYWRpbmdBc3Nl
cnRpb25zOjpZZXMpCit7CisgICAgcmV0dXJuIG1ha2VXZWFrUHRyKG9iamVjdC5nZXQoKSwgZW5h
YmxlV2Vha1B0clRocmVhZGluZ0Fzc2VydGlvbnMpOworfQorCisvLyBGSVhNRTogRHJvcCB3aGVu
IHdlIHN1cHBvcnQgQysrMjAuIEMrKzE3IGRvZXMgbm90IHN1cHBvcnQgdGVtcGxhdGUgcGFyYW1l
dGVyIGRlZHVjdGlvbiBmb3IgYWxpYXNlcyBhbmQgV2Vha1B0ciBpcyBhbiBhbGlhcyBpbiB0aGlz
IGZpbGUuCit0ZW1wbGF0ZTx0eXBlbmFtZSBULCB0eXBlbmFtZSA9IHN0ZDo6ZW5hYmxlX2lmX3Q8
IVdURjo6SXNTbWFydFB0cjxUPjo6dmFsdWU+PiBpbmxpbmUgYXV0byBtYWtlV2Vha1B0cihjb25z
dCBSZWZQdHI8VD4mIG9iamVjdCwgRW5hYmxlV2Vha1B0clRocmVhZGluZ0Fzc2VydGlvbnMgZW5h
YmxlV2Vha1B0clRocmVhZGluZ0Fzc2VydGlvbnMgPSBFbmFibGVXZWFrUHRyVGhyZWFkaW5nQXNz
ZXJ0aW9uczo6WWVzKQoreworICAgIHJldHVybiBtYWtlV2Vha1B0cihvYmplY3QuZ2V0KCksIGVu
YWJsZVdlYWtQdHJUaHJlYWRpbmdBc3NlcnRpb25zKTsKK30KKwogc3RydWN0IEludCA6IHB1Ymxp
YyBDYW5NYWtlV2Vha1B0cjxJbnQ+IHsKICAgICBJbnQoaW50IGkpIDogbV9pKGkpIHsgfQogICAg
IG9wZXJhdG9yIGludCgpIGNvbnN0IHsgcmV0dXJuIG1faTsgfQo=
</data>
<flag name="commit-queue"
          id="465277"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>441128</attachid>
            <date>2021-10-13 13:37:14 -0700</date>
            <delta_ts>2021-10-13 16:05:17 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-231679-20211013133713.patch</filename>
            <type>text/plain</type>
            <size>220988</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg0MDkzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IGUwYjcxYTY3ZTE1ZGYxNjMxMWIyNWE5
NmU0YTk2MDhlMWY4NmI1YWQuLmEwNTA5YjhjZDFjMjJmMGRmOTgxZTFjYjBlNDU0YmE2MWNmNjJk
ODQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIwMjEtMTAtMTMgIENocmlzIER1bWV6ICA8Y2R1bWV6
QGFwcGxlLmNvbT4KKworICAgICAgICBEcm9wIG1ha2VXZWFrUHRyKCkgYW5kIHVzZSBXZWFrUHRy
IHsgfSBkaXJlY3RseQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MjMxNjc5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgKiB3dGYvV2Vha0hhc2hNYXAuaDoKKyAgICAgICAgKiB3dGYvV2Vha0hhc2hTZXQuaDoK
KyAgICAgICAgKFdURjo6Y29weVRvVmVjdG9yKToKKyAgICAgICAgKiB3dGYvV2Vha1B0ci5oOgor
ICAgICAgICAoV1RGOjptYWtlV2Vha1B0cik6IERlbGV0ZWQuCisKIDIwMjEtMTAtMTMgIENocmlz
IER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KIAogICAgICAgICBTdG9wIHVzaW5nIG1ha2VXZWFr
UHRyKCkgaW4gV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIv
U291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IDJjNDUxYTc1ZjIyZjY2MDQ0NmU4MGRlOThm
YjllMjUwYjU2ZjY3ZjEuLjZlYzdiM2U5Zjc3NzdjZTk3NjQzYWJmODA5NWViZGQ3YjE0NzYwYTIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxOCBAQAorMjAyMS0xMC0xMyAgQ2hyaXMgRHVtZXogIDxj
ZHVtZXpAYXBwbGUuY29tPgorCisgICAgICAgIERyb3AgbWFrZVdlYWtQdHIoKSBhbmQgdXNlIFdl
YWtQdHIgeyB9IGRpcmVjdGx5CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0yMzE2NzkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICAqIE1vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVtU3luY0FjY2Vz
c0hhbmRsZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRs
ZTo6dHJ1bmNhdGUpOgorICAgICAgICAoV2ViQ29yZTo6RmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5k
bGU6OmdldFNpemUpOgorICAgICAgICAoV2ViQ29yZTo6RmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5k
bGU6OmZsdXNoKToKKyAgICAgICAgKFdlYkNvcmU6OkZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxl
OjpjbG9zZSk6CisgICAgICAgICogZG9tL0VsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
RWxlbWVudDo6YWRkU2hhZG93Um9vdCk6CisKIDIwMjEtMTAtMTMgIENocmlzIER1bWV6ICA8Y2R1
bWV6QGFwcGxlLmNvbT4KIAogICAgICAgICBTdG9wIHVzaW5nIG1ha2VXZWFrUHRyKCkgaW4gV2Vi
Q29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0
L0NoYW5nZUxvZwppbmRleCA2YTA3M2I5M2FiYzM2NzU3NTk2NTQ1NzQ2Yjc3NDY1OGJiMGJiMGNh
Li4xNzM2NzAwNmViN2QyZjMxOTcxZWRlMTkxMDBkNDE0ODU2OWU4MjNkIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAt
MSwzICsxLDM4MyBAQAorMjAyMS0xMC0xMyAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29t
PgorCisgICAgICAgIERyb3AgbWFrZVdlYWtQdHIoKSBhbmQgdXNlIFdlYWtQdHIgeyB9IGRpcmVj
dGx5CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzE2
NzkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIEdQ
VVByb2Nlc3MvR1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5jcHA6CisgICAgICAgIChXZWJLaXQ6
OkdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OkdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MpOgor
ICAgICAgICAqIEdQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlR3JhcGhpY3NDb250ZXh0R0wuY3Bw
OgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVHcmFwaGljc0NvbnRleHRHTDo6UmVtb3RlR3JhcGhp
Y3NDb250ZXh0R0wpOgorICAgICAgICAqIEdQVVByb2Nlc3MvbWVkaWEvUmVtb3RlQXVkaW9IYXJk
d2FyZUxpc3RlbmVyUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVBdWRpb0hhcmR3
YXJlTGlzdGVuZXJQcm94eTo6UmVtb3RlQXVkaW9IYXJkd2FyZUxpc3RlbmVyUHJveHkpOgorICAg
ICAgICAqIEdQVVByb2Nlc3MvbWVkaWEvUmVtb3RlQXVkaW9UcmFja1Byb3h5LmNwcDoKKyAgICAg
ICAgKFdlYktpdDo6UmVtb3RlQXVkaW9UcmFja1Byb3h5OjpSZW1vdGVBdWRpb1RyYWNrUHJveHkp
OgorICAgICAgICAqIEdQVVByb2Nlc3MvbWVkaWEvUmVtb3RlQ0RNRmFjdG9yeVByb3h5LmNwcDoK
KyAgICAgICAgKFdlYktpdDo6UmVtb3RlQ0RNRmFjdG9yeVByb3h5OjpSZW1vdGVDRE1GYWN0b3J5
UHJveHkpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVDRE1GYWN0b3J5UHJveHk6OmNyZWF0ZUNE
TSk6CisgICAgICAgICogR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVDRE1JbnN0YW5jZVByb3h5LmNw
cDoKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlQ0RNSW5zdGFuY2VQcm94eTo6UmVtb3RlQ0RNSW5z
dGFuY2VQcm94eSk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUNETUluc3RhbmNlUHJveHk6OmNy
ZWF0ZVNlc3Npb24pOgorICAgICAgICAqIEdQVVByb2Nlc3MvbWVkaWEvUmVtb3RlQ0RNSW5zdGFu
Y2VTZXNzaW9uUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVDRE1JbnN0YW5jZVNl
c3Npb25Qcm94eTo6Y3JlYXRlKToKKyAgICAgICAgKiBHUFVQcm9jZXNzL21lZGlhL1JlbW90ZUNE
TVByb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlQ0RNUHJveHk6OmNyZWF0ZUluc3Rh
bmNlKToKKyAgICAgICAgKiBHUFVQcm9jZXNzL21lZGlhL1JlbW90ZUltYWdlRGVjb2RlckFWRlBy
b3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlSW1hZ2VEZWNvZGVyQVZGUHJveHk6OlJl
bW90ZUltYWdlRGVjb2RlckFWRlByb3h5KToKKyAgICAgICAgKiBHUFVQcm9jZXNzL21lZGlhL1Jl
bW90ZUxlZ2FjeUNETUZhY3RvcnlQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUxl
Z2FjeUNETUZhY3RvcnlQcm94eTo6UmVtb3RlTGVnYWN5Q0RNRmFjdG9yeVByb3h5KToKKyAgICAg
ICAgKFdlYktpdDo6UmVtb3RlTGVnYWN5Q0RNRmFjdG9yeVByb3h5OjpjcmVhdGVDRE0pOgorICAg
ICAgICAqIEdQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTGVnYWN5Q0RNUHJveHkuY3BwOgorICAgICAg
ICAoV2ViS2l0OjpSZW1vdGVMZWdhY3lDRE1Qcm94eTo6Y3JlYXRlU2Vzc2lvbik6CisgICAgICAg
ICogR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVBsYXllck1hbmFnZXJQcm94eS5jcHA6Cisg
ICAgICAgIChXZWJLaXQ6OlJlbW90ZU1lZGlhUGxheWVyTWFuYWdlclByb3h5OjpSZW1vdGVNZWRp
YVBsYXllck1hbmFnZXJQcm94eSk6CisgICAgICAgICogR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVN
ZWRpYVBsYXllclByb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlTWVkaWFQbGF5ZXJQ
cm94eTo6UmVtb3RlTWVkaWFQbGF5ZXJQcm94eSk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZU1l
ZGlhUGxheWVyUHJveHk6OnNldExlZ2FjeUNETVNlc3Npb24pOgorICAgICAgICAqIEdQVVByb2Nl
c3MvbWVkaWEvUmVtb3RlTWVkaWFSZXNvdXJjZS5jcHA6CisgICAgICAgIChXZWJLaXQ6OlJlbW90
ZU1lZGlhUmVzb3VyY2U6OlJlbW90ZU1lZGlhUmVzb3VyY2UpOgorICAgICAgICAqIEdQVVByb2Nl
c3MvbWVkaWEvUmVtb3RlTWVkaWFSZXNvdXJjZUxvYWRlci5jcHA6CisgICAgICAgIChXZWJLaXQ6
OlJlbW90ZU1lZGlhUmVzb3VyY2VMb2FkZXI6OlJlbW90ZU1lZGlhUmVzb3VyY2VMb2FkZXIpOgor
ICAgICAgICAqIEdQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFTb3VyY2VQcm94eS5jcHA6Cisg
ICAgICAgIChXZWJLaXQ6OlJlbW90ZU1lZGlhU291cmNlUHJveHk6OlJlbW90ZU1lZGlhU291cmNl
UHJveHkpOgorICAgICAgICAqIEdQVVByb2Nlc3MvbWVkaWEvUmVtb3RlUmVtb3RlQ29tbWFuZExp
c3RlbmVyUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVSZW1vdGVDb21tYW5kTGlz
dGVuZXJQcm94eTo6UmVtb3RlUmVtb3RlQ29tbWFuZExpc3RlbmVyUHJveHkpOgorICAgICAgICAq
IEdQVVByb2Nlc3MvbWVkaWEvUmVtb3RlU291cmNlQnVmZmVyUHJveHkuY3BwOgorICAgICAgICAo
V2ViS2l0OjpSZW1vdGVTb3VyY2VCdWZmZXJQcm94eTo6UmVtb3RlU291cmNlQnVmZmVyUHJveHkp
OgorICAgICAgICAqIEdQVVByb2Nlc3MvbWVkaWEvUmVtb3RlVGV4dFRyYWNrUHJveHkuY3BwOgor
ICAgICAgICAoV2ViS2l0OjpSZW1vdGVUZXh0VHJhY2tQcm94eTo6UmVtb3RlVGV4dFRyYWNrUHJv
eHkpOgorICAgICAgICAqIEdQVVByb2Nlc3MvbWVkaWEvUmVtb3RlVmlkZW9UcmFja1Byb3h5LmNw
cDoKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlVmlkZW9UcmFja1Byb3h5OjpSZW1vdGVWaWRlb1Ry
YWNrUHJveHkpOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL0NsYXNzaWZpZXIvV2ViUmVzb3Vy
Y2VMb2FkU3RhdGlzdGljc1N0b3JlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUmVzb3VyY2VM
b2FkU3RhdGlzdGljc1N0b3JlOjpXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmUpOgorICAg
ICAgICAqIE5ldHdvcmtQcm9jZXNzL0Rvd25sb2Fkcy9jb2NvYS9XS0Rvd25sb2FkUHJvZ3Jlc3Mu
bW06CisgICAgICAgICgtW1dLRG93bmxvYWRQcm9ncmVzcyBpbml0V2l0aERvd25sb2FkVGFzazpk
b3dubG9hZDpVUkw6c2FuZGJveEV4dGVuc2lvbjpdKToKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vz
cy9OZXR3b3JrQ09SU1ByZWZsaWdodENoZWNrZXIuY3BwOgorICAgICAgICAoV2ViS2l0OjpOZXR3
b3JrQ09SU1ByZWZsaWdodENoZWNrZXI6Ok5ldHdvcmtDT1JTUHJlZmxpZ2h0Q2hlY2tlcik6Cisg
ICAgICAgICogTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuY3Bw
OgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6ZXN0YWJs
aXNoU1dTZXJ2ZXJDb25uZWN0aW9uKToKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3Jr
RGF0YVRhc2suY3BwOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrRGF0YVRhc2s6Ok5ldHdvcmtE
YXRhVGFzayk6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvTmV0d29ya0xvYWQuY3BwOgorICAg
ICAgICAoV2ViS2l0OjpOZXR3b3JrTG9hZDo6c3RhcnRXaXRoU2NoZWR1bGluZyk6CisgICAgICAg
ICogTmV0d29ya1Byb2Nlc3MvTmV0d29ya0xvYWRDaGVja2VyLmNwcDoKKyAgICAgICAgKFdlYktp
dDo6TmV0d29ya0xvYWRDaGVja2VyOjpOZXR3b3JrTG9hZENoZWNrZXIpOgorICAgICAgICAqIE5l
dHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmNwcDoKKyAgICAgICAgKFdlYktpdDo6TmV0d29y
a1Byb2Nlc3M6OnByZWNvbm5lY3RUbyk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNz
OjpkZWxldGVBbmRSZXN0cmljdFdlYnNpdGVEYXRhRm9yUmVnaXN0cmFibGVEb21haW5zKToKKyAg
ICAgICAgKFdlYktpdDo6TmV0d29ya1Byb2Nlc3M6OnNpbXVsYXRlUmVzb3VyY2VMb2FkU3RhdGlz
dGljc1Nlc3Npb25SZXN0YXJ0KToKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUmVz
b3VyY2VMb2FkZXIuY3BwOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUmVzb3VyY2VMb2FkZXI6
OnNlbmREaWRSZWNlaXZlUmVzcG9uc2VQb3RlbnRpYWxseUluTmV3QnJvd3NpbmdDb250ZXh0R3Jv
dXApOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtTb2NrZXRDaGFubmVsLmNwcDoK
KyAgICAgICAgKFdlYktpdDo6TmV0d29ya1NvY2tldENoYW5uZWw6Ok5ldHdvcmtTb2NrZXRDaGFu
bmVsKToKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrU3RvcmFnZVNlc3Npb25Qcm92
aWRlci5oOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL1ByaXZhdGVDbGlja01lYXN1cmVtZW50
L1ByaXZhdGVDbGlja01lYXN1cmVtZW50Q2xpZW50SW1wbC5jcHA6CisgICAgICAgIChXZWJLaXQ6
OlBDTTo6Q2xpZW50SW1wbDo6Q2xpZW50SW1wbCk6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3Mv
UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRDb25uZWN0aW9u
LmNwcDoKKyAgICAgICAgKFdlYktpdDo6UENNOjpDb25uZWN0aW9uVG9NYWNoU2VydmljZTo6Q29u
bmVjdGlvblRvTWFjaFNlcnZpY2UpOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL1ByaXZhdGVD
bGlja01lYXN1cmVtZW50L2NvY29hL1ByaXZhdGVDbGlja01lYXN1cmVtZW50Q29ubmVjdGlvbkNv
Y29hLm1tOgorICAgICAgICAoV2ViS2l0OjpQQ006OkNvbm5lY3Rpb25Ub01hY2hTZXJ2aWNlOjpp
bml0aWFsaXplQ29ubmVjdGlvbklmTmVlZGVkIGNvbnN0KToKKyAgICAgICAgKiBOZXR3b3JrUHJv
Y2Vzcy9TZXJ2aWNlV29ya2VyL1NlcnZpY2VXb3JrZXJGZXRjaFRhc2suY3BwOgorICAgICAgICAo
V2ViS2l0OjpTZXJ2aWNlV29ya2VyRmV0Y2hUYXNrOjpTZXJ2aWNlV29ya2VyRmV0Y2hUYXNrKToK
KyAgICAgICAgKFdlYktpdDo6U2VydmljZVdvcmtlckZldGNoVGFzazo6c3RhcnQpOgorICAgICAg
ICAqIE5ldHdvcmtQcm9jZXNzL1NlcnZpY2VXb3JrZXIvU2VydmljZVdvcmtlclNvZnRVcGRhdGVM
b2FkZXIuY3BwOgorICAgICAgICAoV2ViS2l0OjpTZXJ2aWNlV29ya2VyU29mdFVwZGF0ZUxvYWRl
cjo6U2VydmljZVdvcmtlclNvZnRVcGRhdGVMb2FkZXIpOgorICAgICAgICAqIE5ldHdvcmtQcm9j
ZXNzL1NlcnZpY2VXb3JrZXIvV2ViU1dTZXJ2ZXJUb0NvbnRleHRDb25uZWN0aW9uLmNwcDoKKyAg
ICAgICAgKFdlYktpdDo6V2ViU1dTZXJ2ZXJUb0NvbnRleHRDb25uZWN0aW9uOjpXZWJTV1NlcnZl
clRvQ29udGV4dENvbm5lY3Rpb24pOgorICAgICAgICAoV2ViS2l0OjpXZWJTV1NlcnZlclRvQ29u
dGV4dENvbm5lY3Rpb246OnJlZ2lzdGVyRmV0Y2gpOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNz
L1dlYlN0b3JhZ2UvU3RvcmFnZUFyZWEuY3BwOgorICAgICAgICAoV2ViS2l0OjpTdG9yYWdlQXJl
YTo6U3RvcmFnZUFyZWEpOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL1dlYlN0b3JhZ2UvU3Rv
cmFnZU1hbmFnZXJTZXQuY3BwOgorICAgICAgICAoV2ViS2l0OjpTdG9yYWdlTWFuYWdlclNldDo6
Y29ubmVjdFRvTG9jYWxTdG9yYWdlQXJlYSk6CisgICAgICAgIChXZWJLaXQ6OlN0b3JhZ2VNYW5h
Z2VyU2V0Ojpjb25uZWN0VG9UcmFuc2llbnRMb2NhbFN0b3JhZ2VBcmVhKToKKyAgICAgICAgKFdl
YktpdDo6U3RvcmFnZU1hbmFnZXJTZXQ6OmNvbm5lY3RUb1Nlc3Npb25TdG9yYWdlQXJlYSk6Cisg
ICAgICAgICogTmV0d29ya1Byb2Nlc3MvY2FjaGUvQ2FjaGVTdG9yYWdlRW5naW5lLmNwcDoKKyAg
ICAgICAgKFdlYktpdDo6Q2FjaGVTdG9yYWdlOjpFbmdpbmU6OkVuZ2luZSk6CisgICAgICAgICog
TmV0d29ya1Byb2Nlc3MvY29jb2EvTmV0d29ya0RhdGFUYXNrQ29jb2EubW06CisgICAgICAgIChX
ZWJLaXQ6Ok5ldHdvcmtEYXRhVGFza0NvY29hOjpOZXR3b3JrRGF0YVRhc2tDb2NvYSk6CisgICAg
ICAgIChXZWJLaXQ6Ok5ldHdvcmtEYXRhVGFza0NvY29hOjpzd2FwU2Vzc2lvbklmTmVjZXNzYXJ5
KToKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9jb2NvYS9OZXR3b3JrU2Vzc2lvbkNvY29hLm1t
OgorICAgICAgICAoLVtXS05ldHdvcmtTZXNzaW9uRGVsZWdhdGUgaW5pdFdpdGhOZXR3b3JrU2Vz
c2lvbjp3cmFwcGVyOndpdGhDcmVkZW50aWFsczpdKToKKyAgICAgICAgKC1bV0tOZXR3b3JrU2Vz
c2lvbkRlbGVnYXRlIFVSTFNlc3Npb246dGFzazpkaWRSZWNlaXZlQ2hhbGxlbmdlOmNvbXBsZXRp
b25IYW5kbGVyOl0pOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrU2Vzc2lvbkNvY29hOjpjcmVh
dGVXZWJTb2NrZXRUYXNrKToKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Nlc3Npb25Db2NvYTo6
YWRkV2ViUGFnZU5ldHdvcmtQYXJhbWV0ZXJzKToKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9z
dG9yYWdlL0ZpbGVTeXN0ZW1TdG9yYWdlSGFuZGxlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6Rmls
ZVN5c3RlbVN0b3JhZ2VIYW5kbGU6OkZpbGVTeXN0ZW1TdG9yYWdlSGFuZGxlKToKKyAgICAgICAg
KiBOZXR3b3JrUHJvY2Vzcy9zdG9yYWdlL0ZpbGVTeXN0ZW1TdG9yYWdlSGFuZGxlUmVnaXN0cnku
Y3BwOgorICAgICAgICAoV2ViS2l0OjpGaWxlU3lzdGVtU3RvcmFnZUhhbmRsZVJlZ2lzdHJ5Ojpy
ZWdpc3RlckhhbmRsZSk6CisgICAgICAgICogUGxhdGZvcm0vSVBDL0Nvbm5lY3Rpb24uY3BwOgor
ICAgICAgICAoSVBDOjpDb25uZWN0aW9uOjphZGRNZXNzYWdlT2JzZXJ2ZXIpOgorICAgICAgICAq
IFBsYXRmb3JtL0lQQy9NZXNzYWdlUmVjZWl2ZXJNYXAuY3BwOgorICAgICAgICAoSVBDOjpNZXNz
YWdlUmVjZWl2ZXJNYXA6OmFkZE1lc3NhZ2VSZWNlaXZlcik6CisgICAgICAgICogUGxhdGZvcm0v
Y29jb2EvV0tQYXltZW50QXV0aG9yaXphdGlvbkRlbGVnYXRlLm1tOgorICAgICAgICAoLVtXS1Bh
eW1lbnRBdXRob3JpemF0aW9uRGVsZWdhdGUgX2luaXRXaXRoUmVxdWVzdDpwcmVzZW50ZXI6XSk6
CisgICAgICAgICogU2hhcmVkL0FwcGxlUGF5L1dlYlBheW1lbnRDb29yZGluYXRvclByb3h5LmNw
cDoKKyAgICAgICAgKFdlYktpdDo6V2ViUGF5bWVudENvb3JkaW5hdG9yUHJveHk6OnNob3dQYXlt
ZW50VUkpOgorICAgICAgICAqIFNoYXJlZC9XZWJTUUxpdGVEYXRhYmFzZVRyYWNrZXIuaDoKKyAg
ICAgICAgKiBTaGFyZWQvWFIvWFJEZXZpY2VQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OlhS
RGV2aWNlUHJveHk6OlhSRGV2aWNlUHJveHkpOgorICAgICAgICAqIFNoYXJlZC9tYWMvU2VjSXRl
bVNoaW0uY3BwOgorICAgICAgICAoV2ViS2l0Ojppbml0aWFsaXplU2VjSXRlbVNoaW0pOgorICAg
ICAgICAqIFVJUHJvY2Vzcy9BUEkvQVBJQXR0YWNobWVudC5jcHA6CisgICAgICAgIChBUEk6OkF0
dGFjaG1lbnQ6OkF0dGFjaG1lbnQpOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQVBJSFRUUENv
b2tpZVN0b3JlLmNwcDoKKyAgICAgICAgKEFQSTo6SFRUUENvb2tpZVN0b3JlOjpIVFRQQ29va2ll
U3RvcmUpOgorICAgICAgICAoQVBJOjpIVFRQQ29va2llU3RvcmU6OnJlZ2lzdGVyT2JzZXJ2ZXIp
OgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQVBJSW5zcGVjdG9yRXh0ZW5zaW9uLmNwcDoKKyAg
ICAgICAgKEFQSTo6SW5zcGVjdG9yRXh0ZW5zaW9uOjpJbnNwZWN0b3JFeHRlbnNpb24pOgorICAg
ICAgICAqIFVJUHJvY2Vzcy9BUEkvQVBJV2ViQXV0aGVudGljYXRpb25QYW5lbC5jcHA6CisgICAg
ICAgIChBUEk6OldlYkF1dGhlbnRpY2F0aW9uUGFuZWw6OldlYkF1dGhlbnRpY2F0aW9uUGFuZWwp
OgorICAgICAgICAoQVBJOjpXZWJBdXRoZW50aWNhdGlvblBhbmVsOjpoYW5kbGVSZXF1ZXN0KToK
KyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlldy5tbToKKyAgICAgICAgKC1b
V0tXZWJWaWV3IF9yZW1vdmVEYXRhRGV0ZWN0ZWRMaW5rczpdKToKKyAgICAgICAgKiBVSVByb2Nl
c3MvQVBJL0NvY29hL1dLV2ViVmlld1Rlc3RpbmcubW06CisgICAgICAgICgtW1dLTWVkaWFTZXNz
aW9uQ29vcmRpbmF0b3JIZWxwZXIgaW5pdFdpdGhDb29yZGluYXRvcjpdKToKKyAgICAgICAgKiBV
SVByb2Nlc3MvQVBJL0NvY29hL19XS1dlYkF1dGhlbnRpY2F0aW9uUGFuZWwubW06CisgICAgICAg
ICgtW19XS1dlYkF1dGhlbnRpY2F0aW9uUGFuZWwgc2V0RGVsZWdhdGU6XSk6CisgICAgICAgICog
VUlQcm9jZXNzL0FQSS9pb3MvV0tXZWJWaWV3SU9TLm1tOgorICAgICAgICAoLVtXS1dlYlZpZXcg
X2RldGVjdERhdGFXaXRoVHlwZXM6Y29tcGxldGlvbkhhbmRsZXI6XSk6CisgICAgICAgICogVUlQ
cm9jZXNzL0NvY29hL0dyb3VwQWN0aXZpdGllcy9Hcm91cEFjdGl2aXRpZXNDb29yZGluYXRvci5t
bToKKyAgICAgICAgKC1bV0tHcm91cEFjdGl2aXRpZXNDb29yZGluYXRvckRlbGVnYXRlIGluaXRX
aXRoUGFyZW50Ol0pOgorICAgICAgICAqIFVJUHJvY2Vzcy9Db2NvYS9MZWdhY3lDdXN0b21Qcm90
b2NvbE1hbmFnZXJDbGllbnQubW06CisgICAgICAgICgtW1dLQ3VzdG9tUHJvdG9jb2xMb2FkZXIg
aW5pdFdpdGhMZWdhY3lDdXN0b21Qcm90b2NvbE1hbmFnZXJQcm94eTpjdXN0b21Qcm90b2NvbElE
OnJlcXVlc3Q6XSk6CisgICAgICAgICogVUlQcm9jZXNzL0NvY29hL05hdmlnYXRpb25TdGF0ZS5t
bToKKyAgICAgICAgKFdlYktpdDo6TmF2aWdhdGlvblN0YXRlOjpOYXZpZ2F0aW9uU3RhdGUpOgor
ICAgICAgICAoV2ViS2l0OjpOYXZpZ2F0aW9uU3RhdGU6Ok5hdmlnYXRpb25DbGllbnQ6Ok5hdmln
YXRpb25DbGllbnQpOgorICAgICAgICAoV2ViS2l0Ojp0cnlJbnRlcmNlcHROYXZpZ2F0aW9uKToK
KyAgICAgICAgKFdlYktpdDo6TmF2aWdhdGlvblN0YXRlOjpIaXN0b3J5Q2xpZW50OjpIaXN0b3J5
Q2xpZW50KToKKyAgICAgICAgKiBVSVByb2Nlc3MvQ29jb2EvU09BdXRob3JpemF0aW9uL1BvcFVw
U09BdXRob3JpemF0aW9uU2Vzc2lvbi5tbToKKyAgICAgICAgKC1bV0tTT1NlY3JldERlbGVnYXRl
IGluaXRXaXRoU2Vzc2lvbjpdKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQ29jb2EvU09BdXRob3Jp
emF0aW9uL1NPQXV0aG9yaXphdGlvblNlc3Npb24ubW06CisgICAgICAgIChXZWJLaXQ6OlNPQXV0
aG9yaXphdGlvblNlc3Npb246OlNPQXV0aG9yaXphdGlvblNlc3Npb24pOgorICAgICAgICAqIFVJ
UHJvY2Vzcy9Db2NvYS9VSURlbGVnYXRlLm1tOgorICAgICAgICAoV2ViS2l0OjpVSURlbGVnYXRl
OjpDb250ZXh0TWVudUNsaWVudDo6Q29udGV4dE1lbnVDbGllbnQpOgorICAgICAgICAoV2ViS2l0
OjpVSURlbGVnYXRlOjpVSUNsaWVudDo6VUlDbGllbnQpOgorICAgICAgICAoV2ViS2l0OjpVSURl
bGVnYXRlOjpVSUNsaWVudDo6ZGVjaWRlUG9saWN5Rm9yR2VvbG9jYXRpb25QZXJtaXNzaW9uUmVx
dWVzdCk6CisgICAgICAgIChXZWJLaXQ6OlVJRGVsZWdhdGU6OlVJQ2xpZW50OjpzaG91bGRBbGxv
d0RldmljZU9yaWVudGF0aW9uQW5kTW90aW9uQWNjZXNzKToKKyAgICAgICAgKiBVSVByb2Nlc3Mv
Q29jb2EvV2ViUGFzdGVib2FyZFByb3h5Q29jb2EubW06CisgICAgICAgIChXZWJLaXQ6OldlYlBh
c3RlYm9hcmRQcm94eTo6Z3JhbnRBY2Nlc3MpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYXN0ZWJv
YXJkUHJveHk6OmRpZE1vZGlmeUNvbnRlbnRzT2ZQYXN0ZWJvYXJkKToKKyAgICAgICAgKFdlYktp
dDo6V2ViUGFzdGVib2FyZFByb3h5OjpQYXN0ZWJvYXJkQWNjZXNzSW5mb3JtYXRpb246OmdyYW50
QWNjZXNzKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQ29jb2EvV2ViUHJvY2Vzc1Bvb2xDb2NvYS5t
bToKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzc1Bvb2w6OnNldE1lZGlhQWNjZXNzaWJpbGl0
eVByZWZlcmVuY2VzKToKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzc1Bvb2w6OnJlZ2lzdGVy
Tm90aWZpY2F0aW9uT2JzZXJ2ZXJzKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQ29jb2EvV2ViVmll
d0ltcGwubW06CisgICAgICAgICgtW1dLRE9NUGFzdGVNZW51RGVsZWdhdGUgaW5pdFdpdGhXZWJW
aWV3SW1wbDpdKToKKyAgICAgICAgKiBVSVByb2Nlc3MvRG93bmxvYWRzL0Rvd25sb2FkUHJveHku
Y3BwOgorICAgICAgICAoV2ViS2l0OjpEb3dubG9hZFByb3h5OjpEb3dubG9hZFByb3h5KToKKyAg
ICAgICAgKiBVSVByb2Nlc3MvR1BVL0dQVVByb2Nlc3NQcm94eS5jcHA6CisgICAgICAgIChXZWJL
aXQ6OkdQVVByb2Nlc3NQcm94eTo6Z2V0T3JDcmVhdGUpOgorICAgICAgICAqIFVJUHJvY2Vzcy9J
bnNwZWN0b3IvSW5zcGVjdG9yVGFyZ2V0UHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpJbnNw
ZWN0b3JUYXJnZXRQcm94eTo6Y3JlYXRlKToKKyAgICAgICAgKiBVSVByb2Nlc3MvSW5zcGVjdG9y
L1dlYkluc3BlY3RvclVJRXh0ZW5zaW9uQ29udHJvbGxlclByb3h5LmNwcDoKKyAgICAgICAgKFdl
YktpdDo6V2ViSW5zcGVjdG9yVUlFeHRlbnNpb25Db250cm9sbGVyUHJveHk6OldlYkluc3BlY3Rv
clVJRXh0ZW5zaW9uQ29udHJvbGxlclByb3h5KToKKyAgICAgICAgKiBVSVByb2Nlc3MvTGF1bmNo
ZXIvbWFjL1Byb2Nlc3NMYXVuY2hlck1hYy5tbToKKyAgICAgICAgKFdlYktpdDo6UHJvY2Vzc0xh
dW5jaGVyOjpsYXVuY2hQcm9jZXNzKToKKyAgICAgICAgKiBVSVByb2Nlc3MvTWVkaWEvUmVtb3Rl
TWVkaWFTZXNzaW9uQ29vcmRpbmF0b3JQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OlJlbW90
ZU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yUHJveHk6OlJlbW90ZU1lZGlhU2Vzc2lvbkNvb3JkaW5h
dG9yUHJveHkpOgorICAgICAgICAqIFVJUHJvY2Vzcy9NZWRpYUtleVN5c3RlbVBlcm1pc3Npb25S
ZXF1ZXN0UHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpNZWRpYUtleVN5c3RlbVBlcm1pc3Np
b25SZXF1ZXN0UHJveHk6Ok1lZGlhS2V5U3lzdGVtUGVybWlzc2lvblJlcXVlc3RQcm94eSk6Cisg
ICAgICAgICogVUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5jcHA6CisgICAg
ICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzUHJveHk6OmRpZFJlY2VpdmVBdXRoZW50aWNhdGlv
bkNoYWxsZW5nZSk6CisgICAgICAgICogVUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQ
cm94eUNvY29hLm1tOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUHJvY2Vzc1Byb3h5OjpYUENF
dmVudEhhbmRsZXI6OlhQQ0V2ZW50SGFuZGxlcik6CisgICAgICAgICogVUlQcm9jZXNzL1BERi9X
S1BERkhVRFZpZXcubW06CisgICAgICAgICgtW1dLUERGSFVEVmlldyBpbml0V2l0aEZyYW1lOnBs
dWdpbklkZW50aWZpZXI6cGFnZTpdKToKKyAgICAgICAgKiBVSVByb2Nlc3MvU3BlZWNoUmVjb2du
aXRpb25QZXJtaXNzaW9uUmVxdWVzdC5oOgorICAgICAgICAoV2ViS2l0OjpTcGVlY2hSZWNvZ25p
dGlvblBlcm1pc3Npb25SZXF1ZXN0OjpTcGVlY2hSZWNvZ25pdGlvblBlcm1pc3Npb25SZXF1ZXN0
KToKKyAgICAgICAgKiBVSVByb2Nlc3MvU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1l
ZGlhU291cmNlLmNwcDoKKyAgICAgICAgKiBVSVByb2Nlc3MvU3BlZWNoUmVjb2duaXRpb25SZW1v
dGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlci5jcHA6CisgICAgICAgIChXZWJLaXQ6OlNwZWVj
aFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXI6OmFkZFNvdXJjZSk6
CisgICAgICAgICogVUlQcm9jZXNzL1ZpZXdHZXN0dXJlQ29udHJvbGxlci5jcHA6CisgICAgICAg
IChXZWJLaXQ6OlZpZXdHZXN0dXJlQ29udHJvbGxlcjo6c2V0QWx0ZXJuYXRlQmFja0ZvcndhcmRM
aXN0U291cmNlUGFnZSk6CisgICAgICAgICogVUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL0F1
dGhlbnRpY2F0b3IuaDoKKyAgICAgICAgKFdlYktpdDo6QXV0aGVudGljYXRvcjo6c2V0T2JzZXJ2
ZXIpOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9BdXRoZW50aWNhdG9y
TWFuYWdlci5jcHA6CisgICAgICAgIChXZWJLaXQ6OkF1dGhlbnRpY2F0b3JNYW5hZ2VyOjpydW5Q
YW5lbCk6CisgICAgICAgIChXZWJLaXQ6OkF1dGhlbnRpY2F0b3JNYW5hZ2VyOjpkaXNwYXRjaFBh
bmVsQ2xpZW50Q2FsbCBjb25zdCk6CisgICAgICAgICogVUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0
aW9uL0F1dGhlbnRpY2F0b3JUcmFuc3BvcnRTZXJ2aWNlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6
QXV0aGVudGljYXRvclRyYW5zcG9ydFNlcnZpY2U6OkF1dGhlbnRpY2F0b3JUcmFuc3BvcnRTZXJ2
aWNlKToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViQXV0aGVudGljYXRpb24vQ29jb2EvQXV0aGVu
dGljYXRvclByZXNlbnRlckNvb3JkaW5hdG9yLm1tOgorICAgICAgICAoV2ViS2l0OjpBdXRoZW50
aWNhdG9yUHJlc2VudGVyQ29vcmRpbmF0b3I6OkF1dGhlbnRpY2F0b3JQcmVzZW50ZXJDb29yZGlu
YXRvcik6CisgICAgICAgICogVUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL0NvY29hL05mY0Nv
bm5lY3Rpb24ubW06CisgICAgICAgIChXZWJLaXQ6Ok5mY0Nvbm5lY3Rpb246Ok5mY0Nvbm5lY3Rp
b24pOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9Db2NvYS9XS0FTQ0F1
dGhvcml6YXRpb25QcmVzZW50ZXJEZWxlZ2F0ZS5tbToKKyAgICAgICAgKC1bV0tBU0NBdXRob3Jp
emF0aW9uUHJlc2VudGVyRGVsZWdhdGUgaW5pdFdpdGhDb29yZGluYXRvcjpdKToKKyAgICAgICAg
KiBVSVByb2Nlc3MvV2ViQXV0aGVudGljYXRpb24vQ29jb2EvV0tORlJlYWRlclNlc3Npb25EZWxl
Z2F0ZS5tbToKKyAgICAgICAgKC1bV0tORlJlYWRlclNlc3Npb25EZWxlZ2F0ZSBpbml0V2l0aENv
bm5lY3Rpb246XSk6CisgICAgICAgICogVUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL0NvY29h
L1dlYkF1dGhlbnRpY2F0b3JDb29yZGluYXRvclByb3h5Lm1tOgorICAgICAgICAoV2ViS2l0OjpX
ZWJBdXRoZW50aWNhdG9yQ29vcmRpbmF0b3JQcm94eTo6cGVyZm9ybVJlcXVlc3QpOgorICAgICAg
ICAqIFVJUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9XZWJBdXRoZW50aWNhdG9yQ29vcmRpbmF0
b3JQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYkF1dGhlbnRpY2F0b3JDb29yZGluYXRv
clByb3h5OjptYWtlQ3JlZGVudGlhbCk6CisgICAgICAgIChXZWJLaXQ6OldlYkF1dGhlbnRpY2F0
b3JDb29yZGluYXRvclByb3h5OjpnZXRBc3NlcnRpb24pOgorICAgICAgICAqIFVJUHJvY2Vzcy9X
ZWJBdXRoZW50aWNhdGlvbi9maWRvL0ZpZG9TZXJ2aWNlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6
Rmlkb1NlcnZpY2U6OmdldEluZm8pOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJDb250ZXh0TWVu
dUxpc3RlbmVyUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJDb250ZXh0TWVudUxpc3Rl
bmVyUHJveHk6OldlYkNvbnRleHRNZW51TGlzdGVuZXJQcm94eSk6CisgICAgICAgICogVUlQcm9j
ZXNzL1dlYkNvbnRleHRNZW51UHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJDb250ZXh0
TWVudVByb3h5OjpXZWJDb250ZXh0TWVudVByb3h5KToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2Vi
Q29va2llTWFuYWdlclByb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViQ29va2llTWFuYWdl
clByb3h5OjpXZWJDb29raWVNYW5hZ2VyUHJveHkpOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJE
YXRhTGlzdFN1Z2dlc3Rpb25zRHJvcGRvd24uY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJEYXRh
TGlzdFN1Z2dlc3Rpb25zRHJvcGRvd246OldlYkRhdGFMaXN0U3VnZ2VzdGlvbnNEcm9wZG93bik6
CisgICAgICAgICogVUlQcm9jZXNzL1dlYkRhdGVUaW1lUGlja2VyLmNwcDoKKyAgICAgICAgKFdl
YktpdDo6V2ViRGF0ZVRpbWVQaWNrZXI6OldlYkRhdGVUaW1lUGlja2VyKToKKyAgICAgICAgKiBV
SVByb2Nlc3MvV2ViRWRpdENvbW1hbmRQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYkVk
aXRDb21tYW5kUHJveHk6OldlYkVkaXRDb21tYW5kUHJveHkpOgorICAgICAgICAqIFVJUHJvY2Vz
cy9XZWJGcmFtZVByb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViRnJhbWVQcm94eTo6V2Vi
RnJhbWVQcm94eSk6CisgICAgICAgICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHA6CisgICAg
ICAgIChXZWJLaXQ6OlBhZ2VDbGllbnRQcm90ZWN0b3I6OlBhZ2VDbGllbnRQcm90ZWN0b3IpOgor
ICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OldlYlBhZ2VQcm94eSk6CisgICAgICAgIChX
ZWJLaXQ6OldlYlBhZ2VQcm94eTo6c3VzcGVuZEN1cnJlbnRQYWdlSWZQb3NzaWJsZSk6CisgICAg
ICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6YWRkT2JzZXJ2ZXIpOgorICAgICAgICAqIFVJUHJv
Y2Vzcy9XZWJQcm9jZXNzUG9vbC5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3NQb29s
OjpnZXRHUFVQcm9jZXNzQ29ubmVjdGlvbik6CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3NQ
b29sOjpnZXRXZWJBdXRoblByb2Nlc3NDb25uZWN0aW9uKToKKyAgICAgICAgKFdlYktpdDo6V2Vi
UHJvY2Vzc1Bvb2w6OmluaXRpYWxpemVOZXdXZWJQcm9jZXNzKToKKyAgICAgICAgKFdlYktpdDo6
V2ViUHJvY2Vzc1Bvb2w6OmNyZWF0ZVdlYlBhZ2UpOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQ
cm9jZXNzUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzUHJveHk6OnByb2Nl
c3NEaWRUZXJtaW5hdGVPckZhaWxlZFRvTGF1bmNoKToKKyAgICAgICAgKFdlYktpdDo6V2ViUHJv
Y2Vzc1Byb3h5OjpjcmVhdGVTcGVlY2hSZWNvZ25pdGlvblNlcnZlcik6CisgICAgICAgICogVUlQ
cm9jZXNzL1dlYlByb2Nlc3NQcm94eS5oOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzUHJv
eHk6OldlYWtPclN0cm9uZ1B0cjo6V2Vha09yU3Ryb25nUHRyKToKKyAgICAgICAgKiBVSVByb2Nl
c3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9yZS5jcHA6CisgICAgICAgIChXZWJLaXQ6Oldl
YnNpdGVEYXRhU3RvcmU6OmdldE5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbik6CisgICAgICAgICog
VUlQcm9jZXNzL2d0ay9XYXlsYW5kQ29tcG9zaXRvci5jcHA6CisgICAgICAgIChXZWJLaXQ6Oldh
eWxhbmRDb21wb3NpdG9yOjpTdXJmYWNlOjphdHRhY2hCdWZmZXIpOgorICAgICAgICAoV2ViS2l0
OjpXYXlsYW5kQ29tcG9zaXRvcjo6YmluZFN1cmZhY2VUb1dlYlBhZ2UpOgorICAgICAgICAqIFVJ
UHJvY2Vzcy9pb3MvUHJvY2Vzc0Fzc2VydGlvbklPUy5tbToKKyAgICAgICAgKC1bV0tQcm9jZXNz
QXNzZXJ0aW9uQmFja2dyb3VuZFRhc2tNYW5hZ2VyIF9ub3RpZnlBc3NlcnRpb25zT2ZJbW1pbmVu
dFN1c3BlbnNpb25dKToKKyAgICAgICAgKiBVSVByb2Nlc3MvaW9zL1dlYkRhdGFMaXN0U3VnZ2Vz
dGlvbnNEcm9wZG93bklPUy5tbToKKyAgICAgICAgKC1bV0tEYXRhTGlzdFN1Z2dlc3Rpb25zQ29u
dHJvbCBzaG93U3VnZ2VzdGlvbnNEcm9wZG93bjphY3RpdmF0aW9uVHlwZTpdKToKKyAgICAgICAg
KiBVSVByb2Nlc3MvbWFjL1BhZ2VDbGllbnRJbXBsTWFjLm1tOgorICAgICAgICAoV2ViS2l0OjpQ
YWdlQ2xpZW50SW1wbDo6c2V0SW1wbCk6CisgICAgICAgICogVUlQcm9jZXNzL21hYy9XS1JldmVh
bEl0ZW1QcmVzZW50ZXIubW06CisgICAgICAgICgtW1dLUmV2ZWFsSXRlbVByZXNlbnRlciBpbml0
V2l0aFdlYlZpZXdJbXBsOml0ZW06ZnJhbWU6bWVudUxvY2F0aW9uOl0pOgorICAgICAgICAqIFVJ
UHJvY2Vzcy9tYWMvV2ViQ29udGV4dE1lbnVQcm94eU1hYy5tbToKKyAgICAgICAgKFdlYktpdDo6
V2ViQ29udGV4dE1lbnVQcm94eU1hYzo6Z2V0Q29udGV4dE1lbnVGcm9tSXRlbXMpOgorICAgICAg
ICAoV2ViS2l0OjpXZWJDb250ZXh0TWVudVByb3h5TWFjOjppbnNlcnRPclVwZGF0ZVF1aWNrTG9v
a0ltYWdlSXRlbSk6CisgICAgICAgICogVUlQcm9jZXNzL21hYy9XZWJEYXRhTGlzdFN1Z2dlc3Rp
b25zRHJvcGRvd25NYWMubW06CisgICAgICAgICgtW1dLRGF0YUxpc3RTdWdnZXN0aW9uc0NvbnRy
b2xsZXIgc2hvd1N1Z2dlc3Rpb25zRHJvcGRvd246XSk6CisgICAgICAgICogVUlQcm9jZXNzL21h
Yy9XZWJEYXRlVGltZVBpY2tlck1hYy5tbToKKyAgICAgICAgKC1bV0tEYXRlVGltZVBpY2tlciBz
aG93UGlja2VyOl0pOgorICAgICAgICAqIFdlYlByb2Nlc3MvQXV0b21hdGlvbi9XZWJBdXRvbWF0
aW9uRE9NV2luZG93T2JzZXJ2ZXIuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJBdXRvbWF0aW9u
RE9NV2luZG93T2JzZXJ2ZXI6OldlYkF1dG9tYXRpb25ET01XaW5kb3dPYnNlcnZlcik6CisgICAg
ICAgICogV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlclBy
b3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6bV9yZW5kZXJpbmdCYWNrZW5kKToKKyAgICAgICAg
KiBXZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVJbWFnZUJ1ZmZlclByb3h5Lmg6CisgICAg
ICAgIChXZWJLaXQ6OlJlbW90ZUltYWdlQnVmZmVyUHJveHk6OlJlbW90ZUltYWdlQnVmZmVyUHJv
eHkpOgorICAgICAgICAqIFdlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90ZVJlbmRlcmluZ0Jh
Y2tlbmRQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVJlbmRlcmluZ0JhY2tlbmRQ
cm94eTo6ZW5zdXJlR1BVUHJvY2Vzc0Nvbm5lY3Rpb24pOgorICAgICAgICAqIFdlYlByb2Nlc3Mv
R1BVL2dyYXBoaWNzL1JlbW90ZVJlc291cmNlQ2FjaGVQcm94eS5jcHA6CisgICAgICAgIChXZWJL
aXQ6OlJlbW90ZVJlc291cmNlQ2FjaGVQcm94eTo6Y2FjaGVJbWFnZUJ1ZmZlcik6CisgICAgICAg
IChXZWJLaXQ6OlJlbW90ZVJlc291cmNlQ2FjaGVQcm94eTo6cmVjb3JkTmF0aXZlSW1hZ2VVc2Up
OgorICAgICAgICAqIFdlYlByb2Nlc3MvR1BVL21lZGlhL0F1ZGlvVHJhY2tQcml2YXRlUmVtb3Rl
LmNwcDoKKyAgICAgICAgKFdlYktpdDo6QXVkaW9UcmFja1ByaXZhdGVSZW1vdGU6OkF1ZGlvVHJh
Y2tQcml2YXRlUmVtb3RlKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL0dQVS9tZWRpYS9NZWRpYVBs
YXllclByaXZhdGVSZW1vdGUuY3BwOgorICAgICAgICAoV2ViS2l0OjpNZWRpYVBsYXllclByaXZh
dGVSZW1vdGU6Ok1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZSk6CisgICAgICAgICogV2ViUHJvY2Vz
cy9HUFUvbWVkaWEvTWVkaWFTb3VyY2VQcml2YXRlUmVtb3RlLmNwcDoKKyAgICAgICAgKFdlYktp
dDo6TWVkaWFTb3VyY2VQcml2YXRlUmVtb3RlOjpNZWRpYVNvdXJjZVByaXZhdGVSZW1vdGUpOgor
ICAgICAgICAqIFdlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZUF1ZGlvRGVzdGluYXRpb25Qcm94
eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUF1ZGlvRGVzdGluYXRpb25Qcm94eTo6Y29u
bmVjdGlvbik6CisgICAgICAgICogV2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlQXVkaW9IYXJk
d2FyZUxpc3RlbmVyLmNwcDoKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlQXVkaW9IYXJkd2FyZUxp
c3RlbmVyOjpSZW1vdGVBdWRpb0hhcmR3YXJlTGlzdGVuZXIpOgorICAgICAgICAqIFdlYlByb2Nl
c3MvR1BVL21lZGlhL1JlbW90ZUF1ZGlvU2Vzc2lvbi5jcHA6CisgICAgICAgIChXZWJLaXQ6OlJl
bW90ZUF1ZGlvU2Vzc2lvbjo6ZW5zdXJlQ29ubmVjdGlvbik6CisgICAgICAgICogV2ViUHJvY2Vz
cy9HUFUvbWVkaWEvUmVtb3RlQXVkaW9Tb3VyY2VQcm92aWRlci5jcHA6CisgICAgICAgIChXZWJL
aXQ6OlJlbW90ZUF1ZGlvU291cmNlUHJvdmlkZXI6OlJlbW90ZUF1ZGlvU291cmNlUHJvdmlkZXIp
OgorICAgICAgICAqIFdlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZUNETS5jcHA6CisgICAgICAg
IChXZWJLaXQ6OlJlbW90ZUNETTo6Y3JlYXRlSW5zdGFuY2UpOgorICAgICAgICAqIFdlYlByb2Nl
c3MvR1BVL21lZGlhL1JlbW90ZUNETUZhY3RvcnkuY3BwOgorICAgICAgICAoV2ViS2l0OjpSZW1v
dGVDRE1GYWN0b3J5OjpjcmVhdGVDRE0pOgorICAgICAgICAqIFdlYlByb2Nlc3MvR1BVL21lZGlh
L1JlbW90ZUNETUluc3RhbmNlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlQ0RNSW5zdGFu
Y2U6OmNyZWF0ZVNlc3Npb24pOgorICAgICAgICAqIFdlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90
ZUltYWdlRGVjb2RlckFWRi5jcHA6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUltYWdlRGVjb2Rl
ckFWRjo6UmVtb3RlSW1hZ2VEZWNvZGVyQVZGKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL0dQVS9t
ZWRpYS9SZW1vdGVJbWFnZURlY29kZXJBVkZNYW5hZ2VyLmNwcDoKKyAgICAgICAgKFdlYktpdDo6
UmVtb3RlSW1hZ2VEZWNvZGVyQVZGTWFuYWdlcjo6Y3JlYXRlSW1hZ2VEZWNvZGVyKToKKyAgICAg
ICAgKFdlYktpdDo6UmVtb3RlSW1hZ2VEZWNvZGVyQVZGTWFuYWdlcjo6ZW5zdXJlR1BVUHJvY2Vz
c0Nvbm5lY3Rpb24pOgorICAgICAgICAqIFdlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZUxlZ2Fj
eUNETUZhY3RvcnkuY3BwOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVMZWdhY3lDRE1GYWN0b3J5
OjpjcmVhdGVDRE0pOgorICAgICAgICAqIFdlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZU1lZGlh
UGxheWVyTWFuYWdlci5jcHA6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZU1lZGlhUGxheWVyTWFu
YWdlcjo6Y3JlYXRlUmVtb3RlTWVkaWFQbGF5ZXIpOgorICAgICAgICAqIFdlYlByb2Nlc3MvR1BV
L21lZGlhL1JlbW90ZVJlbW90ZUNvbW1hbmRMaXN0ZW5lci5jcHA6CisgICAgICAgIChXZWJLaXQ6
OlJlbW90ZVJlbW90ZUNvbW1hbmRMaXN0ZW5lcjo6ZW5zdXJlR1BVUHJvY2Vzc0Nvbm5lY3Rpb24p
OgorICAgICAgICAqIFdlYlByb2Nlc3MvR1BVL21lZGlhL1NvdXJjZUJ1ZmZlclByaXZhdGVSZW1v
dGUuY3BwOgorICAgICAgICAoV2ViS2l0OjpTb3VyY2VCdWZmZXJQcml2YXRlUmVtb3RlOjpTb3Vy
Y2VCdWZmZXJQcml2YXRlUmVtb3RlKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL0dQVS9tZWRpYS9U
ZXh0VHJhY2tQcml2YXRlUmVtb3RlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6VGV4dFRyYWNrUHJp
dmF0ZVJlbW90ZTo6VGV4dFRyYWNrUHJpdmF0ZVJlbW90ZSk6CisgICAgICAgICogV2ViUHJvY2Vz
cy9HUFUvbWVkaWEvVmlkZW9UcmFja1ByaXZhdGVSZW1vdGUuY3BwOgorICAgICAgICAoV2ViS2l0
OjpWaWRlb1RyYWNrUHJpdmF0ZVJlbW90ZTo6VmlkZW9UcmFja1ByaXZhdGVSZW1vdGUpOgorICAg
ICAgICAqIFdlYlByb2Nlc3MvR1BVL21lZGlhL2NvY29hL1ZpZGVvTGF5ZXJSZW1vdGVDb2NvYS5t
bToKKyAgICAgICAgKC1bV0tWaWRlb0xheWVyUmVtb3RlIHNldE1lZGlhUGxheWVyUHJpdmF0ZVJl
bW90ZTpdKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL0dQVS9tZWRpYS9pb3MvUmVtb3RlTWVkaWFT
ZXNzaW9uSGVscGVyLmNwcDoKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlTWVkaWFTZXNzaW9uSGVs
cGVyOjplbnN1cmVDb25uZWN0aW9uKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL0dQVS93ZWJydGMv
QXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJJbnRlcm5hbFVuaXRNYW5hZ2VyLmNwcDoKKyAg
ICAgICAgKFdlYktpdDo6QXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJJbnRlcm5hbFVuaXRN
YW5hZ2VyOjphZGQpOgorICAgICAgICAqIFdlYlByb2Nlc3MvR1BVL3dlYnJ0Yy9TYW1wbGVCdWZm
ZXJEaXNwbGF5TGF5ZXIuY3BwOgorICAgICAgICAoV2ViS2l0OjpTYW1wbGVCdWZmZXJEaXNwbGF5
TGF5ZXI6OlNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllcik6CisgICAgICAgICogV2ViUHJvY2Vzcy9H
UFUvd2VicnRjL1NhbXBsZUJ1ZmZlckRpc3BsYXlMYXllck1hbmFnZXIuY3BwOgorICAgICAgICAo
V2ViS2l0OjpTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXJNYW5hZ2VyOjpjcmVhdGVMYXllcik6Cisg
ICAgICAgIChXZWJLaXQ6OlNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllck1hbmFnZXI6OmFkZExheWVy
KToKKyAgICAgICAgKiBXZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9nbGliL0RPTS9ET01P
YmplY3RDYWNoZS5jcHA6CisgICAgICAgICogV2ViUHJvY2Vzcy9JbnNwZWN0b3IvV2ViSW5zcGVj
dG9yVUlFeHRlbnNpb25Db250cm9sbGVyLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViSW5zcGVj
dG9yVUlFeHRlbnNpb25Db250cm9sbGVyOjpXZWJJbnNwZWN0b3JVSUV4dGVuc2lvbkNvbnRyb2xs
ZXIpOgorICAgICAgICAqIFdlYlByb2Nlc3MvTmV0d29yay9XZWJTb2NrZXRDaGFubmVsLmNwcDoK
KyAgICAgICAgKFdlYktpdDo6V2ViU29ja2V0Q2hhbm5lbDo6V2ViU29ja2V0Q2hhbm5lbCk6Cisg
ICAgICAgICogV2ViUHJvY2Vzcy9OZXR3b3JrL1dlYlNvY2tldENoYW5uZWxNYW5hZ2VyLmNwcDoK
KyAgICAgICAgKFdlYktpdDo6V2ViU29ja2V0Q2hhbm5lbE1hbmFnZXI6OmFkZENoYW5uZWwpOgor
ICAgICAgICAqIFdlYlByb2Nlc3MvTmV0d29yay93ZWJydGMvUlRDRGF0YUNoYW5uZWxSZW1vdGVN
YW5hZ2VyLmNwcDoKKyAgICAgICAgKFdlYktpdDo6UlRDRGF0YUNoYW5uZWxSZW1vdGVNYW5hZ2Vy
OjpSZW1vdGVIYW5kbGVyQ29ubmVjdGlvbjo6Y29ubmVjdFRvU291cmNlKToKKyAgICAgICAgKiBX
ZWJQcm9jZXNzL1BsdWdpbnMvUERGL1BERlBsdWdpbi5oOgorICAgICAgICAqIFdlYlByb2Nlc3Mv
UGx1Z2lucy9QREYvUERGUGx1Z2luLm1tOgorICAgICAgICAoLVtXS1BERlBsdWdpbkFjY2Vzc2li
aWxpdHlPYmplY3QgaW5pdFdpdGhQREZQbHVnaW46YW5kRWxlbWVudDpdKToKKyAgICAgICAgKFdl
YktpdDo6UERGUGx1Z2luOjpQREZQbHVnaW4pOgorICAgICAgICAqIFdlYlByb2Nlc3MvUGx1Z2lu
cy9QbHVnaW4uY3BwOgorICAgICAgICAoV2ViS2l0OjpQbHVnaW46OmluaXRpYWxpemUpOgorICAg
ICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRGV2aWNlT3JpZW50YXRpb25VcGRh
dGVQcm92aWRlci5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYkRldmljZU9yaWVudGF0aW9uVXBk
YXRlUHJvdmlkZXI6OldlYkRldmljZU9yaWVudGF0aW9uVXBkYXRlUHJvdmlkZXIpOgorICAgICAg
ICAoV2ViS2l0OjpXZWJEZXZpY2VPcmllbnRhdGlvblVwZGF0ZVByb3ZpZGVyOjpkZXZpY2VPcmll
bnRhdGlvbkNoYW5nZWQpOgorICAgICAgICAoV2ViS2l0OjpXZWJEZXZpY2VPcmllbnRhdGlvblVw
ZGF0ZVByb3ZpZGVyOjpkZXZpY2VNb3Rpb25DaGFuZ2VkKToKKyAgICAgICAgKiBXZWJQcm9jZXNz
L1dlYkNvcmVTdXBwb3J0L1dlYlBlcm1pc3Npb25Db250cm9sbGVyLmNwcDoKKyAgICAgICAgKFdl
YktpdDo6V2ViUGVybWlzc2lvbkNvbnRyb2xsZXI6OldlYlBlcm1pc3Npb25Db250cm9sbGVyKToK
KyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlNwZWVjaFJlY29nbml0aW9u
Q29ubmVjdGlvbi5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlNwZWVjaFJlY29nbml0aW9uQ29u
bmVjdGlvbjo6cmVnaXN0ZXJDbGllbnQpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9D
b2NvYS9XZWJQYWdlQ29jb2EubW06CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OnNldFJlbW90
ZU9iamVjdFJlZ2lzdHJ5KToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvRmluZENvbnRy
b2xsZXIuY3BwOgorICAgICAgICAoV2ViS2l0OjpGaW5kQ29udHJvbGxlcjo6ZHJhd1JlY3QpOgor
ICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9JUENUZXN0aW5nQVBJLmNwcDoKKyAgICAgICAg
KFdlYktpdDo6SVBDVGVzdGluZ0FQSTo6SlNJUEM6OkpTSVBDKToKKyAgICAgICAgKFdlYktpdDo6
SVBDVGVzdGluZ0FQSTo6SlNNZXNzYWdlTGlzdGVuZXI6OkpTTWVzc2FnZUxpc3RlbmVyKToKKyAg
ICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZUxheWVyVHJl
ZURpc3BsYXlSZWZyZXNoTW9uaXRvci5tbToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlTGF5ZXJU
cmVlRGlzcGxheVJlZnJlc2hNb25pdG9yOjpSZW1vdGVMYXllclRyZWVEaXNwbGF5UmVmcmVzaE1v
bml0b3IpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVMYXllclRyZWVEaXNwbGF5UmVmcmVzaE1v
bml0b3I6OnVwZGF0ZURyYXdpbmdBcmVhKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2Uv
V2ViQ29udGV4dE1lbnUuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJDb250ZXh0TWVudTo6V2Vi
Q29udGV4dE1lbnUpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJGcmFtZS5jcHA6
CisgICAgICAgIChXZWJLaXQ6OldlYkZyYW1lOjppbml0V2l0aENvcmVNYWluRnJhbWUpOgorICAg
ICAgICAoV2ViS2l0OjpXZWJGcmFtZTo6Y3JlYXRlU3ViZnJhbWUpOgorICAgICAgICAqIFdlYlBy
b2Nlc3MvV2ViUGFnZS9XZWJGcmFtZS5oOgorICAgICAgICAoV2ViS2l0OjpXZWJGcmFtZTo6c2V0
TG9hZExpc3RlbmVyKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHA6
CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OnNldEFjdGl2ZURhdGFMaXN0U3VnZ2VzdGlvblBp
Y2tlcik6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OnNldEFjdGl2ZURhdGVUaW1lQ2hvb3Nl
cik6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OnN0YXJ0VGV4dE1hbmlwdWxhdGlvbnMpOgor
ICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjpyZXF1ZXN0VGV4dFJlY29nbml0aW9uKToKKyAgICAg
ICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvaW9zL1dlYlBhZ2VJT1MubW06CisgICAgICAgIChXZWJL
aXQ6OldlYlBhZ2U6OmRpZEZpbmlzaENvbnRlbnRDaGFuZ2VPYnNlcnZpbmcpOgorICAgICAgICAo
V2ViS2l0OjpXZWJQYWdlOjpzZWxlY3RUZXh0V2l0aEdyYW51bGFyaXR5QXRQb2ludCk6CisgICAg
ICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9XZWJQYWdlTWFjLm1tOgorICAgICAgICAoV2Vi
S2l0OjpXZWJQYWdlOjpjcmVhdGVQREZIVUQpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViU3Rv
cmFnZS9TdG9yYWdlQXJlYUltcGwuY3BwOgorICAgICAgICAoV2ViS2l0OjpTdG9yYWdlQXJlYUlt
cGw6OlN0b3JhZ2VBcmVhSW1wbCk6CisgICAgICAgICogV2ViUHJvY2Vzcy9jb2NvYS9BdWRpb1Nl
c3Npb25Sb3V0aW5nQXJiaXRyYXRvci5jcHA6CisgICAgICAgIChXZWJLaXQ6OkF1ZGlvU2Vzc2lv
blJvdXRpbmdBcmJpdHJhdG9yOjpBdWRpb1Nlc3Npb25Sb3V0aW5nQXJiaXRyYXRvcik6CisgICAg
ICAgICogV2ViUHJvY2Vzcy9jb2NvYS9WaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyLm1tOgorICAgICAg
ICAoV2ViS2l0OjpWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyOjplbnRlclZpZGVvRnVsbHNjcmVlbkZv
clZpZGVvRWxlbWVudCk6CisKIDIwMjEtMTAtMTIgIEplciBOb2JsZSAgPGplci5ub2JsZUBhcHBs
ZS5jb20+CiAKICAgICAgICAgW0J1aWxkLXRpbWUgcGVyZl0gRm9yd2FyZC1kZWNsYXJlIG1vcmUg
dGhpbmdzIGluIERvY3VtZW50LmgKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvQ2hh
bmdlTG9nIGIvU291cmNlL1dlYktpdExlZ2FjeS9DaGFuZ2VMb2cKaW5kZXggY2ZhMTljNzA3MDhj
YTJhNTZlYjA0MTI0NTczNzhhMDA4NTMzZDdjMy4uOGRmNGZlMjEwZjY2ZTdhM2IzYThkODA1MTFk
YmJiM2RmNWM0ZDU3OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9DaGFuZ2VMb2cK
KysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNiBAQAorMjAy
MS0xMC0xMyAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgorCisgICAgICAgIERyb3Ag
bWFrZVdlYWtQdHIoKSBhbmQgdXNlIFdlYWtQdHIgeyB9IGRpcmVjdGx5CisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzE2NzkKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFN0b3JhZ2UvSW5Qcm9jZXNzSURC
U2VydmVyLmNwcDoKKyAgICAgICAgKHN0b3JhZ2VRdW90YU1hbmFnZXJTcGFjZVJlcXVlc3Rlcik6
CisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvUGFnZVN0b3JhZ2VTZXNzaW9uUHJvdmlkZXIuaDoK
KyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9XZWJCcm9hZGNhc3RDaGFubmVsUmVnaXN0cnkuY3Bw
OgorICAgICAgICAoV2ViQnJvYWRjYXN0Q2hhbm5lbFJlZ2lzdHJ5OjpnZXRPckNyZWF0ZSk6CisK
IDIwMjEtMTAtMDEgIElhbiBBbmRlcnNvbiAgPGlhbmFAYXBwbGUuY29tPgogCiAgICAgICAgIFdl
YktpdExlZ2FjeSdzIG1vZHVsZSBtYXAgZmlsZXMgZG9uJ3QgZ2V0IGluc3RhbGxlZApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdExl
Z2FjeS9tYWMvQ2hhbmdlTG9nCmluZGV4IDVjMmNhOTU0OGFkNDI5YjlhNmY3MGFmY2Y4OTA0MWM2
ZmY4YzViYTcuLjVkNmQ5MjRkY2Y0YjUyYWYyMDUzNGJhZGQ2ODVhMTBjZjFlYjY1YTIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2Vi
S2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMyBAQAorMjAyMS0xMC0xMyAgQ2hy
aXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgorCisgICAgICAgIERyb3AgbWFrZVdlYWtQdHIo
KSBhbmQgdXNlIFdlYWtQdHIgeyB9IGRpcmVjdGx5CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzE2NzkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L1dlYkVkaXRvckNsaWVudC5t
bToKKyAgICAgICAgKFdlYkVkaXRvckNsaWVudDo6cmVxdWVzdENhbmRpZGF0ZXNGb3JTZWxlY3Rp
b24pOgorCiAyMDIxLTEwLTEyICBKZXIgTm9ibGUgIDxqZXIubm9ibGVAYXBwbGUuY29tPgogCiAg
ICAgICAgIFtCdWlsZC10aW1lIHBlcmZdIEZvcndhcmQtZGVjbGFyZSBtb3JlIHRoaW5ncyBpbiBE
b2N1bWVudC5oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9XZWFrSGFzaE1hcC5oIGIvU291
cmNlL1dURi93dGYvV2Vha0hhc2hNYXAuaAppbmRleCA3MTRhNTBkNmJkY2Y3YmZiNDdjMzU5ZTQx
YWZjNjZmZWQwYzg4ZjY2Li5jMzZmMzVkNzEyYTExMmRiNzFhODU1YjRjYjFhYTQ3YjVmMWI4OWEw
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9XZWFrSGFzaE1hcC5oCisrKyBiL1NvdXJjZS9X
VEYvd3RmL1dlYWtIYXNoTWFwLmgKQEAgLTM1MSw3ICszNTEsNyBAQCBwcml2YXRlOgogICAgIHRl
bXBsYXRlIDx0eXBlbmFtZSBUPgogICAgIHN0YXRpYyBSZWZUeXBlIG1ha2VLZXlJbXBsKGNvbnN0
IFQmIGtleSkKICAgICB7Ci0gICAgICAgIHJldHVybiAqbWFrZVdlYWtQdHI8S2V5VHlwZT4oY29u
c3RfY2FzdDxUJj4oa2V5KSkubV9pbXBsOworICAgICAgICByZXR1cm4gKmtleS53ZWFrUHRyRmFj
dG9yeSgpLnRlbXBsYXRlIGNyZWF0ZVdlYWtQdHI8VD4oY29uc3RfY2FzdDxUJj4oa2V5KSkubV9p
bXBsOwogICAgIH0KIAogICAgIHRlbXBsYXRlIDx0eXBlbmFtZSBUPgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dURi93dGYvV2Vha0hhc2hTZXQuaCBiL1NvdXJjZS9XVEYvd3RmL1dlYWtIYXNoU2V0LmgK
aW5kZXggZWU3YjMyOWJmNzMzODU0YjEzZjNkODVkMzcxMzk5YjJhZDI1OTFhMy4uOTljMjM4ZGNi
NThiYjFjMDQ0OTIyYzlmNDA5MmZiY2E2M2UxZjdlZiAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93
dGYvV2Vha0hhc2hTZXQuaAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9XZWFrSGFzaFNldC5oCkBAIC05
MSw3ICs5MSw3IEBAIHB1YmxpYzoKICAgICB0ZW1wbGF0ZSA8dHlwZW5hbWUgVT4KICAgICBBZGRS
ZXN1bHQgYWRkKGNvbnN0IFUmIHZhbHVlKQogICAgIHsKLSAgICAgICAgcmV0dXJuIG1fc2V0LmFk
ZCgqbWFrZVdlYWtQdHI8VD4oY29uc3RfY2FzdDxVJj4odmFsdWUpKS5tX2ltcGwpOworICAgICAg
ICByZXR1cm4gbV9zZXQuYWRkKCpzdGF0aWNfY2FzdDxjb25zdCBUJj4odmFsdWUpLndlYWtQdHJG
YWN0b3J5KCkudGVtcGxhdGUgY3JlYXRlV2Vha1B0cjxUPihjb25zdF9jYXN0PFUmPih2YWx1ZSkp
Lm1faW1wbCk7CiAgICAgfQogCiAgICAgdGVtcGxhdGUgPHR5cGVuYW1lIFU+CkBAIC0xNjksNyAr
MTY5LDcgQEAgc3RydWN0IE1hcHBlcjxNYXBGdW5jdGlvbiwgY29uc3QgV2Vha0hhc2hTZXQ8VD4g
Jiwgdm9pZD4gewogdGVtcGxhdGU8dHlwZW5hbWUgVD4KIGlubGluZSBhdXRvIGNvcHlUb1ZlY3Rv
cihjb25zdCBXZWFrSGFzaFNldDxUPiYgY29sbGVjdGlvbikgLT4gVmVjdG9yPFdlYWtQdHI8VD4+
CiB7Ci0gICAgcmV0dXJuIFdURjo6bWFwKGNvbGxlY3Rpb24sIFtdIChhdXRvJiB2KSAtPiBXZWFr
UHRyPFQ+IHsgcmV0dXJuIG1ha2VXZWFrUHRyPFQ+KHYpOyB9KTsKKyAgICByZXR1cm4gV1RGOjpt
YXAoY29sbGVjdGlvbiwgW10gKGF1dG8mIHYpIC0+IFdlYWtQdHI8VD4geyByZXR1cm4gV2Vha1B0
cjxUPiB7IHYgfTsgfSk7CiB9CiAKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvV2Vha1B0
ci5oIGIvU291cmNlL1dURi93dGYvV2Vha1B0ci5oCmluZGV4IDhiYTcyODdlOTYwNDExODAwNzZm
MDU3ZTBiNzMzN2I1MThkMzZjZmUuLmEzOWZmNWE3MWQwZTMwYzkwNzI5MWFhMTUyNzcwM2M2NmVj
NDBmMDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL1dlYWtQdHIuaAorKysgYi9Tb3VyY2Uv
V1RGL3d0Zi9XZWFrUHRyLmgKQEAgLTI0OSw3ICsyNDksNyBAQCBwcml2YXRlOgogfTsKIAogLy8g
V2UgdXNlIGxhenkgaW5pdGlhbGl6YXRpb24gb2YgdGhlIFdlYWtQdHJGYWN0b3J5IGJ5IGRlZmF1
bHQgdG8gYXZvaWQgdW5uZWNlc3NhcnkgaW5pdGlhbGl6YXRpb24uIEVhZ2VyCi0vLyBpbml0aWFs
aXphdGlvbiBpcyBob3dldmVyIHVzZWZ1bCBpZiB5b3UgcGxhbiB0byBjYWxsIG1ha2VXZWFrUHRy
KCkgZnJvbSBvdGhlciB0aHJlYWRzLgorLy8gaW5pdGlhbGl6YXRpb24gaXMgaG93ZXZlciB1c2Vm
dWwgaWYgeW91IHBsYW4gdG8gY2FsbCBjb25zdHJ1Y3QgV2Vha1B0cnMgZnJvbSBvdGhlciB0aHJl
YWRzLgogZW51bSBjbGFzcyBXZWFrUHRyRmFjdG9yeUluaXRpYWxpemF0aW9uIHsgTGF6eSwgRWFn
ZXIgfTsKIAogdGVtcGxhdGU8dHlwZW5hbWUgVCwgV2Vha1B0ckZhY3RvcnlJbml0aWFsaXphdGlv
biBpbml0aWFsaXphdGlvbk1vZGUgPSBXZWFrUHRyRmFjdG9yeUluaXRpYWxpemF0aW9uOjpMYXp5
LCB0eXBlbmFtZSBDb3VudGVyID0gRW1wdHlDb3VudGVyPiBjbGFzcyBDYW5NYWtlV2Vha1B0ciB7
CkBAIC0zMDMsMzIgKzMwMyw2IEBAIHRlbXBsYXRlPHR5cGVuYW1lIFQsIHR5cGVuYW1lIENvdW50
ZXI+IHRlbXBsYXRlPHR5cGVuYW1lIFU+IGlubGluZSBXZWFrUHRyPFQsIENvCiAgICAgcmV0dXJu
ICp0aGlzOwogfQogCi0vLyBtYWtlV2Vha1B0cigpIGlzIGRlcHJlY2F0ZWQuIFVzZSBXZWFrUHRy
IHsgb2JqZWN0IH0gZGlyZWN0bHkgaW5zdGVhZC4KLXRlbXBsYXRlPHR5cGVuYW1lIFQsIHR5cGVu
YW1lID0gc3RkOjplbmFibGVfaWZfdDwhSXNTbWFydFB0cjxUPjo6dmFsdWU+PiBpbmxpbmUgYXV0
byBtYWtlV2Vha1B0cihUJiBvYmplY3QsIEVuYWJsZVdlYWtQdHJUaHJlYWRpbmdBc3NlcnRpb25z
IGVuYWJsZVdlYWtQdHJUaHJlYWRpbmdBc3NlcnRpb25zID0gRW5hYmxlV2Vha1B0clRocmVhZGlu
Z0Fzc2VydGlvbnM6OlllcykKLXsKLSAgICByZXR1cm4gb2JqZWN0LndlYWtQdHJGYWN0b3J5KCku
dGVtcGxhdGUgY3JlYXRlV2Vha1B0cjxUPihvYmplY3QsIGVuYWJsZVdlYWtQdHJUaHJlYWRpbmdB
c3NlcnRpb25zKTsKLX0KLQotLy8gbWFrZVdlYWtQdHIoKSBpcyBkZXByZWNhdGVkLiBVc2UgV2Vh
a1B0ciB7IG9iamVjdCB9IGRpcmVjdGx5IGluc3RlYWQuCi10ZW1wbGF0ZTx0eXBlbmFtZSBULCB0
eXBlbmFtZSA9IHN0ZDo6ZW5hYmxlX2lmX3Q8IUlzU21hcnRQdHI8VD46OnZhbHVlPj4gaW5saW5l
IGF1dG8gbWFrZVdlYWtQdHIoVCogcHRyLCBFbmFibGVXZWFrUHRyVGhyZWFkaW5nQXNzZXJ0aW9u
cyBlbmFibGVXZWFrUHRyVGhyZWFkaW5nQXNzZXJ0aW9ucyA9IEVuYWJsZVdlYWtQdHJUaHJlYWRp
bmdBc3NlcnRpb25zOjpZZXMpIC0+IGRlY2x0eXBlKG1ha2VXZWFrUHRyKCpwdHIpKQotewotICAg
IGlmICghcHRyKQotICAgICAgICByZXR1cm4geyB9OwotICAgIHJldHVybiBtYWtlV2Vha1B0cigq
cHRyLCBlbmFibGVXZWFrUHRyVGhyZWFkaW5nQXNzZXJ0aW9ucyk7Ci19Ci0KLS8vIG1ha2VXZWFr
UHRyKCkgaXMgZGVwcmVjYXRlZC4gVXNlIFdlYWtQdHIgeyBvYmplY3QgfSBkaXJlY3RseSBpbnN0
ZWFkLgotdGVtcGxhdGU8dHlwZW5hbWUgVCwgdHlwZW5hbWUgPSBzdGQ6OmVuYWJsZV9pZl90PCFJ
c1NtYXJ0UHRyPFQ+Ojp2YWx1ZT4+IGlubGluZSBhdXRvIG1ha2VXZWFrUHRyKGNvbnN0IFJlZjxU
PiYgb2JqZWN0LCBFbmFibGVXZWFrUHRyVGhyZWFkaW5nQXNzZXJ0aW9ucyBlbmFibGVXZWFrUHRy
VGhyZWFkaW5nQXNzZXJ0aW9ucyA9IEVuYWJsZVdlYWtQdHJUaHJlYWRpbmdBc3NlcnRpb25zOjpZ
ZXMpCi17Ci0gICAgcmV0dXJuIG1ha2VXZWFrUHRyKG9iamVjdC5nZXQoKSwgZW5hYmxlV2Vha1B0
clRocmVhZGluZ0Fzc2VydGlvbnMpOwotfQotCi0vLyBtYWtlV2Vha1B0cigpIGlzIGRlcHJlY2F0
ZWQuIFVzZSBXZWFrUHRyIHsgb2JqZWN0IH0gZGlyZWN0bHkgaW5zdGVhZC4KLXRlbXBsYXRlPHR5
cGVuYW1lIFQsIHR5cGVuYW1lID0gc3RkOjplbmFibGVfaWZfdDwhSXNTbWFydFB0cjxUPjo6dmFs
dWU+PiBpbmxpbmUgYXV0byBtYWtlV2Vha1B0cihjb25zdCBSZWZQdHI8VD4mIG9iamVjdCwgRW5h
YmxlV2Vha1B0clRocmVhZGluZ0Fzc2VydGlvbnMgZW5hYmxlV2Vha1B0clRocmVhZGluZ0Fzc2Vy
dGlvbnMgPSBFbmFibGVXZWFrUHRyVGhyZWFkaW5nQXNzZXJ0aW9uczo6WWVzKQotewotICAgIHJl
dHVybiBtYWtlV2Vha1B0cihvYmplY3QuZ2V0KCksIGVuYWJsZVdlYWtQdHJUaHJlYWRpbmdBc3Nl
cnRpb25zKTsKLX0KLQogdGVtcGxhdGUgPHR5cGVuYW1lIFQsIHR5cGVuYW1lIENvdW50ZXI+CiBz
dHJ1Y3QgR2V0UHRySGVscGVyPFdlYWtQdHI8VCwgQ291bnRlcj4+IHsKICAgICB1c2luZyBQdHJU
eXBlID0gVCo7CkBAIC0zODksNCArMzYzLDMgQEAgdXNpbmcgV1RGOjpFbmFibGVXZWFrUHRyVGhy
ZWFkaW5nQXNzZXJ0aW9uczsKIHVzaW5nIFdURjo6V2Vha1B0cjsKIHVzaW5nIFdURjo6V2Vha1B0
ckZhY3Rvcnk7CiB1c2luZyBXVEY6OldlYWtQdHJGYWN0b3J5SW5pdGlhbGl6YXRpb247Ci11c2lu
ZyBXVEY6Om1ha2VXZWFrUHRyOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9m
aWxlc3lzdGVtYWNjZXNzL0ZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRs
ZS5jcHAKaW5kZXggZDIyZTIwODBiNmNjNjQ3YzNlNWJmZTkxZWM1MjQ3NmNhYTlkNDg5Yy4uMmJj
Zjc0YTA4N2I4Mzk3ZjMwYTIyNjM2ZDgwMmUwYzFlOTA2ODJhYiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL0ZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFu
ZGxlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmls
ZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGUuY3BwCkBAIC01NSw3ICs1NSw3IEBAIEZpbGVTeXN0ZW1T
eW5jQWNjZXNzSGFuZGxlOjp+RmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGUoKQogdm9pZCBGaWxl
U3lzdGVtU3luY0FjY2Vzc0hhbmRsZTo6dHJ1bmNhdGUodW5zaWduZWQgbG9uZyBsb25nIHNpemUs
IERPTVByb21pc2VEZWZlcnJlZDx2b2lkPiYmIHByb21pc2UpCiB7CiAgICAgbV9wZW5kaW5nT3Bl
cmF0aW9uQ291bnQrKzsKLSAgICBtX3NvdXJjZS0+dHJ1bmNhdGUobV9pZGVudGlmaWVyLCBzaXpl
LCBbd2Vha1RoaXMgPSBtYWtlV2Vha1B0cigqdGhpcyksIHByb21pc2UgPSBXVEZNb3ZlKHByb21p
c2UpXShhdXRvIHJlc3VsdCkgbXV0YWJsZSB7CisgICAgbV9zb3VyY2UtPnRydW5jYXRlKG1faWRl
bnRpZmllciwgc2l6ZSwgW3dlYWtUaGlzID0gV2Vha1B0ciB7ICp0aGlzIH0sIHByb21pc2UgPSBX
VEZNb3ZlKHByb21pc2UpXShhdXRvIHJlc3VsdCkgbXV0YWJsZSB7CiAgICAgICAgIGlmICh3ZWFr
VGhpcykKICAgICAgICAgICAgIHdlYWtUaGlzLT5tX3BlbmRpbmdPcGVyYXRpb25Db3VudC0tOwog
CkBAIC02Niw3ICs2Niw3IEBAIHZvaWQgRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGU6OnRydW5j
YXRlKHVuc2lnbmVkIGxvbmcgbG9uZyBzaXplLCBET01Qcm9taXNlRGVmCiB2b2lkIEZpbGVTeXN0
ZW1TeW5jQWNjZXNzSGFuZGxlOjpnZXRTaXplKERPTVByb21pc2VEZWZlcnJlZDxJRExVbnNpZ25l
ZExvbmdMb25nPiYmIHByb21pc2UpCiB7CiAgICAgbV9wZW5kaW5nT3BlcmF0aW9uQ291bnQrKzsK
LSAgICBtX3NvdXJjZS0+Z2V0U2l6ZShtX2lkZW50aWZpZXIsIFt3ZWFrVGhpcyA9IG1ha2VXZWFr
UHRyKCp0aGlzKSwgcHJvbWlzZSA9IFdURk1vdmUocHJvbWlzZSldKGF1dG8gcmVzdWx0KSBtdXRh
YmxlIHsKKyAgICBtX3NvdXJjZS0+Z2V0U2l6ZShtX2lkZW50aWZpZXIsIFt3ZWFrVGhpcyA9IFdl
YWtQdHIgeyAqdGhpcyB9LCBwcm9taXNlID0gV1RGTW92ZShwcm9taXNlKV0oYXV0byByZXN1bHQp
IG11dGFibGUgewogICAgICAgICBpZiAod2Vha1RoaXMpCiAgICAgICAgICAgICB3ZWFrVGhpcy0+
bV9wZW5kaW5nT3BlcmF0aW9uQ291bnQtLTsKIApAQCAtNzcsNyArNzcsNyBAQCB2b2lkIEZpbGVT
eXN0ZW1TeW5jQWNjZXNzSGFuZGxlOjpnZXRTaXplKERPTVByb21pc2VEZWZlcnJlZDxJRExVbnNp
Z25lZExvbmdMb25nPgogdm9pZCBGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZTo6Zmx1c2goRE9N
UHJvbWlzZURlZmVycmVkPHZvaWQ+JiYgcHJvbWlzZSkKIHsKICAgICBtX3BlbmRpbmdPcGVyYXRp
b25Db3VudCsrOwotICAgIG1fc291cmNlLT5mbHVzaChtX2lkZW50aWZpZXIsIFt3ZWFrVGhpcyA9
IG1ha2VXZWFrUHRyKCp0aGlzKSwgcHJvbWlzZSA9IFdURk1vdmUocHJvbWlzZSldKGF1dG8gcmVz
dWx0KSBtdXRhYmxlIHsKKyAgICBtX3NvdXJjZS0+Zmx1c2gobV9pZGVudGlmaWVyLCBbd2Vha1Ro
aXMgPSBXZWFrUHRyIHsgKnRoaXMgfSwgcHJvbWlzZSA9IFdURk1vdmUocHJvbWlzZSldKGF1dG8g
cmVzdWx0KSBtdXRhYmxlIHsKICAgICAgICAgaWYgKHdlYWtUaGlzKQogICAgICAgICAgICAgd2Vh
a1RoaXMtPm1fcGVuZGluZ09wZXJhdGlvbkNvdW50LS07CiAKQEAgLTkxLDcgKzkxLDcgQEAgdm9p
ZCBGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZTo6Y2xvc2UoRE9NUHJvbWlzZURlZmVycmVkPHZv
aWQ+JiYgcHJvbWlzZSkKICAgICAgICAgcmV0dXJuIHByb21pc2UucmVqZWN0KEV4Y2VwdGlvbiB7
IEludmFsaWRTdGF0ZUVycm9yIH0pOwogCiAgICAgbV9wZW5kaW5nT3BlcmF0aW9uQ291bnQrKzsK
LSAgICBtX3NvdXJjZS0+Y2xvc2UobV9pZGVudGlmaWVyLCBbd2Vha1RoaXMgPSBtYWtlV2Vha1B0
cigqdGhpcyksIHByb21pc2UgPSBXVEZNb3ZlKHByb21pc2UpXShhdXRvIHJlc3VsdCkgbXV0YWJs
ZSB7CisgICAgbV9zb3VyY2UtPmNsb3NlKG1faWRlbnRpZmllciwgW3dlYWtUaGlzID0gV2Vha1B0
ciB7ICp0aGlzIH0sIHByb21pc2UgPSBXVEZNb3ZlKHByb21pc2UpXShhdXRvIHJlc3VsdCkgbXV0
YWJsZSB7CiAgICAgICAgIGlmICh3ZWFrVGhpcykgewogICAgICAgICAgICAgd2Vha1RoaXMtPm1f
cGVuZGluZ09wZXJhdGlvbkNvdW50LS07CiAgICAgICAgICAgICB3ZWFrVGhpcy0+ZGlkQ2xvc2Uo
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhPYmplY3RDYWNo
ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FYT2JqZWN0Q2FjaGUuY3BwCmlu
ZGV4IGY0ZGRjZWZlYmJlM2ZkZDUwNTA0NjVkNTc2MzllMGQyMTRmNDI2ZGMuLjRkMWI0YjIxODA3
OTE4MzczNmVkMzljMGY4MGEwMDY3YjU2YTUxNGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2FjY2Vzc2liaWxpdHkvQVhPYmplY3RDYWNoZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYWNj
ZXNzaWJpbGl0eS9BWE9iamVjdENhY2hlLmNwcApAQCAtMTIxNiwxNCArMTIxNiwxNiBAQCB2b2lk
IEFYT2JqZWN0Q2FjaGU6OmRlZmVyRm9jdXNlZFVJRWxlbWVudENoYW5nZUlmTmVlZGVkKE5vZGUq
IG9sZE5vZGUsIE5vZGUqIG5ldwogCiB2b2lkIEFYT2JqZWN0Q2FjaGU6OmRlZmVyTWVudUxpc3RW
YWx1ZUNoYW5nZShFbGVtZW50KiBlbGVtZW50KQogewotICAgIG1fZGVmZXJyZWRNZW51TGlzdENo
YW5nZS5hZGQoZWxlbWVudCk7CisgICAgaWYgKGVsZW1lbnQpCisgICAgICAgIG1fZGVmZXJyZWRN
ZW51TGlzdENoYW5nZS5hZGQoKmVsZW1lbnQpOwogICAgIGlmICghbV9wZXJmb3JtQ2FjaGVVcGRh
dGVUaW1lci5pc0FjdGl2ZSgpKQogICAgICAgICBtX3BlcmZvcm1DYWNoZVVwZGF0ZVRpbWVyLnN0
YXJ0T25lU2hvdCgwX3MpOwogfQogCiB2b2lkIEFYT2JqZWN0Q2FjaGU6OmRlZmVyTW9kYWxDaGFu
Z2UoRWxlbWVudCogZWxlbWVudCkKIHsKLSAgICBtX2RlZmVycmVkTW9kYWxDaGFuZ2VkTGlzdC5h
ZGQoZWxlbWVudCk7CisgICAgaWYgKGVsZW1lbnQpCisgICAgICAgIG1fZGVmZXJyZWRNb2RhbENo
YW5nZWRMaXN0LmFkZCgqZWxlbWVudCk7CiAgICAgaWYgKCFtX3BlcmZvcm1DYWNoZVVwZGF0ZVRp
bWVyLmlzQWN0aXZlKCkpCiAgICAgICAgIG1fcGVyZm9ybUNhY2hlVXBkYXRlVGltZXIuc3RhcnRP
bmVTaG90KDBfcyk7CiB9CkBAIC0zMzU2LDcgKzMzNTgsNyBAQCB2b2lkIEFYT2JqZWN0Q2FjaGU6
OmRlZmVyUmVjb21wdXRlSXNJZ25vcmVkSWZOZWVkZWQoRWxlbWVudCogZWxlbWVudCkKICAgICAg
ICAgcmV0dXJuOwogICAgIAogICAgIGlmIChyZW5kZXJlck5lZWRzRGVmZXJyZWRVcGRhdGUoKmVs
ZW1lbnQtPnJlbmRlcmVyKCkpKSB7Ci0gICAgICAgIG1fZGVmZXJyZWRSZWNvbXB1dGVJc0lnbm9y
ZWRMaXN0LmFkZChlbGVtZW50KTsKKyAgICAgICAgbV9kZWZlcnJlZFJlY29tcHV0ZUlzSWdub3Jl
ZExpc3QuYWRkKCplbGVtZW50KTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KICAgICByZWNvbXB1
dGVJc0lnbm9yZWQoZWxlbWVudC0+cmVuZGVyZXIoKSk7CkBAIC0zMzY3LDcgKzMzNjksNyBAQCB2
b2lkIEFYT2JqZWN0Q2FjaGU6OmRlZmVyUmVjb21wdXRlSXNJZ25vcmVkKEVsZW1lbnQqIGVsZW1l
bnQpCiAgICAgaWYgKCFub2RlQW5kUmVuZGVyZXJBcmVWYWxpZChlbGVtZW50KSkKICAgICAgICAg
cmV0dXJuOwogCi0gICAgbV9kZWZlcnJlZFJlY29tcHV0ZUlzSWdub3JlZExpc3QuYWRkKGVsZW1l
bnQpOworICAgIG1fZGVmZXJyZWRSZWNvbXB1dGVJc0lnbm9yZWRMaXN0LmFkZCgqZWxlbWVudCk7
CiB9CiAKIHZvaWQgQVhPYmplY3RDYWNoZTo6ZGVmZXJUZXh0Q2hhbmdlZElmTmVlZGVkKE5vZGUq
IG5vZGUpCkBAIC0zMzg4LDcgKzMzOTAsNyBAQCB2b2lkIEFYT2JqZWN0Q2FjaGU6OmRlZmVyU2Vs
ZWN0ZWRDaGlsZHJlbkNoYW5nZWRJZk5lZWRlZChFbGVtZW50JiBzZWxlY3RFbGVtZW50KQogICAg
ICAgICByZXR1cm47CiAKICAgICBpZiAocmVuZGVyZXJOZWVkc0RlZmVycmVkVXBkYXRlKCpzZWxl
Y3RFbGVtZW50LnJlbmRlcmVyKCkpKSB7Ci0gICAgICAgIG1fZGVmZXJyZWRTZWxlY3RlZENoaWxk
cmVkQ2hhbmdlZExpc3QuYWRkKCZzZWxlY3RFbGVtZW50KTsKKyAgICAgICAgbV9kZWZlcnJlZFNl
bGVjdGVkQ2hpbGRyZWRDaGFuZ2VkTGlzdC5hZGQoc2VsZWN0RWxlbWVudCk7CiAgICAgICAgIHJl
dHVybjsKICAgICB9CiAgICAgc2VsZWN0ZWRDaGlsZHJlbkNoYW5nZWQoJnNlbGVjdEVsZW1lbnQp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKaW5kZXggOGRlNjE3NDFlZmVkMzYzMzExMWQzN2VjZWQ4
MWI1OTQ3YWQ4MTI5Ny4uODJhYTk1NTA2NWIxN2Q1YjE2NjlhYWJkZmEwNzAxYzM3YjI5Y2M5YyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCkBAIC03NTgxLDcgKzc1ODEsNyBAQCB2b2lkIERvY3Vt
ZW50OjpkaWRBc3NvY2lhdGVGb3JtQ29udHJvbChFbGVtZW50JiBlbGVtZW50KQogICAgIGlmICgh
cGFnZSB8fCAhcGFnZS0+Y2hyb21lKCkuY2xpZW50KCkuc2hvdWxkTm90aWZ5T25Gb3JtQ2hhbmdl
cygpKQogICAgICAgICByZXR1cm47CiAKLSAgICBhdXRvIGlzTmV3RW50cnkgPSBtX2Fzc29jaWF0
ZWRGb3JtQ29udHJvbHMuYWRkKCZlbGVtZW50KS5pc05ld0VudHJ5OworICAgIGF1dG8gaXNOZXdF
bnRyeSA9IG1fYXNzb2NpYXRlZEZvcm1Db250cm9scy5hZGQoZWxlbWVudCkuaXNOZXdFbnRyeTsK
ICAgICBpZiAoaXNOZXdFbnRyeSAmJiAhbV9kaWRBc3NvY2lhdGVGb3JtQ29udHJvbHNUaW1lci5p
c0FjdGl2ZSgpKQogICAgICAgICBtX2RpZEFzc29jaWF0ZUZvcm1Db250cm9sc1RpbWVyLnN0YXJ0
T25lU2hvdChpc1RvcERvY3VtZW50KCkgfHwgaGFzSGFkVXNlckludGVyYWN0aW9uKCkgPyAwX3Mg
OiAxX3MpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuY3BwIGIv
U291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuY3BwCmluZGV4IGRlMjdjNmY1NWZkNzdhM2E3NzNi
ODQxZmJlOWRhM2Y3ZjZjMDYwN2YuLmJlODY1Nzc5OGNkMjcwOGRlOTg1ZWY5NjU2ODA3ODNjZDBm
OTcyYzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5jcHAKQEAgLTIzNTQsNyArMjM1NCw3IEBAIHZvaWQg
RWxlbWVudDo6YWRkU2hhZG93Um9vdChSZWY8U2hhZG93Um9vdD4mJiBuZXdTaGFkb3dSb290KQog
CiAgICAgICAgIGVuc3VyZUVsZW1lbnRSYXJlRGF0YSgpLnNldFNoYWRvd1Jvb3QoV1RGTW92ZShu
ZXdTaGFkb3dSb290KSk7CiAKLSAgICAgICAgc2hhZG93Um9vdC5zZXRIb3N0KG1ha2VXZWFrUHRy
PEVsZW1lbnQ+KHRoaXMpKTsKKyAgICAgICAgc2hhZG93Um9vdC5zZXRIb3N0KCp0aGlzKTsKICAg
ICAgICAgc2hhZG93Um9vdC5zZXRQYXJlbnRUcmVlU2NvcGUodHJlZVNjb3BlKCkpOwogCiAjaWYg
QVNTRVJUX0VOQUJMRUQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FdmVudExvb3Au
Y3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL0V2ZW50TG9vcC5jcHAKaW5kZXggZjFlMTQwMTliZGU4
NzY5NjM4NTVlYTI0ZWZkMmRlYmRjMTZiYWI2Zi4uMWU5NWMyNTdhMzE0ODc5YzZmMjNiMDdhNzIw
MzA3YTQ2N2ZkMjJmZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0V2ZW50TG9vcC5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0V2ZW50TG9vcC5jcHAKQEAgLTExNSw3ICsxMTUs
NyBAQCB2b2lkIEV2ZW50TG9vcDo6cnVuKCkKICAgICAgICAgICAgICAgICBjb250aW51ZTsKIAog
ICAgICAgICAgICAgaWYgKGdyb3VwLT5pc1N1c3BlbmRlZCgpKSB7Ci0gICAgICAgICAgICAgICAg
bV9ncm91cHNXaXRoU3VzcGVuZWRUYXNrcy5hZGQoZ3JvdXApOworICAgICAgICAgICAgICAgIG1f
Z3JvdXBzV2l0aFN1c3BlbmVkVGFza3MuYWRkKCpncm91cCk7CiAgICAgICAgICAgICAgICAgcmVt
YWluaW5nVGFza3MuYXBwZW5kKFdURk1vdmUodGFzaykpOwogICAgICAgICAgICAgICAgIGNvbnRp
bnVlOwogICAgICAgICAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL011dGF0
aW9uT2JzZXJ2ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL011dGF0aW9uT2JzZXJ2ZXIuY3Bw
CmluZGV4IDY1MDVkYzlhYjJlZmI2YjY0ZjQzMThkZWM5OTc2YWU4ODYwMDEyNzguLjY2YzU4YmRh
MjI1ZDE1ODFmMTAyZGMyZjQ2YzYyZjY4OGExYzdhMzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2RvbS9NdXRhdGlvbk9ic2VydmVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vTXV0
YXRpb25PYnNlcnZlci5jcHAKQEAgLTEzMCw3ICsxMzAsNyBAQCB2b2lkIE11dGF0aW9uT2JzZXJ2
ZXI6OmRpc2Nvbm5lY3QoKQogdm9pZCBNdXRhdGlvbk9ic2VydmVyOjpvYnNlcnZhdGlvblN0YXJ0
ZWQoTXV0YXRpb25PYnNlcnZlclJlZ2lzdHJhdGlvbiYgcmVnaXN0cmF0aW9uKQogewogICAgIEFT
U0VSVCghbV9yZWdpc3RyYXRpb25zLmNvbnRhaW5zKHJlZ2lzdHJhdGlvbikpOwotICAgIG1fcmVn
aXN0cmF0aW9ucy5hZGQoJnJlZ2lzdHJhdGlvbik7CisgICAgbV9yZWdpc3RyYXRpb25zLmFkZChy
ZWdpc3RyYXRpb24pOwogfQogCiB2b2lkIE11dGF0aW9uT2JzZXJ2ZXI6Om9ic2VydmF0aW9uRW5k
ZWQoTXV0YXRpb25PYnNlcnZlclJlZ2lzdHJhdGlvbiYgcmVnaXN0cmF0aW9uKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvZG9tL1JhZGlvQnV0dG9uR3JvdXBzLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2RvbS9SYWRpb0J1dHRvbkdyb3Vwcy5jcHAKaW5kZXggYTVkNTMwZjk2MDBlM2JlMDA2YzQx
MmJiZDE2Y2FkYzQyZjZjODkwZi4uNTBmNDYzMGY4OWVjODk1ZGYxY2U1YWI4ZWQ1ODE4OWI3YWZi
ZjY2MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL1JhZGlvQnV0dG9uR3JvdXBzLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vUmFkaW9CdXR0b25Hcm91cHMuY3BwCkBAIC04Nyw3
ICs4Nyw3IEBAIHZvaWQgUmFkaW9CdXR0b25Hcm91cDo6c2V0Q2hlY2tlZEJ1dHRvbihIVE1MSW5w
dXRFbGVtZW50KiBidXR0b24pCiB2b2lkIFJhZGlvQnV0dG9uR3JvdXA6OmFkZChIVE1MSW5wdXRF
bGVtZW50JiBidXR0b24pCiB7CiAgICAgQVNTRVJUKGJ1dHRvbi5pc1JhZGlvQnV0dG9uKCkpOwot
ICAgIGlmICghbV9tZW1iZXJzLmFkZCgmYnV0dG9uKS5pc05ld0VudHJ5KQorICAgIGlmICghbV9t
ZW1iZXJzLmFkZChidXR0b24pLmlzTmV3RW50cnkpCiAgICAgICAgIHJldHVybjsKICAgICBib29s
IGdyb3VwV2FzVmFsaWQgPSBpc1ZhbGlkKCk7CiAgICAgaWYgKGJ1dHRvbi5pc1JlcXVpcmVkKCkp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vVXNlckdlc3R1cmVJbmRpY2F0b3IuY3Bw
IGIvU291cmNlL1dlYkNvcmUvZG9tL1VzZXJHZXN0dXJlSW5kaWNhdG9yLmNwcAppbmRleCA4ZmI3
ZWY0YjVkMzI2NmE0M2U2OTRhNzE1MDgzNTc5YThjOGE1OTgyLi5iYzJlNjBkOWYzYTQ4YWI0ZTFm
OTU4M2JhYjljMjg5OTMxZDFhMjEzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vVXNl
ckdlc3R1cmVJbmRpY2F0b3IuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Vc2VyR2VzdHVy
ZUluZGljYXRvci5jcHAKQEAgLTYwLDcgKzYwLDcgQEAgVXNlckdlc3R1cmVUb2tlbjo6VXNlckdl
c3R1cmVUb2tlbihQcm9jZXNzaW5nVXNlckdlc3R1cmVTdGF0ZSBzdGF0ZSwgVXNlckdlc3R1cmUK
IAogICAgIGZvciAoYXV0byogYW5jZXN0b3JGcmFtZSA9IGRvY3VtZW50RnJhbWUtPnRyZWUoKS5w
YXJlbnQoKTsgYW5jZXN0b3JGcmFtZTsgYW5jZXN0b3JGcmFtZSA9IGFuY2VzdG9yRnJhbWUtPnRy
ZWUoKS5wYXJlbnQoKSkgewogICAgICAgICBpZiAoYXV0byogYW5jZXN0b3JEb2N1bWVudCA9IGFu
Y2VzdG9yRnJhbWUtPmRvY3VtZW50KCkpCi0gICAgICAgICAgICBtX2RvY3VtZW50c0ltcGFjdGVk
QnlVc2VyR2VzdHVyZS5hZGQoYW5jZXN0b3JEb2N1bWVudCk7CisgICAgICAgICAgICBtX2RvY3Vt
ZW50c0ltcGFjdGVkQnlVc2VyR2VzdHVyZS5hZGQoKmFuY2VzdG9yRG9jdW1lbnQpOwogICAgIH0K
IAogICAgIGF1dG8mIGRvY3VtZW50T3JpZ2luID0gZG9jdW1lbnQtPnNlY3VyaXR5T3JpZ2luKCk7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1RleHRNYW5pcHVsYXRpb25Db250
cm9sbGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvVGV4dE1hbmlwdWxhdGlvbkNvbnRy
b2xsZXIuY3BwCmluZGV4IDNlZmQyMDg0MGI2ZGZjMWIzYWFjNWE5NWI3YWZjM2M3NDM3YzkzZDEu
LmI0ZTE1ZmViMGNhNTM4NjVhMTkyOTYwMDk4NGMxM2RiZjhlYTVlZDAgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2VkaXRpbmcvVGV4dE1hbmlwdWxhdGlvbkNvbnRyb2xsZXIuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvVGV4dE1hbmlwdWxhdGlvbkNvbnRyb2xsZXIuY3BwCkBA
IC02MjAsNyArNjIwLDcgQEAgdm9pZCBUZXh0TWFuaXB1bGF0aW9uQ29udHJvbGxlcjo6c2NoZWR1
bGVPYnNlcnZhdGlvblVwZGF0ZSgpCiAgICAgICAgIGNvbnRyb2xsZXItPm9ic2VydmVQYXJhZ3Jh
cGhzKHN0YXJ0LCBlbmQpOwogCiAgICAgICAgIGlmIChjb250cm9sbGVyLT5tX2l0ZW1zLmlzRW1w
dHkoKSAmJiBjb21tb25BbmNlc3RvcikgewotICAgICAgICAgICAgY29udHJvbGxlci0+bV9tYW5p
cHVsYXRlZE5vZGVzLmFkZChjb21tb25BbmNlc3Rvci5nZXQoKSk7CisgICAgICAgICAgICBjb250
cm9sbGVyLT5tX21hbmlwdWxhdGVkTm9kZXMuYWRkKCpjb21tb25BbmNlc3Rvcik7CiAgICAgICAg
ICAgICByZXR1cm47CiAgICAgICAgIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRt
bC9DYW52YXNCYXNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvQ2FudmFzQmFzZS5jcHAKaW5k
ZXggZDZjODY2MTJkZDBhM2FhNTYyMjkwZTkyZDI1MjE1MzRjMjg3NjQ2Ni4uMDA4Y2NhMjQ1NmEy
NWE0ZjZiZWNjY2NjMTgwMTUwZWFkYzU1ZTcwNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
aHRtbC9DYW52YXNCYXNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0NhbnZhc0Jhc2Uu
Y3BwCkBAIC0xNjQsNyArMTY0LDcgQEAgdm9pZCBDYW52YXNCYXNlOjpub3RpZnlPYnNlcnZlcnND
YW52YXNEZXN0cm95ZWQoKQogCiB2b2lkIENhbnZhc0Jhc2U6OmFkZERpc3BsYXlCdWZmZXJPYnNl
cnZlcihDYW52YXNEaXNwbGF5QnVmZmVyT2JzZXJ2ZXImIG9ic2VydmVyKQogewotICAgIG1fZGlz
cGxheUJ1ZmZlck9ic2VydmVycy5hZGQoJm9ic2VydmVyKTsKKyAgICBtX2Rpc3BsYXlCdWZmZXJP
YnNlcnZlcnMuYWRkKG9ic2VydmVyKTsKIH0KIAogdm9pZCBDYW52YXNCYXNlOjpyZW1vdmVEaXNw
bGF5QnVmZmVyT2JzZXJ2ZXIoQ2FudmFzRGlzcGxheUJ1ZmZlck9ic2VydmVyJiBvYnNlcnZlcikK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlci5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIuY3BwCmluZGV4IDhmODE3N2NlMTRmOTViNjQ2
MDhjNzFmNjgyM2Y3ODhhYmQ1MjkwZTAuLjA1YWYyOGY2NTU1ZmQ5ZWU1ODNiNTNkN2U5MjFhZGJj
NjNjYjViZmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlci5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmNwcApAQCAtMTA1NSw3
ICsxMDU1LDcgQEAgdm9pZCBGcmFtZUxvYWRlcjo6c2V0T3BlbmVyKEZyYW1lKiBvcGVuZXIpCiAg
ICAgICAgIG9wZW5lckZyYW1lTG9hZGVyLm1fb3BlbmVkRnJhbWVzLnJlbW92ZShtX2ZyYW1lKTsK
ICAgICB9CiAgICAgaWYgKG9wZW5lcikgewotICAgICAgICBvcGVuZXItPmxvYWRlcigpLm1fb3Bl
bmVkRnJhbWVzLmFkZCgmbV9mcmFtZSk7CisgICAgICAgIG9wZW5lci0+bG9hZGVyKCkubV9vcGVu
ZWRGcmFtZXMuYWRkKG1fZnJhbWUpOwogICAgICAgICBpZiAoYXV0byogcGFnZSA9IG1fZnJhbWUu
cGFnZSgpKQogICAgICAgICAgICAgcGFnZS0+c2V0T3BlbmVkQnlET01XaXRoT3BlbmVyKHRydWUp
OwogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvVXNlckNvbnRlbnRQcm92
aWRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1VzZXJDb250ZW50UHJvdmlkZXIuY3BwCmlu
ZGV4IDFhNmFlY2U0YWUyZDU2Y2UxNDc1NGMwZWY1NzAzNzE3NzRlNjYwNzQuLjIxMGJlNmM1MjJh
NzU4ODEwM2UzNjk1MWRhODFhMDM3NGIzMWJkNWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvVXNlckNvbnRlbnRQcm92aWRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9V
c2VyQ29udGVudFByb3ZpZGVyLmNwcApAQCAtNjcsNyArNjcsNyBAQCB2b2lkIFVzZXJDb250ZW50
UHJvdmlkZXI6OnJlZ2lzdGVyRm9yVXNlck1lc3NhZ2VIYW5kbGVySW52YWxpZGF0aW9uKFVzZXJD
b250ZW50UAogewogICAgIEFTU0VSVCghbV91c2VyTWVzc2FnZUhhbmRsZXJJbnZhbGlkYXRpb25D
bGllbnRzLmNvbnRhaW5zKGludmFsaWRhdGlvbkNsaWVudCkpOwogCi0gICAgbV91c2VyTWVzc2Fn
ZUhhbmRsZXJJbnZhbGlkYXRpb25DbGllbnRzLmFkZCgmaW52YWxpZGF0aW9uQ2xpZW50KTsKKyAg
ICBtX3VzZXJNZXNzYWdlSGFuZGxlckludmFsaWRhdGlvbkNsaWVudHMuYWRkKGludmFsaWRhdGlv
bkNsaWVudCk7CiB9CiAKIHZvaWQgVXNlckNvbnRlbnRQcm92aWRlcjo6dW5yZWdpc3RlckZvclVz
ZXJNZXNzYWdlSGFuZGxlckludmFsaWRhdGlvbihVc2VyQ29udGVudFByb3ZpZGVySW52YWxpZGF0
aW9uQ2xpZW50JiBpbnZhbGlkYXRpb25DbGllbnQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L0dQVVByb2Nlc3MvR1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5jcHAgYi9Tb3VyY2UvV2ViS2l0
L0dQVVByb2Nlc3MvR1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5jcHAKaW5kZXggNjY5OTkwYmVj
OTc4NjY4YmVmYzNjYmM5MzcwYTgyNWJjZDcxNTJlMC4uZTQ0NWU1OWRjN2JiNTZkNzUxNDdhOTZm
NmFhYTQzYmE3NTNmMDYwYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL0dQ
VUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vz
cy9HUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmNwcApAQCAtMjMwLDcgKzIzMCw3IEBAIEdQVUNv
bm5lY3Rpb25Ub1dlYlByb2Nlc3M6OkdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MoR1BVUHJvY2Vz
cyYgZ3B1UHJvY2VzcywgV2ViCiAgICAgUkVMRUFTRV9BU1NFUlQoUnVuTG9vcDo6aXNNYWluKCkp
OwogCiAjaWYgRU5BQkxFKFJPVVRJTkdfQVJCSVRSQVRJT04pICYmIEhBVkUoQVZBVURJT19ST1VU
SU5HX0FSQklURVIpCi0gICAgZ3B1UHJvY2Vzcy5hdWRpb1Nlc3Npb25NYW5hZ2VyKCkuc2Vzc2lv
bigpLnNldFJvdXRpbmdBcmJpdHJhdGlvbkNsaWVudChtYWtlV2Vha1B0cihtX3JvdXRpbmdBcmJp
dHJhdG9yLmdldCgpKSk7CisgICAgZ3B1UHJvY2Vzcy5hdWRpb1Nlc3Npb25NYW5hZ2VyKCkuc2Vz
c2lvbigpLnNldFJvdXRpbmdBcmJpdHJhdGlvbkNsaWVudChXZWFrUHRyIHsgbV9yb3V0aW5nQXJi
aXRyYXRvci5nZXQoKSB9KTsKICNlbmRpZgogCiAgICAgaWYgKCFwYXJhbWV0ZXJzLm92ZXJyaWRl
TGFuZ3VhZ2VzLmlzRW1wdHkoKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vz
cy9ncmFwaGljcy9SZW1vdGVHcmFwaGljc0NvbnRleHRHTC5jcHAgYi9Tb3VyY2UvV2ViS2l0L0dQ
VVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlR3JhcGhpY3NDb250ZXh0R0wuY3BwCmluZGV4IDJiN2I4
MjdkNzIzOWE0NTBiZDBjNDlhMDAyNzJlZTRkZjZhMmRlZGUuLmFjOTU5NTIwYTJlM2RmYWQ5ZmNk
ODJiMzkyZjEwYTlhNWE2MDQ4NDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vz
cy9ncmFwaGljcy9SZW1vdGVHcmFwaGljc0NvbnRleHRHTC5jcHAKKysrIGIvU291cmNlL1dlYktp
dC9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZUdyYXBoaWNzQ29udGV4dEdMLmNwcApAQCAtNjQs
NyArNjQsNyBAQCBSZWY8UmVtb3RlR3JhcGhpY3NDb250ZXh0R0w+IFJlbW90ZUdyYXBoaWNzQ29u
dGV4dEdMOjpjcmVhdGUoR1BVQ29ubmVjdGlvblRvV2ViUAogI2VuZGlmCiAKIFJlbW90ZUdyYXBo
aWNzQ29udGV4dEdMOjpSZW1vdGVHcmFwaGljc0NvbnRleHRHTChHUFVDb25uZWN0aW9uVG9XZWJQ
cm9jZXNzJiBncHVDb25uZWN0aW9uVG9XZWJQcm9jZXNzLCBHcmFwaGljc0NvbnRleHRHTElkZW50
aWZpZXIgZ3JhcGhpY3NDb250ZXh0R0xJZGVudGlmaWVyLCBSZW1vdGVSZW5kZXJpbmdCYWNrZW5k
JiByZW5kZXJpbmdCYWNrZW5kLCBJUEM6OlN0cmVhbUNvbm5lY3Rpb25CdWZmZXImJiBzdHJlYW0p
Ci0gICAgOiBtX2dwdUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MobWFrZVdlYWtQdHIoZ3B1Q29ubmVj
dGlvblRvV2ViUHJvY2VzcykpCisgICAgOiBtX2dwdUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MoZ3B1
Q29ubmVjdGlvblRvV2ViUHJvY2VzcykKICAgICAsIG1fc3RyZWFtQ29ubmVjdGlvbihJUEM6OlN0
cmVhbVNlcnZlckNvbm5lY3Rpb246OmNyZWF0ZShncHVDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmNv
bm5lY3Rpb24oKSwgV1RGTW92ZShzdHJlYW0pLCByZW1vdGVHcmFwaGljc0NvbnRleHRHTFN0cmVh
bVdvcmtRdWV1ZSgpKSkKICAgICAsIG1fZ3JhcGhpY3NDb250ZXh0R0xJZGVudGlmaWVyKGdyYXBo
aWNzQ29udGV4dEdMSWRlbnRpZmllcikKICAgICAsIG1fcmVuZGVyaW5nQmFja2VuZChyZW5kZXJp
bmdCYWNrZW5kKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1Jl
bW90ZUF1ZGlvSGFyZHdhcmVMaXN0ZW5lclByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvR1BVUHJv
Y2Vzcy9tZWRpYS9SZW1vdGVBdWRpb0hhcmR3YXJlTGlzdGVuZXJQcm94eS5jcHAKaW5kZXggZDEx
ZDU3YWFhNmE5NDU0NjA5ODQ4MzJiMmJkYzFkZGFhYjAwYjBiMy4uM2EzYzFmOTFkMmY5N2JiM2Rm
MDMxMTc4ZjVlYzk5MWRiMGNkNjUwOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9HUFVQcm9j
ZXNzL21lZGlhL1JlbW90ZUF1ZGlvSGFyZHdhcmVMaXN0ZW5lclByb3h5LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlQXVkaW9IYXJkd2FyZUxpc3RlbmVyUHJv
eHkuY3BwCkBAIC0zNCw3ICszNCw3IEBACiBuYW1lc3BhY2UgV2ViS2l0IHsKIAogUmVtb3RlQXVk
aW9IYXJkd2FyZUxpc3RlbmVyUHJveHk6OlJlbW90ZUF1ZGlvSGFyZHdhcmVMaXN0ZW5lclByb3h5
KEdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MmIGdwdUNvbm5lY3Rpb24sIFJlbW90ZUF1ZGlvSGFy
ZHdhcmVMaXN0ZW5lcklkZW50aWZpZXImJiBpZGVudGlmaWVyKQotICAgIDogbV9ncHVDb25uZWN0
aW9uKG1ha2VXZWFrUHRyKGdwdUNvbm5lY3Rpb24pKQorICAgIDogbV9ncHVDb25uZWN0aW9uKGdw
dUNvbm5lY3Rpb24pCiAgICAgLCBtX2lkZW50aWZpZXIoV1RGTW92ZShpZGVudGlmaWVyKSkKICAg
ICAsIG1fbGlzdGVuZXIoV2ViQ29yZTo6QXVkaW9IYXJkd2FyZUxpc3RlbmVyOjpjcmVhdGUoKnRo
aXMpKQogewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90
ZUF1ZGlvVHJhY2tQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVt
b3RlQXVkaW9UcmFja1Byb3h5LmNwcAppbmRleCA2ZGNkZGRiNmYyMjY2ZGUyZTE4ZTQxNmU2Mjhi
MGFkNzMzOTMzY2Q5Li42NTIzOTZmN2E2NDIyYmFiZmE1MjQxZDIzODJhMjRkOWE4NDhmYTU2IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlQXVkaW9UcmFj
a1Byb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlQXVk
aW9UcmFja1Byb3h5LmNwcApAQCAtNDAsNyArNDAsNyBAQCBuYW1lc3BhY2UgV2ViS2l0IHsKIHVz
aW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogCiBSZW1vdGVBdWRpb1RyYWNrUHJveHk6OlJlbW90ZUF1
ZGlvVHJhY2tQcm94eShHUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzJiBjb25uZWN0aW9uVG9XZWJQ
cm9jZXNzLCBUcmFja1ByaXZhdGVSZW1vdGVJZGVudGlmaWVyIGlkZW50aWZpZXIsIEF1ZGlvVHJh
Y2tQcml2YXRlJiB0cmFja1ByaXZhdGUsIE1lZGlhUGxheWVySWRlbnRpZmllciBtZWRpYVBsYXll
cklkZW50aWZpZXIpCi0gICAgOiBtX2Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MobWFrZVdlYWtQdHIo
Y29ubmVjdGlvblRvV2ViUHJvY2VzcykpCisgICAgOiBtX2Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3Mo
Y29ubmVjdGlvblRvV2ViUHJvY2VzcykKICAgICAsIG1faWRlbnRpZmllcihpZGVudGlmaWVyKQog
ICAgICwgbV90cmFja1ByaXZhdGUodHJhY2tQcml2YXRlKQogICAgICwgbV9tZWRpYVBsYXllcklk
ZW50aWZpZXIobWVkaWFQbGF5ZXJJZGVudGlmaWVyKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZUNETUZhY3RvcnlQcm94eS5jcHAgYi9Tb3VyY2UvV2Vi
S2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlQ0RNRmFjdG9yeVByb3h5LmNwcAppbmRleCAwNmVj
NTI3MDZmY2E3ZjcxNTM5YTk3MDU5NDNmOGM3ZDViNTIxZDMxLi40ODk4M2MwMTg4OWE2ZWMzYmQ0
MGVhNTU4YzlkYzI5N2Y1MzE1YzFiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nl
c3MvbWVkaWEvUmVtb3RlQ0RNRmFjdG9yeVByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L0dQ
VVByb2Nlc3MvbWVkaWEvUmVtb3RlQ0RNRmFjdG9yeVByb3h5LmNwcApAQCAtNDEsNyArNDEsNyBA
QCBuYW1lc3BhY2UgV2ViS2l0IHsKIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogCiBSZW1vdGVD
RE1GYWN0b3J5UHJveHk6OlJlbW90ZUNETUZhY3RvcnlQcm94eShHUFVDb25uZWN0aW9uVG9XZWJQ
cm9jZXNzJiBjb25uZWN0aW9uKQotICAgIDogbV9ncHVDb25uZWN0aW9uVG9XZWJQcm9jZXNzKG1h
a2VXZWFrUHRyKGNvbm5lY3Rpb24pKQorICAgIDogbV9ncHVDb25uZWN0aW9uVG9XZWJQcm9jZXNz
KGNvbm5lY3Rpb24pCiB7CiB9CiAKQEAgLTcwLDcgKzcwLDcgQEAgdm9pZCBSZW1vdGVDRE1GYWN0
b3J5UHJveHk6OmNyZWF0ZUNETShjb25zdCBTdHJpbmcmIGtleVN5c3RlbSwgQ29tcGxldGlvbkhh
bmRsZXIKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAotICAgIGF1dG8gcHJveHkgPSBSZW1vdGVD
RE1Qcm94eTo6Y3JlYXRlKG1ha2VXZWFrUHRyKHRoaXMpLCBXVEZNb3ZlKHByaXZhdGVDRE0pKTsK
KyAgICBhdXRvIHByb3h5ID0gUmVtb3RlQ0RNUHJveHk6OmNyZWF0ZSgqdGhpcywgV1RGTW92ZShw
cml2YXRlQ0RNKSk7CiAgICAgYXV0byBpZGVudGlmaWVyID0gUmVtb3RlQ0RNSWRlbnRpZmllcjo6
Z2VuZXJhdGUoKTsKICAgICBSZW1vdGVDRE1Db25maWd1cmF0aW9uIGNvbmZpZ3VyYXRpb24gPSBw
cm94eS0+Y29uZmlndXJhdGlvbigpOwogICAgIGFkZFByb3h5KGlkZW50aWZpZXIsIFdURk1vdmUo
cHJveHkpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1v
dGVDRE1JbnN0YW5jZVByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9S
ZW1vdGVDRE1JbnN0YW5jZVByb3h5LmNwcAppbmRleCBiZDgzNWM1MWE4Y2FlZGQ2OTVlMDBjMjVi
MGQyMzllNzBmZDc5ZDFiLi4xYjliNDgyYjkwYjM3NWM5YzYxNTZhMTI2MjE1NzkzYzIwYTk0ODlm
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlQ0RNSW5z
dGFuY2VQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90
ZUNETUluc3RhbmNlUHJveHkuY3BwCkBAIC01Myw3ICs1Myw3IEBAIFJlbW90ZUNETUluc3RhbmNl
UHJveHk6OlJlbW90ZUNETUluc3RhbmNlUHJveHkoV2Vha1B0cjxSZW1vdGVDRE1Qcm94eT4mJiBj
ZG0sIFJlCiAgICAgLCBtX2NvbmZpZ3VyYXRpb24oV1RGTW92ZShjb25maWd1cmF0aW9uKSkKICAg
ICAsIG1faWRlbnRpZmllcihpZGVudGlmaWVyKQogewotICAgIG1faW5zdGFuY2UtPnNldENsaWVu
dChtYWtlV2Vha1B0cjxDRE1JbnN0YW5jZUNsaWVudD4odGhpcykpOworICAgIG1faW5zdGFuY2Ut
PnNldENsaWVudChzdGF0aWNfY2FzdDxDRE1JbnN0YW5jZUNsaWVudCY+KCp0aGlzKSk7CiB9CiAK
IFJlbW90ZUNETUluc3RhbmNlUHJveHk6On5SZW1vdGVDRE1JbnN0YW5jZVByb3h5KCkKQEAgLTEw
NSw3ICsxMDUsNyBAQCB2b2lkIFJlbW90ZUNETUluc3RhbmNlUHJveHk6OmNyZWF0ZVNlc3Npb24o
Q29tcGxldGlvbkhhbmRsZXI8dm9pZChjb25zdCBSZW1vdGVDRAogICAgICAgICByZXR1cm47CiAg
ICAgfQogICAgIGF1dG8gaWRlbnRpZmllciA9IFJlbW90ZUNETUluc3RhbmNlU2Vzc2lvbklkZW50
aWZpZXI6OmdlbmVyYXRlKCk7Ci0gICAgYXV0byBzZXNzaW9uID0gUmVtb3RlQ0RNSW5zdGFuY2VT
ZXNzaW9uUHJveHk6OmNyZWF0ZShtYWtlV2Vha1B0cihtX2NkbS5nZXQoKSksIHByaXZTZXNzaW9u
LnJlbGVhc2VOb25OdWxsKCksIGlkZW50aWZpZXIpOworICAgIGF1dG8gc2Vzc2lvbiA9IFJlbW90
ZUNETUluc3RhbmNlU2Vzc2lvblByb3h5OjpjcmVhdGUobV9jZG0uZ2V0KCksIHByaXZTZXNzaW9u
LnJlbGVhc2VOb25OdWxsKCksIGlkZW50aWZpZXIpOwogICAgIG1fY2RtLT5mYWN0b3J5KCktPmFk
ZFNlc3Npb24oaWRlbnRpZmllciwgV1RGTW92ZShzZXNzaW9uKSk7CiAgICAgY29tcGxldGlvbihp
ZGVudGlmaWVyKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRp
YS9SZW1vdGVDRE1JbnN0YW5jZVNlc3Npb25Qcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L0dQVVBy
b2Nlc3MvbWVkaWEvUmVtb3RlQ0RNSW5zdGFuY2VTZXNzaW9uUHJveHkuY3BwCmluZGV4IDgwNjE0
NjE3NzBmM2VlODc0M2FhNjIxYjdhOGQwMzM1ZjExMTYxYzguLmU1NzY2YzIzMzRjZmQzODkzMTBj
ZDRiMjE3MjNjYWJhMzc0MmZjN2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vz
cy9tZWRpYS9SZW1vdGVDRE1JbnN0YW5jZVNlc3Npb25Qcm94eS5jcHAKKysrIGIvU291cmNlL1dl
YktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZUNETUluc3RhbmNlU2Vzc2lvblByb3h5LmNwcApA
QCAtNDEsNyArNDEsNyBAQCB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIHN0ZDo6dW5pcXVlX3B0
cjxSZW1vdGVDRE1JbnN0YW5jZVNlc3Npb25Qcm94eT4gUmVtb3RlQ0RNSW5zdGFuY2VTZXNzaW9u
UHJveHk6OmNyZWF0ZShXZWFrUHRyPFJlbW90ZUNETVByb3h5PiYmIHByb3h5LCBSZWY8V2ViQ29y
ZTo6Q0RNSW5zdGFuY2VTZXNzaW9uPiYmIHNlc3Npb24sIFJlbW90ZUNETUluc3RhbmNlU2Vzc2lv
bklkZW50aWZpZXIgaWRlbnRpZmllcikKIHsKICAgICBhdXRvIHNlc3Npb25Qcm94eSA9IHN0ZDo6
dW5pcXVlX3B0cjxSZW1vdGVDRE1JbnN0YW5jZVNlc3Npb25Qcm94eT4obmV3IFJlbW90ZUNETUlu
c3RhbmNlU2Vzc2lvblByb3h5KFdURk1vdmUocHJveHkpLCBXVEZNb3ZlKHNlc3Npb24pLCBpZGVu
dGlmaWVyKSk7Ci0gICAgYXV0byBjbGllbnQgPSBtYWtlV2Vha1B0cjxXZWJDb3JlOjpDRE1JbnN0
YW5jZVNlc3Npb25DbGllbnQ+KHNlc3Npb25Qcm94eS5nZXQoKSk7CisgICAgV2Vha1B0cjxXZWJD
b3JlOjpDRE1JbnN0YW5jZVNlc3Npb25DbGllbnQ+IGNsaWVudCA9IHNlc3Npb25Qcm94eS5nZXQo
KTsKICAgICBzZXNzaW9uUHJveHktPm1fc2Vzc2lvbi0+c2V0Q2xpZW50KFdURk1vdmUoY2xpZW50
KSk7CiAgICAgcmV0dXJuIHNlc3Npb25Qcm94eTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVDRE1Qcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L0dQ
VVByb2Nlc3MvbWVkaWEvUmVtb3RlQ0RNUHJveHkuY3BwCmluZGV4IDVlNTRlODIzZDdlNzdjYmI2
MDdkNTYxMjZhMjkyNmUyNDZhZmMzMmYuLjlhYjM1NzVmNGMzYjU1OTU1NWI5Yjg3YjIzMzcxYjFi
MWE2NmRjMTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1v
dGVDRE1Qcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90
ZUNETVByb3h5LmNwcApAQCAtOTEsNyArOTEsNyBAQCB2b2lkIFJlbW90ZUNETVByb3h5OjpjcmVh
dGVJbnN0YW5jZShDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFJlbW90ZUNETUluc3RhbmNlSWRlbgog
ICAgICAgICByZXR1cm47CiAgICAgfQogICAgIGF1dG8gaWRlbnRpZmllciA9IFJlbW90ZUNETUlu
c3RhbmNlSWRlbnRpZmllcjo6Z2VuZXJhdGUoKTsKLSAgICBhdXRvIGluc3RhbmNlID0gUmVtb3Rl
Q0RNSW5zdGFuY2VQcm94eTo6Y3JlYXRlKG1ha2VXZWFrUHRyKHRoaXMpLCBwcml2YXRlSW5zdGFu
Y2UucmVsZWFzZU5vbk51bGwoKSwgaWRlbnRpZmllcik7CisgICAgYXV0byBpbnN0YW5jZSA9IFJl
bW90ZUNETUluc3RhbmNlUHJveHk6OmNyZWF0ZSgqdGhpcywgcHJpdmF0ZUluc3RhbmNlLnJlbGVh
c2VOb25OdWxsKCksIGlkZW50aWZpZXIpOwogICAgIFJlbW90ZUNETUluc3RhbmNlQ29uZmlndXJh
dGlvbiBjb25maWd1cmF0aW9uID0gaW5zdGFuY2UtPmNvbmZpZ3VyYXRpb24oKTsKICAgICBtX2Zh
Y3RvcnktPmFkZEluc3RhbmNlKGlkZW50aWZpZXIsIFdURk1vdmUoaW5zdGFuY2UpKTsKICAgICBj
b21wbGV0aW9uKGlkZW50aWZpZXIsIFdURk1vdmUoY29uZmlndXJhdGlvbikpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZUltYWdlRGVjb2RlckFWRlBy
b3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVJbWFnZURlY29k
ZXJBVkZQcm94eS5jcHAKaW5kZXggOTY4M2VkZTA5Zjk2ZmNkOWQxOTNmMzQyZmI1ZjA4Y2JhYWIy
OWY2MC4uZmE4Mzg3NDk0MzIzNjVhNDA4OWFlYTVhZWNiY2VhNjYwZGI2NGJhMCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZUltYWdlRGVjb2RlckFWRlBy
b3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlSW1hZ2VE
ZWNvZGVyQVZGUHJveHkuY3BwCkBAIC00MSw3ICs0MSw3IEBAIG5hbWVzcGFjZSBXZWJLaXQgewog
dXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAKIFJlbW90ZUltYWdlRGVjb2RlckFWRlByb3h5OjpS
ZW1vdGVJbWFnZURlY29kZXJBVkZQcm94eShHUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzJiBjb25u
ZWN0aW9uVG9XZWJQcm9jZXNzKQotICAgIDogbV9jb25uZWN0aW9uVG9XZWJQcm9jZXNzKG1ha2VX
ZWFrUHRyKGNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MpKQorICAgIDogbV9jb25uZWN0aW9uVG9XZWJQ
cm9jZXNzKGNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MpCiB7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVMZWdhY3lDRE1GYWN0b3J5UHJveHkuY3Bw
IGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZUxlZ2FjeUNETUZhY3RvcnlQ
cm94eS5jcHAKaW5kZXggNmFhNGQxZTcyYThjZTI5ZWE3ZWZhMjhkZGI5YjM3NGYxOGYzZDVmZS4u
N2NlZGI5NzEyZmM2NmI1YjhkYjUyYmFmMDhjYjBjMmE2NGU5NGVlNyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZUxlZ2FjeUNETUZhY3RvcnlQcm94eS5j
cHAKKysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZUxlZ2FjeUNETUZh
Y3RvcnlQcm94eS5jcHAKQEAgLTQyLDcgKzQyLDcgQEAgbmFtZXNwYWNlIFdlYktpdCB7CiB1c2lu
ZyBuYW1lc3BhY2UgV2ViQ29yZTsKIAogUmVtb3RlTGVnYWN5Q0RNRmFjdG9yeVByb3h5OjpSZW1v
dGVMZWdhY3lDRE1GYWN0b3J5UHJveHkoR1BVQ29ubmVjdGlvblRvV2ViUHJvY2VzcyYgY29ubmVj
dGlvbikKLSAgICA6IG1fZ3B1Q29ubmVjdGlvblRvV2ViUHJvY2VzcyhtYWtlV2Vha1B0cihjb25u
ZWN0aW9uKSkKKyAgICA6IG1fZ3B1Q29ubmVjdGlvblRvV2ViUHJvY2Vzcyhjb25uZWN0aW9uKQog
ewogfQogCkBAIC03MCw3ICs3MCw3IEBAIHZvaWQgUmVtb3RlTGVnYWN5Q0RNRmFjdG9yeVByb3h5
OjpjcmVhdGVDRE0oY29uc3QgU3RyaW5nJiBrZXlTeXN0ZW0sIHN0ZDo6b3B0aW9uCiAgICAgaWYg
KG9wdGlvbmFsUGxheWVySWQpCiAgICAgICAgIHBsYXllcklkID0gV1RGTW92ZShvcHRpb25hbFBs
YXllcklkLnZhbHVlKCkpOwogCi0gICAgYXV0byBwcm94eSA9IFJlbW90ZUxlZ2FjeUNETVByb3h5
OjpjcmVhdGUobWFrZVdlYWtQdHIodGhpcyksIFdURk1vdmUocGxheWVySWQpLCBXVEZNb3ZlKHBy
aXZhdGVDRE0pKTsKKyAgICBhdXRvIHByb3h5ID0gUmVtb3RlTGVnYWN5Q0RNUHJveHk6OmNyZWF0
ZSgqdGhpcywgV1RGTW92ZShwbGF5ZXJJZCksIFdURk1vdmUocHJpdmF0ZUNETSkpOwogICAgIGF1
dG8gaWRlbnRpZmllciA9IFJlbW90ZUxlZ2FjeUNETUlkZW50aWZpZXI6OmdlbmVyYXRlKCk7CiAg
ICAgYWRkUHJveHkoaWRlbnRpZmllciwgV1RGTW92ZShwcm94eSkpOwogICAgIGNvbXBsZXRpb24o
V1RGTW92ZShpZGVudGlmaWVyKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nl
c3MvbWVkaWEvUmVtb3RlTGVnYWN5Q0RNUHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9HUFVQcm9j
ZXNzL21lZGlhL1JlbW90ZUxlZ2FjeUNETVByb3h5LmNwcAppbmRleCBiZjUxNzU5MmEwMWUwZWVh
YzdjMmM4Yzk1ODk1YmMyZmE4ZTM3NjkzLi5mZmY2ZWI1MjllNTY5ZmI4ZjRiZTEzMGQ3ZDhjZTMw
NzY1MzliNzgwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVt
b3RlTGVnYWN5Q0RNUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRp
YS9SZW1vdGVMZWdhY3lDRE1Qcm94eS5jcHAKQEAgLTY5LDcgKzY5LDcgQEAgdm9pZCBSZW1vdGVM
ZWdhY3lDRE1Qcm94eTo6Y3JlYXRlU2Vzc2lvbihjb25zdCBTdHJpbmcmIGtleVN5c3RlbSwgQ3Jl
YXRlU2Vzc2lvbkMKICAgICB9CiAKICAgICBhdXRvIGlkZW50aWZpZXIgPSBSZW1vdGVMZWdhY3lD
RE1TZXNzaW9uSWRlbnRpZmllcjo6Z2VuZXJhdGUoKTsKLSAgICBhdXRvIHNlc3Npb24gPSBSZW1v
dGVMZWdhY3lDRE1TZXNzaW9uUHJveHk6OmNyZWF0ZShtYWtlV2Vha1B0cihtX2ZhY3RvcnkuZ2V0
KCkpLCBpZGVudGlmaWVyLCAqbV9jZG0pOworICAgIGF1dG8gc2Vzc2lvbiA9IFJlbW90ZUxlZ2Fj
eUNETVNlc3Npb25Qcm94eTo6Y3JlYXRlKG1fZmFjdG9yeS5nZXQoKSwgaWRlbnRpZmllciwgKm1f
Y2RtKTsKICAgICBtX2ZhY3RvcnktPmFkZFNlc3Npb24oaWRlbnRpZmllciwgV1RGTW92ZShzZXNz
aW9uKSk7CiAgICAgY2FsbGJhY2soV1RGTW92ZShpZGVudGlmaWVyKSk7CiB9CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2Vy
UHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZU1lZGlhUGxh
eWVyTWFuYWdlclByb3h5LmNwcAppbmRleCAwYTAwZTQ4YmIyMTk2YzJhMjZiZDIyOWYzMjljOWVk
YjhlOGIyMjY1Li43MzEwM2ZhNGFiNmQ2ZjE5NTAzZDUzODVjYTQ1MGM3MmJjN2IzN2RiIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJN
YW5hZ2VyUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1v
dGVNZWRpYVBsYXllck1hbmFnZXJQcm94eS5jcHAKQEAgLTQ5LDcgKzQ5LDcgQEAgbmFtZXNwYWNl
IFdlYktpdCB7CiB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIAogUmVtb3RlTWVkaWFQbGF5ZXJN
YW5hZ2VyUHJveHk6OlJlbW90ZU1lZGlhUGxheWVyTWFuYWdlclByb3h5KEdQVUNvbm5lY3Rpb25U
b1dlYlByb2Nlc3MmIGNvbm5lY3Rpb24pCi0gICAgOiBtX2dwdUNvbm5lY3Rpb25Ub1dlYlByb2Nl
c3MobWFrZVdlYWtQdHIoY29ubmVjdGlvbikpCisgICAgOiBtX2dwdUNvbm5lY3Rpb25Ub1dlYlBy
b2Nlc3MoY29ubmVjdGlvbikKIHsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQ
cm9jZXNzL21lZGlhL1JlbW90ZU1lZGlhUGxheWVyUHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9H
UFVQcm9jZXNzL21lZGlhL1JlbW90ZU1lZGlhUGxheWVyUHJveHkuY3BwCmluZGV4IGRlZWUwMjJi
NWY0MWUyYTM2YWU4Mzc5ZDkyMjFiM2VmYzM1ZTAwZjEuLjFhZGI1YTI4ZWQ4MTMxMWU5Y2I2ZTY0
YjFlZTMwZDU3MGI0MjM1NzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9t
ZWRpYS9SZW1vdGVNZWRpYVBsYXllclByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVBy
b2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJQcm94eS5jcHAKQEAgLTc2LDcgKzc2LDcgQEAg
dXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiBSZW1vdGVNZWRpYVBsYXllclByb3h5OjpSZW1vdGVN
ZWRpYVBsYXllclByb3h5KFJlbW90ZU1lZGlhUGxheWVyTWFuYWdlclByb3h5JiBtYW5hZ2VyLCBN
ZWRpYVBsYXllcklkZW50aWZpZXIgaWRlbnRpZmllciwgUmVmPElQQzo6Q29ubmVjdGlvbj4mJiBj
b25uZWN0aW9uLCBNZWRpYVBsYXllckVudW1zOjpNZWRpYUVuZ2luZUlkZW50aWZpZXIgZW5naW5l
SWRlbnRpZmllciwgUmVtb3RlTWVkaWFQbGF5ZXJQcm94eUNvbmZpZ3VyYXRpb24mJiBjb25maWd1
cmF0aW9uKQogICAgIDogbV9pZChpZGVudGlmaWVyKQogICAgICwgbV93ZWJQcm9jZXNzQ29ubmVj
dGlvbihXVEZNb3ZlKGNvbm5lY3Rpb24pKQotICAgICwgbV9tYW5hZ2VyKG1ha2VXZWFrUHRyKG1h
bmFnZXIpKQorICAgICwgbV9tYW5hZ2VyKG1hbmFnZXIpCiAgICAgLCBtX2VuZ2luZUlkZW50aWZp
ZXIoZW5naW5lSWRlbnRpZmllcikKICAgICAsIG1fdXBkYXRlQ2FjaGVkU3RhdGVNZXNzYWdlVGlt
ZXIoUnVuTG9vcDo6bWFpbigpLCB0aGlzLCAmUmVtb3RlTWVkaWFQbGF5ZXJQcm94eTo6dGltZXJG
aXJlZCkKICAgICAsIG1fY29uZmlndXJhdGlvbihjb25maWd1cmF0aW9uKQpAQCAtOTA5LDcgKzkw
OSw3IEBAIHZvaWQgUmVtb3RlTWVkaWFQbGF5ZXJQcm94eTo6c2V0TGVnYWN5Q0RNU2Vzc2lvbihz
dGQ6Om9wdGlvbmFsPFJlbW90ZUxlZ2FjeUNETVNlCiAgICAgaWYgKG1fbGVnYWN5U2Vzc2lvbikg
ewogICAgICAgICBpZiAoYXV0byBjZG1TZXNzaW9uID0gbV9tYW5hZ2VyLT5ncHVDb25uZWN0aW9u
VG9XZWJQcm9jZXNzKCktPmxlZ2FjeUNkbUZhY3RvcnlQcm94eSgpLmdldFNlc3Npb24oKm1fbGVn
YWN5U2Vzc2lvbikpIHsKICAgICAgICAgICAgIG1fcGxheWVyLT5zZXRDRE1TZXNzaW9uKGNkbVNl
c3Npb24tPnNlc3Npb24oKSk7Ci0gICAgICAgICAgICBjZG1TZXNzaW9uLT5zZXRQbGF5ZXIobWFr
ZVdlYWtQdHIodGhpcykpOworICAgICAgICAgICAgY2RtU2Vzc2lvbi0+c2V0UGxheWVyKCp0aGlz
KTsKICAgICAgICAgfQogICAgIH0KIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJv
Y2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVJlc291cmNlLmNwcCBiL1NvdXJjZS9XZWJLaXQvR1BVUHJv
Y2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVJlc291cmNlLmNwcAppbmRleCAxY2RlNzliMTFkOTA3MmQx
MTllMTZhY2VlYzg2ZTQ1ZDBhNDRlOWFlLi45MDIzNTRhOTkzMWZlZDE1NTllNTRlNDFiMWMwMDU5
YWU4NzE4MjM3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVt
b3RlTWVkaWFSZXNvdXJjZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlh
L1JlbW90ZU1lZGlhUmVzb3VyY2UuY3BwCkBAIC00Miw4ICs0Miw4IEBAIFJlZjxSZW1vdGVNZWRp
YVJlc291cmNlPiBSZW1vdGVNZWRpYVJlc291cmNlOjpjcmVhdGUoUmVtb3RlTWVkaWFSZXNvdXJj
ZU1hbmFnZXImCiB9CiAKIFJlbW90ZU1lZGlhUmVzb3VyY2U6OlJlbW90ZU1lZGlhUmVzb3VyY2Uo
UmVtb3RlTWVkaWFSZXNvdXJjZU1hbmFnZXImIHJlbW90ZU1lZGlhUmVzb3VyY2VNYW5hZ2VyLCBS
ZW1vdGVNZWRpYVBsYXllclByb3h5JiByZW1vdGVNZWRpYVBsYXllclByb3h5LCBSZW1vdGVNZWRp
YVJlc291cmNlSWRlbnRpZmllciBpZGVudGlmaWVyKQotICAgIDogbV9yZW1vdGVNZWRpYVJlc291
cmNlTWFuYWdlcihtYWtlV2Vha1B0cihyZW1vdGVNZWRpYVJlc291cmNlTWFuYWdlcikpCi0gICAg
LCBtX3JlbW90ZU1lZGlhUGxheWVyUHJveHkobWFrZVdlYWtQdHIocmVtb3RlTWVkaWFQbGF5ZXJQ
cm94eSkpCisgICAgOiBtX3JlbW90ZU1lZGlhUmVzb3VyY2VNYW5hZ2VyKHJlbW90ZU1lZGlhUmVz
b3VyY2VNYW5hZ2VyKQorICAgICwgbV9yZW1vdGVNZWRpYVBsYXllclByb3h5KHJlbW90ZU1lZGlh
UGxheWVyUHJveHkpCiAgICAgLCBtX2lkKGlkZW50aWZpZXIpCiB7CiB9CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFSZXNvdXJjZUxvYWRlci5j
cHAgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFSZXNvdXJjZUxv
YWRlci5jcHAKaW5kZXggZWU4ZmQyZDNlNWNkMjc2MTFlNDFkZTM4YzY0ZjgyZWUyMTM1ODIwNy4u
Y2M3MGQxYzQxNmJiOWMzYzliNTBiYjc5YjI3NWEyM2JhYjliNDBlZiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZU1lZGlhUmVzb3VyY2VMb2FkZXIuY3Bw
CisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVJlc291cmNl
TG9hZGVyLmNwcApAQCAtMzYsNyArMzYsNyBAQCBuYW1lc3BhY2UgV2ViS2l0IHsKIHVzaW5nIG5h
bWVzcGFjZSBXZWJDb3JlOwogCiBSZW1vdGVNZWRpYVJlc291cmNlTG9hZGVyOjpSZW1vdGVNZWRp
YVJlc291cmNlTG9hZGVyKFJlbW90ZU1lZGlhUGxheWVyUHJveHkmIHJlbW90ZU1lZGlhUGxheWVy
UHJveHkpCi0gICAgOiBtX3JlbW90ZU1lZGlhUGxheWVyUHJveHkobWFrZVdlYWtQdHIocmVtb3Rl
TWVkaWFQbGF5ZXJQcm94eSkpCisgICAgOiBtX3JlbW90ZU1lZGlhUGxheWVyUHJveHkocmVtb3Rl
TWVkaWFQbGF5ZXJQcm94eSkKIHsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQ
cm9jZXNzL21lZGlhL1JlbW90ZU1lZGlhU291cmNlUHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9H
UFVQcm9jZXNzL21lZGlhL1JlbW90ZU1lZGlhU291cmNlUHJveHkuY3BwCmluZGV4IDYzMGViZmNh
YzIwMDFjMDY2Yjk1YjYyMjNkMjY5MjBkYTc5MjZlNzEuLmRkN2E1MWU0OGI0MjZhNjg4NjM2ZTZh
ZmUzMWE2NTQwYTA1NzY4YTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9t
ZWRpYS9SZW1vdGVNZWRpYVNvdXJjZVByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVBy
b2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFTb3VyY2VQcm94eS5jcHAKQEAgLTQyLDEwICs0MiwxMCBA
QCBuYW1lc3BhY2UgV2ViS2l0IHsKIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogCiBSZW1vdGVN
ZWRpYVNvdXJjZVByb3h5OjpSZW1vdGVNZWRpYVNvdXJjZVByb3h5KEdQVUNvbm5lY3Rpb25Ub1dl
YlByb2Nlc3MmIGNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MsIFJlbW90ZU1lZGlhU291cmNlSWRlbnRp
ZmllciBpZGVudGlmaWVyLCBib29sIHdlYk1QYXJzZXJFbmFibGVkLCBSZW1vdGVNZWRpYVBsYXll
clByb3h5JiByZW1vdGVNZWRpYVBsYXllclByb3h5KQotICAgIDogbV9jb25uZWN0aW9uVG9XZWJQ
cm9jZXNzKG1ha2VXZWFrUHRyKGNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MpKQorICAgIDogbV9jb25u
ZWN0aW9uVG9XZWJQcm9jZXNzKGNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MpCiAgICAgLCBtX2lkZW50
aWZpZXIoaWRlbnRpZmllcikKICAgICAsIG1fd2ViTVBhcnNlckVuYWJsZWQod2ViTVBhcnNlckVu
YWJsZWQpCi0gICAgLCBtX3JlbW90ZU1lZGlhUGxheWVyUHJveHkobWFrZVdlYWtQdHIocmVtb3Rl
TWVkaWFQbGF5ZXJQcm94eSkpCisgICAgLCBtX3JlbW90ZU1lZGlhUGxheWVyUHJveHkocmVtb3Rl
TWVkaWFQbGF5ZXJQcm94eSkKIHsKICAgICBtX2Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MtPm1lc3Nh
Z2VSZWNlaXZlck1hcCgpLmFkZE1lc3NhZ2VSZWNlaXZlcihNZXNzYWdlczo6UmVtb3RlTWVkaWFT
b3VyY2VQcm94eTo6bWVzc2FnZVJlY2VpdmVyTmFtZSgpLCBtX2lkZW50aWZpZXIudG9VSW50NjQo
KSwgKnRoaXMpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlh
L1JlbW90ZVJlbW90ZUNvbW1hbmRMaXN0ZW5lclByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvR1BV
UHJvY2Vzcy9tZWRpYS9SZW1vdGVSZW1vdGVDb21tYW5kTGlzdGVuZXJQcm94eS5jcHAKaW5kZXgg
ODNkODdhMGFmMGUwMWFmMzRjOTNkOGE4MWJiYzM0ZTFlMmI3YjczNS4uOWM5NzRhNGUwYThkM2Jm
M2IyMzFiYWU3MDNjOWMyOThlZTRmNzhmMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9HUFVQ
cm9jZXNzL21lZGlhL1JlbW90ZVJlbW90ZUNvbW1hbmRMaXN0ZW5lclByb3h5LmNwcAorKysgYi9T
b3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlUmVtb3RlQ29tbWFuZExpc3RlbmVy
UHJveHkuY3BwCkBAIC0zNyw3ICszNyw3IEBAIG5hbWVzcGFjZSBXZWJLaXQgewogdXNpbmcgbmFt
ZXNwYWNlIFdlYkNvcmU7CiAKIFJlbW90ZVJlbW90ZUNvbW1hbmRMaXN0ZW5lclByb3h5OjpSZW1v
dGVSZW1vdGVDb21tYW5kTGlzdGVuZXJQcm94eShHUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzJiBn
cHVDb25uZWN0aW9uLCBSZW1vdGVSZW1vdGVDb21tYW5kTGlzdGVuZXJJZGVudGlmaWVyJiYgaWRl
bnRpZmllcikKLSAgICA6IG1fZ3B1Q29ubmVjdGlvbihtYWtlV2Vha1B0cihncHVDb25uZWN0aW9u
KSkKKyAgICA6IG1fZ3B1Q29ubmVjdGlvbihncHVDb25uZWN0aW9uKQogICAgICwgbV9pZGVudGlm
aWVyKFdURk1vdmUoaWRlbnRpZmllcikpCiB7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlU291cmNlQnVmZmVyUHJveHkuY3BwIGIvU291cmNlL1dl
YktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZVNvdXJjZUJ1ZmZlclByb3h5LmNwcAppbmRleCBk
N2RkZTBhOGVjY2ZhOThhOTA4ZDllNWUyZmFmZjBkN2RlNmM2OWRiLi4yNzkxNjVkZTY2YWFmZTAy
NDY4MWUxNjFhMDM1YzRhMTA5NTRlNmUxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0dQVVBy
b2Nlc3MvbWVkaWEvUmVtb3RlU291cmNlQnVmZmVyUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJL
aXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVTb3VyY2VCdWZmZXJQcm94eS5jcHAKQEAgLTUwLDEw
ICs1MCwxMCBAQCBSZWY8UmVtb3RlU291cmNlQnVmZmVyUHJveHk+IFJlbW90ZVNvdXJjZUJ1ZmZl
clByb3h5OjpjcmVhdGUoR1BVQ29ubmVjdGlvblRvV2ViUAogfQogCiBSZW1vdGVTb3VyY2VCdWZm
ZXJQcm94eTo6UmVtb3RlU291cmNlQnVmZmVyUHJveHkoR1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vz
cyYgY29ubmVjdGlvblRvV2ViUHJvY2VzcywgUmVtb3RlU291cmNlQnVmZmVySWRlbnRpZmllciBp
ZGVudGlmaWVyLCBSZWY8U291cmNlQnVmZmVyUHJpdmF0ZT4mJiBzb3VyY2VCdWZmZXJQcml2YXRl
LCBSZW1vdGVNZWRpYVBsYXllclByb3h5JiByZW1vdGVNZWRpYVBsYXllclByb3h5KQotICAgIDog
bV9jb25uZWN0aW9uVG9XZWJQcm9jZXNzKG1ha2VXZWFrUHRyKGNvbm5lY3Rpb25Ub1dlYlByb2Nl
c3MpKQorICAgIDogbV9jb25uZWN0aW9uVG9XZWJQcm9jZXNzKGNvbm5lY3Rpb25Ub1dlYlByb2Nl
c3MpCiAgICAgLCBtX2lkZW50aWZpZXIoaWRlbnRpZmllcikKICAgICAsIG1fc291cmNlQnVmZmVy
UHJpdmF0ZShXVEZNb3ZlKHNvdXJjZUJ1ZmZlclByaXZhdGUpKQotICAgICwgbV9yZW1vdGVNZWRp
YVBsYXllclByb3h5KG1ha2VXZWFrUHRyKHJlbW90ZU1lZGlhUGxheWVyUHJveHkpKQorICAgICwg
bV9yZW1vdGVNZWRpYVBsYXllclByb3h5KHJlbW90ZU1lZGlhUGxheWVyUHJveHkpCiB7CiAgICAg
bV9jb25uZWN0aW9uVG9XZWJQcm9jZXNzLT5tZXNzYWdlUmVjZWl2ZXJNYXAoKS5hZGRNZXNzYWdl
UmVjZWl2ZXIoTWVzc2FnZXM6OlJlbW90ZVNvdXJjZUJ1ZmZlclByb3h5OjptZXNzYWdlUmVjZWl2
ZXJOYW1lKCksIG1faWRlbnRpZmllci50b1VJbnQ2NCgpLCAqdGhpcyk7CiAgICAgbV9zb3VyY2VC
dWZmZXJQcml2YXRlLT5zZXRDbGllbnQodGhpcyk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlVGV4dFRyYWNrUHJveHkuY3BwIGIvU291cmNlL1dlYktp
dC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZVRleHRUcmFja1Byb3h5LmNwcAppbmRleCA5OGQ2NjM1
ZTlhNTA3MjRkZjllOWM4N2E4YjBiNTQ2NDgzM2I5NzdjLi5hYzIxMDc5NGNkNGUzMDEwMzI1YzZj
NmIzY2NmYTg2ZmI0ZTg5NTE4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3Mv
bWVkaWEvUmVtb3RlVGV4dFRyYWNrUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJv
Y2Vzcy9tZWRpYS9SZW1vdGVUZXh0VHJhY2tQcm94eS5jcHAKQEAgLTQ0LDcgKzQ0LDcgQEAgbmFt
ZXNwYWNlIFdlYktpdCB7CiB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIAogUmVtb3RlVGV4dFRy
YWNrUHJveHk6OlJlbW90ZVRleHRUcmFja1Byb3h5KEdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3Mm
IGNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MsIFRyYWNrUHJpdmF0ZVJlbW90ZUlkZW50aWZpZXIgaWRl
bnRpZmllciwgSW5iYW5kVGV4dFRyYWNrUHJpdmF0ZSYgdHJhY2tQcml2YXRlLCBNZWRpYVBsYXll
cklkZW50aWZpZXIgbWVkaWFQbGF5ZXJJZGVudGlmaWVyKQotICAgIDogbV9jb25uZWN0aW9uVG9X
ZWJQcm9jZXNzKG1ha2VXZWFrUHRyKGNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MpKQorICAgIDogbV9j
b25uZWN0aW9uVG9XZWJQcm9jZXNzKGNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MpCiAgICAgLCBtX2lk
ZW50aWZpZXIoaWRlbnRpZmllcikKICAgICAsIG1fdHJhY2tQcml2YXRlKHRyYWNrUHJpdmF0ZSkK
ICAgICAsIG1fbWVkaWFQbGF5ZXJJZGVudGlmaWVyKG1lZGlhUGxheWVySWRlbnRpZmllcikKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVWaWRlb1RyYWNr
UHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZVZpZGVvVHJh
Y2tQcm94eS5jcHAKaW5kZXggNDljNDdhMzU1MTM4YjI1YTU5YjgzMTI3YjVlNjljNmNlYjI5Nzk0
Mi4uZmYzN2M0Zjk5YzNjMTk2YTdlNTZlOWZkYzc4Njc1MWZiYzc1YWI0OSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZVZpZGVvVHJhY2tQcm94eS5jcHAK
KysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZVZpZGVvVHJhY2tQcm94
eS5jcHAKQEAgLTQwLDcgKzQwLDcgQEAgbmFtZXNwYWNlIFdlYktpdCB7CiB1c2luZyBuYW1lc3Bh
Y2UgV2ViQ29yZTsKIAogUmVtb3RlVmlkZW9UcmFja1Byb3h5OjpSZW1vdGVWaWRlb1RyYWNrUHJv
eHkoR1BVQ29ubmVjdGlvblRvV2ViUHJvY2VzcyYgY29ubmVjdGlvblRvV2ViUHJvY2VzcywgVHJh
Y2tQcml2YXRlUmVtb3RlSWRlbnRpZmllciBpZGVudGlmaWVyLCBWaWRlb1RyYWNrUHJpdmF0ZSYg
dHJhY2tQcml2YXRlLCBNZWRpYVBsYXllcklkZW50aWZpZXIgbWVkaWFQbGF5ZXJJZGVudGlmaWVy
KQotICAgIDogbV9jb25uZWN0aW9uVG9XZWJQcm9jZXNzKG1ha2VXZWFrUHRyKGNvbm5lY3Rpb25U
b1dlYlByb2Nlc3MpKQorICAgIDogbV9jb25uZWN0aW9uVG9XZWJQcm9jZXNzKGNvbm5lY3Rpb25U
b1dlYlByb2Nlc3MpCiAgICAgLCBtX2lkZW50aWZpZXIoaWRlbnRpZmllcikKICAgICAsIG1fdHJh
Y2tQcml2YXRlKHRyYWNrUHJpdmF0ZSkKICAgICAsIG1fbWVkaWFQbGF5ZXJJZGVudGlmaWVyKG1l
ZGlhUGxheWVySWRlbnRpZmllcikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1By
b2Nlc3MvQ2xhc3NpZmllci9XZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmUuY3BwIGIvU291
cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9DbGFzc2lmaWVyL1dlYlJlc291cmNlTG9hZFN0YXRp
c3RpY3NTdG9yZS5jcHAKaW5kZXggYWVhNDA5MWE1YmIxNGI3MWE1OTE1MmZhYTRmNDc4ZjVjYmQ0
YzUxOS4uNTM5OTU0NTVmNzVmM2M1YmY0YmY5NjIzOGY2M2YzZDcyMzc1ZjQxZiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9DbGFzc2lmaWVyL1dlYlJlc291cmNlTG9h
ZFN0YXRpc3RpY3NTdG9yZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9D
bGFzc2lmaWVyL1dlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZS5jcHAKQEAgLTE1MCw3ICsx
NTAsNyBAQCBzdGF0aWMgUmVmPFN1c3BlbmRhYmxlV29ya1F1ZXVlPiBzaGFyZWRTdGF0aXN0aWNz
UXVldWUoKQogfQogCiBXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmU6OldlYlJlc291cmNl
TG9hZFN0YXRpc3RpY3NTdG9yZShOZXR3b3JrU2Vzc2lvbiYgbmV0d29ya1Nlc3Npb24sIGNvbnN0
IFN0cmluZyYgcmVzb3VyY2VMb2FkU3RhdGlzdGljc0RpcmVjdG9yeSwgU2hvdWxkSW5jbHVkZUxv
Y2FsaG9zdCBzaG91bGRJbmNsdWRlTG9jYWxob3N0LCBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzOjpJ
c0VwaGVtZXJhbCBpc0VwaGVtZXJhbCkKLSAgICA6IG1fbmV0d29ya1Nlc3Npb24obWFrZVdlYWtQ
dHIobmV0d29ya1Nlc3Npb24pKQorICAgIDogbV9uZXR3b3JrU2Vzc2lvbihuZXR3b3JrU2Vzc2lv
bikKICAgICAsIG1fc3RhdGlzdGljc1F1ZXVlKHNoYXJlZFN0YXRpc3RpY3NRdWV1ZSgpKQogICAg
ICwgbV9kYWlseVRhc2tzVGltZXIoUnVuTG9vcDo6bWFpbigpLCB0aGlzLCAmV2ViUmVzb3VyY2VM
b2FkU3RhdGlzdGljc1N0b3JlOjpwZXJmb3JtRGFpbHlUYXNrcykKICAgICAsIG1faXNFcGhlbWVy
YWwoaXNFcGhlbWVyYWwpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNz
L0Rvd25sb2Fkcy9jb2NvYS9XS0Rvd25sb2FkUHJvZ3Jlc3MubW0gYi9Tb3VyY2UvV2ViS2l0L05l
dHdvcmtQcm9jZXNzL0Rvd25sb2Fkcy9jb2NvYS9XS0Rvd25sb2FkUHJvZ3Jlc3MubW0KaW5kZXgg
MmRhYTkzNjVlMTZiNTZjMDlhOTIwYzBhNTBiODA3YzZjMmU1ZTc1MS4uNTcwMzVkMTI0ZTdhNDky
ZjRhYzQ4MzRkMGY0OWI1MzA1ODNhMGViYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3
b3JrUHJvY2Vzcy9Eb3dubG9hZHMvY29jb2EvV0tEb3dubG9hZFByb2dyZXNzLm1tCisrKyBiL1Nv
dXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvRG93bmxvYWRzL2NvY29hL1dLRG93bmxvYWRQcm9n
cmVzcy5tbQpAQCAtNTYsNyArNTYsNyBAQCAtIChpbnN0YW5jZXR5cGUpaW5pdFdpdGhEb3dubG9h
ZFRhc2s6KE5TVVJMU2Vzc2lvbkRvd25sb2FkVGFzayAqKXRhc2sgZG93bmxvYWQ6KAogICAgICAg
ICByZXR1cm4gbmlsOwogCiAgICAgbV90YXNrID0gdGFzazsKLSAgICBtX2Rvd25sb2FkID0gbWFr
ZVdlYWtQdHIoZG93bmxvYWQpOworICAgIG1fZG93bmxvYWQgPSBkb3dubG9hZDsKIAogICAgIFt0
YXNrIGFkZE9ic2VydmVyOnNlbGYgZm9yS2V5UGF0aDpjb3VudE9mQnl0ZXNFeHBlY3RlZFRvUmVj
ZWl2ZUtleVBhdGggb3B0aW9uczpOU0tleVZhbHVlT2JzZXJ2aW5nT3B0aW9uTmV3IHwgTlNLZXlW
YWx1ZU9ic2VydmluZ09wdGlvbkluaXRpYWwgY29udGV4dDpXS0Rvd25sb2FkUHJvZ3Jlc3NCeXRl
c0V4cGVjdGVkVG9SZWNlaXZlQ291bnRDb250ZXh0XTsKICAgICBbdGFzayBhZGRPYnNlcnZlcjpz
ZWxmIGZvcktleVBhdGg6Y291bnRPZkJ5dGVzUmVjZWl2ZWRLZXlQYXRoIG9wdGlvbnM6TlNLZXlW
YWx1ZU9ic2VydmluZ09wdGlvbk5ldyB8IE5TS2V5VmFsdWVPYnNlcnZpbmdPcHRpb25Jbml0aWFs
IGNvbnRleHQ6V0tEb3dubG9hZFByb2dyZXNzQnl0ZXNSZWNlaXZlZENvbnRleHRdOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ09SU1ByZWZsaWdodENo
ZWNrZXIuY3BwIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ09SU1ByZWZs
aWdodENoZWNrZXIuY3BwCmluZGV4IDE3YjRmOWE5YzhjYjhhYzUwZDVjZWJkZTk1ZGE2MzM2NWJj
NDFlOTEuLmY0MDU5NjY0ZGM3YTJhMGUzMWYzNjYxMTM4ZjFhMzZhMGIzZjA4NTUgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0NPUlNQcmVmbGlnaHRDaGVj
a2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtDT1JTUHJl
ZmxpZ2h0Q2hlY2tlci5jcHAKQEAgLTQ2LDcgKzQ2LDcgQEAgTmV0d29ya0NPUlNQcmVmbGlnaHRD
aGVja2VyOjpOZXR3b3JrQ09SU1ByZWZsaWdodENoZWNrZXIoTmV0d29ya1Byb2Nlc3MmIG5ldHdv
cmsKICAgICAsIG1fbmV0d29ya1Byb2Nlc3MobmV0d29ya1Byb2Nlc3MpCiAgICAgLCBtX2NvbXBs
ZXRpb25DYWxsYmFjayhXVEZNb3ZlKGNvbXBsZXRpb25DYWxsYmFjaykpCiAgICAgLCBtX3Nob3Vs
ZENhcHR1cmVFeHRyYU5ldHdvcmtMb2FkTWV0cmljcyhzaG91bGRDYXB0dXJlRXh0cmFOZXR3b3Jr
TG9hZE1ldHJpY3MpCi0gICAgLCBtX25ldHdvcmtSZXNvdXJjZUxvYWRlcihtYWtlV2Vha1B0cihu
ZXR3b3JrUmVzb3VyY2VMb2FkZXIpKQorICAgICwgbV9uZXR3b3JrUmVzb3VyY2VMb2FkZXIobmV0
d29ya1Jlc291cmNlTG9hZGVyKQogewogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05l
dHdvcmtQcm9jZXNzL05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmNwcCBiL1NvdXJjZS9X
ZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuY3BwCmlu
ZGV4IDdlZmYyZTg5ODUyMDU3YTI3NzM5ZDYxMjZhZmEyMDRjMzI5ZTRiMTQuLjVkN2I1ZWExNDYx
NjhkZjRkMDQ5N2IyMTQxZjNiM2Q4ZDEzMGIwNjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
TmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuY3BwCisrKyBiL1Nv
dXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3Mu
Y3BwCkBAIC0xMTM5LDcgKzExMzksNyBAQCB2b2lkIE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9j
ZXNzOjplc3RhYmxpc2hTV1NlcnZlckNvbm5lY3Rpb24oKQogICAgIGF1dG8mIHNlcnZlciA9IG1f
bmV0d29ya1Byb2Nlc3MtPnN3U2VydmVyRm9yU2Vzc2lvbihtX3Nlc3Npb25JRCk7CiAgICAgYXV0
byBjb25uZWN0aW9uID0gbWFrZVVuaXF1ZTxXZWJTV1NlcnZlckNvbm5lY3Rpb24+KG1fbmV0d29y
a1Byb2Nlc3MsIHNlcnZlciwgbV9jb25uZWN0aW9uLmdldCgpLCBtX3dlYlByb2Nlc3NJZGVudGlm
aWVyKTsKIAotICAgIG1fc3dDb25uZWN0aW9uID0gbWFrZVdlYWtQdHIoKmNvbm5lY3Rpb24pOwor
ICAgIG1fc3dDb25uZWN0aW9uID0gKmNvbm5lY3Rpb247CiAgICAgc2VydmVyLmFkZENvbm5lY3Rp
b24oV1RGTW92ZShjb25uZWN0aW9uKSk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
TmV0d29ya1Byb2Nlc3MvTmV0d29ya0RhdGFUYXNrLmNwcCBiL1NvdXJjZS9XZWJLaXQvTmV0d29y
a1Byb2Nlc3MvTmV0d29ya0RhdGFUYXNrLmNwcAppbmRleCBkZWU0Zjg5NzQyODNiNDAwMTA5NmM5
YWQzOTY2OTM2OGY3NGMxYmM1Li5kNTE3ODU3M2RjY2ExOWQ1ZTY2NmQ0YTRjNzE4ODU4M2JiMTE3
YTI3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtEYXRh
VGFzay5jcHAKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrRGF0YVRh
c2suY3BwCkBAIC02NCw3ICs2NCw3IEBAIFJlZjxOZXR3b3JrRGF0YVRhc2s+IE5ldHdvcmtEYXRh
VGFzazo6Y3JlYXRlKE5ldHdvcmtTZXNzaW9uJiBzZXNzaW9uLCBOZXR3b3JrRGF0CiB9CiAKIE5l
dHdvcmtEYXRhVGFzazo6TmV0d29ya0RhdGFUYXNrKE5ldHdvcmtTZXNzaW9uJiBzZXNzaW9uLCBO
ZXR3b3JrRGF0YVRhc2tDbGllbnQmIGNsaWVudCwgY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1
ZXN0V2l0aENyZWRlbnRpYWxzLCBTdG9yZWRDcmVkZW50aWFsc1BvbGljeSBzdG9yZWRDcmVkZW50
aWFsc1BvbGljeSwgYm9vbCBzaG91bGRDbGVhclJlZmVycmVyT25IVFRQU1RvSFRUUFJlZGlyZWN0
LCBib29sIGRhdGFUYXNrSXNGb3JNYWluRnJhbWVOYXZpZ2F0aW9uKQotICAgIDogbV9zZXNzaW9u
KG1ha2VXZWFrUHRyKHNlc3Npb24pKQorICAgIDogbV9zZXNzaW9uKHNlc3Npb24pCiAgICAgLCBt
X2NsaWVudCgmY2xpZW50KQogICAgICwgbV9wYXJ0aXRpb24ocmVxdWVzdFdpdGhDcmVkZW50aWFs
cy5jYWNoZVBhcnRpdGlvbigpKQogICAgICwgbV9zdG9yZWRDcmVkZW50aWFsc1BvbGljeShzdG9y
ZWRDcmVkZW50aWFsc1BvbGljeSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1By
b2Nlc3MvTmV0d29ya0xvYWQuY3BwIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3
b3JrTG9hZC5jcHAKaW5kZXggYWFmNmIxMWQzZWQ5OTI3MzVhNjIwNThhMDgyMDRjYzBmYjM5MzUx
YS4uYTE4NWJhNTZiYjcyNjQzNzI5MmMyYjFlMGQ2MjQ5ZDNmYWNhZWNlOCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrTG9hZC5jcHAKKysrIGIvU291cmNl
L1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrTG9hZC5jcHAKQEAgLTc2LDcgKzc2LDcgQEAg
dm9pZCBOZXR3b3JrTG9hZDo6c3RhcnRXaXRoU2NoZWR1bGluZygpCiB7CiAgICAgaWYgKCFtX3Rh
c2sgfHwgIW1fdGFzay0+bmV0d29ya1Nlc3Npb24oKSkKICAgICAgICAgcmV0dXJuOwotICAgIG1f
c2NoZWR1bGVyID0gbWFrZVdlYWtQdHIobV90YXNrLT5uZXR3b3JrU2Vzc2lvbigpLT5uZXR3b3Jr
TG9hZFNjaGVkdWxlcigpKTsKKyAgICBtX3NjaGVkdWxlciA9IG1fdGFzay0+bmV0d29ya1Nlc3Np
b24oKS0+bmV0d29ya0xvYWRTY2hlZHVsZXIoKTsKICAgICBtX3NjaGVkdWxlci0+c2NoZWR1bGUo
KnRoaXMpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05l
dHdvcmtMb2FkQ2hlY2tlci5jcHAgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdv
cmtMb2FkQ2hlY2tlci5jcHAKaW5kZXggOGI0Y2NhNzYyMTI3MzMwYzllZDkzMGQ4NzQwODRmNTRk
NDRmYjg0NC4uMjc1ZWZiNzM2ZWMxMzJkNjYxYjk1MjQ3N2MxYTM3NzE4YmRkM2FmZiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrTG9hZENoZWNrZXIuY3Bw
CisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0xvYWRDaGVja2VyLmNw
cApAQCAtNjcsNyArNjcsNyBAQCBOZXR3b3JrTG9hZENoZWNrZXI6Ok5ldHdvcmtMb2FkQ2hlY2tl
cihOZXR3b3JrUHJvY2VzcyYgbmV0d29ya1Byb2Nlc3MsIE5ldHdvcmtSZQogICAgICwgbV9zaG91
bGRDYXB0dXJlRXh0cmFOZXR3b3JrTG9hZE1ldHJpY3Moc2hvdWxkQ2FwdHVyZUV4dHJhTmV0d29y
a0xvYWRNZXRyaWNzKQogICAgICwgbV9yZXF1ZXN0TG9hZFR5cGUocmVxdWVzdExvYWRUeXBlKQog
ICAgICwgbV9zY2hlbWVSZWdpc3RyeShzY2hlbWVSZWdpc3RyeSkKLSAgICAsIG1fbmV0d29ya1Jl
c291cmNlTG9hZGVyKG1ha2VXZWFrUHRyKG5ldHdvcmtSZXNvdXJjZUxvYWRlcikpCisgICAgLCBt
X25ldHdvcmtSZXNvdXJjZUxvYWRlcihuZXR3b3JrUmVzb3VyY2VMb2FkZXIpCiB7CiAgICAgbV9p
c1NhbWVPcmlnaW5SZXF1ZXN0ID0gaXNTYW1lT3JpZ2luKG1fdXJsLCBtX29yaWdpbi5nZXQoKSk7
CiAgICAgc3dpdGNoIChvcHRpb25zLmNyZWRlbnRpYWxzKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmNwcCBiL1NvdXJjZS9XZWJLaXQv
TmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuY3BwCmluZGV4IDFkNWFjZDUwMjJkMjY1NTc1
MDcyYTA1ZWU0ZmIxZDc3YWE0ZWExNzQuLmY5NTA2MjYxNGU5NjQwYzNjZDYyOWQ3Mzk0Y2JlYjg1
OTgyYjU0YzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29y
a1Byb2Nlc3MuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1By
b2Nlc3MuY3BwCkBAIC0xMzg4LDcgKzEzODgsNyBAQCB2b2lkIE5ldHdvcmtQcm9jZXNzOjpwcmVj
b25uZWN0VG8oUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBXZWJQYWdlUHJveHlJZGVudGlmaQog
ICAgIHBhcmFtZXRlcnMuc2hvdWxkUHJlY29ubmVjdE9ubHkgPSBQcmVjb25uZWN0T25seTo6WWVz
OwogCiAgICAgbmV0d29ya1Nlc3Npb24tPm5ldHdvcmtMb2FkU2NoZWR1bGVyKCkuc3RhcnRlZFBy
ZWNvbm5lY3RGb3JNYWluUmVzb3VyY2UodXJsLCB1c2VyQWdlbnQpOwotICAgIGF1dG8gdGFzayA9
IG5ldyBQcmVjb25uZWN0VGFzaygqbmV0d29ya1Nlc3Npb24sIFdURk1vdmUocGFyYW1ldGVycyks
IFt3ZWFrTmV0d29ya1Nlc3Npb24gPSBtYWtlV2Vha1B0cigqbmV0d29ya1Nlc3Npb24pLCB1cmws
IHVzZXJBZ2VudF0oY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VFcnJvciYgZXJyb3IpIHsKKyAgICBh
dXRvIHRhc2sgPSBuZXcgUHJlY29ubmVjdFRhc2soKm5ldHdvcmtTZXNzaW9uLCBXVEZNb3ZlKHBh
cmFtZXRlcnMpLCBbd2Vha05ldHdvcmtTZXNzaW9uID0gV2Vha1B0ciB7ICpuZXR3b3JrU2Vzc2lv
biB9LCB1cmwsIHVzZXJBZ2VudF0oY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VFcnJvciYgZXJyb3Ip
IHsKICAgICAgICAgaWYgKHdlYWtOZXR3b3JrU2Vzc2lvbikKICAgICAgICAgICAgIHdlYWtOZXR3
b3JrU2Vzc2lvbi0+bmV0d29ya0xvYWRTY2hlZHVsZXIoKS5maW5pc2hlZFByZWNvbm5lY3RGb3JN
YWluUmVzb3VyY2UodXJsLCB1c2VyQWdlbnQsIGVycm9yKTsKICAgICB9KTsKQEAgLTE5NDAsNyAr
MTk0MCw3IEBAIHZvaWQgTmV0d29ya1Byb2Nlc3M6OmRlbGV0ZUFuZFJlc3RyaWN0V2Vic2l0ZURh
dGFGb3JSZWdpc3RyYWJsZURvbWFpbnMoUEFMOjpTZXNzCiAKICAgICBpZiAod2Vic2l0ZURhdGFU
eXBlcy5jb250YWlucyhXZWJzaXRlRGF0YVR5cGU6OkRpc2tDYWNoZSkpIHsKICAgICAgICAgZm9y
RWFjaE5ldHdvcmtTZXNzaW9uKFtzZXNzaW9uSUQsIGZldGNoT3B0aW9ucywgJmRvbWFpbnNUb0Rl
bGV0ZUFsbE5vbkNvb2tpZVdlYnNpdGVEYXRhRm9yLCAmY2FsbGJhY2tBZ2dyZWdhdG9yXShhdXRv
JiBzZXNzaW9uKSB7Ci0gICAgICAgICAgICBmZXRjaERpc2tDYWNoZUVudHJpZXMoc2Vzc2lvbi5j
YWNoZSgpLCBzZXNzaW9uSUQsIGZldGNoT3B0aW9ucywgW2RvbWFpbnNUb0RlbGV0ZUFsbE5vbkNv
b2tpZVdlYnNpdGVEYXRhRm9yLCBjYWxsYmFja0FnZ3JlZ2F0b3IsIHNlc3Npb24gPSBtYWtlV2Vh
a1B0cigmc2Vzc2lvbildKGF1dG8gZW50cmllcykgbXV0YWJsZSB7CisgICAgICAgICAgICBmZXRj
aERpc2tDYWNoZUVudHJpZXMoc2Vzc2lvbi5jYWNoZSgpLCBzZXNzaW9uSUQsIGZldGNoT3B0aW9u
cywgW2RvbWFpbnNUb0RlbGV0ZUFsbE5vbkNvb2tpZVdlYnNpdGVEYXRhRm9yLCBjYWxsYmFja0Fn
Z3JlZ2F0b3IsIHNlc3Npb24gPSBXZWFrUHRyIHsgc2Vzc2lvbiB9XShhdXRvIGVudHJpZXMpIG11
dGFibGUgewogICAgICAgICAgICAgICAgIGlmICghc2Vzc2lvbikKICAgICAgICAgICAgICAgICAg
ICAgcmV0dXJuOwogCkBAIC0yNjE1LDcgKzI2MTUsNyBAQCB2b2lkIE5ldHdvcmtQcm9jZXNzOjpz
aW11bGF0ZVJlc291cmNlTG9hZFN0YXRpc3RpY3NTZXNzaW9uUmVzdGFydChQQUw6OlNlc3Npb25J
RAogewogICAgIC8vIEZJWE1FOiBSZW5hbWUgdGhpcyB0byBzaW11bGF0ZVByaXZhdGVDbGlja01l
YXN1cmVtZW50U2Vzc2lvblJlc3RhcnQuCiAgICAgaWYgKGF1dG8qIHNlc3Npb24gPSBuZXR3b3Jr
U2Vzc2lvbihzZXNzaW9uSUQpKSB7Ci0gICAgICAgIHNlc3Npb24tPnJlY3JlYXRlUHJpdmF0ZUNs
aWNrTWVhc3VyZW1lbnRTdG9yZShbc2Vzc2lvbiA9IG1ha2VXZWFrUHRyKCpzZXNzaW9uKSwgY29t
cGxldGlvbkhhbmRsZXIgPSBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKV0gKCkgbXV0YWJsZSB7
CisgICAgICAgIHNlc3Npb24tPnJlY3JlYXRlUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRTdG9yZShb
c2Vzc2lvbiA9IFdlYWtQdHIgeyAqc2Vzc2lvbiB9LCBjb21wbGV0aW9uSGFuZGxlciA9IFdURk1v
dmUoY29tcGxldGlvbkhhbmRsZXIpXSAoKSBtdXRhYmxlIHsKICAgICAgICAgICAgIGlmIChzZXNz
aW9uKQogICAgICAgICAgICAgICAgIHNlc3Npb24tPmZpcmVQcml2YXRlQ2xpY2tNZWFzdXJlbWVu
dFRpbWVySW1tZWRpYXRlbHlGb3JUZXN0aW5nKCk7CiAgICAgICAgICAgICBjb21wbGV0aW9uSGFu
ZGxlcigpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3Jr
UmVzb3VyY2VMb2FkZXIuY3BwIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3Jr
UmVzb3VyY2VMb2FkZXIuY3BwCmluZGV4IGRhYzE4NDA1Y2JjZjVmNmNmZGYwMzYzNGI0NDY4ZjJm
YmIxOGQ5NDAuLjBlZjgxY2VkYjY3YzE5NzIwMGQyNzBjYTY5NWQzZGE4ZGZhYzZiMGEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Jlc291cmNlTG9hZGVy
LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtSZXNvdXJjZUxv
YWRlci5jcHAKQEAgLTg1MCw3ICs4NTAsNyBAQCB2b2lkIE5ldHdvcmtSZXNvdXJjZUxvYWRlcjo6
c2VuZERpZFJlY2VpdmVSZXNwb25zZVBvdGVudGlhbGx5SW5OZXdCcm93c2luZ0NvbnRleAogICAg
IGF1dG8gZXhpc3RpbmdOZXR3b3JrUmVzb3VyY2VMb2FkSWRlbnRpZmllclRvUmVzdW1lID0gbG9h
ZGVyLT5pZGVudGlmaWVyKCk7CiAgICAgbV9jb25uZWN0aW9uLT5uZXR3b3JrU2Vzc2lvbigpLT5h
ZGRMb2FkZXJBd2FpdGluZ1dlYlByb2Nlc3NUcmFuc2Zlcihsb2FkZXIucmVsZWFzZU5vbk51bGwo
KSk7CiAgICAgUmVnaXN0cmFibGVEb21haW4gcmVzcG9uc2VEb21haW4geyByZXNwb25zZS51cmwo
KSB9OwotICAgIG1fY29ubmVjdGlvbi0+bmV0d29ya1Byb2Nlc3MoKS5wYXJlbnRQcm9jZXNzQ29u
bmVjdGlvbigpLT5zZW5kV2l0aEFzeW5jUmVwbHkoTWVzc2FnZXM6Ok5ldHdvcmtQcm9jZXNzUHJv
eHk6OlRyaWdnZXJCcm93c2luZ0NvbnRleHRHcm91cFN3aXRjaEZvck5hdmlnYXRpb24obV9wYXJh
bWV0ZXJzLndlYlBhZ2VQcm94eUlELCBtX3BhcmFtZXRlcnMubmF2aWdhdGlvbklELCBicm93c2lu
Z0NvbnRleHRHcm91cFN3aXRjaERlY2lzaW9uLCByZXNwb25zZURvbWFpbiwgZXhpc3RpbmdOZXR3
b3JrUmVzb3VyY2VMb2FkSWRlbnRpZmllclRvUmVzdW1lKSwgW2V4aXN0aW5nTmV0d29ya1Jlc291
cmNlTG9hZElkZW50aWZpZXJUb1Jlc3VtZSwgc2Vzc2lvbiA9IG1ha2VXZWFrUHRyKGNvbm5lY3Rp
b25Ub1dlYlByb2Nlc3MoKS5uZXR3b3JrU2Vzc2lvbigpKV0oYm9vbCBzdWNjZXNzKSB7CisgICAg
bV9jb25uZWN0aW9uLT5uZXR3b3JrUHJvY2VzcygpLnBhcmVudFByb2Nlc3NDb25uZWN0aW9uKCkt
PnNlbmRXaXRoQXN5bmNSZXBseShNZXNzYWdlczo6TmV0d29ya1Byb2Nlc3NQcm94eTo6VHJpZ2dl
ckJyb3dzaW5nQ29udGV4dEdyb3VwU3dpdGNoRm9yTmF2aWdhdGlvbihtX3BhcmFtZXRlcnMud2Vi
UGFnZVByb3h5SUQsIG1fcGFyYW1ldGVycy5uYXZpZ2F0aW9uSUQsIGJyb3dzaW5nQ29udGV4dEdy
b3VwU3dpdGNoRGVjaXNpb24sIHJlc3BvbnNlRG9tYWluLCBleGlzdGluZ05ldHdvcmtSZXNvdXJj
ZUxvYWRJZGVudGlmaWVyVG9SZXN1bWUpLCBbZXhpc3RpbmdOZXR3b3JrUmVzb3VyY2VMb2FkSWRl
bnRpZmllclRvUmVzdW1lLCBzZXNzaW9uID0gV2Vha1B0ciB7IGNvbm5lY3Rpb25Ub1dlYlByb2Nl
c3MoKS5uZXR3b3JrU2Vzc2lvbigpIH1dKGJvb2wgc3VjY2VzcykgewogICAgICAgICBpZiAoc3Vj
Y2VzcykKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgaWYgKHNlc3Npb24pCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtTb2NrZXRDaGFubmVsLmNw
cCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1NvY2tldENoYW5uZWwuY3Bw
CmluZGV4IDc3MTEyZjc4YjJiOGU0NGQyY2QwMjY4NWYyYzllYWFmMjg4ZDE1MWMuLmU4NzE1MjQw
MzNkODZjYTY5YWFhYTYwY2Q3M2EyNGIxMzZiY2YwNjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1NvY2tldENoYW5uZWwuY3BwCisrKyBiL1NvdXJjZS9X
ZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1NvY2tldENoYW5uZWwuY3BwCkBAIC00OSw3ICs0
OSw3IEBAIHN0ZDo6dW5pcXVlX3B0cjxOZXR3b3JrU29ja2V0Q2hhbm5lbD4gTmV0d29ya1NvY2tl
dENoYW5uZWw6OmNyZWF0ZShOZXR3b3JrQ29ubmVjCiBOZXR3b3JrU29ja2V0Q2hhbm5lbDo6TmV0
d29ya1NvY2tldENoYW5uZWwoTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MmIGNvbm5lY3Rp
b24sIE5ldHdvcmtTZXNzaW9uKiBzZXNzaW9uLCBjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVl
c3QsIGNvbnN0IFN0cmluZyYgcHJvdG9jb2wsIFdlYlNvY2tldElkZW50aWZpZXIgaWRlbnRpZmll
ciwgV2ViUGFnZVByb3h5SWRlbnRpZmllciB3ZWJQYWdlUHJveHlJRCkKICAgICA6IG1fY29ubmVj
dGlvblRvV2ViUHJvY2Vzcyhjb25uZWN0aW9uKQogICAgICwgbV9pZGVudGlmaWVyKGlkZW50aWZp
ZXIpCi0gICAgLCBtX3Nlc3Npb24obWFrZVdlYWtQdHIoc2Vzc2lvbikpCisgICAgLCBtX3Nlc3Np
b24oc2Vzc2lvbikKICAgICAsIG1fZXJyb3JUaW1lcigqdGhpcywgJk5ldHdvcmtTb2NrZXRDaGFu
bmVsOjpzZW5kRGVsYXllZEVycm9yKQogICAgICwgbV93ZWJQYWdlUHJveHlJRCh3ZWJQYWdlUHJv
eHlJRCkKIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29y
a1N0b3JhZ2VTZXNzaW9uUHJvdmlkZXIuaCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mv
TmV0d29ya1N0b3JhZ2VTZXNzaW9uUHJvdmlkZXIuaAppbmRleCBjYjMyMTk4OGVjODQxY2JhOTJh
Y2NhZTEzY2ZjNDM5MjEzNDc5Y2NmLi4yN2UwMWRmNWMxYzA0Y2RlMDkzNDhiMjQ4ZmRmMTgxYWEy
ZTJkZGM1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtT
dG9yYWdlU2Vzc2lvblByb3ZpZGVyLmgKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vz
cy9OZXR3b3JrU3RvcmFnZVNlc3Npb25Qcm92aWRlci5oCkBAIC0zOSw3ICszOSw3IEBAIHB1Ymxp
YzoKICAgICAKIHByaXZhdGU6CiAgICAgTmV0d29ya1N0b3JhZ2VTZXNzaW9uUHJvdmlkZXIoTmV0
d29ya1Byb2Nlc3MmIG5ldHdvcmtQcm9jZXNzLCBQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQpCi0g
ICAgICAgIDogbV9uZXR3b3JrUHJvY2VzcyhtYWtlV2Vha1B0cihuZXR3b3JrUHJvY2VzcykpCisg
ICAgICAgIDogbV9uZXR3b3JrUHJvY2VzcyhuZXR3b3JrUHJvY2VzcykKICAgICAgICAgLCBtX3Nl
c3Npb25JRChzZXNzaW9uSUQpIHsgfQogCiAgICAgV2ViQ29yZTo6TmV0d29ya1N0b3JhZ2VTZXNz
aW9uKiBzdG9yYWdlU2Vzc2lvbigpIGNvbnN0IGZpbmFsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L05ldHdvcmtQcm9jZXNzL1ByaXZhdGVDbGlja01lYXN1cmVtZW50L1ByaXZhdGVDbGlja01l
YXN1cmVtZW50Q2xpZW50SW1wbC5jcHAgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1By
aXZhdGVDbGlja01lYXN1cmVtZW50L1ByaXZhdGVDbGlja01lYXN1cmVtZW50Q2xpZW50SW1wbC5j
cHAKaW5kZXggNTc2ZTRmNTk0OTg3M2ZlZjYzNjY2ZGNiYTI0ZTliOTk3ZDllMjA3Zi4uYTk4N2M2
NWUxYmExMDRiMGFmMjJiZTlkNDZlYzc4MjllZDhmNDVmZCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9OZXR3b3JrUHJvY2Vzcy9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9Qcml2YXRlQ2xpY2tN
ZWFzdXJlbWVudENsaWVudEltcGwuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nl
c3MvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRDbGllbnRJ
bXBsLmNwcApAQCAtMzQsNyArMzQsNyBAQCBuYW1lc3BhY2UgV2ViS2l0IHsKIG5hbWVzcGFjZSBQ
Q00gewogCiBDbGllbnRJbXBsOjpDbGllbnRJbXBsKE5ldHdvcmtTZXNzaW9uJiBzZXNzaW9uLCBO
ZXR3b3JrUHJvY2VzcyYgbmV0d29ya1Byb2Nlc3MpCi0gICAgOiBtX25ldHdvcmtTZXNzaW9uKG1h
a2VXZWFrUHRyKHNlc3Npb24pKQorICAgIDogbV9uZXR3b3JrU2Vzc2lvbihzZXNzaW9uKQogICAg
ICwgbV9uZXR3b3JrUHJvY2VzcyhuZXR3b3JrUHJvY2VzcykgeyB9CiAKIHZvaWQgQ2xpZW50SW1w
bDo6YnJvYWRjYXN0Q29uc29sZU1lc3NhZ2UoSlNDOjpNZXNzYWdlTGV2ZWwgbWVzc2FnZUxldmVs
LCBjb25zdCBTdHJpbmcmIG1lc3NhZ2UpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdv
cmtQcm9jZXNzL1ByaXZhdGVDbGlja01lYXN1cmVtZW50L1ByaXZhdGVDbGlja01lYXN1cmVtZW50
Q29ubmVjdGlvbi5jcHAgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1ByaXZhdGVDbGlj
a01lYXN1cmVtZW50L1ByaXZhdGVDbGlja01lYXN1cmVtZW50Q29ubmVjdGlvbi5jcHAKaW5kZXgg
YTZlNWYzZWY4ZjE2ODZiMDQxMDZiNGVlNTEzYjFkYmUwODkyZjM3NS4uZDBkOGE4MWY5ZjNjMzVj
NDA1NTA0MTRjNDQ2OGY2ODE0YjIzNTczYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3
b3JrUHJvY2Vzcy9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVu
dENvbm5lY3Rpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvUHJpdmF0
ZUNsaWNrTWVhc3VyZW1lbnQvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRDb25uZWN0aW9uLmNwcApA
QCAtMzUsNyArMzUsOCBAQCBuYW1lc3BhY2UgUENNIHsKIAogQ29ubmVjdGlvblRvTWFjaFNlcnZp
Y2U6OkNvbm5lY3Rpb25Ub01hY2hTZXJ2aWNlKENTdHJpbmcmJiBtYWNoU2VydmljZU5hbWUsIE5l
dHdvcmtTZXNzaW9uJiBuZXR3b3JrU2Vzc2lvbikKICAgICA6IG1fbWFjaFNlcnZpY2VOYW1lKFdU
Rk1vdmUobWFjaFNlcnZpY2VOYW1lKSkKLSAgICAsIG1fbmV0d29ya1Nlc3Npb24obWFrZVdlYWtQ
dHIobmV0d29ya1Nlc3Npb24pKSB7IH0KKyAgICAsIG1fbmV0d29ya1Nlc3Npb24obmV0d29ya1Nl
c3Npb24pCit7IH0KIAogI2lmICFQTEFURk9STShDT0NPQSkKIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9jb2NvYS9Qcml2
YXRlQ2xpY2tNZWFzdXJlbWVudENvbm5lY3Rpb25Db2NvYS5tbSBiL1NvdXJjZS9XZWJLaXQvTmV0
d29ya1Byb2Nlc3MvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvY29jb2EvUHJpdmF0ZUNsaWNrTWVh
c3VyZW1lbnRDb25uZWN0aW9uQ29jb2EubW0KaW5kZXggNzM1NWJmMjAzMDEwNTNhZjEzYWQ5MjBj
ODg3ZTlmMzA3YmJhNWRiOC4uZThhZjQ5MTJlNDkwNjZlYjU4M2FiMGUwYzE0ZjBhM2M5ZTA2ZDg3
ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9Qcml2YXRlQ2xpY2tN
ZWFzdXJlbWVudC9jb2NvYS9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudENvbm5lY3Rpb25Db2NvYS5t
bQorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1ByaXZhdGVDbGlja01lYXN1cmVt
ZW50L2NvY29hL1ByaXZhdGVDbGlja01lYXN1cmVtZW50Q29ubmVjdGlvbkNvY29hLm1tCkBAIC0z
OSw3ICszOSw3IEBAIHZvaWQgQ29ubmVjdGlvblRvTWFjaFNlcnZpY2U6OmluaXRpYWxpemVDb25u
ZWN0aW9uSWZOZWVkZWQoKSBjb25zdAogICAgIGlmIChtX2Nvbm5lY3Rpb24pCiAgICAgICAgIHJl
dHVybjsKICAgICBtX2Nvbm5lY3Rpb24gPSBhZG9wdE5TKHhwY19jb25uZWN0aW9uX2NyZWF0ZV9t
YWNoX3NlcnZpY2UobV9tYWNoU2VydmljZU5hbWUuZGF0YSgpLCBkaXNwYXRjaF9nZXRfbWFpbl9x
dWV1ZSgpLCAwKSk7Ci0gICAgeHBjX2Nvbm5lY3Rpb25fc2V0X2V2ZW50X2hhbmRsZXIobV9jb25u
ZWN0aW9uLmdldCgpLCBbd2Vha1RoaXMgPSBtYWtlV2Vha1B0cigqdGhpcyldKHhwY19vYmplY3Rf
dCBldmVudCkgeworICAgIHhwY19jb25uZWN0aW9uX3NldF9ldmVudF9oYW5kbGVyKG1fY29ubmVj
dGlvbi5nZXQoKSwgW3dlYWtUaGlzID0gV2Vha1B0ciB7ICp0aGlzIH1dKHhwY19vYmplY3RfdCBl
dmVudCkgewogICAgICAgICBpZiAoIXdlYWtUaGlzKQogICAgICAgICAgICAgcmV0dXJuOwogICAg
ICAgICBpZiAoZXZlbnQgPT0gWFBDX0VSUk9SX0NPTk5FQ1RJT05fSU5WQUxJRCkKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvU2VydmljZVdvcmtlci9TZXJ2aWNlV29y
a2VyRmV0Y2hUYXNrLmNwcCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvU2VydmljZVdv
cmtlci9TZXJ2aWNlV29ya2VyRmV0Y2hUYXNrLmNwcAppbmRleCA4MjU3ZWM4MTRmZjI5MGE2NWM2
NDI1YzIyYTU3MmRhZTMxNWU1NTEwLi5lMmJmNThkNzEyNjRjYjg3Y2YxMjM5OWUyNTdlODUwOTk1
NmM5OWMxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1NlcnZpY2VX
b3JrZXIvU2VydmljZVdvcmtlckZldGNoVGFzay5jcHAKKysrIGIvU291cmNlL1dlYktpdC9OZXR3
b3JrUHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1NlcnZpY2VXb3JrZXJGZXRjaFRhc2suY3BwCkBAIC01
MCw3ICs1MCw3IEBAIG5hbWVzcGFjZSBXZWJLaXQgewogdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7
CiAKIFNlcnZpY2VXb3JrZXJGZXRjaFRhc2s6OlNlcnZpY2VXb3JrZXJGZXRjaFRhc2soV2ViU1dT
ZXJ2ZXJDb25uZWN0aW9uJiBzd1NlcnZlckNvbm5lY3Rpb24sIE5ldHdvcmtSZXNvdXJjZUxvYWRl
ciYgbG9hZGVyLCBSZXNvdXJjZVJlcXVlc3QmJiByZXF1ZXN0LCBTV1NlcnZlckNvbm5lY3Rpb25J
ZGVudGlmaWVyIHNlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyLCBTZXJ2aWNlV29ya2VySWRlbnRp
ZmllciBzZXJ2aWNlV29ya2VySWRlbnRpZmllciwgU2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbklk
ZW50aWZpZXIgc2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbklkZW50aWZpZXIsIGJvb2wgc2hvdWxk
U29mdFVwZGF0ZSkKLSAgICA6IG1fc3dTZXJ2ZXJDb25uZWN0aW9uKG1ha2VXZWFrUHRyKHN3U2Vy
dmVyQ29ubmVjdGlvbikpCisgICAgOiBtX3N3U2VydmVyQ29ubmVjdGlvbihzd1NlcnZlckNvbm5l
Y3Rpb24pCiAgICAgLCBtX2xvYWRlcihsb2FkZXIpCiAgICAgLCBtX2ZldGNoSWRlbnRpZmllcihX
ZWJDb3JlOjpGZXRjaElkZW50aWZpZXI6OmdlbmVyYXRlKCkpCiAgICAgLCBtX3NlcnZlckNvbm5l
Y3Rpb25JZGVudGlmaWVyKHNlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyKQpAQCAtODQsNyArODQs
NyBAQCB0ZW1wbGF0ZTx0eXBlbmFtZSBNZXNzYWdlPiBib29sIFNlcnZpY2VXb3JrZXJGZXRjaFRh
c2s6OnNlbmRUb0NsaWVudChNZXNzYWdlJiYgbQogdm9pZCBTZXJ2aWNlV29ya2VyRmV0Y2hUYXNr
OjpzdGFydChXZWJTV1NlcnZlclRvQ29udGV4dENvbm5lY3Rpb24mIHNlcnZpY2VXb3JrZXJDb25u
ZWN0aW9uKQogewogICAgIFNXRkVUQ0hfUkVMRUFTRV9MT0coInN0YXJ0OiIpOwotICAgIG1fc2Vy
dmljZVdvcmtlckNvbm5lY3Rpb24gPSBtYWtlV2Vha1B0cihzZXJ2aWNlV29ya2VyQ29ubmVjdGlv
bik7CisgICAgbV9zZXJ2aWNlV29ya2VyQ29ubmVjdGlvbiA9IHNlcnZpY2VXb3JrZXJDb25uZWN0
aW9uOwogICAgIHNlcnZpY2VXb3JrZXJDb25uZWN0aW9uLnJlZ2lzdGVyRmV0Y2goKnRoaXMpOwog
CiAgICAgc3RhcnRGZXRjaCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJv
Y2Vzcy9TZXJ2aWNlV29ya2VyL1NlcnZpY2VXb3JrZXJTb2Z0VXBkYXRlTG9hZGVyLmNwcCBiL1Nv
dXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvU2VydmljZVdvcmtlci9TZXJ2aWNlV29ya2VyU29m
dFVwZGF0ZUxvYWRlci5jcHAKaW5kZXggOTUyOTg5MDRkYzI3MTgxNGM2OTZkYjk5NzJjZGVmMDU1
NzczOTJlYS4uOGVlMTEyYTlkZjgyODk1NGMxNjIzZmZmMjJjMmEyMGZkOGUyZmU3ZCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1NlcnZpY2VX
b3JrZXJTb2Z0VXBkYXRlTG9hZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9j
ZXNzL1NlcnZpY2VXb3JrZXIvU2VydmljZVdvcmtlclNvZnRVcGRhdGVMb2FkZXIuY3BwCkBAIC01
Miw3ICs1Miw3IEBAIHZvaWQgU2VydmljZVdvcmtlclNvZnRVcGRhdGVMb2FkZXI6OnN0YXJ0KE5l
dHdvcmtTZXNzaW9uKiBzZXNzaW9uLCBTZXJ2aWNlV29ya2VyCiBTZXJ2aWNlV29ya2VyU29mdFVw
ZGF0ZUxvYWRlcjo6U2VydmljZVdvcmtlclNvZnRVcGRhdGVMb2FkZXIoTmV0d29ya1Nlc3Npb24m
IHNlc3Npb24sIFNlcnZpY2VXb3JrZXJKb2JEYXRhJiYgam9iRGF0YSwgYm9vbCBzaG91bGRSZWZy
ZXNoQ2FjaGUsIFJlc291cmNlUmVxdWVzdCYmIHJlcXVlc3QsIEhhbmRsZXImJiBjb21wbGV0aW9u
SGFuZGxlcikKICAgICA6IG1fY29tcGxldGlvbkhhbmRsZXIoV1RGTW92ZShjb21wbGV0aW9uSGFu
ZGxlcikpCiAgICAgLCBtX2pvYkRhdGEoV1RGTW92ZShqb2JEYXRhKSkKLSAgICAsIG1fc2Vzc2lv
bihtYWtlV2Vha1B0cihzZXNzaW9uKSkKKyAgICAsIG1fc2Vzc2lvbihzZXNzaW9uKQogewogICAg
IEFTU0VSVCghcmVxdWVzdC5pc0NvbmRpdGlvbmFsKCkpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L05ldHdvcmtQcm9jZXNzL1NlcnZpY2VXb3JrZXIvV2ViU1dTZXJ2ZXJUb0NvbnRleHRD
b25uZWN0aW9uLmNwcCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvU2VydmljZVdvcmtl
ci9XZWJTV1NlcnZlclRvQ29udGV4dENvbm5lY3Rpb24uY3BwCmluZGV4IDNjYTA5NmM3YzRiNzc5
MzE4NDEwYTNiMWEzYjcyNjMxMzY2OTFiMjMuLjg1ZWVkYzZlOTYzMmM2ZDI2MGVjYTFiMjIwYTlj
NTNhODg4YzFlMmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvU2Vy
dmljZVdvcmtlci9XZWJTV1NlcnZlclRvQ29udGV4dENvbm5lY3Rpb24uY3BwCisrKyBiL1NvdXJj
ZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvU2VydmljZVdvcmtlci9XZWJTV1NlcnZlclRvQ29udGV4
dENvbm5lY3Rpb24uY3BwCkBAIC00Nyw3ICs0Nyw3IEBAIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3Jl
OwogV2ViU1dTZXJ2ZXJUb0NvbnRleHRDb25uZWN0aW9uOjpXZWJTV1NlcnZlclRvQ29udGV4dENv
bm5lY3Rpb24oTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MmIGNvbm5lY3Rpb24sIFdlYlBh
Z2VQcm94eUlkZW50aWZpZXIgd2ViUGFnZVByb3h5SUQsIFJlZ2lzdHJhYmxlRG9tYWluJiYgcmVn
aXN0cmFibGVEb21haW4sIHN0ZDo6b3B0aW9uYWw8U2VydmljZVdvcmtlckNsaWVudElkZW50aWZp
ZXI+IHNlcnZpY2VXb3JrZXJQYWdlSWRlbnRpZmllciwgU1dTZXJ2ZXImIHNlcnZlcikKICAgICA6
IFNXU2VydmVyVG9Db250ZXh0Q29ubmVjdGlvbihXVEZNb3ZlKHJlZ2lzdHJhYmxlRG9tYWluKSwg
c2VydmljZVdvcmtlclBhZ2VJZGVudGlmaWVyKQogICAgICwgbV9jb25uZWN0aW9uKGNvbm5lY3Rp
b24pCi0gICAgLCBtX3NlcnZlcihtYWtlV2Vha1B0cihzZXJ2ZXIpKQorICAgICwgbV9zZXJ2ZXIo
c2VydmVyKQogICAgICwgbV93ZWJQYWdlUHJveHlJRCh3ZWJQYWdlUHJveHlJRCkKIHsKICAgICBz
ZXJ2ZXIuYWRkQ29udGV4dENvbm5lY3Rpb24oKnRoaXMpOwpAQCAtMTg4LDcgKzE4OCw3IEBAIHZv
aWQgV2ViU1dTZXJ2ZXJUb0NvbnRleHRDb25uZWN0aW9uOjpkaWRSZWNlaXZlRmV0Y2hUYXNrTWVz
c2FnZShJUEM6OkNvbm5lY3Rpb24mCiB2b2lkIFdlYlNXU2VydmVyVG9Db250ZXh0Q29ubmVjdGlv
bjo6cmVnaXN0ZXJGZXRjaChTZXJ2aWNlV29ya2VyRmV0Y2hUYXNrJiB0YXNrKQogewogICAgIEFT
U0VSVCghbV9vbmdvaW5nRmV0Y2hlcy5jb250YWlucyh0YXNrLmZldGNoSWRlbnRpZmllcigpKSk7
Ci0gICAgbV9vbmdvaW5nRmV0Y2hlcy5hZGQodGFzay5mZXRjaElkZW50aWZpZXIoKSwgbWFrZVdl
YWtQdHIodGFzaykpOworICAgIG1fb25nb2luZ0ZldGNoZXMuYWRkKHRhc2suZmV0Y2hJZGVudGlm
aWVyKCksIHRhc2spOwogfQogCiB2b2lkIFdlYlNXU2VydmVyVG9Db250ZXh0Q29ubmVjdGlvbjo6
dW5yZWdpc3RlckZldGNoKFNlcnZpY2VXb3JrZXJGZXRjaFRhc2smIHRhc2spCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1dlYlN0b3JhZ2UvU3RvcmFnZUFyZWEuY3Bw
IGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9XZWJTdG9yYWdlL1N0b3JhZ2VBcmVhLmNw
cAppbmRleCBkZDkxZTc4YTViMTYwOTE1MWVhYjExZTY0MDZkZjY1OWQxYmQ1MDEwLi5jODRlYWQ0
MzBhYjE1ZDk0ZmQ4ZWYyNTMzZDZlNDkyODcyYjZlMTJiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L05ldHdvcmtQcm9jZXNzL1dlYlN0b3JhZ2UvU3RvcmFnZUFyZWEuY3BwCisrKyBiL1NvdXJj
ZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvV2ViU3RvcmFnZS9TdG9yYWdlQXJlYS5jcHAKQEAgLTM3
LDcgKzM3LDcgQEAgbmFtZXNwYWNlIFdlYktpdCB7CiB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsK
IAogU3RvcmFnZUFyZWE6OlN0b3JhZ2VBcmVhKExvY2FsU3RvcmFnZU5hbWVzcGFjZSogbG9jYWxT
dG9yYWdlTmFtZXNwYWNlLCBjb25zdCBTZWN1cml0eU9yaWdpbkRhdGEmIHNlY3VyaXR5T3JpZ2lu
LCB1bnNpZ25lZCBxdW90YUluQnl0ZXMsIFJlZjxTdXNwZW5kYWJsZVdvcmtRdWV1ZT4mJiBxdWV1
ZSkKLSAgICA6IG1fbG9jYWxTdG9yYWdlTmFtZXNwYWNlKG1ha2VXZWFrUHRyKGxvY2FsU3RvcmFn
ZU5hbWVzcGFjZSkpCisgICAgOiBtX2xvY2FsU3RvcmFnZU5hbWVzcGFjZShsb2NhbFN0b3JhZ2VO
YW1lc3BhY2UpCiAgICAgLCBtX3NlY3VyaXR5T3JpZ2luKHNlY3VyaXR5T3JpZ2luKQogICAgICwg
bV9xdW90YUluQnl0ZXMocXVvdGFJbkJ5dGVzKQogICAgICwgbV9pZGVudGlmaWVyKElkZW50aWZp
ZXI6OmdlbmVyYXRlKCkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNz
L1dlYlN0b3JhZ2UvU3RvcmFnZU1hbmFnZXJTZXQuY3BwIGIvU291cmNlL1dlYktpdC9OZXR3b3Jr
UHJvY2Vzcy9XZWJTdG9yYWdlL1N0b3JhZ2VNYW5hZ2VyU2V0LmNwcAppbmRleCAwOGY2MWFiZDdh
YWI1OGRjZjRkYzMxZjM2MTBkYjFkN2RlZWFiNDExLi42ZmQ3MDNhNWU1YjJkMDE0MzU5ODVlYWIz
YWVkYzFlMGQxYTkzYjEzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNz
L1dlYlN0b3JhZ2UvU3RvcmFnZU1hbmFnZXJTZXQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0
d29ya1Byb2Nlc3MvV2ViU3RvcmFnZS9TdG9yYWdlTWFuYWdlclNldC5jcHAKQEAgLTMxNSw3ICsz
MTUsNyBAQCB2b2lkIFN0b3JhZ2VNYW5hZ2VyU2V0Ojpjb25uZWN0VG9Mb2NhbFN0b3JhZ2VBcmVh
KElQQzo6Q29ubmVjdGlvbiYgY29ubmVjdGlvbiwgUAogICAgIH0KIAogICAgIGF1dG8gc3RvcmFn
ZUFyZWFJRCA9IHN0b3JhZ2VBcmVhLT5pZGVudGlmaWVyKCk7Ci0gICAgYXV0byBpdGVyID0gbV9z
dG9yYWdlQXJlYXMuYWRkKHN0b3JhZ2VBcmVhSUQsIG1ha2VXZWFrUHRyKHN0b3JhZ2VBcmVhKSku
aXRlcmF0b3I7CisgICAgYXV0byBpdGVyID0gbV9zdG9yYWdlQXJlYXMuYWRkKHN0b3JhZ2VBcmVh
SUQsIHN0b3JhZ2VBcmVhKS5pdGVyYXRvcjsKICAgICBBU1NFUlRfVU5VU0VEKGl0ZXIsIHN0b3Jh
Z2VBcmVhID09IGl0ZXItPnZhbHVlLmdldCgpKTsKIAogICAgIGNvbXBsZXRpb25IYW5kbGVyKHN0
b3JhZ2VBcmVhSUQpOwpAQCAtMzQwLDcgKzM0MCw3IEBAIHZvaWQgU3RvcmFnZU1hbmFnZXJTZXQ6
OmNvbm5lY3RUb1RyYW5zaWVudExvY2FsU3RvcmFnZUFyZWEoSVBDOjpDb25uZWN0aW9uJiBjb25u
CiAgICAgfQogCiAgICAgYXV0byBzdG9yYWdlQXJlYUlEID0gc3RvcmFnZUFyZWEtPmlkZW50aWZp
ZXIoKTsKLSAgICBhdXRvIGl0ZXIgPSBtX3N0b3JhZ2VBcmVhcy5hZGQoc3RvcmFnZUFyZWFJRCwg
bWFrZVdlYWtQdHIoc3RvcmFnZUFyZWEpKS5pdGVyYXRvcjsKKyAgICBhdXRvIGl0ZXIgPSBtX3N0
b3JhZ2VBcmVhcy5hZGQoc3RvcmFnZUFyZWFJRCwgc3RvcmFnZUFyZWEpLml0ZXJhdG9yOwogICAg
IEFTU0VSVF9VTlVTRUQoaXRlciwgc3RvcmFnZUFyZWEgPT0gaXRlci0+dmFsdWUuZ2V0KCkpOwog
CiAgICAgY29tcGxldGlvbkhhbmRsZXIoc3RvcmFnZUFyZWFJRCk7CkBAIC0zNjUsNyArMzY1LDcg
QEAgdm9pZCBTdG9yYWdlTWFuYWdlclNldDo6Y29ubmVjdFRvU2Vzc2lvblN0b3JhZ2VBcmVhKElQ
Qzo6Q29ubmVjdGlvbiYgY29ubmVjdGlvbiwKICAgICB9CiAKICAgICBhdXRvIHN0b3JhZ2VBcmVh
SUQgPSBzdG9yYWdlQXJlYS0+aWRlbnRpZmllcigpOwotICAgIGF1dG8gaXRlciA9IG1fc3RvcmFn
ZUFyZWFzLmFkZChzdG9yYWdlQXJlYUlELCBtYWtlV2Vha1B0cihzdG9yYWdlQXJlYSkpLml0ZXJh
dG9yOworICAgIGF1dG8gaXRlciA9IG1fc3RvcmFnZUFyZWFzLmFkZChzdG9yYWdlQXJlYUlELCBz
dG9yYWdlQXJlYSkuaXRlcmF0b3I7CiAgICAgQVNTRVJUX1VOVVNFRChpdGVyLCBzdG9yYWdlQXJl
YSA9PSBpdGVyLT52YWx1ZS5nZXQoKSk7CiAKICAgICBjb21wbGV0aW9uSGFuZGxlcihzdG9yYWdl
QXJlYUlEKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY2FjaGUv
Q2FjaGVTdG9yYWdlRW5naW5lLmNwcCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY2Fj
aGUvQ2FjaGVTdG9yYWdlRW5naW5lLmNwcAppbmRleCBiZjE5NzRmYzU3MDQxMWRlYzA1N2VhNDE0
NzAyZTBjYzA1MWY2MzMwLi5mMzI3MjE1ZmU1ODdhMThjMWRiOGM0Y2VjZDU4YjA1ZDYzNTU0ODE0
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NhY2hlL0NhY2hlU3Rv
cmFnZUVuZ2luZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jYWNoZS9D
YWNoZVN0b3JhZ2VFbmdpbmUuY3BwCkBAIC0yNjAsNyArMjYwLDcgQEAgdm9pZCBFbmdpbmU6OnJl
cXVlc3RTcGFjZShjb25zdCBXZWJDb3JlOjpDbGllbnRPcmlnaW4mIG9yaWdpbiwgdWludDY0X3Qg
c3BhY2VSZXEKIAogRW5naW5lOjpFbmdpbmUoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBOZXR3
b3JrUHJvY2VzcyYgcHJvY2VzcywgU3RyaW5nJiYgcm9vdFBhdGgpCiAgICAgOiBtX3Nlc3Npb25J
RChzZXNzaW9uSUQpCi0gICAgLCBtX25ldHdvcmtQcm9jZXNzKG1ha2VXZWFrUHRyKHByb2Nlc3Mp
KQorICAgICwgbV9uZXR3b3JrUHJvY2Vzcyhwcm9jZXNzKQogICAgICwgbV9yb290UGF0aChXVEZN
b3ZlKHJvb3RQYXRoKSkKIHsKICAgICBpZiAoIW1fcm9vdFBhdGguaXNOdWxsKCkpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NvY29hL05ldHdvcmtEYXRhVGFza0Nv
Y29hLm1tIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jb2NvYS9OZXR3b3JrRGF0YVRh
c2tDb2NvYS5tbQppbmRleCAxOWQ0ZWI0NWI1MjM4NjE2NTBjNmVkODcwODNkNjk2YjdmNWY3YWRh
Li5iOTBjZjAwN2VhOTk3NDY0MjA4YmU1YWZkMjc1ZTYyZGNlODM3ZDQ3IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NvY29hL05ldHdvcmtEYXRhVGFza0NvY29hLm1t
CisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY29jb2EvTmV0d29ya0RhdGFUYXNr
Q29jb2EubW0KQEAgLTI5Myw3ICsyOTMsNyBAQCBzdGF0aWMgaW5saW5lIGJvb2wgY29tcHV0ZUlz
QWx3YXlzT25Mb2dnaW5nQWxsb3dlZChOZXR3b3JrU2Vzc2lvbiYgc2Vzc2lvbikKIAogTmV0d29y
a0RhdGFUYXNrQ29jb2E6Ok5ldHdvcmtEYXRhVGFza0NvY29hKE5ldHdvcmtTZXNzaW9uJiBzZXNz
aW9uLCBOZXR3b3JrRGF0YVRhc2tDbGllbnQmIGNsaWVudCwgY29uc3QgTmV0d29ya0xvYWRQYXJh
bWV0ZXJzJiBwYXJhbWV0ZXJzKQogICAgIDogTmV0d29ya0RhdGFUYXNrKHNlc3Npb24sIGNsaWVu
dCwgcGFyYW1ldGVycy5yZXF1ZXN0LCBwYXJhbWV0ZXJzLnN0b3JlZENyZWRlbnRpYWxzUG9saWN5
LCBwYXJhbWV0ZXJzLnNob3VsZENsZWFyUmVmZXJyZXJPbkhUVFBTVG9IVFRQUmVkaXJlY3QsIHBh
cmFtZXRlcnMuaXNNYWluRnJhbWVOYXZpZ2F0aW9uKQotICAgICwgbV9zZXNzaW9uV3JhcHBlciht
YWtlV2Vha1B0cihzdGF0aWNfY2FzdDxOZXR3b3JrU2Vzc2lvbkNvY29hJj4oc2Vzc2lvbikuc2Vz
c2lvbldyYXBwZXJGb3JUYXNrKHBhcmFtZXRlcnMud2ViUGFnZVByb3h5SUQsIHBhcmFtZXRlcnMu
cmVxdWVzdCwgcGFyYW1ldGVycy5zdG9yZWRDcmVkZW50aWFsc1BvbGljeSwgcGFyYW1ldGVycy5p
c05hdmlnYXRpbmdUb0FwcEJvdW5kRG9tYWluKSkpCisgICAgLCBtX3Nlc3Npb25XcmFwcGVyKHN0
YXRpY19jYXN0PE5ldHdvcmtTZXNzaW9uQ29jb2EmPihzZXNzaW9uKS5zZXNzaW9uV3JhcHBlckZv
clRhc2socGFyYW1ldGVycy53ZWJQYWdlUHJveHlJRCwgcGFyYW1ldGVycy5yZXF1ZXN0LCBwYXJh
bWV0ZXJzLnN0b3JlZENyZWRlbnRpYWxzUG9saWN5LCBwYXJhbWV0ZXJzLmlzTmF2aWdhdGluZ1Rv
QXBwQm91bmREb21haW4pKQogICAgICwgbV9mcmFtZUlEKHBhcmFtZXRlcnMud2ViRnJhbWVJRCkK
ICAgICAsIG1fcGFnZUlEKHBhcmFtZXRlcnMud2ViUGFnZUlEKQogICAgICwgbV93ZWJQYWdlUHJv
eHlJRChwYXJhbWV0ZXJzLndlYlBhZ2VQcm94eUlEKQpAQCAtNTc4LDcgKzU3OCw3IEBAIHZvaWQg
TmV0d29ya0RhdGFUYXNrQ29jb2E6OnN3YXBTZXNzaW9uSWZOZWNlc3NhcnkoV2ViQ29yZTo6UmVz
b3VyY2VSZXF1ZXN0JiByZXF1CiAgICAgYXV0byBwcmV2aW91c1Rhc2sgPSBzdGQ6OmV4Y2hhbmdl
KG1fdGFzaywgbnVsbHB0cik7CiAKICAgICBtX3Nlc3Npb25XcmFwcGVyLT5kYXRhVGFza01hcC5y
ZW1vdmUoW3ByZXZpb3VzVGFzayB0YXNrSWRlbnRpZmllcl0pOwotICAgIG1fc2Vzc2lvbldyYXBw
ZXIgPSBtYWtlV2Vha1B0cih1cGRhdGVkU2Vzc2lvbik7CisgICAgbV9zZXNzaW9uV3JhcHBlciA9
IHVwZGF0ZWRTZXNzaW9uOwogCiAgICAgbV90YXNrID0gW21fc2Vzc2lvbldyYXBwZXItPnNlc3Np
b24gZGF0YVRhc2tXaXRoUmVxdWVzdDpyZXF1ZXN0Lm5zVVJMUmVxdWVzdChXZWJDb3JlOjpIVFRQ
Qm9keVVwZGF0ZVBvbGljeTo6VXBkYXRlSFRUUEJvZHkpXTsKICAgICBtX3Nlc3Npb25XcmFwcGVy
LT5kYXRhVGFza01hcC5hZGQoW21fdGFzayB0YXNrSWRlbnRpZmllcl0sIHRoaXMpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jb2NvYS9OZXR3b3JrU2Vzc2lvbkNv
Y29hLm1tIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jb2NvYS9OZXR3b3JrU2Vzc2lv
bkNvY29hLm1tCmluZGV4IGNiNjdjYzYyNjI2ZThjOTQxZDI1YzY3YjNjMTNhMjIxNTUzNjBiMjYu
LjRlOWE1MzE5NWYxY2FmYzEwMWY3NzVlZGYwNTU3MjY1ZjJhYTBkOWYgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY29jb2EvTmV0d29ya1Nlc3Npb25Db2NvYS5tbQor
KysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NvY29hL05ldHdvcmtTZXNzaW9uQ29j
b2EubW0KQEAgLTQ2MCw4ICs0NjAsOCBAQCAtIChpZClpbml0V2l0aE5ldHdvcmtTZXNzaW9uOihO
YWtlZFJlZjxXZWJLaXQ6Ok5ldHdvcmtTZXNzaW9uQ29jb2E+KXNlc3Npb24gd3JhcAogICAgIGlm
ICghc2VsZikKICAgICAgICAgcmV0dXJuIG5pbDsKIAotICAgIF9zZXNzaW9uID0gbWFrZVdlYWtQ
dHIoc2Vzc2lvbi5nZXQoKSk7Ci0gICAgX3Nlc3Npb25XcmFwcGVyID0gbWFrZVdlYWtQdHIoc2Vz
c2lvbldyYXBwZXIpOworICAgIF9zZXNzaW9uID0gc2Vzc2lvbi5nZXQoKTsKKyAgICBfc2Vzc2lv
bldyYXBwZXIgPSBzZXNzaW9uV3JhcHBlcjsKICAgICBfd2l0aENyZWRlbnRpYWxzID0gd2l0aENy
ZWRlbnRpYWxzOwogCiAgICAgcmV0dXJuIHNlbGY7CkBAIC03NDYsNyArNzQ2LDcgQEAgQUxMT1df
REVQUkVDQVRFRF9ERUNMQVJBVElPTlNfRU5ECiAgICAgICAgICAgICAgICAgTlNVUkxQcm90ZWN0
aW9uU3BhY2UgKnByb3RlY3Rpb25TcGFjZSA9IGNoYWxsZW5nZS5wcm90ZWN0aW9uU3BhY2U7CiAg
ICAgICAgICAgICAgICAgbmV0d29ya0RhdGFUYXNrLT5kaWROZWdvdGlhdGVNb2Rlcm5UTFMoVVJM
KFVSTCgpLCBtYWtlU3RyaW5nKFN0cmluZyhwcm90ZWN0aW9uU3BhY2UucHJvdG9jb2wpLCAiOi8v
IiwgU3RyaW5nKHByb3RlY3Rpb25TcGFjZS5ob3N0KSwgJzonLCBwcm90ZWN0aW9uU3BhY2UucG9y
dCkpKTsKICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGF1dG8gZGVjaXNpb25IYW5kbGVyID0g
bWFrZUJsb2NrUHRyKFt3ZWFrU2VsZiA9IFdlYWtPYmpDUHRyPFdLTmV0d29ya1Nlc3Npb25EZWxl
Z2F0ZT4oc2VsZiksIHNlc3Npb25Db2NvYSA9IG1ha2VXZWFrUHRyKHNlc3Npb25Db2NvYSksIGNv
bXBsZXRpb25IYW5kbGVyID0gbWFrZUJsb2NrUHRyKGNvbXBsZXRpb25IYW5kbGVyKSwgdGFza0lk
ZW50aWZpZXIsIG5ldHdvcmtEYXRhVGFzayA9IFJlZlB0ciB7IG5ldHdvcmtEYXRhVGFzayB9LCBu
ZWdvdGlhdGVkTGVnYWN5VExTXShOU1VSTEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlICpjaGFsbGVu
Z2UsIE9TU3RhdHVzIHRydXN0UmVzdWx0KSBtdXRhYmxlIHsKKyAgICAgICAgICAgIGF1dG8gZGVj
aXNpb25IYW5kbGVyID0gbWFrZUJsb2NrUHRyKFt3ZWFrU2VsZiA9IFdlYWtPYmpDUHRyPFdLTmV0
d29ya1Nlc3Npb25EZWxlZ2F0ZT4oc2VsZiksIHNlc3Npb25Db2NvYSA9IFdlYWtQdHIgeyBzZXNz
aW9uQ29jb2EgfSwgY29tcGxldGlvbkhhbmRsZXIgPSBtYWtlQmxvY2tQdHIoY29tcGxldGlvbkhh
bmRsZXIpLCB0YXNrSWRlbnRpZmllciwgbmV0d29ya0RhdGFUYXNrID0gUmVmUHRyIHsgbmV0d29y
a0RhdGFUYXNrIH0sIG5lZ290aWF0ZWRMZWdhY3lUTFNdKE5TVVJMQXV0aGVudGljYXRpb25DaGFs
bGVuZ2UgKmNoYWxsZW5nZSwgT1NTdGF0dXMgdHJ1c3RSZXN1bHQpIG11dGFibGUgewogICAgICAg
ICAgICAgICAgIGF1dG8gc3Ryb25nU2VsZiA9IHdlYWtTZWxmLmdldCgpOwogICAgICAgICAgICAg
ICAgIGlmICghc3Ryb25nU2VsZikKICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGNvbXBsZXRp
b25IYW5kbGVyKE5TVVJMU2Vzc2lvbkF1dGhDaGFsbGVuZ2VDYW5jZWxBdXRoZW50aWNhdGlvbkNo
YWxsZW5nZSwgbmlsKTsKQEAgLTE2OTUsNyArMTY5NSw3IEBAIHN0ZDo6dW5pcXVlX3B0cjxXZWJT
b2NrZXRUYXNrPiBOZXR3b3JrU2Vzc2lvbkNvY29hOjpjcmVhdGVXZWJTb2NrZXRUYXNrKFdlYlBh
Z2VQCiAgICAgLy8gQWx0aG91Z2ggdGhlIFdlYlNvY2tldCBwcm90b2NvbCBhbGxvd3MgZnVsbCA2
NC1iaXQgbGVuZ3RocywgQ2hyb21lIGFuZCBGaXJlZm94IGxpbWl0IHRoZSBsZW5ndGggdG8gMl42
MyAtIDEKICAgICB0YXNrLmdldCgpLm1heGltdW1NZXNzYWdlU2l6ZSA9IDB4N0ZGRkZGRkZGRkZG
RkZGRnVsbDsKIAotICAgIHJldHVybiBtYWtlVW5pcXVlPFdlYlNvY2tldFRhc2s+KGNoYW5uZWws
IHdlYlBhZ2VQcm94eUlELCBtYWtlV2Vha1B0cihzZXNzaW9uU2V0KSwgcmVxdWVzdCwgV1RGTW92
ZSh0YXNrKSk7CisgICAgcmV0dXJuIG1ha2VVbmlxdWU8V2ViU29ja2V0VGFzaz4oY2hhbm5lbCwg
d2ViUGFnZVByb3h5SUQsIHNlc3Npb25TZXQsIHJlcXVlc3QsIFdURk1vdmUodGFzaykpOwogfQog
CiB2b2lkIE5ldHdvcmtTZXNzaW9uQ29jb2E6OmFkZFdlYlNvY2tldFRhc2soV2ViUGFnZVByb3h5
SWRlbnRpZmllciB3ZWJQYWdlUHJveHlJRCwgV2ViU29ja2V0VGFzayYgdGFzaykKQEAgLTE3Mjgs
NyArMTcyOCw3IEBAIHZvaWQgTmV0d29ya1Nlc3Npb25Db2NvYTo6YWRkV2ViUGFnZU5ldHdvcmtQ
YXJhbWV0ZXJzKFdlYlBhZ2VQcm94eUlkZW50aWZpZXIgcGFnCiAgICAgICAgIGNvbmZpZ3VyYXRp
b24uZ2V0KCkuX2F0dHJpYnV0ZWRCdW5kbGVJZGVudGlmaWVyID0gcGFyYW1ldGVycy5hdHRyaWJ1
dGVkQnVuZGxlSWRlbnRpZmllcigpOwogI2VuZGlmCiAgICAgaW5pdGlhbGl6ZU5TVVJMU2Vzc2lv
bnNJblNldChhZGRSZXN1bHQyLml0ZXJhdG9yLT52YWx1ZS5nZXQoKSwgY29uZmlndXJhdGlvbi5n
ZXQoKSk7Ci0gICAgYWRkUmVzdWx0MS5pdGVyYXRvci0+dmFsdWUgPSBtYWtlV2Vha1B0cihhZGRS
ZXN1bHQyLml0ZXJhdG9yLT52YWx1ZS5nZXQoKSk7CisgICAgYWRkUmVzdWx0MS5pdGVyYXRvci0+
dmFsdWUgPSBhZGRSZXN1bHQyLml0ZXJhdG9yLT52YWx1ZS5nZXQoKTsKIAogICAgIG1fYXR0cmli
dXRlZEJ1bmRsZUlkZW50aWZpZXJGcm9tUGFnZUlkZW50aWZpZXJzLmFkZChwYWdlSUQsIHBhcmFt
ZXRlcnMuYXR0cmlidXRlZEJ1bmRsZUlkZW50aWZpZXIoKSk7CiB9CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3N0b3JhZ2UvRmlsZVN5c3RlbVN0b3JhZ2VIYW5kbGUu
Y3BwIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9zdG9yYWdlL0ZpbGVTeXN0ZW1TdG9y
YWdlSGFuZGxlLmNwcAppbmRleCAwOGY2MGNjMTJkZTkxNDk0YzJjMDdjMDNmN2E3MDFmNzIzNjE0
MTJkLi5mYjZjMmJiYTljMTFiZjExNWM4OGYzMWJjZDFhN2I3Y2ZlNjZkNzlhIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3N0b3JhZ2UvRmlsZVN5c3RlbVN0b3JhZ2VI
YW5kbGUuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvc3RvcmFnZS9GaWxl
U3lzdGVtU3RvcmFnZUhhbmRsZS5jcHAKQEAgLTQxLDcgKzQxLDcgQEAgY29uc3RleHByIGNoYXIg
cGF0aFNlcGFyYXRvciA9ICcvJzsKIAogRmlsZVN5c3RlbVN0b3JhZ2VIYW5kbGU6OkZpbGVTeXN0
ZW1TdG9yYWdlSGFuZGxlKEZpbGVTeXN0ZW1TdG9yYWdlTWFuYWdlciYgbWFuYWdlciwgVHlwZSB0
eXBlLCBTdHJpbmcmJiBwYXRoLCBTdHJpbmcmJiBuYW1lKQogICAgIDogbV9pZGVudGlmaWVyKFdl
YkNvcmU6OkZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyOjpnZW5lcmF0ZVRocmVhZFNhZmUoKSkK
LSAgICAsIG1fbWFuYWdlcihtYWtlV2Vha1B0cihtYW5hZ2VyKSkKKyAgICAsIG1fbWFuYWdlciht
YW5hZ2VyKQogICAgICwgbV90eXBlKHR5cGUpCiAgICAgLCBtX3BhdGgoV1RGTW92ZShwYXRoKSkK
ICAgICAsIG1fbmFtZShXVEZNb3ZlKG5hbWUpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9O
ZXR3b3JrUHJvY2Vzcy9zdG9yYWdlL0ZpbGVTeXN0ZW1TdG9yYWdlSGFuZGxlUmVnaXN0cnkuY3Bw
IGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9zdG9yYWdlL0ZpbGVTeXN0ZW1TdG9yYWdl
SGFuZGxlUmVnaXN0cnkuY3BwCmluZGV4IGI4NGNmNmNjOGIxMTQ5ZmI2YWY4MGQxZmQ3MTI2ZDg0
OGFiNjI4MGEuLjQ0MzI1YzA0YjA4YTAxMWVlY2RmMDFlMjkxMzRiYmJjZjNhZWY0ZDMgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvc3RvcmFnZS9GaWxlU3lzdGVtU3Rv
cmFnZUhhbmRsZVJlZ2lzdHJ5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNz
L3N0b3JhZ2UvRmlsZVN5c3RlbVN0b3JhZ2VIYW5kbGVSZWdpc3RyeS5jcHAKQEAgLTM2LDcgKzM2
LDcgQEAgdm9pZCBGaWxlU3lzdGVtU3RvcmFnZUhhbmRsZVJlZ2lzdHJ5OjpyZWdpc3RlckhhbmRs
ZShXZWJDb3JlOjpGaWxlU3lzdGVtSGFuZGxlSWQKIHsKICAgICBBU1NFUlQoIW1faGFuZGxlcy5j
b250YWlucyhpZGVudGlmaWVyKSk7CiAKLSAgICBtX2hhbmRsZXMuYWRkKGlkZW50aWZpZXIsIG1h
a2VXZWFrUHRyKGhhbmRsZSkpOworICAgIG1faGFuZGxlcy5hZGQoaWRlbnRpZmllciwgaGFuZGxl
KTsKIH0KIAogdm9pZCBGaWxlU3lzdGVtU3RvcmFnZUhhbmRsZVJlZ2lzdHJ5Ojp1bnJlZ2lzdGVy
SGFuZGxlKFdlYkNvcmU6OkZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyIGlkZW50aWZpZXIpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtL0lQQy9Db25uZWN0aW9uLmNwcCBiL1Nv
dXJjZS9XZWJLaXQvUGxhdGZvcm0vSVBDL0Nvbm5lY3Rpb24uY3BwCmluZGV4IGQ2ZWE5YzhjYTUz
YzlkNTgwMmM2MGI2ZDNkZDQzMmExODVjOWJkYTkuLmZjYTJiNTRkMGYzYmY5MzA5OTdhZTA5ODk3
MzRmZDVlYWZmZDU3MjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm0vSVBDL0Nv
bm5lY3Rpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm0vSVBDL0Nvbm5lY3Rpb24u
Y3BwCkBAIC04NTIsNyArODUyLDcgQEAgdm9pZCBDb25uZWN0aW9uOjplbmFibGVJbmNvbWluZ01l
c3NhZ2VzVGhyb3R0bGluZygpCiAjaWYgRU5BQkxFKElQQ19URVNUSU5HX0FQSSkKIHZvaWQgQ29u
bmVjdGlvbjo6YWRkTWVzc2FnZU9ic2VydmVyKGNvbnN0IE1lc3NhZ2VPYnNlcnZlciYgb2JzZXJ2
ZXIpCiB7Ci0gICAgbV9tZXNzYWdlT2JzZXJ2ZXJzLmFwcGVuZChtYWtlV2Vha1B0cihvYnNlcnZl
cikpOworICAgIG1fbWVzc2FnZU9ic2VydmVycy5hcHBlbmQob2JzZXJ2ZXIpOwogfQogI2VuZGlm
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm0vSVBDL01lc3NhZ2VSZWNlaXZl
ck1hcC5jcHAgYi9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtL0lQQy9NZXNzYWdlUmVjZWl2ZXJNYXAu
Y3BwCmluZGV4IGQ4ODBlOTBjNWJjNTI3NTYwMzg1MTE0ZjY5NzEyNzJhOWRmYWZlNTcuLjNlYjQx
MmEyMjFiYWYwODU5NjY0OGRiN2E3MGMwZjQwZDBiMTRlYmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvUGxhdGZvcm0vSVBDL01lc3NhZ2VSZWNlaXZlck1hcC5jcHAKKysrIGIvU291cmNlL1dl
YktpdC9QbGF0Zm9ybS9JUEMvTWVzc2FnZVJlY2VpdmVyTWFwLmNwcApAQCAtNDQsNyArNDQsNyBA
QCB2b2lkIE1lc3NhZ2VSZWNlaXZlck1hcDo6YWRkTWVzc2FnZVJlY2VpdmVyKFJlY2VpdmVyTmFt
ZSBtZXNzYWdlUmVjZWl2ZXJOYW1lLCBNZQogICAgIEFTU0VSVCghbV9nbG9iYWxNZXNzYWdlUmVj
ZWl2ZXJzLmNvbnRhaW5zKG1lc3NhZ2VSZWNlaXZlck5hbWUpKTsKIAogICAgIG1lc3NhZ2VSZWNl
aXZlci53aWxsQmVBZGRlZFRvTWVzc2FnZVJlY2VpdmVyTWFwKCk7Ci0gICAgbV9nbG9iYWxNZXNz
YWdlUmVjZWl2ZXJzLnNldChtZXNzYWdlUmVjZWl2ZXJOYW1lLCBtYWtlV2Vha1B0cihtZXNzYWdl
UmVjZWl2ZXIpKTsKKyAgICBtX2dsb2JhbE1lc3NhZ2VSZWNlaXZlcnMuc2V0KG1lc3NhZ2VSZWNl
aXZlck5hbWUsIG1lc3NhZ2VSZWNlaXZlcik7CiB9CiAKIHZvaWQgTWVzc2FnZVJlY2VpdmVyTWFw
OjphZGRNZXNzYWdlUmVjZWl2ZXIoUmVjZWl2ZXJOYW1lIG1lc3NhZ2VSZWNlaXZlck5hbWUsIHVp
bnQ2NF90IGRlc3RpbmF0aW9uSUQsIE1lc3NhZ2VSZWNlaXZlciYgbWVzc2FnZVJlY2VpdmVyKQpA
QCAtNTQsNyArNTQsNyBAQCB2b2lkIE1lc3NhZ2VSZWNlaXZlck1hcDo6YWRkTWVzc2FnZVJlY2Vp
dmVyKFJlY2VpdmVyTmFtZSBtZXNzYWdlUmVjZWl2ZXJOYW1lLCB1aQogICAgIEFTU0VSVCghbV9n
bG9iYWxNZXNzYWdlUmVjZWl2ZXJzLmNvbnRhaW5zKG1lc3NhZ2VSZWNlaXZlck5hbWUpKTsKIAog
ICAgIG1lc3NhZ2VSZWNlaXZlci53aWxsQmVBZGRlZFRvTWVzc2FnZVJlY2VpdmVyTWFwKCk7Ci0g
ICAgbV9tZXNzYWdlUmVjZWl2ZXJzLnNldChzdGQ6Om1ha2VfcGFpcihtZXNzYWdlUmVjZWl2ZXJO
YW1lLCBkZXN0aW5hdGlvbklEKSwgbWFrZVdlYWtQdHIobWVzc2FnZVJlY2VpdmVyKSk7CisgICAg
bV9tZXNzYWdlUmVjZWl2ZXJzLnNldChzdGQ6Om1ha2VfcGFpcihtZXNzYWdlUmVjZWl2ZXJOYW1l
LCBkZXN0aW5hdGlvbklEKSwgbWVzc2FnZVJlY2VpdmVyKTsKIH0KIAogdm9pZCBNZXNzYWdlUmVj
ZWl2ZXJNYXA6OnJlbW92ZU1lc3NhZ2VSZWNlaXZlcihSZWNlaXZlck5hbWUgbWVzc2FnZVJlY2Vp
dmVyTmFtZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm0vY29jb2EvV0tQYXlt
ZW50QXV0aG9yaXphdGlvbkRlbGVnYXRlLm1tIGIvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9jb2Nv
YS9XS1BheW1lbnRBdXRob3JpemF0aW9uRGVsZWdhdGUubW0KaW5kZXggYTk1YmY0MzQ4NGFmNzQw
YTQ4OWYwMGJmNzM0YTAyMTE0MThhNWMwMy4uNGM3MTMwOGFlNGQ2NGRhNmFlOWRkZWJkNzJmY2Rh
MWNjNjhhNTJhYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9jb2NvYS9XS1Bh
eW1lbnRBdXRob3JpemF0aW9uRGVsZWdhdGUubW0KKysrIGIvU291cmNlL1dlYktpdC9QbGF0Zm9y
bS9jb2NvYS9XS1BheW1lbnRBdXRob3JpemF0aW9uRGVsZWdhdGUubW0KQEAgLTExNiw3ICsxMTYs
NyBAQCAtIChpbnN0YW5jZXR5cGUpX2luaXRXaXRoUmVxdWVzdDooUEtQYXltZW50UmVxdWVzdCAq
KXJlcXVlc3QgcHJlc2VudGVyOihXZWJLaXQ6OgogICAgIGlmICghKHNlbGYgPSBbc3VwZXIgaW5p
dF0pKQogICAgICAgICByZXR1cm4gbmlsOwogCi0gICAgX3ByZXNlbnRlciA9IG1ha2VXZWFrUHRy
KHByZXNlbnRlcik7CisgICAgX3ByZXNlbnRlciA9IHByZXNlbnRlcjsKICAgICBfcmVxdWVzdCA9
IHJlcXVlc3Q7CiAgICAgX3NoaXBwaW5nTWV0aG9kcyA9IHJlcXVlc3Quc2hpcHBpbmdNZXRob2Rz
OwogICAgIF9zdW1tYXJ5SXRlbXMgPSByZXF1ZXN0LnBheW1lbnRTdW1tYXJ5SXRlbXM7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9BcHBsZVBheS9XZWJQYXltZW50Q29vcmRpbmF0
b3JQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9BcHBsZVBheS9XZWJQYXltZW50Q29v
cmRpbmF0b3JQcm94eS5jcHAKaW5kZXggNDViOWI1YTMzZDQxZmY4Mzk2YmYwMTFhM2JlMDllNGYz
NDYzZjJhYS4uMTQzOTlhZWY3M2I0ODRjNmJjOWRmMThhNTBmZTQ3NDIxYWQ4ZGIzMiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvQXBwbGVQYXkvV2ViUGF5bWVudENvb3JkaW5hdG9y
UHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0FwcGxlUGF5L1dlYlBheW1lbnRD
b29yZGluYXRvclByb3h5LmNwcApAQCAtODIsNyArODIsNyBAQCB2b2lkIFdlYlBheW1lbnRDb29y
ZGluYXRvclByb3h5OjpzaG93UGF5bWVudFVJKFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyIGRlc3Rp
bmF0aQogewogICAgIGlmIChhdXRvJiBjb29yZGluYXRvciA9IGFjdGl2ZVBheW1lbnRDb29yZGlu
YXRvclByb3h5KCkpCiAgICAgICAgIGNvb3JkaW5hdG9yLT5kaWRSZWFjaEZpbmFsU3RhdGUoKTsK
LSAgICBhY3RpdmVQYXltZW50Q29vcmRpbmF0b3JQcm94eSgpID0gbWFrZVdlYWtQdHIodGhpcyk7
CisgICAgYWN0aXZlUGF5bWVudENvb3JkaW5hdG9yUHJveHkoKSA9ICp0aGlzOwogCiAgICAgTUVT
U0FHRV9DSEVDSyhjYW5CZWdpbigpKTsKICAgICBNRVNTQUdFX0NIRUNLKCFtX2Rlc3RpbmF0aW9u
SUQpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViU1FMaXRlRGF0YWJhc2VU
cmFja2VyLmggYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJTUUxpdGVEYXRhYmFzZVRyYWNrZXIu
aAppbmRleCBiMDViMGQxOWVlZDBmYmE4NWI0YzI5NTM0ZjljYjQ3MzEwZTdjMDliLi41NjQyZWIw
ODhhODMyMGEzOGYzNjdmOGM1ODMwMWQ2MGM2ODcwYTlkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1NoYXJlZC9XZWJTUUxpdGVEYXRhYmFzZVRyYWNrZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0
L1NoYXJlZC9XZWJTUUxpdGVEYXRhYmFzZVRyYWNrZXIuaApAQCAtMzQsNyArMzQsNyBAQAogCiBu
YW1lc3BhY2UgV2ViS2l0IHsKIAotLy8gVXNlIGVhZ2VyIGluaXRpYWxpemF0aW9uIGZvciB0aGUg
V2Vha1B0ckZhY3Rvcnkgc2luY2Ugd2UgY2FsbCBtYWtlV2Vha1B0cigpIGZyb20gYSBub24tbWFp
biB0aHJlYWQuCisvLyBVc2UgZWFnZXIgaW5pdGlhbGl6YXRpb24gZm9yIHRoZSBXZWFrUHRyRmFj
dG9yeSBzaW5jZSB3ZSBjb25zdHJ1Y3QgV2Vha1B0cnMgZnJvbSBhIG5vbi1tYWluIHRocmVhZC4K
IGNsYXNzIFdlYlNRTGl0ZURhdGFiYXNlVHJhY2tlciBmaW5hbCA6IHB1YmxpYyBXZWJDb3JlOjpT
UUxpdGVEYXRhYmFzZVRyYWNrZXJDbGllbnQsIHB1YmxpYyBDYW5NYWtlV2Vha1B0cjxXZWJTUUxp
dGVEYXRhYmFzZVRyYWNrZXIsIFdlYWtQdHJGYWN0b3J5SW5pdGlhbGl6YXRpb246OkVhZ2VyPiB7
CiAgICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoV2ViU1FMaXRlRGF0YWJhc2VUcmFja2VyKQogcHVi
bGljOgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvWFIvWFJEZXZpY2VQcm94eS5j
cHAgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9YUi9YUkRldmljZVByb3h5LmNwcAppbmRleCBmYTEz
ZGRjYWRjY2ZhMzY0MmJhNTA2MThkM2IxN2VhMjhmNWZkMjMwLi4zMmVjNjg4MDYxM2RlZWMxNWFj
ZWJhZWFmMWYzNjU3NGY1ZDM4YTBkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9Y
Ui9YUkRldmljZVByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9YUi9YUkRldmlj
ZVByb3h5LmNwcApAQCAtNDEsNyArNDEsNyBAQCBSZWY8WFJEZXZpY2VQcm94eT4gWFJEZXZpY2VQ
cm94eTo6Y3JlYXRlKFhSRGV2aWNlSW5mbyYmIGRldmljZUluZm8sIFBsYXRmb3JtWFJTeQogfQog
CiBYUkRldmljZVByb3h5OjpYUkRldmljZVByb3h5KFhSRGV2aWNlSW5mbyYmIGRldmljZUluZm8s
IFBsYXRmb3JtWFJTeXN0ZW1Qcm94eSYgeHJTeXN0ZW0pCi0gICAgOiBtX3hyU3lzdGVtKG1ha2VX
ZWFrUHRyKHhyU3lzdGVtKSkKKyAgICA6IG1feHJTeXN0ZW0oeHJTeXN0ZW0pCiB7CiAgICAgbV9p
ZGVudGlmaWVyID0gZGV2aWNlSW5mby5pZGVudGlmaWVyOwogICAgIG1fc3VwcG9ydHNTdGVyZW9S
ZW5kZXJpbmcgPSBkZXZpY2VJbmZvLnN1cHBvcnRzU3RlcmVvUmVuZGVyaW5nOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9TaGFyZWQvbWFjL1NlY0l0ZW1TaGltLmNwcCBiL1NvdXJjZS9XZWJL
aXQvU2hhcmVkL21hYy9TZWNJdGVtU2hpbS5jcHAKaW5kZXggNTE5ZWRjMmRkOTBiY2U4ZWRlZmEx
YzBlOGQ5YjUwODc2ZmRjOWE4YS4uZjk5OTg0ODc1Zjc2YWFmYTdlNTFjY2VjMTVhZTI0YTg2NWM5
MDhkYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvbWFjL1NlY0l0ZW1TaGltLmNw
cAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9tYWMvU2VjSXRlbVNoaW0uY3BwCkBAIC0xNDAs
NyArMTQwLDcgQEAgc3RhdGljIE9TU3RhdHVzIHdlYlNlY0l0ZW1EZWxldGUoQ0ZEaWN0aW9uYXJ5
UmVmIHF1ZXJ5KQogCiB2b2lkIGluaXRpYWxpemVTZWNJdGVtU2hpbShOZXR3b3JrUHJvY2VzcyYg
cHJvY2VzcykKIHsKLSAgICBnbG9iYWxOZXR3b3JrUHJvY2VzcygpID0gbWFrZVdlYWtQdHIocHJv
Y2Vzcyk7CisgICAgZ2xvYmFsTmV0d29ya1Byb2Nlc3MoKSA9IHByb2Nlc3M7CiAKICAgICBzdHJ1
Y3QgX0NGTkZyYW1ld29ya3NTdHVicyBzdHVicyA9IHsKICAgICAgICAgLnZlcnNpb24gPSAwLApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0FQSUF0dGFjaG1lbnQuY3Bw
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0FQSUF0dGFjaG1lbnQuY3BwCmluZGV4IDZl
MjFmNmY5Y2Q0Njk1ZGE1ZTkzN2M5NGFjNmZkMjM2NWM2MmUxYzAuLmIzNGVjNzM2MzYzYzRmMWQy
YjBlNzYwYWQzZjRhOWQ1YmFjMWEzNGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0FQSS9BUElBdHRhY2htZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9B
UEkvQVBJQXR0YWNobWVudC5jcHAKQEAgLTQxLDcgKzQxLDcgQEAgUmVmPEF0dGFjaG1lbnQ+IEF0
dGFjaG1lbnQ6OmNyZWF0ZShjb25zdCBXVEY6OlN0cmluZyYgaWRlbnRpZmllciwgV2ViS2l0OjpX
ZWJQYWcKIAogQXR0YWNobWVudDo6QXR0YWNobWVudChjb25zdCBXVEY6OlN0cmluZyYgaWRlbnRp
ZmllciwgV2ViS2l0OjpXZWJQYWdlUHJveHkmIHdlYlBhZ2UpCiAgICAgOiBtX2lkZW50aWZpZXIo
aWRlbnRpZmllcikKLSAgICAsIG1fd2ViUGFnZShtYWtlV2Vha1B0cih3ZWJQYWdlKSkKKyAgICAs
IG1fd2ViUGFnZSh3ZWJQYWdlKQogewogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9BUEkvQVBJSFRUUENvb2tpZVN0b3JlLmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0FQSS9BUElIVFRQQ29va2llU3RvcmUuY3BwCmluZGV4IDVjNzliMzA4ODFkYTk5ZGNjYWY1
NGI5N2YzYTc5MDA2ODg1M2VmZGIuLjMzMTFlZWRiYjQ5ZGI3ZDJjYzE1YjI3NWE4YmQ5ZGIzNGQz
YmUxMTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9BUElIVFRQQ29v
a2llU3RvcmUuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9BUElIVFRQQ29v
a2llU3RvcmUuY3BwCkBAIC00NCw3ICs0NCw3IEBAIHVzaW5nIG5hbWVzcGFjZSBXZWJLaXQ7CiBu
YW1lc3BhY2UgQVBJIHsKIAogSFRUUENvb2tpZVN0b3JlOjpIVFRQQ29va2llU3RvcmUoV2ViS2l0
OjpXZWJzaXRlRGF0YVN0b3JlJiB3ZWJzaXRlRGF0YVN0b3JlKQotICAgIDogbV9vd25pbmdEYXRh
U3RvcmUobWFrZVdlYWtQdHIod2Vic2l0ZURhdGFTdG9yZSkpCisgICAgOiBtX293bmluZ0RhdGFT
dG9yZSh3ZWJzaXRlRGF0YVN0b3JlKQogewogfQogCkBAIC0xNTgsNyArMTU4LDcgQEAgcHJpdmF0
ZToKIAogdm9pZCBIVFRQQ29va2llU3RvcmU6OnJlZ2lzdGVyT2JzZXJ2ZXIoT2JzZXJ2ZXImIG9i
c2VydmVyKQogewotICAgIG1fb2JzZXJ2ZXJzLmFkZCgmb2JzZXJ2ZXIpOworICAgIG1fb2JzZXJ2
ZXJzLmFkZChvYnNlcnZlcik7CiAKICAgICBpZiAobV9jb29raWVNYW5hZ2VyUHJveHlPYnNlcnZl
ciB8fCAhbV9vd25pbmdEYXRhU3RvcmUpCiAgICAgICAgIHJldHVybjsKQEAgLTE2Nyw3ICsxNjcs
NyBAQCB2b2lkIEhUVFBDb29raWVTdG9yZTo6cmVnaXN0ZXJPYnNlcnZlcihPYnNlcnZlciYgb2Jz
ZXJ2ZXIpCiAKICAgICBtX2Nvb2tpZU1hbmFnZXJQcm94eU9ic2VydmVyID0gbWFrZVVuaXF1ZTxB
UElXZWJDb29raWVNYW5hZ2VyUHJveHlPYnNlcnZlcj4oKnRoaXMpOwogCi0gICAgbV9vYnNlcnZl
ZENvb2tpZU1hbmFnZXJQcm94eSA9IG1ha2VXZWFrUHRyKG1fb3duaW5nRGF0YVN0b3JlLT5uZXR3
b3JrUHJvY2VzcygpLmNvb2tpZU1hbmFnZXIoKSk7CisgICAgbV9vYnNlcnZlZENvb2tpZU1hbmFn
ZXJQcm94eSA9IG1fb3duaW5nRGF0YVN0b3JlLT5uZXR3b3JrUHJvY2VzcygpLmNvb2tpZU1hbmFn
ZXIoKTsKICAgICBtX29ic2VydmVkQ29va2llTWFuYWdlclByb3h5LT5yZWdpc3Rlck9ic2VydmVy
KG1fb3duaW5nRGF0YVN0b3JlLT5zZXNzaW9uSUQoKSwgKm1fY29va2llTWFuYWdlclByb3h5T2Jz
ZXJ2ZXIpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQVBJ
SW5zcGVjdG9yRXh0ZW5zaW9uLmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9BUElJ
bnNwZWN0b3JFeHRlbnNpb24uY3BwCmluZGV4IDg3MWMyNzNlYWYxMWRlYjkxYjlkMDJiZjQ1MGYw
ZDEwZWJjODM3NDUuLjgyYzhhYWEzNjM2NGJmN2E1OTZmYTBlMmM2MDZkYWI4NTBlYTRhNmMgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9BUElJbnNwZWN0b3JFeHRlbnNp
b24uY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9BUElJbnNwZWN0b3JFeHRl
bnNpb24uY3BwCkBAIC0zNyw3ICszNyw3IEBAIG5hbWVzcGFjZSBBUEkgewogCiBJbnNwZWN0b3JF
eHRlbnNpb246Okluc3BlY3RvckV4dGVuc2lvbihjb25zdCBXVEY6OlN0cmluZyYgaWRlbnRpZmll
ciwgV2ViS2l0OjpXZWJJbnNwZWN0b3JVSUV4dGVuc2lvbkNvbnRyb2xsZXJQcm94eSYgZXh0ZW5z
aW9uQ29udHJvbGxlclByb3h5KQogICAgIDogbV9pZGVudGlmaWVyKGlkZW50aWZpZXIpCi0gICAg
LCBtX2V4dGVuc2lvbkNvbnRyb2xsZXJQcm94eShtYWtlV2Vha1B0cihleHRlbnNpb25Db250cm9s
bGVyUHJveHkpKQorICAgICwgbV9leHRlbnNpb25Db250cm9sbGVyUHJveHkoZXh0ZW5zaW9uQ29u
dHJvbGxlclByb3h5KQogewogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9BUEkvQVBJV2ViQXV0aGVudGljYXRpb25QYW5lbC5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9BUEkvQVBJV2ViQXV0aGVudGljYXRpb25QYW5lbC5jcHAKaW5kZXggNTE1M2JlMTYwZmI2
ZDM0ZDM1NjAwODZmYWYwZTMzMzFlNDM1ODM3ZS4uOWM3YzVkZGRmMmY4ODU0NGQyZjQ5Zjc3NzU2
MDBjOTAwYThjNjAzOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0FQ
SVdlYkF1dGhlbnRpY2F0aW9uUGFuZWwuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0FQSS9BUElXZWJBdXRoZW50aWNhdGlvblBhbmVsLmNwcApAQCAtNTEsNyArNTEsNyBAQCBXZWJB
dXRoZW50aWNhdGlvblBhbmVsOjpXZWJBdXRoZW50aWNhdGlvblBhbmVsKCkKIAogV2ViQXV0aGVu
dGljYXRpb25QYW5lbDo6V2ViQXV0aGVudGljYXRpb25QYW5lbChjb25zdCBBdXRoZW50aWNhdG9y
TWFuYWdlciYgbWFuYWdlciwgY29uc3QgV1RGOjpTdHJpbmcmIHJwSWQsIGNvbnN0IFRyYW5zcG9y
dFNldCYgdHJhbnNwb3J0cywgQ2xpZW50RGF0YVR5cGUgdHlwZSwgY29uc3QgV1RGOjpTdHJpbmcm
IHVzZXJOYW1lKQogICAgIDogbV9jbGllbnQobWFrZVVuaXF1ZVJlZjxXZWJBdXRoZW50aWNhdGlv
blBhbmVsQ2xpZW50PigpKQotICAgICwgbV93ZWFrTWFuYWdlcihtYWtlV2Vha1B0cihtYW5hZ2Vy
KSkKKyAgICAsIG1fd2Vha01hbmFnZXIobWFuYWdlcikKICAgICAsIG1fcnBJZChycElkKQogICAg
ICwgbV9jbGllbnREYXRhVHlwZSh0eXBlKQogICAgICwgbV91c2VyTmFtZSh1c2VyTmFtZSkKQEAg
LTcxLDcgKzcxLDcgQEAgV2ViQXV0aGVudGljYXRpb25QYW5lbDo6fldlYkF1dGhlbnRpY2F0aW9u
UGFuZWwoKSA9IGRlZmF1bHQ7CiB2b2lkIFdlYkF1dGhlbnRpY2F0aW9uUGFuZWw6OmhhbmRsZVJl
cXVlc3QoV2ViQXV0aGVudGljYXRpb25SZXF1ZXN0RGF0YSYmIHJlcXVlc3QsIENhbGxiYWNrJiYg
Y2FsbGJhY2spCiB7CiAgICAgQVNTRVJUKG1fbWFuYWdlcik7Ci0gICAgcmVxdWVzdC53ZWFrUGFu
ZWwgPSBtYWtlV2Vha1B0cigqdGhpcyk7CisgICAgcmVxdWVzdC53ZWFrUGFuZWwgPSAqdGhpczsK
ICAgICBtX21hbmFnZXItPmhhbmRsZVJlcXVlc3QoV1RGTW92ZShyZXF1ZXN0KSwgV1RGTW92ZShj
YWxsYmFjaykpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkv
Q29jb2EvV0tXZWJWaWV3Lm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dL
V2ViVmlldy5tbQppbmRleCBkZDExOWZkNzM2OWNkZDliM2EyNWFiYWY1NDlhZjAyMDZhZjIzY2Jl
Li4xNzNkNzMwZDUyNTU4N2ZmNDIyZWViOTAyODdkMzI4ZDU3ZmU3ZDdmIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Lm1tCisrKyBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcubW0KQEAgLTM2MTQsNyArMzYx
NCw3IEBAIC0gKHZvaWQpX3JlbW92ZURhdGFEZXRlY3RlZExpbmtzOihkaXNwYXRjaF9ibG9ja190
KWNvbXBsZXRpb24KIHsKICAgICBUSFJPV19JRl9TVVNQRU5ERUQ7CiAjaWYgRU5BQkxFKERBVEFf
REVURUNUSU9OKQotICAgIF9wYWdlLT5yZW1vdmVEYXRhRGV0ZWN0ZWRMaW5rcyhbY29tcGxldGlv
biA9IG1ha2VCbG9ja1B0cihjb21wbGV0aW9uKSwgcGFnZSA9IG1ha2VXZWFrUHRyKF9wYWdlLmdl
dCgpKV0gKGF1dG8mIHJlc3VsdCkgeworICAgIF9wYWdlLT5yZW1vdmVEYXRhRGV0ZWN0ZWRMaW5r
cyhbY29tcGxldGlvbiA9IG1ha2VCbG9ja1B0cihjb21wbGV0aW9uKSwgcGFnZSA9IFdlYWtQdHIg
eyBfcGFnZS5nZXQoKSB9XSAoYXV0byYgcmVzdWx0KSB7CiAgICAgICAgIGlmIChwYWdlKQogICAg
ICAgICAgICAgcGFnZS0+c2V0RGF0YURldGVjdGlvblJlc3VsdChyZXN1bHQpOwogICAgICAgICBp
ZiAoY29tcGxldGlvbikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9D
b2NvYS9XS1dlYlZpZXdUZXN0aW5nLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0Nv
Y29hL1dLV2ViVmlld1Rlc3RpbmcubW0KaW5kZXggNzNjYTkzNDQ0ZTA5MGM2NzhmYmY4NGM4NDM4
Yjg5ODU0MzRiOGExNi4uNDg1NDA0ODNjMzFhZGU4ZjI1MTg0N2NmYmQ4YzYzOTU5N2M2MjhlZSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlld1Rl
c3RpbmcubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmll
d1Rlc3RpbmcubW0KQEAgLTYyOSw3ICs2MjksNyBAQCAtIChpZClpbml0V2l0aENvb3JkaW5hdG9y
OihXZWJDb3JlOjpNZWRpYVNlc3Npb25Db29yZGluYXRvckNsaWVudCopY29vcmRpbmF0b3IKICAg
ICBzZWxmID0gW3N1cGVyIGluaXRdOwogICAgIGlmICghc2VsZikKICAgICAgICAgcmV0dXJuIG5p
bDsKLSAgICBtX2Nvb3JkaW5hdG9yQ2xpZW50ID0gbWFrZVdlYWtQdHIoY29vcmRpbmF0b3IpOwor
ICAgIG1fY29vcmRpbmF0b3JDbGllbnQgPSBjb29yZGluYXRvcjsKICAgICByZXR1cm4gc2VsZjsK
IH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL19XS1dl
YkF1dGhlbnRpY2F0aW9uUGFuZWwubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29j
b2EvX1dLV2ViQXV0aGVudGljYXRpb25QYW5lbC5tbQppbmRleCBjN2QwNjgxNmFjMWZlY2Q3YTJm
MDczOTZiNzcyZWY4ZmZiYmEwMGZlLi5jNzdkZWEwMjhmYzE5MDAxZDA4NmRiNjRiZjhhNDViYjkw
NzMyYjAxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dL
V2ViQXV0aGVudGljYXRpb25QYW5lbC5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9B
UEkvQ29jb2EvX1dLV2ViQXV0aGVudGljYXRpb25QYW5lbC5tbQpAQCAtMTM5LDcgKzEzOSw3IEBA
IC0gKGlkIDxfV0tXZWJBdXRoZW50aWNhdGlvblBhbmVsRGVsZWdhdGU+KWRlbGVnYXRlCiAtICh2
b2lkKXNldERlbGVnYXRlOihpZDxfV0tXZWJBdXRoZW50aWNhdGlvblBhbmVsRGVsZWdhdGU+KWRl
bGVnYXRlCiB7CiAgICAgYXV0byBjbGllbnQgPSBXVEY6Om1ha2VVbmlxdWVSZWY8V2ViS2l0OjpX
ZWJBdXRoZW50aWNhdGlvblBhbmVsQ2xpZW50PihzZWxmLCBkZWxlZ2F0ZSk7Ci0gICAgX2NsaWVu
dCA9IG1ha2VXZWFrUHRyKGNsaWVudC5nZXQoKSk7CisgICAgX2NsaWVudCA9IGNsaWVudC5nZXQo
KTsKICAgICBfcGFuZWwtPnNldENsaWVudChXVEZNb3ZlKGNsaWVudCkpOwogfQogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvaW9zL1dLV2ViVmlld0lPUy5tbSBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9pb3MvV0tXZWJWaWV3SU9TLm1tCmluZGV4IDQzMGQz
MzJkZjA0YzNjODdhYTQ1YjAwYzllYjczZDdiMmViZWFmNTIuLmY5MGFiYTlhZDk5ZGIzNTNiNDQy
MzEwMTg2NmZhMWU1OGRkNTRiOTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0FQSS9pb3MvV0tXZWJWaWV3SU9TLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQ
SS9pb3MvV0tXZWJWaWV3SU9TLm1tCkBAIC0yOTQ4LDcgKzI5NDgsNyBAQCAtICh2b2lkKV9zZXRU
ZXh0Q29sb3I6KFVJQ29sb3IgKiljb2xvciBzZW5kZXI6KGlkKXNlbmRlcgogLSAodm9pZClfZGV0
ZWN0RGF0YVdpdGhUeXBlczooV0tEYXRhRGV0ZWN0b3JUeXBlcyl0eXBlcyBjb21wbGV0aW9uSGFu
ZGxlcjooZGlzcGF0Y2hfYmxvY2tfdCljb21wbGV0aW9uCiB7CiAjaWYgRU5BQkxFKERBVEFfREVU
RUNUSU9OKQotICAgIF9wYWdlLT5kZXRlY3REYXRhSW5BbGxGcmFtZXMoZnJvbVdLRGF0YURldGVj
dG9yVHlwZXModHlwZXMpLCBbY29tcGxldGlvbiA9IG1ha2VCbG9ja1B0cihjb21wbGV0aW9uKSwg
cGFnZSA9IG1ha2VXZWFrUHRyKF9wYWdlLmdldCgpKV0gKGF1dG8mIHJlc3VsdCkgeworICAgIF9w
YWdlLT5kZXRlY3REYXRhSW5BbGxGcmFtZXMoZnJvbVdLRGF0YURldGVjdG9yVHlwZXModHlwZXMp
LCBbY29tcGxldGlvbiA9IG1ha2VCbG9ja1B0cihjb21wbGV0aW9uKSwgcGFnZSA9IFdlYWtQdHIg
eyBfcGFnZS5nZXQoKSB9XSAoYXV0byYgcmVzdWx0KSB7CiAgICAgICAgIGlmIChwYWdlKQogICAg
ICAgICAgICAgcGFnZS0+c2V0RGF0YURldGVjdGlvblJlc3VsdChyZXN1bHQpOwogICAgICAgICBp
ZiAoY29tcGxldGlvbikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29h
L0dyb3VwQWN0aXZpdGllcy9Hcm91cEFjdGl2aXRpZXNDb29yZGluYXRvci5tbSBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL0NvY29hL0dyb3VwQWN0aXZpdGllcy9Hcm91cEFjdGl2aXRpZXNDb29y
ZGluYXRvci5tbQppbmRleCAxY2RjYmFiNDdmYzIwZDQzNGUxYjZmNmJiM2VkMDI2MzU0NTc4MWFi
Li5iM2I3ODJlY2YzMTFiZTU0YWQyM2YwZTZjOGVhNjBjNjc5N2FmNGE5IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9Hcm91cEFjdGl2aXRpZXMvR3JvdXBBY3Rpdml0
aWVzQ29vcmRpbmF0b3IubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvR3Jv
dXBBY3Rpdml0aWVzL0dyb3VwQWN0aXZpdGllc0Nvb3JkaW5hdG9yLm1tCkBAIC00OCw3ICs0OCw3
IEBAIC0gKGlkKWluaXRXaXRoUGFyZW50OihXZWJLaXQ6Okdyb3VwQWN0aXZpdGllc0Nvb3JkaW5h
dG9yJilwYXJlbnQKICAgICBpZiAoIXNlbGYpCiAgICAgICAgIHJldHVybiBuaWw7CiAKLSAgICBf
cGFyZW50ID0gbWFrZVdlYWtQdHIocGFyZW50KTsKKyAgICBfcGFyZW50ID0gcGFyZW50OwogICAg
IHJldHVybiBzZWxmOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9D
b2NvYS9MZWdhY3lDdXN0b21Qcm90b2NvbE1hbmFnZXJDbGllbnQubW0gYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9Db2NvYS9MZWdhY3lDdXN0b21Qcm90b2NvbE1hbmFnZXJDbGllbnQubW0KaW5k
ZXggN2ZiN2Y4YWEzNmUwZTVmZmI4M2M2MjAyYzZiOTQ0Yzg0N2ZhYmJjOS4uYjQxZDI2YzgyN2I1
MjI2NTcwOTZkNDFhODI0NWNkZWVmZmZiOWE4NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvQ29jb2EvTGVnYWN5Q3VzdG9tUHJvdG9jb2xNYW5hZ2VyQ2xpZW50Lm1tCisrKyBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL0xlZ2FjeUN1c3RvbVByb3RvY29sTWFuYWdl
ckNsaWVudC5tbQpAQCAtNTIsNyArNTIsNyBAQCAtIChpZClpbml0V2l0aExlZ2FjeUN1c3RvbVBy
b3RvY29sTWFuYWdlclByb3h5OihXZWJLaXQ6OkxlZ2FjeUN1c3RvbVByb3RvY29sTWFuYQogICAg
ICAgICByZXR1cm4gbmlsOwogCiAgICAgQVNTRVJUKHJlcXVlc3QpOwotICAgIF9jdXN0b21Qcm90
b2NvbE1hbmFnZXJQcm94eSA9IG1ha2VXZWFrUHRyKGN1c3RvbVByb3RvY29sTWFuYWdlclByb3h5
KTsKKyAgICBfY3VzdG9tUHJvdG9jb2xNYW5hZ2VyUHJveHkgPSBjdXN0b21Qcm90b2NvbE1hbmFn
ZXJQcm94eTsKICAgICBfY3VzdG9tUHJvdG9jb2xJRCA9IGN1c3RvbVByb3RvY29sSUQ7CiAgICAg
X3N0b3JhZ2VQb2xpY3kgPSBOU1VSTENhY2hlU3RvcmFnZU5vdEFsbG93ZWQ7CiAgICAgQUxMT1df
REVQUkVDQVRFRF9ERUNMQVJBVElPTlNfQkVHSU4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL0NvY29hL05hdmlnYXRpb25TdGF0ZS5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0NvY29hL05hdmlnYXRpb25TdGF0ZS5tbQppbmRleCBkNGU4ZDZlYmRlZjkyZDRiMmZhMGYx
NzM3NTY4NDYzMjNhZTA3NTFlLi44ZmI4ODVlMDU5ODkzYWNjZjhjMmQwY2E1NDIxZGUyODM4YTM1
YTQ5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9OYXZpZ2F0aW9u
U3RhdGUubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvTmF2aWdhdGlvblN0
YXRlLm1tCkBAIC0xMTEsNyArMTExLDcgQEAgTmF2aWdhdGlvblN0YXRlOjpOYXZpZ2F0aW9uU3Rh
dGUoV0tXZWJWaWV3ICp3ZWJWaWV3KQogICAgIEFTU0VSVChtX3dlYlZpZXctPl9wYWdlKTsKICAg
ICBBU1NFUlQoIW5hdmlnYXRpb25TdGF0ZXMoKS5jb250YWlucyhtX3dlYlZpZXctPl9wYWdlLmdl
dCgpKSk7CiAKLSAgICBuYXZpZ2F0aW9uU3RhdGVzKCkuYWRkKG1fd2ViVmlldy0+X3BhZ2UuZ2V0
KCksIG1ha2VXZWFrUHRyKCp0aGlzKSk7CisgICAgbmF2aWdhdGlvblN0YXRlcygpLmFkZChtX3dl
YlZpZXctPl9wYWdlLmdldCgpLCAqdGhpcyk7CiAgICAgbV93ZWJWaWV3LT5fcGFnZS0+cGFnZUxv
YWRTdGF0ZSgpLmFkZE9ic2VydmVyKCp0aGlzKTsKIH0KIApAQCAtMzE0LDcgKzMxNCw3IEBAIHZv
aWQgTmF2aWdhdGlvblN0YXRlOjpkaWRGaXJzdFBhaW50KCkKIH0KIAogTmF2aWdhdGlvblN0YXRl
OjpOYXZpZ2F0aW9uQ2xpZW50OjpOYXZpZ2F0aW9uQ2xpZW50KE5hdmlnYXRpb25TdGF0ZSYgbmF2
aWdhdGlvblN0YXRlKQotICAgIDogbV9uYXZpZ2F0aW9uU3RhdGUobWFrZVdlYWtQdHIobmF2aWdh
dGlvblN0YXRlKSkKKyAgICA6IG1fbmF2aWdhdGlvblN0YXRlKG5hdmlnYXRpb25TdGF0ZSkKIHsK
IH0KIApAQCAtNDM1LDcgKzQzNSw3IEBAIHN0YXRpYyB2b2lkIHRyeUludGVyY2VwdE5hdmlnYXRp
b24oUmVmPEFQSTo6TmF2aWdhdGlvbkFjdGlvbj4mJiBuYXZpZ2F0aW9uQWN0aW9uCiAjaWYgSEFW
RShBUFBfTElOS1MpCiAgICAgaWYgKG5hdmlnYXRpb25BY3Rpb24tPnNob3VsZE9wZW5BcHBMaW5r
cygpKSB7CiAgICAgICAgIGF1dG8gdXJsID0gbmF2aWdhdGlvbkFjdGlvbi0+cmVxdWVzdCgpLnVy
bCgpOwotICAgICAgICBhdXRvKiBsb2NhbENvbXBsZXRpb25IYW5kbGVyID0gbmV3IFdURjo6RnVu
Y3Rpb248dm9pZCAoYm9vbCk+KFtuYXZpZ2F0aW9uQWN0aW9uID0gV1RGTW92ZShuYXZpZ2F0aW9u
QWN0aW9uKSwgd2Vha1BhZ2UgPSBtYWtlV2Vha1B0cihwYWdlKSwgY29tcGxldGlvbkhhbmRsZXIg
PSBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKV0gKGJvb2wgc3VjY2VzcykgbXV0YWJsZSB7Cisg
ICAgICAgIGF1dG8qIGxvY2FsQ29tcGxldGlvbkhhbmRsZXIgPSBuZXcgV1RGOjpGdW5jdGlvbjx2
b2lkIChib29sKT4oW25hdmlnYXRpb25BY3Rpb24gPSBXVEZNb3ZlKG5hdmlnYXRpb25BY3Rpb24p
LCB3ZWFrUGFnZSA9IFdlYWtQdHIgeyBwYWdlIH0sIGNvbXBsZXRpb25IYW5kbGVyID0gV1RGTW92
ZShjb21wbGV0aW9uSGFuZGxlcildIChib29sIHN1Y2Nlc3MpIG11dGFibGUgewogICAgICAgICAg
ICAgQVNTRVJUKFJ1bkxvb3A6OmlzTWFpbigpKTsKICAgICAgICAgICAgIGlmICghc3VjY2VzcyAm
JiB3ZWFrUGFnZSkgewogICAgICAgICAgICAgICAgIHRyeVNPQXV0aG9yaXphdGlvbihXVEZNb3Zl
KG5hdmlnYXRpb25BY3Rpb24pLCAqd2Vha1BhZ2UsIFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIp
KTsKQEAgLTEyODgsNyArMTI4OCw3IEBAIHZvaWQgTmF2aWdhdGlvblN0YXRlOjpOYXZpZ2F0aW9u
Q2xpZW50OjpkZWNpZGVQb2xpY3lGb3JTT0F1dGhvcml6YXRpb25Mb2FkKFdlYlBhCiAvLyBIaXN0
b3J5RGVsZWdhdGVQcml2YXRlIHN1cHBvcnQKICAgICAKIE5hdmlnYXRpb25TdGF0ZTo6SGlzdG9y
eUNsaWVudDo6SGlzdG9yeUNsaWVudChOYXZpZ2F0aW9uU3RhdGUmIG5hdmlnYXRpb25TdGF0ZSkK
LSAgICA6IG1fbmF2aWdhdGlvblN0YXRlKG1ha2VXZWFrUHRyKG5hdmlnYXRpb25TdGF0ZSkpCisg
ICAgOiBtX25hdmlnYXRpb25TdGF0ZShuYXZpZ2F0aW9uU3RhdGUpCiB7CiB9CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1NPQXV0aG9yaXphdGlvbi9Qb3BVcFNP
QXV0aG9yaXphdGlvblNlc3Npb24ubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9T
T0F1dGhvcml6YXRpb24vUG9wVXBTT0F1dGhvcml6YXRpb25TZXNzaW9uLm1tCmluZGV4IDlmMWVi
YzhmZWQ5NTJiYWY5NmYwZDdmNjVlZjg4NDI1NDkzYTkyYTIuLmUxZGE5NmY4MjU5MzJjZjFlZGQ1
M2IyNzA3MTc1YTA4OTRlZTIxMzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0NvY29hL1NPQXV0aG9yaXphdGlvbi9Qb3BVcFNPQXV0aG9yaXphdGlvblNlc3Npb24ubW0KKysr
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvU09BdXRob3JpemF0aW9uL1BvcFVwU09B
dXRob3JpemF0aW9uU2Vzc2lvbi5tbQpAQCAtNTIsNyArNTIsNyBAQCBAaW1wbGVtZW50YXRpb24g
V0tTT1NlY3JldERlbGVnYXRlCiAtIChpbnN0YW5jZXR5cGUpaW5pdFdpdGhTZXNzaW9uOihXZWJL
aXQ6OlBvcFVwU09BdXRob3JpemF0aW9uU2Vzc2lvbiAqKXNlc3Npb24KIHsKICAgICBpZiAoKHNl
bGYgPSBbc3VwZXIgaW5pdF0pKSB7Ci0gICAgICAgIF9zZXNzaW9uID0gbWFrZVdlYWtQdHIoc2Vz
c2lvbik7CisgICAgICAgIF9zZXNzaW9uID0gc2Vzc2lvbjsKICAgICAgICAgX2lzRmlyc3ROYXZp
Z2F0aW9uID0gWUVTOwogICAgIH0KICAgICByZXR1cm4gc2VsZjsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1NPQXV0aG9yaXphdGlvbi9TT0F1dGhvcml6YXRpb25T
ZXNzaW9uLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvU09BdXRob3JpemF0aW9u
L1NPQXV0aG9yaXphdGlvblNlc3Npb24ubW0KaW5kZXggYjllZjBiY2VlZDUyNzY0OWE0M2VkZmE4
MDliMzYyY2Q4YzI1Nzc3Zi4uNzIwNDMzMmVhODgyZGUxMWMyYjY5MTk0ODQxM2E1MGY4ZTAzYjc4
MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvU09BdXRob3JpemF0
aW9uL1NPQXV0aG9yaXphdGlvblNlc3Npb24ubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvQ29jb2EvU09BdXRob3JpemF0aW9uL1NPQXV0aG9yaXphdGlvblNlc3Npb24ubW0KQEAgLTg5
LDcgKzg5LDcgQEAgc3RhdGljIGJvb2wgaXNTYW1lT3JpZ2luKGNvbnN0IFdlYkNvcmU6OlJlc291
cmNlUmVxdWVzdCYgcmVxdWVzdCwgY29uc3QgV2ViQ29yZToKIFNPQXV0aG9yaXphdGlvblNlc3Np
b246OlNPQXV0aG9yaXphdGlvblNlc3Npb24oU09BdXRob3JpemF0aW9uICpzb0F1dGhvcml6YXRp
b24sIFJlZjxBUEk6Ok5hdmlnYXRpb25BY3Rpb24+JiYgbmF2aWdhdGlvbkFjdGlvbiwgV2ViUGFn
ZVByb3h5JiBwYWdlLCBJbml0aWF0aW5nQWN0aW9uIGFjdGlvbikKICAgICA6IG1fc29BdXRob3Jp
emF0aW9uKHNvQXV0aG9yaXphdGlvbikKICAgICAsIG1fbmF2aWdhdGlvbkFjdGlvbihXVEZNb3Zl
KG5hdmlnYXRpb25BY3Rpb24pKQotICAgICwgbV9wYWdlKG1ha2VXZWFrUHRyKHBhZ2UpKQorICAg
ICwgbV9wYWdlKHBhZ2UpCiAgICAgLCBtX2FjdGlvbihhY3Rpb24pCiB7CiB9CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9VSURlbGVnYXRlLm1tIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvQ29jb2EvVUlEZWxlZ2F0ZS5tbQppbmRleCBkNzhmNGNjMGQ1NjU1OTRj
MGU4ODFhNDU4YmZkMjM4Mjc1MTIyNDVhLi4xMDdmYTI0Y2UxNDc1MzQwN2RmYWNmMDU2MDg0ODZi
NWQ5ZGEyZWVkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9VSURl
bGVnYXRlLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1VJRGVsZWdhdGUu
bW0KQEAgLTE5Nyw3ICsxOTcsNyBAQCB2b2lkIFVJRGVsZWdhdGU6OnNldERlbGVnYXRlKGlkIDxX
S1VJRGVsZWdhdGU+IGRlbGVnYXRlKQogCiAjaWYgRU5BQkxFKENPTlRFWFRfTUVOVVMpCiBVSURl
bGVnYXRlOjpDb250ZXh0TWVudUNsaWVudDo6Q29udGV4dE1lbnVDbGllbnQoVUlEZWxlZ2F0ZSYg
dWlEZWxlZ2F0ZSkKLSAgICA6IG1fdWlEZWxlZ2F0ZShtYWtlV2Vha1B0cih1aURlbGVnYXRlKSkK
KyAgICA6IG1fdWlEZWxlZ2F0ZSh1aURlbGVnYXRlKQogewogfQogCkBAIC0yNDIsNyArMjQyLDcg
QEAgdm9pZCBVSURlbGVnYXRlOjpDb250ZXh0TWVudUNsaWVudDo6bWVudUZyb21Qcm9wb3NlZE1l
bnUoV2ViUGFnZVByb3h5JiwgTlNNZW51ICoKICNlbmRpZgogCiBVSURlbGVnYXRlOjpVSUNsaWVu
dDo6VUlDbGllbnQoVUlEZWxlZ2F0ZSYgdWlEZWxlZ2F0ZSkKLSAgICA6IG1fdWlEZWxlZ2F0ZSht
YWtlV2Vha1B0cih1aURlbGVnYXRlKSkKKyAgICA6IG1fdWlEZWxlZ2F0ZSh1aURlbGVnYXRlKQog
ewogfQogCkBAIC00MjMsNyArNDIzLDcgQEAgdm9pZCBVSURlbGVnYXRlOjpVSUNsaWVudDo6ZGVj
aWRlUG9saWN5Rm9yR2VvbG9jYXRpb25QZXJtaXNzaW9uUmVxdWVzdChXZWJLaXQ6OlcKICAgICBp
ZiAobV91aURlbGVnYXRlLT5tX2RlbGVnYXRlTWV0aG9kcy53ZWJWaWV3UmVxdWVzdEdlb2xvY2F0
aW9uUGVybWlzc2lvbkZvck9yaWdpbkRlY2lzaW9uSGFuZGxlcikgewogICAgICAgICBhdXRvIHNl
Y3VyaXR5T3JpZ2luID0gV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW46OmNyZWF0ZUZyb21TdHJpbmco
cGFnZS5wYWdlTG9hZFN0YXRlKCkuYWN0aXZlVVJMKCkpOwogICAgICAgICBhdXRvIGNoZWNrZXIg
PSBDb21wbGV0aW9uSGFuZGxlckNhbGxDaGVja2VyOjpjcmVhdGUoZGVsZWdhdGUuZ2V0KCksIEBz
ZWxlY3Rvcihfd2ViVmlldzpyZXF1ZXN0R2VvbG9jYXRpb25QZXJtaXNzaW9uRm9yT3JpZ2luOmlu
aXRpYXRlZEJ5RnJhbWU6ZGVjaXNpb25IYW5kbGVyOikpOwotICAgICAgICBhdXRvIGRlY2lzaW9u
SGFuZGxlciA9IG1ha2VCbG9ja1B0cihbY29tcGxldGlvbkhhbmRsZXIgPSBzdGQ6OmV4Y2hhbmdl
KGNvbXBsZXRpb25IYW5kbGVyLCBudWxscHRyKSwgc2VjdXJpdHlPcmlnaW4gPSBzZWN1cml0eU9y
aWdpbi0+ZGF0YSgpLCBjaGVja2VyID0gV1RGTW92ZShjaGVja2VyKSwgcGFnZSA9IG1ha2VXZWFr
UHRyKHBhZ2UpXSAoV0tQZXJtaXNzaW9uRGVjaXNpb24gZGVjaXNpb24pIG11dGFibGUgeworICAg
ICAgICBhdXRvIGRlY2lzaW9uSGFuZGxlciA9IG1ha2VCbG9ja1B0cihbY29tcGxldGlvbkhhbmRs
ZXIgPSBzdGQ6OmV4Y2hhbmdlKGNvbXBsZXRpb25IYW5kbGVyLCBudWxscHRyKSwgc2VjdXJpdHlP
cmlnaW4gPSBzZWN1cml0eU9yaWdpbi0+ZGF0YSgpLCBjaGVja2VyID0gV1RGTW92ZShjaGVja2Vy
KSwgcGFnZSA9IFdlYWtQdHIgeyBwYWdlIH1dIChXS1Blcm1pc3Npb25EZWNpc2lvbiBkZWNpc2lv
bikgbXV0YWJsZSB7CiAgICAgICAgICAgICBpZiAoY2hlY2tlci0+Y29tcGxldGlvbkhhbmRsZXJI
YXNCZWVuQ2FsbGVkKCkpCiAgICAgICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAgICAgY2hl
Y2tlci0+ZGlkQ2FsbENvbXBsZXRpb25IYW5kbGVyKCk7CkBAIC0xMDYxLDcgKzEwNjEsNyBAQCB2
b2lkIFVJRGVsZWdhdGU6OlVJQ2xpZW50OjpzaG91bGRBbGxvd0RldmljZU9yaWVudGF0aW9uQW5k
TW90aW9uQWNjZXNzKFdlYktpdDo6VwogCiAgICAgYXV0byBkZWxlZ2F0ZSA9IG1fdWlEZWxlZ2F0
ZS0+bV9kZWxlZ2F0ZS5nZXQoKTsKICAgICBhdXRvIGNoZWNrZXIgPSBDb21wbGV0aW9uSGFuZGxl
ckNhbGxDaGVja2VyOjpjcmVhdGUoZGVsZWdhdGUuZ2V0KCksIEBzZWxlY3Rvcih3ZWJWaWV3OnJl
cXVlc3REZXZpY2VPcmllbnRhdGlvbkFuZE1vdGlvblBlcm1pc3Npb25Gb3JPcmlnaW46aW5pdGlh
dGVkQnlGcmFtZTpkZWNpc2lvbkhhbmRsZXI6KSk7Ci0gICAgYXV0byBkZWNpc2lvbkhhbmRsZXIg
PSBtYWtlQmxvY2tQdHIoW2NvbXBsZXRpb25IYW5kbGVyID0gV1RGTW92ZShjb21wbGV0aW9uSGFu
ZGxlciksIHNlY3VyaXR5T3JpZ2luID0gc2VjdXJpdHlPcmlnaW4tPmRhdGEoKSwgY2hlY2tlciA9
IFdURk1vdmUoY2hlY2tlciksIHBhZ2UgPSBtYWtlV2Vha1B0cihwYWdlKV0oV0tQZXJtaXNzaW9u
RGVjaXNpb24gZGVjaXNpb24pIG11dGFibGUgeworICAgIGF1dG8gZGVjaXNpb25IYW5kbGVyID0g
bWFrZUJsb2NrUHRyKFtjb21wbGV0aW9uSGFuZGxlciA9IFdURk1vdmUoY29tcGxldGlvbkhhbmRs
ZXIpLCBzZWN1cml0eU9yaWdpbiA9IHNlY3VyaXR5T3JpZ2luLT5kYXRhKCksIGNoZWNrZXIgPSBX
VEZNb3ZlKGNoZWNrZXIpLCBwYWdlID0gV2Vha1B0ciB7IHBhZ2UgfV0oV0tQZXJtaXNzaW9uRGVj
aXNpb24gZGVjaXNpb24pIG11dGFibGUgewogICAgICAgICBpZiAoY2hlY2tlci0+Y29tcGxldGlv
bkhhbmRsZXJIYXNCZWVuQ2FsbGVkKCkpCiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIGNo
ZWNrZXItPmRpZENhbGxDb21wbGV0aW9uSGFuZGxlcigpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvQ29jb2EvV2ViUGFzdGVib2FyZFByb3h5Q29jb2EubW0gYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9XZWJQYXN0ZWJvYXJkUHJveHlDb2NvYS5tbQppbmRleCA3
Yzg5YTFiZDhhZmE2ZTljOTQyNzg0ZTBkNzVmY2E5NDMyYTBmYjMwLi5iYWQxYWY4MmFiYWMxNmFm
NWZmYmZiOWU5Y2FjOWYyNmY3NWVmMjZiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9Db2NvYS9XZWJQYXN0ZWJvYXJkUHJveHlDb2NvYS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9Db2NvYS9XZWJQYXN0ZWJvYXJkUHJveHlDb2NvYS5tbQpAQCAtNzUsNyArNzUs
NyBAQCB2b2lkIFdlYlBhc3RlYm9hcmRQcm94eTo6Z3JhbnRBY2Nlc3MoV2ViUHJvY2Vzc1Byb3h5
JiBwcm9jZXNzLCBjb25zdCBTdHJpbmcmIHBhcwogICAgICAgICByZXR1cm47CiAgICAgfQogCi0g
ICAgbV9wYXN0ZWJvYXJkTmFtZVRvQWNjZXNzSW5mb3JtYXRpb25NYXAuc2V0KHBhc3RlYm9hcmRO
YW1lLCBQYXN0ZWJvYXJkQWNjZXNzSW5mb3JtYXRpb24geyBjaGFuZ2VDb3VudCwge3sgbWFrZVdl
YWtQdHIocHJvY2VzcyksIHR5cGUgfX0gfSk7CisgICAgbV9wYXN0ZWJvYXJkTmFtZVRvQWNjZXNz
SW5mb3JtYXRpb25NYXAuc2V0KHBhc3RlYm9hcmROYW1lLCBQYXN0ZWJvYXJkQWNjZXNzSW5mb3Jt
YXRpb24geyBjaGFuZ2VDb3VudCwge3sgcHJvY2VzcywgdHlwZSB9fSB9KTsKIH0KIAogdm9pZCBX
ZWJQYXN0ZWJvYXJkUHJveHk6OnJldm9rZUFjY2VzcyhXZWJQcm9jZXNzUHJveHkmIHByb2Nlc3Mp
CkBAIC0xMzUsNyArMTM1LDcgQEAgdm9pZCBXZWJQYXN0ZWJvYXJkUHJveHk6OmRpZE1vZGlmeUNv
bnRlbnRzT2ZQYXN0ZWJvYXJkKElQQzo6Q29ubmVjdGlvbiYgY29ubmVjdGkKICAgICBhdXRvIGNo
YW5nZUNvdW50QW5kUHJvY2Vzc2VzID0gbV9wYXN0ZWJvYXJkTmFtZVRvQWNjZXNzSW5mb3JtYXRp
b25NYXAuZmluZChwYXN0ZWJvYXJkTmFtZSk7CiAgICAgaWYgKGNoYW5nZUNvdW50QW5kUHJvY2Vz
c2VzICE9IG1fcGFzdGVib2FyZE5hbWVUb0FjY2Vzc0luZm9ybWF0aW9uTWFwLmVuZCgpICYmIHBy
ZXZpb3VzQ2hhbmdlQ291bnQgPT0gY2hhbmdlQ291bnRBbmRQcm9jZXNzZXMtPnZhbHVlLmNoYW5n
ZUNvdW50KSB7CiAgICAgICAgIGlmIChhdXRvIGFjY2Vzc1R5cGUgPSBjaGFuZ2VDb3VudEFuZFBy
b2Nlc3Nlcy0+dmFsdWUuYWNjZXNzVHlwZSgqcHJvY2VzcykpCi0gICAgICAgICAgICBjaGFuZ2VD
b3VudEFuZFByb2Nlc3Nlcy0+dmFsdWUgPSBQYXN0ZWJvYXJkQWNjZXNzSW5mb3JtYXRpb24geyBu
ZXdDaGFuZ2VDb3VudCwge3sgbWFrZVdlYWtQdHIoKnByb2Nlc3MpLCAqYWNjZXNzVHlwZSB9fSB9
OworICAgICAgICAgICAgY2hhbmdlQ291bnRBbmRQcm9jZXNzZXMtPnZhbHVlID0gUGFzdGVib2Fy
ZEFjY2Vzc0luZm9ybWF0aW9uIHsgbmV3Q2hhbmdlQ291bnQsIHt7ICpwcm9jZXNzLCAqYWNjZXNz
VHlwZSB9fSB9OwogICAgIH0KIH0KIApAQCAtNjg5LDcgKzY4OSw3IEBAIHZvaWQgV2ViUGFzdGVi
b2FyZFByb3h5OjpQYXN0ZWJvYXJkQWNjZXNzSW5mb3JtYXRpb246OmdyYW50QWNjZXNzKFdlYlBy
b2Nlc3NQcm94CiAgICAgfSk7CiAKICAgICBpZiAobWF0Y2hJbmRleCA9PSBub3RGb3VuZCkgewot
ICAgICAgICBwcm9jZXNzZXMuYXBwZW5kKHsgbWFrZVdlYWtQdHIocHJvY2VzcyksIHR5cGUgfSk7
CisgICAgICAgIHByb2Nlc3Nlcy5hcHBlbmQoeyBwcm9jZXNzLCB0eXBlIH0pOwogICAgICAgICBy
ZXR1cm47CiAgICAgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2Nv
YS9XZWJQcm9jZXNzUG9vbENvY29hLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2Ev
V2ViUHJvY2Vzc1Bvb2xDb2NvYS5tbQppbmRleCA2NGNhNDE2NTUwOTdlMTk2NzkwNDZjYTM5N2Zh
ZTM5ZGJjOTM3OGIzLi40YzIxMWY1ZmNlYmNkMTE0MTg0N2RlODExMWVhMTI0ODBjNzAzNmYzIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9XZWJQcm9jZXNzUG9vbENv
Y29hLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dlYlByb2Nlc3NQb29s
Q29jb2EubW0KQEAgLTIxOCw3ICsyMTgsNyBAQCBzdGF0aWMgQWNjZXNzaWJpbGl0eVByZWZlcmVu
Y2VzIGFjY2Vzc2liaWxpdHlQcmVmZXJlbmNlcygpCiAjaWYgSEFWRShNRURJQV9BQ0NFU1NJQklM
SVRZX0ZSQU1FV09SSykKIHZvaWQgV2ViUHJvY2Vzc1Bvb2w6OnNldE1lZGlhQWNjZXNzaWJpbGl0
eVByZWZlcmVuY2VzKFdlYlByb2Nlc3NQcm94eSYgcHJvY2VzcykKIHsKLSAgICBkaXNwYXRjaF9h
c3luYyhkaXNwYXRjaF9nZXRfZ2xvYmFsX3F1ZXVlKERJU1BBVENIX1FVRVVFX1BSSU9SSVRZX0RF
RkFVTFQsIDApLCBbd2Vha1Byb2Nlc3MgPSBtYWtlV2Vha1B0cihwcm9jZXNzKV0geworICAgIGRp
c3BhdGNoX2FzeW5jKGRpc3BhdGNoX2dldF9nbG9iYWxfcXVldWUoRElTUEFUQ0hfUVVFVUVfUFJJ
T1JJVFlfREVGQVVMVCwgMCksIFt3ZWFrUHJvY2VzcyA9IFdlYWtQdHIgeyBwcm9jZXNzIH1dIHsK
ICAgICAgICAgYXV0byBjYXB0aW9uRGlzcGxheU1vZGUgPSBXZWJDb3JlOjpDYXB0aW9uVXNlclBy
ZWZlcmVuY2VzTWVkaWFBRjo6cGxhdGZvcm1DYXB0aW9uRGlzcGxheU1vZGUoKTsKICAgICAgICAg
YXV0byBwcmVmZXJyZWRMYW5ndWFnZXMgPSBXZWJDb3JlOjpDYXB0aW9uVXNlclByZWZlcmVuY2Vz
TWVkaWFBRjo6cGxhdGZvcm1QcmVmZXJyZWRMYW5ndWFnZXMoKTsKICAgICAgICAgY2FsbE9uTWFp
blJ1bkxvb3AoW3dlYWtQcm9jZXNzLCBjYXB0aW9uRGlzcGxheU1vZGUsIHByZWZlcnJlZExhbmd1
YWdlcyA9IFdURk1vdmUocHJlZmVycmVkTGFuZ3VhZ2VzKS5pc29sYXRlZENvcHkoKV0gewpAQCAt
NzE2LDcgKzcxNiw3IEBAIHZvaWQgV2ViUHJvY2Vzc1Bvb2w6OnJlbW92ZUNGTm90aWZpY2F0aW9u
T2JzZXJ2ZXIoQ0ZTdHJpbmdSZWYgbmFtZSwgQ0ZOb3RpZmljYXRpCiAKIHZvaWQgV2ViUHJvY2Vz
c1Bvb2w6OnJlZ2lzdGVyTm90aWZpY2F0aW9uT2JzZXJ2ZXJzKCkKIHsKLSAgICBtX3dlYWtPYnNl
cnZlciA9IGFkb3B0TlMoW1tXS1Byb2Nlc3NQb29sV2Vha09ic2VydmVyIGFsbG9jXSBpbml0V2l0
aFdlYWtQdHI6bWFrZVdlYWtQdHIoKnRoaXMpXSk7CisgICAgbV93ZWFrT2JzZXJ2ZXIgPSBhZG9w
dE5TKFtbV0tQcm9jZXNzUG9vbFdlYWtPYnNlcnZlciBhbGxvY10gaW5pdFdpdGhXZWFrUHRyOip0
aGlzXSk7CiAKICNpZiAhUExBVEZPUk0oSU9TX0ZBTUlMWSkKICAgICBtX3Bvd2VyT2JzZXJ2ZXIg
PSBtYWtlVW5pcXVlPFdlYkNvcmU6OlBvd2VyT2JzZXJ2ZXI+KFt3ZWFrVGhpcyA9IFdlYWtQdHIg
eyAqdGhpcyB9XSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9X
ZWJWaWV3SW1wbC5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dlYlZpZXdJbXBs
Lm1tCmluZGV4IGNiODIzNjlhZTFhZTc5ZmFiYzExN2IzNDY2NjZiMzdiYjViZjkzNzguLjY1OTVm
NGU1YjU2ZjRiZWJlZGM2OTE3OGQ0MDM2MzVmYjlhNWRhYjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dlYlZpZXdJbXBsLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL0NvY29hL1dlYlZpZXdJbXBsLm1tCkBAIC0xMDExLDcgKzEwMTEsNyBAQCAtIChp
bnN0YW5jZXR5cGUpaW5pdFdpdGhXZWJWaWV3SW1wbDooV2ViS2l0OjpXZWJWaWV3SW1wbCYpaW1w
bAogICAgIGlmICghKHNlbGYgPSBbc3VwZXIgaW5pdF0pKQogICAgICAgICByZXR1cm4gbmlsOwog
Ci0gICAgX2ltcGwgPSBtYWtlV2Vha1B0cihpbXBsKTsKKyAgICBfaW1wbCA9IGltcGw7CiAgICAg
cmV0dXJuIHNlbGY7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0Rv
d25sb2Fkcy9Eb3dubG9hZFByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0Rvd25s
b2Fkcy9Eb3dubG9hZFByb3h5LmNwcAppbmRleCA0NjM4NGU0MmY5MWUxNGMxMjIxNTRjYjkwNzUw
ZDI5ZWIyZDQ2ZTBkLi5lYjBjZmMzNzU3Y2VlMTcxMDViYzQzNzNhMDg3N2Q4NmM4OTg1OWQzIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Eb3dubG9hZHMvRG93bmxvYWRQcm94
eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvRG93bmxvYWRzL0Rvd25sb2FkUHJv
eHkuY3BwCkBAIC01NCw3ICs1NCw3IEBAIERvd25sb2FkUHJveHk6OkRvd25sb2FkUHJveHkoRG93
bmxvYWRQcm94eU1hcCYgZG93bmxvYWRQcm94eU1hcCwgV2Vic2l0ZURhdGFTdG9yCiAgICAgLCBt
X2NsaWVudChjbGllbnQpCiAgICAgLCBtX2Rvd25sb2FkSUQoRG93bmxvYWRJRDo6Z2VuZXJhdGUo
KSkKICAgICAsIG1fcmVxdWVzdChyZXNvdXJjZVJlcXVlc3QpCi0gICAgLCBtX29yaWdpbmF0aW5n
UGFnZShtYWtlV2Vha1B0cihvcmlnaW5hdGluZ1BhZ2UpKQorICAgICwgbV9vcmlnaW5hdGluZ1Bh
Z2Uob3JpZ2luYXRpbmdQYWdlKQogICAgICwgbV9mcmFtZUluZm8oQVBJOjpGcmFtZUluZm86OmNy
ZWF0ZShGcmFtZUluZm9EYXRhIHsgZnJhbWVJbmZvRGF0YSB9LCBvcmlnaW5hdGluZ1BhZ2UpKQog
ewogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvR1BVL0dQVVByb2Nlc3NQ
cm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9HUFUvR1BVUHJvY2Vzc1Byb3h5LmNw
cAppbmRleCBmYWQ1ZjlkNjc0NGFjMmZjYjU0Y2FhZWVlNjNlYjYzMzI1MTRjMDFkLi43Y2E2N2Vi
YjY2NmQ1NGJlODY5Zjc5NGI0NWU3OGYyNzcxOWEzM2ZhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9HUFUvR1BVUHJvY2Vzc1Byb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9HUFUvR1BVUHJvY2Vzc1Byb3h5LmNwcApAQCAtMTA4LDcgKzEwOCw3IEBAIFJl
ZjxHUFVQcm9jZXNzUHJveHk+IEdQVVByb2Nlc3NQcm94eTo6Z2V0T3JDcmVhdGUoKQogICAgIH0K
ICAgICBhdXRvIGdwdVByb2Nlc3MgPSBhZG9wdFJlZigqbmV3IEdQVVByb2Nlc3NQcm94eSk7CiAg
ICAgZ3B1UHJvY2Vzcy0+dXBkYXRlUHJlZmVyZW5jZXMoKTsKLSAgICBzaW5nbGV0b24oKSA9IG1h
a2VXZWFrUHRyKGdwdVByb2Nlc3MuZ2V0KCkpOworICAgIHNpbmdsZXRvbigpID0gZ3B1UHJvY2Vz
czsKICAgICByZXR1cm4gZ3B1UHJvY2VzczsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvSW5zcGVjdG9yL0luc3BlY3RvclRhcmdldFByb3h5LmNwcCBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL0luc3BlY3Rvci9JbnNwZWN0b3JUYXJnZXRQcm94eS5jcHAKaW5kZXgg
NjkyOGNhMmZiZmI2OTM5MDYyZTNjZDE0YmI3YmE2ZjJmZGM4N2Y1Zi4uY2ZjYWNjZTAxMjJiYjAz
ZmE0N2ZkODU4MGNmYmVkZmIyYWQzN2Q0OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvSW5zcGVjdG9yL0luc3BlY3RvclRhcmdldFByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9JbnNwZWN0b3IvSW5zcGVjdG9yVGFyZ2V0UHJveHkuY3BwCkBAIC00NSw3
ICs0NSw3IEBAIHN0ZDo6dW5pcXVlX3B0cjxJbnNwZWN0b3JUYXJnZXRQcm94eT4gSW5zcGVjdG9y
VGFyZ2V0UHJveHk6OmNyZWF0ZShXZWJQYWdlUHJveHkmCiBzdGQ6OnVuaXF1ZV9wdHI8SW5zcGVj
dG9yVGFyZ2V0UHJveHk+IEluc3BlY3RvclRhcmdldFByb3h5OjpjcmVhdGUoUHJvdmlzaW9uYWxQ
YWdlUHJveHkmIHByb3Zpc2lvbmFsUGFnZSwgY29uc3QgU3RyaW5nJiB0YXJnZXRJZCwgSW5zcGVj
dG9yOjpJbnNwZWN0b3JUYXJnZXRUeXBlIHR5cGUpCiB7CiAgICAgYXV0byB0YXJnZXQgPSBJbnNw
ZWN0b3JUYXJnZXRQcm94eTo6Y3JlYXRlKHByb3Zpc2lvbmFsUGFnZS5wYWdlKCksIHRhcmdldElk
LCB0eXBlKTsKLSAgICB0YXJnZXQtPm1fcHJvdmlzaW9uYWxQYWdlID0gbWFrZVdlYWtQdHIocHJv
dmlzaW9uYWxQYWdlKTsKKyAgICB0YXJnZXQtPm1fcHJvdmlzaW9uYWxQYWdlID0gcHJvdmlzaW9u
YWxQYWdlOwogICAgIHJldHVybiB0YXJnZXQ7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0luc3BlY3Rvci9XZWJJbnNwZWN0b3JVSUV4dGVuc2lvbkNvbnRyb2xsZXJQ
cm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9JbnNwZWN0b3IvV2ViSW5zcGVjdG9y
VUlFeHRlbnNpb25Db250cm9sbGVyUHJveHkuY3BwCmluZGV4IDA3YTYzZjQ5ZGE4NTY4MDdlMmJh
MWVlMDE5MjAxZGE4ZWMzOTgyOTAuLjdiZDFlMjhmNGYxOTZiZjFiZDMzMmNjYzgzYzFiOWU4YjJm
MzliZGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0luc3BlY3Rvci9XZWJJ
bnNwZWN0b3JVSUV4dGVuc2lvbkNvbnRyb2xsZXJQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvSW5zcGVjdG9yL1dlYkluc3BlY3RvclVJRXh0ZW5zaW9uQ29udHJvbGxlclBy
b3h5LmNwcApAQCAtMzgsNyArMzgsNyBAQAogbmFtZXNwYWNlIFdlYktpdCB7CiAKIFdlYkluc3Bl
Y3RvclVJRXh0ZW5zaW9uQ29udHJvbGxlclByb3h5OjpXZWJJbnNwZWN0b3JVSUV4dGVuc2lvbkNv
bnRyb2xsZXJQcm94eShXZWJQYWdlUHJveHkmIGluc3BlY3RvclBhZ2UpCi0gICAgOiBtX2luc3Bl
Y3RvclBhZ2UobWFrZVdlYWtQdHIoaW5zcGVjdG9yUGFnZSkpCisgICAgOiBtX2luc3BlY3RvclBh
Z2UoaW5zcGVjdG9yUGFnZSkKIHsKICAgICBtX2luc3BlY3RvclBhZ2UtPnByb2Nlc3MoKS5hZGRN
ZXNzYWdlUmVjZWl2ZXIoTWVzc2FnZXM6OldlYkluc3BlY3RvclVJRXh0ZW5zaW9uQ29udHJvbGxl
clByb3h5OjptZXNzYWdlUmVjZWl2ZXJOYW1lKCksIG1faW5zcGVjdG9yUGFnZS0+d2ViUGFnZUlE
KCksICp0aGlzKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0xhdW5j
aGVyL21hYy9Qcm9jZXNzTGF1bmNoZXJNYWMubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9M
YXVuY2hlci9tYWMvUHJvY2Vzc0xhdW5jaGVyTWFjLm1tCmluZGV4IGRhYzMxYzNkOWY2NmEwOGIw
ZTBkMDY1NmFmZTY3YTViZjg4YWEzYTUuLmVjMjZkMzc0M2FhYTJkNjdiNTkyMDJlZDlhNmFjMDRh
OWFhM2JiOGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0xhdW5jaGVyL21h
Yy9Qcm9jZXNzTGF1bmNoZXJNYWMubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTGF1
bmNoZXIvbWFjL1Byb2Nlc3NMYXVuY2hlck1hYy5tbQpAQCAtMjMzLDcgKzIzMyw3IEBAIHZvaWQg
UHJvY2Vzc0xhdW5jaGVyOjpsYXVuY2hQcm9jZXNzKCkKIAogICAgIHhwY19kaWN0aW9uYXJ5X3Nl
dF92YWx1ZShib290c3RyYXBNZXNzYWdlLmdldCgpLCAiZXh0cmEtaW5pdGlhbGl6YXRpb24tZGF0
YSIsIGV4dHJhSW5pdGlhbGl6YXRpb25EYXRhLmdldCgpKTsKIAotICAgIGF1dG8gZXJyb3JIYW5k
bGVySW1wbCA9IFt3ZWFrUHJvY2Vzc0xhdW5jaGVyID0gbWFrZVdlYWtQdHIoKnRoaXMpLCBsaXN0
ZW5pbmdQb3J0XSAoeHBjX29iamVjdF90IGV2ZW50KSB7CisgICAgYXV0byBlcnJvckhhbmRsZXJJ
bXBsID0gW3dlYWtQcm9jZXNzTGF1bmNoZXIgPSBXZWFrUHRyIHsgKnRoaXMgfSwgbGlzdGVuaW5n
UG9ydF0gKHhwY19vYmplY3RfdCBldmVudCkgewogICAgICAgICBBU1NFUlQoIWV2ZW50IHx8IHhw
Y19nZXRfdHlwZShldmVudCkgPT0gWFBDX1RZUEVfRVJST1IpOwogICAgICAgICAKICAgICAgICAg
YXV0byBwcm9jZXNzTGF1bmNoZXIgPSB3ZWFrUHJvY2Vzc0xhdW5jaGVyLmdldCgpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTWVkaWEvUmVtb3RlTWVkaWFTZXNzaW9uQ29v
cmRpbmF0b3JQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9NZWRpYS9SZW1vdGVN
ZWRpYVNlc3Npb25Db29yZGluYXRvclByb3h5LmNwcAppbmRleCA3MTE1NGFkZDBhZjJiOTE0YWUy
M2FiM2NlYzQzM2EwZTEzMGUxMWQyLi4zZmUwYWJjZmUzNmJlZjdjYTQ1YmVkNTY2MWE3MzdlZDJi
ZmU1NmQwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9NZWRpYS9SZW1vdGVN
ZWRpYVNlc3Npb25Db29yZGluYXRvclByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9NZWRpYS9SZW1vdGVNZWRpYVNlc3Npb25Db29yZGluYXRvclByb3h5LmNwcApAQCAtNjAs
NyArNjAsNyBAQCBSZW1vdGVNZWRpYVNlc3Npb25Db29yZGluYXRvclByb3h5OjpSZW1vdGVNZWRp
YVNlc3Npb25Db29yZGluYXRvclByb3h5KFdlYlBhZ2VQcgogICAgICwgbV9sb2dJZGVudGlmaWVy
KExvZ2dlckhlbHBlcjo6dW5pcXVlTG9nSWRlbnRpZmllcigpKQogI2VuZGlmCiB7Ci0gICAgbV9w
cml2YXRlQ29vcmRpbmF0b3ItPnNldENsaWVudChtYWtlV2Vha1B0cih0aGlzKSk7CisgICAgbV9w
cml2YXRlQ29vcmRpbmF0b3ItPnNldENsaWVudCgqdGhpcyk7CiAgICAgbV93ZWJQYWdlUHJveHku
cHJvY2VzcygpLmFkZE1lc3NhZ2VSZWNlaXZlcihNZXNzYWdlczo6UmVtb3RlTWVkaWFTZXNzaW9u
Q29vcmRpbmF0b3JQcm94eTo6bWVzc2FnZVJlY2VpdmVyTmFtZSgpLCBtX3dlYlBhZ2VQcm94eS53
ZWJQYWdlSUQoKSwgKnRoaXMpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9NZWRpYUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0UHJveHkuY3BwIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvTWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdFByb3h5LmNwcApp
bmRleCA4OGJhMjNiOWU4YzIyZjJmMWVhZjdiNDVjNjhhZTFiOTY2OWFiY2Q1Li4yNjgzMjdhZWIy
MzFhMmYyZjJkNjY2OGY0NWY0YThhZWE5YjUyYTRiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9NZWRpYUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0UHJveHkuY3BwCisrKyBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL01lZGlhS2V5U3lzdGVtUGVybWlzc2lvblJlcXVlc3RQ
cm94eS5jcHAKQEAgLTM1LDcgKzM1LDcgQEAgbmFtZXNwYWNlIFdlYktpdCB7CiB1c2luZyBuYW1l
c3BhY2UgV2ViQ29yZTsKIAogTWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdFByb3h5OjpN
ZWRpYUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0UHJveHkoTWVkaWFLZXlTeXN0ZW1QZXJtaXNz
aW9uUmVxdWVzdE1hbmFnZXJQcm94eSYgbWFuYWdlciwgTWVkaWFLZXlTeXN0ZW1SZXF1ZXN0SWRl
bnRpZmllciBtZWRpYUtleVN5c3RlbUlELCBGcmFtZUlkZW50aWZpZXIgbWFpbkZyYW1lSUQsIEZy
YW1lSWRlbnRpZmllciBmcmFtZUlELCBSZWY8V2ViQ29yZTo6U2VjdXJpdHlPcmlnaW4+JiYgdG9w
TGV2ZWxEb2N1bWVudE9yaWdpbiwgY29uc3QgU3RyaW5nJiBrZXlTeXN0ZW0pCi0gICAgOiBtX21h
bmFnZXIobWFrZVdlYWtQdHIobWFuYWdlcikpCisgICAgOiBtX21hbmFnZXIobWFuYWdlcikKICAg
ICAsIG1fbWVkaWFLZXlTeXN0ZW1JRChtZWRpYUtleVN5c3RlbUlEKQogICAgICwgbV9tYWluRnJh
bWVJRChtYWluRnJhbWVJRCkKICAgICAsIG1fZnJhbWVJRChmcmFtZUlEKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5LmNwcCBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5jcHAK
aW5kZXggMmY1NWM2M2FiYjU1OWIxMDBkNzQ4ZGUxNWVmMDE3NmNhYTlkZGI3NS4uYzU1M2Y5Y2E3
MTI5OGY4NjkxY2FkMDFkMGY3OGJlM2E3MDY0ODVkYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5LmNwcAorKysgYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHkuY3BwCkBAIC0zOTEs
NyArMzkxLDcgQEAgdm9pZCBOZXR3b3JrUHJvY2Vzc1Byb3h5OjpkaWRSZWNlaXZlQXV0aGVudGlj
YXRpb25DaGFsbGVuZ2UoUEFMOjpTZXNzaW9uSUQgc2Vzc2kKICAgICBpZiAoY29yZUNoYWxsZW5n
ZS5wcm90ZWN0aW9uU3BhY2UoKS5hdXRoZW50aWNhdGlvblNjaGVtZSgpID09IFByb3RlY3Rpb25T
cGFjZUF1dGhlbnRpY2F0aW9uU2NoZW1lQ2xpZW50Q2VydGlmaWNhdGVSZXF1ZXN0ZWQpIHsKICAg
ICAgICAgaWYgKGF1dG8qIHN0b3JlID0gd2Vic2l0ZURhdGFTdG9yZUZyb21TZXNzaW9uSUQoc2Vz
c2lvbklEKSkgewogICAgICAgICAgICAgYXV0byBuZXdTZWNLZXlQcm94eVN0b3JlID0gU2VjS2V5
UHJveHlTdG9yZTo6Y3JlYXRlKCk7Ci0gICAgICAgICAgICBzZWNLZXlQcm94eVN0b3JlID0gbWFr
ZVdlYWtQdHIobmV3U2VjS2V5UHJveHlTdG9yZS5nZXQoKSk7CisgICAgICAgICAgICBzZWNLZXlQ
cm94eVN0b3JlID0gbmV3U2VjS2V5UHJveHlTdG9yZTsKICAgICAgICAgICAgIHN0b3JlLT5hZGRT
ZWNLZXlQcm94eVN0b3JlKFdURk1vdmUobmV3U2VjS2V5UHJveHlTdG9yZSkpOwogICAgICAgICB9
CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTmV0d29yay9OZXR3
b3JrUHJvY2Vzc1Byb3h5Q29jb2EubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9OZXR3b3Jr
L05ldHdvcmtQcm9jZXNzUHJveHlDb2NvYS5tbQppbmRleCA2M2EwNWRkNTQwYWI1ZWFkYjVmMDBl
YzQ0NTZhODk4MWUxNjM0YWI5Li4zMTU1NmQyMzcwZjc0MWEzOTA1MGNhNzI5MDIwYzNkYmU3NWY3
ZDc1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQ
cm9jZXNzUHJveHlDb2NvYS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9OZXR3b3Jr
L05ldHdvcmtQcm9jZXNzUHJveHlDb2NvYS5tbQpAQCAtNjEsNyArNjEsNyBAQCBib29sIE5ldHdv
cmtQcm9jZXNzUHJveHk6OlhQQ0V2ZW50SGFuZGxlcjo6aGFuZGxlWFBDRXZlbnQoeHBjX29iamVj
dF90IGV2ZW50KSBjbwogfQogCiBOZXR3b3JrUHJvY2Vzc1Byb3h5OjpYUENFdmVudEhhbmRsZXI6
OlhQQ0V2ZW50SGFuZGxlcihjb25zdCBOZXR3b3JrUHJvY2Vzc1Byb3h5JiBuZXR3b3JrUHJvY2Vz
cykKLSAgICA6IG1fbmV0d29ya1Byb2Nlc3MobWFrZVdlYWtQdHIobmV0d29ya1Byb2Nlc3MpKQor
ICAgIDogbV9uZXR3b3JrUHJvY2VzcyhuZXR3b3JrUHJvY2VzcykKIHsKIH0KIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUERGL1dLUERGSFVEVmlldy5tbSBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL1BERi9XS1BERkhVRFZpZXcubW0KaW5kZXggNmM0NjUwM2Y5ODdiMGYx
MjY1ZTkzOGIxZTBiNWY4MjQ1NWEzMzZjMi4uM2NmMjdkMWJlOTcwNGQ2YWY2NzExNGQ4ZTlhZDA5
MGIyNmExZThjZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUERGL1dLUERG
SFVEVmlldy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9QREYvV0tQREZIVURWaWV3
Lm1tCkBAIC0xMDIsNyArMTAyLDcgQEAgLSAoaW5zdGFuY2V0eXBlKWluaXRXaXRoRnJhbWU6KE5T
UmVjdClmcmFtZSBwbHVnaW5JZGVudGlmaWVyOihXZWJLaXQ6OlBERlBsdWdpbkkKICAgICBzZWxm
LndhbnRzTGF5ZXIgPSBZRVM7CiAgICAgX2NhY2hlZEljb25zID0gYWRvcHROUyhbW05TTXV0YWJs
ZURpY3Rpb25hcnkgYWxsb2NdIGluaXRdKTsKICAgICBfcGx1Z2luSWRlbnRpZmllciA9IHBsdWdp
bklkZW50aWZpZXI7Ci0gICAgX3BhZ2UgPSBtYWtlV2Vha1B0cihwYWdlKTsKKyAgICBfcGFnZSA9
IHBhZ2U7CiAgICAgX2RldmljZVNjYWxlRmFjdG9yID0gcGFnZS5kZXZpY2VTY2FsZUZhY3Rvcigp
OwogICAgIF92aXNpYmxlID0gWUVTOwogICAgIFtzZWxmIF9zZXR1cExheWVyOnNlbGYubGF5ZXJd
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvU3BlZWNoUmVjb2duaXRpb25Q
ZXJtaXNzaW9uUmVxdWVzdC5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvU3BlZWNoUmVjb2du
aXRpb25QZXJtaXNzaW9uUmVxdWVzdC5oCmluZGV4IDI4YWViNTg3YWMxMzlkOTI1ODQzYmU3NmYy
NDE2MTU3NmJlYWRjN2MuLjYyNjZjMTY3NTFjZWM2MTI0ZDEzMzExMGZiOWU0ZDQzMTI2MjVkMjEg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1NwZWVjaFJlY29nbml0aW9uUGVy
bWlzc2lvblJlcXVlc3QuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9TcGVlY2hSZWNv
Z25pdGlvblBlcm1pc3Npb25SZXF1ZXN0LmgKQEAgLTU5LDcgKzU5LDcgQEAgcHVibGljOgogCiBw
cml2YXRlOgogICAgIFNwZWVjaFJlY29nbml0aW9uUGVybWlzc2lvblJlcXVlc3QoV2ViQ29yZTo6
U3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0JiByZXF1ZXN0LCBTcGVlY2hSZWNvZ25pdGlvblBlcm1p
c3Npb25SZXF1ZXN0Q2FsbGJhY2smJiBjb21wbGV0aW9uSGFuZGxlcikKLSAgICAgICAgOiBtX3Jl
cXVlc3QobWFrZVdlYWtQdHIocmVxdWVzdCkpCisgICAgICAgIDogbV9yZXF1ZXN0KHJlcXVlc3Qp
CiAgICAgICAgICwgbV9jb21wbGV0aW9uSGFuZGxlcihXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVy
KSkKICAgICB7IH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvU3BlZWNo
UmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlLmNwcCBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL1NwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZS5jcHAK
aW5kZXggZTQyZGJmMTI4MWQzNmZlZjJlMzAzZTcwN2Q1YjViYWYxNjZlZTE1Mi4uNTNjYWRkMzRh
YjkyODBlMjBmNzNmMWEyYmEzYmMxM2QxYTU0MTkzOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlLmNw
cAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9TcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJl
YWx0aW1lTWVkaWFTb3VyY2UuY3BwCkBAIC00Nyw3ICs0Nyw3IEBAIFJlZjxXZWJDb3JlOjpSZWFs
dGltZU1lZGlhU291cmNlPiBTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3Vy
Y2U6OmNyCiBTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2U6OlNwZWVj
aFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZShXZWJDb3JlOjpSZWFsdGltZU1l
ZGlhU291cmNlSWRlbnRpZmllciBpZGVudGlmaWVyLCBTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJl
YWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyJiBtYW5hZ2VyLCBjb25zdCBXZWJDb3JlOjpDYXB0dXJl
RGV2aWNlJiBjYXB0dXJlRGV2aWNlKQogICAgIDogV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJj
ZShXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlOjpUeXBlOjpBdWRpbywgU3RyaW5nIHsgY2Fw
dHVyZURldmljZS5sYWJlbCgpIH0sIFN0cmluZyB7IGNhcHR1cmVEZXZpY2UucGVyc2lzdGVudElk
KCkgfSkKICAgICAsIG1faWRlbnRpZmllcihpZGVudGlmaWVyKQotICAgICwgbV9tYW5hZ2VyKG1h
a2VXZWFrUHRyKG1hbmFnZXIpKQorICAgICwgbV9tYW5hZ2VyKG1hbmFnZXIpCiAjaWYgUExBVEZP
Uk0oQ09DT0EpCiAgICAgLCBtX3JpbmdCdWZmZXIobWFrZVVuaXF1ZTxXZWJDb3JlOjpDQVJpbmdC
dWZmZXI+KCkpCiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1Nw
ZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIuY3BwIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlh
U291cmNlTWFuYWdlci5jcHAKaW5kZXggYmMwYzcwOGE4NjQ3YjNiNmViMDVjMDFhYzEyYTA3Y2Y4
YzgyMDdmYi4uNjhkYzExNWYxNjlmMTllZjg5ZjY2ZmU1YzhmMjQxYzg1Yjk3OGQ3MSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFs
dGltZU1lZGlhU291cmNlTWFuYWdlci5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
U3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlci5jcHAKQEAg
LTQyLDcgKzQyLDcgQEAgdm9pZCBTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFT
b3VyY2VNYW5hZ2VyOjphZGRTb3VyY2UoU3BlZWNoUmVjb2duaXQKIHsKICAgICBhdXRvIGlkZW50
aWZpZXIgPSBzb3VyY2UuaWRlbnRpZmllcigpOwogICAgIEFTU0VSVCghbV9zb3VyY2VzLmNvbnRh
aW5zKGlkZW50aWZpZXIpKTsKLSAgICBtX3NvdXJjZXMuYWRkKGlkZW50aWZpZXIsIG1ha2VXZWFr
UHRyKHNvdXJjZSkpOworICAgIG1fc291cmNlcy5hZGQoaWRlbnRpZmllciwgc291cmNlKTsKIAog
I2lmIEVOQUJMRShTQU5EQk9YX0VYVEVOU0lPTlMpCiAgICAgaWYgKCFjYXB0dXJlRGV2aWNlLmlz
TW9ja0RldmljZSgpKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9WaWV3
R2VzdHVyZUNvbnRyb2xsZXIuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvVmlld0dlc3R1
cmVDb250cm9sbGVyLmNwcAppbmRleCA1YjQ5Yjk5MTdiNzc0NzU2MmQ4N2UwYjM4MzZiMTRjYzFl
N2Q2NDI0Li43YmQ1ODc3ZGQ4ZTkyNThkYzVkNmE3ZmE0Mjg2N2ZiOTI5NzlkNmZhIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9WaWV3R2VzdHVyZUNvbnRyb2xsZXIuY3BwCisr
KyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1ZpZXdHZXN0dXJlQ29udHJvbGxlci5jcHAKQEAg
LTE0Niw3ICsxNDYsNyBAQCB2b2lkIFZpZXdHZXN0dXJlQ29udHJvbGxlcjo6ZGlkRW5kR2VzdHVy
ZSgpCiAKIHZvaWQgVmlld0dlc3R1cmVDb250cm9sbGVyOjpzZXRBbHRlcm5hdGVCYWNrRm9yd2Fy
ZExpc3RTb3VyY2VQYWdlKFdlYlBhZ2VQcm94eSogcGFnZSkKIHsKLSAgICBtX2FsdGVybmF0ZUJh
Y2tGb3J3YXJkTGlzdFNvdXJjZVBhZ2UgPSBtYWtlV2Vha1B0cihwYWdlKTsKKyAgICBtX2FsdGVy
bmF0ZUJhY2tGb3J3YXJkTGlzdFNvdXJjZVBhZ2UgPSBwYWdlOwogfQogCiBib29sIFZpZXdHZXN0
dXJlQ29udHJvbGxlcjo6Y2FuU3dpcGVJbkRpcmVjdGlvbihTd2lwZURpcmVjdGlvbiBkaXJlY3Rp
b24pIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJBdXRoZW50
aWNhdGlvbi9BdXRoZW50aWNhdG9yLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJBdXRo
ZW50aWNhdGlvbi9BdXRoZW50aWNhdG9yLmgKaW5kZXggMmU3MTBhYTJlN2JlMmY3YzRhYWUxMGU0
MDNkOTgyMTQzZTBhYjU4NC4uNWNmOWFmNTcwOGU4YzFiMWYxN2JjNGRkY2EyMmVmYzk0Y2MzNGFh
YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViQXV0aGVudGljYXRpb24v
QXV0aGVudGljYXRvci5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkF1dGhlbnRp
Y2F0aW9uL0F1dGhlbnRpY2F0b3IuaApAQCAtNjMsNyArNjMsNyBAQCBwdWJsaWM6CiAKICAgICB2
aXJ0dWFsIH5BdXRoZW50aWNhdG9yKCkgPSBkZWZhdWx0OwogCi0gICAgdm9pZCBzZXRPYnNlcnZl
cihPYnNlcnZlciYgb2JzZXJ2ZXIpIHsgbV9vYnNlcnZlciA9IG1ha2VXZWFrUHRyKG9ic2VydmVy
KTsgfQorICAgIHZvaWQgc2V0T2JzZXJ2ZXIoT2JzZXJ2ZXImIG9ic2VydmVyKSB7IG1fb2JzZXJ2
ZXIgPSBvYnNlcnZlcjsgfQogCiAgICAgLy8gVGhpcyBvcGVyYXRpb24gaXMgZ3VhcmFudGVlZCB0
byBleGVjdXRlIGFzeW5jaHJvbm91c2x5LgogICAgIHZvaWQgaGFuZGxlUmVxdWVzdChjb25zdCBX
ZWJBdXRoZW50aWNhdGlvblJlcXVlc3REYXRhJik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9BdXRoZW50aWNhdG9yTWFuYWdlci5jcHAgYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9BdXRoZW50aWNhdG9yTWFu
YWdlci5jcHAKaW5kZXggMzc3MTE2MWEyOTU2YmU0Yzg4N2QwMWNhNTYxYWY2Yjg4Yjc1OGRhNS4u
ZDNhZTQwM2VmYmQ5N2U5Njc1MWRhZTM5ZjQ1MjYzMWI4YzEzOGJlYyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViQXV0aGVudGljYXRpb24vQXV0aGVudGljYXRvck1hbmFn
ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL0F1
dGhlbnRpY2F0b3JNYW5hZ2VyLmNwcApAQCAtNDYyLDcgKzQ2Miw3IEBAIHZvaWQgQXV0aGVudGlj
YXRvck1hbmFnZXI6OnJ1blBhbmVsKCkKIAogICAgIG1fcGVuZGluZ1JlcXVlc3REYXRhLnBhbmVs
ID0gQVBJOjpXZWJBdXRoZW50aWNhdGlvblBhbmVsOjpjcmVhdGUoKnRoaXMsIGdldFJwSWQob3B0
aW9ucyksIHRyYW5zcG9ydHMsIGdldENsaWVudERhdGFUeXBlKG9wdGlvbnMpLCBnZXRVc2VyTmFt
ZShvcHRpb25zKSk7CiAgICAgYXV0byYgcGFuZWwgPSAqbV9wZW5kaW5nUmVxdWVzdERhdGEucGFu
ZWw7Ci0gICAgcGFnZS0+dWlDbGllbnQoKS5ydW5XZWJBdXRoZW50aWNhdGlvblBhbmVsKCpwYWdl
LCBwYW5lbCwgKmZyYW1lLCBGcmFtZUluZm9EYXRhIHsgbV9wZW5kaW5nUmVxdWVzdERhdGEuZnJh
bWVJbmZvIH0sIFt0cmFuc3BvcnRzID0gV1RGTW92ZSh0cmFuc3BvcnRzKSwgd2Vha1BhbmVsID0g
bWFrZVdlYWtQdHIocGFuZWwpLCB3ZWFrVGhpcyA9IFdlYWtQdHIgeyAqdGhpcyB9LCB0aGlzXSAo
V2ViQXV0aGVudGljYXRpb25QYW5lbFJlc3VsdCByZXN1bHQpIHsKKyAgICBwYWdlLT51aUNsaWVu
dCgpLnJ1bldlYkF1dGhlbnRpY2F0aW9uUGFuZWwoKnBhZ2UsIHBhbmVsLCAqZnJhbWUsIEZyYW1l
SW5mb0RhdGEgeyBtX3BlbmRpbmdSZXF1ZXN0RGF0YS5mcmFtZUluZm8gfSwgW3RyYW5zcG9ydHMg
PSBXVEZNb3ZlKHRyYW5zcG9ydHMpLCB3ZWFrUGFuZWwgPSBXZWFrUHRyIHsgcGFuZWwgfSwgd2Vh
a1RoaXMgPSBXZWFrUHRyIHsgKnRoaXMgfSwgdGhpc10gKFdlYkF1dGhlbnRpY2F0aW9uUGFuZWxS
ZXN1bHQgcmVzdWx0KSB7CiAgICAgICAgIC8vIFRoZSBwYW5lbCBhZGRyZXNzIGlzIHVzZWQgdG8g
ZGV0ZXJtaW5lIGlmIHRoZSBjdXJyZW50IHBlbmRpbmcgcmVxdWVzdCBpcyBzdGlsbCB0aGUgc2Ft
ZS4KICAgICAgICAgaWYgKCF3ZWFrVGhpcyB8fCAhd2Vha1BhbmVsCiAgICAgICAgICAgICB8fCAo
cmVzdWx0ID09IFdlYkF1dGhlbnRpY2F0aW9uUGFuZWxSZXN1bHQ6OkRpZE5vdFByZXNlbnQpCkBA
IC01MzUsNyArNTM1LDcgQEAgdm9pZCBBdXRoZW50aWNhdG9yTWFuYWdlcjo6ZGlzcGF0Y2hQYW5l
bENsaWVudENhbGwoRnVuY3Rpb248dm9pZChjb25zdCBBUEk6OldlYkEKIHsKICAgICBhdXRvIHdl
YWtQYW5lbCA9IG1fcGVuZGluZ1JlcXVlc3REYXRhLndlYWtQYW5lbDsKICAgICBpZiAoIXdlYWtQ
YW5lbCkKLSAgICAgICAgd2Vha1BhbmVsID0gbWFrZVdlYWtQdHIobV9wZW5kaW5nUmVxdWVzdERh
dGEucGFuZWwuZ2V0KCkpOworICAgICAgICB3ZWFrUGFuZWwgPSBtX3BlbmRpbmdSZXF1ZXN0RGF0
YS5wYW5lbDsKICAgICBpZiAoIXdlYWtQYW5lbCkKICAgICAgICAgcmV0dXJuOwogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9BdXRoZW50aWNh
dG9yVHJhbnNwb3J0U2VydmljZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJBdXRo
ZW50aWNhdGlvbi9BdXRoZW50aWNhdG9yVHJhbnNwb3J0U2VydmljZS5jcHAKaW5kZXggMTNiOTEz
Njc0NTRkZjJkOGUyZDljMzkxOWE3ZjUxOTgyMzhjYzQ1Yi4uMDUwYmM1MjQwYWNkNzcyYmExZDRk
OWZiMDE2NzAyZmY3ODAxYWZhOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
V2ViQXV0aGVudGljYXRpb24vQXV0aGVudGljYXRvclRyYW5zcG9ydFNlcnZpY2UuY3BwCisrKyBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL0F1dGhlbnRpY2F0b3JU
cmFuc3BvcnRTZXJ2aWNlLmNwcApAQCAtNjksNyArNjksNyBAQCBVbmlxdWVSZWY8QXV0aGVudGlj
YXRvclRyYW5zcG9ydFNlcnZpY2U+IEF1dGhlbnRpY2F0b3JUcmFuc3BvcnRTZXJ2aWNlOjpjcmVh
dGVNbwogfQogCiBBdXRoZW50aWNhdG9yVHJhbnNwb3J0U2VydmljZTo6QXV0aGVudGljYXRvclRy
YW5zcG9ydFNlcnZpY2UoT2JzZXJ2ZXImIG9ic2VydmVyKQotICAgIDogbV9vYnNlcnZlcihtYWtl
V2Vha1B0cihvYnNlcnZlcikpCisgICAgOiBtX29ic2VydmVyKG9ic2VydmVyKQogewogfQogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9Db2Nv
YS9BdXRoZW50aWNhdG9yUHJlc2VudGVyQ29vcmRpbmF0b3IubW0gYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9Db2NvYS9BdXRoZW50aWNhdG9yUHJlc2VudGVyQ29v
cmRpbmF0b3IubW0KaW5kZXggYmQwZThjYWI3OTY4NWI3MDYxYzkyMTFkNDk5N2Y1YzJhYTE0Y2Mx
MS4uYTE3ZjhhMmRiY2QzYTAyZjNmOGFlOWI1NjMxYmY4ZGUxMzEyMThlYyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViQXV0aGVudGljYXRpb24vQ29jb2EvQXV0aGVudGlj
YXRvclByZXNlbnRlckNvb3JkaW5hdG9yLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L1dlYkF1dGhlbnRpY2F0aW9uL0NvY29hL0F1dGhlbnRpY2F0b3JQcmVzZW50ZXJDb29yZGluYXRv
ci5tbQpAQCAtMzgsNyArMzgsNyBAQCBuYW1lc3BhY2UgV2ViS2l0IHsKIHVzaW5nIG5hbWVzcGFj
ZSBXZWJDb3JlOwogCiBBdXRoZW50aWNhdG9yUHJlc2VudGVyQ29vcmRpbmF0b3I6OkF1dGhlbnRp
Y2F0b3JQcmVzZW50ZXJDb29yZGluYXRvcihjb25zdCBBdXRoZW50aWNhdG9yTWFuYWdlciYgbWFu
YWdlciwgY29uc3QgU3RyaW5nJiBycElkLCBjb25zdCBUcmFuc3BvcnRTZXQmIHRyYW5zcG9ydHMs
IENsaWVudERhdGFUeXBlIHR5cGUsIGNvbnN0IFN0cmluZyYgdXNlcm5hbWUpCi0gICAgOiBtX21h
bmFnZXIobWFrZVdlYWtQdHIobWFuYWdlcikpCisgICAgOiBtX21hbmFnZXIobWFuYWdlcikKIHsK
ICNpZiBIQVZFKEFTQ19BVVRIX1VJKQogICAgIG1fY29udGV4dCA9IGFkb3B0TlMoW2FsbG9jQVND
QXV0aG9yaXphdGlvblByZXNlbnRhdGlvbkNvbnRleHRJbnN0YW5jZSgpIGluaXRXaXRoUmVxdWVz
dENvbnRleHQ6bnVsbHB0ciBhcHBJZGVudGlmaWVyOm51bGxwdHJdKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL0NvY29hL05mY0Nvbm5lY3Rp
b24ubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9Db2NvYS9O
ZmNDb25uZWN0aW9uLm1tCmluZGV4IDFlNzBhMzE1NDFmM2E2MzA4YzNlMzFjNGJkMmI2YTE2YWQ3
ZTlkOWMuLmNkOGY4YjgyNzRkZmEzNmQzOWQ3YjA1NGZiZGIxOTYyOThjNWU3YzIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL0NvY29hL05mY0Nv
bm5lY3Rpb24ubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViQXV0aGVudGljYXRp
b24vQ29jb2EvTmZjQ29ubmVjdGlvbi5tbQpAQCAtNzcsNyArNzcsNyBAQCBSZWY8TmZjQ29ubmVj
dGlvbj4gTmZjQ29ubmVjdGlvbjo6Y3JlYXRlKFJldGFpblB0cjxORlJlYWRlclNlc3Npb24+JiYg
c2Vzc2lvbiwgTgogTmZjQ29ubmVjdGlvbjo6TmZjQ29ubmVjdGlvbihSZXRhaW5QdHI8TkZSZWFk
ZXJTZXNzaW9uPiYmIHNlc3Npb24sIE5mY1NlcnZpY2UmIHNlcnZpY2UpCiAgICAgOiBtX3Nlc3Np
b24oV1RGTW92ZShzZXNzaW9uKSkKICAgICAsIG1fZGVsZWdhdGUoYWRvcHROUyhbW1dLTkZSZWFk
ZXJTZXNzaW9uRGVsZWdhdGUgYWxsb2NdIGluaXRXaXRoQ29ubmVjdGlvbjoqdGhpc10pKQotICAg
ICwgbV9zZXJ2aWNlKG1ha2VXZWFrUHRyKHNlcnZpY2UpKQorICAgICwgbV9zZXJ2aWNlKHNlcnZp
Y2UpCiAgICAgLCBtX3JldHJ5VGltZXIoUnVuTG9vcDo6bWFpbigpLCB0aGlzLCAmTmZjQ29ubmVj
dGlvbjo6c3RhcnRQb2xsaW5nKQogewogICAgIFttX3Nlc3Npb24gc2V0RGVsZWdhdGU6bV9kZWxl
Z2F0ZS5nZXQoKV07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJBdXRo
ZW50aWNhdGlvbi9Db2NvYS9XS0FTQ0F1dGhvcml6YXRpb25QcmVzZW50ZXJEZWxlZ2F0ZS5tbSBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL0NvY29hL1dLQVNDQXV0
aG9yaXphdGlvblByZXNlbnRlckRlbGVnYXRlLm1tCmluZGV4IGYyOTUwZmUzMDY5MTVmMDFjN2Rh
YjhiMDI5MGQ3MGEzZWM3OTAzMTUuLjllMzQyNDU5ZDk3ZDUyNjZmMWYwMmY1ZmNhOGMxZTFiMTkz
M2Q5NjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0
aW9uL0NvY29hL1dLQVNDQXV0aG9yaXphdGlvblByZXNlbnRlckRlbGVnYXRlLm1tCisrKyBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL0NvY29hL1dLQVNDQXV0aG9y
aXphdGlvblByZXNlbnRlckRlbGVnYXRlLm1tCkBAIC00Myw3ICs0Myw3IEBAIEBpbXBsZW1lbnRh
dGlvbiBXS0FTQ0F1dGhvcml6YXRpb25QcmVzZW50ZXJEZWxlZ2F0ZSB7CiAtIChpbnN0YW5jZXR5
cGUpaW5pdFdpdGhDb29yZGluYXRvcjooV2ViS2l0OjpBdXRoZW50aWNhdG9yUHJlc2VudGVyQ29v
cmRpbmF0b3ImKWNvb3JkaW5hdG9yCiB7CiAgICAgaWYgKChzZWxmID0gW3N1cGVyIGluaXRdKSkK
LSAgICAgICAgX2Nvb3JkaW5hdG9yID0gbWFrZVdlYWtQdHIoY29vcmRpbmF0b3IpOworICAgICAg
ICBfY29vcmRpbmF0b3IgPSBjb29yZGluYXRvcjsKICAgICByZXR1cm4gc2VsZjsKIH0KIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViQXV0aGVudGljYXRpb24vQ29jb2Ev
V0tORlJlYWRlclNlc3Npb25EZWxlZ2F0ZS5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dl
YkF1dGhlbnRpY2F0aW9uL0NvY29hL1dLTkZSZWFkZXJTZXNzaW9uRGVsZWdhdGUubW0KaW5kZXgg
YzdjZmNiNTU4MzJiZDY4YjVmYWIxMDg2NTljYjE4YTRjYWNjYmViMy4uYjMwOWI4MWE3ZTk4NTY4
MzI1ZmFjNTQ3YWZkZjZjZjA4NTQ2ZGY0ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvV2ViQXV0aGVudGljYXRpb24vQ29jb2EvV0tORlJlYWRlclNlc3Npb25EZWxlZ2F0ZS5t
bQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9Db2NvYS9X
S05GUmVhZGVyU2Vzc2lvbkRlbGVnYXRlLm1tCkBAIC00MSw3ICs0MSw3IEBAIEBpbXBsZW1lbnRh
dGlvbiBXS05GUmVhZGVyU2Vzc2lvbkRlbGVnYXRlIHsKIC0gKGluc3RhbmNldHlwZSlpbml0V2l0
aENvbm5lY3Rpb246KFdlYktpdDo6TmZjQ29ubmVjdGlvbiYpY29ubmVjdGlvbgogewogICAgIGlm
ICgoc2VsZiA9IFtzdXBlciBpbml0XSkpCi0gICAgICAgIF9jb25uZWN0aW9uID0gbWFrZVdlYWtQ
dHIoY29ubmVjdGlvbik7CisgICAgICAgIF9jb25uZWN0aW9uID0gY29ubmVjdGlvbjsKICAgICBy
ZXR1cm4gc2VsZjsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vi
QXV0aGVudGljYXRpb24vQ29jb2EvV2ViQXV0aGVudGljYXRvckNvb3JkaW5hdG9yUHJveHkubW0g
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9Db2NvYS9XZWJBdXRo
ZW50aWNhdG9yQ29vcmRpbmF0b3JQcm94eS5tbQppbmRleCBhMmEyOTcxOWJhNzdkZTQ3M2RjM2Yy
NGE0NGQwNWEwMmE5ODM3MTVkLi4wYmJkYmYzNmE1NGY5YzViNDE4MDQ2OWVmMDMxMjk5M2U4ODVh
NmE4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlv
bi9Db2NvYS9XZWJBdXRoZW50aWNhdG9yQ29vcmRpbmF0b3JQcm94eS5tbQorKysgYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9Db2NvYS9XZWJBdXRoZW50aWNhdG9y
Q29vcmRpbmF0b3JQcm94eS5tbQpAQCAtMjY0LDcgKzI2NCw3IEBAIHZvaWQgV2ViQXV0aGVudGlj
YXRvckNvb3JkaW5hdG9yUHJveHk6OnBlcmZvcm1SZXF1ZXN0KFJldGFpblB0cjxBU0NDcmVkZW50
aWFsUmVxCiAgICAgYXV0byBwcm94eSA9IGFkb3B0TlMoW2FsbG9jQVNDQWdlbnRQcm94eUluc3Rh
bmNlKCkgaW5pdF0pOwogCiAgICAgUmV0YWluUHRyPE5TV2luZG93PiB3aW5kb3cgPSBtX3dlYlBh
Z2VQcm94eS5wbGF0Zm9ybVdpbmRvdygpOwotICAgIFtwcm94eSBwZXJmb3JtQXV0aG9yaXphdGlv
blJlcXVlc3RzRm9yQ29udGV4dDpyZXF1ZXN0Q29udGV4dC5nZXQoKSB3aXRoQ2xlYXJhbmNlSGFu
ZGxlcjptYWtlQmxvY2tQdHIoW3dlYWtUaGlzID0gbWFrZVdlYWtQdHIoKnRoaXMpLCBoYW5kbGVy
ID0gV1RGTW92ZShoYW5kbGVyKSwgd2luZG93ID0gV1RGTW92ZSh3aW5kb3cpXShOU1hQQ0xpc3Rl
bmVyRW5kcG9pbnQgKmRhZW1vbkVucG9pbnQsIE5TRXJyb3IgKmVycm9yKSBtdXRhYmxlIHsKKyAg
ICBbcHJveHkgcGVyZm9ybUF1dGhvcml6YXRpb25SZXF1ZXN0c0ZvckNvbnRleHQ6cmVxdWVzdENv
bnRleHQuZ2V0KCkgd2l0aENsZWFyYW5jZUhhbmRsZXI6bWFrZUJsb2NrUHRyKFt3ZWFrVGhpcyA9
IFdlYWtQdHIgeyAqdGhpcyB9LCBoYW5kbGVyID0gV1RGTW92ZShoYW5kbGVyKSwgd2luZG93ID0g
V1RGTW92ZSh3aW5kb3cpXShOU1hQQ0xpc3RlbmVyRW5kcG9pbnQgKmRhZW1vbkVucG9pbnQsIE5T
RXJyb3IgKmVycm9yKSBtdXRhYmxlIHsKICAgICAgICAgYXV0byBwcm90ZWN0ZWRUaGlzID0gd2Vh
a1RoaXMuZ2V0KCk7CiAKICAgICAgICAgaWYgKCFwcm90ZWN0ZWRUaGlzIHx8ICFkYWVtb25FbnBv
aW50KSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJBdXRoZW50aWNh
dGlvbi9XZWJBdXRoZW50aWNhdG9yQ29vcmRpbmF0b3JQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9XZWJBdXRoZW50aWNhdG9yQ29vcmRpbmF0b3JQ
cm94eS5jcHAKaW5kZXggOTgyMzdmMTU0NTAxN2U2ZTMzZWUzZWI1MzFiODU1MjZjYTA4MDMwOC4u
OTNiMmNkZjAxNmNiNWY2YWZjMWVjMzMxMmMxYjg1M2I2YTY1MTFjMCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViQXV0aGVudGljYXRpb24vV2ViQXV0aGVudGljYXRvckNv
b3JkaW5hdG9yUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkF1dGhl
bnRpY2F0aW9uL1dlYkF1dGhlbnRpY2F0b3JDb29yZGluYXRvclByb3h5LmNwcApAQCAtNTgsMTIg
KzU4LDEyIEBAIFdlYkF1dGhlbnRpY2F0b3JDb29yZGluYXRvclByb3h5Ojp+V2ViQXV0aGVudGlj
YXRvckNvb3JkaW5hdG9yUHJveHkoKQogI2lmICFIQVZFKFVOSUZJRURfQVNDX0FVVEhfVUkpCiB2
b2lkIFdlYkF1dGhlbnRpY2F0b3JDb29yZGluYXRvclByb3h5OjptYWtlQ3JlZGVudGlhbChGcmFt
ZUlkZW50aWZpZXIgZnJhbWVJZCwgRnJhbWVJbmZvRGF0YSYmIGZyYW1lSW5mbywgVmVjdG9yPHVp
bnQ4X3Q+JiYgaGFzaCwgUHVibGljS2V5Q3JlZGVudGlhbENyZWF0aW9uT3B0aW9ucyYmIG9wdGlv
bnMsIGJvb2wgcHJvY2Vzc2luZ1VzZXJHZXN0dXJlLCBSZXF1ZXN0Q29tcGxldGlvbkhhbmRsZXIm
JiBoYW5kbGVyKQogewotICAgIGhhbmRsZVJlcXVlc3QoeyBXVEZNb3ZlKGhhc2gpLCBXVEZNb3Zl
KG9wdGlvbnMpLCBtYWtlV2Vha1B0cihtX3dlYlBhZ2VQcm94eSksIFdlYkF1dGhlbnRpY2F0aW9u
UGFuZWxSZXN1bHQ6OlVuYXZhaWxhYmxlLCBudWxscHRyLCBHbG9iYWxGcmFtZUlkZW50aWZpZXIg
eyBtX3dlYlBhZ2VQcm94eS53ZWJQYWdlSUQoKSwgZnJhbWVJZCB9LCBXVEZNb3ZlKGZyYW1lSW5m
byksIHByb2Nlc3NpbmdVc2VyR2VzdHVyZSwgU3RyaW5nKCksIG51bGxwdHIgfSwgV1RGTW92ZSho
YW5kbGVyKSk7CisgICAgaGFuZGxlUmVxdWVzdCh7IFdURk1vdmUoaGFzaCksIFdURk1vdmUob3B0
aW9ucyksIG1fd2ViUGFnZVByb3h5LCBXZWJBdXRoZW50aWNhdGlvblBhbmVsUmVzdWx0OjpVbmF2
YWlsYWJsZSwgbnVsbHB0ciwgR2xvYmFsRnJhbWVJZGVudGlmaWVyIHsgbV93ZWJQYWdlUHJveHku
d2ViUGFnZUlEKCksIGZyYW1lSWQgfSwgV1RGTW92ZShmcmFtZUluZm8pLCBwcm9jZXNzaW5nVXNl
ckdlc3R1cmUsIFN0cmluZygpLCBudWxscHRyIH0sIFdURk1vdmUoaGFuZGxlcikpOwogfQogCiB2
b2lkIFdlYkF1dGhlbnRpY2F0b3JDb29yZGluYXRvclByb3h5OjpnZXRBc3NlcnRpb24oRnJhbWVJ
ZGVudGlmaWVyIGZyYW1lSWQsIEZyYW1lSW5mb0RhdGEmJiBmcmFtZUluZm8sIFZlY3Rvcjx1aW50
OF90PiYmIGhhc2gsIFB1YmxpY0tleUNyZWRlbnRpYWxSZXF1ZXN0T3B0aW9ucyYmIG9wdGlvbnMs
IGJvb2wgcHJvY2Vzc2luZ1VzZXJHZXN0dXJlLCBSZXF1ZXN0Q29tcGxldGlvbkhhbmRsZXImJiBo
YW5kbGVyKQogewotICAgIGhhbmRsZVJlcXVlc3QoeyBXVEZNb3ZlKGhhc2gpLCBXVEZNb3ZlKG9w
dGlvbnMpLCBtYWtlV2Vha1B0cihtX3dlYlBhZ2VQcm94eSksIFdlYkF1dGhlbnRpY2F0aW9uUGFu
ZWxSZXN1bHQ6OlVuYXZhaWxhYmxlLCBudWxscHRyLCBHbG9iYWxGcmFtZUlkZW50aWZpZXIgeyBt
X3dlYlBhZ2VQcm94eS53ZWJQYWdlSUQoKSwgZnJhbWVJZCB9LCBXVEZNb3ZlKGZyYW1lSW5mbyks
IHByb2Nlc3NpbmdVc2VyR2VzdHVyZSwgU3RyaW5nKCksIG51bGxwdHIgfSwgV1RGTW92ZShoYW5k
bGVyKSk7CisgICAgaGFuZGxlUmVxdWVzdCh7IFdURk1vdmUoaGFzaCksIFdURk1vdmUob3B0aW9u
cyksIG1fd2ViUGFnZVByb3h5LCBXZWJBdXRoZW50aWNhdGlvblBhbmVsUmVzdWx0OjpVbmF2YWls
YWJsZSwgbnVsbHB0ciwgR2xvYmFsRnJhbWVJZGVudGlmaWVyIHsgbV93ZWJQYWdlUHJveHkud2Vi
UGFnZUlEKCksIGZyYW1lSWQgfSwgV1RGTW92ZShmcmFtZUluZm8pLCBwcm9jZXNzaW5nVXNlckdl
c3R1cmUsIFN0cmluZygpLCBudWxscHRyIH0sIFdURk1vdmUoaGFuZGxlcikpOwogfQogI2VuZGlm
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9u
L2ZpZG8vRmlkb1NlcnZpY2UuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViQXV0aGVu
dGljYXRpb24vZmlkby9GaWRvU2VydmljZS5jcHAKaW5kZXggNDhiOWQyZjA3YWViNmQ1N2E2N2Y3
NWM5ZjExYzM0NTc5NGQwNjU1Mi4uYTFlNjQ3M2JjYmI5ZWM2MWU5NmRjNTk1MGIzZGZjMWE5MmVm
ZjNlYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViQXV0aGVudGljYXRp
b24vZmlkby9GaWRvU2VydmljZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vi
QXV0aGVudGljYXRpb24vZmlkby9GaWRvU2VydmljZS5jcHAKQEAgLTQ5LDcgKzQ5LDcgQEAgRmlk
b1NlcnZpY2U6OkZpZG9TZXJ2aWNlKE9ic2VydmVyJiBvYnNlcnZlcikKIHZvaWQgRmlkb1NlcnZp
Y2U6OmdldEluZm8oc3RkOjp1bmlxdWVfcHRyPEN0YXBEcml2ZXI+JiYgZHJpdmVyKQogewogICAg
IC8vIEdldCBhdXRoZW50aWNhdG9yIGluZm8gZnJvbSB0aGUgZGV2aWNlLgotICAgIGRyaXZlci0+
dHJhbnNhY3QoZW5jb2RlRW1wdHlBdXRoZW50aWNhdG9yUmVxdWVzdChDdGFwUmVxdWVzdENvbW1h
bmQ6OmtBdXRoZW50aWNhdG9yR2V0SW5mbyksIFt3ZWFrVGhpcyA9IFdlYWtQdHIgeyAqdGhpcyB9
LCB3ZWFrRHJpdmVyID0gbWFrZVdlYWtQdHIoKmRyaXZlcildIChWZWN0b3I8dWludDhfdD4mJiBy
ZXNwb25zZSkgbXV0YWJsZSB7CisgICAgZHJpdmVyLT50cmFuc2FjdChlbmNvZGVFbXB0eUF1dGhl
bnRpY2F0b3JSZXF1ZXN0KEN0YXBSZXF1ZXN0Q29tbWFuZDo6a0F1dGhlbnRpY2F0b3JHZXRJbmZv
KSwgW3dlYWtUaGlzID0gV2Vha1B0ciB7ICp0aGlzIH0sIHdlYWtEcml2ZXIgPSBXZWFrUHRyIHsg
KmRyaXZlciB9XSAoVmVjdG9yPHVpbnQ4X3Q+JiYgcmVzcG9uc2UpIG11dGFibGUgewogICAgICAg
ICBBU1NFUlQoUnVuTG9vcDo6aXNNYWluKCkpOwogICAgICAgICBpZiAoIXdlYWtUaGlzKQogICAg
ICAgICAgICAgcmV0dXJuOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vi
Q29udGV4dE1lbnVMaXN0ZW5lclByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dl
YkNvbnRleHRNZW51TGlzdGVuZXJQcm94eS5jcHAKaW5kZXggZGM3NDg0ZWNiZDJjYThhOTEwNzU3
MmI2YjhiOWY1YTgzMjRiNGYwZS4uMmM5ZDc4MTJlNGNiYzM0NzRhZDdiOWIzZDA1ZjhiZDA3ZmE5
ZGU1NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViQ29udGV4dE1lbnVM
aXN0ZW5lclByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJDb250ZXh0
TWVudUxpc3RlbmVyUHJveHkuY3BwCkBAIC0zNCw3ICszNCw3IEBAIG5hbWVzcGFjZSBXZWJLaXQg
ewogdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAKIFdlYkNvbnRleHRNZW51TGlzdGVuZXJQcm94
eTo6V2ViQ29udGV4dE1lbnVMaXN0ZW5lclByb3h5KFdlYkNvbnRleHRNZW51TGlzdGVuZXJQcm94
eTo6Q2xpZW50JiBjbGllbnQpCi0gICAgOiBtX2NsaWVudChtYWtlV2Vha1B0cihjbGllbnQpKQor
ICAgIDogbV9jbGllbnQoY2xpZW50KQogewogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9XZWJDb250ZXh0TWVudVByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL1dlYkNvbnRleHRNZW51UHJveHkuY3BwCmluZGV4IGNjYmNjNTc0NTUyODdhMjUyZTZjZmU0
MzE3YTc3MjRkYTdjNTI1MTUuLjljZmYzMWZlMTJhNzJlMDNmNmNhM2Q4Mjg0NDhmMmRmN2Q4Mzdl
YTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkNvbnRleHRNZW51UHJv
eHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkNvbnRleHRNZW51UHJveHku
Y3BwCkBAIC0zOCw3ICszOCw3IEBAIG5hbWVzcGFjZSBXZWJLaXQgewogV2ViQ29udGV4dE1lbnVQ
cm94eTo6V2ViQ29udGV4dE1lbnVQcm94eShXZWJQYWdlUHJveHkmIHBhZ2UsIENvbnRleHRNZW51
Q29udGV4dERhdGEmJiBjb250ZXh0LCBjb25zdCBVc2VyRGF0YSYgdXNlckRhdGEpCiAgICAgOiBt
X2NvbnRleHQoV1RGTW92ZShjb250ZXh0KSkKICAgICAsIG1fdXNlckRhdGEodXNlckRhdGEpCi0g
ICAgLCBtX3BhZ2UobWFrZVdlYWtQdHIocGFnZSkpCisgICAgLCBtX3BhZ2UocGFnZSkKIHsKIH0K
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViQ29va2llTWFuYWdlclBy
b3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkNvb2tpZU1hbmFnZXJQcm94eS5j
cHAKaW5kZXggOTMyZDQxMmE5M2UyNWZhNTExNDM1YjdlNTc4ODRiM2UyNmFlOWU5Zi4uYTcxOTQx
MWFiZTU4OTVhNmE0Y2U5YzI4ZTA1NzZmOTQyNTE3MDFkNiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvV2ViQ29va2llTWFuYWdlclByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9XZWJDb29raWVNYW5hZ2VyUHJveHkuY3BwCkBAIC00MCw3ICs0MCw3IEBA
IG5hbWVzcGFjZSBXZWJLaXQgewogdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAKIFdlYkNvb2tp
ZU1hbmFnZXJQcm94eTo6V2ViQ29va2llTWFuYWdlclByb3h5KE5ldHdvcmtQcm9jZXNzUHJveHkm
IG5ldHdvcmtQcm9jZXNzKQotICAgIDogbV9uZXR3b3JrUHJvY2VzcyhtYWtlV2Vha1B0cihuZXR3
b3JrUHJvY2VzcykpCisgICAgOiBtX25ldHdvcmtQcm9jZXNzKG5ldHdvcmtQcm9jZXNzKQogewog
ICAgIG5ldHdvcmtQcm9jZXNzLmFkZE1lc3NhZ2VSZWNlaXZlcihNZXNzYWdlczo6V2ViQ29va2ll
TWFuYWdlclByb3h5OjptZXNzYWdlUmVjZWl2ZXJOYW1lKCksICp0aGlzKTsKIH0KQEAgLTEzNSw3
ICsxMzUsNyBAQCB2b2lkIFdlYkNvb2tpZU1hbmFnZXJQcm94eTo6c3RvcE9ic2VydmluZ0Nvb2tp
ZUNoYW5nZXMoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklEKQogdm9pZCBXZWJDb29raWVNYW5hZ2Vy
UHJveHk6OnJlZ2lzdGVyT2JzZXJ2ZXIoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBPYnNlcnZl
ciYgb2JzZXJ2ZXIpCiB7CiAgICAgYXV0byByZXN1bHQgPSBtX2Nvb2tpZU9ic2VydmVycy5zZXQo
c2Vzc2lvbklELCBXZWFrSGFzaFNldDxPYnNlcnZlcj4oKSk7Ci0gICAgcmVzdWx0Lml0ZXJhdG9y
LT52YWx1ZS5hZGQoJm9ic2VydmVyKTsKKyAgICByZXN1bHQuaXRlcmF0b3ItPnZhbHVlLmFkZChv
YnNlcnZlcik7CiAKICAgICBpZiAocmVzdWx0LmlzTmV3RW50cnkpCiAgICAgICAgIHN0YXJ0T2Jz
ZXJ2aW5nQ29va2llQ2hhbmdlcyhzZXNzaW9uSUQpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvV2ViRGF0YUxpc3RTdWdnZXN0aW9uc0Ryb3Bkb3duLmNwcCBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL1dlYkRhdGFMaXN0U3VnZ2VzdGlvbnNEcm9wZG93bi5jcHAKaW5kZXgg
ODI0MmNlY2ViMzYzODAxMjIxZWVkZGQwMGViYzE3ZjVlNjE3ZTY0Yi4uZTc4MDU4N2Q1OTEzYzY0
M2FiM2JhYTM1MDY5ZTU5NjE5YzQxZDUxYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvV2ViRGF0YUxpc3RTdWdnZXN0aW9uc0Ryb3Bkb3duLmNwcAorKysgYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9XZWJEYXRhTGlzdFN1Z2dlc3Rpb25zRHJvcGRvd24uY3BwCkBAIC0zMyw3
ICszMyw3IEBACiBuYW1lc3BhY2UgV2ViS2l0IHsKIAogV2ViRGF0YUxpc3RTdWdnZXN0aW9uc0Ry
b3Bkb3duOjpXZWJEYXRhTGlzdFN1Z2dlc3Rpb25zRHJvcGRvd24oV2ViUGFnZVByb3h5JiBwYWdl
KQotICAgIDogbV9wYWdlKG1ha2VXZWFrUHRyKHBhZ2UpKQorICAgIDogbV9wYWdlKHBhZ2UpCiB7
CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkRhdGVUaW1lUGlj
a2VyLmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkRhdGVUaW1lUGlja2VyLmNwcApp
bmRleCA0YjhiZGM1YzU3ZGNkZjFlYjA4MjdlZTVkYTY0MzEwM2IwYjNmZDAzLi44ZWQ3YTFlYjI0
ZGY4M2UwNDIxY2QyZWE4MGZkMWNlMWNlNTY4N2NhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9XZWJEYXRlVGltZVBpY2tlci5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvV2ViRGF0ZVRpbWVQaWNrZXIuY3BwCkBAIC0zMyw3ICszMyw3IEBACiBuYW1lc3BhY2Ug
V2ViS2l0IHsKIAogV2ViRGF0ZVRpbWVQaWNrZXI6OldlYkRhdGVUaW1lUGlja2VyKFdlYlBhZ2VQ
cm94eSYgcGFnZSkKLSAgICA6IG1fcGFnZShtYWtlV2Vha1B0cihwYWdlKSkKKyAgICA6IG1fcGFn
ZShwYWdlKQogewogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJF
ZGl0Q29tbWFuZFByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkVkaXRDb21t
YW5kUHJveHkuY3BwCmluZGV4IDBkYmUwYWZiNDMzZjAyMTcxNTllMTQ2ZjRiYzA4NTNlZDUxNmZk
ODcuLmVjM2M1NTBkNjgzZWI3ZTAzMTg0ZDUzODIxYjcyMzEwODAyZGMxN2MgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkVkaXRDb21tYW5kUHJveHkuY3BwCisrKyBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkVkaXRDb21tYW5kUHJveHkuY3BwCkBAIC0zOSw3ICsz
OSw3IEBAIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogV2ViRWRpdENvbW1hbmRQcm94eTo6V2Vi
RWRpdENvbW1hbmRQcm94eShXZWJVbmRvU3RlcElEIGNvbW1hbmRJRCwgY29uc3QgU3RyaW5nJiBs
YWJlbCwgV2ViUGFnZVByb3h5JiBwYWdlKQogICAgIDogbV9jb21tYW5kSUQoY29tbWFuZElEKQog
ICAgICwgbV9sYWJlbChsYWJlbCkKLSAgICAsIG1fcGFnZShtYWtlV2Vha1B0cihwYWdlKSkKKyAg
ICAsIG1fcGFnZShwYWdlKQogewogICAgIG1fcGFnZS0+YWRkRWRpdENvbW1hbmQoKnRoaXMpOwog
fQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViRnJhbWVQcm94eS5jcHAg
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJGcmFtZVByb3h5LmNwcAppbmRleCBlMmM0NzU3
MTQ0Yzc2ZTBkMWVmNWJiZTJjYWNmNDMzMGM5ODIxMjZhLi5kNDRhNWRiZTZhM2YyNjYzMGIzNDkx
MzI0NGU3ZTQzYjJjMWYxNjMxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9X
ZWJGcmFtZVByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJGcmFtZVBy
b3h5LmNwcApAQCAtNDYsNyArNDYsNyBAQCB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIGNsYXNz
IFdlYlBhZ2VQcm94eTsKIAogV2ViRnJhbWVQcm94eTo6V2ViRnJhbWVQcm94eShXZWJQYWdlUHJv
eHkmIHBhZ2UsIEZyYW1lSWRlbnRpZmllciBmcmFtZUlEKQotICAgIDogbV9wYWdlKG1ha2VXZWFr
UHRyKHBhZ2UpKQorICAgIDogbV9wYWdlKHBhZ2UpCiAgICAgLCBtX2ZyYW1lSUQoZnJhbWVJRCkK
IHsKICAgICBXZWJQcm9jZXNzUG9vbDo6c3RhdGlzdGljcygpLndrRnJhbWVDb3VudCsrOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcCBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKaW5kZXggN2E1ZTVjNDk5NjJhYTBm
M2IzYTlkZjUwMDQ5OTYzYzlmYzkzMjY3Yy4uNzFmYWRmZGVkNmY0ZTlkMGQzNzAxOTIyNDQ0OGZk
YzAzODc4NzA2ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVBy
b3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCkBA
IC00MjEsNyArNDIxLDcgQEAgY2xhc3MgUGFnZUNsaWVudFByb3RlY3RvciB7CiAgICAgV1RGX01B
S0VfTk9OQ09QWUFCTEUoUGFnZUNsaWVudFByb3RlY3Rvcik7CiBwdWJsaWM6CiAgICAgUGFnZUNs
aWVudFByb3RlY3RvcihQYWdlQ2xpZW50JiBwYWdlQ2xpZW50KQotICAgICAgICA6IG1fcGFnZUNs
aWVudChtYWtlV2Vha1B0cihwYWdlQ2xpZW50KSkKKyAgICAgICAgOiBtX3BhZ2VDbGllbnQocGFn
ZUNsaWVudCkKICAgICB7CiAgICAgICAgIG1fcGFnZUNsaWVudC0+cmVmVmlldygpOwogICAgIH0K
QEAgLTQ2Myw3ICs0NjMsNyBAQCBSZWY8V2ViUGFnZVByb3h5PiBXZWJQYWdlUHJveHk6OmNyZWF0
ZShQYWdlQ2xpZW50JiBwYWdlQ2xpZW50LCBXZWJQcm9jZXNzUHJveHkmCiBXZWJQYWdlUHJveHk6
OldlYlBhZ2VQcm94eShQYWdlQ2xpZW50JiBwYWdlQ2xpZW50LCBXZWJQcm9jZXNzUHJveHkmIHBy
b2Nlc3MsIFJlZjxBUEk6OlBhZ2VDb25maWd1cmF0aW9uPiYmIGNvbmZpZ3VyYXRpb24pCiAgICAg
OiBtX2lkZW50aWZpZXIoSWRlbnRpZmllcjo6Z2VuZXJhdGUoKSkKICAgICAsIG1fd2ViUGFnZUlE
KFBhZ2VJZGVudGlmaWVyOjpnZW5lcmF0ZSgpKQotICAgICwgbV9wYWdlQ2xpZW50KG1ha2VXZWFr
UHRyKHBhZ2VDbGllbnQpKQorICAgICwgbV9wYWdlQ2xpZW50KHBhZ2VDbGllbnQpCiAgICAgLCBt
X2NvbmZpZ3VyYXRpb24oV1RGTW92ZShjb25maWd1cmF0aW9uKSkKICAgICAsIG1fbmF2aWdhdGlv
bkNsaWVudChtYWtlVW5pcXVlUmVmPEFQSTo6TmF2aWdhdGlvbkNsaWVudD4oKSkKICAgICAsIG1f
aGlzdG9yeUNsaWVudChtYWtlVW5pcXVlUmVmPEFQSTo6SGlzdG9yeUNsaWVudD4oKSkKQEAgLTkx
Myw3ICs5MTMsNyBAQCBib29sIFdlYlBhZ2VQcm94eTo6c3VzcGVuZEN1cnJlbnRQYWdlSWZQb3Nz
aWJsZShBUEk6Ok5hdmlnYXRpb24mIG5hdmlnYXRpb24sIHN0ZAogCiAgICAgTE9HKFByb2Nlc3NT
d2FwcGluZywgIldlYlBhZ2VQcm94eSAlIiBQUkl1NjQgIiBjcmVhdGVkIHN1c3BlbmRlZCBwYWdl
ICVzIGZvciBwcm9jZXNzIHBpZCAlaSwgYmFjay9mb3J3YXJkIGl0ZW0gJXMiIFBSSXU2NCwgaWRl
bnRpZmllcigpLnRvVUludDY0KCksIHN1c3BlbmRlZFBhZ2UtPmxvZ2dpbmdTdHJpbmcoKSwgbV9w
cm9jZXNzLT5wcm9jZXNzSWRlbnRpZmllcigpLCBmcm9tSXRlbSA/IGZyb21JdGVtLT5pdGVtSUQo
KS5sb2dTdHJpbmcoKSA6IDApOwogCi0gICAgbV9sYXN0U3VzcGVuZGVkUGFnZSA9IG1ha2VXZWFr
UHRyKCpzdXNwZW5kZWRQYWdlKTsKKyAgICBtX2xhc3RTdXNwZW5kZWRQYWdlID0gKnN1c3BlbmRl
ZFBhZ2U7CiAKICAgICBpZiAoZnJvbUl0ZW0gJiYgc2hvdWxkVXNlQmFja0ZvcndhcmRDYWNoZSgp
KQogICAgICAgICBiYWNrRm9yd2FyZENhY2hlKCkuYWRkRW50cnkoKmZyb21JdGVtLCBXVEZNb3Zl
KHN1c3BlbmRlZFBhZ2UpKTsKQEAgLTEwNTgzLDcgKzEwNTgzLDcgQEAgV2ViQ29udGVudE1vZGUg
V2ViUGFnZVByb3h5OjplZmZlY3RpdmVDb250ZW50TW9kZUFmdGVyQWRqdXN0aW5nUG9saWNpZXMo
QVBJOjpXZWIKIAogdm9pZCBXZWJQYWdlUHJveHk6OmFkZE9ic2VydmVyKFdlYlZpZXdEaWRNb3Zl
VG9XaW5kb3dPYnNlcnZlciYgb2JzZXJ2ZXIpCiB7Ci0gICAgYXV0byByZXN1bHQgPSBtX3dlYlZp
ZXdEaWRNb3ZlVG9XaW5kb3dPYnNlcnZlcnMuYWRkKCZvYnNlcnZlciwgbWFrZVdlYWtQdHIob2Jz
ZXJ2ZXIpKTsKKyAgICBhdXRvIHJlc3VsdCA9IG1fd2ViVmlld0RpZE1vdmVUb1dpbmRvd09ic2Vy
dmVycy5hZGQoJm9ic2VydmVyLCBvYnNlcnZlcik7CiAgICAgQVNTRVJUX1VOVVNFRChyZXN1bHQs
IHJlc3VsdC5pc05ld0VudHJ5KTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJv
Y2Vzc1Bvb2wuY3BwCmluZGV4IDg1Njk4ZjViZjgzMGViOTQ3YjU5YTcyMmU5MTY4ZjUyNzIyOTIw
OTcuLjM2ZGU1ODgwMmNlNmVjOTRiZjRmY2M4ZjJjZTQxZmY5YmU3MzZlY2YgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmNwcAorKysgYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5jcHAKQEAgLTQ2OCw3ICs0NjgsNyBAQCB2
b2lkIFdlYlByb2Nlc3NQb29sOjpnZXRHUFVQcm9jZXNzQ29ubmVjdGlvbihXZWJQcm9jZXNzUHJv
eHkmIHdlYlByb2Nlc3NQcm94eSwgRwogI2lmIEVOQUJMRShJUENfVEVTVElOR19BUEkpCiAgICAg
cGFyYW1ldGVycy5pZ25vcmVJbnZhbGlkTWVzc2FnZUZvclRlc3RpbmcgPSB3ZWJQcm9jZXNzUHJv
eHkuaWdub3JlSW52YWxpZE1lc3NhZ2VGb3JUZXN0aW5nKCk7CiAjZW5kaWYKLSAgICBlbnN1cmVH
UFVQcm9jZXNzKCkuZ2V0R1BVUHJvY2Vzc0Nvbm5lY3Rpb24od2ViUHJvY2Vzc1Byb3h5LCBwYXJh
bWV0ZXJzLCBbdGhpcywgd2Vha1RoaXMgPSBXZWFrUHRyIHsgKnRoaXMgfSwgcGFyYW1ldGVycywg
d2ViUHJvY2Vzc1Byb3h5ID0gbWFrZVdlYWtQdHIod2ViUHJvY2Vzc1Byb3h5KSwgcmVwbHkgPSBX
VEZNb3ZlKHJlcGx5KV0gKGF1dG8mIGNvbm5lY3Rpb25JbmZvKSBtdXRhYmxlIHsKKyAgICBlbnN1
cmVHUFVQcm9jZXNzKCkuZ2V0R1BVUHJvY2Vzc0Nvbm5lY3Rpb24od2ViUHJvY2Vzc1Byb3h5LCBw
YXJhbWV0ZXJzLCBbdGhpcywgd2Vha1RoaXMgPSBXZWFrUHRyIHsgKnRoaXMgfSwgcGFyYW1ldGVy
cywgd2ViUHJvY2Vzc1Byb3h5ID0gV2Vha1B0ciB7IHdlYlByb2Nlc3NQcm94eSB9LCByZXBseSA9
IFdURk1vdmUocmVwbHkpXSAoYXV0byYgY29ubmVjdGlvbkluZm8pIG11dGFibGUgewogICAgICAg
ICBpZiAoVU5MSUtFTFkoIUlQQzo6Q29ubmVjdGlvbjo6aWRlbnRpZmllcklzVmFsaWQoY29ubmVj
dGlvbkluZm8uaWRlbnRpZmllcigpKSkpIHsKICAgICAgICAgICAgIC8vIFJldHJ5IG9uIHRoZSBu
ZXh0IFJ1bkxvb3AgaXRlcmF0aW9uIGJlY2F1c2Ugd2UgbWF5IGJlIGluc2lkZSB0aGUgV2ViUHJv
Y2Vzc1Bvb2wgZGVzdHJ1Y3Rvci4KICAgICAgICAgICAgIFJ1bkxvb3A6Om1haW4oKS5kaXNwYXRj
aChbdGhpcywgd2Vha1RoaXMgPSBXVEZNb3ZlKHdlYWtUaGlzKSwgd2ViUHJvY2Vzc1Byb3h5ID0g
V1RGTW92ZSh3ZWJQcm9jZXNzUHJveHkpLCBwYXJhbWV0ZXJzID0gV1RGTW92ZShwYXJhbWV0ZXJz
KSwgcmVwbHkgPSBXVEZNb3ZlKHJlcGx5KV0gKCkgbXV0YWJsZSB7CkBAIC00ODgsNyArNDg4LDcg
QEAgdm9pZCBXZWJQcm9jZXNzUG9vbDo6Z2V0R1BVUHJvY2Vzc0Nvbm5lY3Rpb24oV2ViUHJvY2Vz
c1Byb3h5JiB3ZWJQcm9jZXNzUHJveHksIEcKICNpZiBFTkFCTEUoV0VCX0FVVEhOKQogdm9pZCBX
ZWJQcm9jZXNzUG9vbDo6Z2V0V2ViQXV0aG5Qcm9jZXNzQ29ubmVjdGlvbihXZWJQcm9jZXNzUHJv
eHkmIHdlYlByb2Nlc3NQcm94eSwgTWVzc2FnZXM6OldlYlByb2Nlc3NQcm94eTo6R2V0V2ViQXV0
aG5Qcm9jZXNzQ29ubmVjdGlvbjo6RGVsYXllZFJlcGx5JiYgcmVwbHkpCiB7Ci0gICAgV2ViQXV0
aG5Qcm9jZXNzUHJveHk6OnNpbmdsZXRvbigpLmdldFdlYkF1dGhuUHJvY2Vzc0Nvbm5lY3Rpb24o
d2ViUHJvY2Vzc1Byb3h5LCBbdGhpcywgd2Vha1RoaXMgPSBXZWFrUHRyIHsgKnRoaXMgfSwgd2Vi
UHJvY2Vzc1Byb3h5ID0gbWFrZVdlYWtQdHIod2ViUHJvY2Vzc1Byb3h5KSwgcmVwbHkgPSBXVEZN
b3ZlKHJlcGx5KV0gKGF1dG8mIGNvbm5lY3Rpb25JbmZvKSBtdXRhYmxlIHsKKyAgICBXZWJBdXRo
blByb2Nlc3NQcm94eTo6c2luZ2xldG9uKCkuZ2V0V2ViQXV0aG5Qcm9jZXNzQ29ubmVjdGlvbih3
ZWJQcm9jZXNzUHJveHksIFt0aGlzLCB3ZWFrVGhpcyA9IFdlYWtQdHIgeyAqdGhpcyB9LCB3ZWJQ
cm9jZXNzUHJveHkgPSBXZWFrUHRyIHsgd2ViUHJvY2Vzc1Byb3h5IH0sIHJlcGx5ID0gV1RGTW92
ZShyZXBseSldIChhdXRvJiBjb25uZWN0aW9uSW5mbykgbXV0YWJsZSB7CiAgICAgICAgIGlmIChV
TkxJS0VMWSghSVBDOjpDb25uZWN0aW9uOjppZGVudGlmaWVySXNWYWxpZChjb25uZWN0aW9uSW5m
by5pZGVudGlmaWVyKCkpICYmIHdlYlByb2Nlc3NQcm94eSAmJiB3ZWFrVGhpcykpIHsKICAgICAg
ICAgICAgIFdFQlBST0NFU1NQT09MX1JFTEVBU0VfTE9HX0VSUk9SKFByb2Nlc3MsICJnZXRXZWJB
dXRoblByb2Nlc3NDb25uZWN0aW9uOiBGYWlsZWQgZmlyc3QgYXR0ZW1wdCwgcmV0cnlpbmciKTsK
ICAgICAgICAgICAgIFdlYkF1dGhuUHJvY2Vzc1Byb3h5OjpzaW5nbGV0b24oKS5nZXRXZWJBdXRo
blByb2Nlc3NDb25uZWN0aW9uKCp3ZWJQcm9jZXNzUHJveHksIFdURk1vdmUocmVwbHkpKTsKQEAg
LTg1NCw3ICs4NTQsNyBAQCB2b2lkIFdlYlByb2Nlc3NQb29sOjppbml0aWFsaXplTmV3V2ViUHJv
Y2VzcyhXZWJQcm9jZXNzUHJveHkmIHByb2Nlc3MsIFdlYnNpdGVEYQogCiAgICAgaWYgKGlzUHJl
d2FybWVkID09IFdlYlByb2Nlc3NQcm94eTo6SXNQcmV3YXJtZWQ6OlllcykgewogICAgICAgICBB
U1NFUlQoIW1fcHJld2FybWVkUHJvY2Vzcyk7Ci0gICAgICAgIG1fcHJld2FybWVkUHJvY2VzcyA9
IG1ha2VXZWFrUHRyKHByb2Nlc3MpOworICAgICAgICBtX3ByZXdhcm1lZFByb2Nlc3MgPSBwcm9j
ZXNzOwogICAgIH0KIAogI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpICYmICFQTEFURk9STShNQUND
QVRBTFlTVCkKQEAgLTEwNjcsNyArMTA2Nyw3IEBAIFJlZjxXZWJQYWdlUHJveHk+IFdlYlByb2Nl
c3NQb29sOjpjcmVhdGVXZWJQYWdlKFBhZ2VDbGllbnQmIHBhZ2VDbGllbnQsIFJlZjxBUEk6CiAg
ICAgICAgIHByb2Nlc3MgPSBkdW1teVByb2Nlc3NQcm94eShwYWdlQ29uZmlndXJhdGlvbi0+d2Vi
c2l0ZURhdGFTdG9yZSgpLT5zZXNzaW9uSUQoKSk7CiAgICAgICAgIGlmICghcHJvY2Vzcykgewog
ICAgICAgICAgICAgcHJvY2VzcyA9IFdlYlByb2Nlc3NQcm94eTo6Y3JlYXRlKCp0aGlzLCBwYWdl
Q29uZmlndXJhdGlvbi0+d2Vic2l0ZURhdGFTdG9yZSgpLCBXZWJQcm9jZXNzUHJveHk6OklzUHJl
d2FybWVkOjpObywgQ3Jvc3NPcmlnaW5Nb2RlOjpTaGFyZWQsIFdlYlByb2Nlc3NQcm94eTo6U2hv
dWxkTGF1bmNoUHJvY2Vzczo6Tm8pOwotICAgICAgICAgICAgbV9kdW1teVByb2Nlc3NQcm94aWVz
LmFkZChwYWdlQ29uZmlndXJhdGlvbi0+d2Vic2l0ZURhdGFTdG9yZSgpLT5zZXNzaW9uSUQoKSwg
bWFrZVdlYWtQdHIoKnByb2Nlc3MpKTsKKyAgICAgICAgICAgIG1fZHVtbXlQcm9jZXNzUHJveGll
cy5hZGQocGFnZUNvbmZpZ3VyYXRpb24tPndlYnNpdGVEYXRhU3RvcmUoKS0+c2Vzc2lvbklEKCks
ICpwcm9jZXNzKTsKICAgICAgICAgICAgIG1fcHJvY2Vzc2VzLmFwcGVuZCgqcHJvY2Vzcyk7CiAg
ICAgICAgIH0KICAgICB9IGVsc2UKQEAgLTE2MDIsNyArMTYwMiw3IEBAIHZvaWQgV2ViUHJvY2Vz
c1Bvb2w6OnN0YXJ0ZWRVc2luZ0dhbWVwYWRzKElQQzo6Q29ubmVjdGlvbiYgY29ubmVjdGlvbikK
ICAgICBib29sIHdlcmVBbnlQcm9jZXNzZXNVc2luZ0dhbWVwYWRzID0gIW1fcHJvY2Vzc2VzVXNp
bmdHYW1lcGFkcy5jb21wdXRlc0VtcHR5KCk7CiAKICAgICBBU1NFUlQoIW1fcHJvY2Vzc2VzVXNp
bmdHYW1lcGFkcy5jb250YWlucygqcHJveHkpKTsKLSAgICBtX3Byb2Nlc3Nlc1VzaW5nR2FtZXBh
ZHMuYWRkKHByb3h5KTsKKyAgICBtX3Byb2Nlc3Nlc1VzaW5nR2FtZXBhZHMuYWRkKCpwcm94eSk7
CiAKICAgICBpZiAoIXdlcmVBbnlQcm9jZXNzZXNVc2luZ0dhbWVwYWRzKQogICAgICAgICBVSUdh
bWVwYWRQcm92aWRlcjo6c2luZ2xldG9uKCkucHJvY2Vzc1Bvb2xTdGFydGVkVXNpbmdHYW1lcGFk
cygqdGhpcyk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNz
UHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmNwcApp
bmRleCA5MjUzNzFhNDc1ODdkNTI1MDZhNDU5MTY3NWY2ZTM5Yzc4Nzg3YmFmLi41YzU5NjZlY2Ni
OWU4YTJjYTAyYzFhMjg5ZTFiODE4MjBkNzNkOTJjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL1dlYlByb2Nlc3NQcm94eS5jcHAKQEAgLTkzOSw3ICs5MzksNyBAQCB2b2lkIFdlYlByb2Nl
c3NQcm94eTo6cHJvY2Vzc0RpZFRlcm1pbmF0ZU9yRmFpbGVkVG9MYXVuY2goUHJvY2Vzc1Rlcm1p
bmF0aW9uUmVhcwogICAgICAgICB3ZWJDb25uZWN0aW9uLT5kaWRDbG9zZSgpOwogCiAgICAgYXV0
byBwYWdlcyA9IGNvcHlUb1ZlY3Rvck9mPFJlZlB0cjxXZWJQYWdlUHJveHk+PihtX3BhZ2VNYXAu
dmFsdWVzKCkpOwotICAgIGF1dG8gcHJvdmlzaW9uYWxQYWdlcyA9IFdURjo6bWFwKG1fcHJvdmlz
aW9uYWxQYWdlcywgW10oYXV0byogcHJvdmlzaW9uYWxQYWdlKSB7IHJldHVybiBtYWtlV2Vha1B0
cihwcm92aXNpb25hbFBhZ2UpOyB9KTsKKyAgICBhdXRvIHByb3Zpc2lvbmFsUGFnZXMgPSBXVEY6
Om1hcChtX3Byb3Zpc2lvbmFsUGFnZXMsIFtdKGF1dG8qIHByb3Zpc2lvbmFsUGFnZSkgeyByZXR1
cm4gV2Vha1B0ciB7IHByb3Zpc2lvbmFsUGFnZSB9OyB9KTsKIAogICAgIGF1dG8gaXNSZXNwb25z
aXZlQ2FsbGJhY2tzID0gc3RkOjpleGNoYW5nZShtX2lzUmVzcG9uc2l2ZUNhbGxiYWNrcywgeyB9
KTsKICAgICBmb3IgKGF1dG8mIGNhbGxiYWNrIDogaXNSZXNwb25zaXZlQ2FsbGJhY2tzKQpAQCAt
MTc5MSw3ICsxNzkxLDcgQEAgdm9pZCBXZWJQcm9jZXNzUHJveHk6OmNyZWF0ZVNwZWVjaFJlY29n
bml0aW9uU2VydmVyKFNwZWVjaFJlY29nbml0aW9uU2VydmVySWRlbnQKICAgICBNRVNTQUdFX0NI
RUNLKCFtX3NwZWVjaFJlY29nbml0aW9uU2VydmVyTWFwLmNvbnRhaW5zKGlkZW50aWZpZXIpKTsK
IAogICAgIGF1dG8mIHNwZWVjaFJlY29nbml0aW9uU2VydmVyID0gbV9zcGVlY2hSZWNvZ25pdGlv
blNlcnZlck1hcC5hZGQoaWRlbnRpZmllciwgbnVsbHB0cikuaXRlcmF0b3ItPnZhbHVlOwotICAg
IGF1dG8gcGVybWlzc2lvbkNoZWNrZXIgPSBbd2Vha1BhZ2UgPSBtYWtlV2Vha1B0cih0YXJnZXRQ
YWdlKV0oYXV0byYgcmVxdWVzdCwgYXV0byYmIGNvbXBsZXRpb25IYW5kbGVyKSBtdXRhYmxlIHsK
KyAgICBhdXRvIHBlcm1pc3Npb25DaGVja2VyID0gW3dlYWtQYWdlID0gV2Vha1B0ciB7IHRhcmdl
dFBhZ2UgfV0oYXV0byYgcmVxdWVzdCwgYXV0byYmIGNvbXBsZXRpb25IYW5kbGVyKSBtdXRhYmxl
IHsKICAgICAgICAgaWYgKCF3ZWFrUGFnZSkgewogICAgICAgICAgICAgY29tcGxldGlvbkhhbmRs
ZXIoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25FcnJvciB7IFNwZWVjaFJlY29nbml0aW9uRXJy
b3JUeXBlOjpOb3RBbGxvd2VkLCAiUGFnZSBubyBsb25nZXIgZXhpc3RzIl9zIH0pOwogICAgICAg
ICAgICAgcmV0dXJuOwpAQCAtMTc5OSwxMiArMTc5OSwxMiBAQCB2b2lkIFdlYlByb2Nlc3NQcm94
eTo6Y3JlYXRlU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXIoU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXJJ
ZGVudAogCiAgICAgICAgIHdlYWtQYWdlLT5yZXF1ZXN0U3BlZWNoUmVjb2duaXRpb25QZXJtaXNz
aW9uKHJlcXVlc3QsIFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKTsKICAgICB9OwotICAgIGF1
dG8gY2hlY2tJZk1vY2tDYXB0dXJlRGV2aWNlc0VuYWJsZWQgPSBbd2Vha1BhZ2UgPSBtYWtlV2Vh
a1B0cih0YXJnZXRQYWdlKV0oKSB7CisgICAgYXV0byBjaGVja0lmTW9ja0NhcHR1cmVEZXZpY2Vz
RW5hYmxlZCA9IFt3ZWFrUGFnZSA9IFdlYWtQdHIgeyB0YXJnZXRQYWdlIH1dKCkgewogICAgICAg
ICByZXR1cm4gd2Vha1BhZ2UgJiYgd2Vha1BhZ2UtPnByZWZlcmVuY2VzKCkubW9ja0NhcHR1cmVE
ZXZpY2VzRW5hYmxlZCgpOwogICAgIH07CiAKICNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQotICAg
IGF1dG8gY3JlYXRlUmVhbHRpbWVNZWRpYVNvdXJjZSA9IFt3ZWFrUGFnZSA9IG1ha2VXZWFrUHRy
KHRhcmdldFBhZ2UpXSgpIHsKKyAgICBhdXRvIGNyZWF0ZVJlYWx0aW1lTWVkaWFTb3VyY2UgPSBb
d2Vha1BhZ2UgPSBXZWFrUHRyIHsgdGFyZ2V0UGFnZSB9XSgpIHsKICAgICAgICAgcmV0dXJuIHdl
YWtQYWdlID8gd2Vha1BhZ2UtPmNyZWF0ZVJlYWx0aW1lTWVkaWFTb3VyY2VGb3JTcGVlY2hSZWNv
Z25pdGlvbigpIDogQ2FwdHVyZVNvdXJjZU9yRXJyb3IgeyAiUGFnZSBpcyBpbnZhbGlkIiB9Owog
ICAgIH07CiAgICAgc3BlZWNoUmVjb2duaXRpb25TZXJ2ZXIgPSBtYWtlVW5pcXVlPFNwZWVjaFJl
Y29nbml0aW9uU2VydmVyPigqY29ubmVjdGlvbigpLCBpZGVudGlmaWVyLCBXVEZNb3ZlKHBlcm1p
c3Npb25DaGVja2VyKSwgV1RGTW92ZShjaGVja0lmTW9ja0NhcHR1cmVEZXZpY2VzRW5hYmxlZCks
IFdURk1vdmUoY3JlYXRlUmVhbHRpbWVNZWRpYVNvdXJjZSkpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9XZWJQcm9jZXNzUHJveHkuaAppbmRleCBlMzlkNGFmODY1M2JkNzg0YTA5MGMxMzZlODBl
MGM1N2I3NDc0OWY1Li4xMzk1MTdiZGIyNGI1NGM0OGVkZmJiZWIwMTNkZTkyOWE1ZjE0ZWY2IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuaAorKysg
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuaApAQCAtNTUxLDcgKzU1
MSw3IEBAIHByaXZhdGU6CiAgICAgcHVibGljOgogICAgICAgICBXZWFrT3JTdHJvbmdQdHIoVCYg
b2JqZWN0LCBJc1dlYWsgaXNXZWFrKQogICAgICAgICAgICAgOiBtX2lzV2Vhayhpc1dlYWspCi0g
ICAgICAgICAgICAsIG1fd2Vha09iamVjdChtYWtlV2Vha1B0cihvYmplY3QpKQorICAgICAgICAg
ICAgLCBtX3dlYWtPYmplY3Qob2JqZWN0KQogICAgICAgICB7CiAgICAgICAgICAgICB1cGRhdGVT
dHJvbmdSZWZlcmVuY2UoKTsKICAgICAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9yZS5jcHAgYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlLmNwcAppbmRleCBjOWU2ZTEx
M2U5ZGUzN2U5Yzg1MzA1NjM3NTVhN2M5YWEyZmEzNzYxLi4xZDU1MDc5ZDIxNDZiODI3Y2Q0Mjgz
OTRmMDIzNzNhZWJlN2U4MjlkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9X
ZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlLmNwcApAQCAtMTc0Niw3ICsxNzQ2LDcg
QEAgdm9pZCBXZWJzaXRlRGF0YVN0b3JlOjpyZW1vdmVNZWRpYUtleXMoY29uc3QgU3RyaW5nJiBt
ZWRpYUtleXNTdG9yYWdlRGlyZWN0b3J5LAogdm9pZCBXZWJzaXRlRGF0YVN0b3JlOjpnZXROZXR3
b3JrUHJvY2Vzc0Nvbm5lY3Rpb24oV2ViUHJvY2Vzc1Byb3h5JiB3ZWJQcm9jZXNzUHJveHksIENv
bXBsZXRpb25IYW5kbGVyPHZvaWQoY29uc3QgTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uSW5mbyYp
PiYmIHJlcGx5LCBTaG91bGRSZXRyeU9uRmFpbHVyZSBzaG91bGRSZXRyeU9uRmFpbHVyZSkKIHsK
ICAgICBhdXRvJiBuZXR3b3JrUHJvY2Vzc1Byb3h5ID0gbmV0d29ya1Byb2Nlc3MoKTsKLSAgICBu
ZXR3b3JrUHJvY2Vzc1Byb3h5LmdldE5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbih3ZWJQcm9jZXNz
UHJveHksIFt3ZWFrVGhpcyA9IFdlYWtQdHIgeyAqdGhpcyB9LCBuZXR3b3JrUHJvY2Vzc1Byb3h5
ID0gbWFrZVdlYWtQdHIobmV0d29ya1Byb2Nlc3NQcm94eSksIHdlYlByb2Nlc3NQcm94eSA9IG1h
a2VXZWFrUHRyKHdlYlByb2Nlc3NQcm94eSksIHJlcGx5ID0gV1RGTW92ZShyZXBseSksIHNob3Vs
ZFJldHJ5T25GYWlsdXJlXSAoYXV0byYgY29ubmVjdGlvbkluZm8pIG11dGFibGUgeworICAgIG5l
dHdvcmtQcm9jZXNzUHJveHkuZ2V0TmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uKHdlYlByb2Nlc3NQ
cm94eSwgW3dlYWtUaGlzID0gV2Vha1B0ciB7ICp0aGlzIH0sIG5ldHdvcmtQcm9jZXNzUHJveHkg
PSBXZWFrUHRyIHsgbmV0d29ya1Byb2Nlc3NQcm94eSB9LCB3ZWJQcm9jZXNzUHJveHkgPSBXZWFr
UHRyIHsgd2ViUHJvY2Vzc1Byb3h5IH0sIHJlcGx5ID0gV1RGTW92ZShyZXBseSksIHNob3VsZFJl
dHJ5T25GYWlsdXJlXSAoYXV0byYgY29ubmVjdGlvbkluZm8pIG11dGFibGUgewogICAgICAgICBp
ZiAoVU5MSUtFTFkoIUlQQzo6Q29ubmVjdGlvbjo6aWRlbnRpZmllcklzVmFsaWQoY29ubmVjdGlv
bkluZm8uaWRlbnRpZmllcigpKSkpIHsKICAgICAgICAgICAgIGF1dG8gbG9nRXJyb3IgPSBbbmV0
d29ya1Byb2Nlc3NQcm94eSwgd2ViUHJvY2Vzc1Byb3h5XSgpIHsKICNpZiBPUyhEQVJXSU4pCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9ndGsvV2F5bGFuZENvbXBvc2l0b3Iu
Y3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvZ3RrL1dheWxhbmRDb21wb3NpdG9yLmNwcApp
bmRleCBiMzRkMTNiODY1YzUwMjIyN2VjYWEwNzgzZGYxMGMyZjUwMzg5YWU0Li4xMTA4YWFlNzc4
YTg0ZGNjMTc2NDRiYzlkOTM5NWU0MzZkOTFkYmY1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9ndGsvV2F5bGFuZENvbXBvc2l0b3IuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL2d0ay9XYXlsYW5kQ29tcG9zaXRvci5jcHAKQEAgLTIzMyw3ICsyMzMsNyBAQCB2
b2lkIFdheWxhbmRDb21wb3NpdG9yOjpTdXJmYWNlOjphdHRhY2hCdWZmZXIoc3RydWN0IHdsX3Jl
c291cmNlKiBidWZmZXIpCiAKICAgICBpZiAoYnVmZmVyKSB7CiAgICAgICAgIGF1dG8qIGNvbXBv
c2l0b3JCdWZmZXIgPSBXYXlsYW5kQ29tcG9zaXRvcjo6QnVmZmVyOjpnZXRPckNyZWF0ZShidWZm
ZXIpOwotICAgICAgICBtX3BlbmRpbmdCdWZmZXIgPSBtYWtlV2Vha1B0cigqY29tcG9zaXRvckJ1
ZmZlcik7CisgICAgICAgIG1fcGVuZGluZ0J1ZmZlciA9ICpjb21wb3NpdG9yQnVmZmVyOwogICAg
IH0KIH0KIApAQCAtNTcxLDcgKzU3MSw3IEBAIHZvaWQgV2F5bGFuZENvbXBvc2l0b3I6OmJpbmRT
dXJmYWNlVG9XZWJQYWdlKFdheWxhbmRDb21wb3NpdG9yOjpTdXJmYWNlKiBzdXJmYWNlCiAKICAg
ICB1bmJpbmRXZWJQYWdlKCp3ZWJQYWdlKTsKICAgICBzdXJmYWNlLT5zZXRXZWJQYWdlKHdlYlBh
Z2UpOwotICAgIG1fcGFnZU1hcC5zZXQod2ViUGFnZSwgbWFrZVdlYWtQdHIoKnN1cmZhY2UpKTsK
KyAgICBtX3BhZ2VNYXAuc2V0KHdlYlBhZ2UsICpzdXJmYWNlKTsKIH0KIAogdm9pZCBXYXlsYW5k
Q29tcG9zaXRvcjo6YmluZFdlYlBhZ2UoV2ViUGFnZVByb3h5JiB3ZWJQYWdlKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1Byb2Nlc3NBc3NlcnRpb25JT1MubW0gYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvUHJvY2Vzc0Fzc2VydGlvbklPUy5tbQppbmRleCAx
MThiYmIzNmJjODdmMzNhYTFlYTI4ZDFjZjRiZDhmOGU2ODFkOTRhLi5lYmNmN2IxZGM4YWNjNGE3
YTExZjNjYzliYWQwNDQ4YjlkMmQ2OTYzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9pb3MvUHJvY2Vzc0Fzc2VydGlvbklPUy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9pb3MvUHJvY2Vzc0Fzc2VydGlvbklPUy5tbQpAQCAtMTEwLDcgKzExMCw3IEBAIC0gKHZv
aWQpZGVhbGxvYwogCiAtICh2b2lkKWFkZEFzc2VydGlvbk5lZWRpbmdCYWNrZ3JvdW5kVGFzazoo
UHJvY2Vzc0FuZFVJQXNzZXJ0aW9uJilhc3NlcnRpb24KIHsKLSAgICBfYXNzZXJ0aW9uc05lZWRp
bmdCYWNrZ3JvdW5kVGFzay5hZGQoJmFzc2VydGlvbik7CisgICAgX2Fzc2VydGlvbnNOZWVkaW5n
QmFja2dyb3VuZFRhc2suYWRkKGFzc2VydGlvbik7CiAgICAgW3NlbGYgX3VwZGF0ZUJhY2tncm91
bmRUYXNrXTsKIH0KIApAQCAtMTI2LDcgKzEyNiw3IEBAIC0gKHZvaWQpX25vdGlmeUFzc2VydGlv
bnNPZkltbWluZW50U3VzcGVuc2lvbgogCiAgICAgVmVjdG9yPFdlYWtQdHI8UHJvY2Vzc0FuZFVJ
QXNzZXJ0aW9uPj4gYXNzZXJ0aW9uc05lZWRpbmdCYWNrZ3JvdW5kVGFzazsKICAgICBmb3IgKGF1
dG8mIGFzc2VydGlvbiA6IF9hc3NlcnRpb25zTmVlZGluZ0JhY2tncm91bmRUYXNrKQotICAgICAg
ICBhc3NlcnRpb25zTmVlZGluZ0JhY2tncm91bmRUYXNrLmFwcGVuZChtYWtlV2Vha1B0cihhc3Nl
cnRpb24pKTsKKyAgICAgICAgYXNzZXJ0aW9uc05lZWRpbmdCYWNrZ3JvdW5kVGFzay5hcHBlbmQo
YXNzZXJ0aW9uKTsKIAogICAgIC8vIE5vdGUgdGhhdCB3ZSBkb24ndCBleHBlY3QgY2xpZW50cyB0
byByZWdpc3RlciBuZXcgYXNzZXJ0aW9ucyB3aGVuIGdldHRpbmcgbm90aWZpZWQgdGhhdCB0aGUg
VUkgYXNzZXJ0aW9uIHdpbGwgZXhwaXJlIGltbWluZW50bHkuCiAgICAgLy8gSWYgY2xpZW50cyB3
ZXJlIHRvIGRvIHNvLCB0aGVuIHRob3NlIG5ldyBhc3NlcnRpb25zIHdvdWxkIG5vdCBnZXQgbm90
aWZpZWQgb2YgdGhlIGltbWluZW50IHN1c3BlbnNpb24uCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9pb3MvV2ViRGF0YUxpc3RTdWdnZXN0aW9uc0Ryb3Bkb3duSU9TLm1tIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dlYkRhdGFMaXN0U3VnZ2VzdGlvbnNEcm9wZG93
bklPUy5tbQppbmRleCA3NWI3ZmE3NWYyYzYxNjUzY2Y5YzRjYmZhZDAwYWJjMGU0NDMwZjdjLi5l
ZjZkZjY1OGNkMjkwM2E1ZjNmNmE3MDJhYmJjZmI1ZDJmNGY3ZDMxIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV2ViRGF0YUxpc3RTdWdnZXN0aW9uc0Ryb3Bkb3duSU9T
Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XZWJEYXRhTGlzdFN1Z2dlc3Rp
b25zRHJvcGRvd25JT1MubW0KQEAgLTE3Myw3ICsxNzMsNyBAQCAtICh2b2lkKXVwZGF0ZVdpdGhJ
bmZvcm1hdGlvbjooV2ViQ29yZTo6RGF0YUxpc3RTdWdnZXN0aW9uSW5mb3JtYXRpb24mJilpbmZv
cm1hdAogCiAtICh2b2lkKXNob3dTdWdnZXN0aW9uc0Ryb3Bkb3duOihXZWJLaXQ6OldlYkRhdGFM
aXN0U3VnZ2VzdGlvbnNEcm9wZG93bklPUyYpZHJvcGRvd24gYWN0aXZhdGlvblR5cGU6KFdlYkNv
cmU6OkRhdGFMaXN0U3VnZ2VzdGlvbkFjdGl2YXRpb25UeXBlKWFjdGl2YXRpb25UeXBlCiB7Ci0g
ICAgX2Ryb3Bkb3duID0gbWFrZVdlYWtQdHIoZHJvcGRvd24pOworICAgIF9kcm9wZG93biA9IGRy
b3Bkb3duOwogfQogCiAtICh2b2lkKWRpZFNlbGVjdE9wdGlvbkF0SW5kZXg6KE5TSW50ZWdlcilp
bmRleApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFjL1BhZ2VDbGllbnRJ
bXBsTWFjLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFjL1BhZ2VDbGllbnRJbXBsTWFj
Lm1tCmluZGV4IGE4NTU3NTMwZjBjNjVlM2E0ZjlmYzJlMGU2MmE1MjZhNTc4NDk0ZDAuLjdmMTU2
ZGRlZmFjZjcxMGRmNDU3ODZhYzY1ZGE4OTQ0ZjA5ZDEyZDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL21hYy9QYWdlQ2xpZW50SW1wbE1hYy5tbQorKysgYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9tYWMvUGFnZUNsaWVudEltcGxNYWMubW0KQEAgLTExNyw3ICsxMTcsNyBA
QCBQYWdlQ2xpZW50SW1wbDo6flBhZ2VDbGllbnRJbXBsKCkgPSBkZWZhdWx0OwogCiB2b2lkIFBh
Z2VDbGllbnRJbXBsOjpzZXRJbXBsKFdlYlZpZXdJbXBsJiBpbXBsKQogewotICAgIG1faW1wbCA9
IG1ha2VXZWFrUHRyKGltcGwpOworICAgIG1faW1wbCA9IGltcGw7CiB9CiAKIHN0ZDo6dW5pcXVl
X3B0cjxEcmF3aW5nQXJlYVByb3h5PiBQYWdlQ2xpZW50SW1wbDo6Y3JlYXRlRHJhd2luZ0FyZWFQ
cm94eShXZWJQcm9jZXNzUHJveHkmIHByb2Nlc3MpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9tYWMvV0tSZXZlYWxJdGVtUHJlc2VudGVyLm1tIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvbWFjL1dLUmV2ZWFsSXRlbVByZXNlbnRlci5tbQppbmRleCAwZmU0MTRkOThkZTlj
Zjk2ZjQ4NGRlMzc1OWNkMmI2MmQwNmRkZDdhLi4wZjUxZmQ4ZWJiMDEwOTVjYWE4NTc0NzNkNGY0
NWVmZTAxOGU1MWVhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMvV0tS
ZXZlYWxJdGVtUHJlc2VudGVyLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9X
S1JldmVhbEl0ZW1QcmVzZW50ZXIubW0KQEAgLTUzLDcgKzUzLDcgQEAgLSAoaW5zdGFuY2V0eXBl
KWluaXRXaXRoV2ViVmlld0ltcGw6KGNvbnN0IFdlYktpdDo6V2ViVmlld0ltcGwmKWltcGwgaXRl
bTooUlZJdGUKICAgICBpZiAoIShzZWxmID0gW3N1cGVyIGluaXRdKSkKICAgICAgICAgcmV0dXJu
IG5pbDsKIAotICAgIF9pbXBsID0gbWFrZVdlYWtQdHIoaW1wbCk7CisgICAgX2ltcGwgPSBpbXBs
OwogICAgIF9wcmVzZW50ZXIgPSBhZG9wdE5TKFtQQUw6OmFsbG9jUlZQcmVzZW50ZXJJbnN0YW5j
ZSgpIGluaXRdKTsKICAgICBfcHJlc2VudGluZ0NvbnRleHQgPSBhZG9wdE5TKFtQQUw6OmFsbG9j
UlZQcmVzZW50aW5nQ29udGV4dEluc3RhbmNlKCkgaW5pdFdpdGhQb2ludGVyTG9jYXRpb25JblZp
ZXc6bWVudUxvY2F0aW9uSW5WaWV3IGluVmlldzppbXBsLnZpZXcoKSBoaWdobGlnaHREZWxlZ2F0
ZTpzZWxmXSk7CiAgICAgX2l0ZW0gPSBpdGVtOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvbWFjL1dlYkNvbnRleHRNZW51UHJveHlNYWMubW0gYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9tYWMvV2ViQ29udGV4dE1lbnVQcm94eU1hYy5tbQppbmRleCA3NzkyYjBmMjJkN2Q1
ZjVlNWNiNzIzZWFmYmVmZTQ4Yjk4MzA4NGM4Li4zNDU0NTE5OGVlZmUxMGZjN2QyZWM5ZWI0YWQw
YWRmNDAzNTQ0MGM2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMvV2Vi
Q29udGV4dE1lbnVQcm94eU1hYy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMv
V2ViQ29udGV4dE1lbnVQcm94eU1hYy5tbQpAQCAtNTM3LDcgKzUzNyw3IEBAIHZvaWQgV2ViQ29u
dGV4dE1lbnVQcm94eU1hYzo6Z2V0Q29udGV4dE1lbnVGcm9tSXRlbXMoY29uc3QgVmVjdG9yPFdl
YkNvbnRleHRNZW51CiAgICAgYXV0byBpbWFnZUJpdG1hcCA9IG1fY29udGV4dC53ZWJIaXRUZXN0
UmVzdWx0RGF0YSgpLmltYWdlQml0bWFwOwogCiAgICAgYXV0byBzcGFyc2VNZW51SXRlbXMgPSBy
ZXRhaW5QdHIoW05TUG9pbnRlckFycmF5IHN0cm9uZ09iamVjdHNQb2ludGVyQXJyYXldKTsKLSAg
ICBhdXRvIGluc2VydE1lbnVJdGVtID0gbWFrZUJsb2NrUHRyKFtwcm90ZWN0ZWRUaGlzID0gUmVm
IHsgKnRoaXMgfSwgd2Vha1BhZ2UgPSBtYWtlV2Vha1B0cihwYWdlKCkpLCBpbWFnZVVSTCA9IFdU
Rk1vdmUoaW1hZ2VVUkwpLCBpbWFnZUJpdG1hcCA9IFdURk1vdmUoaW1hZ2VCaXRtYXApLCBzaG91
bGRVcGRhdGVRdWlja0xvb2tJdGVtVGl0bGUsIHF1aWNrTG9va0l0ZW1Ub0luc2VydElmTmVlZGVk
ID0gV1RGTW92ZShxdWlja0xvb2tJdGVtVG9JbnNlcnRJZk5lZWRlZCksIGNvbXBsZXRpb25IYW5k
bGVyID0gV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlciksIGl0ZW1zUmVtYWluaW5nID0gZmlsdGVy
ZWRJdGVtcy5zaXplKCksIG1lbnUgPSBXVEZNb3ZlKG1lbnUpLCBzcGFyc2VNZW51SXRlbXNdKE5T
TWVudUl0ZW0gKml0ZW0sIE5TVUludGVnZXIgaW5kZXgpIG11dGFibGUgeworICAgIGF1dG8gaW5z
ZXJ0TWVudUl0ZW0gPSBtYWtlQmxvY2tQdHIoW3Byb3RlY3RlZFRoaXMgPSBSZWYgeyAqdGhpcyB9
LCB3ZWFrUGFnZSA9IFdlYWtQdHIgeyBwYWdlKCkgfSwgaW1hZ2VVUkwgPSBXVEZNb3ZlKGltYWdl
VVJMKSwgaW1hZ2VCaXRtYXAgPSBXVEZNb3ZlKGltYWdlQml0bWFwKSwgc2hvdWxkVXBkYXRlUXVp
Y2tMb29rSXRlbVRpdGxlLCBxdWlja0xvb2tJdGVtVG9JbnNlcnRJZk5lZWRlZCA9IFdURk1vdmUo
cXVpY2tMb29rSXRlbVRvSW5zZXJ0SWZOZWVkZWQpLCBjb21wbGV0aW9uSGFuZGxlciA9IFdURk1v
dmUoY29tcGxldGlvbkhhbmRsZXIpLCBpdGVtc1JlbWFpbmluZyA9IGZpbHRlcmVkSXRlbXMuc2l6
ZSgpLCBtZW51ID0gV1RGTW92ZShtZW51KSwgc3BhcnNlTWVudUl0ZW1zXShOU01lbnVJdGVtICpp
dGVtLCBOU1VJbnRlZ2VyIGluZGV4KSBtdXRhYmxlIHsKICAgICAgICAgQVNTRVJUKGluZGV4IDwg
W3NwYXJzZU1lbnVJdGVtcyBjb3VudF0pOwogICAgICAgICBBU1NFUlQoIVtzcGFyc2VNZW51SXRl
bXMgcG9pbnRlckF0SW5kZXg6aW5kZXhdKTsKICAgICAgICAgW3NwYXJzZU1lbnVJdGVtcyByZXBs
YWNlUG9pbnRlckF0SW5kZXg6aW5kZXggd2l0aFBvaW50ZXI6aXRlbV07CkBAIC01ODUsNyArNTg1
LDcgQEAgdm9pZCBXZWJDb250ZXh0TWVudVByb3h5TWFjOjppbnNlcnRPclVwZGF0ZVF1aWNrTG9v
a0ltYWdlSXRlbShjb25zdCBVUkwmIGltYWdlVVIKICAgICB9CiAKICAgICBpZiAoc2hvdWxkVXBk
YXRlUXVpY2tMb29rSXRlbVRpdGxlKSB7Ci0gICAgICAgIHBhZ2UtPmNvbXB1dGVIYXNJbWFnZUFu
YWx5c2lzUmVzdWx0cyhpbWFnZVVSTCwgaW1hZ2VCaXRtYXAuZ2V0KCksIEltYWdlQW5hbHlzaXNU
eXBlOjpWaXN1YWxTZWFyY2gsIFt3ZWFrVGhpcyA9IFdlYWtQdHIgeyAqdGhpcyB9LCB3ZWFrUGFn
ZSA9IG1ha2VXZWFrUHRyKHBhZ2UuZ2V0KCkpLCBpbWFnZVVSTCwgaW1hZ2VCaXRtYXAgPSBXVEZN
b3ZlKGltYWdlQml0bWFwKV0gKGJvb2wgaGFzVmlzdWFsU2VhcmNoUmVzdWx0cykgbXV0YWJsZSB7
CisgICAgICAgIHBhZ2UtPmNvbXB1dGVIYXNJbWFnZUFuYWx5c2lzUmVzdWx0cyhpbWFnZVVSTCwg
aW1hZ2VCaXRtYXAuZ2V0KCksIEltYWdlQW5hbHlzaXNUeXBlOjpWaXN1YWxTZWFyY2gsIFt3ZWFr
VGhpcyA9IFdlYWtQdHIgeyAqdGhpcyB9LCB3ZWFrUGFnZSA9IFdlYWtQdHIgeyBwYWdlIH0sIGlt
YWdlVVJMLCBpbWFnZUJpdG1hcCA9IFdURk1vdmUoaW1hZ2VCaXRtYXApXSAoYm9vbCBoYXNWaXN1
YWxTZWFyY2hSZXN1bHRzKSBtdXRhYmxlIHsKICAgICAgICAgICAgIFJlZlB0ciBwcm90ZWN0ZWRU
aGlzIHsgd2Vha1RoaXMuZ2V0KCkgfTsKICAgICAgICAgICAgIGlmICghcHJvdGVjdGVkVGhpcykK
ICAgICAgICAgICAgICAgICByZXR1cm47CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9tYWMvV2ViRGF0YUxpc3RTdWdnZXN0aW9uc0Ryb3Bkb3duTWFjLm1tIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvbWFjL1dlYkRhdGFMaXN0U3VnZ2VzdGlvbnNEcm9wZG93bk1hYy5tbQpp
bmRleCBkMWE0MGFlMDk1ZWJmYmNhOTEyMDk3MWFhOTQ5Yzc5NTRkNTM4ODA5Li44ZjM1Y2JmNjAy
YjYzNDc2NmEwMDFiNGNlOGQyNmUzZDNlMWZmNjgyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9tYWMvV2ViRGF0YUxpc3RTdWdnZXN0aW9uc0Ryb3Bkb3duTWFjLm1tCisrKyBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9XZWJEYXRhTGlzdFN1Z2dlc3Rpb25zRHJvcGRv
d25NYWMubW0KQEAgLTQ1NSw3ICs0NTUsNyBAQCAtIChOU1JlY3QpZHJvcGRvd25SZWN0Rm9yRWxl
bWVudFJlY3Q6KGNvbnN0IFdlYkNvcmU6OkludFJlY3QmKXJlY3QKIAogLSAodm9pZClzaG93U3Vn
Z2VzdGlvbnNEcm9wZG93bjooV2ViS2l0OjpXZWJEYXRhTGlzdFN1Z2dlc3Rpb25zRHJvcGRvd25N
YWMmKWRyb3Bkb3duCiB7Ci0gICAgX2Ryb3Bkb3duID0gbWFrZVdlYWtQdHIoZHJvcGRvd24pOwor
ICAgIF9kcm9wZG93biA9IGRyb3Bkb3duOwogICAgIFtbX2VuY2xvc2luZ1dpbmRvdyBjb250ZW50
Vmlld10gYWRkU3Vidmlldzpfc2Nyb2xsVmlldy5nZXQoKV07CiAgICAgW190YWJsZSByZWxvYWRd
OwogICAgIFtbX3ByZXNlbnRpbmdWaWV3IHdpbmRvd10gYWRkQ2hpbGRXaW5kb3c6X2VuY2xvc2lu
Z1dpbmRvdy5nZXQoKSBvcmRlcmVkOk5TV2luZG93QWJvdmVdOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvbWFjL1dlYkRhdGVUaW1lUGlja2VyTWFjLm1tIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvbWFjL1dlYkRhdGVUaW1lUGlja2VyTWFjLm1tCmluZGV4IDdiNWNhODJh
YjNkNmQ3MDVlZGE4NjkyN2VjMzUyYmI3MzJjZTkzNDUuLjJhNDIzM2YzZjc5MDAzODAxZjYyYzky
NWQyNTQ1MjdhNjhjNDZhMzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL21h
Yy9XZWJEYXRlVGltZVBpY2tlck1hYy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9t
YWMvV2ViRGF0ZVRpbWVQaWNrZXJNYWMubW0KQEAgLTIyOCw3ICsyMjgsNyBAQCAtIChpZClpbml0
V2l0aFBhcmFtczooV2ViQ29yZTo6RGF0ZVRpbWVDaG9vc2VyUGFyYW1ldGVycyYmKXBhcmFtcyBp
blZpZXc6KE5TVmlldwogCiAtICh2b2lkKXNob3dQaWNrZXI6KFdlYktpdDo6V2ViRGF0ZVRpbWVQ
aWNrZXJNYWMmKXBpY2tlcgogewotICAgIF9waWNrZXIgPSBtYWtlV2Vha1B0cihwaWNrZXIpOwor
ICAgIF9waWNrZXIgPSBwaWNrZXI7CiAKICAgICBbW19lbmNsb3NpbmdXaW5kb3cgY29udGVudFZp
ZXddIGFkZFN1YnZpZXc6X2RhdGVQaWNrZXIuZ2V0KCldOwogICAgIFtbX3ByZXNlbnRpbmdWaWV3
IHdpbmRvd10gYWRkQ2hpbGRXaW5kb3c6X2VuY2xvc2luZ1dpbmRvdy5nZXQoKSBvcmRlcmVkOk5T
V2luZG93QWJvdmVdOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0F1dG9t
YXRpb24vV2ViQXV0b21hdGlvbkRPTVdpbmRvd09ic2VydmVyLmNwcCBiL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9BdXRvbWF0aW9uL1dlYkF1dG9tYXRpb25ET01XaW5kb3dPYnNlcnZlci5jcHAK
aW5kZXggYzAyOThmMTJhY2U4YmE4NGQwYThjNWI3MzFiNzI0MWIyMjcxN2Y3OC4uODZlMDdhMDQ2
MDQzYzFiMTM5YjI1YWNhNDFiMzdiZTJhMzViYjI1MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL0F1dG9tYXRpb24vV2ViQXV0b21hdGlvbkRPTVdpbmRvd09ic2VydmVyLmNw
cAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvQXV0b21hdGlvbi9XZWJBdXRvbWF0aW9u
RE9NV2luZG93T2JzZXJ2ZXIuY3BwCkBAIC0zMiw3ICszMiw3IEBACiBuYW1lc3BhY2UgV2ViS2l0
IHsKIAogV2ViQXV0b21hdGlvbkRPTVdpbmRvd09ic2VydmVyOjpXZWJBdXRvbWF0aW9uRE9NV2lu
ZG93T2JzZXJ2ZXIoV2ViQ29yZTo6RE9NV2luZG93JiB3aW5kb3csIFdURjo6RnVuY3Rpb248dm9p
ZChXZWJBdXRvbWF0aW9uRE9NV2luZG93T2JzZXJ2ZXImKT4mJiBjYWxsYmFjaykKLSAgICA6IG1f
d2luZG93KG1ha2VXZWFrUHRyKHdpbmRvdykpCisgICAgOiBtX3dpbmRvdyh3aW5kb3cpCiAgICAg
LCBtX2NhbGxiYWNrKFdURk1vdmUoY2FsbGJhY2spKQogewogICAgIEFTU0VSVChtX3dpbmRvdy0+
ZnJhbWUoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBo
aWNzL1JlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXJQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXJQcm94eS5jcHAK
aW5kZXggYTIzOWVkMjE5YmU3OWZmMzZiYTY3ODBhYmJiNDJmNzBkM2Q3YzY5NS4uNmM5MTRkODA4
MjVkNWUwZmFhYzhiN2E0OGEyNDgzOWFlN2FkMWIzMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyUHJveHku
Y3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3RlRGlz
cGxheUxpc3RSZWNvcmRlclByb3h5LmNwcApAQCAtNDUsOCArNDUsOCBAQCB1c2luZyBuYW1lc3Bh
Y2UgV2ViQ29yZTsKIFJlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXJQcm94eTo6UmVtb3RlRGlzcGxh
eUxpc3RSZWNvcmRlclByb3h5KEltYWdlQnVmZmVyJiBpbWFnZUJ1ZmZlciwgUmVtb3RlUmVuZGVy
aW5nQmFja2VuZFByb3h5JiByZW5kZXJpbmdCYWNrZW5kLCBjb25zdCBGbG9hdFJlY3QmIGluaXRp
YWxDbGlwLCBjb25zdCBBZmZpbmVUcmFuc2Zvcm0mIGluaXRpYWxDVE0sIERyYXdHbHlwaHNSZWNv
cmRlcjo6RGVjb25zdHJ1Y3REcmF3R2x5cGhzIGRlY29uc3RydWN0RHJhd0dseXBocykKICAgICA6
IERpc3BsYXlMaXN0OjpSZWNvcmRlcih7IH0sIGluaXRpYWxDbGlwLCBpbml0aWFsQ1RNLCBkZWNv
bnN0cnVjdERyYXdHbHlwaHMpCiAgICAgLCBtX2Rlc3RpbmF0aW9uQnVmZmVySWRlbnRpZmllcihp
bWFnZUJ1ZmZlci5yZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIoKSkKLSAgICAsIG1faW1hZ2VC
dWZmZXIobWFrZVdlYWtQdHIoaW1hZ2VCdWZmZXIpKQotICAgICwgbV9yZW5kZXJpbmdCYWNrZW5k
KG1ha2VXZWFrUHRyKHJlbmRlcmluZ0JhY2tlbmQpKQorICAgICwgbV9pbWFnZUJ1ZmZlcihpbWFn
ZUJ1ZmZlcikKKyAgICAsIG1fcmVuZGVyaW5nQmFja2VuZChyZW5kZXJpbmdCYWNrZW5kKQogewog
fQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1Jl
bW90ZUltYWdlQnVmZmVyUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3Jh
cGhpY3MvUmVtb3RlSW1hZ2VCdWZmZXJQcm94eS5oCmluZGV4IDJiYTkzNjk5YThjY2ExM2FiNzFi
YTZhYTQ0ZDBmNDg3ZjViMzU0YTYuLjY5MzRiYjQ2MTZjZTAwYmVhYjE0MGJhYTk0MTA5YjZiYTk1
ZjNjMjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3Mv
UmVtb3RlSW1hZ2VCdWZmZXJQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9H
UFUvZ3JhcGhpY3MvUmVtb3RlSW1hZ2VCdWZmZXJQcm94eS5oCkBAIC05OCw3ICs5OCw3IEBAIHB1
YmxpYzoKIHByb3RlY3RlZDoKICAgICBSZW1vdGVJbWFnZUJ1ZmZlclByb3h5KGNvbnN0IFdlYkNv
cmU6OkltYWdlQnVmZmVyQmFja2VuZDo6UGFyYW1ldGVycyYgcGFyYW1ldGVycywgUmVtb3RlUmVu
ZGVyaW5nQmFja2VuZFByb3h5JiByZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHkpCiAgICAgICAg
IDogQmFzZUNvbmNyZXRlSW1hZ2VCdWZmZXIocGFyYW1ldGVycykKLSAgICAgICAgLCBtX3JlbW90
ZVJlbmRlcmluZ0JhY2tlbmRQcm94eShtYWtlV2Vha1B0cihyZW1vdGVSZW5kZXJpbmdCYWNrZW5k
UHJveHkpKQorICAgICAgICAsIG1fcmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5KHJlbW90ZVJl
bmRlcmluZ0JhY2tlbmRQcm94eSkKICAgICAgICAgLCBtX3JlbW90ZURpc3BsYXlMaXN0KCp0aGlz
LCByZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHksIHsgeyB9LCBCYXNlQ29uY3JldGVJbWFnZUJ1
ZmZlcjo6bG9naWNhbFNpemUoKSB9LCBCYXNlQ29uY3JldGVJbWFnZUJ1ZmZlcjo6YmFzZVRyYW5z
Zm9ybSgpKQogICAgIHsKICAgICAgICAgQVNTRVJUKG1fcmVtb3RlUmVuZGVyaW5nQmFja2VuZFBy
b3h5KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3Mv
UmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9HUFUvZ3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5LmNwcAppbmRleCBkOTgy
MWFjNTdhNzc3ZDA0Y2I5NTQ3ZmI0MzcyZDQ3MDg1ZWYyNmU4Li4yOGJiMjQ0ODE2ODE5M2VlZTdk
Y2FjZWIzODFhOGYzZGUwOGRhMWFmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvR1BVL2dyYXBoaWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eS5jcHAKKysrIGIvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5k
UHJveHkuY3BwCkBAIC03OCw3ICs3OCw3IEBAIEdQVVByb2Nlc3NDb25uZWN0aW9uJiBSZW1vdGVS
ZW5kZXJpbmdCYWNrZW5kUHJveHk6OmVuc3VyZUdQVVByb2Nlc3NDb25uZWN0aW9uKCkKICAgICAg
ICAgc3RhdGljIGNvbnN0ZXhwciBhdXRvIGNvbm5lY3Rpb25CdWZmZXJTaXplID0gMSA8PCAyMTsK
ICAgICAgICAgbV9zdHJlYW1Db25uZWN0aW9uID0gbWFrZVVuaXF1ZTxJUEM6OlN0cmVhbUNsaWVu
dENvbm5lY3Rpb24+KGdwdVByb2Nlc3NDb25uZWN0aW9uLmNvbm5lY3Rpb24oKSwgY29ubmVjdGlv
bkJ1ZmZlclNpemUpOwogICAgICAgICBncHVQcm9jZXNzQ29ubmVjdGlvbi5jb25uZWN0aW9uKCku
c2VuZChNZXNzYWdlczo6R1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6Q3JlYXRlUmVuZGVyaW5n
QmFja2VuZChtX3BhcmFtZXRlcnMsIG1fc3RyZWFtQ29ubmVjdGlvbi0+c3RyZWFtQnVmZmVyKCkp
LCAwLCBJUEM6OlNlbmRPcHRpb246OkRpc3BhdGNoTWVzc2FnZUV2ZW5XaGVuV2FpdGluZ0ZvclN5
bmNSZXBseSk7Ci0gICAgICAgIG1fZ3B1UHJvY2Vzc0Nvbm5lY3Rpb24gPSBtYWtlV2Vha1B0cihn
cHVQcm9jZXNzQ29ubmVjdGlvbik7CisgICAgICAgIG1fZ3B1UHJvY2Vzc0Nvbm5lY3Rpb24gPSBn
cHVQcm9jZXNzQ29ubmVjdGlvbjsKICAgICB9CiAgICAgcmV0dXJuICptX2dwdVByb2Nlc3NDb25u
ZWN0aW9uOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFw
aGljcy9SZW1vdGVSZXNvdXJjZUNhY2hlUHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVSZXNvdXJjZUNhY2hlUHJveHkuY3BwCmluZGV4IDQxMTcw
NGQ3MzUxMDVmYjUxY2E5NTUyNThlZWViODk3OTNhYzQ1NmMuLjE3MDRlNWMzODIxMzllMTgzNzM2
NzdlZWNhYjNjMTY4NDg0YmM4MWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9HUFUvZ3JhcGhpY3MvUmVtb3RlUmVzb3VyY2VDYWNoZVByb3h5LmNwcAorKysgYi9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90ZVJlc291cmNlQ2FjaGVQcm94eS5j
cHAKQEAgLTQ2LDcgKzQ2LDcgQEAgUmVtb3RlUmVzb3VyY2VDYWNoZVByb3h5Ojp+UmVtb3RlUmVz
b3VyY2VDYWNoZVByb3h5KCkKIAogdm9pZCBSZW1vdGVSZXNvdXJjZUNhY2hlUHJveHk6OmNhY2hl
SW1hZ2VCdWZmZXIoV2ViQ29yZTo6SW1hZ2VCdWZmZXImIGltYWdlQnVmZmVyKQogewotICAgIGF1
dG8gYWRkUmVzdWx0ID0gbV9pbWFnZUJ1ZmZlcnMuYWRkKGltYWdlQnVmZmVyLnJlbmRlcmluZ1Jl
c291cmNlSWRlbnRpZmllcigpLCBJbWFnZUJ1ZmZlclN0YXRlIHsgbWFrZVdlYWtQdHIoaW1hZ2VC
dWZmZXIpLCAwIH0pOworICAgIGF1dG8gYWRkUmVzdWx0ID0gbV9pbWFnZUJ1ZmZlcnMuYWRkKGlt
YWdlQnVmZmVyLnJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllcigpLCBJbWFnZUJ1ZmZlclN0YXRl
IHsgaW1hZ2VCdWZmZXIsIDAgfSk7CiAgICAgQVNTRVJUX1VOVVNFRChhZGRSZXN1bHQsIGFkZFJl
c3VsdC5pc05ld0VudHJ5KTsKIH0KIApAQCAtMTA5LDcgKzEwOSw3IEBAIHZvaWQgUmVtb3RlUmVz
b3VyY2VDYWNoZVByb3h5OjpyZWNvcmROYXRpdmVJbWFnZVVzZShOYXRpdmVJbWFnZSYgaW1hZ2Up
CiAgICAgaWYgKGhhbmRsZS5pc051bGwoKSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgbV9uYXRp
dmVJbWFnZXMuYWRkKGltYWdlLnJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllcigpLCBOYXRpdmVJ
bWFnZVN0YXRlIHsgbWFrZVdlYWtQdHIoaW1hZ2UpLCAxIH0pOworICAgIG1fbmF0aXZlSW1hZ2Vz
LmFkZChpbWFnZS5yZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIoKSwgTmF0aXZlSW1hZ2VTdGF0
ZSB7IGltYWdlLCAxIH0pOwogCiAgICAgLy8gU2V0IGl0c2VsZiBhcyBhbiBvYnNlcnZlciB0byBO
YXRpdmVJbWFnZSwgc28gcmVsZWFzZU5hdGl2ZUltYWdlKCkKICAgICAvLyBnZXRzIGNhbGxlZCB3
aGVuIE5hdGl2ZUltYWdlIGlzIGJlaW5nIGRlbGVsZXRlZC4KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvQXVkaW9UcmFja1ByaXZhdGVSZW1vdGUuY3BwIGIv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9BdWRpb1RyYWNrUHJpdmF0ZVJlbW90
ZS5jcHAKaW5kZXggMWNkMjk2NzQ0Y2Q0YTYzNjBkNzhmOWQyMzdiMTFkMzU4NDdjZjBkMy4uMzVl
ODVmNmQ2YjY0YjQ1NWVlNDVjZTJkZTQ2OGMzMGIwNjc3N2I3ZiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9BdWRpb1RyYWNrUHJpdmF0ZVJlbW90ZS5jcHAK
KysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9BdWRpb1RyYWNrUHJpdmF0
ZVJlbW90ZS5jcHAKQEAgLTM3LDcgKzM3LDcgQEAKIG5hbWVzcGFjZSBXZWJLaXQgewogCiBBdWRp
b1RyYWNrUHJpdmF0ZVJlbW90ZTo6QXVkaW9UcmFja1ByaXZhdGVSZW1vdGUoR1BVUHJvY2Vzc0Nv
bm5lY3Rpb24mIGdwdVByb2Nlc3NDb25uZWN0aW9uLCBXZWJDb3JlOjpNZWRpYVBsYXllcklkZW50
aWZpZXIgcGxheWVySWRlbnRpZmllciwgVHJhY2tQcml2YXRlUmVtb3RlSWRlbnRpZmllciBpZGVu
ZGlmaWVyLCBUcmFja1ByaXZhdGVSZW1vdGVDb25maWd1cmF0aW9uJiYgY29uZmlndXJhdGlvbikK
LSAgICA6IG1fZ3B1UHJvY2Vzc0Nvbm5lY3Rpb24obWFrZVdlYWtQdHIoZ3B1UHJvY2Vzc0Nvbm5l
Y3Rpb24pKQorICAgIDogbV9ncHVQcm9jZXNzQ29ubmVjdGlvbihncHVQcm9jZXNzQ29ubmVjdGlv
bikKICAgICAsIG1fcGxheWVySWRlbnRpZmllcihwbGF5ZXJJZGVudGlmaWVyKQogICAgICwgbV9p
ZGVuZGlmaWVyKGlkZW5kaWZpZXIpCiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvR1BVL21lZGlhL01lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZS5jcHAgYi9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL01lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZS5jcHAKaW5k
ZXggMDJmNzQ4OWI1MGY1MGRmZTBiNzFiMGFmYjVjNjViNzQwMGMwMGJlNS4uZmRmOTZjNTZjNDkx
YmIwNjRhYjcyZWMwN2ZlOGU2ZmY1MTk1ZWM1YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL0dQVS9tZWRpYS9NZWRpYVBsYXllclByaXZhdGVSZW1vdGUuY3BwCisrKyBiL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3Rl
LmNwcApAQCAtMTEwLDcgKzExMCw3IEBAIE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTo6TWVkaWFQ
bGF5ZXJQcml2YXRlUmVtb3RlKE1lZGlhUGxheWVyKiBwbGF5ZXIsIE1lZGlhUGxhCiAgICAgLCBt
X2xvZ0lkZW50aWZpZXIocGxheWVyLT5tZWRpYVBsYXllckxvZ0lkZW50aWZpZXIoKSkKICAgICAs
CiAjZW5kaWYKLSAgICAgIG1fcGxheWVyKG1ha2VXZWFrUHRyKCpwbGF5ZXIpKQorICAgICAgbV9w
bGF5ZXIoKnBsYXllcikKICAgICAsIG1fbWVkaWFSZXNvdXJjZUxvYWRlcigqcGxheWVyLT5jcmVh
dGVSZXNvdXJjZUxvYWRlcigpKQogI2lmIFBMQVRGT1JNKENPQ09BKQogICAgICwgbV92aWRlb0xh
eWVyTWFuYWdlcihtYWtlVW5pcXVlUmVmPFZpZGVvTGF5ZXJNYW5hZ2VyT2JqQz4obG9nZ2VyKCks
IGxvZ0lkZW50aWZpZXIoKSkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
R1BVL21lZGlhL01lZGlhU291cmNlUHJpdmF0ZVJlbW90ZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvR1BVL21lZGlhL01lZGlhU291cmNlUHJpdmF0ZVJlbW90ZS5jcHAKaW5kZXggMzY1
MGJiZGFkM2Q3ZDJmYmViNjUxMzVjN2QzNmVlMjNhMWVkMDkyZC4uNmEyMGQ3NTBhNDk0NGZiMzhk
YTc0ODI4OTcwOWYyMDU1YzU2NDBkMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL0dQVS9tZWRpYS9NZWRpYVNvdXJjZVByaXZhdGVSZW1vdGUuY3BwCisrKyBiL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvTWVkaWFTb3VyY2VQcml2YXRlUmVtb3RlLmNwcApA
QCAtNTQsMTAgKzU0LDEwIEBAIFJlZjxNZWRpYVNvdXJjZVByaXZhdGVSZW1vdGU+IE1lZGlhU291
cmNlUHJpdmF0ZVJlbW90ZTo6Y3JlYXRlKEdQVVByb2Nlc3NDb25uZWN0CiB9CiAKIE1lZGlhU291
cmNlUHJpdmF0ZVJlbW90ZTo6TWVkaWFTb3VyY2VQcml2YXRlUmVtb3RlKEdQVVByb2Nlc3NDb25u
ZWN0aW9uJiBncHVQcm9jZXNzQ29ubmVjdGlvbiwgUmVtb3RlTWVkaWFTb3VyY2VJZGVudGlmaWVy
IGlkZW50aWZpZXIsIFJlbW90ZU1lZGlhUGxheWVyTUlNRVR5cGVDYWNoZSYgbWltZVR5cGVDYWNo
ZSwgY29uc3QgTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlJiBtZWRpYVBsYXllclByaXZhdGUsIE1l
ZGlhU291cmNlUHJpdmF0ZUNsaWVudCogY2xpZW50KQotICAgIDogbV9ncHVQcm9jZXNzQ29ubmVj
dGlvbihtYWtlV2Vha1B0cihncHVQcm9jZXNzQ29ubmVjdGlvbikpCisgICAgOiBtX2dwdVByb2Nl
c3NDb25uZWN0aW9uKGdwdVByb2Nlc3NDb25uZWN0aW9uKQogICAgICwgbV9pZGVudGlmaWVyKGlk
ZW50aWZpZXIpCiAgICAgLCBtX21pbWVUeXBlQ2FjaGUobWltZVR5cGVDYWNoZSkKLSAgICAsIG1f
bWVkaWFQbGF5ZXJQcml2YXRlKG1ha2VXZWFrUHRyKG1lZGlhUGxheWVyUHJpdmF0ZSkpCisgICAg
LCBtX21lZGlhUGxheWVyUHJpdmF0ZShtZWRpYVBsYXllclByaXZhdGUpCiAgICAgLCBtX2NsaWVu
dChjbGllbnQpCiAjaWYgIVJFTEVBU0VfTE9HX0RJU0FCTEVECiAgICAgLCBtX2xvZ2dlcihtX21l
ZGlhUGxheWVyUHJpdmF0ZS0+bWVkaWFQbGF5ZXJMb2dnZXIoKSkKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlQXVkaW9EZXN0aW5hdGlvblByb3h5
LmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlQXVkaW9EZXN0
aW5hdGlvblByb3h5LmNwcAppbmRleCA3NzQwZGE0NWVhNjJmMWIyN2VkZDA2MWQxNTNjNzY3Nzk0
ODNkNTkwLi44YWFkYTJmMDZjMmM5NmZjNjBlN2I2YzNmY2M3OGJkZjQ0N2E3ZGNmIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZUF1ZGlvRGVzdGlu
YXRpb25Qcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9S
ZW1vdGVBdWRpb0Rlc3RpbmF0aW9uUHJveHkuY3BwCkBAIC0xMDEsNyArMTAxLDcgQEAgdm9pZCBS
ZW1vdGVBdWRpb0Rlc3RpbmF0aW9uUHJveHk6OnN0b3BSZW5kZXJpbmdUaHJlYWQoKQogSVBDOjpD
b25uZWN0aW9uKiBSZW1vdGVBdWRpb0Rlc3RpbmF0aW9uUHJveHk6OmNvbm5lY3Rpb24oKQogewog
ICAgIGlmICghbV9ncHVQcm9jZXNzQ29ubmVjdGlvbikgewotICAgICAgICBtX2dwdVByb2Nlc3ND
b25uZWN0aW9uID0gbWFrZVdlYWtQdHIoV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkuZW5zdXJlR1BV
UHJvY2Vzc0Nvbm5lY3Rpb24oKSk7CisgICAgICAgIG1fZ3B1UHJvY2Vzc0Nvbm5lY3Rpb24gPSBX
ZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5lbnN1cmVHUFVQcm9jZXNzQ29ubmVjdGlvbigpOwogICAg
ICAgICBtX2dwdVByb2Nlc3NDb25uZWN0aW9uLT5hZGRDbGllbnQoKnRoaXMpOwogCiAgICAgICAg
IGlmICghbV9ncHVQcm9jZXNzQ29ubmVjdGlvbi0+Y29ubmVjdGlvbigpLnNlbmRTeW5jKE1lc3Nh
Z2VzOjpSZW1vdGVBdWRpb0Rlc3RpbmF0aW9uTWFuYWdlcjo6Q3JlYXRlQXVkaW9EZXN0aW5hdGlv
bihtX2lucHV0RGV2aWNlSWQsIG1fbnVtYmVyT2ZJbnB1dENoYW5uZWxzLCBudW1iZXJPZk91dHB1
dENoYW5uZWxzKCksIHNhbXBsZVJhdGUoKSwgaGFyZHdhcmVTYW1wbGVSYXRlKCksIG1fcmVuZGVy
U2VtYXBob3JlKSwgTWVzc2FnZXM6OlJlbW90ZUF1ZGlvRGVzdGluYXRpb25NYW5hZ2VyOjpDcmVh
dGVBdWRpb0Rlc3RpbmF0aW9uOjpSZXBseShtX2Rlc3RpbmF0aW9uSUQpLCAwKSkgewpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVBdWRpb0hhcmR3
YXJlTGlzdGVuZXIuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1v
dGVBdWRpb0hhcmR3YXJlTGlzdGVuZXIuY3BwCmluZGV4IGIwNjg5OTE2ZjA1NTJlZTA5YzljNGNl
ZjMwNDI0NTk4ZTJhNjAwODguLjIyMDgxZTdhZTdlMGNmM2Y4MzMxM2I1ODRkYmVlNWQ0N2QwM2Iy
YjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3Rl
QXVkaW9IYXJkd2FyZUxpc3RlbmVyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
R1BVL21lZGlhL1JlbW90ZUF1ZGlvSGFyZHdhcmVMaXN0ZW5lci5jcHAKQEAgLTQ1LDcgKzQ1LDcg
QEAgUmVmPFJlbW90ZUF1ZGlvSGFyZHdhcmVMaXN0ZW5lcj4gUmVtb3RlQXVkaW9IYXJkd2FyZUxp
c3RlbmVyOjpjcmVhdGUoQXVkaW9IYXJkd2EKIFJlbW90ZUF1ZGlvSGFyZHdhcmVMaXN0ZW5lcjo6
UmVtb3RlQXVkaW9IYXJkd2FyZUxpc3RlbmVyKEF1ZGlvSGFyZHdhcmVMaXN0ZW5lcjo6Q2xpZW50
JiBjbGllbnQsIFdlYlByb2Nlc3MmIHdlYlByb2Nlc3MpCiAgICAgOiBBdWRpb0hhcmR3YXJlTGlz
dGVuZXIoY2xpZW50KQogICAgICwgbV9pZGVudGlmaWVyKFJlbW90ZUF1ZGlvSGFyZHdhcmVMaXN0
ZW5lcklkZW50aWZpZXI6OmdlbmVyYXRlKCkpCi0gICAgLCBtX2dwdVByb2Nlc3NDb25uZWN0aW9u
KG1ha2VXZWFrUHRyKFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLmVuc3VyZUdQVVByb2Nlc3NDb25u
ZWN0aW9uKCkpKQorICAgICwgbV9ncHVQcm9jZXNzQ29ubmVjdGlvbihXZWJQcm9jZXNzOjpzaW5n
bGV0b24oKS5lbnN1cmVHUFVQcm9jZXNzQ29ubmVjdGlvbigpKQogewogICAgIG1fZ3B1UHJvY2Vz
c0Nvbm5lY3Rpb24tPmFkZENsaWVudCgqdGhpcyk7CiAgICAgbV9ncHVQcm9jZXNzQ29ubmVjdGlv
bi0+bWVzc2FnZVJlY2VpdmVyTWFwKCkuYWRkTWVzc2FnZVJlY2VpdmVyKE1lc3NhZ2VzOjpSZW1v
dGVBdWRpb0hhcmR3YXJlTGlzdGVuZXI6Om1lc3NhZ2VSZWNlaXZlck5hbWUoKSwgbV9pZGVudGlm
aWVyLnRvVUludDY0KCksICp0aGlzKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9HUFUvbWVkaWEvUmVtb3RlQXVkaW9TZXNzaW9uLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlQXVkaW9TZXNzaW9uLmNwcAppbmRleCBjZGE2YzI3YzEw
NDI2YzEwZDcwZTY5YmJkNTc3NDgzMTQxODdlNGJkLi4wOGVmZjk4YWE3YjM0ZTY4MzQ3ZTZkNDc2
NzMwMWUxMjVjZWM5YTNkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BV
L21lZGlhL1JlbW90ZUF1ZGlvU2Vzc2lvbi5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL0dQVS9tZWRpYS9SZW1vdGVBdWRpb1Nlc3Npb24uY3BwCkBAIC02Niw3ICs2Niw3IEBAIHZv
aWQgUmVtb3RlQXVkaW9TZXNzaW9uOjpncHVQcm9jZXNzQ29ubmVjdGlvbkRpZENsb3NlKEdQVVBy
b2Nlc3NDb25uZWN0aW9uJiBjb25uCiBJUEM6OkNvbm5lY3Rpb24mIFJlbW90ZUF1ZGlvU2Vzc2lv
bjo6ZW5zdXJlQ29ubmVjdGlvbigpCiB7CiAgICAgaWYgKCFtX2dwdVByb2Nlc3NDb25uZWN0aW9u
KSB7Ci0gICAgICAgIG1fZ3B1UHJvY2Vzc0Nvbm5lY3Rpb24gPSBtYWtlV2Vha1B0cihtX3Byb2Nl
c3MuZW5zdXJlR1BVUHJvY2Vzc0Nvbm5lY3Rpb24oKSk7CisgICAgICAgIG1fZ3B1UHJvY2Vzc0Nv
bm5lY3Rpb24gPSBtX3Byb2Nlc3MuZW5zdXJlR1BVUHJvY2Vzc0Nvbm5lY3Rpb24oKTsKICAgICAg
ICAgbV9ncHVQcm9jZXNzQ29ubmVjdGlvbi0+YWRkQ2xpZW50KCp0aGlzKTsKICAgICAgICAgbV9n
cHVQcm9jZXNzQ29ubmVjdGlvbi0+bWVzc2FnZVJlY2VpdmVyTWFwKCkuYWRkTWVzc2FnZVJlY2Vp
dmVyKE1lc3NhZ2VzOjpSZW1vdGVBdWRpb1Nlc3Npb246Om1lc3NhZ2VSZWNlaXZlck5hbWUoKSwg
KnRoaXMpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlh
L1JlbW90ZUF1ZGlvU291cmNlUHJvdmlkZXIuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L0dQVS9tZWRpYS9SZW1vdGVBdWRpb1NvdXJjZVByb3ZpZGVyLmNwcAppbmRleCA0NmNkYjAyNzY1
M2I2ZTMyNGM4ODUyNDkzOWVmMmRkNzUwZjRjNzlhLi45M2QzYzE4NWM1ODJmNTcxZWNkMGVmZDli
N2JmMWVkNzA5NjljYjBiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BV
L21lZGlhL1JlbW90ZUF1ZGlvU291cmNlUHJvdmlkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlQXVkaW9Tb3VyY2VQcm92aWRlci5jcHAKQEAgLTUx
LDcgKzUxLDcgQEAgUmVmPFJlbW90ZUF1ZGlvU291cmNlUHJvdmlkZXI+IFJlbW90ZUF1ZGlvU291
cmNlUHJvdmlkZXI6OmNyZWF0ZShXZWJDb3JlOjpNZWRpYVAKIAogUmVtb3RlQXVkaW9Tb3VyY2VQ
cm92aWRlcjo6UmVtb3RlQXVkaW9Tb3VyY2VQcm92aWRlcihNZWRpYVBsYXllcklkZW50aWZpZXIg
aWRlbnRpZmllciwgV1RGOjpMb2dnZXJIZWxwZXImIGhlbHBlcikKICAgICA6IG1faWRlbnRpZmll
cihpZGVudGlmaWVyKQotICAgICwgbV9ncHVQcm9jZXNzQ29ubmVjdGlvbihtYWtlV2Vha1B0cihX
ZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5lbnN1cmVHUFVQcm9jZXNzQ29ubmVjdGlvbigpKSkKKyAg
ICAsIG1fZ3B1UHJvY2Vzc0Nvbm5lY3Rpb24oV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkuZW5zdXJl
R1BVUHJvY2Vzc0Nvbm5lY3Rpb24oKSkKICNpZiAhUkVMRUFTRV9MT0dfRElTQUJMRUQKICAgICAs
IG1fbG9nZ2VyKGhlbHBlci5sb2dnZXIoKSkKICAgICAsIG1fbG9nSWRlbnRpZmllcihoZWxwZXIu
bG9nSWRlbnRpZmllcigpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQ
VS9tZWRpYS9SZW1vdGVDRE0uY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRp
YS9SZW1vdGVDRE0uY3BwCmluZGV4IGRhZTQ5NWJmNmRkZDNmMmNmZGRiYjY4ZTgxZjUyN2ViNWQ4
ODg0ZWEuLmZhOTQwMjVlZDc0NzMwZDI4ZTcxNjQ2Mjg1ZjllNWJhNjUzYjhmMTIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlQ0RNLmNwcAorKysg
Yi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZUNETS5jcHAKQEAgLTEx
OCw3ICsxMTgsNyBAQCBSZWZQdHI8Q0RNSW5zdGFuY2U+IFJlbW90ZUNETTo6Y3JlYXRlSW5zdGFu
Y2UoKQogICAgIG1fZmFjdG9yeS0+Z3B1UHJvY2Vzc0Nvbm5lY3Rpb24oKS5jb25uZWN0aW9uKCku
c2VuZFN5bmMoTWVzc2FnZXM6OlJlbW90ZUNETVByb3h5OjpDcmVhdGVJbnN0YW5jZSgpLCBNZXNz
YWdlczo6UmVtb3RlQ0RNUHJveHk6OkNyZWF0ZUluc3RhbmNlOjpSZXBseShpZGVudGlmaWVyLCBj
b25maWd1cmF0aW9uKSwgbV9pZGVudGlmaWVyKTsKICAgICBpZiAoIWlkZW50aWZpZXIpCiAgICAg
ICAgIHJldHVybiBudWxscHRyOwotICAgIHJldHVybiBSZW1vdGVDRE1JbnN0YW5jZTo6Y3JlYXRl
KG1ha2VXZWFrUHRyKG1fZmFjdG9yeS5nZXQoKSksIFdURk1vdmUoaWRlbnRpZmllciksIFdURk1v
dmUoY29uZmlndXJhdGlvbikpOworICAgIHJldHVybiBSZW1vdGVDRE1JbnN0YW5jZTo6Y3JlYXRl
KG1fZmFjdG9yeS5nZXQoKSwgV1RGTW92ZShpZGVudGlmaWVyKSwgV1RGTW92ZShjb25maWd1cmF0
aW9uKSk7CiB9CiAKIHZvaWQgUmVtb3RlQ0RNOjpsb2FkQW5kSW5pdGlhbGl6ZSgpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZUNETUZhY3Rvcnku
Y3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVDRE1GYWN0b3J5
LmNwcAppbmRleCA1OTEwYWU2YjE2ZTAwNGFjYjVmMGYyNDE4OWUwMGE3YTQ4ZWNmMjkwLi44NmYz
OGQ0YTMyMTAwMWFlNjUxZjI2ZGMwNmZhOWE4MjEyYjJmNzE5IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZUNETUZhY3RvcnkuY3BwCisrKyBiL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlQ0RNRmFjdG9yeS5jcHAKQEAg
LTc1LDcgKzc1LDcgQEAgc3RkOjp1bmlxdWVfcHRyPENETVByaXZhdGU+IFJlbW90ZUNETUZhY3Rv
cnk6OmNyZWF0ZUNETShjb25zdCBTdHJpbmcmIGtleVN5c3RlbSkKICAgICBncHVQcm9jZXNzQ29u
bmVjdGlvbigpLmNvbm5lY3Rpb24oKS5zZW5kU3luYyhNZXNzYWdlczo6UmVtb3RlQ0RNRmFjdG9y
eVByb3h5OjpDcmVhdGVDRE0oa2V5U3lzdGVtKSwgTWVzc2FnZXM6OlJlbW90ZUNETUZhY3RvcnlQ
cm94eTo6Q3JlYXRlQ0RNOjpSZXBseShpZGVudGlmaWVyLCBjb25maWd1cmF0aW9uKSwgeyB9KTsK
ICAgICBpZiAoIWlkZW50aWZpZXIpCiAgICAgICAgIHJldHVybiBudWxscHRyOwotICAgIHJldHVy
biBSZW1vdGVDRE06OmNyZWF0ZShtYWtlV2Vha1B0cih0aGlzKSwgV1RGTW92ZShpZGVudGlmaWVy
KSwgV1RGTW92ZShjb25maWd1cmF0aW9uKSk7CisgICAgcmV0dXJuIFJlbW90ZUNETTo6Y3JlYXRl
KCp0aGlzLCBXVEZNb3ZlKGlkZW50aWZpZXIpLCBXVEZNb3ZlKGNvbmZpZ3VyYXRpb24pKTsKIH0K
IAogdm9pZCBSZW1vdGVDRE1GYWN0b3J5OjphZGRTZXNzaW9uKFJlZjxSZW1vdGVDRE1JbnN0YW5j
ZVNlc3Npb24+JiYgc2Vzc2lvbikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9HUFUvbWVkaWEvUmVtb3RlQ0RNSW5zdGFuY2UuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL0dQVS9tZWRpYS9SZW1vdGVDRE1JbnN0YW5jZS5jcHAKaW5kZXggZWRjODk0ZWU5MzNiOGVh
YzYxOGQ5YTVmNjk3NmU5YzRkMjgzODY4My4uYjVkZWEyMWU5OTVhNzM3ZjAzNmY2NDUzOGMxZmIz
ZWNiNWU2YmI1NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRp
YS9SZW1vdGVDRE1JbnN0YW5jZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQ
VS9tZWRpYS9SZW1vdGVDRE1JbnN0YW5jZS5jcHAKQEAgLTEwNSw3ICsxMDUsNyBAQCBSZWZQdHI8
V2ViQ29yZTo6Q0RNSW5zdGFuY2VTZXNzaW9uPiBSZW1vdGVDRE1JbnN0YW5jZTo6Y3JlYXRlU2Vz
c2lvbigpCiAgICAgbV9mYWN0b3J5LT5ncHVQcm9jZXNzQ29ubmVjdGlvbigpLmNvbm5lY3Rpb24o
KS5zZW5kU3luYyhNZXNzYWdlczo6UmVtb3RlQ0RNSW5zdGFuY2VQcm94eTo6Q3JlYXRlU2Vzc2lv
bigpLCBNZXNzYWdlczo6UmVtb3RlQ0RNSW5zdGFuY2VQcm94eTo6Q3JlYXRlU2Vzc2lvbjo6UmVw
bHkoaWRlbnRpZmllciksIG1faWRlbnRpZmllcik7CiAgICAgaWYgKCFpZGVudGlmaWVyKQogICAg
ICAgICByZXR1cm4gbnVsbHB0cjsKLSAgICBhdXRvIHNlc3Npb24gPSBSZW1vdGVDRE1JbnN0YW5j
ZVNlc3Npb246OmNyZWF0ZShtYWtlV2Vha1B0cihtX2ZhY3RvcnkuZ2V0KCkpLCBXVEZNb3ZlKGlk
ZW50aWZpZXIpKTsKKyAgICBhdXRvIHNlc3Npb24gPSBSZW1vdGVDRE1JbnN0YW5jZVNlc3Npb246
OmNyZWF0ZShtX2ZhY3RvcnkuZ2V0KCksIFdURk1vdmUoaWRlbnRpZmllcikpOwogICAgIG1fZmFj
dG9yeS0+YWRkU2Vzc2lvbihzZXNzaW9uLmNvcHlSZWYoKSk7CiAgICAgcmV0dXJuIHNlc3Npb247
CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90
ZUltYWdlRGVjb2RlckFWRi5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlh
L1JlbW90ZUltYWdlRGVjb2RlckFWRi5jcHAKaW5kZXggOGQ2NzVlMTVlMzdiYWRjNGZhYmY5YTMz
NmM2ZjY5N2M0YWEzYzAxOS4uOWEyMTlhNTQ0ZTU1MzgzZjU0ZTcxZGFiZDM1NGNjNDQwYTQxNDJi
OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVJ
bWFnZURlY29kZXJBVkYuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVk
aWEvUmVtb3RlSW1hZ2VEZWNvZGVyQVZGLmNwcApAQCAtNDcsNyArNDcsNyBAQCB1c2luZyBuYW1l
c3BhY2UgV2ViQ29yZTsKIAogUmVtb3RlSW1hZ2VEZWNvZGVyQVZGOjpSZW1vdGVJbWFnZURlY29k
ZXJBVkYoUmVtb3RlSW1hZ2VEZWNvZGVyQVZGTWFuYWdlciYgbWFuYWdlciwgY29uc3QgV2ViQ29y
ZTo6SW1hZ2VEZWNvZGVySWRlbnRpZmllciYgaWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiBtaW1l
VHlwZSkKICAgICA6IEltYWdlRGVjb2RlcigpCi0gICAgLCBtX2dwdVByb2Nlc3NDb25uZWN0aW9u
KG1ha2VXZWFrUHRyKG1hbmFnZXIuZW5zdXJlR1BVUHJvY2Vzc0Nvbm5lY3Rpb24oKSkpCisgICAg
LCBtX2dwdVByb2Nlc3NDb25uZWN0aW9uKG1hbmFnZXIuZW5zdXJlR1BVUHJvY2Vzc0Nvbm5lY3Rp
b24oKSkKICAgICAsIG1fbWFuYWdlcihtYW5hZ2VyKQogICAgICwgbV9pZGVudGlmaWVyKGlkZW50
aWZpZXIpCiAgICAgLCBtX21pbWVUeXBlKG1pbWVUeXBlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVJbWFnZURlY29kZXJBVkZNYW5hZ2VyLmNw
cCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlSW1hZ2VEZWNvZGVy
QVZGTWFuYWdlci5jcHAKaW5kZXggNzZlOTczNGVkMTA3NTRjMjZhM2M2ODJjNWE4ZjY2OTI0ODY5
Yzc4OC4uNDFkNTM4ODAyM2QzOTE0OTUyMTgzNWY2ODhkZTRkNDhmNjVkNzY3ZSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVJbWFnZURlY29kZXJB
VkZNYW5hZ2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1Jl
bW90ZUltYWdlRGVjb2RlckFWRk1hbmFnZXIuY3BwCkBAIC01MCw3ICs1MCw3IEBAIFJlZlB0cjxS
ZW1vdGVJbWFnZURlY29kZXJBVkY+IFJlbW90ZUltYWdlRGVjb2RlckFWRk1hbmFnZXI6OmNyZWF0
ZUltYWdlRGVjb2RlcihTCiAgICAgICAgIHJldHVybiBudWxscHRyOwogCiAgICAgYXV0byByZW1v
dGVJbWFnZURlY29kZXIgPSBSZW1vdGVJbWFnZURlY29kZXJBVkY6OmNyZWF0ZSgqdGhpcywgKmlt
YWdlRGVjb2RlcklkZW50aWZpZXIsIGRhdGEsIG1pbWVUeXBlKTsKLSAgICBtX3JlbW90ZUltYWdl
RGVjb2RlcnMuYWRkKCppbWFnZURlY29kZXJJZGVudGlmaWVyLCBtYWtlV2Vha1B0cihyZW1vdGVJ
bWFnZURlY29kZXIuZ2V0KCkpKTsKKyAgICBtX3JlbW90ZUltYWdlRGVjb2RlcnMuYWRkKCppbWFn
ZURlY29kZXJJZGVudGlmaWVyLCByZW1vdGVJbWFnZURlY29kZXIpOwogCiAgICAgcmV0dXJuIHJl
bW90ZUltYWdlRGVjb2RlcjsKIH0KQEAgLTkwLDcgKzkwLDcgQEAgY29uc3QgY2hhciogIFJlbW90
ZUltYWdlRGVjb2RlckFWRk1hbmFnZXI6OnN1cHBsZW1lbnROYW1lKCkKIEdQVVByb2Nlc3NDb25u
ZWN0aW9uJiBSZW1vdGVJbWFnZURlY29kZXJBVkZNYW5hZ2VyOjplbnN1cmVHUFVQcm9jZXNzQ29u
bmVjdGlvbigpCiB7CiAgICAgaWYgKCFtX2dwdVByb2Nlc3NDb25uZWN0aW9uKSB7Ci0gICAgICAg
IG1fZ3B1UHJvY2Vzc0Nvbm5lY3Rpb24gPSBtYWtlV2Vha1B0cihtX3Byb2Nlc3MuZW5zdXJlR1BV
UHJvY2Vzc0Nvbm5lY3Rpb24oKSk7CisgICAgICAgIG1fZ3B1UHJvY2Vzc0Nvbm5lY3Rpb24gPSBt
X3Byb2Nlc3MuZW5zdXJlR1BVUHJvY2Vzc0Nvbm5lY3Rpb24oKTsKICAgICAgICAgbV9ncHVQcm9j
ZXNzQ29ubmVjdGlvbi0+YWRkQ2xpZW50KCp0aGlzKTsKICAgICAgICAgbV9ncHVQcm9jZXNzQ29u
bmVjdGlvbi0+bWVzc2FnZVJlY2VpdmVyTWFwKCkuYWRkTWVzc2FnZVJlY2VpdmVyKE1lc3NhZ2Vz
OjpSZW1vdGVJbWFnZURlY29kZXJBVkZNYW5hZ2VyOjptZXNzYWdlUmVjZWl2ZXJOYW1lKCksICp0
aGlzKTsKICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21l
ZGlhL1JlbW90ZUxlZ2FjeUNETUZhY3RvcnkuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L0dQVS9tZWRpYS9SZW1vdGVMZWdhY3lDRE1GYWN0b3J5LmNwcAppbmRleCA2YWY3MDBiNWNhZDJl
MmUyNWM0NGQ2Mjc2ZGU4MzM1MGE0YThhMDU3Li40YWVkYjI3YTk0ZmEwYjRiMzBhZjRhNDQzNDFi
MTgzZTI2ZTA2NjBlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21l
ZGlhL1JlbW90ZUxlZ2FjeUNETUZhY3RvcnkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9HUFUvbWVkaWEvUmVtb3RlTGVnYWN5Q0RNRmFjdG9yeS5jcHAKQEAgLTExNiw4ICsxMTYs
OCBAQCBzdGQ6OnVuaXF1ZV9wdHI8Q0RNUHJpdmF0ZUludGVyZmFjZT4gUmVtb3RlTGVnYWN5Q0RN
RmFjdG9yeTo6Y3JlYXRlQ0RNKFdlYkNvcmU6OgogICAgIGdwdVByb2Nlc3NDb25uZWN0aW9uKCku
Y29ubmVjdGlvbigpLnNlbmRTeW5jKE1lc3NhZ2VzOjpSZW1vdGVMZWdhY3lDRE1GYWN0b3J5UHJv
eHk6OkNyZWF0ZUNETShjZG0tPmtleVN5c3RlbSgpLCBXVEZNb3ZlKHBsYXllcklkKSksIE1lc3Nh
Z2VzOjpSZW1vdGVMZWdhY3lDRE1GYWN0b3J5UHJveHk6OkNyZWF0ZUNETTo6UmVwbHkoaWRlbnRp
ZmllciksIHsgfSk7CiAgICAgaWYgKCFpZGVudGlmaWVyKQogICAgICAgICByZXR1cm4gbnVsbHB0
cjsKLSAgICBhdXRvIHJlbW90ZUNETSA9IFJlbW90ZUxlZ2FjeUNETTo6Y3JlYXRlKG1ha2VXZWFr
UHRyKHRoaXMpLCBpZGVudGlmaWVyKTsKLSAgICBtX2NkbXMuc2V0KGlkZW50aWZpZXIsIG1ha2VX
ZWFrUHRyKHJlbW90ZUNETS5nZXQoKSkpOworICAgIGF1dG8gcmVtb3RlQ0RNID0gUmVtb3RlTGVn
YWN5Q0RNOjpjcmVhdGUoKnRoaXMsIGlkZW50aWZpZXIpOworICAgIG1fY2Rtcy5zZXQoaWRlbnRp
ZmllciwgcmVtb3RlQ0RNLmdldCgpKTsKICAgICByZXR1cm4gcmVtb3RlQ0RNOwogfQogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZU1lZGlhUGxh
eWVyTWFuYWdlci5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90
ZU1lZGlhUGxheWVyTWFuYWdlci5jcHAKaW5kZXggOGU5ZWMzYTUwOWVhMjQwOWE0MjQxMWI3OGJk
OWIzZmZkYjczZTE4Ny4uNThmYzFlNGVlMjU1ZWQ1ODMwYzk5NmRmZTY4YmYyYWJkMzUzZWFmOCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVNZWRp
YVBsYXllck1hbmFnZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVk
aWEvUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyLmNwcApAQCAtMTcwLDcgKzE3MCw3IEBAIHN0ZDo6
dW5pcXVlX3B0cjxNZWRpYVBsYXllclByaXZhdGVJbnRlcmZhY2U+IFJlbW90ZU1lZGlhUGxheWVy
TWFuYWdlcjo6Y3JlYXRlUmVtCiAgICAgZ3B1UHJvY2Vzc0Nvbm5lY3Rpb24oKS5jb25uZWN0aW9u
KCkuc2VuZChNZXNzYWdlczo6UmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyUHJveHk6OkNyZWF0ZU1l
ZGlhUGxheWVyKGlkZW50aWZpZXIsIHJlbW90ZUVuZ2luZUlkZW50aWZpZXIsIHByb3h5Q29uZmln
dXJhdGlvbiksIDApOwogCiAgICAgYXV0byByZW1vdGVQbGF5ZXIgPSBNZWRpYVBsYXllclByaXZh
dGVSZW1vdGU6OmNyZWF0ZShwbGF5ZXIsIHJlbW90ZUVuZ2luZUlkZW50aWZpZXIsIGlkZW50aWZp
ZXIsICp0aGlzKTsKLSAgICBtX3BsYXllcnMuYWRkKGlkZW50aWZpZXIsIG1ha2VXZWFrUHRyKCpy
ZW1vdGVQbGF5ZXIpKTsKKyAgICBtX3BsYXllcnMuYWRkKGlkZW50aWZpZXIsICpyZW1vdGVQbGF5
ZXIpOwogCiAgICAgcmV0dXJuIHJlbW90ZVBsYXllcjsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlUmVtb3RlQ29tbWFuZExpc3RlbmVyLmNw
cCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlUmVtb3RlQ29tbWFu
ZExpc3RlbmVyLmNwcAppbmRleCA2NDk0YjI5OTg3ZjY2MWUwM2ZlYjJmMTAyZDhlYmFhNjc0OTg3
ODgwLi43NzEwYTNhNDQxMDAxYWZjNmRmZDBjZGQyNWNhM2I4ZWVmN2E4ZmFlIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZVJlbW90ZUNvbW1hbmRM
aXN0ZW5lci5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1v
dGVSZW1vdGVDb21tYW5kTGlzdGVuZXIuY3BwCkBAIC02Miw3ICs2Miw3IEBAIFJlbW90ZVJlbW90
ZUNvbW1hbmRMaXN0ZW5lcjo6flJlbW90ZVJlbW90ZUNvbW1hbmRMaXN0ZW5lcigpCiBHUFVQcm9j
ZXNzQ29ubmVjdGlvbiYgUmVtb3RlUmVtb3RlQ29tbWFuZExpc3RlbmVyOjplbnN1cmVHUFVQcm9j
ZXNzQ29ubmVjdGlvbigpCiB7CiAgICAgaWYgKCFtX2dwdVByb2Nlc3NDb25uZWN0aW9uKSB7Ci0g
ICAgICAgIG1fZ3B1UHJvY2Vzc0Nvbm5lY3Rpb24gPSBtYWtlV2Vha1B0cihtX3Byb2Nlc3MuZW5z
dXJlR1BVUHJvY2Vzc0Nvbm5lY3Rpb24oKSk7CisgICAgICAgIG1fZ3B1UHJvY2Vzc0Nvbm5lY3Rp
b24gPSBtX3Byb2Nlc3MuZW5zdXJlR1BVUHJvY2Vzc0Nvbm5lY3Rpb24oKTsKICAgICAgICAgbV9n
cHVQcm9jZXNzQ29ubmVjdGlvbi0+YWRkQ2xpZW50KCp0aGlzKTsKICAgICAgICAgbV9ncHVQcm9j
ZXNzQ29ubmVjdGlvbi0+bWVzc2FnZVJlY2VpdmVyTWFwKCkuYWRkTWVzc2FnZVJlY2VpdmVyKE1l
c3NhZ2VzOjpSZW1vdGVSZW1vdGVDb21tYW5kTGlzdGVuZXI6Om1lc3NhZ2VSZWNlaXZlck5hbWUo
KSwgbV9pZGVudGlmaWVyLnRvVUludDY0KCksICp0aGlzKTsKICAgICAgICAgbV9ncHVQcm9jZXNz
Q29ubmVjdGlvbi0+Y29ubmVjdGlvbigpLnNlbmQoTWVzc2FnZXM6OkdQVUNvbm5lY3Rpb25Ub1dl
YlByb2Nlc3M6OkNyZWF0ZVJlbW90ZUNvbW1hbmRMaXN0ZW5lcihtX2lkZW50aWZpZXIpLCB7IH0p
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9Tb3VyY2VC
dWZmZXJQcml2YXRlUmVtb3RlLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVk
aWEvU291cmNlQnVmZmVyUHJpdmF0ZVJlbW90ZS5jcHAKaW5kZXggYWI1N2NlYjkwNTA5MzkzOTJm
NGVhMGFhZThjODFlMjBhNDcyMzkwNC4uOTY2ZmM5M2I3N2FmYWEzZTYyMDhkN2FiYTVhZWQyYzdh
OTRjNzRiMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9T
b3VyY2VCdWZmZXJQcml2YXRlUmVtb3RlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvR1BVL21lZGlhL1NvdXJjZUJ1ZmZlclByaXZhdGVSZW1vdGUuY3BwCkBAIC01NCwxMCArNTQs
MTAgQEAgUmVmPFNvdXJjZUJ1ZmZlclByaXZhdGVSZW1vdGU+IFNvdXJjZUJ1ZmZlclByaXZhdGVS
ZW1vdGU6OmNyZWF0ZShHUFVQcm9jZXNzQ29ubmUKIH0KIAogU291cmNlQnVmZmVyUHJpdmF0ZVJl
bW90ZTo6U291cmNlQnVmZmVyUHJpdmF0ZVJlbW90ZShHUFVQcm9jZXNzQ29ubmVjdGlvbiYgZ3B1
UHJvY2Vzc0Nvbm5lY3Rpb24sIFJlbW90ZVNvdXJjZUJ1ZmZlcklkZW50aWZpZXIgcmVtb3RlU291
cmNlQnVmZmVySWRlbnRpZmllciwgY29uc3QgTWVkaWFTb3VyY2VQcml2YXRlUmVtb3RlJiBtZWRp
YVNvdXJjZVByaXZhdGUsIGNvbnN0IE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZSYgbWVkaWFQbGF5
ZXJQcml2YXRlKQotICAgIDogbV9ncHVQcm9jZXNzQ29ubmVjdGlvbihtYWtlV2Vha1B0cihncHVQ
cm9jZXNzQ29ubmVjdGlvbikpCisgICAgOiBtX2dwdVByb2Nlc3NDb25uZWN0aW9uKGdwdVByb2Nl
c3NDb25uZWN0aW9uKQogICAgICwgbV9yZW1vdGVTb3VyY2VCdWZmZXJJZGVudGlmaWVyKHJlbW90
ZVNvdXJjZUJ1ZmZlcklkZW50aWZpZXIpCi0gICAgLCBtX21lZGlhU291cmNlUHJpdmF0ZShtYWtl
V2Vha1B0cihtZWRpYVNvdXJjZVByaXZhdGUpKQotICAgICwgbV9tZWRpYVBsYXllclByaXZhdGUo
bWFrZVdlYWtQdHIobWVkaWFQbGF5ZXJQcml2YXRlKSkKKyAgICAsIG1fbWVkaWFTb3VyY2VQcml2
YXRlKG1lZGlhU291cmNlUHJpdmF0ZSkKKyAgICAsIG1fbWVkaWFQbGF5ZXJQcml2YXRlKG1lZGlh
UGxheWVyUHJpdmF0ZSkKICNpZiAhUkVMRUFTRV9MT0dfRElTQUJMRUQKICAgICAsIG1fbG9nZ2Vy
KG1fbWVkaWFTb3VyY2VQcml2YXRlLT5sb2dnZXIoKSkKICAgICAsIG1fbG9nSWRlbnRpZmllciht
X21lZGlhU291cmNlUHJpdmF0ZS0+bmV4dFNvdXJjZUJ1ZmZlckxvZ0lkZW50aWZpZXIoKSkKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvVGV4dFRyYWNrUHJp
dmF0ZVJlbW90ZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1RleHRU
cmFja1ByaXZhdGVSZW1vdGUuY3BwCmluZGV4IGY3ZDcyM2M2M2JmYzYyYWM1N2FhYTAzNWFmMmVj
NThkZGYxMjRmMzAuLjcwY2RjYWJhMDlkMWFjNDBkNzIzODI4MWEzNDZmZTJlZGFjYmRlM2YgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvVGV4dFRyYWNrUHJp
dmF0ZVJlbW90ZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9U
ZXh0VHJhY2tQcml2YXRlUmVtb3RlLmNwcApAQCAtMzksNyArMzksNyBAQCB1c2luZyBuYW1lc3Bh
Y2UgV2ViQ29yZTsKIAogVGV4dFRyYWNrUHJpdmF0ZVJlbW90ZTo6VGV4dFRyYWNrUHJpdmF0ZVJl
bW90ZShHUFVQcm9jZXNzQ29ubmVjdGlvbiYgZ3B1UHJvY2Vzc0Nvbm5lY3Rpb24sIE1lZGlhUGxh
eWVySWRlbnRpZmllciBwbGF5ZXJJZGVudGlmaWVyLCBUcmFja1ByaXZhdGVSZW1vdGVJZGVudGlm
aWVyIGlkZW5kaWZpZXIsIFRleHRUcmFja1ByaXZhdGVSZW1vdGVDb25maWd1cmF0aW9uJiYgY29u
ZmlndXJhdGlvbikKICAgICA6IFdlYkNvcmU6OkluYmFuZFRleHRUcmFja1ByaXZhdGUoY29uZmln
dXJhdGlvbi5jdWVGb3JtYXQpCi0gICAgLCBtX2dwdVByb2Nlc3NDb25uZWN0aW9uKG1ha2VXZWFr
UHRyKGdwdVByb2Nlc3NDb25uZWN0aW9uKSkKKyAgICAsIG1fZ3B1UHJvY2Vzc0Nvbm5lY3Rpb24o
Z3B1UHJvY2Vzc0Nvbm5lY3Rpb24pCiAgICAgLCBtX3BsYXllcklkZW50aWZpZXIocGxheWVySWRl
bnRpZmllcikKICAgICAsIG1faWRlbnRpZmllcihpZGVuZGlmaWVyKQogewpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9WaWRlb1RyYWNrUHJpdmF0ZVJlbW90
ZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1ZpZGVvVHJhY2tQcml2
YXRlUmVtb3RlLmNwcAppbmRleCAxNWIyN2YxOTg3OGVkYzk0NTE3ZWYwYmI2MmMzYjRkOTRhZGI2
ZTJkLi5hNmY5OGQ4NTA0NWY5NmYyMDllMGU4NWQ0YTVlZjUwODc3MzMxMzcxIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1ZpZGVvVHJhY2tQcml2YXRlUmVt
b3RlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1ZpZGVvVHJh
Y2tQcml2YXRlUmVtb3RlLmNwcApAQCAtMzYsNyArMzYsNyBAQAogbmFtZXNwYWNlIFdlYktpdCB7
CiAKIFZpZGVvVHJhY2tQcml2YXRlUmVtb3RlOjpWaWRlb1RyYWNrUHJpdmF0ZVJlbW90ZShHUFVQ
cm9jZXNzQ29ubmVjdGlvbiYgZ3B1UHJvY2Vzc0Nvbm5lY3Rpb24sIFdlYkNvcmU6Ok1lZGlhUGxh
eWVySWRlbnRpZmllciBwbGF5ZXJJZGVudGlmaWVyLCBUcmFja1ByaXZhdGVSZW1vdGVJZGVudGlm
aWVyIGlkZW5kaWZpZXIsIFRyYWNrUHJpdmF0ZVJlbW90ZUNvbmZpZ3VyYXRpb24mJiBjb25maWd1
cmF0aW9uKQotICAgIDogbV9ncHVQcm9jZXNzQ29ubmVjdGlvbihtYWtlV2Vha1B0cihncHVQcm9j
ZXNzQ29ubmVjdGlvbikpCisgICAgOiBtX2dwdVByb2Nlc3NDb25uZWN0aW9uKGdwdVByb2Nlc3ND
b25uZWN0aW9uKQogICAgICwgbV9wbGF5ZXJJZGVudGlmaWVyKHBsYXllcklkZW50aWZpZXIpCiAg
ICAgLCBtX2lkZW5kaWZpZXIoaWRlbmRpZmllcikKIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvY29jb2EvVmlkZW9MYXllclJlbW90ZUNvY29hLm1tIGIv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9jb2NvYS9WaWRlb0xheWVyUmVtb3Rl
Q29jb2EubW0KaW5kZXggM2FlNjVlMTFlMGJkNGY1NTM2MGFmZGI4MzY4M2RiMDBhYWUxOWM0Yy4u
NGMwMTZkMDk0ZTA3NGY2NTY0YzBkMDNkOGYzMmM3MTY2NDg4NjJkYyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9jb2NvYS9WaWRlb0xheWVyUmVtb3RlQ29j
b2EubW0KKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9jb2NvYS9WaWRl
b0xheWVyUmVtb3RlQ29jb2EubW0KQEAgLTc4LDcgKzc4LDcgQEAgLSAoV2ViS2l0OjpNZWRpYVBs
YXllclByaXZhdGVSZW1vdGUqKW1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZQogCiAtICh2b2lkKXNl
dE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTooV2ViS2l0OjpNZWRpYVBsYXllclByaXZhdGVSZW1v
dGUqKW1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZQogewotICAgIF9tZWRpYVBsYXllclByaXZhdGVS
ZW1vdGUgPSBtYWtlV2Vha1B0cigqbWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlKTsKKyAgICBfbWVk
aWFQbGF5ZXJQcml2YXRlUmVtb3RlID0gKm1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTsKIH0KIAog
LSAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJFbnVtczo6VmlkZW9HcmF2aXR5KXZpZGVvR3Jhdml0eQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9pb3MvUmVtb3Rl
TWVkaWFTZXNzaW9uSGVscGVyLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVk
aWEvaW9zL1JlbW90ZU1lZGlhU2Vzc2lvbkhlbHBlci5jcHAKaW5kZXggNDg2MmFmNzY0NTY3ZDZi
ZjZhZmY2OGQyODc4ZjhmOTRlMTk1OGYyNi4uOTE2NDA2YmJlMjQyN2M3ZGVhMDc0Y2YxZmViNWQy
MTBmYTlkZDFlYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRp
YS9pb3MvUmVtb3RlTWVkaWFTZXNzaW9uSGVscGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvR1BVL21lZGlhL2lvcy9SZW1vdGVNZWRpYVNlc3Npb25IZWxwZXIuY3BwCkBAIC00
OSw3ICs0OSw3IEBAIFJlbW90ZU1lZGlhU2Vzc2lvbkhlbHBlcjo6UmVtb3RlTWVkaWFTZXNzaW9u
SGVscGVyKFdlYlByb2Nlc3MmIHByb2Nlc3MpCiBJUEM6OkNvbm5lY3Rpb24mIFJlbW90ZU1lZGlh
U2Vzc2lvbkhlbHBlcjo6ZW5zdXJlQ29ubmVjdGlvbigpCiB7CiAgICAgaWYgKCFtX2dwdVByb2Nl
c3NDb25uZWN0aW9uKSB7Ci0gICAgICAgIG1fZ3B1UHJvY2Vzc0Nvbm5lY3Rpb24gPSBtYWtlV2Vh
a1B0cihtX3Byb2Nlc3MuZW5zdXJlR1BVUHJvY2Vzc0Nvbm5lY3Rpb24oKSk7CisgICAgICAgIG1f
Z3B1UHJvY2Vzc0Nvbm5lY3Rpb24gPSBtX3Byb2Nlc3MuZW5zdXJlR1BVUHJvY2Vzc0Nvbm5lY3Rp
b24oKTsKICAgICAgICAgbV9ncHVQcm9jZXNzQ29ubmVjdGlvbi0+YWRkQ2xpZW50KCp0aGlzKTsK
ICAgICAgICAgbV9ncHVQcm9jZXNzQ29ubmVjdGlvbi0+bWVzc2FnZVJlY2VpdmVyTWFwKCkuYWRk
TWVzc2FnZVJlY2VpdmVyKE1lc3NhZ2VzOjpSZW1vdGVNZWRpYVNlc3Npb25IZWxwZXI6Om1lc3Nh
Z2VSZWNlaXZlck5hbWUoKSwgKnRoaXMpOwogICAgICAgICBtX2dwdVByb2Nlc3NDb25uZWN0aW9u
LT5jb25uZWN0aW9uKCkuc2VuZChNZXNzYWdlczo6R1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6
RW5zdXJlTWVkaWFTZXNzaW9uSGVscGVyKCksIHsgfSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvR1BVL3dlYnJ0Yy9BdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlcklu
dGVybmFsVW5pdE1hbmFnZXIuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS93ZWJy
dGMvQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJJbnRlcm5hbFVuaXRNYW5hZ2VyLmNwcApp
bmRleCBlZGY4NjdlODE1M2UzMGQ2NzA5YTU2NWI2NjRjN2VjZjE3Y2JjMjZmLi42ODUxZDFhOTQ0
OTcwNjI5MTU1ZjZmMmM5NmE0N2ExMjk4NzI1MGY1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvR1BVL3dlYnJ0Yy9BdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlckludGVy
bmFsVW5pdE1hbmFnZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvd2Vi
cnRjL0F1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVySW50ZXJuYWxVbml0TWFuYWdlci5jcHAK
QEAgLTg5LDcgKzg5LDcgQEAgcHJpdmF0ZToKIAogdm9pZCBBdWRpb01lZGlhU3RyZWFtVHJhY2tS
ZW5kZXJlckludGVybmFsVW5pdE1hbmFnZXI6OmFkZChQcm94eSYgcHJveHkpCiB7Ci0gICAgbV9w
cm94aWVzLmFkZChwcm94eS5pZGVudGlmaWVyKCksIG1ha2VXZWFrUHRyKHByb3h5KSk7CisgICAg
bV9wcm94aWVzLmFkZChwcm94eS5pZGVudGlmaWVyKCksIHByb3h5KTsKIH0KIAogdm9pZCBBdWRp
b01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlckludGVybmFsVW5pdE1hbmFnZXI6OnJlbW92ZShQcm94
eSYgcHJveHkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL3dlYnJ0
Yy9TYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXIuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L0dQVS93ZWJydGMvU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyLmNwcAppbmRleCBmZGJhMGRiYzdl
NjIwMmRmMGI3NWUxNTllOGZkY2UyZjkyNGQ2YTcyLi5iZTkxOWNkZDFmMDA4MWY1MzY5NTQxYTIx
NzMwM2YyNGU2MDIyYTBjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BV
L3dlYnJ0Yy9TYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9HUFUvd2VicnRjL1NhbXBsZUJ1ZmZlckRpc3BsYXlMYXllci5jcHAKQEAgLTQ5
LDcgKzQ5LDcgQEAgc3RkOjp1bmlxdWVfcHRyPFNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllcj4gU2Ft
cGxlQnVmZmVyRGlzcGxheUxheWVyOjpjcmVhdGUoU2FtcGwKIAogU2FtcGxlQnVmZmVyRGlzcGxh
eUxheWVyOjpTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXIoU2FtcGxlQnVmZmVyRGlzcGxheUxheWVy
TWFuYWdlciYgbWFuYWdlciwgV2ViQ29yZTo6U2FtcGxlQnVmZmVyRGlzcGxheUxheWVyOjpDbGll
bnQmIGNsaWVudCkKICAgICA6IFdlYkNvcmU6OlNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllcihjbGll
bnQpCi0gICAgLCBtX21hbmFnZXIobWFrZVdlYWtQdHIobWFuYWdlcikpCisgICAgLCBtX21hbmFn
ZXIobWFuYWdlcikKICAgICAsIG1fY29ubmVjdGlvbihXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5l
bnN1cmVHUFVQcm9jZXNzQ29ubmVjdGlvbigpLmNvbm5lY3Rpb24oKSkKICAgICAsIG1faWRlbnRp
ZmllcihTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXJJZGVudGlmaWVyOjpnZW5lcmF0ZSgpKQogewpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS93ZWJydGMvU2FtcGxlQnVm
ZmVyRGlzcGxheUxheWVyTWFuYWdlci5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BV
L3dlYnJ0Yy9TYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXJNYW5hZ2VyLmNwcAppbmRleCBjNDA0Mjcy
YTc1ZjM5MmEwZmRhOTRmMGMyYjYyM2NkNGFmZjI1OWViLi5hYTFlY2U3OGEyNDY2N2FmOWY2MDll
MzhhMjFhMjRkMmY4NzY2MjExIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
R1BVL3dlYnJ0Yy9TYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXJNYW5hZ2VyLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL3dlYnJ0Yy9TYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXJN
YW5hZ2VyLmNwcApAQCAtNDYsMTQgKzQ2LDE0IEBAIHN0ZDo6dW5pcXVlX3B0cjxXZWJDb3JlOjpT
YW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXI+IFNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllck1hbmFnCiAg
ICAgaWYgKCFsYXllcikKICAgICAgICAgcmV0dXJuIHsgfTsKIAotICAgIG1fbGF5ZXJzLmFkZChs
YXllci0+aWRlbnRpZmllcigpLCBtYWtlV2Vha1B0cigqbGF5ZXIpKTsKKyAgICBtX2xheWVycy5h
ZGQobGF5ZXItPmlkZW50aWZpZXIoKSwgKmxheWVyKTsKICAgICByZXR1cm4gbGF5ZXI7CiB9CiAK
IHZvaWQgU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyTWFuYWdlcjo6YWRkTGF5ZXIoU2FtcGxlQnVm
ZmVyRGlzcGxheUxheWVyJiBsYXllcikKIHsKICAgICBBU1NFUlQoIW1fbGF5ZXJzLmNvbnRhaW5z
KGxheWVyLmlkZW50aWZpZXIoKSkpOwotICAgIG1fbGF5ZXJzLmFkZChsYXllci5pZGVudGlmaWVy
KCksIG1ha2VXZWFrUHRyKGxheWVyKSk7CisgICAgbV9sYXllcnMuYWRkKGxheWVyLmlkZW50aWZp
ZXIoKSwgbGF5ZXIpOwogfQogCiB2b2lkIFNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllck1hbmFnZXI6
OnJlbW92ZUxheWVyKFNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllciYgbGF5ZXIpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2dsaWIvRE9NL0RP
TU9iamVjdENhY2hlLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRs
ZS9BUEkvZ2xpYi9ET00vRE9NT2JqZWN0Q2FjaGUuY3BwCmluZGV4IDQ5NDBiMTBiZWQ3ZDZkOTk2
MWIyZDBjNDEwNGRiZGFlZGQ5MTdlZmIuLmI2Mzk2ZTI3ZTI0MmVhMDk3NmIyMzNkNjBiZGE1MDZj
ZDdhOGFhZDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1
bmRsZS9BUEkvZ2xpYi9ET00vRE9NT2JqZWN0Q2FjaGUuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ2xpYi9ET00vRE9NT2JqZWN0Q2FjaGUuY3Bw
CkBAIC0xMTEsNyArMTExLDcgQEAgcHJpdmF0ZToKICAgICAgICAgV1RGX01BS0VfRkFTVF9BTExP
Q0FURUQ7CiAgICAgcHVibGljOgogICAgICAgICBET01XaW5kb3dPYnNlcnZlcihXZWJDb3JlOjpE
T01XaW5kb3cmIHdpbmRvdywgRE9NT2JqZWN0Q2FjaGVGcmFtZU9ic2VydmVyJiBmcmFtZU9ic2Vy
dmVyKQotICAgICAgICAgICAgOiBtX3dpbmRvdyhtYWtlV2Vha1B0cih3aW5kb3cpKQorICAgICAg
ICAgICAgOiBtX3dpbmRvdyh3aW5kb3cpCiAgICAgICAgICAgICAsIG1fZnJhbWVPYnNlcnZlcihm
cmFtZU9ic2VydmVyKQogICAgICAgICB7CiAgICAgICAgICAgICB3aW5kb3cucmVnaXN0ZXJPYnNl
cnZlcigqdGhpcyk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5zcGVj
dG9yL1dlYkluc3BlY3RvclVJRXh0ZW5zaW9uQ29udHJvbGxlci5jcHAgYi9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvSW5zcGVjdG9yL1dlYkluc3BlY3RvclVJRXh0ZW5zaW9uQ29udHJvbGxlci5j
cHAKaW5kZXggZWUzOTI2MDgxYjgzZDk2MTZhZTVlOWRjZTQyMDgxZTRkM2IwZWM2My4uYzYyNTk2
ZTgwYzJlMmYwZDY4OGNmMDY2MTM4OWY4NzM2YzM1MzIyNyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL0luc3BlY3Rvci9XZWJJbnNwZWN0b3JVSUV4dGVuc2lvbkNvbnRyb2xs
ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbnNwZWN0b3IvV2ViSW5zcGVj
dG9yVUlFeHRlbnNpb25Db250cm9sbGVyLmNwcApAQCAtNDQsNyArNDQsNyBAQAogbmFtZXNwYWNl
IFdlYktpdCB7CiAKIFdlYkluc3BlY3RvclVJRXh0ZW5zaW9uQ29udHJvbGxlcjo6V2ViSW5zcGVj
dG9yVUlFeHRlbnNpb25Db250cm9sbGVyKFdlYkNvcmU6Okluc3BlY3RvckZyb250ZW5kQ2xpZW50
JiBpbnNwZWN0b3JGcm9udGVuZCkKLSAgICA6IG1fZnJvbnRlbmRDbGllbnQobWFrZVdlYWtQdHIo
aW5zcGVjdG9yRnJvbnRlbmQpKQorICAgIDogbV9mcm9udGVuZENsaWVudChpbnNwZWN0b3JGcm9u
dGVuZCkKIHsKICAgICBhdXRvKiBwYWdlID0gaW5zcGVjdG9yRnJvbnRlbmQuZnJvbnRlbmRQYWdl
KCk7CiAgICAgQVNTRVJUKHBhZ2UpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL05ldHdvcmsvV2ViU29ja2V0Q2hhbm5lbC5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvTmV0d29yay9XZWJTb2NrZXRDaGFubmVsLmNwcAppbmRleCBjZjE0NWFhMWRiMzFhMzZjNDA2
ZWQ1MDA5NGFjYjU1Yjk3N2VkODUxLi45MTg1NmE1NzcyOTY3MjJkMjRhYmU2OTc4M2EwMTZhYThm
YjczYWQwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0d29yay9XZWJT
b2NrZXRDaGFubmVsLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0d29yay9X
ZWJTb2NrZXRDaGFubmVsLmNwcApAQCAtNjksOCArNjksOCBAQCBOZXR3b3JrU2VuZFF1ZXVlIFdl
YlNvY2tldENoYW5uZWw6OmNyZWF0ZU1lc3NhZ2VRdWV1ZShEb2N1bWVudCYgZG9jdW1lbnQsIFdl
YlNvYwogfQogCiBXZWJTb2NrZXRDaGFubmVsOjpXZWJTb2NrZXRDaGFubmVsKFdlYlBhZ2VQcm94
eUlkZW50aWZpZXIgd2ViUGFnZVByb3h5SUQsIERvY3VtZW50JiBkb2N1bWVudCwgV2ViU29ja2V0
Q2hhbm5lbENsaWVudCYgY2xpZW50KQotICAgIDogbV9kb2N1bWVudChtYWtlV2Vha1B0cihkb2N1
bWVudCkpCi0gICAgLCBtX2NsaWVudChtYWtlV2Vha1B0cihjbGllbnQpKQorICAgIDogbV9kb2N1
bWVudChkb2N1bWVudCkKKyAgICAsIG1fY2xpZW50KGNsaWVudCkKICAgICAsIG1fbWVzc2FnZVF1
ZXVlKGNyZWF0ZU1lc3NhZ2VRdWV1ZShkb2N1bWVudCwgKnRoaXMpKQogICAgICwgbV9pbnNwZWN0
b3IoZG9jdW1lbnQpCiAgICAgLCBtX3dlYlBhZ2VQcm94eUlEKHdlYlBhZ2VQcm94eUlEKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05ldHdvcmsvV2ViU29ja2V0Q2hhbm5l
bE1hbmFnZXIuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05ldHdvcmsvV2ViU29ja2V0
Q2hhbm5lbE1hbmFnZXIuY3BwCmluZGV4IGI5ODZhNzk5NmMzMmNlNTQ1MDJmYWJmNWM5ZmRiZTNm
ZjBhNzc4MGUuLjg5OWU2NThhYzY4MTYzZjU4YTUxY2JhZmUxZTExNzExMWRiNmVmM2YgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9OZXR3b3JrL1dlYlNvY2tldENoYW5uZWxN
YW5hZ2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0d29yay9XZWJTb2Nr
ZXRDaGFubmVsTWFuYWdlci5jcHAKQEAgLTMzLDcgKzMzLDcgQEAgbmFtZXNwYWNlIFdlYktpdCB7
CiB2b2lkIFdlYlNvY2tldENoYW5uZWxNYW5hZ2VyOjphZGRDaGFubmVsKFdlYlNvY2tldENoYW5u
ZWwmIGNoYW5uZWwpCiB7CiAgICAgQVNTRVJUKCFtX2NoYW5uZWxzLmNvbnRhaW5zKGNoYW5uZWwu
aWRlbnRpZmllcigpKSk7Ci0gICAgbV9jaGFubmVscy5hZGQoY2hhbm5lbC5pZGVudGlmaWVyKCks
IG1ha2VXZWFrUHRyKGNoYW5uZWwpKTsKKyAgICBtX2NoYW5uZWxzLmFkZChjaGFubmVsLmlkZW50
aWZpZXIoKSwgY2hhbm5lbCk7CiB9CiAKIHZvaWQgV2ViU29ja2V0Q2hhbm5lbE1hbmFnZXI6Om5l
dHdvcmtQcm9jZXNzQ3Jhc2hlZCgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvTmV0d29yay93ZWJydGMvUlRDRGF0YUNoYW5uZWxSZW1vdGVNYW5hZ2VyLmNwcCBiL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9OZXR3b3JrL3dlYnJ0Yy9SVENEYXRhQ2hhbm5lbFJlbW90ZU1h
bmFnZXIuY3BwCmluZGV4IDliOTZmNGExM2RjMzRjMDUyYjNkOTQ2MjU2NDcxNTUzMGU5NjdkODMu
LjZkMTE5ZTY4ODA0MmRiNmI4MGYwNjQ3Y2MxMmRkMjMxMjZlZjI5NzcgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9OZXR3b3JrL3dlYnJ0Yy9SVENEYXRhQ2hhbm5lbFJlbW90
ZU1hbmFnZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9OZXR3b3JrL3dlYnJ0
Yy9SVENEYXRhQ2hhbm5lbFJlbW90ZU1hbmFnZXIuY3BwCkBAIC0xODUsNyArMTg1LDcgQEAgUlRD
RGF0YUNoYW5uZWxSZW1vdGVNYW5hZ2VyOjpSZW1vdGVIYW5kbGVyQ29ubmVjdGlvbjo6UmVtb3Rl
SGFuZGxlckNvbm5lY3Rpb24oUmUKIAogdm9pZCBSVENEYXRhQ2hhbm5lbFJlbW90ZU1hbmFnZXI6
OlJlbW90ZUhhbmRsZXJDb25uZWN0aW9uOjpjb25uZWN0VG9Tb3VyY2UoV2ViQ29yZTo6UlRDRGF0
YUNoYW5uZWxSZW1vdGVIYW5kbGVyJiBoYW5kbGVyLCBXZWJDb3JlOjpTY3JpcHRFeGVjdXRpb25D
b250ZXh0SWRlbnRpZmllciBjb250ZXh0SWRlbnRpZmllciwgV2ViQ29yZTo6UlRDRGF0YUNoYW5u
ZWxJZGVudGlmaWVyIGxvY2FsSWRlbnRpZmllciwgV2ViQ29yZTo6UlRDRGF0YUNoYW5uZWxJZGVu
dGlmaWVyIHJlbW90ZUlkZW50aWZpZXIpCiB7Ci0gICAgbV9xdWV1ZS0+ZGlzcGF0Y2goW2hhbmRs
ZXIgPSBtYWtlV2Vha1B0cihoYW5kbGVyKSwgY29udGV4dElkZW50aWZpZXIsIGxvY2FsSWRlbnRp
Zmllcl0oKSBtdXRhYmxlIHsKKyAgICBtX3F1ZXVlLT5kaXNwYXRjaChbaGFuZGxlciA9IFdlYWtQ
dHIgeyBoYW5kbGVyIH0sIGNvbnRleHRJZGVudGlmaWVyLCBsb2NhbElkZW50aWZpZXJdKCkgbXV0
YWJsZSB7CiAgICAgICAgIFJUQ0RhdGFDaGFubmVsUmVtb3RlTWFuYWdlcjo6c2hhcmVkTWFuYWdl
cigpLm1faGFuZGxlcnMuYWRkKGxvY2FsSWRlbnRpZmllci5jaGFubmVsSWRlbnRpZmllciwgUmVt
b3RlSGFuZGxlciB7IFdURk1vdmUoaGFuZGxlciksIGNvbnRleHRJZGVudGlmaWVyIH0pOwogICAg
IH0pOwogICAgIG1fY29ubmVjdGlvbi0+c2VuZFdpdGhBc3luY1JlcGx5KE1lc3NhZ2VzOjpOZXR3
b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6Q29ubmVjdFRvUlRDRGF0YUNoYW5uZWxSZW1vdGVT
b3VyY2UgeyBsb2NhbElkZW50aWZpZXIsIHJlbW90ZUlkZW50aWZpZXIgfSwgW2xvY2FsSWRlbnRp
Zmllcl0oYXV0byYmIHJlc3VsdCkgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL1BsdWdpbnMvUERGL1BERlBsdWdpbi5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1Bs
dWdpbnMvUERGL1BERlBsdWdpbi5oCmluZGV4IDBlNTQwMjE2NjA5MDk0ZGZkZGJkNzBkYmY5MDZl
NGE4YzAyMTM2ZjkuLjQyZGU0NjE0MTk3NzhiN2M0NTBmY2ExZWIwMzdjMWNlOTdkMmQ2MzEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9QbHVnaW5zL1BERi9QREZQbHVnaW4u
aAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvUGx1Z2lucy9QREYvUERGUGx1Z2luLmgK
QEAgLTM1OSw3ICszNTksNyBAQCBwcml2YXRlOgogICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIHB1YmxpYyBXZWJDb3JlOjpOZXRzY2FwZVBsdWdJblN0cmVhbUxvYWRlckNs
aWVudCB7CiAgICAgcHVibGljOgogICAgICAgICBQREZQbHVnaW5TdHJlYW1Mb2FkZXJDbGllbnQo
UERGUGx1Z2luJiBwZGZQbHVnaW4pCi0gICAgICAgICAgICA6IG1fcGRmUGx1Z2luKG1ha2VXZWFr
UHRyKHBkZlBsdWdpbikpCisgICAgICAgICAgICA6IG1fcGRmUGx1Z2luKHBkZlBsdWdpbikKICAg
ICAgICAgewogICAgICAgICB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9QbHVnaW5zL1BERi9QREZQbHVnaW4ubW0gYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvUGx1
Z2lucy9QREYvUERGUGx1Z2luLm1tCmluZGV4IDViNjU0NDFlNmRmNWJjODVjNDQyM2FiOWNlZGVj
YWZhNGQ2YmQxZmQuLjBlMWQwN2FlM2QwYzgxNzRlYjZjM2RiYzkzODJhZDU0YjY3MzQzMDMgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9QbHVnaW5zL1BERi9QREZQbHVnaW4u
bW0KKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1BsdWdpbnMvUERGL1BERlBsdWdpbi5t
bQpAQCAtMTgwLDcgKzE4MCw3IEBAIC0gKGlkKWluaXRXaXRoUERGUGx1Z2luOihXZWJLaXQ6OlBE
RlBsdWdpbiAqKXBsdWdpbiBhbmRFbGVtZW50OihXZWJDb3JlOjpIVE1MUGx1CiAgICAgICAgIHJl
dHVybiBuaWw7CiAKICAgICBfcGRmUGx1Z2luID0gcGx1Z2luOwotICAgIF9wbHVnaW5FbGVtZW50
ID0gbWFrZVdlYWtQdHIoZWxlbWVudCk7CisgICAgX3BsdWdpbkVsZW1lbnQgPSBlbGVtZW50Owog
CiAgICAgcmV0dXJuIHNlbGY7CiB9CkBAIC02MzMsNyArNjMzLDcgQEAgUmVmPFBERlBsdWdpbj4g
UERGUGx1Z2luOjpjcmVhdGUoV2ViRnJhbWUmIGZyYW1lLCBIVE1MUGx1Z0luRWxlbWVudCogcGx1
Z2luRWxlbWUKIAogaW5saW5lIFBERlBsdWdpbjo6UERGUGx1Z2luKFdlYkZyYW1lJiBmcmFtZSwg
SFRNTFBsdWdJbkVsZW1lbnQqIHBsdWdpbkVsZW1lbnQpCiAgICAgOiBQbHVnaW4oUERGUGx1Z2lu
VHlwZSkKLSAgICAsIG1fZnJhbWUobWFrZVdlYWtQdHIoZnJhbWUpKQorICAgICwgbV9mcmFtZShm
cmFtZSkKICAgICAsIG1fY29udGFpbmVyTGF5ZXIoYWRvcHROUyhbW0NBTGF5ZXIgYWxsb2NdIGlu
aXRdKSkKICAgICAsIG1fY29udGVudExheWVyKGFkb3B0TlMoW1tDQUxheWVyIGFsbG9jXSBpbml0
XSkpCiAgICAgLCBtX3Njcm9sbENvcm5lckxheWVyKGFkb3B0TlMoW1tXS1BERlBsdWdpblNjcm9s
bGJhckxheWVyIGFsbG9jXSBpbml0V2l0aFBERlBsdWdpbjp0aGlzXSkpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvUGx1Z2lucy9QbHVnaW4uY3BwIGIvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL1BsdWdpbnMvUGx1Z2luLmNwcAppbmRleCBkMzYxMWY0MDU4Y2ViYTAxZGQ5
ODYzZGMzOGVjZTQxZDlkMzVmMmQwLi4xNDg4OTM5YWE2NDM2ZWJkOTFmMDU2YWQ5ZGIxNDA5YjJh
NTU0YmY0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvUGx1Z2lucy9QbHVn
aW4uY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9QbHVnaW5zL1BsdWdpbi5jcHAK
QEAgLTkwLDcgKzkwLDcgQEAgYm9vbCBQbHVnaW46OmluaXRpYWxpemUoUGx1Z2luQ29udHJvbGxl
ciYgcGx1Z2luQ29udHJvbGxlciwgY29uc3QgUGFyYW1ldGVycyYgcGEKIHsKICAgICBBU1NFUlQo
IW1fcGx1Z2luQ29udHJvbGxlcik7CiAKLSAgICBtX3BsdWdpbkNvbnRyb2xsZXIgPSBtYWtlV2Vh
a1B0cihwbHVnaW5Db250cm9sbGVyKTsKKyAgICBtX3BsdWdpbkNvbnRyb2xsZXIgPSBwbHVnaW5D
b250cm9sbGVyOwogCiAgICAgcmV0dXJuIGluaXRpYWxpemUocGFyYW1ldGVycyk7CiB9CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRGV2aWNl
T3JpZW50YXRpb25VcGRhdGVQcm92aWRlci5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
V2ViQ29yZVN1cHBvcnQvV2ViRGV2aWNlT3JpZW50YXRpb25VcGRhdGVQcm92aWRlci5jcHAKaW5k
ZXggYTEzMDIyY2I4ZjZlZTY2MzkzM2RkODRiNjdmOGY2ZjA0NDA4Y2VkNy4uZjlhZjlhYjkzZjdl
MDEyODc3MzY1MGMxZDI0OTVhZGRlMzlmZDQzNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkRldmljZU9yaWVudGF0aW9uVXBkYXRlUHJvdmlk
ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJE
ZXZpY2VPcmllbnRhdGlvblVwZGF0ZVByb3ZpZGVyLmNwcApAQCAtMzgsNyArMzgsNyBAQAogbmFt
ZXNwYWNlIFdlYktpdCB7CiAKIFdlYkRldmljZU9yaWVudGF0aW9uVXBkYXRlUHJvdmlkZXI6Oldl
YkRldmljZU9yaWVudGF0aW9uVXBkYXRlUHJvdmlkZXIoV2ViUGFnZSYgcGFnZSkKLSAgICA6IG1f
cGFnZShtYWtlV2Vha1B0cihwYWdlKSkKKyAgICA6IG1fcGFnZShwYWdlKQogICAgICwgbV9wYWdl
SWRlbnRpZmllcihwYWdlLmlkZW50aWZpZXIoKSkKIHsKICAgICBXZWJQcm9jZXNzOjpzaW5nbGV0
b24oKS5hZGRNZXNzYWdlUmVjZWl2ZXIoTWVzc2FnZXM6OldlYkRldmljZU9yaWVudGF0aW9uVXBk
YXRlUHJvdmlkZXI6Om1lc3NhZ2VSZWNlaXZlck5hbWUoKSwgcGFnZS5pZGVudGlmaWVyKCksICp0
aGlzKTsKQEAgLTg1LDcgKzg1LDcgQEAgdm9pZCBXZWJEZXZpY2VPcmllbnRhdGlvblVwZGF0ZVBy
b3ZpZGVyOjpkZXZpY2VPcmllbnRhdGlvbkNoYW5nZWQoZG91YmxlIGFscGhhLAogewogICAgIFZl
Y3RvcjxXZWFrUHRyPFdlYkNvcmU6Ok1vdGlvbk1hbmFnZXJDbGllbnQ+PiBjbGllbnRzOwogICAg
IGZvciAoYXV0byYgY2xpZW50IDogbV9kZXZpY2VPcmllbnRhdGlvbkNsaWVudHMpCi0gICAgICAg
IGNsaWVudHMuYXBwZW5kKG1ha2VXZWFrUHRyKCZjbGllbnQpKTsKKyAgICAgICAgY2xpZW50cy5h
cHBlbmQoY2xpZW50KTsKIAogICAgIGZvciAoYXV0byYgY2xpZW50IDogY2xpZW50cykgewogICAg
ICAgICBpZiAoY2xpZW50KQpAQCAtOTcsNyArOTcsNyBAQCB2b2lkIFdlYkRldmljZU9yaWVudGF0
aW9uVXBkYXRlUHJvdmlkZXI6OmRldmljZU1vdGlvbkNoYW5nZWQoZG91YmxlIHhBY2NlbGVyYXRp
bwogewogICAgIFZlY3RvcjxXZWFrUHRyPFdlYkNvcmU6Ok1vdGlvbk1hbmFnZXJDbGllbnQ+PiBj
bGllbnRzOwogICAgIGZvciAoYXV0byYgY2xpZW50IDogbV9kZXZpY2VNb3Rpb25DbGllbnRzKQot
ICAgICAgICBjbGllbnRzLmFwcGVuZChtYWtlV2Vha1B0cigmY2xpZW50KSk7CisgICAgICAgIGNs
aWVudHMuYXBwZW5kKGNsaWVudCk7CiAgICAgCiAgICAgZm9yIChhdXRvJiBjbGllbnQgOiBjbGll
bnRzKSB7CiAgICAgICAgIGlmIChjbGllbnQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViUGVybWlzc2lvbkNvbnRyb2xsZXIuY3BwIGIvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlBlcm1pc3Npb25Db250cm9s
bGVyLmNwcAppbmRleCAwMDg1ZTQ5OGNlMGQ2NmE1ODJjZjY4MWU0NmQ4YWRiYzFkMjJmZTE2Li5k
NjAxODIxZjBhODVjMDMyMTAwM2ZlMGRjZWQ3OTc2ZDllMjBlZTVkIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViUGVybWlzc2lvbkNvbnRyb2xs
ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJQ
ZXJtaXNzaW9uQ29udHJvbGxlci5jcHAKQEAgLTM5LDcgKzM5LDcgQEAgUmVmPFdlYlBlcm1pc3Np
b25Db250cm9sbGVyPiBXZWJQZXJtaXNzaW9uQ29udHJvbGxlcjo6Y3JlYXRlKFdlYlBhZ2UmIHBh
Z2UpCiB9CiAKIFdlYlBlcm1pc3Npb25Db250cm9sbGVyOjpXZWJQZXJtaXNzaW9uQ29udHJvbGxl
cihXZWJQYWdlJiBwYWdlKQotICAgIDogbV9wYWdlKG1ha2VXZWFrUHRyKHBhZ2UpKQorICAgIDog
bV9wYWdlKHBhZ2UpCiB7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9XZWJDb3JlU3VwcG9ydC9XZWJTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb24uY3BwIGIvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlNwZWVjaFJlY29nbml0aW9u
Q29ubmVjdGlvbi5jcHAKaW5kZXggNGI3NjNiY2RlZTYzYmRmZjRmYTFmMjlkZTc4NTY2MGQ0OGI0
ZjFlZC4uNzg5NzM4ZWM0YTNiMTEzMDU2N2JlMWUyODAxMDkzZDdmNjc3YTE3OCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlNwZWVjaFJlY29n
bml0aW9uQ29ubmVjdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNv
cmVTdXBwb3J0L1dlYlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbi5jcHAKQEAgLTYxLDcgKzYx
LDcgQEAgV2ViU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uOjp+V2ViU3BlZWNoUmVjb2duaXRp
b25Db25uZWN0aW9uKCkKIAogdm9pZCBXZWJTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb246OnJl
Z2lzdGVyQ2xpZW50KFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbkNsaWVudCYg
Y2xpZW50KQogewotICAgIG1fY2xpZW50TWFwLmFkZChjbGllbnQuaWRlbnRpZmllcigpLCBtYWtl
V2Vha1B0cihjbGllbnQpKTsKKyAgICBtX2NsaWVudE1hcC5hZGQoY2xpZW50LmlkZW50aWZpZXIo
KSwgY2xpZW50KTsKIH0KIAogdm9pZCBXZWJTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb246OnVu
cmVnaXN0ZXJDbGllbnQoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uQ2xpZW50
JiBjbGllbnQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9D
b2NvYS9XZWJQYWdlQ29jb2EubW0gYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9D
b2NvYS9XZWJQYWdlQ29jb2EubW0KaW5kZXggZTliZGQ1N2MxNDkzNDY0ODQyNTNiZTI5Y2FjMjhh
MjIyOTEzMzA5Ny4uYTI3Mzc1YjI5Y2VlZmFiMzg1ZTQ4ZDA4M2RlYzViN2EwZWJkNzQxMSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvQ29jb2EvV2ViUGFnZUNv
Y29hLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL0NvY29hL1dlYlBh
Z2VDb2NvYS5tbQpAQCAtMjcyLDcgKzI3Miw3IEBAIHZvaWQgV2ViUGFnZTo6Z2V0Q29udGVudHNB
c0F0dHJpYnV0ZWRTdHJpbmcoQ29tcGxldGlvbkhhbmRsZXI8dm9pZChjb25zdCBXZWJDb3JlCiAK
IHZvaWQgV2ViUGFnZTo6c2V0UmVtb3RlT2JqZWN0UmVnaXN0cnkoV2ViUmVtb3RlT2JqZWN0UmVn
aXN0cnkqIHJlZ2lzdHJ5KQogewotICAgIG1fcmVtb3RlT2JqZWN0UmVnaXN0cnkgPSBtYWtlV2Vh
a1B0cihyZWdpc3RyeSk7CisgICAgbV9yZW1vdGVPYmplY3RSZWdpc3RyeSA9IHJlZ2lzdHJ5Owog
fQogCiBXZWJSZW1vdGVPYmplY3RSZWdpc3RyeSogV2ViUGFnZTo6cmVtb3RlT2JqZWN0UmVnaXN0
cnkoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvRmluZENv
bnRyb2xsZXIuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvRmluZENvbnRy
b2xsZXIuY3BwCmluZGV4IGI3NzNmMGJlMzQ2NzQ4OTIxNGY5NmY4NmUyZTM5OWE2MjE1YjI0YzMu
LmI1MGFlZDE2MmZjNTJlN2Y0YThjMzljYTAzNjY1OWM1NWIwODkwYTMgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL0ZpbmRDb250cm9sbGVyLmNwcAorKysgYi9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9GaW5kQ29udHJvbGxlci5jcHAKQEAgLTU0
NSw3ICs1NDUsNyBAQCB2b2lkIEZpbmRDb250cm9sbGVyOjpkcmF3UmVjdChQYWdlT3ZlcmxheSYs
IEdyYXBoaWNzQ29udGV4dCYgZ3JhcGhpY3NDb250ZXh0LCBjbwogCiAgICAgICAgIGlmIChmaW5k
SW5kaWNhdG9yUmVjdCAhPSBtX2ZpbmRJbmRpY2F0b3JSZWN0KSB7CiAgICAgICAgICAgICAvLyBX
ZSBhcmUgdW5kZXJuZWF0aCBwYWludGluZywgc28gaXQncyBub3Qgc2FmZSB0byBtdXRhdGUgdGhl
IGxheWVyIHRyZWUgc3luY2hyb25vdXNseS4KLSAgICAgICAgICAgIGNhbGxPbk1haW5SdW5Mb29w
KFt3ZWFrV2ViUGFnZSA9IG1ha2VXZWFrUHRyKG1fd2ViUGFnZSldIHsKKyAgICAgICAgICAgIGNh
bGxPbk1haW5SdW5Mb29wKFt3ZWFrV2ViUGFnZSA9IFdlYWtQdHIgeyBtX3dlYlBhZ2UgfV0gewog
ICAgICAgICAgICAgICAgIGlmICghd2Vha1dlYlBhZ2UpCiAgICAgICAgICAgICAgICAgICAgIHJl
dHVybjsKICAgICAgICAgICAgICAgICB3ZWFrV2ViUGFnZS0+ZmluZENvbnRyb2xsZXIoKS5kaWRT
Y3JvbGxBZmZlY3RpbmdGaW5kSW5kaWNhdG9yUG9zaXRpb24oKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL0lQQ1Rlc3RpbmdBUEkuY3BwIGIvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvSVBDVGVzdGluZ0FQSS5jcHAKaW5kZXggNjAwNTRhYTkz
ZTNiNWEyN2I3YzU4YjIzMWE3ZGFhYWJmYzM4YjQ0NC4uOWM5NjAyYzAyYjM0YjUyMjc0M2YwNDJm
M2NmMjQ0NjVmNTgwMTZlMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dl
YlBhZ2UvSVBDVGVzdGluZ0FQSS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dl
YlBhZ2UvSVBDVGVzdGluZ0FQSS5jcHAKQEAgLTE2Nyw4ICsxNjcsOCBAQCBwdWJsaWM6CiAKIHBy
aXZhdGU6CiAgICAgSlNJUEMoV2ViUGFnZSYgd2ViUGFnZSwgV2ViRnJhbWUmIHdlYkZyYW1lKQot
ICAgICAgICA6IG1fd2ViUGFnZShtYWtlV2Vha1B0cih3ZWJQYWdlKSkKLSAgICAgICAgLCBtX3dl
YkZyYW1lKG1ha2VXZWFrUHRyKHdlYkZyYW1lKSkKKyAgICAgICAgOiBtX3dlYlBhZ2Uod2ViUGFn
ZSkKKyAgICAgICAgLCBtX3dlYkZyYW1lKHdlYkZyYW1lKQogICAgIHsgfQogCiAgICAgc3RhdGlj
IEpTSVBDKiB1bndyYXAoSlNPYmplY3RSZWYpOwpAQCAtMTQxOSw3ICsxNDE5LDcgQEAgSlNWYWx1
ZVJlZiBKU0lQQzo6bWVzc2FnZXMoSlNDb250ZXh0UmVmIGNvbnRleHQsIEpTT2JqZWN0UmVmIHRo
aXNPYmplY3QsIEpTU3RyaW4KIH0KIAogSlNNZXNzYWdlTGlzdGVuZXI6OkpTTWVzc2FnZUxpc3Rl
bmVyKEpTSVBDJiBqc0lQQywgVHlwZSB0eXBlLCBKU0NvbnRleHRSZWYgY29udGV4dCwgSlNPYmpl
Y3RSZWYgY2FsbGJhY2spCi0gICAgOiBtX2pzSVBDKG1ha2VXZWFrUHRyKGpzSVBDKSkKKyAgICA6
IG1fanNJUEMoanNJUEMpCiAgICAgLCBtX3R5cGUodHlwZSkKICAgICAsIG1fY29udGV4dChjb250
ZXh0KQogICAgICwgbV9jYWxsYmFjayhjYWxsYmFjaykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1JlbW90ZUxheWVyVHJlZS9SZW1vdGVMYXllclRyZWVEaXNw
bGF5UmVmcmVzaE1vbml0b3IubW0gYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9S
ZW1vdGVMYXllclRyZWUvUmVtb3RlTGF5ZXJUcmVlRGlzcGxheVJlZnJlc2hNb25pdG9yLm1tCmlu
ZGV4IGNjMzllM2QxNjI0Zjk3Yzg4OWNiZGNjZWU2NGU2OTBmN2RhNzVhZWIuLjdhNWFjZGQwYjUw
ZGNmNjBlZTRiMDczMzFjZThlNzA3N2Q2ODI3Y2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9XZWJQYWdlL1JlbW90ZUxheWVyVHJlZS9SZW1vdGVMYXllclRyZWVEaXNwbGF5
UmVmcmVzaE1vbml0b3IubW0KKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2Uv
UmVtb3RlTGF5ZXJUcmVlL1JlbW90ZUxheWVyVHJlZURpc3BsYXlSZWZyZXNoTW9uaXRvci5tbQpA
QCAtMzYsNyArMzYsNyBAQCBjb25zdGV4cHIgRnJhbWVzUGVyU2Vjb25kIERlZmF1bHRQcmVmZXJy
ZWRGcmFtZXNQZXJTZWNvbmQgPSA2MDsKIAogUmVtb3RlTGF5ZXJUcmVlRGlzcGxheVJlZnJlc2hN
b25pdG9yOjpSZW1vdGVMYXllclRyZWVEaXNwbGF5UmVmcmVzaE1vbml0b3IoUGxhdGZvcm1EaXNw
bGF5SUQgZGlzcGxheUlELCBSZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYSYgZHJhd2luZ0FyZWEp
CiAgICAgOiBEaXNwbGF5UmVmcmVzaE1vbml0b3IoZGlzcGxheUlEKQotICAgICwgbV9kcmF3aW5n
QXJlYShtYWtlV2Vha1B0cihkcmF3aW5nQXJlYSkpCisgICAgLCBtX2RyYXdpbmdBcmVhKGRyYXdp
bmdBcmVhKQogICAgICwgbV9wcmVmZXJyZWRGcmFtZXNQZXJTZWNvbmQoRGVmYXVsdFByZWZlcnJl
ZEZyYW1lc1BlclNlY29uZCkKICAgICAsIG1fY3VycmVudFVwZGF0ZSh7IDAsIG1fcHJlZmVycmVk
RnJhbWVzUGVyU2Vjb25kIH0pCiB7CkBAIC05MCw3ICs5MCw3IEBAIHZvaWQgUmVtb3RlTGF5ZXJU
cmVlRGlzcGxheVJlZnJlc2hNb25pdG9yOjpkaWRVcGRhdGVMYXllcnMoKQogCiB2b2lkIFJlbW90
ZUxheWVyVHJlZURpc3BsYXlSZWZyZXNoTW9uaXRvcjo6dXBkYXRlRHJhd2luZ0FyZWEoUmVtb3Rl
TGF5ZXJUcmVlRHJhd2luZ0FyZWEmIGRyYXdpbmdBcmVhKQogewotICAgIG1fZHJhd2luZ0FyZWEg
PSBtYWtlV2Vha1B0cihkcmF3aW5nQXJlYSk7CisgICAgbV9kcmF3aW5nQXJlYSA9IGRyYXdpbmdB
cmVhOwogfQogCiBzdGQ6Om9wdGlvbmFsPEZyYW1lc1BlclNlY29uZD4gUmVtb3RlTGF5ZXJUcmVl
RGlzcGxheVJlZnJlc2hNb25pdG9yOjpkaXNwbGF5Tm9taW5hbEZyYW1lc1BlclNlY29uZCgpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJDb250ZXh0TWVu
dS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJDb250ZXh0TWVudS5j
cHAKaW5kZXggMjg2NzMwYTM4M2Q2Y2NjYTg0MzE2NTg1YWIzMWEwN2EyNGU1ZmM5Yi4uYjE4Y2Vj
NThlM2E2MTg4NTFlNDM2YmY3OTNjMzM1NjVjNzA4YWE1YyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViQ29udGV4dE1lbnUuY3BwCisrKyBiL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYkNvbnRleHRNZW51LmNwcApAQCAtNDEsNyArNDEs
NyBAQCBuYW1lc3BhY2UgV2ViS2l0IHsKIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogCiBXZWJD
b250ZXh0TWVudTo6V2ViQ29udGV4dE1lbnUoV2ViUGFnZSYgcGFnZSkKLSAgICA6IG1fcGFnZSht
YWtlV2Vha1B0cihwYWdlKSkKKyAgICA6IG1fcGFnZShwYWdlKQogewogfQogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJGcmFtZS5jcHAgYi9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJGcmFtZS5jcHAKaW5kZXggODE1NzgzNzhlODdh
NWI5NGM3YTQ5YmY1NWM2M2E2NjE3NmJiMzY1YS4uZDkxOWU0NDhmNzU1Zjk4YjZkMGU5ZWFiNzRm
NTNmZjI0OGJiYmYzMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBh
Z2UvV2ViRnJhbWUuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dl
YkZyYW1lLmNwcApAQCAtMTA4LDcgKzEwOCw3IEBAIHZvaWQgV2ViRnJhbWU6OmluaXRXaXRoQ29y
ZU1haW5GcmFtZShXZWJQYWdlJiBwYWdlLCBGcmFtZSYgY29yZUZyYW1lKQogewogICAgIHBhZ2Uu
c2VuZChNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpEaWRDcmVhdGVNYWluRnJhbWUoZnJhbWVJRCgp
KSk7CiAKLSAgICBtX2NvcmVGcmFtZSA9IG1ha2VXZWFrUHRyKGNvcmVGcmFtZSk7CisgICAgbV9j
b3JlRnJhbWUgPSBjb3JlRnJhbWU7CiAgICAgbV9jb3JlRnJhbWUtPnRyZWUoKS5zZXROYW1lKFN0
cmluZygpKTsKICAgICBtX2NvcmVGcmFtZS0+aW5pdCgpOwogfQpAQCAtMTE5LDcgKzExOSw3IEBA
IFJlZjxXZWJGcmFtZT4gV2ViRnJhbWU6OmNyZWF0ZVN1YmZyYW1lKFdlYlBhZ2UqIHBhZ2UsIGNv
bnN0IFN0cmluZyYgZnJhbWVOYW1lLCBICiAgICAgcGFnZS0+c2VuZChNZXNzYWdlczo6V2ViUGFn
ZVByb3h5OjpEaWRDcmVhdGVTdWJmcmFtZShmcmFtZS0+ZnJhbWVJRCgpKSk7CiAKICAgICBhdXRv
IGNvcmVGcmFtZSA9IEZyYW1lOjpjcmVhdGUocGFnZS0+Y29yZVBhZ2UoKSwgb3duZXJFbGVtZW50
LCBtYWtlVW5pcXVlUmVmPFdlYkZyYW1lTG9hZGVyQ2xpZW50PihmcmFtZS5nZXQoKSkpOwotICAg
IGZyYW1lLT5tX2NvcmVGcmFtZSA9IG1ha2VXZWFrUHRyKGNvcmVGcmFtZS5nZXQoKSk7CisgICAg
ZnJhbWUtPm1fY29yZUZyYW1lID0gY29yZUZyYW1lOwogCiAgICAgY29yZUZyYW1lLT50cmVlKCku
c2V0TmFtZShmcmFtZU5hbWUpOwogICAgIGlmIChvd25lckVsZW1lbnQpIHsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYkZyYW1lLmggYi9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJGcmFtZS5oCmluZGV4IGIwY2NkOGVhZDQ5MGY5YmJm
ZGE2YWQ4ZGNkNDhmNTlhMTA2NTMyMjQuLjU3MjY2ZTRkNTQwNzNlMDg5ODNjOWYzZGFmY2Q5NDkz
MmE3OTJmMDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dl
YkZyYW1lLmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViRnJhbWUu
aApAQCAtMTczLDcgKzE3Myw3IEBAIHB1YmxpYzoKICAgICAgICAgdmlydHVhbCB2b2lkIGRpZEZp
bmlzaExvYWQoV2ViRnJhbWUqKSA9IDA7CiAgICAgICAgIHZpcnR1YWwgdm9pZCBkaWRGYWlsTG9h
ZChXZWJGcmFtZSosIGJvb2wgd2FzQ2FuY2VsbGVkKSA9IDA7CiAgICAgfTsKLSAgICB2b2lkIHNl
dExvYWRMaXN0ZW5lcihMb2FkTGlzdGVuZXIqIGxvYWRMaXN0ZW5lcikgeyBtX2xvYWRMaXN0ZW5l
ciA9IG1ha2VXZWFrUHRyKGxvYWRMaXN0ZW5lcik7IH0KKyAgICB2b2lkIHNldExvYWRMaXN0ZW5l
cihMb2FkTGlzdGVuZXIqIGxvYWRMaXN0ZW5lcikgeyBtX2xvYWRMaXN0ZW5lciA9IGxvYWRMaXN0
ZW5lcjsgfQogICAgIExvYWRMaXN0ZW5lciogbG9hZExpc3RlbmVyKCkgY29uc3QgeyByZXR1cm4g
bV9sb2FkTGlzdGVuZXIuZ2V0KCk7IH0KICAgICAKICNpZiBQTEFURk9STShDT0NPQSkKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwIGIvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKaW5kZXggZWZmOGIxOGIx
ZDAwNzJmZTJlMWQwZWVkNWNlNGQ0NzI1NTc0YjFhZS4uN2Y0MzQ0MjA0NDRlM2M2OTQ4YTQ3Mzdm
YmViZTUyYWE0NDY0YzM0ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dl
YlBhZ2UvV2ViUGFnZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2Uv
V2ViUGFnZS5jcHAKQEAgLTQ2MDAsNyArNDYwMCw3IEBAIHZvaWQgV2ViUGFnZTo6ZGlkQ2hvb3Nl
Q29sb3IoY29uc3QgV2ViQ29yZTo6Q29sb3ImIGNvbG9yKQogCiB2b2lkIFdlYlBhZ2U6OnNldEFj
dGl2ZURhdGFMaXN0U3VnZ2VzdGlvblBpY2tlcihXZWJEYXRhTGlzdFN1Z2dlc3Rpb25QaWNrZXIm
IGRhdGFMaXN0U3VnZ2VzdGlvblBpY2tlcikKIHsKLSAgICBtX2FjdGl2ZURhdGFMaXN0U3VnZ2Vz
dGlvblBpY2tlciA9IG1ha2VXZWFrUHRyKCZkYXRhTGlzdFN1Z2dlc3Rpb25QaWNrZXIpOworICAg
IG1fYWN0aXZlRGF0YUxpc3RTdWdnZXN0aW9uUGlja2VyID0gZGF0YUxpc3RTdWdnZXN0aW9uUGlj
a2VyOwogfQogCiB2b2lkIFdlYlBhZ2U6OmRpZFNlbGVjdERhdGFMaXN0T3B0aW9uKGNvbnN0IFN0
cmluZyYgc2VsZWN0ZWRPcHRpb24pCkBAIC00NjIxLDcgKzQ2MjEsNyBAQCB2b2lkIFdlYlBhZ2U6
OmRpZENsb3NlU3VnZ2VzdGlvbnMoKQogCiB2b2lkIFdlYlBhZ2U6OnNldEFjdGl2ZURhdGVUaW1l
Q2hvb3NlcihXZWJEYXRlVGltZUNob29zZXImIGRhdGVUaW1lQ2hvb3NlcikKIHsKLSAgICBtX2Fj
dGl2ZURhdGVUaW1lQ2hvb3NlciA9IG1ha2VXZWFrUHRyKCZkYXRlVGltZUNob29zZXIpOworICAg
IG1fYWN0aXZlRGF0ZVRpbWVDaG9vc2VyID0gZGF0ZVRpbWVDaG9vc2VyOwogfQogCiB2b2lkIFdl
YlBhZ2U6OmRpZENob29zZURhdGUoY29uc3QgU3RyaW5nJiBkYXRlKQpAQCAtNzMyNiw3ICs3MzI2
LDcgQEAgdm9pZCBXZWJQYWdlOjpzdGFydFRleHRNYW5pcHVsYXRpb25zKFZlY3RvcjxXZWJDb3Jl
OjpUZXh0TWFuaXB1bGF0aW9uQ29udHJvbGxlcjoKICAgICBpZiAoIW1haW5Eb2N1bWVudCkKICAg
ICAgICAgcmV0dXJuOwogCi0gICAgbWFpbkRvY3VtZW50LT50ZXh0TWFuaXB1bGF0aW9uQ29udHJv
bGxlcigpLnN0YXJ0T2JzZXJ2aW5nUGFyYWdyYXBocyhbd2ViUGFnZSA9IG1ha2VXZWFrUHRyKCp0
aGlzKV0gKERvY3VtZW50JiBkb2N1bWVudCwgY29uc3QgVmVjdG9yPFdlYkNvcmU6OlRleHRNYW5p
cHVsYXRpb25Db250cm9sbGVyOjpNYW5pcHVsYXRpb25JdGVtPiYgaXRlbXMpIHsKKyAgICBtYWlu
RG9jdW1lbnQtPnRleHRNYW5pcHVsYXRpb25Db250cm9sbGVyKCkuc3RhcnRPYnNlcnZpbmdQYXJh
Z3JhcGhzKFt3ZWJQYWdlID0gV2Vha1B0ciB7ICp0aGlzIH1dIChEb2N1bWVudCYgZG9jdW1lbnQs
IGNvbnN0IFZlY3RvcjxXZWJDb3JlOjpUZXh0TWFuaXB1bGF0aW9uQ29udHJvbGxlcjo6TWFuaXB1
bGF0aW9uSXRlbT4mIGl0ZW1zKSB7CiAgICAgICAgIGF1dG8qIGZyYW1lID0gZG9jdW1lbnQuZnJh
bWUoKTsKICAgICAgICAgaWYgKCF3ZWJQYWdlIHx8ICFmcmFtZSB8fCB3ZWJQYWdlLT5tYWluRnJh
bWUoKSAhPSBmcmFtZSkKICAgICAgICAgICAgIHJldHVybjsKQEAgLTc1MzcsMTEgKzc1MzcsMTEg
QEAgdm9pZCBXZWJQYWdlOjpyZXF1ZXN0VGV4dFJlY29nbml0aW9uKFdlYkNvcmU6OkVsZW1lbnQm
IGVsZW1lbnQsIENvbXBsZXRpb25IYW5kbGUKICAgICBWZWN0b3I8Q29tcGxldGlvbkhhbmRsZXI8
dm9pZChSZWZQdHI8RWxlbWVudD4mJik+PiBjb21wbGV0aW9uSGFuZGxlcnM7CiAgICAgaWYgKGNv
bXBsZXRpb24pCiAgICAgICAgIGNvbXBsZXRpb25IYW5kbGVycy5hcHBlbmQoV1RGTW92ZShjb21w
bGV0aW9uKSk7Ci0gICAgbV9lbGVtZW50c1BlbmRpbmdUZXh0UmVjb2duaXRpb24uYXBwZW5kKHsg
bWFrZVdlYWtQdHIoZWxlbWVudCksIFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXJzKSB9KTsKKyAg
ICBtX2VsZW1lbnRzUGVuZGluZ1RleHRSZWNvZ25pdGlvbi5hcHBlbmQoeyBXZWFrUHRyIHsgZWxl
bWVudCB9LCBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVycykgfSk7CiAKICAgICBhdXRvIGNhY2hl
ZEltYWdlID0gcmVuZGVySW1hZ2UuY2FjaGVkSW1hZ2UoKTsKICAgICBhdXRvIGltYWdlVVJMID0g
Y2FjaGVkSW1hZ2UgPyBlbGVtZW50LmRvY3VtZW50KCkuY29tcGxldGVVUkwoY2FjaGVkSW1hZ2Ut
PnVybCgpLnN0cmluZygpKSA6IFVSTCB7IH07Ci0gICAgc2VuZFdpdGhBc3luY1JlcGx5KE1lc3Nh
Z2VzOjpXZWJQYWdlUHJveHk6OlJlcXVlc3RUZXh0UmVjb2duaXRpb24oV1RGTW92ZShpbWFnZVVS
TCksIFdURk1vdmUoYml0bWFwSGFuZGxlKSksIFt3ZWJQYWdlID0gbWFrZVdlYWtQdHIoKnRoaXMp
LCB3ZWFrRWxlbWVudCA9IG1ha2VXZWFrUHRyKGVsZW1lbnQpXSAoYXV0byYmIHJlc3VsdCkgewor
ICAgIHNlbmRXaXRoQXN5bmNSZXBseShNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpSZXF1ZXN0VGV4
dFJlY29nbml0aW9uKFdURk1vdmUoaW1hZ2VVUkwpLCBXVEZNb3ZlKGJpdG1hcEhhbmRsZSkpLCBb
d2ViUGFnZSA9IFdlYWtQdHIgeyAqdGhpcyB9LCB3ZWFrRWxlbWVudCA9IFdlYWtQdHIgeyBlbGVt
ZW50IH1dIChhdXRvJiYgcmVzdWx0KSB7CiAgICAgICAgIFJlZlB0ciBwcm90ZWN0ZWRQYWdlIHsg
d2ViUGFnZS5nZXQoKSB9OwogICAgICAgICBpZiAoIXByb3RlY3RlZFBhZ2UpCiAgICAgICAgICAg
ICByZXR1cm47CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9p
b3MvV2ViUGFnZUlPUy5tbSBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL2lvcy9X
ZWJQYWdlSU9TLm1tCmluZGV4IDgwZGU4NjBiOTA3ZTJlYWFjMTFjYzFjNDEyMTlmNDdkNDQ0ZDk0
MDguLjExMmM4ZGNlMzIzMGUzYjYwNjE3MWJiZTk5NTE0ZTJhNThhZThlMjMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL2lvcy9XZWJQYWdlSU9TLm1tCisrKyBi
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL2lvcy9XZWJQYWdlSU9TLm1tCkBAIC04
MTIsNyArODEyLDcgQEAgdm9pZCBXZWJQYWdlOjpkaWRGaW5pc2hDb250ZW50Q2hhbmdlT2JzZXJ2
aW5nKFdLQ29udGVudENoYW5nZSBvYnNlcnZlZENvbnRlbnRDaGEKICAgICBMT0dfV0lUSF9TVFJF
QU0oQ29udGVudE9ic2VydmF0aW9uLCBzdHJlYW0gPDwgImRpZEZpbmlzaENvbnRlbnRDaGFuZ2VP
YnNlcnZpbmc6IHBlbmRpbmcgdGFyZ2V0IG5vZGUoIiA8PCBtX3BlbmRpbmdTeW50aGV0aWNDbGlj
a05vZGUgPDwgIikiKTsKICAgICBpZiAoIW1fcGVuZGluZ1N5bnRoZXRpY0NsaWNrTm9kZSkKICAg
ICAgICAgcmV0dXJuOwotICAgIGNhbGxPbk1haW5SdW5Mb29wKFtwcm90ZWN0ZWRUaGlzID0gUmVm
IHsgKnRoaXMgfSwgdGFyZ2V0Tm9kZSA9IFJlZjxOb2RlPigqbV9wZW5kaW5nU3ludGhldGljQ2xp
Y2tOb2RlKSwgb3JpZ2luYWxEb2N1bWVudCA9IG1ha2VXZWFrUHRyKG1fcGVuZGluZ1N5bnRoZXRp
Y0NsaWNrTm9kZS0+ZG9jdW1lbnQoKSksIG9ic2VydmVkQ29udGVudENoYW5nZSwgbG9jYXRpb24g
PSBtX3BlbmRpbmdTeW50aGV0aWNDbGlja0xvY2F0aW9uLCBtb2RpZmllcnMgPSBtX3BlbmRpbmdT
eW50aGV0aWNDbGlja01vZGlmaWVycywgcG9pbnRlcklkID0gbV9wZW5kaW5nU3ludGhldGljQ2xp
Y2tQb2ludGVySWRdIHsKKyAgICBjYWxsT25NYWluUnVuTG9vcChbcHJvdGVjdGVkVGhpcyA9IFJl
ZiB7ICp0aGlzIH0sIHRhcmdldE5vZGUgPSBSZWY8Tm9kZT4oKm1fcGVuZGluZ1N5bnRoZXRpY0Ns
aWNrTm9kZSksIG9yaWdpbmFsRG9jdW1lbnQgPSBXZWFrUHRyIHsgbV9wZW5kaW5nU3ludGhldGlj
Q2xpY2tOb2RlLT5kb2N1bWVudCgpIH0sIG9ic2VydmVkQ29udGVudENoYW5nZSwgbG9jYXRpb24g
PSBtX3BlbmRpbmdTeW50aGV0aWNDbGlja0xvY2F0aW9uLCBtb2RpZmllcnMgPSBtX3BlbmRpbmdT
eW50aGV0aWNDbGlja01vZGlmaWVycywgcG9pbnRlcklkID0gbV9wZW5kaW5nU3ludGhldGljQ2xp
Y2tQb2ludGVySWRdIHsKICAgICAgICAgaWYgKHByb3RlY3RlZFRoaXMtPm1faXNDbG9zZWQgfHwg
IXByb3RlY3RlZFRoaXMtPmNvcmVQYWdlKCkpCiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAg
IGlmICghb3JpZ2luYWxEb2N1bWVudCB8fCAmdGFyZ2V0Tm9kZS0+ZG9jdW1lbnQoKSAhPSBvcmln
aW5hbERvY3VtZW50KQpAQCAtMjIwMiw3ICsyMjAyLDcgQEAgdm9pZCBXZWJQYWdlOjpzZWxlY3RU
ZXh0V2l0aEdyYW51bGFyaXR5QXRQb2ludChjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYgcG9pbnQs
IFcKICAgICBpZiAoYXV0byBzZWxlY3Rpb25DaGFuZ2VkSGFuZGxlciA9IHN0ZDo6ZXhjaGFuZ2Uo
bV9zZWxlY3Rpb25DaGFuZ2VkSGFuZGxlciwge30pKQogICAgICAgICBzZWxlY3Rpb25DaGFuZ2Vk
SGFuZGxlcigpOwogCi0gICAgbV9zZWxlY3Rpb25DaGFuZ2VkSGFuZGxlciA9IFtwb2ludCwgZ3Jh
bnVsYXJpdHksIGlzSW50ZXJhY3RpbmdXaXRoRm9jdXNlZEVsZW1lbnQsIGNvbXBsZXRpb25IYW5k
bGVyID0gV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlciksIHdlYlBhZ2UgPSBtYWtlV2Vha1B0cigq
dGhpcyksIHRoaXNdKCkgbXV0YWJsZSB7CisgICAgbV9zZWxlY3Rpb25DaGFuZ2VkSGFuZGxlciA9
IFtwb2ludCwgZ3JhbnVsYXJpdHksIGlzSW50ZXJhY3RpbmdXaXRoRm9jdXNlZEVsZW1lbnQsIGNv
bXBsZXRpb25IYW5kbGVyID0gV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlciksIHdlYlBhZ2UgPSBX
ZWFrUHRyIHsgKnRoaXMgfSwgdGhpc10oKSBtdXRhYmxlIHsKICAgICAgICAgUmVmUHRyPFdlYlBh
Z2U+IHN0cm9uZ1BhZ2UgPSB3ZWJQYWdlLmdldCgpOwogICAgICAgICBpZiAoIXN0cm9uZ1BhZ2Up
IHsKICAgICAgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9tYWMvV2ViUGFnZU1hYy5tbSBiL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9XZWJQYWdlTWFjLm1tCmluZGV4IGMyNTVmMzhjMzU4
YTBjNWM0ZTE3YTY2MjFkN2IzN2RkZTQ1ZjYxZTUuLmIzYzQ4YmJiNGEyOGI4MGNkY2MxYjg5ODAw
NzgwYTdkYjkwYTI1MTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQ
YWdlL21hYy9XZWJQYWdlTWFjLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQ
YWdlL21hYy9XZWJQYWdlTWFjLm1tCkBAIC0xMTQ0LDcgKzExNDQsNyBAQCB2b2lkIFdlYlBhZ2U6
Om9wZW5QREZXaXRoUHJldmlldyhQREZQbHVnaW5JZGVudGlmaWVyIGlkZW50aWZpZXIsIENvbXBs
ZXRpb25IYW5kbAogCiB2b2lkIFdlYlBhZ2U6OmNyZWF0ZVBERkhVRChQREZQbHVnaW4mIHBsdWdp
biwgY29uc3QgSW50UmVjdCYgYm91bmRpbmdCb3gpCiB7Ci0gICAgYXV0byBhZGRSZXN1bHQgPSBt
X3BkZlBsdWdJbnNXaXRoSFVELmFkZChwbHVnaW4uaWRlbnRpZmllcigpLCBtYWtlV2Vha1B0cihw
bHVnaW4pKTsKKyAgICBhdXRvIGFkZFJlc3VsdCA9IG1fcGRmUGx1Z0luc1dpdGhIVUQuYWRkKHBs
dWdpbi5pZGVudGlmaWVyKCksIHBsdWdpbik7CiAgICAgaWYgKGFkZFJlc3VsdC5pc05ld0VudHJ5
KQogICAgICAgICBzZW5kKE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OkNyZWF0ZVBERkhVRChwbHVn
aW4uaWRlbnRpZmllcigpLCBib3VuZGluZ0JveCkpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL1dlYlN0b3JhZ2UvU3RvcmFnZUFyZWFJbXBsLmNwcCBiL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9XZWJTdG9yYWdlL1N0b3JhZ2VBcmVhSW1wbC5jcHAKaW5kZXggOGE1
NDdlYTg5OTQ3NDRlYmJkZjgxMzNhNDczOGZiNDY3NzExMDQxYi4uYjEyYzU4YzBhYWQ2N2U5OTU3
NzA2ZTI5ZTZkZTY1NjllZmU2NDg0NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL1dlYlN0b3JhZ2UvU3RvcmFnZUFyZWFJbXBsLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvV2ViU3RvcmFnZS9TdG9yYWdlQXJlYUltcGwuY3BwCkBAIC00NCw3ICs0NCw3IEBA
IFJlZjxTdG9yYWdlQXJlYUltcGw+IFN0b3JhZ2VBcmVhSW1wbDo6Y3JlYXRlKFN0b3JhZ2VBcmVh
TWFwJiBzdG9yYWdlQXJlYU1hcCkKIAogU3RvcmFnZUFyZWFJbXBsOjpTdG9yYWdlQXJlYUltcGwo
U3RvcmFnZUFyZWFNYXAmIHN0b3JhZ2VBcmVhTWFwKQogICAgIDogbV9pZGVudGlmaWVyKElkZW50
aWZpZXI6OmdlbmVyYXRlKCkpCi0gICAgLCBtX3N0b3JhZ2VBcmVhTWFwKG1ha2VXZWFrUHRyKHN0
b3JhZ2VBcmVhTWFwKSkKKyAgICAsIG1fc3RvcmFnZUFyZWFNYXAoc3RvcmFnZUFyZWFNYXApCiB7
CiAgICAgc3RvcmFnZUFyZWFNYXAuaW5jcmVtZW50VXNlQ291bnQoKTsKIH0KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9BdWRpb1Nlc3Npb25Sb3V0aW5nQXJiaXRy
YXRvci5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvQXVkaW9TZXNzaW9uUm91
dGluZ0FyYml0cmF0b3IuY3BwCmluZGV4IDdlZWQzOWRiODdkNWI1YWFlNTE4NTU4OWU5YjFmZTIz
ODBhYWE5MjEuLmNjNjk4ZDc0MDAyMDVkMmEwOGZmNmFkNTI1YzQzNWQ2N2EyZTM0NzIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9BdWRpb1Nlc3Npb25Sb3V0aW5n
QXJiaXRyYXRvci5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL0F1ZGlv
U2Vzc2lvblJvdXRpbmdBcmJpdHJhdG9yLmNwcApAQCAtMzksNyArMzksNyBAQCB1c2luZyBuYW1l
c3BhY2UgV2ViQ29yZTsKIAogQXVkaW9TZXNzaW9uUm91dGluZ0FyYml0cmF0b3I6OkF1ZGlvU2Vz
c2lvblJvdXRpbmdBcmJpdHJhdG9yKFdlYlByb2Nlc3MmIHByb2Nlc3MpCiAgICAgOiBtX3Byb2Nl
c3MocHJvY2VzcykKLSAgICAsIG1fb2JzZXJ2ZXIoW3RoaXNdIChBdWRpb1Nlc3Npb24mIHNlc3Np
b24pIHsgc2Vzc2lvbi5zZXRSb3V0aW5nQXJiaXRyYXRpb25DbGllbnQobWFrZVdlYWtQdHIodGhp
cykpOyB9KQorICAgICwgbV9vYnNlcnZlcihbdGhpc10gKEF1ZGlvU2Vzc2lvbiYgc2Vzc2lvbikg
eyBzZXNzaW9uLnNldFJvdXRpbmdBcmJpdHJhdGlvbkNsaWVudChXZWFrUHRyIHsgKnRoaXMgfSk7
IH0pCiB7CiAgICAgQXVkaW9TZXNzaW9uOjphZGRBdWRpb1Nlc3Npb25DaGFuZ2VkT2JzZXJ2ZXIo
bV9vYnNlcnZlcik7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29j
b2EvVmlkZW9GdWxsc2NyZWVuTWFuYWdlci5tbSBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9j
b2NvYS9WaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyLm1tCmluZGV4IDdiMzRlNDM4MGZjMjhmYTAwMTVj
MTNjNzc3MzRkYWVkYjhjYmJkM2YuLjEzYTZiZjkxYzlmNTNmNTUzYzRiN2NlNzQ0MjY2YTAxY2Mx
MGQ5MjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9WaWRlb0Z1
bGxzY3JlZW5NYW5hZ2VyLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9W
aWRlb0Z1bGxzY3JlZW5NYW5hZ2VyLm1tCkBAIC0yNzUsNyArMjc1LDcgQEAgdm9pZCBWaWRlb0Z1
bGxzY3JlZW5NYW5hZ2VyOjplbnRlclZpZGVvRnVsbHNjcmVlbkZvclZpZGVvRWxlbWVudChIVE1M
VmlkZW9FbGVtZW4KICAgICAgICAgaW50ZXJmYWNlLT5zZXRUYXJnZXRJc0Z1bGxzY3JlZW4oZmFs
c2UpOwogCiAgICAgaWYgKG1vZGUgPT0gSFRNTE1lZGlhRWxlbWVudEVudW1zOjpWaWRlb0Z1bGxz
Y3JlZW5Nb2RlUGljdHVyZUluUGljdHVyZSkKLSAgICAgICAgbV92aWRlb0VsZW1lbnRJblBpY3R1
cmVJblBpY3R1cmUgPSBtYWtlV2Vha1B0cih2aWRlb0VsZW1lbnQpOworICAgICAgICBtX3ZpZGVv
RWxlbWVudEluUGljdHVyZUluUGljdHVyZSA9IHZpZGVvRWxlbWVudDsKIAogICAgIGludGVyZmFj
ZS0+c2V0RnVsbHNjcmVlbk1vZGUobW9kZSk7CiAgICAgaW50ZXJmYWNlLT5zZXRGdWxsc2NyZWVu
U3RhbmRieShzdGFuZGJ5KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvU3RvcmFn
ZS9JblByb2Nlc3NJREJTZXJ2ZXIuY3BwIGIvU291cmNlL1dlYktpdExlZ2FjeS9TdG9yYWdlL0lu
UHJvY2Vzc0lEQlNlcnZlci5jcHAKaW5kZXggZDU5MTZjMWE0M2NhOWE2NDViNjdjZWJlMjQwY2Fk
NWNkOTk1YjFkMi4uNWU0NGMzYjg1ODJkNmFmMzdkMGI4NTJlMThhZDgyZTg4MTQ1ZGFjMCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9TdG9yYWdlL0luUHJvY2Vzc0lEQlNlcnZlci5j
cHAKKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9TdG9yYWdlL0luUHJvY2Vzc0lEQlNlcnZlci5j
cHAKQEAgLTgzLDggKzgzLDggQEAgU3RvcmFnZVF1b3RhTWFuYWdlciogSW5Qcm9jZXNzSURCU2Vy
dmVyOjpxdW90YU1hbmFnZXIoY29uc3QgQ2xpZW50T3JpZ2luJiBvcmlnaW4KIAogc3RhdGljIGlu
bGluZSBJREJTZXJ2ZXI6OklEQlNlcnZlcjo6U3RvcmFnZVF1b3RhTWFuYWdlclNwYWNlUmVxdWVz
dGVyIHN0b3JhZ2VRdW90YU1hbmFnZXJTcGFjZVJlcXVlc3RlcihJblByb2Nlc3NJREJTZXJ2ZXIm
IHNlcnZlcikKIHsKLSAgICByZXR1cm4gW3NlcnZlciA9ICZzZXJ2ZXIsIHdlYWtTZXJ2ZXIgPSBt
YWtlV2Vha1B0cihzZXJ2ZXIpXShjb25zdCBDbGllbnRPcmlnaW4mIG9yaWdpbiwgdWludDY0X3Qg
c3BhY2VSZXF1ZXN0ZWQpIG11dGFibGUgewotICAgICAgICBhdXRvKiBzdG9yYWdlUXVvdGFNYW5h
Z2VyID0gd2Vha1NlcnZlciA/IHNlcnZlci0+cXVvdGFNYW5hZ2VyKG9yaWdpbikgOiBudWxscHRy
OworICAgIHJldHVybiBbd2Vha1NlcnZlciA9IFdlYWtQdHIgeyBzZXJ2ZXIgfV0oY29uc3QgQ2xp
ZW50T3JpZ2luJiBvcmlnaW4sIHVpbnQ2NF90IHNwYWNlUmVxdWVzdGVkKSBtdXRhYmxlIHsKKyAg
ICAgICAgYXV0byogc3RvcmFnZVF1b3RhTWFuYWdlciA9IHdlYWtTZXJ2ZXIgPyB3ZWFrU2VydmVy
LT5xdW90YU1hbmFnZXIob3JpZ2luKSA6IG51bGxwdHI7CiAgICAgICAgIHJldHVybiBzdG9yYWdl
UXVvdGFNYW5hZ2VyID8gc3RvcmFnZVF1b3RhTWFuYWdlci0+cmVxdWVzdFNwYWNlT25CYWNrZ3Jv
dW5kVGhyZWFkKHNwYWNlUmVxdWVzdGVkKSA6IFN0b3JhZ2VRdW90YU1hbmFnZXI6OkRlY2lzaW9u
OjpEZW55OwogICAgIH07CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L1dlYkNv
cmVTdXBwb3J0L1BhZ2VTdG9yYWdlU2Vzc2lvblByb3ZpZGVyLmggYi9Tb3VyY2UvV2ViS2l0TGVn
YWN5L1dlYkNvcmVTdXBwb3J0L1BhZ2VTdG9yYWdlU2Vzc2lvblByb3ZpZGVyLmgKaW5kZXggNzU2
ZWFiZjNjMTllNTc5OGM5N2U2MGI3OWMyNzFmZWM1N2U3NjgzYy4uZjIwYzJiNTQ5ZTMzYzY2ODgz
NjY5OTM1NjgwOGMxY2JkYjdkMDdhNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9X
ZWJDb3JlU3VwcG9ydC9QYWdlU3RvcmFnZVNlc3Npb25Qcm92aWRlci5oCisrKyBiL1NvdXJjZS9X
ZWJLaXRMZWdhY3kvV2ViQ29yZVN1cHBvcnQvUGFnZVN0b3JhZ2VTZXNzaW9uUHJvdmlkZXIuaApA
QCAtNDQsNyArNDQsNyBAQCBwdWJsaWM6CiAKICAgICB2b2lkIHNldFBhZ2UoV2ViQ29yZTo6UGFn
ZSYgcGFnZSkKICAgICB7Ci0gICAgICAgIG1fcGFnZSA9IG1ha2VXZWFrUHRyKHBhZ2UpOworICAg
ICAgICBtX3BhZ2UgPSBwYWdlOwogICAgIH0KIAogcHJpdmF0ZToKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXRMZWdhY3kvV2ViQ29yZVN1cHBvcnQvV2ViQnJvYWRjYXN0Q2hhbm5lbFJlZ2lzdHJ5
LmNwcCBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvV2ViQ29yZVN1cHBvcnQvV2ViQnJvYWRjYXN0Q2hh
bm5lbFJlZ2lzdHJ5LmNwcAppbmRleCBkMTAzMjA4YzhmODYzM2Q2MDhhYzIzZTU3ZjRlZjM1Nzg2
ZWQ0MmY2Li42NGM2NGIyY2NjMWE1ZDBiZDc0ZDNjMDRlNjgxOTQ4NGJmODI4MmU1IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L1dlYkNvcmVTdXBwb3J0L1dlYkJyb2FkY2FzdENoYW5u
ZWxSZWdpc3RyeS5jcHAKKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9XZWJDb3JlU3VwcG9ydC9X
ZWJCcm9hZGNhc3RDaGFubmVsUmVnaXN0cnkuY3BwCkBAIC00MCw3ICs0MCw3IEBAIFJlZjxXZWJC
cm9hZGNhc3RDaGFubmVsUmVnaXN0cnk+IFdlYkJyb2FkY2FzdENoYW5uZWxSZWdpc3RyeTo6Z2V0
T3JDcmVhdGUoYm9vbCBwCiAgICAgICAgIHJldHVybiAqZXhpc3RpbmdSZWdpc3RyeS5nZXQoKTsK
IAogICAgIGF1dG8gcmVnaXN0cnkgPSBhZG9wdFJlZigqbmV3IFdlYkJyb2FkY2FzdENoYW5uZWxS
ZWdpc3RyeSk7Ci0gICAgZXhpc3RpbmdSZWdpc3RyeS5nZXQoKSA9IG1ha2VXZWFrUHRyKHJlZ2lz
dHJ5LmdldCgpKTsKKyAgICBleGlzdGluZ1JlZ2lzdHJ5LmdldCgpID0gcmVnaXN0cnk7CiAgICAg
cmV0dXJuIHJlZ2lzdHJ5OwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21h
Yy9XZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JDbGllbnQubW0gYi9Tb3VyY2UvV2ViS2l0TGVnYWN5
L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JDbGllbnQubW0KaW5kZXggYmQ1YzU2OTUxOWZj
NThmMTI3ZTVlYmI1MjQ1ODJlYTk0YTk4MDlhOS4uYzJjNDBkM2QyYTEzM2YyODEzNDE1NjAzNGRl
NTQxNDFhNGNlOWMzMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViQ29y
ZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFj
L1dlYkNvcmVTdXBwb3J0L1dlYkVkaXRvckNsaWVudC5tbQpAQCAtMTExNiw3ICsxMTE2LDcgQEAg
dm9pZCBXZWJFZGl0b3JDbGllbnQ6OnJlcXVlc3RDYW5kaWRhdGVzRm9yU2VsZWN0aW9uKGNvbnN0
IFZpc2libGVTZWxlY3Rpb24mIHNlbGUKICAgICBtX3BhcmFncmFwaENvbnRleHRGb3JDYW5kaWRh
dGVSZXF1ZXN0ID0gY29udGV4dEZvckNhbmRpZGF0ZVJlcWV1ZXN0OwogCiAgICAgTlNUZXh0Q2hl
Y2tpbmdUeXBlcyBjaGVja2luZ1R5cGVzID0gTlNUZXh0Q2hlY2tpbmdUeXBlU3BlbGxpbmcgfCBO
U1RleHRDaGVja2luZ1R5cGVSZXBsYWNlbWVudCB8IE5TVGV4dENoZWNraW5nVHlwZUNvcnJlY3Rp
b247Ci0gICAgYXV0byB3ZWFrRWRpdG9yID0gbWFrZVdlYWtQdHIoKnRoaXMpOworICAgIFdlYWtQ
dHIgd2Vha0VkaXRvciB7ICp0aGlzIH07CiAgICAgbV9sYXN0Q2FuZGlkYXRlUmVxdWVzdFNlcXVl
bmNlTnVtYmVyID0gW1tOU1NwZWxsQ2hlY2tlciBzaGFyZWRTcGVsbENoZWNrZXJdIHJlcXVlc3RD
YW5kaWRhdGVzRm9yU2VsZWN0ZWRSYW5nZTptX3JhbmdlRm9yQ2FuZGlkYXRlcyBpblN0cmluZzpt
X3BhcmFncmFwaENvbnRleHRGb3JDYW5kaWRhdGVSZXF1ZXN0LmdldCgpIHR5cGVzOmNoZWNraW5n
VHlwZXMgb3B0aW9uczpuaWwgaW5TcGVsbERvY3VtZW50V2l0aFRhZzpzcGVsbENoZWNrZXJEb2N1
bWVudFRhZygpIGNvbXBsZXRpb25IYW5kbGVyOlt3ZWFrRWRpdG9yXShOU0ludGVnZXIgc2VxdWVu
Y2VOdW1iZXIsIE5TQXJyYXk8TlNUZXh0Q2hlY2tpbmdSZXN1bHQgKj4gKmNhbmRpZGF0ZXMpIHsK
ICAgICAgICAgUnVuTG9vcDo6bWFpbigpLmRpc3BhdGNoKFt3ZWFrRWRpdG9yLCBzZXF1ZW5jZU51
bWJlciwgY2FuZGlkYXRlcyA9IHJldGFpblB0cihjYW5kaWRhdGVzKV0gewogICAgICAgICAgICAg
aWYgKCF3ZWFrRWRpdG9yKQpkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hh
bmdlTG9nCmluZGV4IDg3YWEzYzc4NTJhZTAwMGQwNDJiODM3MDIyYWEzNDdlOGY3NGJlZmUuLmQ0
MTA5MDBkYWI0MjQ4MGQzNjA0OGUxYWY2Zjk2MWY1OGYwNWE3NDQgMTAwNjQ0Ci0tLSBhL1Rvb2xz
L0NoYW5nZUxvZworKysgYi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxOSBAQAorMjAyMS0x
MC0xMyAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgorCisgICAgICAgIERyb3AgbWFr
ZVdlYWtQdHIoKSBhbmQgdXNlIFdlYWtQdHIgeyB9IGRpcmVjdGx5CisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzE2NzkKKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvc3R5bGUv
Y2hlY2tlcnMvY3BwLnB5OgorICAgICAgICAoY2hlY2tfY2FsbG9ubWFpbnRocmVhZCk6CisgICAg
ICAgIChwcm9jZXNzX2xpbmUpOgorICAgICAgICAoY2hlY2tfbWFrZXdlYWtwdHIpOiBEZWxldGVk
LgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL09ic2VydmVyLmNwcDoKKyAgICAg
ICAgKFRlc3RXZWJLaXRBUEk6OlRFU1QpOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMv
V1RGL1dlYWtQdHIuY3BwOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6bWFrZVdlYWtQdHIpOgor
CiAyMDIxLTEwLTEyICBKb25hdGhhbiBCZWRhcmQgIDxqYmVkYXJkQGFwcGxlLmNvbT4KIAogICAg
ICAgICBbQXBwbGVTaWxpY29uXSBTdXBwb3J0IG5hdGl2ZSBzaW11bGF0b3IgdGVzdGluZwpkaWZm
IC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9zdHlsZS9jaGVja2Vycy9jcHAucHkgYi9U
b29scy9TY3JpcHRzL3dlYmtpdHB5L3N0eWxlL2NoZWNrZXJzL2NwcC5weQppbmRleCBlZDZjMTgx
NzdlMTc4OWM3ZDJjODY1MzM0NTcyNTU2MGYzZWFmZGVmLi44OTg1ZjkxOTcyZTljY2YxYmQ1NWRl
YzIyOThhZGJmMzc4OWU1YTYyIDEwMDY0NAotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3N0
eWxlL2NoZWNrZXJzL2NwcC5weQorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3N0eWxlL2No
ZWNrZXJzL2NwcC5weQpAQCAtMjc0MywyMyArMjc0Myw2IEBAIGRlZiBjaGVja19jYWxsb25tYWlu
dGhyZWFkKGZpbGVuYW1lLCBjbGVhbl9saW5lcywgbGluZV9udW1iZXIsIGZpbGVfc3RhdGUsIGVy
cm9yCiAgICAgICAgIGVycm9yKGxpbmVfbnVtYmVyLCAncnVudGltZS9jYWxsb25tYWludGhyZWFk
JywgNCwgIlVzZSAnY2FsbE9uTWFpblJ1bkxvb3BBbmRXYWl0KCknIGluc3RlYWQgb2YgJ2NhbGxP
bk1haW5UaHJlYWRBbmRXYWl0KCknIGluIFNvdXJjZS9XZWJLaXQuIikKIAogCi1kZWYgY2hlY2tf
bWFrZXdlYWtwdHIoY2xlYW5fbGluZXMsIGxpbmVfbnVtYmVyLCBmaWxlX3N0YXRlLCBlcnJvcik6
Ci0gICAgIiIiTG9va3MgZm9yIHVzZSBvZiBsZWdhY3kgJ21ha2VXZWFrUHRyKCknLgotCi0gICAg
QXJnczoKLSAgICAgIGNsZWFuX2xpbmVzOiBBIENsZWFuc2VkTGluZXMgaW5zdGFuY2UgY29udGFp
bmluZyB0aGUgZmlsZS4KLSAgICAgIGxpbmVfbnVtYmVyOiBUaGUgbnVtYmVyIG9mIHRoZSBsaW5l
IHRvIGNoZWNrLgotICAgICAgZmlsZV9zdGF0ZTogQSBfRmlsZVN0YXRlIGluc3RhbmNlIHdoaWNo
IG1haW50YWlucyBpbmZvcm1hdGlvbiBhYm91dAotICAgICAgICAgICAgICAgICAgdGhlIHN0YXRl
IG9mIHRoaW5ncyBpbiB0aGUgZmlsZS4KLSAgICAgIGVycm9yOiBUaGUgZnVuY3Rpb24gdG8gY2Fs
bCB3aXRoIGFueSBlcnJvcnMgZm91bmQuCi0gICAgIiIiCi0KLSAgICBsaW5lID0gY2xlYW5fbGlu
ZXMuZWxpZGVkW2xpbmVfbnVtYmVyXSAgIyBHZXQgcmlkIG9mIGNvbW1lbnRzIGFuZCBzdHJpbmdz
LgotICAgIHVzaW5nX21ha2V3ZWFrcHRyID0gc2VhcmNoKHInXGJtYWtlV2Vha1B0clxzKlwoJywg
bGluZSkKLSAgICBpZiB1c2luZ19tYWtld2Vha3B0cjoKLSAgICAgICAgZXJyb3IobGluZV9udW1i
ZXIsICdydW50aW1lL21ha2V3ZWFrcHRyJywgNCwgIlVzZSBXZWFrUHRyIHsgfSBkaXJlY3RseSBp
bnN0ZWFkIG9mICdtYWtlV2Vha1B0cigpJy4iKQotCi0KIGRlZiBjaGVja19pc21haW50aHJlYWQo
ZmlsZW5hbWUsIGNsZWFuX2xpbmVzLCBsaW5lX251bWJlciwgZmlsZV9zdGF0ZSwgZXJyb3IpOgog
ICAgICIiIkxvb2tzIGZvciB1c2Ugb2YgJ2lzTWFpblRocmVhZCgpJyB3aGljaCBzaG91bGQgYmUg
cmVwbGFjZWQgd2l0aCAnaXNNYWluUnVuTG9vcCgpJy4KIApAQCAtNDUyMCw3ICs0NTAzLDYgQEAg
ZGVmIHByb2Nlc3NfbGluZShmaWxlbmFtZSwgZmlsZV9leHRlbnNpb24sCiAgICAgY2hlY2tfZm9y
X25vbl9zdGFuZGFyZF9jb25zdHJ1Y3RzKGNsZWFuX2xpbmVzLCBsaW5lLCBjbGFzc19zdGF0ZSwg
ZXJyb3IpCiAgICAgY2hlY2tfcG9zaXhfdGhyZWFkaW5nKGNsZWFuX2xpbmVzLCBsaW5lLCBlcnJv
cikKICAgICBjaGVja19pbnZhbGlkX2luY3JlbWVudChjbGVhbl9saW5lcywgbGluZSwgZXJyb3Ip
Ci0gICAgY2hlY2tfbWFrZXdlYWtwdHIoY2xlYW5fbGluZXMsIGxpbmUsIGZpbGVfc3RhdGUsIGVy
cm9yKQogICAgIGNoZWNrX29zX3ZlcnNpb25fY2hlY2tzKGZpbGVuYW1lLCBjbGVhbl9saW5lcywg
bGluZSwgZXJyb3IpCiAgICAgY2hlY2tfY2FsbG9ubWFpbnRocmVhZChmaWxlbmFtZSwgY2xlYW5f
bGluZXMsIGxpbmUsIGZpbGVfc3RhdGUsIGVycm9yKQogICAgIGNoZWNrX2lzbWFpbnRocmVhZChm
aWxlbmFtZSwgY2xlYW5fbGluZXMsIGxpbmUsIGZpbGVfc3RhdGUsIGVycm9yKQpkaWZmIC0tZ2l0
IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvT2JzZXJ2ZXIuY3BwIGIvVG9vbHMvVGVz
dFdlYktpdEFQSS9UZXN0cy9XVEYvT2JzZXJ2ZXIuY3BwCmluZGV4IDk4MmJmMmI4NzI0Y2Q3Zjg5
OWM3M2IyODRiYTE5Nzk3NGFkZjQzMTYuLjEwZDBlOGE0YzBlOTE5YjQ4ZmQ3MDU2YWU3NmY4MDli
ZmZjYzk0NTUgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL09ic2Vy
dmVyLmNwcAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9PYnNlcnZlci5jcHAK
QEAgLTQ5LDcgKzQ5LDcgQEAgVEVTVChXVEZfT2JzZXJ2ZXIsIFdlYWspCiAgICAgICAgIHRlc3RW
YWx1ZSA9IHZhbHVlOwogICAgIH0pOwogCi0gICAgYXV0byB3ZWFrT2JzZXJ2ZXIgPSBtYWtlV2Vh
a1B0cih1bmlxdWVPYnNlcnZlci5nZXQoKSk7CisgICAgV2Vha1B0ciB3ZWFrT2JzZXJ2ZXIgPSB1
bmlxdWVPYnNlcnZlci5nZXQoKTsKIAogICAgIEFTU0VSVF9UUlVFKHN0YXRpY19jYXN0PGJvb2w+
KHdlYWtPYnNlcnZlcikpOwogCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3Rz
L1dURi9XZWFrUHRyLmNwcCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL1dlYWtQdHIu
Y3BwCmluZGV4IDdiNTY0MzZkMWQyNDI5NmVjODY1N2I2YzEwNWI5MmVlM2FjYzNlZmIuLjUwMzI5
Njk5MGJkNzkwNjBjNTU4NzMyMTEzMDRhOWYzYTQzYWZjZDAgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rl
c3RXZWJLaXRBUEkvVGVzdHMvV1RGL1dlYWtQdHIuY3BwCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRB
UEkvVGVzdHMvV1RGL1dlYWtQdHIuY3BwCkBAIC00NCw2ICs0NCwzMiBAQCB0ZW1wbGF0ZTx0eXBl
bmFtZSBUPiB1c2luZyBXZWFrSGFzaFNldCA9IFdURjo6V2Vha0hhc2hTZXQ8VCwgV2Vha1B0ckNv
dW50ZXI+OwogdGVtcGxhdGU8dHlwZW5hbWUgVD4gdXNpbmcgV2Vha1B0ciA9IFdURjo6V2Vha1B0
cjxULCBXZWFrUHRyQ291bnRlcj47CiB0ZW1wbGF0ZTx0eXBlbmFtZSBUPiB1c2luZyBXZWFrUHRy
RmFjdG9yeSA9IFdURjo6V2Vha1B0ckZhY3Rvcnk8VCwgV2Vha1B0ckNvdW50ZXI+OwogCisvLyBG
SVhNRTogRHJvcCB3aGVuIHdlIHN1cHBvcnQgQysrMjAuIEMrKzE3IGRvZXMgbm90IHN1cHBvcnQg
dGVtcGxhdGUgcGFyYW1ldGVyIGRlZHVjdGlvbiBmb3IgYWxpYXNlcyBhbmQgV2Vha1B0ciBpcyBh
biBhbGlhcyBpbiB0aGlzIGZpbGUuCit0ZW1wbGF0ZTx0eXBlbmFtZSBULCB0eXBlbmFtZSA9IHN0
ZDo6ZW5hYmxlX2lmX3Q8IVdURjo6SXNTbWFydFB0cjxUPjo6dmFsdWU+PiBpbmxpbmUgYXV0byBt
YWtlV2Vha1B0cihUJiBvYmplY3QsIEVuYWJsZVdlYWtQdHJUaHJlYWRpbmdBc3NlcnRpb25zIGVu
YWJsZVdlYWtQdHJUaHJlYWRpbmdBc3NlcnRpb25zID0gRW5hYmxlV2Vha1B0clRocmVhZGluZ0Fz
c2VydGlvbnM6OlllcykKK3sKKyAgICByZXR1cm4gb2JqZWN0LndlYWtQdHJGYWN0b3J5KCkudGVt
cGxhdGUgY3JlYXRlV2Vha1B0cjxUPihvYmplY3QsIGVuYWJsZVdlYWtQdHJUaHJlYWRpbmdBc3Nl
cnRpb25zKTsKK30KKworLy8gRklYTUU6IERyb3Agd2hlbiB3ZSBzdXBwb3J0IEMrKzIwLiBDKysx
NyBkb2VzIG5vdCBzdXBwb3J0IHRlbXBsYXRlIHBhcmFtZXRlciBkZWR1Y3Rpb24gZm9yIGFsaWFz
ZXMgYW5kIFdlYWtQdHIgaXMgYW4gYWxpYXMgaW4gdGhpcyBmaWxlLgordGVtcGxhdGU8dHlwZW5h
bWUgVCwgdHlwZW5hbWUgPSBzdGQ6OmVuYWJsZV9pZl90PCFXVEY6OklzU21hcnRQdHI8VD46OnZh
bHVlPj4gaW5saW5lIGF1dG8gbWFrZVdlYWtQdHIoVCogcHRyLCBFbmFibGVXZWFrUHRyVGhyZWFk
aW5nQXNzZXJ0aW9ucyBlbmFibGVXZWFrUHRyVGhyZWFkaW5nQXNzZXJ0aW9ucyA9IEVuYWJsZVdl
YWtQdHJUaHJlYWRpbmdBc3NlcnRpb25zOjpZZXMpIC0+IGRlY2x0eXBlKG1ha2VXZWFrUHRyKCpw
dHIpKQoreworICAgIGlmICghcHRyKQorICAgICAgICByZXR1cm4geyB9OworICAgIHJldHVybiBt
YWtlV2Vha1B0cigqcHRyLCBlbmFibGVXZWFrUHRyVGhyZWFkaW5nQXNzZXJ0aW9ucyk7Cit9CisK
Ky8vIEZJWE1FOiBEcm9wIHdoZW4gd2Ugc3VwcG9ydCBDKysyMC4gQysrMTcgZG9lcyBub3Qgc3Vw
cG9ydCB0ZW1wbGF0ZSBwYXJhbWV0ZXIgZGVkdWN0aW9uIGZvciBhbGlhc2VzIGFuZCBXZWFrUHRy
IGlzIGFuIGFsaWFzIGluIHRoaXMgZmlsZS4KK3RlbXBsYXRlPHR5cGVuYW1lIFQsIHR5cGVuYW1l
ID0gc3RkOjplbmFibGVfaWZfdDwhV1RGOjpJc1NtYXJ0UHRyPFQ+Ojp2YWx1ZT4+IGlubGluZSBh
dXRvIG1ha2VXZWFrUHRyKGNvbnN0IFJlZjxUPiYgb2JqZWN0LCBFbmFibGVXZWFrUHRyVGhyZWFk
aW5nQXNzZXJ0aW9ucyBlbmFibGVXZWFrUHRyVGhyZWFkaW5nQXNzZXJ0aW9ucyA9IEVuYWJsZVdl
YWtQdHJUaHJlYWRpbmdBc3NlcnRpb25zOjpZZXMpCit7CisgICAgcmV0dXJuIG1ha2VXZWFrUHRy
KG9iamVjdC5nZXQoKSwgZW5hYmxlV2Vha1B0clRocmVhZGluZ0Fzc2VydGlvbnMpOworfQorCisv
LyBGSVhNRTogRHJvcCB3aGVuIHdlIHN1cHBvcnQgQysrMjAuIEMrKzE3IGRvZXMgbm90IHN1cHBv
cnQgdGVtcGxhdGUgcGFyYW1ldGVyIGRlZHVjdGlvbiBmb3IgYWxpYXNlcyBhbmQgV2Vha1B0ciBp
cyBhbiBhbGlhcyBpbiB0aGlzIGZpbGUuCit0ZW1wbGF0ZTx0eXBlbmFtZSBULCB0eXBlbmFtZSA9
IHN0ZDo6ZW5hYmxlX2lmX3Q8IVdURjo6SXNTbWFydFB0cjxUPjo6dmFsdWU+PiBpbmxpbmUgYXV0
byBtYWtlV2Vha1B0cihjb25zdCBSZWZQdHI8VD4mIG9iamVjdCwgRW5hYmxlV2Vha1B0clRocmVh
ZGluZ0Fzc2VydGlvbnMgZW5hYmxlV2Vha1B0clRocmVhZGluZ0Fzc2VydGlvbnMgPSBFbmFibGVX
ZWFrUHRyVGhyZWFkaW5nQXNzZXJ0aW9uczo6WWVzKQoreworICAgIHJldHVybiBtYWtlV2Vha1B0
cihvYmplY3QuZ2V0KCksIGVuYWJsZVdlYWtQdHJUaHJlYWRpbmdBc3NlcnRpb25zKTsKK30KKwog
c3RydWN0IEludCA6IHB1YmxpYyBDYW5NYWtlV2Vha1B0cjxJbnQ+IHsKICAgICBJbnQoaW50IGkp
IDogbV9pKGkpIHsgfQogICAgIG9wZXJhdG9yIGludCgpIGNvbnN0IHsgcmV0dXJuIG1faTsgfQo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>441155</attachid>
            <date>2021-10-13 16:05:21 -0700</date>
            <delta_ts>2021-10-13 18:46:36 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-231679-20211013160520.patch</filename>
            <type>text/plain</type>
            <size>222136</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg0MTI5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IGFhN2QwMjRiZjNjNGIzMzQzODgyODFm
OGMyNTNmZTI2Yjg3YmUxN2YuLjQ2NmUyNDI0YzdiMDQwYWZlOTVjZmM2NWU5NGZjMDdmMjQ0N2Ri
YTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIwMjEtMTAtMTMgIENocmlzIER1bWV6ICA8Y2R1bWV6
QGFwcGxlLmNvbT4KKworICAgICAgICBEcm9wIG1ha2VXZWFrUHRyKCkgYW5kIHVzZSBXZWFrUHRy
IHsgfSBkaXJlY3RseQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MjMxNjc5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgRGFyaW4gQWRsZXIuCisKKyAgICAg
ICAgKiB3dGYvV2Vha0hhc2hNYXAuaDoKKyAgICAgICAgKiB3dGYvV2Vha0hhc2hTZXQuaDoKKyAg
ICAgICAgKFdURjo6Y29weVRvVmVjdG9yKToKKyAgICAgICAgKiB3dGYvV2Vha1B0ci5oOgorICAg
ICAgICAoV1RGOjptYWtlV2Vha1B0cik6IERlbGV0ZWQuCisKIDIwMjEtMTAtMTMgIEFsZXggQ2hy
aXN0ZW5zZW4gIDxhY2hyaXN0ZW5zZW5Ad2Via2l0Lm9yZz4KIAogICAgICAgICBSZW1vdmUgV1RG
OjpWYXJpYW50IGFuZCBXVEY6OmdldApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IGQ5NGU5YzIxMTZhM2ZkMjYxZmEy
YzA2ZjA1NmJjMWY0MGM1MjZlYzIuLmU5MmYzOGE5ZDE0ZDk3NTQ5MzJiZjdhNjVlNTgzZWJhNjc3
YTQ5YzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2Uv
V2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxOCBAQAorMjAyMS0xMC0xMyAgQ2hyaXMgRHVt
ZXogIDxjZHVtZXpAYXBwbGUuY29tPgorCisgICAgICAgIERyb3AgbWFrZVdlYWtQdHIoKSBhbmQg
dXNlIFdlYWtQdHIgeyB9IGRpcmVjdGx5CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0yMzE2NzkKKworICAgICAgICBSZXZpZXdlZCBieSBEYXJpbiBBZGxl
ci4KKworICAgICAgICAqIE1vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVtU3luY0Fj
Y2Vzc0hhbmRsZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGaWxlU3lzdGVtU3luY0FjY2Vzc0hh
bmRsZTo6dHJ1bmNhdGUpOgorICAgICAgICAoV2ViQ29yZTo6RmlsZVN5c3RlbVN5bmNBY2Nlc3NI
YW5kbGU6OmdldFNpemUpOgorICAgICAgICAoV2ViQ29yZTo6RmlsZVN5c3RlbVN5bmNBY2Nlc3NI
YW5kbGU6OmZsdXNoKToKKyAgICAgICAgKFdlYkNvcmU6OkZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFu
ZGxlOjpjbG9zZSk6CisgICAgICAgICogZG9tL0VsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6RWxlbWVudDo6YWRkU2hhZG93Um9vdCk6CisKIDIwMjEtMTAtMTMgIEFsYW4gQnVqdGFzICA8
emFsYW5AYXBwbGUuY29tPgogCiAgICAgICAgIFtMRkNdW0lGQ10gUHJlc2VydmVkIHRhYiBpcyBu
b3QgYSB3b3JkIHNlcGFyYXRvcgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cg
Yi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwppbmRleCA2MTE4NmU5NDg0NTE5NTMwZGMzOTM4NWZl
ZWQyMjk2MmU4NDY4YmIzLi5hYTEwOGQyN2E0NjkzN2Y5ZDY2ZWFiZDlhMTExNjMxYTI2OWU1NmU2
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDM4MyBAQAorMjAyMS0xMC0xMyAgQ2hyaXMgRHVtZXogIDxj
ZHVtZXpAYXBwbGUuY29tPgorCisgICAgICAgIERyb3AgbWFrZVdlYWtQdHIoKSBhbmQgdXNlIFdl
YWtQdHIgeyB9IGRpcmVjdGx5CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0yMzE2NzkKKworICAgICAgICBSZXZpZXdlZCBieSBEYXJpbiBBZGxlci4KKwor
ICAgICAgICAqIEdQVVByb2Nlc3MvR1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5jcHA6CisgICAg
ICAgIChXZWJLaXQ6OkdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OkdQVUNvbm5lY3Rpb25Ub1dl
YlByb2Nlc3MpOgorICAgICAgICAqIEdQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlR3JhcGhpY3ND
b250ZXh0R0wuY3BwOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVHcmFwaGljc0NvbnRleHRHTDo6
UmVtb3RlR3JhcGhpY3NDb250ZXh0R0wpOgorICAgICAgICAqIEdQVVByb2Nlc3MvbWVkaWEvUmVt
b3RlQXVkaW9IYXJkd2FyZUxpc3RlbmVyUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpSZW1v
dGVBdWRpb0hhcmR3YXJlTGlzdGVuZXJQcm94eTo6UmVtb3RlQXVkaW9IYXJkd2FyZUxpc3RlbmVy
UHJveHkpOgorICAgICAgICAqIEdQVVByb2Nlc3MvbWVkaWEvUmVtb3RlQXVkaW9UcmFja1Byb3h5
LmNwcDoKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlQXVkaW9UcmFja1Byb3h5OjpSZW1vdGVBdWRp
b1RyYWNrUHJveHkpOgorICAgICAgICAqIEdQVVByb2Nlc3MvbWVkaWEvUmVtb3RlQ0RNRmFjdG9y
eVByb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlQ0RNRmFjdG9yeVByb3h5OjpSZW1v
dGVDRE1GYWN0b3J5UHJveHkpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVDRE1GYWN0b3J5UHJv
eHk6OmNyZWF0ZUNETSk6CisgICAgICAgICogR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVDRE1JbnN0
YW5jZVByb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlQ0RNSW5zdGFuY2VQcm94eTo6
UmVtb3RlQ0RNSW5zdGFuY2VQcm94eSk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUNETUluc3Rh
bmNlUHJveHk6OmNyZWF0ZVNlc3Npb24pOgorICAgICAgICAqIEdQVVByb2Nlc3MvbWVkaWEvUmVt
b3RlQ0RNSW5zdGFuY2VTZXNzaW9uUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVD
RE1JbnN0YW5jZVNlc3Npb25Qcm94eTo6Y3JlYXRlKToKKyAgICAgICAgKiBHUFVQcm9jZXNzL21l
ZGlhL1JlbW90ZUNETVByb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlQ0RNUHJveHk6
OmNyZWF0ZUluc3RhbmNlKToKKyAgICAgICAgKiBHUFVQcm9jZXNzL21lZGlhL1JlbW90ZUltYWdl
RGVjb2RlckFWRlByb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlSW1hZ2VEZWNvZGVy
QVZGUHJveHk6OlJlbW90ZUltYWdlRGVjb2RlckFWRlByb3h5KToKKyAgICAgICAgKiBHUFVQcm9j
ZXNzL21lZGlhL1JlbW90ZUxlZ2FjeUNETUZhY3RvcnlQcm94eS5jcHA6CisgICAgICAgIChXZWJL
aXQ6OlJlbW90ZUxlZ2FjeUNETUZhY3RvcnlQcm94eTo6UmVtb3RlTGVnYWN5Q0RNRmFjdG9yeVBy
b3h5KToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlTGVnYWN5Q0RNRmFjdG9yeVByb3h5OjpjcmVh
dGVDRE0pOgorICAgICAgICAqIEdQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTGVnYWN5Q0RNUHJveHku
Y3BwOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVMZWdhY3lDRE1Qcm94eTo6Y3JlYXRlU2Vzc2lv
bik6CisgICAgICAgICogR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVBsYXllck1hbmFnZXJQ
cm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZU1lZGlhUGxheWVyTWFuYWdlclByb3h5
OjpSZW1vdGVNZWRpYVBsYXllck1hbmFnZXJQcm94eSk6CisgICAgICAgICogR1BVUHJvY2Vzcy9t
ZWRpYS9SZW1vdGVNZWRpYVBsYXllclByb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6UmVtb3Rl
TWVkaWFQbGF5ZXJQcm94eTo6UmVtb3RlTWVkaWFQbGF5ZXJQcm94eSk6CisgICAgICAgIChXZWJL
aXQ6OlJlbW90ZU1lZGlhUGxheWVyUHJveHk6OnNldExlZ2FjeUNETVNlc3Npb24pOgorICAgICAg
ICAqIEdQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFSZXNvdXJjZS5jcHA6CisgICAgICAgIChX
ZWJLaXQ6OlJlbW90ZU1lZGlhUmVzb3VyY2U6OlJlbW90ZU1lZGlhUmVzb3VyY2UpOgorICAgICAg
ICAqIEdQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFSZXNvdXJjZUxvYWRlci5jcHA6CisgICAg
ICAgIChXZWJLaXQ6OlJlbW90ZU1lZGlhUmVzb3VyY2VMb2FkZXI6OlJlbW90ZU1lZGlhUmVzb3Vy
Y2VMb2FkZXIpOgorICAgICAgICAqIEdQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFTb3VyY2VQ
cm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZU1lZGlhU291cmNlUHJveHk6OlJlbW90
ZU1lZGlhU291cmNlUHJveHkpOgorICAgICAgICAqIEdQVVByb2Nlc3MvbWVkaWEvUmVtb3RlUmVt
b3RlQ29tbWFuZExpc3RlbmVyUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVSZW1v
dGVDb21tYW5kTGlzdGVuZXJQcm94eTo6UmVtb3RlUmVtb3RlQ29tbWFuZExpc3RlbmVyUHJveHkp
OgorICAgICAgICAqIEdQVVByb2Nlc3MvbWVkaWEvUmVtb3RlU291cmNlQnVmZmVyUHJveHkuY3Bw
OgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVTb3VyY2VCdWZmZXJQcm94eTo6UmVtb3RlU291cmNl
QnVmZmVyUHJveHkpOgorICAgICAgICAqIEdQVVByb2Nlc3MvbWVkaWEvUmVtb3RlVGV4dFRyYWNr
UHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVUZXh0VHJhY2tQcm94eTo6UmVtb3Rl
VGV4dFRyYWNrUHJveHkpOgorICAgICAgICAqIEdQVVByb2Nlc3MvbWVkaWEvUmVtb3RlVmlkZW9U
cmFja1Byb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlVmlkZW9UcmFja1Byb3h5OjpS
ZW1vdGVWaWRlb1RyYWNrUHJveHkpOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL0NsYXNzaWZp
ZXIvV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6
V2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlOjpXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNz
U3RvcmUpOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL0Rvd25sb2Fkcy9jb2NvYS9XS0Rvd25s
b2FkUHJvZ3Jlc3MubW06CisgICAgICAgICgtW1dLRG93bmxvYWRQcm9ncmVzcyBpbml0V2l0aERv
d25sb2FkVGFzazpkb3dubG9hZDpVUkw6c2FuZGJveEV4dGVuc2lvbjpdKToKKyAgICAgICAgKiBO
ZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ09SU1ByZWZsaWdodENoZWNrZXIuY3BwOgorICAgICAgICAo
V2ViS2l0OjpOZXR3b3JrQ09SU1ByZWZsaWdodENoZWNrZXI6Ok5ldHdvcmtDT1JTUHJlZmxpZ2h0
Q2hlY2tlcik6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dl
YlByb2Nlc3MuY3BwOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJv
Y2Vzczo6ZXN0YWJsaXNoU1dTZXJ2ZXJDb25uZWN0aW9uKToKKyAgICAgICAgKiBOZXR3b3JrUHJv
Y2Vzcy9OZXR3b3JrRGF0YVRhc2suY3BwOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrRGF0YVRh
c2s6Ok5ldHdvcmtEYXRhVGFzayk6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvTmV0d29ya0xv
YWQuY3BwOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrTG9hZDo6c3RhcnRXaXRoU2NoZWR1bGlu
Zyk6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvTmV0d29ya0xvYWRDaGVja2VyLmNwcDoKKyAg
ICAgICAgKFdlYktpdDo6TmV0d29ya0xvYWRDaGVja2VyOjpOZXR3b3JrTG9hZENoZWNrZXIpOgor
ICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmNwcDoKKyAgICAgICAgKFdl
YktpdDo6TmV0d29ya1Byb2Nlc3M6OnByZWNvbm5lY3RUbyk6CisgICAgICAgIChXZWJLaXQ6Ok5l
dHdvcmtQcm9jZXNzOjpkZWxldGVBbmRSZXN0cmljdFdlYnNpdGVEYXRhRm9yUmVnaXN0cmFibGVE
b21haW5zKToKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Byb2Nlc3M6OnNpbXVsYXRlUmVzb3Vy
Y2VMb2FkU3RhdGlzdGljc1Nlc3Npb25SZXN0YXJ0KToKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vz
cy9OZXR3b3JrUmVzb3VyY2VMb2FkZXIuY3BwOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUmVz
b3VyY2VMb2FkZXI6OnNlbmREaWRSZWNlaXZlUmVzcG9uc2VQb3RlbnRpYWxseUluTmV3QnJvd3Np
bmdDb250ZXh0R3JvdXApOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtTb2NrZXRD
aGFubmVsLmNwcDoKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1NvY2tldENoYW5uZWw6Ok5ldHdv
cmtTb2NrZXRDaGFubmVsKToKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrU3RvcmFn
ZVNlc3Npb25Qcm92aWRlci5oOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL1ByaXZhdGVDbGlj
a01lYXN1cmVtZW50L1ByaXZhdGVDbGlja01lYXN1cmVtZW50Q2xpZW50SW1wbC5jcHA6CisgICAg
ICAgIChXZWJLaXQ6OlBDTTo6Q2xpZW50SW1wbDo6Q2xpZW50SW1wbCk6CisgICAgICAgICogTmV0
d29ya1Byb2Nlc3MvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvUHJpdmF0ZUNsaWNrTWVhc3VyZW1l
bnRDb25uZWN0aW9uLmNwcDoKKyAgICAgICAgKFdlYktpdDo6UENNOjpDb25uZWN0aW9uVG9NYWNo
U2VydmljZTo6Q29ubmVjdGlvblRvTWFjaFNlcnZpY2UpOgorICAgICAgICAqIE5ldHdvcmtQcm9j
ZXNzL1ByaXZhdGVDbGlja01lYXN1cmVtZW50L2NvY29hL1ByaXZhdGVDbGlja01lYXN1cmVtZW50
Q29ubmVjdGlvbkNvY29hLm1tOgorICAgICAgICAoV2ViS2l0OjpQQ006OkNvbm5lY3Rpb25Ub01h
Y2hTZXJ2aWNlOjppbml0aWFsaXplQ29ubmVjdGlvbklmTmVlZGVkIGNvbnN0KToKKyAgICAgICAg
KiBOZXR3b3JrUHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1NlcnZpY2VXb3JrZXJGZXRjaFRhc2suY3Bw
OgorICAgICAgICAoV2ViS2l0OjpTZXJ2aWNlV29ya2VyRmV0Y2hUYXNrOjpTZXJ2aWNlV29ya2Vy
RmV0Y2hUYXNrKToKKyAgICAgICAgKFdlYktpdDo6U2VydmljZVdvcmtlckZldGNoVGFzazo6c3Rh
cnQpOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL1NlcnZpY2VXb3JrZXIvU2VydmljZVdvcmtl
clNvZnRVcGRhdGVMb2FkZXIuY3BwOgorICAgICAgICAoV2ViS2l0OjpTZXJ2aWNlV29ya2VyU29m
dFVwZGF0ZUxvYWRlcjo6U2VydmljZVdvcmtlclNvZnRVcGRhdGVMb2FkZXIpOgorICAgICAgICAq
IE5ldHdvcmtQcm9jZXNzL1NlcnZpY2VXb3JrZXIvV2ViU1dTZXJ2ZXJUb0NvbnRleHRDb25uZWN0
aW9uLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViU1dTZXJ2ZXJUb0NvbnRleHRDb25uZWN0aW9u
OjpXZWJTV1NlcnZlclRvQ29udGV4dENvbm5lY3Rpb24pOgorICAgICAgICAoV2ViS2l0OjpXZWJT
V1NlcnZlclRvQ29udGV4dENvbm5lY3Rpb246OnJlZ2lzdGVyRmV0Y2gpOgorICAgICAgICAqIE5l
dHdvcmtQcm9jZXNzL1dlYlN0b3JhZ2UvU3RvcmFnZUFyZWEuY3BwOgorICAgICAgICAoV2ViS2l0
OjpTdG9yYWdlQXJlYTo6U3RvcmFnZUFyZWEpOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL1dl
YlN0b3JhZ2UvU3RvcmFnZU1hbmFnZXJTZXQuY3BwOgorICAgICAgICAoV2ViS2l0OjpTdG9yYWdl
TWFuYWdlclNldDo6Y29ubmVjdFRvTG9jYWxTdG9yYWdlQXJlYSk6CisgICAgICAgIChXZWJLaXQ6
OlN0b3JhZ2VNYW5hZ2VyU2V0Ojpjb25uZWN0VG9UcmFuc2llbnRMb2NhbFN0b3JhZ2VBcmVhKToK
KyAgICAgICAgKFdlYktpdDo6U3RvcmFnZU1hbmFnZXJTZXQ6OmNvbm5lY3RUb1Nlc3Npb25TdG9y
YWdlQXJlYSk6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvY2FjaGUvQ2FjaGVTdG9yYWdlRW5n
aW5lLmNwcDoKKyAgICAgICAgKFdlYktpdDo6Q2FjaGVTdG9yYWdlOjpFbmdpbmU6OkVuZ2luZSk6
CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvY29jb2EvTmV0d29ya0RhdGFUYXNrQ29jb2EubW06
CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtEYXRhVGFza0NvY29hOjpOZXR3b3JrRGF0YVRhc2tD
b2NvYSk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtEYXRhVGFza0NvY29hOjpzd2FwU2Vzc2lv
bklmTmVjZXNzYXJ5KToKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9jb2NvYS9OZXR3b3JrU2Vz
c2lvbkNvY29hLm1tOgorICAgICAgICAoLVtXS05ldHdvcmtTZXNzaW9uRGVsZWdhdGUgaW5pdFdp
dGhOZXR3b3JrU2Vzc2lvbjp3cmFwcGVyOndpdGhDcmVkZW50aWFsczpdKToKKyAgICAgICAgKC1b
V0tOZXR3b3JrU2Vzc2lvbkRlbGVnYXRlIFVSTFNlc3Npb246dGFzazpkaWRSZWNlaXZlQ2hhbGxl
bmdlOmNvbXBsZXRpb25IYW5kbGVyOl0pOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrU2Vzc2lv
bkNvY29hOjpjcmVhdGVXZWJTb2NrZXRUYXNrKToKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Nl
c3Npb25Db2NvYTo6YWRkV2ViUGFnZU5ldHdvcmtQYXJhbWV0ZXJzKToKKyAgICAgICAgKiBOZXR3
b3JrUHJvY2Vzcy9zdG9yYWdlL0ZpbGVTeXN0ZW1TdG9yYWdlSGFuZGxlLmNwcDoKKyAgICAgICAg
KFdlYktpdDo6RmlsZVN5c3RlbVN0b3JhZ2VIYW5kbGU6OkZpbGVTeXN0ZW1TdG9yYWdlSGFuZGxl
KToKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9zdG9yYWdlL0ZpbGVTeXN0ZW1TdG9yYWdlSGFu
ZGxlUmVnaXN0cnkuY3BwOgorICAgICAgICAoV2ViS2l0OjpGaWxlU3lzdGVtU3RvcmFnZUhhbmRs
ZVJlZ2lzdHJ5OjpyZWdpc3RlckhhbmRsZSk6CisgICAgICAgICogUGxhdGZvcm0vSVBDL0Nvbm5l
Y3Rpb24uY3BwOgorICAgICAgICAoSVBDOjpDb25uZWN0aW9uOjphZGRNZXNzYWdlT2JzZXJ2ZXIp
OgorICAgICAgICAqIFBsYXRmb3JtL0lQQy9NZXNzYWdlUmVjZWl2ZXJNYXAuY3BwOgorICAgICAg
ICAoSVBDOjpNZXNzYWdlUmVjZWl2ZXJNYXA6OmFkZE1lc3NhZ2VSZWNlaXZlcik6CisgICAgICAg
ICogUGxhdGZvcm0vY29jb2EvV0tQYXltZW50QXV0aG9yaXphdGlvbkRlbGVnYXRlLm1tOgorICAg
ICAgICAoLVtXS1BheW1lbnRBdXRob3JpemF0aW9uRGVsZWdhdGUgX2luaXRXaXRoUmVxdWVzdDpw
cmVzZW50ZXI6XSk6CisgICAgICAgICogU2hhcmVkL0FwcGxlUGF5L1dlYlBheW1lbnRDb29yZGlu
YXRvclByb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUGF5bWVudENvb3JkaW5hdG9yUHJv
eHk6OnNob3dQYXltZW50VUkpOgorICAgICAgICAqIFNoYXJlZC9XZWJTUUxpdGVEYXRhYmFzZVRy
YWNrZXIuaDoKKyAgICAgICAgKiBTaGFyZWQvWFIvWFJEZXZpY2VQcm94eS5jcHA6CisgICAgICAg
IChXZWJLaXQ6OlhSRGV2aWNlUHJveHk6OlhSRGV2aWNlUHJveHkpOgorICAgICAgICAqIFNoYXJl
ZC9tYWMvU2VjSXRlbVNoaW0uY3BwOgorICAgICAgICAoV2ViS2l0Ojppbml0aWFsaXplU2VjSXRl
bVNoaW0pOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQVBJQXR0YWNobWVudC5jcHA6CisgICAg
ICAgIChBUEk6OkF0dGFjaG1lbnQ6OkF0dGFjaG1lbnQpOgorICAgICAgICAqIFVJUHJvY2Vzcy9B
UEkvQVBJSFRUUENvb2tpZVN0b3JlLmNwcDoKKyAgICAgICAgKEFQSTo6SFRUUENvb2tpZVN0b3Jl
OjpIVFRQQ29va2llU3RvcmUpOgorICAgICAgICAoQVBJOjpIVFRQQ29va2llU3RvcmU6OnJlZ2lz
dGVyT2JzZXJ2ZXIpOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQVBJSW5zcGVjdG9yRXh0ZW5z
aW9uLmNwcDoKKyAgICAgICAgKEFQSTo6SW5zcGVjdG9yRXh0ZW5zaW9uOjpJbnNwZWN0b3JFeHRl
bnNpb24pOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQVBJV2ViQXV0aGVudGljYXRpb25QYW5l
bC5jcHA6CisgICAgICAgIChBUEk6OldlYkF1dGhlbnRpY2F0aW9uUGFuZWw6OldlYkF1dGhlbnRp
Y2F0aW9uUGFuZWwpOgorICAgICAgICAoQVBJOjpXZWJBdXRoZW50aWNhdGlvblBhbmVsOjpoYW5k
bGVSZXF1ZXN0KToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlldy5tbToK
KyAgICAgICAgKC1bV0tXZWJWaWV3IF9yZW1vdmVEYXRhRGV0ZWN0ZWRMaW5rczpdKToKKyAgICAg
ICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlld1Rlc3RpbmcubW06CisgICAgICAgICgt
W1dLTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3JIZWxwZXIgaW5pdFdpdGhDb29yZGluYXRvcjpdKToK
KyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL19XS1dlYkF1dGhlbnRpY2F0aW9uUGFuZWwu
bW06CisgICAgICAgICgtW19XS1dlYkF1dGhlbnRpY2F0aW9uUGFuZWwgc2V0RGVsZWdhdGU6XSk6
CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9pb3MvV0tXZWJWaWV3SU9TLm1tOgorICAgICAgICAo
LVtXS1dlYlZpZXcgX2RldGVjdERhdGFXaXRoVHlwZXM6Y29tcGxldGlvbkhhbmRsZXI6XSk6Cisg
ICAgICAgICogVUlQcm9jZXNzL0NvY29hL0dyb3VwQWN0aXZpdGllcy9Hcm91cEFjdGl2aXRpZXND
b29yZGluYXRvci5tbToKKyAgICAgICAgKC1bV0tHcm91cEFjdGl2aXRpZXNDb29yZGluYXRvckRl
bGVnYXRlIGluaXRXaXRoUGFyZW50Ol0pOgorICAgICAgICAqIFVJUHJvY2Vzcy9Db2NvYS9MZWdh
Y3lDdXN0b21Qcm90b2NvbE1hbmFnZXJDbGllbnQubW06CisgICAgICAgICgtW1dLQ3VzdG9tUHJv
dG9jb2xMb2FkZXIgaW5pdFdpdGhMZWdhY3lDdXN0b21Qcm90b2NvbE1hbmFnZXJQcm94eTpjdXN0
b21Qcm90b2NvbElEOnJlcXVlc3Q6XSk6CisgICAgICAgICogVUlQcm9jZXNzL0NvY29hL05hdmln
YXRpb25TdGF0ZS5tbToKKyAgICAgICAgKFdlYktpdDo6TmF2aWdhdGlvblN0YXRlOjpOYXZpZ2F0
aW9uU3RhdGUpOgorICAgICAgICAoV2ViS2l0OjpOYXZpZ2F0aW9uU3RhdGU6Ok5hdmlnYXRpb25D
bGllbnQ6Ok5hdmlnYXRpb25DbGllbnQpOgorICAgICAgICAoV2ViS2l0Ojp0cnlJbnRlcmNlcHRO
YXZpZ2F0aW9uKToKKyAgICAgICAgKFdlYktpdDo6TmF2aWdhdGlvblN0YXRlOjpIaXN0b3J5Q2xp
ZW50OjpIaXN0b3J5Q2xpZW50KToKKyAgICAgICAgKiBVSVByb2Nlc3MvQ29jb2EvU09BdXRob3Jp
emF0aW9uL1BvcFVwU09BdXRob3JpemF0aW9uU2Vzc2lvbi5tbToKKyAgICAgICAgKC1bV0tTT1Nl
Y3JldERlbGVnYXRlIGluaXRXaXRoU2Vzc2lvbjpdKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQ29j
b2EvU09BdXRob3JpemF0aW9uL1NPQXV0aG9yaXphdGlvblNlc3Npb24ubW06CisgICAgICAgIChX
ZWJLaXQ6OlNPQXV0aG9yaXphdGlvblNlc3Npb246OlNPQXV0aG9yaXphdGlvblNlc3Npb24pOgor
ICAgICAgICAqIFVJUHJvY2Vzcy9Db2NvYS9VSURlbGVnYXRlLm1tOgorICAgICAgICAoV2ViS2l0
OjpVSURlbGVnYXRlOjpDb250ZXh0TWVudUNsaWVudDo6Q29udGV4dE1lbnVDbGllbnQpOgorICAg
ICAgICAoV2ViS2l0OjpVSURlbGVnYXRlOjpVSUNsaWVudDo6VUlDbGllbnQpOgorICAgICAgICAo
V2ViS2l0OjpVSURlbGVnYXRlOjpVSUNsaWVudDo6ZGVjaWRlUG9saWN5Rm9yR2VvbG9jYXRpb25Q
ZXJtaXNzaW9uUmVxdWVzdCk6CisgICAgICAgIChXZWJLaXQ6OlVJRGVsZWdhdGU6OlVJQ2xpZW50
OjpzaG91bGRBbGxvd0RldmljZU9yaWVudGF0aW9uQW5kTW90aW9uQWNjZXNzKToKKyAgICAgICAg
KiBVSVByb2Nlc3MvQ29jb2EvV2ViUGFzdGVib2FyZFByb3h5Q29jb2EubW06CisgICAgICAgIChX
ZWJLaXQ6OldlYlBhc3RlYm9hcmRQcm94eTo6Z3JhbnRBY2Nlc3MpOgorICAgICAgICAoV2ViS2l0
OjpXZWJQYXN0ZWJvYXJkUHJveHk6OmRpZE1vZGlmeUNvbnRlbnRzT2ZQYXN0ZWJvYXJkKToKKyAg
ICAgICAgKFdlYktpdDo6V2ViUGFzdGVib2FyZFByb3h5OjpQYXN0ZWJvYXJkQWNjZXNzSW5mb3Jt
YXRpb246OmdyYW50QWNjZXNzKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQ29jb2EvV2ViUHJvY2Vz
c1Bvb2xDb2NvYS5tbToKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzc1Bvb2w6OnNldE1lZGlh
QWNjZXNzaWJpbGl0eVByZWZlcmVuY2VzKToKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzc1Bv
b2w6OnJlZ2lzdGVyTm90aWZpY2F0aW9uT2JzZXJ2ZXJzKToKKyAgICAgICAgKiBVSVByb2Nlc3Mv
Q29jb2EvV2ViVmlld0ltcGwubW06CisgICAgICAgICgtW1dLRE9NUGFzdGVNZW51RGVsZWdhdGUg
aW5pdFdpdGhXZWJWaWV3SW1wbDpdKToKKyAgICAgICAgKiBVSVByb2Nlc3MvRG93bmxvYWRzL0Rv
d25sb2FkUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpEb3dubG9hZFByb3h5OjpEb3dubG9h
ZFByb3h5KToKKyAgICAgICAgKiBVSVByb2Nlc3MvR1BVL0dQVVByb2Nlc3NQcm94eS5jcHA6Cisg
ICAgICAgIChXZWJLaXQ6OkdQVVByb2Nlc3NQcm94eTo6Z2V0T3JDcmVhdGUpOgorICAgICAgICAq
IFVJUHJvY2Vzcy9JbnNwZWN0b3IvSW5zcGVjdG9yVGFyZ2V0UHJveHkuY3BwOgorICAgICAgICAo
V2ViS2l0OjpJbnNwZWN0b3JUYXJnZXRQcm94eTo6Y3JlYXRlKToKKyAgICAgICAgKiBVSVByb2Nl
c3MvSW5zcGVjdG9yL1dlYkluc3BlY3RvclVJRXh0ZW5zaW9uQ29udHJvbGxlclByb3h5LmNwcDoK
KyAgICAgICAgKFdlYktpdDo6V2ViSW5zcGVjdG9yVUlFeHRlbnNpb25Db250cm9sbGVyUHJveHk6
OldlYkluc3BlY3RvclVJRXh0ZW5zaW9uQ29udHJvbGxlclByb3h5KToKKyAgICAgICAgKiBVSVBy
b2Nlc3MvTGF1bmNoZXIvbWFjL1Byb2Nlc3NMYXVuY2hlck1hYy5tbToKKyAgICAgICAgKFdlYktp
dDo6UHJvY2Vzc0xhdW5jaGVyOjpsYXVuY2hQcm9jZXNzKToKKyAgICAgICAgKiBVSVByb2Nlc3Mv
TWVkaWEvUmVtb3RlTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3JQcm94eS5jcHA6CisgICAgICAgIChX
ZWJLaXQ6OlJlbW90ZU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yUHJveHk6OlJlbW90ZU1lZGlhU2Vz
c2lvbkNvb3JkaW5hdG9yUHJveHkpOgorICAgICAgICAqIFVJUHJvY2Vzcy9NZWRpYUtleVN5c3Rl
bVBlcm1pc3Npb25SZXF1ZXN0UHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpNZWRpYUtleVN5
c3RlbVBlcm1pc3Npb25SZXF1ZXN0UHJveHk6Ok1lZGlhS2V5U3lzdGVtUGVybWlzc2lvblJlcXVl
c3RQcm94eSk6CisgICAgICAgICogVUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94
eS5jcHA6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzUHJveHk6OmRpZFJlY2VpdmVB
dXRoZW50aWNhdGlvbkNoYWxsZW5nZSk6CisgICAgICAgICogVUlQcm9jZXNzL05ldHdvcmsvTmV0
d29ya1Byb2Nlc3NQcm94eUNvY29hLm1tOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUHJvY2Vz
c1Byb3h5OjpYUENFdmVudEhhbmRsZXI6OlhQQ0V2ZW50SGFuZGxlcik6CisgICAgICAgICogVUlQ
cm9jZXNzL1BERi9XS1BERkhVRFZpZXcubW06CisgICAgICAgICgtW1dLUERGSFVEVmlldyBpbml0
V2l0aEZyYW1lOnBsdWdpbklkZW50aWZpZXI6cGFnZTpdKToKKyAgICAgICAgKiBVSVByb2Nlc3Mv
U3BlZWNoUmVjb2duaXRpb25QZXJtaXNzaW9uUmVxdWVzdC5oOgorICAgICAgICAoV2ViS2l0OjpT
cGVlY2hSZWNvZ25pdGlvblBlcm1pc3Npb25SZXF1ZXN0OjpTcGVlY2hSZWNvZ25pdGlvblBlcm1p
c3Npb25SZXF1ZXN0KToKKyAgICAgICAgKiBVSVByb2Nlc3MvU3BlZWNoUmVjb2duaXRpb25SZW1v
dGVSZWFsdGltZU1lZGlhU291cmNlLmNwcDoKKyAgICAgICAgKiBVSVByb2Nlc3MvU3BlZWNoUmVj
b2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlci5jcHA6CisgICAgICAgIChX
ZWJLaXQ6OlNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXI6
OmFkZFNvdXJjZSk6CisgICAgICAgICogVUlQcm9jZXNzL1ZpZXdHZXN0dXJlQ29udHJvbGxlci5j
cHA6CisgICAgICAgIChXZWJLaXQ6OlZpZXdHZXN0dXJlQ29udHJvbGxlcjo6c2V0QWx0ZXJuYXRl
QmFja0ZvcndhcmRMaXN0U291cmNlUGFnZSk6CisgICAgICAgICogVUlQcm9jZXNzL1dlYkF1dGhl
bnRpY2F0aW9uL0F1dGhlbnRpY2F0b3IuaDoKKyAgICAgICAgKFdlYktpdDo6QXV0aGVudGljYXRv
cjo6c2V0T2JzZXJ2ZXIpOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9B
dXRoZW50aWNhdG9yTWFuYWdlci5jcHA6CisgICAgICAgIChXZWJLaXQ6OkF1dGhlbnRpY2F0b3JN
YW5hZ2VyOjpydW5QYW5lbCk6CisgICAgICAgIChXZWJLaXQ6OkF1dGhlbnRpY2F0b3JNYW5hZ2Vy
OjpkaXNwYXRjaFBhbmVsQ2xpZW50Q2FsbCBjb25zdCk6CisgICAgICAgICogVUlQcm9jZXNzL1dl
YkF1dGhlbnRpY2F0aW9uL0F1dGhlbnRpY2F0b3JUcmFuc3BvcnRTZXJ2aWNlLmNwcDoKKyAgICAg
ICAgKFdlYktpdDo6QXV0aGVudGljYXRvclRyYW5zcG9ydFNlcnZpY2U6OkF1dGhlbnRpY2F0b3JU
cmFuc3BvcnRTZXJ2aWNlKToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViQXV0aGVudGljYXRpb24v
Q29jb2EvQXV0aGVudGljYXRvclByZXNlbnRlckNvb3JkaW5hdG9yLm1tOgorICAgICAgICAoV2Vi
S2l0OjpBdXRoZW50aWNhdG9yUHJlc2VudGVyQ29vcmRpbmF0b3I6OkF1dGhlbnRpY2F0b3JQcmVz
ZW50ZXJDb29yZGluYXRvcik6CisgICAgICAgICogVUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9u
L0NvY29hL05mY0Nvbm5lY3Rpb24ubW06CisgICAgICAgIChXZWJLaXQ6Ok5mY0Nvbm5lY3Rpb246
Ok5mY0Nvbm5lY3Rpb24pOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9D
b2NvYS9XS0FTQ0F1dGhvcml6YXRpb25QcmVzZW50ZXJEZWxlZ2F0ZS5tbToKKyAgICAgICAgKC1b
V0tBU0NBdXRob3JpemF0aW9uUHJlc2VudGVyRGVsZWdhdGUgaW5pdFdpdGhDb29yZGluYXRvcjpd
KToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViQXV0aGVudGljYXRpb24vQ29jb2EvV0tORlJlYWRl
clNlc3Npb25EZWxlZ2F0ZS5tbToKKyAgICAgICAgKC1bV0tORlJlYWRlclNlc3Npb25EZWxlZ2F0
ZSBpbml0V2l0aENvbm5lY3Rpb246XSk6CisgICAgICAgICogVUlQcm9jZXNzL1dlYkF1dGhlbnRp
Y2F0aW9uL0NvY29hL1dlYkF1dGhlbnRpY2F0b3JDb29yZGluYXRvclByb3h5Lm1tOgorICAgICAg
ICAoV2ViS2l0OjpXZWJBdXRoZW50aWNhdG9yQ29vcmRpbmF0b3JQcm94eTo6cGVyZm9ybVJlcXVl
c3QpOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9XZWJBdXRoZW50aWNh
dG9yQ29vcmRpbmF0b3JQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYkF1dGhlbnRpY2F0
b3JDb29yZGluYXRvclByb3h5OjptYWtlQ3JlZGVudGlhbCk6CisgICAgICAgIChXZWJLaXQ6Oldl
YkF1dGhlbnRpY2F0b3JDb29yZGluYXRvclByb3h5OjpnZXRBc3NlcnRpb24pOgorICAgICAgICAq
IFVJUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9maWRvL0ZpZG9TZXJ2aWNlLmNwcDoKKyAgICAg
ICAgKFdlYktpdDo6Rmlkb1NlcnZpY2U6OmdldEluZm8pOgorICAgICAgICAqIFVJUHJvY2Vzcy9X
ZWJDb250ZXh0TWVudUxpc3RlbmVyUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJDb250
ZXh0TWVudUxpc3RlbmVyUHJveHk6OldlYkNvbnRleHRNZW51TGlzdGVuZXJQcm94eSk6CisgICAg
ICAgICogVUlQcm9jZXNzL1dlYkNvbnRleHRNZW51UHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0
OjpXZWJDb250ZXh0TWVudVByb3h5OjpXZWJDb250ZXh0TWVudVByb3h5KToKKyAgICAgICAgKiBV
SVByb2Nlc3MvV2ViQ29va2llTWFuYWdlclByb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2Vi
Q29va2llTWFuYWdlclByb3h5OjpXZWJDb29raWVNYW5hZ2VyUHJveHkpOgorICAgICAgICAqIFVJ
UHJvY2Vzcy9XZWJEYXRhTGlzdFN1Z2dlc3Rpb25zRHJvcGRvd24uY3BwOgorICAgICAgICAoV2Vi
S2l0OjpXZWJEYXRhTGlzdFN1Z2dlc3Rpb25zRHJvcGRvd246OldlYkRhdGFMaXN0U3VnZ2VzdGlv
bnNEcm9wZG93bik6CisgICAgICAgICogVUlQcm9jZXNzL1dlYkRhdGVUaW1lUGlja2VyLmNwcDoK
KyAgICAgICAgKFdlYktpdDo6V2ViRGF0ZVRpbWVQaWNrZXI6OldlYkRhdGVUaW1lUGlja2VyKToK
KyAgICAgICAgKiBVSVByb2Nlc3MvV2ViRWRpdENvbW1hbmRQcm94eS5jcHA6CisgICAgICAgIChX
ZWJLaXQ6OldlYkVkaXRDb21tYW5kUHJveHk6OldlYkVkaXRDb21tYW5kUHJveHkpOgorICAgICAg
ICAqIFVJUHJvY2Vzcy9XZWJGcmFtZVByb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViRnJh
bWVQcm94eTo6V2ViRnJhbWVQcm94eSk6CisgICAgICAgICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94
eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OlBhZ2VDbGllbnRQcm90ZWN0b3I6OlBhZ2VDbGllbnRQ
cm90ZWN0b3IpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OldlYlBhZ2VQcm94eSk6
CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6c3VzcGVuZEN1cnJlbnRQYWdlSWZQb3Nz
aWJsZSk6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6YWRkT2JzZXJ2ZXIpOgorICAg
ICAgICAqIFVJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5jcHA6CisgICAgICAgIChXZWJLaXQ6Oldl
YlByb2Nlc3NQb29sOjpnZXRHUFVQcm9jZXNzQ29ubmVjdGlvbik6CisgICAgICAgIChXZWJLaXQ6
OldlYlByb2Nlc3NQb29sOjpnZXRXZWJBdXRoblByb2Nlc3NDb25uZWN0aW9uKToKKyAgICAgICAg
KFdlYktpdDo6V2ViUHJvY2Vzc1Bvb2w6OmluaXRpYWxpemVOZXdXZWJQcm9jZXNzKToKKyAgICAg
ICAgKFdlYktpdDo6V2ViUHJvY2Vzc1Bvb2w6OmNyZWF0ZVdlYlBhZ2UpOgorICAgICAgICAqIFVJ
UHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNz
UHJveHk6OnByb2Nlc3NEaWRUZXJtaW5hdGVPckZhaWxlZFRvTGF1bmNoKToKKyAgICAgICAgKFdl
YktpdDo6V2ViUHJvY2Vzc1Byb3h5OjpjcmVhdGVTcGVlY2hSZWNvZ25pdGlvblNlcnZlcik6Cisg
ICAgICAgICogVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5oOgorICAgICAgICAoV2ViS2l0OjpX
ZWJQcm9jZXNzUHJveHk6OldlYWtPclN0cm9uZ1B0cjo6V2Vha09yU3Ryb25nUHRyKToKKyAgICAg
ICAgKiBVSVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9yZS5jcHA6CisgICAgICAg
IChXZWJLaXQ6OldlYnNpdGVEYXRhU3RvcmU6OmdldE5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbik6
CisgICAgICAgICogVUlQcm9jZXNzL2d0ay9XYXlsYW5kQ29tcG9zaXRvci5jcHA6CisgICAgICAg
IChXZWJLaXQ6OldheWxhbmRDb21wb3NpdG9yOjpTdXJmYWNlOjphdHRhY2hCdWZmZXIpOgorICAg
ICAgICAoV2ViS2l0OjpXYXlsYW5kQ29tcG9zaXRvcjo6YmluZFN1cmZhY2VUb1dlYlBhZ2UpOgor
ICAgICAgICAqIFVJUHJvY2Vzcy9pb3MvUHJvY2Vzc0Fzc2VydGlvbklPUy5tbToKKyAgICAgICAg
KC1bV0tQcm9jZXNzQXNzZXJ0aW9uQmFja2dyb3VuZFRhc2tNYW5hZ2VyIF9ub3RpZnlBc3NlcnRp
b25zT2ZJbW1pbmVudFN1c3BlbnNpb25dKToKKyAgICAgICAgKiBVSVByb2Nlc3MvaW9zL1dlYkRh
dGFMaXN0U3VnZ2VzdGlvbnNEcm9wZG93bklPUy5tbToKKyAgICAgICAgKC1bV0tEYXRhTGlzdFN1
Z2dlc3Rpb25zQ29udHJvbCBzaG93U3VnZ2VzdGlvbnNEcm9wZG93bjphY3RpdmF0aW9uVHlwZTpd
KToKKyAgICAgICAgKiBVSVByb2Nlc3MvbWFjL1BhZ2VDbGllbnRJbXBsTWFjLm1tOgorICAgICAg
ICAoV2ViS2l0OjpQYWdlQ2xpZW50SW1wbDo6c2V0SW1wbCk6CisgICAgICAgICogVUlQcm9jZXNz
L21hYy9XS1JldmVhbEl0ZW1QcmVzZW50ZXIubW06CisgICAgICAgICgtW1dLUmV2ZWFsSXRlbVBy
ZXNlbnRlciBpbml0V2l0aFdlYlZpZXdJbXBsOml0ZW06ZnJhbWU6bWVudUxvY2F0aW9uOl0pOgor
ICAgICAgICAqIFVJUHJvY2Vzcy9tYWMvV2ViQ29udGV4dE1lbnVQcm94eU1hYy5tbToKKyAgICAg
ICAgKFdlYktpdDo6V2ViQ29udGV4dE1lbnVQcm94eU1hYzo6Z2V0Q29udGV4dE1lbnVGcm9tSXRl
bXMpOgorICAgICAgICAoV2ViS2l0OjpXZWJDb250ZXh0TWVudVByb3h5TWFjOjppbnNlcnRPclVw
ZGF0ZVF1aWNrTG9va0ltYWdlSXRlbSk6CisgICAgICAgICogVUlQcm9jZXNzL21hYy9XZWJEYXRh
TGlzdFN1Z2dlc3Rpb25zRHJvcGRvd25NYWMubW06CisgICAgICAgICgtW1dLRGF0YUxpc3RTdWdn
ZXN0aW9uc0NvbnRyb2xsZXIgc2hvd1N1Z2dlc3Rpb25zRHJvcGRvd246XSk6CisgICAgICAgICog
VUlQcm9jZXNzL21hYy9XZWJEYXRlVGltZVBpY2tlck1hYy5tbToKKyAgICAgICAgKC1bV0tEYXRl
VGltZVBpY2tlciBzaG93UGlja2VyOl0pOgorICAgICAgICAqIFdlYlByb2Nlc3MvQXV0b21hdGlv
bi9XZWJBdXRvbWF0aW9uRE9NV2luZG93T2JzZXJ2ZXIuY3BwOgorICAgICAgICAoV2ViS2l0OjpX
ZWJBdXRvbWF0aW9uRE9NV2luZG93T2JzZXJ2ZXI6OldlYkF1dG9tYXRpb25ET01XaW5kb3dPYnNl
cnZlcik6CisgICAgICAgICogV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3RlRGlzcGxheUxp
c3RSZWNvcmRlclByb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6bV9yZW5kZXJpbmdCYWNrZW5k
KToKKyAgICAgICAgKiBXZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVJbWFnZUJ1ZmZlclBy
b3h5Lmg6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUltYWdlQnVmZmVyUHJveHk6OlJlbW90ZUlt
YWdlQnVmZmVyUHJveHkpOgorICAgICAgICAqIFdlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90
ZVJlbmRlcmluZ0JhY2tlbmRQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVJlbmRl
cmluZ0JhY2tlbmRQcm94eTo6ZW5zdXJlR1BVUHJvY2Vzc0Nvbm5lY3Rpb24pOgorICAgICAgICAq
IFdlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90ZVJlc291cmNlQ2FjaGVQcm94eS5jcHA6Cisg
ICAgICAgIChXZWJLaXQ6OlJlbW90ZVJlc291cmNlQ2FjaGVQcm94eTo6Y2FjaGVJbWFnZUJ1ZmZl
cik6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVJlc291cmNlQ2FjaGVQcm94eTo6cmVjb3JkTmF0
aXZlSW1hZ2VVc2UpOgorICAgICAgICAqIFdlYlByb2Nlc3MvR1BVL21lZGlhL0F1ZGlvVHJhY2tQ
cml2YXRlUmVtb3RlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6QXVkaW9UcmFja1ByaXZhdGVSZW1v
dGU6OkF1ZGlvVHJhY2tQcml2YXRlUmVtb3RlKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL0dQVS9t
ZWRpYS9NZWRpYVBsYXllclByaXZhdGVSZW1vdGUuY3BwOgorICAgICAgICAoV2ViS2l0OjpNZWRp
YVBsYXllclByaXZhdGVSZW1vdGU6Ok1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZSk6CisgICAgICAg
ICogV2ViUHJvY2Vzcy9HUFUvbWVkaWEvTWVkaWFTb3VyY2VQcml2YXRlUmVtb3RlLmNwcDoKKyAg
ICAgICAgKFdlYktpdDo6TWVkaWFTb3VyY2VQcml2YXRlUmVtb3RlOjpNZWRpYVNvdXJjZVByaXZh
dGVSZW1vdGUpOgorICAgICAgICAqIFdlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZUF1ZGlvRGVz
dGluYXRpb25Qcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUF1ZGlvRGVzdGluYXRp
b25Qcm94eTo6Y29ubmVjdGlvbik6CisgICAgICAgICogV2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVt
b3RlQXVkaW9IYXJkd2FyZUxpc3RlbmVyLmNwcDoKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlQXVk
aW9IYXJkd2FyZUxpc3RlbmVyOjpSZW1vdGVBdWRpb0hhcmR3YXJlTGlzdGVuZXIpOgorICAgICAg
ICAqIFdlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZUF1ZGlvU2Vzc2lvbi5jcHA6CisgICAgICAg
IChXZWJLaXQ6OlJlbW90ZUF1ZGlvU2Vzc2lvbjo6ZW5zdXJlQ29ubmVjdGlvbik6CisgICAgICAg
ICogV2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlQXVkaW9Tb3VyY2VQcm92aWRlci5jcHA6Cisg
ICAgICAgIChXZWJLaXQ6OlJlbW90ZUF1ZGlvU291cmNlUHJvdmlkZXI6OlJlbW90ZUF1ZGlvU291
cmNlUHJvdmlkZXIpOgorICAgICAgICAqIFdlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZUNETS5j
cHA6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUNETTo6Y3JlYXRlSW5zdGFuY2UpOgorICAgICAg
ICAqIFdlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZUNETUZhY3RvcnkuY3BwOgorICAgICAgICAo
V2ViS2l0OjpSZW1vdGVDRE1GYWN0b3J5OjpjcmVhdGVDRE0pOgorICAgICAgICAqIFdlYlByb2Nl
c3MvR1BVL21lZGlhL1JlbW90ZUNETUluc3RhbmNlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6UmVt
b3RlQ0RNSW5zdGFuY2U6OmNyZWF0ZVNlc3Npb24pOgorICAgICAgICAqIFdlYlByb2Nlc3MvR1BV
L21lZGlhL1JlbW90ZUltYWdlRGVjb2RlckFWRi5jcHA6CisgICAgICAgIChXZWJLaXQ6OlJlbW90
ZUltYWdlRGVjb2RlckFWRjo6UmVtb3RlSW1hZ2VEZWNvZGVyQVZGKToKKyAgICAgICAgKiBXZWJQ
cm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVJbWFnZURlY29kZXJBVkZNYW5hZ2VyLmNwcDoKKyAgICAg
ICAgKFdlYktpdDo6UmVtb3RlSW1hZ2VEZWNvZGVyQVZGTWFuYWdlcjo6Y3JlYXRlSW1hZ2VEZWNv
ZGVyKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlSW1hZ2VEZWNvZGVyQVZGTWFuYWdlcjo6ZW5z
dXJlR1BVUHJvY2Vzc0Nvbm5lY3Rpb24pOgorICAgICAgICAqIFdlYlByb2Nlc3MvR1BVL21lZGlh
L1JlbW90ZUxlZ2FjeUNETUZhY3RvcnkuY3BwOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVMZWdh
Y3lDRE1GYWN0b3J5OjpjcmVhdGVDRE0pOgorICAgICAgICAqIFdlYlByb2Nlc3MvR1BVL21lZGlh
L1JlbW90ZU1lZGlhUGxheWVyTWFuYWdlci5jcHA6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZU1l
ZGlhUGxheWVyTWFuYWdlcjo6Y3JlYXRlUmVtb3RlTWVkaWFQbGF5ZXIpOgorICAgICAgICAqIFdl
YlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZVJlbW90ZUNvbW1hbmRMaXN0ZW5lci5jcHA6CisgICAg
ICAgIChXZWJLaXQ6OlJlbW90ZVJlbW90ZUNvbW1hbmRMaXN0ZW5lcjo6ZW5zdXJlR1BVUHJvY2Vz
c0Nvbm5lY3Rpb24pOgorICAgICAgICAqIFdlYlByb2Nlc3MvR1BVL21lZGlhL1NvdXJjZUJ1ZmZl
clByaXZhdGVSZW1vdGUuY3BwOgorICAgICAgICAoV2ViS2l0OjpTb3VyY2VCdWZmZXJQcml2YXRl
UmVtb3RlOjpTb3VyY2VCdWZmZXJQcml2YXRlUmVtb3RlKToKKyAgICAgICAgKiBXZWJQcm9jZXNz
L0dQVS9tZWRpYS9UZXh0VHJhY2tQcml2YXRlUmVtb3RlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6
VGV4dFRyYWNrUHJpdmF0ZVJlbW90ZTo6VGV4dFRyYWNrUHJpdmF0ZVJlbW90ZSk6CisgICAgICAg
ICogV2ViUHJvY2Vzcy9HUFUvbWVkaWEvVmlkZW9UcmFja1ByaXZhdGVSZW1vdGUuY3BwOgorICAg
ICAgICAoV2ViS2l0OjpWaWRlb1RyYWNrUHJpdmF0ZVJlbW90ZTo6VmlkZW9UcmFja1ByaXZhdGVS
ZW1vdGUpOgorICAgICAgICAqIFdlYlByb2Nlc3MvR1BVL21lZGlhL2NvY29hL1ZpZGVvTGF5ZXJS
ZW1vdGVDb2NvYS5tbToKKyAgICAgICAgKC1bV0tWaWRlb0xheWVyUmVtb3RlIHNldE1lZGlhUGxh
eWVyUHJpdmF0ZVJlbW90ZTpdKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL0dQVS9tZWRpYS9pb3Mv
UmVtb3RlTWVkaWFTZXNzaW9uSGVscGVyLmNwcDoKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlTWVk
aWFTZXNzaW9uSGVscGVyOjplbnN1cmVDb25uZWN0aW9uKToKKyAgICAgICAgKiBXZWJQcm9jZXNz
L0dQVS93ZWJydGMvQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJJbnRlcm5hbFVuaXRNYW5h
Z2VyLmNwcDoKKyAgICAgICAgKFdlYktpdDo6QXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJJ
bnRlcm5hbFVuaXRNYW5hZ2VyOjphZGQpOgorICAgICAgICAqIFdlYlByb2Nlc3MvR1BVL3dlYnJ0
Yy9TYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXIuY3BwOgorICAgICAgICAoV2ViS2l0OjpTYW1wbGVC
dWZmZXJEaXNwbGF5TGF5ZXI6OlNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllcik6CisgICAgICAgICog
V2ViUHJvY2Vzcy9HUFUvd2VicnRjL1NhbXBsZUJ1ZmZlckRpc3BsYXlMYXllck1hbmFnZXIuY3Bw
OgorICAgICAgICAoV2ViS2l0OjpTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXJNYW5hZ2VyOjpjcmVh
dGVMYXllcik6CisgICAgICAgIChXZWJLaXQ6OlNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllck1hbmFn
ZXI6OmFkZExheWVyKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9n
bGliL0RPTS9ET01PYmplY3RDYWNoZS5jcHA6CisgICAgICAgICogV2ViUHJvY2Vzcy9JbnNwZWN0
b3IvV2ViSW5zcGVjdG9yVUlFeHRlbnNpb25Db250cm9sbGVyLmNwcDoKKyAgICAgICAgKFdlYktp
dDo6V2ViSW5zcGVjdG9yVUlFeHRlbnNpb25Db250cm9sbGVyOjpXZWJJbnNwZWN0b3JVSUV4dGVu
c2lvbkNvbnRyb2xsZXIpOgorICAgICAgICAqIFdlYlByb2Nlc3MvTmV0d29yay9XZWJTb2NrZXRD
aGFubmVsLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViU29ja2V0Q2hhbm5lbDo6V2ViU29ja2V0
Q2hhbm5lbCk6CisgICAgICAgICogV2ViUHJvY2Vzcy9OZXR3b3JrL1dlYlNvY2tldENoYW5uZWxN
YW5hZ2VyLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViU29ja2V0Q2hhbm5lbE1hbmFnZXI6OmFk
ZENoYW5uZWwpOgorICAgICAgICAqIFdlYlByb2Nlc3MvTmV0d29yay93ZWJydGMvUlRDRGF0YUNo
YW5uZWxSZW1vdGVNYW5hZ2VyLmNwcDoKKyAgICAgICAgKFdlYktpdDo6UlRDRGF0YUNoYW5uZWxS
ZW1vdGVNYW5hZ2VyOjpSZW1vdGVIYW5kbGVyQ29ubmVjdGlvbjo6Y29ubmVjdFRvU291cmNlKToK
KyAgICAgICAgKiBXZWJQcm9jZXNzL1BsdWdpbnMvUERGL1BERlBsdWdpbi5oOgorICAgICAgICAq
IFdlYlByb2Nlc3MvUGx1Z2lucy9QREYvUERGUGx1Z2luLm1tOgorICAgICAgICAoLVtXS1BERlBs
dWdpbkFjY2Vzc2liaWxpdHlPYmplY3QgaW5pdFdpdGhQREZQbHVnaW46YW5kRWxlbWVudDpdKToK
KyAgICAgICAgKFdlYktpdDo6UERGUGx1Z2luOjpQREZQbHVnaW4pOgorICAgICAgICAqIFdlYlBy
b2Nlc3MvUGx1Z2lucy9QbHVnaW4uY3BwOgorICAgICAgICAoV2ViS2l0OjpQbHVnaW46OmluaXRp
YWxpemUpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRGV2aWNlT3Jp
ZW50YXRpb25VcGRhdGVQcm92aWRlci5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYkRldmljZU9y
aWVudGF0aW9uVXBkYXRlUHJvdmlkZXI6OldlYkRldmljZU9yaWVudGF0aW9uVXBkYXRlUHJvdmlk
ZXIpOgorICAgICAgICAoV2ViS2l0OjpXZWJEZXZpY2VPcmllbnRhdGlvblVwZGF0ZVByb3ZpZGVy
OjpkZXZpY2VPcmllbnRhdGlvbkNoYW5nZWQpOgorICAgICAgICAoV2ViS2l0OjpXZWJEZXZpY2VP
cmllbnRhdGlvblVwZGF0ZVByb3ZpZGVyOjpkZXZpY2VNb3Rpb25DaGFuZ2VkKToKKyAgICAgICAg
KiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlBlcm1pc3Npb25Db250cm9sbGVyLmNwcDoK
KyAgICAgICAgKFdlYktpdDo6V2ViUGVybWlzc2lvbkNvbnRyb2xsZXI6OldlYlBlcm1pc3Npb25D
b250cm9sbGVyKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlNwZWVj
aFJlY29nbml0aW9uQ29ubmVjdGlvbi5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlNwZWVjaFJl
Y29nbml0aW9uQ29ubmVjdGlvbjo6cmVnaXN0ZXJDbGllbnQpOgorICAgICAgICAqIFdlYlByb2Nl
c3MvV2ViUGFnZS9Db2NvYS9XZWJQYWdlQ29jb2EubW06CisgICAgICAgIChXZWJLaXQ6OldlYlBh
Z2U6OnNldFJlbW90ZU9iamVjdFJlZ2lzdHJ5KToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBh
Z2UvRmluZENvbnRyb2xsZXIuY3BwOgorICAgICAgICAoV2ViS2l0OjpGaW5kQ29udHJvbGxlcjo6
ZHJhd1JlY3QpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9JUENUZXN0aW5nQVBJLmNw
cDoKKyAgICAgICAgKFdlYktpdDo6SVBDVGVzdGluZ0FQSTo6SlNJUEM6OkpTSVBDKToKKyAgICAg
ICAgKFdlYktpdDo6SVBDVGVzdGluZ0FQSTo6SlNNZXNzYWdlTGlzdGVuZXI6OkpTTWVzc2FnZUxp
c3RlbmVyKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvUmVtb3RlTGF5ZXJUcmVlL1Jl
bW90ZUxheWVyVHJlZURpc3BsYXlSZWZyZXNoTW9uaXRvci5tbToKKyAgICAgICAgKFdlYktpdDo6
UmVtb3RlTGF5ZXJUcmVlRGlzcGxheVJlZnJlc2hNb25pdG9yOjpSZW1vdGVMYXllclRyZWVEaXNw
bGF5UmVmcmVzaE1vbml0b3IpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVMYXllclRyZWVEaXNw
bGF5UmVmcmVzaE1vbml0b3I6OnVwZGF0ZURyYXdpbmdBcmVhKToKKyAgICAgICAgKiBXZWJQcm9j
ZXNzL1dlYlBhZ2UvV2ViQ29udGV4dE1lbnUuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJDb250
ZXh0TWVudTo6V2ViQ29udGV4dE1lbnUpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9X
ZWJGcmFtZS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYkZyYW1lOjppbml0V2l0aENvcmVNYWlu
RnJhbWUpOgorICAgICAgICAoV2ViS2l0OjpXZWJGcmFtZTo6Y3JlYXRlU3ViZnJhbWUpOgorICAg
ICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJGcmFtZS5oOgorICAgICAgICAoV2ViS2l0OjpX
ZWJGcmFtZTo6c2V0TG9hZExpc3RlbmVyKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2Uv
V2ViUGFnZS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OnNldEFjdGl2ZURhdGFMaXN0
U3VnZ2VzdGlvblBpY2tlcik6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OnNldEFjdGl2ZURh
dGVUaW1lQ2hvb3Nlcik6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OnN0YXJ0VGV4dE1hbmlw
dWxhdGlvbnMpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjpyZXF1ZXN0VGV4dFJlY29nbml0
aW9uKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvaW9zL1dlYlBhZ2VJT1MubW06Cisg
ICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OmRpZEZpbmlzaENvbnRlbnRDaGFuZ2VPYnNlcnZpbmcp
OgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjpzZWxlY3RUZXh0V2l0aEdyYW51bGFyaXR5QXRQ
b2ludCk6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9XZWJQYWdlTWFjLm1tOgor
ICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjpjcmVhdGVQREZIVUQpOgorICAgICAgICAqIFdlYlBy
b2Nlc3MvV2ViU3RvcmFnZS9TdG9yYWdlQXJlYUltcGwuY3BwOgorICAgICAgICAoV2ViS2l0OjpT
dG9yYWdlQXJlYUltcGw6OlN0b3JhZ2VBcmVhSW1wbCk6CisgICAgICAgICogV2ViUHJvY2Vzcy9j
b2NvYS9BdWRpb1Nlc3Npb25Sb3V0aW5nQXJiaXRyYXRvci5jcHA6CisgICAgICAgIChXZWJLaXQ6
OkF1ZGlvU2Vzc2lvblJvdXRpbmdBcmJpdHJhdG9yOjpBdWRpb1Nlc3Npb25Sb3V0aW5nQXJiaXRy
YXRvcik6CisgICAgICAgICogV2ViUHJvY2Vzcy9jb2NvYS9WaWRlb0Z1bGxzY3JlZW5NYW5hZ2Vy
Lm1tOgorICAgICAgICAoV2ViS2l0OjpWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyOjplbnRlclZpZGVv
RnVsbHNjcmVlbkZvclZpZGVvRWxlbWVudCk6CisKIDIwMjEtMTAtMTMgIEFsZXggQ2hyaXN0ZW5z
ZW4gIDxhY2hyaXN0ZW5zZW5Ad2Via2l0Lm9yZz4KIAogICAgICAgICBQcmVwYXJlIGFkYXR0cmli
dXRpb25kIENvbm5lY3Rpb24gYW5kIElQQyBjb2RlIGZvciByZXVzZSB3aXRoIHdlYnB1c2hkCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXRM
ZWdhY3kvQ2hhbmdlTG9nCmluZGV4IGNmYTE5YzcwNzA4Y2EyYTU2ZWIwNDEyNDU3Mzc4YTAwODUz
M2Q3YzMuLmFjNTZjZWFkNGVkOTMwMTJkMGMxNDMzMGRmYjg4OTMxNDgwMGQ1MWUgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdh
Y3kvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIwMjEtMTAtMTMgIENocmlzIER1bWV6ICA8
Y2R1bWV6QGFwcGxlLmNvbT4KKworICAgICAgICBEcm9wIG1ha2VXZWFrUHRyKCkgYW5kIHVzZSBX
ZWFrUHRyIHsgfSBkaXJlY3RseQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MjMxNjc5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgRGFyaW4gQWRsZXIuCisK
KyAgICAgICAgKiBTdG9yYWdlL0luUHJvY2Vzc0lEQlNlcnZlci5jcHA6CisgICAgICAgIChzdG9y
YWdlUXVvdGFNYW5hZ2VyU3BhY2VSZXF1ZXN0ZXIpOgorICAgICAgICAqIFdlYkNvcmVTdXBwb3J0
L1BhZ2VTdG9yYWdlU2Vzc2lvblByb3ZpZGVyLmg6CisgICAgICAgICogV2ViQ29yZVN1cHBvcnQv
V2ViQnJvYWRjYXN0Q2hhbm5lbFJlZ2lzdHJ5LmNwcDoKKyAgICAgICAgKFdlYkJyb2FkY2FzdENo
YW5uZWxSZWdpc3RyeTo6Z2V0T3JDcmVhdGUpOgorCiAyMDIxLTEwLTAxICBJYW4gQW5kZXJzb24g
IDxpYW5hQGFwcGxlLmNvbT4KIAogICAgICAgICBXZWJLaXRMZWdhY3kncyBtb2R1bGUgbWFwIGZp
bGVzIGRvbid0IGdldCBpbnN0YWxsZWQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kv
bWFjL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxvZwppbmRleCAw
NWQ3YmNiZDYwYzYzMjEwYzBkODI1MGIyNDU2Y2I3MDNlY2RmMjE3Li5mNjU5YTVlZTAxYTk0Mzhk
ODRhZTAxYWJiNTBhNTU5ZTM4ZjBhZWU0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5
L21hYy9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9nCkBA
IC0xLDMgKzEsMTMgQEAKKzIwMjEtMTAtMTMgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNv
bT4KKworICAgICAgICBEcm9wIG1ha2VXZWFrUHRyKCkgYW5kIHVzZSBXZWFrUHRyIHsgfSBkaXJl
Y3RseQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjMx
Njc5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgRGFyaW4gQWRsZXIuCisKKyAgICAgICAgKiBXZWJD
b3JlU3VwcG9ydC9XZWJFZGl0b3JDbGllbnQubW06CisgICAgICAgIChXZWJFZGl0b3JDbGllbnQ6
OnJlcXVlc3RDYW5kaWRhdGVzRm9yU2VsZWN0aW9uKToKKwogMjAyMS0xMC0xMyAgQWxleCBDaHJp
c3RlbnNlbiAgPGFjaHJpc3RlbnNlbkB3ZWJraXQub3JnPgogCiAgICAgICAgIFJlbW92ZSBXVEY6
OlZhcmlhbnQgYW5kIFdURjo6Z2V0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9XZWFrSGFz
aE1hcC5oIGIvU291cmNlL1dURi93dGYvV2Vha0hhc2hNYXAuaAppbmRleCA3MTRhNTBkNmJkY2Y3
YmZiNDdjMzU5ZTQxYWZjNjZmZWQwYzg4ZjY2Li5jMzZmMzVkNzEyYTExMmRiNzFhODU1YjRjYjFh
YTQ3YjVmMWI4OWEwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9XZWFrSGFzaE1hcC5oCisr
KyBiL1NvdXJjZS9XVEYvd3RmL1dlYWtIYXNoTWFwLmgKQEAgLTM1MSw3ICszNTEsNyBAQCBwcml2
YXRlOgogICAgIHRlbXBsYXRlIDx0eXBlbmFtZSBUPgogICAgIHN0YXRpYyBSZWZUeXBlIG1ha2VL
ZXlJbXBsKGNvbnN0IFQmIGtleSkKICAgICB7Ci0gICAgICAgIHJldHVybiAqbWFrZVdlYWtQdHI8
S2V5VHlwZT4oY29uc3RfY2FzdDxUJj4oa2V5KSkubV9pbXBsOworICAgICAgICByZXR1cm4gKmtl
eS53ZWFrUHRyRmFjdG9yeSgpLnRlbXBsYXRlIGNyZWF0ZVdlYWtQdHI8VD4oY29uc3RfY2FzdDxU
Jj4oa2V5KSkubV9pbXBsOwogICAgIH0KIAogICAgIHRlbXBsYXRlIDx0eXBlbmFtZSBUPgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dURi93dGYvV2Vha0hhc2hTZXQuaCBiL1NvdXJjZS9XVEYvd3RmL1dl
YWtIYXNoU2V0LmgKaW5kZXggZWU3YjMyOWJmNzMzODU0YjEzZjNkODVkMzcxMzk5YjJhZDI1OTFh
My4uOTljMjM4ZGNiNThiYjFjMDQ0OTIyYzlmNDA5MmZiY2E2M2UxZjdlZiAxMDA2NDQKLS0tIGEv
U291cmNlL1dURi93dGYvV2Vha0hhc2hTZXQuaAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9XZWFrSGFz
aFNldC5oCkBAIC05MSw3ICs5MSw3IEBAIHB1YmxpYzoKICAgICB0ZW1wbGF0ZSA8dHlwZW5hbWUg
VT4KICAgICBBZGRSZXN1bHQgYWRkKGNvbnN0IFUmIHZhbHVlKQogICAgIHsKLSAgICAgICAgcmV0
dXJuIG1fc2V0LmFkZCgqbWFrZVdlYWtQdHI8VD4oY29uc3RfY2FzdDxVJj4odmFsdWUpKS5tX2lt
cGwpOworICAgICAgICByZXR1cm4gbV9zZXQuYWRkKCpzdGF0aWNfY2FzdDxjb25zdCBUJj4odmFs
dWUpLndlYWtQdHJGYWN0b3J5KCkudGVtcGxhdGUgY3JlYXRlV2Vha1B0cjxUPihjb25zdF9jYXN0
PFUmPih2YWx1ZSkpLm1faW1wbCk7CiAgICAgfQogCiAgICAgdGVtcGxhdGUgPHR5cGVuYW1lIFU+
CkBAIC0xNjksNyArMTY5LDcgQEAgc3RydWN0IE1hcHBlcjxNYXBGdW5jdGlvbiwgY29uc3QgV2Vh
a0hhc2hTZXQ8VD4gJiwgdm9pZD4gewogdGVtcGxhdGU8dHlwZW5hbWUgVD4KIGlubGluZSBhdXRv
IGNvcHlUb1ZlY3Rvcihjb25zdCBXZWFrSGFzaFNldDxUPiYgY29sbGVjdGlvbikgLT4gVmVjdG9y
PFdlYWtQdHI8VD4+CiB7Ci0gICAgcmV0dXJuIFdURjo6bWFwKGNvbGxlY3Rpb24sIFtdIChhdXRv
JiB2KSAtPiBXZWFrUHRyPFQ+IHsgcmV0dXJuIG1ha2VXZWFrUHRyPFQ+KHYpOyB9KTsKKyAgICBy
ZXR1cm4gV1RGOjptYXAoY29sbGVjdGlvbiwgW10gKGF1dG8mIHYpIC0+IFdlYWtQdHI8VD4geyBy
ZXR1cm4gV2Vha1B0cjxUPiB7IHYgfTsgfSk7CiB9CiAKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dU
Ri93dGYvV2Vha1B0ci5oIGIvU291cmNlL1dURi93dGYvV2Vha1B0ci5oCmluZGV4IDhiYTcyODdl
OTYwNDExODAwNzZmMDU3ZTBiNzMzN2I1MThkMzZjZmUuLmEzOWZmNWE3MWQwZTMwYzkwNzI5MWFh
MTUyNzcwM2M2NmVjNDBmMDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL1dlYWtQdHIuaAor
KysgYi9Tb3VyY2UvV1RGL3d0Zi9XZWFrUHRyLmgKQEAgLTI0OSw3ICsyNDksNyBAQCBwcml2YXRl
OgogfTsKIAogLy8gV2UgdXNlIGxhenkgaW5pdGlhbGl6YXRpb24gb2YgdGhlIFdlYWtQdHJGYWN0
b3J5IGJ5IGRlZmF1bHQgdG8gYXZvaWQgdW5uZWNlc3NhcnkgaW5pdGlhbGl6YXRpb24uIEVhZ2Vy
Ci0vLyBpbml0aWFsaXphdGlvbiBpcyBob3dldmVyIHVzZWZ1bCBpZiB5b3UgcGxhbiB0byBjYWxs
IG1ha2VXZWFrUHRyKCkgZnJvbSBvdGhlciB0aHJlYWRzLgorLy8gaW5pdGlhbGl6YXRpb24gaXMg
aG93ZXZlciB1c2VmdWwgaWYgeW91IHBsYW4gdG8gY2FsbCBjb25zdHJ1Y3QgV2Vha1B0cnMgZnJv
bSBvdGhlciB0aHJlYWRzLgogZW51bSBjbGFzcyBXZWFrUHRyRmFjdG9yeUluaXRpYWxpemF0aW9u
IHsgTGF6eSwgRWFnZXIgfTsKIAogdGVtcGxhdGU8dHlwZW5hbWUgVCwgV2Vha1B0ckZhY3RvcnlJ
bml0aWFsaXphdGlvbiBpbml0aWFsaXphdGlvbk1vZGUgPSBXZWFrUHRyRmFjdG9yeUluaXRpYWxp
emF0aW9uOjpMYXp5LCB0eXBlbmFtZSBDb3VudGVyID0gRW1wdHlDb3VudGVyPiBjbGFzcyBDYW5N
YWtlV2Vha1B0ciB7CkBAIC0zMDMsMzIgKzMwMyw2IEBAIHRlbXBsYXRlPHR5cGVuYW1lIFQsIHR5
cGVuYW1lIENvdW50ZXI+IHRlbXBsYXRlPHR5cGVuYW1lIFU+IGlubGluZSBXZWFrUHRyPFQsIENv
CiAgICAgcmV0dXJuICp0aGlzOwogfQogCi0vLyBtYWtlV2Vha1B0cigpIGlzIGRlcHJlY2F0ZWQu
IFVzZSBXZWFrUHRyIHsgb2JqZWN0IH0gZGlyZWN0bHkgaW5zdGVhZC4KLXRlbXBsYXRlPHR5cGVu
YW1lIFQsIHR5cGVuYW1lID0gc3RkOjplbmFibGVfaWZfdDwhSXNTbWFydFB0cjxUPjo6dmFsdWU+
PiBpbmxpbmUgYXV0byBtYWtlV2Vha1B0cihUJiBvYmplY3QsIEVuYWJsZVdlYWtQdHJUaHJlYWRp
bmdBc3NlcnRpb25zIGVuYWJsZVdlYWtQdHJUaHJlYWRpbmdBc3NlcnRpb25zID0gRW5hYmxlV2Vh
a1B0clRocmVhZGluZ0Fzc2VydGlvbnM6OlllcykKLXsKLSAgICByZXR1cm4gb2JqZWN0LndlYWtQ
dHJGYWN0b3J5KCkudGVtcGxhdGUgY3JlYXRlV2Vha1B0cjxUPihvYmplY3QsIGVuYWJsZVdlYWtQ
dHJUaHJlYWRpbmdBc3NlcnRpb25zKTsKLX0KLQotLy8gbWFrZVdlYWtQdHIoKSBpcyBkZXByZWNh
dGVkLiBVc2UgV2Vha1B0ciB7IG9iamVjdCB9IGRpcmVjdGx5IGluc3RlYWQuCi10ZW1wbGF0ZTx0
eXBlbmFtZSBULCB0eXBlbmFtZSA9IHN0ZDo6ZW5hYmxlX2lmX3Q8IUlzU21hcnRQdHI8VD46OnZh
bHVlPj4gaW5saW5lIGF1dG8gbWFrZVdlYWtQdHIoVCogcHRyLCBFbmFibGVXZWFrUHRyVGhyZWFk
aW5nQXNzZXJ0aW9ucyBlbmFibGVXZWFrUHRyVGhyZWFkaW5nQXNzZXJ0aW9ucyA9IEVuYWJsZVdl
YWtQdHJUaHJlYWRpbmdBc3NlcnRpb25zOjpZZXMpIC0+IGRlY2x0eXBlKG1ha2VXZWFrUHRyKCpw
dHIpKQotewotICAgIGlmICghcHRyKQotICAgICAgICByZXR1cm4geyB9OwotICAgIHJldHVybiBt
YWtlV2Vha1B0cigqcHRyLCBlbmFibGVXZWFrUHRyVGhyZWFkaW5nQXNzZXJ0aW9ucyk7Ci19Ci0K
LS8vIG1ha2VXZWFrUHRyKCkgaXMgZGVwcmVjYXRlZC4gVXNlIFdlYWtQdHIgeyBvYmplY3QgfSBk
aXJlY3RseSBpbnN0ZWFkLgotdGVtcGxhdGU8dHlwZW5hbWUgVCwgdHlwZW5hbWUgPSBzdGQ6OmVu
YWJsZV9pZl90PCFJc1NtYXJ0UHRyPFQ+Ojp2YWx1ZT4+IGlubGluZSBhdXRvIG1ha2VXZWFrUHRy
KGNvbnN0IFJlZjxUPiYgb2JqZWN0LCBFbmFibGVXZWFrUHRyVGhyZWFkaW5nQXNzZXJ0aW9ucyBl
bmFibGVXZWFrUHRyVGhyZWFkaW5nQXNzZXJ0aW9ucyA9IEVuYWJsZVdlYWtQdHJUaHJlYWRpbmdB
c3NlcnRpb25zOjpZZXMpCi17Ci0gICAgcmV0dXJuIG1ha2VXZWFrUHRyKG9iamVjdC5nZXQoKSwg
ZW5hYmxlV2Vha1B0clRocmVhZGluZ0Fzc2VydGlvbnMpOwotfQotCi0vLyBtYWtlV2Vha1B0cigp
IGlzIGRlcHJlY2F0ZWQuIFVzZSBXZWFrUHRyIHsgb2JqZWN0IH0gZGlyZWN0bHkgaW5zdGVhZC4K
LXRlbXBsYXRlPHR5cGVuYW1lIFQsIHR5cGVuYW1lID0gc3RkOjplbmFibGVfaWZfdDwhSXNTbWFy
dFB0cjxUPjo6dmFsdWU+PiBpbmxpbmUgYXV0byBtYWtlV2Vha1B0cihjb25zdCBSZWZQdHI8VD4m
IG9iamVjdCwgRW5hYmxlV2Vha1B0clRocmVhZGluZ0Fzc2VydGlvbnMgZW5hYmxlV2Vha1B0clRo
cmVhZGluZ0Fzc2VydGlvbnMgPSBFbmFibGVXZWFrUHRyVGhyZWFkaW5nQXNzZXJ0aW9uczo6WWVz
KQotewotICAgIHJldHVybiBtYWtlV2Vha1B0cihvYmplY3QuZ2V0KCksIGVuYWJsZVdlYWtQdHJU
aHJlYWRpbmdBc3NlcnRpb25zKTsKLX0KLQogdGVtcGxhdGUgPHR5cGVuYW1lIFQsIHR5cGVuYW1l
IENvdW50ZXI+CiBzdHJ1Y3QgR2V0UHRySGVscGVyPFdlYWtQdHI8VCwgQ291bnRlcj4+IHsKICAg
ICB1c2luZyBQdHJUeXBlID0gVCo7CkBAIC0zODksNCArMzYzLDMgQEAgdXNpbmcgV1RGOjpFbmFi
bGVXZWFrUHRyVGhyZWFkaW5nQXNzZXJ0aW9uczsKIHVzaW5nIFdURjo6V2Vha1B0cjsKIHVzaW5n
IFdURjo6V2Vha1B0ckZhY3Rvcnk7CiB1c2luZyBXVEY6OldlYWtQdHJGYWN0b3J5SW5pdGlhbGl6
YXRpb247Ci11c2luZyBXVEY6Om1ha2VXZWFrUHRyOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL0ZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVtU3lu
Y0FjY2Vzc0hhbmRsZS5jcHAKaW5kZXggZDIyZTIwODBiNmNjNjQ3YzNlNWJmZTkxZWM1MjQ3NmNh
YTlkNDg5Yy4uMmJjZjc0YTA4N2I4Mzk3ZjMwYTIyNjM2ZDgwMmUwYzFlOTA2ODJhYiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL0ZpbGVTeXN0ZW1T
eW5jQWNjZXNzSGFuZGxlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0
ZW1hY2Nlc3MvRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGUuY3BwCkBAIC01NSw3ICs1NSw3IEBA
IEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlOjp+RmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGUo
KQogdm9pZCBGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZTo6dHJ1bmNhdGUodW5zaWduZWQgbG9u
ZyBsb25nIHNpemUsIERPTVByb21pc2VEZWZlcnJlZDx2b2lkPiYmIHByb21pc2UpCiB7CiAgICAg
bV9wZW5kaW5nT3BlcmF0aW9uQ291bnQrKzsKLSAgICBtX3NvdXJjZS0+dHJ1bmNhdGUobV9pZGVu
dGlmaWVyLCBzaXplLCBbd2Vha1RoaXMgPSBtYWtlV2Vha1B0cigqdGhpcyksIHByb21pc2UgPSBX
VEZNb3ZlKHByb21pc2UpXShhdXRvIHJlc3VsdCkgbXV0YWJsZSB7CisgICAgbV9zb3VyY2UtPnRy
dW5jYXRlKG1faWRlbnRpZmllciwgc2l6ZSwgW3dlYWtUaGlzID0gV2Vha1B0ciB7ICp0aGlzIH0s
IHByb21pc2UgPSBXVEZNb3ZlKHByb21pc2UpXShhdXRvIHJlc3VsdCkgbXV0YWJsZSB7CiAgICAg
ICAgIGlmICh3ZWFrVGhpcykKICAgICAgICAgICAgIHdlYWtUaGlzLT5tX3BlbmRpbmdPcGVyYXRp
b25Db3VudC0tOwogCkBAIC02Niw3ICs2Niw3IEBAIHZvaWQgRmlsZVN5c3RlbVN5bmNBY2Nlc3NI
YW5kbGU6OnRydW5jYXRlKHVuc2lnbmVkIGxvbmcgbG9uZyBzaXplLCBET01Qcm9taXNlRGVmCiB2
b2lkIEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlOjpnZXRTaXplKERPTVByb21pc2VEZWZlcnJl
ZDxJRExVbnNpZ25lZExvbmdMb25nPiYmIHByb21pc2UpCiB7CiAgICAgbV9wZW5kaW5nT3BlcmF0
aW9uQ291bnQrKzsKLSAgICBtX3NvdXJjZS0+Z2V0U2l6ZShtX2lkZW50aWZpZXIsIFt3ZWFrVGhp
cyA9IG1ha2VXZWFrUHRyKCp0aGlzKSwgcHJvbWlzZSA9IFdURk1vdmUocHJvbWlzZSldKGF1dG8g
cmVzdWx0KSBtdXRhYmxlIHsKKyAgICBtX3NvdXJjZS0+Z2V0U2l6ZShtX2lkZW50aWZpZXIsIFt3
ZWFrVGhpcyA9IFdlYWtQdHIgeyAqdGhpcyB9LCBwcm9taXNlID0gV1RGTW92ZShwcm9taXNlKV0o
YXV0byByZXN1bHQpIG11dGFibGUgewogICAgICAgICBpZiAod2Vha1RoaXMpCiAgICAgICAgICAg
ICB3ZWFrVGhpcy0+bV9wZW5kaW5nT3BlcmF0aW9uQ291bnQtLTsKIApAQCAtNzcsNyArNzcsNyBA
QCB2b2lkIEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlOjpnZXRTaXplKERPTVByb21pc2VEZWZl
cnJlZDxJRExVbnNpZ25lZExvbmdMb25nPgogdm9pZCBGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRs
ZTo6Zmx1c2goRE9NUHJvbWlzZURlZmVycmVkPHZvaWQ+JiYgcHJvbWlzZSkKIHsKICAgICBtX3Bl
bmRpbmdPcGVyYXRpb25Db3VudCsrOwotICAgIG1fc291cmNlLT5mbHVzaChtX2lkZW50aWZpZXIs
IFt3ZWFrVGhpcyA9IG1ha2VXZWFrUHRyKCp0aGlzKSwgcHJvbWlzZSA9IFdURk1vdmUocHJvbWlz
ZSldKGF1dG8gcmVzdWx0KSBtdXRhYmxlIHsKKyAgICBtX3NvdXJjZS0+Zmx1c2gobV9pZGVudGlm
aWVyLCBbd2Vha1RoaXMgPSBXZWFrUHRyIHsgKnRoaXMgfSwgcHJvbWlzZSA9IFdURk1vdmUocHJv
bWlzZSldKGF1dG8gcmVzdWx0KSBtdXRhYmxlIHsKICAgICAgICAgaWYgKHdlYWtUaGlzKQogICAg
ICAgICAgICAgd2Vha1RoaXMtPm1fcGVuZGluZ09wZXJhdGlvbkNvdW50LS07CiAKQEAgLTkxLDcg
KzkxLDcgQEAgdm9pZCBGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZTo6Y2xvc2UoRE9NUHJvbWlz
ZURlZmVycmVkPHZvaWQ+JiYgcHJvbWlzZSkKICAgICAgICAgcmV0dXJuIHByb21pc2UucmVqZWN0
KEV4Y2VwdGlvbiB7IEludmFsaWRTdGF0ZUVycm9yIH0pOwogCiAgICAgbV9wZW5kaW5nT3BlcmF0
aW9uQ291bnQrKzsKLSAgICBtX3NvdXJjZS0+Y2xvc2UobV9pZGVudGlmaWVyLCBbd2Vha1RoaXMg
PSBtYWtlV2Vha1B0cigqdGhpcyksIHByb21pc2UgPSBXVEZNb3ZlKHByb21pc2UpXShhdXRvIHJl
c3VsdCkgbXV0YWJsZSB7CisgICAgbV9zb3VyY2UtPmNsb3NlKG1faWRlbnRpZmllciwgW3dlYWtU
aGlzID0gV2Vha1B0ciB7ICp0aGlzIH0sIHByb21pc2UgPSBXVEZNb3ZlKHByb21pc2UpXShhdXRv
IHJlc3VsdCkgbXV0YWJsZSB7CiAgICAgICAgIGlmICh3ZWFrVGhpcykgewogICAgICAgICAgICAg
d2Vha1RoaXMtPm1fcGVuZGluZ09wZXJhdGlvbkNvdW50LS07CiAgICAgICAgICAgICB3ZWFrVGhp
cy0+ZGlkQ2xvc2UoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkv
QVhPYmplY3RDYWNoZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FYT2JqZWN0
Q2FjaGUuY3BwCmluZGV4IGY0ZGRjZWZlYmJlM2ZkZDUwNTA0NjVkNTc2MzllMGQyMTRmNDI2ZGMu
LjRkMWI0YjIxODA3OTE4MzczNmVkMzljMGY4MGEwMDY3YjU2YTUxNGIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhPYmplY3RDYWNoZS5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BWE9iamVjdENhY2hlLmNwcApAQCAtMTIxNiwxNCArMTIx
NiwxNiBAQCB2b2lkIEFYT2JqZWN0Q2FjaGU6OmRlZmVyRm9jdXNlZFVJRWxlbWVudENoYW5nZUlm
TmVlZGVkKE5vZGUqIG9sZE5vZGUsIE5vZGUqIG5ldwogCiB2b2lkIEFYT2JqZWN0Q2FjaGU6OmRl
ZmVyTWVudUxpc3RWYWx1ZUNoYW5nZShFbGVtZW50KiBlbGVtZW50KQogewotICAgIG1fZGVmZXJy
ZWRNZW51TGlzdENoYW5nZS5hZGQoZWxlbWVudCk7CisgICAgaWYgKGVsZW1lbnQpCisgICAgICAg
IG1fZGVmZXJyZWRNZW51TGlzdENoYW5nZS5hZGQoKmVsZW1lbnQpOwogICAgIGlmICghbV9wZXJm
b3JtQ2FjaGVVcGRhdGVUaW1lci5pc0FjdGl2ZSgpKQogICAgICAgICBtX3BlcmZvcm1DYWNoZVVw
ZGF0ZVRpbWVyLnN0YXJ0T25lU2hvdCgwX3MpOwogfQogCiB2b2lkIEFYT2JqZWN0Q2FjaGU6OmRl
ZmVyTW9kYWxDaGFuZ2UoRWxlbWVudCogZWxlbWVudCkKIHsKLSAgICBtX2RlZmVycmVkTW9kYWxD
aGFuZ2VkTGlzdC5hZGQoZWxlbWVudCk7CisgICAgaWYgKGVsZW1lbnQpCisgICAgICAgIG1fZGVm
ZXJyZWRNb2RhbENoYW5nZWRMaXN0LmFkZCgqZWxlbWVudCk7CiAgICAgaWYgKCFtX3BlcmZvcm1D
YWNoZVVwZGF0ZVRpbWVyLmlzQWN0aXZlKCkpCiAgICAgICAgIG1fcGVyZm9ybUNhY2hlVXBkYXRl
VGltZXIuc3RhcnRPbmVTaG90KDBfcyk7CiB9CkBAIC0zMzU2LDcgKzMzNTgsNyBAQCB2b2lkIEFY
T2JqZWN0Q2FjaGU6OmRlZmVyUmVjb21wdXRlSXNJZ25vcmVkSWZOZWVkZWQoRWxlbWVudCogZWxl
bWVudCkKICAgICAgICAgcmV0dXJuOwogICAgIAogICAgIGlmIChyZW5kZXJlck5lZWRzRGVmZXJy
ZWRVcGRhdGUoKmVsZW1lbnQtPnJlbmRlcmVyKCkpKSB7Ci0gICAgICAgIG1fZGVmZXJyZWRSZWNv
bXB1dGVJc0lnbm9yZWRMaXN0LmFkZChlbGVtZW50KTsKKyAgICAgICAgbV9kZWZlcnJlZFJlY29t
cHV0ZUlzSWdub3JlZExpc3QuYWRkKCplbGVtZW50KTsKICAgICAgICAgcmV0dXJuOwogICAgIH0K
ICAgICByZWNvbXB1dGVJc0lnbm9yZWQoZWxlbWVudC0+cmVuZGVyZXIoKSk7CkBAIC0zMzY3LDcg
KzMzNjksNyBAQCB2b2lkIEFYT2JqZWN0Q2FjaGU6OmRlZmVyUmVjb21wdXRlSXNJZ25vcmVkKEVs
ZW1lbnQqIGVsZW1lbnQpCiAgICAgaWYgKCFub2RlQW5kUmVuZGVyZXJBcmVWYWxpZChlbGVtZW50
KSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgbV9kZWZlcnJlZFJlY29tcHV0ZUlzSWdub3JlZExp
c3QuYWRkKGVsZW1lbnQpOworICAgIG1fZGVmZXJyZWRSZWNvbXB1dGVJc0lnbm9yZWRMaXN0LmFk
ZCgqZWxlbWVudCk7CiB9CiAKIHZvaWQgQVhPYmplY3RDYWNoZTo6ZGVmZXJUZXh0Q2hhbmdlZElm
TmVlZGVkKE5vZGUqIG5vZGUpCkBAIC0zMzg4LDcgKzMzOTAsNyBAQCB2b2lkIEFYT2JqZWN0Q2Fj
aGU6OmRlZmVyU2VsZWN0ZWRDaGlsZHJlbkNoYW5nZWRJZk5lZWRlZChFbGVtZW50JiBzZWxlY3RF
bGVtZW50KQogICAgICAgICByZXR1cm47CiAKICAgICBpZiAocmVuZGVyZXJOZWVkc0RlZmVycmVk
VXBkYXRlKCpzZWxlY3RFbGVtZW50LnJlbmRlcmVyKCkpKSB7Ci0gICAgICAgIG1fZGVmZXJyZWRT
ZWxlY3RlZENoaWxkcmVkQ2hhbmdlZExpc3QuYWRkKCZzZWxlY3RFbGVtZW50KTsKKyAgICAgICAg
bV9kZWZlcnJlZFNlbGVjdGVkQ2hpbGRyZWRDaGFuZ2VkTGlzdC5hZGQoc2VsZWN0RWxlbWVudCk7
CiAgICAgICAgIHJldHVybjsKICAgICB9CiAgICAgc2VsZWN0ZWRDaGlsZHJlbkNoYW5nZWQoJnNl
bGVjdEVsZW1lbnQpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKaW5kZXggODkwZWNlMDU5NDhkOGJh
NzU2YmE5NjdiYjM2NDcxZjNmNWEwMjhjMy4uNzI0MmJjMjNkMjc1YWRkYWRmNTBkOWM2Mjk2Mzdh
NzFlOTYxMjQwMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCkBAIC03NTgxLDcgKzc1ODEsNyBA
QCB2b2lkIERvY3VtZW50OjpkaWRBc3NvY2lhdGVGb3JtQ29udHJvbChFbGVtZW50JiBlbGVtZW50
KQogICAgIGlmICghcGFnZSB8fCAhcGFnZS0+Y2hyb21lKCkuY2xpZW50KCkuc2hvdWxkTm90aWZ5
T25Gb3JtQ2hhbmdlcygpKQogICAgICAgICByZXR1cm47CiAKLSAgICBhdXRvIGlzTmV3RW50cnkg
PSBtX2Fzc29jaWF0ZWRGb3JtQ29udHJvbHMuYWRkKCZlbGVtZW50KS5pc05ld0VudHJ5OworICAg
IGF1dG8gaXNOZXdFbnRyeSA9IG1fYXNzb2NpYXRlZEZvcm1Db250cm9scy5hZGQoZWxlbWVudCku
aXNOZXdFbnRyeTsKICAgICBpZiAoaXNOZXdFbnRyeSAmJiAhbV9kaWRBc3NvY2lhdGVGb3JtQ29u
dHJvbHNUaW1lci5pc0FjdGl2ZSgpKQogICAgICAgICBtX2RpZEFzc29jaWF0ZUZvcm1Db250cm9s
c1RpbWVyLnN0YXJ0T25lU2hvdChpc1RvcERvY3VtZW50KCkgfHwgaGFzSGFkVXNlckludGVyYWN0
aW9uKCkgPyAwX3MgOiAxX3MpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0Vs
ZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuY3BwCmluZGV4IDJlMjQ1YzI1
NDVlMTg5ZTliMWYwZjZjYzJmZjM5YWM5YTE0N2FjMmYuLjkyODllMGNjZTY2NWNiMTVlNTg4ZDVm
M2Y5ZmUxMzNhYmI0YzNjMzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5jcHAKQEAgLTIzNTQsNyArMjM1
NCw3IEBAIHZvaWQgRWxlbWVudDo6YWRkU2hhZG93Um9vdChSZWY8U2hhZG93Um9vdD4mJiBuZXdT
aGFkb3dSb290KQogCiAgICAgICAgIGVuc3VyZUVsZW1lbnRSYXJlRGF0YSgpLnNldFNoYWRvd1Jv
b3QoV1RGTW92ZShuZXdTaGFkb3dSb290KSk7CiAKLSAgICAgICAgc2hhZG93Um9vdC5zZXRIb3N0
KG1ha2VXZWFrUHRyPEVsZW1lbnQ+KHRoaXMpKTsKKyAgICAgICAgc2hhZG93Um9vdC5zZXRIb3N0
KCp0aGlzKTsKICAgICAgICAgc2hhZG93Um9vdC5zZXRQYXJlbnRUcmVlU2NvcGUodHJlZVNjb3Bl
KCkpOwogCiAjaWYgQVNTRVJUX0VOQUJMRUQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Rv
bS9FdmVudExvb3AuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL0V2ZW50TG9vcC5jcHAKaW5kZXgg
ZjFlMTQwMTliZGU4NzY5NjM4NTVlYTI0ZWZkMmRlYmRjMTZiYWI2Zi4uMWU5NWMyNTdhMzE0ODc5
YzZmMjNiMDdhNzIwMzA3YTQ2N2ZkMjJmZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9t
L0V2ZW50TG9vcC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0V2ZW50TG9vcC5jcHAKQEAg
LTExNSw3ICsxMTUsNyBAQCB2b2lkIEV2ZW50TG9vcDo6cnVuKCkKICAgICAgICAgICAgICAgICBj
b250aW51ZTsKIAogICAgICAgICAgICAgaWYgKGdyb3VwLT5pc1N1c3BlbmRlZCgpKSB7Ci0gICAg
ICAgICAgICAgICAgbV9ncm91cHNXaXRoU3VzcGVuZWRUYXNrcy5hZGQoZ3JvdXApOworICAgICAg
ICAgICAgICAgIG1fZ3JvdXBzV2l0aFN1c3BlbmVkVGFza3MuYWRkKCpncm91cCk7CiAgICAgICAg
ICAgICAgICAgcmVtYWluaW5nVGFza3MuYXBwZW5kKFdURk1vdmUodGFzaykpOwogICAgICAgICAg
ICAgICAgIGNvbnRpbnVlOwogICAgICAgICAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvZG9tL011dGF0aW9uT2JzZXJ2ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL011dGF0aW9u
T2JzZXJ2ZXIuY3BwCmluZGV4IDY1MDVkYzlhYjJlZmI2YjY0ZjQzMThkZWM5OTc2YWU4ODYwMDEy
NzguLjY2YzU4YmRhMjI1ZDE1ODFmMTAyZGMyZjQ2YzYyZjY4OGExYzdhMzQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2RvbS9NdXRhdGlvbk9ic2VydmVyLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9kb20vTXV0YXRpb25PYnNlcnZlci5jcHAKQEAgLTEzMCw3ICsxMzAsNyBAQCB2b2lkIE11
dGF0aW9uT2JzZXJ2ZXI6OmRpc2Nvbm5lY3QoKQogdm9pZCBNdXRhdGlvbk9ic2VydmVyOjpvYnNl
cnZhdGlvblN0YXJ0ZWQoTXV0YXRpb25PYnNlcnZlclJlZ2lzdHJhdGlvbiYgcmVnaXN0cmF0aW9u
KQogewogICAgIEFTU0VSVCghbV9yZWdpc3RyYXRpb25zLmNvbnRhaW5zKHJlZ2lzdHJhdGlvbikp
OwotICAgIG1fcmVnaXN0cmF0aW9ucy5hZGQoJnJlZ2lzdHJhdGlvbik7CisgICAgbV9yZWdpc3Ry
YXRpb25zLmFkZChyZWdpc3RyYXRpb24pOwogfQogCiB2b2lkIE11dGF0aW9uT2JzZXJ2ZXI6Om9i
c2VydmF0aW9uRW5kZWQoTXV0YXRpb25PYnNlcnZlclJlZ2lzdHJhdGlvbiYgcmVnaXN0cmF0aW9u
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL1JhZGlvQnV0dG9uR3JvdXBzLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2RvbS9SYWRpb0J1dHRvbkdyb3Vwcy5jcHAKaW5kZXggYTVkNTMwZjk2
MDBlM2JlMDA2YzQxMmJiZDE2Y2FkYzQyZjZjODkwZi4uNTBmNDYzMGY4OWVjODk1ZGYxY2U1YWI4
ZWQ1ODE4OWI3YWZiZjY2MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL1JhZGlvQnV0
dG9uR3JvdXBzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vUmFkaW9CdXR0b25Hcm91cHMu
Y3BwCkBAIC04Nyw3ICs4Nyw3IEBAIHZvaWQgUmFkaW9CdXR0b25Hcm91cDo6c2V0Q2hlY2tlZEJ1
dHRvbihIVE1MSW5wdXRFbGVtZW50KiBidXR0b24pCiB2b2lkIFJhZGlvQnV0dG9uR3JvdXA6OmFk
ZChIVE1MSW5wdXRFbGVtZW50JiBidXR0b24pCiB7CiAgICAgQVNTRVJUKGJ1dHRvbi5pc1JhZGlv
QnV0dG9uKCkpOwotICAgIGlmICghbV9tZW1iZXJzLmFkZCgmYnV0dG9uKS5pc05ld0VudHJ5KQor
ICAgIGlmICghbV9tZW1iZXJzLmFkZChidXR0b24pLmlzTmV3RW50cnkpCiAgICAgICAgIHJldHVy
bjsKICAgICBib29sIGdyb3VwV2FzVmFsaWQgPSBpc1ZhbGlkKCk7CiAgICAgaWYgKGJ1dHRvbi5p
c1JlcXVpcmVkKCkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vVXNlckdlc3R1cmVJ
bmRpY2F0b3IuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL1VzZXJHZXN0dXJlSW5kaWNhdG9yLmNw
cAppbmRleCA4ZmI3ZWY0YjVkMzI2NmE0M2U2OTRhNzE1MDgzNTc5YThjOGE1OTgyLi5iYzJlNjBk
OWYzYTQ4YWI0ZTFmOTU4M2JhYjljMjg5OTMxZDFhMjEzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9kb20vVXNlckdlc3R1cmVJbmRpY2F0b3IuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Rv
bS9Vc2VyR2VzdHVyZUluZGljYXRvci5jcHAKQEAgLTYwLDcgKzYwLDcgQEAgVXNlckdlc3R1cmVU
b2tlbjo6VXNlckdlc3R1cmVUb2tlbihQcm9jZXNzaW5nVXNlckdlc3R1cmVTdGF0ZSBzdGF0ZSwg
VXNlckdlc3R1cmUKIAogICAgIGZvciAoYXV0byogYW5jZXN0b3JGcmFtZSA9IGRvY3VtZW50RnJh
bWUtPnRyZWUoKS5wYXJlbnQoKTsgYW5jZXN0b3JGcmFtZTsgYW5jZXN0b3JGcmFtZSA9IGFuY2Vz
dG9yRnJhbWUtPnRyZWUoKS5wYXJlbnQoKSkgewogICAgICAgICBpZiAoYXV0byogYW5jZXN0b3JE
b2N1bWVudCA9IGFuY2VzdG9yRnJhbWUtPmRvY3VtZW50KCkpCi0gICAgICAgICAgICBtX2RvY3Vt
ZW50c0ltcGFjdGVkQnlVc2VyR2VzdHVyZS5hZGQoYW5jZXN0b3JEb2N1bWVudCk7CisgICAgICAg
ICAgICBtX2RvY3VtZW50c0ltcGFjdGVkQnlVc2VyR2VzdHVyZS5hZGQoKmFuY2VzdG9yRG9jdW1l
bnQpOwogICAgIH0KIAogICAgIGF1dG8mIGRvY3VtZW50T3JpZ2luID0gZG9jdW1lbnQtPnNlY3Vy
aXR5T3JpZ2luKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1RleHRNYW5p
cHVsYXRpb25Db250cm9sbGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvVGV4dE1hbmlw
dWxhdGlvbkNvbnRyb2xsZXIuY3BwCmluZGV4IDNlZmQyMDg0MGI2ZGZjMWIzYWFjNWE5NWI3YWZj
M2M3NDM3YzkzZDEuLmI0ZTE1ZmViMGNhNTM4NjVhMTkyOTYwMDk4NGMxM2RiZjhlYTVlZDAgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvVGV4dE1hbmlwdWxhdGlvbkNvbnRyb2xs
ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvVGV4dE1hbmlwdWxhdGlvbkNvbnRy
b2xsZXIuY3BwCkBAIC02MjAsNyArNjIwLDcgQEAgdm9pZCBUZXh0TWFuaXB1bGF0aW9uQ29udHJv
bGxlcjo6c2NoZWR1bGVPYnNlcnZhdGlvblVwZGF0ZSgpCiAgICAgICAgIGNvbnRyb2xsZXItPm9i
c2VydmVQYXJhZ3JhcGhzKHN0YXJ0LCBlbmQpOwogCiAgICAgICAgIGlmIChjb250cm9sbGVyLT5t
X2l0ZW1zLmlzRW1wdHkoKSAmJiBjb21tb25BbmNlc3RvcikgewotICAgICAgICAgICAgY29udHJv
bGxlci0+bV9tYW5pcHVsYXRlZE5vZGVzLmFkZChjb21tb25BbmNlc3Rvci5nZXQoKSk7CisgICAg
ICAgICAgICBjb250cm9sbGVyLT5tX21hbmlwdWxhdGVkTm9kZXMuYWRkKCpjb21tb25BbmNlc3Rv
cik7CiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0KIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvaHRtbC9DYW52YXNCYXNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvQ2FudmFz
QmFzZS5jcHAKaW5kZXggZDZjODY2MTJkZDBhM2FhNTYyMjkwZTkyZDI1MjE1MzRjMjg3NjQ2Ni4u
MDA4Y2NhMjQ1NmEyNWE0ZjZiZWNjY2NjMTgwMTUwZWFkYzU1ZTcwNyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvaHRtbC9DYW52YXNCYXNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1s
L0NhbnZhc0Jhc2UuY3BwCkBAIC0xNjQsNyArMTY0LDcgQEAgdm9pZCBDYW52YXNCYXNlOjpub3Rp
ZnlPYnNlcnZlcnNDYW52YXNEZXN0cm95ZWQoKQogCiB2b2lkIENhbnZhc0Jhc2U6OmFkZERpc3Bs
YXlCdWZmZXJPYnNlcnZlcihDYW52YXNEaXNwbGF5QnVmZmVyT2JzZXJ2ZXImIG9ic2VydmVyKQog
ewotICAgIG1fZGlzcGxheUJ1ZmZlck9ic2VydmVycy5hZGQoJm9ic2VydmVyKTsKKyAgICBtX2Rp
c3BsYXlCdWZmZXJPYnNlcnZlcnMuYWRkKG9ic2VydmVyKTsKIH0KIAogdm9pZCBDYW52YXNCYXNl
OjpyZW1vdmVEaXNwbGF5QnVmZmVyT2JzZXJ2ZXIoQ2FudmFzRGlzcGxheUJ1ZmZlck9ic2VydmVy
JiBvYnNlcnZlcikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRl
ci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIuY3BwCmluZGV4IDE4MmEz
OWVhZDM5MGVjY2M2YTFiMThiZWRhOGM3MDA3Yzk5YWUwY2YuLmI5MjczNmNjZGM0ZTNkNjU3NGNm
YmQ2ZDEwNjRjMWE0MGFiYmZkYzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9G
cmFtZUxvYWRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmNw
cApAQCAtMTA1NSw3ICsxMDU1LDcgQEAgdm9pZCBGcmFtZUxvYWRlcjo6c2V0T3BlbmVyKEZyYW1l
KiBvcGVuZXIpCiAgICAgICAgIG9wZW5lckZyYW1lTG9hZGVyLm1fb3BlbmVkRnJhbWVzLnJlbW92
ZShtX2ZyYW1lKTsKICAgICB9CiAgICAgaWYgKG9wZW5lcikgewotICAgICAgICBvcGVuZXItPmxv
YWRlcigpLm1fb3BlbmVkRnJhbWVzLmFkZCgmbV9mcmFtZSk7CisgICAgICAgIG9wZW5lci0+bG9h
ZGVyKCkubV9vcGVuZWRGcmFtZXMuYWRkKG1fZnJhbWUpOwogICAgICAgICBpZiAoYXV0byogcGFn
ZSA9IG1fZnJhbWUucGFnZSgpKQogICAgICAgICAgICAgcGFnZS0+c2V0T3BlbmVkQnlET01XaXRo
T3BlbmVyKHRydWUpOwogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvVXNl
ckNvbnRlbnRQcm92aWRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1VzZXJDb250ZW50UHJv
dmlkZXIuY3BwCmluZGV4IDFhNmFlY2U0YWUyZDU2Y2UxNDc1NGMwZWY1NzAzNzE3NzRlNjYwNzQu
LjIxMGJlNmM1MjJhNzU4ODEwM2UzNjk1MWRhODFhMDM3NGIzMWJkNWQgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvVXNlckNvbnRlbnRQcm92aWRlci5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvcGFnZS9Vc2VyQ29udGVudFByb3ZpZGVyLmNwcApAQCAtNjcsNyArNjcsNyBAQCB2b2lk
IFVzZXJDb250ZW50UHJvdmlkZXI6OnJlZ2lzdGVyRm9yVXNlck1lc3NhZ2VIYW5kbGVySW52YWxp
ZGF0aW9uKFVzZXJDb250ZW50UAogewogICAgIEFTU0VSVCghbV91c2VyTWVzc2FnZUhhbmRsZXJJ
bnZhbGlkYXRpb25DbGllbnRzLmNvbnRhaW5zKGludmFsaWRhdGlvbkNsaWVudCkpOwogCi0gICAg
bV91c2VyTWVzc2FnZUhhbmRsZXJJbnZhbGlkYXRpb25DbGllbnRzLmFkZCgmaW52YWxpZGF0aW9u
Q2xpZW50KTsKKyAgICBtX3VzZXJNZXNzYWdlSGFuZGxlckludmFsaWRhdGlvbkNsaWVudHMuYWRk
KGludmFsaWRhdGlvbkNsaWVudCk7CiB9CiAKIHZvaWQgVXNlckNvbnRlbnRQcm92aWRlcjo6dW5y
ZWdpc3RlckZvclVzZXJNZXNzYWdlSGFuZGxlckludmFsaWRhdGlvbihVc2VyQ29udGVudFByb3Zp
ZGVySW52YWxpZGF0aW9uQ2xpZW50JiBpbnZhbGlkYXRpb25DbGllbnQpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9BdWRpb1Nlc3Npb24uaCBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2F1ZGlvL0F1ZGlvU2Vzc2lvbi5oCmluZGV4IDk5NTEzMTA5MzRmMzg5NjVk
NjY3ODdlNmI0ZGRlYTFhMTQ1YjMzNTQuLjEzOWQwZDlhMjQ2ZTBhODI5NmNiYmUwYTczYzJlOGQ3
NzRlZGUzNjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL0F1ZGlv
U2Vzc2lvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL0F1ZGlvU2Vzc2lv
bi5oCkBAIC0xNDcsNyArMTQ3LDcgQEAgcHJvdGVjdGVkOgogICAgIHN0YXRpYyBib29sIHNfc2hv
dWxkTWFuYWdlQXVkaW9TZXNzaW9uQ2F0ZWdvcnk7CiB9OwogCi1jbGFzcyBXRUJDT1JFX0VYUE9S
VCBBdWRpb1Nlc3Npb25Sb3V0aW5nQXJiaXRyYXRpb25DbGllbnQgeworY2xhc3MgV0VCQ09SRV9F
WFBPUlQgQXVkaW9TZXNzaW9uUm91dGluZ0FyYml0cmF0aW9uQ2xpZW50IDogcHVibGljIENhbk1h
a2VXZWFrUHRyPEF1ZGlvU2Vzc2lvblJvdXRpbmdBcmJpdHJhdGlvbkNsaWVudD4gewogcHVibGlj
OgogICAgIHZpcnR1YWwgfkF1ZGlvU2Vzc2lvblJvdXRpbmdBcmJpdHJhdGlvbkNsaWVudCgpID0g
ZGVmYXVsdDsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL0dQVUNvbm5l
Y3Rpb25Ub1dlYlByb2Nlc3MuY3BwIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL0dQVUNvbm5l
Y3Rpb25Ub1dlYlByb2Nlc3MuY3BwCmluZGV4IDY2OTk5MGJlYzk3ODY2OGJlZmMzY2JjOTM3MGE4
MjViY2Q3MTUyZTAuLjA3MGJkMTQwMmM1Y2ZlMmViZDFkMzViNTQ1M2I5MDE1OTg4NzRmNDYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9HUFVDb25uZWN0aW9uVG9XZWJQcm9j
ZXNzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvR1BVQ29ubmVjdGlvblRvV2Vi
UHJvY2Vzcy5jcHAKQEAgLTIzMCw3ICsyMzAsNyBAQCBHUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNz
OjpHUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzKEdQVVByb2Nlc3MmIGdwdVByb2Nlc3MsIFdlYgog
ICAgIFJFTEVBU0VfQVNTRVJUKFJ1bkxvb3A6OmlzTWFpbigpKTsKIAogI2lmIEVOQUJMRShST1VU
SU5HX0FSQklUUkFUSU9OKSAmJiBIQVZFKEFWQVVESU9fUk9VVElOR19BUkJJVEVSKQotICAgIGdw
dVByb2Nlc3MuYXVkaW9TZXNzaW9uTWFuYWdlcigpLnNlc3Npb24oKS5zZXRSb3V0aW5nQXJiaXRy
YXRpb25DbGllbnQobWFrZVdlYWtQdHIobV9yb3V0aW5nQXJiaXRyYXRvci5nZXQoKSkpOworICAg
IGdwdVByb2Nlc3MuYXVkaW9TZXNzaW9uTWFuYWdlcigpLnNlc3Npb24oKS5zZXRSb3V0aW5nQXJi
aXRyYXRpb25DbGllbnQobV9yb3V0aW5nQXJiaXRyYXRvci5nZXQoKSk7CiAjZW5kaWYKIAogICAg
IGlmICghcGFyYW1ldGVycy5vdmVycmlkZUxhbmd1YWdlcy5pc0VtcHR5KCkpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlR3JhcGhpY3NDb250ZXh0
R0wuY3BwIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZUdyYXBoaWNz
Q29udGV4dEdMLmNwcAppbmRleCAyYjdiODI3ZDcyMzlhNDUwYmQwYzQ5YTAwMjcyZWU0ZGY2YTJk
ZWRlLi5hYzk1OTUyMGEyZTNkZmFkOWZjZDgyYjM5MmYxMGE5YTVhNjA0ODQwIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlR3JhcGhpY3NDb250ZXh0
R0wuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVHcmFw
aGljc0NvbnRleHRHTC5jcHAKQEAgLTY0LDcgKzY0LDcgQEAgUmVmPFJlbW90ZUdyYXBoaWNzQ29u
dGV4dEdMPiBSZW1vdGVHcmFwaGljc0NvbnRleHRHTDo6Y3JlYXRlKEdQVUNvbm5lY3Rpb25Ub1dl
YlAKICNlbmRpZgogCiBSZW1vdGVHcmFwaGljc0NvbnRleHRHTDo6UmVtb3RlR3JhcGhpY3NDb250
ZXh0R0woR1BVQ29ubmVjdGlvblRvV2ViUHJvY2VzcyYgZ3B1Q29ubmVjdGlvblRvV2ViUHJvY2Vz
cywgR3JhcGhpY3NDb250ZXh0R0xJZGVudGlmaWVyIGdyYXBoaWNzQ29udGV4dEdMSWRlbnRpZmll
ciwgUmVtb3RlUmVuZGVyaW5nQmFja2VuZCYgcmVuZGVyaW5nQmFja2VuZCwgSVBDOjpTdHJlYW1D
b25uZWN0aW9uQnVmZmVyJiYgc3RyZWFtKQotICAgIDogbV9ncHVDb25uZWN0aW9uVG9XZWJQcm9j
ZXNzKG1ha2VXZWFrUHRyKGdwdUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MpKQorICAgIDogbV9ncHVD
b25uZWN0aW9uVG9XZWJQcm9jZXNzKGdwdUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MpCiAgICAgLCBt
X3N0cmVhbUNvbm5lY3Rpb24oSVBDOjpTdHJlYW1TZXJ2ZXJDb25uZWN0aW9uOjpjcmVhdGUoZ3B1
Q29ubmVjdGlvblRvV2ViUHJvY2Vzcy5jb25uZWN0aW9uKCksIFdURk1vdmUoc3RyZWFtKSwgcmVt
b3RlR3JhcGhpY3NDb250ZXh0R0xTdHJlYW1Xb3JrUXVldWUoKSkpCiAgICAgLCBtX2dyYXBoaWNz
Q29udGV4dEdMSWRlbnRpZmllcihncmFwaGljc0NvbnRleHRHTElkZW50aWZpZXIpCiAgICAgLCBt
X3JlbmRlcmluZ0JhY2tlbmQocmVuZGVyaW5nQmFja2VuZCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvR1BVUHJvY2Vzcy9tYWMvTG9jYWxBdWRpb1Nlc3Npb25Sb3V0aW5nQXJiaXRyYXRvci5o
IGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21hYy9Mb2NhbEF1ZGlvU2Vzc2lvblJvdXRpbmdB
cmJpdHJhdG9yLmgKaW5kZXggMDhjZGIyOTAyYmVhZGU3YzhiMjU4ZDZjZWI1MWMwMzQxOWVkNDc1
Zi4uYTEzNDRhZWExOTNjOThhZGU0MTJjMWViYmRkNWNmNzI5ZDlmN2NiNSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21hYy9Mb2NhbEF1ZGlvU2Vzc2lvblJvdXRpbmdBcmJp
dHJhdG9yLmgKKysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21hYy9Mb2NhbEF1ZGlvU2Vz
c2lvblJvdXRpbmdBcmJpdHJhdG9yLmgKQEAgLTMyLDggKzMyLDcgQEAKIG5hbWVzcGFjZSBXZWJL
aXQgewogCiBjbGFzcyBMb2NhbEF1ZGlvU2Vzc2lvblJvdXRpbmdBcmJpdHJhdG9yIGZpbmFsCi0g
ICAgOiBwdWJsaWMgV2ViQ29yZTo6QXVkaW9TZXNzaW9uUm91dGluZ0FyYml0cmF0aW9uQ2xpZW50
Ci0gICAgLCBwdWJsaWMgQ2FuTWFrZVdlYWtQdHI8TG9jYWxBdWRpb1Nlc3Npb25Sb3V0aW5nQXJi
aXRyYXRvcj4geworICAgIDogcHVibGljIFdlYkNvcmU6OkF1ZGlvU2Vzc2lvblJvdXRpbmdBcmJp
dHJhdGlvbkNsaWVudCB7CiAgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CiAKICAgICBmcmll
bmQgVW5pcXVlUmVmPExvY2FsQXVkaW9TZXNzaW9uUm91dGluZ0FyYml0cmF0b3I+IFdURjo6bWFr
ZVVuaXF1ZVJlZldpdGhvdXRGYXN0TWFsbG9jQ2hlY2s8TG9jYWxBdWRpb1Nlc3Npb25Sb3V0aW5n
QXJiaXRyYXRvcj4oR1BVQ29ubmVjdGlvblRvV2ViUHJvY2VzcyYpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZUF1ZGlvSGFyZHdhcmVMaXN0ZW5lclBy
b3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVBdWRpb0hhcmR3
YXJlTGlzdGVuZXJQcm94eS5jcHAKaW5kZXggZDExZDU3YWFhNmE5NDU0NjA5ODQ4MzJiMmJkYzFk
ZGFhYjAwYjBiMy4uM2EzYzFmOTFkMmY5N2JiM2RmMDMxMTc4ZjVlYzk5MWRiMGNkNjUwOSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZUF1ZGlvSGFyZHdh
cmVMaXN0ZW5lclByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEv
UmVtb3RlQXVkaW9IYXJkd2FyZUxpc3RlbmVyUHJveHkuY3BwCkBAIC0zNCw3ICszNCw3IEBACiBu
YW1lc3BhY2UgV2ViS2l0IHsKIAogUmVtb3RlQXVkaW9IYXJkd2FyZUxpc3RlbmVyUHJveHk6OlJl
bW90ZUF1ZGlvSGFyZHdhcmVMaXN0ZW5lclByb3h5KEdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3Mm
IGdwdUNvbm5lY3Rpb24sIFJlbW90ZUF1ZGlvSGFyZHdhcmVMaXN0ZW5lcklkZW50aWZpZXImJiBp
ZGVudGlmaWVyKQotICAgIDogbV9ncHVDb25uZWN0aW9uKG1ha2VXZWFrUHRyKGdwdUNvbm5lY3Rp
b24pKQorICAgIDogbV9ncHVDb25uZWN0aW9uKGdwdUNvbm5lY3Rpb24pCiAgICAgLCBtX2lkZW50
aWZpZXIoV1RGTW92ZShpZGVudGlmaWVyKSkKICAgICAsIG1fbGlzdGVuZXIoV2ViQ29yZTo6QXVk
aW9IYXJkd2FyZUxpc3RlbmVyOjpjcmVhdGUoKnRoaXMpKQogewpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZUF1ZGlvVHJhY2tQcm94eS5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlQXVkaW9UcmFja1Byb3h5LmNwcAppbmRl
eCA2ZGNkZGRiNmYyMjY2ZGUyZTE4ZTQxNmU2MjhiMGFkNzMzOTMzY2Q5Li42NTIzOTZmN2E2NDIy
YmFiZmE1MjQxZDIzODJhMjRkOWE4NDhmYTU2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0dQ
VVByb2Nlc3MvbWVkaWEvUmVtb3RlQXVkaW9UcmFja1Byb3h5LmNwcAorKysgYi9Tb3VyY2UvV2Vi
S2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlQXVkaW9UcmFja1Byb3h5LmNwcApAQCAtNDAsNyAr
NDAsNyBAQCBuYW1lc3BhY2UgV2ViS2l0IHsKIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogCiBS
ZW1vdGVBdWRpb1RyYWNrUHJveHk6OlJlbW90ZUF1ZGlvVHJhY2tQcm94eShHUFVDb25uZWN0aW9u
VG9XZWJQcm9jZXNzJiBjb25uZWN0aW9uVG9XZWJQcm9jZXNzLCBUcmFja1ByaXZhdGVSZW1vdGVJ
ZGVudGlmaWVyIGlkZW50aWZpZXIsIEF1ZGlvVHJhY2tQcml2YXRlJiB0cmFja1ByaXZhdGUsIE1l
ZGlhUGxheWVySWRlbnRpZmllciBtZWRpYVBsYXllcklkZW50aWZpZXIpCi0gICAgOiBtX2Nvbm5l
Y3Rpb25Ub1dlYlByb2Nlc3MobWFrZVdlYWtQdHIoY29ubmVjdGlvblRvV2ViUHJvY2VzcykpCisg
ICAgOiBtX2Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MoY29ubmVjdGlvblRvV2ViUHJvY2VzcykKICAg
ICAsIG1faWRlbnRpZmllcihpZGVudGlmaWVyKQogICAgICwgbV90cmFja1ByaXZhdGUodHJhY2tQ
cml2YXRlKQogICAgICwgbV9tZWRpYVBsYXllcklkZW50aWZpZXIobWVkaWFQbGF5ZXJJZGVudGlm
aWVyKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZUNE
TUZhY3RvcnlQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3Rl
Q0RNRmFjdG9yeVByb3h5LmNwcAppbmRleCAwNmVjNTI3MDZmY2E3ZjcxNTM5YTk3MDU5NDNmOGM3
ZDViNTIxZDMxLi40ODk4M2MwMTg4OWE2ZWMzYmQ0MGVhNTU4YzlkYzI5N2Y1MzE1YzFiIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlQ0RNRmFjdG9yeVBy
b3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlQ0RNRmFj
dG9yeVByb3h5LmNwcApAQCAtNDEsNyArNDEsNyBAQCBuYW1lc3BhY2UgV2ViS2l0IHsKIHVzaW5n
IG5hbWVzcGFjZSBXZWJDb3JlOwogCiBSZW1vdGVDRE1GYWN0b3J5UHJveHk6OlJlbW90ZUNETUZh
Y3RvcnlQcm94eShHUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzJiBjb25uZWN0aW9uKQotICAgIDog
bV9ncHVDb25uZWN0aW9uVG9XZWJQcm9jZXNzKG1ha2VXZWFrUHRyKGNvbm5lY3Rpb24pKQorICAg
IDogbV9ncHVDb25uZWN0aW9uVG9XZWJQcm9jZXNzKGNvbm5lY3Rpb24pCiB7CiB9CiAKQEAgLTcw
LDcgKzcwLDcgQEAgdm9pZCBSZW1vdGVDRE1GYWN0b3J5UHJveHk6OmNyZWF0ZUNETShjb25zdCBT
dHJpbmcmIGtleVN5c3RlbSwgQ29tcGxldGlvbkhhbmRsZXIKICAgICAgICAgcmV0dXJuOwogICAg
IH0KIAotICAgIGF1dG8gcHJveHkgPSBSZW1vdGVDRE1Qcm94eTo6Y3JlYXRlKG1ha2VXZWFrUHRy
KHRoaXMpLCBXVEZNb3ZlKHByaXZhdGVDRE0pKTsKKyAgICBhdXRvIHByb3h5ID0gUmVtb3RlQ0RN
UHJveHk6OmNyZWF0ZSgqdGhpcywgV1RGTW92ZShwcml2YXRlQ0RNKSk7CiAgICAgYXV0byBpZGVu
dGlmaWVyID0gUmVtb3RlQ0RNSWRlbnRpZmllcjo6Z2VuZXJhdGUoKTsKICAgICBSZW1vdGVDRE1D
b25maWd1cmF0aW9uIGNvbmZpZ3VyYXRpb24gPSBwcm94eS0+Y29uZmlndXJhdGlvbigpOwogICAg
IGFkZFByb3h5KGlkZW50aWZpZXIsIFdURk1vdmUocHJveHkpKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVDRE1JbnN0YW5jZVByb3h5LmNwcCBiL1Nv
dXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVDRE1JbnN0YW5jZVByb3h5LmNwcApp
bmRleCBiZDgzNWM1MWE4Y2FlZGQ2OTVlMDBjMjViMGQyMzllNzBmZDc5ZDFiLi41NzMwNjdlM2Rk
MDUwZmViN2M1NzlkMDAxMDJlZTlmNjA0NWI1MzEzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlQ0RNSW5zdGFuY2VQcm94eS5jcHAKKysrIGIvU291cmNl
L1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZUNETUluc3RhbmNlUHJveHkuY3BwCkBAIC01
Myw3ICs1Myw3IEBAIFJlbW90ZUNETUluc3RhbmNlUHJveHk6OlJlbW90ZUNETUluc3RhbmNlUHJv
eHkoV2Vha1B0cjxSZW1vdGVDRE1Qcm94eT4mJiBjZG0sIFJlCiAgICAgLCBtX2NvbmZpZ3VyYXRp
b24oV1RGTW92ZShjb25maWd1cmF0aW9uKSkKICAgICAsIG1faWRlbnRpZmllcihpZGVudGlmaWVy
KQogewotICAgIG1faW5zdGFuY2UtPnNldENsaWVudChtYWtlV2Vha1B0cjxDRE1JbnN0YW5jZUNs
aWVudD4odGhpcykpOworICAgIG1faW5zdGFuY2UtPnNldENsaWVudCgqdGhpcyk7CiB9CiAKIFJl
bW90ZUNETUluc3RhbmNlUHJveHk6On5SZW1vdGVDRE1JbnN0YW5jZVByb3h5KCkKQEAgLTEwNSw3
ICsxMDUsNyBAQCB2b2lkIFJlbW90ZUNETUluc3RhbmNlUHJveHk6OmNyZWF0ZVNlc3Npb24oQ29t
cGxldGlvbkhhbmRsZXI8dm9pZChjb25zdCBSZW1vdGVDRAogICAgICAgICByZXR1cm47CiAgICAg
fQogICAgIGF1dG8gaWRlbnRpZmllciA9IFJlbW90ZUNETUluc3RhbmNlU2Vzc2lvbklkZW50aWZp
ZXI6OmdlbmVyYXRlKCk7Ci0gICAgYXV0byBzZXNzaW9uID0gUmVtb3RlQ0RNSW5zdGFuY2VTZXNz
aW9uUHJveHk6OmNyZWF0ZShtYWtlV2Vha1B0cihtX2NkbS5nZXQoKSksIHByaXZTZXNzaW9uLnJl
bGVhc2VOb25OdWxsKCksIGlkZW50aWZpZXIpOworICAgIGF1dG8gc2Vzc2lvbiA9IFJlbW90ZUNE
TUluc3RhbmNlU2Vzc2lvblByb3h5OjpjcmVhdGUobV9jZG0uZ2V0KCksIHByaXZTZXNzaW9uLnJl
bGVhc2VOb25OdWxsKCksIGlkZW50aWZpZXIpOwogICAgIG1fY2RtLT5mYWN0b3J5KCktPmFkZFNl
c3Npb24oaWRlbnRpZmllciwgV1RGTW92ZShzZXNzaW9uKSk7CiAgICAgY29tcGxldGlvbihpZGVu
dGlmaWVyKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9S
ZW1vdGVDRE1JbnN0YW5jZVByb3h5LmggYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEv
UmVtb3RlQ0RNSW5zdGFuY2VQcm94eS5oCmluZGV4IGI0Y2U3NDk0YTE3YmZjNTZlNGNmODZlYzU2
ZmQ5YTQzZjk3YzMyNzkuLjhlNzNkM2Q5YTY0Yjk4YmZjMDA5MzZjZDQ3YzRjMjVhOTI3OWYyYzgg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVDRE1JbnN0
YW5jZVByb3h5LmgKKysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZUNE
TUluc3RhbmNlUHJveHkuaApAQCAtNTIsNiArNTIsOSBAQCBjbGFzcyBSZW1vdGVDRE1JbnN0YW5j
ZVNlc3Npb25Qcm94eTsKIAogY2xhc3MgUmVtb3RlQ0RNSW5zdGFuY2VQcm94eSA6IHB1YmxpYyBX
ZWJDb3JlOjpDRE1JbnN0YW5jZUNsaWVudCwgcHJpdmF0ZSBJUEM6Ok1lc3NhZ2VSZWNlaXZlciAg
ewogcHVibGljOgorICAgIHVzaW5nIFdlYkNvcmU6OkNETUluc3RhbmNlQ2xpZW50Ojp3ZWFrUHRy
RmFjdG9yeTsKKyAgICB1c2luZyBXZWFrVmFsdWVUeXBlID0gV2ViQ29yZTo6Q0RNSW5zdGFuY2VD
bGllbnQ6OldlYWtWYWx1ZVR5cGU7CisKICAgICBzdGF0aWMgc3RkOjp1bmlxdWVfcHRyPFJlbW90
ZUNETUluc3RhbmNlUHJveHk+IGNyZWF0ZShXZWFrUHRyPFJlbW90ZUNETVByb3h5PiYmLCBSZWY8
V2ViQ29yZTo6Q0RNSW5zdGFuY2U+JiYsIFJlbW90ZUNETUluc3RhbmNlSWRlbnRpZmllcik7CiAg
ICAgflJlbW90ZUNETUluc3RhbmNlUHJveHkoKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZUNETUluc3RhbmNlU2Vzc2lvblByb3h5LmNwcCBiL1Nv
dXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVDRE1JbnN0YW5jZVNlc3Npb25Qcm94
eS5jcHAKaW5kZXggODA2MTQ2MTc3MGYzZWU4NzQzYWE2MjFiN2E4ZDAzMzVmMTExNjFjOC4uZTU3
NjZjMjMzNGNmZDM4OTMxMGNkNGIyMTcyM2NhYmEzNzQyZmM3YyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZUNETUluc3RhbmNlU2Vzc2lvblByb3h5LmNw
cAorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlQ0RNSW5zdGFuY2VT
ZXNzaW9uUHJveHkuY3BwCkBAIC00MSw3ICs0MSw3IEBAIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3Jl
Owogc3RkOjp1bmlxdWVfcHRyPFJlbW90ZUNETUluc3RhbmNlU2Vzc2lvblByb3h5PiBSZW1vdGVD
RE1JbnN0YW5jZVNlc3Npb25Qcm94eTo6Y3JlYXRlKFdlYWtQdHI8UmVtb3RlQ0RNUHJveHk+JiYg
cHJveHksIFJlZjxXZWJDb3JlOjpDRE1JbnN0YW5jZVNlc3Npb24+JiYgc2Vzc2lvbiwgUmVtb3Rl
Q0RNSW5zdGFuY2VTZXNzaW9uSWRlbnRpZmllciBpZGVudGlmaWVyKQogewogICAgIGF1dG8gc2Vz
c2lvblByb3h5ID0gc3RkOjp1bmlxdWVfcHRyPFJlbW90ZUNETUluc3RhbmNlU2Vzc2lvblByb3h5
PihuZXcgUmVtb3RlQ0RNSW5zdGFuY2VTZXNzaW9uUHJveHkoV1RGTW92ZShwcm94eSksIFdURk1v
dmUoc2Vzc2lvbiksIGlkZW50aWZpZXIpKTsKLSAgICBhdXRvIGNsaWVudCA9IG1ha2VXZWFrUHRy
PFdlYkNvcmU6OkNETUluc3RhbmNlU2Vzc2lvbkNsaWVudD4oc2Vzc2lvblByb3h5LmdldCgpKTsK
KyAgICBXZWFrUHRyPFdlYkNvcmU6OkNETUluc3RhbmNlU2Vzc2lvbkNsaWVudD4gY2xpZW50ID0g
c2Vzc2lvblByb3h5LmdldCgpOwogICAgIHNlc3Npb25Qcm94eS0+bV9zZXNzaW9uLT5zZXRDbGll
bnQoV1RGTW92ZShjbGllbnQpKTsKICAgICByZXR1cm4gc2Vzc2lvblByb3h5OwogfQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZUNETVByb3h5LmNwcCBi
L1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVDRE1Qcm94eS5jcHAKaW5kZXgg
NWU1NGU4MjNkN2U3N2NiYjYwN2Q1NjEyNmEyOTI2ZTI0NmFmYzMyZi4uOWFiMzU3NWY0YzNiNTU5
NTU1YjliODdiMjMzNzFiMWIxYTY2ZGMxNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9HUFVQ
cm9jZXNzL21lZGlhL1JlbW90ZUNETVByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVBy
b2Nlc3MvbWVkaWEvUmVtb3RlQ0RNUHJveHkuY3BwCkBAIC05MSw3ICs5MSw3IEBAIHZvaWQgUmVt
b3RlQ0RNUHJveHk6OmNyZWF0ZUluc3RhbmNlKENvbXBsZXRpb25IYW5kbGVyPHZvaWQoUmVtb3Rl
Q0RNSW5zdGFuY2VJZGVuCiAgICAgICAgIHJldHVybjsKICAgICB9CiAgICAgYXV0byBpZGVudGlm
aWVyID0gUmVtb3RlQ0RNSW5zdGFuY2VJZGVudGlmaWVyOjpnZW5lcmF0ZSgpOwotICAgIGF1dG8g
aW5zdGFuY2UgPSBSZW1vdGVDRE1JbnN0YW5jZVByb3h5OjpjcmVhdGUobWFrZVdlYWtQdHIodGhp
cyksIHByaXZhdGVJbnN0YW5jZS5yZWxlYXNlTm9uTnVsbCgpLCBpZGVudGlmaWVyKTsKKyAgICBh
dXRvIGluc3RhbmNlID0gUmVtb3RlQ0RNSW5zdGFuY2VQcm94eTo6Y3JlYXRlKCp0aGlzLCBwcml2
YXRlSW5zdGFuY2UucmVsZWFzZU5vbk51bGwoKSwgaWRlbnRpZmllcik7CiAgICAgUmVtb3RlQ0RN
SW5zdGFuY2VDb25maWd1cmF0aW9uIGNvbmZpZ3VyYXRpb24gPSBpbnN0YW5jZS0+Y29uZmlndXJh
dGlvbigpOwogICAgIG1fZmFjdG9yeS0+YWRkSW5zdGFuY2UoaWRlbnRpZmllciwgV1RGTW92ZShp
bnN0YW5jZSkpOwogICAgIGNvbXBsZXRpb24oaWRlbnRpZmllciwgV1RGTW92ZShjb25maWd1cmF0
aW9uKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3Rl
SW1hZ2VEZWNvZGVyQVZGUHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlh
L1JlbW90ZUltYWdlRGVjb2RlckFWRlByb3h5LmNwcAppbmRleCA5NjgzZWRlMDlmOTZmY2Q5ZDE5
M2YzNDJmYjVmMDhjYmFhYjI5ZjYwLi5mYTgzODc0OTQzMjM2NWE0MDg5YWVhNWFlY2JjZWE2NjBk
YjY0YmEwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3Rl
SW1hZ2VEZWNvZGVyQVZGUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9t
ZWRpYS9SZW1vdGVJbWFnZURlY29kZXJBVkZQcm94eS5jcHAKQEAgLTQxLDcgKzQxLDcgQEAgbmFt
ZXNwYWNlIFdlYktpdCB7CiB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIAogUmVtb3RlSW1hZ2VE
ZWNvZGVyQVZGUHJveHk6OlJlbW90ZUltYWdlRGVjb2RlckFWRlByb3h5KEdQVUNvbm5lY3Rpb25U
b1dlYlByb2Nlc3MmIGNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MpCi0gICAgOiBtX2Nvbm5lY3Rpb25U
b1dlYlByb2Nlc3MobWFrZVdlYWtQdHIoY29ubmVjdGlvblRvV2ViUHJvY2VzcykpCisgICAgOiBt
X2Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MoY29ubmVjdGlvblRvV2ViUHJvY2VzcykKIHsKIH0KIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZUxlZ2FjeUNE
TUZhY3RvcnlQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3Rl
TGVnYWN5Q0RNRmFjdG9yeVByb3h5LmNwcAppbmRleCA2YWE0ZDFlNzJhOGNlMjllYTdlZmEyOGRk
YjliMzc0ZjE4ZjNkNWZlLi43Y2VkYjk3MTJmYzY2YjViOGRiNTJiYWYwOGNiMGMyYTY0ZTk0ZWU3
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTGVnYWN5
Q0RNRmFjdG9yeVByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEv
UmVtb3RlTGVnYWN5Q0RNRmFjdG9yeVByb3h5LmNwcApAQCAtNDIsNyArNDIsNyBAQCBuYW1lc3Bh
Y2UgV2ViS2l0IHsKIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogCiBSZW1vdGVMZWdhY3lDRE1G
YWN0b3J5UHJveHk6OlJlbW90ZUxlZ2FjeUNETUZhY3RvcnlQcm94eShHUFVDb25uZWN0aW9uVG9X
ZWJQcm9jZXNzJiBjb25uZWN0aW9uKQotICAgIDogbV9ncHVDb25uZWN0aW9uVG9XZWJQcm9jZXNz
KG1ha2VXZWFrUHRyKGNvbm5lY3Rpb24pKQorICAgIDogbV9ncHVDb25uZWN0aW9uVG9XZWJQcm9j
ZXNzKGNvbm5lY3Rpb24pCiB7CiB9CiAKQEAgLTcwLDcgKzcwLDcgQEAgdm9pZCBSZW1vdGVMZWdh
Y3lDRE1GYWN0b3J5UHJveHk6OmNyZWF0ZUNETShjb25zdCBTdHJpbmcmIGtleVN5c3RlbSwgc3Rk
OjpvcHRpb24KICAgICBpZiAob3B0aW9uYWxQbGF5ZXJJZCkKICAgICAgICAgcGxheWVySWQgPSBX
VEZNb3ZlKG9wdGlvbmFsUGxheWVySWQudmFsdWUoKSk7CiAKLSAgICBhdXRvIHByb3h5ID0gUmVt
b3RlTGVnYWN5Q0RNUHJveHk6OmNyZWF0ZShtYWtlV2Vha1B0cih0aGlzKSwgV1RGTW92ZShwbGF5
ZXJJZCksIFdURk1vdmUocHJpdmF0ZUNETSkpOworICAgIGF1dG8gcHJveHkgPSBSZW1vdGVMZWdh
Y3lDRE1Qcm94eTo6Y3JlYXRlKCp0aGlzLCBXVEZNb3ZlKHBsYXllcklkKSwgV1RGTW92ZShwcml2
YXRlQ0RNKSk7CiAgICAgYXV0byBpZGVudGlmaWVyID0gUmVtb3RlTGVnYWN5Q0RNSWRlbnRpZmll
cjo6Z2VuZXJhdGUoKTsKICAgICBhZGRQcm94eShpZGVudGlmaWVyLCBXVEZNb3ZlKHByb3h5KSk7
CiAgICAgY29tcGxldGlvbihXVEZNb3ZlKGlkZW50aWZpZXIpKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVMZWdhY3lDRE1Qcm94eS5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTGVnYWN5Q0RNUHJveHkuY3BwCmluZGV4
IGJmNTE3NTkyYTAxZTBlZWFjN2MyYzhjOTU4OTViYzJmYThlMzc2OTMuLmZmZjZlYjUyOWU1Njlm
YjhmNGJlMTMwZDdkOGNlMzA3NjUzOWI3ODAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvR1BV
UHJvY2Vzcy9tZWRpYS9SZW1vdGVMZWdhY3lDRE1Qcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktp
dC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZUxlZ2FjeUNETVByb3h5LmNwcApAQCAtNjksNyArNjks
NyBAQCB2b2lkIFJlbW90ZUxlZ2FjeUNETVByb3h5OjpjcmVhdGVTZXNzaW9uKGNvbnN0IFN0cmlu
ZyYga2V5U3lzdGVtLCBDcmVhdGVTZXNzaW9uQwogICAgIH0KIAogICAgIGF1dG8gaWRlbnRpZmll
ciA9IFJlbW90ZUxlZ2FjeUNETVNlc3Npb25JZGVudGlmaWVyOjpnZW5lcmF0ZSgpOwotICAgIGF1
dG8gc2Vzc2lvbiA9IFJlbW90ZUxlZ2FjeUNETVNlc3Npb25Qcm94eTo6Y3JlYXRlKG1ha2VXZWFr
UHRyKG1fZmFjdG9yeS5nZXQoKSksIGlkZW50aWZpZXIsICptX2NkbSk7CisgICAgYXV0byBzZXNz
aW9uID0gUmVtb3RlTGVnYWN5Q0RNU2Vzc2lvblByb3h5OjpjcmVhdGUobV9mYWN0b3J5LmdldCgp
LCBpZGVudGlmaWVyLCAqbV9jZG0pOwogICAgIG1fZmFjdG9yeS0+YWRkU2Vzc2lvbihpZGVudGlm
aWVyLCBXVEZNb3ZlKHNlc3Npb24pKTsKICAgICBjYWxsYmFjayhXVEZNb3ZlKGlkZW50aWZpZXIp
KTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVN
ZWRpYVBsYXllck1hbmFnZXJQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVk
aWEvUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyUHJveHkuY3BwCmluZGV4IDBhMDBlNDhiYjIxOTZj
MmEyNmJkMjI5ZjMyOWM5ZWRiOGU4YjIyNjUuLjczMTAzZmE0YWI2ZDZmMTk1MDNkNTM4NWNhNDUw
YzcyYmM3YjM3ZGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9S
ZW1vdGVNZWRpYVBsYXllck1hbmFnZXJQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9HUFVQ
cm9jZXNzL21lZGlhL1JlbW90ZU1lZGlhUGxheWVyTWFuYWdlclByb3h5LmNwcApAQCAtNDksNyAr
NDksNyBAQCBuYW1lc3BhY2UgV2ViS2l0IHsKIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogCiBS
ZW1vdGVNZWRpYVBsYXllck1hbmFnZXJQcm94eTo6UmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyUHJv
eHkoR1BVQ29ubmVjdGlvblRvV2ViUHJvY2VzcyYgY29ubmVjdGlvbikKLSAgICA6IG1fZ3B1Q29u
bmVjdGlvblRvV2ViUHJvY2VzcyhtYWtlV2Vha1B0cihjb25uZWN0aW9uKSkKKyAgICA6IG1fZ3B1
Q29ubmVjdGlvblRvV2ViUHJvY2Vzcyhjb25uZWN0aW9uKQogewogfQogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJQcm94eS5jcHAg
Yi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJQcm94eS5j
cHAKaW5kZXggYzQ4NGZiMzYzYTQ1ZmNjNjYxNDYxYmQ2YTVhYzRjY2EyMWI1N2Y1ZC4uZWI4ZDgz
MDQ2ZjNlYjliMjE4YTkzMjhhMDc1MGYxYTUwYWFkMThiYyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZU1lZGlhUGxheWVyUHJveHkuY3BwCisrKyBiL1Nv
dXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVBsYXllclByb3h5LmNwcApA
QCAtNzYsNyArNzYsNyBAQCB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIFJlbW90ZU1lZGlhUGxh
eWVyUHJveHk6OlJlbW90ZU1lZGlhUGxheWVyUHJveHkoUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2Vy
UHJveHkmIG1hbmFnZXIsIE1lZGlhUGxheWVySWRlbnRpZmllciBpZGVudGlmaWVyLCBSZWY8SVBD
OjpDb25uZWN0aW9uPiYmIGNvbm5lY3Rpb24sIE1lZGlhUGxheWVyRW51bXM6Ok1lZGlhRW5naW5l
SWRlbnRpZmllciBlbmdpbmVJZGVudGlmaWVyLCBSZW1vdGVNZWRpYVBsYXllclByb3h5Q29uZmln
dXJhdGlvbiYmIGNvbmZpZ3VyYXRpb24pCiAgICAgOiBtX2lkKGlkZW50aWZpZXIpCiAgICAgLCBt
X3dlYlByb2Nlc3NDb25uZWN0aW9uKFdURk1vdmUoY29ubmVjdGlvbikpCi0gICAgLCBtX21hbmFn
ZXIobWFrZVdlYWtQdHIobWFuYWdlcikpCisgICAgLCBtX21hbmFnZXIobWFuYWdlcikKICAgICAs
IG1fZW5naW5lSWRlbnRpZmllcihlbmdpbmVJZGVudGlmaWVyKQogICAgICwgbV91cGRhdGVDYWNo
ZWRTdGF0ZU1lc3NhZ2VUaW1lcihSdW5Mb29wOjptYWluKCksIHRoaXMsICZSZW1vdGVNZWRpYVBs
YXllclByb3h5Ojp0aW1lckZpcmVkKQogICAgICwgbV9jb25maWd1cmF0aW9uKGNvbmZpZ3VyYXRp
b24pCkBAIC05MTIsNyArOTEyLDcgQEAgdm9pZCBSZW1vdGVNZWRpYVBsYXllclByb3h5OjpzZXRM
ZWdhY3lDRE1TZXNzaW9uKHN0ZDo6b3B0aW9uYWw8UmVtb3RlTGVnYWN5Q0RNU2UKICAgICBpZiAo
bV9sZWdhY3lTZXNzaW9uKSB7CiAgICAgICAgIGlmIChhdXRvIGNkbVNlc3Npb24gPSBtX21hbmFn
ZXItPmdwdUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MoKS0+bGVnYWN5Q2RtRmFjdG9yeVByb3h5KCku
Z2V0U2Vzc2lvbigqbV9sZWdhY3lTZXNzaW9uKSkgewogICAgICAgICAgICAgbV9wbGF5ZXItPnNl
dENETVNlc3Npb24oY2RtU2Vzc2lvbi0+c2Vzc2lvbigpKTsKLSAgICAgICAgICAgIGNkbVNlc3Np
b24tPnNldFBsYXllcihtYWtlV2Vha1B0cih0aGlzKSk7CisgICAgICAgICAgICBjZG1TZXNzaW9u
LT5zZXRQbGF5ZXIoKnRoaXMpOwogICAgICAgICB9CiAgICAgfQogfQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZU1lZGlhUmVzb3VyY2UuY3BwIGIvU291
cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZU1lZGlhUmVzb3VyY2UuY3BwCmluZGV4
IDFjZGU3OWIxMWQ5MDcyZDExOWUxNmFjZWVjODZlNDVkMGE0NGU5YWUuLjkwMjM1NGE5OTMxZmVk
MTU1OWU1NGU0MWIxYzAwNTlhZTg3MTgyMzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvR1BV
UHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVJlc291cmNlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0
L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFSZXNvdXJjZS5jcHAKQEAgLTQyLDggKzQyLDgg
QEAgUmVmPFJlbW90ZU1lZGlhUmVzb3VyY2U+IFJlbW90ZU1lZGlhUmVzb3VyY2U6OmNyZWF0ZShS
ZW1vdGVNZWRpYVJlc291cmNlTWFuYWdlciYKIH0KIAogUmVtb3RlTWVkaWFSZXNvdXJjZTo6UmVt
b3RlTWVkaWFSZXNvdXJjZShSZW1vdGVNZWRpYVJlc291cmNlTWFuYWdlciYgcmVtb3RlTWVkaWFS
ZXNvdXJjZU1hbmFnZXIsIFJlbW90ZU1lZGlhUGxheWVyUHJveHkmIHJlbW90ZU1lZGlhUGxheWVy
UHJveHksIFJlbW90ZU1lZGlhUmVzb3VyY2VJZGVudGlmaWVyIGlkZW50aWZpZXIpCi0gICAgOiBt
X3JlbW90ZU1lZGlhUmVzb3VyY2VNYW5hZ2VyKG1ha2VXZWFrUHRyKHJlbW90ZU1lZGlhUmVzb3Vy
Y2VNYW5hZ2VyKSkKLSAgICAsIG1fcmVtb3RlTWVkaWFQbGF5ZXJQcm94eShtYWtlV2Vha1B0cihy
ZW1vdGVNZWRpYVBsYXllclByb3h5KSkKKyAgICA6IG1fcmVtb3RlTWVkaWFSZXNvdXJjZU1hbmFn
ZXIocmVtb3RlTWVkaWFSZXNvdXJjZU1hbmFnZXIpCisgICAgLCBtX3JlbW90ZU1lZGlhUGxheWVy
UHJveHkocmVtb3RlTWVkaWFQbGF5ZXJQcm94eSkKICAgICAsIG1faWQoaWRlbnRpZmllcikKIHsK
IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRp
YVJlc291cmNlTG9hZGVyLmNwcCBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1v
dGVNZWRpYVJlc291cmNlTG9hZGVyLmNwcAppbmRleCBlZThmZDJkM2U1Y2QyNzYxMWU0MWRlMzhj
NjRmODJlZTIxMzU4MjA3Li5jYzcwZDFjNDE2YmI5YzNjOWI1MGJiNzliMjc1YTIzYmFiOWI0MGVm
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFS
ZXNvdXJjZUxvYWRlci5jcHAKKysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1Jl
bW90ZU1lZGlhUmVzb3VyY2VMb2FkZXIuY3BwCkBAIC0zNiw3ICszNiw3IEBAIG5hbWVzcGFjZSBX
ZWJLaXQgewogdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAKIFJlbW90ZU1lZGlhUmVzb3VyY2VM
b2FkZXI6OlJlbW90ZU1lZGlhUmVzb3VyY2VMb2FkZXIoUmVtb3RlTWVkaWFQbGF5ZXJQcm94eSYg
cmVtb3RlTWVkaWFQbGF5ZXJQcm94eSkKLSAgICA6IG1fcmVtb3RlTWVkaWFQbGF5ZXJQcm94eSht
YWtlV2Vha1B0cihyZW1vdGVNZWRpYVBsYXllclByb3h5KSkKKyAgICA6IG1fcmVtb3RlTWVkaWFQ
bGF5ZXJQcm94eShyZW1vdGVNZWRpYVBsYXllclByb3h5KQogewogfQogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFTb3VyY2VQcm94eS5jcHAg
Yi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFTb3VyY2VQcm94eS5j
cHAKaW5kZXggNjMwZWJmY2FjMjAwMWMwNjZiOTViNjIyM2QyNjkyMGRhNzkyNmU3MS4uZGQ3YTUx
ZTQ4YjQyNmE2ODg2MzZlNmFmZTMxYTY1NDBhMDU3NjhhMCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZU1lZGlhU291cmNlUHJveHkuY3BwCisrKyBiL1Nv
dXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVNvdXJjZVByb3h5LmNwcApA
QCAtNDIsMTAgKzQyLDEwIEBAIG5hbWVzcGFjZSBXZWJLaXQgewogdXNpbmcgbmFtZXNwYWNlIFdl
YkNvcmU7CiAKIFJlbW90ZU1lZGlhU291cmNlUHJveHk6OlJlbW90ZU1lZGlhU291cmNlUHJveHko
R1BVQ29ubmVjdGlvblRvV2ViUHJvY2VzcyYgY29ubmVjdGlvblRvV2ViUHJvY2VzcywgUmVtb3Rl
TWVkaWFTb3VyY2VJZGVudGlmaWVyIGlkZW50aWZpZXIsIGJvb2wgd2ViTVBhcnNlckVuYWJsZWQs
IFJlbW90ZU1lZGlhUGxheWVyUHJveHkmIHJlbW90ZU1lZGlhUGxheWVyUHJveHkpCi0gICAgOiBt
X2Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MobWFrZVdlYWtQdHIoY29ubmVjdGlvblRvV2ViUHJvY2Vz
cykpCisgICAgOiBtX2Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MoY29ubmVjdGlvblRvV2ViUHJvY2Vz
cykKICAgICAsIG1faWRlbnRpZmllcihpZGVudGlmaWVyKQogICAgICwgbV93ZWJNUGFyc2VyRW5h
YmxlZCh3ZWJNUGFyc2VyRW5hYmxlZCkKLSAgICAsIG1fcmVtb3RlTWVkaWFQbGF5ZXJQcm94eSht
YWtlV2Vha1B0cihyZW1vdGVNZWRpYVBsYXllclByb3h5KSkKKyAgICAsIG1fcmVtb3RlTWVkaWFQ
bGF5ZXJQcm94eShyZW1vdGVNZWRpYVBsYXllclByb3h5KQogewogICAgIG1fY29ubmVjdGlvblRv
V2ViUHJvY2Vzcy0+bWVzc2FnZVJlY2VpdmVyTWFwKCkuYWRkTWVzc2FnZVJlY2VpdmVyKE1lc3Nh
Z2VzOjpSZW1vdGVNZWRpYVNvdXJjZVByb3h5OjptZXNzYWdlUmVjZWl2ZXJOYW1lKCksIG1faWRl
bnRpZmllci50b1VJbnQ2NCgpLCAqdGhpcyk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlUmVtb3RlQ29tbWFuZExpc3RlbmVyUHJveHkuY3BwIGIv
U291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZVJlbW90ZUNvbW1hbmRMaXN0ZW5l
clByb3h5LmNwcAppbmRleCA4M2Q4N2EwYWYwZTAxYWYzNGM5M2Q4YTgxYmJjMzRlMWUyYjdiNzM1
Li45Yzk3NGE0ZTBhOGQzYmYzYjIzMWJhZTcwM2M5YzI5OGVlNGY3OGYwIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlUmVtb3RlQ29tbWFuZExpc3RlbmVy
UHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVSZW1v
dGVDb21tYW5kTGlzdGVuZXJQcm94eS5jcHAKQEAgLTM3LDcgKzM3LDcgQEAgbmFtZXNwYWNlIFdl
YktpdCB7CiB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIAogUmVtb3RlUmVtb3RlQ29tbWFuZExp
c3RlbmVyUHJveHk6OlJlbW90ZVJlbW90ZUNvbW1hbmRMaXN0ZW5lclByb3h5KEdQVUNvbm5lY3Rp
b25Ub1dlYlByb2Nlc3MmIGdwdUNvbm5lY3Rpb24sIFJlbW90ZVJlbW90ZUNvbW1hbmRMaXN0ZW5l
cklkZW50aWZpZXImJiBpZGVudGlmaWVyKQotICAgIDogbV9ncHVDb25uZWN0aW9uKG1ha2VXZWFr
UHRyKGdwdUNvbm5lY3Rpb24pKQorICAgIDogbV9ncHVDb25uZWN0aW9uKGdwdUNvbm5lY3Rpb24p
CiAgICAgLCBtX2lkZW50aWZpZXIoV1RGTW92ZShpZGVudGlmaWVyKSkKIHsKIH0KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVTb3VyY2VCdWZmZXJQcm94
eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlU291cmNlQnVmZmVy
UHJveHkuY3BwCmluZGV4IGQ3ZGRlMGE4ZWNjZmE5OGE5MDhkOWU1ZTJmYWZmMGQ3ZGU2YzY5ZGIu
LjI3OTE2NWRlNjZhYWZlMDI0NjgxZTE2MWEwMzVjNGExMDk1NGU2ZTEgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVTb3VyY2VCdWZmZXJQcm94eS5jcHAK
KysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZVNvdXJjZUJ1ZmZlclBy
b3h5LmNwcApAQCAtNTAsMTAgKzUwLDEwIEBAIFJlZjxSZW1vdGVTb3VyY2VCdWZmZXJQcm94eT4g
UmVtb3RlU291cmNlQnVmZmVyUHJveHk6OmNyZWF0ZShHUFVDb25uZWN0aW9uVG9XZWJQCiB9CiAK
IFJlbW90ZVNvdXJjZUJ1ZmZlclByb3h5OjpSZW1vdGVTb3VyY2VCdWZmZXJQcm94eShHUFVDb25u
ZWN0aW9uVG9XZWJQcm9jZXNzJiBjb25uZWN0aW9uVG9XZWJQcm9jZXNzLCBSZW1vdGVTb3VyY2VC
dWZmZXJJZGVudGlmaWVyIGlkZW50aWZpZXIsIFJlZjxTb3VyY2VCdWZmZXJQcml2YXRlPiYmIHNv
dXJjZUJ1ZmZlclByaXZhdGUsIFJlbW90ZU1lZGlhUGxheWVyUHJveHkmIHJlbW90ZU1lZGlhUGxh
eWVyUHJveHkpCi0gICAgOiBtX2Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MobWFrZVdlYWtQdHIoY29u
bmVjdGlvblRvV2ViUHJvY2VzcykpCisgICAgOiBtX2Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MoY29u
bmVjdGlvblRvV2ViUHJvY2VzcykKICAgICAsIG1faWRlbnRpZmllcihpZGVudGlmaWVyKQogICAg
ICwgbV9zb3VyY2VCdWZmZXJQcml2YXRlKFdURk1vdmUoc291cmNlQnVmZmVyUHJpdmF0ZSkpCi0g
ICAgLCBtX3JlbW90ZU1lZGlhUGxheWVyUHJveHkobWFrZVdlYWtQdHIocmVtb3RlTWVkaWFQbGF5
ZXJQcm94eSkpCisgICAgLCBtX3JlbW90ZU1lZGlhUGxheWVyUHJveHkocmVtb3RlTWVkaWFQbGF5
ZXJQcm94eSkKIHsKICAgICBtX2Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MtPm1lc3NhZ2VSZWNlaXZl
ck1hcCgpLmFkZE1lc3NhZ2VSZWNlaXZlcihNZXNzYWdlczo6UmVtb3RlU291cmNlQnVmZmVyUHJv
eHk6Om1lc3NhZ2VSZWNlaXZlck5hbWUoKSwgbV9pZGVudGlmaWVyLnRvVUludDY0KCksICp0aGlz
KTsKICAgICBtX3NvdXJjZUJ1ZmZlclByaXZhdGUtPnNldENsaWVudCh0aGlzKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVUZXh0VHJhY2tQcm94eS5j
cHAgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlVGV4dFRyYWNrUHJveHku
Y3BwCmluZGV4IDk4ZDY2MzVlOWE1MDcyNGRmOWU5Yzg3YThiMGI1NDY0ODMzYjk3N2MuLmFjMjEw
Nzk0Y2Q0ZTMwMTAzMjVjNmM2YjNjY2ZhODZmYjRlODk1MTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVUZXh0VHJhY2tQcm94eS5jcHAKKysrIGIvU291
cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZVRleHRUcmFja1Byb3h5LmNwcApAQCAt
NDQsNyArNDQsNyBAQCBuYW1lc3BhY2UgV2ViS2l0IHsKIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3Jl
OwogCiBSZW1vdGVUZXh0VHJhY2tQcm94eTo6UmVtb3RlVGV4dFRyYWNrUHJveHkoR1BVQ29ubmVj
dGlvblRvV2ViUHJvY2VzcyYgY29ubmVjdGlvblRvV2ViUHJvY2VzcywgVHJhY2tQcml2YXRlUmVt
b3RlSWRlbnRpZmllciBpZGVudGlmaWVyLCBJbmJhbmRUZXh0VHJhY2tQcml2YXRlJiB0cmFja1By
aXZhdGUsIE1lZGlhUGxheWVySWRlbnRpZmllciBtZWRpYVBsYXllcklkZW50aWZpZXIpCi0gICAg
OiBtX2Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MobWFrZVdlYWtQdHIoY29ubmVjdGlvblRvV2ViUHJv
Y2VzcykpCisgICAgOiBtX2Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MoY29ubmVjdGlvblRvV2ViUHJv
Y2VzcykKICAgICAsIG1faWRlbnRpZmllcihpZGVudGlmaWVyKQogICAgICwgbV90cmFja1ByaXZh
dGUodHJhY2tQcml2YXRlKQogICAgICwgbV9tZWRpYVBsYXllcklkZW50aWZpZXIobWVkaWFQbGF5
ZXJJZGVudGlmaWVyKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlh
L1JlbW90ZVZpZGVvVHJhY2tQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVk
aWEvUmVtb3RlVmlkZW9UcmFja1Byb3h5LmNwcAppbmRleCA0OWM0N2EzNTUxMzhiMjVhNTliODMx
MjdiNWU2OWM2Y2ViMjk3OTQyLi5mZjM3YzRmOTljM2MxOTZhN2U1NmU5ZmRjNzg2NzUxZmJjNzVh
YjQ5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlVmlk
ZW9UcmFja1Byb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVt
b3RlVmlkZW9UcmFja1Byb3h5LmNwcApAQCAtNDAsNyArNDAsNyBAQCBuYW1lc3BhY2UgV2ViS2l0
IHsKIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogCiBSZW1vdGVWaWRlb1RyYWNrUHJveHk6OlJl
bW90ZVZpZGVvVHJhY2tQcm94eShHUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzJiBjb25uZWN0aW9u
VG9XZWJQcm9jZXNzLCBUcmFja1ByaXZhdGVSZW1vdGVJZGVudGlmaWVyIGlkZW50aWZpZXIsIFZp
ZGVvVHJhY2tQcml2YXRlJiB0cmFja1ByaXZhdGUsIE1lZGlhUGxheWVySWRlbnRpZmllciBtZWRp
YVBsYXllcklkZW50aWZpZXIpCi0gICAgOiBtX2Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MobWFrZVdl
YWtQdHIoY29ubmVjdGlvblRvV2ViUHJvY2VzcykpCisgICAgOiBtX2Nvbm5lY3Rpb25Ub1dlYlBy
b2Nlc3MoY29ubmVjdGlvblRvV2ViUHJvY2VzcykKICAgICAsIG1faWRlbnRpZmllcihpZGVudGlm
aWVyKQogICAgICwgbV90cmFja1ByaXZhdGUodHJhY2tQcml2YXRlKQogICAgICwgbV9tZWRpYVBs
YXllcklkZW50aWZpZXIobWVkaWFQbGF5ZXJJZGVudGlmaWVyKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9DbGFzc2lmaWVyL1dlYlJlc291cmNlTG9hZFN0YXRpc3Rp
Y3NTdG9yZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0NsYXNzaWZpZXIvV2Vi
UmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlLmNwcAppbmRleCBhZWE0MDkxYTViYjE0YjcxYTU5
MTUyZmFhNGY0NzhmNWNiZDRjNTE5Li41Mzk5NTQ1NWY3NWYzYzViZjRiZjk2MjM4ZjYzZjNkNzIz
NzVmNDFmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0NsYXNzaWZp
ZXIvV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0
L05ldHdvcmtQcm9jZXNzL0NsYXNzaWZpZXIvV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3Jl
LmNwcApAQCAtMTUwLDcgKzE1MCw3IEBAIHN0YXRpYyBSZWY8U3VzcGVuZGFibGVXb3JrUXVldWU+
IHNoYXJlZFN0YXRpc3RpY3NRdWV1ZSgpCiB9CiAKIFdlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NT
dG9yZTo6V2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlKE5ldHdvcmtTZXNzaW9uJiBuZXR3
b3JrU2Vzc2lvbiwgY29uc3QgU3RyaW5nJiByZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGlyZWN0b3J5
LCBTaG91bGRJbmNsdWRlTG9jYWxob3N0IHNob3VsZEluY2x1ZGVMb2NhbGhvc3QsIFJlc291cmNl
TG9hZFN0YXRpc3RpY3M6OklzRXBoZW1lcmFsIGlzRXBoZW1lcmFsKQotICAgIDogbV9uZXR3b3Jr
U2Vzc2lvbihtYWtlV2Vha1B0cihuZXR3b3JrU2Vzc2lvbikpCisgICAgOiBtX25ldHdvcmtTZXNz
aW9uKG5ldHdvcmtTZXNzaW9uKQogICAgICwgbV9zdGF0aXN0aWNzUXVldWUoc2hhcmVkU3RhdGlz
dGljc1F1ZXVlKCkpCiAgICAgLCBtX2RhaWx5VGFza3NUaW1lcihSdW5Mb29wOjptYWluKCksIHRo
aXMsICZXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmU6OnBlcmZvcm1EYWlseVRhc2tzKQog
ICAgICwgbV9pc0VwaGVtZXJhbChpc0VwaGVtZXJhbCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvTmV0d29ya1Byb2Nlc3MvRG93bmxvYWRzL2NvY29hL1dLRG93bmxvYWRQcm9ncmVzcy5tbSBi
L1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvRG93bmxvYWRzL2NvY29hL1dLRG93bmxvYWRQ
cm9ncmVzcy5tbQppbmRleCAyZGFhOTM2NWUxNmI1NmMwOWE5MjBjMGE1MGI4MDdjNmMyZTVlNzUx
Li41NzAzNWQxMjRlN2E0OTJmNGFjNDgzNGQwZjQ5YjUzMDU4M2EwZWJhIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0Rvd25sb2Fkcy9jb2NvYS9XS0Rvd25sb2FkUHJv
Z3Jlc3MubW0KKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9Eb3dubG9hZHMvY29j
b2EvV0tEb3dubG9hZFByb2dyZXNzLm1tCkBAIC01Niw3ICs1Niw3IEBAIC0gKGluc3RhbmNldHlw
ZSlpbml0V2l0aERvd25sb2FkVGFzazooTlNVUkxTZXNzaW9uRG93bmxvYWRUYXNrICopdGFzayBk
b3dubG9hZDooCiAgICAgICAgIHJldHVybiBuaWw7CiAKICAgICBtX3Rhc2sgPSB0YXNrOwotICAg
IG1fZG93bmxvYWQgPSBtYWtlV2Vha1B0cihkb3dubG9hZCk7CisgICAgbV9kb3dubG9hZCA9IGRv
d25sb2FkOwogCiAgICAgW3Rhc2sgYWRkT2JzZXJ2ZXI6c2VsZiBmb3JLZXlQYXRoOmNvdW50T2ZC
eXRlc0V4cGVjdGVkVG9SZWNlaXZlS2V5UGF0aCBvcHRpb25zOk5TS2V5VmFsdWVPYnNlcnZpbmdP
cHRpb25OZXcgfCBOU0tleVZhbHVlT2JzZXJ2aW5nT3B0aW9uSW5pdGlhbCBjb250ZXh0OldLRG93
bmxvYWRQcm9ncmVzc0J5dGVzRXhwZWN0ZWRUb1JlY2VpdmVDb3VudENvbnRleHRdOwogICAgIFt0
YXNrIGFkZE9ic2VydmVyOnNlbGYgZm9yS2V5UGF0aDpjb3VudE9mQnl0ZXNSZWNlaXZlZEtleVBh
dGggb3B0aW9uczpOU0tleVZhbHVlT2JzZXJ2aW5nT3B0aW9uTmV3IHwgTlNLZXlWYWx1ZU9ic2Vy
dmluZ09wdGlvbkluaXRpYWwgY29udGV4dDpXS0Rvd25sb2FkUHJvZ3Jlc3NCeXRlc1JlY2VpdmVk
Q29udGV4dF07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdv
cmtDT1JTUHJlZmxpZ2h0Q2hlY2tlci5jcHAgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNz
L05ldHdvcmtDT1JTUHJlZmxpZ2h0Q2hlY2tlci5jcHAKaW5kZXggMTdiNGY5YTljOGNiOGFjNTBk
NWNlYmRlOTVkYTYzMzY1YmM0MWU5MS4uZjQwNTk2NjRkYzdhMmEwZTMxZjM2NjExMzhmMWEzNmEw
YjNmMDg1NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3Jr
Q09SU1ByZWZsaWdodENoZWNrZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nl
c3MvTmV0d29ya0NPUlNQcmVmbGlnaHRDaGVja2VyLmNwcApAQCAtNDYsNyArNDYsNyBAQCBOZXR3
b3JrQ09SU1ByZWZsaWdodENoZWNrZXI6Ok5ldHdvcmtDT1JTUHJlZmxpZ2h0Q2hlY2tlcihOZXR3
b3JrUHJvY2VzcyYgbmV0d29yawogICAgICwgbV9uZXR3b3JrUHJvY2VzcyhuZXR3b3JrUHJvY2Vz
cykKICAgICAsIG1fY29tcGxldGlvbkNhbGxiYWNrKFdURk1vdmUoY29tcGxldGlvbkNhbGxiYWNr
KSkKICAgICAsIG1fc2hvdWxkQ2FwdHVyZUV4dHJhTmV0d29ya0xvYWRNZXRyaWNzKHNob3VsZENh
cHR1cmVFeHRyYU5ldHdvcmtMb2FkTWV0cmljcykKLSAgICAsIG1fbmV0d29ya1Jlc291cmNlTG9h
ZGVyKG1ha2VXZWFrUHRyKG5ldHdvcmtSZXNvdXJjZUxvYWRlcikpCisgICAgLCBtX25ldHdvcmtS
ZXNvdXJjZUxvYWRlcihuZXR3b3JrUmVzb3VyY2VMb2FkZXIpCiB7CiB9CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nl
c3MuY3BwIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRv
V2ViUHJvY2Vzcy5jcHAKaW5kZXggN2VmZjJlODk4NTIwNTdhMjc3MzlkNjEyNmFmYTIwNGMzMjll
NGIxNC4uNWQ3YjVlYTE0NjE2OGRmNGQwNDk3YjIxNDFmM2IzZDhkMTMwYjA2NyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJv
Y2Vzcy5jcHAKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVj
dGlvblRvV2ViUHJvY2Vzcy5jcHAKQEAgLTExMzksNyArMTEzOSw3IEBAIHZvaWQgTmV0d29ya0Nv
bm5lY3Rpb25Ub1dlYlByb2Nlc3M6OmVzdGFibGlzaFNXU2VydmVyQ29ubmVjdGlvbigpCiAgICAg
YXV0byYgc2VydmVyID0gbV9uZXR3b3JrUHJvY2Vzcy0+c3dTZXJ2ZXJGb3JTZXNzaW9uKG1fc2Vz
c2lvbklEKTsKICAgICBhdXRvIGNvbm5lY3Rpb24gPSBtYWtlVW5pcXVlPFdlYlNXU2VydmVyQ29u
bmVjdGlvbj4obV9uZXR3b3JrUHJvY2Vzcywgc2VydmVyLCBtX2Nvbm5lY3Rpb24uZ2V0KCksIG1f
d2ViUHJvY2Vzc0lkZW50aWZpZXIpOwogCi0gICAgbV9zd0Nvbm5lY3Rpb24gPSBtYWtlV2Vha1B0
cigqY29ubmVjdGlvbik7CisgICAgbV9zd0Nvbm5lY3Rpb24gPSAqY29ubmVjdGlvbjsKICAgICBz
ZXJ2ZXIuYWRkQ29ubmVjdGlvbihXVEZNb3ZlKGNvbm5lY3Rpb24pKTsKIH0KIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrRGF0YVRhc2suY3BwIGIvU291
cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrRGF0YVRhc2suY3BwCmluZGV4IGRlZTRm
ODk3NDI4M2I0MDAxMDk2YzlhZDM5NjY5MzY4Zjc0YzFiYzUuLmQ1MTc4NTczZGNjYTE5ZDVlNjY2
ZDRhNGM3MTg4NTgzYmIxMTdhMjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1By
b2Nlc3MvTmV0d29ya0RhdGFUYXNrLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9j
ZXNzL05ldHdvcmtEYXRhVGFzay5jcHAKQEAgLTY0LDcgKzY0LDcgQEAgUmVmPE5ldHdvcmtEYXRh
VGFzaz4gTmV0d29ya0RhdGFUYXNrOjpjcmVhdGUoTmV0d29ya1Nlc3Npb24mIHNlc3Npb24sIE5l
dHdvcmtEYXQKIH0KIAogTmV0d29ya0RhdGFUYXNrOjpOZXR3b3JrRGF0YVRhc2soTmV0d29ya1Nl
c3Npb24mIHNlc3Npb24sIE5ldHdvcmtEYXRhVGFza0NsaWVudCYgY2xpZW50LCBjb25zdCBSZXNv
dXJjZVJlcXVlc3QmIHJlcXVlc3RXaXRoQ3JlZGVudGlhbHMsIFN0b3JlZENyZWRlbnRpYWxzUG9s
aWN5IHN0b3JlZENyZWRlbnRpYWxzUG9saWN5LCBib29sIHNob3VsZENsZWFyUmVmZXJyZXJPbkhU
VFBTVG9IVFRQUmVkaXJlY3QsIGJvb2wgZGF0YVRhc2tJc0Zvck1haW5GcmFtZU5hdmlnYXRpb24p
Ci0gICAgOiBtX3Nlc3Npb24obWFrZVdlYWtQdHIoc2Vzc2lvbikpCisgICAgOiBtX3Nlc3Npb24o
c2Vzc2lvbikKICAgICAsIG1fY2xpZW50KCZjbGllbnQpCiAgICAgLCBtX3BhcnRpdGlvbihyZXF1
ZXN0V2l0aENyZWRlbnRpYWxzLmNhY2hlUGFydGl0aW9uKCkpCiAgICAgLCBtX3N0b3JlZENyZWRl
bnRpYWxzUG9saWN5KHN0b3JlZENyZWRlbnRpYWxzUG9saWN5KQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrTG9hZC5jcHAgYi9Tb3VyY2UvV2ViS2l0L05l
dHdvcmtQcm9jZXNzL05ldHdvcmtMb2FkLmNwcAppbmRleCBhYWY2YjExZDNlZDk5MjczNWE2MjA1
OGEwODIwNGNjMGZiMzkzNTFhLi5hMTg1YmE1NmJiNzI2NDM3MjkyYzJiMWUwZDYyNDlkM2ZhY2Fl
Y2U4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtMb2Fk
LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtMb2FkLmNwcApA
QCAtNzYsNyArNzYsNyBAQCB2b2lkIE5ldHdvcmtMb2FkOjpzdGFydFdpdGhTY2hlZHVsaW5nKCkK
IHsKICAgICBpZiAoIW1fdGFzayB8fCAhbV90YXNrLT5uZXR3b3JrU2Vzc2lvbigpKQogICAgICAg
ICByZXR1cm47Ci0gICAgbV9zY2hlZHVsZXIgPSBtYWtlV2Vha1B0cihtX3Rhc2stPm5ldHdvcmtT
ZXNzaW9uKCktPm5ldHdvcmtMb2FkU2NoZWR1bGVyKCkpOworICAgIG1fc2NoZWR1bGVyID0gbV90
YXNrLT5uZXR3b3JrU2Vzc2lvbigpLT5uZXR3b3JrTG9hZFNjaGVkdWxlcigpOwogICAgIG1fc2No
ZWR1bGVyLT5zY2hlZHVsZSgqdGhpcyk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
TmV0d29ya1Byb2Nlc3MvTmV0d29ya0xvYWRDaGVja2VyLmNwcCBiL1NvdXJjZS9XZWJLaXQvTmV0
d29ya1Byb2Nlc3MvTmV0d29ya0xvYWRDaGVja2VyLmNwcAppbmRleCA4YjRjY2E3NjIxMjczMzBj
OWVkOTMwZDg3NDA4NGY1NGQ0NGZiODQ0Li4yNzVlZmI3MzZlYzEzMmQ2NjFiOTUyNDc3YzFhMzc3
MThiZGQzYWZmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdv
cmtMb2FkQ2hlY2tlci5jcHAKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3
b3JrTG9hZENoZWNrZXIuY3BwCkBAIC02Nyw3ICs2Nyw3IEBAIE5ldHdvcmtMb2FkQ2hlY2tlcjo6
TmV0d29ya0xvYWRDaGVja2VyKE5ldHdvcmtQcm9jZXNzJiBuZXR3b3JrUHJvY2VzcywgTmV0d29y
a1JlCiAgICAgLCBtX3Nob3VsZENhcHR1cmVFeHRyYU5ldHdvcmtMb2FkTWV0cmljcyhzaG91bGRD
YXB0dXJlRXh0cmFOZXR3b3JrTG9hZE1ldHJpY3MpCiAgICAgLCBtX3JlcXVlc3RMb2FkVHlwZShy
ZXF1ZXN0TG9hZFR5cGUpCiAgICAgLCBtX3NjaGVtZVJlZ2lzdHJ5KHNjaGVtZVJlZ2lzdHJ5KQot
ICAgICwgbV9uZXR3b3JrUmVzb3VyY2VMb2FkZXIobWFrZVdlYWtQdHIobmV0d29ya1Jlc291cmNl
TG9hZGVyKSkKKyAgICAsIG1fbmV0d29ya1Jlc291cmNlTG9hZGVyKG5ldHdvcmtSZXNvdXJjZUxv
YWRlcikKIHsKICAgICBtX2lzU2FtZU9yaWdpblJlcXVlc3QgPSBpc1NhbWVPcmlnaW4obV91cmws
IG1fb3JpZ2luLmdldCgpKTsKICAgICBzd2l0Y2ggKG9wdGlvbnMuY3JlZGVudGlhbHMpIHsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuY3Bw
IGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5jcHAKaW5kZXgg
MWQ1YWNkNTAyMmQyNjU1NzUwNzJhMDVlZTRmYjFkNzdhYTRlYTE3NC4uZjk1MDYyNjE0ZTk2NDBj
M2NkNjI5ZDczOTRjYmViODU5ODJiNTRjOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3
b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5jcHAKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3Jr
UHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5jcHAKQEAgLTEzODgsNyArMTM4OCw3IEBAIHZvaWQgTmV0
d29ya1Byb2Nlc3M6OnByZWNvbm5lY3RUbyhQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIFdlYlBh
Z2VQcm94eUlkZW50aWZpCiAgICAgcGFyYW1ldGVycy5zaG91bGRQcmVjb25uZWN0T25seSA9IFBy
ZWNvbm5lY3RPbmx5OjpZZXM7CiAKICAgICBuZXR3b3JrU2Vzc2lvbi0+bmV0d29ya0xvYWRTY2hl
ZHVsZXIoKS5zdGFydGVkUHJlY29ubmVjdEZvck1haW5SZXNvdXJjZSh1cmwsIHVzZXJBZ2VudCk7
Ci0gICAgYXV0byB0YXNrID0gbmV3IFByZWNvbm5lY3RUYXNrKCpuZXR3b3JrU2Vzc2lvbiwgV1RG
TW92ZShwYXJhbWV0ZXJzKSwgW3dlYWtOZXR3b3JrU2Vzc2lvbiA9IG1ha2VXZWFrUHRyKCpuZXR3
b3JrU2Vzc2lvbiksIHVybCwgdXNlckFnZW50XShjb25zdCBXZWJDb3JlOjpSZXNvdXJjZUVycm9y
JiBlcnJvcikgeworICAgIGF1dG8gdGFzayA9IG5ldyBQcmVjb25uZWN0VGFzaygqbmV0d29ya1Nl
c3Npb24sIFdURk1vdmUocGFyYW1ldGVycyksIFt3ZWFrTmV0d29ya1Nlc3Npb24gPSBXZWFrUHRy
IHsgKm5ldHdvcmtTZXNzaW9uIH0sIHVybCwgdXNlckFnZW50XShjb25zdCBXZWJDb3JlOjpSZXNv
dXJjZUVycm9yJiBlcnJvcikgewogICAgICAgICBpZiAod2Vha05ldHdvcmtTZXNzaW9uKQogICAg
ICAgICAgICAgd2Vha05ldHdvcmtTZXNzaW9uLT5uZXR3b3JrTG9hZFNjaGVkdWxlcigpLmZpbmlz
aGVkUHJlY29ubmVjdEZvck1haW5SZXNvdXJjZSh1cmwsIHVzZXJBZ2VudCwgZXJyb3IpOwogICAg
IH0pOwpAQCAtMTk0MCw3ICsxOTQwLDcgQEAgdm9pZCBOZXR3b3JrUHJvY2Vzczo6ZGVsZXRlQW5k
UmVzdHJpY3RXZWJzaXRlRGF0YUZvclJlZ2lzdHJhYmxlRG9tYWlucyhQQUw6OlNlc3MKIAogICAg
IGlmICh3ZWJzaXRlRGF0YVR5cGVzLmNvbnRhaW5zKFdlYnNpdGVEYXRhVHlwZTo6RGlza0NhY2hl
KSkgewogICAgICAgICBmb3JFYWNoTmV0d29ya1Nlc3Npb24oW3Nlc3Npb25JRCwgZmV0Y2hPcHRp
b25zLCAmZG9tYWluc1RvRGVsZXRlQWxsTm9uQ29va2llV2Vic2l0ZURhdGFGb3IsICZjYWxsYmFj
a0FnZ3JlZ2F0b3JdKGF1dG8mIHNlc3Npb24pIHsKLSAgICAgICAgICAgIGZldGNoRGlza0NhY2hl
RW50cmllcyhzZXNzaW9uLmNhY2hlKCksIHNlc3Npb25JRCwgZmV0Y2hPcHRpb25zLCBbZG9tYWlu
c1RvRGVsZXRlQWxsTm9uQ29va2llV2Vic2l0ZURhdGFGb3IsIGNhbGxiYWNrQWdncmVnYXRvciwg
c2Vzc2lvbiA9IG1ha2VXZWFrUHRyKCZzZXNzaW9uKV0oYXV0byBlbnRyaWVzKSBtdXRhYmxlIHsK
KyAgICAgICAgICAgIGZldGNoRGlza0NhY2hlRW50cmllcyhzZXNzaW9uLmNhY2hlKCksIHNlc3Np
b25JRCwgZmV0Y2hPcHRpb25zLCBbZG9tYWluc1RvRGVsZXRlQWxsTm9uQ29va2llV2Vic2l0ZURh
dGFGb3IsIGNhbGxiYWNrQWdncmVnYXRvciwgc2Vzc2lvbiA9IFdlYWtQdHIgeyBzZXNzaW9uIH1d
KGF1dG8gZW50cmllcykgbXV0YWJsZSB7CiAgICAgICAgICAgICAgICAgaWYgKCFzZXNzaW9uKQog
ICAgICAgICAgICAgICAgICAgICByZXR1cm47CiAKQEAgLTI2MTUsNyArMjYxNSw3IEBAIHZvaWQg
TmV0d29ya1Byb2Nlc3M6OnNpbXVsYXRlUmVzb3VyY2VMb2FkU3RhdGlzdGljc1Nlc3Npb25SZXN0
YXJ0KFBBTDo6U2Vzc2lvbklECiB7CiAgICAgLy8gRklYTUU6IFJlbmFtZSB0aGlzIHRvIHNpbXVs
YXRlUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRTZXNzaW9uUmVzdGFydC4KICAgICBpZiAoYXV0byog
c2Vzc2lvbiA9IG5ldHdvcmtTZXNzaW9uKHNlc3Npb25JRCkpIHsKLSAgICAgICAgc2Vzc2lvbi0+
cmVjcmVhdGVQcml2YXRlQ2xpY2tNZWFzdXJlbWVudFN0b3JlKFtzZXNzaW9uID0gbWFrZVdlYWtQ
dHIoKnNlc3Npb24pLCBjb21wbGV0aW9uSGFuZGxlciA9IFdURk1vdmUoY29tcGxldGlvbkhhbmRs
ZXIpXSAoKSBtdXRhYmxlIHsKKyAgICAgICAgc2Vzc2lvbi0+cmVjcmVhdGVQcml2YXRlQ2xpY2tN
ZWFzdXJlbWVudFN0b3JlKFtzZXNzaW9uID0gV2Vha1B0ciB7ICpzZXNzaW9uIH0sIGNvbXBsZXRp
b25IYW5kbGVyID0gV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcildICgpIG11dGFibGUgewogICAg
ICAgICAgICAgaWYgKHNlc3Npb24pCiAgICAgICAgICAgICAgICAgc2Vzc2lvbi0+ZmlyZVByaXZh
dGVDbGlja01lYXN1cmVtZW50VGltZXJJbW1lZGlhdGVseUZvclRlc3RpbmcoKTsKICAgICAgICAg
ICAgIGNvbXBsZXRpb25IYW5kbGVyKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdv
cmtQcm9jZXNzL05ldHdvcmtSZXNvdXJjZUxvYWRlci5jcHAgYi9Tb3VyY2UvV2ViS2l0L05ldHdv
cmtQcm9jZXNzL05ldHdvcmtSZXNvdXJjZUxvYWRlci5jcHAKaW5kZXggZGFjMTg0MDVjYmNmNWY2
Y2ZkZjAzNjM0YjQ0NjhmMmZiYjE4ZDk0MC4uMGVmODFjZWRiNjdjMTk3MjAwZDI3MGNhNjk1ZDNk
YThkZmFjNmIwYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3
b3JrUmVzb3VyY2VMb2FkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mv
TmV0d29ya1Jlc291cmNlTG9hZGVyLmNwcApAQCAtODUwLDcgKzg1MCw3IEBAIHZvaWQgTmV0d29y
a1Jlc291cmNlTG9hZGVyOjpzZW5kRGlkUmVjZWl2ZVJlc3BvbnNlUG90ZW50aWFsbHlJbk5ld0Jy
b3dzaW5nQ29udGV4CiAgICAgYXV0byBleGlzdGluZ05ldHdvcmtSZXNvdXJjZUxvYWRJZGVudGlm
aWVyVG9SZXN1bWUgPSBsb2FkZXItPmlkZW50aWZpZXIoKTsKICAgICBtX2Nvbm5lY3Rpb24tPm5l
dHdvcmtTZXNzaW9uKCktPmFkZExvYWRlckF3YWl0aW5nV2ViUHJvY2Vzc1RyYW5zZmVyKGxvYWRl
ci5yZWxlYXNlTm9uTnVsbCgpKTsKICAgICBSZWdpc3RyYWJsZURvbWFpbiByZXNwb25zZURvbWFp
biB7IHJlc3BvbnNlLnVybCgpIH07Ci0gICAgbV9jb25uZWN0aW9uLT5uZXR3b3JrUHJvY2Vzcygp
LnBhcmVudFByb2Nlc3NDb25uZWN0aW9uKCktPnNlbmRXaXRoQXN5bmNSZXBseShNZXNzYWdlczo6
TmV0d29ya1Byb2Nlc3NQcm94eTo6VHJpZ2dlckJyb3dzaW5nQ29udGV4dEdyb3VwU3dpdGNoRm9y
TmF2aWdhdGlvbihtX3BhcmFtZXRlcnMud2ViUGFnZVByb3h5SUQsIG1fcGFyYW1ldGVycy5uYXZp
Z2F0aW9uSUQsIGJyb3dzaW5nQ29udGV4dEdyb3VwU3dpdGNoRGVjaXNpb24sIHJlc3BvbnNlRG9t
YWluLCBleGlzdGluZ05ldHdvcmtSZXNvdXJjZUxvYWRJZGVudGlmaWVyVG9SZXN1bWUpLCBbZXhp
c3RpbmdOZXR3b3JrUmVzb3VyY2VMb2FkSWRlbnRpZmllclRvUmVzdW1lLCBzZXNzaW9uID0gbWFr
ZVdlYWtQdHIoY29ubmVjdGlvblRvV2ViUHJvY2VzcygpLm5ldHdvcmtTZXNzaW9uKCkpXShib29s
IHN1Y2Nlc3MpIHsKKyAgICBtX2Nvbm5lY3Rpb24tPm5ldHdvcmtQcm9jZXNzKCkucGFyZW50UHJv
Y2Vzc0Nvbm5lY3Rpb24oKS0+c2VuZFdpdGhBc3luY1JlcGx5KE1lc3NhZ2VzOjpOZXR3b3JrUHJv
Y2Vzc1Byb3h5OjpUcmlnZ2VyQnJvd3NpbmdDb250ZXh0R3JvdXBTd2l0Y2hGb3JOYXZpZ2F0aW9u
KG1fcGFyYW1ldGVycy53ZWJQYWdlUHJveHlJRCwgbV9wYXJhbWV0ZXJzLm5hdmlnYXRpb25JRCwg
YnJvd3NpbmdDb250ZXh0R3JvdXBTd2l0Y2hEZWNpc2lvbiwgcmVzcG9uc2VEb21haW4sIGV4aXN0
aW5nTmV0d29ya1Jlc291cmNlTG9hZElkZW50aWZpZXJUb1Jlc3VtZSksIFtleGlzdGluZ05ldHdv
cmtSZXNvdXJjZUxvYWRJZGVudGlmaWVyVG9SZXN1bWUsIHNlc3Npb24gPSBXZWFrUHRyIHsgY29u
bmVjdGlvblRvV2ViUHJvY2VzcygpLm5ldHdvcmtTZXNzaW9uKCkgfV0oYm9vbCBzdWNjZXNzKSB7
CiAgICAgICAgIGlmIChzdWNjZXNzKQogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICBpZiAo
c2Vzc2lvbikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29y
a1NvY2tldENoYW5uZWwuY3BwIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3Jr
U29ja2V0Q2hhbm5lbC5jcHAKaW5kZXggNzcxMTJmNzhiMmI4ZTQ0ZDJjZDAyNjg1ZjJjOWVhYWYy
ODhkMTUxYy4uZTg3MTUyNDAzM2Q4NmNhNjlhYWFhNjBjZDczYTI0YjEzNmJjZjA2NiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrU29ja2V0Q2hhbm5lbC5j
cHAKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrU29ja2V0Q2hhbm5l
bC5jcHAKQEAgLTQ5LDcgKzQ5LDcgQEAgc3RkOjp1bmlxdWVfcHRyPE5ldHdvcmtTb2NrZXRDaGFu
bmVsPiBOZXR3b3JrU29ja2V0Q2hhbm5lbDo6Y3JlYXRlKE5ldHdvcmtDb25uZWMKIE5ldHdvcmtT
b2NrZXRDaGFubmVsOjpOZXR3b3JrU29ja2V0Q2hhbm5lbChOZXR3b3JrQ29ubmVjdGlvblRvV2Vi
UHJvY2VzcyYgY29ubmVjdGlvbiwgTmV0d29ya1Nlc3Npb24qIHNlc3Npb24sIGNvbnN0IFJlc291
cmNlUmVxdWVzdCYgcmVxdWVzdCwgY29uc3QgU3RyaW5nJiBwcm90b2NvbCwgV2ViU29ja2V0SWRl
bnRpZmllciBpZGVudGlmaWVyLCBXZWJQYWdlUHJveHlJZGVudGlmaWVyIHdlYlBhZ2VQcm94eUlE
KQogICAgIDogbV9jb25uZWN0aW9uVG9XZWJQcm9jZXNzKGNvbm5lY3Rpb24pCiAgICAgLCBtX2lk
ZW50aWZpZXIoaWRlbnRpZmllcikKLSAgICAsIG1fc2Vzc2lvbihtYWtlV2Vha1B0cihzZXNzaW9u
KSkKKyAgICAsIG1fc2Vzc2lvbihzZXNzaW9uKQogICAgICwgbV9lcnJvclRpbWVyKCp0aGlzLCAm
TmV0d29ya1NvY2tldENoYW5uZWw6OnNlbmREZWxheWVkRXJyb3IpCiAgICAgLCBtX3dlYlBhZ2VQ
cm94eUlEKHdlYlBhZ2VQcm94eUlEKQogewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3
b3JrUHJvY2Vzcy9OZXR3b3JrU3RvcmFnZVNlc3Npb25Qcm92aWRlci5oIGIvU291cmNlL1dlYktp
dC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrU3RvcmFnZVNlc3Npb25Qcm92aWRlci5oCmluZGV4IGNi
MzIxOTg4ZWM4NDFjYmE5MmFjY2FlMTNjZmM0MzkyMTM0NzljY2YuLjI3ZTAxZGY1YzFjMDRjZGUw
OTM0OGIyNDhmZGYxODFhYTJlMmRkYzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29y
a1Byb2Nlc3MvTmV0d29ya1N0b3JhZ2VTZXNzaW9uUHJvdmlkZXIuaAorKysgYi9Tb3VyY2UvV2Vi
S2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtTdG9yYWdlU2Vzc2lvblByb3ZpZGVyLmgKQEAgLTM5
LDcgKzM5LDcgQEAgcHVibGljOgogICAgIAogcHJpdmF0ZToKICAgICBOZXR3b3JrU3RvcmFnZVNl
c3Npb25Qcm92aWRlcihOZXR3b3JrUHJvY2VzcyYgbmV0d29ya1Byb2Nlc3MsIFBBTDo6U2Vzc2lv
bklEIHNlc3Npb25JRCkKLSAgICAgICAgOiBtX25ldHdvcmtQcm9jZXNzKG1ha2VXZWFrUHRyKG5l
dHdvcmtQcm9jZXNzKSkKKyAgICAgICAgOiBtX25ldHdvcmtQcm9jZXNzKG5ldHdvcmtQcm9jZXNz
KQogICAgICAgICAsIG1fc2Vzc2lvbklEKHNlc3Npb25JRCkgeyB9CiAKICAgICBXZWJDb3JlOjpO
ZXR3b3JrU3RvcmFnZVNlc3Npb24qIHN0b3JhZ2VTZXNzaW9uKCkgY29uc3QgZmluYWwKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvUHJpdmF0ZUNsaWNrTWVhc3VyZW1l
bnQvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRDbGllbnRJbXBsLmNwcCBiL1NvdXJjZS9XZWJLaXQv
TmV0d29ya1Byb2Nlc3MvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvUHJpdmF0ZUNsaWNrTWVhc3Vy
ZW1lbnRDbGllbnRJbXBsLmNwcAppbmRleCA1NzZlNGY1OTQ5ODczZmVmNjM2NjZkY2JhMjRlOWI5
OTdkOWUyMDdmLi5hOTg3YzY1ZTFiYTEwNGIwYWYyMmJlOWQ0NmVjNzgyOWVkOGY0NWZkIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1ByaXZhdGVDbGlja01lYXN1cmVt
ZW50L1ByaXZhdGVDbGlja01lYXN1cmVtZW50Q2xpZW50SW1wbC5jcHAKKysrIGIvU291cmNlL1dl
YktpdC9OZXR3b3JrUHJvY2Vzcy9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9Qcml2YXRlQ2xpY2tN
ZWFzdXJlbWVudENsaWVudEltcGwuY3BwCkBAIC0zNCw3ICszNCw3IEBAIG5hbWVzcGFjZSBXZWJL
aXQgewogbmFtZXNwYWNlIFBDTSB7CiAKIENsaWVudEltcGw6OkNsaWVudEltcGwoTmV0d29ya1Nl
c3Npb24mIHNlc3Npb24sIE5ldHdvcmtQcm9jZXNzJiBuZXR3b3JrUHJvY2VzcykKLSAgICA6IG1f
bmV0d29ya1Nlc3Npb24obWFrZVdlYWtQdHIoc2Vzc2lvbikpCisgICAgOiBtX25ldHdvcmtTZXNz
aW9uKHNlc3Npb24pCiAgICAgLCBtX25ldHdvcmtQcm9jZXNzKG5ldHdvcmtQcm9jZXNzKSB7IH0K
IAogdm9pZCBDbGllbnRJbXBsOjpicm9hZGNhc3RDb25zb2xlTWVzc2FnZShKU0M6Ok1lc3NhZ2VM
ZXZlbCBtZXNzYWdlTGV2ZWwsIGNvbnN0IFN0cmluZyYgbWVzc2FnZSkKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvU2VydmljZVdvcmtlci9TZXJ2aWNlV29ya2VyRmV0
Y2hUYXNrLmNwcCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvU2VydmljZVdvcmtlci9T
ZXJ2aWNlV29ya2VyRmV0Y2hUYXNrLmNwcAppbmRleCA4MjU3ZWM4MTRmZjI5MGE2NWM2NDI1YzIy
YTU3MmRhZTMxNWU1NTEwLi5lMmJmNThkNzEyNjRjYjg3Y2YxMjM5OWUyNTdlODUwOTk1NmM5OWMx
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1NlcnZpY2VXb3JrZXIv
U2VydmljZVdvcmtlckZldGNoVGFzay5jcHAKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJv
Y2Vzcy9TZXJ2aWNlV29ya2VyL1NlcnZpY2VXb3JrZXJGZXRjaFRhc2suY3BwCkBAIC01MCw3ICs1
MCw3IEBAIG5hbWVzcGFjZSBXZWJLaXQgewogdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAKIFNl
cnZpY2VXb3JrZXJGZXRjaFRhc2s6OlNlcnZpY2VXb3JrZXJGZXRjaFRhc2soV2ViU1dTZXJ2ZXJD
b25uZWN0aW9uJiBzd1NlcnZlckNvbm5lY3Rpb24sIE5ldHdvcmtSZXNvdXJjZUxvYWRlciYgbG9h
ZGVyLCBSZXNvdXJjZVJlcXVlc3QmJiByZXF1ZXN0LCBTV1NlcnZlckNvbm5lY3Rpb25JZGVudGlm
aWVyIHNlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyLCBTZXJ2aWNlV29ya2VySWRlbnRpZmllciBz
ZXJ2aWNlV29ya2VySWRlbnRpZmllciwgU2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbklkZW50aWZp
ZXIgc2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbklkZW50aWZpZXIsIGJvb2wgc2hvdWxkU29mdFVw
ZGF0ZSkKLSAgICA6IG1fc3dTZXJ2ZXJDb25uZWN0aW9uKG1ha2VXZWFrUHRyKHN3U2VydmVyQ29u
bmVjdGlvbikpCisgICAgOiBtX3N3U2VydmVyQ29ubmVjdGlvbihzd1NlcnZlckNvbm5lY3Rpb24p
CiAgICAgLCBtX2xvYWRlcihsb2FkZXIpCiAgICAgLCBtX2ZldGNoSWRlbnRpZmllcihXZWJDb3Jl
OjpGZXRjaElkZW50aWZpZXI6OmdlbmVyYXRlKCkpCiAgICAgLCBtX3NlcnZlckNvbm5lY3Rpb25J
ZGVudGlmaWVyKHNlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyKQpAQCAtODQsNyArODQsNyBAQCB0
ZW1wbGF0ZTx0eXBlbmFtZSBNZXNzYWdlPiBib29sIFNlcnZpY2VXb3JrZXJGZXRjaFRhc2s6OnNl
bmRUb0NsaWVudChNZXNzYWdlJiYgbQogdm9pZCBTZXJ2aWNlV29ya2VyRmV0Y2hUYXNrOjpzdGFy
dChXZWJTV1NlcnZlclRvQ29udGV4dENvbm5lY3Rpb24mIHNlcnZpY2VXb3JrZXJDb25uZWN0aW9u
KQogewogICAgIFNXRkVUQ0hfUkVMRUFTRV9MT0coInN0YXJ0OiIpOwotICAgIG1fc2VydmljZVdv
cmtlckNvbm5lY3Rpb24gPSBtYWtlV2Vha1B0cihzZXJ2aWNlV29ya2VyQ29ubmVjdGlvbik7Cisg
ICAgbV9zZXJ2aWNlV29ya2VyQ29ubmVjdGlvbiA9IHNlcnZpY2VXb3JrZXJDb25uZWN0aW9uOwog
ICAgIHNlcnZpY2VXb3JrZXJDb25uZWN0aW9uLnJlZ2lzdGVyRmV0Y2goKnRoaXMpOwogCiAgICAg
c3RhcnRGZXRjaCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9T
ZXJ2aWNlV29ya2VyL1NlcnZpY2VXb3JrZXJTb2Z0VXBkYXRlTG9hZGVyLmNwcCBiL1NvdXJjZS9X
ZWJLaXQvTmV0d29ya1Byb2Nlc3MvU2VydmljZVdvcmtlci9TZXJ2aWNlV29ya2VyU29mdFVwZGF0
ZUxvYWRlci5jcHAKaW5kZXggOTUyOTg5MDRkYzI3MTgxNGM2OTZkYjk5NzJjZGVmMDU1NzczOTJl
YS4uOGVlMTEyYTlkZjgyODk1NGMxNjIzZmZmMjJjMmEyMGZkOGUyZmU3ZCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1NlcnZpY2VXb3JrZXJT
b2Z0VXBkYXRlTG9hZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1Nl
cnZpY2VXb3JrZXIvU2VydmljZVdvcmtlclNvZnRVcGRhdGVMb2FkZXIuY3BwCkBAIC01Miw3ICs1
Miw3IEBAIHZvaWQgU2VydmljZVdvcmtlclNvZnRVcGRhdGVMb2FkZXI6OnN0YXJ0KE5ldHdvcmtT
ZXNzaW9uKiBzZXNzaW9uLCBTZXJ2aWNlV29ya2VyCiBTZXJ2aWNlV29ya2VyU29mdFVwZGF0ZUxv
YWRlcjo6U2VydmljZVdvcmtlclNvZnRVcGRhdGVMb2FkZXIoTmV0d29ya1Nlc3Npb24mIHNlc3Np
b24sIFNlcnZpY2VXb3JrZXJKb2JEYXRhJiYgam9iRGF0YSwgYm9vbCBzaG91bGRSZWZyZXNoQ2Fj
aGUsIFJlc291cmNlUmVxdWVzdCYmIHJlcXVlc3QsIEhhbmRsZXImJiBjb21wbGV0aW9uSGFuZGxl
cikKICAgICA6IG1fY29tcGxldGlvbkhhbmRsZXIoV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcikp
CiAgICAgLCBtX2pvYkRhdGEoV1RGTW92ZShqb2JEYXRhKSkKLSAgICAsIG1fc2Vzc2lvbihtYWtl
V2Vha1B0cihzZXNzaW9uKSkKKyAgICAsIG1fc2Vzc2lvbihzZXNzaW9uKQogewogICAgIEFTU0VS
VCghcmVxdWVzdC5pc0NvbmRpdGlvbmFsKCkpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L05ldHdvcmtQcm9jZXNzL1NlcnZpY2VXb3JrZXIvV2ViU1dTZXJ2ZXJUb0NvbnRleHRDb25uZWN0
aW9uLmNwcCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvU2VydmljZVdvcmtlci9XZWJT
V1NlcnZlclRvQ29udGV4dENvbm5lY3Rpb24uY3BwCmluZGV4IDNjYTA5NmM3YzRiNzc5MzE4NDEw
YTNiMWEzYjcyNjMxMzY2OTFiMjMuLjg1ZWVkYzZlOTYzMmM2ZDI2MGVjYTFiMjIwYTljNTNhODg4
YzFlMmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvU2VydmljZVdv
cmtlci9XZWJTV1NlcnZlclRvQ29udGV4dENvbm5lY3Rpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJL
aXQvTmV0d29ya1Byb2Nlc3MvU2VydmljZVdvcmtlci9XZWJTV1NlcnZlclRvQ29udGV4dENvbm5l
Y3Rpb24uY3BwCkBAIC00Nyw3ICs0Nyw3IEBAIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogV2Vi
U1dTZXJ2ZXJUb0NvbnRleHRDb25uZWN0aW9uOjpXZWJTV1NlcnZlclRvQ29udGV4dENvbm5lY3Rp
b24oTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MmIGNvbm5lY3Rpb24sIFdlYlBhZ2VQcm94
eUlkZW50aWZpZXIgd2ViUGFnZVByb3h5SUQsIFJlZ2lzdHJhYmxlRG9tYWluJiYgcmVnaXN0cmFi
bGVEb21haW4sIHN0ZDo6b3B0aW9uYWw8U2VydmljZVdvcmtlckNsaWVudElkZW50aWZpZXI+IHNl
cnZpY2VXb3JrZXJQYWdlSWRlbnRpZmllciwgU1dTZXJ2ZXImIHNlcnZlcikKICAgICA6IFNXU2Vy
dmVyVG9Db250ZXh0Q29ubmVjdGlvbihXVEZNb3ZlKHJlZ2lzdHJhYmxlRG9tYWluKSwgc2Vydmlj
ZVdvcmtlclBhZ2VJZGVudGlmaWVyKQogICAgICwgbV9jb25uZWN0aW9uKGNvbm5lY3Rpb24pCi0g
ICAgLCBtX3NlcnZlcihtYWtlV2Vha1B0cihzZXJ2ZXIpKQorICAgICwgbV9zZXJ2ZXIoc2VydmVy
KQogICAgICwgbV93ZWJQYWdlUHJveHlJRCh3ZWJQYWdlUHJveHlJRCkKIHsKICAgICBzZXJ2ZXIu
YWRkQ29udGV4dENvbm5lY3Rpb24oKnRoaXMpOwpAQCAtMTg4LDcgKzE4OCw3IEBAIHZvaWQgV2Vi
U1dTZXJ2ZXJUb0NvbnRleHRDb25uZWN0aW9uOjpkaWRSZWNlaXZlRmV0Y2hUYXNrTWVzc2FnZShJ
UEM6OkNvbm5lY3Rpb24mCiB2b2lkIFdlYlNXU2VydmVyVG9Db250ZXh0Q29ubmVjdGlvbjo6cmVn
aXN0ZXJGZXRjaChTZXJ2aWNlV29ya2VyRmV0Y2hUYXNrJiB0YXNrKQogewogICAgIEFTU0VSVCgh
bV9vbmdvaW5nRmV0Y2hlcy5jb250YWlucyh0YXNrLmZldGNoSWRlbnRpZmllcigpKSk7Ci0gICAg
bV9vbmdvaW5nRmV0Y2hlcy5hZGQodGFzay5mZXRjaElkZW50aWZpZXIoKSwgbWFrZVdlYWtQdHIo
dGFzaykpOworICAgIG1fb25nb2luZ0ZldGNoZXMuYWRkKHRhc2suZmV0Y2hJZGVudGlmaWVyKCks
IHRhc2spOwogfQogCiB2b2lkIFdlYlNXU2VydmVyVG9Db250ZXh0Q29ubmVjdGlvbjo6dW5yZWdp
c3RlckZldGNoKFNlcnZpY2VXb3JrZXJGZXRjaFRhc2smIHRhc2spCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1dlYlN0b3JhZ2UvU3RvcmFnZUFyZWEuY3BwIGIvU291
cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9XZWJTdG9yYWdlL1N0b3JhZ2VBcmVhLmNwcAppbmRl
eCBkZDkxZTc4YTViMTYwOTE1MWVhYjExZTY0MDZkZjY1OWQxYmQ1MDEwLi5jODRlYWQ0MzBhYjE1
ZDk0ZmQ4ZWYyNTMzZDZlNDkyODcyYjZlMTJiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05l
dHdvcmtQcm9jZXNzL1dlYlN0b3JhZ2UvU3RvcmFnZUFyZWEuY3BwCisrKyBiL1NvdXJjZS9XZWJL
aXQvTmV0d29ya1Byb2Nlc3MvV2ViU3RvcmFnZS9TdG9yYWdlQXJlYS5jcHAKQEAgLTM3LDcgKzM3
LDcgQEAgbmFtZXNwYWNlIFdlYktpdCB7CiB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIAogU3Rv
cmFnZUFyZWE6OlN0b3JhZ2VBcmVhKExvY2FsU3RvcmFnZU5hbWVzcGFjZSogbG9jYWxTdG9yYWdl
TmFtZXNwYWNlLCBjb25zdCBTZWN1cml0eU9yaWdpbkRhdGEmIHNlY3VyaXR5T3JpZ2luLCB1bnNp
Z25lZCBxdW90YUluQnl0ZXMsIFJlZjxTdXNwZW5kYWJsZVdvcmtRdWV1ZT4mJiBxdWV1ZSkKLSAg
ICA6IG1fbG9jYWxTdG9yYWdlTmFtZXNwYWNlKG1ha2VXZWFrUHRyKGxvY2FsU3RvcmFnZU5hbWVz
cGFjZSkpCisgICAgOiBtX2xvY2FsU3RvcmFnZU5hbWVzcGFjZShsb2NhbFN0b3JhZ2VOYW1lc3Bh
Y2UpCiAgICAgLCBtX3NlY3VyaXR5T3JpZ2luKHNlY3VyaXR5T3JpZ2luKQogICAgICwgbV9xdW90
YUluQnl0ZXMocXVvdGFJbkJ5dGVzKQogICAgICwgbV9pZGVudGlmaWVyKElkZW50aWZpZXI6Omdl
bmVyYXRlKCkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1dlYlN0
b3JhZ2UvU3RvcmFnZU1hbmFnZXJTZXQuY3BwIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vz
cy9XZWJTdG9yYWdlL1N0b3JhZ2VNYW5hZ2VyU2V0LmNwcAppbmRleCAwOGY2MWFiZDdhYWI1OGRj
ZjRkYzMxZjM2MTBkYjFkN2RlZWFiNDExLi42ZmQ3MDNhNWU1YjJkMDE0MzU5ODVlYWIzYWVkYzFl
MGQxYTkzYjEzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1dlYlN0
b3JhZ2UvU3RvcmFnZU1hbmFnZXJTZXQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1By
b2Nlc3MvV2ViU3RvcmFnZS9TdG9yYWdlTWFuYWdlclNldC5jcHAKQEAgLTMxNSw3ICszMTUsNyBA
QCB2b2lkIFN0b3JhZ2VNYW5hZ2VyU2V0Ojpjb25uZWN0VG9Mb2NhbFN0b3JhZ2VBcmVhKElQQzo6
Q29ubmVjdGlvbiYgY29ubmVjdGlvbiwgUAogICAgIH0KIAogICAgIGF1dG8gc3RvcmFnZUFyZWFJ
RCA9IHN0b3JhZ2VBcmVhLT5pZGVudGlmaWVyKCk7Ci0gICAgYXV0byBpdGVyID0gbV9zdG9yYWdl
QXJlYXMuYWRkKHN0b3JhZ2VBcmVhSUQsIG1ha2VXZWFrUHRyKHN0b3JhZ2VBcmVhKSkuaXRlcmF0
b3I7CisgICAgYXV0byBpdGVyID0gbV9zdG9yYWdlQXJlYXMuYWRkKHN0b3JhZ2VBcmVhSUQsIHN0
b3JhZ2VBcmVhKS5pdGVyYXRvcjsKICAgICBBU1NFUlRfVU5VU0VEKGl0ZXIsIHN0b3JhZ2VBcmVh
ID09IGl0ZXItPnZhbHVlLmdldCgpKTsKIAogICAgIGNvbXBsZXRpb25IYW5kbGVyKHN0b3JhZ2VB
cmVhSUQpOwpAQCAtMzQwLDcgKzM0MCw3IEBAIHZvaWQgU3RvcmFnZU1hbmFnZXJTZXQ6OmNvbm5l
Y3RUb1RyYW5zaWVudExvY2FsU3RvcmFnZUFyZWEoSVBDOjpDb25uZWN0aW9uJiBjb25uCiAgICAg
fQogCiAgICAgYXV0byBzdG9yYWdlQXJlYUlEID0gc3RvcmFnZUFyZWEtPmlkZW50aWZpZXIoKTsK
LSAgICBhdXRvIGl0ZXIgPSBtX3N0b3JhZ2VBcmVhcy5hZGQoc3RvcmFnZUFyZWFJRCwgbWFrZVdl
YWtQdHIoc3RvcmFnZUFyZWEpKS5pdGVyYXRvcjsKKyAgICBhdXRvIGl0ZXIgPSBtX3N0b3JhZ2VB
cmVhcy5hZGQoc3RvcmFnZUFyZWFJRCwgc3RvcmFnZUFyZWEpLml0ZXJhdG9yOwogICAgIEFTU0VS
VF9VTlVTRUQoaXRlciwgc3RvcmFnZUFyZWEgPT0gaXRlci0+dmFsdWUuZ2V0KCkpOwogCiAgICAg
Y29tcGxldGlvbkhhbmRsZXIoc3RvcmFnZUFyZWFJRCk7CkBAIC0zNjUsNyArMzY1LDcgQEAgdm9p
ZCBTdG9yYWdlTWFuYWdlclNldDo6Y29ubmVjdFRvU2Vzc2lvblN0b3JhZ2VBcmVhKElQQzo6Q29u
bmVjdGlvbiYgY29ubmVjdGlvbiwKICAgICB9CiAKICAgICBhdXRvIHN0b3JhZ2VBcmVhSUQgPSBz
dG9yYWdlQXJlYS0+aWRlbnRpZmllcigpOwotICAgIGF1dG8gaXRlciA9IG1fc3RvcmFnZUFyZWFz
LmFkZChzdG9yYWdlQXJlYUlELCBtYWtlV2Vha1B0cihzdG9yYWdlQXJlYSkpLml0ZXJhdG9yOwor
ICAgIGF1dG8gaXRlciA9IG1fc3RvcmFnZUFyZWFzLmFkZChzdG9yYWdlQXJlYUlELCBzdG9yYWdl
QXJlYSkuaXRlcmF0b3I7CiAgICAgQVNTRVJUX1VOVVNFRChpdGVyLCBzdG9yYWdlQXJlYSA9PSBp
dGVyLT52YWx1ZS5nZXQoKSk7CiAKICAgICBjb21wbGV0aW9uSGFuZGxlcihzdG9yYWdlQXJlYUlE
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY2FjaGUvQ2FjaGVT
dG9yYWdlRW5naW5lLmNwcCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY2FjaGUvQ2Fj
aGVTdG9yYWdlRW5naW5lLmNwcAppbmRleCBiZjE5NzRmYzU3MDQxMWRlYzA1N2VhNDE0NzAyZTBj
YzA1MWY2MzMwLi5mMzI3MjE1ZmU1ODdhMThjMWRiOGM0Y2VjZDU4YjA1ZDYzNTU0ODE0IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NhY2hlL0NhY2hlU3RvcmFnZUVu
Z2luZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jYWNoZS9DYWNoZVN0
b3JhZ2VFbmdpbmUuY3BwCkBAIC0yNjAsNyArMjYwLDcgQEAgdm9pZCBFbmdpbmU6OnJlcXVlc3RT
cGFjZShjb25zdCBXZWJDb3JlOjpDbGllbnRPcmlnaW4mIG9yaWdpbiwgdWludDY0X3Qgc3BhY2VS
ZXEKIAogRW5naW5lOjpFbmdpbmUoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBOZXR3b3JrUHJv
Y2VzcyYgcHJvY2VzcywgU3RyaW5nJiYgcm9vdFBhdGgpCiAgICAgOiBtX3Nlc3Npb25JRChzZXNz
aW9uSUQpCi0gICAgLCBtX25ldHdvcmtQcm9jZXNzKG1ha2VXZWFrUHRyKHByb2Nlc3MpKQorICAg
ICwgbV9uZXR3b3JrUHJvY2Vzcyhwcm9jZXNzKQogICAgICwgbV9yb290UGF0aChXVEZNb3ZlKHJv
b3RQYXRoKSkKIHsKICAgICBpZiAoIW1fcm9vdFBhdGguaXNOdWxsKCkpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NvY29hL05ldHdvcmtEYXRhVGFza0NvY29hLm1t
IGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jb2NvYS9OZXR3b3JrRGF0YVRhc2tDb2Nv
YS5tbQppbmRleCAxOWQ0ZWI0NWI1MjM4NjE2NTBjNmVkODcwODNkNjk2YjdmNWY3YWRhLi5iOTBj
ZjAwN2VhOTk3NDY0MjA4YmU1YWZkMjc1ZTYyZGNlODM3ZDQ3IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L05ldHdvcmtQcm9jZXNzL2NvY29hL05ldHdvcmtEYXRhVGFza0NvY29hLm1tCisrKyBi
L1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY29jb2EvTmV0d29ya0RhdGFUYXNrQ29jb2Eu
bW0KQEAgLTI5Myw3ICsyOTMsNyBAQCBzdGF0aWMgaW5saW5lIGJvb2wgY29tcHV0ZUlzQWx3YXlz
T25Mb2dnaW5nQWxsb3dlZChOZXR3b3JrU2Vzc2lvbiYgc2Vzc2lvbikKIAogTmV0d29ya0RhdGFU
YXNrQ29jb2E6Ok5ldHdvcmtEYXRhVGFza0NvY29hKE5ldHdvcmtTZXNzaW9uJiBzZXNzaW9uLCBO
ZXR3b3JrRGF0YVRhc2tDbGllbnQmIGNsaWVudCwgY29uc3QgTmV0d29ya0xvYWRQYXJhbWV0ZXJz
JiBwYXJhbWV0ZXJzKQogICAgIDogTmV0d29ya0RhdGFUYXNrKHNlc3Npb24sIGNsaWVudCwgcGFy
YW1ldGVycy5yZXF1ZXN0LCBwYXJhbWV0ZXJzLnN0b3JlZENyZWRlbnRpYWxzUG9saWN5LCBwYXJh
bWV0ZXJzLnNob3VsZENsZWFyUmVmZXJyZXJPbkhUVFBTVG9IVFRQUmVkaXJlY3QsIHBhcmFtZXRl
cnMuaXNNYWluRnJhbWVOYXZpZ2F0aW9uKQotICAgICwgbV9zZXNzaW9uV3JhcHBlcihtYWtlV2Vh
a1B0cihzdGF0aWNfY2FzdDxOZXR3b3JrU2Vzc2lvbkNvY29hJj4oc2Vzc2lvbikuc2Vzc2lvbldy
YXBwZXJGb3JUYXNrKHBhcmFtZXRlcnMud2ViUGFnZVByb3h5SUQsIHBhcmFtZXRlcnMucmVxdWVz
dCwgcGFyYW1ldGVycy5zdG9yZWRDcmVkZW50aWFsc1BvbGljeSwgcGFyYW1ldGVycy5pc05hdmln
YXRpbmdUb0FwcEJvdW5kRG9tYWluKSkpCisgICAgLCBtX3Nlc3Npb25XcmFwcGVyKHN0YXRpY19j
YXN0PE5ldHdvcmtTZXNzaW9uQ29jb2EmPihzZXNzaW9uKS5zZXNzaW9uV3JhcHBlckZvclRhc2so
cGFyYW1ldGVycy53ZWJQYWdlUHJveHlJRCwgcGFyYW1ldGVycy5yZXF1ZXN0LCBwYXJhbWV0ZXJz
LnN0b3JlZENyZWRlbnRpYWxzUG9saWN5LCBwYXJhbWV0ZXJzLmlzTmF2aWdhdGluZ1RvQXBwQm91
bmREb21haW4pKQogICAgICwgbV9mcmFtZUlEKHBhcmFtZXRlcnMud2ViRnJhbWVJRCkKICAgICAs
IG1fcGFnZUlEKHBhcmFtZXRlcnMud2ViUGFnZUlEKQogICAgICwgbV93ZWJQYWdlUHJveHlJRChw
YXJhbWV0ZXJzLndlYlBhZ2VQcm94eUlEKQpAQCAtNTc4LDcgKzU3OCw3IEBAIHZvaWQgTmV0d29y
a0RhdGFUYXNrQ29jb2E6OnN3YXBTZXNzaW9uSWZOZWNlc3NhcnkoV2ViQ29yZTo6UmVzb3VyY2VS
ZXF1ZXN0JiByZXF1CiAgICAgYXV0byBwcmV2aW91c1Rhc2sgPSBzdGQ6OmV4Y2hhbmdlKG1fdGFz
aywgbnVsbHB0cik7CiAKICAgICBtX3Nlc3Npb25XcmFwcGVyLT5kYXRhVGFza01hcC5yZW1vdmUo
W3ByZXZpb3VzVGFzayB0YXNrSWRlbnRpZmllcl0pOwotICAgIG1fc2Vzc2lvbldyYXBwZXIgPSBt
YWtlV2Vha1B0cih1cGRhdGVkU2Vzc2lvbik7CisgICAgbV9zZXNzaW9uV3JhcHBlciA9IHVwZGF0
ZWRTZXNzaW9uOwogCiAgICAgbV90YXNrID0gW21fc2Vzc2lvbldyYXBwZXItPnNlc3Npb24gZGF0
YVRhc2tXaXRoUmVxdWVzdDpyZXF1ZXN0Lm5zVVJMUmVxdWVzdChXZWJDb3JlOjpIVFRQQm9keVVw
ZGF0ZVBvbGljeTo6VXBkYXRlSFRUUEJvZHkpXTsKICAgICBtX3Nlc3Npb25XcmFwcGVyLT5kYXRh
VGFza01hcC5hZGQoW21fdGFzayB0YXNrSWRlbnRpZmllcl0sIHRoaXMpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jb2NvYS9OZXR3b3JrU2Vzc2lvbkNvY29hLm1t
IGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jb2NvYS9OZXR3b3JrU2Vzc2lvbkNvY29h
Lm1tCmluZGV4IGNiNjdjYzYyNjI2ZThjOTQxZDI1YzY3YjNjMTNhMjIxNTUzNjBiMjYuLjRlOWE1
MzE5NWYxY2FmYzEwMWY3NzVlZGYwNTU3MjY1ZjJhYTBkOWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvTmV0d29ya1Byb2Nlc3MvY29jb2EvTmV0d29ya1Nlc3Npb25Db2NvYS5tbQorKysgYi9T
b3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NvY29hL05ldHdvcmtTZXNzaW9uQ29jb2EubW0K
QEAgLTQ2MCw4ICs0NjAsOCBAQCAtIChpZClpbml0V2l0aE5ldHdvcmtTZXNzaW9uOihOYWtlZFJl
ZjxXZWJLaXQ6Ok5ldHdvcmtTZXNzaW9uQ29jb2E+KXNlc3Npb24gd3JhcAogICAgIGlmICghc2Vs
ZikKICAgICAgICAgcmV0dXJuIG5pbDsKIAotICAgIF9zZXNzaW9uID0gbWFrZVdlYWtQdHIoc2Vz
c2lvbi5nZXQoKSk7Ci0gICAgX3Nlc3Npb25XcmFwcGVyID0gbWFrZVdlYWtQdHIoc2Vzc2lvbldy
YXBwZXIpOworICAgIF9zZXNzaW9uID0gc2Vzc2lvbi5nZXQoKTsKKyAgICBfc2Vzc2lvbldyYXBw
ZXIgPSBzZXNzaW9uV3JhcHBlcjsKICAgICBfd2l0aENyZWRlbnRpYWxzID0gd2l0aENyZWRlbnRp
YWxzOwogCiAgICAgcmV0dXJuIHNlbGY7CkBAIC03NDYsNyArNzQ2LDcgQEAgQUxMT1dfREVQUkVD
QVRFRF9ERUNMQVJBVElPTlNfRU5ECiAgICAgICAgICAgICAgICAgTlNVUkxQcm90ZWN0aW9uU3Bh
Y2UgKnByb3RlY3Rpb25TcGFjZSA9IGNoYWxsZW5nZS5wcm90ZWN0aW9uU3BhY2U7CiAgICAgICAg
ICAgICAgICAgbmV0d29ya0RhdGFUYXNrLT5kaWROZWdvdGlhdGVNb2Rlcm5UTFMoVVJMKFVSTCgp
LCBtYWtlU3RyaW5nKFN0cmluZyhwcm90ZWN0aW9uU3BhY2UucHJvdG9jb2wpLCAiOi8vIiwgU3Ry
aW5nKHByb3RlY3Rpb25TcGFjZS5ob3N0KSwgJzonLCBwcm90ZWN0aW9uU3BhY2UucG9ydCkpKTsK
ICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGF1dG8gZGVjaXNpb25IYW5kbGVyID0gbWFrZUJs
b2NrUHRyKFt3ZWFrU2VsZiA9IFdlYWtPYmpDUHRyPFdLTmV0d29ya1Nlc3Npb25EZWxlZ2F0ZT4o
c2VsZiksIHNlc3Npb25Db2NvYSA9IG1ha2VXZWFrUHRyKHNlc3Npb25Db2NvYSksIGNvbXBsZXRp
b25IYW5kbGVyID0gbWFrZUJsb2NrUHRyKGNvbXBsZXRpb25IYW5kbGVyKSwgdGFza0lkZW50aWZp
ZXIsIG5ldHdvcmtEYXRhVGFzayA9IFJlZlB0ciB7IG5ldHdvcmtEYXRhVGFzayB9LCBuZWdvdGlh
dGVkTGVnYWN5VExTXShOU1VSTEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlICpjaGFsbGVuZ2UsIE9T
U3RhdHVzIHRydXN0UmVzdWx0KSBtdXRhYmxlIHsKKyAgICAgICAgICAgIGF1dG8gZGVjaXNpb25I
YW5kbGVyID0gbWFrZUJsb2NrUHRyKFt3ZWFrU2VsZiA9IFdlYWtPYmpDUHRyPFdLTmV0d29ya1Nl
c3Npb25EZWxlZ2F0ZT4oc2VsZiksIHNlc3Npb25Db2NvYSA9IFdlYWtQdHIgeyBzZXNzaW9uQ29j
b2EgfSwgY29tcGxldGlvbkhhbmRsZXIgPSBtYWtlQmxvY2tQdHIoY29tcGxldGlvbkhhbmRsZXIp
LCB0YXNrSWRlbnRpZmllciwgbmV0d29ya0RhdGFUYXNrID0gUmVmUHRyIHsgbmV0d29ya0RhdGFU
YXNrIH0sIG5lZ290aWF0ZWRMZWdhY3lUTFNdKE5TVVJMQXV0aGVudGljYXRpb25DaGFsbGVuZ2Ug
KmNoYWxsZW5nZSwgT1NTdGF0dXMgdHJ1c3RSZXN1bHQpIG11dGFibGUgewogICAgICAgICAgICAg
ICAgIGF1dG8gc3Ryb25nU2VsZiA9IHdlYWtTZWxmLmdldCgpOwogICAgICAgICAgICAgICAgIGlm
ICghc3Ryb25nU2VsZikKICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGNvbXBsZXRpb25IYW5k
bGVyKE5TVVJMU2Vzc2lvbkF1dGhDaGFsbGVuZ2VDYW5jZWxBdXRoZW50aWNhdGlvbkNoYWxsZW5n
ZSwgbmlsKTsKQEAgLTE2OTUsNyArMTY5NSw3IEBAIHN0ZDo6dW5pcXVlX3B0cjxXZWJTb2NrZXRU
YXNrPiBOZXR3b3JrU2Vzc2lvbkNvY29hOjpjcmVhdGVXZWJTb2NrZXRUYXNrKFdlYlBhZ2VQCiAg
ICAgLy8gQWx0aG91Z2ggdGhlIFdlYlNvY2tldCBwcm90b2NvbCBhbGxvd3MgZnVsbCA2NC1iaXQg
bGVuZ3RocywgQ2hyb21lIGFuZCBGaXJlZm94IGxpbWl0IHRoZSBsZW5ndGggdG8gMl42MyAtIDEK
ICAgICB0YXNrLmdldCgpLm1heGltdW1NZXNzYWdlU2l6ZSA9IDB4N0ZGRkZGRkZGRkZGRkZGRnVs
bDsKIAotICAgIHJldHVybiBtYWtlVW5pcXVlPFdlYlNvY2tldFRhc2s+KGNoYW5uZWwsIHdlYlBh
Z2VQcm94eUlELCBtYWtlV2Vha1B0cihzZXNzaW9uU2V0KSwgcmVxdWVzdCwgV1RGTW92ZSh0YXNr
KSk7CisgICAgcmV0dXJuIG1ha2VVbmlxdWU8V2ViU29ja2V0VGFzaz4oY2hhbm5lbCwgd2ViUGFn
ZVByb3h5SUQsIHNlc3Npb25TZXQsIHJlcXVlc3QsIFdURk1vdmUodGFzaykpOwogfQogCiB2b2lk
IE5ldHdvcmtTZXNzaW9uQ29jb2E6OmFkZFdlYlNvY2tldFRhc2soV2ViUGFnZVByb3h5SWRlbnRp
ZmllciB3ZWJQYWdlUHJveHlJRCwgV2ViU29ja2V0VGFzayYgdGFzaykKQEAgLTE3MjgsNyArMTcy
OCw3IEBAIHZvaWQgTmV0d29ya1Nlc3Npb25Db2NvYTo6YWRkV2ViUGFnZU5ldHdvcmtQYXJhbWV0
ZXJzKFdlYlBhZ2VQcm94eUlkZW50aWZpZXIgcGFnCiAgICAgICAgIGNvbmZpZ3VyYXRpb24uZ2V0
KCkuX2F0dHJpYnV0ZWRCdW5kbGVJZGVudGlmaWVyID0gcGFyYW1ldGVycy5hdHRyaWJ1dGVkQnVu
ZGxlSWRlbnRpZmllcigpOwogI2VuZGlmCiAgICAgaW5pdGlhbGl6ZU5TVVJMU2Vzc2lvbnNJblNl
dChhZGRSZXN1bHQyLml0ZXJhdG9yLT52YWx1ZS5nZXQoKSwgY29uZmlndXJhdGlvbi5nZXQoKSk7
Ci0gICAgYWRkUmVzdWx0MS5pdGVyYXRvci0+dmFsdWUgPSBtYWtlV2Vha1B0cihhZGRSZXN1bHQy
Lml0ZXJhdG9yLT52YWx1ZS5nZXQoKSk7CisgICAgYWRkUmVzdWx0MS5pdGVyYXRvci0+dmFsdWUg
PSBhZGRSZXN1bHQyLml0ZXJhdG9yLT52YWx1ZS5nZXQoKTsKIAogICAgIG1fYXR0cmlidXRlZEJ1
bmRsZUlkZW50aWZpZXJGcm9tUGFnZUlkZW50aWZpZXJzLmFkZChwYWdlSUQsIHBhcmFtZXRlcnMu
YXR0cmlidXRlZEJ1bmRsZUlkZW50aWZpZXIoKSk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L05ldHdvcmtQcm9jZXNzL3N0b3JhZ2UvRmlsZVN5c3RlbVN0b3JhZ2VIYW5kbGUuY3BwIGIv
U291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9zdG9yYWdlL0ZpbGVTeXN0ZW1TdG9yYWdlSGFu
ZGxlLmNwcAppbmRleCAyNDJjMGEyYTIwYzQ1NzRlZWI3MWVhMzEzMTJmMWJhYTkzOTg1OWFjLi42
MzA4ZWY0ZDc3ZTljM2E3NDM5YzM0YjdkZjBjOWI2NTczNDcyMWE4IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3N0b3JhZ2UvRmlsZVN5c3RlbVN0b3JhZ2VIYW5kbGUu
Y3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvc3RvcmFnZS9GaWxlU3lzdGVt
U3RvcmFnZUhhbmRsZS5jcHAKQEAgLTQxLDcgKzQxLDcgQEAgY29uc3RleHByIGNoYXIgcGF0aFNl
cGFyYXRvciA9ICcvJzsKIAogRmlsZVN5c3RlbVN0b3JhZ2VIYW5kbGU6OkZpbGVTeXN0ZW1TdG9y
YWdlSGFuZGxlKEZpbGVTeXN0ZW1TdG9yYWdlTWFuYWdlciYgbWFuYWdlciwgVHlwZSB0eXBlLCBT
dHJpbmcmJiBwYXRoLCBTdHJpbmcmJiBuYW1lKQogICAgIDogbV9pZGVudGlmaWVyKFdlYkNvcmU6
OkZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyOjpnZW5lcmF0ZVRocmVhZFNhZmUoKSkKLSAgICAs
IG1fbWFuYWdlcihtYWtlV2Vha1B0cihtYW5hZ2VyKSkKKyAgICAsIG1fbWFuYWdlcihtYW5hZ2Vy
KQogICAgICwgbV90eXBlKHR5cGUpCiAgICAgLCBtX3BhdGgoV1RGTW92ZShwYXRoKSkKICAgICAs
IG1fbmFtZShXVEZNb3ZlKG5hbWUpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3Jr
UHJvY2Vzcy9zdG9yYWdlL0ZpbGVTeXN0ZW1TdG9yYWdlSGFuZGxlUmVnaXN0cnkuY3BwIGIvU291
cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9zdG9yYWdlL0ZpbGVTeXN0ZW1TdG9yYWdlSGFuZGxl
UmVnaXN0cnkuY3BwCmluZGV4IGI4NGNmNmNjOGIxMTQ5ZmI2YWY4MGQxZmQ3MTI2ZDg0OGFiNjI4
MGEuLjQ0MzI1YzA0YjA4YTAxMWVlY2RmMDFlMjkxMzRiYmJjZjNhZWY0ZDMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvc3RvcmFnZS9GaWxlU3lzdGVtU3RvcmFnZUhh
bmRsZVJlZ2lzdHJ5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3N0b3Jh
Z2UvRmlsZVN5c3RlbVN0b3JhZ2VIYW5kbGVSZWdpc3RyeS5jcHAKQEAgLTM2LDcgKzM2LDcgQEAg
dm9pZCBGaWxlU3lzdGVtU3RvcmFnZUhhbmRsZVJlZ2lzdHJ5OjpyZWdpc3RlckhhbmRsZShXZWJD
b3JlOjpGaWxlU3lzdGVtSGFuZGxlSWQKIHsKICAgICBBU1NFUlQoIW1faGFuZGxlcy5jb250YWlu
cyhpZGVudGlmaWVyKSk7CiAKLSAgICBtX2hhbmRsZXMuYWRkKGlkZW50aWZpZXIsIG1ha2VXZWFr
UHRyKGhhbmRsZSkpOworICAgIG1faGFuZGxlcy5hZGQoaWRlbnRpZmllciwgaGFuZGxlKTsKIH0K
IAogdm9pZCBGaWxlU3lzdGVtU3RvcmFnZUhhbmRsZVJlZ2lzdHJ5Ojp1bnJlZ2lzdGVySGFuZGxl
KFdlYkNvcmU6OkZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyIGlkZW50aWZpZXIpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtL0lQQy9Db25uZWN0aW9uLmNwcCBiL1NvdXJjZS9X
ZWJLaXQvUGxhdGZvcm0vSVBDL0Nvbm5lY3Rpb24uY3BwCmluZGV4IGQ2ZWE5YzhjYTUzYzlkNTgw
MmM2MGI2ZDNkZDQzMmExODVjOWJkYTkuLmZjYTJiNTRkMGYzYmY5MzA5OTdhZTA5ODk3MzRmZDVl
YWZmZDU3MjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm0vSVBDL0Nvbm5lY3Rp
b24uY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm0vSVBDL0Nvbm5lY3Rpb24uY3BwCkBA
IC04NTIsNyArODUyLDcgQEAgdm9pZCBDb25uZWN0aW9uOjplbmFibGVJbmNvbWluZ01lc3NhZ2Vz
VGhyb3R0bGluZygpCiAjaWYgRU5BQkxFKElQQ19URVNUSU5HX0FQSSkKIHZvaWQgQ29ubmVjdGlv
bjo6YWRkTWVzc2FnZU9ic2VydmVyKGNvbnN0IE1lc3NhZ2VPYnNlcnZlciYgb2JzZXJ2ZXIpCiB7
Ci0gICAgbV9tZXNzYWdlT2JzZXJ2ZXJzLmFwcGVuZChtYWtlV2Vha1B0cihvYnNlcnZlcikpOwor
ICAgIG1fbWVzc2FnZU9ic2VydmVycy5hcHBlbmQob2JzZXJ2ZXIpOwogfQogI2VuZGlmCiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm0vSVBDL01lc3NhZ2VSZWNlaXZlck1hcC5j
cHAgYi9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtL0lQQy9NZXNzYWdlUmVjZWl2ZXJNYXAuY3BwCmlu
ZGV4IGQ4ODBlOTBjNWJjNTI3NTYwMzg1MTE0ZjY5NzEyNzJhOWRmYWZlNTcuLjNlYjQxMmEyMjFi
YWYwODU5NjY0OGRiN2E3MGMwZjQwZDBiMTRlYmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
UGxhdGZvcm0vSVBDL01lc3NhZ2VSZWNlaXZlck1hcC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9Q
bGF0Zm9ybS9JUEMvTWVzc2FnZVJlY2VpdmVyTWFwLmNwcApAQCAtNDQsNyArNDQsNyBAQCB2b2lk
IE1lc3NhZ2VSZWNlaXZlck1hcDo6YWRkTWVzc2FnZVJlY2VpdmVyKFJlY2VpdmVyTmFtZSBtZXNz
YWdlUmVjZWl2ZXJOYW1lLCBNZQogICAgIEFTU0VSVCghbV9nbG9iYWxNZXNzYWdlUmVjZWl2ZXJz
LmNvbnRhaW5zKG1lc3NhZ2VSZWNlaXZlck5hbWUpKTsKIAogICAgIG1lc3NhZ2VSZWNlaXZlci53
aWxsQmVBZGRlZFRvTWVzc2FnZVJlY2VpdmVyTWFwKCk7Ci0gICAgbV9nbG9iYWxNZXNzYWdlUmVj
ZWl2ZXJzLnNldChtZXNzYWdlUmVjZWl2ZXJOYW1lLCBtYWtlV2Vha1B0cihtZXNzYWdlUmVjZWl2
ZXIpKTsKKyAgICBtX2dsb2JhbE1lc3NhZ2VSZWNlaXZlcnMuc2V0KG1lc3NhZ2VSZWNlaXZlck5h
bWUsIG1lc3NhZ2VSZWNlaXZlcik7CiB9CiAKIHZvaWQgTWVzc2FnZVJlY2VpdmVyTWFwOjphZGRN
ZXNzYWdlUmVjZWl2ZXIoUmVjZWl2ZXJOYW1lIG1lc3NhZ2VSZWNlaXZlck5hbWUsIHVpbnQ2NF90
IGRlc3RpbmF0aW9uSUQsIE1lc3NhZ2VSZWNlaXZlciYgbWVzc2FnZVJlY2VpdmVyKQpAQCAtNTQs
NyArNTQsNyBAQCB2b2lkIE1lc3NhZ2VSZWNlaXZlck1hcDo6YWRkTWVzc2FnZVJlY2VpdmVyKFJl
Y2VpdmVyTmFtZSBtZXNzYWdlUmVjZWl2ZXJOYW1lLCB1aQogICAgIEFTU0VSVCghbV9nbG9iYWxN
ZXNzYWdlUmVjZWl2ZXJzLmNvbnRhaW5zKG1lc3NhZ2VSZWNlaXZlck5hbWUpKTsKIAogICAgIG1l
c3NhZ2VSZWNlaXZlci53aWxsQmVBZGRlZFRvTWVzc2FnZVJlY2VpdmVyTWFwKCk7Ci0gICAgbV9t
ZXNzYWdlUmVjZWl2ZXJzLnNldChzdGQ6Om1ha2VfcGFpcihtZXNzYWdlUmVjZWl2ZXJOYW1lLCBk
ZXN0aW5hdGlvbklEKSwgbWFrZVdlYWtQdHIobWVzc2FnZVJlY2VpdmVyKSk7CisgICAgbV9tZXNz
YWdlUmVjZWl2ZXJzLnNldChzdGQ6Om1ha2VfcGFpcihtZXNzYWdlUmVjZWl2ZXJOYW1lLCBkZXN0
aW5hdGlvbklEKSwgbWVzc2FnZVJlY2VpdmVyKTsKIH0KIAogdm9pZCBNZXNzYWdlUmVjZWl2ZXJN
YXA6OnJlbW92ZU1lc3NhZ2VSZWNlaXZlcihSZWNlaXZlck5hbWUgbWVzc2FnZVJlY2VpdmVyTmFt
ZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm0vY29jb2EvV0tQYXltZW50QXV0
aG9yaXphdGlvbkRlbGVnYXRlLm1tIGIvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9jb2NvYS9XS1Bh
eW1lbnRBdXRob3JpemF0aW9uRGVsZWdhdGUubW0KaW5kZXggYTk1YmY0MzQ4NGFmNzQwYTQ4OWYw
MGJmNzM0YTAyMTE0MThhNWMwMy4uNGM3MTMwOGFlNGQ2NGRhNmFlOWRkZWJkNzJmY2RhMWNjNjhh
NTJhYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9jb2NvYS9XS1BheW1lbnRB
dXRob3JpemF0aW9uRGVsZWdhdGUubW0KKysrIGIvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9jb2Nv
YS9XS1BheW1lbnRBdXRob3JpemF0aW9uRGVsZWdhdGUubW0KQEAgLTExNiw3ICsxMTYsNyBAQCAt
IChpbnN0YW5jZXR5cGUpX2luaXRXaXRoUmVxdWVzdDooUEtQYXltZW50UmVxdWVzdCAqKXJlcXVl
c3QgcHJlc2VudGVyOihXZWJLaXQ6OgogICAgIGlmICghKHNlbGYgPSBbc3VwZXIgaW5pdF0pKQog
ICAgICAgICByZXR1cm4gbmlsOwogCi0gICAgX3ByZXNlbnRlciA9IG1ha2VXZWFrUHRyKHByZXNl
bnRlcik7CisgICAgX3ByZXNlbnRlciA9IHByZXNlbnRlcjsKICAgICBfcmVxdWVzdCA9IHJlcXVl
c3Q7CiAgICAgX3NoaXBwaW5nTWV0aG9kcyA9IHJlcXVlc3Quc2hpcHBpbmdNZXRob2RzOwogICAg
IF9zdW1tYXJ5SXRlbXMgPSByZXF1ZXN0LnBheW1lbnRTdW1tYXJ5SXRlbXM7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9BcHBsZVBheS9XZWJQYXltZW50Q29vcmRpbmF0b3JQcm94
eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9BcHBsZVBheS9XZWJQYXltZW50Q29vcmRpbmF0
b3JQcm94eS5jcHAKaW5kZXggNDViOWI1YTMzZDQxZmY4Mzk2YmYwMTFhM2JlMDllNGYzNDYzZjJh
YS4uMTQzOTlhZWY3M2I0ODRjNmJjOWRmMThhNTBmZTQ3NDIxYWQ4ZGIzMiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9TaGFyZWQvQXBwbGVQYXkvV2ViUGF5bWVudENvb3JkaW5hdG9yUHJveHku
Y3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0FwcGxlUGF5L1dlYlBheW1lbnRDb29yZGlu
YXRvclByb3h5LmNwcApAQCAtODIsNyArODIsNyBAQCB2b2lkIFdlYlBheW1lbnRDb29yZGluYXRv
clByb3h5OjpzaG93UGF5bWVudFVJKFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyIGRlc3RpbmF0aQog
ewogICAgIGlmIChhdXRvJiBjb29yZGluYXRvciA9IGFjdGl2ZVBheW1lbnRDb29yZGluYXRvclBy
b3h5KCkpCiAgICAgICAgIGNvb3JkaW5hdG9yLT5kaWRSZWFjaEZpbmFsU3RhdGUoKTsKLSAgICBh
Y3RpdmVQYXltZW50Q29vcmRpbmF0b3JQcm94eSgpID0gbWFrZVdlYWtQdHIodGhpcyk7CisgICAg
YWN0aXZlUGF5bWVudENvb3JkaW5hdG9yUHJveHkoKSA9ICp0aGlzOwogCiAgICAgTUVTU0FHRV9D
SEVDSyhjYW5CZWdpbigpKTsKICAgICBNRVNTQUdFX0NIRUNLKCFtX2Rlc3RpbmF0aW9uSUQpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViU1FMaXRlRGF0YWJhc2VUcmFja2Vy
LmggYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJTUUxpdGVEYXRhYmFzZVRyYWNrZXIuaAppbmRl
eCBiMDViMGQxOWVlZDBmYmE4NWI0YzI5NTM0ZjljYjQ3MzEwZTdjMDliLi41NjQyZWIwODhhODMy
MGEzOGYzNjdmOGM1ODMwMWQ2MGM2ODcwYTlkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1No
YXJlZC9XZWJTUUxpdGVEYXRhYmFzZVRyYWNrZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJl
ZC9XZWJTUUxpdGVEYXRhYmFzZVRyYWNrZXIuaApAQCAtMzQsNyArMzQsNyBAQAogCiBuYW1lc3Bh
Y2UgV2ViS2l0IHsKIAotLy8gVXNlIGVhZ2VyIGluaXRpYWxpemF0aW9uIGZvciB0aGUgV2Vha1B0
ckZhY3Rvcnkgc2luY2Ugd2UgY2FsbCBtYWtlV2Vha1B0cigpIGZyb20gYSBub24tbWFpbiB0aHJl
YWQuCisvLyBVc2UgZWFnZXIgaW5pdGlhbGl6YXRpb24gZm9yIHRoZSBXZWFrUHRyRmFjdG9yeSBz
aW5jZSB3ZSBjb25zdHJ1Y3QgV2Vha1B0cnMgZnJvbSBhIG5vbi1tYWluIHRocmVhZC4KIGNsYXNz
IFdlYlNRTGl0ZURhdGFiYXNlVHJhY2tlciBmaW5hbCA6IHB1YmxpYyBXZWJDb3JlOjpTUUxpdGVE
YXRhYmFzZVRyYWNrZXJDbGllbnQsIHB1YmxpYyBDYW5NYWtlV2Vha1B0cjxXZWJTUUxpdGVEYXRh
YmFzZVRyYWNrZXIsIFdlYWtQdHJGYWN0b3J5SW5pdGlhbGl6YXRpb246OkVhZ2VyPiB7CiAgICAg
V1RGX01BS0VfTk9OQ09QWUFCTEUoV2ViU1FMaXRlRGF0YWJhc2VUcmFja2VyKQogcHVibGljOgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvWFIvWFJEZXZpY2VQcm94eS5jcHAgYi9T
b3VyY2UvV2ViS2l0L1NoYXJlZC9YUi9YUkRldmljZVByb3h5LmNwcAppbmRleCBmYTEzZGRjYWRj
Y2ZhMzY0MmJhNTA2MThkM2IxN2VhMjhmNWZkMjMwLi4zMmVjNjg4MDYxM2RlZWMxNWFjZWJhZWFm
MWYzNjU3NGY1ZDM4YTBkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9YUi9YUkRl
dmljZVByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9YUi9YUkRldmljZVByb3h5
LmNwcApAQCAtNDEsNyArNDEsNyBAQCBSZWY8WFJEZXZpY2VQcm94eT4gWFJEZXZpY2VQcm94eTo6
Y3JlYXRlKFhSRGV2aWNlSW5mbyYmIGRldmljZUluZm8sIFBsYXRmb3JtWFJTeQogfQogCiBYUkRl
dmljZVByb3h5OjpYUkRldmljZVByb3h5KFhSRGV2aWNlSW5mbyYmIGRldmljZUluZm8sIFBsYXRm
b3JtWFJTeXN0ZW1Qcm94eSYgeHJTeXN0ZW0pCi0gICAgOiBtX3hyU3lzdGVtKG1ha2VXZWFrUHRy
KHhyU3lzdGVtKSkKKyAgICA6IG1feHJTeXN0ZW0oeHJTeXN0ZW0pCiB7CiAgICAgbV9pZGVudGlm
aWVyID0gZGV2aWNlSW5mby5pZGVudGlmaWVyOwogICAgIG1fc3VwcG9ydHNTdGVyZW9SZW5kZXJp
bmcgPSBkZXZpY2VJbmZvLnN1cHBvcnRzU3RlcmVvUmVuZGVyaW5nOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9TaGFyZWQvbWFjL1NlY0l0ZW1TaGltLmNwcCBiL1NvdXJjZS9XZWJLaXQvU2hh
cmVkL21hYy9TZWNJdGVtU2hpbS5jcHAKaW5kZXggNTE5ZWRjMmRkOTBiY2U4ZWRlZmExYzBlOGQ5
YjUwODc2ZmRjOWE4YS4uZjk5OTg0ODc1Zjc2YWFmYTdlNTFjY2VjMTVhZTI0YTg2NWM5MDhkYSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvbWFjL1NlY0l0ZW1TaGltLmNwcAorKysg
Yi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9tYWMvU2VjSXRlbVNoaW0uY3BwCkBAIC0xNDAsNyArMTQw
LDcgQEAgc3RhdGljIE9TU3RhdHVzIHdlYlNlY0l0ZW1EZWxldGUoQ0ZEaWN0aW9uYXJ5UmVmIHF1
ZXJ5KQogCiB2b2lkIGluaXRpYWxpemVTZWNJdGVtU2hpbShOZXR3b3JrUHJvY2VzcyYgcHJvY2Vz
cykKIHsKLSAgICBnbG9iYWxOZXR3b3JrUHJvY2VzcygpID0gbWFrZVdlYWtQdHIocHJvY2Vzcyk7
CisgICAgZ2xvYmFsTmV0d29ya1Byb2Nlc3MoKSA9IHByb2Nlc3M7CiAKICAgICBzdHJ1Y3QgX0NG
TkZyYW1ld29ya3NTdHVicyBzdHVicyA9IHsKICAgICAgICAgLnZlcnNpb24gPSAwLApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0FQSUF0dGFjaG1lbnQuY3BwIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0FQSUF0dGFjaG1lbnQuY3BwCmluZGV4IDZlMjFmNmY5
Y2Q0Njk1ZGE1ZTkzN2M5NGFjNmZkMjM2NWM2MmUxYzAuLmIzNGVjNzM2MzYzYzRmMWQyYjBlNzYw
YWQzZjRhOWQ1YmFjMWEzNGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQ
SS9BUElBdHRhY2htZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQVBJ
QXR0YWNobWVudC5jcHAKQEAgLTQxLDcgKzQxLDcgQEAgUmVmPEF0dGFjaG1lbnQ+IEF0dGFjaG1l
bnQ6OmNyZWF0ZShjb25zdCBXVEY6OlN0cmluZyYgaWRlbnRpZmllciwgV2ViS2l0OjpXZWJQYWcK
IAogQXR0YWNobWVudDo6QXR0YWNobWVudChjb25zdCBXVEY6OlN0cmluZyYgaWRlbnRpZmllciwg
V2ViS2l0OjpXZWJQYWdlUHJveHkmIHdlYlBhZ2UpCiAgICAgOiBtX2lkZW50aWZpZXIoaWRlbnRp
ZmllcikKLSAgICAsIG1fd2ViUGFnZShtYWtlV2Vha1B0cih3ZWJQYWdlKSkKKyAgICAsIG1fd2Vi
UGFnZSh3ZWJQYWdlKQogewogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9BUEkvQVBJSFRUUENvb2tpZVN0b3JlLmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQ
SS9BUElIVFRQQ29va2llU3RvcmUuY3BwCmluZGV4IDVjNzliMzA4ODFkYTk5ZGNjYWY1NGI5N2Yz
YTc5MDA2ODg1M2VmZGIuLjMzMTFlZWRiYjQ5ZGI3ZDJjYzE1YjI3NWE4YmQ5ZGIzNGQzYmUxMTkg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9BUElIVFRQQ29va2llU3Rv
cmUuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9BUElIVFRQQ29va2llU3Rv
cmUuY3BwCkBAIC00NCw3ICs0NCw3IEBAIHVzaW5nIG5hbWVzcGFjZSBXZWJLaXQ7CiBuYW1lc3Bh
Y2UgQVBJIHsKIAogSFRUUENvb2tpZVN0b3JlOjpIVFRQQ29va2llU3RvcmUoV2ViS2l0OjpXZWJz
aXRlRGF0YVN0b3JlJiB3ZWJzaXRlRGF0YVN0b3JlKQotICAgIDogbV9vd25pbmdEYXRhU3RvcmUo
bWFrZVdlYWtQdHIod2Vic2l0ZURhdGFTdG9yZSkpCisgICAgOiBtX293bmluZ0RhdGFTdG9yZSh3
ZWJzaXRlRGF0YVN0b3JlKQogewogfQogCkBAIC0xNTgsNyArMTU4LDcgQEAgcHJpdmF0ZToKIAog
dm9pZCBIVFRQQ29va2llU3RvcmU6OnJlZ2lzdGVyT2JzZXJ2ZXIoT2JzZXJ2ZXImIG9ic2VydmVy
KQogewotICAgIG1fb2JzZXJ2ZXJzLmFkZCgmb2JzZXJ2ZXIpOworICAgIG1fb2JzZXJ2ZXJzLmFk
ZChvYnNlcnZlcik7CiAKICAgICBpZiAobV9jb29raWVNYW5hZ2VyUHJveHlPYnNlcnZlciB8fCAh
bV9vd25pbmdEYXRhU3RvcmUpCiAgICAgICAgIHJldHVybjsKQEAgLTE2Nyw3ICsxNjcsNyBAQCB2
b2lkIEhUVFBDb29raWVTdG9yZTo6cmVnaXN0ZXJPYnNlcnZlcihPYnNlcnZlciYgb2JzZXJ2ZXIp
CiAKICAgICBtX2Nvb2tpZU1hbmFnZXJQcm94eU9ic2VydmVyID0gbWFrZVVuaXF1ZTxBUElXZWJD
b29raWVNYW5hZ2VyUHJveHlPYnNlcnZlcj4oKnRoaXMpOwogCi0gICAgbV9vYnNlcnZlZENvb2tp
ZU1hbmFnZXJQcm94eSA9IG1ha2VXZWFrUHRyKG1fb3duaW5nRGF0YVN0b3JlLT5uZXR3b3JrUHJv
Y2VzcygpLmNvb2tpZU1hbmFnZXIoKSk7CisgICAgbV9vYnNlcnZlZENvb2tpZU1hbmFnZXJQcm94
eSA9IG1fb3duaW5nRGF0YVN0b3JlLT5uZXR3b3JrUHJvY2VzcygpLmNvb2tpZU1hbmFnZXIoKTsK
ICAgICBtX29ic2VydmVkQ29va2llTWFuYWdlclByb3h5LT5yZWdpc3Rlck9ic2VydmVyKG1fb3du
aW5nRGF0YVN0b3JlLT5zZXNzaW9uSUQoKSwgKm1fY29va2llTWFuYWdlclByb3h5T2JzZXJ2ZXIp
OwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQVBJSW5zcGVj
dG9yRXh0ZW5zaW9uLmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9BUElJbnNwZWN0
b3JFeHRlbnNpb24uY3BwCmluZGV4IDg3MWMyNzNlYWYxMWRlYjkxYjlkMDJiZjQ1MGYwZDEwZWJj
ODM3NDUuLjgyYzhhYWEzNjM2NGJmN2E1OTZmYTBlMmM2MDZkYWI4NTBlYTRhNmMgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9BUElJbnNwZWN0b3JFeHRlbnNpb24uY3Bw
CisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9BUElJbnNwZWN0b3JFeHRlbnNpb24u
Y3BwCkBAIC0zNyw3ICszNyw3IEBAIG5hbWVzcGFjZSBBUEkgewogCiBJbnNwZWN0b3JFeHRlbnNp
b246Okluc3BlY3RvckV4dGVuc2lvbihjb25zdCBXVEY6OlN0cmluZyYgaWRlbnRpZmllciwgV2Vi
S2l0OjpXZWJJbnNwZWN0b3JVSUV4dGVuc2lvbkNvbnRyb2xsZXJQcm94eSYgZXh0ZW5zaW9uQ29u
dHJvbGxlclByb3h5KQogICAgIDogbV9pZGVudGlmaWVyKGlkZW50aWZpZXIpCi0gICAgLCBtX2V4
dGVuc2lvbkNvbnRyb2xsZXJQcm94eShtYWtlV2Vha1B0cihleHRlbnNpb25Db250cm9sbGVyUHJv
eHkpKQorICAgICwgbV9leHRlbnNpb25Db250cm9sbGVyUHJveHkoZXh0ZW5zaW9uQ29udHJvbGxl
clByb3h5KQogewogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkv
QVBJV2ViQXV0aGVudGljYXRpb25QYW5lbC5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9B
UEkvQVBJV2ViQXV0aGVudGljYXRpb25QYW5lbC5jcHAKaW5kZXggNTE1M2JlMTYwZmI2ZDM0ZDM1
NjAwODZmYWYwZTMzMzFlNDM1ODM3ZS4uOWM3YzVkZGRmMmY4ODU0NGQyZjQ5Zjc3NzU2MDBjOTAw
YThjNjAzOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0FQSVdlYkF1
dGhlbnRpY2F0aW9uUGFuZWwuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9B
UElXZWJBdXRoZW50aWNhdGlvblBhbmVsLmNwcApAQCAtNTEsNyArNTEsNyBAQCBXZWJBdXRoZW50
aWNhdGlvblBhbmVsOjpXZWJBdXRoZW50aWNhdGlvblBhbmVsKCkKIAogV2ViQXV0aGVudGljYXRp
b25QYW5lbDo6V2ViQXV0aGVudGljYXRpb25QYW5lbChjb25zdCBBdXRoZW50aWNhdG9yTWFuYWdl
ciYgbWFuYWdlciwgY29uc3QgV1RGOjpTdHJpbmcmIHJwSWQsIGNvbnN0IFRyYW5zcG9ydFNldCYg
dHJhbnNwb3J0cywgQ2xpZW50RGF0YVR5cGUgdHlwZSwgY29uc3QgV1RGOjpTdHJpbmcmIHVzZXJO
YW1lKQogICAgIDogbV9jbGllbnQobWFrZVVuaXF1ZVJlZjxXZWJBdXRoZW50aWNhdGlvblBhbmVs
Q2xpZW50PigpKQotICAgICwgbV93ZWFrTWFuYWdlcihtYWtlV2Vha1B0cihtYW5hZ2VyKSkKKyAg
ICAsIG1fd2Vha01hbmFnZXIobWFuYWdlcikKICAgICAsIG1fcnBJZChycElkKQogICAgICwgbV9j
bGllbnREYXRhVHlwZSh0eXBlKQogICAgICwgbV91c2VyTmFtZSh1c2VyTmFtZSkKQEAgLTcxLDcg
KzcxLDcgQEAgV2ViQXV0aGVudGljYXRpb25QYW5lbDo6fldlYkF1dGhlbnRpY2F0aW9uUGFuZWwo
KSA9IGRlZmF1bHQ7CiB2b2lkIFdlYkF1dGhlbnRpY2F0aW9uUGFuZWw6OmhhbmRsZVJlcXVlc3Qo
V2ViQXV0aGVudGljYXRpb25SZXF1ZXN0RGF0YSYmIHJlcXVlc3QsIENhbGxiYWNrJiYgY2FsbGJh
Y2spCiB7CiAgICAgQVNTRVJUKG1fbWFuYWdlcik7Ci0gICAgcmVxdWVzdC53ZWFrUGFuZWwgPSBt
YWtlV2Vha1B0cigqdGhpcyk7CisgICAgcmVxdWVzdC53ZWFrUGFuZWwgPSAqdGhpczsKICAgICBt
X21hbmFnZXItPmhhbmRsZVJlcXVlc3QoV1RGTW92ZShyZXF1ZXN0KSwgV1RGTW92ZShjYWxsYmFj
aykpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2Ev
V0tXZWJWaWV3Lm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmll
dy5tbQppbmRleCBkZDExOWZkNzM2OWNkZDliM2EyNWFiYWY1NDlhZjAyMDZhZjIzY2JlLi4xNzNk
NzMwZDUyNTU4N2ZmNDIyZWViOTAyODdkMzI4ZDU3ZmU3ZDdmIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Lm1tCisrKyBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcubW0KQEAgLTM2MTQsNyArMzYxNCw3IEBA
IC0gKHZvaWQpX3JlbW92ZURhdGFEZXRlY3RlZExpbmtzOihkaXNwYXRjaF9ibG9ja190KWNvbXBs
ZXRpb24KIHsKICAgICBUSFJPV19JRl9TVVNQRU5ERUQ7CiAjaWYgRU5BQkxFKERBVEFfREVURUNU
SU9OKQotICAgIF9wYWdlLT5yZW1vdmVEYXRhRGV0ZWN0ZWRMaW5rcyhbY29tcGxldGlvbiA9IG1h
a2VCbG9ja1B0cihjb21wbGV0aW9uKSwgcGFnZSA9IG1ha2VXZWFrUHRyKF9wYWdlLmdldCgpKV0g
KGF1dG8mIHJlc3VsdCkgeworICAgIF9wYWdlLT5yZW1vdmVEYXRhRGV0ZWN0ZWRMaW5rcyhbY29t
cGxldGlvbiA9IG1ha2VCbG9ja1B0cihjb21wbGV0aW9uKSwgcGFnZSA9IFdlYWtQdHIgeyBfcGFn
ZS5nZXQoKSB9XSAoYXV0byYgcmVzdWx0KSB7CiAgICAgICAgIGlmIChwYWdlKQogICAgICAgICAg
ICAgcGFnZS0+c2V0RGF0YURldGVjdGlvblJlc3VsdChyZXN1bHQpOwogICAgICAgICBpZiAoY29t
cGxldGlvbikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9X
S1dlYlZpZXdUZXN0aW5nLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dL
V2ViVmlld1Rlc3RpbmcubW0KaW5kZXggNzNjYTkzNDQ0ZTA5MGM2NzhmYmY4NGM4NDM4Yjg5ODU0
MzRiOGExNi4uNDg1NDA0ODNjMzFhZGU4ZjI1MTg0N2NmYmQ4YzYzOTU5N2M2MjhlZSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlld1Rlc3Rpbmcu
bW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlld1Rlc3Rp
bmcubW0KQEAgLTYyOSw3ICs2MjksNyBAQCAtIChpZClpbml0V2l0aENvb3JkaW5hdG9yOihXZWJD
b3JlOjpNZWRpYVNlc3Npb25Db29yZGluYXRvckNsaWVudCopY29vcmRpbmF0b3IKICAgICBzZWxm
ID0gW3N1cGVyIGluaXRdOwogICAgIGlmICghc2VsZikKICAgICAgICAgcmV0dXJuIG5pbDsKLSAg
ICBtX2Nvb3JkaW5hdG9yQ2xpZW50ID0gbWFrZVdlYWtQdHIoY29vcmRpbmF0b3IpOworICAgIG1f
Y29vcmRpbmF0b3JDbGllbnQgPSBjb29yZGluYXRvcjsKICAgICByZXR1cm4gc2VsZjsKIH0KIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL19XS1dlYkF1dGhl
bnRpY2F0aW9uUGFuZWwubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dL
V2ViQXV0aGVudGljYXRpb25QYW5lbC5tbQppbmRleCBjN2QwNjgxNmFjMWZlY2Q3YTJmMDczOTZi
NzcyZWY4ZmZiYmEwMGZlLi5jNzdkZWEwMjhmYzE5MDAxZDA4NmRiNjRiZjhhNDViYjkwNzMyYjAx
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLV2ViQXV0
aGVudGljYXRpb25QYW5lbC5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29j
b2EvX1dLV2ViQXV0aGVudGljYXRpb25QYW5lbC5tbQpAQCAtMTM5LDcgKzEzOSw3IEBAIC0gKGlk
IDxfV0tXZWJBdXRoZW50aWNhdGlvblBhbmVsRGVsZWdhdGU+KWRlbGVnYXRlCiAtICh2b2lkKXNl
dERlbGVnYXRlOihpZDxfV0tXZWJBdXRoZW50aWNhdGlvblBhbmVsRGVsZWdhdGU+KWRlbGVnYXRl
CiB7CiAgICAgYXV0byBjbGllbnQgPSBXVEY6Om1ha2VVbmlxdWVSZWY8V2ViS2l0OjpXZWJBdXRo
ZW50aWNhdGlvblBhbmVsQ2xpZW50PihzZWxmLCBkZWxlZ2F0ZSk7Ci0gICAgX2NsaWVudCA9IG1h
a2VXZWFrUHRyKGNsaWVudC5nZXQoKSk7CisgICAgX2NsaWVudCA9IGNsaWVudC5nZXQoKTsKICAg
ICBfcGFuZWwtPnNldENsaWVudChXVEZNb3ZlKGNsaWVudCkpOwogfQogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvaW9zL1dLV2ViVmlld0lPUy5tbSBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL0FQSS9pb3MvV0tXZWJWaWV3SU9TLm1tCmluZGV4IDQzMGQzMzJkZjA0
YzNjODdhYTQ1YjAwYzllYjczZDdiMmViZWFmNTIuLmY5MGFiYTlhZDk5ZGIzNTNiNDQyMzEwMTg2
NmZhMWU1OGRkNTRiOTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9p
b3MvV0tXZWJWaWV3SU9TLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9pb3Mv
V0tXZWJWaWV3SU9TLm1tCkBAIC0yOTQ4LDcgKzI5NDgsNyBAQCAtICh2b2lkKV9zZXRUZXh0Q29s
b3I6KFVJQ29sb3IgKiljb2xvciBzZW5kZXI6KGlkKXNlbmRlcgogLSAodm9pZClfZGV0ZWN0RGF0
YVdpdGhUeXBlczooV0tEYXRhRGV0ZWN0b3JUeXBlcyl0eXBlcyBjb21wbGV0aW9uSGFuZGxlcjoo
ZGlzcGF0Y2hfYmxvY2tfdCljb21wbGV0aW9uCiB7CiAjaWYgRU5BQkxFKERBVEFfREVURUNUSU9O
KQotICAgIF9wYWdlLT5kZXRlY3REYXRhSW5BbGxGcmFtZXMoZnJvbVdLRGF0YURldGVjdG9yVHlw
ZXModHlwZXMpLCBbY29tcGxldGlvbiA9IG1ha2VCbG9ja1B0cihjb21wbGV0aW9uKSwgcGFnZSA9
IG1ha2VXZWFrUHRyKF9wYWdlLmdldCgpKV0gKGF1dG8mIHJlc3VsdCkgeworICAgIF9wYWdlLT5k
ZXRlY3REYXRhSW5BbGxGcmFtZXMoZnJvbVdLRGF0YURldGVjdG9yVHlwZXModHlwZXMpLCBbY29t
cGxldGlvbiA9IG1ha2VCbG9ja1B0cihjb21wbGV0aW9uKSwgcGFnZSA9IFdlYWtQdHIgeyBfcGFn
ZS5nZXQoKSB9XSAoYXV0byYgcmVzdWx0KSB7CiAgICAgICAgIGlmIChwYWdlKQogICAgICAgICAg
ICAgcGFnZS0+c2V0RGF0YURldGVjdGlvblJlc3VsdChyZXN1bHQpOwogICAgICAgICBpZiAoY29t
cGxldGlvbikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL0dyb3Vw
QWN0aXZpdGllcy9Hcm91cEFjdGl2aXRpZXNDb29yZGluYXRvci5tbSBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL0NvY29hL0dyb3VwQWN0aXZpdGllcy9Hcm91cEFjdGl2aXRpZXNDb29yZGluYXRv
ci5tbQppbmRleCAxY2RjYmFiNDdmYzIwZDQzNGUxYjZmNmJiM2VkMDI2MzU0NTc4MWFiLi5iM2I3
ODJlY2YzMTFiZTU0YWQyM2YwZTZjOGVhNjBjNjc5N2FmNGE5IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9Hcm91cEFjdGl2aXRpZXMvR3JvdXBBY3Rpdml0aWVzQ29v
cmRpbmF0b3IubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvR3JvdXBBY3Rp
dml0aWVzL0dyb3VwQWN0aXZpdGllc0Nvb3JkaW5hdG9yLm1tCkBAIC00OCw3ICs0OCw3IEBAIC0g
KGlkKWluaXRXaXRoUGFyZW50OihXZWJLaXQ6Okdyb3VwQWN0aXZpdGllc0Nvb3JkaW5hdG9yJilw
YXJlbnQKICAgICBpZiAoIXNlbGYpCiAgICAgICAgIHJldHVybiBuaWw7CiAKLSAgICBfcGFyZW50
ID0gbWFrZVdlYWtQdHIocGFyZW50KTsKKyAgICBfcGFyZW50ID0gcGFyZW50OwogICAgIHJldHVy
biBzZWxmOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9M
ZWdhY3lDdXN0b21Qcm90b2NvbE1hbmFnZXJDbGllbnQubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9Db2NvYS9MZWdhY3lDdXN0b21Qcm90b2NvbE1hbmFnZXJDbGllbnQubW0KaW5kZXggN2Zi
N2Y4YWEzNmUwZTVmZmI4M2M2MjAyYzZiOTQ0Yzg0N2ZhYmJjOS4uYjQxZDI2YzgyN2I1MjI2NTcw
OTZkNDFhODI0NWNkZWVmZmZiOWE4NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvQ29jb2EvTGVnYWN5Q3VzdG9tUHJvdG9jb2xNYW5hZ2VyQ2xpZW50Lm1tCisrKyBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL0xlZ2FjeUN1c3RvbVByb3RvY29sTWFuYWdlckNsaWVu
dC5tbQpAQCAtNTIsNyArNTIsNyBAQCAtIChpZClpbml0V2l0aExlZ2FjeUN1c3RvbVByb3RvY29s
TWFuYWdlclByb3h5OihXZWJLaXQ6OkxlZ2FjeUN1c3RvbVByb3RvY29sTWFuYQogICAgICAgICBy
ZXR1cm4gbmlsOwogCiAgICAgQVNTRVJUKHJlcXVlc3QpOwotICAgIF9jdXN0b21Qcm90b2NvbE1h
bmFnZXJQcm94eSA9IG1ha2VXZWFrUHRyKGN1c3RvbVByb3RvY29sTWFuYWdlclByb3h5KTsKKyAg
ICBfY3VzdG9tUHJvdG9jb2xNYW5hZ2VyUHJveHkgPSBjdXN0b21Qcm90b2NvbE1hbmFnZXJQcm94
eTsKICAgICBfY3VzdG9tUHJvdG9jb2xJRCA9IGN1c3RvbVByb3RvY29sSUQ7CiAgICAgX3N0b3Jh
Z2VQb2xpY3kgPSBOU1VSTENhY2hlU3RvcmFnZU5vdEFsbG93ZWQ7CiAgICAgQUxMT1dfREVQUkVD
QVRFRF9ERUNMQVJBVElPTlNfQkVHSU4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0NvY29hL05hdmlnYXRpb25TdGF0ZS5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0Nv
Y29hL05hdmlnYXRpb25TdGF0ZS5tbQppbmRleCBkNGU4ZDZlYmRlZjkyZDRiMmZhMGYxNzM3NTY4
NDYzMjNhZTA3NTFlLi44ZmI4ODVlMDU5ODkzYWNjZjhjMmQwY2E1NDIxZGUyODM4YTM1YTQ5IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9OYXZpZ2F0aW9uU3RhdGUu
bW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvTmF2aWdhdGlvblN0YXRlLm1t
CkBAIC0xMTEsNyArMTExLDcgQEAgTmF2aWdhdGlvblN0YXRlOjpOYXZpZ2F0aW9uU3RhdGUoV0tX
ZWJWaWV3ICp3ZWJWaWV3KQogICAgIEFTU0VSVChtX3dlYlZpZXctPl9wYWdlKTsKICAgICBBU1NF
UlQoIW5hdmlnYXRpb25TdGF0ZXMoKS5jb250YWlucyhtX3dlYlZpZXctPl9wYWdlLmdldCgpKSk7
CiAKLSAgICBuYXZpZ2F0aW9uU3RhdGVzKCkuYWRkKG1fd2ViVmlldy0+X3BhZ2UuZ2V0KCksIG1h
a2VXZWFrUHRyKCp0aGlzKSk7CisgICAgbmF2aWdhdGlvblN0YXRlcygpLmFkZChtX3dlYlZpZXct
Pl9wYWdlLmdldCgpLCAqdGhpcyk7CiAgICAgbV93ZWJWaWV3LT5fcGFnZS0+cGFnZUxvYWRTdGF0
ZSgpLmFkZE9ic2VydmVyKCp0aGlzKTsKIH0KIApAQCAtMzE0LDcgKzMxNCw3IEBAIHZvaWQgTmF2
aWdhdGlvblN0YXRlOjpkaWRGaXJzdFBhaW50KCkKIH0KIAogTmF2aWdhdGlvblN0YXRlOjpOYXZp
Z2F0aW9uQ2xpZW50OjpOYXZpZ2F0aW9uQ2xpZW50KE5hdmlnYXRpb25TdGF0ZSYgbmF2aWdhdGlv
blN0YXRlKQotICAgIDogbV9uYXZpZ2F0aW9uU3RhdGUobWFrZVdlYWtQdHIobmF2aWdhdGlvblN0
YXRlKSkKKyAgICA6IG1fbmF2aWdhdGlvblN0YXRlKG5hdmlnYXRpb25TdGF0ZSkKIHsKIH0KIApA
QCAtNDM1LDcgKzQzNSw3IEBAIHN0YXRpYyB2b2lkIHRyeUludGVyY2VwdE5hdmlnYXRpb24oUmVm
PEFQSTo6TmF2aWdhdGlvbkFjdGlvbj4mJiBuYXZpZ2F0aW9uQWN0aW9uCiAjaWYgSEFWRShBUFBf
TElOS1MpCiAgICAgaWYgKG5hdmlnYXRpb25BY3Rpb24tPnNob3VsZE9wZW5BcHBMaW5rcygpKSB7
CiAgICAgICAgIGF1dG8gdXJsID0gbmF2aWdhdGlvbkFjdGlvbi0+cmVxdWVzdCgpLnVybCgpOwot
ICAgICAgICBhdXRvKiBsb2NhbENvbXBsZXRpb25IYW5kbGVyID0gbmV3IFdURjo6RnVuY3Rpb248
dm9pZCAoYm9vbCk+KFtuYXZpZ2F0aW9uQWN0aW9uID0gV1RGTW92ZShuYXZpZ2F0aW9uQWN0aW9u
KSwgd2Vha1BhZ2UgPSBtYWtlV2Vha1B0cihwYWdlKSwgY29tcGxldGlvbkhhbmRsZXIgPSBXVEZN
b3ZlKGNvbXBsZXRpb25IYW5kbGVyKV0gKGJvb2wgc3VjY2VzcykgbXV0YWJsZSB7CisgICAgICAg
IGF1dG8qIGxvY2FsQ29tcGxldGlvbkhhbmRsZXIgPSBuZXcgV1RGOjpGdW5jdGlvbjx2b2lkIChi
b29sKT4oW25hdmlnYXRpb25BY3Rpb24gPSBXVEZNb3ZlKG5hdmlnYXRpb25BY3Rpb24pLCB3ZWFr
UGFnZSA9IFdlYWtQdHIgeyBwYWdlIH0sIGNvbXBsZXRpb25IYW5kbGVyID0gV1RGTW92ZShjb21w
bGV0aW9uSGFuZGxlcildIChib29sIHN1Y2Nlc3MpIG11dGFibGUgewogICAgICAgICAgICAgQVNT
RVJUKFJ1bkxvb3A6OmlzTWFpbigpKTsKICAgICAgICAgICAgIGlmICghc3VjY2VzcyAmJiB3ZWFr
UGFnZSkgewogICAgICAgICAgICAgICAgIHRyeVNPQXV0aG9yaXphdGlvbihXVEZNb3ZlKG5hdmln
YXRpb25BY3Rpb24pLCAqd2Vha1BhZ2UsIFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKTsKQEAg
LTEyODgsNyArMTI4OCw3IEBAIHZvaWQgTmF2aWdhdGlvblN0YXRlOjpOYXZpZ2F0aW9uQ2xpZW50
OjpkZWNpZGVQb2xpY3lGb3JTT0F1dGhvcml6YXRpb25Mb2FkKFdlYlBhCiAvLyBIaXN0b3J5RGVs
ZWdhdGVQcml2YXRlIHN1cHBvcnQKICAgICAKIE5hdmlnYXRpb25TdGF0ZTo6SGlzdG9yeUNsaWVu
dDo6SGlzdG9yeUNsaWVudChOYXZpZ2F0aW9uU3RhdGUmIG5hdmlnYXRpb25TdGF0ZSkKLSAgICA6
IG1fbmF2aWdhdGlvblN0YXRlKG1ha2VXZWFrUHRyKG5hdmlnYXRpb25TdGF0ZSkpCisgICAgOiBt
X25hdmlnYXRpb25TdGF0ZShuYXZpZ2F0aW9uU3RhdGUpCiB7CiB9CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1NPQXV0aG9yaXphdGlvbi9Qb3BVcFNPQXV0aG9y
aXphdGlvblNlc3Npb24ubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9TT0F1dGhv
cml6YXRpb24vUG9wVXBTT0F1dGhvcml6YXRpb25TZXNzaW9uLm1tCmluZGV4IDlmMWViYzhmZWQ5
NTJiYWY5NmYwZDdmNjVlZjg4NDI1NDkzYTkyYTIuLmUxZGE5NmY4MjU5MzJjZjFlZGQ1M2IyNzA3
MTc1YTA4OTRlZTIxMzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29h
L1NPQXV0aG9yaXphdGlvbi9Qb3BVcFNPQXV0aG9yaXphdGlvblNlc3Npb24ubW0KKysrIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvU09BdXRob3JpemF0aW9uL1BvcFVwU09BdXRob3Jp
emF0aW9uU2Vzc2lvbi5tbQpAQCAtNTIsNyArNTIsNyBAQCBAaW1wbGVtZW50YXRpb24gV0tTT1Nl
Y3JldERlbGVnYXRlCiAtIChpbnN0YW5jZXR5cGUpaW5pdFdpdGhTZXNzaW9uOihXZWJLaXQ6OlBv
cFVwU09BdXRob3JpemF0aW9uU2Vzc2lvbiAqKXNlc3Npb24KIHsKICAgICBpZiAoKHNlbGYgPSBb
c3VwZXIgaW5pdF0pKSB7Ci0gICAgICAgIF9zZXNzaW9uID0gbWFrZVdlYWtQdHIoc2Vzc2lvbik7
CisgICAgICAgIF9zZXNzaW9uID0gc2Vzc2lvbjsKICAgICAgICAgX2lzRmlyc3ROYXZpZ2F0aW9u
ID0gWUVTOwogICAgIH0KICAgICByZXR1cm4gc2VsZjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0NvY29hL1NPQXV0aG9yaXphdGlvbi9TT0F1dGhvcml6YXRpb25TZXNzaW9u
Lm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvU09BdXRob3JpemF0aW9uL1NPQXV0
aG9yaXphdGlvblNlc3Npb24ubW0KaW5kZXggYjllZjBiY2VlZDUyNzY0OWE0M2VkZmE4MDliMzYy
Y2Q4YzI1Nzc3Zi4uNzIwNDMzMmVhODgyZGUxMWMyYjY5MTk0ODQxM2E1MGY4ZTAzYjc4MSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvU09BdXRob3JpemF0aW9uL1NP
QXV0aG9yaXphdGlvblNlc3Npb24ubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29j
b2EvU09BdXRob3JpemF0aW9uL1NPQXV0aG9yaXphdGlvblNlc3Npb24ubW0KQEAgLTg5LDcgKzg5
LDcgQEAgc3RhdGljIGJvb2wgaXNTYW1lT3JpZ2luKGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVx
dWVzdCYgcmVxdWVzdCwgY29uc3QgV2ViQ29yZToKIFNPQXV0aG9yaXphdGlvblNlc3Npb246OlNP
QXV0aG9yaXphdGlvblNlc3Npb24oU09BdXRob3JpemF0aW9uICpzb0F1dGhvcml6YXRpb24sIFJl
ZjxBUEk6Ok5hdmlnYXRpb25BY3Rpb24+JiYgbmF2aWdhdGlvbkFjdGlvbiwgV2ViUGFnZVByb3h5
JiBwYWdlLCBJbml0aWF0aW5nQWN0aW9uIGFjdGlvbikKICAgICA6IG1fc29BdXRob3JpemF0aW9u
KHNvQXV0aG9yaXphdGlvbikKICAgICAsIG1fbmF2aWdhdGlvbkFjdGlvbihXVEZNb3ZlKG5hdmln
YXRpb25BY3Rpb24pKQotICAgICwgbV9wYWdlKG1ha2VXZWFrUHRyKHBhZ2UpKQorICAgICwgbV9w
YWdlKHBhZ2UpCiAgICAgLCBtX2FjdGlvbihhY3Rpb24pCiB7CiB9CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9VSURlbGVnYXRlLm1tIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvQ29jb2EvVUlEZWxlZ2F0ZS5tbQppbmRleCBkNzhmNGNjMGQ1NjU1OTRjMGU4ODFh
NDU4YmZkMjM4Mjc1MTIyNDVhLi4xMDdmYTI0Y2UxNDc1MzQwN2RmYWNmMDU2MDg0ODZiNWQ5ZGEy
ZWVkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9VSURlbGVnYXRl
Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1VJRGVsZWdhdGUubW0KQEAg
LTE5Nyw3ICsxOTcsNyBAQCB2b2lkIFVJRGVsZWdhdGU6OnNldERlbGVnYXRlKGlkIDxXS1VJRGVs
ZWdhdGU+IGRlbGVnYXRlKQogCiAjaWYgRU5BQkxFKENPTlRFWFRfTUVOVVMpCiBVSURlbGVnYXRl
OjpDb250ZXh0TWVudUNsaWVudDo6Q29udGV4dE1lbnVDbGllbnQoVUlEZWxlZ2F0ZSYgdWlEZWxl
Z2F0ZSkKLSAgICA6IG1fdWlEZWxlZ2F0ZShtYWtlV2Vha1B0cih1aURlbGVnYXRlKSkKKyAgICA6
IG1fdWlEZWxlZ2F0ZSh1aURlbGVnYXRlKQogewogfQogCkBAIC0yNDIsNyArMjQyLDcgQEAgdm9p
ZCBVSURlbGVnYXRlOjpDb250ZXh0TWVudUNsaWVudDo6bWVudUZyb21Qcm9wb3NlZE1lbnUoV2Vi
UGFnZVByb3h5JiwgTlNNZW51ICoKICNlbmRpZgogCiBVSURlbGVnYXRlOjpVSUNsaWVudDo6VUlD
bGllbnQoVUlEZWxlZ2F0ZSYgdWlEZWxlZ2F0ZSkKLSAgICA6IG1fdWlEZWxlZ2F0ZShtYWtlV2Vh
a1B0cih1aURlbGVnYXRlKSkKKyAgICA6IG1fdWlEZWxlZ2F0ZSh1aURlbGVnYXRlKQogewogfQog
CkBAIC00MjMsNyArNDIzLDcgQEAgdm9pZCBVSURlbGVnYXRlOjpVSUNsaWVudDo6ZGVjaWRlUG9s
aWN5Rm9yR2VvbG9jYXRpb25QZXJtaXNzaW9uUmVxdWVzdChXZWJLaXQ6OlcKICAgICBpZiAobV91
aURlbGVnYXRlLT5tX2RlbGVnYXRlTWV0aG9kcy53ZWJWaWV3UmVxdWVzdEdlb2xvY2F0aW9uUGVy
bWlzc2lvbkZvck9yaWdpbkRlY2lzaW9uSGFuZGxlcikgewogICAgICAgICBhdXRvIHNlY3VyaXR5
T3JpZ2luID0gV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW46OmNyZWF0ZUZyb21TdHJpbmcocGFnZS5w
YWdlTG9hZFN0YXRlKCkuYWN0aXZlVVJMKCkpOwogICAgICAgICBhdXRvIGNoZWNrZXIgPSBDb21w
bGV0aW9uSGFuZGxlckNhbGxDaGVja2VyOjpjcmVhdGUoZGVsZWdhdGUuZ2V0KCksIEBzZWxlY3Rv
cihfd2ViVmlldzpyZXF1ZXN0R2VvbG9jYXRpb25QZXJtaXNzaW9uRm9yT3JpZ2luOmluaXRpYXRl
ZEJ5RnJhbWU6ZGVjaXNpb25IYW5kbGVyOikpOwotICAgICAgICBhdXRvIGRlY2lzaW9uSGFuZGxl
ciA9IG1ha2VCbG9ja1B0cihbY29tcGxldGlvbkhhbmRsZXIgPSBzdGQ6OmV4Y2hhbmdlKGNvbXBs
ZXRpb25IYW5kbGVyLCBudWxscHRyKSwgc2VjdXJpdHlPcmlnaW4gPSBzZWN1cml0eU9yaWdpbi0+
ZGF0YSgpLCBjaGVja2VyID0gV1RGTW92ZShjaGVja2VyKSwgcGFnZSA9IG1ha2VXZWFrUHRyKHBh
Z2UpXSAoV0tQZXJtaXNzaW9uRGVjaXNpb24gZGVjaXNpb24pIG11dGFibGUgeworICAgICAgICBh
dXRvIGRlY2lzaW9uSGFuZGxlciA9IG1ha2VCbG9ja1B0cihbY29tcGxldGlvbkhhbmRsZXIgPSBz
dGQ6OmV4Y2hhbmdlKGNvbXBsZXRpb25IYW5kbGVyLCBudWxscHRyKSwgc2VjdXJpdHlPcmlnaW4g
PSBzZWN1cml0eU9yaWdpbi0+ZGF0YSgpLCBjaGVja2VyID0gV1RGTW92ZShjaGVja2VyKSwgcGFn
ZSA9IFdlYWtQdHIgeyBwYWdlIH1dIChXS1Blcm1pc3Npb25EZWNpc2lvbiBkZWNpc2lvbikgbXV0
YWJsZSB7CiAgICAgICAgICAgICBpZiAoY2hlY2tlci0+Y29tcGxldGlvbkhhbmRsZXJIYXNCZWVu
Q2FsbGVkKCkpCiAgICAgICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAgICAgY2hlY2tlci0+
ZGlkQ2FsbENvbXBsZXRpb25IYW5kbGVyKCk7CkBAIC0xMDYxLDcgKzEwNjEsNyBAQCB2b2lkIFVJ
RGVsZWdhdGU6OlVJQ2xpZW50OjpzaG91bGRBbGxvd0RldmljZU9yaWVudGF0aW9uQW5kTW90aW9u
QWNjZXNzKFdlYktpdDo6VwogCiAgICAgYXV0byBkZWxlZ2F0ZSA9IG1fdWlEZWxlZ2F0ZS0+bV9k
ZWxlZ2F0ZS5nZXQoKTsKICAgICBhdXRvIGNoZWNrZXIgPSBDb21wbGV0aW9uSGFuZGxlckNhbGxD
aGVja2VyOjpjcmVhdGUoZGVsZWdhdGUuZ2V0KCksIEBzZWxlY3Rvcih3ZWJWaWV3OnJlcXVlc3RE
ZXZpY2VPcmllbnRhdGlvbkFuZE1vdGlvblBlcm1pc3Npb25Gb3JPcmlnaW46aW5pdGlhdGVkQnlG
cmFtZTpkZWNpc2lvbkhhbmRsZXI6KSk7Ci0gICAgYXV0byBkZWNpc2lvbkhhbmRsZXIgPSBtYWtl
QmxvY2tQdHIoW2NvbXBsZXRpb25IYW5kbGVyID0gV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlciks
IHNlY3VyaXR5T3JpZ2luID0gc2VjdXJpdHlPcmlnaW4tPmRhdGEoKSwgY2hlY2tlciA9IFdURk1v
dmUoY2hlY2tlciksIHBhZ2UgPSBtYWtlV2Vha1B0cihwYWdlKV0oV0tQZXJtaXNzaW9uRGVjaXNp
b24gZGVjaXNpb24pIG11dGFibGUgeworICAgIGF1dG8gZGVjaXNpb25IYW5kbGVyID0gbWFrZUJs
b2NrUHRyKFtjb21wbGV0aW9uSGFuZGxlciA9IFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpLCBz
ZWN1cml0eU9yaWdpbiA9IHNlY3VyaXR5T3JpZ2luLT5kYXRhKCksIGNoZWNrZXIgPSBXVEZNb3Zl
KGNoZWNrZXIpLCBwYWdlID0gV2Vha1B0ciB7IHBhZ2UgfV0oV0tQZXJtaXNzaW9uRGVjaXNpb24g
ZGVjaXNpb24pIG11dGFibGUgewogICAgICAgICBpZiAoY2hlY2tlci0+Y29tcGxldGlvbkhhbmRs
ZXJIYXNCZWVuQ2FsbGVkKCkpCiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIGNoZWNrZXIt
PmRpZENhbGxDb21wbGV0aW9uSGFuZGxlcigpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvQ29jb2EvV2ViUGFzdGVib2FyZFByb3h5Q29jb2EubW0gYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9Db2NvYS9XZWJQYXN0ZWJvYXJkUHJveHlDb2NvYS5tbQppbmRleCA3Yzg5YTFi
ZDhhZmE2ZTljOTQyNzg0ZTBkNzVmY2E5NDMyYTBmYjMwLi5iYWQxYWY4MmFiYWMxNmFmNWZmYmZi
OWU5Y2FjOWYyNmY3NWVmMjZiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9D
b2NvYS9XZWJQYXN0ZWJvYXJkUHJveHlDb2NvYS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9Db2NvYS9XZWJQYXN0ZWJvYXJkUHJveHlDb2NvYS5tbQpAQCAtNzUsNyArNzUsNyBAQCB2
b2lkIFdlYlBhc3RlYm9hcmRQcm94eTo6Z3JhbnRBY2Nlc3MoV2ViUHJvY2Vzc1Byb3h5JiBwcm9j
ZXNzLCBjb25zdCBTdHJpbmcmIHBhcwogICAgICAgICByZXR1cm47CiAgICAgfQogCi0gICAgbV9w
YXN0ZWJvYXJkTmFtZVRvQWNjZXNzSW5mb3JtYXRpb25NYXAuc2V0KHBhc3RlYm9hcmROYW1lLCBQ
YXN0ZWJvYXJkQWNjZXNzSW5mb3JtYXRpb24geyBjaGFuZ2VDb3VudCwge3sgbWFrZVdlYWtQdHIo
cHJvY2VzcyksIHR5cGUgfX0gfSk7CisgICAgbV9wYXN0ZWJvYXJkTmFtZVRvQWNjZXNzSW5mb3Jt
YXRpb25NYXAuc2V0KHBhc3RlYm9hcmROYW1lLCBQYXN0ZWJvYXJkQWNjZXNzSW5mb3JtYXRpb24g
eyBjaGFuZ2VDb3VudCwge3sgcHJvY2VzcywgdHlwZSB9fSB9KTsKIH0KIAogdm9pZCBXZWJQYXN0
ZWJvYXJkUHJveHk6OnJldm9rZUFjY2VzcyhXZWJQcm9jZXNzUHJveHkmIHByb2Nlc3MpCkBAIC0x
MzUsNyArMTM1LDcgQEAgdm9pZCBXZWJQYXN0ZWJvYXJkUHJveHk6OmRpZE1vZGlmeUNvbnRlbnRz
T2ZQYXN0ZWJvYXJkKElQQzo6Q29ubmVjdGlvbiYgY29ubmVjdGkKICAgICBhdXRvIGNoYW5nZUNv
dW50QW5kUHJvY2Vzc2VzID0gbV9wYXN0ZWJvYXJkTmFtZVRvQWNjZXNzSW5mb3JtYXRpb25NYXAu
ZmluZChwYXN0ZWJvYXJkTmFtZSk7CiAgICAgaWYgKGNoYW5nZUNvdW50QW5kUHJvY2Vzc2VzICE9
IG1fcGFzdGVib2FyZE5hbWVUb0FjY2Vzc0luZm9ybWF0aW9uTWFwLmVuZCgpICYmIHByZXZpb3Vz
Q2hhbmdlQ291bnQgPT0gY2hhbmdlQ291bnRBbmRQcm9jZXNzZXMtPnZhbHVlLmNoYW5nZUNvdW50
KSB7CiAgICAgICAgIGlmIChhdXRvIGFjY2Vzc1R5cGUgPSBjaGFuZ2VDb3VudEFuZFByb2Nlc3Nl
cy0+dmFsdWUuYWNjZXNzVHlwZSgqcHJvY2VzcykpCi0gICAgICAgICAgICBjaGFuZ2VDb3VudEFu
ZFByb2Nlc3Nlcy0+dmFsdWUgPSBQYXN0ZWJvYXJkQWNjZXNzSW5mb3JtYXRpb24geyBuZXdDaGFu
Z2VDb3VudCwge3sgbWFrZVdlYWtQdHIoKnByb2Nlc3MpLCAqYWNjZXNzVHlwZSB9fSB9OworICAg
ICAgICAgICAgY2hhbmdlQ291bnRBbmRQcm9jZXNzZXMtPnZhbHVlID0gUGFzdGVib2FyZEFjY2Vz
c0luZm9ybWF0aW9uIHsgbmV3Q2hhbmdlQ291bnQsIHt7ICpwcm9jZXNzLCAqYWNjZXNzVHlwZSB9
fSB9OwogICAgIH0KIH0KIApAQCAtNjg5LDcgKzY4OSw3IEBAIHZvaWQgV2ViUGFzdGVib2FyZFBy
b3h5OjpQYXN0ZWJvYXJkQWNjZXNzSW5mb3JtYXRpb246OmdyYW50QWNjZXNzKFdlYlByb2Nlc3NQ
cm94CiAgICAgfSk7CiAKICAgICBpZiAobWF0Y2hJbmRleCA9PSBub3RGb3VuZCkgewotICAgICAg
ICBwcm9jZXNzZXMuYXBwZW5kKHsgbWFrZVdlYWtQdHIocHJvY2VzcyksIHR5cGUgfSk7CisgICAg
ICAgIHByb2Nlc3Nlcy5hcHBlbmQoeyBwcm9jZXNzLCB0eXBlIH0pOwogICAgICAgICByZXR1cm47
CiAgICAgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9XZWJQ
cm9jZXNzUG9vbENvY29hLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvV2ViUHJv
Y2Vzc1Bvb2xDb2NvYS5tbQppbmRleCA2NGNhNDE2NTUwOTdlMTk2NzkwNDZjYTM5N2ZhZTM5ZGJj
OTM3OGIzLi40YzIxMWY1ZmNlYmNkMTE0MTg0N2RlODExMWVhMTI0ODBjNzAzNmYzIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9XZWJQcm9jZXNzUG9vbENvY29hLm1t
CisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dlYlByb2Nlc3NQb29sQ29jb2Eu
bW0KQEAgLTIxOCw3ICsyMTgsNyBAQCBzdGF0aWMgQWNjZXNzaWJpbGl0eVByZWZlcmVuY2VzIGFj
Y2Vzc2liaWxpdHlQcmVmZXJlbmNlcygpCiAjaWYgSEFWRShNRURJQV9BQ0NFU1NJQklMSVRZX0ZS
QU1FV09SSykKIHZvaWQgV2ViUHJvY2Vzc1Bvb2w6OnNldE1lZGlhQWNjZXNzaWJpbGl0eVByZWZl
cmVuY2VzKFdlYlByb2Nlc3NQcm94eSYgcHJvY2VzcykKIHsKLSAgICBkaXNwYXRjaF9hc3luYyhk
aXNwYXRjaF9nZXRfZ2xvYmFsX3F1ZXVlKERJU1BBVENIX1FVRVVFX1BSSU9SSVRZX0RFRkFVTFQs
IDApLCBbd2Vha1Byb2Nlc3MgPSBtYWtlV2Vha1B0cihwcm9jZXNzKV0geworICAgIGRpc3BhdGNo
X2FzeW5jKGRpc3BhdGNoX2dldF9nbG9iYWxfcXVldWUoRElTUEFUQ0hfUVVFVUVfUFJJT1JJVFlf
REVGQVVMVCwgMCksIFt3ZWFrUHJvY2VzcyA9IFdlYWtQdHIgeyBwcm9jZXNzIH1dIHsKICAgICAg
ICAgYXV0byBjYXB0aW9uRGlzcGxheU1vZGUgPSBXZWJDb3JlOjpDYXB0aW9uVXNlclByZWZlcmVu
Y2VzTWVkaWFBRjo6cGxhdGZvcm1DYXB0aW9uRGlzcGxheU1vZGUoKTsKICAgICAgICAgYXV0byBw
cmVmZXJyZWRMYW5ndWFnZXMgPSBXZWJDb3JlOjpDYXB0aW9uVXNlclByZWZlcmVuY2VzTWVkaWFB
Rjo6cGxhdGZvcm1QcmVmZXJyZWRMYW5ndWFnZXMoKTsKICAgICAgICAgY2FsbE9uTWFpblJ1bkxv
b3AoW3dlYWtQcm9jZXNzLCBjYXB0aW9uRGlzcGxheU1vZGUsIHByZWZlcnJlZExhbmd1YWdlcyA9
IFdURk1vdmUocHJlZmVycmVkTGFuZ3VhZ2VzKS5pc29sYXRlZENvcHkoKV0gewpAQCAtNzE2LDcg
KzcxNiw3IEBAIHZvaWQgV2ViUHJvY2Vzc1Bvb2w6OnJlbW92ZUNGTm90aWZpY2F0aW9uT2JzZXJ2
ZXIoQ0ZTdHJpbmdSZWYgbmFtZSwgQ0ZOb3RpZmljYXRpCiAKIHZvaWQgV2ViUHJvY2Vzc1Bvb2w6
OnJlZ2lzdGVyTm90aWZpY2F0aW9uT2JzZXJ2ZXJzKCkKIHsKLSAgICBtX3dlYWtPYnNlcnZlciA9
IGFkb3B0TlMoW1tXS1Byb2Nlc3NQb29sV2Vha09ic2VydmVyIGFsbG9jXSBpbml0V2l0aFdlYWtQ
dHI6bWFrZVdlYWtQdHIoKnRoaXMpXSk7CisgICAgbV93ZWFrT2JzZXJ2ZXIgPSBhZG9wdE5TKFtb
V0tQcm9jZXNzUG9vbFdlYWtPYnNlcnZlciBhbGxvY10gaW5pdFdpdGhXZWFrUHRyOip0aGlzXSk7
CiAKICNpZiAhUExBVEZPUk0oSU9TX0ZBTUlMWSkKICAgICBtX3Bvd2VyT2JzZXJ2ZXIgPSBtYWtl
VW5pcXVlPFdlYkNvcmU6OlBvd2VyT2JzZXJ2ZXI+KFt3ZWFrVGhpcyA9IFdlYWtQdHIgeyAqdGhp
cyB9XSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9XZWJWaWV3
SW1wbC5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dlYlZpZXdJbXBsLm1tCmlu
ZGV4IDE4Y2NlYzBmZWM1NGI0NjEyOWFhYWQxNTM0MmJiNzdlZWFmNjAwMGMuLjQwMmQyY2NiMzdl
NWQyNzMxYzcwNjAxZWMzMDhjZDY2MjczNTRkZjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL0NvY29hL1dlYlZpZXdJbXBsLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0NvY29hL1dlYlZpZXdJbXBsLm1tCkBAIC0xMDExLDcgKzEwMTEsNyBAQCAtIChpbnN0YW5j
ZXR5cGUpaW5pdFdpdGhXZWJWaWV3SW1wbDooV2ViS2l0OjpXZWJWaWV3SW1wbCYpaW1wbAogICAg
IGlmICghKHNlbGYgPSBbc3VwZXIgaW5pdF0pKQogICAgICAgICByZXR1cm4gbmlsOwogCi0gICAg
X2ltcGwgPSBtYWtlV2Vha1B0cihpbXBsKTsKKyAgICBfaW1wbCA9IGltcGw7CiAgICAgcmV0dXJu
IHNlbGY7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0Rvd25sb2Fk
cy9Eb3dubG9hZFByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0Rvd25sb2Fkcy9E
b3dubG9hZFByb3h5LmNwcAppbmRleCA0NjM4NGU0MmY5MWUxNGMxMjIxNTRjYjkwNzUwZDI5ZWIy
ZDQ2ZTBkLi5lYjBjZmMzNzU3Y2VlMTcxMDViYzQzNzNhMDg3N2Q4NmM4OTg1OWQzIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Eb3dubG9hZHMvRG93bmxvYWRQcm94eS5jcHAK
KysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvRG93bmxvYWRzL0Rvd25sb2FkUHJveHkuY3Bw
CkBAIC01NCw3ICs1NCw3IEBAIERvd25sb2FkUHJveHk6OkRvd25sb2FkUHJveHkoRG93bmxvYWRQ
cm94eU1hcCYgZG93bmxvYWRQcm94eU1hcCwgV2Vic2l0ZURhdGFTdG9yCiAgICAgLCBtX2NsaWVu
dChjbGllbnQpCiAgICAgLCBtX2Rvd25sb2FkSUQoRG93bmxvYWRJRDo6Z2VuZXJhdGUoKSkKICAg
ICAsIG1fcmVxdWVzdChyZXNvdXJjZVJlcXVlc3QpCi0gICAgLCBtX29yaWdpbmF0aW5nUGFnZSht
YWtlV2Vha1B0cihvcmlnaW5hdGluZ1BhZ2UpKQorICAgICwgbV9vcmlnaW5hdGluZ1BhZ2Uob3Jp
Z2luYXRpbmdQYWdlKQogICAgICwgbV9mcmFtZUluZm8oQVBJOjpGcmFtZUluZm86OmNyZWF0ZShG
cmFtZUluZm9EYXRhIHsgZnJhbWVJbmZvRGF0YSB9LCBvcmlnaW5hdGluZ1BhZ2UpKQogewogfQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvR1BVL0dQVVByb2Nlc3NQcm94eS5j
cHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9HUFUvR1BVUHJvY2Vzc1Byb3h5LmNwcAppbmRl
eCBmYWQ1ZjlkNjc0NGFjMmZjYjU0Y2FhZWVlNjNlYjYzMzI1MTRjMDFkLi43Y2E2N2ViYjY2NmQ1
NGJlODY5Zjc5NGI0NWU3OGYyNzcxOWEzM2ZhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9HUFUvR1BVUHJvY2Vzc1Byb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9HUFUvR1BVUHJvY2Vzc1Byb3h5LmNwcApAQCAtMTA4LDcgKzEwOCw3IEBAIFJlZjxHUFVQ
cm9jZXNzUHJveHk+IEdQVVByb2Nlc3NQcm94eTo6Z2V0T3JDcmVhdGUoKQogICAgIH0KICAgICBh
dXRvIGdwdVByb2Nlc3MgPSBhZG9wdFJlZigqbmV3IEdQVVByb2Nlc3NQcm94eSk7CiAgICAgZ3B1
UHJvY2Vzcy0+dXBkYXRlUHJlZmVyZW5jZXMoKTsKLSAgICBzaW5nbGV0b24oKSA9IG1ha2VXZWFr
UHRyKGdwdVByb2Nlc3MuZ2V0KCkpOworICAgIHNpbmdsZXRvbigpID0gZ3B1UHJvY2VzczsKICAg
ICByZXR1cm4gZ3B1UHJvY2VzczsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvSW5zcGVjdG9yL0luc3BlY3RvclRhcmdldFByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL0luc3BlY3Rvci9JbnNwZWN0b3JUYXJnZXRQcm94eS5jcHAKaW5kZXggNjkyOGNh
MmZiZmI2OTM5MDYyZTNjZDE0YmI3YmE2ZjJmZGM4N2Y1Zi4uY2ZjYWNjZTAxMjJiYjAzZmE0N2Zk
ODU4MGNmYmVkZmIyYWQzN2Q0OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
SW5zcGVjdG9yL0luc3BlY3RvclRhcmdldFByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9JbnNwZWN0b3IvSW5zcGVjdG9yVGFyZ2V0UHJveHkuY3BwCkBAIC00NSw3ICs0NSw3
IEBAIHN0ZDo6dW5pcXVlX3B0cjxJbnNwZWN0b3JUYXJnZXRQcm94eT4gSW5zcGVjdG9yVGFyZ2V0
UHJveHk6OmNyZWF0ZShXZWJQYWdlUHJveHkmCiBzdGQ6OnVuaXF1ZV9wdHI8SW5zcGVjdG9yVGFy
Z2V0UHJveHk+IEluc3BlY3RvclRhcmdldFByb3h5OjpjcmVhdGUoUHJvdmlzaW9uYWxQYWdlUHJv
eHkmIHByb3Zpc2lvbmFsUGFnZSwgY29uc3QgU3RyaW5nJiB0YXJnZXRJZCwgSW5zcGVjdG9yOjpJ
bnNwZWN0b3JUYXJnZXRUeXBlIHR5cGUpCiB7CiAgICAgYXV0byB0YXJnZXQgPSBJbnNwZWN0b3JU
YXJnZXRQcm94eTo6Y3JlYXRlKHByb3Zpc2lvbmFsUGFnZS5wYWdlKCksIHRhcmdldElkLCB0eXBl
KTsKLSAgICB0YXJnZXQtPm1fcHJvdmlzaW9uYWxQYWdlID0gbWFrZVdlYWtQdHIocHJvdmlzaW9u
YWxQYWdlKTsKKyAgICB0YXJnZXQtPm1fcHJvdmlzaW9uYWxQYWdlID0gcHJvdmlzaW9uYWxQYWdl
OwogICAgIHJldHVybiB0YXJnZXQ7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL0luc3BlY3Rvci9XZWJJbnNwZWN0b3JVSUV4dGVuc2lvbkNvbnRyb2xsZXJQcm94eS5j
cHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9JbnNwZWN0b3IvV2ViSW5zcGVjdG9yVUlFeHRl
bnNpb25Db250cm9sbGVyUHJveHkuY3BwCmluZGV4IDA3YTYzZjQ5ZGE4NTY4MDdlMmJhMWVlMDE5
MjAxZGE4ZWMzOTgyOTAuLjdiZDFlMjhmNGYxOTZiZjFiZDMzMmNjYzgzYzFiOWU4YjJmMzliZGUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0luc3BlY3Rvci9XZWJJbnNwZWN0
b3JVSUV4dGVuc2lvbkNvbnRyb2xsZXJQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvSW5zcGVjdG9yL1dlYkluc3BlY3RvclVJRXh0ZW5zaW9uQ29udHJvbGxlclByb3h5LmNw
cApAQCAtMzgsNyArMzgsNyBAQAogbmFtZXNwYWNlIFdlYktpdCB7CiAKIFdlYkluc3BlY3RvclVJ
RXh0ZW5zaW9uQ29udHJvbGxlclByb3h5OjpXZWJJbnNwZWN0b3JVSUV4dGVuc2lvbkNvbnRyb2xs
ZXJQcm94eShXZWJQYWdlUHJveHkmIGluc3BlY3RvclBhZ2UpCi0gICAgOiBtX2luc3BlY3RvclBh
Z2UobWFrZVdlYWtQdHIoaW5zcGVjdG9yUGFnZSkpCisgICAgOiBtX2luc3BlY3RvclBhZ2UoaW5z
cGVjdG9yUGFnZSkKIHsKICAgICBtX2luc3BlY3RvclBhZ2UtPnByb2Nlc3MoKS5hZGRNZXNzYWdl
UmVjZWl2ZXIoTWVzc2FnZXM6OldlYkluc3BlY3RvclVJRXh0ZW5zaW9uQ29udHJvbGxlclByb3h5
OjptZXNzYWdlUmVjZWl2ZXJOYW1lKCksIG1faW5zcGVjdG9yUGFnZS0+d2ViUGFnZUlEKCksICp0
aGlzKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0xhdW5jaGVyL21h
Yy9Qcm9jZXNzTGF1bmNoZXJNYWMubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9MYXVuY2hl
ci9tYWMvUHJvY2Vzc0xhdW5jaGVyTWFjLm1tCmluZGV4IGRhYzMxYzNkOWY2NmEwOGIwZTBkMDY1
NmFmZTY3YTViZjg4YWEzYTUuLmVjMjZkMzc0M2FhYTJkNjdiNTkyMDJlZDlhNmFjMDRhOWFhM2Ji
OGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0xhdW5jaGVyL21hYy9Qcm9j
ZXNzTGF1bmNoZXJNYWMubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTGF1bmNoZXIv
bWFjL1Byb2Nlc3NMYXVuY2hlck1hYy5tbQpAQCAtMjMzLDcgKzIzMyw3IEBAIHZvaWQgUHJvY2Vz
c0xhdW5jaGVyOjpsYXVuY2hQcm9jZXNzKCkKIAogICAgIHhwY19kaWN0aW9uYXJ5X3NldF92YWx1
ZShib290c3RyYXBNZXNzYWdlLmdldCgpLCAiZXh0cmEtaW5pdGlhbGl6YXRpb24tZGF0YSIsIGV4
dHJhSW5pdGlhbGl6YXRpb25EYXRhLmdldCgpKTsKIAotICAgIGF1dG8gZXJyb3JIYW5kbGVySW1w
bCA9IFt3ZWFrUHJvY2Vzc0xhdW5jaGVyID0gbWFrZVdlYWtQdHIoKnRoaXMpLCBsaXN0ZW5pbmdQ
b3J0XSAoeHBjX29iamVjdF90IGV2ZW50KSB7CisgICAgYXV0byBlcnJvckhhbmRsZXJJbXBsID0g
W3dlYWtQcm9jZXNzTGF1bmNoZXIgPSBXZWFrUHRyIHsgKnRoaXMgfSwgbGlzdGVuaW5nUG9ydF0g
KHhwY19vYmplY3RfdCBldmVudCkgewogICAgICAgICBBU1NFUlQoIWV2ZW50IHx8IHhwY19nZXRf
dHlwZShldmVudCkgPT0gWFBDX1RZUEVfRVJST1IpOwogICAgICAgICAKICAgICAgICAgYXV0byBw
cm9jZXNzTGF1bmNoZXIgPSB3ZWFrUHJvY2Vzc0xhdW5jaGVyLmdldCgpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvTWVkaWEvUmVtb3RlTWVkaWFTZXNzaW9uQ29vcmRpbmF0
b3JQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9NZWRpYS9SZW1vdGVNZWRpYVNl
c3Npb25Db29yZGluYXRvclByb3h5LmNwcAppbmRleCA3MTE1NGFkZDBhZjJiOTE0YWUyM2FiM2Nl
YzQzM2EwZTEzMGUxMWQyLi4zZmUwYWJjZmUzNmJlZjdjYTQ1YmVkNTY2MWE3MzdlZDJiZmU1NmQw
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9NZWRpYS9SZW1vdGVNZWRpYVNl
c3Npb25Db29yZGluYXRvclByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9N
ZWRpYS9SZW1vdGVNZWRpYVNlc3Npb25Db29yZGluYXRvclByb3h5LmNwcApAQCAtNjAsNyArNjAs
NyBAQCBSZW1vdGVNZWRpYVNlc3Npb25Db29yZGluYXRvclByb3h5OjpSZW1vdGVNZWRpYVNlc3Np
b25Db29yZGluYXRvclByb3h5KFdlYlBhZ2VQcgogICAgICwgbV9sb2dJZGVudGlmaWVyKExvZ2dl
ckhlbHBlcjo6dW5pcXVlTG9nSWRlbnRpZmllcigpKQogI2VuZGlmCiB7Ci0gICAgbV9wcml2YXRl
Q29vcmRpbmF0b3ItPnNldENsaWVudChtYWtlV2Vha1B0cih0aGlzKSk7CisgICAgbV9wcml2YXRl
Q29vcmRpbmF0b3ItPnNldENsaWVudCgqdGhpcyk7CiAgICAgbV93ZWJQYWdlUHJveHkucHJvY2Vz
cygpLmFkZE1lc3NhZ2VSZWNlaXZlcihNZXNzYWdlczo6UmVtb3RlTWVkaWFTZXNzaW9uQ29vcmRp
bmF0b3JQcm94eTo6bWVzc2FnZVJlY2VpdmVyTmFtZSgpLCBtX3dlYlBhZ2VQcm94eS53ZWJQYWdl
SUQoKSwgKnRoaXMpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9N
ZWRpYUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0UHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvTWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdFByb3h5LmNwcAppbmRleCA4
OGJhMjNiOWU4YzIyZjJmMWVhZjdiNDVjNjhhZTFiOTY2OWFiY2Q1Li4yNjgzMjdhZWIyMzFhMmYy
ZjJkNjY2OGY0NWY0YThhZWE5YjUyYTRiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9NZWRpYUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0UHJveHkuY3BwCisrKyBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL01lZGlhS2V5U3lzdGVtUGVybWlzc2lvblJlcXVlc3RQcm94eS5j
cHAKQEAgLTM1LDcgKzM1LDcgQEAgbmFtZXNwYWNlIFdlYktpdCB7CiB1c2luZyBuYW1lc3BhY2Ug
V2ViQ29yZTsKIAogTWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdFByb3h5OjpNZWRpYUtl
eVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0UHJveHkoTWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVx
dWVzdE1hbmFnZXJQcm94eSYgbWFuYWdlciwgTWVkaWFLZXlTeXN0ZW1SZXF1ZXN0SWRlbnRpZmll
ciBtZWRpYUtleVN5c3RlbUlELCBGcmFtZUlkZW50aWZpZXIgbWFpbkZyYW1lSUQsIEZyYW1lSWRl
bnRpZmllciBmcmFtZUlELCBSZWY8V2ViQ29yZTo6U2VjdXJpdHlPcmlnaW4+JiYgdG9wTGV2ZWxE
b2N1bWVudE9yaWdpbiwgY29uc3QgU3RyaW5nJiBrZXlTeXN0ZW0pCi0gICAgOiBtX21hbmFnZXIo
bWFrZVdlYWtQdHIobWFuYWdlcikpCisgICAgOiBtX21hbmFnZXIobWFuYWdlcikKICAgICAsIG1f
bWVkaWFLZXlTeXN0ZW1JRChtZWRpYUtleVN5c3RlbUlEKQogICAgICwgbV9tYWluRnJhbWVJRCht
YWluRnJhbWVJRCkKICAgICAsIG1fZnJhbWVJRChmcmFtZUlEKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5LmNwcCBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5jcHAKaW5kZXgg
MmY1NWM2M2FiYjU1OWIxMDBkNzQ4ZGUxNWVmMDE3NmNhYTlkZGI3NS4uYzU1M2Y5Y2E3MTI5OGY4
NjkxY2FkMDFkMGY3OGJlM2E3MDY0ODVkYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHkuY3BwCkBAIC0zOTEsNyArMzkx
LDcgQEAgdm9pZCBOZXR3b3JrUHJvY2Vzc1Byb3h5OjpkaWRSZWNlaXZlQXV0aGVudGljYXRpb25D
aGFsbGVuZ2UoUEFMOjpTZXNzaW9uSUQgc2Vzc2kKICAgICBpZiAoY29yZUNoYWxsZW5nZS5wcm90
ZWN0aW9uU3BhY2UoKS5hdXRoZW50aWNhdGlvblNjaGVtZSgpID09IFByb3RlY3Rpb25TcGFjZUF1
dGhlbnRpY2F0aW9uU2NoZW1lQ2xpZW50Q2VydGlmaWNhdGVSZXF1ZXN0ZWQpIHsKICAgICAgICAg
aWYgKGF1dG8qIHN0b3JlID0gd2Vic2l0ZURhdGFTdG9yZUZyb21TZXNzaW9uSUQoc2Vzc2lvbklE
KSkgewogICAgICAgICAgICAgYXV0byBuZXdTZWNLZXlQcm94eVN0b3JlID0gU2VjS2V5UHJveHlT
dG9yZTo6Y3JlYXRlKCk7Ci0gICAgICAgICAgICBzZWNLZXlQcm94eVN0b3JlID0gbWFrZVdlYWtQ
dHIobmV3U2VjS2V5UHJveHlTdG9yZS5nZXQoKSk7CisgICAgICAgICAgICBzZWNLZXlQcm94eVN0
b3JlID0gbmV3U2VjS2V5UHJveHlTdG9yZTsKICAgICAgICAgICAgIHN0b3JlLT5hZGRTZWNLZXlQ
cm94eVN0b3JlKFdURk1vdmUobmV3U2VjS2V5UHJveHlTdG9yZSkpOwogICAgICAgICB9CiAgICAg
fQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJv
Y2Vzc1Byb3h5Q29jb2EubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9OZXR3b3JrL05ldHdv
cmtQcm9jZXNzUHJveHlDb2NvYS5tbQppbmRleCA2M2EwNWRkNTQwYWI1ZWFkYjVmMDBlYzQ0NTZh
ODk4MWUxNjM0YWI5Li4zMTU1NmQyMzcwZjc0MWEzOTA1MGNhNzI5MDIwYzNkYmU3NWY3ZDc1IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNz
UHJveHlDb2NvYS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9OZXR3b3JrL05ldHdv
cmtQcm9jZXNzUHJveHlDb2NvYS5tbQpAQCAtNjEsNyArNjEsNyBAQCBib29sIE5ldHdvcmtQcm9j
ZXNzUHJveHk6OlhQQ0V2ZW50SGFuZGxlcjo6aGFuZGxlWFBDRXZlbnQoeHBjX29iamVjdF90IGV2
ZW50KSBjbwogfQogCiBOZXR3b3JrUHJvY2Vzc1Byb3h5OjpYUENFdmVudEhhbmRsZXI6OlhQQ0V2
ZW50SGFuZGxlcihjb25zdCBOZXR3b3JrUHJvY2Vzc1Byb3h5JiBuZXR3b3JrUHJvY2VzcykKLSAg
ICA6IG1fbmV0d29ya1Byb2Nlc3MobWFrZVdlYWtQdHIobmV0d29ya1Byb2Nlc3MpKQorICAgIDog
bV9uZXR3b3JrUHJvY2VzcyhuZXR3b3JrUHJvY2VzcykKIHsKIH0KIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvUERGL1dLUERGSFVEVmlldy5tbSBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL1BERi9XS1BERkhVRFZpZXcubW0KaW5kZXggNmM0NjUwM2Y5ODdiMGYxMjY1ZTkz
OGIxZTBiNWY4MjQ1NWEzMzZjMi4uM2NmMjdkMWJlOTcwNGQ2YWY2NzExNGQ4ZTlhZDA5MGIyNmEx
ZThjZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUERGL1dLUERGSFVEVmll
dy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9QREYvV0tQREZIVURWaWV3Lm1tCkBA
IC0xMDIsNyArMTAyLDcgQEAgLSAoaW5zdGFuY2V0eXBlKWluaXRXaXRoRnJhbWU6KE5TUmVjdClm
cmFtZSBwbHVnaW5JZGVudGlmaWVyOihXZWJLaXQ6OlBERlBsdWdpbkkKICAgICBzZWxmLndhbnRz
TGF5ZXIgPSBZRVM7CiAgICAgX2NhY2hlZEljb25zID0gYWRvcHROUyhbW05TTXV0YWJsZURpY3Rp
b25hcnkgYWxsb2NdIGluaXRdKTsKICAgICBfcGx1Z2luSWRlbnRpZmllciA9IHBsdWdpbklkZW50
aWZpZXI7Ci0gICAgX3BhZ2UgPSBtYWtlV2Vha1B0cihwYWdlKTsKKyAgICBfcGFnZSA9IHBhZ2U7
CiAgICAgX2RldmljZVNjYWxlRmFjdG9yID0gcGFnZS5kZXZpY2VTY2FsZUZhY3RvcigpOwogICAg
IF92aXNpYmxlID0gWUVTOwogICAgIFtzZWxmIF9zZXR1cExheWVyOnNlbGYubGF5ZXJdOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvU3BlZWNoUmVjb2duaXRpb25QZXJtaXNz
aW9uUmVxdWVzdC5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvU3BlZWNoUmVjb2duaXRpb25Q
ZXJtaXNzaW9uUmVxdWVzdC5oCmluZGV4IDI4YWViNTg3YWMxMzlkOTI1ODQzYmU3NmYyNDE2MTU3
NmJlYWRjN2MuLjYyNjZjMTY3NTFjZWM2MTI0ZDEzMzExMGZiOWU0ZDQzMTI2MjVkMjEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1NwZWVjaFJlY29nbml0aW9uUGVybWlzc2lv
blJlcXVlc3QuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9TcGVlY2hSZWNvZ25pdGlv
blBlcm1pc3Npb25SZXF1ZXN0LmgKQEAgLTU5LDcgKzU5LDcgQEAgcHVibGljOgogCiBwcml2YXRl
OgogICAgIFNwZWVjaFJlY29nbml0aW9uUGVybWlzc2lvblJlcXVlc3QoV2ViQ29yZTo6U3BlZWNo
UmVjb2duaXRpb25SZXF1ZXN0JiByZXF1ZXN0LCBTcGVlY2hSZWNvZ25pdGlvblBlcm1pc3Npb25S
ZXF1ZXN0Q2FsbGJhY2smJiBjb21wbGV0aW9uSGFuZGxlcikKLSAgICAgICAgOiBtX3JlcXVlc3Qo
bWFrZVdlYWtQdHIocmVxdWVzdCkpCisgICAgICAgIDogbV9yZXF1ZXN0KHJlcXVlc3QpCiAgICAg
ICAgICwgbV9jb21wbGV0aW9uSGFuZGxlcihXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSkKICAg
ICB7IH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvU3BlZWNoUmVjb2du
aXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlLmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL1NwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZS5jcHAKaW5kZXgg
ZTQyZGJmMTI4MWQzNmZlZjJlMzAzZTcwN2Q1YjViYWYxNjZlZTE1Mi4uNTNjYWRkMzRhYjkyODBl
MjBmNzNmMWEyYmEzYmMxM2QxYTU0MTkzOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlLmNwcAorKysg
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9TcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1l
TWVkaWFTb3VyY2UuY3BwCkBAIC00Nyw3ICs0Nyw3IEBAIFJlZjxXZWJDb3JlOjpSZWFsdGltZU1l
ZGlhU291cmNlPiBTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2U6OmNy
CiBTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2U6OlNwZWVjaFJlY29n
bml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZShXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291
cmNlSWRlbnRpZmllciBpZGVudGlmaWVyLCBTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1l
TWVkaWFTb3VyY2VNYW5hZ2VyJiBtYW5hZ2VyLCBjb25zdCBXZWJDb3JlOjpDYXB0dXJlRGV2aWNl
JiBjYXB0dXJlRGV2aWNlKQogICAgIDogV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZShXZWJD
b3JlOjpSZWFsdGltZU1lZGlhU291cmNlOjpUeXBlOjpBdWRpbywgU3RyaW5nIHsgY2FwdHVyZURl
dmljZS5sYWJlbCgpIH0sIFN0cmluZyB7IGNhcHR1cmVEZXZpY2UucGVyc2lzdGVudElkKCkgfSkK
ICAgICAsIG1faWRlbnRpZmllcihpZGVudGlmaWVyKQotICAgICwgbV9tYW5hZ2VyKG1ha2VXZWFr
UHRyKG1hbmFnZXIpKQorICAgICwgbV9tYW5hZ2VyKG1hbmFnZXIpCiAjaWYgUExBVEZPUk0oQ09D
T0EpCiAgICAgLCBtX3JpbmdCdWZmZXIobWFrZVVuaXF1ZTxXZWJDb3JlOjpDQVJpbmdCdWZmZXI+
KCkpCiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1NwZWVjaFJl
Y29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIuY3BwIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNl
TWFuYWdlci5jcHAKaW5kZXggYmMwYzcwOGE4NjQ3YjNiNmViMDVjMDFhYzEyYTA3Y2Y4YzgyMDdm
Yi4uNjhkYzExNWYxNjlmMTllZjg5ZjY2ZmU1YzhmMjQxYzg1Yjk3OGQ3MSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1l
ZGlhU291cmNlTWFuYWdlci5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvU3BlZWNo
UmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlci5jcHAKQEAgLTQyLDcg
KzQyLDcgQEAgdm9pZCBTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VN
YW5hZ2VyOjphZGRTb3VyY2UoU3BlZWNoUmVjb2duaXQKIHsKICAgICBhdXRvIGlkZW50aWZpZXIg
PSBzb3VyY2UuaWRlbnRpZmllcigpOwogICAgIEFTU0VSVCghbV9zb3VyY2VzLmNvbnRhaW5zKGlk
ZW50aWZpZXIpKTsKLSAgICBtX3NvdXJjZXMuYWRkKGlkZW50aWZpZXIsIG1ha2VXZWFrUHRyKHNv
dXJjZSkpOworICAgIG1fc291cmNlcy5hZGQoaWRlbnRpZmllciwgc291cmNlKTsKIAogI2lmIEVO
QUJMRShTQU5EQk9YX0VYVEVOU0lPTlMpCiAgICAgaWYgKCFjYXB0dXJlRGV2aWNlLmlzTW9ja0Rl
dmljZSgpKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9WaWV3R2VzdHVy
ZUNvbnRyb2xsZXIuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvVmlld0dlc3R1cmVDb250
cm9sbGVyLmNwcAppbmRleCA1YjQ5Yjk5MTdiNzc0NzU2MmQ4N2UwYjM4MzZiMTRjYzFlN2Q2NDI0
Li43YmQ1ODc3ZGQ4ZTkyNThkYzVkNmE3ZmE0Mjg2N2ZiOTI5NzlkNmZhIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9WaWV3R2VzdHVyZUNvbnRyb2xsZXIuY3BwCisrKyBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL1ZpZXdHZXN0dXJlQ29udHJvbGxlci5jcHAKQEAgLTE0Niw3
ICsxNDYsNyBAQCB2b2lkIFZpZXdHZXN0dXJlQ29udHJvbGxlcjo6ZGlkRW5kR2VzdHVyZSgpCiAK
IHZvaWQgVmlld0dlc3R1cmVDb250cm9sbGVyOjpzZXRBbHRlcm5hdGVCYWNrRm9yd2FyZExpc3RT
b3VyY2VQYWdlKFdlYlBhZ2VQcm94eSogcGFnZSkKIHsKLSAgICBtX2FsdGVybmF0ZUJhY2tGb3J3
YXJkTGlzdFNvdXJjZVBhZ2UgPSBtYWtlV2Vha1B0cihwYWdlKTsKKyAgICBtX2FsdGVybmF0ZUJh
Y2tGb3J3YXJkTGlzdFNvdXJjZVBhZ2UgPSBwYWdlOwogfQogCiBib29sIFZpZXdHZXN0dXJlQ29u
dHJvbGxlcjo6Y2FuU3dpcGVJbkRpcmVjdGlvbihTd2lwZURpcmVjdGlvbiBkaXJlY3Rpb24pIGNv
bnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlv
bi9BdXRoZW50aWNhdG9yLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJBdXRoZW50aWNh
dGlvbi9BdXRoZW50aWNhdG9yLmgKaW5kZXggMmU3MTBhYTJlN2JlMmY3YzRhYWUxMGU0MDNkOTgy
MTQzZTBhYjU4NC4uNWNmOWFmNTcwOGU4YzFiMWYxN2JjNGRkY2EyMmVmYzk0Y2MzNGFhYiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViQXV0aGVudGljYXRpb24vQXV0aGVu
dGljYXRvci5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9u
L0F1dGhlbnRpY2F0b3IuaApAQCAtNjMsNyArNjMsNyBAQCBwdWJsaWM6CiAKICAgICB2aXJ0dWFs
IH5BdXRoZW50aWNhdG9yKCkgPSBkZWZhdWx0OwogCi0gICAgdm9pZCBzZXRPYnNlcnZlcihPYnNl
cnZlciYgb2JzZXJ2ZXIpIHsgbV9vYnNlcnZlciA9IG1ha2VXZWFrUHRyKG9ic2VydmVyKTsgfQor
ICAgIHZvaWQgc2V0T2JzZXJ2ZXIoT2JzZXJ2ZXImIG9ic2VydmVyKSB7IG1fb2JzZXJ2ZXIgPSBv
YnNlcnZlcjsgfQogCiAgICAgLy8gVGhpcyBvcGVyYXRpb24gaXMgZ3VhcmFudGVlZCB0byBleGVj
dXRlIGFzeW5jaHJvbm91c2x5LgogICAgIHZvaWQgaGFuZGxlUmVxdWVzdChjb25zdCBXZWJBdXRo
ZW50aWNhdGlvblJlcXVlc3REYXRhJik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9BdXRoZW50aWNhdG9yTWFuYWdlci5jcHAgYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9BdXRoZW50aWNhdG9yTWFuYWdlci5j
cHAKaW5kZXggOTA3Y2Y5NWYyNTA0ZmJmMWQ4ZDJmMWQ4ZDM0ZWFlYWUyZjY5ODNhMi4uOTM0ODBl
ZDVjYjM5YTYxY2JjZjY3MzUxZTBhODgwZWEwOWZlNDQ3NiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvV2ViQXV0aGVudGljYXRpb24vQXV0aGVudGljYXRvck1hbmFnZXIuY3Bw
CisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL0F1dGhlbnRp
Y2F0b3JNYW5hZ2VyLmNwcApAQCAtNDYyLDcgKzQ2Miw3IEBAIHZvaWQgQXV0aGVudGljYXRvck1h
bmFnZXI6OnJ1blBhbmVsKCkKIAogICAgIG1fcGVuZGluZ1JlcXVlc3REYXRhLnBhbmVsID0gQVBJ
OjpXZWJBdXRoZW50aWNhdGlvblBhbmVsOjpjcmVhdGUoKnRoaXMsIGdldFJwSWQob3B0aW9ucyks
IHRyYW5zcG9ydHMsIGdldENsaWVudERhdGFUeXBlKG9wdGlvbnMpLCBnZXRVc2VyTmFtZShvcHRp
b25zKSk7CiAgICAgYXV0byYgcGFuZWwgPSAqbV9wZW5kaW5nUmVxdWVzdERhdGEucGFuZWw7Ci0g
ICAgcGFnZS0+dWlDbGllbnQoKS5ydW5XZWJBdXRoZW50aWNhdGlvblBhbmVsKCpwYWdlLCBwYW5l
bCwgKmZyYW1lLCBGcmFtZUluZm9EYXRhIHsgbV9wZW5kaW5nUmVxdWVzdERhdGEuZnJhbWVJbmZv
IH0sIFt0cmFuc3BvcnRzID0gV1RGTW92ZSh0cmFuc3BvcnRzKSwgd2Vha1BhbmVsID0gbWFrZVdl
YWtQdHIocGFuZWwpLCB3ZWFrVGhpcyA9IFdlYWtQdHIgeyAqdGhpcyB9LCB0aGlzXSAoV2ViQXV0
aGVudGljYXRpb25QYW5lbFJlc3VsdCByZXN1bHQpIHsKKyAgICBwYWdlLT51aUNsaWVudCgpLnJ1
bldlYkF1dGhlbnRpY2F0aW9uUGFuZWwoKnBhZ2UsIHBhbmVsLCAqZnJhbWUsIEZyYW1lSW5mb0Rh
dGEgeyBtX3BlbmRpbmdSZXF1ZXN0RGF0YS5mcmFtZUluZm8gfSwgW3RyYW5zcG9ydHMgPSBXVEZN
b3ZlKHRyYW5zcG9ydHMpLCB3ZWFrUGFuZWwgPSBXZWFrUHRyIHsgcGFuZWwgfSwgd2Vha1RoaXMg
PSBXZWFrUHRyIHsgKnRoaXMgfSwgdGhpc10gKFdlYkF1dGhlbnRpY2F0aW9uUGFuZWxSZXN1bHQg
cmVzdWx0KSB7CiAgICAgICAgIC8vIFRoZSBwYW5lbCBhZGRyZXNzIGlzIHVzZWQgdG8gZGV0ZXJt
aW5lIGlmIHRoZSBjdXJyZW50IHBlbmRpbmcgcmVxdWVzdCBpcyBzdGlsbCB0aGUgc2FtZS4KICAg
ICAgICAgaWYgKCF3ZWFrVGhpcyB8fCAhd2Vha1BhbmVsCiAgICAgICAgICAgICB8fCAocmVzdWx0
ID09IFdlYkF1dGhlbnRpY2F0aW9uUGFuZWxSZXN1bHQ6OkRpZE5vdFByZXNlbnQpCkBAIC01MzUs
NyArNTM1LDcgQEAgdm9pZCBBdXRoZW50aWNhdG9yTWFuYWdlcjo6ZGlzcGF0Y2hQYW5lbENsaWVu
dENhbGwoRnVuY3Rpb248dm9pZChjb25zdCBBUEk6OldlYkEKIHsKICAgICBhdXRvIHdlYWtQYW5l
bCA9IG1fcGVuZGluZ1JlcXVlc3REYXRhLndlYWtQYW5lbDsKICAgICBpZiAoIXdlYWtQYW5lbCkK
LSAgICAgICAgd2Vha1BhbmVsID0gbWFrZVdlYWtQdHIobV9wZW5kaW5nUmVxdWVzdERhdGEucGFu
ZWwuZ2V0KCkpOworICAgICAgICB3ZWFrUGFuZWwgPSBtX3BlbmRpbmdSZXF1ZXN0RGF0YS5wYW5l
bDsKICAgICBpZiAoIXdlYWtQYW5lbCkKICAgICAgICAgcmV0dXJuOwogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9BdXRoZW50aWNhdG9yVHJh
bnNwb3J0U2VydmljZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJBdXRoZW50aWNh
dGlvbi9BdXRoZW50aWNhdG9yVHJhbnNwb3J0U2VydmljZS5jcHAKaW5kZXggMTNiOTEzNjc0NTRk
ZjJkOGUyZDljMzkxOWE3ZjUxOTgyMzhjYzQ1Yi4uMDUwYmM1MjQwYWNkNzcyYmExZDRkOWZiMDE2
NzAyZmY3ODAxYWZhOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViQXV0
aGVudGljYXRpb24vQXV0aGVudGljYXRvclRyYW5zcG9ydFNlcnZpY2UuY3BwCisrKyBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL0F1dGhlbnRpY2F0b3JUcmFuc3Bv
cnRTZXJ2aWNlLmNwcApAQCAtNjksNyArNjksNyBAQCBVbmlxdWVSZWY8QXV0aGVudGljYXRvclRy
YW5zcG9ydFNlcnZpY2U+IEF1dGhlbnRpY2F0b3JUcmFuc3BvcnRTZXJ2aWNlOjpjcmVhdGVNbwog
fQogCiBBdXRoZW50aWNhdG9yVHJhbnNwb3J0U2VydmljZTo6QXV0aGVudGljYXRvclRyYW5zcG9y
dFNlcnZpY2UoT2JzZXJ2ZXImIG9ic2VydmVyKQotICAgIDogbV9vYnNlcnZlcihtYWtlV2Vha1B0
cihvYnNlcnZlcikpCisgICAgOiBtX29ic2VydmVyKG9ic2VydmVyKQogewogfQogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9Db2NvYS9BdXRo
ZW50aWNhdG9yUHJlc2VudGVyQ29vcmRpbmF0b3IubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9XZWJBdXRoZW50aWNhdGlvbi9Db2NvYS9BdXRoZW50aWNhdG9yUHJlc2VudGVyQ29vcmRpbmF0
b3IubW0KaW5kZXggYmQwZThjYWI3OTY4NWI3MDYxYzkyMTFkNDk5N2Y1YzJhYTE0Y2MxMS4uYTE3
ZjhhMmRiY2QzYTAyZjNmOGFlOWI1NjMxYmY4ZGUxMzEyMThlYyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvV2ViQXV0aGVudGljYXRpb24vQ29jb2EvQXV0aGVudGljYXRvclBy
ZXNlbnRlckNvb3JkaW5hdG9yLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkF1
dGhlbnRpY2F0aW9uL0NvY29hL0F1dGhlbnRpY2F0b3JQcmVzZW50ZXJDb29yZGluYXRvci5tbQpA
QCAtMzgsNyArMzgsNyBAQCBuYW1lc3BhY2UgV2ViS2l0IHsKIHVzaW5nIG5hbWVzcGFjZSBXZWJD
b3JlOwogCiBBdXRoZW50aWNhdG9yUHJlc2VudGVyQ29vcmRpbmF0b3I6OkF1dGhlbnRpY2F0b3JQ
cmVzZW50ZXJDb29yZGluYXRvcihjb25zdCBBdXRoZW50aWNhdG9yTWFuYWdlciYgbWFuYWdlciwg
Y29uc3QgU3RyaW5nJiBycElkLCBjb25zdCBUcmFuc3BvcnRTZXQmIHRyYW5zcG9ydHMsIENsaWVu
dERhdGFUeXBlIHR5cGUsIGNvbnN0IFN0cmluZyYgdXNlcm5hbWUpCi0gICAgOiBtX21hbmFnZXIo
bWFrZVdlYWtQdHIobWFuYWdlcikpCisgICAgOiBtX21hbmFnZXIobWFuYWdlcikKIHsKICNpZiBI
QVZFKEFTQ19BVVRIX1VJKQogICAgIG1fY29udGV4dCA9IGFkb3B0TlMoW2FsbG9jQVNDQXV0aG9y
aXphdGlvblByZXNlbnRhdGlvbkNvbnRleHRJbnN0YW5jZSgpIGluaXRXaXRoUmVxdWVzdENvbnRl
eHQ6bnVsbHB0ciBhcHBJZGVudGlmaWVyOm51bGxwdHJdKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL0NvY29hL05mY0Nvbm5lY3Rpb24ubW0g
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9Db2NvYS9OZmNDb25u
ZWN0aW9uLm1tCmluZGV4IDFlNzBhMzE1NDFmM2E2MzA4YzNlMzFjNGJkMmI2YTE2YWQ3ZTlkOWMu
LmNkOGY4YjgyNzRkZmEzNmQzOWQ3YjA1NGZiZGIxOTYyOThjNWU3YzIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL0NvY29hL05mY0Nvbm5lY3Rp
b24ubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViQXV0aGVudGljYXRpb24vQ29j
b2EvTmZjQ29ubmVjdGlvbi5tbQpAQCAtNzcsNyArNzcsNyBAQCBSZWY8TmZjQ29ubmVjdGlvbj4g
TmZjQ29ubmVjdGlvbjo6Y3JlYXRlKFJldGFpblB0cjxORlJlYWRlclNlc3Npb24+JiYgc2Vzc2lv
biwgTgogTmZjQ29ubmVjdGlvbjo6TmZjQ29ubmVjdGlvbihSZXRhaW5QdHI8TkZSZWFkZXJTZXNz
aW9uPiYmIHNlc3Npb24sIE5mY1NlcnZpY2UmIHNlcnZpY2UpCiAgICAgOiBtX3Nlc3Npb24oV1RG
TW92ZShzZXNzaW9uKSkKICAgICAsIG1fZGVsZWdhdGUoYWRvcHROUyhbW1dLTkZSZWFkZXJTZXNz
aW9uRGVsZWdhdGUgYWxsb2NdIGluaXRXaXRoQ29ubmVjdGlvbjoqdGhpc10pKQotICAgICwgbV9z
ZXJ2aWNlKG1ha2VXZWFrUHRyKHNlcnZpY2UpKQorICAgICwgbV9zZXJ2aWNlKHNlcnZpY2UpCiAg
ICAgLCBtX3JldHJ5VGltZXIoUnVuTG9vcDo6bWFpbigpLCB0aGlzLCAmTmZjQ29ubmVjdGlvbjo6
c3RhcnRQb2xsaW5nKQogewogICAgIFttX3Nlc3Npb24gc2V0RGVsZWdhdGU6bV9kZWxlZ2F0ZS5n
ZXQoKV07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJBdXRoZW50aWNh
dGlvbi9Db2NvYS9XS0FTQ0F1dGhvcml6YXRpb25QcmVzZW50ZXJEZWxlZ2F0ZS5tbSBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL0NvY29hL1dLQVNDQXV0aG9yaXph
dGlvblByZXNlbnRlckRlbGVnYXRlLm1tCmluZGV4IGYyOTUwZmUzMDY5MTVmMDFjN2RhYjhiMDI5
MGQ3MGEzZWM3OTAzMTUuLjllMzQyNDU5ZDk3ZDUyNjZmMWYwMmY1ZmNhOGMxZTFiMTkzM2Q5NjIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL0Nv
Y29hL1dLQVNDQXV0aG9yaXphdGlvblByZXNlbnRlckRlbGVnYXRlLm1tCisrKyBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL0NvY29hL1dLQVNDQXV0aG9yaXphdGlv
blByZXNlbnRlckRlbGVnYXRlLm1tCkBAIC00Myw3ICs0Myw3IEBAIEBpbXBsZW1lbnRhdGlvbiBX
S0FTQ0F1dGhvcml6YXRpb25QcmVzZW50ZXJEZWxlZ2F0ZSB7CiAtIChpbnN0YW5jZXR5cGUpaW5p
dFdpdGhDb29yZGluYXRvcjooV2ViS2l0OjpBdXRoZW50aWNhdG9yUHJlc2VudGVyQ29vcmRpbmF0
b3ImKWNvb3JkaW5hdG9yCiB7CiAgICAgaWYgKChzZWxmID0gW3N1cGVyIGluaXRdKSkKLSAgICAg
ICAgX2Nvb3JkaW5hdG9yID0gbWFrZVdlYWtQdHIoY29vcmRpbmF0b3IpOworICAgICAgICBfY29v
cmRpbmF0b3IgPSBjb29yZGluYXRvcjsKICAgICByZXR1cm4gc2VsZjsKIH0KIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViQXV0aGVudGljYXRpb24vQ29jb2EvV0tORlJl
YWRlclNlc3Npb25EZWxlZ2F0ZS5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkF1dGhl
bnRpY2F0aW9uL0NvY29hL1dLTkZSZWFkZXJTZXNzaW9uRGVsZWdhdGUubW0KaW5kZXggYzdjZmNi
NTU4MzJiZDY4YjVmYWIxMDg2NTljYjE4YTRjYWNjYmViMy4uYjMwOWI4MWE3ZTk4NTY4MzI1ZmFj
NTQ3YWZkZjZjZjA4NTQ2ZGY0ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
V2ViQXV0aGVudGljYXRpb24vQ29jb2EvV0tORlJlYWRlclNlc3Npb25EZWxlZ2F0ZS5tbQorKysg
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9Db2NvYS9XS05GUmVh
ZGVyU2Vzc2lvbkRlbGVnYXRlLm1tCkBAIC00MSw3ICs0MSw3IEBAIEBpbXBsZW1lbnRhdGlvbiBX
S05GUmVhZGVyU2Vzc2lvbkRlbGVnYXRlIHsKIC0gKGluc3RhbmNldHlwZSlpbml0V2l0aENvbm5l
Y3Rpb246KFdlYktpdDo6TmZjQ29ubmVjdGlvbiYpY29ubmVjdGlvbgogewogICAgIGlmICgoc2Vs
ZiA9IFtzdXBlciBpbml0XSkpCi0gICAgICAgIF9jb25uZWN0aW9uID0gbWFrZVdlYWtQdHIoY29u
bmVjdGlvbik7CisgICAgICAgIF9jb25uZWN0aW9uID0gY29ubmVjdGlvbjsKICAgICByZXR1cm4g
c2VsZjsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViQXV0aGVu
dGljYXRpb24vQ29jb2EvV2ViQXV0aGVudGljYXRvckNvb3JkaW5hdG9yUHJveHkubW0gYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9Db2NvYS9XZWJBdXRoZW50aWNh
dG9yQ29vcmRpbmF0b3JQcm94eS5tbQppbmRleCBhMmEyOTcxOWJhNzdkZTQ3M2RjM2YyNGE0NGQw
NWEwMmE5ODM3MTVkLi4wYmJkYmYzNmE1NGY5YzViNDE4MDQ2OWVmMDMxMjk5M2U4ODVhNmE4IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9Db2Nv
YS9XZWJBdXRoZW50aWNhdG9yQ29vcmRpbmF0b3JQcm94eS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9Db2NvYS9XZWJBdXRoZW50aWNhdG9yQ29vcmRp
bmF0b3JQcm94eS5tbQpAQCAtMjY0LDcgKzI2NCw3IEBAIHZvaWQgV2ViQXV0aGVudGljYXRvckNv
b3JkaW5hdG9yUHJveHk6OnBlcmZvcm1SZXF1ZXN0KFJldGFpblB0cjxBU0NDcmVkZW50aWFsUmVx
CiAgICAgYXV0byBwcm94eSA9IGFkb3B0TlMoW2FsbG9jQVNDQWdlbnRQcm94eUluc3RhbmNlKCkg
aW5pdF0pOwogCiAgICAgUmV0YWluUHRyPE5TV2luZG93PiB3aW5kb3cgPSBtX3dlYlBhZ2VQcm94
eS5wbGF0Zm9ybVdpbmRvdygpOwotICAgIFtwcm94eSBwZXJmb3JtQXV0aG9yaXphdGlvblJlcXVl
c3RzRm9yQ29udGV4dDpyZXF1ZXN0Q29udGV4dC5nZXQoKSB3aXRoQ2xlYXJhbmNlSGFuZGxlcjpt
YWtlQmxvY2tQdHIoW3dlYWtUaGlzID0gbWFrZVdlYWtQdHIoKnRoaXMpLCBoYW5kbGVyID0gV1RG
TW92ZShoYW5kbGVyKSwgd2luZG93ID0gV1RGTW92ZSh3aW5kb3cpXShOU1hQQ0xpc3RlbmVyRW5k
cG9pbnQgKmRhZW1vbkVucG9pbnQsIE5TRXJyb3IgKmVycm9yKSBtdXRhYmxlIHsKKyAgICBbcHJv
eHkgcGVyZm9ybUF1dGhvcml6YXRpb25SZXF1ZXN0c0ZvckNvbnRleHQ6cmVxdWVzdENvbnRleHQu
Z2V0KCkgd2l0aENsZWFyYW5jZUhhbmRsZXI6bWFrZUJsb2NrUHRyKFt3ZWFrVGhpcyA9IFdlYWtQ
dHIgeyAqdGhpcyB9LCBoYW5kbGVyID0gV1RGTW92ZShoYW5kbGVyKSwgd2luZG93ID0gV1RGTW92
ZSh3aW5kb3cpXShOU1hQQ0xpc3RlbmVyRW5kcG9pbnQgKmRhZW1vbkVucG9pbnQsIE5TRXJyb3Ig
KmVycm9yKSBtdXRhYmxlIHsKICAgICAgICAgYXV0byBwcm90ZWN0ZWRUaGlzID0gd2Vha1RoaXMu
Z2V0KCk7CiAKICAgICAgICAgaWYgKCFwcm90ZWN0ZWRUaGlzIHx8ICFkYWVtb25FbnBvaW50KSB7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9X
ZWJBdXRoZW50aWNhdG9yQ29vcmRpbmF0b3JQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9XZWJBdXRoZW50aWNhdG9yQ29vcmRpbmF0b3JQcm94eS5j
cHAKaW5kZXggOTgyMzdmMTU0NTAxN2U2ZTMzZWUzZWI1MzFiODU1MjZjYTA4MDMwOC4uOTNiMmNk
ZjAxNmNiNWY2YWZjMWVjMzMxMmMxYjg1M2I2YTY1MTFjMCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvV2ViQXV0aGVudGljYXRpb24vV2ViQXV0aGVudGljYXRvckNvb3JkaW5h
dG9yUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0
aW9uL1dlYkF1dGhlbnRpY2F0b3JDb29yZGluYXRvclByb3h5LmNwcApAQCAtNTgsMTIgKzU4LDEy
IEBAIFdlYkF1dGhlbnRpY2F0b3JDb29yZGluYXRvclByb3h5Ojp+V2ViQXV0aGVudGljYXRvckNv
b3JkaW5hdG9yUHJveHkoKQogI2lmICFIQVZFKFVOSUZJRURfQVNDX0FVVEhfVUkpCiB2b2lkIFdl
YkF1dGhlbnRpY2F0b3JDb29yZGluYXRvclByb3h5OjptYWtlQ3JlZGVudGlhbChGcmFtZUlkZW50
aWZpZXIgZnJhbWVJZCwgRnJhbWVJbmZvRGF0YSYmIGZyYW1lSW5mbywgVmVjdG9yPHVpbnQ4X3Q+
JiYgaGFzaCwgUHVibGljS2V5Q3JlZGVudGlhbENyZWF0aW9uT3B0aW9ucyYmIG9wdGlvbnMsIGJv
b2wgcHJvY2Vzc2luZ1VzZXJHZXN0dXJlLCBSZXF1ZXN0Q29tcGxldGlvbkhhbmRsZXImJiBoYW5k
bGVyKQogewotICAgIGhhbmRsZVJlcXVlc3QoeyBXVEZNb3ZlKGhhc2gpLCBXVEZNb3ZlKG9wdGlv
bnMpLCBtYWtlV2Vha1B0cihtX3dlYlBhZ2VQcm94eSksIFdlYkF1dGhlbnRpY2F0aW9uUGFuZWxS
ZXN1bHQ6OlVuYXZhaWxhYmxlLCBudWxscHRyLCBHbG9iYWxGcmFtZUlkZW50aWZpZXIgeyBtX3dl
YlBhZ2VQcm94eS53ZWJQYWdlSUQoKSwgZnJhbWVJZCB9LCBXVEZNb3ZlKGZyYW1lSW5mbyksIHBy
b2Nlc3NpbmdVc2VyR2VzdHVyZSwgU3RyaW5nKCksIG51bGxwdHIgfSwgV1RGTW92ZShoYW5kbGVy
KSk7CisgICAgaGFuZGxlUmVxdWVzdCh7IFdURk1vdmUoaGFzaCksIFdURk1vdmUob3B0aW9ucyks
IG1fd2ViUGFnZVByb3h5LCBXZWJBdXRoZW50aWNhdGlvblBhbmVsUmVzdWx0OjpVbmF2YWlsYWJs
ZSwgbnVsbHB0ciwgR2xvYmFsRnJhbWVJZGVudGlmaWVyIHsgbV93ZWJQYWdlUHJveHkud2ViUGFn
ZUlEKCksIGZyYW1lSWQgfSwgV1RGTW92ZShmcmFtZUluZm8pLCBwcm9jZXNzaW5nVXNlckdlc3R1
cmUsIFN0cmluZygpLCBudWxscHRyIH0sIFdURk1vdmUoaGFuZGxlcikpOwogfQogCiB2b2lkIFdl
YkF1dGhlbnRpY2F0b3JDb29yZGluYXRvclByb3h5OjpnZXRBc3NlcnRpb24oRnJhbWVJZGVudGlm
aWVyIGZyYW1lSWQsIEZyYW1lSW5mb0RhdGEmJiBmcmFtZUluZm8sIFZlY3Rvcjx1aW50OF90PiYm
IGhhc2gsIFB1YmxpY0tleUNyZWRlbnRpYWxSZXF1ZXN0T3B0aW9ucyYmIG9wdGlvbnMsIGJvb2wg
cHJvY2Vzc2luZ1VzZXJHZXN0dXJlLCBSZXF1ZXN0Q29tcGxldGlvbkhhbmRsZXImJiBoYW5kbGVy
KQogewotICAgIGhhbmRsZVJlcXVlc3QoeyBXVEZNb3ZlKGhhc2gpLCBXVEZNb3ZlKG9wdGlvbnMp
LCBtYWtlV2Vha1B0cihtX3dlYlBhZ2VQcm94eSksIFdlYkF1dGhlbnRpY2F0aW9uUGFuZWxSZXN1
bHQ6OlVuYXZhaWxhYmxlLCBudWxscHRyLCBHbG9iYWxGcmFtZUlkZW50aWZpZXIgeyBtX3dlYlBh
Z2VQcm94eS53ZWJQYWdlSUQoKSwgZnJhbWVJZCB9LCBXVEZNb3ZlKGZyYW1lSW5mbyksIHByb2Nl
c3NpbmdVc2VyR2VzdHVyZSwgU3RyaW5nKCksIG51bGxwdHIgfSwgV1RGTW92ZShoYW5kbGVyKSk7
CisgICAgaGFuZGxlUmVxdWVzdCh7IFdURk1vdmUoaGFzaCksIFdURk1vdmUob3B0aW9ucyksIG1f
d2ViUGFnZVByb3h5LCBXZWJBdXRoZW50aWNhdGlvblBhbmVsUmVzdWx0OjpVbmF2YWlsYWJsZSwg
bnVsbHB0ciwgR2xvYmFsRnJhbWVJZGVudGlmaWVyIHsgbV93ZWJQYWdlUHJveHkud2ViUGFnZUlE
KCksIGZyYW1lSWQgfSwgV1RGTW92ZShmcmFtZUluZm8pLCBwcm9jZXNzaW5nVXNlckdlc3R1cmUs
IFN0cmluZygpLCBudWxscHRyIH0sIFdURk1vdmUoaGFuZGxlcikpOwogfQogI2VuZGlmCiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL2ZpZG8v
Rmlkb1NlcnZpY2UuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViQXV0aGVudGljYXRp
b24vZmlkby9GaWRvU2VydmljZS5jcHAKaW5kZXggNDhiOWQyZjA3YWViNmQ1N2E2N2Y3NWM5ZjEx
YzM0NTc5NGQwNjU1Mi4uYTFlNjQ3M2JjYmI5ZWM2MWU5NmRjNTk1MGIzZGZjMWE5MmVmZjNlYyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViQXV0aGVudGljYXRpb24vZmlk
by9GaWRvU2VydmljZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViQXV0aGVu
dGljYXRpb24vZmlkby9GaWRvU2VydmljZS5jcHAKQEAgLTQ5LDcgKzQ5LDcgQEAgRmlkb1NlcnZp
Y2U6OkZpZG9TZXJ2aWNlKE9ic2VydmVyJiBvYnNlcnZlcikKIHZvaWQgRmlkb1NlcnZpY2U6Omdl
dEluZm8oc3RkOjp1bmlxdWVfcHRyPEN0YXBEcml2ZXI+JiYgZHJpdmVyKQogewogICAgIC8vIEdl
dCBhdXRoZW50aWNhdG9yIGluZm8gZnJvbSB0aGUgZGV2aWNlLgotICAgIGRyaXZlci0+dHJhbnNh
Y3QoZW5jb2RlRW1wdHlBdXRoZW50aWNhdG9yUmVxdWVzdChDdGFwUmVxdWVzdENvbW1hbmQ6OmtB
dXRoZW50aWNhdG9yR2V0SW5mbyksIFt3ZWFrVGhpcyA9IFdlYWtQdHIgeyAqdGhpcyB9LCB3ZWFr
RHJpdmVyID0gbWFrZVdlYWtQdHIoKmRyaXZlcildIChWZWN0b3I8dWludDhfdD4mJiByZXNwb25z
ZSkgbXV0YWJsZSB7CisgICAgZHJpdmVyLT50cmFuc2FjdChlbmNvZGVFbXB0eUF1dGhlbnRpY2F0
b3JSZXF1ZXN0KEN0YXBSZXF1ZXN0Q29tbWFuZDo6a0F1dGhlbnRpY2F0b3JHZXRJbmZvKSwgW3dl
YWtUaGlzID0gV2Vha1B0ciB7ICp0aGlzIH0sIHdlYWtEcml2ZXIgPSBXZWFrUHRyIHsgKmRyaXZl
ciB9XSAoVmVjdG9yPHVpbnQ4X3Q+JiYgcmVzcG9uc2UpIG11dGFibGUgewogICAgICAgICBBU1NF
UlQoUnVuTG9vcDo6aXNNYWluKCkpOwogICAgICAgICBpZiAoIXdlYWtUaGlzKQogICAgICAgICAg
ICAgcmV0dXJuOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViQ29udGV4
dE1lbnVMaXN0ZW5lclByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkNvbnRl
eHRNZW51TGlzdGVuZXJQcm94eS5jcHAKaW5kZXggZGM3NDg0ZWNiZDJjYThhOTEwNzU3MmI2Yjhi
OWY1YTgzMjRiNGYwZS4uMmM5ZDc4MTJlNGNiYzM0NzRhZDdiOWIzZDA1ZjhiZDA3ZmE5ZGU1NyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViQ29udGV4dE1lbnVMaXN0ZW5l
clByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJDb250ZXh0TWVudUxp
c3RlbmVyUHJveHkuY3BwCkBAIC0zNCw3ICszNCw3IEBAIG5hbWVzcGFjZSBXZWJLaXQgewogdXNp
bmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAKIFdlYkNvbnRleHRNZW51TGlzdGVuZXJQcm94eTo6V2Vi
Q29udGV4dE1lbnVMaXN0ZW5lclByb3h5KFdlYkNvbnRleHRNZW51TGlzdGVuZXJQcm94eTo6Q2xp
ZW50JiBjbGllbnQpCi0gICAgOiBtX2NsaWVudChtYWtlV2Vha1B0cihjbGllbnQpKQorICAgIDog
bV9jbGllbnQoY2xpZW50KQogewogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9XZWJDb250ZXh0TWVudVByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dl
YkNvbnRleHRNZW51UHJveHkuY3BwCmluZGV4IGNjYmNjNTc0NTUyODdhMjUyZTZjZmU0MzE3YTc3
MjRkYTdjNTI1MTUuLjljZmYzMWZlMTJhNzJlMDNmNmNhM2Q4Mjg0NDhmMmRmN2Q4MzdlYTAgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkNvbnRleHRNZW51UHJveHkuY3Bw
CisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkNvbnRleHRNZW51UHJveHkuY3BwCkBA
IC0zOCw3ICszOCw3IEBAIG5hbWVzcGFjZSBXZWJLaXQgewogV2ViQ29udGV4dE1lbnVQcm94eTo6
V2ViQ29udGV4dE1lbnVQcm94eShXZWJQYWdlUHJveHkmIHBhZ2UsIENvbnRleHRNZW51Q29udGV4
dERhdGEmJiBjb250ZXh0LCBjb25zdCBVc2VyRGF0YSYgdXNlckRhdGEpCiAgICAgOiBtX2NvbnRl
eHQoV1RGTW92ZShjb250ZXh0KSkKICAgICAsIG1fdXNlckRhdGEodXNlckRhdGEpCi0gICAgLCBt
X3BhZ2UobWFrZVdlYWtQdHIocGFnZSkpCisgICAgLCBtX3BhZ2UocGFnZSkKIHsKIH0KIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViQ29va2llTWFuYWdlclByb3h5LmNw
cCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkNvb2tpZU1hbmFnZXJQcm94eS5jcHAKaW5k
ZXggOTMyZDQxMmE5M2UyNWZhNTExNDM1YjdlNTc4ODRiM2UyNmFlOWU5Zi4uYTcxOTQxMWFiZTU4
OTVhNmE0Y2U5YzI4ZTA1NzZmOTQyNTE3MDFkNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvV2ViQ29va2llTWFuYWdlclByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9XZWJDb29raWVNYW5hZ2VyUHJveHkuY3BwCkBAIC00MCw3ICs0MCw3IEBAIG5hbWVz
cGFjZSBXZWJLaXQgewogdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAKIFdlYkNvb2tpZU1hbmFn
ZXJQcm94eTo6V2ViQ29va2llTWFuYWdlclByb3h5KE5ldHdvcmtQcm9jZXNzUHJveHkmIG5ldHdv
cmtQcm9jZXNzKQotICAgIDogbV9uZXR3b3JrUHJvY2VzcyhtYWtlV2Vha1B0cihuZXR3b3JrUHJv
Y2VzcykpCisgICAgOiBtX25ldHdvcmtQcm9jZXNzKG5ldHdvcmtQcm9jZXNzKQogewogICAgIG5l
dHdvcmtQcm9jZXNzLmFkZE1lc3NhZ2VSZWNlaXZlcihNZXNzYWdlczo6V2ViQ29va2llTWFuYWdl
clByb3h5OjptZXNzYWdlUmVjZWl2ZXJOYW1lKCksICp0aGlzKTsKIH0KQEAgLTEzNSw3ICsxMzUs
NyBAQCB2b2lkIFdlYkNvb2tpZU1hbmFnZXJQcm94eTo6c3RvcE9ic2VydmluZ0Nvb2tpZUNoYW5n
ZXMoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklEKQogdm9pZCBXZWJDb29raWVNYW5hZ2VyUHJveHk6
OnJlZ2lzdGVyT2JzZXJ2ZXIoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBPYnNlcnZlciYgb2Jz
ZXJ2ZXIpCiB7CiAgICAgYXV0byByZXN1bHQgPSBtX2Nvb2tpZU9ic2VydmVycy5zZXQoc2Vzc2lv
bklELCBXZWFrSGFzaFNldDxPYnNlcnZlcj4oKSk7Ci0gICAgcmVzdWx0Lml0ZXJhdG9yLT52YWx1
ZS5hZGQoJm9ic2VydmVyKTsKKyAgICByZXN1bHQuaXRlcmF0b3ItPnZhbHVlLmFkZChvYnNlcnZl
cik7CiAKICAgICBpZiAocmVzdWx0LmlzTmV3RW50cnkpCiAgICAgICAgIHN0YXJ0T2JzZXJ2aW5n
Q29va2llQ2hhbmdlcyhzZXNzaW9uSUQpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvV2ViRGF0YUxpc3RTdWdnZXN0aW9uc0Ryb3Bkb3duLmNwcCBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL1dlYkRhdGFMaXN0U3VnZ2VzdGlvbnNEcm9wZG93bi5jcHAKaW5kZXggODI0MmNl
Y2ViMzYzODAxMjIxZWVkZGQwMGViYzE3ZjVlNjE3ZTY0Yi4uZTc4MDU4N2Q1OTEzYzY0M2FiM2Jh
YTM1MDY5ZTU5NjE5YzQxZDUxYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
V2ViRGF0YUxpc3RTdWdnZXN0aW9uc0Ryb3Bkb3duLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9XZWJEYXRhTGlzdFN1Z2dlc3Rpb25zRHJvcGRvd24uY3BwCkBAIC0zMyw3ICszMyw3
IEBACiBuYW1lc3BhY2UgV2ViS2l0IHsKIAogV2ViRGF0YUxpc3RTdWdnZXN0aW9uc0Ryb3Bkb3du
OjpXZWJEYXRhTGlzdFN1Z2dlc3Rpb25zRHJvcGRvd24oV2ViUGFnZVByb3h5JiBwYWdlKQotICAg
IDogbV9wYWdlKG1ha2VXZWFrUHRyKHBhZ2UpKQorICAgIDogbV9wYWdlKHBhZ2UpCiB7CiB9CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkRhdGVUaW1lUGlja2VyLmNw
cCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkRhdGVUaW1lUGlja2VyLmNwcAppbmRleCA0
YjhiZGM1YzU3ZGNkZjFlYjA4MjdlZTVkYTY0MzEwM2IwYjNmZDAzLi44ZWQ3YTFlYjI0ZGY4M2Uw
NDIxY2QyZWE4MGZkMWNlMWNlNTY4N2NhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9XZWJEYXRlVGltZVBpY2tlci5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
V2ViRGF0ZVRpbWVQaWNrZXIuY3BwCkBAIC0zMyw3ICszMyw3IEBACiBuYW1lc3BhY2UgV2ViS2l0
IHsKIAogV2ViRGF0ZVRpbWVQaWNrZXI6OldlYkRhdGVUaW1lUGlja2VyKFdlYlBhZ2VQcm94eSYg
cGFnZSkKLSAgICA6IG1fcGFnZShtYWtlV2Vha1B0cihwYWdlKSkKKyAgICA6IG1fcGFnZShwYWdl
KQogewogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJFZGl0Q29t
bWFuZFByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkVkaXRDb21tYW5kUHJv
eHkuY3BwCmluZGV4IDBkYmUwYWZiNDMzZjAyMTcxNTllMTQ2ZjRiYzA4NTNlZDUxNmZkODcuLmVj
M2M1NTBkNjgzZWI3ZTAzMTg0ZDUzODIxYjcyMzEwODAyZGMxN2MgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkVkaXRDb21tYW5kUHJveHkuY3BwCisrKyBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL1dlYkVkaXRDb21tYW5kUHJveHkuY3BwCkBAIC0zOSw3ICszOSw3IEBA
IHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogV2ViRWRpdENvbW1hbmRQcm94eTo6V2ViRWRpdENv
bW1hbmRQcm94eShXZWJVbmRvU3RlcElEIGNvbW1hbmRJRCwgY29uc3QgU3RyaW5nJiBsYWJlbCwg
V2ViUGFnZVByb3h5JiBwYWdlKQogICAgIDogbV9jb21tYW5kSUQoY29tbWFuZElEKQogICAgICwg
bV9sYWJlbChsYWJlbCkKLSAgICAsIG1fcGFnZShtYWtlV2Vha1B0cihwYWdlKSkKKyAgICAsIG1f
cGFnZShwYWdlKQogewogICAgIG1fcGFnZS0+YWRkRWRpdENvbW1hbmQoKnRoaXMpOwogfQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViRnJhbWVQcm94eS5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJGcmFtZVByb3h5LmNwcAppbmRleCBlMmM0NzU3MTQ0Yzc2
ZTBkMWVmNWJiZTJjYWNmNDMzMGM5ODIxMjZhLi5kNDRhNWRiZTZhM2YyNjYzMGIzNDkxMzI0NGU3
ZTQzYjJjMWYxNjMxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJGcmFt
ZVByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJGcmFtZVByb3h5LmNw
cApAQCAtNDYsNyArNDYsNyBAQCB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIGNsYXNzIFdlYlBh
Z2VQcm94eTsKIAogV2ViRnJhbWVQcm94eTo6V2ViRnJhbWVQcm94eShXZWJQYWdlUHJveHkmIHBh
Z2UsIEZyYW1lSWRlbnRpZmllciBmcmFtZUlEKQotICAgIDogbV9wYWdlKG1ha2VXZWFrUHRyKHBh
Z2UpKQorICAgIDogbV9wYWdlKHBhZ2UpCiAgICAgLCBtX2ZyYW1lSUQoZnJhbWVJRCkKIHsKICAg
ICBXZWJQcm9jZXNzUG9vbDo6c3RhdGlzdGljcygpLndrRnJhbWVDb3VudCsrOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcCBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKaW5kZXggN2E1ZTVjNDk5NjJhYTBmM2IzYTlk
ZjUwMDQ5OTYzYzlmYzkzMjY3Yy4uNzFmYWRmZGVkNmY0ZTlkMGQzNzAxOTIyNDQ0OGZkYzAzODc4
NzA2ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNw
cAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCkBAIC00MjEs
NyArNDIxLDcgQEAgY2xhc3MgUGFnZUNsaWVudFByb3RlY3RvciB7CiAgICAgV1RGX01BS0VfTk9O
Q09QWUFCTEUoUGFnZUNsaWVudFByb3RlY3Rvcik7CiBwdWJsaWM6CiAgICAgUGFnZUNsaWVudFBy
b3RlY3RvcihQYWdlQ2xpZW50JiBwYWdlQ2xpZW50KQotICAgICAgICA6IG1fcGFnZUNsaWVudCht
YWtlV2Vha1B0cihwYWdlQ2xpZW50KSkKKyAgICAgICAgOiBtX3BhZ2VDbGllbnQocGFnZUNsaWVu
dCkKICAgICB7CiAgICAgICAgIG1fcGFnZUNsaWVudC0+cmVmVmlldygpOwogICAgIH0KQEAgLTQ2
Myw3ICs0NjMsNyBAQCBSZWY8V2ViUGFnZVByb3h5PiBXZWJQYWdlUHJveHk6OmNyZWF0ZShQYWdl
Q2xpZW50JiBwYWdlQ2xpZW50LCBXZWJQcm9jZXNzUHJveHkmCiBXZWJQYWdlUHJveHk6OldlYlBh
Z2VQcm94eShQYWdlQ2xpZW50JiBwYWdlQ2xpZW50LCBXZWJQcm9jZXNzUHJveHkmIHByb2Nlc3Ms
IFJlZjxBUEk6OlBhZ2VDb25maWd1cmF0aW9uPiYmIGNvbmZpZ3VyYXRpb24pCiAgICAgOiBtX2lk
ZW50aWZpZXIoSWRlbnRpZmllcjo6Z2VuZXJhdGUoKSkKICAgICAsIG1fd2ViUGFnZUlEKFBhZ2VJ
ZGVudGlmaWVyOjpnZW5lcmF0ZSgpKQotICAgICwgbV9wYWdlQ2xpZW50KG1ha2VXZWFrUHRyKHBh
Z2VDbGllbnQpKQorICAgICwgbV9wYWdlQ2xpZW50KHBhZ2VDbGllbnQpCiAgICAgLCBtX2NvbmZp
Z3VyYXRpb24oV1RGTW92ZShjb25maWd1cmF0aW9uKSkKICAgICAsIG1fbmF2aWdhdGlvbkNsaWVu
dChtYWtlVW5pcXVlUmVmPEFQSTo6TmF2aWdhdGlvbkNsaWVudD4oKSkKICAgICAsIG1faGlzdG9y
eUNsaWVudChtYWtlVW5pcXVlUmVmPEFQSTo6SGlzdG9yeUNsaWVudD4oKSkKQEAgLTkxMyw3ICs5
MTMsNyBAQCBib29sIFdlYlBhZ2VQcm94eTo6c3VzcGVuZEN1cnJlbnRQYWdlSWZQb3NzaWJsZShB
UEk6Ok5hdmlnYXRpb24mIG5hdmlnYXRpb24sIHN0ZAogCiAgICAgTE9HKFByb2Nlc3NTd2FwcGlu
ZywgIldlYlBhZ2VQcm94eSAlIiBQUkl1NjQgIiBjcmVhdGVkIHN1c3BlbmRlZCBwYWdlICVzIGZv
ciBwcm9jZXNzIHBpZCAlaSwgYmFjay9mb3J3YXJkIGl0ZW0gJXMiIFBSSXU2NCwgaWRlbnRpZmll
cigpLnRvVUludDY0KCksIHN1c3BlbmRlZFBhZ2UtPmxvZ2dpbmdTdHJpbmcoKSwgbV9wcm9jZXNz
LT5wcm9jZXNzSWRlbnRpZmllcigpLCBmcm9tSXRlbSA/IGZyb21JdGVtLT5pdGVtSUQoKS5sb2dT
dHJpbmcoKSA6IDApOwogCi0gICAgbV9sYXN0U3VzcGVuZGVkUGFnZSA9IG1ha2VXZWFrUHRyKCpz
dXNwZW5kZWRQYWdlKTsKKyAgICBtX2xhc3RTdXNwZW5kZWRQYWdlID0gKnN1c3BlbmRlZFBhZ2U7
CiAKICAgICBpZiAoZnJvbUl0ZW0gJiYgc2hvdWxkVXNlQmFja0ZvcndhcmRDYWNoZSgpKQogICAg
ICAgICBiYWNrRm9yd2FyZENhY2hlKCkuYWRkRW50cnkoKmZyb21JdGVtLCBXVEZNb3ZlKHN1c3Bl
bmRlZFBhZ2UpKTsKQEAgLTEwNTgzLDcgKzEwNTgzLDcgQEAgV2ViQ29udGVudE1vZGUgV2ViUGFn
ZVByb3h5OjplZmZlY3RpdmVDb250ZW50TW9kZUFmdGVyQWRqdXN0aW5nUG9saWNpZXMoQVBJOjpX
ZWIKIAogdm9pZCBXZWJQYWdlUHJveHk6OmFkZE9ic2VydmVyKFdlYlZpZXdEaWRNb3ZlVG9XaW5k
b3dPYnNlcnZlciYgb2JzZXJ2ZXIpCiB7Ci0gICAgYXV0byByZXN1bHQgPSBtX3dlYlZpZXdEaWRN
b3ZlVG9XaW5kb3dPYnNlcnZlcnMuYWRkKCZvYnNlcnZlciwgbWFrZVdlYWtQdHIob2JzZXJ2ZXIp
KTsKKyAgICBhdXRvIHJlc3VsdCA9IG1fd2ViVmlld0RpZE1vdmVUb1dpbmRvd09ic2VydmVycy5h
ZGQoJm9ic2VydmVyLCBvYnNlcnZlcik7CiAgICAgQVNTRVJUX1VOVVNFRChyZXN1bHQsIHJlc3Vs
dC5pc05ld0VudHJ5KTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
V2ViUHJvY2Vzc1Bvb2wuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Bv
b2wuY3BwCmluZGV4IDg1Njk4ZjViZjgzMGViOTQ3YjU5YTcyMmU5MTY4ZjUyNzIyOTIwOTcuLjM2
ZGU1ODgwMmNlNmVjOTRiZjRmY2M4ZjJjZTQxZmY5YmU3MzZlY2YgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5jcHAKQEAgLTQ2OCw3ICs0NjgsNyBAQCB2b2lkIFdl
YlByb2Nlc3NQb29sOjpnZXRHUFVQcm9jZXNzQ29ubmVjdGlvbihXZWJQcm9jZXNzUHJveHkmIHdl
YlByb2Nlc3NQcm94eSwgRwogI2lmIEVOQUJMRShJUENfVEVTVElOR19BUEkpCiAgICAgcGFyYW1l
dGVycy5pZ25vcmVJbnZhbGlkTWVzc2FnZUZvclRlc3RpbmcgPSB3ZWJQcm9jZXNzUHJveHkuaWdu
b3JlSW52YWxpZE1lc3NhZ2VGb3JUZXN0aW5nKCk7CiAjZW5kaWYKLSAgICBlbnN1cmVHUFVQcm9j
ZXNzKCkuZ2V0R1BVUHJvY2Vzc0Nvbm5lY3Rpb24od2ViUHJvY2Vzc1Byb3h5LCBwYXJhbWV0ZXJz
LCBbdGhpcywgd2Vha1RoaXMgPSBXZWFrUHRyIHsgKnRoaXMgfSwgcGFyYW1ldGVycywgd2ViUHJv
Y2Vzc1Byb3h5ID0gbWFrZVdlYWtQdHIod2ViUHJvY2Vzc1Byb3h5KSwgcmVwbHkgPSBXVEZNb3Zl
KHJlcGx5KV0gKGF1dG8mIGNvbm5lY3Rpb25JbmZvKSBtdXRhYmxlIHsKKyAgICBlbnN1cmVHUFVQ
cm9jZXNzKCkuZ2V0R1BVUHJvY2Vzc0Nvbm5lY3Rpb24od2ViUHJvY2Vzc1Byb3h5LCBwYXJhbWV0
ZXJzLCBbdGhpcywgd2Vha1RoaXMgPSBXZWFrUHRyIHsgKnRoaXMgfSwgcGFyYW1ldGVycywgd2Vi
UHJvY2Vzc1Byb3h5ID0gV2Vha1B0ciB7IHdlYlByb2Nlc3NQcm94eSB9LCByZXBseSA9IFdURk1v
dmUocmVwbHkpXSAoYXV0byYgY29ubmVjdGlvbkluZm8pIG11dGFibGUgewogICAgICAgICBpZiAo
VU5MSUtFTFkoIUlQQzo6Q29ubmVjdGlvbjo6aWRlbnRpZmllcklzVmFsaWQoY29ubmVjdGlvbklu
Zm8uaWRlbnRpZmllcigpKSkpIHsKICAgICAgICAgICAgIC8vIFJldHJ5IG9uIHRoZSBuZXh0IFJ1
bkxvb3AgaXRlcmF0aW9uIGJlY2F1c2Ugd2UgbWF5IGJlIGluc2lkZSB0aGUgV2ViUHJvY2Vzc1Bv
b2wgZGVzdHJ1Y3Rvci4KICAgICAgICAgICAgIFJ1bkxvb3A6Om1haW4oKS5kaXNwYXRjaChbdGhp
cywgd2Vha1RoaXMgPSBXVEZNb3ZlKHdlYWtUaGlzKSwgd2ViUHJvY2Vzc1Byb3h5ID0gV1RGTW92
ZSh3ZWJQcm9jZXNzUHJveHkpLCBwYXJhbWV0ZXJzID0gV1RGTW92ZShwYXJhbWV0ZXJzKSwgcmVw
bHkgPSBXVEZNb3ZlKHJlcGx5KV0gKCkgbXV0YWJsZSB7CkBAIC00ODgsNyArNDg4LDcgQEAgdm9p
ZCBXZWJQcm9jZXNzUG9vbDo6Z2V0R1BVUHJvY2Vzc0Nvbm5lY3Rpb24oV2ViUHJvY2Vzc1Byb3h5
JiB3ZWJQcm9jZXNzUHJveHksIEcKICNpZiBFTkFCTEUoV0VCX0FVVEhOKQogdm9pZCBXZWJQcm9j
ZXNzUG9vbDo6Z2V0V2ViQXV0aG5Qcm9jZXNzQ29ubmVjdGlvbihXZWJQcm9jZXNzUHJveHkmIHdl
YlByb2Nlc3NQcm94eSwgTWVzc2FnZXM6OldlYlByb2Nlc3NQcm94eTo6R2V0V2ViQXV0aG5Qcm9j
ZXNzQ29ubmVjdGlvbjo6RGVsYXllZFJlcGx5JiYgcmVwbHkpCiB7Ci0gICAgV2ViQXV0aG5Qcm9j
ZXNzUHJveHk6OnNpbmdsZXRvbigpLmdldFdlYkF1dGhuUHJvY2Vzc0Nvbm5lY3Rpb24od2ViUHJv
Y2Vzc1Byb3h5LCBbdGhpcywgd2Vha1RoaXMgPSBXZWFrUHRyIHsgKnRoaXMgfSwgd2ViUHJvY2Vz
c1Byb3h5ID0gbWFrZVdlYWtQdHIod2ViUHJvY2Vzc1Byb3h5KSwgcmVwbHkgPSBXVEZNb3ZlKHJl
cGx5KV0gKGF1dG8mIGNvbm5lY3Rpb25JbmZvKSBtdXRhYmxlIHsKKyAgICBXZWJBdXRoblByb2Nl
c3NQcm94eTo6c2luZ2xldG9uKCkuZ2V0V2ViQXV0aG5Qcm9jZXNzQ29ubmVjdGlvbih3ZWJQcm9j
ZXNzUHJveHksIFt0aGlzLCB3ZWFrVGhpcyA9IFdlYWtQdHIgeyAqdGhpcyB9LCB3ZWJQcm9jZXNz
UHJveHkgPSBXZWFrUHRyIHsgd2ViUHJvY2Vzc1Byb3h5IH0sIHJlcGx5ID0gV1RGTW92ZShyZXBs
eSldIChhdXRvJiBjb25uZWN0aW9uSW5mbykgbXV0YWJsZSB7CiAgICAgICAgIGlmIChVTkxJS0VM
WSghSVBDOjpDb25uZWN0aW9uOjppZGVudGlmaWVySXNWYWxpZChjb25uZWN0aW9uSW5mby5pZGVu
dGlmaWVyKCkpICYmIHdlYlByb2Nlc3NQcm94eSAmJiB3ZWFrVGhpcykpIHsKICAgICAgICAgICAg
IFdFQlBST0NFU1NQT09MX1JFTEVBU0VfTE9HX0VSUk9SKFByb2Nlc3MsICJnZXRXZWJBdXRoblBy
b2Nlc3NDb25uZWN0aW9uOiBGYWlsZWQgZmlyc3QgYXR0ZW1wdCwgcmV0cnlpbmciKTsKICAgICAg
ICAgICAgIFdlYkF1dGhuUHJvY2Vzc1Byb3h5OjpzaW5nbGV0b24oKS5nZXRXZWJBdXRoblByb2Nl
c3NDb25uZWN0aW9uKCp3ZWJQcm9jZXNzUHJveHksIFdURk1vdmUocmVwbHkpKTsKQEAgLTg1NCw3
ICs4NTQsNyBAQCB2b2lkIFdlYlByb2Nlc3NQb29sOjppbml0aWFsaXplTmV3V2ViUHJvY2VzcyhX
ZWJQcm9jZXNzUHJveHkmIHByb2Nlc3MsIFdlYnNpdGVEYQogCiAgICAgaWYgKGlzUHJld2FybWVk
ID09IFdlYlByb2Nlc3NQcm94eTo6SXNQcmV3YXJtZWQ6OlllcykgewogICAgICAgICBBU1NFUlQo
IW1fcHJld2FybWVkUHJvY2Vzcyk7Ci0gICAgICAgIG1fcHJld2FybWVkUHJvY2VzcyA9IG1ha2VX
ZWFrUHRyKHByb2Nlc3MpOworICAgICAgICBtX3ByZXdhcm1lZFByb2Nlc3MgPSBwcm9jZXNzOwog
ICAgIH0KIAogI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpICYmICFQTEFURk9STShNQUNDQVRBTFlT
VCkKQEAgLTEwNjcsNyArMTA2Nyw3IEBAIFJlZjxXZWJQYWdlUHJveHk+IFdlYlByb2Nlc3NQb29s
OjpjcmVhdGVXZWJQYWdlKFBhZ2VDbGllbnQmIHBhZ2VDbGllbnQsIFJlZjxBUEk6CiAgICAgICAg
IHByb2Nlc3MgPSBkdW1teVByb2Nlc3NQcm94eShwYWdlQ29uZmlndXJhdGlvbi0+d2Vic2l0ZURh
dGFTdG9yZSgpLT5zZXNzaW9uSUQoKSk7CiAgICAgICAgIGlmICghcHJvY2VzcykgewogICAgICAg
ICAgICAgcHJvY2VzcyA9IFdlYlByb2Nlc3NQcm94eTo6Y3JlYXRlKCp0aGlzLCBwYWdlQ29uZmln
dXJhdGlvbi0+d2Vic2l0ZURhdGFTdG9yZSgpLCBXZWJQcm9jZXNzUHJveHk6OklzUHJld2FybWVk
OjpObywgQ3Jvc3NPcmlnaW5Nb2RlOjpTaGFyZWQsIFdlYlByb2Nlc3NQcm94eTo6U2hvdWxkTGF1
bmNoUHJvY2Vzczo6Tm8pOwotICAgICAgICAgICAgbV9kdW1teVByb2Nlc3NQcm94aWVzLmFkZChw
YWdlQ29uZmlndXJhdGlvbi0+d2Vic2l0ZURhdGFTdG9yZSgpLT5zZXNzaW9uSUQoKSwgbWFrZVdl
YWtQdHIoKnByb2Nlc3MpKTsKKyAgICAgICAgICAgIG1fZHVtbXlQcm9jZXNzUHJveGllcy5hZGQo
cGFnZUNvbmZpZ3VyYXRpb24tPndlYnNpdGVEYXRhU3RvcmUoKS0+c2Vzc2lvbklEKCksICpwcm9j
ZXNzKTsKICAgICAgICAgICAgIG1fcHJvY2Vzc2VzLmFwcGVuZCgqcHJvY2Vzcyk7CiAgICAgICAg
IH0KICAgICB9IGVsc2UKQEAgLTE2MDIsNyArMTYwMiw3IEBAIHZvaWQgV2ViUHJvY2Vzc1Bvb2w6
OnN0YXJ0ZWRVc2luZ0dhbWVwYWRzKElQQzo6Q29ubmVjdGlvbiYgY29ubmVjdGlvbikKICAgICBi
b29sIHdlcmVBbnlQcm9jZXNzZXNVc2luZ0dhbWVwYWRzID0gIW1fcHJvY2Vzc2VzVXNpbmdHYW1l
cGFkcy5jb21wdXRlc0VtcHR5KCk7CiAKICAgICBBU1NFUlQoIW1fcHJvY2Vzc2VzVXNpbmdHYW1l
cGFkcy5jb250YWlucygqcHJveHkpKTsKLSAgICBtX3Byb2Nlc3Nlc1VzaW5nR2FtZXBhZHMuYWRk
KHByb3h5KTsKKyAgICBtX3Byb2Nlc3Nlc1VzaW5nR2FtZXBhZHMuYWRkKCpwcm94eSk7CiAKICAg
ICBpZiAoIXdlcmVBbnlQcm9jZXNzZXNVc2luZ0dhbWVwYWRzKQogICAgICAgICBVSUdhbWVwYWRQ
cm92aWRlcjo6c2luZ2xldG9uKCkucHJvY2Vzc1Bvb2xTdGFydGVkVXNpbmdHYW1lcGFkcygqdGhp
cyk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHku
Y3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmNwcAppbmRleCA5
MjUzNzFhNDc1ODdkNTI1MDZhNDU5MTY3NWY2ZTM5Yzc4Nzg3YmFmLi41YzU5NjZlY2NiOWU4YTJj
YTAyYzFhMjg5ZTFiODE4MjBkNzNkOTJjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9XZWJQcm9jZXNzUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dl
YlByb2Nlc3NQcm94eS5jcHAKQEAgLTkzOSw3ICs5MzksNyBAQCB2b2lkIFdlYlByb2Nlc3NQcm94
eTo6cHJvY2Vzc0RpZFRlcm1pbmF0ZU9yRmFpbGVkVG9MYXVuY2goUHJvY2Vzc1Rlcm1pbmF0aW9u
UmVhcwogICAgICAgICB3ZWJDb25uZWN0aW9uLT5kaWRDbG9zZSgpOwogCiAgICAgYXV0byBwYWdl
cyA9IGNvcHlUb1ZlY3Rvck9mPFJlZlB0cjxXZWJQYWdlUHJveHk+PihtX3BhZ2VNYXAudmFsdWVz
KCkpOwotICAgIGF1dG8gcHJvdmlzaW9uYWxQYWdlcyA9IFdURjo6bWFwKG1fcHJvdmlzaW9uYWxQ
YWdlcywgW10oYXV0byogcHJvdmlzaW9uYWxQYWdlKSB7IHJldHVybiBtYWtlV2Vha1B0cihwcm92
aXNpb25hbFBhZ2UpOyB9KTsKKyAgICBhdXRvIHByb3Zpc2lvbmFsUGFnZXMgPSBXVEY6Om1hcCht
X3Byb3Zpc2lvbmFsUGFnZXMsIFtdKGF1dG8qIHByb3Zpc2lvbmFsUGFnZSkgeyByZXR1cm4gV2Vh
a1B0ciB7IHByb3Zpc2lvbmFsUGFnZSB9OyB9KTsKIAogICAgIGF1dG8gaXNSZXNwb25zaXZlQ2Fs
bGJhY2tzID0gc3RkOjpleGNoYW5nZShtX2lzUmVzcG9uc2l2ZUNhbGxiYWNrcywgeyB9KTsKICAg
ICBmb3IgKGF1dG8mIGNhbGxiYWNrIDogaXNSZXNwb25zaXZlQ2FsbGJhY2tzKQpAQCAtMTc5MSw3
ICsxNzkxLDcgQEAgdm9pZCBXZWJQcm9jZXNzUHJveHk6OmNyZWF0ZVNwZWVjaFJlY29nbml0aW9u
U2VydmVyKFNwZWVjaFJlY29nbml0aW9uU2VydmVySWRlbnQKICAgICBNRVNTQUdFX0NIRUNLKCFt
X3NwZWVjaFJlY29nbml0aW9uU2VydmVyTWFwLmNvbnRhaW5zKGlkZW50aWZpZXIpKTsKIAogICAg
IGF1dG8mIHNwZWVjaFJlY29nbml0aW9uU2VydmVyID0gbV9zcGVlY2hSZWNvZ25pdGlvblNlcnZl
ck1hcC5hZGQoaWRlbnRpZmllciwgbnVsbHB0cikuaXRlcmF0b3ItPnZhbHVlOwotICAgIGF1dG8g
cGVybWlzc2lvbkNoZWNrZXIgPSBbd2Vha1BhZ2UgPSBtYWtlV2Vha1B0cih0YXJnZXRQYWdlKV0o
YXV0byYgcmVxdWVzdCwgYXV0byYmIGNvbXBsZXRpb25IYW5kbGVyKSBtdXRhYmxlIHsKKyAgICBh
dXRvIHBlcm1pc3Npb25DaGVja2VyID0gW3dlYWtQYWdlID0gV2Vha1B0ciB7IHRhcmdldFBhZ2Ug
fV0oYXV0byYgcmVxdWVzdCwgYXV0byYmIGNvbXBsZXRpb25IYW5kbGVyKSBtdXRhYmxlIHsKICAg
ICAgICAgaWYgKCF3ZWFrUGFnZSkgewogICAgICAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoV2Vi
Q29yZTo6U3BlZWNoUmVjb2duaXRpb25FcnJvciB7IFNwZWVjaFJlY29nbml0aW9uRXJyb3JUeXBl
OjpOb3RBbGxvd2VkLCAiUGFnZSBubyBsb25nZXIgZXhpc3RzIl9zIH0pOwogICAgICAgICAgICAg
cmV0dXJuOwpAQCAtMTc5OSwxMiArMTc5OSwxMiBAQCB2b2lkIFdlYlByb2Nlc3NQcm94eTo6Y3Jl
YXRlU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXIoU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXJJZGVudAog
CiAgICAgICAgIHdlYWtQYWdlLT5yZXF1ZXN0U3BlZWNoUmVjb2duaXRpb25QZXJtaXNzaW9uKHJl
cXVlc3QsIFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKTsKICAgICB9OwotICAgIGF1dG8gY2hl
Y2tJZk1vY2tDYXB0dXJlRGV2aWNlc0VuYWJsZWQgPSBbd2Vha1BhZ2UgPSBtYWtlV2Vha1B0cih0
YXJnZXRQYWdlKV0oKSB7CisgICAgYXV0byBjaGVja0lmTW9ja0NhcHR1cmVEZXZpY2VzRW5hYmxl
ZCA9IFt3ZWFrUGFnZSA9IFdlYWtQdHIgeyB0YXJnZXRQYWdlIH1dKCkgewogICAgICAgICByZXR1
cm4gd2Vha1BhZ2UgJiYgd2Vha1BhZ2UtPnByZWZlcmVuY2VzKCkubW9ja0NhcHR1cmVEZXZpY2Vz
RW5hYmxlZCgpOwogICAgIH07CiAKICNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQotICAgIGF1dG8g
Y3JlYXRlUmVhbHRpbWVNZWRpYVNvdXJjZSA9IFt3ZWFrUGFnZSA9IG1ha2VXZWFrUHRyKHRhcmdl
dFBhZ2UpXSgpIHsKKyAgICBhdXRvIGNyZWF0ZVJlYWx0aW1lTWVkaWFTb3VyY2UgPSBbd2Vha1Bh
Z2UgPSBXZWFrUHRyIHsgdGFyZ2V0UGFnZSB9XSgpIHsKICAgICAgICAgcmV0dXJuIHdlYWtQYWdl
ID8gd2Vha1BhZ2UtPmNyZWF0ZVJlYWx0aW1lTWVkaWFTb3VyY2VGb3JTcGVlY2hSZWNvZ25pdGlv
bigpIDogQ2FwdHVyZVNvdXJjZU9yRXJyb3IgeyAiUGFnZSBpcyBpbnZhbGlkIiB9OwogICAgIH07
CiAgICAgc3BlZWNoUmVjb2duaXRpb25TZXJ2ZXIgPSBtYWtlVW5pcXVlPFNwZWVjaFJlY29nbml0
aW9uU2VydmVyPigqY29ubmVjdGlvbigpLCBpZGVudGlmaWVyLCBXVEZNb3ZlKHBlcm1pc3Npb25D
aGVja2VyKSwgV1RGTW92ZShjaGVja0lmTW9ja0NhcHR1cmVEZXZpY2VzRW5hYmxlZCksIFdURk1v
dmUoY3JlYXRlUmVhbHRpbWVNZWRpYVNvdXJjZSkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9X
ZWJQcm9jZXNzUHJveHkuaAppbmRleCBlMzlkNGFmODY1M2JkNzg0YTA5MGMxMzZlODBlMGM1N2I3
NDc0OWY1Li4xMzk1MTdiZGIyNGI1NGM0OGVkZmJiZWIwMTNkZTkyOWE1ZjE0ZWY2IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuaAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuaApAQCAtNTUxLDcgKzU1MSw3IEBA
IHByaXZhdGU6CiAgICAgcHVibGljOgogICAgICAgICBXZWFrT3JTdHJvbmdQdHIoVCYgb2JqZWN0
LCBJc1dlYWsgaXNXZWFrKQogICAgICAgICAgICAgOiBtX2lzV2Vhayhpc1dlYWspCi0gICAgICAg
ICAgICAsIG1fd2Vha09iamVjdChtYWtlV2Vha1B0cihvYmplY3QpKQorICAgICAgICAgICAgLCBt
X3dlYWtPYmplY3Qob2JqZWN0KQogICAgICAgICB7CiAgICAgICAgICAgICB1cGRhdGVTdHJvbmdS
ZWZlcmVuY2UoKTsKICAgICAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9yZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlLmNwcAppbmRleCBjOWU2ZTExM2U5ZGUz
N2U5Yzg1MzA1NjM3NTVhN2M5YWEyZmEzNzYxLi4xZDU1MDc5ZDIxNDZiODI3Y2Q0MjgzOTRmMDIz
NzNhZWJlN2U4MjlkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJzaXRl
RGF0YS9XZWJzaXRlRGF0YVN0b3JlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9X
ZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlLmNwcApAQCAtMTc0Niw3ICsxNzQ2LDcgQEAgdm9p
ZCBXZWJzaXRlRGF0YVN0b3JlOjpyZW1vdmVNZWRpYUtleXMoY29uc3QgU3RyaW5nJiBtZWRpYUtl
eXNTdG9yYWdlRGlyZWN0b3J5LAogdm9pZCBXZWJzaXRlRGF0YVN0b3JlOjpnZXROZXR3b3JrUHJv
Y2Vzc0Nvbm5lY3Rpb24oV2ViUHJvY2Vzc1Byb3h5JiB3ZWJQcm9jZXNzUHJveHksIENvbXBsZXRp
b25IYW5kbGVyPHZvaWQoY29uc3QgTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uSW5mbyYpPiYmIHJl
cGx5LCBTaG91bGRSZXRyeU9uRmFpbHVyZSBzaG91bGRSZXRyeU9uRmFpbHVyZSkKIHsKICAgICBh
dXRvJiBuZXR3b3JrUHJvY2Vzc1Byb3h5ID0gbmV0d29ya1Byb2Nlc3MoKTsKLSAgICBuZXR3b3Jr
UHJvY2Vzc1Byb3h5LmdldE5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbih3ZWJQcm9jZXNzUHJveHks
IFt3ZWFrVGhpcyA9IFdlYWtQdHIgeyAqdGhpcyB9LCBuZXR3b3JrUHJvY2Vzc1Byb3h5ID0gbWFr
ZVdlYWtQdHIobmV0d29ya1Byb2Nlc3NQcm94eSksIHdlYlByb2Nlc3NQcm94eSA9IG1ha2VXZWFr
UHRyKHdlYlByb2Nlc3NQcm94eSksIHJlcGx5ID0gV1RGTW92ZShyZXBseSksIHNob3VsZFJldHJ5
T25GYWlsdXJlXSAoYXV0byYgY29ubmVjdGlvbkluZm8pIG11dGFibGUgeworICAgIG5ldHdvcmtQ
cm9jZXNzUHJveHkuZ2V0TmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uKHdlYlByb2Nlc3NQcm94eSwg
W3dlYWtUaGlzID0gV2Vha1B0ciB7ICp0aGlzIH0sIG5ldHdvcmtQcm9jZXNzUHJveHkgPSBXZWFr
UHRyIHsgbmV0d29ya1Byb2Nlc3NQcm94eSB9LCB3ZWJQcm9jZXNzUHJveHkgPSBXZWFrUHRyIHsg
d2ViUHJvY2Vzc1Byb3h5IH0sIHJlcGx5ID0gV1RGTW92ZShyZXBseSksIHNob3VsZFJldHJ5T25G
YWlsdXJlXSAoYXV0byYgY29ubmVjdGlvbkluZm8pIG11dGFibGUgewogICAgICAgICBpZiAoVU5M
SUtFTFkoIUlQQzo6Q29ubmVjdGlvbjo6aWRlbnRpZmllcklzVmFsaWQoY29ubmVjdGlvbkluZm8u
aWRlbnRpZmllcigpKSkpIHsKICAgICAgICAgICAgIGF1dG8gbG9nRXJyb3IgPSBbbmV0d29ya1By
b2Nlc3NQcm94eSwgd2ViUHJvY2Vzc1Byb3h5XSgpIHsKICNpZiBPUyhEQVJXSU4pCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9ndGsvV2F5bGFuZENvbXBvc2l0b3IuY3BwIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvZ3RrL1dheWxhbmRDb21wb3NpdG9yLmNwcAppbmRleCBi
MzRkMTNiODY1YzUwMjIyN2VjYWEwNzgzZGYxMGMyZjUwMzg5YWU0Li4xMTA4YWFlNzc4YTg0ZGNj
MTc2NDRiYzlkOTM5NWU0MzZkOTFkYmY1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9ndGsvV2F5bGFuZENvbXBvc2l0b3IuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL2d0ay9XYXlsYW5kQ29tcG9zaXRvci5jcHAKQEAgLTIzMyw3ICsyMzMsNyBAQCB2b2lkIFdh
eWxhbmRDb21wb3NpdG9yOjpTdXJmYWNlOjphdHRhY2hCdWZmZXIoc3RydWN0IHdsX3Jlc291cmNl
KiBidWZmZXIpCiAKICAgICBpZiAoYnVmZmVyKSB7CiAgICAgICAgIGF1dG8qIGNvbXBvc2l0b3JC
dWZmZXIgPSBXYXlsYW5kQ29tcG9zaXRvcjo6QnVmZmVyOjpnZXRPckNyZWF0ZShidWZmZXIpOwot
ICAgICAgICBtX3BlbmRpbmdCdWZmZXIgPSBtYWtlV2Vha1B0cigqY29tcG9zaXRvckJ1ZmZlcik7
CisgICAgICAgIG1fcGVuZGluZ0J1ZmZlciA9ICpjb21wb3NpdG9yQnVmZmVyOwogICAgIH0KIH0K
IApAQCAtNTcxLDcgKzU3MSw3IEBAIHZvaWQgV2F5bGFuZENvbXBvc2l0b3I6OmJpbmRTdXJmYWNl
VG9XZWJQYWdlKFdheWxhbmRDb21wb3NpdG9yOjpTdXJmYWNlKiBzdXJmYWNlCiAKICAgICB1bmJp
bmRXZWJQYWdlKCp3ZWJQYWdlKTsKICAgICBzdXJmYWNlLT5zZXRXZWJQYWdlKHdlYlBhZ2UpOwot
ICAgIG1fcGFnZU1hcC5zZXQod2ViUGFnZSwgbWFrZVdlYWtQdHIoKnN1cmZhY2UpKTsKKyAgICBt
X3BhZ2VNYXAuc2V0KHdlYlBhZ2UsICpzdXJmYWNlKTsKIH0KIAogdm9pZCBXYXlsYW5kQ29tcG9z
aXRvcjo6YmluZFdlYlBhZ2UoV2ViUGFnZVByb3h5JiB3ZWJQYWdlKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1Byb2Nlc3NBc3NlcnRpb25JT1MubW0gYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9pb3MvUHJvY2Vzc0Fzc2VydGlvbklPUy5tbQppbmRleCAxMThiYmIz
NmJjODdmMzNhYTFlYTI4ZDFjZjRiZDhmOGU2ODFkOTRhLi5lYmNmN2IxZGM4YWNjNGE3YTExZjNj
YzliYWQwNDQ4YjlkMmQ2OTYzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9p
b3MvUHJvY2Vzc0Fzc2VydGlvbklPUy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9p
b3MvUHJvY2Vzc0Fzc2VydGlvbklPUy5tbQpAQCAtMTEwLDcgKzExMCw3IEBAIC0gKHZvaWQpZGVh
bGxvYwogCiAtICh2b2lkKWFkZEFzc2VydGlvbk5lZWRpbmdCYWNrZ3JvdW5kVGFzazooUHJvY2Vz
c0FuZFVJQXNzZXJ0aW9uJilhc3NlcnRpb24KIHsKLSAgICBfYXNzZXJ0aW9uc05lZWRpbmdCYWNr
Z3JvdW5kVGFzay5hZGQoJmFzc2VydGlvbik7CisgICAgX2Fzc2VydGlvbnNOZWVkaW5nQmFja2dy
b3VuZFRhc2suYWRkKGFzc2VydGlvbik7CiAgICAgW3NlbGYgX3VwZGF0ZUJhY2tncm91bmRUYXNr
XTsKIH0KIApAQCAtMTI2LDcgKzEyNiw3IEBAIC0gKHZvaWQpX25vdGlmeUFzc2VydGlvbnNPZklt
bWluZW50U3VzcGVuc2lvbgogCiAgICAgVmVjdG9yPFdlYWtQdHI8UHJvY2Vzc0FuZFVJQXNzZXJ0
aW9uPj4gYXNzZXJ0aW9uc05lZWRpbmdCYWNrZ3JvdW5kVGFzazsKICAgICBmb3IgKGF1dG8mIGFz
c2VydGlvbiA6IF9hc3NlcnRpb25zTmVlZGluZ0JhY2tncm91bmRUYXNrKQotICAgICAgICBhc3Nl
cnRpb25zTmVlZGluZ0JhY2tncm91bmRUYXNrLmFwcGVuZChtYWtlV2Vha1B0cihhc3NlcnRpb24p
KTsKKyAgICAgICAgYXNzZXJ0aW9uc05lZWRpbmdCYWNrZ3JvdW5kVGFzay5hcHBlbmQoYXNzZXJ0
aW9uKTsKIAogICAgIC8vIE5vdGUgdGhhdCB3ZSBkb24ndCBleHBlY3QgY2xpZW50cyB0byByZWdp
c3RlciBuZXcgYXNzZXJ0aW9ucyB3aGVuIGdldHRpbmcgbm90aWZpZWQgdGhhdCB0aGUgVUkgYXNz
ZXJ0aW9uIHdpbGwgZXhwaXJlIGltbWluZW50bHkuCiAgICAgLy8gSWYgY2xpZW50cyB3ZXJlIHRv
IGRvIHNvLCB0aGVuIHRob3NlIG5ldyBhc3NlcnRpb25zIHdvdWxkIG5vdCBnZXQgbm90aWZpZWQg
b2YgdGhlIGltbWluZW50IHN1c3BlbnNpb24uCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9pb3MvV2ViRGF0YUxpc3RTdWdnZXN0aW9uc0Ryb3Bkb3duSU9TLm1tIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvaW9zL1dlYkRhdGFMaXN0U3VnZ2VzdGlvbnNEcm9wZG93bklPUy5t
bQppbmRleCA3NWI3ZmE3NWYyYzYxNjUzY2Y5YzRjYmZhZDAwYWJjMGU0NDMwZjdjLi5lZjZkZjY1
OGNkMjkwM2E1ZjNmNmE3MDJhYmJjZmI1ZDJmNGY3ZDMxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9pb3MvV2ViRGF0YUxpc3RTdWdnZXN0aW9uc0Ryb3Bkb3duSU9TLm1tCisr
KyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XZWJEYXRhTGlzdFN1Z2dlc3Rpb25zRHJv
cGRvd25JT1MubW0KQEAgLTE3Myw3ICsxNzMsNyBAQCAtICh2b2lkKXVwZGF0ZVdpdGhJbmZvcm1h
dGlvbjooV2ViQ29yZTo6RGF0YUxpc3RTdWdnZXN0aW9uSW5mb3JtYXRpb24mJilpbmZvcm1hdAog
CiAtICh2b2lkKXNob3dTdWdnZXN0aW9uc0Ryb3Bkb3duOihXZWJLaXQ6OldlYkRhdGFMaXN0U3Vn
Z2VzdGlvbnNEcm9wZG93bklPUyYpZHJvcGRvd24gYWN0aXZhdGlvblR5cGU6KFdlYkNvcmU6OkRh
dGFMaXN0U3VnZ2VzdGlvbkFjdGl2YXRpb25UeXBlKWFjdGl2YXRpb25UeXBlCiB7Ci0gICAgX2Ry
b3Bkb3duID0gbWFrZVdlYWtQdHIoZHJvcGRvd24pOworICAgIF9kcm9wZG93biA9IGRyb3Bkb3du
OwogfQogCiAtICh2b2lkKWRpZFNlbGVjdE9wdGlvbkF0SW5kZXg6KE5TSW50ZWdlcilpbmRleApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFjL1BhZ2VDbGllbnRJbXBsTWFj
Lm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFjL1BhZ2VDbGllbnRJbXBsTWFjLm1tCmlu
ZGV4IGE4NTU3NTMwZjBjNjVlM2E0ZjlmYzJlMGU2MmE1MjZhNTc4NDk0ZDAuLjdmMTU2ZGRlZmFj
ZjcxMGRmNDU3ODZhYzY1ZGE4OTQ0ZjA5ZDEyZDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL21hYy9QYWdlQ2xpZW50SW1wbE1hYy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9tYWMvUGFnZUNsaWVudEltcGxNYWMubW0KQEAgLTExNyw3ICsxMTcsNyBAQCBQYWdl
Q2xpZW50SW1wbDo6flBhZ2VDbGllbnRJbXBsKCkgPSBkZWZhdWx0OwogCiB2b2lkIFBhZ2VDbGll
bnRJbXBsOjpzZXRJbXBsKFdlYlZpZXdJbXBsJiBpbXBsKQogewotICAgIG1faW1wbCA9IG1ha2VX
ZWFrUHRyKGltcGwpOworICAgIG1faW1wbCA9IGltcGw7CiB9CiAKIHN0ZDo6dW5pcXVlX3B0cjxE
cmF3aW5nQXJlYVByb3h5PiBQYWdlQ2xpZW50SW1wbDo6Y3JlYXRlRHJhd2luZ0FyZWFQcm94eShX
ZWJQcm9jZXNzUHJveHkmIHByb2Nlc3MpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9tYWMvV0tSZXZlYWxJdGVtUHJlc2VudGVyLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvbWFjL1dLUmV2ZWFsSXRlbVByZXNlbnRlci5tbQppbmRleCAwZmU0MTRkOThkZTljZjk2ZjQ4
NGRlMzc1OWNkMmI2MmQwNmRkZDdhLi4wZjUxZmQ4ZWJiMDEwOTVjYWE4NTc0NzNkNGY0NWVmZTAx
OGU1MWVhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMvV0tSZXZlYWxJ
dGVtUHJlc2VudGVyLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9XS1JldmVh
bEl0ZW1QcmVzZW50ZXIubW0KQEAgLTUzLDcgKzUzLDcgQEAgLSAoaW5zdGFuY2V0eXBlKWluaXRX
aXRoV2ViVmlld0ltcGw6KGNvbnN0IFdlYktpdDo6V2ViVmlld0ltcGwmKWltcGwgaXRlbTooUlZJ
dGUKICAgICBpZiAoIShzZWxmID0gW3N1cGVyIGluaXRdKSkKICAgICAgICAgcmV0dXJuIG5pbDsK
IAotICAgIF9pbXBsID0gbWFrZVdlYWtQdHIoaW1wbCk7CisgICAgX2ltcGwgPSBpbXBsOwogICAg
IF9wcmVzZW50ZXIgPSBhZG9wdE5TKFtQQUw6OmFsbG9jUlZQcmVzZW50ZXJJbnN0YW5jZSgpIGlu
aXRdKTsKICAgICBfcHJlc2VudGluZ0NvbnRleHQgPSBhZG9wdE5TKFtQQUw6OmFsbG9jUlZQcmVz
ZW50aW5nQ29udGV4dEluc3RhbmNlKCkgaW5pdFdpdGhQb2ludGVyTG9jYXRpb25JblZpZXc6bWVu
dUxvY2F0aW9uSW5WaWV3IGluVmlldzppbXBsLnZpZXcoKSBoaWdobGlnaHREZWxlZ2F0ZTpzZWxm
XSk7CiAgICAgX2l0ZW0gPSBpdGVtOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvbWFjL1dlYkNvbnRleHRNZW51UHJveHlNYWMubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9tYWMvV2ViQ29udGV4dE1lbnVQcm94eU1hYy5tbQppbmRleCA3NzkyYjBmMjJkN2Q1ZjVlNWNi
NzIzZWFmYmVmZTQ4Yjk4MzA4NGM4Li4zNDU0NTE5OGVlZmUxMGZjN2QyZWM5ZWI0YWQwYWRmNDAz
NTQ0MGM2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMvV2ViQ29udGV4
dE1lbnVQcm94eU1hYy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMvV2ViQ29u
dGV4dE1lbnVQcm94eU1hYy5tbQpAQCAtNTM3LDcgKzUzNyw3IEBAIHZvaWQgV2ViQ29udGV4dE1l
bnVQcm94eU1hYzo6Z2V0Q29udGV4dE1lbnVGcm9tSXRlbXMoY29uc3QgVmVjdG9yPFdlYkNvbnRl
eHRNZW51CiAgICAgYXV0byBpbWFnZUJpdG1hcCA9IG1fY29udGV4dC53ZWJIaXRUZXN0UmVzdWx0
RGF0YSgpLmltYWdlQml0bWFwOwogCiAgICAgYXV0byBzcGFyc2VNZW51SXRlbXMgPSByZXRhaW5Q
dHIoW05TUG9pbnRlckFycmF5IHN0cm9uZ09iamVjdHNQb2ludGVyQXJyYXldKTsKLSAgICBhdXRv
IGluc2VydE1lbnVJdGVtID0gbWFrZUJsb2NrUHRyKFtwcm90ZWN0ZWRUaGlzID0gUmVmIHsgKnRo
aXMgfSwgd2Vha1BhZ2UgPSBtYWtlV2Vha1B0cihwYWdlKCkpLCBpbWFnZVVSTCA9IFdURk1vdmUo
aW1hZ2VVUkwpLCBpbWFnZUJpdG1hcCA9IFdURk1vdmUoaW1hZ2VCaXRtYXApLCBzaG91bGRVcGRh
dGVRdWlja0xvb2tJdGVtVGl0bGUsIHF1aWNrTG9va0l0ZW1Ub0luc2VydElmTmVlZGVkID0gV1RG
TW92ZShxdWlja0xvb2tJdGVtVG9JbnNlcnRJZk5lZWRlZCksIGNvbXBsZXRpb25IYW5kbGVyID0g
V1RGTW92ZShjb21wbGV0aW9uSGFuZGxlciksIGl0ZW1zUmVtYWluaW5nID0gZmlsdGVyZWRJdGVt
cy5zaXplKCksIG1lbnUgPSBXVEZNb3ZlKG1lbnUpLCBzcGFyc2VNZW51SXRlbXNdKE5TTWVudUl0
ZW0gKml0ZW0sIE5TVUludGVnZXIgaW5kZXgpIG11dGFibGUgeworICAgIGF1dG8gaW5zZXJ0TWVu
dUl0ZW0gPSBtYWtlQmxvY2tQdHIoW3Byb3RlY3RlZFRoaXMgPSBSZWYgeyAqdGhpcyB9LCB3ZWFr
UGFnZSA9IFdlYWtQdHIgeyBwYWdlKCkgfSwgaW1hZ2VVUkwgPSBXVEZNb3ZlKGltYWdlVVJMKSwg
aW1hZ2VCaXRtYXAgPSBXVEZNb3ZlKGltYWdlQml0bWFwKSwgc2hvdWxkVXBkYXRlUXVpY2tMb29r
SXRlbVRpdGxlLCBxdWlja0xvb2tJdGVtVG9JbnNlcnRJZk5lZWRlZCA9IFdURk1vdmUocXVpY2tM
b29rSXRlbVRvSW5zZXJ0SWZOZWVkZWQpLCBjb21wbGV0aW9uSGFuZGxlciA9IFdURk1vdmUoY29t
cGxldGlvbkhhbmRsZXIpLCBpdGVtc1JlbWFpbmluZyA9IGZpbHRlcmVkSXRlbXMuc2l6ZSgpLCBt
ZW51ID0gV1RGTW92ZShtZW51KSwgc3BhcnNlTWVudUl0ZW1zXShOU01lbnVJdGVtICppdGVtLCBO
U1VJbnRlZ2VyIGluZGV4KSBtdXRhYmxlIHsKICAgICAgICAgQVNTRVJUKGluZGV4IDwgW3NwYXJz
ZU1lbnVJdGVtcyBjb3VudF0pOwogICAgICAgICBBU1NFUlQoIVtzcGFyc2VNZW51SXRlbXMgcG9p
bnRlckF0SW5kZXg6aW5kZXhdKTsKICAgICAgICAgW3NwYXJzZU1lbnVJdGVtcyByZXBsYWNlUG9p
bnRlckF0SW5kZXg6aW5kZXggd2l0aFBvaW50ZXI6aXRlbV07CkBAIC01ODUsNyArNTg1LDcgQEAg
dm9pZCBXZWJDb250ZXh0TWVudVByb3h5TWFjOjppbnNlcnRPclVwZGF0ZVF1aWNrTG9va0ltYWdl
SXRlbShjb25zdCBVUkwmIGltYWdlVVIKICAgICB9CiAKICAgICBpZiAoc2hvdWxkVXBkYXRlUXVp
Y2tMb29rSXRlbVRpdGxlKSB7Ci0gICAgICAgIHBhZ2UtPmNvbXB1dGVIYXNJbWFnZUFuYWx5c2lz
UmVzdWx0cyhpbWFnZVVSTCwgaW1hZ2VCaXRtYXAuZ2V0KCksIEltYWdlQW5hbHlzaXNUeXBlOjpW
aXN1YWxTZWFyY2gsIFt3ZWFrVGhpcyA9IFdlYWtQdHIgeyAqdGhpcyB9LCB3ZWFrUGFnZSA9IG1h
a2VXZWFrUHRyKHBhZ2UuZ2V0KCkpLCBpbWFnZVVSTCwgaW1hZ2VCaXRtYXAgPSBXVEZNb3ZlKGlt
YWdlQml0bWFwKV0gKGJvb2wgaGFzVmlzdWFsU2VhcmNoUmVzdWx0cykgbXV0YWJsZSB7CisgICAg
ICAgIHBhZ2UtPmNvbXB1dGVIYXNJbWFnZUFuYWx5c2lzUmVzdWx0cyhpbWFnZVVSTCwgaW1hZ2VC
aXRtYXAuZ2V0KCksIEltYWdlQW5hbHlzaXNUeXBlOjpWaXN1YWxTZWFyY2gsIFt3ZWFrVGhpcyA9
IFdlYWtQdHIgeyAqdGhpcyB9LCB3ZWFrUGFnZSA9IFdlYWtQdHIgeyBwYWdlIH0sIGltYWdlVVJM
LCBpbWFnZUJpdG1hcCA9IFdURk1vdmUoaW1hZ2VCaXRtYXApXSAoYm9vbCBoYXNWaXN1YWxTZWFy
Y2hSZXN1bHRzKSBtdXRhYmxlIHsKICAgICAgICAgICAgIFJlZlB0ciBwcm90ZWN0ZWRUaGlzIHsg
d2Vha1RoaXMuZ2V0KCkgfTsKICAgICAgICAgICAgIGlmICghcHJvdGVjdGVkVGhpcykKICAgICAg
ICAgICAgICAgICByZXR1cm47CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9t
YWMvV2ViRGF0YUxpc3RTdWdnZXN0aW9uc0Ryb3Bkb3duTWFjLm1tIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvbWFjL1dlYkRhdGFMaXN0U3VnZ2VzdGlvbnNEcm9wZG93bk1hYy5tbQppbmRleCBk
MWE0MGFlMDk1ZWJmYmNhOTEyMDk3MWFhOTQ5Yzc5NTRkNTM4ODA5Li44ZjM1Y2JmNjAyYjYzNDc2
NmEwMDFiNGNlOGQyNmUzZDNlMWZmNjgyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9tYWMvV2ViRGF0YUxpc3RTdWdnZXN0aW9uc0Ryb3Bkb3duTWFjLm1tCisrKyBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9XZWJEYXRhTGlzdFN1Z2dlc3Rpb25zRHJvcGRvd25NYWMu
bW0KQEAgLTQ1NSw3ICs0NTUsNyBAQCAtIChOU1JlY3QpZHJvcGRvd25SZWN0Rm9yRWxlbWVudFJl
Y3Q6KGNvbnN0IFdlYkNvcmU6OkludFJlY3QmKXJlY3QKIAogLSAodm9pZClzaG93U3VnZ2VzdGlv
bnNEcm9wZG93bjooV2ViS2l0OjpXZWJEYXRhTGlzdFN1Z2dlc3Rpb25zRHJvcGRvd25NYWMmKWRy
b3Bkb3duCiB7Ci0gICAgX2Ryb3Bkb3duID0gbWFrZVdlYWtQdHIoZHJvcGRvd24pOworICAgIF9k
cm9wZG93biA9IGRyb3Bkb3duOwogICAgIFtbX2VuY2xvc2luZ1dpbmRvdyBjb250ZW50Vmlld10g
YWRkU3Vidmlldzpfc2Nyb2xsVmlldy5nZXQoKV07CiAgICAgW190YWJsZSByZWxvYWRdOwogICAg
IFtbX3ByZXNlbnRpbmdWaWV3IHdpbmRvd10gYWRkQ2hpbGRXaW5kb3c6X2VuY2xvc2luZ1dpbmRv
dy5nZXQoKSBvcmRlcmVkOk5TV2luZG93QWJvdmVdOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvbWFjL1dlYkRhdGVUaW1lUGlja2VyTWFjLm1tIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvbWFjL1dlYkRhdGVUaW1lUGlja2VyTWFjLm1tCmluZGV4IDdiNWNhODJhYjNkNmQ3
MDVlZGE4NjkyN2VjMzUyYmI3MzJjZTkzNDUuLjJhNDIzM2YzZjc5MDAzODAxZjYyYzkyNWQyNTQ1
MjdhNjhjNDZhMzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9XZWJE
YXRlVGltZVBpY2tlck1hYy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMvV2Vi
RGF0ZVRpbWVQaWNrZXJNYWMubW0KQEAgLTIyOCw3ICsyMjgsNyBAQCAtIChpZClpbml0V2l0aFBh
cmFtczooV2ViQ29yZTo6RGF0ZVRpbWVDaG9vc2VyUGFyYW1ldGVycyYmKXBhcmFtcyBpblZpZXc6
KE5TVmlldwogCiAtICh2b2lkKXNob3dQaWNrZXI6KFdlYktpdDo6V2ViRGF0ZVRpbWVQaWNrZXJN
YWMmKXBpY2tlcgogewotICAgIF9waWNrZXIgPSBtYWtlV2Vha1B0cihwaWNrZXIpOworICAgIF9w
aWNrZXIgPSBwaWNrZXI7CiAKICAgICBbW19lbmNsb3NpbmdXaW5kb3cgY29udGVudFZpZXddIGFk
ZFN1YnZpZXc6X2RhdGVQaWNrZXIuZ2V0KCldOwogICAgIFtbX3ByZXNlbnRpbmdWaWV3IHdpbmRv
d10gYWRkQ2hpbGRXaW5kb3c6X2VuY2xvc2luZ1dpbmRvdy5nZXQoKSBvcmRlcmVkOk5TV2luZG93
QWJvdmVdOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0F1dG9tYXRpb24v
V2ViQXV0b21hdGlvbkRPTVdpbmRvd09ic2VydmVyLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9BdXRvbWF0aW9uL1dlYkF1dG9tYXRpb25ET01XaW5kb3dPYnNlcnZlci5jcHAKaW5kZXgg
YzAyOThmMTJhY2U4YmE4NGQwYThjNWI3MzFiNzI0MWIyMjcxN2Y3OC4uODZlMDdhMDQ2MDQzYzFi
MTM5YjI1YWNhNDFiMzdiZTJhMzViYjI1MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL0F1dG9tYXRpb24vV2ViQXV0b21hdGlvbkRPTVdpbmRvd09ic2VydmVyLmNwcAorKysg
Yi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvQXV0b21hdGlvbi9XZWJBdXRvbWF0aW9uRE9NV2lu
ZG93T2JzZXJ2ZXIuY3BwCkBAIC0zMiw3ICszMiw3IEBACiBuYW1lc3BhY2UgV2ViS2l0IHsKIAog
V2ViQXV0b21hdGlvbkRPTVdpbmRvd09ic2VydmVyOjpXZWJBdXRvbWF0aW9uRE9NV2luZG93T2Jz
ZXJ2ZXIoV2ViQ29yZTo6RE9NV2luZG93JiB3aW5kb3csIFdURjo6RnVuY3Rpb248dm9pZChXZWJB
dXRvbWF0aW9uRE9NV2luZG93T2JzZXJ2ZXImKT4mJiBjYWxsYmFjaykKLSAgICA6IG1fd2luZG93
KG1ha2VXZWFrUHRyKHdpbmRvdykpCisgICAgOiBtX3dpbmRvdyh3aW5kb3cpCiAgICAgLCBtX2Nh
bGxiYWNrKFdURk1vdmUoY2FsbGJhY2spKQogewogICAgIEFTU0VSVChtX3dpbmRvdy0+ZnJhbWUo
KSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1Jl
bW90ZURpc3BsYXlMaXN0UmVjb3JkZXJQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvR1BVL2dyYXBoaWNzL1JlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXJQcm94eS5jcHAKaW5kZXgg
YTIzOWVkMjE5YmU3OWZmMzZiYTY3ODBhYmJiNDJmNzBkM2Q3YzY5NS4uNmM5MTRkODA4MjVkNWUw
ZmFhYzhiN2E0OGEyNDgzOWFlN2FkMWIzMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyUHJveHkuY3BwCisr
KyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3RlRGlzcGxheUxp
c3RSZWNvcmRlclByb3h5LmNwcApAQCAtNDUsOCArNDUsOCBAQCB1c2luZyBuYW1lc3BhY2UgV2Vi
Q29yZTsKIFJlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXJQcm94eTo6UmVtb3RlRGlzcGxheUxpc3RS
ZWNvcmRlclByb3h5KEltYWdlQnVmZmVyJiBpbWFnZUJ1ZmZlciwgUmVtb3RlUmVuZGVyaW5nQmFj
a2VuZFByb3h5JiByZW5kZXJpbmdCYWNrZW5kLCBjb25zdCBGbG9hdFJlY3QmIGluaXRpYWxDbGlw
LCBjb25zdCBBZmZpbmVUcmFuc2Zvcm0mIGluaXRpYWxDVE0sIERyYXdHbHlwaHNSZWNvcmRlcjo6
RGVjb25zdHJ1Y3REcmF3R2x5cGhzIGRlY29uc3RydWN0RHJhd0dseXBocykKICAgICA6IERpc3Bs
YXlMaXN0OjpSZWNvcmRlcih7IH0sIGluaXRpYWxDbGlwLCBpbml0aWFsQ1RNLCBkZWNvbnN0cnVj
dERyYXdHbHlwaHMpCiAgICAgLCBtX2Rlc3RpbmF0aW9uQnVmZmVySWRlbnRpZmllcihpbWFnZUJ1
ZmZlci5yZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIoKSkKLSAgICAsIG1faW1hZ2VCdWZmZXIo
bWFrZVdlYWtQdHIoaW1hZ2VCdWZmZXIpKQotICAgICwgbV9yZW5kZXJpbmdCYWNrZW5kKG1ha2VX
ZWFrUHRyKHJlbmRlcmluZ0JhY2tlbmQpKQorICAgICwgbV9pbWFnZUJ1ZmZlcihpbWFnZUJ1ZmZl
cikKKyAgICAsIG1fcmVuZGVyaW5nQmFja2VuZChyZW5kZXJpbmdCYWNrZW5kKQogewogfQogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90ZUlt
YWdlQnVmZmVyUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3Mv
UmVtb3RlSW1hZ2VCdWZmZXJQcm94eS5oCmluZGV4IDJiYTkzNjk5YThjY2ExM2FiNzFiYTZhYTQ0
ZDBmNDg3ZjViMzU0YTYuLjY5MzRiYjQ2MTZjZTAwYmVhYjE0MGJhYTk0MTA5YjZiYTk1ZjNjMjQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3Rl
SW1hZ2VCdWZmZXJQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3Jh
cGhpY3MvUmVtb3RlSW1hZ2VCdWZmZXJQcm94eS5oCkBAIC05OCw3ICs5OCw3IEBAIHB1YmxpYzoK
IHByb3RlY3RlZDoKICAgICBSZW1vdGVJbWFnZUJ1ZmZlclByb3h5KGNvbnN0IFdlYkNvcmU6Oklt
YWdlQnVmZmVyQmFja2VuZDo6UGFyYW1ldGVycyYgcGFyYW1ldGVycywgUmVtb3RlUmVuZGVyaW5n
QmFja2VuZFByb3h5JiByZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHkpCiAgICAgICAgIDogQmFz
ZUNvbmNyZXRlSW1hZ2VCdWZmZXIocGFyYW1ldGVycykKLSAgICAgICAgLCBtX3JlbW90ZVJlbmRl
cmluZ0JhY2tlbmRQcm94eShtYWtlV2Vha1B0cihyZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHkp
KQorICAgICAgICAsIG1fcmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5KHJlbW90ZVJlbmRlcmlu
Z0JhY2tlbmRQcm94eSkKICAgICAgICAgLCBtX3JlbW90ZURpc3BsYXlMaXN0KCp0aGlzLCByZW1v
dGVSZW5kZXJpbmdCYWNrZW5kUHJveHksIHsgeyB9LCBCYXNlQ29uY3JldGVJbWFnZUJ1ZmZlcjo6
bG9naWNhbFNpemUoKSB9LCBCYXNlQ29uY3JldGVJbWFnZUJ1ZmZlcjo6YmFzZVRyYW5zZm9ybSgp
KQogICAgIHsKICAgICAgICAgQVNTRVJUKG1fcmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5KTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3Rl
UmVuZGVyaW5nQmFja2VuZFByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUv
Z3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5LmNwcAppbmRleCBkOTgyMWFjNTdh
Nzc3ZDA0Y2I5NTQ3ZmI0MzcyZDQ3MDg1ZWYyNmU4Li4yOGJiMjQ0ODE2ODE5M2VlZTdkY2FjZWIz
ODFhOGYzZGUwOGRhMWFmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BV
L2dyYXBoaWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eS5jcHAKKysrIGIvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHku
Y3BwCkBAIC03OCw3ICs3OCw3IEBAIEdQVVByb2Nlc3NDb25uZWN0aW9uJiBSZW1vdGVSZW5kZXJp
bmdCYWNrZW5kUHJveHk6OmVuc3VyZUdQVVByb2Nlc3NDb25uZWN0aW9uKCkKICAgICAgICAgc3Rh
dGljIGNvbnN0ZXhwciBhdXRvIGNvbm5lY3Rpb25CdWZmZXJTaXplID0gMSA8PCAyMTsKICAgICAg
ICAgbV9zdHJlYW1Db25uZWN0aW9uID0gbWFrZVVuaXF1ZTxJUEM6OlN0cmVhbUNsaWVudENvbm5l
Y3Rpb24+KGdwdVByb2Nlc3NDb25uZWN0aW9uLmNvbm5lY3Rpb24oKSwgY29ubmVjdGlvbkJ1ZmZl
clNpemUpOwogICAgICAgICBncHVQcm9jZXNzQ29ubmVjdGlvbi5jb25uZWN0aW9uKCkuc2VuZChN
ZXNzYWdlczo6R1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6Q3JlYXRlUmVuZGVyaW5nQmFja2Vu
ZChtX3BhcmFtZXRlcnMsIG1fc3RyZWFtQ29ubmVjdGlvbi0+c3RyZWFtQnVmZmVyKCkpLCAwLCBJ
UEM6OlNlbmRPcHRpb246OkRpc3BhdGNoTWVzc2FnZUV2ZW5XaGVuV2FpdGluZ0ZvclN5bmNSZXBs
eSk7Ci0gICAgICAgIG1fZ3B1UHJvY2Vzc0Nvbm5lY3Rpb24gPSBtYWtlV2Vha1B0cihncHVQcm9j
ZXNzQ29ubmVjdGlvbik7CisgICAgICAgIG1fZ3B1UHJvY2Vzc0Nvbm5lY3Rpb24gPSBncHVQcm9j
ZXNzQ29ubmVjdGlvbjsKICAgICB9CiAgICAgcmV0dXJuICptX2dwdVByb2Nlc3NDb25uZWN0aW9u
OwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9S
ZW1vdGVSZXNvdXJjZUNhY2hlUHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQ
VS9ncmFwaGljcy9SZW1vdGVSZXNvdXJjZUNhY2hlUHJveHkuY3BwCmluZGV4IDQxMTcwNGQ3MzUx
MDVmYjUxY2E5NTUyNThlZWViODk3OTNhYzQ1NmMuLjE3MDRlNWMzODIxMzllMTgzNzM2NzdlZWNh
YjNjMTY4NDg0YmM4MWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUv
Z3JhcGhpY3MvUmVtb3RlUmVzb3VyY2VDYWNoZVByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90ZVJlc291cmNlQ2FjaGVQcm94eS5jcHAKQEAg
LTQ2LDcgKzQ2LDcgQEAgUmVtb3RlUmVzb3VyY2VDYWNoZVByb3h5Ojp+UmVtb3RlUmVzb3VyY2VD
YWNoZVByb3h5KCkKIAogdm9pZCBSZW1vdGVSZXNvdXJjZUNhY2hlUHJveHk6OmNhY2hlSW1hZ2VC
dWZmZXIoV2ViQ29yZTo6SW1hZ2VCdWZmZXImIGltYWdlQnVmZmVyKQogewotICAgIGF1dG8gYWRk
UmVzdWx0ID0gbV9pbWFnZUJ1ZmZlcnMuYWRkKGltYWdlQnVmZmVyLnJlbmRlcmluZ1Jlc291cmNl
SWRlbnRpZmllcigpLCBJbWFnZUJ1ZmZlclN0YXRlIHsgbWFrZVdlYWtQdHIoaW1hZ2VCdWZmZXIp
LCAwIH0pOworICAgIGF1dG8gYWRkUmVzdWx0ID0gbV9pbWFnZUJ1ZmZlcnMuYWRkKGltYWdlQnVm
ZmVyLnJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllcigpLCBJbWFnZUJ1ZmZlclN0YXRlIHsgaW1h
Z2VCdWZmZXIsIDAgfSk7CiAgICAgQVNTRVJUX1VOVVNFRChhZGRSZXN1bHQsIGFkZFJlc3VsdC5p
c05ld0VudHJ5KTsKIH0KIApAQCAtMTA5LDcgKzEwOSw3IEBAIHZvaWQgUmVtb3RlUmVzb3VyY2VD
YWNoZVByb3h5OjpyZWNvcmROYXRpdmVJbWFnZVVzZShOYXRpdmVJbWFnZSYgaW1hZ2UpCiAgICAg
aWYgKGhhbmRsZS5pc051bGwoKSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgbV9uYXRpdmVJbWFn
ZXMuYWRkKGltYWdlLnJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllcigpLCBOYXRpdmVJbWFnZVN0
YXRlIHsgbWFrZVdlYWtQdHIoaW1hZ2UpLCAxIH0pOworICAgIG1fbmF0aXZlSW1hZ2VzLmFkZChp
bWFnZS5yZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIoKSwgTmF0aXZlSW1hZ2VTdGF0ZSB7IGlt
YWdlLCAxIH0pOwogCiAgICAgLy8gU2V0IGl0c2VsZiBhcyBhbiBvYnNlcnZlciB0byBOYXRpdmVJ
bWFnZSwgc28gcmVsZWFzZU5hdGl2ZUltYWdlKCkKICAgICAvLyBnZXRzIGNhbGxlZCB3aGVuIE5h
dGl2ZUltYWdlIGlzIGJlaW5nIGRlbGVsZXRlZC4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9HUFUvbWVkaWEvQXVkaW9UcmFja1ByaXZhdGVSZW1vdGUuY3BwIGIvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9BdWRpb1RyYWNrUHJpdmF0ZVJlbW90ZS5jcHAK
aW5kZXggMWNkMjk2NzQ0Y2Q0YTYzNjBkNzhmOWQyMzdiMTFkMzU4NDdjZjBkMy4uMzVlODVmNmQ2
YjY0YjQ1NWVlNDVjZTJkZTQ2OGMzMGIwNjc3N2I3ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9BdWRpb1RyYWNrUHJpdmF0ZVJlbW90ZS5jcHAKKysrIGIv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9BdWRpb1RyYWNrUHJpdmF0ZVJlbW90
ZS5jcHAKQEAgLTM3LDcgKzM3LDcgQEAKIG5hbWVzcGFjZSBXZWJLaXQgewogCiBBdWRpb1RyYWNr
UHJpdmF0ZVJlbW90ZTo6QXVkaW9UcmFja1ByaXZhdGVSZW1vdGUoR1BVUHJvY2Vzc0Nvbm5lY3Rp
b24mIGdwdVByb2Nlc3NDb25uZWN0aW9uLCBXZWJDb3JlOjpNZWRpYVBsYXllcklkZW50aWZpZXIg
cGxheWVySWRlbnRpZmllciwgVHJhY2tQcml2YXRlUmVtb3RlSWRlbnRpZmllciBpZGVuZGlmaWVy
LCBUcmFja1ByaXZhdGVSZW1vdGVDb25maWd1cmF0aW9uJiYgY29uZmlndXJhdGlvbikKLSAgICA6
IG1fZ3B1UHJvY2Vzc0Nvbm5lY3Rpb24obWFrZVdlYWtQdHIoZ3B1UHJvY2Vzc0Nvbm5lY3Rpb24p
KQorICAgIDogbV9ncHVQcm9jZXNzQ29ubmVjdGlvbihncHVQcm9jZXNzQ29ubmVjdGlvbikKICAg
ICAsIG1fcGxheWVySWRlbnRpZmllcihwbGF5ZXJJZGVudGlmaWVyKQogICAgICwgbV9pZGVuZGlm
aWVyKGlkZW5kaWZpZXIpCiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
R1BVL21lZGlhL01lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvR1BVL21lZGlhL01lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZS5jcHAKaW5kZXggMDJm
NzQ4OWI1MGY1MGRmZTBiNzFiMGFmYjVjNjViNzQwMGMwMGJlNS4uZmRmOTZjNTZjNDkxYmIwNjRh
YjcyZWMwN2ZlOGU2ZmY1MTk1ZWM1YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL0dQVS9tZWRpYS9NZWRpYVBsYXllclByaXZhdGVSZW1vdGUuY3BwCisrKyBiL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlLmNwcApA
QCAtMTEwLDcgKzExMCw3IEBAIE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTo6TWVkaWFQbGF5ZXJQ
cml2YXRlUmVtb3RlKE1lZGlhUGxheWVyKiBwbGF5ZXIsIE1lZGlhUGxhCiAgICAgLCBtX2xvZ0lk
ZW50aWZpZXIocGxheWVyLT5tZWRpYVBsYXllckxvZ0lkZW50aWZpZXIoKSkKICAgICAsCiAjZW5k
aWYKLSAgICAgIG1fcGxheWVyKG1ha2VXZWFrUHRyKCpwbGF5ZXIpKQorICAgICAgbV9wbGF5ZXIo
KnBsYXllcikKICAgICAsIG1fbWVkaWFSZXNvdXJjZUxvYWRlcigqcGxheWVyLT5jcmVhdGVSZXNv
dXJjZUxvYWRlcigpKQogI2lmIFBMQVRGT1JNKENPQ09BKQogICAgICwgbV92aWRlb0xheWVyTWFu
YWdlcihtYWtlVW5pcXVlUmVmPFZpZGVvTGF5ZXJNYW5hZ2VyT2JqQz4obG9nZ2VyKCksIGxvZ0lk
ZW50aWZpZXIoKSkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21l
ZGlhL01lZGlhU291cmNlUHJpdmF0ZVJlbW90ZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvR1BVL21lZGlhL01lZGlhU291cmNlUHJpdmF0ZVJlbW90ZS5jcHAKaW5kZXggMzY1MGJiZGFk
M2Q3ZDJmYmViNjUxMzVjN2QzNmVlMjNhMWVkMDkyZC4uNmEyMGQ3NTBhNDk0NGZiMzhkYTc0ODI4
OTcwOWYyMDU1YzU2NDBkMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQ
VS9tZWRpYS9NZWRpYVNvdXJjZVByaXZhdGVSZW1vdGUuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9HUFUvbWVkaWEvTWVkaWFTb3VyY2VQcml2YXRlUmVtb3RlLmNwcApAQCAtNTQs
MTAgKzU0LDEwIEBAIFJlZjxNZWRpYVNvdXJjZVByaXZhdGVSZW1vdGU+IE1lZGlhU291cmNlUHJp
dmF0ZVJlbW90ZTo6Y3JlYXRlKEdQVVByb2Nlc3NDb25uZWN0CiB9CiAKIE1lZGlhU291cmNlUHJp
dmF0ZVJlbW90ZTo6TWVkaWFTb3VyY2VQcml2YXRlUmVtb3RlKEdQVVByb2Nlc3NDb25uZWN0aW9u
JiBncHVQcm9jZXNzQ29ubmVjdGlvbiwgUmVtb3RlTWVkaWFTb3VyY2VJZGVudGlmaWVyIGlkZW50
aWZpZXIsIFJlbW90ZU1lZGlhUGxheWVyTUlNRVR5cGVDYWNoZSYgbWltZVR5cGVDYWNoZSwgY29u
c3QgTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlJiBtZWRpYVBsYXllclByaXZhdGUsIE1lZGlhU291
cmNlUHJpdmF0ZUNsaWVudCogY2xpZW50KQotICAgIDogbV9ncHVQcm9jZXNzQ29ubmVjdGlvbiht
YWtlV2Vha1B0cihncHVQcm9jZXNzQ29ubmVjdGlvbikpCisgICAgOiBtX2dwdVByb2Nlc3NDb25u
ZWN0aW9uKGdwdVByb2Nlc3NDb25uZWN0aW9uKQogICAgICwgbV9pZGVudGlmaWVyKGlkZW50aWZp
ZXIpCiAgICAgLCBtX21pbWVUeXBlQ2FjaGUobWltZVR5cGVDYWNoZSkKLSAgICAsIG1fbWVkaWFQ
bGF5ZXJQcml2YXRlKG1ha2VXZWFrUHRyKG1lZGlhUGxheWVyUHJpdmF0ZSkpCisgICAgLCBtX21l
ZGlhUGxheWVyUHJpdmF0ZShtZWRpYVBsYXllclByaXZhdGUpCiAgICAgLCBtX2NsaWVudChjbGll
bnQpCiAjaWYgIVJFTEVBU0VfTE9HX0RJU0FCTEVECiAgICAgLCBtX2xvZ2dlcihtX21lZGlhUGxh
eWVyUHJpdmF0ZS0+bWVkaWFQbGF5ZXJMb2dnZXIoKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlQXVkaW9EZXN0aW5hdGlvblByb3h5LmNwcCBi
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlQXVkaW9EZXN0aW5hdGlv
blByb3h5LmNwcAppbmRleCA3NzQwZGE0NWVhNjJmMWIyN2VkZDA2MWQxNTNjNzY3Nzk0ODNkNTkw
Li44YWFkYTJmMDZjMmM5NmZjNjBlN2I2YzNmY2M3OGJkZjQ0N2E3ZGNmIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZUF1ZGlvRGVzdGluYXRpb25Q
cm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVB
dWRpb0Rlc3RpbmF0aW9uUHJveHkuY3BwCkBAIC0xMDEsNyArMTAxLDcgQEAgdm9pZCBSZW1vdGVB
dWRpb0Rlc3RpbmF0aW9uUHJveHk6OnN0b3BSZW5kZXJpbmdUaHJlYWQoKQogSVBDOjpDb25uZWN0
aW9uKiBSZW1vdGVBdWRpb0Rlc3RpbmF0aW9uUHJveHk6OmNvbm5lY3Rpb24oKQogewogICAgIGlm
ICghbV9ncHVQcm9jZXNzQ29ubmVjdGlvbikgewotICAgICAgICBtX2dwdVByb2Nlc3NDb25uZWN0
aW9uID0gbWFrZVdlYWtQdHIoV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkuZW5zdXJlR1BVUHJvY2Vz
c0Nvbm5lY3Rpb24oKSk7CisgICAgICAgIG1fZ3B1UHJvY2Vzc0Nvbm5lY3Rpb24gPSBXZWJQcm9j
ZXNzOjpzaW5nbGV0b24oKS5lbnN1cmVHUFVQcm9jZXNzQ29ubmVjdGlvbigpOwogICAgICAgICBt
X2dwdVByb2Nlc3NDb25uZWN0aW9uLT5hZGRDbGllbnQoKnRoaXMpOwogCiAgICAgICAgIGlmICgh
bV9ncHVQcm9jZXNzQ29ubmVjdGlvbi0+Y29ubmVjdGlvbigpLnNlbmRTeW5jKE1lc3NhZ2VzOjpS
ZW1vdGVBdWRpb0Rlc3RpbmF0aW9uTWFuYWdlcjo6Q3JlYXRlQXVkaW9EZXN0aW5hdGlvbihtX2lu
cHV0RGV2aWNlSWQsIG1fbnVtYmVyT2ZJbnB1dENoYW5uZWxzLCBudW1iZXJPZk91dHB1dENoYW5u
ZWxzKCksIHNhbXBsZVJhdGUoKSwgaGFyZHdhcmVTYW1wbGVSYXRlKCksIG1fcmVuZGVyU2VtYXBo
b3JlKSwgTWVzc2FnZXM6OlJlbW90ZUF1ZGlvRGVzdGluYXRpb25NYW5hZ2VyOjpDcmVhdGVBdWRp
b0Rlc3RpbmF0aW9uOjpSZXBseShtX2Rlc3RpbmF0aW9uSUQpLCAwKSkgewpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVBdWRpb0hhcmR3YXJlTGlz
dGVuZXIuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVBdWRp
b0hhcmR3YXJlTGlzdGVuZXIuY3BwCmluZGV4IGIwNjg5OTE2ZjA1NTJlZTA5YzljNGNlZjMwNDI0
NTk4ZTJhNjAwODguLjIyMDgxZTdhZTdlMGNmM2Y4MzMxM2I1ODRkYmVlNWQ0N2QwM2IyYjggMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlQXVkaW9I
YXJkd2FyZUxpc3RlbmVyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21l
ZGlhL1JlbW90ZUF1ZGlvSGFyZHdhcmVMaXN0ZW5lci5jcHAKQEAgLTQ1LDcgKzQ1LDcgQEAgUmVm
PFJlbW90ZUF1ZGlvSGFyZHdhcmVMaXN0ZW5lcj4gUmVtb3RlQXVkaW9IYXJkd2FyZUxpc3RlbmVy
OjpjcmVhdGUoQXVkaW9IYXJkd2EKIFJlbW90ZUF1ZGlvSGFyZHdhcmVMaXN0ZW5lcjo6UmVtb3Rl
QXVkaW9IYXJkd2FyZUxpc3RlbmVyKEF1ZGlvSGFyZHdhcmVMaXN0ZW5lcjo6Q2xpZW50JiBjbGll
bnQsIFdlYlByb2Nlc3MmIHdlYlByb2Nlc3MpCiAgICAgOiBBdWRpb0hhcmR3YXJlTGlzdGVuZXIo
Y2xpZW50KQogICAgICwgbV9pZGVudGlmaWVyKFJlbW90ZUF1ZGlvSGFyZHdhcmVMaXN0ZW5lcklk
ZW50aWZpZXI6OmdlbmVyYXRlKCkpCi0gICAgLCBtX2dwdVByb2Nlc3NDb25uZWN0aW9uKG1ha2VX
ZWFrUHRyKFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLmVuc3VyZUdQVVByb2Nlc3NDb25uZWN0aW9u
KCkpKQorICAgICwgbV9ncHVQcm9jZXNzQ29ubmVjdGlvbihXZWJQcm9jZXNzOjpzaW5nbGV0b24o
KS5lbnN1cmVHUFVQcm9jZXNzQ29ubmVjdGlvbigpKQogewogICAgIG1fZ3B1UHJvY2Vzc0Nvbm5l
Y3Rpb24tPmFkZENsaWVudCgqdGhpcyk7CiAgICAgbV9ncHVQcm9jZXNzQ29ubmVjdGlvbi0+bWVz
c2FnZVJlY2VpdmVyTWFwKCkuYWRkTWVzc2FnZVJlY2VpdmVyKE1lc3NhZ2VzOjpSZW1vdGVBdWRp
b0hhcmR3YXJlTGlzdGVuZXI6Om1lc3NhZ2VSZWNlaXZlck5hbWUoKSwgbV9pZGVudGlmaWVyLnRv
VUludDY0KCksICp0aGlzKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9H
UFUvbWVkaWEvUmVtb3RlQXVkaW9TZXNzaW9uLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9HUFUvbWVkaWEvUmVtb3RlQXVkaW9TZXNzaW9uLmNwcAppbmRleCBjZGE2YzI3YzEwNDI2YzEw
ZDcwZTY5YmJkNTc3NDgzMTQxODdlNGJkLi4wOGVmZjk4YWE3YjM0ZTY4MzQ3ZTZkNDc2NzMwMWUx
MjVjZWM5YTNkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlh
L1JlbW90ZUF1ZGlvU2Vzc2lvbi5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQ
VS9tZWRpYS9SZW1vdGVBdWRpb1Nlc3Npb24uY3BwCkBAIC02Niw3ICs2Niw3IEBAIHZvaWQgUmVt
b3RlQXVkaW9TZXNzaW9uOjpncHVQcm9jZXNzQ29ubmVjdGlvbkRpZENsb3NlKEdQVVByb2Nlc3ND
b25uZWN0aW9uJiBjb25uCiBJUEM6OkNvbm5lY3Rpb24mIFJlbW90ZUF1ZGlvU2Vzc2lvbjo6ZW5z
dXJlQ29ubmVjdGlvbigpCiB7CiAgICAgaWYgKCFtX2dwdVByb2Nlc3NDb25uZWN0aW9uKSB7Ci0g
ICAgICAgIG1fZ3B1UHJvY2Vzc0Nvbm5lY3Rpb24gPSBtYWtlV2Vha1B0cihtX3Byb2Nlc3MuZW5z
dXJlR1BVUHJvY2Vzc0Nvbm5lY3Rpb24oKSk7CisgICAgICAgIG1fZ3B1UHJvY2Vzc0Nvbm5lY3Rp
b24gPSBtX3Byb2Nlc3MuZW5zdXJlR1BVUHJvY2Vzc0Nvbm5lY3Rpb24oKTsKICAgICAgICAgbV9n
cHVQcm9jZXNzQ29ubmVjdGlvbi0+YWRkQ2xpZW50KCp0aGlzKTsKICAgICAgICAgbV9ncHVQcm9j
ZXNzQ29ubmVjdGlvbi0+bWVzc2FnZVJlY2VpdmVyTWFwKCkuYWRkTWVzc2FnZVJlY2VpdmVyKE1l
c3NhZ2VzOjpSZW1vdGVBdWRpb1Nlc3Npb246Om1lc3NhZ2VSZWNlaXZlck5hbWUoKSwgKnRoaXMp
OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90
ZUF1ZGlvU291cmNlUHJvdmlkZXIuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9t
ZWRpYS9SZW1vdGVBdWRpb1NvdXJjZVByb3ZpZGVyLmNwcAppbmRleCA0NmNkYjAyNzY1M2I2ZTMy
NGM4ODUyNDkzOWVmMmRkNzUwZjRjNzlhLi45M2QzYzE4NWM1ODJmNTcxZWNkMGVmZDliN2JmMWVk
NzA5NjljYjBiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlh
L1JlbW90ZUF1ZGlvU291cmNlUHJvdmlkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9HUFUvbWVkaWEvUmVtb3RlQXVkaW9Tb3VyY2VQcm92aWRlci5jcHAKQEAgLTUxLDcgKzUx
LDcgQEAgUmVmPFJlbW90ZUF1ZGlvU291cmNlUHJvdmlkZXI+IFJlbW90ZUF1ZGlvU291cmNlUHJv
dmlkZXI6OmNyZWF0ZShXZWJDb3JlOjpNZWRpYVAKIAogUmVtb3RlQXVkaW9Tb3VyY2VQcm92aWRl
cjo6UmVtb3RlQXVkaW9Tb3VyY2VQcm92aWRlcihNZWRpYVBsYXllcklkZW50aWZpZXIgaWRlbnRp
ZmllciwgV1RGOjpMb2dnZXJIZWxwZXImIGhlbHBlcikKICAgICA6IG1faWRlbnRpZmllcihpZGVu
dGlmaWVyKQotICAgICwgbV9ncHVQcm9jZXNzQ29ubmVjdGlvbihtYWtlV2Vha1B0cihXZWJQcm9j
ZXNzOjpzaW5nbGV0b24oKS5lbnN1cmVHUFVQcm9jZXNzQ29ubmVjdGlvbigpKSkKKyAgICAsIG1f
Z3B1UHJvY2Vzc0Nvbm5lY3Rpb24oV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkuZW5zdXJlR1BVUHJv
Y2Vzc0Nvbm5lY3Rpb24oKSkKICNpZiAhUkVMRUFTRV9MT0dfRElTQUJMRUQKICAgICAsIG1fbG9n
Z2VyKGhlbHBlci5sb2dnZXIoKSkKICAgICAsIG1fbG9nSWRlbnRpZmllcihoZWxwZXIubG9nSWRl
bnRpZmllcigpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRp
YS9SZW1vdGVDRE0uY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1v
dGVDRE0uY3BwCmluZGV4IGRhZTQ5NWJmNmRkZDNmMmNmZGRiYjY4ZTgxZjUyN2ViNWQ4ODg0ZWEu
LmZhOTQwMjVlZDc0NzMwZDI4ZTcxNjQ2Mjg1ZjllNWJhNjUzYjhmMTIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlQ0RNLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZUNETS5jcHAKQEAgLTExOCw3ICsx
MTgsNyBAQCBSZWZQdHI8Q0RNSW5zdGFuY2U+IFJlbW90ZUNETTo6Y3JlYXRlSW5zdGFuY2UoKQog
ICAgIG1fZmFjdG9yeS0+Z3B1UHJvY2Vzc0Nvbm5lY3Rpb24oKS5jb25uZWN0aW9uKCkuc2VuZFN5
bmMoTWVzc2FnZXM6OlJlbW90ZUNETVByb3h5OjpDcmVhdGVJbnN0YW5jZSgpLCBNZXNzYWdlczo6
UmVtb3RlQ0RNUHJveHk6OkNyZWF0ZUluc3RhbmNlOjpSZXBseShpZGVudGlmaWVyLCBjb25maWd1
cmF0aW9uKSwgbV9pZGVudGlmaWVyKTsKICAgICBpZiAoIWlkZW50aWZpZXIpCiAgICAgICAgIHJl
dHVybiBudWxscHRyOwotICAgIHJldHVybiBSZW1vdGVDRE1JbnN0YW5jZTo6Y3JlYXRlKG1ha2VX
ZWFrUHRyKG1fZmFjdG9yeS5nZXQoKSksIFdURk1vdmUoaWRlbnRpZmllciksIFdURk1vdmUoY29u
ZmlndXJhdGlvbikpOworICAgIHJldHVybiBSZW1vdGVDRE1JbnN0YW5jZTo6Y3JlYXRlKG1fZmFj
dG9yeS5nZXQoKSwgV1RGTW92ZShpZGVudGlmaWVyKSwgV1RGTW92ZShjb25maWd1cmF0aW9uKSk7
CiB9CiAKIHZvaWQgUmVtb3RlQ0RNOjpsb2FkQW5kSW5pdGlhbGl6ZSgpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZUNETUZhY3RvcnkuY3BwIGIv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVDRE1GYWN0b3J5LmNwcApp
bmRleCA1OTEwYWU2YjE2ZTAwNGFjYjVmMGYyNDE4OWUwMGE3YTQ4ZWNmMjkwLi44NmYzOGQ0YTMy
MTAwMWFlNjUxZjI2ZGMwNmZhOWE4MjEyYjJmNzE5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZUNETUZhY3RvcnkuY3BwCisrKyBiL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlQ0RNRmFjdG9yeS5jcHAKQEAgLTc1LDcg
Kzc1LDcgQEAgc3RkOjp1bmlxdWVfcHRyPENETVByaXZhdGU+IFJlbW90ZUNETUZhY3Rvcnk6OmNy
ZWF0ZUNETShjb25zdCBTdHJpbmcmIGtleVN5c3RlbSkKICAgICBncHVQcm9jZXNzQ29ubmVjdGlv
bigpLmNvbm5lY3Rpb24oKS5zZW5kU3luYyhNZXNzYWdlczo6UmVtb3RlQ0RNRmFjdG9yeVByb3h5
OjpDcmVhdGVDRE0oa2V5U3lzdGVtKSwgTWVzc2FnZXM6OlJlbW90ZUNETUZhY3RvcnlQcm94eTo6
Q3JlYXRlQ0RNOjpSZXBseShpZGVudGlmaWVyLCBjb25maWd1cmF0aW9uKSwgeyB9KTsKICAgICBp
ZiAoIWlkZW50aWZpZXIpCiAgICAgICAgIHJldHVybiBudWxscHRyOwotICAgIHJldHVybiBSZW1v
dGVDRE06OmNyZWF0ZShtYWtlV2Vha1B0cih0aGlzKSwgV1RGTW92ZShpZGVudGlmaWVyKSwgV1RG
TW92ZShjb25maWd1cmF0aW9uKSk7CisgICAgcmV0dXJuIFJlbW90ZUNETTo6Y3JlYXRlKCp0aGlz
LCBXVEZNb3ZlKGlkZW50aWZpZXIpLCBXVEZNb3ZlKGNvbmZpZ3VyYXRpb24pKTsKIH0KIAogdm9p
ZCBSZW1vdGVDRE1GYWN0b3J5OjphZGRTZXNzaW9uKFJlZjxSZW1vdGVDRE1JbnN0YW5jZVNlc3Np
b24+JiYgc2Vzc2lvbikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUv
bWVkaWEvUmVtb3RlQ0RNSW5zdGFuY2UuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQ
VS9tZWRpYS9SZW1vdGVDRE1JbnN0YW5jZS5jcHAKaW5kZXggZWRjODk0ZWU5MzNiOGVhYzYxOGQ5
YTVmNjk3NmU5YzRkMjgzODY4My4uYjVkZWEyMWU5OTVhNzM3ZjAzNmY2NDUzOGMxZmIzZWNiNWU2
YmI1NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1v
dGVDRE1JbnN0YW5jZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRp
YS9SZW1vdGVDRE1JbnN0YW5jZS5jcHAKQEAgLTEwNSw3ICsxMDUsNyBAQCBSZWZQdHI8V2ViQ29y
ZTo6Q0RNSW5zdGFuY2VTZXNzaW9uPiBSZW1vdGVDRE1JbnN0YW5jZTo6Y3JlYXRlU2Vzc2lvbigp
CiAgICAgbV9mYWN0b3J5LT5ncHVQcm9jZXNzQ29ubmVjdGlvbigpLmNvbm5lY3Rpb24oKS5zZW5k
U3luYyhNZXNzYWdlczo6UmVtb3RlQ0RNSW5zdGFuY2VQcm94eTo6Q3JlYXRlU2Vzc2lvbigpLCBN
ZXNzYWdlczo6UmVtb3RlQ0RNSW5zdGFuY2VQcm94eTo6Q3JlYXRlU2Vzc2lvbjo6UmVwbHkoaWRl
bnRpZmllciksIG1faWRlbnRpZmllcik7CiAgICAgaWYgKCFpZGVudGlmaWVyKQogICAgICAgICBy
ZXR1cm4gbnVsbHB0cjsKLSAgICBhdXRvIHNlc3Npb24gPSBSZW1vdGVDRE1JbnN0YW5jZVNlc3Np
b246OmNyZWF0ZShtYWtlV2Vha1B0cihtX2ZhY3RvcnkuZ2V0KCkpLCBXVEZNb3ZlKGlkZW50aWZp
ZXIpKTsKKyAgICBhdXRvIHNlc3Npb24gPSBSZW1vdGVDRE1JbnN0YW5jZVNlc3Npb246OmNyZWF0
ZShtX2ZhY3RvcnkuZ2V0KCksIFdURk1vdmUoaWRlbnRpZmllcikpOwogICAgIG1fZmFjdG9yeS0+
YWRkU2Vzc2lvbihzZXNzaW9uLmNvcHlSZWYoKSk7CiAgICAgcmV0dXJuIHNlc3Npb247CiB9CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZUltYWdl
RGVjb2RlckFWRi5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90
ZUltYWdlRGVjb2RlckFWRi5jcHAKaW5kZXggOGQ2NzVlMTVlMzdiYWRjNGZhYmY5YTMzNmM2ZjY5
N2M0YWEzYzAxOS4uOWEyMTlhNTQ0ZTU1MzgzZjU0ZTcxZGFiZDM1NGNjNDQwYTQxNDJiOSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVJbWFnZURl
Y29kZXJBVkYuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVt
b3RlSW1hZ2VEZWNvZGVyQVZGLmNwcApAQCAtNDcsNyArNDcsNyBAQCB1c2luZyBuYW1lc3BhY2Ug
V2ViQ29yZTsKIAogUmVtb3RlSW1hZ2VEZWNvZGVyQVZGOjpSZW1vdGVJbWFnZURlY29kZXJBVkYo
UmVtb3RlSW1hZ2VEZWNvZGVyQVZGTWFuYWdlciYgbWFuYWdlciwgY29uc3QgV2ViQ29yZTo6SW1h
Z2VEZWNvZGVySWRlbnRpZmllciYgaWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiBtaW1lVHlwZSkK
ICAgICA6IEltYWdlRGVjb2RlcigpCi0gICAgLCBtX2dwdVByb2Nlc3NDb25uZWN0aW9uKG1ha2VX
ZWFrUHRyKG1hbmFnZXIuZW5zdXJlR1BVUHJvY2Vzc0Nvbm5lY3Rpb24oKSkpCisgICAgLCBtX2dw
dVByb2Nlc3NDb25uZWN0aW9uKG1hbmFnZXIuZW5zdXJlR1BVUHJvY2Vzc0Nvbm5lY3Rpb24oKSkK
ICAgICAsIG1fbWFuYWdlcihtYW5hZ2VyKQogICAgICwgbV9pZGVudGlmaWVyKGlkZW50aWZpZXIp
CiAgICAgLCBtX21pbWVUeXBlKG1pbWVUeXBlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVJbWFnZURlY29kZXJBVkZNYW5hZ2VyLmNwcCBiL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlSW1hZ2VEZWNvZGVyQVZGTWFu
YWdlci5jcHAKaW5kZXggNzZlOTczNGVkMTA3NTRjMjZhM2M2ODJjNWE4ZjY2OTI0ODY5Yzc4OC4u
NDFkNTM4ODAyM2QzOTE0OTUyMTgzNWY2ODhkZTRkNDhmNjVkNzY3ZSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVJbWFnZURlY29kZXJBVkZNYW5h
Z2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZUlt
YWdlRGVjb2RlckFWRk1hbmFnZXIuY3BwCkBAIC01MCw3ICs1MCw3IEBAIFJlZlB0cjxSZW1vdGVJ
bWFnZURlY29kZXJBVkY+IFJlbW90ZUltYWdlRGVjb2RlckFWRk1hbmFnZXI6OmNyZWF0ZUltYWdl
RGVjb2RlcihTCiAgICAgICAgIHJldHVybiBudWxscHRyOwogCiAgICAgYXV0byByZW1vdGVJbWFn
ZURlY29kZXIgPSBSZW1vdGVJbWFnZURlY29kZXJBVkY6OmNyZWF0ZSgqdGhpcywgKmltYWdlRGVj
b2RlcklkZW50aWZpZXIsIGRhdGEsIG1pbWVUeXBlKTsKLSAgICBtX3JlbW90ZUltYWdlRGVjb2Rl
cnMuYWRkKCppbWFnZURlY29kZXJJZGVudGlmaWVyLCBtYWtlV2Vha1B0cihyZW1vdGVJbWFnZURl
Y29kZXIuZ2V0KCkpKTsKKyAgICBtX3JlbW90ZUltYWdlRGVjb2RlcnMuYWRkKCppbWFnZURlY29k
ZXJJZGVudGlmaWVyLCByZW1vdGVJbWFnZURlY29kZXIpOwogCiAgICAgcmV0dXJuIHJlbW90ZUlt
YWdlRGVjb2RlcjsKIH0KQEAgLTkwLDcgKzkwLDcgQEAgY29uc3QgY2hhciogIFJlbW90ZUltYWdl
RGVjb2RlckFWRk1hbmFnZXI6OnN1cHBsZW1lbnROYW1lKCkKIEdQVVByb2Nlc3NDb25uZWN0aW9u
JiBSZW1vdGVJbWFnZURlY29kZXJBVkZNYW5hZ2VyOjplbnN1cmVHUFVQcm9jZXNzQ29ubmVjdGlv
bigpCiB7CiAgICAgaWYgKCFtX2dwdVByb2Nlc3NDb25uZWN0aW9uKSB7Ci0gICAgICAgIG1fZ3B1
UHJvY2Vzc0Nvbm5lY3Rpb24gPSBtYWtlV2Vha1B0cihtX3Byb2Nlc3MuZW5zdXJlR1BVUHJvY2Vz
c0Nvbm5lY3Rpb24oKSk7CisgICAgICAgIG1fZ3B1UHJvY2Vzc0Nvbm5lY3Rpb24gPSBtX3Byb2Nl
c3MuZW5zdXJlR1BVUHJvY2Vzc0Nvbm5lY3Rpb24oKTsKICAgICAgICAgbV9ncHVQcm9jZXNzQ29u
bmVjdGlvbi0+YWRkQ2xpZW50KCp0aGlzKTsKICAgICAgICAgbV9ncHVQcm9jZXNzQ29ubmVjdGlv
bi0+bWVzc2FnZVJlY2VpdmVyTWFwKCkuYWRkTWVzc2FnZVJlY2VpdmVyKE1lc3NhZ2VzOjpSZW1v
dGVJbWFnZURlY29kZXJBVkZNYW5hZ2VyOjptZXNzYWdlUmVjZWl2ZXJOYW1lKCksICp0aGlzKTsK
ICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1Jl
bW90ZUxlZ2FjeUNETUZhY3RvcnkuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9t
ZWRpYS9SZW1vdGVMZWdhY3lDRE1GYWN0b3J5LmNwcAppbmRleCA2YWY3MDBiNWNhZDJlMmUyNWM0
NGQ2Mjc2ZGU4MzM1MGE0YThhMDU3Li40YWVkYjI3YTk0ZmEwYjRiMzBhZjRhNDQzNDFiMTgzZTI2
ZTA2NjBlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1Jl
bW90ZUxlZ2FjeUNETUZhY3RvcnkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9H
UFUvbWVkaWEvUmVtb3RlTGVnYWN5Q0RNRmFjdG9yeS5jcHAKQEAgLTExNiw4ICsxMTYsOCBAQCBz
dGQ6OnVuaXF1ZV9wdHI8Q0RNUHJpdmF0ZUludGVyZmFjZT4gUmVtb3RlTGVnYWN5Q0RNRmFjdG9y
eTo6Y3JlYXRlQ0RNKFdlYkNvcmU6OgogICAgIGdwdVByb2Nlc3NDb25uZWN0aW9uKCkuY29ubmVj
dGlvbigpLnNlbmRTeW5jKE1lc3NhZ2VzOjpSZW1vdGVMZWdhY3lDRE1GYWN0b3J5UHJveHk6OkNy
ZWF0ZUNETShjZG0tPmtleVN5c3RlbSgpLCBXVEZNb3ZlKHBsYXllcklkKSksIE1lc3NhZ2VzOjpS
ZW1vdGVMZWdhY3lDRE1GYWN0b3J5UHJveHk6OkNyZWF0ZUNETTo6UmVwbHkoaWRlbnRpZmllciks
IHsgfSk7CiAgICAgaWYgKCFpZGVudGlmaWVyKQogICAgICAgICByZXR1cm4gbnVsbHB0cjsKLSAg
ICBhdXRvIHJlbW90ZUNETSA9IFJlbW90ZUxlZ2FjeUNETTo6Y3JlYXRlKG1ha2VXZWFrUHRyKHRo
aXMpLCBpZGVudGlmaWVyKTsKLSAgICBtX2NkbXMuc2V0KGlkZW50aWZpZXIsIG1ha2VXZWFrUHRy
KHJlbW90ZUNETS5nZXQoKSkpOworICAgIGF1dG8gcmVtb3RlQ0RNID0gUmVtb3RlTGVnYWN5Q0RN
OjpjcmVhdGUoKnRoaXMsIGlkZW50aWZpZXIpOworICAgIG1fY2Rtcy5zZXQoaWRlbnRpZmllciwg
cmVtb3RlQ0RNLmdldCgpKTsKICAgICByZXR1cm4gcmVtb3RlQ0RNOwogfQogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZU1lZGlhUGxheWVyTWFu
YWdlci5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZU1lZGlh
UGxheWVyTWFuYWdlci5jcHAKaW5kZXggOGU5ZWMzYTUwOWVhMjQwOWE0MjQxMWI3OGJkOWIzZmZk
YjczZTE4Ny4uNThmYzFlNGVlMjU1ZWQ1ODMwYzk5NmRmZTY4YmYyYWJkMzUzZWFmOCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVNZWRpYVBsYXll
ck1hbmFnZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVt
b3RlTWVkaWFQbGF5ZXJNYW5hZ2VyLmNwcApAQCAtMTcwLDcgKzE3MCw3IEBAIHN0ZDo6dW5pcXVl
X3B0cjxNZWRpYVBsYXllclByaXZhdGVJbnRlcmZhY2U+IFJlbW90ZU1lZGlhUGxheWVyTWFuYWdl
cjo6Y3JlYXRlUmVtCiAgICAgZ3B1UHJvY2Vzc0Nvbm5lY3Rpb24oKS5jb25uZWN0aW9uKCkuc2Vu
ZChNZXNzYWdlczo6UmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyUHJveHk6OkNyZWF0ZU1lZGlhUGxh
eWVyKGlkZW50aWZpZXIsIHJlbW90ZUVuZ2luZUlkZW50aWZpZXIsIHByb3h5Q29uZmlndXJhdGlv
biksIDApOwogCiAgICAgYXV0byByZW1vdGVQbGF5ZXIgPSBNZWRpYVBsYXllclByaXZhdGVSZW1v
dGU6OmNyZWF0ZShwbGF5ZXIsIHJlbW90ZUVuZ2luZUlkZW50aWZpZXIsIGlkZW50aWZpZXIsICp0
aGlzKTsKLSAgICBtX3BsYXllcnMuYWRkKGlkZW50aWZpZXIsIG1ha2VXZWFrUHRyKCpyZW1vdGVQ
bGF5ZXIpKTsKKyAgICBtX3BsYXllcnMuYWRkKGlkZW50aWZpZXIsICpyZW1vdGVQbGF5ZXIpOwog
CiAgICAgcmV0dXJuIHJlbW90ZVBsYXllcjsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlUmVtb3RlQ29tbWFuZExpc3RlbmVyLmNwcCBiL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlUmVtb3RlQ29tbWFuZExpc3Rl
bmVyLmNwcAppbmRleCA2NDk0YjI5OTg3ZjY2MWUwM2ZlYjJmMTAyZDhlYmFhNjc0OTg3ODgwLi43
NzEwYTNhNDQxMDAxYWZjNmRmZDBjZGQyNWNhM2I4ZWVmN2E4ZmFlIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZVJlbW90ZUNvbW1hbmRMaXN0ZW5l
ci5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVSZW1v
dGVDb21tYW5kTGlzdGVuZXIuY3BwCkBAIC02Miw3ICs2Miw3IEBAIFJlbW90ZVJlbW90ZUNvbW1h
bmRMaXN0ZW5lcjo6flJlbW90ZVJlbW90ZUNvbW1hbmRMaXN0ZW5lcigpCiBHUFVQcm9jZXNzQ29u
bmVjdGlvbiYgUmVtb3RlUmVtb3RlQ29tbWFuZExpc3RlbmVyOjplbnN1cmVHUFVQcm9jZXNzQ29u
bmVjdGlvbigpCiB7CiAgICAgaWYgKCFtX2dwdVByb2Nlc3NDb25uZWN0aW9uKSB7Ci0gICAgICAg
IG1fZ3B1UHJvY2Vzc0Nvbm5lY3Rpb24gPSBtYWtlV2Vha1B0cihtX3Byb2Nlc3MuZW5zdXJlR1BV
UHJvY2Vzc0Nvbm5lY3Rpb24oKSk7CisgICAgICAgIG1fZ3B1UHJvY2Vzc0Nvbm5lY3Rpb24gPSBt
X3Byb2Nlc3MuZW5zdXJlR1BVUHJvY2Vzc0Nvbm5lY3Rpb24oKTsKICAgICAgICAgbV9ncHVQcm9j
ZXNzQ29ubmVjdGlvbi0+YWRkQ2xpZW50KCp0aGlzKTsKICAgICAgICAgbV9ncHVQcm9jZXNzQ29u
bmVjdGlvbi0+bWVzc2FnZVJlY2VpdmVyTWFwKCkuYWRkTWVzc2FnZVJlY2VpdmVyKE1lc3NhZ2Vz
OjpSZW1vdGVSZW1vdGVDb21tYW5kTGlzdGVuZXI6Om1lc3NhZ2VSZWNlaXZlck5hbWUoKSwgbV9p
ZGVudGlmaWVyLnRvVUludDY0KCksICp0aGlzKTsKICAgICAgICAgbV9ncHVQcm9jZXNzQ29ubmVj
dGlvbi0+Y29ubmVjdGlvbigpLnNlbmQoTWVzc2FnZXM6OkdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nl
c3M6OkNyZWF0ZVJlbW90ZUNvbW1hbmRMaXN0ZW5lcihtX2lkZW50aWZpZXIpLCB7IH0pOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9Tb3VyY2VCdWZmZXJQ
cml2YXRlUmVtb3RlLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvU291
cmNlQnVmZmVyUHJpdmF0ZVJlbW90ZS5jcHAKaW5kZXggYWI1N2NlYjkwNTA5MzkzOTJmNGVhMGFh
ZThjODFlMjBhNDcyMzkwNC4uOTY2ZmM5M2I3N2FmYWEzZTYyMDhkN2FiYTVhZWQyYzdhOTRjNzRi
MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9Tb3VyY2VC
dWZmZXJQcml2YXRlUmVtb3RlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BV
L21lZGlhL1NvdXJjZUJ1ZmZlclByaXZhdGVSZW1vdGUuY3BwCkBAIC01NCwxMCArNTQsMTAgQEAg
UmVmPFNvdXJjZUJ1ZmZlclByaXZhdGVSZW1vdGU+IFNvdXJjZUJ1ZmZlclByaXZhdGVSZW1vdGU6
OmNyZWF0ZShHUFVQcm9jZXNzQ29ubmUKIH0KIAogU291cmNlQnVmZmVyUHJpdmF0ZVJlbW90ZTo6
U291cmNlQnVmZmVyUHJpdmF0ZVJlbW90ZShHUFVQcm9jZXNzQ29ubmVjdGlvbiYgZ3B1UHJvY2Vz
c0Nvbm5lY3Rpb24sIFJlbW90ZVNvdXJjZUJ1ZmZlcklkZW50aWZpZXIgcmVtb3RlU291cmNlQnVm
ZmVySWRlbnRpZmllciwgY29uc3QgTWVkaWFTb3VyY2VQcml2YXRlUmVtb3RlJiBtZWRpYVNvdXJj
ZVByaXZhdGUsIGNvbnN0IE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZSYgbWVkaWFQbGF5ZXJQcml2
YXRlKQotICAgIDogbV9ncHVQcm9jZXNzQ29ubmVjdGlvbihtYWtlV2Vha1B0cihncHVQcm9jZXNz
Q29ubmVjdGlvbikpCisgICAgOiBtX2dwdVByb2Nlc3NDb25uZWN0aW9uKGdwdVByb2Nlc3NDb25u
ZWN0aW9uKQogICAgICwgbV9yZW1vdGVTb3VyY2VCdWZmZXJJZGVudGlmaWVyKHJlbW90ZVNvdXJj
ZUJ1ZmZlcklkZW50aWZpZXIpCi0gICAgLCBtX21lZGlhU291cmNlUHJpdmF0ZShtYWtlV2Vha1B0
cihtZWRpYVNvdXJjZVByaXZhdGUpKQotICAgICwgbV9tZWRpYVBsYXllclByaXZhdGUobWFrZVdl
YWtQdHIobWVkaWFQbGF5ZXJQcml2YXRlKSkKKyAgICAsIG1fbWVkaWFTb3VyY2VQcml2YXRlKG1l
ZGlhU291cmNlUHJpdmF0ZSkKKyAgICAsIG1fbWVkaWFQbGF5ZXJQcml2YXRlKG1lZGlhUGxheWVy
UHJpdmF0ZSkKICNpZiAhUkVMRUFTRV9MT0dfRElTQUJMRUQKICAgICAsIG1fbG9nZ2VyKG1fbWVk
aWFTb3VyY2VQcml2YXRlLT5sb2dnZXIoKSkKICAgICAsIG1fbG9nSWRlbnRpZmllcihtX21lZGlh
U291cmNlUHJpdmF0ZS0+bmV4dFNvdXJjZUJ1ZmZlckxvZ0lkZW50aWZpZXIoKSkKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvVGV4dFRyYWNrUHJpdmF0ZVJl
bW90ZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1RleHRUcmFja1By
aXZhdGVSZW1vdGUuY3BwCmluZGV4IGY3ZDcyM2M2M2JmYzYyYWM1N2FhYTAzNWFmMmVjNThkZGYx
MjRmMzAuLjcwY2RjYWJhMDlkMWFjNDBkNzIzODI4MWEzNDZmZTJlZGFjYmRlM2YgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvVGV4dFRyYWNrUHJpdmF0ZVJl
bW90ZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9UZXh0VHJh
Y2tQcml2YXRlUmVtb3RlLmNwcApAQCAtMzksNyArMzksNyBAQCB1c2luZyBuYW1lc3BhY2UgV2Vi
Q29yZTsKIAogVGV4dFRyYWNrUHJpdmF0ZVJlbW90ZTo6VGV4dFRyYWNrUHJpdmF0ZVJlbW90ZShH
UFVQcm9jZXNzQ29ubmVjdGlvbiYgZ3B1UHJvY2Vzc0Nvbm5lY3Rpb24sIE1lZGlhUGxheWVySWRl
bnRpZmllciBwbGF5ZXJJZGVudGlmaWVyLCBUcmFja1ByaXZhdGVSZW1vdGVJZGVudGlmaWVyIGlk
ZW5kaWZpZXIsIFRleHRUcmFja1ByaXZhdGVSZW1vdGVDb25maWd1cmF0aW9uJiYgY29uZmlndXJh
dGlvbikKICAgICA6IFdlYkNvcmU6OkluYmFuZFRleHRUcmFja1ByaXZhdGUoY29uZmlndXJhdGlv
bi5jdWVGb3JtYXQpCi0gICAgLCBtX2dwdVByb2Nlc3NDb25uZWN0aW9uKG1ha2VXZWFrUHRyKGdw
dVByb2Nlc3NDb25uZWN0aW9uKSkKKyAgICAsIG1fZ3B1UHJvY2Vzc0Nvbm5lY3Rpb24oZ3B1UHJv
Y2Vzc0Nvbm5lY3Rpb24pCiAgICAgLCBtX3BsYXllcklkZW50aWZpZXIocGxheWVySWRlbnRpZmll
cikKICAgICAsIG1faWRlbnRpZmllcihpZGVuZGlmaWVyKQogewpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9WaWRlb1RyYWNrUHJpdmF0ZVJlbW90ZS5jcHAg
Yi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1ZpZGVvVHJhY2tQcml2YXRlUmVt
b3RlLmNwcAppbmRleCAxNWIyN2YxOTg3OGVkYzk0NTE3ZWYwYmI2MmMzYjRkOTRhZGI2ZTJkLi5h
NmY5OGQ4NTA0NWY5NmYyMDllMGU4NWQ0YTVlZjUwODc3MzMxMzcxIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1ZpZGVvVHJhY2tQcml2YXRlUmVtb3RlLmNw
cAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1ZpZGVvVHJhY2tQcml2
YXRlUmVtb3RlLmNwcApAQCAtMzYsNyArMzYsNyBAQAogbmFtZXNwYWNlIFdlYktpdCB7CiAKIFZp
ZGVvVHJhY2tQcml2YXRlUmVtb3RlOjpWaWRlb1RyYWNrUHJpdmF0ZVJlbW90ZShHUFVQcm9jZXNz
Q29ubmVjdGlvbiYgZ3B1UHJvY2Vzc0Nvbm5lY3Rpb24sIFdlYkNvcmU6Ok1lZGlhUGxheWVySWRl
bnRpZmllciBwbGF5ZXJJZGVudGlmaWVyLCBUcmFja1ByaXZhdGVSZW1vdGVJZGVudGlmaWVyIGlk
ZW5kaWZpZXIsIFRyYWNrUHJpdmF0ZVJlbW90ZUNvbmZpZ3VyYXRpb24mJiBjb25maWd1cmF0aW9u
KQotICAgIDogbV9ncHVQcm9jZXNzQ29ubmVjdGlvbihtYWtlV2Vha1B0cihncHVQcm9jZXNzQ29u
bmVjdGlvbikpCisgICAgOiBtX2dwdVByb2Nlc3NDb25uZWN0aW9uKGdwdVByb2Nlc3NDb25uZWN0
aW9uKQogICAgICwgbV9wbGF5ZXJJZGVudGlmaWVyKHBsYXllcklkZW50aWZpZXIpCiAgICAgLCBt
X2lkZW5kaWZpZXIoaWRlbmRpZmllcikKIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9HUFUvbWVkaWEvY29jb2EvVmlkZW9MYXllclJlbW90ZUNvY29hLm1tIGIvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9jb2NvYS9WaWRlb0xheWVyUmVtb3RlQ29jb2Eu
bW0KaW5kZXggM2FlNjVlMTFlMGJkNGY1NTM2MGFmZGI4MzY4M2RiMDBhYWUxOWM0Yy4uNGMwMTZk
MDk0ZTA3NGY2NTY0YzBkMDNkOGYzMmM3MTY2NDg4NjJkYyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9jb2NvYS9WaWRlb0xheWVyUmVtb3RlQ29jb2EubW0K
KysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9jb2NvYS9WaWRlb0xheWVy
UmVtb3RlQ29jb2EubW0KQEAgLTc4LDcgKzc4LDcgQEAgLSAoV2ViS2l0OjpNZWRpYVBsYXllclBy
aXZhdGVSZW1vdGUqKW1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZQogCiAtICh2b2lkKXNldE1lZGlh
UGxheWVyUHJpdmF0ZVJlbW90ZTooV2ViS2l0OjpNZWRpYVBsYXllclByaXZhdGVSZW1vdGUqKW1l
ZGlhUGxheWVyUHJpdmF0ZVJlbW90ZQogewotICAgIF9tZWRpYVBsYXllclByaXZhdGVSZW1vdGUg
PSBtYWtlV2Vha1B0cigqbWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlKTsKKyAgICBfbWVkaWFQbGF5
ZXJQcml2YXRlUmVtb3RlID0gKm1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTsKIH0KIAogLSAoV2Vi
Q29yZTo6TWVkaWFQbGF5ZXJFbnVtczo6VmlkZW9HcmF2aXR5KXZpZGVvR3Jhdml0eQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9pb3MvUmVtb3RlTWVkaWFT
ZXNzaW9uSGVscGVyLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvaW9z
L1JlbW90ZU1lZGlhU2Vzc2lvbkhlbHBlci5jcHAKaW5kZXggNDg2MmFmNzY0NTY3ZDZiZjZhZmY2
OGQyODc4ZjhmOTRlMTk1OGYyNi4uOTE2NDA2YmJlMjQyN2M3ZGVhMDc0Y2YxZmViNWQyMTBmYTlk
ZDFlYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9pb3Mv
UmVtb3RlTWVkaWFTZXNzaW9uSGVscGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvR1BVL21lZGlhL2lvcy9SZW1vdGVNZWRpYVNlc3Npb25IZWxwZXIuY3BwCkBAIC00OSw3ICs0
OSw3IEBAIFJlbW90ZU1lZGlhU2Vzc2lvbkhlbHBlcjo6UmVtb3RlTWVkaWFTZXNzaW9uSGVscGVy
KFdlYlByb2Nlc3MmIHByb2Nlc3MpCiBJUEM6OkNvbm5lY3Rpb24mIFJlbW90ZU1lZGlhU2Vzc2lv
bkhlbHBlcjo6ZW5zdXJlQ29ubmVjdGlvbigpCiB7CiAgICAgaWYgKCFtX2dwdVByb2Nlc3NDb25u
ZWN0aW9uKSB7Ci0gICAgICAgIG1fZ3B1UHJvY2Vzc0Nvbm5lY3Rpb24gPSBtYWtlV2Vha1B0ciht
X3Byb2Nlc3MuZW5zdXJlR1BVUHJvY2Vzc0Nvbm5lY3Rpb24oKSk7CisgICAgICAgIG1fZ3B1UHJv
Y2Vzc0Nvbm5lY3Rpb24gPSBtX3Byb2Nlc3MuZW5zdXJlR1BVUHJvY2Vzc0Nvbm5lY3Rpb24oKTsK
ICAgICAgICAgbV9ncHVQcm9jZXNzQ29ubmVjdGlvbi0+YWRkQ2xpZW50KCp0aGlzKTsKICAgICAg
ICAgbV9ncHVQcm9jZXNzQ29ubmVjdGlvbi0+bWVzc2FnZVJlY2VpdmVyTWFwKCkuYWRkTWVzc2Fn
ZVJlY2VpdmVyKE1lc3NhZ2VzOjpSZW1vdGVNZWRpYVNlc3Npb25IZWxwZXI6Om1lc3NhZ2VSZWNl
aXZlck5hbWUoKSwgKnRoaXMpOwogICAgICAgICBtX2dwdVByb2Nlc3NDb25uZWN0aW9uLT5jb25u
ZWN0aW9uKCkuc2VuZChNZXNzYWdlczo6R1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6RW5zdXJl
TWVkaWFTZXNzaW9uSGVscGVyKCksIHsgfSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvR1BVL3dlYnJ0Yy9BdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlckludGVybmFs
VW5pdE1hbmFnZXIuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS93ZWJydGMvQXVk
aW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJJbnRlcm5hbFVuaXRNYW5hZ2VyLmNwcAppbmRleCBl
ZGY4NjdlODE1M2UzMGQ2NzA5YTU2NWI2NjRjN2VjZjE3Y2JjMjZmLi42ODUxZDFhOTQ0OTcwNjI5
MTU1ZjZmMmM5NmE0N2ExMjk4NzI1MGY1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvR1BVL3dlYnJ0Yy9BdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlckludGVybmFsVW5p
dE1hbmFnZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvd2VicnRjL0F1
ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVySW50ZXJuYWxVbml0TWFuYWdlci5jcHAKQEAgLTg5
LDcgKzg5LDcgQEAgcHJpdmF0ZToKIAogdm9pZCBBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJl
ckludGVybmFsVW5pdE1hbmFnZXI6OmFkZChQcm94eSYgcHJveHkpCiB7Ci0gICAgbV9wcm94aWVz
LmFkZChwcm94eS5pZGVudGlmaWVyKCksIG1ha2VXZWFrUHRyKHByb3h5KSk7CisgICAgbV9wcm94
aWVzLmFkZChwcm94eS5pZGVudGlmaWVyKCksIHByb3h5KTsKIH0KIAogdm9pZCBBdWRpb01lZGlh
U3RyZWFtVHJhY2tSZW5kZXJlckludGVybmFsVW5pdE1hbmFnZXI6OnJlbW92ZShQcm94eSYgcHJv
eHkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL3dlYnJ0Yy9TYW1w
bGVCdWZmZXJEaXNwbGF5TGF5ZXIuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS93
ZWJydGMvU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyLmNwcAppbmRleCBmZGJhMGRiYzdlNjIwMmRm
MGI3NWUxNTllOGZkY2UyZjkyNGQ2YTcyLi5iZTkxOWNkZDFmMDA4MWY1MzY5NTQxYTIxNzMwM2Yy
NGU2MDIyYTBjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL3dlYnJ0
Yy9TYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9HUFUvd2VicnRjL1NhbXBsZUJ1ZmZlckRpc3BsYXlMYXllci5jcHAKQEAgLTQ5LDcgKzQ5
LDcgQEAgc3RkOjp1bmlxdWVfcHRyPFNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllcj4gU2FtcGxlQnVm
ZmVyRGlzcGxheUxheWVyOjpjcmVhdGUoU2FtcGwKIAogU2FtcGxlQnVmZmVyRGlzcGxheUxheWVy
OjpTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXIoU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyTWFuYWdl
ciYgbWFuYWdlciwgV2ViQ29yZTo6U2FtcGxlQnVmZmVyRGlzcGxheUxheWVyOjpDbGllbnQmIGNs
aWVudCkKICAgICA6IFdlYkNvcmU6OlNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllcihjbGllbnQpCi0g
ICAgLCBtX21hbmFnZXIobWFrZVdlYWtQdHIobWFuYWdlcikpCisgICAgLCBtX21hbmFnZXIobWFu
YWdlcikKICAgICAsIG1fY29ubmVjdGlvbihXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5lbnN1cmVH
UFVQcm9jZXNzQ29ubmVjdGlvbigpLmNvbm5lY3Rpb24oKSkKICAgICAsIG1faWRlbnRpZmllcihT
YW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXJJZGVudGlmaWVyOjpnZW5lcmF0ZSgpKQogewpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS93ZWJydGMvU2FtcGxlQnVmZmVyRGlz
cGxheUxheWVyTWFuYWdlci5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL3dlYnJ0
Yy9TYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXJNYW5hZ2VyLmNwcAppbmRleCBjNDA0MjcyYTc1ZjM5
MmEwZmRhOTRmMGMyYjYyM2NkNGFmZjI1OWViLi5hYTFlY2U3OGEyNDY2N2FmOWY2MDllMzhhMjFh
MjRkMmY4NzY2MjExIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL3dl
YnJ0Yy9TYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXJNYW5hZ2VyLmNwcAorKysgYi9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvR1BVL3dlYnJ0Yy9TYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXJNYW5hZ2Vy
LmNwcApAQCAtNDYsMTQgKzQ2LDE0IEBAIHN0ZDo6dW5pcXVlX3B0cjxXZWJDb3JlOjpTYW1wbGVC
dWZmZXJEaXNwbGF5TGF5ZXI+IFNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllck1hbmFnCiAgICAgaWYg
KCFsYXllcikKICAgICAgICAgcmV0dXJuIHsgfTsKIAotICAgIG1fbGF5ZXJzLmFkZChsYXllci0+
aWRlbnRpZmllcigpLCBtYWtlV2Vha1B0cigqbGF5ZXIpKTsKKyAgICBtX2xheWVycy5hZGQobGF5
ZXItPmlkZW50aWZpZXIoKSwgKmxheWVyKTsKICAgICByZXR1cm4gbGF5ZXI7CiB9CiAKIHZvaWQg
U2FtcGxlQnVmZmVyRGlzcGxheUxheWVyTWFuYWdlcjo6YWRkTGF5ZXIoU2FtcGxlQnVmZmVyRGlz
cGxheUxheWVyJiBsYXllcikKIHsKICAgICBBU1NFUlQoIW1fbGF5ZXJzLmNvbnRhaW5zKGxheWVy
LmlkZW50aWZpZXIoKSkpOwotICAgIG1fbGF5ZXJzLmFkZChsYXllci5pZGVudGlmaWVyKCksIG1h
a2VXZWFrUHRyKGxheWVyKSk7CisgICAgbV9sYXllcnMuYWRkKGxheWVyLmlkZW50aWZpZXIoKSwg
bGF5ZXIpOwogfQogCiB2b2lkIFNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllck1hbmFnZXI6OnJlbW92
ZUxheWVyKFNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllciYgbGF5ZXIpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2dsaWIvRE9NL0RPTU9iamVj
dENhY2hlLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkv
Z2xpYi9ET00vRE9NT2JqZWN0Q2FjaGUuY3BwCmluZGV4IDQ5NDBiMTBiZWQ3ZDZkOTk2MWIyZDBj
NDEwNGRiZGFlZGQ5MTdlZmIuLmI2Mzk2ZTI3ZTI0MmVhMDk3NmIyMzNkNjBiZGE1MDZjZDdhOGFh
ZDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9B
UEkvZ2xpYi9ET00vRE9NT2JqZWN0Q2FjaGUuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ2xpYi9ET00vRE9NT2JqZWN0Q2FjaGUuY3BwCkBAIC0x
MTEsNyArMTExLDcgQEAgcHJpdmF0ZToKICAgICAgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7
CiAgICAgcHVibGljOgogICAgICAgICBET01XaW5kb3dPYnNlcnZlcihXZWJDb3JlOjpET01XaW5k
b3cmIHdpbmRvdywgRE9NT2JqZWN0Q2FjaGVGcmFtZU9ic2VydmVyJiBmcmFtZU9ic2VydmVyKQot
ICAgICAgICAgICAgOiBtX3dpbmRvdyhtYWtlV2Vha1B0cih3aW5kb3cpKQorICAgICAgICAgICAg
OiBtX3dpbmRvdyh3aW5kb3cpCiAgICAgICAgICAgICAsIG1fZnJhbWVPYnNlcnZlcihmcmFtZU9i
c2VydmVyKQogICAgICAgICB7CiAgICAgICAgICAgICB3aW5kb3cucmVnaXN0ZXJPYnNlcnZlcigq
dGhpcyk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5zcGVjdG9yL1dl
Ykluc3BlY3RvclVJRXh0ZW5zaW9uQ29udHJvbGxlci5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvSW5zcGVjdG9yL1dlYkluc3BlY3RvclVJRXh0ZW5zaW9uQ29udHJvbGxlci5jcHAKaW5k
ZXggZWUzOTI2MDgxYjgzZDk2MTZhZTVlOWRjZTQyMDgxZTRkM2IwZWM2My4uYzYyNTk2ZTgwYzJl
MmYwZDY4OGNmMDY2MTM4OWY4NzM2YzM1MzIyNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL0luc3BlY3Rvci9XZWJJbnNwZWN0b3JVSUV4dGVuc2lvbkNvbnRyb2xsZXIuY3Bw
CisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbnNwZWN0b3IvV2ViSW5zcGVjdG9yVUlF
eHRlbnNpb25Db250cm9sbGVyLmNwcApAQCAtNDQsNyArNDQsNyBAQAogbmFtZXNwYWNlIFdlYktp
dCB7CiAKIFdlYkluc3BlY3RvclVJRXh0ZW5zaW9uQ29udHJvbGxlcjo6V2ViSW5zcGVjdG9yVUlF
eHRlbnNpb25Db250cm9sbGVyKFdlYkNvcmU6Okluc3BlY3RvckZyb250ZW5kQ2xpZW50JiBpbnNw
ZWN0b3JGcm9udGVuZCkKLSAgICA6IG1fZnJvbnRlbmRDbGllbnQobWFrZVdlYWtQdHIoaW5zcGVj
dG9yRnJvbnRlbmQpKQorICAgIDogbV9mcm9udGVuZENsaWVudChpbnNwZWN0b3JGcm9udGVuZCkK
IHsKICAgICBhdXRvKiBwYWdlID0gaW5zcGVjdG9yRnJvbnRlbmQuZnJvbnRlbmRQYWdlKCk7CiAg
ICAgQVNTRVJUKHBhZ2UpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05l
dHdvcmsvV2ViU29ja2V0Q2hhbm5lbC5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0
d29yay9XZWJTb2NrZXRDaGFubmVsLmNwcAppbmRleCBjZjE0NWFhMWRiMzFhMzZjNDA2ZWQ1MDA5
NGFjYjU1Yjk3N2VkODUxLi45MTg1NmE1NzcyOTY3MjJkMjRhYmU2OTc4M2EwMTZhYThmYjczYWQw
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0d29yay9XZWJTb2NrZXRD
aGFubmVsLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0d29yay9XZWJTb2Nr
ZXRDaGFubmVsLmNwcApAQCAtNjksOCArNjksOCBAQCBOZXR3b3JrU2VuZFF1ZXVlIFdlYlNvY2tl
dENoYW5uZWw6OmNyZWF0ZU1lc3NhZ2VRdWV1ZShEb2N1bWVudCYgZG9jdW1lbnQsIFdlYlNvYwog
fQogCiBXZWJTb2NrZXRDaGFubmVsOjpXZWJTb2NrZXRDaGFubmVsKFdlYlBhZ2VQcm94eUlkZW50
aWZpZXIgd2ViUGFnZVByb3h5SUQsIERvY3VtZW50JiBkb2N1bWVudCwgV2ViU29ja2V0Q2hhbm5l
bENsaWVudCYgY2xpZW50KQotICAgIDogbV9kb2N1bWVudChtYWtlV2Vha1B0cihkb2N1bWVudCkp
Ci0gICAgLCBtX2NsaWVudChtYWtlV2Vha1B0cihjbGllbnQpKQorICAgIDogbV9kb2N1bWVudChk
b2N1bWVudCkKKyAgICAsIG1fY2xpZW50KGNsaWVudCkKICAgICAsIG1fbWVzc2FnZVF1ZXVlKGNy
ZWF0ZU1lc3NhZ2VRdWV1ZShkb2N1bWVudCwgKnRoaXMpKQogICAgICwgbV9pbnNwZWN0b3IoZG9j
dW1lbnQpCiAgICAgLCBtX3dlYlBhZ2VQcm94eUlEKHdlYlBhZ2VQcm94eUlEKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05ldHdvcmsvV2ViU29ja2V0Q2hhbm5lbE1hbmFn
ZXIuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05ldHdvcmsvV2ViU29ja2V0Q2hhbm5l
bE1hbmFnZXIuY3BwCmluZGV4IGI5ODZhNzk5NmMzMmNlNTQ1MDJmYWJmNWM5ZmRiZTNmZjBhNzc4
MGUuLjg5OWU2NThhYzY4MTYzZjU4YTUxY2JhZmUxZTExNzExMWRiNmVmM2YgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9OZXR3b3JrL1dlYlNvY2tldENoYW5uZWxNYW5hZ2Vy
LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0d29yay9XZWJTb2NrZXRDaGFu
bmVsTWFuYWdlci5jcHAKQEAgLTMzLDcgKzMzLDcgQEAgbmFtZXNwYWNlIFdlYktpdCB7CiB2b2lk
IFdlYlNvY2tldENoYW5uZWxNYW5hZ2VyOjphZGRDaGFubmVsKFdlYlNvY2tldENoYW5uZWwmIGNo
YW5uZWwpCiB7CiAgICAgQVNTRVJUKCFtX2NoYW5uZWxzLmNvbnRhaW5zKGNoYW5uZWwuaWRlbnRp
ZmllcigpKSk7Ci0gICAgbV9jaGFubmVscy5hZGQoY2hhbm5lbC5pZGVudGlmaWVyKCksIG1ha2VX
ZWFrUHRyKGNoYW5uZWwpKTsKKyAgICBtX2NoYW5uZWxzLmFkZChjaGFubmVsLmlkZW50aWZpZXIo
KSwgY2hhbm5lbCk7CiB9CiAKIHZvaWQgV2ViU29ja2V0Q2hhbm5lbE1hbmFnZXI6Om5ldHdvcmtQ
cm9jZXNzQ3Jhc2hlZCgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0
d29yay93ZWJydGMvUlRDRGF0YUNoYW5uZWxSZW1vdGVNYW5hZ2VyLmNwcCBiL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9OZXR3b3JrL3dlYnJ0Yy9SVENEYXRhQ2hhbm5lbFJlbW90ZU1hbmFnZXIu
Y3BwCmluZGV4IDliOTZmNGExM2RjMzRjMDUyYjNkOTQ2MjU2NDcxNTUzMGU5NjdkODMuLjZkMTE5
ZTY4ODA0MmRiNmI4MGYwNjQ3Y2MxMmRkMjMxMjZlZjI5NzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9OZXR3b3JrL3dlYnJ0Yy9SVENEYXRhQ2hhbm5lbFJlbW90ZU1hbmFn
ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9OZXR3b3JrL3dlYnJ0Yy9SVENE
YXRhQ2hhbm5lbFJlbW90ZU1hbmFnZXIuY3BwCkBAIC0xODUsNyArMTg1LDcgQEAgUlRDRGF0YUNo
YW5uZWxSZW1vdGVNYW5hZ2VyOjpSZW1vdGVIYW5kbGVyQ29ubmVjdGlvbjo6UmVtb3RlSGFuZGxl
ckNvbm5lY3Rpb24oUmUKIAogdm9pZCBSVENEYXRhQ2hhbm5lbFJlbW90ZU1hbmFnZXI6OlJlbW90
ZUhhbmRsZXJDb25uZWN0aW9uOjpjb25uZWN0VG9Tb3VyY2UoV2ViQ29yZTo6UlRDRGF0YUNoYW5u
ZWxSZW1vdGVIYW5kbGVyJiBoYW5kbGVyLCBXZWJDb3JlOjpTY3JpcHRFeGVjdXRpb25Db250ZXh0
SWRlbnRpZmllciBjb250ZXh0SWRlbnRpZmllciwgV2ViQ29yZTo6UlRDRGF0YUNoYW5uZWxJZGVu
dGlmaWVyIGxvY2FsSWRlbnRpZmllciwgV2ViQ29yZTo6UlRDRGF0YUNoYW5uZWxJZGVudGlmaWVy
IHJlbW90ZUlkZW50aWZpZXIpCiB7Ci0gICAgbV9xdWV1ZS0+ZGlzcGF0Y2goW2hhbmRsZXIgPSBt
YWtlV2Vha1B0cihoYW5kbGVyKSwgY29udGV4dElkZW50aWZpZXIsIGxvY2FsSWRlbnRpZmllcl0o
KSBtdXRhYmxlIHsKKyAgICBtX3F1ZXVlLT5kaXNwYXRjaChbaGFuZGxlciA9IFdlYWtQdHIgeyBo
YW5kbGVyIH0sIGNvbnRleHRJZGVudGlmaWVyLCBsb2NhbElkZW50aWZpZXJdKCkgbXV0YWJsZSB7
CiAgICAgICAgIFJUQ0RhdGFDaGFubmVsUmVtb3RlTWFuYWdlcjo6c2hhcmVkTWFuYWdlcigpLm1f
aGFuZGxlcnMuYWRkKGxvY2FsSWRlbnRpZmllci5jaGFubmVsSWRlbnRpZmllciwgUmVtb3RlSGFu
ZGxlciB7IFdURk1vdmUoaGFuZGxlciksIGNvbnRleHRJZGVudGlmaWVyIH0pOwogICAgIH0pOwog
ICAgIG1fY29ubmVjdGlvbi0+c2VuZFdpdGhBc3luY1JlcGx5KE1lc3NhZ2VzOjpOZXR3b3JrQ29u
bmVjdGlvblRvV2ViUHJvY2Vzczo6Q29ubmVjdFRvUlRDRGF0YUNoYW5uZWxSZW1vdGVTb3VyY2Ug
eyBsb2NhbElkZW50aWZpZXIsIHJlbW90ZUlkZW50aWZpZXIgfSwgW2xvY2FsSWRlbnRpZmllcl0o
YXV0byYmIHJlc3VsdCkgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1Bs
dWdpbnMvUERGL1BERlBsdWdpbi5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1BsdWdpbnMv
UERGL1BERlBsdWdpbi5oCmluZGV4IDBlNTQwMjE2NjA5MDk0ZGZkZGJkNzBkYmY5MDZlNGE4YzAy
MTM2ZjkuLjQyZGU0NjE0MTk3NzhiN2M0NTBmY2ExZWIwMzdjMWNlOTdkMmQ2MzEgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9QbHVnaW5zL1BERi9QREZQbHVnaW4uaAorKysg
Yi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvUGx1Z2lucy9QREYvUERGUGx1Z2luLmgKQEAgLTM1
OSw3ICszNTksNyBAQCBwcml2YXRlOgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHB1YmxpYyBXZWJDb3JlOjpOZXRzY2FwZVBsdWdJblN0cmVhbUxvYWRlckNsaWVudCB7
CiAgICAgcHVibGljOgogICAgICAgICBQREZQbHVnaW5TdHJlYW1Mb2FkZXJDbGllbnQoUERGUGx1
Z2luJiBwZGZQbHVnaW4pCi0gICAgICAgICAgICA6IG1fcGRmUGx1Z2luKG1ha2VXZWFrUHRyKHBk
ZlBsdWdpbikpCisgICAgICAgICAgICA6IG1fcGRmUGx1Z2luKHBkZlBsdWdpbikKICAgICAgICAg
ewogICAgICAgICB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9QbHVn
aW5zL1BERi9QREZQbHVnaW4ubW0gYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvUGx1Z2lucy9Q
REYvUERGUGx1Z2luLm1tCmluZGV4IDViNjU0NDFlNmRmNWJjODVjNDQyM2FiOWNlZGVjYWZhNGQ2
YmQxZmQuLjBlMWQwN2FlM2QwYzgxNzRlYjZjM2RiYzkzODJhZDU0YjY3MzQzMDMgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9QbHVnaW5zL1BERi9QREZQbHVnaW4ubW0KKysr
IGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1BsdWdpbnMvUERGL1BERlBsdWdpbi5tbQpAQCAt
MTgwLDcgKzE4MCw3IEBAIC0gKGlkKWluaXRXaXRoUERGUGx1Z2luOihXZWJLaXQ6OlBERlBsdWdp
biAqKXBsdWdpbiBhbmRFbGVtZW50OihXZWJDb3JlOjpIVE1MUGx1CiAgICAgICAgIHJldHVybiBu
aWw7CiAKICAgICBfcGRmUGx1Z2luID0gcGx1Z2luOwotICAgIF9wbHVnaW5FbGVtZW50ID0gbWFr
ZVdlYWtQdHIoZWxlbWVudCk7CisgICAgX3BsdWdpbkVsZW1lbnQgPSBlbGVtZW50OwogCiAgICAg
cmV0dXJuIHNlbGY7CiB9CkBAIC02MzMsNyArNjMzLDcgQEAgUmVmPFBERlBsdWdpbj4gUERGUGx1
Z2luOjpjcmVhdGUoV2ViRnJhbWUmIGZyYW1lLCBIVE1MUGx1Z0luRWxlbWVudCogcGx1Z2luRWxl
bWUKIAogaW5saW5lIFBERlBsdWdpbjo6UERGUGx1Z2luKFdlYkZyYW1lJiBmcmFtZSwgSFRNTFBs
dWdJbkVsZW1lbnQqIHBsdWdpbkVsZW1lbnQpCiAgICAgOiBQbHVnaW4oUERGUGx1Z2luVHlwZSkK
LSAgICAsIG1fZnJhbWUobWFrZVdlYWtQdHIoZnJhbWUpKQorICAgICwgbV9mcmFtZShmcmFtZSkK
ICAgICAsIG1fY29udGFpbmVyTGF5ZXIoYWRvcHROUyhbW0NBTGF5ZXIgYWxsb2NdIGluaXRdKSkK
ICAgICAsIG1fY29udGVudExheWVyKGFkb3B0TlMoW1tDQUxheWVyIGFsbG9jXSBpbml0XSkpCiAg
ICAgLCBtX3Njcm9sbENvcm5lckxheWVyKGFkb3B0TlMoW1tXS1BERlBsdWdpblNjcm9sbGJhckxh
eWVyIGFsbG9jXSBpbml0V2l0aFBERlBsdWdpbjp0aGlzXSkpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvUGx1Z2lucy9QbHVnaW4uY3BwIGIvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL1BsdWdpbnMvUGx1Z2luLmNwcAppbmRleCBkMzYxMWY0MDU4Y2ViYTAxZGQ5ODYzZGMz
OGVjZTQxZDlkMzVmMmQwLi4xNDg4OTM5YWE2NDM2ZWJkOTFmMDU2YWQ5ZGIxNDA5YjJhNTU0YmY0
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvUGx1Z2lucy9QbHVnaW4uY3Bw
CisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9QbHVnaW5zL1BsdWdpbi5jcHAKQEAgLTkw
LDcgKzkwLDcgQEAgYm9vbCBQbHVnaW46OmluaXRpYWxpemUoUGx1Z2luQ29udHJvbGxlciYgcGx1
Z2luQ29udHJvbGxlciwgY29uc3QgUGFyYW1ldGVycyYgcGEKIHsKICAgICBBU1NFUlQoIW1fcGx1
Z2luQ29udHJvbGxlcik7CiAKLSAgICBtX3BsdWdpbkNvbnRyb2xsZXIgPSBtYWtlV2Vha1B0cihw
bHVnaW5Db250cm9sbGVyKTsKKyAgICBtX3BsdWdpbkNvbnRyb2xsZXIgPSBwbHVnaW5Db250cm9s
bGVyOwogCiAgICAgcmV0dXJuIGluaXRpYWxpemUocGFyYW1ldGVycyk7CiB9CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRGV2aWNlT3JpZW50
YXRpb25VcGRhdGVQcm92aWRlci5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29y
ZVN1cHBvcnQvV2ViRGV2aWNlT3JpZW50YXRpb25VcGRhdGVQcm92aWRlci5jcHAKaW5kZXggYTEz
MDIyY2I4ZjZlZTY2MzkzM2RkODRiNjdmOGY2ZjA0NDA4Y2VkNy4uZjlhZjlhYjkzZjdlMDEyODc3
MzY1MGMxZDI0OTVhZGRlMzlmZDQzNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkRldmljZU9yaWVudGF0aW9uVXBkYXRlUHJvdmlkZXIuY3Bw
CisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJEZXZpY2VP
cmllbnRhdGlvblVwZGF0ZVByb3ZpZGVyLmNwcApAQCAtMzgsNyArMzgsNyBAQAogbmFtZXNwYWNl
IFdlYktpdCB7CiAKIFdlYkRldmljZU9yaWVudGF0aW9uVXBkYXRlUHJvdmlkZXI6OldlYkRldmlj
ZU9yaWVudGF0aW9uVXBkYXRlUHJvdmlkZXIoV2ViUGFnZSYgcGFnZSkKLSAgICA6IG1fcGFnZSht
YWtlV2Vha1B0cihwYWdlKSkKKyAgICA6IG1fcGFnZShwYWdlKQogICAgICwgbV9wYWdlSWRlbnRp
ZmllcihwYWdlLmlkZW50aWZpZXIoKSkKIHsKICAgICBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5h
ZGRNZXNzYWdlUmVjZWl2ZXIoTWVzc2FnZXM6OldlYkRldmljZU9yaWVudGF0aW9uVXBkYXRlUHJv
dmlkZXI6Om1lc3NhZ2VSZWNlaXZlck5hbWUoKSwgcGFnZS5pZGVudGlmaWVyKCksICp0aGlzKTsK
QEAgLTg1LDcgKzg1LDcgQEAgdm9pZCBXZWJEZXZpY2VPcmllbnRhdGlvblVwZGF0ZVByb3ZpZGVy
OjpkZXZpY2VPcmllbnRhdGlvbkNoYW5nZWQoZG91YmxlIGFscGhhLAogewogICAgIFZlY3RvcjxX
ZWFrUHRyPFdlYkNvcmU6Ok1vdGlvbk1hbmFnZXJDbGllbnQ+PiBjbGllbnRzOwogICAgIGZvciAo
YXV0byYgY2xpZW50IDogbV9kZXZpY2VPcmllbnRhdGlvbkNsaWVudHMpCi0gICAgICAgIGNsaWVu
dHMuYXBwZW5kKG1ha2VXZWFrUHRyKCZjbGllbnQpKTsKKyAgICAgICAgY2xpZW50cy5hcHBlbmQo
Y2xpZW50KTsKIAogICAgIGZvciAoYXV0byYgY2xpZW50IDogY2xpZW50cykgewogICAgICAgICBp
ZiAoY2xpZW50KQpAQCAtOTcsNyArOTcsNyBAQCB2b2lkIFdlYkRldmljZU9yaWVudGF0aW9uVXBk
YXRlUHJvdmlkZXI6OmRldmljZU1vdGlvbkNoYW5nZWQoZG91YmxlIHhBY2NlbGVyYXRpbwogewog
ICAgIFZlY3RvcjxXZWFrUHRyPFdlYkNvcmU6Ok1vdGlvbk1hbmFnZXJDbGllbnQ+PiBjbGllbnRz
OwogICAgIGZvciAoYXV0byYgY2xpZW50IDogbV9kZXZpY2VNb3Rpb25DbGllbnRzKQotICAgICAg
ICBjbGllbnRzLmFwcGVuZChtYWtlV2Vha1B0cigmY2xpZW50KSk7CisgICAgICAgIGNsaWVudHMu
YXBwZW5kKGNsaWVudCk7CiAgICAgCiAgICAgZm9yIChhdXRvJiBjbGllbnQgOiBjbGllbnRzKSB7
CiAgICAgICAgIGlmIChjbGllbnQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvV2ViQ29yZVN1cHBvcnQvV2ViUGVybWlzc2lvbkNvbnRyb2xsZXIuY3BwIGIvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlBlcm1pc3Npb25Db250cm9sbGVyLmNw
cAppbmRleCAwMDg1ZTQ5OGNlMGQ2NmE1ODJjZjY4MWU0NmQ4YWRiYzFkMjJmZTE2Li5kNjAxODIx
ZjBhODVjMDMyMTAwM2ZlMGRjZWQ3OTc2ZDllMjBlZTVkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViUGVybWlzc2lvbkNvbnRyb2xsZXIuY3Bw
CisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJQZXJtaXNz
aW9uQ29udHJvbGxlci5jcHAKQEAgLTM5LDcgKzM5LDcgQEAgUmVmPFdlYlBlcm1pc3Npb25Db250
cm9sbGVyPiBXZWJQZXJtaXNzaW9uQ29udHJvbGxlcjo6Y3JlYXRlKFdlYlBhZ2UmIHBhZ2UpCiB9
CiAKIFdlYlBlcm1pc3Npb25Db250cm9sbGVyOjpXZWJQZXJtaXNzaW9uQ29udHJvbGxlcihXZWJQ
YWdlJiBwYWdlKQotICAgIDogbV9wYWdlKG1ha2VXZWFrUHRyKHBhZ2UpKQorICAgIDogbV9wYWdl
KHBhZ2UpCiB7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJD
b3JlU3VwcG9ydC9XZWJTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb24uY3BwIGIvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlNwZWVjaFJlY29nbml0aW9uQ29ubmVj
dGlvbi5jcHAKaW5kZXggNGI3NjNiY2RlZTYzYmRmZjRmYTFmMjlkZTc4NTY2MGQ0OGI0ZjFlZC4u
Nzg5NzM4ZWM0YTNiMTEzMDU2N2JlMWUyODAxMDkzZDdmNjc3YTE3OCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlNwZWVjaFJlY29nbml0aW9u
Q29ubmVjdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBw
b3J0L1dlYlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbi5jcHAKQEAgLTYxLDcgKzYxLDcgQEAg
V2ViU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uOjp+V2ViU3BlZWNoUmVjb2duaXRpb25Db25u
ZWN0aW9uKCkKIAogdm9pZCBXZWJTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb246OnJlZ2lzdGVy
Q2xpZW50KFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbkNsaWVudCYgY2xpZW50
KQogewotICAgIG1fY2xpZW50TWFwLmFkZChjbGllbnQuaWRlbnRpZmllcigpLCBtYWtlV2Vha1B0
cihjbGllbnQpKTsKKyAgICBtX2NsaWVudE1hcC5hZGQoY2xpZW50LmlkZW50aWZpZXIoKSwgY2xp
ZW50KTsKIH0KIAogdm9pZCBXZWJTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb246OnVucmVnaXN0
ZXJDbGllbnQoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uQ2xpZW50JiBjbGll
bnQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9Db2NvYS9X
ZWJQYWdlQ29jb2EubW0gYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9Db2NvYS9X
ZWJQYWdlQ29jb2EubW0KaW5kZXggZTliZGQ1N2MxNDkzNDY0ODQyNTNiZTI5Y2FjMjhhMjIyOTEz
MzA5Ny4uYTI3Mzc1YjI5Y2VlZmFiMzg1ZTQ4ZDA4M2RlYzViN2EwZWJkNzQxMSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvQ29jb2EvV2ViUGFnZUNvY29hLm1t
CisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL0NvY29hL1dlYlBhZ2VDb2Nv
YS5tbQpAQCAtMjcyLDcgKzI3Miw3IEBAIHZvaWQgV2ViUGFnZTo6Z2V0Q29udGVudHNBc0F0dHJp
YnV0ZWRTdHJpbmcoQ29tcGxldGlvbkhhbmRsZXI8dm9pZChjb25zdCBXZWJDb3JlCiAKIHZvaWQg
V2ViUGFnZTo6c2V0UmVtb3RlT2JqZWN0UmVnaXN0cnkoV2ViUmVtb3RlT2JqZWN0UmVnaXN0cnkq
IHJlZ2lzdHJ5KQogewotICAgIG1fcmVtb3RlT2JqZWN0UmVnaXN0cnkgPSBtYWtlV2Vha1B0cihy
ZWdpc3RyeSk7CisgICAgbV9yZW1vdGVPYmplY3RSZWdpc3RyeSA9IHJlZ2lzdHJ5OwogfQogCiBX
ZWJSZW1vdGVPYmplY3RSZWdpc3RyeSogV2ViUGFnZTo6cmVtb3RlT2JqZWN0UmVnaXN0cnkoKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvRmluZENvbnRyb2xs
ZXIuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvRmluZENvbnRyb2xsZXIu
Y3BwCmluZGV4IGI3NzNmMGJlMzQ2NzQ4OTIxNGY5NmY4NmUyZTM5OWE2MjE1YjI0YzMuLmI1MGFl
ZDE2MmZjNTJlN2Y0YThjMzljYTAzNjY1OWM1NWIwODkwYTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL0ZpbmRDb250cm9sbGVyLmNwcAorKysgYi9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9GaW5kQ29udHJvbGxlci5jcHAKQEAgLTU0NSw3ICs1
NDUsNyBAQCB2b2lkIEZpbmRDb250cm9sbGVyOjpkcmF3UmVjdChQYWdlT3ZlcmxheSYsIEdyYXBo
aWNzQ29udGV4dCYgZ3JhcGhpY3NDb250ZXh0LCBjbwogCiAgICAgICAgIGlmIChmaW5kSW5kaWNh
dG9yUmVjdCAhPSBtX2ZpbmRJbmRpY2F0b3JSZWN0KSB7CiAgICAgICAgICAgICAvLyBXZSBhcmUg
dW5kZXJuZWF0aCBwYWludGluZywgc28gaXQncyBub3Qgc2FmZSB0byBtdXRhdGUgdGhlIGxheWVy
IHRyZWUgc3luY2hyb25vdXNseS4KLSAgICAgICAgICAgIGNhbGxPbk1haW5SdW5Mb29wKFt3ZWFr
V2ViUGFnZSA9IG1ha2VXZWFrUHRyKG1fd2ViUGFnZSldIHsKKyAgICAgICAgICAgIGNhbGxPbk1h
aW5SdW5Mb29wKFt3ZWFrV2ViUGFnZSA9IFdlYWtQdHIgeyBtX3dlYlBhZ2UgfV0gewogICAgICAg
ICAgICAgICAgIGlmICghd2Vha1dlYlBhZ2UpCiAgICAgICAgICAgICAgICAgICAgIHJldHVybjsK
ICAgICAgICAgICAgICAgICB3ZWFrV2ViUGFnZS0+ZmluZENvbnRyb2xsZXIoKS5kaWRTY3JvbGxB
ZmZlY3RpbmdGaW5kSW5kaWNhdG9yUG9zaXRpb24oKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9XZWJQYWdlL0lQQ1Rlc3RpbmdBUEkuY3BwIGIvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL1dlYlBhZ2UvSVBDVGVzdGluZ0FQSS5jcHAKaW5kZXggNjAwNTRhYTkzZTNiNWEy
N2I3YzU4YjIzMWE3ZGFhYWJmYzM4YjQ0NC4uOWM5NjAyYzAyYjM0YjUyMjc0M2YwNDJmM2NmMjQ0
NjVmNTgwMTZlMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2Uv
SVBDVGVzdGluZ0FQSS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2Uv
SVBDVGVzdGluZ0FQSS5jcHAKQEAgLTE2Nyw4ICsxNjcsOCBAQCBwdWJsaWM6CiAKIHByaXZhdGU6
CiAgICAgSlNJUEMoV2ViUGFnZSYgd2ViUGFnZSwgV2ViRnJhbWUmIHdlYkZyYW1lKQotICAgICAg
ICA6IG1fd2ViUGFnZShtYWtlV2Vha1B0cih3ZWJQYWdlKSkKLSAgICAgICAgLCBtX3dlYkZyYW1l
KG1ha2VXZWFrUHRyKHdlYkZyYW1lKSkKKyAgICAgICAgOiBtX3dlYlBhZ2Uod2ViUGFnZSkKKyAg
ICAgICAgLCBtX3dlYkZyYW1lKHdlYkZyYW1lKQogICAgIHsgfQogCiAgICAgc3RhdGljIEpTSVBD
KiB1bndyYXAoSlNPYmplY3RSZWYpOwpAQCAtMTQxOSw3ICsxNDE5LDcgQEAgSlNWYWx1ZVJlZiBK
U0lQQzo6bWVzc2FnZXMoSlNDb250ZXh0UmVmIGNvbnRleHQsIEpTT2JqZWN0UmVmIHRoaXNPYmpl
Y3QsIEpTU3RyaW4KIH0KIAogSlNNZXNzYWdlTGlzdGVuZXI6OkpTTWVzc2FnZUxpc3RlbmVyKEpT
SVBDJiBqc0lQQywgVHlwZSB0eXBlLCBKU0NvbnRleHRSZWYgY29udGV4dCwgSlNPYmplY3RSZWYg
Y2FsbGJhY2spCi0gICAgOiBtX2pzSVBDKG1ha2VXZWFrUHRyKGpzSVBDKSkKKyAgICA6IG1fanNJ
UEMoanNJUEMpCiAgICAgLCBtX3R5cGUodHlwZSkKICAgICAsIG1fY29udGV4dChjb250ZXh0KQog
ICAgICwgbV9jYWxsYmFjayhjYWxsYmFjaykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9XZWJQYWdlL1JlbW90ZUxheWVyVHJlZS9SZW1vdGVMYXllclRyZWVEaXNwbGF5UmVm
cmVzaE1vbml0b3IubW0gYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9SZW1vdGVM
YXllclRyZWUvUmVtb3RlTGF5ZXJUcmVlRGlzcGxheVJlZnJlc2hNb25pdG9yLm1tCmluZGV4IGNj
MzllM2QxNjI0Zjk3Yzg4OWNiZGNjZWU2NGU2OTBmN2RhNzVhZWIuLjdhNWFjZGQwYjUwZGNmNjBl
ZTRiMDczMzFjZThlNzA3N2Q2ODI3Y2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9XZWJQYWdlL1JlbW90ZUxheWVyVHJlZS9SZW1vdGVMYXllclRyZWVEaXNwbGF5UmVmcmVz
aE1vbml0b3IubW0KKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvUmVtb3Rl
TGF5ZXJUcmVlL1JlbW90ZUxheWVyVHJlZURpc3BsYXlSZWZyZXNoTW9uaXRvci5tbQpAQCAtMzYs
NyArMzYsNyBAQCBjb25zdGV4cHIgRnJhbWVzUGVyU2Vjb25kIERlZmF1bHRQcmVmZXJyZWRGcmFt
ZXNQZXJTZWNvbmQgPSA2MDsKIAogUmVtb3RlTGF5ZXJUcmVlRGlzcGxheVJlZnJlc2hNb25pdG9y
OjpSZW1vdGVMYXllclRyZWVEaXNwbGF5UmVmcmVzaE1vbml0b3IoUGxhdGZvcm1EaXNwbGF5SUQg
ZGlzcGxheUlELCBSZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYSYgZHJhd2luZ0FyZWEpCiAgICAg
OiBEaXNwbGF5UmVmcmVzaE1vbml0b3IoZGlzcGxheUlEKQotICAgICwgbV9kcmF3aW5nQXJlYSht
YWtlV2Vha1B0cihkcmF3aW5nQXJlYSkpCisgICAgLCBtX2RyYXdpbmdBcmVhKGRyYXdpbmdBcmVh
KQogICAgICwgbV9wcmVmZXJyZWRGcmFtZXNQZXJTZWNvbmQoRGVmYXVsdFByZWZlcnJlZEZyYW1l
c1BlclNlY29uZCkKICAgICAsIG1fY3VycmVudFVwZGF0ZSh7IDAsIG1fcHJlZmVycmVkRnJhbWVz
UGVyU2Vjb25kIH0pCiB7CkBAIC05MCw3ICs5MCw3IEBAIHZvaWQgUmVtb3RlTGF5ZXJUcmVlRGlz
cGxheVJlZnJlc2hNb25pdG9yOjpkaWRVcGRhdGVMYXllcnMoKQogCiB2b2lkIFJlbW90ZUxheWVy
VHJlZURpc3BsYXlSZWZyZXNoTW9uaXRvcjo6dXBkYXRlRHJhd2luZ0FyZWEoUmVtb3RlTGF5ZXJU
cmVlRHJhd2luZ0FyZWEmIGRyYXdpbmdBcmVhKQogewotICAgIG1fZHJhd2luZ0FyZWEgPSBtYWtl
V2Vha1B0cihkcmF3aW5nQXJlYSk7CisgICAgbV9kcmF3aW5nQXJlYSA9IGRyYXdpbmdBcmVhOwog
fQogCiBzdGQ6Om9wdGlvbmFsPEZyYW1lc1BlclNlY29uZD4gUmVtb3RlTGF5ZXJUcmVlRGlzcGxh
eVJlZnJlc2hNb25pdG9yOjpkaXNwbGF5Tm9taW5hbEZyYW1lc1BlclNlY29uZCgpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJDb250ZXh0TWVudS5jcHAg
Yi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJDb250ZXh0TWVudS5jcHAKaW5k
ZXggMjg2NzMwYTM4M2Q2Y2NjYTg0MzE2NTg1YWIzMWEwN2EyNGU1ZmM5Yi4uYjE4Y2VjNThlM2E2
MTg4NTFlNDM2YmY3OTNjMzM1NjVjNzA4YWE1YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL1dlYlBhZ2UvV2ViQ29udGV4dE1lbnUuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9XZWJQYWdlL1dlYkNvbnRleHRNZW51LmNwcApAQCAtNDEsNyArNDEsNyBAQCBu
YW1lc3BhY2UgV2ViS2l0IHsKIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogCiBXZWJDb250ZXh0
TWVudTo6V2ViQ29udGV4dE1lbnUoV2ViUGFnZSYgcGFnZSkKLSAgICA6IG1fcGFnZShtYWtlV2Vh
a1B0cihwYWdlKSkKKyAgICA6IG1fcGFnZShwYWdlKQogewogfQogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJGcmFtZS5jcHAgYi9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJGcmFtZS5jcHAKaW5kZXggODE1NzgzNzhlODdhNWI5NGM3
YTQ5YmY1NWM2M2E2NjE3NmJiMzY1YS4uZDkxOWU0NDhmNzU1Zjk4YjZkMGU5ZWFiNzRmNTNmZjI0
OGJiYmYzMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2Vi
RnJhbWUuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYkZyYW1l
LmNwcApAQCAtMTA4LDcgKzEwOCw3IEBAIHZvaWQgV2ViRnJhbWU6OmluaXRXaXRoQ29yZU1haW5G
cmFtZShXZWJQYWdlJiBwYWdlLCBGcmFtZSYgY29yZUZyYW1lKQogewogICAgIHBhZ2Uuc2VuZChN
ZXNzYWdlczo6V2ViUGFnZVByb3h5OjpEaWRDcmVhdGVNYWluRnJhbWUoZnJhbWVJRCgpKSk7CiAK
LSAgICBtX2NvcmVGcmFtZSA9IG1ha2VXZWFrUHRyKGNvcmVGcmFtZSk7CisgICAgbV9jb3JlRnJh
bWUgPSBjb3JlRnJhbWU7CiAgICAgbV9jb3JlRnJhbWUtPnRyZWUoKS5zZXROYW1lKFN0cmluZygp
KTsKICAgICBtX2NvcmVGcmFtZS0+aW5pdCgpOwogfQpAQCAtMTE5LDcgKzExOSw3IEBAIFJlZjxX
ZWJGcmFtZT4gV2ViRnJhbWU6OmNyZWF0ZVN1YmZyYW1lKFdlYlBhZ2UqIHBhZ2UsIGNvbnN0IFN0
cmluZyYgZnJhbWVOYW1lLCBICiAgICAgcGFnZS0+c2VuZChNZXNzYWdlczo6V2ViUGFnZVByb3h5
OjpEaWRDcmVhdGVTdWJmcmFtZShmcmFtZS0+ZnJhbWVJRCgpKSk7CiAKICAgICBhdXRvIGNvcmVG
cmFtZSA9IEZyYW1lOjpjcmVhdGUocGFnZS0+Y29yZVBhZ2UoKSwgb3duZXJFbGVtZW50LCBtYWtl
VW5pcXVlUmVmPFdlYkZyYW1lTG9hZGVyQ2xpZW50PihmcmFtZS5nZXQoKSkpOwotICAgIGZyYW1l
LT5tX2NvcmVGcmFtZSA9IG1ha2VXZWFrUHRyKGNvcmVGcmFtZS5nZXQoKSk7CisgICAgZnJhbWUt
Pm1fY29yZUZyYW1lID0gY29yZUZyYW1lOwogCiAgICAgY29yZUZyYW1lLT50cmVlKCkuc2V0TmFt
ZShmcmFtZU5hbWUpOwogICAgIGlmIChvd25lckVsZW1lbnQpIHsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYkZyYW1lLmggYi9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvV2ViUGFnZS9XZWJGcmFtZS5oCmluZGV4IGIwY2NkOGVhZDQ5MGY5YmJmZGE2YWQ4
ZGNkNDhmNTlhMTA2NTMyMjQuLjU3MjY2ZTRkNTQwNzNlMDg5ODNjOWYzZGFmY2Q5NDkzMmE3OTJm
MDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYkZyYW1l
LmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViRnJhbWUuaApAQCAt
MTczLDcgKzE3Myw3IEBAIHB1YmxpYzoKICAgICAgICAgdmlydHVhbCB2b2lkIGRpZEZpbmlzaExv
YWQoV2ViRnJhbWUqKSA9IDA7CiAgICAgICAgIHZpcnR1YWwgdm9pZCBkaWRGYWlsTG9hZChXZWJG
cmFtZSosIGJvb2wgd2FzQ2FuY2VsbGVkKSA9IDA7CiAgICAgfTsKLSAgICB2b2lkIHNldExvYWRM
aXN0ZW5lcihMb2FkTGlzdGVuZXIqIGxvYWRMaXN0ZW5lcikgeyBtX2xvYWRMaXN0ZW5lciA9IG1h
a2VXZWFrUHRyKGxvYWRMaXN0ZW5lcik7IH0KKyAgICB2b2lkIHNldExvYWRMaXN0ZW5lcihMb2Fk
TGlzdGVuZXIqIGxvYWRMaXN0ZW5lcikgeyBtX2xvYWRMaXN0ZW5lciA9IGxvYWRMaXN0ZW5lcjsg
fQogICAgIExvYWRMaXN0ZW5lciogbG9hZExpc3RlbmVyKCkgY29uc3QgeyByZXR1cm4gbV9sb2Fk
TGlzdGVuZXIuZ2V0KCk7IH0KICAgICAKICNpZiBQTEFURk9STShDT0NPQSkKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwIGIvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKaW5kZXggZWZmOGIxOGIxZDAwNzJm
ZTJlMWQwZWVkNWNlNGQ0NzI1NTc0YjFhZS4uN2Y0MzQ0MjA0NDRlM2M2OTQ4YTQ3MzdmYmViZTUy
YWE0NDY0YzM0ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2Uv
V2ViUGFnZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFn
ZS5jcHAKQEAgLTQ2MDAsNyArNDYwMCw3IEBAIHZvaWQgV2ViUGFnZTo6ZGlkQ2hvb3NlQ29sb3Io
Y29uc3QgV2ViQ29yZTo6Q29sb3ImIGNvbG9yKQogCiB2b2lkIFdlYlBhZ2U6OnNldEFjdGl2ZURh
dGFMaXN0U3VnZ2VzdGlvblBpY2tlcihXZWJEYXRhTGlzdFN1Z2dlc3Rpb25QaWNrZXImIGRhdGFM
aXN0U3VnZ2VzdGlvblBpY2tlcikKIHsKLSAgICBtX2FjdGl2ZURhdGFMaXN0U3VnZ2VzdGlvblBp
Y2tlciA9IG1ha2VXZWFrUHRyKCZkYXRhTGlzdFN1Z2dlc3Rpb25QaWNrZXIpOworICAgIG1fYWN0
aXZlRGF0YUxpc3RTdWdnZXN0aW9uUGlja2VyID0gZGF0YUxpc3RTdWdnZXN0aW9uUGlja2VyOwog
fQogCiB2b2lkIFdlYlBhZ2U6OmRpZFNlbGVjdERhdGFMaXN0T3B0aW9uKGNvbnN0IFN0cmluZyYg
c2VsZWN0ZWRPcHRpb24pCkBAIC00NjIxLDcgKzQ2MjEsNyBAQCB2b2lkIFdlYlBhZ2U6OmRpZENs
b3NlU3VnZ2VzdGlvbnMoKQogCiB2b2lkIFdlYlBhZ2U6OnNldEFjdGl2ZURhdGVUaW1lQ2hvb3Nl
cihXZWJEYXRlVGltZUNob29zZXImIGRhdGVUaW1lQ2hvb3NlcikKIHsKLSAgICBtX2FjdGl2ZURh
dGVUaW1lQ2hvb3NlciA9IG1ha2VXZWFrUHRyKCZkYXRlVGltZUNob29zZXIpOworICAgIG1fYWN0
aXZlRGF0ZVRpbWVDaG9vc2VyID0gZGF0ZVRpbWVDaG9vc2VyOwogfQogCiB2b2lkIFdlYlBhZ2U6
OmRpZENob29zZURhdGUoY29uc3QgU3RyaW5nJiBkYXRlKQpAQCAtNzMyNiw3ICs3MzI2LDcgQEAg
dm9pZCBXZWJQYWdlOjpzdGFydFRleHRNYW5pcHVsYXRpb25zKFZlY3RvcjxXZWJDb3JlOjpUZXh0
TWFuaXB1bGF0aW9uQ29udHJvbGxlcjoKICAgICBpZiAoIW1haW5Eb2N1bWVudCkKICAgICAgICAg
cmV0dXJuOwogCi0gICAgbWFpbkRvY3VtZW50LT50ZXh0TWFuaXB1bGF0aW9uQ29udHJvbGxlcigp
LnN0YXJ0T2JzZXJ2aW5nUGFyYWdyYXBocyhbd2ViUGFnZSA9IG1ha2VXZWFrUHRyKCp0aGlzKV0g
KERvY3VtZW50JiBkb2N1bWVudCwgY29uc3QgVmVjdG9yPFdlYkNvcmU6OlRleHRNYW5pcHVsYXRp
b25Db250cm9sbGVyOjpNYW5pcHVsYXRpb25JdGVtPiYgaXRlbXMpIHsKKyAgICBtYWluRG9jdW1l
bnQtPnRleHRNYW5pcHVsYXRpb25Db250cm9sbGVyKCkuc3RhcnRPYnNlcnZpbmdQYXJhZ3JhcGhz
KFt3ZWJQYWdlID0gV2Vha1B0ciB7ICp0aGlzIH1dIChEb2N1bWVudCYgZG9jdW1lbnQsIGNvbnN0
IFZlY3RvcjxXZWJDb3JlOjpUZXh0TWFuaXB1bGF0aW9uQ29udHJvbGxlcjo6TWFuaXB1bGF0aW9u
SXRlbT4mIGl0ZW1zKSB7CiAgICAgICAgIGF1dG8qIGZyYW1lID0gZG9jdW1lbnQuZnJhbWUoKTsK
ICAgICAgICAgaWYgKCF3ZWJQYWdlIHx8ICFmcmFtZSB8fCB3ZWJQYWdlLT5tYWluRnJhbWUoKSAh
PSBmcmFtZSkKICAgICAgICAgICAgIHJldHVybjsKQEAgLTc1MzcsMTEgKzc1MzcsMTEgQEAgdm9p
ZCBXZWJQYWdlOjpyZXF1ZXN0VGV4dFJlY29nbml0aW9uKFdlYkNvcmU6OkVsZW1lbnQmIGVsZW1l
bnQsIENvbXBsZXRpb25IYW5kbGUKICAgICBWZWN0b3I8Q29tcGxldGlvbkhhbmRsZXI8dm9pZChS
ZWZQdHI8RWxlbWVudD4mJik+PiBjb21wbGV0aW9uSGFuZGxlcnM7CiAgICAgaWYgKGNvbXBsZXRp
b24pCiAgICAgICAgIGNvbXBsZXRpb25IYW5kbGVycy5hcHBlbmQoV1RGTW92ZShjb21wbGV0aW9u
KSk7Ci0gICAgbV9lbGVtZW50c1BlbmRpbmdUZXh0UmVjb2duaXRpb24uYXBwZW5kKHsgbWFrZVdl
YWtQdHIoZWxlbWVudCksIFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXJzKSB9KTsKKyAgICBtX2Vs
ZW1lbnRzUGVuZGluZ1RleHRSZWNvZ25pdGlvbi5hcHBlbmQoeyBXZWFrUHRyIHsgZWxlbWVudCB9
LCBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVycykgfSk7CiAKICAgICBhdXRvIGNhY2hlZEltYWdl
ID0gcmVuZGVySW1hZ2UuY2FjaGVkSW1hZ2UoKTsKICAgICBhdXRvIGltYWdlVVJMID0gY2FjaGVk
SW1hZ2UgPyBlbGVtZW50LmRvY3VtZW50KCkuY29tcGxldGVVUkwoY2FjaGVkSW1hZ2UtPnVybCgp
LnN0cmluZygpKSA6IFVSTCB7IH07Ci0gICAgc2VuZFdpdGhBc3luY1JlcGx5KE1lc3NhZ2VzOjpX
ZWJQYWdlUHJveHk6OlJlcXVlc3RUZXh0UmVjb2duaXRpb24oV1RGTW92ZShpbWFnZVVSTCksIFdU
Rk1vdmUoYml0bWFwSGFuZGxlKSksIFt3ZWJQYWdlID0gbWFrZVdlYWtQdHIoKnRoaXMpLCB3ZWFr
RWxlbWVudCA9IG1ha2VXZWFrUHRyKGVsZW1lbnQpXSAoYXV0byYmIHJlc3VsdCkgeworICAgIHNl
bmRXaXRoQXN5bmNSZXBseShNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpSZXF1ZXN0VGV4dFJlY29n
bml0aW9uKFdURk1vdmUoaW1hZ2VVUkwpLCBXVEZNb3ZlKGJpdG1hcEhhbmRsZSkpLCBbd2ViUGFn
ZSA9IFdlYWtQdHIgeyAqdGhpcyB9LCB3ZWFrRWxlbWVudCA9IFdlYWtQdHIgeyBlbGVtZW50IH1d
IChhdXRvJiYgcmVzdWx0KSB7CiAgICAgICAgIFJlZlB0ciBwcm90ZWN0ZWRQYWdlIHsgd2ViUGFn
ZS5nZXQoKSB9OwogICAgICAgICBpZiAoIXByb3RlY3RlZFBhZ2UpCiAgICAgICAgICAgICByZXR1
cm47CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9pb3MvV2Vi
UGFnZUlPUy5tbSBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL2lvcy9XZWJQYWdl
SU9TLm1tCmluZGV4IDFlM2NiMTE4OGVhZWUyYWU0OGE0YTQ2NWUxM2M0ZmFjZmYyZmQ2NTMuLjdm
MTY4MjVhMmI4YmJhZjExZTQ5YTc4MDUwZjZhNzg1MDk4NWMxZmQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL2lvcy9XZWJQYWdlSU9TLm1tCisrKyBiL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL2lvcy9XZWJQYWdlSU9TLm1tCkBAIC04MTIsNyAr
ODEyLDcgQEAgdm9pZCBXZWJQYWdlOjpkaWRGaW5pc2hDb250ZW50Q2hhbmdlT2JzZXJ2aW5nKFdL
Q29udGVudENoYW5nZSBvYnNlcnZlZENvbnRlbnRDaGEKICAgICBMT0dfV0lUSF9TVFJFQU0oQ29u
dGVudE9ic2VydmF0aW9uLCBzdHJlYW0gPDwgImRpZEZpbmlzaENvbnRlbnRDaGFuZ2VPYnNlcnZp
bmc6IHBlbmRpbmcgdGFyZ2V0IG5vZGUoIiA8PCBtX3BlbmRpbmdTeW50aGV0aWNDbGlja05vZGUg
PDwgIikiKTsKICAgICBpZiAoIW1fcGVuZGluZ1N5bnRoZXRpY0NsaWNrTm9kZSkKICAgICAgICAg
cmV0dXJuOwotICAgIGNhbGxPbk1haW5SdW5Mb29wKFtwcm90ZWN0ZWRUaGlzID0gUmVmIHsgKnRo
aXMgfSwgdGFyZ2V0Tm9kZSA9IFJlZjxOb2RlPigqbV9wZW5kaW5nU3ludGhldGljQ2xpY2tOb2Rl
KSwgb3JpZ2luYWxEb2N1bWVudCA9IG1ha2VXZWFrUHRyKG1fcGVuZGluZ1N5bnRoZXRpY0NsaWNr
Tm9kZS0+ZG9jdW1lbnQoKSksIG9ic2VydmVkQ29udGVudENoYW5nZSwgbG9jYXRpb24gPSBtX3Bl
bmRpbmdTeW50aGV0aWNDbGlja0xvY2F0aW9uLCBtb2RpZmllcnMgPSBtX3BlbmRpbmdTeW50aGV0
aWNDbGlja01vZGlmaWVycywgcG9pbnRlcklkID0gbV9wZW5kaW5nU3ludGhldGljQ2xpY2tQb2lu
dGVySWRdIHsKKyAgICBjYWxsT25NYWluUnVuTG9vcChbcHJvdGVjdGVkVGhpcyA9IFJlZiB7ICp0
aGlzIH0sIHRhcmdldE5vZGUgPSBSZWY8Tm9kZT4oKm1fcGVuZGluZ1N5bnRoZXRpY0NsaWNrTm9k
ZSksIG9yaWdpbmFsRG9jdW1lbnQgPSBXZWFrUHRyIHsgbV9wZW5kaW5nU3ludGhldGljQ2xpY2tO
b2RlLT5kb2N1bWVudCgpIH0sIG9ic2VydmVkQ29udGVudENoYW5nZSwgbG9jYXRpb24gPSBtX3Bl
bmRpbmdTeW50aGV0aWNDbGlja0xvY2F0aW9uLCBtb2RpZmllcnMgPSBtX3BlbmRpbmdTeW50aGV0
aWNDbGlja01vZGlmaWVycywgcG9pbnRlcklkID0gbV9wZW5kaW5nU3ludGhldGljQ2xpY2tQb2lu
dGVySWRdIHsKICAgICAgICAgaWYgKHByb3RlY3RlZFRoaXMtPm1faXNDbG9zZWQgfHwgIXByb3Rl
Y3RlZFRoaXMtPmNvcmVQYWdlKCkpCiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIGlmICgh
b3JpZ2luYWxEb2N1bWVudCB8fCAmdGFyZ2V0Tm9kZS0+ZG9jdW1lbnQoKSAhPSBvcmlnaW5hbERv
Y3VtZW50KQpAQCAtMjIwMiw3ICsyMjAyLDcgQEAgdm9pZCBXZWJQYWdlOjpzZWxlY3RUZXh0V2l0
aEdyYW51bGFyaXR5QXRQb2ludChjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYgcG9pbnQsIFcKICAg
ICBpZiAoYXV0byBzZWxlY3Rpb25DaGFuZ2VkSGFuZGxlciA9IHN0ZDo6ZXhjaGFuZ2UobV9zZWxl
Y3Rpb25DaGFuZ2VkSGFuZGxlciwge30pKQogICAgICAgICBzZWxlY3Rpb25DaGFuZ2VkSGFuZGxl
cigpOwogCi0gICAgbV9zZWxlY3Rpb25DaGFuZ2VkSGFuZGxlciA9IFtwb2ludCwgZ3JhbnVsYXJp
dHksIGlzSW50ZXJhY3RpbmdXaXRoRm9jdXNlZEVsZW1lbnQsIGNvbXBsZXRpb25IYW5kbGVyID0g
V1RGTW92ZShjb21wbGV0aW9uSGFuZGxlciksIHdlYlBhZ2UgPSBtYWtlV2Vha1B0cigqdGhpcyks
IHRoaXNdKCkgbXV0YWJsZSB7CisgICAgbV9zZWxlY3Rpb25DaGFuZ2VkSGFuZGxlciA9IFtwb2lu
dCwgZ3JhbnVsYXJpdHksIGlzSW50ZXJhY3RpbmdXaXRoRm9jdXNlZEVsZW1lbnQsIGNvbXBsZXRp
b25IYW5kbGVyID0gV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlciksIHdlYlBhZ2UgPSBXZWFrUHRy
IHsgKnRoaXMgfSwgdGhpc10oKSBtdXRhYmxlIHsKICAgICAgICAgUmVmUHRyPFdlYlBhZ2U+IHN0
cm9uZ1BhZ2UgPSB3ZWJQYWdlLmdldCgpOwogICAgICAgICBpZiAoIXN0cm9uZ1BhZ2UpIHsKICAg
ICAgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvV2ViUGFnZS9tYWMvV2ViUGFnZU1hYy5tbSBiL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9XZWJQYWdlL21hYy9XZWJQYWdlTWFjLm1tCmluZGV4IGMyNTVmMzhjMzU4YTBjNWM0
ZTE3YTY2MjFkN2IzN2RkZTQ1ZjYxZTUuLmIzYzQ4YmJiNGEyOGI4MGNkY2MxYjg5ODAwNzgwYTdk
YjkwYTI1MTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL21h
Yy9XZWJQYWdlTWFjLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL21h
Yy9XZWJQYWdlTWFjLm1tCkBAIC0xMTQ0LDcgKzExNDQsNyBAQCB2b2lkIFdlYlBhZ2U6Om9wZW5Q
REZXaXRoUHJldmlldyhQREZQbHVnaW5JZGVudGlmaWVyIGlkZW50aWZpZXIsIENvbXBsZXRpb25I
YW5kbAogCiB2b2lkIFdlYlBhZ2U6OmNyZWF0ZVBERkhVRChQREZQbHVnaW4mIHBsdWdpbiwgY29u
c3QgSW50UmVjdCYgYm91bmRpbmdCb3gpCiB7Ci0gICAgYXV0byBhZGRSZXN1bHQgPSBtX3BkZlBs
dWdJbnNXaXRoSFVELmFkZChwbHVnaW4uaWRlbnRpZmllcigpLCBtYWtlV2Vha1B0cihwbHVnaW4p
KTsKKyAgICBhdXRvIGFkZFJlc3VsdCA9IG1fcGRmUGx1Z0luc1dpdGhIVUQuYWRkKHBsdWdpbi5p
ZGVudGlmaWVyKCksIHBsdWdpbik7CiAgICAgaWYgKGFkZFJlc3VsdC5pc05ld0VudHJ5KQogICAg
ICAgICBzZW5kKE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OkNyZWF0ZVBERkhVRChwbHVnaW4uaWRl
bnRpZmllcigpLCBib3VuZGluZ0JveCkpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL1dlYlN0b3JhZ2UvU3RvcmFnZUFyZWFJbXBsLmNwcCBiL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9XZWJTdG9yYWdlL1N0b3JhZ2VBcmVhSW1wbC5jcHAKaW5kZXggOGE1NDdlYTg5
OTQ3NDRlYmJkZjgxMzNhNDczOGZiNDY3NzExMDQxYi4uYjEyYzU4YzBhYWQ2N2U5OTU3NzA2ZTI5
ZTZkZTY1NjllZmU2NDg0NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dl
YlN0b3JhZ2UvU3RvcmFnZUFyZWFJbXBsLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvV2ViU3RvcmFnZS9TdG9yYWdlQXJlYUltcGwuY3BwCkBAIC00NCw3ICs0NCw3IEBAIFJlZjxT
dG9yYWdlQXJlYUltcGw+IFN0b3JhZ2VBcmVhSW1wbDo6Y3JlYXRlKFN0b3JhZ2VBcmVhTWFwJiBz
dG9yYWdlQXJlYU1hcCkKIAogU3RvcmFnZUFyZWFJbXBsOjpTdG9yYWdlQXJlYUltcGwoU3RvcmFn
ZUFyZWFNYXAmIHN0b3JhZ2VBcmVhTWFwKQogICAgIDogbV9pZGVudGlmaWVyKElkZW50aWZpZXI6
OmdlbmVyYXRlKCkpCi0gICAgLCBtX3N0b3JhZ2VBcmVhTWFwKG1ha2VXZWFrUHRyKHN0b3JhZ2VB
cmVhTWFwKSkKKyAgICAsIG1fc3RvcmFnZUFyZWFNYXAoc3RvcmFnZUFyZWFNYXApCiB7CiAgICAg
c3RvcmFnZUFyZWFNYXAuaW5jcmVtZW50VXNlQ291bnQoKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9BdWRpb1Nlc3Npb25Sb3V0aW5nQXJiaXRyYXRvci5j
cHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvQXVkaW9TZXNzaW9uUm91dGluZ0Fy
Yml0cmF0b3IuY3BwCmluZGV4IDdlZWQzOWRiODdkNWI1YWFlNTE4NTU4OWU5YjFmZTIzODBhYWE5
MjEuLjkzMDJlNjVkOWQyOWZhMmI1NTkzYjJiZjc3NDg4YzlmZjE0NTYxZDYgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9BdWRpb1Nlc3Npb25Sb3V0aW5nQXJiaXRy
YXRvci5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL0F1ZGlvU2Vzc2lv
blJvdXRpbmdBcmJpdHJhdG9yLmNwcApAQCAtMzksNyArMzksNyBAQCB1c2luZyBuYW1lc3BhY2Ug
V2ViQ29yZTsKIAogQXVkaW9TZXNzaW9uUm91dGluZ0FyYml0cmF0b3I6OkF1ZGlvU2Vzc2lvblJv
dXRpbmdBcmJpdHJhdG9yKFdlYlByb2Nlc3MmIHByb2Nlc3MpCiAgICAgOiBtX3Byb2Nlc3MocHJv
Y2VzcykKLSAgICAsIG1fb2JzZXJ2ZXIoW3RoaXNdIChBdWRpb1Nlc3Npb24mIHNlc3Npb24pIHsg
c2Vzc2lvbi5zZXRSb3V0aW5nQXJiaXRyYXRpb25DbGllbnQobWFrZVdlYWtQdHIodGhpcykpOyB9
KQorICAgICwgbV9vYnNlcnZlcihbdGhpc10gKEF1ZGlvU2Vzc2lvbiYgc2Vzc2lvbikgeyBzZXNz
aW9uLnNldFJvdXRpbmdBcmJpdHJhdGlvbkNsaWVudCgqdGhpcyk7IH0pCiB7CiAgICAgQXVkaW9T
ZXNzaW9uOjphZGRBdWRpb1Nlc3Npb25DaGFuZ2VkT2JzZXJ2ZXIobV9vYnNlcnZlcik7CiB9CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvQXVkaW9TZXNzaW9uUm91
dGluZ0FyYml0cmF0b3IuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9BdWRpb1Nl
c3Npb25Sb3V0aW5nQXJiaXRyYXRvci5oCmluZGV4IGYxZDU3MjMyZmFkMjkzZmI4YTFkZTdlMGU0
MGIyNDBmMjBjY2FhMzkuLmJkYWY2MDUzMWU4NmYwNGNmNTI5MmMwZDk3ZWJkNGNkMDA5YjYzYTMg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9BdWRpb1Nlc3Npb25S
b3V0aW5nQXJiaXRyYXRvci5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9B
dWRpb1Nlc3Npb25Sb3V0aW5nQXJiaXRyYXRvci5oCkBAIC0zNyw4ICszNyw3IEBAIGNsYXNzIFdl
YlByb2Nlc3M7CiAKIGNsYXNzIEF1ZGlvU2Vzc2lvblJvdXRpbmdBcmJpdHJhdG9yIGZpbmFsCiAg
ICAgOiBwdWJsaWMgV2ViUHJvY2Vzc1N1cHBsZW1lbnQKLSAgICAsIHB1YmxpYyBXZWJDb3JlOjpB
dWRpb1Nlc3Npb25Sb3V0aW5nQXJiaXRyYXRpb25DbGllbnQKLSAgICAsIHB1YmxpYyBDYW5NYWtl
V2Vha1B0cjxBdWRpb1Nlc3Npb25Sb3V0aW5nQXJiaXRyYXRvcj4geworICAgICwgcHVibGljIFdl
YkNvcmU6OkF1ZGlvU2Vzc2lvblJvdXRpbmdBcmJpdHJhdGlvbkNsaWVudCB7CiAgICAgV1RGX01B
S0VfRkFTVF9BTExPQ0FURUQ7CiBwdWJsaWM6CiAgICAgZXhwbGljaXQgQXVkaW9TZXNzaW9uUm91
dGluZ0FyYml0cmF0b3IoV2ViUHJvY2VzcyYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL2NvY29hL1ZpZGVvRnVsbHNjcmVlbk1hbmFnZXIubW0gYi9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvY29jb2EvVmlkZW9GdWxsc2NyZWVuTWFuYWdlci5tbQppbmRleCA3YjM0ZTQz
ODBmYzI4ZmEwMDE1YzEzYzc3NzM0ZGFlZGI4Y2JiZDNmLi4xM2E2YmY5MWM5ZjUzZjU1M2M0Yjdj
ZTc0NDI2NmEwMWNjMTBkOTIxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
Y29jb2EvVmlkZW9GdWxsc2NyZWVuTWFuYWdlci5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvY29jb2EvVmlkZW9GdWxsc2NyZWVuTWFuYWdlci5tbQpAQCAtMjc1LDcgKzI3NSw3IEBA
IHZvaWQgVmlkZW9GdWxsc2NyZWVuTWFuYWdlcjo6ZW50ZXJWaWRlb0Z1bGxzY3JlZW5Gb3JWaWRl
b0VsZW1lbnQoSFRNTFZpZGVvRWxlbWVuCiAgICAgICAgIGludGVyZmFjZS0+c2V0VGFyZ2V0SXNG
dWxsc2NyZWVuKGZhbHNlKTsKIAogICAgIGlmIChtb2RlID09IEhUTUxNZWRpYUVsZW1lbnRFbnVt
czo6VmlkZW9GdWxsc2NyZWVuTW9kZVBpY3R1cmVJblBpY3R1cmUpCi0gICAgICAgIG1fdmlkZW9F
bGVtZW50SW5QaWN0dXJlSW5QaWN0dXJlID0gbWFrZVdlYWtQdHIodmlkZW9FbGVtZW50KTsKKyAg
ICAgICAgbV92aWRlb0VsZW1lbnRJblBpY3R1cmVJblBpY3R1cmUgPSB2aWRlb0VsZW1lbnQ7CiAK
ICAgICBpbnRlcmZhY2UtPnNldEZ1bGxzY3JlZW5Nb2RlKG1vZGUpOwogICAgIGludGVyZmFjZS0+
c2V0RnVsbHNjcmVlblN0YW5kYnkoc3RhbmRieSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
TGVnYWN5L1N0b3JhZ2UvSW5Qcm9jZXNzSURCU2VydmVyLmNwcCBiL1NvdXJjZS9XZWJLaXRMZWdh
Y3kvU3RvcmFnZS9JblByb2Nlc3NJREJTZXJ2ZXIuY3BwCmluZGV4IGQ1OTE2YzFhNDNjYTlhNjQ1
YjY3Y2ViZTI0MGNhZDVjZDk5NWIxZDIuLjVlNDRjM2I4NTgyZDZhZjM3ZDBiODUyZTE4YWQ4MmU4
ODE0NWRhYzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvU3RvcmFnZS9JblByb2Nl
c3NJREJTZXJ2ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvU3RvcmFnZS9JblByb2Nl
c3NJREJTZXJ2ZXIuY3BwCkBAIC04Myw4ICs4Myw4IEBAIFN0b3JhZ2VRdW90YU1hbmFnZXIqIElu
UHJvY2Vzc0lEQlNlcnZlcjo6cXVvdGFNYW5hZ2VyKGNvbnN0IENsaWVudE9yaWdpbiYgb3JpZ2lu
CiAKIHN0YXRpYyBpbmxpbmUgSURCU2VydmVyOjpJREJTZXJ2ZXI6OlN0b3JhZ2VRdW90YU1hbmFn
ZXJTcGFjZVJlcXVlc3RlciBzdG9yYWdlUXVvdGFNYW5hZ2VyU3BhY2VSZXF1ZXN0ZXIoSW5Qcm9j
ZXNzSURCU2VydmVyJiBzZXJ2ZXIpCiB7Ci0gICAgcmV0dXJuIFtzZXJ2ZXIgPSAmc2VydmVyLCB3
ZWFrU2VydmVyID0gbWFrZVdlYWtQdHIoc2VydmVyKV0oY29uc3QgQ2xpZW50T3JpZ2luJiBvcmln
aW4sIHVpbnQ2NF90IHNwYWNlUmVxdWVzdGVkKSBtdXRhYmxlIHsKLSAgICAgICAgYXV0byogc3Rv
cmFnZVF1b3RhTWFuYWdlciA9IHdlYWtTZXJ2ZXIgPyBzZXJ2ZXItPnF1b3RhTWFuYWdlcihvcmln
aW4pIDogbnVsbHB0cjsKKyAgICByZXR1cm4gW3dlYWtTZXJ2ZXIgPSBXZWFrUHRyIHsgc2VydmVy
IH1dKGNvbnN0IENsaWVudE9yaWdpbiYgb3JpZ2luLCB1aW50NjRfdCBzcGFjZVJlcXVlc3RlZCkg
bXV0YWJsZSB7CisgICAgICAgIGF1dG8qIHN0b3JhZ2VRdW90YU1hbmFnZXIgPSB3ZWFrU2VydmVy
ID8gd2Vha1NlcnZlci0+cXVvdGFNYW5hZ2VyKG9yaWdpbikgOiBudWxscHRyOwogICAgICAgICBy
ZXR1cm4gc3RvcmFnZVF1b3RhTWFuYWdlciA/IHN0b3JhZ2VRdW90YU1hbmFnZXItPnJlcXVlc3RT
cGFjZU9uQmFja2dyb3VuZFRocmVhZChzcGFjZVJlcXVlc3RlZCkgOiBTdG9yYWdlUXVvdGFNYW5h
Z2VyOjpEZWNpc2lvbjo6RGVueTsKICAgICB9OwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dExlZ2FjeS9XZWJDb3JlU3VwcG9ydC9QYWdlU3RvcmFnZVNlc3Npb25Qcm92aWRlci5oIGIvU291
cmNlL1dlYktpdExlZ2FjeS9XZWJDb3JlU3VwcG9ydC9QYWdlU3RvcmFnZVNlc3Npb25Qcm92aWRl
ci5oCmluZGV4IDc1NmVhYmYzYzE5ZTU3OThjOTdlNjBiNzljMjcxZmVjNTdlNzY4M2MuLmYyMGMy
YjU0OWUzM2M2Njg4MzY2OTkzNTY4MDhjMWNiZGI3ZDA3YTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXRMZWdhY3kvV2ViQ29yZVN1cHBvcnQvUGFnZVN0b3JhZ2VTZXNzaW9uUHJvdmlkZXIuaAor
KysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L1dlYkNvcmVTdXBwb3J0L1BhZ2VTdG9yYWdlU2Vzc2lv
blByb3ZpZGVyLmgKQEAgLTQ0LDcgKzQ0LDcgQEAgcHVibGljOgogCiAgICAgdm9pZCBzZXRQYWdl
KFdlYkNvcmU6OlBhZ2UmIHBhZ2UpCiAgICAgewotICAgICAgICBtX3BhZ2UgPSBtYWtlV2Vha1B0
cihwYWdlKTsKKyAgICAgICAgbV9wYWdlID0gcGFnZTsKICAgICB9CiAKIHByaXZhdGU6CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L1dlYkNvcmVTdXBwb3J0L1dlYkJyb2FkY2FzdENo
YW5uZWxSZWdpc3RyeS5jcHAgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L1dlYkNvcmVTdXBwb3J0L1dl
YkJyb2FkY2FzdENoYW5uZWxSZWdpc3RyeS5jcHAKaW5kZXggZDEwMzIwOGM4Zjg2MzNkNjA4YWMy
M2U1N2Y0ZWYzNTc4NmVkNDJmNi4uNjRjNjRiMmNjYzFhNWQwYmQ3NGQzYzA0ZTY4MTk0ODRiZjgy
ODJlNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9XZWJDb3JlU3VwcG9ydC9XZWJC
cm9hZGNhc3RDaGFubmVsUmVnaXN0cnkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvV2Vi
Q29yZVN1cHBvcnQvV2ViQnJvYWRjYXN0Q2hhbm5lbFJlZ2lzdHJ5LmNwcApAQCAtNDAsNyArNDAs
NyBAQCBSZWY8V2ViQnJvYWRjYXN0Q2hhbm5lbFJlZ2lzdHJ5PiBXZWJCcm9hZGNhc3RDaGFubmVs
UmVnaXN0cnk6OmdldE9yQ3JlYXRlKGJvb2wgcAogICAgICAgICByZXR1cm4gKmV4aXN0aW5nUmVn
aXN0cnkuZ2V0KCk7CiAKICAgICBhdXRvIHJlZ2lzdHJ5ID0gYWRvcHRSZWYoKm5ldyBXZWJCcm9h
ZGNhc3RDaGFubmVsUmVnaXN0cnkpOwotICAgIGV4aXN0aW5nUmVnaXN0cnkuZ2V0KCkgPSBtYWtl
V2Vha1B0cihyZWdpc3RyeS5nZXQoKSk7CisgICAgZXhpc3RpbmdSZWdpc3RyeS5nZXQoKSA9IHJl
Z2lzdHJ5OwogICAgIHJldHVybiByZWdpc3RyeTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdExlZ2FjeS9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50Lm1tIGIvU291cmNl
L1dlYktpdExlZ2FjeS9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50Lm1tCmluZGV4
IGJkNWM1Njk1MTlmYzU4ZjEyN2U1ZWJiNTI0NTgyZWE5NGE5ODA5YTkuLmMyYzQwZDNkMmExMzNm
MjgxMzQxNTYwMzRkZTU0MTQxYTRjZTljMzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdh
Y3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkVkaXRvckNsaWVudC5tbQorKysgYi9Tb3VyY2UvV2Vi
S2l0TGVnYWN5L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JDbGllbnQubW0KQEAgLTExMTYs
NyArMTExNiw3IEBAIHZvaWQgV2ViRWRpdG9yQ2xpZW50OjpyZXF1ZXN0Q2FuZGlkYXRlc0ZvclNl
bGVjdGlvbihjb25zdCBWaXNpYmxlU2VsZWN0aW9uJiBzZWxlCiAgICAgbV9wYXJhZ3JhcGhDb250
ZXh0Rm9yQ2FuZGlkYXRlUmVxdWVzdCA9IGNvbnRleHRGb3JDYW5kaWRhdGVSZXFldWVzdDsKIAog
ICAgIE5TVGV4dENoZWNraW5nVHlwZXMgY2hlY2tpbmdUeXBlcyA9IE5TVGV4dENoZWNraW5nVHlw
ZVNwZWxsaW5nIHwgTlNUZXh0Q2hlY2tpbmdUeXBlUmVwbGFjZW1lbnQgfCBOU1RleHRDaGVja2lu
Z1R5cGVDb3JyZWN0aW9uOwotICAgIGF1dG8gd2Vha0VkaXRvciA9IG1ha2VXZWFrUHRyKCp0aGlz
KTsKKyAgICBXZWFrUHRyIHdlYWtFZGl0b3IgeyAqdGhpcyB9OwogICAgIG1fbGFzdENhbmRpZGF0
ZVJlcXVlc3RTZXF1ZW5jZU51bWJlciA9IFtbTlNTcGVsbENoZWNrZXIgc2hhcmVkU3BlbGxDaGVj
a2VyXSByZXF1ZXN0Q2FuZGlkYXRlc0ZvclNlbGVjdGVkUmFuZ2U6bV9yYW5nZUZvckNhbmRpZGF0
ZXMgaW5TdHJpbmc6bV9wYXJhZ3JhcGhDb250ZXh0Rm9yQ2FuZGlkYXRlUmVxdWVzdC5nZXQoKSB0
eXBlczpjaGVja2luZ1R5cGVzIG9wdGlvbnM6bmlsIGluU3BlbGxEb2N1bWVudFdpdGhUYWc6c3Bl
bGxDaGVja2VyRG9jdW1lbnRUYWcoKSBjb21wbGV0aW9uSGFuZGxlcjpbd2Vha0VkaXRvcl0oTlNJ
bnRlZ2VyIHNlcXVlbmNlTnVtYmVyLCBOU0FycmF5PE5TVGV4dENoZWNraW5nUmVzdWx0ICo+ICpj
YW5kaWRhdGVzKSB7CiAgICAgICAgIFJ1bkxvb3A6Om1haW4oKS5kaXNwYXRjaChbd2Vha0VkaXRv
ciwgc2VxdWVuY2VOdW1iZXIsIGNhbmRpZGF0ZXMgPSByZXRhaW5QdHIoY2FuZGlkYXRlcyldIHsK
ICAgICAgICAgICAgIGlmICghd2Vha0VkaXRvcikKZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxv
ZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCA0MWZkNzc5Njg5OTk1YTdhM2MyYjdmOTk3OWVjNzhj
ZGE4YTg0MWExLi5iNGQ1YTcyZmRhZDJjNzg4M2I5OTYxZTczZjI5NGQyMDU2Zjc4MTRlIDEwMDY0
NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEs
MTkgQEAKKzIwMjEtMTAtMTMgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KKworICAg
ICAgICBEcm9wIG1ha2VXZWFrUHRyKCkgYW5kIHVzZSBXZWFrUHRyIHsgfSBkaXJlY3RseQorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjMxNjc5CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgRGFyaW4gQWRsZXIuCisKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtp
dHB5L3N0eWxlL2NoZWNrZXJzL2NwcC5weToKKyAgICAgICAgKGNoZWNrX2NhbGxvbm1haW50aHJl
YWQpOgorICAgICAgICAocHJvY2Vzc19saW5lKToKKyAgICAgICAgKGNoZWNrX21ha2V3ZWFrcHRy
KTogRGVsZXRlZC4KKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9PYnNlcnZlci5j
cHA6CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpURVNUKToKKyAgICAgICAgKiBUZXN0V2ViS2l0
QVBJL1Rlc3RzL1dURi9XZWFrUHRyLmNwcDoKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6Om1ha2VX
ZWFrUHRyKToKKwogMjAyMS0xMC0xMyAgSm9uYXRoYW4gQmVkYXJkICA8amJlZGFyZEBhcHBsZS5j
b20+CiAKICAgICAgICAgW3dlYmtpdHNjbXB5XSBMaXN0IHJldmlld2VycyBmb3IgcHVsbC1yZXF1
ZXN0CmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3N0eWxlL2NoZWNrZXJzL2Nw
cC5weSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvc3R5bGUvY2hlY2tlcnMvY3BwLnB5CmluZGV4
IGVkNmMxODE3N2UxNzg5YzdkMmM4NjUzMzQ1NzI1NTYwZjNlYWZkZWYuLjg5ODVmOTE5NzJlOWNj
ZjFiZDU1ZGVjMjI5OGFkYmYzNzg5ZTVhNjIgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Vi
a2l0cHkvc3R5bGUvY2hlY2tlcnMvY3BwLnB5CisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkv
c3R5bGUvY2hlY2tlcnMvY3BwLnB5CkBAIC0yNzQzLDIzICsyNzQzLDYgQEAgZGVmIGNoZWNrX2Nh
bGxvbm1haW50aHJlYWQoZmlsZW5hbWUsIGNsZWFuX2xpbmVzLCBsaW5lX251bWJlciwgZmlsZV9z
dGF0ZSwgZXJyb3IKICAgICAgICAgZXJyb3IobGluZV9udW1iZXIsICdydW50aW1lL2NhbGxvbm1h
aW50aHJlYWQnLCA0LCAiVXNlICdjYWxsT25NYWluUnVuTG9vcEFuZFdhaXQoKScgaW5zdGVhZCBv
ZiAnY2FsbE9uTWFpblRocmVhZEFuZFdhaXQoKScgaW4gU291cmNlL1dlYktpdC4iKQogCiAKLWRl
ZiBjaGVja19tYWtld2Vha3B0cihjbGVhbl9saW5lcywgbGluZV9udW1iZXIsIGZpbGVfc3RhdGUs
IGVycm9yKToKLSAgICAiIiJMb29rcyBmb3IgdXNlIG9mIGxlZ2FjeSAnbWFrZVdlYWtQdHIoKScu
Ci0KLSAgICBBcmdzOgotICAgICAgY2xlYW5fbGluZXM6IEEgQ2xlYW5zZWRMaW5lcyBpbnN0YW5j
ZSBjb250YWluaW5nIHRoZSBmaWxlLgotICAgICAgbGluZV9udW1iZXI6IFRoZSBudW1iZXIgb2Yg
dGhlIGxpbmUgdG8gY2hlY2suCi0gICAgICBmaWxlX3N0YXRlOiBBIF9GaWxlU3RhdGUgaW5zdGFu
Y2Ugd2hpY2ggbWFpbnRhaW5zIGluZm9ybWF0aW9uIGFib3V0Ci0gICAgICAgICAgICAgICAgICB0
aGUgc3RhdGUgb2YgdGhpbmdzIGluIHRoZSBmaWxlLgotICAgICAgZXJyb3I6IFRoZSBmdW5jdGlv
biB0byBjYWxsIHdpdGggYW55IGVycm9ycyBmb3VuZC4KLSAgICAiIiIKLQotICAgIGxpbmUgPSBj
bGVhbl9saW5lcy5lbGlkZWRbbGluZV9udW1iZXJdICAjIEdldCByaWQgb2YgY29tbWVudHMgYW5k
IHN0cmluZ3MuCi0gICAgdXNpbmdfbWFrZXdlYWtwdHIgPSBzZWFyY2gocidcYm1ha2VXZWFrUHRy
XHMqXCgnLCBsaW5lKQotICAgIGlmIHVzaW5nX21ha2V3ZWFrcHRyOgotICAgICAgICBlcnJvcihs
aW5lX251bWJlciwgJ3J1bnRpbWUvbWFrZXdlYWtwdHInLCA0LCAiVXNlIFdlYWtQdHIgeyB9IGRp
cmVjdGx5IGluc3RlYWQgb2YgJ21ha2VXZWFrUHRyKCknLiIpCi0KLQogZGVmIGNoZWNrX2lzbWFp
bnRocmVhZChmaWxlbmFtZSwgY2xlYW5fbGluZXMsIGxpbmVfbnVtYmVyLCBmaWxlX3N0YXRlLCBl
cnJvcik6CiAgICAgIiIiTG9va3MgZm9yIHVzZSBvZiAnaXNNYWluVGhyZWFkKCknIHdoaWNoIHNo
b3VsZCBiZSByZXBsYWNlZCB3aXRoICdpc01haW5SdW5Mb29wKCknLgogCkBAIC00NTIwLDcgKzQ1
MDMsNiBAQCBkZWYgcHJvY2Vzc19saW5lKGZpbGVuYW1lLCBmaWxlX2V4dGVuc2lvbiwKICAgICBj
aGVja19mb3Jfbm9uX3N0YW5kYXJkX2NvbnN0cnVjdHMoY2xlYW5fbGluZXMsIGxpbmUsIGNsYXNz
X3N0YXRlLCBlcnJvcikKICAgICBjaGVja19wb3NpeF90aHJlYWRpbmcoY2xlYW5fbGluZXMsIGxp
bmUsIGVycm9yKQogICAgIGNoZWNrX2ludmFsaWRfaW5jcmVtZW50KGNsZWFuX2xpbmVzLCBsaW5l
LCBlcnJvcikKLSAgICBjaGVja19tYWtld2Vha3B0cihjbGVhbl9saW5lcywgbGluZSwgZmlsZV9z
dGF0ZSwgZXJyb3IpCiAgICAgY2hlY2tfb3NfdmVyc2lvbl9jaGVja3MoZmlsZW5hbWUsIGNsZWFu
X2xpbmVzLCBsaW5lLCBlcnJvcikKICAgICBjaGVja19jYWxsb25tYWludGhyZWFkKGZpbGVuYW1l
LCBjbGVhbl9saW5lcywgbGluZSwgZmlsZV9zdGF0ZSwgZXJyb3IpCiAgICAgY2hlY2tfaXNtYWlu
dGhyZWFkKGZpbGVuYW1lLCBjbGVhbl9saW5lcywgbGluZSwgZmlsZV9zdGF0ZSwgZXJyb3IpCmRp
ZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9PYnNlcnZlci5jcHAgYi9U
b29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9PYnNlcnZlci5jcHAKaW5kZXggOTgyYmYyYjg3
MjRjZDdmODk5YzczYjI4NGJhMTk3OTc0YWRmNDMxNi4uMTBkMGU4YTRjMGU5MTliNDhmZDcwNTZh
ZTc2ZjgwOWJmZmNjOTQ1NSAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9X
VEYvT2JzZXJ2ZXIuY3BwCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL09ic2Vy
dmVyLmNwcApAQCAtNDksNyArNDksNyBAQCBURVNUKFdURl9PYnNlcnZlciwgV2VhaykKICAgICAg
ICAgdGVzdFZhbHVlID0gdmFsdWU7CiAgICAgfSk7CiAKLSAgICBhdXRvIHdlYWtPYnNlcnZlciA9
IG1ha2VXZWFrUHRyKHVuaXF1ZU9ic2VydmVyLmdldCgpKTsKKyAgICBXZWFrUHRyIHdlYWtPYnNl
cnZlciA9IHVuaXF1ZU9ic2VydmVyLmdldCgpOwogCiAgICAgQVNTRVJUX1RSVUUoc3RhdGljX2Nh
c3Q8Ym9vbD4od2Vha09ic2VydmVyKSk7CiAKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRB
UEkvVGVzdHMvV1RGL1dlYWtQdHIuY3BwIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYv
V2Vha1B0ci5jcHAKaW5kZXggN2I1NjQzNmQxZDI0Mjk2ZWM4NjU3YjZjMTA1YjkyZWUzYWNjM2Vm
Yi4uNTAzMjk2OTkwYmQ3OTA2MGM1NTg3MzIxMTMwNGE5ZjNhNDNhZmNkMCAxMDA2NDQKLS0tIGEv
VG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvV2Vha1B0ci5jcHAKKysrIGIvVG9vbHMvVGVz
dFdlYktpdEFQSS9UZXN0cy9XVEYvV2Vha1B0ci5jcHAKQEAgLTQ0LDYgKzQ0LDMyIEBAIHRlbXBs
YXRlPHR5cGVuYW1lIFQ+IHVzaW5nIFdlYWtIYXNoU2V0ID0gV1RGOjpXZWFrSGFzaFNldDxULCBX
ZWFrUHRyQ291bnRlcj47CiB0ZW1wbGF0ZTx0eXBlbmFtZSBUPiB1c2luZyBXZWFrUHRyID0gV1RG
OjpXZWFrUHRyPFQsIFdlYWtQdHJDb3VudGVyPjsKIHRlbXBsYXRlPHR5cGVuYW1lIFQ+IHVzaW5n
IFdlYWtQdHJGYWN0b3J5ID0gV1RGOjpXZWFrUHRyRmFjdG9yeTxULCBXZWFrUHRyQ291bnRlcj47
CiAKKy8vIEZJWE1FOiBEcm9wIHdoZW4gd2Ugc3VwcG9ydCBDKysyMC4gQysrMTcgZG9lcyBub3Qg
c3VwcG9ydCB0ZW1wbGF0ZSBwYXJhbWV0ZXIgZGVkdWN0aW9uIGZvciBhbGlhc2VzIGFuZCBXZWFr
UHRyIGlzIGFuIGFsaWFzIGluIHRoaXMgZmlsZS4KK3RlbXBsYXRlPHR5cGVuYW1lIFQsIHR5cGVu
YW1lID0gc3RkOjplbmFibGVfaWZfdDwhV1RGOjpJc1NtYXJ0UHRyPFQ+Ojp2YWx1ZT4+IGlubGlu
ZSBhdXRvIG1ha2VXZWFrUHRyKFQmIG9iamVjdCwgRW5hYmxlV2Vha1B0clRocmVhZGluZ0Fzc2Vy
dGlvbnMgZW5hYmxlV2Vha1B0clRocmVhZGluZ0Fzc2VydGlvbnMgPSBFbmFibGVXZWFrUHRyVGhy
ZWFkaW5nQXNzZXJ0aW9uczo6WWVzKQoreworICAgIHJldHVybiBvYmplY3Qud2Vha1B0ckZhY3Rv
cnkoKS50ZW1wbGF0ZSBjcmVhdGVXZWFrUHRyPFQ+KG9iamVjdCwgZW5hYmxlV2Vha1B0clRocmVh
ZGluZ0Fzc2VydGlvbnMpOworfQorCisvLyBGSVhNRTogRHJvcCB3aGVuIHdlIHN1cHBvcnQgQysr
MjAuIEMrKzE3IGRvZXMgbm90IHN1cHBvcnQgdGVtcGxhdGUgcGFyYW1ldGVyIGRlZHVjdGlvbiBm
b3IgYWxpYXNlcyBhbmQgV2Vha1B0ciBpcyBhbiBhbGlhcyBpbiB0aGlzIGZpbGUuCit0ZW1wbGF0
ZTx0eXBlbmFtZSBULCB0eXBlbmFtZSA9IHN0ZDo6ZW5hYmxlX2lmX3Q8IVdURjo6SXNTbWFydFB0
cjxUPjo6dmFsdWU+PiBpbmxpbmUgYXV0byBtYWtlV2Vha1B0cihUKiBwdHIsIEVuYWJsZVdlYWtQ
dHJUaHJlYWRpbmdBc3NlcnRpb25zIGVuYWJsZVdlYWtQdHJUaHJlYWRpbmdBc3NlcnRpb25zID0g
RW5hYmxlV2Vha1B0clRocmVhZGluZ0Fzc2VydGlvbnM6OlllcykgLT4gZGVjbHR5cGUobWFrZVdl
YWtQdHIoKnB0cikpCit7CisgICAgaWYgKCFwdHIpCisgICAgICAgIHJldHVybiB7IH07CisgICAg
cmV0dXJuIG1ha2VXZWFrUHRyKCpwdHIsIGVuYWJsZVdlYWtQdHJUaHJlYWRpbmdBc3NlcnRpb25z
KTsKK30KKworLy8gRklYTUU6IERyb3Agd2hlbiB3ZSBzdXBwb3J0IEMrKzIwLiBDKysxNyBkb2Vz
IG5vdCBzdXBwb3J0IHRlbXBsYXRlIHBhcmFtZXRlciBkZWR1Y3Rpb24gZm9yIGFsaWFzZXMgYW5k
IFdlYWtQdHIgaXMgYW4gYWxpYXMgaW4gdGhpcyBmaWxlLgordGVtcGxhdGU8dHlwZW5hbWUgVCwg
dHlwZW5hbWUgPSBzdGQ6OmVuYWJsZV9pZl90PCFXVEY6OklzU21hcnRQdHI8VD46OnZhbHVlPj4g
aW5saW5lIGF1dG8gbWFrZVdlYWtQdHIoY29uc3QgUmVmPFQ+JiBvYmplY3QsIEVuYWJsZVdlYWtQ
dHJUaHJlYWRpbmdBc3NlcnRpb25zIGVuYWJsZVdlYWtQdHJUaHJlYWRpbmdBc3NlcnRpb25zID0g
RW5hYmxlV2Vha1B0clRocmVhZGluZ0Fzc2VydGlvbnM6OlllcykKK3sKKyAgICByZXR1cm4gbWFr
ZVdlYWtQdHIob2JqZWN0LmdldCgpLCBlbmFibGVXZWFrUHRyVGhyZWFkaW5nQXNzZXJ0aW9ucyk7
Cit9CisKKy8vIEZJWE1FOiBEcm9wIHdoZW4gd2Ugc3VwcG9ydCBDKysyMC4gQysrMTcgZG9lcyBu
b3Qgc3VwcG9ydCB0ZW1wbGF0ZSBwYXJhbWV0ZXIgZGVkdWN0aW9uIGZvciBhbGlhc2VzIGFuZCBX
ZWFrUHRyIGlzIGFuIGFsaWFzIGluIHRoaXMgZmlsZS4KK3RlbXBsYXRlPHR5cGVuYW1lIFQsIHR5
cGVuYW1lID0gc3RkOjplbmFibGVfaWZfdDwhV1RGOjpJc1NtYXJ0UHRyPFQ+Ojp2YWx1ZT4+IGlu
bGluZSBhdXRvIG1ha2VXZWFrUHRyKGNvbnN0IFJlZlB0cjxUPiYgb2JqZWN0LCBFbmFibGVXZWFr
UHRyVGhyZWFkaW5nQXNzZXJ0aW9ucyBlbmFibGVXZWFrUHRyVGhyZWFkaW5nQXNzZXJ0aW9ucyA9
IEVuYWJsZVdlYWtQdHJUaHJlYWRpbmdBc3NlcnRpb25zOjpZZXMpCit7CisgICAgcmV0dXJuIG1h
a2VXZWFrUHRyKG9iamVjdC5nZXQoKSwgZW5hYmxlV2Vha1B0clRocmVhZGluZ0Fzc2VydGlvbnMp
OworfQorCiBzdHJ1Y3QgSW50IDogcHVibGljIENhbk1ha2VXZWFrUHRyPEludD4gewogICAgIElu
dChpbnQgaSkgOiBtX2koaSkgeyB9CiAgICAgb3BlcmF0b3IgaW50KCkgY29uc3QgeyByZXR1cm4g
bV9pOyB9Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>