<?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>156974</bug_id>
          
          <creation_ts>2016-04-25 05:56:02 -0700</creation_ts>
          <short_desc>Move WebErrors from WebProcess to Shared and get rid of ErrorsGtk in WebCore</short_desc>
          <delta_ts>2017-04-05 00:42:04 -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>WebCore Misc.</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>169672</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Claudio Saavedra">csaavedra</reporter>
          <assigned_to name="Claudio Saavedra">csaavedra</assigned_to>
          <cc>andersca</cc>
    
    <cc>cgarcia</cc>
    
    <cc>darin</cc>
    
    <cc>mcatanzaro</cc>
    
    <cc>sam</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1186910</commentid>
    <comment_count>0</comment_count>
    <who name="Claudio Saavedra">csaavedra</who>
    <bug_when>2016-04-25 05:56:02 -0700</bug_when>
    <thetext>The GTK+ and EFL ports have a WebCore/platform layer for errors, which basically wraps around ResourceError and friends. This is then used from the UI, web, etc. processes.

Then there is WebErrors in WebCoreSupport, which also wrap around ResourceError (although in the GTK+ and EFL port these use the above-mentioned errors as an intermediate layer). However, this is only available to the web process.

I would like to unify these into one set of WebErrors, available to processes. I suspect that a reasonable place for this would be Shared/WebErrors.h. This would involve moving the existing WebErrors in WebCoreSupport and merging them with the errors that the EFL and GTK+ ports have in WebCore.

Does this sound OK or am I missing something?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1186911</commentid>
    <comment_count>1</comment_count>
    <who name="Claudio Saavedra">csaavedra</who>
    <bug_when>2016-04-25 05:57:40 -0700</bug_when>
    <thetext>Adding Darin for comments.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1187090</commentid>
    <comment_count>2</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2016-04-25 15:50:00 -0700</bug_when>
    <thetext>I’m not familiar with any of this. I’ll have to read over the code to find out what this is about. Why isn’t this needed for the Cocoa ports? Maybe they use NSError?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1187290</commentid>
    <comment_count>3</comment_count>
    <who name="Claudio Saavedra">csaavedra</who>
    <bug_when>2016-04-26 00:18:55 -0700</bug_when>
    <thetext>(In reply to comment #2)
&gt; I’m not familiar with any of this. I’ll have to read over the code to find
&gt; out what this is about. Why isn’t this needed for the Cocoa ports? Maybe
&gt; they use NSError?

This is needed for Cocoa ports as well, just that the Cocoa ports use the WebErrors in WebCoreSupport, which underneath use NSError when possible or custom ResourceError otherwise. I&apos;d have to move the Cocoa errors to Shared, which is why I&apos;m asking if the plan sounds ok.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1187368</commentid>
    <comment_count>4</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2016-04-26 08:30:40 -0700</bug_when>
    <thetext>Anders, Sam, I think one of you would be the expert on this, right? Do we want to use these objects in both the UI and web processes?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1188189</commentid>
    <comment_count>5</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2016-04-28 02:26:57 -0700</bug_when>
    <thetext>Let me explain the situation. In WebCore FrameLoaderClient has pure virtual methods to allow the loader report errors for a given ResourceRequest/Response:

virtual ResourceError cancelledError(const ResourceRequest&amp;) = 0;
virtual ResourceError blockedError(const ResourceRequest&amp;) = 0;
virtual ResourceError blockedByContentBlockerError(const ResourceRequest&amp;) = 0;
virtual ResourceError cannotShowURLError(const ResourceRequest&amp;) = 0;
virtual ResourceError interruptedForPolicyChangeError(const ResourceRequest&amp;) = 0;
virtual ResourceError cannotShowMIMETypeError(const ResourceResponse&amp;) = 0;
virtual ResourceError fileDoesNotExistError(const ResourceResponse&amp;) = 0;
virtual ResourceError pluginWillHandleLoadError(const ResourceResponse&amp;) = 0;

This is implemented by wk1 ports and wk2 in their WebCoreSupport FrameLoaderclient implementation. The WebKit2 implementation uses WebErrors as a wrapper to leave the FrameLoaderClient implementation cross-platform. EFL and GTK+ use yet another abstraction, and the WebError in WebKit2 is just a wrapper around the Errors in WebCore platform. We use those errors in the UI process because we are exposing them in our public API, that&apos;s why we have the WebCore abstraction. But the network process is also using those errors, see for example NetworkLoad::cannotShowURL() which uses WebKit::cannotShowURLError(). That&apos;s kind of a layering violation, and the reason why we thought they could be moved to Shared. However, now that I have looked in more detail at this, I think we should have a common API in WebCore platform layer and use it everywhere. The only reason to have them in WebCoreSupport was because they were used to implement FrameLoaderClient, but those methods don&apos;t really need to be in the FrameLoaderClient. They are just creating ResourceErrors from a ResourceRequest/Response without using anything from the frame nor the frame loader. So, my proposal would be:

 - Remove the error methods from the FrameLoaderclient.
 - Move the common interface to WebCore platform.
 - Use the error methods from WebCore platform everywhere.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1195129</commentid>
    <comment_count>6</comment_count>
      <attachid>279481</attachid>
    <who name="Claudio Saavedra">csaavedra</who>
    <bug_when>2016-05-20 06:26:21 -0700</bug_when>
    <thetext>Created attachment 279481
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1195131</commentid>
    <comment_count>7</comment_count>
      <attachid>279481</attachid>
    <who name="Claudio Saavedra">csaavedra</who>
    <bug_when>2016-05-20 07:25:12 -0700</bug_when>
    <thetext>Comment on attachment 279481
Patch

I have not done the needed changes to the win port yet, so it will probably break the build. Please review the idea anyway, I don&apos;t want to work further on this if it&apos;s going in the wrong direction.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1195791</commentid>
    <comment_count>8</comment_count>
      <attachid>279481</attachid>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2016-05-24 02:27:08 -0700</bug_when>
    <thetext>Comment on attachment 279481
Patch

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

This looks good to me in general, this is exactly what I thought when I looked in detail at the errors code.

&gt; Source/WebCore/PlatformEfl.cmake:85
&gt; +    platform/Errors.cpp

This should be added to the CMakeList.txt file since all platforms should provide their implementation, no? The methods in frame client were all pure virtual.

&gt; Source/WebCore/platform/unix/ErrorsUnix.h:46
&gt; +// Sync&apos;d with Mac&apos;s WebKit Errors.

Why don&apos;t we make these enums common to all ports? We are all sharing the same numbers, making them common we don&apos;t need to worry about keeping them in sync anymore. We could also avoid having specific header for ErrorsUnix.h</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1195847</commentid>
    <comment_count>9</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2016-05-24 08:42:41 -0700</bug_when>
    <thetext>I think the confusion here comes from the original architecture of WebKit. WebCore itself is not supposed to create public API; WebKit adds the public API on top of underpinnings inside WebCore. The one notable exception is the bindings.

So the desire to have common error codes in WebCore that are part of the API of WebKit on all platforms conflicts with this design goal. I am not sure exactly how to achieve this. Perhaps error codes should be another exception.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1198909</commentid>
    <comment_count>10</comment_count>
      <attachid>280439</attachid>
    <who name="Claudio Saavedra">csaavedra</who>
    <bug_when>2016-06-03 05:11:02 -0700</bug_when>
    <thetext>Created attachment 280439
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1201204</commentid>
    <comment_count>11</comment_count>
      <attachid>281003</attachid>
    <who name="Claudio Saavedra">csaavedra</who>
    <bug_when>2016-06-10 02:24:04 -0700</bug_when>
    <thetext>Created attachment 281003
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1203735</commentid>
    <comment_count>12</comment_count>
    <who name="Claudio Saavedra">csaavedra</who>
    <bug_when>2016-06-20 05:03:22 -0700</bug_when>
    <thetext>Now that this builds in all platforms, any chance to get a review?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1219577</commentid>
    <comment_count>13</comment_count>
      <attachid>285909</attachid>
    <who name="Claudio Saavedra">csaavedra</who>
    <bug_when>2016-08-12 04:48:51 -0700</bug_when>
    <thetext>Created attachment 285909
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1219578</commentid>
    <comment_count>14</comment_count>
      <attachid>285910</attachid>
    <who name="Claudio Saavedra">csaavedra</who>
    <bug_when>2016-08-12 05:07:24 -0700</bug_when>
    <thetext>Created attachment 285910
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1219579</commentid>
    <comment_count>15</comment_count>
      <attachid>285911</attachid>
    <who name="Claudio Saavedra">csaavedra</who>
    <bug_when>2016-08-12 05:23:46 -0700</bug_when>
    <thetext>Created attachment 285911
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1219580</commentid>
    <comment_count>16</comment_count>
      <attachid>285912</attachid>
    <who name="Claudio Saavedra">csaavedra</who>
    <bug_when>2016-08-12 05:49:55 -0700</bug_when>
    <thetext>Created attachment 285912
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1220010</commentid>
    <comment_count>17</comment_count>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2016-08-15 01:57:08 -0700</bug_when>
    <thetext>You got a review here:

(In reply to comment #9)
&gt; I think the confusion here comes from the original architecture of WebKit.
&gt; WebCore itself is not supposed to create public API; WebKit adds the public
&gt; API on top of underpinnings inside WebCore. The one notable exception is the
&gt; bindings.
&gt; 
&gt; So the desire to have common error codes in WebCore that are part of the API
&gt; of WebKit on all platforms conflicts with this design goal. I am not sure
&gt; exactly how to achieve this. Perhaps error codes should be another exception.

Clearly some further discussion is needed on this.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1226556</commentid>
    <comment_count>18</comment_count>
      <attachid>285912</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2016-09-05 20:25:24 -0700</bug_when>
    <thetext>Comment on attachment 285912
Patch

I don&apos;t see the value of doing this, at least at this time.  It introduces layering violations by making WebCore depend on WebKit concepts (e.g. the webKitErrorDomain).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1288094</commentid>
    <comment_count>19</comment_count>
      <attachid>304508</attachid>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2017-03-15 09:58:44 -0700</bug_when>
    <thetext>Created attachment 304508
New patch

This is the opposite approach, instead of unifying errors in WebCore, they are removed from WebCore and unified in WebKit2, but moved to Shared and making it possible to share more code.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1288095</commentid>
    <comment_count>20</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2017-03-15 10:00:32 -0700</bug_when>
    <thetext>Patch doesn&apos;t apply because it depends on bug #169672</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1288154</commentid>
    <comment_count>21</comment_count>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2017-03-15 11:34:45 -0700</bug_when>
    <thetext>We need an owner to review this please, maybe Darin or Sam?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1290032</commentid>
    <comment_count>22</comment_count>
      <attachid>305092</attachid>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2017-03-22 03:00:48 -0700</bug_when>
    <thetext>Created attachment 305092
Rebased patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1290037</commentid>
    <comment_count>23</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2017-03-22 03:21:07 -0700</bug_when>
    <thetext>hhm, I don&apos;t know why GTK+ EWS fails to build, it works locally.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1290038</commentid>
    <comment_count>24</comment_count>
      <attachid>305093</attachid>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2017-03-22 03:25:13 -0700</bug_when>
    <thetext>Created attachment 305093
Try to fix GTK+ build</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1293578</commentid>
    <comment_count>25</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2017-04-02 22:38:07 -0700</bug_when>
    <thetext>Ping reviewers.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1293632</commentid>
    <comment_count>26</comment_count>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2017-04-03 06:57:52 -0700</bug_when>
    <thetext>You need to ping owners specifically.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1294424</commentid>
    <comment_count>27</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2017-04-05 00:42:04 -0700</bug_when>
    <thetext>Committed r214934: &lt;http://trac.webkit.org/changeset/214934&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>279481</attachid>
            <date>2016-05-20 06:26:21 -0700</date>
            <delta_ts>2016-06-03 05:10:55 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-156974-20160520162720.patch</filename>
            <type>text/plain</type>
            <size>121293</size>
            <attacher name="Claudio Saavedra">csaavedra</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjAxMjEyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZjYxMWI5OWJlZjkwMmZm
OGFiMmFjMzIyZWE2MTE0MWFlMDU2OTczNC4uNzFhNGJjYzRhOTlkNzg2MTdjMmVhNTM1YzZjYzIz
YTBmZDdkNGQzMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEwNyBAQAorMjAxNi0wNS0yMCAgQ2xh
dWRpbyBTYWF2ZWRyYSAgPGNzYWF2ZWRyYUBpZ2FsaWEuY29tPgorCisgICAgICAgIFVuaWZ5aW5n
IEVycm9ycy9XZWJFcnJvcnMgaW50byBXZWJDb3JlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNTY5NzQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICBGcmFtZUxvYWRlckNsaWVudCBlcnJvciBtZXRob2RzIGlu
IFdlYkNvcmUgYW5kIFdlYkVycm9ycyBpbiBXSzIgYXJlCisgICAgICAgIHJlZHVuZGFudC4gRnVy
dGhlcm1vcmUsIEZyYW1lTG9hZGVyQ2xpZW50IGVycm9yIG1ldGhvZHMgZG8gbm90IGRlcGVuZAor
ICAgICAgICBpbiB0aGUgbG9hZGVyIGNsaWVudCBpbnN0YW5jZSBhdCBhbGwuCisKKyAgICAgICAg
UmVtb3ZlIHRoZSBlcnJvciBtZXRob2RzIGZyb20gRnJhbWVMb2FkZXJDbGllbnQgYW5kIGFkb3B0
IHRoZSBXZWJFcnJvcnMKKyAgICAgICAgZnJvbSBXSzIgaW50byBXZWJDb3JlLCBzdGFuZGFsb25l
IG1ldGhvZHMuIE1vdmUgdGhlIEVGTCwgR1RLLCBhbmQgTWFjIGltcGxlbWVudGF0aW9ucworICAg
ICAgICB0byBXZWJDb3JlL3BsYXRmb3JtLCBhbmQgdXBkYXRlIHRoZSBjb2RlIGV2ZXJ5d2hlcmUg
YWNjb3JkaW5nbHkuCisKKyAgICAgICAgKiBQbGF0Zm9ybUVmbC5jbWFrZToKKyAgICAgICAgKiBQ
bGF0Zm9ybUdUSy5jbWFrZToKKyAgICAgICAgKiBQbGF0Zm9ybU1hYy5jbWFrZToKKyAgICAgICAg
KiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogbG9hZGVyL0Rv
Y3VtZW50TG9hZGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50TG9hZGVyOjpjb250
aW51ZUFmdGVyQ29udGVudFBvbGljeSk6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudExvYWRl
cjo6aW50ZXJydXB0ZWRGb3JQb2xpY3lDaGFuZ2VFcnJvcik6CisgICAgICAgIChXZWJDb3JlOjpE
b2N1bWVudExvYWRlcjo6c3RhcnRMb2FkaW5nTWFpblJlc291cmNlKToKKyAgICAgICAgKiBsb2Fk
ZXIvRW1wdHlDbGllbnRzLmg6CisgICAgICAgICogbG9hZGVyL0ZyYW1lTG9hZGVyLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OkZyYW1lTG9hZGVyOjpjYW5jZWxsZWRFcnJvcik6CisgICAgICAgIChX
ZWJDb3JlOjpGcmFtZUxvYWRlcjo6YmxvY2tlZEVycm9yKToKKyAgICAgICAgKFdlYkNvcmU6OkZy
YW1lTG9hZGVyOjpibG9ja2VkQnlDb250ZW50QmxvY2tlckVycm9yKTogRGVsZXRlZC4KKyAgICAg
ICAgKiBsb2FkZXIvRnJhbWVMb2FkZXIuaDoKKyAgICAgICAgKiBsb2FkZXIvRnJhbWVMb2FkZXJD
bGllbnQuaDoKKyAgICAgICAgKiBsb2FkZXIvTmV0c2NhcGVQbHVnSW5TdHJlYW1Mb2FkZXIuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6TmV0c2NhcGVQbHVnSW5TdHJlYW1Mb2FkZXI6OmRpZFJlY2Vp
dmVSZXNwb25zZSk6CisgICAgICAgICogbG9hZGVyL1BvbGljeUNoZWNrZXIuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6UG9saWN5Q2hlY2tlcjo6Y2Fubm90U2hvd01JTUVUeXBlKToKKyAgICAgICAg
KFdlYkNvcmU6OlBvbGljeUNoZWNrZXI6OmNvbnRpbnVlQWZ0ZXJOYXZpZ2F0aW9uUG9saWN5KToK
KyAgICAgICAgKiBsb2FkZXIvUmVzb3VyY2VMb2FkZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
UmVzb3VyY2VMb2FkZXI6OmJsb2NrZWRFcnJvcik6CisgICAgICAgIChXZWJDb3JlOjpSZXNvdXJj
ZUxvYWRlcjo6YmxvY2tlZEJ5Q29udGVudEJsb2NrZXJFcnJvcik6CisgICAgICAgIChXZWJDb3Jl
OjpSZXNvdXJjZUxvYWRlcjo6Y2Fubm90U2hvd1VSTEVycm9yKToKKyAgICAgICAgKiBsb2FkZXIv
YXBwY2FjaGUvQXBwbGljYXRpb25DYWNoZUhvc3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6QXBw
bGljYXRpb25DYWNoZUhvc3Q6Om1heWJlTG9hZFN5bmNocm9ub3VzbHkpOgorICAgICAgICAqIHBs
YXRmb3JtL0Vycm9ycy5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6d2ViS2l0RXJyb3JE
b21haW4pOgorICAgICAgICAqIHBsYXRmb3JtL0Vycm9ycy5oOiBBZGRlZC4KKyAgICAgICAgKiBw
bGF0Zm9ybS9lZmwvRXJyb3JzRWZsLmNwcDogUmVtb3ZlZC4KKyAgICAgICAgKFdlYkNvcmU6OmNh
bmNlbGxlZEVycm9yKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OmJsb2NrZWRFcnJvcik6
IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpibG9ja2VkQnlDb250ZW50QmxvY2tlckVycm9y
KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OmNhbm5vdFNob3dVUkxFcnJvcik6IERlbGV0
ZWQuCisgICAgICAgIChXZWJDb3JlOjppbnRlcnJ1cHRlZEZvclBvbGljeUNoYW5nZUVycm9yKTog
RGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OmNhbm5vdFNob3dNSU1FVHlwZUVycm9yKTogRGVs
ZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OmZpbGVEb2VzTm90RXhpc3RFcnJvcik6IERlbGV0ZWQu
CisgICAgICAgIChXZWJDb3JlOjpwbHVnaW5XaWxsSGFuZGxlTG9hZEVycm9yKTogRGVsZXRlZC4K
KyAgICAgICAgKFdlYkNvcmU6OmRvd25sb2FkTmV0d29ya0Vycm9yKTogRGVsZXRlZC4KKyAgICAg
ICAgKFdlYkNvcmU6OmRvd25sb2FkQ2FuY2VsbGVkQnlVc2VyRXJyb3IpOiBEZWxldGVkLgorICAg
ICAgICAoV2ViQ29yZTo6ZG93bmxvYWREZXN0aW5hdGlvbkVycm9yKTogRGVsZXRlZC4KKyAgICAg
ICAgKFdlYkNvcmU6OnByaW50RXJyb3IpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6cHJp
bnRlck5vdEZvdW5kRXJyb3IpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6aW52YWxpZFBh
Z2VSYW5nZVRvUHJpbnQpOiBEZWxldGVkLgorICAgICAgICAqIHBsYXRmb3JtL2VmbC9FcnJvcnNF
ZmwuaDogUmVtb3ZlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9ndGsvRXJyb3JzR3RrLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OmNhbmNlbGxlZEVycm9yKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNv
cmU6OmJsb2NrZWRFcnJvcik6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpibG9ja2VkQnlD
b250ZW50QmxvY2tlckVycm9yKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OmNhbm5vdFNo
b3dVUkxFcnJvcik6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjppbnRlcnJ1cHRlZEZvclBv
bGljeUNoYW5nZUVycm9yKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OmNhbm5vdFNob3dN
SU1FVHlwZUVycm9yKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OmZpbGVEb2VzTm90RXhp
c3RFcnJvcik6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpwbHVnaW5XaWxsSGFuZGxlTG9h
ZEVycm9yKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OmRvd25sb2FkTmV0d29ya0Vycm9y
KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OmRvd25sb2FkQ2FuY2VsbGVkQnlVc2VyRXJy
b3IpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6ZG93bmxvYWREZXN0aW5hdGlvbkVycm9y
KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OnByaW50RXJyb3IpOiBEZWxldGVkLgorICAg
ICAgICAoV2ViQ29yZTo6cHJpbnRlck5vdEZvdW5kRXJyb3IpOiBEZWxldGVkLgorICAgICAgICAo
V2ViQ29yZTo6aW52YWxpZFBhZ2VSYW5nZVRvUHJpbnQpOiBEZWxldGVkLgorICAgICAgICAqIHBs
YXRmb3JtL21hYy9FcnJvcnNNYWMubW06IFJlbmFtZWQgZnJvbSBTb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL1dlYkNvcmVTdXBwb3J0L21hYy9XZWJFcnJvcnNNYWMubW0uCisgICAgICAgIChXZWJD
b3JlOjpjcmVhdGVOU0Vycm9yKToKKyAgICAgICAgKFdlYkNvcmU6OmNhbmNlbGxlZEVycm9yKToK
KyAgICAgICAgKFdlYkNvcmU6OmZpbGVEb2VzTm90RXhpc3RFcnJvcik6CisgICAgICAgIChXZWJD
b3JlOjpibG9ja2VkRXJyb3IpOgorICAgICAgICAoV2ViQ29yZTo6YmxvY2tlZEJ5Q29udGVudEJs
b2NrZXJFcnJvcik6CisgICAgICAgIChXZWJDb3JlOjpjYW5ub3RTaG93VVJMRXJyb3IpOgorICAg
ICAgICAoV2ViQ29yZTo6aW50ZXJydXB0ZWRGb3JQb2xpY3lDaGFuZ2VFcnJvcik6CisgICAgICAg
IChXZWJDb3JlOjpjYW5ub3RTaG93TUlNRVR5cGVFcnJvcik6CisgICAgICAgIChXZWJDb3JlOjpw
bHVnaW5XaWxsSGFuZGxlTG9hZEVycm9yKToKKyAgICAgICAgKFdlYkNvcmU6OmludGVybmFsRXJy
b3IpOgorICAgICAgICAqIHBsYXRmb3JtL3VuaXgvRXJyb3JzVW5peC5jcHA6IFJlbmFtZWQgZnJv
bSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvRXJyb3JzR3RrLmNwcC4KKyAgICAgICAgKFdl
YkNvcmU6OmNhbmNlbGxlZEVycm9yKToKKyAgICAgICAgKFdlYkNvcmU6OmJsb2NrZWRFcnJvcik6
CisgICAgICAgIChXZWJDb3JlOjpibG9ja2VkQnlDb250ZW50QmxvY2tlckVycm9yKToKKyAgICAg
ICAgKFdlYkNvcmU6OmNhbm5vdFNob3dVUkxFcnJvcik6CisgICAgICAgIChXZWJDb3JlOjppbnRl
cnJ1cHRlZEZvclBvbGljeUNoYW5nZUVycm9yKToKKyAgICAgICAgKFdlYkNvcmU6OmNhbm5vdFNo
b3dNSU1FVHlwZUVycm9yKToKKyAgICAgICAgKFdlYkNvcmU6OmZpbGVEb2VzTm90RXhpc3RFcnJv
cik6CisgICAgICAgIChXZWJDb3JlOjpwbHVnaW5XaWxsSGFuZGxlTG9hZEVycm9yKToKKyAgICAg
ICAgKFdlYkNvcmU6OmRvd25sb2FkTmV0d29ya0Vycm9yKToKKyAgICAgICAgKFdlYkNvcmU6OmRv
d25sb2FkQ2FuY2VsbGVkQnlVc2VyRXJyb3IpOgorICAgICAgICAoV2ViQ29yZTo6ZG93bmxvYWRE
ZXN0aW5hdGlvbkVycm9yKToKKyAgICAgICAgKFdlYkNvcmU6OnByaW50RXJyb3IpOgorICAgICAg
ICAoV2ViQ29yZTo6cHJpbnRlck5vdEZvdW5kRXJyb3IpOgorICAgICAgICAoV2ViQ29yZTo6aW52
YWxpZFBhZ2VSYW5nZVRvUHJpbnQpOgorICAgICAgICAoV2ViQ29yZTo6aW50ZXJuYWxFcnJvcik6
CisgICAgICAgICogcGxhdGZvcm0vdW5peC9FcnJvcnNVbml4Lmg6IFJlbmFtZWQgZnJvbSBTb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvRXJyb3JzR3RrLmguCisKIDIwMTYtMDUtMTkgIFRpbSBI
b3J0b24gIDx0aW1vdGh5X2hvcnRvbkBhcHBsZS5jb20+CiAKICAgICAgICAgUkVHUkVTU0lPTiAo
cjIwMDYzOCk6IC1bRE9NSFRNTFZpZGVvRWxlbWVudCBwbGF5XSBkaXNhcHBlYXJlZCBmcm9tIE9i
akMgYmluZGluZ3MKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZyBiL1Nv
dXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZwppbmRleCA0ZWUzOTkzOGZhZTNhOTU5NmVkOGE3ZWEy
NjE0OTcxMmQ1MzIzNzVlLi41OWRhMDRkMTY4NDMxNDcwZWYwNjY1ZjNiZmI5MjE0ZDUxNGMyM2Ew
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dl
YktpdC9tYWMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzMgQEAKKzIwMTYtMDUtMjAgIENsYXVkaW8g
U2FhdmVkcmEgIDxjc2FhdmVkcmFAaWdhbGlhLmNvbT4KKworICAgICAgICBVbmlmeWluZyBFcnJv
cnMvV2ViRXJyb3JzIGludG8gV2ViQ29yZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MTU2OTc0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgRnJhbWVMb2FkZXJDbGllbnQgZXJyb3IgbWV0aG9kcyBpbiBXZWJD
b3JlIGFuZCBXZWJFcnJvcnMgaW4gV0syIGFyZQorICAgICAgICByZWR1bmRhbnQuIEZ1cnRoZXJt
b3JlLCBGcmFtZUxvYWRlckNsaWVudCBlcnJvciBtZXRob2RzIGRvIG5vdCBkZXBlbmQKKyAgICAg
ICAgaW4gdGhlIGxvYWRlciBjbGllbnQgaW5zdGFuY2UgYXQgYWxsLgorCisgICAgICAgIFJlbW92
ZSB0aGUgZXJyb3IgbWV0aG9kcyBmcm9tIEZyYW1lTG9hZGVyQ2xpZW50IGFuZCBhZG9wdCB0aGUg
V2ViRXJyb3JzCisgICAgICAgIGZyb20gV0syIGludG8gV2ViQ29yZSwgc3RhbmRhbG9uZSBtZXRo
b2RzLiBNb3ZlIHRoZSBFRkwsIEdUSywgYW5kIE1hYyBpbXBsZW1lbnRhdGlvbnMKKyAgICAgICAg
dG8gV2ViQ29yZS9wbGF0Zm9ybSwgYW5kIHVwZGF0ZSB0aGUgY29kZSBldmVyeXdoZXJlIGFjY29y
ZGluZ2x5LgorCisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQu
aDoKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5tbToKKyAg
ICAgICAgKFdlYkZyYW1lTG9hZGVyQ2xpZW50OjpjYW5jZWxsZWRFcnJvcik6IERlbGV0ZWQuCisg
ICAgICAgIChXZWJGcmFtZUxvYWRlckNsaWVudDo6YmxvY2tlZEVycm9yKTogRGVsZXRlZC4KKyAg
ICAgICAgKFdlYkZyYW1lTG9hZGVyQ2xpZW50OjpibG9ja2VkQnlDb250ZW50QmxvY2tlckVycm9y
KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkZyYW1lTG9hZGVyQ2xpZW50OjpjYW5ub3RTaG93VVJM
RXJyb3IpOiBEZWxldGVkLgorICAgICAgICAoV2ViRnJhbWVMb2FkZXJDbGllbnQ6OmludGVycnVw
dGVkRm9yUG9saWN5Q2hhbmdlRXJyb3IpOiBEZWxldGVkLgorICAgICAgICAoV2ViRnJhbWVMb2Fk
ZXJDbGllbnQ6OmNhbm5vdFNob3dNSU1FVHlwZUVycm9yKTogRGVsZXRlZC4KKyAgICAgICAgKFdl
YkZyYW1lTG9hZGVyQ2xpZW50OjpmaWxlRG9lc05vdEV4aXN0RXJyb3IpOiBEZWxldGVkLgorICAg
ICAgICAoV2ViRnJhbWVMb2FkZXJDbGllbnQ6OnBsdWdpbldpbGxIYW5kbGVMb2FkRXJyb3IpOiBE
ZWxldGVkLgorICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTmV0d29ya2luZ0NvbnRl
eHQubW06CisgICAgICAgIChXZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0OjpibG9ja2VkRXJyb3Ip
OgorICAgICAgICAqIFdlYlZpZXcvV2ViSFRNTFJlcHJlc2VudGF0aW9uLm1tOgorICAgICAgICAo
LVtXZWJIVE1MUmVwcmVzZW50YXRpb24gcmVjZWl2ZWREYXRhOndpdGhEYXRhU291cmNlOl0pOgor
CiAyMDE2LTA1LTE5ICBFbnJpY2EgQ2FzdWNjaSAgPGVucmljYUBhcHBsZS5jb20+CiAKICAgICAg
ICAgRHJhZyBjYW5ub3Qgc3RhcnQgaWYgbm8gZHJhZyBkYXRhIGlzIGF2YWlsYWJsZSBpbiB0aGUg
UGFzdGVib2FyZC4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJj
ZS9XZWJLaXQyL0NoYW5nZUxvZwppbmRleCBjYzU5ZGM5NTAxODg1NDgyM2UxZmNjMzFiYjdkODUx
N2M2Y2RjMmQ4Li41NTE2YTVlMzNhYTBkNjFkYjk5YjAzZTE2YzI2YTkxYmU0ZTcyNzFmIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsOTMgQEAKKzIwMTYtMDUtMjAgIENsYXVkaW8gU2FhdmVkcmEgIDxj
c2FhdmVkcmFAaWdhbGlhLmNvbT4KKworICAgICAgICBVbmlmeWluZyBFcnJvcnMvV2ViRXJyb3Jz
IGludG8gV2ViQ29yZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MTU2OTc0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgRnJhbWVMb2FkZXJDbGllbnQgZXJyb3IgbWV0aG9kcyBpbiBXZWJDb3JlIGFuZCBXZWJF
cnJvcnMgaW4gV0syIGFyZQorICAgICAgICByZWR1bmRhbnQuIEZ1cnRoZXJtb3JlLCBGcmFtZUxv
YWRlckNsaWVudCBlcnJvciBtZXRob2RzIGRvIG5vdCBkZXBlbmQKKyAgICAgICAgaW4gdGhlIGxv
YWRlciBjbGllbnQgaW5zdGFuY2UgYXQgYWxsLgorCisgICAgICAgIFJlbW92ZSB0aGUgZXJyb3Ig
bWV0aG9kcyBmcm9tIEZyYW1lTG9hZGVyQ2xpZW50IGFuZCBhZG9wdCB0aGUgV2ViRXJyb3JzCisg
ICAgICAgIGZyb20gV0syIGludG8gV2ViQ29yZSwgc3RhbmRhbG9uZSBtZXRob2RzLiBNb3ZlIHRo
ZSBFRkwsIEdUSywgYW5kIE1hYyBpbXBsZW1lbnRhdGlvbnMKKyAgICAgICAgdG8gV2ViQ29yZS9w
bGF0Zm9ybSwgYW5kIHVwZGF0ZSB0aGUgY29kZSBldmVyeXdoZXJlIGFjY29yZGluZ2x5LgorCisg
ICAgICAgICogTmV0d29ya1Byb2Nlc3MvRG93bmxvYWRzL2VmbC9Eb3dubG9hZFNvdXBFcnJvcnNF
ZmwuY3BwOiBSZW1vdmVkLgorICAgICAgICAoV2ViS2l0OjpwbGF0Zm9ybURvd25sb2FkTmV0d29y
a0Vycm9yKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYktpdDo6cGxhdGZvcm1Eb3dubG9hZERlc3Rp
bmF0aW9uRXJyb3IpOiBEZWxldGVkLgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL0Rvd25sb2Fk
cy9ndGsvRG93bmxvYWRTb3VwRXJyb3JzR3RrLmNwcDoKKyAgICAgICAgKFdlYktpdDo6cGxhdGZv
cm1Eb3dubG9hZE5ldHdvcmtFcnJvcik6IERlbGV0ZWQuCisgICAgICAgIChXZWJLaXQ6OnBsYXRm
b3JtRG93bmxvYWREZXN0aW5hdGlvbkVycm9yKTogRGVsZXRlZC4KKyAgICAgICAgKiBOZXR3b3Jr
UHJvY2Vzcy9Eb3dubG9hZHMvc291cC9Eb3dubG9hZFNvdXBFcnJvcnMuY3BwOiBSZW5hbWVkIGZy
b20gU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvRG93bmxvYWRzL2d0ay9Eb3dubG9hZFNv
dXBFcnJvcnNHdGsuY3BwLgorICAgICAgICAoV2ViS2l0OjpwbGF0Zm9ybURvd25sb2FkTmV0d29y
a0Vycm9yKToKKyAgICAgICAgKFdlYktpdDo6cGxhdGZvcm1Eb3dubG9hZERlc3RpbmF0aW9uRXJy
b3IpOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtMb2FkLmNwcDoKKyAgICAgICAg
KFdlYktpdDo6TmV0d29ya0xvYWQ6Ondhc0Jsb2NrZWQpOgorICAgICAgICAoV2ViS2l0OjpOZXR3
b3JrTG9hZDo6Y2Fubm90U2hvd1VSTCk6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvbWFjL1Jl
bW90ZU5ldHdvcmtpbmdDb250ZXh0Lm1tOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVOZXR3b3Jr
aW5nQ29udGV4dDo6YmxvY2tlZEVycm9yKToKKyAgICAgICAgKiBQbGF0Zm9ybUVmbC5jbWFrZToK
KyAgICAgICAgKiBQbGF0Zm9ybUdUSy5jbWFrZToKKyAgICAgICAgKiBQbGF0Zm9ybU1hYy5jbWFr
ZToKKyAgICAgICAgKiBTaGFyZWQvQVBJL0FQSUVycm9yLmNwcDoKKyAgICAgICAgKEFQSTo6RXJy
b3I6OndlYktpdEVycm9yRG9tYWluKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2VmbC9ld2tf
ZXJyb3IuY3BwOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdERvd25sb2FkLmNw
cDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRFcnJvci5jcHA6CisgICAgICAg
ICogVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0UHJpdmF0ZS5jcHA6CisgICAgICAgICogVUlQcm9j
ZXNzL05ldHdvcmsvQ3VzdG9tUHJvdG9jb2xzL3NvdXAvV2ViU291cEN1c3RvbVByb3RvY29sUmVx
dWVzdE1hbmFnZXIuY3BwOgorICAgICAgICAqIFdlYktpdDIueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvajoKKyAgICAgICAgKiBXZWJQcm9jZXNzL05ldHdvcmsvV2ViTG9hZGVyU3RyYXRlZ3kuY3Bw
OgorICAgICAgICAqIFdlYlByb2Nlc3MvTmV0d29yay9XZWJSZXNvdXJjZUxvYWRlci5jcHA6Cisg
ICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJFcnJvcnMuaDogUmVtb3ZlZC4K
KyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50
LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViRnJhbWVMb2FkZXJDbGllbnQ6OnNob3VsZEZhbGxC
YWNrKToKKyAgICAgICAgKFdlYktpdDo6V2ViRnJhbWVMb2FkZXJDbGllbnQ6OmNhbmNlbGxlZEVy
cm9yKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYktpdDo6V2ViRnJhbWVMb2FkZXJDbGllbnQ6OmJs
b2NrZWRFcnJvcik6IERlbGV0ZWQuCisgICAgICAgIChXZWJLaXQ6OldlYkZyYW1lTG9hZGVyQ2xp
ZW50OjpibG9ja2VkQnlDb250ZW50QmxvY2tlckVycm9yKTogRGVsZXRlZC4KKyAgICAgICAgKFdl
YktpdDo6V2ViRnJhbWVMb2FkZXJDbGllbnQ6OmNhbm5vdFNob3dVUkxFcnJvcik6IERlbGV0ZWQu
CisgICAgICAgIChXZWJLaXQ6OldlYkZyYW1lTG9hZGVyQ2xpZW50OjppbnRlcnJ1cHRlZEZvclBv
bGljeUNoYW5nZUVycm9yKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYktpdDo6V2ViRnJhbWVMb2Fk
ZXJDbGllbnQ6OmNhbm5vdFNob3dNSU1FVHlwZUVycm9yKTogRGVsZXRlZC4KKyAgICAgICAgKFdl
YktpdDo6V2ViRnJhbWVMb2FkZXJDbGllbnQ6OmZpbGVEb2VzTm90RXhpc3RFcnJvcik6IERlbGV0
ZWQuCisgICAgICAgIChXZWJLaXQ6OldlYkZyYW1lTG9hZGVyQ2xpZW50OjpwbHVnaW5XaWxsSGFu
ZGxlTG9hZEVycm9yKTogRGVsZXRlZC4KKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBw
b3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50Lmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3Jl
U3VwcG9ydC9XZWJQbGF0Zm9ybVN0cmF0ZWdpZXMuY3BwOgorICAgICAgICAqIFdlYlByb2Nlc3Mv
V2ViQ29yZVN1cHBvcnQvZWZsL1dlYkVycm9yc0VmbC5jcHA6IFJlbW92ZWQuCisgICAgICAgIChX
ZWJLaXQ6OmNhbmNlbGxlZEVycm9yKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYktpdDo6YmxvY2tl
ZEVycm9yKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYktpdDo6YmxvY2tlZEJ5Q29udGVudEJsb2Nr
ZXJFcnJvcik6IERlbGV0ZWQuCisgICAgICAgIChXZWJLaXQ6OmNhbm5vdFNob3dVUkxFcnJvcik6
IERlbGV0ZWQuCisgICAgICAgIChXZWJLaXQ6OmludGVycnVwdGVkRm9yUG9saWN5Q2hhbmdlRXJy
b3IpOiBEZWxldGVkLgorICAgICAgICAoV2ViS2l0OjpjYW5ub3RTaG93TUlNRVR5cGVFcnJvcik6
IERlbGV0ZWQuCisgICAgICAgIChXZWJLaXQ6OmZpbGVEb2VzTm90RXhpc3RFcnJvcik6IERlbGV0
ZWQuCisgICAgICAgIChXZWJLaXQ6OnBsdWdpbldpbGxIYW5kbGVMb2FkRXJyb3IpOiBEZWxldGVk
LgorICAgICAgICAoV2ViS2l0OjppbnRlcm5hbEVycm9yKTogRGVsZXRlZC4KKyAgICAgICAgKiBX
ZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L2d0ay9XZWJFcnJvcnNHdGsuY3BwOiBSZW1vdmVkLgor
ICAgICAgICAoV2ViS2l0OjpjYW5jZWxsZWRFcnJvcik6IERlbGV0ZWQuCisgICAgICAgIChXZWJL
aXQ6OmJsb2NrZWRFcnJvcik6IERlbGV0ZWQuCisgICAgICAgIChXZWJLaXQ6OmJsb2NrZWRCeUNv
bnRlbnRCbG9ja2VyRXJyb3IpOiBEZWxldGVkLgorICAgICAgICAoV2ViS2l0OjpjYW5ub3RTaG93
VVJMRXJyb3IpOiBEZWxldGVkLgorICAgICAgICAoV2ViS2l0OjppbnRlcnJ1cHRlZEZvclBvbGlj
eUNoYW5nZUVycm9yKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYktpdDo6Y2Fubm90U2hvd01JTUVU
eXBlRXJyb3IpOiBEZWxldGVkLgorICAgICAgICAoV2ViS2l0OjpmaWxlRG9lc05vdEV4aXN0RXJy
b3IpOiBEZWxldGVkLgorICAgICAgICAoV2ViS2l0OjpwbHVnaW5XaWxsSGFuZGxlTG9hZEVycm9y
KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYktpdDo6aW50ZXJuYWxFcnJvcik6IERlbGV0ZWQuCisg
ICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9tYWMvV2ViRXJyb3JzTWFjLm1tOgor
ICAgICAgICAoV2ViS2l0OjpjcmVhdGVOU0Vycm9yKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYktp
dDo6Y2FuY2VsbGVkRXJyb3IpOiBEZWxldGVkLgorICAgICAgICAoV2ViS2l0OjpmaWxlRG9lc05v
dEV4aXN0RXJyb3IpOiBEZWxldGVkLgorICAgICAgICAoV2ViS2l0OjpibG9ja2VkRXJyb3IpOiBE
ZWxldGVkLgorICAgICAgICAoV2ViS2l0OjpibG9ja2VkQnlDb250ZW50QmxvY2tlckVycm9yKTog
RGVsZXRlZC4KKyAgICAgICAgKFdlYktpdDo6Y2Fubm90U2hvd1VSTEVycm9yKTogRGVsZXRlZC4K
KyAgICAgICAgKFdlYktpdDo6aW50ZXJydXB0ZWRGb3JQb2xpY3lDaGFuZ2VFcnJvcik6IERlbGV0
ZWQuCisgICAgICAgIChXZWJLaXQ6OmNhbm5vdFNob3dNSU1FVHlwZUVycm9yKTogRGVsZXRlZC4K
KyAgICAgICAgKFdlYktpdDo6cGx1Z2luV2lsbEhhbmRsZUxvYWRFcnJvcik6IERlbGV0ZWQuCisg
ICAgICAgIChXZWJLaXQ6OmludGVybmFsRXJyb3IpOiBEZWxldGVkLgorICAgICAgICAqIFdlYlBy
b2Nlc3MvV2ViQ29yZVN1cHBvcnQvbWFjL1dlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQubW06Cisg
ICAgICAgIChXZWJLaXQ6OldlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQ6OmJsb2NrZWRFcnJvcik6
CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL2d0ay9XZWJQcmludE9wZXJhdGlvbkd0ay5j
cHA6CisKIDIwMTYtMDUtMTkgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KIAogICAg
ICAgICBJbXByb3ZlIGNvbXBpbGUtdGltZSBhc3NlcnRpb25zIGluIGlzPD4oKSAvIGRvd25jYXN0
PD4oKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvUGxhdGZvcm1FZmwuY21ha2UgYi9Tb3Vy
Y2UvV2ViQ29yZS9QbGF0Zm9ybUVmbC5jbWFrZQppbmRleCAzMjlhMTYwNzkxODk4NjEwM2M2MGUw
YjYwZDQwY2VlMGVmNmJjNjgxLi4yZjM2NzMzOTZlOTAzMTBmOWIzYzIyMTMzOGRkOTdlNDE0YTM1
NTc3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9QbGF0Zm9ybUVmbC5jbWFrZQorKysgYi9T
b3VyY2UvV2ViQ29yZS9QbGF0Zm9ybUVmbC5jbWFrZQpAQCAtODIsNiArODIsNyBAQCBsaXN0KEFQ
UEVORCBXZWJDb3JlX1NPVVJDRVMKIAogICAgIHBhZ2Uvc2Nyb2xsaW5nL0F4aXNTY3JvbGxTbmFw
T2Zmc2V0cy5jcHAKIAorICAgIHBsYXRmb3JtL0Vycm9ycy5jcHAKICAgICBwbGF0Zm9ybS9LaWxs
UmluZ05vbmUuY3BwCiAKICAgICBwbGF0Zm9ybS9hdWRpby9lZmwvQXVkaW9CdXNFZmwuY3BwCkBA
IC05NSw3ICs5Niw2IEBAIGxpc3QoQVBQRU5EIFdlYkNvcmVfU09VUkNFUwogICAgIHBsYXRmb3Jt
L2VmbC9FZmxJbnNwZWN0b3JVdGlsaXRpZXMuY3BwCiAgICAgcGxhdGZvcm0vZWZsL0VmbEtleWJv
YXJkVXRpbGl0aWVzLmNwcAogICAgIHBsYXRmb3JtL2VmbC9FZmxTY3JlZW5VdGlsaXRpZXMuY3Bw
Ci0gICAgcGxhdGZvcm0vZWZsL0Vycm9yc0VmbC5jcHAKICAgICBwbGF0Zm9ybS9lZmwvRXZlbnRM
b29wRWZsLmNwcAogICAgIHBsYXRmb3JtL2VmbC9GaWxlU3lzdGVtRWZsLmNwcAogICAgIHBsYXRm
b3JtL2VmbC9HYW1lcGFkc0VmbC5jcHAKQEAgLTIxOCw2ICsyMTgsNyBAQCBsaXN0KEFQUEVORCBX
ZWJDb3JlX1NPVVJDRVMKIAogICAgIHBsYXRmb3JtL3RleHQvaHlwaGVuL0h5cGhlbmF0aW9uTGli
SHlwaGVuLmNwcAogCisgICAgcGxhdGZvcm0vdW5peC9FcnJvcnNVbml4LmNwcAogICAgIHBsYXRm
b3JtL3VuaXgvTG9nZ2luZ1VuaXguY3BwCiAKICAgICByZW5kZXJpbmcvUmVuZGVyVGhlbWVFZmwu
Y3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9QbGF0Zm9ybUdUSy5jbWFrZSBiL1NvdXJj
ZS9XZWJDb3JlL1BsYXRmb3JtR1RLLmNtYWtlCmluZGV4IGQ3MWNlZWU1NzUyZTM1OGViZjkyODhi
ZjUxNDlkN2Y4ZDE2MTc1ZTcuLmJhMmU0NzI0NmEwMjczZDMwMWVlNTIxZmZhM2Y5ODg1ZmIwYTRj
MzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1BsYXRmb3JtR1RLLmNtYWtlCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL1BsYXRmb3JtR1RLLmNtYWtlCkBAIC03Niw2ICs3Niw3IEBAIGxpc3QoQVBQ
RU5EIFdlYkNvcmVfU09VUkNFUwogICAgIGxvYWRlci9zb3VwL0NhY2hlZFJhd1Jlc291cmNlU291
cC5jcHAKICAgICBsb2FkZXIvc291cC9TdWJyZXNvdXJjZUxvYWRlclNvdXAuY3BwCiAKKyAgICBw
bGF0Zm9ybS9FcnJvcnMuY3BwCiAgICAgcGxhdGZvcm0vS2lsbFJpbmdOb25lLmNwcAogCiAgICAg
cGxhdGZvcm0vYXVkaW8vZ2xpYi9BdWRpb0J1c0dMaWIuY3BwCkBAIC0xNDAsNyArMTQxLDYgQEAg
bGlzdChBUFBFTkQgV2ViQ29yZV9TT1VSQ0VTCiAgICAgcGxhdGZvcm0vZ3JhcGhpY3MveDExL1Bs
YXRmb3JtRGlzcGxheVgxMS5jcHAKICAgICBwbGF0Zm9ybS9ncmFwaGljcy94MTEvWFVuaXF1ZVJl
c291cmNlLmNwcAogCi0gICAgcGxhdGZvcm0vZ3RrL0Vycm9yc0d0ay5jcHAKICAgICBwbGF0Zm9y
bS9ndGsvTUlNRVR5cGVSZWdpc3RyeUd0ay5jcHAKICAgICBwbGF0Zm9ybS9ndGsvU2Nyb2xsQW5p
bWF0b3JHdGsuY3BwCiAgICAgcGxhdGZvcm0vZ3RrL1RlbXBvcmFyeUxpbmtTdHVicy5jcHAKQEAg
LTE4Myw2ICsxODMsNyBAQCBsaXN0KEFQUEVORCBXZWJDb3JlX1NPVVJDRVMKIAogICAgIHBsYXRm
b3JtL3RleHQvaHlwaGVuL0h5cGhlbmF0aW9uTGliSHlwaGVuLmNwcAogCisgICAgcGxhdGZvcm0v
dW5peC9FcnJvcnNVbml4LmNwcAogICAgIHBsYXRmb3JtL3VuaXgvTG9nZ2luZ1VuaXguY3BwCiAp
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1BsYXRmb3JtTWFjLmNtYWtlIGIvU291cmNl
L1dlYkNvcmUvUGxhdGZvcm1NYWMuY21ha2UKaW5kZXggNDE1OWQ5YTI5ODhiOGZkM2YyNDAwNDYx
YTIxZmUzMzlkZmVjZjhhNi4uM2RkODJmZGQyNjZjZmI3MWI0NmY4MTg3MmVkN2QxMDQyOWUzYTI0
YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvUGxhdGZvcm1NYWMuY21ha2UKKysrIGIvU291
cmNlL1dlYkNvcmUvUGxhdGZvcm1NYWMuY21ha2UKQEAgLTQ2NCw2ICs0NjQsNyBAQCBsaXN0KEFQ
UEVORCBXZWJDb3JlX1NPVVJDRVMKICAgICBwbGF0Zm9ybS9tYWMvQ3Vyc29yTWFjLm1tCiAgICAg
cGxhdGZvcm0vbWFjL0RyYWdEYXRhTWFjLm1tCiAgICAgcGxhdGZvcm0vbWFjL0RyYWdJbWFnZU1h
Yy5tbQorICAgIHBsYXRmb3JtL21hYy9FcnJvcnNNYWMubW0KICAgICBwbGF0Zm9ybS9tYWMvRXZl
bnRMb29wTWFjLm1tCiAgICAgcGxhdGZvcm0vbWFjL0ZpbGVTeXN0ZW1NYWMubW0KICAgICBwbGF0
Zm9ybS9tYWMvSElER2FtZXBhZC5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNv
cmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNv
ZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCAwNjQ0ZWZiMTdkNmNjOGE3ODkzZjU4NDRmNDgx
M2Q5ZmRlODI4OWQ3Li5iYzdiMmYwNjA5YmE2ZjA3ZmUxOTg4NGU4MzFlYjQ0MzNkMWRhZjE2IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHBy
b2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
CkBAIC0xOTYwLDYgKzE5NjAsNyBAQAogCQk1MTBENEEzNjEwMzE2NUVFMDA0OUVBNTQgLyogU29j
a2V0U3RyZWFtSGFuZGxlQmFzZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA1MTBENEEzMDEwMzE2NUVFMDA0OUVBNTQgLyogU29ja2V0U3RyZWFtSGFu
ZGxlQmFzZS5jcHAgKi87IH07CiAJCTUxMEQ0QTM3MTAzMTY1RUUwMDQ5RUE1NCAvKiBTb2NrZXRT
dHJlYW1IYW5kbGVCYXNlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA1MTBENEEzMTEwMzE2NUVFMDA0OUVBNTQgLyogU29ja2V0U3RyZWFtSGFuZGxlQmFz
ZS5oICovOyB9OwogCQk1MTBENEEzODEwMzE2NUVFMDA0OUVBNTQgLyogU29ja2V0U3RyZWFtSGFu
ZGxlQ2xpZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA1MTBENEEzMjEwMzE2NUVFMDA0OUVBNTQgLyogU29ja2V0U3RyZWFtSGFuZGxlQ2xpZW50Lmgg
Ki87IH07CisJCTUxMTNFNkQ2MUNFMEM3QTQwMDJEOTU2MSAvKiBFcnJvcnMuY3BwIGluIFNvdXJj
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTExM0U2RDUxQ0UwQzc5MDAw
MkQ5NTYxIC8qIEVycm9ycy5jcHAgKi87IH07CiAJCTUxMUVDMTI3MUM1MEFBQ0EwMDMyRjk4MyAv
KiBJREJTZXJpYWxpemF0aW9uLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDUxMUVDMTI1MUM1MEFBNTcwMDMyRjk4MyAvKiBJREJTZXJpYWxpemF0aW9u
LmNwcCAqLzsgfTsKIAkJNTExRUMxMjgxQzUwQUFDQTAwMzJGOTgzIC8qIElEQlNlcmlhbGl6YXRp
b24uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxMUVD
MTI2MUM1MEFBNTcwMDMyRjk4MyAvKiBJREJTZXJpYWxpemF0aW9uLmggKi87IH07CiAJCTUxMUVD
MTJCMUM1MEFCQkYwMDMyRjk4MyAvKiBTUUxpdGVJREJUcmFuc2FjdGlvbi5jcHAgaW4gU291cmNl
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MTFFQzEyOTFDNTBBQkJBMDAz
MkY5ODMgLyogU1FMaXRlSURCVHJhbnNhY3Rpb24uY3BwICovOyB9OwpAQCAtMjA0OCw2ICsyMDQ5
LDggQEAKIAkJNTE2MTAzQjAxQ0FEQkE3QTAwMTZCNEM3IC8qIElEQlZhbHVlLmNwcCBpbiBTb3Vy
Y2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxNjEwM0FEMUNBREI5QTMw
MDE2QjRDNyAvKiBJREJWYWx1ZS5jcHAgKi87IH07CiAJCTUxNjJDN0Y0MTFGNzdFRkIwMDYxMkVG
RSAvKiBTY2hlbWVSZWdpc3RyeS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA1MTYyQzdGMjExRjc3RUZBMDA2MTJFRkUgLyogU2NoZW1lUmVnaXN0cnku
Y3BwICovOyB9OwogCQk1MTYyQzdGNTExRjc3RUZCMDA2MTJFRkUgLyogU2NoZW1lUmVnaXN0cnku
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxNjJDN0Yz
MTFGNzdFRkIwMDYxMkVGRSAvKiBTY2hlbWVSZWdpc3RyeS5oICovOyBzZXR0aW5ncyA9IHtBVFRS
SUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCTUxNjQ3NjA0MUNFMDkwNUEwMDkxRjBBOSAv
KiBFcnJvcnMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDUxNjQ3NjAzMUNFMDkwMUMwMDkxRjBBOSAvKiBFcnJvcnMuaCAqLzsgc2V0dGluZ3MgPSB7QVRU
UklCVVRFUyA9IChQdWJsaWMsICk7IH07IH07CisJCTUxNjQ3NjA2MUNFMDkwQjEwMDkxRjBBOSAv
KiBFcnJvcnNNYWMubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA1MTY0NzYwNTFDRTA5MDkxMDA5MUYwQTkgLyogRXJyb3JzTWFjLm1tICovOyB9OwogCQk1
MTY5NTM5NzEzMjlBM0M4MDBCOTJEMDQgLyogSWNvbkRhdGFiYXNlQmFzZS5jcHAgaW4gU291cmNl
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MTY5NTM5NTEzMjlBM0M4MDBC
OTJEMDQgLyogSWNvbkRhdGFiYXNlQmFzZS5jcHAgKi87IH07CiAJCTUxNjk1Mzk4MTMyOUEzQzgw
MEI5MkQwNCAvKiBJY29uRGF0YWJhc2VCYXNlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA1MTY5NTM5NjEzMjlBM0M4MDBCOTJEMDQgLyogSWNvbkRhdGFi
YXNlQmFzZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07
CiAJCTUxNkJCNzk0MENFOTFFNjgwMDUxMkY3OSAvKiBKU1RyZWVXYWxrZXJDdXN0b20uY3BwIGlu
IFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTE2QkI3OTIwQ0U5
MUU2ODAwNTEyRjc5IC8qIEpTVHJlZVdhbGtlckN1c3RvbS5jcHAgKi87IH07CkBAIC05NTI4LDYg
Kzk1MzEsNyBAQAogCQk1MTBENEEzMDEwMzE2NUVFMDA0OUVBNTQgLyogU29ja2V0U3RyZWFtSGFu
ZGxlQmFzZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBTb2NrZXRT
dHJlYW1IYW5kbGVCYXNlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTEwRDRB
MzExMDMxNjVFRTAwNDlFQTU0IC8qIFNvY2tldFN0cmVhbUhhbmRsZUJhc2UuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU29ja2V0U3RyZWFtSGFuZGxlQmFzZS5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQk1MTBENEEzMjEwMzE2NUVFMDA0OUVBNTQgLyogU29ja2V0
U3RyZWFtSGFuZGxlQ2xpZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNv
Y2tldFN0cmVhbUhhbmRsZUNsaWVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk1
MTEzRTZENTFDRTBDNzkwMDAyRDk1NjEgLyogRXJyb3JzLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLmNwcDsgcGF0aCA9IEVycm9ycy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCTUxMUVDMTI1MUM1MEFBNTcwMDMyRjk4MyAvKiBJREJTZXJpYWxpemF0aW9uLmNwcCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IElEQlNlcmlhbGl6YXRpb24uY3BwOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1MTFFQzEyNjFDNTBBQTU3MDAzMkY5ODMgLyog
SURCU2VyaWFsaXphdGlvbi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBJREJT
ZXJpYWxpemF0aW9uLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTUxMUVDMTI5MUM1
MEFCQkEwMDMyRjk4MyAvKiBTUUxpdGVJREJUcmFuc2FjdGlvbi5jcHAgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBTUUxpdGVJREJUcmFuc2FjdGlvbi5jcHA7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CkBAIC05NjQ0LDYgKzk2NDgsOCBAQAogCQk1MTY0NUI1MjFCOUY4
ODlCMDBGNzg5Q0UgLyogSURCVmVyc2lvbkNoYW5nZUV2ZW50LmNwcCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLmNwcDsgcGF0aCA9IElEQlZlcnNpb25DaGFuZ2VFdmVudC5jcHA7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCTUxNjQ1QjUzMUI5Rjg4OUIwMEY3ODlDRSAvKiBJREJWZXJz
aW9uQ2hhbmdlRXZlbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSURCVmVy
c2lvbkNoYW5nZUV2ZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTUxNjQ1QjU0
MUI5Rjg4RTgwMEY3ODlDRSAvKiBJREJDdXJzb3IuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAuY3BwOyBwYXRoID0gSURCQ3Vyc29yLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
KwkJNTE2NDc2MDMxQ0UwOTAxQzAwOTFGMEE5IC8qIEVycm9ycy5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBFcnJvcnMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJ
NTE2NDc2MDUxQ0UwOTA5MTAwOTFGMEE5IC8qIEVycm9yc01hYy5tbSAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IEVycm9yc01hYy5tbTsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJNTE2OTUzOTUxMzI5QTNDODAwQjkyRDA0IC8qIEljb25EYXRhYmFzZUJhc2Uu
Y3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSWNvbkRhdGFiYXNlQmFz
ZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTUxNjk1Mzk2MTMyOUEzQzgwMEI5
MkQwNCAvKiBJY29uRGF0YWJhc2VCYXNlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IEljb25EYXRhYmFzZUJhc2UuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTE2
QkI3OTIwQ0U5MUU2ODAwNTEyRjc5IC8qIEpTVHJlZVdhbGtlckN1c3RvbS5jcHAgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU1RyZWVXYWxrZXJDdXN0b20uY3BwOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTc4NDgsMTAgKzE3ODU0LDEzIEBACiAJCTY1ODJB
MTQ4MDk5OTlENkMwMEJFRUI2RCAvKiBtYWMgKi8gPSB7CiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJ
CWNoaWxkcmVuID0gKAorCQkJCTY1QTY0MEYwMDUzM0JCMUYwMDg1RTc3NyAvKiBCbG9ja0V4Y2Vw
dGlvbnMuaCAqLywKKwkJCQk2NUY4MDY5NzA1NEQ5Rjg2MDA4QkY3NzYgLyogQmxvY2tFeGNlcHRp
b25zLm1tICovLAogCQkJCUY1ODc4NEYwMDJERTM3NTkwMUVBNDEyMiAvKiBDdXJzb3JNYWMubW0g
Ki8sCiAJCQkJQTc5NTQ2M0QwQjVDNEM4MDAwN0I0MzhGIC8qIERyYWdEYXRhTWFjLm1tICovLAog
CQkJCUE3Q0ZCM0Q0MEI3RUQxMTgwMDcwQzMyRCAvKiBEcmFnSW1hZ2VNYWMubW0gKi8sCiAJCQkJ
RTFCQTY2RjAxNzQyQkQ4NjAwQzIwMjUxIC8qIER5bmFtaWNMaW5rZXJJbnRlcnBvc2luZy5oICov
LAorCQkJCTUxNjQ3NjA1MUNFMDkwOTEwMDkxRjBBOSAvKiBFcnJvcnNNYWMubW0gKi8sCiAJCQkJ
MUNBMTlFMDMwREMyNTU5NTAwNjVBOTk0IC8qIEV2ZW50TG9vcE1hYy5tbSAqLywKIAkJCQk1MTRC
M0Y3NTBDNzIyMDU1MDAwNTMwREYgLyogRmlsZVN5c3RlbU1hYy5tbSAqLywKIAkJCQk1MUE5RDlF
RjE5NUI5NTAzMDAxQjJCNUMgLyogSElER2FtZXBhZC5jcHAgKi8sCkBAIC0yMjg3MSw2ICsyMjg4
MCw4IEBACiAJCUJDRjFBNUJBMDk3ODMyMDkwMDYxQTEyMyAvKiBwbGF0Zm9ybSAqLyA9IHsKIAkJ
CWlzYSA9IFBCWEdyb3VwOwogCQkJY2hpbGRyZW4gPSAoCisJCQkJNTExM0U2RDUxQ0UwQzc5MDAw
MkQ5NTYxIC8qIEVycm9ycy5jcHAgKi8sCisJCQkJNTE2NDc2MDMxQ0UwOTAxQzAwOTFGMEE5IC8q
IEVycm9ycy5oICovLAogCQkJCTQ5RTkxMkE0MEVGQUM4RTYwMDlEMENBRiAvKiBhbmltYXRpb24g
Ki8sCiAJCQkJRkQzMTYwNDAxMkIwMjZBMzAwQzFBMzU5IC8qIGF1ZGlvICovLAogCQkJCTFBRTQy
RjY3MEFBNEI4Q0IwMEM4NjEyRCAvKiBjZiAqLywKQEAgLTI1Nzk2LDYgKzI1ODA3LDcgQEAKIAkJ
CQk4NUU3MTFCQTBBQzVENTM1MDA1MzI3MEYgLyogRE9NSFRNTE1lbnVFbGVtZW50SW50ZXJuYWwu
aCBpbiBIZWFkZXJzICovLAogCQkJCTg1OUE5QzREMEFBNUUzQkQwMEI2OTRCMiAvKiBET01IVE1M
TWV0YUVsZW1lbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCTg1RTcxMUJCMEFDNUQ1MzUwMDUzMjcw
RiAvKiBET01IVE1MTWV0YUVsZW1lbnRJbnRlcm5hbC5oIGluIEhlYWRlcnMgKi8sCisJCQkJNTE2
NDc2MDQxQ0UwOTA1QTAwOTFGMEE5IC8qIEVycm9ycy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJODVF
Q0JFRjUwQUE3NjI2OTAwNTQ0RjBCIC8qIERPTUhUTUxNb2RFbGVtZW50LmggaW4gSGVhZGVycyAq
LywKIAkJCQk4NUU3MTFCQzBBQzVENTM1MDA1MzI3MEYgLyogRE9NSFRNTE1vZEVsZW1lbnRJbnRl
cm5hbC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJODVERjgxMkIwQUE3Nzg3MjAwNDg2QUQ3IC8qIERP
TUhUTUxPYmplY3RFbGVtZW50LmggaW4gSGVhZGVycyAqLywKQEAgLTI5NzE4LDYgKzI5NzMwLDcg
QEAKIAkJCQlGNTJBRDVFNDE1MzQyNDVGMDA1OUZCRTYgLyogRW1wdHlDbGllbnRzLmNwcCBpbiBT
b3VyY2VzICovLAogCQkJCUE4RUE3RUMxMEExOTQ1RDAwMEE4RUY1RiAvKiBFbnRpdHlSZWZlcmVu
Y2UuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJRkQzMTYwOTIxMkIwMjZGNzAwQzFBMzU5IC8qIEVx
dWFsUG93ZXJQYW5uZXIuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJNTE2NDc2MDYxQ0UwOTBCMTAw
OTFGMEE5IC8qIEVycm9yc01hYy5tbSBpbiBTb3VyY2VzICovLAogCQkJCTJFQ0Y3QUUxMTAxNjJC
NTgwMDQyN0RFNyAvKiBFcnJvckV2ZW50LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTg1MDMxQjQx
MEE0NEVGQzcwMEY5OTJFMCAvKiBFdmVudC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk0MTM4RDMz
NjEyNDQwNTQ4MDAzMjNEMzMgLyogRXZlbnRDb250ZXh0LmNwcCBpbiBTb3VyY2VzICovLApAQCAt
MzE2NjAsNiArMzE2NzMsNyBAQAogCQkJCTFGQzQwRkI5MTY1NUNDQjYwMDQwRjI5RSAvKiBTdWJp
bWFnZUNhY2hlV2l0aFRpbWVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUY1NUIzREQzMTI1MUYx
MkQwMDNFRjI2OSAvKiBTdWJtaXRJbnB1dFR5cGUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJOTNF
MjI3RTQwQUY1ODlBRDAwRDQ4MzI0IC8qIFN1YnJlc291cmNlTG9hZGVyLmNwcCBpbiBTb3VyY2Vz
ICovLAorCQkJCTUxMTNFNkQ2MUNFMEM3QTQwMDJEOTU2MSAvKiBFcnJvcnMuY3BwIGluIFNvdXJj
ZXMgKi8sCiAJCQkJN0UzN0VGMkUxMzM5MjA4ODAwQjI5MjUwIC8qIFN1YnJlc291cmNlTG9hZGVy
Q0YuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJN0U4RkFEQzQxOTlBOTVCMTAwNzE0OTY4IC8qIFN1
YnJlc291cmNlTG9hZGVyQ29jb2EubW0gaW4gU291cmNlcyAqLywKIAkJCQlFMUZGOEY1RjE4MDc0
NDIxMDAxMzI2NzQgLyogU3VidGxlQ3J5cHRvLmNwcCBpbiBTb3VyY2VzICovLApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0RvY3VtZW50TG9hZGVyLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2xvYWRlci9Eb2N1bWVudExvYWRlci5jcHAKaW5kZXggOTdjYmY2Mzg0YjMzMGFmZDI5Y2Mx
YjgwOTVkZjU5YzZlZmZjNGNmYy4uZDQ4MDJhMzM1NDRkMWVmY2U3MGFkNDE5MTcyNGY2YTIwZTIy
M2FhMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0RvY3VtZW50TG9hZGVyLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRG9jdW1lbnRMb2FkZXIuY3BwCkBAIC00MSw2
ICs0MSw3IEBACiAjaW5jbHVkZSAiRG9jdW1lbnQuaCIKICNpbmNsdWRlICJEb2N1bWVudFBhcnNl
ci5oIgogI2luY2x1ZGUgIkRvY3VtZW50V3JpdGVyLmgiCisjaW5jbHVkZSAiRXJyb3JzLmgiCiAj
aW5jbHVkZSAiRXZlbnQuaCIKICNpbmNsdWRlICJFeHRlbnNpb25TdHlsZVNoZWV0cy5oIgogI2lu
Y2x1ZGUgIkZvcm1TdGF0ZS5oIgpAQCAtNzU3LDcgKzc1OCw3IEBAIHZvaWQgRG9jdW1lbnRMb2Fk
ZXI6OmNvbnRpbnVlQWZ0ZXJDb250ZW50UG9saWN5KFBvbGljeUFjdGlvbiBwb2xpY3kpCiAgICAg
Y2FzZSBQb2xpY3lEb3dubG9hZDogewogICAgICAgICAvLyBtX21haW5SZXNvdXJjZSBjYW4gYmUg
bnVsbCwgZS5nLiB3aGVuIGxvYWRpbmcgYSBzdWJzdGl0dXRlIHJlc291cmNlIGZyb20gYXBwbGlj
YXRpb24gY2FjaGUuCiAgICAgICAgIGlmICghbV9tYWluUmVzb3VyY2UpIHsKLSAgICAgICAgICAg
IG1haW5SZWNlaXZlZEVycm9yKGZyYW1lTG9hZGVyKCktPmNsaWVudCgpLmNhbm5vdFNob3dVUkxF
cnJvcihtX3JlcXVlc3QpKTsKKyAgICAgICAgICAgIG1haW5SZWNlaXZlZEVycm9yKGNhbm5vdFNo
b3dVUkxFcnJvcihtX3JlcXVlc3QpKTsKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQog
CkBAIC04MzUsNyArODM2LDcgQEAgdm9pZCBEb2N1bWVudExvYWRlcjo6Y29tbWl0TG9hZChjb25z
dCBjaGFyKiBkYXRhLCBpbnQgbGVuZ3RoKQogCiBSZXNvdXJjZUVycm9yIERvY3VtZW50TG9hZGVy
OjppbnRlcnJ1cHRlZEZvclBvbGljeUNoYW5nZUVycm9yKCkgY29uc3QKIHsKLSAgICByZXR1cm4g
ZnJhbWVMb2FkZXIoKS0+Y2xpZW50KCkuaW50ZXJydXB0ZWRGb3JQb2xpY3lDaGFuZ2VFcnJvcihy
ZXF1ZXN0KCkpOworICAgIHJldHVybiBXZWJDb3JlOjppbnRlcnJ1cHRlZEZvclBvbGljeUNoYW5n
ZUVycm9yKHJlcXVlc3QoKSk7CiB9CiAKIHZvaWQgRG9jdW1lbnRMb2FkZXI6OnN0b3BMb2FkaW5n
Rm9yUG9saWN5Q2hhbmdlKCkKQEAgLTE1MDQsMTQgKzE1MDUsMTQgQEAgdm9pZCBEb2N1bWVudExv
YWRlcjo6c3RhcnRMb2FkaW5nTWFpblJlc291cmNlKCkKIAogI2lmIEVOQUJMRShDT05URU5UX0VY
VEVOU0lPTlMpCiAgICAgaWYgKG1fbWFpblJlc291cmNlICYmIG1fbWFpblJlc291cmNlLT5lcnJv
ck9jY3VycmVkKCkgJiYgbV9mcmFtZS0+cGFnZSgpICYmIG1fbWFpblJlc291cmNlLT5yZXNvdXJj
ZUVycm9yKCkuZG9tYWluKCkgPT0gQ29udGVudEV4dGVuc2lvbnM6OldlYktpdENvbnRlbnRCbG9j
a2VyRG9tYWluKSB7Ci0gICAgICAgIGNhbmNlbE1haW5SZXNvdXJjZUxvYWQoZnJhbWVMb2FkZXIo
KS0+YmxvY2tlZEJ5Q29udGVudEJsb2NrZXJFcnJvcihtX3JlcXVlc3QpKTsKKyAgICAgICAgY2Fu
Y2VsTWFpblJlc291cmNlTG9hZChXZWJDb3JlOjpibG9ja2VkQnlDb250ZW50QmxvY2tlckVycm9y
KG1fcmVxdWVzdCkpOwogICAgICAgICByZXR1cm47CiAgICAgfQogI2VuZGlmCiAKICAgICBpZiAo
IW1fbWFpblJlc291cmNlKSB7CiAgICAgICAgIGlmICghbV9yZXF1ZXN0LnVybCgpLmlzVmFsaWQo
KSkgewotICAgICAgICAgICAgY2FuY2VsTWFpblJlc291cmNlTG9hZChmcmFtZUxvYWRlcigpLT5j
bGllbnQoKS5jYW5ub3RTaG93VVJMRXJyb3IobV9yZXF1ZXN0KSk7CisgICAgICAgICAgICBjYW5j
ZWxNYWluUmVzb3VyY2VMb2FkKGNhbm5vdFNob3dVUkxFcnJvcihtX3JlcXVlc3QpKTsKICAgICAg
ICAgICAgIHJldHVybjsKICAgICAgICAgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9s
b2FkZXIvRW1wdHlDbGllbnRzLmggYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRW1wdHlDbGllbnRz
LmgKaW5kZXggOTg0ZjQ4ZWIyYzEyZjBiZDVmOGNlNTNhOGFjMTAwOTkwOTQ2NTg4Mi4uZDdhNmY4
OTQ5NDYwOTRlODJiMTE3OTJjNmM2MTU2N2Y3MzBjMzRlZSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvbG9hZGVyL0VtcHR5Q2xpZW50cy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9F
bXB0eUNsaWVudHMuaApAQCAtMzMwLDE2ICszMzAsNiBAQCBwdWJsaWM6CiAgICAgdm9pZCBjb21t
aXR0ZWRMb2FkKERvY3VtZW50TG9hZGVyKiwgY29uc3QgY2hhciosIGludCkgb3ZlcnJpZGUgeyB9
CiAgICAgdm9pZCBmaW5pc2hlZExvYWRpbmcoRG9jdW1lbnRMb2FkZXIqKSBvdmVycmlkZSB7IH0K
IAotICAgIFJlc291cmNlRXJyb3IgY2FuY2VsbGVkRXJyb3IoY29uc3QgUmVzb3VyY2VSZXF1ZXN0
Jikgb3ZlcnJpZGUgeyBSZXNvdXJjZUVycm9yIGVycm9yKCIiLCAwLCBVUkwoKSwgIiIpOyBlcnJv
ci5zZXRJc0NhbmNlbGxhdGlvbih0cnVlKTsgcmV0dXJuIGVycm9yOyB9Ci0gICAgUmVzb3VyY2VF
cnJvciBibG9ja2VkRXJyb3IoY29uc3QgUmVzb3VyY2VSZXF1ZXN0Jikgb3ZlcnJpZGUgeyByZXR1
cm4gUmVzb3VyY2VFcnJvcigiIiwgMCwgVVJMKCksICIiKTsgfQotICAgIFJlc291cmNlRXJyb3Ig
YmxvY2tlZEJ5Q29udGVudEJsb2NrZXJFcnJvcihjb25zdCBSZXNvdXJjZVJlcXVlc3QmKSBvdmVy
cmlkZSB7IHJldHVybiBSZXNvdXJjZUVycm9yKCIiLCAwLCBVUkwoKSwgIiIpOyB9Ci0gICAgUmVz
b3VyY2VFcnJvciBjYW5ub3RTaG93VVJMRXJyb3IoY29uc3QgUmVzb3VyY2VSZXF1ZXN0Jikgb3Zl
cnJpZGUgeyByZXR1cm4gUmVzb3VyY2VFcnJvcigiIiwgMCwgVVJMKCksICIiKTsgfQotICAgIFJl
c291cmNlRXJyb3IgaW50ZXJydXB0ZWRGb3JQb2xpY3lDaGFuZ2VFcnJvcihjb25zdCBSZXNvdXJj
ZVJlcXVlc3QmKSBvdmVycmlkZSB7IHJldHVybiBSZXNvdXJjZUVycm9yKCIiLCAwLCBVUkwoKSwg
IiIpOyB9Ci0KLSAgICBSZXNvdXJjZUVycm9yIGNhbm5vdFNob3dNSU1FVHlwZUVycm9yKGNvbnN0
IFJlc291cmNlUmVzcG9uc2UmKSBvdmVycmlkZSB7IHJldHVybiBSZXNvdXJjZUVycm9yKCIiLCAw
LCBVUkwoKSwgIiIpOyB9Ci0gICAgUmVzb3VyY2VFcnJvciBmaWxlRG9lc05vdEV4aXN0RXJyb3Io
Y29uc3QgUmVzb3VyY2VSZXNwb25zZSYpIG92ZXJyaWRlIHsgcmV0dXJuIFJlc291cmNlRXJyb3Io
IiIsIDAsIFVSTCgpLCAiIik7IH0KLSAgICBSZXNvdXJjZUVycm9yIHBsdWdpbldpbGxIYW5kbGVM
b2FkRXJyb3IoY29uc3QgUmVzb3VyY2VSZXNwb25zZSYpIG92ZXJyaWRlIHsgcmV0dXJuIFJlc291
cmNlRXJyb3IoIiIsIDAsIFVSTCgpLCAiIik7IH0KLQogICAgIGJvb2wgc2hvdWxkRmFsbEJhY2so
Y29uc3QgUmVzb3VyY2VFcnJvciYpIG92ZXJyaWRlIHsgcmV0dXJuIGZhbHNlOyB9CiAKICAgICBi
b29sIGNhbkhhbmRsZVJlcXVlc3QoY29uc3QgUmVzb3VyY2VSZXF1ZXN0JikgY29uc3Qgb3ZlcnJp
ZGUgeyByZXR1cm4gZmFsc2U7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9G
cmFtZUxvYWRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIuY3BwCmlu
ZGV4IDM0YTQ0MWI0ZGM1Mzg1OGNiOTc4N2FmY2ZiYTE1OWFkYWJlOTU3NmMuLjIxYzA3NTBmY2M1
MWViMDNmYWRkOThhZDA4ZjBmMmYyMjc4YzhlNWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2xvYWRlci9GcmFtZUxvYWRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1l
TG9hZGVyLmNwcApAQCAtNTUsNiArNTUsNyBAQAogI2luY2x1ZGUgIkVkaXRvci5oIgogI2luY2x1
ZGUgIkVkaXRvckNsaWVudC5oIgogI2luY2x1ZGUgIkVsZW1lbnQuaCIKKyNpbmNsdWRlICJFcnJv
cnMuaCIKICNpbmNsdWRlICJFdmVudC5oIgogI2luY2x1ZGUgIkV2ZW50SGFuZGxlci5oIgogI2lu
Y2x1ZGUgIkV2ZW50TmFtZXMuaCIKQEAgLTM0MDUsMTkgKzM0MDYsMTQgQEAgdm9pZCBGcmFtZUxv
YWRlcjo6cmV0cnlBZnRlckZhaWxlZENhY2hlT25seU1haW5SZXNvdXJjZUxvYWQoKQogCiBSZXNv
dXJjZUVycm9yIEZyYW1lTG9hZGVyOjpjYW5jZWxsZWRFcnJvcihjb25zdCBSZXNvdXJjZVJlcXVl
c3QmIHJlcXVlc3QpIGNvbnN0CiB7Ci0gICAgUmVzb3VyY2VFcnJvciBlcnJvciA9IG1fY2xpZW50
LmNhbmNlbGxlZEVycm9yKHJlcXVlc3QpOworICAgIFJlc291cmNlRXJyb3IgZXJyb3IgPSBXZWJD
b3JlOjpjYW5jZWxsZWRFcnJvcihyZXF1ZXN0KTsKICAgICBlcnJvci5zZXRJc0NhbmNlbGxhdGlv
bih0cnVlKTsKICAgICByZXR1cm4gZXJyb3I7CiB9CiAKLVJlc291cmNlRXJyb3IgRnJhbWVMb2Fk
ZXI6OmJsb2NrZWRCeUNvbnRlbnRCbG9ja2VyRXJyb3IoY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiBy
ZXF1ZXN0KSBjb25zdAotewotICAgIHJldHVybiBtX2NsaWVudC5ibG9ja2VkQnlDb250ZW50Qmxv
Y2tlckVycm9yKHJlcXVlc3QpOwotfQotCiBSZXNvdXJjZUVycm9yIEZyYW1lTG9hZGVyOjpibG9j
a2VkRXJyb3IoY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0KSBjb25zdAogewotICAgIFJl
c291cmNlRXJyb3IgZXJyb3IgPSBtX2NsaWVudC5ibG9ja2VkRXJyb3IocmVxdWVzdCk7CisgICAg
UmVzb3VyY2VFcnJvciBlcnJvciA9IFdlYkNvcmU6OmJsb2NrZWRFcnJvcihyZXF1ZXN0KTsKICAg
ICBlcnJvci5zZXRJc0NhbmNlbGxhdGlvbih0cnVlKTsKICAgICByZXR1cm4gZXJyb3I7CiB9CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIuaCBiL1NvdXJjZS9X
ZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlci5oCmluZGV4IGU3ZjE1MjBmNTdiNTc4MGU1ODlkMTFm
MTJjOWFlZDk5ZDYyN2MzOGYuLjQwYzI1MDA5ZWU5OGYwYzZjMzc1Y2VhNWQ2N2E4MzI0OTMzZmFi
MGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlci5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlci5oCkBAIC0xNzEsNyArMTcxLDYgQEAg
cHVibGljOgogICAgIHZvaWQgaGFuZGxlRmFsbGJhY2tDb250ZW50KCk7CiAKICAgICBXRUJDT1JF
X0VYUE9SVCBSZXNvdXJjZUVycm9yIGNhbmNlbGxlZEVycm9yKGNvbnN0IFJlc291cmNlUmVxdWVz
dCYpIGNvbnN0OwotICAgIFdFQkNPUkVfRVhQT1JUIFJlc291cmNlRXJyb3IgYmxvY2tlZEJ5Q29u
dGVudEJsb2NrZXJFcnJvcihjb25zdCBSZXNvdXJjZVJlcXVlc3QmKSBjb25zdDsKICAgICBSZXNv
dXJjZUVycm9yIGJsb2NrZWRFcnJvcihjb25zdCBSZXNvdXJjZVJlcXVlc3QmKSBjb25zdDsKIAog
ICAgIGJvb2wgaXNIb3N0ZWRCeU9iamVjdEVsZW1lbnQoKSBjb25zdDsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlckNsaWVudC5oIGIvU291cmNlL1dlYkNvcmUv
bG9hZGVyL0ZyYW1lTG9hZGVyQ2xpZW50LmgKaW5kZXggNTA3M2M5YTg4ODgyZDM0ZmYyMzdlMjA2
MGE0ZTM3ODRjY2RkYzRiOS4uMjMwMTc0MTM2Njg0NTExZTZjOTlhYmIwMTUzZTIxNzliYTk2NjUy
OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyQ2xpZW50LmgK
KysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyQ2xpZW50LmgKQEAgLTIyNywx
NiArMjI3LDYgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICB2aXJ0dWFsIHZvaWQgZGlk
UnVuSW5zZWN1cmVDb250ZW50KFNlY3VyaXR5T3JpZ2luKiwgY29uc3QgVVJMJikgPSAwOwogICAg
ICAgICB2aXJ0dWFsIHZvaWQgZGlkRGV0ZWN0WFNTKGNvbnN0IFVSTCYsIGJvb2wgZGlkQmxvY2tF
bnRpcmVQYWdlKSA9IDA7CiAKLSAgICAgICAgdmlydHVhbCBSZXNvdXJjZUVycm9yIGNhbmNlbGxl
ZEVycm9yKGNvbnN0IFJlc291cmNlUmVxdWVzdCYpID0gMDsKLSAgICAgICAgdmlydHVhbCBSZXNv
dXJjZUVycm9yIGJsb2NrZWRFcnJvcihjb25zdCBSZXNvdXJjZVJlcXVlc3QmKSA9IDA7Ci0gICAg
ICAgIHZpcnR1YWwgUmVzb3VyY2VFcnJvciBibG9ja2VkQnlDb250ZW50QmxvY2tlckVycm9yKGNv
bnN0IFJlc291cmNlUmVxdWVzdCYpID0gMDsKLSAgICAgICAgdmlydHVhbCBSZXNvdXJjZUVycm9y
IGNhbm5vdFNob3dVUkxFcnJvcihjb25zdCBSZXNvdXJjZVJlcXVlc3QmKSA9IDA7Ci0gICAgICAg
IHZpcnR1YWwgUmVzb3VyY2VFcnJvciBpbnRlcnJ1cHRlZEZvclBvbGljeUNoYW5nZUVycm9yKGNv
bnN0IFJlc291cmNlUmVxdWVzdCYpID0gMDsKLQotICAgICAgICB2aXJ0dWFsIFJlc291cmNlRXJy
b3IgY2Fubm90U2hvd01JTUVUeXBlRXJyb3IoY29uc3QgUmVzb3VyY2VSZXNwb25zZSYpID0gMDsK
LSAgICAgICAgdmlydHVhbCBSZXNvdXJjZUVycm9yIGZpbGVEb2VzTm90RXhpc3RFcnJvcihjb25z
dCBSZXNvdXJjZVJlc3BvbnNlJikgPSAwOwotICAgICAgICB2aXJ0dWFsIFJlc291cmNlRXJyb3Ig
cGx1Z2luV2lsbEhhbmRsZUxvYWRFcnJvcihjb25zdCBSZXNvdXJjZVJlc3BvbnNlJikgPSAwOwot
CiAgICAgICAgIHZpcnR1YWwgYm9vbCBzaG91bGRGYWxsQmFjayhjb25zdCBSZXNvdXJjZUVycm9y
JikgPSAwOwogCiAgICAgICAgIHZpcnR1YWwgYm9vbCBjYW5IYW5kbGVSZXF1ZXN0KGNvbnN0IFJl
c291cmNlUmVxdWVzdCYpIGNvbnN0ID0gMDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xv
YWRlci9OZXRzY2FwZVBsdWdJblN0cmVhbUxvYWRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2Fk
ZXIvTmV0c2NhcGVQbHVnSW5TdHJlYW1Mb2FkZXIuY3BwCmluZGV4IGI4OWI2MDAyNjMxNDAyY2U1
YjUwYWI5Y2FmNzUwMTRlYmJiYTFhZjIuLjJjMzk5ZDI0ZDI1NDI4M2I4MmQ1ZjUyYWJhYjI1ZDZm
YTI0NjVlZWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9OZXRzY2FwZVBsdWdJ
blN0cmVhbUxvYWRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL05ldHNjYXBlUGx1
Z0luU3RyZWFtTG9hZGVyLmNwcApAQCAtMzAsNiArMzAsNyBAQAogI2luY2x1ZGUgIk5ldHNjYXBl
UGx1Z0luU3RyZWFtTG9hZGVyLmgiCiAKICNpbmNsdWRlICJEb2N1bWVudExvYWRlci5oIgorI2lu
Y2x1ZGUgIkVycm9ycy5oIgogI2luY2x1ZGUgIkZyYW1lTG9hZGVyLmgiCiAjaW5jbHVkZSAiRnJh
bWVMb2FkZXJDbGllbnQuaCIKICNpbmNsdWRlIDx3dGYvUmVmLmg+CkBAIC0xMjQsNyArMTI1LDcg
QEAgdm9pZCBOZXRzY2FwZVBsdWdJblN0cmVhbUxvYWRlcjo6ZGlkUmVjZWl2ZVJlc3BvbnNlKGNv
bnN0IFJlc291cmNlUmVzcG9uc2UmIHJlc3AKIAogICAgIC8vIFN0YXR1cyBjb2RlIGNhbiBiZSBu
dWxsIHdoZW4gc2VydmluZyBmcm9tIGEgV2ViIGFyY2hpdmUuCiAgICAgaWYgKHJlc3BvbnNlLmh0
dHBTdGF0dXNDb2RlKCkgJiYgKHJlc3BvbnNlLmh0dHBTdGF0dXNDb2RlKCkgPCAxMDAgfHwgcmVz
cG9uc2UuaHR0cFN0YXR1c0NvZGUoKSA+PSA0MDApKQotICAgICAgICBjYW5jZWwoZnJhbWVMb2Fk
ZXIoKS0+Y2xpZW50KCkuZmlsZURvZXNOb3RFeGlzdEVycm9yKHJlc3BvbnNlKSk7CisgICAgICAg
IGNhbmNlbChmaWxlRG9lc05vdEV4aXN0RXJyb3IocmVzcG9uc2UpKTsKIH0KIAogdm9pZCBOZXRz
Y2FwZVBsdWdJblN0cmVhbUxvYWRlcjo6ZGlkUmVjZWl2ZURhdGEoY29uc3QgY2hhciogZGF0YSwg
dW5zaWduZWQgbGVuZ3RoLCBsb25nIGxvbmcgZW5jb2RlZERhdGFMZW5ndGgsIERhdGFQYXlsb2Fk
VHlwZSBkYXRhUGF5bG9hZFR5cGUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIv
UG9saWN5Q2hlY2tlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvUG9saWN5Q2hlY2tlci5j
cHAKaW5kZXggMzNmMTQ3NDEwZDNhZmI0MTJhOWIzNTY0M2M5MDU0YmUwZTQ3MjE0Ny4uZjQ2MDUz
NzkxNWY0NGEyMGYwM2YxYTE4NWMyNTU0ODIyZGVkNWJiMCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvbG9hZGVyL1BvbGljeUNoZWNrZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRl
ci9Qb2xpY3lDaGVja2VyLmNwcApAQCAtMzQsNiArMzQsNyBAQAogI2luY2x1ZGUgIkNvbnRlbnRT
ZWN1cml0eVBvbGljeS5oIgogI2luY2x1ZGUgIkRPTVdpbmRvdy5oIgogI2luY2x1ZGUgIkRvY3Vt
ZW50TG9hZGVyLmgiCisjaW5jbHVkZSAiRXJyb3JzLmgiCiAjaW5jbHVkZSAiRm9ybVN0YXRlLmgi
CiAjaW5jbHVkZSAiRnJhbWUuaCIKICNpbmNsdWRlICJGcmFtZUxvYWRlci5oIgpAQCAtMTczLDcg
KzE3NCw3IEBAIHZvaWQgUG9saWN5Q2hlY2tlcjo6c3RvcENoZWNrKCkKIAogdm9pZCBQb2xpY3lD
aGVja2VyOjpjYW5ub3RTaG93TUlNRVR5cGUoY29uc3QgUmVzb3VyY2VSZXNwb25zZSYgcmVzcG9u
c2UpCiB7Ci0gICAgaGFuZGxlVW5pbXBsZW1lbnRhYmxlUG9saWN5KG1fZnJhbWUubG9hZGVyKCku
Y2xpZW50KCkuY2Fubm90U2hvd01JTUVUeXBlRXJyb3IocmVzcG9uc2UpKTsKKyAgICBoYW5kbGVV
bmltcGxlbWVudGFibGVQb2xpY3koY2Fubm90U2hvd01JTUVUeXBlRXJyb3IocmVzcG9uc2UpKTsK
IH0KIAogdm9pZCBQb2xpY3lDaGVja2VyOjpjb250aW51ZUxvYWRBZnRlcldpbGxTdWJtaXRGb3Jt
KFBvbGljeUFjdGlvbikKQEAgLTIwNSw3ICsyMDYsNyBAQCB2b2lkIFBvbGljeUNoZWNrZXI6OmNv
bnRpbnVlQWZ0ZXJOYXZpZ2F0aW9uUG9saWN5KFBvbGljeUFjdGlvbiBwb2xpY3kpCiAgICAgICAg
ICAgICBSZXNvdXJjZVJlcXVlc3QgcmVxdWVzdChjYWxsYmFjay5yZXF1ZXN0KCkpOwogCiAgICAg
ICAgICAgICBpZiAoIW1fZnJhbWUubG9hZGVyKCkuY2xpZW50KCkuY2FuSGFuZGxlUmVxdWVzdChy
ZXF1ZXN0KSkgewotICAgICAgICAgICAgICAgIGhhbmRsZVVuaW1wbGVtZW50YWJsZVBvbGljeSht
X2ZyYW1lLmxvYWRlcigpLmNsaWVudCgpLmNhbm5vdFNob3dVUkxFcnJvcihjYWxsYmFjay5yZXF1
ZXN0KCkpKTsKKyAgICAgICAgICAgICAgICBoYW5kbGVVbmltcGxlbWVudGFibGVQb2xpY3koY2Fu
bm90U2hvd1VSTEVycm9yKGNhbGxiYWNrLnJlcXVlc3QoKSkpOwogICAgICAgICAgICAgICAgIGNh
bGxiYWNrLmNsZWFyUmVxdWVzdCgpOwogICAgICAgICAgICAgICAgIHNob3VsZENvbnRpbnVlID0g
ZmFsc2U7CiAgICAgICAgICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIv
UmVzb3VyY2VMb2FkZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL1Jlc291cmNlTG9hZGVy
LmNwcAppbmRleCBiNzhmNDA5YWYyYzc4ZTI5ZmFlZGUxZTMzNmEzYWVjOTcwM2NmZTgzLi4zZWE5
OTJiYzVkYTAzMDYwMWYxNDE0ODg5ZTFjZjhlZDFkZThiYjc0IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9sb2FkZXIvUmVzb3VyY2VMb2FkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xv
YWRlci9SZXNvdXJjZUxvYWRlci5jcHAKQEAgLTM2LDYgKzM2LDcgQEAKICNpbmNsdWRlICJEaWFn
bm9zdGljTG9nZ2luZ0NsaWVudC5oIgogI2luY2x1ZGUgIkRpYWdub3N0aWNMb2dnaW5nS2V5cy5o
IgogI2luY2x1ZGUgIkRvY3VtZW50TG9hZGVyLmgiCisjaW5jbHVkZSAiRXJyb3JzLmgiCiAjaW5j
bHVkZSAiRnJhbWUuaCIKICNpbmNsdWRlICJGcmFtZUxvYWRlci5oIgogI2luY2x1ZGUgIkZyYW1l
TG9hZGVyQ2xpZW50LmgiCkBAIC02MDMsMTcgKzYwNCwxNyBAQCBSZXNvdXJjZUVycm9yIFJlc291
cmNlTG9hZGVyOjpjYW5jZWxsZWRFcnJvcigpCiAKIFJlc291cmNlRXJyb3IgUmVzb3VyY2VMb2Fk
ZXI6OmJsb2NrZWRFcnJvcigpCiB7Ci0gICAgcmV0dXJuIGZyYW1lTG9hZGVyKCktPmNsaWVudCgp
LmJsb2NrZWRFcnJvcihtX3JlcXVlc3QpOworICAgIHJldHVybiBXZWJDb3JlOjpibG9ja2VkRXJy
b3IobV9yZXF1ZXN0KTsKIH0KIAogUmVzb3VyY2VFcnJvciBSZXNvdXJjZUxvYWRlcjo6YmxvY2tl
ZEJ5Q29udGVudEJsb2NrZXJFcnJvcigpCiB7Ci0gICAgcmV0dXJuIGZyYW1lTG9hZGVyKCktPmNs
aWVudCgpLmJsb2NrZWRCeUNvbnRlbnRCbG9ja2VyRXJyb3IobV9yZXF1ZXN0KTsKKyAgICByZXR1
cm4gV2ViQ29yZTo6YmxvY2tlZEJ5Q29udGVudEJsb2NrZXJFcnJvcihtX3JlcXVlc3QpOwogfQog
CiBSZXNvdXJjZUVycm9yIFJlc291cmNlTG9hZGVyOjpjYW5ub3RTaG93VVJMRXJyb3IoKQogewot
ICAgIHJldHVybiBmcmFtZUxvYWRlcigpLT5jbGllbnQoKS5jYW5ub3RTaG93VVJMRXJyb3IobV9y
ZXF1ZXN0KTsKKyAgICByZXR1cm4gV2ViQ29yZTo6Y2Fubm90U2hvd1VSTEVycm9yKG1fcmVxdWVz
dCk7CiB9CiAKIHZvaWQgUmVzb3VyY2VMb2FkZXI6OndpbGxTZW5kUmVxdWVzdChSZXNvdXJjZUhh
bmRsZSosIFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwgY29uc3QgUmVzb3VyY2VSZXNwb25zZSYg
cmVkaXJlY3RSZXNwb25zZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9hcHBj
YWNoZS9BcHBsaWNhdGlvbkNhY2hlSG9zdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvYXBw
Y2FjaGUvQXBwbGljYXRpb25DYWNoZUhvc3QuY3BwCmluZGV4IDU1YTI0Y2ZhYzU2MjIyYjNhM2M5
MmY2MDNhYmVlMjBhNzNmZjA5YzkuLmE5NDAzNzkzZTVlYTZhMmE1MGU5ZTk4NTM1ODczMGU3ZGVm
M2U2NTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9hcHBjYWNoZS9BcHBsaWNh
dGlvbkNhY2hlSG9zdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2FwcGNhY2hlL0Fw
cGxpY2F0aW9uQ2FjaGVIb3N0LmNwcApAQCAtMzEsNiArMzEsNyBAQAogI2luY2x1ZGUgIkFwcGxp
Y2F0aW9uQ2FjaGVSZXNvdXJjZS5oIgogI2luY2x1ZGUgIkRvY3VtZW50TG9hZGVyLmgiCiAjaW5j
bHVkZSAiRE9NQXBwbGljYXRpb25DYWNoZS5oIgorI2luY2x1ZGUgIkVycm9ycy5oIgogI2luY2x1
ZGUgIkZpbGVTeXN0ZW0uaCIKICNpbmNsdWRlICJGcmFtZS5oIgogI2luY2x1ZGUgIkZyYW1lTG9h
ZGVyLmgiCkBAIC0yNDIsNyArMjQzLDcgQEAgYm9vbCBBcHBsaWNhdGlvbkNhY2hlSG9zdDo6bWF5
YmVMb2FkU3luY2hyb25vdXNseShSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIFJlc28KICAgICAg
ICAgICAgICAgICBkYXRhID0gU2hhcmVkQnVmZmVyOjpjcmVhdGVXaXRoQ29udGVudHNPZkZpbGUo
cmVzb3VyY2UtPnBhdGgoKSk7CiAgICAgICAgIH0KICAgICAgICAgaWYgKCFkYXRhKQotICAgICAg
ICAgICAgZXJyb3IgPSBtX2RvY3VtZW50TG9hZGVyLmZyYW1lTG9hZGVyKCktPmNsaWVudCgpLmNh
bm5vdFNob3dVUkxFcnJvcihyZXF1ZXN0KTsKKyAgICAgICAgICAgIGVycm9yID0gY2Fubm90U2hv
d1VSTEVycm9yKHJlcXVlc3QpOwogICAgICAgICBlbHNlCiAgICAgICAgICAgICByZXNwb25zZSA9
IHJlc291cmNlLT5yZXNwb25zZSgpOwogICAgICAgICByZXR1cm4gdHJ1ZTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0Vycm9ycy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9FcnJvcnMuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjAwNDkzNTBkYjI5MWIyZDM3ZDJlNTZmMGQ5OTlh
NjUzOWM4ZWZiYmYKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9F
cnJvcnMuY3BwCkBAIC0wLDAgKzEsMTUgQEAKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRl
ICJFcnJvcnMuaCIKKworI2luY2x1ZGUgPHd0Zi9OZXZlckRlc3Ryb3llZC5oPgorI2luY2x1ZGUg
PHd0Zi90ZXh0L1dURlN0cmluZy5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NvbnN0IFdU
Rjo6U3RyaW5nJiB3ZWJLaXRFcnJvckRvbWFpbigpCit7CisgICAgc3RhdGljIE5ldmVyRGVzdHJv
eWVkPFdURjo6U3RyaW5nPiB3ZWJLaXRFcnJvckRvbWFpblN0cmluZyhBU0NJSUxpdGVyYWwoIldl
YktpdEVycm9yRG9tYWluIikpOworICAgIHJldHVybiB3ZWJLaXRFcnJvckRvbWFpblN0cmluZzsK
K30KKworfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vRXJyb3JzLmggYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9FcnJvcnMuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5lNzVjMDE0YzQ3ZjJm
MjRlYWY2NmFkNWFiN2FmOWM5ZmU5OTVhNTY0Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vRXJyb3JzLmgKQEAgLTAsMCArMSw2MCBAQAorLyoKKyAqIENvcHlyaWdo
dCAoQykgMjAwNiwgMjAwNywgMjAwOCwgMjAwOSwgMjAxMCwgMjAxMSwgMjAxMiBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTIgR29vZ2xlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxNiBJZ2FsaWEsIFMuTC4K
KyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqCisgKiAxLiAg
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIuIAorICogMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9y
bSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQor
ICogICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZSBkaXN0cmlidXRpb24uIAorICogMy4gIE5laXRoZXIgdGhlIG5hbWUgb2YgQXBwbGUgSW5j
LiAoIkFwcGxlIikgbm9yIHRoZSBuYW1lcyBvZgorICogICAgIGl0cyBjb250cmlidXRvcnMgbWF5
IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQKKyAqICAgICBm
cm9tIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Np
b24uIAorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQU5EIElUUyBD
T05UUklCVVRPUlMgIkFTIElTIiBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECisgKiBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBV
UlBPU0UgQVJFCisgKiBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBPUiBJVFMg
Q09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZCisgKiBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUworICog
KElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOworICogTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9S
IEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5ECisgKiBPTiBBTlkgVEhF
T1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GCisgKiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYg
RXJyb3JzX2gKKyNkZWZpbmUgRXJyb3JzX2gKKworbmFtZXNwYWNlIFdURiB7CitjbGFzcyBTdHJp
bmc7Cit9CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKK2NsYXNzIFJlc291cmNlRXJyb3I7CitjbGFz
cyBSZXNvdXJjZVJlcXVlc3Q7CitjbGFzcyBSZXNvdXJjZVJlc3BvbnNlOworY2xhc3MgVVJMOwor
CitXRUJDT1JFX0VYUE9SVCBSZXNvdXJjZUVycm9yIGNhbmNlbGxlZEVycm9yKGNvbnN0IFJlc291
cmNlUmVxdWVzdCYpOworV0VCQ09SRV9FWFBPUlQgUmVzb3VyY2VFcnJvciBibG9ja2VkRXJyb3Io
Y29uc3QgUmVzb3VyY2VSZXF1ZXN0Jik7CitXRUJDT1JFX0VYUE9SVCBSZXNvdXJjZUVycm9yIGJs
b2NrZWRCeUNvbnRlbnRCbG9ja2VyRXJyb3IoY29uc3QgUmVzb3VyY2VSZXF1ZXN0Jik7CitXRUJD
T1JFX0VYUE9SVCBSZXNvdXJjZUVycm9yIGNhbm5vdFNob3dVUkxFcnJvcihjb25zdCBSZXNvdXJj
ZVJlcXVlc3QmKTsKK1dFQkNPUkVfRVhQT1JUIFJlc291cmNlRXJyb3IgaW50ZXJydXB0ZWRGb3JQ
b2xpY3lDaGFuZ2VFcnJvcihjb25zdCBSZXNvdXJjZVJlcXVlc3QmKTsKKworV0VCQ09SRV9FWFBP
UlQgUmVzb3VyY2VFcnJvciBjYW5ub3RTaG93TUlNRVR5cGVFcnJvcihjb25zdCBSZXNvdXJjZVJl
c3BvbnNlJik7CitXRUJDT1JFX0VYUE9SVCBSZXNvdXJjZUVycm9yIGZpbGVEb2VzTm90RXhpc3RF
cnJvcihjb25zdCBSZXNvdXJjZVJlc3BvbnNlJik7CitXRUJDT1JFX0VYUE9SVCBSZXNvdXJjZUVy
cm9yIHBsdWdpbldpbGxIYW5kbGVMb2FkRXJyb3IoY29uc3QgUmVzb3VyY2VSZXNwb25zZSYpOwor
CitXRUJDT1JFX0VYUE9SVCBSZXNvdXJjZUVycm9yIGludGVybmFsRXJyb3IoY29uc3QgVVJMJik7
CisKK1dFQkNPUkVfRVhQT1JUIGNvbnN0IFdURjo6U3RyaW5nJiB3ZWJLaXRFcnJvckRvbWFpbigp
OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBFcnJvcnNfaApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZWZsL0Vycm9yc0VmbC5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9lZmwvRXJyb3JzRWZsLmNwcApkZWxldGVkIGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMzI4MjZlNTY3MjczMDNiZWZkZTI5YzA4ZGU4YzU3YWI0OWRiZTM5YS4uMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9lZmwvRXJyb3JzRWZsLmNwcAorKysgL2Rldi9udWxsCkBAIC0xLDEwNSArMCwwIEBA
Ci0vKgotICogQ29weXJpZ2h0IChDKSAyMDEyIEludGVsIENvcnBvcmF0aW9uLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0Ogot
ICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92
ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkg
Zm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhl
Ci0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0
aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkg
QVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKLSAqIEFORCBBTlkgRVhQ
UkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LAotICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5F
U1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZF
TlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCi0gKiBCRSBMSUFCTEUgRk9S
IEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9S
Ci0gKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LCBQUk9DVVJFTUVOVCBPRgotICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBP
RiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCi0gKiBJTlRFUlJVUFRJT04pIEhP
V0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgot
ICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkKLSAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBP
RiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKLSAqIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaW5jbHVkZSAiY29uZmlnLmgiCi0jaW5jbHVkZSAiRXJy
b3JzRWZsLmgiCi0KLSNpbmNsdWRlICJSZXNvdXJjZUVycm9yLmgiCi0jaW5jbHVkZSAiUmVzb3Vy
Y2VSZXF1ZXN0LmgiCi0jaW5jbHVkZSAiUmVzb3VyY2VSZXNwb25zZS5oIgotCi1uYW1lc3BhY2Ug
V2ViQ29yZSB7Ci0KLVJlc291cmNlRXJyb3IgY2FuY2VsbGVkRXJyb3IoY29uc3QgUmVzb3VyY2VS
ZXF1ZXN0JiByZXF1ZXN0KQotewotICAgIHJldHVybiBSZXNvdXJjZUVycm9yKGVycm9yRG9tYWlu
TmV0d29yaywgTmV0d29ya0Vycm9yQ2FuY2VsbGVkLCByZXF1ZXN0LnVybCgpLCBBU0NJSUxpdGVy
YWwoIkxvYWQgcmVxdWVzdCBjYW5jZWxsZWQiKSk7Ci19Ci0KLVJlc291cmNlRXJyb3IgYmxvY2tl
ZEVycm9yKGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCkKLXsKLSAgICByZXR1cm4gUmVz
b3VyY2VFcnJvcihlcnJvckRvbWFpblBvbGljeSwgUG9saWN5RXJyb3JDYW5ub3RVc2VSZXN0cmlj
dGVkUG9ydCwgcmVxdWVzdC51cmwoKSwgQVNDSUlMaXRlcmFsKCJOb3QgYWxsb3dlZCB0byB1c2Ug
cmVzdHJpY3RlZCBuZXR3b3JrIHBvcnQiKSk7Ci19Ci0KLVJlc291cmNlRXJyb3IgYmxvY2tlZEJ5
Q29udGVudEJsb2NrZXJFcnJvcihjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QpCi17Ci0g
ICAgcmV0dXJuIFJlc291cmNlRXJyb3IoZXJyb3JEb21haW5Qb2xpY3ksIFBvbGljeUVycm9yQmxv
Y2tlZEJ5Q29udGVudEJsb2NrZXIsIHJlcXVlc3QudXJsKCksIEFTQ0lJTGl0ZXJhbCgiQmxvY2tl
ZCBieSBjb250ZW50IGJsb2NrZXIiKSk7Ci19Ci0KLVJlc291cmNlRXJyb3IgY2Fubm90U2hvd1VS
TEVycm9yKGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCkKLXsKLSAgICByZXR1cm4gUmVz
b3VyY2VFcnJvcihlcnJvckRvbWFpblBvbGljeSwgUG9saWN5RXJyb3JDYW5ub3RTaG93VVJMLCBy
ZXF1ZXN0LnVybCgpLCBBU0NJSUxpdGVyYWwoIlVSTCBjYW5ub3QgYmUgc2hvd24iKSk7Ci19Ci0K
LVJlc291cmNlRXJyb3IgaW50ZXJydXB0ZWRGb3JQb2xpY3lDaGFuZ2VFcnJvcihjb25zdCBSZXNv
dXJjZVJlcXVlc3QmIHJlcXVlc3QpCi17Ci0gICAgcmV0dXJuIFJlc291cmNlRXJyb3IoZXJyb3JE
b21haW5Qb2xpY3ksIFBvbGljeUVycm9yRnJhbWVMb2FkSW50ZXJydXB0ZWRCeVBvbGljeUNoYW5n
ZSwgcmVxdWVzdC51cmwoKSwgQVNDSUlMaXRlcmFsKCJGcmFtZSBsb2FkIHdhcyBpbnRlcnJ1cHRl
ZCIpKTsKLX0KLQotUmVzb3VyY2VFcnJvciBjYW5ub3RTaG93TUlNRVR5cGVFcnJvcihjb25zdCBS
ZXNvdXJjZVJlc3BvbnNlJiByZXNwb25zZSkKLXsKLSAgICByZXR1cm4gUmVzb3VyY2VFcnJvcihl
cnJvckRvbWFpblBvbGljeSwgUG9saWN5RXJyb3JDYW5ub3RTaG93TWltZVR5cGUsIHJlc3BvbnNl
LnVybCgpLCBBU0NJSUxpdGVyYWwoIkNvbnRlbnQgd2l0aCB0aGUgc3BlY2lmaWVkIE1JTUUgdHlw
ZSBjYW5ub3QgYmUgc2hvd24iKSk7Ci19Ci0KLVJlc291cmNlRXJyb3IgZmlsZURvZXNOb3RFeGlz
dEVycm9yKGNvbnN0IFJlc291cmNlUmVzcG9uc2UmIHJlc3BvbnNlKQotewotICAgIHJldHVybiBS
ZXNvdXJjZUVycm9yKGVycm9yRG9tYWluTmV0d29yaywgTmV0d29ya0Vycm9yRmlsZURvZXNOb3RF
eGlzdCwgcmVzcG9uc2UudXJsKCksIEFTQ0lJTGl0ZXJhbCgiRmlsZSBkb2VzIG5vdCBleGlzdCIp
KTsKLX0KLQotUmVzb3VyY2VFcnJvciBwbHVnaW5XaWxsSGFuZGxlTG9hZEVycm9yKGNvbnN0IFJl
c291cmNlUmVzcG9uc2UmIHJlc3BvbnNlKQotewotICAgIHJldHVybiBSZXNvdXJjZUVycm9yKGVy
cm9yRG9tYWluUGx1Z2luLCBQbHVnaW5FcnJvcldpbGxIYW5kbGVMb2FkLCByZXNwb25zZS51cmwo
KSwgQVNDSUlMaXRlcmFsKCJQbHVnaW4gd2lsbCBoYW5kbGUgbG9hZCIpKTsKLX0KLQotUmVzb3Vy
Y2VFcnJvciBkb3dubG9hZE5ldHdvcmtFcnJvcihjb25zdCBSZXNvdXJjZUVycm9yJiBuZXR3b3Jr
RXJyb3IpCi17Ci0gICAgcmV0dXJuIFJlc291cmNlRXJyb3IoZXJyb3JEb21haW5Eb3dubG9hZCwg
RG93bmxvYWRFcnJvck5ldHdvcmssIG5ldHdvcmtFcnJvci5mYWlsaW5nVVJMKCksIG5ldHdvcmtF
cnJvci5sb2NhbGl6ZWREZXNjcmlwdGlvbigpKTsKLX0KLQotUmVzb3VyY2VFcnJvciBkb3dubG9h
ZENhbmNlbGxlZEJ5VXNlckVycm9yKGNvbnN0IFJlc291cmNlUmVzcG9uc2UmIHJlc3BvbnNlKQot
ewotICAgIHJldHVybiBSZXNvdXJjZUVycm9yKGVycm9yRG9tYWluRG93bmxvYWQsIERvd25sb2Fk
RXJyb3JDYW5jZWxsZWRCeVVzZXIsIHJlc3BvbnNlLnVybCgpLCBBU0NJSUxpdGVyYWwoIlVzZXIg
Y2FuY2VsbGVkIHRoZSBkb3dubG9hZCIpKTsKLX0KLQotUmVzb3VyY2VFcnJvciBkb3dubG9hZERl
c3RpbmF0aW9uRXJyb3IoY29uc3QgUmVzb3VyY2VSZXNwb25zZSYgcmVzcG9uc2UsIGNvbnN0IFN0
cmluZyYgZXJyb3JNZXNzYWdlKQotewotICAgIHJldHVybiBSZXNvdXJjZUVycm9yKGVycm9yRG9t
YWluRG93bmxvYWQsIERvd25sb2FkRXJyb3JEZXN0aW5hdGlvbiwgcmVzcG9uc2UudXJsKCksIGVy
cm9yTWVzc2FnZSk7Ci19Ci0KLVJlc291cmNlRXJyb3IgcHJpbnRFcnJvcihjb25zdCBVUkwmIGZh
aWxpbmdVUkwsIGNvbnN0IFN0cmluZyYgZXJyb3JNZXNzYWdlKQotewotICAgIHJldHVybiBSZXNv
dXJjZUVycm9yKGVycm9yRG9tYWluUHJpbnQsIFByaW50RXJyb3JHZW5lcmFsLCBmYWlsaW5nVVJM
LCBlcnJvck1lc3NhZ2UpOwotfQotCi1SZXNvdXJjZUVycm9yIHByaW50ZXJOb3RGb3VuZEVycm9y
KGNvbnN0IFVSTCYgZmFpbGluZ1VSTCkKLXsKLSAgICByZXR1cm4gUmVzb3VyY2VFcnJvcihlcnJv
ckRvbWFpblByaW50LCBQcmludEVycm9yUHJpbnRlck5vdEZvdW5kLCBmYWlsaW5nVVJMLCBBU0NJ
SUxpdGVyYWwoIlByaW50ZXIgbm90IGZvdW5kIikpOwotfQotCi1SZXNvdXJjZUVycm9yIGludmFs
aWRQYWdlUmFuZ2VUb1ByaW50KGNvbnN0IFVSTCYgZmFpbGluZ1VSTCkKLXsKLSAgICByZXR1cm4g
UmVzb3VyY2VFcnJvcihlcnJvckRvbWFpblByaW50LCBQcmludEVycm9ySW52YWxpZFBhZ2VSYW5n
ZSwgZmFpbGluZ1VSTCwgQVNDSUlMaXRlcmFsKCJJbnZhbGlkIHBhZ2UgcmFuZ2UiKSk7Ci19Ci0K
LX0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2VmbC9FcnJvcnNFZmwuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2VmbC9FcnJvcnNF
ZmwuaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNzBmZmE2ZTY5ZGVlZTdlOWY1ODBj
ZDlkNTlmY2U3OGM2MmVkNTA0Ni4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9lZmwvRXJyb3JzRWZsLmgKKysrIC9k
ZXYvbnVsbApAQCAtMSwxMDEgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMiBJbnRl
bCBDb3Jwb3JhdGlvbi4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNv
cHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElT
IFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMg
YGBBUyBJUycnCi0gKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0Ug
QVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRS
SUJVVE9SUwotICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgotICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKLSAqIFNVQlNUSVRVVEUg
R09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUwotICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KLSAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBP
UiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCi0gKiBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GCi0gKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI2lmbmRlZiBF
cnJvcnNFZmxfaAotI2RlZmluZSBFcnJvcnNFZmxfaAotCi0jaW5jbHVkZSA8d3RmL3RleHQvV1RG
U3RyaW5nLmg+Ci0KLW5hbWVzcGFjZSBXZWJDb3JlIHsKLQotY2xhc3MgUmVzb3VyY2VFcnJvcjsK
LWNsYXNzIFJlc291cmNlUmVxdWVzdDsKLWNsYXNzIFJlc291cmNlUmVzcG9uc2U7Ci1jbGFzcyBV
Ukw7Ci0KLXN0YXRpYyBjb25zdCBjaGFyIGVycm9yRG9tYWluTmV0d29ya1tdID0gIldlYktpdE5l
dHdvcmtFcnJvciI7Ci1zdGF0aWMgY29uc3QgY2hhciBlcnJvckRvbWFpblBvbGljeVtdID0gIldl
YktpdFBvbGljeUVycm9yIjsKLXN0YXRpYyBjb25zdCBjaGFyIGVycm9yRG9tYWluUGx1Z2luW10g
PSAiV2ViS2l0UGx1Z2luRXJyb3IiOwotc3RhdGljIGNvbnN0IGNoYXIgZXJyb3JEb21haW5Eb3du
bG9hZFtdID0gIldlYktpdERvd25sb2FkRXJyb3IiOwotc3RhdGljIGNvbnN0IGNoYXIgZXJyb3JE
b21haW5QcmludFtdID0gIldlYktpdFByaW50RXJyb3IiOwotCi1lbnVtIE5ldHdvcmtFcnJvciB7
Ci0gICAgTmV0d29ya0Vycm9yRmFpbGVkID0gMzk5LAotICAgIE5ldHdvcmtFcnJvclRyYW5zcG9y
dCA9IDMwMCwKLSAgICBOZXR3b3JrRXJyb3JVbmtub3duUHJvdG9jb2wgPSAzMDEsCi0gICAgTmV0
d29ya0Vycm9yQ2FuY2VsbGVkID0gMzAyLAotICAgIE5ldHdvcmtFcnJvckZpbGVEb2VzTm90RXhp
c3QgPSAzMDMKLX07Ci0KLS8vIFN5bmMnZCB3aXRoIE1hYydzIFdlYktpdCBFcnJvcnMgYXQ6Ci0v
LyBTb3VyY2UvV2ViS2l0L21hYy9NaXNjL1dlYktpdEVycm9yc1tQcml2YXRlXS5oCi1lbnVtIFBv
bGljeUVycm9yIHsKLSAgICBQb2xpY3lFcnJvckZhaWxlZCA9IDE5OSwKLSAgICBQb2xpY3lFcnJv
ckNhbm5vdFNob3dNaW1lVHlwZSA9IDEwMCwKLSAgICBQb2xpY3lFcnJvckNhbm5vdFNob3dVUkwg
PSAxMDEsCi0gICAgUG9saWN5RXJyb3JGcmFtZUxvYWRJbnRlcnJ1cHRlZEJ5UG9saWN5Q2hhbmdl
ID0gMTAyLAotICAgIFBvbGljeUVycm9yQ2Fubm90VXNlUmVzdHJpY3RlZFBvcnQgPSAxMDMsCi0g
ICAgUG9saWN5RXJyb3JCbG9ja2VkQnlDb250ZW50QmxvY2tlciA9IDEwNCwKLX07Ci0KLWVudW0g
UGx1Z2luRXJyb3IgewotICAgIFBsdWdpbkVycm9yRmFpbGVkID0gMjk5LAotICAgIFBsdWdpbkVy
cm9yQ2Fubm90RmluZFBsdWdpbiA9IDIwMCwKLSAgICBQbHVnaW5FcnJvckNhbm5vdExvYWRQbHVn
aW4gPSAyMDEsCi0gICAgUGx1Z2luRXJyb3JKYXZhVW5hdmFpbGFibGUgPSAyMDIsCi0gICAgUGx1
Z2luRXJyb3JDb25uZWN0aW9uQ2FuY2VsbGVkID0gMjAzLAotICAgIFBsdWdpbkVycm9yV2lsbEhh
bmRsZUxvYWQgPSAyMDQKLX07Ci0KLWVudW0gRG93bmxvYWRFcnJvciB7Ci0gICAgRG93bmxvYWRF
cnJvck5ldHdvcmsgPSA0OTksCi0gICAgRG93bmxvYWRFcnJvckNhbmNlbGxlZEJ5VXNlciA9IDQw
MCwKLSAgICBEb3dubG9hZEVycm9yRGVzdGluYXRpb24gPSA0MDEKLX07Ci0KLWVudW0gUHJpbnRF
cnJvciB7Ci0gICAgUHJpbnRFcnJvckdlbmVyYWwgPSA1OTksCi0gICAgUHJpbnRFcnJvclByaW50
ZXJOb3RGb3VuZCA9IDUwMCwKLSAgICBQcmludEVycm9ySW52YWxpZFBhZ2VSYW5nZSA9IDUwMQot
fTsKLQotUmVzb3VyY2VFcnJvciBjYW5jZWxsZWRFcnJvcihjb25zdCBSZXNvdXJjZVJlcXVlc3Qm
KTsKLVJlc291cmNlRXJyb3IgYmxvY2tlZEVycm9yKGNvbnN0IFJlc291cmNlUmVxdWVzdCYpOwot
UmVzb3VyY2VFcnJvciBibG9ja2VkQnlDb250ZW50QmxvY2tlckVycm9yKGNvbnN0IFJlc291cmNl
UmVxdWVzdCYpOwotUmVzb3VyY2VFcnJvciBjYW5ub3RTaG93VVJMRXJyb3IoY29uc3QgUmVzb3Vy
Y2VSZXF1ZXN0Jik7Ci1SZXNvdXJjZUVycm9yIGludGVycnVwdGVkRm9yUG9saWN5Q2hhbmdlRXJy
b3IoY29uc3QgUmVzb3VyY2VSZXF1ZXN0Jik7Ci1SZXNvdXJjZUVycm9yIGNhbm5vdFNob3dNSU1F
VHlwZUVycm9yKGNvbnN0IFJlc291cmNlUmVzcG9uc2UmKTsKLVJlc291cmNlRXJyb3IgZmlsZURv
ZXNOb3RFeGlzdEVycm9yKGNvbnN0IFJlc291cmNlUmVzcG9uc2UmKTsKLVJlc291cmNlRXJyb3Ig
cGx1Z2luV2lsbEhhbmRsZUxvYWRFcnJvcihjb25zdCBSZXNvdXJjZVJlc3BvbnNlJik7Ci1SZXNv
dXJjZUVycm9yIGRvd25sb2FkTmV0d29ya0Vycm9yKGNvbnN0IFJlc291cmNlRXJyb3ImKTsKLVJl
c291cmNlRXJyb3IgZG93bmxvYWRDYW5jZWxsZWRCeVVzZXJFcnJvcihjb25zdCBSZXNvdXJjZVJl
c3BvbnNlJik7Ci1SZXNvdXJjZUVycm9yIGRvd25sb2FkRGVzdGluYXRpb25FcnJvcihjb25zdCBS
ZXNvdXJjZVJlc3BvbnNlJiwgY29uc3QgU3RyaW5nJiBlcnJvck1lc3NhZ2UpOwotUmVzb3VyY2VF
cnJvciBwcmludEVycm9yKGNvbnN0IFVSTCYgZmFpbGluZ1VSTCwgY29uc3QgU3RyaW5nJiBlcnJv
ck1lc3NhZ2UpOwotUmVzb3VyY2VFcnJvciBwcmludGVyTm90Rm91bmRFcnJvcihjb25zdCBVUkwm
IGZhaWxpbmdVUkwpOwotUmVzb3VyY2VFcnJvciBpbnZhbGlkUGFnZVJhbmdlVG9QcmludChjb25z
dCBVUkwmIGZhaWxpbmdVUkwpOwotCi19Ci0KLSNlbmRpZiAvLyBFcnJvcnNFZmxfaApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL0Vycm9yc0d0ay5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ndGsvRXJyb3JzR3RrLmNwcApkZWxldGVkIGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggOGRmZDE1OGIzYjRkNmM1NDRiZGIyOWE2MTU3NDFkYmRhNGI0MWE1NC4uMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ndGsvRXJyb3JzR3RrLmNwcAorKysgL2Rldi9udWxsCkBAIC0xLDEwMCArMCwwIEBA
Ci0vKgotICogQ29weXJpZ2h0IChDKSAyMDExIElnYWxpYSBTLkwuCi0gKgotICogVGhpcyBsaWJy
YXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgotICog
bW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJs
aWMKLSAqIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRp
b247IGVpdGhlcgotICogdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRp
b24pIGFueSBsYXRlciB2ZXJzaW9uLgotICoKLSAqIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRl
ZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAotICogYnV0IFdJVEhPVVQgQU5Z
IFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKLSAqIE1FUkNI
QU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUg
R05VCi0gKiBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4K
LSAqCi0gKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGlicmFy
eSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCi0gKiBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgc2Vl
IHRoZSBmaWxlIENPUFlJTkcuTElCLiAgSWYgbm90LCB3cml0ZSB0bwotICogdGhlIEZyZWUgU29m
dHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwK
LSAqIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgotICovCi0KLSNpbmNsdWRlICJjb25maWcu
aCIKLSNpbmNsdWRlICJFcnJvcnNHdGsuaCIKLQotI2luY2x1ZGUgIlJlc291cmNlRXJyb3IuaCIK
LSNpbmNsdWRlICJSZXNvdXJjZVJlcXVlc3QuaCIKLSNpbmNsdWRlICJSZXNvdXJjZVJlc3BvbnNl
LmgiCi0jaW5jbHVkZSA8Z2xpYi9naTE4bi1saWIuaD4KLQotbmFtZXNwYWNlIFdlYkNvcmUgewot
Ci1SZXNvdXJjZUVycm9yIGNhbmNlbGxlZEVycm9yKGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVx
dWVzdCkKLXsKLSAgICByZXR1cm4gUmVzb3VyY2VFcnJvcihlcnJvckRvbWFpbk5ldHdvcmssIE5l
dHdvcmtFcnJvckNhbmNlbGxlZCwgcmVxdWVzdC51cmwoKSwgXygiTG9hZCByZXF1ZXN0IGNhbmNl
bGxlZCIpKTsKLX0KLQotUmVzb3VyY2VFcnJvciBibG9ja2VkRXJyb3IoY29uc3QgUmVzb3VyY2VS
ZXF1ZXN0JiByZXF1ZXN0KQotewotICAgIHJldHVybiBSZXNvdXJjZUVycm9yKGVycm9yRG9tYWlu
UG9saWN5LCBQb2xpY3lFcnJvckNhbm5vdFVzZVJlc3RyaWN0ZWRQb3J0LCByZXF1ZXN0LnVybCgp
LCBfKCJOb3QgYWxsb3dlZCB0byB1c2UgcmVzdHJpY3RlZCBuZXR3b3JrIHBvcnQiKSk7Ci19Ci0K
LVJlc291cmNlRXJyb3IgYmxvY2tlZEJ5Q29udGVudEJsb2NrZXJFcnJvcihjb25zdCBSZXNvdXJj
ZVJlcXVlc3QmIHJlcXVlc3QpCi17Ci0gICAgcmV0dXJuIFJlc291cmNlRXJyb3IoZXJyb3JEb21h
aW5Qb2xpY3ksIFBvbGljeUVycm9yQmxvY2tlZEJ5Q29udGVudEJsb2NrZXIsIHJlcXVlc3QudXJs
KCksIF8oIkJsb2NrZWQgYnkgY29udGVudCBibG9ja2VyIikpOwotfQotCi1SZXNvdXJjZUVycm9y
IGNhbm5vdFNob3dVUkxFcnJvcihjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QpCi17Ci0g
ICAgcmV0dXJuIFJlc291cmNlRXJyb3IoZXJyb3JEb21haW5Qb2xpY3ksIFBvbGljeUVycm9yQ2Fu
bm90U2hvd1VSTCwgcmVxdWVzdC51cmwoKSwgXygiVVJMIGNhbm5vdCBiZSBzaG93biIpKTsKLX0K
LQotUmVzb3VyY2VFcnJvciBpbnRlcnJ1cHRlZEZvclBvbGljeUNoYW5nZUVycm9yKGNvbnN0IFJl
c291cmNlUmVxdWVzdCYgcmVxdWVzdCkKLXsKLSAgICByZXR1cm4gUmVzb3VyY2VFcnJvcihlcnJv
ckRvbWFpblBvbGljeSwgUG9saWN5RXJyb3JGcmFtZUxvYWRJbnRlcnJ1cHRlZEJ5UG9saWN5Q2hh
bmdlLCByZXF1ZXN0LnVybCgpLCBfKCJGcmFtZSBsb2FkIHdhcyBpbnRlcnJ1cHRlZCIpKTsKLX0K
LQotUmVzb3VyY2VFcnJvciBjYW5ub3RTaG93TUlNRVR5cGVFcnJvcihjb25zdCBSZXNvdXJjZVJl
c3BvbnNlJiByZXNwb25zZSkKLXsKLSAgICByZXR1cm4gUmVzb3VyY2VFcnJvcihlcnJvckRvbWFp
blBvbGljeSwgUG9saWN5RXJyb3JDYW5ub3RTaG93TWltZVR5cGUsIHJlc3BvbnNlLnVybCgpLCBf
KCJDb250ZW50IHdpdGggdGhlIHNwZWNpZmllZCBNSU1FIHR5cGUgY2Fubm90IGJlIHNob3duIikp
OwotfQotCi1SZXNvdXJjZUVycm9yIGZpbGVEb2VzTm90RXhpc3RFcnJvcihjb25zdCBSZXNvdXJj
ZVJlc3BvbnNlJiByZXNwb25zZSkKLXsKLSAgICByZXR1cm4gUmVzb3VyY2VFcnJvcihlcnJvckRv
bWFpbk5ldHdvcmssIE5ldHdvcmtFcnJvckZpbGVEb2VzTm90RXhpc3QsIHJlc3BvbnNlLnVybCgp
LCBfKCJGaWxlIGRvZXMgbm90IGV4aXN0IikpOwotfQotCi1SZXNvdXJjZUVycm9yIHBsdWdpbldp
bGxIYW5kbGVMb2FkRXJyb3IoY29uc3QgUmVzb3VyY2VSZXNwb25zZSYgcmVzcG9uc2UpCi17Ci0g
ICAgcmV0dXJuIFJlc291cmNlRXJyb3IoZXJyb3JEb21haW5QbHVnaW4sIFBsdWdpbkVycm9yV2ls
bEhhbmRsZUxvYWQsIHJlc3BvbnNlLnVybCgpLCBfKCJQbHVnaW4gd2lsbCBoYW5kbGUgbG9hZCIp
KTsKLX0KLQotUmVzb3VyY2VFcnJvciBkb3dubG9hZE5ldHdvcmtFcnJvcihjb25zdCBSZXNvdXJj
ZUVycm9yJiBuZXR3b3JrRXJyb3IpCi17Ci0gICAgcmV0dXJuIFJlc291cmNlRXJyb3IoZXJyb3JE
b21haW5Eb3dubG9hZCwgRG93bmxvYWRFcnJvck5ldHdvcmssIG5ldHdvcmtFcnJvci5mYWlsaW5n
VVJMKCksIG5ldHdvcmtFcnJvci5sb2NhbGl6ZWREZXNjcmlwdGlvbigpKTsKLX0KLQotUmVzb3Vy
Y2VFcnJvciBkb3dubG9hZENhbmNlbGxlZEJ5VXNlckVycm9yKGNvbnN0IFJlc291cmNlUmVzcG9u
c2UmIHJlc3BvbnNlKQotewotICAgIHJldHVybiBSZXNvdXJjZUVycm9yKGVycm9yRG9tYWluRG93
bmxvYWQsIERvd25sb2FkRXJyb3JDYW5jZWxsZWRCeVVzZXIsIHJlc3BvbnNlLnVybCgpLCBfKCJV
c2VyIGNhbmNlbGxlZCB0aGUgZG93bmxvYWQiKSk7Ci19Ci0KLVJlc291cmNlRXJyb3IgZG93bmxv
YWREZXN0aW5hdGlvbkVycm9yKGNvbnN0IFJlc291cmNlUmVzcG9uc2UmIHJlc3BvbnNlLCBjb25z
dCBTdHJpbmcmIGVycm9yTWVzc2FnZSkKLXsKLSAgICByZXR1cm4gUmVzb3VyY2VFcnJvcihlcnJv
ckRvbWFpbkRvd25sb2FkLCBEb3dubG9hZEVycm9yRGVzdGluYXRpb24sIHJlc3BvbnNlLnVybCgp
LCBlcnJvck1lc3NhZ2UpOwotfQotCi1SZXNvdXJjZUVycm9yIHByaW50RXJyb3IoY29uc3QgVVJM
JiBmYWlsaW5nVVJMLCBjb25zdCBTdHJpbmcmIGVycm9yTWVzc2FnZSkKLXsKLSAgICByZXR1cm4g
UmVzb3VyY2VFcnJvcihlcnJvckRvbWFpblByaW50LCBQcmludEVycm9yR2VuZXJhbCwgZmFpbGlu
Z1VSTCwgZXJyb3JNZXNzYWdlKTsKLX0KLQotUmVzb3VyY2VFcnJvciBwcmludGVyTm90Rm91bmRF
cnJvcihjb25zdCBVUkwmIGZhaWxpbmdVUkwpCi17Ci0gICAgcmV0dXJuIFJlc291cmNlRXJyb3Io
ZXJyb3JEb21haW5QcmludCwgUHJpbnRFcnJvclByaW50ZXJOb3RGb3VuZCwgZmFpbGluZ1VSTCwg
XygiUHJpbnRlciBub3QgZm91bmQiKSk7Ci19Ci0KLVJlc291cmNlRXJyb3IgaW52YWxpZFBhZ2VS
YW5nZVRvUHJpbnQoY29uc3QgVVJMJiBmYWlsaW5nVVJMKQotewotICAgIHJldHVybiBSZXNvdXJj
ZUVycm9yKGVycm9yRG9tYWluUHJpbnQsIFByaW50RXJyb3JJbnZhbGlkUGFnZVJhbmdlLCBmYWls
aW5nVVJMLCBfKCJJbnZhbGlkIHBhZ2UgcmFuZ2UiKSk7Ci19Ci0KLX0gLy8gbmFtZXNwYWNlIFdl
YkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9FcnJvcnNHdGsu
aCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9FcnJvcnNHdGsuaApkZWxldGVkIGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggNzYxZGNjYjI2ZWY3MDA0MWJjNzFhNzAyMWI1MDUzMGQ3ODAyODE3
MC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ndGsvRXJyb3JzR3RrLmgKKysrIC9kZXYvbnVsbApAQCAtMSw5NCAr
MCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDExIElnYWxpYSBTLkwuCi0gKgotICogVGhp
cyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9v
cgotICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJh
bCBQdWJsaWMKLSAqIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZv
dW5kYXRpb247IGVpdGhlcgotICogdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91
ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgotICoKLSAqIFRoaXMgbGlicmFyeSBpcyBkaXN0
cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAotICogYnV0IFdJVEhP
VVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKLSAq
IE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNl
ZSB0aGUgR05VCi0gKiBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0
YWlscy4KLSAqCi0gKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUg
TGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCi0gKiBhbG9uZyB3aXRoIHRoaXMgbGlicmFy
eTsgc2VlIHRoZSBmaWxlIENPUFlJTkcuTElCLiAgSWYgbm90LCB3cml0ZSB0bwotICogdGhlIEZy
ZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBG
bG9vciwKLSAqIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgotICovCi0KLSNpZm5kZWYgRXJy
b3JzR3RrX2gKLSNkZWZpbmUgRXJyb3JzR3RrX2gKLQotI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0
cmluZy5oPgotCi1uYW1lc3BhY2UgV2ViQ29yZSB7Ci0KLWNsYXNzIFJlc291cmNlRXJyb3I7Ci1j
bGFzcyBSZXNvdXJjZVJlcXVlc3Q7Ci1jbGFzcyBSZXNvdXJjZVJlc3BvbnNlOwotY2xhc3MgVVJM
OwotCi1jb25zdCBjaGFyKiBjb25zdCBlcnJvckRvbWFpbk5ldHdvcmsgPSAiV2ViS2l0TmV0d29y
a0Vycm9yIjsKLWNvbnN0IGNoYXIqIGNvbnN0IGVycm9yRG9tYWluUG9saWN5ID0gIldlYktpdFBv
bGljeUVycm9yIjsKLWNvbnN0IGNoYXIqIGNvbnN0IGVycm9yRG9tYWluUGx1Z2luID0gIldlYktp
dFBsdWdpbkVycm9yIjsKLWNvbnN0IGNoYXIqIGNvbnN0IGVycm9yRG9tYWluRG93bmxvYWQgPSAi
V2ViS2l0RG93bmxvYWRFcnJvciI7Ci1jb25zdCBjaGFyKiBjb25zdCBlcnJvckRvbWFpblByaW50
ID0gIldlYktpdFByaW50RXJyb3IiOwotCi1lbnVtIE5ldHdvcmtFcnJvciB7Ci0gICAgTmV0d29y
a0Vycm9yRmFpbGVkID0gMzk5LAotICAgIE5ldHdvcmtFcnJvclRyYW5zcG9ydCA9IDMwMCwKLSAg
ICBOZXR3b3JrRXJyb3JVbmtub3duUHJvdG9jb2wgPSAzMDEsCi0gICAgTmV0d29ya0Vycm9yQ2Fu
Y2VsbGVkID0gMzAyLAotICAgIE5ldHdvcmtFcnJvckZpbGVEb2VzTm90RXhpc3QgPSAzMDMKLX07
Ci0KLS8vIFN5bmMnZCB3aXRoIE1hYydzIFdlYktpdCBFcnJvcnMuCi1lbnVtIFBvbGljeUVycm9y
IHsKLSAgICBQb2xpY3lFcnJvckZhaWxlZCA9IDE5OSwKLSAgICBQb2xpY3lFcnJvckNhbm5vdFNo
b3dNaW1lVHlwZSA9IDEwMCwKLSAgICBQb2xpY3lFcnJvckNhbm5vdFNob3dVUkwgPSAxMDEsCi0g
ICAgUG9saWN5RXJyb3JGcmFtZUxvYWRJbnRlcnJ1cHRlZEJ5UG9saWN5Q2hhbmdlID0gMTAyLAot
ICAgIFBvbGljeUVycm9yQ2Fubm90VXNlUmVzdHJpY3RlZFBvcnQgPSAxMDMsCi0gICAgUG9saWN5
RXJyb3JCbG9ja2VkQnlDb250ZW50QmxvY2tlciA9IDEwNCwKLX07Ci0KLWVudW0gUGx1Z2luRXJy
b3IgewotICAgIFBsdWdpbkVycm9yRmFpbGVkID0gMjk5LAotICAgIFBsdWdpbkVycm9yQ2Fubm90
RmluZFBsdWdpbiA9IDIwMCwKLSAgICBQbHVnaW5FcnJvckNhbm5vdExvYWRQbHVnaW4gPSAyMDEs
Ci0gICAgUGx1Z2luRXJyb3JKYXZhVW5hdmFpbGFibGUgPSAyMDIsCi0gICAgUGx1Z2luRXJyb3JD
b25uZWN0aW9uQ2FuY2VsbGVkID0gMjAzLAotICAgIFBsdWdpbkVycm9yV2lsbEhhbmRsZUxvYWQg
PSAyMDQKLX07Ci0KLWVudW0gRG93bmxvYWRFcnJvciB7Ci0gICAgRG93bmxvYWRFcnJvck5ldHdv
cmsgPSA0OTksCi0gICAgRG93bmxvYWRFcnJvckNhbmNlbGxlZEJ5VXNlciA9IDQwMCwKLSAgICBE
b3dubG9hZEVycm9yRGVzdGluYXRpb24gPSA0MDEKLX07Ci0KLWVudW0gUHJpbnRFcnJvciB7Ci0g
ICAgUHJpbnRFcnJvckdlbmVyYWwgPSA1OTksCi0gICAgUHJpbnRFcnJvclByaW50ZXJOb3RGb3Vu
ZCA9IDUwMCwKLSAgICBQcmludEVycm9ySW52YWxpZFBhZ2VSYW5nZSA9IDUwMQotfTsKLQotUmVz
b3VyY2VFcnJvciBjYW5jZWxsZWRFcnJvcihjb25zdCBSZXNvdXJjZVJlcXVlc3QmKTsKLVJlc291
cmNlRXJyb3IgYmxvY2tlZEVycm9yKGNvbnN0IFJlc291cmNlUmVxdWVzdCYpOwotUmVzb3VyY2VF
cnJvciBibG9ja2VkQnlDb250ZW50QmxvY2tlckVycm9yKGNvbnN0IFJlc291cmNlUmVxdWVzdCYp
OwotUmVzb3VyY2VFcnJvciBjYW5ub3RTaG93VVJMRXJyb3IoY29uc3QgUmVzb3VyY2VSZXF1ZXN0
Jik7Ci1SZXNvdXJjZUVycm9yIGludGVycnVwdGVkRm9yUG9saWN5Q2hhbmdlRXJyb3IoY29uc3Qg
UmVzb3VyY2VSZXF1ZXN0Jik7Ci1SZXNvdXJjZUVycm9yIGNhbm5vdFNob3dNSU1FVHlwZUVycm9y
KGNvbnN0IFJlc291cmNlUmVzcG9uc2UmKTsKLVJlc291cmNlRXJyb3IgZmlsZURvZXNOb3RFeGlz
dEVycm9yKGNvbnN0IFJlc291cmNlUmVzcG9uc2UmKTsKLVJlc291cmNlRXJyb3IgcGx1Z2luV2ls
bEhhbmRsZUxvYWRFcnJvcihjb25zdCBSZXNvdXJjZVJlc3BvbnNlJik7Ci1SZXNvdXJjZUVycm9y
IGRvd25sb2FkTmV0d29ya0Vycm9yKGNvbnN0IFJlc291cmNlRXJyb3ImKTsKLVJlc291cmNlRXJy
b3IgZG93bmxvYWRDYW5jZWxsZWRCeVVzZXJFcnJvcihjb25zdCBSZXNvdXJjZVJlc3BvbnNlJik7
Ci1SZXNvdXJjZUVycm9yIGRvd25sb2FkRGVzdGluYXRpb25FcnJvcihjb25zdCBSZXNvdXJjZVJl
c3BvbnNlJiwgY29uc3QgU3RyaW5nJiBlcnJvck1lc3NhZ2UpOwotUmVzb3VyY2VFcnJvciBwcmlu
dEVycm9yKGNvbnN0IFVSTCYgZmFpbGluZ1VSTCwgY29uc3QgU3RyaW5nJiBlcnJvck1lc3NhZ2Up
OwotUmVzb3VyY2VFcnJvciBwcmludGVyTm90Rm91bmRFcnJvcihjb25zdCBVUkwmIGZhaWxpbmdV
UkwpOwotUmVzb3VyY2VFcnJvciBpbnZhbGlkUGFnZVJhbmdlVG9QcmludChjb25zdCBVUkwmIGZh
aWxpbmdVUkwpOwotCi19Ci0KLSNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbWFjL0Vycm9yc01hYy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9FcnJv
cnNNYWMubW0KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uNWMwYzU0YTgxZjI4ODg1OWJkZDUxMGJjM2I1NmQ3YWUxYWFh
ZTc5YQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9FcnJv
cnNNYWMubW0KQEAgLTAsMCArMSwxMTEgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElT
JycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFO
VEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElT
Q0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JT
CisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVD
SUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisg
KiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQg
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAq
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW1wb3J0ICJjb25maWcu
aCIKKyNpbXBvcnQgIkVycm9ycy5oIgorCisjaW1wb3J0ICJMb2NhbGl6ZWRTdHJpbmdzLmgiCisj
aW1wb3J0ICJSZXNvdXJjZUVycm9yLmgiCisjaW1wb3J0ICJSZXNvdXJjZVJlcXVlc3QuaCIKKyNp
bXBvcnQgIlJlc291cmNlUmVzcG9uc2UuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitlbnVt
IHsKKyAgICBrV0tFcnJvckNvZGVDYW5ub3RTaG93TUlNRVR5cGUgPSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgMTAwLAorICAgIGtXS0Vycm9yQ29kZUNhbm5vdFNob3dVUkwgPSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAxMDEsCisgICAga1dLRXJyb3JDb2RlRnJhbWVMb2Fk
SW50ZXJydXB0ZWRCeVBvbGljeUNoYW5nZSA9ICAgICAgICAgICAgIDEwMiwKKyAgICBrV0tFcnJv
ckNvZGVDYW5ub3RVc2VSZXN0cmljdGVkUG9ydCA9ICAgICAgICAgICAgICAgICAgICAgICAgMTAz
LAorICAgIGtXS0Vycm9yQ29kZUZyYW1lTG9hZEJsb2NrZWRCeUNvbnRlbnRCbG9ja2VyID0gICAg
ICAgICAgICAgICAxMDQsCisgICAga1dLRXJyb3JDb2RlQ2Fubm90RmluZFBsdWdJbiA9ICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIDIwMCwKKyAgICBrV0tFcnJvckNvZGVDYW5ub3RMb2Fk
UGx1Z0luID0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMjAxLAorICAgIGtXS0Vycm9y
Q29kZUphdmFVbmF2YWlsYWJsZSA9ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyMDIs
CisgICAga1dLRXJyb3JDb2RlUGx1Z0luQ2FuY2VsbGVkQ29ubmVjdGlvbiA9ICAgICAgICAgICAg
ICAgICAgICAgIDIwMywKKyAgICBrV0tFcnJvckNvZGVQbHVnSW5XaWxsSGFuZGxlTG9hZCA9ICAg
ICAgICAgICAgICAgICAgICAgICAgICAgMjA0LAorICAgIGtXS0Vycm9yQ29kZUluc2VjdXJlUGx1
Z0luVmVyc2lvbiA9ICAgICAgICAgICAgICAgICAgICAgICAgICAyMDUsCisgICAga1dLRXJyb3JJ
bnRlcm5hbCA9ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDMwMCwK
K307CisKK3N0YXRpYyBSZXRhaW5QdHI8TlNFcnJvcj4gY3JlYXRlTlNFcnJvcihOU1N0cmluZyog
ZG9tYWluLCBpbnQgY29kZSwgTlNVUkwgKlVSTCkKK3sKKyAgICBOU0RpY3Rpb25hcnkgKnVzZXJJ
bmZvID0gW05TRGljdGlvbmFyeSBkaWN0aW9uYXJ5V2l0aE9iamVjdHNBbmRLZXlzOgorICAgICAg
ICBVUkwsIEAiTlNFcnJvckZhaWxpbmdVUkxLZXkiLAorICAgICAgICBbVVJMIGFic29sdXRlU3Ry
aW5nXSwgQCJOU0Vycm9yRmFpbGluZ1VSTFN0cmluZ0tleSIsCisgICAgICAgIG5pbF07CisKKyAg
ICByZXR1cm4gYWRvcHROUyhbW05TRXJyb3IgYWxsb2NdIGluaXRXaXRoRG9tYWluOmRvbWFpbiBj
b2RlOmNvZGUgdXNlckluZm86dXNlckluZm9dKTsKK30KKworLy8gVXNlIE5TRXJyb3IncyBpZiBh
dmFpbGFibGUuCisKK1Jlc291cmNlRXJyb3IgY2FuY2VsbGVkRXJyb3IoY29uc3QgUmVzb3VyY2VS
ZXF1ZXN0JiByZXF1ZXN0KQoreworICAgIHJldHVybiBSZXNvdXJjZUVycm9yKGNyZWF0ZU5TRXJy
b3IoTlNVUkxFcnJvckRvbWFpbiwgTlNVUkxFcnJvckNhbmNlbGxlZCwgcmVxdWVzdC51cmwoKSku
Z2V0KCkpOworfQorCitSZXNvdXJjZUVycm9yIGZpbGVEb2VzTm90RXhpc3RFcnJvcihjb25zdCBS
ZXNvdXJjZVJlc3BvbnNlJiByZXNwb25zZSkKK3sKKyAgICByZXR1cm4gUmVzb3VyY2VFcnJvcihj
cmVhdGVOU0Vycm9yKE5TVVJMRXJyb3JEb21haW4sIE5TVVJMRXJyb3JGaWxlRG9lc05vdEV4aXN0
LCByZXNwb25zZS51cmwoKSkuZ2V0KCkpOworfQorCisKKy8vIE90aGVyd2lzZSwgZmFsbGJhY2sg
dG8gb3VyIG93biBlcnJvcnMuCisKK1Jlc291cmNlRXJyb3IgYmxvY2tlZEVycm9yKGNvbnN0IFJl
c291cmNlUmVxdWVzdCYgcmVxdWVzdCkKK3sKKyAgICByZXR1cm4gUmVzb3VyY2VFcnJvcih3ZWJL
aXRFcnJvckRvbWFpbigpLCBrV0tFcnJvckNvZGVDYW5ub3RVc2VSZXN0cmljdGVkUG9ydCwgcmVx
dWVzdC51cmwoKSwgV0VCX1VJX1NUUklORygiTm90IGFsbG93ZWQgdG8gdXNlIHJlc3RyaWN0ZWQg
bmV0d29yayBwb3J0IiwgIldlYktpdEVycm9yQ2Fubm90VXNlUmVzdHJpY3RlZFBvcnQgZGVzY3Jp
cHRpb24iKSk7Cit9CisKK1Jlc291cmNlRXJyb3IgYmxvY2tlZEJ5Q29udGVudEJsb2NrZXJFcnJv
cihjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QpCit7CisgICAgcmV0dXJuIFJlc291cmNl
RXJyb3Iod2ViS2l0RXJyb3JEb21haW4oKSwga1dLRXJyb3JDb2RlRnJhbWVMb2FkQmxvY2tlZEJ5
Q29udGVudEJsb2NrZXIsIHJlcXVlc3QudXJsKCksIFdFQl9VSV9TVFJJTkcoIlRoZSBVUkwgd2Fz
IGJsb2NrZWQgYnkgYSBjb250ZW50IGJsb2NrZXIiLCAiV2ViS2l0RXJyb3JCbG9ja2VkQnlDb250
ZW50QmxvY2tlciBkZXNjcmlwdGlvbiIpKTsKK30KKworUmVzb3VyY2VFcnJvciBjYW5ub3RTaG93
VVJMRXJyb3IoY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0KQoreworICAgIHJldHVybiBS
ZXNvdXJjZUVycm9yKHdlYktpdEVycm9yRG9tYWluKCksIGtXS0Vycm9yQ29kZUNhbm5vdFNob3dV
UkwsIHJlcXVlc3QudXJsKCksIFdFQl9VSV9TVFJJTkcoIlRoZSBVUkwgY2Fu4oCZdCBiZSBzaG93
biIsICJXZWJLaXRFcnJvckNhbm5vdFNob3dVUkwgZGVzY3JpcHRpb24iKSk7Cit9CisKK1Jlc291
cmNlRXJyb3IgaW50ZXJydXB0ZWRGb3JQb2xpY3lDaGFuZ2VFcnJvcihjb25zdCBSZXNvdXJjZVJl
cXVlc3QmIHJlcXVlc3QpCit7CisgICAgcmV0dXJuIFJlc291cmNlRXJyb3Iod2ViS2l0RXJyb3JE
b21haW4oKSwga1dLRXJyb3JDb2RlRnJhbWVMb2FkSW50ZXJydXB0ZWRCeVBvbGljeUNoYW5nZSwg
cmVxdWVzdC51cmwoKSwgV0VCX1VJX1NUUklORygiRnJhbWUgbG9hZCBpbnRlcnJ1cHRlZCIsICJX
ZWJLaXRFcnJvckZyYW1lTG9hZEludGVycnVwdGVkQnlQb2xpY3lDaGFuZ2UgZGVzY3JpcHRpb24i
KSk7Cit9CisKK1Jlc291cmNlRXJyb3IgY2Fubm90U2hvd01JTUVUeXBlRXJyb3IoY29uc3QgUmVz
b3VyY2VSZXNwb25zZSYgcmVzcG9uc2UpCit7CisgICAgcmV0dXJuIFJlc291cmNlRXJyb3Iod2Vi
S2l0RXJyb3JEb21haW4oKSwga1dLRXJyb3JDb2RlQ2Fubm90U2hvd01JTUVUeXBlLCByZXNwb25z
ZS51cmwoKSwgV0VCX1VJX1NUUklORygiQ29udGVudCB3aXRoIHNwZWNpZmllZCBNSU1FIHR5cGUg
Y2Fu4oCZdCBiZSBzaG93biIsICJXZWJLaXRFcnJvckNhbm5vdFNob3dNSU1FVHlwZSBkZXNjcmlw
dGlvbiIpKTsKK30KKworUmVzb3VyY2VFcnJvciBwbHVnaW5XaWxsSGFuZGxlTG9hZEVycm9yKGNv
bnN0IFJlc291cmNlUmVzcG9uc2UmIHJlc3BvbnNlKQoreworICAgIHJldHVybiBSZXNvdXJjZUVy
cm9yKHdlYktpdEVycm9yRG9tYWluKCksIGtXS0Vycm9yQ29kZVBsdWdJbldpbGxIYW5kbGVMb2Fk
LCByZXNwb25zZS51cmwoKSwgV0VCX1VJX1NUUklORygiUGx1Zy1pbiBoYW5kbGVkIGxvYWQiLCAi
V2ViS2l0RXJyb3JQbHVnSW5XaWxsSGFuZGxlTG9hZCBkZXNjcmlwdGlvbiIpKTsKK30KKworUmVz
b3VyY2VFcnJvciBpbnRlcm5hbEVycm9yKGNvbnN0IFVSTCYgdXJsKQoreworICAgIHJldHVybiBS
ZXNvdXJjZUVycm9yKHdlYktpdEVycm9yRG9tYWluKCksIGtXS0Vycm9ySW50ZXJuYWwsIHVybCwg
V0VCX1VJX1NUUklORygiV2ViS2l0IGVuY291bnRlcmVkIGFuIGludGVybmFsIGVycm9yIiwgIldl
YktpdEVycm9ySW50ZXJuYWwgZGVzY3JpcHRpb24iKSk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdl
YkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3VuaXgvRXJyb3JzVW5p
eC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS91bml4L0Vycm9yc1VuaXguY3BwCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLmIxNmY0OTI5YmJlNTBlNjA1ZjY0YzQ3Yzk0MDdhYjQ2MjJmZDUwNDMKLS0tIC9kZXYv
bnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS91bml4L0Vycm9yc1VuaXguY3BwCkBA
IC0wLDAgKzEsMTEyIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDExIElnYWxpYSBTLkwuCisg
KgorICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRl
IGl0IGFuZC9vcgorICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJh
cnkgR2VuZXJhbCBQdWJsaWMKKyAqIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNv
ZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgorICogdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBv
ciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorICoKKyAqIFRoaXMgbGlicmFy
eSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICog
YnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFu
dHkgb2YKKyAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVS
UE9TRS4gIFNlZSB0aGUgR05VCisgKiBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9y
IG1vcmUgZGV0YWlscy4KKyAqCisgKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9m
IHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgKiBhbG9uZyB3aXRoIHRo
aXMgbGlicmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJTkcuTElCLiAgSWYgbm90LCB3cml0ZSB0bwor
ICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0
LCBGaWZ0aCBGbG9vciwKKyAqIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgorICovCisKKyNp
bmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJFcnJvcnNVbml4LmgiCisKKyNpbmNsdWRlICJF
cnJvcnMuaCIKKyNpbmNsdWRlICJSZXNvdXJjZUVycm9yLmgiCisjaW5jbHVkZSAiUmVzb3VyY2VS
ZXF1ZXN0LmgiCisjaW5jbHVkZSAiUmVzb3VyY2VSZXNwb25zZS5oIgorCisjaWYgUExBVEZPUk0o
R1RLKQorI2luY2x1ZGUgPGdsaWIvZ2kxOG4tbGliLmg+CisjZGVmaW5lIEVSUk9SX1NUUklORyhz
KSBfKHMpCisjZWxpZiBQTEFURk9STShFRkwpCisjZGVmaW5lIEVSUk9SX1NUUklORyhzKSBBU0NJ
SUxpdGVyYWwocykKKyNlbmRpZgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK1Jlc291cmNlRXJy
b3IgY2FuY2VsbGVkRXJyb3IoY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0KQoreworICAg
IHJldHVybiBSZXNvdXJjZUVycm9yKGVycm9yRG9tYWluTmV0d29yaywgTmV0d29ya0Vycm9yQ2Fu
Y2VsbGVkLCByZXF1ZXN0LnVybCgpLCBFUlJPUl9TVFJJTkcoIkxvYWQgcmVxdWVzdCBjYW5jZWxs
ZWQiKSk7Cit9CisKK1Jlc291cmNlRXJyb3IgYmxvY2tlZEVycm9yKGNvbnN0IFJlc291cmNlUmVx
dWVzdCYgcmVxdWVzdCkKK3sKKyAgICByZXR1cm4gUmVzb3VyY2VFcnJvcihlcnJvckRvbWFpblBv
bGljeSwgUG9saWN5RXJyb3JDYW5ub3RVc2VSZXN0cmljdGVkUG9ydCwgcmVxdWVzdC51cmwoKSwg
RVJST1JfU1RSSU5HKCJOb3QgYWxsb3dlZCB0byB1c2UgcmVzdHJpY3RlZCBuZXR3b3JrIHBvcnQi
KSk7Cit9CisKK1Jlc291cmNlRXJyb3IgYmxvY2tlZEJ5Q29udGVudEJsb2NrZXJFcnJvcihjb25z
dCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QpCit7CisgICAgcmV0dXJuIFJlc291cmNlRXJyb3Io
ZXJyb3JEb21haW5Qb2xpY3ksIFBvbGljeUVycm9yQmxvY2tlZEJ5Q29udGVudEJsb2NrZXIsIHJl
cXVlc3QudXJsKCksIEVSUk9SX1NUUklORygiQmxvY2tlZCBieSBjb250ZW50IGJsb2NrZXIiKSk7
Cit9CisKK1Jlc291cmNlRXJyb3IgY2Fubm90U2hvd1VSTEVycm9yKGNvbnN0IFJlc291cmNlUmVx
dWVzdCYgcmVxdWVzdCkKK3sKKyAgICByZXR1cm4gUmVzb3VyY2VFcnJvcihlcnJvckRvbWFpblBv
bGljeSwgUG9saWN5RXJyb3JDYW5ub3RTaG93VVJMLCByZXF1ZXN0LnVybCgpLCBFUlJPUl9TVFJJ
TkcoIlVSTCBjYW5ub3QgYmUgc2hvd24iKSk7Cit9CisKK1Jlc291cmNlRXJyb3IgaW50ZXJydXB0
ZWRGb3JQb2xpY3lDaGFuZ2VFcnJvcihjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QpCit7
CisgICAgcmV0dXJuIFJlc291cmNlRXJyb3IoZXJyb3JEb21haW5Qb2xpY3ksIFBvbGljeUVycm9y
RnJhbWVMb2FkSW50ZXJydXB0ZWRCeVBvbGljeUNoYW5nZSwgcmVxdWVzdC51cmwoKSwgRVJST1Jf
U1RSSU5HKCJGcmFtZSBsb2FkIHdhcyBpbnRlcnJ1cHRlZCIpKTsKK30KKworUmVzb3VyY2VFcnJv
ciBjYW5ub3RTaG93TUlNRVR5cGVFcnJvcihjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiByZXNwb25z
ZSkKK3sKKyAgICByZXR1cm4gUmVzb3VyY2VFcnJvcihlcnJvckRvbWFpblBvbGljeSwgUG9saWN5
RXJyb3JDYW5ub3RTaG93TWltZVR5cGUsIHJlc3BvbnNlLnVybCgpLCBFUlJPUl9TVFJJTkcoIkNv
bnRlbnQgd2l0aCB0aGUgc3BlY2lmaWVkIE1JTUUgdHlwZSBjYW5ub3QgYmUgc2hvd24iKSk7Cit9
CisKK1Jlc291cmNlRXJyb3IgZmlsZURvZXNOb3RFeGlzdEVycm9yKGNvbnN0IFJlc291cmNlUmVz
cG9uc2UmIHJlc3BvbnNlKQoreworICAgIHJldHVybiBSZXNvdXJjZUVycm9yKGVycm9yRG9tYWlu
TmV0d29yaywgTmV0d29ya0Vycm9yRmlsZURvZXNOb3RFeGlzdCwgcmVzcG9uc2UudXJsKCksIEVS
Uk9SX1NUUklORygiRmlsZSBkb2VzIG5vdCBleGlzdCIpKTsKK30KKworUmVzb3VyY2VFcnJvciBw
bHVnaW5XaWxsSGFuZGxlTG9hZEVycm9yKGNvbnN0IFJlc291cmNlUmVzcG9uc2UmIHJlc3BvbnNl
KQoreworICAgIHJldHVybiBSZXNvdXJjZUVycm9yKGVycm9yRG9tYWluUGx1Z2luLCBQbHVnaW5F
cnJvcldpbGxIYW5kbGVMb2FkLCByZXNwb25zZS51cmwoKSwgRVJST1JfU1RSSU5HKCJQbHVnaW4g
d2lsbCBoYW5kbGUgbG9hZCIpKTsKK30KKworUmVzb3VyY2VFcnJvciBkb3dubG9hZE5ldHdvcmtF
cnJvcihjb25zdCBSZXNvdXJjZUVycm9yJiBuZXR3b3JrRXJyb3IpCit7CisgICAgcmV0dXJuIFJl
c291cmNlRXJyb3IoZXJyb3JEb21haW5Eb3dubG9hZCwgRG93bmxvYWRFcnJvck5ldHdvcmssIG5l
dHdvcmtFcnJvci5mYWlsaW5nVVJMKCksIG5ldHdvcmtFcnJvci5sb2NhbGl6ZWREZXNjcmlwdGlv
bigpKTsKK30KKworUmVzb3VyY2VFcnJvciBkb3dubG9hZENhbmNlbGxlZEJ5VXNlckVycm9yKGNv
bnN0IFJlc291cmNlUmVzcG9uc2UmIHJlc3BvbnNlKQoreworICAgIHJldHVybiBSZXNvdXJjZUVy
cm9yKGVycm9yRG9tYWluRG93bmxvYWQsIERvd25sb2FkRXJyb3JDYW5jZWxsZWRCeVVzZXIsIHJl
c3BvbnNlLnVybCgpLCBFUlJPUl9TVFJJTkcoIlVzZXIgY2FuY2VsbGVkIHRoZSBkb3dubG9hZCIp
KTsKK30KKworUmVzb3VyY2VFcnJvciBkb3dubG9hZERlc3RpbmF0aW9uRXJyb3IoY29uc3QgUmVz
b3VyY2VSZXNwb25zZSYgcmVzcG9uc2UsIGNvbnN0IFN0cmluZyYgZXJyb3JNZXNzYWdlKQorewor
ICAgIHJldHVybiBSZXNvdXJjZUVycm9yKGVycm9yRG9tYWluRG93bmxvYWQsIERvd25sb2FkRXJy
b3JEZXN0aW5hdGlvbiwgcmVzcG9uc2UudXJsKCksIGVycm9yTWVzc2FnZSk7Cit9CisKK1Jlc291
cmNlRXJyb3IgcHJpbnRFcnJvcihjb25zdCBVUkwmIGZhaWxpbmdVUkwsIGNvbnN0IFN0cmluZyYg
ZXJyb3JNZXNzYWdlKQoreworICAgIHJldHVybiBSZXNvdXJjZUVycm9yKGVycm9yRG9tYWluUHJp
bnQsIFByaW50RXJyb3JHZW5lcmFsLCBmYWlsaW5nVVJMLCBlcnJvck1lc3NhZ2UpOworfQorCitS
ZXNvdXJjZUVycm9yIHByaW50ZXJOb3RGb3VuZEVycm9yKGNvbnN0IFVSTCYgZmFpbGluZ1VSTCkK
K3sKKyAgICByZXR1cm4gUmVzb3VyY2VFcnJvcihlcnJvckRvbWFpblByaW50LCBQcmludEVycm9y
UHJpbnRlck5vdEZvdW5kLCBmYWlsaW5nVVJMLCBFUlJPUl9TVFJJTkcoIlByaW50ZXIgbm90IGZv
dW5kIikpOworfQorCitSZXNvdXJjZUVycm9yIGludmFsaWRQYWdlUmFuZ2VUb1ByaW50KGNvbnN0
IFVSTCYgZmFpbGluZ1VSTCkKK3sKKyAgICByZXR1cm4gUmVzb3VyY2VFcnJvcihlcnJvckRvbWFp
blByaW50LCBQcmludEVycm9ySW52YWxpZFBhZ2VSYW5nZSwgZmFpbGluZ1VSTCwgRVJST1JfU1RS
SU5HKCJJbnZhbGlkIHBhZ2UgcmFuZ2UiKSk7Cit9CisKK1Jlc291cmNlRXJyb3IgaW50ZXJuYWxF
cnJvcihjb25zdCBVUkwmIHVybCkKK3sKKyAgICByZXR1cm4gUmVzb3VyY2VFcnJvcih3ZWJLaXRF
cnJvckRvbWFpbigpLCBQb2xpY3lFcnJvckludGVybmFsLCB1cmwsIEVSUk9SX1NUUklORygiSW50
ZXJuYWwgZXJyb3IiKSk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3VuaXgvRXJyb3JzVW5peC5oIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vdW5peC9FcnJvcnNVbml4LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNDFmMjVlNTFjYTUwYjJj
ZjNjYWIzODAzOThhNjkxMzY4NWYzYWJmYgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL3VuaXgvRXJyb3JzVW5peC5oCkBAIC0wLDAgKzEsODcgQEAKKy8qCisgKiBD
b3B5cmlnaHQgKEMpIDIwMTEsIDIwMTYgSWdhbGlhIFMuTC4KKyAqCisgKiBUaGlzIGxpYnJhcnkg
aXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgKiBtb2Rp
ZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYwor
ICogTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsg
ZWl0aGVyCisgKiB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikg
YW55IGxhdGVyIHZlcnNpb24uCisgKgorICogVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGlu
IHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgKiBidXQgV0lUSE9VVCBBTlkgV0FS
UkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICogTUVSQ0hBTlRB
QklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUK
KyAqIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorICoK
KyAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdl
bmVyYWwgUHVibGljIExpY2Vuc2UKKyAqIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhl
IGZpbGUgQ09QWUlORy5MSUIuICBJZiBub3QsIHdyaXRlIHRvCisgKiB0aGUgRnJlZSBTb2Z0d2Fy
ZSBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLAorICog
Qm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0EuCisgKi8KKworI2lmbmRlZiBFcnJvcnNVbml4X2gK
KyNkZWZpbmUgRXJyb3JzVW5peF9oCisKKyNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4K
KworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBSZXNvdXJjZUVycm9yOworY2xhc3MgUmVz
b3VyY2VSZXF1ZXN0OworY2xhc3MgUmVzb3VyY2VSZXNwb25zZTsKK2NsYXNzIFVSTDsKKworY29u
c3QgY2hhciogY29uc3QgZXJyb3JEb21haW5OZXR3b3JrID0gIldlYktpdE5ldHdvcmtFcnJvciI7
Citjb25zdCBjaGFyKiBjb25zdCBlcnJvckRvbWFpblBvbGljeSA9ICJXZWJLaXRQb2xpY3lFcnJv
ciI7Citjb25zdCBjaGFyKiBjb25zdCBlcnJvckRvbWFpblBsdWdpbiA9ICJXZWJLaXRQbHVnaW5F
cnJvciI7Citjb25zdCBjaGFyKiBjb25zdCBlcnJvckRvbWFpbkRvd25sb2FkID0gIldlYktpdERv
d25sb2FkRXJyb3IiOworY29uc3QgY2hhciogY29uc3QgZXJyb3JEb21haW5QcmludCA9ICJXZWJL
aXRQcmludEVycm9yIjsKKworZW51bSBOZXR3b3JrRXJyb3IgeworICAgIE5ldHdvcmtFcnJvckZh
aWxlZCA9IDM5OSwKKyAgICBOZXR3b3JrRXJyb3JVbmtub3duUHJvdG9jb2wgPSAzMDEsCisgICAg
TmV0d29ya0Vycm9yQ2FuY2VsbGVkID0gMzAyLAorICAgIE5ldHdvcmtFcnJvckZpbGVEb2VzTm90
RXhpc3QgPSAzMDMsCisgICAgTmV0d29ya0Vycm9yVHJhbnNwb3J0ID0gMzA0LAorfTsKKworLy8g
U3luYydkIHdpdGggTWFjJ3MgV2ViS2l0IEVycm9ycy4KK2VudW0gUG9saWN5RXJyb3IgeworICAg
IFBvbGljeUVycm9ySW50ZXJuYWwgPSAzMDAsCisgICAgUG9saWN5RXJyb3JGYWlsZWQgPSAxOTks
CisgICAgUG9saWN5RXJyb3JDYW5ub3RTaG93TWltZVR5cGUgPSAxMDAsCisgICAgUG9saWN5RXJy
b3JDYW5ub3RTaG93VVJMID0gMTAxLAorICAgIFBvbGljeUVycm9yRnJhbWVMb2FkSW50ZXJydXB0
ZWRCeVBvbGljeUNoYW5nZSA9IDEwMiwKKyAgICBQb2xpY3lFcnJvckNhbm5vdFVzZVJlc3RyaWN0
ZWRQb3J0ID0gMTAzLAorICAgIFBvbGljeUVycm9yQmxvY2tlZEJ5Q29udGVudEJsb2NrZXIgPSAx
MDQsCit9OworCitlbnVtIFBsdWdpbkVycm9yIHsKKyAgICBQbHVnaW5FcnJvckZhaWxlZCA9IDI5
OSwKKyAgICBQbHVnaW5FcnJvckNhbm5vdEZpbmRQbHVnaW4gPSAyMDAsCisgICAgUGx1Z2luRXJy
b3JDYW5ub3RMb2FkUGx1Z2luID0gMjAxLAorICAgIFBsdWdpbkVycm9ySmF2YVVuYXZhaWxhYmxl
ID0gMjAyLAorICAgIFBsdWdpbkVycm9yQ29ubmVjdGlvbkNhbmNlbGxlZCA9IDIwMywKKyAgICBQ
bHVnaW5FcnJvcldpbGxIYW5kbGVMb2FkID0gMjA0Cit9OworCitlbnVtIERvd25sb2FkRXJyb3Ig
eworICAgIERvd25sb2FkRXJyb3JOZXR3b3JrID0gNDk5LAorICAgIERvd25sb2FkRXJyb3JDYW5j
ZWxsZWRCeVVzZXIgPSA0MDAsCisgICAgRG93bmxvYWRFcnJvckRlc3RpbmF0aW9uID0gNDAxCit9
OworCitlbnVtIFByaW50RXJyb3IgeworICAgIFByaW50RXJyb3JHZW5lcmFsID0gNTk5LAorICAg
IFByaW50RXJyb3JQcmludGVyTm90Rm91bmQgPSA1MDAsCisgICAgUHJpbnRFcnJvckludmFsaWRQ
YWdlUmFuZ2UgPSA1MDEKK307CisKK1Jlc291cmNlRXJyb3IgZG93bmxvYWROZXR3b3JrRXJyb3Io
Y29uc3QgUmVzb3VyY2VFcnJvciYpOworUmVzb3VyY2VFcnJvciBkb3dubG9hZENhbmNlbGxlZEJ5
VXNlckVycm9yKGNvbnN0IFJlc291cmNlUmVzcG9uc2UmKTsKK1Jlc291cmNlRXJyb3IgZG93bmxv
YWREZXN0aW5hdGlvbkVycm9yKGNvbnN0IFJlc291cmNlUmVzcG9uc2UmLCBjb25zdCBTdHJpbmcm
IGVycm9yTWVzc2FnZSk7CitSZXNvdXJjZUVycm9yIHByaW50RXJyb3IoY29uc3QgVVJMJiBmYWls
aW5nVVJMLCBjb25zdCBTdHJpbmcmIGVycm9yTWVzc2FnZSk7CitSZXNvdXJjZUVycm9yIHByaW50
ZXJOb3RGb3VuZEVycm9yKGNvbnN0IFVSTCYgZmFpbGluZ1VSTCk7CitSZXNvdXJjZUVycm9yIGlu
dmFsaWRQYWdlUmFuZ2VUb1ByaW50KGNvbnN0IFVSTCYgZmFpbGluZ1VSTCk7CisKK30KKworI2Vu
ZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFt
ZUxvYWRlckNsaWVudC5oIGIvU291cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViRnJh
bWVMb2FkZXJDbGllbnQuaAppbmRleCAzMDJhM2NiZWVhMzhiYWFmZDIyNzJmMWJjZjJjYTZkNWM4
ZTY0Njg1Li4xMzNkZDc2NjdlNzRmNGIxZmIzYjMxYTliOWQ3NTYwOWEwZDc1ZWU4IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVu
dC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVy
Q2xpZW50LmgKQEAgLTE1OCwxNiArMTU4LDYgQEAgcHJpdmF0ZToKICAgICB2b2lkIGRpZFJ1bklu
c2VjdXJlQ29udGVudChXZWJDb3JlOjpTZWN1cml0eU9yaWdpbiosIGNvbnN0IFdlYkNvcmU6OlVS
TCYpIG92ZXJyaWRlOwogICAgIHZvaWQgZGlkRGV0ZWN0WFNTKGNvbnN0IFdlYkNvcmU6OlVSTCYs
IGJvb2wgZGlkQmxvY2tFbnRpcmVQYWdlKSBvdmVycmlkZTsKIAotICAgIFdlYkNvcmU6OlJlc291
cmNlRXJyb3IgY2FuY2VsbGVkRXJyb3IoY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0Jikg
b3ZlcnJpZGU7Ci0gICAgV2ViQ29yZTo6UmVzb3VyY2VFcnJvciBibG9ja2VkRXJyb3IoY29uc3Qg
V2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0Jikgb3ZlcnJpZGU7Ci0gICAgV2ViQ29yZTo6UmVzb3Vy
Y2VFcnJvciBibG9ja2VkQnlDb250ZW50QmxvY2tlckVycm9yKGNvbnN0IFdlYkNvcmU6OlJlc291
cmNlUmVxdWVzdCYpIG92ZXJyaWRlOwotICAgIFdlYkNvcmU6OlJlc291cmNlRXJyb3IgY2Fubm90
U2hvd1VSTEVycm9yKGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYpIG92ZXJyaWRlOwot
ICAgIFdlYkNvcmU6OlJlc291cmNlRXJyb3IgaW50ZXJydXB0ZWRGb3JQb2xpY3lDaGFuZ2VFcnJv
cihjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmKSBvdmVycmlkZTsKLQotICAgIFdlYkNv
cmU6OlJlc291cmNlRXJyb3IgY2Fubm90U2hvd01JTUVUeXBlRXJyb3IoY29uc3QgV2ViQ29yZTo6
UmVzb3VyY2VSZXNwb25zZSYpIG92ZXJyaWRlOwotICAgIFdlYkNvcmU6OlJlc291cmNlRXJyb3Ig
ZmlsZURvZXNOb3RFeGlzdEVycm9yKGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UmKSBv
dmVycmlkZTsKLSAgICBXZWJDb3JlOjpSZXNvdXJjZUVycm9yIHBsdWdpbldpbGxIYW5kbGVMb2Fk
RXJyb3IoY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSYpIG92ZXJyaWRlOwotCiAgICAg
Ym9vbCBzaG91bGRGYWxsQmFjayhjb25zdCBXZWJDb3JlOjpSZXNvdXJjZUVycm9yJikgb3ZlcnJp
ZGU7CiAKICAgICBXVEY6OlN0cmluZyB1c2VyQWdlbnQoY29uc3QgV2ViQ29yZTo6VVJMJikgb3Zl
cnJpZGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJG
cmFtZUxvYWRlckNsaWVudC5tbSBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dl
YkZyYW1lTG9hZGVyQ2xpZW50Lm1tCmluZGV4IDU4ODRjMTJlMTc0MTUwYTcyYzQwODYzOGMyNmM1
ZmI3NzM1NmNhZDcuLjNhOTQ4Nzc2ZTNiOTAxM2VhNDM0NDExMThkYWU3MDQ5MWUwNDM2NzIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVy
Q2xpZW50Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1l
TG9hZGVyQ2xpZW50Lm1tCkBAIC0xMTM3LDUxICsxMTM3LDYgQEAgdm9pZCBXZWJGcmFtZUxvYWRl
ckNsaWVudDo6ZGlkRGV0ZWN0WFNTKGNvbnN0IFVSTCYgaW5zZWN1cmVVUkwsIGJvb2wgZGlkQmxv
Y2tFbnQKICAgICB9CiB9CiAKLVJlc291cmNlRXJyb3IgV2ViRnJhbWVMb2FkZXJDbGllbnQ6OmNh
bmNlbGxlZEVycm9yKGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCkKLXsKLSAgICByZXR1
cm4gW05TRXJyb3IgX3dlYktpdEVycm9yV2l0aERvbWFpbjpOU1VSTEVycm9yRG9tYWluIGNvZGU6
TlNVUkxFcnJvckNhbmNlbGxlZCBVUkw6cmVxdWVzdC51cmwoKV07Ci19Ci0gICAgCi1SZXNvdXJj
ZUVycm9yIFdlYkZyYW1lTG9hZGVyQ2xpZW50OjpibG9ja2VkRXJyb3IoY29uc3QgUmVzb3VyY2VS
ZXF1ZXN0JiByZXF1ZXN0KQotewotICAgIHJldHVybiBbTlNFcnJvciBfd2ViS2l0RXJyb3JXaXRo
RG9tYWluOldlYktpdEVycm9yRG9tYWluIGNvZGU6V2ViS2l0RXJyb3JDYW5ub3RVc2VSZXN0cmlj
dGVkUG9ydCBVUkw6cmVxdWVzdC51cmwoKV07Ci19Ci0KLVJlc291cmNlRXJyb3IgV2ViRnJhbWVM
b2FkZXJDbGllbnQ6OmJsb2NrZWRCeUNvbnRlbnRCbG9ja2VyRXJyb3IoY29uc3QgUmVzb3VyY2VS
ZXF1ZXN0JiByZXF1ZXN0KQotewotICAgIFJFTEVBU0VfQVNTRVJUX05PVF9SRUFDSEVEKCk7IC8v
IENvbnRlbnQgYmxvY2tlcnMgYXJlIG5vdCBlbmFibGVkIGluIFdlYktpdDEuCi19Ci0KLVJlc291
cmNlRXJyb3IgV2ViRnJhbWVMb2FkZXJDbGllbnQ6OmNhbm5vdFNob3dVUkxFcnJvcihjb25zdCBS
ZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QpCi17Ci0gICAgcmV0dXJuIFtOU0Vycm9yIF93ZWJLaXRF
cnJvcldpdGhEb21haW46V2ViS2l0RXJyb3JEb21haW4gY29kZTpXZWJLaXRFcnJvckNhbm5vdFNo
b3dVUkwgVVJMOnJlcXVlc3QudXJsKCldOwotfQotCi1SZXNvdXJjZUVycm9yIFdlYkZyYW1lTG9h
ZGVyQ2xpZW50OjppbnRlcnJ1cHRlZEZvclBvbGljeUNoYW5nZUVycm9yKGNvbnN0IFJlc291cmNl
UmVxdWVzdCYgcmVxdWVzdCkKLXsKLSAgICByZXR1cm4gW05TRXJyb3IgX3dlYktpdEVycm9yV2l0
aERvbWFpbjpXZWJLaXRFcnJvckRvbWFpbiBjb2RlOldlYktpdEVycm9yRnJhbWVMb2FkSW50ZXJy
dXB0ZWRCeVBvbGljeUNoYW5nZSBVUkw6cmVxdWVzdC51cmwoKV07Ci19Ci0KLVJlc291cmNlRXJy
b3IgV2ViRnJhbWVMb2FkZXJDbGllbnQ6OmNhbm5vdFNob3dNSU1FVHlwZUVycm9yKGNvbnN0IFJl
c291cmNlUmVzcG9uc2UmIHJlc3BvbnNlKQotewotICAgIHJldHVybiBbTlNFcnJvciBfd2ViS2l0
RXJyb3JXaXRoRG9tYWluOk5TVVJMRXJyb3JEb21haW4gY29kZTpXZWJLaXRFcnJvckNhbm5vdFNo
b3dNSU1FVHlwZSBVUkw6cmVzcG9uc2UudXJsKCldOwotfQotCi1SZXNvdXJjZUVycm9yIFdlYkZy
YW1lTG9hZGVyQ2xpZW50OjpmaWxlRG9lc05vdEV4aXN0RXJyb3IoY29uc3QgUmVzb3VyY2VSZXNw
b25zZSYgcmVzcG9uc2UpCi17Ci0gICAgcmV0dXJuIFtOU0Vycm9yIF93ZWJLaXRFcnJvcldpdGhE
b21haW46TlNVUkxFcnJvckRvbWFpbiBjb2RlOk5TVVJMRXJyb3JGaWxlRG9lc05vdEV4aXN0IFVS
TDpyZXNwb25zZS51cmwoKV07ICAgIAotfQotCi1SZXNvdXJjZUVycm9yIFdlYkZyYW1lTG9hZGVy
Q2xpZW50OjpwbHVnaW5XaWxsSGFuZGxlTG9hZEVycm9yKGNvbnN0IFJlc291cmNlUmVzcG9uc2Um
IHJlc3BvbnNlKQotewotICAgIE5TRXJyb3IgKmVycm9yID0gW1tOU0Vycm9yIGFsbG9jXSBfaW5p
dFdpdGhQbHVnaW5FcnJvckNvZGU6V2ViS2l0RXJyb3JQbHVnSW5XaWxsSGFuZGxlTG9hZAotICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRlbnRV
Ukw6cmVzcG9uc2UudXJsKCkKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBwbHVnaW5QYWdlVVJMOm5pbAotICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIHBsdWdpbk5hbWU6bmlsCi0gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBNSU1FVHlwZTpyZXNwb25zZS5t
aW1lVHlwZSgpXTsKLSAgICByZXR1cm4gW2Vycm9yIGF1dG9yZWxlYXNlXTsKLX0KLQogYm9vbCBX
ZWJGcmFtZUxvYWRlckNsaWVudDo6c2hvdWxkRmFsbEJhY2soY29uc3QgUmVzb3VyY2VFcnJvciYg
ZXJyb3IpCiB7CiAgICAgLy8gRklYTUU6IE5lZWRzIHRvIGNoZWNrIGRvbWFpbi4KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTmV0d29ya2luZ0Nv
bnRleHQubW0gYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZU5ldHdv
cmtpbmdDb250ZXh0Lm1tCmluZGV4IGM4Yjk3MWMyNmYwMmEwOWEyODhhZjUzNmQ3YTc0YzEzMmFj
YTRjN2EuLjgwODI2YTE4YTE4Yjk5ODY2YTliOWRkMDZiNjhlOWM3NDc2NDRjM2EgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTmV0d29ya2luZ0Nv
bnRleHQubW0KKysrIGIvU291cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVO
ZXR3b3JraW5nQ29udGV4dC5tbQpAQCAtMjgsNiArMjgsNyBAQAogI2ltcG9ydCAiV2ViRnJhbWVJ
bnRlcm5hbC5oIgogI2ltcG9ydCAiV2ViVmlld1ByaXZhdGUuaCIKICNpbXBvcnQgPFdlYkNvcmUv
Q0ZOZXR3b3JrU1BJLmg+CisjaW1wb3J0IDxXZWJDb3JlL0Vycm9ycy5oPgogI2ltcG9ydCA8V2Vi
Q29yZS9GcmFtZUxvYWRlci5oPgogI2ltcG9ydCA8V2ViQ29yZS9GcmFtZUxvYWRlckNsaWVudC5o
PgogI2ltcG9ydCA8V2ViQ29yZS9OZXR3b3JrU3RvcmFnZVNlc3Npb24uaD4KQEAgLTk4LDcgKzk5
LDcgQEAgU3RyaW5nIFdlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQ6OnNvdXJjZUFwcGxpY2F0aW9u
SWRlbnRpZmllcigpIGNvbnN0CiAKIFJlc291cmNlRXJyb3IgV2ViRnJhbWVOZXR3b3JraW5nQ29u
dGV4dDo6YmxvY2tlZEVycm9yKGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCkgY29uc3QK
IHsKLSAgICByZXR1cm4gZnJhbWUoKS0+bG9hZGVyKCkuY2xpZW50KCkuYmxvY2tlZEVycm9yKHJl
cXVlc3QpOworICAgIHJldHVybiBXZWJDb3JlOjpibG9ja2VkRXJyb3IocmVxdWVzdCk7CiB9CiAK
IE5ldHdvcmtTdG9yYWdlU2Vzc2lvbiYgV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dDo6c3RvcmFn
ZVNlc3Npb24oKSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9X
ZWJIVE1MUmVwcmVzZW50YXRpb24ubW0gYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYkhU
TUxSZXByZXNlbnRhdGlvbi5tbQppbmRleCBlOGM3NmFhZjgxNzYwNzIzNjE2NzRiMzdhM2M2NzA0
ZDcwNWEyZjFiLi4yOGFlNzJjMGIxM2JjNDIxZTQwMTczNWYyNWY2MTdiYmUxOTYyM2U1IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYkhUTUxSZXByZXNlbnRhdGlvbi5t
bQorKysgYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYkhUTUxSZXByZXNlbnRhdGlvbi5t
bQpAQCAtNDUsNiArNDUsNyBAQAogI2ltcG9ydCA8V2ViQ29yZS9Eb2N1bWVudC5oPgogI2ltcG9y
dCA8V2ViQ29yZS9Eb2N1bWVudExvYWRlci5oPgogI2ltcG9ydCA8V2ViQ29yZS9FZGl0b3IuaD4K
KyNpbXBvcnQgPFdlYkNvcmUvRXJyb3JzLmg+CiAjaW1wb3J0IDxXZWJDb3JlL0ZyYW1lLmg+CiAj
aW1wb3J0IDxXZWJDb3JlL0ZyYW1lTG9hZGVyLmg+CiAjaW1wb3J0IDxXZWJDb3JlL0ZyYW1lTG9h
ZGVyQ2xpZW50Lmg+CkBAIC0xODksNyArMTkwLDcgQEAgc3RhdGljIE5TTXV0YWJsZUFycmF5ICpu
ZXdBcnJheUJ5Q29uY2F0ZW5hdGluZ0FycmF5cyhOU0FycmF5ICpmaXJzdCwgTlNBcnJheSAqc2UK
ICAgICAvLyBJZiB0aGUgZG9jdW1lbnQgaXMgYSBzdGFuZC1hbG9uZSBtZWRpYSBkb2N1bWVudCwg
bm93IGlzIHRoZSByaWdodCB0aW1lIHRvIGNhbmNlbCB0aGUgV2ViS2l0IGxvYWQKICAgICBGcmFt
ZSogY29yZUZyYW1lID0gY29yZSh3ZWJGcmFtZSk7CiAgICAgaWYgKGNvcmVGcmFtZS0+ZG9jdW1l
bnQoKS0+aXNNZWRpYURvY3VtZW50KCkpCi0gICAgICAgIGNvcmVGcmFtZS0+bG9hZGVyKCkuZG9j
dW1lbnRMb2FkZXIoKS0+Y2FuY2VsTWFpblJlc291cmNlTG9hZChjb3JlRnJhbWUtPmxvYWRlcigp
LmNsaWVudCgpLnBsdWdpbldpbGxIYW5kbGVMb2FkRXJyb3IoY29yZUZyYW1lLT5sb2FkZXIoKS5k
b2N1bWVudExvYWRlcigpLT5yZXNwb25zZSgpKSk7CisgICAgICAgIGNvcmVGcmFtZS0+bG9hZGVy
KCkuZG9jdW1lbnRMb2FkZXIoKS0+Y2FuY2VsTWFpblJlc291cmNlTG9hZChXZWJDb3JlOjpwbHVn
aW5XaWxsSGFuZGxlTG9hZEVycm9yKGNvcmVGcmFtZS0+bG9hZGVyKCkuZG9jdW1lbnRMb2FkZXIo
KS0+cmVzcG9uc2UoKSkpOwogCiAgICAgaWYgKF9wcml2YXRlLT5wbHVnaW5WaWV3KSB7CiAgICAg
ICAgIGlmICghX3ByaXZhdGUtPmhhc1NlbnRSZXNwb25zZVRvUGx1Z2luKSB7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9Eb3dubG9hZHMvZWZsL0Rvd25sb2FkU291
cEVycm9yc0VmbC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9Eb3dubG9hZHMv
ZWZsL0Rvd25sb2FkU291cEVycm9yc0VmbC5jcHAKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IGFjMDBkNTFiMzcxMzg5MjFlNzc2YjFhYzU4YTBkNDU1NTE2YjA4NmEuLjAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYktpdDIvTmV0d29y
a1Byb2Nlc3MvRG93bmxvYWRzL2VmbC9Eb3dubG9hZFNvdXBFcnJvcnNFZmwuY3BwCisrKyAvZGV2
L251bGwKQEAgLTEsNDYgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMiBJbnRlbCBD
b3Jwb3JhdGlvbi4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHly
aWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIg
bWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBB
UyBJUycnCi0gKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVS
Q0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJF
IERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJV
VE9SUwotICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwg
U1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgotICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKLSAqIFNVQlNUSVRVVEUgR09P
RFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVT
UwotICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4KLSAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBU
T1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCi0gKiBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
Ci0gKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI2luY2x1ZGUgImNv
bmZpZy5oIgotI2luY2x1ZGUgIkRvd25sb2FkU291cEVycm9ycy5oIgotCi0jaW5jbHVkZSA8V2Vi
Q29yZS9FcnJvcnNFZmwuaD4KLSNpbmNsdWRlIDxXZWJDb3JlL1Jlc291cmNlRXJyb3IuaD4KLQot
dXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7Ci0KLW5hbWVzcGFjZSBXZWJLaXQgewotCi1SZXNvdXJj
ZUVycm9yIHBsYXRmb3JtRG93bmxvYWROZXR3b3JrRXJyb3IoaW50IGVycm9yQ29kZSwgY29uc3Qg
VVJMJiBmYWlsaW5nVVJMLCBjb25zdCBTdHJpbmcmIGxvY2FsaXplZERlc2NyaXB0aW9uKQotewot
ICAgIHJldHVybiBkb3dubG9hZE5ldHdvcmtFcnJvcihSZXNvdXJjZUVycm9yKGVycm9yRG9tYWlu
RG93bmxvYWQsIGVycm9yQ29kZSwgZmFpbGluZ1VSTCwgbG9jYWxpemVkRGVzY3JpcHRpb24pKTsK
LX0KLQotUmVzb3VyY2VFcnJvciBwbGF0Zm9ybURvd25sb2FkRGVzdGluYXRpb25FcnJvcihjb25z
dCBSZXNvdXJjZVJlc3BvbnNlJiByZXNwb25zZSwgY29uc3QgU3RyaW5nJiBtZXNzYWdlKQotewot
ICAgIHJldHVybiBkb3dubG9hZERlc3RpbmF0aW9uRXJyb3IocmVzcG9uc2UsIG1lc3NhZ2UpOwot
fQotCi19IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL05l
dHdvcmtQcm9jZXNzL0Rvd25sb2Fkcy9ndGsvRG93bmxvYWRTb3VwRXJyb3JzR3RrLmNwcCBiL1Nv
dXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL0Rvd25sb2Fkcy9ndGsvRG93bmxvYWRTb3VwRXJy
b3JzR3RrLmNwcApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYmEyZTdiNDU2YTQxNWYx
N2Q1OTY1MzAwMWJiZGZhYzBiZTI4MDM0Mi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9Eb3dubG9hZHMv
Z3RrL0Rvd25sb2FkU291cEVycm9yc0d0ay5jcHAKKysrIC9kZXYvbnVsbApAQCAtMSw0NiArMCww
IEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDEyIEludGVsIENvcnBvcmF0aW9uLiBBbGwgcmln
aHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0
OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5h
cnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4g
dGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKLSAqIEFORCBBTlkg
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLAotICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8g
RVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCi0gKiBCRSBMSUFCTEUg
Rk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlks
IE9SCi0gKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLCBQUk9DVVJFTUVOVCBPRgotICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9T
UyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCi0gKiBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TgotICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkKLSAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKLSAqIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaW5jbHVkZSAiY29uZmlnLmgiCi0jaW5jbHVkZSAi
RG93bmxvYWRTb3VwRXJyb3JzLmgiCi0KLSNpbmNsdWRlIDxXZWJDb3JlL0Vycm9yc0d0ay5oPgot
I2luY2x1ZGUgPFdlYkNvcmUvUmVzb3VyY2VFcnJvci5oPgotCi11c2luZyBuYW1lc3BhY2UgV2Vi
Q29yZTsKLQotbmFtZXNwYWNlIFdlYktpdCB7Ci0KLVJlc291cmNlRXJyb3IgcGxhdGZvcm1Eb3du
bG9hZE5ldHdvcmtFcnJvcihpbnQgZXJyb3JDb2RlLCBjb25zdCBVUkwmIGZhaWxpbmdVUkwsIGNv
bnN0IFN0cmluZyYgbG9jYWxpemVkRGVzY3JpcHRpb24pCi17Ci0gICAgcmV0dXJuIGRvd25sb2Fk
TmV0d29ya0Vycm9yKFJlc291cmNlRXJyb3IoZXJyb3JEb21haW5Eb3dubG9hZCwgZXJyb3JDb2Rl
LCBmYWlsaW5nVVJMLCBsb2NhbGl6ZWREZXNjcmlwdGlvbikpOwotfQotCi1SZXNvdXJjZUVycm9y
IHBsYXRmb3JtRG93bmxvYWREZXN0aW5hdGlvbkVycm9yKGNvbnN0IFJlc291cmNlUmVzcG9uc2Um
IHJlc3BvbnNlLCBjb25zdCBTdHJpbmcmIG1lc3NhZ2UpCi17Ci0gICAgcmV0dXJuIGRvd25sb2Fk
RGVzdGluYXRpb25FcnJvcihyZXNwb25zZSwgbWVzc2FnZSk7Ci19Ci0KLX0gLy8gbmFtZXNwYWNl
IFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvRG93bmxv
YWRzL3NvdXAvRG93bmxvYWRTb3VwRXJyb3JzLmNwcCBiL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQ
cm9jZXNzL0Rvd25sb2Fkcy9zb3VwL0Rvd25sb2FkU291cEVycm9ycy5jcHAKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
YWU1YWY5MmQzMzEyMmUxNGE5MWI3OTM4MzdkMzhjMTZhMTNmMWMyMwotLS0gL2Rldi9udWxsCisr
KyBiL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL0Rvd25sb2Fkcy9zb3VwL0Rvd25sb2Fk
U291cEVycm9ycy5jcHAKQEAgLTAsMCArMSw0NyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAx
MiBJbnRlbCBDb3Jwb3JhdGlvbi4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBz
b3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisg
KiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisg
KiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklC
VVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBV
UlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRT
IENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBP
UiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRI
RU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lu
Y2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIkRvd25sb2FkU291cEVycm9ycy5oIgorCisjaW5j
bHVkZSA8V2ViQ29yZS9FcnJvcnMuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL0Vycm9yc1VuaXguaD4K
KyNpbmNsdWRlIDxXZWJDb3JlL1Jlc291cmNlRXJyb3IuaD4KKwordXNpbmcgbmFtZXNwYWNlIFdl
YkNvcmU7CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitSZXNvdXJjZUVycm9yIHBsYXRmb3JtRG93
bmxvYWROZXR3b3JrRXJyb3IoaW50IGVycm9yQ29kZSwgY29uc3QgVVJMJiBmYWlsaW5nVVJMLCBj
b25zdCBTdHJpbmcmIGxvY2FsaXplZERlc2NyaXB0aW9uKQoreworICAgIHJldHVybiBkb3dubG9h
ZE5ldHdvcmtFcnJvcihSZXNvdXJjZUVycm9yKGVycm9yRG9tYWluRG93bmxvYWQsIGVycm9yQ29k
ZSwgZmFpbGluZ1VSTCwgbG9jYWxpemVkRGVzY3JpcHRpb24pKTsKK30KKworUmVzb3VyY2VFcnJv
ciBwbGF0Zm9ybURvd25sb2FkRGVzdGluYXRpb25FcnJvcihjb25zdCBSZXNvdXJjZVJlc3BvbnNl
JiByZXNwb25zZSwgY29uc3QgU3RyaW5nJiBtZXNzYWdlKQoreworICAgIHJldHVybiBkb3dubG9h
ZERlc3RpbmF0aW9uRXJyb3IocmVzcG9uc2UsIG1lc3NhZ2UpOworfQorCit9IC8vIG5hbWVzcGFj
ZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL05ldHdv
cmtMb2FkLmNwcCBiL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL05ldHdvcmtMb2FkLmNw
cAppbmRleCA1NjA4OWJmMzdmNGQwNjExNWNiYTFlOWFhZDg3YzAzYWEyNThjNTE0Li40OTk3ZGM3
NmU2Yzk5MTI3ZWZjNzBiMDA3ZjRhNDA4OWVkODU3ZWI1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0Mi9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrTG9hZC5jcHAKKysrIGIvU291cmNlL1dlYktpdDIv
TmV0d29ya1Byb2Nlc3MvTmV0d29ya0xvYWQuY3BwCkBAIC0zMCw3ICszMCw3IEBACiAjaW5jbHVk
ZSAiQXV0aGVudGljYXRpb25NYW5hZ2VyLmgiCiAjaW5jbHVkZSAiTmV0d29ya1Byb2Nlc3MuaCIK
ICNpbmNsdWRlICJTZXNzaW9uVHJhY2tlci5oIgotI2luY2x1ZGUgIldlYkVycm9ycy5oIgorI2lu
Y2x1ZGUgPFdlYkNvcmUvRXJyb3JzLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9Ob3RJbXBsZW1lbnRl
ZC5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUmVzb3VyY2VIYW5kbGUuaD4KICNpbmNsdWRlIDxXZWJD
b3JlL1Nlc3Npb25JRC5oPgpAQCAtNDA3LDE0ICs0MDcsMTQgQEAgdm9pZCBOZXR3b3JrTG9hZDo6
d2FzQmxvY2tlZChSZXNvdXJjZUhhbmRsZSogaGFuZGxlKQogewogICAgIEFTU0VSVF9VTlVTRUQo
aGFuZGxlLCBoYW5kbGUgPT0gbV9oYW5kbGUpOwogCi0gICAgZGlkRmFpbChoYW5kbGUsIFdlYktp
dDo6YmxvY2tlZEVycm9yKG1fY3VycmVudFJlcXVlc3QpKTsKKyAgICBkaWRGYWlsKGhhbmRsZSwg
YmxvY2tlZEVycm9yKG1fY3VycmVudFJlcXVlc3QpKTsKIH0KIAogdm9pZCBOZXR3b3JrTG9hZDo6
Y2Fubm90U2hvd1VSTChSZXNvdXJjZUhhbmRsZSogaGFuZGxlKQogewogICAgIEFTU0VSVF9VTlVT
RUQoaGFuZGxlLCBoYW5kbGUgPT0gbV9oYW5kbGUpOwogCi0gICAgZGlkRmFpbChoYW5kbGUsIFdl
YktpdDo6Y2Fubm90U2hvd1VSTEVycm9yKG1fY3VycmVudFJlcXVlc3QpKTsKKyAgICBkaWRGYWls
KGhhbmRsZSwgY2Fubm90U2hvd1VSTEVycm9yKG1fY3VycmVudFJlcXVlc3QpKTsKIH0KIAogYm9v
bCBOZXR3b3JrTG9hZDo6c2hvdWxkVXNlQ3JlZGVudGlhbFN0b3JhZ2UoUmVzb3VyY2VIYW5kbGUq
IGhhbmRsZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL21hYy9S
ZW1vdGVOZXR3b3JraW5nQ29udGV4dC5tbSBiL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNz
L21hYy9SZW1vdGVOZXR3b3JraW5nQ29udGV4dC5tbQppbmRleCAxZDZhMmFjMGQzOWNkMjU3MTU3
ZDJkYjVjNTQ4ZWIyYjRkNmNiOGZhLi44ZDA0ZGY3ZjdhMDZiNDY1OTVjYTVkZWIxOGQ5YmEzNWQz
NTZhZWJjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9tYWMvUmVt
b3RlTmV0d29ya2luZ0NvbnRleHQubW0KKysrIGIvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nl
c3MvbWFjL1JlbW90ZU5ldHdvcmtpbmdDb250ZXh0Lm1tCkBAIC0zMCw3ICszMCw3IEBACiAjaW1w
b3J0ICJOZXR3b3JrUHJvY2Vzcy5oIgogI2ltcG9ydCAiTmV0d29ya1Nlc3Npb24uaCIKICNpbXBv
cnQgIlNlc3Npb25UcmFja2VyLmgiCi0jaW1wb3J0ICJXZWJFcnJvcnMuaCIKKyNpbXBvcnQgPFdl
YkNvcmUvRXJyb3JzLmg+CiAjaW1wb3J0IDxXZWJDb3JlL1Jlc291cmNlRXJyb3IuaD4KICNpbXBv
cnQgPFdlYktpdFN5c3RlbUludGVyZmFjZS5oPgogI2ltcG9ydCA8d3RmL01haW5UaHJlYWQuaD4K
QEAgLTc3LDcgKzc3LDcgQEAgU3RyaW5nIFJlbW90ZU5ldHdvcmtpbmdDb250ZXh0Ojpzb3VyY2VB
cHBsaWNhdGlvbklkZW50aWZpZXIoKSBjb25zdAogCiBSZXNvdXJjZUVycm9yIFJlbW90ZU5ldHdv
cmtpbmdDb250ZXh0OjpibG9ja2VkRXJyb3IoY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0
KSBjb25zdAogewotICAgIHJldHVybiBXZWJLaXQ6OmJsb2NrZWRFcnJvcihyZXF1ZXN0KTsKKyAg
ICByZXR1cm4gV2ViQ29yZTo6YmxvY2tlZEVycm9yKHJlcXVlc3QpOwogfQogCiB2b2lkIFJlbW90
ZU5ldHdvcmtpbmdDb250ZXh0OjplbnN1cmVQcml2YXRlQnJvd3NpbmdTZXNzaW9uKFNlc3Npb25J
RCBzZXNzaW9uSUQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybUVmbC5jbWFr
ZSBiL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtRWZsLmNtYWtlCmluZGV4IDI0MjA4MWM5MzYwZTYw
MTgwODliYWVlOGFjODRlZDA2MTM5ZmI0ZWYuLmE5NGVkNjNhODRhMjIxODM0NDU1M2NlODI4ZWEy
NWMxMDE1NTljZDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtRWZsLmNtYWtl
CisrKyBiL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtRWZsLmNtYWtlCkBAIC00LDggKzQsNyBAQCBs
aXN0KEFQUEVORCBXZWJLaXQyX1NPVVJDRVMKICAgICBOZXR3b3JrUHJvY2Vzcy9DdXN0b21Qcm90
b2NvbHMvc291cC9DdXN0b21Qcm90b2NvbE1hbmFnZXJJbXBsLmNwcAogICAgIE5ldHdvcmtQcm9j
ZXNzL0N1c3RvbVByb3RvY29scy9zb3VwL0N1c3RvbVByb3RvY29sTWFuYWdlclNvdXAuY3BwCiAK
LSAgICBOZXR3b3JrUHJvY2Vzcy9Eb3dubG9hZHMvZWZsL0Rvd25sb2FkU291cEVycm9yc0VmbC5j
cHAKLQorICAgIE5ldHdvcmtQcm9jZXNzL0Rvd25sb2Fkcy9zb3VwL0Rvd25sb2FkU291cEVycm9y
cy5jcHAKICAgICBOZXR3b3JrUHJvY2Vzcy9Eb3dubG9hZHMvc291cC9Eb3dubG9hZFNvdXAuY3Bw
CiAKICAgICBOZXR3b3JrUHJvY2Vzcy9lZmwvTmV0d29ya1Byb2Nlc3NNYWluRWZsLmNwcApAQCAt
MTkxLDcgKzE5MCw2IEBAIGxpc3QoQVBQRU5EIFdlYktpdDJfU09VUkNFUwogCiAgICAgV2ViUHJv
Y2Vzcy9XZWJDb3JlU3VwcG9ydC9lZmwvV2ViQ29udGV4dE1lbnVDbGllbnRFZmwuY3BwCiAgICAg
V2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9lZmwvV2ViRWRpdG9yQ2xpZW50RWZsLmNwcAotICAg
IFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvZWZsL1dlYkVycm9yc0VmbC5jcHAKICAgICBXZWJQ
cm9jZXNzL1dlYkNvcmVTdXBwb3J0L2VmbC9XZWJQb3B1cE1lbnVFZmwuY3BwCiAKICAgICBXZWJQ
cm9jZXNzL1dlYkNvcmVTdXBwb3J0L3NvdXAvV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dC5jcHAK
QEAgLTIzMSw2ICsyMjksNyBAQCBsaXN0KEFQUEVORCBXZWJLaXQyX0lOQ0xVREVfRElSRUNUT1JJ
RVMKICAgICAiJHtXRUJDT1JFX0RJUn0vcGxhdGZvcm0vZ3JhcGhpY3MveDExIgogICAgICIke1dF
QkNPUkVfRElSfS9wbGF0Zm9ybS9uZXR3b3JrL3NvdXAiCiAgICAgIiR7V0VCQ09SRV9ESVJ9L3Bs
YXRmb3JtL3RleHQvZW5jaGFudCIKKyAgICAiJHtXRUJDT1JFX0RJUn0vcGxhdGZvcm0vdW5peCIK
ICAgICAiJHtXRUJLSVQyX0RJUn0vRGF0YWJhc2VQcm9jZXNzL3VuaXgiCiAgICAgIiR7V0VCS0lU
Ml9ESVJ9L05ldHdvcmtQcm9jZXNzL0N1c3RvbVByb3RvY29scy9zb3VwIgogICAgICIke1dFQktJ
VDJfRElSfS9OZXR3b3JrUHJvY2Vzcy9Eb3dubG9hZHMvc291cCIKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQyL1BsYXRmb3JtR1RLLmNtYWtlIGIvU291cmNlL1dlYktpdDIvUGxhdGZvcm1HVEsu
Y21ha2UKaW5kZXggYWMwMmU0YzY1NTM1Y2VjYWRiODhjNTNjYzA4ODI2NTk4YjViMTUyMi4uMTA4
YTIwMzVhYWM5YzI4YWIwOTFhMDFkODM3MTc0YzgyYzFiMTU0NSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdDIvUGxhdGZvcm1HVEsuY21ha2UKKysrIGIvU291cmNlL1dlYktpdDIvUGxhdGZvcm1H
VEsuY21ha2UKQEAgLTMwLDkgKzMwLDggQEAgbGlzdChBUFBFTkQgV2ViS2l0Ml9TT1VSQ0VTCiAg
ICAgTmV0d29ya1Byb2Nlc3MvQ3VzdG9tUHJvdG9jb2xzL3NvdXAvQ3VzdG9tUHJvdG9jb2xNYW5h
Z2VySW1wbC5jcHAKICAgICBOZXR3b3JrUHJvY2Vzcy9DdXN0b21Qcm90b2NvbHMvc291cC9DdXN0
b21Qcm90b2NvbE1hbmFnZXJTb3VwLmNwcAogCi0gICAgTmV0d29ya1Byb2Nlc3MvRG93bmxvYWRz
L2d0ay9Eb3dubG9hZFNvdXBFcnJvcnNHdGsuY3BwCi0KICAgICBOZXR3b3JrUHJvY2Vzcy9Eb3du
bG9hZHMvc291cC9Eb3dubG9hZFNvdXAuY3BwCisgICAgTmV0d29ya1Byb2Nlc3MvRG93bmxvYWRz
L3NvdXAvRG93bmxvYWRTb3VwRXJyb3JzLmNwcAogCiAgICAgTmV0d29ya1Byb2Nlc3MvY2FjaGUv
TmV0d29ya0NhY2hlRGF0YVNvdXAuY3BwCiAgICAgTmV0d29ya1Byb2Nlc3MvY2FjaGUvTmV0d29y
a0NhY2hlSU9DaGFubmVsU291cC5jcHAKQEAgLTMzNCw3ICszMzMsNiBAQCBsaXN0KEFQUEVORCBX
ZWJLaXQyX1NPVVJDRVMKICAgICBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L2d0ay9XZWJDb250
ZXh0TWVudUNsaWVudEd0ay5jcHAKICAgICBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L2d0ay9X
ZWJEcmFnQ2xpZW50R3RrLmNwcAogICAgIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvZ3RrL1dl
YkVkaXRvckNsaWVudEd0ay5jcHAKLSAgICBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L2d0ay9X
ZWJFcnJvcnNHdGsuY3BwCiAgICAgV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9ndGsvV2ViUG9w
dXBNZW51R3RrLmNwcAogCiAgICAgV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9zb3VwL1dlYkZy
YW1lTmV0d29ya2luZ0NvbnRleHQuY3BwCkBAIC00OTAsNiArNDg4LDcgQEAgbGlzdChBUFBFTkQg
V2ViS2l0Ml9JTkNMVURFX0RJUkVDVE9SSUVTCiAgICAgIiR7V0VCQ09SRV9ESVJ9L3BsYXRmb3Jt
L2dyYXBoaWNzL3gxMSIKICAgICAiJHtXRUJDT1JFX0RJUn0vcGxhdGZvcm0vbmV0d29yay9zb3Vw
IgogICAgICIke1dFQkNPUkVfRElSfS9wbGF0Zm9ybS90ZXh0L2VuY2hhbnQiCisgICAgIiR7V0VC
Q09SRV9ESVJ9L3BsYXRmb3JtL3VuaXgiCiAgICAgIiR7V0VCS0lUMl9ESVJ9L0RhdGFiYXNlUHJv
Y2Vzcy91bml4IgogICAgICIke1dFQktJVDJfRElSfS9OZXR3b3JrUHJvY2Vzcy9DdXN0b21Qcm90
b2NvbHMvc291cCIKICAgICAiJHtXRUJLSVQyX0RJUn0vTmV0d29ya1Byb2Nlc3MvRG93bmxvYWRz
L3NvdXAiCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybU1hYy5jbWFrZSBiL1Nv
dXJjZS9XZWJLaXQyL1BsYXRmb3JtTWFjLmNtYWtlCmluZGV4IDMxYzAzNzBlYTFiYmQxYmU1Mjkz
MTM4Yzg2MDVjY2YxMmE5MGM1ZTIuLmZlODU5MDQ1N2VlOGQ1ZGE5OWNlYjAwNjUwMzRmOWQ2NTM0
M2IwMGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtTWFjLmNtYWtlCisrKyBi
L1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtTWFjLmNtYWtlCkBAIC0zMjUsNyArMzI1LDYgQEAgbGlz
dChBUFBFTkQgV2ViS2l0Ml9TT1VSQ0VTCiAgICAgV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9t
YWMvV2ViQ29udGV4dE1lbnVDbGllbnRNYWMubW0KICAgICBXZWJQcm9jZXNzL1dlYkNvcmVTdXBw
b3J0L21hYy9XZWJEcmFnQ2xpZW50TWFjLm1tCiAgICAgV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9y
dC9tYWMvV2ViRWRpdG9yQ2xpZW50TWFjLm1tCi0gICAgV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9y
dC9tYWMvV2ViRXJyb3JzTWFjLm1tCiAgICAgV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9tYWMv
V2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dC5tbQogICAgIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBv
cnQvbWFjL1dlYlBvcHVwTWVudU1hYy5tbQogICAgIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQv
bWFjL1dlYlN5c3RlbUludGVyZmFjZS5tbQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hh
cmVkL0FQSS9BUElFcnJvci5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQVBJL0FQSUVycm9y
LmNwcAppbmRleCA4NmExZGIwYjAzNzRkMzZmNGEzZTkxMzE0ZDU5MDg4MzZlNWJkYTJhLi45Yjli
Njc1ZmI3MjQ5NjljOTUxZTBmNTJmYTY5ZmE4MzVmNGZjZjliIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0Mi9TaGFyZWQvQVBJL0FQSUVycm9yLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFy
ZWQvQVBJL0FQSUVycm9yLmNwcApAQCAtMjcsNiArMjcsNyBAQAogI2luY2x1ZGUgIkFQSUVycm9y
LmgiCiAKICNpbmNsdWRlICJXZWJDb3JlQXJndW1lbnRDb2RlcnMuaCIKKyNpbmNsdWRlIDxXZWJD
b3JlL0Vycm9ycy5oPgogI2luY2x1ZGUgPHd0Zi9OZXZlckRlc3Ryb3llZC5oPgogI2luY2x1ZGUg
PHd0Zi90ZXh0L1dURlN0cmluZy5oPgogCkBAIC0zNCw4ICszNSw3IEBAIG5hbWVzcGFjZSBBUEkg
ewogCiBjb25zdCBXVEY6OlN0cmluZyYgRXJyb3I6OndlYktpdEVycm9yRG9tYWluKCkKIHsKLSAg
ICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8V1RGOjpTdHJpbmc+IHdlYktpdEVycm9yRG9tYWluU3Ry
aW5nKEFTQ0lJTGl0ZXJhbCgiV2ViS2l0RXJyb3JEb21haW4iKSk7Ci0gICAgcmV0dXJuIHdlYktp
dEVycm9yRG9tYWluU3RyaW5nOworICAgIHJldHVybiBXZWJDb3JlOjp3ZWJLaXRFcnJvckRvbWFp
bigpOwogfQogCiB2b2lkIEVycm9yOjplbmNvZGUoSVBDOjpBcmd1bWVudEVuY29kZXImIGVuY29k
ZXIpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9l
d2tfZXJyb3IuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX2Vycm9y
LmNwcAppbmRleCBkMDAxYzU1Nzk5MjdhYzA5ODgxMDk3ZTFjOTYwNTllN2I0MmIxOWY4Li4wNDFm
M2YyMGY5ZmVjNTc3NjY1MjA3YmE1OTYxNzkyYWM3YmQyOTUxIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfZXJyb3IuY3BwCisrKyBiL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a19lcnJvci5jcHAKQEAgLTI2LDcgKzI2LDcgQEAKICNp
bmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJld2tfZXJyb3IuaCIKIAotI2luY2x1ZGUgIkVy
cm9yc0VmbC5oIgorI2luY2x1ZGUgIkVycm9yc1VuaXguaCIKICNpbmNsdWRlICJXS0Vycm9yUmVm
LmgiCiAjaW5jbHVkZSAiV0tTdHJpbmcuaCIKICNpbmNsdWRlICJXS1VSTC5oIgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0RG93bmxvYWQuY3BwIGIv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0RG93bmxvYWQuY3BwCmluZGV4
IDg2YzA1YjJmMjk3YTA1YjkxYmVmNjgxYjQxYWVkZTAxNWUzMzU4MzUuLmE5ZTM1NmJlN2Q0ZDY1
NDk5Zjc0OWM4NjJiMTVkN2RlZmFlMTMzNjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9BUEkvZ3RrL1dlYktpdERvd25sb2FkLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvQVBJL2d0ay9XZWJLaXREb3dubG9hZC5jcHAKQEAgLTI2LDcgKzI2LDggQEAKICNp
bmNsdWRlICJXZWJLaXRQcml2YXRlLmgiCiAjaW5jbHVkZSAiV2ViS2l0VVJJUmVxdWVzdFByaXZh
dGUuaCIKICNpbmNsdWRlICJXZWJLaXRVUklSZXNwb25zZVByaXZhdGUuaCIKLSNpbmNsdWRlIDxX
ZWJDb3JlL0Vycm9yc0d0ay5oPgorI2luY2x1ZGUgPFdlYkNvcmUvRXJyb3JzLmg+CisjaW5jbHVk
ZSA8V2ViQ29yZS9FcnJvcnNVbml4Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9SZXNvdXJjZVJlc3Bv
bnNlLmg+CiAjaW5jbHVkZSA8Z2xpYi9naTE4bi1saWIuaD4KICNpbmNsdWRlIDx3dGYvZ2xpYi9H
UmVmUHRyLmg+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9X
ZWJLaXRFcnJvci5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRF
cnJvci5jcHAKaW5kZXggNzQxOWVlNzIxYTBmZTg2YWJjMzY0MzZkMjRlYzI1ZTQ2NDIzZThjZi4u
YjA4MzQzNmExOGQ5MTc0ZmZmM2U2N2NlZDg4ZmU0MGUzOGI0MWE3ZCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0RXJyb3IuY3BwCisrKyBiL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdEVycm9yLmNwcApAQCAtMjIsNyArMjIs
NyBAQAogI2luY2x1ZGUgIldlYktpdEVycm9yLmgiCiAKICNpbmNsdWRlICJXZWJLaXRQcml2YXRl
LmgiCi0jaW5jbHVkZSA8V2ViQ29yZS9FcnJvcnNHdGsuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL0Vy
cm9yc1VuaXguaD4KIAogdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFByaXZhdGUuY3BwIGIvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0UHJpdmF0ZS5jcHAKaW5kZXggMmIxZTEy
NDk3NmJhNGRkYzY3MTkxNzI1MGU5NzgyOTgwMTQ1YmFjYS4uOTE5N2JjNzcyY2M4ZWU4MTk4ZTA5
MWVlY2RkMGQ4YjEyY2MwZjI3ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L0FQSS9ndGsvV2ViS2l0UHJpdmF0ZS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L0FQSS9ndGsvV2ViS2l0UHJpdmF0ZS5jcHAKQEAgLTIwLDcgKzIwLDcgQEAKICNpbmNsdWRlICJj
b25maWcuaCIKICNpbmNsdWRlICJXZWJLaXRQcml2YXRlLmgiCiAKLSNpbmNsdWRlICJFcnJvcnNH
dGsuaCIKKyNpbmNsdWRlICJFcnJvcnNVbml4LmgiCiAjaW5jbHVkZSAiV2ViRXZlbnQuaCIKICNp
bmNsdWRlICJXZWJLaXRFcnJvci5oIgogI2luY2x1ZGUgPGdkay9nZGsuaD4KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9OZXR3b3JrL0N1c3RvbVByb3RvY29scy9zb3VwL1dl
YlNvdXBDdXN0b21Qcm90b2NvbFJlcXVlc3RNYW5hZ2VyLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9OZXR3b3JrL0N1c3RvbVByb3RvY29scy9zb3VwL1dlYlNvdXBDdXN0b21Qcm90b2Nv
bFJlcXVlc3RNYW5hZ2VyLmNwcAppbmRleCBiNjU1ZTQzNTEzZDVlNDEzZTFiOGY1YzYyMmQ4OGEz
OTY1YjA2YTRiLi5hMDM1YjQ3ODQ2NGRiNDExNjgwYzFiMGMzODk0ODc5Y2VjZjM1NmEyIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvTmV0d29yay9DdXN0b21Qcm90b2NvbHMv
c291cC9XZWJTb3VwQ3VzdG9tUHJvdG9jb2xSZXF1ZXN0TWFuYWdlci5jcHAKKysrIGIvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL05ldHdvcmsvQ3VzdG9tUHJvdG9jb2xzL3NvdXAvV2ViU291cEN1
c3RvbVByb3RvY29sUmVxdWVzdE1hbmFnZXIuY3BwCkBAIC0yMywxNiArMjMsMTIgQEAKICNpbmNs
dWRlICJBUElEYXRhLmgiCiAjaW5jbHVkZSAiQ3VzdG9tUHJvdG9jb2xNYW5hZ2VyTWVzc2FnZXMu
aCIKICNpbmNsdWRlICJXZWJQcm9jZXNzUG9vbC5oIgorI2luY2x1ZGUgPFdlYkNvcmUvRXJyb3Jz
Lmg+CisjaW5jbHVkZSA8V2ViQ29yZS9FcnJvcnNVbml4Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9S
ZXNvdXJjZUVycm9yLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9SZXNvdXJjZVJlcXVlc3QuaD4KICNp
bmNsdWRlIDxXZWJDb3JlL1Jlc291cmNlUmVzcG9uc2UuaD4KIAotI2lmIFBMQVRGT1JNKEdUSykK
LSNpbmNsdWRlIDxXZWJDb3JlL0Vycm9yc0d0ay5oPgotI2VsaWYgUExBVEZPUk0oRUZMKQotI2lu
Y2x1ZGUgPFdlYkNvcmUvRXJyb3JzRWZsLmg+Ci0jZW5kaWYKLQogbmFtZXNwYWNlIFdlYktpdCB7
CiAKIGNvbnN0IGNoYXIqIFdlYlNvdXBDdXN0b21Qcm90b2NvbFJlcXVlc3RNYW5hZ2VyOjpzdXBw
bGVtZW50TmFtZSgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJLaXQyLnhjb2RlcHJv
ai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViS2l0Mi9XZWJLaXQyLnhjb2RlcHJvai9wcm9q
ZWN0LnBieHByb2oKaW5kZXggMWNlZmExMWY0NWI1ZGU1YTc1MzM0MzI2YWJjYzliMWE1YzE2MTNi
MS4uMDRkZjVmNzE2NmE5MjIzZjRjMGNiOTBiYTYwYzg4ZDVkMTg0ZDg2NyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdDIvV2ViS2l0Mi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL1dlYktpdDIueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMjIzLDcg
KzIyMyw2IEBACiAJCTFBM0VFRDBGMTYxQTUzNTQwMEFFQjRGNSAvKiBNZXNzYWdlUmVjZWl2ZXJN
YXAuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFBM0VF
RDBEMTYxQTUzNTMwMEFFQjRGNSAvKiBNZXNzYWdlUmVjZWl2ZXJNYXAuaCAqLzsgfTsKIAkJMUEz
RUVEMTIxNjFBNTNENjAwQUVCNEY1IC8qIE1lc3NhZ2VSZWNlaXZlci5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUEzRUVEMTExNjFBNTNENjAwQUVCNEY1
IC8qIE1lc3NhZ2VSZWNlaXZlci5oICovOyB9OwogCQkxQTQyMkY4QjE4QjI5QjU0MDBEOENEOTYg
LyogV0tIaXN0b3J5RGVsZWdhdGVQcml2YXRlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSAxQTQyMkY4QTE4QjI5QjU0MDBEOENEOTYgLyogV0tIaXN0b3J5
RGVsZWdhdGVQcml2YXRlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwg
KTsgfTsgfTsKLQkJMUE0MzNGMEQxMTNDNTNERDAwRkFDREU5IC8qIFdlYkVycm9ycy5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUE0MzNGMEMxMTNDNTNE
RDAwRkFDREU5IC8qIFdlYkVycm9ycy5oICovOyB9OwogCQkxQTQzRTgyOTE4OEYzQ0RDMDA5RTRE
MzAgLyogX1dLUHJvY2Vzc1Bvb2xDb25maWd1cmF0aW9uLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUE0M0U4MjcxODhGM0NEQzAwOUU0RDMwIC8qIF9X
S1Byb2Nlc3NQb29sQ29uZmlndXJhdGlvbi5tbSAqLzsgfTsKIAkJMUE0M0U4MkExODhGM0NEQzAw
OUU0RDMwIC8qIF9XS1Byb2Nlc3NQb29sQ29uZmlndXJhdGlvbi5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUE0M0U4MjgxODhGM0NEQzAwOUU0RDMwIC8q
IF9XS1Byb2Nlc3NQb29sQ29uZmlndXJhdGlvbi5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVT
ID0gKFByaXZhdGUsICk7IH07IH07CiAJCTFBNDQ1QjlGMTg0RDVGQjUwMDRCMzQxNCAvKiBXS0Nv
bnRleHRJbmplY3RlZEJ1bmRsZUNsaWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gMUE0NDVCOUUxODRENUZCNTAwNEIzNDE0IC8qIFdLQ29udGV4dElu
amVjdGVkQnVuZGxlQ2xpZW50LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0
ZSwgKTsgfTsgfTsKQEAgLTEzNDgsNyArMTM0Nyw2IEBACiAJCUJDMTExQTVGMTEyRjRGQkIwMDMz
N0JBQiAvKiBXZWJGcmFtZUxvYWRlckNsaWVudC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQzExMUE1ODExMkY0RkJCMDAzMzdCQUIgLyogV2ViRnJh
bWVMb2FkZXJDbGllbnQuY3BwICovOyB9OwogCQlCQzExMUE2MDExMkY0RkJCMDAzMzdCQUIgLyog
V2ViSW5zcGVjdG9yQ2xpZW50LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IEJDMTExQTU5MTEyRjRGQkIwMDMzN0JBQiAvKiBXZWJJbnNwZWN0b3JDbGll
bnQuY3BwICovOyB9OwogCQlCQzExMUFERDExMkY1QjkzMDAzMzdCQUIgLyogV2ViRnJhbWUuY3Bw
IGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkMxMTFBREMx
MTJGNUI5MzAwMzM3QkFCIC8qIFdlYkZyYW1lLmNwcCAqLzsgfTsKLQkJQkMxMTFBRTAxMTJGNUJD
MjAwMzM3QkFCIC8qIFdlYkVycm9yc01hYy5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IEJDMTExQURGMTEyRjVCQzIwMDMzN0JBQiAvKiBXZWJFcnJvcnNN
YWMubW0gKi87IH07CiAJCUJDMTExQUU0MTEyRjVDMjYwMDMzN0JBQiAvKiBXZWJQcm9jZXNzLmNw
cCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDMTExQUUz
MTEyRjVDMjYwMDMzN0JBQiAvKiBXZWJQcm9jZXNzLmNwcCAqLzsgfTsKIAkJQkMxMTFCMDkxMTJG
NUUzQzAwMzM3QkFCIC8qIFJlc3BvbnNpdmVuZXNzVGltZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkMxMTFCMDgxMTJGNUUzQzAwMzM3QkFCIC8q
IFJlc3BvbnNpdmVuZXNzVGltZXIuY3BwICovOyB9OwogCQlCQzExMUIwRTExMkY1RTRGMDAzMzdC
QUIgLyogV2ViRnJhbWVQcm94eS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSBCQzExMUIwQTExMkY1RTRGMDAzMzdCQUIgLyogV2ViRnJhbWVQcm94eS5j
cHAgKi87IH07CkBAIC0yMTc5LDcgKzIxNzcsNiBAQAogCQkxQTNFRUQwRDE2MUE1MzUzMDBBRUI0
RjUgLyogTWVzc2FnZVJlY2VpdmVyTWFwLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IE1lc3NhZ2VSZWNlaXZlck1hcC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkx
QTNFRUQxMTE2MUE1M0Q2MDBBRUI0RjUgLyogTWVzc2FnZVJlY2VpdmVyLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE1lc3NhZ2VSZWNlaXZlci5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQkxQTQyMkY4QTE4QjI5QjU0MDBEOENEOTYgLyogV0tIaXN0b3J5RGVsZWdh
dGVQcml2YXRlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdLSGlzdG9yeURl
bGVnYXRlUHJpdmF0ZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQkxQTQzM0YwQzEx
M0M1M0REMDBGQUNERTkgLyogV2ViRXJyb3JzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IFdlYkVycm9ycy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkxQTQzRTgy
NzE4OEYzQ0RDMDA5RTREMzAgLyogX1dLUHJvY2Vzc1Bvb2xDb25maWd1cmF0aW9uLm1tICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gX1dLUHJvY2Vzc1Bvb2xDb25maWd1
cmF0aW9uLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkxQTQzRTgyODE4OEYzQ0RD
MDA5RTREMzAgLyogX1dLUHJvY2Vzc1Bvb2xDb25maWd1cmF0aW9uLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IF9XS1Byb2Nlc3NQb29sQ29uZmlndXJhdGlvbi5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQkxQTQ0NUI5RTE4NEQ1RkI1MDA0QjM0MTQgLyogV0tDb250
ZXh0SW5qZWN0ZWRCdW5kbGVDbGllbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gV0tDb250ZXh0SW5qZWN0ZWRCdW5kbGVDbGllbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKQEAgLTM0MTAsNyArMzQwNyw2IEBACiAJCUJDMTExQTU4MTEyRjRGQkIwMDMzN0JBQiAv
KiBXZWJGcmFtZUxvYWRlckNsaWVudC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7
IHBhdGggPSBXZWJGcmFtZUxvYWRlckNsaWVudC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IHdyYXBzTGluZXMgPSAwOyB9OwogCQlCQzExMUE1OTExMkY0RkJCMDAzMzdCQUIgLyogV2ViSW5z
cGVjdG9yQ2xpZW50LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdl
Ykluc3BlY3RvckNsaWVudC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUJDMTEx
QURDMTEyRjVCOTMwMDMzN0JBQiAvKiBXZWJGcmFtZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5jcHA7IHBhdGggPSBXZWJGcmFtZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
Ci0JCUJDMTExQURGMTEyRjVCQzIwMDMzN0JBQiAvKiBXZWJFcnJvcnNNYWMubW0gKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBXZWJFcnJvcnNNYWMubW07IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCUJDMTExQUUzMTEyRjVDMjYwMDMzN0JBQiAvKiBXZWJQcm9j
ZXNzLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdlYlByb2Nlc3Mu
Y3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlCQzExMUIwODExMkY1RTNDMDAzMzdC
QUIgLyogUmVzcG9uc2l2ZW5lc3NUaW1lci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5j
cHA7IHBhdGggPSBSZXNwb25zaXZlbmVzc1RpbWVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJQkMxMTFCMEExMTJGNUU0RjAwMzM3QkFCIC8qIFdlYkZyYW1lUHJveHkuY3BwICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV2ViRnJhbWVQcm94eS5jcHA7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC01Nzg2LDcgKzU3ODIsNiBAQAogCQkJCUJDMDMy
RDY2MTBGNDM3OEQwMDU4QzE1QSAvKiBXZWJEcmFnQ2xpZW50LmggKi8sCiAJCQkJQkMxMTFBNTcx
MTJGNEZCQjAwMzM3QkFCIC8qIFdlYkVkaXRvckNsaWVudC5jcHAgKi8sCiAJCQkJQkMwMzJENjgx
MEY0Mzc4RDAwNThDMTVBIC8qIFdlYkVkaXRvckNsaWVudC5oICovLAotCQkJCTFBNDMzRjBDMTEz
QzUzREQwMEZBQ0RFOSAvKiBXZWJFcnJvcnMuaCAqLywKIAkJCQlCQzExMUE1ODExMkY0RkJCMDAz
MzdCQUIgLyogV2ViRnJhbWVMb2FkZXJDbGllbnQuY3BwICovLAogCQkJCUJDMDMyRDZBMTBGNDM3
OEQwMDU4QzE1QSAvKiBXZWJGcmFtZUxvYWRlckNsaWVudC5oICovLAogCQkJCUJDMUJFMURGMTJE
NTRBNDEwMDA0QTIyOCAvKiBXZWJHZW9sb2NhdGlvbkNsaWVudC5jcHAgKi8sCkBAIC02MjMxLDcg
KzYyMjYsNiBAQAogCQkJCTUxMDIxRTlCMTJCMTY3ODgwMDVDMDMzQyAvKiBXZWJDb250ZXh0TWVu
dUNsaWVudE1hYy5tbSAqLywKIAkJCQlDNTU0RkZBMjEyRTRFOEVBMDAyRjIyQzAgLyogV2ViRHJh
Z0NsaWVudE1hYy5tbSAqLywKIAkJCQlDNTIzN0Y1RjEyNDQxQ0EzMDA3ODA0NzIgLyogV2ViRWRp
dG9yQ2xpZW50TWFjLm1tICovLAotCQkJCUJDMTExQURGMTEyRjVCQzIwMDMzN0JBQiAvKiBXZWJF
cnJvcnNNYWMubW0gKi8sCiAJCQkJOTM5MUYyODMxMjFCMzhGNTAwRUJGN0U4IC8qIFdlYkZyYW1l
TmV0d29ya2luZ0NvbnRleHQuaCAqLywKIAkJCQk5MzkxRjI4NDEyMUIzOEY1MDBFQkY3RTggLyog
V2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dC5tbSAqLywKIAkJCQlCQ0M0M0FDNjEyN0I5OURFMDAz
MTdGMTYgLyogV2ViUG9wdXBNZW51TWFjLm1tICovLApAQCAtNzcxMSw3ICs3NzA1LDYgQEAKIAkJ
CQlCQzAzMkQ3QjEwRjQzNzhEMDA1OEMxNUEgLyogV2ViRHJhZ0NsaWVudC5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJQkNBMEVGOUYxMjMzMjY0MjAwN0QzQ0ZCIC8qIFdlYkVkaXRDb21tYW5kUHJveHku
aCBpbiBIZWFkZXJzICovLAogCQkJCUJDMDMyRDdEMTBGNDM3OEQwMDU4QzE1QSAvKiBXZWJFZGl0
b3JDbGllbnQuaCBpbiBIZWFkZXJzICovLAotCQkJCTFBNDMzRjBEMTEzQzUzREQwMEZBQ0RFOSAv
KiBXZWJFcnJvcnMuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDMDMyREI5MTBGNDM4MEYwMDU4QzE1
QSAvKiBXZWJFdmVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkMwMzJEQkIxMEY0MzgwRjAwNThD
MTVBIC8qIFdlYkV2ZW50Q29udmVyc2lvbi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkMxMTFCNUQx
MTJGNjI5ODAwMzM3QkFCIC8qIFdlYkV2ZW50RmFjdG9yeS5oIGluIEhlYWRlcnMgKi8sCkBAIC05
MTk5LDcgKzkxOTIsNiBAQAogCQkJCUJDMTExQTVFMTEyRjRGQkIwMDMzN0JBQiAvKiBXZWJFZGl0
b3JDbGllbnQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMkQyOEYzRTYxODg1Q0NDMTAwNEI5RUFF
IC8qIFdlYkVkaXRvckNsaWVudElPUy5tbSBpbiBTb3VyY2VzICovLAogCQkJCUM1MjM3RjYwMTI0
NDFDQTMwMDc4MDQ3MiAvKiBXZWJFZGl0b3JDbGllbnRNYWMubW0gaW4gU291cmNlcyAqLywKLQkJ
CQlCQzExMUFFMDExMkY1QkMyMDAzMzdCQUIgLyogV2ViRXJyb3JzTWFjLm1tIGluIFNvdXJjZXMg
Ki8sCiAJCQkJQzAzMzdEQUUxMjdBMjRGRTAwOEZGNEY0IC8qIFdlYkV2ZW50LmNwcCBpbiBTb3Vy
Y2VzICovLAogCQkJCUJDMDMyREJBMTBGNDM4MEYwMDU4QzE1QSAvKiBXZWJFdmVudENvbnZlcnNp
b24uY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQkMxMTFCNUUxMTJGNjI5ODAwMzM3QkFCIC8qIFdl
YkV2ZW50RmFjdG9yeS5tbSBpbiBTb3VyY2VzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9OZXR3b3JrL1dlYkxvYWRlclN0cmF0ZWd5LmNwcCBiL1NvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvTmV0d29yay9XZWJMb2FkZXJTdHJhdGVneS5jcHAKaW5kZXggZTNkNGE0
ODM3ZDdhZTA4M2E0ZTM4OTc2OThkMTMzZjJkYjE4YTI1MS4uMWQ4YzhmMTgyZGE2NTAwNDI0Zjk1
MTk1ZmI2ZmQ5MDE0NzBiMjM0ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9OZXR3b3JrL1dlYkxvYWRlclN0cmF0ZWd5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL05ldHdvcmsvV2ViTG9hZGVyU3RyYXRlZ3kuY3BwCkBAIC0zMyw3ICszMyw2IEBACiAj
aW5jbHVkZSAiTmV0d29ya1Jlc291cmNlTG9hZFBhcmFtZXRlcnMuaCIKICNpbmNsdWRlICJTZXNz
aW9uVHJhY2tlci5oIgogI2luY2x1ZGUgIldlYkNvcmVBcmd1bWVudENvZGVycy5oIgotI2luY2x1
ZGUgIldlYkVycm9ycy5oIgogI2luY2x1ZGUgIldlYkZyYW1lLmgiCiAjaW5jbHVkZSAiV2ViRnJh
bWVMb2FkZXJDbGllbnQuaCIKICNpbmNsdWRlICJXZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0Lmgi
CkBAIC00NCw2ICs0Myw3IEBACiAjaW5jbHVkZSA8V2ViQ29yZS9DYWNoZWRSZXNvdXJjZS5oPgog
I2luY2x1ZGUgPFdlYkNvcmUvRG9jdW1lbnQuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0RvY3VtZW50
TG9hZGVyLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9FcnJvcnMuaD4KICNpbmNsdWRlIDxXZWJDb3Jl
L0ZyYW1lLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9GcmFtZUxvYWRlci5oPgogI2luY2x1ZGUgPFdl
YkNvcmUvTmV0c2NhcGVQbHVnSW5TdHJlYW1Mb2FkZXIuaD4KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvTmV0d29yay9XZWJSZXNvdXJjZUxvYWRlci5jcHAgYi9Tb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL05ldHdvcmsvV2ViUmVzb3VyY2VMb2FkZXIuY3BwCmluZGV4IGVi
MzJhYTJmZTBmYjk4ODQxNDUxZTllYmYxNDhmZjcxOGNhZmVlZmYuLmNhMzRiOTAzNjk2ZTU4ZDQ1
OWM4MDE2YWJhYTI2Njk1YjJkNDAxZTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvTmV0d29yay9XZWJSZXNvdXJjZUxvYWRlci5jcHAKKysrIGIvU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9OZXR3b3JrL1dlYlJlc291cmNlTG9hZGVyLmNwcApAQCAtMzEsMTEgKzMxLDEx
IEBACiAjaW5jbHVkZSAiTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uLmgiCiAjaW5jbHVkZSAiTmV0
d29ya1Jlc291cmNlTG9hZGVyTWVzc2FnZXMuaCIKICNpbmNsdWRlICJXZWJDb3JlQXJndW1lbnRD
b2RlcnMuaCIKLSNpbmNsdWRlICJXZWJFcnJvcnMuaCIKICNpbmNsdWRlICJXZWJQcm9jZXNzLmgi
CiAjaW5jbHVkZSA8V2ViQ29yZS9BcHBsaWNhdGlvbkNhY2hlSG9zdC5oPgogI2luY2x1ZGUgPFdl
YkNvcmUvQ2VydGlmaWNhdGVJbmZvLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9Eb2N1bWVudExvYWRl
ci5oPgorI2luY2x1ZGUgPFdlYkNvcmUvRXJyb3JzLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9SZXNv
dXJjZUVycm9yLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9SZXNvdXJjZUxvYWRlci5oPgogI2luY2x1
ZGUgPFdlYkNvcmUvU3VicmVzb3VyY2VMb2FkZXIuaD4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRXJyb3JzLmggYi9Tb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkVycm9ycy5oCmRlbGV0ZWQgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCA3MGEyMjhjNThmMjhiMzlkNzdkNzdjMjY5YmUzNjE0NDRhOTU2MThhLi4w
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRXJyb3JzLmgKKysrIC9kZXYvbnVsbApA
QCAtMSw1MCArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDEwLCAyMDExIEFwcGxlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwot
ICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJl
dGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlv
bnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxz
IHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElT
IFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCi0g
KiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywKLSAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlN
RUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwotICog
QkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwg
RVhFTVBMQVJZLCBPUgotICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKLSAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VS
VklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwotICogSU5U
RVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4KLSAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCi0gKiBBUklTSU5HIElOIEFOWSBXQVkgT1VU
IE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCi0gKiBUSEUg
UE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI2lmbmRlZiBXZWJFcnJvcnNfaAot
I2RlZmluZSBXZWJFcnJvcnNfaAotCi1uYW1lc3BhY2UgV2ViQ29yZSB7Ci0gICAgY2xhc3MgVVJM
OwotICAgIGNsYXNzIFJlc291cmNlRXJyb3I7Ci0gICAgY2xhc3MgUmVzb3VyY2VSZXF1ZXN0Owot
ICAgIGNsYXNzIFJlc291cmNlUmVzcG9uc2U7Ci19Ci0KLW5hbWVzcGFjZSBXZWJLaXQgewotCi1X
ZWJDb3JlOjpSZXNvdXJjZUVycm9yIGNhbmNlbGxlZEVycm9yKGNvbnN0IFdlYkNvcmU6OlJlc291
cmNlUmVxdWVzdCYpOwotV2ViQ29yZTo6UmVzb3VyY2VFcnJvciBibG9ja2VkRXJyb3IoY29uc3Qg
V2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0Jik7Ci1XZWJDb3JlOjpSZXNvdXJjZUVycm9yIGJsb2Nr
ZWRCeUNvbnRlbnRCbG9ja2VyRXJyb3IoY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0Jik7
Ci1XZWJDb3JlOjpSZXNvdXJjZUVycm9yIGNhbm5vdFNob3dVUkxFcnJvcihjb25zdCBXZWJDb3Jl
OjpSZXNvdXJjZVJlcXVlc3QmKTsKLVdlYkNvcmU6OlJlc291cmNlRXJyb3IgaW50ZXJydXB0ZWRG
b3JQb2xpY3lDaGFuZ2VFcnJvcihjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmKTsKLVdl
YkNvcmU6OlJlc291cmNlRXJyb3IgY2Fubm90U2hvd01JTUVUeXBlRXJyb3IoY29uc3QgV2ViQ29y
ZTo6UmVzb3VyY2VSZXNwb25zZSYpOwotV2ViQ29yZTo6UmVzb3VyY2VFcnJvciBmaWxlRG9lc05v
dEV4aXN0RXJyb3IoY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSYpOwotV2ViQ29yZTo6
UmVzb3VyY2VFcnJvciBwbHVnaW5XaWxsSGFuZGxlTG9hZEVycm9yKGNvbnN0IFdlYkNvcmU6OlJl
c291cmNlUmVzcG9uc2UmKTsKLVdlYkNvcmU6OlJlc291cmNlRXJyb3IgaW50ZXJuYWxFcnJvcihj
b25zdCBXZWJDb3JlOjpVUkwmKTsKLQotfSAvLyBuYW1lc3BhY2UgV2ViS2l0Ci0KLSNlbmRpZiAv
LyBXZWJFcnJvcnNfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJD
b3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmNwcAppbmRleCA3NmE0
MjVkYjgyMjhkYzlmMTE5NmMxNzQ0YTVhNjA2ZGQ1ZmZjZTc0Li5lN2FmZTQ5NGNkZDBhYjY1Njdm
ZTdmOGJiNDc1Njg2MDg1YjhmOWNiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9j
ZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmNwcAorKysgYi9Tb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmNw
cApAQCAtNDEsNyArNDEsNiBAQAogI2luY2x1ZGUgIldlYkJhY2tGb3J3YXJkTGlzdFByb3h5Lmgi
CiAjaW5jbHVkZSAiV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmgiCiAjaW5jbHVkZSAiV2ViRG9jdW1l
bnRMb2FkZXIuaCIKLSNpbmNsdWRlICJXZWJFcnJvcnMuaCIKICNpbmNsdWRlICJXZWJFdmVudC5o
IgogI2luY2x1ZGUgIldlYkZyYW1lLmgiCiAjaW5jbHVkZSAiV2ViRnJhbWVOZXR3b3JraW5nQ29u
dGV4dC5oIgpAQCAtNTksNiArNTgsNyBAQAogI2luY2x1ZGUgPFdlYkNvcmUvQ2hyb21lLmg+CiAj
aW5jbHVkZSA8V2ViQ29yZS9ET01XcmFwcGVyV29ybGQuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0Rv
Y3VtZW50TG9hZGVyLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9FcnJvcnMuaD4KICNpbmNsdWRlIDxX
ZWJDb3JlL0Zvcm1TdGF0ZS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvRnJhbWVMb2FkUmVxdWVzdC5o
PgogI2luY2x1ZGUgPFdlYkNvcmUvRnJhbWVMb2FkZXIuaD4KQEAgLTExMDEsNTAgKzExMDEsMTAg
QEAgdm9pZCBXZWJGcmFtZUxvYWRlckNsaWVudDo6ZGlkRGV0ZWN0WFNTKGNvbnN0IFVSTCYsIGJv
b2wpCiAgICAgd2ViUGFnZS0+c2VuZChNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpEaWREZXRlY3RY
U1NGb3JGcmFtZShtX2ZyYW1lLT5mcmFtZUlEKCksIFVzZXJEYXRhKFdlYlByb2Nlc3M6OnNpbmds
ZXRvbigpLnRyYW5zZm9ybU9iamVjdHNUb0hhbmRsZXModXNlckRhdGEuZ2V0KCkpLmdldCgpKSkp
OwogfQogCi1SZXNvdXJjZUVycm9yIFdlYkZyYW1lTG9hZGVyQ2xpZW50OjpjYW5jZWxsZWRFcnJv
cihjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QpCi17Ci0gICAgcmV0dXJuIFdlYktpdDo6
Y2FuY2VsbGVkRXJyb3IocmVxdWVzdCk7Ci19Ci0KLVJlc291cmNlRXJyb3IgV2ViRnJhbWVMb2Fk
ZXJDbGllbnQ6OmJsb2NrZWRFcnJvcihjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QpCi17
Ci0gICAgcmV0dXJuIFdlYktpdDo6YmxvY2tlZEVycm9yKHJlcXVlc3QpOwotfQotCi1SZXNvdXJj
ZUVycm9yIFdlYkZyYW1lTG9hZGVyQ2xpZW50OjpibG9ja2VkQnlDb250ZW50QmxvY2tlckVycm9y
KGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCkKLXsKLSAgICByZXR1cm4gV2ViS2l0Ojpi
bG9ja2VkQnlDb250ZW50QmxvY2tlckVycm9yKHJlcXVlc3QpOwotfQotCi1SZXNvdXJjZUVycm9y
IFdlYkZyYW1lTG9hZGVyQ2xpZW50OjpjYW5ub3RTaG93VVJMRXJyb3IoY29uc3QgUmVzb3VyY2VS
ZXF1ZXN0JiByZXF1ZXN0KQotewotICAgIHJldHVybiBXZWJLaXQ6OmNhbm5vdFNob3dVUkxFcnJv
cihyZXF1ZXN0KTsKLX0KLQotUmVzb3VyY2VFcnJvciBXZWJGcmFtZUxvYWRlckNsaWVudDo6aW50
ZXJydXB0ZWRGb3JQb2xpY3lDaGFuZ2VFcnJvcihjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVl
c3QpCi17Ci0gICAgcmV0dXJuIFdlYktpdDo6aW50ZXJydXB0ZWRGb3JQb2xpY3lDaGFuZ2VFcnJv
cihyZXF1ZXN0KTsKLX0KLQotUmVzb3VyY2VFcnJvciBXZWJGcmFtZUxvYWRlckNsaWVudDo6Y2Fu
bm90U2hvd01JTUVUeXBlRXJyb3IoY29uc3QgUmVzb3VyY2VSZXNwb25zZSYgcmVzcG9uc2UpCi17
Ci0gICAgcmV0dXJuIFdlYktpdDo6Y2Fubm90U2hvd01JTUVUeXBlRXJyb3IocmVzcG9uc2UpOwot
fQotCi1SZXNvdXJjZUVycm9yIFdlYkZyYW1lTG9hZGVyQ2xpZW50OjpmaWxlRG9lc05vdEV4aXN0
RXJyb3IoY29uc3QgUmVzb3VyY2VSZXNwb25zZSYgcmVzcG9uc2UpCi17Ci0gICAgcmV0dXJuIFdl
YktpdDo6ZmlsZURvZXNOb3RFeGlzdEVycm9yKHJlc3BvbnNlKTsKLX0KLQotUmVzb3VyY2VFcnJv
ciBXZWJGcmFtZUxvYWRlckNsaWVudDo6cGx1Z2luV2lsbEhhbmRsZUxvYWRFcnJvcihjb25zdCBS
ZXNvdXJjZVJlc3BvbnNlJiByZXNwb25zZSkKLXsKLSAgICByZXR1cm4gV2ViS2l0OjpwbHVnaW5X
aWxsSGFuZGxlTG9hZEVycm9yKHJlc3BvbnNlKTsKLX0KLQogYm9vbCBXZWJGcmFtZUxvYWRlckNs
aWVudDo6c2hvdWxkRmFsbEJhY2soY29uc3QgUmVzb3VyY2VFcnJvciYgZXJyb3IpCiB7Ci0gICAg
c3RhdGljIE5ldmVyRGVzdHJveWVkPGNvbnN0IFJlc291cmNlRXJyb3I+IGNhbmNlbGxlZEVycm9y
KHRoaXMtPmNhbmNlbGxlZEVycm9yKFJlc291cmNlUmVxdWVzdCgpKSk7Ci0gICAgc3RhdGljIE5l
dmVyRGVzdHJveWVkPGNvbnN0IFJlc291cmNlRXJyb3I+IHBsdWdpbldpbGxIYW5kbGVMb2FkRXJy
b3IodGhpcy0+cGx1Z2luV2lsbEhhbmRsZUxvYWRFcnJvcihSZXNvdXJjZVJlc3BvbnNlKCkpKTsK
KyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgUmVzb3VyY2VFcnJvcj4gY2FuY2VsbGVk
RXJyb3IoV2ViQ29yZTo6Y2FuY2VsbGVkRXJyb3IoUmVzb3VyY2VSZXF1ZXN0KCkpKTsKKyAgICBz
dGF0aWMgTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgUmVzb3VyY2VFcnJvcj4gcGx1Z2luV2lsbEhhbmRs
ZUxvYWRFcnJvcihXZWJDb3JlOjpwbHVnaW5XaWxsSGFuZGxlTG9hZEVycm9yKFJlc291cmNlUmVz
cG9uc2UoKSkpOwogCiAgICAgaWYgKGVycm9yLmVycm9yQ29kZSgpID09IGNhbmNlbGxlZEVycm9y
LmdldCgpLmVycm9yQ29kZSgpICYmIGVycm9yLmRvbWFpbigpID09IGNhbmNlbGxlZEVycm9yLmdl
dCgpLmRvbWFpbigpKQogICAgICAgICByZXR1cm4gZmFsc2U7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50Lmgg
Yi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVy
Q2xpZW50LmgKaW5kZXggZjVkZTAwZDdkNDM0NzZkYTIwOWY5ZTU3N2M0YWE0YjNhZTdmMWY1MC4u
NDQ2YTI4MmRkYWU0N2Q4MzEzZWZkZjdlYTdmNzUzNTczY2EwOTlkZSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVu
dC5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJh
bWVMb2FkZXJDbGllbnQuaApAQCAtMTQ1LDE2ICsxNDUsNiBAQCBwcml2YXRlOgogICAgIHZvaWQg
ZGlkUnVuSW5zZWN1cmVDb250ZW50KFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luKiwgY29uc3QgV2Vi
Q29yZTo6VVJMJikgb3ZlcnJpZGU7CiAgICAgdm9pZCBkaWREZXRlY3RYU1MoY29uc3QgV2ViQ29y
ZTo6VVJMJiwgYm9vbCBkaWRCbG9ja0VudGlyZVBhZ2UpIG92ZXJyaWRlOwogCi0gICAgV2ViQ29y
ZTo6UmVzb3VyY2VFcnJvciBjYW5jZWxsZWRFcnJvcihjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJl
cXVlc3QmKSBvdmVycmlkZTsKLSAgICBXZWJDb3JlOjpSZXNvdXJjZUVycm9yIGJsb2NrZWRFcnJv
cihjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmKSBvdmVycmlkZTsKLSAgICBXZWJDb3Jl
OjpSZXNvdXJjZUVycm9yIGJsb2NrZWRCeUNvbnRlbnRCbG9ja2VyRXJyb3IoY29uc3QgV2ViQ29y
ZTo6UmVzb3VyY2VSZXF1ZXN0Jikgb3ZlcnJpZGU7Ci0gICAgV2ViQ29yZTo6UmVzb3VyY2VFcnJv
ciBjYW5ub3RTaG93VVJMRXJyb3IoY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0Jikgb3Zl
cnJpZGU7Ci0gICAgV2ViQ29yZTo6UmVzb3VyY2VFcnJvciBpbnRlcnJ1cHRlZEZvclBvbGljeUNo
YW5nZUVycm9yKGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYpIG92ZXJyaWRlOwotICAg
IAotICAgIFdlYkNvcmU6OlJlc291cmNlRXJyb3IgY2Fubm90U2hvd01JTUVUeXBlRXJyb3IoY29u
c3QgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSYpIG92ZXJyaWRlOwotICAgIFdlYkNvcmU6OlJl
c291cmNlRXJyb3IgZmlsZURvZXNOb3RFeGlzdEVycm9yKGNvbnN0IFdlYkNvcmU6OlJlc291cmNl
UmVzcG9uc2UmKSBvdmVycmlkZTsKLSAgICBXZWJDb3JlOjpSZXNvdXJjZUVycm9yIHBsdWdpbldp
bGxIYW5kbGVMb2FkRXJyb3IoY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSYpIG92ZXJy
aWRlOwotICAgIAogICAgIGJvb2wgc2hvdWxkRmFsbEJhY2soY29uc3QgV2ViQ29yZTo6UmVzb3Vy
Y2VFcnJvciYpIG92ZXJyaWRlOwogICAgIAogICAgIGJvb2wgY2FuSGFuZGxlUmVxdWVzdChjb25z
dCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmKSBjb25zdCBvdmVycmlkZTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViUGxhdGZvcm1TdHJh
dGVnaWVzLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2Vi
UGxhdGZvcm1TdHJhdGVnaWVzLmNwcAppbmRleCAwMjNjM2QxOGU0NThiZjM5MDJhYTQ4ZjQwYWNj
NWM5NWE3NmZlYWE3Li43NjAzYmM5M2Q0Njc1MmM0MmRkYTQwMjFiZDk4MmI5Yjc0YTQ5ZGVmIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlBs
YXRmb3JtU3RyYXRlZ2llcy5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJD
b3JlU3VwcG9ydC9XZWJQbGF0Zm9ybVN0cmF0ZWdpZXMuY3BwCkBAIC0zNyw3ICszNyw2IEBACiAj
aW5jbHVkZSAiU2Vzc2lvblRyYWNrZXIuaCIKICNpbmNsdWRlICJXZWJDb29raWVNYW5hZ2VyLmgi
CiAjaW5jbHVkZSAiV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmgiCi0jaW5jbHVkZSAiV2ViRXJyb3Jz
LmgiCiAjaW5jbHVkZSAiV2ViRnJhbWUuaCIKICNpbmNsdWRlICJXZWJGcmFtZUxvYWRlckNsaWVu
dC5oIgogI2luY2x1ZGUgIldlYkxvYWRlclN0cmF0ZWd5LmgiCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L2VmbC9XZWJFcnJvcnNFZmwuY3BwIGIv
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9lZmwvV2ViRXJyb3JzRWZs
LmNwcApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYjFiOTdkODY0OTA5ZDFiZjdkZGU0
NzlkOWFjN2E3MmRlZjU3YzMzNy4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L2VmbC9X
ZWJFcnJvcnNFZmwuY3BwCisrKyAvZGV2L251bGwKQEAgLTEsODUgKzAsMCBAQAotLyoKLSAqIENv
cHlyaWdodCAoQykgMjAxMSBTYW1zdW5nIEVsZWN0cm9uaWNzLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0
IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBk
b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlz
dHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5D
LiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKLSAqIEFORCBBTlkgRVhQUkVTUyBPUiBJ
TVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogVEhF
IElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwg
QVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCi0gKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJF
Q1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCi0gKiBDT05T
RVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJF
TUVOVCBPRgotICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERB
VEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCi0gKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FV
U0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgotICogQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkKLSAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKLSAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4KLSAqLwotCi0jaW5jbHVkZSAiY29uZmlnLmgiCi0jaW5jbHVkZSAiV2ViRXJyb3JzLmgi
Ci0KLSNpbmNsdWRlICJBUElFcnJvci5oIgotI2luY2x1ZGUgPFdlYkNvcmUvRXJyb3JzRWZsLmg+
Ci0jaW5jbHVkZSA8V2ViQ29yZS9SZXNvdXJjZUVycm9yLmg+Ci0jaW5jbHVkZSA8V2ViQ29yZS9S
ZXNvdXJjZVJlcXVlc3QuaD4KLSNpbmNsdWRlIDxXZWJDb3JlL1Jlc291cmNlUmVzcG9uc2UuaD4K
LSNpbmNsdWRlIDxXZWJLaXQvV0tFcnJvclJlZi5oPgotCi11c2luZyBuYW1lc3BhY2UgV2ViQ29y
ZTsKLQotbmFtZXNwYWNlIFdlYktpdCB7Ci0KLVJlc291cmNlRXJyb3IgY2FuY2VsbGVkRXJyb3Io
Y29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0KQotewotICAgIHJldHVybiBXZWJDb3JlOjpj
YW5jZWxsZWRFcnJvcihyZXF1ZXN0KTsKLX0KLQotUmVzb3VyY2VFcnJvciBibG9ja2VkRXJyb3Io
Y29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0KQotewotICAgIHJldHVybiBXZWJDb3JlOjpi
bG9ja2VkRXJyb3IocmVxdWVzdCk7Ci19Ci0KLVJlc291cmNlRXJyb3IgYmxvY2tlZEJ5Q29udGVu
dEJsb2NrZXJFcnJvcihjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QpCi17Ci0gICAgcmV0
dXJuIFdlYkNvcmU6OmJsb2NrZWRCeUNvbnRlbnRCbG9ja2VyRXJyb3IocmVxdWVzdCk7Ci19Ci0K
LVJlc291cmNlRXJyb3IgY2Fubm90U2hvd1VSTEVycm9yKGNvbnN0IFJlc291cmNlUmVxdWVzdCYg
cmVxdWVzdCkKLXsKLSAgICByZXR1cm4gV2ViQ29yZTo6Y2Fubm90U2hvd1VSTEVycm9yKHJlcXVl
c3QpOwotfQotCi1SZXNvdXJjZUVycm9yIGludGVycnVwdGVkRm9yUG9saWN5Q2hhbmdlRXJyb3Io
Y29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0KQotewotICAgIHJldHVybiBXZWJDb3JlOjpp
bnRlcnJ1cHRlZEZvclBvbGljeUNoYW5nZUVycm9yKHJlcXVlc3QpOwotfQotCi1SZXNvdXJjZUVy
cm9yIGNhbm5vdFNob3dNSU1FVHlwZUVycm9yKGNvbnN0IFJlc291cmNlUmVzcG9uc2UmIHJlc3Bv
bnNlKQotewotICAgIHJldHVybiBXZWJDb3JlOjpjYW5ub3RTaG93TUlNRVR5cGVFcnJvcihyZXNw
b25zZSk7Ci19Ci0KLVJlc291cmNlRXJyb3IgZmlsZURvZXNOb3RFeGlzdEVycm9yKGNvbnN0IFJl
c291cmNlUmVzcG9uc2UmIHJlc3BvbnNlKQotewotICAgIHJldHVybiBXZWJDb3JlOjpmaWxlRG9l
c05vdEV4aXN0RXJyb3IocmVzcG9uc2UpOwotfQotCi1SZXNvdXJjZUVycm9yIHBsdWdpbldpbGxI
YW5kbGVMb2FkRXJyb3IoY29uc3QgUmVzb3VyY2VSZXNwb25zZSYgcmVzcG9uc2UpCi17Ci0gICAg
cmV0dXJuIFdlYkNvcmU6OnBsdWdpbldpbGxIYW5kbGVMb2FkRXJyb3IocmVzcG9uc2UpOwotfQot
Ci1XZWJDb3JlOjpSZXNvdXJjZUVycm9yIGludGVybmFsRXJyb3IoY29uc3QgV2ViQ29yZTo6VVJM
JiB1cmwpCi17Ci0gICAgcmV0dXJuIFJlc291cmNlRXJyb3IoQVBJOjpFcnJvcjo6d2ViS2l0RXJy
b3JEb21haW4oKSwga1dLRXJyb3JJbnRlcm5hbCwgdXJsLCBBU0NJSUxpdGVyYWwoIkludGVybmFs
IGVycm9yIikpOwotfQotCi19IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvZ3RrL1dlYkVycm9yc0d0ay5jcHAg
Yi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L2d0ay9XZWJFcnJvcnNH
dGsuY3BwCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBlOWQxZDRjMmI3NDRjN2EzNjU5
NmY5ZGM0OTIyZmQyNjQ4MmY3ZjgzLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvZ3Rr
L1dlYkVycm9yc0d0ay5jcHAKKysrIC9kZXYvbnVsbApAQCAtMSw4OCArMCwwIEBACi0vKgotICog
Q29weXJpZ2h0IChDKSAyMDEwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqIFBv
cnRpb25zIENvcHlyaWdodCAoYykgMjAxMCBNb3Rvcm9sYSBNb2JpbGl0eSwgSW5jLiAgQWxsIHJp
Z2h0cyByZXNlcnZlZC4KLSAqIENvcHlyaWdodCAoQykgMjAxMSBJZ2FsaWEgUy5MLgotICoKLSAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRp
b25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVj
ZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0
aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9u
LgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRT
IENPTlRSSUJVVE9SUyBgYEFTIElTJycKLSAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogVEhFIElNUExJRUQg
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5D
LiBPUiBJVFMgQ09OVFJJQlVUT1JTCi0gKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElS
RUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCi0gKiBDT05TRVFVRU5USUFM
IERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgot
ICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBS
T0ZJVFM7IE9SIEJVU0lORVNTCi0gKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBP
TiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgotICogQ09OVFJBQ1QsIFNUUklD
VCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkK
LSAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YKLSAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAq
LwotCi0jaW5jbHVkZSAiY29uZmlnLmgiCi0jaW5jbHVkZSAiV2ViRXJyb3JzLmgiCi0KLSNpbmNs
dWRlICJBUElFcnJvci5oIgotI2luY2x1ZGUgPFdlYkNvcmUvRXJyb3JzR3RrLmg+Ci0jaW5jbHVk
ZSA8V2ViQ29yZS9SZXNvdXJjZUVycm9yLmg+Ci0jaW5jbHVkZSA8V2ViQ29yZS9SZXNvdXJjZVJl
cXVlc3QuaD4KLSNpbmNsdWRlIDxXZWJDb3JlL1Jlc291cmNlUmVzcG9uc2UuaD4KLSNpbmNsdWRl
IDxXZWJLaXQvV0tFcnJvclJlZi5oPgotI2luY2x1ZGUgPGdsaWIvZ2kxOG4tbGliLmg+Ci0KLXVz
aW5nIG5hbWVzcGFjZSBXZWJDb3JlOwotCi1uYW1lc3BhY2UgV2ViS2l0IHsKLQotUmVzb3VyY2VF
cnJvciBjYW5jZWxsZWRFcnJvcihjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QpCi17Ci0g
ICAgcmV0dXJuIFdlYkNvcmU6OmNhbmNlbGxlZEVycm9yKHJlcXVlc3QpOwotfQotCi1SZXNvdXJj
ZUVycm9yIGJsb2NrZWRFcnJvcihjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QpCi17Ci0g
ICAgcmV0dXJuIFdlYkNvcmU6OmJsb2NrZWRFcnJvcihyZXF1ZXN0KTsKLX0KLQotUmVzb3VyY2VF
cnJvciBibG9ja2VkQnlDb250ZW50QmxvY2tlckVycm9yKGNvbnN0IFJlc291cmNlUmVxdWVzdCYg
cmVxdWVzdCkKLXsKLSAgICByZXR1cm4gV2ViQ29yZTo6YmxvY2tlZEJ5Q29udGVudEJsb2NrZXJF
cnJvcihyZXF1ZXN0KTsKLX0KLQotUmVzb3VyY2VFcnJvciBjYW5ub3RTaG93VVJMRXJyb3IoY29u
c3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0KQotewotICAgIHJldHVybiBXZWJDb3JlOjpjYW5u
b3RTaG93VVJMRXJyb3IocmVxdWVzdCk7Ci19Ci0KLVJlc291cmNlRXJyb3IgaW50ZXJydXB0ZWRG
b3JQb2xpY3lDaGFuZ2VFcnJvcihjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QpCi17Ci0g
ICAgcmV0dXJuIFdlYkNvcmU6OmludGVycnVwdGVkRm9yUG9saWN5Q2hhbmdlRXJyb3IocmVxdWVz
dCk7Ci19Ci0KLVJlc291cmNlRXJyb3IgY2Fubm90U2hvd01JTUVUeXBlRXJyb3IoY29uc3QgUmVz
b3VyY2VSZXNwb25zZSYgcmVzcG9uc2UpCi17Ci0gICAgcmV0dXJuIFdlYkNvcmU6OmNhbm5vdFNo
b3dNSU1FVHlwZUVycm9yKHJlc3BvbnNlKTsKLX0KLQotUmVzb3VyY2VFcnJvciBmaWxlRG9lc05v
dEV4aXN0RXJyb3IoY29uc3QgUmVzb3VyY2VSZXNwb25zZSYgcmVzcG9uc2UpCi17Ci0gICAgcmV0
dXJuIFdlYkNvcmU6OmZpbGVEb2VzTm90RXhpc3RFcnJvcihyZXNwb25zZSk7Ci19Ci0KLVJlc291
cmNlRXJyb3IgcGx1Z2luV2lsbEhhbmRsZUxvYWRFcnJvcihjb25zdCBSZXNvdXJjZVJlc3BvbnNl
JiByZXNwb25zZSkKLXsKLSAgICByZXR1cm4gV2ViQ29yZTo6cGx1Z2luV2lsbEhhbmRsZUxvYWRF
cnJvcihyZXNwb25zZSk7Ci19Ci0KLVdlYkNvcmU6OlJlc291cmNlRXJyb3IgaW50ZXJuYWxFcnJv
cihjb25zdCBXZWJDb3JlOjpVUkwmIHVybCkKLXsKLSAgICByZXR1cm4gUmVzb3VyY2VFcnJvcihB
UEk6OkVycm9yOjp3ZWJLaXRFcnJvckRvbWFpbigpLCBrV0tFcnJvckludGVybmFsLCB1cmwsIF8o
IkludGVybmFsIGVycm9yIikpOwotfQotCi19IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvbWFjL1dlYkVycm9y
c01hYy5tbSBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvbWFjL1dl
YkVycm9yc01hYy5tbQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggOTRkZjU2NGI3Yzdl
MzkwYjQwMGQ2ZTQyZGQyZTViY2I4OTRhNTI5Yy4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBw
b3J0L21hYy9XZWJFcnJvcnNNYWMubW0KKysrIC9kZXYvbnVsbApAQCAtMSwxMDAgKzAsMCBAQAot
LyoKLSAqIENvcHlyaWdodCAoQykgMjAxMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
Ci0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdo
dAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3Qg
cmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0
cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMu
IEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwotICogQU5EIEFOWSBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBUSEUg
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBB
UFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKLSAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKLSAqIENPTlNF
UVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVN
RU5UIE9GCi0gKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFU
QSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKLSAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCi0gKiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKQotICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgotICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLgotICovCi0KLSNpbXBvcnQgImNvbmZpZy5oIgotI2ltcG9ydCAiV2ViRXJyb3JzLmgiCi0K
LSNpbXBvcnQgIkFQSUVycm9yLmgiCi0jaW1wb3J0ICJXS0Vycm9yUmVmLmgiCi0jaW1wb3J0IDxX
ZWJDb3JlL0xvY2FsaXplZFN0cmluZ3MuaD4KLSNpbXBvcnQgPFdlYkNvcmUvUmVzb3VyY2VSZXF1
ZXN0Lmg+Ci0jaW1wb3J0IDxXZWJDb3JlL1Jlc291cmNlUmVzcG9uc2UuaD4KLQotdXNpbmcgbmFt
ZXNwYWNlIFdlYkNvcmU7Ci11c2luZyBuYW1lc3BhY2UgV2ViS2l0OwotCi1uYW1lc3BhY2UgV2Vi
S2l0IHsKLQotc3RhdGljIFJldGFpblB0cjxOU0Vycm9yPiBjcmVhdGVOU0Vycm9yKE5TU3RyaW5n
KiBkb21haW4sIGludCBjb2RlLCBOU1VSTCAqVVJMKQotewotICAgIE5TRGljdGlvbmFyeSAqdXNl
ckluZm8gPSBbTlNEaWN0aW9uYXJ5IGRpY3Rpb25hcnlXaXRoT2JqZWN0c0FuZEtleXM6Ci0gICAg
ICAgIFVSTCwgQCJOU0Vycm9yRmFpbGluZ1VSTEtleSIsCi0gICAgICAgIFtVUkwgYWJzb2x1dGVT
dHJpbmddLCBAIk5TRXJyb3JGYWlsaW5nVVJMU3RyaW5nS2V5IiwKLSAgICAgICAgbmlsXTsKLQot
ICAgIHJldHVybiBhZG9wdE5TKFtbTlNFcnJvciBhbGxvY10gaW5pdFdpdGhEb21haW46ZG9tYWlu
IGNvZGU6Y29kZSB1c2VySW5mbzp1c2VySW5mb10pOwotfQotCi0vLyBVc2UgTlNFcnJvcidzIGlm
IGF2YWlsYWJsZS4KLQotUmVzb3VyY2VFcnJvciBjYW5jZWxsZWRFcnJvcihjb25zdCBSZXNvdXJj
ZVJlcXVlc3QmIHJlcXVlc3QpCi17Ci0gICAgcmV0dXJuIFJlc291cmNlRXJyb3IoY3JlYXRlTlNF
cnJvcihOU1VSTEVycm9yRG9tYWluLCBOU1VSTEVycm9yQ2FuY2VsbGVkLCByZXF1ZXN0LnVybCgp
KS5nZXQoKSk7Ci19Ci0KLVJlc291cmNlRXJyb3IgZmlsZURvZXNOb3RFeGlzdEVycm9yKGNvbnN0
IFJlc291cmNlUmVzcG9uc2UmIHJlc3BvbnNlKQotewotICAgIHJldHVybiBSZXNvdXJjZUVycm9y
KGNyZWF0ZU5TRXJyb3IoTlNVUkxFcnJvckRvbWFpbiwgTlNVUkxFcnJvckZpbGVEb2VzTm90RXhp
c3QsIHJlc3BvbnNlLnVybCgpKS5nZXQoKSk7Ci19Ci0KLQotLy8gT3RoZXJ3aXNlLCBmYWxsYmFj
ayB0byBvdXIgb3duIGVycm9ycy4KLQotUmVzb3VyY2VFcnJvciBibG9ja2VkRXJyb3IoY29uc3Qg
UmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0KQotewotICAgIHJldHVybiBSZXNvdXJjZUVycm9yKEFQ
STo6RXJyb3I6OndlYktpdEVycm9yRG9tYWluKCksIGtXS0Vycm9yQ29kZUNhbm5vdFVzZVJlc3Ry
aWN0ZWRQb3J0LCByZXF1ZXN0LnVybCgpLCBXRUJfVUlfU1RSSU5HKCJOb3QgYWxsb3dlZCB0byB1
c2UgcmVzdHJpY3RlZCBuZXR3b3JrIHBvcnQiLCAiV2ViS2l0RXJyb3JDYW5ub3RVc2VSZXN0cmlj
dGVkUG9ydCBkZXNjcmlwdGlvbiIpKTsKLX0KLQotUmVzb3VyY2VFcnJvciBibG9ja2VkQnlDb250
ZW50QmxvY2tlckVycm9yKGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCkKLXsKLSAgICBy
ZXR1cm4gUmVzb3VyY2VFcnJvcihBUEk6OkVycm9yOjp3ZWJLaXRFcnJvckRvbWFpbigpLCBrV0tF
cnJvckNvZGVGcmFtZUxvYWRCbG9ja2VkQnlDb250ZW50QmxvY2tlciwgcmVxdWVzdC51cmwoKSwg
V0VCX1VJX1NUUklORygiVGhlIFVSTCB3YXMgYmxvY2tlZCBieSBhIGNvbnRlbnQgYmxvY2tlciIs
ICJXZWJLaXRFcnJvckJsb2NrZWRCeUNvbnRlbnRCbG9ja2VyIGRlc2NyaXB0aW9uIikpOwotfQot
Ci1SZXNvdXJjZUVycm9yIGNhbm5vdFNob3dVUkxFcnJvcihjb25zdCBSZXNvdXJjZVJlcXVlc3Qm
IHJlcXVlc3QpCi17Ci0gICAgcmV0dXJuIFJlc291cmNlRXJyb3IoQVBJOjpFcnJvcjo6d2ViS2l0
RXJyb3JEb21haW4oKSwga1dLRXJyb3JDb2RlQ2Fubm90U2hvd1VSTCwgcmVxdWVzdC51cmwoKSwg
V0VCX1VJX1NUUklORygiVGhlIFVSTCBjYW7igJl0IGJlIHNob3duIiwgIldlYktpdEVycm9yQ2Fu
bm90U2hvd1VSTCBkZXNjcmlwdGlvbiIpKTsKLX0KLQotUmVzb3VyY2VFcnJvciBpbnRlcnJ1cHRl
ZEZvclBvbGljeUNoYW5nZUVycm9yKGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCkKLXsK
LSAgICByZXR1cm4gUmVzb3VyY2VFcnJvcihBUEk6OkVycm9yOjp3ZWJLaXRFcnJvckRvbWFpbigp
LCBrV0tFcnJvckNvZGVGcmFtZUxvYWRJbnRlcnJ1cHRlZEJ5UG9saWN5Q2hhbmdlLCByZXF1ZXN0
LnVybCgpLCBXRUJfVUlfU1RSSU5HKCJGcmFtZSBsb2FkIGludGVycnVwdGVkIiwgIldlYktpdEVy
cm9yRnJhbWVMb2FkSW50ZXJydXB0ZWRCeVBvbGljeUNoYW5nZSBkZXNjcmlwdGlvbiIpKTsKLX0K
LQotUmVzb3VyY2VFcnJvciBjYW5ub3RTaG93TUlNRVR5cGVFcnJvcihjb25zdCBSZXNvdXJjZVJl
c3BvbnNlJiByZXNwb25zZSkKLXsKLSAgICByZXR1cm4gUmVzb3VyY2VFcnJvcihBUEk6OkVycm9y
Ojp3ZWJLaXRFcnJvckRvbWFpbigpLCBrV0tFcnJvckNvZGVDYW5ub3RTaG93TUlNRVR5cGUsIHJl
c3BvbnNlLnVybCgpLCBXRUJfVUlfU1RSSU5HKCJDb250ZW50IHdpdGggc3BlY2lmaWVkIE1JTUUg
dHlwZSBjYW7igJl0IGJlIHNob3duIiwgIldlYktpdEVycm9yQ2Fubm90U2hvd01JTUVUeXBlIGRl
c2NyaXB0aW9uIikpOwotfQotCi1SZXNvdXJjZUVycm9yIHBsdWdpbldpbGxIYW5kbGVMb2FkRXJy
b3IoY29uc3QgUmVzb3VyY2VSZXNwb25zZSYgcmVzcG9uc2UpCi17Ci0gICAgcmV0dXJuIFJlc291
cmNlRXJyb3IoQVBJOjpFcnJvcjo6d2ViS2l0RXJyb3JEb21haW4oKSwga1dLRXJyb3JDb2RlUGx1
Z0luV2lsbEhhbmRsZUxvYWQsIHJlc3BvbnNlLnVybCgpLCBXRUJfVUlfU1RSSU5HKCJQbHVnLWlu
IGhhbmRsZWQgbG9hZCIsICJXZWJLaXRFcnJvclBsdWdJbldpbGxIYW5kbGVMb2FkIGRlc2NyaXB0
aW9uIikpOwotfQotCi1SZXNvdXJjZUVycm9yIGludGVybmFsRXJyb3IoY29uc3QgVVJMJiB1cmwp
Ci17Ci0gICAgcmV0dXJuIFJlc291cmNlRXJyb3IoQVBJOjpFcnJvcjo6d2ViS2l0RXJyb3JEb21h
aW4oKSwga1dLRXJyb3JJbnRlcm5hbCwgdXJsLCBXRUJfVUlfU1RSSU5HKCJXZWJLaXQgZW5jb3Vu
dGVyZWQgYW4gaW50ZXJuYWwgZXJyb3IiLCAiV2ViS2l0RXJyb3JJbnRlcm5hbCBkZXNjcmlwdGlv
biIpKTsKLX0KLQotfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L21hYy9XZWJGcmFtZU5ldHdvcmtpbmdDb250
ZXh0Lm1tIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9tYWMvV2Vi
RnJhbWVOZXR3b3JraW5nQ29udGV4dC5tbQppbmRleCA1YjY0ZTI4N2UzZDI5MjdiMTgyODMwN2Q3
NDk4ZTQ3ZTU0ZWE0YzMyLi40ZTg1ODllZDdjZDBjZjNiZGRkOTg2MmE4MzJkZDFlMjFhZjFjYzhh
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L21h
Yy9XZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvV2ViQ29yZVN1cHBvcnQvbWFjL1dlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQubW0KQEAg
LTMyLDYgKzMyLDcgQEAKICNpbmNsdWRlICJXZWJQYWdlLmgiCiAjaW5jbHVkZSAiV2ViUHJvY2Vz
cy5oIgogI2luY2x1ZGUgPFdlYkNvcmUvQ0ZOZXR3b3JrU1BJLmg+CisjaW5jbHVkZSA8V2ViQ29y
ZS9FcnJvcnMuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0ZyYW1lLmg+CiAjaW5jbHVkZSA8V2ViQ29y
ZS9GcmFtZUxvYWRlci5oPgogI2luY2x1ZGUgPFdlYkNvcmUvRnJhbWVMb2FkZXJDbGllbnQuaD4K
QEAgLTEwMyw3ICsxMDQsNyBAQCBTdHJpbmcgV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dDo6c291
cmNlQXBwbGljYXRpb25JZGVudGlmaWVyKCkgY29uc3QKIAogUmVzb3VyY2VFcnJvciBXZWJGcmFt
ZU5ldHdvcmtpbmdDb250ZXh0OjpibG9ja2VkRXJyb3IoY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiBy
ZXF1ZXN0KSBjb25zdAogewotICAgIHJldHVybiBmcmFtZSgpLT5sb2FkZXIoKS5jbGllbnQoKS5i
bG9ja2VkRXJyb3IocmVxdWVzdCk7CisgICAgcmV0dXJuIFdlYkNvcmU6OmJsb2NrZWRFcnJvcihy
ZXF1ZXN0KTsKIH0KIAogTmV0d29ya1N0b3JhZ2VTZXNzaW9uJiBXZWJGcmFtZU5ldHdvcmtpbmdD
b250ZXh0OjpzdG9yYWdlU2Vzc2lvbigpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvZ3RrL1dlYlByaW50T3BlcmF0aW9uR3RrLmNwcCBiL1NvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9ndGsvV2ViUHJpbnRPcGVyYXRpb25HdGsuY3Bw
CmluZGV4IGI2MjA1ZGI5NDk1MDEzZTRhOGUyMjFjZDZiZmI2ZDg0OTgzODMwMTIuLjcwZWY1MGUw
MThmNmUxMmUwNmU5MmMxMTE0OWRhMGVjN2IxMWFiYjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9ndGsvV2ViUHJpbnRPcGVyYXRpb25HdGsuY3BwCisrKyBi
L1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9ndGsvV2ViUHJpbnRPcGVyYXRpb25H
dGsuY3BwCkBAIC0zMSw3ICszMSw3IEBACiAjaW5jbHVkZSAiV2ViUGFnZVByb3h5TWVzc2FnZXMu
aCIKICNpbmNsdWRlICJXZWJQcm9jZXNzLmgiCiAjaW5jbHVkZSA8V2ViQ29yZS9Eb2N1bWVudExv
YWRlci5oPgotI2luY2x1ZGUgPFdlYkNvcmUvRXJyb3JzR3RrLmg+CisjaW5jbHVkZSA8V2ViQ29y
ZS9FcnJvcnNVbml4Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9GcmFtZS5oPgogI2luY2x1ZGUgPFdl
YkNvcmUvSW50UmVjdC5oPgogI2luY2x1ZGUgPFdlYkNvcmUvTm90SW1wbGVtZW50ZWQuaD4K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>280439</attachid>
            <date>2016-06-03 05:11:02 -0700</date>
            <delta_ts>2016-06-10 02:23:56 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-156974-20160603151221.patch</filename>
            <type>text/plain</type>
            <size>133075</size>
            <attacher name="Claudio Saavedra">csaavedra</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjAxNjQwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNjg0MzBkNWY4NDJhYzcy
OGU1YzU1MDE2ZGM2NjRlNGM1YjNlMmNiNy4uYTY4ZTlmYjI4OWNkMDJjOWE3OWZlOTYzY2VkNzRi
NzQ3MmI4ODUxNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEwOCBAQAorMjAxNi0wNS0yMCAgQ2xh
dWRpbyBTYWF2ZWRyYSAgPGNzYWF2ZWRyYUBpZ2FsaWEuY29tPgorCisgICAgICAgIFVuaWZ5aW5n
IEVycm9ycy9XZWJFcnJvcnMgaW50byBXZWJDb3JlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNTY5NzQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICBGcmFtZUxvYWRlckNsaWVudCBlcnJvciBtZXRob2RzIGlu
IFdlYkNvcmUgYW5kIFdlYkVycm9ycyBpbiBXSzIgYXJlCisgICAgICAgIHJlZHVuZGFudC4gRnVy
dGhlcm1vcmUsIEZyYW1lTG9hZGVyQ2xpZW50IGVycm9yIG1ldGhvZHMgZG8gbm90IGRlcGVuZAor
ICAgICAgICBpbiB0aGUgbG9hZGVyIGNsaWVudCBpbnN0YW5jZSBhdCBhbGwuCisKKyAgICAgICAg
UmVtb3ZlIHRoZSBlcnJvciBtZXRob2RzIGZyb20gRnJhbWVMb2FkZXJDbGllbnQgYW5kIGFkb3B0
IHRoZSBXZWJFcnJvcnMKKyAgICAgICAgZnJvbSBXSzIgaW50byBXZWJDb3JlLCBzdGFuZGFsb25l
IG1ldGhvZHMuIE1vdmUgdGhlIEVGTCwgR1RLLCBhbmQgV2luLCBhbmQgTWFjIGltcGxlbWVudGF0
aW9ucworICAgICAgICB0byBXZWJDb3JlL3BsYXRmb3JtLCBhbmQgdXBkYXRlIHRoZSBjb2RlIGV2
ZXJ5d2hlcmUgYWNjb3JkaW5nbHkuCisKKyAgICAgICAgKiBQbGF0Zm9ybUVmbC5jbWFrZToKKyAg
ICAgICAgKiBQbGF0Zm9ybUdUSy5jbWFrZToKKyAgICAgICAgKiBQbGF0Zm9ybU1hYy5jbWFrZToK
KyAgICAgICAgKiBQbGF0Zm9ybVdpbi5jbWFrZToKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJv
ai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogbG9hZGVyL0RvY3VtZW50TG9hZGVyLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50TG9hZGVyOjpjb250aW51ZUFmdGVyQ29udGVudFBv
bGljeSk6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudExvYWRlcjo6aW50ZXJydXB0ZWRGb3JQ
b2xpY3lDaGFuZ2VFcnJvcik6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudExvYWRlcjo6c3Rh
cnRMb2FkaW5nTWFpblJlc291cmNlKToKKyAgICAgICAgKiBsb2FkZXIvRW1wdHlDbGllbnRzLmg6
CisgICAgICAgICogbG9hZGVyL0ZyYW1lTG9hZGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZy
YW1lTG9hZGVyOjpjYW5jZWxsZWRFcnJvcik6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZUxvYWRl
cjo6YmxvY2tlZEVycm9yKToKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lTG9hZGVyOjpibG9ja2Vk
QnlDb250ZW50QmxvY2tlckVycm9yKTogRGVsZXRlZC4KKyAgICAgICAgKiBsb2FkZXIvRnJhbWVM
b2FkZXIuaDoKKyAgICAgICAgKiBsb2FkZXIvRnJhbWVMb2FkZXJDbGllbnQuaDoKKyAgICAgICAg
KiBsb2FkZXIvTmV0c2NhcGVQbHVnSW5TdHJlYW1Mb2FkZXIuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6TmV0c2NhcGVQbHVnSW5TdHJlYW1Mb2FkZXI6OmRpZFJlY2VpdmVSZXNwb25zZSk6CisgICAg
ICAgICogbG9hZGVyL1BvbGljeUNoZWNrZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UG9saWN5
Q2hlY2tlcjo6Y2Fubm90U2hvd01JTUVUeXBlKToKKyAgICAgICAgKFdlYkNvcmU6OlBvbGljeUNo
ZWNrZXI6OmNvbnRpbnVlQWZ0ZXJOYXZpZ2F0aW9uUG9saWN5KToKKyAgICAgICAgKiBsb2FkZXIv
UmVzb3VyY2VMb2FkZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VMb2FkZXI6OmJs
b2NrZWRFcnJvcik6CisgICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZUxvYWRlcjo6YmxvY2tlZEJ5
Q29udGVudEJsb2NrZXJFcnJvcik6CisgICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZUxvYWRlcjo6
Y2Fubm90U2hvd1VSTEVycm9yKToKKyAgICAgICAgKiBsb2FkZXIvYXBwY2FjaGUvQXBwbGljYXRp
b25DYWNoZUhvc3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6QXBwbGljYXRpb25DYWNoZUhvc3Q6
Om1heWJlTG9hZFN5bmNocm9ub3VzbHkpOgorICAgICAgICAqIHBsYXRmb3JtL0Vycm9ycy5jcHA6
IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6d2ViS2l0RXJyb3JEb21haW4pOgorICAgICAgICAq
IHBsYXRmb3JtL0Vycm9ycy5oOiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9lZmwvRXJyb3Jz
RWZsLmNwcDogUmVtb3ZlZC4KKyAgICAgICAgKFdlYkNvcmU6OmNhbmNlbGxlZEVycm9yKTogRGVs
ZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OmJsb2NrZWRFcnJvcik6IERlbGV0ZWQuCisgICAgICAg
IChXZWJDb3JlOjpibG9ja2VkQnlDb250ZW50QmxvY2tlckVycm9yKTogRGVsZXRlZC4KKyAgICAg
ICAgKFdlYkNvcmU6OmNhbm5vdFNob3dVUkxFcnJvcik6IERlbGV0ZWQuCisgICAgICAgIChXZWJD
b3JlOjppbnRlcnJ1cHRlZEZvclBvbGljeUNoYW5nZUVycm9yKTogRGVsZXRlZC4KKyAgICAgICAg
KFdlYkNvcmU6OmNhbm5vdFNob3dNSU1FVHlwZUVycm9yKTogRGVsZXRlZC4KKyAgICAgICAgKFdl
YkNvcmU6OmZpbGVEb2VzTm90RXhpc3RFcnJvcik6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3Jl
OjpwbHVnaW5XaWxsSGFuZGxlTG9hZEVycm9yKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6
OmRvd25sb2FkTmV0d29ya0Vycm9yKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OmRvd25s
b2FkQ2FuY2VsbGVkQnlVc2VyRXJyb3IpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6ZG93
bmxvYWREZXN0aW5hdGlvbkVycm9yKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OnByaW50
RXJyb3IpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6cHJpbnRlck5vdEZvdW5kRXJyb3Ip
OiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6aW52YWxpZFBhZ2VSYW5nZVRvUHJpbnQpOiBE
ZWxldGVkLgorICAgICAgICAqIHBsYXRmb3JtL2VmbC9FcnJvcnNFZmwuaDogUmVtb3ZlZC4KKyAg
ICAgICAgKiBwbGF0Zm9ybS9ndGsvRXJyb3JzR3RrLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmNh
bmNlbGxlZEVycm9yKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OmJsb2NrZWRFcnJvcik6
IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpibG9ja2VkQnlDb250ZW50QmxvY2tlckVycm9y
KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OmNhbm5vdFNob3dVUkxFcnJvcik6IERlbGV0
ZWQuCisgICAgICAgIChXZWJDb3JlOjppbnRlcnJ1cHRlZEZvclBvbGljeUNoYW5nZUVycm9yKTog
RGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OmNhbm5vdFNob3dNSU1FVHlwZUVycm9yKTogRGVs
ZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OmZpbGVEb2VzTm90RXhpc3RFcnJvcik6IERlbGV0ZWQu
CisgICAgICAgIChXZWJDb3JlOjpwbHVnaW5XaWxsSGFuZGxlTG9hZEVycm9yKTogRGVsZXRlZC4K
KyAgICAgICAgKFdlYkNvcmU6OmRvd25sb2FkTmV0d29ya0Vycm9yKTogRGVsZXRlZC4KKyAgICAg
ICAgKFdlYkNvcmU6OmRvd25sb2FkQ2FuY2VsbGVkQnlVc2VyRXJyb3IpOiBEZWxldGVkLgorICAg
ICAgICAoV2ViQ29yZTo6ZG93bmxvYWREZXN0aW5hdGlvbkVycm9yKTogRGVsZXRlZC4KKyAgICAg
ICAgKFdlYkNvcmU6OnByaW50RXJyb3IpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6cHJp
bnRlck5vdEZvdW5kRXJyb3IpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6aW52YWxpZFBh
Z2VSYW5nZVRvUHJpbnQpOiBEZWxldGVkLgorICAgICAgICAqIHBsYXRmb3JtL21hYy9FcnJvcnNN
YWMubW06IFJlbmFtZWQgZnJvbSBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBw
b3J0L21hYy9XZWJFcnJvcnNNYWMubW0uCisgICAgICAgIChXZWJDb3JlOjpjcmVhdGVOU0Vycm9y
KToKKyAgICAgICAgKFdlYkNvcmU6OmNhbmNlbGxlZEVycm9yKToKKyAgICAgICAgKFdlYkNvcmU6
OmZpbGVEb2VzTm90RXhpc3RFcnJvcik6CisgICAgICAgIChXZWJDb3JlOjpibG9ja2VkRXJyb3Ip
OgorICAgICAgICAoV2ViQ29yZTo6YmxvY2tlZEJ5Q29udGVudEJsb2NrZXJFcnJvcik6CisgICAg
ICAgIChXZWJDb3JlOjpjYW5ub3RTaG93VVJMRXJyb3IpOgorICAgICAgICAoV2ViQ29yZTo6aW50
ZXJydXB0ZWRGb3JQb2xpY3lDaGFuZ2VFcnJvcik6CisgICAgICAgIChXZWJDb3JlOjpjYW5ub3RT
aG93TUlNRVR5cGVFcnJvcik6CisgICAgICAgIChXZWJDb3JlOjpwbHVnaW5XaWxsSGFuZGxlTG9h
ZEVycm9yKToKKyAgICAgICAgKFdlYkNvcmU6OmludGVybmFsRXJyb3IpOgorICAgICAgICAqIHBs
YXRmb3JtL3VuaXgvRXJyb3JzVW5peC5jcHA6IFJlbmFtZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ndGsvRXJyb3JzR3RrLmNwcC4KKyAgICAgICAgKFdlYkNvcmU6OmNhbmNlbGxlZEVy
cm9yKToKKyAgICAgICAgKFdlYkNvcmU6OmJsb2NrZWRFcnJvcik6CisgICAgICAgIChXZWJDb3Jl
OjpibG9ja2VkQnlDb250ZW50QmxvY2tlckVycm9yKToKKyAgICAgICAgKFdlYkNvcmU6OmNhbm5v
dFNob3dVUkxFcnJvcik6CisgICAgICAgIChXZWJDb3JlOjppbnRlcnJ1cHRlZEZvclBvbGljeUNo
YW5nZUVycm9yKToKKyAgICAgICAgKFdlYkNvcmU6OmNhbm5vdFNob3dNSU1FVHlwZUVycm9yKToK
KyAgICAgICAgKFdlYkNvcmU6OmZpbGVEb2VzTm90RXhpc3RFcnJvcik6CisgICAgICAgIChXZWJD
b3JlOjpwbHVnaW5XaWxsSGFuZGxlTG9hZEVycm9yKToKKyAgICAgICAgKFdlYkNvcmU6OmRvd25s
b2FkTmV0d29ya0Vycm9yKToKKyAgICAgICAgKFdlYkNvcmU6OmRvd25sb2FkQ2FuY2VsbGVkQnlV
c2VyRXJyb3IpOgorICAgICAgICAoV2ViQ29yZTo6ZG93bmxvYWREZXN0aW5hdGlvbkVycm9yKToK
KyAgICAgICAgKFdlYkNvcmU6OnByaW50RXJyb3IpOgorICAgICAgICAoV2ViQ29yZTo6cHJpbnRl
ck5vdEZvdW5kRXJyb3IpOgorICAgICAgICAoV2ViQ29yZTo6aW52YWxpZFBhZ2VSYW5nZVRvUHJp
bnQpOgorICAgICAgICAoV2ViQ29yZTo6aW50ZXJuYWxFcnJvcik6CisgICAgICAgICogcGxhdGZv
cm0vdW5peC9FcnJvcnNVbml4Lmg6IFJlbmFtZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ndGsvRXJyb3JzR3RrLmguCisKIDIwMTYtMDYtMDMgIEFudG9pbmUgUXVpbnQgIDxncmFvdXRz
QGFwcGxlLmNvbT4KIAogICAgICAgICBSRUdSRVNTSU9OOiBXZWJHTCBkb2Vzbid0IHNob3cgdXAg
aW4gQ1NTIHJlZmxlY3Rpb25zCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VM
b2cgYi9Tb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cKaW5kZXggOThkMmJlNmQ4MzA0NjA3NjE2
MzE3MjZhMmU5ZWMxYmFhZjg2OTE0NS4uOWE0OGZlYWQxYzVlMTc0ZjhkMzM0NWI3YWVmODEwNGQ0
ZDFhMTYzOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMzIEBACisyMDE2LTA1LTIwICBD
bGF1ZGlvIFNhYXZlZHJhICA8Y3NhYXZlZHJhQGlnYWxpYS5jb20+CisKKyAgICAgICAgVW5pZnlp
bmcgRXJyb3JzL1dlYkVycm9ycyBpbnRvIFdlYkNvcmUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE1Njk3NAorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIEZyYW1lTG9hZGVyQ2xpZW50IGVycm9yIG1ldGhvZHMg
aW4gV2ViQ29yZSBhbmQgV2ViRXJyb3JzIGluIFdLMiBhcmUKKyAgICAgICAgcmVkdW5kYW50LiBG
dXJ0aGVybW9yZSwgRnJhbWVMb2FkZXJDbGllbnQgZXJyb3IgbWV0aG9kcyBkbyBub3QgZGVwZW5k
CisgICAgICAgIGluIHRoZSBsb2FkZXIgY2xpZW50IGluc3RhbmNlIGF0IGFsbC4KKworICAgICAg
ICBSZW1vdmUgdGhlIGVycm9yIG1ldGhvZHMgZnJvbSBGcmFtZUxvYWRlckNsaWVudCBhbmQgYWRv
cHQgdGhlIFdlYkVycm9ycworICAgICAgICBmcm9tIFdLMiBpbnRvIFdlYkNvcmUsIHN0YW5kYWxv
bmUgbWV0aG9kcy4gTW92ZSB0aGUgRUZMLCBHVEssIGFuZCBNYWMgaW1wbGVtZW50YXRpb25zCisg
ICAgICAgIHRvIFdlYkNvcmUvcGxhdGZvcm0sIGFuZCB1cGRhdGUgdGhlIGNvZGUgZXZlcnl3aGVy
ZSBhY2NvcmRpbmdseS4KKworICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVy
Q2xpZW50Lmg6CisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQu
bW06CisgICAgICAgIChXZWJGcmFtZUxvYWRlckNsaWVudDo6Y2FuY2VsbGVkRXJyb3IpOiBEZWxl
dGVkLgorICAgICAgICAoV2ViRnJhbWVMb2FkZXJDbGllbnQ6OmJsb2NrZWRFcnJvcik6IERlbGV0
ZWQuCisgICAgICAgIChXZWJGcmFtZUxvYWRlckNsaWVudDo6YmxvY2tlZEJ5Q29udGVudEJsb2Nr
ZXJFcnJvcik6IERlbGV0ZWQuCisgICAgICAgIChXZWJGcmFtZUxvYWRlckNsaWVudDo6Y2Fubm90
U2hvd1VSTEVycm9yKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkZyYW1lTG9hZGVyQ2xpZW50Ojpp
bnRlcnJ1cHRlZEZvclBvbGljeUNoYW5nZUVycm9yKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkZy
YW1lTG9hZGVyQ2xpZW50OjpjYW5ub3RTaG93TUlNRVR5cGVFcnJvcik6IERlbGV0ZWQuCisgICAg
ICAgIChXZWJGcmFtZUxvYWRlckNsaWVudDo6ZmlsZURvZXNOb3RFeGlzdEVycm9yKTogRGVsZXRl
ZC4KKyAgICAgICAgKFdlYkZyYW1lTG9hZGVyQ2xpZW50OjpwbHVnaW5XaWxsSGFuZGxlTG9hZEVy
cm9yKTogRGVsZXRlZC4KKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9XZWJGcmFtZU5ldHdvcmtp
bmdDb250ZXh0Lm1tOgorICAgICAgICAoV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dDo6YmxvY2tl
ZEVycm9yKToKKyAgICAgICAgKiBXZWJWaWV3L1dlYkhUTUxSZXByZXNlbnRhdGlvbi5tbToKKyAg
ICAgICAgKC1bV2ViSFRNTFJlcHJlc2VudGF0aW9uIHJlY2VpdmVkRGF0YTp3aXRoRGF0YVNvdXJj
ZTpdKToKKwogMjAxNi0wNi0wMiAgWW91ZW5uIEZhYmxldCAgPHlvdWVubi5mYWJsZXRAY3JmLmNh
bm9uLmZyPgogCiAgICAgICAgIEFkZCBXZWJJREwgc3BlY2lhbCBvcGVyYXRpb24gc3VwcG9ydDog
c2VyaWFsaXplcgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nIGIvU291cmNl
L1dlYktpdDIvQ2hhbmdlTG9nCmluZGV4IDZjMDk0Y2ExZWFjZjM4MzgxYzNhMjIwZjk1ZDFjNWJh
MmIwOGJiYTIuLjgyZmI5MDdjYmM2YTU4Y2Q4NzdhYjAyZDI0ZWI4ZjQ0NzNkZmZjMjIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFu
Z2VMb2cKQEAgLTEsMyArMSw5MyBAQAorMjAxNi0wNS0yMCAgQ2xhdWRpbyBTYWF2ZWRyYSAgPGNz
YWF2ZWRyYUBpZ2FsaWEuY29tPgorCisgICAgICAgIFVuaWZ5aW5nIEVycm9ycy9XZWJFcnJvcnMg
aW50byBXZWJDb3JlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0xNTY5NzQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICBGcmFtZUxvYWRlckNsaWVudCBlcnJvciBtZXRob2RzIGluIFdlYkNvcmUgYW5kIFdlYkVy
cm9ycyBpbiBXSzIgYXJlCisgICAgICAgIHJlZHVuZGFudC4gRnVydGhlcm1vcmUsIEZyYW1lTG9h
ZGVyQ2xpZW50IGVycm9yIG1ldGhvZHMgZG8gbm90IGRlcGVuZAorICAgICAgICBpbiB0aGUgbG9h
ZGVyIGNsaWVudCBpbnN0YW5jZSBhdCBhbGwuCisKKyAgICAgICAgUmVtb3ZlIHRoZSBlcnJvciBt
ZXRob2RzIGZyb20gRnJhbWVMb2FkZXJDbGllbnQgYW5kIGFkb3B0IHRoZSBXZWJFcnJvcnMKKyAg
ICAgICAgZnJvbSBXSzIgaW50byBXZWJDb3JlLCBzdGFuZGFsb25lIG1ldGhvZHMuIE1vdmUgdGhl
IEVGTCwgR1RLLCBhbmQgTWFjIGltcGxlbWVudGF0aW9ucworICAgICAgICB0byBXZWJDb3JlL3Bs
YXRmb3JtLCBhbmQgdXBkYXRlIHRoZSBjb2RlIGV2ZXJ5d2hlcmUgYWNjb3JkaW5nbHkuCisKKyAg
ICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9Eb3dubG9hZHMvZWZsL0Rvd25sb2FkU291cEVycm9yc0Vm
bC5jcHA6IFJlbW92ZWQuCisgICAgICAgIChXZWJLaXQ6OnBsYXRmb3JtRG93bmxvYWROZXR3b3Jr
RXJyb3IpOiBEZWxldGVkLgorICAgICAgICAoV2ViS2l0OjpwbGF0Zm9ybURvd25sb2FkRGVzdGlu
YXRpb25FcnJvcik6IERlbGV0ZWQuCisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvRG93bmxvYWRz
L2d0ay9Eb3dubG9hZFNvdXBFcnJvcnNHdGsuY3BwOgorICAgICAgICAoV2ViS2l0OjpwbGF0Zm9y
bURvd25sb2FkTmV0d29ya0Vycm9yKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYktpdDo6cGxhdGZv
cm1Eb3dubG9hZERlc3RpbmF0aW9uRXJyb3IpOiBEZWxldGVkLgorICAgICAgICAqIE5ldHdvcmtQ
cm9jZXNzL0Rvd25sb2Fkcy9zb3VwL0Rvd25sb2FkU291cEVycm9ycy5jcHA6IFJlbmFtZWQgZnJv
bSBTb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9Eb3dubG9hZHMvZ3RrL0Rvd25sb2FkU291
cEVycm9yc0d0ay5jcHAuCisgICAgICAgIChXZWJLaXQ6OnBsYXRmb3JtRG93bmxvYWROZXR3b3Jr
RXJyb3IpOgorICAgICAgICAoV2ViS2l0OjpwbGF0Zm9ybURvd25sb2FkRGVzdGluYXRpb25FcnJv
cik6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvTmV0d29ya0xvYWQuY3BwOgorICAgICAgICAo
V2ViS2l0OjpOZXR3b3JrTG9hZDo6d2FzQmxvY2tlZCk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdv
cmtMb2FkOjpjYW5ub3RTaG93VVJMKToKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9tYWMvUmVt
b3RlTmV0d29ya2luZ0NvbnRleHQubW06CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZU5ldHdvcmtp
bmdDb250ZXh0OjpibG9ja2VkRXJyb3IpOgorICAgICAgICAqIFBsYXRmb3JtRWZsLmNtYWtlOgor
ICAgICAgICAqIFBsYXRmb3JtR1RLLmNtYWtlOgorICAgICAgICAqIFBsYXRmb3JtTWFjLmNtYWtl
OgorICAgICAgICAqIFNoYXJlZC9BUEkvQVBJRXJyb3IuY3BwOgorICAgICAgICAoQVBJOjpFcnJv
cjo6d2ViS2l0RXJyb3JEb21haW4pOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvZWZsL2V3a19l
cnJvci5jcHA6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0RG93bmxvYWQuY3Bw
OgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdEVycm9yLmNwcDoKKyAgICAgICAg
KiBVSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRQcml2YXRlLmNwcDoKKyAgICAgICAgKiBVSVByb2Nl
c3MvTmV0d29yay9DdXN0b21Qcm90b2NvbHMvc291cC9XZWJTb3VwQ3VzdG9tUHJvdG9jb2xSZXF1
ZXN0TWFuYWdlci5jcHA6CisgICAgICAgICogV2ViS2l0Mi54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qOgorICAgICAgICAqIFdlYlByb2Nlc3MvTmV0d29yay9XZWJMb2FkZXJTdHJhdGVneS5jcHA6
CisgICAgICAgICogV2ViUHJvY2Vzcy9OZXR3b3JrL1dlYlJlc291cmNlTG9hZGVyLmNwcDoKKyAg
ICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkVycm9ycy5oOiBSZW1vdmVkLgor
ICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQu
Y3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJGcmFtZUxvYWRlckNsaWVudDo6c2hvdWxkRmFsbEJh
Y2spOgorICAgICAgICAoV2ViS2l0OjpXZWJGcmFtZUxvYWRlckNsaWVudDo6Y2FuY2VsbGVkRXJy
b3IpOiBEZWxldGVkLgorICAgICAgICAoV2ViS2l0OjpXZWJGcmFtZUxvYWRlckNsaWVudDo6Ymxv
Y2tlZEVycm9yKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYktpdDo6V2ViRnJhbWVMb2FkZXJDbGll
bnQ6OmJsb2NrZWRCeUNvbnRlbnRCbG9ja2VyRXJyb3IpOiBEZWxldGVkLgorICAgICAgICAoV2Vi
S2l0OjpXZWJGcmFtZUxvYWRlckNsaWVudDo6Y2Fubm90U2hvd1VSTEVycm9yKTogRGVsZXRlZC4K
KyAgICAgICAgKFdlYktpdDo6V2ViRnJhbWVMb2FkZXJDbGllbnQ6OmludGVycnVwdGVkRm9yUG9s
aWN5Q2hhbmdlRXJyb3IpOiBEZWxldGVkLgorICAgICAgICAoV2ViS2l0OjpXZWJGcmFtZUxvYWRl
ckNsaWVudDo6Y2Fubm90U2hvd01JTUVUeXBlRXJyb3IpOiBEZWxldGVkLgorICAgICAgICAoV2Vi
S2l0OjpXZWJGcmFtZUxvYWRlckNsaWVudDo6ZmlsZURvZXNOb3RFeGlzdEVycm9yKTogRGVsZXRl
ZC4KKyAgICAgICAgKFdlYktpdDo6V2ViRnJhbWVMb2FkZXJDbGllbnQ6OnBsdWdpbldpbGxIYW5k
bGVMb2FkRXJyb3IpOiBEZWxldGVkLgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBv
cnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVT
dXBwb3J0L1dlYlBsYXRmb3JtU3RyYXRlZ2llcy5jcHA6CisgICAgICAgICogV2ViUHJvY2Vzcy9X
ZWJDb3JlU3VwcG9ydC9lZmwvV2ViRXJyb3JzRWZsLmNwcDogUmVtb3ZlZC4KKyAgICAgICAgKFdl
YktpdDo6Y2FuY2VsbGVkRXJyb3IpOiBEZWxldGVkLgorICAgICAgICAoV2ViS2l0OjpibG9ja2Vk
RXJyb3IpOiBEZWxldGVkLgorICAgICAgICAoV2ViS2l0OjpibG9ja2VkQnlDb250ZW50QmxvY2tl
ckVycm9yKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYktpdDo6Y2Fubm90U2hvd1VSTEVycm9yKTog
RGVsZXRlZC4KKyAgICAgICAgKFdlYktpdDo6aW50ZXJydXB0ZWRGb3JQb2xpY3lDaGFuZ2VFcnJv
cik6IERlbGV0ZWQuCisgICAgICAgIChXZWJLaXQ6OmNhbm5vdFNob3dNSU1FVHlwZUVycm9yKTog
RGVsZXRlZC4KKyAgICAgICAgKFdlYktpdDo6ZmlsZURvZXNOb3RFeGlzdEVycm9yKTogRGVsZXRl
ZC4KKyAgICAgICAgKFdlYktpdDo6cGx1Z2luV2lsbEhhbmRsZUxvYWRFcnJvcik6IERlbGV0ZWQu
CisgICAgICAgIChXZWJLaXQ6OmludGVybmFsRXJyb3IpOiBEZWxldGVkLgorICAgICAgICAqIFdl
YlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvZ3RrL1dlYkVycm9yc0d0ay5jcHA6IFJlbW92ZWQuCisg
ICAgICAgIChXZWJLaXQ6OmNhbmNlbGxlZEVycm9yKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYktp
dDo6YmxvY2tlZEVycm9yKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYktpdDo6YmxvY2tlZEJ5Q29u
dGVudEJsb2NrZXJFcnJvcik6IERlbGV0ZWQuCisgICAgICAgIChXZWJLaXQ6OmNhbm5vdFNob3dV
UkxFcnJvcik6IERlbGV0ZWQuCisgICAgICAgIChXZWJLaXQ6OmludGVycnVwdGVkRm9yUG9saWN5
Q2hhbmdlRXJyb3IpOiBEZWxldGVkLgorICAgICAgICAoV2ViS2l0OjpjYW5ub3RTaG93TUlNRVR5
cGVFcnJvcik6IERlbGV0ZWQuCisgICAgICAgIChXZWJLaXQ6OmZpbGVEb2VzTm90RXhpc3RFcnJv
cik6IERlbGV0ZWQuCisgICAgICAgIChXZWJLaXQ6OnBsdWdpbldpbGxIYW5kbGVMb2FkRXJyb3Ip
OiBEZWxldGVkLgorICAgICAgICAoV2ViS2l0OjppbnRlcm5hbEVycm9yKTogRGVsZXRlZC4KKyAg
ICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L21hYy9XZWJFcnJvcnNNYWMubW06Cisg
ICAgICAgIChXZWJLaXQ6OmNyZWF0ZU5TRXJyb3IpOiBEZWxldGVkLgorICAgICAgICAoV2ViS2l0
OjpjYW5jZWxsZWRFcnJvcik6IERlbGV0ZWQuCisgICAgICAgIChXZWJLaXQ6OmZpbGVEb2VzTm90
RXhpc3RFcnJvcik6IERlbGV0ZWQuCisgICAgICAgIChXZWJLaXQ6OmJsb2NrZWRFcnJvcik6IERl
bGV0ZWQuCisgICAgICAgIChXZWJLaXQ6OmJsb2NrZWRCeUNvbnRlbnRCbG9ja2VyRXJyb3IpOiBE
ZWxldGVkLgorICAgICAgICAoV2ViS2l0OjpjYW5ub3RTaG93VVJMRXJyb3IpOiBEZWxldGVkLgor
ICAgICAgICAoV2ViS2l0OjppbnRlcnJ1cHRlZEZvclBvbGljeUNoYW5nZUVycm9yKTogRGVsZXRl
ZC4KKyAgICAgICAgKFdlYktpdDo6Y2Fubm90U2hvd01JTUVUeXBlRXJyb3IpOiBEZWxldGVkLgor
ICAgICAgICAoV2ViS2l0OjpwbHVnaW5XaWxsSGFuZGxlTG9hZEVycm9yKTogRGVsZXRlZC4KKyAg
ICAgICAgKFdlYktpdDo6aW50ZXJuYWxFcnJvcik6IERlbGV0ZWQuCisgICAgICAgICogV2ViUHJv
Y2Vzcy9XZWJDb3JlU3VwcG9ydC9tYWMvV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dC5tbToKKyAg
ICAgICAgKFdlYktpdDo6V2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dDo6YmxvY2tlZEVycm9yKToK
KyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvZ3RrL1dlYlByaW50T3BlcmF0aW9uR3RrLmNw
cDoKKwogMjAxNi0wNi0wMiAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgogCiAgICAg
ICAgIENyYXNoIHVuZGVyIFdlYlByb2Nlc3M6OnJlZ2lzdGVyV2l0aFN0YXRlRHVtcGVyKCkKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0IGIvU291cmNlL1dlYkNvcmUv
Q01ha2VMaXN0cy50eHQKaW5kZXggZDBkMzI0NzEzNTE0YTNmN2FjYmFhOTdjMWIwYWM3ZDU5YTI2
ZDljYy4uZmZhZjVkMGM4NjhhOWUzMTBlZDFmYjM1ZGZmNTIyYTk2ZDBkNDQyZiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKKysrIGIvU291cmNlL1dlYkNvcmUvQ01h
a2VMaXN0cy50eHQKQEAgLTIxMDUsNiArMjEwNSw3IEBAIHNldChXZWJDb3JlX1NPVVJDRVMKICAg
ICBwbGF0Zm9ybS9EaXNwbGF5U2xlZXBEaXNhYmxlci5jcHAKICAgICBwbGF0Zm9ybS9EcmFnRGF0
YS5jcHAKICAgICBwbGF0Zm9ybS9EcmFnSW1hZ2UuY3BwCisgICAgcGxhdGZvcm0vRXJyb3JzLmNw
cAogICAgIHBsYXRmb3JtL0ZpbGVDaG9vc2VyLmNwcAogICAgIHBsYXRmb3JtL0ZpbGVTdHJlYW0u
Y3BwCiAgICAgcGxhdGZvcm0vRmlsZVN5c3RlbS5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL1BsYXRmb3JtRWZsLmNtYWtlIGIvU291cmNlL1dlYkNvcmUvUGxhdGZvcm1FZmwuY21ha2UK
aW5kZXggMzI5YTE2MDc5MTg5ODYxMDNjNjBlMGI2MGQ0MGNlZTBlZjZiYzY4MS4uMjg5NGVkY2Mw
YTRlODRhMzEzNzIzYjhlOWRkNDNjMzdmNTVlNjcwZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvUGxhdGZvcm1FZmwuY21ha2UKKysrIGIvU291cmNlL1dlYkNvcmUvUGxhdGZvcm1FZmwuY21h
a2UKQEAgLTk1LDcgKzk1LDYgQEAgbGlzdChBUFBFTkQgV2ViQ29yZV9TT1VSQ0VTCiAgICAgcGxh
dGZvcm0vZWZsL0VmbEluc3BlY3RvclV0aWxpdGllcy5jcHAKICAgICBwbGF0Zm9ybS9lZmwvRWZs
S2V5Ym9hcmRVdGlsaXRpZXMuY3BwCiAgICAgcGxhdGZvcm0vZWZsL0VmbFNjcmVlblV0aWxpdGll
cy5jcHAKLSAgICBwbGF0Zm9ybS9lZmwvRXJyb3JzRWZsLmNwcAogICAgIHBsYXRmb3JtL2VmbC9F
dmVudExvb3BFZmwuY3BwCiAgICAgcGxhdGZvcm0vZWZsL0ZpbGVTeXN0ZW1FZmwuY3BwCiAgICAg
cGxhdGZvcm0vZWZsL0dhbWVwYWRzRWZsLmNwcApAQCAtMjE4LDYgKzIxNyw3IEBAIGxpc3QoQVBQ
RU5EIFdlYkNvcmVfU09VUkNFUwogCiAgICAgcGxhdGZvcm0vdGV4dC9oeXBoZW4vSHlwaGVuYXRp
b25MaWJIeXBoZW4uY3BwCiAKKyAgICBwbGF0Zm9ybS91bml4L0Vycm9yc1VuaXguY3BwCiAgICAg
cGxhdGZvcm0vdW5peC9Mb2dnaW5nVW5peC5jcHAKIAogICAgIHJlbmRlcmluZy9SZW5kZXJUaGVt
ZUVmbC5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1BsYXRmb3JtR1RLLmNtYWtlIGIv
U291cmNlL1dlYkNvcmUvUGxhdGZvcm1HVEsuY21ha2UKaW5kZXggZDcxY2VlZTU3NTJlMzU4ZWJm
OTI4OGJmNTE0OWQ3ZjhkMTYxNzVlNy4uY2Y0ZWZlODMyOGNiOWQxZDBmMGI4MDZhMDg1MGM3NGIx
NzI4NjdkYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvUGxhdGZvcm1HVEsuY21ha2UKKysr
IGIvU291cmNlL1dlYkNvcmUvUGxhdGZvcm1HVEsuY21ha2UKQEAgLTE0MCw3ICsxNDAsNiBAQCBs
aXN0KEFQUEVORCBXZWJDb3JlX1NPVVJDRVMKICAgICBwbGF0Zm9ybS9ncmFwaGljcy94MTEvUGxh
dGZvcm1EaXNwbGF5WDExLmNwcAogICAgIHBsYXRmb3JtL2dyYXBoaWNzL3gxMS9YVW5pcXVlUmVz
b3VyY2UuY3BwCiAKLSAgICBwbGF0Zm9ybS9ndGsvRXJyb3JzR3RrLmNwcAogICAgIHBsYXRmb3Jt
L2d0ay9NSU1FVHlwZVJlZ2lzdHJ5R3RrLmNwcAogICAgIHBsYXRmb3JtL2d0ay9TY3JvbGxBbmlt
YXRvckd0ay5jcHAKICAgICBwbGF0Zm9ybS9ndGsvVGVtcG9yYXJ5TGlua1N0dWJzLmNwcApAQCAt
MTgzLDYgKzE4Miw3IEBAIGxpc3QoQVBQRU5EIFdlYkNvcmVfU09VUkNFUwogCiAgICAgcGxhdGZv
cm0vdGV4dC9oeXBoZW4vSHlwaGVuYXRpb25MaWJIeXBoZW4uY3BwCiAKKyAgICBwbGF0Zm9ybS91
bml4L0Vycm9yc1VuaXguY3BwCiAgICAgcGxhdGZvcm0vdW5peC9Mb2dnaW5nVW5peC5jcHAKICkK
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvUGxhdGZvcm1NYWMuY21ha2UgYi9Tb3VyY2Uv
V2ViQ29yZS9QbGF0Zm9ybU1hYy5jbWFrZQppbmRleCA5Y2NlN2NjMDliNTU4MWU1YTdlODVlNmJm
ZmI5MzlhMTdjZTNkY2VjLi4zMmY2YWRlZTEzYWQ1ZWNmNDMzZWQxM2U2MWNiOGZjNjZiMWUyYTNh
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9QbGF0Zm9ybU1hYy5jbWFrZQorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9QbGF0Zm9ybU1hYy5jbWFrZQpAQCAtNDY2LDYgKzQ2Niw3IEBAIGxpc3QoQVBQ
RU5EIFdlYkNvcmVfU09VUkNFUwogICAgIHBsYXRmb3JtL21hYy9DdXJzb3JNYWMubW0KICAgICBw
bGF0Zm9ybS9tYWMvRHJhZ0RhdGFNYWMubW0KICAgICBwbGF0Zm9ybS9tYWMvRHJhZ0ltYWdlTWFj
Lm1tCisgICAgcGxhdGZvcm0vbWFjL0Vycm9yc01hYy5tbQogICAgIHBsYXRmb3JtL21hYy9FdmVu
dExvb3BNYWMubW0KICAgICBwbGF0Zm9ybS9tYWMvRmlsZVN5c3RlbU1hYy5tbQogICAgIHBsYXRm
b3JtL21hYy9ISURHYW1lcGFkLmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvUGxhdGZv
cm1XaW4uY21ha2UgYi9Tb3VyY2UvV2ViQ29yZS9QbGF0Zm9ybVdpbi5jbWFrZQppbmRleCAwYzM0
ZTk3ZGJkNjc2NTNjYWUxZGZlZGM1NTlhM2Y4OTNhMDI2OTYxLi5mNTI0ZDM5MWEzY2Q3YjM0NjZh
Yzc5ODkyNzUwMzRkZGRiODU2MzVkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9QbGF0Zm9y
bVdpbi5jbWFrZQorKysgYi9Tb3VyY2UvV2ViQ29yZS9QbGF0Zm9ybVdpbi5jbWFrZQpAQCAtMTE4
LDYgKzExOCw3IEBAIGxpc3QoQVBQRU5EIFdlYkNvcmVfU09VUkNFUwogICAgIHBsYXRmb3JtL3dp
bi9EZWZXbmRQcm9jV2luZG93Q2xhc3MuY3BwCiAgICAgcGxhdGZvcm0vd2luL0RyYWdEYXRhV2lu
LmNwcAogICAgIHBsYXRmb3JtL3dpbi9EcmFnSW1hZ2VXaW4uY3BwCisgICAgcGxhdGZvcm0vd2lu
L0Vycm9yc1dpbi5jcHAKICAgICBwbGF0Zm9ybS93aW4vRXZlbnRMb29wV2luLmNwcAogICAgIHBs
YXRmb3JtL3dpbi9GaWxlU3lzdGVtV2luLmNwcAogICAgIHBsYXRmb3JtL3dpbi9HRElPYmplY3RD
b3VudGVyLmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ov
cHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qCmluZGV4IDA5NTg3MmQzYWM2ZWVhMjY1YWUzMTU5MmIyNzIyOTljNGZmMmUzM2Iu
LjhhN2E2ZGUxOGQ3YTg1MWNiODdjZDIxMzcxYjA2NjEzYWI2ODI1ODYgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTE5NTgsNiAr
MTk1OCw3IEBACiAJCTUxMEQ0QTM2MTAzMTY1RUUwMDQ5RUE1NCAvKiBTb2NrZXRTdHJlYW1IYW5k
bGVCYXNlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDUxMEQ0QTMwMTAzMTY1RUUwMDQ5RUE1NCAvKiBTb2NrZXRTdHJlYW1IYW5kbGVCYXNlLmNwcCAq
LzsgfTsKIAkJNTEwRDRBMzcxMDMxNjVFRTAwNDlFQTU0IC8qIFNvY2tldFN0cmVhbUhhbmRsZUJh
c2UuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxMEQ0
QTMxMTAzMTY1RUUwMDQ5RUE1NCAvKiBTb2NrZXRTdHJlYW1IYW5kbGVCYXNlLmggKi87IH07CiAJ
CTUxMEQ0QTM4MTAzMTY1RUUwMDQ5RUE1NCAvKiBTb2NrZXRTdHJlYW1IYW5kbGVDbGllbnQuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxMEQ0QTMyMTAz
MTY1RUUwMDQ5RUE1NCAvKiBTb2NrZXRTdHJlYW1IYW5kbGVDbGllbnQuaCAqLzsgfTsKKwkJNTEx
M0U2RDYxQ0UwQzdBNDAwMkQ5NTYxIC8qIEVycm9ycy5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MTEzRTZENTFDRTBDNzkwMDAyRDk1NjEgLyogRXJy
b3JzLmNwcCAqLzsgfTsKIAkJNTExRUMxMjcxQzUwQUFDQTAwMzJGOTgzIC8qIElEQlNlcmlhbGl6
YXRpb24uY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
NTExRUMxMjUxQzUwQUE1NzAwMzJGOTgzIC8qIElEQlNlcmlhbGl6YXRpb24uY3BwICovOyB9Owog
CQk1MTFFQzEyODFDNTBBQUNBMDAzMkY5ODMgLyogSURCU2VyaWFsaXphdGlvbi5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTExRUMxMjYxQzUwQUE1NzAw
MzJGOTgzIC8qIElEQlNlcmlhbGl6YXRpb24uaCAqLzsgfTsKIAkJNTExRUMxMkIxQzUwQUJCRjAw
MzJGOTgzIC8qIFNRTGl0ZUlEQlRyYW5zYWN0aW9uLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxMUVDMTI5MUM1MEFCQkEwMDMyRjk4MyAvKiBTUUxp
dGVJREJUcmFuc2FjdGlvbi5jcHAgKi87IH07CkBAIC0yMDQ4LDYgKzIwNDksOCBAQAogCQk1MTYx
MDNCMDFDQURCQTdBMDAxNkI0QzcgLyogSURCVmFsdWUuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTE2MTAzQUQxQ0FEQjlBMzAwMTZCNEM3IC8qIElE
QlZhbHVlLmNwcCAqLzsgfTsKIAkJNTE2MkM3RjQxMUY3N0VGQjAwNjEyRUZFIC8qIFNjaGVtZVJl
Z2lzdHJ5LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDUxNjJDN0YyMTFGNzdFRkEwMDYxMkVGRSAvKiBTY2hlbWVSZWdpc3RyeS5jcHAgKi87IH07CiAJ
CTUxNjJDN0Y1MTFGNzdFRkIwMDYxMkVGRSAvKiBTY2hlbWVSZWdpc3RyeS5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTE2MkM3RjMxMUY3N0VGQjAwNjEy
RUZFIC8qIFNjaGVtZVJlZ2lzdHJ5LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJp
dmF0ZSwgKTsgfTsgfTsKKwkJNTE2NDc2MDQxQ0UwOTA1QTAwOTFGMEE5IC8qIEVycm9ycy5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTE2NDc2MDMxQ0Uw
OTAxQzAwOTFGMEE5IC8qIEVycm9ycy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFB1
YmxpYywgKTsgfTsgfTsKKwkJNTE2NDc2MDYxQ0UwOTBCMTAwOTFGMEE5IC8qIEVycm9yc01hYy5t
bSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxNjQ3NjA1
MUNFMDkwOTEwMDkxRjBBOSAvKiBFcnJvcnNNYWMubW0gKi87IH07CiAJCTUxNjk1Mzk3MTMyOUEz
QzgwMEI5MkQwNCAvKiBJY29uRGF0YWJhc2VCYXNlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxNjk1Mzk1MTMyOUEzQzgwMEI5MkQwNCAvKiBJY29u
RGF0YWJhc2VCYXNlLmNwcCAqLzsgfTsKIAkJNTE2OTUzOTgxMzI5QTNDODAwQjkyRDA0IC8qIElj
b25EYXRhYmFzZUJhc2UuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDUxNjk1Mzk2MTMyOUEzQzgwMEI5MkQwNCAvKiBJY29uRGF0YWJhc2VCYXNlLmggKi87
IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJNTE2QkI3OTQw
Q0U5MUU2ODAwNTEyRjc5IC8qIEpTVHJlZVdhbGtlckN1c3RvbS5jcHAgaW4gU291cmNlcyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MTZCQjc5MjBDRTkxRTY4MDA1MTJGNzkg
LyogSlNUcmVlV2Fsa2VyQ3VzdG9tLmNwcCAqLzsgfTsKQEAgLTk1MjYsNiArOTUyOSw3IEBACiAJ
CTUxMEQ0QTMwMTAzMTY1RUUwMDQ5RUE1NCAvKiBTb2NrZXRTdHJlYW1IYW5kbGVCYXNlLmNwcCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFNvY2tldFN0cmVhbUhhbmRsZUJh
c2UuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1MTBENEEzMTEwMzE2NUVFMDA0
OUVBNTQgLyogU29ja2V0U3RyZWFtSGFuZGxlQmFzZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBTb2NrZXRTdHJlYW1IYW5kbGVCYXNlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCTUxMEQ0QTMyMTAzMTY1RUUwMDQ5RUE1NCAvKiBTb2NrZXRTdHJlYW1IYW5kbGVD
bGllbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU29ja2V0U3RyZWFtSGFu
ZGxlQ2xpZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTUxMTNFNkQ1MUNFMEM3
OTAwMDJEOTU2MSAvKiBFcnJvcnMuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBw
YXRoID0gRXJyb3JzLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTExRUMxMjUx
QzUwQUE1NzAwMzJGOTgzIC8qIElEQlNlcmlhbGl6YXRpb24uY3BwICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAuY3BwOyBwYXRoID0gSURCU2VyaWFsaXphdGlvbi5jcHA7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTUxMUVDMTI2MUM1MEFBNTcwMDMyRjk4MyAvKiBJREJTZXJpYWxpemF0
aW9uLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IElEQlNlcmlhbGl6YXRpb24u
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTExRUMxMjkxQzUwQUJCQTAwMzJGOTgz
IC8qIFNRTGl0ZUlEQlRyYW5zYWN0aW9uLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNw
cDsgcGF0aCA9IFNRTGl0ZUlEQlRyYW5zYWN0aW9uLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKQEAgLTk2NDQsNiArOTY0OCw4IEBACiAJCTUxNjQ1QjUyMUI5Rjg4OUIwMEY3ODlDRSAv
KiBJREJWZXJzaW9uQ2hhbmdlRXZlbnQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3Bw
OyBwYXRoID0gSURCVmVyc2lvbkNoYW5nZUV2ZW50LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJNTE2NDVCNTMxQjlGODg5QjAwRjc4OUNFIC8qIElEQlZlcnNpb25DaGFuZ2VFdmVu
dC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBJREJWZXJzaW9uQ2hhbmdlRXZl
bnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTE2NDVCNTQxQjlGODhFODAwRjc4
OUNFIC8qIElEQkN1cnNvci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGgg
PSBJREJDdXJzb3IuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk1MTY0NzYwMzFD
RTA5MDFDMDA5MUYwQTkgLyogRXJyb3JzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IEVycm9ycy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk1MTY0NzYwNTFDRTA5
MDkxMDA5MUYwQTkgLyogRXJyb3JzTWFjLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2Jq
Y3BwOyBwYXRoID0gRXJyb3JzTWFjLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1
MTY5NTM5NTEzMjlBM0M4MDBCOTJEMDQgLyogSWNvbkRhdGFiYXNlQmFzZS5jcHAgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBJY29uRGF0YWJhc2VCYXNlLmNwcDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTE2OTUzOTYxMzI5QTNDODAwQjkyRDA0IC8qIEljb25E
YXRhYmFzZUJhc2UuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSWNvbkRhdGFi
YXNlQmFzZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1MTZCQjc5MjBDRTkxRTY4
MDA1MTJGNzkgLyogSlNUcmVlV2Fsa2VyQ3VzdG9tLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLmNwcDsgcGF0aCA9IEpTVHJlZVdhbGtlckN1c3RvbS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CkBAIC0xNzg0OSwxMCArMTc4NTUsMTMgQEAKIAkJNjU4MkExNDgwOTk5OUQ2QzAw
QkVFQjZEIC8qIG1hYyAqLyA9IHsKIAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJY2hpbGRyZW4gPSAo
CisJCQkJNjVBNjQwRjAwNTMzQkIxRjAwODVFNzc3IC8qIEJsb2NrRXhjZXB0aW9ucy5oICovLAor
CQkJCTY1RjgwNjk3MDU0RDlGODYwMDhCRjc3NiAvKiBCbG9ja0V4Y2VwdGlvbnMubW0gKi8sCiAJ
CQkJRjU4Nzg0RjAwMkRFMzc1OTAxRUE0MTIyIC8qIEN1cnNvck1hYy5tbSAqLywKIAkJCQlBNzk1
NDYzRDBCNUM0QzgwMDA3QjQzOEYgLyogRHJhZ0RhdGFNYWMubW0gKi8sCiAJCQkJQTdDRkIzRDQw
QjdFRDExODAwNzBDMzJEIC8qIERyYWdJbWFnZU1hYy5tbSAqLywKIAkJCQlFMUJBNjZGMDE3NDJC
RDg2MDBDMjAyNTEgLyogRHluYW1pY0xpbmtlckludGVycG9zaW5nLmggKi8sCisJCQkJNTE2NDc2
MDUxQ0UwOTA5MTAwOTFGMEE5IC8qIEVycm9yc01hYy5tbSAqLywKIAkJCQkxQ0ExOUUwMzBEQzI1
NTk1MDA2NUE5OTQgLyogRXZlbnRMb29wTWFjLm1tICovLAogCQkJCTUxNEIzRjc1MEM3MjIwNTUw
MDA1MzBERiAvKiBGaWxlU3lzdGVtTWFjLm1tICovLAogCQkJCTUxQTlEOUVGMTk1Qjk1MDMwMDFC
MkI1QyAvKiBISURHYW1lcGFkLmNwcCAqLywKQEAgLTIyODcyLDYgKzIyODgxLDggQEAKIAkJQkNG
MUE1QkEwOTc4MzIwOTAwNjFBMTIzIC8qIHBsYXRmb3JtICovID0gewogCQkJaXNhID0gUEJYR3Jv
dXA7CiAJCQljaGlsZHJlbiA9ICgKKwkJCQk1MTEzRTZENTFDRTBDNzkwMDAyRDk1NjEgLyogRXJy
b3JzLmNwcCAqLywKKwkJCQk1MTY0NzYwMzFDRTA5MDFDMDA5MUYwQTkgLyogRXJyb3JzLmggKi8s
CiAJCQkJNDlFOTEyQTQwRUZBQzhFNjAwOUQwQ0FGIC8qIGFuaW1hdGlvbiAqLywKIAkJCQlGRDMx
NjA0MDEyQjAyNkEzMDBDMUEzNTkgLyogYXVkaW8gKi8sCiAJCQkJMUFFNDJGNjcwQUE0QjhDQjAw
Qzg2MTJEIC8qIGNmICovLApAQCAtMjU3OTcsNiArMjU4MDgsNyBAQAogCQkJCTg1RTcxMUJBMEFD
NUQ1MzUwMDUzMjcwRiAvKiBET01IVE1MTWVudUVsZW1lbnRJbnRlcm5hbC5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJODU5QTlDNEQwQUE1RTNCRDAwQjY5NEIyIC8qIERPTUhUTUxNZXRhRWxlbWVudC5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJODVFNzExQkIwQUM1RDUzNTAwNTMyNzBGIC8qIERPTUhUTUxN
ZXRhRWxlbWVudEludGVybmFsLmggaW4gSGVhZGVycyAqLywKKwkJCQk1MTY0NzYwNDFDRTA5MDVB
MDA5MUYwQTkgLyogRXJyb3JzLmggaW4gSGVhZGVycyAqLywKIAkJCQk4NUVDQkVGNTBBQTc2MjY5
MDA1NDRGMEIgLyogRE9NSFRNTE1vZEVsZW1lbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCTg1RTcx
MUJDMEFDNUQ1MzUwMDUzMjcwRiAvKiBET01IVE1MTW9kRWxlbWVudEludGVybmFsLmggaW4gSGVh
ZGVycyAqLywKIAkJCQk4NURGODEyQjBBQTc3ODcyMDA0ODZBRDcgLyogRE9NSFRNTE9iamVjdEVs
ZW1lbnQuaCBpbiBIZWFkZXJzICovLApAQCAtMjk3MTksNiArMjk3MzEsNyBAQAogCQkJCUY1MkFE
NUU0MTUzNDI0NUYwMDU5RkJFNiAvKiBFbXB0eUNsaWVudHMuY3BwIGluIFNvdXJjZXMgKi8sCiAJ
CQkJQThFQTdFQzEwQTE5NDVEMDAwQThFRjVGIC8qIEVudGl0eVJlZmVyZW5jZS5jcHAgaW4gU291
cmNlcyAqLywKIAkJCQlGRDMxNjA5MjEyQjAyNkY3MDBDMUEzNTkgLyogRXF1YWxQb3dlclBhbm5l
ci5jcHAgaW4gU291cmNlcyAqLywKKwkJCQk1MTY0NzYwNjFDRTA5MEIxMDA5MUYwQTkgLyogRXJy
b3JzTWFjLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJMkVDRjdBRTExMDE2MkI1ODAwNDI3REU3IC8q
IEVycm9yRXZlbnQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJODUwMzFCNDEwQTQ0RUZDNzAwRjk5
MkUwIC8qIEV2ZW50LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTQxMzhEMzM2MTI0NDA1NDgwMDMy
M0QzMyAvKiBFdmVudENvbnRleHQuY3BwIGluIFNvdXJjZXMgKi8sCkBAIC0zMTY2MCw2ICszMTY3
Myw3IEBACiAJCQkJMUZDNDBGQjkxNjU1Q0NCNjAwNDBGMjlFIC8qIFN1YmltYWdlQ2FjaGVXaXRo
VGltZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJRjU1QjNERDMxMjUxRjEyRDAwM0VGMjY5IC8q
IFN1Ym1pdElucHV0VHlwZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk5M0UyMjdFNDBBRjU4OUFE
MDBENDgzMjQgLyogU3VicmVzb3VyY2VMb2FkZXIuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJNTEx
M0U2RDYxQ0UwQzdBNDAwMkQ5NTYxIC8qIEVycm9ycy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk3
RTM3RUYyRTEzMzkyMDg4MDBCMjkyNTAgLyogU3VicmVzb3VyY2VMb2FkZXJDRi5jcHAgaW4gU291
cmNlcyAqLywKIAkJCQk3RThGQURDNDE5OUE5NUIxMDA3MTQ5NjggLyogU3VicmVzb3VyY2VMb2Fk
ZXJDb2NvYS5tbSBpbiBTb3VyY2VzICovLAogCQkJCUUxRkY4RjVGMTgwNzQ0MjEwMDEzMjY3NCAv
KiBTdWJ0bGVDcnlwdG8uY3BwIGluIFNvdXJjZXMgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9sb2FkZXIvRG9jdW1lbnRMb2FkZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0Rv
Y3VtZW50TG9hZGVyLmNwcAppbmRleCBiM2VkMThiZjQ2OTQzMzhjOWE0MjUzZTQ2ZjBiYzg4MTE3
NTQ4NWM5Li5jMTkzZTU0MDE1M2IyZDlkMWRhM2UyMzIzOTQ0OWUyNmUyMDUzZjYzIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRG9jdW1lbnRMb2FkZXIuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2xvYWRlci9Eb2N1bWVudExvYWRlci5jcHAKQEAgLTQxLDYgKzQxLDcgQEAKICNp
bmNsdWRlICJEb2N1bWVudC5oIgogI2luY2x1ZGUgIkRvY3VtZW50UGFyc2VyLmgiCiAjaW5jbHVk
ZSAiRG9jdW1lbnRXcml0ZXIuaCIKKyNpbmNsdWRlICJFcnJvcnMuaCIKICNpbmNsdWRlICJFdmVu
dC5oIgogI2luY2x1ZGUgIkV4dGVuc2lvblN0eWxlU2hlZXRzLmgiCiAjaW5jbHVkZSAiRm9ybVN0
YXRlLmgiCkBAIC03NTcsNyArNzU4LDcgQEAgdm9pZCBEb2N1bWVudExvYWRlcjo6Y29udGludWVB
ZnRlckNvbnRlbnRQb2xpY3koUG9saWN5QWN0aW9uIHBvbGljeSkKICAgICBjYXNlIFBvbGljeURv
d25sb2FkOiB7CiAgICAgICAgIC8vIG1fbWFpblJlc291cmNlIGNhbiBiZSBudWxsLCBlLmcuIHdo
ZW4gbG9hZGluZyBhIHN1YnN0aXR1dGUgcmVzb3VyY2UgZnJvbSBhcHBsaWNhdGlvbiBjYWNoZS4K
ICAgICAgICAgaWYgKCFtX21haW5SZXNvdXJjZSkgewotICAgICAgICAgICAgbWFpblJlY2VpdmVk
RXJyb3IoZnJhbWVMb2FkZXIoKS0+Y2xpZW50KCkuY2Fubm90U2hvd1VSTEVycm9yKG1fcmVxdWVz
dCkpOworICAgICAgICAgICAgbWFpblJlY2VpdmVkRXJyb3IoY2Fubm90U2hvd1VSTEVycm9yKG1f
cmVxdWVzdCkpOwogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9CiAKQEAgLTgzNSw3ICs4
MzYsNyBAQCB2b2lkIERvY3VtZW50TG9hZGVyOjpjb21taXRMb2FkKGNvbnN0IGNoYXIqIGRhdGEs
IGludCBsZW5ndGgpCiAKIFJlc291cmNlRXJyb3IgRG9jdW1lbnRMb2FkZXI6OmludGVycnVwdGVk
Rm9yUG9saWN5Q2hhbmdlRXJyb3IoKSBjb25zdAogewotICAgIHJldHVybiBmcmFtZUxvYWRlcigp
LT5jbGllbnQoKS5pbnRlcnJ1cHRlZEZvclBvbGljeUNoYW5nZUVycm9yKHJlcXVlc3QoKSk7Cisg
ICAgcmV0dXJuIFdlYkNvcmU6OmludGVycnVwdGVkRm9yUG9saWN5Q2hhbmdlRXJyb3IocmVxdWVz
dCgpKTsKIH0KIAogdm9pZCBEb2N1bWVudExvYWRlcjo6c3RvcExvYWRpbmdGb3JQb2xpY3lDaGFu
Z2UoKQpAQCAtMTUwNCwxNCArMTUwNSwxNCBAQCB2b2lkIERvY3VtZW50TG9hZGVyOjpzdGFydExv
YWRpbmdNYWluUmVzb3VyY2UoKQogCiAjaWYgRU5BQkxFKENPTlRFTlRfRVhURU5TSU9OUykKICAg
ICBpZiAobV9tYWluUmVzb3VyY2UgJiYgbV9tYWluUmVzb3VyY2UtPmVycm9yT2NjdXJyZWQoKSAm
JiBtX2ZyYW1lLT5wYWdlKCkgJiYgbV9tYWluUmVzb3VyY2UtPnJlc291cmNlRXJyb3IoKS5kb21h
aW4oKSA9PSBDb250ZW50RXh0ZW5zaW9uczo6V2ViS2l0Q29udGVudEJsb2NrZXJEb21haW4pIHsK
LSAgICAgICAgY2FuY2VsTWFpblJlc291cmNlTG9hZChmcmFtZUxvYWRlcigpLT5ibG9ja2VkQnlD
b250ZW50QmxvY2tlckVycm9yKG1fcmVxdWVzdCkpOworICAgICAgICBjYW5jZWxNYWluUmVzb3Vy
Y2VMb2FkKFdlYkNvcmU6OmJsb2NrZWRCeUNvbnRlbnRCbG9ja2VyRXJyb3IobV9yZXF1ZXN0KSk7
CiAgICAgICAgIHJldHVybjsKICAgICB9CiAjZW5kaWYKIAogICAgIGlmICghbV9tYWluUmVzb3Vy
Y2UpIHsKICAgICAgICAgaWYgKCFtX3JlcXVlc3QudXJsKCkuaXNWYWxpZCgpKSB7Ci0gICAgICAg
ICAgICBjYW5jZWxNYWluUmVzb3VyY2VMb2FkKGZyYW1lTG9hZGVyKCktPmNsaWVudCgpLmNhbm5v
dFNob3dVUkxFcnJvcihtX3JlcXVlc3QpKTsKKyAgICAgICAgICAgIGNhbmNlbE1haW5SZXNvdXJj
ZUxvYWQoY2Fubm90U2hvd1VSTEVycm9yKG1fcmVxdWVzdCkpOwogICAgICAgICAgICAgcmV0dXJu
OwogICAgICAgICB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9FbXB0eUNs
aWVudHMuaCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9FbXB0eUNsaWVudHMuaAppbmRleCA5ODRm
NDhlYjJjMTJmMGJkNWY4Y2U1M2E4YWMxMDA5OTA5NDY1ODgyLi5kN2E2Zjg5NDk0NjA5NGU4MmIx
MTc5MmM2YzYxNTY3ZjczMGMzNGVlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIv
RW1wdHlDbGllbnRzLmgKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0VtcHR5Q2xpZW50cy5o
CkBAIC0zMzAsMTYgKzMzMCw2IEBAIHB1YmxpYzoKICAgICB2b2lkIGNvbW1pdHRlZExvYWQoRG9j
dW1lbnRMb2FkZXIqLCBjb25zdCBjaGFyKiwgaW50KSBvdmVycmlkZSB7IH0KICAgICB2b2lkIGZp
bmlzaGVkTG9hZGluZyhEb2N1bWVudExvYWRlciopIG92ZXJyaWRlIHsgfQogCi0gICAgUmVzb3Vy
Y2VFcnJvciBjYW5jZWxsZWRFcnJvcihjb25zdCBSZXNvdXJjZVJlcXVlc3QmKSBvdmVycmlkZSB7
IFJlc291cmNlRXJyb3IgZXJyb3IoIiIsIDAsIFVSTCgpLCAiIik7IGVycm9yLnNldElzQ2FuY2Vs
bGF0aW9uKHRydWUpOyByZXR1cm4gZXJyb3I7IH0KLSAgICBSZXNvdXJjZUVycm9yIGJsb2NrZWRF
cnJvcihjb25zdCBSZXNvdXJjZVJlcXVlc3QmKSBvdmVycmlkZSB7IHJldHVybiBSZXNvdXJjZUVy
cm9yKCIiLCAwLCBVUkwoKSwgIiIpOyB9Ci0gICAgUmVzb3VyY2VFcnJvciBibG9ja2VkQnlDb250
ZW50QmxvY2tlckVycm9yKGNvbnN0IFJlc291cmNlUmVxdWVzdCYpIG92ZXJyaWRlIHsgcmV0dXJu
IFJlc291cmNlRXJyb3IoIiIsIDAsIFVSTCgpLCAiIik7IH0KLSAgICBSZXNvdXJjZUVycm9yIGNh
bm5vdFNob3dVUkxFcnJvcihjb25zdCBSZXNvdXJjZVJlcXVlc3QmKSBvdmVycmlkZSB7IHJldHVy
biBSZXNvdXJjZUVycm9yKCIiLCAwLCBVUkwoKSwgIiIpOyB9Ci0gICAgUmVzb3VyY2VFcnJvciBp
bnRlcnJ1cHRlZEZvclBvbGljeUNoYW5nZUVycm9yKGNvbnN0IFJlc291cmNlUmVxdWVzdCYpIG92
ZXJyaWRlIHsgcmV0dXJuIFJlc291cmNlRXJyb3IoIiIsIDAsIFVSTCgpLCAiIik7IH0KLQotICAg
IFJlc291cmNlRXJyb3IgY2Fubm90U2hvd01JTUVUeXBlRXJyb3IoY29uc3QgUmVzb3VyY2VSZXNw
b25zZSYpIG92ZXJyaWRlIHsgcmV0dXJuIFJlc291cmNlRXJyb3IoIiIsIDAsIFVSTCgpLCAiIik7
IH0KLSAgICBSZXNvdXJjZUVycm9yIGZpbGVEb2VzTm90RXhpc3RFcnJvcihjb25zdCBSZXNvdXJj
ZVJlc3BvbnNlJikgb3ZlcnJpZGUgeyByZXR1cm4gUmVzb3VyY2VFcnJvcigiIiwgMCwgVVJMKCks
ICIiKTsgfQotICAgIFJlc291cmNlRXJyb3IgcGx1Z2luV2lsbEhhbmRsZUxvYWRFcnJvcihjb25z
dCBSZXNvdXJjZVJlc3BvbnNlJikgb3ZlcnJpZGUgeyByZXR1cm4gUmVzb3VyY2VFcnJvcigiIiwg
MCwgVVJMKCksICIiKTsgfQotCiAgICAgYm9vbCBzaG91bGRGYWxsQmFjayhjb25zdCBSZXNvdXJj
ZUVycm9yJikgb3ZlcnJpZGUgeyByZXR1cm4gZmFsc2U7IH0KIAogICAgIGJvb2wgY2FuSGFuZGxl
UmVxdWVzdChjb25zdCBSZXNvdXJjZVJlcXVlc3QmKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBm
YWxzZTsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlci5jcHAKaW5kZXggMzRhNDQxYjRk
YzUzODU4Y2I5Nzg3YWZjZmJhMTU5YWRhYmU5NTc2Yy4uMjFjMDc1MGZjYzUxZWIwM2ZhZGQ5OGFk
MDhmMGYyZjIyNzhjOGU1YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1l
TG9hZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIuY3BwCkBA
IC01NSw2ICs1NSw3IEBACiAjaW5jbHVkZSAiRWRpdG9yLmgiCiAjaW5jbHVkZSAiRWRpdG9yQ2xp
ZW50LmgiCiAjaW5jbHVkZSAiRWxlbWVudC5oIgorI2luY2x1ZGUgIkVycm9ycy5oIgogI2luY2x1
ZGUgIkV2ZW50LmgiCiAjaW5jbHVkZSAiRXZlbnRIYW5kbGVyLmgiCiAjaW5jbHVkZSAiRXZlbnRO
YW1lcy5oIgpAQCAtMzQwNSwxOSArMzQwNiwxNCBAQCB2b2lkIEZyYW1lTG9hZGVyOjpyZXRyeUFm
dGVyRmFpbGVkQ2FjaGVPbmx5TWFpblJlc291cmNlTG9hZCgpCiAKIFJlc291cmNlRXJyb3IgRnJh
bWVMb2FkZXI6OmNhbmNlbGxlZEVycm9yKGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCkg
Y29uc3QKIHsKLSAgICBSZXNvdXJjZUVycm9yIGVycm9yID0gbV9jbGllbnQuY2FuY2VsbGVkRXJy
b3IocmVxdWVzdCk7CisgICAgUmVzb3VyY2VFcnJvciBlcnJvciA9IFdlYkNvcmU6OmNhbmNlbGxl
ZEVycm9yKHJlcXVlc3QpOwogICAgIGVycm9yLnNldElzQ2FuY2VsbGF0aW9uKHRydWUpOwogICAg
IHJldHVybiBlcnJvcjsKIH0KIAotUmVzb3VyY2VFcnJvciBGcmFtZUxvYWRlcjo6YmxvY2tlZEJ5
Q29udGVudEJsb2NrZXJFcnJvcihjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QpIGNvbnN0
Ci17Ci0gICAgcmV0dXJuIG1fY2xpZW50LmJsb2NrZWRCeUNvbnRlbnRCbG9ja2VyRXJyb3IocmVx
dWVzdCk7Ci19Ci0KIFJlc291cmNlRXJyb3IgRnJhbWVMb2FkZXI6OmJsb2NrZWRFcnJvcihjb25z
dCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QpIGNvbnN0CiB7Ci0gICAgUmVzb3VyY2VFcnJvciBl
cnJvciA9IG1fY2xpZW50LmJsb2NrZWRFcnJvcihyZXF1ZXN0KTsKKyAgICBSZXNvdXJjZUVycm9y
IGVycm9yID0gV2ViQ29yZTo6YmxvY2tlZEVycm9yKHJlcXVlc3QpOwogICAgIGVycm9yLnNldElz
Q2FuY2VsbGF0aW9uKHRydWUpOwogICAgIHJldHVybiBlcnJvcjsKIH0KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlci5oIGIvU291cmNlL1dlYkNvcmUvbG9hZGVy
L0ZyYW1lTG9hZGVyLmgKaW5kZXggZTdmMTUyMGY1N2I1NzgwZTU4OWQxMWYxMmM5YWVkOTlkNjI3
YzM4Zi4uNDBjMjUwMDllZTk4ZjBjNmMzNzVjZWE1ZDY3YTgzMjQ5MzNmYWIwYyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmgKQEAgLTE3MSw3ICsxNzEsNiBAQCBwdWJsaWM6CiAgICAg
dm9pZCBoYW5kbGVGYWxsYmFja0NvbnRlbnQoKTsKIAogICAgIFdFQkNPUkVfRVhQT1JUIFJlc291
cmNlRXJyb3IgY2FuY2VsbGVkRXJyb3IoY29uc3QgUmVzb3VyY2VSZXF1ZXN0JikgY29uc3Q7Ci0g
ICAgV0VCQ09SRV9FWFBPUlQgUmVzb3VyY2VFcnJvciBibG9ja2VkQnlDb250ZW50QmxvY2tlckVy
cm9yKGNvbnN0IFJlc291cmNlUmVxdWVzdCYpIGNvbnN0OwogICAgIFJlc291cmNlRXJyb3IgYmxv
Y2tlZEVycm9yKGNvbnN0IFJlc291cmNlUmVxdWVzdCYpIGNvbnN0OwogCiAgICAgYm9vbCBpc0hv
c3RlZEJ5T2JqZWN0RWxlbWVudCgpIGNvbnN0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
bG9hZGVyL0ZyYW1lTG9hZGVyQ2xpZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVM
b2FkZXJDbGllbnQuaAppbmRleCA1MDczYzlhODg4ODJkMzRmZjIzN2UyMDYwYTRlMzc4NGNjZGRj
NGI5Li4yMzAxNzQxMzY2ODQ1MTFlNmM5OWFiYjAxNTNlMjE3OWJhOTY2NTI4IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXJDbGllbnQuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXJDbGllbnQuaApAQCAtMjI3LDE2ICsyMjcsNiBAQCBu
YW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIHZpcnR1YWwgdm9pZCBkaWRSdW5JbnNlY3VyZUNv
bnRlbnQoU2VjdXJpdHlPcmlnaW4qLCBjb25zdCBVUkwmKSA9IDA7CiAgICAgICAgIHZpcnR1YWwg
dm9pZCBkaWREZXRlY3RYU1MoY29uc3QgVVJMJiwgYm9vbCBkaWRCbG9ja0VudGlyZVBhZ2UpID0g
MDsKIAotICAgICAgICB2aXJ0dWFsIFJlc291cmNlRXJyb3IgY2FuY2VsbGVkRXJyb3IoY29uc3Qg
UmVzb3VyY2VSZXF1ZXN0JikgPSAwOwotICAgICAgICB2aXJ0dWFsIFJlc291cmNlRXJyb3IgYmxv
Y2tlZEVycm9yKGNvbnN0IFJlc291cmNlUmVxdWVzdCYpID0gMDsKLSAgICAgICAgdmlydHVhbCBS
ZXNvdXJjZUVycm9yIGJsb2NrZWRCeUNvbnRlbnRCbG9ja2VyRXJyb3IoY29uc3QgUmVzb3VyY2VS
ZXF1ZXN0JikgPSAwOwotICAgICAgICB2aXJ0dWFsIFJlc291cmNlRXJyb3IgY2Fubm90U2hvd1VS
TEVycm9yKGNvbnN0IFJlc291cmNlUmVxdWVzdCYpID0gMDsKLSAgICAgICAgdmlydHVhbCBSZXNv
dXJjZUVycm9yIGludGVycnVwdGVkRm9yUG9saWN5Q2hhbmdlRXJyb3IoY29uc3QgUmVzb3VyY2VS
ZXF1ZXN0JikgPSAwOwotCi0gICAgICAgIHZpcnR1YWwgUmVzb3VyY2VFcnJvciBjYW5ub3RTaG93
TUlNRVR5cGVFcnJvcihjb25zdCBSZXNvdXJjZVJlc3BvbnNlJikgPSAwOwotICAgICAgICB2aXJ0
dWFsIFJlc291cmNlRXJyb3IgZmlsZURvZXNOb3RFeGlzdEVycm9yKGNvbnN0IFJlc291cmNlUmVz
cG9uc2UmKSA9IDA7Ci0gICAgICAgIHZpcnR1YWwgUmVzb3VyY2VFcnJvciBwbHVnaW5XaWxsSGFu
ZGxlTG9hZEVycm9yKGNvbnN0IFJlc291cmNlUmVzcG9uc2UmKSA9IDA7Ci0KICAgICAgICAgdmly
dHVhbCBib29sIHNob3VsZEZhbGxCYWNrKGNvbnN0IFJlc291cmNlRXJyb3ImKSA9IDA7CiAKICAg
ICAgICAgdmlydHVhbCBib29sIGNhbkhhbmRsZVJlcXVlc3QoY29uc3QgUmVzb3VyY2VSZXF1ZXN0
JikgY29uc3QgPSAwOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL05ldHNjYXBl
UGx1Z0luU3RyZWFtTG9hZGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9OZXRzY2FwZVBs
dWdJblN0cmVhbUxvYWRlci5jcHAKaW5kZXggMTNiOTc1ZDQ2OGViMzJiMTRjZTIxZTU1YTkzYTJh
NWQ2MThhNTNkYy4uYmI4MjlmNjIxMzlhZmIzY2ZlNTg2YzIwYTU1MmY5ZTdmZmZjZWZiZCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL05ldHNjYXBlUGx1Z0luU3RyZWFtTG9hZGVy
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvTmV0c2NhcGVQbHVnSW5TdHJlYW1Mb2Fk
ZXIuY3BwCkBAIC0zMCw2ICszMCw3IEBACiAjaW5jbHVkZSAiTmV0c2NhcGVQbHVnSW5TdHJlYW1M
b2FkZXIuaCIKIAogI2luY2x1ZGUgIkRvY3VtZW50TG9hZGVyLmgiCisjaW5jbHVkZSAiRXJyb3Jz
LmgiCiAjaW5jbHVkZSAiRnJhbWVMb2FkZXIuaCIKICNpbmNsdWRlICJGcmFtZUxvYWRlckNsaWVu
dC5oIgogI2luY2x1ZGUgPHd0Zi9SZWYuaD4KQEAgLTEyNCw3ICsxMjUsNyBAQCB2b2lkIE5ldHNj
YXBlUGx1Z0luU3RyZWFtTG9hZGVyOjpkaWRSZWNlaXZlUmVzcG9uc2UoY29uc3QgUmVzb3VyY2VS
ZXNwb25zZSYgcmVzcAogCiAgICAgLy8gU3RhdHVzIGNvZGUgY2FuIGJlIG51bGwgd2hlbiBzZXJ2
aW5nIGZyb20gYSBXZWIgYXJjaGl2ZS4KICAgICBpZiAocmVzcG9uc2UuaHR0cFN0YXR1c0NvZGUo
KSAmJiAocmVzcG9uc2UuaHR0cFN0YXR1c0NvZGUoKSA8IDEwMCB8fCByZXNwb25zZS5odHRwU3Rh
dHVzQ29kZSgpID49IDQwMCkpCi0gICAgICAgIGNhbmNlbChmcmFtZUxvYWRlcigpLT5jbGllbnQo
KS5maWxlRG9lc05vdEV4aXN0RXJyb3IocmVzcG9uc2UpKTsKKyAgICAgICAgY2FuY2VsKGZpbGVE
b2VzTm90RXhpc3RFcnJvcihyZXNwb25zZSkpOwogfQogCiB2b2lkIE5ldHNjYXBlUGx1Z0luU3Ry
ZWFtTG9hZGVyOjpkaWRSZWNlaXZlRGF0YShjb25zdCBjaGFyKiBkYXRhLCB1bnNpZ25lZCBsZW5n
dGgsIGxvbmcgbG9uZyBlbmNvZGVkRGF0YUxlbmd0aCwgRGF0YVBheWxvYWRUeXBlIGRhdGFQYXls
b2FkVHlwZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Qb2xpY3lDaGVja2Vy
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Qb2xpY3lDaGVja2VyLmNwcAppbmRleCAwYWMy
ODdjZjNlOWYwMGQ1NzkzYzUzMmE2MDA4M2FjMzk1MDQyZjgyLi43YmE5OTFjNmUyYTQxY2E0OWI0
MmUwODIwNTlhMzFiZTNlNjQwNjRmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIv
UG9saWN5Q2hlY2tlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL1BvbGljeUNoZWNr
ZXIuY3BwCkBAIC0zNCw2ICszNCw3IEBACiAjaW5jbHVkZSAiQ29udGVudFNlY3VyaXR5UG9saWN5
LmgiCiAjaW5jbHVkZSAiRE9NV2luZG93LmgiCiAjaW5jbHVkZSAiRG9jdW1lbnRMb2FkZXIuaCIK
KyNpbmNsdWRlICJFcnJvcnMuaCIKICNpbmNsdWRlICJGb3JtU3RhdGUuaCIKICNpbmNsdWRlICJG
cmFtZS5oIgogI2luY2x1ZGUgIkZyYW1lTG9hZGVyLmgiCkBAIC0xNzgsNyArMTc5LDcgQEAgdm9p
ZCBQb2xpY3lDaGVja2VyOjpzdG9wQ2hlY2soKQogCiB2b2lkIFBvbGljeUNoZWNrZXI6OmNhbm5v
dFNob3dNSU1FVHlwZShjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiByZXNwb25zZSkKIHsKLSAgICBo
YW5kbGVVbmltcGxlbWVudGFibGVQb2xpY3kobV9mcmFtZS5sb2FkZXIoKS5jbGllbnQoKS5jYW5u
b3RTaG93TUlNRVR5cGVFcnJvcihyZXNwb25zZSkpOworICAgIGhhbmRsZVVuaW1wbGVtZW50YWJs
ZVBvbGljeShjYW5ub3RTaG93TUlNRVR5cGVFcnJvcihyZXNwb25zZSkpOwogfQogCiB2b2lkIFBv
bGljeUNoZWNrZXI6OmNvbnRpbnVlTG9hZEFmdGVyV2lsbFN1Ym1pdEZvcm0oUG9saWN5QWN0aW9u
KQpAQCAtMjEwLDcgKzIxMSw3IEBAIHZvaWQgUG9saWN5Q2hlY2tlcjo6Y29udGludWVBZnRlck5h
dmlnYXRpb25Qb2xpY3koUG9saWN5QWN0aW9uIHBvbGljeSkKICAgICAgICAgICAgIFJlc291cmNl
UmVxdWVzdCByZXF1ZXN0KGNhbGxiYWNrLnJlcXVlc3QoKSk7CiAKICAgICAgICAgICAgIGlmICgh
bV9mcmFtZS5sb2FkZXIoKS5jbGllbnQoKS5jYW5IYW5kbGVSZXF1ZXN0KHJlcXVlc3QpKSB7Ci0g
ICAgICAgICAgICAgICAgaGFuZGxlVW5pbXBsZW1lbnRhYmxlUG9saWN5KG1fZnJhbWUubG9hZGVy
KCkuY2xpZW50KCkuY2Fubm90U2hvd1VSTEVycm9yKGNhbGxiYWNrLnJlcXVlc3QoKSkpOworICAg
ICAgICAgICAgICAgIGhhbmRsZVVuaW1wbGVtZW50YWJsZVBvbGljeShjYW5ub3RTaG93VVJMRXJy
b3IoY2FsbGJhY2sucmVxdWVzdCgpKSk7CiAgICAgICAgICAgICAgICAgY2FsbGJhY2suY2xlYXJS
ZXF1ZXN0KCk7CiAgICAgICAgICAgICAgICAgc2hvdWxkQ29udGludWUgPSBmYWxzZTsKICAgICAg
ICAgICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9SZXNvdXJjZUxvYWRl
ci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvUmVzb3VyY2VMb2FkZXIuY3BwCmluZGV4IGQ0
ZmU0MDNmOGFmNDQ1MmRmMzMwNzE2OWI5YzgyMmViMTg1OWVhMDkuLmNkOTYyNGE2Y2MxNDg0ZWFl
MGE3NWZlOTNlMzU1MDRhOWUyNGQ5ZWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRl
ci9SZXNvdXJjZUxvYWRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL1Jlc291cmNl
TG9hZGVyLmNwcApAQCAtMzYsNiArMzYsNyBAQAogI2luY2x1ZGUgIkRpYWdub3N0aWNMb2dnaW5n
Q2xpZW50LmgiCiAjaW5jbHVkZSAiRGlhZ25vc3RpY0xvZ2dpbmdLZXlzLmgiCiAjaW5jbHVkZSAi
RG9jdW1lbnRMb2FkZXIuaCIKKyNpbmNsdWRlICJFcnJvcnMuaCIKICNpbmNsdWRlICJGcmFtZS5o
IgogI2luY2x1ZGUgIkZyYW1lTG9hZGVyLmgiCiAjaW5jbHVkZSAiRnJhbWVMb2FkZXJDbGllbnQu
aCIKQEAgLTU5NCwxNyArNTk1LDE3IEBAIFJlc291cmNlRXJyb3IgUmVzb3VyY2VMb2FkZXI6OmNh
bmNlbGxlZEVycm9yKCkKIAogUmVzb3VyY2VFcnJvciBSZXNvdXJjZUxvYWRlcjo6YmxvY2tlZEVy
cm9yKCkKIHsKLSAgICByZXR1cm4gZnJhbWVMb2FkZXIoKS0+Y2xpZW50KCkuYmxvY2tlZEVycm9y
KG1fcmVxdWVzdCk7CisgICAgcmV0dXJuIFdlYkNvcmU6OmJsb2NrZWRFcnJvcihtX3JlcXVlc3Qp
OwogfQogCiBSZXNvdXJjZUVycm9yIFJlc291cmNlTG9hZGVyOjpibG9ja2VkQnlDb250ZW50Qmxv
Y2tlckVycm9yKCkKIHsKLSAgICByZXR1cm4gZnJhbWVMb2FkZXIoKS0+Y2xpZW50KCkuYmxvY2tl
ZEJ5Q29udGVudEJsb2NrZXJFcnJvcihtX3JlcXVlc3QpOworICAgIHJldHVybiBXZWJDb3JlOjpi
bG9ja2VkQnlDb250ZW50QmxvY2tlckVycm9yKG1fcmVxdWVzdCk7CiB9CiAKIFJlc291cmNlRXJy
b3IgUmVzb3VyY2VMb2FkZXI6OmNhbm5vdFNob3dVUkxFcnJvcigpCiB7Ci0gICAgcmV0dXJuIGZy
YW1lTG9hZGVyKCktPmNsaWVudCgpLmNhbm5vdFNob3dVUkxFcnJvcihtX3JlcXVlc3QpOworICAg
IHJldHVybiBXZWJDb3JlOjpjYW5ub3RTaG93VVJMRXJyb3IobV9yZXF1ZXN0KTsKIH0KIAogdm9p
ZCBSZXNvdXJjZUxvYWRlcjo6d2lsbFNlbmRSZXF1ZXN0KFJlc291cmNlSGFuZGxlKiwgUmVzb3Vy
Y2VSZXF1ZXN0JiByZXF1ZXN0LCBjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiByZWRpcmVjdFJlc3Bv
bnNlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2FwcGNhY2hlL0FwcGxpY2F0
aW9uQ2FjaGVIb3N0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9hcHBjYWNoZS9BcHBsaWNh
dGlvbkNhY2hlSG9zdC5jcHAKaW5kZXggNGUxMzQ4NTQwZTU0NWIxYWMwZDBhNzRiMGY1YzM2NmJh
ODExOWUxYS4uNjgzZGIzNzI1ZTc0OTMzODA5YmQ2MzczMzBkMTRjOTk5NGZlNzk1YyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2FwcGNhY2hlL0FwcGxpY2F0aW9uQ2FjaGVIb3N0
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvYXBwY2FjaGUvQXBwbGljYXRpb25DYWNo
ZUhvc3QuY3BwCkBAIC0zMSw2ICszMSw3IEBACiAjaW5jbHVkZSAiQXBwbGljYXRpb25DYWNoZVJl
c291cmNlLmgiCiAjaW5jbHVkZSAiRG9jdW1lbnRMb2FkZXIuaCIKICNpbmNsdWRlICJET01BcHBs
aWNhdGlvbkNhY2hlLmgiCisjaW5jbHVkZSAiRXJyb3JzLmgiCiAjaW5jbHVkZSAiRmlsZVN5c3Rl
bS5oIgogI2luY2x1ZGUgIkZyYW1lLmgiCiAjaW5jbHVkZSAiRnJhbWVMb2FkZXIuaCIKQEAgLTI0
Miw3ICsyNDMsNyBAQCBib29sIEFwcGxpY2F0aW9uQ2FjaGVIb3N0OjptYXliZUxvYWRTeW5jaHJv
bm91c2x5KFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwgUmVzbwogICAgICAgICAgICAgICAgIGRh
dGEgPSBTaGFyZWRCdWZmZXI6OmNyZWF0ZVdpdGhDb250ZW50c09mRmlsZShyZXNvdXJjZS0+cGF0
aCgpKTsKICAgICAgICAgfQogICAgICAgICBpZiAoIWRhdGEpCi0gICAgICAgICAgICBlcnJvciA9
IG1fZG9jdW1lbnRMb2FkZXIuZnJhbWVMb2FkZXIoKS0+Y2xpZW50KCkuY2Fubm90U2hvd1VSTEVy
cm9yKHJlcXVlc3QpOworICAgICAgICAgICAgZXJyb3IgPSBjYW5ub3RTaG93VVJMRXJyb3IocmVx
dWVzdCk7CiAgICAgICAgIGVsc2UKICAgICAgICAgICAgIHJlc3BvbnNlID0gcmVzb3VyY2UtPnJl
c3BvbnNlKCk7CiAgICAgICAgIHJldHVybiB0cnVlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vRXJyb3JzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0Vycm9ycy5j
cHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uMDA0OTM1MGRiMjkxYjJkMzdkMmU1NmYwZDk5OWE2NTM5YzhlZmJiZgot
LS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0Vycm9ycy5jcHAKQEAg
LTAsMCArMSwxNSBAQAorI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIkVycm9ycy5oIgor
CisjaW5jbHVkZSA8d3RmL05ldmVyRGVzdHJveWVkLmg+CisjaW5jbHVkZSA8d3RmL3RleHQvV1RG
U3RyaW5nLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY29uc3QgV1RGOjpTdHJpbmcmIHdl
YktpdEVycm9yRG9tYWluKCkKK3sKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8V1RGOjpTdHJp
bmc+IHdlYktpdEVycm9yRG9tYWluU3RyaW5nKEFTQ0lJTGl0ZXJhbCgiV2ViS2l0RXJyb3JEb21h
aW4iKSk7CisgICAgcmV0dXJuIHdlYktpdEVycm9yRG9tYWluU3RyaW5nOworfQorCit9CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9FcnJvcnMuaCBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL0Vycm9ycy5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmU3NWMwMTRjNDdmMmYyNGVhZjY2YWQ1YWI3
YWY5YzlmZTk5NWE1NjQKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9FcnJvcnMuaApAQCAtMCwwICsxLDYwIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDA2LCAy
MDA3LCAyMDA4LCAyMDA5LCAyMDEwLCAyMDExLCAyMDEyIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMiBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDE2IElnYWxpYSwgUy5MLgorICoKKyAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICoKKyAqIDEuICBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lci4gCisgKiAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICAgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1
dGlvbi4gCisgKiAzLiAgTmVpdGhlciB0aGUgbmFtZSBvZiBBcHBsZSBJbmMuICgiQXBwbGUiKSBu
b3IgdGhlIG5hbWVzIG9mCisgKiAgICAgaXRzIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBl
bmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZAorICogICAgIGZyb20gdGhpcyBzb2Z0
d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4gCisgKgorICog
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBBTkQgSVRTIENPTlRSSUJVVE9SUyAi
QVMgSVMiIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKKyAqIFdBUlJBTlRJRVMgT0YgTUVS
Q0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKKyAq
IERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIE9SIElUUyBDT05UUklCVVRPUlMg
QkUgTElBQkxFIEZPUiBBTlkKKyAqIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJ
QUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTCisgKiAoSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VS
VklDRVM7CisgKiBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5U
RVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQKKyAqIE9OIEFOWSBUSEVPUlkgT0YgTElBQklM
SVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAo
SU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VU
IE9GIFRIRSBVU0UgT0YKKyAqIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUg
UE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBFcnJvcnNfaAorI2Rl
ZmluZSBFcnJvcnNfaAorCituYW1lc3BhY2UgV1RGIHsKK2NsYXNzIFN0cmluZzsKK30KKworbmFt
ZXNwYWNlIFdlYkNvcmUgeworY2xhc3MgUmVzb3VyY2VFcnJvcjsKK2NsYXNzIFJlc291cmNlUmVx
dWVzdDsKK2NsYXNzIFJlc291cmNlUmVzcG9uc2U7CitjbGFzcyBVUkw7CisKK1dFQkNPUkVfRVhQ
T1JUIFJlc291cmNlRXJyb3IgY2FuY2VsbGVkRXJyb3IoY29uc3QgUmVzb3VyY2VSZXF1ZXN0Jik7
CitXRUJDT1JFX0VYUE9SVCBSZXNvdXJjZUVycm9yIGJsb2NrZWRFcnJvcihjb25zdCBSZXNvdXJj
ZVJlcXVlc3QmKTsKK1dFQkNPUkVfRVhQT1JUIFJlc291cmNlRXJyb3IgYmxvY2tlZEJ5Q29udGVu
dEJsb2NrZXJFcnJvcihjb25zdCBSZXNvdXJjZVJlcXVlc3QmKTsKK1dFQkNPUkVfRVhQT1JUIFJl
c291cmNlRXJyb3IgY2Fubm90U2hvd1VSTEVycm9yKGNvbnN0IFJlc291cmNlUmVxdWVzdCYpOwor
V0VCQ09SRV9FWFBPUlQgUmVzb3VyY2VFcnJvciBpbnRlcnJ1cHRlZEZvclBvbGljeUNoYW5nZUVy
cm9yKGNvbnN0IFJlc291cmNlUmVxdWVzdCYpOworCitXRUJDT1JFX0VYUE9SVCBSZXNvdXJjZUVy
cm9yIGNhbm5vdFNob3dNSU1FVHlwZUVycm9yKGNvbnN0IFJlc291cmNlUmVzcG9uc2UmKTsKK1dF
QkNPUkVfRVhQT1JUIFJlc291cmNlRXJyb3IgZmlsZURvZXNOb3RFeGlzdEVycm9yKGNvbnN0IFJl
c291cmNlUmVzcG9uc2UmKTsKK1dFQkNPUkVfRVhQT1JUIFJlc291cmNlRXJyb3IgcGx1Z2luV2ls
bEhhbmRsZUxvYWRFcnJvcihjb25zdCBSZXNvdXJjZVJlc3BvbnNlJik7CisKK1dFQkNPUkVfRVhQ
T1JUIFJlc291cmNlRXJyb3IgaW50ZXJuYWxFcnJvcihjb25zdCBVUkwmKTsKKworV0VCQ09SRV9F
WFBPUlQgY29uc3QgV1RGOjpTdHJpbmcmIHdlYktpdEVycm9yRG9tYWluKCk7CisKK30gLy8gbmFt
ZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIEVycm9yc19oCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9lZmwvRXJyb3JzRWZsLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2VmbC9FcnJvcnNFZmwuY3BwCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAzMjgy
NmU1NjcyNzMwM2JlZmRlMjljMDhkZThjNTdhYjQ5ZGJlMzlhLi4wMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2VmbC9F
cnJvcnNFZmwuY3BwCisrKyAvZGV2L251bGwKQEAgLTEsMTA1ICswLDAgQEAKLS8qCi0gKiBDb3B5
cmlnaHQgKEMpIDIwMTIgSW50ZWwgQ29ycG9yYXRpb24uIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0g
KgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAot
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVw
cm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3Vt
ZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmli
dXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFO
RCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwotICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBUSEUgSU1Q
TElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBM
RSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKLSAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKLSAqIENPTlNFUVVF
TlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5U
IE9GCi0gKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwg
T1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKLSAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQg
QU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCi0gKiBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKQotICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRgotICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LgotICovCi0KLSNpbmNsdWRlICJjb25maWcuaCIKLSNpbmNsdWRlICJFcnJvcnNFZmwuaCIKLQot
I2luY2x1ZGUgIlJlc291cmNlRXJyb3IuaCIKLSNpbmNsdWRlICJSZXNvdXJjZVJlcXVlc3QuaCIK
LSNpbmNsdWRlICJSZXNvdXJjZVJlc3BvbnNlLmgiCi0KLW5hbWVzcGFjZSBXZWJDb3JlIHsKLQot
UmVzb3VyY2VFcnJvciBjYW5jZWxsZWRFcnJvcihjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVl
c3QpCi17Ci0gICAgcmV0dXJuIFJlc291cmNlRXJyb3IoZXJyb3JEb21haW5OZXR3b3JrLCBOZXR3
b3JrRXJyb3JDYW5jZWxsZWQsIHJlcXVlc3QudXJsKCksIEFTQ0lJTGl0ZXJhbCgiTG9hZCByZXF1
ZXN0IGNhbmNlbGxlZCIpKTsKLX0KLQotUmVzb3VyY2VFcnJvciBibG9ja2VkRXJyb3IoY29uc3Qg
UmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0KQotewotICAgIHJldHVybiBSZXNvdXJjZUVycm9yKGVy
cm9yRG9tYWluUG9saWN5LCBQb2xpY3lFcnJvckNhbm5vdFVzZVJlc3RyaWN0ZWRQb3J0LCByZXF1
ZXN0LnVybCgpLCBBU0NJSUxpdGVyYWwoIk5vdCBhbGxvd2VkIHRvIHVzZSByZXN0cmljdGVkIG5l
dHdvcmsgcG9ydCIpKTsKLX0KLQotUmVzb3VyY2VFcnJvciBibG9ja2VkQnlDb250ZW50QmxvY2tl
ckVycm9yKGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCkKLXsKLSAgICByZXR1cm4gUmVz
b3VyY2VFcnJvcihlcnJvckRvbWFpblBvbGljeSwgUG9saWN5RXJyb3JCbG9ja2VkQnlDb250ZW50
QmxvY2tlciwgcmVxdWVzdC51cmwoKSwgQVNDSUlMaXRlcmFsKCJCbG9ja2VkIGJ5IGNvbnRlbnQg
YmxvY2tlciIpKTsKLX0KLQotUmVzb3VyY2VFcnJvciBjYW5ub3RTaG93VVJMRXJyb3IoY29uc3Qg
UmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0KQotewotICAgIHJldHVybiBSZXNvdXJjZUVycm9yKGVy
cm9yRG9tYWluUG9saWN5LCBQb2xpY3lFcnJvckNhbm5vdFNob3dVUkwsIHJlcXVlc3QudXJsKCks
IEFTQ0lJTGl0ZXJhbCgiVVJMIGNhbm5vdCBiZSBzaG93biIpKTsKLX0KLQotUmVzb3VyY2VFcnJv
ciBpbnRlcnJ1cHRlZEZvclBvbGljeUNoYW5nZUVycm9yKGNvbnN0IFJlc291cmNlUmVxdWVzdCYg
cmVxdWVzdCkKLXsKLSAgICByZXR1cm4gUmVzb3VyY2VFcnJvcihlcnJvckRvbWFpblBvbGljeSwg
UG9saWN5RXJyb3JGcmFtZUxvYWRJbnRlcnJ1cHRlZEJ5UG9saWN5Q2hhbmdlLCByZXF1ZXN0LnVy
bCgpLCBBU0NJSUxpdGVyYWwoIkZyYW1lIGxvYWQgd2FzIGludGVycnVwdGVkIikpOwotfQotCi1S
ZXNvdXJjZUVycm9yIGNhbm5vdFNob3dNSU1FVHlwZUVycm9yKGNvbnN0IFJlc291cmNlUmVzcG9u
c2UmIHJlc3BvbnNlKQotewotICAgIHJldHVybiBSZXNvdXJjZUVycm9yKGVycm9yRG9tYWluUG9s
aWN5LCBQb2xpY3lFcnJvckNhbm5vdFNob3dNaW1lVHlwZSwgcmVzcG9uc2UudXJsKCksIEFTQ0lJ
TGl0ZXJhbCgiQ29udGVudCB3aXRoIHRoZSBzcGVjaWZpZWQgTUlNRSB0eXBlIGNhbm5vdCBiZSBz
aG93biIpKTsKLX0KLQotUmVzb3VyY2VFcnJvciBmaWxlRG9lc05vdEV4aXN0RXJyb3IoY29uc3Qg
UmVzb3VyY2VSZXNwb25zZSYgcmVzcG9uc2UpCi17Ci0gICAgcmV0dXJuIFJlc291cmNlRXJyb3Io
ZXJyb3JEb21haW5OZXR3b3JrLCBOZXR3b3JrRXJyb3JGaWxlRG9lc05vdEV4aXN0LCByZXNwb25z
ZS51cmwoKSwgQVNDSUlMaXRlcmFsKCJGaWxlIGRvZXMgbm90IGV4aXN0IikpOwotfQotCi1SZXNv
dXJjZUVycm9yIHBsdWdpbldpbGxIYW5kbGVMb2FkRXJyb3IoY29uc3QgUmVzb3VyY2VSZXNwb25z
ZSYgcmVzcG9uc2UpCi17Ci0gICAgcmV0dXJuIFJlc291cmNlRXJyb3IoZXJyb3JEb21haW5QbHVn
aW4sIFBsdWdpbkVycm9yV2lsbEhhbmRsZUxvYWQsIHJlc3BvbnNlLnVybCgpLCBBU0NJSUxpdGVy
YWwoIlBsdWdpbiB3aWxsIGhhbmRsZSBsb2FkIikpOwotfQotCi1SZXNvdXJjZUVycm9yIGRvd25s
b2FkTmV0d29ya0Vycm9yKGNvbnN0IFJlc291cmNlRXJyb3ImIG5ldHdvcmtFcnJvcikKLXsKLSAg
ICByZXR1cm4gUmVzb3VyY2VFcnJvcihlcnJvckRvbWFpbkRvd25sb2FkLCBEb3dubG9hZEVycm9y
TmV0d29yaywgbmV0d29ya0Vycm9yLmZhaWxpbmdVUkwoKSwgbmV0d29ya0Vycm9yLmxvY2FsaXpl
ZERlc2NyaXB0aW9uKCkpOwotfQotCi1SZXNvdXJjZUVycm9yIGRvd25sb2FkQ2FuY2VsbGVkQnlV
c2VyRXJyb3IoY29uc3QgUmVzb3VyY2VSZXNwb25zZSYgcmVzcG9uc2UpCi17Ci0gICAgcmV0dXJu
IFJlc291cmNlRXJyb3IoZXJyb3JEb21haW5Eb3dubG9hZCwgRG93bmxvYWRFcnJvckNhbmNlbGxl
ZEJ5VXNlciwgcmVzcG9uc2UudXJsKCksIEFTQ0lJTGl0ZXJhbCgiVXNlciBjYW5jZWxsZWQgdGhl
IGRvd25sb2FkIikpOwotfQotCi1SZXNvdXJjZUVycm9yIGRvd25sb2FkRGVzdGluYXRpb25FcnJv
cihjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiByZXNwb25zZSwgY29uc3QgU3RyaW5nJiBlcnJvck1l
c3NhZ2UpCi17Ci0gICAgcmV0dXJuIFJlc291cmNlRXJyb3IoZXJyb3JEb21haW5Eb3dubG9hZCwg
RG93bmxvYWRFcnJvckRlc3RpbmF0aW9uLCByZXNwb25zZS51cmwoKSwgZXJyb3JNZXNzYWdlKTsK
LX0KLQotUmVzb3VyY2VFcnJvciBwcmludEVycm9yKGNvbnN0IFVSTCYgZmFpbGluZ1VSTCwgY29u
c3QgU3RyaW5nJiBlcnJvck1lc3NhZ2UpCi17Ci0gICAgcmV0dXJuIFJlc291cmNlRXJyb3IoZXJy
b3JEb21haW5QcmludCwgUHJpbnRFcnJvckdlbmVyYWwsIGZhaWxpbmdVUkwsIGVycm9yTWVzc2Fn
ZSk7Ci19Ci0KLVJlc291cmNlRXJyb3IgcHJpbnRlck5vdEZvdW5kRXJyb3IoY29uc3QgVVJMJiBm
YWlsaW5nVVJMKQotewotICAgIHJldHVybiBSZXNvdXJjZUVycm9yKGVycm9yRG9tYWluUHJpbnQs
IFByaW50RXJyb3JQcmludGVyTm90Rm91bmQsIGZhaWxpbmdVUkwsIEFTQ0lJTGl0ZXJhbCgiUHJp
bnRlciBub3QgZm91bmQiKSk7Ci19Ci0KLVJlc291cmNlRXJyb3IgaW52YWxpZFBhZ2VSYW5nZVRv
UHJpbnQoY29uc3QgVVJMJiBmYWlsaW5nVVJMKQotewotICAgIHJldHVybiBSZXNvdXJjZUVycm9y
KGVycm9yRG9tYWluUHJpbnQsIFByaW50RXJyb3JJbnZhbGlkUGFnZVJhbmdlLCBmYWlsaW5nVVJM
LCBBU0NJSUxpdGVyYWwoIkludmFsaWQgcGFnZSByYW5nZSIpKTsKLX0KLQotfSAvLyBuYW1lc3Bh
Y2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZWZsL0Vycm9y
c0VmbC5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZWZsL0Vycm9yc0VmbC5oCmRlbGV0ZWQg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCA3MGZmYTZlNjlkZWVlN2U5ZjU4MGNkOWQ1OWZjZTc4YzYy
ZWQ1MDQ2Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2VmbC9FcnJvcnNFZmwuaAorKysgL2Rldi9udWxsCkBAIC0x
LDEwMSArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDEyIEludGVsIENvcnBvcmF0aW9u
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0g
KiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKLSAq
IEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLAotICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1F
RC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCi0gKiBC
RSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBF
WEVNUExBUlksIE9SCi0gKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgotICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCi0gKiBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTgotICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKLSAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKLSAqIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaWZuZGVmIEVycm9yc0VmbF9oCi0j
ZGVmaW5lIEVycm9yc0VmbF9oCi0KLSNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KLQot
bmFtZXNwYWNlIFdlYkNvcmUgewotCi1jbGFzcyBSZXNvdXJjZUVycm9yOwotY2xhc3MgUmVzb3Vy
Y2VSZXF1ZXN0OwotY2xhc3MgUmVzb3VyY2VSZXNwb25zZTsKLWNsYXNzIFVSTDsKLQotc3RhdGlj
IGNvbnN0IGNoYXIgZXJyb3JEb21haW5OZXR3b3JrW10gPSAiV2ViS2l0TmV0d29ya0Vycm9yIjsK
LXN0YXRpYyBjb25zdCBjaGFyIGVycm9yRG9tYWluUG9saWN5W10gPSAiV2ViS2l0UG9saWN5RXJy
b3IiOwotc3RhdGljIGNvbnN0IGNoYXIgZXJyb3JEb21haW5QbHVnaW5bXSA9ICJXZWJLaXRQbHVn
aW5FcnJvciI7Ci1zdGF0aWMgY29uc3QgY2hhciBlcnJvckRvbWFpbkRvd25sb2FkW10gPSAiV2Vi
S2l0RG93bmxvYWRFcnJvciI7Ci1zdGF0aWMgY29uc3QgY2hhciBlcnJvckRvbWFpblByaW50W10g
PSAiV2ViS2l0UHJpbnRFcnJvciI7Ci0KLWVudW0gTmV0d29ya0Vycm9yIHsKLSAgICBOZXR3b3Jr
RXJyb3JGYWlsZWQgPSAzOTksCi0gICAgTmV0d29ya0Vycm9yVHJhbnNwb3J0ID0gMzAwLAotICAg
IE5ldHdvcmtFcnJvclVua25vd25Qcm90b2NvbCA9IDMwMSwKLSAgICBOZXR3b3JrRXJyb3JDYW5j
ZWxsZWQgPSAzMDIsCi0gICAgTmV0d29ya0Vycm9yRmlsZURvZXNOb3RFeGlzdCA9IDMwMwotfTsK
LQotLy8gU3luYydkIHdpdGggTWFjJ3MgV2ViS2l0IEVycm9ycyBhdDoKLS8vIFNvdXJjZS9XZWJL
aXQvbWFjL01pc2MvV2ViS2l0RXJyb3JzW1ByaXZhdGVdLmgKLWVudW0gUG9saWN5RXJyb3Igewot
ICAgIFBvbGljeUVycm9yRmFpbGVkID0gMTk5LAotICAgIFBvbGljeUVycm9yQ2Fubm90U2hvd01p
bWVUeXBlID0gMTAwLAotICAgIFBvbGljeUVycm9yQ2Fubm90U2hvd1VSTCA9IDEwMSwKLSAgICBQ
b2xpY3lFcnJvckZyYW1lTG9hZEludGVycnVwdGVkQnlQb2xpY3lDaGFuZ2UgPSAxMDIsCi0gICAg
UG9saWN5RXJyb3JDYW5ub3RVc2VSZXN0cmljdGVkUG9ydCA9IDEwMywKLSAgICBQb2xpY3lFcnJv
ckJsb2NrZWRCeUNvbnRlbnRCbG9ja2VyID0gMTA0LAotfTsKLQotZW51bSBQbHVnaW5FcnJvciB7
Ci0gICAgUGx1Z2luRXJyb3JGYWlsZWQgPSAyOTksCi0gICAgUGx1Z2luRXJyb3JDYW5ub3RGaW5k
UGx1Z2luID0gMjAwLAotICAgIFBsdWdpbkVycm9yQ2Fubm90TG9hZFBsdWdpbiA9IDIwMSwKLSAg
ICBQbHVnaW5FcnJvckphdmFVbmF2YWlsYWJsZSA9IDIwMiwKLSAgICBQbHVnaW5FcnJvckNvbm5l
Y3Rpb25DYW5jZWxsZWQgPSAyMDMsCi0gICAgUGx1Z2luRXJyb3JXaWxsSGFuZGxlTG9hZCA9IDIw
NAotfTsKLQotZW51bSBEb3dubG9hZEVycm9yIHsKLSAgICBEb3dubG9hZEVycm9yTmV0d29yayA9
IDQ5OSwKLSAgICBEb3dubG9hZEVycm9yQ2FuY2VsbGVkQnlVc2VyID0gNDAwLAotICAgIERvd25s
b2FkRXJyb3JEZXN0aW5hdGlvbiA9IDQwMQotfTsKLQotZW51bSBQcmludEVycm9yIHsKLSAgICBQ
cmludEVycm9yR2VuZXJhbCA9IDU5OSwKLSAgICBQcmludEVycm9yUHJpbnRlck5vdEZvdW5kID0g
NTAwLAotICAgIFByaW50RXJyb3JJbnZhbGlkUGFnZVJhbmdlID0gNTAxCi19OwotCi1SZXNvdXJj
ZUVycm9yIGNhbmNlbGxlZEVycm9yKGNvbnN0IFJlc291cmNlUmVxdWVzdCYpOwotUmVzb3VyY2VF
cnJvciBibG9ja2VkRXJyb3IoY29uc3QgUmVzb3VyY2VSZXF1ZXN0Jik7Ci1SZXNvdXJjZUVycm9y
IGJsb2NrZWRCeUNvbnRlbnRCbG9ja2VyRXJyb3IoY29uc3QgUmVzb3VyY2VSZXF1ZXN0Jik7Ci1S
ZXNvdXJjZUVycm9yIGNhbm5vdFNob3dVUkxFcnJvcihjb25zdCBSZXNvdXJjZVJlcXVlc3QmKTsK
LVJlc291cmNlRXJyb3IgaW50ZXJydXB0ZWRGb3JQb2xpY3lDaGFuZ2VFcnJvcihjb25zdCBSZXNv
dXJjZVJlcXVlc3QmKTsKLVJlc291cmNlRXJyb3IgY2Fubm90U2hvd01JTUVUeXBlRXJyb3IoY29u
c3QgUmVzb3VyY2VSZXNwb25zZSYpOwotUmVzb3VyY2VFcnJvciBmaWxlRG9lc05vdEV4aXN0RXJy
b3IoY29uc3QgUmVzb3VyY2VSZXNwb25zZSYpOwotUmVzb3VyY2VFcnJvciBwbHVnaW5XaWxsSGFu
ZGxlTG9hZEVycm9yKGNvbnN0IFJlc291cmNlUmVzcG9uc2UmKTsKLVJlc291cmNlRXJyb3IgZG93
bmxvYWROZXR3b3JrRXJyb3IoY29uc3QgUmVzb3VyY2VFcnJvciYpOwotUmVzb3VyY2VFcnJvciBk
b3dubG9hZENhbmNlbGxlZEJ5VXNlckVycm9yKGNvbnN0IFJlc291cmNlUmVzcG9uc2UmKTsKLVJl
c291cmNlRXJyb3IgZG93bmxvYWREZXN0aW5hdGlvbkVycm9yKGNvbnN0IFJlc291cmNlUmVzcG9u
c2UmLCBjb25zdCBTdHJpbmcmIGVycm9yTWVzc2FnZSk7Ci1SZXNvdXJjZUVycm9yIHByaW50RXJy
b3IoY29uc3QgVVJMJiBmYWlsaW5nVVJMLCBjb25zdCBTdHJpbmcmIGVycm9yTWVzc2FnZSk7Ci1S
ZXNvdXJjZUVycm9yIHByaW50ZXJOb3RGb3VuZEVycm9yKGNvbnN0IFVSTCYgZmFpbGluZ1VSTCk7
Ci1SZXNvdXJjZUVycm9yIGludmFsaWRQYWdlUmFuZ2VUb1ByaW50KGNvbnN0IFVSTCYgZmFpbGlu
Z1VSTCk7Ci0KLX0KLQotI2VuZGlmIC8vIEVycm9yc0VmbF9oCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ndGsvRXJyb3JzR3RrLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2d0ay9FcnJvcnNHdGsuY3BwCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA4ZGZk
MTU4YjNiNGQ2YzU0NGJkYjI5YTYxNTc0MWRiZGE0YjQxYTU0Li4wMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9F
cnJvcnNHdGsuY3BwCisrKyAvZGV2L251bGwKQEAgLTEsMTAwICswLDAgQEAKLS8qCi0gKiBDb3B5
cmlnaHQgKEMpIDIwMTEgSWdhbGlhIFMuTC4KLSAqCi0gKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBz
b2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCi0gKiBtb2RpZnkgaXQgdW5k
ZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYwotICogTGljZW5z
ZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCi0g
KiB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVy
IHZlcnNpb24uCi0gKgotICogVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3Bl
IHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCi0gKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdp
dGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgotICogTUVSQ0hBTlRBQklMSVRZIG9y
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKLSAqIExpYnJh
cnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgotICoKLSAqIFlvdSBz
aG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVi
bGljIExpY2Vuc2UKLSAqIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09Q
WUlORy5MSUIuICBJZiBub3QsIHdyaXRlIHRvCi0gKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0
aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLAotICogQm9zdG9uLCBN
QSAwMjExMC0xMzAxLCBVU0EuCi0gKi8KLQotI2luY2x1ZGUgImNvbmZpZy5oIgotI2luY2x1ZGUg
IkVycm9yc0d0ay5oIgotCi0jaW5jbHVkZSAiUmVzb3VyY2VFcnJvci5oIgotI2luY2x1ZGUgIlJl
c291cmNlUmVxdWVzdC5oIgotI2luY2x1ZGUgIlJlc291cmNlUmVzcG9uc2UuaCIKLSNpbmNsdWRl
IDxnbGliL2dpMThuLWxpYi5oPgotCi1uYW1lc3BhY2UgV2ViQ29yZSB7Ci0KLVJlc291cmNlRXJy
b3IgY2FuY2VsbGVkRXJyb3IoY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0KQotewotICAg
IHJldHVybiBSZXNvdXJjZUVycm9yKGVycm9yRG9tYWluTmV0d29yaywgTmV0d29ya0Vycm9yQ2Fu
Y2VsbGVkLCByZXF1ZXN0LnVybCgpLCBfKCJMb2FkIHJlcXVlc3QgY2FuY2VsbGVkIikpOwotfQot
Ci1SZXNvdXJjZUVycm9yIGJsb2NrZWRFcnJvcihjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVl
c3QpCi17Ci0gICAgcmV0dXJuIFJlc291cmNlRXJyb3IoZXJyb3JEb21haW5Qb2xpY3ksIFBvbGlj
eUVycm9yQ2Fubm90VXNlUmVzdHJpY3RlZFBvcnQsIHJlcXVlc3QudXJsKCksIF8oIk5vdCBhbGxv
d2VkIHRvIHVzZSByZXN0cmljdGVkIG5ldHdvcmsgcG9ydCIpKTsKLX0KLQotUmVzb3VyY2VFcnJv
ciBibG9ja2VkQnlDb250ZW50QmxvY2tlckVycm9yKGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVx
dWVzdCkKLXsKLSAgICByZXR1cm4gUmVzb3VyY2VFcnJvcihlcnJvckRvbWFpblBvbGljeSwgUG9s
aWN5RXJyb3JCbG9ja2VkQnlDb250ZW50QmxvY2tlciwgcmVxdWVzdC51cmwoKSwgXygiQmxvY2tl
ZCBieSBjb250ZW50IGJsb2NrZXIiKSk7Ci19Ci0KLVJlc291cmNlRXJyb3IgY2Fubm90U2hvd1VS
TEVycm9yKGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCkKLXsKLSAgICByZXR1cm4gUmVz
b3VyY2VFcnJvcihlcnJvckRvbWFpblBvbGljeSwgUG9saWN5RXJyb3JDYW5ub3RTaG93VVJMLCBy
ZXF1ZXN0LnVybCgpLCBfKCJVUkwgY2Fubm90IGJlIHNob3duIikpOwotfQotCi1SZXNvdXJjZUVy
cm9yIGludGVycnVwdGVkRm9yUG9saWN5Q2hhbmdlRXJyb3IoY29uc3QgUmVzb3VyY2VSZXF1ZXN0
JiByZXF1ZXN0KQotewotICAgIHJldHVybiBSZXNvdXJjZUVycm9yKGVycm9yRG9tYWluUG9saWN5
LCBQb2xpY3lFcnJvckZyYW1lTG9hZEludGVycnVwdGVkQnlQb2xpY3lDaGFuZ2UsIHJlcXVlc3Qu
dXJsKCksIF8oIkZyYW1lIGxvYWQgd2FzIGludGVycnVwdGVkIikpOwotfQotCi1SZXNvdXJjZUVy
cm9yIGNhbm5vdFNob3dNSU1FVHlwZUVycm9yKGNvbnN0IFJlc291cmNlUmVzcG9uc2UmIHJlc3Bv
bnNlKQotewotICAgIHJldHVybiBSZXNvdXJjZUVycm9yKGVycm9yRG9tYWluUG9saWN5LCBQb2xp
Y3lFcnJvckNhbm5vdFNob3dNaW1lVHlwZSwgcmVzcG9uc2UudXJsKCksIF8oIkNvbnRlbnQgd2l0
aCB0aGUgc3BlY2lmaWVkIE1JTUUgdHlwZSBjYW5ub3QgYmUgc2hvd24iKSk7Ci19Ci0KLVJlc291
cmNlRXJyb3IgZmlsZURvZXNOb3RFeGlzdEVycm9yKGNvbnN0IFJlc291cmNlUmVzcG9uc2UmIHJl
c3BvbnNlKQotewotICAgIHJldHVybiBSZXNvdXJjZUVycm9yKGVycm9yRG9tYWluTmV0d29yaywg
TmV0d29ya0Vycm9yRmlsZURvZXNOb3RFeGlzdCwgcmVzcG9uc2UudXJsKCksIF8oIkZpbGUgZG9l
cyBub3QgZXhpc3QiKSk7Ci19Ci0KLVJlc291cmNlRXJyb3IgcGx1Z2luV2lsbEhhbmRsZUxvYWRF
cnJvcihjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiByZXNwb25zZSkKLXsKLSAgICByZXR1cm4gUmVz
b3VyY2VFcnJvcihlcnJvckRvbWFpblBsdWdpbiwgUGx1Z2luRXJyb3JXaWxsSGFuZGxlTG9hZCwg
cmVzcG9uc2UudXJsKCksIF8oIlBsdWdpbiB3aWxsIGhhbmRsZSBsb2FkIikpOwotfQotCi1SZXNv
dXJjZUVycm9yIGRvd25sb2FkTmV0d29ya0Vycm9yKGNvbnN0IFJlc291cmNlRXJyb3ImIG5ldHdv
cmtFcnJvcikKLXsKLSAgICByZXR1cm4gUmVzb3VyY2VFcnJvcihlcnJvckRvbWFpbkRvd25sb2Fk
LCBEb3dubG9hZEVycm9yTmV0d29yaywgbmV0d29ya0Vycm9yLmZhaWxpbmdVUkwoKSwgbmV0d29y
a0Vycm9yLmxvY2FsaXplZERlc2NyaXB0aW9uKCkpOwotfQotCi1SZXNvdXJjZUVycm9yIGRvd25s
b2FkQ2FuY2VsbGVkQnlVc2VyRXJyb3IoY29uc3QgUmVzb3VyY2VSZXNwb25zZSYgcmVzcG9uc2Up
Ci17Ci0gICAgcmV0dXJuIFJlc291cmNlRXJyb3IoZXJyb3JEb21haW5Eb3dubG9hZCwgRG93bmxv
YWRFcnJvckNhbmNlbGxlZEJ5VXNlciwgcmVzcG9uc2UudXJsKCksIF8oIlVzZXIgY2FuY2VsbGVk
IHRoZSBkb3dubG9hZCIpKTsKLX0KLQotUmVzb3VyY2VFcnJvciBkb3dubG9hZERlc3RpbmF0aW9u
RXJyb3IoY29uc3QgUmVzb3VyY2VSZXNwb25zZSYgcmVzcG9uc2UsIGNvbnN0IFN0cmluZyYgZXJy
b3JNZXNzYWdlKQotewotICAgIHJldHVybiBSZXNvdXJjZUVycm9yKGVycm9yRG9tYWluRG93bmxv
YWQsIERvd25sb2FkRXJyb3JEZXN0aW5hdGlvbiwgcmVzcG9uc2UudXJsKCksIGVycm9yTWVzc2Fn
ZSk7Ci19Ci0KLVJlc291cmNlRXJyb3IgcHJpbnRFcnJvcihjb25zdCBVUkwmIGZhaWxpbmdVUkws
IGNvbnN0IFN0cmluZyYgZXJyb3JNZXNzYWdlKQotewotICAgIHJldHVybiBSZXNvdXJjZUVycm9y
KGVycm9yRG9tYWluUHJpbnQsIFByaW50RXJyb3JHZW5lcmFsLCBmYWlsaW5nVVJMLCBlcnJvck1l
c3NhZ2UpOwotfQotCi1SZXNvdXJjZUVycm9yIHByaW50ZXJOb3RGb3VuZEVycm9yKGNvbnN0IFVS
TCYgZmFpbGluZ1VSTCkKLXsKLSAgICByZXR1cm4gUmVzb3VyY2VFcnJvcihlcnJvckRvbWFpblBy
aW50LCBQcmludEVycm9yUHJpbnRlck5vdEZvdW5kLCBmYWlsaW5nVVJMLCBfKCJQcmludGVyIG5v
dCBmb3VuZCIpKTsKLX0KLQotUmVzb3VyY2VFcnJvciBpbnZhbGlkUGFnZVJhbmdlVG9QcmludChj
b25zdCBVUkwmIGZhaWxpbmdVUkwpCi17Ci0gICAgcmV0dXJuIFJlc291cmNlRXJyb3IoZXJyb3JE
b21haW5QcmludCwgUHJpbnRFcnJvckludmFsaWRQYWdlUmFuZ2UsIGZhaWxpbmdVUkwsIF8oIklu
dmFsaWQgcGFnZSByYW5nZSIpKTsKLX0KLQotfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL0Vycm9yc0d0ay5oIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3RrL0Vycm9yc0d0ay5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCA3NjFkY2NiMjZlZjcwMDQxYmM3MWE3MDIxYjUwNTMwZDc4MDI4MTcwLi4wMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2d0ay9FcnJvcnNHdGsuaAorKysgL2Rldi9udWxsCkBAIC0xLDk0ICswLDAgQEAKLS8qCi0g
KiBDb3B5cmlnaHQgKEMpIDIwMTEgSWdhbGlhIFMuTC4KLSAqCi0gKiBUaGlzIGxpYnJhcnkgaXMg
ZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCi0gKiBtb2RpZnkg
aXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYwotICog
TGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0
aGVyCi0gKiB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55
IGxhdGVyIHZlcnNpb24uCi0gKgotICogVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRo
ZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCi0gKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFO
VFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgotICogTUVSQ0hBTlRBQklM
SVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKLSAq
IExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgotICoKLSAq
IFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVy
YWwgUHVibGljIExpY2Vuc2UKLSAqIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZp
bGUgQ09QWUlORy5MSUIuICBJZiBub3QsIHdyaXRlIHRvCi0gKiB0aGUgRnJlZSBTb2Z0d2FyZSBG
b3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLAotICogQm9z
dG9uLCBNQSAwMjExMC0xMzAxLCBVU0EuCi0gKi8KLQotI2lmbmRlZiBFcnJvcnNHdGtfaAotI2Rl
ZmluZSBFcnJvcnNHdGtfaAotCi0jaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+Ci0KLW5h
bWVzcGFjZSBXZWJDb3JlIHsKLQotY2xhc3MgUmVzb3VyY2VFcnJvcjsKLWNsYXNzIFJlc291cmNl
UmVxdWVzdDsKLWNsYXNzIFJlc291cmNlUmVzcG9uc2U7Ci1jbGFzcyBVUkw7Ci0KLWNvbnN0IGNo
YXIqIGNvbnN0IGVycm9yRG9tYWluTmV0d29yayA9ICJXZWJLaXROZXR3b3JrRXJyb3IiOwotY29u
c3QgY2hhciogY29uc3QgZXJyb3JEb21haW5Qb2xpY3kgPSAiV2ViS2l0UG9saWN5RXJyb3IiOwot
Y29uc3QgY2hhciogY29uc3QgZXJyb3JEb21haW5QbHVnaW4gPSAiV2ViS2l0UGx1Z2luRXJyb3Ii
OwotY29uc3QgY2hhciogY29uc3QgZXJyb3JEb21haW5Eb3dubG9hZCA9ICJXZWJLaXREb3dubG9h
ZEVycm9yIjsKLWNvbnN0IGNoYXIqIGNvbnN0IGVycm9yRG9tYWluUHJpbnQgPSAiV2ViS2l0UHJp
bnRFcnJvciI7Ci0KLWVudW0gTmV0d29ya0Vycm9yIHsKLSAgICBOZXR3b3JrRXJyb3JGYWlsZWQg
PSAzOTksCi0gICAgTmV0d29ya0Vycm9yVHJhbnNwb3J0ID0gMzAwLAotICAgIE5ldHdvcmtFcnJv
clVua25vd25Qcm90b2NvbCA9IDMwMSwKLSAgICBOZXR3b3JrRXJyb3JDYW5jZWxsZWQgPSAzMDIs
Ci0gICAgTmV0d29ya0Vycm9yRmlsZURvZXNOb3RFeGlzdCA9IDMwMwotfTsKLQotLy8gU3luYydk
IHdpdGggTWFjJ3MgV2ViS2l0IEVycm9ycy4KLWVudW0gUG9saWN5RXJyb3IgewotICAgIFBvbGlj
eUVycm9yRmFpbGVkID0gMTk5LAotICAgIFBvbGljeUVycm9yQ2Fubm90U2hvd01pbWVUeXBlID0g
MTAwLAotICAgIFBvbGljeUVycm9yQ2Fubm90U2hvd1VSTCA9IDEwMSwKLSAgICBQb2xpY3lFcnJv
ckZyYW1lTG9hZEludGVycnVwdGVkQnlQb2xpY3lDaGFuZ2UgPSAxMDIsCi0gICAgUG9saWN5RXJy
b3JDYW5ub3RVc2VSZXN0cmljdGVkUG9ydCA9IDEwMywKLSAgICBQb2xpY3lFcnJvckJsb2NrZWRC
eUNvbnRlbnRCbG9ja2VyID0gMTA0LAotfTsKLQotZW51bSBQbHVnaW5FcnJvciB7Ci0gICAgUGx1
Z2luRXJyb3JGYWlsZWQgPSAyOTksCi0gICAgUGx1Z2luRXJyb3JDYW5ub3RGaW5kUGx1Z2luID0g
MjAwLAotICAgIFBsdWdpbkVycm9yQ2Fubm90TG9hZFBsdWdpbiA9IDIwMSwKLSAgICBQbHVnaW5F
cnJvckphdmFVbmF2YWlsYWJsZSA9IDIwMiwKLSAgICBQbHVnaW5FcnJvckNvbm5lY3Rpb25DYW5j
ZWxsZWQgPSAyMDMsCi0gICAgUGx1Z2luRXJyb3JXaWxsSGFuZGxlTG9hZCA9IDIwNAotfTsKLQot
ZW51bSBEb3dubG9hZEVycm9yIHsKLSAgICBEb3dubG9hZEVycm9yTmV0d29yayA9IDQ5OSwKLSAg
ICBEb3dubG9hZEVycm9yQ2FuY2VsbGVkQnlVc2VyID0gNDAwLAotICAgIERvd25sb2FkRXJyb3JE
ZXN0aW5hdGlvbiA9IDQwMQotfTsKLQotZW51bSBQcmludEVycm9yIHsKLSAgICBQcmludEVycm9y
R2VuZXJhbCA9IDU5OSwKLSAgICBQcmludEVycm9yUHJpbnRlck5vdEZvdW5kID0gNTAwLAotICAg
IFByaW50RXJyb3JJbnZhbGlkUGFnZVJhbmdlID0gNTAxCi19OwotCi1SZXNvdXJjZUVycm9yIGNh
bmNlbGxlZEVycm9yKGNvbnN0IFJlc291cmNlUmVxdWVzdCYpOwotUmVzb3VyY2VFcnJvciBibG9j
a2VkRXJyb3IoY29uc3QgUmVzb3VyY2VSZXF1ZXN0Jik7Ci1SZXNvdXJjZUVycm9yIGJsb2NrZWRC
eUNvbnRlbnRCbG9ja2VyRXJyb3IoY29uc3QgUmVzb3VyY2VSZXF1ZXN0Jik7Ci1SZXNvdXJjZUVy
cm9yIGNhbm5vdFNob3dVUkxFcnJvcihjb25zdCBSZXNvdXJjZVJlcXVlc3QmKTsKLVJlc291cmNl
RXJyb3IgaW50ZXJydXB0ZWRGb3JQb2xpY3lDaGFuZ2VFcnJvcihjb25zdCBSZXNvdXJjZVJlcXVl
c3QmKTsKLVJlc291cmNlRXJyb3IgY2Fubm90U2hvd01JTUVUeXBlRXJyb3IoY29uc3QgUmVzb3Vy
Y2VSZXNwb25zZSYpOwotUmVzb3VyY2VFcnJvciBmaWxlRG9lc05vdEV4aXN0RXJyb3IoY29uc3Qg
UmVzb3VyY2VSZXNwb25zZSYpOwotUmVzb3VyY2VFcnJvciBwbHVnaW5XaWxsSGFuZGxlTG9hZEVy
cm9yKGNvbnN0IFJlc291cmNlUmVzcG9uc2UmKTsKLVJlc291cmNlRXJyb3IgZG93bmxvYWROZXR3
b3JrRXJyb3IoY29uc3QgUmVzb3VyY2VFcnJvciYpOwotUmVzb3VyY2VFcnJvciBkb3dubG9hZENh
bmNlbGxlZEJ5VXNlckVycm9yKGNvbnN0IFJlc291cmNlUmVzcG9uc2UmKTsKLVJlc291cmNlRXJy
b3IgZG93bmxvYWREZXN0aW5hdGlvbkVycm9yKGNvbnN0IFJlc291cmNlUmVzcG9uc2UmLCBjb25z
dCBTdHJpbmcmIGVycm9yTWVzc2FnZSk7Ci1SZXNvdXJjZUVycm9yIHByaW50RXJyb3IoY29uc3Qg
VVJMJiBmYWlsaW5nVVJMLCBjb25zdCBTdHJpbmcmIGVycm9yTWVzc2FnZSk7Ci1SZXNvdXJjZUVy
cm9yIHByaW50ZXJOb3RGb3VuZEVycm9yKGNvbnN0IFVSTCYgZmFpbGluZ1VSTCk7Ci1SZXNvdXJj
ZUVycm9yIGludmFsaWRQYWdlUmFuZ2VUb1ByaW50KGNvbnN0IFVSTCYgZmFpbGluZ1VSTCk7Ci0K
LX0KLQotI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvcG8v
UE9URklMRVMuaW4gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvcG8vUE9URklMRVMuaW4K
aW5kZXggN2ZhMjgyNTIwY2FlMmU3ZjE3MDk3YTc2ODU0MzdhNmU1NTljNzQwZS4uNTFmNzg5ZWJm
MjE3ZjY5ZjUyOWRiYjYxYmEyNGZiOTlhN2NiZWY2NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3RrL3BvL1BPVEZJTEVTLmluCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2d0ay9wby9QT1RGSUxFUy5pbgpAQCAtMSw1ICsxLDUgQEAKICMgTGlzdCBvZiBzb3VyY2Ug
ZmlsZXMgd2hpY2ggY29udGFpbiB0cmFuc2xhdGFibGUgc3RyaW5ncy4KLUVycm9yc0d0ay5jcHAK
Ky4uL3VuaXgvRXJyb3JzVW5peC5jcHAKIExvY2FsaXplZFN0cmluZ3NHdGsuY3BwCiAuLi8uLi8u
Li9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL0Rvd25sb2Fkcy9zb3VwL0Rvd25sb2FkU291cC5jcHAK
IC4uLy4uLy4uL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0QXV0aGVudGljYXRpb25E
aWFsb2cuY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvRXJyb3Jz
TWFjLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL0Vycm9yc01hYy5tbQpuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi41YzBjNTRhODFmMjg4ODU5YmRkNTEwYmMzYjU2ZDdhZTFhYWFlNzlhCi0tLSAvZGV2L251
bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL0Vycm9yc01hYy5tbQpAQCAtMCww
ICsxLDExMSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMCBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6
CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFy
eSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0
aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3
aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBC
WSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBF
VkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBG
T1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwg
T1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NT
IE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikg
SE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElO
CisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNF
IE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbXBvcnQgImNvbmZpZy5oIgorI2ltcG9ydCAiRXJy
b3JzLmgiCisKKyNpbXBvcnQgIkxvY2FsaXplZFN0cmluZ3MuaCIKKyNpbXBvcnQgIlJlc291cmNl
RXJyb3IuaCIKKyNpbXBvcnQgIlJlc291cmNlUmVxdWVzdC5oIgorI2ltcG9ydCAiUmVzb3VyY2VS
ZXNwb25zZS5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2VudW0geworICAgIGtXS0Vycm9y
Q29kZUNhbm5vdFNob3dNSU1FVHlwZSA9ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxMDAs
CisgICAga1dLRXJyb3JDb2RlQ2Fubm90U2hvd1VSTCA9ICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIDEwMSwKKyAgICBrV0tFcnJvckNvZGVGcmFtZUxvYWRJbnRlcnJ1cHRlZEJ5UG9s
aWN5Q2hhbmdlID0gICAgICAgICAgICAgMTAyLAorICAgIGtXS0Vycm9yQ29kZUNhbm5vdFVzZVJl
c3RyaWN0ZWRQb3J0ID0gICAgICAgICAgICAgICAgICAgICAgICAxMDMsCisgICAga1dLRXJyb3JD
b2RlRnJhbWVMb2FkQmxvY2tlZEJ5Q29udGVudEJsb2NrZXIgPSAgICAgICAgICAgICAgIDEwNCwK
KyAgICBrV0tFcnJvckNvZGVDYW5ub3RGaW5kUGx1Z0luID0gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgMjAwLAorICAgIGtXS0Vycm9yQ29kZUNhbm5vdExvYWRQbHVnSW4gPSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAyMDEsCisgICAga1dLRXJyb3JDb2RlSmF2YVVuYXZhaWxh
YmxlID0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIwMiwKKyAgICBrV0tFcnJvckNv
ZGVQbHVnSW5DYW5jZWxsZWRDb25uZWN0aW9uID0gICAgICAgICAgICAgICAgICAgICAgMjAzLAor
ICAgIGtXS0Vycm9yQ29kZVBsdWdJbldpbGxIYW5kbGVMb2FkID0gICAgICAgICAgICAgICAgICAg
ICAgICAgICAyMDQsCisgICAga1dLRXJyb3JDb2RlSW5zZWN1cmVQbHVnSW5WZXJzaW9uID0gICAg
ICAgICAgICAgICAgICAgICAgICAgIDIwNSwKKyAgICBrV0tFcnJvckludGVybmFsID0gICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMzAwLAorfTsKKworc3RhdGljIFJl
dGFpblB0cjxOU0Vycm9yPiBjcmVhdGVOU0Vycm9yKE5TU3RyaW5nKiBkb21haW4sIGludCBjb2Rl
LCBOU1VSTCAqVVJMKQoreworICAgIE5TRGljdGlvbmFyeSAqdXNlckluZm8gPSBbTlNEaWN0aW9u
YXJ5IGRpY3Rpb25hcnlXaXRoT2JqZWN0c0FuZEtleXM6CisgICAgICAgIFVSTCwgQCJOU0Vycm9y
RmFpbGluZ1VSTEtleSIsCisgICAgICAgIFtVUkwgYWJzb2x1dGVTdHJpbmddLCBAIk5TRXJyb3JG
YWlsaW5nVVJMU3RyaW5nS2V5IiwKKyAgICAgICAgbmlsXTsKKworICAgIHJldHVybiBhZG9wdE5T
KFtbTlNFcnJvciBhbGxvY10gaW5pdFdpdGhEb21haW46ZG9tYWluIGNvZGU6Y29kZSB1c2VySW5m
bzp1c2VySW5mb10pOworfQorCisvLyBVc2UgTlNFcnJvcidzIGlmIGF2YWlsYWJsZS4KKworUmVz
b3VyY2VFcnJvciBjYW5jZWxsZWRFcnJvcihjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3Qp
Cit7CisgICAgcmV0dXJuIFJlc291cmNlRXJyb3IoY3JlYXRlTlNFcnJvcihOU1VSTEVycm9yRG9t
YWluLCBOU1VSTEVycm9yQ2FuY2VsbGVkLCByZXF1ZXN0LnVybCgpKS5nZXQoKSk7Cit9CisKK1Jl
c291cmNlRXJyb3IgZmlsZURvZXNOb3RFeGlzdEVycm9yKGNvbnN0IFJlc291cmNlUmVzcG9uc2Um
IHJlc3BvbnNlKQoreworICAgIHJldHVybiBSZXNvdXJjZUVycm9yKGNyZWF0ZU5TRXJyb3IoTlNV
UkxFcnJvckRvbWFpbiwgTlNVUkxFcnJvckZpbGVEb2VzTm90RXhpc3QsIHJlc3BvbnNlLnVybCgp
KS5nZXQoKSk7Cit9CisKKworLy8gT3RoZXJ3aXNlLCBmYWxsYmFjayB0byBvdXIgb3duIGVycm9y
cy4KKworUmVzb3VyY2VFcnJvciBibG9ja2VkRXJyb3IoY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiBy
ZXF1ZXN0KQoreworICAgIHJldHVybiBSZXNvdXJjZUVycm9yKHdlYktpdEVycm9yRG9tYWluKCks
IGtXS0Vycm9yQ29kZUNhbm5vdFVzZVJlc3RyaWN0ZWRQb3J0LCByZXF1ZXN0LnVybCgpLCBXRUJf
VUlfU1RSSU5HKCJOb3QgYWxsb3dlZCB0byB1c2UgcmVzdHJpY3RlZCBuZXR3b3JrIHBvcnQiLCAi
V2ViS2l0RXJyb3JDYW5ub3RVc2VSZXN0cmljdGVkUG9ydCBkZXNjcmlwdGlvbiIpKTsKK30KKwor
UmVzb3VyY2VFcnJvciBibG9ja2VkQnlDb250ZW50QmxvY2tlckVycm9yKGNvbnN0IFJlc291cmNl
UmVxdWVzdCYgcmVxdWVzdCkKK3sKKyAgICByZXR1cm4gUmVzb3VyY2VFcnJvcih3ZWJLaXRFcnJv
ckRvbWFpbigpLCBrV0tFcnJvckNvZGVGcmFtZUxvYWRCbG9ja2VkQnlDb250ZW50QmxvY2tlciwg
cmVxdWVzdC51cmwoKSwgV0VCX1VJX1NUUklORygiVGhlIFVSTCB3YXMgYmxvY2tlZCBieSBhIGNv
bnRlbnQgYmxvY2tlciIsICJXZWJLaXRFcnJvckJsb2NrZWRCeUNvbnRlbnRCbG9ja2VyIGRlc2Ny
aXB0aW9uIikpOworfQorCitSZXNvdXJjZUVycm9yIGNhbm5vdFNob3dVUkxFcnJvcihjb25zdCBS
ZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QpCit7CisgICAgcmV0dXJuIFJlc291cmNlRXJyb3Iod2Vi
S2l0RXJyb3JEb21haW4oKSwga1dLRXJyb3JDb2RlQ2Fubm90U2hvd1VSTCwgcmVxdWVzdC51cmwo
KSwgV0VCX1VJX1NUUklORygiVGhlIFVSTCBjYW7igJl0IGJlIHNob3duIiwgIldlYktpdEVycm9y
Q2Fubm90U2hvd1VSTCBkZXNjcmlwdGlvbiIpKTsKK30KKworUmVzb3VyY2VFcnJvciBpbnRlcnJ1
cHRlZEZvclBvbGljeUNoYW5nZUVycm9yKGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCkK
K3sKKyAgICByZXR1cm4gUmVzb3VyY2VFcnJvcih3ZWJLaXRFcnJvckRvbWFpbigpLCBrV0tFcnJv
ckNvZGVGcmFtZUxvYWRJbnRlcnJ1cHRlZEJ5UG9saWN5Q2hhbmdlLCByZXF1ZXN0LnVybCgpLCBX
RUJfVUlfU1RSSU5HKCJGcmFtZSBsb2FkIGludGVycnVwdGVkIiwgIldlYktpdEVycm9yRnJhbWVM
b2FkSW50ZXJydXB0ZWRCeVBvbGljeUNoYW5nZSBkZXNjcmlwdGlvbiIpKTsKK30KKworUmVzb3Vy
Y2VFcnJvciBjYW5ub3RTaG93TUlNRVR5cGVFcnJvcihjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiBy
ZXNwb25zZSkKK3sKKyAgICByZXR1cm4gUmVzb3VyY2VFcnJvcih3ZWJLaXRFcnJvckRvbWFpbigp
LCBrV0tFcnJvckNvZGVDYW5ub3RTaG93TUlNRVR5cGUsIHJlc3BvbnNlLnVybCgpLCBXRUJfVUlf
U1RSSU5HKCJDb250ZW50IHdpdGggc3BlY2lmaWVkIE1JTUUgdHlwZSBjYW7igJl0IGJlIHNob3du
IiwgIldlYktpdEVycm9yQ2Fubm90U2hvd01JTUVUeXBlIGRlc2NyaXB0aW9uIikpOworfQorCitS
ZXNvdXJjZUVycm9yIHBsdWdpbldpbGxIYW5kbGVMb2FkRXJyb3IoY29uc3QgUmVzb3VyY2VSZXNw
b25zZSYgcmVzcG9uc2UpCit7CisgICAgcmV0dXJuIFJlc291cmNlRXJyb3Iod2ViS2l0RXJyb3JE
b21haW4oKSwga1dLRXJyb3JDb2RlUGx1Z0luV2lsbEhhbmRsZUxvYWQsIHJlc3BvbnNlLnVybCgp
LCBXRUJfVUlfU1RSSU5HKCJQbHVnLWluIGhhbmRsZWQgbG9hZCIsICJXZWJLaXRFcnJvclBsdWdJ
bldpbGxIYW5kbGVMb2FkIGRlc2NyaXB0aW9uIikpOworfQorCitSZXNvdXJjZUVycm9yIGludGVy
bmFsRXJyb3IoY29uc3QgVVJMJiB1cmwpCit7CisgICAgcmV0dXJuIFJlc291cmNlRXJyb3Iod2Vi
S2l0RXJyb3JEb21haW4oKSwga1dLRXJyb3JJbnRlcm5hbCwgdXJsLCBXRUJfVUlfU1RSSU5HKCJX
ZWJLaXQgZW5jb3VudGVyZWQgYW4gaW50ZXJuYWwgZXJyb3IiLCAiV2ViS2l0RXJyb3JJbnRlcm5h
bCBkZXNjcmlwdGlvbiIpKTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdW5peC9FcnJvcnNVbml4LmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL3VuaXgvRXJyb3JzVW5peC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYjE2ZjQ5Mjli
YmU1MGU2MDVmNjRjNDdjOTQwN2FiNDYyMmZkNTA0MwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL3VuaXgvRXJyb3JzVW5peC5jcHAKQEAgLTAsMCArMSwxMTIgQEAK
Ky8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTEgSWdhbGlhIFMuTC4KKyAqCisgKiBUaGlzIGxpYnJh
cnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgKiBt
b2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1Ymxp
YworICogTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlv
bjsgZWl0aGVyCisgKiB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlv
bikgYW55IGxhdGVyIHZlcnNpb24uCisgKgorICogVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVk
IGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgKiBidXQgV0lUSE9VVCBBTlkg
V0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICogTUVSQ0hB
TlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBH
TlUKKyAqIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgor
ICoKKyAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5
IEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyAqIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUg
dGhlIGZpbGUgQ09QWUlORy5MSUIuICBJZiBub3QsIHdyaXRlIHRvCisgKiB0aGUgRnJlZSBTb2Z0
d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLAor
ICogQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0EuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5o
IgorI2luY2x1ZGUgIkVycm9yc1VuaXguaCIKKworI2luY2x1ZGUgIkVycm9ycy5oIgorI2luY2x1
ZGUgIlJlc291cmNlRXJyb3IuaCIKKyNpbmNsdWRlICJSZXNvdXJjZVJlcXVlc3QuaCIKKyNpbmNs
dWRlICJSZXNvdXJjZVJlc3BvbnNlLmgiCisKKyNpZiBQTEFURk9STShHVEspCisjaW5jbHVkZSA8
Z2xpYi9naTE4bi1saWIuaD4KKyNkZWZpbmUgRVJST1JfU1RSSU5HKHMpIF8ocykKKyNlbGlmIFBM
QVRGT1JNKEVGTCkKKyNkZWZpbmUgRVJST1JfU1RSSU5HKHMpIEFTQ0lJTGl0ZXJhbChzKQorI2Vu
ZGlmCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworUmVzb3VyY2VFcnJvciBjYW5jZWxsZWRFcnJv
cihjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QpCit7CisgICAgcmV0dXJuIFJlc291cmNl
RXJyb3IoZXJyb3JEb21haW5OZXR3b3JrLCBOZXR3b3JrRXJyb3JDYW5jZWxsZWQsIHJlcXVlc3Qu
dXJsKCksIEVSUk9SX1NUUklORygiTG9hZCByZXF1ZXN0IGNhbmNlbGxlZCIpKTsKK30KKworUmVz
b3VyY2VFcnJvciBibG9ja2VkRXJyb3IoY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0KQor
eworICAgIHJldHVybiBSZXNvdXJjZUVycm9yKGVycm9yRG9tYWluUG9saWN5LCBQb2xpY3lFcnJv
ckNhbm5vdFVzZVJlc3RyaWN0ZWRQb3J0LCByZXF1ZXN0LnVybCgpLCBFUlJPUl9TVFJJTkcoIk5v
dCBhbGxvd2VkIHRvIHVzZSByZXN0cmljdGVkIG5ldHdvcmsgcG9ydCIpKTsKK30KKworUmVzb3Vy
Y2VFcnJvciBibG9ja2VkQnlDb250ZW50QmxvY2tlckVycm9yKGNvbnN0IFJlc291cmNlUmVxdWVz
dCYgcmVxdWVzdCkKK3sKKyAgICByZXR1cm4gUmVzb3VyY2VFcnJvcihlcnJvckRvbWFpblBvbGlj
eSwgUG9saWN5RXJyb3JCbG9ja2VkQnlDb250ZW50QmxvY2tlciwgcmVxdWVzdC51cmwoKSwgRVJS
T1JfU1RSSU5HKCJCbG9ja2VkIGJ5IGNvbnRlbnQgYmxvY2tlciIpKTsKK30KKworUmVzb3VyY2VF
cnJvciBjYW5ub3RTaG93VVJMRXJyb3IoY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0KQor
eworICAgIHJldHVybiBSZXNvdXJjZUVycm9yKGVycm9yRG9tYWluUG9saWN5LCBQb2xpY3lFcnJv
ckNhbm5vdFNob3dVUkwsIHJlcXVlc3QudXJsKCksIEVSUk9SX1NUUklORygiVVJMIGNhbm5vdCBi
ZSBzaG93biIpKTsKK30KKworUmVzb3VyY2VFcnJvciBpbnRlcnJ1cHRlZEZvclBvbGljeUNoYW5n
ZUVycm9yKGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCkKK3sKKyAgICByZXR1cm4gUmVz
b3VyY2VFcnJvcihlcnJvckRvbWFpblBvbGljeSwgUG9saWN5RXJyb3JGcmFtZUxvYWRJbnRlcnJ1
cHRlZEJ5UG9saWN5Q2hhbmdlLCByZXF1ZXN0LnVybCgpLCBFUlJPUl9TVFJJTkcoIkZyYW1lIGxv
YWQgd2FzIGludGVycnVwdGVkIikpOworfQorCitSZXNvdXJjZUVycm9yIGNhbm5vdFNob3dNSU1F
VHlwZUVycm9yKGNvbnN0IFJlc291cmNlUmVzcG9uc2UmIHJlc3BvbnNlKQoreworICAgIHJldHVy
biBSZXNvdXJjZUVycm9yKGVycm9yRG9tYWluUG9saWN5LCBQb2xpY3lFcnJvckNhbm5vdFNob3dN
aW1lVHlwZSwgcmVzcG9uc2UudXJsKCksIEVSUk9SX1NUUklORygiQ29udGVudCB3aXRoIHRoZSBz
cGVjaWZpZWQgTUlNRSB0eXBlIGNhbm5vdCBiZSBzaG93biIpKTsKK30KKworUmVzb3VyY2VFcnJv
ciBmaWxlRG9lc05vdEV4aXN0RXJyb3IoY29uc3QgUmVzb3VyY2VSZXNwb25zZSYgcmVzcG9uc2Up
Cit7CisgICAgcmV0dXJuIFJlc291cmNlRXJyb3IoZXJyb3JEb21haW5OZXR3b3JrLCBOZXR3b3Jr
RXJyb3JGaWxlRG9lc05vdEV4aXN0LCByZXNwb25zZS51cmwoKSwgRVJST1JfU1RSSU5HKCJGaWxl
IGRvZXMgbm90IGV4aXN0IikpOworfQorCitSZXNvdXJjZUVycm9yIHBsdWdpbldpbGxIYW5kbGVM
b2FkRXJyb3IoY29uc3QgUmVzb3VyY2VSZXNwb25zZSYgcmVzcG9uc2UpCit7CisgICAgcmV0dXJu
IFJlc291cmNlRXJyb3IoZXJyb3JEb21haW5QbHVnaW4sIFBsdWdpbkVycm9yV2lsbEhhbmRsZUxv
YWQsIHJlc3BvbnNlLnVybCgpLCBFUlJPUl9TVFJJTkcoIlBsdWdpbiB3aWxsIGhhbmRsZSBsb2Fk
IikpOworfQorCitSZXNvdXJjZUVycm9yIGRvd25sb2FkTmV0d29ya0Vycm9yKGNvbnN0IFJlc291
cmNlRXJyb3ImIG5ldHdvcmtFcnJvcikKK3sKKyAgICByZXR1cm4gUmVzb3VyY2VFcnJvcihlcnJv
ckRvbWFpbkRvd25sb2FkLCBEb3dubG9hZEVycm9yTmV0d29yaywgbmV0d29ya0Vycm9yLmZhaWxp
bmdVUkwoKSwgbmV0d29ya0Vycm9yLmxvY2FsaXplZERlc2NyaXB0aW9uKCkpOworfQorCitSZXNv
dXJjZUVycm9yIGRvd25sb2FkQ2FuY2VsbGVkQnlVc2VyRXJyb3IoY29uc3QgUmVzb3VyY2VSZXNw
b25zZSYgcmVzcG9uc2UpCit7CisgICAgcmV0dXJuIFJlc291cmNlRXJyb3IoZXJyb3JEb21haW5E
b3dubG9hZCwgRG93bmxvYWRFcnJvckNhbmNlbGxlZEJ5VXNlciwgcmVzcG9uc2UudXJsKCksIEVS
Uk9SX1NUUklORygiVXNlciBjYW5jZWxsZWQgdGhlIGRvd25sb2FkIikpOworfQorCitSZXNvdXJj
ZUVycm9yIGRvd25sb2FkRGVzdGluYXRpb25FcnJvcihjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiBy
ZXNwb25zZSwgY29uc3QgU3RyaW5nJiBlcnJvck1lc3NhZ2UpCit7CisgICAgcmV0dXJuIFJlc291
cmNlRXJyb3IoZXJyb3JEb21haW5Eb3dubG9hZCwgRG93bmxvYWRFcnJvckRlc3RpbmF0aW9uLCBy
ZXNwb25zZS51cmwoKSwgZXJyb3JNZXNzYWdlKTsKK30KKworUmVzb3VyY2VFcnJvciBwcmludEVy
cm9yKGNvbnN0IFVSTCYgZmFpbGluZ1VSTCwgY29uc3QgU3RyaW5nJiBlcnJvck1lc3NhZ2UpCit7
CisgICAgcmV0dXJuIFJlc291cmNlRXJyb3IoZXJyb3JEb21haW5QcmludCwgUHJpbnRFcnJvckdl
bmVyYWwsIGZhaWxpbmdVUkwsIGVycm9yTWVzc2FnZSk7Cit9CisKK1Jlc291cmNlRXJyb3IgcHJp
bnRlck5vdEZvdW5kRXJyb3IoY29uc3QgVVJMJiBmYWlsaW5nVVJMKQoreworICAgIHJldHVybiBS
ZXNvdXJjZUVycm9yKGVycm9yRG9tYWluUHJpbnQsIFByaW50RXJyb3JQcmludGVyTm90Rm91bmQs
IGZhaWxpbmdVUkwsIEVSUk9SX1NUUklORygiUHJpbnRlciBub3QgZm91bmQiKSk7Cit9CisKK1Jl
c291cmNlRXJyb3IgaW52YWxpZFBhZ2VSYW5nZVRvUHJpbnQoY29uc3QgVVJMJiBmYWlsaW5nVVJM
KQoreworICAgIHJldHVybiBSZXNvdXJjZUVycm9yKGVycm9yRG9tYWluUHJpbnQsIFByaW50RXJy
b3JJbnZhbGlkUGFnZVJhbmdlLCBmYWlsaW5nVVJMLCBFUlJPUl9TVFJJTkcoIkludmFsaWQgcGFn
ZSByYW5nZSIpKTsKK30KKworUmVzb3VyY2VFcnJvciBpbnRlcm5hbEVycm9yKGNvbnN0IFVSTCYg
dXJsKQoreworICAgIHJldHVybiBSZXNvdXJjZUVycm9yKHdlYktpdEVycm9yRG9tYWluKCksIFBv
bGljeUVycm9ySW50ZXJuYWwsIHVybCwgRVJST1JfU1RSSU5HKCJJbnRlcm5hbCBlcnJvciIpKTsK
K30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vdW5peC9FcnJvcnNVbml4LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS91bml4
L0Vycm9yc1VuaXguaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40MWYyNWU1MWNhNTBiMmNmM2NhYjM4MDM5OGE2OTEz
Njg1ZjNhYmZiCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdW5p
eC9FcnJvcnNVbml4LmgKQEAgLTAsMCArMSw4NyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAx
MSwgMjAxNiBJZ2FsaWEgUy5MLgorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJl
OyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAqIG1vZGlmeSBpdCB1bmRlciB0aGUg
dGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCisgKiBMaWNlbnNlIGFzIHB1
Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAqIHZlcnNp
b24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lv
bi4KKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBp
dCB3aWxsIGJlIHVzZWZ1bCwKKyAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBl
dmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICogTGlicmFyeSBHZW5l
cmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisgKgorICogWW91IHNob3VsZCBo
YXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGlj
ZW5zZQorICogYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJ
Qi4gIElmIG5vdCwgd3JpdGUgdG8KKyAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIElu
Yy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsCisgKiBCb3N0b24sIE1BIDAyMTEw
LTEzMDEsIFVTQS4KKyAqLworCisjaWZuZGVmIEVycm9yc1VuaXhfaAorI2RlZmluZSBFcnJvcnNV
bml4X2gKKworI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgorCituYW1lc3BhY2UgV2Vi
Q29yZSB7CisKK2NsYXNzIFJlc291cmNlRXJyb3I7CitjbGFzcyBSZXNvdXJjZVJlcXVlc3Q7Citj
bGFzcyBSZXNvdXJjZVJlc3BvbnNlOworY2xhc3MgVVJMOworCitjb25zdCBjaGFyKiBjb25zdCBl
cnJvckRvbWFpbk5ldHdvcmsgPSAiV2ViS2l0TmV0d29ya0Vycm9yIjsKK2NvbnN0IGNoYXIqIGNv
bnN0IGVycm9yRG9tYWluUG9saWN5ID0gIldlYktpdFBvbGljeUVycm9yIjsKK2NvbnN0IGNoYXIq
IGNvbnN0IGVycm9yRG9tYWluUGx1Z2luID0gIldlYktpdFBsdWdpbkVycm9yIjsKK2NvbnN0IGNo
YXIqIGNvbnN0IGVycm9yRG9tYWluRG93bmxvYWQgPSAiV2ViS2l0RG93bmxvYWRFcnJvciI7Citj
b25zdCBjaGFyKiBjb25zdCBlcnJvckRvbWFpblByaW50ID0gIldlYktpdFByaW50RXJyb3IiOwor
CitlbnVtIE5ldHdvcmtFcnJvciB7CisgICAgTmV0d29ya0Vycm9yRmFpbGVkID0gMzk5LAorICAg
IE5ldHdvcmtFcnJvclVua25vd25Qcm90b2NvbCA9IDMwMSwKKyAgICBOZXR3b3JrRXJyb3JDYW5j
ZWxsZWQgPSAzMDIsCisgICAgTmV0d29ya0Vycm9yRmlsZURvZXNOb3RFeGlzdCA9IDMwMywKKyAg
ICBOZXR3b3JrRXJyb3JUcmFuc3BvcnQgPSAzMDQsCit9OworCisvLyBTeW5jJ2Qgd2l0aCBNYWMn
cyBXZWJLaXQgRXJyb3JzLgorZW51bSBQb2xpY3lFcnJvciB7CisgICAgUG9saWN5RXJyb3JJbnRl
cm5hbCA9IDMwMCwKKyAgICBQb2xpY3lFcnJvckZhaWxlZCA9IDE5OSwKKyAgICBQb2xpY3lFcnJv
ckNhbm5vdFNob3dNaW1lVHlwZSA9IDEwMCwKKyAgICBQb2xpY3lFcnJvckNhbm5vdFNob3dVUkwg
PSAxMDEsCisgICAgUG9saWN5RXJyb3JGcmFtZUxvYWRJbnRlcnJ1cHRlZEJ5UG9saWN5Q2hhbmdl
ID0gMTAyLAorICAgIFBvbGljeUVycm9yQ2Fubm90VXNlUmVzdHJpY3RlZFBvcnQgPSAxMDMsCisg
ICAgUG9saWN5RXJyb3JCbG9ja2VkQnlDb250ZW50QmxvY2tlciA9IDEwNCwKK307CisKK2VudW0g
UGx1Z2luRXJyb3IgeworICAgIFBsdWdpbkVycm9yRmFpbGVkID0gMjk5LAorICAgIFBsdWdpbkVy
cm9yQ2Fubm90RmluZFBsdWdpbiA9IDIwMCwKKyAgICBQbHVnaW5FcnJvckNhbm5vdExvYWRQbHVn
aW4gPSAyMDEsCisgICAgUGx1Z2luRXJyb3JKYXZhVW5hdmFpbGFibGUgPSAyMDIsCisgICAgUGx1
Z2luRXJyb3JDb25uZWN0aW9uQ2FuY2VsbGVkID0gMjAzLAorICAgIFBsdWdpbkVycm9yV2lsbEhh
bmRsZUxvYWQgPSAyMDQKK307CisKK2VudW0gRG93bmxvYWRFcnJvciB7CisgICAgRG93bmxvYWRF
cnJvck5ldHdvcmsgPSA0OTksCisgICAgRG93bmxvYWRFcnJvckNhbmNlbGxlZEJ5VXNlciA9IDQw
MCwKKyAgICBEb3dubG9hZEVycm9yRGVzdGluYXRpb24gPSA0MDEKK307CisKK2VudW0gUHJpbnRF
cnJvciB7CisgICAgUHJpbnRFcnJvckdlbmVyYWwgPSA1OTksCisgICAgUHJpbnRFcnJvclByaW50
ZXJOb3RGb3VuZCA9IDUwMCwKKyAgICBQcmludEVycm9ySW52YWxpZFBhZ2VSYW5nZSA9IDUwMQor
fTsKKworUmVzb3VyY2VFcnJvciBkb3dubG9hZE5ldHdvcmtFcnJvcihjb25zdCBSZXNvdXJjZUVy
cm9yJik7CitSZXNvdXJjZUVycm9yIGRvd25sb2FkQ2FuY2VsbGVkQnlVc2VyRXJyb3IoY29uc3Qg
UmVzb3VyY2VSZXNwb25zZSYpOworUmVzb3VyY2VFcnJvciBkb3dubG9hZERlc3RpbmF0aW9uRXJy
b3IoY29uc3QgUmVzb3VyY2VSZXNwb25zZSYsIGNvbnN0IFN0cmluZyYgZXJyb3JNZXNzYWdlKTsK
K1Jlc291cmNlRXJyb3IgcHJpbnRFcnJvcihjb25zdCBVUkwmIGZhaWxpbmdVUkwsIGNvbnN0IFN0
cmluZyYgZXJyb3JNZXNzYWdlKTsKK1Jlc291cmNlRXJyb3IgcHJpbnRlck5vdEZvdW5kRXJyb3Io
Y29uc3QgVVJMJiBmYWlsaW5nVVJMKTsKK1Jlc291cmNlRXJyb3IgaW52YWxpZFBhZ2VSYW5nZVRv
UHJpbnQoY29uc3QgVVJMJiBmYWlsaW5nVVJMKTsKKworfQorCisjZW5kaWYKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3dpbi9FcnJvcnNXaW4uY3BwIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vd2luL0Vycm9yc1dpbi5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMGZhYjA5ZjJhYzk1OGI4
MzdmMmYzZDVmMDZlZWFlM2Y5MWU4MmYzNAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL3dpbi9FcnJvcnNXaW4uY3BwCkBAIC0wLDAgKzEsODAgQEAKKy8qCisgKiBD
b3B5cmlnaHQgKEMpIDIwMDYtMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisg
KgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKgorICogMS4gIFJl
ZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyLgorICogMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBt
dXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICog
ICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZSBkaXN0cmlidXRpb24uCisgKiAzLiAgTmVpdGhlciB0aGUgbmFtZSBvZiBBcHBsZSBJbmMuICgi
QXBwbGUiKSBub3IgdGhlIG5hbWVzIG9mCisgKiAgICAgaXRzIGNvbnRyaWJ1dG9ycyBtYXkgYmUg
dXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZAorICogICAgIGZyb20g
dGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4K
KyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIEFORCBJVFMgQ09OVFJJ
QlVUT1JTICJBUyBJUyIgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAorICogV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NF
IEFSRQorICogRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgT1IgSVRTIENPTlRS
SUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWQorICogRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMKKyAqIChJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09E
UyBPUiBTRVJWSUNFUzsKKyAqIExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORAorICogT04gQU5ZIFRIRU9SWSBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRSBPRgorICogVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29u
ZmlnLmgiCisjaW5jbHVkZSAiRXJyb3JzLmgiCisKKyNpbmNsdWRlICJSZXNvdXJjZUVycm9yLmgi
CisjaW5jbHVkZSAiUmVzb3VyY2VSZXF1ZXN0LmgiCisjaW5jbHVkZSAiUmVzb3VyY2VSZXNwb25z
ZS5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK1Jlc291cmNlRXJyb3IgY2FuY2VsbGVkRXJy
b3IoY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0KQoreworICAgIC8vIEZJWE1FOiBOZWVk
IENoaWNrZW5DYXQgdG8gaW5jbHVkZSBDRk5ldHdvcmsvQ0ZVUkxFcnJvci5oIHRvIGdldCB0aGVz
ZSB2YWx1ZXMKKyAgICAvLyBBbHRlcm5hdGl2ZWx5LCB3ZSBjb3VsZCBjcmVhdGUgb3VyIG93biBl
cnJvciBkb21haW4vY29kZXMuCisgICAgcmV0dXJuIFJlc291cmNlRXJyb3IoU3RyaW5nKFdlYlVS
TEVycm9yRG9tYWluKSwgLTk5OSwgcmVxdWVzdC51cmwoKSwgU3RyaW5nKCJDYW5jZWxsZWQiKSk7
Cit9CisKK1Jlc291cmNlRXJyb3IgYmxvY2tlZEVycm9yKGNvbnN0IFJlc291cmNlUmVxdWVzdCYg
cmVxdWVzdCkKK3sKKyAgICByZXR1cm4gUmVzb3VyY2VFcnJvcihTdHJpbmcoV2ViS2l0RXJyb3JE
b21haW4pLCBXZWJLaXRFcnJvckNhbm5vdFVzZVJlc3RyaWN0ZWRQb3J0LCByZXF1ZXN0LnVybCgp
LCBXRUJfVUlfU1RSSU5HKCJOb3QgYWxsb3dlZCB0byB1c2UgcmVzdHJpY3RlZCBuZXR3b3JrIHBv
cnQiLCAiV2ViS2l0RXJyb3JDYW5ub3RVc2VSZXN0cmljdGVkUG9ydCBkZXNjcmlwdGlvbiIpKTsK
K30KKworUmVzb3VyY2VFcnJvciBibG9ja2VkQnlDb250ZW50QmxvY2tlckVycm9yKGNvbnN0IFJl
c291cmNlUmVxdWVzdCYgcmVxdWVzdCkKK3sKKyAgICBSRUxFQVNFX0FTU0VSVF9OT1RfUkVBQ0hF
RCgpOyAvLyBDb250ZW50IEJsb2NrZXJzIGFyZSBub3QgZW5hYmxlZCBmb3IgV0sxLgorfQorCitS
ZXNvdXJjZUVycm9yIGNhbm5vdFNob3dVUkxFcnJvcihjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJl
cXVlc3QpCit7CisgICAgcmV0dXJuIFJlc291cmNlRXJyb3IoU3RyaW5nKFdlYktpdEVycm9yRG9t
YWluKSwgV2ViS2l0RXJyb3JDYW5ub3RTaG93VVJMLCByZXF1ZXN0LnVybCgpLCBXRUJfVUlfU1RS
SU5HKCJUaGUgVVJMIGNhblx4RTJceDgwXHg5OXQgYmUgc2hvd24iLCAiV2ViS2l0RXJyb3JDYW5u
b3RTaG93VVJMIGRlc2NyaXB0aW9uIikpOworfQorCitSZXNvdXJjZUVycm9yIGludGVycnVwdGVk
Rm9yUG9saWN5Q2hhbmdlRXJyb3IoY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0KQorewor
ICAgIHJldHVybiBSZXNvdXJjZUVycm9yKFN0cmluZyhXZWJLaXRFcnJvckRvbWFpbiksIFdlYktp
dEVycm9yRnJhbWVMb2FkSW50ZXJydXB0ZWRCeVBvbGljeUNoYW5nZSwgcmVxdWVzdC51cmwoKSwg
V0VCX1VJX1NUUklORygiRnJhbWUgbG9hZCBpbnRlcnJ1cHRlZCIsICJXZWJLaXRFcnJvckZyYW1l
TG9hZEludGVycnVwdGVkQnlQb2xpY3lDaGFuZ2UgZGVzY3JpcHRpb24iKSk7Cit9CisKK1Jlc291
cmNlRXJyb3IgY2Fubm90U2hvd01JTUVUeXBlRXJyb3IoY29uc3QgUmVzb3VyY2VSZXNwb25zZSYg
cmVzcG9uc2UpCit7CisgICAgcmV0dXJuIFJlc291cmNlRXJyb3IoU3RyaW5nKCksIFdlYktpdEVy
cm9yQ2Fubm90U2hvd01JTUVUeXBlLCByZXNwb25zZS51cmwoKSwgV0VCX1VJX1NUUklORygiQ29u
dGVudCB3aXRoIHNwZWNpZmllZCBNSU1FIHR5cGUgY2FuXHhFMlx4ODBceDk5dCBiZSBzaG93biIs
ICJXZWJLaXRFcnJvckNhbm5vdFNob3dNSU1FVHlwZSBkZXNjcmlwdGlvbiIpKTsKK30KKworUmVz
b3VyY2VFcnJvciBmaWxlRG9lc05vdEV4aXN0RXJyb3IoY29uc3QgUmVzb3VyY2VSZXNwb25zZSYg
cmVzcG9uc2UpCit7CisgICAgcmV0dXJuIFJlc291cmNlRXJyb3IoU3RyaW5nKFdlYlVSTEVycm9y
RG9tYWluKSwgLTExMDAsIHJlc3BvbnNlLnVybCgpLCBTdHJpbmcoIkZpbGUgZG9lcyBub3QgZXhp
c3QuIikpOworfQorCitSZXNvdXJjZUVycm9yIHBsdWdpbldpbGxIYW5kbGVMb2FkRXJyb3IoY29u
c3QgUmVzb3VyY2VSZXNwb25zZSYgcmVzcG9uc2UpCit7CisgICAgcmV0dXJuIFJlc291cmNlRXJy
b3IoU3RyaW5nKFdlYktpdEVycm9yRG9tYWluKSwgV2ViS2l0RXJyb3JQbHVnSW5XaWxsSGFuZGxl
TG9hZCwgcmVzcG9uc2UudXJsKCksIFdFQl9VSV9TVFJJTkcoIlBsdWctaW4gaGFuZGxlZCBsb2Fk
IiwgIldlYktpdEVycm9yUGx1Z0luV2lsbEhhbmRsZUxvYWQgZGVzY3JpcHRpb24iKSk7Cit9CisK
K30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFjL1dl
YkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmggYi9Tb3VyY2UvV2ViS2l0L21hYy9X
ZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5oCmluZGV4IDMwMmEzY2JlZWEzOGJh
YWZkMjI3MmYxYmNmMmNhNmQ1YzhlNjQ2ODUuLjEzM2RkNzY2N2U3NGY0YjFmYjNiMzFhOWI5ZDc1
NjA5YTBkNzVlZTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0
L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1
cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuaApAQCAtMTU4LDE2ICsxNTgsNiBAQCBwcml2YXRl
OgogICAgIHZvaWQgZGlkUnVuSW5zZWN1cmVDb250ZW50KFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2lu
KiwgY29uc3QgV2ViQ29yZTo6VVJMJikgb3ZlcnJpZGU7CiAgICAgdm9pZCBkaWREZXRlY3RYU1Mo
Y29uc3QgV2ViQ29yZTo6VVJMJiwgYm9vbCBkaWRCbG9ja0VudGlyZVBhZ2UpIG92ZXJyaWRlOwog
Ci0gICAgV2ViQ29yZTo6UmVzb3VyY2VFcnJvciBjYW5jZWxsZWRFcnJvcihjb25zdCBXZWJDb3Jl
OjpSZXNvdXJjZVJlcXVlc3QmKSBvdmVycmlkZTsKLSAgICBXZWJDb3JlOjpSZXNvdXJjZUVycm9y
IGJsb2NrZWRFcnJvcihjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmKSBvdmVycmlkZTsK
LSAgICBXZWJDb3JlOjpSZXNvdXJjZUVycm9yIGJsb2NrZWRCeUNvbnRlbnRCbG9ja2VyRXJyb3Io
Y29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0Jikgb3ZlcnJpZGU7Ci0gICAgV2ViQ29yZTo6
UmVzb3VyY2VFcnJvciBjYW5ub3RTaG93VVJMRXJyb3IoY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VS
ZXF1ZXN0Jikgb3ZlcnJpZGU7Ci0gICAgV2ViQ29yZTo6UmVzb3VyY2VFcnJvciBpbnRlcnJ1cHRl
ZEZvclBvbGljeUNoYW5nZUVycm9yKGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYpIG92
ZXJyaWRlOwotCi0gICAgV2ViQ29yZTo6UmVzb3VyY2VFcnJvciBjYW5ub3RTaG93TUlNRVR5cGVF
cnJvcihjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlJikgb3ZlcnJpZGU7Ci0gICAgV2Vi
Q29yZTo6UmVzb3VyY2VFcnJvciBmaWxlRG9lc05vdEV4aXN0RXJyb3IoY29uc3QgV2ViQ29yZTo6
UmVzb3VyY2VSZXNwb25zZSYpIG92ZXJyaWRlOwotICAgIFdlYkNvcmU6OlJlc291cmNlRXJyb3Ig
cGx1Z2luV2lsbEhhbmRsZUxvYWRFcnJvcihjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNl
Jikgb3ZlcnJpZGU7Ci0KICAgICBib29sIHNob3VsZEZhbGxCYWNrKGNvbnN0IFdlYkNvcmU6OlJl
c291cmNlRXJyb3ImKSBvdmVycmlkZTsKIAogICAgIFdURjo6U3RyaW5nIHVzZXJBZ2VudChjb25z
dCBXZWJDb3JlOjpVUkwmKSBvdmVycmlkZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFj
L1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50Lm1tIGIvU291cmNlL1dlYktpdC9t
YWMvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQubW0KaW5kZXggMmU1ZjMwNDkx
NjNlNmY2NjA1MjJkYWYyZGFjOGU2MGVkMmEyZjY4My4uZDllYmI4ODhkNzVlNjY2MmRlOWM5MWU4
Y2FlZDQ1NzE5MGFkZWNlNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1
cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQubW0KKysrIGIvU291cmNlL1dlYktpdC9tYWMvV2Vi
Q29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQubW0KQEAgLTExMzcsNTEgKzExMzcsNiBA
QCB2b2lkIFdlYkZyYW1lTG9hZGVyQ2xpZW50OjpkaWREZXRlY3RYU1MoY29uc3QgVVJMJiBpbnNl
Y3VyZVVSTCwgYm9vbCBkaWRCbG9ja0VudAogICAgIH0KIH0KIAotUmVzb3VyY2VFcnJvciBXZWJG
cmFtZUxvYWRlckNsaWVudDo6Y2FuY2VsbGVkRXJyb3IoY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiBy
ZXF1ZXN0KQotewotICAgIHJldHVybiBbTlNFcnJvciBfd2ViS2l0RXJyb3JXaXRoRG9tYWluOk5T
VVJMRXJyb3JEb21haW4gY29kZTpOU1VSTEVycm9yQ2FuY2VsbGVkIFVSTDpyZXF1ZXN0LnVybCgp
XTsKLX0KLSAgICAKLVJlc291cmNlRXJyb3IgV2ViRnJhbWVMb2FkZXJDbGllbnQ6OmJsb2NrZWRF
cnJvcihjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QpCi17Ci0gICAgcmV0dXJuIFtOU0Vy
cm9yIF93ZWJLaXRFcnJvcldpdGhEb21haW46V2ViS2l0RXJyb3JEb21haW4gY29kZTpXZWJLaXRF
cnJvckNhbm5vdFVzZVJlc3RyaWN0ZWRQb3J0IFVSTDpyZXF1ZXN0LnVybCgpXTsKLX0KLQotUmVz
b3VyY2VFcnJvciBXZWJGcmFtZUxvYWRlckNsaWVudDo6YmxvY2tlZEJ5Q29udGVudEJsb2NrZXJF
cnJvcihjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QpCi17Ci0gICAgUkVMRUFTRV9BU1NF
UlRfTk9UX1JFQUNIRUQoKTsgLy8gQ29udGVudCBibG9ja2VycyBhcmUgbm90IGVuYWJsZWQgaW4g
V2ViS2l0MS4KLX0KLQotUmVzb3VyY2VFcnJvciBXZWJGcmFtZUxvYWRlckNsaWVudDo6Y2Fubm90
U2hvd1VSTEVycm9yKGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCkKLXsKLSAgICByZXR1
cm4gW05TRXJyb3IgX3dlYktpdEVycm9yV2l0aERvbWFpbjpXZWJLaXRFcnJvckRvbWFpbiBjb2Rl
OldlYktpdEVycm9yQ2Fubm90U2hvd1VSTCBVUkw6cmVxdWVzdC51cmwoKV07Ci19Ci0KLVJlc291
cmNlRXJyb3IgV2ViRnJhbWVMb2FkZXJDbGllbnQ6OmludGVycnVwdGVkRm9yUG9saWN5Q2hhbmdl
RXJyb3IoY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0KQotewotICAgIHJldHVybiBbTlNF
cnJvciBfd2ViS2l0RXJyb3JXaXRoRG9tYWluOldlYktpdEVycm9yRG9tYWluIGNvZGU6V2ViS2l0
RXJyb3JGcmFtZUxvYWRJbnRlcnJ1cHRlZEJ5UG9saWN5Q2hhbmdlIFVSTDpyZXF1ZXN0LnVybCgp
XTsKLX0KLQotUmVzb3VyY2VFcnJvciBXZWJGcmFtZUxvYWRlckNsaWVudDo6Y2Fubm90U2hvd01J
TUVUeXBlRXJyb3IoY29uc3QgUmVzb3VyY2VSZXNwb25zZSYgcmVzcG9uc2UpCi17Ci0gICAgcmV0
dXJuIFtOU0Vycm9yIF93ZWJLaXRFcnJvcldpdGhEb21haW46TlNVUkxFcnJvckRvbWFpbiBjb2Rl
OldlYktpdEVycm9yQ2Fubm90U2hvd01JTUVUeXBlIFVSTDpyZXNwb25zZS51cmwoKV07Ci19Ci0K
LVJlc291cmNlRXJyb3IgV2ViRnJhbWVMb2FkZXJDbGllbnQ6OmZpbGVEb2VzTm90RXhpc3RFcnJv
cihjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiByZXNwb25zZSkKLXsKLSAgICByZXR1cm4gW05TRXJy
b3IgX3dlYktpdEVycm9yV2l0aERvbWFpbjpOU1VSTEVycm9yRG9tYWluIGNvZGU6TlNVUkxFcnJv
ckZpbGVEb2VzTm90RXhpc3QgVVJMOnJlc3BvbnNlLnVybCgpXTsgICAgCi19Ci0KLVJlc291cmNl
RXJyb3IgV2ViRnJhbWVMb2FkZXJDbGllbnQ6OnBsdWdpbldpbGxIYW5kbGVMb2FkRXJyb3IoY29u
c3QgUmVzb3VyY2VSZXNwb25zZSYgcmVzcG9uc2UpCi17Ci0gICAgTlNFcnJvciAqZXJyb3IgPSBb
W05TRXJyb3IgYWxsb2NdIF9pbml0V2l0aFBsdWdpbkVycm9yQ29kZTpXZWJLaXRFcnJvclBsdWdJ
bldpbGxIYW5kbGVMb2FkCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgY29udGVudFVSTDpyZXNwb25zZS51cmwoKQotICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBsdWdpblBhZ2VVUkw6bmlsCi0gICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGx1Z2luTmFtZTpu
aWwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IE1JTUVUeXBlOnJlc3BvbnNlLm1pbWVUeXBlKCldOwotICAgIHJldHVybiBbZXJyb3IgYXV0b3Jl
bGVhc2VdOwotfQotCiBib29sIFdlYkZyYW1lTG9hZGVyQ2xpZW50OjpzaG91bGRGYWxsQmFjayhj
b25zdCBSZXNvdXJjZUVycm9yJiBlcnJvcikKIHsKICAgICAvLyBGSVhNRTogTmVlZHMgdG8gY2hl
Y2sgZG9tYWluLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQv
V2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dC5tbSBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVT
dXBwb3J0L1dlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQubW0KaW5kZXggYzhiOTcxYzI2ZjAyYTA5
YTI4OGFmNTM2ZDdhNzRjMTMyYWNhNGM3YS4uODA4MjZhMThhMThiOTk4NjZhOWI5ZGQwNmI2OGU5
Yzc0NzY0NGMzYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQv
V2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dC5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJD
b3JlU3VwcG9ydC9XZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0Lm1tCkBAIC0yOCw2ICsyOCw3IEBA
CiAjaW1wb3J0ICJXZWJGcmFtZUludGVybmFsLmgiCiAjaW1wb3J0ICJXZWJWaWV3UHJpdmF0ZS5o
IgogI2ltcG9ydCA8V2ViQ29yZS9DRk5ldHdvcmtTUEkuaD4KKyNpbXBvcnQgPFdlYkNvcmUvRXJy
b3JzLmg+CiAjaW1wb3J0IDxXZWJDb3JlL0ZyYW1lTG9hZGVyLmg+CiAjaW1wb3J0IDxXZWJDb3Jl
L0ZyYW1lTG9hZGVyQ2xpZW50Lmg+CiAjaW1wb3J0IDxXZWJDb3JlL05ldHdvcmtTdG9yYWdlU2Vz
c2lvbi5oPgpAQCAtOTgsNyArOTksNyBAQCBTdHJpbmcgV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4
dDo6c291cmNlQXBwbGljYXRpb25JZGVudGlmaWVyKCkgY29uc3QKIAogUmVzb3VyY2VFcnJvciBX
ZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0OjpibG9ja2VkRXJyb3IoY29uc3QgUmVzb3VyY2VSZXF1
ZXN0JiByZXF1ZXN0KSBjb25zdAogewotICAgIHJldHVybiBmcmFtZSgpLT5sb2FkZXIoKS5jbGll
bnQoKS5ibG9ja2VkRXJyb3IocmVxdWVzdCk7CisgICAgcmV0dXJuIFdlYkNvcmU6OmJsb2NrZWRF
cnJvcihyZXF1ZXN0KTsKIH0KIAogTmV0d29ya1N0b3JhZ2VTZXNzaW9uJiBXZWJGcmFtZU5ldHdv
cmtpbmdDb250ZXh0OjpzdG9yYWdlU2Vzc2lvbigpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L21hYy9XZWJWaWV3L1dlYkhUTUxSZXByZXNlbnRhdGlvbi5tbSBiL1NvdXJjZS9XZWJL
aXQvbWFjL1dlYlZpZXcvV2ViSFRNTFJlcHJlc2VudGF0aW9uLm1tCmluZGV4IGU4Yzc2YWFmODE3
NjA3MjM2MTY3NGIzN2EzYzY3MDRkNzA1YTJmMWIuLjI4YWU3MmMwYjEzYmM0MjFlNDAxNzM1ZjI1
ZjYxN2JiZTE5NjIzZTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2Vi
SFRNTFJlcHJlc2VudGF0aW9uLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2Vi
SFRNTFJlcHJlc2VudGF0aW9uLm1tCkBAIC00NSw2ICs0NSw3IEBACiAjaW1wb3J0IDxXZWJDb3Jl
L0RvY3VtZW50Lmg+CiAjaW1wb3J0IDxXZWJDb3JlL0RvY3VtZW50TG9hZGVyLmg+CiAjaW1wb3J0
IDxXZWJDb3JlL0VkaXRvci5oPgorI2ltcG9ydCA8V2ViQ29yZS9FcnJvcnMuaD4KICNpbXBvcnQg
PFdlYkNvcmUvRnJhbWUuaD4KICNpbXBvcnQgPFdlYkNvcmUvRnJhbWVMb2FkZXIuaD4KICNpbXBv
cnQgPFdlYkNvcmUvRnJhbWVMb2FkZXJDbGllbnQuaD4KQEAgLTE4OSw3ICsxOTAsNyBAQCBzdGF0
aWMgTlNNdXRhYmxlQXJyYXkgKm5ld0FycmF5QnlDb25jYXRlbmF0aW5nQXJyYXlzKE5TQXJyYXkg
KmZpcnN0LCBOU0FycmF5ICpzZQogICAgIC8vIElmIHRoZSBkb2N1bWVudCBpcyBhIHN0YW5kLWFs
b25lIG1lZGlhIGRvY3VtZW50LCBub3cgaXMgdGhlIHJpZ2h0IHRpbWUgdG8gY2FuY2VsIHRoZSBX
ZWJLaXQgbG9hZAogICAgIEZyYW1lKiBjb3JlRnJhbWUgPSBjb3JlKHdlYkZyYW1lKTsKICAgICBp
ZiAoY29yZUZyYW1lLT5kb2N1bWVudCgpLT5pc01lZGlhRG9jdW1lbnQoKSkKLSAgICAgICAgY29y
ZUZyYW1lLT5sb2FkZXIoKS5kb2N1bWVudExvYWRlcigpLT5jYW5jZWxNYWluUmVzb3VyY2VMb2Fk
KGNvcmVGcmFtZS0+bG9hZGVyKCkuY2xpZW50KCkucGx1Z2luV2lsbEhhbmRsZUxvYWRFcnJvcihj
b3JlRnJhbWUtPmxvYWRlcigpLmRvY3VtZW50TG9hZGVyKCktPnJlc3BvbnNlKCkpKTsKKyAgICAg
ICAgY29yZUZyYW1lLT5sb2FkZXIoKS5kb2N1bWVudExvYWRlcigpLT5jYW5jZWxNYWluUmVzb3Vy
Y2VMb2FkKFdlYkNvcmU6OnBsdWdpbldpbGxIYW5kbGVMb2FkRXJyb3IoY29yZUZyYW1lLT5sb2Fk
ZXIoKS5kb2N1bWVudExvYWRlcigpLT5yZXNwb25zZSgpKSk7CiAKICAgICBpZiAoX3ByaXZhdGUt
PnBsdWdpblZpZXcpIHsKICAgICAgICAgaWYgKCFfcHJpdmF0ZS0+aGFzU2VudFJlc3BvbnNlVG9Q
bHVnaW4pIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvd2luL1BsdWdpbnMvUGx1Z2luU3Ry
ZWFtLmNwcCBiL1NvdXJjZS9XZWJLaXQvd2luL1BsdWdpbnMvUGx1Z2luU3RyZWFtLmNwcAppbmRl
eCAyZWYzOTU1YmU2MWE4ZDA1NDI0YWQxMzk5NjJkZDBkN2ZhNmFlNDQ0Li5iZTdkZGMwMjI5YTll
ZTIwZWIzNmM5MTA2ZDIyMzQ0MGJhZjU2Njg1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L3dp
bi9QbHVnaW5zL1BsdWdpblN0cmVhbS5jcHAKKysrIGIvU291cmNlL1dlYktpdC93aW4vUGx1Z2lu
cy9QbHVnaW5TdHJlYW0uY3BwCkBAIC0zNSw2ICszNSw3IEBACiAjaW5jbHVkZSAiU2hhcmVkQnVm
ZmVyLmgiCiAjaW5jbHVkZSAiU3VicmVzb3VyY2VMb2FkZXIuaCIKICNpbmNsdWRlICJXZWJSZXNv
dXJjZUxvYWRTY2hlZHVsZXIuaCIKKyNpbmNsdWRlIDxXZWJDb3JlL0Vycm9ycy5oPgogI2luY2x1
ZGUgPHd0Zi9TdHJpbmdFeHRyYXMuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9DU3RyaW5nLmg+CiAj
aW5jbHVkZSA8d3RmL3RleHQvU3RyaW5nQnVpbGRlci5oPgpAQCAtMTExLDcgKzExMiw3IEBAIHZv
aWQgUGx1Z2luU3RyZWFtOjpzdG9wKCkKICAgICAgICAgQVNTRVJUKGRvY3VtZW50TG9hZGVyKTsK
IAogICAgICAgICBpZiAoZG9jdW1lbnRMb2FkZXItPmlzTG9hZGluZ01haW5SZXNvdXJjZSgpKQot
ICAgICAgICAgICAgZG9jdW1lbnRMb2FkZXItPmNhbmNlbE1haW5SZXNvdXJjZUxvYWQobV9mcmFt
ZS0+bG9hZGVyKCkuY2FuY2VsbGVkRXJyb3IobV9yZXNvdXJjZVJlcXVlc3QpKTsKKyAgICAgICAg
ICAgIGRvY3VtZW50TG9hZGVyLT5jYW5jZWxNYWluUmVzb3VyY2VMb2FkKFdlYkNvcmU6OmNhbmNl
bGxlZEVycm9yKG1fcmVzb3VyY2VSZXF1ZXN0KSk7CiAKICAgICAgICAgcmV0dXJuOwogICAgIH0K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvd2luL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9h
ZGVyQ2xpZW50LmNwcCBiL1NvdXJjZS9XZWJLaXQvd2luL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1l
TG9hZGVyQ2xpZW50LmNwcAppbmRleCBjMTBmNmM2ZDFjYzU3M2E5OGI3MDIwNzU0OWU0MzQxMmM3
MTM4ZjU1Li44ZDQzMWYyZTYyN2VlMTlkNWVmYmUzMjY0ZTVlZDA4MDkzYjM2MDhhIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVu
dC5jcHAKKysrIGIvU291cmNlL1dlYktpdC93aW4vV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2Fk
ZXJDbGllbnQuY3BwCkBAIC02Miw2ICs2Miw3IEBACiAjaW5jbHVkZSA8V2ViQ29yZS9DYWNoZWRG
cmFtZS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvRE5TLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9Eb2N1
bWVudExvYWRlci5oPgorI2luY2x1ZGUgPFdlYkNvcmUvRXJyb3JzLmg+CiAjaW5jbHVkZSA8V2Vi
Q29yZS9Gb3JtU3RhdGUuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0ZyYW1lLmg+CiAjaW5jbHVkZSA8
V2ViQ29yZS9GcmFtZUxvYWRlci5oPgpAQCAtODMwLDQ4ICs4MzEsNiBAQCB2b2lkIFdlYkZyYW1l
TG9hZGVyQ2xpZW50OjpkaWREZXRlY3RYU1MoY29uc3QgVVJMJiwgYm9vbCkKICAgICAvLyBGSVhN
RTogcHJvcG9nYXRlIGNhbGwgaW50byB0aGUgcHJpdmF0ZSBkZWxlZ2F0ZS4KIH0KIAotUmVzb3Vy
Y2VFcnJvciBXZWJGcmFtZUxvYWRlckNsaWVudDo6Y2FuY2VsbGVkRXJyb3IoY29uc3QgUmVzb3Vy
Y2VSZXF1ZXN0JiByZXF1ZXN0KQotewotICAgIC8vIEZJWE1FOiBOZWVkIENoaWNrZW5DYXQgdG8g
aW5jbHVkZSBDRk5ldHdvcmsvQ0ZVUkxFcnJvci5oIHRvIGdldCB0aGVzZSB2YWx1ZXMKLSAgICAv
LyBBbHRlcm5hdGl2ZWx5LCB3ZSBjb3VsZCBjcmVhdGUgb3VyIG93biBlcnJvciBkb21haW4vY29k
ZXMuCi0gICAgcmV0dXJuIFJlc291cmNlRXJyb3IoU3RyaW5nKFdlYlVSTEVycm9yRG9tYWluKSwg
LTk5OSwgcmVxdWVzdC51cmwoKSwgU3RyaW5nKCJDYW5jZWxsZWQiKSk7Ci19Ci0KLVJlc291cmNl
RXJyb3IgV2ViRnJhbWVMb2FkZXJDbGllbnQ6OmJsb2NrZWRFcnJvcihjb25zdCBSZXNvdXJjZVJl
cXVlc3QmIHJlcXVlc3QpCi17Ci0gICAgcmV0dXJuIFJlc291cmNlRXJyb3IoU3RyaW5nKFdlYktp
dEVycm9yRG9tYWluKSwgV2ViS2l0RXJyb3JDYW5ub3RVc2VSZXN0cmljdGVkUG9ydCwgcmVxdWVz
dC51cmwoKSwgV0VCX1VJX1NUUklORygiTm90IGFsbG93ZWQgdG8gdXNlIHJlc3RyaWN0ZWQgbmV0
d29yayBwb3J0IiwgIldlYktpdEVycm9yQ2Fubm90VXNlUmVzdHJpY3RlZFBvcnQgZGVzY3JpcHRp
b24iKSk7Ci19Ci0KLVJlc291cmNlRXJyb3IgV2ViRnJhbWVMb2FkZXJDbGllbnQ6OmJsb2NrZWRC
eUNvbnRlbnRCbG9ja2VyRXJyb3IoY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0KQotewot
ICAgIFJFTEVBU0VfQVNTRVJUX05PVF9SRUFDSEVEKCk7IC8vIENvbnRlbnQgQmxvY2tlcnMgYXJl
IG5vdCBlbmFibGVkIGZvciBXSzEuCi19Ci0KLVJlc291cmNlRXJyb3IgV2ViRnJhbWVMb2FkZXJD
bGllbnQ6OmNhbm5vdFNob3dVUkxFcnJvcihjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3Qp
Ci17Ci0gICAgcmV0dXJuIFJlc291cmNlRXJyb3IoU3RyaW5nKFdlYktpdEVycm9yRG9tYWluKSwg
V2ViS2l0RXJyb3JDYW5ub3RTaG93VVJMLCByZXF1ZXN0LnVybCgpLCBXRUJfVUlfU1RSSU5HKCJU
aGUgVVJMIGNhblx4RTJceDgwXHg5OXQgYmUgc2hvd24iLCAiV2ViS2l0RXJyb3JDYW5ub3RTaG93
VVJMIGRlc2NyaXB0aW9uIikpOwotfQotCi1SZXNvdXJjZUVycm9yIFdlYkZyYW1lTG9hZGVyQ2xp
ZW50OjppbnRlcnJ1cHRlZEZvclBvbGljeUNoYW5nZUVycm9yKGNvbnN0IFJlc291cmNlUmVxdWVz
dCYgcmVxdWVzdCkKLXsKLSAgICByZXR1cm4gUmVzb3VyY2VFcnJvcihTdHJpbmcoV2ViS2l0RXJy
b3JEb21haW4pLCBXZWJLaXRFcnJvckZyYW1lTG9hZEludGVycnVwdGVkQnlQb2xpY3lDaGFuZ2Us
IHJlcXVlc3QudXJsKCksIFdFQl9VSV9TVFJJTkcoIkZyYW1lIGxvYWQgaW50ZXJydXB0ZWQiLCAi
V2ViS2l0RXJyb3JGcmFtZUxvYWRJbnRlcnJ1cHRlZEJ5UG9saWN5Q2hhbmdlIGRlc2NyaXB0aW9u
IikpOwotfQotCi1SZXNvdXJjZUVycm9yIFdlYkZyYW1lTG9hZGVyQ2xpZW50OjpjYW5ub3RTaG93
TUlNRVR5cGVFcnJvcihjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiByZXNwb25zZSkKLXsKLSAgICBy
ZXR1cm4gUmVzb3VyY2VFcnJvcihTdHJpbmcoKSwgV2ViS2l0RXJyb3JDYW5ub3RTaG93TUlNRVR5
cGUsIHJlc3BvbnNlLnVybCgpLCBXRUJfVUlfU1RSSU5HKCJDb250ZW50IHdpdGggc3BlY2lmaWVk
IE1JTUUgdHlwZSBjYW5ceEUyXHg4MFx4OTl0IGJlIHNob3duIiwgIldlYktpdEVycm9yQ2Fubm90
U2hvd01JTUVUeXBlIGRlc2NyaXB0aW9uIikpOwotfQotCi1SZXNvdXJjZUVycm9yIFdlYkZyYW1l
TG9hZGVyQ2xpZW50OjpmaWxlRG9lc05vdEV4aXN0RXJyb3IoY29uc3QgUmVzb3VyY2VSZXNwb25z
ZSYgcmVzcG9uc2UpCi17Ci0gICAgcmV0dXJuIFJlc291cmNlRXJyb3IoU3RyaW5nKFdlYlVSTEVy
cm9yRG9tYWluKSwgLTExMDAsIHJlc3BvbnNlLnVybCgpLCBTdHJpbmcoIkZpbGUgZG9lcyBub3Qg
ZXhpc3QuIikpOwotfQotCi1SZXNvdXJjZUVycm9yIFdlYkZyYW1lTG9hZGVyQ2xpZW50OjpwbHVn
aW5XaWxsSGFuZGxlTG9hZEVycm9yKGNvbnN0IFJlc291cmNlUmVzcG9uc2UmIHJlc3BvbnNlKQot
ewotICAgIHJldHVybiBSZXNvdXJjZUVycm9yKFN0cmluZyhXZWJLaXRFcnJvckRvbWFpbiksIFdl
YktpdEVycm9yUGx1Z0luV2lsbEhhbmRsZUxvYWQsIHJlc3BvbnNlLnVybCgpLCBXRUJfVUlfU1RS
SU5HKCJQbHVnLWluIGhhbmRsZWQgbG9hZCIsICJXZWJLaXRFcnJvclBsdWdJbldpbGxIYW5kbGVM
b2FkIGRlc2NyaXB0aW9uIikpOwotfQotCiBib29sIFdlYkZyYW1lTG9hZGVyQ2xpZW50OjpzaG91
bGRGYWxsQmFjayhjb25zdCBSZXNvdXJjZUVycm9yJiBlcnJvcikKIHsKICAgICBpZiAoZXJyb3Iu
ZXJyb3JDb2RlKCkgPT0gV2ViVVJMRXJyb3JDYW5jZWxsZWQgJiYgZXJyb3IuZG9tYWluKCkgPT0g
U3RyaW5nKFdlYlVSTEVycm9yRG9tYWluKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvd2lu
L1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmggYi9Tb3VyY2UvV2ViS2l0L3dp
bi9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5oCmluZGV4IDAyODhjOGE0ZGI2
ZjM0M2ExY2IwNGU1MzBlZmZlM2JmYWU3Yzg5NDYuLjE5NmQyMzUwYTA4NmZhYzEwYjdiOTk3ZWRk
NjYyMjM0MmJjNTFlZWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvd2luL1dlYkNvcmVTdXBw
b3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYktpdC93aW4vV2ViQ29y
ZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuaApAQCAtMTM4LDE1ICsxMzgsNiBAQCBwdWJs
aWM6CiAgICAgdm9pZCBkaWRSdW5JbnNlY3VyZUNvbnRlbnQoV2ViQ29yZTo6U2VjdXJpdHlPcmln
aW4qLCBjb25zdCBXZWJDb3JlOjpVUkwmKSBvdmVycmlkZTsKICAgICB2b2lkIGRpZERldGVjdFhT
Uyhjb25zdCBXZWJDb3JlOjpVUkwmLCBib29sIGRpZEJsb2NrRW50aXJlUGFnZSkgb3ZlcnJpZGU7
CiAKLSAgICBXZWJDb3JlOjpSZXNvdXJjZUVycm9yIGNhbmNlbGxlZEVycm9yKGNvbnN0IFdlYkNv
cmU6OlJlc291cmNlUmVxdWVzdCYpIG92ZXJyaWRlOwotICAgIFdlYkNvcmU6OlJlc291cmNlRXJy
b3IgYmxvY2tlZEVycm9yKGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYpIG92ZXJyaWRl
OwotICAgIFdlYkNvcmU6OlJlc291cmNlRXJyb3IgYmxvY2tlZEJ5Q29udGVudEJsb2NrZXJFcnJv
cihjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmKSBvdmVycmlkZTsKLSAgICBXZWJDb3Jl
OjpSZXNvdXJjZUVycm9yIGNhbm5vdFNob3dVUkxFcnJvcihjb25zdCBXZWJDb3JlOjpSZXNvdXJj
ZVJlcXVlc3QmKSBvdmVycmlkZTsKLSAgICBXZWJDb3JlOjpSZXNvdXJjZUVycm9yIGludGVycnVw
dGVkRm9yUG9saWN5Q2hhbmdlRXJyb3IoY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0Jikg
b3ZlcnJpZGU7Ci0gICAgV2ViQ29yZTo6UmVzb3VyY2VFcnJvciBjYW5ub3RTaG93TUlNRVR5cGVF
cnJvcihjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlJikgb3ZlcnJpZGU7Ci0gICAgV2Vi
Q29yZTo6UmVzb3VyY2VFcnJvciBmaWxlRG9lc05vdEV4aXN0RXJyb3IoY29uc3QgV2ViQ29yZTo6
UmVzb3VyY2VSZXNwb25zZSYpIG92ZXJyaWRlOwotICAgIFdlYkNvcmU6OlJlc291cmNlRXJyb3Ig
cGx1Z2luV2lsbEhhbmRsZUxvYWRFcnJvcihjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNl
Jikgb3ZlcnJpZGU7Ci0KICAgICBib29sIHNob3VsZEZhbGxCYWNrKGNvbnN0IFdlYkNvcmU6OlJl
c291cmNlRXJyb3ImKSBvdmVycmlkZTsKIAogICAgIFdURjo6U3RyaW5nIHVzZXJBZ2VudChjb25z
dCBXZWJDb3JlOjpVUkwmKSBvdmVycmlkZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvd2lu
L1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQuY3BwIGIvU291cmNlL1dl
YktpdC93aW4vV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dC5jcHAKaW5k
ZXggMjlhNmFkY2IwZmM4MmM0ODY3YTU2M2RhZjU4MTUyYTczZmZmMDQzZi4uMTU4NzM3ZGNmOTZj
NGVjNDliYzQ3YThjMTAyNmVjZGMwM2VjODRkZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC93
aW4vV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dC5jcHAKKysrIGIvU291
cmNlL1dlYktpdC93aW4vV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dC5j
cHAKQEAgLTI2LDYgKzI2LDcgQEAKICNpbmNsdWRlICJXZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0
LmgiCiAKICNpbmNsdWRlICJXZWJWaWV3LmgiCisjaW5jbHVkZSA8V2ViQ29yZS9FcnJvcnMuaD4K
ICNpbmNsdWRlIDxXZWJDb3JlL0ZyYW1lTG9hZGVyLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9GcmFt
ZUxvYWRlckNsaWVudC5oPgogI2luY2x1ZGUgPFdlYkNvcmUvTmV0d29ya1N0b3JhZ2VTZXNzaW9u
Lmg+CkBAIC0xMDAsNyArMTAxLDcgQEAgdm9pZCBXZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0Ojpk
ZXN0cm95UHJpdmF0ZUJyb3dzaW5nU2Vzc2lvbigpCiAKIFJlc291cmNlRXJyb3IgV2ViRnJhbWVO
ZXR3b3JraW5nQ29udGV4dDo6YmxvY2tlZEVycm9yKGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVx
dWVzdCkgY29uc3QKIHsKLSAgICByZXR1cm4gZnJhbWUoKS0+bG9hZGVyKCkuY2xpZW50KCkuYmxv
Y2tlZEVycm9yKHJlcXVlc3QpOworICAgIHJldHVybiBXZWJDb3JlOjpibG9ja2VkRXJyb3IocmVx
dWVzdCk7CiB9CiAKIE5ldHdvcmtTdG9yYWdlU2Vzc2lvbiYgV2ViRnJhbWVOZXR3b3JraW5nQ29u
dGV4dDo6c3RvcmFnZVNlc3Npb24oKSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIv
TmV0d29ya1Byb2Nlc3MvRG93bmxvYWRzL2VmbC9Eb3dubG9hZFNvdXBFcnJvcnNFZmwuY3BwIGIv
U291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvRG93bmxvYWRzL2VmbC9Eb3dubG9hZFNvdXBF
cnJvcnNFZmwuY3BwCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBhYzAwZDUxYjM3MTM4
OTIxZTc3NmIxYWM1OGEwZDQ1NTUxNmIwODZhLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL0Rvd25sb2Fk
cy9lZmwvRG93bmxvYWRTb3VwRXJyb3JzRWZsLmNwcAorKysgL2Rldi9udWxsCkBAIC0xLDQ2ICsw
LDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTIgSW50ZWwgQ29ycG9yYXRpb24uIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBt
ZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBp
biB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwotICogQU5EIEFO
WSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sCi0gKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBO
TyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKLSAqIEJFIExJQUJM
RSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFS
WSwgT1IKLSAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFBST0NVUkVNRU5UIE9GCi0gKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKLSAqIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOCi0gKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQotICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgotICogVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNpbmNsdWRlICJjb25maWcuaCIKLSNpbmNsdWRl
ICJEb3dubG9hZFNvdXBFcnJvcnMuaCIKLQotI2luY2x1ZGUgPFdlYkNvcmUvRXJyb3JzRWZsLmg+
Ci0jaW5jbHVkZSA8V2ViQ29yZS9SZXNvdXJjZUVycm9yLmg+Ci0KLXVzaW5nIG5hbWVzcGFjZSBX
ZWJDb3JlOwotCi1uYW1lc3BhY2UgV2ViS2l0IHsKLQotUmVzb3VyY2VFcnJvciBwbGF0Zm9ybURv
d25sb2FkTmV0d29ya0Vycm9yKGludCBlcnJvckNvZGUsIGNvbnN0IFVSTCYgZmFpbGluZ1VSTCwg
Y29uc3QgU3RyaW5nJiBsb2NhbGl6ZWREZXNjcmlwdGlvbikKLXsKLSAgICByZXR1cm4gZG93bmxv
YWROZXR3b3JrRXJyb3IoUmVzb3VyY2VFcnJvcihlcnJvckRvbWFpbkRvd25sb2FkLCBlcnJvckNv
ZGUsIGZhaWxpbmdVUkwsIGxvY2FsaXplZERlc2NyaXB0aW9uKSk7Ci19Ci0KLVJlc291cmNlRXJy
b3IgcGxhdGZvcm1Eb3dubG9hZERlc3RpbmF0aW9uRXJyb3IoY29uc3QgUmVzb3VyY2VSZXNwb25z
ZSYgcmVzcG9uc2UsIGNvbnN0IFN0cmluZyYgbWVzc2FnZSkKLXsKLSAgICByZXR1cm4gZG93bmxv
YWREZXN0aW5hdGlvbkVycm9yKHJlc3BvbnNlLCBtZXNzYWdlKTsKLX0KLQotfSAvLyBuYW1lc3Bh
Y2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9Eb3du
bG9hZHMvZ3RrL0Rvd25sb2FkU291cEVycm9yc0d0ay5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9OZXR3
b3JrUHJvY2Vzcy9Eb3dubG9hZHMvZ3RrL0Rvd25sb2FkU291cEVycm9yc0d0ay5jcHAKZGVsZXRl
ZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGJhMmU3YjQ1NmE0MTVmMTdkNTk2NTMwMDFiYmRmYWMw
YmUyODAzNDIuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEv
U291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvRG93bmxvYWRzL2d0ay9Eb3dubG9hZFNvdXBF
cnJvcnNHdGsuY3BwCisrKyAvZGV2L251bGwKQEAgLTEsNDYgKzAsMCBAQAotLyoKLSAqIENvcHly
aWdodCAoQykgMjAxMiBJbnRlbCBDb3Jwb3JhdGlvbi4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAq
Ci0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0g
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXBy
b2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1
dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5E
IElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCi0gKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFRIRSBJTVBM
SUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExF
IElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwotICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgotICogQ09OU0VRVUVO
VElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQg
T0YKLSAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBP
UiBQUk9GSVRTOyBPUiBCVVNJTkVTUwotICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KLSAqIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpCi0gKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GCi0gKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
Ci0gKi8KLQotI2luY2x1ZGUgImNvbmZpZy5oIgotI2luY2x1ZGUgIkRvd25sb2FkU291cEVycm9y
cy5oIgotCi0jaW5jbHVkZSA8V2ViQ29yZS9FcnJvcnNHdGsuaD4KLSNpbmNsdWRlIDxXZWJDb3Jl
L1Jlc291cmNlRXJyb3IuaD4KLQotdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7Ci0KLW5hbWVzcGFj
ZSBXZWJLaXQgewotCi1SZXNvdXJjZUVycm9yIHBsYXRmb3JtRG93bmxvYWROZXR3b3JrRXJyb3Io
aW50IGVycm9yQ29kZSwgY29uc3QgVVJMJiBmYWlsaW5nVVJMLCBjb25zdCBTdHJpbmcmIGxvY2Fs
aXplZERlc2NyaXB0aW9uKQotewotICAgIHJldHVybiBkb3dubG9hZE5ldHdvcmtFcnJvcihSZXNv
dXJjZUVycm9yKGVycm9yRG9tYWluRG93bmxvYWQsIGVycm9yQ29kZSwgZmFpbGluZ1VSTCwgbG9j
YWxpemVkRGVzY3JpcHRpb24pKTsKLX0KLQotUmVzb3VyY2VFcnJvciBwbGF0Zm9ybURvd25sb2Fk
RGVzdGluYXRpb25FcnJvcihjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiByZXNwb25zZSwgY29uc3Qg
U3RyaW5nJiBtZXNzYWdlKQotewotICAgIHJldHVybiBkb3dubG9hZERlc3RpbmF0aW9uRXJyb3Io
cmVzcG9uc2UsIG1lc3NhZ2UpOwotfQotCi19IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL0Rvd25sb2Fkcy9zb3VwL0Rvd25sb2Fk
U291cEVycm9ycy5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9Eb3dubG9hZHMv
c291cC9Eb3dubG9hZFNvdXBFcnJvcnMuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmFlNWFmOTJkMzMxMjJlMTRh
OTFiNzkzODM3ZDM4YzE2YTEzZjFjMjMKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0
Mi9OZXR3b3JrUHJvY2Vzcy9Eb3dubG9hZHMvc291cC9Eb3dubG9hZFNvdXBFcnJvcnMuY3BwCkBA
IC0wLDAgKzEsNDcgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTIgSW50ZWwgQ29ycG9yYXRp
b24uIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
KyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwor
ICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJ
TElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJ
TUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAq
IEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUws
IEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNF
UlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElO
VEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9V
VCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIK
KyNpbmNsdWRlICJEb3dubG9hZFNvdXBFcnJvcnMuaCIKKworI2luY2x1ZGUgPFdlYkNvcmUvRXJy
b3JzLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9FcnJvcnNVbml4Lmg+CisjaW5jbHVkZSA8V2ViQ29y
ZS9SZXNvdXJjZUVycm9yLmg+CisKK3VzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOworCituYW1lc3Bh
Y2UgV2ViS2l0IHsKKworUmVzb3VyY2VFcnJvciBwbGF0Zm9ybURvd25sb2FkTmV0d29ya0Vycm9y
KGludCBlcnJvckNvZGUsIGNvbnN0IFVSTCYgZmFpbGluZ1VSTCwgY29uc3QgU3RyaW5nJiBsb2Nh
bGl6ZWREZXNjcmlwdGlvbikKK3sKKyAgICByZXR1cm4gZG93bmxvYWROZXR3b3JrRXJyb3IoUmVz
b3VyY2VFcnJvcihlcnJvckRvbWFpbkRvd25sb2FkLCBlcnJvckNvZGUsIGZhaWxpbmdVUkwsIGxv
Y2FsaXplZERlc2NyaXB0aW9uKSk7Cit9CisKK1Jlc291cmNlRXJyb3IgcGxhdGZvcm1Eb3dubG9h
ZERlc3RpbmF0aW9uRXJyb3IoY29uc3QgUmVzb3VyY2VSZXNwb25zZSYgcmVzcG9uc2UsIGNvbnN0
IFN0cmluZyYgbWVzc2FnZSkKK3sKKyAgICByZXR1cm4gZG93bmxvYWREZXN0aW5hdGlvbkVycm9y
KHJlc3BvbnNlLCBtZXNzYWdlKTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrTG9hZC5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrTG9hZC5jcHAKaW5kZXggYjliZjFkYmE2
MGU4ODYxYWIwODk2YjBjMGY0N2E0MzhlODIyZmUzOS4uY2NjMWU2ZTQxZWJjOWY3MDMwZGY3YTQ3
NWM2OWM4ZDY3MWUyYjNkMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nl
c3MvTmV0d29ya0xvYWQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL05l
dHdvcmtMb2FkLmNwcApAQCAtMzAsNyArMzAsNyBAQAogI2luY2x1ZGUgIkF1dGhlbnRpY2F0aW9u
TWFuYWdlci5oIgogI2luY2x1ZGUgIk5ldHdvcmtQcm9jZXNzLmgiCiAjaW5jbHVkZSAiU2Vzc2lv
blRyYWNrZXIuaCIKLSNpbmNsdWRlICJXZWJFcnJvcnMuaCIKKyNpbmNsdWRlIDxXZWJDb3JlL0Vy
cm9ycy5oPgogI2luY2x1ZGUgPFdlYkNvcmUvTm90SW1wbGVtZW50ZWQuaD4KICNpbmNsdWRlIDxX
ZWJDb3JlL1Jlc291cmNlSGFuZGxlLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9TZXNzaW9uSUQuaD4K
QEAgLTQxMSwxNCArNDExLDE0IEBAIHZvaWQgTmV0d29ya0xvYWQ6Ondhc0Jsb2NrZWQoUmVzb3Vy
Y2VIYW5kbGUqIGhhbmRsZSkKIHsKICAgICBBU1NFUlRfVU5VU0VEKGhhbmRsZSwgaGFuZGxlID09
IG1faGFuZGxlKTsKIAotICAgIGRpZEZhaWwoaGFuZGxlLCBXZWJLaXQ6OmJsb2NrZWRFcnJvciht
X2N1cnJlbnRSZXF1ZXN0KSk7CisgICAgZGlkRmFpbChoYW5kbGUsIGJsb2NrZWRFcnJvcihtX2N1
cnJlbnRSZXF1ZXN0KSk7CiB9CiAKIHZvaWQgTmV0d29ya0xvYWQ6OmNhbm5vdFNob3dVUkwoUmVz
b3VyY2VIYW5kbGUqIGhhbmRsZSkKIHsKICAgICBBU1NFUlRfVU5VU0VEKGhhbmRsZSwgaGFuZGxl
ID09IG1faGFuZGxlKTsKIAotICAgIGRpZEZhaWwoaGFuZGxlLCBXZWJLaXQ6OmNhbm5vdFNob3dV
UkxFcnJvcihtX2N1cnJlbnRSZXF1ZXN0KSk7CisgICAgZGlkRmFpbChoYW5kbGUsIGNhbm5vdFNo
b3dVUkxFcnJvcihtX2N1cnJlbnRSZXF1ZXN0KSk7CiB9CiAKIGJvb2wgTmV0d29ya0xvYWQ6OnNo
b3VsZFVzZUNyZWRlbnRpYWxTdG9yYWdlKFJlc291cmNlSGFuZGxlKiBoYW5kbGUpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9tYWMvUmVtb3RlTmV0d29ya2luZ0Nv
bnRleHQubW0gYi9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9tYWMvUmVtb3RlTmV0d29y
a2luZ0NvbnRleHQubW0KaW5kZXggMWQ2YTJhYzBkMzljZDI1NzE1N2QyZGI1YzU0OGViMmI0ZDZj
YjhmYS4uOGQwNGRmN2Y3YTA2YjQ2NTk1Y2E1ZGViMThkOWJhMzVkMzU2YWViYyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvbWFjL1JlbW90ZU5ldHdvcmtpbmdDb250
ZXh0Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL21hYy9SZW1vdGVOZXR3
b3JraW5nQ29udGV4dC5tbQpAQCAtMzAsNyArMzAsNyBAQAogI2ltcG9ydCAiTmV0d29ya1Byb2Nl
c3MuaCIKICNpbXBvcnQgIk5ldHdvcmtTZXNzaW9uLmgiCiAjaW1wb3J0ICJTZXNzaW9uVHJhY2tl
ci5oIgotI2ltcG9ydCAiV2ViRXJyb3JzLmgiCisjaW1wb3J0IDxXZWJDb3JlL0Vycm9ycy5oPgog
I2ltcG9ydCA8V2ViQ29yZS9SZXNvdXJjZUVycm9yLmg+CiAjaW1wb3J0IDxXZWJLaXRTeXN0ZW1J
bnRlcmZhY2UuaD4KICNpbXBvcnQgPHd0Zi9NYWluVGhyZWFkLmg+CkBAIC03Nyw3ICs3Nyw3IEBA
IFN0cmluZyBSZW1vdGVOZXR3b3JraW5nQ29udGV4dDo6c291cmNlQXBwbGljYXRpb25JZGVudGlm
aWVyKCkgY29uc3QKIAogUmVzb3VyY2VFcnJvciBSZW1vdGVOZXR3b3JraW5nQ29udGV4dDo6Ymxv
Y2tlZEVycm9yKGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCkgY29uc3QKIHsKLSAgICBy
ZXR1cm4gV2ViS2l0OjpibG9ja2VkRXJyb3IocmVxdWVzdCk7CisgICAgcmV0dXJuIFdlYkNvcmU6
OmJsb2NrZWRFcnJvcihyZXF1ZXN0KTsKIH0KIAogdm9pZCBSZW1vdGVOZXR3b3JraW5nQ29udGV4
dDo6ZW5zdXJlUHJpdmF0ZUJyb3dzaW5nU2Vzc2lvbihTZXNzaW9uSUQgc2Vzc2lvbklEKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdDIvUGxhdGZvcm1FZmwuY21ha2UgYi9Tb3VyY2UvV2ViS2l0
Mi9QbGF0Zm9ybUVmbC5jbWFrZQppbmRleCAyNDIwODFjOTM2MGU2MDE4MDg5YmFlZThhYzg0ZWQw
NjEzOWZiNGVmLi5hOTRlZDYzYTg0YTIyMTgzNDQ1NTNjZTgyOGVhMjVjMTAxNTU5Y2QyIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybUVmbC5jbWFrZQorKysgYi9Tb3VyY2UvV2Vi
S2l0Mi9QbGF0Zm9ybUVmbC5jbWFrZQpAQCAtNCw4ICs0LDcgQEAgbGlzdChBUFBFTkQgV2ViS2l0
Ml9TT1VSQ0VTCiAgICAgTmV0d29ya1Byb2Nlc3MvQ3VzdG9tUHJvdG9jb2xzL3NvdXAvQ3VzdG9t
UHJvdG9jb2xNYW5hZ2VySW1wbC5jcHAKICAgICBOZXR3b3JrUHJvY2Vzcy9DdXN0b21Qcm90b2Nv
bHMvc291cC9DdXN0b21Qcm90b2NvbE1hbmFnZXJTb3VwLmNwcAogCi0gICAgTmV0d29ya1Byb2Nl
c3MvRG93bmxvYWRzL2VmbC9Eb3dubG9hZFNvdXBFcnJvcnNFZmwuY3BwCi0KKyAgICBOZXR3b3Jr
UHJvY2Vzcy9Eb3dubG9hZHMvc291cC9Eb3dubG9hZFNvdXBFcnJvcnMuY3BwCiAgICAgTmV0d29y
a1Byb2Nlc3MvRG93bmxvYWRzL3NvdXAvRG93bmxvYWRTb3VwLmNwcAogCiAgICAgTmV0d29ya1By
b2Nlc3MvZWZsL05ldHdvcmtQcm9jZXNzTWFpbkVmbC5jcHAKQEAgLTE5MSw3ICsxOTAsNiBAQCBs
aXN0KEFQUEVORCBXZWJLaXQyX1NPVVJDRVMKIAogICAgIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBv
cnQvZWZsL1dlYkNvbnRleHRNZW51Q2xpZW50RWZsLmNwcAogICAgIFdlYlByb2Nlc3MvV2ViQ29y
ZVN1cHBvcnQvZWZsL1dlYkVkaXRvckNsaWVudEVmbC5jcHAKLSAgICBXZWJQcm9jZXNzL1dlYkNv
cmVTdXBwb3J0L2VmbC9XZWJFcnJvcnNFZmwuY3BwCiAgICAgV2ViUHJvY2Vzcy9XZWJDb3JlU3Vw
cG9ydC9lZmwvV2ViUG9wdXBNZW51RWZsLmNwcAogCiAgICAgV2ViUHJvY2Vzcy9XZWJDb3JlU3Vw
cG9ydC9zb3VwL1dlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQuY3BwCkBAIC0yMzEsNiArMjI5LDcg
QEAgbGlzdChBUFBFTkQgV2ViS2l0Ml9JTkNMVURFX0RJUkVDVE9SSUVTCiAgICAgIiR7V0VCQ09S
RV9ESVJ9L3BsYXRmb3JtL2dyYXBoaWNzL3gxMSIKICAgICAiJHtXRUJDT1JFX0RJUn0vcGxhdGZv
cm0vbmV0d29yay9zb3VwIgogICAgICIke1dFQkNPUkVfRElSfS9wbGF0Zm9ybS90ZXh0L2VuY2hh
bnQiCisgICAgIiR7V0VCQ09SRV9ESVJ9L3BsYXRmb3JtL3VuaXgiCiAgICAgIiR7V0VCS0lUMl9E
SVJ9L0RhdGFiYXNlUHJvY2Vzcy91bml4IgogICAgICIke1dFQktJVDJfRElSfS9OZXR3b3JrUHJv
Y2Vzcy9DdXN0b21Qcm90b2NvbHMvc291cCIKICAgICAiJHtXRUJLSVQyX0RJUn0vTmV0d29ya1By
b2Nlc3MvRG93bmxvYWRzL3NvdXAiCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9y
bUdUSy5jbWFrZSBiL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtR1RLLmNtYWtlCmluZGV4IGFjMDJl
NGM2NTUzNWNlY2FkYjg4YzUzY2MwODgyNjU5OGI1YjE1MjIuLjEwOGEyMDM1YWFjOWMyOGFiMDkx
YTAxZDgzNzE3NGM4MmMxYjE1NDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3Jt
R1RLLmNtYWtlCisrKyBiL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtR1RLLmNtYWtlCkBAIC0zMCw5
ICszMCw4IEBAIGxpc3QoQVBQRU5EIFdlYktpdDJfU09VUkNFUwogICAgIE5ldHdvcmtQcm9jZXNz
L0N1c3RvbVByb3RvY29scy9zb3VwL0N1c3RvbVByb3RvY29sTWFuYWdlckltcGwuY3BwCiAgICAg
TmV0d29ya1Byb2Nlc3MvQ3VzdG9tUHJvdG9jb2xzL3NvdXAvQ3VzdG9tUHJvdG9jb2xNYW5hZ2Vy
U291cC5jcHAKIAotICAgIE5ldHdvcmtQcm9jZXNzL0Rvd25sb2Fkcy9ndGsvRG93bmxvYWRTb3Vw
RXJyb3JzR3RrLmNwcAotCiAgICAgTmV0d29ya1Byb2Nlc3MvRG93bmxvYWRzL3NvdXAvRG93bmxv
YWRTb3VwLmNwcAorICAgIE5ldHdvcmtQcm9jZXNzL0Rvd25sb2Fkcy9zb3VwL0Rvd25sb2FkU291
cEVycm9ycy5jcHAKIAogICAgIE5ldHdvcmtQcm9jZXNzL2NhY2hlL05ldHdvcmtDYWNoZURhdGFT
b3VwLmNwcAogICAgIE5ldHdvcmtQcm9jZXNzL2NhY2hlL05ldHdvcmtDYWNoZUlPQ2hhbm5lbFNv
dXAuY3BwCkBAIC0zMzQsNyArMzMzLDYgQEAgbGlzdChBUFBFTkQgV2ViS2l0Ml9TT1VSQ0VTCiAg
ICAgV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9ndGsvV2ViQ29udGV4dE1lbnVDbGllbnRHdGsu
Y3BwCiAgICAgV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9ndGsvV2ViRHJhZ0NsaWVudEd0ay5j
cHAKICAgICBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L2d0ay9XZWJFZGl0b3JDbGllbnRHdGsu
Y3BwCi0gICAgV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9ndGsvV2ViRXJyb3JzR3RrLmNwcAog
ICAgIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvZ3RrL1dlYlBvcHVwTWVudUd0ay5jcHAKIAog
ICAgIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvc291cC9XZWJGcmFtZU5ldHdvcmtpbmdDb250
ZXh0LmNwcApAQCAtNDkwLDYgKzQ4OCw3IEBAIGxpc3QoQVBQRU5EIFdlYktpdDJfSU5DTFVERV9E
SVJFQ1RPUklFUwogICAgICIke1dFQkNPUkVfRElSfS9wbGF0Zm9ybS9ncmFwaGljcy94MTEiCiAg
ICAgIiR7V0VCQ09SRV9ESVJ9L3BsYXRmb3JtL25ldHdvcmsvc291cCIKICAgICAiJHtXRUJDT1JF
X0RJUn0vcGxhdGZvcm0vdGV4dC9lbmNoYW50IgorICAgICIke1dFQkNPUkVfRElSfS9wbGF0Zm9y
bS91bml4IgogICAgICIke1dFQktJVDJfRElSfS9EYXRhYmFzZVByb2Nlc3MvdW5peCIKICAgICAi
JHtXRUJLSVQyX0RJUn0vTmV0d29ya1Byb2Nlc3MvQ3VzdG9tUHJvdG9jb2xzL3NvdXAiCiAgICAg
IiR7V0VCS0lUMl9ESVJ9L05ldHdvcmtQcm9jZXNzL0Rvd25sb2Fkcy9zb3VwIgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdDIvUGxhdGZvcm1NYWMuY21ha2UgYi9Tb3VyY2UvV2ViS2l0Mi9QbGF0
Zm9ybU1hYy5jbWFrZQppbmRleCBlZjM3NmUzODE0ZGY4NzJhYjY2YjIxODIyYTM1NmM5MDBlMzk3
MDg5Li42Yjk0ZmZjMDZmY2EyZGZmNGNmNWJjOWZjMTRmZjRhOGNmN2MyNDhkIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybU1hYy5jbWFrZQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9Q
bGF0Zm9ybU1hYy5jbWFrZQpAQCAtMzI2LDcgKzMyNiw2IEBAIGxpc3QoQVBQRU5EIFdlYktpdDJf
U09VUkNFUwogICAgIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvbWFjL1dlYkNvbnRleHRNZW51
Q2xpZW50TWFjLm1tCiAgICAgV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9tYWMvV2ViRHJhZ0Ns
aWVudE1hYy5tbQogICAgIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvbWFjL1dlYkVkaXRvckNs
aWVudE1hYy5tbQotICAgIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvbWFjL1dlYkVycm9yc01h
Yy5tbQogICAgIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvbWFjL1dlYkZyYW1lTmV0d29ya2lu
Z0NvbnRleHQubW0KICAgICBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L21hYy9XZWJQb3B1cE1l
bnVNYWMubW0KICAgICBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L21hYy9XZWJTeXN0ZW1JbnRl
cmZhY2UubW0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9BUEkvQVBJRXJyb3Iu
Y3BwIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL0FQSS9BUElFcnJvci5jcHAKaW5kZXggODZhMWRi
MGIwMzc0ZDM2ZjRhM2U5MTMxNGQ1OTA4ODM2ZTViZGEyYS4uOWI5YjY3NWZiNzI0OTY5Yzk1MWUw
ZjUyZmE2OWZhODM1ZjRmY2Y5YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVkL0FQ
SS9BUElFcnJvci5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL0FQSS9BUElFcnJvci5j
cHAKQEAgLTI3LDYgKzI3LDcgQEAKICNpbmNsdWRlICJBUElFcnJvci5oIgogCiAjaW5jbHVkZSAi
V2ViQ29yZUFyZ3VtZW50Q29kZXJzLmgiCisjaW5jbHVkZSA8V2ViQ29yZS9FcnJvcnMuaD4KICNp
bmNsdWRlIDx3dGYvTmV2ZXJEZXN0cm95ZWQuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJp
bmcuaD4KIApAQCAtMzQsOCArMzUsNyBAQCBuYW1lc3BhY2UgQVBJIHsKIAogY29uc3QgV1RGOjpT
dHJpbmcmIEVycm9yOjp3ZWJLaXRFcnJvckRvbWFpbigpCiB7Ci0gICAgc3RhdGljIE5ldmVyRGVz
dHJveWVkPFdURjo6U3RyaW5nPiB3ZWJLaXRFcnJvckRvbWFpblN0cmluZyhBU0NJSUxpdGVyYWwo
IldlYktpdEVycm9yRG9tYWluIikpOwotICAgIHJldHVybiB3ZWJLaXRFcnJvckRvbWFpblN0cmlu
ZzsKKyAgICByZXR1cm4gV2ViQ29yZTo6d2ViS2l0RXJyb3JEb21haW4oKTsKIH0KIAogdm9pZCBF
cnJvcjo6ZW5jb2RlKElQQzo6QXJndW1lbnRFbmNvZGVyJiBlbmNvZGVyKSBjb25zdApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX2Vycm9yLmNwcCBiL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a19lcnJvci5jcHAKaW5kZXggZDAwMWM1
NTc5OTI3YWMwOTg4MTA5N2UxYzk2MDU5ZTdiNDJiMTlmOC4uMDQxZjNmMjBmOWZlYzU3NzY2NTIw
N2JhNTk2MTc5MmFjN2JkMjk1MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L0FQSS9lZmwvZXdrX2Vycm9yLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJ
L2VmbC9ld2tfZXJyb3IuY3BwCkBAIC0yNiw3ICsyNiw3IEBACiAjaW5jbHVkZSAiY29uZmlnLmgi
CiAjaW5jbHVkZSAiZXdrX2Vycm9yLmgiCiAKLSNpbmNsdWRlICJFcnJvcnNFZmwuaCIKKyNpbmNs
dWRlICJFcnJvcnNVbml4LmgiCiAjaW5jbHVkZSAiV0tFcnJvclJlZi5oIgogI2luY2x1ZGUgIldL
U3RyaW5nLmgiCiAjaW5jbHVkZSAiV0tVUkwuaCIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdERvd25sb2FkLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9BUEkvZ3RrL1dlYktpdERvd25sb2FkLmNwcAppbmRleCA4NmMwNWIyZjI5N2EwNWI5
MWJlZjY4MWI0MWFlZGUwMTVlMzM1ODM1Li5hOWUzNTZiZTdkNGQ2NTQ5OWY3NDljODYyYjE1ZDdk
ZWZhZTEzMzY2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9X
ZWJLaXREb3dubG9hZC5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsv
V2ViS2l0RG93bmxvYWQuY3BwCkBAIC0yNiw3ICsyNiw4IEBACiAjaW5jbHVkZSAiV2ViS2l0UHJp
dmF0ZS5oIgogI2luY2x1ZGUgIldlYktpdFVSSVJlcXVlc3RQcml2YXRlLmgiCiAjaW5jbHVkZSAi
V2ViS2l0VVJJUmVzcG9uc2VQcml2YXRlLmgiCi0jaW5jbHVkZSA8V2ViQ29yZS9FcnJvcnNHdGsu
aD4KKyNpbmNsdWRlIDxXZWJDb3JlL0Vycm9ycy5oPgorI2luY2x1ZGUgPFdlYkNvcmUvRXJyb3Jz
VW5peC5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUmVzb3VyY2VSZXNwb25zZS5oPgogI2luY2x1ZGUg
PGdsaWIvZ2kxOG4tbGliLmg+CiAjaW5jbHVkZSA8d3RmL2dsaWIvR1JlZlB0ci5oPgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0RXJyb3IuY3BwIGIv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0RXJyb3IuY3BwCmluZGV4IDc0
MTllZTcyMWEwZmU4NmFiYzM2NDM2ZDI0ZWMyNWU0NjQyM2U4Y2YuLmIwODM0MzZhMThkOTE3NGZm
ZjNlNjdjZWQ4OGZlNDBlMzhiNDFhN2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9BUEkvZ3RrL1dlYktpdEVycm9yLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvQVBJL2d0ay9XZWJLaXRFcnJvci5jcHAKQEAgLTIyLDcgKzIyLDcgQEAKICNpbmNsdWRlICJX
ZWJLaXRFcnJvci5oIgogCiAjaW5jbHVkZSAiV2ViS2l0UHJpdmF0ZS5oIgotI2luY2x1ZGUgPFdl
YkNvcmUvRXJyb3JzR3RrLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9FcnJvcnNVbml4Lmg+CiAKIHVz
aW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvQVBJL2d0ay9XZWJLaXRQcml2YXRlLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9BUEkvZ3RrL1dlYktpdFByaXZhdGUuY3BwCmluZGV4IDJiMWUxMjQ5NzZiYTRkZGM2NzE5MTcy
NTBlOTc4Mjk4MDE0NWJhY2EuLjkxOTdiYzc3MmNjOGVlODE5OGUwOTFlZWNkZDBkOGIxMmNjMGYy
N2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFBy
aXZhdGUuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFBy
aXZhdGUuY3BwCkBAIC0yMCw3ICsyMCw3IEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVk
ZSAiV2ViS2l0UHJpdmF0ZS5oIgogCi0jaW5jbHVkZSAiRXJyb3JzR3RrLmgiCisjaW5jbHVkZSAi
RXJyb3JzVW5peC5oIgogI2luY2x1ZGUgIldlYkV2ZW50LmgiCiAjaW5jbHVkZSAiV2ViS2l0RXJy
b3IuaCIKICNpbmNsdWRlIDxnZGsvZ2RrLmg+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvTmV0d29yay9DdXN0b21Qcm90b2NvbHMvc291cC9XZWJTb3VwQ3VzdG9tUHJvdG9j
b2xSZXF1ZXN0TWFuYWdlci5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvTmV0d29yay9D
dXN0b21Qcm90b2NvbHMvc291cC9XZWJTb3VwQ3VzdG9tUHJvdG9jb2xSZXF1ZXN0TWFuYWdlci5j
cHAKaW5kZXggYjY1NWU0MzUxM2Q1ZTQxM2UxYjhmNWM2MjJkODhhMzk2NWIwNmE0Yi4uYTAzNWI0
Nzg0NjRkYjQxMTY4MGMxYjBjMzg5NDg3OWNlY2YzNTZhMiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL05ldHdvcmsvQ3VzdG9tUHJvdG9jb2xzL3NvdXAvV2ViU291cEN1c3Rv
bVByb3RvY29sUmVxdWVzdE1hbmFnZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9OZXR3b3JrL0N1c3RvbVByb3RvY29scy9zb3VwL1dlYlNvdXBDdXN0b21Qcm90b2NvbFJlcXVl
c3RNYW5hZ2VyLmNwcApAQCAtMjMsMTYgKzIzLDEyIEBACiAjaW5jbHVkZSAiQVBJRGF0YS5oIgog
I2luY2x1ZGUgIkN1c3RvbVByb3RvY29sTWFuYWdlck1lc3NhZ2VzLmgiCiAjaW5jbHVkZSAiV2Vi
UHJvY2Vzc1Bvb2wuaCIKKyNpbmNsdWRlIDxXZWJDb3JlL0Vycm9ycy5oPgorI2luY2x1ZGUgPFdl
YkNvcmUvRXJyb3JzVW5peC5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUmVzb3VyY2VFcnJvci5oPgog
I2luY2x1ZGUgPFdlYkNvcmUvUmVzb3VyY2VSZXF1ZXN0Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9S
ZXNvdXJjZVJlc3BvbnNlLmg+CiAKLSNpZiBQTEFURk9STShHVEspCi0jaW5jbHVkZSA8V2ViQ29y
ZS9FcnJvcnNHdGsuaD4KLSNlbGlmIFBMQVRGT1JNKEVGTCkKLSNpbmNsdWRlIDxXZWJDb3JlL0Vy
cm9yc0VmbC5oPgotI2VuZGlmCi0KIG5hbWVzcGFjZSBXZWJLaXQgewogCiBjb25zdCBjaGFyKiBX
ZWJTb3VwQ3VzdG9tUHJvdG9jb2xSZXF1ZXN0TWFuYWdlcjo6c3VwcGxlbWVudE5hbWUoKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViS2l0Mi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
IGIvU291cmNlL1dlYktpdDIvV2ViS2l0Mi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4
IDI5ZTg3YzJlNTNhZGIzOGVjOWYwMzRhODAzZDQ1YWY2OGQ5Y2JjMDMuLmQ5NjNkYTk3ODY1NGEy
Y2U0NTkxNGY2M2EyNzdkODFkZmNiYzY4NTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dl
YktpdDIueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJL
aXQyLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTIyMyw3ICsyMjMsNiBAQAogCQkxQTNF
RUQwRjE2MUE1MzU0MDBBRUI0RjUgLyogTWVzc2FnZVJlY2VpdmVyTWFwLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxQTNFRUQwRDE2MUE1MzUzMDBBRUI0
RjUgLyogTWVzc2FnZVJlY2VpdmVyTWFwLmggKi87IH07CiAJCTFBM0VFRDEyMTYxQTUzRDYwMEFF
QjRGNSAvKiBNZXNzYWdlUmVjZWl2ZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDFBM0VFRDExMTYxQTUzRDYwMEFFQjRGNSAvKiBNZXNzYWdlUmVjZWl2
ZXIuaCAqLzsgfTsKIAkJMUE0MjJGOEIxOEIyOUI1NDAwRDhDRDk2IC8qIFdLSGlzdG9yeURlbGVn
YXRlUHJpdmF0ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gMUE0MjJGOEExOEIyOUI1NDAwRDhDRDk2IC8qIFdLSGlzdG9yeURlbGVnYXRlUHJpdmF0ZS5o
ICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07Ci0JCTFBNDMz
RjBEMTEzQzUzREQwMEZBQ0RFOSAvKiBXZWJFcnJvcnMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFBNDMzRjBDMTEzQzUzREQwMEZBQ0RFOSAvKiBXZWJF
cnJvcnMuaCAqLzsgfTsKIAkJMUE0M0U4MjkxODhGM0NEQzAwOUU0RDMwIC8qIF9XS1Byb2Nlc3NQ
b29sQ29uZmlndXJhdGlvbi5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDFBNDNFODI3MTg4RjNDREMwMDlFNEQzMCAvKiBfV0tQcm9jZXNzUG9vbENvbmZp
Z3VyYXRpb24ubW0gKi87IH07CiAJCTFBNDNFODJBMTg4RjNDREMwMDlFNEQzMCAvKiBfV0tQcm9j
ZXNzUG9vbENvbmZpZ3VyYXRpb24uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDFBNDNFODI4MTg4RjNDREMwMDlFNEQzMCAvKiBfV0tQcm9jZXNzUG9vbENv
bmZpZ3VyYXRpb24uaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9
OyB9OwogCQkxQTQ0NUI5RjE4NEQ1RkI1MDA0QjM0MTQgLyogV0tDb250ZXh0SW5qZWN0ZWRCdW5k
bGVDbGllbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDFBNDQ1QjlFMTg0RDVGQjUwMDRCMzQxNCAvKiBXS0NvbnRleHRJbmplY3RlZEJ1bmRsZUNsaWVu
dC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CkBAIC0x
MzQ2LDcgKzEzNDUsNiBAQAogCQlCQzExMUE1RjExMkY0RkJCMDAzMzdCQUIgLyogV2ViRnJhbWVM
b2FkZXJDbGllbnQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gQkMxMTFBNTgxMTJGNEZCQjAwMzM3QkFCIC8qIFdlYkZyYW1lTG9hZGVyQ2xpZW50LmNw
cCAqLzsgfTsKIAkJQkMxMTFBNjAxMTJGNEZCQjAwMzM3QkFCIC8qIFdlYkluc3BlY3RvckNsaWVu
dC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQzEx
MUE1OTExMkY0RkJCMDAzMzdCQUIgLyogV2ViSW5zcGVjdG9yQ2xpZW50LmNwcCAqLzsgfTsKIAkJ
QkMxMTFBREQxMTJGNUI5MzAwMzM3QkFCIC8qIFdlYkZyYW1lLmNwcCBpbiBTb3VyY2VzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDMTExQURDMTEyRjVCOTMwMDMzN0JBQiAv
KiBXZWJGcmFtZS5jcHAgKi87IH07Ci0JCUJDMTExQUUwMTEyRjVCQzIwMDMzN0JBQiAvKiBXZWJF
cnJvcnNNYWMubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSBCQzExMUFERjExMkY1QkMyMDAzMzdCQUIgLyogV2ViRXJyb3JzTWFjLm1tICovOyB9OwogCQlC
QzExMUFFNDExMkY1QzI2MDAzMzdCQUIgLyogV2ViUHJvY2Vzcy5jcHAgaW4gU291cmNlcyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQzExMUFFMzExMkY1QzI2MDAzMzdCQUIg
LyogV2ViUHJvY2Vzcy5jcHAgKi87IH07CiAJCUJDMTExQjA5MTEyRjVFM0MwMDMzN0JBQiAvKiBS
ZXNwb25zaXZlbmVzc1RpbWVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IEJDMTExQjA4MTEyRjVFM0MwMDMzN0JBQiAvKiBSZXNwb25zaXZlbmVzc1Rp
bWVyLmNwcCAqLzsgfTsKIAkJQkMxMTFCMEUxMTJGNUU0RjAwMzM3QkFCIC8qIFdlYkZyYW1lUHJv
eHkuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkMx
MTFCMEExMTJGNUU0RjAwMzM3QkFCIC8qIFdlYkZyYW1lUHJveHkuY3BwICovOyB9OwpAQCAtMjE3
Nyw3ICsyMTc1LDYgQEAKIAkJMUEzRUVEMEQxNjFBNTM1MzAwQUVCNEY1IC8qIE1lc3NhZ2VSZWNl
aXZlck1hcC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBNZXNzYWdlUmVjZWl2
ZXJNYXAuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMUEzRUVEMTExNjFBNTNENjAw
QUVCNEY1IC8qIE1lc3NhZ2VSZWNlaXZlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBNZXNzYWdlUmVjZWl2ZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMUE0
MjJGOEExOEIyOUI1NDAwRDhDRDk2IC8qIFdLSGlzdG9yeURlbGVnYXRlUHJpdmF0ZS5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXS0hpc3RvcnlEZWxlZ2F0ZVByaXZhdGUuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJMUE0MzNGMEMxMTNDNTNERDAwRkFDREU5IC8q
IFdlYkVycm9ycy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJFcnJvcnMu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMUE0M0U4MjcxODhGM0NEQzAwOUU0RDMw
IC8qIF9XS1Byb2Nlc3NQb29sQ29uZmlndXJhdGlvbi5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLm9iamNwcDsgcGF0aCA9IF9XS1Byb2Nlc3NQb29sQ29uZmlndXJhdGlvbi5tbTsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMUE0M0U4MjgxODhGM0NEQzAwOUU0RDMwIC8qIF9XS1By
b2Nlc3NQb29sQ29uZmlndXJhdGlvbi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBfV0tQcm9jZXNzUG9vbENvbmZpZ3VyYXRpb24uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJMUE0NDVCOUUxODRENUZCNTAwNEIzNDE0IC8qIFdLQ29udGV4dEluamVjdGVkQnVuZGxl
Q2xpZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdLQ29udGV4dEluamVj
dGVkQnVuZGxlQ2xpZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0zNDA2LDcg
KzM0MDMsNiBAQAogCQlCQzExMUE1ODExMkY0RkJCMDAzMzdCQUIgLyogV2ViRnJhbWVMb2FkZXJD
bGllbnQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV2ViRnJhbWVM
b2FkZXJDbGllbnQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB3cmFwc0xpbmVzID0gMDsg
fTsKIAkJQkMxMTFBNTkxMTJGNEZCQjAwMzM3QkFCIC8qIFdlYkluc3BlY3RvckNsaWVudC5jcHAg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXZWJJbnNwZWN0b3JDbGllbnQu
Y3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlCQzExMUFEQzExMkY1QjkzMDAzMzdC
QUIgLyogV2ViRnJhbWUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0g
V2ViRnJhbWUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQlCQzExMUFERjExMkY1
QkMyMDAzMzdCQUIgLyogV2ViRXJyb3JzTWFjLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
b2JqY3BwOyBwYXRoID0gV2ViRXJyb3JzTWFjLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQlCQzExMUFFMzExMkY1QzI2MDAzMzdCQUIgLyogV2ViUHJvY2Vzcy5jcHAgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXZWJQcm9jZXNzLmNwcDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJQkMxMTFCMDgxMTJGNUUzQzAwMzM3QkFCIC8qIFJlc3BvbnNpdmVu
ZXNzVGltZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUmVzcG9u
c2l2ZW5lc3NUaW1lci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUJDMTExQjBB
MTEyRjVFNEYwMDMzN0JBQiAvKiBXZWJGcmFtZVByb3h5LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLmNwcDsgcGF0aCA9IFdlYkZyYW1lUHJveHkuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwpAQCAtNTc4MCw3ICs1Nzc2LDYgQEAKIAkJCQlCQzAzMkQ2NjEwRjQzNzhEMDA1OEMx
NUEgLyogV2ViRHJhZ0NsaWVudC5oICovLAogCQkJCUJDMTExQTU3MTEyRjRGQkIwMDMzN0JBQiAv
KiBXZWJFZGl0b3JDbGllbnQuY3BwICovLAogCQkJCUJDMDMyRDY4MTBGNDM3OEQwMDU4QzE1QSAv
KiBXZWJFZGl0b3JDbGllbnQuaCAqLywKLQkJCQkxQTQzM0YwQzExM0M1M0REMDBGQUNERTkgLyog
V2ViRXJyb3JzLmggKi8sCiAJCQkJQkMxMTFBNTgxMTJGNEZCQjAwMzM3QkFCIC8qIFdlYkZyYW1l
TG9hZGVyQ2xpZW50LmNwcCAqLywKIAkJCQlCQzAzMkQ2QTEwRjQzNzhEMDA1OEMxNUEgLyogV2Vi
RnJhbWVMb2FkZXJDbGllbnQuaCAqLywKIAkJCQlCQzFCRTFERjEyRDU0QTQxMDAwNEEyMjggLyog
V2ViR2VvbG9jYXRpb25DbGllbnQuY3BwICovLApAQCAtNjIyNSw3ICs2MjIwLDYgQEAKIAkJCQk1
MTAyMUU5QjEyQjE2Nzg4MDA1QzAzM0MgLyogV2ViQ29udGV4dE1lbnVDbGllbnRNYWMubW0gKi8s
CiAJCQkJQzU1NEZGQTIxMkU0RThFQTAwMkYyMkMwIC8qIFdlYkRyYWdDbGllbnRNYWMubW0gKi8s
CiAJCQkJQzUyMzdGNUYxMjQ0MUNBMzAwNzgwNDcyIC8qIFdlYkVkaXRvckNsaWVudE1hYy5tbSAq
LywKLQkJCQlCQzExMUFERjExMkY1QkMyMDAzMzdCQUIgLyogV2ViRXJyb3JzTWFjLm1tICovLAog
CQkJCTkzOTFGMjgzMTIxQjM4RjUwMEVCRjdFOCAvKiBXZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0
LmggKi8sCiAJCQkJOTM5MUYyODQxMjFCMzhGNTAwRUJGN0U4IC8qIFdlYkZyYW1lTmV0d29ya2lu
Z0NvbnRleHQubW0gKi8sCiAJCQkJQkNDNDNBQzYxMjdCOTlERTAwMzE3RjE2IC8qIFdlYlBvcHVw
TWVudU1hYy5tbSAqLywKQEAgLTc3MDQsNyArNzY5OCw2IEBACiAJCQkJQkMwMzJEN0IxMEY0Mzc4
RDAwNThDMTVBIC8qIFdlYkRyYWdDbGllbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDQTBFRjlG
MTIzMzI2NDIwMDdEM0NGQiAvKiBXZWJFZGl0Q29tbWFuZFByb3h5LmggaW4gSGVhZGVycyAqLywK
IAkJCQlCQzAzMkQ3RDEwRjQzNzhEMDA1OEMxNUEgLyogV2ViRWRpdG9yQ2xpZW50LmggaW4gSGVh
ZGVycyAqLywKLQkJCQkxQTQzM0YwRDExM0M1M0REMDBGQUNERTkgLyogV2ViRXJyb3JzLmggaW4g
SGVhZGVycyAqLywKIAkJCQlCQzAzMkRCOTEwRjQzODBGMDA1OEMxNUEgLyogV2ViRXZlbnQuaCBp
biBIZWFkZXJzICovLAogCQkJCUJDMDMyREJCMTBGNDM4MEYwMDU4QzE1QSAvKiBXZWJFdmVudENv
bnZlcnNpb24uaCBpbiBIZWFkZXJzICovLAogCQkJCUJDMTExQjVEMTEyRjYyOTgwMDMzN0JBQiAv
KiBXZWJFdmVudEZhY3RvcnkuaCBpbiBIZWFkZXJzICovLApAQCAtOTE5MSw3ICs5MTg0LDYgQEAK
IAkJCQlCQzExMUE1RTExMkY0RkJCMDAzMzdCQUIgLyogV2ViRWRpdG9yQ2xpZW50LmNwcCBpbiBT
b3VyY2VzICovLAogCQkJCTJEMjhGM0U2MTg4NUNDQzEwMDRCOUVBRSAvKiBXZWJFZGl0b3JDbGll
bnRJT1MubW0gaW4gU291cmNlcyAqLywKIAkJCQlDNTIzN0Y2MDEyNDQxQ0EzMDA3ODA0NzIgLyog
V2ViRWRpdG9yQ2xpZW50TWFjLm1tIGluIFNvdXJjZXMgKi8sCi0JCQkJQkMxMTFBRTAxMTJGNUJD
MjAwMzM3QkFCIC8qIFdlYkVycm9yc01hYy5tbSBpbiBTb3VyY2VzICovLAogCQkJCUMwMzM3REFF
MTI3QTI0RkUwMDhGRjRGNCAvKiBXZWJFdmVudC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlCQzAz
MkRCQTEwRjQzODBGMDA1OEMxNUEgLyogV2ViRXZlbnRDb252ZXJzaW9uLmNwcCBpbiBTb3VyY2Vz
ICovLAogCQkJCUJDMTExQjVFMTEyRjYyOTgwMDMzN0JBQiAvKiBXZWJFdmVudEZhY3RvcnkubW0g
aW4gU291cmNlcyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvTmV0
d29yay9XZWJMb2FkZXJTdHJhdGVneS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL05l
dHdvcmsvV2ViTG9hZGVyU3RyYXRlZ3kuY3BwCmluZGV4IGZlYTJlNzU1MjJkZjA3NWYzMDNmMDAx
MjFjMDM2MTFlN2RhNzRmYTQuLjkxYmNkZWYzODI0MzRjMjQyYzEwYTkyMjI0ZTA2YWU4NmE5OGIx
M2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvTmV0d29yay9XZWJMb2Fk
ZXJTdHJhdGVneS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9OZXR3b3JrL1dl
YkxvYWRlclN0cmF0ZWd5LmNwcApAQCAtMzMsNyArMzMsNiBAQAogI2luY2x1ZGUgIk5ldHdvcmtS
ZXNvdXJjZUxvYWRQYXJhbWV0ZXJzLmgiCiAjaW5jbHVkZSAiU2Vzc2lvblRyYWNrZXIuaCIKICNp
bmNsdWRlICJXZWJDb3JlQXJndW1lbnRDb2RlcnMuaCIKLSNpbmNsdWRlICJXZWJFcnJvcnMuaCIK
ICNpbmNsdWRlICJXZWJGcmFtZS5oIgogI2luY2x1ZGUgIldlYkZyYW1lTG9hZGVyQ2xpZW50Lmgi
CiAjaW5jbHVkZSAiV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dC5oIgpAQCAtNDQsNiArNDMsNyBA
QAogI2luY2x1ZGUgPFdlYkNvcmUvQ2FjaGVkUmVzb3VyY2UuaD4KICNpbmNsdWRlIDxXZWJDb3Jl
L0RvY3VtZW50Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9Eb2N1bWVudExvYWRlci5oPgorI2luY2x1
ZGUgPFdlYkNvcmUvRXJyb3JzLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9GcmFtZS5oPgogI2luY2x1
ZGUgPFdlYkNvcmUvRnJhbWVMb2FkZXIuaD4KICNpbmNsdWRlIDxXZWJDb3JlL05ldHNjYXBlUGx1
Z0luU3RyZWFtTG9hZGVyLmg+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L05ldHdvcmsvV2ViUmVzb3VyY2VMb2FkZXIuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9OZXR3b3JrL1dlYlJlc291cmNlTG9hZGVyLmNwcAppbmRleCAyOTg1Y2NlZTIxZDdjZDVmZGE5
ZmIyNjBjM2FjMzMyNjRhYzZlZTk3Li5lMmYyYjFhOWRlYmMyMGIxODFiMTRlOTE2NmMwOThiODFi
NjI1NTliIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL05ldHdvcmsvV2Vi
UmVzb3VyY2VMb2FkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvTmV0d29y
ay9XZWJSZXNvdXJjZUxvYWRlci5jcHAKQEAgLTMxLDExICszMSwxMSBAQAogI2luY2x1ZGUgIk5l
dHdvcmtQcm9jZXNzQ29ubmVjdGlvbi5oIgogI2luY2x1ZGUgIk5ldHdvcmtSZXNvdXJjZUxvYWRl
ck1lc3NhZ2VzLmgiCiAjaW5jbHVkZSAiV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmgiCi0jaW5jbHVk
ZSAiV2ViRXJyb3JzLmgiCiAjaW5jbHVkZSAiV2ViUHJvY2Vzcy5oIgogI2luY2x1ZGUgPFdlYkNv
cmUvQXBwbGljYXRpb25DYWNoZUhvc3QuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0NlcnRpZmljYXRl
SW5mby5oPgogI2luY2x1ZGUgPFdlYkNvcmUvRG9jdW1lbnRMb2FkZXIuaD4KKyNpbmNsdWRlIDxX
ZWJDb3JlL0Vycm9ycy5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUmVzb3VyY2VFcnJvci5oPgogI2lu
Y2x1ZGUgPFdlYkNvcmUvUmVzb3VyY2VMb2FkZXIuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1N1YnJl
c291cmNlTG9hZGVyLmg+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dl
YkNvcmVTdXBwb3J0L1dlYkVycm9ycy5oIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJD
b3JlU3VwcG9ydC9XZWJFcnJvcnMuaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNzBh
MjI4YzU4ZjI4YjM5ZDc3ZDc3YzI2OWJlMzYxNDQ0YTk1NjE4YS4uMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dl
YkNvcmVTdXBwb3J0L1dlYkVycm9ycy5oCisrKyAvZGV2L251bGwKQEAgLTEsNTAgKzAsMCBAQAot
LyoKLSAqIENvcHlyaWdodCAoQykgMjAxMCwgMjAxMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAx
LiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAq
ICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBM
RSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwotICogQU5EIEFOWSBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0g
KiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBT
SEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKLSAqIEJFIExJQUJMRSBGT1IgQU5Z
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKLSAq
IENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBS
T0NVUkVNRU5UIE9GCi0gKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVT
RSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKLSAqIElOVEVSUlVQVElPTikgSE9XRVZF
UiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCi0gKiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKQotICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgotICogVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLgotICovCi0KLSNpZm5kZWYgV2ViRXJyb3JzX2gKLSNkZWZpbmUgV2ViRXJyb3Jz
X2gKLQotbmFtZXNwYWNlIFdlYkNvcmUgewotICAgIGNsYXNzIFVSTDsKLSAgICBjbGFzcyBSZXNv
dXJjZUVycm9yOwotICAgIGNsYXNzIFJlc291cmNlUmVxdWVzdDsKLSAgICBjbGFzcyBSZXNvdXJj
ZVJlc3BvbnNlOwotfQotCi1uYW1lc3BhY2UgV2ViS2l0IHsKLQotV2ViQ29yZTo6UmVzb3VyY2VF
cnJvciBjYW5jZWxsZWRFcnJvcihjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmKTsKLVdl
YkNvcmU6OlJlc291cmNlRXJyb3IgYmxvY2tlZEVycm9yKGNvbnN0IFdlYkNvcmU6OlJlc291cmNl
UmVxdWVzdCYpOwotV2ViQ29yZTo6UmVzb3VyY2VFcnJvciBibG9ja2VkQnlDb250ZW50QmxvY2tl
ckVycm9yKGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYpOwotV2ViQ29yZTo6UmVzb3Vy
Y2VFcnJvciBjYW5ub3RTaG93VVJMRXJyb3IoY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0
Jik7Ci1XZWJDb3JlOjpSZXNvdXJjZUVycm9yIGludGVycnVwdGVkRm9yUG9saWN5Q2hhbmdlRXJy
b3IoY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0Jik7Ci1XZWJDb3JlOjpSZXNvdXJjZUVy
cm9yIGNhbm5vdFNob3dNSU1FVHlwZUVycm9yKGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVzcG9u
c2UmKTsKLVdlYkNvcmU6OlJlc291cmNlRXJyb3IgZmlsZURvZXNOb3RFeGlzdEVycm9yKGNvbnN0
IFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UmKTsKLVdlYkNvcmU6OlJlc291cmNlRXJyb3IgcGx1
Z2luV2lsbEhhbmRsZUxvYWRFcnJvcihjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlJik7
Ci1XZWJDb3JlOjpSZXNvdXJjZUVycm9yIGludGVybmFsRXJyb3IoY29uc3QgV2ViQ29yZTo6VVJM
Jik7Ci0KLX0gLy8gbmFtZXNwYWNlIFdlYktpdAotCi0jZW5kaWYgLy8gV2ViRXJyb3JzX2gKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJh
bWVMb2FkZXJDbGllbnQuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3Vw
cG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5jcHAKaW5kZXggNzZhNDI1ZGI4MjI4ZGM5ZjExOTZj
MTc0NGE1YTYwNmRkNWZmY2U3NC4uZTdhZmU0OTRjZGQwYWI2NTY3ZmU3ZjhiYjQ3NTY4NjA4NWI4
ZjljYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9y
dC9XZWJGcmFtZUxvYWRlckNsaWVudC5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5jcHAKQEAgLTQxLDcgKzQxLDYg
QEAKICNpbmNsdWRlICJXZWJCYWNrRm9yd2FyZExpc3RQcm94eS5oIgogI2luY2x1ZGUgIldlYkNv
cmVBcmd1bWVudENvZGVycy5oIgogI2luY2x1ZGUgIldlYkRvY3VtZW50TG9hZGVyLmgiCi0jaW5j
bHVkZSAiV2ViRXJyb3JzLmgiCiAjaW5jbHVkZSAiV2ViRXZlbnQuaCIKICNpbmNsdWRlICJXZWJG
cmFtZS5oIgogI2luY2x1ZGUgIldlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQuaCIKQEAgLTU5LDYg
KzU4LDcgQEAKICNpbmNsdWRlIDxXZWJDb3JlL0Nocm9tZS5oPgogI2luY2x1ZGUgPFdlYkNvcmUv
RE9NV3JhcHBlcldvcmxkLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9Eb2N1bWVudExvYWRlci5oPgor
I2luY2x1ZGUgPFdlYkNvcmUvRXJyb3JzLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9Gb3JtU3RhdGUu
aD4KICNpbmNsdWRlIDxXZWJDb3JlL0ZyYW1lTG9hZFJlcXVlc3QuaD4KICNpbmNsdWRlIDxXZWJD
b3JlL0ZyYW1lTG9hZGVyLmg+CkBAIC0xMTAxLDUwICsxMTAxLDEwIEBAIHZvaWQgV2ViRnJhbWVM
b2FkZXJDbGllbnQ6OmRpZERldGVjdFhTUyhjb25zdCBVUkwmLCBib29sKQogICAgIHdlYlBhZ2Ut
PnNlbmQoTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6RGlkRGV0ZWN0WFNTRm9yRnJhbWUobV9mcmFt
ZS0+ZnJhbWVJRCgpLCBVc2VyRGF0YShXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS50cmFuc2Zvcm1P
YmplY3RzVG9IYW5kbGVzKHVzZXJEYXRhLmdldCgpKS5nZXQoKSkpKTsKIH0KIAotUmVzb3VyY2VF
cnJvciBXZWJGcmFtZUxvYWRlckNsaWVudDo6Y2FuY2VsbGVkRXJyb3IoY29uc3QgUmVzb3VyY2VS
ZXF1ZXN0JiByZXF1ZXN0KQotewotICAgIHJldHVybiBXZWJLaXQ6OmNhbmNlbGxlZEVycm9yKHJl
cXVlc3QpOwotfQotCi1SZXNvdXJjZUVycm9yIFdlYkZyYW1lTG9hZGVyQ2xpZW50OjpibG9ja2Vk
RXJyb3IoY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0KQotewotICAgIHJldHVybiBXZWJL
aXQ6OmJsb2NrZWRFcnJvcihyZXF1ZXN0KTsKLX0KLQotUmVzb3VyY2VFcnJvciBXZWJGcmFtZUxv
YWRlckNsaWVudDo6YmxvY2tlZEJ5Q29udGVudEJsb2NrZXJFcnJvcihjb25zdCBSZXNvdXJjZVJl
cXVlc3QmIHJlcXVlc3QpCi17Ci0gICAgcmV0dXJuIFdlYktpdDo6YmxvY2tlZEJ5Q29udGVudEJs
b2NrZXJFcnJvcihyZXF1ZXN0KTsKLX0KLQotUmVzb3VyY2VFcnJvciBXZWJGcmFtZUxvYWRlckNs
aWVudDo6Y2Fubm90U2hvd1VSTEVycm9yKGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCkK
LXsKLSAgICByZXR1cm4gV2ViS2l0OjpjYW5ub3RTaG93VVJMRXJyb3IocmVxdWVzdCk7Ci19Ci0K
LVJlc291cmNlRXJyb3IgV2ViRnJhbWVMb2FkZXJDbGllbnQ6OmludGVycnVwdGVkRm9yUG9saWN5
Q2hhbmdlRXJyb3IoY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0KQotewotICAgIHJldHVy
biBXZWJLaXQ6OmludGVycnVwdGVkRm9yUG9saWN5Q2hhbmdlRXJyb3IocmVxdWVzdCk7Ci19Ci0K
LVJlc291cmNlRXJyb3IgV2ViRnJhbWVMb2FkZXJDbGllbnQ6OmNhbm5vdFNob3dNSU1FVHlwZUVy
cm9yKGNvbnN0IFJlc291cmNlUmVzcG9uc2UmIHJlc3BvbnNlKQotewotICAgIHJldHVybiBXZWJL
aXQ6OmNhbm5vdFNob3dNSU1FVHlwZUVycm9yKHJlc3BvbnNlKTsKLX0KLQotUmVzb3VyY2VFcnJv
ciBXZWJGcmFtZUxvYWRlckNsaWVudDo6ZmlsZURvZXNOb3RFeGlzdEVycm9yKGNvbnN0IFJlc291
cmNlUmVzcG9uc2UmIHJlc3BvbnNlKQotewotICAgIHJldHVybiBXZWJLaXQ6OmZpbGVEb2VzTm90
RXhpc3RFcnJvcihyZXNwb25zZSk7Ci19Ci0KLVJlc291cmNlRXJyb3IgV2ViRnJhbWVMb2FkZXJD
bGllbnQ6OnBsdWdpbldpbGxIYW5kbGVMb2FkRXJyb3IoY29uc3QgUmVzb3VyY2VSZXNwb25zZSYg
cmVzcG9uc2UpCi17Ci0gICAgcmV0dXJuIFdlYktpdDo6cGx1Z2luV2lsbEhhbmRsZUxvYWRFcnJv
cihyZXNwb25zZSk7Ci19Ci0KIGJvb2wgV2ViRnJhbWVMb2FkZXJDbGllbnQ6OnNob3VsZEZhbGxC
YWNrKGNvbnN0IFJlc291cmNlRXJyb3ImIGVycm9yKQogewotICAgIHN0YXRpYyBOZXZlckRlc3Ry
b3llZDxjb25zdCBSZXNvdXJjZUVycm9yPiBjYW5jZWxsZWRFcnJvcih0aGlzLT5jYW5jZWxsZWRF
cnJvcihSZXNvdXJjZVJlcXVlc3QoKSkpOwotICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxjb25z
dCBSZXNvdXJjZUVycm9yPiBwbHVnaW5XaWxsSGFuZGxlTG9hZEVycm9yKHRoaXMtPnBsdWdpbldp
bGxIYW5kbGVMb2FkRXJyb3IoUmVzb3VyY2VSZXNwb25zZSgpKSk7CisgICAgc3RhdGljIE5ldmVy
RGVzdHJveWVkPGNvbnN0IFJlc291cmNlRXJyb3I+IGNhbmNlbGxlZEVycm9yKFdlYkNvcmU6OmNh
bmNlbGxlZEVycm9yKFJlc291cmNlUmVxdWVzdCgpKSk7CisgICAgc3RhdGljIE5ldmVyRGVzdHJv
eWVkPGNvbnN0IFJlc291cmNlRXJyb3I+IHBsdWdpbldpbGxIYW5kbGVMb2FkRXJyb3IoV2ViQ29y
ZTo6cGx1Z2luV2lsbEhhbmRsZUxvYWRFcnJvcihSZXNvdXJjZVJlc3BvbnNlKCkpKTsKIAogICAg
IGlmIChlcnJvci5lcnJvckNvZGUoKSA9PSBjYW5jZWxsZWRFcnJvci5nZXQoKS5lcnJvckNvZGUo
KSAmJiBlcnJvci5kb21haW4oKSA9PSBjYW5jZWxsZWRFcnJvci5nZXQoKS5kb21haW4oKSkKICAg
ICAgICAgcmV0dXJuIGZhbHNlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5oIGIvU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5oCmluZGV4IGY1
ZGUwMGQ3ZDQzNDc2ZGEyMDlmOWU1NzdjNGFhNGIzYWU3ZjFmNTAuLjQ0NmEyODJkZGFlNDdkODMx
M2VmZGY3ZWE3Zjc1MzU3M2NhMDk5ZGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuaAorKysgYi9Tb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmgK
QEAgLTE0NSwxNiArMTQ1LDYgQEAgcHJpdmF0ZToKICAgICB2b2lkIGRpZFJ1bkluc2VjdXJlQ29u
dGVudChXZWJDb3JlOjpTZWN1cml0eU9yaWdpbiosIGNvbnN0IFdlYkNvcmU6OlVSTCYpIG92ZXJy
aWRlOwogICAgIHZvaWQgZGlkRGV0ZWN0WFNTKGNvbnN0IFdlYkNvcmU6OlVSTCYsIGJvb2wgZGlk
QmxvY2tFbnRpcmVQYWdlKSBvdmVycmlkZTsKIAotICAgIFdlYkNvcmU6OlJlc291cmNlRXJyb3Ig
Y2FuY2VsbGVkRXJyb3IoY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0Jikgb3ZlcnJpZGU7
Ci0gICAgV2ViQ29yZTo6UmVzb3VyY2VFcnJvciBibG9ja2VkRXJyb3IoY29uc3QgV2ViQ29yZTo6
UmVzb3VyY2VSZXF1ZXN0Jikgb3ZlcnJpZGU7Ci0gICAgV2ViQ29yZTo6UmVzb3VyY2VFcnJvciBi
bG9ja2VkQnlDb250ZW50QmxvY2tlckVycm9yKGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVz
dCYpIG92ZXJyaWRlOwotICAgIFdlYkNvcmU6OlJlc291cmNlRXJyb3IgY2Fubm90U2hvd1VSTEVy
cm9yKGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYpIG92ZXJyaWRlOwotICAgIFdlYkNv
cmU6OlJlc291cmNlRXJyb3IgaW50ZXJydXB0ZWRGb3JQb2xpY3lDaGFuZ2VFcnJvcihjb25zdCBX
ZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmKSBvdmVycmlkZTsKLSAgICAKLSAgICBXZWJDb3JlOjpS
ZXNvdXJjZUVycm9yIGNhbm5vdFNob3dNSU1FVHlwZUVycm9yKGNvbnN0IFdlYkNvcmU6OlJlc291
cmNlUmVzcG9uc2UmKSBvdmVycmlkZTsKLSAgICBXZWJDb3JlOjpSZXNvdXJjZUVycm9yIGZpbGVE
b2VzTm90RXhpc3RFcnJvcihjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlJikgb3ZlcnJp
ZGU7Ci0gICAgV2ViQ29yZTo6UmVzb3VyY2VFcnJvciBwbHVnaW5XaWxsSGFuZGxlTG9hZEVycm9y
KGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UmKSBvdmVycmlkZTsKLSAgICAKICAgICBi
b29sIHNob3VsZEZhbGxCYWNrKGNvbnN0IFdlYkNvcmU6OlJlc291cmNlRXJyb3ImKSBvdmVycmlk
ZTsKICAgICAKICAgICBib29sIGNhbkhhbmRsZVJlcXVlc3QoY29uc3QgV2ViQ29yZTo6UmVzb3Vy
Y2VSZXF1ZXN0JikgY29uc3Qgb3ZlcnJpZGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlBsYXRmb3JtU3RyYXRlZ2llcy5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlBsYXRmb3JtU3RyYXRlZ2ll
cy5jcHAKaW5kZXggMDIzYzNkMThlNDU4YmYzOTAyYWE0OGY0MGFjYzVjOTVhNzZmZWFhNy4uNzYw
M2JjOTNkNDY3NTJjNDJkZGE0MDIxYmQ5ODJiOWI3NGE0OWRlZiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJQbGF0Zm9ybVN0cmF0ZWdpZXMu
Y3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViUGxh
dGZvcm1TdHJhdGVnaWVzLmNwcApAQCAtMzcsNyArMzcsNiBAQAogI2luY2x1ZGUgIlNlc3Npb25U
cmFja2VyLmgiCiAjaW5jbHVkZSAiV2ViQ29va2llTWFuYWdlci5oIgogI2luY2x1ZGUgIldlYkNv
cmVBcmd1bWVudENvZGVycy5oIgotI2luY2x1ZGUgIldlYkVycm9ycy5oIgogI2luY2x1ZGUgIldl
YkZyYW1lLmgiCiAjaW5jbHVkZSAiV2ViRnJhbWVMb2FkZXJDbGllbnQuaCIKICNpbmNsdWRlICJX
ZWJMb2FkZXJTdHJhdGVneS5oIgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9XZWJDb3JlU3VwcG9ydC9lZmwvV2ViRXJyb3JzRWZsLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvZWZsL1dlYkVycm9yc0VmbC5jcHAKZGVsZXRlZCBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IGIxYjk3ZDg2NDkwOWQxYmY3ZGRlNDc5ZDlhYzdhNzJkZWY1N2Mz
MzcuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9lZmwvV2ViRXJyb3JzRWZsLmNwcAor
KysgL2Rldi9udWxsCkBAIC0xLDg1ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTEg
U2Ftc3VuZyBFbGVjdHJvbmljcy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBz
b3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0g
KiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0g
KiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklC
VVRPUlMgYGBBUyBJUycnCi0gKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBV
UlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRT
IENPTlRSSUJVVE9SUwotICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgotICogQ09OU0VRVUVOVElBTCBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKLSAqIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBP
UiBCVVNJTkVTUwotICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRI
RU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KLSAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCi0gKiBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GCi0gKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI2lu
Y2x1ZGUgImNvbmZpZy5oIgotI2luY2x1ZGUgIldlYkVycm9ycy5oIgotCi0jaW5jbHVkZSAiQVBJ
RXJyb3IuaCIKLSNpbmNsdWRlIDxXZWJDb3JlL0Vycm9yc0VmbC5oPgotI2luY2x1ZGUgPFdlYkNv
cmUvUmVzb3VyY2VFcnJvci5oPgotI2luY2x1ZGUgPFdlYkNvcmUvUmVzb3VyY2VSZXF1ZXN0Lmg+
Ci0jaW5jbHVkZSA8V2ViQ29yZS9SZXNvdXJjZVJlc3BvbnNlLmg+Ci0jaW5jbHVkZSA8V2ViS2l0
L1dLRXJyb3JSZWYuaD4KLQotdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7Ci0KLW5hbWVzcGFjZSBX
ZWJLaXQgewotCi1SZXNvdXJjZUVycm9yIGNhbmNlbGxlZEVycm9yKGNvbnN0IFJlc291cmNlUmVx
dWVzdCYgcmVxdWVzdCkKLXsKLSAgICByZXR1cm4gV2ViQ29yZTo6Y2FuY2VsbGVkRXJyb3IocmVx
dWVzdCk7Ci19Ci0KLVJlc291cmNlRXJyb3IgYmxvY2tlZEVycm9yKGNvbnN0IFJlc291cmNlUmVx
dWVzdCYgcmVxdWVzdCkKLXsKLSAgICByZXR1cm4gV2ViQ29yZTo6YmxvY2tlZEVycm9yKHJlcXVl
c3QpOwotfQotCi1SZXNvdXJjZUVycm9yIGJsb2NrZWRCeUNvbnRlbnRCbG9ja2VyRXJyb3IoY29u
c3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0KQotewotICAgIHJldHVybiBXZWJDb3JlOjpibG9j
a2VkQnlDb250ZW50QmxvY2tlckVycm9yKHJlcXVlc3QpOwotfQotCi1SZXNvdXJjZUVycm9yIGNh
bm5vdFNob3dVUkxFcnJvcihjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QpCi17Ci0gICAg
cmV0dXJuIFdlYkNvcmU6OmNhbm5vdFNob3dVUkxFcnJvcihyZXF1ZXN0KTsKLX0KLQotUmVzb3Vy
Y2VFcnJvciBpbnRlcnJ1cHRlZEZvclBvbGljeUNoYW5nZUVycm9yKGNvbnN0IFJlc291cmNlUmVx
dWVzdCYgcmVxdWVzdCkKLXsKLSAgICByZXR1cm4gV2ViQ29yZTo6aW50ZXJydXB0ZWRGb3JQb2xp
Y3lDaGFuZ2VFcnJvcihyZXF1ZXN0KTsKLX0KLQotUmVzb3VyY2VFcnJvciBjYW5ub3RTaG93TUlN
RVR5cGVFcnJvcihjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiByZXNwb25zZSkKLXsKLSAgICByZXR1
cm4gV2ViQ29yZTo6Y2Fubm90U2hvd01JTUVUeXBlRXJyb3IocmVzcG9uc2UpOwotfQotCi1SZXNv
dXJjZUVycm9yIGZpbGVEb2VzTm90RXhpc3RFcnJvcihjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiBy
ZXNwb25zZSkKLXsKLSAgICByZXR1cm4gV2ViQ29yZTo6ZmlsZURvZXNOb3RFeGlzdEVycm9yKHJl
c3BvbnNlKTsKLX0KLQotUmVzb3VyY2VFcnJvciBwbHVnaW5XaWxsSGFuZGxlTG9hZEVycm9yKGNv
bnN0IFJlc291cmNlUmVzcG9uc2UmIHJlc3BvbnNlKQotewotICAgIHJldHVybiBXZWJDb3JlOjpw
bHVnaW5XaWxsSGFuZGxlTG9hZEVycm9yKHJlc3BvbnNlKTsKLX0KLQotV2ViQ29yZTo6UmVzb3Vy
Y2VFcnJvciBpbnRlcm5hbEVycm9yKGNvbnN0IFdlYkNvcmU6OlVSTCYgdXJsKQotewotICAgIHJl
dHVybiBSZXNvdXJjZUVycm9yKEFQSTo6RXJyb3I6OndlYktpdEVycm9yRG9tYWluKCksIGtXS0Vy
cm9ySW50ZXJuYWwsIHVybCwgQVNDSUlMaXRlcmFsKCJJbnRlcm5hbCBlcnJvciIpKTsKLX0KLQot
fSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9j
ZXNzL1dlYkNvcmVTdXBwb3J0L2d0ay9XZWJFcnJvcnNHdGsuY3BwIGIvU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9ndGsvV2ViRXJyb3JzR3RrLmNwcApkZWxldGVkIGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggZTlkMWQ0YzJiNzQ0YzdhMzY1OTZmOWRjNDkyMmZkMjY0ODJm
N2Y4My4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L2d0ay9XZWJFcnJvcnNHdGsuY3Bw
CisrKyAvZGV2L251bGwKQEAgLTEsODggKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAx
MCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKiBQb3J0aW9ucyBDb3B5cmlnaHQg
KGMpIDIwMTAgTW90b3JvbGEgTW9iaWxpdHksIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0g
KiBDb3B5cmlnaHQgKEMpIDIwMTEgSWdhbGlhIFMuTC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHly
aWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIg
bWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBB
UyBJUycnCi0gKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVS
Q0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJF
IERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJV
VE9SUwotICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwg
U1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgotICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKLSAqIFNVQlNUSVRVVEUgR09P
RFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVT
UwotICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4KLSAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBU
T1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCi0gKiBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
Ci0gKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI2luY2x1ZGUgImNv
bmZpZy5oIgotI2luY2x1ZGUgIldlYkVycm9ycy5oIgotCi0jaW5jbHVkZSAiQVBJRXJyb3IuaCIK
LSNpbmNsdWRlIDxXZWJDb3JlL0Vycm9yc0d0ay5oPgotI2luY2x1ZGUgPFdlYkNvcmUvUmVzb3Vy
Y2VFcnJvci5oPgotI2luY2x1ZGUgPFdlYkNvcmUvUmVzb3VyY2VSZXF1ZXN0Lmg+Ci0jaW5jbHVk
ZSA8V2ViQ29yZS9SZXNvdXJjZVJlc3BvbnNlLmg+Ci0jaW5jbHVkZSA8V2ViS2l0L1dLRXJyb3JS
ZWYuaD4KLSNpbmNsdWRlIDxnbGliL2dpMThuLWxpYi5oPgotCi11c2luZyBuYW1lc3BhY2UgV2Vi
Q29yZTsKLQotbmFtZXNwYWNlIFdlYktpdCB7Ci0KLVJlc291cmNlRXJyb3IgY2FuY2VsbGVkRXJy
b3IoY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0KQotewotICAgIHJldHVybiBXZWJDb3Jl
OjpjYW5jZWxsZWRFcnJvcihyZXF1ZXN0KTsKLX0KLQotUmVzb3VyY2VFcnJvciBibG9ja2VkRXJy
b3IoY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0KQotewotICAgIHJldHVybiBXZWJDb3Jl
OjpibG9ja2VkRXJyb3IocmVxdWVzdCk7Ci19Ci0KLVJlc291cmNlRXJyb3IgYmxvY2tlZEJ5Q29u
dGVudEJsb2NrZXJFcnJvcihjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QpCi17Ci0gICAg
cmV0dXJuIFdlYkNvcmU6OmJsb2NrZWRCeUNvbnRlbnRCbG9ja2VyRXJyb3IocmVxdWVzdCk7Ci19
Ci0KLVJlc291cmNlRXJyb3IgY2Fubm90U2hvd1VSTEVycm9yKGNvbnN0IFJlc291cmNlUmVxdWVz
dCYgcmVxdWVzdCkKLXsKLSAgICByZXR1cm4gV2ViQ29yZTo6Y2Fubm90U2hvd1VSTEVycm9yKHJl
cXVlc3QpOwotfQotCi1SZXNvdXJjZUVycm9yIGludGVycnVwdGVkRm9yUG9saWN5Q2hhbmdlRXJy
b3IoY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0KQotewotICAgIHJldHVybiBXZWJDb3Jl
OjppbnRlcnJ1cHRlZEZvclBvbGljeUNoYW5nZUVycm9yKHJlcXVlc3QpOwotfQotCi1SZXNvdXJj
ZUVycm9yIGNhbm5vdFNob3dNSU1FVHlwZUVycm9yKGNvbnN0IFJlc291cmNlUmVzcG9uc2UmIHJl
c3BvbnNlKQotewotICAgIHJldHVybiBXZWJDb3JlOjpjYW5ub3RTaG93TUlNRVR5cGVFcnJvcihy
ZXNwb25zZSk7Ci19Ci0KLVJlc291cmNlRXJyb3IgZmlsZURvZXNOb3RFeGlzdEVycm9yKGNvbnN0
IFJlc291cmNlUmVzcG9uc2UmIHJlc3BvbnNlKQotewotICAgIHJldHVybiBXZWJDb3JlOjpmaWxl
RG9lc05vdEV4aXN0RXJyb3IocmVzcG9uc2UpOwotfQotCi1SZXNvdXJjZUVycm9yIHBsdWdpbldp
bGxIYW5kbGVMb2FkRXJyb3IoY29uc3QgUmVzb3VyY2VSZXNwb25zZSYgcmVzcG9uc2UpCi17Ci0g
ICAgcmV0dXJuIFdlYkNvcmU6OnBsdWdpbldpbGxIYW5kbGVMb2FkRXJyb3IocmVzcG9uc2UpOwot
fQotCi1XZWJDb3JlOjpSZXNvdXJjZUVycm9yIGludGVybmFsRXJyb3IoY29uc3QgV2ViQ29yZTo6
VVJMJiB1cmwpCi17Ci0gICAgcmV0dXJuIFJlc291cmNlRXJyb3IoQVBJOjpFcnJvcjo6d2ViS2l0
RXJyb3JEb21haW4oKSwga1dLRXJyb3JJbnRlcm5hbCwgdXJsLCBfKCJJbnRlcm5hbCBlcnJvciIp
KTsKLX0KLQotfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L21hYy9XZWJFcnJvcnNNYWMubW0gYi9Tb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L21hYy9XZWJFcnJvcnNNYWMubW0KZGVs
ZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDk0ZGY1NjRiN2M3ZTM5MGI0MDBkNmU0MmRkMmU1
YmNiODk0YTUyOWMuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0t
IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9tYWMvV2ViRXJyb3Jz
TWFjLm1tCisrKyAvZGV2L251bGwKQEAgLTEsMTAwICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQg
KEMpIDIwMTAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAq
IDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAq
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJV
VE9SUyBgYEFTIElTJycKLSAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogVEhFIElNUExJRUQgV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVS
UE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMg
Q09OVFJJQlVUT1JTCi0gKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCi0gKiBDT05TRVFVRU5USUFMIERBTUFHRVMg
KElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgotICogU1VCU1RJ
VFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9S
IEJVU0lORVNTCi0gKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhF
T1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgotICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKLSAqIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YKLSAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaW1w
b3J0ICJjb25maWcuaCIKLSNpbXBvcnQgIldlYkVycm9ycy5oIgotCi0jaW1wb3J0ICJBUElFcnJv
ci5oIgotI2ltcG9ydCAiV0tFcnJvclJlZi5oIgotI2ltcG9ydCA8V2ViQ29yZS9Mb2NhbGl6ZWRT
dHJpbmdzLmg+Ci0jaW1wb3J0IDxXZWJDb3JlL1Jlc291cmNlUmVxdWVzdC5oPgotI2ltcG9ydCA8
V2ViQ29yZS9SZXNvdXJjZVJlc3BvbnNlLmg+Ci0KLXVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwot
dXNpbmcgbmFtZXNwYWNlIFdlYktpdDsKLQotbmFtZXNwYWNlIFdlYktpdCB7Ci0KLXN0YXRpYyBS
ZXRhaW5QdHI8TlNFcnJvcj4gY3JlYXRlTlNFcnJvcihOU1N0cmluZyogZG9tYWluLCBpbnQgY29k
ZSwgTlNVUkwgKlVSTCkKLXsKLSAgICBOU0RpY3Rpb25hcnkgKnVzZXJJbmZvID0gW05TRGljdGlv
bmFyeSBkaWN0aW9uYXJ5V2l0aE9iamVjdHNBbmRLZXlzOgotICAgICAgICBVUkwsIEAiTlNFcnJv
ckZhaWxpbmdVUkxLZXkiLAotICAgICAgICBbVVJMIGFic29sdXRlU3RyaW5nXSwgQCJOU0Vycm9y
RmFpbGluZ1VSTFN0cmluZ0tleSIsCi0gICAgICAgIG5pbF07Ci0KLSAgICByZXR1cm4gYWRvcHRO
UyhbW05TRXJyb3IgYWxsb2NdIGluaXRXaXRoRG9tYWluOmRvbWFpbiBjb2RlOmNvZGUgdXNlcklu
Zm86dXNlckluZm9dKTsKLX0KLQotLy8gVXNlIE5TRXJyb3IncyBpZiBhdmFpbGFibGUuCi0KLVJl
c291cmNlRXJyb3IgY2FuY2VsbGVkRXJyb3IoY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0
KQotewotICAgIHJldHVybiBSZXNvdXJjZUVycm9yKGNyZWF0ZU5TRXJyb3IoTlNVUkxFcnJvckRv
bWFpbiwgTlNVUkxFcnJvckNhbmNlbGxlZCwgcmVxdWVzdC51cmwoKSkuZ2V0KCkpOwotfQotCi1S
ZXNvdXJjZUVycm9yIGZpbGVEb2VzTm90RXhpc3RFcnJvcihjb25zdCBSZXNvdXJjZVJlc3BvbnNl
JiByZXNwb25zZSkKLXsKLSAgICByZXR1cm4gUmVzb3VyY2VFcnJvcihjcmVhdGVOU0Vycm9yKE5T
VVJMRXJyb3JEb21haW4sIE5TVVJMRXJyb3JGaWxlRG9lc05vdEV4aXN0LCByZXNwb25zZS51cmwo
KSkuZ2V0KCkpOwotfQotCi0KLS8vIE90aGVyd2lzZSwgZmFsbGJhY2sgdG8gb3VyIG93biBlcnJv
cnMuCi0KLVJlc291cmNlRXJyb3IgYmxvY2tlZEVycm9yKGNvbnN0IFJlc291cmNlUmVxdWVzdCYg
cmVxdWVzdCkKLXsKLSAgICByZXR1cm4gUmVzb3VyY2VFcnJvcihBUEk6OkVycm9yOjp3ZWJLaXRF
cnJvckRvbWFpbigpLCBrV0tFcnJvckNvZGVDYW5ub3RVc2VSZXN0cmljdGVkUG9ydCwgcmVxdWVz
dC51cmwoKSwgV0VCX1VJX1NUUklORygiTm90IGFsbG93ZWQgdG8gdXNlIHJlc3RyaWN0ZWQgbmV0
d29yayBwb3J0IiwgIldlYktpdEVycm9yQ2Fubm90VXNlUmVzdHJpY3RlZFBvcnQgZGVzY3JpcHRp
b24iKSk7Ci19Ci0KLVJlc291cmNlRXJyb3IgYmxvY2tlZEJ5Q29udGVudEJsb2NrZXJFcnJvcihj
b25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QpCi17Ci0gICAgcmV0dXJuIFJlc291cmNlRXJy
b3IoQVBJOjpFcnJvcjo6d2ViS2l0RXJyb3JEb21haW4oKSwga1dLRXJyb3JDb2RlRnJhbWVMb2Fk
QmxvY2tlZEJ5Q29udGVudEJsb2NrZXIsIHJlcXVlc3QudXJsKCksIFdFQl9VSV9TVFJJTkcoIlRo
ZSBVUkwgd2FzIGJsb2NrZWQgYnkgYSBjb250ZW50IGJsb2NrZXIiLCAiV2ViS2l0RXJyb3JCbG9j
a2VkQnlDb250ZW50QmxvY2tlciBkZXNjcmlwdGlvbiIpKTsKLX0KLQotUmVzb3VyY2VFcnJvciBj
YW5ub3RTaG93VVJMRXJyb3IoY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0KQotewotICAg
IHJldHVybiBSZXNvdXJjZUVycm9yKEFQSTo6RXJyb3I6OndlYktpdEVycm9yRG9tYWluKCksIGtX
S0Vycm9yQ29kZUNhbm5vdFNob3dVUkwsIHJlcXVlc3QudXJsKCksIFdFQl9VSV9TVFJJTkcoIlRo
ZSBVUkwgY2Fu4oCZdCBiZSBzaG93biIsICJXZWJLaXRFcnJvckNhbm5vdFNob3dVUkwgZGVzY3Jp
cHRpb24iKSk7Ci19Ci0KLVJlc291cmNlRXJyb3IgaW50ZXJydXB0ZWRGb3JQb2xpY3lDaGFuZ2VF
cnJvcihjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QpCi17Ci0gICAgcmV0dXJuIFJlc291
cmNlRXJyb3IoQVBJOjpFcnJvcjo6d2ViS2l0RXJyb3JEb21haW4oKSwga1dLRXJyb3JDb2RlRnJh
bWVMb2FkSW50ZXJydXB0ZWRCeVBvbGljeUNoYW5nZSwgcmVxdWVzdC51cmwoKSwgV0VCX1VJX1NU
UklORygiRnJhbWUgbG9hZCBpbnRlcnJ1cHRlZCIsICJXZWJLaXRFcnJvckZyYW1lTG9hZEludGVy
cnVwdGVkQnlQb2xpY3lDaGFuZ2UgZGVzY3JpcHRpb24iKSk7Ci19Ci0KLVJlc291cmNlRXJyb3Ig
Y2Fubm90U2hvd01JTUVUeXBlRXJyb3IoY29uc3QgUmVzb3VyY2VSZXNwb25zZSYgcmVzcG9uc2Up
Ci17Ci0gICAgcmV0dXJuIFJlc291cmNlRXJyb3IoQVBJOjpFcnJvcjo6d2ViS2l0RXJyb3JEb21h
aW4oKSwga1dLRXJyb3JDb2RlQ2Fubm90U2hvd01JTUVUeXBlLCByZXNwb25zZS51cmwoKSwgV0VC
X1VJX1NUUklORygiQ29udGVudCB3aXRoIHNwZWNpZmllZCBNSU1FIHR5cGUgY2Fu4oCZdCBiZSBz
aG93biIsICJXZWJLaXRFcnJvckNhbm5vdFNob3dNSU1FVHlwZSBkZXNjcmlwdGlvbiIpKTsKLX0K
LQotUmVzb3VyY2VFcnJvciBwbHVnaW5XaWxsSGFuZGxlTG9hZEVycm9yKGNvbnN0IFJlc291cmNl
UmVzcG9uc2UmIHJlc3BvbnNlKQotewotICAgIHJldHVybiBSZXNvdXJjZUVycm9yKEFQSTo6RXJy
b3I6OndlYktpdEVycm9yRG9tYWluKCksIGtXS0Vycm9yQ29kZVBsdWdJbldpbGxIYW5kbGVMb2Fk
LCByZXNwb25zZS51cmwoKSwgV0VCX1VJX1NUUklORygiUGx1Zy1pbiBoYW5kbGVkIGxvYWQiLCAi
V2ViS2l0RXJyb3JQbHVnSW5XaWxsSGFuZGxlTG9hZCBkZXNjcmlwdGlvbiIpKTsKLX0KLQotUmVz
b3VyY2VFcnJvciBpbnRlcm5hbEVycm9yKGNvbnN0IFVSTCYgdXJsKQotewotICAgIHJldHVybiBS
ZXNvdXJjZUVycm9yKEFQSTo6RXJyb3I6OndlYktpdEVycm9yRG9tYWluKCksIGtXS0Vycm9ySW50
ZXJuYWwsIHVybCwgV0VCX1VJX1NUUklORygiV2ViS2l0IGVuY291bnRlcmVkIGFuIGludGVybmFs
IGVycm9yIiwgIldlYktpdEVycm9ySW50ZXJuYWwgZGVzY3JpcHRpb24iKSk7Ci19Ci0KLX0gLy8g
bmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9X
ZWJDb3JlU3VwcG9ydC9tYWMvV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dC5tbSBiL1NvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvbWFjL1dlYkZyYW1lTmV0d29ya2luZ0Nv
bnRleHQubW0KaW5kZXggNWI2NGUyODdlM2QyOTI3YjE4MjgzMDdkNzQ5OGU0N2U1NGVhNGMzMi4u
NGU4NTg5ZWQ3Y2QwY2YzYmRkZDk4NjJhODMyZGQxZTIxYWYxY2M4YSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9tYWMvV2ViRnJhbWVOZXR3b3Jr
aW5nQ29udGV4dC5tbQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBw
b3J0L21hYy9XZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0Lm1tCkBAIC0zMiw2ICszMiw3IEBACiAj
aW5jbHVkZSAiV2ViUGFnZS5oIgogI2luY2x1ZGUgIldlYlByb2Nlc3MuaCIKICNpbmNsdWRlIDxX
ZWJDb3JlL0NGTmV0d29ya1NQSS5oPgorI2luY2x1ZGUgPFdlYkNvcmUvRXJyb3JzLmg+CiAjaW5j
bHVkZSA8V2ViQ29yZS9GcmFtZS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvRnJhbWVMb2FkZXIuaD4K
ICNpbmNsdWRlIDxXZWJDb3JlL0ZyYW1lTG9hZGVyQ2xpZW50Lmg+CkBAIC0xMDMsNyArMTA0LDcg
QEAgU3RyaW5nIFdlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQ6OnNvdXJjZUFwcGxpY2F0aW9uSWRl
bnRpZmllcigpIGNvbnN0CiAKIFJlc291cmNlRXJyb3IgV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4
dDo6YmxvY2tlZEVycm9yKGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCkgY29uc3QKIHsK
LSAgICByZXR1cm4gZnJhbWUoKS0+bG9hZGVyKCkuY2xpZW50KCkuYmxvY2tlZEVycm9yKHJlcXVl
c3QpOworICAgIHJldHVybiBXZWJDb3JlOjpibG9ja2VkRXJyb3IocmVxdWVzdCk7CiB9CiAKIE5l
dHdvcmtTdG9yYWdlU2Vzc2lvbiYgV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dDo6c3RvcmFnZVNl
c3Npb24oKSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQ
YWdlL2d0ay9XZWJQcmludE9wZXJhdGlvbkd0ay5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9j
ZXNzL1dlYlBhZ2UvZ3RrL1dlYlByaW50T3BlcmF0aW9uR3RrLmNwcAppbmRleCBiNjIwNWRiOTQ5
NTAxM2U0YThlMjIxY2Q2YmZiNmQ4NDk4MzgzMDEyLi43MGVmNTBlMDE4ZjZlMTJlMDZlOTJjMTEx
NDlkYTBlYzdiMTFhYmI1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dl
YlBhZ2UvZ3RrL1dlYlByaW50T3BlcmF0aW9uR3RrLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL1dlYlBhZ2UvZ3RrL1dlYlByaW50T3BlcmF0aW9uR3RrLmNwcApAQCAtMzEsNyAr
MzEsNyBAQAogI2luY2x1ZGUgIldlYlBhZ2VQcm94eU1lc3NhZ2VzLmgiCiAjaW5jbHVkZSAiV2Vi
UHJvY2Vzcy5oIgogI2luY2x1ZGUgPFdlYkNvcmUvRG9jdW1lbnRMb2FkZXIuaD4KLSNpbmNsdWRl
IDxXZWJDb3JlL0Vycm9yc0d0ay5oPgorI2luY2x1ZGUgPFdlYkNvcmUvRXJyb3JzVW5peC5oPgog
I2luY2x1ZGUgPFdlYkNvcmUvRnJhbWUuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0ludFJlY3QuaD4K
ICNpbmNsdWRlIDxXZWJDb3JlL05vdEltcGxlbWVudGVkLmg+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>281003</attachid>
            <date>2016-06-10 02:24:04 -0700</date>
            <delta_ts>2016-08-12 04:48:42 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-156974-20160610122532.patch</filename>
            <type>text/plain</type>
            <size>133465</size>
            <attacher name="Claudio Saavedra">csaavedra</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjAxOTE5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZTE1MGI3MGI4ZmE0Y2Jm
YjljYTA5NTgyYzkyNWQ1MDlhNzE1M2MwZS4uNWY3MGI0ZTBmYjQ1MzdmYWUzYmIwZjU5OTE4YWZi
NTExMzg4YTU5NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEwOCBAQAorMjAxNi0wNS0yMCAgQ2xh
dWRpbyBTYWF2ZWRyYSAgPGNzYWF2ZWRyYUBpZ2FsaWEuY29tPgorCisgICAgICAgIFVuaWZ5aW5n
IEVycm9ycy9XZWJFcnJvcnMgaW50byBXZWJDb3JlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNTY5NzQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICBGcmFtZUxvYWRlckNsaWVudCBlcnJvciBtZXRob2RzIGlu
IFdlYkNvcmUgYW5kIFdlYkVycm9ycyBpbiBXSzIgYXJlCisgICAgICAgIHJlZHVuZGFudC4gRnVy
dGhlcm1vcmUsIEZyYW1lTG9hZGVyQ2xpZW50IGVycm9yIG1ldGhvZHMgZG8gbm90IGRlcGVuZAor
ICAgICAgICBpbiB0aGUgbG9hZGVyIGNsaWVudCBpbnN0YW5jZSBhdCBhbGwuCisKKyAgICAgICAg
UmVtb3ZlIHRoZSBlcnJvciBtZXRob2RzIGZyb20gRnJhbWVMb2FkZXJDbGllbnQgYW5kIGFkb3B0
IHRoZSBXZWJFcnJvcnMKKyAgICAgICAgZnJvbSBXSzIgaW50byBXZWJDb3JlLCBzdGFuZGFsb25l
IG1ldGhvZHMuIE1vdmUgdGhlIEVGTCwgR1RLLCBhbmQgV2luLCBhbmQgTWFjIGltcGxlbWVudGF0
aW9ucworICAgICAgICB0byBXZWJDb3JlL3BsYXRmb3JtLCBhbmQgdXBkYXRlIHRoZSBjb2RlIGV2
ZXJ5d2hlcmUgYWNjb3JkaW5nbHkuCisKKyAgICAgICAgKiBQbGF0Zm9ybUVmbC5jbWFrZToKKyAg
ICAgICAgKiBQbGF0Zm9ybUdUSy5jbWFrZToKKyAgICAgICAgKiBQbGF0Zm9ybU1hYy5jbWFrZToK
KyAgICAgICAgKiBQbGF0Zm9ybVdpbi5jbWFrZToKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJv
ai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogbG9hZGVyL0RvY3VtZW50TG9hZGVyLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50TG9hZGVyOjpjb250aW51ZUFmdGVyQ29udGVudFBv
bGljeSk6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudExvYWRlcjo6aW50ZXJydXB0ZWRGb3JQ
b2xpY3lDaGFuZ2VFcnJvcik6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudExvYWRlcjo6c3Rh
cnRMb2FkaW5nTWFpblJlc291cmNlKToKKyAgICAgICAgKiBsb2FkZXIvRW1wdHlDbGllbnRzLmg6
CisgICAgICAgICogbG9hZGVyL0ZyYW1lTG9hZGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZy
YW1lTG9hZGVyOjpjYW5jZWxsZWRFcnJvcik6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZUxvYWRl
cjo6YmxvY2tlZEVycm9yKToKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lTG9hZGVyOjpibG9ja2Vk
QnlDb250ZW50QmxvY2tlckVycm9yKTogRGVsZXRlZC4KKyAgICAgICAgKiBsb2FkZXIvRnJhbWVM
b2FkZXIuaDoKKyAgICAgICAgKiBsb2FkZXIvRnJhbWVMb2FkZXJDbGllbnQuaDoKKyAgICAgICAg
KiBsb2FkZXIvTmV0c2NhcGVQbHVnSW5TdHJlYW1Mb2FkZXIuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6TmV0c2NhcGVQbHVnSW5TdHJlYW1Mb2FkZXI6OmRpZFJlY2VpdmVSZXNwb25zZSk6CisgICAg
ICAgICogbG9hZGVyL1BvbGljeUNoZWNrZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UG9saWN5
Q2hlY2tlcjo6Y2Fubm90U2hvd01JTUVUeXBlKToKKyAgICAgICAgKFdlYkNvcmU6OlBvbGljeUNo
ZWNrZXI6OmNvbnRpbnVlQWZ0ZXJOYXZpZ2F0aW9uUG9saWN5KToKKyAgICAgICAgKiBsb2FkZXIv
UmVzb3VyY2VMb2FkZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VMb2FkZXI6OmJs
b2NrZWRFcnJvcik6CisgICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZUxvYWRlcjo6YmxvY2tlZEJ5
Q29udGVudEJsb2NrZXJFcnJvcik6CisgICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZUxvYWRlcjo6
Y2Fubm90U2hvd1VSTEVycm9yKToKKyAgICAgICAgKiBsb2FkZXIvYXBwY2FjaGUvQXBwbGljYXRp
b25DYWNoZUhvc3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6QXBwbGljYXRpb25DYWNoZUhvc3Q6
Om1heWJlTG9hZFN5bmNocm9ub3VzbHkpOgorICAgICAgICAqIHBsYXRmb3JtL0Vycm9ycy5jcHA6
IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6d2ViS2l0RXJyb3JEb21haW4pOgorICAgICAgICAq
IHBsYXRmb3JtL0Vycm9ycy5oOiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9lZmwvRXJyb3Jz
RWZsLmNwcDogUmVtb3ZlZC4KKyAgICAgICAgKFdlYkNvcmU6OmNhbmNlbGxlZEVycm9yKTogRGVs
ZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OmJsb2NrZWRFcnJvcik6IERlbGV0ZWQuCisgICAgICAg
IChXZWJDb3JlOjpibG9ja2VkQnlDb250ZW50QmxvY2tlckVycm9yKTogRGVsZXRlZC4KKyAgICAg
ICAgKFdlYkNvcmU6OmNhbm5vdFNob3dVUkxFcnJvcik6IERlbGV0ZWQuCisgICAgICAgIChXZWJD
b3JlOjppbnRlcnJ1cHRlZEZvclBvbGljeUNoYW5nZUVycm9yKTogRGVsZXRlZC4KKyAgICAgICAg
KFdlYkNvcmU6OmNhbm5vdFNob3dNSU1FVHlwZUVycm9yKTogRGVsZXRlZC4KKyAgICAgICAgKFdl
YkNvcmU6OmZpbGVEb2VzTm90RXhpc3RFcnJvcik6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3Jl
OjpwbHVnaW5XaWxsSGFuZGxlTG9hZEVycm9yKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6
OmRvd25sb2FkTmV0d29ya0Vycm9yKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OmRvd25s
b2FkQ2FuY2VsbGVkQnlVc2VyRXJyb3IpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6ZG93
bmxvYWREZXN0aW5hdGlvbkVycm9yKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OnByaW50
RXJyb3IpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6cHJpbnRlck5vdEZvdW5kRXJyb3Ip
OiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6aW52YWxpZFBhZ2VSYW5nZVRvUHJpbnQpOiBE
ZWxldGVkLgorICAgICAgICAqIHBsYXRmb3JtL2VmbC9FcnJvcnNFZmwuaDogUmVtb3ZlZC4KKyAg
ICAgICAgKiBwbGF0Zm9ybS9ndGsvRXJyb3JzR3RrLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmNh
bmNlbGxlZEVycm9yKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OmJsb2NrZWRFcnJvcik6
IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpibG9ja2VkQnlDb250ZW50QmxvY2tlckVycm9y
KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OmNhbm5vdFNob3dVUkxFcnJvcik6IERlbGV0
ZWQuCisgICAgICAgIChXZWJDb3JlOjppbnRlcnJ1cHRlZEZvclBvbGljeUNoYW5nZUVycm9yKTog
RGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OmNhbm5vdFNob3dNSU1FVHlwZUVycm9yKTogRGVs
ZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OmZpbGVEb2VzTm90RXhpc3RFcnJvcik6IERlbGV0ZWQu
CisgICAgICAgIChXZWJDb3JlOjpwbHVnaW5XaWxsSGFuZGxlTG9hZEVycm9yKTogRGVsZXRlZC4K
KyAgICAgICAgKFdlYkNvcmU6OmRvd25sb2FkTmV0d29ya0Vycm9yKTogRGVsZXRlZC4KKyAgICAg
ICAgKFdlYkNvcmU6OmRvd25sb2FkQ2FuY2VsbGVkQnlVc2VyRXJyb3IpOiBEZWxldGVkLgorICAg
ICAgICAoV2ViQ29yZTo6ZG93bmxvYWREZXN0aW5hdGlvbkVycm9yKTogRGVsZXRlZC4KKyAgICAg
ICAgKFdlYkNvcmU6OnByaW50RXJyb3IpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6cHJp
bnRlck5vdEZvdW5kRXJyb3IpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6aW52YWxpZFBh
Z2VSYW5nZVRvUHJpbnQpOiBEZWxldGVkLgorICAgICAgICAqIHBsYXRmb3JtL21hYy9FcnJvcnNN
YWMubW06IFJlbmFtZWQgZnJvbSBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBw
b3J0L21hYy9XZWJFcnJvcnNNYWMubW0uCisgICAgICAgIChXZWJDb3JlOjpjcmVhdGVOU0Vycm9y
KToKKyAgICAgICAgKFdlYkNvcmU6OmNhbmNlbGxlZEVycm9yKToKKyAgICAgICAgKFdlYkNvcmU6
OmZpbGVEb2VzTm90RXhpc3RFcnJvcik6CisgICAgICAgIChXZWJDb3JlOjpibG9ja2VkRXJyb3Ip
OgorICAgICAgICAoV2ViQ29yZTo6YmxvY2tlZEJ5Q29udGVudEJsb2NrZXJFcnJvcik6CisgICAg
ICAgIChXZWJDb3JlOjpjYW5ub3RTaG93VVJMRXJyb3IpOgorICAgICAgICAoV2ViQ29yZTo6aW50
ZXJydXB0ZWRGb3JQb2xpY3lDaGFuZ2VFcnJvcik6CisgICAgICAgIChXZWJDb3JlOjpjYW5ub3RT
aG93TUlNRVR5cGVFcnJvcik6CisgICAgICAgIChXZWJDb3JlOjpwbHVnaW5XaWxsSGFuZGxlTG9h
ZEVycm9yKToKKyAgICAgICAgKFdlYkNvcmU6OmludGVybmFsRXJyb3IpOgorICAgICAgICAqIHBs
YXRmb3JtL3VuaXgvRXJyb3JzVW5peC5jcHA6IFJlbmFtZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ndGsvRXJyb3JzR3RrLmNwcC4KKyAgICAgICAgKFdlYkNvcmU6OmNhbmNlbGxlZEVy
cm9yKToKKyAgICAgICAgKFdlYkNvcmU6OmJsb2NrZWRFcnJvcik6CisgICAgICAgIChXZWJDb3Jl
OjpibG9ja2VkQnlDb250ZW50QmxvY2tlckVycm9yKToKKyAgICAgICAgKFdlYkNvcmU6OmNhbm5v
dFNob3dVUkxFcnJvcik6CisgICAgICAgIChXZWJDb3JlOjppbnRlcnJ1cHRlZEZvclBvbGljeUNo
YW5nZUVycm9yKToKKyAgICAgICAgKFdlYkNvcmU6OmNhbm5vdFNob3dNSU1FVHlwZUVycm9yKToK
KyAgICAgICAgKFdlYkNvcmU6OmZpbGVEb2VzTm90RXhpc3RFcnJvcik6CisgICAgICAgIChXZWJD
b3JlOjpwbHVnaW5XaWxsSGFuZGxlTG9hZEVycm9yKToKKyAgICAgICAgKFdlYkNvcmU6OmRvd25s
b2FkTmV0d29ya0Vycm9yKToKKyAgICAgICAgKFdlYkNvcmU6OmRvd25sb2FkQ2FuY2VsbGVkQnlV
c2VyRXJyb3IpOgorICAgICAgICAoV2ViQ29yZTo6ZG93bmxvYWREZXN0aW5hdGlvbkVycm9yKToK
KyAgICAgICAgKFdlYkNvcmU6OnByaW50RXJyb3IpOgorICAgICAgICAoV2ViQ29yZTo6cHJpbnRl
ck5vdEZvdW5kRXJyb3IpOgorICAgICAgICAoV2ViQ29yZTo6aW52YWxpZFBhZ2VSYW5nZVRvUHJp
bnQpOgorICAgICAgICAoV2ViQ29yZTo6aW50ZXJuYWxFcnJvcik6CisgICAgICAgICogcGxhdGZv
cm0vdW5peC9FcnJvcnNVbml4Lmg6IFJlbmFtZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ndGsvRXJyb3JzR3RrLmguCisKIDIwMTYtMDYtMDggIFNlcmdpbyBWaWxsYXIgU2VuaW4gIDxz
dmlsbGFyQGlnYWxpYS5jb20+CiAKICAgICAgICAgW2Nzcy1ncmlkXSBDUkFTSCB3aGVuIGdldHRp
bmcgdGhlIGNvbXB1dGVkIHN0eWxlIG9mIGEgZ3JpZCB3aXRoIG9ubHkgYWJzb2x1dGVseSBwb3Np
dGlvbmVkIGNoaWxkcmVuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cg
Yi9Tb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cKaW5kZXggODZjZDQ1NTM4ZjM1NzI1ZjljZjEx
OTI4MGE5NzUyYjExMThjMWRlYi4uNzE3NzNmMTIxOTE1MTE1NmU0NTE5NWQzODU3M2Y1M2VlNDI2
YjVhNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvbWFjL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMzIEBACisyMDE2LTA1LTIwICBDbGF1
ZGlvIFNhYXZlZHJhICA8Y3NhYXZlZHJhQGlnYWxpYS5jb20+CisKKyAgICAgICAgVW5pZnlpbmcg
RXJyb3JzL1dlYkVycm9ycyBpbnRvIFdlYkNvcmUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTE1Njk3NAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIEZyYW1lTG9hZGVyQ2xpZW50IGVycm9yIG1ldGhvZHMgaW4g
V2ViQ29yZSBhbmQgV2ViRXJyb3JzIGluIFdLMiBhcmUKKyAgICAgICAgcmVkdW5kYW50LiBGdXJ0
aGVybW9yZSwgRnJhbWVMb2FkZXJDbGllbnQgZXJyb3IgbWV0aG9kcyBkbyBub3QgZGVwZW5kCisg
ICAgICAgIGluIHRoZSBsb2FkZXIgY2xpZW50IGluc3RhbmNlIGF0IGFsbC4KKworICAgICAgICBS
ZW1vdmUgdGhlIGVycm9yIG1ldGhvZHMgZnJvbSBGcmFtZUxvYWRlckNsaWVudCBhbmQgYWRvcHQg
dGhlIFdlYkVycm9ycworICAgICAgICBmcm9tIFdLMiBpbnRvIFdlYkNvcmUsIHN0YW5kYWxvbmUg
bWV0aG9kcy4gTW92ZSB0aGUgRUZMLCBHVEssIGFuZCBNYWMgaW1wbGVtZW50YXRpb25zCisgICAg
ICAgIHRvIFdlYkNvcmUvcGxhdGZvcm0sIGFuZCB1cGRhdGUgdGhlIGNvZGUgZXZlcnl3aGVyZSBh
Y2NvcmRpbmdseS4KKworICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xp
ZW50Lmg6CisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQubW06
CisgICAgICAgIChXZWJGcmFtZUxvYWRlckNsaWVudDo6Y2FuY2VsbGVkRXJyb3IpOiBEZWxldGVk
LgorICAgICAgICAoV2ViRnJhbWVMb2FkZXJDbGllbnQ6OmJsb2NrZWRFcnJvcik6IERlbGV0ZWQu
CisgICAgICAgIChXZWJGcmFtZUxvYWRlckNsaWVudDo6YmxvY2tlZEJ5Q29udGVudEJsb2NrZXJF
cnJvcik6IERlbGV0ZWQuCisgICAgICAgIChXZWJGcmFtZUxvYWRlckNsaWVudDo6Y2Fubm90U2hv
d1VSTEVycm9yKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkZyYW1lTG9hZGVyQ2xpZW50OjppbnRl
cnJ1cHRlZEZvclBvbGljeUNoYW5nZUVycm9yKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkZyYW1l
TG9hZGVyQ2xpZW50OjpjYW5ub3RTaG93TUlNRVR5cGVFcnJvcik6IERlbGV0ZWQuCisgICAgICAg
IChXZWJGcmFtZUxvYWRlckNsaWVudDo6ZmlsZURvZXNOb3RFeGlzdEVycm9yKTogRGVsZXRlZC4K
KyAgICAgICAgKFdlYkZyYW1lTG9hZGVyQ2xpZW50OjpwbHVnaW5XaWxsSGFuZGxlTG9hZEVycm9y
KTogRGVsZXRlZC4KKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9XZWJGcmFtZU5ldHdvcmtpbmdD
b250ZXh0Lm1tOgorICAgICAgICAoV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dDo6YmxvY2tlZEVy
cm9yKToKKyAgICAgICAgKiBXZWJWaWV3L1dlYkhUTUxSZXByZXNlbnRhdGlvbi5tbToKKyAgICAg
ICAgKC1bV2ViSFRNTFJlcHJlc2VudGF0aW9uIHJlY2VpdmVkRGF0YTp3aXRoRGF0YVNvdXJjZTpd
KToKKwogMjAxNi0wNi0wOSAgQWxleCBDaHJpc3RlbnNlbiAgPGFjaHJpc3RlbnNlbkB3ZWJraXQu
b3JnPgogCiAgICAgICAgIENsZWFuIHVwIEVkaXRvckNsaWVudCBsaWZldGltZQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCmlu
ZGV4IGY4MzQxYWUzNjQ5ZDAzZTRkOWRhZGQ5NDA5NDc5MDNiMzQ0MTAwY2IuLmU2NGZkMTdmYmNj
MTk4ZjI4Zjg3NTZlZjEyYzBjMjdiYmYwMDE3N2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQy
L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKQEAgLTEsMyArMSw5MyBA
QAorMjAxNi0wNS0yMCAgQ2xhdWRpbyBTYWF2ZWRyYSAgPGNzYWF2ZWRyYUBpZ2FsaWEuY29tPgor
CisgICAgICAgIFVuaWZ5aW5nIEVycm9ycy9XZWJFcnJvcnMgaW50byBXZWJDb3JlCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNTY5NzQKKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBGcmFtZUxvYWRlckNsaWVu
dCBlcnJvciBtZXRob2RzIGluIFdlYkNvcmUgYW5kIFdlYkVycm9ycyBpbiBXSzIgYXJlCisgICAg
ICAgIHJlZHVuZGFudC4gRnVydGhlcm1vcmUsIEZyYW1lTG9hZGVyQ2xpZW50IGVycm9yIG1ldGhv
ZHMgZG8gbm90IGRlcGVuZAorICAgICAgICBpbiB0aGUgbG9hZGVyIGNsaWVudCBpbnN0YW5jZSBh
dCBhbGwuCisKKyAgICAgICAgUmVtb3ZlIHRoZSBlcnJvciBtZXRob2RzIGZyb20gRnJhbWVMb2Fk
ZXJDbGllbnQgYW5kIGFkb3B0IHRoZSBXZWJFcnJvcnMKKyAgICAgICAgZnJvbSBXSzIgaW50byBX
ZWJDb3JlLCBzdGFuZGFsb25lIG1ldGhvZHMuIE1vdmUgdGhlIEVGTCwgR1RLLCBhbmQgTWFjIGlt
cGxlbWVudGF0aW9ucworICAgICAgICB0byBXZWJDb3JlL3BsYXRmb3JtLCBhbmQgdXBkYXRlIHRo
ZSBjb2RlIGV2ZXJ5d2hlcmUgYWNjb3JkaW5nbHkuCisKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vz
cy9Eb3dubG9hZHMvZWZsL0Rvd25sb2FkU291cEVycm9yc0VmbC5jcHA6IFJlbW92ZWQuCisgICAg
ICAgIChXZWJLaXQ6OnBsYXRmb3JtRG93bmxvYWROZXR3b3JrRXJyb3IpOiBEZWxldGVkLgorICAg
ICAgICAoV2ViS2l0OjpwbGF0Zm9ybURvd25sb2FkRGVzdGluYXRpb25FcnJvcik6IERlbGV0ZWQu
CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvRG93bmxvYWRzL2d0ay9Eb3dubG9hZFNvdXBFcnJv
cnNHdGsuY3BwOgorICAgICAgICAoV2ViS2l0OjpwbGF0Zm9ybURvd25sb2FkTmV0d29ya0Vycm9y
KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYktpdDo6cGxhdGZvcm1Eb3dubG9hZERlc3RpbmF0aW9u
RXJyb3IpOiBEZWxldGVkLgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL0Rvd25sb2Fkcy9zb3Vw
L0Rvd25sb2FkU291cEVycm9ycy5jcHA6IFJlbmFtZWQgZnJvbSBTb3VyY2UvV2ViS2l0Mi9OZXR3
b3JrUHJvY2Vzcy9Eb3dubG9hZHMvZ3RrL0Rvd25sb2FkU291cEVycm9yc0d0ay5jcHAuCisgICAg
ICAgIChXZWJLaXQ6OnBsYXRmb3JtRG93bmxvYWROZXR3b3JrRXJyb3IpOgorICAgICAgICAoV2Vi
S2l0OjpwbGF0Zm9ybURvd25sb2FkRGVzdGluYXRpb25FcnJvcik6CisgICAgICAgICogTmV0d29y
a1Byb2Nlc3MvTmV0d29ya0xvYWQuY3BwOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrTG9hZDo6
d2FzQmxvY2tlZCk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtMb2FkOjpjYW5ub3RTaG93VVJM
KToKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9tYWMvUmVtb3RlTmV0d29ya2luZ0NvbnRleHQu
bW06CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZU5ldHdvcmtpbmdDb250ZXh0OjpibG9ja2VkRXJy
b3IpOgorICAgICAgICAqIFBsYXRmb3JtRWZsLmNtYWtlOgorICAgICAgICAqIFBsYXRmb3JtR1RL
LmNtYWtlOgorICAgICAgICAqIFBsYXRmb3JtTWFjLmNtYWtlOgorICAgICAgICAqIFNoYXJlZC9B
UEkvQVBJRXJyb3IuY3BwOgorICAgICAgICAoQVBJOjpFcnJvcjo6d2ViS2l0RXJyb3JEb21haW4p
OgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvZWZsL2V3a19lcnJvci5jcHA6CisgICAgICAgICog
VUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0RG93bmxvYWQuY3BwOgorICAgICAgICAqIFVJUHJvY2Vz
cy9BUEkvZ3RrL1dlYktpdEVycm9yLmNwcDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2d0ay9X
ZWJLaXRQcml2YXRlLmNwcDoKKyAgICAgICAgKiBVSVByb2Nlc3MvTmV0d29yay9DdXN0b21Qcm90
b2NvbHMvc291cC9XZWJTb3VwQ3VzdG9tUHJvdG9jb2xSZXF1ZXN0TWFuYWdlci5jcHA6CisgICAg
ICAgICogV2ViS2l0Mi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIFdlYlBy
b2Nlc3MvTmV0d29yay9XZWJMb2FkZXJTdHJhdGVneS5jcHA6CisgICAgICAgICogV2ViUHJvY2Vz
cy9OZXR3b3JrL1dlYlJlc291cmNlTG9hZGVyLmNwcDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dl
YkNvcmVTdXBwb3J0L1dlYkVycm9ycy5oOiBSZW1vdmVkLgorICAgICAgICAqIFdlYlByb2Nlc3Mv
V2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuY3BwOgorICAgICAgICAoV2ViS2l0
OjpXZWJGcmFtZUxvYWRlckNsaWVudDo6c2hvdWxkRmFsbEJhY2spOgorICAgICAgICAoV2ViS2l0
OjpXZWJGcmFtZUxvYWRlckNsaWVudDo6Y2FuY2VsbGVkRXJyb3IpOiBEZWxldGVkLgorICAgICAg
ICAoV2ViS2l0OjpXZWJGcmFtZUxvYWRlckNsaWVudDo6YmxvY2tlZEVycm9yKTogRGVsZXRlZC4K
KyAgICAgICAgKFdlYktpdDo6V2ViRnJhbWVMb2FkZXJDbGllbnQ6OmJsb2NrZWRCeUNvbnRlbnRC
bG9ja2VyRXJyb3IpOiBEZWxldGVkLgorICAgICAgICAoV2ViS2l0OjpXZWJGcmFtZUxvYWRlckNs
aWVudDo6Y2Fubm90U2hvd1VSTEVycm9yKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYktpdDo6V2Vi
RnJhbWVMb2FkZXJDbGllbnQ6OmludGVycnVwdGVkRm9yUG9saWN5Q2hhbmdlRXJyb3IpOiBEZWxl
dGVkLgorICAgICAgICAoV2ViS2l0OjpXZWJGcmFtZUxvYWRlckNsaWVudDo6Y2Fubm90U2hvd01J
TUVUeXBlRXJyb3IpOiBEZWxldGVkLgorICAgICAgICAoV2ViS2l0OjpXZWJGcmFtZUxvYWRlckNs
aWVudDo6ZmlsZURvZXNOb3RFeGlzdEVycm9yKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYktpdDo6
V2ViRnJhbWVMb2FkZXJDbGllbnQ6OnBsdWdpbldpbGxIYW5kbGVMb2FkRXJyb3IpOiBEZWxldGVk
LgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGll
bnQuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlBsYXRmb3JtU3Ry
YXRlZ2llcy5jcHA6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9lZmwvV2Vi
RXJyb3JzRWZsLmNwcDogUmVtb3ZlZC4KKyAgICAgICAgKFdlYktpdDo6Y2FuY2VsbGVkRXJyb3Ip
OiBEZWxldGVkLgorICAgICAgICAoV2ViS2l0OjpibG9ja2VkRXJyb3IpOiBEZWxldGVkLgorICAg
ICAgICAoV2ViS2l0OjpibG9ja2VkQnlDb250ZW50QmxvY2tlckVycm9yKTogRGVsZXRlZC4KKyAg
ICAgICAgKFdlYktpdDo6Y2Fubm90U2hvd1VSTEVycm9yKTogRGVsZXRlZC4KKyAgICAgICAgKFdl
YktpdDo6aW50ZXJydXB0ZWRGb3JQb2xpY3lDaGFuZ2VFcnJvcik6IERlbGV0ZWQuCisgICAgICAg
IChXZWJLaXQ6OmNhbm5vdFNob3dNSU1FVHlwZUVycm9yKTogRGVsZXRlZC4KKyAgICAgICAgKFdl
YktpdDo6ZmlsZURvZXNOb3RFeGlzdEVycm9yKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYktpdDo6
cGx1Z2luV2lsbEhhbmRsZUxvYWRFcnJvcik6IERlbGV0ZWQuCisgICAgICAgIChXZWJLaXQ6Omlu
dGVybmFsRXJyb3IpOiBEZWxldGVkLgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBv
cnQvZ3RrL1dlYkVycm9yc0d0ay5jcHA6IFJlbW92ZWQuCisgICAgICAgIChXZWJLaXQ6OmNhbmNl
bGxlZEVycm9yKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYktpdDo6YmxvY2tlZEVycm9yKTogRGVs
ZXRlZC4KKyAgICAgICAgKFdlYktpdDo6YmxvY2tlZEJ5Q29udGVudEJsb2NrZXJFcnJvcik6IERl
bGV0ZWQuCisgICAgICAgIChXZWJLaXQ6OmNhbm5vdFNob3dVUkxFcnJvcik6IERlbGV0ZWQuCisg
ICAgICAgIChXZWJLaXQ6OmludGVycnVwdGVkRm9yUG9saWN5Q2hhbmdlRXJyb3IpOiBEZWxldGVk
LgorICAgICAgICAoV2ViS2l0OjpjYW5ub3RTaG93TUlNRVR5cGVFcnJvcik6IERlbGV0ZWQuCisg
ICAgICAgIChXZWJLaXQ6OmZpbGVEb2VzTm90RXhpc3RFcnJvcik6IERlbGV0ZWQuCisgICAgICAg
IChXZWJLaXQ6OnBsdWdpbldpbGxIYW5kbGVMb2FkRXJyb3IpOiBEZWxldGVkLgorICAgICAgICAo
V2ViS2l0OjppbnRlcm5hbEVycm9yKTogRGVsZXRlZC4KKyAgICAgICAgKiBXZWJQcm9jZXNzL1dl
YkNvcmVTdXBwb3J0L21hYy9XZWJFcnJvcnNNYWMubW06CisgICAgICAgIChXZWJLaXQ6OmNyZWF0
ZU5TRXJyb3IpOiBEZWxldGVkLgorICAgICAgICAoV2ViS2l0OjpjYW5jZWxsZWRFcnJvcik6IERl
bGV0ZWQuCisgICAgICAgIChXZWJLaXQ6OmZpbGVEb2VzTm90RXhpc3RFcnJvcik6IERlbGV0ZWQu
CisgICAgICAgIChXZWJLaXQ6OmJsb2NrZWRFcnJvcik6IERlbGV0ZWQuCisgICAgICAgIChXZWJL
aXQ6OmJsb2NrZWRCeUNvbnRlbnRCbG9ja2VyRXJyb3IpOiBEZWxldGVkLgorICAgICAgICAoV2Vi
S2l0OjpjYW5ub3RTaG93VVJMRXJyb3IpOiBEZWxldGVkLgorICAgICAgICAoV2ViS2l0OjppbnRl
cnJ1cHRlZEZvclBvbGljeUNoYW5nZUVycm9yKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYktpdDo6
Y2Fubm90U2hvd01JTUVUeXBlRXJyb3IpOiBEZWxldGVkLgorICAgICAgICAoV2ViS2l0OjpwbHVn
aW5XaWxsSGFuZGxlTG9hZEVycm9yKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYktpdDo6aW50ZXJu
YWxFcnJvcik6IERlbGV0ZWQuCisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9t
YWMvV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dC5tbToKKyAgICAgICAgKFdlYktpdDo6V2ViRnJh
bWVOZXR3b3JraW5nQ29udGV4dDo6YmxvY2tlZEVycm9yKToKKyAgICAgICAgKiBXZWJQcm9jZXNz
L1dlYlBhZ2UvZ3RrL1dlYlByaW50T3BlcmF0aW9uR3RrLmNwcDoKKwogMjAxNi0wNi0wOSAgQW50
b2luZSBRdWludCAgPGdyYW91dHNAYXBwbGUuY29tPgogCiAgICAgICAgIFtpT1NdIC13ZWJraXQt
b3ZlcmZsb3ctc2Nyb2xsaW5nOiB0b3VjaDsgaWdub3JlcyBwb2ludGVyLWV2ZW50czogbm9uZTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0IGIvU291cmNlL1dlYkNv
cmUvQ01ha2VMaXN0cy50eHQKaW5kZXggNjcyYzRiMjY0YjIyZmU0YjE2Yjc5YzczMDFmMjY1MTI3
N2YwNGQ5ZC4uNGQ4NGU5N2QzZjNjOTc2MjYwMTY4NmI4NjFlYzBiODFhNjc5ZDhlNSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKKysrIGIvU291cmNlL1dlYkNvcmUv
Q01ha2VMaXN0cy50eHQKQEAgLTIxMDYsNiArMjEwNiw3IEBAIHNldChXZWJDb3JlX1NPVVJDRVMK
ICAgICBwbGF0Zm9ybS9EaXNwbGF5U2xlZXBEaXNhYmxlci5jcHAKICAgICBwbGF0Zm9ybS9EcmFn
RGF0YS5jcHAKICAgICBwbGF0Zm9ybS9EcmFnSW1hZ2UuY3BwCisgICAgcGxhdGZvcm0vRXJyb3Jz
LmNwcAogICAgIHBsYXRmb3JtL0ZpbGVDaG9vc2VyLmNwcAogICAgIHBsYXRmb3JtL0ZpbGVTdHJl
YW0uY3BwCiAgICAgcGxhdGZvcm0vRmlsZVN5c3RlbS5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL1BsYXRmb3JtRWZsLmNtYWtlIGIvU291cmNlL1dlYkNvcmUvUGxhdGZvcm1FZmwuY21h
a2UKaW5kZXggMzI5YTE2MDc5MTg5ODYxMDNjNjBlMGI2MGQ0MGNlZTBlZjZiYzY4MS4uMjg5NGVk
Y2MwYTRlODRhMzEzNzIzYjhlOWRkNDNjMzdmNTVlNjcwZSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvUGxhdGZvcm1FZmwuY21ha2UKKysrIGIvU291cmNlL1dlYkNvcmUvUGxhdGZvcm1FZmwu
Y21ha2UKQEAgLTk1LDcgKzk1LDYgQEAgbGlzdChBUFBFTkQgV2ViQ29yZV9TT1VSQ0VTCiAgICAg
cGxhdGZvcm0vZWZsL0VmbEluc3BlY3RvclV0aWxpdGllcy5jcHAKICAgICBwbGF0Zm9ybS9lZmwv
RWZsS2V5Ym9hcmRVdGlsaXRpZXMuY3BwCiAgICAgcGxhdGZvcm0vZWZsL0VmbFNjcmVlblV0aWxp
dGllcy5jcHAKLSAgICBwbGF0Zm9ybS9lZmwvRXJyb3JzRWZsLmNwcAogICAgIHBsYXRmb3JtL2Vm
bC9FdmVudExvb3BFZmwuY3BwCiAgICAgcGxhdGZvcm0vZWZsL0ZpbGVTeXN0ZW1FZmwuY3BwCiAg
ICAgcGxhdGZvcm0vZWZsL0dhbWVwYWRzRWZsLmNwcApAQCAtMjE4LDYgKzIxNyw3IEBAIGxpc3Qo
QVBQRU5EIFdlYkNvcmVfU09VUkNFUwogCiAgICAgcGxhdGZvcm0vdGV4dC9oeXBoZW4vSHlwaGVu
YXRpb25MaWJIeXBoZW4uY3BwCiAKKyAgICBwbGF0Zm9ybS91bml4L0Vycm9yc1VuaXguY3BwCiAg
ICAgcGxhdGZvcm0vdW5peC9Mb2dnaW5nVW5peC5jcHAKIAogICAgIHJlbmRlcmluZy9SZW5kZXJU
aGVtZUVmbC5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1BsYXRmb3JtR1RLLmNtYWtl
IGIvU291cmNlL1dlYkNvcmUvUGxhdGZvcm1HVEsuY21ha2UKaW5kZXggNzRlNTE5NWFiMDk0OTcz
MjBmZDliNmI0ZWY5NmI2ZmY0ZTNiMjQ2Mi4uMDgzYzgzMzg1NTVjMWQ3NDFkNGFjNDJhYjVhOTQx
NDljZTVkYzliMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvUGxhdGZvcm1HVEsuY21ha2UK
KysrIGIvU291cmNlL1dlYkNvcmUvUGxhdGZvcm1HVEsuY21ha2UKQEAgLTE0MCw3ICsxNDAsNiBA
QCBsaXN0KEFQUEVORCBXZWJDb3JlX1NPVVJDRVMKICAgICBwbGF0Zm9ybS9ncmFwaGljcy94MTEv
UGxhdGZvcm1EaXNwbGF5WDExLmNwcAogICAgIHBsYXRmb3JtL2dyYXBoaWNzL3gxMS9YVW5pcXVl
UmVzb3VyY2UuY3BwCiAKLSAgICBwbGF0Zm9ybS9ndGsvRXJyb3JzR3RrLmNwcAogICAgIHBsYXRm
b3JtL2d0ay9NSU1FVHlwZVJlZ2lzdHJ5R3RrLmNwcAogICAgIHBsYXRmb3JtL2d0ay9TY3JvbGxB
bmltYXRvckd0ay5jcHAKICAgICBwbGF0Zm9ybS9ndGsvVGVtcG9yYXJ5TGlua1N0dWJzLmNwcApA
QCAtMTgzLDYgKzE4Miw3IEBAIGxpc3QoQVBQRU5EIFdlYkNvcmVfU09VUkNFUwogCiAgICAgcGxh
dGZvcm0vdGV4dC9oeXBoZW4vSHlwaGVuYXRpb25MaWJIeXBoZW4uY3BwCiAKKyAgICBwbGF0Zm9y
bS91bml4L0Vycm9yc1VuaXguY3BwCiAgICAgcGxhdGZvcm0vdW5peC9Mb2dnaW5nVW5peC5jcHAK
ICkKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvUGxhdGZvcm1NYWMuY21ha2UgYi9Tb3Vy
Y2UvV2ViQ29yZS9QbGF0Zm9ybU1hYy5jbWFrZQppbmRleCBmNjk0ZjEwMTVkNzljYzkxMTg2ZTg2
YTk3YTFiYTIyZmM3YTkwZWExLi5jYzY1MDBiNTMyNWQzNzRhZDAxN2JmNjUxMjAxOGQ3Y2Y3NDNj
MzI4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9QbGF0Zm9ybU1hYy5jbWFrZQorKysgYi9T
b3VyY2UvV2ViQ29yZS9QbGF0Zm9ybU1hYy5jbWFrZQpAQCAtNDY3LDYgKzQ2Nyw3IEBAIGxpc3Qo
QVBQRU5EIFdlYkNvcmVfU09VUkNFUwogICAgIHBsYXRmb3JtL21hYy9DdXJzb3JNYWMubW0KICAg
ICBwbGF0Zm9ybS9tYWMvRHJhZ0RhdGFNYWMubW0KICAgICBwbGF0Zm9ybS9tYWMvRHJhZ0ltYWdl
TWFjLm1tCisgICAgcGxhdGZvcm0vbWFjL0Vycm9yc01hYy5tbQogICAgIHBsYXRmb3JtL21hYy9F
dmVudExvb3BNYWMubW0KICAgICBwbGF0Zm9ybS9tYWMvRmlsZVN5c3RlbU1hYy5tbQogICAgIHBs
YXRmb3JtL21hYy9ISURHYW1lcGFkLmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvUGxh
dGZvcm1XaW4uY21ha2UgYi9Tb3VyY2UvV2ViQ29yZS9QbGF0Zm9ybVdpbi5jbWFrZQppbmRleCAw
YzM0ZTk3ZGJkNjc2NTNjYWUxZGZlZGM1NTlhM2Y4OTNhMDI2OTYxLi5mNTI0ZDM5MWEzY2Q3YjM0
NjZhYzc5ODkyNzUwMzRkZGRiODU2MzVkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9QbGF0
Zm9ybVdpbi5jbWFrZQorKysgYi9Tb3VyY2UvV2ViQ29yZS9QbGF0Zm9ybVdpbi5jbWFrZQpAQCAt
MTE4LDYgKzExOCw3IEBAIGxpc3QoQVBQRU5EIFdlYkNvcmVfU09VUkNFUwogICAgIHBsYXRmb3Jt
L3dpbi9EZWZXbmRQcm9jV2luZG93Q2xhc3MuY3BwCiAgICAgcGxhdGZvcm0vd2luL0RyYWdEYXRh
V2luLmNwcAogICAgIHBsYXRmb3JtL3dpbi9EcmFnSW1hZ2VXaW4uY3BwCisgICAgcGxhdGZvcm0v
d2luL0Vycm9yc1dpbi5jcHAKICAgICBwbGF0Zm9ybS93aW4vRXZlbnRMb29wV2luLmNwcAogICAg
IHBsYXRmb3JtL3dpbi9GaWxlU3lzdGVtV2luLmNwcAogICAgIHBsYXRmb3JtL3dpbi9HRElPYmpl
Y3RDb3VudGVyLmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXBy
b2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJv
amVjdC5wYnhwcm9qCmluZGV4IGI0OWE4M2NlM2M2ZDljZWY2NmQ1OGUyZWQ1MDJhMmZiNDAzOTUz
YWIuLjQyNzMyNjlkYjMyZTBkZTNmNmVjZGVkZTI3NWZjNDNkNDZmODUxMGYgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9T
b3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTE5NjMs
NiArMTk2Myw3IEBACiAJCTUxMEQ0QTM2MTAzMTY1RUUwMDQ5RUE1NCAvKiBTb2NrZXRTdHJlYW1I
YW5kbGVCYXNlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDUxMEQ0QTMwMTAzMTY1RUUwMDQ5RUE1NCAvKiBTb2NrZXRTdHJlYW1IYW5kbGVCYXNlLmNw
cCAqLzsgfTsKIAkJNTEwRDRBMzcxMDMxNjVFRTAwNDlFQTU0IC8qIFNvY2tldFN0cmVhbUhhbmRs
ZUJhc2UuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUx
MEQ0QTMxMTAzMTY1RUUwMDQ5RUE1NCAvKiBTb2NrZXRTdHJlYW1IYW5kbGVCYXNlLmggKi87IH07
CiAJCTUxMEQ0QTM4MTAzMTY1RUUwMDQ5RUE1NCAvKiBTb2NrZXRTdHJlYW1IYW5kbGVDbGllbnQu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxMEQ0QTMy
MTAzMTY1RUUwMDQ5RUE1NCAvKiBTb2NrZXRTdHJlYW1IYW5kbGVDbGllbnQuaCAqLzsgfTsKKwkJ
NTExM0U2RDYxQ0UwQzdBNDAwMkQ5NTYxIC8qIEVycm9ycy5jcHAgaW4gU291cmNlcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MTEzRTZENTFDRTBDNzkwMDAyRDk1NjEgLyog
RXJyb3JzLmNwcCAqLzsgfTsKIAkJNTExRUMxMjcxQzUwQUFDQTAwMzJGOTgzIC8qIElEQlNlcmlh
bGl6YXRpb24uY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gNTExRUMxMjUxQzUwQUE1NzAwMzJGOTgzIC8qIElEQlNlcmlhbGl6YXRpb24uY3BwICovOyB9
OwogCQk1MTFFQzEyODFDNTBBQUNBMDAzMkY5ODMgLyogSURCU2VyaWFsaXphdGlvbi5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTExRUMxMjYxQzUwQUE1
NzAwMzJGOTgzIC8qIElEQlNlcmlhbGl6YXRpb24uaCAqLzsgfTsKIAkJNTExRUMxMkIxQzUwQUJC
RjAwMzJGOTgzIC8qIFNRTGl0ZUlEQlRyYW5zYWN0aW9uLmNwcCBpbiBTb3VyY2VzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxMUVDMTI5MUM1MEFCQkEwMDMyRjk4MyAvKiBT
UUxpdGVJREJUcmFuc2FjdGlvbi5jcHAgKi87IH07CkBAIC0yMDUzLDYgKzIwNTQsOCBAQAogCQk1
MTYxMDNCMDFDQURCQTdBMDAxNkI0QzcgLyogSURCVmFsdWUuY3BwIGluIFNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTE2MTAzQUQxQ0FEQjlBMzAwMTZCNEM3IC8q
IElEQlZhbHVlLmNwcCAqLzsgfTsKIAkJNTE2MkM3RjQxMUY3N0VGQjAwNjEyRUZFIC8qIFNjaGVt
ZVJlZ2lzdHJ5LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDUxNjJDN0YyMTFGNzdFRkEwMDYxMkVGRSAvKiBTY2hlbWVSZWdpc3RyeS5jcHAgKi87IH07
CiAJCTUxNjJDN0Y1MTFGNzdFRkIwMDYxMkVGRSAvKiBTY2hlbWVSZWdpc3RyeS5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTE2MkM3RjMxMUY3N0VGQjAw
NjEyRUZFIC8qIFNjaGVtZVJlZ2lzdHJ5LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAo
UHJpdmF0ZSwgKTsgfTsgfTsKKwkJNTE2NDc2MDQxQ0UwOTA1QTAwOTFGMEE5IC8qIEVycm9ycy5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTE2NDc2MDMx
Q0UwOTAxQzAwOTFGMEE5IC8qIEVycm9ycy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0g
KFB1YmxpYywgKTsgfTsgfTsKKwkJNTE2NDc2MDYxQ0UwOTBCMTAwOTFGMEE5IC8qIEVycm9yc01h
Yy5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxNjQ3
NjA1MUNFMDkwOTEwMDkxRjBBOSAvKiBFcnJvcnNNYWMubW0gKi87IH07CiAJCTUxNjk1Mzk3MTMy
OUEzQzgwMEI5MkQwNCAvKiBJY29uRGF0YWJhc2VCYXNlLmNwcCBpbiBTb3VyY2VzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxNjk1Mzk1MTMyOUEzQzgwMEI5MkQwNCAvKiBJ
Y29uRGF0YWJhc2VCYXNlLmNwcCAqLzsgfTsKIAkJNTE2OTUzOTgxMzI5QTNDODAwQjkyRDA0IC8q
IEljb25EYXRhYmFzZUJhc2UuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDUxNjk1Mzk2MTMyOUEzQzgwMEI5MkQwNCAvKiBJY29uRGF0YWJhc2VCYXNlLmgg
Ki87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJNTE2QkI3
OTQwQ0U5MUU2ODAwNTEyRjc5IC8qIEpTVHJlZVdhbGtlckN1c3RvbS5jcHAgaW4gU291cmNlcyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MTZCQjc5MjBDRTkxRTY4MDA1MTJG
NzkgLyogSlNUcmVlV2Fsa2VyQ3VzdG9tLmNwcCAqLzsgfTsKQEAgLTk1NDAsNiArOTU0Myw3IEBA
CiAJCTUxMEQ0QTMwMTAzMTY1RUUwMDQ5RUE1NCAvKiBTb2NrZXRTdHJlYW1IYW5kbGVCYXNlLmNw
cCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFNvY2tldFN0cmVhbUhhbmRs
ZUJhc2UuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1MTBENEEzMTEwMzE2NUVF
MDA0OUVBNTQgLyogU29ja2V0U3RyZWFtSGFuZGxlQmFzZS5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBTb2NrZXRTdHJlYW1IYW5kbGVCYXNlLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCTUxMEQ0QTMyMTAzMTY1RUUwMDQ5RUE1NCAvKiBTb2NrZXRTdHJlYW1IYW5k
bGVDbGllbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU29ja2V0U3RyZWFt
SGFuZGxlQ2xpZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTUxMTNFNkQ1MUNF
MEM3OTAwMDJEOTU2MSAvKiBFcnJvcnMuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3Bw
OyBwYXRoID0gRXJyb3JzLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTExRUMx
MjUxQzUwQUE1NzAwMzJGOTgzIC8qIElEQlNlcmlhbGl6YXRpb24uY3BwICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSURCU2VyaWFsaXphdGlvbi5jcHA7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCTUxMUVDMTI2MUM1MEFBNTcwMDMyRjk4MyAvKiBJREJTZXJpYWxp
emF0aW9uLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IElEQlNlcmlhbGl6YXRp
b24uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTExRUMxMjkxQzUwQUJCQTAwMzJG
OTgzIC8qIFNRTGl0ZUlEQlRyYW5zYWN0aW9uLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
LmNwcDsgcGF0aCA9IFNRTGl0ZUlEQlRyYW5zYWN0aW9uLmNwcDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKQEAgLTk2NTgsNiArOTY2Miw4IEBACiAJCTUxNjQ1QjUyMUI5Rjg4OUIwMEY3ODlD
RSAvKiBJREJWZXJzaW9uQ2hhbmdlRXZlbnQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
Y3BwOyBwYXRoID0gSURCVmVyc2lvbkNoYW5nZUV2ZW50LmNwcDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJNTE2NDVCNTMxQjlGODg5QjAwRjc4OUNFIC8qIElEQlZlcnNpb25DaGFuZ2VF
dmVudC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBJREJWZXJzaW9uQ2hhbmdl
RXZlbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTE2NDVCNTQxQjlGODhFODAw
Rjc4OUNFIC8qIElEQkN1cnNvci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBh
dGggPSBJREJDdXJzb3IuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk1MTY0NzYw
MzFDRTA5MDFDMDA5MUYwQTkgLyogRXJyb3JzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IEVycm9ycy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk1MTY0NzYwNTFD
RTA5MDkxMDA5MUYwQTkgLyogRXJyb3JzTWFjLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
b2JqY3BwOyBwYXRoID0gRXJyb3JzTWFjLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQk1MTY5NTM5NTEzMjlBM0M4MDBCOTJEMDQgLyogSWNvbkRhdGFiYXNlQmFzZS5jcHAgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBJY29uRGF0YWJhc2VCYXNlLmNwcDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTE2OTUzOTYxMzI5QTNDODAwQjkyRDA0IC8qIElj
b25EYXRhYmFzZUJhc2UuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSWNvbkRh
dGFiYXNlQmFzZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1MTZCQjc5MjBDRTkx
RTY4MDA1MTJGNzkgLyogSlNUcmVlV2Fsa2VyQ3VzdG9tLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLmNwcDsgcGF0aCA9IEpTVHJlZVdhbGtlckN1c3RvbS5jcHA7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CkBAIC0xNzg3MCwxMCArMTc4NzYsMTMgQEAKIAkJNjU4MkExNDgwOTk5OUQ2
QzAwQkVFQjZEIC8qIG1hYyAqLyA9IHsKIAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJY2hpbGRyZW4g
PSAoCisJCQkJNjVBNjQwRjAwNTMzQkIxRjAwODVFNzc3IC8qIEJsb2NrRXhjZXB0aW9ucy5oICov
LAorCQkJCTY1RjgwNjk3MDU0RDlGODYwMDhCRjc3NiAvKiBCbG9ja0V4Y2VwdGlvbnMubW0gKi8s
CiAJCQkJRjU4Nzg0RjAwMkRFMzc1OTAxRUE0MTIyIC8qIEN1cnNvck1hYy5tbSAqLywKIAkJCQlB
Nzk1NDYzRDBCNUM0QzgwMDA3QjQzOEYgLyogRHJhZ0RhdGFNYWMubW0gKi8sCiAJCQkJQTdDRkIz
RDQwQjdFRDExODAwNzBDMzJEIC8qIERyYWdJbWFnZU1hYy5tbSAqLywKIAkJCQlFMUJBNjZGMDE3
NDJCRDg2MDBDMjAyNTEgLyogRHluYW1pY0xpbmtlckludGVycG9zaW5nLmggKi8sCisJCQkJNTE2
NDc2MDUxQ0UwOTA5MTAwOTFGMEE5IC8qIEVycm9yc01hYy5tbSAqLywKIAkJCQkxQ0ExOUUwMzBE
QzI1NTk1MDA2NUE5OTQgLyogRXZlbnRMb29wTWFjLm1tICovLAogCQkJCTUxNEIzRjc1MEM3MjIw
NTUwMDA1MzBERiAvKiBGaWxlU3lzdGVtTWFjLm1tICovLAogCQkJCTUxQTlEOUVGMTk1Qjk1MDMw
MDFCMkI1QyAvKiBISURHYW1lcGFkLmNwcCAqLywKQEAgLTIyODk2LDYgKzIyOTA1LDggQEAKIAkJ
QkNGMUE1QkEwOTc4MzIwOTAwNjFBMTIzIC8qIHBsYXRmb3JtICovID0gewogCQkJaXNhID0gUEJY
R3JvdXA7CiAJCQljaGlsZHJlbiA9ICgKKwkJCQk1MTEzRTZENTFDRTBDNzkwMDAyRDk1NjEgLyog
RXJyb3JzLmNwcCAqLywKKwkJCQk1MTY0NzYwMzFDRTA5MDFDMDA5MUYwQTkgLyogRXJyb3JzLmgg
Ki8sCiAJCQkJNDlFOTEyQTQwRUZBQzhFNjAwOUQwQ0FGIC8qIGFuaW1hdGlvbiAqLywKIAkJCQlG
RDMxNjA0MDEyQjAyNkEzMDBDMUEzNTkgLyogYXVkaW8gKi8sCiAJCQkJMUFFNDJGNjcwQUE0QjhD
QjAwQzg2MTJEIC8qIGNmICovLApAQCAtMjU4MjMsNiArMjU4MzQsNyBAQAogCQkJCTg1RTcxMUJB
MEFDNUQ1MzUwMDUzMjcwRiAvKiBET01IVE1MTWVudUVsZW1lbnRJbnRlcm5hbC5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJODU5QTlDNEQwQUE1RTNCRDAwQjY5NEIyIC8qIERPTUhUTUxNZXRhRWxlbWVu
dC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJODVFNzExQkIwQUM1RDUzNTAwNTMyNzBGIC8qIERPTUhU
TUxNZXRhRWxlbWVudEludGVybmFsLmggaW4gSGVhZGVycyAqLywKKwkJCQk1MTY0NzYwNDFDRTA5
MDVBMDA5MUYwQTkgLyogRXJyb3JzLmggaW4gSGVhZGVycyAqLywKIAkJCQk4NUVDQkVGNTBBQTc2
MjY5MDA1NDRGMEIgLyogRE9NSFRNTE1vZEVsZW1lbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCTg1
RTcxMUJDMEFDNUQ1MzUwMDUzMjcwRiAvKiBET01IVE1MTW9kRWxlbWVudEludGVybmFsLmggaW4g
SGVhZGVycyAqLywKIAkJCQk4NURGODEyQjBBQTc3ODcyMDA0ODZBRDcgLyogRE9NSFRNTE9iamVj
dEVsZW1lbnQuaCBpbiBIZWFkZXJzICovLApAQCAtMjk3NTAsNiArMjk3NjIsNyBAQAogCQkJCUY1
MkFENUU0MTUzNDI0NUYwMDU5RkJFNiAvKiBFbXB0eUNsaWVudHMuY3BwIGluIFNvdXJjZXMgKi8s
CiAJCQkJQThFQTdFQzEwQTE5NDVEMDAwQThFRjVGIC8qIEVudGl0eVJlZmVyZW5jZS5jcHAgaW4g
U291cmNlcyAqLywKIAkJCQlGRDMxNjA5MjEyQjAyNkY3MDBDMUEzNTkgLyogRXF1YWxQb3dlclBh
bm5lci5jcHAgaW4gU291cmNlcyAqLywKKwkJCQk1MTY0NzYwNjFDRTA5MEIxMDA5MUYwQTkgLyog
RXJyb3JzTWFjLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJMkVDRjdBRTExMDE2MkI1ODAwNDI3REU3
IC8qIEVycm9yRXZlbnQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJODUwMzFCNDEwQTQ0RUZDNzAw
Rjk5MkUwIC8qIEV2ZW50LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTQxMzhEMzM2MTI0NDA1NDgw
MDMyM0QzMyAvKiBFdmVudENvbnRleHQuY3BwIGluIFNvdXJjZXMgKi8sCkBAIC0zMTY5NCw2ICsz
MTcwNyw3IEBACiAJCQkJMUZDNDBGQjkxNjU1Q0NCNjAwNDBGMjlFIC8qIFN1YmltYWdlQ2FjaGVX
aXRoVGltZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJRjU1QjNERDMxMjUxRjEyRDAwM0VGMjY5
IC8qIFN1Ym1pdElucHV0VHlwZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk5M0UyMjdFNDBBRjU4
OUFEMDBENDgzMjQgLyogU3VicmVzb3VyY2VMb2FkZXIuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJ
NTExM0U2RDYxQ0UwQzdBNDAwMkQ5NTYxIC8qIEVycm9ycy5jcHAgaW4gU291cmNlcyAqLywKIAkJ
CQk3RTM3RUYyRTEzMzkyMDg4MDBCMjkyNTAgLyogU3VicmVzb3VyY2VMb2FkZXJDRi5jcHAgaW4g
U291cmNlcyAqLywKIAkJCQk3RThGQURDNDE5OUE5NUIxMDA3MTQ5NjggLyogU3VicmVzb3VyY2VM
b2FkZXJDb2NvYS5tbSBpbiBTb3VyY2VzICovLAogCQkJCUUxRkY4RjVGMTgwNzQ0MjEwMDEzMjY3
NCAvKiBTdWJ0bGVDcnlwdG8uY3BwIGluIFNvdXJjZXMgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9sb2FkZXIvRG9jdW1lbnRMb2FkZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVy
L0RvY3VtZW50TG9hZGVyLmNwcAppbmRleCBhZmU1MGJlMTQzNTliZTkzODAwZTRkMGMxM2E4N2Q2
MGMzY2Q4NzQ4Li4xMWE3MDU3OWZkZWViNzUyYTJmMDUzMWY4YTA1MTNmYTMyYzBjNzlhIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRG9jdW1lbnRMb2FkZXIuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2xvYWRlci9Eb2N1bWVudExvYWRlci5jcHAKQEAgLTQxLDYgKzQxLDcgQEAK
ICNpbmNsdWRlICJEb2N1bWVudC5oIgogI2luY2x1ZGUgIkRvY3VtZW50UGFyc2VyLmgiCiAjaW5j
bHVkZSAiRG9jdW1lbnRXcml0ZXIuaCIKKyNpbmNsdWRlICJFcnJvcnMuaCIKICNpbmNsdWRlICJF
dmVudC5oIgogI2luY2x1ZGUgIkV4dGVuc2lvblN0eWxlU2hlZXRzLmgiCiAjaW5jbHVkZSAiRm9y
bVN0YXRlLmgiCkBAIC03NjgsNyArNzY5LDcgQEAgdm9pZCBEb2N1bWVudExvYWRlcjo6Y29udGlu
dWVBZnRlckNvbnRlbnRQb2xpY3koUG9saWN5QWN0aW9uIHBvbGljeSkKICAgICBjYXNlIFBvbGlj
eURvd25sb2FkOiB7CiAgICAgICAgIC8vIG1fbWFpblJlc291cmNlIGNhbiBiZSBudWxsLCBlLmcu
IHdoZW4gbG9hZGluZyBhIHN1YnN0aXR1dGUgcmVzb3VyY2UgZnJvbSBhcHBsaWNhdGlvbiBjYWNo
ZS4KICAgICAgICAgaWYgKCFtX21haW5SZXNvdXJjZSkgewotICAgICAgICAgICAgbWFpblJlY2Vp
dmVkRXJyb3IoZnJhbWVMb2FkZXIoKS0+Y2xpZW50KCkuY2Fubm90U2hvd1VSTEVycm9yKG1fcmVx
dWVzdCkpOworICAgICAgICAgICAgbWFpblJlY2VpdmVkRXJyb3IoY2Fubm90U2hvd1VSTEVycm9y
KG1fcmVxdWVzdCkpOwogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9CiAKQEAgLTg0Nyw3
ICs4NDgsNyBAQCB2b2lkIERvY3VtZW50TG9hZGVyOjpjb21taXRMb2FkKGNvbnN0IGNoYXIqIGRh
dGEsIGludCBsZW5ndGgpCiAKIFJlc291cmNlRXJyb3IgRG9jdW1lbnRMb2FkZXI6OmludGVycnVw
dGVkRm9yUG9saWN5Q2hhbmdlRXJyb3IoKSBjb25zdAogewotICAgIHJldHVybiBmcmFtZUxvYWRl
cigpLT5jbGllbnQoKS5pbnRlcnJ1cHRlZEZvclBvbGljeUNoYW5nZUVycm9yKHJlcXVlc3QoKSk7
CisgICAgcmV0dXJuIFdlYkNvcmU6OmludGVycnVwdGVkRm9yUG9saWN5Q2hhbmdlRXJyb3IocmVx
dWVzdCgpKTsKIH0KIAogdm9pZCBEb2N1bWVudExvYWRlcjo6c3RvcExvYWRpbmdGb3JQb2xpY3lD
aGFuZ2UoKQpAQCAtMTUxNiwxNCArMTUxNywxNCBAQCB2b2lkIERvY3VtZW50TG9hZGVyOjpzdGFy
dExvYWRpbmdNYWluUmVzb3VyY2UoKQogCiAjaWYgRU5BQkxFKENPTlRFTlRfRVhURU5TSU9OUykK
ICAgICBpZiAobV9tYWluUmVzb3VyY2UgJiYgbV9tYWluUmVzb3VyY2UtPmVycm9yT2NjdXJyZWQo
KSAmJiBtX2ZyYW1lLT5wYWdlKCkgJiYgbV9tYWluUmVzb3VyY2UtPnJlc291cmNlRXJyb3IoKS5k
b21haW4oKSA9PSBDb250ZW50RXh0ZW5zaW9uczo6V2ViS2l0Q29udGVudEJsb2NrZXJEb21haW4p
IHsKLSAgICAgICAgY2FuY2VsTWFpblJlc291cmNlTG9hZChmcmFtZUxvYWRlcigpLT5ibG9ja2Vk
QnlDb250ZW50QmxvY2tlckVycm9yKG1fcmVxdWVzdCkpOworICAgICAgICBjYW5jZWxNYWluUmVz
b3VyY2VMb2FkKFdlYkNvcmU6OmJsb2NrZWRCeUNvbnRlbnRCbG9ja2VyRXJyb3IobV9yZXF1ZXN0
KSk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAjZW5kaWYKIAogICAgIGlmICghbV9tYWluUmVz
b3VyY2UpIHsKICAgICAgICAgaWYgKCFtX3JlcXVlc3QudXJsKCkuaXNWYWxpZCgpKSB7Ci0gICAg
ICAgICAgICBjYW5jZWxNYWluUmVzb3VyY2VMb2FkKGZyYW1lTG9hZGVyKCktPmNsaWVudCgpLmNh
bm5vdFNob3dVUkxFcnJvcihtX3JlcXVlc3QpKTsKKyAgICAgICAgICAgIGNhbmNlbE1haW5SZXNv
dXJjZUxvYWQoY2Fubm90U2hvd1VSTEVycm9yKG1fcmVxdWVzdCkpOwogICAgICAgICAgICAgcmV0
dXJuOwogICAgICAgICB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9FbXB0
eUNsaWVudHMuaCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9FbXB0eUNsaWVudHMuaAppbmRleCAx
MGU3ZWU4YTZjMTliZjU3MjA0ZWI3YTczYTE5NTk5ZGQ3NzU5Y2M4Li4zZjJiMjE4N2Q0ZTcxMDg2
OTc5MjdhNWI0NTgxMWQ5ZTAxYmQyYWE5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2Fk
ZXIvRW1wdHlDbGllbnRzLmgKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0VtcHR5Q2xpZW50
cy5oCkBAIC0zMzAsMTYgKzMzMCw2IEBAIHB1YmxpYzoKICAgICB2b2lkIGNvbW1pdHRlZExvYWQo
RG9jdW1lbnRMb2FkZXIqLCBjb25zdCBjaGFyKiwgaW50KSBvdmVycmlkZSB7IH0KICAgICB2b2lk
IGZpbmlzaGVkTG9hZGluZyhEb2N1bWVudExvYWRlciopIG92ZXJyaWRlIHsgfQogCi0gICAgUmVz
b3VyY2VFcnJvciBjYW5jZWxsZWRFcnJvcihjb25zdCBSZXNvdXJjZVJlcXVlc3QmKSBvdmVycmlk
ZSB7IHJldHVybiBSZXNvdXJjZUVycm9yKFJlc291cmNlRXJyb3I6OlR5cGU6OkNhbmNlbGxhdGlv
bik7IH0KLSAgICBSZXNvdXJjZUVycm9yIGJsb2NrZWRFcnJvcihjb25zdCBSZXNvdXJjZVJlcXVl
c3QmKSBvdmVycmlkZSB7IHJldHVybiB7IH07IH0KLSAgICBSZXNvdXJjZUVycm9yIGJsb2NrZWRC
eUNvbnRlbnRCbG9ja2VyRXJyb3IoY29uc3QgUmVzb3VyY2VSZXF1ZXN0Jikgb3ZlcnJpZGUgeyBy
ZXR1cm4geyB9OyB9Ci0gICAgUmVzb3VyY2VFcnJvciBjYW5ub3RTaG93VVJMRXJyb3IoY29uc3Qg
UmVzb3VyY2VSZXF1ZXN0Jikgb3ZlcnJpZGUgeyByZXR1cm4geyB9OyB9Ci0gICAgUmVzb3VyY2VF
cnJvciBpbnRlcnJ1cHRlZEZvclBvbGljeUNoYW5nZUVycm9yKGNvbnN0IFJlc291cmNlUmVxdWVz
dCYpIG92ZXJyaWRlIHsgcmV0dXJuIHsgfTsgfQotCi0gICAgUmVzb3VyY2VFcnJvciBjYW5ub3RT
aG93TUlNRVR5cGVFcnJvcihjb25zdCBSZXNvdXJjZVJlc3BvbnNlJikgb3ZlcnJpZGUgeyByZXR1
cm4geyB9OyB9Ci0gICAgUmVzb3VyY2VFcnJvciBmaWxlRG9lc05vdEV4aXN0RXJyb3IoY29uc3Qg
UmVzb3VyY2VSZXNwb25zZSYpIG92ZXJyaWRlIHsgcmV0dXJuIHsgfTsgfQotICAgIFJlc291cmNl
RXJyb3IgcGx1Z2luV2lsbEhhbmRsZUxvYWRFcnJvcihjb25zdCBSZXNvdXJjZVJlc3BvbnNlJikg
b3ZlcnJpZGUgeyByZXR1cm4geyB9OyB9Ci0KICAgICBib29sIHNob3VsZEZhbGxCYWNrKGNvbnN0
IFJlc291cmNlRXJyb3ImKSBvdmVycmlkZSB7IHJldHVybiBmYWxzZTsgfQogCiAgICAgYm9vbCBj
YW5IYW5kbGVSZXF1ZXN0KGNvbnN0IFJlc291cmNlUmVxdWVzdCYpIGNvbnN0IG92ZXJyaWRlIHsg
cmV0dXJuIGZhbHNlOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVM
b2FkZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmNwcAppbmRleCBj
Y2ZiNjYzZGMzODVjZmQ1NTI4ZjdjMmNmYzdiMzRhZGEyMjMxYjM0Li41Y2M2MGZkYTUxZmI3YzFk
MGViZDhkYTg2YTY1NjExOTZjZjJjNmJkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2Fk
ZXIvRnJhbWVMb2FkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRl
ci5jcHAKQEAgLTU1LDYgKzU1LDcgQEAKICNpbmNsdWRlICJFZGl0b3IuaCIKICNpbmNsdWRlICJF
ZGl0b3JDbGllbnQuaCIKICNpbmNsdWRlICJFbGVtZW50LmgiCisjaW5jbHVkZSAiRXJyb3JzLmgi
CiAjaW5jbHVkZSAiRXZlbnQuaCIKICNpbmNsdWRlICJFdmVudEhhbmRsZXIuaCIKICNpbmNsdWRl
ICJFdmVudE5hbWVzLmgiCkBAIC0zNDIyLDE5ICszNDIzLDE0IEBAIHZvaWQgRnJhbWVMb2FkZXI6
OnJldHJ5QWZ0ZXJGYWlsZWRDYWNoZU9ubHlNYWluUmVzb3VyY2VMb2FkKCkKIAogUmVzb3VyY2VF
cnJvciBGcmFtZUxvYWRlcjo6Y2FuY2VsbGVkRXJyb3IoY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiBy
ZXF1ZXN0KSBjb25zdAogewotICAgIFJlc291cmNlRXJyb3IgZXJyb3IgPSBtX2NsaWVudC5jYW5j
ZWxsZWRFcnJvcihyZXF1ZXN0KTsKKyAgICBSZXNvdXJjZUVycm9yIGVycm9yID0gV2ViQ29yZTo6
Y2FuY2VsbGVkRXJyb3IocmVxdWVzdCk7CiAgICAgZXJyb3Iuc2V0VHlwZShSZXNvdXJjZUVycm9y
OjpUeXBlOjpDYW5jZWxsYXRpb24pOwogICAgIHJldHVybiBlcnJvcjsKIH0KIAotUmVzb3VyY2VF
cnJvciBGcmFtZUxvYWRlcjo6YmxvY2tlZEJ5Q29udGVudEJsb2NrZXJFcnJvcihjb25zdCBSZXNv
dXJjZVJlcXVlc3QmIHJlcXVlc3QpIGNvbnN0Ci17Ci0gICAgcmV0dXJuIG1fY2xpZW50LmJsb2Nr
ZWRCeUNvbnRlbnRCbG9ja2VyRXJyb3IocmVxdWVzdCk7Ci19Ci0KIFJlc291cmNlRXJyb3IgRnJh
bWVMb2FkZXI6OmJsb2NrZWRFcnJvcihjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QpIGNv
bnN0CiB7Ci0gICAgUmVzb3VyY2VFcnJvciBlcnJvciA9IG1fY2xpZW50LmJsb2NrZWRFcnJvcihy
ZXF1ZXN0KTsKKyAgICBSZXNvdXJjZUVycm9yIGVycm9yID0gV2ViQ29yZTo6YmxvY2tlZEVycm9y
KHJlcXVlc3QpOwogICAgIGVycm9yLnNldFR5cGUoUmVzb3VyY2VFcnJvcjo6VHlwZTo6Q2FuY2Vs
bGF0aW9uKTsKICAgICByZXR1cm4gZXJyb3I7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9sb2FkZXIvRnJhbWVMb2FkZXIuaCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRl
ci5oCmluZGV4IGU0ZjI4NTEzYzg3NzUzZGM2NzVmZjY5OTBmOGIxNDcwZGY4ZTQ4NzguLjlhZDI1
NDViOTZiMGNjOWM4ODFhOTY3MTk3NGRkNTdlNWJhZjZiYzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9G
cmFtZUxvYWRlci5oCkBAIC0xNzEsNyArMTcxLDYgQEAgcHVibGljOgogICAgIHZvaWQgaGFuZGxl
RmFsbGJhY2tDb250ZW50KCk7CiAKICAgICBXRUJDT1JFX0VYUE9SVCBSZXNvdXJjZUVycm9yIGNh
bmNlbGxlZEVycm9yKGNvbnN0IFJlc291cmNlUmVxdWVzdCYpIGNvbnN0OwotICAgIFdFQkNPUkVf
RVhQT1JUIFJlc291cmNlRXJyb3IgYmxvY2tlZEJ5Q29udGVudEJsb2NrZXJFcnJvcihjb25zdCBS
ZXNvdXJjZVJlcXVlc3QmKSBjb25zdDsKICAgICBSZXNvdXJjZUVycm9yIGJsb2NrZWRFcnJvcihj
b25zdCBSZXNvdXJjZVJlcXVlc3QmKSBjb25zdDsKIAogICAgIGJvb2wgaXNIb3N0ZWRCeU9iamVj
dEVsZW1lbnQoKSBjb25zdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFt
ZUxvYWRlckNsaWVudC5oIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyQ2xpZW50
LmgKaW5kZXggNTA3M2M5YTg4ODgyZDM0ZmYyMzdlMjA2MGE0ZTM3ODRjY2RkYzRiOS4uMjMwMTc0
MTM2Njg0NTExZTZjOTlhYmIwMTUzZTIxNzliYTk2NjUyOCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvbG9h
ZGVyL0ZyYW1lTG9hZGVyQ2xpZW50LmgKQEAgLTIyNywxNiArMjI3LDYgQEAgbmFtZXNwYWNlIFdl
YkNvcmUgewogICAgICAgICB2aXJ0dWFsIHZvaWQgZGlkUnVuSW5zZWN1cmVDb250ZW50KFNlY3Vy
aXR5T3JpZ2luKiwgY29uc3QgVVJMJikgPSAwOwogICAgICAgICB2aXJ0dWFsIHZvaWQgZGlkRGV0
ZWN0WFNTKGNvbnN0IFVSTCYsIGJvb2wgZGlkQmxvY2tFbnRpcmVQYWdlKSA9IDA7CiAKLSAgICAg
ICAgdmlydHVhbCBSZXNvdXJjZUVycm9yIGNhbmNlbGxlZEVycm9yKGNvbnN0IFJlc291cmNlUmVx
dWVzdCYpID0gMDsKLSAgICAgICAgdmlydHVhbCBSZXNvdXJjZUVycm9yIGJsb2NrZWRFcnJvcihj
b25zdCBSZXNvdXJjZVJlcXVlc3QmKSA9IDA7Ci0gICAgICAgIHZpcnR1YWwgUmVzb3VyY2VFcnJv
ciBibG9ja2VkQnlDb250ZW50QmxvY2tlckVycm9yKGNvbnN0IFJlc291cmNlUmVxdWVzdCYpID0g
MDsKLSAgICAgICAgdmlydHVhbCBSZXNvdXJjZUVycm9yIGNhbm5vdFNob3dVUkxFcnJvcihjb25z
dCBSZXNvdXJjZVJlcXVlc3QmKSA9IDA7Ci0gICAgICAgIHZpcnR1YWwgUmVzb3VyY2VFcnJvciBp
bnRlcnJ1cHRlZEZvclBvbGljeUNoYW5nZUVycm9yKGNvbnN0IFJlc291cmNlUmVxdWVzdCYpID0g
MDsKLQotICAgICAgICB2aXJ0dWFsIFJlc291cmNlRXJyb3IgY2Fubm90U2hvd01JTUVUeXBlRXJy
b3IoY29uc3QgUmVzb3VyY2VSZXNwb25zZSYpID0gMDsKLSAgICAgICAgdmlydHVhbCBSZXNvdXJj
ZUVycm9yIGZpbGVEb2VzTm90RXhpc3RFcnJvcihjb25zdCBSZXNvdXJjZVJlc3BvbnNlJikgPSAw
OwotICAgICAgICB2aXJ0dWFsIFJlc291cmNlRXJyb3IgcGx1Z2luV2lsbEhhbmRsZUxvYWRFcnJv
cihjb25zdCBSZXNvdXJjZVJlc3BvbnNlJikgPSAwOwotCiAgICAgICAgIHZpcnR1YWwgYm9vbCBz
aG91bGRGYWxsQmFjayhjb25zdCBSZXNvdXJjZUVycm9yJikgPSAwOwogCiAgICAgICAgIHZpcnR1
YWwgYm9vbCBjYW5IYW5kbGVSZXF1ZXN0KGNvbnN0IFJlc291cmNlUmVxdWVzdCYpIGNvbnN0ID0g
MDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9OZXRzY2FwZVBsdWdJblN0cmVh
bUxvYWRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvTmV0c2NhcGVQbHVnSW5TdHJlYW1M
b2FkZXIuY3BwCmluZGV4IDNhNWRjNmJiY2QxYzY0NjliNTRiZDQ0OGIzZDQ0YjRlYWYyYzAzZWYu
LmMxMjdiMWVmYjNjYzNlYTZjY2ZiMmQ2MTdiMjYwMmFlZDk2ZmYxOTEgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2xvYWRlci9OZXRzY2FwZVBsdWdJblN0cmVhbUxvYWRlci5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvbG9hZGVyL05ldHNjYXBlUGx1Z0luU3RyZWFtTG9hZGVyLmNwcApAQCAt
MzAsNiArMzAsNyBAQAogI2luY2x1ZGUgIk5ldHNjYXBlUGx1Z0luU3RyZWFtTG9hZGVyLmgiCiAK
ICNpbmNsdWRlICJEb2N1bWVudExvYWRlci5oIgorI2luY2x1ZGUgIkVycm9ycy5oIgogI2luY2x1
ZGUgIkZyYW1lTG9hZGVyLmgiCiAjaW5jbHVkZSAiRnJhbWVMb2FkZXJDbGllbnQuaCIKICNpbmNs
dWRlIDx3dGYvUmVmLmg+CkBAIC0xMjQsNyArMTI1LDcgQEAgdm9pZCBOZXRzY2FwZVBsdWdJblN0
cmVhbUxvYWRlcjo6ZGlkUmVjZWl2ZVJlc3BvbnNlKGNvbnN0IFJlc291cmNlUmVzcG9uc2UmIHJl
c3AKIAogICAgIC8vIFN0YXR1cyBjb2RlIGNhbiBiZSBudWxsIHdoZW4gc2VydmluZyBmcm9tIGEg
V2ViIGFyY2hpdmUuCiAgICAgaWYgKHJlc3BvbnNlLmh0dHBTdGF0dXNDb2RlKCkgJiYgKHJlc3Bv
bnNlLmh0dHBTdGF0dXNDb2RlKCkgPCAxMDAgfHwgcmVzcG9uc2UuaHR0cFN0YXR1c0NvZGUoKSA+
PSA0MDApKQotICAgICAgICBjYW5jZWwoZnJhbWVMb2FkZXIoKS0+Y2xpZW50KCkuZmlsZURvZXNO
b3RFeGlzdEVycm9yKHJlc3BvbnNlKSk7CisgICAgICAgIGNhbmNlbChmaWxlRG9lc05vdEV4aXN0
RXJyb3IocmVzcG9uc2UpKTsKIH0KIAogdm9pZCBOZXRzY2FwZVBsdWdJblN0cmVhbUxvYWRlcjo6
ZGlkUmVjZWl2ZURhdGEoY29uc3QgY2hhciogZGF0YSwgdW5zaWduZWQgbGVuZ3RoLCBsb25nIGxv
bmcgZW5jb2RlZERhdGFMZW5ndGgsIERhdGFQYXlsb2FkVHlwZSBkYXRhUGF5bG9hZFR5cGUpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvUG9saWN5Q2hlY2tlci5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9sb2FkZXIvUG9saWN5Q2hlY2tlci5jcHAKaW5kZXggMGFjMjg3Y2YzZTlmMDBk
NTc5M2M1MzJhNjAwODNhYzM5NTA0MmY4Mi4uN2JhOTkxYzZlMmE0MWNhNDliNDJlMDgyMDU5YTMx
YmUzZTY0MDY0ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL1BvbGljeUNoZWNr
ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Qb2xpY3lDaGVja2VyLmNwcApAQCAt
MzQsNiArMzQsNyBAQAogI2luY2x1ZGUgIkNvbnRlbnRTZWN1cml0eVBvbGljeS5oIgogI2luY2x1
ZGUgIkRPTVdpbmRvdy5oIgogI2luY2x1ZGUgIkRvY3VtZW50TG9hZGVyLmgiCisjaW5jbHVkZSAi
RXJyb3JzLmgiCiAjaW5jbHVkZSAiRm9ybVN0YXRlLmgiCiAjaW5jbHVkZSAiRnJhbWUuaCIKICNp
bmNsdWRlICJGcmFtZUxvYWRlci5oIgpAQCAtMTc4LDcgKzE3OSw3IEBAIHZvaWQgUG9saWN5Q2hl
Y2tlcjo6c3RvcENoZWNrKCkKIAogdm9pZCBQb2xpY3lDaGVja2VyOjpjYW5ub3RTaG93TUlNRVR5
cGUoY29uc3QgUmVzb3VyY2VSZXNwb25zZSYgcmVzcG9uc2UpCiB7Ci0gICAgaGFuZGxlVW5pbXBs
ZW1lbnRhYmxlUG9saWN5KG1fZnJhbWUubG9hZGVyKCkuY2xpZW50KCkuY2Fubm90U2hvd01JTUVU
eXBlRXJyb3IocmVzcG9uc2UpKTsKKyAgICBoYW5kbGVVbmltcGxlbWVudGFibGVQb2xpY3koY2Fu
bm90U2hvd01JTUVUeXBlRXJyb3IocmVzcG9uc2UpKTsKIH0KIAogdm9pZCBQb2xpY3lDaGVja2Vy
Ojpjb250aW51ZUxvYWRBZnRlcldpbGxTdWJtaXRGb3JtKFBvbGljeUFjdGlvbikKQEAgLTIxMCw3
ICsyMTEsNyBAQCB2b2lkIFBvbGljeUNoZWNrZXI6OmNvbnRpbnVlQWZ0ZXJOYXZpZ2F0aW9uUG9s
aWN5KFBvbGljeUFjdGlvbiBwb2xpY3kpCiAgICAgICAgICAgICBSZXNvdXJjZVJlcXVlc3QgcmVx
dWVzdChjYWxsYmFjay5yZXF1ZXN0KCkpOwogCiAgICAgICAgICAgICBpZiAoIW1fZnJhbWUubG9h
ZGVyKCkuY2xpZW50KCkuY2FuSGFuZGxlUmVxdWVzdChyZXF1ZXN0KSkgewotICAgICAgICAgICAg
ICAgIGhhbmRsZVVuaW1wbGVtZW50YWJsZVBvbGljeShtX2ZyYW1lLmxvYWRlcigpLmNsaWVudCgp
LmNhbm5vdFNob3dVUkxFcnJvcihjYWxsYmFjay5yZXF1ZXN0KCkpKTsKKyAgICAgICAgICAgICAg
ICBoYW5kbGVVbmltcGxlbWVudGFibGVQb2xpY3koY2Fubm90U2hvd1VSTEVycm9yKGNhbGxiYWNr
LnJlcXVlc3QoKSkpOwogICAgICAgICAgICAgICAgIGNhbGxiYWNrLmNsZWFyUmVxdWVzdCgpOwog
ICAgICAgICAgICAgICAgIHNob3VsZENvbnRpbnVlID0gZmFsc2U7CiAgICAgICAgICAgICB9CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvUmVzb3VyY2VMb2FkZXIuY3BwIGIvU291
cmNlL1dlYkNvcmUvbG9hZGVyL1Jlc291cmNlTG9hZGVyLmNwcAppbmRleCA5YmQ4MDZjZDRkMGM1
NmI4Nzc0MDMxNmMyMGFkN2U1MDJiMzhjMmQ2Li40MDFkMDAyOGQxNWNiZmU1YzM3YTdkODM3Nzlk
OGRjMzM5MTMxYTAxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvUmVzb3VyY2VM
b2FkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9SZXNvdXJjZUxvYWRlci5jcHAK
QEAgLTM2LDYgKzM2LDcgQEAKICNpbmNsdWRlICJEaWFnbm9zdGljTG9nZ2luZ0NsaWVudC5oIgog
I2luY2x1ZGUgIkRpYWdub3N0aWNMb2dnaW5nS2V5cy5oIgogI2luY2x1ZGUgIkRvY3VtZW50TG9h
ZGVyLmgiCisjaW5jbHVkZSAiRXJyb3JzLmgiCiAjaW5jbHVkZSAiRnJhbWUuaCIKICNpbmNsdWRl
ICJGcmFtZUxvYWRlci5oIgogI2luY2x1ZGUgIkZyYW1lTG9hZGVyQ2xpZW50LmgiCkBAIC02MTEs
MTcgKzYxMiwxNyBAQCBSZXNvdXJjZUVycm9yIFJlc291cmNlTG9hZGVyOjpjYW5jZWxsZWRFcnJv
cigpCiAKIFJlc291cmNlRXJyb3IgUmVzb3VyY2VMb2FkZXI6OmJsb2NrZWRFcnJvcigpCiB7Ci0g
ICAgcmV0dXJuIGZyYW1lTG9hZGVyKCktPmNsaWVudCgpLmJsb2NrZWRFcnJvcihtX3JlcXVlc3Qp
OworICAgIHJldHVybiBXZWJDb3JlOjpibG9ja2VkRXJyb3IobV9yZXF1ZXN0KTsKIH0KIAogUmVz
b3VyY2VFcnJvciBSZXNvdXJjZUxvYWRlcjo6YmxvY2tlZEJ5Q29udGVudEJsb2NrZXJFcnJvcigp
CiB7Ci0gICAgcmV0dXJuIGZyYW1lTG9hZGVyKCktPmNsaWVudCgpLmJsb2NrZWRCeUNvbnRlbnRC
bG9ja2VyRXJyb3IobV9yZXF1ZXN0KTsKKyAgICByZXR1cm4gV2ViQ29yZTo6YmxvY2tlZEJ5Q29u
dGVudEJsb2NrZXJFcnJvcihtX3JlcXVlc3QpOwogfQogCiBSZXNvdXJjZUVycm9yIFJlc291cmNl
TG9hZGVyOjpjYW5ub3RTaG93VVJMRXJyb3IoKQogewotICAgIHJldHVybiBmcmFtZUxvYWRlcigp
LT5jbGllbnQoKS5jYW5ub3RTaG93VVJMRXJyb3IobV9yZXF1ZXN0KTsKKyAgICByZXR1cm4gV2Vi
Q29yZTo6Y2Fubm90U2hvd1VSTEVycm9yKG1fcmVxdWVzdCk7CiB9CiAKIFJlc291cmNlUmVxdWVz
dCBSZXNvdXJjZUxvYWRlcjo6d2lsbFNlbmRSZXF1ZXN0KFJlc291cmNlSGFuZGxlKiwgUmVzb3Vy
Y2VSZXF1ZXN0JiYgcmVxdWVzdCwgUmVzb3VyY2VSZXNwb25zZSYmIHJlZGlyZWN0UmVzcG9uc2Up
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvYXBwY2FjaGUvQXBwbGljYXRpb25D
YWNoZUhvc3QuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2FwcGNhY2hlL0FwcGxpY2F0aW9u
Q2FjaGVIb3N0LmNwcAppbmRleCAzN2MyZWNmN2RkMjFmMzM1MDllZDcxMGFlY2IyYzZhNTU1N2Q5
MDc0Li5kY2NlM2E2YmM3ZDc5YjZjNjcyYjk1MzFjNTkyYTViYzNiYmM2YzgyIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvYXBwY2FjaGUvQXBwbGljYXRpb25DYWNoZUhvc3QuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9hcHBjYWNoZS9BcHBsaWNhdGlvbkNhY2hlSG9z
dC5jcHAKQEAgLTMyLDYgKzMyLDcgQEAKICNpbmNsdWRlICJDb250ZW50U2VjdXJpdHlQb2xpY3ku
aCIKICNpbmNsdWRlICJEb2N1bWVudExvYWRlci5oIgogI2luY2x1ZGUgIkRPTUFwcGxpY2F0aW9u
Q2FjaGUuaCIKKyNpbmNsdWRlICJFcnJvcnMuaCIKICNpbmNsdWRlICJGaWxlU3lzdGVtLmgiCiAj
aW5jbHVkZSAiRnJhbWUuaCIKICNpbmNsdWRlICJGcmFtZUxvYWRlci5oIgpAQCAtMjQzLDcgKzI0
NCw3IEBAIGJvb2wgQXBwbGljYXRpb25DYWNoZUhvc3Q6Om1heWJlTG9hZFN5bmNocm9ub3VzbHko
UmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBSZXNvCiAgICAgICAgICAgICAgICAgZGF0YSA9IFNo
YXJlZEJ1ZmZlcjo6Y3JlYXRlV2l0aENvbnRlbnRzT2ZGaWxlKHJlc291cmNlLT5wYXRoKCkpOwog
ICAgICAgICB9CiAgICAgICAgIGlmICghZGF0YSkKLSAgICAgICAgICAgIGVycm9yID0gbV9kb2N1
bWVudExvYWRlci5mcmFtZUxvYWRlcigpLT5jbGllbnQoKS5jYW5ub3RTaG93VVJMRXJyb3IocmVx
dWVzdCk7CisgICAgICAgICAgICBlcnJvciA9IGNhbm5vdFNob3dVUkxFcnJvcihyZXF1ZXN0KTsK
ICAgICAgICAgZWxzZQogICAgICAgICAgICAgcmVzcG9uc2UgPSByZXNvdXJjZS0+cmVzcG9uc2Uo
KTsKICAgICAgICAgcmV0dXJuIHRydWU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9FcnJvcnMuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vRXJyb3JzLmNwcApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi4wMDQ5MzUwZGIyOTFiMmQzN2QyZTU2ZjBkOTk5YTY1MzljOGVmYmJmCi0tLSAvZGV2
L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vRXJyb3JzLmNwcApAQCAtMCwwICsx
LDE1IEBACisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiRXJyb3JzLmgiCisKKyNpbmNs
dWRlIDx3dGYvTmV2ZXJEZXN0cm95ZWQuaD4KKyNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcu
aD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjb25zdCBXVEY6OlN0cmluZyYgd2ViS2l0RXJy
b3JEb21haW4oKQoreworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxXVEY6OlN0cmluZz4gd2Vi
S2l0RXJyb3JEb21haW5TdHJpbmcoQVNDSUlMaXRlcmFsKCJXZWJLaXRFcnJvckRvbWFpbiIpKTsK
KyAgICByZXR1cm4gd2ViS2l0RXJyb3JEb21haW5TdHJpbmc7Cit9CisKK30KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0Vycm9ycy5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vRXJyb3JzLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZTc1YzAxNGM0N2YyZjI0ZWFmNjZhZDVhYjdhZjljOWZl
OTk1YTU2NAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0Vycm9y
cy5oCkBAIC0wLDAgKzEsNjAgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMDYsIDIwMDcsIDIw
MDgsIDIwMDksIDIwMTAsIDIwMTEsIDIwMTIgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgorICogQ29weXJpZ2h0IChDKSAyMDEyIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgSWdhbGlhLCBTLkwuCisgKgorICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Cisg
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKgorICogMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBz
b3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLiAK
KyAqIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgICBkb2N1bWVudGF0aW9u
IGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLiAK
KyAqIDMuICBOZWl0aGVyIHRoZSBuYW1lIG9mIEFwcGxlIEluYy4gKCJBcHBsZSIpIG5vciB0aGUg
bmFtZXMgb2YKKyAqICAgICBpdHMgY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ug
b3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkCisgKiAgICAgZnJvbSB0aGlzIHNvZnR3YXJlIHdp
dGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLiAKKyAqCisgKiBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIEFORCBJVFMgQ09OVFJJQlVUT1JTICJBUyBJUyIg
QU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAorICogV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC
SUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQorICogRElTQ0xB
SU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFC
TEUgRk9SIEFOWQorICogRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhF
TVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMKKyAqIChJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsK
KyAqIExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORAorICogT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdI
RVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRSBPRgorICogVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIEVycm9yc19oCisjZGVmaW5lIEVy
cm9yc19oCisKK25hbWVzcGFjZSBXVEYgeworY2xhc3MgU3RyaW5nOworfQorCituYW1lc3BhY2Ug
V2ViQ29yZSB7CitjbGFzcyBSZXNvdXJjZUVycm9yOworY2xhc3MgUmVzb3VyY2VSZXF1ZXN0Owor
Y2xhc3MgUmVzb3VyY2VSZXNwb25zZTsKK2NsYXNzIFVSTDsKKworV0VCQ09SRV9FWFBPUlQgUmVz
b3VyY2VFcnJvciBjYW5jZWxsZWRFcnJvcihjb25zdCBSZXNvdXJjZVJlcXVlc3QmKTsKK1dFQkNP
UkVfRVhQT1JUIFJlc291cmNlRXJyb3IgYmxvY2tlZEVycm9yKGNvbnN0IFJlc291cmNlUmVxdWVz
dCYpOworV0VCQ09SRV9FWFBPUlQgUmVzb3VyY2VFcnJvciBibG9ja2VkQnlDb250ZW50QmxvY2tl
ckVycm9yKGNvbnN0IFJlc291cmNlUmVxdWVzdCYpOworV0VCQ09SRV9FWFBPUlQgUmVzb3VyY2VF
cnJvciBjYW5ub3RTaG93VVJMRXJyb3IoY29uc3QgUmVzb3VyY2VSZXF1ZXN0Jik7CitXRUJDT1JF
X0VYUE9SVCBSZXNvdXJjZUVycm9yIGludGVycnVwdGVkRm9yUG9saWN5Q2hhbmdlRXJyb3IoY29u
c3QgUmVzb3VyY2VSZXF1ZXN0Jik7CisKK1dFQkNPUkVfRVhQT1JUIFJlc291cmNlRXJyb3IgY2Fu
bm90U2hvd01JTUVUeXBlRXJyb3IoY29uc3QgUmVzb3VyY2VSZXNwb25zZSYpOworV0VCQ09SRV9F
WFBPUlQgUmVzb3VyY2VFcnJvciBmaWxlRG9lc05vdEV4aXN0RXJyb3IoY29uc3QgUmVzb3VyY2VS
ZXNwb25zZSYpOworV0VCQ09SRV9FWFBPUlQgUmVzb3VyY2VFcnJvciBwbHVnaW5XaWxsSGFuZGxl
TG9hZEVycm9yKGNvbnN0IFJlc291cmNlUmVzcG9uc2UmKTsKKworV0VCQ09SRV9FWFBPUlQgUmVz
b3VyY2VFcnJvciBpbnRlcm5hbEVycm9yKGNvbnN0IFVSTCYpOworCitXRUJDT1JFX0VYUE9SVCBj
b25zdCBXVEY6OlN0cmluZyYgd2ViS2l0RXJyb3JEb21haW4oKTsKKworfSAvLyBuYW1lc3BhY2Ug
V2ViQ29yZQorCisjZW5kaWYgLy8gRXJyb3JzX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2VmbC9FcnJvcnNFZmwuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZWZs
L0Vycm9yc0VmbC5jcHAKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDMyODI2ZTU2NzI3
MzAzYmVmZGUyOWMwOGRlOGM1N2FiNDlkYmUzOWEuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZWZsL0Vycm9yc0Vm
bC5jcHAKKysrIC9kZXYvbnVsbApAQCAtMSwxMDUgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAo
QykgMjAxMiBJbnRlbCBDb3Jwb3JhdGlvbi4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4K
LSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBD
T05UUklCVVRPUlMgYGBBUyBJUycnCi0gKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFRIRSBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIK
LSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4g
T1IgSVRTIENPTlRSSUJVVE9SUwotICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgotICogQ09OU0VRVUVOVElBTCBE
QU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKLSAq
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9G
SVRTOyBPUiBCVVNJTkVTUwotICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04g
QU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KLSAqIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCi0g
KiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GCi0gKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8K
LQotI2luY2x1ZGUgImNvbmZpZy5oIgotI2luY2x1ZGUgIkVycm9yc0VmbC5oIgotCi0jaW5jbHVk
ZSAiUmVzb3VyY2VFcnJvci5oIgotI2luY2x1ZGUgIlJlc291cmNlUmVxdWVzdC5oIgotI2luY2x1
ZGUgIlJlc291cmNlUmVzcG9uc2UuaCIKLQotbmFtZXNwYWNlIFdlYkNvcmUgewotCi1SZXNvdXJj
ZUVycm9yIGNhbmNlbGxlZEVycm9yKGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCkKLXsK
LSAgICByZXR1cm4gUmVzb3VyY2VFcnJvcihlcnJvckRvbWFpbk5ldHdvcmssIE5ldHdvcmtFcnJv
ckNhbmNlbGxlZCwgcmVxdWVzdC51cmwoKSwgQVNDSUlMaXRlcmFsKCJMb2FkIHJlcXVlc3QgY2Fu
Y2VsbGVkIikpOwotfQotCi1SZXNvdXJjZUVycm9yIGJsb2NrZWRFcnJvcihjb25zdCBSZXNvdXJj
ZVJlcXVlc3QmIHJlcXVlc3QpCi17Ci0gICAgcmV0dXJuIFJlc291cmNlRXJyb3IoZXJyb3JEb21h
aW5Qb2xpY3ksIFBvbGljeUVycm9yQ2Fubm90VXNlUmVzdHJpY3RlZFBvcnQsIHJlcXVlc3QudXJs
KCksIEFTQ0lJTGl0ZXJhbCgiTm90IGFsbG93ZWQgdG8gdXNlIHJlc3RyaWN0ZWQgbmV0d29yayBw
b3J0IikpOwotfQotCi1SZXNvdXJjZUVycm9yIGJsb2NrZWRCeUNvbnRlbnRCbG9ja2VyRXJyb3Io
Y29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0KQotewotICAgIHJldHVybiBSZXNvdXJjZUVy
cm9yKGVycm9yRG9tYWluUG9saWN5LCBQb2xpY3lFcnJvckJsb2NrZWRCeUNvbnRlbnRCbG9ja2Vy
LCByZXF1ZXN0LnVybCgpLCBBU0NJSUxpdGVyYWwoIkJsb2NrZWQgYnkgY29udGVudCBibG9ja2Vy
IikpOwotfQotCi1SZXNvdXJjZUVycm9yIGNhbm5vdFNob3dVUkxFcnJvcihjb25zdCBSZXNvdXJj
ZVJlcXVlc3QmIHJlcXVlc3QpCi17Ci0gICAgcmV0dXJuIFJlc291cmNlRXJyb3IoZXJyb3JEb21h
aW5Qb2xpY3ksIFBvbGljeUVycm9yQ2Fubm90U2hvd1VSTCwgcmVxdWVzdC51cmwoKSwgQVNDSUlM
aXRlcmFsKCJVUkwgY2Fubm90IGJlIHNob3duIikpOwotfQotCi1SZXNvdXJjZUVycm9yIGludGVy
cnVwdGVkRm9yUG9saWN5Q2hhbmdlRXJyb3IoY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0
KQotewotICAgIHJldHVybiBSZXNvdXJjZUVycm9yKGVycm9yRG9tYWluUG9saWN5LCBQb2xpY3lF
cnJvckZyYW1lTG9hZEludGVycnVwdGVkQnlQb2xpY3lDaGFuZ2UsIHJlcXVlc3QudXJsKCksIEFT
Q0lJTGl0ZXJhbCgiRnJhbWUgbG9hZCB3YXMgaW50ZXJydXB0ZWQiKSk7Ci19Ci0KLVJlc291cmNl
RXJyb3IgY2Fubm90U2hvd01JTUVUeXBlRXJyb3IoY29uc3QgUmVzb3VyY2VSZXNwb25zZSYgcmVz
cG9uc2UpCi17Ci0gICAgcmV0dXJuIFJlc291cmNlRXJyb3IoZXJyb3JEb21haW5Qb2xpY3ksIFBv
bGljeUVycm9yQ2Fubm90U2hvd01pbWVUeXBlLCByZXNwb25zZS51cmwoKSwgQVNDSUlMaXRlcmFs
KCJDb250ZW50IHdpdGggdGhlIHNwZWNpZmllZCBNSU1FIHR5cGUgY2Fubm90IGJlIHNob3duIikp
OwotfQotCi1SZXNvdXJjZUVycm9yIGZpbGVEb2VzTm90RXhpc3RFcnJvcihjb25zdCBSZXNvdXJj
ZVJlc3BvbnNlJiByZXNwb25zZSkKLXsKLSAgICByZXR1cm4gUmVzb3VyY2VFcnJvcihlcnJvckRv
bWFpbk5ldHdvcmssIE5ldHdvcmtFcnJvckZpbGVEb2VzTm90RXhpc3QsIHJlc3BvbnNlLnVybCgp
LCBBU0NJSUxpdGVyYWwoIkZpbGUgZG9lcyBub3QgZXhpc3QiKSk7Ci19Ci0KLVJlc291cmNlRXJy
b3IgcGx1Z2luV2lsbEhhbmRsZUxvYWRFcnJvcihjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiByZXNw
b25zZSkKLXsKLSAgICByZXR1cm4gUmVzb3VyY2VFcnJvcihlcnJvckRvbWFpblBsdWdpbiwgUGx1
Z2luRXJyb3JXaWxsSGFuZGxlTG9hZCwgcmVzcG9uc2UudXJsKCksIEFTQ0lJTGl0ZXJhbCgiUGx1
Z2luIHdpbGwgaGFuZGxlIGxvYWQiKSk7Ci19Ci0KLVJlc291cmNlRXJyb3IgZG93bmxvYWROZXR3
b3JrRXJyb3IoY29uc3QgUmVzb3VyY2VFcnJvciYgbmV0d29ya0Vycm9yKQotewotICAgIHJldHVy
biBSZXNvdXJjZUVycm9yKGVycm9yRG9tYWluRG93bmxvYWQsIERvd25sb2FkRXJyb3JOZXR3b3Jr
LCBuZXR3b3JrRXJyb3IuZmFpbGluZ1VSTCgpLCBuZXR3b3JrRXJyb3IubG9jYWxpemVkRGVzY3Jp
cHRpb24oKSk7Ci19Ci0KLVJlc291cmNlRXJyb3IgZG93bmxvYWRDYW5jZWxsZWRCeVVzZXJFcnJv
cihjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiByZXNwb25zZSkKLXsKLSAgICByZXR1cm4gUmVzb3Vy
Y2VFcnJvcihlcnJvckRvbWFpbkRvd25sb2FkLCBEb3dubG9hZEVycm9yQ2FuY2VsbGVkQnlVc2Vy
LCByZXNwb25zZS51cmwoKSwgQVNDSUlMaXRlcmFsKCJVc2VyIGNhbmNlbGxlZCB0aGUgZG93bmxv
YWQiKSk7Ci19Ci0KLVJlc291cmNlRXJyb3IgZG93bmxvYWREZXN0aW5hdGlvbkVycm9yKGNvbnN0
IFJlc291cmNlUmVzcG9uc2UmIHJlc3BvbnNlLCBjb25zdCBTdHJpbmcmIGVycm9yTWVzc2FnZSkK
LXsKLSAgICByZXR1cm4gUmVzb3VyY2VFcnJvcihlcnJvckRvbWFpbkRvd25sb2FkLCBEb3dubG9h
ZEVycm9yRGVzdGluYXRpb24sIHJlc3BvbnNlLnVybCgpLCBlcnJvck1lc3NhZ2UpOwotfQotCi1S
ZXNvdXJjZUVycm9yIHByaW50RXJyb3IoY29uc3QgVVJMJiBmYWlsaW5nVVJMLCBjb25zdCBTdHJp
bmcmIGVycm9yTWVzc2FnZSkKLXsKLSAgICByZXR1cm4gUmVzb3VyY2VFcnJvcihlcnJvckRvbWFp
blByaW50LCBQcmludEVycm9yR2VuZXJhbCwgZmFpbGluZ1VSTCwgZXJyb3JNZXNzYWdlKTsKLX0K
LQotUmVzb3VyY2VFcnJvciBwcmludGVyTm90Rm91bmRFcnJvcihjb25zdCBVUkwmIGZhaWxpbmdV
UkwpCi17Ci0gICAgcmV0dXJuIFJlc291cmNlRXJyb3IoZXJyb3JEb21haW5QcmludCwgUHJpbnRF
cnJvclByaW50ZXJOb3RGb3VuZCwgZmFpbGluZ1VSTCwgQVNDSUlMaXRlcmFsKCJQcmludGVyIG5v
dCBmb3VuZCIpKTsKLX0KLQotUmVzb3VyY2VFcnJvciBpbnZhbGlkUGFnZVJhbmdlVG9QcmludChj
b25zdCBVUkwmIGZhaWxpbmdVUkwpCi17Ci0gICAgcmV0dXJuIFJlc291cmNlRXJyb3IoZXJyb3JE
b21haW5QcmludCwgUHJpbnRFcnJvckludmFsaWRQYWdlUmFuZ2UsIGZhaWxpbmdVUkwsIEFTQ0lJ
TGl0ZXJhbCgiSW52YWxpZCBwYWdlIHJhbmdlIikpOwotfQotCi19IC8vIG5hbWVzcGFjZSBXZWJD
b3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9lZmwvRXJyb3JzRWZsLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9lZmwvRXJyb3JzRWZsLmgKZGVsZXRlZCBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDcwZmZhNmU2OWRlZWU3ZTlmNTgwY2Q5ZDU5ZmNlNzhjNjJlZDUwNDYu
LjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZWZsL0Vycm9yc0VmbC5oCisrKyAvZGV2L251bGwKQEAgLTEsMTAxICsw
LDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTIgSW50ZWwgQ29ycG9yYXRpb24uIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBt
ZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBp
biB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwotICogQU5EIEFO
WSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sCi0gKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBO
TyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKLSAqIEJFIExJQUJM
RSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFS
WSwgT1IKLSAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFBST0NVUkVNRU5UIE9GCi0gKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKLSAqIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOCi0gKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQotICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgotICogVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNpZm5kZWYgRXJyb3JzRWZsX2gKLSNkZWZpbmUg
RXJyb3JzRWZsX2gKLQotI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgotCi1uYW1lc3Bh
Y2UgV2ViQ29yZSB7Ci0KLWNsYXNzIFJlc291cmNlRXJyb3I7Ci1jbGFzcyBSZXNvdXJjZVJlcXVl
c3Q7Ci1jbGFzcyBSZXNvdXJjZVJlc3BvbnNlOwotY2xhc3MgVVJMOwotCi1zdGF0aWMgY29uc3Qg
Y2hhciBlcnJvckRvbWFpbk5ldHdvcmtbXSA9ICJXZWJLaXROZXR3b3JrRXJyb3IiOwotc3RhdGlj
IGNvbnN0IGNoYXIgZXJyb3JEb21haW5Qb2xpY3lbXSA9ICJXZWJLaXRQb2xpY3lFcnJvciI7Ci1z
dGF0aWMgY29uc3QgY2hhciBlcnJvckRvbWFpblBsdWdpbltdID0gIldlYktpdFBsdWdpbkVycm9y
IjsKLXN0YXRpYyBjb25zdCBjaGFyIGVycm9yRG9tYWluRG93bmxvYWRbXSA9ICJXZWJLaXREb3du
bG9hZEVycm9yIjsKLXN0YXRpYyBjb25zdCBjaGFyIGVycm9yRG9tYWluUHJpbnRbXSA9ICJXZWJL
aXRQcmludEVycm9yIjsKLQotZW51bSBOZXR3b3JrRXJyb3IgewotICAgIE5ldHdvcmtFcnJvckZh
aWxlZCA9IDM5OSwKLSAgICBOZXR3b3JrRXJyb3JUcmFuc3BvcnQgPSAzMDAsCi0gICAgTmV0d29y
a0Vycm9yVW5rbm93blByb3RvY29sID0gMzAxLAotICAgIE5ldHdvcmtFcnJvckNhbmNlbGxlZCA9
IDMwMiwKLSAgICBOZXR3b3JrRXJyb3JGaWxlRG9lc05vdEV4aXN0ID0gMzAzCi19OwotCi0vLyBT
eW5jJ2Qgd2l0aCBNYWMncyBXZWJLaXQgRXJyb3JzIGF0OgotLy8gU291cmNlL1dlYktpdC9tYWMv
TWlzYy9XZWJLaXRFcnJvcnNbUHJpdmF0ZV0uaAotZW51bSBQb2xpY3lFcnJvciB7Ci0gICAgUG9s
aWN5RXJyb3JGYWlsZWQgPSAxOTksCi0gICAgUG9saWN5RXJyb3JDYW5ub3RTaG93TWltZVR5cGUg
PSAxMDAsCi0gICAgUG9saWN5RXJyb3JDYW5ub3RTaG93VVJMID0gMTAxLAotICAgIFBvbGljeUVy
cm9yRnJhbWVMb2FkSW50ZXJydXB0ZWRCeVBvbGljeUNoYW5nZSA9IDEwMiwKLSAgICBQb2xpY3lF
cnJvckNhbm5vdFVzZVJlc3RyaWN0ZWRQb3J0ID0gMTAzLAotICAgIFBvbGljeUVycm9yQmxvY2tl
ZEJ5Q29udGVudEJsb2NrZXIgPSAxMDQsCi19OwotCi1lbnVtIFBsdWdpbkVycm9yIHsKLSAgICBQ
bHVnaW5FcnJvckZhaWxlZCA9IDI5OSwKLSAgICBQbHVnaW5FcnJvckNhbm5vdEZpbmRQbHVnaW4g
PSAyMDAsCi0gICAgUGx1Z2luRXJyb3JDYW5ub3RMb2FkUGx1Z2luID0gMjAxLAotICAgIFBsdWdp
bkVycm9ySmF2YVVuYXZhaWxhYmxlID0gMjAyLAotICAgIFBsdWdpbkVycm9yQ29ubmVjdGlvbkNh
bmNlbGxlZCA9IDIwMywKLSAgICBQbHVnaW5FcnJvcldpbGxIYW5kbGVMb2FkID0gMjA0Ci19Owot
Ci1lbnVtIERvd25sb2FkRXJyb3IgewotICAgIERvd25sb2FkRXJyb3JOZXR3b3JrID0gNDk5LAot
ICAgIERvd25sb2FkRXJyb3JDYW5jZWxsZWRCeVVzZXIgPSA0MDAsCi0gICAgRG93bmxvYWRFcnJv
ckRlc3RpbmF0aW9uID0gNDAxCi19OwotCi1lbnVtIFByaW50RXJyb3IgewotICAgIFByaW50RXJy
b3JHZW5lcmFsID0gNTk5LAotICAgIFByaW50RXJyb3JQcmludGVyTm90Rm91bmQgPSA1MDAsCi0g
ICAgUHJpbnRFcnJvckludmFsaWRQYWdlUmFuZ2UgPSA1MDEKLX07Ci0KLVJlc291cmNlRXJyb3Ig
Y2FuY2VsbGVkRXJyb3IoY29uc3QgUmVzb3VyY2VSZXF1ZXN0Jik7Ci1SZXNvdXJjZUVycm9yIGJs
b2NrZWRFcnJvcihjb25zdCBSZXNvdXJjZVJlcXVlc3QmKTsKLVJlc291cmNlRXJyb3IgYmxvY2tl
ZEJ5Q29udGVudEJsb2NrZXJFcnJvcihjb25zdCBSZXNvdXJjZVJlcXVlc3QmKTsKLVJlc291cmNl
RXJyb3IgY2Fubm90U2hvd1VSTEVycm9yKGNvbnN0IFJlc291cmNlUmVxdWVzdCYpOwotUmVzb3Vy
Y2VFcnJvciBpbnRlcnJ1cHRlZEZvclBvbGljeUNoYW5nZUVycm9yKGNvbnN0IFJlc291cmNlUmVx
dWVzdCYpOwotUmVzb3VyY2VFcnJvciBjYW5ub3RTaG93TUlNRVR5cGVFcnJvcihjb25zdCBSZXNv
dXJjZVJlc3BvbnNlJik7Ci1SZXNvdXJjZUVycm9yIGZpbGVEb2VzTm90RXhpc3RFcnJvcihjb25z
dCBSZXNvdXJjZVJlc3BvbnNlJik7Ci1SZXNvdXJjZUVycm9yIHBsdWdpbldpbGxIYW5kbGVMb2Fk
RXJyb3IoY29uc3QgUmVzb3VyY2VSZXNwb25zZSYpOwotUmVzb3VyY2VFcnJvciBkb3dubG9hZE5l
dHdvcmtFcnJvcihjb25zdCBSZXNvdXJjZUVycm9yJik7Ci1SZXNvdXJjZUVycm9yIGRvd25sb2Fk
Q2FuY2VsbGVkQnlVc2VyRXJyb3IoY29uc3QgUmVzb3VyY2VSZXNwb25zZSYpOwotUmVzb3VyY2VF
cnJvciBkb3dubG9hZERlc3RpbmF0aW9uRXJyb3IoY29uc3QgUmVzb3VyY2VSZXNwb25zZSYsIGNv
bnN0IFN0cmluZyYgZXJyb3JNZXNzYWdlKTsKLVJlc291cmNlRXJyb3IgcHJpbnRFcnJvcihjb25z
dCBVUkwmIGZhaWxpbmdVUkwsIGNvbnN0IFN0cmluZyYgZXJyb3JNZXNzYWdlKTsKLVJlc291cmNl
RXJyb3IgcHJpbnRlck5vdEZvdW5kRXJyb3IoY29uc3QgVVJMJiBmYWlsaW5nVVJMKTsKLVJlc291
cmNlRXJyb3IgaW52YWxpZFBhZ2VSYW5nZVRvUHJpbnQoY29uc3QgVVJMJiBmYWlsaW5nVVJMKTsK
LQotfQotCi0jZW5kaWYgLy8gRXJyb3JzRWZsX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2d0ay9FcnJvcnNHdGsuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Rr
L0Vycm9yc0d0ay5jcHAKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDhkZmQxNThiM2I0
ZDZjNTQ0YmRiMjlhNjE1NzQxZGJkYTRiNDFhNTQuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL0Vycm9yc0d0
ay5jcHAKKysrIC9kZXYvbnVsbApAQCAtMSwxMDAgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAo
QykgMjAxMSBJZ2FsaWEgUy5MLgotICoKLSAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJl
OyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKLSAqIG1vZGlmeSBpdCB1bmRlciB0aGUg
dGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCi0gKiBMaWNlbnNlIGFzIHB1
Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKLSAqIHZlcnNp
b24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lv
bi4KLSAqCi0gKiBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBp
dCB3aWxsIGJlIHVzZWZ1bCwKLSAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBl
dmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCi0gKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQotICogTGlicmFyeSBHZW5l
cmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCi0gKgotICogWW91IHNob3VsZCBo
YXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGlj
ZW5zZQotICogYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJ
Qi4gIElmIG5vdCwgd3JpdGUgdG8KLSAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIElu
Yy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsCi0gKiBCb3N0b24sIE1BIDAyMTEw
LTEzMDEsIFVTQS4KLSAqLwotCi0jaW5jbHVkZSAiY29uZmlnLmgiCi0jaW5jbHVkZSAiRXJyb3Jz
R3RrLmgiCi0KLSNpbmNsdWRlICJSZXNvdXJjZUVycm9yLmgiCi0jaW5jbHVkZSAiUmVzb3VyY2VS
ZXF1ZXN0LmgiCi0jaW5jbHVkZSAiUmVzb3VyY2VSZXNwb25zZS5oIgotI2luY2x1ZGUgPGdsaWIv
Z2kxOG4tbGliLmg+Ci0KLW5hbWVzcGFjZSBXZWJDb3JlIHsKLQotUmVzb3VyY2VFcnJvciBjYW5j
ZWxsZWRFcnJvcihjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QpCi17Ci0gICAgcmV0dXJu
IFJlc291cmNlRXJyb3IoZXJyb3JEb21haW5OZXR3b3JrLCBOZXR3b3JrRXJyb3JDYW5jZWxsZWQs
IHJlcXVlc3QudXJsKCksIF8oIkxvYWQgcmVxdWVzdCBjYW5jZWxsZWQiKSk7Ci19Ci0KLVJlc291
cmNlRXJyb3IgYmxvY2tlZEVycm9yKGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCkKLXsK
LSAgICByZXR1cm4gUmVzb3VyY2VFcnJvcihlcnJvckRvbWFpblBvbGljeSwgUG9saWN5RXJyb3JD
YW5ub3RVc2VSZXN0cmljdGVkUG9ydCwgcmVxdWVzdC51cmwoKSwgXygiTm90IGFsbG93ZWQgdG8g
dXNlIHJlc3RyaWN0ZWQgbmV0d29yayBwb3J0IikpOwotfQotCi1SZXNvdXJjZUVycm9yIGJsb2Nr
ZWRCeUNvbnRlbnRCbG9ja2VyRXJyb3IoY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0KQot
ewotICAgIHJldHVybiBSZXNvdXJjZUVycm9yKGVycm9yRG9tYWluUG9saWN5LCBQb2xpY3lFcnJv
ckJsb2NrZWRCeUNvbnRlbnRCbG9ja2VyLCByZXF1ZXN0LnVybCgpLCBfKCJCbG9ja2VkIGJ5IGNv
bnRlbnQgYmxvY2tlciIpKTsKLX0KLQotUmVzb3VyY2VFcnJvciBjYW5ub3RTaG93VVJMRXJyb3Io
Y29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0KQotewotICAgIHJldHVybiBSZXNvdXJjZUVy
cm9yKGVycm9yRG9tYWluUG9saWN5LCBQb2xpY3lFcnJvckNhbm5vdFNob3dVUkwsIHJlcXVlc3Qu
dXJsKCksIF8oIlVSTCBjYW5ub3QgYmUgc2hvd24iKSk7Ci19Ci0KLVJlc291cmNlRXJyb3IgaW50
ZXJydXB0ZWRGb3JQb2xpY3lDaGFuZ2VFcnJvcihjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVl
c3QpCi17Ci0gICAgcmV0dXJuIFJlc291cmNlRXJyb3IoZXJyb3JEb21haW5Qb2xpY3ksIFBvbGlj
eUVycm9yRnJhbWVMb2FkSW50ZXJydXB0ZWRCeVBvbGljeUNoYW5nZSwgcmVxdWVzdC51cmwoKSwg
XygiRnJhbWUgbG9hZCB3YXMgaW50ZXJydXB0ZWQiKSk7Ci19Ci0KLVJlc291cmNlRXJyb3IgY2Fu
bm90U2hvd01JTUVUeXBlRXJyb3IoY29uc3QgUmVzb3VyY2VSZXNwb25zZSYgcmVzcG9uc2UpCi17
Ci0gICAgcmV0dXJuIFJlc291cmNlRXJyb3IoZXJyb3JEb21haW5Qb2xpY3ksIFBvbGljeUVycm9y
Q2Fubm90U2hvd01pbWVUeXBlLCByZXNwb25zZS51cmwoKSwgXygiQ29udGVudCB3aXRoIHRoZSBz
cGVjaWZpZWQgTUlNRSB0eXBlIGNhbm5vdCBiZSBzaG93biIpKTsKLX0KLQotUmVzb3VyY2VFcnJv
ciBmaWxlRG9lc05vdEV4aXN0RXJyb3IoY29uc3QgUmVzb3VyY2VSZXNwb25zZSYgcmVzcG9uc2Up
Ci17Ci0gICAgcmV0dXJuIFJlc291cmNlRXJyb3IoZXJyb3JEb21haW5OZXR3b3JrLCBOZXR3b3Jr
RXJyb3JGaWxlRG9lc05vdEV4aXN0LCByZXNwb25zZS51cmwoKSwgXygiRmlsZSBkb2VzIG5vdCBl
eGlzdCIpKTsKLX0KLQotUmVzb3VyY2VFcnJvciBwbHVnaW5XaWxsSGFuZGxlTG9hZEVycm9yKGNv
bnN0IFJlc291cmNlUmVzcG9uc2UmIHJlc3BvbnNlKQotewotICAgIHJldHVybiBSZXNvdXJjZUVy
cm9yKGVycm9yRG9tYWluUGx1Z2luLCBQbHVnaW5FcnJvcldpbGxIYW5kbGVMb2FkLCByZXNwb25z
ZS51cmwoKSwgXygiUGx1Z2luIHdpbGwgaGFuZGxlIGxvYWQiKSk7Ci19Ci0KLVJlc291cmNlRXJy
b3IgZG93bmxvYWROZXR3b3JrRXJyb3IoY29uc3QgUmVzb3VyY2VFcnJvciYgbmV0d29ya0Vycm9y
KQotewotICAgIHJldHVybiBSZXNvdXJjZUVycm9yKGVycm9yRG9tYWluRG93bmxvYWQsIERvd25s
b2FkRXJyb3JOZXR3b3JrLCBuZXR3b3JrRXJyb3IuZmFpbGluZ1VSTCgpLCBuZXR3b3JrRXJyb3Iu
bG9jYWxpemVkRGVzY3JpcHRpb24oKSk7Ci19Ci0KLVJlc291cmNlRXJyb3IgZG93bmxvYWRDYW5j
ZWxsZWRCeVVzZXJFcnJvcihjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiByZXNwb25zZSkKLXsKLSAg
ICByZXR1cm4gUmVzb3VyY2VFcnJvcihlcnJvckRvbWFpbkRvd25sb2FkLCBEb3dubG9hZEVycm9y
Q2FuY2VsbGVkQnlVc2VyLCByZXNwb25zZS51cmwoKSwgXygiVXNlciBjYW5jZWxsZWQgdGhlIGRv
d25sb2FkIikpOwotfQotCi1SZXNvdXJjZUVycm9yIGRvd25sb2FkRGVzdGluYXRpb25FcnJvcihj
b25zdCBSZXNvdXJjZVJlc3BvbnNlJiByZXNwb25zZSwgY29uc3QgU3RyaW5nJiBlcnJvck1lc3Nh
Z2UpCi17Ci0gICAgcmV0dXJuIFJlc291cmNlRXJyb3IoZXJyb3JEb21haW5Eb3dubG9hZCwgRG93
bmxvYWRFcnJvckRlc3RpbmF0aW9uLCByZXNwb25zZS51cmwoKSwgZXJyb3JNZXNzYWdlKTsKLX0K
LQotUmVzb3VyY2VFcnJvciBwcmludEVycm9yKGNvbnN0IFVSTCYgZmFpbGluZ1VSTCwgY29uc3Qg
U3RyaW5nJiBlcnJvck1lc3NhZ2UpCi17Ci0gICAgcmV0dXJuIFJlc291cmNlRXJyb3IoZXJyb3JE
b21haW5QcmludCwgUHJpbnRFcnJvckdlbmVyYWwsIGZhaWxpbmdVUkwsIGVycm9yTWVzc2FnZSk7
Ci19Ci0KLVJlc291cmNlRXJyb3IgcHJpbnRlck5vdEZvdW5kRXJyb3IoY29uc3QgVVJMJiBmYWls
aW5nVVJMKQotewotICAgIHJldHVybiBSZXNvdXJjZUVycm9yKGVycm9yRG9tYWluUHJpbnQsIFBy
aW50RXJyb3JQcmludGVyTm90Rm91bmQsIGZhaWxpbmdVUkwsIF8oIlByaW50ZXIgbm90IGZvdW5k
IikpOwotfQotCi1SZXNvdXJjZUVycm9yIGludmFsaWRQYWdlUmFuZ2VUb1ByaW50KGNvbnN0IFVS
TCYgZmFpbGluZ1VSTCkKLXsKLSAgICByZXR1cm4gUmVzb3VyY2VFcnJvcihlcnJvckRvbWFpblBy
aW50LCBQcmludEVycm9ySW52YWxpZFBhZ2VSYW5nZSwgZmFpbGluZ1VSTCwgXygiSW52YWxpZCBw
YWdlIHJhbmdlIikpOwotfQotCi19IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvRXJyb3JzR3RrLmggYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ndGsvRXJyb3JzR3RrLmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDc2
MWRjY2IyNmVmNzAwNDFiYzcxYTcwMjFiNTA1MzBkNzgwMjgxNzAuLjAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Rr
L0Vycm9yc0d0ay5oCisrKyAvZGV2L251bGwKQEAgLTEsOTQgKzAsMCBAQAotLyoKLSAqIENvcHly
aWdodCAoQykgMjAxMSBJZ2FsaWEgUy5MLgotICoKLSAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNv
ZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKLSAqIG1vZGlmeSBpdCB1bmRl
ciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCi0gKiBMaWNlbnNl
IGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKLSAq
IHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIg
dmVyc2lvbi4KLSAqCi0gKiBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUg
dGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKLSAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0
aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCi0gKiBNRVJDSEFOVEFCSUxJVFkgb3Ig
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQotICogTGlicmFy
eSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCi0gKgotICogWW91IHNo
b3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJs
aWMgTGljZW5zZQotICogYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZ
SU5HLkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KLSAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRp
b24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsCi0gKiBCb3N0b24sIE1B
IDAyMTEwLTEzMDEsIFVTQS4KLSAqLwotCi0jaWZuZGVmIEVycm9yc0d0a19oCi0jZGVmaW5lIEVy
cm9yc0d0a19oCi0KLSNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KLQotbmFtZXNwYWNl
IFdlYkNvcmUgewotCi1jbGFzcyBSZXNvdXJjZUVycm9yOwotY2xhc3MgUmVzb3VyY2VSZXF1ZXN0
OwotY2xhc3MgUmVzb3VyY2VSZXNwb25zZTsKLWNsYXNzIFVSTDsKLQotY29uc3QgY2hhciogY29u
c3QgZXJyb3JEb21haW5OZXR3b3JrID0gIldlYktpdE5ldHdvcmtFcnJvciI7Ci1jb25zdCBjaGFy
KiBjb25zdCBlcnJvckRvbWFpblBvbGljeSA9ICJXZWJLaXRQb2xpY3lFcnJvciI7Ci1jb25zdCBj
aGFyKiBjb25zdCBlcnJvckRvbWFpblBsdWdpbiA9ICJXZWJLaXRQbHVnaW5FcnJvciI7Ci1jb25z
dCBjaGFyKiBjb25zdCBlcnJvckRvbWFpbkRvd25sb2FkID0gIldlYktpdERvd25sb2FkRXJyb3Ii
OwotY29uc3QgY2hhciogY29uc3QgZXJyb3JEb21haW5QcmludCA9ICJXZWJLaXRQcmludEVycm9y
IjsKLQotZW51bSBOZXR3b3JrRXJyb3IgewotICAgIE5ldHdvcmtFcnJvckZhaWxlZCA9IDM5OSwK
LSAgICBOZXR3b3JrRXJyb3JUcmFuc3BvcnQgPSAzMDAsCi0gICAgTmV0d29ya0Vycm9yVW5rbm93
blByb3RvY29sID0gMzAxLAotICAgIE5ldHdvcmtFcnJvckNhbmNlbGxlZCA9IDMwMiwKLSAgICBO
ZXR3b3JrRXJyb3JGaWxlRG9lc05vdEV4aXN0ID0gMzAzCi19OwotCi0vLyBTeW5jJ2Qgd2l0aCBN
YWMncyBXZWJLaXQgRXJyb3JzLgotZW51bSBQb2xpY3lFcnJvciB7Ci0gICAgUG9saWN5RXJyb3JG
YWlsZWQgPSAxOTksCi0gICAgUG9saWN5RXJyb3JDYW5ub3RTaG93TWltZVR5cGUgPSAxMDAsCi0g
ICAgUG9saWN5RXJyb3JDYW5ub3RTaG93VVJMID0gMTAxLAotICAgIFBvbGljeUVycm9yRnJhbWVM
b2FkSW50ZXJydXB0ZWRCeVBvbGljeUNoYW5nZSA9IDEwMiwKLSAgICBQb2xpY3lFcnJvckNhbm5v
dFVzZVJlc3RyaWN0ZWRQb3J0ID0gMTAzLAotICAgIFBvbGljeUVycm9yQmxvY2tlZEJ5Q29udGVu
dEJsb2NrZXIgPSAxMDQsCi19OwotCi1lbnVtIFBsdWdpbkVycm9yIHsKLSAgICBQbHVnaW5FcnJv
ckZhaWxlZCA9IDI5OSwKLSAgICBQbHVnaW5FcnJvckNhbm5vdEZpbmRQbHVnaW4gPSAyMDAsCi0g
ICAgUGx1Z2luRXJyb3JDYW5ub3RMb2FkUGx1Z2luID0gMjAxLAotICAgIFBsdWdpbkVycm9ySmF2
YVVuYXZhaWxhYmxlID0gMjAyLAotICAgIFBsdWdpbkVycm9yQ29ubmVjdGlvbkNhbmNlbGxlZCA9
IDIwMywKLSAgICBQbHVnaW5FcnJvcldpbGxIYW5kbGVMb2FkID0gMjA0Ci19OwotCi1lbnVtIERv
d25sb2FkRXJyb3IgewotICAgIERvd25sb2FkRXJyb3JOZXR3b3JrID0gNDk5LAotICAgIERvd25s
b2FkRXJyb3JDYW5jZWxsZWRCeVVzZXIgPSA0MDAsCi0gICAgRG93bmxvYWRFcnJvckRlc3RpbmF0
aW9uID0gNDAxCi19OwotCi1lbnVtIFByaW50RXJyb3IgewotICAgIFByaW50RXJyb3JHZW5lcmFs
ID0gNTk5LAotICAgIFByaW50RXJyb3JQcmludGVyTm90Rm91bmQgPSA1MDAsCi0gICAgUHJpbnRF
cnJvckludmFsaWRQYWdlUmFuZ2UgPSA1MDEKLX07Ci0KLVJlc291cmNlRXJyb3IgY2FuY2VsbGVk
RXJyb3IoY29uc3QgUmVzb3VyY2VSZXF1ZXN0Jik7Ci1SZXNvdXJjZUVycm9yIGJsb2NrZWRFcnJv
cihjb25zdCBSZXNvdXJjZVJlcXVlc3QmKTsKLVJlc291cmNlRXJyb3IgYmxvY2tlZEJ5Q29udGVu
dEJsb2NrZXJFcnJvcihjb25zdCBSZXNvdXJjZVJlcXVlc3QmKTsKLVJlc291cmNlRXJyb3IgY2Fu
bm90U2hvd1VSTEVycm9yKGNvbnN0IFJlc291cmNlUmVxdWVzdCYpOwotUmVzb3VyY2VFcnJvciBp
bnRlcnJ1cHRlZEZvclBvbGljeUNoYW5nZUVycm9yKGNvbnN0IFJlc291cmNlUmVxdWVzdCYpOwot
UmVzb3VyY2VFcnJvciBjYW5ub3RTaG93TUlNRVR5cGVFcnJvcihjb25zdCBSZXNvdXJjZVJlc3Bv
bnNlJik7Ci1SZXNvdXJjZUVycm9yIGZpbGVEb2VzTm90RXhpc3RFcnJvcihjb25zdCBSZXNvdXJj
ZVJlc3BvbnNlJik7Ci1SZXNvdXJjZUVycm9yIHBsdWdpbldpbGxIYW5kbGVMb2FkRXJyb3IoY29u
c3QgUmVzb3VyY2VSZXNwb25zZSYpOwotUmVzb3VyY2VFcnJvciBkb3dubG9hZE5ldHdvcmtFcnJv
cihjb25zdCBSZXNvdXJjZUVycm9yJik7Ci1SZXNvdXJjZUVycm9yIGRvd25sb2FkQ2FuY2VsbGVk
QnlVc2VyRXJyb3IoY29uc3QgUmVzb3VyY2VSZXNwb25zZSYpOwotUmVzb3VyY2VFcnJvciBkb3du
bG9hZERlc3RpbmF0aW9uRXJyb3IoY29uc3QgUmVzb3VyY2VSZXNwb25zZSYsIGNvbnN0IFN0cmlu
ZyYgZXJyb3JNZXNzYWdlKTsKLVJlc291cmNlRXJyb3IgcHJpbnRFcnJvcihjb25zdCBVUkwmIGZh
aWxpbmdVUkwsIGNvbnN0IFN0cmluZyYgZXJyb3JNZXNzYWdlKTsKLVJlc291cmNlRXJyb3IgcHJp
bnRlck5vdEZvdW5kRXJyb3IoY29uc3QgVVJMJiBmYWlsaW5nVVJMKTsKLVJlc291cmNlRXJyb3Ig
aW52YWxpZFBhZ2VSYW5nZVRvUHJpbnQoY29uc3QgVVJMJiBmYWlsaW5nVVJMKTsKLQotfQotCi0j
ZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9wby9QT1RGSUxF
Uy5pbiBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9wby9QT1RGSUxFUy5pbgppbmRleCA3
ZmEyODI1MjBjYWUyZTdmMTcwOTdhNzY4NTQzN2E2ZTU1OWM3NDBlLi41MWY3ODllYmYyMTdmNjlm
NTI5ZGJiNjFiYTI0ZmI5OWE3Y2JlZjY0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ndGsvcG8vUE9URklMRVMuaW4KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Rr
L3BvL1BPVEZJTEVTLmluCkBAIC0xLDUgKzEsNSBAQAogIyBMaXN0IG9mIHNvdXJjZSBmaWxlcyB3
aGljaCBjb250YWluIHRyYW5zbGF0YWJsZSBzdHJpbmdzLgotRXJyb3JzR3RrLmNwcAorLi4vdW5p
eC9FcnJvcnNVbml4LmNwcAogTG9jYWxpemVkU3RyaW5nc0d0ay5jcHAKIC4uLy4uLy4uL1dlYktp
dDIvTmV0d29ya1Byb2Nlc3MvRG93bmxvYWRzL3NvdXAvRG93bmxvYWRTb3VwLmNwcAogLi4vLi4v
Li4vV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRBdXRoZW50aWNhdGlvbkRpYWxvZy5j
cHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9FcnJvcnNNYWMubW0g
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvRXJyb3JzTWFjLm1tCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjVj
MGM1NGE4MWYyODg4NTliZGQ1MTBiYzNiNTZkN2FlMWFhYWU3OWEKLS0tIC9kZXYvbnVsbAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvRXJyb3JzTWFjLm1tCkBAIC0wLDAgKzEsMTEx
IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEu
IFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0g
bXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICog
ICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhl
IGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExF
IElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1Mg
T1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAq
IFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZP
UiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNI
QUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkg
RElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICog
Q09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJP
Q1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNF
LCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVS
IENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENP
TlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBP
UiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJ
UyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuCisgKi8KKworI2ltcG9ydCAiY29uZmlnLmgiCisjaW1wb3J0ICJFcnJvcnMuaCIK
KworI2ltcG9ydCAiTG9jYWxpemVkU3RyaW5ncy5oIgorI2ltcG9ydCAiUmVzb3VyY2VFcnJvci5o
IgorI2ltcG9ydCAiUmVzb3VyY2VSZXF1ZXN0LmgiCisjaW1wb3J0ICJSZXNvdXJjZVJlc3BvbnNl
LmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworZW51bSB7CisgICAga1dLRXJyb3JDb2RlQ2Fu
bm90U2hvd01JTUVUeXBlID0gICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEwMCwKKyAgICBr
V0tFcnJvckNvZGVDYW5ub3RTaG93VVJMID0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgMTAxLAorICAgIGtXS0Vycm9yQ29kZUZyYW1lTG9hZEludGVycnVwdGVkQnlQb2xpY3lDaGFu
Z2UgPSAgICAgICAgICAgICAxMDIsCisgICAga1dLRXJyb3JDb2RlQ2Fubm90VXNlUmVzdHJpY3Rl
ZFBvcnQgPSAgICAgICAgICAgICAgICAgICAgICAgIDEwMywKKyAgICBrV0tFcnJvckNvZGVGcmFt
ZUxvYWRCbG9ja2VkQnlDb250ZW50QmxvY2tlciA9ICAgICAgICAgICAgICAgMTA0LAorICAgIGtX
S0Vycm9yQ29kZUNhbm5vdEZpbmRQbHVnSW4gPSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAyMDAsCisgICAga1dLRXJyb3JDb2RlQ2Fubm90TG9hZFBsdWdJbiA9ICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIDIwMSwKKyAgICBrV0tFcnJvckNvZGVKYXZhVW5hdmFpbGFibGUgPSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMjAyLAorICAgIGtXS0Vycm9yQ29kZVBsdWdJ
bkNhbmNlbGxlZENvbm5lY3Rpb24gPSAgICAgICAgICAgICAgICAgICAgICAyMDMsCisgICAga1dL
RXJyb3JDb2RlUGx1Z0luV2lsbEhhbmRsZUxvYWQgPSAgICAgICAgICAgICAgICAgICAgICAgICAg
IDIwNCwKKyAgICBrV0tFcnJvckNvZGVJbnNlY3VyZVBsdWdJblZlcnNpb24gPSAgICAgICAgICAg
ICAgICAgICAgICAgICAgMjA1LAorICAgIGtXS0Vycm9ySW50ZXJuYWwgPSAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAzMDAsCit9OworCitzdGF0aWMgUmV0YWluUHRy
PE5TRXJyb3I+IGNyZWF0ZU5TRXJyb3IoTlNTdHJpbmcqIGRvbWFpbiwgaW50IGNvZGUsIE5TVVJM
ICpVUkwpCit7CisgICAgTlNEaWN0aW9uYXJ5ICp1c2VySW5mbyA9IFtOU0RpY3Rpb25hcnkgZGlj
dGlvbmFyeVdpdGhPYmplY3RzQW5kS2V5czoKKyAgICAgICAgVVJMLCBAIk5TRXJyb3JGYWlsaW5n
VVJMS2V5IiwKKyAgICAgICAgW1VSTCBhYnNvbHV0ZVN0cmluZ10sIEAiTlNFcnJvckZhaWxpbmdV
UkxTdHJpbmdLZXkiLAorICAgICAgICBuaWxdOworCisgICAgcmV0dXJuIGFkb3B0TlMoW1tOU0Vy
cm9yIGFsbG9jXSBpbml0V2l0aERvbWFpbjpkb21haW4gY29kZTpjb2RlIHVzZXJJbmZvOnVzZXJJ
bmZvXSk7Cit9CisKKy8vIFVzZSBOU0Vycm9yJ3MgaWYgYXZhaWxhYmxlLgorCitSZXNvdXJjZUVy
cm9yIGNhbmNlbGxlZEVycm9yKGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCkKK3sKKyAg
ICByZXR1cm4gUmVzb3VyY2VFcnJvcihjcmVhdGVOU0Vycm9yKE5TVVJMRXJyb3JEb21haW4sIE5T
VVJMRXJyb3JDYW5jZWxsZWQsIHJlcXVlc3QudXJsKCkpLmdldCgpKTsKK30KKworUmVzb3VyY2VF
cnJvciBmaWxlRG9lc05vdEV4aXN0RXJyb3IoY29uc3QgUmVzb3VyY2VSZXNwb25zZSYgcmVzcG9u
c2UpCit7CisgICAgcmV0dXJuIFJlc291cmNlRXJyb3IoY3JlYXRlTlNFcnJvcihOU1VSTEVycm9y
RG9tYWluLCBOU1VSTEVycm9yRmlsZURvZXNOb3RFeGlzdCwgcmVzcG9uc2UudXJsKCkpLmdldCgp
KTsKK30KKworCisvLyBPdGhlcndpc2UsIGZhbGxiYWNrIHRvIG91ciBvd24gZXJyb3JzLgorCitS
ZXNvdXJjZUVycm9yIGJsb2NrZWRFcnJvcihjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3Qp
Cit7CisgICAgcmV0dXJuIFJlc291cmNlRXJyb3Iod2ViS2l0RXJyb3JEb21haW4oKSwga1dLRXJy
b3JDb2RlQ2Fubm90VXNlUmVzdHJpY3RlZFBvcnQsIHJlcXVlc3QudXJsKCksIFdFQl9VSV9TVFJJ
TkcoIk5vdCBhbGxvd2VkIHRvIHVzZSByZXN0cmljdGVkIG5ldHdvcmsgcG9ydCIsICJXZWJLaXRF
cnJvckNhbm5vdFVzZVJlc3RyaWN0ZWRQb3J0IGRlc2NyaXB0aW9uIikpOworfQorCitSZXNvdXJj
ZUVycm9yIGJsb2NrZWRCeUNvbnRlbnRCbG9ja2VyRXJyb3IoY29uc3QgUmVzb3VyY2VSZXF1ZXN0
JiByZXF1ZXN0KQoreworICAgIHJldHVybiBSZXNvdXJjZUVycm9yKHdlYktpdEVycm9yRG9tYWlu
KCksIGtXS0Vycm9yQ29kZUZyYW1lTG9hZEJsb2NrZWRCeUNvbnRlbnRCbG9ja2VyLCByZXF1ZXN0
LnVybCgpLCBXRUJfVUlfU1RSSU5HKCJUaGUgVVJMIHdhcyBibG9ja2VkIGJ5IGEgY29udGVudCBi
bG9ja2VyIiwgIldlYktpdEVycm9yQmxvY2tlZEJ5Q29udGVudEJsb2NrZXIgZGVzY3JpcHRpb24i
KSk7Cit9CisKK1Jlc291cmNlRXJyb3IgY2Fubm90U2hvd1VSTEVycm9yKGNvbnN0IFJlc291cmNl
UmVxdWVzdCYgcmVxdWVzdCkKK3sKKyAgICByZXR1cm4gUmVzb3VyY2VFcnJvcih3ZWJLaXRFcnJv
ckRvbWFpbigpLCBrV0tFcnJvckNvZGVDYW5ub3RTaG93VVJMLCByZXF1ZXN0LnVybCgpLCBXRUJf
VUlfU1RSSU5HKCJUaGUgVVJMIGNhbuKAmXQgYmUgc2hvd24iLCAiV2ViS2l0RXJyb3JDYW5ub3RT
aG93VVJMIGRlc2NyaXB0aW9uIikpOworfQorCitSZXNvdXJjZUVycm9yIGludGVycnVwdGVkRm9y
UG9saWN5Q2hhbmdlRXJyb3IoY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0KQoreworICAg
IHJldHVybiBSZXNvdXJjZUVycm9yKHdlYktpdEVycm9yRG9tYWluKCksIGtXS0Vycm9yQ29kZUZy
YW1lTG9hZEludGVycnVwdGVkQnlQb2xpY3lDaGFuZ2UsIHJlcXVlc3QudXJsKCksIFdFQl9VSV9T
VFJJTkcoIkZyYW1lIGxvYWQgaW50ZXJydXB0ZWQiLCAiV2ViS2l0RXJyb3JGcmFtZUxvYWRJbnRl
cnJ1cHRlZEJ5UG9saWN5Q2hhbmdlIGRlc2NyaXB0aW9uIikpOworfQorCitSZXNvdXJjZUVycm9y
IGNhbm5vdFNob3dNSU1FVHlwZUVycm9yKGNvbnN0IFJlc291cmNlUmVzcG9uc2UmIHJlc3BvbnNl
KQoreworICAgIHJldHVybiBSZXNvdXJjZUVycm9yKHdlYktpdEVycm9yRG9tYWluKCksIGtXS0Vy
cm9yQ29kZUNhbm5vdFNob3dNSU1FVHlwZSwgcmVzcG9uc2UudXJsKCksIFdFQl9VSV9TVFJJTkco
IkNvbnRlbnQgd2l0aCBzcGVjaWZpZWQgTUlNRSB0eXBlIGNhbuKAmXQgYmUgc2hvd24iLCAiV2Vi
S2l0RXJyb3JDYW5ub3RTaG93TUlNRVR5cGUgZGVzY3JpcHRpb24iKSk7Cit9CisKK1Jlc291cmNl
RXJyb3IgcGx1Z2luV2lsbEhhbmRsZUxvYWRFcnJvcihjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiBy
ZXNwb25zZSkKK3sKKyAgICByZXR1cm4gUmVzb3VyY2VFcnJvcih3ZWJLaXRFcnJvckRvbWFpbigp
LCBrV0tFcnJvckNvZGVQbHVnSW5XaWxsSGFuZGxlTG9hZCwgcmVzcG9uc2UudXJsKCksIFdFQl9V
SV9TVFJJTkcoIlBsdWctaW4gaGFuZGxlZCBsb2FkIiwgIldlYktpdEVycm9yUGx1Z0luV2lsbEhh
bmRsZUxvYWQgZGVzY3JpcHRpb24iKSk7Cit9CisKK1Jlc291cmNlRXJyb3IgaW50ZXJuYWxFcnJv
cihjb25zdCBVUkwmIHVybCkKK3sKKyAgICByZXR1cm4gUmVzb3VyY2VFcnJvcih3ZWJLaXRFcnJv
ckRvbWFpbigpLCBrV0tFcnJvckludGVybmFsLCB1cmwsIFdFQl9VSV9TVFJJTkcoIldlYktpdCBl
bmNvdW50ZXJlZCBhbiBpbnRlcm5hbCBlcnJvciIsICJXZWJLaXRFcnJvckludGVybmFsIGRlc2Ny
aXB0aW9uIikpOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS91bml4L0Vycm9yc1VuaXguY3BwIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vdW5peC9FcnJvcnNVbml4LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iMTZmNDkyOWJiZTUwZTYw
NWY2NGM0N2M5NDA3YWI0NjIyZmQ1MDQzCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vdW5peC9FcnJvcnNVbml4LmNwcApAQCAtMCwwICsxLDExMiBAQAorLyoKKyAq
IENvcHlyaWdodCAoQykgMjAxMSBJZ2FsaWEgUy5MLgorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBm
cmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAqIG1vZGlmeSBp
dCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCisgKiBM
aWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRo
ZXIKKyAqIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkg
bGF0ZXIgdmVyc2lvbi4KKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhl
IGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5U
WTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiBNRVJDSEFOVEFCSUxJ
VFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICog
TGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisgKgorICog
WW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJh
bCBQdWJsaWMgTGljZW5zZQorICogYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmls
ZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KKyAqIHRoZSBGcmVlIFNvZnR3YXJlIEZv
dW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsCisgKiBCb3N0
b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5j
bHVkZSAiRXJyb3JzVW5peC5oIgorCisjaW5jbHVkZSAiRXJyb3JzLmgiCisjaW5jbHVkZSAiUmVz
b3VyY2VFcnJvci5oIgorI2luY2x1ZGUgIlJlc291cmNlUmVxdWVzdC5oIgorI2luY2x1ZGUgIlJl
c291cmNlUmVzcG9uc2UuaCIKKworI2lmIFBMQVRGT1JNKEdUSykKKyNpbmNsdWRlIDxnbGliL2dp
MThuLWxpYi5oPgorI2RlZmluZSBFUlJPUl9TVFJJTkcocykgXyhzKQorI2VsaWYgUExBVEZPUk0o
RUZMKQorI2RlZmluZSBFUlJPUl9TVFJJTkcocykgQVNDSUlMaXRlcmFsKHMpCisjZW5kaWYKKwor
bmFtZXNwYWNlIFdlYkNvcmUgeworCitSZXNvdXJjZUVycm9yIGNhbmNlbGxlZEVycm9yKGNvbnN0
IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCkKK3sKKyAgICByZXR1cm4gUmVzb3VyY2VFcnJvcihl
cnJvckRvbWFpbk5ldHdvcmssIE5ldHdvcmtFcnJvckNhbmNlbGxlZCwgcmVxdWVzdC51cmwoKSwg
RVJST1JfU1RSSU5HKCJMb2FkIHJlcXVlc3QgY2FuY2VsbGVkIikpOworfQorCitSZXNvdXJjZUVy
cm9yIGJsb2NrZWRFcnJvcihjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QpCit7CisgICAg
cmV0dXJuIFJlc291cmNlRXJyb3IoZXJyb3JEb21haW5Qb2xpY3ksIFBvbGljeUVycm9yQ2Fubm90
VXNlUmVzdHJpY3RlZFBvcnQsIHJlcXVlc3QudXJsKCksIEVSUk9SX1NUUklORygiTm90IGFsbG93
ZWQgdG8gdXNlIHJlc3RyaWN0ZWQgbmV0d29yayBwb3J0IikpOworfQorCitSZXNvdXJjZUVycm9y
IGJsb2NrZWRCeUNvbnRlbnRCbG9ja2VyRXJyb3IoY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1
ZXN0KQoreworICAgIHJldHVybiBSZXNvdXJjZUVycm9yKGVycm9yRG9tYWluUG9saWN5LCBQb2xp
Y3lFcnJvckJsb2NrZWRCeUNvbnRlbnRCbG9ja2VyLCByZXF1ZXN0LnVybCgpLCBFUlJPUl9TVFJJ
TkcoIkJsb2NrZWQgYnkgY29udGVudCBibG9ja2VyIikpOworfQorCitSZXNvdXJjZUVycm9yIGNh
bm5vdFNob3dVUkxFcnJvcihjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QpCit7CisgICAg
cmV0dXJuIFJlc291cmNlRXJyb3IoZXJyb3JEb21haW5Qb2xpY3ksIFBvbGljeUVycm9yQ2Fubm90
U2hvd1VSTCwgcmVxdWVzdC51cmwoKSwgRVJST1JfU1RSSU5HKCJVUkwgY2Fubm90IGJlIHNob3du
IikpOworfQorCitSZXNvdXJjZUVycm9yIGludGVycnVwdGVkRm9yUG9saWN5Q2hhbmdlRXJyb3Io
Y29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0KQoreworICAgIHJldHVybiBSZXNvdXJjZUVy
cm9yKGVycm9yRG9tYWluUG9saWN5LCBQb2xpY3lFcnJvckZyYW1lTG9hZEludGVycnVwdGVkQnlQ
b2xpY3lDaGFuZ2UsIHJlcXVlc3QudXJsKCksIEVSUk9SX1NUUklORygiRnJhbWUgbG9hZCB3YXMg
aW50ZXJydXB0ZWQiKSk7Cit9CisKK1Jlc291cmNlRXJyb3IgY2Fubm90U2hvd01JTUVUeXBlRXJy
b3IoY29uc3QgUmVzb3VyY2VSZXNwb25zZSYgcmVzcG9uc2UpCit7CisgICAgcmV0dXJuIFJlc291
cmNlRXJyb3IoZXJyb3JEb21haW5Qb2xpY3ksIFBvbGljeUVycm9yQ2Fubm90U2hvd01pbWVUeXBl
LCByZXNwb25zZS51cmwoKSwgRVJST1JfU1RSSU5HKCJDb250ZW50IHdpdGggdGhlIHNwZWNpZmll
ZCBNSU1FIHR5cGUgY2Fubm90IGJlIHNob3duIikpOworfQorCitSZXNvdXJjZUVycm9yIGZpbGVE
b2VzTm90RXhpc3RFcnJvcihjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiByZXNwb25zZSkKK3sKKyAg
ICByZXR1cm4gUmVzb3VyY2VFcnJvcihlcnJvckRvbWFpbk5ldHdvcmssIE5ldHdvcmtFcnJvckZp
bGVEb2VzTm90RXhpc3QsIHJlc3BvbnNlLnVybCgpLCBFUlJPUl9TVFJJTkcoIkZpbGUgZG9lcyBu
b3QgZXhpc3QiKSk7Cit9CisKK1Jlc291cmNlRXJyb3IgcGx1Z2luV2lsbEhhbmRsZUxvYWRFcnJv
cihjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiByZXNwb25zZSkKK3sKKyAgICByZXR1cm4gUmVzb3Vy
Y2VFcnJvcihlcnJvckRvbWFpblBsdWdpbiwgUGx1Z2luRXJyb3JXaWxsSGFuZGxlTG9hZCwgcmVz
cG9uc2UudXJsKCksIEVSUk9SX1NUUklORygiUGx1Z2luIHdpbGwgaGFuZGxlIGxvYWQiKSk7Cit9
CisKK1Jlc291cmNlRXJyb3IgZG93bmxvYWROZXR3b3JrRXJyb3IoY29uc3QgUmVzb3VyY2VFcnJv
ciYgbmV0d29ya0Vycm9yKQoreworICAgIHJldHVybiBSZXNvdXJjZUVycm9yKGVycm9yRG9tYWlu
RG93bmxvYWQsIERvd25sb2FkRXJyb3JOZXR3b3JrLCBuZXR3b3JrRXJyb3IuZmFpbGluZ1VSTCgp
LCBuZXR3b3JrRXJyb3IubG9jYWxpemVkRGVzY3JpcHRpb24oKSk7Cit9CisKK1Jlc291cmNlRXJy
b3IgZG93bmxvYWRDYW5jZWxsZWRCeVVzZXJFcnJvcihjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiBy
ZXNwb25zZSkKK3sKKyAgICByZXR1cm4gUmVzb3VyY2VFcnJvcihlcnJvckRvbWFpbkRvd25sb2Fk
LCBEb3dubG9hZEVycm9yQ2FuY2VsbGVkQnlVc2VyLCByZXNwb25zZS51cmwoKSwgRVJST1JfU1RS
SU5HKCJVc2VyIGNhbmNlbGxlZCB0aGUgZG93bmxvYWQiKSk7Cit9CisKK1Jlc291cmNlRXJyb3Ig
ZG93bmxvYWREZXN0aW5hdGlvbkVycm9yKGNvbnN0IFJlc291cmNlUmVzcG9uc2UmIHJlc3BvbnNl
LCBjb25zdCBTdHJpbmcmIGVycm9yTWVzc2FnZSkKK3sKKyAgICByZXR1cm4gUmVzb3VyY2VFcnJv
cihlcnJvckRvbWFpbkRvd25sb2FkLCBEb3dubG9hZEVycm9yRGVzdGluYXRpb24sIHJlc3BvbnNl
LnVybCgpLCBlcnJvck1lc3NhZ2UpOworfQorCitSZXNvdXJjZUVycm9yIHByaW50RXJyb3IoY29u
c3QgVVJMJiBmYWlsaW5nVVJMLCBjb25zdCBTdHJpbmcmIGVycm9yTWVzc2FnZSkKK3sKKyAgICBy
ZXR1cm4gUmVzb3VyY2VFcnJvcihlcnJvckRvbWFpblByaW50LCBQcmludEVycm9yR2VuZXJhbCwg
ZmFpbGluZ1VSTCwgZXJyb3JNZXNzYWdlKTsKK30KKworUmVzb3VyY2VFcnJvciBwcmludGVyTm90
Rm91bmRFcnJvcihjb25zdCBVUkwmIGZhaWxpbmdVUkwpCit7CisgICAgcmV0dXJuIFJlc291cmNl
RXJyb3IoZXJyb3JEb21haW5QcmludCwgUHJpbnRFcnJvclByaW50ZXJOb3RGb3VuZCwgZmFpbGlu
Z1VSTCwgRVJST1JfU1RSSU5HKCJQcmludGVyIG5vdCBmb3VuZCIpKTsKK30KKworUmVzb3VyY2VF
cnJvciBpbnZhbGlkUGFnZVJhbmdlVG9QcmludChjb25zdCBVUkwmIGZhaWxpbmdVUkwpCit7Cisg
ICAgcmV0dXJuIFJlc291cmNlRXJyb3IoZXJyb3JEb21haW5QcmludCwgUHJpbnRFcnJvckludmFs
aWRQYWdlUmFuZ2UsIGZhaWxpbmdVUkwsIEVSUk9SX1NUUklORygiSW52YWxpZCBwYWdlIHJhbmdl
IikpOworfQorCitSZXNvdXJjZUVycm9yIGludGVybmFsRXJyb3IoY29uc3QgVVJMJiB1cmwpCit7
CisgICAgcmV0dXJuIFJlc291cmNlRXJyb3Iod2ViS2l0RXJyb3JEb21haW4oKSwgUG9saWN5RXJy
b3JJbnRlcm5hbCwgdXJsLCBFUlJPUl9TVFJJTkcoIkludGVybmFsIGVycm9yIikpOworfQorCit9
IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS91bml4L0Vycm9yc1VuaXguaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3VuaXgvRXJyb3Jz
VW5peC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLjQxZjI1ZTUxY2E1MGIyY2YzY2FiMzgwMzk4YTY5MTM2ODVmM2Fi
ZmIKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS91bml4L0Vycm9y
c1VuaXguaApAQCAtMCwwICsxLDg3IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDExLCAyMDE2
IElnYWxpYSBTLkwuCisgKgorICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBj
YW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBv
ZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKKyAqIExpY2Vuc2UgYXMgcHVibGlzaGVk
IGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgorICogdmVyc2lvbiAyIG9m
IHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorICoK
KyAqIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwg
YmUgdXNlZnVsLAorICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhl
IGltcGxpZWQgd2FycmFudHkgb2YKKyAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBB
IFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisgKiBMaWJyYXJ5IEdlbmVyYWwgUHVi
bGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAqCisgKiBZb3Ugc2hvdWxkIGhhdmUgcmVj
ZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisg
KiBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJTkcuTElCLiAgSWYg
bm90LCB3cml0ZSB0bworICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTEg
RnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwKKyAqIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwg
VVNBLgorICovCisKKyNpZm5kZWYgRXJyb3JzVW5peF9oCisjZGVmaW5lIEVycm9yc1VuaXhfaAor
CisjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsK
KworY2xhc3MgUmVzb3VyY2VFcnJvcjsKK2NsYXNzIFJlc291cmNlUmVxdWVzdDsKK2NsYXNzIFJl
c291cmNlUmVzcG9uc2U7CitjbGFzcyBVUkw7CisKK2NvbnN0IGNoYXIqIGNvbnN0IGVycm9yRG9t
YWluTmV0d29yayA9ICJXZWJLaXROZXR3b3JrRXJyb3IiOworY29uc3QgY2hhciogY29uc3QgZXJy
b3JEb21haW5Qb2xpY3kgPSAiV2ViS2l0UG9saWN5RXJyb3IiOworY29uc3QgY2hhciogY29uc3Qg
ZXJyb3JEb21haW5QbHVnaW4gPSAiV2ViS2l0UGx1Z2luRXJyb3IiOworY29uc3QgY2hhciogY29u
c3QgZXJyb3JEb21haW5Eb3dubG9hZCA9ICJXZWJLaXREb3dubG9hZEVycm9yIjsKK2NvbnN0IGNo
YXIqIGNvbnN0IGVycm9yRG9tYWluUHJpbnQgPSAiV2ViS2l0UHJpbnRFcnJvciI7CisKK2VudW0g
TmV0d29ya0Vycm9yIHsKKyAgICBOZXR3b3JrRXJyb3JGYWlsZWQgPSAzOTksCisgICAgTmV0d29y
a0Vycm9yVW5rbm93blByb3RvY29sID0gMzAxLAorICAgIE5ldHdvcmtFcnJvckNhbmNlbGxlZCA9
IDMwMiwKKyAgICBOZXR3b3JrRXJyb3JGaWxlRG9lc05vdEV4aXN0ID0gMzAzLAorICAgIE5ldHdv
cmtFcnJvclRyYW5zcG9ydCA9IDMwNCwKK307CisKKy8vIFN5bmMnZCB3aXRoIE1hYydzIFdlYktp
dCBFcnJvcnMuCitlbnVtIFBvbGljeUVycm9yIHsKKyAgICBQb2xpY3lFcnJvckludGVybmFsID0g
MzAwLAorICAgIFBvbGljeUVycm9yRmFpbGVkID0gMTk5LAorICAgIFBvbGljeUVycm9yQ2Fubm90
U2hvd01pbWVUeXBlID0gMTAwLAorICAgIFBvbGljeUVycm9yQ2Fubm90U2hvd1VSTCA9IDEwMSwK
KyAgICBQb2xpY3lFcnJvckZyYW1lTG9hZEludGVycnVwdGVkQnlQb2xpY3lDaGFuZ2UgPSAxMDIs
CisgICAgUG9saWN5RXJyb3JDYW5ub3RVc2VSZXN0cmljdGVkUG9ydCA9IDEwMywKKyAgICBQb2xp
Y3lFcnJvckJsb2NrZWRCeUNvbnRlbnRCbG9ja2VyID0gMTA0LAorfTsKKworZW51bSBQbHVnaW5F
cnJvciB7CisgICAgUGx1Z2luRXJyb3JGYWlsZWQgPSAyOTksCisgICAgUGx1Z2luRXJyb3JDYW5u
b3RGaW5kUGx1Z2luID0gMjAwLAorICAgIFBsdWdpbkVycm9yQ2Fubm90TG9hZFBsdWdpbiA9IDIw
MSwKKyAgICBQbHVnaW5FcnJvckphdmFVbmF2YWlsYWJsZSA9IDIwMiwKKyAgICBQbHVnaW5FcnJv
ckNvbm5lY3Rpb25DYW5jZWxsZWQgPSAyMDMsCisgICAgUGx1Z2luRXJyb3JXaWxsSGFuZGxlTG9h
ZCA9IDIwNAorfTsKKworZW51bSBEb3dubG9hZEVycm9yIHsKKyAgICBEb3dubG9hZEVycm9yTmV0
d29yayA9IDQ5OSwKKyAgICBEb3dubG9hZEVycm9yQ2FuY2VsbGVkQnlVc2VyID0gNDAwLAorICAg
IERvd25sb2FkRXJyb3JEZXN0aW5hdGlvbiA9IDQwMQorfTsKKworZW51bSBQcmludEVycm9yIHsK
KyAgICBQcmludEVycm9yR2VuZXJhbCA9IDU5OSwKKyAgICBQcmludEVycm9yUHJpbnRlck5vdEZv
dW5kID0gNTAwLAorICAgIFByaW50RXJyb3JJbnZhbGlkUGFnZVJhbmdlID0gNTAxCit9OworCitS
ZXNvdXJjZUVycm9yIGRvd25sb2FkTmV0d29ya0Vycm9yKGNvbnN0IFJlc291cmNlRXJyb3ImKTsK
K1Jlc291cmNlRXJyb3IgZG93bmxvYWRDYW5jZWxsZWRCeVVzZXJFcnJvcihjb25zdCBSZXNvdXJj
ZVJlc3BvbnNlJik7CitSZXNvdXJjZUVycm9yIGRvd25sb2FkRGVzdGluYXRpb25FcnJvcihjb25z
dCBSZXNvdXJjZVJlc3BvbnNlJiwgY29uc3QgU3RyaW5nJiBlcnJvck1lc3NhZ2UpOworUmVzb3Vy
Y2VFcnJvciBwcmludEVycm9yKGNvbnN0IFVSTCYgZmFpbGluZ1VSTCwgY29uc3QgU3RyaW5nJiBl
cnJvck1lc3NhZ2UpOworUmVzb3VyY2VFcnJvciBwcmludGVyTm90Rm91bmRFcnJvcihjb25zdCBV
UkwmIGZhaWxpbmdVUkwpOworUmVzb3VyY2VFcnJvciBpbnZhbGlkUGFnZVJhbmdlVG9QcmludChj
b25zdCBVUkwmIGZhaWxpbmdVUkwpOworCit9CisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vd2luL0Vycm9yc1dpbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS93aW4vRXJyb3JzV2luLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41MmQ0MzExM2IwN2ZkODY0OWFjN2E0
MzQ3YTRmNzg5NTkwYjk5ZjAxCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vd2luL0Vycm9yc1dpbi5jcHAKQEAgLTAsMCArMSw5NCBAQAorLyoKKyAqIENvcHlyaWdo
dCAoQykgMjAwNi0yMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqCisgKiAxLiAgUmVkaXN0cmli
dXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCisgKiAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVw
cm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICAgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3Ry
aWJ1dGlvbi4KKyAqIDMuICBOZWl0aGVyIHRoZSBuYW1lIG9mIEFwcGxlIEluYy4gKCJBcHBsZSIp
IG5vciB0aGUgbmFtZXMgb2YKKyAqICAgICBpdHMgY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRv
IGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkCisgKiAgICAgZnJvbSB0aGlzIHNv
ZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorICoKKyAq
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQU5EIElUUyBDT05UUklCVVRPUlMg
IkFTIElTIiBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECisgKiBXQVJSQU5USUVTIE9GIE1F
UkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCisg
KiBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBPUiBJVFMgQ09OVFJJQlVUT1JT
IEJFIExJQUJMRSBGT1IgQU5ZCisgKiBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVD
SUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUworICogKElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNF
UlZJQ0VTOworICogTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElO
VEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5ECisgKiBPTiBBTlkgVEhFT1JZIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICog
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9V
VCBPRiBUSEUgVVNFIE9GCisgKiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIK
KyNpbmNsdWRlICJFcnJvcnMuaCIKKworI2luY2x1ZGUgIkxvY2FsaXplZFN0cmluZ3MuaCIKKyNp
bmNsdWRlICJSZXNvdXJjZUVycm9yLmgiCisjaW5jbHVkZSAiUmVzb3VyY2VSZXF1ZXN0LmgiCisj
aW5jbHVkZSAiUmVzb3VyY2VSZXNwb25zZS5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKKy8v
IFRoZSBlbnVtZXJhdGlvbiBhbmQgZGVmaW5pdGlvbnMgY29tZSBmcm9tIElXZWJFcnJvci5pZGwg
YW5kCisvLyBJV2ViRXJyb3JQcml2YXRlLmlkbC4KKworZW51bSB7CisgICAgV2ViS2l0RXJyb3JD
YW5ub3RTaG93TUlNRVR5cGUgPSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMTAwLAorICAg
IFdlYktpdEVycm9yQ2Fubm90U2hvd1VSTCA9ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIDEwMSwKKyAgICBXZWJLaXRFcnJvckZyYW1lTG9hZEludGVycnVwdGVkQnlQb2xpY3lDaGFu
Z2UgPSAgICAgICAgICAgICAxMDIsCisgICAgV2ViS2l0RXJyb3JDYW5ub3RVc2VSZXN0cmljdGVk
UG9ydCA9ICAgICAgICAgICAgICAgICAgICAgICAgMTAzLAorICAgIFdlYktpdEVycm9yUGx1Z0lu
V2lsbEhhbmRsZUxvYWQgPSAgICAgICAgICAgICAgICAgICAgICAgICAgIDIwNCwKK307CisKKyNk
ZWZpbmUgV2ViVVJMRXJyb3JEb21haW4gIkNGVVJMRXJyb3JEb21haW4iCisKK1Jlc291cmNlRXJy
b3IgY2FuY2VsbGVkRXJyb3IoY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0KQoreworICAg
IC8vIEZJWE1FOiBOZWVkIENoaWNrZW5DYXQgdG8gaW5jbHVkZSBDRk5ldHdvcmsvQ0ZVUkxFcnJv
ci5oIHRvIGdldCB0aGVzZSB2YWx1ZXMKKyAgICAvLyBBbHRlcm5hdGl2ZWx5LCB3ZSBjb3VsZCBj
cmVhdGUgb3VyIG93biBlcnJvciBkb21haW4vY29kZXMuCisgICAgcmV0dXJuIFJlc291cmNlRXJy
b3IoU3RyaW5nKFdlYlVSTEVycm9yRG9tYWluKSwgLTk5OSwgcmVxdWVzdC51cmwoKSwgU3RyaW5n
KCJDYW5jZWxsZWQiKSk7Cit9CisKK1Jlc291cmNlRXJyb3IgYmxvY2tlZEVycm9yKGNvbnN0IFJl
c291cmNlUmVxdWVzdCYgcmVxdWVzdCkKK3sKKyAgICByZXR1cm4gUmVzb3VyY2VFcnJvcih3ZWJL
aXRFcnJvckRvbWFpbigpLCBXZWJLaXRFcnJvckNhbm5vdFVzZVJlc3RyaWN0ZWRQb3J0LCByZXF1
ZXN0LnVybCgpLCBXRUJfVUlfU1RSSU5HKCJOb3QgYWxsb3dlZCB0byB1c2UgcmVzdHJpY3RlZCBu
ZXR3b3JrIHBvcnQiLCAiV2ViS2l0RXJyb3JDYW5ub3RVc2VSZXN0cmljdGVkUG9ydCBkZXNjcmlw
dGlvbiIpKTsKK30KKworUmVzb3VyY2VFcnJvciBibG9ja2VkQnlDb250ZW50QmxvY2tlckVycm9y
KGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCkKK3sKKyAgICBSRUxFQVNFX0FTU0VSVF9O
T1RfUkVBQ0hFRCgpOyAvLyBDb250ZW50IEJsb2NrZXJzIGFyZSBub3QgZW5hYmxlZCBmb3IgV0sx
LgorfQorCitSZXNvdXJjZUVycm9yIGNhbm5vdFNob3dVUkxFcnJvcihjb25zdCBSZXNvdXJjZVJl
cXVlc3QmIHJlcXVlc3QpCit7CisgICAgcmV0dXJuIFJlc291cmNlRXJyb3Iod2ViS2l0RXJyb3JE
b21haW4oKSwgV2ViS2l0RXJyb3JDYW5ub3RTaG93VVJMLCByZXF1ZXN0LnVybCgpLCBXRUJfVUlf
U1RSSU5HKCJUaGUgVVJMIGNhblx4RTJceDgwXHg5OXQgYmUgc2hvd24iLCAiV2ViS2l0RXJyb3JD
YW5ub3RTaG93VVJMIGRlc2NyaXB0aW9uIikpOworfQorCitSZXNvdXJjZUVycm9yIGludGVycnVw
dGVkRm9yUG9saWN5Q2hhbmdlRXJyb3IoY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0KQor
eworICAgIHJldHVybiBSZXNvdXJjZUVycm9yKHdlYktpdEVycm9yRG9tYWluKCksIFdlYktpdEVy
cm9yRnJhbWVMb2FkSW50ZXJydXB0ZWRCeVBvbGljeUNoYW5nZSwgcmVxdWVzdC51cmwoKSwgV0VC
X1VJX1NUUklORygiRnJhbWUgbG9hZCBpbnRlcnJ1cHRlZCIsICJXZWJLaXRFcnJvckZyYW1lTG9h
ZEludGVycnVwdGVkQnlQb2xpY3lDaGFuZ2UgZGVzY3JpcHRpb24iKSk7Cit9CisKK1Jlc291cmNl
RXJyb3IgY2Fubm90U2hvd01JTUVUeXBlRXJyb3IoY29uc3QgUmVzb3VyY2VSZXNwb25zZSYgcmVz
cG9uc2UpCit7CisgICAgcmV0dXJuIFJlc291cmNlRXJyb3IoU3RyaW5nKCksIFdlYktpdEVycm9y
Q2Fubm90U2hvd01JTUVUeXBlLCByZXNwb25zZS51cmwoKSwgV0VCX1VJX1NUUklORygiQ29udGVu
dCB3aXRoIHNwZWNpZmllZCBNSU1FIHR5cGUgY2FuXHhFMlx4ODBceDk5dCBiZSBzaG93biIsICJX
ZWJLaXRFcnJvckNhbm5vdFNob3dNSU1FVHlwZSBkZXNjcmlwdGlvbiIpKTsKK30KKworUmVzb3Vy
Y2VFcnJvciBmaWxlRG9lc05vdEV4aXN0RXJyb3IoY29uc3QgUmVzb3VyY2VSZXNwb25zZSYgcmVz
cG9uc2UpCit7CisgICAgcmV0dXJuIFJlc291cmNlRXJyb3IoU3RyaW5nKFdlYlVSTEVycm9yRG9t
YWluKSwgLTExMDAsIHJlc3BvbnNlLnVybCgpLCBTdHJpbmcoIkZpbGUgZG9lcyBub3QgZXhpc3Qu
IikpOworfQorCitSZXNvdXJjZUVycm9yIHBsdWdpbldpbGxIYW5kbGVMb2FkRXJyb3IoY29uc3Qg
UmVzb3VyY2VSZXNwb25zZSYgcmVzcG9uc2UpCit7CisgICAgcmV0dXJuIFJlc291cmNlRXJyb3Io
d2ViS2l0RXJyb3JEb21haW4oKSwgV2ViS2l0RXJyb3JQbHVnSW5XaWxsSGFuZGxlTG9hZCwgcmVz
cG9uc2UudXJsKCksIFdFQl9VSV9TVFJJTkcoIlBsdWctaW4gaGFuZGxlZCBsb2FkIiwgIldlYktp
dEVycm9yUGx1Z0luV2lsbEhhbmRsZUxvYWQgZGVzY3JpcHRpb24iKSk7Cit9CisKK30gLy8gbmFt
ZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBw
b3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmggYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJDb3JlU3Vw
cG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5oCmluZGV4IDMwMmEzY2JlZWEzOGJhYWZkMjI3MmYx
YmNmMmNhNmQ1YzhlNjQ2ODUuLjEzM2RkNzY2N2U3NGY0YjFmYjNiMzFhOWI5ZDc1NjA5YTBkNzVl
ZTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1l
TG9hZGVyQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2Vi
RnJhbWVMb2FkZXJDbGllbnQuaApAQCAtMTU4LDE2ICsxNTgsNiBAQCBwcml2YXRlOgogICAgIHZv
aWQgZGlkUnVuSW5zZWN1cmVDb250ZW50KFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luKiwgY29uc3Qg
V2ViQ29yZTo6VVJMJikgb3ZlcnJpZGU7CiAgICAgdm9pZCBkaWREZXRlY3RYU1MoY29uc3QgV2Vi
Q29yZTo6VVJMJiwgYm9vbCBkaWRCbG9ja0VudGlyZVBhZ2UpIG92ZXJyaWRlOwogCi0gICAgV2Vi
Q29yZTo6UmVzb3VyY2VFcnJvciBjYW5jZWxsZWRFcnJvcihjb25zdCBXZWJDb3JlOjpSZXNvdXJj
ZVJlcXVlc3QmKSBvdmVycmlkZTsKLSAgICBXZWJDb3JlOjpSZXNvdXJjZUVycm9yIGJsb2NrZWRF
cnJvcihjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmKSBvdmVycmlkZTsKLSAgICBXZWJD
b3JlOjpSZXNvdXJjZUVycm9yIGJsb2NrZWRCeUNvbnRlbnRCbG9ja2VyRXJyb3IoY29uc3QgV2Vi
Q29yZTo6UmVzb3VyY2VSZXF1ZXN0Jikgb3ZlcnJpZGU7Ci0gICAgV2ViQ29yZTo6UmVzb3VyY2VF
cnJvciBjYW5ub3RTaG93VVJMRXJyb3IoY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0Jikg
b3ZlcnJpZGU7Ci0gICAgV2ViQ29yZTo6UmVzb3VyY2VFcnJvciBpbnRlcnJ1cHRlZEZvclBvbGlj
eUNoYW5nZUVycm9yKGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYpIG92ZXJyaWRlOwot
Ci0gICAgV2ViQ29yZTo6UmVzb3VyY2VFcnJvciBjYW5ub3RTaG93TUlNRVR5cGVFcnJvcihjb25z
dCBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlJikgb3ZlcnJpZGU7Ci0gICAgV2ViQ29yZTo6UmVz
b3VyY2VFcnJvciBmaWxlRG9lc05vdEV4aXN0RXJyb3IoY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VS
ZXNwb25zZSYpIG92ZXJyaWRlOwotICAgIFdlYkNvcmU6OlJlc291cmNlRXJyb3IgcGx1Z2luV2ls
bEhhbmRsZUxvYWRFcnJvcihjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlJikgb3ZlcnJp
ZGU7Ci0KICAgICBib29sIHNob3VsZEZhbGxCYWNrKGNvbnN0IFdlYkNvcmU6OlJlc291cmNlRXJy
b3ImKSBvdmVycmlkZTsKIAogICAgIFdURjo6U3RyaW5nIHVzZXJBZ2VudChjb25zdCBXZWJDb3Jl
OjpVUkwmKSBvdmVycmlkZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVT
dXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50Lm1tIGIvU291cmNlL1dlYktpdC9tYWMvV2ViQ29y
ZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQubW0KaW5kZXggMmU1ZjMwNDkxNjNlNmY2NjA1
MjJkYWYyZGFjOGU2MGVkMmEyZjY4My4uZDllYmI4ODhkNzVlNjY2MmRlOWM5MWU4Y2FlZDQ1NzE5
MGFkZWNlNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2Vi
RnJhbWVMb2FkZXJDbGllbnQubW0KKysrIGIvU291cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBv
cnQvV2ViRnJhbWVMb2FkZXJDbGllbnQubW0KQEAgLTExMzcsNTEgKzExMzcsNiBAQCB2b2lkIFdl
YkZyYW1lTG9hZGVyQ2xpZW50OjpkaWREZXRlY3RYU1MoY29uc3QgVVJMJiBpbnNlY3VyZVVSTCwg
Ym9vbCBkaWRCbG9ja0VudAogICAgIH0KIH0KIAotUmVzb3VyY2VFcnJvciBXZWJGcmFtZUxvYWRl
ckNsaWVudDo6Y2FuY2VsbGVkRXJyb3IoY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0KQot
ewotICAgIHJldHVybiBbTlNFcnJvciBfd2ViS2l0RXJyb3JXaXRoRG9tYWluOk5TVVJMRXJyb3JE
b21haW4gY29kZTpOU1VSTEVycm9yQ2FuY2VsbGVkIFVSTDpyZXF1ZXN0LnVybCgpXTsKLX0KLSAg
ICAKLVJlc291cmNlRXJyb3IgV2ViRnJhbWVMb2FkZXJDbGllbnQ6OmJsb2NrZWRFcnJvcihjb25z
dCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QpCi17Ci0gICAgcmV0dXJuIFtOU0Vycm9yIF93ZWJL
aXRFcnJvcldpdGhEb21haW46V2ViS2l0RXJyb3JEb21haW4gY29kZTpXZWJLaXRFcnJvckNhbm5v
dFVzZVJlc3RyaWN0ZWRQb3J0IFVSTDpyZXF1ZXN0LnVybCgpXTsKLX0KLQotUmVzb3VyY2VFcnJv
ciBXZWJGcmFtZUxvYWRlckNsaWVudDo6YmxvY2tlZEJ5Q29udGVudEJsb2NrZXJFcnJvcihjb25z
dCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QpCi17Ci0gICAgUkVMRUFTRV9BU1NFUlRfTk9UX1JF
QUNIRUQoKTsgLy8gQ29udGVudCBibG9ja2VycyBhcmUgbm90IGVuYWJsZWQgaW4gV2ViS2l0MS4K
LX0KLQotUmVzb3VyY2VFcnJvciBXZWJGcmFtZUxvYWRlckNsaWVudDo6Y2Fubm90U2hvd1VSTEVy
cm9yKGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCkKLXsKLSAgICByZXR1cm4gW05TRXJy
b3IgX3dlYktpdEVycm9yV2l0aERvbWFpbjpXZWJLaXRFcnJvckRvbWFpbiBjb2RlOldlYktpdEVy
cm9yQ2Fubm90U2hvd1VSTCBVUkw6cmVxdWVzdC51cmwoKV07Ci19Ci0KLVJlc291cmNlRXJyb3Ig
V2ViRnJhbWVMb2FkZXJDbGllbnQ6OmludGVycnVwdGVkRm9yUG9saWN5Q2hhbmdlRXJyb3IoY29u
c3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0KQotewotICAgIHJldHVybiBbTlNFcnJvciBfd2Vi
S2l0RXJyb3JXaXRoRG9tYWluOldlYktpdEVycm9yRG9tYWluIGNvZGU6V2ViS2l0RXJyb3JGcmFt
ZUxvYWRJbnRlcnJ1cHRlZEJ5UG9saWN5Q2hhbmdlIFVSTDpyZXF1ZXN0LnVybCgpXTsKLX0KLQot
UmVzb3VyY2VFcnJvciBXZWJGcmFtZUxvYWRlckNsaWVudDo6Y2Fubm90U2hvd01JTUVUeXBlRXJy
b3IoY29uc3QgUmVzb3VyY2VSZXNwb25zZSYgcmVzcG9uc2UpCi17Ci0gICAgcmV0dXJuIFtOU0Vy
cm9yIF93ZWJLaXRFcnJvcldpdGhEb21haW46TlNVUkxFcnJvckRvbWFpbiBjb2RlOldlYktpdEVy
cm9yQ2Fubm90U2hvd01JTUVUeXBlIFVSTDpyZXNwb25zZS51cmwoKV07Ci19Ci0KLVJlc291cmNl
RXJyb3IgV2ViRnJhbWVMb2FkZXJDbGllbnQ6OmZpbGVEb2VzTm90RXhpc3RFcnJvcihjb25zdCBS
ZXNvdXJjZVJlc3BvbnNlJiByZXNwb25zZSkKLXsKLSAgICByZXR1cm4gW05TRXJyb3IgX3dlYktp
dEVycm9yV2l0aERvbWFpbjpOU1VSTEVycm9yRG9tYWluIGNvZGU6TlNVUkxFcnJvckZpbGVEb2Vz
Tm90RXhpc3QgVVJMOnJlc3BvbnNlLnVybCgpXTsgICAgCi19Ci0KLVJlc291cmNlRXJyb3IgV2Vi
RnJhbWVMb2FkZXJDbGllbnQ6OnBsdWdpbldpbGxIYW5kbGVMb2FkRXJyb3IoY29uc3QgUmVzb3Vy
Y2VSZXNwb25zZSYgcmVzcG9uc2UpCi17Ci0gICAgTlNFcnJvciAqZXJyb3IgPSBbW05TRXJyb3Ig
YWxsb2NdIF9pbml0V2l0aFBsdWdpbkVycm9yQ29kZTpXZWJLaXRFcnJvclBsdWdJbldpbGxIYW5k
bGVMb2FkCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgY29udGVudFVSTDpyZXNwb25zZS51cmwoKQotICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIHBsdWdpblBhZ2VVUkw6bmlsCi0gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGx1Z2luTmFtZTpuaWwKLSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE1JTUVUeXBl
OnJlc3BvbnNlLm1pbWVUeXBlKCldOwotICAgIHJldHVybiBbZXJyb3IgYXV0b3JlbGVhc2VdOwot
fQotCiBib29sIFdlYkZyYW1lTG9hZGVyQ2xpZW50OjpzaG91bGRGYWxsQmFjayhjb25zdCBSZXNv
dXJjZUVycm9yJiBlcnJvcikKIHsKICAgICAvLyBGSVhNRTogTmVlZHMgdG8gY2hlY2sgZG9tYWlu
LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVO
ZXR3b3JraW5nQ29udGV4dC5tbSBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dl
YkZyYW1lTmV0d29ya2luZ0NvbnRleHQubW0KaW5kZXggYzhiOTcxYzI2ZjAyYTA5YTI4OGFmNTM2
ZDdhNzRjMTMyYWNhNGM3YS4uODA4MjZhMThhMThiOTk4NjZhOWI5ZGQwNmI2OGU5Yzc0NzY0NGMz
YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVO
ZXR3b3JraW5nQ29udGV4dC5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9y
dC9XZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0Lm1tCkBAIC0yOCw2ICsyOCw3IEBACiAjaW1wb3J0
ICJXZWJGcmFtZUludGVybmFsLmgiCiAjaW1wb3J0ICJXZWJWaWV3UHJpdmF0ZS5oIgogI2ltcG9y
dCA8V2ViQ29yZS9DRk5ldHdvcmtTUEkuaD4KKyNpbXBvcnQgPFdlYkNvcmUvRXJyb3JzLmg+CiAj
aW1wb3J0IDxXZWJDb3JlL0ZyYW1lTG9hZGVyLmg+CiAjaW1wb3J0IDxXZWJDb3JlL0ZyYW1lTG9h
ZGVyQ2xpZW50Lmg+CiAjaW1wb3J0IDxXZWJDb3JlL05ldHdvcmtTdG9yYWdlU2Vzc2lvbi5oPgpA
QCAtOTgsNyArOTksNyBAQCBTdHJpbmcgV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dDo6c291cmNl
QXBwbGljYXRpb25JZGVudGlmaWVyKCkgY29uc3QKIAogUmVzb3VyY2VFcnJvciBXZWJGcmFtZU5l
dHdvcmtpbmdDb250ZXh0OjpibG9ja2VkRXJyb3IoY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1
ZXN0KSBjb25zdAogewotICAgIHJldHVybiBmcmFtZSgpLT5sb2FkZXIoKS5jbGllbnQoKS5ibG9j
a2VkRXJyb3IocmVxdWVzdCk7CisgICAgcmV0dXJuIFdlYkNvcmU6OmJsb2NrZWRFcnJvcihyZXF1
ZXN0KTsKIH0KIAogTmV0d29ya1N0b3JhZ2VTZXNzaW9uJiBXZWJGcmFtZU5ldHdvcmtpbmdDb250
ZXh0OjpzdG9yYWdlU2Vzc2lvbigpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21h
Yy9XZWJWaWV3L1dlYkhUTUxSZXByZXNlbnRhdGlvbi5tbSBiL1NvdXJjZS9XZWJLaXQvbWFjL1dl
YlZpZXcvV2ViSFRNTFJlcHJlc2VudGF0aW9uLm1tCmluZGV4IGU4Yzc2YWFmODE3NjA3MjM2MTY3
NGIzN2EzYzY3MDRkNzA1YTJmMWIuLjI4YWU3MmMwYjEzYmM0MjFlNDAxNzM1ZjI1ZjYxN2JiZTE5
NjIzZTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViSFRNTFJlcHJl
c2VudGF0aW9uLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViSFRNTFJlcHJl
c2VudGF0aW9uLm1tCkBAIC00NSw2ICs0NSw3IEBACiAjaW1wb3J0IDxXZWJDb3JlL0RvY3VtZW50
Lmg+CiAjaW1wb3J0IDxXZWJDb3JlL0RvY3VtZW50TG9hZGVyLmg+CiAjaW1wb3J0IDxXZWJDb3Jl
L0VkaXRvci5oPgorI2ltcG9ydCA8V2ViQ29yZS9FcnJvcnMuaD4KICNpbXBvcnQgPFdlYkNvcmUv
RnJhbWUuaD4KICNpbXBvcnQgPFdlYkNvcmUvRnJhbWVMb2FkZXIuaD4KICNpbXBvcnQgPFdlYkNv
cmUvRnJhbWVMb2FkZXJDbGllbnQuaD4KQEAgLTE4OSw3ICsxOTAsNyBAQCBzdGF0aWMgTlNNdXRh
YmxlQXJyYXkgKm5ld0FycmF5QnlDb25jYXRlbmF0aW5nQXJyYXlzKE5TQXJyYXkgKmZpcnN0LCBO
U0FycmF5ICpzZQogICAgIC8vIElmIHRoZSBkb2N1bWVudCBpcyBhIHN0YW5kLWFsb25lIG1lZGlh
IGRvY3VtZW50LCBub3cgaXMgdGhlIHJpZ2h0IHRpbWUgdG8gY2FuY2VsIHRoZSBXZWJLaXQgbG9h
ZAogICAgIEZyYW1lKiBjb3JlRnJhbWUgPSBjb3JlKHdlYkZyYW1lKTsKICAgICBpZiAoY29yZUZy
YW1lLT5kb2N1bWVudCgpLT5pc01lZGlhRG9jdW1lbnQoKSkKLSAgICAgICAgY29yZUZyYW1lLT5s
b2FkZXIoKS5kb2N1bWVudExvYWRlcigpLT5jYW5jZWxNYWluUmVzb3VyY2VMb2FkKGNvcmVGcmFt
ZS0+bG9hZGVyKCkuY2xpZW50KCkucGx1Z2luV2lsbEhhbmRsZUxvYWRFcnJvcihjb3JlRnJhbWUt
PmxvYWRlcigpLmRvY3VtZW50TG9hZGVyKCktPnJlc3BvbnNlKCkpKTsKKyAgICAgICAgY29yZUZy
YW1lLT5sb2FkZXIoKS5kb2N1bWVudExvYWRlcigpLT5jYW5jZWxNYWluUmVzb3VyY2VMb2FkKFdl
YkNvcmU6OnBsdWdpbldpbGxIYW5kbGVMb2FkRXJyb3IoY29yZUZyYW1lLT5sb2FkZXIoKS5kb2N1
bWVudExvYWRlcigpLT5yZXNwb25zZSgpKSk7CiAKICAgICBpZiAoX3ByaXZhdGUtPnBsdWdpblZp
ZXcpIHsKICAgICAgICAgaWYgKCFfcHJpdmF0ZS0+aGFzU2VudFJlc3BvbnNlVG9QbHVnaW4pIHsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvd2luL1BsdWdpbnMvUGx1Z2luU3RyZWFtLmNwcCBi
L1NvdXJjZS9XZWJLaXQvd2luL1BsdWdpbnMvUGx1Z2luU3RyZWFtLmNwcAppbmRleCAyZWYzOTU1
YmU2MWE4ZDA1NDI0YWQxMzk5NjJkZDBkN2ZhNmFlNDQ0Li5iZTdkZGMwMjI5YTllZTIwZWIzNmM5
MTA2ZDIyMzQ0MGJhZjU2Njg1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L3dpbi9QbHVnaW5z
L1BsdWdpblN0cmVhbS5jcHAKKysrIGIvU291cmNlL1dlYktpdC93aW4vUGx1Z2lucy9QbHVnaW5T
dHJlYW0uY3BwCkBAIC0zNSw2ICszNSw3IEBACiAjaW5jbHVkZSAiU2hhcmVkQnVmZmVyLmgiCiAj
aW5jbHVkZSAiU3VicmVzb3VyY2VMb2FkZXIuaCIKICNpbmNsdWRlICJXZWJSZXNvdXJjZUxvYWRT
Y2hlZHVsZXIuaCIKKyNpbmNsdWRlIDxXZWJDb3JlL0Vycm9ycy5oPgogI2luY2x1ZGUgPHd0Zi9T
dHJpbmdFeHRyYXMuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9DU3RyaW5nLmg+CiAjaW5jbHVkZSA8
d3RmL3RleHQvU3RyaW5nQnVpbGRlci5oPgpAQCAtMTExLDcgKzExMiw3IEBAIHZvaWQgUGx1Z2lu
U3RyZWFtOjpzdG9wKCkKICAgICAgICAgQVNTRVJUKGRvY3VtZW50TG9hZGVyKTsKIAogICAgICAg
ICBpZiAoZG9jdW1lbnRMb2FkZXItPmlzTG9hZGluZ01haW5SZXNvdXJjZSgpKQotICAgICAgICAg
ICAgZG9jdW1lbnRMb2FkZXItPmNhbmNlbE1haW5SZXNvdXJjZUxvYWQobV9mcmFtZS0+bG9hZGVy
KCkuY2FuY2VsbGVkRXJyb3IobV9yZXNvdXJjZVJlcXVlc3QpKTsKKyAgICAgICAgICAgIGRvY3Vt
ZW50TG9hZGVyLT5jYW5jZWxNYWluUmVzb3VyY2VMb2FkKFdlYkNvcmU6OmNhbmNlbGxlZEVycm9y
KG1fcmVzb3VyY2VSZXF1ZXN0KSk7CiAKICAgICAgICAgcmV0dXJuOwogICAgIH0KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvd2luL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50
LmNwcCBiL1NvdXJjZS9XZWJLaXQvd2luL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xp
ZW50LmNwcAppbmRleCBjMTBmNmM2ZDFjYzU3M2E5OGI3MDIwNzU0OWU0MzQxMmM3MTM4ZjU1Li44
ZDQzMWYyZTYyN2VlMTlkNWVmYmUzMjY0ZTVlZDA4MDkzYjM2MDhhIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5jcHAKKysr
IGIvU291cmNlL1dlYktpdC93aW4vV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQu
Y3BwCkBAIC02Miw2ICs2Miw3IEBACiAjaW5jbHVkZSA8V2ViQ29yZS9DYWNoZWRGcmFtZS5oPgog
I2luY2x1ZGUgPFdlYkNvcmUvRE5TLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9Eb2N1bWVudExvYWRl
ci5oPgorI2luY2x1ZGUgPFdlYkNvcmUvRXJyb3JzLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9Gb3Jt
U3RhdGUuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0ZyYW1lLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9G
cmFtZUxvYWRlci5oPgpAQCAtODMwLDQ4ICs4MzEsNiBAQCB2b2lkIFdlYkZyYW1lTG9hZGVyQ2xp
ZW50OjpkaWREZXRlY3RYU1MoY29uc3QgVVJMJiwgYm9vbCkKICAgICAvLyBGSVhNRTogcHJvcG9n
YXRlIGNhbGwgaW50byB0aGUgcHJpdmF0ZSBkZWxlZ2F0ZS4KIH0KIAotUmVzb3VyY2VFcnJvciBX
ZWJGcmFtZUxvYWRlckNsaWVudDo6Y2FuY2VsbGVkRXJyb3IoY29uc3QgUmVzb3VyY2VSZXF1ZXN0
JiByZXF1ZXN0KQotewotICAgIC8vIEZJWE1FOiBOZWVkIENoaWNrZW5DYXQgdG8gaW5jbHVkZSBD
Rk5ldHdvcmsvQ0ZVUkxFcnJvci5oIHRvIGdldCB0aGVzZSB2YWx1ZXMKLSAgICAvLyBBbHRlcm5h
dGl2ZWx5LCB3ZSBjb3VsZCBjcmVhdGUgb3VyIG93biBlcnJvciBkb21haW4vY29kZXMuCi0gICAg
cmV0dXJuIFJlc291cmNlRXJyb3IoU3RyaW5nKFdlYlVSTEVycm9yRG9tYWluKSwgLTk5OSwgcmVx
dWVzdC51cmwoKSwgU3RyaW5nKCJDYW5jZWxsZWQiKSk7Ci19Ci0KLVJlc291cmNlRXJyb3IgV2Vi
RnJhbWVMb2FkZXJDbGllbnQ6OmJsb2NrZWRFcnJvcihjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJl
cXVlc3QpCi17Ci0gICAgcmV0dXJuIFJlc291cmNlRXJyb3IoU3RyaW5nKFdlYktpdEVycm9yRG9t
YWluKSwgV2ViS2l0RXJyb3JDYW5ub3RVc2VSZXN0cmljdGVkUG9ydCwgcmVxdWVzdC51cmwoKSwg
V0VCX1VJX1NUUklORygiTm90IGFsbG93ZWQgdG8gdXNlIHJlc3RyaWN0ZWQgbmV0d29yayBwb3J0
IiwgIldlYktpdEVycm9yQ2Fubm90VXNlUmVzdHJpY3RlZFBvcnQgZGVzY3JpcHRpb24iKSk7Ci19
Ci0KLVJlc291cmNlRXJyb3IgV2ViRnJhbWVMb2FkZXJDbGllbnQ6OmJsb2NrZWRCeUNvbnRlbnRC
bG9ja2VyRXJyb3IoY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0KQotewotICAgIFJFTEVB
U0VfQVNTRVJUX05PVF9SRUFDSEVEKCk7IC8vIENvbnRlbnQgQmxvY2tlcnMgYXJlIG5vdCBlbmFi
bGVkIGZvciBXSzEuCi19Ci0KLVJlc291cmNlRXJyb3IgV2ViRnJhbWVMb2FkZXJDbGllbnQ6OmNh
bm5vdFNob3dVUkxFcnJvcihjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QpCi17Ci0gICAg
cmV0dXJuIFJlc291cmNlRXJyb3IoU3RyaW5nKFdlYktpdEVycm9yRG9tYWluKSwgV2ViS2l0RXJy
b3JDYW5ub3RTaG93VVJMLCByZXF1ZXN0LnVybCgpLCBXRUJfVUlfU1RSSU5HKCJUaGUgVVJMIGNh
blx4RTJceDgwXHg5OXQgYmUgc2hvd24iLCAiV2ViS2l0RXJyb3JDYW5ub3RTaG93VVJMIGRlc2Ny
aXB0aW9uIikpOwotfQotCi1SZXNvdXJjZUVycm9yIFdlYkZyYW1lTG9hZGVyQ2xpZW50OjppbnRl
cnJ1cHRlZEZvclBvbGljeUNoYW5nZUVycm9yKGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVz
dCkKLXsKLSAgICByZXR1cm4gUmVzb3VyY2VFcnJvcihTdHJpbmcoV2ViS2l0RXJyb3JEb21haW4p
LCBXZWJLaXRFcnJvckZyYW1lTG9hZEludGVycnVwdGVkQnlQb2xpY3lDaGFuZ2UsIHJlcXVlc3Qu
dXJsKCksIFdFQl9VSV9TVFJJTkcoIkZyYW1lIGxvYWQgaW50ZXJydXB0ZWQiLCAiV2ViS2l0RXJy
b3JGcmFtZUxvYWRJbnRlcnJ1cHRlZEJ5UG9saWN5Q2hhbmdlIGRlc2NyaXB0aW9uIikpOwotfQot
Ci1SZXNvdXJjZUVycm9yIFdlYkZyYW1lTG9hZGVyQ2xpZW50OjpjYW5ub3RTaG93TUlNRVR5cGVF
cnJvcihjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiByZXNwb25zZSkKLXsKLSAgICByZXR1cm4gUmVz
b3VyY2VFcnJvcihTdHJpbmcoKSwgV2ViS2l0RXJyb3JDYW5ub3RTaG93TUlNRVR5cGUsIHJlc3Bv
bnNlLnVybCgpLCBXRUJfVUlfU1RSSU5HKCJDb250ZW50IHdpdGggc3BlY2lmaWVkIE1JTUUgdHlw
ZSBjYW5ceEUyXHg4MFx4OTl0IGJlIHNob3duIiwgIldlYktpdEVycm9yQ2Fubm90U2hvd01JTUVU
eXBlIGRlc2NyaXB0aW9uIikpOwotfQotCi1SZXNvdXJjZUVycm9yIFdlYkZyYW1lTG9hZGVyQ2xp
ZW50OjpmaWxlRG9lc05vdEV4aXN0RXJyb3IoY29uc3QgUmVzb3VyY2VSZXNwb25zZSYgcmVzcG9u
c2UpCi17Ci0gICAgcmV0dXJuIFJlc291cmNlRXJyb3IoU3RyaW5nKFdlYlVSTEVycm9yRG9tYWlu
KSwgLTExMDAsIHJlc3BvbnNlLnVybCgpLCBTdHJpbmcoIkZpbGUgZG9lcyBub3QgZXhpc3QuIikp
OwotfQotCi1SZXNvdXJjZUVycm9yIFdlYkZyYW1lTG9hZGVyQ2xpZW50OjpwbHVnaW5XaWxsSGFu
ZGxlTG9hZEVycm9yKGNvbnN0IFJlc291cmNlUmVzcG9uc2UmIHJlc3BvbnNlKQotewotICAgIHJl
dHVybiBSZXNvdXJjZUVycm9yKFN0cmluZyhXZWJLaXRFcnJvckRvbWFpbiksIFdlYktpdEVycm9y
UGx1Z0luV2lsbEhhbmRsZUxvYWQsIHJlc3BvbnNlLnVybCgpLCBXRUJfVUlfU1RSSU5HKCJQbHVn
LWluIGhhbmRsZWQgbG9hZCIsICJXZWJLaXRFcnJvclBsdWdJbldpbGxIYW5kbGVMb2FkIGRlc2Ny
aXB0aW9uIikpOwotfQotCiBib29sIFdlYkZyYW1lTG9hZGVyQ2xpZW50OjpzaG91bGRGYWxsQmFj
ayhjb25zdCBSZXNvdXJjZUVycm9yJiBlcnJvcikKIHsKICAgICBpZiAoZXJyb3IuZXJyb3JDb2Rl
KCkgPT0gV2ViVVJMRXJyb3JDYW5jZWxsZWQgJiYgZXJyb3IuZG9tYWluKCkgPT0gU3RyaW5nKFdl
YlVSTEVycm9yRG9tYWluKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvd2luL1dlYkNvcmVT
dXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmggYi9Tb3VyY2UvV2ViS2l0L3dpbi9XZWJDb3Jl
U3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5oCmluZGV4IDAyODhjOGE0ZGI2ZjM0M2ExY2Iw
NGU1MzBlZmZlM2JmYWU3Yzg5NDYuLjE5NmQyMzUwYTA4NmZhYzEwYjdiOTk3ZWRkNjYyMjM0MmJj
NTFlZWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvd2luL1dlYkNvcmVTdXBwb3J0L1dlYkZy
YW1lTG9hZGVyQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYktpdC93aW4vV2ViQ29yZVN1cHBvcnQv
V2ViRnJhbWVMb2FkZXJDbGllbnQuaApAQCAtMTM4LDE1ICsxMzgsNiBAQCBwdWJsaWM6CiAgICAg
dm9pZCBkaWRSdW5JbnNlY3VyZUNvbnRlbnQoV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW4qLCBjb25z
dCBXZWJDb3JlOjpVUkwmKSBvdmVycmlkZTsKICAgICB2b2lkIGRpZERldGVjdFhTUyhjb25zdCBX
ZWJDb3JlOjpVUkwmLCBib29sIGRpZEJsb2NrRW50aXJlUGFnZSkgb3ZlcnJpZGU7CiAKLSAgICBX
ZWJDb3JlOjpSZXNvdXJjZUVycm9yIGNhbmNlbGxlZEVycm9yKGNvbnN0IFdlYkNvcmU6OlJlc291
cmNlUmVxdWVzdCYpIG92ZXJyaWRlOwotICAgIFdlYkNvcmU6OlJlc291cmNlRXJyb3IgYmxvY2tl
ZEVycm9yKGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYpIG92ZXJyaWRlOwotICAgIFdl
YkNvcmU6OlJlc291cmNlRXJyb3IgYmxvY2tlZEJ5Q29udGVudEJsb2NrZXJFcnJvcihjb25zdCBX
ZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmKSBvdmVycmlkZTsKLSAgICBXZWJDb3JlOjpSZXNvdXJj
ZUVycm9yIGNhbm5vdFNob3dVUkxFcnJvcihjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3Qm
KSBvdmVycmlkZTsKLSAgICBXZWJDb3JlOjpSZXNvdXJjZUVycm9yIGludGVycnVwdGVkRm9yUG9s
aWN5Q2hhbmdlRXJyb3IoY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0Jikgb3ZlcnJpZGU7
Ci0gICAgV2ViQ29yZTo6UmVzb3VyY2VFcnJvciBjYW5ub3RTaG93TUlNRVR5cGVFcnJvcihjb25z
dCBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlJikgb3ZlcnJpZGU7Ci0gICAgV2ViQ29yZTo6UmVz
b3VyY2VFcnJvciBmaWxlRG9lc05vdEV4aXN0RXJyb3IoY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VS
ZXNwb25zZSYpIG92ZXJyaWRlOwotICAgIFdlYkNvcmU6OlJlc291cmNlRXJyb3IgcGx1Z2luV2ls
bEhhbmRsZUxvYWRFcnJvcihjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlJikgb3ZlcnJp
ZGU7Ci0KICAgICBib29sIHNob3VsZEZhbGxCYWNrKGNvbnN0IFdlYkNvcmU6OlJlc291cmNlRXJy
b3ImKSBvdmVycmlkZTsKIAogICAgIFdURjo6U3RyaW5nIHVzZXJBZ2VudChjb25zdCBXZWJDb3Jl
OjpVUkwmKSBvdmVycmlkZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvd2luL1dlYkNvcmVT
dXBwb3J0L1dlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQuY3BwIGIvU291cmNlL1dlYktpdC93aW4v
V2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dC5jcHAKaW5kZXggMjlhNmFk
Y2IwZmM4MmM0ODY3YTU2M2RhZjU4MTUyYTczZmZmMDQzZi4uMTU4NzM3ZGNmOTZjNGVjNDliYzQ3
YThjMTAyNmVjZGMwM2VjODRkZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC93aW4vV2ViQ29y
ZVN1cHBvcnQvV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dC5jcHAKKysrIGIvU291cmNlL1dlYktp
dC93aW4vV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dC5jcHAKQEAgLTI2
LDYgKzI2LDcgQEAKICNpbmNsdWRlICJXZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0LmgiCiAKICNp
bmNsdWRlICJXZWJWaWV3LmgiCisjaW5jbHVkZSA8V2ViQ29yZS9FcnJvcnMuaD4KICNpbmNsdWRl
IDxXZWJDb3JlL0ZyYW1lTG9hZGVyLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9GcmFtZUxvYWRlckNs
aWVudC5oPgogI2luY2x1ZGUgPFdlYkNvcmUvTmV0d29ya1N0b3JhZ2VTZXNzaW9uLmg+CkBAIC0x
MDAsNyArMTAxLDcgQEAgdm9pZCBXZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0OjpkZXN0cm95UHJp
dmF0ZUJyb3dzaW5nU2Vzc2lvbigpCiAKIFJlc291cmNlRXJyb3IgV2ViRnJhbWVOZXR3b3JraW5n
Q29udGV4dDo6YmxvY2tlZEVycm9yKGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCkgY29u
c3QKIHsKLSAgICByZXR1cm4gZnJhbWUoKS0+bG9hZGVyKCkuY2xpZW50KCkuYmxvY2tlZEVycm9y
KHJlcXVlc3QpOworICAgIHJldHVybiBXZWJDb3JlOjpibG9ja2VkRXJyb3IocmVxdWVzdCk7CiB9
CiAKIE5ldHdvcmtTdG9yYWdlU2Vzc2lvbiYgV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dDo6c3Rv
cmFnZVNlc3Npb24oKSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvTmV0d29ya1By
b2Nlc3MvRG93bmxvYWRzL2VmbC9Eb3dubG9hZFNvdXBFcnJvcnNFZmwuY3BwIGIvU291cmNlL1dl
YktpdDIvTmV0d29ya1Byb2Nlc3MvRG93bmxvYWRzL2VmbC9Eb3dubG9hZFNvdXBFcnJvcnNFZmwu
Y3BwCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBhYzAwZDUxYjM3MTM4OTIxZTc3NmIx
YWM1OGEwZDQ1NTUxNmIwODZhLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwCi0tLSBhL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL0Rvd25sb2Fkcy9lZmwvRG93
bmxvYWRTb3VwRXJyb3JzRWZsLmNwcAorKysgL2Rldi9udWxsCkBAIC0xLDQ2ICswLDAgQEAKLS8q
Ci0gKiBDb3B5cmlnaHQgKEMpIDIwMTIgSW50ZWwgQ29ycG9yYXRpb24uIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAx
LiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAq
ICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBM
RSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwotICogQU5EIEFOWSBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0g
KiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBT
SEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKLSAqIEJFIExJQUJMRSBGT1IgQU5Z
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKLSAq
IENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBS
T0NVUkVNRU5UIE9GCi0gKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVT
RSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKLSAqIElOVEVSUlVQVElPTikgSE9XRVZF
UiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCi0gKiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKQotICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgotICogVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLgotICovCi0KLSNpbmNsdWRlICJjb25maWcuaCIKLSNpbmNsdWRlICJEb3dubG9h
ZFNvdXBFcnJvcnMuaCIKLQotI2luY2x1ZGUgPFdlYkNvcmUvRXJyb3JzRWZsLmg+Ci0jaW5jbHVk
ZSA8V2ViQ29yZS9SZXNvdXJjZUVycm9yLmg+Ci0KLXVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwot
Ci1uYW1lc3BhY2UgV2ViS2l0IHsKLQotUmVzb3VyY2VFcnJvciBwbGF0Zm9ybURvd25sb2FkTmV0
d29ya0Vycm9yKGludCBlcnJvckNvZGUsIGNvbnN0IFVSTCYgZmFpbGluZ1VSTCwgY29uc3QgU3Ry
aW5nJiBsb2NhbGl6ZWREZXNjcmlwdGlvbikKLXsKLSAgICByZXR1cm4gZG93bmxvYWROZXR3b3Jr
RXJyb3IoUmVzb3VyY2VFcnJvcihlcnJvckRvbWFpbkRvd25sb2FkLCBlcnJvckNvZGUsIGZhaWxp
bmdVUkwsIGxvY2FsaXplZERlc2NyaXB0aW9uKSk7Ci19Ci0KLVJlc291cmNlRXJyb3IgcGxhdGZv
cm1Eb3dubG9hZERlc3RpbmF0aW9uRXJyb3IoY29uc3QgUmVzb3VyY2VSZXNwb25zZSYgcmVzcG9u
c2UsIGNvbnN0IFN0cmluZyYgbWVzc2FnZSkKLXsKLSAgICByZXR1cm4gZG93bmxvYWREZXN0aW5h
dGlvbkVycm9yKHJlc3BvbnNlLCBtZXNzYWdlKTsKLX0KLQotfSAvLyBuYW1lc3BhY2UgV2ViS2l0
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9Eb3dubG9hZHMvZ3Rr
L0Rvd25sb2FkU291cEVycm9yc0d0ay5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vz
cy9Eb3dubG9hZHMvZ3RrL0Rvd25sb2FkU291cEVycm9yc0d0ay5jcHAKZGVsZXRlZCBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IGJhMmU3YjQ1NmE0MTVmMTdkNTk2NTMwMDFiYmRmYWMwYmUyODAzNDIu
LjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dl
YktpdDIvTmV0d29ya1Byb2Nlc3MvRG93bmxvYWRzL2d0ay9Eb3dubG9hZFNvdXBFcnJvcnNHdGsu
Y3BwCisrKyAvZGV2L251bGwKQEAgLTEsNDYgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykg
MjAxMiBJbnRlbCBDb3Jwb3JhdGlvbi4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
Ci0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAq
Ci0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05U
UklCVVRPUlMgYGBBUyBJUycnCi0gKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5U
SUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFRIRSBJTVBMSUVEIFdBUlJB
TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAq
IFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1Ig
SVRTIENPTlRSSUJVVE9SUwotICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgotICogQ09OU0VRVUVOVElBTCBEQU1B
R0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKLSAqIFNV
QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRT
OyBPUiBCVVNJTkVTUwotICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5Z
IFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KLSAqIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCi0gKiBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GCi0gKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQot
I2luY2x1ZGUgImNvbmZpZy5oIgotI2luY2x1ZGUgIkRvd25sb2FkU291cEVycm9ycy5oIgotCi0j
aW5jbHVkZSA8V2ViQ29yZS9FcnJvcnNHdGsuaD4KLSNpbmNsdWRlIDxXZWJDb3JlL1Jlc291cmNl
RXJyb3IuaD4KLQotdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7Ci0KLW5hbWVzcGFjZSBXZWJLaXQg
ewotCi1SZXNvdXJjZUVycm9yIHBsYXRmb3JtRG93bmxvYWROZXR3b3JrRXJyb3IoaW50IGVycm9y
Q29kZSwgY29uc3QgVVJMJiBmYWlsaW5nVVJMLCBjb25zdCBTdHJpbmcmIGxvY2FsaXplZERlc2Ny
aXB0aW9uKQotewotICAgIHJldHVybiBkb3dubG9hZE5ldHdvcmtFcnJvcihSZXNvdXJjZUVycm9y
KGVycm9yRG9tYWluRG93bmxvYWQsIGVycm9yQ29kZSwgZmFpbGluZ1VSTCwgbG9jYWxpemVkRGVz
Y3JpcHRpb24pKTsKLX0KLQotUmVzb3VyY2VFcnJvciBwbGF0Zm9ybURvd25sb2FkRGVzdGluYXRp
b25FcnJvcihjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiByZXNwb25zZSwgY29uc3QgU3RyaW5nJiBt
ZXNzYWdlKQotewotICAgIHJldHVybiBkb3dubG9hZERlc3RpbmF0aW9uRXJyb3IocmVzcG9uc2Us
IG1lc3NhZ2UpOwotfQotCi19IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL0Rvd25sb2Fkcy9zb3VwL0Rvd25sb2FkU291cEVycm9y
cy5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9Eb3dubG9hZHMvc291cC9Eb3du
bG9hZFNvdXBFcnJvcnMuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmFlNWFmOTJkMzMxMjJlMTRhOTFiNzkzODM3
ZDM4YzE2YTEzZjFjMjMKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3Jr
UHJvY2Vzcy9Eb3dubG9hZHMvc291cC9Eb3dubG9hZFNvdXBFcnJvcnMuY3BwCkBAIC0wLDAgKzEs
NDcgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTIgSW50ZWwgQ29ycG9yYXRpb24uIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBt
ZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBp
biB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFO
WSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBO
TyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJM
RSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFS
WSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRl
ICJEb3dubG9hZFNvdXBFcnJvcnMuaCIKKworI2luY2x1ZGUgPFdlYkNvcmUvRXJyb3JzLmg+Cisj
aW5jbHVkZSA8V2ViQ29yZS9FcnJvcnNVbml4Lmg+CisjaW5jbHVkZSA8V2ViQ29yZS9SZXNvdXJj
ZUVycm9yLmg+CisKK3VzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOworCituYW1lc3BhY2UgV2ViS2l0
IHsKKworUmVzb3VyY2VFcnJvciBwbGF0Zm9ybURvd25sb2FkTmV0d29ya0Vycm9yKGludCBlcnJv
ckNvZGUsIGNvbnN0IFVSTCYgZmFpbGluZ1VSTCwgY29uc3QgU3RyaW5nJiBsb2NhbGl6ZWREZXNj
cmlwdGlvbikKK3sKKyAgICByZXR1cm4gZG93bmxvYWROZXR3b3JrRXJyb3IoUmVzb3VyY2VFcnJv
cihlcnJvckRvbWFpbkRvd25sb2FkLCBlcnJvckNvZGUsIGZhaWxpbmdVUkwsIGxvY2FsaXplZERl
c2NyaXB0aW9uKSk7Cit9CisKK1Jlc291cmNlRXJyb3IgcGxhdGZvcm1Eb3dubG9hZERlc3RpbmF0
aW9uRXJyb3IoY29uc3QgUmVzb3VyY2VSZXNwb25zZSYgcmVzcG9uc2UsIGNvbnN0IFN0cmluZyYg
bWVzc2FnZSkKK3sKKyAgICByZXR1cm4gZG93bmxvYWREZXN0aW5hdGlvbkVycm9yKHJlc3BvbnNl
LCBtZXNzYWdlKTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrTG9hZC5jcHAgYi9Tb3VyY2UvV2ViS2l0
Mi9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrTG9hZC5jcHAKaW5kZXggMDgwODBhMzUzOGIzYmYyYzg5
MjQzYjFjYmQ4YzY1NGYyNjgwZjkxOS4uYjhkMjkwYjZmZDI3NDlhOTgwYTdlOGNlOTgwOWM5ODc2
ZGY5ODdmNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvTmV0d29y
a0xvYWQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL05ldHdvcmtMb2Fk
LmNwcApAQCAtMzAsNyArMzAsNyBAQAogI2luY2x1ZGUgIkF1dGhlbnRpY2F0aW9uTWFuYWdlci5o
IgogI2luY2x1ZGUgIk5ldHdvcmtQcm9jZXNzLmgiCiAjaW5jbHVkZSAiU2Vzc2lvblRyYWNrZXIu
aCIKLSNpbmNsdWRlICJXZWJFcnJvcnMuaCIKKyNpbmNsdWRlIDxXZWJDb3JlL0Vycm9ycy5oPgog
I2luY2x1ZGUgPFdlYkNvcmUvTm90SW1wbGVtZW50ZWQuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1Jl
c291cmNlSGFuZGxlLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9TZXNzaW9uSUQuaD4KQEAgLTQxNCwx
NCArNDE0LDE0IEBAIHZvaWQgTmV0d29ya0xvYWQ6Ondhc0Jsb2NrZWQoUmVzb3VyY2VIYW5kbGUq
IGhhbmRsZSkKIHsKICAgICBBU1NFUlRfVU5VU0VEKGhhbmRsZSwgaGFuZGxlID09IG1faGFuZGxl
KTsKIAotICAgIGRpZEZhaWwoaGFuZGxlLCBXZWJLaXQ6OmJsb2NrZWRFcnJvcihtX2N1cnJlbnRS
ZXF1ZXN0KSk7CisgICAgZGlkRmFpbChoYW5kbGUsIGJsb2NrZWRFcnJvcihtX2N1cnJlbnRSZXF1
ZXN0KSk7CiB9CiAKIHZvaWQgTmV0d29ya0xvYWQ6OmNhbm5vdFNob3dVUkwoUmVzb3VyY2VIYW5k
bGUqIGhhbmRsZSkKIHsKICAgICBBU1NFUlRfVU5VU0VEKGhhbmRsZSwgaGFuZGxlID09IG1faGFu
ZGxlKTsKIAotICAgIGRpZEZhaWwoaGFuZGxlLCBXZWJLaXQ6OmNhbm5vdFNob3dVUkxFcnJvciht
X2N1cnJlbnRSZXF1ZXN0KSk7CisgICAgZGlkRmFpbChoYW5kbGUsIGNhbm5vdFNob3dVUkxFcnJv
cihtX2N1cnJlbnRSZXF1ZXN0KSk7CiB9CiAKIGJvb2wgTmV0d29ya0xvYWQ6OnNob3VsZFVzZUNy
ZWRlbnRpYWxTdG9yYWdlKFJlc291cmNlSGFuZGxlKiBoYW5kbGUpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9tYWMvUmVtb3RlTmV0d29ya2luZ0NvbnRleHQubW0g
Yi9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9tYWMvUmVtb3RlTmV0d29ya2luZ0NvbnRl
eHQubW0KaW5kZXggMWQ2YTJhYzBkMzljZDI1NzE1N2QyZGI1YzU0OGViMmI0ZDZjYjhmYS4uOGQw
NGRmN2Y3YTA2YjQ2NTk1Y2E1ZGViMThkOWJhMzVkMzU2YWViYyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvbWFjL1JlbW90ZU5ldHdvcmtpbmdDb250ZXh0Lm1tCisr
KyBiL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL21hYy9SZW1vdGVOZXR3b3JraW5nQ29u
dGV4dC5tbQpAQCAtMzAsNyArMzAsNyBAQAogI2ltcG9ydCAiTmV0d29ya1Byb2Nlc3MuaCIKICNp
bXBvcnQgIk5ldHdvcmtTZXNzaW9uLmgiCiAjaW1wb3J0ICJTZXNzaW9uVHJhY2tlci5oIgotI2lt
cG9ydCAiV2ViRXJyb3JzLmgiCisjaW1wb3J0IDxXZWJDb3JlL0Vycm9ycy5oPgogI2ltcG9ydCA8
V2ViQ29yZS9SZXNvdXJjZUVycm9yLmg+CiAjaW1wb3J0IDxXZWJLaXRTeXN0ZW1JbnRlcmZhY2Uu
aD4KICNpbXBvcnQgPHd0Zi9NYWluVGhyZWFkLmg+CkBAIC03Nyw3ICs3Nyw3IEBAIFN0cmluZyBS
ZW1vdGVOZXR3b3JraW5nQ29udGV4dDo6c291cmNlQXBwbGljYXRpb25JZGVudGlmaWVyKCkgY29u
c3QKIAogUmVzb3VyY2VFcnJvciBSZW1vdGVOZXR3b3JraW5nQ29udGV4dDo6YmxvY2tlZEVycm9y
KGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCkgY29uc3QKIHsKLSAgICByZXR1cm4gV2Vi
S2l0OjpibG9ja2VkRXJyb3IocmVxdWVzdCk7CisgICAgcmV0dXJuIFdlYkNvcmU6OmJsb2NrZWRF
cnJvcihyZXF1ZXN0KTsKIH0KIAogdm9pZCBSZW1vdGVOZXR3b3JraW5nQ29udGV4dDo6ZW5zdXJl
UHJpdmF0ZUJyb3dzaW5nU2Vzc2lvbihTZXNzaW9uSUQgc2Vzc2lvbklEKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdDIvUGxhdGZvcm1FZmwuY21ha2UgYi9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9y
bUVmbC5jbWFrZQppbmRleCAyNDIwODFjOTM2MGU2MDE4MDg5YmFlZThhYzg0ZWQwNjEzOWZiNGVm
Li5hOTRlZDYzYTg0YTIyMTgzNDQ1NTNjZTgyOGVhMjVjMTAxNTU5Y2QyIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybUVmbC5jbWFrZQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9QbGF0
Zm9ybUVmbC5jbWFrZQpAQCAtNCw4ICs0LDcgQEAgbGlzdChBUFBFTkQgV2ViS2l0Ml9TT1VSQ0VT
CiAgICAgTmV0d29ya1Byb2Nlc3MvQ3VzdG9tUHJvdG9jb2xzL3NvdXAvQ3VzdG9tUHJvdG9jb2xN
YW5hZ2VySW1wbC5jcHAKICAgICBOZXR3b3JrUHJvY2Vzcy9DdXN0b21Qcm90b2NvbHMvc291cC9D
dXN0b21Qcm90b2NvbE1hbmFnZXJTb3VwLmNwcAogCi0gICAgTmV0d29ya1Byb2Nlc3MvRG93bmxv
YWRzL2VmbC9Eb3dubG9hZFNvdXBFcnJvcnNFZmwuY3BwCi0KKyAgICBOZXR3b3JrUHJvY2Vzcy9E
b3dubG9hZHMvc291cC9Eb3dubG9hZFNvdXBFcnJvcnMuY3BwCiAgICAgTmV0d29ya1Byb2Nlc3Mv
RG93bmxvYWRzL3NvdXAvRG93bmxvYWRTb3VwLmNwcAogCiAgICAgTmV0d29ya1Byb2Nlc3MvZWZs
L05ldHdvcmtQcm9jZXNzTWFpbkVmbC5jcHAKQEAgLTE5MSw3ICsxOTAsNiBAQCBsaXN0KEFQUEVO
RCBXZWJLaXQyX1NPVVJDRVMKIAogICAgIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvZWZsL1dl
YkNvbnRleHRNZW51Q2xpZW50RWZsLmNwcAogICAgIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQv
ZWZsL1dlYkVkaXRvckNsaWVudEVmbC5jcHAKLSAgICBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0
L2VmbC9XZWJFcnJvcnNFZmwuY3BwCiAgICAgV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9lZmwv
V2ViUG9wdXBNZW51RWZsLmNwcAogCiAgICAgV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9zb3Vw
L1dlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQuY3BwCkBAIC0yMzEsNiArMjI5LDcgQEAgbGlzdChB
UFBFTkQgV2ViS2l0Ml9JTkNMVURFX0RJUkVDVE9SSUVTCiAgICAgIiR7V0VCQ09SRV9ESVJ9L3Bs
YXRmb3JtL2dyYXBoaWNzL3gxMSIKICAgICAiJHtXRUJDT1JFX0RJUn0vcGxhdGZvcm0vbmV0d29y
ay9zb3VwIgogICAgICIke1dFQkNPUkVfRElSfS9wbGF0Zm9ybS90ZXh0L2VuY2hhbnQiCisgICAg
IiR7V0VCQ09SRV9ESVJ9L3BsYXRmb3JtL3VuaXgiCiAgICAgIiR7V0VCS0lUMl9ESVJ9L0RhdGFi
YXNlUHJvY2Vzcy91bml4IgogICAgICIke1dFQktJVDJfRElSfS9OZXR3b3JrUHJvY2Vzcy9DdXN0
b21Qcm90b2NvbHMvc291cCIKICAgICAiJHtXRUJLSVQyX0RJUn0vTmV0d29ya1Byb2Nlc3MvRG93
bmxvYWRzL3NvdXAiCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybUdUSy5jbWFr
ZSBiL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtR1RLLmNtYWtlCmluZGV4IGFjMDJlNGM2NTUzNWNl
Y2FkYjg4YzUzY2MwODgyNjU5OGI1YjE1MjIuLjEwOGEyMDM1YWFjOWMyOGFiMDkxYTAxZDgzNzE3
NGM4MmMxYjE1NDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtR1RLLmNtYWtl
CisrKyBiL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtR1RLLmNtYWtlCkBAIC0zMCw5ICszMCw4IEBA
IGxpc3QoQVBQRU5EIFdlYktpdDJfU09VUkNFUwogICAgIE5ldHdvcmtQcm9jZXNzL0N1c3RvbVBy
b3RvY29scy9zb3VwL0N1c3RvbVByb3RvY29sTWFuYWdlckltcGwuY3BwCiAgICAgTmV0d29ya1By
b2Nlc3MvQ3VzdG9tUHJvdG9jb2xzL3NvdXAvQ3VzdG9tUHJvdG9jb2xNYW5hZ2VyU291cC5jcHAK
IAotICAgIE5ldHdvcmtQcm9jZXNzL0Rvd25sb2Fkcy9ndGsvRG93bmxvYWRTb3VwRXJyb3JzR3Rr
LmNwcAotCiAgICAgTmV0d29ya1Byb2Nlc3MvRG93bmxvYWRzL3NvdXAvRG93bmxvYWRTb3VwLmNw
cAorICAgIE5ldHdvcmtQcm9jZXNzL0Rvd25sb2Fkcy9zb3VwL0Rvd25sb2FkU291cEVycm9ycy5j
cHAKIAogICAgIE5ldHdvcmtQcm9jZXNzL2NhY2hlL05ldHdvcmtDYWNoZURhdGFTb3VwLmNwcAog
ICAgIE5ldHdvcmtQcm9jZXNzL2NhY2hlL05ldHdvcmtDYWNoZUlPQ2hhbm5lbFNvdXAuY3BwCkBA
IC0zMzQsNyArMzMzLDYgQEAgbGlzdChBUFBFTkQgV2ViS2l0Ml9TT1VSQ0VTCiAgICAgV2ViUHJv
Y2Vzcy9XZWJDb3JlU3VwcG9ydC9ndGsvV2ViQ29udGV4dE1lbnVDbGllbnRHdGsuY3BwCiAgICAg
V2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9ndGsvV2ViRHJhZ0NsaWVudEd0ay5jcHAKICAgICBX
ZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L2d0ay9XZWJFZGl0b3JDbGllbnRHdGsuY3BwCi0gICAg
V2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9ndGsvV2ViRXJyb3JzR3RrLmNwcAogICAgIFdlYlBy
b2Nlc3MvV2ViQ29yZVN1cHBvcnQvZ3RrL1dlYlBvcHVwTWVudUd0ay5jcHAKIAogICAgIFdlYlBy
b2Nlc3MvV2ViQ29yZVN1cHBvcnQvc291cC9XZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0LmNwcApA
QCAtNDkwLDYgKzQ4OCw3IEBAIGxpc3QoQVBQRU5EIFdlYktpdDJfSU5DTFVERV9ESVJFQ1RPUklF
UwogICAgICIke1dFQkNPUkVfRElSfS9wbGF0Zm9ybS9ncmFwaGljcy94MTEiCiAgICAgIiR7V0VC
Q09SRV9ESVJ9L3BsYXRmb3JtL25ldHdvcmsvc291cCIKICAgICAiJHtXRUJDT1JFX0RJUn0vcGxh
dGZvcm0vdGV4dC9lbmNoYW50IgorICAgICIke1dFQkNPUkVfRElSfS9wbGF0Zm9ybS91bml4Igog
ICAgICIke1dFQktJVDJfRElSfS9EYXRhYmFzZVByb2Nlc3MvdW5peCIKICAgICAiJHtXRUJLSVQy
X0RJUn0vTmV0d29ya1Byb2Nlc3MvQ3VzdG9tUHJvdG9jb2xzL3NvdXAiCiAgICAgIiR7V0VCS0lU
Ml9ESVJ9L05ldHdvcmtQcm9jZXNzL0Rvd25sb2Fkcy9zb3VwIgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdDIvUGxhdGZvcm1NYWMuY21ha2UgYi9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybU1hYy5j
bWFrZQppbmRleCBlZjM3NmUzODE0ZGY4NzJhYjY2YjIxODIyYTM1NmM5MDBlMzk3MDg5Li42Yjk0
ZmZjMDZmY2EyZGZmNGNmNWJjOWZjMTRmZjRhOGNmN2MyNDhkIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0Mi9QbGF0Zm9ybU1hYy5jbWFrZQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybU1h
Yy5jbWFrZQpAQCAtMzI2LDcgKzMyNiw2IEBAIGxpc3QoQVBQRU5EIFdlYktpdDJfU09VUkNFUwog
ICAgIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvbWFjL1dlYkNvbnRleHRNZW51Q2xpZW50TWFj
Lm1tCiAgICAgV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9tYWMvV2ViRHJhZ0NsaWVudE1hYy5t
bQogICAgIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvbWFjL1dlYkVkaXRvckNsaWVudE1hYy5t
bQotICAgIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvbWFjL1dlYkVycm9yc01hYy5tbQogICAg
IFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvbWFjL1dlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQu
bW0KICAgICBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L21hYy9XZWJQb3B1cE1lbnVNYWMubW0K
ICAgICBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L21hYy9XZWJTeXN0ZW1JbnRlcmZhY2UubW0K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9BUEkvQVBJRXJyb3IuY3BwIGIvU291
cmNlL1dlYktpdDIvU2hhcmVkL0FQSS9BUElFcnJvci5jcHAKaW5kZXggODZhMWRiMGIwMzc0ZDM2
ZjRhM2U5MTMxNGQ1OTA4ODM2ZTViZGEyYS4uOWI5YjY3NWZiNzI0OTY5Yzk1MWUwZjUyZmE2OWZh
ODM1ZjRmY2Y5YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVkL0FQSS9BUElFcnJv
ci5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL0FQSS9BUElFcnJvci5jcHAKQEAgLTI3
LDYgKzI3LDcgQEAKICNpbmNsdWRlICJBUElFcnJvci5oIgogCiAjaW5jbHVkZSAiV2ViQ29yZUFy
Z3VtZW50Q29kZXJzLmgiCisjaW5jbHVkZSA8V2ViQ29yZS9FcnJvcnMuaD4KICNpbmNsdWRlIDx3
dGYvTmV2ZXJEZXN0cm95ZWQuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KIApA
QCAtMzQsOCArMzUsNyBAQCBuYW1lc3BhY2UgQVBJIHsKIAogY29uc3QgV1RGOjpTdHJpbmcmIEVy
cm9yOjp3ZWJLaXRFcnJvckRvbWFpbigpCiB7Ci0gICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPFdU
Rjo6U3RyaW5nPiB3ZWJLaXRFcnJvckRvbWFpblN0cmluZyhBU0NJSUxpdGVyYWwoIldlYktpdEVy
cm9yRG9tYWluIikpOwotICAgIHJldHVybiB3ZWJLaXRFcnJvckRvbWFpblN0cmluZzsKKyAgICBy
ZXR1cm4gV2ViQ29yZTo6d2ViS2l0RXJyb3JEb21haW4oKTsKIH0KIAogdm9pZCBFcnJvcjo6ZW5j
b2RlKElQQzo6QXJndW1lbnRFbmNvZGVyJiBlbmNvZGVyKSBjb25zdApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX2Vycm9yLmNwcCBiL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a19lcnJvci5jcHAKaW5kZXggZDAwMWM1NTc5OTI3YWMw
OTg4MTA5N2UxYzk2MDU5ZTdiNDJiMTlmOC4uMDQxZjNmMjBmOWZlYzU3NzY2NTIwN2JhNTk2MTc5
MmFjN2JkMjk1MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwv
ZXdrX2Vycm9yLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tf
ZXJyb3IuY3BwCkBAIC0yNiw3ICsyNiw3IEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVk
ZSAiZXdrX2Vycm9yLmgiCiAKLSNpbmNsdWRlICJFcnJvcnNFZmwuaCIKKyNpbmNsdWRlICJFcnJv
cnNVbml4LmgiCiAjaW5jbHVkZSAiV0tFcnJvclJlZi5oIgogI2luY2x1ZGUgIldLU3RyaW5nLmgi
CiAjaW5jbHVkZSAiV0tVUkwuaCIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9BUEkvZ3RrL1dlYktpdERvd25sb2FkLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9B
UEkvZ3RrL1dlYktpdERvd25sb2FkLmNwcAppbmRleCA4NmMwNWIyZjI5N2EwNWI5MWJlZjY4MWI0
MWFlZGUwMTVlMzM1ODM1Li5hOWUzNTZiZTdkNGQ2NTQ5OWY3NDljODYyYjE1ZDdkZWZhZTEzMzY2
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXREb3du
bG9hZC5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0RG93
bmxvYWQuY3BwCkBAIC0yNiw3ICsyNiw4IEBACiAjaW5jbHVkZSAiV2ViS2l0UHJpdmF0ZS5oIgog
I2luY2x1ZGUgIldlYktpdFVSSVJlcXVlc3RQcml2YXRlLmgiCiAjaW5jbHVkZSAiV2ViS2l0VVJJ
UmVzcG9uc2VQcml2YXRlLmgiCi0jaW5jbHVkZSA8V2ViQ29yZS9FcnJvcnNHdGsuaD4KKyNpbmNs
dWRlIDxXZWJDb3JlL0Vycm9ycy5oPgorI2luY2x1ZGUgPFdlYkNvcmUvRXJyb3JzVW5peC5oPgog
I2luY2x1ZGUgPFdlYkNvcmUvUmVzb3VyY2VSZXNwb25zZS5oPgogI2luY2x1ZGUgPGdsaWIvZ2kx
OG4tbGliLmg+CiAjaW5jbHVkZSA8d3RmL2dsaWIvR1JlZlB0ci5oPgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0RXJyb3IuY3BwIGIvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0RXJyb3IuY3BwCmluZGV4IDc0MTllZTcyMWEw
ZmU4NmFiYzM2NDM2ZDI0ZWMyNWU0NjQyM2U4Y2YuLmIwODM0MzZhMThkOTE3NGZmZjNlNjdjZWQ4
OGZlNDBlMzhiNDFhN2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkv
Z3RrL1dlYktpdEVycm9yLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0
ay9XZWJLaXRFcnJvci5jcHAKQEAgLTIyLDcgKzIyLDcgQEAKICNpbmNsdWRlICJXZWJLaXRFcnJv
ci5oIgogCiAjaW5jbHVkZSAiV2ViS2l0UHJpdmF0ZS5oIgotI2luY2x1ZGUgPFdlYkNvcmUvRXJy
b3JzR3RrLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9FcnJvcnNVbml4Lmg+CiAKIHVzaW5nIG5hbWVz
cGFjZSBXZWJDb3JlOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJ
L2d0ay9XZWJLaXRQcml2YXRlLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3Rr
L1dlYktpdFByaXZhdGUuY3BwCmluZGV4IDJiMWUxMjQ5NzZiYTRkZGM2NzE5MTcyNTBlOTc4Mjk4
MDE0NWJhY2EuLjkxOTdiYzc3MmNjOGVlODE5OGUwOTFlZWNkZDBkOGIxMmNjMGYyN2YgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFByaXZhdGUuY3Bw
CisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFByaXZhdGUuY3Bw
CkBAIC0yMCw3ICsyMCw3IEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiV2ViS2l0
UHJpdmF0ZS5oIgogCi0jaW5jbHVkZSAiRXJyb3JzR3RrLmgiCisjaW5jbHVkZSAiRXJyb3JzVW5p
eC5oIgogI2luY2x1ZGUgIldlYkV2ZW50LmgiCiAjaW5jbHVkZSAiV2ViS2l0RXJyb3IuaCIKICNp
bmNsdWRlIDxnZGsvZ2RrLmg+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
TmV0d29yay9DdXN0b21Qcm90b2NvbHMvc291cC9XZWJTb3VwQ3VzdG9tUHJvdG9jb2xSZXF1ZXN0
TWFuYWdlci5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvTmV0d29yay9DdXN0b21Qcm90
b2NvbHMvc291cC9XZWJTb3VwQ3VzdG9tUHJvdG9jb2xSZXF1ZXN0TWFuYWdlci5jcHAKaW5kZXgg
YjY1NWU0MzUxM2Q1ZTQxM2UxYjhmNWM2MjJkODhhMzk2NWIwNmE0Yi4uYTAzNWI0Nzg0NjRkYjQx
MTY4MGMxYjBjMzg5NDg3OWNlY2YzNTZhMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL05ldHdvcmsvQ3VzdG9tUHJvdG9jb2xzL3NvdXAvV2ViU291cEN1c3RvbVByb3RvY29s
UmVxdWVzdE1hbmFnZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9OZXR3b3Jr
L0N1c3RvbVByb3RvY29scy9zb3VwL1dlYlNvdXBDdXN0b21Qcm90b2NvbFJlcXVlc3RNYW5hZ2Vy
LmNwcApAQCAtMjMsMTYgKzIzLDEyIEBACiAjaW5jbHVkZSAiQVBJRGF0YS5oIgogI2luY2x1ZGUg
IkN1c3RvbVByb3RvY29sTWFuYWdlck1lc3NhZ2VzLmgiCiAjaW5jbHVkZSAiV2ViUHJvY2Vzc1Bv
b2wuaCIKKyNpbmNsdWRlIDxXZWJDb3JlL0Vycm9ycy5oPgorI2luY2x1ZGUgPFdlYkNvcmUvRXJy
b3JzVW5peC5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUmVzb3VyY2VFcnJvci5oPgogI2luY2x1ZGUg
PFdlYkNvcmUvUmVzb3VyY2VSZXF1ZXN0Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9SZXNvdXJjZVJl
c3BvbnNlLmg+CiAKLSNpZiBQTEFURk9STShHVEspCi0jaW5jbHVkZSA8V2ViQ29yZS9FcnJvcnNH
dGsuaD4KLSNlbGlmIFBMQVRGT1JNKEVGTCkKLSNpbmNsdWRlIDxXZWJDb3JlL0Vycm9yc0VmbC5o
PgotI2VuZGlmCi0KIG5hbWVzcGFjZSBXZWJLaXQgewogCiBjb25zdCBjaGFyKiBXZWJTb3VwQ3Vz
dG9tUHJvdG9jb2xSZXF1ZXN0TWFuYWdlcjo6c3VwcGxlbWVudE5hbWUoKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdDIvV2ViS2l0Mi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNl
L1dlYktpdDIvV2ViS2l0Mi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDM5MGJkZDE0
YmIyNjgzOTc2MDE4MzFmZTZiYTRkODcxMTU1NTdmMjguLmNjY2YyMjE3MzA5MDYyMTczNTU5MmFj
Y2QzMGNlYWJkZDY1ZjM3NGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYktpdDIueGNv
ZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJLaXQyLnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTIyMyw3ICsyMjMsNiBAQAogCQkxQTNFRUQwRjE2MUE1
MzU0MDBBRUI0RjUgLyogTWVzc2FnZVJlY2VpdmVyTWFwLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxQTNFRUQwRDE2MUE1MzUzMDBBRUI0RjUgLyogTWVz
c2FnZVJlY2VpdmVyTWFwLmggKi87IH07CiAJCTFBM0VFRDEyMTYxQTUzRDYwMEFFQjRGNSAvKiBN
ZXNzYWdlUmVjZWl2ZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDFBM0VFRDExMTYxQTUzRDYwMEFFQjRGNSAvKiBNZXNzYWdlUmVjZWl2ZXIuaCAqLzsg
fTsKIAkJMUE0MjJGOEIxOEIyOUI1NDAwRDhDRDk2IC8qIFdLSGlzdG9yeURlbGVnYXRlUHJpdmF0
ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUE0MjJG
OEExOEIyOUI1NDAwRDhDRDk2IC8qIFdLSGlzdG9yeURlbGVnYXRlUHJpdmF0ZS5oICovOyBzZXR0
aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07Ci0JCTFBNDMzRjBEMTEzQzUz
REQwMEZBQ0RFOSAvKiBXZWJFcnJvcnMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDFBNDMzRjBDMTEzQzUzREQwMEZBQ0RFOSAvKiBXZWJFcnJvcnMuaCAq
LzsgfTsKIAkJMUE0M0U4MjkxODhGM0NEQzAwOUU0RDMwIC8qIF9XS1Byb2Nlc3NQb29sQ29uZmln
dXJhdGlvbi5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDFBNDNFODI3MTg4RjNDREMwMDlFNEQzMCAvKiBfV0tQcm9jZXNzUG9vbENvbmZpZ3VyYXRpb24u
bW0gKi87IH07CiAJCTFBNDNFODJBMTg4RjNDREMwMDlFNEQzMCAvKiBfV0tQcm9jZXNzUG9vbENv
bmZpZ3VyYXRpb24uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDFBNDNFODI4MTg4RjNDREMwMDlFNEQzMCAvKiBfV0tQcm9jZXNzUG9vbENvbmZpZ3VyYXRp
b24uaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkx
QTQ0NUI5RjE4NEQ1RkI1MDA0QjM0MTQgLyogV0tDb250ZXh0SW5qZWN0ZWRCdW5kbGVDbGllbnQu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFBNDQ1QjlF
MTg0RDVGQjUwMDRCMzQxNCAvKiBXS0NvbnRleHRJbmplY3RlZEJ1bmRsZUNsaWVudC5oICovOyBz
ZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CkBAIC0xMzQ3LDcgKzEz
NDYsNiBAQAogCQlCQzExMUE1RjExMkY0RkJCMDAzMzdCQUIgLyogV2ViRnJhbWVMb2FkZXJDbGll
bnQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkMx
MTFBNTgxMTJGNEZCQjAwMzM3QkFCIC8qIFdlYkZyYW1lTG9hZGVyQ2xpZW50LmNwcCAqLzsgfTsK
IAkJQkMxMTFBNjAxMTJGNEZCQjAwMzM3QkFCIC8qIFdlYkluc3BlY3RvckNsaWVudC5jcHAgaW4g
U291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQzExMUE1OTExMkY0
RkJCMDAzMzdCQUIgLyogV2ViSW5zcGVjdG9yQ2xpZW50LmNwcCAqLzsgfTsKIAkJQkMxMTFBREQx
MTJGNUI5MzAwMzM3QkFCIC8qIFdlYkZyYW1lLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDMTExQURDMTEyRjVCOTMwMDMzN0JBQiAvKiBXZWJGcmFt
ZS5jcHAgKi87IH07Ci0JCUJDMTExQUUwMTEyRjVCQzIwMDMzN0JBQiAvKiBXZWJFcnJvcnNNYWMu
bW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQzExMUFE
RjExMkY1QkMyMDAzMzdCQUIgLyogV2ViRXJyb3JzTWFjLm1tICovOyB9OwogCQlCQzExMUFFNDEx
MkY1QzI2MDAzMzdCQUIgLyogV2ViUHJvY2Vzcy5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQzExMUFFMzExMkY1QzI2MDAzMzdCQUIgLyogV2ViUHJv
Y2Vzcy5jcHAgKi87IH07CiAJCUJDMTExQjA5MTEyRjVFM0MwMDMzN0JBQiAvKiBSZXNwb25zaXZl
bmVzc1RpbWVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IEJDMTExQjA4MTEyRjVFM0MwMDMzN0JBQiAvKiBSZXNwb25zaXZlbmVzc1RpbWVyLmNwcCAq
LzsgfTsKIAkJQkMxMTFCMEUxMTJGNUU0RjAwMzM3QkFCIC8qIFdlYkZyYW1lUHJveHkuY3BwIGlu
IFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkMxMTFCMEExMTJG
NUU0RjAwMzM3QkFCIC8qIFdlYkZyYW1lUHJveHkuY3BwICovOyB9OwpAQCAtMjE3Niw3ICsyMTc0
LDYgQEAKIAkJMUEzRUVEMEQxNjFBNTM1MzAwQUVCNEY1IC8qIE1lc3NhZ2VSZWNlaXZlck1hcC5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBNZXNzYWdlUmVjZWl2ZXJNYXAuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMUEzRUVEMTExNjFBNTNENjAwQUVCNEY1IC8q
IE1lc3NhZ2VSZWNlaXZlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBNZXNz
YWdlUmVjZWl2ZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMUE0MjJGOEExOEIy
OUI1NDAwRDhDRDk2IC8qIFdLSGlzdG9yeURlbGVnYXRlUHJpdmF0ZS5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBXS0hpc3RvcnlEZWxlZ2F0ZVByaXZhdGUuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKLQkJMUE0MzNGMEMxMTNDNTNERDAwRkFDREU5IC8qIFdlYkVycm9y
cy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJFcnJvcnMuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMUE0M0U4MjcxODhGM0NEQzAwOUU0RDMwIC8qIF9XS1By
b2Nlc3NQb29sQ29uZmlndXJhdGlvbi5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNw
cDsgcGF0aCA9IF9XS1Byb2Nlc3NQb29sQ29uZmlndXJhdGlvbi5tbTsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJMUE0M0U4MjgxODhGM0NEQzAwOUU0RDMwIC8qIF9XS1Byb2Nlc3NQb29s
Q29uZmlndXJhdGlvbi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBfV0tQcm9j
ZXNzUG9vbENvbmZpZ3VyYXRpb24uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMUE0
NDVCOUUxODRENUZCNTAwNEIzNDE0IC8qIFdLQ29udGV4dEluamVjdGVkQnVuZGxlQ2xpZW50Lmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdLQ29udGV4dEluamVjdGVkQnVuZGxl
Q2xpZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0zNDA2LDcgKzM0MDMsNiBA
QAogCQlCQzExMUE1ODExMkY0RkJCMDAzMzdCQUIgLyogV2ViRnJhbWVMb2FkZXJDbGllbnQuY3Bw
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV2ViRnJhbWVMb2FkZXJDbGll
bnQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB3cmFwc0xpbmVzID0gMDsgfTsKIAkJQkMx
MTFBNTkxMTJGNEZCQjAwMzM3QkFCIC8qIFdlYkluc3BlY3RvckNsaWVudC5jcHAgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXZWJJbnNwZWN0b3JDbGllbnQuY3BwOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlCQzExMUFEQzExMkY1QjkzMDAzMzdCQUIgLyogV2Vi
RnJhbWUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV2ViRnJhbWUu
Y3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQlCQzExMUFERjExMkY1QkMyMDAzMzdC
QUIgLyogV2ViRXJyb3JzTWFjLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBw
YXRoID0gV2ViRXJyb3JzTWFjLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlCQzEx
MUFFMzExMkY1QzI2MDAzMzdCQUIgLyogV2ViUHJvY2Vzcy5jcHAgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5jcHA7IHBhdGggPSBXZWJQcm9jZXNzLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJQkMxMTFCMDgxMTJGNUUzQzAwMzM3QkFCIC8qIFJlc3BvbnNpdmVuZXNzVGltZXIu
Y3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUmVzcG9uc2l2ZW5lc3NU
aW1lci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUJDMTExQjBBMTEyRjVFNEYw
MDMzN0JBQiAvKiBXZWJGcmFtZVByb3h5LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNw
cDsgcGF0aCA9IFdlYkZyYW1lUHJveHkuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpA
QCAtNTc3Nyw3ICs1NzczLDYgQEAKIAkJCQlCQzAzMkQ2NjEwRjQzNzhEMDA1OEMxNUEgLyogV2Vi
RHJhZ0NsaWVudC5oICovLAogCQkJCUJDMTExQTU3MTEyRjRGQkIwMDMzN0JBQiAvKiBXZWJFZGl0
b3JDbGllbnQuY3BwICovLAogCQkJCUJDMDMyRDY4MTBGNDM3OEQwMDU4QzE1QSAvKiBXZWJFZGl0
b3JDbGllbnQuaCAqLywKLQkJCQkxQTQzM0YwQzExM0M1M0REMDBGQUNERTkgLyogV2ViRXJyb3Jz
LmggKi8sCiAJCQkJQkMxMTFBNTgxMTJGNEZCQjAwMzM3QkFCIC8qIFdlYkZyYW1lTG9hZGVyQ2xp
ZW50LmNwcCAqLywKIAkJCQlCQzAzMkQ2QTEwRjQzNzhEMDA1OEMxNUEgLyogV2ViRnJhbWVMb2Fk
ZXJDbGllbnQuaCAqLywKIAkJCQlCQzFCRTFERjEyRDU0QTQxMDAwNEEyMjggLyogV2ViR2VvbG9j
YXRpb25DbGllbnQuY3BwICovLApAQCAtNjIyMiw3ICs2MjE3LDYgQEAKIAkJCQk1MTAyMUU5QjEy
QjE2Nzg4MDA1QzAzM0MgLyogV2ViQ29udGV4dE1lbnVDbGllbnRNYWMubW0gKi8sCiAJCQkJQzU1
NEZGQTIxMkU0RThFQTAwMkYyMkMwIC8qIFdlYkRyYWdDbGllbnRNYWMubW0gKi8sCiAJCQkJQzUy
MzdGNUYxMjQ0MUNBMzAwNzgwNDcyIC8qIFdlYkVkaXRvckNsaWVudE1hYy5tbSAqLywKLQkJCQlC
QzExMUFERjExMkY1QkMyMDAzMzdCQUIgLyogV2ViRXJyb3JzTWFjLm1tICovLAogCQkJCTkzOTFG
MjgzMTIxQjM4RjUwMEVCRjdFOCAvKiBXZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0LmggKi8sCiAJ
CQkJOTM5MUYyODQxMjFCMzhGNTAwRUJGN0U4IC8qIFdlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQu
bW0gKi8sCiAJCQkJQkNDNDNBQzYxMjdCOTlERTAwMzE3RjE2IC8qIFdlYlBvcHVwTWVudU1hYy5t
bSAqLywKQEAgLTc3MDAsNyArNzY5NCw2IEBACiAJCQkJQkMwMzJEN0IxMEY0Mzc4RDAwNThDMTVB
IC8qIFdlYkRyYWdDbGllbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDQTBFRjlGMTIzMzI2NDIw
MDdEM0NGQiAvKiBXZWJFZGl0Q29tbWFuZFByb3h5LmggaW4gSGVhZGVycyAqLywKIAkJCQlCQzAz
MkQ3RDEwRjQzNzhEMDA1OEMxNUEgLyogV2ViRWRpdG9yQ2xpZW50LmggaW4gSGVhZGVycyAqLywK
LQkJCQkxQTQzM0YwRDExM0M1M0REMDBGQUNERTkgLyogV2ViRXJyb3JzLmggaW4gSGVhZGVycyAq
LywKIAkJCQlCQzAzMkRCOTEwRjQzODBGMDA1OEMxNUEgLyogV2ViRXZlbnQuaCBpbiBIZWFkZXJz
ICovLAogCQkJCUJDMDMyREJCMTBGNDM4MEYwMDU4QzE1QSAvKiBXZWJFdmVudENvbnZlcnNpb24u
aCBpbiBIZWFkZXJzICovLAogCQkJCUJDMTExQjVEMTEyRjYyOTgwMDMzN0JBQiAvKiBXZWJFdmVu
dEZhY3RvcnkuaCBpbiBIZWFkZXJzICovLApAQCAtOTE4Nyw3ICs5MTgwLDYgQEAKIAkJCQlCQzEx
MUE1RTExMkY0RkJCMDAzMzdCQUIgLyogV2ViRWRpdG9yQ2xpZW50LmNwcCBpbiBTb3VyY2VzICov
LAogCQkJCTJEMjhGM0U2MTg4NUNDQzEwMDRCOUVBRSAvKiBXZWJFZGl0b3JDbGllbnRJT1MubW0g
aW4gU291cmNlcyAqLywKIAkJCQlDNTIzN0Y2MDEyNDQxQ0EzMDA3ODA0NzIgLyogV2ViRWRpdG9y
Q2xpZW50TWFjLm1tIGluIFNvdXJjZXMgKi8sCi0JCQkJQkMxMTFBRTAxMTJGNUJDMjAwMzM3QkFC
IC8qIFdlYkVycm9yc01hYy5tbSBpbiBTb3VyY2VzICovLAogCQkJCUMwMzM3REFFMTI3QTI0RkUw
MDhGRjRGNCAvKiBXZWJFdmVudC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlCQzAzMkRCQTEwRjQz
ODBGMDA1OEMxNUEgLyogV2ViRXZlbnRDb252ZXJzaW9uLmNwcCBpbiBTb3VyY2VzICovLAogCQkJ
CUJDMTExQjVFMTEyRjYyOTgwMDMzN0JBQiAvKiBXZWJFdmVudEZhY3RvcnkubW0gaW4gU291cmNl
cyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvTmV0d29yay9XZWJM
b2FkZXJTdHJhdGVneS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL05ldHdvcmsvV2Vi
TG9hZGVyU3RyYXRlZ3kuY3BwCmluZGV4IGZlYTJlNzU1MjJkZjA3NWYzMDNmMDAxMjFjMDM2MTFl
N2RhNzRmYTQuLjkxYmNkZWYzODI0MzRjMjQyYzEwYTkyMjI0ZTA2YWU4NmE5OGIxM2MgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvTmV0d29yay9XZWJMb2FkZXJTdHJhdGVn
eS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9OZXR3b3JrL1dlYkxvYWRlclN0
cmF0ZWd5LmNwcApAQCAtMzMsNyArMzMsNiBAQAogI2luY2x1ZGUgIk5ldHdvcmtSZXNvdXJjZUxv
YWRQYXJhbWV0ZXJzLmgiCiAjaW5jbHVkZSAiU2Vzc2lvblRyYWNrZXIuaCIKICNpbmNsdWRlICJX
ZWJDb3JlQXJndW1lbnRDb2RlcnMuaCIKLSNpbmNsdWRlICJXZWJFcnJvcnMuaCIKICNpbmNsdWRl
ICJXZWJGcmFtZS5oIgogI2luY2x1ZGUgIldlYkZyYW1lTG9hZGVyQ2xpZW50LmgiCiAjaW5jbHVk
ZSAiV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dC5oIgpAQCAtNDQsNiArNDMsNyBAQAogI2luY2x1
ZGUgPFdlYkNvcmUvQ2FjaGVkUmVzb3VyY2UuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0RvY3VtZW50
Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9Eb2N1bWVudExvYWRlci5oPgorI2luY2x1ZGUgPFdlYkNv
cmUvRXJyb3JzLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9GcmFtZS5oPgogI2luY2x1ZGUgPFdlYkNv
cmUvRnJhbWVMb2FkZXIuaD4KICNpbmNsdWRlIDxXZWJDb3JlL05ldHNjYXBlUGx1Z0luU3RyZWFt
TG9hZGVyLmg+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL05ldHdvcmsv
V2ViUmVzb3VyY2VMb2FkZXIuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9OZXR3b3Jr
L1dlYlJlc291cmNlTG9hZGVyLmNwcAppbmRleCA1ZGY0MDUxYmY4YmI4MjkzMTg2MDdlOWQxZjc5
ZDc1M2RlZDFiMTU4Li43ODNlNzA3ZmZiZWRiYjhkM2MxYzQ4YzViYjI2NzNkMmNlZmYyZTUwIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL05ldHdvcmsvV2ViUmVzb3VyY2VM
b2FkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvTmV0d29yay9XZWJSZXNv
dXJjZUxvYWRlci5jcHAKQEAgLTMxLDExICszMSwxMSBAQAogI2luY2x1ZGUgIk5ldHdvcmtQcm9j
ZXNzQ29ubmVjdGlvbi5oIgogI2luY2x1ZGUgIk5ldHdvcmtSZXNvdXJjZUxvYWRlck1lc3NhZ2Vz
LmgiCiAjaW5jbHVkZSAiV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmgiCi0jaW5jbHVkZSAiV2ViRXJy
b3JzLmgiCiAjaW5jbHVkZSAiV2ViUHJvY2Vzcy5oIgogI2luY2x1ZGUgPFdlYkNvcmUvQXBwbGlj
YXRpb25DYWNoZUhvc3QuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0NlcnRpZmljYXRlSW5mby5oPgog
I2luY2x1ZGUgPFdlYkNvcmUvRG9jdW1lbnRMb2FkZXIuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL0Vy
cm9ycy5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUmVzb3VyY2VFcnJvci5oPgogI2luY2x1ZGUgPFdl
YkNvcmUvUmVzb3VyY2VMb2FkZXIuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1N1YnJlc291cmNlTG9h
ZGVyLmg+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBw
b3J0L1dlYkVycm9ycy5oIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9y
dC9XZWJFcnJvcnMuaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNzBhMjI4YzU4ZjI4
YjM5ZDc3ZDc3YzI2OWJlMzYxNDQ0YTk1NjE4YS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBw
b3J0L1dlYkVycm9ycy5oCisrKyAvZGV2L251bGwKQEAgLTEsNTAgKzAsMCBAQAotLyoKLSAqIENv
cHlyaWdodCAoQykgMjAxMCwgMjAxMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0g
KgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAot
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVw
cm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3Vt
ZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmli
dXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFO
RCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwotICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBUSEUgSU1Q
TElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBM
RSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKLSAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKLSAqIENPTlNFUVVF
TlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5U
IE9GCi0gKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwg
T1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKLSAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQg
QU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCi0gKiBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKQotICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRgotICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LgotICovCi0KLSNpZm5kZWYgV2ViRXJyb3JzX2gKLSNkZWZpbmUgV2ViRXJyb3JzX2gKLQotbmFt
ZXNwYWNlIFdlYkNvcmUgewotICAgIGNsYXNzIFVSTDsKLSAgICBjbGFzcyBSZXNvdXJjZUVycm9y
OwotICAgIGNsYXNzIFJlc291cmNlUmVxdWVzdDsKLSAgICBjbGFzcyBSZXNvdXJjZVJlc3BvbnNl
OwotfQotCi1uYW1lc3BhY2UgV2ViS2l0IHsKLQotV2ViQ29yZTo6UmVzb3VyY2VFcnJvciBjYW5j
ZWxsZWRFcnJvcihjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmKTsKLVdlYkNvcmU6OlJl
c291cmNlRXJyb3IgYmxvY2tlZEVycm9yKGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYp
OwotV2ViQ29yZTo6UmVzb3VyY2VFcnJvciBibG9ja2VkQnlDb250ZW50QmxvY2tlckVycm9yKGNv
bnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYpOwotV2ViQ29yZTo6UmVzb3VyY2VFcnJvciBj
YW5ub3RTaG93VVJMRXJyb3IoY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0Jik7Ci1XZWJD
b3JlOjpSZXNvdXJjZUVycm9yIGludGVycnVwdGVkRm9yUG9saWN5Q2hhbmdlRXJyb3IoY29uc3Qg
V2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0Jik7Ci1XZWJDb3JlOjpSZXNvdXJjZUVycm9yIGNhbm5v
dFNob3dNSU1FVHlwZUVycm9yKGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UmKTsKLVdl
YkNvcmU6OlJlc291cmNlRXJyb3IgZmlsZURvZXNOb3RFeGlzdEVycm9yKGNvbnN0IFdlYkNvcmU6
OlJlc291cmNlUmVzcG9uc2UmKTsKLVdlYkNvcmU6OlJlc291cmNlRXJyb3IgcGx1Z2luV2lsbEhh
bmRsZUxvYWRFcnJvcihjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlJik7Ci1XZWJDb3Jl
OjpSZXNvdXJjZUVycm9yIGludGVybmFsRXJyb3IoY29uc3QgV2ViQ29yZTo6VVJMJik7Ci0KLX0g
Ly8gbmFtZXNwYWNlIFdlYktpdAotCi0jZW5kaWYgLy8gV2ViRXJyb3JzX2gKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJD
bGllbnQuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJG
cmFtZUxvYWRlckNsaWVudC5jcHAKaW5kZXggNzZhNDI1ZGI4MjI4ZGM5ZjExOTZjMTc0NGE1YTYw
NmRkNWZmY2U3NC4uZTdhZmU0OTRjZGQwYWI2NTY3ZmU3ZjhiYjQ3NTY4NjA4NWI4ZjljYiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFt
ZUxvYWRlckNsaWVudC5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3Jl
U3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5jcHAKQEAgLTQxLDcgKzQxLDYgQEAKICNpbmNs
dWRlICJXZWJCYWNrRm9yd2FyZExpc3RQcm94eS5oIgogI2luY2x1ZGUgIldlYkNvcmVBcmd1bWVu
dENvZGVycy5oIgogI2luY2x1ZGUgIldlYkRvY3VtZW50TG9hZGVyLmgiCi0jaW5jbHVkZSAiV2Vi
RXJyb3JzLmgiCiAjaW5jbHVkZSAiV2ViRXZlbnQuaCIKICNpbmNsdWRlICJXZWJGcmFtZS5oIgog
I2luY2x1ZGUgIldlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQuaCIKQEAgLTU5LDYgKzU4LDcgQEAK
ICNpbmNsdWRlIDxXZWJDb3JlL0Nocm9tZS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvRE9NV3JhcHBl
cldvcmxkLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9Eb2N1bWVudExvYWRlci5oPgorI2luY2x1ZGUg
PFdlYkNvcmUvRXJyb3JzLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9Gb3JtU3RhdGUuaD4KICNpbmNs
dWRlIDxXZWJDb3JlL0ZyYW1lTG9hZFJlcXVlc3QuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0ZyYW1l
TG9hZGVyLmg+CkBAIC0xMTAxLDUwICsxMTAxLDEwIEBAIHZvaWQgV2ViRnJhbWVMb2FkZXJDbGll
bnQ6OmRpZERldGVjdFhTUyhjb25zdCBVUkwmLCBib29sKQogICAgIHdlYlBhZ2UtPnNlbmQoTWVz
c2FnZXM6OldlYlBhZ2VQcm94eTo6RGlkRGV0ZWN0WFNTRm9yRnJhbWUobV9mcmFtZS0+ZnJhbWVJ
RCgpLCBVc2VyRGF0YShXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS50cmFuc2Zvcm1PYmplY3RzVG9I
YW5kbGVzKHVzZXJEYXRhLmdldCgpKS5nZXQoKSkpKTsKIH0KIAotUmVzb3VyY2VFcnJvciBXZWJG
cmFtZUxvYWRlckNsaWVudDo6Y2FuY2VsbGVkRXJyb3IoY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiBy
ZXF1ZXN0KQotewotICAgIHJldHVybiBXZWJLaXQ6OmNhbmNlbGxlZEVycm9yKHJlcXVlc3QpOwot
fQotCi1SZXNvdXJjZUVycm9yIFdlYkZyYW1lTG9hZGVyQ2xpZW50OjpibG9ja2VkRXJyb3IoY29u
c3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0KQotewotICAgIHJldHVybiBXZWJLaXQ6OmJsb2Nr
ZWRFcnJvcihyZXF1ZXN0KTsKLX0KLQotUmVzb3VyY2VFcnJvciBXZWJGcmFtZUxvYWRlckNsaWVu
dDo6YmxvY2tlZEJ5Q29udGVudEJsb2NrZXJFcnJvcihjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJl
cXVlc3QpCi17Ci0gICAgcmV0dXJuIFdlYktpdDo6YmxvY2tlZEJ5Q29udGVudEJsb2NrZXJFcnJv
cihyZXF1ZXN0KTsKLX0KLQotUmVzb3VyY2VFcnJvciBXZWJGcmFtZUxvYWRlckNsaWVudDo6Y2Fu
bm90U2hvd1VSTEVycm9yKGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCkKLXsKLSAgICBy
ZXR1cm4gV2ViS2l0OjpjYW5ub3RTaG93VVJMRXJyb3IocmVxdWVzdCk7Ci19Ci0KLVJlc291cmNl
RXJyb3IgV2ViRnJhbWVMb2FkZXJDbGllbnQ6OmludGVycnVwdGVkRm9yUG9saWN5Q2hhbmdlRXJy
b3IoY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0KQotewotICAgIHJldHVybiBXZWJLaXQ6
OmludGVycnVwdGVkRm9yUG9saWN5Q2hhbmdlRXJyb3IocmVxdWVzdCk7Ci19Ci0KLVJlc291cmNl
RXJyb3IgV2ViRnJhbWVMb2FkZXJDbGllbnQ6OmNhbm5vdFNob3dNSU1FVHlwZUVycm9yKGNvbnN0
IFJlc291cmNlUmVzcG9uc2UmIHJlc3BvbnNlKQotewotICAgIHJldHVybiBXZWJLaXQ6OmNhbm5v
dFNob3dNSU1FVHlwZUVycm9yKHJlc3BvbnNlKTsKLX0KLQotUmVzb3VyY2VFcnJvciBXZWJGcmFt
ZUxvYWRlckNsaWVudDo6ZmlsZURvZXNOb3RFeGlzdEVycm9yKGNvbnN0IFJlc291cmNlUmVzcG9u
c2UmIHJlc3BvbnNlKQotewotICAgIHJldHVybiBXZWJLaXQ6OmZpbGVEb2VzTm90RXhpc3RFcnJv
cihyZXNwb25zZSk7Ci19Ci0KLVJlc291cmNlRXJyb3IgV2ViRnJhbWVMb2FkZXJDbGllbnQ6OnBs
dWdpbldpbGxIYW5kbGVMb2FkRXJyb3IoY29uc3QgUmVzb3VyY2VSZXNwb25zZSYgcmVzcG9uc2Up
Ci17Ci0gICAgcmV0dXJuIFdlYktpdDo6cGx1Z2luV2lsbEhhbmRsZUxvYWRFcnJvcihyZXNwb25z
ZSk7Ci19Ci0KIGJvb2wgV2ViRnJhbWVMb2FkZXJDbGllbnQ6OnNob3VsZEZhbGxCYWNrKGNvbnN0
IFJlc291cmNlRXJyb3ImIGVycm9yKQogewotICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxjb25z
dCBSZXNvdXJjZUVycm9yPiBjYW5jZWxsZWRFcnJvcih0aGlzLT5jYW5jZWxsZWRFcnJvcihSZXNv
dXJjZVJlcXVlc3QoKSkpOwotICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxjb25zdCBSZXNvdXJj
ZUVycm9yPiBwbHVnaW5XaWxsSGFuZGxlTG9hZEVycm9yKHRoaXMtPnBsdWdpbldpbGxIYW5kbGVM
b2FkRXJyb3IoUmVzb3VyY2VSZXNwb25zZSgpKSk7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVk
PGNvbnN0IFJlc291cmNlRXJyb3I+IGNhbmNlbGxlZEVycm9yKFdlYkNvcmU6OmNhbmNlbGxlZEVy
cm9yKFJlc291cmNlUmVxdWVzdCgpKSk7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPGNvbnN0
IFJlc291cmNlRXJyb3I+IHBsdWdpbldpbGxIYW5kbGVMb2FkRXJyb3IoV2ViQ29yZTo6cGx1Z2lu
V2lsbEhhbmRsZUxvYWRFcnJvcihSZXNvdXJjZVJlc3BvbnNlKCkpKTsKIAogICAgIGlmIChlcnJv
ci5lcnJvckNvZGUoKSA9PSBjYW5jZWxsZWRFcnJvci5nZXQoKS5lcnJvckNvZGUoKSAmJiBlcnJv
ci5kb21haW4oKSA9PSBjYW5jZWxsZWRFcnJvci5nZXQoKS5kb21haW4oKSkKICAgICAgICAgcmV0
dXJuIGZhbHNlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3Jl
U3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5oIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5oCmluZGV4IGY1ZGUwMGQ3ZDQz
NDc2ZGEyMDlmOWU1NzdjNGFhNGIzYWU3ZjFmNTAuLjQ0NmEyODJkZGFlNDdkODMxM2VmZGY3ZWE3
Zjc1MzU3M2NhMDk5ZGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2Vi
Q29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmgKQEAgLTE0NSwx
NiArMTQ1LDYgQEAgcHJpdmF0ZToKICAgICB2b2lkIGRpZFJ1bkluc2VjdXJlQ29udGVudChXZWJD
b3JlOjpTZWN1cml0eU9yaWdpbiosIGNvbnN0IFdlYkNvcmU6OlVSTCYpIG92ZXJyaWRlOwogICAg
IHZvaWQgZGlkRGV0ZWN0WFNTKGNvbnN0IFdlYkNvcmU6OlVSTCYsIGJvb2wgZGlkQmxvY2tFbnRp
cmVQYWdlKSBvdmVycmlkZTsKIAotICAgIFdlYkNvcmU6OlJlc291cmNlRXJyb3IgY2FuY2VsbGVk
RXJyb3IoY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0Jikgb3ZlcnJpZGU7Ci0gICAgV2Vi
Q29yZTo6UmVzb3VyY2VFcnJvciBibG9ja2VkRXJyb3IoY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VS
ZXF1ZXN0Jikgb3ZlcnJpZGU7Ci0gICAgV2ViQ29yZTo6UmVzb3VyY2VFcnJvciBibG9ja2VkQnlD
b250ZW50QmxvY2tlckVycm9yKGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYpIG92ZXJy
aWRlOwotICAgIFdlYkNvcmU6OlJlc291cmNlRXJyb3IgY2Fubm90U2hvd1VSTEVycm9yKGNvbnN0
IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYpIG92ZXJyaWRlOwotICAgIFdlYkNvcmU6OlJlc291
cmNlRXJyb3IgaW50ZXJydXB0ZWRGb3JQb2xpY3lDaGFuZ2VFcnJvcihjb25zdCBXZWJDb3JlOjpS
ZXNvdXJjZVJlcXVlc3QmKSBvdmVycmlkZTsKLSAgICAKLSAgICBXZWJDb3JlOjpSZXNvdXJjZUVy
cm9yIGNhbm5vdFNob3dNSU1FVHlwZUVycm9yKGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVzcG9u
c2UmKSBvdmVycmlkZTsKLSAgICBXZWJDb3JlOjpSZXNvdXJjZUVycm9yIGZpbGVEb2VzTm90RXhp
c3RFcnJvcihjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlJikgb3ZlcnJpZGU7Ci0gICAg
V2ViQ29yZTo6UmVzb3VyY2VFcnJvciBwbHVnaW5XaWxsSGFuZGxlTG9hZEVycm9yKGNvbnN0IFdl
YkNvcmU6OlJlc291cmNlUmVzcG9uc2UmKSBvdmVycmlkZTsKLSAgICAKICAgICBib29sIHNob3Vs
ZEZhbGxCYWNrKGNvbnN0IFdlYkNvcmU6OlJlc291cmNlRXJyb3ImKSBvdmVycmlkZTsKICAgICAK
ICAgICBib29sIGNhbkhhbmRsZVJlcXVlc3QoY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0
JikgY29uc3Qgb3ZlcnJpZGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L1dlYkNvcmVTdXBwb3J0L1dlYlBsYXRmb3JtU3RyYXRlZ2llcy5jcHAgYi9Tb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlBsYXRmb3JtU3RyYXRlZ2llcy5jcHAKaW5k
ZXggMDIzYzNkMThlNDU4YmYzOTAyYWE0OGY0MGFjYzVjOTVhNzZmZWFhNy4uNzYwM2JjOTNkNDY3
NTJjNDJkZGE0MDIxYmQ5ODJiOWI3NGE0OWRlZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJQbGF0Zm9ybVN0cmF0ZWdpZXMuY3BwCisrKyBi
L1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViUGxhdGZvcm1TdHJh
dGVnaWVzLmNwcApAQCAtMzcsNyArMzcsNiBAQAogI2luY2x1ZGUgIlNlc3Npb25UcmFja2VyLmgi
CiAjaW5jbHVkZSAiV2ViQ29va2llTWFuYWdlci5oIgogI2luY2x1ZGUgIldlYkNvcmVBcmd1bWVu
dENvZGVycy5oIgotI2luY2x1ZGUgIldlYkVycm9ycy5oIgogI2luY2x1ZGUgIldlYkZyYW1lLmgi
CiAjaW5jbHVkZSAiV2ViRnJhbWVMb2FkZXJDbGllbnQuaCIKICNpbmNsdWRlICJXZWJMb2FkZXJT
dHJhdGVneS5oIgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3Jl
U3VwcG9ydC9lZmwvV2ViRXJyb3JzRWZsLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
V2ViQ29yZVN1cHBvcnQvZWZsL1dlYkVycm9yc0VmbC5jcHAKZGVsZXRlZCBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IGIxYjk3ZDg2NDkwOWQxYmY3ZGRlNDc5ZDlhYzdhNzJkZWY1N2MzMzcuLjAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9lZmwvV2ViRXJyb3JzRWZsLmNwcAorKysgL2Rldi9u
dWxsCkBAIC0xLDg1ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTEgU2Ftc3VuZyBF
bGVjdHJvbmljcy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHly
aWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIg
bWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBB
UyBJUycnCi0gKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVS
Q0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJF
IERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJV
VE9SUwotICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwg
U1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgotICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKLSAqIFNVQlNUSVRVVEUgR09P
RFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVT
UwotICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4KLSAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBU
T1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCi0gKiBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
Ci0gKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI2luY2x1ZGUgImNv
bmZpZy5oIgotI2luY2x1ZGUgIldlYkVycm9ycy5oIgotCi0jaW5jbHVkZSAiQVBJRXJyb3IuaCIK
LSNpbmNsdWRlIDxXZWJDb3JlL0Vycm9yc0VmbC5oPgotI2luY2x1ZGUgPFdlYkNvcmUvUmVzb3Vy
Y2VFcnJvci5oPgotI2luY2x1ZGUgPFdlYkNvcmUvUmVzb3VyY2VSZXF1ZXN0Lmg+Ci0jaW5jbHVk
ZSA8V2ViQ29yZS9SZXNvdXJjZVJlc3BvbnNlLmg+Ci0jaW5jbHVkZSA8V2ViS2l0L1dLRXJyb3JS
ZWYuaD4KLQotdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7Ci0KLW5hbWVzcGFjZSBXZWJLaXQgewot
Ci1SZXNvdXJjZUVycm9yIGNhbmNlbGxlZEVycm9yKGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVx
dWVzdCkKLXsKLSAgICByZXR1cm4gV2ViQ29yZTo6Y2FuY2VsbGVkRXJyb3IocmVxdWVzdCk7Ci19
Ci0KLVJlc291cmNlRXJyb3IgYmxvY2tlZEVycm9yKGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVx
dWVzdCkKLXsKLSAgICByZXR1cm4gV2ViQ29yZTo6YmxvY2tlZEVycm9yKHJlcXVlc3QpOwotfQot
Ci1SZXNvdXJjZUVycm9yIGJsb2NrZWRCeUNvbnRlbnRCbG9ja2VyRXJyb3IoY29uc3QgUmVzb3Vy
Y2VSZXF1ZXN0JiByZXF1ZXN0KQotewotICAgIHJldHVybiBXZWJDb3JlOjpibG9ja2VkQnlDb250
ZW50QmxvY2tlckVycm9yKHJlcXVlc3QpOwotfQotCi1SZXNvdXJjZUVycm9yIGNhbm5vdFNob3dV
UkxFcnJvcihjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QpCi17Ci0gICAgcmV0dXJuIFdl
YkNvcmU6OmNhbm5vdFNob3dVUkxFcnJvcihyZXF1ZXN0KTsKLX0KLQotUmVzb3VyY2VFcnJvciBp
bnRlcnJ1cHRlZEZvclBvbGljeUNoYW5nZUVycm9yKGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVx
dWVzdCkKLXsKLSAgICByZXR1cm4gV2ViQ29yZTo6aW50ZXJydXB0ZWRGb3JQb2xpY3lDaGFuZ2VF
cnJvcihyZXF1ZXN0KTsKLX0KLQotUmVzb3VyY2VFcnJvciBjYW5ub3RTaG93TUlNRVR5cGVFcnJv
cihjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiByZXNwb25zZSkKLXsKLSAgICByZXR1cm4gV2ViQ29y
ZTo6Y2Fubm90U2hvd01JTUVUeXBlRXJyb3IocmVzcG9uc2UpOwotfQotCi1SZXNvdXJjZUVycm9y
IGZpbGVEb2VzTm90RXhpc3RFcnJvcihjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiByZXNwb25zZSkK
LXsKLSAgICByZXR1cm4gV2ViQ29yZTo6ZmlsZURvZXNOb3RFeGlzdEVycm9yKHJlc3BvbnNlKTsK
LX0KLQotUmVzb3VyY2VFcnJvciBwbHVnaW5XaWxsSGFuZGxlTG9hZEVycm9yKGNvbnN0IFJlc291
cmNlUmVzcG9uc2UmIHJlc3BvbnNlKQotewotICAgIHJldHVybiBXZWJDb3JlOjpwbHVnaW5XaWxs
SGFuZGxlTG9hZEVycm9yKHJlc3BvbnNlKTsKLX0KLQotV2ViQ29yZTo6UmVzb3VyY2VFcnJvciBp
bnRlcm5hbEVycm9yKGNvbnN0IFdlYkNvcmU6OlVSTCYgdXJsKQotewotICAgIHJldHVybiBSZXNv
dXJjZUVycm9yKEFQSTo6RXJyb3I6OndlYktpdEVycm9yRG9tYWluKCksIGtXS0Vycm9ySW50ZXJu
YWwsIHVybCwgQVNDSUlMaXRlcmFsKCJJbnRlcm5hbCBlcnJvciIpKTsKLX0KLQotfSAvLyBuYW1l
c3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNv
cmVTdXBwb3J0L2d0ay9XZWJFcnJvcnNHdGsuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9XZWJDb3JlU3VwcG9ydC9ndGsvV2ViRXJyb3JzR3RrLmNwcApkZWxldGVkIGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggZTlkMWQ0YzJiNzQ0YzdhMzY1OTZmOWRjNDkyMmZkMjY0ODJmN2Y4My4uMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L2d0ay9XZWJFcnJvcnNHdGsuY3BwCisrKyAvZGV2
L251bGwKQEAgLTEsODggKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMCBBcHBsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKiBQb3J0aW9ucyBDb3B5cmlnaHQgKGMpIDIwMTAg
TW90b3JvbGEgTW9iaWxpdHksIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKiBDb3B5cmln
aHQgKEMpIDIwMTEgSWdhbGlhIFMuTC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwot
ICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJl
dGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlv
bnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxz
IHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElT
IFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCi0g
KiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywKLSAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlN
RUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwotICog
QkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwg
RVhFTVBMQVJZLCBPUgotICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKLSAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VS
VklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwotICogSU5U
RVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4KLSAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCi0gKiBBUklTSU5HIElOIEFOWSBXQVkgT1VU
IE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCi0gKiBUSEUg
UE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI2luY2x1ZGUgImNvbmZpZy5oIgot
I2luY2x1ZGUgIldlYkVycm9ycy5oIgotCi0jaW5jbHVkZSAiQVBJRXJyb3IuaCIKLSNpbmNsdWRl
IDxXZWJDb3JlL0Vycm9yc0d0ay5oPgotI2luY2x1ZGUgPFdlYkNvcmUvUmVzb3VyY2VFcnJvci5o
PgotI2luY2x1ZGUgPFdlYkNvcmUvUmVzb3VyY2VSZXF1ZXN0Lmg+Ci0jaW5jbHVkZSA8V2ViQ29y
ZS9SZXNvdXJjZVJlc3BvbnNlLmg+Ci0jaW5jbHVkZSA8V2ViS2l0L1dLRXJyb3JSZWYuaD4KLSNp
bmNsdWRlIDxnbGliL2dpMThuLWxpYi5oPgotCi11c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKLQot
bmFtZXNwYWNlIFdlYktpdCB7Ci0KLVJlc291cmNlRXJyb3IgY2FuY2VsbGVkRXJyb3IoY29uc3Qg
UmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0KQotewotICAgIHJldHVybiBXZWJDb3JlOjpjYW5jZWxs
ZWRFcnJvcihyZXF1ZXN0KTsKLX0KLQotUmVzb3VyY2VFcnJvciBibG9ja2VkRXJyb3IoY29uc3Qg
UmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0KQotewotICAgIHJldHVybiBXZWJDb3JlOjpibG9ja2Vk
RXJyb3IocmVxdWVzdCk7Ci19Ci0KLVJlc291cmNlRXJyb3IgYmxvY2tlZEJ5Q29udGVudEJsb2Nr
ZXJFcnJvcihjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QpCi17Ci0gICAgcmV0dXJuIFdl
YkNvcmU6OmJsb2NrZWRCeUNvbnRlbnRCbG9ja2VyRXJyb3IocmVxdWVzdCk7Ci19Ci0KLVJlc291
cmNlRXJyb3IgY2Fubm90U2hvd1VSTEVycm9yKGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVz
dCkKLXsKLSAgICByZXR1cm4gV2ViQ29yZTo6Y2Fubm90U2hvd1VSTEVycm9yKHJlcXVlc3QpOwot
fQotCi1SZXNvdXJjZUVycm9yIGludGVycnVwdGVkRm9yUG9saWN5Q2hhbmdlRXJyb3IoY29uc3Qg
UmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0KQotewotICAgIHJldHVybiBXZWJDb3JlOjppbnRlcnJ1
cHRlZEZvclBvbGljeUNoYW5nZUVycm9yKHJlcXVlc3QpOwotfQotCi1SZXNvdXJjZUVycm9yIGNh
bm5vdFNob3dNSU1FVHlwZUVycm9yKGNvbnN0IFJlc291cmNlUmVzcG9uc2UmIHJlc3BvbnNlKQot
ewotICAgIHJldHVybiBXZWJDb3JlOjpjYW5ub3RTaG93TUlNRVR5cGVFcnJvcihyZXNwb25zZSk7
Ci19Ci0KLVJlc291cmNlRXJyb3IgZmlsZURvZXNOb3RFeGlzdEVycm9yKGNvbnN0IFJlc291cmNl
UmVzcG9uc2UmIHJlc3BvbnNlKQotewotICAgIHJldHVybiBXZWJDb3JlOjpmaWxlRG9lc05vdEV4
aXN0RXJyb3IocmVzcG9uc2UpOwotfQotCi1SZXNvdXJjZUVycm9yIHBsdWdpbldpbGxIYW5kbGVM
b2FkRXJyb3IoY29uc3QgUmVzb3VyY2VSZXNwb25zZSYgcmVzcG9uc2UpCi17Ci0gICAgcmV0dXJu
IFdlYkNvcmU6OnBsdWdpbldpbGxIYW5kbGVMb2FkRXJyb3IocmVzcG9uc2UpOwotfQotCi1XZWJD
b3JlOjpSZXNvdXJjZUVycm9yIGludGVybmFsRXJyb3IoY29uc3QgV2ViQ29yZTo6VVJMJiB1cmwp
Ci17Ci0gICAgcmV0dXJuIFJlc291cmNlRXJyb3IoQVBJOjpFcnJvcjo6d2ViS2l0RXJyb3JEb21h
aW4oKSwga1dLRXJyb3JJbnRlcm5hbCwgdXJsLCBfKCJJbnRlcm5hbCBlcnJvciIpKTsKLX0KLQot
fSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9j
ZXNzL1dlYkNvcmVTdXBwb3J0L21hYy9XZWJFcnJvcnNNYWMubW0gYi9Tb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L21hYy9XZWJFcnJvcnNNYWMubW0KZGVsZXRlZCBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDk0ZGY1NjRiN2M3ZTM5MGI0MDBkNmU0MmRkMmU1YmNiODk0YTUy
OWMuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9tYWMvV2ViRXJyb3JzTWFjLm1tCisr
KyAvZGV2L251bGwKQEAgLTEsMTAwICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTAg
QXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlz
dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJp
Z2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBt
YXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFT
IElTJycKLSAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJD
SEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUg
RElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVU
T1JTCi0gKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBT
UEVDSUFMLCBFWEVNUExBUlksIE9SCi0gKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgotICogU1VCU1RJVFVURSBHT09E
UyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNT
Ci0gKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTgotICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKLSAqIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YK
LSAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaW1wb3J0ICJjb25m
aWcuaCIKLSNpbXBvcnQgIldlYkVycm9ycy5oIgotCi0jaW1wb3J0ICJBUElFcnJvci5oIgotI2lt
cG9ydCAiV0tFcnJvclJlZi5oIgotI2ltcG9ydCA8V2ViQ29yZS9Mb2NhbGl6ZWRTdHJpbmdzLmg+
Ci0jaW1wb3J0IDxXZWJDb3JlL1Jlc291cmNlUmVxdWVzdC5oPgotI2ltcG9ydCA8V2ViQ29yZS9S
ZXNvdXJjZVJlc3BvbnNlLmg+Ci0KLXVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwotdXNpbmcgbmFt
ZXNwYWNlIFdlYktpdDsKLQotbmFtZXNwYWNlIFdlYktpdCB7Ci0KLXN0YXRpYyBSZXRhaW5QdHI8
TlNFcnJvcj4gY3JlYXRlTlNFcnJvcihOU1N0cmluZyogZG9tYWluLCBpbnQgY29kZSwgTlNVUkwg
KlVSTCkKLXsKLSAgICBOU0RpY3Rpb25hcnkgKnVzZXJJbmZvID0gW05TRGljdGlvbmFyeSBkaWN0
aW9uYXJ5V2l0aE9iamVjdHNBbmRLZXlzOgotICAgICAgICBVUkwsIEAiTlNFcnJvckZhaWxpbmdV
UkxLZXkiLAotICAgICAgICBbVVJMIGFic29sdXRlU3RyaW5nXSwgQCJOU0Vycm9yRmFpbGluZ1VS
TFN0cmluZ0tleSIsCi0gICAgICAgIG5pbF07Ci0KLSAgICByZXR1cm4gYWRvcHROUyhbW05TRXJy
b3IgYWxsb2NdIGluaXRXaXRoRG9tYWluOmRvbWFpbiBjb2RlOmNvZGUgdXNlckluZm86dXNlcklu
Zm9dKTsKLX0KLQotLy8gVXNlIE5TRXJyb3IncyBpZiBhdmFpbGFibGUuCi0KLVJlc291cmNlRXJy
b3IgY2FuY2VsbGVkRXJyb3IoY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0KQotewotICAg
IHJldHVybiBSZXNvdXJjZUVycm9yKGNyZWF0ZU5TRXJyb3IoTlNVUkxFcnJvckRvbWFpbiwgTlNV
UkxFcnJvckNhbmNlbGxlZCwgcmVxdWVzdC51cmwoKSkuZ2V0KCkpOwotfQotCi1SZXNvdXJjZUVy
cm9yIGZpbGVEb2VzTm90RXhpc3RFcnJvcihjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiByZXNwb25z
ZSkKLXsKLSAgICByZXR1cm4gUmVzb3VyY2VFcnJvcihjcmVhdGVOU0Vycm9yKE5TVVJMRXJyb3JE
b21haW4sIE5TVVJMRXJyb3JGaWxlRG9lc05vdEV4aXN0LCByZXNwb25zZS51cmwoKSkuZ2V0KCkp
OwotfQotCi0KLS8vIE90aGVyd2lzZSwgZmFsbGJhY2sgdG8gb3VyIG93biBlcnJvcnMuCi0KLVJl
c291cmNlRXJyb3IgYmxvY2tlZEVycm9yKGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCkK
LXsKLSAgICByZXR1cm4gUmVzb3VyY2VFcnJvcihBUEk6OkVycm9yOjp3ZWJLaXRFcnJvckRvbWFp
bigpLCBrV0tFcnJvckNvZGVDYW5ub3RVc2VSZXN0cmljdGVkUG9ydCwgcmVxdWVzdC51cmwoKSwg
V0VCX1VJX1NUUklORygiTm90IGFsbG93ZWQgdG8gdXNlIHJlc3RyaWN0ZWQgbmV0d29yayBwb3J0
IiwgIldlYktpdEVycm9yQ2Fubm90VXNlUmVzdHJpY3RlZFBvcnQgZGVzY3JpcHRpb24iKSk7Ci19
Ci0KLVJlc291cmNlRXJyb3IgYmxvY2tlZEJ5Q29udGVudEJsb2NrZXJFcnJvcihjb25zdCBSZXNv
dXJjZVJlcXVlc3QmIHJlcXVlc3QpCi17Ci0gICAgcmV0dXJuIFJlc291cmNlRXJyb3IoQVBJOjpF
cnJvcjo6d2ViS2l0RXJyb3JEb21haW4oKSwga1dLRXJyb3JDb2RlRnJhbWVMb2FkQmxvY2tlZEJ5
Q29udGVudEJsb2NrZXIsIHJlcXVlc3QudXJsKCksIFdFQl9VSV9TVFJJTkcoIlRoZSBVUkwgd2Fz
IGJsb2NrZWQgYnkgYSBjb250ZW50IGJsb2NrZXIiLCAiV2ViS2l0RXJyb3JCbG9ja2VkQnlDb250
ZW50QmxvY2tlciBkZXNjcmlwdGlvbiIpKTsKLX0KLQotUmVzb3VyY2VFcnJvciBjYW5ub3RTaG93
VVJMRXJyb3IoY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0KQotewotICAgIHJldHVybiBS
ZXNvdXJjZUVycm9yKEFQSTo6RXJyb3I6OndlYktpdEVycm9yRG9tYWluKCksIGtXS0Vycm9yQ29k
ZUNhbm5vdFNob3dVUkwsIHJlcXVlc3QudXJsKCksIFdFQl9VSV9TVFJJTkcoIlRoZSBVUkwgY2Fu
4oCZdCBiZSBzaG93biIsICJXZWJLaXRFcnJvckNhbm5vdFNob3dVUkwgZGVzY3JpcHRpb24iKSk7
Ci19Ci0KLVJlc291cmNlRXJyb3IgaW50ZXJydXB0ZWRGb3JQb2xpY3lDaGFuZ2VFcnJvcihjb25z
dCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QpCi17Ci0gICAgcmV0dXJuIFJlc291cmNlRXJyb3Io
QVBJOjpFcnJvcjo6d2ViS2l0RXJyb3JEb21haW4oKSwga1dLRXJyb3JDb2RlRnJhbWVMb2FkSW50
ZXJydXB0ZWRCeVBvbGljeUNoYW5nZSwgcmVxdWVzdC51cmwoKSwgV0VCX1VJX1NUUklORygiRnJh
bWUgbG9hZCBpbnRlcnJ1cHRlZCIsICJXZWJLaXRFcnJvckZyYW1lTG9hZEludGVycnVwdGVkQnlQ
b2xpY3lDaGFuZ2UgZGVzY3JpcHRpb24iKSk7Ci19Ci0KLVJlc291cmNlRXJyb3IgY2Fubm90U2hv
d01JTUVUeXBlRXJyb3IoY29uc3QgUmVzb3VyY2VSZXNwb25zZSYgcmVzcG9uc2UpCi17Ci0gICAg
cmV0dXJuIFJlc291cmNlRXJyb3IoQVBJOjpFcnJvcjo6d2ViS2l0RXJyb3JEb21haW4oKSwga1dL
RXJyb3JDb2RlQ2Fubm90U2hvd01JTUVUeXBlLCByZXNwb25zZS51cmwoKSwgV0VCX1VJX1NUUklO
RygiQ29udGVudCB3aXRoIHNwZWNpZmllZCBNSU1FIHR5cGUgY2Fu4oCZdCBiZSBzaG93biIsICJX
ZWJLaXRFcnJvckNhbm5vdFNob3dNSU1FVHlwZSBkZXNjcmlwdGlvbiIpKTsKLX0KLQotUmVzb3Vy
Y2VFcnJvciBwbHVnaW5XaWxsSGFuZGxlTG9hZEVycm9yKGNvbnN0IFJlc291cmNlUmVzcG9uc2Um
IHJlc3BvbnNlKQotewotICAgIHJldHVybiBSZXNvdXJjZUVycm9yKEFQSTo6RXJyb3I6OndlYktp
dEVycm9yRG9tYWluKCksIGtXS0Vycm9yQ29kZVBsdWdJbldpbGxIYW5kbGVMb2FkLCByZXNwb25z
ZS51cmwoKSwgV0VCX1VJX1NUUklORygiUGx1Zy1pbiBoYW5kbGVkIGxvYWQiLCAiV2ViS2l0RXJy
b3JQbHVnSW5XaWxsSGFuZGxlTG9hZCBkZXNjcmlwdGlvbiIpKTsKLX0KLQotUmVzb3VyY2VFcnJv
ciBpbnRlcm5hbEVycm9yKGNvbnN0IFVSTCYgdXJsKQotewotICAgIHJldHVybiBSZXNvdXJjZUVy
cm9yKEFQSTo6RXJyb3I6OndlYktpdEVycm9yRG9tYWluKCksIGtXS0Vycm9ySW50ZXJuYWwsIHVy
bCwgV0VCX1VJX1NUUklORygiV2ViS2l0IGVuY291bnRlcmVkIGFuIGludGVybmFsIGVycm9yIiwg
IldlYktpdEVycm9ySW50ZXJuYWwgZGVzY3JpcHRpb24iKSk7Ci19Ci0KLX0gLy8gbmFtZXNwYWNl
IFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3Vw
cG9ydC9tYWMvV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dC5tbSBiL1NvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvbWFjL1dlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQubW0K
aW5kZXggNWI2NGUyODdlM2QyOTI3YjE4MjgzMDdkNzQ5OGU0N2U1NGVhNGMzMi4uNGU4NTg5ZWQ3
Y2QwY2YzYmRkZDk4NjJhODMyZGQxZTIxYWYxY2M4YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9tYWMvV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4
dC5tbQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L21hYy9X
ZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0Lm1tCkBAIC0zMiw2ICszMiw3IEBACiAjaW5jbHVkZSAi
V2ViUGFnZS5oIgogI2luY2x1ZGUgIldlYlByb2Nlc3MuaCIKICNpbmNsdWRlIDxXZWJDb3JlL0NG
TmV0d29ya1NQSS5oPgorI2luY2x1ZGUgPFdlYkNvcmUvRXJyb3JzLmg+CiAjaW5jbHVkZSA8V2Vi
Q29yZS9GcmFtZS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvRnJhbWVMb2FkZXIuaD4KICNpbmNsdWRl
IDxXZWJDb3JlL0ZyYW1lTG9hZGVyQ2xpZW50Lmg+CkBAIC0xMDMsNyArMTA0LDcgQEAgU3RyaW5n
IFdlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQ6OnNvdXJjZUFwcGxpY2F0aW9uSWRlbnRpZmllcigp
IGNvbnN0CiAKIFJlc291cmNlRXJyb3IgV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dDo6YmxvY2tl
ZEVycm9yKGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCkgY29uc3QKIHsKLSAgICByZXR1
cm4gZnJhbWUoKS0+bG9hZGVyKCkuY2xpZW50KCkuYmxvY2tlZEVycm9yKHJlcXVlc3QpOworICAg
IHJldHVybiBXZWJDb3JlOjpibG9ja2VkRXJyb3IocmVxdWVzdCk7CiB9CiAKIE5ldHdvcmtTdG9y
YWdlU2Vzc2lvbiYgV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dDo6c3RvcmFnZVNlc3Npb24oKSBj
b25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL2d0ay9X
ZWJQcmludE9wZXJhdGlvbkd0ay5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBh
Z2UvZ3RrL1dlYlByaW50T3BlcmF0aW9uR3RrLmNwcAppbmRleCBiNjIwNWRiOTQ5NTAxM2U0YThl
MjIxY2Q2YmZiNmQ4NDk4MzgzMDEyLi43MGVmNTBlMDE4ZjZlMTJlMDZlOTJjMTExNDlkYTBlYzdi
MTFhYmI1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvZ3Rr
L1dlYlByaW50T3BlcmF0aW9uR3RrLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L1dlYlBhZ2UvZ3RrL1dlYlByaW50T3BlcmF0aW9uR3RrLmNwcApAQCAtMzEsNyArMzEsNyBAQAog
I2luY2x1ZGUgIldlYlBhZ2VQcm94eU1lc3NhZ2VzLmgiCiAjaW5jbHVkZSAiV2ViUHJvY2Vzcy5o
IgogI2luY2x1ZGUgPFdlYkNvcmUvRG9jdW1lbnRMb2FkZXIuaD4KLSNpbmNsdWRlIDxXZWJDb3Jl
L0Vycm9yc0d0ay5oPgorI2luY2x1ZGUgPFdlYkNvcmUvRXJyb3JzVW5peC5oPgogI2luY2x1ZGUg
PFdlYkNvcmUvRnJhbWUuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0ludFJlY3QuaD4KICNpbmNsdWRl
IDxXZWJDb3JlL05vdEltcGxlbWVudGVkLmg+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>285909</attachid>
            <date>2016-08-12 04:48:51 -0700</date>
            <delta_ts>2016-08-12 05:07:15 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-156974-20160812144710.patch</filename>
            <type>text/plain</type>
            <size>132416</size>
            <attacher name="Claudio Saavedra">csaavedra</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjA0NDEwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYTNiYjRkNmJiN2MzNjVh
YjU3N2QxMjcwYmIwNTVlMDRkZTdjOTM3Yy4uYjk0MDNjY2RjZDVjYTljZGVkNTNmZjQxYmQyMTY0
ZTk3OWFjZjQxNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEwOCBAQAorMjAxNi0wNS0yMCAgQ2xh
dWRpbyBTYWF2ZWRyYSAgPGNzYWF2ZWRyYUBpZ2FsaWEuY29tPgorCisgICAgICAgIFVuaWZ5aW5n
IEVycm9ycy9XZWJFcnJvcnMgaW50byBXZWJDb3JlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNTY5NzQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICBGcmFtZUxvYWRlckNsaWVudCBlcnJvciBtZXRob2RzIGlu
IFdlYkNvcmUgYW5kIFdlYkVycm9ycyBpbiBXSzIgYXJlCisgICAgICAgIHJlZHVuZGFudC4gRnVy
dGhlcm1vcmUsIEZyYW1lTG9hZGVyQ2xpZW50IGVycm9yIG1ldGhvZHMgZG8gbm90IGRlcGVuZAor
ICAgICAgICBpbiB0aGUgbG9hZGVyIGNsaWVudCBpbnN0YW5jZSBhdCBhbGwuCisKKyAgICAgICAg
UmVtb3ZlIHRoZSBlcnJvciBtZXRob2RzIGZyb20gRnJhbWVMb2FkZXJDbGllbnQgYW5kIGFkb3B0
IHRoZSBXZWJFcnJvcnMKKyAgICAgICAgZnJvbSBXSzIgaW50byBXZWJDb3JlLCBzdGFuZGFsb25l
IG1ldGhvZHMuIE1vdmUgdGhlIEVGTCwgR1RLLCBhbmQgV2luLCBhbmQgTWFjIGltcGxlbWVudGF0
aW9ucworICAgICAgICB0byBXZWJDb3JlL3BsYXRmb3JtLCBhbmQgdXBkYXRlIHRoZSBjb2RlIGV2
ZXJ5d2hlcmUgYWNjb3JkaW5nbHkuCisKKyAgICAgICAgKiBQbGF0Zm9ybUVmbC5jbWFrZToKKyAg
ICAgICAgKiBQbGF0Zm9ybUdUSy5jbWFrZToKKyAgICAgICAgKiBQbGF0Zm9ybU1hYy5jbWFrZToK
KyAgICAgICAgKiBQbGF0Zm9ybVdpbi5jbWFrZToKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJv
ai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogbG9hZGVyL0RvY3VtZW50TG9hZGVyLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50TG9hZGVyOjpjb250aW51ZUFmdGVyQ29udGVudFBv
bGljeSk6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudExvYWRlcjo6aW50ZXJydXB0ZWRGb3JQ
b2xpY3lDaGFuZ2VFcnJvcik6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudExvYWRlcjo6c3Rh
cnRMb2FkaW5nTWFpblJlc291cmNlKToKKyAgICAgICAgKiBsb2FkZXIvRW1wdHlDbGllbnRzLmg6
CisgICAgICAgICogbG9hZGVyL0ZyYW1lTG9hZGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZy
YW1lTG9hZGVyOjpjYW5jZWxsZWRFcnJvcik6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZUxvYWRl
cjo6YmxvY2tlZEVycm9yKToKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lTG9hZGVyOjpibG9ja2Vk
QnlDb250ZW50QmxvY2tlckVycm9yKTogRGVsZXRlZC4KKyAgICAgICAgKiBsb2FkZXIvRnJhbWVM
b2FkZXIuaDoKKyAgICAgICAgKiBsb2FkZXIvRnJhbWVMb2FkZXJDbGllbnQuaDoKKyAgICAgICAg
KiBsb2FkZXIvTmV0c2NhcGVQbHVnSW5TdHJlYW1Mb2FkZXIuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6TmV0c2NhcGVQbHVnSW5TdHJlYW1Mb2FkZXI6OmRpZFJlY2VpdmVSZXNwb25zZSk6CisgICAg
ICAgICogbG9hZGVyL1BvbGljeUNoZWNrZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UG9saWN5
Q2hlY2tlcjo6Y2Fubm90U2hvd01JTUVUeXBlKToKKyAgICAgICAgKFdlYkNvcmU6OlBvbGljeUNo
ZWNrZXI6OmNvbnRpbnVlQWZ0ZXJOYXZpZ2F0aW9uUG9saWN5KToKKyAgICAgICAgKiBsb2FkZXIv
UmVzb3VyY2VMb2FkZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VMb2FkZXI6OmJs
b2NrZWRFcnJvcik6CisgICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZUxvYWRlcjo6YmxvY2tlZEJ5
Q29udGVudEJsb2NrZXJFcnJvcik6CisgICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZUxvYWRlcjo6
Y2Fubm90U2hvd1VSTEVycm9yKToKKyAgICAgICAgKiBsb2FkZXIvYXBwY2FjaGUvQXBwbGljYXRp
b25DYWNoZUhvc3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6QXBwbGljYXRpb25DYWNoZUhvc3Q6
Om1heWJlTG9hZFN5bmNocm9ub3VzbHkpOgorICAgICAgICAqIHBsYXRmb3JtL0Vycm9ycy5jcHA6
IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6d2ViS2l0RXJyb3JEb21haW4pOgorICAgICAgICAq
IHBsYXRmb3JtL0Vycm9ycy5oOiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9lZmwvRXJyb3Jz
RWZsLmNwcDogUmVtb3ZlZC4KKyAgICAgICAgKFdlYkNvcmU6OmNhbmNlbGxlZEVycm9yKTogRGVs
ZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OmJsb2NrZWRFcnJvcik6IERlbGV0ZWQuCisgICAgICAg
IChXZWJDb3JlOjpibG9ja2VkQnlDb250ZW50QmxvY2tlckVycm9yKTogRGVsZXRlZC4KKyAgICAg
ICAgKFdlYkNvcmU6OmNhbm5vdFNob3dVUkxFcnJvcik6IERlbGV0ZWQuCisgICAgICAgIChXZWJD
b3JlOjppbnRlcnJ1cHRlZEZvclBvbGljeUNoYW5nZUVycm9yKTogRGVsZXRlZC4KKyAgICAgICAg
KFdlYkNvcmU6OmNhbm5vdFNob3dNSU1FVHlwZUVycm9yKTogRGVsZXRlZC4KKyAgICAgICAgKFdl
YkNvcmU6OmZpbGVEb2VzTm90RXhpc3RFcnJvcik6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3Jl
OjpwbHVnaW5XaWxsSGFuZGxlTG9hZEVycm9yKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6
OmRvd25sb2FkTmV0d29ya0Vycm9yKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OmRvd25s
b2FkQ2FuY2VsbGVkQnlVc2VyRXJyb3IpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6ZG93
bmxvYWREZXN0aW5hdGlvbkVycm9yKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OnByaW50
RXJyb3IpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6cHJpbnRlck5vdEZvdW5kRXJyb3Ip
OiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6aW52YWxpZFBhZ2VSYW5nZVRvUHJpbnQpOiBE
ZWxldGVkLgorICAgICAgICAqIHBsYXRmb3JtL2VmbC9FcnJvcnNFZmwuaDogUmVtb3ZlZC4KKyAg
ICAgICAgKiBwbGF0Zm9ybS9ndGsvRXJyb3JzR3RrLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmNh
bmNlbGxlZEVycm9yKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OmJsb2NrZWRFcnJvcik6
IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpibG9ja2VkQnlDb250ZW50QmxvY2tlckVycm9y
KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OmNhbm5vdFNob3dVUkxFcnJvcik6IERlbGV0
ZWQuCisgICAgICAgIChXZWJDb3JlOjppbnRlcnJ1cHRlZEZvclBvbGljeUNoYW5nZUVycm9yKTog
RGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OmNhbm5vdFNob3dNSU1FVHlwZUVycm9yKTogRGVs
ZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OmZpbGVEb2VzTm90RXhpc3RFcnJvcik6IERlbGV0ZWQu
CisgICAgICAgIChXZWJDb3JlOjpwbHVnaW5XaWxsSGFuZGxlTG9hZEVycm9yKTogRGVsZXRlZC4K
KyAgICAgICAgKFdlYkNvcmU6OmRvd25sb2FkTmV0d29ya0Vycm9yKTogRGVsZXRlZC4KKyAgICAg
ICAgKFdlYkNvcmU6OmRvd25sb2FkQ2FuY2VsbGVkQnlVc2VyRXJyb3IpOiBEZWxldGVkLgorICAg
ICAgICAoV2ViQ29yZTo6ZG93bmxvYWREZXN0aW5hdGlvbkVycm9yKTogRGVsZXRlZC4KKyAgICAg
ICAgKFdlYkNvcmU6OnByaW50RXJyb3IpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6cHJp
bnRlck5vdEZvdW5kRXJyb3IpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6aW52YWxpZFBh
Z2VSYW5nZVRvUHJpbnQpOiBEZWxldGVkLgorICAgICAgICAqIHBsYXRmb3JtL21hYy9FcnJvcnNN
YWMubW06IFJlbmFtZWQgZnJvbSBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBw
b3J0L21hYy9XZWJFcnJvcnNNYWMubW0uCisgICAgICAgIChXZWJDb3JlOjpjcmVhdGVOU0Vycm9y
KToKKyAgICAgICAgKFdlYkNvcmU6OmNhbmNlbGxlZEVycm9yKToKKyAgICAgICAgKFdlYkNvcmU6
OmZpbGVEb2VzTm90RXhpc3RFcnJvcik6CisgICAgICAgIChXZWJDb3JlOjpibG9ja2VkRXJyb3Ip
OgorICAgICAgICAoV2ViQ29yZTo6YmxvY2tlZEJ5Q29udGVudEJsb2NrZXJFcnJvcik6CisgICAg
ICAgIChXZWJDb3JlOjpjYW5ub3RTaG93VVJMRXJyb3IpOgorICAgICAgICAoV2ViQ29yZTo6aW50
ZXJydXB0ZWRGb3JQb2xpY3lDaGFuZ2VFcnJvcik6CisgICAgICAgIChXZWJDb3JlOjpjYW5ub3RT
aG93TUlNRVR5cGVFcnJvcik6CisgICAgICAgIChXZWJDb3JlOjpwbHVnaW5XaWxsSGFuZGxlTG9h
ZEVycm9yKToKKyAgICAgICAgKFdlYkNvcmU6OmludGVybmFsRXJyb3IpOgorICAgICAgICAqIHBs
YXRmb3JtL3VuaXgvRXJyb3JzVW5peC5jcHA6IFJlbmFtZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ndGsvRXJyb3JzR3RrLmNwcC4KKyAgICAgICAgKFdlYkNvcmU6OmNhbmNlbGxlZEVy
cm9yKToKKyAgICAgICAgKFdlYkNvcmU6OmJsb2NrZWRFcnJvcik6CisgICAgICAgIChXZWJDb3Jl
OjpibG9ja2VkQnlDb250ZW50QmxvY2tlckVycm9yKToKKyAgICAgICAgKFdlYkNvcmU6OmNhbm5v
dFNob3dVUkxFcnJvcik6CisgICAgICAgIChXZWJDb3JlOjppbnRlcnJ1cHRlZEZvclBvbGljeUNo
YW5nZUVycm9yKToKKyAgICAgICAgKFdlYkNvcmU6OmNhbm5vdFNob3dNSU1FVHlwZUVycm9yKToK
KyAgICAgICAgKFdlYkNvcmU6OmZpbGVEb2VzTm90RXhpc3RFcnJvcik6CisgICAgICAgIChXZWJD
b3JlOjpwbHVnaW5XaWxsSGFuZGxlTG9hZEVycm9yKToKKyAgICAgICAgKFdlYkNvcmU6OmRvd25s
b2FkTmV0d29ya0Vycm9yKToKKyAgICAgICAgKFdlYkNvcmU6OmRvd25sb2FkQ2FuY2VsbGVkQnlV
c2VyRXJyb3IpOgorICAgICAgICAoV2ViQ29yZTo6ZG93bmxvYWREZXN0aW5hdGlvbkVycm9yKToK
KyAgICAgICAgKFdlYkNvcmU6OnByaW50RXJyb3IpOgorICAgICAgICAoV2ViQ29yZTo6cHJpbnRl
ck5vdEZvdW5kRXJyb3IpOgorICAgICAgICAoV2ViQ29yZTo6aW52YWxpZFBhZ2VSYW5nZVRvUHJp
bnQpOgorICAgICAgICAoV2ViQ29yZTo6aW50ZXJuYWxFcnJvcik6CisgICAgICAgICogcGxhdGZv
cm0vdW5peC9FcnJvcnNVbml4Lmg6IFJlbmFtZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ndGsvRXJyb3JzR3RrLmguCisKIDIwMTYtMDgtMTIgIFBoaWxpcHBlIE5vcm1hbmQgIDxwbm9y
bWFuZEBpZ2FsaWEuY29tPgogCiAgICAgICAgIFtHU3RyZWFtZXJdIFBlcmZvcm1hbmNlIHByb2Js
ZW1zIHdpdGggYmlnZ2VyIHZpZGVvIHJlc29sdXRpb24gaW4gdGhlIHdlYnJ0YyBtZWRpYSBwbGF5
ZXIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJL
aXQvbWFjL0NoYW5nZUxvZwppbmRleCBjYzYwNjVhZGU3ZmJjYTk0MWQ0NzJjODA1MzQ1Mjc4OGFm
NTg1N2Y3Li4yY2UyZmRhZWRmMzc1ZGEzZWNhMDMyNTA3YzFlOWIxZTgxNmE1YzU4IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9tYWMv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMzMgQEAKKzIwMTYtMDUtMjAgIENsYXVkaW8gU2FhdmVkcmEg
IDxjc2FhdmVkcmFAaWdhbGlhLmNvbT4KKworICAgICAgICBVbmlmeWluZyBFcnJvcnMvV2ViRXJy
b3JzIGludG8gV2ViQ29yZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MTU2OTc0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgRnJhbWVMb2FkZXJDbGllbnQgZXJyb3IgbWV0aG9kcyBpbiBXZWJDb3JlIGFuZCBX
ZWJFcnJvcnMgaW4gV0syIGFyZQorICAgICAgICByZWR1bmRhbnQuIEZ1cnRoZXJtb3JlLCBGcmFt
ZUxvYWRlckNsaWVudCBlcnJvciBtZXRob2RzIGRvIG5vdCBkZXBlbmQKKyAgICAgICAgaW4gdGhl
IGxvYWRlciBjbGllbnQgaW5zdGFuY2UgYXQgYWxsLgorCisgICAgICAgIFJlbW92ZSB0aGUgZXJy
b3IgbWV0aG9kcyBmcm9tIEZyYW1lTG9hZGVyQ2xpZW50IGFuZCBhZG9wdCB0aGUgV2ViRXJyb3Jz
CisgICAgICAgIGZyb20gV0syIGludG8gV2ViQ29yZSwgc3RhbmRhbG9uZSBtZXRob2RzLiBNb3Zl
IHRoZSBFRkwsIEdUSywgYW5kIE1hYyBpbXBsZW1lbnRhdGlvbnMKKyAgICAgICAgdG8gV2ViQ29y
ZS9wbGF0Zm9ybSwgYW5kIHVwZGF0ZSB0aGUgY29kZSBldmVyeXdoZXJlIGFjY29yZGluZ2x5Lgor
CisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuaDoKKyAgICAg
ICAgKiBXZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5tbToKKyAgICAgICAgKFdl
YkZyYW1lTG9hZGVyQ2xpZW50OjpjYW5jZWxsZWRFcnJvcik6IERlbGV0ZWQuCisgICAgICAgIChX
ZWJGcmFtZUxvYWRlckNsaWVudDo6YmxvY2tlZEVycm9yKTogRGVsZXRlZC4KKyAgICAgICAgKFdl
YkZyYW1lTG9hZGVyQ2xpZW50OjpibG9ja2VkQnlDb250ZW50QmxvY2tlckVycm9yKTogRGVsZXRl
ZC4KKyAgICAgICAgKFdlYkZyYW1lTG9hZGVyQ2xpZW50OjpjYW5ub3RTaG93VVJMRXJyb3IpOiBE
ZWxldGVkLgorICAgICAgICAoV2ViRnJhbWVMb2FkZXJDbGllbnQ6OmludGVycnVwdGVkRm9yUG9s
aWN5Q2hhbmdlRXJyb3IpOiBEZWxldGVkLgorICAgICAgICAoV2ViRnJhbWVMb2FkZXJDbGllbnQ6
OmNhbm5vdFNob3dNSU1FVHlwZUVycm9yKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkZyYW1lTG9h
ZGVyQ2xpZW50OjpmaWxlRG9lc05vdEV4aXN0RXJyb3IpOiBEZWxldGVkLgorICAgICAgICAoV2Vi
RnJhbWVMb2FkZXJDbGllbnQ6OnBsdWdpbldpbGxIYW5kbGVMb2FkRXJyb3IpOiBEZWxldGVkLgor
ICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQubW06Cisg
ICAgICAgIChXZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0OjpibG9ja2VkRXJyb3IpOgorICAgICAg
ICAqIFdlYlZpZXcvV2ViSFRNTFJlcHJlc2VudGF0aW9uLm1tOgorICAgICAgICAoLVtXZWJIVE1M
UmVwcmVzZW50YXRpb24gcmVjZWl2ZWREYXRhOndpdGhEYXRhU291cmNlOl0pOgorCiAyMDE2LTA4
LTExICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CiAKICAgICAgICAgUmVncmVzc2lv
bihyMjA0MjY4KTogTWFpbCBjcmFzaGVzIHdoZW4gdHJ5aW5nIHRvIGNvbXBvc2UgYW4gZW1haWwK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0No
YW5nZUxvZwppbmRleCAzOTRjYmNmY2IyYmExNTUwMjliYTQyYTcwZmM0YzIxNGQzYzQ0ZDUwLi42
OGYwNmYzNWRlYzg5YjM3MjEwODMxOTA0YzFjMzJjMTJiM2ZhZTM2IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0x
LDMgKzEsOTMgQEAKKzIwMTYtMDUtMjAgIENsYXVkaW8gU2FhdmVkcmEgIDxjc2FhdmVkcmFAaWdh
bGlhLmNvbT4KKworICAgICAgICBVbmlmeWluZyBFcnJvcnMvV2ViRXJyb3JzIGludG8gV2ViQ29y
ZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTU2OTc0
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgRnJhbWVM
b2FkZXJDbGllbnQgZXJyb3IgbWV0aG9kcyBpbiBXZWJDb3JlIGFuZCBXZWJFcnJvcnMgaW4gV0sy
IGFyZQorICAgICAgICByZWR1bmRhbnQuIEZ1cnRoZXJtb3JlLCBGcmFtZUxvYWRlckNsaWVudCBl
cnJvciBtZXRob2RzIGRvIG5vdCBkZXBlbmQKKyAgICAgICAgaW4gdGhlIGxvYWRlciBjbGllbnQg
aW5zdGFuY2UgYXQgYWxsLgorCisgICAgICAgIFJlbW92ZSB0aGUgZXJyb3IgbWV0aG9kcyBmcm9t
IEZyYW1lTG9hZGVyQ2xpZW50IGFuZCBhZG9wdCB0aGUgV2ViRXJyb3JzCisgICAgICAgIGZyb20g
V0syIGludG8gV2ViQ29yZSwgc3RhbmRhbG9uZSBtZXRob2RzLiBNb3ZlIHRoZSBFRkwsIEdUSywg
YW5kIE1hYyBpbXBsZW1lbnRhdGlvbnMKKyAgICAgICAgdG8gV2ViQ29yZS9wbGF0Zm9ybSwgYW5k
IHVwZGF0ZSB0aGUgY29kZSBldmVyeXdoZXJlIGFjY29yZGluZ2x5LgorCisgICAgICAgICogTmV0
d29ya1Byb2Nlc3MvRG93bmxvYWRzL2VmbC9Eb3dubG9hZFNvdXBFcnJvcnNFZmwuY3BwOiBSZW1v
dmVkLgorICAgICAgICAoV2ViS2l0OjpwbGF0Zm9ybURvd25sb2FkTmV0d29ya0Vycm9yKTogRGVs
ZXRlZC4KKyAgICAgICAgKFdlYktpdDo6cGxhdGZvcm1Eb3dubG9hZERlc3RpbmF0aW9uRXJyb3Ip
OiBEZWxldGVkLgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL0Rvd25sb2Fkcy9ndGsvRG93bmxv
YWRTb3VwRXJyb3JzR3RrLmNwcDoKKyAgICAgICAgKFdlYktpdDo6cGxhdGZvcm1Eb3dubG9hZE5l
dHdvcmtFcnJvcik6IERlbGV0ZWQuCisgICAgICAgIChXZWJLaXQ6OnBsYXRmb3JtRG93bmxvYWRE
ZXN0aW5hdGlvbkVycm9yKTogRGVsZXRlZC4KKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9Eb3du
bG9hZHMvc291cC9Eb3dubG9hZFNvdXBFcnJvcnMuY3BwOiBSZW5hbWVkIGZyb20gU291cmNlL1dl
YktpdDIvTmV0d29ya1Byb2Nlc3MvRG93bmxvYWRzL2d0ay9Eb3dubG9hZFNvdXBFcnJvcnNHdGsu
Y3BwLgorICAgICAgICAoV2ViS2l0OjpwbGF0Zm9ybURvd25sb2FkTmV0d29ya0Vycm9yKToKKyAg
ICAgICAgKFdlYktpdDo6cGxhdGZvcm1Eb3dubG9hZERlc3RpbmF0aW9uRXJyb3IpOgorICAgICAg
ICAqIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtMb2FkLmNwcDoKKyAgICAgICAgKFdlYktpdDo6TmV0
d29ya0xvYWQ6Ondhc0Jsb2NrZWQpOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrTG9hZDo6Y2Fu
bm90U2hvd1VSTCk6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvbWFjL1JlbW90ZU5ldHdvcmtp
bmdDb250ZXh0Lm1tOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVOZXR3b3JraW5nQ29udGV4dDo6
YmxvY2tlZEVycm9yKToKKyAgICAgICAgKiBQbGF0Zm9ybUVmbC5jbWFrZToKKyAgICAgICAgKiBQ
bGF0Zm9ybUdUSy5jbWFrZToKKyAgICAgICAgKiBQbGF0Zm9ybU1hYy5jbWFrZToKKyAgICAgICAg
KiBTaGFyZWQvQVBJL0FQSUVycm9yLmNwcDoKKyAgICAgICAgKEFQSTo6RXJyb3I6OndlYktpdEVy
cm9yRG9tYWluKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2VmbC9ld2tfZXJyb3IuY3BwOgor
ICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdERvd25sb2FkLmNwcDoKKyAgICAgICAg
KiBVSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRFcnJvci5jcHA6CisgICAgICAgICogVUlQcm9jZXNz
L0FQSS9ndGsvV2ViS2l0UHJpdmF0ZS5jcHA6CisgICAgICAgICogVUlQcm9jZXNzL05ldHdvcmsv
Q3VzdG9tUHJvdG9jb2xzL3NvdXAvV2ViU291cEN1c3RvbVByb3RvY29sUmVxdWVzdE1hbmFnZXIu
Y3BwOgorICAgICAgICAqIFdlYktpdDIueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAg
ICAgKiBXZWJQcm9jZXNzL05ldHdvcmsvV2ViTG9hZGVyU3RyYXRlZ3kuY3BwOgorICAgICAgICAq
IFdlYlByb2Nlc3MvTmV0d29yay9XZWJSZXNvdXJjZUxvYWRlci5jcHA6CisgICAgICAgICogV2Vi
UHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJFcnJvcnMuaDogUmVtb3ZlZC4KKyAgICAgICAgKiBX
ZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmNwcDoKKyAgICAg
ICAgKFdlYktpdDo6V2ViRnJhbWVMb2FkZXJDbGllbnQ6OnNob3VsZEZhbGxCYWNrKToKKyAgICAg
ICAgKFdlYktpdDo6V2ViRnJhbWVMb2FkZXJDbGllbnQ6OmNhbmNlbGxlZEVycm9yKTogRGVsZXRl
ZC4KKyAgICAgICAgKFdlYktpdDo6V2ViRnJhbWVMb2FkZXJDbGllbnQ6OmJsb2NrZWRFcnJvcik6
IERlbGV0ZWQuCisgICAgICAgIChXZWJLaXQ6OldlYkZyYW1lTG9hZGVyQ2xpZW50OjpibG9ja2Vk
QnlDb250ZW50QmxvY2tlckVycm9yKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYktpdDo6V2ViRnJh
bWVMb2FkZXJDbGllbnQ6OmNhbm5vdFNob3dVUkxFcnJvcik6IERlbGV0ZWQuCisgICAgICAgIChX
ZWJLaXQ6OldlYkZyYW1lTG9hZGVyQ2xpZW50OjppbnRlcnJ1cHRlZEZvclBvbGljeUNoYW5nZUVy
cm9yKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYktpdDo6V2ViRnJhbWVMb2FkZXJDbGllbnQ6OmNh
bm5vdFNob3dNSU1FVHlwZUVycm9yKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYktpdDo6V2ViRnJh
bWVMb2FkZXJDbGllbnQ6OmZpbGVEb2VzTm90RXhpc3RFcnJvcik6IERlbGV0ZWQuCisgICAgICAg
IChXZWJLaXQ6OldlYkZyYW1lTG9hZGVyQ2xpZW50OjpwbHVnaW5XaWxsSGFuZGxlTG9hZEVycm9y
KTogRGVsZXRlZC4KKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1l
TG9hZGVyQ2xpZW50Lmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJQ
bGF0Zm9ybVN0cmF0ZWdpZXMuY3BwOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBv
cnQvZWZsL1dlYkVycm9yc0VmbC5jcHA6IFJlbW92ZWQuCisgICAgICAgIChXZWJLaXQ6OmNhbmNl
bGxlZEVycm9yKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYktpdDo6YmxvY2tlZEVycm9yKTogRGVs
ZXRlZC4KKyAgICAgICAgKFdlYktpdDo6YmxvY2tlZEJ5Q29udGVudEJsb2NrZXJFcnJvcik6IERl
bGV0ZWQuCisgICAgICAgIChXZWJLaXQ6OmNhbm5vdFNob3dVUkxFcnJvcik6IERlbGV0ZWQuCisg
ICAgICAgIChXZWJLaXQ6OmludGVycnVwdGVkRm9yUG9saWN5Q2hhbmdlRXJyb3IpOiBEZWxldGVk
LgorICAgICAgICAoV2ViS2l0OjpjYW5ub3RTaG93TUlNRVR5cGVFcnJvcik6IERlbGV0ZWQuCisg
ICAgICAgIChXZWJLaXQ6OmZpbGVEb2VzTm90RXhpc3RFcnJvcik6IERlbGV0ZWQuCisgICAgICAg
IChXZWJLaXQ6OnBsdWdpbldpbGxIYW5kbGVMb2FkRXJyb3IpOiBEZWxldGVkLgorICAgICAgICAo
V2ViS2l0OjppbnRlcm5hbEVycm9yKTogRGVsZXRlZC4KKyAgICAgICAgKiBXZWJQcm9jZXNzL1dl
YkNvcmVTdXBwb3J0L2d0ay9XZWJFcnJvcnNHdGsuY3BwOiBSZW1vdmVkLgorICAgICAgICAoV2Vi
S2l0OjpjYW5jZWxsZWRFcnJvcik6IERlbGV0ZWQuCisgICAgICAgIChXZWJLaXQ6OmJsb2NrZWRF
cnJvcik6IERlbGV0ZWQuCisgICAgICAgIChXZWJLaXQ6OmJsb2NrZWRCeUNvbnRlbnRCbG9ja2Vy
RXJyb3IpOiBEZWxldGVkLgorICAgICAgICAoV2ViS2l0OjpjYW5ub3RTaG93VVJMRXJyb3IpOiBE
ZWxldGVkLgorICAgICAgICAoV2ViS2l0OjppbnRlcnJ1cHRlZEZvclBvbGljeUNoYW5nZUVycm9y
KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYktpdDo6Y2Fubm90U2hvd01JTUVUeXBlRXJyb3IpOiBE
ZWxldGVkLgorICAgICAgICAoV2ViS2l0OjpmaWxlRG9lc05vdEV4aXN0RXJyb3IpOiBEZWxldGVk
LgorICAgICAgICAoV2ViS2l0OjpwbHVnaW5XaWxsSGFuZGxlTG9hZEVycm9yKTogRGVsZXRlZC4K
KyAgICAgICAgKFdlYktpdDo6aW50ZXJuYWxFcnJvcik6IERlbGV0ZWQuCisgICAgICAgICogV2Vi
UHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9tYWMvV2ViRXJyb3JzTWFjLm1tOgorICAgICAgICAoV2Vi
S2l0OjpjcmVhdGVOU0Vycm9yKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYktpdDo6Y2FuY2VsbGVk
RXJyb3IpOiBEZWxldGVkLgorICAgICAgICAoV2ViS2l0OjpmaWxlRG9lc05vdEV4aXN0RXJyb3Ip
OiBEZWxldGVkLgorICAgICAgICAoV2ViS2l0OjpibG9ja2VkRXJyb3IpOiBEZWxldGVkLgorICAg
ICAgICAoV2ViS2l0OjpibG9ja2VkQnlDb250ZW50QmxvY2tlckVycm9yKTogRGVsZXRlZC4KKyAg
ICAgICAgKFdlYktpdDo6Y2Fubm90U2hvd1VSTEVycm9yKTogRGVsZXRlZC4KKyAgICAgICAgKFdl
YktpdDo6aW50ZXJydXB0ZWRGb3JQb2xpY3lDaGFuZ2VFcnJvcik6IERlbGV0ZWQuCisgICAgICAg
IChXZWJLaXQ6OmNhbm5vdFNob3dNSU1FVHlwZUVycm9yKTogRGVsZXRlZC4KKyAgICAgICAgKFdl
YktpdDo6cGx1Z2luV2lsbEhhbmRsZUxvYWRFcnJvcik6IERlbGV0ZWQuCisgICAgICAgIChXZWJL
aXQ6OmludGVybmFsRXJyb3IpOiBEZWxldGVkLgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29y
ZVN1cHBvcnQvbWFjL1dlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQubW06CisgICAgICAgIChXZWJL
aXQ6OldlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQ6OmJsb2NrZWRFcnJvcik6CisgICAgICAgICog
V2ViUHJvY2Vzcy9XZWJQYWdlL2d0ay9XZWJQcmludE9wZXJhdGlvbkd0ay5jcHA6CisKIDIwMTYt
MDgtMTEgIEJyYWR5IEVpZHNvbiAgPGJlaWRzb25AYXBwbGUuY29tPgogCiAgICAgICAgIFtXSzJd
IERvbid0IG1vbml0b3IgZ2FtZXBhZHMgYXQgYWxsIHVubGVzcyBhbiBpbnRlcmVzdGVkIFdlYlBh
Z2VQcm94eSBpcyBpbiB0aGUgYWN0aXZlIHdpbmRvdy4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL0NNYWtlTGlzdHMudHh0IGIvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKaW5kZXgg
M2RlYTA0OWQ2OTFkOWRhN2FmMTJmNjNhZWEzZWMwNWRjYzM1YTA5MS4uYzIwNDVhYWRhYmJlYTQw
Nzc5MmQzMmNkYzg4NjU0ZGQ1NDYzNGM0NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ01h
a2VMaXN0cy50eHQKKysrIGIvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKQEAgLTIxMjUs
NiArMjEyNSw3IEBAIHNldChXZWJDb3JlX1NPVVJDRVMKICAgICBwbGF0Zm9ybS9EaXNwbGF5U2xl
ZXBEaXNhYmxlci5jcHAKICAgICBwbGF0Zm9ybS9EcmFnRGF0YS5jcHAKICAgICBwbGF0Zm9ybS9E
cmFnSW1hZ2UuY3BwCisgICAgcGxhdGZvcm0vRXJyb3JzLmNwcAogICAgIHBsYXRmb3JtL0V2ZW50
VHJhY2tpbmdSZWdpb25zLmNwcAogICAgIHBsYXRmb3JtL0ZpbGVDaG9vc2VyLmNwcAogICAgIHBs
YXRmb3JtL0ZpbGVTdHJlYW0uY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9QbGF0Zm9y
bUVmbC5jbWFrZSBiL1NvdXJjZS9XZWJDb3JlL1BsYXRmb3JtRWZsLmNtYWtlCmluZGV4IGU3YjA4
Nzc0OGM1ZjFlZGQ2Mjk3MDhjNGVkODI3ODhjNDgzOTBlY2UuLjdiOThhNzZkYzdiMGMxMTQ4Mzc4
MWRhOGZlNmM3NzVmMWFmYzc1YmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1BsYXRmb3Jt
RWZsLmNtYWtlCisrKyBiL1NvdXJjZS9XZWJDb3JlL1BsYXRmb3JtRWZsLmNtYWtlCkBAIC05OCw3
ICs5OCw2IEBAIGxpc3QoQVBQRU5EIFdlYkNvcmVfU09VUkNFUwogICAgIHBsYXRmb3JtL2VmbC9F
ZmxJbnNwZWN0b3JVdGlsaXRpZXMuY3BwCiAgICAgcGxhdGZvcm0vZWZsL0VmbEtleWJvYXJkVXRp
bGl0aWVzLmNwcAogICAgIHBsYXRmb3JtL2VmbC9FZmxTY3JlZW5VdGlsaXRpZXMuY3BwCi0gICAg
cGxhdGZvcm0vZWZsL0Vycm9yc0VmbC5jcHAKICAgICBwbGF0Zm9ybS9lZmwvRXZlbnRMb29wRWZs
LmNwcAogICAgIHBsYXRmb3JtL2VmbC9GaWxlU3lzdGVtRWZsLmNwcAogICAgIHBsYXRmb3JtL2Vm
bC9Mb2NhbGl6ZWRTdHJpbmdzRWZsLmNwcApAQCAtMjIwLDYgKzIxOSw3IEBAIGxpc3QoQVBQRU5E
IFdlYkNvcmVfU09VUkNFUwogCiAgICAgcGxhdGZvcm0vdGV4dC9oeXBoZW4vSHlwaGVuYXRpb25M
aWJIeXBoZW4uY3BwCiAKKyAgICBwbGF0Zm9ybS91bml4L0Vycm9yc1VuaXguY3BwCiAgICAgcGxh
dGZvcm0vdW5peC9Mb2dnaW5nVW5peC5jcHAKIAogICAgIHJlbmRlcmluZy9SZW5kZXJUaGVtZUVm
bC5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1BsYXRmb3JtR1RLLmNtYWtlIGIvU291
cmNlL1dlYkNvcmUvUGxhdGZvcm1HVEsuY21ha2UKaW5kZXggYTY5ZDAyNjA3ZmMzOTc2YTNkODE0
YjNmMDY5ZGRhMjJkZDMwMGVjNC4uZjJjZjY0ODU4NmUyNjEyODM1Yzc4MWU1NjNkNjdjYmNlMWVh
YmJkMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvUGxhdGZvcm1HVEsuY21ha2UKKysrIGIv
U291cmNlL1dlYkNvcmUvUGxhdGZvcm1HVEsuY21ha2UKQEAgLTE0Nyw3ICsxNDcsNiBAQCBsaXN0
KEFQUEVORCBXZWJDb3JlX1NPVVJDRVMKICAgICBwbGF0Zm9ybS9ncmFwaGljcy94MTEvUGxhdGZv
cm1EaXNwbGF5WDExLmNwcAogICAgIHBsYXRmb3JtL2dyYXBoaWNzL3gxMS9YVW5pcXVlUmVzb3Vy
Y2UuY3BwCiAKLSAgICBwbGF0Zm9ybS9ndGsvRXJyb3JzR3RrLmNwcAogICAgIHBsYXRmb3JtL2d0
ay9NSU1FVHlwZVJlZ2lzdHJ5R3RrLmNwcAogICAgIHBsYXRmb3JtL2d0ay9TY3JvbGxBbmltYXRv
ckd0ay5jcHAKICAgICBwbGF0Zm9ybS9ndGsvVGVtcG9yYXJ5TGlua1N0dWJzLmNwcApAQCAtMTg4
LDYgKzE4Nyw3IEBAIGxpc3QoQVBQRU5EIFdlYkNvcmVfU09VUkNFUwogCiAgICAgcGxhdGZvcm0v
dGV4dC9oeXBoZW4vSHlwaGVuYXRpb25MaWJIeXBoZW4uY3BwCiAKKyAgICBwbGF0Zm9ybS91bml4
L0Vycm9yc1VuaXguY3BwCiAgICAgcGxhdGZvcm0vdW5peC9Mb2dnaW5nVW5peC5jcHAKICkKIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvUGxhdGZvcm1NYWMuY21ha2UgYi9Tb3VyY2UvV2Vi
Q29yZS9QbGF0Zm9ybU1hYy5jbWFrZQppbmRleCA3NTUyY2Q3NWNkMTVjOGJmNjFhZjdkMmEwZWE5
ZmI5MTdmZTA3ZTM5Li5mZGQxNDQyYTUzM2MzOTRkOTViMWQ2NzMzODc5Nzk3ZWU0YzE0MDJjIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9QbGF0Zm9ybU1hYy5jbWFrZQorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9QbGF0Zm9ybU1hYy5jbWFrZQpAQCAtNTg1LDYgKzU4NSw3IEBAIGxpc3QoQVBQRU5E
IFdlYkNvcmVfU09VUkNFUwogICAgIHBsYXRmb3JtL21hYy9DdXJzb3JNYWMubW0KICAgICBwbGF0
Zm9ybS9tYWMvRHJhZ0RhdGFNYWMubW0KICAgICBwbGF0Zm9ybS9tYWMvRHJhZ0ltYWdlTWFjLm1t
CisgICAgcGxhdGZvcm0vbWFjL0Vycm9yc01hYy5tbQogICAgIHBsYXRmb3JtL21hYy9FdmVudExv
b3BNYWMubW0KICAgICBwbGF0Zm9ybS9tYWMvRmlsZVN5c3RlbU1hYy5tbQogICAgIHBsYXRmb3Jt
L21hYy9ISURHYW1lcGFkLmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvUGxhdGZvcm1X
aW4uY21ha2UgYi9Tb3VyY2UvV2ViQ29yZS9QbGF0Zm9ybVdpbi5jbWFrZQppbmRleCAxNGVmYzQz
YmQ3YWZlOTFkMWYxYmYwOWQ5MGQwMWY1N2RjMTdkYThiLi45Mjk5MWFiNjNlYTc1MmRmMWIwYzdk
ZDZhNmM0NjI0Y2I1ODFhNzJkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9QbGF0Zm9ybVdp
bi5jbWFrZQorKysgYi9Tb3VyY2UvV2ViQ29yZS9QbGF0Zm9ybVdpbi5jbWFrZQpAQCAtMTE1LDYg
KzExNSw3IEBAIGxpc3QoQVBQRU5EIFdlYkNvcmVfU09VUkNFUwogICAgIHBsYXRmb3JtL3dpbi9E
ZWZXbmRQcm9jV2luZG93Q2xhc3MuY3BwCiAgICAgcGxhdGZvcm0vd2luL0RyYWdEYXRhV2luLmNw
cAogICAgIHBsYXRmb3JtL3dpbi9EcmFnSW1hZ2VXaW4uY3BwCisgICAgcGxhdGZvcm0vd2luL0Vy
cm9yc1dpbi5jcHAKICAgICBwbGF0Zm9ybS93aW4vRXZlbnRMb29wV2luLmNwcAogICAgIHBsYXRm
b3JtL3dpbi9GaWxlU3lzdGVtV2luLmNwcAogICAgIHBsYXRmb3JtL3dpbi9HRElPYmplY3RDb3Vu
dGVyLmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJv
amVjdC5wYnhwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5w
Ynhwcm9qCmluZGV4IDc3NDcwMDgzNjdmZTY1MGRiODZkZTRkMDkxOGNhMTQ0OWM4YTk3YzYuLjgz
YzUwZGEwMjNkMjNjM2ZkYjk1MDU2NTQzODg2MWMwNDAyOWY3ZWYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTIwMTYsNiArMjAx
Niw3IEBACiAJCTUxMEQ0QTM2MTAzMTY1RUUwMDQ5RUE1NCAvKiBTb2NrZXRTdHJlYW1IYW5kbGVC
YXNlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUx
MEQ0QTMwMTAzMTY1RUUwMDQ5RUE1NCAvKiBTb2NrZXRTdHJlYW1IYW5kbGVCYXNlLmNwcCAqLzsg
fTsKIAkJNTEwRDRBMzcxMDMxNjVFRTAwNDlFQTU0IC8qIFNvY2tldFN0cmVhbUhhbmRsZUJhc2Uu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxMEQ0QTMx
MTAzMTY1RUUwMDQ5RUE1NCAvKiBTb2NrZXRTdHJlYW1IYW5kbGVCYXNlLmggKi87IHNldHRpbmdz
ID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJNTEwRDRBMzgxMDMxNjVFRTAw
NDlFQTU0IC8qIFNvY2tldFN0cmVhbUhhbmRsZUNsaWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTEwRDRBMzIxMDMxNjVFRTAwNDlFQTU0IC8qIFNv
Y2tldFN0cmVhbUhhbmRsZUNsaWVudC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFBy
aXZhdGUsICk7IH07IH07CisJCTUxMTNFNkQ2MUNFMEM3QTQwMDJEOTU2MSAvKiBFcnJvcnMuY3Bw
IGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTExM0U2RDUx
Q0UwQzc5MDAwMkQ5NTYxIC8qIEVycm9ycy5jcHAgKi87IH07CiAJCTUxMUVDMTI3MUM1MEFBQ0Ew
MDMyRjk4MyAvKiBJREJTZXJpYWxpemF0aW9uLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxMUVDMTI1MUM1MEFBNTcwMDMyRjk4MyAvKiBJREJTZXJp
YWxpemF0aW9uLmNwcCAqLzsgfTsKIAkJNTExRUMxMjgxQzUwQUFDQTAwMzJGOTgzIC8qIElEQlNl
cmlhbGl6YXRpb24uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDUxMUVDMTI2MUM1MEFBNTcwMDMyRjk4MyAvKiBJREJTZXJpYWxpemF0aW9uLmggKi87IH07
CiAJCTUxMUVDMTJCMUM1MEFCQkYwMDMyRjk4MyAvKiBTUUxpdGVJREJUcmFuc2FjdGlvbi5jcHAg
aW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MTFFQzEyOTFD
NTBBQkJBMDAzMkY5ODMgLyogU1FMaXRlSURCVHJhbnNhY3Rpb24uY3BwICovOyB9OwpAQCAtMjEx
Niw2ICsyMTE3LDggQEAKIAkJNTE2MTAzQjAxQ0FEQkE3QTAwMTZCNEM3IC8qIElEQlZhbHVlLmNw
cCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxNjEwM0FE
MUNBREI5QTMwMDE2QjRDNyAvKiBJREJWYWx1ZS5jcHAgKi87IH07CiAJCTUxNjJDN0Y0MTFGNzdF
RkIwMDYxMkVGRSAvKiBTY2hlbWVSZWdpc3RyeS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MTYyQzdGMjExRjc3RUZBMDA2MTJFRkUgLyogU2NoZW1l
UmVnaXN0cnkuY3BwICovOyB9OwogCQk1MTYyQzdGNTExRjc3RUZCMDA2MTJFRkUgLyogU2NoZW1l
UmVnaXN0cnkuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDUxNjJDN0YzMTFGNzdFRkIwMDYxMkVGRSAvKiBTY2hlbWVSZWdpc3RyeS5oICovOyBzZXR0aW5n
cyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCTUxNjQ3NjA0MUNFMDkwNUEw
MDkxRjBBOSAvKiBFcnJvcnMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDUxNjQ3NjAzMUNFMDkwMUMwMDkxRjBBOSAvKiBFcnJvcnMuaCAqLzsgc2V0dGlu
Z3MgPSB7QVRUUklCVVRFUyA9IChQdWJsaWMsICk7IH07IH07CisJCTUxNjQ3NjA2MUNFMDkwQjEw
MDkxRjBBOSAvKiBFcnJvcnNNYWMubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA1MTY0NzYwNTFDRTA5MDkxMDA5MUYwQTkgLyogRXJyb3JzTWFjLm1tICov
OyB9OwogCQk1MTY5NTM5NzEzMjlBM0M4MDBCOTJEMDQgLyogSWNvbkRhdGFiYXNlQmFzZS5jcHAg
aW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MTY5NTM5NTEz
MjlBM0M4MDBCOTJEMDQgLyogSWNvbkRhdGFiYXNlQmFzZS5jcHAgKi87IH07CiAJCTUxNjk1Mzk4
MTMyOUEzQzgwMEI5MkQwNCAvKiBJY29uRGF0YWJhc2VCYXNlLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MTY5NTM5NjEzMjlBM0M4MDBCOTJEMDQgLyog
SWNvbkRhdGFiYXNlQmFzZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUs
ICk7IH07IH07CiAJCTUxNkJCNzk0MENFOTFFNjgwMDUxMkY3OSAvKiBKU1RyZWVXYWxrZXJDdXN0
b20uY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTE2
QkI3OTIwQ0U5MUU2ODAwNTEyRjc5IC8qIEpTVHJlZVdhbGtlckN1c3RvbS5jcHAgKi87IH07CkBA
IC05MzQyLDYgKzkzNDUsNyBAQAogCQk1MTBENEEzMDEwMzE2NUVFMDA0OUVBNTQgLyogU29ja2V0
U3RyZWFtSGFuZGxlQmFzZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGgg
PSBTb2NrZXRTdHJlYW1IYW5kbGVCYXNlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJNTEwRDRBMzExMDMxNjVFRTAwNDlFQTU0IC8qIFNvY2tldFN0cmVhbUhhbmRsZUJhc2UuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU29ja2V0U3RyZWFtSGFuZGxlQmFzZS5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1MTBENEEzMjEwMzE2NUVFMDA0OUVBNTQg
LyogU29ja2V0U3RyZWFtSGFuZGxlQ2xpZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IFNvY2tldFN0cmVhbUhhbmRsZUNsaWVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OworCQk1MTEzRTZENTFDRTBDNzkwMDAyRDk1NjEgLyogRXJyb3JzLmNwcCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEVycm9ycy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCTUxMUVDMTI1MUM1MEFBNTcwMDMyRjk4MyAvKiBJREJTZXJpYWxpemF0aW9u
LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IElEQlNlcmlhbGl6YXRp
b24uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1MTFFQzEyNjFDNTBBQTU3MDAz
MkY5ODMgLyogSURCU2VyaWFsaXphdGlvbi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBJREJTZXJpYWxpemF0aW9uLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTUx
MUVDMTI5MUM1MEFCQkEwMDMyRjk4MyAvKiBTUUxpdGVJREJUcmFuc2FjdGlvbi5jcHAgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBTUUxpdGVJREJUcmFuc2FjdGlvbi5jcHA7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC05NDY5LDYgKzk0NzMsOCBAQAogCQk1MTY0
NUI1MjFCOUY4ODlCMDBGNzg5Q0UgLyogSURCVmVyc2lvbkNoYW5nZUV2ZW50LmNwcCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IElEQlZlcnNpb25DaGFuZ2VFdmVudC5jcHA7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTUxNjQ1QjUzMUI5Rjg4OUIwMEY3ODlDRSAv
KiBJREJWZXJzaW9uQ2hhbmdlRXZlbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gSURCVmVyc2lvbkNoYW5nZUV2ZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CTUxNjQ1QjU0MUI5Rjg4RTgwMEY3ODlDRSAvKiBJREJDdXJzb3IuY3BwICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSURCQ3Vyc29yLmNwcDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKKwkJNTE2NDc2MDMxQ0UwOTAxQzAwOTFGMEE5IC8qIEVycm9ycy5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBFcnJvcnMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKKwkJNTE2NDc2MDUxQ0UwOTA5MTAwOTFGMEE5IC8qIEVycm9yc01hYy5tbSAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IEVycm9yc01hYy5tbTsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTE2OTUzOTUxMzI5QTNDODAwQjkyRDA0IC8qIEljb25EYXRh
YmFzZUJhc2UuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSWNvbkRh
dGFiYXNlQmFzZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTUxNjk1Mzk2MTMy
OUEzQzgwMEI5MkQwNCAvKiBJY29uRGF0YWJhc2VCYXNlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IEljb25EYXRhYmFzZUJhc2UuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJNTE2QkI3OTIwQ0U5MUU2ODAwNTEyRjc5IC8qIEpTVHJlZVdhbGtlckN1c3RvbS5jcHAg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU1RyZWVXYWxrZXJDdXN0b20u
Y3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTgwMDQsNiArMTgwMTAsNyBAQAog
CQkJCUE3OTU0NjNEMEI1QzRDODAwMDdCNDM4RiAvKiBEcmFnRGF0YU1hYy5tbSAqLywKIAkJCQlB
N0NGQjNENDBCN0VEMTE4MDA3MEMzMkQgLyogRHJhZ0ltYWdlTWFjLm1tICovLAogCQkJCUUxQkE2
NkYwMTc0MkJEODYwMEMyMDI1MSAvKiBEeW5hbWljTGlua2VySW50ZXJwb3NpbmcuaCAqLywKKwkJ
CQk1MTY0NzYwNTFDRTA5MDkxMDA5MUYwQTkgLyogRXJyb3JzTWFjLm1tICovLAogCQkJCTFDQTE5
RTAzMERDMjU1OTUwMDY1QTk5NCAvKiBFdmVudExvb3BNYWMubW0gKi8sCiAJCQkJNTE0QjNGNzUw
QzcyMjA1NTAwMDUzMERGIC8qIEZpbGVTeXN0ZW1NYWMubW0gKi8sCiAJCQkJOTM1QzQ3NkUwOUFD
NEQ3MzAwQTZBQUI0IC8qIEtleUV2ZW50TWFjLm1tICovLApAQCAtMjI1ODEsNiArMjI1ODgsOCBA
QAogCQkJCUE3QjZFNjlEMEIyOTFBOTYwMEQwNTI5RiAvKiBEcmFnRGF0YS5oICovLAogCQkJCUE3
Q0ZCM0NGMEI3RUQxMEEwMDcwQzMyRCAvKiBEcmFnSW1hZ2UuY3BwICovLAogCQkJCUE3Q0ZCM0Qw
MEI3RUQxMEEwMDcwQzMyRCAvKiBEcmFnSW1hZ2UuaCAqLywKKwkJCQk1MTEzRTZENTFDRTBDNzkw
MDAyRDk1NjEgLyogRXJyb3JzLmNwcCAqLywKKwkJCQk1MTY0NzYwMzFDRTA5MDFDMDA5MUYwQTkg
LyogRXJyb3JzLmggKi8sCiAJCQkJMUNBMTlFMTUwREMyNTVDQTAwNjVBOTk0IC8qIEV2ZW50TG9v
cC5oICovLAogCQkJCTI2MkVDNDFDMUQxMTBCMUYwMEJBNzhGQyAvKiBFdmVudFRyYWNraW5nUmVn
aW9ucy5jcHAgKi8sCiAJCQkJMjYyRUM0MTkxRDA3OEYzRDAwQkE3OEZDIC8qIEV2ZW50VHJhY2tp
bmdSZWdpb25zLmggKi8sCkBAIC0yNTQzMCw2ICsyNTQzOSw3IEBACiAJCQkJMkRFQzY2NTUxQzgy
RDA0MTAwOTk4NDZBIC8qIERPTUhUTUxNZWRpYUVsZW1lbnQuaCBpbiBIZWFkZXJzICovLAogCQkJ
CTg1QkE0RDEzMEFBNjg4NjgwMDg4MDUyRCAvKiBET01IVE1MTWVudUVsZW1lbnQuaCBpbiBIZWFk
ZXJzICovLAogCQkJCTg1OUE5QzREMEFBNUUzQkQwMEI2OTRCMiAvKiBET01IVE1MTWV0YUVsZW1l
bnQuaCBpbiBIZWFkZXJzICovLAorCQkJCTUxNjQ3NjA0MUNFMDkwNUEwMDkxRjBBOSAvKiBFcnJv
cnMuaCBpbiBIZWFkZXJzICovLAogCQkJCTg1RUNCRUY1MEFBNzYyNjkwMDU0NEYwQiAvKiBET01I
VE1MTW9kRWxlbWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJODVERjgxMkIwQUE3Nzg3MjAwNDg2
QUQ3IC8qIERPTUhUTUxPYmplY3RFbGVtZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQkxQTY3QkY2
QjFENEZFNDIzMDA0MTJBQzcgLyogRE9NSFRNTE9MaXN0RWxlbWVudC5oIGluIEhlYWRlcnMgKi8s
CkBAIC0yOTMxMSw2ICsyOTMyMSw3IEBACiAJCQkJRjUyQUQ1RTQxNTM0MjQ1RjAwNTlGQkU2IC8q
IEVtcHR5Q2xpZW50cy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk1MTVCRTE4RjFENTRGNUZCMDBE
RDdDNjggLyogRW1wdHlHYW1lcGFkUHJvdmlkZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJRkQz
MTYwOTIxMkIwMjZGNzAwQzFBMzU5IC8qIEVxdWFsUG93ZXJQYW5uZXIuY3BwIGluIFNvdXJjZXMg
Ki8sCisJCQkJNTE2NDc2MDYxQ0UwOTBCMTAwOTFGMEE5IC8qIEVycm9yc01hYy5tbSBpbiBTb3Vy
Y2VzICovLAogCQkJCTJFQ0Y3QUUxMTAxNjJCNTgwMDQyN0RFNyAvKiBFcnJvckV2ZW50LmNwcCBp
biBTb3VyY2VzICovLAogCQkJCTg1MDMxQjQxMEE0NEVGQzcwMEY5OTJFMCAvKiBFdmVudC5jcHAg
aW4gU291cmNlcyAqLywKIAkJCQk0MTM4RDMzNjEyNDQwNTQ4MDAzMjNEMzMgLyogRXZlbnRDb250
ZXh0LmNwcCBpbiBTb3VyY2VzICovLApAQCAtMzEyOTQsNiArMzEzMDUsNyBAQAogCQkJCTFGQzQw
RkI5MTY1NUNDQjYwMDQwRjI5RSAvKiBTdWJpbWFnZUNhY2hlV2l0aFRpbWVyLmNwcCBpbiBTb3Vy
Y2VzICovLAogCQkJCUY1NUIzREQzMTI1MUYxMkQwMDNFRjI2OSAvKiBTdWJtaXRJbnB1dFR5cGUu
Y3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJOTNFMjI3RTQwQUY1ODlBRDAwRDQ4MzI0IC8qIFN1YnJl
c291cmNlTG9hZGVyLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTUxMTNFNkQ2MUNFMEM3QTQwMDJE
OTU2MSAvKiBFcnJvcnMuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJN0UzN0VGMkUxMzM5MjA4ODAw
QjI5MjUwIC8qIFN1YnJlc291cmNlTG9hZGVyQ0YuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJN0U4
RkFEQzQxOTlBOTVCMTAwNzE0OTY4IC8qIFN1YnJlc291cmNlTG9hZGVyQ29jb2EubW0gaW4gU291
cmNlcyAqLywKIAkJCQk5M0IyRDgxODBGOTkyMEVFMDA2QUU2QjIgLyogU3VkZGVuVGVybWluYXRp
b24ubW0gaW4gU291cmNlcyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9E
b2N1bWVudExvYWRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRG9jdW1lbnRMb2FkZXIu
Y3BwCmluZGV4IDhiNzRkNjQxN2U0NjEwOTBkZDE2ZmQ4ZjYzZWU5M2YwNjJlODVjMjYuLmJjNmUz
ZWE5MDc5NjY0YmNjNjM2OTE1NmQwNWM4MDkwOGIxNjM1ZWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2xvYWRlci9Eb2N1bWVudExvYWRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9h
ZGVyL0RvY3VtZW50TG9hZGVyLmNwcApAQCAtNDEsNiArNDEsNyBAQAogI2luY2x1ZGUgIkRvY3Vt
ZW50LmgiCiAjaW5jbHVkZSAiRG9jdW1lbnRQYXJzZXIuaCIKICNpbmNsdWRlICJEb2N1bWVudFdy
aXRlci5oIgorI2luY2x1ZGUgIkVycm9ycy5oIgogI2luY2x1ZGUgIkV2ZW50LmgiCiAjaW5jbHVk
ZSAiRXZlbnROYW1lcy5oIgogI2luY2x1ZGUgIkV4dGVuc2lvblN0eWxlU2hlZXRzLmgiCkBAIC03
NjksNyArNzcwLDcgQEAgdm9pZCBEb2N1bWVudExvYWRlcjo6Y29udGludWVBZnRlckNvbnRlbnRQ
b2xpY3koUG9saWN5QWN0aW9uIHBvbGljeSkKICAgICBjYXNlIFBvbGljeURvd25sb2FkOiB7CiAg
ICAgICAgIC8vIG1fbWFpblJlc291cmNlIGNhbiBiZSBudWxsLCBlLmcuIHdoZW4gbG9hZGluZyBh
IHN1YnN0aXR1dGUgcmVzb3VyY2UgZnJvbSBhcHBsaWNhdGlvbiBjYWNoZS4KICAgICAgICAgaWYg
KCFtX21haW5SZXNvdXJjZSkgewotICAgICAgICAgICAgbWFpblJlY2VpdmVkRXJyb3IoZnJhbWVM
b2FkZXIoKS0+Y2xpZW50KCkuY2Fubm90U2hvd1VSTEVycm9yKG1fcmVxdWVzdCkpOworICAgICAg
ICAgICAgbWFpblJlY2VpdmVkRXJyb3IoY2Fubm90U2hvd1VSTEVycm9yKG1fcmVxdWVzdCkpOwog
ICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9CiAKQEAgLTg0OCw3ICs4NDksNyBAQCB2b2lk
IERvY3VtZW50TG9hZGVyOjpjb21taXRMb2FkKGNvbnN0IGNoYXIqIGRhdGEsIGludCBsZW5ndGgp
CiAKIFJlc291cmNlRXJyb3IgRG9jdW1lbnRMb2FkZXI6OmludGVycnVwdGVkRm9yUG9saWN5Q2hh
bmdlRXJyb3IoKSBjb25zdAogewotICAgIHJldHVybiBmcmFtZUxvYWRlcigpLT5jbGllbnQoKS5p
bnRlcnJ1cHRlZEZvclBvbGljeUNoYW5nZUVycm9yKHJlcXVlc3QoKSk7CisgICAgcmV0dXJuIFdl
YkNvcmU6OmludGVycnVwdGVkRm9yUG9saWN5Q2hhbmdlRXJyb3IocmVxdWVzdCgpKTsKIH0KIAog
dm9pZCBEb2N1bWVudExvYWRlcjo6c3RvcExvYWRpbmdGb3JQb2xpY3lDaGFuZ2UoKQpAQCAtMTUx
NiwxNCArMTUxNywxNCBAQCB2b2lkIERvY3VtZW50TG9hZGVyOjpzdGFydExvYWRpbmdNYWluUmVz
b3VyY2UoKQogCiAjaWYgRU5BQkxFKENPTlRFTlRfRVhURU5TSU9OUykKICAgICBpZiAobV9tYWlu
UmVzb3VyY2UgJiYgbV9tYWluUmVzb3VyY2UtPmVycm9yT2NjdXJyZWQoKSAmJiBtX2ZyYW1lLT5w
YWdlKCkgJiYgbV9tYWluUmVzb3VyY2UtPnJlc291cmNlRXJyb3IoKS5kb21haW4oKSA9PSBDb250
ZW50RXh0ZW5zaW9uczo6V2ViS2l0Q29udGVudEJsb2NrZXJEb21haW4pIHsKLSAgICAgICAgY2Fu
Y2VsTWFpblJlc291cmNlTG9hZChmcmFtZUxvYWRlcigpLT5ibG9ja2VkQnlDb250ZW50QmxvY2tl
ckVycm9yKG1fcmVxdWVzdCkpOworICAgICAgICBjYW5jZWxNYWluUmVzb3VyY2VMb2FkKFdlYkNv
cmU6OmJsb2NrZWRCeUNvbnRlbnRCbG9ja2VyRXJyb3IobV9yZXF1ZXN0KSk7CiAgICAgICAgIHJl
dHVybjsKICAgICB9CiAjZW5kaWYKIAogICAgIGlmICghbV9tYWluUmVzb3VyY2UpIHsKICAgICAg
ICAgaWYgKCFtX3JlcXVlc3QudXJsKCkuaXNWYWxpZCgpKSB7Ci0gICAgICAgICAgICBjYW5jZWxN
YWluUmVzb3VyY2VMb2FkKGZyYW1lTG9hZGVyKCktPmNsaWVudCgpLmNhbm5vdFNob3dVUkxFcnJv
cihtX3JlcXVlc3QpKTsKKyAgICAgICAgICAgIGNhbmNlbE1haW5SZXNvdXJjZUxvYWQoY2Fubm90
U2hvd1VSTEVycm9yKG1fcmVxdWVzdCkpOwogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9FbXB0eUNsaWVudHMuaCBiL1Nv
dXJjZS9XZWJDb3JlL2xvYWRlci9FbXB0eUNsaWVudHMuaAppbmRleCA5MzZhYzQ4NWE0N2NkODIx
YTJkNzg2OGUyZTcxNDFjNDgwNTMxNjM0Li5mOWVhZTlhOGVjYTM4NWE3MTA4YmNjNWMwZGYxOGVi
ODU0OTJhYzRhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRW1wdHlDbGllbnRz
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0VtcHR5Q2xpZW50cy5oCkBAIC0zMzEsMTkg
KzMzMSw2IEBAIHB1YmxpYzoKICAgICB2b2lkIGNvbW1pdHRlZExvYWQoRG9jdW1lbnRMb2FkZXIq
LCBjb25zdCBjaGFyKiwgaW50KSBvdmVycmlkZSB7IH0KICAgICB2b2lkIGZpbmlzaGVkTG9hZGlu
ZyhEb2N1bWVudExvYWRlciopIG92ZXJyaWRlIHsgfQogCi0gICAgUmVzb3VyY2VFcnJvciBjYW5j
ZWxsZWRFcnJvcihjb25zdCBSZXNvdXJjZVJlcXVlc3QmKSBvdmVycmlkZSB7IHJldHVybiBSZXNv
dXJjZUVycm9yKFJlc291cmNlRXJyb3I6OlR5cGU6OkNhbmNlbGxhdGlvbik7IH0KLSAgICBSZXNv
dXJjZUVycm9yIGJsb2NrZWRFcnJvcihjb25zdCBSZXNvdXJjZVJlcXVlc3QmKSBvdmVycmlkZSB7
IHJldHVybiB7IH07IH0KLSAgICBSZXNvdXJjZUVycm9yIGJsb2NrZWRCeUNvbnRlbnRCbG9ja2Vy
RXJyb3IoY29uc3QgUmVzb3VyY2VSZXF1ZXN0Jikgb3ZlcnJpZGUgeyByZXR1cm4geyB9OyB9Ci0g
ICAgUmVzb3VyY2VFcnJvciBjYW5ub3RTaG93VVJMRXJyb3IoY29uc3QgUmVzb3VyY2VSZXF1ZXN0
Jikgb3ZlcnJpZGUgeyByZXR1cm4geyB9OyB9Ci0gICAgUmVzb3VyY2VFcnJvciBpbnRlcnJ1cHRl
ZEZvclBvbGljeUNoYW5nZUVycm9yKGNvbnN0IFJlc291cmNlUmVxdWVzdCYpIG92ZXJyaWRlIHsg
cmV0dXJuIHsgfTsgfQotI2lmIEVOQUJMRShDT05URU5UX0ZJTFRFUklORykKLSAgICBSZXNvdXJj
ZUVycm9yIGJsb2NrZWRCeUNvbnRlbnRGaWx0ZXJFcnJvcihjb25zdCBSZXNvdXJjZVJlcXVlc3Qm
KSBvdmVycmlkZSB7IHJldHVybiB7IH07IH0KLSNlbmRpZgotCi0gICAgUmVzb3VyY2VFcnJvciBj
YW5ub3RTaG93TUlNRVR5cGVFcnJvcihjb25zdCBSZXNvdXJjZVJlc3BvbnNlJikgb3ZlcnJpZGUg
eyByZXR1cm4geyB9OyB9Ci0gICAgUmVzb3VyY2VFcnJvciBmaWxlRG9lc05vdEV4aXN0RXJyb3Io
Y29uc3QgUmVzb3VyY2VSZXNwb25zZSYpIG92ZXJyaWRlIHsgcmV0dXJuIHsgfTsgfQotICAgIFJl
c291cmNlRXJyb3IgcGx1Z2luV2lsbEhhbmRsZUxvYWRFcnJvcihjb25zdCBSZXNvdXJjZVJlc3Bv
bnNlJikgb3ZlcnJpZGUgeyByZXR1cm4geyB9OyB9Ci0KICAgICBib29sIHNob3VsZEZhbGxCYWNr
KGNvbnN0IFJlc291cmNlRXJyb3ImKSBvdmVycmlkZSB7IHJldHVybiBmYWxzZTsgfQogCiAgICAg
Ym9vbCBjYW5IYW5kbGVSZXF1ZXN0KGNvbnN0IFJlc291cmNlUmVxdWVzdCYpIGNvbnN0IG92ZXJy
aWRlIHsgcmV0dXJuIGZhbHNlOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIv
RnJhbWVMb2FkZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmNwcApp
bmRleCBlZmIwMWIwNjc4ODkwZjljNWM3MjFlMDlkNTZiYTQ0OWZhODgxODgxLi43M2M2NTE3ZmFi
OThhNjVmNjBhMDVmZjU4MGJkZmJkYmU4MTIzYjRjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9sb2FkZXIvRnJhbWVMb2FkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFt
ZUxvYWRlci5jcHAKQEAgLTU2LDYgKzU2LDcgQEAKICNpbmNsdWRlICJFZGl0b3IuaCIKICNpbmNs
dWRlICJFZGl0b3JDbGllbnQuaCIKICNpbmNsdWRlICJFbGVtZW50LmgiCisjaW5jbHVkZSAiRXJy
b3JzLmgiCiAjaW5jbHVkZSAiRXZlbnQuaCIKICNpbmNsdWRlICJFdmVudEhhbmRsZXIuaCIKICNp
bmNsdWRlICJFdmVudE5hbWVzLmgiCkBAIC0zNDM0LDE5ICszNDM1LDE0IEBAIHZvaWQgRnJhbWVM
b2FkZXI6OnJldHJ5QWZ0ZXJGYWlsZWRDYWNoZU9ubHlNYWluUmVzb3VyY2VMb2FkKCkKIAogUmVz
b3VyY2VFcnJvciBGcmFtZUxvYWRlcjo6Y2FuY2VsbGVkRXJyb3IoY29uc3QgUmVzb3VyY2VSZXF1
ZXN0JiByZXF1ZXN0KSBjb25zdAogewotICAgIFJlc291cmNlRXJyb3IgZXJyb3IgPSBtX2NsaWVu
dC5jYW5jZWxsZWRFcnJvcihyZXF1ZXN0KTsKKyAgICBSZXNvdXJjZUVycm9yIGVycm9yID0gV2Vi
Q29yZTo6Y2FuY2VsbGVkRXJyb3IocmVxdWVzdCk7CiAgICAgZXJyb3Iuc2V0VHlwZShSZXNvdXJj
ZUVycm9yOjpUeXBlOjpDYW5jZWxsYXRpb24pOwogICAgIHJldHVybiBlcnJvcjsKIH0KIAotUmVz
b3VyY2VFcnJvciBGcmFtZUxvYWRlcjo6YmxvY2tlZEJ5Q29udGVudEJsb2NrZXJFcnJvcihjb25z
dCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QpIGNvbnN0Ci17Ci0gICAgcmV0dXJuIG1fY2xpZW50
LmJsb2NrZWRCeUNvbnRlbnRCbG9ja2VyRXJyb3IocmVxdWVzdCk7Ci19Ci0KIFJlc291cmNlRXJy
b3IgRnJhbWVMb2FkZXI6OmJsb2NrZWRFcnJvcihjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVl
c3QpIGNvbnN0CiB7Ci0gICAgUmVzb3VyY2VFcnJvciBlcnJvciA9IG1fY2xpZW50LmJsb2NrZWRF
cnJvcihyZXF1ZXN0KTsKKyAgICBSZXNvdXJjZUVycm9yIGVycm9yID0gV2ViQ29yZTo6YmxvY2tl
ZEVycm9yKHJlcXVlc3QpOwogICAgIGVycm9yLnNldFR5cGUoUmVzb3VyY2VFcnJvcjo6VHlwZTo6
Q2FuY2VsbGF0aW9uKTsKICAgICByZXR1cm4gZXJyb3I7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIuaCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFt
ZUxvYWRlci5oCmluZGV4IGNiYjJhNmMzMmNjOWIwOTZjNmQ1Y2ZlY2E5M2RhMTUwMjM2YmY3M2Uu
LmU1ZjA5ODg3YzM4OTYyZGI5Yjg1ZWM3NTE0ZmI1OTFhOGJkYjU0YjkgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xv
YWRlci9GcmFtZUxvYWRlci5oCkBAIC0xNzAsNyArMTcwLDYgQEAgcHVibGljOgogICAgIHZvaWQg
aGFuZGxlRmFsbGJhY2tDb250ZW50KCk7CiAKICAgICBXRUJDT1JFX0VYUE9SVCBSZXNvdXJjZUVy
cm9yIGNhbmNlbGxlZEVycm9yKGNvbnN0IFJlc291cmNlUmVxdWVzdCYpIGNvbnN0OwotICAgIFdF
QkNPUkVfRVhQT1JUIFJlc291cmNlRXJyb3IgYmxvY2tlZEJ5Q29udGVudEJsb2NrZXJFcnJvcihj
b25zdCBSZXNvdXJjZVJlcXVlc3QmKSBjb25zdDsKICAgICBSZXNvdXJjZUVycm9yIGJsb2NrZWRF
cnJvcihjb25zdCBSZXNvdXJjZVJlcXVlc3QmKSBjb25zdDsKICNpZiBFTkFCTEUoQ09OVEVOVF9G
SUxURVJJTkcpCiAgICAgUmVzb3VyY2VFcnJvciBibG9ja2VkQnlDb250ZW50RmlsdGVyRXJyb3Io
Y29uc3QgUmVzb3VyY2VSZXF1ZXN0JikgY29uc3Q7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9sb2FkZXIvRnJhbWVMb2FkZXJDbGllbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFt
ZUxvYWRlckNsaWVudC5oCmluZGV4IDc4NWZiZTM5ZDY5YjdmZDRkOTRkN2Y4YzQwMjcxNThjNjNl
OWVjOGIuLjFjY2ViZWUwNDljMDljMzhhNmY2ZDUyYzljNDFhMWQ5NTVjYWE2OGEgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlckNsaWVudC5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlckNsaWVudC5oCkBAIC0yMjYsMTkgKzIyNiw2IEBA
IG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgdmlydHVhbCB2b2lkIGRpZFJ1bkluc2VjdXJl
Q29udGVudChTZWN1cml0eU9yaWdpbiosIGNvbnN0IFVSTCYpID0gMDsKICAgICAgICAgdmlydHVh
bCB2b2lkIGRpZERldGVjdFhTUyhjb25zdCBVUkwmLCBib29sIGRpZEJsb2NrRW50aXJlUGFnZSkg
PSAwOwogCi0gICAgICAgIHZpcnR1YWwgUmVzb3VyY2VFcnJvciBjYW5jZWxsZWRFcnJvcihjb25z
dCBSZXNvdXJjZVJlcXVlc3QmKSA9IDA7Ci0gICAgICAgIHZpcnR1YWwgUmVzb3VyY2VFcnJvciBi
bG9ja2VkRXJyb3IoY29uc3QgUmVzb3VyY2VSZXF1ZXN0JikgPSAwOwotICAgICAgICB2aXJ0dWFs
IFJlc291cmNlRXJyb3IgYmxvY2tlZEJ5Q29udGVudEJsb2NrZXJFcnJvcihjb25zdCBSZXNvdXJj
ZVJlcXVlc3QmKSA9IDA7Ci0gICAgICAgIHZpcnR1YWwgUmVzb3VyY2VFcnJvciBjYW5ub3RTaG93
VVJMRXJyb3IoY29uc3QgUmVzb3VyY2VSZXF1ZXN0JikgPSAwOwotICAgICAgICB2aXJ0dWFsIFJl
c291cmNlRXJyb3IgaW50ZXJydXB0ZWRGb3JQb2xpY3lDaGFuZ2VFcnJvcihjb25zdCBSZXNvdXJj
ZVJlcXVlc3QmKSA9IDA7Ci0jaWYgRU5BQkxFKENPTlRFTlRfRklMVEVSSU5HKQotICAgICAgICB2
aXJ0dWFsIFJlc291cmNlRXJyb3IgYmxvY2tlZEJ5Q29udGVudEZpbHRlckVycm9yKGNvbnN0IFJl
c291cmNlUmVxdWVzdCYpID0gMDsKLSNlbmRpZgotCi0gICAgICAgIHZpcnR1YWwgUmVzb3VyY2VF
cnJvciBjYW5ub3RTaG93TUlNRVR5cGVFcnJvcihjb25zdCBSZXNvdXJjZVJlc3BvbnNlJikgPSAw
OwotICAgICAgICB2aXJ0dWFsIFJlc291cmNlRXJyb3IgZmlsZURvZXNOb3RFeGlzdEVycm9yKGNv
bnN0IFJlc291cmNlUmVzcG9uc2UmKSA9IDA7Ci0gICAgICAgIHZpcnR1YWwgUmVzb3VyY2VFcnJv
ciBwbHVnaW5XaWxsSGFuZGxlTG9hZEVycm9yKGNvbnN0IFJlc291cmNlUmVzcG9uc2UmKSA9IDA7
Ci0KICAgICAgICAgdmlydHVhbCBib29sIHNob3VsZEZhbGxCYWNrKGNvbnN0IFJlc291cmNlRXJy
b3ImKSA9IDA7CiAKICAgICAgICAgdmlydHVhbCBib29sIGNhbkhhbmRsZVJlcXVlc3QoY29uc3Qg
UmVzb3VyY2VSZXF1ZXN0JikgY29uc3QgPSAwOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
bG9hZGVyL05ldHNjYXBlUGx1Z0luU3RyZWFtTG9hZGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xv
YWRlci9OZXRzY2FwZVBsdWdJblN0cmVhbUxvYWRlci5jcHAKaW5kZXggNmI5YTM0NGVhMjg2YThl
ZDAxMzdlZjQ5NjMzYTQ5MjM4NjM1MTdkZS4uNTcyZWJjZjU2MTMwYTk1NzQ4MmM4MWNlOTJkOWMx
ZDkzNzExMmI5MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL05ldHNjYXBlUGx1
Z0luU3RyZWFtTG9hZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvTmV0c2NhcGVQ
bHVnSW5TdHJlYW1Mb2FkZXIuY3BwCkBAIC0zMCw2ICszMCw3IEBACiAjaW5jbHVkZSAiTmV0c2Nh
cGVQbHVnSW5TdHJlYW1Mb2FkZXIuaCIKIAogI2luY2x1ZGUgIkRvY3VtZW50TG9hZGVyLmgiCisj
aW5jbHVkZSAiRXJyb3JzLmgiCiAjaW5jbHVkZSAiRnJhbWVMb2FkZXIuaCIKICNpbmNsdWRlICJG
cmFtZUxvYWRlckNsaWVudC5oIgogI2luY2x1ZGUgPHd0Zi9SZWYuaD4KQEAgLTEyNCw3ICsxMjUs
NyBAQCB2b2lkIE5ldHNjYXBlUGx1Z0luU3RyZWFtTG9hZGVyOjpkaWRSZWNlaXZlUmVzcG9uc2Uo
Y29uc3QgUmVzb3VyY2VSZXNwb25zZSYgcmVzcAogCiAgICAgLy8gU3RhdHVzIGNvZGUgY2FuIGJl
IG51bGwgd2hlbiBzZXJ2aW5nIGZyb20gYSBXZWIgYXJjaGl2ZS4KICAgICBpZiAocmVzcG9uc2Uu
aHR0cFN0YXR1c0NvZGUoKSAmJiAocmVzcG9uc2UuaHR0cFN0YXR1c0NvZGUoKSA8IDEwMCB8fCBy
ZXNwb25zZS5odHRwU3RhdHVzQ29kZSgpID49IDQwMCkpCi0gICAgICAgIGNhbmNlbChmcmFtZUxv
YWRlcigpLT5jbGllbnQoKS5maWxlRG9lc05vdEV4aXN0RXJyb3IocmVzcG9uc2UpKTsKKyAgICAg
ICAgY2FuY2VsKGZpbGVEb2VzTm90RXhpc3RFcnJvcihyZXNwb25zZSkpOwogfQogCiB2b2lkIE5l
dHNjYXBlUGx1Z0luU3RyZWFtTG9hZGVyOjpkaWRSZWNlaXZlRGF0YShjb25zdCBjaGFyKiBkYXRh
LCB1bnNpZ25lZCBsZW5ndGgsIGxvbmcgbG9uZyBlbmNvZGVkRGF0YUxlbmd0aCwgRGF0YVBheWxv
YWRUeXBlIGRhdGFQYXlsb2FkVHlwZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRl
ci9Qb2xpY3lDaGVja2VyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Qb2xpY3lDaGVja2Vy
LmNwcAppbmRleCAyOWM2NTA3Nzc4MDNkYzk3NmJkZTMyNjMwNzQxOTg1NDBhZDljMDQ5Li4xYWY1
Y2U3NmJjNmE0NGE3MGIxZTY3ODA1ZmE0ZGJiNDNmMTQ0NjI4IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9sb2FkZXIvUG9saWN5Q2hlY2tlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9h
ZGVyL1BvbGljeUNoZWNrZXIuY3BwCkBAIC0zNSw2ICszNSw3IEBACiAjaW5jbHVkZSAiQ29udGVu
dFNlY3VyaXR5UG9saWN5LmgiCiAjaW5jbHVkZSAiRE9NV2luZG93LmgiCiAjaW5jbHVkZSAiRG9j
dW1lbnRMb2FkZXIuaCIKKyNpbmNsdWRlICJFcnJvcnMuaCIKICNpbmNsdWRlICJFdmVudE5hbWVz
LmgiCiAjaW5jbHVkZSAiRm9ybVN0YXRlLmgiCiAjaW5jbHVkZSAiRnJhbWUuaCIKQEAgLTE4NSw3
ICsxODYsNyBAQCB2b2lkIFBvbGljeUNoZWNrZXI6OnN0b3BDaGVjaygpCiAKIHZvaWQgUG9saWN5
Q2hlY2tlcjo6Y2Fubm90U2hvd01JTUVUeXBlKGNvbnN0IFJlc291cmNlUmVzcG9uc2UmIHJlc3Bv
bnNlKQogewotICAgIGhhbmRsZVVuaW1wbGVtZW50YWJsZVBvbGljeShtX2ZyYW1lLmxvYWRlcigp
LmNsaWVudCgpLmNhbm5vdFNob3dNSU1FVHlwZUVycm9yKHJlc3BvbnNlKSk7CisgICAgaGFuZGxl
VW5pbXBsZW1lbnRhYmxlUG9saWN5KGNhbm5vdFNob3dNSU1FVHlwZUVycm9yKHJlc3BvbnNlKSk7
CiB9CiAKIHZvaWQgUG9saWN5Q2hlY2tlcjo6Y29udGludWVMb2FkQWZ0ZXJXaWxsU3VibWl0Rm9y
bShQb2xpY3lBY3Rpb24pCkBAIC0yMTcsNyArMjE4LDcgQEAgdm9pZCBQb2xpY3lDaGVja2VyOjpj
b250aW51ZUFmdGVyTmF2aWdhdGlvblBvbGljeShQb2xpY3lBY3Rpb24gcG9saWN5KQogICAgICAg
ICAgICAgUmVzb3VyY2VSZXF1ZXN0IHJlcXVlc3QoY2FsbGJhY2sucmVxdWVzdCgpKTsKIAogICAg
ICAgICAgICAgaWYgKCFtX2ZyYW1lLmxvYWRlcigpLmNsaWVudCgpLmNhbkhhbmRsZVJlcXVlc3Qo
cmVxdWVzdCkpIHsKLSAgICAgICAgICAgICAgICBoYW5kbGVVbmltcGxlbWVudGFibGVQb2xpY3ko
bV9mcmFtZS5sb2FkZXIoKS5jbGllbnQoKS5jYW5ub3RTaG93VVJMRXJyb3IoY2FsbGJhY2sucmVx
dWVzdCgpKSk7CisgICAgICAgICAgICAgICAgaGFuZGxlVW5pbXBsZW1lbnRhYmxlUG9saWN5KGNh
bm5vdFNob3dVUkxFcnJvcihjYWxsYmFjay5yZXF1ZXN0KCkpKTsKICAgICAgICAgICAgICAgICBj
YWxsYmFjay5jbGVhclJlcXVlc3QoKTsKICAgICAgICAgICAgICAgICBzaG91bGRDb250aW51ZSA9
IGZhbHNlOwogICAgICAgICAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVy
L1Jlc291cmNlTG9hZGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9SZXNvdXJjZUxvYWRl
ci5jcHAKaW5kZXggYzcxYjZiMjQ0YjE0OTFhYTE5YmY0YmNjMDM5YzBhZjVkNDlhMjUzMy4uMGE4
NzY5ZWI1NzM5ZDQ0OWUwZTdkNDc4MmU3MDk3NTljODI4ZmJmNCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvbG9hZGVyL1Jlc291cmNlTG9hZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9s
b2FkZXIvUmVzb3VyY2VMb2FkZXIuY3BwCkBAIC0zNiw2ICszNiw3IEBACiAjaW5jbHVkZSAiRGlh
Z25vc3RpY0xvZ2dpbmdDbGllbnQuaCIKICNpbmNsdWRlICJEaWFnbm9zdGljTG9nZ2luZ0tleXMu
aCIKICNpbmNsdWRlICJEb2N1bWVudExvYWRlci5oIgorI2luY2x1ZGUgIkVycm9ycy5oIgogI2lu
Y2x1ZGUgIkZyYW1lLmgiCiAjaW5jbHVkZSAiRnJhbWVMb2FkZXIuaCIKICNpbmNsdWRlICJGcmFt
ZUxvYWRlckNsaWVudC5oIgpAQCAtNjEzLDE3ICs2MTQsMTcgQEAgUmVzb3VyY2VFcnJvciBSZXNv
dXJjZUxvYWRlcjo6Y2FuY2VsbGVkRXJyb3IoKQogCiBSZXNvdXJjZUVycm9yIFJlc291cmNlTG9h
ZGVyOjpibG9ja2VkRXJyb3IoKQogewotICAgIHJldHVybiBmcmFtZUxvYWRlcigpLT5jbGllbnQo
KS5ibG9ja2VkRXJyb3IobV9yZXF1ZXN0KTsKKyAgICByZXR1cm4gV2ViQ29yZTo6YmxvY2tlZEVy
cm9yKG1fcmVxdWVzdCk7CiB9CiAKIFJlc291cmNlRXJyb3IgUmVzb3VyY2VMb2FkZXI6OmJsb2Nr
ZWRCeUNvbnRlbnRCbG9ja2VyRXJyb3IoKQogewotICAgIHJldHVybiBmcmFtZUxvYWRlcigpLT5j
bGllbnQoKS5ibG9ja2VkQnlDb250ZW50QmxvY2tlckVycm9yKG1fcmVxdWVzdCk7CisgICAgcmV0
dXJuIFdlYkNvcmU6OmJsb2NrZWRCeUNvbnRlbnRCbG9ja2VyRXJyb3IobV9yZXF1ZXN0KTsKIH0K
IAogUmVzb3VyY2VFcnJvciBSZXNvdXJjZUxvYWRlcjo6Y2Fubm90U2hvd1VSTEVycm9yKCkKIHsK
LSAgICByZXR1cm4gZnJhbWVMb2FkZXIoKS0+Y2xpZW50KCkuY2Fubm90U2hvd1VSTEVycm9yKG1f
cmVxdWVzdCk7CisgICAgcmV0dXJuIFdlYkNvcmU6OmNhbm5vdFNob3dVUkxFcnJvcihtX3JlcXVl
c3QpOwogfQogCiBSZXNvdXJjZVJlcXVlc3QgUmVzb3VyY2VMb2FkZXI6OndpbGxTZW5kUmVxdWVz
dChSZXNvdXJjZUhhbmRsZSosIFJlc291cmNlUmVxdWVzdCYmIHJlcXVlc3QsIFJlc291cmNlUmVz
cG9uc2UmJiByZWRpcmVjdFJlc3BvbnNlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9h
ZGVyL2FwcGNhY2hlL0FwcGxpY2F0aW9uQ2FjaGVIb3N0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xv
YWRlci9hcHBjYWNoZS9BcHBsaWNhdGlvbkNhY2hlSG9zdC5jcHAKaW5kZXggYWI3NGVjNTFjODg1
NGY0MDVmM2NiMDA1ODU1NmViZDk3NzlmNjA1My4uMTUxM2ZkNDM0ZWM3YzI5Y2ZlNjI2ZTRmZmRk
YzkzZGNiYWRkMDY4YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2FwcGNhY2hl
L0FwcGxpY2F0aW9uQ2FjaGVIb3N0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvYXBw
Y2FjaGUvQXBwbGljYXRpb25DYWNoZUhvc3QuY3BwCkBAIC0zMiw2ICszMiw3IEBACiAjaW5jbHVk
ZSAiQ29udGVudFNlY3VyaXR5UG9saWN5LmgiCiAjaW5jbHVkZSAiRG9jdW1lbnRMb2FkZXIuaCIK
ICNpbmNsdWRlICJET01BcHBsaWNhdGlvbkNhY2hlLmgiCisjaW5jbHVkZSAiRXJyb3JzLmgiCiAj
aW5jbHVkZSAiRmlsZVN5c3RlbS5oIgogI2luY2x1ZGUgIkZyYW1lLmgiCiAjaW5jbHVkZSAiRnJh
bWVMb2FkZXIuaCIKQEAgLTI0NCw3ICsyNDUsNyBAQCBib29sIEFwcGxpY2F0aW9uQ2FjaGVIb3N0
OjptYXliZUxvYWRTeW5jaHJvbm91c2x5KFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwgUmVzbwog
ICAgICAgICAgICAgICAgIGRhdGEgPSBTaGFyZWRCdWZmZXI6OmNyZWF0ZVdpdGhDb250ZW50c09m
RmlsZShyZXNvdXJjZS0+cGF0aCgpKTsKICAgICAgICAgfQogICAgICAgICBpZiAoIWRhdGEpCi0g
ICAgICAgICAgICBlcnJvciA9IG1fZG9jdW1lbnRMb2FkZXIuZnJhbWVMb2FkZXIoKS0+Y2xpZW50
KCkuY2Fubm90U2hvd1VSTEVycm9yKHJlcXVlc3QpOworICAgICAgICAgICAgZXJyb3IgPSBjYW5u
b3RTaG93VVJMRXJyb3IocmVxdWVzdCk7CiAgICAgICAgIGVsc2UKICAgICAgICAgICAgIHJlc3Bv
bnNlID0gcmVzb3VyY2UtPnJlc3BvbnNlKCk7CiAgICAgICAgIHJldHVybiB0cnVlOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vRXJyb3JzLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL0Vycm9ycy5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMDA0OTM1MGRiMjkxYjJkMzdkMmU1NmYw
ZDk5OWE2NTM5YzhlZmJiZgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL0Vycm9ycy5jcHAKQEAgLTAsMCArMSwxNSBAQAorI2luY2x1ZGUgImNvbmZpZy5oIgorI2lu
Y2x1ZGUgIkVycm9ycy5oIgorCisjaW5jbHVkZSA8d3RmL05ldmVyRGVzdHJveWVkLmg+CisjaW5j
bHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY29u
c3QgV1RGOjpTdHJpbmcmIHdlYktpdEVycm9yRG9tYWluKCkKK3sKKyAgICBzdGF0aWMgTmV2ZXJE
ZXN0cm95ZWQ8V1RGOjpTdHJpbmc+IHdlYktpdEVycm9yRG9tYWluU3RyaW5nKEFTQ0lJTGl0ZXJh
bCgiV2ViS2l0RXJyb3JEb21haW4iKSk7CisgICAgcmV0dXJuIHdlYktpdEVycm9yRG9tYWluU3Ry
aW5nOworfQorCit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9FcnJvcnMu
aCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0Vycm9ycy5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmE5Y2JmYmI1
NjFmOGQ1MzI4ZWY0NDFiZTI5MTRjZWY0YWFjYzdkYjgKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9FcnJvcnMuaApAQCAtMCwwICsxLDYzIEBACisvKgorICogQ29w
eXJpZ2h0IChDKSAyMDA2LCAyMDA3LCAyMDA4LCAyMDA5LCAyMDEwLCAyMDExLCAyMDEyIEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMiBHb29nbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDE2IElnYWxpYSwg
Uy5MLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICoKKyAq
IDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4gCisgKiAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFy
eSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4g
dGhlCisgKiAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVk
IHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4gCisgKiAzLiAgTmVpdGhlciB0aGUgbmFtZSBvZiBBcHBs
ZSBJbmMuICgiQXBwbGUiKSBub3IgdGhlIG5hbWVzIG9mCisgKiAgICAgaXRzIGNvbnRyaWJ1dG9y
cyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZAorICog
ICAgIGZyb20gdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVy
bWlzc2lvbi4gCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBBTkQg
SVRTIENPTlRSSUJVVE9SUyAiQVMgSVMiIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKKyAq
IFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIgUFVSUE9TRSBBUkUKKyAqIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIE9S
IElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkKKyAqIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VT
CisgKiAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7CisgKiBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklU
UzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQKKyAqIE9OIEFO
WSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YKKyAqIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lm
bmRlZiBFcnJvcnNfaAorI2RlZmluZSBFcnJvcnNfaAorCituYW1lc3BhY2UgV1RGIHsKK2NsYXNz
IFN0cmluZzsKK30KKworbmFtZXNwYWNlIFdlYkNvcmUgeworY2xhc3MgUmVzb3VyY2VFcnJvcjsK
K2NsYXNzIFJlc291cmNlUmVxdWVzdDsKK2NsYXNzIFJlc291cmNlUmVzcG9uc2U7CitjbGFzcyBV
Ukw7CisKK1dFQkNPUkVfRVhQT1JUIFJlc291cmNlRXJyb3IgY2FuY2VsbGVkRXJyb3IoY29uc3Qg
UmVzb3VyY2VSZXF1ZXN0Jik7CitXRUJDT1JFX0VYUE9SVCBSZXNvdXJjZUVycm9yIGJsb2NrZWRF
cnJvcihjb25zdCBSZXNvdXJjZVJlcXVlc3QmKTsKK1dFQkNPUkVfRVhQT1JUIFJlc291cmNlRXJy
b3IgYmxvY2tlZEJ5Q29udGVudEJsb2NrZXJFcnJvcihjb25zdCBSZXNvdXJjZVJlcXVlc3QmKTsK
K1dFQkNPUkVfRVhQT1JUIFJlc291cmNlRXJyb3IgY2Fubm90U2hvd1VSTEVycm9yKGNvbnN0IFJl
c291cmNlUmVxdWVzdCYpOworV0VCQ09SRV9FWFBPUlQgUmVzb3VyY2VFcnJvciBpbnRlcnJ1cHRl
ZEZvclBvbGljeUNoYW5nZUVycm9yKGNvbnN0IFJlc291cmNlUmVxdWVzdCYpOworI2lmIEVOQUJM
RShDT05URU5UX0ZJTFRFUklORykKK1dFQkNPUkVfRVhQT1JUIFJlc291cmNlRXJyb3IgYmxvY2tl
ZEJ5Q29udGVudEZpbHRlckVycm9yKGNvbnN0IFJlc291cmNlUmVxdWVzdCYpOworI2VuZGlmCisK
K1dFQkNPUkVfRVhQT1JUIFJlc291cmNlRXJyb3IgY2Fubm90U2hvd01JTUVUeXBlRXJyb3IoY29u
c3QgUmVzb3VyY2VSZXNwb25zZSYpOworV0VCQ09SRV9FWFBPUlQgUmVzb3VyY2VFcnJvciBmaWxl
RG9lc05vdEV4aXN0RXJyb3IoY29uc3QgUmVzb3VyY2VSZXNwb25zZSYpOworV0VCQ09SRV9FWFBP
UlQgUmVzb3VyY2VFcnJvciBwbHVnaW5XaWxsSGFuZGxlTG9hZEVycm9yKGNvbnN0IFJlc291cmNl
UmVzcG9uc2UmKTsKKworV0VCQ09SRV9FWFBPUlQgUmVzb3VyY2VFcnJvciBpbnRlcm5hbEVycm9y
KGNvbnN0IFVSTCYpOworCitXRUJDT1JFX0VYUE9SVCBjb25zdCBXVEY6OlN0cmluZyYgd2ViS2l0
RXJyb3JEb21haW4oKTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gRXJy
b3JzX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2VmbC9FcnJvcnNFZmwu
Y3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZWZsL0Vycm9yc0VmbC5jcHAKZGVsZXRlZCBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDMyODI2ZTU2NzI3MzAzYmVmZGUyOWMwOGRlOGM1N2FiNDlk
YmUzOWEuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZWZsL0Vycm9yc0VmbC5jcHAKKysrIC9kZXYvbnVsbApAQCAt
MSwxMDUgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMiBJbnRlbCBDb3Jwb3JhdGlv
bi4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwot
ICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJl
dGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlv
bnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxz
IHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElT
IFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCi0g
KiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywKLSAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlN
RUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwotICog
QkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwg
RVhFTVBMQVJZLCBPUgotICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKLSAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VS
VklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwotICogSU5U
RVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4KLSAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCi0gKiBBUklTSU5HIElOIEFOWSBXQVkgT1VU
IE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCi0gKiBUSEUg
UE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI2luY2x1ZGUgImNvbmZpZy5oIgot
I2luY2x1ZGUgIkVycm9yc0VmbC5oIgotCi0jaW5jbHVkZSAiUmVzb3VyY2VFcnJvci5oIgotI2lu
Y2x1ZGUgIlJlc291cmNlUmVxdWVzdC5oIgotI2luY2x1ZGUgIlJlc291cmNlUmVzcG9uc2UuaCIK
LQotbmFtZXNwYWNlIFdlYkNvcmUgewotCi1SZXNvdXJjZUVycm9yIGNhbmNlbGxlZEVycm9yKGNv
bnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCkKLXsKLSAgICByZXR1cm4gUmVzb3VyY2VFcnJv
cihlcnJvckRvbWFpbk5ldHdvcmssIE5ldHdvcmtFcnJvckNhbmNlbGxlZCwgcmVxdWVzdC51cmwo
KSwgQVNDSUlMaXRlcmFsKCJMb2FkIHJlcXVlc3QgY2FuY2VsbGVkIikpOwotfQotCi1SZXNvdXJj
ZUVycm9yIGJsb2NrZWRFcnJvcihjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QpCi17Ci0g
ICAgcmV0dXJuIFJlc291cmNlRXJyb3IoZXJyb3JEb21haW5Qb2xpY3ksIFBvbGljeUVycm9yQ2Fu
bm90VXNlUmVzdHJpY3RlZFBvcnQsIHJlcXVlc3QudXJsKCksIEFTQ0lJTGl0ZXJhbCgiTm90IGFs
bG93ZWQgdG8gdXNlIHJlc3RyaWN0ZWQgbmV0d29yayBwb3J0IikpOwotfQotCi1SZXNvdXJjZUVy
cm9yIGJsb2NrZWRCeUNvbnRlbnRCbG9ja2VyRXJyb3IoY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiBy
ZXF1ZXN0KQotewotICAgIHJldHVybiBSZXNvdXJjZUVycm9yKGVycm9yRG9tYWluUG9saWN5LCBQ
b2xpY3lFcnJvckJsb2NrZWRCeUNvbnRlbnRCbG9ja2VyLCByZXF1ZXN0LnVybCgpLCBBU0NJSUxp
dGVyYWwoIkJsb2NrZWQgYnkgY29udGVudCBibG9ja2VyIikpOwotfQotCi1SZXNvdXJjZUVycm9y
IGNhbm5vdFNob3dVUkxFcnJvcihjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QpCi17Ci0g
ICAgcmV0dXJuIFJlc291cmNlRXJyb3IoZXJyb3JEb21haW5Qb2xpY3ksIFBvbGljeUVycm9yQ2Fu
bm90U2hvd1VSTCwgcmVxdWVzdC51cmwoKSwgQVNDSUlMaXRlcmFsKCJVUkwgY2Fubm90IGJlIHNo
b3duIikpOwotfQotCi1SZXNvdXJjZUVycm9yIGludGVycnVwdGVkRm9yUG9saWN5Q2hhbmdlRXJy
b3IoY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0KQotewotICAgIHJldHVybiBSZXNvdXJj
ZUVycm9yKGVycm9yRG9tYWluUG9saWN5LCBQb2xpY3lFcnJvckZyYW1lTG9hZEludGVycnVwdGVk
QnlQb2xpY3lDaGFuZ2UsIHJlcXVlc3QudXJsKCksIEFTQ0lJTGl0ZXJhbCgiRnJhbWUgbG9hZCB3
YXMgaW50ZXJydXB0ZWQiKSk7Ci19Ci0KLVJlc291cmNlRXJyb3IgY2Fubm90U2hvd01JTUVUeXBl
RXJyb3IoY29uc3QgUmVzb3VyY2VSZXNwb25zZSYgcmVzcG9uc2UpCi17Ci0gICAgcmV0dXJuIFJl
c291cmNlRXJyb3IoZXJyb3JEb21haW5Qb2xpY3ksIFBvbGljeUVycm9yQ2Fubm90U2hvd01pbWVU
eXBlLCByZXNwb25zZS51cmwoKSwgQVNDSUlMaXRlcmFsKCJDb250ZW50IHdpdGggdGhlIHNwZWNp
ZmllZCBNSU1FIHR5cGUgY2Fubm90IGJlIHNob3duIikpOwotfQotCi1SZXNvdXJjZUVycm9yIGZp
bGVEb2VzTm90RXhpc3RFcnJvcihjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiByZXNwb25zZSkKLXsK
LSAgICByZXR1cm4gUmVzb3VyY2VFcnJvcihlcnJvckRvbWFpbk5ldHdvcmssIE5ldHdvcmtFcnJv
ckZpbGVEb2VzTm90RXhpc3QsIHJlc3BvbnNlLnVybCgpLCBBU0NJSUxpdGVyYWwoIkZpbGUgZG9l
cyBub3QgZXhpc3QiKSk7Ci19Ci0KLVJlc291cmNlRXJyb3IgcGx1Z2luV2lsbEhhbmRsZUxvYWRF
cnJvcihjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiByZXNwb25zZSkKLXsKLSAgICByZXR1cm4gUmVz
b3VyY2VFcnJvcihlcnJvckRvbWFpblBsdWdpbiwgUGx1Z2luRXJyb3JXaWxsSGFuZGxlTG9hZCwg
cmVzcG9uc2UudXJsKCksIEFTQ0lJTGl0ZXJhbCgiUGx1Z2luIHdpbGwgaGFuZGxlIGxvYWQiKSk7
Ci19Ci0KLVJlc291cmNlRXJyb3IgZG93bmxvYWROZXR3b3JrRXJyb3IoY29uc3QgUmVzb3VyY2VF
cnJvciYgbmV0d29ya0Vycm9yKQotewotICAgIHJldHVybiBSZXNvdXJjZUVycm9yKGVycm9yRG9t
YWluRG93bmxvYWQsIERvd25sb2FkRXJyb3JOZXR3b3JrLCBuZXR3b3JrRXJyb3IuZmFpbGluZ1VS
TCgpLCBuZXR3b3JrRXJyb3IubG9jYWxpemVkRGVzY3JpcHRpb24oKSk7Ci19Ci0KLVJlc291cmNl
RXJyb3IgZG93bmxvYWRDYW5jZWxsZWRCeVVzZXJFcnJvcihjb25zdCBSZXNvdXJjZVJlc3BvbnNl
JiByZXNwb25zZSkKLXsKLSAgICByZXR1cm4gUmVzb3VyY2VFcnJvcihlcnJvckRvbWFpbkRvd25s
b2FkLCBEb3dubG9hZEVycm9yQ2FuY2VsbGVkQnlVc2VyLCByZXNwb25zZS51cmwoKSwgQVNDSUlM
aXRlcmFsKCJVc2VyIGNhbmNlbGxlZCB0aGUgZG93bmxvYWQiKSk7Ci19Ci0KLVJlc291cmNlRXJy
b3IgZG93bmxvYWREZXN0aW5hdGlvbkVycm9yKGNvbnN0IFJlc291cmNlUmVzcG9uc2UmIHJlc3Bv
bnNlLCBjb25zdCBTdHJpbmcmIGVycm9yTWVzc2FnZSkKLXsKLSAgICByZXR1cm4gUmVzb3VyY2VF
cnJvcihlcnJvckRvbWFpbkRvd25sb2FkLCBEb3dubG9hZEVycm9yRGVzdGluYXRpb24sIHJlc3Bv
bnNlLnVybCgpLCBlcnJvck1lc3NhZ2UpOwotfQotCi1SZXNvdXJjZUVycm9yIHByaW50RXJyb3Io
Y29uc3QgVVJMJiBmYWlsaW5nVVJMLCBjb25zdCBTdHJpbmcmIGVycm9yTWVzc2FnZSkKLXsKLSAg
ICByZXR1cm4gUmVzb3VyY2VFcnJvcihlcnJvckRvbWFpblByaW50LCBQcmludEVycm9yR2VuZXJh
bCwgZmFpbGluZ1VSTCwgZXJyb3JNZXNzYWdlKTsKLX0KLQotUmVzb3VyY2VFcnJvciBwcmludGVy
Tm90Rm91bmRFcnJvcihjb25zdCBVUkwmIGZhaWxpbmdVUkwpCi17Ci0gICAgcmV0dXJuIFJlc291
cmNlRXJyb3IoZXJyb3JEb21haW5QcmludCwgUHJpbnRFcnJvclByaW50ZXJOb3RGb3VuZCwgZmFp
bGluZ1VSTCwgQVNDSUlMaXRlcmFsKCJQcmludGVyIG5vdCBmb3VuZCIpKTsKLX0KLQotUmVzb3Vy
Y2VFcnJvciBpbnZhbGlkUGFnZVJhbmdlVG9QcmludChjb25zdCBVUkwmIGZhaWxpbmdVUkwpCi17
Ci0gICAgcmV0dXJuIFJlc291cmNlRXJyb3IoZXJyb3JEb21haW5QcmludCwgUHJpbnRFcnJvcklu
dmFsaWRQYWdlUmFuZ2UsIGZhaWxpbmdVUkwsIEFTQ0lJTGl0ZXJhbCgiSW52YWxpZCBwYWdlIHJh
bmdlIikpOwotfQotCi19IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9lZmwvRXJyb3JzRWZsLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9lZmwvRXJyb3JzRWZsLmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDcwZmZhNmU2
OWRlZWU3ZTlmNTgwY2Q5ZDU5ZmNlNzhjNjJlZDUwNDYuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZWZsL0Vycm9y
c0VmbC5oCisrKyAvZGV2L251bGwKQEAgLTEsMTAxICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQg
KEMpIDIwMTIgSW50ZWwgQ29ycG9yYXRpb24uIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24u
Ci0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMg
Q09OVFJJQlVUT1JTIGBgQVMgSVMnJwotICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBUSEUgSU1QTElFRCBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
Ci0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMu
IE9SIElUUyBDT05UUklCVVRPUlMKLSAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKLSAqIENPTlNFUVVFTlRJQUwg
REFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCi0g
KiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJP
RklUUzsgT1IgQlVTSU5FU1MKLSAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9O
IEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCi0gKiBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQot
ICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRgotICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICov
Ci0KLSNpZm5kZWYgRXJyb3JzRWZsX2gKLSNkZWZpbmUgRXJyb3JzRWZsX2gKLQotI2luY2x1ZGUg
PHd0Zi90ZXh0L1dURlN0cmluZy5oPgotCi1uYW1lc3BhY2UgV2ViQ29yZSB7Ci0KLWNsYXNzIFJl
c291cmNlRXJyb3I7Ci1jbGFzcyBSZXNvdXJjZVJlcXVlc3Q7Ci1jbGFzcyBSZXNvdXJjZVJlc3Bv
bnNlOwotY2xhc3MgVVJMOwotCi1zdGF0aWMgY29uc3QgY2hhciBlcnJvckRvbWFpbk5ldHdvcmtb
XSA9ICJXZWJLaXROZXR3b3JrRXJyb3IiOwotc3RhdGljIGNvbnN0IGNoYXIgZXJyb3JEb21haW5Q
b2xpY3lbXSA9ICJXZWJLaXRQb2xpY3lFcnJvciI7Ci1zdGF0aWMgY29uc3QgY2hhciBlcnJvckRv
bWFpblBsdWdpbltdID0gIldlYktpdFBsdWdpbkVycm9yIjsKLXN0YXRpYyBjb25zdCBjaGFyIGVy
cm9yRG9tYWluRG93bmxvYWRbXSA9ICJXZWJLaXREb3dubG9hZEVycm9yIjsKLXN0YXRpYyBjb25z
dCBjaGFyIGVycm9yRG9tYWluUHJpbnRbXSA9ICJXZWJLaXRQcmludEVycm9yIjsKLQotZW51bSBO
ZXR3b3JrRXJyb3IgewotICAgIE5ldHdvcmtFcnJvckZhaWxlZCA9IDM5OSwKLSAgICBOZXR3b3Jr
RXJyb3JUcmFuc3BvcnQgPSAzMDAsCi0gICAgTmV0d29ya0Vycm9yVW5rbm93blByb3RvY29sID0g
MzAxLAotICAgIE5ldHdvcmtFcnJvckNhbmNlbGxlZCA9IDMwMiwKLSAgICBOZXR3b3JrRXJyb3JG
aWxlRG9lc05vdEV4aXN0ID0gMzAzCi19OwotCi0vLyBTeW5jJ2Qgd2l0aCBNYWMncyBXZWJLaXQg
RXJyb3JzIGF0OgotLy8gU291cmNlL1dlYktpdC9tYWMvTWlzYy9XZWJLaXRFcnJvcnNbUHJpdmF0
ZV0uaAotZW51bSBQb2xpY3lFcnJvciB7Ci0gICAgUG9saWN5RXJyb3JGYWlsZWQgPSAxOTksCi0g
ICAgUG9saWN5RXJyb3JDYW5ub3RTaG93TWltZVR5cGUgPSAxMDAsCi0gICAgUG9saWN5RXJyb3JD
YW5ub3RTaG93VVJMID0gMTAxLAotICAgIFBvbGljeUVycm9yRnJhbWVMb2FkSW50ZXJydXB0ZWRC
eVBvbGljeUNoYW5nZSA9IDEwMiwKLSAgICBQb2xpY3lFcnJvckNhbm5vdFVzZVJlc3RyaWN0ZWRQ
b3J0ID0gMTAzLAotICAgIFBvbGljeUVycm9yQmxvY2tlZEJ5Q29udGVudEJsb2NrZXIgPSAxMDQs
Ci19OwotCi1lbnVtIFBsdWdpbkVycm9yIHsKLSAgICBQbHVnaW5FcnJvckZhaWxlZCA9IDI5OSwK
LSAgICBQbHVnaW5FcnJvckNhbm5vdEZpbmRQbHVnaW4gPSAyMDAsCi0gICAgUGx1Z2luRXJyb3JD
YW5ub3RMb2FkUGx1Z2luID0gMjAxLAotICAgIFBsdWdpbkVycm9ySmF2YVVuYXZhaWxhYmxlID0g
MjAyLAotICAgIFBsdWdpbkVycm9yQ29ubmVjdGlvbkNhbmNlbGxlZCA9IDIwMywKLSAgICBQbHVn
aW5FcnJvcldpbGxIYW5kbGVMb2FkID0gMjA0Ci19OwotCi1lbnVtIERvd25sb2FkRXJyb3Igewot
ICAgIERvd25sb2FkRXJyb3JOZXR3b3JrID0gNDk5LAotICAgIERvd25sb2FkRXJyb3JDYW5jZWxs
ZWRCeVVzZXIgPSA0MDAsCi0gICAgRG93bmxvYWRFcnJvckRlc3RpbmF0aW9uID0gNDAxCi19Owot
Ci1lbnVtIFByaW50RXJyb3IgewotICAgIFByaW50RXJyb3JHZW5lcmFsID0gNTk5LAotICAgIFBy
aW50RXJyb3JQcmludGVyTm90Rm91bmQgPSA1MDAsCi0gICAgUHJpbnRFcnJvckludmFsaWRQYWdl
UmFuZ2UgPSA1MDEKLX07Ci0KLVJlc291cmNlRXJyb3IgY2FuY2VsbGVkRXJyb3IoY29uc3QgUmVz
b3VyY2VSZXF1ZXN0Jik7Ci1SZXNvdXJjZUVycm9yIGJsb2NrZWRFcnJvcihjb25zdCBSZXNvdXJj
ZVJlcXVlc3QmKTsKLVJlc291cmNlRXJyb3IgYmxvY2tlZEJ5Q29udGVudEJsb2NrZXJFcnJvcihj
b25zdCBSZXNvdXJjZVJlcXVlc3QmKTsKLVJlc291cmNlRXJyb3IgY2Fubm90U2hvd1VSTEVycm9y
KGNvbnN0IFJlc291cmNlUmVxdWVzdCYpOwotUmVzb3VyY2VFcnJvciBpbnRlcnJ1cHRlZEZvclBv
bGljeUNoYW5nZUVycm9yKGNvbnN0IFJlc291cmNlUmVxdWVzdCYpOwotUmVzb3VyY2VFcnJvciBj
YW5ub3RTaG93TUlNRVR5cGVFcnJvcihjb25zdCBSZXNvdXJjZVJlc3BvbnNlJik7Ci1SZXNvdXJj
ZUVycm9yIGZpbGVEb2VzTm90RXhpc3RFcnJvcihjb25zdCBSZXNvdXJjZVJlc3BvbnNlJik7Ci1S
ZXNvdXJjZUVycm9yIHBsdWdpbldpbGxIYW5kbGVMb2FkRXJyb3IoY29uc3QgUmVzb3VyY2VSZXNw
b25zZSYpOwotUmVzb3VyY2VFcnJvciBkb3dubG9hZE5ldHdvcmtFcnJvcihjb25zdCBSZXNvdXJj
ZUVycm9yJik7Ci1SZXNvdXJjZUVycm9yIGRvd25sb2FkQ2FuY2VsbGVkQnlVc2VyRXJyb3IoY29u
c3QgUmVzb3VyY2VSZXNwb25zZSYpOwotUmVzb3VyY2VFcnJvciBkb3dubG9hZERlc3RpbmF0aW9u
RXJyb3IoY29uc3QgUmVzb3VyY2VSZXNwb25zZSYsIGNvbnN0IFN0cmluZyYgZXJyb3JNZXNzYWdl
KTsKLVJlc291cmNlRXJyb3IgcHJpbnRFcnJvcihjb25zdCBVUkwmIGZhaWxpbmdVUkwsIGNvbnN0
IFN0cmluZyYgZXJyb3JNZXNzYWdlKTsKLVJlc291cmNlRXJyb3IgcHJpbnRlck5vdEZvdW5kRXJy
b3IoY29uc3QgVVJMJiBmYWlsaW5nVVJMKTsKLVJlc291cmNlRXJyb3IgaW52YWxpZFBhZ2VSYW5n
ZVRvUHJpbnQoY29uc3QgVVJMJiBmYWlsaW5nVVJMKTsKLQotfQotCi0jZW5kaWYgLy8gRXJyb3Jz
RWZsX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9FcnJvcnNHdGsu
Y3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL0Vycm9yc0d0ay5jcHAKZGVsZXRlZCBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDhkZmQxNThiM2I0ZDZjNTQ0YmRiMjlhNjE1NzQxZGJkYTRi
NDFhNTQuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL0Vycm9yc0d0ay5jcHAKKysrIC9kZXYvbnVsbApAQCAt
MSwxMDAgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMSBJZ2FsaWEgUy5MLgotICoK
LSAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBp
dCBhbmQvb3IKLSAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5
IEdlbmVyYWwgUHVibGljCi0gKiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0
d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKLSAqIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3Ig
KGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KLSAqCi0gKiBUaGlzIGxpYnJhcnkg
aXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKLSAqIGJ1
dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5
IG9mCi0gKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBP
U0UuICBTZWUgdGhlIEdOVQotICogTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBt
b3JlIGRldGFpbHMuCi0gKgotICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0
aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQotICogYWxvbmcgd2l0aCB0aGlz
IGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KLSAq
IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwg
RmlmdGggRmxvb3IsCi0gKiBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KLSAqLwotCi0jaW5j
bHVkZSAiY29uZmlnLmgiCi0jaW5jbHVkZSAiRXJyb3JzR3RrLmgiCi0KLSNpbmNsdWRlICJSZXNv
dXJjZUVycm9yLmgiCi0jaW5jbHVkZSAiUmVzb3VyY2VSZXF1ZXN0LmgiCi0jaW5jbHVkZSAiUmVz
b3VyY2VSZXNwb25zZS5oIgotI2luY2x1ZGUgPGdsaWIvZ2kxOG4tbGliLmg+Ci0KLW5hbWVzcGFj
ZSBXZWJDb3JlIHsKLQotUmVzb3VyY2VFcnJvciBjYW5jZWxsZWRFcnJvcihjb25zdCBSZXNvdXJj
ZVJlcXVlc3QmIHJlcXVlc3QpCi17Ci0gICAgcmV0dXJuIFJlc291cmNlRXJyb3IoZXJyb3JEb21h
aW5OZXR3b3JrLCBOZXR3b3JrRXJyb3JDYW5jZWxsZWQsIHJlcXVlc3QudXJsKCksIF8oIkxvYWQg
cmVxdWVzdCBjYW5jZWxsZWQiKSk7Ci19Ci0KLVJlc291cmNlRXJyb3IgYmxvY2tlZEVycm9yKGNv
bnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCkKLXsKLSAgICByZXR1cm4gUmVzb3VyY2VFcnJv
cihlcnJvckRvbWFpblBvbGljeSwgUG9saWN5RXJyb3JDYW5ub3RVc2VSZXN0cmljdGVkUG9ydCwg
cmVxdWVzdC51cmwoKSwgXygiTm90IGFsbG93ZWQgdG8gdXNlIHJlc3RyaWN0ZWQgbmV0d29yayBw
b3J0IikpOwotfQotCi1SZXNvdXJjZUVycm9yIGJsb2NrZWRCeUNvbnRlbnRCbG9ja2VyRXJyb3Io
Y29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0KQotewotICAgIHJldHVybiBSZXNvdXJjZUVy
cm9yKGVycm9yRG9tYWluUG9saWN5LCBQb2xpY3lFcnJvckJsb2NrZWRCeUNvbnRlbnRCbG9ja2Vy
LCByZXF1ZXN0LnVybCgpLCBfKCJCbG9ja2VkIGJ5IGNvbnRlbnQgYmxvY2tlciIpKTsKLX0KLQot
UmVzb3VyY2VFcnJvciBjYW5ub3RTaG93VVJMRXJyb3IoY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiBy
ZXF1ZXN0KQotewotICAgIHJldHVybiBSZXNvdXJjZUVycm9yKGVycm9yRG9tYWluUG9saWN5LCBQ
b2xpY3lFcnJvckNhbm5vdFNob3dVUkwsIHJlcXVlc3QudXJsKCksIF8oIlVSTCBjYW5ub3QgYmUg
c2hvd24iKSk7Ci19Ci0KLVJlc291cmNlRXJyb3IgaW50ZXJydXB0ZWRGb3JQb2xpY3lDaGFuZ2VF
cnJvcihjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QpCi17Ci0gICAgcmV0dXJuIFJlc291
cmNlRXJyb3IoZXJyb3JEb21haW5Qb2xpY3ksIFBvbGljeUVycm9yRnJhbWVMb2FkSW50ZXJydXB0
ZWRCeVBvbGljeUNoYW5nZSwgcmVxdWVzdC51cmwoKSwgXygiRnJhbWUgbG9hZCB3YXMgaW50ZXJy
dXB0ZWQiKSk7Ci19Ci0KLVJlc291cmNlRXJyb3IgY2Fubm90U2hvd01JTUVUeXBlRXJyb3IoY29u
c3QgUmVzb3VyY2VSZXNwb25zZSYgcmVzcG9uc2UpCi17Ci0gICAgcmV0dXJuIFJlc291cmNlRXJy
b3IoZXJyb3JEb21haW5Qb2xpY3ksIFBvbGljeUVycm9yQ2Fubm90U2hvd01pbWVUeXBlLCByZXNw
b25zZS51cmwoKSwgXygiQ29udGVudCB3aXRoIHRoZSBzcGVjaWZpZWQgTUlNRSB0eXBlIGNhbm5v
dCBiZSBzaG93biIpKTsKLX0KLQotUmVzb3VyY2VFcnJvciBmaWxlRG9lc05vdEV4aXN0RXJyb3Io
Y29uc3QgUmVzb3VyY2VSZXNwb25zZSYgcmVzcG9uc2UpCi17Ci0gICAgcmV0dXJuIFJlc291cmNl
RXJyb3IoZXJyb3JEb21haW5OZXR3b3JrLCBOZXR3b3JrRXJyb3JGaWxlRG9lc05vdEV4aXN0LCBy
ZXNwb25zZS51cmwoKSwgXygiRmlsZSBkb2VzIG5vdCBleGlzdCIpKTsKLX0KLQotUmVzb3VyY2VF
cnJvciBwbHVnaW5XaWxsSGFuZGxlTG9hZEVycm9yKGNvbnN0IFJlc291cmNlUmVzcG9uc2UmIHJl
c3BvbnNlKQotewotICAgIHJldHVybiBSZXNvdXJjZUVycm9yKGVycm9yRG9tYWluUGx1Z2luLCBQ
bHVnaW5FcnJvcldpbGxIYW5kbGVMb2FkLCByZXNwb25zZS51cmwoKSwgXygiUGx1Z2luIHdpbGwg
aGFuZGxlIGxvYWQiKSk7Ci19Ci0KLVJlc291cmNlRXJyb3IgZG93bmxvYWROZXR3b3JrRXJyb3Io
Y29uc3QgUmVzb3VyY2VFcnJvciYgbmV0d29ya0Vycm9yKQotewotICAgIHJldHVybiBSZXNvdXJj
ZUVycm9yKGVycm9yRG9tYWluRG93bmxvYWQsIERvd25sb2FkRXJyb3JOZXR3b3JrLCBuZXR3b3Jr
RXJyb3IuZmFpbGluZ1VSTCgpLCBuZXR3b3JrRXJyb3IubG9jYWxpemVkRGVzY3JpcHRpb24oKSk7
Ci19Ci0KLVJlc291cmNlRXJyb3IgZG93bmxvYWRDYW5jZWxsZWRCeVVzZXJFcnJvcihjb25zdCBS
ZXNvdXJjZVJlc3BvbnNlJiByZXNwb25zZSkKLXsKLSAgICByZXR1cm4gUmVzb3VyY2VFcnJvcihl
cnJvckRvbWFpbkRvd25sb2FkLCBEb3dubG9hZEVycm9yQ2FuY2VsbGVkQnlVc2VyLCByZXNwb25z
ZS51cmwoKSwgXygiVXNlciBjYW5jZWxsZWQgdGhlIGRvd25sb2FkIikpOwotfQotCi1SZXNvdXJj
ZUVycm9yIGRvd25sb2FkRGVzdGluYXRpb25FcnJvcihjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiBy
ZXNwb25zZSwgY29uc3QgU3RyaW5nJiBlcnJvck1lc3NhZ2UpCi17Ci0gICAgcmV0dXJuIFJlc291
cmNlRXJyb3IoZXJyb3JEb21haW5Eb3dubG9hZCwgRG93bmxvYWRFcnJvckRlc3RpbmF0aW9uLCBy
ZXNwb25zZS51cmwoKSwgZXJyb3JNZXNzYWdlKTsKLX0KLQotUmVzb3VyY2VFcnJvciBwcmludEVy
cm9yKGNvbnN0IFVSTCYgZmFpbGluZ1VSTCwgY29uc3QgU3RyaW5nJiBlcnJvck1lc3NhZ2UpCi17
Ci0gICAgcmV0dXJuIFJlc291cmNlRXJyb3IoZXJyb3JEb21haW5QcmludCwgUHJpbnRFcnJvckdl
bmVyYWwsIGZhaWxpbmdVUkwsIGVycm9yTWVzc2FnZSk7Ci19Ci0KLVJlc291cmNlRXJyb3IgcHJp
bnRlck5vdEZvdW5kRXJyb3IoY29uc3QgVVJMJiBmYWlsaW5nVVJMKQotewotICAgIHJldHVybiBS
ZXNvdXJjZUVycm9yKGVycm9yRG9tYWluUHJpbnQsIFByaW50RXJyb3JQcmludGVyTm90Rm91bmQs
IGZhaWxpbmdVUkwsIF8oIlByaW50ZXIgbm90IGZvdW5kIikpOwotfQotCi1SZXNvdXJjZUVycm9y
IGludmFsaWRQYWdlUmFuZ2VUb1ByaW50KGNvbnN0IFVSTCYgZmFpbGluZ1VSTCkKLXsKLSAgICBy
ZXR1cm4gUmVzb3VyY2VFcnJvcihlcnJvckRvbWFpblByaW50LCBQcmludEVycm9ySW52YWxpZFBh
Z2VSYW5nZSwgZmFpbGluZ1VSTCwgXygiSW52YWxpZCBwYWdlIHJhbmdlIikpOwotfQotCi19IC8v
IG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
dGsvRXJyb3JzR3RrLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvRXJyb3JzR3RrLmgK
ZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDc2MWRjY2IyNmVmNzAwNDFiYzcxYTcwMjFi
NTA1MzBkNzgwMjgxNzAuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL0Vycm9yc0d0ay5oCisrKyAvZGV2L251
bGwKQEAgLTEsOTQgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMSBJZ2FsaWEgUy5M
LgotICoKLSAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJp
YnV0ZSBpdCBhbmQvb3IKLSAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBM
aWJyYXJ5IEdlbmVyYWwgUHVibGljCi0gKiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJl
ZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKLSAqIHZlcnNpb24gMiBvZiB0aGUgTGljZW5z
ZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KLSAqCi0gKiBUaGlzIGxp
YnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwK
LSAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdh
cnJhbnR5IG9mCi0gKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
IFBVUlBPU0UuICBTZWUgdGhlIEdOVQotICogTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNl
IGZvciBtb3JlIGRldGFpbHMuCi0gKgotICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29w
eSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQotICogYWxvbmcgd2l0
aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUg
dG8KLSAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0
cmVldCwgRmlmdGggRmxvb3IsCi0gKiBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KLSAqLwot
Ci0jaWZuZGVmIEVycm9yc0d0a19oCi0jZGVmaW5lIEVycm9yc0d0a19oCi0KLSNpbmNsdWRlIDx3
dGYvdGV4dC9XVEZTdHJpbmcuaD4KLQotbmFtZXNwYWNlIFdlYkNvcmUgewotCi1jbGFzcyBSZXNv
dXJjZUVycm9yOwotY2xhc3MgUmVzb3VyY2VSZXF1ZXN0OwotY2xhc3MgUmVzb3VyY2VSZXNwb25z
ZTsKLWNsYXNzIFVSTDsKLQotY29uc3QgY2hhciogY29uc3QgZXJyb3JEb21haW5OZXR3b3JrID0g
IldlYktpdE5ldHdvcmtFcnJvciI7Ci1jb25zdCBjaGFyKiBjb25zdCBlcnJvckRvbWFpblBvbGlj
eSA9ICJXZWJLaXRQb2xpY3lFcnJvciI7Ci1jb25zdCBjaGFyKiBjb25zdCBlcnJvckRvbWFpblBs
dWdpbiA9ICJXZWJLaXRQbHVnaW5FcnJvciI7Ci1jb25zdCBjaGFyKiBjb25zdCBlcnJvckRvbWFp
bkRvd25sb2FkID0gIldlYktpdERvd25sb2FkRXJyb3IiOwotY29uc3QgY2hhciogY29uc3QgZXJy
b3JEb21haW5QcmludCA9ICJXZWJLaXRQcmludEVycm9yIjsKLQotZW51bSBOZXR3b3JrRXJyb3Ig
ewotICAgIE5ldHdvcmtFcnJvckZhaWxlZCA9IDM5OSwKLSAgICBOZXR3b3JrRXJyb3JUcmFuc3Bv
cnQgPSAzMDAsCi0gICAgTmV0d29ya0Vycm9yVW5rbm93blByb3RvY29sID0gMzAxLAotICAgIE5l
dHdvcmtFcnJvckNhbmNlbGxlZCA9IDMwMiwKLSAgICBOZXR3b3JrRXJyb3JGaWxlRG9lc05vdEV4
aXN0ID0gMzAzCi19OwotCi0vLyBTeW5jJ2Qgd2l0aCBNYWMncyBXZWJLaXQgRXJyb3JzLgotZW51
bSBQb2xpY3lFcnJvciB7Ci0gICAgUG9saWN5RXJyb3JGYWlsZWQgPSAxOTksCi0gICAgUG9saWN5
RXJyb3JDYW5ub3RTaG93TWltZVR5cGUgPSAxMDAsCi0gICAgUG9saWN5RXJyb3JDYW5ub3RTaG93
VVJMID0gMTAxLAotICAgIFBvbGljeUVycm9yRnJhbWVMb2FkSW50ZXJydXB0ZWRCeVBvbGljeUNo
YW5nZSA9IDEwMiwKLSAgICBQb2xpY3lFcnJvckNhbm5vdFVzZVJlc3RyaWN0ZWRQb3J0ID0gMTAz
LAotICAgIFBvbGljeUVycm9yQmxvY2tlZEJ5Q29udGVudEJsb2NrZXIgPSAxMDQsCi19OwotCi1l
bnVtIFBsdWdpbkVycm9yIHsKLSAgICBQbHVnaW5FcnJvckZhaWxlZCA9IDI5OSwKLSAgICBQbHVn
aW5FcnJvckNhbm5vdEZpbmRQbHVnaW4gPSAyMDAsCi0gICAgUGx1Z2luRXJyb3JDYW5ub3RMb2Fk
UGx1Z2luID0gMjAxLAotICAgIFBsdWdpbkVycm9ySmF2YVVuYXZhaWxhYmxlID0gMjAyLAotICAg
IFBsdWdpbkVycm9yQ29ubmVjdGlvbkNhbmNlbGxlZCA9IDIwMywKLSAgICBQbHVnaW5FcnJvcldp
bGxIYW5kbGVMb2FkID0gMjA0Ci19OwotCi1lbnVtIERvd25sb2FkRXJyb3IgewotICAgIERvd25s
b2FkRXJyb3JOZXR3b3JrID0gNDk5LAotICAgIERvd25sb2FkRXJyb3JDYW5jZWxsZWRCeVVzZXIg
PSA0MDAsCi0gICAgRG93bmxvYWRFcnJvckRlc3RpbmF0aW9uID0gNDAxCi19OwotCi1lbnVtIFBy
aW50RXJyb3IgewotICAgIFByaW50RXJyb3JHZW5lcmFsID0gNTk5LAotICAgIFByaW50RXJyb3JQ
cmludGVyTm90Rm91bmQgPSA1MDAsCi0gICAgUHJpbnRFcnJvckludmFsaWRQYWdlUmFuZ2UgPSA1
MDEKLX07Ci0KLVJlc291cmNlRXJyb3IgY2FuY2VsbGVkRXJyb3IoY29uc3QgUmVzb3VyY2VSZXF1
ZXN0Jik7Ci1SZXNvdXJjZUVycm9yIGJsb2NrZWRFcnJvcihjb25zdCBSZXNvdXJjZVJlcXVlc3Qm
KTsKLVJlc291cmNlRXJyb3IgYmxvY2tlZEJ5Q29udGVudEJsb2NrZXJFcnJvcihjb25zdCBSZXNv
dXJjZVJlcXVlc3QmKTsKLVJlc291cmNlRXJyb3IgY2Fubm90U2hvd1VSTEVycm9yKGNvbnN0IFJl
c291cmNlUmVxdWVzdCYpOwotUmVzb3VyY2VFcnJvciBpbnRlcnJ1cHRlZEZvclBvbGljeUNoYW5n
ZUVycm9yKGNvbnN0IFJlc291cmNlUmVxdWVzdCYpOwotUmVzb3VyY2VFcnJvciBjYW5ub3RTaG93
TUlNRVR5cGVFcnJvcihjb25zdCBSZXNvdXJjZVJlc3BvbnNlJik7Ci1SZXNvdXJjZUVycm9yIGZp
bGVEb2VzTm90RXhpc3RFcnJvcihjb25zdCBSZXNvdXJjZVJlc3BvbnNlJik7Ci1SZXNvdXJjZUVy
cm9yIHBsdWdpbldpbGxIYW5kbGVMb2FkRXJyb3IoY29uc3QgUmVzb3VyY2VSZXNwb25zZSYpOwot
UmVzb3VyY2VFcnJvciBkb3dubG9hZE5ldHdvcmtFcnJvcihjb25zdCBSZXNvdXJjZUVycm9yJik7
Ci1SZXNvdXJjZUVycm9yIGRvd25sb2FkQ2FuY2VsbGVkQnlVc2VyRXJyb3IoY29uc3QgUmVzb3Vy
Y2VSZXNwb25zZSYpOwotUmVzb3VyY2VFcnJvciBkb3dubG9hZERlc3RpbmF0aW9uRXJyb3IoY29u
c3QgUmVzb3VyY2VSZXNwb25zZSYsIGNvbnN0IFN0cmluZyYgZXJyb3JNZXNzYWdlKTsKLVJlc291
cmNlRXJyb3IgcHJpbnRFcnJvcihjb25zdCBVUkwmIGZhaWxpbmdVUkwsIGNvbnN0IFN0cmluZyYg
ZXJyb3JNZXNzYWdlKTsKLVJlc291cmNlRXJyb3IgcHJpbnRlck5vdEZvdW5kRXJyb3IoY29uc3Qg
VVJMJiBmYWlsaW5nVVJMKTsKLVJlc291cmNlRXJyb3IgaW52YWxpZFBhZ2VSYW5nZVRvUHJpbnQo
Y29uc3QgVVJMJiBmYWlsaW5nVVJMKTsKLQotfQotCi0jZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9wby9QT1RGSUxFUy5pbiBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2d0ay9wby9QT1RGSUxFUy5pbgppbmRleCA3ZmEyODI1MjBjYWUyZTdmMTcwOTdhNzY4
NTQzN2E2ZTU1OWM3NDBlLi41MWY3ODllYmYyMTdmNjlmNTI5ZGJiNjFiYTI0ZmI5OWE3Y2JlZjY0
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvcG8vUE9URklMRVMuaW4K
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL3BvL1BPVEZJTEVTLmluCkBAIC0xLDUg
KzEsNSBAQAogIyBMaXN0IG9mIHNvdXJjZSBmaWxlcyB3aGljaCBjb250YWluIHRyYW5zbGF0YWJs
ZSBzdHJpbmdzLgotRXJyb3JzR3RrLmNwcAorLi4vdW5peC9FcnJvcnNVbml4LmNwcAogTG9jYWxp
emVkU3RyaW5nc0d0ay5jcHAKIC4uLy4uLy4uL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvRG93bmxv
YWRzL3NvdXAvRG93bmxvYWRTb3VwLmNwcAogLi4vLi4vLi4vV2ViS2l0Mi9VSVByb2Nlc3MvQVBJ
L2d0ay9XZWJLaXRBdXRoZW50aWNhdGlvbkRpYWxvZy5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL21hYy9FcnJvcnNNYWMubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9tYWMvRXJyb3JzTWFjLm1tCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjM1MTFiNjBmMmI0Y2VlMDE3MThhYWNlMDIw
YTRmN2RkMjE5YzkxOGUKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9tYWMvRXJyb3JzTWFjLm1tCkBAIC0wLDAgKzEsMTE4IEBACisvKgorICogQ29weXJpZ2h0IChD
KSAyMDEwLTIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4K
KyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoK
KyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRS
SUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICog
UFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJ
VFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFH
RVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VC
U1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7
IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkg
VEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFC
SUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFS
SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisj
aW1wb3J0ICJjb25maWcuaCIKKyNpbXBvcnQgIkVycm9ycy5oIgorCisjaW1wb3J0ICJMb2NhbGl6
ZWRTdHJpbmdzLmgiCisjaW1wb3J0ICJSZXNvdXJjZUVycm9yLmgiCisjaW1wb3J0ICJSZXNvdXJj
ZVJlcXVlc3QuaCIKKyNpbXBvcnQgIlJlc291cmNlUmVzcG9uc2UuaCIKKworbmFtZXNwYWNlIFdl
YkNvcmUgeworCitlbnVtIHsKKyAgICBrV0tFcnJvckNvZGVDYW5ub3RTaG93TUlNRVR5cGUgPSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgMTAwLAorICAgIGtXS0Vycm9yQ29kZUNhbm5vdFNo
b3dVUkwgPSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxMDEsCisgICAga1dLRXJy
b3JDb2RlRnJhbWVMb2FkSW50ZXJydXB0ZWRCeVBvbGljeUNoYW5nZSA9ICAgICAgICAgICAgIDEw
MiwKKyAgICBrV0tFcnJvckNvZGVDYW5ub3RVc2VSZXN0cmljdGVkUG9ydCA9ICAgICAgICAgICAg
ICAgICAgICAgICAgMTAzLAorICAgIGtXS0Vycm9yQ29kZUZyYW1lTG9hZEJsb2NrZWRCeUNvbnRl
bnRCbG9ja2VyID0gICAgICAgICAgICAgICAxMDQsCisgICAga1dLRXJyb3JDb2RlQ2Fubm90Rmlu
ZFBsdWdJbiA9ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIwMCwKKyAgICBrV0tFcnJv
ckNvZGVDYW5ub3RMb2FkUGx1Z0luID0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMjAx
LAorICAgIGtXS0Vycm9yQ29kZUphdmFVbmF2YWlsYWJsZSA9ICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAyMDIsCisgICAga1dLRXJyb3JDb2RlUGx1Z0luQ2FuY2VsbGVkQ29ubmVjdGlv
biA9ICAgICAgICAgICAgICAgICAgICAgIDIwMywKKyAgICBrV0tFcnJvckNvZGVQbHVnSW5XaWxs
SGFuZGxlTG9hZCA9ICAgICAgICAgICAgICAgICAgICAgICAgICAgMjA0LAorICAgIGtXS0Vycm9y
Q29kZUluc2VjdXJlUGx1Z0luVmVyc2lvbiA9ICAgICAgICAgICAgICAgICAgICAgICAgICAyMDUs
CisgICAga1dLRXJyb3JJbnRlcm5hbCA9ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIDMwMCwKK307CisKK3N0YXRpYyBSZXRhaW5QdHI8TlNFcnJvcj4gY3JlYXRlTlNF
cnJvcihOU1N0cmluZyogZG9tYWluLCBpbnQgY29kZSwgTlNVUkwgKlVSTCkKK3sKKyAgICBOU0Rp
Y3Rpb25hcnkgKnVzZXJJbmZvID0gW05TRGljdGlvbmFyeSBkaWN0aW9uYXJ5V2l0aE9iamVjdHNB
bmRLZXlzOgorICAgICAgICBVUkwsIEAiTlNFcnJvckZhaWxpbmdVUkxLZXkiLAorICAgICAgICBb
VVJMIGFic29sdXRlU3RyaW5nXSwgQCJOU0Vycm9yRmFpbGluZ1VSTFN0cmluZ0tleSIsCisgICAg
ICAgIG5pbF07CisKKyAgICByZXR1cm4gYWRvcHROUyhbW05TRXJyb3IgYWxsb2NdIGluaXRXaXRo
RG9tYWluOmRvbWFpbiBjb2RlOmNvZGUgdXNlckluZm86dXNlckluZm9dKTsKK30KKworLy8gVXNl
IE5TRXJyb3IncyBpZiBhdmFpbGFibGUuCisKK1Jlc291cmNlRXJyb3IgY2FuY2VsbGVkRXJyb3Io
Y29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0KQoreworICAgIHJldHVybiBSZXNvdXJjZUVy
cm9yKGNyZWF0ZU5TRXJyb3IoTlNVUkxFcnJvckRvbWFpbiwgTlNVUkxFcnJvckNhbmNlbGxlZCwg
cmVxdWVzdC51cmwoKSkuZ2V0KCkpOworfQorCitSZXNvdXJjZUVycm9yIGZpbGVEb2VzTm90RXhp
c3RFcnJvcihjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiByZXNwb25zZSkKK3sKKyAgICByZXR1cm4g
UmVzb3VyY2VFcnJvcihjcmVhdGVOU0Vycm9yKE5TVVJMRXJyb3JEb21haW4sIE5TVVJMRXJyb3JG
aWxlRG9lc05vdEV4aXN0LCByZXNwb25zZS51cmwoKSkuZ2V0KCkpOworfQorCisKKy8vIE90aGVy
d2lzZSwgZmFsbGJhY2sgdG8gb3VyIG93biBlcnJvcnMuCisKK1Jlc291cmNlRXJyb3IgYmxvY2tl
ZEVycm9yKGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCkKK3sKKyAgICByZXR1cm4gUmVz
b3VyY2VFcnJvcih3ZWJLaXRFcnJvckRvbWFpbigpLCBrV0tFcnJvckNvZGVDYW5ub3RVc2VSZXN0
cmljdGVkUG9ydCwgcmVxdWVzdC51cmwoKSwgV0VCX1VJX1NUUklORygiTm90IGFsbG93ZWQgdG8g
dXNlIHJlc3RyaWN0ZWQgbmV0d29yayBwb3J0IiwgIldlYktpdEVycm9yQ2Fubm90VXNlUmVzdHJp
Y3RlZFBvcnQgZGVzY3JpcHRpb24iKSk7Cit9CisKK1Jlc291cmNlRXJyb3IgYmxvY2tlZEJ5Q29u
dGVudEJsb2NrZXJFcnJvcihjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QpCit7CisgICAg
cmV0dXJuIFJlc291cmNlRXJyb3Iod2ViS2l0RXJyb3JEb21haW4oKSwga1dLRXJyb3JDb2RlRnJh
bWVMb2FkQmxvY2tlZEJ5Q29udGVudEJsb2NrZXIsIHJlcXVlc3QudXJsKCksIFdFQl9VSV9TVFJJ
TkcoIlRoZSBVUkwgd2FzIGJsb2NrZWQgYnkgYSBjb250ZW50IGJsb2NrZXIiLCAiV2ViS2l0RXJy
b3JCbG9ja2VkQnlDb250ZW50QmxvY2tlciBkZXNjcmlwdGlvbiIpKTsKK30KKworUmVzb3VyY2VF
cnJvciBjYW5ub3RTaG93VVJMRXJyb3IoY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0KQor
eworICAgIHJldHVybiBSZXNvdXJjZUVycm9yKHdlYktpdEVycm9yRG9tYWluKCksIGtXS0Vycm9y
Q29kZUNhbm5vdFNob3dVUkwsIHJlcXVlc3QudXJsKCksIFdFQl9VSV9TVFJJTkcoIlRoZSBVUkwg
Y2Fu4oCZdCBiZSBzaG93biIsICJXZWJLaXRFcnJvckNhbm5vdFNob3dVUkwgZGVzY3JpcHRpb24i
KSk7Cit9CisKK1Jlc291cmNlRXJyb3IgaW50ZXJydXB0ZWRGb3JQb2xpY3lDaGFuZ2VFcnJvcihj
b25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QpCit7CisgICAgcmV0dXJuIFJlc291cmNlRXJy
b3Iod2ViS2l0RXJyb3JEb21haW4oKSwga1dLRXJyb3JDb2RlRnJhbWVMb2FkSW50ZXJydXB0ZWRC
eVBvbGljeUNoYW5nZSwgcmVxdWVzdC51cmwoKSwgV0VCX1VJX1NUUklORygiRnJhbWUgbG9hZCBp
bnRlcnJ1cHRlZCIsICJXZWJLaXRFcnJvckZyYW1lTG9hZEludGVycnVwdGVkQnlQb2xpY3lDaGFu
Z2UgZGVzY3JpcHRpb24iKSk7Cit9CisKKyNpZiBFTkFCTEUoQ09OVEVOVF9GSUxURVJJTkcpCitS
ZXNvdXJjZUVycm9yIGJsb2NrZWRCeUNvbnRlbnRGaWx0ZXJFcnJvcihjb25zdCBSZXNvdXJjZVJl
cXVlc3QmIHJlcXVlc3QpCit7CisgICAgcmV0dXJuIFJlc291cmNlRXJyb3IoQVBJOjpFcnJvcjo6
d2ViS2l0RXJyb3JEb21haW4oKSwga1dLRXJyb3JDb2RlRnJhbWVMb2FkQmxvY2tlZEJ5Q29udGVu
dEZpbHRlciwgcmVxdWVzdC51cmwoKSwgV0VCX1VJX1NUUklORygiVGhlIFVSTCB3YXMgYmxvY2tl
ZCBieSBhIGNvbnRlbnQgZmlsdGVyIiwgIldlYktpdEVycm9yQmxvY2tlZEJ5Q29udGVudEZpbHRl
ciIpKTsKK30KKyNlbmRpZgorCitSZXNvdXJjZUVycm9yIGNhbm5vdFNob3dNSU1FVHlwZUVycm9y
KGNvbnN0IFJlc291cmNlUmVzcG9uc2UmIHJlc3BvbnNlKQoreworICAgIHJldHVybiBSZXNvdXJj
ZUVycm9yKHdlYktpdEVycm9yRG9tYWluKCksIGtXS0Vycm9yQ29kZUNhbm5vdFNob3dNSU1FVHlw
ZSwgcmVzcG9uc2UudXJsKCksIFdFQl9VSV9TVFJJTkcoIkNvbnRlbnQgd2l0aCBzcGVjaWZpZWQg
TUlNRSB0eXBlIGNhbuKAmXQgYmUgc2hvd24iLCAiV2ViS2l0RXJyb3JDYW5ub3RTaG93TUlNRVR5
cGUgZGVzY3JpcHRpb24iKSk7Cit9CisKK1Jlc291cmNlRXJyb3IgcGx1Z2luV2lsbEhhbmRsZUxv
YWRFcnJvcihjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiByZXNwb25zZSkKK3sKKyAgICByZXR1cm4g
UmVzb3VyY2VFcnJvcih3ZWJLaXRFcnJvckRvbWFpbigpLCBrV0tFcnJvckNvZGVQbHVnSW5XaWxs
SGFuZGxlTG9hZCwgcmVzcG9uc2UudXJsKCksIFdFQl9VSV9TVFJJTkcoIlBsdWctaW4gaGFuZGxl
ZCBsb2FkIiwgIldlYktpdEVycm9yUGx1Z0luV2lsbEhhbmRsZUxvYWQgZGVzY3JpcHRpb24iKSk7
Cit9CisKK1Jlc291cmNlRXJyb3IgaW50ZXJuYWxFcnJvcihjb25zdCBVUkwmIHVybCkKK3sKKyAg
ICByZXR1cm4gUmVzb3VyY2VFcnJvcih3ZWJLaXRFcnJvckRvbWFpbigpLCBrV0tFcnJvckludGVy
bmFsLCB1cmwsIFdFQl9VSV9TVFJJTkcoIldlYktpdCBlbmNvdW50ZXJlZCBhbiBpbnRlcm5hbCBl
cnJvciIsICJXZWJLaXRFcnJvckludGVybmFsIGRlc2NyaXB0aW9uIikpOworfQorCit9IC8vIG5h
bWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS91bml4
L0Vycm9yc1VuaXguY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdW5peC9FcnJvcnNVbml4
LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi5iMTZmNDkyOWJiZTUwZTYwNWY2NGM0N2M5NDA3YWI0NjIyZmQ1MDQz
Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdW5peC9FcnJvcnNV
bml4LmNwcApAQCAtMCwwICsxLDExMiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMSBJZ2Fs
aWEgUy5MLgorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJl
ZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhl
IEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCisgKiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0
aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAqIHZlcnNpb24gMiBvZiB0aGUg
TGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiBU
aGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVz
ZWZ1bCwKKyAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBs
aWVkIHdhcnJhbnR5IG9mCisgKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICogTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBM
aWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisgKgorICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVk
IGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICogYWxv
bmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwg
d3JpdGUgdG8KKyAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5r
bGluIFN0cmVldCwgRmlmdGggRmxvb3IsCisgKiBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4K
KyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiRXJyb3JzVW5peC5oIgorCisj
aW5jbHVkZSAiRXJyb3JzLmgiCisjaW5jbHVkZSAiUmVzb3VyY2VFcnJvci5oIgorI2luY2x1ZGUg
IlJlc291cmNlUmVxdWVzdC5oIgorI2luY2x1ZGUgIlJlc291cmNlUmVzcG9uc2UuaCIKKworI2lm
IFBMQVRGT1JNKEdUSykKKyNpbmNsdWRlIDxnbGliL2dpMThuLWxpYi5oPgorI2RlZmluZSBFUlJP
Ul9TVFJJTkcocykgXyhzKQorI2VsaWYgUExBVEZPUk0oRUZMKQorI2RlZmluZSBFUlJPUl9TVFJJ
TkcocykgQVNDSUlMaXRlcmFsKHMpCisjZW5kaWYKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitS
ZXNvdXJjZUVycm9yIGNhbmNlbGxlZEVycm9yKGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVz
dCkKK3sKKyAgICByZXR1cm4gUmVzb3VyY2VFcnJvcihlcnJvckRvbWFpbk5ldHdvcmssIE5ldHdv
cmtFcnJvckNhbmNlbGxlZCwgcmVxdWVzdC51cmwoKSwgRVJST1JfU1RSSU5HKCJMb2FkIHJlcXVl
c3QgY2FuY2VsbGVkIikpOworfQorCitSZXNvdXJjZUVycm9yIGJsb2NrZWRFcnJvcihjb25zdCBS
ZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QpCit7CisgICAgcmV0dXJuIFJlc291cmNlRXJyb3IoZXJy
b3JEb21haW5Qb2xpY3ksIFBvbGljeUVycm9yQ2Fubm90VXNlUmVzdHJpY3RlZFBvcnQsIHJlcXVl
c3QudXJsKCksIEVSUk9SX1NUUklORygiTm90IGFsbG93ZWQgdG8gdXNlIHJlc3RyaWN0ZWQgbmV0
d29yayBwb3J0IikpOworfQorCitSZXNvdXJjZUVycm9yIGJsb2NrZWRCeUNvbnRlbnRCbG9ja2Vy
RXJyb3IoY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0KQoreworICAgIHJldHVybiBSZXNv
dXJjZUVycm9yKGVycm9yRG9tYWluUG9saWN5LCBQb2xpY3lFcnJvckJsb2NrZWRCeUNvbnRlbnRC
bG9ja2VyLCByZXF1ZXN0LnVybCgpLCBFUlJPUl9TVFJJTkcoIkJsb2NrZWQgYnkgY29udGVudCBi
bG9ja2VyIikpOworfQorCitSZXNvdXJjZUVycm9yIGNhbm5vdFNob3dVUkxFcnJvcihjb25zdCBS
ZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QpCit7CisgICAgcmV0dXJuIFJlc291cmNlRXJyb3IoZXJy
b3JEb21haW5Qb2xpY3ksIFBvbGljeUVycm9yQ2Fubm90U2hvd1VSTCwgcmVxdWVzdC51cmwoKSwg
RVJST1JfU1RSSU5HKCJVUkwgY2Fubm90IGJlIHNob3duIikpOworfQorCitSZXNvdXJjZUVycm9y
IGludGVycnVwdGVkRm9yUG9saWN5Q2hhbmdlRXJyb3IoY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiBy
ZXF1ZXN0KQoreworICAgIHJldHVybiBSZXNvdXJjZUVycm9yKGVycm9yRG9tYWluUG9saWN5LCBQ
b2xpY3lFcnJvckZyYW1lTG9hZEludGVycnVwdGVkQnlQb2xpY3lDaGFuZ2UsIHJlcXVlc3QudXJs
KCksIEVSUk9SX1NUUklORygiRnJhbWUgbG9hZCB3YXMgaW50ZXJydXB0ZWQiKSk7Cit9CisKK1Jl
c291cmNlRXJyb3IgY2Fubm90U2hvd01JTUVUeXBlRXJyb3IoY29uc3QgUmVzb3VyY2VSZXNwb25z
ZSYgcmVzcG9uc2UpCit7CisgICAgcmV0dXJuIFJlc291cmNlRXJyb3IoZXJyb3JEb21haW5Qb2xp
Y3ksIFBvbGljeUVycm9yQ2Fubm90U2hvd01pbWVUeXBlLCByZXNwb25zZS51cmwoKSwgRVJST1Jf
U1RSSU5HKCJDb250ZW50IHdpdGggdGhlIHNwZWNpZmllZCBNSU1FIHR5cGUgY2Fubm90IGJlIHNo
b3duIikpOworfQorCitSZXNvdXJjZUVycm9yIGZpbGVEb2VzTm90RXhpc3RFcnJvcihjb25zdCBS
ZXNvdXJjZVJlc3BvbnNlJiByZXNwb25zZSkKK3sKKyAgICByZXR1cm4gUmVzb3VyY2VFcnJvcihl
cnJvckRvbWFpbk5ldHdvcmssIE5ldHdvcmtFcnJvckZpbGVEb2VzTm90RXhpc3QsIHJlc3BvbnNl
LnVybCgpLCBFUlJPUl9TVFJJTkcoIkZpbGUgZG9lcyBub3QgZXhpc3QiKSk7Cit9CisKK1Jlc291
cmNlRXJyb3IgcGx1Z2luV2lsbEhhbmRsZUxvYWRFcnJvcihjb25zdCBSZXNvdXJjZVJlc3BvbnNl
JiByZXNwb25zZSkKK3sKKyAgICByZXR1cm4gUmVzb3VyY2VFcnJvcihlcnJvckRvbWFpblBsdWdp
biwgUGx1Z2luRXJyb3JXaWxsSGFuZGxlTG9hZCwgcmVzcG9uc2UudXJsKCksIEVSUk9SX1NUUklO
RygiUGx1Z2luIHdpbGwgaGFuZGxlIGxvYWQiKSk7Cit9CisKK1Jlc291cmNlRXJyb3IgZG93bmxv
YWROZXR3b3JrRXJyb3IoY29uc3QgUmVzb3VyY2VFcnJvciYgbmV0d29ya0Vycm9yKQoreworICAg
IHJldHVybiBSZXNvdXJjZUVycm9yKGVycm9yRG9tYWluRG93bmxvYWQsIERvd25sb2FkRXJyb3JO
ZXR3b3JrLCBuZXR3b3JrRXJyb3IuZmFpbGluZ1VSTCgpLCBuZXR3b3JrRXJyb3IubG9jYWxpemVk
RGVzY3JpcHRpb24oKSk7Cit9CisKK1Jlc291cmNlRXJyb3IgZG93bmxvYWRDYW5jZWxsZWRCeVVz
ZXJFcnJvcihjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiByZXNwb25zZSkKK3sKKyAgICByZXR1cm4g
UmVzb3VyY2VFcnJvcihlcnJvckRvbWFpbkRvd25sb2FkLCBEb3dubG9hZEVycm9yQ2FuY2VsbGVk
QnlVc2VyLCByZXNwb25zZS51cmwoKSwgRVJST1JfU1RSSU5HKCJVc2VyIGNhbmNlbGxlZCB0aGUg
ZG93bmxvYWQiKSk7Cit9CisKK1Jlc291cmNlRXJyb3IgZG93bmxvYWREZXN0aW5hdGlvbkVycm9y
KGNvbnN0IFJlc291cmNlUmVzcG9uc2UmIHJlc3BvbnNlLCBjb25zdCBTdHJpbmcmIGVycm9yTWVz
c2FnZSkKK3sKKyAgICByZXR1cm4gUmVzb3VyY2VFcnJvcihlcnJvckRvbWFpbkRvd25sb2FkLCBE
b3dubG9hZEVycm9yRGVzdGluYXRpb24sIHJlc3BvbnNlLnVybCgpLCBlcnJvck1lc3NhZ2UpOwor
fQorCitSZXNvdXJjZUVycm9yIHByaW50RXJyb3IoY29uc3QgVVJMJiBmYWlsaW5nVVJMLCBjb25z
dCBTdHJpbmcmIGVycm9yTWVzc2FnZSkKK3sKKyAgICByZXR1cm4gUmVzb3VyY2VFcnJvcihlcnJv
ckRvbWFpblByaW50LCBQcmludEVycm9yR2VuZXJhbCwgZmFpbGluZ1VSTCwgZXJyb3JNZXNzYWdl
KTsKK30KKworUmVzb3VyY2VFcnJvciBwcmludGVyTm90Rm91bmRFcnJvcihjb25zdCBVUkwmIGZh
aWxpbmdVUkwpCit7CisgICAgcmV0dXJuIFJlc291cmNlRXJyb3IoZXJyb3JEb21haW5QcmludCwg
UHJpbnRFcnJvclByaW50ZXJOb3RGb3VuZCwgZmFpbGluZ1VSTCwgRVJST1JfU1RSSU5HKCJQcmlu
dGVyIG5vdCBmb3VuZCIpKTsKK30KKworUmVzb3VyY2VFcnJvciBpbnZhbGlkUGFnZVJhbmdlVG9Q
cmludChjb25zdCBVUkwmIGZhaWxpbmdVUkwpCit7CisgICAgcmV0dXJuIFJlc291cmNlRXJyb3Io
ZXJyb3JEb21haW5QcmludCwgUHJpbnRFcnJvckludmFsaWRQYWdlUmFuZ2UsIGZhaWxpbmdVUkws
IEVSUk9SX1NUUklORygiSW52YWxpZCBwYWdlIHJhbmdlIikpOworfQorCitSZXNvdXJjZUVycm9y
IGludGVybmFsRXJyb3IoY29uc3QgVVJMJiB1cmwpCit7CisgICAgcmV0dXJuIFJlc291cmNlRXJy
b3Iod2ViS2l0RXJyb3JEb21haW4oKSwgUG9saWN5RXJyb3JJbnRlcm5hbCwgdXJsLCBFUlJPUl9T
VFJJTkcoIkludGVybmFsIGVycm9yIikpOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS91bml4L0Vycm9yc1VuaXguaCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL3VuaXgvRXJyb3JzVW5peC5oCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjQxZjI1
ZTUxY2E1MGIyY2YzY2FiMzgwMzk4YTY5MTM2ODVmM2FiZmIKLS0tIC9kZXYvbnVsbAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS91bml4L0Vycm9yc1VuaXguaApAQCAtMCwwICsxLDg3IEBA
CisvKgorICogQ29weXJpZ2h0IChDKSAyMDExLCAyMDE2IElnYWxpYSBTLkwuCisgKgorICogVGhp
cyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9v
cgorICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJh
bCBQdWJsaWMKKyAqIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZv
dW5kYXRpb247IGVpdGhlcgorICogdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91
ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBkaXN0
cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICogYnV0IFdJVEhP
VVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAq
IE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNl
ZSB0aGUgR05VCisgKiBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0
YWlscy4KKyAqCisgKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUg
TGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgKiBhbG9uZyB3aXRoIHRoaXMgbGlicmFy
eTsgc2VlIHRoZSBmaWxlIENPUFlJTkcuTElCLiAgSWYgbm90LCB3cml0ZSB0bworICogdGhlIEZy
ZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBG
bG9vciwKKyAqIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgorICovCisKKyNpZm5kZWYgRXJy
b3JzVW5peF9oCisjZGVmaW5lIEVycm9yc1VuaXhfaAorCisjaW5jbHVkZSA8d3RmL3RleHQvV1RG
U3RyaW5nLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgUmVzb3VyY2VFcnJvcjsK
K2NsYXNzIFJlc291cmNlUmVxdWVzdDsKK2NsYXNzIFJlc291cmNlUmVzcG9uc2U7CitjbGFzcyBV
Ukw7CisKK2NvbnN0IGNoYXIqIGNvbnN0IGVycm9yRG9tYWluTmV0d29yayA9ICJXZWJLaXROZXR3
b3JrRXJyb3IiOworY29uc3QgY2hhciogY29uc3QgZXJyb3JEb21haW5Qb2xpY3kgPSAiV2ViS2l0
UG9saWN5RXJyb3IiOworY29uc3QgY2hhciogY29uc3QgZXJyb3JEb21haW5QbHVnaW4gPSAiV2Vi
S2l0UGx1Z2luRXJyb3IiOworY29uc3QgY2hhciogY29uc3QgZXJyb3JEb21haW5Eb3dubG9hZCA9
ICJXZWJLaXREb3dubG9hZEVycm9yIjsKK2NvbnN0IGNoYXIqIGNvbnN0IGVycm9yRG9tYWluUHJp
bnQgPSAiV2ViS2l0UHJpbnRFcnJvciI7CisKK2VudW0gTmV0d29ya0Vycm9yIHsKKyAgICBOZXR3
b3JrRXJyb3JGYWlsZWQgPSAzOTksCisgICAgTmV0d29ya0Vycm9yVW5rbm93blByb3RvY29sID0g
MzAxLAorICAgIE5ldHdvcmtFcnJvckNhbmNlbGxlZCA9IDMwMiwKKyAgICBOZXR3b3JrRXJyb3JG
aWxlRG9lc05vdEV4aXN0ID0gMzAzLAorICAgIE5ldHdvcmtFcnJvclRyYW5zcG9ydCA9IDMwNCwK
K307CisKKy8vIFN5bmMnZCB3aXRoIE1hYydzIFdlYktpdCBFcnJvcnMuCitlbnVtIFBvbGljeUVy
cm9yIHsKKyAgICBQb2xpY3lFcnJvckludGVybmFsID0gMzAwLAorICAgIFBvbGljeUVycm9yRmFp
bGVkID0gMTk5LAorICAgIFBvbGljeUVycm9yQ2Fubm90U2hvd01pbWVUeXBlID0gMTAwLAorICAg
IFBvbGljeUVycm9yQ2Fubm90U2hvd1VSTCA9IDEwMSwKKyAgICBQb2xpY3lFcnJvckZyYW1lTG9h
ZEludGVycnVwdGVkQnlQb2xpY3lDaGFuZ2UgPSAxMDIsCisgICAgUG9saWN5RXJyb3JDYW5ub3RV
c2VSZXN0cmljdGVkUG9ydCA9IDEwMywKKyAgICBQb2xpY3lFcnJvckJsb2NrZWRCeUNvbnRlbnRC
bG9ja2VyID0gMTA0LAorfTsKKworZW51bSBQbHVnaW5FcnJvciB7CisgICAgUGx1Z2luRXJyb3JG
YWlsZWQgPSAyOTksCisgICAgUGx1Z2luRXJyb3JDYW5ub3RGaW5kUGx1Z2luID0gMjAwLAorICAg
IFBsdWdpbkVycm9yQ2Fubm90TG9hZFBsdWdpbiA9IDIwMSwKKyAgICBQbHVnaW5FcnJvckphdmFV
bmF2YWlsYWJsZSA9IDIwMiwKKyAgICBQbHVnaW5FcnJvckNvbm5lY3Rpb25DYW5jZWxsZWQgPSAy
MDMsCisgICAgUGx1Z2luRXJyb3JXaWxsSGFuZGxlTG9hZCA9IDIwNAorfTsKKworZW51bSBEb3du
bG9hZEVycm9yIHsKKyAgICBEb3dubG9hZEVycm9yTmV0d29yayA9IDQ5OSwKKyAgICBEb3dubG9h
ZEVycm9yQ2FuY2VsbGVkQnlVc2VyID0gNDAwLAorICAgIERvd25sb2FkRXJyb3JEZXN0aW5hdGlv
biA9IDQwMQorfTsKKworZW51bSBQcmludEVycm9yIHsKKyAgICBQcmludEVycm9yR2VuZXJhbCA9
IDU5OSwKKyAgICBQcmludEVycm9yUHJpbnRlck5vdEZvdW5kID0gNTAwLAorICAgIFByaW50RXJy
b3JJbnZhbGlkUGFnZVJhbmdlID0gNTAxCit9OworCitSZXNvdXJjZUVycm9yIGRvd25sb2FkTmV0
d29ya0Vycm9yKGNvbnN0IFJlc291cmNlRXJyb3ImKTsKK1Jlc291cmNlRXJyb3IgZG93bmxvYWRD
YW5jZWxsZWRCeVVzZXJFcnJvcihjb25zdCBSZXNvdXJjZVJlc3BvbnNlJik7CitSZXNvdXJjZUVy
cm9yIGRvd25sb2FkRGVzdGluYXRpb25FcnJvcihjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiwgY29u
c3QgU3RyaW5nJiBlcnJvck1lc3NhZ2UpOworUmVzb3VyY2VFcnJvciBwcmludEVycm9yKGNvbnN0
IFVSTCYgZmFpbGluZ1VSTCwgY29uc3QgU3RyaW5nJiBlcnJvck1lc3NhZ2UpOworUmVzb3VyY2VF
cnJvciBwcmludGVyTm90Rm91bmRFcnJvcihjb25zdCBVUkwmIGZhaWxpbmdVUkwpOworUmVzb3Vy
Y2VFcnJvciBpbnZhbGlkUGFnZVJhbmdlVG9QcmludChjb25zdCBVUkwmIGZhaWxpbmdVUkwpOwor
Cit9CisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vd2luL0Vy
cm9yc1dpbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS93aW4vRXJyb3JzV2luLmNwcApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi41MmQ0MzExM2IwN2ZkODY0OWFjN2E0MzQ3YTRmNzg5NTkwYjk5ZjAxCi0tLSAv
ZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vd2luL0Vycm9yc1dpbi5jcHAK
QEAgLTAsMCArMSw5NCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAwNi0yMDE2IEFwcGxlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwor
ICogYXJlIG1ldDoKKyAqCisgKiAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiAgUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIg
bWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqIDMuICBOZWl0aGVy
IHRoZSBuYW1lIG9mIEFwcGxlIEluYy4gKCJBcHBsZSIpIG5vciB0aGUgbmFtZXMgb2YKKyAqICAg
ICBpdHMgY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9k
dWN0cyBkZXJpdmVkCisgKiAgICAgZnJvbSB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMg
cHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgQVBQTEUgQU5EIElUUyBDT05UUklCVVRPUlMgIkFTIElTIiBBTkQgQU5ZCisgKiBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFRIRSBJTVBMSUVECisgKiBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCisgKiBESVNDTEFJTUVELiBJTiBOTyBFVkVO
VCBTSEFMTCBBUFBMRSBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZCisgKiBE
SVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNF
UVVFTlRJQUwgREFNQUdFUworICogKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9D
VVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOworICogTE9TUyBPRiBVU0Us
IERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5ECisgKiBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GCisgKiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJFcnJvcnMuaCIKKwor
I2luY2x1ZGUgIkxvY2FsaXplZFN0cmluZ3MuaCIKKyNpbmNsdWRlICJSZXNvdXJjZUVycm9yLmgi
CisjaW5jbHVkZSAiUmVzb3VyY2VSZXF1ZXN0LmgiCisjaW5jbHVkZSAiUmVzb3VyY2VSZXNwb25z
ZS5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKKy8vIFRoZSBlbnVtZXJhdGlvbiBhbmQgZGVm
aW5pdGlvbnMgY29tZSBmcm9tIElXZWJFcnJvci5pZGwgYW5kCisvLyBJV2ViRXJyb3JQcml2YXRl
LmlkbC4KKworZW51bSB7CisgICAgV2ViS2l0RXJyb3JDYW5ub3RTaG93TUlNRVR5cGUgPSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgMTAwLAorICAgIFdlYktpdEVycm9yQ2Fubm90U2hvd1VS
TCA9ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEwMSwKKyAgICBXZWJLaXRFcnJv
ckZyYW1lTG9hZEludGVycnVwdGVkQnlQb2xpY3lDaGFuZ2UgPSAgICAgICAgICAgICAxMDIsCisg
ICAgV2ViS2l0RXJyb3JDYW5ub3RVc2VSZXN0cmljdGVkUG9ydCA9ICAgICAgICAgICAgICAgICAg
ICAgICAgMTAzLAorICAgIFdlYktpdEVycm9yUGx1Z0luV2lsbEhhbmRsZUxvYWQgPSAgICAgICAg
ICAgICAgICAgICAgICAgICAgIDIwNCwKK307CisKKyNkZWZpbmUgV2ViVVJMRXJyb3JEb21haW4g
IkNGVVJMRXJyb3JEb21haW4iCisKK1Jlc291cmNlRXJyb3IgY2FuY2VsbGVkRXJyb3IoY29uc3Qg
UmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0KQoreworICAgIC8vIEZJWE1FOiBOZWVkIENoaWNrZW5D
YXQgdG8gaW5jbHVkZSBDRk5ldHdvcmsvQ0ZVUkxFcnJvci5oIHRvIGdldCB0aGVzZSB2YWx1ZXMK
KyAgICAvLyBBbHRlcm5hdGl2ZWx5LCB3ZSBjb3VsZCBjcmVhdGUgb3VyIG93biBlcnJvciBkb21h
aW4vY29kZXMuCisgICAgcmV0dXJuIFJlc291cmNlRXJyb3IoU3RyaW5nKFdlYlVSTEVycm9yRG9t
YWluKSwgLTk5OSwgcmVxdWVzdC51cmwoKSwgU3RyaW5nKCJDYW5jZWxsZWQiKSk7Cit9CisKK1Jl
c291cmNlRXJyb3IgYmxvY2tlZEVycm9yKGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCkK
K3sKKyAgICByZXR1cm4gUmVzb3VyY2VFcnJvcih3ZWJLaXRFcnJvckRvbWFpbigpLCBXZWJLaXRF
cnJvckNhbm5vdFVzZVJlc3RyaWN0ZWRQb3J0LCByZXF1ZXN0LnVybCgpLCBXRUJfVUlfU1RSSU5H
KCJOb3QgYWxsb3dlZCB0byB1c2UgcmVzdHJpY3RlZCBuZXR3b3JrIHBvcnQiLCAiV2ViS2l0RXJy
b3JDYW5ub3RVc2VSZXN0cmljdGVkUG9ydCBkZXNjcmlwdGlvbiIpKTsKK30KKworUmVzb3VyY2VF
cnJvciBibG9ja2VkQnlDb250ZW50QmxvY2tlckVycm9yKGNvbnN0IFJlc291cmNlUmVxdWVzdCYg
cmVxdWVzdCkKK3sKKyAgICBSRUxFQVNFX0FTU0VSVF9OT1RfUkVBQ0hFRCgpOyAvLyBDb250ZW50
IEJsb2NrZXJzIGFyZSBub3QgZW5hYmxlZCBmb3IgV0sxLgorfQorCitSZXNvdXJjZUVycm9yIGNh
bm5vdFNob3dVUkxFcnJvcihjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QpCit7CisgICAg
cmV0dXJuIFJlc291cmNlRXJyb3Iod2ViS2l0RXJyb3JEb21haW4oKSwgV2ViS2l0RXJyb3JDYW5u
b3RTaG93VVJMLCByZXF1ZXN0LnVybCgpLCBXRUJfVUlfU1RSSU5HKCJUaGUgVVJMIGNhblx4RTJc
eDgwXHg5OXQgYmUgc2hvd24iLCAiV2ViS2l0RXJyb3JDYW5ub3RTaG93VVJMIGRlc2NyaXB0aW9u
IikpOworfQorCitSZXNvdXJjZUVycm9yIGludGVycnVwdGVkRm9yUG9saWN5Q2hhbmdlRXJyb3Io
Y29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0KQoreworICAgIHJldHVybiBSZXNvdXJjZUVy
cm9yKHdlYktpdEVycm9yRG9tYWluKCksIFdlYktpdEVycm9yRnJhbWVMb2FkSW50ZXJydXB0ZWRC
eVBvbGljeUNoYW5nZSwgcmVxdWVzdC51cmwoKSwgV0VCX1VJX1NUUklORygiRnJhbWUgbG9hZCBp
bnRlcnJ1cHRlZCIsICJXZWJLaXRFcnJvckZyYW1lTG9hZEludGVycnVwdGVkQnlQb2xpY3lDaGFu
Z2UgZGVzY3JpcHRpb24iKSk7Cit9CisKK1Jlc291cmNlRXJyb3IgY2Fubm90U2hvd01JTUVUeXBl
RXJyb3IoY29uc3QgUmVzb3VyY2VSZXNwb25zZSYgcmVzcG9uc2UpCit7CisgICAgcmV0dXJuIFJl
c291cmNlRXJyb3IoU3RyaW5nKCksIFdlYktpdEVycm9yQ2Fubm90U2hvd01JTUVUeXBlLCByZXNw
b25zZS51cmwoKSwgV0VCX1VJX1NUUklORygiQ29udGVudCB3aXRoIHNwZWNpZmllZCBNSU1FIHR5
cGUgY2FuXHhFMlx4ODBceDk5dCBiZSBzaG93biIsICJXZWJLaXRFcnJvckNhbm5vdFNob3dNSU1F
VHlwZSBkZXNjcmlwdGlvbiIpKTsKK30KKworUmVzb3VyY2VFcnJvciBmaWxlRG9lc05vdEV4aXN0
RXJyb3IoY29uc3QgUmVzb3VyY2VSZXNwb25zZSYgcmVzcG9uc2UpCit7CisgICAgcmV0dXJuIFJl
c291cmNlRXJyb3IoU3RyaW5nKFdlYlVSTEVycm9yRG9tYWluKSwgLTExMDAsIHJlc3BvbnNlLnVy
bCgpLCBTdHJpbmcoIkZpbGUgZG9lcyBub3QgZXhpc3QuIikpOworfQorCitSZXNvdXJjZUVycm9y
IHBsdWdpbldpbGxIYW5kbGVMb2FkRXJyb3IoY29uc3QgUmVzb3VyY2VSZXNwb25zZSYgcmVzcG9u
c2UpCit7CisgICAgcmV0dXJuIFJlc291cmNlRXJyb3Iod2ViS2l0RXJyb3JEb21haW4oKSwgV2Vi
S2l0RXJyb3JQbHVnSW5XaWxsSGFuZGxlTG9hZCwgcmVzcG9uc2UudXJsKCksIFdFQl9VSV9TVFJJ
TkcoIlBsdWctaW4gaGFuZGxlZCBsb2FkIiwgIldlYktpdEVycm9yUGx1Z0luV2lsbEhhbmRsZUxv
YWQgZGVzY3JpcHRpb24iKSk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50
LmggYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVu
dC5oCmluZGV4IDI2NzlkN2M5ZGY4ZGY4ZTNlM2E2YTFlNTM3MDhlYTFjODcyMWY4NzIuLmRmOGQ5
Nzk4Y2NjNTkyMTFkYTkyNWY2MWY3NjgxOTEyM2ZmNzJiODggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmgKKysrIGIvU291
cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuaApAQCAt
MTU3LDE5ICsxNTcsNiBAQCBwcml2YXRlOgogICAgIHZvaWQgZGlkUnVuSW5zZWN1cmVDb250ZW50
KFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luKiwgY29uc3QgV2ViQ29yZTo6VVJMJikgb3ZlcnJpZGU7
CiAgICAgdm9pZCBkaWREZXRlY3RYU1MoY29uc3QgV2ViQ29yZTo6VVJMJiwgYm9vbCBkaWRCbG9j
a0VudGlyZVBhZ2UpIG92ZXJyaWRlOwogCi0gICAgV2ViQ29yZTo6UmVzb3VyY2VFcnJvciBjYW5j
ZWxsZWRFcnJvcihjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmKSBvdmVycmlkZTsKLSAg
ICBXZWJDb3JlOjpSZXNvdXJjZUVycm9yIGJsb2NrZWRFcnJvcihjb25zdCBXZWJDb3JlOjpSZXNv
dXJjZVJlcXVlc3QmKSBvdmVycmlkZTsKLSAgICBXZWJDb3JlOjpSZXNvdXJjZUVycm9yIGJsb2Nr
ZWRCeUNvbnRlbnRCbG9ja2VyRXJyb3IoY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0Jikg
b3ZlcnJpZGU7Ci0gICAgV2ViQ29yZTo6UmVzb3VyY2VFcnJvciBjYW5ub3RTaG93VVJMRXJyb3Io
Y29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0Jikgb3ZlcnJpZGU7Ci0gICAgV2ViQ29yZTo6
UmVzb3VyY2VFcnJvciBpbnRlcnJ1cHRlZEZvclBvbGljeUNoYW5nZUVycm9yKGNvbnN0IFdlYkNv
cmU6OlJlc291cmNlUmVxdWVzdCYpIG92ZXJyaWRlOwotI2lmIEVOQUJMRShDT05URU5UX0ZJTFRF
UklORykKLSAgICBXZWJDb3JlOjpSZXNvdXJjZUVycm9yIGJsb2NrZWRCeUNvbnRlbnRGaWx0ZXJF
cnJvcihjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmKSBvdmVycmlkZTsKLSNlbmRpZgot
Ci0gICAgV2ViQ29yZTo6UmVzb3VyY2VFcnJvciBjYW5ub3RTaG93TUlNRVR5cGVFcnJvcihjb25z
dCBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlJikgb3ZlcnJpZGU7Ci0gICAgV2ViQ29yZTo6UmVz
b3VyY2VFcnJvciBmaWxlRG9lc05vdEV4aXN0RXJyb3IoY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VS
ZXNwb25zZSYpIG92ZXJyaWRlOwotICAgIFdlYkNvcmU6OlJlc291cmNlRXJyb3IgcGx1Z2luV2ls
bEhhbmRsZUxvYWRFcnJvcihjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlJikgb3ZlcnJp
ZGU7Ci0KICAgICBib29sIHNob3VsZEZhbGxCYWNrKGNvbnN0IFdlYkNvcmU6OlJlc291cmNlRXJy
b3ImKSBvdmVycmlkZTsKIAogICAgIFdURjo6U3RyaW5nIHVzZXJBZ2VudChjb25zdCBXZWJDb3Jl
OjpVUkwmKSBvdmVycmlkZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVT
dXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50Lm1tIGIvU291cmNlL1dlYktpdC9tYWMvV2ViQ29y
ZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQubW0KaW5kZXggZWNmMmY1MDE1NmFkMmRmZTE1
YjRmNGFkMjFkZmM5N2YwM2FmMjZjZC4uNzE5ZWQwNmUyNzYyNWVlOTFkMWZlMzhiMDYyYzgwOWIx
Mzk0NmNlZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2Vi
RnJhbWVMb2FkZXJDbGllbnQubW0KKysrIGIvU291cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBv
cnQvV2ViRnJhbWVMb2FkZXJDbGllbnQubW0KQEAgLTExMjMsNTggKzExMjMsNiBAQCB2b2lkIFdl
YkZyYW1lTG9hZGVyQ2xpZW50OjpkaWREZXRlY3RYU1MoY29uc3QgVVJMJiBpbnNlY3VyZVVSTCwg
Ym9vbCBkaWRCbG9ja0VudAogICAgIH0KIH0KIAotUmVzb3VyY2VFcnJvciBXZWJGcmFtZUxvYWRl
ckNsaWVudDo6Y2FuY2VsbGVkRXJyb3IoY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0KQot
ewotICAgIHJldHVybiBbTlNFcnJvciBfd2ViS2l0RXJyb3JXaXRoRG9tYWluOk5TVVJMRXJyb3JE
b21haW4gY29kZTpOU1VSTEVycm9yQ2FuY2VsbGVkIFVSTDpyZXF1ZXN0LnVybCgpXTsKLX0KLSAg
ICAKLVJlc291cmNlRXJyb3IgV2ViRnJhbWVMb2FkZXJDbGllbnQ6OmJsb2NrZWRFcnJvcihjb25z
dCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QpCi17Ci0gICAgcmV0dXJuIFtOU0Vycm9yIF93ZWJL
aXRFcnJvcldpdGhEb21haW46V2ViS2l0RXJyb3JEb21haW4gY29kZTpXZWJLaXRFcnJvckNhbm5v
dFVzZVJlc3RyaWN0ZWRQb3J0IFVSTDpyZXF1ZXN0LnVybCgpXTsKLX0KLQotUmVzb3VyY2VFcnJv
ciBXZWJGcmFtZUxvYWRlckNsaWVudDo6YmxvY2tlZEJ5Q29udGVudEJsb2NrZXJFcnJvcihjb25z
dCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QpCi17Ci0gICAgUkVMRUFTRV9BU1NFUlRfTk9UX1JF
QUNIRUQoKTsgLy8gQ29udGVudCBibG9ja2VycyBhcmUgbm90IGVuYWJsZWQgaW4gV2ViS2l0MS4K
LX0KLQotUmVzb3VyY2VFcnJvciBXZWJGcmFtZUxvYWRlckNsaWVudDo6Y2Fubm90U2hvd1VSTEVy
cm9yKGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCkKLXsKLSAgICByZXR1cm4gW05TRXJy
b3IgX3dlYktpdEVycm9yV2l0aERvbWFpbjpXZWJLaXRFcnJvckRvbWFpbiBjb2RlOldlYktpdEVy
cm9yQ2Fubm90U2hvd1VSTCBVUkw6cmVxdWVzdC51cmwoKV07Ci19Ci0KLVJlc291cmNlRXJyb3Ig
V2ViRnJhbWVMb2FkZXJDbGllbnQ6OmludGVycnVwdGVkRm9yUG9saWN5Q2hhbmdlRXJyb3IoY29u
c3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0KQotewotICAgIHJldHVybiBbTlNFcnJvciBfd2Vi
S2l0RXJyb3JXaXRoRG9tYWluOldlYktpdEVycm9yRG9tYWluIGNvZGU6V2ViS2l0RXJyb3JGcmFt
ZUxvYWRJbnRlcnJ1cHRlZEJ5UG9saWN5Q2hhbmdlIFVSTDpyZXF1ZXN0LnVybCgpXTsKLX0KLQot
I2lmIEVOQUJMRShDT05URU5UX0ZJTFRFUklORykKLVJlc291cmNlRXJyb3IgV2ViRnJhbWVMb2Fk
ZXJDbGllbnQ6OmJsb2NrZWRCeUNvbnRlbnRGaWx0ZXJFcnJvcihjb25zdCBSZXNvdXJjZVJlcXVl
c3QmIHJlcXVlc3QpCi17Ci0gICAgcmV0dXJuIFtOU0Vycm9yIF93ZWJLaXRFcnJvcldpdGhEb21h
aW46V2ViS2l0RXJyb3JEb21haW4gY29kZTpXZWJLaXRFcnJvckZyYW1lTG9hZEJsb2NrZWRCeUNv
bnRlbnRGaWx0ZXIgVVJMOnJlcXVlc3QudXJsKCldOwotfQotI2VuZGlmCi0KLVJlc291cmNlRXJy
b3IgV2ViRnJhbWVMb2FkZXJDbGllbnQ6OmNhbm5vdFNob3dNSU1FVHlwZUVycm9yKGNvbnN0IFJl
c291cmNlUmVzcG9uc2UmIHJlc3BvbnNlKQotewotICAgIHJldHVybiBbTlNFcnJvciBfd2ViS2l0
RXJyb3JXaXRoRG9tYWluOk5TVVJMRXJyb3JEb21haW4gY29kZTpXZWJLaXRFcnJvckNhbm5vdFNo
b3dNSU1FVHlwZSBVUkw6cmVzcG9uc2UudXJsKCldOwotfQotCi1SZXNvdXJjZUVycm9yIFdlYkZy
YW1lTG9hZGVyQ2xpZW50OjpmaWxlRG9lc05vdEV4aXN0RXJyb3IoY29uc3QgUmVzb3VyY2VSZXNw
b25zZSYgcmVzcG9uc2UpCi17Ci0gICAgcmV0dXJuIFtOU0Vycm9yIF93ZWJLaXRFcnJvcldpdGhE
b21haW46TlNVUkxFcnJvckRvbWFpbiBjb2RlOk5TVVJMRXJyb3JGaWxlRG9lc05vdEV4aXN0IFVS
TDpyZXNwb25zZS51cmwoKV07ICAgIAotfQotCi1SZXNvdXJjZUVycm9yIFdlYkZyYW1lTG9hZGVy
Q2xpZW50OjpwbHVnaW5XaWxsSGFuZGxlTG9hZEVycm9yKGNvbnN0IFJlc291cmNlUmVzcG9uc2Um
IHJlc3BvbnNlKQotewotICAgIE5TRXJyb3IgKmVycm9yID0gW1tOU0Vycm9yIGFsbG9jXSBfaW5p
dFdpdGhQbHVnaW5FcnJvckNvZGU6V2ViS2l0RXJyb3JQbHVnSW5XaWxsSGFuZGxlTG9hZAotICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRlbnRV
Ukw6cmVzcG9uc2UudXJsKCkKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBwbHVnaW5QYWdlVVJMOm5pbAotICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIHBsdWdpbk5hbWU6bmlsCi0gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBNSU1FVHlwZTpyZXNwb25zZS5t
aW1lVHlwZSgpXTsKLSAgICByZXR1cm4gW2Vycm9yIGF1dG9yZWxlYXNlXTsKLX0KLQogYm9vbCBX
ZWJGcmFtZUxvYWRlckNsaWVudDo6c2hvdWxkRmFsbEJhY2soY29uc3QgUmVzb3VyY2VFcnJvciYg
ZXJyb3IpCiB7CiAgICAgLy8gRklYTUU6IE5lZWRzIHRvIGNoZWNrIGRvbWFpbi4KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTmV0d29ya2luZ0Nv
bnRleHQubW0gYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZU5ldHdv
cmtpbmdDb250ZXh0Lm1tCmluZGV4IDkzZTc0YmJlNjI4NGI2M2MyMzIxMjlkMTc0OGUwZDkxNjJk
MWExOWMuLjE3OTM2MzdmOTJiZGQwZmU3YmQ5Mzk0ODc0OTA4ZGM3MjQwYzFmMjIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTmV0d29ya2luZ0Nv
bnRleHQubW0KKysrIGIvU291cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVO
ZXR3b3JraW5nQ29udGV4dC5tbQpAQCAtMjgsNiArMjgsNyBAQAogI2ltcG9ydCAiV2ViRnJhbWVJ
bnRlcm5hbC5oIgogI2ltcG9ydCAiV2ViVmlld1ByaXZhdGUuaCIKICNpbXBvcnQgPFdlYkNvcmUv
Q0ZOZXR3b3JrU1BJLmg+CisjaW1wb3J0IDxXZWJDb3JlL0Vycm9ycy5oPgogI2ltcG9ydCA8V2Vi
Q29yZS9GcmFtZUxvYWRlci5oPgogI2ltcG9ydCA8V2ViQ29yZS9GcmFtZUxvYWRlckNsaWVudC5o
PgogI2ltcG9ydCA8V2ViQ29yZS9OZXR3b3JrU3RvcmFnZVNlc3Npb24uaD4KQEAgLTkxLDcgKzky
LDcgQEAgU3RyaW5nIFdlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQ6OnNvdXJjZUFwcGxpY2F0aW9u
SWRlbnRpZmllcigpIGNvbnN0CiAKIFJlc291cmNlRXJyb3IgV2ViRnJhbWVOZXR3b3JraW5nQ29u
dGV4dDo6YmxvY2tlZEVycm9yKGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCkgY29uc3QK
IHsKLSAgICByZXR1cm4gZnJhbWUoKS0+bG9hZGVyKCkuY2xpZW50KCkuYmxvY2tlZEVycm9yKHJl
cXVlc3QpOworICAgIHJldHVybiBXZWJDb3JlOjpibG9ja2VkRXJyb3IocmVxdWVzdCk7CiB9CiAK
IE5ldHdvcmtTdG9yYWdlU2Vzc2lvbiYgV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dDo6c3RvcmFn
ZVNlc3Npb24oKSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9X
ZWJIVE1MUmVwcmVzZW50YXRpb24ubW0gYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYkhU
TUxSZXByZXNlbnRhdGlvbi5tbQppbmRleCAxOThlZDVmMjM4NGQ3OGYzOGEwMDYwNjgwODE2ZGRl
NmZkY2RhZjZlLi4zZmQ3YjU0Nzk4MjZmNDM5YWYxMTAwZTUzY2VlOTEzOWRjMDFlZTA0IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYkhUTUxSZXByZXNlbnRhdGlvbi5t
bQorKysgYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYkhUTUxSZXByZXNlbnRhdGlvbi5t
bQpAQCAtNDUsNiArNDUsNyBAQAogI2ltcG9ydCA8V2ViQ29yZS9Eb2N1bWVudC5oPgogI2ltcG9y
dCA8V2ViQ29yZS9Eb2N1bWVudExvYWRlci5oPgogI2ltcG9ydCA8V2ViQ29yZS9FZGl0b3IuaD4K
KyNpbXBvcnQgPFdlYkNvcmUvRXJyb3JzLmg+CiAjaW1wb3J0IDxXZWJDb3JlL0ZyYW1lLmg+CiAj
aW1wb3J0IDxXZWJDb3JlL0ZyYW1lTG9hZGVyLmg+CiAjaW1wb3J0IDxXZWJDb3JlL0ZyYW1lTG9h
ZGVyQ2xpZW50Lmg+CkBAIC0xODAsNyArMTgxLDcgQEAgc3RhdGljIFJldGFpblB0cjxOU0FycmF5
PiBuZXdBcnJheVdpdGhTdHJpbmdzKGNvbnN0IEhhc2hTZXQ8U3RyaW5nLCBBU0NJSUNhc2VJbnMK
ICAgICAvLyBJZiB0aGUgZG9jdW1lbnQgaXMgYSBzdGFuZC1hbG9uZSBtZWRpYSBkb2N1bWVudCwg
bm93IGlzIHRoZSByaWdodCB0aW1lIHRvIGNhbmNlbCB0aGUgV2ViS2l0IGxvYWQKICAgICBGcmFt
ZSogY29yZUZyYW1lID0gY29yZSh3ZWJGcmFtZSk7CiAgICAgaWYgKGNvcmVGcmFtZS0+ZG9jdW1l
bnQoKS0+aXNNZWRpYURvY3VtZW50KCkpCi0gICAgICAgIGNvcmVGcmFtZS0+bG9hZGVyKCkuZG9j
dW1lbnRMb2FkZXIoKS0+Y2FuY2VsTWFpblJlc291cmNlTG9hZChjb3JlRnJhbWUtPmxvYWRlcigp
LmNsaWVudCgpLnBsdWdpbldpbGxIYW5kbGVMb2FkRXJyb3IoY29yZUZyYW1lLT5sb2FkZXIoKS5k
b2N1bWVudExvYWRlcigpLT5yZXNwb25zZSgpKSk7CisgICAgICAgIGNvcmVGcmFtZS0+bG9hZGVy
KCkuZG9jdW1lbnRMb2FkZXIoKS0+Y2FuY2VsTWFpblJlc291cmNlTG9hZChXZWJDb3JlOjpwbHVn
aW5XaWxsSGFuZGxlTG9hZEVycm9yKGNvcmVGcmFtZS0+bG9hZGVyKCkuZG9jdW1lbnRMb2FkZXIo
KS0+cmVzcG9uc2UoKSkpOwogCiAgICAgaWYgKF9wcml2YXRlLT5wbHVnaW5WaWV3KSB7CiAgICAg
ICAgIGlmICghX3ByaXZhdGUtPmhhc1NlbnRSZXNwb25zZVRvUGx1Z2luKSB7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L3dpbi9QbHVnaW5zL1BsdWdpblN0cmVhbS5jcHAgYi9Tb3VyY2UvV2Vi
S2l0L3dpbi9QbHVnaW5zL1BsdWdpblN0cmVhbS5jcHAKaW5kZXggMmVmMzk1NWJlNjFhOGQwNTQy
NGFkMTM5OTYyZGQwZDdmYTZhZTQ0NC4uYmU3ZGRjMDIyOWE5ZWUyMGViMzZjOTEwNmQyMjM0NDBi
YWY1NjY4NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC93aW4vUGx1Z2lucy9QbHVnaW5TdHJl
YW0uY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvd2luL1BsdWdpbnMvUGx1Z2luU3RyZWFtLmNwcApA
QCAtMzUsNiArMzUsNyBAQAogI2luY2x1ZGUgIlNoYXJlZEJ1ZmZlci5oIgogI2luY2x1ZGUgIlN1
YnJlc291cmNlTG9hZGVyLmgiCiAjaW5jbHVkZSAiV2ViUmVzb3VyY2VMb2FkU2NoZWR1bGVyLmgi
CisjaW5jbHVkZSA8V2ViQ29yZS9FcnJvcnMuaD4KICNpbmNsdWRlIDx3dGYvU3RyaW5nRXh0cmFz
Lmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvQ1N0cmluZy5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1N0
cmluZ0J1aWxkZXIuaD4KQEAgLTExMSw3ICsxMTIsNyBAQCB2b2lkIFBsdWdpblN0cmVhbTo6c3Rv
cCgpCiAgICAgICAgIEFTU0VSVChkb2N1bWVudExvYWRlcik7CiAKICAgICAgICAgaWYgKGRvY3Vt
ZW50TG9hZGVyLT5pc0xvYWRpbmdNYWluUmVzb3VyY2UoKSkKLSAgICAgICAgICAgIGRvY3VtZW50
TG9hZGVyLT5jYW5jZWxNYWluUmVzb3VyY2VMb2FkKG1fZnJhbWUtPmxvYWRlcigpLmNhbmNlbGxl
ZEVycm9yKG1fcmVzb3VyY2VSZXF1ZXN0KSk7CisgICAgICAgICAgICBkb2N1bWVudExvYWRlci0+
Y2FuY2VsTWFpblJlc291cmNlTG9hZChXZWJDb3JlOjpjYW5jZWxsZWRFcnJvcihtX3Jlc291cmNl
UmVxdWVzdCkpOwogCiAgICAgICAgIHJldHVybjsKICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5jcHAKaW5k
ZXggYzZlMzM0NDA0Y2ZlYWEwM2UyYmZhMTVmNmU0MTBiMjE5N2Q2MWU2Ni4uYmIyMjQyNzk0YmM1
ZGM1MWE1ZTI4Zjg2NjM5NDhhNmYxMGU5YjhjMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC93
aW4vV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuY3BwCisrKyBiL1NvdXJjZS9X
ZWJLaXQvd2luL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmNwcApAQCAtNjIs
NiArNjIsNyBAQAogI2luY2x1ZGUgPFdlYkNvcmUvQ2FjaGVkRnJhbWUuaD4KICNpbmNsdWRlIDxX
ZWJDb3JlL0ROUy5oPgogI2luY2x1ZGUgPFdlYkNvcmUvRG9jdW1lbnRMb2FkZXIuaD4KKyNpbmNs
dWRlIDxXZWJDb3JlL0Vycm9ycy5oPgogI2luY2x1ZGUgPFdlYkNvcmUvRm9ybVN0YXRlLmg+CiAj
aW5jbHVkZSA8V2ViQ29yZS9GcmFtZS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvRnJhbWVMb2FkZXIu
aD4KQEAgLTgxOSw0OCArODIwLDYgQEAgdm9pZCBXZWJGcmFtZUxvYWRlckNsaWVudDo6ZGlkRGV0
ZWN0WFNTKGNvbnN0IFVSTCYsIGJvb2wpCiAgICAgLy8gRklYTUU6IHByb3BvZ2F0ZSBjYWxsIGlu
dG8gdGhlIHByaXZhdGUgZGVsZWdhdGUuCiB9CiAKLVJlc291cmNlRXJyb3IgV2ViRnJhbWVMb2Fk
ZXJDbGllbnQ6OmNhbmNlbGxlZEVycm9yKGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCkK
LXsKLSAgICAvLyBGSVhNRTogTmVlZCBDaGlja2VuQ2F0IHRvIGluY2x1ZGUgQ0ZOZXR3b3JrL0NG
VVJMRXJyb3IuaCB0byBnZXQgdGhlc2UgdmFsdWVzCi0gICAgLy8gQWx0ZXJuYXRpdmVseSwgd2Ug
Y291bGQgY3JlYXRlIG91ciBvd24gZXJyb3IgZG9tYWluL2NvZGVzLgotICAgIHJldHVybiBSZXNv
dXJjZUVycm9yKFN0cmluZyhXZWJVUkxFcnJvckRvbWFpbiksIC05OTksIHJlcXVlc3QudXJsKCks
IFN0cmluZygiQ2FuY2VsbGVkIikpOwotfQotCi1SZXNvdXJjZUVycm9yIFdlYkZyYW1lTG9hZGVy
Q2xpZW50OjpibG9ja2VkRXJyb3IoY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0KQotewot
ICAgIHJldHVybiBSZXNvdXJjZUVycm9yKFN0cmluZyhXZWJLaXRFcnJvckRvbWFpbiksIFdlYktp
dEVycm9yQ2Fubm90VXNlUmVzdHJpY3RlZFBvcnQsIHJlcXVlc3QudXJsKCksIFdFQl9VSV9TVFJJ
TkcoIk5vdCBhbGxvd2VkIHRvIHVzZSByZXN0cmljdGVkIG5ldHdvcmsgcG9ydCIsICJXZWJLaXRF
cnJvckNhbm5vdFVzZVJlc3RyaWN0ZWRQb3J0IGRlc2NyaXB0aW9uIikpOwotfQotCi1SZXNvdXJj
ZUVycm9yIFdlYkZyYW1lTG9hZGVyQ2xpZW50OjpibG9ja2VkQnlDb250ZW50QmxvY2tlckVycm9y
KGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCkKLXsKLSAgICBSRUxFQVNFX0FTU0VSVF9O
T1RfUkVBQ0hFRCgpOyAvLyBDb250ZW50IEJsb2NrZXJzIGFyZSBub3QgZW5hYmxlZCBmb3IgV0sx
LgotfQotCi1SZXNvdXJjZUVycm9yIFdlYkZyYW1lTG9hZGVyQ2xpZW50OjpjYW5ub3RTaG93VVJM
RXJyb3IoY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0KQotewotICAgIHJldHVybiBSZXNv
dXJjZUVycm9yKFN0cmluZyhXZWJLaXRFcnJvckRvbWFpbiksIFdlYktpdEVycm9yQ2Fubm90U2hv
d1VSTCwgcmVxdWVzdC51cmwoKSwgV0VCX1VJX1NUUklORygiVGhlIFVSTCBjYW5ceEUyXHg4MFx4
OTl0IGJlIHNob3duIiwgIldlYktpdEVycm9yQ2Fubm90U2hvd1VSTCBkZXNjcmlwdGlvbiIpKTsK
LX0KLQotUmVzb3VyY2VFcnJvciBXZWJGcmFtZUxvYWRlckNsaWVudDo6aW50ZXJydXB0ZWRGb3JQ
b2xpY3lDaGFuZ2VFcnJvcihjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QpCi17Ci0gICAg
cmV0dXJuIFJlc291cmNlRXJyb3IoU3RyaW5nKFdlYktpdEVycm9yRG9tYWluKSwgV2ViS2l0RXJy
b3JGcmFtZUxvYWRJbnRlcnJ1cHRlZEJ5UG9saWN5Q2hhbmdlLCByZXF1ZXN0LnVybCgpLCBXRUJf
VUlfU1RSSU5HKCJGcmFtZSBsb2FkIGludGVycnVwdGVkIiwgIldlYktpdEVycm9yRnJhbWVMb2Fk
SW50ZXJydXB0ZWRCeVBvbGljeUNoYW5nZSBkZXNjcmlwdGlvbiIpKTsKLX0KLQotUmVzb3VyY2VF
cnJvciBXZWJGcmFtZUxvYWRlckNsaWVudDo6Y2Fubm90U2hvd01JTUVUeXBlRXJyb3IoY29uc3Qg
UmVzb3VyY2VSZXNwb25zZSYgcmVzcG9uc2UpCi17Ci0gICAgcmV0dXJuIFJlc291cmNlRXJyb3Io
U3RyaW5nKCksIFdlYktpdEVycm9yQ2Fubm90U2hvd01JTUVUeXBlLCByZXNwb25zZS51cmwoKSwg
V0VCX1VJX1NUUklORygiQ29udGVudCB3aXRoIHNwZWNpZmllZCBNSU1FIHR5cGUgY2FuXHhFMlx4
ODBceDk5dCBiZSBzaG93biIsICJXZWJLaXRFcnJvckNhbm5vdFNob3dNSU1FVHlwZSBkZXNjcmlw
dGlvbiIpKTsKLX0KLQotUmVzb3VyY2VFcnJvciBXZWJGcmFtZUxvYWRlckNsaWVudDo6ZmlsZURv
ZXNOb3RFeGlzdEVycm9yKGNvbnN0IFJlc291cmNlUmVzcG9uc2UmIHJlc3BvbnNlKQotewotICAg
IHJldHVybiBSZXNvdXJjZUVycm9yKFN0cmluZyhXZWJVUkxFcnJvckRvbWFpbiksIC0xMTAwLCBy
ZXNwb25zZS51cmwoKSwgU3RyaW5nKCJGaWxlIGRvZXMgbm90IGV4aXN0LiIpKTsKLX0KLQotUmVz
b3VyY2VFcnJvciBXZWJGcmFtZUxvYWRlckNsaWVudDo6cGx1Z2luV2lsbEhhbmRsZUxvYWRFcnJv
cihjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiByZXNwb25zZSkKLXsKLSAgICByZXR1cm4gUmVzb3Vy
Y2VFcnJvcihTdHJpbmcoV2ViS2l0RXJyb3JEb21haW4pLCBXZWJLaXRFcnJvclBsdWdJbldpbGxI
YW5kbGVMb2FkLCByZXNwb25zZS51cmwoKSwgV0VCX1VJX1NUUklORygiUGx1Zy1pbiBoYW5kbGVk
IGxvYWQiLCAiV2ViS2l0RXJyb3JQbHVnSW5XaWxsSGFuZGxlTG9hZCBkZXNjcmlwdGlvbiIpKTsK
LX0KLQogYm9vbCBXZWJGcmFtZUxvYWRlckNsaWVudDo6c2hvdWxkRmFsbEJhY2soY29uc3QgUmVz
b3VyY2VFcnJvciYgZXJyb3IpCiB7CiAgICAgaWYgKGVycm9yLmVycm9yQ29kZSgpID09IFdlYlVS
TEVycm9yQ2FuY2VsbGVkICYmIGVycm9yLmRvbWFpbigpID09IFN0cmluZyhXZWJVUkxFcnJvckRv
bWFpbikpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJG
cmFtZUxvYWRlckNsaWVudC5oIGIvU291cmNlL1dlYktpdC93aW4vV2ViQ29yZVN1cHBvcnQvV2Vi
RnJhbWVMb2FkZXJDbGllbnQuaAppbmRleCAwZWFhZTVjNWUxYjgxYTU1NTM1OGFiNmIzMDY5MGEy
YmVkMGI5NzUxLi5hZDUxNmEwNDM3ZDNhNzI0NjRhMmI2MWUyNjhlNWEwNjJiZjNmM2NjIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNs
aWVudC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvd2luL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9h
ZGVyQ2xpZW50LmgKQEAgLTEzNiwxNSArMTM2LDYgQEAgcHVibGljOgogICAgIHZvaWQgZGlkUnVu
SW5zZWN1cmVDb250ZW50KFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luKiwgY29uc3QgV2ViQ29yZTo6
VVJMJikgb3ZlcnJpZGU7CiAgICAgdm9pZCBkaWREZXRlY3RYU1MoY29uc3QgV2ViQ29yZTo6VVJM
JiwgYm9vbCBkaWRCbG9ja0VudGlyZVBhZ2UpIG92ZXJyaWRlOwogCi0gICAgV2ViQ29yZTo6UmVz
b3VyY2VFcnJvciBjYW5jZWxsZWRFcnJvcihjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3Qm
KSBvdmVycmlkZTsKLSAgICBXZWJDb3JlOjpSZXNvdXJjZUVycm9yIGJsb2NrZWRFcnJvcihjb25z
dCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmKSBvdmVycmlkZTsKLSAgICBXZWJDb3JlOjpSZXNv
dXJjZUVycm9yIGJsb2NrZWRCeUNvbnRlbnRCbG9ja2VyRXJyb3IoY29uc3QgV2ViQ29yZTo6UmVz
b3VyY2VSZXF1ZXN0Jikgb3ZlcnJpZGU7Ci0gICAgV2ViQ29yZTo6UmVzb3VyY2VFcnJvciBjYW5u
b3RTaG93VVJMRXJyb3IoY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0Jikgb3ZlcnJpZGU7
Ci0gICAgV2ViQ29yZTo6UmVzb3VyY2VFcnJvciBpbnRlcnJ1cHRlZEZvclBvbGljeUNoYW5nZUVy
cm9yKGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYpIG92ZXJyaWRlOwotICAgIFdlYkNv
cmU6OlJlc291cmNlRXJyb3IgY2Fubm90U2hvd01JTUVUeXBlRXJyb3IoY29uc3QgV2ViQ29yZTo6
UmVzb3VyY2VSZXNwb25zZSYpIG92ZXJyaWRlOwotICAgIFdlYkNvcmU6OlJlc291cmNlRXJyb3Ig
ZmlsZURvZXNOb3RFeGlzdEVycm9yKGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UmKSBv
dmVycmlkZTsKLSAgICBXZWJDb3JlOjpSZXNvdXJjZUVycm9yIHBsdWdpbldpbGxIYW5kbGVMb2Fk
RXJyb3IoY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSYpIG92ZXJyaWRlOwotCiAgICAg
Ym9vbCBzaG91bGRGYWxsQmFjayhjb25zdCBXZWJDb3JlOjpSZXNvdXJjZUVycm9yJikgb3ZlcnJp
ZGU7CiAKICAgICBXVEY6OlN0cmluZyB1c2VyQWdlbnQoY29uc3QgV2ViQ29yZTo6VVJMJikgb3Zl
cnJpZGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJG
cmFtZU5ldHdvcmtpbmdDb250ZXh0LmNwcCBiL1NvdXJjZS9XZWJLaXQvd2luL1dlYkNvcmVTdXBw
b3J0L1dlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQuY3BwCmluZGV4IDk4ZmFmZDk4NjEzOWMyNDM0
Yjc4ZDZlNjVmMzg0NWFiMmY5MGY2MzMuLjJkNGIwZGMxMGQ0MWQ5OTJiZGI5Zjk4MGM1ZTY2ZTY1
MDJkODJiNTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvd2luL1dlYkNvcmVTdXBwb3J0L1dl
YkZyYW1lTmV0d29ya2luZ0NvbnRleHQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvd2luL1dlYkNv
cmVTdXBwb3J0L1dlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQuY3BwCkBAIC0yNiw2ICsyNiw3IEBA
CiAjaW5jbHVkZSAiV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dC5oIgogCiAjaW5jbHVkZSAiV2Vi
Vmlldy5oIgorI2luY2x1ZGUgPFdlYkNvcmUvRXJyb3JzLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9G
cmFtZUxvYWRlci5oPgogI2luY2x1ZGUgPFdlYkNvcmUvRnJhbWVMb2FkZXJDbGllbnQuaD4KICNp
bmNsdWRlIDxXZWJDb3JlL05ldHdvcmtTdG9yYWdlU2Vzc2lvbi5oPgpAQCAtOTYsNyArOTcsNyBA
QCB2b2lkIFdlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQ6OmRlc3Ryb3lQcml2YXRlQnJvd3NpbmdT
ZXNzaW9uKCkKIAogUmVzb3VyY2VFcnJvciBXZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0OjpibG9j
a2VkRXJyb3IoY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0KSBjb25zdAogewotICAgIHJl
dHVybiBmcmFtZSgpLT5sb2FkZXIoKS5jbGllbnQoKS5ibG9ja2VkRXJyb3IocmVxdWVzdCk7Cisg
ICAgcmV0dXJuIFdlYkNvcmU6OmJsb2NrZWRFcnJvcihyZXF1ZXN0KTsKIH0KIAogTmV0d29ya1N0
b3JhZ2VTZXNzaW9uJiBXZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0OjpzdG9yYWdlU2Vzc2lvbigp
IGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9Eb3dubG9h
ZHMvZWZsL0Rvd25sb2FkU291cEVycm9yc0VmbC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3Jr
UHJvY2Vzcy9Eb3dubG9hZHMvZWZsL0Rvd25sb2FkU291cEVycm9yc0VmbC5jcHAKZGVsZXRlZCBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IGFjMDBkNTFiMzcxMzg5MjFlNzc2YjFhYzU4YTBkNDU1NTE2
YjA4NmEuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291
cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvRG93bmxvYWRzL2VmbC9Eb3dubG9hZFNvdXBFcnJv
cnNFZmwuY3BwCisrKyAvZGV2L251bGwKQEAgLTEsNDYgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdo
dCAoQykgMjAxMiBJbnRlbCBDb3Jwb3JhdGlvbi4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0g
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0
aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1
Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRh
dGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlv
bi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElU
UyBDT05UUklCVVRPUlMgYGBBUyBJUycnCi0gKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFRIRSBJTVBMSUVE
IFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElO
Qy4gT1IgSVRTIENPTlRSSUJVVE9SUwotICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgotICogQ09OU0VRVUVOVElB
TCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YK
LSAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQ
Uk9GSVRTOyBPUiBCVVNJTkVTUwotICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQg
T04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KLSAqIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
Ci0gKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GCi0gKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0g
Ki8KLQotI2luY2x1ZGUgImNvbmZpZy5oIgotI2luY2x1ZGUgIkRvd25sb2FkU291cEVycm9ycy5o
IgotCi0jaW5jbHVkZSA8V2ViQ29yZS9FcnJvcnNFZmwuaD4KLSNpbmNsdWRlIDxXZWJDb3JlL1Jl
c291cmNlRXJyb3IuaD4KLQotdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7Ci0KLW5hbWVzcGFjZSBX
ZWJLaXQgewotCi1SZXNvdXJjZUVycm9yIHBsYXRmb3JtRG93bmxvYWROZXR3b3JrRXJyb3IoaW50
IGVycm9yQ29kZSwgY29uc3QgVVJMJiBmYWlsaW5nVVJMLCBjb25zdCBTdHJpbmcmIGxvY2FsaXpl
ZERlc2NyaXB0aW9uKQotewotICAgIHJldHVybiBkb3dubG9hZE5ldHdvcmtFcnJvcihSZXNvdXJj
ZUVycm9yKGVycm9yRG9tYWluRG93bmxvYWQsIGVycm9yQ29kZSwgZmFpbGluZ1VSTCwgbG9jYWxp
emVkRGVzY3JpcHRpb24pKTsKLX0KLQotUmVzb3VyY2VFcnJvciBwbGF0Zm9ybURvd25sb2FkRGVz
dGluYXRpb25FcnJvcihjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiByZXNwb25zZSwgY29uc3QgU3Ry
aW5nJiBtZXNzYWdlKQotewotICAgIHJldHVybiBkb3dubG9hZERlc3RpbmF0aW9uRXJyb3IocmVz
cG9uc2UsIG1lc3NhZ2UpOwotfQotCi19IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL0Rvd25sb2Fkcy9ndGsvRG93bmxvYWRTb3Vw
RXJyb3JzR3RrLmNwcCBiL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL0Rvd25sb2Fkcy9n
dGsvRG93bmxvYWRTb3VwRXJyb3JzR3RrLmNwcApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggYmEyZTdiNDU2YTQxNWYxN2Q1OTY1MzAwMWJiZGZhYzBiZTI4MDM0Mi4uMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3Jr
UHJvY2Vzcy9Eb3dubG9hZHMvZ3RrL0Rvd25sb2FkU291cEVycm9yc0d0ay5jcHAKKysrIC9kZXYv
bnVsbApAQCAtMSw0NiArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDEyIEludGVsIENv
cnBvcmF0aW9uLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlz
dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJp
Z2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBt
YXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFT
IElTJycKLSAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJD
SEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUg
RElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVU
T1JTCi0gKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBT
UEVDSUFMLCBFWEVNUExBUlksIE9SCi0gKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgotICogU1VCU1RJVFVURSBHT09E
UyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNT
Ci0gKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTgotICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKLSAqIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YK
LSAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaW5jbHVkZSAiY29u
ZmlnLmgiCi0jaW5jbHVkZSAiRG93bmxvYWRTb3VwRXJyb3JzLmgiCi0KLSNpbmNsdWRlIDxXZWJD
b3JlL0Vycm9yc0d0ay5oPgotI2luY2x1ZGUgPFdlYkNvcmUvUmVzb3VyY2VFcnJvci5oPgotCi11
c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKLQotbmFtZXNwYWNlIFdlYktpdCB7Ci0KLVJlc291cmNl
RXJyb3IgcGxhdGZvcm1Eb3dubG9hZE5ldHdvcmtFcnJvcihpbnQgZXJyb3JDb2RlLCBjb25zdCBV
UkwmIGZhaWxpbmdVUkwsIGNvbnN0IFN0cmluZyYgbG9jYWxpemVkRGVzY3JpcHRpb24pCi17Ci0g
ICAgcmV0dXJuIGRvd25sb2FkTmV0d29ya0Vycm9yKFJlc291cmNlRXJyb3IoZXJyb3JEb21haW5E
b3dubG9hZCwgZXJyb3JDb2RlLCBmYWlsaW5nVVJMLCBsb2NhbGl6ZWREZXNjcmlwdGlvbikpOwot
fQotCi1SZXNvdXJjZUVycm9yIHBsYXRmb3JtRG93bmxvYWREZXN0aW5hdGlvbkVycm9yKGNvbnN0
IFJlc291cmNlUmVzcG9uc2UmIHJlc3BvbnNlLCBjb25zdCBTdHJpbmcmIG1lc3NhZ2UpCi17Ci0g
ICAgcmV0dXJuIGRvd25sb2FkRGVzdGluYXRpb25FcnJvcihyZXNwb25zZSwgbWVzc2FnZSk7Ci19
Ci0KLX0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvTmV0
d29ya1Byb2Nlc3MvRG93bmxvYWRzL3NvdXAvRG93bmxvYWRTb3VwRXJyb3JzLmNwcCBiL1NvdXJj
ZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL0Rvd25sb2Fkcy9zb3VwL0Rvd25sb2FkU291cEVycm9y
cy5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uYWU1YWY5MmQzMzEyMmUxNGE5MWI3OTM4MzdkMzhjMTZhMTNmMWMy
MwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL0Rvd25s
b2Fkcy9zb3VwL0Rvd25sb2FkU291cEVycm9ycy5jcHAKQEAgLTAsMCArMSw0NyBAQAorLyoKKyAq
IENvcHlyaWdodCAoQykgMjAxMiBJbnRlbCBDb3Jwb3JhdGlvbi4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJl
ZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVz
dCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAg
ZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRp
c3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElO
Qy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1Ig
SU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRI
RSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBB
IFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxM
IEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElS
RUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09O
U0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VS
RU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBE
QVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENB
VVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIkRvd25sb2FkU291
cEVycm9ycy5oIgorCisjaW5jbHVkZSA8V2ViQ29yZS9FcnJvcnMuaD4KKyNpbmNsdWRlIDxXZWJD
b3JlL0Vycm9yc1VuaXguaD4KKyNpbmNsdWRlIDxXZWJDb3JlL1Jlc291cmNlRXJyb3IuaD4KKwor
dXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitSZXNvdXJj
ZUVycm9yIHBsYXRmb3JtRG93bmxvYWROZXR3b3JrRXJyb3IoaW50IGVycm9yQ29kZSwgY29uc3Qg
VVJMJiBmYWlsaW5nVVJMLCBjb25zdCBTdHJpbmcmIGxvY2FsaXplZERlc2NyaXB0aW9uKQorewor
ICAgIHJldHVybiBkb3dubG9hZE5ldHdvcmtFcnJvcihSZXNvdXJjZUVycm9yKGVycm9yRG9tYWlu
RG93bmxvYWQsIGVycm9yQ29kZSwgZmFpbGluZ1VSTCwgbG9jYWxpemVkRGVzY3JpcHRpb24pKTsK
K30KKworUmVzb3VyY2VFcnJvciBwbGF0Zm9ybURvd25sb2FkRGVzdGluYXRpb25FcnJvcihjb25z
dCBSZXNvdXJjZVJlc3BvbnNlJiByZXNwb25zZSwgY29uc3QgU3RyaW5nJiBtZXNzYWdlKQorewor
ICAgIHJldHVybiBkb3dubG9hZERlc3RpbmF0aW9uRXJyb3IocmVzcG9uc2UsIG1lc3NhZ2UpOwor
fQorCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL05l
dHdvcmtQcm9jZXNzL05ldHdvcmtMb2FkLmNwcCBiL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9j
ZXNzL05ldHdvcmtMb2FkLmNwcAppbmRleCAyODcyM2U2OWI5Y2FiNTk4YjM2ZDk1Y2E4NTg5NzQz
OTRiODQ4NTJkLi45M2JlZWIwMDVjZTljYmQ0MmNiYjZhOTQ4OTBlNjY0ZjI3NGMwYjU0IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrTG9hZC5jcHAKKysr
IGIvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0xvYWQuY3BwCkBAIC0zMCw3
ICszMCw3IEBACiAjaW5jbHVkZSAiQXV0aGVudGljYXRpb25NYW5hZ2VyLmgiCiAjaW5jbHVkZSAi
TmV0d29ya1Byb2Nlc3MuaCIKICNpbmNsdWRlICJTZXNzaW9uVHJhY2tlci5oIgotI2luY2x1ZGUg
IldlYkVycm9ycy5oIgorI2luY2x1ZGUgPFdlYkNvcmUvRXJyb3JzLmg+CiAjaW5jbHVkZSA8V2Vi
Q29yZS9Ob3RJbXBsZW1lbnRlZC5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUmVzb3VyY2VIYW5kbGUu
aD4KICNpbmNsdWRlIDxXZWJDb3JlL1Nlc3Npb25JRC5oPgpAQCAtNDAxLDE0ICs0MDEsMTQgQEAg
dm9pZCBOZXR3b3JrTG9hZDo6d2FzQmxvY2tlZChSZXNvdXJjZUhhbmRsZSogaGFuZGxlKQogewog
ICAgIEFTU0VSVF9VTlVTRUQoaGFuZGxlLCBoYW5kbGUgPT0gbV9oYW5kbGUpOwogCi0gICAgZGlk
RmFpbChoYW5kbGUsIFdlYktpdDo6YmxvY2tlZEVycm9yKG1fY3VycmVudFJlcXVlc3QpKTsKKyAg
ICBkaWRGYWlsKGhhbmRsZSwgYmxvY2tlZEVycm9yKG1fY3VycmVudFJlcXVlc3QpKTsKIH0KIAog
dm9pZCBOZXR3b3JrTG9hZDo6Y2Fubm90U2hvd1VSTChSZXNvdXJjZUhhbmRsZSogaGFuZGxlKQog
ewogICAgIEFTU0VSVF9VTlVTRUQoaGFuZGxlLCBoYW5kbGUgPT0gbV9oYW5kbGUpOwogCi0gICAg
ZGlkRmFpbChoYW5kbGUsIFdlYktpdDo6Y2Fubm90U2hvd1VSTEVycm9yKG1fY3VycmVudFJlcXVl
c3QpKTsKKyAgICBkaWRGYWlsKGhhbmRsZSwgY2Fubm90U2hvd1VSTEVycm9yKG1fY3VycmVudFJl
cXVlc3QpKTsKIH0KIAogYm9vbCBOZXR3b3JrTG9hZDo6c2hvdWxkVXNlQ3JlZGVudGlhbFN0b3Jh
Z2UoUmVzb3VyY2VIYW5kbGUqIGhhbmRsZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL05l
dHdvcmtQcm9jZXNzL21hYy9SZW1vdGVOZXR3b3JraW5nQ29udGV4dC5tbSBiL1NvdXJjZS9XZWJL
aXQyL05ldHdvcmtQcm9jZXNzL21hYy9SZW1vdGVOZXR3b3JraW5nQ29udGV4dC5tbQppbmRleCA5
NjNkYzY4ZTZhOTM3YTc5YWQ3YmVkNTdjOWY0NDZiOGYzN2MzMmE1Li43NmI4MjY0NzA0OTZjNGRj
YmNkNGY5NmU2NmQyMDhjZjczNTczMmYzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9OZXR3
b3JrUHJvY2Vzcy9tYWMvUmVtb3RlTmV0d29ya2luZ0NvbnRleHQubW0KKysrIGIvU291cmNlL1dl
YktpdDIvTmV0d29ya1Byb2Nlc3MvbWFjL1JlbW90ZU5ldHdvcmtpbmdDb250ZXh0Lm1tCkBAIC03
Nyw3ICs3Nyw3IEBAIFN0cmluZyBSZW1vdGVOZXR3b3JraW5nQ29udGV4dDo6c291cmNlQXBwbGlj
YXRpb25JZGVudGlmaWVyKCkgY29uc3QKIAogUmVzb3VyY2VFcnJvciBSZW1vdGVOZXR3b3JraW5n
Q29udGV4dDo6YmxvY2tlZEVycm9yKGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCkgY29u
c3QKIHsKLSAgICByZXR1cm4gV2ViS2l0OjpibG9ja2VkRXJyb3IocmVxdWVzdCk7CisgICAgcmV0
dXJuIFdlYkNvcmU6OmJsb2NrZWRFcnJvcihyZXF1ZXN0KTsKIH0KIAogdm9pZCBSZW1vdGVOZXR3
b3JraW5nQ29udGV4dDo6ZW5zdXJlUHJpdmF0ZUJyb3dzaW5nU2Vzc2lvbihTZXNzaW9uSUQgc2Vz
c2lvbklEKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvUGxhdGZvcm1FZmwuY21ha2UgYi9T
b3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybUVmbC5jbWFrZQppbmRleCBmYWE3YmIzNDM2NzFlMjYzMTNm
ZDdhODZmZWFiMDhjODc1NDJkN2RiLi4xZDFiMzY4ZmM2ZTRhYzdjNTA2YzI1NzIyYjY4MzhlZWE3
YzQ3YWM0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybUVmbC5jbWFrZQorKysg
Yi9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybUVmbC5jbWFrZQpAQCAtNCw4ICs0LDcgQEAgbGlzdChB
UFBFTkQgV2ViS2l0Ml9TT1VSQ0VTCiAgICAgTmV0d29ya1Byb2Nlc3MvQ3VzdG9tUHJvdG9jb2xz
L3NvdXAvQ3VzdG9tUHJvdG9jb2xNYW5hZ2VySW1wbC5jcHAKICAgICBOZXR3b3JrUHJvY2Vzcy9D
dXN0b21Qcm90b2NvbHMvc291cC9DdXN0b21Qcm90b2NvbE1hbmFnZXJTb3VwLmNwcAogCi0gICAg
TmV0d29ya1Byb2Nlc3MvRG93bmxvYWRzL2VmbC9Eb3dubG9hZFNvdXBFcnJvcnNFZmwuY3BwCi0K
KyAgICBOZXR3b3JrUHJvY2Vzcy9Eb3dubG9hZHMvc291cC9Eb3dubG9hZFNvdXBFcnJvcnMuY3Bw
CiAgICAgTmV0d29ya1Byb2Nlc3MvRG93bmxvYWRzL3NvdXAvRG93bmxvYWRTb3VwLmNwcAogCiAg
ICAgTmV0d29ya1Byb2Nlc3MvZWZsL05ldHdvcmtQcm9jZXNzTWFpbkVmbC5jcHAKQEAgLTE5Myw3
ICsxOTIsNiBAQCBsaXN0KEFQUEVORCBXZWJLaXQyX1NPVVJDRVMKIAogICAgIFdlYlByb2Nlc3Mv
V2ViQ29yZVN1cHBvcnQvZWZsL1dlYkNvbnRleHRNZW51Q2xpZW50RWZsLmNwcAogICAgIFdlYlBy
b2Nlc3MvV2ViQ29yZVN1cHBvcnQvZWZsL1dlYkVkaXRvckNsaWVudEVmbC5jcHAKLSAgICBXZWJQ
cm9jZXNzL1dlYkNvcmVTdXBwb3J0L2VmbC9XZWJFcnJvcnNFZmwuY3BwCiAgICAgV2ViUHJvY2Vz
cy9XZWJDb3JlU3VwcG9ydC9lZmwvV2ViUG9wdXBNZW51RWZsLmNwcAogCiAgICAgV2ViUHJvY2Vz
cy9XZWJDb3JlU3VwcG9ydC9zb3VwL1dlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQuY3BwCkBAIC0y
MzYsNiArMjM0LDcgQEAgbGlzdChBUFBFTkQgV2ViS2l0Ml9JTkNMVURFX0RJUkVDVE9SSUVTCiAg
ICAgIiR7V0VCQ09SRV9ESVJ9L3BsYXRmb3JtL2dyYXBoaWNzL3gxMSIKICAgICAiJHtXRUJDT1JF
X0RJUn0vcGxhdGZvcm0vbmV0d29yay9zb3VwIgogICAgICIke1dFQkNPUkVfRElSfS9wbGF0Zm9y
bS90ZXh0L2VuY2hhbnQiCisgICAgIiR7V0VCQ09SRV9ESVJ9L3BsYXRmb3JtL3VuaXgiCiAgICAg
IiR7V0VCS0lUMl9ESVJ9L0RhdGFiYXNlUHJvY2Vzcy91bml4IgogICAgICIke1dFQktJVDJfRElS
fS9OZXR3b3JrUHJvY2Vzcy9DdXN0b21Qcm90b2NvbHMvc291cCIKICAgICAiJHtXRUJLSVQyX0RJ
Un0vTmV0d29ya1Byb2Nlc3MvRG93bmxvYWRzL3NvdXAiCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0Mi9QbGF0Zm9ybUdUSy5jbWFrZSBiL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtR1RLLmNtYWtl
CmluZGV4IDc4ODk2NjQ4Y2M0M2VhNzRiZGE5Mjg2ZThmOGEyNTljZDRhYWNjYjIuLjBmOGQ1MWRm
ZTdkODEwOTJkNGUzOWVmMTAxMWNiMDk5YzU3OTgwOWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQyL1BsYXRmb3JtR1RLLmNtYWtlCisrKyBiL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtR1RLLmNt
YWtlCkBAIC0zMCw5ICszMCw4IEBAIGxpc3QoQVBQRU5EIFdlYktpdDJfU09VUkNFUwogICAgIE5l
dHdvcmtQcm9jZXNzL0N1c3RvbVByb3RvY29scy9zb3VwL0N1c3RvbVByb3RvY29sTWFuYWdlcklt
cGwuY3BwCiAgICAgTmV0d29ya1Byb2Nlc3MvQ3VzdG9tUHJvdG9jb2xzL3NvdXAvQ3VzdG9tUHJv
dG9jb2xNYW5hZ2VyU291cC5jcHAKIAotICAgIE5ldHdvcmtQcm9jZXNzL0Rvd25sb2Fkcy9ndGsv
RG93bmxvYWRTb3VwRXJyb3JzR3RrLmNwcAotCiAgICAgTmV0d29ya1Byb2Nlc3MvRG93bmxvYWRz
L3NvdXAvRG93bmxvYWRTb3VwLmNwcAorICAgIE5ldHdvcmtQcm9jZXNzL0Rvd25sb2Fkcy9zb3Vw
L0Rvd25sb2FkU291cEVycm9ycy5jcHAKIAogICAgIE5ldHdvcmtQcm9jZXNzL2NhY2hlL05ldHdv
cmtDYWNoZUNvZGVyc1NvdXAuY3BwCiAgICAgTmV0d29ya1Byb2Nlc3MvY2FjaGUvTmV0d29ya0Nh
Y2hlRGF0YVNvdXAuY3BwCkBAIC0zMzgsNyArMzM3LDYgQEAgbGlzdChBUFBFTkQgV2ViS2l0Ml9T
T1VSQ0VTCiAgICAgV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9ndGsvV2ViQ29udGV4dE1lbnVD
bGllbnRHdGsuY3BwCiAgICAgV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9ndGsvV2ViRHJhZ0Ns
aWVudEd0ay5jcHAKICAgICBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L2d0ay9XZWJFZGl0b3JD
bGllbnRHdGsuY3BwCi0gICAgV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9ndGsvV2ViRXJyb3Jz
R3RrLmNwcAogICAgIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvZ3RrL1dlYlBvcHVwTWVudUd0
ay5jcHAKIAogICAgIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvc291cC9XZWJGcmFtZU5ldHdv
cmtpbmdDb250ZXh0LmNwcApAQCAtNDk2LDYgKzQ5NCw3IEBAIGxpc3QoQVBQRU5EIFdlYktpdDJf
SU5DTFVERV9ESVJFQ1RPUklFUwogICAgICIke1dFQkNPUkVfRElSfS9wbGF0Zm9ybS9ncmFwaGlj
cy94MTEiCiAgICAgIiR7V0VCQ09SRV9ESVJ9L3BsYXRmb3JtL25ldHdvcmsvc291cCIKICAgICAi
JHtXRUJDT1JFX0RJUn0vcGxhdGZvcm0vdGV4dC9lbmNoYW50IgorICAgICIke1dFQkNPUkVfRElS
fS9wbGF0Zm9ybS91bml4IgogICAgICIke1dFQktJVDJfRElSfS9EYXRhYmFzZVByb2Nlc3MvdW5p
eCIKICAgICAiJHtXRUJLSVQyX0RJUn0vTmV0d29ya1Byb2Nlc3MvQ3VzdG9tUHJvdG9jb2xzL3Nv
dXAiCiAgICAgIiR7V0VCS0lUMl9ESVJ9L05ldHdvcmtQcm9jZXNzL0Rvd25sb2Fkcy9zb3VwIgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvUGxhdGZvcm1NYWMuY21ha2UgYi9Tb3VyY2UvV2Vi
S2l0Mi9QbGF0Zm9ybU1hYy5jbWFrZQppbmRleCAyYTEzZTE0OThkZWFhZDE4N2Q3YWJiNjdkNDM2
ZDRjNDljYzgxMjJjLi4xYTJjMmM0NjdkNWZiMDliMjUwZjVjZmY0MDAxYWY1OTcyMDdiZTY0IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybU1hYy5jbWFrZQorKysgYi9Tb3VyY2Uv
V2ViS2l0Mi9QbGF0Zm9ybU1hYy5jbWFrZQpAQCAtMzI4LDcgKzMyOCw2IEBAIGxpc3QoQVBQRU5E
IFdlYktpdDJfU09VUkNFUwogICAgIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvbWFjL1dlYkNv
bnRleHRNZW51Q2xpZW50TWFjLm1tCiAgICAgV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9tYWMv
V2ViRHJhZ0NsaWVudE1hYy5tbQogICAgIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvbWFjL1dl
YkVkaXRvckNsaWVudE1hYy5tbQotICAgIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvbWFjL1dl
YkVycm9yc01hYy5tbQogICAgIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvbWFjL1dlYkZyYW1l
TmV0d29ya2luZ0NvbnRleHQubW0KICAgICBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L21hYy9X
ZWJQb3B1cE1lbnVNYWMubW0KICAgICBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L21hYy9XZWJT
eXN0ZW1JbnRlcmZhY2UubW0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9BUEkv
QVBJRXJyb3IuY3BwIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL0FQSS9BUElFcnJvci5jcHAKaW5k
ZXggODZhMWRiMGIwMzc0ZDM2ZjRhM2U5MTMxNGQ1OTA4ODM2ZTViZGEyYS4uOWI5YjY3NWZiNzI0
OTY5Yzk1MWUwZjUyZmE2OWZhODM1ZjRmY2Y5YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIv
U2hhcmVkL0FQSS9BUElFcnJvci5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL0FQSS9B
UElFcnJvci5jcHAKQEAgLTI3LDYgKzI3LDcgQEAKICNpbmNsdWRlICJBUElFcnJvci5oIgogCiAj
aW5jbHVkZSAiV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmgiCisjaW5jbHVkZSA8V2ViQ29yZS9FcnJv
cnMuaD4KICNpbmNsdWRlIDx3dGYvTmV2ZXJEZXN0cm95ZWQuaD4KICNpbmNsdWRlIDx3dGYvdGV4
dC9XVEZTdHJpbmcuaD4KIApAQCAtMzQsOCArMzUsNyBAQCBuYW1lc3BhY2UgQVBJIHsKIAogY29u
c3QgV1RGOjpTdHJpbmcmIEVycm9yOjp3ZWJLaXRFcnJvckRvbWFpbigpCiB7Ci0gICAgc3RhdGlj
IE5ldmVyRGVzdHJveWVkPFdURjo6U3RyaW5nPiB3ZWJLaXRFcnJvckRvbWFpblN0cmluZyhBU0NJ
SUxpdGVyYWwoIldlYktpdEVycm9yRG9tYWluIikpOwotICAgIHJldHVybiB3ZWJLaXRFcnJvckRv
bWFpblN0cmluZzsKKyAgICByZXR1cm4gV2ViQ29yZTo6d2ViS2l0RXJyb3JEb21haW4oKTsKIH0K
IAogdm9pZCBFcnJvcjo6ZW5jb2RlKElQQzo6QXJndW1lbnRFbmNvZGVyJiBlbmNvZGVyKSBjb25z
dApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX2Vycm9y
LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a19lcnJvci5jcHAKaW5k
ZXggZDAwMWM1NTc5OTI3YWMwOTg4MTA5N2UxYzk2MDU5ZTdiNDJiMTlmOC4uMDQxZjNmMjBmOWZl
YzU3NzY2NTIwN2JhNTk2MTc5MmFjN2JkMjk1MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL0FQSS9lZmwvZXdrX2Vycm9yLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvQVBJL2VmbC9ld2tfZXJyb3IuY3BwCkBAIC0yNiw3ICsyNiw3IEBACiAjaW5jbHVkZSAi
Y29uZmlnLmgiCiAjaW5jbHVkZSAiZXdrX2Vycm9yLmgiCiAKLSNpbmNsdWRlICJFcnJvcnNFZmwu
aCIKKyNpbmNsdWRlICJFcnJvcnNVbml4LmgiCiAjaW5jbHVkZSAiV0tFcnJvclJlZi5oIgogI2lu
Y2x1ZGUgIldLU3RyaW5nLmgiCiAjaW5jbHVkZSAiV0tVUkwuaCIKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdERvd25sb2FkLmNwcCBiL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdERvd25sb2FkLmNwcAppbmRleCA4NmMwNWIy
ZjI5N2EwNWI5MWJlZjY4MWI0MWFlZGUwMTVlMzM1ODM1Li5hOWUzNTZiZTdkNGQ2NTQ5OWY3NDlj
ODYyYjE1ZDdkZWZhZTEzMzY2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
QVBJL2d0ay9XZWJLaXREb3dubG9hZC5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L0FQSS9ndGsvV2ViS2l0RG93bmxvYWQuY3BwCkBAIC0yNiw3ICsyNiw4IEBACiAjaW5jbHVkZSAi
V2ViS2l0UHJpdmF0ZS5oIgogI2luY2x1ZGUgIldlYktpdFVSSVJlcXVlc3RQcml2YXRlLmgiCiAj
aW5jbHVkZSAiV2ViS2l0VVJJUmVzcG9uc2VQcml2YXRlLmgiCi0jaW5jbHVkZSA8V2ViQ29yZS9F
cnJvcnNHdGsuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL0Vycm9ycy5oPgorI2luY2x1ZGUgPFdlYkNv
cmUvRXJyb3JzVW5peC5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUmVzb3VyY2VSZXNwb25zZS5oPgog
I2luY2x1ZGUgPGdsaWIvZ2kxOG4tbGliLmg+CiAjaW5jbHVkZSA8d3RmL2dsaWIvR1JlZlB0ci5o
PgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0RXJy
b3IuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0RXJyb3IuY3Bw
CmluZGV4IDc0MTllZTcyMWEwZmU4NmFiYzM2NDM2ZDI0ZWMyNWU0NjQyM2U4Y2YuLmIwODM0MzZh
MThkOTE3NGZmZjNlNjdjZWQ4OGZlNDBlMzhiNDFhN2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdEVycm9yLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRFcnJvci5jcHAKQEAgLTIyLDcgKzIyLDcgQEAKICNp
bmNsdWRlICJXZWJLaXRFcnJvci5oIgogCiAjaW5jbHVkZSAiV2ViS2l0UHJpdmF0ZS5oIgotI2lu
Y2x1ZGUgPFdlYkNvcmUvRXJyb3JzR3RrLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9FcnJvcnNVbml4
Lmg+CiAKIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRQcml2YXRlLmNwcCBiL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFByaXZhdGUuY3BwCmluZGV4IDJiMWUxMjQ5NzZiYTRk
ZGM2NzE5MTcyNTBlOTc4Mjk4MDE0NWJhY2EuLjkxOTdiYzc3MmNjOGVlODE5OGUwOTFlZWNkZDBk
OGIxMmNjMGYyN2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3Rr
L1dlYktpdFByaXZhdGUuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3Rr
L1dlYktpdFByaXZhdGUuY3BwCkBAIC0yMCw3ICsyMCw3IEBACiAjaW5jbHVkZSAiY29uZmlnLmgi
CiAjaW5jbHVkZSAiV2ViS2l0UHJpdmF0ZS5oIgogCi0jaW5jbHVkZSAiRXJyb3JzR3RrLmgiCisj
aW5jbHVkZSAiRXJyb3JzVW5peC5oIgogI2luY2x1ZGUgIldlYkV2ZW50LmgiCiAjaW5jbHVkZSAi
V2ViS2l0RXJyb3IuaCIKICNpbmNsdWRlIDxnZGsvZ2RrLmg+CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvTmV0d29yay9DdXN0b21Qcm90b2NvbHMvc291cC9XZWJTb3VwQ3Vz
dG9tUHJvdG9jb2xSZXF1ZXN0TWFuYWdlci5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
TmV0d29yay9DdXN0b21Qcm90b2NvbHMvc291cC9XZWJTb3VwQ3VzdG9tUHJvdG9jb2xSZXF1ZXN0
TWFuYWdlci5jcHAKaW5kZXggYjY1NWU0MzUxM2Q1ZTQxM2UxYjhmNWM2MjJkODhhMzk2NWIwNmE0
Yi4uYTAzNWI0Nzg0NjRkYjQxMTY4MGMxYjBjMzg5NDg3OWNlY2YzNTZhMiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL05ldHdvcmsvQ3VzdG9tUHJvdG9jb2xzL3NvdXAvV2Vi
U291cEN1c3RvbVByb3RvY29sUmVxdWVzdE1hbmFnZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9OZXR3b3JrL0N1c3RvbVByb3RvY29scy9zb3VwL1dlYlNvdXBDdXN0b21Qcm90
b2NvbFJlcXVlc3RNYW5hZ2VyLmNwcApAQCAtMjMsMTYgKzIzLDEyIEBACiAjaW5jbHVkZSAiQVBJ
RGF0YS5oIgogI2luY2x1ZGUgIkN1c3RvbVByb3RvY29sTWFuYWdlck1lc3NhZ2VzLmgiCiAjaW5j
bHVkZSAiV2ViUHJvY2Vzc1Bvb2wuaCIKKyNpbmNsdWRlIDxXZWJDb3JlL0Vycm9ycy5oPgorI2lu
Y2x1ZGUgPFdlYkNvcmUvRXJyb3JzVW5peC5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUmVzb3VyY2VF
cnJvci5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUmVzb3VyY2VSZXF1ZXN0Lmg+CiAjaW5jbHVkZSA8
V2ViQ29yZS9SZXNvdXJjZVJlc3BvbnNlLmg+CiAKLSNpZiBQTEFURk9STShHVEspCi0jaW5jbHVk
ZSA8V2ViQ29yZS9FcnJvcnNHdGsuaD4KLSNlbGlmIFBMQVRGT1JNKEVGTCkKLSNpbmNsdWRlIDxX
ZWJDb3JlL0Vycm9yc0VmbC5oPgotI2VuZGlmCi0KIG5hbWVzcGFjZSBXZWJLaXQgewogCiBjb25z
dCBjaGFyKiBXZWJTb3VwQ3VzdG9tUHJvdG9jb2xSZXF1ZXN0TWFuYWdlcjo6c3VwcGxlbWVudE5h
bWUoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViS2l0Mi54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qIGIvU291cmNlL1dlYktpdDIvV2ViS2l0Mi54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qCmluZGV4IGM2MzJmYmNhNzIxNmIzNTcyNWQwYjIwMDA4YjViYzU4MDkyZGJiZjMuLmE4OTFl
ZTUyNmFkMDBjYTRiYzM4ZmJlMjI3OTI4MjlmYzNiMTFhMDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQyL1dlYktpdDIueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2Vi
S2l0Mi9XZWJLaXQyLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTIyNSw3ICsyMjUsNiBA
QAogCQkxQTNFRUQwRjE2MUE1MzU0MDBBRUI0RjUgLyogTWVzc2FnZVJlY2VpdmVyTWFwLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxQTNFRUQwRDE2MUE1
MzUzMDBBRUI0RjUgLyogTWVzc2FnZVJlY2VpdmVyTWFwLmggKi87IH07CiAJCTFBM0VFRDEyMTYx
QTUzRDYwMEFFQjRGNSAvKiBNZXNzYWdlUmVjZWl2ZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFBM0VFRDExMTYxQTUzRDYwMEFFQjRGNSAvKiBNZXNz
YWdlUmVjZWl2ZXIuaCAqLzsgfTsKIAkJMUE0MjJGOEIxOEIyOUI1NDAwRDhDRDk2IC8qIFdLSGlz
dG9yeURlbGVnYXRlUHJpdmF0ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gMUE0MjJGOEExOEIyOUI1NDAwRDhDRDk2IC8qIFdLSGlzdG9yeURlbGVnYXRl
UHJpdmF0ZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07
Ci0JCTFBNDMzRjBEMTEzQzUzREQwMEZBQ0RFOSAvKiBXZWJFcnJvcnMuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFBNDMzRjBDMTEzQzUzREQwMEZBQ0RF
OSAvKiBXZWJFcnJvcnMuaCAqLzsgfTsKIAkJMUE0M0U4MjkxODhGM0NEQzAwOUU0RDMwIC8qIF9X
S1Byb2Nlc3NQb29sQ29uZmlndXJhdGlvbi5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDFBNDNFODI3MTg4RjNDREMwMDlFNEQzMCAvKiBfV0tQcm9jZXNz
UG9vbENvbmZpZ3VyYXRpb24ubW0gKi87IH07CiAJCTFBNDNFODJBMTg4RjNDREMwMDlFNEQzMCAv
KiBfV0tQcm9jZXNzUG9vbENvbmZpZ3VyYXRpb24uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFBNDNFODI4MTg4RjNDREMwMDlFNEQzMCAvKiBfV0tQcm9j
ZXNzUG9vbENvbmZpZ3VyYXRpb24uaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2
YXRlLCApOyB9OyB9OwogCQkxQTQ0NUI5RjE4NEQ1RkI1MDA0QjM0MTQgLyogV0tDb250ZXh0SW5q
ZWN0ZWRCdW5kbGVDbGllbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDFBNDQ1QjlFMTg0RDVGQjUwMDRCMzQxNCAvKiBXS0NvbnRleHRJbmplY3RlZEJ1
bmRsZUNsaWVudC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07
IH07CkBAIC0xMzc2LDcgKzEzNzUsNiBAQAogCQlCQzExMUE1RjExMkY0RkJCMDAzMzdCQUIgLyog
V2ViRnJhbWVMb2FkZXJDbGllbnQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gQkMxMTFBNTgxMTJGNEZCQjAwMzM3QkFCIC8qIFdlYkZyYW1lTG9hZGVy
Q2xpZW50LmNwcCAqLzsgfTsKIAkJQkMxMTFBNjAxMTJGNEZCQjAwMzM3QkFCIC8qIFdlYkluc3Bl
Y3RvckNsaWVudC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSBCQzExMUE1OTExMkY0RkJCMDAzMzdCQUIgLyogV2ViSW5zcGVjdG9yQ2xpZW50LmNwcCAq
LzsgfTsKIAkJQkMxMTFBREQxMTJGNUI5MzAwMzM3QkFCIC8qIFdlYkZyYW1lLmNwcCBpbiBTb3Vy
Y2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDMTExQURDMTEyRjVCOTMw
MDMzN0JBQiAvKiBXZWJGcmFtZS5jcHAgKi87IH07Ci0JCUJDMTExQUUwMTEyRjVCQzIwMDMzN0JB
QiAvKiBXZWJFcnJvcnNNYWMubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSBCQzExMUFERjExMkY1QkMyMDAzMzdCQUIgLyogV2ViRXJyb3JzTWFjLm1tICov
OyB9OwogCQlCQzExMUFFNDExMkY1QzI2MDAzMzdCQUIgLyogV2ViUHJvY2Vzcy5jcHAgaW4gU291
cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQzExMUFFMzExMkY1QzI2
MDAzMzdCQUIgLyogV2ViUHJvY2Vzcy5jcHAgKi87IH07CiAJCUJDMTExQjA5MTEyRjVFM0MwMDMz
N0JBQiAvKiBSZXNwb25zaXZlbmVzc1RpbWVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDMTExQjA4MTEyRjVFM0MwMDMzN0JBQiAvKiBSZXNwb25z
aXZlbmVzc1RpbWVyLmNwcCAqLzsgfTsKIAkJQkMxMTFCMEUxMTJGNUU0RjAwMzM3QkFCIC8qIFdl
YkZyYW1lUHJveHkuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gQkMxMTFCMEExMTJGNUU0RjAwMzM3QkFCIC8qIFdlYkZyYW1lUHJveHkuY3BwICovOyB9
OwpAQCAtMjIwNyw3ICsyMjA1LDYgQEAKIAkJMUEzRUVEMEQxNjFBNTM1MzAwQUVCNEY1IC8qIE1l
c3NhZ2VSZWNlaXZlck1hcC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBNZXNz
YWdlUmVjZWl2ZXJNYXAuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMUEzRUVEMTEx
NjFBNTNENjAwQUVCNEY1IC8qIE1lc3NhZ2VSZWNlaXZlci5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBNZXNzYWdlUmVjZWl2ZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJMUE0MjJGOEExOEIyOUI1NDAwRDhDRDk2IC8qIFdLSGlzdG9yeURlbGVnYXRlUHJpdmF0
ZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXS0hpc3RvcnlEZWxlZ2F0ZVBy
aXZhdGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJMUE0MzNGMEMxMTNDNTNERDAw
RkFDREU5IC8qIFdlYkVycm9ycy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBX
ZWJFcnJvcnMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMUE0M0U4MjcxODhGM0NE
QzAwOUU0RDMwIC8qIF9XS1Byb2Nlc3NQb29sQ29uZmlndXJhdGlvbi5tbSAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IF9XS1Byb2Nlc3NQb29sQ29uZmlndXJhdGlvbi5t
bTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMUE0M0U4MjgxODhGM0NEQzAwOUU0RDMw
IC8qIF9XS1Byb2Nlc3NQb29sQ29uZmlndXJhdGlvbi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBfV0tQcm9jZXNzUG9vbENvbmZpZ3VyYXRpb24uaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJMUE0NDVCOUUxODRENUZCNTAwNEIzNDE0IC8qIFdLQ29udGV4dEluamVj
dGVkQnVuZGxlQ2xpZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdLQ29u
dGV4dEluamVjdGVkQnVuZGxlQ2xpZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBA
IC0zNDY5LDcgKzM0NjYsNiBAQAogCQlCQzExMUE1ODExMkY0RkJCMDAzMzdCQUIgLyogV2ViRnJh
bWVMb2FkZXJDbGllbnQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0g
V2ViRnJhbWVMb2FkZXJDbGllbnQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB3cmFwc0xp
bmVzID0gMDsgfTsKIAkJQkMxMTFBNTkxMTJGNEZCQjAwMzM3QkFCIC8qIFdlYkluc3BlY3RvckNs
aWVudC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXZWJJbnNwZWN0
b3JDbGllbnQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlCQzExMUFEQzExMkY1
QjkzMDAzMzdCQUIgLyogV2ViRnJhbWUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3Bw
OyBwYXRoID0gV2ViRnJhbWUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQlCQzEx
MUFERjExMkY1QkMyMDAzMzdCQUIgLyogV2ViRXJyb3JzTWFjLm1tICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAub2JqY3BwOyBwYXRoID0gV2ViRXJyb3JzTWFjLm1tOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQlCQzExMUFFMzExMkY1QzI2MDAzMzdCQUIgLyogV2ViUHJvY2Vzcy5jcHAg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXZWJQcm9jZXNzLmNwcDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQkMxMTFCMDgxMTJGNUUzQzAwMzM3QkFCIC8qIFJl
c3BvbnNpdmVuZXNzVGltZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRo
ID0gUmVzcG9uc2l2ZW5lc3NUaW1lci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CUJDMTExQjBBMTEyRjVFNEYwMDMzN0JBQiAvKiBXZWJGcmFtZVByb3h5LmNwcCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdlYkZyYW1lUHJveHkuY3BwOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwpAQCAtNTkzMSw3ICs1OTI3LDYgQEAKIAkJCQlCQzAzMkQ2NjEwRjQz
NzhEMDA1OEMxNUEgLyogV2ViRHJhZ0NsaWVudC5oICovLAogCQkJCUJDMTExQTU3MTEyRjRGQkIw
MDMzN0JBQiAvKiBXZWJFZGl0b3JDbGllbnQuY3BwICovLAogCQkJCUJDMDMyRDY4MTBGNDM3OEQw
MDU4QzE1QSAvKiBXZWJFZGl0b3JDbGllbnQuaCAqLywKLQkJCQkxQTQzM0YwQzExM0M1M0REMDBG
QUNERTkgLyogV2ViRXJyb3JzLmggKi8sCiAJCQkJQkMxMTFBNTgxMTJGNEZCQjAwMzM3QkFCIC8q
IFdlYkZyYW1lTG9hZGVyQ2xpZW50LmNwcCAqLywKIAkJCQlCQzAzMkQ2QTEwRjQzNzhEMDA1OEMx
NUEgLyogV2ViRnJhbWVMb2FkZXJDbGllbnQuaCAqLywKIAkJCQlCQzFCRTFERjEyRDU0QTQxMDAw
NEEyMjggLyogV2ViR2VvbG9jYXRpb25DbGllbnQuY3BwICovLApAQCAtNjM3OSw3ICs2Mzc0LDYg
QEAKIAkJCQk1MTAyMUU5QjEyQjE2Nzg4MDA1QzAzM0MgLyogV2ViQ29udGV4dE1lbnVDbGllbnRN
YWMubW0gKi8sCiAJCQkJQzU1NEZGQTIxMkU0RThFQTAwMkYyMkMwIC8qIFdlYkRyYWdDbGllbnRN
YWMubW0gKi8sCiAJCQkJQzUyMzdGNUYxMjQ0MUNBMzAwNzgwNDcyIC8qIFdlYkVkaXRvckNsaWVu
dE1hYy5tbSAqLywKLQkJCQlCQzExMUFERjExMkY1QkMyMDAzMzdCQUIgLyogV2ViRXJyb3JzTWFj
Lm1tICovLAogCQkJCTkzOTFGMjgzMTIxQjM4RjUwMEVCRjdFOCAvKiBXZWJGcmFtZU5ldHdvcmtp
bmdDb250ZXh0LmggKi8sCiAJCQkJOTM5MUYyODQxMjFCMzhGNTAwRUJGN0U4IC8qIFdlYkZyYW1l
TmV0d29ya2luZ0NvbnRleHQubW0gKi8sCiAJCQkJQkNDNDNBQzYxMjdCOTlERTAwMzE3RjE2IC8q
IFdlYlBvcHVwTWVudU1hYy5tbSAqLywKQEAgLTc4NjgsNyArNzg2Miw2IEBACiAJCQkJQkMwMzJE
N0IxMEY0Mzc4RDAwNThDMTVBIC8qIFdlYkRyYWdDbGllbnQuaCBpbiBIZWFkZXJzICovLAogCQkJ
CUJDQTBFRjlGMTIzMzI2NDIwMDdEM0NGQiAvKiBXZWJFZGl0Q29tbWFuZFByb3h5LmggaW4gSGVh
ZGVycyAqLywKIAkJCQlCQzAzMkQ3RDEwRjQzNzhEMDA1OEMxNUEgLyogV2ViRWRpdG9yQ2xpZW50
LmggaW4gSGVhZGVycyAqLywKLQkJCQkxQTQzM0YwRDExM0M1M0REMDBGQUNERTkgLyogV2ViRXJy
b3JzLmggaW4gSGVhZGVycyAqLywKIAkJCQlCQzAzMkRCOTEwRjQzODBGMDA1OEMxNUEgLyogV2Vi
RXZlbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDMDMyREJCMTBGNDM4MEYwMDU4QzE1QSAvKiBX
ZWJFdmVudENvbnZlcnNpb24uaCBpbiBIZWFkZXJzICovLAogCQkJCUJDMTExQjVEMTEyRjYyOTgw
MDMzN0JBQiAvKiBXZWJFdmVudEZhY3RvcnkuaCBpbiBIZWFkZXJzICovLApAQCAtOTM2NCw3ICs5
MzU3LDYgQEAKIAkJCQlCQzExMUE1RTExMkY0RkJCMDAzMzdCQUIgLyogV2ViRWRpdG9yQ2xpZW50
LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTJEMjhGM0U2MTg4NUNDQzEwMDRCOUVBRSAvKiBXZWJF
ZGl0b3JDbGllbnRJT1MubW0gaW4gU291cmNlcyAqLywKIAkJCQlDNTIzN0Y2MDEyNDQxQ0EzMDA3
ODA0NzIgLyogV2ViRWRpdG9yQ2xpZW50TWFjLm1tIGluIFNvdXJjZXMgKi8sCi0JCQkJQkMxMTFB
RTAxMTJGNUJDMjAwMzM3QkFCIC8qIFdlYkVycm9yc01hYy5tbSBpbiBTb3VyY2VzICovLAogCQkJ
CUMwMzM3REFFMTI3QTI0RkUwMDhGRjRGNCAvKiBXZWJFdmVudC5jcHAgaW4gU291cmNlcyAqLywK
IAkJCQlCQzAzMkRCQTEwRjQzODBGMDA1OEMxNUEgLyogV2ViRXZlbnRDb252ZXJzaW9uLmNwcCBp
biBTb3VyY2VzICovLAogCQkJCUJDMTExQjVFMTEyRjYyOTgwMDMzN0JBQiAvKiBXZWJFdmVudEZh
Y3RvcnkubW0gaW4gU291cmNlcyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvTmV0d29yay9XZWJMb2FkZXJTdHJhdGVneS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL05ldHdvcmsvV2ViTG9hZGVyU3RyYXRlZ3kuY3BwCmluZGV4IDM5M2I4Y2VkZTMzNDVi
ZmZiYTUyYThmYTUxYjc4NzViY2JiOThhZWYuLjRmNDUxZDRjZmNmMjg5ZmZhZGVhM2NjNDIwMmVh
ZGViZjMwNDhlODYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvTmV0d29y
ay9XZWJMb2FkZXJTdHJhdGVneS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9O
ZXR3b3JrL1dlYkxvYWRlclN0cmF0ZWd5LmNwcApAQCAtMzMsNyArMzMsNiBAQAogI2luY2x1ZGUg
Ik5ldHdvcmtSZXNvdXJjZUxvYWRQYXJhbWV0ZXJzLmgiCiAjaW5jbHVkZSAiU2Vzc2lvblRyYWNr
ZXIuaCIKICNpbmNsdWRlICJXZWJDb3JlQXJndW1lbnRDb2RlcnMuaCIKLSNpbmNsdWRlICJXZWJF
cnJvcnMuaCIKICNpbmNsdWRlICJXZWJGcmFtZS5oIgogI2luY2x1ZGUgIldlYkZyYW1lTG9hZGVy
Q2xpZW50LmgiCiAjaW5jbHVkZSAiV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dC5oIgpAQCAtNDQs
NiArNDMsNyBAQAogI2luY2x1ZGUgPFdlYkNvcmUvQ2FjaGVkUmVzb3VyY2UuaD4KICNpbmNsdWRl
IDxXZWJDb3JlL0RvY3VtZW50Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9Eb2N1bWVudExvYWRlci5o
PgorI2luY2x1ZGUgPFdlYkNvcmUvRXJyb3JzLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9GcmFtZS5o
PgogI2luY2x1ZGUgPFdlYkNvcmUvRnJhbWVMb2FkZXIuaD4KICNpbmNsdWRlIDxXZWJDb3JlL05l
dHNjYXBlUGx1Z0luU3RyZWFtTG9hZGVyLmg+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL05ldHdvcmsvV2ViUmVzb3VyY2VMb2FkZXIuY3BwIGIvU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9OZXR3b3JrL1dlYlJlc291cmNlTG9hZGVyLmNwcAppbmRleCA3OGIwYTk4OTE4
ODE4NWVkYzFhYTc3MjQ3ODRkNDdmNDBhZmIyZGI3Li45OWE2Nzg2M2I5MTc1YWUyYTBhNzBlNjBm
N2IwYjNkYjQyZTc3ZDZmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL05l
dHdvcmsvV2ViUmVzb3VyY2VMb2FkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvTmV0d29yay9XZWJSZXNvdXJjZUxvYWRlci5jcHAKQEAgLTMxLDExICszMSwxMSBAQAogI2lu
Y2x1ZGUgIk5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbi5oIgogI2luY2x1ZGUgIk5ldHdvcmtSZXNv
dXJjZUxvYWRlck1lc3NhZ2VzLmgiCiAjaW5jbHVkZSAiV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmgi
Ci0jaW5jbHVkZSAiV2ViRXJyb3JzLmgiCiAjaW5jbHVkZSAiV2ViUHJvY2Vzcy5oIgogI2luY2x1
ZGUgPFdlYkNvcmUvQXBwbGljYXRpb25DYWNoZUhvc3QuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0Nl
cnRpZmljYXRlSW5mby5oPgogI2luY2x1ZGUgPFdlYkNvcmUvRG9jdW1lbnRMb2FkZXIuaD4KKyNp
bmNsdWRlIDxXZWJDb3JlL0Vycm9ycy5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUmVzb3VyY2VFcnJv
ci5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUmVzb3VyY2VMb2FkZXIuaD4KICNpbmNsdWRlIDxXZWJD
b3JlL1N1YnJlc291cmNlTG9hZGVyLmg+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmNwcCBiL1NvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuY3Bw
CmluZGV4IDVmNzZiYzlmNDE5ZTNjNGE1ZjMxOWY5Mzg5NGRlYjZhMWU0NGRkMzkuLjg2YTY5YmI4
ZTk0NmY5ZGUzZDdhMWYyYmQ0MWUyMWMwZDQ5YTU3MmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuY3BwCisr
KyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2Fk
ZXJDbGllbnQuY3BwCkBAIC00MSw3ICs0MSw2IEBACiAjaW5jbHVkZSAiV2ViQmFja0ZvcndhcmRM
aXN0UHJveHkuaCIKICNpbmNsdWRlICJXZWJDb3JlQXJndW1lbnRDb2RlcnMuaCIKICNpbmNsdWRl
ICJXZWJEb2N1bWVudExvYWRlci5oIgotI2luY2x1ZGUgIldlYkVycm9ycy5oIgogI2luY2x1ZGUg
IldlYkV2ZW50LmgiCiAjaW5jbHVkZSAiV2ViRnJhbWUuaCIKICNpbmNsdWRlICJXZWJGcmFtZU5l
dHdvcmtpbmdDb250ZXh0LmgiCkBAIC01OSw2ICs1OCw3IEBACiAjaW5jbHVkZSA8V2ViQ29yZS9D
aHJvbWUuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0RPTVdyYXBwZXJXb3JsZC5oPgogI2luY2x1ZGUg
PFdlYkNvcmUvRG9jdW1lbnRMb2FkZXIuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL0Vycm9ycy5oPgog
I2luY2x1ZGUgPFdlYkNvcmUvRm9ybVN0YXRlLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9GcmFtZUxv
YWRSZXF1ZXN0Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9GcmFtZUxvYWRlci5oPgpAQCAtMTA4OSw1
NyArMTA4OSwxMCBAQCB2b2lkIFdlYkZyYW1lTG9hZGVyQ2xpZW50OjpkaWREZXRlY3RYU1MoY29u
c3QgVVJMJiwgYm9vbCkKICAgICB3ZWJQYWdlLT5zZW5kKE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6
OkRpZERldGVjdFhTU0ZvckZyYW1lKG1fZnJhbWUtPmZyYW1lSUQoKSwgVXNlckRhdGEoV2ViUHJv
Y2Vzczo6c2luZ2xldG9uKCkudHJhbnNmb3JtT2JqZWN0c1RvSGFuZGxlcyh1c2VyRGF0YS5nZXQo
KSkuZ2V0KCkpKSk7CiB9CiAKLVJlc291cmNlRXJyb3IgV2ViRnJhbWVMb2FkZXJDbGllbnQ6OmNh
bmNlbGxlZEVycm9yKGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCkKLXsKLSAgICByZXR1
cm4gV2ViS2l0OjpjYW5jZWxsZWRFcnJvcihyZXF1ZXN0KTsKLX0KLQotUmVzb3VyY2VFcnJvciBX
ZWJGcmFtZUxvYWRlckNsaWVudDo6YmxvY2tlZEVycm9yKGNvbnN0IFJlc291cmNlUmVxdWVzdCYg
cmVxdWVzdCkKLXsKLSAgICByZXR1cm4gV2ViS2l0OjpibG9ja2VkRXJyb3IocmVxdWVzdCk7Ci19
Ci0KLVJlc291cmNlRXJyb3IgV2ViRnJhbWVMb2FkZXJDbGllbnQ6OmJsb2NrZWRCeUNvbnRlbnRC
bG9ja2VyRXJyb3IoY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0KQotewotICAgIHJldHVy
biBXZWJLaXQ6OmJsb2NrZWRCeUNvbnRlbnRCbG9ja2VyRXJyb3IocmVxdWVzdCk7Ci19Ci0KLVJl
c291cmNlRXJyb3IgV2ViRnJhbWVMb2FkZXJDbGllbnQ6OmNhbm5vdFNob3dVUkxFcnJvcihjb25z
dCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QpCi17Ci0gICAgcmV0dXJuIFdlYktpdDo6Y2Fubm90
U2hvd1VSTEVycm9yKHJlcXVlc3QpOwotfQotCi1SZXNvdXJjZUVycm9yIFdlYkZyYW1lTG9hZGVy
Q2xpZW50OjppbnRlcnJ1cHRlZEZvclBvbGljeUNoYW5nZUVycm9yKGNvbnN0IFJlc291cmNlUmVx
dWVzdCYgcmVxdWVzdCkKLXsKLSAgICByZXR1cm4gV2ViS2l0OjppbnRlcnJ1cHRlZEZvclBvbGlj
eUNoYW5nZUVycm9yKHJlcXVlc3QpOwotfQotCi0jaWYgRU5BQkxFKENPTlRFTlRfRklMVEVSSU5H
KQotUmVzb3VyY2VFcnJvciBXZWJGcmFtZUxvYWRlckNsaWVudDo6YmxvY2tlZEJ5Q29udGVudEZp
bHRlckVycm9yKGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCkKLXsKLSAgICByZXR1cm4g
V2ViS2l0OjpibG9ja2VkQnlDb250ZW50RmlsdGVyRXJyb3IocmVxdWVzdCk7Ci19Ci0jZW5kaWYK
LQotUmVzb3VyY2VFcnJvciBXZWJGcmFtZUxvYWRlckNsaWVudDo6Y2Fubm90U2hvd01JTUVUeXBl
RXJyb3IoY29uc3QgUmVzb3VyY2VSZXNwb25zZSYgcmVzcG9uc2UpCi17Ci0gICAgcmV0dXJuIFdl
YktpdDo6Y2Fubm90U2hvd01JTUVUeXBlRXJyb3IocmVzcG9uc2UpOwotfQotCi1SZXNvdXJjZUVy
cm9yIFdlYkZyYW1lTG9hZGVyQ2xpZW50OjpmaWxlRG9lc05vdEV4aXN0RXJyb3IoY29uc3QgUmVz
b3VyY2VSZXNwb25zZSYgcmVzcG9uc2UpCi17Ci0gICAgcmV0dXJuIFdlYktpdDo6ZmlsZURvZXNO
b3RFeGlzdEVycm9yKHJlc3BvbnNlKTsKLX0KLQotUmVzb3VyY2VFcnJvciBXZWJGcmFtZUxvYWRl
ckNsaWVudDo6cGx1Z2luV2lsbEhhbmRsZUxvYWRFcnJvcihjb25zdCBSZXNvdXJjZVJlc3BvbnNl
JiByZXNwb25zZSkKLXsKLSAgICByZXR1cm4gV2ViS2l0OjpwbHVnaW5XaWxsSGFuZGxlTG9hZEVy
cm9yKHJlc3BvbnNlKTsKLX0KLQogYm9vbCBXZWJGcmFtZUxvYWRlckNsaWVudDo6c2hvdWxkRmFs
bEJhY2soY29uc3QgUmVzb3VyY2VFcnJvciYgZXJyb3IpCiB7Ci0gICAgc3RhdGljIE5ldmVyRGVz
dHJveWVkPGNvbnN0IFJlc291cmNlRXJyb3I+IGNhbmNlbGxlZEVycm9yKHRoaXMtPmNhbmNlbGxl
ZEVycm9yKFJlc291cmNlUmVxdWVzdCgpKSk7Ci0gICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPGNv
bnN0IFJlc291cmNlRXJyb3I+IHBsdWdpbldpbGxIYW5kbGVMb2FkRXJyb3IodGhpcy0+cGx1Z2lu
V2lsbEhhbmRsZUxvYWRFcnJvcihSZXNvdXJjZVJlc3BvbnNlKCkpKTsKKyAgICBzdGF0aWMgTmV2
ZXJEZXN0cm95ZWQ8Y29uc3QgUmVzb3VyY2VFcnJvcj4gY2FuY2VsbGVkRXJyb3IoV2ViQ29yZTo6
Y2FuY2VsbGVkRXJyb3IoUmVzb3VyY2VSZXF1ZXN0KCkpKTsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0
cm95ZWQ8Y29uc3QgUmVzb3VyY2VFcnJvcj4gcGx1Z2luV2lsbEhhbmRsZUxvYWRFcnJvcihXZWJD
b3JlOjpwbHVnaW5XaWxsSGFuZGxlTG9hZEVycm9yKFJlc291cmNlUmVzcG9uc2UoKSkpOwogCiAg
ICAgaWYgKGVycm9yLmVycm9yQ29kZSgpID09IGNhbmNlbGxlZEVycm9yLmdldCgpLmVycm9yQ29k
ZSgpICYmIGVycm9yLmRvbWFpbigpID09IGNhbmNlbGxlZEVycm9yLmdldCgpLmRvbWFpbigpKQog
ICAgICAgICByZXR1cm4gZmFsc2U7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9j
ZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmggYi9Tb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmgKaW5kZXgg
YjllMzlmZTIyZmI4YWVmYjVlOWE1OGEyNmY0YTZkNGEyMmUyM2FiNS4uYTk2NTlhMTBhOWUwNWMw
OGZmYTVmNDU5ZDQ3MDdlYTgwZDFlMjk2OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2Vi
UHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5oCisrKyBiL1NvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQu
aApAQCAtMTQzLDE5ICsxNDMsNiBAQCBwcml2YXRlOgogICAgIHZvaWQgZGlkUnVuSW5zZWN1cmVD
b250ZW50KFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luKiwgY29uc3QgV2ViQ29yZTo6VVJMJikgb3Zl
cnJpZGU7CiAgICAgdm9pZCBkaWREZXRlY3RYU1MoY29uc3QgV2ViQ29yZTo6VVJMJiwgYm9vbCBk
aWRCbG9ja0VudGlyZVBhZ2UpIG92ZXJyaWRlOwogCi0gICAgV2ViQ29yZTo6UmVzb3VyY2VFcnJv
ciBjYW5jZWxsZWRFcnJvcihjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmKSBvdmVycmlk
ZTsKLSAgICBXZWJDb3JlOjpSZXNvdXJjZUVycm9yIGJsb2NrZWRFcnJvcihjb25zdCBXZWJDb3Jl
OjpSZXNvdXJjZVJlcXVlc3QmKSBvdmVycmlkZTsKLSAgICBXZWJDb3JlOjpSZXNvdXJjZUVycm9y
IGJsb2NrZWRCeUNvbnRlbnRCbG9ja2VyRXJyb3IoY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1
ZXN0Jikgb3ZlcnJpZGU7Ci0gICAgV2ViQ29yZTo6UmVzb3VyY2VFcnJvciBjYW5ub3RTaG93VVJM
RXJyb3IoY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0Jikgb3ZlcnJpZGU7Ci0gICAgV2Vi
Q29yZTo6UmVzb3VyY2VFcnJvciBpbnRlcnJ1cHRlZEZvclBvbGljeUNoYW5nZUVycm9yKGNvbnN0
IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYpIG92ZXJyaWRlOwotI2lmIEVOQUJMRShDT05URU5U
X0ZJTFRFUklORykKLSAgICBXZWJDb3JlOjpSZXNvdXJjZUVycm9yIGJsb2NrZWRCeUNvbnRlbnRG
aWx0ZXJFcnJvcihjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmKSBvdmVycmlkZTsKLSNl
bmRpZgotICAgIAotICAgIFdlYkNvcmU6OlJlc291cmNlRXJyb3IgY2Fubm90U2hvd01JTUVUeXBl
RXJyb3IoY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSYpIG92ZXJyaWRlOwotICAgIFdl
YkNvcmU6OlJlc291cmNlRXJyb3IgZmlsZURvZXNOb3RFeGlzdEVycm9yKGNvbnN0IFdlYkNvcmU6
OlJlc291cmNlUmVzcG9uc2UmKSBvdmVycmlkZTsKLSAgICBXZWJDb3JlOjpSZXNvdXJjZUVycm9y
IHBsdWdpbldpbGxIYW5kbGVMb2FkRXJyb3IoY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25z
ZSYpIG92ZXJyaWRlOwotICAgIAogICAgIGJvb2wgc2hvdWxkRmFsbEJhY2soY29uc3QgV2ViQ29y
ZTo6UmVzb3VyY2VFcnJvciYpIG92ZXJyaWRlOwogICAgIAogICAgIGJvb2wgY2FuSGFuZGxlUmVx
dWVzdChjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmKSBjb25zdCBvdmVycmlkZTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViUGxh
dGZvcm1TdHJhdGVnaWVzLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1
cHBvcnQvV2ViUGxhdGZvcm1TdHJhdGVnaWVzLmNwcAppbmRleCAwMTljMTMzMmRlNGMxYjRkMjUy
OTNhZGVjN2NiZDFkNDE5N2JiNjBjLi4wNzk1OGRiMTI3MTdlYzE2NWFiZDBhYjVkOGMxYjJjNTI3
NTMxNTM2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBw
b3J0L1dlYlBsYXRmb3JtU3RyYXRlZ2llcy5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJQbGF0Zm9ybVN0cmF0ZWdpZXMuY3BwCkBAIC0zNyw3ICsz
Nyw2IEBACiAjaW5jbHVkZSAiU2Vzc2lvblRyYWNrZXIuaCIKICNpbmNsdWRlICJXZWJDb29raWVN
YW5hZ2VyLmgiCiAjaW5jbHVkZSAiV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmgiCi0jaW5jbHVkZSAi
V2ViRXJyb3JzLmgiCiAjaW5jbHVkZSAiV2ViRnJhbWUuaCIKICNpbmNsdWRlICJXZWJGcmFtZUxv
YWRlckNsaWVudC5oIgogI2luY2x1ZGUgIldlYkxvYWRlclN0cmF0ZWd5LmgiCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L2VmbC9XZWJFcnJvcnNF
ZmwuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9lZmwvV2Vi
RXJyb3JzRWZsLmNwcApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYjFiOTdkODY0OTA5
ZDFiZjdkZGU0NzlkOWFjN2E3MmRlZjU3YzMzNy4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBw
b3J0L2VmbC9XZWJFcnJvcnNFZmwuY3BwCisrKyAvZGV2L251bGwKQEAgLTEsODUgKzAsMCBAQAot
LyoKLSAqIENvcHlyaWdodCAoQykgMjAxMSBTYW1zdW5nIEVsZWN0cm9uaWNzLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0Ogot
ICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92
ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkg
Zm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhl
Ci0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0
aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkg
QVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKLSAqIEFORCBBTlkgRVhQ
UkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LAotICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5F
U1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZF
TlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCi0gKiBCRSBMSUFCTEUgRk9S
IEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9S
Ci0gKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LCBQUk9DVVJFTUVOVCBPRgotICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBP
RiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCi0gKiBJTlRFUlJVUFRJT04pIEhP
V0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgot
ICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkKLSAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBP
RiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKLSAqIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaW5jbHVkZSAiY29uZmlnLmgiCi0jaW5jbHVkZSAiV2Vi
RXJyb3JzLmgiCi0KLSNpbmNsdWRlICJBUElFcnJvci5oIgotI2luY2x1ZGUgPFdlYkNvcmUvRXJy
b3JzRWZsLmg+Ci0jaW5jbHVkZSA8V2ViQ29yZS9SZXNvdXJjZUVycm9yLmg+Ci0jaW5jbHVkZSA8
V2ViQ29yZS9SZXNvdXJjZVJlcXVlc3QuaD4KLSNpbmNsdWRlIDxXZWJDb3JlL1Jlc291cmNlUmVz
cG9uc2UuaD4KLSNpbmNsdWRlIDxXZWJLaXQvV0tFcnJvclJlZi5oPgotCi11c2luZyBuYW1lc3Bh
Y2UgV2ViQ29yZTsKLQotbmFtZXNwYWNlIFdlYktpdCB7Ci0KLVJlc291cmNlRXJyb3IgY2FuY2Vs
bGVkRXJyb3IoY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0KQotewotICAgIHJldHVybiBX
ZWJDb3JlOjpjYW5jZWxsZWRFcnJvcihyZXF1ZXN0KTsKLX0KLQotUmVzb3VyY2VFcnJvciBibG9j
a2VkRXJyb3IoY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0KQotewotICAgIHJldHVybiBX
ZWJDb3JlOjpibG9ja2VkRXJyb3IocmVxdWVzdCk7Ci19Ci0KLVJlc291cmNlRXJyb3IgYmxvY2tl
ZEJ5Q29udGVudEJsb2NrZXJFcnJvcihjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QpCi17
Ci0gICAgcmV0dXJuIFdlYkNvcmU6OmJsb2NrZWRCeUNvbnRlbnRCbG9ja2VyRXJyb3IocmVxdWVz
dCk7Ci19Ci0KLVJlc291cmNlRXJyb3IgY2Fubm90U2hvd1VSTEVycm9yKGNvbnN0IFJlc291cmNl
UmVxdWVzdCYgcmVxdWVzdCkKLXsKLSAgICByZXR1cm4gV2ViQ29yZTo6Y2Fubm90U2hvd1VSTEVy
cm9yKHJlcXVlc3QpOwotfQotCi1SZXNvdXJjZUVycm9yIGludGVycnVwdGVkRm9yUG9saWN5Q2hh
bmdlRXJyb3IoY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0KQotewotICAgIHJldHVybiBX
ZWJDb3JlOjppbnRlcnJ1cHRlZEZvclBvbGljeUNoYW5nZUVycm9yKHJlcXVlc3QpOwotfQotCi1S
ZXNvdXJjZUVycm9yIGNhbm5vdFNob3dNSU1FVHlwZUVycm9yKGNvbnN0IFJlc291cmNlUmVzcG9u
c2UmIHJlc3BvbnNlKQotewotICAgIHJldHVybiBXZWJDb3JlOjpjYW5ub3RTaG93TUlNRVR5cGVF
cnJvcihyZXNwb25zZSk7Ci19Ci0KLVJlc291cmNlRXJyb3IgZmlsZURvZXNOb3RFeGlzdEVycm9y
KGNvbnN0IFJlc291cmNlUmVzcG9uc2UmIHJlc3BvbnNlKQotewotICAgIHJldHVybiBXZWJDb3Jl
OjpmaWxlRG9lc05vdEV4aXN0RXJyb3IocmVzcG9uc2UpOwotfQotCi1SZXNvdXJjZUVycm9yIHBs
dWdpbldpbGxIYW5kbGVMb2FkRXJyb3IoY29uc3QgUmVzb3VyY2VSZXNwb25zZSYgcmVzcG9uc2Up
Ci17Ci0gICAgcmV0dXJuIFdlYkNvcmU6OnBsdWdpbldpbGxIYW5kbGVMb2FkRXJyb3IocmVzcG9u
c2UpOwotfQotCi1XZWJDb3JlOjpSZXNvdXJjZUVycm9yIGludGVybmFsRXJyb3IoY29uc3QgV2Vi
Q29yZTo6VVJMJiB1cmwpCi17Ci0gICAgcmV0dXJuIFJlc291cmNlRXJyb3IoQVBJOjpFcnJvcjo6
d2ViS2l0RXJyb3JEb21haW4oKSwga1dLRXJyb3JJbnRlcm5hbCwgdXJsLCBBU0NJSUxpdGVyYWwo
IkludGVybmFsIGVycm9yIikpOwotfQotCi19IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvZ3RrL1dlYkVycm9y
c0d0ay5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L2d0ay9X
ZWJFcnJvcnNHdGsuY3BwCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBlOWQxZDRjMmI3
NDRjN2EzNjU5NmY5ZGM0OTIyZmQyNjQ4MmY3ZjgzLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1
cHBvcnQvZ3RrL1dlYkVycm9yc0d0ay5jcHAKKysrIC9kZXYvbnVsbApAQCAtMSw4OCArMCwwIEBA
Ci0vKgotICogQ29weXJpZ2h0IChDKSAyMDEwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KLSAqIFBvcnRpb25zIENvcHlyaWdodCAoYykgMjAxMCBNb3Rvcm9sYSBNb2JpbGl0eSwgSW5j
LiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqIENvcHlyaWdodCAoQykgMjAxMSBJZ2FsaWEgUy5M
LgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0
IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBk
b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlz
dHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5D
LiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKLSAqIEFORCBBTlkgRVhQUkVTUyBPUiBJ
TVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogVEhF
IElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwg
QVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCi0gKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJF
Q1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCi0gKiBDT05T
RVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJF
TUVOVCBPRgotICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERB
VEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCi0gKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FV
U0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgotICogQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkKLSAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKLSAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4KLSAqLwotCi0jaW5jbHVkZSAiY29uZmlnLmgiCi0jaW5jbHVkZSAiV2ViRXJyb3JzLmgi
Ci0KLSNpbmNsdWRlICJBUElFcnJvci5oIgotI2luY2x1ZGUgPFdlYkNvcmUvRXJyb3JzR3RrLmg+
Ci0jaW5jbHVkZSA8V2ViQ29yZS9SZXNvdXJjZUVycm9yLmg+Ci0jaW5jbHVkZSA8V2ViQ29yZS9S
ZXNvdXJjZVJlcXVlc3QuaD4KLSNpbmNsdWRlIDxXZWJDb3JlL1Jlc291cmNlUmVzcG9uc2UuaD4K
LSNpbmNsdWRlIDxXZWJLaXQvV0tFcnJvclJlZi5oPgotI2luY2x1ZGUgPGdsaWIvZ2kxOG4tbGli
Lmg+Ci0KLXVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwotCi1uYW1lc3BhY2UgV2ViS2l0IHsKLQot
UmVzb3VyY2VFcnJvciBjYW5jZWxsZWRFcnJvcihjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVl
c3QpCi17Ci0gICAgcmV0dXJuIFdlYkNvcmU6OmNhbmNlbGxlZEVycm9yKHJlcXVlc3QpOwotfQot
Ci1SZXNvdXJjZUVycm9yIGJsb2NrZWRFcnJvcihjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVl
c3QpCi17Ci0gICAgcmV0dXJuIFdlYkNvcmU6OmJsb2NrZWRFcnJvcihyZXF1ZXN0KTsKLX0KLQot
UmVzb3VyY2VFcnJvciBibG9ja2VkQnlDb250ZW50QmxvY2tlckVycm9yKGNvbnN0IFJlc291cmNl
UmVxdWVzdCYgcmVxdWVzdCkKLXsKLSAgICByZXR1cm4gV2ViQ29yZTo6YmxvY2tlZEJ5Q29udGVu
dEJsb2NrZXJFcnJvcihyZXF1ZXN0KTsKLX0KLQotUmVzb3VyY2VFcnJvciBjYW5ub3RTaG93VVJM
RXJyb3IoY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0KQotewotICAgIHJldHVybiBXZWJD
b3JlOjpjYW5ub3RTaG93VVJMRXJyb3IocmVxdWVzdCk7Ci19Ci0KLVJlc291cmNlRXJyb3IgaW50
ZXJydXB0ZWRGb3JQb2xpY3lDaGFuZ2VFcnJvcihjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVl
c3QpCi17Ci0gICAgcmV0dXJuIFdlYkNvcmU6OmludGVycnVwdGVkRm9yUG9saWN5Q2hhbmdlRXJy
b3IocmVxdWVzdCk7Ci19Ci0KLVJlc291cmNlRXJyb3IgY2Fubm90U2hvd01JTUVUeXBlRXJyb3Io
Y29uc3QgUmVzb3VyY2VSZXNwb25zZSYgcmVzcG9uc2UpCi17Ci0gICAgcmV0dXJuIFdlYkNvcmU6
OmNhbm5vdFNob3dNSU1FVHlwZUVycm9yKHJlc3BvbnNlKTsKLX0KLQotUmVzb3VyY2VFcnJvciBm
aWxlRG9lc05vdEV4aXN0RXJyb3IoY29uc3QgUmVzb3VyY2VSZXNwb25zZSYgcmVzcG9uc2UpCi17
Ci0gICAgcmV0dXJuIFdlYkNvcmU6OmZpbGVEb2VzTm90RXhpc3RFcnJvcihyZXNwb25zZSk7Ci19
Ci0KLVJlc291cmNlRXJyb3IgcGx1Z2luV2lsbEhhbmRsZUxvYWRFcnJvcihjb25zdCBSZXNvdXJj
ZVJlc3BvbnNlJiByZXNwb25zZSkKLXsKLSAgICByZXR1cm4gV2ViQ29yZTo6cGx1Z2luV2lsbEhh
bmRsZUxvYWRFcnJvcihyZXNwb25zZSk7Ci19Ci0KLVdlYkNvcmU6OlJlc291cmNlRXJyb3IgaW50
ZXJuYWxFcnJvcihjb25zdCBXZWJDb3JlOjpVUkwmIHVybCkKLXsKLSAgICByZXR1cm4gUmVzb3Vy
Y2VFcnJvcihBUEk6OkVycm9yOjp3ZWJLaXRFcnJvckRvbWFpbigpLCBrV0tFcnJvckludGVybmFs
LCB1cmwsIF8oIkludGVybmFsIGVycm9yIikpOwotfQotCi19IC8vIG5hbWVzcGFjZSBXZWJLaXQK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvbWFj
L1dlYkVycm9yc01hYy5tbSBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBv
cnQvbWFjL1dlYkVycm9yc01hYy5tbQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYWE3
ODQ4NWI2NTJmZDNjNDk1ZWQ0ZTVmMmU5ZjNlZDU0M2FkYzNhMy4uMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dl
YkNvcmVTdXBwb3J0L21hYy9XZWJFcnJvcnNNYWMubW0KKysrIC9kZXYvbnVsbApAQCAtMSwxMDcg
KzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMC0yMDE2IEFwcGxlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1l
dDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUg
YWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmlu
YXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGlu
IHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVk
IHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVE
IEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCi0gKiBBTkQgQU5Z
IEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywKLSAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5P
IEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwotICogQkUgTElBQkxF
IEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZ
LCBPUgotICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywgUFJPQ1VSRU1FTlQgT0YKLSAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExP
U1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwotICogSU5URVJSVVBUSU9O
KSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIg
SU4KLSAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVH
TElHRU5DRSBPUiBPVEhFUldJU0UpCi0gKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBV
U0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCi0gKiBUSEUgUE9TU0lCSUxJ
VFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI2ltcG9ydCAiY29uZmlnLmgiCi0jaW1wb3J0ICJX
ZWJFcnJvcnMuaCIKLQotI2ltcG9ydCAiQVBJRXJyb3IuaCIKLSNpbXBvcnQgIldLRXJyb3JSZWYu
aCIKLSNpbXBvcnQgPFdlYkNvcmUvTG9jYWxpemVkU3RyaW5ncy5oPgotI2ltcG9ydCA8V2ViQ29y
ZS9SZXNvdXJjZVJlcXVlc3QuaD4KLSNpbXBvcnQgPFdlYkNvcmUvUmVzb3VyY2VSZXNwb25zZS5o
PgotCi11c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKLXVzaW5nIG5hbWVzcGFjZSBXZWJLaXQ7Ci0K
LW5hbWVzcGFjZSBXZWJLaXQgewotCi1zdGF0aWMgUmV0YWluUHRyPE5TRXJyb3I+IGNyZWF0ZU5T
RXJyb3IoTlNTdHJpbmcqIGRvbWFpbiwgaW50IGNvZGUsIE5TVVJMICpVUkwpCi17Ci0gICAgTlNE
aWN0aW9uYXJ5ICp1c2VySW5mbyA9IFtOU0RpY3Rpb25hcnkgZGljdGlvbmFyeVdpdGhPYmplY3Rz
QW5kS2V5czoKLSAgICAgICAgVVJMLCBAIk5TRXJyb3JGYWlsaW5nVVJMS2V5IiwKLSAgICAgICAg
W1VSTCBhYnNvbHV0ZVN0cmluZ10sIEAiTlNFcnJvckZhaWxpbmdVUkxTdHJpbmdLZXkiLAotICAg
ICAgICBuaWxdOwotCi0gICAgcmV0dXJuIGFkb3B0TlMoW1tOU0Vycm9yIGFsbG9jXSBpbml0V2l0
aERvbWFpbjpkb21haW4gY29kZTpjb2RlIHVzZXJJbmZvOnVzZXJJbmZvXSk7Ci19Ci0KLS8vIFVz
ZSBOU0Vycm9yJ3MgaWYgYXZhaWxhYmxlLgotCi1SZXNvdXJjZUVycm9yIGNhbmNlbGxlZEVycm9y
KGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCkKLXsKLSAgICByZXR1cm4gUmVzb3VyY2VF
cnJvcihjcmVhdGVOU0Vycm9yKE5TVVJMRXJyb3JEb21haW4sIE5TVVJMRXJyb3JDYW5jZWxsZWQs
IHJlcXVlc3QudXJsKCkpLmdldCgpKTsKLX0KLQotUmVzb3VyY2VFcnJvciBmaWxlRG9lc05vdEV4
aXN0RXJyb3IoY29uc3QgUmVzb3VyY2VSZXNwb25zZSYgcmVzcG9uc2UpCi17Ci0gICAgcmV0dXJu
IFJlc291cmNlRXJyb3IoY3JlYXRlTlNFcnJvcihOU1VSTEVycm9yRG9tYWluLCBOU1VSTEVycm9y
RmlsZURvZXNOb3RFeGlzdCwgcmVzcG9uc2UudXJsKCkpLmdldCgpKTsKLX0KLQotCi0vLyBPdGhl
cndpc2UsIGZhbGxiYWNrIHRvIG91ciBvd24gZXJyb3JzLgotCi1SZXNvdXJjZUVycm9yIGJsb2Nr
ZWRFcnJvcihjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QpCi17Ci0gICAgcmV0dXJuIFJl
c291cmNlRXJyb3IoQVBJOjpFcnJvcjo6d2ViS2l0RXJyb3JEb21haW4oKSwga1dLRXJyb3JDb2Rl
Q2Fubm90VXNlUmVzdHJpY3RlZFBvcnQsIHJlcXVlc3QudXJsKCksIFdFQl9VSV9TVFJJTkcoIk5v
dCBhbGxvd2VkIHRvIHVzZSByZXN0cmljdGVkIG5ldHdvcmsgcG9ydCIsICJXZWJLaXRFcnJvckNh
bm5vdFVzZVJlc3RyaWN0ZWRQb3J0IGRlc2NyaXB0aW9uIikpOwotfQotCi1SZXNvdXJjZUVycm9y
IGJsb2NrZWRCeUNvbnRlbnRCbG9ja2VyRXJyb3IoY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1
ZXN0KQotewotICAgIHJldHVybiBSZXNvdXJjZUVycm9yKEFQSTo6RXJyb3I6OndlYktpdEVycm9y
RG9tYWluKCksIGtXS0Vycm9yQ29kZUZyYW1lTG9hZEJsb2NrZWRCeUNvbnRlbnRCbG9ja2VyLCBy
ZXF1ZXN0LnVybCgpLCBXRUJfVUlfU1RSSU5HKCJUaGUgVVJMIHdhcyBibG9ja2VkIGJ5IGEgY29u
dGVudCBibG9ja2VyIiwgIldlYktpdEVycm9yQmxvY2tlZEJ5Q29udGVudEJsb2NrZXIgZGVzY3Jp
cHRpb24iKSk7Ci19Ci0KLVJlc291cmNlRXJyb3IgY2Fubm90U2hvd1VSTEVycm9yKGNvbnN0IFJl
c291cmNlUmVxdWVzdCYgcmVxdWVzdCkKLXsKLSAgICByZXR1cm4gUmVzb3VyY2VFcnJvcihBUEk6
OkVycm9yOjp3ZWJLaXRFcnJvckRvbWFpbigpLCBrV0tFcnJvckNvZGVDYW5ub3RTaG93VVJMLCBy
ZXF1ZXN0LnVybCgpLCBXRUJfVUlfU1RSSU5HKCJUaGUgVVJMIGNhbuKAmXQgYmUgc2hvd24iLCAi
V2ViS2l0RXJyb3JDYW5ub3RTaG93VVJMIGRlc2NyaXB0aW9uIikpOwotfQotCi1SZXNvdXJjZUVy
cm9yIGludGVycnVwdGVkRm9yUG9saWN5Q2hhbmdlRXJyb3IoY29uc3QgUmVzb3VyY2VSZXF1ZXN0
JiByZXF1ZXN0KQotewotICAgIHJldHVybiBSZXNvdXJjZUVycm9yKEFQSTo6RXJyb3I6OndlYktp
dEVycm9yRG9tYWluKCksIGtXS0Vycm9yQ29kZUZyYW1lTG9hZEludGVycnVwdGVkQnlQb2xpY3lD
aGFuZ2UsIHJlcXVlc3QudXJsKCksIFdFQl9VSV9TVFJJTkcoIkZyYW1lIGxvYWQgaW50ZXJydXB0
ZWQiLCAiV2ViS2l0RXJyb3JGcmFtZUxvYWRJbnRlcnJ1cHRlZEJ5UG9saWN5Q2hhbmdlIGRlc2Ny
aXB0aW9uIikpOwotfQotCi0jaWYgRU5BQkxFKENPTlRFTlRfRklMVEVSSU5HKQotUmVzb3VyY2VF
cnJvciBibG9ja2VkQnlDb250ZW50RmlsdGVyRXJyb3IoY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiBy
ZXF1ZXN0KQotewotICAgIHJldHVybiBSZXNvdXJjZUVycm9yKEFQSTo6RXJyb3I6OndlYktpdEVy
cm9yRG9tYWluKCksIGtXS0Vycm9yQ29kZUZyYW1lTG9hZEJsb2NrZWRCeUNvbnRlbnRGaWx0ZXIs
IHJlcXVlc3QudXJsKCksIFdFQl9VSV9TVFJJTkcoIlRoZSBVUkwgd2FzIGJsb2NrZWQgYnkgYSBj
b250ZW50IGZpbHRlciIsICJXZWJLaXRFcnJvckJsb2NrZWRCeUNvbnRlbnRGaWx0ZXIiKSk7Ci19
Ci0jZW5kaWYKLQotUmVzb3VyY2VFcnJvciBjYW5ub3RTaG93TUlNRVR5cGVFcnJvcihjb25zdCBS
ZXNvdXJjZVJlc3BvbnNlJiByZXNwb25zZSkKLXsKLSAgICByZXR1cm4gUmVzb3VyY2VFcnJvcihB
UEk6OkVycm9yOjp3ZWJLaXRFcnJvckRvbWFpbigpLCBrV0tFcnJvckNvZGVDYW5ub3RTaG93TUlN
RVR5cGUsIHJlc3BvbnNlLnVybCgpLCBXRUJfVUlfU1RSSU5HKCJDb250ZW50IHdpdGggc3BlY2lm
aWVkIE1JTUUgdHlwZSBjYW7igJl0IGJlIHNob3duIiwgIldlYktpdEVycm9yQ2Fubm90U2hvd01J
TUVUeXBlIGRlc2NyaXB0aW9uIikpOwotfQotCi1SZXNvdXJjZUVycm9yIHBsdWdpbldpbGxIYW5k
bGVMb2FkRXJyb3IoY29uc3QgUmVzb3VyY2VSZXNwb25zZSYgcmVzcG9uc2UpCi17Ci0gICAgcmV0
dXJuIFJlc291cmNlRXJyb3IoQVBJOjpFcnJvcjo6d2ViS2l0RXJyb3JEb21haW4oKSwga1dLRXJy
b3JDb2RlUGx1Z0luV2lsbEhhbmRsZUxvYWQsIHJlc3BvbnNlLnVybCgpLCBXRUJfVUlfU1RSSU5H
KCJQbHVnLWluIGhhbmRsZWQgbG9hZCIsICJXZWJLaXRFcnJvclBsdWdJbldpbGxIYW5kbGVMb2Fk
IGRlc2NyaXB0aW9uIikpOwotfQotCi1SZXNvdXJjZUVycm9yIGludGVybmFsRXJyb3IoY29uc3Qg
VVJMJiB1cmwpCi17Ci0gICAgcmV0dXJuIFJlc291cmNlRXJyb3IoQVBJOjpFcnJvcjo6d2ViS2l0
RXJyb3JEb21haW4oKSwga1dLRXJyb3JJbnRlcm5hbCwgdXJsLCBXRUJfVUlfU1RSSU5HKCJXZWJL
aXQgZW5jb3VudGVyZWQgYW4gaW50ZXJuYWwgZXJyb3IiLCAiV2ViS2l0RXJyb3JJbnRlcm5hbCBk
ZXNjcmlwdGlvbiIpKTsKLX0KLQotfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L21hYy9XZWJGcmFtZU5ldHdv
cmtpbmdDb250ZXh0Lm1tIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9y
dC9tYWMvV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dC5tbQppbmRleCAxY2MxNWM2NTQxY2ExNzkz
ZWJmOGMxN2I2YTkxYWVhZjVjY2UwN2NjLi4xZWQyZWE1MGY0NTdjODIwYTk3YjIwMzlmNTk5Y2Rm
N2EzZmE1OGI1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVT
dXBwb3J0L21hYy9XZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0Lm1tCisrKyBiL1NvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvbWFjL1dlYkZyYW1lTmV0d29ya2luZ0NvbnRl
eHQubW0KQEAgLTMyLDYgKzMyLDcgQEAKICNpbmNsdWRlICJXZWJQYWdlLmgiCiAjaW5jbHVkZSAi
V2ViUHJvY2Vzcy5oIgogI2luY2x1ZGUgPFdlYkNvcmUvQ0ZOZXR3b3JrU1BJLmg+CisjaW5jbHVk
ZSA8V2ViQ29yZS9FcnJvcnMuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0ZyYW1lLmg+CiAjaW5jbHVk
ZSA8V2ViQ29yZS9GcmFtZUxvYWRlci5oPgogI2luY2x1ZGUgPFdlYkNvcmUvRnJhbWVMb2FkZXJD
bGllbnQuaD4KQEAgLTk5LDcgKzEwMCw3IEBAIFN0cmluZyBXZWJGcmFtZU5ldHdvcmtpbmdDb250
ZXh0Ojpzb3VyY2VBcHBsaWNhdGlvbklkZW50aWZpZXIoKSBjb25zdAogCiBSZXNvdXJjZUVycm9y
IFdlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQ6OmJsb2NrZWRFcnJvcihjb25zdCBSZXNvdXJjZVJl
cXVlc3QmIHJlcXVlc3QpIGNvbnN0CiB7Ci0gICAgcmV0dXJuIGZyYW1lKCktPmxvYWRlcigpLmNs
aWVudCgpLmJsb2NrZWRFcnJvcihyZXF1ZXN0KTsKKyAgICByZXR1cm4gV2ViQ29yZTo6YmxvY2tl
ZEVycm9yKHJlcXVlc3QpOwogfQogCiBOZXR3b3JrU3RvcmFnZVNlc3Npb24mIFdlYkZyYW1lTmV0
d29ya2luZ0NvbnRleHQ6OnN0b3JhZ2VTZXNzaW9uKCkgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9ndGsvV2ViUHJpbnRPcGVyYXRpb25HdGsuY3Bw
IGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL2d0ay9XZWJQcmludE9wZXJhdGlv
bkd0ay5jcHAKaW5kZXggYjYyMDVkYjk0OTUwMTNlNGE4ZTIyMWNkNmJmYjZkODQ5ODM4MzAxMi4u
NzBlZjUwZTAxOGY2ZTEyZTA2ZTkyYzExMTQ5ZGEwZWM3YjExYWJiNSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL2d0ay9XZWJQcmludE9wZXJhdGlvbkd0ay5j
cHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL2d0ay9XZWJQcmludE9w
ZXJhdGlvbkd0ay5jcHAKQEAgLTMxLDcgKzMxLDcgQEAKICNpbmNsdWRlICJXZWJQYWdlUHJveHlN
ZXNzYWdlcy5oIgogI2luY2x1ZGUgIldlYlByb2Nlc3MuaCIKICNpbmNsdWRlIDxXZWJDb3JlL0Rv
Y3VtZW50TG9hZGVyLmg+Ci0jaW5jbHVkZSA8V2ViQ29yZS9FcnJvcnNHdGsuaD4KKyNpbmNsdWRl
IDxXZWJDb3JlL0Vycm9yc1VuaXguaD4KICNpbmNsdWRlIDxXZWJDb3JlL0ZyYW1lLmg+CiAjaW5j
bHVkZSA8V2ViQ29yZS9JbnRSZWN0Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9Ob3RJbXBsZW1lbnRl
ZC5oPgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>285910</attachid>
            <date>2016-08-12 05:07:24 -0700</date>
            <delta_ts>2016-08-12 05:23:37 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-156974-20160812150543.patch</filename>
            <type>text/plain</type>
            <size>132475</size>
            <attacher name="Claudio Saavedra">csaavedra</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjA0NDEwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYTNiYjRkNmJiN2MzNjVh
YjU3N2QxMjcwYmIwNTVlMDRkZTdjOTM3Yy4uYjk0MDNjY2RjZDVjYTljZGVkNTNmZjQxYmQyMTY0
ZTk3OWFjZjQxNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEwOCBAQAorMjAxNi0wNS0yMCAgQ2xh
dWRpbyBTYWF2ZWRyYSAgPGNzYWF2ZWRyYUBpZ2FsaWEuY29tPgorCisgICAgICAgIFVuaWZ5aW5n
IEVycm9ycy9XZWJFcnJvcnMgaW50byBXZWJDb3JlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNTY5NzQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICBGcmFtZUxvYWRlckNsaWVudCBlcnJvciBtZXRob2RzIGlu
IFdlYkNvcmUgYW5kIFdlYkVycm9ycyBpbiBXSzIgYXJlCisgICAgICAgIHJlZHVuZGFudC4gRnVy
dGhlcm1vcmUsIEZyYW1lTG9hZGVyQ2xpZW50IGVycm9yIG1ldGhvZHMgZG8gbm90IGRlcGVuZAor
ICAgICAgICBpbiB0aGUgbG9hZGVyIGNsaWVudCBpbnN0YW5jZSBhdCBhbGwuCisKKyAgICAgICAg
UmVtb3ZlIHRoZSBlcnJvciBtZXRob2RzIGZyb20gRnJhbWVMb2FkZXJDbGllbnQgYW5kIGFkb3B0
IHRoZSBXZWJFcnJvcnMKKyAgICAgICAgZnJvbSBXSzIgaW50byBXZWJDb3JlLCBzdGFuZGFsb25l
IG1ldGhvZHMuIE1vdmUgdGhlIEVGTCwgR1RLLCBhbmQgV2luLCBhbmQgTWFjIGltcGxlbWVudGF0
aW9ucworICAgICAgICB0byBXZWJDb3JlL3BsYXRmb3JtLCBhbmQgdXBkYXRlIHRoZSBjb2RlIGV2
ZXJ5d2hlcmUgYWNjb3JkaW5nbHkuCisKKyAgICAgICAgKiBQbGF0Zm9ybUVmbC5jbWFrZToKKyAg
ICAgICAgKiBQbGF0Zm9ybUdUSy5jbWFrZToKKyAgICAgICAgKiBQbGF0Zm9ybU1hYy5jbWFrZToK
KyAgICAgICAgKiBQbGF0Zm9ybVdpbi5jbWFrZToKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJv
ai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogbG9hZGVyL0RvY3VtZW50TG9hZGVyLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50TG9hZGVyOjpjb250aW51ZUFmdGVyQ29udGVudFBv
bGljeSk6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudExvYWRlcjo6aW50ZXJydXB0ZWRGb3JQ
b2xpY3lDaGFuZ2VFcnJvcik6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudExvYWRlcjo6c3Rh
cnRMb2FkaW5nTWFpblJlc291cmNlKToKKyAgICAgICAgKiBsb2FkZXIvRW1wdHlDbGllbnRzLmg6
CisgICAgICAgICogbG9hZGVyL0ZyYW1lTG9hZGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZy
YW1lTG9hZGVyOjpjYW5jZWxsZWRFcnJvcik6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZUxvYWRl
cjo6YmxvY2tlZEVycm9yKToKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lTG9hZGVyOjpibG9ja2Vk
QnlDb250ZW50QmxvY2tlckVycm9yKTogRGVsZXRlZC4KKyAgICAgICAgKiBsb2FkZXIvRnJhbWVM
b2FkZXIuaDoKKyAgICAgICAgKiBsb2FkZXIvRnJhbWVMb2FkZXJDbGllbnQuaDoKKyAgICAgICAg
KiBsb2FkZXIvTmV0c2NhcGVQbHVnSW5TdHJlYW1Mb2FkZXIuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6TmV0c2NhcGVQbHVnSW5TdHJlYW1Mb2FkZXI6OmRpZFJlY2VpdmVSZXNwb25zZSk6CisgICAg
ICAgICogbG9hZGVyL1BvbGljeUNoZWNrZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UG9saWN5
Q2hlY2tlcjo6Y2Fubm90U2hvd01JTUVUeXBlKToKKyAgICAgICAgKFdlYkNvcmU6OlBvbGljeUNo
ZWNrZXI6OmNvbnRpbnVlQWZ0ZXJOYXZpZ2F0aW9uUG9saWN5KToKKyAgICAgICAgKiBsb2FkZXIv
UmVzb3VyY2VMb2FkZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VMb2FkZXI6OmJs
b2NrZWRFcnJvcik6CisgICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZUxvYWRlcjo6YmxvY2tlZEJ5
Q29udGVudEJsb2NrZXJFcnJvcik6CisgICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZUxvYWRlcjo6
Y2Fubm90U2hvd1VSTEVycm9yKToKKyAgICAgICAgKiBsb2FkZXIvYXBwY2FjaGUvQXBwbGljYXRp
b25DYWNoZUhvc3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6QXBwbGljYXRpb25DYWNoZUhvc3Q6
Om1heWJlTG9hZFN5bmNocm9ub3VzbHkpOgorICAgICAgICAqIHBsYXRmb3JtL0Vycm9ycy5jcHA6
IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6d2ViS2l0RXJyb3JEb21haW4pOgorICAgICAgICAq
IHBsYXRmb3JtL0Vycm9ycy5oOiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9lZmwvRXJyb3Jz
RWZsLmNwcDogUmVtb3ZlZC4KKyAgICAgICAgKFdlYkNvcmU6OmNhbmNlbGxlZEVycm9yKTogRGVs
ZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OmJsb2NrZWRFcnJvcik6IERlbGV0ZWQuCisgICAgICAg
IChXZWJDb3JlOjpibG9ja2VkQnlDb250ZW50QmxvY2tlckVycm9yKTogRGVsZXRlZC4KKyAgICAg
ICAgKFdlYkNvcmU6OmNhbm5vdFNob3dVUkxFcnJvcik6IERlbGV0ZWQuCisgICAgICAgIChXZWJD
b3JlOjppbnRlcnJ1cHRlZEZvclBvbGljeUNoYW5nZUVycm9yKTogRGVsZXRlZC4KKyAgICAgICAg
KFdlYkNvcmU6OmNhbm5vdFNob3dNSU1FVHlwZUVycm9yKTogRGVsZXRlZC4KKyAgICAgICAgKFdl
YkNvcmU6OmZpbGVEb2VzTm90RXhpc3RFcnJvcik6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3Jl
OjpwbHVnaW5XaWxsSGFuZGxlTG9hZEVycm9yKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6
OmRvd25sb2FkTmV0d29ya0Vycm9yKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OmRvd25s
b2FkQ2FuY2VsbGVkQnlVc2VyRXJyb3IpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6ZG93
bmxvYWREZXN0aW5hdGlvbkVycm9yKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OnByaW50
RXJyb3IpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6cHJpbnRlck5vdEZvdW5kRXJyb3Ip
OiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6aW52YWxpZFBhZ2VSYW5nZVRvUHJpbnQpOiBE
ZWxldGVkLgorICAgICAgICAqIHBsYXRmb3JtL2VmbC9FcnJvcnNFZmwuaDogUmVtb3ZlZC4KKyAg
ICAgICAgKiBwbGF0Zm9ybS9ndGsvRXJyb3JzR3RrLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmNh
bmNlbGxlZEVycm9yKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OmJsb2NrZWRFcnJvcik6
IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpibG9ja2VkQnlDb250ZW50QmxvY2tlckVycm9y
KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OmNhbm5vdFNob3dVUkxFcnJvcik6IERlbGV0
ZWQuCisgICAgICAgIChXZWJDb3JlOjppbnRlcnJ1cHRlZEZvclBvbGljeUNoYW5nZUVycm9yKTog
RGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OmNhbm5vdFNob3dNSU1FVHlwZUVycm9yKTogRGVs
ZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OmZpbGVEb2VzTm90RXhpc3RFcnJvcik6IERlbGV0ZWQu
CisgICAgICAgIChXZWJDb3JlOjpwbHVnaW5XaWxsSGFuZGxlTG9hZEVycm9yKTogRGVsZXRlZC4K
KyAgICAgICAgKFdlYkNvcmU6OmRvd25sb2FkTmV0d29ya0Vycm9yKTogRGVsZXRlZC4KKyAgICAg
ICAgKFdlYkNvcmU6OmRvd25sb2FkQ2FuY2VsbGVkQnlVc2VyRXJyb3IpOiBEZWxldGVkLgorICAg
ICAgICAoV2ViQ29yZTo6ZG93bmxvYWREZXN0aW5hdGlvbkVycm9yKTogRGVsZXRlZC4KKyAgICAg
ICAgKFdlYkNvcmU6OnByaW50RXJyb3IpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6cHJp
bnRlck5vdEZvdW5kRXJyb3IpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6aW52YWxpZFBh
Z2VSYW5nZVRvUHJpbnQpOiBEZWxldGVkLgorICAgICAgICAqIHBsYXRmb3JtL21hYy9FcnJvcnNN
YWMubW06IFJlbmFtZWQgZnJvbSBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBw
b3J0L21hYy9XZWJFcnJvcnNNYWMubW0uCisgICAgICAgIChXZWJDb3JlOjpjcmVhdGVOU0Vycm9y
KToKKyAgICAgICAgKFdlYkNvcmU6OmNhbmNlbGxlZEVycm9yKToKKyAgICAgICAgKFdlYkNvcmU6
OmZpbGVEb2VzTm90RXhpc3RFcnJvcik6CisgICAgICAgIChXZWJDb3JlOjpibG9ja2VkRXJyb3Ip
OgorICAgICAgICAoV2ViQ29yZTo6YmxvY2tlZEJ5Q29udGVudEJsb2NrZXJFcnJvcik6CisgICAg
ICAgIChXZWJDb3JlOjpjYW5ub3RTaG93VVJMRXJyb3IpOgorICAgICAgICAoV2ViQ29yZTo6aW50
ZXJydXB0ZWRGb3JQb2xpY3lDaGFuZ2VFcnJvcik6CisgICAgICAgIChXZWJDb3JlOjpjYW5ub3RT
aG93TUlNRVR5cGVFcnJvcik6CisgICAgICAgIChXZWJDb3JlOjpwbHVnaW5XaWxsSGFuZGxlTG9h
ZEVycm9yKToKKyAgICAgICAgKFdlYkNvcmU6OmludGVybmFsRXJyb3IpOgorICAgICAgICAqIHBs
YXRmb3JtL3VuaXgvRXJyb3JzVW5peC5jcHA6IFJlbmFtZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ndGsvRXJyb3JzR3RrLmNwcC4KKyAgICAgICAgKFdlYkNvcmU6OmNhbmNlbGxlZEVy
cm9yKToKKyAgICAgICAgKFdlYkNvcmU6OmJsb2NrZWRFcnJvcik6CisgICAgICAgIChXZWJDb3Jl
OjpibG9ja2VkQnlDb250ZW50QmxvY2tlckVycm9yKToKKyAgICAgICAgKFdlYkNvcmU6OmNhbm5v
dFNob3dVUkxFcnJvcik6CisgICAgICAgIChXZWJDb3JlOjppbnRlcnJ1cHRlZEZvclBvbGljeUNo
YW5nZUVycm9yKToKKyAgICAgICAgKFdlYkNvcmU6OmNhbm5vdFNob3dNSU1FVHlwZUVycm9yKToK
KyAgICAgICAgKFdlYkNvcmU6OmZpbGVEb2VzTm90RXhpc3RFcnJvcik6CisgICAgICAgIChXZWJD
b3JlOjpwbHVnaW5XaWxsSGFuZGxlTG9hZEVycm9yKToKKyAgICAgICAgKFdlYkNvcmU6OmRvd25s
b2FkTmV0d29ya0Vycm9yKToKKyAgICAgICAgKFdlYkNvcmU6OmRvd25sb2FkQ2FuY2VsbGVkQnlV
c2VyRXJyb3IpOgorICAgICAgICAoV2ViQ29yZTo6ZG93bmxvYWREZXN0aW5hdGlvbkVycm9yKToK
KyAgICAgICAgKFdlYkNvcmU6OnByaW50RXJyb3IpOgorICAgICAgICAoV2ViQ29yZTo6cHJpbnRl
ck5vdEZvdW5kRXJyb3IpOgorICAgICAgICAoV2ViQ29yZTo6aW52YWxpZFBhZ2VSYW5nZVRvUHJp
bnQpOgorICAgICAgICAoV2ViQ29yZTo6aW50ZXJuYWxFcnJvcik6CisgICAgICAgICogcGxhdGZv
cm0vdW5peC9FcnJvcnNVbml4Lmg6IFJlbmFtZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ndGsvRXJyb3JzR3RrLmguCisKIDIwMTYtMDgtMTIgIFBoaWxpcHBlIE5vcm1hbmQgIDxwbm9y
bWFuZEBpZ2FsaWEuY29tPgogCiAgICAgICAgIFtHU3RyZWFtZXJdIFBlcmZvcm1hbmNlIHByb2Js
ZW1zIHdpdGggYmlnZ2VyIHZpZGVvIHJlc29sdXRpb24gaW4gdGhlIHdlYnJ0YyBtZWRpYSBwbGF5
ZXIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJL
aXQvbWFjL0NoYW5nZUxvZwppbmRleCBjYzYwNjVhZGU3ZmJjYTk0MWQ0NzJjODA1MzQ1Mjc4OGFm
NTg1N2Y3Li4yY2UyZmRhZWRmMzc1ZGEzZWNhMDMyNTA3YzFlOWIxZTgxNmE1YzU4IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9tYWMv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMzMgQEAKKzIwMTYtMDUtMjAgIENsYXVkaW8gU2FhdmVkcmEg
IDxjc2FhdmVkcmFAaWdhbGlhLmNvbT4KKworICAgICAgICBVbmlmeWluZyBFcnJvcnMvV2ViRXJy
b3JzIGludG8gV2ViQ29yZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MTU2OTc0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgRnJhbWVMb2FkZXJDbGllbnQgZXJyb3IgbWV0aG9kcyBpbiBXZWJDb3JlIGFuZCBX
ZWJFcnJvcnMgaW4gV0syIGFyZQorICAgICAgICByZWR1bmRhbnQuIEZ1cnRoZXJtb3JlLCBGcmFt
ZUxvYWRlckNsaWVudCBlcnJvciBtZXRob2RzIGRvIG5vdCBkZXBlbmQKKyAgICAgICAgaW4gdGhl
IGxvYWRlciBjbGllbnQgaW5zdGFuY2UgYXQgYWxsLgorCisgICAgICAgIFJlbW92ZSB0aGUgZXJy
b3IgbWV0aG9kcyBmcm9tIEZyYW1lTG9hZGVyQ2xpZW50IGFuZCBhZG9wdCB0aGUgV2ViRXJyb3Jz
CisgICAgICAgIGZyb20gV0syIGludG8gV2ViQ29yZSwgc3RhbmRhbG9uZSBtZXRob2RzLiBNb3Zl
IHRoZSBFRkwsIEdUSywgYW5kIE1hYyBpbXBsZW1lbnRhdGlvbnMKKyAgICAgICAgdG8gV2ViQ29y
ZS9wbGF0Zm9ybSwgYW5kIHVwZGF0ZSB0aGUgY29kZSBldmVyeXdoZXJlIGFjY29yZGluZ2x5Lgor
CisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuaDoKKyAgICAg
ICAgKiBXZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5tbToKKyAgICAgICAgKFdl
YkZyYW1lTG9hZGVyQ2xpZW50OjpjYW5jZWxsZWRFcnJvcik6IERlbGV0ZWQuCisgICAgICAgIChX
ZWJGcmFtZUxvYWRlckNsaWVudDo6YmxvY2tlZEVycm9yKTogRGVsZXRlZC4KKyAgICAgICAgKFdl
YkZyYW1lTG9hZGVyQ2xpZW50OjpibG9ja2VkQnlDb250ZW50QmxvY2tlckVycm9yKTogRGVsZXRl
ZC4KKyAgICAgICAgKFdlYkZyYW1lTG9hZGVyQ2xpZW50OjpjYW5ub3RTaG93VVJMRXJyb3IpOiBE
ZWxldGVkLgorICAgICAgICAoV2ViRnJhbWVMb2FkZXJDbGllbnQ6OmludGVycnVwdGVkRm9yUG9s
aWN5Q2hhbmdlRXJyb3IpOiBEZWxldGVkLgorICAgICAgICAoV2ViRnJhbWVMb2FkZXJDbGllbnQ6
OmNhbm5vdFNob3dNSU1FVHlwZUVycm9yKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkZyYW1lTG9h
ZGVyQ2xpZW50OjpmaWxlRG9lc05vdEV4aXN0RXJyb3IpOiBEZWxldGVkLgorICAgICAgICAoV2Vi
RnJhbWVMb2FkZXJDbGllbnQ6OnBsdWdpbldpbGxIYW5kbGVMb2FkRXJyb3IpOiBEZWxldGVkLgor
ICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQubW06Cisg
ICAgICAgIChXZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0OjpibG9ja2VkRXJyb3IpOgorICAgICAg
ICAqIFdlYlZpZXcvV2ViSFRNTFJlcHJlc2VudGF0aW9uLm1tOgorICAgICAgICAoLVtXZWJIVE1M
UmVwcmVzZW50YXRpb24gcmVjZWl2ZWREYXRhOndpdGhEYXRhU291cmNlOl0pOgorCiAyMDE2LTA4
LTExICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CiAKICAgICAgICAgUmVncmVzc2lv
bihyMjA0MjY4KTogTWFpbCBjcmFzaGVzIHdoZW4gdHJ5aW5nIHRvIGNvbXBvc2UgYW4gZW1haWwK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0No
YW5nZUxvZwppbmRleCAzOTRjYmNmY2IyYmExNTUwMjliYTQyYTcwZmM0YzIxNGQzYzQ0ZDUwLi42
OGYwNmYzNWRlYzg5YjM3MjEwODMxOTA0YzFjMzJjMTJiM2ZhZTM2IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0x
LDMgKzEsOTMgQEAKKzIwMTYtMDUtMjAgIENsYXVkaW8gU2FhdmVkcmEgIDxjc2FhdmVkcmFAaWdh
bGlhLmNvbT4KKworICAgICAgICBVbmlmeWluZyBFcnJvcnMvV2ViRXJyb3JzIGludG8gV2ViQ29y
ZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTU2OTc0
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgRnJhbWVM
b2FkZXJDbGllbnQgZXJyb3IgbWV0aG9kcyBpbiBXZWJDb3JlIGFuZCBXZWJFcnJvcnMgaW4gV0sy
IGFyZQorICAgICAgICByZWR1bmRhbnQuIEZ1cnRoZXJtb3JlLCBGcmFtZUxvYWRlckNsaWVudCBl
cnJvciBtZXRob2RzIGRvIG5vdCBkZXBlbmQKKyAgICAgICAgaW4gdGhlIGxvYWRlciBjbGllbnQg
aW5zdGFuY2UgYXQgYWxsLgorCisgICAgICAgIFJlbW92ZSB0aGUgZXJyb3IgbWV0aG9kcyBmcm9t
IEZyYW1lTG9hZGVyQ2xpZW50IGFuZCBhZG9wdCB0aGUgV2ViRXJyb3JzCisgICAgICAgIGZyb20g
V0syIGludG8gV2ViQ29yZSwgc3RhbmRhbG9uZSBtZXRob2RzLiBNb3ZlIHRoZSBFRkwsIEdUSywg
YW5kIE1hYyBpbXBsZW1lbnRhdGlvbnMKKyAgICAgICAgdG8gV2ViQ29yZS9wbGF0Zm9ybSwgYW5k
IHVwZGF0ZSB0aGUgY29kZSBldmVyeXdoZXJlIGFjY29yZGluZ2x5LgorCisgICAgICAgICogTmV0
d29ya1Byb2Nlc3MvRG93bmxvYWRzL2VmbC9Eb3dubG9hZFNvdXBFcnJvcnNFZmwuY3BwOiBSZW1v
dmVkLgorICAgICAgICAoV2ViS2l0OjpwbGF0Zm9ybURvd25sb2FkTmV0d29ya0Vycm9yKTogRGVs
ZXRlZC4KKyAgICAgICAgKFdlYktpdDo6cGxhdGZvcm1Eb3dubG9hZERlc3RpbmF0aW9uRXJyb3Ip
OiBEZWxldGVkLgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL0Rvd25sb2Fkcy9ndGsvRG93bmxv
YWRTb3VwRXJyb3JzR3RrLmNwcDoKKyAgICAgICAgKFdlYktpdDo6cGxhdGZvcm1Eb3dubG9hZE5l
dHdvcmtFcnJvcik6IERlbGV0ZWQuCisgICAgICAgIChXZWJLaXQ6OnBsYXRmb3JtRG93bmxvYWRE
ZXN0aW5hdGlvbkVycm9yKTogRGVsZXRlZC4KKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9Eb3du
bG9hZHMvc291cC9Eb3dubG9hZFNvdXBFcnJvcnMuY3BwOiBSZW5hbWVkIGZyb20gU291cmNlL1dl
YktpdDIvTmV0d29ya1Byb2Nlc3MvRG93bmxvYWRzL2d0ay9Eb3dubG9hZFNvdXBFcnJvcnNHdGsu
Y3BwLgorICAgICAgICAoV2ViS2l0OjpwbGF0Zm9ybURvd25sb2FkTmV0d29ya0Vycm9yKToKKyAg
ICAgICAgKFdlYktpdDo6cGxhdGZvcm1Eb3dubG9hZERlc3RpbmF0aW9uRXJyb3IpOgorICAgICAg
ICAqIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtMb2FkLmNwcDoKKyAgICAgICAgKFdlYktpdDo6TmV0
d29ya0xvYWQ6Ondhc0Jsb2NrZWQpOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrTG9hZDo6Y2Fu
bm90U2hvd1VSTCk6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvbWFjL1JlbW90ZU5ldHdvcmtp
bmdDb250ZXh0Lm1tOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVOZXR3b3JraW5nQ29udGV4dDo6
YmxvY2tlZEVycm9yKToKKyAgICAgICAgKiBQbGF0Zm9ybUVmbC5jbWFrZToKKyAgICAgICAgKiBQ
bGF0Zm9ybUdUSy5jbWFrZToKKyAgICAgICAgKiBQbGF0Zm9ybU1hYy5jbWFrZToKKyAgICAgICAg
KiBTaGFyZWQvQVBJL0FQSUVycm9yLmNwcDoKKyAgICAgICAgKEFQSTo6RXJyb3I6OndlYktpdEVy
cm9yRG9tYWluKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2VmbC9ld2tfZXJyb3IuY3BwOgor
ICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdERvd25sb2FkLmNwcDoKKyAgICAgICAg
KiBVSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRFcnJvci5jcHA6CisgICAgICAgICogVUlQcm9jZXNz
L0FQSS9ndGsvV2ViS2l0UHJpdmF0ZS5jcHA6CisgICAgICAgICogVUlQcm9jZXNzL05ldHdvcmsv
Q3VzdG9tUHJvdG9jb2xzL3NvdXAvV2ViU291cEN1c3RvbVByb3RvY29sUmVxdWVzdE1hbmFnZXIu
Y3BwOgorICAgICAgICAqIFdlYktpdDIueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAg
ICAgKiBXZWJQcm9jZXNzL05ldHdvcmsvV2ViTG9hZGVyU3RyYXRlZ3kuY3BwOgorICAgICAgICAq
IFdlYlByb2Nlc3MvTmV0d29yay9XZWJSZXNvdXJjZUxvYWRlci5jcHA6CisgICAgICAgICogV2Vi
UHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJFcnJvcnMuaDogUmVtb3ZlZC4KKyAgICAgICAgKiBX
ZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmNwcDoKKyAgICAg
ICAgKFdlYktpdDo6V2ViRnJhbWVMb2FkZXJDbGllbnQ6OnNob3VsZEZhbGxCYWNrKToKKyAgICAg
ICAgKFdlYktpdDo6V2ViRnJhbWVMb2FkZXJDbGllbnQ6OmNhbmNlbGxlZEVycm9yKTogRGVsZXRl
ZC4KKyAgICAgICAgKFdlYktpdDo6V2ViRnJhbWVMb2FkZXJDbGllbnQ6OmJsb2NrZWRFcnJvcik6
IERlbGV0ZWQuCisgICAgICAgIChXZWJLaXQ6OldlYkZyYW1lTG9hZGVyQ2xpZW50OjpibG9ja2Vk
QnlDb250ZW50QmxvY2tlckVycm9yKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYktpdDo6V2ViRnJh
bWVMb2FkZXJDbGllbnQ6OmNhbm5vdFNob3dVUkxFcnJvcik6IERlbGV0ZWQuCisgICAgICAgIChX
ZWJLaXQ6OldlYkZyYW1lTG9hZGVyQ2xpZW50OjppbnRlcnJ1cHRlZEZvclBvbGljeUNoYW5nZUVy
cm9yKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYktpdDo6V2ViRnJhbWVMb2FkZXJDbGllbnQ6OmNh
bm5vdFNob3dNSU1FVHlwZUVycm9yKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYktpdDo6V2ViRnJh
bWVMb2FkZXJDbGllbnQ6OmZpbGVEb2VzTm90RXhpc3RFcnJvcik6IERlbGV0ZWQuCisgICAgICAg
IChXZWJLaXQ6OldlYkZyYW1lTG9hZGVyQ2xpZW50OjpwbHVnaW5XaWxsSGFuZGxlTG9hZEVycm9y
KTogRGVsZXRlZC4KKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1l
TG9hZGVyQ2xpZW50Lmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJQ
bGF0Zm9ybVN0cmF0ZWdpZXMuY3BwOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBv
cnQvZWZsL1dlYkVycm9yc0VmbC5jcHA6IFJlbW92ZWQuCisgICAgICAgIChXZWJLaXQ6OmNhbmNl
bGxlZEVycm9yKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYktpdDo6YmxvY2tlZEVycm9yKTogRGVs
ZXRlZC4KKyAgICAgICAgKFdlYktpdDo6YmxvY2tlZEJ5Q29udGVudEJsb2NrZXJFcnJvcik6IERl
bGV0ZWQuCisgICAgICAgIChXZWJLaXQ6OmNhbm5vdFNob3dVUkxFcnJvcik6IERlbGV0ZWQuCisg
ICAgICAgIChXZWJLaXQ6OmludGVycnVwdGVkRm9yUG9saWN5Q2hhbmdlRXJyb3IpOiBEZWxldGVk
LgorICAgICAgICAoV2ViS2l0OjpjYW5ub3RTaG93TUlNRVR5cGVFcnJvcik6IERlbGV0ZWQuCisg
ICAgICAgIChXZWJLaXQ6OmZpbGVEb2VzTm90RXhpc3RFcnJvcik6IERlbGV0ZWQuCisgICAgICAg
IChXZWJLaXQ6OnBsdWdpbldpbGxIYW5kbGVMb2FkRXJyb3IpOiBEZWxldGVkLgorICAgICAgICAo
V2ViS2l0OjppbnRlcm5hbEVycm9yKTogRGVsZXRlZC4KKyAgICAgICAgKiBXZWJQcm9jZXNzL1dl
YkNvcmVTdXBwb3J0L2d0ay9XZWJFcnJvcnNHdGsuY3BwOiBSZW1vdmVkLgorICAgICAgICAoV2Vi
S2l0OjpjYW5jZWxsZWRFcnJvcik6IERlbGV0ZWQuCisgICAgICAgIChXZWJLaXQ6OmJsb2NrZWRF
cnJvcik6IERlbGV0ZWQuCisgICAgICAgIChXZWJLaXQ6OmJsb2NrZWRCeUNvbnRlbnRCbG9ja2Vy
RXJyb3IpOiBEZWxldGVkLgorICAgICAgICAoV2ViS2l0OjpjYW5ub3RTaG93VVJMRXJyb3IpOiBE
ZWxldGVkLgorICAgICAgICAoV2ViS2l0OjppbnRlcnJ1cHRlZEZvclBvbGljeUNoYW5nZUVycm9y
KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYktpdDo6Y2Fubm90U2hvd01JTUVUeXBlRXJyb3IpOiBE
ZWxldGVkLgorICAgICAgICAoV2ViS2l0OjpmaWxlRG9lc05vdEV4aXN0RXJyb3IpOiBEZWxldGVk
LgorICAgICAgICAoV2ViS2l0OjpwbHVnaW5XaWxsSGFuZGxlTG9hZEVycm9yKTogRGVsZXRlZC4K
KyAgICAgICAgKFdlYktpdDo6aW50ZXJuYWxFcnJvcik6IERlbGV0ZWQuCisgICAgICAgICogV2Vi
UHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9tYWMvV2ViRXJyb3JzTWFjLm1tOgorICAgICAgICAoV2Vi
S2l0OjpjcmVhdGVOU0Vycm9yKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYktpdDo6Y2FuY2VsbGVk
RXJyb3IpOiBEZWxldGVkLgorICAgICAgICAoV2ViS2l0OjpmaWxlRG9lc05vdEV4aXN0RXJyb3Ip
OiBEZWxldGVkLgorICAgICAgICAoV2ViS2l0OjpibG9ja2VkRXJyb3IpOiBEZWxldGVkLgorICAg
ICAgICAoV2ViS2l0OjpibG9ja2VkQnlDb250ZW50QmxvY2tlckVycm9yKTogRGVsZXRlZC4KKyAg
ICAgICAgKFdlYktpdDo6Y2Fubm90U2hvd1VSTEVycm9yKTogRGVsZXRlZC4KKyAgICAgICAgKFdl
YktpdDo6aW50ZXJydXB0ZWRGb3JQb2xpY3lDaGFuZ2VFcnJvcik6IERlbGV0ZWQuCisgICAgICAg
IChXZWJLaXQ6OmNhbm5vdFNob3dNSU1FVHlwZUVycm9yKTogRGVsZXRlZC4KKyAgICAgICAgKFdl
YktpdDo6cGx1Z2luV2lsbEhhbmRsZUxvYWRFcnJvcik6IERlbGV0ZWQuCisgICAgICAgIChXZWJL
aXQ6OmludGVybmFsRXJyb3IpOiBEZWxldGVkLgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29y
ZVN1cHBvcnQvbWFjL1dlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQubW06CisgICAgICAgIChXZWJL
aXQ6OldlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQ6OmJsb2NrZWRFcnJvcik6CisgICAgICAgICog
V2ViUHJvY2Vzcy9XZWJQYWdlL2d0ay9XZWJQcmludE9wZXJhdGlvbkd0ay5jcHA6CisKIDIwMTYt
MDgtMTEgIEJyYWR5IEVpZHNvbiAgPGJlaWRzb25AYXBwbGUuY29tPgogCiAgICAgICAgIFtXSzJd
IERvbid0IG1vbml0b3IgZ2FtZXBhZHMgYXQgYWxsIHVubGVzcyBhbiBpbnRlcmVzdGVkIFdlYlBh
Z2VQcm94eSBpcyBpbiB0aGUgYWN0aXZlIHdpbmRvdy4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL0NNYWtlTGlzdHMudHh0IGIvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKaW5kZXgg
M2RlYTA0OWQ2OTFkOWRhN2FmMTJmNjNhZWEzZWMwNWRjYzM1YTA5MS4uYzIwNDVhYWRhYmJlYTQw
Nzc5MmQzMmNkYzg4NjU0ZGQ1NDYzNGM0NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ01h
a2VMaXN0cy50eHQKKysrIGIvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKQEAgLTIxMjUs
NiArMjEyNSw3IEBAIHNldChXZWJDb3JlX1NPVVJDRVMKICAgICBwbGF0Zm9ybS9EaXNwbGF5U2xl
ZXBEaXNhYmxlci5jcHAKICAgICBwbGF0Zm9ybS9EcmFnRGF0YS5jcHAKICAgICBwbGF0Zm9ybS9E
cmFnSW1hZ2UuY3BwCisgICAgcGxhdGZvcm0vRXJyb3JzLmNwcAogICAgIHBsYXRmb3JtL0V2ZW50
VHJhY2tpbmdSZWdpb25zLmNwcAogICAgIHBsYXRmb3JtL0ZpbGVDaG9vc2VyLmNwcAogICAgIHBs
YXRmb3JtL0ZpbGVTdHJlYW0uY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9QbGF0Zm9y
bUVmbC5jbWFrZSBiL1NvdXJjZS9XZWJDb3JlL1BsYXRmb3JtRWZsLmNtYWtlCmluZGV4IGU3YjA4
Nzc0OGM1ZjFlZGQ2Mjk3MDhjNGVkODI3ODhjNDgzOTBlY2UuLjdiOThhNzZkYzdiMGMxMTQ4Mzc4
MWRhOGZlNmM3NzVmMWFmYzc1YmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1BsYXRmb3Jt
RWZsLmNtYWtlCisrKyBiL1NvdXJjZS9XZWJDb3JlL1BsYXRmb3JtRWZsLmNtYWtlCkBAIC05OCw3
ICs5OCw2IEBAIGxpc3QoQVBQRU5EIFdlYkNvcmVfU09VUkNFUwogICAgIHBsYXRmb3JtL2VmbC9F
ZmxJbnNwZWN0b3JVdGlsaXRpZXMuY3BwCiAgICAgcGxhdGZvcm0vZWZsL0VmbEtleWJvYXJkVXRp
bGl0aWVzLmNwcAogICAgIHBsYXRmb3JtL2VmbC9FZmxTY3JlZW5VdGlsaXRpZXMuY3BwCi0gICAg
cGxhdGZvcm0vZWZsL0Vycm9yc0VmbC5jcHAKICAgICBwbGF0Zm9ybS9lZmwvRXZlbnRMb29wRWZs
LmNwcAogICAgIHBsYXRmb3JtL2VmbC9GaWxlU3lzdGVtRWZsLmNwcAogICAgIHBsYXRmb3JtL2Vm
bC9Mb2NhbGl6ZWRTdHJpbmdzRWZsLmNwcApAQCAtMjIwLDYgKzIxOSw3IEBAIGxpc3QoQVBQRU5E
IFdlYkNvcmVfU09VUkNFUwogCiAgICAgcGxhdGZvcm0vdGV4dC9oeXBoZW4vSHlwaGVuYXRpb25M
aWJIeXBoZW4uY3BwCiAKKyAgICBwbGF0Zm9ybS91bml4L0Vycm9yc1VuaXguY3BwCiAgICAgcGxh
dGZvcm0vdW5peC9Mb2dnaW5nVW5peC5jcHAKIAogICAgIHJlbmRlcmluZy9SZW5kZXJUaGVtZUVm
bC5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1BsYXRmb3JtR1RLLmNtYWtlIGIvU291
cmNlL1dlYkNvcmUvUGxhdGZvcm1HVEsuY21ha2UKaW5kZXggYTY5ZDAyNjA3ZmMzOTc2YTNkODE0
YjNmMDY5ZGRhMjJkZDMwMGVjNC4uZjJjZjY0ODU4NmUyNjEyODM1Yzc4MWU1NjNkNjdjYmNlMWVh
YmJkMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvUGxhdGZvcm1HVEsuY21ha2UKKysrIGIv
U291cmNlL1dlYkNvcmUvUGxhdGZvcm1HVEsuY21ha2UKQEAgLTE0Nyw3ICsxNDcsNiBAQCBsaXN0
KEFQUEVORCBXZWJDb3JlX1NPVVJDRVMKICAgICBwbGF0Zm9ybS9ncmFwaGljcy94MTEvUGxhdGZv
cm1EaXNwbGF5WDExLmNwcAogICAgIHBsYXRmb3JtL2dyYXBoaWNzL3gxMS9YVW5pcXVlUmVzb3Vy
Y2UuY3BwCiAKLSAgICBwbGF0Zm9ybS9ndGsvRXJyb3JzR3RrLmNwcAogICAgIHBsYXRmb3JtL2d0
ay9NSU1FVHlwZVJlZ2lzdHJ5R3RrLmNwcAogICAgIHBsYXRmb3JtL2d0ay9TY3JvbGxBbmltYXRv
ckd0ay5jcHAKICAgICBwbGF0Zm9ybS9ndGsvVGVtcG9yYXJ5TGlua1N0dWJzLmNwcApAQCAtMTg4
LDYgKzE4Nyw3IEBAIGxpc3QoQVBQRU5EIFdlYkNvcmVfU09VUkNFUwogCiAgICAgcGxhdGZvcm0v
dGV4dC9oeXBoZW4vSHlwaGVuYXRpb25MaWJIeXBoZW4uY3BwCiAKKyAgICBwbGF0Zm9ybS91bml4
L0Vycm9yc1VuaXguY3BwCiAgICAgcGxhdGZvcm0vdW5peC9Mb2dnaW5nVW5peC5jcHAKICkKIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvUGxhdGZvcm1NYWMuY21ha2UgYi9Tb3VyY2UvV2Vi
Q29yZS9QbGF0Zm9ybU1hYy5jbWFrZQppbmRleCA3NTUyY2Q3NWNkMTVjOGJmNjFhZjdkMmEwZWE5
ZmI5MTdmZTA3ZTM5Li5mZGQxNDQyYTUzM2MzOTRkOTViMWQ2NzMzODc5Nzk3ZWU0YzE0MDJjIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9QbGF0Zm9ybU1hYy5jbWFrZQorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9QbGF0Zm9ybU1hYy5jbWFrZQpAQCAtNTg1LDYgKzU4NSw3IEBAIGxpc3QoQVBQRU5E
IFdlYkNvcmVfU09VUkNFUwogICAgIHBsYXRmb3JtL21hYy9DdXJzb3JNYWMubW0KICAgICBwbGF0
Zm9ybS9tYWMvRHJhZ0RhdGFNYWMubW0KICAgICBwbGF0Zm9ybS9tYWMvRHJhZ0ltYWdlTWFjLm1t
CisgICAgcGxhdGZvcm0vbWFjL0Vycm9yc01hYy5tbQogICAgIHBsYXRmb3JtL21hYy9FdmVudExv
b3BNYWMubW0KICAgICBwbGF0Zm9ybS9tYWMvRmlsZVN5c3RlbU1hYy5tbQogICAgIHBsYXRmb3Jt
L21hYy9ISURHYW1lcGFkLmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvUGxhdGZvcm1X
aW4uY21ha2UgYi9Tb3VyY2UvV2ViQ29yZS9QbGF0Zm9ybVdpbi5jbWFrZQppbmRleCAxNGVmYzQz
YmQ3YWZlOTFkMWYxYmYwOWQ5MGQwMWY1N2RjMTdkYThiLi45Mjk5MWFiNjNlYTc1MmRmMWIwYzdk
ZDZhNmM0NjI0Y2I1ODFhNzJkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9QbGF0Zm9ybVdp
bi5jbWFrZQorKysgYi9Tb3VyY2UvV2ViQ29yZS9QbGF0Zm9ybVdpbi5jbWFrZQpAQCAtMTE1LDYg
KzExNSw3IEBAIGxpc3QoQVBQRU5EIFdlYkNvcmVfU09VUkNFUwogICAgIHBsYXRmb3JtL3dpbi9E
ZWZXbmRQcm9jV2luZG93Q2xhc3MuY3BwCiAgICAgcGxhdGZvcm0vd2luL0RyYWdEYXRhV2luLmNw
cAogICAgIHBsYXRmb3JtL3dpbi9EcmFnSW1hZ2VXaW4uY3BwCisgICAgcGxhdGZvcm0vd2luL0Vy
cm9yc1dpbi5jcHAKICAgICBwbGF0Zm9ybS93aW4vRXZlbnRMb29wV2luLmNwcAogICAgIHBsYXRm
b3JtL3dpbi9GaWxlU3lzdGVtV2luLmNwcAogICAgIHBsYXRmb3JtL3dpbi9HRElPYmplY3RDb3Vu
dGVyLmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJv
amVjdC5wYnhwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5w
Ynhwcm9qCmluZGV4IDc3NDcwMDgzNjdmZTY1MGRiODZkZTRkMDkxOGNhMTQ0OWM4YTk3YzYuLjgz
YzUwZGEwMjNkMjNjM2ZkYjk1MDU2NTQzODg2MWMwNDAyOWY3ZWYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTIwMTYsNiArMjAx
Niw3IEBACiAJCTUxMEQ0QTM2MTAzMTY1RUUwMDQ5RUE1NCAvKiBTb2NrZXRTdHJlYW1IYW5kbGVC
YXNlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUx
MEQ0QTMwMTAzMTY1RUUwMDQ5RUE1NCAvKiBTb2NrZXRTdHJlYW1IYW5kbGVCYXNlLmNwcCAqLzsg
fTsKIAkJNTEwRDRBMzcxMDMxNjVFRTAwNDlFQTU0IC8qIFNvY2tldFN0cmVhbUhhbmRsZUJhc2Uu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxMEQ0QTMx
MTAzMTY1RUUwMDQ5RUE1NCAvKiBTb2NrZXRTdHJlYW1IYW5kbGVCYXNlLmggKi87IHNldHRpbmdz
ID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJNTEwRDRBMzgxMDMxNjVFRTAw
NDlFQTU0IC8qIFNvY2tldFN0cmVhbUhhbmRsZUNsaWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTEwRDRBMzIxMDMxNjVFRTAwNDlFQTU0IC8qIFNv
Y2tldFN0cmVhbUhhbmRsZUNsaWVudC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFBy
aXZhdGUsICk7IH07IH07CisJCTUxMTNFNkQ2MUNFMEM3QTQwMDJEOTU2MSAvKiBFcnJvcnMuY3Bw
IGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTExM0U2RDUx
Q0UwQzc5MDAwMkQ5NTYxIC8qIEVycm9ycy5jcHAgKi87IH07CiAJCTUxMUVDMTI3MUM1MEFBQ0Ew
MDMyRjk4MyAvKiBJREJTZXJpYWxpemF0aW9uLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxMUVDMTI1MUM1MEFBNTcwMDMyRjk4MyAvKiBJREJTZXJp
YWxpemF0aW9uLmNwcCAqLzsgfTsKIAkJNTExRUMxMjgxQzUwQUFDQTAwMzJGOTgzIC8qIElEQlNl
cmlhbGl6YXRpb24uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDUxMUVDMTI2MUM1MEFBNTcwMDMyRjk4MyAvKiBJREJTZXJpYWxpemF0aW9uLmggKi87IH07
CiAJCTUxMUVDMTJCMUM1MEFCQkYwMDMyRjk4MyAvKiBTUUxpdGVJREJUcmFuc2FjdGlvbi5jcHAg
aW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MTFFQzEyOTFD
NTBBQkJBMDAzMkY5ODMgLyogU1FMaXRlSURCVHJhbnNhY3Rpb24uY3BwICovOyB9OwpAQCAtMjEx
Niw2ICsyMTE3LDggQEAKIAkJNTE2MTAzQjAxQ0FEQkE3QTAwMTZCNEM3IC8qIElEQlZhbHVlLmNw
cCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxNjEwM0FE
MUNBREI5QTMwMDE2QjRDNyAvKiBJREJWYWx1ZS5jcHAgKi87IH07CiAJCTUxNjJDN0Y0MTFGNzdF
RkIwMDYxMkVGRSAvKiBTY2hlbWVSZWdpc3RyeS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MTYyQzdGMjExRjc3RUZBMDA2MTJFRkUgLyogU2NoZW1l
UmVnaXN0cnkuY3BwICovOyB9OwogCQk1MTYyQzdGNTExRjc3RUZCMDA2MTJFRkUgLyogU2NoZW1l
UmVnaXN0cnkuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDUxNjJDN0YzMTFGNzdFRkIwMDYxMkVGRSAvKiBTY2hlbWVSZWdpc3RyeS5oICovOyBzZXR0aW5n
cyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCTUxNjQ3NjA0MUNFMDkwNUEw
MDkxRjBBOSAvKiBFcnJvcnMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDUxNjQ3NjAzMUNFMDkwMUMwMDkxRjBBOSAvKiBFcnJvcnMuaCAqLzsgc2V0dGlu
Z3MgPSB7QVRUUklCVVRFUyA9IChQdWJsaWMsICk7IH07IH07CisJCTUxNjQ3NjA2MUNFMDkwQjEw
MDkxRjBBOSAvKiBFcnJvcnNNYWMubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA1MTY0NzYwNTFDRTA5MDkxMDA5MUYwQTkgLyogRXJyb3JzTWFjLm1tICov
OyB9OwogCQk1MTY5NTM5NzEzMjlBM0M4MDBCOTJEMDQgLyogSWNvbkRhdGFiYXNlQmFzZS5jcHAg
aW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MTY5NTM5NTEz
MjlBM0M4MDBCOTJEMDQgLyogSWNvbkRhdGFiYXNlQmFzZS5jcHAgKi87IH07CiAJCTUxNjk1Mzk4
MTMyOUEzQzgwMEI5MkQwNCAvKiBJY29uRGF0YWJhc2VCYXNlLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MTY5NTM5NjEzMjlBM0M4MDBCOTJEMDQgLyog
SWNvbkRhdGFiYXNlQmFzZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUs
ICk7IH07IH07CiAJCTUxNkJCNzk0MENFOTFFNjgwMDUxMkY3OSAvKiBKU1RyZWVXYWxrZXJDdXN0
b20uY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTE2
QkI3OTIwQ0U5MUU2ODAwNTEyRjc5IC8qIEpTVHJlZVdhbGtlckN1c3RvbS5jcHAgKi87IH07CkBA
IC05MzQyLDYgKzkzNDUsNyBAQAogCQk1MTBENEEzMDEwMzE2NUVFMDA0OUVBNTQgLyogU29ja2V0
U3RyZWFtSGFuZGxlQmFzZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGgg
PSBTb2NrZXRTdHJlYW1IYW5kbGVCYXNlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJNTEwRDRBMzExMDMxNjVFRTAwNDlFQTU0IC8qIFNvY2tldFN0cmVhbUhhbmRsZUJhc2UuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU29ja2V0U3RyZWFtSGFuZGxlQmFzZS5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1MTBENEEzMjEwMzE2NUVFMDA0OUVBNTQg
LyogU29ja2V0U3RyZWFtSGFuZGxlQ2xpZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IFNvY2tldFN0cmVhbUhhbmRsZUNsaWVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OworCQk1MTEzRTZENTFDRTBDNzkwMDAyRDk1NjEgLyogRXJyb3JzLmNwcCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEVycm9ycy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCTUxMUVDMTI1MUM1MEFBNTcwMDMyRjk4MyAvKiBJREJTZXJpYWxpemF0aW9u
LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IElEQlNlcmlhbGl6YXRp
b24uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1MTFFQzEyNjFDNTBBQTU3MDAz
MkY5ODMgLyogSURCU2VyaWFsaXphdGlvbi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBJREJTZXJpYWxpemF0aW9uLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTUx
MUVDMTI5MUM1MEFCQkEwMDMyRjk4MyAvKiBTUUxpdGVJREJUcmFuc2FjdGlvbi5jcHAgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBTUUxpdGVJREJUcmFuc2FjdGlvbi5jcHA7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC05NDY5LDYgKzk0NzMsOCBAQAogCQk1MTY0
NUI1MjFCOUY4ODlCMDBGNzg5Q0UgLyogSURCVmVyc2lvbkNoYW5nZUV2ZW50LmNwcCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IElEQlZlcnNpb25DaGFuZ2VFdmVudC5jcHA7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTUxNjQ1QjUzMUI5Rjg4OUIwMEY3ODlDRSAv
KiBJREJWZXJzaW9uQ2hhbmdlRXZlbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gSURCVmVyc2lvbkNoYW5nZUV2ZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CTUxNjQ1QjU0MUI5Rjg4RTgwMEY3ODlDRSAvKiBJREJDdXJzb3IuY3BwICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSURCQ3Vyc29yLmNwcDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKKwkJNTE2NDc2MDMxQ0UwOTAxQzAwOTFGMEE5IC8qIEVycm9ycy5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBFcnJvcnMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKKwkJNTE2NDc2MDUxQ0UwOTA5MTAwOTFGMEE5IC8qIEVycm9yc01hYy5tbSAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IEVycm9yc01hYy5tbTsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTE2OTUzOTUxMzI5QTNDODAwQjkyRDA0IC8qIEljb25EYXRh
YmFzZUJhc2UuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSWNvbkRh
dGFiYXNlQmFzZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTUxNjk1Mzk2MTMy
OUEzQzgwMEI5MkQwNCAvKiBJY29uRGF0YWJhc2VCYXNlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IEljb25EYXRhYmFzZUJhc2UuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJNTE2QkI3OTIwQ0U5MUU2ODAwNTEyRjc5IC8qIEpTVHJlZVdhbGtlckN1c3RvbS5jcHAg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU1RyZWVXYWxrZXJDdXN0b20u
Y3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTgwMDQsNiArMTgwMTAsNyBAQAog
CQkJCUE3OTU0NjNEMEI1QzRDODAwMDdCNDM4RiAvKiBEcmFnRGF0YU1hYy5tbSAqLywKIAkJCQlB
N0NGQjNENDBCN0VEMTE4MDA3MEMzMkQgLyogRHJhZ0ltYWdlTWFjLm1tICovLAogCQkJCUUxQkE2
NkYwMTc0MkJEODYwMEMyMDI1MSAvKiBEeW5hbWljTGlua2VySW50ZXJwb3NpbmcuaCAqLywKKwkJ
CQk1MTY0NzYwNTFDRTA5MDkxMDA5MUYwQTkgLyogRXJyb3JzTWFjLm1tICovLAogCQkJCTFDQTE5
RTAzMERDMjU1OTUwMDY1QTk5NCAvKiBFdmVudExvb3BNYWMubW0gKi8sCiAJCQkJNTE0QjNGNzUw
QzcyMjA1NTAwMDUzMERGIC8qIEZpbGVTeXN0ZW1NYWMubW0gKi8sCiAJCQkJOTM1QzQ3NkUwOUFD
NEQ3MzAwQTZBQUI0IC8qIEtleUV2ZW50TWFjLm1tICovLApAQCAtMjI1ODEsNiArMjI1ODgsOCBA
QAogCQkJCUE3QjZFNjlEMEIyOTFBOTYwMEQwNTI5RiAvKiBEcmFnRGF0YS5oICovLAogCQkJCUE3
Q0ZCM0NGMEI3RUQxMEEwMDcwQzMyRCAvKiBEcmFnSW1hZ2UuY3BwICovLAogCQkJCUE3Q0ZCM0Qw
MEI3RUQxMEEwMDcwQzMyRCAvKiBEcmFnSW1hZ2UuaCAqLywKKwkJCQk1MTEzRTZENTFDRTBDNzkw
MDAyRDk1NjEgLyogRXJyb3JzLmNwcCAqLywKKwkJCQk1MTY0NzYwMzFDRTA5MDFDMDA5MUYwQTkg
LyogRXJyb3JzLmggKi8sCiAJCQkJMUNBMTlFMTUwREMyNTVDQTAwNjVBOTk0IC8qIEV2ZW50TG9v
cC5oICovLAogCQkJCTI2MkVDNDFDMUQxMTBCMUYwMEJBNzhGQyAvKiBFdmVudFRyYWNraW5nUmVn
aW9ucy5jcHAgKi8sCiAJCQkJMjYyRUM0MTkxRDA3OEYzRDAwQkE3OEZDIC8qIEV2ZW50VHJhY2tp
bmdSZWdpb25zLmggKi8sCkBAIC0yNTQzMCw2ICsyNTQzOSw3IEBACiAJCQkJMkRFQzY2NTUxQzgy
RDA0MTAwOTk4NDZBIC8qIERPTUhUTUxNZWRpYUVsZW1lbnQuaCBpbiBIZWFkZXJzICovLAogCQkJ
CTg1QkE0RDEzMEFBNjg4NjgwMDg4MDUyRCAvKiBET01IVE1MTWVudUVsZW1lbnQuaCBpbiBIZWFk
ZXJzICovLAogCQkJCTg1OUE5QzREMEFBNUUzQkQwMEI2OTRCMiAvKiBET01IVE1MTWV0YUVsZW1l
bnQuaCBpbiBIZWFkZXJzICovLAorCQkJCTUxNjQ3NjA0MUNFMDkwNUEwMDkxRjBBOSAvKiBFcnJv
cnMuaCBpbiBIZWFkZXJzICovLAogCQkJCTg1RUNCRUY1MEFBNzYyNjkwMDU0NEYwQiAvKiBET01I
VE1MTW9kRWxlbWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJODVERjgxMkIwQUE3Nzg3MjAwNDg2
QUQ3IC8qIERPTUhUTUxPYmplY3RFbGVtZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQkxQTY3QkY2
QjFENEZFNDIzMDA0MTJBQzcgLyogRE9NSFRNTE9MaXN0RWxlbWVudC5oIGluIEhlYWRlcnMgKi8s
CkBAIC0yOTMxMSw2ICsyOTMyMSw3IEBACiAJCQkJRjUyQUQ1RTQxNTM0MjQ1RjAwNTlGQkU2IC8q
IEVtcHR5Q2xpZW50cy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk1MTVCRTE4RjFENTRGNUZCMDBE
RDdDNjggLyogRW1wdHlHYW1lcGFkUHJvdmlkZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJRkQz
MTYwOTIxMkIwMjZGNzAwQzFBMzU5IC8qIEVxdWFsUG93ZXJQYW5uZXIuY3BwIGluIFNvdXJjZXMg
Ki8sCisJCQkJNTE2NDc2MDYxQ0UwOTBCMTAwOTFGMEE5IC8qIEVycm9yc01hYy5tbSBpbiBTb3Vy
Y2VzICovLAogCQkJCTJFQ0Y3QUUxMTAxNjJCNTgwMDQyN0RFNyAvKiBFcnJvckV2ZW50LmNwcCBp
biBTb3VyY2VzICovLAogCQkJCTg1MDMxQjQxMEE0NEVGQzcwMEY5OTJFMCAvKiBFdmVudC5jcHAg
aW4gU291cmNlcyAqLywKIAkJCQk0MTM4RDMzNjEyNDQwNTQ4MDAzMjNEMzMgLyogRXZlbnRDb250
ZXh0LmNwcCBpbiBTb3VyY2VzICovLApAQCAtMzEyOTQsNiArMzEzMDUsNyBAQAogCQkJCTFGQzQw
RkI5MTY1NUNDQjYwMDQwRjI5RSAvKiBTdWJpbWFnZUNhY2hlV2l0aFRpbWVyLmNwcCBpbiBTb3Vy
Y2VzICovLAogCQkJCUY1NUIzREQzMTI1MUYxMkQwMDNFRjI2OSAvKiBTdWJtaXRJbnB1dFR5cGUu
Y3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJOTNFMjI3RTQwQUY1ODlBRDAwRDQ4MzI0IC8qIFN1YnJl
c291cmNlTG9hZGVyLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTUxMTNFNkQ2MUNFMEM3QTQwMDJE
OTU2MSAvKiBFcnJvcnMuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJN0UzN0VGMkUxMzM5MjA4ODAw
QjI5MjUwIC8qIFN1YnJlc291cmNlTG9hZGVyQ0YuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJN0U4
RkFEQzQxOTlBOTVCMTAwNzE0OTY4IC8qIFN1YnJlc291cmNlTG9hZGVyQ29jb2EubW0gaW4gU291
cmNlcyAqLywKIAkJCQk5M0IyRDgxODBGOTkyMEVFMDA2QUU2QjIgLyogU3VkZGVuVGVybWluYXRp
b24ubW0gaW4gU291cmNlcyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9E
b2N1bWVudExvYWRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRG9jdW1lbnRMb2FkZXIu
Y3BwCmluZGV4IDhiNzRkNjQxN2U0NjEwOTBkZDE2ZmQ4ZjYzZWU5M2YwNjJlODVjMjYuLmJjNmUz
ZWE5MDc5NjY0YmNjNjM2OTE1NmQwNWM4MDkwOGIxNjM1ZWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2xvYWRlci9Eb2N1bWVudExvYWRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9h
ZGVyL0RvY3VtZW50TG9hZGVyLmNwcApAQCAtNDEsNiArNDEsNyBAQAogI2luY2x1ZGUgIkRvY3Vt
ZW50LmgiCiAjaW5jbHVkZSAiRG9jdW1lbnRQYXJzZXIuaCIKICNpbmNsdWRlICJEb2N1bWVudFdy
aXRlci5oIgorI2luY2x1ZGUgIkVycm9ycy5oIgogI2luY2x1ZGUgIkV2ZW50LmgiCiAjaW5jbHVk
ZSAiRXZlbnROYW1lcy5oIgogI2luY2x1ZGUgIkV4dGVuc2lvblN0eWxlU2hlZXRzLmgiCkBAIC03
NjksNyArNzcwLDcgQEAgdm9pZCBEb2N1bWVudExvYWRlcjo6Y29udGludWVBZnRlckNvbnRlbnRQ
b2xpY3koUG9saWN5QWN0aW9uIHBvbGljeSkKICAgICBjYXNlIFBvbGljeURvd25sb2FkOiB7CiAg
ICAgICAgIC8vIG1fbWFpblJlc291cmNlIGNhbiBiZSBudWxsLCBlLmcuIHdoZW4gbG9hZGluZyBh
IHN1YnN0aXR1dGUgcmVzb3VyY2UgZnJvbSBhcHBsaWNhdGlvbiBjYWNoZS4KICAgICAgICAgaWYg
KCFtX21haW5SZXNvdXJjZSkgewotICAgICAgICAgICAgbWFpblJlY2VpdmVkRXJyb3IoZnJhbWVM
b2FkZXIoKS0+Y2xpZW50KCkuY2Fubm90U2hvd1VSTEVycm9yKG1fcmVxdWVzdCkpOworICAgICAg
ICAgICAgbWFpblJlY2VpdmVkRXJyb3IoY2Fubm90U2hvd1VSTEVycm9yKG1fcmVxdWVzdCkpOwog
ICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9CiAKQEAgLTg0OCw3ICs4NDksNyBAQCB2b2lk
IERvY3VtZW50TG9hZGVyOjpjb21taXRMb2FkKGNvbnN0IGNoYXIqIGRhdGEsIGludCBsZW5ndGgp
CiAKIFJlc291cmNlRXJyb3IgRG9jdW1lbnRMb2FkZXI6OmludGVycnVwdGVkRm9yUG9saWN5Q2hh
bmdlRXJyb3IoKSBjb25zdAogewotICAgIHJldHVybiBmcmFtZUxvYWRlcigpLT5jbGllbnQoKS5p
bnRlcnJ1cHRlZEZvclBvbGljeUNoYW5nZUVycm9yKHJlcXVlc3QoKSk7CisgICAgcmV0dXJuIFdl
YkNvcmU6OmludGVycnVwdGVkRm9yUG9saWN5Q2hhbmdlRXJyb3IocmVxdWVzdCgpKTsKIH0KIAog
dm9pZCBEb2N1bWVudExvYWRlcjo6c3RvcExvYWRpbmdGb3JQb2xpY3lDaGFuZ2UoKQpAQCAtMTUx
NiwxNCArMTUxNywxNCBAQCB2b2lkIERvY3VtZW50TG9hZGVyOjpzdGFydExvYWRpbmdNYWluUmVz
b3VyY2UoKQogCiAjaWYgRU5BQkxFKENPTlRFTlRfRVhURU5TSU9OUykKICAgICBpZiAobV9tYWlu
UmVzb3VyY2UgJiYgbV9tYWluUmVzb3VyY2UtPmVycm9yT2NjdXJyZWQoKSAmJiBtX2ZyYW1lLT5w
YWdlKCkgJiYgbV9tYWluUmVzb3VyY2UtPnJlc291cmNlRXJyb3IoKS5kb21haW4oKSA9PSBDb250
ZW50RXh0ZW5zaW9uczo6V2ViS2l0Q29udGVudEJsb2NrZXJEb21haW4pIHsKLSAgICAgICAgY2Fu
Y2VsTWFpblJlc291cmNlTG9hZChmcmFtZUxvYWRlcigpLT5ibG9ja2VkQnlDb250ZW50QmxvY2tl
ckVycm9yKG1fcmVxdWVzdCkpOworICAgICAgICBjYW5jZWxNYWluUmVzb3VyY2VMb2FkKFdlYkNv
cmU6OmJsb2NrZWRCeUNvbnRlbnRCbG9ja2VyRXJyb3IobV9yZXF1ZXN0KSk7CiAgICAgICAgIHJl
dHVybjsKICAgICB9CiAjZW5kaWYKIAogICAgIGlmICghbV9tYWluUmVzb3VyY2UpIHsKICAgICAg
ICAgaWYgKCFtX3JlcXVlc3QudXJsKCkuaXNWYWxpZCgpKSB7Ci0gICAgICAgICAgICBjYW5jZWxN
YWluUmVzb3VyY2VMb2FkKGZyYW1lTG9hZGVyKCktPmNsaWVudCgpLmNhbm5vdFNob3dVUkxFcnJv
cihtX3JlcXVlc3QpKTsKKyAgICAgICAgICAgIGNhbmNlbE1haW5SZXNvdXJjZUxvYWQoY2Fubm90
U2hvd1VSTEVycm9yKG1fcmVxdWVzdCkpOwogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9FbXB0eUNsaWVudHMuaCBiL1Nv
dXJjZS9XZWJDb3JlL2xvYWRlci9FbXB0eUNsaWVudHMuaAppbmRleCA5MzZhYzQ4NWE0N2NkODIx
YTJkNzg2OGUyZTcxNDFjNDgwNTMxNjM0Li5mOWVhZTlhOGVjYTM4NWE3MTA4YmNjNWMwZGYxOGVi
ODU0OTJhYzRhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRW1wdHlDbGllbnRz
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0VtcHR5Q2xpZW50cy5oCkBAIC0zMzEsMTkg
KzMzMSw2IEBAIHB1YmxpYzoKICAgICB2b2lkIGNvbW1pdHRlZExvYWQoRG9jdW1lbnRMb2FkZXIq
LCBjb25zdCBjaGFyKiwgaW50KSBvdmVycmlkZSB7IH0KICAgICB2b2lkIGZpbmlzaGVkTG9hZGlu
ZyhEb2N1bWVudExvYWRlciopIG92ZXJyaWRlIHsgfQogCi0gICAgUmVzb3VyY2VFcnJvciBjYW5j
ZWxsZWRFcnJvcihjb25zdCBSZXNvdXJjZVJlcXVlc3QmKSBvdmVycmlkZSB7IHJldHVybiBSZXNv
dXJjZUVycm9yKFJlc291cmNlRXJyb3I6OlR5cGU6OkNhbmNlbGxhdGlvbik7IH0KLSAgICBSZXNv
dXJjZUVycm9yIGJsb2NrZWRFcnJvcihjb25zdCBSZXNvdXJjZVJlcXVlc3QmKSBvdmVycmlkZSB7
IHJldHVybiB7IH07IH0KLSAgICBSZXNvdXJjZUVycm9yIGJsb2NrZWRCeUNvbnRlbnRCbG9ja2Vy
RXJyb3IoY29uc3QgUmVzb3VyY2VSZXF1ZXN0Jikgb3ZlcnJpZGUgeyByZXR1cm4geyB9OyB9Ci0g
ICAgUmVzb3VyY2VFcnJvciBjYW5ub3RTaG93VVJMRXJyb3IoY29uc3QgUmVzb3VyY2VSZXF1ZXN0
Jikgb3ZlcnJpZGUgeyByZXR1cm4geyB9OyB9Ci0gICAgUmVzb3VyY2VFcnJvciBpbnRlcnJ1cHRl
ZEZvclBvbGljeUNoYW5nZUVycm9yKGNvbnN0IFJlc291cmNlUmVxdWVzdCYpIG92ZXJyaWRlIHsg
cmV0dXJuIHsgfTsgfQotI2lmIEVOQUJMRShDT05URU5UX0ZJTFRFUklORykKLSAgICBSZXNvdXJj
ZUVycm9yIGJsb2NrZWRCeUNvbnRlbnRGaWx0ZXJFcnJvcihjb25zdCBSZXNvdXJjZVJlcXVlc3Qm
KSBvdmVycmlkZSB7IHJldHVybiB7IH07IH0KLSNlbmRpZgotCi0gICAgUmVzb3VyY2VFcnJvciBj
YW5ub3RTaG93TUlNRVR5cGVFcnJvcihjb25zdCBSZXNvdXJjZVJlc3BvbnNlJikgb3ZlcnJpZGUg
eyByZXR1cm4geyB9OyB9Ci0gICAgUmVzb3VyY2VFcnJvciBmaWxlRG9lc05vdEV4aXN0RXJyb3Io
Y29uc3QgUmVzb3VyY2VSZXNwb25zZSYpIG92ZXJyaWRlIHsgcmV0dXJuIHsgfTsgfQotICAgIFJl
c291cmNlRXJyb3IgcGx1Z2luV2lsbEhhbmRsZUxvYWRFcnJvcihjb25zdCBSZXNvdXJjZVJlc3Bv
bnNlJikgb3ZlcnJpZGUgeyByZXR1cm4geyB9OyB9Ci0KICAgICBib29sIHNob3VsZEZhbGxCYWNr
KGNvbnN0IFJlc291cmNlRXJyb3ImKSBvdmVycmlkZSB7IHJldHVybiBmYWxzZTsgfQogCiAgICAg
Ym9vbCBjYW5IYW5kbGVSZXF1ZXN0KGNvbnN0IFJlc291cmNlUmVxdWVzdCYpIGNvbnN0IG92ZXJy
aWRlIHsgcmV0dXJuIGZhbHNlOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIv
RnJhbWVMb2FkZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmNwcApp
bmRleCBlZmIwMWIwNjc4ODkwZjljNWM3MjFlMDlkNTZiYTQ0OWZhODgxODgxLi43M2M2NTE3ZmFi
OThhNjVmNjBhMDVmZjU4MGJkZmJkYmU4MTIzYjRjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9sb2FkZXIvRnJhbWVMb2FkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFt
ZUxvYWRlci5jcHAKQEAgLTU2LDYgKzU2LDcgQEAKICNpbmNsdWRlICJFZGl0b3IuaCIKICNpbmNs
dWRlICJFZGl0b3JDbGllbnQuaCIKICNpbmNsdWRlICJFbGVtZW50LmgiCisjaW5jbHVkZSAiRXJy
b3JzLmgiCiAjaW5jbHVkZSAiRXZlbnQuaCIKICNpbmNsdWRlICJFdmVudEhhbmRsZXIuaCIKICNp
bmNsdWRlICJFdmVudE5hbWVzLmgiCkBAIC0zNDM0LDE5ICszNDM1LDE0IEBAIHZvaWQgRnJhbWVM
b2FkZXI6OnJldHJ5QWZ0ZXJGYWlsZWRDYWNoZU9ubHlNYWluUmVzb3VyY2VMb2FkKCkKIAogUmVz
b3VyY2VFcnJvciBGcmFtZUxvYWRlcjo6Y2FuY2VsbGVkRXJyb3IoY29uc3QgUmVzb3VyY2VSZXF1
ZXN0JiByZXF1ZXN0KSBjb25zdAogewotICAgIFJlc291cmNlRXJyb3IgZXJyb3IgPSBtX2NsaWVu
dC5jYW5jZWxsZWRFcnJvcihyZXF1ZXN0KTsKKyAgICBSZXNvdXJjZUVycm9yIGVycm9yID0gV2Vi
Q29yZTo6Y2FuY2VsbGVkRXJyb3IocmVxdWVzdCk7CiAgICAgZXJyb3Iuc2V0VHlwZShSZXNvdXJj
ZUVycm9yOjpUeXBlOjpDYW5jZWxsYXRpb24pOwogICAgIHJldHVybiBlcnJvcjsKIH0KIAotUmVz
b3VyY2VFcnJvciBGcmFtZUxvYWRlcjo6YmxvY2tlZEJ5Q29udGVudEJsb2NrZXJFcnJvcihjb25z
dCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QpIGNvbnN0Ci17Ci0gICAgcmV0dXJuIG1fY2xpZW50
LmJsb2NrZWRCeUNvbnRlbnRCbG9ja2VyRXJyb3IocmVxdWVzdCk7Ci19Ci0KIFJlc291cmNlRXJy
b3IgRnJhbWVMb2FkZXI6OmJsb2NrZWRFcnJvcihjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVl
c3QpIGNvbnN0CiB7Ci0gICAgUmVzb3VyY2VFcnJvciBlcnJvciA9IG1fY2xpZW50LmJsb2NrZWRF
cnJvcihyZXF1ZXN0KTsKKyAgICBSZXNvdXJjZUVycm9yIGVycm9yID0gV2ViQ29yZTo6YmxvY2tl
ZEVycm9yKHJlcXVlc3QpOwogICAgIGVycm9yLnNldFR5cGUoUmVzb3VyY2VFcnJvcjo6VHlwZTo6
Q2FuY2VsbGF0aW9uKTsKICAgICByZXR1cm4gZXJyb3I7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIuaCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFt
ZUxvYWRlci5oCmluZGV4IGNiYjJhNmMzMmNjOWIwOTZjNmQ1Y2ZlY2E5M2RhMTUwMjM2YmY3M2Uu
LmU1ZjA5ODg3YzM4OTYyZGI5Yjg1ZWM3NTE0ZmI1OTFhOGJkYjU0YjkgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xv
YWRlci9GcmFtZUxvYWRlci5oCkBAIC0xNzAsNyArMTcwLDYgQEAgcHVibGljOgogICAgIHZvaWQg
aGFuZGxlRmFsbGJhY2tDb250ZW50KCk7CiAKICAgICBXRUJDT1JFX0VYUE9SVCBSZXNvdXJjZUVy
cm9yIGNhbmNlbGxlZEVycm9yKGNvbnN0IFJlc291cmNlUmVxdWVzdCYpIGNvbnN0OwotICAgIFdF
QkNPUkVfRVhQT1JUIFJlc291cmNlRXJyb3IgYmxvY2tlZEJ5Q29udGVudEJsb2NrZXJFcnJvcihj
b25zdCBSZXNvdXJjZVJlcXVlc3QmKSBjb25zdDsKICAgICBSZXNvdXJjZUVycm9yIGJsb2NrZWRF
cnJvcihjb25zdCBSZXNvdXJjZVJlcXVlc3QmKSBjb25zdDsKICNpZiBFTkFCTEUoQ09OVEVOVF9G
SUxURVJJTkcpCiAgICAgUmVzb3VyY2VFcnJvciBibG9ja2VkQnlDb250ZW50RmlsdGVyRXJyb3Io
Y29uc3QgUmVzb3VyY2VSZXF1ZXN0JikgY29uc3Q7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9sb2FkZXIvRnJhbWVMb2FkZXJDbGllbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFt
ZUxvYWRlckNsaWVudC5oCmluZGV4IDc4NWZiZTM5ZDY5YjdmZDRkOTRkN2Y4YzQwMjcxNThjNjNl
OWVjOGIuLjFjY2ViZWUwNDljMDljMzhhNmY2ZDUyYzljNDFhMWQ5NTVjYWE2OGEgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlckNsaWVudC5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlckNsaWVudC5oCkBAIC0yMjYsMTkgKzIyNiw2IEBA
IG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgdmlydHVhbCB2b2lkIGRpZFJ1bkluc2VjdXJl
Q29udGVudChTZWN1cml0eU9yaWdpbiosIGNvbnN0IFVSTCYpID0gMDsKICAgICAgICAgdmlydHVh
bCB2b2lkIGRpZERldGVjdFhTUyhjb25zdCBVUkwmLCBib29sIGRpZEJsb2NrRW50aXJlUGFnZSkg
PSAwOwogCi0gICAgICAgIHZpcnR1YWwgUmVzb3VyY2VFcnJvciBjYW5jZWxsZWRFcnJvcihjb25z
dCBSZXNvdXJjZVJlcXVlc3QmKSA9IDA7Ci0gICAgICAgIHZpcnR1YWwgUmVzb3VyY2VFcnJvciBi
bG9ja2VkRXJyb3IoY29uc3QgUmVzb3VyY2VSZXF1ZXN0JikgPSAwOwotICAgICAgICB2aXJ0dWFs
IFJlc291cmNlRXJyb3IgYmxvY2tlZEJ5Q29udGVudEJsb2NrZXJFcnJvcihjb25zdCBSZXNvdXJj
ZVJlcXVlc3QmKSA9IDA7Ci0gICAgICAgIHZpcnR1YWwgUmVzb3VyY2VFcnJvciBjYW5ub3RTaG93
VVJMRXJyb3IoY29uc3QgUmVzb3VyY2VSZXF1ZXN0JikgPSAwOwotICAgICAgICB2aXJ0dWFsIFJl
c291cmNlRXJyb3IgaW50ZXJydXB0ZWRGb3JQb2xpY3lDaGFuZ2VFcnJvcihjb25zdCBSZXNvdXJj
ZVJlcXVlc3QmKSA9IDA7Ci0jaWYgRU5BQkxFKENPTlRFTlRfRklMVEVSSU5HKQotICAgICAgICB2
aXJ0dWFsIFJlc291cmNlRXJyb3IgYmxvY2tlZEJ5Q29udGVudEZpbHRlckVycm9yKGNvbnN0IFJl
c291cmNlUmVxdWVzdCYpID0gMDsKLSNlbmRpZgotCi0gICAgICAgIHZpcnR1YWwgUmVzb3VyY2VF
cnJvciBjYW5ub3RTaG93TUlNRVR5cGVFcnJvcihjb25zdCBSZXNvdXJjZVJlc3BvbnNlJikgPSAw
OwotICAgICAgICB2aXJ0dWFsIFJlc291cmNlRXJyb3IgZmlsZURvZXNOb3RFeGlzdEVycm9yKGNv
bnN0IFJlc291cmNlUmVzcG9uc2UmKSA9IDA7Ci0gICAgICAgIHZpcnR1YWwgUmVzb3VyY2VFcnJv
ciBwbHVnaW5XaWxsSGFuZGxlTG9hZEVycm9yKGNvbnN0IFJlc291cmNlUmVzcG9uc2UmKSA9IDA7
Ci0KICAgICAgICAgdmlydHVhbCBib29sIHNob3VsZEZhbGxCYWNrKGNvbnN0IFJlc291cmNlRXJy
b3ImKSA9IDA7CiAKICAgICAgICAgdmlydHVhbCBib29sIGNhbkhhbmRsZVJlcXVlc3QoY29uc3Qg
UmVzb3VyY2VSZXF1ZXN0JikgY29uc3QgPSAwOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
bG9hZGVyL05ldHNjYXBlUGx1Z0luU3RyZWFtTG9hZGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xv
YWRlci9OZXRzY2FwZVBsdWdJblN0cmVhbUxvYWRlci5jcHAKaW5kZXggNmI5YTM0NGVhMjg2YThl
ZDAxMzdlZjQ5NjMzYTQ5MjM4NjM1MTdkZS4uNTcyZWJjZjU2MTMwYTk1NzQ4MmM4MWNlOTJkOWMx
ZDkzNzExMmI5MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL05ldHNjYXBlUGx1
Z0luU3RyZWFtTG9hZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvTmV0c2NhcGVQ
bHVnSW5TdHJlYW1Mb2FkZXIuY3BwCkBAIC0zMCw2ICszMCw3IEBACiAjaW5jbHVkZSAiTmV0c2Nh
cGVQbHVnSW5TdHJlYW1Mb2FkZXIuaCIKIAogI2luY2x1ZGUgIkRvY3VtZW50TG9hZGVyLmgiCisj
aW5jbHVkZSAiRXJyb3JzLmgiCiAjaW5jbHVkZSAiRnJhbWVMb2FkZXIuaCIKICNpbmNsdWRlICJG
cmFtZUxvYWRlckNsaWVudC5oIgogI2luY2x1ZGUgPHd0Zi9SZWYuaD4KQEAgLTEyNCw3ICsxMjUs
NyBAQCB2b2lkIE5ldHNjYXBlUGx1Z0luU3RyZWFtTG9hZGVyOjpkaWRSZWNlaXZlUmVzcG9uc2Uo
Y29uc3QgUmVzb3VyY2VSZXNwb25zZSYgcmVzcAogCiAgICAgLy8gU3RhdHVzIGNvZGUgY2FuIGJl
IG51bGwgd2hlbiBzZXJ2aW5nIGZyb20gYSBXZWIgYXJjaGl2ZS4KICAgICBpZiAocmVzcG9uc2Uu
aHR0cFN0YXR1c0NvZGUoKSAmJiAocmVzcG9uc2UuaHR0cFN0YXR1c0NvZGUoKSA8IDEwMCB8fCBy
ZXNwb25zZS5odHRwU3RhdHVzQ29kZSgpID49IDQwMCkpCi0gICAgICAgIGNhbmNlbChmcmFtZUxv
YWRlcigpLT5jbGllbnQoKS5maWxlRG9lc05vdEV4aXN0RXJyb3IocmVzcG9uc2UpKTsKKyAgICAg
ICAgY2FuY2VsKGZpbGVEb2VzTm90RXhpc3RFcnJvcihyZXNwb25zZSkpOwogfQogCiB2b2lkIE5l
dHNjYXBlUGx1Z0luU3RyZWFtTG9hZGVyOjpkaWRSZWNlaXZlRGF0YShjb25zdCBjaGFyKiBkYXRh
LCB1bnNpZ25lZCBsZW5ndGgsIGxvbmcgbG9uZyBlbmNvZGVkRGF0YUxlbmd0aCwgRGF0YVBheWxv
YWRUeXBlIGRhdGFQYXlsb2FkVHlwZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRl
ci9Qb2xpY3lDaGVja2VyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Qb2xpY3lDaGVja2Vy
LmNwcAppbmRleCAyOWM2NTA3Nzc4MDNkYzk3NmJkZTMyNjMwNzQxOTg1NDBhZDljMDQ5Li4xYWY1
Y2U3NmJjNmE0NGE3MGIxZTY3ODA1ZmE0ZGJiNDNmMTQ0NjI4IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9sb2FkZXIvUG9saWN5Q2hlY2tlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9h
ZGVyL1BvbGljeUNoZWNrZXIuY3BwCkBAIC0zNSw2ICszNSw3IEBACiAjaW5jbHVkZSAiQ29udGVu
dFNlY3VyaXR5UG9saWN5LmgiCiAjaW5jbHVkZSAiRE9NV2luZG93LmgiCiAjaW5jbHVkZSAiRG9j
dW1lbnRMb2FkZXIuaCIKKyNpbmNsdWRlICJFcnJvcnMuaCIKICNpbmNsdWRlICJFdmVudE5hbWVz
LmgiCiAjaW5jbHVkZSAiRm9ybVN0YXRlLmgiCiAjaW5jbHVkZSAiRnJhbWUuaCIKQEAgLTE4NSw3
ICsxODYsNyBAQCB2b2lkIFBvbGljeUNoZWNrZXI6OnN0b3BDaGVjaygpCiAKIHZvaWQgUG9saWN5
Q2hlY2tlcjo6Y2Fubm90U2hvd01JTUVUeXBlKGNvbnN0IFJlc291cmNlUmVzcG9uc2UmIHJlc3Bv
bnNlKQogewotICAgIGhhbmRsZVVuaW1wbGVtZW50YWJsZVBvbGljeShtX2ZyYW1lLmxvYWRlcigp
LmNsaWVudCgpLmNhbm5vdFNob3dNSU1FVHlwZUVycm9yKHJlc3BvbnNlKSk7CisgICAgaGFuZGxl
VW5pbXBsZW1lbnRhYmxlUG9saWN5KGNhbm5vdFNob3dNSU1FVHlwZUVycm9yKHJlc3BvbnNlKSk7
CiB9CiAKIHZvaWQgUG9saWN5Q2hlY2tlcjo6Y29udGludWVMb2FkQWZ0ZXJXaWxsU3VibWl0Rm9y
bShQb2xpY3lBY3Rpb24pCkBAIC0yMTcsNyArMjE4LDcgQEAgdm9pZCBQb2xpY3lDaGVja2VyOjpj
b250aW51ZUFmdGVyTmF2aWdhdGlvblBvbGljeShQb2xpY3lBY3Rpb24gcG9saWN5KQogICAgICAg
ICAgICAgUmVzb3VyY2VSZXF1ZXN0IHJlcXVlc3QoY2FsbGJhY2sucmVxdWVzdCgpKTsKIAogICAg
ICAgICAgICAgaWYgKCFtX2ZyYW1lLmxvYWRlcigpLmNsaWVudCgpLmNhbkhhbmRsZVJlcXVlc3Qo
cmVxdWVzdCkpIHsKLSAgICAgICAgICAgICAgICBoYW5kbGVVbmltcGxlbWVudGFibGVQb2xpY3ko
bV9mcmFtZS5sb2FkZXIoKS5jbGllbnQoKS5jYW5ub3RTaG93VVJMRXJyb3IoY2FsbGJhY2sucmVx
dWVzdCgpKSk7CisgICAgICAgICAgICAgICAgaGFuZGxlVW5pbXBsZW1lbnRhYmxlUG9saWN5KGNh
bm5vdFNob3dVUkxFcnJvcihjYWxsYmFjay5yZXF1ZXN0KCkpKTsKICAgICAgICAgICAgICAgICBj
YWxsYmFjay5jbGVhclJlcXVlc3QoKTsKICAgICAgICAgICAgICAgICBzaG91bGRDb250aW51ZSA9
IGZhbHNlOwogICAgICAgICAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVy
L1Jlc291cmNlTG9hZGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9SZXNvdXJjZUxvYWRl
ci5jcHAKaW5kZXggYzcxYjZiMjQ0YjE0OTFhYTE5YmY0YmNjMDM5YzBhZjVkNDlhMjUzMy4uMGE4
NzY5ZWI1NzM5ZDQ0OWUwZTdkNDc4MmU3MDk3NTljODI4ZmJmNCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvbG9hZGVyL1Jlc291cmNlTG9hZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9s
b2FkZXIvUmVzb3VyY2VMb2FkZXIuY3BwCkBAIC0zNiw2ICszNiw3IEBACiAjaW5jbHVkZSAiRGlh
Z25vc3RpY0xvZ2dpbmdDbGllbnQuaCIKICNpbmNsdWRlICJEaWFnbm9zdGljTG9nZ2luZ0tleXMu
aCIKICNpbmNsdWRlICJEb2N1bWVudExvYWRlci5oIgorI2luY2x1ZGUgIkVycm9ycy5oIgogI2lu
Y2x1ZGUgIkZyYW1lLmgiCiAjaW5jbHVkZSAiRnJhbWVMb2FkZXIuaCIKICNpbmNsdWRlICJGcmFt
ZUxvYWRlckNsaWVudC5oIgpAQCAtNjEzLDE3ICs2MTQsMTcgQEAgUmVzb3VyY2VFcnJvciBSZXNv
dXJjZUxvYWRlcjo6Y2FuY2VsbGVkRXJyb3IoKQogCiBSZXNvdXJjZUVycm9yIFJlc291cmNlTG9h
ZGVyOjpibG9ja2VkRXJyb3IoKQogewotICAgIHJldHVybiBmcmFtZUxvYWRlcigpLT5jbGllbnQo
KS5ibG9ja2VkRXJyb3IobV9yZXF1ZXN0KTsKKyAgICByZXR1cm4gV2ViQ29yZTo6YmxvY2tlZEVy
cm9yKG1fcmVxdWVzdCk7CiB9CiAKIFJlc291cmNlRXJyb3IgUmVzb3VyY2VMb2FkZXI6OmJsb2Nr
ZWRCeUNvbnRlbnRCbG9ja2VyRXJyb3IoKQogewotICAgIHJldHVybiBmcmFtZUxvYWRlcigpLT5j
bGllbnQoKS5ibG9ja2VkQnlDb250ZW50QmxvY2tlckVycm9yKG1fcmVxdWVzdCk7CisgICAgcmV0
dXJuIFdlYkNvcmU6OmJsb2NrZWRCeUNvbnRlbnRCbG9ja2VyRXJyb3IobV9yZXF1ZXN0KTsKIH0K
IAogUmVzb3VyY2VFcnJvciBSZXNvdXJjZUxvYWRlcjo6Y2Fubm90U2hvd1VSTEVycm9yKCkKIHsK
LSAgICByZXR1cm4gZnJhbWVMb2FkZXIoKS0+Y2xpZW50KCkuY2Fubm90U2hvd1VSTEVycm9yKG1f
cmVxdWVzdCk7CisgICAgcmV0dXJuIFdlYkNvcmU6OmNhbm5vdFNob3dVUkxFcnJvcihtX3JlcXVl
c3QpOwogfQogCiBSZXNvdXJjZVJlcXVlc3QgUmVzb3VyY2VMb2FkZXI6OndpbGxTZW5kUmVxdWVz
dChSZXNvdXJjZUhhbmRsZSosIFJlc291cmNlUmVxdWVzdCYmIHJlcXVlc3QsIFJlc291cmNlUmVz
cG9uc2UmJiByZWRpcmVjdFJlc3BvbnNlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9h
ZGVyL2FwcGNhY2hlL0FwcGxpY2F0aW9uQ2FjaGVIb3N0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xv
YWRlci9hcHBjYWNoZS9BcHBsaWNhdGlvbkNhY2hlSG9zdC5jcHAKaW5kZXggYWI3NGVjNTFjODg1
NGY0MDVmM2NiMDA1ODU1NmViZDk3NzlmNjA1My4uMTUxM2ZkNDM0ZWM3YzI5Y2ZlNjI2ZTRmZmRk
YzkzZGNiYWRkMDY4YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2FwcGNhY2hl
L0FwcGxpY2F0aW9uQ2FjaGVIb3N0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvYXBw
Y2FjaGUvQXBwbGljYXRpb25DYWNoZUhvc3QuY3BwCkBAIC0zMiw2ICszMiw3IEBACiAjaW5jbHVk
ZSAiQ29udGVudFNlY3VyaXR5UG9saWN5LmgiCiAjaW5jbHVkZSAiRG9jdW1lbnRMb2FkZXIuaCIK
ICNpbmNsdWRlICJET01BcHBsaWNhdGlvbkNhY2hlLmgiCisjaW5jbHVkZSAiRXJyb3JzLmgiCiAj
aW5jbHVkZSAiRmlsZVN5c3RlbS5oIgogI2luY2x1ZGUgIkZyYW1lLmgiCiAjaW5jbHVkZSAiRnJh
bWVMb2FkZXIuaCIKQEAgLTI0NCw3ICsyNDUsNyBAQCBib29sIEFwcGxpY2F0aW9uQ2FjaGVIb3N0
OjptYXliZUxvYWRTeW5jaHJvbm91c2x5KFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwgUmVzbwog
ICAgICAgICAgICAgICAgIGRhdGEgPSBTaGFyZWRCdWZmZXI6OmNyZWF0ZVdpdGhDb250ZW50c09m
RmlsZShyZXNvdXJjZS0+cGF0aCgpKTsKICAgICAgICAgfQogICAgICAgICBpZiAoIWRhdGEpCi0g
ICAgICAgICAgICBlcnJvciA9IG1fZG9jdW1lbnRMb2FkZXIuZnJhbWVMb2FkZXIoKS0+Y2xpZW50
KCkuY2Fubm90U2hvd1VSTEVycm9yKHJlcXVlc3QpOworICAgICAgICAgICAgZXJyb3IgPSBjYW5u
b3RTaG93VVJMRXJyb3IocmVxdWVzdCk7CiAgICAgICAgIGVsc2UKICAgICAgICAgICAgIHJlc3Bv
bnNlID0gcmVzb3VyY2UtPnJlc3BvbnNlKCk7CiAgICAgICAgIHJldHVybiB0cnVlOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vRXJyb3JzLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL0Vycm9ycy5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMDA0OTM1MGRiMjkxYjJkMzdkMmU1NmYw
ZDk5OWE2NTM5YzhlZmJiZgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL0Vycm9ycy5jcHAKQEAgLTAsMCArMSwxNSBAQAorI2luY2x1ZGUgImNvbmZpZy5oIgorI2lu
Y2x1ZGUgIkVycm9ycy5oIgorCisjaW5jbHVkZSA8d3RmL05ldmVyRGVzdHJveWVkLmg+CisjaW5j
bHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY29u
c3QgV1RGOjpTdHJpbmcmIHdlYktpdEVycm9yRG9tYWluKCkKK3sKKyAgICBzdGF0aWMgTmV2ZXJE
ZXN0cm95ZWQ8V1RGOjpTdHJpbmc+IHdlYktpdEVycm9yRG9tYWluU3RyaW5nKEFTQ0lJTGl0ZXJh
bCgiV2ViS2l0RXJyb3JEb21haW4iKSk7CisgICAgcmV0dXJuIHdlYktpdEVycm9yRG9tYWluU3Ry
aW5nOworfQorCit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9FcnJvcnMu
aCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0Vycm9ycy5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmE5Y2JmYmI1
NjFmOGQ1MzI4ZWY0NDFiZTI5MTRjZWY0YWFjYzdkYjgKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9FcnJvcnMuaApAQCAtMCwwICsxLDYzIEBACisvKgorICogQ29w
eXJpZ2h0IChDKSAyMDA2LCAyMDA3LCAyMDA4LCAyMDA5LCAyMDEwLCAyMDExLCAyMDEyIEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMiBHb29nbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDE2IElnYWxpYSwg
Uy5MLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICoKKyAq
IDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4gCisgKiAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFy
eSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4g
dGhlCisgKiAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVk
IHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4gCisgKiAzLiAgTmVpdGhlciB0aGUgbmFtZSBvZiBBcHBs
ZSBJbmMuICgiQXBwbGUiKSBub3IgdGhlIG5hbWVzIG9mCisgKiAgICAgaXRzIGNvbnRyaWJ1dG9y
cyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZAorICog
ICAgIGZyb20gdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVy
bWlzc2lvbi4gCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBBTkQg
SVRTIENPTlRSSUJVVE9SUyAiQVMgSVMiIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKKyAq
IFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIgUFVSUE9TRSBBUkUKKyAqIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIE9S
IElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkKKyAqIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VT
CisgKiAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7CisgKiBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklU
UzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQKKyAqIE9OIEFO
WSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YKKyAqIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lm
bmRlZiBFcnJvcnNfaAorI2RlZmluZSBFcnJvcnNfaAorCituYW1lc3BhY2UgV1RGIHsKK2NsYXNz
IFN0cmluZzsKK30KKworbmFtZXNwYWNlIFdlYkNvcmUgeworY2xhc3MgUmVzb3VyY2VFcnJvcjsK
K2NsYXNzIFJlc291cmNlUmVxdWVzdDsKK2NsYXNzIFJlc291cmNlUmVzcG9uc2U7CitjbGFzcyBV
Ukw7CisKK1dFQkNPUkVfRVhQT1JUIFJlc291cmNlRXJyb3IgY2FuY2VsbGVkRXJyb3IoY29uc3Qg
UmVzb3VyY2VSZXF1ZXN0Jik7CitXRUJDT1JFX0VYUE9SVCBSZXNvdXJjZUVycm9yIGJsb2NrZWRF
cnJvcihjb25zdCBSZXNvdXJjZVJlcXVlc3QmKTsKK1dFQkNPUkVfRVhQT1JUIFJlc291cmNlRXJy
b3IgYmxvY2tlZEJ5Q29udGVudEJsb2NrZXJFcnJvcihjb25zdCBSZXNvdXJjZVJlcXVlc3QmKTsK
K1dFQkNPUkVfRVhQT1JUIFJlc291cmNlRXJyb3IgY2Fubm90U2hvd1VSTEVycm9yKGNvbnN0IFJl
c291cmNlUmVxdWVzdCYpOworV0VCQ09SRV9FWFBPUlQgUmVzb3VyY2VFcnJvciBpbnRlcnJ1cHRl
ZEZvclBvbGljeUNoYW5nZUVycm9yKGNvbnN0IFJlc291cmNlUmVxdWVzdCYpOworI2lmIEVOQUJM
RShDT05URU5UX0ZJTFRFUklORykKK1dFQkNPUkVfRVhQT1JUIFJlc291cmNlRXJyb3IgYmxvY2tl
ZEJ5Q29udGVudEZpbHRlckVycm9yKGNvbnN0IFJlc291cmNlUmVxdWVzdCYpOworI2VuZGlmCisK
K1dFQkNPUkVfRVhQT1JUIFJlc291cmNlRXJyb3IgY2Fubm90U2hvd01JTUVUeXBlRXJyb3IoY29u
c3QgUmVzb3VyY2VSZXNwb25zZSYpOworV0VCQ09SRV9FWFBPUlQgUmVzb3VyY2VFcnJvciBmaWxl
RG9lc05vdEV4aXN0RXJyb3IoY29uc3QgUmVzb3VyY2VSZXNwb25zZSYpOworV0VCQ09SRV9FWFBP
UlQgUmVzb3VyY2VFcnJvciBwbHVnaW5XaWxsSGFuZGxlTG9hZEVycm9yKGNvbnN0IFJlc291cmNl
UmVzcG9uc2UmKTsKKworV0VCQ09SRV9FWFBPUlQgUmVzb3VyY2VFcnJvciBpbnRlcm5hbEVycm9y
KGNvbnN0IFVSTCYpOworCitXRUJDT1JFX0VYUE9SVCBjb25zdCBXVEY6OlN0cmluZyYgd2ViS2l0
RXJyb3JEb21haW4oKTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gRXJy
b3JzX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2VmbC9FcnJvcnNFZmwu
Y3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZWZsL0Vycm9yc0VmbC5jcHAKZGVsZXRlZCBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDMyODI2ZTU2NzI3MzAzYmVmZGUyOWMwOGRlOGM1N2FiNDlk
YmUzOWEuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZWZsL0Vycm9yc0VmbC5jcHAKKysrIC9kZXYvbnVsbApAQCAt
MSwxMDUgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMiBJbnRlbCBDb3Jwb3JhdGlv
bi4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwot
ICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJl
dGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlv
bnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxz
IHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElT
IFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCi0g
KiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywKLSAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlN
RUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwotICog
QkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwg
RVhFTVBMQVJZLCBPUgotICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKLSAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VS
VklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwotICogSU5U
RVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4KLSAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCi0gKiBBUklTSU5HIElOIEFOWSBXQVkgT1VU
IE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCi0gKiBUSEUg
UE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI2luY2x1ZGUgImNvbmZpZy5oIgot
I2luY2x1ZGUgIkVycm9yc0VmbC5oIgotCi0jaW5jbHVkZSAiUmVzb3VyY2VFcnJvci5oIgotI2lu
Y2x1ZGUgIlJlc291cmNlUmVxdWVzdC5oIgotI2luY2x1ZGUgIlJlc291cmNlUmVzcG9uc2UuaCIK
LQotbmFtZXNwYWNlIFdlYkNvcmUgewotCi1SZXNvdXJjZUVycm9yIGNhbmNlbGxlZEVycm9yKGNv
bnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCkKLXsKLSAgICByZXR1cm4gUmVzb3VyY2VFcnJv
cihlcnJvckRvbWFpbk5ldHdvcmssIE5ldHdvcmtFcnJvckNhbmNlbGxlZCwgcmVxdWVzdC51cmwo
KSwgQVNDSUlMaXRlcmFsKCJMb2FkIHJlcXVlc3QgY2FuY2VsbGVkIikpOwotfQotCi1SZXNvdXJj
ZUVycm9yIGJsb2NrZWRFcnJvcihjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QpCi17Ci0g
ICAgcmV0dXJuIFJlc291cmNlRXJyb3IoZXJyb3JEb21haW5Qb2xpY3ksIFBvbGljeUVycm9yQ2Fu
bm90VXNlUmVzdHJpY3RlZFBvcnQsIHJlcXVlc3QudXJsKCksIEFTQ0lJTGl0ZXJhbCgiTm90IGFs
bG93ZWQgdG8gdXNlIHJlc3RyaWN0ZWQgbmV0d29yayBwb3J0IikpOwotfQotCi1SZXNvdXJjZUVy
cm9yIGJsb2NrZWRCeUNvbnRlbnRCbG9ja2VyRXJyb3IoY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiBy
ZXF1ZXN0KQotewotICAgIHJldHVybiBSZXNvdXJjZUVycm9yKGVycm9yRG9tYWluUG9saWN5LCBQ
b2xpY3lFcnJvckJsb2NrZWRCeUNvbnRlbnRCbG9ja2VyLCByZXF1ZXN0LnVybCgpLCBBU0NJSUxp
dGVyYWwoIkJsb2NrZWQgYnkgY29udGVudCBibG9ja2VyIikpOwotfQotCi1SZXNvdXJjZUVycm9y
IGNhbm5vdFNob3dVUkxFcnJvcihjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QpCi17Ci0g
ICAgcmV0dXJuIFJlc291cmNlRXJyb3IoZXJyb3JEb21haW5Qb2xpY3ksIFBvbGljeUVycm9yQ2Fu
bm90U2hvd1VSTCwgcmVxdWVzdC51cmwoKSwgQVNDSUlMaXRlcmFsKCJVUkwgY2Fubm90IGJlIHNo
b3duIikpOwotfQotCi1SZXNvdXJjZUVycm9yIGludGVycnVwdGVkRm9yUG9saWN5Q2hhbmdlRXJy
b3IoY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0KQotewotICAgIHJldHVybiBSZXNvdXJj
ZUVycm9yKGVycm9yRG9tYWluUG9saWN5LCBQb2xpY3lFcnJvckZyYW1lTG9hZEludGVycnVwdGVk
QnlQb2xpY3lDaGFuZ2UsIHJlcXVlc3QudXJsKCksIEFTQ0lJTGl0ZXJhbCgiRnJhbWUgbG9hZCB3
YXMgaW50ZXJydXB0ZWQiKSk7Ci19Ci0KLVJlc291cmNlRXJyb3IgY2Fubm90U2hvd01JTUVUeXBl
RXJyb3IoY29uc3QgUmVzb3VyY2VSZXNwb25zZSYgcmVzcG9uc2UpCi17Ci0gICAgcmV0dXJuIFJl
c291cmNlRXJyb3IoZXJyb3JEb21haW5Qb2xpY3ksIFBvbGljeUVycm9yQ2Fubm90U2hvd01pbWVU
eXBlLCByZXNwb25zZS51cmwoKSwgQVNDSUlMaXRlcmFsKCJDb250ZW50IHdpdGggdGhlIHNwZWNp
ZmllZCBNSU1FIHR5cGUgY2Fubm90IGJlIHNob3duIikpOwotfQotCi1SZXNvdXJjZUVycm9yIGZp
bGVEb2VzTm90RXhpc3RFcnJvcihjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiByZXNwb25zZSkKLXsK
LSAgICByZXR1cm4gUmVzb3VyY2VFcnJvcihlcnJvckRvbWFpbk5ldHdvcmssIE5ldHdvcmtFcnJv
ckZpbGVEb2VzTm90RXhpc3QsIHJlc3BvbnNlLnVybCgpLCBBU0NJSUxpdGVyYWwoIkZpbGUgZG9l
cyBub3QgZXhpc3QiKSk7Ci19Ci0KLVJlc291cmNlRXJyb3IgcGx1Z2luV2lsbEhhbmRsZUxvYWRF
cnJvcihjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiByZXNwb25zZSkKLXsKLSAgICByZXR1cm4gUmVz
b3VyY2VFcnJvcihlcnJvckRvbWFpblBsdWdpbiwgUGx1Z2luRXJyb3JXaWxsSGFuZGxlTG9hZCwg
cmVzcG9uc2UudXJsKCksIEFTQ0lJTGl0ZXJhbCgiUGx1Z2luIHdpbGwgaGFuZGxlIGxvYWQiKSk7
Ci19Ci0KLVJlc291cmNlRXJyb3IgZG93bmxvYWROZXR3b3JrRXJyb3IoY29uc3QgUmVzb3VyY2VF
cnJvciYgbmV0d29ya0Vycm9yKQotewotICAgIHJldHVybiBSZXNvdXJjZUVycm9yKGVycm9yRG9t
YWluRG93bmxvYWQsIERvd25sb2FkRXJyb3JOZXR3b3JrLCBuZXR3b3JrRXJyb3IuZmFpbGluZ1VS
TCgpLCBuZXR3b3JrRXJyb3IubG9jYWxpemVkRGVzY3JpcHRpb24oKSk7Ci19Ci0KLVJlc291cmNl
RXJyb3IgZG93bmxvYWRDYW5jZWxsZWRCeVVzZXJFcnJvcihjb25zdCBSZXNvdXJjZVJlc3BvbnNl
JiByZXNwb25zZSkKLXsKLSAgICByZXR1cm4gUmVzb3VyY2VFcnJvcihlcnJvckRvbWFpbkRvd25s
b2FkLCBEb3dubG9hZEVycm9yQ2FuY2VsbGVkQnlVc2VyLCByZXNwb25zZS51cmwoKSwgQVNDSUlM
aXRlcmFsKCJVc2VyIGNhbmNlbGxlZCB0aGUgZG93bmxvYWQiKSk7Ci19Ci0KLVJlc291cmNlRXJy
b3IgZG93bmxvYWREZXN0aW5hdGlvbkVycm9yKGNvbnN0IFJlc291cmNlUmVzcG9uc2UmIHJlc3Bv
bnNlLCBjb25zdCBTdHJpbmcmIGVycm9yTWVzc2FnZSkKLXsKLSAgICByZXR1cm4gUmVzb3VyY2VF
cnJvcihlcnJvckRvbWFpbkRvd25sb2FkLCBEb3dubG9hZEVycm9yRGVzdGluYXRpb24sIHJlc3Bv
bnNlLnVybCgpLCBlcnJvck1lc3NhZ2UpOwotfQotCi1SZXNvdXJjZUVycm9yIHByaW50RXJyb3Io
Y29uc3QgVVJMJiBmYWlsaW5nVVJMLCBjb25zdCBTdHJpbmcmIGVycm9yTWVzc2FnZSkKLXsKLSAg
ICByZXR1cm4gUmVzb3VyY2VFcnJvcihlcnJvckRvbWFpblByaW50LCBQcmludEVycm9yR2VuZXJh
bCwgZmFpbGluZ1VSTCwgZXJyb3JNZXNzYWdlKTsKLX0KLQotUmVzb3VyY2VFcnJvciBwcmludGVy
Tm90Rm91bmRFcnJvcihjb25zdCBVUkwmIGZhaWxpbmdVUkwpCi17Ci0gICAgcmV0dXJuIFJlc291
cmNlRXJyb3IoZXJyb3JEb21haW5QcmludCwgUHJpbnRFcnJvclByaW50ZXJOb3RGb3VuZCwgZmFp
bGluZ1VSTCwgQVNDSUlMaXRlcmFsKCJQcmludGVyIG5vdCBmb3VuZCIpKTsKLX0KLQotUmVzb3Vy
Y2VFcnJvciBpbnZhbGlkUGFnZVJhbmdlVG9QcmludChjb25zdCBVUkwmIGZhaWxpbmdVUkwpCi17
Ci0gICAgcmV0dXJuIFJlc291cmNlRXJyb3IoZXJyb3JEb21haW5QcmludCwgUHJpbnRFcnJvcklu
dmFsaWRQYWdlUmFuZ2UsIGZhaWxpbmdVUkwsIEFTQ0lJTGl0ZXJhbCgiSW52YWxpZCBwYWdlIHJh
bmdlIikpOwotfQotCi19IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9lZmwvRXJyb3JzRWZsLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9lZmwvRXJyb3JzRWZsLmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDcwZmZhNmU2
OWRlZWU3ZTlmNTgwY2Q5ZDU5ZmNlNzhjNjJlZDUwNDYuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZWZsL0Vycm9y
c0VmbC5oCisrKyAvZGV2L251bGwKQEAgLTEsMTAxICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQg
KEMpIDIwMTIgSW50ZWwgQ29ycG9yYXRpb24uIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24u
Ci0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMg
Q09OVFJJQlVUT1JTIGBgQVMgSVMnJwotICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBUSEUgSU1QTElFRCBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
Ci0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMu
IE9SIElUUyBDT05UUklCVVRPUlMKLSAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKLSAqIENPTlNFUVVFTlRJQUwg
REFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCi0g
KiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJP
RklUUzsgT1IgQlVTSU5FU1MKLSAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9O
IEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCi0gKiBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQot
ICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRgotICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICov
Ci0KLSNpZm5kZWYgRXJyb3JzRWZsX2gKLSNkZWZpbmUgRXJyb3JzRWZsX2gKLQotI2luY2x1ZGUg
PHd0Zi90ZXh0L1dURlN0cmluZy5oPgotCi1uYW1lc3BhY2UgV2ViQ29yZSB7Ci0KLWNsYXNzIFJl
c291cmNlRXJyb3I7Ci1jbGFzcyBSZXNvdXJjZVJlcXVlc3Q7Ci1jbGFzcyBSZXNvdXJjZVJlc3Bv
bnNlOwotY2xhc3MgVVJMOwotCi1zdGF0aWMgY29uc3QgY2hhciBlcnJvckRvbWFpbk5ldHdvcmtb
XSA9ICJXZWJLaXROZXR3b3JrRXJyb3IiOwotc3RhdGljIGNvbnN0IGNoYXIgZXJyb3JEb21haW5Q
b2xpY3lbXSA9ICJXZWJLaXRQb2xpY3lFcnJvciI7Ci1zdGF0aWMgY29uc3QgY2hhciBlcnJvckRv
bWFpblBsdWdpbltdID0gIldlYktpdFBsdWdpbkVycm9yIjsKLXN0YXRpYyBjb25zdCBjaGFyIGVy
cm9yRG9tYWluRG93bmxvYWRbXSA9ICJXZWJLaXREb3dubG9hZEVycm9yIjsKLXN0YXRpYyBjb25z
dCBjaGFyIGVycm9yRG9tYWluUHJpbnRbXSA9ICJXZWJLaXRQcmludEVycm9yIjsKLQotZW51bSBO
ZXR3b3JrRXJyb3IgewotICAgIE5ldHdvcmtFcnJvckZhaWxlZCA9IDM5OSwKLSAgICBOZXR3b3Jr
RXJyb3JUcmFuc3BvcnQgPSAzMDAsCi0gICAgTmV0d29ya0Vycm9yVW5rbm93blByb3RvY29sID0g
MzAxLAotICAgIE5ldHdvcmtFcnJvckNhbmNlbGxlZCA9IDMwMiwKLSAgICBOZXR3b3JrRXJyb3JG
aWxlRG9lc05vdEV4aXN0ID0gMzAzCi19OwotCi0vLyBTeW5jJ2Qgd2l0aCBNYWMncyBXZWJLaXQg
RXJyb3JzIGF0OgotLy8gU291cmNlL1dlYktpdC9tYWMvTWlzYy9XZWJLaXRFcnJvcnNbUHJpdmF0
ZV0uaAotZW51bSBQb2xpY3lFcnJvciB7Ci0gICAgUG9saWN5RXJyb3JGYWlsZWQgPSAxOTksCi0g
ICAgUG9saWN5RXJyb3JDYW5ub3RTaG93TWltZVR5cGUgPSAxMDAsCi0gICAgUG9saWN5RXJyb3JD
YW5ub3RTaG93VVJMID0gMTAxLAotICAgIFBvbGljeUVycm9yRnJhbWVMb2FkSW50ZXJydXB0ZWRC
eVBvbGljeUNoYW5nZSA9IDEwMiwKLSAgICBQb2xpY3lFcnJvckNhbm5vdFVzZVJlc3RyaWN0ZWRQ
b3J0ID0gMTAzLAotICAgIFBvbGljeUVycm9yQmxvY2tlZEJ5Q29udGVudEJsb2NrZXIgPSAxMDQs
Ci19OwotCi1lbnVtIFBsdWdpbkVycm9yIHsKLSAgICBQbHVnaW5FcnJvckZhaWxlZCA9IDI5OSwK
LSAgICBQbHVnaW5FcnJvckNhbm5vdEZpbmRQbHVnaW4gPSAyMDAsCi0gICAgUGx1Z2luRXJyb3JD
YW5ub3RMb2FkUGx1Z2luID0gMjAxLAotICAgIFBsdWdpbkVycm9ySmF2YVVuYXZhaWxhYmxlID0g
MjAyLAotICAgIFBsdWdpbkVycm9yQ29ubmVjdGlvbkNhbmNlbGxlZCA9IDIwMywKLSAgICBQbHVn
aW5FcnJvcldpbGxIYW5kbGVMb2FkID0gMjA0Ci19OwotCi1lbnVtIERvd25sb2FkRXJyb3Igewot
ICAgIERvd25sb2FkRXJyb3JOZXR3b3JrID0gNDk5LAotICAgIERvd25sb2FkRXJyb3JDYW5jZWxs
ZWRCeVVzZXIgPSA0MDAsCi0gICAgRG93bmxvYWRFcnJvckRlc3RpbmF0aW9uID0gNDAxCi19Owot
Ci1lbnVtIFByaW50RXJyb3IgewotICAgIFByaW50RXJyb3JHZW5lcmFsID0gNTk5LAotICAgIFBy
aW50RXJyb3JQcmludGVyTm90Rm91bmQgPSA1MDAsCi0gICAgUHJpbnRFcnJvckludmFsaWRQYWdl
UmFuZ2UgPSA1MDEKLX07Ci0KLVJlc291cmNlRXJyb3IgY2FuY2VsbGVkRXJyb3IoY29uc3QgUmVz
b3VyY2VSZXF1ZXN0Jik7Ci1SZXNvdXJjZUVycm9yIGJsb2NrZWRFcnJvcihjb25zdCBSZXNvdXJj
ZVJlcXVlc3QmKTsKLVJlc291cmNlRXJyb3IgYmxvY2tlZEJ5Q29udGVudEJsb2NrZXJFcnJvcihj
b25zdCBSZXNvdXJjZVJlcXVlc3QmKTsKLVJlc291cmNlRXJyb3IgY2Fubm90U2hvd1VSTEVycm9y
KGNvbnN0IFJlc291cmNlUmVxdWVzdCYpOwotUmVzb3VyY2VFcnJvciBpbnRlcnJ1cHRlZEZvclBv
bGljeUNoYW5nZUVycm9yKGNvbnN0IFJlc291cmNlUmVxdWVzdCYpOwotUmVzb3VyY2VFcnJvciBj
YW5ub3RTaG93TUlNRVR5cGVFcnJvcihjb25zdCBSZXNvdXJjZVJlc3BvbnNlJik7Ci1SZXNvdXJj
ZUVycm9yIGZpbGVEb2VzTm90RXhpc3RFcnJvcihjb25zdCBSZXNvdXJjZVJlc3BvbnNlJik7Ci1S
ZXNvdXJjZUVycm9yIHBsdWdpbldpbGxIYW5kbGVMb2FkRXJyb3IoY29uc3QgUmVzb3VyY2VSZXNw
b25zZSYpOwotUmVzb3VyY2VFcnJvciBkb3dubG9hZE5ldHdvcmtFcnJvcihjb25zdCBSZXNvdXJj
ZUVycm9yJik7Ci1SZXNvdXJjZUVycm9yIGRvd25sb2FkQ2FuY2VsbGVkQnlVc2VyRXJyb3IoY29u
c3QgUmVzb3VyY2VSZXNwb25zZSYpOwotUmVzb3VyY2VFcnJvciBkb3dubG9hZERlc3RpbmF0aW9u
RXJyb3IoY29uc3QgUmVzb3VyY2VSZXNwb25zZSYsIGNvbnN0IFN0cmluZyYgZXJyb3JNZXNzYWdl
KTsKLVJlc291cmNlRXJyb3IgcHJpbnRFcnJvcihjb25zdCBVUkwmIGZhaWxpbmdVUkwsIGNvbnN0
IFN0cmluZyYgZXJyb3JNZXNzYWdlKTsKLVJlc291cmNlRXJyb3IgcHJpbnRlck5vdEZvdW5kRXJy
b3IoY29uc3QgVVJMJiBmYWlsaW5nVVJMKTsKLVJlc291cmNlRXJyb3IgaW52YWxpZFBhZ2VSYW5n
ZVRvUHJpbnQoY29uc3QgVVJMJiBmYWlsaW5nVVJMKTsKLQotfQotCi0jZW5kaWYgLy8gRXJyb3Jz
RWZsX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9FcnJvcnNHdGsu
Y3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL0Vycm9yc0d0ay5jcHAKZGVsZXRlZCBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDhkZmQxNThiM2I0ZDZjNTQ0YmRiMjlhNjE1NzQxZGJkYTRi
NDFhNTQuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL0Vycm9yc0d0ay5jcHAKKysrIC9kZXYvbnVsbApAQCAt
MSwxMDAgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMSBJZ2FsaWEgUy5MLgotICoK
LSAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBp
dCBhbmQvb3IKLSAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5
IEdlbmVyYWwgUHVibGljCi0gKiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0
d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKLSAqIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3Ig
KGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KLSAqCi0gKiBUaGlzIGxpYnJhcnkg
aXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKLSAqIGJ1
dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5
IG9mCi0gKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBP
U0UuICBTZWUgdGhlIEdOVQotICogTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBt
b3JlIGRldGFpbHMuCi0gKgotICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0
aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQotICogYWxvbmcgd2l0aCB0aGlz
IGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KLSAq
IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwg
RmlmdGggRmxvb3IsCi0gKiBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KLSAqLwotCi0jaW5j
bHVkZSAiY29uZmlnLmgiCi0jaW5jbHVkZSAiRXJyb3JzR3RrLmgiCi0KLSNpbmNsdWRlICJSZXNv
dXJjZUVycm9yLmgiCi0jaW5jbHVkZSAiUmVzb3VyY2VSZXF1ZXN0LmgiCi0jaW5jbHVkZSAiUmVz
b3VyY2VSZXNwb25zZS5oIgotI2luY2x1ZGUgPGdsaWIvZ2kxOG4tbGliLmg+Ci0KLW5hbWVzcGFj
ZSBXZWJDb3JlIHsKLQotUmVzb3VyY2VFcnJvciBjYW5jZWxsZWRFcnJvcihjb25zdCBSZXNvdXJj
ZVJlcXVlc3QmIHJlcXVlc3QpCi17Ci0gICAgcmV0dXJuIFJlc291cmNlRXJyb3IoZXJyb3JEb21h
aW5OZXR3b3JrLCBOZXR3b3JrRXJyb3JDYW5jZWxsZWQsIHJlcXVlc3QudXJsKCksIF8oIkxvYWQg
cmVxdWVzdCBjYW5jZWxsZWQiKSk7Ci19Ci0KLVJlc291cmNlRXJyb3IgYmxvY2tlZEVycm9yKGNv
bnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCkKLXsKLSAgICByZXR1cm4gUmVzb3VyY2VFcnJv
cihlcnJvckRvbWFpblBvbGljeSwgUG9saWN5RXJyb3JDYW5ub3RVc2VSZXN0cmljdGVkUG9ydCwg
cmVxdWVzdC51cmwoKSwgXygiTm90IGFsbG93ZWQgdG8gdXNlIHJlc3RyaWN0ZWQgbmV0d29yayBw
b3J0IikpOwotfQotCi1SZXNvdXJjZUVycm9yIGJsb2NrZWRCeUNvbnRlbnRCbG9ja2VyRXJyb3Io
Y29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0KQotewotICAgIHJldHVybiBSZXNvdXJjZUVy
cm9yKGVycm9yRG9tYWluUG9saWN5LCBQb2xpY3lFcnJvckJsb2NrZWRCeUNvbnRlbnRCbG9ja2Vy
LCByZXF1ZXN0LnVybCgpLCBfKCJCbG9ja2VkIGJ5IGNvbnRlbnQgYmxvY2tlciIpKTsKLX0KLQot
UmVzb3VyY2VFcnJvciBjYW5ub3RTaG93VVJMRXJyb3IoY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiBy
ZXF1ZXN0KQotewotICAgIHJldHVybiBSZXNvdXJjZUVycm9yKGVycm9yRG9tYWluUG9saWN5LCBQ
b2xpY3lFcnJvckNhbm5vdFNob3dVUkwsIHJlcXVlc3QudXJsKCksIF8oIlVSTCBjYW5ub3QgYmUg
c2hvd24iKSk7Ci19Ci0KLVJlc291cmNlRXJyb3IgaW50ZXJydXB0ZWRGb3JQb2xpY3lDaGFuZ2VF
cnJvcihjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QpCi17Ci0gICAgcmV0dXJuIFJlc291
cmNlRXJyb3IoZXJyb3JEb21haW5Qb2xpY3ksIFBvbGljeUVycm9yRnJhbWVMb2FkSW50ZXJydXB0
ZWRCeVBvbGljeUNoYW5nZSwgcmVxdWVzdC51cmwoKSwgXygiRnJhbWUgbG9hZCB3YXMgaW50ZXJy
dXB0ZWQiKSk7Ci19Ci0KLVJlc291cmNlRXJyb3IgY2Fubm90U2hvd01JTUVUeXBlRXJyb3IoY29u
c3QgUmVzb3VyY2VSZXNwb25zZSYgcmVzcG9uc2UpCi17Ci0gICAgcmV0dXJuIFJlc291cmNlRXJy
b3IoZXJyb3JEb21haW5Qb2xpY3ksIFBvbGljeUVycm9yQ2Fubm90U2hvd01pbWVUeXBlLCByZXNw
b25zZS51cmwoKSwgXygiQ29udGVudCB3aXRoIHRoZSBzcGVjaWZpZWQgTUlNRSB0eXBlIGNhbm5v
dCBiZSBzaG93biIpKTsKLX0KLQotUmVzb3VyY2VFcnJvciBmaWxlRG9lc05vdEV4aXN0RXJyb3Io
Y29uc3QgUmVzb3VyY2VSZXNwb25zZSYgcmVzcG9uc2UpCi17Ci0gICAgcmV0dXJuIFJlc291cmNl
RXJyb3IoZXJyb3JEb21haW5OZXR3b3JrLCBOZXR3b3JrRXJyb3JGaWxlRG9lc05vdEV4aXN0LCBy
ZXNwb25zZS51cmwoKSwgXygiRmlsZSBkb2VzIG5vdCBleGlzdCIpKTsKLX0KLQotUmVzb3VyY2VF
cnJvciBwbHVnaW5XaWxsSGFuZGxlTG9hZEVycm9yKGNvbnN0IFJlc291cmNlUmVzcG9uc2UmIHJl
c3BvbnNlKQotewotICAgIHJldHVybiBSZXNvdXJjZUVycm9yKGVycm9yRG9tYWluUGx1Z2luLCBQ
bHVnaW5FcnJvcldpbGxIYW5kbGVMb2FkLCByZXNwb25zZS51cmwoKSwgXygiUGx1Z2luIHdpbGwg
aGFuZGxlIGxvYWQiKSk7Ci19Ci0KLVJlc291cmNlRXJyb3IgZG93bmxvYWROZXR3b3JrRXJyb3Io
Y29uc3QgUmVzb3VyY2VFcnJvciYgbmV0d29ya0Vycm9yKQotewotICAgIHJldHVybiBSZXNvdXJj
ZUVycm9yKGVycm9yRG9tYWluRG93bmxvYWQsIERvd25sb2FkRXJyb3JOZXR3b3JrLCBuZXR3b3Jr
RXJyb3IuZmFpbGluZ1VSTCgpLCBuZXR3b3JrRXJyb3IubG9jYWxpemVkRGVzY3JpcHRpb24oKSk7
Ci19Ci0KLVJlc291cmNlRXJyb3IgZG93bmxvYWRDYW5jZWxsZWRCeVVzZXJFcnJvcihjb25zdCBS
ZXNvdXJjZVJlc3BvbnNlJiByZXNwb25zZSkKLXsKLSAgICByZXR1cm4gUmVzb3VyY2VFcnJvcihl
cnJvckRvbWFpbkRvd25sb2FkLCBEb3dubG9hZEVycm9yQ2FuY2VsbGVkQnlVc2VyLCByZXNwb25z
ZS51cmwoKSwgXygiVXNlciBjYW5jZWxsZWQgdGhlIGRvd25sb2FkIikpOwotfQotCi1SZXNvdXJj
ZUVycm9yIGRvd25sb2FkRGVzdGluYXRpb25FcnJvcihjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiBy
ZXNwb25zZSwgY29uc3QgU3RyaW5nJiBlcnJvck1lc3NhZ2UpCi17Ci0gICAgcmV0dXJuIFJlc291
cmNlRXJyb3IoZXJyb3JEb21haW5Eb3dubG9hZCwgRG93bmxvYWRFcnJvckRlc3RpbmF0aW9uLCBy
ZXNwb25zZS51cmwoKSwgZXJyb3JNZXNzYWdlKTsKLX0KLQotUmVzb3VyY2VFcnJvciBwcmludEVy
cm9yKGNvbnN0IFVSTCYgZmFpbGluZ1VSTCwgY29uc3QgU3RyaW5nJiBlcnJvck1lc3NhZ2UpCi17
Ci0gICAgcmV0dXJuIFJlc291cmNlRXJyb3IoZXJyb3JEb21haW5QcmludCwgUHJpbnRFcnJvckdl
bmVyYWwsIGZhaWxpbmdVUkwsIGVycm9yTWVzc2FnZSk7Ci19Ci0KLVJlc291cmNlRXJyb3IgcHJp
bnRlck5vdEZvdW5kRXJyb3IoY29uc3QgVVJMJiBmYWlsaW5nVVJMKQotewotICAgIHJldHVybiBS
ZXNvdXJjZUVycm9yKGVycm9yRG9tYWluUHJpbnQsIFByaW50RXJyb3JQcmludGVyTm90Rm91bmQs
IGZhaWxpbmdVUkwsIF8oIlByaW50ZXIgbm90IGZvdW5kIikpOwotfQotCi1SZXNvdXJjZUVycm9y
IGludmFsaWRQYWdlUmFuZ2VUb1ByaW50KGNvbnN0IFVSTCYgZmFpbGluZ1VSTCkKLXsKLSAgICBy
ZXR1cm4gUmVzb3VyY2VFcnJvcihlcnJvckRvbWFpblByaW50LCBQcmludEVycm9ySW52YWxpZFBh
Z2VSYW5nZSwgZmFpbGluZ1VSTCwgXygiSW52YWxpZCBwYWdlIHJhbmdlIikpOwotfQotCi19IC8v
IG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
dGsvRXJyb3JzR3RrLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvRXJyb3JzR3RrLmgK
ZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDc2MWRjY2IyNmVmNzAwNDFiYzcxYTcwMjFi
NTA1MzBkNzgwMjgxNzAuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL0Vycm9yc0d0ay5oCisrKyAvZGV2L251
bGwKQEAgLTEsOTQgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMSBJZ2FsaWEgUy5M
LgotICoKLSAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJp
YnV0ZSBpdCBhbmQvb3IKLSAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBM
aWJyYXJ5IEdlbmVyYWwgUHVibGljCi0gKiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJl
ZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKLSAqIHZlcnNpb24gMiBvZiB0aGUgTGljZW5z
ZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KLSAqCi0gKiBUaGlzIGxp
YnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwK
LSAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdh
cnJhbnR5IG9mCi0gKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
IFBVUlBPU0UuICBTZWUgdGhlIEdOVQotICogTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNl
IGZvciBtb3JlIGRldGFpbHMuCi0gKgotICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29w
eSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQotICogYWxvbmcgd2l0
aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUg
dG8KLSAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0
cmVldCwgRmlmdGggRmxvb3IsCi0gKiBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KLSAqLwot
Ci0jaWZuZGVmIEVycm9yc0d0a19oCi0jZGVmaW5lIEVycm9yc0d0a19oCi0KLSNpbmNsdWRlIDx3
dGYvdGV4dC9XVEZTdHJpbmcuaD4KLQotbmFtZXNwYWNlIFdlYkNvcmUgewotCi1jbGFzcyBSZXNv
dXJjZUVycm9yOwotY2xhc3MgUmVzb3VyY2VSZXF1ZXN0OwotY2xhc3MgUmVzb3VyY2VSZXNwb25z
ZTsKLWNsYXNzIFVSTDsKLQotY29uc3QgY2hhciogY29uc3QgZXJyb3JEb21haW5OZXR3b3JrID0g
IldlYktpdE5ldHdvcmtFcnJvciI7Ci1jb25zdCBjaGFyKiBjb25zdCBlcnJvckRvbWFpblBvbGlj
eSA9ICJXZWJLaXRQb2xpY3lFcnJvciI7Ci1jb25zdCBjaGFyKiBjb25zdCBlcnJvckRvbWFpblBs
dWdpbiA9ICJXZWJLaXRQbHVnaW5FcnJvciI7Ci1jb25zdCBjaGFyKiBjb25zdCBlcnJvckRvbWFp
bkRvd25sb2FkID0gIldlYktpdERvd25sb2FkRXJyb3IiOwotY29uc3QgY2hhciogY29uc3QgZXJy
b3JEb21haW5QcmludCA9ICJXZWJLaXRQcmludEVycm9yIjsKLQotZW51bSBOZXR3b3JrRXJyb3Ig
ewotICAgIE5ldHdvcmtFcnJvckZhaWxlZCA9IDM5OSwKLSAgICBOZXR3b3JrRXJyb3JUcmFuc3Bv
cnQgPSAzMDAsCi0gICAgTmV0d29ya0Vycm9yVW5rbm93blByb3RvY29sID0gMzAxLAotICAgIE5l
dHdvcmtFcnJvckNhbmNlbGxlZCA9IDMwMiwKLSAgICBOZXR3b3JrRXJyb3JGaWxlRG9lc05vdEV4
aXN0ID0gMzAzCi19OwotCi0vLyBTeW5jJ2Qgd2l0aCBNYWMncyBXZWJLaXQgRXJyb3JzLgotZW51
bSBQb2xpY3lFcnJvciB7Ci0gICAgUG9saWN5RXJyb3JGYWlsZWQgPSAxOTksCi0gICAgUG9saWN5
RXJyb3JDYW5ub3RTaG93TWltZVR5cGUgPSAxMDAsCi0gICAgUG9saWN5RXJyb3JDYW5ub3RTaG93
VVJMID0gMTAxLAotICAgIFBvbGljeUVycm9yRnJhbWVMb2FkSW50ZXJydXB0ZWRCeVBvbGljeUNo
YW5nZSA9IDEwMiwKLSAgICBQb2xpY3lFcnJvckNhbm5vdFVzZVJlc3RyaWN0ZWRQb3J0ID0gMTAz
LAotICAgIFBvbGljeUVycm9yQmxvY2tlZEJ5Q29udGVudEJsb2NrZXIgPSAxMDQsCi19OwotCi1l
bnVtIFBsdWdpbkVycm9yIHsKLSAgICBQbHVnaW5FcnJvckZhaWxlZCA9IDI5OSwKLSAgICBQbHVn
aW5FcnJvckNhbm5vdEZpbmRQbHVnaW4gPSAyMDAsCi0gICAgUGx1Z2luRXJyb3JDYW5ub3RMb2Fk
UGx1Z2luID0gMjAxLAotICAgIFBsdWdpbkVycm9ySmF2YVVuYXZhaWxhYmxlID0gMjAyLAotICAg
IFBsdWdpbkVycm9yQ29ubmVjdGlvbkNhbmNlbGxlZCA9IDIwMywKLSAgICBQbHVnaW5FcnJvcldp
bGxIYW5kbGVMb2FkID0gMjA0Ci19OwotCi1lbnVtIERvd25sb2FkRXJyb3IgewotICAgIERvd25s
b2FkRXJyb3JOZXR3b3JrID0gNDk5LAotICAgIERvd25sb2FkRXJyb3JDYW5jZWxsZWRCeVVzZXIg
PSA0MDAsCi0gICAgRG93bmxvYWRFcnJvckRlc3RpbmF0aW9uID0gNDAxCi19OwotCi1lbnVtIFBy
aW50RXJyb3IgewotICAgIFByaW50RXJyb3JHZW5lcmFsID0gNTk5LAotICAgIFByaW50RXJyb3JQ
cmludGVyTm90Rm91bmQgPSA1MDAsCi0gICAgUHJpbnRFcnJvckludmFsaWRQYWdlUmFuZ2UgPSA1
MDEKLX07Ci0KLVJlc291cmNlRXJyb3IgY2FuY2VsbGVkRXJyb3IoY29uc3QgUmVzb3VyY2VSZXF1
ZXN0Jik7Ci1SZXNvdXJjZUVycm9yIGJsb2NrZWRFcnJvcihjb25zdCBSZXNvdXJjZVJlcXVlc3Qm
KTsKLVJlc291cmNlRXJyb3IgYmxvY2tlZEJ5Q29udGVudEJsb2NrZXJFcnJvcihjb25zdCBSZXNv
dXJjZVJlcXVlc3QmKTsKLVJlc291cmNlRXJyb3IgY2Fubm90U2hvd1VSTEVycm9yKGNvbnN0IFJl
c291cmNlUmVxdWVzdCYpOwotUmVzb3VyY2VFcnJvciBpbnRlcnJ1cHRlZEZvclBvbGljeUNoYW5n
ZUVycm9yKGNvbnN0IFJlc291cmNlUmVxdWVzdCYpOwotUmVzb3VyY2VFcnJvciBjYW5ub3RTaG93
TUlNRVR5cGVFcnJvcihjb25zdCBSZXNvdXJjZVJlc3BvbnNlJik7Ci1SZXNvdXJjZUVycm9yIGZp
bGVEb2VzTm90RXhpc3RFcnJvcihjb25zdCBSZXNvdXJjZVJlc3BvbnNlJik7Ci1SZXNvdXJjZUVy
cm9yIHBsdWdpbldpbGxIYW5kbGVMb2FkRXJyb3IoY29uc3QgUmVzb3VyY2VSZXNwb25zZSYpOwot
UmVzb3VyY2VFcnJvciBkb3dubG9hZE5ldHdvcmtFcnJvcihjb25zdCBSZXNvdXJjZUVycm9yJik7
Ci1SZXNvdXJjZUVycm9yIGRvd25sb2FkQ2FuY2VsbGVkQnlVc2VyRXJyb3IoY29uc3QgUmVzb3Vy
Y2VSZXNwb25zZSYpOwotUmVzb3VyY2VFcnJvciBkb3dubG9hZERlc3RpbmF0aW9uRXJyb3IoY29u
c3QgUmVzb3VyY2VSZXNwb25zZSYsIGNvbnN0IFN0cmluZyYgZXJyb3JNZXNzYWdlKTsKLVJlc291
cmNlRXJyb3IgcHJpbnRFcnJvcihjb25zdCBVUkwmIGZhaWxpbmdVUkwsIGNvbnN0IFN0cmluZyYg
ZXJyb3JNZXNzYWdlKTsKLVJlc291cmNlRXJyb3IgcHJpbnRlck5vdEZvdW5kRXJyb3IoY29uc3Qg
VVJMJiBmYWlsaW5nVVJMKTsKLVJlc291cmNlRXJyb3IgaW52YWxpZFBhZ2VSYW5nZVRvUHJpbnQo
Y29uc3QgVVJMJiBmYWlsaW5nVVJMKTsKLQotfQotCi0jZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9wby9QT1RGSUxFUy5pbiBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2d0ay9wby9QT1RGSUxFUy5pbgppbmRleCA3ZmEyODI1MjBjYWUyZTdmMTcwOTdhNzY4
NTQzN2E2ZTU1OWM3NDBlLi41MWY3ODllYmYyMTdmNjlmNTI5ZGJiNjFiYTI0ZmI5OWE3Y2JlZjY0
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvcG8vUE9URklMRVMuaW4K
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL3BvL1BPVEZJTEVTLmluCkBAIC0xLDUg
KzEsNSBAQAogIyBMaXN0IG9mIHNvdXJjZSBmaWxlcyB3aGljaCBjb250YWluIHRyYW5zbGF0YWJs
ZSBzdHJpbmdzLgotRXJyb3JzR3RrLmNwcAorLi4vdW5peC9FcnJvcnNVbml4LmNwcAogTG9jYWxp
emVkU3RyaW5nc0d0ay5jcHAKIC4uLy4uLy4uL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvRG93bmxv
YWRzL3NvdXAvRG93bmxvYWRTb3VwLmNwcAogLi4vLi4vLi4vV2ViS2l0Mi9VSVByb2Nlc3MvQVBJ
L2d0ay9XZWJLaXRBdXRoZW50aWNhdGlvbkRpYWxvZy5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL21hYy9FcnJvcnNNYWMubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9tYWMvRXJyb3JzTWFjLm1tCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjVlYTk1MWFlMmZkMTA3ZjA1MzZiY2RhM2I4
NzkyNzk3Y2IwNzczMDUKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9tYWMvRXJyb3JzTWFjLm1tCkBAIC0wLDAgKzEsMTE5IEBACisvKgorICogQ29weXJpZ2h0IChD
KSAyMDEwLTIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4K
KyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoK
KyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRS
SUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICog
UFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJ
VFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFH
RVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VC
U1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7
IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkg
VEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFC
SUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFS
SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisj
aW1wb3J0ICJjb25maWcuaCIKKyNpbXBvcnQgIkVycm9ycy5oIgorCisjaW1wb3J0ICJMb2NhbGl6
ZWRTdHJpbmdzLmgiCisjaW1wb3J0ICJSZXNvdXJjZUVycm9yLmgiCisjaW1wb3J0ICJSZXNvdXJj
ZVJlcXVlc3QuaCIKKyNpbXBvcnQgIlJlc291cmNlUmVzcG9uc2UuaCIKKworbmFtZXNwYWNlIFdl
YkNvcmUgeworCitlbnVtIHsKKyAgICBrV0tFcnJvckNvZGVDYW5ub3RTaG93TUlNRVR5cGUgPSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgMTAwLAorICAgIGtXS0Vycm9yQ29kZUNhbm5vdFNo
b3dVUkwgPSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxMDEsCisgICAga1dLRXJy
b3JDb2RlRnJhbWVMb2FkSW50ZXJydXB0ZWRCeVBvbGljeUNoYW5nZSA9ICAgICAgICAgICAgIDEw
MiwKKyAgICBrV0tFcnJvckNvZGVDYW5ub3RVc2VSZXN0cmljdGVkUG9ydCA9ICAgICAgICAgICAg
ICAgICAgICAgICAgMTAzLAorICAgIGtXS0Vycm9yQ29kZUZyYW1lTG9hZEJsb2NrZWRCeUNvbnRl
bnRCbG9ja2VyID0gICAgICAgICAgICAgICAxMDQsCisgICAga1dLRXJyb3JDb2RlRnJhbWVMb2Fk
QmxvY2tlZEJ5Q29udGVudEZpbHRlciA9ICAgICAgICAgICAgICAgIDEwNSwKKyAgICBrV0tFcnJv
ckNvZGVDYW5ub3RGaW5kUGx1Z0luID0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMjAw
LAorICAgIGtXS0Vycm9yQ29kZUNhbm5vdExvYWRQbHVnSW4gPSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAyMDEsCisgICAga1dLRXJyb3JDb2RlSmF2YVVuYXZhaWxhYmxlID0gICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIDIwMiwKKyAgICBrV0tFcnJvckNvZGVQbHVnSW5DYW5j
ZWxsZWRDb25uZWN0aW9uID0gICAgICAgICAgICAgICAgICAgICAgMjAzLAorICAgIGtXS0Vycm9y
Q29kZVBsdWdJbldpbGxIYW5kbGVMb2FkID0gICAgICAgICAgICAgICAgICAgICAgICAgICAyMDQs
CisgICAga1dLRXJyb3JDb2RlSW5zZWN1cmVQbHVnSW5WZXJzaW9uID0gICAgICAgICAgICAgICAg
ICAgICAgICAgIDIwNSwKKyAgICBrV0tFcnJvckludGVybmFsID0gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgMzAwLAorfTsKKworc3RhdGljIFJldGFpblB0cjxOU0Vy
cm9yPiBjcmVhdGVOU0Vycm9yKE5TU3RyaW5nKiBkb21haW4sIGludCBjb2RlLCBOU1VSTCAqVVJM
KQoreworICAgIE5TRGljdGlvbmFyeSAqdXNlckluZm8gPSBbTlNEaWN0aW9uYXJ5IGRpY3Rpb25h
cnlXaXRoT2JqZWN0c0FuZEtleXM6CisgICAgICAgIFVSTCwgQCJOU0Vycm9yRmFpbGluZ1VSTEtl
eSIsCisgICAgICAgIFtVUkwgYWJzb2x1dGVTdHJpbmddLCBAIk5TRXJyb3JGYWlsaW5nVVJMU3Ry
aW5nS2V5IiwKKyAgICAgICAgbmlsXTsKKworICAgIHJldHVybiBhZG9wdE5TKFtbTlNFcnJvciBh
bGxvY10gaW5pdFdpdGhEb21haW46ZG9tYWluIGNvZGU6Y29kZSB1c2VySW5mbzp1c2VySW5mb10p
OworfQorCisvLyBVc2UgTlNFcnJvcidzIGlmIGF2YWlsYWJsZS4KKworUmVzb3VyY2VFcnJvciBj
YW5jZWxsZWRFcnJvcihjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QpCit7CisgICAgcmV0
dXJuIFJlc291cmNlRXJyb3IoY3JlYXRlTlNFcnJvcihOU1VSTEVycm9yRG9tYWluLCBOU1VSTEVy
cm9yQ2FuY2VsbGVkLCByZXF1ZXN0LnVybCgpKS5nZXQoKSk7Cit9CisKK1Jlc291cmNlRXJyb3Ig
ZmlsZURvZXNOb3RFeGlzdEVycm9yKGNvbnN0IFJlc291cmNlUmVzcG9uc2UmIHJlc3BvbnNlKQor
eworICAgIHJldHVybiBSZXNvdXJjZUVycm9yKGNyZWF0ZU5TRXJyb3IoTlNVUkxFcnJvckRvbWFp
biwgTlNVUkxFcnJvckZpbGVEb2VzTm90RXhpc3QsIHJlc3BvbnNlLnVybCgpKS5nZXQoKSk7Cit9
CisKKworLy8gT3RoZXJ3aXNlLCBmYWxsYmFjayB0byBvdXIgb3duIGVycm9ycy4KKworUmVzb3Vy
Y2VFcnJvciBibG9ja2VkRXJyb3IoY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0KQorewor
ICAgIHJldHVybiBSZXNvdXJjZUVycm9yKHdlYktpdEVycm9yRG9tYWluKCksIGtXS0Vycm9yQ29k
ZUNhbm5vdFVzZVJlc3RyaWN0ZWRQb3J0LCByZXF1ZXN0LnVybCgpLCBXRUJfVUlfU1RSSU5HKCJO
b3QgYWxsb3dlZCB0byB1c2UgcmVzdHJpY3RlZCBuZXR3b3JrIHBvcnQiLCAiV2ViS2l0RXJyb3JD
YW5ub3RVc2VSZXN0cmljdGVkUG9ydCBkZXNjcmlwdGlvbiIpKTsKK30KKworUmVzb3VyY2VFcnJv
ciBibG9ja2VkQnlDb250ZW50QmxvY2tlckVycm9yKGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVx
dWVzdCkKK3sKKyAgICByZXR1cm4gUmVzb3VyY2VFcnJvcih3ZWJLaXRFcnJvckRvbWFpbigpLCBr
V0tFcnJvckNvZGVGcmFtZUxvYWRCbG9ja2VkQnlDb250ZW50QmxvY2tlciwgcmVxdWVzdC51cmwo
KSwgV0VCX1VJX1NUUklORygiVGhlIFVSTCB3YXMgYmxvY2tlZCBieSBhIGNvbnRlbnQgYmxvY2tl
ciIsICJXZWJLaXRFcnJvckJsb2NrZWRCeUNvbnRlbnRCbG9ja2VyIGRlc2NyaXB0aW9uIikpOwor
fQorCitSZXNvdXJjZUVycm9yIGNhbm5vdFNob3dVUkxFcnJvcihjb25zdCBSZXNvdXJjZVJlcXVl
c3QmIHJlcXVlc3QpCit7CisgICAgcmV0dXJuIFJlc291cmNlRXJyb3Iod2ViS2l0RXJyb3JEb21h
aW4oKSwga1dLRXJyb3JDb2RlQ2Fubm90U2hvd1VSTCwgcmVxdWVzdC51cmwoKSwgV0VCX1VJX1NU
UklORygiVGhlIFVSTCBjYW7igJl0IGJlIHNob3duIiwgIldlYktpdEVycm9yQ2Fubm90U2hvd1VS
TCBkZXNjcmlwdGlvbiIpKTsKK30KKworUmVzb3VyY2VFcnJvciBpbnRlcnJ1cHRlZEZvclBvbGlj
eUNoYW5nZUVycm9yKGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCkKK3sKKyAgICByZXR1
cm4gUmVzb3VyY2VFcnJvcih3ZWJLaXRFcnJvckRvbWFpbigpLCBrV0tFcnJvckNvZGVGcmFtZUxv
YWRJbnRlcnJ1cHRlZEJ5UG9saWN5Q2hhbmdlLCByZXF1ZXN0LnVybCgpLCBXRUJfVUlfU1RSSU5H
KCJGcmFtZSBsb2FkIGludGVycnVwdGVkIiwgIldlYktpdEVycm9yRnJhbWVMb2FkSW50ZXJydXB0
ZWRCeVBvbGljeUNoYW5nZSBkZXNjcmlwdGlvbiIpKTsKK30KKworI2lmIEVOQUJMRShDT05URU5U
X0ZJTFRFUklORykKK1Jlc291cmNlRXJyb3IgYmxvY2tlZEJ5Q29udGVudEZpbHRlckVycm9yKGNv
bnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCkKK3sKKyAgICByZXR1cm4gUmVzb3VyY2VFcnJv
cih3ZWJLaXRFcnJvckRvbWFpbigpLCBrV0tFcnJvckNvZGVGcmFtZUxvYWRCbG9ja2VkQnlDb250
ZW50RmlsdGVyLCByZXF1ZXN0LnVybCgpLCBXRUJfVUlfU1RSSU5HKCJUaGUgVVJMIHdhcyBibG9j
a2VkIGJ5IGEgY29udGVudCBmaWx0ZXIiLCAiV2ViS2l0RXJyb3JCbG9ja2VkQnlDb250ZW50Rmls
dGVyIikpOworfQorI2VuZGlmCisKK1Jlc291cmNlRXJyb3IgY2Fubm90U2hvd01JTUVUeXBlRXJy
b3IoY29uc3QgUmVzb3VyY2VSZXNwb25zZSYgcmVzcG9uc2UpCit7CisgICAgcmV0dXJuIFJlc291
cmNlRXJyb3Iod2ViS2l0RXJyb3JEb21haW4oKSwga1dLRXJyb3JDb2RlQ2Fubm90U2hvd01JTUVU
eXBlLCByZXNwb25zZS51cmwoKSwgV0VCX1VJX1NUUklORygiQ29udGVudCB3aXRoIHNwZWNpZmll
ZCBNSU1FIHR5cGUgY2Fu4oCZdCBiZSBzaG93biIsICJXZWJLaXRFcnJvckNhbm5vdFNob3dNSU1F
VHlwZSBkZXNjcmlwdGlvbiIpKTsKK30KKworUmVzb3VyY2VFcnJvciBwbHVnaW5XaWxsSGFuZGxl
TG9hZEVycm9yKGNvbnN0IFJlc291cmNlUmVzcG9uc2UmIHJlc3BvbnNlKQoreworICAgIHJldHVy
biBSZXNvdXJjZUVycm9yKHdlYktpdEVycm9yRG9tYWluKCksIGtXS0Vycm9yQ29kZVBsdWdJbldp
bGxIYW5kbGVMb2FkLCByZXNwb25zZS51cmwoKSwgV0VCX1VJX1NUUklORygiUGx1Zy1pbiBoYW5k
bGVkIGxvYWQiLCAiV2ViS2l0RXJyb3JQbHVnSW5XaWxsSGFuZGxlTG9hZCBkZXNjcmlwdGlvbiIp
KTsKK30KKworUmVzb3VyY2VFcnJvciBpbnRlcm5hbEVycm9yKGNvbnN0IFVSTCYgdXJsKQorewor
ICAgIHJldHVybiBSZXNvdXJjZUVycm9yKHdlYktpdEVycm9yRG9tYWluKCksIGtXS0Vycm9ySW50
ZXJuYWwsIHVybCwgV0VCX1VJX1NUUklORygiV2ViS2l0IGVuY291bnRlcmVkIGFuIGludGVybmFs
IGVycm9yIiwgIldlYktpdEVycm9ySW50ZXJuYWwgZGVzY3JpcHRpb24iKSk7Cit9CisKK30gLy8g
bmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3Vu
aXgvRXJyb3JzVW5peC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS91bml4L0Vycm9yc1Vu
aXguY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLmIxNmY0OTI5YmJlNTBlNjA1ZjY0YzQ3Yzk0MDdhYjQ2MjJmZDUw
NDMKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS91bml4L0Vycm9y
c1VuaXguY3BwCkBAIC0wLDAgKzEsMTEyIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDExIEln
YWxpYSBTLkwuCisgKgorICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4g
cmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0
aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKKyAqIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5
IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgorICogdmVyc2lvbiAyIG9mIHRo
ZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorICoKKyAq
IFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUg
dXNlZnVsLAorICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGlt
cGxpZWQgd2FycmFudHkgb2YKKyAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisgKiBMaWJyYXJ5IEdlbmVyYWwgUHVibGlj
IExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAqCisgKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2
ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgKiBh
bG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJTkcuTElCLiAgSWYgbm90
LCB3cml0ZSB0bworICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJh
bmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwKKyAqIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNB
LgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJFcnJvcnNVbml4LmgiCisK
KyNpbmNsdWRlICJFcnJvcnMuaCIKKyNpbmNsdWRlICJSZXNvdXJjZUVycm9yLmgiCisjaW5jbHVk
ZSAiUmVzb3VyY2VSZXF1ZXN0LmgiCisjaW5jbHVkZSAiUmVzb3VyY2VSZXNwb25zZS5oIgorCisj
aWYgUExBVEZPUk0oR1RLKQorI2luY2x1ZGUgPGdsaWIvZ2kxOG4tbGliLmg+CisjZGVmaW5lIEVS
Uk9SX1NUUklORyhzKSBfKHMpCisjZWxpZiBQTEFURk9STShFRkwpCisjZGVmaW5lIEVSUk9SX1NU
UklORyhzKSBBU0NJSUxpdGVyYWwocykKKyNlbmRpZgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisK
K1Jlc291cmNlRXJyb3IgY2FuY2VsbGVkRXJyb3IoY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1
ZXN0KQoreworICAgIHJldHVybiBSZXNvdXJjZUVycm9yKGVycm9yRG9tYWluTmV0d29yaywgTmV0
d29ya0Vycm9yQ2FuY2VsbGVkLCByZXF1ZXN0LnVybCgpLCBFUlJPUl9TVFJJTkcoIkxvYWQgcmVx
dWVzdCBjYW5jZWxsZWQiKSk7Cit9CisKK1Jlc291cmNlRXJyb3IgYmxvY2tlZEVycm9yKGNvbnN0
IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCkKK3sKKyAgICByZXR1cm4gUmVzb3VyY2VFcnJvcihl
cnJvckRvbWFpblBvbGljeSwgUG9saWN5RXJyb3JDYW5ub3RVc2VSZXN0cmljdGVkUG9ydCwgcmVx
dWVzdC51cmwoKSwgRVJST1JfU1RSSU5HKCJOb3QgYWxsb3dlZCB0byB1c2UgcmVzdHJpY3RlZCBu
ZXR3b3JrIHBvcnQiKSk7Cit9CisKK1Jlc291cmNlRXJyb3IgYmxvY2tlZEJ5Q29udGVudEJsb2Nr
ZXJFcnJvcihjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QpCit7CisgICAgcmV0dXJuIFJl
c291cmNlRXJyb3IoZXJyb3JEb21haW5Qb2xpY3ksIFBvbGljeUVycm9yQmxvY2tlZEJ5Q29udGVu
dEJsb2NrZXIsIHJlcXVlc3QudXJsKCksIEVSUk9SX1NUUklORygiQmxvY2tlZCBieSBjb250ZW50
IGJsb2NrZXIiKSk7Cit9CisKK1Jlc291cmNlRXJyb3IgY2Fubm90U2hvd1VSTEVycm9yKGNvbnN0
IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCkKK3sKKyAgICByZXR1cm4gUmVzb3VyY2VFcnJvcihl
cnJvckRvbWFpblBvbGljeSwgUG9saWN5RXJyb3JDYW5ub3RTaG93VVJMLCByZXF1ZXN0LnVybCgp
LCBFUlJPUl9TVFJJTkcoIlVSTCBjYW5ub3QgYmUgc2hvd24iKSk7Cit9CisKK1Jlc291cmNlRXJy
b3IgaW50ZXJydXB0ZWRGb3JQb2xpY3lDaGFuZ2VFcnJvcihjb25zdCBSZXNvdXJjZVJlcXVlc3Qm
IHJlcXVlc3QpCit7CisgICAgcmV0dXJuIFJlc291cmNlRXJyb3IoZXJyb3JEb21haW5Qb2xpY3ks
IFBvbGljeUVycm9yRnJhbWVMb2FkSW50ZXJydXB0ZWRCeVBvbGljeUNoYW5nZSwgcmVxdWVzdC51
cmwoKSwgRVJST1JfU1RSSU5HKCJGcmFtZSBsb2FkIHdhcyBpbnRlcnJ1cHRlZCIpKTsKK30KKwor
UmVzb3VyY2VFcnJvciBjYW5ub3RTaG93TUlNRVR5cGVFcnJvcihjb25zdCBSZXNvdXJjZVJlc3Bv
bnNlJiByZXNwb25zZSkKK3sKKyAgICByZXR1cm4gUmVzb3VyY2VFcnJvcihlcnJvckRvbWFpblBv
bGljeSwgUG9saWN5RXJyb3JDYW5ub3RTaG93TWltZVR5cGUsIHJlc3BvbnNlLnVybCgpLCBFUlJP
Ul9TVFJJTkcoIkNvbnRlbnQgd2l0aCB0aGUgc3BlY2lmaWVkIE1JTUUgdHlwZSBjYW5ub3QgYmUg
c2hvd24iKSk7Cit9CisKK1Jlc291cmNlRXJyb3IgZmlsZURvZXNOb3RFeGlzdEVycm9yKGNvbnN0
IFJlc291cmNlUmVzcG9uc2UmIHJlc3BvbnNlKQoreworICAgIHJldHVybiBSZXNvdXJjZUVycm9y
KGVycm9yRG9tYWluTmV0d29yaywgTmV0d29ya0Vycm9yRmlsZURvZXNOb3RFeGlzdCwgcmVzcG9u
c2UudXJsKCksIEVSUk9SX1NUUklORygiRmlsZSBkb2VzIG5vdCBleGlzdCIpKTsKK30KKworUmVz
b3VyY2VFcnJvciBwbHVnaW5XaWxsSGFuZGxlTG9hZEVycm9yKGNvbnN0IFJlc291cmNlUmVzcG9u
c2UmIHJlc3BvbnNlKQoreworICAgIHJldHVybiBSZXNvdXJjZUVycm9yKGVycm9yRG9tYWluUGx1
Z2luLCBQbHVnaW5FcnJvcldpbGxIYW5kbGVMb2FkLCByZXNwb25zZS51cmwoKSwgRVJST1JfU1RS
SU5HKCJQbHVnaW4gd2lsbCBoYW5kbGUgbG9hZCIpKTsKK30KKworUmVzb3VyY2VFcnJvciBkb3du
bG9hZE5ldHdvcmtFcnJvcihjb25zdCBSZXNvdXJjZUVycm9yJiBuZXR3b3JrRXJyb3IpCit7Cisg
ICAgcmV0dXJuIFJlc291cmNlRXJyb3IoZXJyb3JEb21haW5Eb3dubG9hZCwgRG93bmxvYWRFcnJv
ck5ldHdvcmssIG5ldHdvcmtFcnJvci5mYWlsaW5nVVJMKCksIG5ldHdvcmtFcnJvci5sb2NhbGl6
ZWREZXNjcmlwdGlvbigpKTsKK30KKworUmVzb3VyY2VFcnJvciBkb3dubG9hZENhbmNlbGxlZEJ5
VXNlckVycm9yKGNvbnN0IFJlc291cmNlUmVzcG9uc2UmIHJlc3BvbnNlKQoreworICAgIHJldHVy
biBSZXNvdXJjZUVycm9yKGVycm9yRG9tYWluRG93bmxvYWQsIERvd25sb2FkRXJyb3JDYW5jZWxs
ZWRCeVVzZXIsIHJlc3BvbnNlLnVybCgpLCBFUlJPUl9TVFJJTkcoIlVzZXIgY2FuY2VsbGVkIHRo
ZSBkb3dubG9hZCIpKTsKK30KKworUmVzb3VyY2VFcnJvciBkb3dubG9hZERlc3RpbmF0aW9uRXJy
b3IoY29uc3QgUmVzb3VyY2VSZXNwb25zZSYgcmVzcG9uc2UsIGNvbnN0IFN0cmluZyYgZXJyb3JN
ZXNzYWdlKQoreworICAgIHJldHVybiBSZXNvdXJjZUVycm9yKGVycm9yRG9tYWluRG93bmxvYWQs
IERvd25sb2FkRXJyb3JEZXN0aW5hdGlvbiwgcmVzcG9uc2UudXJsKCksIGVycm9yTWVzc2FnZSk7
Cit9CisKK1Jlc291cmNlRXJyb3IgcHJpbnRFcnJvcihjb25zdCBVUkwmIGZhaWxpbmdVUkwsIGNv
bnN0IFN0cmluZyYgZXJyb3JNZXNzYWdlKQoreworICAgIHJldHVybiBSZXNvdXJjZUVycm9yKGVy
cm9yRG9tYWluUHJpbnQsIFByaW50RXJyb3JHZW5lcmFsLCBmYWlsaW5nVVJMLCBlcnJvck1lc3Nh
Z2UpOworfQorCitSZXNvdXJjZUVycm9yIHByaW50ZXJOb3RGb3VuZEVycm9yKGNvbnN0IFVSTCYg
ZmFpbGluZ1VSTCkKK3sKKyAgICByZXR1cm4gUmVzb3VyY2VFcnJvcihlcnJvckRvbWFpblByaW50
LCBQcmludEVycm9yUHJpbnRlck5vdEZvdW5kLCBmYWlsaW5nVVJMLCBFUlJPUl9TVFJJTkcoIlBy
aW50ZXIgbm90IGZvdW5kIikpOworfQorCitSZXNvdXJjZUVycm9yIGludmFsaWRQYWdlUmFuZ2VU
b1ByaW50KGNvbnN0IFVSTCYgZmFpbGluZ1VSTCkKK3sKKyAgICByZXR1cm4gUmVzb3VyY2VFcnJv
cihlcnJvckRvbWFpblByaW50LCBQcmludEVycm9ySW52YWxpZFBhZ2VSYW5nZSwgZmFpbGluZ1VS
TCwgRVJST1JfU1RSSU5HKCJJbnZhbGlkIHBhZ2UgcmFuZ2UiKSk7Cit9CisKK1Jlc291cmNlRXJy
b3IgaW50ZXJuYWxFcnJvcihjb25zdCBVUkwmIHVybCkKK3sKKyAgICByZXR1cm4gUmVzb3VyY2VF
cnJvcih3ZWJLaXRFcnJvckRvbWFpbigpLCBQb2xpY3lFcnJvckludGVybmFsLCB1cmwsIEVSUk9S
X1NUUklORygiSW50ZXJuYWwgZXJyb3IiKSk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3VuaXgvRXJyb3JzVW5peC5oIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdW5peC9FcnJvcnNVbml4LmgKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNDFm
MjVlNTFjYTUwYjJjZjNjYWIzODAzOThhNjkxMzY4NWYzYWJmYgotLS0gL2Rldi9udWxsCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3VuaXgvRXJyb3JzVW5peC5oCkBAIC0wLDAgKzEsODcg
QEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTEsIDIwMTYgSWdhbGlhIFMuTC4KKyAqCisgKiBU
aGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5k
L29yCisgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5l
cmFsIFB1YmxpYworICogTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUg
Rm91bmRhdGlvbjsgZWl0aGVyCisgKiB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5
b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisgKgorICogVGhpcyBsaWJyYXJ5IGlzIGRp
c3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgKiBidXQgV0lU
SE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgor
ICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAg
U2VlIHRoZSBHTlUKKyAqIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBk
ZXRhaWxzLgorICoKKyAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdO
VSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyAqIGFsb25nIHdpdGggdGhpcyBsaWJy
YXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIuICBJZiBub3QsIHdyaXRlIHRvCisgKiB0aGUg
RnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRo
IEZsb29yLAorICogQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0EuCisgKi8KKworI2lmbmRlZiBF
cnJvcnNVbml4X2gKKyNkZWZpbmUgRXJyb3JzVW5peF9oCisKKyNpbmNsdWRlIDx3dGYvdGV4dC9X
VEZTdHJpbmcuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBSZXNvdXJjZUVycm9y
OworY2xhc3MgUmVzb3VyY2VSZXF1ZXN0OworY2xhc3MgUmVzb3VyY2VSZXNwb25zZTsKK2NsYXNz
IFVSTDsKKworY29uc3QgY2hhciogY29uc3QgZXJyb3JEb21haW5OZXR3b3JrID0gIldlYktpdE5l
dHdvcmtFcnJvciI7Citjb25zdCBjaGFyKiBjb25zdCBlcnJvckRvbWFpblBvbGljeSA9ICJXZWJL
aXRQb2xpY3lFcnJvciI7Citjb25zdCBjaGFyKiBjb25zdCBlcnJvckRvbWFpblBsdWdpbiA9ICJX
ZWJLaXRQbHVnaW5FcnJvciI7Citjb25zdCBjaGFyKiBjb25zdCBlcnJvckRvbWFpbkRvd25sb2Fk
ID0gIldlYktpdERvd25sb2FkRXJyb3IiOworY29uc3QgY2hhciogY29uc3QgZXJyb3JEb21haW5Q
cmludCA9ICJXZWJLaXRQcmludEVycm9yIjsKKworZW51bSBOZXR3b3JrRXJyb3IgeworICAgIE5l
dHdvcmtFcnJvckZhaWxlZCA9IDM5OSwKKyAgICBOZXR3b3JrRXJyb3JVbmtub3duUHJvdG9jb2wg
PSAzMDEsCisgICAgTmV0d29ya0Vycm9yQ2FuY2VsbGVkID0gMzAyLAorICAgIE5ldHdvcmtFcnJv
ckZpbGVEb2VzTm90RXhpc3QgPSAzMDMsCisgICAgTmV0d29ya0Vycm9yVHJhbnNwb3J0ID0gMzA0
LAorfTsKKworLy8gU3luYydkIHdpdGggTWFjJ3MgV2ViS2l0IEVycm9ycy4KK2VudW0gUG9saWN5
RXJyb3IgeworICAgIFBvbGljeUVycm9ySW50ZXJuYWwgPSAzMDAsCisgICAgUG9saWN5RXJyb3JG
YWlsZWQgPSAxOTksCisgICAgUG9saWN5RXJyb3JDYW5ub3RTaG93TWltZVR5cGUgPSAxMDAsCisg
ICAgUG9saWN5RXJyb3JDYW5ub3RTaG93VVJMID0gMTAxLAorICAgIFBvbGljeUVycm9yRnJhbWVM
b2FkSW50ZXJydXB0ZWRCeVBvbGljeUNoYW5nZSA9IDEwMiwKKyAgICBQb2xpY3lFcnJvckNhbm5v
dFVzZVJlc3RyaWN0ZWRQb3J0ID0gMTAzLAorICAgIFBvbGljeUVycm9yQmxvY2tlZEJ5Q29udGVu
dEJsb2NrZXIgPSAxMDQsCit9OworCitlbnVtIFBsdWdpbkVycm9yIHsKKyAgICBQbHVnaW5FcnJv
ckZhaWxlZCA9IDI5OSwKKyAgICBQbHVnaW5FcnJvckNhbm5vdEZpbmRQbHVnaW4gPSAyMDAsCisg
ICAgUGx1Z2luRXJyb3JDYW5ub3RMb2FkUGx1Z2luID0gMjAxLAorICAgIFBsdWdpbkVycm9ySmF2
YVVuYXZhaWxhYmxlID0gMjAyLAorICAgIFBsdWdpbkVycm9yQ29ubmVjdGlvbkNhbmNlbGxlZCA9
IDIwMywKKyAgICBQbHVnaW5FcnJvcldpbGxIYW5kbGVMb2FkID0gMjA0Cit9OworCitlbnVtIERv
d25sb2FkRXJyb3IgeworICAgIERvd25sb2FkRXJyb3JOZXR3b3JrID0gNDk5LAorICAgIERvd25s
b2FkRXJyb3JDYW5jZWxsZWRCeVVzZXIgPSA0MDAsCisgICAgRG93bmxvYWRFcnJvckRlc3RpbmF0
aW9uID0gNDAxCit9OworCitlbnVtIFByaW50RXJyb3IgeworICAgIFByaW50RXJyb3JHZW5lcmFs
ID0gNTk5LAorICAgIFByaW50RXJyb3JQcmludGVyTm90Rm91bmQgPSA1MDAsCisgICAgUHJpbnRF
cnJvckludmFsaWRQYWdlUmFuZ2UgPSA1MDEKK307CisKK1Jlc291cmNlRXJyb3IgZG93bmxvYWRO
ZXR3b3JrRXJyb3IoY29uc3QgUmVzb3VyY2VFcnJvciYpOworUmVzb3VyY2VFcnJvciBkb3dubG9h
ZENhbmNlbGxlZEJ5VXNlckVycm9yKGNvbnN0IFJlc291cmNlUmVzcG9uc2UmKTsKK1Jlc291cmNl
RXJyb3IgZG93bmxvYWREZXN0aW5hdGlvbkVycm9yKGNvbnN0IFJlc291cmNlUmVzcG9uc2UmLCBj
b25zdCBTdHJpbmcmIGVycm9yTWVzc2FnZSk7CitSZXNvdXJjZUVycm9yIHByaW50RXJyb3IoY29u
c3QgVVJMJiBmYWlsaW5nVVJMLCBjb25zdCBTdHJpbmcmIGVycm9yTWVzc2FnZSk7CitSZXNvdXJj
ZUVycm9yIHByaW50ZXJOb3RGb3VuZEVycm9yKGNvbnN0IFVSTCYgZmFpbGluZ1VSTCk7CitSZXNv
dXJjZUVycm9yIGludmFsaWRQYWdlUmFuZ2VUb1ByaW50KGNvbnN0IFVSTCYgZmFpbGluZ1VSTCk7
CisKK30KKworI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS93aW4v
RXJyb3JzV2luLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3dpbi9FcnJvcnNXaW4uY3Bw
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLjUyZDQzMTEzYjA3ZmQ4NjQ5YWM3YTQzNDdhNGY3ODk1OTBiOTlmMDEKLS0t
IC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS93aW4vRXJyb3JzV2luLmNw
cApAQCAtMCwwICsxLDk0IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDA2LTIwMTYgQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
CisgKiBhcmUgbWV0OgorICoKKyAqIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuICBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICogMy4gIE5laXRo
ZXIgdGhlIG5hbWUgb2YgQXBwbGUgSW5jLiAoIkFwcGxlIikgbm9yIHRoZSBuYW1lcyBvZgorICog
ICAgIGl0cyBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHBy
b2R1Y3RzIGRlcml2ZWQKKyAqICAgICBmcm9tIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZp
YyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9W
SURFRCBCWSBBUFBMRSBBTkQgSVRTIENPTlRSSUJVVE9SUyAiQVMgSVMiIEFORCBBTlkKKyAqIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgVEhFIElNUExJRUQKKyAqIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKKyAqIERJU0NMQUlNRUQuIElOIE5PIEVW
RU5UIFNIQUxMIEFQUExFIE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkKKyAq
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09O
U0VRVUVOVElBTCBEQU1BR0VTCisgKiAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBS
T0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7CisgKiBMT1NTIE9GIFVT
RSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENB
VVNFRCBBTkQKKyAqIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YKKyAqIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIkVycm9ycy5oIgor
CisjaW5jbHVkZSAiTG9jYWxpemVkU3RyaW5ncy5oIgorI2luY2x1ZGUgIlJlc291cmNlRXJyb3Iu
aCIKKyNpbmNsdWRlICJSZXNvdXJjZVJlcXVlc3QuaCIKKyNpbmNsdWRlICJSZXNvdXJjZVJlc3Bv
bnNlLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworLy8gVGhlIGVudW1lcmF0aW9uIGFuZCBk
ZWZpbml0aW9ucyBjb21lIGZyb20gSVdlYkVycm9yLmlkbCBhbmQKKy8vIElXZWJFcnJvclByaXZh
dGUuaWRsLgorCitlbnVtIHsKKyAgICBXZWJLaXRFcnJvckNhbm5vdFNob3dNSU1FVHlwZSA9ICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAxMDAsCisgICAgV2ViS2l0RXJyb3JDYW5ub3RTaG93
VVJMID0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMTAxLAorICAgIFdlYktpdEVy
cm9yRnJhbWVMb2FkSW50ZXJydXB0ZWRCeVBvbGljeUNoYW5nZSA9ICAgICAgICAgICAgIDEwMiwK
KyAgICBXZWJLaXRFcnJvckNhbm5vdFVzZVJlc3RyaWN0ZWRQb3J0ID0gICAgICAgICAgICAgICAg
ICAgICAgICAxMDMsCisgICAgV2ViS2l0RXJyb3JQbHVnSW5XaWxsSGFuZGxlTG9hZCA9ICAgICAg
ICAgICAgICAgICAgICAgICAgICAgMjA0LAorfTsKKworI2RlZmluZSBXZWJVUkxFcnJvckRvbWFp
biAiQ0ZVUkxFcnJvckRvbWFpbiIKKworUmVzb3VyY2VFcnJvciBjYW5jZWxsZWRFcnJvcihjb25z
dCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QpCit7CisgICAgLy8gRklYTUU6IE5lZWQgQ2hpY2tl
bkNhdCB0byBpbmNsdWRlIENGTmV0d29yay9DRlVSTEVycm9yLmggdG8gZ2V0IHRoZXNlIHZhbHVl
cworICAgIC8vIEFsdGVybmF0aXZlbHksIHdlIGNvdWxkIGNyZWF0ZSBvdXIgb3duIGVycm9yIGRv
bWFpbi9jb2Rlcy4KKyAgICByZXR1cm4gUmVzb3VyY2VFcnJvcihTdHJpbmcoV2ViVVJMRXJyb3JE
b21haW4pLCAtOTk5LCByZXF1ZXN0LnVybCgpLCBTdHJpbmcoIkNhbmNlbGxlZCIpKTsKK30KKwor
UmVzb3VyY2VFcnJvciBibG9ja2VkRXJyb3IoY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0
KQoreworICAgIHJldHVybiBSZXNvdXJjZUVycm9yKHdlYktpdEVycm9yRG9tYWluKCksIFdlYktp
dEVycm9yQ2Fubm90VXNlUmVzdHJpY3RlZFBvcnQsIHJlcXVlc3QudXJsKCksIFdFQl9VSV9TVFJJ
TkcoIk5vdCBhbGxvd2VkIHRvIHVzZSByZXN0cmljdGVkIG5ldHdvcmsgcG9ydCIsICJXZWJLaXRF
cnJvckNhbm5vdFVzZVJlc3RyaWN0ZWRQb3J0IGRlc2NyaXB0aW9uIikpOworfQorCitSZXNvdXJj
ZUVycm9yIGJsb2NrZWRCeUNvbnRlbnRCbG9ja2VyRXJyb3IoY29uc3QgUmVzb3VyY2VSZXF1ZXN0
JiByZXF1ZXN0KQoreworICAgIFJFTEVBU0VfQVNTRVJUX05PVF9SRUFDSEVEKCk7IC8vIENvbnRl
bnQgQmxvY2tlcnMgYXJlIG5vdCBlbmFibGVkIGZvciBXSzEuCit9CisKK1Jlc291cmNlRXJyb3Ig
Y2Fubm90U2hvd1VSTEVycm9yKGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCkKK3sKKyAg
ICByZXR1cm4gUmVzb3VyY2VFcnJvcih3ZWJLaXRFcnJvckRvbWFpbigpLCBXZWJLaXRFcnJvckNh
bm5vdFNob3dVUkwsIHJlcXVlc3QudXJsKCksIFdFQl9VSV9TVFJJTkcoIlRoZSBVUkwgY2FuXHhF
Mlx4ODBceDk5dCBiZSBzaG93biIsICJXZWJLaXRFcnJvckNhbm5vdFNob3dVUkwgZGVzY3JpcHRp
b24iKSk7Cit9CisKK1Jlc291cmNlRXJyb3IgaW50ZXJydXB0ZWRGb3JQb2xpY3lDaGFuZ2VFcnJv
cihjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QpCit7CisgICAgcmV0dXJuIFJlc291cmNl
RXJyb3Iod2ViS2l0RXJyb3JEb21haW4oKSwgV2ViS2l0RXJyb3JGcmFtZUxvYWRJbnRlcnJ1cHRl
ZEJ5UG9saWN5Q2hhbmdlLCByZXF1ZXN0LnVybCgpLCBXRUJfVUlfU1RSSU5HKCJGcmFtZSBsb2Fk
IGludGVycnVwdGVkIiwgIldlYktpdEVycm9yRnJhbWVMb2FkSW50ZXJydXB0ZWRCeVBvbGljeUNo
YW5nZSBkZXNjcmlwdGlvbiIpKTsKK30KKworUmVzb3VyY2VFcnJvciBjYW5ub3RTaG93TUlNRVR5
cGVFcnJvcihjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiByZXNwb25zZSkKK3sKKyAgICByZXR1cm4g
UmVzb3VyY2VFcnJvcihTdHJpbmcoKSwgV2ViS2l0RXJyb3JDYW5ub3RTaG93TUlNRVR5cGUsIHJl
c3BvbnNlLnVybCgpLCBXRUJfVUlfU1RSSU5HKCJDb250ZW50IHdpdGggc3BlY2lmaWVkIE1JTUUg
dHlwZSBjYW5ceEUyXHg4MFx4OTl0IGJlIHNob3duIiwgIldlYktpdEVycm9yQ2Fubm90U2hvd01J
TUVUeXBlIGRlc2NyaXB0aW9uIikpOworfQorCitSZXNvdXJjZUVycm9yIGZpbGVEb2VzTm90RXhp
c3RFcnJvcihjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiByZXNwb25zZSkKK3sKKyAgICByZXR1cm4g
UmVzb3VyY2VFcnJvcihTdHJpbmcoV2ViVVJMRXJyb3JEb21haW4pLCAtMTEwMCwgcmVzcG9uc2Uu
dXJsKCksIFN0cmluZygiRmlsZSBkb2VzIG5vdCBleGlzdC4iKSk7Cit9CisKK1Jlc291cmNlRXJy
b3IgcGx1Z2luV2lsbEhhbmRsZUxvYWRFcnJvcihjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiByZXNw
b25zZSkKK3sKKyAgICByZXR1cm4gUmVzb3VyY2VFcnJvcih3ZWJLaXRFcnJvckRvbWFpbigpLCBX
ZWJLaXRFcnJvclBsdWdJbldpbGxIYW5kbGVMb2FkLCByZXNwb25zZS51cmwoKSwgV0VCX1VJX1NU
UklORygiUGx1Zy1pbiBoYW5kbGVkIGxvYWQiLCAiV2ViS2l0RXJyb3JQbHVnSW5XaWxsSGFuZGxl
TG9hZCBkZXNjcmlwdGlvbiIpKTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGll
bnQuaCBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xp
ZW50LmgKaW5kZXggMjY3OWQ3YzlkZjhkZjhlM2UzYTZhMWU1MzcwOGVhMWM4NzIxZjg3Mi4uZGY4
ZDk3OThjY2M1OTIxMWRhOTI1ZjYxZjc2ODE5MTIzZmY3MmI4OCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuaAorKysgYi9T
b3VyY2UvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5oCkBA
IC0xNTcsMTkgKzE1Nyw2IEBAIHByaXZhdGU6CiAgICAgdm9pZCBkaWRSdW5JbnNlY3VyZUNvbnRl
bnQoV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW4qLCBjb25zdCBXZWJDb3JlOjpVUkwmKSBvdmVycmlk
ZTsKICAgICB2b2lkIGRpZERldGVjdFhTUyhjb25zdCBXZWJDb3JlOjpVUkwmLCBib29sIGRpZEJs
b2NrRW50aXJlUGFnZSkgb3ZlcnJpZGU7CiAKLSAgICBXZWJDb3JlOjpSZXNvdXJjZUVycm9yIGNh
bmNlbGxlZEVycm9yKGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYpIG92ZXJyaWRlOwot
ICAgIFdlYkNvcmU6OlJlc291cmNlRXJyb3IgYmxvY2tlZEVycm9yKGNvbnN0IFdlYkNvcmU6OlJl
c291cmNlUmVxdWVzdCYpIG92ZXJyaWRlOwotICAgIFdlYkNvcmU6OlJlc291cmNlRXJyb3IgYmxv
Y2tlZEJ5Q29udGVudEJsb2NrZXJFcnJvcihjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3Qm
KSBvdmVycmlkZTsKLSAgICBXZWJDb3JlOjpSZXNvdXJjZUVycm9yIGNhbm5vdFNob3dVUkxFcnJv
cihjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmKSBvdmVycmlkZTsKLSAgICBXZWJDb3Jl
OjpSZXNvdXJjZUVycm9yIGludGVycnVwdGVkRm9yUG9saWN5Q2hhbmdlRXJyb3IoY29uc3QgV2Vi
Q29yZTo6UmVzb3VyY2VSZXF1ZXN0Jikgb3ZlcnJpZGU7Ci0jaWYgRU5BQkxFKENPTlRFTlRfRklM
VEVSSU5HKQotICAgIFdlYkNvcmU6OlJlc291cmNlRXJyb3IgYmxvY2tlZEJ5Q29udGVudEZpbHRl
ckVycm9yKGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYpIG92ZXJyaWRlOwotI2VuZGlm
Ci0KLSAgICBXZWJDb3JlOjpSZXNvdXJjZUVycm9yIGNhbm5vdFNob3dNSU1FVHlwZUVycm9yKGNv
bnN0IFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UmKSBvdmVycmlkZTsKLSAgICBXZWJDb3JlOjpS
ZXNvdXJjZUVycm9yIGZpbGVEb2VzTm90RXhpc3RFcnJvcihjb25zdCBXZWJDb3JlOjpSZXNvdXJj
ZVJlc3BvbnNlJikgb3ZlcnJpZGU7Ci0gICAgV2ViQ29yZTo6UmVzb3VyY2VFcnJvciBwbHVnaW5X
aWxsSGFuZGxlTG9hZEVycm9yKGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UmKSBvdmVy
cmlkZTsKLQogICAgIGJvb2wgc2hvdWxkRmFsbEJhY2soY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VF
cnJvciYpIG92ZXJyaWRlOwogCiAgICAgV1RGOjpTdHJpbmcgdXNlckFnZW50KGNvbnN0IFdlYkNv
cmU6OlVSTCYpIG92ZXJyaWRlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9tYWMvV2ViQ29y
ZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQubW0gYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJD
b3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5tbQppbmRleCBlY2YyZjUwMTU2YWQyZGZl
MTViNGY0YWQyMWRmYzk3ZjAzYWYyNmNkLi43MTllZDA2ZTI3NjI1ZWU5MWQxZmUzOGIwNjJjODA5
YjEzOTQ2Y2VmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9X
ZWJGcmFtZUxvYWRlckNsaWVudC5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJDb3JlU3Vw
cG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5tbQpAQCAtMTEyMyw1OCArMTEyMyw2IEBAIHZvaWQg
V2ViRnJhbWVMb2FkZXJDbGllbnQ6OmRpZERldGVjdFhTUyhjb25zdCBVUkwmIGluc2VjdXJlVVJM
LCBib29sIGRpZEJsb2NrRW50CiAgICAgfQogfQogCi1SZXNvdXJjZUVycm9yIFdlYkZyYW1lTG9h
ZGVyQ2xpZW50OjpjYW5jZWxsZWRFcnJvcihjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3Qp
Ci17Ci0gICAgcmV0dXJuIFtOU0Vycm9yIF93ZWJLaXRFcnJvcldpdGhEb21haW46TlNVUkxFcnJv
ckRvbWFpbiBjb2RlOk5TVVJMRXJyb3JDYW5jZWxsZWQgVVJMOnJlcXVlc3QudXJsKCldOwotfQot
ICAgIAotUmVzb3VyY2VFcnJvciBXZWJGcmFtZUxvYWRlckNsaWVudDo6YmxvY2tlZEVycm9yKGNv
bnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCkKLXsKLSAgICByZXR1cm4gW05TRXJyb3IgX3dl
YktpdEVycm9yV2l0aERvbWFpbjpXZWJLaXRFcnJvckRvbWFpbiBjb2RlOldlYktpdEVycm9yQ2Fu
bm90VXNlUmVzdHJpY3RlZFBvcnQgVVJMOnJlcXVlc3QudXJsKCldOwotfQotCi1SZXNvdXJjZUVy
cm9yIFdlYkZyYW1lTG9hZGVyQ2xpZW50OjpibG9ja2VkQnlDb250ZW50QmxvY2tlckVycm9yKGNv
bnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCkKLXsKLSAgICBSRUxFQVNFX0FTU0VSVF9OT1Rf
UkVBQ0hFRCgpOyAvLyBDb250ZW50IGJsb2NrZXJzIGFyZSBub3QgZW5hYmxlZCBpbiBXZWJLaXQx
LgotfQotCi1SZXNvdXJjZUVycm9yIFdlYkZyYW1lTG9hZGVyQ2xpZW50OjpjYW5ub3RTaG93VVJM
RXJyb3IoY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0KQotewotICAgIHJldHVybiBbTlNF
cnJvciBfd2ViS2l0RXJyb3JXaXRoRG9tYWluOldlYktpdEVycm9yRG9tYWluIGNvZGU6V2ViS2l0
RXJyb3JDYW5ub3RTaG93VVJMIFVSTDpyZXF1ZXN0LnVybCgpXTsKLX0KLQotUmVzb3VyY2VFcnJv
ciBXZWJGcmFtZUxvYWRlckNsaWVudDo6aW50ZXJydXB0ZWRGb3JQb2xpY3lDaGFuZ2VFcnJvcihj
b25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QpCi17Ci0gICAgcmV0dXJuIFtOU0Vycm9yIF93
ZWJLaXRFcnJvcldpdGhEb21haW46V2ViS2l0RXJyb3JEb21haW4gY29kZTpXZWJLaXRFcnJvckZy
YW1lTG9hZEludGVycnVwdGVkQnlQb2xpY3lDaGFuZ2UgVVJMOnJlcXVlc3QudXJsKCldOwotfQot
Ci0jaWYgRU5BQkxFKENPTlRFTlRfRklMVEVSSU5HKQotUmVzb3VyY2VFcnJvciBXZWJGcmFtZUxv
YWRlckNsaWVudDo6YmxvY2tlZEJ5Q29udGVudEZpbHRlckVycm9yKGNvbnN0IFJlc291cmNlUmVx
dWVzdCYgcmVxdWVzdCkKLXsKLSAgICByZXR1cm4gW05TRXJyb3IgX3dlYktpdEVycm9yV2l0aERv
bWFpbjpXZWJLaXRFcnJvckRvbWFpbiBjb2RlOldlYktpdEVycm9yRnJhbWVMb2FkQmxvY2tlZEJ5
Q29udGVudEZpbHRlciBVUkw6cmVxdWVzdC51cmwoKV07Ci19Ci0jZW5kaWYKLQotUmVzb3VyY2VF
cnJvciBXZWJGcmFtZUxvYWRlckNsaWVudDo6Y2Fubm90U2hvd01JTUVUeXBlRXJyb3IoY29uc3Qg
UmVzb3VyY2VSZXNwb25zZSYgcmVzcG9uc2UpCi17Ci0gICAgcmV0dXJuIFtOU0Vycm9yIF93ZWJL
aXRFcnJvcldpdGhEb21haW46TlNVUkxFcnJvckRvbWFpbiBjb2RlOldlYktpdEVycm9yQ2Fubm90
U2hvd01JTUVUeXBlIFVSTDpyZXNwb25zZS51cmwoKV07Ci19Ci0KLVJlc291cmNlRXJyb3IgV2Vi
RnJhbWVMb2FkZXJDbGllbnQ6OmZpbGVEb2VzTm90RXhpc3RFcnJvcihjb25zdCBSZXNvdXJjZVJl
c3BvbnNlJiByZXNwb25zZSkKLXsKLSAgICByZXR1cm4gW05TRXJyb3IgX3dlYktpdEVycm9yV2l0
aERvbWFpbjpOU1VSTEVycm9yRG9tYWluIGNvZGU6TlNVUkxFcnJvckZpbGVEb2VzTm90RXhpc3Qg
VVJMOnJlc3BvbnNlLnVybCgpXTsgICAgCi19Ci0KLVJlc291cmNlRXJyb3IgV2ViRnJhbWVMb2Fk
ZXJDbGllbnQ6OnBsdWdpbldpbGxIYW5kbGVMb2FkRXJyb3IoY29uc3QgUmVzb3VyY2VSZXNwb25z
ZSYgcmVzcG9uc2UpCi17Ci0gICAgTlNFcnJvciAqZXJyb3IgPSBbW05TRXJyb3IgYWxsb2NdIF9p
bml0V2l0aFBsdWdpbkVycm9yQ29kZTpXZWJLaXRFcnJvclBsdWdJbldpbGxIYW5kbGVMb2FkCi0g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29udGVu
dFVSTDpyZXNwb25zZS51cmwoKQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIHBsdWdpblBhZ2VVUkw6bmlsCi0gICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgcGx1Z2luTmFtZTpuaWwKLSAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE1JTUVUeXBlOnJlc3BvbnNl
Lm1pbWVUeXBlKCldOwotICAgIHJldHVybiBbZXJyb3IgYXV0b3JlbGVhc2VdOwotfQotCiBib29s
IFdlYkZyYW1lTG9hZGVyQ2xpZW50OjpzaG91bGRGYWxsQmFjayhjb25zdCBSZXNvdXJjZUVycm9y
JiBlcnJvcikKIHsKICAgICAvLyBGSVhNRTogTmVlZHMgdG8gY2hlY2sgZG9tYWluLgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVOZXR3b3JraW5n
Q29udGV4dC5tbSBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTmV0
d29ya2luZ0NvbnRleHQubW0KaW5kZXggOTNlNzRiYmU2Mjg0YjYzYzIzMjEyOWQxNzQ4ZTBkOTE2
MmQxYTE5Yy4uMTc5MzYzN2Y5MmJkZDBmZTdiZDkzOTQ4NzQ5MDhkYzcyNDBjMWYyMiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVOZXR3b3JraW5n
Q29udGV4dC5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFt
ZU5ldHdvcmtpbmdDb250ZXh0Lm1tCkBAIC0yOCw2ICsyOCw3IEBACiAjaW1wb3J0ICJXZWJGcmFt
ZUludGVybmFsLmgiCiAjaW1wb3J0ICJXZWJWaWV3UHJpdmF0ZS5oIgogI2ltcG9ydCA8V2ViQ29y
ZS9DRk5ldHdvcmtTUEkuaD4KKyNpbXBvcnQgPFdlYkNvcmUvRXJyb3JzLmg+CiAjaW1wb3J0IDxX
ZWJDb3JlL0ZyYW1lTG9hZGVyLmg+CiAjaW1wb3J0IDxXZWJDb3JlL0ZyYW1lTG9hZGVyQ2xpZW50
Lmg+CiAjaW1wb3J0IDxXZWJDb3JlL05ldHdvcmtTdG9yYWdlU2Vzc2lvbi5oPgpAQCAtOTEsNyAr
OTIsNyBAQCBTdHJpbmcgV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dDo6c291cmNlQXBwbGljYXRp
b25JZGVudGlmaWVyKCkgY29uc3QKIAogUmVzb3VyY2VFcnJvciBXZWJGcmFtZU5ldHdvcmtpbmdD
b250ZXh0OjpibG9ja2VkRXJyb3IoY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0KSBjb25z
dAogewotICAgIHJldHVybiBmcmFtZSgpLT5sb2FkZXIoKS5jbGllbnQoKS5ibG9ja2VkRXJyb3Io
cmVxdWVzdCk7CisgICAgcmV0dXJuIFdlYkNvcmU6OmJsb2NrZWRFcnJvcihyZXF1ZXN0KTsKIH0K
IAogTmV0d29ya1N0b3JhZ2VTZXNzaW9uJiBXZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0OjpzdG9y
YWdlU2Vzc2lvbigpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3
L1dlYkhUTUxSZXByZXNlbnRhdGlvbi5tbSBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2Vi
SFRNTFJlcHJlc2VudGF0aW9uLm1tCmluZGV4IDE5OGVkNWYyMzg0ZDc4ZjM4YTAwNjA2ODA4MTZk
ZGU2ZmRjZGFmNmUuLjNmZDdiNTQ3OTgyNmY0MzlhZjExMDBlNTNjZWU5MTM5ZGMwMWVlMDQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViSFRNTFJlcHJlc2VudGF0aW9u
Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViSFRNTFJlcHJlc2VudGF0aW9u
Lm1tCkBAIC00NSw2ICs0NSw3IEBACiAjaW1wb3J0IDxXZWJDb3JlL0RvY3VtZW50Lmg+CiAjaW1w
b3J0IDxXZWJDb3JlL0RvY3VtZW50TG9hZGVyLmg+CiAjaW1wb3J0IDxXZWJDb3JlL0VkaXRvci5o
PgorI2ltcG9ydCA8V2ViQ29yZS9FcnJvcnMuaD4KICNpbXBvcnQgPFdlYkNvcmUvRnJhbWUuaD4K
ICNpbXBvcnQgPFdlYkNvcmUvRnJhbWVMb2FkZXIuaD4KICNpbXBvcnQgPFdlYkNvcmUvRnJhbWVM
b2FkZXJDbGllbnQuaD4KQEAgLTE4MCw3ICsxODEsNyBAQCBzdGF0aWMgUmV0YWluUHRyPE5TQXJy
YXk+IG5ld0FycmF5V2l0aFN0cmluZ3MoY29uc3QgSGFzaFNldDxTdHJpbmcsIEFTQ0lJQ2FzZUlu
cwogICAgIC8vIElmIHRoZSBkb2N1bWVudCBpcyBhIHN0YW5kLWFsb25lIG1lZGlhIGRvY3VtZW50
LCBub3cgaXMgdGhlIHJpZ2h0IHRpbWUgdG8gY2FuY2VsIHRoZSBXZWJLaXQgbG9hZAogICAgIEZy
YW1lKiBjb3JlRnJhbWUgPSBjb3JlKHdlYkZyYW1lKTsKICAgICBpZiAoY29yZUZyYW1lLT5kb2N1
bWVudCgpLT5pc01lZGlhRG9jdW1lbnQoKSkKLSAgICAgICAgY29yZUZyYW1lLT5sb2FkZXIoKS5k
b2N1bWVudExvYWRlcigpLT5jYW5jZWxNYWluUmVzb3VyY2VMb2FkKGNvcmVGcmFtZS0+bG9hZGVy
KCkuY2xpZW50KCkucGx1Z2luV2lsbEhhbmRsZUxvYWRFcnJvcihjb3JlRnJhbWUtPmxvYWRlcigp
LmRvY3VtZW50TG9hZGVyKCktPnJlc3BvbnNlKCkpKTsKKyAgICAgICAgY29yZUZyYW1lLT5sb2Fk
ZXIoKS5kb2N1bWVudExvYWRlcigpLT5jYW5jZWxNYWluUmVzb3VyY2VMb2FkKFdlYkNvcmU6OnBs
dWdpbldpbGxIYW5kbGVMb2FkRXJyb3IoY29yZUZyYW1lLT5sb2FkZXIoKS5kb2N1bWVudExvYWRl
cigpLT5yZXNwb25zZSgpKSk7CiAKICAgICBpZiAoX3ByaXZhdGUtPnBsdWdpblZpZXcpIHsKICAg
ICAgICAgaWYgKCFfcHJpdmF0ZS0+aGFzU2VudFJlc3BvbnNlVG9QbHVnaW4pIHsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvd2luL1BsdWdpbnMvUGx1Z2luU3RyZWFtLmNwcCBiL1NvdXJjZS9X
ZWJLaXQvd2luL1BsdWdpbnMvUGx1Z2luU3RyZWFtLmNwcAppbmRleCAyZWYzOTU1YmU2MWE4ZDA1
NDI0YWQxMzk5NjJkZDBkN2ZhNmFlNDQ0Li5iZTdkZGMwMjI5YTllZTIwZWIzNmM5MTA2ZDIyMzQ0
MGJhZjU2Njg1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L3dpbi9QbHVnaW5zL1BsdWdpblN0
cmVhbS5jcHAKKysrIGIvU291cmNlL1dlYktpdC93aW4vUGx1Z2lucy9QbHVnaW5TdHJlYW0uY3Bw
CkBAIC0zNSw2ICszNSw3IEBACiAjaW5jbHVkZSAiU2hhcmVkQnVmZmVyLmgiCiAjaW5jbHVkZSAi
U3VicmVzb3VyY2VMb2FkZXIuaCIKICNpbmNsdWRlICJXZWJSZXNvdXJjZUxvYWRTY2hlZHVsZXIu
aCIKKyNpbmNsdWRlIDxXZWJDb3JlL0Vycm9ycy5oPgogI2luY2x1ZGUgPHd0Zi9TdHJpbmdFeHRy
YXMuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9DU3RyaW5nLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQv
U3RyaW5nQnVpbGRlci5oPgpAQCAtMTExLDcgKzExMiw3IEBAIHZvaWQgUGx1Z2luU3RyZWFtOjpz
dG9wKCkKICAgICAgICAgQVNTRVJUKGRvY3VtZW50TG9hZGVyKTsKIAogICAgICAgICBpZiAoZG9j
dW1lbnRMb2FkZXItPmlzTG9hZGluZ01haW5SZXNvdXJjZSgpKQotICAgICAgICAgICAgZG9jdW1l
bnRMb2FkZXItPmNhbmNlbE1haW5SZXNvdXJjZUxvYWQobV9mcmFtZS0+bG9hZGVyKCkuY2FuY2Vs
bGVkRXJyb3IobV9yZXNvdXJjZVJlcXVlc3QpKTsKKyAgICAgICAgICAgIGRvY3VtZW50TG9hZGVy
LT5jYW5jZWxNYWluUmVzb3VyY2VMb2FkKFdlYkNvcmU6OmNhbmNlbGxlZEVycm9yKG1fcmVzb3Vy
Y2VSZXF1ZXN0KSk7CiAKICAgICAgICAgcmV0dXJuOwogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvd2luL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmNwcCBiL1Nv
dXJjZS9XZWJLaXQvd2luL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmNwcApp
bmRleCBjNmUzMzQ0MDRjZmVhYTAzZTJiZmExNWY2ZTQxMGIyMTk3ZDYxZTY2Li5iYjIyNDI3OTRi
YzVkYzUxYTVlMjhmODY2Mzk0OGE2ZjEwZTliOGMyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5jcHAKKysrIGIvU291cmNl
L1dlYktpdC93aW4vV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuY3BwCkBAIC02
Miw2ICs2Miw3IEBACiAjaW5jbHVkZSA8V2ViQ29yZS9DYWNoZWRGcmFtZS5oPgogI2luY2x1ZGUg
PFdlYkNvcmUvRE5TLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9Eb2N1bWVudExvYWRlci5oPgorI2lu
Y2x1ZGUgPFdlYkNvcmUvRXJyb3JzLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9Gb3JtU3RhdGUuaD4K
ICNpbmNsdWRlIDxXZWJDb3JlL0ZyYW1lLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9GcmFtZUxvYWRl
ci5oPgpAQCAtODE5LDQ4ICs4MjAsNiBAQCB2b2lkIFdlYkZyYW1lTG9hZGVyQ2xpZW50OjpkaWRE
ZXRlY3RYU1MoY29uc3QgVVJMJiwgYm9vbCkKICAgICAvLyBGSVhNRTogcHJvcG9nYXRlIGNhbGwg
aW50byB0aGUgcHJpdmF0ZSBkZWxlZ2F0ZS4KIH0KIAotUmVzb3VyY2VFcnJvciBXZWJGcmFtZUxv
YWRlckNsaWVudDo6Y2FuY2VsbGVkRXJyb3IoY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0
KQotewotICAgIC8vIEZJWE1FOiBOZWVkIENoaWNrZW5DYXQgdG8gaW5jbHVkZSBDRk5ldHdvcmsv
Q0ZVUkxFcnJvci5oIHRvIGdldCB0aGVzZSB2YWx1ZXMKLSAgICAvLyBBbHRlcm5hdGl2ZWx5LCB3
ZSBjb3VsZCBjcmVhdGUgb3VyIG93biBlcnJvciBkb21haW4vY29kZXMuCi0gICAgcmV0dXJuIFJl
c291cmNlRXJyb3IoU3RyaW5nKFdlYlVSTEVycm9yRG9tYWluKSwgLTk5OSwgcmVxdWVzdC51cmwo
KSwgU3RyaW5nKCJDYW5jZWxsZWQiKSk7Ci19Ci0KLVJlc291cmNlRXJyb3IgV2ViRnJhbWVMb2Fk
ZXJDbGllbnQ6OmJsb2NrZWRFcnJvcihjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QpCi17
Ci0gICAgcmV0dXJuIFJlc291cmNlRXJyb3IoU3RyaW5nKFdlYktpdEVycm9yRG9tYWluKSwgV2Vi
S2l0RXJyb3JDYW5ub3RVc2VSZXN0cmljdGVkUG9ydCwgcmVxdWVzdC51cmwoKSwgV0VCX1VJX1NU
UklORygiTm90IGFsbG93ZWQgdG8gdXNlIHJlc3RyaWN0ZWQgbmV0d29yayBwb3J0IiwgIldlYktp
dEVycm9yQ2Fubm90VXNlUmVzdHJpY3RlZFBvcnQgZGVzY3JpcHRpb24iKSk7Ci19Ci0KLVJlc291
cmNlRXJyb3IgV2ViRnJhbWVMb2FkZXJDbGllbnQ6OmJsb2NrZWRCeUNvbnRlbnRCbG9ja2VyRXJy
b3IoY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0KQotewotICAgIFJFTEVBU0VfQVNTRVJU
X05PVF9SRUFDSEVEKCk7IC8vIENvbnRlbnQgQmxvY2tlcnMgYXJlIG5vdCBlbmFibGVkIGZvciBX
SzEuCi19Ci0KLVJlc291cmNlRXJyb3IgV2ViRnJhbWVMb2FkZXJDbGllbnQ6OmNhbm5vdFNob3dV
UkxFcnJvcihjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QpCi17Ci0gICAgcmV0dXJuIFJl
c291cmNlRXJyb3IoU3RyaW5nKFdlYktpdEVycm9yRG9tYWluKSwgV2ViS2l0RXJyb3JDYW5ub3RT
aG93VVJMLCByZXF1ZXN0LnVybCgpLCBXRUJfVUlfU1RSSU5HKCJUaGUgVVJMIGNhblx4RTJceDgw
XHg5OXQgYmUgc2hvd24iLCAiV2ViS2l0RXJyb3JDYW5ub3RTaG93VVJMIGRlc2NyaXB0aW9uIikp
OwotfQotCi1SZXNvdXJjZUVycm9yIFdlYkZyYW1lTG9hZGVyQ2xpZW50OjppbnRlcnJ1cHRlZEZv
clBvbGljeUNoYW5nZUVycm9yKGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCkKLXsKLSAg
ICByZXR1cm4gUmVzb3VyY2VFcnJvcihTdHJpbmcoV2ViS2l0RXJyb3JEb21haW4pLCBXZWJLaXRF
cnJvckZyYW1lTG9hZEludGVycnVwdGVkQnlQb2xpY3lDaGFuZ2UsIHJlcXVlc3QudXJsKCksIFdF
Ql9VSV9TVFJJTkcoIkZyYW1lIGxvYWQgaW50ZXJydXB0ZWQiLCAiV2ViS2l0RXJyb3JGcmFtZUxv
YWRJbnRlcnJ1cHRlZEJ5UG9saWN5Q2hhbmdlIGRlc2NyaXB0aW9uIikpOwotfQotCi1SZXNvdXJj
ZUVycm9yIFdlYkZyYW1lTG9hZGVyQ2xpZW50OjpjYW5ub3RTaG93TUlNRVR5cGVFcnJvcihjb25z
dCBSZXNvdXJjZVJlc3BvbnNlJiByZXNwb25zZSkKLXsKLSAgICByZXR1cm4gUmVzb3VyY2VFcnJv
cihTdHJpbmcoKSwgV2ViS2l0RXJyb3JDYW5ub3RTaG93TUlNRVR5cGUsIHJlc3BvbnNlLnVybCgp
LCBXRUJfVUlfU1RSSU5HKCJDb250ZW50IHdpdGggc3BlY2lmaWVkIE1JTUUgdHlwZSBjYW5ceEUy
XHg4MFx4OTl0IGJlIHNob3duIiwgIldlYktpdEVycm9yQ2Fubm90U2hvd01JTUVUeXBlIGRlc2Ny
aXB0aW9uIikpOwotfQotCi1SZXNvdXJjZUVycm9yIFdlYkZyYW1lTG9hZGVyQ2xpZW50OjpmaWxl
RG9lc05vdEV4aXN0RXJyb3IoY29uc3QgUmVzb3VyY2VSZXNwb25zZSYgcmVzcG9uc2UpCi17Ci0g
ICAgcmV0dXJuIFJlc291cmNlRXJyb3IoU3RyaW5nKFdlYlVSTEVycm9yRG9tYWluKSwgLTExMDAs
IHJlc3BvbnNlLnVybCgpLCBTdHJpbmcoIkZpbGUgZG9lcyBub3QgZXhpc3QuIikpOwotfQotCi1S
ZXNvdXJjZUVycm9yIFdlYkZyYW1lTG9hZGVyQ2xpZW50OjpwbHVnaW5XaWxsSGFuZGxlTG9hZEVy
cm9yKGNvbnN0IFJlc291cmNlUmVzcG9uc2UmIHJlc3BvbnNlKQotewotICAgIHJldHVybiBSZXNv
dXJjZUVycm9yKFN0cmluZyhXZWJLaXRFcnJvckRvbWFpbiksIFdlYktpdEVycm9yUGx1Z0luV2ls
bEhhbmRsZUxvYWQsIHJlc3BvbnNlLnVybCgpLCBXRUJfVUlfU1RSSU5HKCJQbHVnLWluIGhhbmRs
ZWQgbG9hZCIsICJXZWJLaXRFcnJvclBsdWdJbldpbGxIYW5kbGVMb2FkIGRlc2NyaXB0aW9uIikp
OwotfQotCiBib29sIFdlYkZyYW1lTG9hZGVyQ2xpZW50OjpzaG91bGRGYWxsQmFjayhjb25zdCBS
ZXNvdXJjZUVycm9yJiBlcnJvcikKIHsKICAgICBpZiAoZXJyb3IuZXJyb3JDb2RlKCkgPT0gV2Vi
VVJMRXJyb3JDYW5jZWxsZWQgJiYgZXJyb3IuZG9tYWluKCkgPT0gU3RyaW5nKFdlYlVSTEVycm9y
RG9tYWluKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvd2luL1dlYkNvcmVTdXBwb3J0L1dl
YkZyYW1lTG9hZGVyQ2xpZW50LmggYi9Tb3VyY2UvV2ViS2l0L3dpbi9XZWJDb3JlU3VwcG9ydC9X
ZWJGcmFtZUxvYWRlckNsaWVudC5oCmluZGV4IDBlYWFlNWM1ZTFiODFhNTU1MzU4YWI2YjMwNjkw
YTJiZWQwYjk3NTEuLmFkNTE2YTA0MzdkM2E3MjQ2NGEyYjYxZTI2OGU1YTA2MmJmM2YzY2MgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvd2luL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVy
Q2xpZW50LmgKKysrIGIvU291cmNlL1dlYktpdC93aW4vV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVM
b2FkZXJDbGllbnQuaApAQCAtMTM2LDE1ICsxMzYsNiBAQCBwdWJsaWM6CiAgICAgdm9pZCBkaWRS
dW5JbnNlY3VyZUNvbnRlbnQoV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW4qLCBjb25zdCBXZWJDb3Jl
OjpVUkwmKSBvdmVycmlkZTsKICAgICB2b2lkIGRpZERldGVjdFhTUyhjb25zdCBXZWJDb3JlOjpV
UkwmLCBib29sIGRpZEJsb2NrRW50aXJlUGFnZSkgb3ZlcnJpZGU7CiAKLSAgICBXZWJDb3JlOjpS
ZXNvdXJjZUVycm9yIGNhbmNlbGxlZEVycm9yKGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVz
dCYpIG92ZXJyaWRlOwotICAgIFdlYkNvcmU6OlJlc291cmNlRXJyb3IgYmxvY2tlZEVycm9yKGNv
bnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYpIG92ZXJyaWRlOwotICAgIFdlYkNvcmU6OlJl
c291cmNlRXJyb3IgYmxvY2tlZEJ5Q29udGVudEJsb2NrZXJFcnJvcihjb25zdCBXZWJDb3JlOjpS
ZXNvdXJjZVJlcXVlc3QmKSBvdmVycmlkZTsKLSAgICBXZWJDb3JlOjpSZXNvdXJjZUVycm9yIGNh
bm5vdFNob3dVUkxFcnJvcihjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmKSBvdmVycmlk
ZTsKLSAgICBXZWJDb3JlOjpSZXNvdXJjZUVycm9yIGludGVycnVwdGVkRm9yUG9saWN5Q2hhbmdl
RXJyb3IoY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0Jikgb3ZlcnJpZGU7Ci0gICAgV2Vi
Q29yZTo6UmVzb3VyY2VFcnJvciBjYW5ub3RTaG93TUlNRVR5cGVFcnJvcihjb25zdCBXZWJDb3Jl
OjpSZXNvdXJjZVJlc3BvbnNlJikgb3ZlcnJpZGU7Ci0gICAgV2ViQ29yZTo6UmVzb3VyY2VFcnJv
ciBmaWxlRG9lc05vdEV4aXN0RXJyb3IoY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSYp
IG92ZXJyaWRlOwotICAgIFdlYkNvcmU6OlJlc291cmNlRXJyb3IgcGx1Z2luV2lsbEhhbmRsZUxv
YWRFcnJvcihjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlJikgb3ZlcnJpZGU7Ci0KICAg
ICBib29sIHNob3VsZEZhbGxCYWNrKGNvbnN0IFdlYkNvcmU6OlJlc291cmNlRXJyb3ImKSBvdmVy
cmlkZTsKIAogICAgIFdURjo6U3RyaW5nIHVzZXJBZ2VudChjb25zdCBXZWJDb3JlOjpVUkwmKSBv
dmVycmlkZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvd2luL1dlYkNvcmVTdXBwb3J0L1dl
YkZyYW1lTmV0d29ya2luZ0NvbnRleHQuY3BwIGIvU291cmNlL1dlYktpdC93aW4vV2ViQ29yZVN1
cHBvcnQvV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dC5jcHAKaW5kZXggOThmYWZkOTg2MTM5YzI0
MzRiNzhkNmU2NWYzODQ1YWIyZjkwZjYzMy4uMmQ0YjBkYzEwZDQxZDk5MmJkYjlmOTgwYzVlNjZl
NjUwMmQ4MmI1OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC93aW4vV2ViQ29yZVN1cHBvcnQv
V2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dC5jcHAKKysrIGIvU291cmNlL1dlYktpdC93aW4vV2Vi
Q29yZVN1cHBvcnQvV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dC5jcHAKQEAgLTI2LDYgKzI2LDcg
QEAKICNpbmNsdWRlICJXZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0LmgiCiAKICNpbmNsdWRlICJX
ZWJWaWV3LmgiCisjaW5jbHVkZSA8V2ViQ29yZS9FcnJvcnMuaD4KICNpbmNsdWRlIDxXZWJDb3Jl
L0ZyYW1lTG9hZGVyLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9GcmFtZUxvYWRlckNsaWVudC5oPgog
I2luY2x1ZGUgPFdlYkNvcmUvTmV0d29ya1N0b3JhZ2VTZXNzaW9uLmg+CkBAIC05Niw3ICs5Nyw3
IEBAIHZvaWQgV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dDo6ZGVzdHJveVByaXZhdGVCcm93c2lu
Z1Nlc3Npb24oKQogCiBSZXNvdXJjZUVycm9yIFdlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQ6OmJs
b2NrZWRFcnJvcihjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QpIGNvbnN0CiB7Ci0gICAg
cmV0dXJuIGZyYW1lKCktPmxvYWRlcigpLmNsaWVudCgpLmJsb2NrZWRFcnJvcihyZXF1ZXN0KTsK
KyAgICByZXR1cm4gV2ViQ29yZTo6YmxvY2tlZEVycm9yKHJlcXVlc3QpOwogfQogCiBOZXR3b3Jr
U3RvcmFnZVNlc3Npb24mIFdlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQ6OnN0b3JhZ2VTZXNzaW9u
KCkgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL0Rvd25s
b2Fkcy9lZmwvRG93bmxvYWRTb3VwRXJyb3JzRWZsLmNwcCBiL1NvdXJjZS9XZWJLaXQyL05ldHdv
cmtQcm9jZXNzL0Rvd25sb2Fkcy9lZmwvRG93bmxvYWRTb3VwRXJyb3JzRWZsLmNwcApkZWxldGVk
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYWMwMGQ1MWIzNzEzODkyMWU3NzZiMWFjNThhMGQ0NTU1
MTZiMDg2YS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9T
b3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9Eb3dubG9hZHMvZWZsL0Rvd25sb2FkU291cEVy
cm9yc0VmbC5jcHAKKysrIC9kZXYvbnVsbApAQCAtMSw0NiArMCwwIEBACi0vKgotICogQ29weXJp
Z2h0IChDKSAyMDEyIEludGVsIENvcnBvcmF0aW9uLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoK
LSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmli
dXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0
aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQg
SVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKLSAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogVEhFIElNUExJ
RUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUg
SU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCi0gKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCi0gKiBDT05TRVFVRU5U
SUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBP
RgotICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9S
IFBST0ZJVFM7IE9SIEJVU0lORVNTCi0gKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFO
RCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgotICogQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkKLSAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YKLSAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4K
LSAqLwotCi0jaW5jbHVkZSAiY29uZmlnLmgiCi0jaW5jbHVkZSAiRG93bmxvYWRTb3VwRXJyb3Jz
LmgiCi0KLSNpbmNsdWRlIDxXZWJDb3JlL0Vycm9yc0VmbC5oPgotI2luY2x1ZGUgPFdlYkNvcmUv
UmVzb3VyY2VFcnJvci5oPgotCi11c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKLQotbmFtZXNwYWNl
IFdlYktpdCB7Ci0KLVJlc291cmNlRXJyb3IgcGxhdGZvcm1Eb3dubG9hZE5ldHdvcmtFcnJvcihp
bnQgZXJyb3JDb2RlLCBjb25zdCBVUkwmIGZhaWxpbmdVUkwsIGNvbnN0IFN0cmluZyYgbG9jYWxp
emVkRGVzY3JpcHRpb24pCi17Ci0gICAgcmV0dXJuIGRvd25sb2FkTmV0d29ya0Vycm9yKFJlc291
cmNlRXJyb3IoZXJyb3JEb21haW5Eb3dubG9hZCwgZXJyb3JDb2RlLCBmYWlsaW5nVVJMLCBsb2Nh
bGl6ZWREZXNjcmlwdGlvbikpOwotfQotCi1SZXNvdXJjZUVycm9yIHBsYXRmb3JtRG93bmxvYWRE
ZXN0aW5hdGlvbkVycm9yKGNvbnN0IFJlc291cmNlUmVzcG9uc2UmIHJlc3BvbnNlLCBjb25zdCBT
dHJpbmcmIG1lc3NhZ2UpCi17Ci0gICAgcmV0dXJuIGRvd25sb2FkRGVzdGluYXRpb25FcnJvcihy
ZXNwb25zZSwgbWVzc2FnZSk7Ci19Ci0KLX0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvRG93bmxvYWRzL2d0ay9Eb3dubG9hZFNv
dXBFcnJvcnNHdGsuY3BwIGIvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvRG93bmxvYWRz
L2d0ay9Eb3dubG9hZFNvdXBFcnJvcnNHdGsuY3BwCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCBiYTJlN2I0NTZhNDE1ZjE3ZDU5NjUzMDAxYmJkZmFjMGJlMjgwMzQyLi4wMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJLaXQyL05ldHdv
cmtQcm9jZXNzL0Rvd25sb2Fkcy9ndGsvRG93bmxvYWRTb3VwRXJyb3JzR3RrLmNwcAorKysgL2Rl
di9udWxsCkBAIC0xLDQ2ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTIgSW50ZWwg
Q29ycG9yYXRpb24uIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNv
ZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVk
aXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5
cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVy
IG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBT
T0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBg
QVMgSVMnJwotICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1F
UkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFS
RSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklC
VVRPUlMKLSAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUws
IFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKLSAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCi0gKiBTVUJTVElUVVRFIEdP
T0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5F
U1MKLSAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0Yg
TElBQklMSVRZLCBXSEVUSEVSIElOCi0gKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1Ig
VE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQotICogQVJJU0lORyBJTiBB
TlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBP
RgotICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNpbmNsdWRlICJj
b25maWcuaCIKLSNpbmNsdWRlICJEb3dubG9hZFNvdXBFcnJvcnMuaCIKLQotI2luY2x1ZGUgPFdl
YkNvcmUvRXJyb3JzR3RrLmg+Ci0jaW5jbHVkZSA8V2ViQ29yZS9SZXNvdXJjZUVycm9yLmg+Ci0K
LXVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwotCi1uYW1lc3BhY2UgV2ViS2l0IHsKLQotUmVzb3Vy
Y2VFcnJvciBwbGF0Zm9ybURvd25sb2FkTmV0d29ya0Vycm9yKGludCBlcnJvckNvZGUsIGNvbnN0
IFVSTCYgZmFpbGluZ1VSTCwgY29uc3QgU3RyaW5nJiBsb2NhbGl6ZWREZXNjcmlwdGlvbikKLXsK
LSAgICByZXR1cm4gZG93bmxvYWROZXR3b3JrRXJyb3IoUmVzb3VyY2VFcnJvcihlcnJvckRvbWFp
bkRvd25sb2FkLCBlcnJvckNvZGUsIGZhaWxpbmdVUkwsIGxvY2FsaXplZERlc2NyaXB0aW9uKSk7
Ci19Ci0KLVJlc291cmNlRXJyb3IgcGxhdGZvcm1Eb3dubG9hZERlc3RpbmF0aW9uRXJyb3IoY29u
c3QgUmVzb3VyY2VSZXNwb25zZSYgcmVzcG9uc2UsIGNvbnN0IFN0cmluZyYgbWVzc2FnZSkKLXsK
LSAgICByZXR1cm4gZG93bmxvYWREZXN0aW5hdGlvbkVycm9yKHJlc3BvbnNlLCBtZXNzYWdlKTsK
LX0KLQotfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9O
ZXR3b3JrUHJvY2Vzcy9Eb3dubG9hZHMvc291cC9Eb3dubG9hZFNvdXBFcnJvcnMuY3BwIGIvU291
cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvRG93bmxvYWRzL3NvdXAvRG93bmxvYWRTb3VwRXJy
b3JzLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi5hZTVhZjkyZDMzMTIyZTE0YTkxYjc5MzgzN2QzOGMxNmExM2Yx
YzIzCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvRG93
bmxvYWRzL3NvdXAvRG93bmxvYWRTb3VwRXJyb3JzLmNwcApAQCAtMCwwICsxLDQ3IEBACisvKgor
ICogQ29weXJpZ2h0IChDKSAyMDEyIEludGVsIENvcnBvcmF0aW9uLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4g
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBt
dXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAg
ICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUg
ZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUg
SU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBP
UiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICog
VEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hB
TEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBE
SVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBD
T05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9D
VVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0Us
IERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIg
Q0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09O
VFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiRG93bmxvYWRT
b3VwRXJyb3JzLmgiCisKKyNpbmNsdWRlIDxXZWJDb3JlL0Vycm9ycy5oPgorI2luY2x1ZGUgPFdl
YkNvcmUvRXJyb3JzVW5peC5oPgorI2luY2x1ZGUgPFdlYkNvcmUvUmVzb3VyY2VFcnJvci5oPgor
Cit1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKKworbmFtZXNwYWNlIFdlYktpdCB7CisKK1Jlc291
cmNlRXJyb3IgcGxhdGZvcm1Eb3dubG9hZE5ldHdvcmtFcnJvcihpbnQgZXJyb3JDb2RlLCBjb25z
dCBVUkwmIGZhaWxpbmdVUkwsIGNvbnN0IFN0cmluZyYgbG9jYWxpemVkRGVzY3JpcHRpb24pCit7
CisgICAgcmV0dXJuIGRvd25sb2FkTmV0d29ya0Vycm9yKFJlc291cmNlRXJyb3IoZXJyb3JEb21h
aW5Eb3dubG9hZCwgZXJyb3JDb2RlLCBmYWlsaW5nVVJMLCBsb2NhbGl6ZWREZXNjcmlwdGlvbikp
OworfQorCitSZXNvdXJjZUVycm9yIHBsYXRmb3JtRG93bmxvYWREZXN0aW5hdGlvbkVycm9yKGNv
bnN0IFJlc291cmNlUmVzcG9uc2UmIHJlc3BvbnNlLCBjb25zdCBTdHJpbmcmIG1lc3NhZ2UpCit7
CisgICAgcmV0dXJuIGRvd25sb2FkRGVzdGluYXRpb25FcnJvcihyZXNwb25zZSwgbWVzc2FnZSk7
Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIv
TmV0d29ya1Byb2Nlc3MvTmV0d29ya0xvYWQuY3BwIGIvU291cmNlL1dlYktpdDIvTmV0d29ya1By
b2Nlc3MvTmV0d29ya0xvYWQuY3BwCmluZGV4IDI4NzIzZTY5YjljYWI1OThiMzZkOTVjYTg1ODk3
NDM5NGI4NDg1MmQuLjkzYmVlYjAwNWNlOWNiZDQyY2JiNmE5NDg5MGU2NjRmMjc0YzBiNTQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL05ldHdvcmtMb2FkLmNwcAor
KysgYi9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrTG9hZC5jcHAKQEAgLTMw
LDcgKzMwLDcgQEAKICNpbmNsdWRlICJBdXRoZW50aWNhdGlvbk1hbmFnZXIuaCIKICNpbmNsdWRl
ICJOZXR3b3JrUHJvY2Vzcy5oIgogI2luY2x1ZGUgIlNlc3Npb25UcmFja2VyLmgiCi0jaW5jbHVk
ZSAiV2ViRXJyb3JzLmgiCisjaW5jbHVkZSA8V2ViQ29yZS9FcnJvcnMuaD4KICNpbmNsdWRlIDxX
ZWJDb3JlL05vdEltcGxlbWVudGVkLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9SZXNvdXJjZUhhbmRs
ZS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvU2Vzc2lvbklELmg+CkBAIC00MDEsMTQgKzQwMSwxNCBA
QCB2b2lkIE5ldHdvcmtMb2FkOjp3YXNCbG9ja2VkKFJlc291cmNlSGFuZGxlKiBoYW5kbGUpCiB7
CiAgICAgQVNTRVJUX1VOVVNFRChoYW5kbGUsIGhhbmRsZSA9PSBtX2hhbmRsZSk7CiAKLSAgICBk
aWRGYWlsKGhhbmRsZSwgV2ViS2l0OjpibG9ja2VkRXJyb3IobV9jdXJyZW50UmVxdWVzdCkpOwor
ICAgIGRpZEZhaWwoaGFuZGxlLCBibG9ja2VkRXJyb3IobV9jdXJyZW50UmVxdWVzdCkpOwogfQog
CiB2b2lkIE5ldHdvcmtMb2FkOjpjYW5ub3RTaG93VVJMKFJlc291cmNlSGFuZGxlKiBoYW5kbGUp
CiB7CiAgICAgQVNTRVJUX1VOVVNFRChoYW5kbGUsIGhhbmRsZSA9PSBtX2hhbmRsZSk7CiAKLSAg
ICBkaWRGYWlsKGhhbmRsZSwgV2ViS2l0OjpjYW5ub3RTaG93VVJMRXJyb3IobV9jdXJyZW50UmVx
dWVzdCkpOworICAgIGRpZEZhaWwoaGFuZGxlLCBjYW5ub3RTaG93VVJMRXJyb3IobV9jdXJyZW50
UmVxdWVzdCkpOwogfQogCiBib29sIE5ldHdvcmtMb2FkOjpzaG91bGRVc2VDcmVkZW50aWFsU3Rv
cmFnZShSZXNvdXJjZUhhbmRsZSogaGFuZGxlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIv
TmV0d29ya1Byb2Nlc3MvbWFjL1JlbW90ZU5ldHdvcmtpbmdDb250ZXh0Lm1tIGIvU291cmNlL1dl
YktpdDIvTmV0d29ya1Byb2Nlc3MvbWFjL1JlbW90ZU5ldHdvcmtpbmdDb250ZXh0Lm1tCmluZGV4
IDk2M2RjNjhlNmE5MzdhNzlhZDdiZWQ1N2M5ZjQ0NmI4ZjM3YzMyYTUuLjc2YjgyNjQ3MDQ5NmM0
ZGNiY2Q0Zjk2ZTY2ZDIwOGNmNzM1NzMyZjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL05l
dHdvcmtQcm9jZXNzL21hYy9SZW1vdGVOZXR3b3JraW5nQ29udGV4dC5tbQorKysgYi9Tb3VyY2Uv
V2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9tYWMvUmVtb3RlTmV0d29ya2luZ0NvbnRleHQubW0KQEAg
LTc3LDcgKzc3LDcgQEAgU3RyaW5nIFJlbW90ZU5ldHdvcmtpbmdDb250ZXh0Ojpzb3VyY2VBcHBs
aWNhdGlvbklkZW50aWZpZXIoKSBjb25zdAogCiBSZXNvdXJjZUVycm9yIFJlbW90ZU5ldHdvcmtp
bmdDb250ZXh0OjpibG9ja2VkRXJyb3IoY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0KSBj
b25zdAogewotICAgIHJldHVybiBXZWJLaXQ6OmJsb2NrZWRFcnJvcihyZXF1ZXN0KTsKKyAgICBy
ZXR1cm4gV2ViQ29yZTo6YmxvY2tlZEVycm9yKHJlcXVlc3QpOwogfQogCiB2b2lkIFJlbW90ZU5l
dHdvcmtpbmdDb250ZXh0OjplbnN1cmVQcml2YXRlQnJvd3NpbmdTZXNzaW9uKFNlc3Npb25JRCBz
ZXNzaW9uSUQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybUVmbC5jbWFrZSBi
L1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtRWZsLmNtYWtlCmluZGV4IGZhYTdiYjM0MzY3MWUyNjMx
M2ZkN2E4NmZlYWIwOGM4NzU0MmQ3ZGIuLjFkMWIzNjhmYzZlNGFjN2M1MDZjMjU3MjJiNjgzOGVl
YTdjNDdhYzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtRWZsLmNtYWtlCisr
KyBiL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtRWZsLmNtYWtlCkBAIC00LDggKzQsNyBAQCBsaXN0
KEFQUEVORCBXZWJLaXQyX1NPVVJDRVMKICAgICBOZXR3b3JrUHJvY2Vzcy9DdXN0b21Qcm90b2Nv
bHMvc291cC9DdXN0b21Qcm90b2NvbE1hbmFnZXJJbXBsLmNwcAogICAgIE5ldHdvcmtQcm9jZXNz
L0N1c3RvbVByb3RvY29scy9zb3VwL0N1c3RvbVByb3RvY29sTWFuYWdlclNvdXAuY3BwCiAKLSAg
ICBOZXR3b3JrUHJvY2Vzcy9Eb3dubG9hZHMvZWZsL0Rvd25sb2FkU291cEVycm9yc0VmbC5jcHAK
LQorICAgIE5ldHdvcmtQcm9jZXNzL0Rvd25sb2Fkcy9zb3VwL0Rvd25sb2FkU291cEVycm9ycy5j
cHAKICAgICBOZXR3b3JrUHJvY2Vzcy9Eb3dubG9hZHMvc291cC9Eb3dubG9hZFNvdXAuY3BwCiAK
ICAgICBOZXR3b3JrUHJvY2Vzcy9lZmwvTmV0d29ya1Byb2Nlc3NNYWluRWZsLmNwcApAQCAtMTkz
LDcgKzE5Miw2IEBAIGxpc3QoQVBQRU5EIFdlYktpdDJfU09VUkNFUwogCiAgICAgV2ViUHJvY2Vz
cy9XZWJDb3JlU3VwcG9ydC9lZmwvV2ViQ29udGV4dE1lbnVDbGllbnRFZmwuY3BwCiAgICAgV2Vi
UHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9lZmwvV2ViRWRpdG9yQ2xpZW50RWZsLmNwcAotICAgIFdl
YlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvZWZsL1dlYkVycm9yc0VmbC5jcHAKICAgICBXZWJQcm9j
ZXNzL1dlYkNvcmVTdXBwb3J0L2VmbC9XZWJQb3B1cE1lbnVFZmwuY3BwCiAKICAgICBXZWJQcm9j
ZXNzL1dlYkNvcmVTdXBwb3J0L3NvdXAvV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dC5jcHAKQEAg
LTIzNiw2ICsyMzQsNyBAQCBsaXN0KEFQUEVORCBXZWJLaXQyX0lOQ0xVREVfRElSRUNUT1JJRVMK
ICAgICAiJHtXRUJDT1JFX0RJUn0vcGxhdGZvcm0vZ3JhcGhpY3MveDExIgogICAgICIke1dFQkNP
UkVfRElSfS9wbGF0Zm9ybS9uZXR3b3JrL3NvdXAiCiAgICAgIiR7V0VCQ09SRV9ESVJ9L3BsYXRm
b3JtL3RleHQvZW5jaGFudCIKKyAgICAiJHtXRUJDT1JFX0RJUn0vcGxhdGZvcm0vdW5peCIKICAg
ICAiJHtXRUJLSVQyX0RJUn0vRGF0YWJhc2VQcm9jZXNzL3VuaXgiCiAgICAgIiR7V0VCS0lUMl9E
SVJ9L05ldHdvcmtQcm9jZXNzL0N1c3RvbVByb3RvY29scy9zb3VwIgogICAgICIke1dFQktJVDJf
RElSfS9OZXR3b3JrUHJvY2Vzcy9Eb3dubG9hZHMvc291cCIKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQyL1BsYXRmb3JtR1RLLmNtYWtlIGIvU291cmNlL1dlYktpdDIvUGxhdGZvcm1HVEsuY21h
a2UKaW5kZXggNzg4OTY2NDhjYzQzZWE3NGJkYTkyODZlOGY4YTI1OWNkNGFhY2NiMi4uMGY4ZDUx
ZGZlN2Q4MTA5MmQ0ZTM5ZWYxMDExY2IwOTljNTc5ODA5ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdDIvUGxhdGZvcm1HVEsuY21ha2UKKysrIGIvU291cmNlL1dlYktpdDIvUGxhdGZvcm1HVEsu
Y21ha2UKQEAgLTMwLDkgKzMwLDggQEAgbGlzdChBUFBFTkQgV2ViS2l0Ml9TT1VSQ0VTCiAgICAg
TmV0d29ya1Byb2Nlc3MvQ3VzdG9tUHJvdG9jb2xzL3NvdXAvQ3VzdG9tUHJvdG9jb2xNYW5hZ2Vy
SW1wbC5jcHAKICAgICBOZXR3b3JrUHJvY2Vzcy9DdXN0b21Qcm90b2NvbHMvc291cC9DdXN0b21Q
cm90b2NvbE1hbmFnZXJTb3VwLmNwcAogCi0gICAgTmV0d29ya1Byb2Nlc3MvRG93bmxvYWRzL2d0
ay9Eb3dubG9hZFNvdXBFcnJvcnNHdGsuY3BwCi0KICAgICBOZXR3b3JrUHJvY2Vzcy9Eb3dubG9h
ZHMvc291cC9Eb3dubG9hZFNvdXAuY3BwCisgICAgTmV0d29ya1Byb2Nlc3MvRG93bmxvYWRzL3Nv
dXAvRG93bmxvYWRTb3VwRXJyb3JzLmNwcAogCiAgICAgTmV0d29ya1Byb2Nlc3MvY2FjaGUvTmV0
d29ya0NhY2hlQ29kZXJzU291cC5jcHAKICAgICBOZXR3b3JrUHJvY2Vzcy9jYWNoZS9OZXR3b3Jr
Q2FjaGVEYXRhU291cC5jcHAKQEAgLTMzOCw3ICszMzcsNiBAQCBsaXN0KEFQUEVORCBXZWJLaXQy
X1NPVVJDRVMKICAgICBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L2d0ay9XZWJDb250ZXh0TWVu
dUNsaWVudEd0ay5jcHAKICAgICBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L2d0ay9XZWJEcmFn
Q2xpZW50R3RrLmNwcAogICAgIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvZ3RrL1dlYkVkaXRv
ckNsaWVudEd0ay5jcHAKLSAgICBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L2d0ay9XZWJFcnJv
cnNHdGsuY3BwCiAgICAgV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9ndGsvV2ViUG9wdXBNZW51
R3RrLmNwcAogCiAgICAgV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9zb3VwL1dlYkZyYW1lTmV0
d29ya2luZ0NvbnRleHQuY3BwCkBAIC00OTYsNiArNDk0LDcgQEAgbGlzdChBUFBFTkQgV2ViS2l0
Ml9JTkNMVURFX0RJUkVDVE9SSUVTCiAgICAgIiR7V0VCQ09SRV9ESVJ9L3BsYXRmb3JtL2dyYXBo
aWNzL3gxMSIKICAgICAiJHtXRUJDT1JFX0RJUn0vcGxhdGZvcm0vbmV0d29yay9zb3VwIgogICAg
ICIke1dFQkNPUkVfRElSfS9wbGF0Zm9ybS90ZXh0L2VuY2hhbnQiCisgICAgIiR7V0VCQ09SRV9E
SVJ9L3BsYXRmb3JtL3VuaXgiCiAgICAgIiR7V0VCS0lUMl9ESVJ9L0RhdGFiYXNlUHJvY2Vzcy91
bml4IgogICAgICIke1dFQktJVDJfRElSfS9OZXR3b3JrUHJvY2Vzcy9DdXN0b21Qcm90b2NvbHMv
c291cCIKICAgICAiJHtXRUJLSVQyX0RJUn0vTmV0d29ya1Byb2Nlc3MvRG93bmxvYWRzL3NvdXAi
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybU1hYy5jbWFrZSBiL1NvdXJjZS9X
ZWJLaXQyL1BsYXRmb3JtTWFjLmNtYWtlCmluZGV4IDJhMTNlMTQ5OGRlYWFkMTg3ZDdhYmI2N2Q0
MzZkNGM0OWNjODEyMmMuLjFhMmMyYzQ2N2Q1ZmIwOWIyNTBmNWNmZjQwMDFhZjU5NzIwN2JlNjQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtTWFjLmNtYWtlCisrKyBiL1NvdXJj
ZS9XZWJLaXQyL1BsYXRmb3JtTWFjLmNtYWtlCkBAIC0zMjgsNyArMzI4LDYgQEAgbGlzdChBUFBF
TkQgV2ViS2l0Ml9TT1VSQ0VTCiAgICAgV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9tYWMvV2Vi
Q29udGV4dE1lbnVDbGllbnRNYWMubW0KICAgICBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L21h
Yy9XZWJEcmFnQ2xpZW50TWFjLm1tCiAgICAgV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9tYWMv
V2ViRWRpdG9yQ2xpZW50TWFjLm1tCi0gICAgV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9tYWMv
V2ViRXJyb3JzTWFjLm1tCiAgICAgV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9tYWMvV2ViRnJh
bWVOZXR3b3JraW5nQ29udGV4dC5tbQogICAgIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvbWFj
L1dlYlBvcHVwTWVudU1hYy5tbQogICAgIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvbWFjL1dl
YlN5c3RlbUludGVyZmFjZS5tbQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL0FQ
SS9BUElFcnJvci5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQVBJL0FQSUVycm9yLmNwcApp
bmRleCA4NmExZGIwYjAzNzRkMzZmNGEzZTkxMzE0ZDU5MDg4MzZlNWJkYTJhLi45YjliNjc1ZmI3
MjQ5NjljOTUxZTBmNTJmYTY5ZmE4MzVmNGZjZjliIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9TaGFyZWQvQVBJL0FQSUVycm9yLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQVBJ
L0FQSUVycm9yLmNwcApAQCAtMjcsNiArMjcsNyBAQAogI2luY2x1ZGUgIkFQSUVycm9yLmgiCiAK
ICNpbmNsdWRlICJXZWJDb3JlQXJndW1lbnRDb2RlcnMuaCIKKyNpbmNsdWRlIDxXZWJDb3JlL0Vy
cm9ycy5oPgogI2luY2x1ZGUgPHd0Zi9OZXZlckRlc3Ryb3llZC5oPgogI2luY2x1ZGUgPHd0Zi90
ZXh0L1dURlN0cmluZy5oPgogCkBAIC0zNCw4ICszNSw3IEBAIG5hbWVzcGFjZSBBUEkgewogCiBj
b25zdCBXVEY6OlN0cmluZyYgRXJyb3I6OndlYktpdEVycm9yRG9tYWluKCkKIHsKLSAgICBzdGF0
aWMgTmV2ZXJEZXN0cm95ZWQ8V1RGOjpTdHJpbmc+IHdlYktpdEVycm9yRG9tYWluU3RyaW5nKEFT
Q0lJTGl0ZXJhbCgiV2ViS2l0RXJyb3JEb21haW4iKSk7Ci0gICAgcmV0dXJuIHdlYktpdEVycm9y
RG9tYWluU3RyaW5nOworICAgIHJldHVybiBXZWJDb3JlOjp3ZWJLaXRFcnJvckRvbWFpbigpOwog
fQogCiB2b2lkIEVycm9yOjplbmNvZGUoSVBDOjpBcmd1bWVudEVuY29kZXImIGVuY29kZXIpIGNv
bnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfZXJy
b3IuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX2Vycm9yLmNwcApp
bmRleCBkMDAxYzU1Nzk5MjdhYzA5ODgxMDk3ZTFjOTYwNTllN2I0MmIxOWY4Li4wNDFmM2YyMGY5
ZmVjNTc3NjY1MjA3YmE1OTYxNzkyYWM3YmQyOTUxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfZXJyb3IuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9BUEkvZWZsL2V3a19lcnJvci5jcHAKQEAgLTI2LDcgKzI2LDcgQEAKICNpbmNsdWRl
ICJjb25maWcuaCIKICNpbmNsdWRlICJld2tfZXJyb3IuaCIKIAotI2luY2x1ZGUgIkVycm9yc0Vm
bC5oIgorI2luY2x1ZGUgIkVycm9yc1VuaXguaCIKICNpbmNsdWRlICJXS0Vycm9yUmVmLmgiCiAj
aW5jbHVkZSAiV0tTdHJpbmcuaCIKICNpbmNsdWRlICJXS1VSTC5oIgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0RG93bmxvYWQuY3BwIGIvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0RG93bmxvYWQuY3BwCmluZGV4IDg2YzA1
YjJmMjk3YTA1YjkxYmVmNjgxYjQxYWVkZTAxNWUzMzU4MzUuLmE5ZTM1NmJlN2Q0ZDY1NDk5Zjc0
OWM4NjJiMTVkN2RlZmFlMTMzNjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9BUEkvZ3RrL1dlYktpdERvd25sb2FkLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvQVBJL2d0ay9XZWJLaXREb3dubG9hZC5jcHAKQEAgLTI2LDcgKzI2LDggQEAKICNpbmNsdWRl
ICJXZWJLaXRQcml2YXRlLmgiCiAjaW5jbHVkZSAiV2ViS2l0VVJJUmVxdWVzdFByaXZhdGUuaCIK
ICNpbmNsdWRlICJXZWJLaXRVUklSZXNwb25zZVByaXZhdGUuaCIKLSNpbmNsdWRlIDxXZWJDb3Jl
L0Vycm9yc0d0ay5oPgorI2luY2x1ZGUgPFdlYkNvcmUvRXJyb3JzLmg+CisjaW5jbHVkZSA8V2Vi
Q29yZS9FcnJvcnNVbml4Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9SZXNvdXJjZVJlc3BvbnNlLmg+
CiAjaW5jbHVkZSA8Z2xpYi9naTE4bi1saWIuaD4KICNpbmNsdWRlIDx3dGYvZ2xpYi9HUmVmUHRy
Lmg+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRF
cnJvci5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRFcnJvci5j
cHAKaW5kZXggNzQxOWVlNzIxYTBmZTg2YWJjMzY0MzZkMjRlYzI1ZTQ2NDIzZThjZi4uYjA4MzQz
NmExOGQ5MTc0ZmZmM2U2N2NlZDg4ZmU0MGUzOGI0MWE3ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0RXJyb3IuY3BwCisrKyBiL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdEVycm9yLmNwcApAQCAtMjIsNyArMjIsNyBAQAog
I2luY2x1ZGUgIldlYktpdEVycm9yLmgiCiAKICNpbmNsdWRlICJXZWJLaXRQcml2YXRlLmgiCi0j
aW5jbHVkZSA8V2ViQ29yZS9FcnJvcnNHdGsuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL0Vycm9yc1Vu
aXguaD4KIAogdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFByaXZhdGUuY3BwIGIvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0UHJpdmF0ZS5jcHAKaW5kZXggMmIxZTEyNDk3NmJh
NGRkYzY3MTkxNzI1MGU5NzgyOTgwMTQ1YmFjYS4uOTE5N2JjNzcyY2M4ZWU4MTk4ZTA5MWVlY2Rk
MGQ4YjEyY2MwZjI3ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9n
dGsvV2ViS2l0UHJpdmF0ZS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9n
dGsvV2ViS2l0UHJpdmF0ZS5jcHAKQEAgLTIwLDcgKzIwLDcgQEAKICNpbmNsdWRlICJjb25maWcu
aCIKICNpbmNsdWRlICJXZWJLaXRQcml2YXRlLmgiCiAKLSNpbmNsdWRlICJFcnJvcnNHdGsuaCIK
KyNpbmNsdWRlICJFcnJvcnNVbml4LmgiCiAjaW5jbHVkZSAiV2ViRXZlbnQuaCIKICNpbmNsdWRl
ICJXZWJLaXRFcnJvci5oIgogI2luY2x1ZGUgPGdkay9nZGsuaD4KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9OZXR3b3JrL0N1c3RvbVByb3RvY29scy9zb3VwL1dlYlNvdXBD
dXN0b21Qcm90b2NvbFJlcXVlc3RNYW5hZ2VyLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9OZXR3b3JrL0N1c3RvbVByb3RvY29scy9zb3VwL1dlYlNvdXBDdXN0b21Qcm90b2NvbFJlcXVl
c3RNYW5hZ2VyLmNwcAppbmRleCBiNjU1ZTQzNTEzZDVlNDEzZTFiOGY1YzYyMmQ4OGEzOTY1YjA2
YTRiLi5hMDM1YjQ3ODQ2NGRiNDExNjgwYzFiMGMzODk0ODc5Y2VjZjM1NmEyIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvTmV0d29yay9DdXN0b21Qcm90b2NvbHMvc291cC9X
ZWJTb3VwQ3VzdG9tUHJvdG9jb2xSZXF1ZXN0TWFuYWdlci5jcHAKKysrIGIvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL05ldHdvcmsvQ3VzdG9tUHJvdG9jb2xzL3NvdXAvV2ViU291cEN1c3RvbVBy
b3RvY29sUmVxdWVzdE1hbmFnZXIuY3BwCkBAIC0yMywxNiArMjMsMTIgQEAKICNpbmNsdWRlICJB
UElEYXRhLmgiCiAjaW5jbHVkZSAiQ3VzdG9tUHJvdG9jb2xNYW5hZ2VyTWVzc2FnZXMuaCIKICNp
bmNsdWRlICJXZWJQcm9jZXNzUG9vbC5oIgorI2luY2x1ZGUgPFdlYkNvcmUvRXJyb3JzLmg+Cisj
aW5jbHVkZSA8V2ViQ29yZS9FcnJvcnNVbml4Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9SZXNvdXJj
ZUVycm9yLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9SZXNvdXJjZVJlcXVlc3QuaD4KICNpbmNsdWRl
IDxXZWJDb3JlL1Jlc291cmNlUmVzcG9uc2UuaD4KIAotI2lmIFBMQVRGT1JNKEdUSykKLSNpbmNs
dWRlIDxXZWJDb3JlL0Vycm9yc0d0ay5oPgotI2VsaWYgUExBVEZPUk0oRUZMKQotI2luY2x1ZGUg
PFdlYkNvcmUvRXJyb3JzRWZsLmg+Ci0jZW5kaWYKLQogbmFtZXNwYWNlIFdlYktpdCB7CiAKIGNv
bnN0IGNoYXIqIFdlYlNvdXBDdXN0b21Qcm90b2NvbFJlcXVlc3RNYW5hZ2VyOjpzdXBwbGVtZW50
TmFtZSgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJLaXQyLnhjb2RlcHJvai9wcm9q
ZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViS2l0Mi9XZWJLaXQyLnhjb2RlcHJvai9wcm9qZWN0LnBi
eHByb2oKaW5kZXggYzYzMmZiY2E3MjE2YjM1NzI1ZDBiMjAwMDhiNWJjNTgwOTJkYmJmMy4uYTg5
MWVlNTI2YWQwMGNhNGJjMzhmYmUyMjc5MjgyOWZjM2IxMWEwMyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdDIvV2ViS2l0Mi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9X
ZWJLaXQyL1dlYktpdDIueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMjI1LDcgKzIyNSw2
IEBACiAJCTFBM0VFRDBGMTYxQTUzNTQwMEFFQjRGNSAvKiBNZXNzYWdlUmVjZWl2ZXJNYXAuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFBM0VFRDBEMTYx
QTUzNTMwMEFFQjRGNSAvKiBNZXNzYWdlUmVjZWl2ZXJNYXAuaCAqLzsgfTsKIAkJMUEzRUVEMTIx
NjFBNTNENjAwQUVCNEY1IC8qIE1lc3NhZ2VSZWNlaXZlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUEzRUVEMTExNjFBNTNENjAwQUVCNEY1IC8qIE1l
c3NhZ2VSZWNlaXZlci5oICovOyB9OwogCQkxQTQyMkY4QjE4QjI5QjU0MDBEOENEOTYgLyogV0tI
aXN0b3J5RGVsZWdhdGVQcml2YXRlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSAxQTQyMkY4QTE4QjI5QjU0MDBEOENEOTYgLyogV0tIaXN0b3J5RGVsZWdh
dGVQcml2YXRlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsg
fTsKLQkJMUE0MzNGMEQxMTNDNTNERDAwRkFDREU5IC8qIFdlYkVycm9ycy5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUE0MzNGMEMxMTNDNTNERDAwRkFD
REU5IC8qIFdlYkVycm9ycy5oICovOyB9OwogCQkxQTQzRTgyOTE4OEYzQ0RDMDA5RTREMzAgLyog
X1dLUHJvY2Vzc1Bvb2xDb25maWd1cmF0aW9uLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gMUE0M0U4MjcxODhGM0NEQzAwOUU0RDMwIC8qIF9XS1Byb2Nl
c3NQb29sQ29uZmlndXJhdGlvbi5tbSAqLzsgfTsKIAkJMUE0M0U4MkExODhGM0NEQzAwOUU0RDMw
IC8qIF9XS1Byb2Nlc3NQb29sQ29uZmlndXJhdGlvbi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUE0M0U4MjgxODhGM0NEQzAwOUU0RDMwIC8qIF9XS1By
b2Nlc3NQb29sQ29uZmlndXJhdGlvbi5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFBy
aXZhdGUsICk7IH07IH07CiAJCTFBNDQ1QjlGMTg0RDVGQjUwMDRCMzQxNCAvKiBXS0NvbnRleHRJ
bmplY3RlZEJ1bmRsZUNsaWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gMUE0NDVCOUUxODRENUZCNTAwNEIzNDE0IC8qIFdLQ29udGV4dEluamVjdGVk
QnVuZGxlQ2xpZW50LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsg
fTsgfTsKQEAgLTEzNzYsNyArMTM3NSw2IEBACiAJCUJDMTExQTVGMTEyRjRGQkIwMDMzN0JBQiAv
KiBXZWJGcmFtZUxvYWRlckNsaWVudC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSBCQzExMUE1ODExMkY0RkJCMDAzMzdCQUIgLyogV2ViRnJhbWVMb2Fk
ZXJDbGllbnQuY3BwICovOyB9OwogCQlCQzExMUE2MDExMkY0RkJCMDAzMzdCQUIgLyogV2ViSW5z
cGVjdG9yQ2xpZW50LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IEJDMTExQTU5MTEyRjRGQkIwMDMzN0JBQiAvKiBXZWJJbnNwZWN0b3JDbGllbnQuY3Bw
ICovOyB9OwogCQlCQzExMUFERDExMkY1QjkzMDAzMzdCQUIgLyogV2ViRnJhbWUuY3BwIGluIFNv
dXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkMxMTFBREMxMTJGNUI5
MzAwMzM3QkFCIC8qIFdlYkZyYW1lLmNwcCAqLzsgfTsKLQkJQkMxMTFBRTAxMTJGNUJDMjAwMzM3
QkFCIC8qIFdlYkVycm9yc01hYy5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IEJDMTExQURGMTEyRjVCQzIwMDMzN0JBQiAvKiBXZWJFcnJvcnNNYWMubW0g
Ki87IH07CiAJCUJDMTExQUU0MTEyRjVDMjYwMDMzN0JBQiAvKiBXZWJQcm9jZXNzLmNwcCBpbiBT
b3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDMTExQUUzMTEyRjVD
MjYwMDMzN0JBQiAvKiBXZWJQcm9jZXNzLmNwcCAqLzsgfTsKIAkJQkMxMTFCMDkxMTJGNUUzQzAw
MzM3QkFCIC8qIFJlc3BvbnNpdmVuZXNzVGltZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkMxMTFCMDgxMTJGNUUzQzAwMzM3QkFCIC8qIFJlc3Bv
bnNpdmVuZXNzVGltZXIuY3BwICovOyB9OwogCQlCQzExMUIwRTExMkY1RTRGMDAzMzdCQUIgLyog
V2ViRnJhbWVQcm94eS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSBCQzExMUIwQTExMkY1RTRGMDAzMzdCQUIgLyogV2ViRnJhbWVQcm94eS5jcHAgKi87
IH07CkBAIC0yMjA3LDcgKzIyMDUsNiBAQAogCQkxQTNFRUQwRDE2MUE1MzUzMDBBRUI0RjUgLyog
TWVzc2FnZVJlY2VpdmVyTWFwLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE1l
c3NhZ2VSZWNlaXZlck1hcC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkxQTNFRUQx
MTE2MUE1M0Q2MDBBRUI0RjUgLyogTWVzc2FnZVJlY2VpdmVyLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IE1lc3NhZ2VSZWNlaXZlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQkxQTQyMkY4QTE4QjI5QjU0MDBEOENEOTYgLyogV0tIaXN0b3J5RGVsZWdhdGVQcml2
YXRlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdLSGlzdG9yeURlbGVnYXRl
UHJpdmF0ZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQkxQTQzM0YwQzExM0M1M0RE
MDBGQUNERTkgLyogV2ViRXJyb3JzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IFdlYkVycm9ycy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkxQTQzRTgyNzE4OEYz
Q0RDMDA5RTREMzAgLyogX1dLUHJvY2Vzc1Bvb2xDb25maWd1cmF0aW9uLm1tICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gX1dLUHJvY2Vzc1Bvb2xDb25maWd1cmF0aW9u
Lm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkxQTQzRTgyODE4OEYzQ0RDMDA5RTRE
MzAgLyogX1dLUHJvY2Vzc1Bvb2xDb25maWd1cmF0aW9uLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IF9XS1Byb2Nlc3NQb29sQ29uZmlndXJhdGlvbi5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQkxQTQ0NUI5RTE4NEQ1RkI1MDA0QjM0MTQgLyogV0tDb250ZXh0SW5q
ZWN0ZWRCdW5kbGVDbGllbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV0tD
b250ZXh0SW5qZWN0ZWRCdW5kbGVDbGllbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
QEAgLTM0NjksNyArMzQ2Niw2IEBACiAJCUJDMTExQTU4MTEyRjRGQkIwMDMzN0JBQiAvKiBXZWJG
cmFtZUxvYWRlckNsaWVudC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGgg
PSBXZWJGcmFtZUxvYWRlckNsaWVudC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IHdyYXBz
TGluZXMgPSAwOyB9OwogCQlCQzExMUE1OTExMkY0RkJCMDAzMzdCQUIgLyogV2ViSW5zcGVjdG9y
Q2xpZW50LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdlYkluc3Bl
Y3RvckNsaWVudC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUJDMTExQURDMTEy
RjVCOTMwMDMzN0JBQiAvKiBXZWJGcmFtZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5j
cHA7IHBhdGggPSBXZWJGcmFtZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUJD
MTExQURGMTEyRjVCQzIwMDMzN0JBQiAvKiBXZWJFcnJvcnNNYWMubW0gKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBXZWJFcnJvcnNNYWMubW07IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCUJDMTExQUUzMTEyRjVDMjYwMDMzN0JBQiAvKiBXZWJQcm9jZXNzLmNw
cCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdlYlByb2Nlc3MuY3BwOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlCQzExMUIwODExMkY1RTNDMDAzMzdCQUIgLyog
UmVzcG9uc2l2ZW5lc3NUaW1lci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBh
dGggPSBSZXNwb25zaXZlbmVzc1RpbWVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJQkMxMTFCMEExMTJGNUU0RjAwMzM3QkFCIC8qIFdlYkZyYW1lUHJveHkuY3BwICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV2ViRnJhbWVQcm94eS5jcHA7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CkBAIC01OTMxLDcgKzU5MjcsNiBAQAogCQkJCUJDMDMyRDY2MTBG
NDM3OEQwMDU4QzE1QSAvKiBXZWJEcmFnQ2xpZW50LmggKi8sCiAJCQkJQkMxMTFBNTcxMTJGNEZC
QjAwMzM3QkFCIC8qIFdlYkVkaXRvckNsaWVudC5jcHAgKi8sCiAJCQkJQkMwMzJENjgxMEY0Mzc4
RDAwNThDMTVBIC8qIFdlYkVkaXRvckNsaWVudC5oICovLAotCQkJCTFBNDMzRjBDMTEzQzUzREQw
MEZBQ0RFOSAvKiBXZWJFcnJvcnMuaCAqLywKIAkJCQlCQzExMUE1ODExMkY0RkJCMDAzMzdCQUIg
LyogV2ViRnJhbWVMb2FkZXJDbGllbnQuY3BwICovLAogCQkJCUJDMDMyRDZBMTBGNDM3OEQwMDU4
QzE1QSAvKiBXZWJGcmFtZUxvYWRlckNsaWVudC5oICovLAogCQkJCUJDMUJFMURGMTJENTRBNDEw
MDA0QTIyOCAvKiBXZWJHZW9sb2NhdGlvbkNsaWVudC5jcHAgKi8sCkBAIC02Mzc5LDcgKzYzNzQs
NiBAQAogCQkJCTUxMDIxRTlCMTJCMTY3ODgwMDVDMDMzQyAvKiBXZWJDb250ZXh0TWVudUNsaWVu
dE1hYy5tbSAqLywKIAkJCQlDNTU0RkZBMjEyRTRFOEVBMDAyRjIyQzAgLyogV2ViRHJhZ0NsaWVu
dE1hYy5tbSAqLywKIAkJCQlDNTIzN0Y1RjEyNDQxQ0EzMDA3ODA0NzIgLyogV2ViRWRpdG9yQ2xp
ZW50TWFjLm1tICovLAotCQkJCUJDMTExQURGMTEyRjVCQzIwMDMzN0JBQiAvKiBXZWJFcnJvcnNN
YWMubW0gKi8sCiAJCQkJOTM5MUYyODMxMjFCMzhGNTAwRUJGN0U4IC8qIFdlYkZyYW1lTmV0d29y
a2luZ0NvbnRleHQuaCAqLywKIAkJCQk5MzkxRjI4NDEyMUIzOEY1MDBFQkY3RTggLyogV2ViRnJh
bWVOZXR3b3JraW5nQ29udGV4dC5tbSAqLywKIAkJCQlCQ0M0M0FDNjEyN0I5OURFMDAzMTdGMTYg
LyogV2ViUG9wdXBNZW51TWFjLm1tICovLApAQCAtNzg2OCw3ICs3ODYyLDYgQEAKIAkJCQlCQzAz
MkQ3QjEwRjQzNzhEMDA1OEMxNUEgLyogV2ViRHJhZ0NsaWVudC5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJQkNBMEVGOUYxMjMzMjY0MjAwN0QzQ0ZCIC8qIFdlYkVkaXRDb21tYW5kUHJveHkuaCBpbiBI
ZWFkZXJzICovLAogCQkJCUJDMDMyRDdEMTBGNDM3OEQwMDU4QzE1QSAvKiBXZWJFZGl0b3JDbGll
bnQuaCBpbiBIZWFkZXJzICovLAotCQkJCTFBNDMzRjBEMTEzQzUzREQwMEZBQ0RFOSAvKiBXZWJF
cnJvcnMuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDMDMyREI5MTBGNDM4MEYwMDU4QzE1QSAvKiBX
ZWJFdmVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkMwMzJEQkIxMEY0MzgwRjAwNThDMTVBIC8q
IFdlYkV2ZW50Q29udmVyc2lvbi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkMxMTFCNUQxMTJGNjI5
ODAwMzM3QkFCIC8qIFdlYkV2ZW50RmFjdG9yeS5oIGluIEhlYWRlcnMgKi8sCkBAIC05MzY0LDcg
KzkzNTcsNiBAQAogCQkJCUJDMTExQTVFMTEyRjRGQkIwMDMzN0JBQiAvKiBXZWJFZGl0b3JDbGll
bnQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMkQyOEYzRTYxODg1Q0NDMTAwNEI5RUFFIC8qIFdl
YkVkaXRvckNsaWVudElPUy5tbSBpbiBTb3VyY2VzICovLAogCQkJCUM1MjM3RjYwMTI0NDFDQTMw
MDc4MDQ3MiAvKiBXZWJFZGl0b3JDbGllbnRNYWMubW0gaW4gU291cmNlcyAqLywKLQkJCQlCQzEx
MUFFMDExMkY1QkMyMDAzMzdCQUIgLyogV2ViRXJyb3JzTWFjLm1tIGluIFNvdXJjZXMgKi8sCiAJ
CQkJQzAzMzdEQUUxMjdBMjRGRTAwOEZGNEY0IC8qIFdlYkV2ZW50LmNwcCBpbiBTb3VyY2VzICov
LAogCQkJCUJDMDMyREJBMTBGNDM4MEYwMDU4QzE1QSAvKiBXZWJFdmVudENvbnZlcnNpb24uY3Bw
IGluIFNvdXJjZXMgKi8sCiAJCQkJQkMxMTFCNUUxMTJGNjI5ODAwMzM3QkFCIC8qIFdlYkV2ZW50
RmFjdG9yeS5tbSBpbiBTb3VyY2VzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2Vi
UHJvY2Vzcy9OZXR3b3JrL1dlYkxvYWRlclN0cmF0ZWd5LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvTmV0d29yay9XZWJMb2FkZXJTdHJhdGVneS5jcHAKaW5kZXggMzkzYjhjZWRlMzM0
NWJmZmJhNTJhOGZhNTFiNzg3NWJjYmI5OGFlZi4uNGY0NTFkNGNmY2YyODlmZmFkZWEzY2M0MjAy
ZWFkZWJmMzA0OGU4NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9OZXR3
b3JrL1dlYkxvYWRlclN0cmF0ZWd5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L05ldHdvcmsvV2ViTG9hZGVyU3RyYXRlZ3kuY3BwCkBAIC0zMyw3ICszMyw2IEBACiAjaW5jbHVk
ZSAiTmV0d29ya1Jlc291cmNlTG9hZFBhcmFtZXRlcnMuaCIKICNpbmNsdWRlICJTZXNzaW9uVHJh
Y2tlci5oIgogI2luY2x1ZGUgIldlYkNvcmVBcmd1bWVudENvZGVycy5oIgotI2luY2x1ZGUgIldl
YkVycm9ycy5oIgogI2luY2x1ZGUgIldlYkZyYW1lLmgiCiAjaW5jbHVkZSAiV2ViRnJhbWVMb2Fk
ZXJDbGllbnQuaCIKICNpbmNsdWRlICJXZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0LmgiCkBAIC00
NCw2ICs0Myw3IEBACiAjaW5jbHVkZSA8V2ViQ29yZS9DYWNoZWRSZXNvdXJjZS5oPgogI2luY2x1
ZGUgPFdlYkNvcmUvRG9jdW1lbnQuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0RvY3VtZW50TG9hZGVy
Lmg+CisjaW5jbHVkZSA8V2ViQ29yZS9FcnJvcnMuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0ZyYW1l
Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9GcmFtZUxvYWRlci5oPgogI2luY2x1ZGUgPFdlYkNvcmUv
TmV0c2NhcGVQbHVnSW5TdHJlYW1Mb2FkZXIuaD4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvTmV0d29yay9XZWJSZXNvdXJjZUxvYWRlci5jcHAgYi9Tb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL05ldHdvcmsvV2ViUmVzb3VyY2VMb2FkZXIuY3BwCmluZGV4IDc4YjBhOTg5
MTg4MTg1ZWRjMWFhNzcyNDc4NGQ0N2Y0MGFmYjJkYjcuLjk5YTY3ODYzYjkxNzVhZTJhMGE3MGU2
MGY3YjBiM2RiNDJlNzdkNmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
TmV0d29yay9XZWJSZXNvdXJjZUxvYWRlci5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9OZXR3b3JrL1dlYlJlc291cmNlTG9hZGVyLmNwcApAQCAtMzEsMTEgKzMxLDExIEBACiAj
aW5jbHVkZSAiTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uLmgiCiAjaW5jbHVkZSAiTmV0d29ya1Jl
c291cmNlTG9hZGVyTWVzc2FnZXMuaCIKICNpbmNsdWRlICJXZWJDb3JlQXJndW1lbnRDb2RlcnMu
aCIKLSNpbmNsdWRlICJXZWJFcnJvcnMuaCIKICNpbmNsdWRlICJXZWJQcm9jZXNzLmgiCiAjaW5j
bHVkZSA8V2ViQ29yZS9BcHBsaWNhdGlvbkNhY2hlSG9zdC5oPgogI2luY2x1ZGUgPFdlYkNvcmUv
Q2VydGlmaWNhdGVJbmZvLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9Eb2N1bWVudExvYWRlci5oPgor
I2luY2x1ZGUgPFdlYkNvcmUvRXJyb3JzLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9SZXNvdXJjZUVy
cm9yLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9SZXNvdXJjZUxvYWRlci5oPgogI2luY2x1ZGUgPFdl
YkNvcmUvU3VicmVzb3VyY2VMb2FkZXIuaD4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuY3BwIGIvU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5j
cHAKaW5kZXggNWY3NmJjOWY0MTllM2M0YTVmMzE5ZjkzODk0ZGViNmExZTQ0ZGQzOS4uODZhNjli
YjhlOTQ2ZjlkZTNkN2ExZjJiZDQxZTIxYzBkNDlhNTcyYiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5jcHAK
KysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxv
YWRlckNsaWVudC5jcHAKQEAgLTQxLDcgKzQxLDYgQEAKICNpbmNsdWRlICJXZWJCYWNrRm9yd2Fy
ZExpc3RQcm94eS5oIgogI2luY2x1ZGUgIldlYkNvcmVBcmd1bWVudENvZGVycy5oIgogI2luY2x1
ZGUgIldlYkRvY3VtZW50TG9hZGVyLmgiCi0jaW5jbHVkZSAiV2ViRXJyb3JzLmgiCiAjaW5jbHVk
ZSAiV2ViRXZlbnQuaCIKICNpbmNsdWRlICJXZWJGcmFtZS5oIgogI2luY2x1ZGUgIldlYkZyYW1l
TmV0d29ya2luZ0NvbnRleHQuaCIKQEAgLTU5LDYgKzU4LDcgQEAKICNpbmNsdWRlIDxXZWJDb3Jl
L0Nocm9tZS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvRE9NV3JhcHBlcldvcmxkLmg+CiAjaW5jbHVk
ZSA8V2ViQ29yZS9Eb2N1bWVudExvYWRlci5oPgorI2luY2x1ZGUgPFdlYkNvcmUvRXJyb3JzLmg+
CiAjaW5jbHVkZSA8V2ViQ29yZS9Gb3JtU3RhdGUuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0ZyYW1l
TG9hZFJlcXVlc3QuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0ZyYW1lTG9hZGVyLmg+CkBAIC0xMDg5
LDU3ICsxMDg5LDEwIEBAIHZvaWQgV2ViRnJhbWVMb2FkZXJDbGllbnQ6OmRpZERldGVjdFhTUyhj
b25zdCBVUkwmLCBib29sKQogICAgIHdlYlBhZ2UtPnNlbmQoTWVzc2FnZXM6OldlYlBhZ2VQcm94
eTo6RGlkRGV0ZWN0WFNTRm9yRnJhbWUobV9mcmFtZS0+ZnJhbWVJRCgpLCBVc2VyRGF0YShXZWJQ
cm9jZXNzOjpzaW5nbGV0b24oKS50cmFuc2Zvcm1PYmplY3RzVG9IYW5kbGVzKHVzZXJEYXRhLmdl
dCgpKS5nZXQoKSkpKTsKIH0KIAotUmVzb3VyY2VFcnJvciBXZWJGcmFtZUxvYWRlckNsaWVudDo6
Y2FuY2VsbGVkRXJyb3IoY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0KQotewotICAgIHJl
dHVybiBXZWJLaXQ6OmNhbmNlbGxlZEVycm9yKHJlcXVlc3QpOwotfQotCi1SZXNvdXJjZUVycm9y
IFdlYkZyYW1lTG9hZGVyQ2xpZW50OjpibG9ja2VkRXJyb3IoY29uc3QgUmVzb3VyY2VSZXF1ZXN0
JiByZXF1ZXN0KQotewotICAgIHJldHVybiBXZWJLaXQ6OmJsb2NrZWRFcnJvcihyZXF1ZXN0KTsK
LX0KLQotUmVzb3VyY2VFcnJvciBXZWJGcmFtZUxvYWRlckNsaWVudDo6YmxvY2tlZEJ5Q29udGVu
dEJsb2NrZXJFcnJvcihjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QpCi17Ci0gICAgcmV0
dXJuIFdlYktpdDo6YmxvY2tlZEJ5Q29udGVudEJsb2NrZXJFcnJvcihyZXF1ZXN0KTsKLX0KLQot
UmVzb3VyY2VFcnJvciBXZWJGcmFtZUxvYWRlckNsaWVudDo6Y2Fubm90U2hvd1VSTEVycm9yKGNv
bnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCkKLXsKLSAgICByZXR1cm4gV2ViS2l0OjpjYW5u
b3RTaG93VVJMRXJyb3IocmVxdWVzdCk7Ci19Ci0KLVJlc291cmNlRXJyb3IgV2ViRnJhbWVMb2Fk
ZXJDbGllbnQ6OmludGVycnVwdGVkRm9yUG9saWN5Q2hhbmdlRXJyb3IoY29uc3QgUmVzb3VyY2VS
ZXF1ZXN0JiByZXF1ZXN0KQotewotICAgIHJldHVybiBXZWJLaXQ6OmludGVycnVwdGVkRm9yUG9s
aWN5Q2hhbmdlRXJyb3IocmVxdWVzdCk7Ci19Ci0KLSNpZiBFTkFCTEUoQ09OVEVOVF9GSUxURVJJ
TkcpCi1SZXNvdXJjZUVycm9yIFdlYkZyYW1lTG9hZGVyQ2xpZW50OjpibG9ja2VkQnlDb250ZW50
RmlsdGVyRXJyb3IoY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0KQotewotICAgIHJldHVy
biBXZWJLaXQ6OmJsb2NrZWRCeUNvbnRlbnRGaWx0ZXJFcnJvcihyZXF1ZXN0KTsKLX0KLSNlbmRp
ZgotCi1SZXNvdXJjZUVycm9yIFdlYkZyYW1lTG9hZGVyQ2xpZW50OjpjYW5ub3RTaG93TUlNRVR5
cGVFcnJvcihjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiByZXNwb25zZSkKLXsKLSAgICByZXR1cm4g
V2ViS2l0OjpjYW5ub3RTaG93TUlNRVR5cGVFcnJvcihyZXNwb25zZSk7Ci19Ci0KLVJlc291cmNl
RXJyb3IgV2ViRnJhbWVMb2FkZXJDbGllbnQ6OmZpbGVEb2VzTm90RXhpc3RFcnJvcihjb25zdCBS
ZXNvdXJjZVJlc3BvbnNlJiByZXNwb25zZSkKLXsKLSAgICByZXR1cm4gV2ViS2l0OjpmaWxlRG9l
c05vdEV4aXN0RXJyb3IocmVzcG9uc2UpOwotfQotCi1SZXNvdXJjZUVycm9yIFdlYkZyYW1lTG9h
ZGVyQ2xpZW50OjpwbHVnaW5XaWxsSGFuZGxlTG9hZEVycm9yKGNvbnN0IFJlc291cmNlUmVzcG9u
c2UmIHJlc3BvbnNlKQotewotICAgIHJldHVybiBXZWJLaXQ6OnBsdWdpbldpbGxIYW5kbGVMb2Fk
RXJyb3IocmVzcG9uc2UpOwotfQotCiBib29sIFdlYkZyYW1lTG9hZGVyQ2xpZW50OjpzaG91bGRG
YWxsQmFjayhjb25zdCBSZXNvdXJjZUVycm9yJiBlcnJvcikKIHsKLSAgICBzdGF0aWMgTmV2ZXJE
ZXN0cm95ZWQ8Y29uc3QgUmVzb3VyY2VFcnJvcj4gY2FuY2VsbGVkRXJyb3IodGhpcy0+Y2FuY2Vs
bGVkRXJyb3IoUmVzb3VyY2VSZXF1ZXN0KCkpKTsKLSAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8
Y29uc3QgUmVzb3VyY2VFcnJvcj4gcGx1Z2luV2lsbEhhbmRsZUxvYWRFcnJvcih0aGlzLT5wbHVn
aW5XaWxsSGFuZGxlTG9hZEVycm9yKFJlc291cmNlUmVzcG9uc2UoKSkpOworICAgIHN0YXRpYyBO
ZXZlckRlc3Ryb3llZDxjb25zdCBSZXNvdXJjZUVycm9yPiBjYW5jZWxsZWRFcnJvcihXZWJDb3Jl
OjpjYW5jZWxsZWRFcnJvcihSZXNvdXJjZVJlcXVlc3QoKSkpOworICAgIHN0YXRpYyBOZXZlckRl
c3Ryb3llZDxjb25zdCBSZXNvdXJjZUVycm9yPiBwbHVnaW5XaWxsSGFuZGxlTG9hZEVycm9yKFdl
YkNvcmU6OnBsdWdpbldpbGxIYW5kbGVMb2FkRXJyb3IoUmVzb3VyY2VSZXNwb25zZSgpKSk7CiAK
ICAgICBpZiAoZXJyb3IuZXJyb3JDb2RlKCkgPT0gY2FuY2VsbGVkRXJyb3IuZ2V0KCkuZXJyb3JD
b2RlKCkgJiYgZXJyb3IuZG9tYWluKCkgPT0gY2FuY2VsbGVkRXJyb3IuZ2V0KCkuZG9tYWluKCkp
CiAgICAgICAgIHJldHVybiBmYWxzZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuaCBiL1NvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuaAppbmRl
eCBiOWUzOWZlMjJmYjhhZWZiNWU5YTU4YTI2ZjRhNmQ0YTIyZTIzYWI1Li5hOTY1OWExMGE5ZTA1
YzA4ZmZhNWY0NTlkNDcwN2VhODBkMWUyOTY4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmgKKysrIGIvU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVu
dC5oCkBAIC0xNDMsMTkgKzE0Myw2IEBAIHByaXZhdGU6CiAgICAgdm9pZCBkaWRSdW5JbnNlY3Vy
ZUNvbnRlbnQoV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW4qLCBjb25zdCBXZWJDb3JlOjpVUkwmKSBv
dmVycmlkZTsKICAgICB2b2lkIGRpZERldGVjdFhTUyhjb25zdCBXZWJDb3JlOjpVUkwmLCBib29s
IGRpZEJsb2NrRW50aXJlUGFnZSkgb3ZlcnJpZGU7CiAKLSAgICBXZWJDb3JlOjpSZXNvdXJjZUVy
cm9yIGNhbmNlbGxlZEVycm9yKGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYpIG92ZXJy
aWRlOwotICAgIFdlYkNvcmU6OlJlc291cmNlRXJyb3IgYmxvY2tlZEVycm9yKGNvbnN0IFdlYkNv
cmU6OlJlc291cmNlUmVxdWVzdCYpIG92ZXJyaWRlOwotICAgIFdlYkNvcmU6OlJlc291cmNlRXJy
b3IgYmxvY2tlZEJ5Q29udGVudEJsb2NrZXJFcnJvcihjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJl
cXVlc3QmKSBvdmVycmlkZTsKLSAgICBXZWJDb3JlOjpSZXNvdXJjZUVycm9yIGNhbm5vdFNob3dV
UkxFcnJvcihjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmKSBvdmVycmlkZTsKLSAgICBX
ZWJDb3JlOjpSZXNvdXJjZUVycm9yIGludGVycnVwdGVkRm9yUG9saWN5Q2hhbmdlRXJyb3IoY29u
c3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0Jikgb3ZlcnJpZGU7Ci0jaWYgRU5BQkxFKENPTlRF
TlRfRklMVEVSSU5HKQotICAgIFdlYkNvcmU6OlJlc291cmNlRXJyb3IgYmxvY2tlZEJ5Q29udGVu
dEZpbHRlckVycm9yKGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYpIG92ZXJyaWRlOwot
I2VuZGlmCi0gICAgCi0gICAgV2ViQ29yZTo6UmVzb3VyY2VFcnJvciBjYW5ub3RTaG93TUlNRVR5
cGVFcnJvcihjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlJikgb3ZlcnJpZGU7Ci0gICAg
V2ViQ29yZTo6UmVzb3VyY2VFcnJvciBmaWxlRG9lc05vdEV4aXN0RXJyb3IoY29uc3QgV2ViQ29y
ZTo6UmVzb3VyY2VSZXNwb25zZSYpIG92ZXJyaWRlOwotICAgIFdlYkNvcmU6OlJlc291cmNlRXJy
b3IgcGx1Z2luV2lsbEhhbmRsZUxvYWRFcnJvcihjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlc3Bv
bnNlJikgb3ZlcnJpZGU7Ci0gICAgCiAgICAgYm9vbCBzaG91bGRGYWxsQmFjayhjb25zdCBXZWJD
b3JlOjpSZXNvdXJjZUVycm9yJikgb3ZlcnJpZGU7CiAgICAgCiAgICAgYm9vbCBjYW5IYW5kbGVS
ZXF1ZXN0KGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYpIGNvbnN0IG92ZXJyaWRlOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJQ
bGF0Zm9ybVN0cmF0ZWdpZXMuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3Jl
U3VwcG9ydC9XZWJQbGF0Zm9ybVN0cmF0ZWdpZXMuY3BwCmluZGV4IDAxOWMxMzMyZGU0YzFiNGQy
NTI5M2FkZWM3Y2JkMWQ0MTk3YmI2MGMuLjA3OTU4ZGIxMjcxN2VjMTY1YWJkMGFiNWQ4YzFiMmM1
Mjc1MzE1MzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1
cHBvcnQvV2ViUGxhdGZvcm1TdHJhdGVnaWVzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlBsYXRmb3JtU3RyYXRlZ2llcy5jcHAKQEAgLTM3LDcg
KzM3LDYgQEAKICNpbmNsdWRlICJTZXNzaW9uVHJhY2tlci5oIgogI2luY2x1ZGUgIldlYkNvb2tp
ZU1hbmFnZXIuaCIKICNpbmNsdWRlICJXZWJDb3JlQXJndW1lbnRDb2RlcnMuaCIKLSNpbmNsdWRl
ICJXZWJFcnJvcnMuaCIKICNpbmNsdWRlICJXZWJGcmFtZS5oIgogI2luY2x1ZGUgIldlYkZyYW1l
TG9hZGVyQ2xpZW50LmgiCiAjaW5jbHVkZSAiV2ViTG9hZGVyU3RyYXRlZ3kuaCIKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvZWZsL1dlYkVycm9y
c0VmbC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L2VmbC9X
ZWJFcnJvcnNFZmwuY3BwCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBiMWI5N2Q4NjQ5
MDlkMWJmN2RkZTQ3OWQ5YWM3YTcyZGVmNTdjMzM3Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1
cHBvcnQvZWZsL1dlYkVycm9yc0VmbC5jcHAKKysrIC9kZXYvbnVsbApAQCAtMSw4NSArMCwwIEBA
Ci0vKgotICogQ29weXJpZ2h0IChDKSAyMDExIFNhbXN1bmcgRWxlY3Ryb25pY3MuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6
Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFi
b3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFy
eSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0
aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3
aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBC
WSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwotICogQU5EIEFOWSBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sCi0gKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBF
VkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKLSAqIEJFIExJQUJMRSBG
T1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwg
T1IKLSAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sIFBST0NVUkVNRU5UIE9GCi0gKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NT
IE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKLSAqIElOVEVSUlVQVElPTikg
SE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElO
Ci0gKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKQotICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNF
IE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgotICogVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNpbmNsdWRlICJjb25maWcuaCIKLSNpbmNsdWRlICJX
ZWJFcnJvcnMuaCIKLQotI2luY2x1ZGUgIkFQSUVycm9yLmgiCi0jaW5jbHVkZSA8V2ViQ29yZS9F
cnJvcnNFZmwuaD4KLSNpbmNsdWRlIDxXZWJDb3JlL1Jlc291cmNlRXJyb3IuaD4KLSNpbmNsdWRl
IDxXZWJDb3JlL1Jlc291cmNlUmVxdWVzdC5oPgotI2luY2x1ZGUgPFdlYkNvcmUvUmVzb3VyY2VS
ZXNwb25zZS5oPgotI2luY2x1ZGUgPFdlYktpdC9XS0Vycm9yUmVmLmg+Ci0KLXVzaW5nIG5hbWVz
cGFjZSBXZWJDb3JlOwotCi1uYW1lc3BhY2UgV2ViS2l0IHsKLQotUmVzb3VyY2VFcnJvciBjYW5j
ZWxsZWRFcnJvcihjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QpCi17Ci0gICAgcmV0dXJu
IFdlYkNvcmU6OmNhbmNlbGxlZEVycm9yKHJlcXVlc3QpOwotfQotCi1SZXNvdXJjZUVycm9yIGJs
b2NrZWRFcnJvcihjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QpCi17Ci0gICAgcmV0dXJu
IFdlYkNvcmU6OmJsb2NrZWRFcnJvcihyZXF1ZXN0KTsKLX0KLQotUmVzb3VyY2VFcnJvciBibG9j
a2VkQnlDb250ZW50QmxvY2tlckVycm9yKGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCkK
LXsKLSAgICByZXR1cm4gV2ViQ29yZTo6YmxvY2tlZEJ5Q29udGVudEJsb2NrZXJFcnJvcihyZXF1
ZXN0KTsKLX0KLQotUmVzb3VyY2VFcnJvciBjYW5ub3RTaG93VVJMRXJyb3IoY29uc3QgUmVzb3Vy
Y2VSZXF1ZXN0JiByZXF1ZXN0KQotewotICAgIHJldHVybiBXZWJDb3JlOjpjYW5ub3RTaG93VVJM
RXJyb3IocmVxdWVzdCk7Ci19Ci0KLVJlc291cmNlRXJyb3IgaW50ZXJydXB0ZWRGb3JQb2xpY3lD
aGFuZ2VFcnJvcihjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QpCi17Ci0gICAgcmV0dXJu
IFdlYkNvcmU6OmludGVycnVwdGVkRm9yUG9saWN5Q2hhbmdlRXJyb3IocmVxdWVzdCk7Ci19Ci0K
LVJlc291cmNlRXJyb3IgY2Fubm90U2hvd01JTUVUeXBlRXJyb3IoY29uc3QgUmVzb3VyY2VSZXNw
b25zZSYgcmVzcG9uc2UpCi17Ci0gICAgcmV0dXJuIFdlYkNvcmU6OmNhbm5vdFNob3dNSU1FVHlw
ZUVycm9yKHJlc3BvbnNlKTsKLX0KLQotUmVzb3VyY2VFcnJvciBmaWxlRG9lc05vdEV4aXN0RXJy
b3IoY29uc3QgUmVzb3VyY2VSZXNwb25zZSYgcmVzcG9uc2UpCi17Ci0gICAgcmV0dXJuIFdlYkNv
cmU6OmZpbGVEb2VzTm90RXhpc3RFcnJvcihyZXNwb25zZSk7Ci19Ci0KLVJlc291cmNlRXJyb3Ig
cGx1Z2luV2lsbEhhbmRsZUxvYWRFcnJvcihjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiByZXNwb25z
ZSkKLXsKLSAgICByZXR1cm4gV2ViQ29yZTo6cGx1Z2luV2lsbEhhbmRsZUxvYWRFcnJvcihyZXNw
b25zZSk7Ci19Ci0KLVdlYkNvcmU6OlJlc291cmNlRXJyb3IgaW50ZXJuYWxFcnJvcihjb25zdCBX
ZWJDb3JlOjpVUkwmIHVybCkKLXsKLSAgICByZXR1cm4gUmVzb3VyY2VFcnJvcihBUEk6OkVycm9y
Ojp3ZWJLaXRFcnJvckRvbWFpbigpLCBrV0tFcnJvckludGVybmFsLCB1cmwsIEFTQ0lJTGl0ZXJh
bCgiSW50ZXJuYWwgZXJyb3IiKSk7Ci19Ci0KLX0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9ndGsvV2ViRXJy
b3JzR3RrLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvZ3Rr
L1dlYkVycm9yc0d0ay5jcHAKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGU5ZDFkNGMy
Yjc0NGM3YTM2NTk2ZjlkYzQ5MjJmZDI2NDgyZjdmODMuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3Jl
U3VwcG9ydC9ndGsvV2ViRXJyb3JzR3RrLmNwcAorKysgL2Rldi9udWxsCkBAIC0xLDg4ICswLDAg
QEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgotICogUG9ydGlvbnMgQ29weXJpZ2h0IChjKSAyMDEwIE1vdG9yb2xhIE1vYmlsaXR5LCBJ
bmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgotICogQ29weXJpZ2h0IChDKSAyMDExIElnYWxpYSBT
LkwuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBS
ZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHly
aWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11
c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAg
IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBk
aXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJ
TkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwotICogQU5EIEFOWSBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBU
SEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFM
TCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKLSAqIEJFIExJQUJMRSBGT1IgQU5ZIERJ
UkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKLSAqIENP
TlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NV
UkVNRU5UIE9GCi0gKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwg
REFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKLSAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCi0gKiBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1Ig
T1RIRVJXSVNFKQotICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMg
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgotICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLgotICovCi0KLSNpbmNsdWRlICJjb25maWcuaCIKLSNpbmNsdWRlICJXZWJFcnJvcnMu
aCIKLQotI2luY2x1ZGUgIkFQSUVycm9yLmgiCi0jaW5jbHVkZSA8V2ViQ29yZS9FcnJvcnNHdGsu
aD4KLSNpbmNsdWRlIDxXZWJDb3JlL1Jlc291cmNlRXJyb3IuaD4KLSNpbmNsdWRlIDxXZWJDb3Jl
L1Jlc291cmNlUmVxdWVzdC5oPgotI2luY2x1ZGUgPFdlYkNvcmUvUmVzb3VyY2VSZXNwb25zZS5o
PgotI2luY2x1ZGUgPFdlYktpdC9XS0Vycm9yUmVmLmg+Ci0jaW5jbHVkZSA8Z2xpYi9naTE4bi1s
aWIuaD4KLQotdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7Ci0KLW5hbWVzcGFjZSBXZWJLaXQgewot
Ci1SZXNvdXJjZUVycm9yIGNhbmNlbGxlZEVycm9yKGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVx
dWVzdCkKLXsKLSAgICByZXR1cm4gV2ViQ29yZTo6Y2FuY2VsbGVkRXJyb3IocmVxdWVzdCk7Ci19
Ci0KLVJlc291cmNlRXJyb3IgYmxvY2tlZEVycm9yKGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVx
dWVzdCkKLXsKLSAgICByZXR1cm4gV2ViQ29yZTo6YmxvY2tlZEVycm9yKHJlcXVlc3QpOwotfQot
Ci1SZXNvdXJjZUVycm9yIGJsb2NrZWRCeUNvbnRlbnRCbG9ja2VyRXJyb3IoY29uc3QgUmVzb3Vy
Y2VSZXF1ZXN0JiByZXF1ZXN0KQotewotICAgIHJldHVybiBXZWJDb3JlOjpibG9ja2VkQnlDb250
ZW50QmxvY2tlckVycm9yKHJlcXVlc3QpOwotfQotCi1SZXNvdXJjZUVycm9yIGNhbm5vdFNob3dV
UkxFcnJvcihjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QpCi17Ci0gICAgcmV0dXJuIFdl
YkNvcmU6OmNhbm5vdFNob3dVUkxFcnJvcihyZXF1ZXN0KTsKLX0KLQotUmVzb3VyY2VFcnJvciBp
bnRlcnJ1cHRlZEZvclBvbGljeUNoYW5nZUVycm9yKGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVx
dWVzdCkKLXsKLSAgICByZXR1cm4gV2ViQ29yZTo6aW50ZXJydXB0ZWRGb3JQb2xpY3lDaGFuZ2VF
cnJvcihyZXF1ZXN0KTsKLX0KLQotUmVzb3VyY2VFcnJvciBjYW5ub3RTaG93TUlNRVR5cGVFcnJv
cihjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiByZXNwb25zZSkKLXsKLSAgICByZXR1cm4gV2ViQ29y
ZTo6Y2Fubm90U2hvd01JTUVUeXBlRXJyb3IocmVzcG9uc2UpOwotfQotCi1SZXNvdXJjZUVycm9y
IGZpbGVEb2VzTm90RXhpc3RFcnJvcihjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiByZXNwb25zZSkK
LXsKLSAgICByZXR1cm4gV2ViQ29yZTo6ZmlsZURvZXNOb3RFeGlzdEVycm9yKHJlc3BvbnNlKTsK
LX0KLQotUmVzb3VyY2VFcnJvciBwbHVnaW5XaWxsSGFuZGxlTG9hZEVycm9yKGNvbnN0IFJlc291
cmNlUmVzcG9uc2UmIHJlc3BvbnNlKQotewotICAgIHJldHVybiBXZWJDb3JlOjpwbHVnaW5XaWxs
SGFuZGxlTG9hZEVycm9yKHJlc3BvbnNlKTsKLX0KLQotV2ViQ29yZTo6UmVzb3VyY2VFcnJvciBp
bnRlcm5hbEVycm9yKGNvbnN0IFdlYkNvcmU6OlVSTCYgdXJsKQotewotICAgIHJldHVybiBSZXNv
dXJjZUVycm9yKEFQSTo6RXJyb3I6OndlYktpdEVycm9yRG9tYWluKCksIGtXS0Vycm9ySW50ZXJu
YWwsIHVybCwgXygiSW50ZXJuYWwgZXJyb3IiKSk7Ci19Ci0KLX0gLy8gbmFtZXNwYWNlIFdlYktp
dApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9t
YWMvV2ViRXJyb3JzTWFjLm1tIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3Vw
cG9ydC9tYWMvV2ViRXJyb3JzTWFjLm1tCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBh
YTc4NDg1YjY1MmZkM2M0OTVlZDRlNWYyZTlmM2VkNTQzYWRjM2EzLi4wMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
V2ViQ29yZVN1cHBvcnQvbWFjL1dlYkVycm9yc01hYy5tbQorKysgL2Rldi9udWxsCkBAIC0xLDEw
NyArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDEwLTIwMTYgQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUg
bWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIg
aW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKLSAqIEFORCBB
TlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLAotICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4g
Tk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCi0gKiBCRSBMSUFC
TEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExB
UlksIE9SCi0gKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBQUk9DVVJFTUVOVCBPRgotICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCi0gKiBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhF
UiBJTgotICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKLSAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKLSAqIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaW1wb3J0ICJjb25maWcuaCIKLSNpbXBvcnQg
IldlYkVycm9ycy5oIgotCi0jaW1wb3J0ICJBUElFcnJvci5oIgotI2ltcG9ydCAiV0tFcnJvclJl
Zi5oIgotI2ltcG9ydCA8V2ViQ29yZS9Mb2NhbGl6ZWRTdHJpbmdzLmg+Ci0jaW1wb3J0IDxXZWJD
b3JlL1Jlc291cmNlUmVxdWVzdC5oPgotI2ltcG9ydCA8V2ViQ29yZS9SZXNvdXJjZVJlc3BvbnNl
Lmg+Ci0KLXVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwotdXNpbmcgbmFtZXNwYWNlIFdlYktpdDsK
LQotbmFtZXNwYWNlIFdlYktpdCB7Ci0KLXN0YXRpYyBSZXRhaW5QdHI8TlNFcnJvcj4gY3JlYXRl
TlNFcnJvcihOU1N0cmluZyogZG9tYWluLCBpbnQgY29kZSwgTlNVUkwgKlVSTCkKLXsKLSAgICBO
U0RpY3Rpb25hcnkgKnVzZXJJbmZvID0gW05TRGljdGlvbmFyeSBkaWN0aW9uYXJ5V2l0aE9iamVj
dHNBbmRLZXlzOgotICAgICAgICBVUkwsIEAiTlNFcnJvckZhaWxpbmdVUkxLZXkiLAotICAgICAg
ICBbVVJMIGFic29sdXRlU3RyaW5nXSwgQCJOU0Vycm9yRmFpbGluZ1VSTFN0cmluZ0tleSIsCi0g
ICAgICAgIG5pbF07Ci0KLSAgICByZXR1cm4gYWRvcHROUyhbW05TRXJyb3IgYWxsb2NdIGluaXRX
aXRoRG9tYWluOmRvbWFpbiBjb2RlOmNvZGUgdXNlckluZm86dXNlckluZm9dKTsKLX0KLQotLy8g
VXNlIE5TRXJyb3IncyBpZiBhdmFpbGFibGUuCi0KLVJlc291cmNlRXJyb3IgY2FuY2VsbGVkRXJy
b3IoY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0KQotewotICAgIHJldHVybiBSZXNvdXJj
ZUVycm9yKGNyZWF0ZU5TRXJyb3IoTlNVUkxFcnJvckRvbWFpbiwgTlNVUkxFcnJvckNhbmNlbGxl
ZCwgcmVxdWVzdC51cmwoKSkuZ2V0KCkpOwotfQotCi1SZXNvdXJjZUVycm9yIGZpbGVEb2VzTm90
RXhpc3RFcnJvcihjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiByZXNwb25zZSkKLXsKLSAgICByZXR1
cm4gUmVzb3VyY2VFcnJvcihjcmVhdGVOU0Vycm9yKE5TVVJMRXJyb3JEb21haW4sIE5TVVJMRXJy
b3JGaWxlRG9lc05vdEV4aXN0LCByZXNwb25zZS51cmwoKSkuZ2V0KCkpOwotfQotCi0KLS8vIE90
aGVyd2lzZSwgZmFsbGJhY2sgdG8gb3VyIG93biBlcnJvcnMuCi0KLVJlc291cmNlRXJyb3IgYmxv
Y2tlZEVycm9yKGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCkKLXsKLSAgICByZXR1cm4g
UmVzb3VyY2VFcnJvcihBUEk6OkVycm9yOjp3ZWJLaXRFcnJvckRvbWFpbigpLCBrV0tFcnJvckNv
ZGVDYW5ub3RVc2VSZXN0cmljdGVkUG9ydCwgcmVxdWVzdC51cmwoKSwgV0VCX1VJX1NUUklORygi
Tm90IGFsbG93ZWQgdG8gdXNlIHJlc3RyaWN0ZWQgbmV0d29yayBwb3J0IiwgIldlYktpdEVycm9y
Q2Fubm90VXNlUmVzdHJpY3RlZFBvcnQgZGVzY3JpcHRpb24iKSk7Ci19Ci0KLVJlc291cmNlRXJy
b3IgYmxvY2tlZEJ5Q29udGVudEJsb2NrZXJFcnJvcihjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJl
cXVlc3QpCi17Ci0gICAgcmV0dXJuIFJlc291cmNlRXJyb3IoQVBJOjpFcnJvcjo6d2ViS2l0RXJy
b3JEb21haW4oKSwga1dLRXJyb3JDb2RlRnJhbWVMb2FkQmxvY2tlZEJ5Q29udGVudEJsb2NrZXIs
IHJlcXVlc3QudXJsKCksIFdFQl9VSV9TVFJJTkcoIlRoZSBVUkwgd2FzIGJsb2NrZWQgYnkgYSBj
b250ZW50IGJsb2NrZXIiLCAiV2ViS2l0RXJyb3JCbG9ja2VkQnlDb250ZW50QmxvY2tlciBkZXNj
cmlwdGlvbiIpKTsKLX0KLQotUmVzb3VyY2VFcnJvciBjYW5ub3RTaG93VVJMRXJyb3IoY29uc3Qg
UmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0KQotewotICAgIHJldHVybiBSZXNvdXJjZUVycm9yKEFQ
STo6RXJyb3I6OndlYktpdEVycm9yRG9tYWluKCksIGtXS0Vycm9yQ29kZUNhbm5vdFNob3dVUkws
IHJlcXVlc3QudXJsKCksIFdFQl9VSV9TVFJJTkcoIlRoZSBVUkwgY2Fu4oCZdCBiZSBzaG93biIs
ICJXZWJLaXRFcnJvckNhbm5vdFNob3dVUkwgZGVzY3JpcHRpb24iKSk7Ci19Ci0KLVJlc291cmNl
RXJyb3IgaW50ZXJydXB0ZWRGb3JQb2xpY3lDaGFuZ2VFcnJvcihjb25zdCBSZXNvdXJjZVJlcXVl
c3QmIHJlcXVlc3QpCi17Ci0gICAgcmV0dXJuIFJlc291cmNlRXJyb3IoQVBJOjpFcnJvcjo6d2Vi
S2l0RXJyb3JEb21haW4oKSwga1dLRXJyb3JDb2RlRnJhbWVMb2FkSW50ZXJydXB0ZWRCeVBvbGlj
eUNoYW5nZSwgcmVxdWVzdC51cmwoKSwgV0VCX1VJX1NUUklORygiRnJhbWUgbG9hZCBpbnRlcnJ1
cHRlZCIsICJXZWJLaXRFcnJvckZyYW1lTG9hZEludGVycnVwdGVkQnlQb2xpY3lDaGFuZ2UgZGVz
Y3JpcHRpb24iKSk7Ci19Ci0KLSNpZiBFTkFCTEUoQ09OVEVOVF9GSUxURVJJTkcpCi1SZXNvdXJj
ZUVycm9yIGJsb2NrZWRCeUNvbnRlbnRGaWx0ZXJFcnJvcihjb25zdCBSZXNvdXJjZVJlcXVlc3Qm
IHJlcXVlc3QpCi17Ci0gICAgcmV0dXJuIFJlc291cmNlRXJyb3IoQVBJOjpFcnJvcjo6d2ViS2l0
RXJyb3JEb21haW4oKSwga1dLRXJyb3JDb2RlRnJhbWVMb2FkQmxvY2tlZEJ5Q29udGVudEZpbHRl
ciwgcmVxdWVzdC51cmwoKSwgV0VCX1VJX1NUUklORygiVGhlIFVSTCB3YXMgYmxvY2tlZCBieSBh
IGNvbnRlbnQgZmlsdGVyIiwgIldlYktpdEVycm9yQmxvY2tlZEJ5Q29udGVudEZpbHRlciIpKTsK
LX0KLSNlbmRpZgotCi1SZXNvdXJjZUVycm9yIGNhbm5vdFNob3dNSU1FVHlwZUVycm9yKGNvbnN0
IFJlc291cmNlUmVzcG9uc2UmIHJlc3BvbnNlKQotewotICAgIHJldHVybiBSZXNvdXJjZUVycm9y
KEFQSTo6RXJyb3I6OndlYktpdEVycm9yRG9tYWluKCksIGtXS0Vycm9yQ29kZUNhbm5vdFNob3dN
SU1FVHlwZSwgcmVzcG9uc2UudXJsKCksIFdFQl9VSV9TVFJJTkcoIkNvbnRlbnQgd2l0aCBzcGVj
aWZpZWQgTUlNRSB0eXBlIGNhbuKAmXQgYmUgc2hvd24iLCAiV2ViS2l0RXJyb3JDYW5ub3RTaG93
TUlNRVR5cGUgZGVzY3JpcHRpb24iKSk7Ci19Ci0KLVJlc291cmNlRXJyb3IgcGx1Z2luV2lsbEhh
bmRsZUxvYWRFcnJvcihjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiByZXNwb25zZSkKLXsKLSAgICBy
ZXR1cm4gUmVzb3VyY2VFcnJvcihBUEk6OkVycm9yOjp3ZWJLaXRFcnJvckRvbWFpbigpLCBrV0tF
cnJvckNvZGVQbHVnSW5XaWxsSGFuZGxlTG9hZCwgcmVzcG9uc2UudXJsKCksIFdFQl9VSV9TVFJJ
TkcoIlBsdWctaW4gaGFuZGxlZCBsb2FkIiwgIldlYktpdEVycm9yUGx1Z0luV2lsbEhhbmRsZUxv
YWQgZGVzY3JpcHRpb24iKSk7Ci19Ci0KLVJlc291cmNlRXJyb3IgaW50ZXJuYWxFcnJvcihjb25z
dCBVUkwmIHVybCkKLXsKLSAgICByZXR1cm4gUmVzb3VyY2VFcnJvcihBUEk6OkVycm9yOjp3ZWJL
aXRFcnJvckRvbWFpbigpLCBrV0tFcnJvckludGVybmFsLCB1cmwsIFdFQl9VSV9TVFJJTkcoIldl
YktpdCBlbmNvdW50ZXJlZCBhbiBpbnRlcm5hbCBlcnJvciIsICJXZWJLaXRFcnJvckludGVybmFs
IGRlc2NyaXB0aW9uIikpOwotfQotCi19IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvbWFjL1dlYkZyYW1lTmV0
d29ya2luZ0NvbnRleHQubW0gYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBw
b3J0L21hYy9XZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0Lm1tCmluZGV4IDFjYzE1YzY1NDFjYTE3
OTNlYmY4YzE3YjZhOTFhZWFmNWNjZTA3Y2MuLjFlZDJlYTUwZjQ1N2M4MjBhOTdiMjAzOWY1OTlj
ZGY3YTNmYTU4YjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29y
ZVN1cHBvcnQvbWFjL1dlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQubW0KKysrIGIvU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9tYWMvV2ViRnJhbWVOZXR3b3JraW5nQ29u
dGV4dC5tbQpAQCAtMzIsNiArMzIsNyBAQAogI2luY2x1ZGUgIldlYlBhZ2UuaCIKICNpbmNsdWRl
ICJXZWJQcm9jZXNzLmgiCiAjaW5jbHVkZSA8V2ViQ29yZS9DRk5ldHdvcmtTUEkuaD4KKyNpbmNs
dWRlIDxXZWJDb3JlL0Vycm9ycy5oPgogI2luY2x1ZGUgPFdlYkNvcmUvRnJhbWUuaD4KICNpbmNs
dWRlIDxXZWJDb3JlL0ZyYW1lTG9hZGVyLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9GcmFtZUxvYWRl
ckNsaWVudC5oPgpAQCAtOTksNyArMTAwLDcgQEAgU3RyaW5nIFdlYkZyYW1lTmV0d29ya2luZ0Nv
bnRleHQ6OnNvdXJjZUFwcGxpY2F0aW9uSWRlbnRpZmllcigpIGNvbnN0CiAKIFJlc291cmNlRXJy
b3IgV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dDo6YmxvY2tlZEVycm9yKGNvbnN0IFJlc291cmNl
UmVxdWVzdCYgcmVxdWVzdCkgY29uc3QKIHsKLSAgICByZXR1cm4gZnJhbWUoKS0+bG9hZGVyKCku
Y2xpZW50KCkuYmxvY2tlZEVycm9yKHJlcXVlc3QpOworICAgIHJldHVybiBXZWJDb3JlOjpibG9j
a2VkRXJyb3IocmVxdWVzdCk7CiB9CiAKIE5ldHdvcmtTdG9yYWdlU2Vzc2lvbiYgV2ViRnJhbWVO
ZXR3b3JraW5nQ29udGV4dDo6c3RvcmFnZVNlc3Npb24oKSBjb25zdApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL2d0ay9XZWJQcmludE9wZXJhdGlvbkd0ay5j
cHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvZ3RrL1dlYlByaW50T3BlcmF0
aW9uR3RrLmNwcAppbmRleCBiNjIwNWRiOTQ5NTAxM2U0YThlMjIxY2Q2YmZiNmQ4NDk4MzgzMDEy
Li43MGVmNTBlMDE4ZjZlMTJlMDZlOTJjMTExNDlkYTBlYzdiMTFhYmI1IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvZ3RrL1dlYlByaW50T3BlcmF0aW9uR3Rr
LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvZ3RrL1dlYlByaW50
T3BlcmF0aW9uR3RrLmNwcApAQCAtMzEsNyArMzEsNyBAQAogI2luY2x1ZGUgIldlYlBhZ2VQcm94
eU1lc3NhZ2VzLmgiCiAjaW5jbHVkZSAiV2ViUHJvY2Vzcy5oIgogI2luY2x1ZGUgPFdlYkNvcmUv
RG9jdW1lbnRMb2FkZXIuaD4KLSNpbmNsdWRlIDxXZWJDb3JlL0Vycm9yc0d0ay5oPgorI2luY2x1
ZGUgPFdlYkNvcmUvRXJyb3JzVW5peC5oPgogI2luY2x1ZGUgPFdlYkNvcmUvRnJhbWUuaD4KICNp
bmNsdWRlIDxXZWJDb3JlL0ludFJlY3QuaD4KICNpbmNsdWRlIDxXZWJDb3JlL05vdEltcGxlbWVu
dGVkLmg+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>285911</attachid>
            <date>2016-08-12 05:23:46 -0700</date>
            <delta_ts>2016-08-12 05:49:48 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-156974-20160812152205.patch</filename>
            <type>text/plain</type>
            <size>132923</size>
            <attacher name="Claudio Saavedra">csaavedra</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjA0NDEwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYTNiYjRkNmJiN2MzNjVh
YjU3N2QxMjcwYmIwNTVlMDRkZTdjOTM3Yy4uYjk0MDNjY2RjZDVjYTljZGVkNTNmZjQxYmQyMTY0
ZTk3OWFjZjQxNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEwOCBAQAorMjAxNi0wNS0yMCAgQ2xh
dWRpbyBTYWF2ZWRyYSAgPGNzYWF2ZWRyYUBpZ2FsaWEuY29tPgorCisgICAgICAgIFVuaWZ5aW5n
IEVycm9ycy9XZWJFcnJvcnMgaW50byBXZWJDb3JlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNTY5NzQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICBGcmFtZUxvYWRlckNsaWVudCBlcnJvciBtZXRob2RzIGlu
IFdlYkNvcmUgYW5kIFdlYkVycm9ycyBpbiBXSzIgYXJlCisgICAgICAgIHJlZHVuZGFudC4gRnVy
dGhlcm1vcmUsIEZyYW1lTG9hZGVyQ2xpZW50IGVycm9yIG1ldGhvZHMgZG8gbm90IGRlcGVuZAor
ICAgICAgICBpbiB0aGUgbG9hZGVyIGNsaWVudCBpbnN0YW5jZSBhdCBhbGwuCisKKyAgICAgICAg
UmVtb3ZlIHRoZSBlcnJvciBtZXRob2RzIGZyb20gRnJhbWVMb2FkZXJDbGllbnQgYW5kIGFkb3B0
IHRoZSBXZWJFcnJvcnMKKyAgICAgICAgZnJvbSBXSzIgaW50byBXZWJDb3JlLCBzdGFuZGFsb25l
IG1ldGhvZHMuIE1vdmUgdGhlIEVGTCwgR1RLLCBhbmQgV2luLCBhbmQgTWFjIGltcGxlbWVudGF0
aW9ucworICAgICAgICB0byBXZWJDb3JlL3BsYXRmb3JtLCBhbmQgdXBkYXRlIHRoZSBjb2RlIGV2
ZXJ5d2hlcmUgYWNjb3JkaW5nbHkuCisKKyAgICAgICAgKiBQbGF0Zm9ybUVmbC5jbWFrZToKKyAg
ICAgICAgKiBQbGF0Zm9ybUdUSy5jbWFrZToKKyAgICAgICAgKiBQbGF0Zm9ybU1hYy5jbWFrZToK
KyAgICAgICAgKiBQbGF0Zm9ybVdpbi5jbWFrZToKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJv
ai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogbG9hZGVyL0RvY3VtZW50TG9hZGVyLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50TG9hZGVyOjpjb250aW51ZUFmdGVyQ29udGVudFBv
bGljeSk6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudExvYWRlcjo6aW50ZXJydXB0ZWRGb3JQ
b2xpY3lDaGFuZ2VFcnJvcik6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudExvYWRlcjo6c3Rh
cnRMb2FkaW5nTWFpblJlc291cmNlKToKKyAgICAgICAgKiBsb2FkZXIvRW1wdHlDbGllbnRzLmg6
CisgICAgICAgICogbG9hZGVyL0ZyYW1lTG9hZGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZy
YW1lTG9hZGVyOjpjYW5jZWxsZWRFcnJvcik6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZUxvYWRl
cjo6YmxvY2tlZEVycm9yKToKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lTG9hZGVyOjpibG9ja2Vk
QnlDb250ZW50QmxvY2tlckVycm9yKTogRGVsZXRlZC4KKyAgICAgICAgKiBsb2FkZXIvRnJhbWVM
b2FkZXIuaDoKKyAgICAgICAgKiBsb2FkZXIvRnJhbWVMb2FkZXJDbGllbnQuaDoKKyAgICAgICAg
KiBsb2FkZXIvTmV0c2NhcGVQbHVnSW5TdHJlYW1Mb2FkZXIuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6TmV0c2NhcGVQbHVnSW5TdHJlYW1Mb2FkZXI6OmRpZFJlY2VpdmVSZXNwb25zZSk6CisgICAg
ICAgICogbG9hZGVyL1BvbGljeUNoZWNrZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UG9saWN5
Q2hlY2tlcjo6Y2Fubm90U2hvd01JTUVUeXBlKToKKyAgICAgICAgKFdlYkNvcmU6OlBvbGljeUNo
ZWNrZXI6OmNvbnRpbnVlQWZ0ZXJOYXZpZ2F0aW9uUG9saWN5KToKKyAgICAgICAgKiBsb2FkZXIv
UmVzb3VyY2VMb2FkZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VMb2FkZXI6OmJs
b2NrZWRFcnJvcik6CisgICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZUxvYWRlcjo6YmxvY2tlZEJ5
Q29udGVudEJsb2NrZXJFcnJvcik6CisgICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZUxvYWRlcjo6
Y2Fubm90U2hvd1VSTEVycm9yKToKKyAgICAgICAgKiBsb2FkZXIvYXBwY2FjaGUvQXBwbGljYXRp
b25DYWNoZUhvc3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6QXBwbGljYXRpb25DYWNoZUhvc3Q6
Om1heWJlTG9hZFN5bmNocm9ub3VzbHkpOgorICAgICAgICAqIHBsYXRmb3JtL0Vycm9ycy5jcHA6
IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6d2ViS2l0RXJyb3JEb21haW4pOgorICAgICAgICAq
IHBsYXRmb3JtL0Vycm9ycy5oOiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9lZmwvRXJyb3Jz
RWZsLmNwcDogUmVtb3ZlZC4KKyAgICAgICAgKFdlYkNvcmU6OmNhbmNlbGxlZEVycm9yKTogRGVs
ZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OmJsb2NrZWRFcnJvcik6IERlbGV0ZWQuCisgICAgICAg
IChXZWJDb3JlOjpibG9ja2VkQnlDb250ZW50QmxvY2tlckVycm9yKTogRGVsZXRlZC4KKyAgICAg
ICAgKFdlYkNvcmU6OmNhbm5vdFNob3dVUkxFcnJvcik6IERlbGV0ZWQuCisgICAgICAgIChXZWJD
b3JlOjppbnRlcnJ1cHRlZEZvclBvbGljeUNoYW5nZUVycm9yKTogRGVsZXRlZC4KKyAgICAgICAg
KFdlYkNvcmU6OmNhbm5vdFNob3dNSU1FVHlwZUVycm9yKTogRGVsZXRlZC4KKyAgICAgICAgKFdl
YkNvcmU6OmZpbGVEb2VzTm90RXhpc3RFcnJvcik6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3Jl
OjpwbHVnaW5XaWxsSGFuZGxlTG9hZEVycm9yKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6
OmRvd25sb2FkTmV0d29ya0Vycm9yKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OmRvd25s
b2FkQ2FuY2VsbGVkQnlVc2VyRXJyb3IpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6ZG93
bmxvYWREZXN0aW5hdGlvbkVycm9yKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OnByaW50
RXJyb3IpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6cHJpbnRlck5vdEZvdW5kRXJyb3Ip
OiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6aW52YWxpZFBhZ2VSYW5nZVRvUHJpbnQpOiBE
ZWxldGVkLgorICAgICAgICAqIHBsYXRmb3JtL2VmbC9FcnJvcnNFZmwuaDogUmVtb3ZlZC4KKyAg
ICAgICAgKiBwbGF0Zm9ybS9ndGsvRXJyb3JzR3RrLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmNh
bmNlbGxlZEVycm9yKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OmJsb2NrZWRFcnJvcik6
IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpibG9ja2VkQnlDb250ZW50QmxvY2tlckVycm9y
KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OmNhbm5vdFNob3dVUkxFcnJvcik6IERlbGV0
ZWQuCisgICAgICAgIChXZWJDb3JlOjppbnRlcnJ1cHRlZEZvclBvbGljeUNoYW5nZUVycm9yKTog
RGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OmNhbm5vdFNob3dNSU1FVHlwZUVycm9yKTogRGVs
ZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OmZpbGVEb2VzTm90RXhpc3RFcnJvcik6IERlbGV0ZWQu
CisgICAgICAgIChXZWJDb3JlOjpwbHVnaW5XaWxsSGFuZGxlTG9hZEVycm9yKTogRGVsZXRlZC4K
KyAgICAgICAgKFdlYkNvcmU6OmRvd25sb2FkTmV0d29ya0Vycm9yKTogRGVsZXRlZC4KKyAgICAg
ICAgKFdlYkNvcmU6OmRvd25sb2FkQ2FuY2VsbGVkQnlVc2VyRXJyb3IpOiBEZWxldGVkLgorICAg
ICAgICAoV2ViQ29yZTo6ZG93bmxvYWREZXN0aW5hdGlvbkVycm9yKTogRGVsZXRlZC4KKyAgICAg
ICAgKFdlYkNvcmU6OnByaW50RXJyb3IpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6cHJp
bnRlck5vdEZvdW5kRXJyb3IpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6aW52YWxpZFBh
Z2VSYW5nZVRvUHJpbnQpOiBEZWxldGVkLgorICAgICAgICAqIHBsYXRmb3JtL21hYy9FcnJvcnNN
YWMubW06IFJlbmFtZWQgZnJvbSBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBw
b3J0L21hYy9XZWJFcnJvcnNNYWMubW0uCisgICAgICAgIChXZWJDb3JlOjpjcmVhdGVOU0Vycm9y
KToKKyAgICAgICAgKFdlYkNvcmU6OmNhbmNlbGxlZEVycm9yKToKKyAgICAgICAgKFdlYkNvcmU6
OmZpbGVEb2VzTm90RXhpc3RFcnJvcik6CisgICAgICAgIChXZWJDb3JlOjpibG9ja2VkRXJyb3Ip
OgorICAgICAgICAoV2ViQ29yZTo6YmxvY2tlZEJ5Q29udGVudEJsb2NrZXJFcnJvcik6CisgICAg
ICAgIChXZWJDb3JlOjpjYW5ub3RTaG93VVJMRXJyb3IpOgorICAgICAgICAoV2ViQ29yZTo6aW50
ZXJydXB0ZWRGb3JQb2xpY3lDaGFuZ2VFcnJvcik6CisgICAgICAgIChXZWJDb3JlOjpjYW5ub3RT
aG93TUlNRVR5cGVFcnJvcik6CisgICAgICAgIChXZWJDb3JlOjpwbHVnaW5XaWxsSGFuZGxlTG9h
ZEVycm9yKToKKyAgICAgICAgKFdlYkNvcmU6OmludGVybmFsRXJyb3IpOgorICAgICAgICAqIHBs
YXRmb3JtL3VuaXgvRXJyb3JzVW5peC5jcHA6IFJlbmFtZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ndGsvRXJyb3JzR3RrLmNwcC4KKyAgICAgICAgKFdlYkNvcmU6OmNhbmNlbGxlZEVy
cm9yKToKKyAgICAgICAgKFdlYkNvcmU6OmJsb2NrZWRFcnJvcik6CisgICAgICAgIChXZWJDb3Jl
OjpibG9ja2VkQnlDb250ZW50QmxvY2tlckVycm9yKToKKyAgICAgICAgKFdlYkNvcmU6OmNhbm5v
dFNob3dVUkxFcnJvcik6CisgICAgICAgIChXZWJDb3JlOjppbnRlcnJ1cHRlZEZvclBvbGljeUNo
YW5nZUVycm9yKToKKyAgICAgICAgKFdlYkNvcmU6OmNhbm5vdFNob3dNSU1FVHlwZUVycm9yKToK
KyAgICAgICAgKFdlYkNvcmU6OmZpbGVEb2VzTm90RXhpc3RFcnJvcik6CisgICAgICAgIChXZWJD
b3JlOjpwbHVnaW5XaWxsSGFuZGxlTG9hZEVycm9yKToKKyAgICAgICAgKFdlYkNvcmU6OmRvd25s
b2FkTmV0d29ya0Vycm9yKToKKyAgICAgICAgKFdlYkNvcmU6OmRvd25sb2FkQ2FuY2VsbGVkQnlV
c2VyRXJyb3IpOgorICAgICAgICAoV2ViQ29yZTo6ZG93bmxvYWREZXN0aW5hdGlvbkVycm9yKToK
KyAgICAgICAgKFdlYkNvcmU6OnByaW50RXJyb3IpOgorICAgICAgICAoV2ViQ29yZTo6cHJpbnRl
ck5vdEZvdW5kRXJyb3IpOgorICAgICAgICAoV2ViQ29yZTo6aW52YWxpZFBhZ2VSYW5nZVRvUHJp
bnQpOgorICAgICAgICAoV2ViQ29yZTo6aW50ZXJuYWxFcnJvcik6CisgICAgICAgICogcGxhdGZv
cm0vdW5peC9FcnJvcnNVbml4Lmg6IFJlbmFtZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ndGsvRXJyb3JzR3RrLmguCisKIDIwMTYtMDgtMTIgIFBoaWxpcHBlIE5vcm1hbmQgIDxwbm9y
bWFuZEBpZ2FsaWEuY29tPgogCiAgICAgICAgIFtHU3RyZWFtZXJdIFBlcmZvcm1hbmNlIHByb2Js
ZW1zIHdpdGggYmlnZ2VyIHZpZGVvIHJlc29sdXRpb24gaW4gdGhlIHdlYnJ0YyBtZWRpYSBwbGF5
ZXIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJL
aXQvbWFjL0NoYW5nZUxvZwppbmRleCBjYzYwNjVhZGU3ZmJjYTk0MWQ0NzJjODA1MzQ1Mjc4OGFm
NTg1N2Y3Li4yY2UyZmRhZWRmMzc1ZGEzZWNhMDMyNTA3YzFlOWIxZTgxNmE1YzU4IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9tYWMv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMzMgQEAKKzIwMTYtMDUtMjAgIENsYXVkaW8gU2FhdmVkcmEg
IDxjc2FhdmVkcmFAaWdhbGlhLmNvbT4KKworICAgICAgICBVbmlmeWluZyBFcnJvcnMvV2ViRXJy
b3JzIGludG8gV2ViQ29yZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MTU2OTc0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgRnJhbWVMb2FkZXJDbGllbnQgZXJyb3IgbWV0aG9kcyBpbiBXZWJDb3JlIGFuZCBX
ZWJFcnJvcnMgaW4gV0syIGFyZQorICAgICAgICByZWR1bmRhbnQuIEZ1cnRoZXJtb3JlLCBGcmFt
ZUxvYWRlckNsaWVudCBlcnJvciBtZXRob2RzIGRvIG5vdCBkZXBlbmQKKyAgICAgICAgaW4gdGhl
IGxvYWRlciBjbGllbnQgaW5zdGFuY2UgYXQgYWxsLgorCisgICAgICAgIFJlbW92ZSB0aGUgZXJy
b3IgbWV0aG9kcyBmcm9tIEZyYW1lTG9hZGVyQ2xpZW50IGFuZCBhZG9wdCB0aGUgV2ViRXJyb3Jz
CisgICAgICAgIGZyb20gV0syIGludG8gV2ViQ29yZSwgc3RhbmRhbG9uZSBtZXRob2RzLiBNb3Zl
IHRoZSBFRkwsIEdUSywgYW5kIE1hYyBpbXBsZW1lbnRhdGlvbnMKKyAgICAgICAgdG8gV2ViQ29y
ZS9wbGF0Zm9ybSwgYW5kIHVwZGF0ZSB0aGUgY29kZSBldmVyeXdoZXJlIGFjY29yZGluZ2x5Lgor
CisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuaDoKKyAgICAg
ICAgKiBXZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5tbToKKyAgICAgICAgKFdl
YkZyYW1lTG9hZGVyQ2xpZW50OjpjYW5jZWxsZWRFcnJvcik6IERlbGV0ZWQuCisgICAgICAgIChX
ZWJGcmFtZUxvYWRlckNsaWVudDo6YmxvY2tlZEVycm9yKTogRGVsZXRlZC4KKyAgICAgICAgKFdl
YkZyYW1lTG9hZGVyQ2xpZW50OjpibG9ja2VkQnlDb250ZW50QmxvY2tlckVycm9yKTogRGVsZXRl
ZC4KKyAgICAgICAgKFdlYkZyYW1lTG9hZGVyQ2xpZW50OjpjYW5ub3RTaG93VVJMRXJyb3IpOiBE
ZWxldGVkLgorICAgICAgICAoV2ViRnJhbWVMb2FkZXJDbGllbnQ6OmludGVycnVwdGVkRm9yUG9s
aWN5Q2hhbmdlRXJyb3IpOiBEZWxldGVkLgorICAgICAgICAoV2ViRnJhbWVMb2FkZXJDbGllbnQ6
OmNhbm5vdFNob3dNSU1FVHlwZUVycm9yKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkZyYW1lTG9h
ZGVyQ2xpZW50OjpmaWxlRG9lc05vdEV4aXN0RXJyb3IpOiBEZWxldGVkLgorICAgICAgICAoV2Vi
RnJhbWVMb2FkZXJDbGllbnQ6OnBsdWdpbldpbGxIYW5kbGVMb2FkRXJyb3IpOiBEZWxldGVkLgor
ICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQubW06Cisg
ICAgICAgIChXZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0OjpibG9ja2VkRXJyb3IpOgorICAgICAg
ICAqIFdlYlZpZXcvV2ViSFRNTFJlcHJlc2VudGF0aW9uLm1tOgorICAgICAgICAoLVtXZWJIVE1M
UmVwcmVzZW50YXRpb24gcmVjZWl2ZWREYXRhOndpdGhEYXRhU291cmNlOl0pOgorCiAyMDE2LTA4
LTExICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CiAKICAgICAgICAgUmVncmVzc2lv
bihyMjA0MjY4KTogTWFpbCBjcmFzaGVzIHdoZW4gdHJ5aW5nIHRvIGNvbXBvc2UgYW4gZW1haWwK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0No
YW5nZUxvZwppbmRleCAzOTRjYmNmY2IyYmExNTUwMjliYTQyYTcwZmM0YzIxNGQzYzQ0ZDUwLi42
OGYwNmYzNWRlYzg5YjM3MjEwODMxOTA0YzFjMzJjMTJiM2ZhZTM2IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0x
LDMgKzEsOTMgQEAKKzIwMTYtMDUtMjAgIENsYXVkaW8gU2FhdmVkcmEgIDxjc2FhdmVkcmFAaWdh
bGlhLmNvbT4KKworICAgICAgICBVbmlmeWluZyBFcnJvcnMvV2ViRXJyb3JzIGludG8gV2ViQ29y
ZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTU2OTc0
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgRnJhbWVM
b2FkZXJDbGllbnQgZXJyb3IgbWV0aG9kcyBpbiBXZWJDb3JlIGFuZCBXZWJFcnJvcnMgaW4gV0sy
IGFyZQorICAgICAgICByZWR1bmRhbnQuIEZ1cnRoZXJtb3JlLCBGcmFtZUxvYWRlckNsaWVudCBl
cnJvciBtZXRob2RzIGRvIG5vdCBkZXBlbmQKKyAgICAgICAgaW4gdGhlIGxvYWRlciBjbGllbnQg
aW5zdGFuY2UgYXQgYWxsLgorCisgICAgICAgIFJlbW92ZSB0aGUgZXJyb3IgbWV0aG9kcyBmcm9t
IEZyYW1lTG9hZGVyQ2xpZW50IGFuZCBhZG9wdCB0aGUgV2ViRXJyb3JzCisgICAgICAgIGZyb20g
V0syIGludG8gV2ViQ29yZSwgc3RhbmRhbG9uZSBtZXRob2RzLiBNb3ZlIHRoZSBFRkwsIEdUSywg
YW5kIE1hYyBpbXBsZW1lbnRhdGlvbnMKKyAgICAgICAgdG8gV2ViQ29yZS9wbGF0Zm9ybSwgYW5k
IHVwZGF0ZSB0aGUgY29kZSBldmVyeXdoZXJlIGFjY29yZGluZ2x5LgorCisgICAgICAgICogTmV0
d29ya1Byb2Nlc3MvRG93bmxvYWRzL2VmbC9Eb3dubG9hZFNvdXBFcnJvcnNFZmwuY3BwOiBSZW1v
dmVkLgorICAgICAgICAoV2ViS2l0OjpwbGF0Zm9ybURvd25sb2FkTmV0d29ya0Vycm9yKTogRGVs
ZXRlZC4KKyAgICAgICAgKFdlYktpdDo6cGxhdGZvcm1Eb3dubG9hZERlc3RpbmF0aW9uRXJyb3Ip
OiBEZWxldGVkLgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL0Rvd25sb2Fkcy9ndGsvRG93bmxv
YWRTb3VwRXJyb3JzR3RrLmNwcDoKKyAgICAgICAgKFdlYktpdDo6cGxhdGZvcm1Eb3dubG9hZE5l
dHdvcmtFcnJvcik6IERlbGV0ZWQuCisgICAgICAgIChXZWJLaXQ6OnBsYXRmb3JtRG93bmxvYWRE
ZXN0aW5hdGlvbkVycm9yKTogRGVsZXRlZC4KKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9Eb3du
bG9hZHMvc291cC9Eb3dubG9hZFNvdXBFcnJvcnMuY3BwOiBSZW5hbWVkIGZyb20gU291cmNlL1dl
YktpdDIvTmV0d29ya1Byb2Nlc3MvRG93bmxvYWRzL2d0ay9Eb3dubG9hZFNvdXBFcnJvcnNHdGsu
Y3BwLgorICAgICAgICAoV2ViS2l0OjpwbGF0Zm9ybURvd25sb2FkTmV0d29ya0Vycm9yKToKKyAg
ICAgICAgKFdlYktpdDo6cGxhdGZvcm1Eb3dubG9hZERlc3RpbmF0aW9uRXJyb3IpOgorICAgICAg
ICAqIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtMb2FkLmNwcDoKKyAgICAgICAgKFdlYktpdDo6TmV0
d29ya0xvYWQ6Ondhc0Jsb2NrZWQpOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrTG9hZDo6Y2Fu
bm90U2hvd1VSTCk6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvbWFjL1JlbW90ZU5ldHdvcmtp
bmdDb250ZXh0Lm1tOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVOZXR3b3JraW5nQ29udGV4dDo6
YmxvY2tlZEVycm9yKToKKyAgICAgICAgKiBQbGF0Zm9ybUVmbC5jbWFrZToKKyAgICAgICAgKiBQ
bGF0Zm9ybUdUSy5jbWFrZToKKyAgICAgICAgKiBQbGF0Zm9ybU1hYy5jbWFrZToKKyAgICAgICAg
KiBTaGFyZWQvQVBJL0FQSUVycm9yLmNwcDoKKyAgICAgICAgKEFQSTo6RXJyb3I6OndlYktpdEVy
cm9yRG9tYWluKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2VmbC9ld2tfZXJyb3IuY3BwOgor
ICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdERvd25sb2FkLmNwcDoKKyAgICAgICAg
KiBVSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRFcnJvci5jcHA6CisgICAgICAgICogVUlQcm9jZXNz
L0FQSS9ndGsvV2ViS2l0UHJpdmF0ZS5jcHA6CisgICAgICAgICogVUlQcm9jZXNzL05ldHdvcmsv
Q3VzdG9tUHJvdG9jb2xzL3NvdXAvV2ViU291cEN1c3RvbVByb3RvY29sUmVxdWVzdE1hbmFnZXIu
Y3BwOgorICAgICAgICAqIFdlYktpdDIueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAg
ICAgKiBXZWJQcm9jZXNzL05ldHdvcmsvV2ViTG9hZGVyU3RyYXRlZ3kuY3BwOgorICAgICAgICAq
IFdlYlByb2Nlc3MvTmV0d29yay9XZWJSZXNvdXJjZUxvYWRlci5jcHA6CisgICAgICAgICogV2Vi
UHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJFcnJvcnMuaDogUmVtb3ZlZC4KKyAgICAgICAgKiBX
ZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmNwcDoKKyAgICAg
ICAgKFdlYktpdDo6V2ViRnJhbWVMb2FkZXJDbGllbnQ6OnNob3VsZEZhbGxCYWNrKToKKyAgICAg
ICAgKFdlYktpdDo6V2ViRnJhbWVMb2FkZXJDbGllbnQ6OmNhbmNlbGxlZEVycm9yKTogRGVsZXRl
ZC4KKyAgICAgICAgKFdlYktpdDo6V2ViRnJhbWVMb2FkZXJDbGllbnQ6OmJsb2NrZWRFcnJvcik6
IERlbGV0ZWQuCisgICAgICAgIChXZWJLaXQ6OldlYkZyYW1lTG9hZGVyQ2xpZW50OjpibG9ja2Vk
QnlDb250ZW50QmxvY2tlckVycm9yKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYktpdDo6V2ViRnJh
bWVMb2FkZXJDbGllbnQ6OmNhbm5vdFNob3dVUkxFcnJvcik6IERlbGV0ZWQuCisgICAgICAgIChX
ZWJLaXQ6OldlYkZyYW1lTG9hZGVyQ2xpZW50OjppbnRlcnJ1cHRlZEZvclBvbGljeUNoYW5nZUVy
cm9yKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYktpdDo6V2ViRnJhbWVMb2FkZXJDbGllbnQ6OmNh
bm5vdFNob3dNSU1FVHlwZUVycm9yKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYktpdDo6V2ViRnJh
bWVMb2FkZXJDbGllbnQ6OmZpbGVEb2VzTm90RXhpc3RFcnJvcik6IERlbGV0ZWQuCisgICAgICAg
IChXZWJLaXQ6OldlYkZyYW1lTG9hZGVyQ2xpZW50OjpwbHVnaW5XaWxsSGFuZGxlTG9hZEVycm9y
KTogRGVsZXRlZC4KKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1l
TG9hZGVyQ2xpZW50Lmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJQ
bGF0Zm9ybVN0cmF0ZWdpZXMuY3BwOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBv
cnQvZWZsL1dlYkVycm9yc0VmbC5jcHA6IFJlbW92ZWQuCisgICAgICAgIChXZWJLaXQ6OmNhbmNl
bGxlZEVycm9yKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYktpdDo6YmxvY2tlZEVycm9yKTogRGVs
ZXRlZC4KKyAgICAgICAgKFdlYktpdDo6YmxvY2tlZEJ5Q29udGVudEJsb2NrZXJFcnJvcik6IERl
bGV0ZWQuCisgICAgICAgIChXZWJLaXQ6OmNhbm5vdFNob3dVUkxFcnJvcik6IERlbGV0ZWQuCisg
ICAgICAgIChXZWJLaXQ6OmludGVycnVwdGVkRm9yUG9saWN5Q2hhbmdlRXJyb3IpOiBEZWxldGVk
LgorICAgICAgICAoV2ViS2l0OjpjYW5ub3RTaG93TUlNRVR5cGVFcnJvcik6IERlbGV0ZWQuCisg
ICAgICAgIChXZWJLaXQ6OmZpbGVEb2VzTm90RXhpc3RFcnJvcik6IERlbGV0ZWQuCisgICAgICAg
IChXZWJLaXQ6OnBsdWdpbldpbGxIYW5kbGVMb2FkRXJyb3IpOiBEZWxldGVkLgorICAgICAgICAo
V2ViS2l0OjppbnRlcm5hbEVycm9yKTogRGVsZXRlZC4KKyAgICAgICAgKiBXZWJQcm9jZXNzL1dl
YkNvcmVTdXBwb3J0L2d0ay9XZWJFcnJvcnNHdGsuY3BwOiBSZW1vdmVkLgorICAgICAgICAoV2Vi
S2l0OjpjYW5jZWxsZWRFcnJvcik6IERlbGV0ZWQuCisgICAgICAgIChXZWJLaXQ6OmJsb2NrZWRF
cnJvcik6IERlbGV0ZWQuCisgICAgICAgIChXZWJLaXQ6OmJsb2NrZWRCeUNvbnRlbnRCbG9ja2Vy
RXJyb3IpOiBEZWxldGVkLgorICAgICAgICAoV2ViS2l0OjpjYW5ub3RTaG93VVJMRXJyb3IpOiBE
ZWxldGVkLgorICAgICAgICAoV2ViS2l0OjppbnRlcnJ1cHRlZEZvclBvbGljeUNoYW5nZUVycm9y
KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYktpdDo6Y2Fubm90U2hvd01JTUVUeXBlRXJyb3IpOiBE
ZWxldGVkLgorICAgICAgICAoV2ViS2l0OjpmaWxlRG9lc05vdEV4aXN0RXJyb3IpOiBEZWxldGVk
LgorICAgICAgICAoV2ViS2l0OjpwbHVnaW5XaWxsSGFuZGxlTG9hZEVycm9yKTogRGVsZXRlZC4K
KyAgICAgICAgKFdlYktpdDo6aW50ZXJuYWxFcnJvcik6IERlbGV0ZWQuCisgICAgICAgICogV2Vi
UHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9tYWMvV2ViRXJyb3JzTWFjLm1tOgorICAgICAgICAoV2Vi
S2l0OjpjcmVhdGVOU0Vycm9yKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYktpdDo6Y2FuY2VsbGVk
RXJyb3IpOiBEZWxldGVkLgorICAgICAgICAoV2ViS2l0OjpmaWxlRG9lc05vdEV4aXN0RXJyb3Ip
OiBEZWxldGVkLgorICAgICAgICAoV2ViS2l0OjpibG9ja2VkRXJyb3IpOiBEZWxldGVkLgorICAg
ICAgICAoV2ViS2l0OjpibG9ja2VkQnlDb250ZW50QmxvY2tlckVycm9yKTogRGVsZXRlZC4KKyAg
ICAgICAgKFdlYktpdDo6Y2Fubm90U2hvd1VSTEVycm9yKTogRGVsZXRlZC4KKyAgICAgICAgKFdl
YktpdDo6aW50ZXJydXB0ZWRGb3JQb2xpY3lDaGFuZ2VFcnJvcik6IERlbGV0ZWQuCisgICAgICAg
IChXZWJLaXQ6OmNhbm5vdFNob3dNSU1FVHlwZUVycm9yKTogRGVsZXRlZC4KKyAgICAgICAgKFdl
YktpdDo6cGx1Z2luV2lsbEhhbmRsZUxvYWRFcnJvcik6IERlbGV0ZWQuCisgICAgICAgIChXZWJL
aXQ6OmludGVybmFsRXJyb3IpOiBEZWxldGVkLgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29y
ZVN1cHBvcnQvbWFjL1dlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQubW06CisgICAgICAgIChXZWJL
aXQ6OldlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQ6OmJsb2NrZWRFcnJvcik6CisgICAgICAgICog
V2ViUHJvY2Vzcy9XZWJQYWdlL2d0ay9XZWJQcmludE9wZXJhdGlvbkd0ay5jcHA6CisKIDIwMTYt
MDgtMTEgIEJyYWR5IEVpZHNvbiAgPGJlaWRzb25AYXBwbGUuY29tPgogCiAgICAgICAgIFtXSzJd
IERvbid0IG1vbml0b3IgZ2FtZXBhZHMgYXQgYWxsIHVubGVzcyBhbiBpbnRlcmVzdGVkIFdlYlBh
Z2VQcm94eSBpcyBpbiB0aGUgYWN0aXZlIHdpbmRvdy4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL0NNYWtlTGlzdHMudHh0IGIvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKaW5kZXgg
M2RlYTA0OWQ2OTFkOWRhN2FmMTJmNjNhZWEzZWMwNWRjYzM1YTA5MS4uYzIwNDVhYWRhYmJlYTQw
Nzc5MmQzMmNkYzg4NjU0ZGQ1NDYzNGM0NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ01h
a2VMaXN0cy50eHQKKysrIGIvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKQEAgLTIxMjUs
NiArMjEyNSw3IEBAIHNldChXZWJDb3JlX1NPVVJDRVMKICAgICBwbGF0Zm9ybS9EaXNwbGF5U2xl
ZXBEaXNhYmxlci5jcHAKICAgICBwbGF0Zm9ybS9EcmFnRGF0YS5jcHAKICAgICBwbGF0Zm9ybS9E
cmFnSW1hZ2UuY3BwCisgICAgcGxhdGZvcm0vRXJyb3JzLmNwcAogICAgIHBsYXRmb3JtL0V2ZW50
VHJhY2tpbmdSZWdpb25zLmNwcAogICAgIHBsYXRmb3JtL0ZpbGVDaG9vc2VyLmNwcAogICAgIHBs
YXRmb3JtL0ZpbGVTdHJlYW0uY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9QbGF0Zm9y
bUVmbC5jbWFrZSBiL1NvdXJjZS9XZWJDb3JlL1BsYXRmb3JtRWZsLmNtYWtlCmluZGV4IGU3YjA4
Nzc0OGM1ZjFlZGQ2Mjk3MDhjNGVkODI3ODhjNDgzOTBlY2UuLjdiOThhNzZkYzdiMGMxMTQ4Mzc4
MWRhOGZlNmM3NzVmMWFmYzc1YmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1BsYXRmb3Jt
RWZsLmNtYWtlCisrKyBiL1NvdXJjZS9XZWJDb3JlL1BsYXRmb3JtRWZsLmNtYWtlCkBAIC05OCw3
ICs5OCw2IEBAIGxpc3QoQVBQRU5EIFdlYkNvcmVfU09VUkNFUwogICAgIHBsYXRmb3JtL2VmbC9F
ZmxJbnNwZWN0b3JVdGlsaXRpZXMuY3BwCiAgICAgcGxhdGZvcm0vZWZsL0VmbEtleWJvYXJkVXRp
bGl0aWVzLmNwcAogICAgIHBsYXRmb3JtL2VmbC9FZmxTY3JlZW5VdGlsaXRpZXMuY3BwCi0gICAg
cGxhdGZvcm0vZWZsL0Vycm9yc0VmbC5jcHAKICAgICBwbGF0Zm9ybS9lZmwvRXZlbnRMb29wRWZs
LmNwcAogICAgIHBsYXRmb3JtL2VmbC9GaWxlU3lzdGVtRWZsLmNwcAogICAgIHBsYXRmb3JtL2Vm
bC9Mb2NhbGl6ZWRTdHJpbmdzRWZsLmNwcApAQCAtMjIwLDYgKzIxOSw3IEBAIGxpc3QoQVBQRU5E
IFdlYkNvcmVfU09VUkNFUwogCiAgICAgcGxhdGZvcm0vdGV4dC9oeXBoZW4vSHlwaGVuYXRpb25M
aWJIeXBoZW4uY3BwCiAKKyAgICBwbGF0Zm9ybS91bml4L0Vycm9yc1VuaXguY3BwCiAgICAgcGxh
dGZvcm0vdW5peC9Mb2dnaW5nVW5peC5jcHAKIAogICAgIHJlbmRlcmluZy9SZW5kZXJUaGVtZUVm
bC5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1BsYXRmb3JtR1RLLmNtYWtlIGIvU291
cmNlL1dlYkNvcmUvUGxhdGZvcm1HVEsuY21ha2UKaW5kZXggYTY5ZDAyNjA3ZmMzOTc2YTNkODE0
YjNmMDY5ZGRhMjJkZDMwMGVjNC4uZjJjZjY0ODU4NmUyNjEyODM1Yzc4MWU1NjNkNjdjYmNlMWVh
YmJkMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvUGxhdGZvcm1HVEsuY21ha2UKKysrIGIv
U291cmNlL1dlYkNvcmUvUGxhdGZvcm1HVEsuY21ha2UKQEAgLTE0Nyw3ICsxNDcsNiBAQCBsaXN0
KEFQUEVORCBXZWJDb3JlX1NPVVJDRVMKICAgICBwbGF0Zm9ybS9ncmFwaGljcy94MTEvUGxhdGZv
cm1EaXNwbGF5WDExLmNwcAogICAgIHBsYXRmb3JtL2dyYXBoaWNzL3gxMS9YVW5pcXVlUmVzb3Vy
Y2UuY3BwCiAKLSAgICBwbGF0Zm9ybS9ndGsvRXJyb3JzR3RrLmNwcAogICAgIHBsYXRmb3JtL2d0
ay9NSU1FVHlwZVJlZ2lzdHJ5R3RrLmNwcAogICAgIHBsYXRmb3JtL2d0ay9TY3JvbGxBbmltYXRv
ckd0ay5jcHAKICAgICBwbGF0Zm9ybS9ndGsvVGVtcG9yYXJ5TGlua1N0dWJzLmNwcApAQCAtMTg4
LDYgKzE4Nyw3IEBAIGxpc3QoQVBQRU5EIFdlYkNvcmVfU09VUkNFUwogCiAgICAgcGxhdGZvcm0v
dGV4dC9oeXBoZW4vSHlwaGVuYXRpb25MaWJIeXBoZW4uY3BwCiAKKyAgICBwbGF0Zm9ybS91bml4
L0Vycm9yc1VuaXguY3BwCiAgICAgcGxhdGZvcm0vdW5peC9Mb2dnaW5nVW5peC5jcHAKICkKIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvUGxhdGZvcm1NYWMuY21ha2UgYi9Tb3VyY2UvV2Vi
Q29yZS9QbGF0Zm9ybU1hYy5jbWFrZQppbmRleCA3NTUyY2Q3NWNkMTVjOGJmNjFhZjdkMmEwZWE5
ZmI5MTdmZTA3ZTM5Li5mZGQxNDQyYTUzM2MzOTRkOTViMWQ2NzMzODc5Nzk3ZWU0YzE0MDJjIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9QbGF0Zm9ybU1hYy5jbWFrZQorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9QbGF0Zm9ybU1hYy5jbWFrZQpAQCAtNTg1LDYgKzU4NSw3IEBAIGxpc3QoQVBQRU5E
IFdlYkNvcmVfU09VUkNFUwogICAgIHBsYXRmb3JtL21hYy9DdXJzb3JNYWMubW0KICAgICBwbGF0
Zm9ybS9tYWMvRHJhZ0RhdGFNYWMubW0KICAgICBwbGF0Zm9ybS9tYWMvRHJhZ0ltYWdlTWFjLm1t
CisgICAgcGxhdGZvcm0vbWFjL0Vycm9yc01hYy5tbQogICAgIHBsYXRmb3JtL21hYy9FdmVudExv
b3BNYWMubW0KICAgICBwbGF0Zm9ybS9tYWMvRmlsZVN5c3RlbU1hYy5tbQogICAgIHBsYXRmb3Jt
L21hYy9ISURHYW1lcGFkLmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvUGxhdGZvcm1X
aW4uY21ha2UgYi9Tb3VyY2UvV2ViQ29yZS9QbGF0Zm9ybVdpbi5jbWFrZQppbmRleCAxNGVmYzQz
YmQ3YWZlOTFkMWYxYmYwOWQ5MGQwMWY1N2RjMTdkYThiLi45Mjk5MWFiNjNlYTc1MmRmMWIwYzdk
ZDZhNmM0NjI0Y2I1ODFhNzJkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9QbGF0Zm9ybVdp
bi5jbWFrZQorKysgYi9Tb3VyY2UvV2ViQ29yZS9QbGF0Zm9ybVdpbi5jbWFrZQpAQCAtMTE1LDYg
KzExNSw3IEBAIGxpc3QoQVBQRU5EIFdlYkNvcmVfU09VUkNFUwogICAgIHBsYXRmb3JtL3dpbi9E
ZWZXbmRQcm9jV2luZG93Q2xhc3MuY3BwCiAgICAgcGxhdGZvcm0vd2luL0RyYWdEYXRhV2luLmNw
cAogICAgIHBsYXRmb3JtL3dpbi9EcmFnSW1hZ2VXaW4uY3BwCisgICAgcGxhdGZvcm0vd2luL0Vy
cm9yc1dpbi5jcHAKICAgICBwbGF0Zm9ybS93aW4vRXZlbnRMb29wV2luLmNwcAogICAgIHBsYXRm
b3JtL3dpbi9GaWxlU3lzdGVtV2luLmNwcAogICAgIHBsYXRmb3JtL3dpbi9HRElPYmplY3RDb3Vu
dGVyLmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJv
amVjdC5wYnhwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5w
Ynhwcm9qCmluZGV4IDc3NDcwMDgzNjdmZTY1MGRiODZkZTRkMDkxOGNhMTQ0OWM4YTk3YzYuLjgz
YzUwZGEwMjNkMjNjM2ZkYjk1MDU2NTQzODg2MWMwNDAyOWY3ZWYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTIwMTYsNiArMjAx
Niw3IEBACiAJCTUxMEQ0QTM2MTAzMTY1RUUwMDQ5RUE1NCAvKiBTb2NrZXRTdHJlYW1IYW5kbGVC
YXNlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUx
MEQ0QTMwMTAzMTY1RUUwMDQ5RUE1NCAvKiBTb2NrZXRTdHJlYW1IYW5kbGVCYXNlLmNwcCAqLzsg
fTsKIAkJNTEwRDRBMzcxMDMxNjVFRTAwNDlFQTU0IC8qIFNvY2tldFN0cmVhbUhhbmRsZUJhc2Uu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxMEQ0QTMx
MTAzMTY1RUUwMDQ5RUE1NCAvKiBTb2NrZXRTdHJlYW1IYW5kbGVCYXNlLmggKi87IHNldHRpbmdz
ID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJNTEwRDRBMzgxMDMxNjVFRTAw
NDlFQTU0IC8qIFNvY2tldFN0cmVhbUhhbmRsZUNsaWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTEwRDRBMzIxMDMxNjVFRTAwNDlFQTU0IC8qIFNv
Y2tldFN0cmVhbUhhbmRsZUNsaWVudC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFBy
aXZhdGUsICk7IH07IH07CisJCTUxMTNFNkQ2MUNFMEM3QTQwMDJEOTU2MSAvKiBFcnJvcnMuY3Bw
IGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTExM0U2RDUx
Q0UwQzc5MDAwMkQ5NTYxIC8qIEVycm9ycy5jcHAgKi87IH07CiAJCTUxMUVDMTI3MUM1MEFBQ0Ew
MDMyRjk4MyAvKiBJREJTZXJpYWxpemF0aW9uLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxMUVDMTI1MUM1MEFBNTcwMDMyRjk4MyAvKiBJREJTZXJp
YWxpemF0aW9uLmNwcCAqLzsgfTsKIAkJNTExRUMxMjgxQzUwQUFDQTAwMzJGOTgzIC8qIElEQlNl
cmlhbGl6YXRpb24uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDUxMUVDMTI2MUM1MEFBNTcwMDMyRjk4MyAvKiBJREJTZXJpYWxpemF0aW9uLmggKi87IH07
CiAJCTUxMUVDMTJCMUM1MEFCQkYwMDMyRjk4MyAvKiBTUUxpdGVJREJUcmFuc2FjdGlvbi5jcHAg
aW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MTFFQzEyOTFD
NTBBQkJBMDAzMkY5ODMgLyogU1FMaXRlSURCVHJhbnNhY3Rpb24uY3BwICovOyB9OwpAQCAtMjEx
Niw2ICsyMTE3LDggQEAKIAkJNTE2MTAzQjAxQ0FEQkE3QTAwMTZCNEM3IC8qIElEQlZhbHVlLmNw
cCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxNjEwM0FE
MUNBREI5QTMwMDE2QjRDNyAvKiBJREJWYWx1ZS5jcHAgKi87IH07CiAJCTUxNjJDN0Y0MTFGNzdF
RkIwMDYxMkVGRSAvKiBTY2hlbWVSZWdpc3RyeS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MTYyQzdGMjExRjc3RUZBMDA2MTJFRkUgLyogU2NoZW1l
UmVnaXN0cnkuY3BwICovOyB9OwogCQk1MTYyQzdGNTExRjc3RUZCMDA2MTJFRkUgLyogU2NoZW1l
UmVnaXN0cnkuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDUxNjJDN0YzMTFGNzdFRkIwMDYxMkVGRSAvKiBTY2hlbWVSZWdpc3RyeS5oICovOyBzZXR0aW5n
cyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCTUxNjQ3NjA0MUNFMDkwNUEw
MDkxRjBBOSAvKiBFcnJvcnMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDUxNjQ3NjAzMUNFMDkwMUMwMDkxRjBBOSAvKiBFcnJvcnMuaCAqLzsgc2V0dGlu
Z3MgPSB7QVRUUklCVVRFUyA9IChQdWJsaWMsICk7IH07IH07CisJCTUxNjQ3NjA2MUNFMDkwQjEw
MDkxRjBBOSAvKiBFcnJvcnNNYWMubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA1MTY0NzYwNTFDRTA5MDkxMDA5MUYwQTkgLyogRXJyb3JzTWFjLm1tICov
OyB9OwogCQk1MTY5NTM5NzEzMjlBM0M4MDBCOTJEMDQgLyogSWNvbkRhdGFiYXNlQmFzZS5jcHAg
aW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MTY5NTM5NTEz
MjlBM0M4MDBCOTJEMDQgLyogSWNvbkRhdGFiYXNlQmFzZS5jcHAgKi87IH07CiAJCTUxNjk1Mzk4
MTMyOUEzQzgwMEI5MkQwNCAvKiBJY29uRGF0YWJhc2VCYXNlLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MTY5NTM5NjEzMjlBM0M4MDBCOTJEMDQgLyog
SWNvbkRhdGFiYXNlQmFzZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUs
ICk7IH07IH07CiAJCTUxNkJCNzk0MENFOTFFNjgwMDUxMkY3OSAvKiBKU1RyZWVXYWxrZXJDdXN0
b20uY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTE2
QkI3OTIwQ0U5MUU2ODAwNTEyRjc5IC8qIEpTVHJlZVdhbGtlckN1c3RvbS5jcHAgKi87IH07CkBA
IC05MzQyLDYgKzkzNDUsNyBAQAogCQk1MTBENEEzMDEwMzE2NUVFMDA0OUVBNTQgLyogU29ja2V0
U3RyZWFtSGFuZGxlQmFzZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGgg
PSBTb2NrZXRTdHJlYW1IYW5kbGVCYXNlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJNTEwRDRBMzExMDMxNjVFRTAwNDlFQTU0IC8qIFNvY2tldFN0cmVhbUhhbmRsZUJhc2UuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU29ja2V0U3RyZWFtSGFuZGxlQmFzZS5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1MTBENEEzMjEwMzE2NUVFMDA0OUVBNTQg
LyogU29ja2V0U3RyZWFtSGFuZGxlQ2xpZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IFNvY2tldFN0cmVhbUhhbmRsZUNsaWVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OworCQk1MTEzRTZENTFDRTBDNzkwMDAyRDk1NjEgLyogRXJyb3JzLmNwcCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEVycm9ycy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCTUxMUVDMTI1MUM1MEFBNTcwMDMyRjk4MyAvKiBJREJTZXJpYWxpemF0aW9u
LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IElEQlNlcmlhbGl6YXRp
b24uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1MTFFQzEyNjFDNTBBQTU3MDAz
MkY5ODMgLyogSURCU2VyaWFsaXphdGlvbi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBJREJTZXJpYWxpemF0aW9uLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTUx
MUVDMTI5MUM1MEFCQkEwMDMyRjk4MyAvKiBTUUxpdGVJREJUcmFuc2FjdGlvbi5jcHAgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBTUUxpdGVJREJUcmFuc2FjdGlvbi5jcHA7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC05NDY5LDYgKzk0NzMsOCBAQAogCQk1MTY0
NUI1MjFCOUY4ODlCMDBGNzg5Q0UgLyogSURCVmVyc2lvbkNoYW5nZUV2ZW50LmNwcCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IElEQlZlcnNpb25DaGFuZ2VFdmVudC5jcHA7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTUxNjQ1QjUzMUI5Rjg4OUIwMEY3ODlDRSAv
KiBJREJWZXJzaW9uQ2hhbmdlRXZlbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gSURCVmVyc2lvbkNoYW5nZUV2ZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CTUxNjQ1QjU0MUI5Rjg4RTgwMEY3ODlDRSAvKiBJREJDdXJzb3IuY3BwICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSURCQ3Vyc29yLmNwcDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKKwkJNTE2NDc2MDMxQ0UwOTAxQzAwOTFGMEE5IC8qIEVycm9ycy5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBFcnJvcnMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKKwkJNTE2NDc2MDUxQ0UwOTA5MTAwOTFGMEE5IC8qIEVycm9yc01hYy5tbSAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IEVycm9yc01hYy5tbTsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTE2OTUzOTUxMzI5QTNDODAwQjkyRDA0IC8qIEljb25EYXRh
YmFzZUJhc2UuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSWNvbkRh
dGFiYXNlQmFzZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTUxNjk1Mzk2MTMy
OUEzQzgwMEI5MkQwNCAvKiBJY29uRGF0YWJhc2VCYXNlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IEljb25EYXRhYmFzZUJhc2UuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJNTE2QkI3OTIwQ0U5MUU2ODAwNTEyRjc5IC8qIEpTVHJlZVdhbGtlckN1c3RvbS5jcHAg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU1RyZWVXYWxrZXJDdXN0b20u
Y3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTgwMDQsNiArMTgwMTAsNyBAQAog
CQkJCUE3OTU0NjNEMEI1QzRDODAwMDdCNDM4RiAvKiBEcmFnRGF0YU1hYy5tbSAqLywKIAkJCQlB
N0NGQjNENDBCN0VEMTE4MDA3MEMzMkQgLyogRHJhZ0ltYWdlTWFjLm1tICovLAogCQkJCUUxQkE2
NkYwMTc0MkJEODYwMEMyMDI1MSAvKiBEeW5hbWljTGlua2VySW50ZXJwb3NpbmcuaCAqLywKKwkJ
CQk1MTY0NzYwNTFDRTA5MDkxMDA5MUYwQTkgLyogRXJyb3JzTWFjLm1tICovLAogCQkJCTFDQTE5
RTAzMERDMjU1OTUwMDY1QTk5NCAvKiBFdmVudExvb3BNYWMubW0gKi8sCiAJCQkJNTE0QjNGNzUw
QzcyMjA1NTAwMDUzMERGIC8qIEZpbGVTeXN0ZW1NYWMubW0gKi8sCiAJCQkJOTM1QzQ3NkUwOUFD
NEQ3MzAwQTZBQUI0IC8qIEtleUV2ZW50TWFjLm1tICovLApAQCAtMjI1ODEsNiArMjI1ODgsOCBA
QAogCQkJCUE3QjZFNjlEMEIyOTFBOTYwMEQwNTI5RiAvKiBEcmFnRGF0YS5oICovLAogCQkJCUE3
Q0ZCM0NGMEI3RUQxMEEwMDcwQzMyRCAvKiBEcmFnSW1hZ2UuY3BwICovLAogCQkJCUE3Q0ZCM0Qw
MEI3RUQxMEEwMDcwQzMyRCAvKiBEcmFnSW1hZ2UuaCAqLywKKwkJCQk1MTEzRTZENTFDRTBDNzkw
MDAyRDk1NjEgLyogRXJyb3JzLmNwcCAqLywKKwkJCQk1MTY0NzYwMzFDRTA5MDFDMDA5MUYwQTkg
LyogRXJyb3JzLmggKi8sCiAJCQkJMUNBMTlFMTUwREMyNTVDQTAwNjVBOTk0IC8qIEV2ZW50TG9v
cC5oICovLAogCQkJCTI2MkVDNDFDMUQxMTBCMUYwMEJBNzhGQyAvKiBFdmVudFRyYWNraW5nUmVn
aW9ucy5jcHAgKi8sCiAJCQkJMjYyRUM0MTkxRDA3OEYzRDAwQkE3OEZDIC8qIEV2ZW50VHJhY2tp
bmdSZWdpb25zLmggKi8sCkBAIC0yNTQzMCw2ICsyNTQzOSw3IEBACiAJCQkJMkRFQzY2NTUxQzgy
RDA0MTAwOTk4NDZBIC8qIERPTUhUTUxNZWRpYUVsZW1lbnQuaCBpbiBIZWFkZXJzICovLAogCQkJ
CTg1QkE0RDEzMEFBNjg4NjgwMDg4MDUyRCAvKiBET01IVE1MTWVudUVsZW1lbnQuaCBpbiBIZWFk
ZXJzICovLAogCQkJCTg1OUE5QzREMEFBNUUzQkQwMEI2OTRCMiAvKiBET01IVE1MTWV0YUVsZW1l
bnQuaCBpbiBIZWFkZXJzICovLAorCQkJCTUxNjQ3NjA0MUNFMDkwNUEwMDkxRjBBOSAvKiBFcnJv
cnMuaCBpbiBIZWFkZXJzICovLAogCQkJCTg1RUNCRUY1MEFBNzYyNjkwMDU0NEYwQiAvKiBET01I
VE1MTW9kRWxlbWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJODVERjgxMkIwQUE3Nzg3MjAwNDg2
QUQ3IC8qIERPTUhUTUxPYmplY3RFbGVtZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQkxQTY3QkY2
QjFENEZFNDIzMDA0MTJBQzcgLyogRE9NSFRNTE9MaXN0RWxlbWVudC5oIGluIEhlYWRlcnMgKi8s
CkBAIC0yOTMxMSw2ICsyOTMyMSw3IEBACiAJCQkJRjUyQUQ1RTQxNTM0MjQ1RjAwNTlGQkU2IC8q
IEVtcHR5Q2xpZW50cy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk1MTVCRTE4RjFENTRGNUZCMDBE
RDdDNjggLyogRW1wdHlHYW1lcGFkUHJvdmlkZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJRkQz
MTYwOTIxMkIwMjZGNzAwQzFBMzU5IC8qIEVxdWFsUG93ZXJQYW5uZXIuY3BwIGluIFNvdXJjZXMg
Ki8sCisJCQkJNTE2NDc2MDYxQ0UwOTBCMTAwOTFGMEE5IC8qIEVycm9yc01hYy5tbSBpbiBTb3Vy
Y2VzICovLAogCQkJCTJFQ0Y3QUUxMTAxNjJCNTgwMDQyN0RFNyAvKiBFcnJvckV2ZW50LmNwcCBp
biBTb3VyY2VzICovLAogCQkJCTg1MDMxQjQxMEE0NEVGQzcwMEY5OTJFMCAvKiBFdmVudC5jcHAg
aW4gU291cmNlcyAqLywKIAkJCQk0MTM4RDMzNjEyNDQwNTQ4MDAzMjNEMzMgLyogRXZlbnRDb250
ZXh0LmNwcCBpbiBTb3VyY2VzICovLApAQCAtMzEyOTQsNiArMzEzMDUsNyBAQAogCQkJCTFGQzQw
RkI5MTY1NUNDQjYwMDQwRjI5RSAvKiBTdWJpbWFnZUNhY2hlV2l0aFRpbWVyLmNwcCBpbiBTb3Vy
Y2VzICovLAogCQkJCUY1NUIzREQzMTI1MUYxMkQwMDNFRjI2OSAvKiBTdWJtaXRJbnB1dFR5cGUu
Y3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJOTNFMjI3RTQwQUY1ODlBRDAwRDQ4MzI0IC8qIFN1YnJl
c291cmNlTG9hZGVyLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTUxMTNFNkQ2MUNFMEM3QTQwMDJE
OTU2MSAvKiBFcnJvcnMuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJN0UzN0VGMkUxMzM5MjA4ODAw
QjI5MjUwIC8qIFN1YnJlc291cmNlTG9hZGVyQ0YuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJN0U4
RkFEQzQxOTlBOTVCMTAwNzE0OTY4IC8qIFN1YnJlc291cmNlTG9hZGVyQ29jb2EubW0gaW4gU291
cmNlcyAqLywKIAkJCQk5M0IyRDgxODBGOTkyMEVFMDA2QUU2QjIgLyogU3VkZGVuVGVybWluYXRp
b24ubW0gaW4gU291cmNlcyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9E
b2N1bWVudExvYWRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRG9jdW1lbnRMb2FkZXIu
Y3BwCmluZGV4IDhiNzRkNjQxN2U0NjEwOTBkZDE2ZmQ4ZjYzZWU5M2YwNjJlODVjMjYuLmJjNmUz
ZWE5MDc5NjY0YmNjNjM2OTE1NmQwNWM4MDkwOGIxNjM1ZWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2xvYWRlci9Eb2N1bWVudExvYWRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9h
ZGVyL0RvY3VtZW50TG9hZGVyLmNwcApAQCAtNDEsNiArNDEsNyBAQAogI2luY2x1ZGUgIkRvY3Vt
ZW50LmgiCiAjaW5jbHVkZSAiRG9jdW1lbnRQYXJzZXIuaCIKICNpbmNsdWRlICJEb2N1bWVudFdy
aXRlci5oIgorI2luY2x1ZGUgIkVycm9ycy5oIgogI2luY2x1ZGUgIkV2ZW50LmgiCiAjaW5jbHVk
ZSAiRXZlbnROYW1lcy5oIgogI2luY2x1ZGUgIkV4dGVuc2lvblN0eWxlU2hlZXRzLmgiCkBAIC03
NjksNyArNzcwLDcgQEAgdm9pZCBEb2N1bWVudExvYWRlcjo6Y29udGludWVBZnRlckNvbnRlbnRQ
b2xpY3koUG9saWN5QWN0aW9uIHBvbGljeSkKICAgICBjYXNlIFBvbGljeURvd25sb2FkOiB7CiAg
ICAgICAgIC8vIG1fbWFpblJlc291cmNlIGNhbiBiZSBudWxsLCBlLmcuIHdoZW4gbG9hZGluZyBh
IHN1YnN0aXR1dGUgcmVzb3VyY2UgZnJvbSBhcHBsaWNhdGlvbiBjYWNoZS4KICAgICAgICAgaWYg
KCFtX21haW5SZXNvdXJjZSkgewotICAgICAgICAgICAgbWFpblJlY2VpdmVkRXJyb3IoZnJhbWVM
b2FkZXIoKS0+Y2xpZW50KCkuY2Fubm90U2hvd1VSTEVycm9yKG1fcmVxdWVzdCkpOworICAgICAg
ICAgICAgbWFpblJlY2VpdmVkRXJyb3IoY2Fubm90U2hvd1VSTEVycm9yKG1fcmVxdWVzdCkpOwog
ICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9CiAKQEAgLTg0OCw3ICs4NDksNyBAQCB2b2lk
IERvY3VtZW50TG9hZGVyOjpjb21taXRMb2FkKGNvbnN0IGNoYXIqIGRhdGEsIGludCBsZW5ndGgp
CiAKIFJlc291cmNlRXJyb3IgRG9jdW1lbnRMb2FkZXI6OmludGVycnVwdGVkRm9yUG9saWN5Q2hh
bmdlRXJyb3IoKSBjb25zdAogewotICAgIHJldHVybiBmcmFtZUxvYWRlcigpLT5jbGllbnQoKS5p
bnRlcnJ1cHRlZEZvclBvbGljeUNoYW5nZUVycm9yKHJlcXVlc3QoKSk7CisgICAgcmV0dXJuIFdl
YkNvcmU6OmludGVycnVwdGVkRm9yUG9saWN5Q2hhbmdlRXJyb3IocmVxdWVzdCgpKTsKIH0KIAog
dm9pZCBEb2N1bWVudExvYWRlcjo6c3RvcExvYWRpbmdGb3JQb2xpY3lDaGFuZ2UoKQpAQCAtMTUx
NiwxNCArMTUxNywxNCBAQCB2b2lkIERvY3VtZW50TG9hZGVyOjpzdGFydExvYWRpbmdNYWluUmVz
b3VyY2UoKQogCiAjaWYgRU5BQkxFKENPTlRFTlRfRVhURU5TSU9OUykKICAgICBpZiAobV9tYWlu
UmVzb3VyY2UgJiYgbV9tYWluUmVzb3VyY2UtPmVycm9yT2NjdXJyZWQoKSAmJiBtX2ZyYW1lLT5w
YWdlKCkgJiYgbV9tYWluUmVzb3VyY2UtPnJlc291cmNlRXJyb3IoKS5kb21haW4oKSA9PSBDb250
ZW50RXh0ZW5zaW9uczo6V2ViS2l0Q29udGVudEJsb2NrZXJEb21haW4pIHsKLSAgICAgICAgY2Fu
Y2VsTWFpblJlc291cmNlTG9hZChmcmFtZUxvYWRlcigpLT5ibG9ja2VkQnlDb250ZW50QmxvY2tl
ckVycm9yKG1fcmVxdWVzdCkpOworICAgICAgICBjYW5jZWxNYWluUmVzb3VyY2VMb2FkKFdlYkNv
cmU6OmJsb2NrZWRCeUNvbnRlbnRCbG9ja2VyRXJyb3IobV9yZXF1ZXN0KSk7CiAgICAgICAgIHJl
dHVybjsKICAgICB9CiAjZW5kaWYKIAogICAgIGlmICghbV9tYWluUmVzb3VyY2UpIHsKICAgICAg
ICAgaWYgKCFtX3JlcXVlc3QudXJsKCkuaXNWYWxpZCgpKSB7Ci0gICAgICAgICAgICBjYW5jZWxN
YWluUmVzb3VyY2VMb2FkKGZyYW1lTG9hZGVyKCktPmNsaWVudCgpLmNhbm5vdFNob3dVUkxFcnJv
cihtX3JlcXVlc3QpKTsKKyAgICAgICAgICAgIGNhbmNlbE1haW5SZXNvdXJjZUxvYWQoY2Fubm90
U2hvd1VSTEVycm9yKG1fcmVxdWVzdCkpOwogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9FbXB0eUNsaWVudHMuaCBiL1Nv
dXJjZS9XZWJDb3JlL2xvYWRlci9FbXB0eUNsaWVudHMuaAppbmRleCA5MzZhYzQ4NWE0N2NkODIx
YTJkNzg2OGUyZTcxNDFjNDgwNTMxNjM0Li5mOWVhZTlhOGVjYTM4NWE3MTA4YmNjNWMwZGYxOGVi
ODU0OTJhYzRhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRW1wdHlDbGllbnRz
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0VtcHR5Q2xpZW50cy5oCkBAIC0zMzEsMTkg
KzMzMSw2IEBAIHB1YmxpYzoKICAgICB2b2lkIGNvbW1pdHRlZExvYWQoRG9jdW1lbnRMb2FkZXIq
LCBjb25zdCBjaGFyKiwgaW50KSBvdmVycmlkZSB7IH0KICAgICB2b2lkIGZpbmlzaGVkTG9hZGlu
ZyhEb2N1bWVudExvYWRlciopIG92ZXJyaWRlIHsgfQogCi0gICAgUmVzb3VyY2VFcnJvciBjYW5j
ZWxsZWRFcnJvcihjb25zdCBSZXNvdXJjZVJlcXVlc3QmKSBvdmVycmlkZSB7IHJldHVybiBSZXNv
dXJjZUVycm9yKFJlc291cmNlRXJyb3I6OlR5cGU6OkNhbmNlbGxhdGlvbik7IH0KLSAgICBSZXNv
dXJjZUVycm9yIGJsb2NrZWRFcnJvcihjb25zdCBSZXNvdXJjZVJlcXVlc3QmKSBvdmVycmlkZSB7
IHJldHVybiB7IH07IH0KLSAgICBSZXNvdXJjZUVycm9yIGJsb2NrZWRCeUNvbnRlbnRCbG9ja2Vy
RXJyb3IoY29uc3QgUmVzb3VyY2VSZXF1ZXN0Jikgb3ZlcnJpZGUgeyByZXR1cm4geyB9OyB9Ci0g
ICAgUmVzb3VyY2VFcnJvciBjYW5ub3RTaG93VVJMRXJyb3IoY29uc3QgUmVzb3VyY2VSZXF1ZXN0
Jikgb3ZlcnJpZGUgeyByZXR1cm4geyB9OyB9Ci0gICAgUmVzb3VyY2VFcnJvciBpbnRlcnJ1cHRl
ZEZvclBvbGljeUNoYW5nZUVycm9yKGNvbnN0IFJlc291cmNlUmVxdWVzdCYpIG92ZXJyaWRlIHsg
cmV0dXJuIHsgfTsgfQotI2lmIEVOQUJMRShDT05URU5UX0ZJTFRFUklORykKLSAgICBSZXNvdXJj
ZUVycm9yIGJsb2NrZWRCeUNvbnRlbnRGaWx0ZXJFcnJvcihjb25zdCBSZXNvdXJjZVJlcXVlc3Qm
KSBvdmVycmlkZSB7IHJldHVybiB7IH07IH0KLSNlbmRpZgotCi0gICAgUmVzb3VyY2VFcnJvciBj
YW5ub3RTaG93TUlNRVR5cGVFcnJvcihjb25zdCBSZXNvdXJjZVJlc3BvbnNlJikgb3ZlcnJpZGUg
eyByZXR1cm4geyB9OyB9Ci0gICAgUmVzb3VyY2VFcnJvciBmaWxlRG9lc05vdEV4aXN0RXJyb3Io
Y29uc3QgUmVzb3VyY2VSZXNwb25zZSYpIG92ZXJyaWRlIHsgcmV0dXJuIHsgfTsgfQotICAgIFJl
c291cmNlRXJyb3IgcGx1Z2luV2lsbEhhbmRsZUxvYWRFcnJvcihjb25zdCBSZXNvdXJjZVJlc3Bv
bnNlJikgb3ZlcnJpZGUgeyByZXR1cm4geyB9OyB9Ci0KICAgICBib29sIHNob3VsZEZhbGxCYWNr
KGNvbnN0IFJlc291cmNlRXJyb3ImKSBvdmVycmlkZSB7IHJldHVybiBmYWxzZTsgfQogCiAgICAg
Ym9vbCBjYW5IYW5kbGVSZXF1ZXN0KGNvbnN0IFJlc291cmNlUmVxdWVzdCYpIGNvbnN0IG92ZXJy
aWRlIHsgcmV0dXJuIGZhbHNlOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIv
RnJhbWVMb2FkZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmNwcApp
bmRleCBlZmIwMWIwNjc4ODkwZjljNWM3MjFlMDlkNTZiYTQ0OWZhODgxODgxLi4zZjEyZDc2ZGEx
NjY2MmI2M2RlM2Y3YzI0MThmZTExZDFkOTA3MjBhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9sb2FkZXIvRnJhbWVMb2FkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFt
ZUxvYWRlci5jcHAKQEAgLTU2LDYgKzU2LDcgQEAKICNpbmNsdWRlICJFZGl0b3IuaCIKICNpbmNs
dWRlICJFZGl0b3JDbGllbnQuaCIKICNpbmNsdWRlICJFbGVtZW50LmgiCisjaW5jbHVkZSAiRXJy
b3JzLmgiCiAjaW5jbHVkZSAiRXZlbnQuaCIKICNpbmNsdWRlICJFdmVudEhhbmRsZXIuaCIKICNp
bmNsdWRlICJFdmVudE5hbWVzLmgiCkBAIC0zNDM0LDE5ICszNDM1LDE0IEBAIHZvaWQgRnJhbWVM
b2FkZXI6OnJldHJ5QWZ0ZXJGYWlsZWRDYWNoZU9ubHlNYWluUmVzb3VyY2VMb2FkKCkKIAogUmVz
b3VyY2VFcnJvciBGcmFtZUxvYWRlcjo6Y2FuY2VsbGVkRXJyb3IoY29uc3QgUmVzb3VyY2VSZXF1
ZXN0JiByZXF1ZXN0KSBjb25zdAogewotICAgIFJlc291cmNlRXJyb3IgZXJyb3IgPSBtX2NsaWVu
dC5jYW5jZWxsZWRFcnJvcihyZXF1ZXN0KTsKKyAgICBSZXNvdXJjZUVycm9yIGVycm9yID0gV2Vi
Q29yZTo6Y2FuY2VsbGVkRXJyb3IocmVxdWVzdCk7CiAgICAgZXJyb3Iuc2V0VHlwZShSZXNvdXJj
ZUVycm9yOjpUeXBlOjpDYW5jZWxsYXRpb24pOwogICAgIHJldHVybiBlcnJvcjsKIH0KIAotUmVz
b3VyY2VFcnJvciBGcmFtZUxvYWRlcjo6YmxvY2tlZEJ5Q29udGVudEJsb2NrZXJFcnJvcihjb25z
dCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QpIGNvbnN0Ci17Ci0gICAgcmV0dXJuIG1fY2xpZW50
LmJsb2NrZWRCeUNvbnRlbnRCbG9ja2VyRXJyb3IocmVxdWVzdCk7Ci19Ci0KIFJlc291cmNlRXJy
b3IgRnJhbWVMb2FkZXI6OmJsb2NrZWRFcnJvcihjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVl
c3QpIGNvbnN0CiB7Ci0gICAgUmVzb3VyY2VFcnJvciBlcnJvciA9IG1fY2xpZW50LmJsb2NrZWRF
cnJvcihyZXF1ZXN0KTsKKyAgICBSZXNvdXJjZUVycm9yIGVycm9yID0gV2ViQ29yZTo6YmxvY2tl
ZEVycm9yKHJlcXVlc3QpOwogICAgIGVycm9yLnNldFR5cGUoUmVzb3VyY2VFcnJvcjo6VHlwZTo6
Q2FuY2VsbGF0aW9uKTsKICAgICByZXR1cm4gZXJyb3I7CiB9CkBAIC0zNDU0LDcgKzM0NTAsNyBA
QCBSZXNvdXJjZUVycm9yIEZyYW1lTG9hZGVyOjpibG9ja2VkRXJyb3IoY29uc3QgUmVzb3VyY2VS
ZXF1ZXN0JiByZXF1ZXN0KSBjb25zdAogI2lmIEVOQUJMRShDT05URU5UX0ZJTFRFUklORykKIFJl
c291cmNlRXJyb3IgRnJhbWVMb2FkZXI6OmJsb2NrZWRCeUNvbnRlbnRGaWx0ZXJFcnJvcihjb25z
dCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QpIGNvbnN0CiB7Ci0gICAgUmVzb3VyY2VFcnJvciBl
cnJvciA9IG1fY2xpZW50LmJsb2NrZWRCeUNvbnRlbnRGaWx0ZXJFcnJvcihyZXF1ZXN0KTsKKyAg
ICBSZXNvdXJjZUVycm9yIGVycm9yID0gV2ViQ29yZTo6YmxvY2tlZEJ5Q29udGVudEZpbHRlckVy
cm9yKHJlcXVlc3QpOwogICAgIGVycm9yLnNldFR5cGUoUmVzb3VyY2VFcnJvcjo6VHlwZTo6R2Vu
ZXJhbCk7CiAgICAgcmV0dXJuIGVycm9yOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
bG9hZGVyL0ZyYW1lTG9hZGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIu
aAppbmRleCBjYmIyYTZjMzJjYzliMDk2YzZkNWNmZWNhOTNkYTE1MDIzNmJmNzNlLi5lNWYwOTg4
N2MzODk2MmRiOWI4NWVjNzUxNGZiNTkxYThiZGI1NGI5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9sb2FkZXIvRnJhbWVMb2FkZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJh
bWVMb2FkZXIuaApAQCAtMTcwLDcgKzE3MCw2IEBAIHB1YmxpYzoKICAgICB2b2lkIGhhbmRsZUZh
bGxiYWNrQ29udGVudCgpOwogCiAgICAgV0VCQ09SRV9FWFBPUlQgUmVzb3VyY2VFcnJvciBjYW5j
ZWxsZWRFcnJvcihjb25zdCBSZXNvdXJjZVJlcXVlc3QmKSBjb25zdDsKLSAgICBXRUJDT1JFX0VY
UE9SVCBSZXNvdXJjZUVycm9yIGJsb2NrZWRCeUNvbnRlbnRCbG9ja2VyRXJyb3IoY29uc3QgUmVz
b3VyY2VSZXF1ZXN0JikgY29uc3Q7CiAgICAgUmVzb3VyY2VFcnJvciBibG9ja2VkRXJyb3IoY29u
c3QgUmVzb3VyY2VSZXF1ZXN0JikgY29uc3Q7CiAjaWYgRU5BQkxFKENPTlRFTlRfRklMVEVSSU5H
KQogICAgIFJlc291cmNlRXJyb3IgYmxvY2tlZEJ5Q29udGVudEZpbHRlckVycm9yKGNvbnN0IFJl
c291cmNlUmVxdWVzdCYpIGNvbnN0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVy
L0ZyYW1lTG9hZGVyQ2xpZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXJD
bGllbnQuaAppbmRleCA3ODVmYmUzOWQ2OWI3ZmQ0ZDk0ZDdmOGM0MDI3MTU4YzYzZTllYzhiLi4x
Y2NlYmVlMDQ5YzA5YzM4YTZmNmQ1MmM5YzQxYTFkOTU1Y2FhNjhhIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXJDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9sb2FkZXIvRnJhbWVMb2FkZXJDbGllbnQuaApAQCAtMjI2LDE5ICsyMjYsNiBAQCBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiAgICAgICAgIHZpcnR1YWwgdm9pZCBkaWRSdW5JbnNlY3VyZUNvbnRlbnQo
U2VjdXJpdHlPcmlnaW4qLCBjb25zdCBVUkwmKSA9IDA7CiAgICAgICAgIHZpcnR1YWwgdm9pZCBk
aWREZXRlY3RYU1MoY29uc3QgVVJMJiwgYm9vbCBkaWRCbG9ja0VudGlyZVBhZ2UpID0gMDsKIAot
ICAgICAgICB2aXJ0dWFsIFJlc291cmNlRXJyb3IgY2FuY2VsbGVkRXJyb3IoY29uc3QgUmVzb3Vy
Y2VSZXF1ZXN0JikgPSAwOwotICAgICAgICB2aXJ0dWFsIFJlc291cmNlRXJyb3IgYmxvY2tlZEVy
cm9yKGNvbnN0IFJlc291cmNlUmVxdWVzdCYpID0gMDsKLSAgICAgICAgdmlydHVhbCBSZXNvdXJj
ZUVycm9yIGJsb2NrZWRCeUNvbnRlbnRCbG9ja2VyRXJyb3IoY29uc3QgUmVzb3VyY2VSZXF1ZXN0
JikgPSAwOwotICAgICAgICB2aXJ0dWFsIFJlc291cmNlRXJyb3IgY2Fubm90U2hvd1VSTEVycm9y
KGNvbnN0IFJlc291cmNlUmVxdWVzdCYpID0gMDsKLSAgICAgICAgdmlydHVhbCBSZXNvdXJjZUVy
cm9yIGludGVycnVwdGVkRm9yUG9saWN5Q2hhbmdlRXJyb3IoY29uc3QgUmVzb3VyY2VSZXF1ZXN0
JikgPSAwOwotI2lmIEVOQUJMRShDT05URU5UX0ZJTFRFUklORykKLSAgICAgICAgdmlydHVhbCBS
ZXNvdXJjZUVycm9yIGJsb2NrZWRCeUNvbnRlbnRGaWx0ZXJFcnJvcihjb25zdCBSZXNvdXJjZVJl
cXVlc3QmKSA9IDA7Ci0jZW5kaWYKLQotICAgICAgICB2aXJ0dWFsIFJlc291cmNlRXJyb3IgY2Fu
bm90U2hvd01JTUVUeXBlRXJyb3IoY29uc3QgUmVzb3VyY2VSZXNwb25zZSYpID0gMDsKLSAgICAg
ICAgdmlydHVhbCBSZXNvdXJjZUVycm9yIGZpbGVEb2VzTm90RXhpc3RFcnJvcihjb25zdCBSZXNv
dXJjZVJlc3BvbnNlJikgPSAwOwotICAgICAgICB2aXJ0dWFsIFJlc291cmNlRXJyb3IgcGx1Z2lu
V2lsbEhhbmRsZUxvYWRFcnJvcihjb25zdCBSZXNvdXJjZVJlc3BvbnNlJikgPSAwOwotCiAgICAg
ICAgIHZpcnR1YWwgYm9vbCBzaG91bGRGYWxsQmFjayhjb25zdCBSZXNvdXJjZUVycm9yJikgPSAw
OwogCiAgICAgICAgIHZpcnR1YWwgYm9vbCBjYW5IYW5kbGVSZXF1ZXN0KGNvbnN0IFJlc291cmNl
UmVxdWVzdCYpIGNvbnN0ID0gMDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9O
ZXRzY2FwZVBsdWdJblN0cmVhbUxvYWRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvTmV0
c2NhcGVQbHVnSW5TdHJlYW1Mb2FkZXIuY3BwCmluZGV4IDZiOWEzNDRlYTI4NmE4ZWQwMTM3ZWY0
OTYzM2E0OTIzODYzNTE3ZGUuLjU3MmViY2Y1NjEzMGE5NTc0ODJjODFjZTkyZDljMWQ5MzcxMTJi
OTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9OZXRzY2FwZVBsdWdJblN0cmVh
bUxvYWRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL05ldHNjYXBlUGx1Z0luU3Ry
ZWFtTG9hZGVyLmNwcApAQCAtMzAsNiArMzAsNyBAQAogI2luY2x1ZGUgIk5ldHNjYXBlUGx1Z0lu
U3RyZWFtTG9hZGVyLmgiCiAKICNpbmNsdWRlICJEb2N1bWVudExvYWRlci5oIgorI2luY2x1ZGUg
IkVycm9ycy5oIgogI2luY2x1ZGUgIkZyYW1lTG9hZGVyLmgiCiAjaW5jbHVkZSAiRnJhbWVMb2Fk
ZXJDbGllbnQuaCIKICNpbmNsdWRlIDx3dGYvUmVmLmg+CkBAIC0xMjQsNyArMTI1LDcgQEAgdm9p
ZCBOZXRzY2FwZVBsdWdJblN0cmVhbUxvYWRlcjo6ZGlkUmVjZWl2ZVJlc3BvbnNlKGNvbnN0IFJl
c291cmNlUmVzcG9uc2UmIHJlc3AKIAogICAgIC8vIFN0YXR1cyBjb2RlIGNhbiBiZSBudWxsIHdo
ZW4gc2VydmluZyBmcm9tIGEgV2ViIGFyY2hpdmUuCiAgICAgaWYgKHJlc3BvbnNlLmh0dHBTdGF0
dXNDb2RlKCkgJiYgKHJlc3BvbnNlLmh0dHBTdGF0dXNDb2RlKCkgPCAxMDAgfHwgcmVzcG9uc2Uu
aHR0cFN0YXR1c0NvZGUoKSA+PSA0MDApKQotICAgICAgICBjYW5jZWwoZnJhbWVMb2FkZXIoKS0+
Y2xpZW50KCkuZmlsZURvZXNOb3RFeGlzdEVycm9yKHJlc3BvbnNlKSk7CisgICAgICAgIGNhbmNl
bChmaWxlRG9lc05vdEV4aXN0RXJyb3IocmVzcG9uc2UpKTsKIH0KIAogdm9pZCBOZXRzY2FwZVBs
dWdJblN0cmVhbUxvYWRlcjo6ZGlkUmVjZWl2ZURhdGEoY29uc3QgY2hhciogZGF0YSwgdW5zaWdu
ZWQgbGVuZ3RoLCBsb25nIGxvbmcgZW5jb2RlZERhdGFMZW5ndGgsIERhdGFQYXlsb2FkVHlwZSBk
YXRhUGF5bG9hZFR5cGUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvUG9saWN5
Q2hlY2tlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvUG9saWN5Q2hlY2tlci5jcHAKaW5k
ZXggMjljNjUwNzc3ODAzZGM5NzZiZGUzMjYzMDc0MTk4NTQwYWQ5YzA0OS4uMWFmNWNlNzZiYzZh
NDRhNzBiMWU2NzgwNWZhNGRiYjQzZjE0NDYyOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
bG9hZGVyL1BvbGljeUNoZWNrZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Qb2xp
Y3lDaGVja2VyLmNwcApAQCAtMzUsNiArMzUsNyBAQAogI2luY2x1ZGUgIkNvbnRlbnRTZWN1cml0
eVBvbGljeS5oIgogI2luY2x1ZGUgIkRPTVdpbmRvdy5oIgogI2luY2x1ZGUgIkRvY3VtZW50TG9h
ZGVyLmgiCisjaW5jbHVkZSAiRXJyb3JzLmgiCiAjaW5jbHVkZSAiRXZlbnROYW1lcy5oIgogI2lu
Y2x1ZGUgIkZvcm1TdGF0ZS5oIgogI2luY2x1ZGUgIkZyYW1lLmgiCkBAIC0xODUsNyArMTg2LDcg
QEAgdm9pZCBQb2xpY3lDaGVja2VyOjpzdG9wQ2hlY2soKQogCiB2b2lkIFBvbGljeUNoZWNrZXI6
OmNhbm5vdFNob3dNSU1FVHlwZShjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiByZXNwb25zZSkKIHsK
LSAgICBoYW5kbGVVbmltcGxlbWVudGFibGVQb2xpY3kobV9mcmFtZS5sb2FkZXIoKS5jbGllbnQo
KS5jYW5ub3RTaG93TUlNRVR5cGVFcnJvcihyZXNwb25zZSkpOworICAgIGhhbmRsZVVuaW1wbGVt
ZW50YWJsZVBvbGljeShjYW5ub3RTaG93TUlNRVR5cGVFcnJvcihyZXNwb25zZSkpOwogfQogCiB2
b2lkIFBvbGljeUNoZWNrZXI6OmNvbnRpbnVlTG9hZEFmdGVyV2lsbFN1Ym1pdEZvcm0oUG9saWN5
QWN0aW9uKQpAQCAtMjE3LDcgKzIxOCw3IEBAIHZvaWQgUG9saWN5Q2hlY2tlcjo6Y29udGludWVB
ZnRlck5hdmlnYXRpb25Qb2xpY3koUG9saWN5QWN0aW9uIHBvbGljeSkKICAgICAgICAgICAgIFJl
c291cmNlUmVxdWVzdCByZXF1ZXN0KGNhbGxiYWNrLnJlcXVlc3QoKSk7CiAKICAgICAgICAgICAg
IGlmICghbV9mcmFtZS5sb2FkZXIoKS5jbGllbnQoKS5jYW5IYW5kbGVSZXF1ZXN0KHJlcXVlc3Qp
KSB7Ci0gICAgICAgICAgICAgICAgaGFuZGxlVW5pbXBsZW1lbnRhYmxlUG9saWN5KG1fZnJhbWUu
bG9hZGVyKCkuY2xpZW50KCkuY2Fubm90U2hvd1VSTEVycm9yKGNhbGxiYWNrLnJlcXVlc3QoKSkp
OworICAgICAgICAgICAgICAgIGhhbmRsZVVuaW1wbGVtZW50YWJsZVBvbGljeShjYW5ub3RTaG93
VVJMRXJyb3IoY2FsbGJhY2sucmVxdWVzdCgpKSk7CiAgICAgICAgICAgICAgICAgY2FsbGJhY2su
Y2xlYXJSZXF1ZXN0KCk7CiAgICAgICAgICAgICAgICAgc2hvdWxkQ29udGludWUgPSBmYWxzZTsK
ICAgICAgICAgICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9SZXNvdXJj
ZUxvYWRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvUmVzb3VyY2VMb2FkZXIuY3BwCmlu
ZGV4IGM3MWI2YjI0NGIxNDkxYWExOWJmNGJjYzAzOWMwYWY1ZDQ5YTI1MzMuLjBhODc2OWViNTcz
OWQ0NDllMGU3ZDQ3ODJlNzA5NzU5YzgyOGZiZjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2xvYWRlci9SZXNvdXJjZUxvYWRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL1Jl
c291cmNlTG9hZGVyLmNwcApAQCAtMzYsNiArMzYsNyBAQAogI2luY2x1ZGUgIkRpYWdub3N0aWNM
b2dnaW5nQ2xpZW50LmgiCiAjaW5jbHVkZSAiRGlhZ25vc3RpY0xvZ2dpbmdLZXlzLmgiCiAjaW5j
bHVkZSAiRG9jdW1lbnRMb2FkZXIuaCIKKyNpbmNsdWRlICJFcnJvcnMuaCIKICNpbmNsdWRlICJG
cmFtZS5oIgogI2luY2x1ZGUgIkZyYW1lTG9hZGVyLmgiCiAjaW5jbHVkZSAiRnJhbWVMb2FkZXJD
bGllbnQuaCIKQEAgLTYxMywxNyArNjE0LDE3IEBAIFJlc291cmNlRXJyb3IgUmVzb3VyY2VMb2Fk
ZXI6OmNhbmNlbGxlZEVycm9yKCkKIAogUmVzb3VyY2VFcnJvciBSZXNvdXJjZUxvYWRlcjo6Ymxv
Y2tlZEVycm9yKCkKIHsKLSAgICByZXR1cm4gZnJhbWVMb2FkZXIoKS0+Y2xpZW50KCkuYmxvY2tl
ZEVycm9yKG1fcmVxdWVzdCk7CisgICAgcmV0dXJuIFdlYkNvcmU6OmJsb2NrZWRFcnJvcihtX3Jl
cXVlc3QpOwogfQogCiBSZXNvdXJjZUVycm9yIFJlc291cmNlTG9hZGVyOjpibG9ja2VkQnlDb250
ZW50QmxvY2tlckVycm9yKCkKIHsKLSAgICByZXR1cm4gZnJhbWVMb2FkZXIoKS0+Y2xpZW50KCku
YmxvY2tlZEJ5Q29udGVudEJsb2NrZXJFcnJvcihtX3JlcXVlc3QpOworICAgIHJldHVybiBXZWJD
b3JlOjpibG9ja2VkQnlDb250ZW50QmxvY2tlckVycm9yKG1fcmVxdWVzdCk7CiB9CiAKIFJlc291
cmNlRXJyb3IgUmVzb3VyY2VMb2FkZXI6OmNhbm5vdFNob3dVUkxFcnJvcigpCiB7Ci0gICAgcmV0
dXJuIGZyYW1lTG9hZGVyKCktPmNsaWVudCgpLmNhbm5vdFNob3dVUkxFcnJvcihtX3JlcXVlc3Qp
OworICAgIHJldHVybiBXZWJDb3JlOjpjYW5ub3RTaG93VVJMRXJyb3IobV9yZXF1ZXN0KTsKIH0K
IAogUmVzb3VyY2VSZXF1ZXN0IFJlc291cmNlTG9hZGVyOjp3aWxsU2VuZFJlcXVlc3QoUmVzb3Vy
Y2VIYW5kbGUqLCBSZXNvdXJjZVJlcXVlc3QmJiByZXF1ZXN0LCBSZXNvdXJjZVJlc3BvbnNlJiYg
cmVkaXJlY3RSZXNwb25zZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9hcHBj
YWNoZS9BcHBsaWNhdGlvbkNhY2hlSG9zdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvYXBw
Y2FjaGUvQXBwbGljYXRpb25DYWNoZUhvc3QuY3BwCmluZGV4IGFiNzRlYzUxYzg4NTRmNDA1ZjNj
YjAwNTg1NTZlYmQ5Nzc5ZjYwNTMuLjE1MTNmZDQzNGVjN2MyOWNmZTYyNmU0ZmZkZGM5M2RjYmFk
ZDA2OGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9hcHBjYWNoZS9BcHBsaWNh
dGlvbkNhY2hlSG9zdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2FwcGNhY2hlL0Fw
cGxpY2F0aW9uQ2FjaGVIb3N0LmNwcApAQCAtMzIsNiArMzIsNyBAQAogI2luY2x1ZGUgIkNvbnRl
bnRTZWN1cml0eVBvbGljeS5oIgogI2luY2x1ZGUgIkRvY3VtZW50TG9hZGVyLmgiCiAjaW5jbHVk
ZSAiRE9NQXBwbGljYXRpb25DYWNoZS5oIgorI2luY2x1ZGUgIkVycm9ycy5oIgogI2luY2x1ZGUg
IkZpbGVTeXN0ZW0uaCIKICNpbmNsdWRlICJGcmFtZS5oIgogI2luY2x1ZGUgIkZyYW1lTG9hZGVy
LmgiCkBAIC0yNDQsNyArMjQ1LDcgQEAgYm9vbCBBcHBsaWNhdGlvbkNhY2hlSG9zdDo6bWF5YmVM
b2FkU3luY2hyb25vdXNseShSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIFJlc28KICAgICAgICAg
ICAgICAgICBkYXRhID0gU2hhcmVkQnVmZmVyOjpjcmVhdGVXaXRoQ29udGVudHNPZkZpbGUocmVz
b3VyY2UtPnBhdGgoKSk7CiAgICAgICAgIH0KICAgICAgICAgaWYgKCFkYXRhKQotICAgICAgICAg
ICAgZXJyb3IgPSBtX2RvY3VtZW50TG9hZGVyLmZyYW1lTG9hZGVyKCktPmNsaWVudCgpLmNhbm5v
dFNob3dVUkxFcnJvcihyZXF1ZXN0KTsKKyAgICAgICAgICAgIGVycm9yID0gY2Fubm90U2hvd1VS
TEVycm9yKHJlcXVlc3QpOwogICAgICAgICBlbHNlCiAgICAgICAgICAgICByZXNwb25zZSA9IHJl
c291cmNlLT5yZXNwb25zZSgpOwogICAgICAgICByZXR1cm4gdHJ1ZTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL0Vycm9ycy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9FcnJvcnMuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjAwNDkzNTBkYjI5MWIyZDM3ZDJlNTZmMGQ5OTlhNjUz
OWM4ZWZiYmYKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9FcnJv
cnMuY3BwCkBAIC0wLDAgKzEsMTUgQEAKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJF
cnJvcnMuaCIKKworI2luY2x1ZGUgPHd0Zi9OZXZlckRlc3Ryb3llZC5oPgorI2luY2x1ZGUgPHd0
Zi90ZXh0L1dURlN0cmluZy5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NvbnN0IFdURjo6
U3RyaW5nJiB3ZWJLaXRFcnJvckRvbWFpbigpCit7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVk
PFdURjo6U3RyaW5nPiB3ZWJLaXRFcnJvckRvbWFpblN0cmluZyhBU0NJSUxpdGVyYWwoIldlYktp
dEVycm9yRG9tYWluIikpOworICAgIHJldHVybiB3ZWJLaXRFcnJvckRvbWFpblN0cmluZzsKK30K
KworfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vRXJyb3JzLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9FcnJvcnMuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5hOWNiZmJiNTYxZjhkNTMy
OGVmNDQxYmUyOTE0Y2VmNGFhY2M3ZGI4Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vRXJyb3JzLmgKQEAgLTAsMCArMSw2MyBAQAorLyoKKyAqIENvcHlyaWdodCAo
QykgMjAwNiwgMjAwNywgMjAwOCwgMjAwOSwgMjAxMCwgMjAxMSwgMjAxMiBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTIgR29vZ2xlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxNiBJZ2FsaWEsIFMuTC4KKyAq
CisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqCisgKiAxLiAgUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIuIAorICogMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBt
dXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICog
ICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZSBkaXN0cmlidXRpb24uIAorICogMy4gIE5laXRoZXIgdGhlIG5hbWUgb2YgQXBwbGUgSW5jLiAo
IkFwcGxlIikgbm9yIHRoZSBuYW1lcyBvZgorICogICAgIGl0cyBjb250cmlidXRvcnMgbWF5IGJl
IHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQKKyAqICAgICBmcm9t
IHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24u
IAorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQU5EIElUUyBDT05U
UklCVVRPUlMgIkFTIElTIiBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElF
UywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECisgKiBXQVJSQU5U
SUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBP
U0UgQVJFCisgKiBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBPUiBJVFMgQ09O
VFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZCisgKiBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUworICogKElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdP
T0RTIE9SIFNFUlZJQ0VTOworICogTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJV
U0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5ECisgKiBPTiBBTlkgVEhFT1JZ
IE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1Ig
VE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBB
TlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GCisgKiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgRXJy
b3JzX2gKKyNkZWZpbmUgRXJyb3JzX2gKKworbmFtZXNwYWNlIFdURiB7CitjbGFzcyBTdHJpbmc7
Cit9CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKK2NsYXNzIFJlc291cmNlRXJyb3I7CitjbGFzcyBS
ZXNvdXJjZVJlcXVlc3Q7CitjbGFzcyBSZXNvdXJjZVJlc3BvbnNlOworY2xhc3MgVVJMOworCitX
RUJDT1JFX0VYUE9SVCBSZXNvdXJjZUVycm9yIGNhbmNlbGxlZEVycm9yKGNvbnN0IFJlc291cmNl
UmVxdWVzdCYpOworV0VCQ09SRV9FWFBPUlQgUmVzb3VyY2VFcnJvciBibG9ja2VkRXJyb3IoY29u
c3QgUmVzb3VyY2VSZXF1ZXN0Jik7CitXRUJDT1JFX0VYUE9SVCBSZXNvdXJjZUVycm9yIGJsb2Nr
ZWRCeUNvbnRlbnRCbG9ja2VyRXJyb3IoY29uc3QgUmVzb3VyY2VSZXF1ZXN0Jik7CitXRUJDT1JF
X0VYUE9SVCBSZXNvdXJjZUVycm9yIGNhbm5vdFNob3dVUkxFcnJvcihjb25zdCBSZXNvdXJjZVJl
cXVlc3QmKTsKK1dFQkNPUkVfRVhQT1JUIFJlc291cmNlRXJyb3IgaW50ZXJydXB0ZWRGb3JQb2xp
Y3lDaGFuZ2VFcnJvcihjb25zdCBSZXNvdXJjZVJlcXVlc3QmKTsKKyNpZiBFTkFCTEUoQ09OVEVO
VF9GSUxURVJJTkcpCitXRUJDT1JFX0VYUE9SVCBSZXNvdXJjZUVycm9yIGJsb2NrZWRCeUNvbnRl
bnRGaWx0ZXJFcnJvcihjb25zdCBSZXNvdXJjZVJlcXVlc3QmKTsKKyNlbmRpZgorCitXRUJDT1JF
X0VYUE9SVCBSZXNvdXJjZUVycm9yIGNhbm5vdFNob3dNSU1FVHlwZUVycm9yKGNvbnN0IFJlc291
cmNlUmVzcG9uc2UmKTsKK1dFQkNPUkVfRVhQT1JUIFJlc291cmNlRXJyb3IgZmlsZURvZXNOb3RF
eGlzdEVycm9yKGNvbnN0IFJlc291cmNlUmVzcG9uc2UmKTsKK1dFQkNPUkVfRVhQT1JUIFJlc291
cmNlRXJyb3IgcGx1Z2luV2lsbEhhbmRsZUxvYWRFcnJvcihjb25zdCBSZXNvdXJjZVJlc3BvbnNl
Jik7CisKK1dFQkNPUkVfRVhQT1JUIFJlc291cmNlRXJyb3IgaW50ZXJuYWxFcnJvcihjb25zdCBV
UkwmKTsKKworV0VCQ09SRV9FWFBPUlQgY29uc3QgV1RGOjpTdHJpbmcmIHdlYktpdEVycm9yRG9t
YWluKCk7CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIEVycm9yc19oCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9lZmwvRXJyb3JzRWZsLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2VmbC9FcnJvcnNFZmwuY3BwCmRlbGV0ZWQgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAzMjgyNmU1NjcyNzMwM2JlZmRlMjljMDhkZThjNTdhYjQ5ZGJlMzlhLi4w
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2VmbC9FcnJvcnNFZmwuY3BwCisrKyAvZGV2L251bGwKQEAgLTEsMTA1ICsw
LDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTIgSW50ZWwgQ29ycG9yYXRpb24uIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBt
ZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBp
biB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwotICogQU5EIEFO
WSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sCi0gKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBO
TyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKLSAqIEJFIExJQUJM
RSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFS
WSwgT1IKLSAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFBST0NVUkVNRU5UIE9GCi0gKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKLSAqIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOCi0gKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQotICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgotICogVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNpbmNsdWRlICJjb25maWcuaCIKLSNpbmNsdWRl
ICJFcnJvcnNFZmwuaCIKLQotI2luY2x1ZGUgIlJlc291cmNlRXJyb3IuaCIKLSNpbmNsdWRlICJS
ZXNvdXJjZVJlcXVlc3QuaCIKLSNpbmNsdWRlICJSZXNvdXJjZVJlc3BvbnNlLmgiCi0KLW5hbWVz
cGFjZSBXZWJDb3JlIHsKLQotUmVzb3VyY2VFcnJvciBjYW5jZWxsZWRFcnJvcihjb25zdCBSZXNv
dXJjZVJlcXVlc3QmIHJlcXVlc3QpCi17Ci0gICAgcmV0dXJuIFJlc291cmNlRXJyb3IoZXJyb3JE
b21haW5OZXR3b3JrLCBOZXR3b3JrRXJyb3JDYW5jZWxsZWQsIHJlcXVlc3QudXJsKCksIEFTQ0lJ
TGl0ZXJhbCgiTG9hZCByZXF1ZXN0IGNhbmNlbGxlZCIpKTsKLX0KLQotUmVzb3VyY2VFcnJvciBi
bG9ja2VkRXJyb3IoY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0KQotewotICAgIHJldHVy
biBSZXNvdXJjZUVycm9yKGVycm9yRG9tYWluUG9saWN5LCBQb2xpY3lFcnJvckNhbm5vdFVzZVJl
c3RyaWN0ZWRQb3J0LCByZXF1ZXN0LnVybCgpLCBBU0NJSUxpdGVyYWwoIk5vdCBhbGxvd2VkIHRv
IHVzZSByZXN0cmljdGVkIG5ldHdvcmsgcG9ydCIpKTsKLX0KLQotUmVzb3VyY2VFcnJvciBibG9j
a2VkQnlDb250ZW50QmxvY2tlckVycm9yKGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCkK
LXsKLSAgICByZXR1cm4gUmVzb3VyY2VFcnJvcihlcnJvckRvbWFpblBvbGljeSwgUG9saWN5RXJy
b3JCbG9ja2VkQnlDb250ZW50QmxvY2tlciwgcmVxdWVzdC51cmwoKSwgQVNDSUlMaXRlcmFsKCJC
bG9ja2VkIGJ5IGNvbnRlbnQgYmxvY2tlciIpKTsKLX0KLQotUmVzb3VyY2VFcnJvciBjYW5ub3RT
aG93VVJMRXJyb3IoY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0KQotewotICAgIHJldHVy
biBSZXNvdXJjZUVycm9yKGVycm9yRG9tYWluUG9saWN5LCBQb2xpY3lFcnJvckNhbm5vdFNob3dV
UkwsIHJlcXVlc3QudXJsKCksIEFTQ0lJTGl0ZXJhbCgiVVJMIGNhbm5vdCBiZSBzaG93biIpKTsK
LX0KLQotUmVzb3VyY2VFcnJvciBpbnRlcnJ1cHRlZEZvclBvbGljeUNoYW5nZUVycm9yKGNvbnN0
IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCkKLXsKLSAgICByZXR1cm4gUmVzb3VyY2VFcnJvcihl
cnJvckRvbWFpblBvbGljeSwgUG9saWN5RXJyb3JGcmFtZUxvYWRJbnRlcnJ1cHRlZEJ5UG9saWN5
Q2hhbmdlLCByZXF1ZXN0LnVybCgpLCBBU0NJSUxpdGVyYWwoIkZyYW1lIGxvYWQgd2FzIGludGVy
cnVwdGVkIikpOwotfQotCi1SZXNvdXJjZUVycm9yIGNhbm5vdFNob3dNSU1FVHlwZUVycm9yKGNv
bnN0IFJlc291cmNlUmVzcG9uc2UmIHJlc3BvbnNlKQotewotICAgIHJldHVybiBSZXNvdXJjZUVy
cm9yKGVycm9yRG9tYWluUG9saWN5LCBQb2xpY3lFcnJvckNhbm5vdFNob3dNaW1lVHlwZSwgcmVz
cG9uc2UudXJsKCksIEFTQ0lJTGl0ZXJhbCgiQ29udGVudCB3aXRoIHRoZSBzcGVjaWZpZWQgTUlN
RSB0eXBlIGNhbm5vdCBiZSBzaG93biIpKTsKLX0KLQotUmVzb3VyY2VFcnJvciBmaWxlRG9lc05v
dEV4aXN0RXJyb3IoY29uc3QgUmVzb3VyY2VSZXNwb25zZSYgcmVzcG9uc2UpCi17Ci0gICAgcmV0
dXJuIFJlc291cmNlRXJyb3IoZXJyb3JEb21haW5OZXR3b3JrLCBOZXR3b3JrRXJyb3JGaWxlRG9l
c05vdEV4aXN0LCByZXNwb25zZS51cmwoKSwgQVNDSUlMaXRlcmFsKCJGaWxlIGRvZXMgbm90IGV4
aXN0IikpOwotfQotCi1SZXNvdXJjZUVycm9yIHBsdWdpbldpbGxIYW5kbGVMb2FkRXJyb3IoY29u
c3QgUmVzb3VyY2VSZXNwb25zZSYgcmVzcG9uc2UpCi17Ci0gICAgcmV0dXJuIFJlc291cmNlRXJy
b3IoZXJyb3JEb21haW5QbHVnaW4sIFBsdWdpbkVycm9yV2lsbEhhbmRsZUxvYWQsIHJlc3BvbnNl
LnVybCgpLCBBU0NJSUxpdGVyYWwoIlBsdWdpbiB3aWxsIGhhbmRsZSBsb2FkIikpOwotfQotCi1S
ZXNvdXJjZUVycm9yIGRvd25sb2FkTmV0d29ya0Vycm9yKGNvbnN0IFJlc291cmNlRXJyb3ImIG5l
dHdvcmtFcnJvcikKLXsKLSAgICByZXR1cm4gUmVzb3VyY2VFcnJvcihlcnJvckRvbWFpbkRvd25s
b2FkLCBEb3dubG9hZEVycm9yTmV0d29yaywgbmV0d29ya0Vycm9yLmZhaWxpbmdVUkwoKSwgbmV0
d29ya0Vycm9yLmxvY2FsaXplZERlc2NyaXB0aW9uKCkpOwotfQotCi1SZXNvdXJjZUVycm9yIGRv
d25sb2FkQ2FuY2VsbGVkQnlVc2VyRXJyb3IoY29uc3QgUmVzb3VyY2VSZXNwb25zZSYgcmVzcG9u
c2UpCi17Ci0gICAgcmV0dXJuIFJlc291cmNlRXJyb3IoZXJyb3JEb21haW5Eb3dubG9hZCwgRG93
bmxvYWRFcnJvckNhbmNlbGxlZEJ5VXNlciwgcmVzcG9uc2UudXJsKCksIEFTQ0lJTGl0ZXJhbCgi
VXNlciBjYW5jZWxsZWQgdGhlIGRvd25sb2FkIikpOwotfQotCi1SZXNvdXJjZUVycm9yIGRvd25s
b2FkRGVzdGluYXRpb25FcnJvcihjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiByZXNwb25zZSwgY29u
c3QgU3RyaW5nJiBlcnJvck1lc3NhZ2UpCi17Ci0gICAgcmV0dXJuIFJlc291cmNlRXJyb3IoZXJy
b3JEb21haW5Eb3dubG9hZCwgRG93bmxvYWRFcnJvckRlc3RpbmF0aW9uLCByZXNwb25zZS51cmwo
KSwgZXJyb3JNZXNzYWdlKTsKLX0KLQotUmVzb3VyY2VFcnJvciBwcmludEVycm9yKGNvbnN0IFVS
TCYgZmFpbGluZ1VSTCwgY29uc3QgU3RyaW5nJiBlcnJvck1lc3NhZ2UpCi17Ci0gICAgcmV0dXJu
IFJlc291cmNlRXJyb3IoZXJyb3JEb21haW5QcmludCwgUHJpbnRFcnJvckdlbmVyYWwsIGZhaWxp
bmdVUkwsIGVycm9yTWVzc2FnZSk7Ci19Ci0KLVJlc291cmNlRXJyb3IgcHJpbnRlck5vdEZvdW5k
RXJyb3IoY29uc3QgVVJMJiBmYWlsaW5nVVJMKQotewotICAgIHJldHVybiBSZXNvdXJjZUVycm9y
KGVycm9yRG9tYWluUHJpbnQsIFByaW50RXJyb3JQcmludGVyTm90Rm91bmQsIGZhaWxpbmdVUkws
IEFTQ0lJTGl0ZXJhbCgiUHJpbnRlciBub3QgZm91bmQiKSk7Ci19Ci0KLVJlc291cmNlRXJyb3Ig
aW52YWxpZFBhZ2VSYW5nZVRvUHJpbnQoY29uc3QgVVJMJiBmYWlsaW5nVVJMKQotewotICAgIHJl
dHVybiBSZXNvdXJjZUVycm9yKGVycm9yRG9tYWluUHJpbnQsIFByaW50RXJyb3JJbnZhbGlkUGFn
ZVJhbmdlLCBmYWlsaW5nVVJMLCBBU0NJSUxpdGVyYWwoIkludmFsaWQgcGFnZSByYW5nZSIpKTsK
LX0KLQotfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZWZsL0Vycm9yc0VmbC5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZWZsL0Vy
cm9yc0VmbC5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA3MGZmYTZlNjlkZWVlN2U5
ZjU4MGNkOWQ1OWZjZTc4YzYyZWQ1MDQ2Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2VmbC9FcnJvcnNFZmwuaAor
KysgL2Rldi9udWxsCkBAIC0xLDEwMSArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDEy
IEludGVsIENvcnBvcmF0aW9uLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAq
IDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAq
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJV
VE9SUyBgYEFTIElTJycKLSAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogVEhFIElNUExJRUQgV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVS
UE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMg
Q09OVFJJQlVUT1JTCi0gKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCi0gKiBDT05TRVFVRU5USUFMIERBTUFHRVMg
KElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgotICogU1VCU1RJ
VFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9S
IEJVU0lORVNTCi0gKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhF
T1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgotICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKLSAqIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YKLSAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaWZu
ZGVmIEVycm9yc0VmbF9oCi0jZGVmaW5lIEVycm9yc0VmbF9oCi0KLSNpbmNsdWRlIDx3dGYvdGV4
dC9XVEZTdHJpbmcuaD4KLQotbmFtZXNwYWNlIFdlYkNvcmUgewotCi1jbGFzcyBSZXNvdXJjZUVy
cm9yOwotY2xhc3MgUmVzb3VyY2VSZXF1ZXN0OwotY2xhc3MgUmVzb3VyY2VSZXNwb25zZTsKLWNs
YXNzIFVSTDsKLQotc3RhdGljIGNvbnN0IGNoYXIgZXJyb3JEb21haW5OZXR3b3JrW10gPSAiV2Vi
S2l0TmV0d29ya0Vycm9yIjsKLXN0YXRpYyBjb25zdCBjaGFyIGVycm9yRG9tYWluUG9saWN5W10g
PSAiV2ViS2l0UG9saWN5RXJyb3IiOwotc3RhdGljIGNvbnN0IGNoYXIgZXJyb3JEb21haW5QbHVn
aW5bXSA9ICJXZWJLaXRQbHVnaW5FcnJvciI7Ci1zdGF0aWMgY29uc3QgY2hhciBlcnJvckRvbWFp
bkRvd25sb2FkW10gPSAiV2ViS2l0RG93bmxvYWRFcnJvciI7Ci1zdGF0aWMgY29uc3QgY2hhciBl
cnJvckRvbWFpblByaW50W10gPSAiV2ViS2l0UHJpbnRFcnJvciI7Ci0KLWVudW0gTmV0d29ya0Vy
cm9yIHsKLSAgICBOZXR3b3JrRXJyb3JGYWlsZWQgPSAzOTksCi0gICAgTmV0d29ya0Vycm9yVHJh
bnNwb3J0ID0gMzAwLAotICAgIE5ldHdvcmtFcnJvclVua25vd25Qcm90b2NvbCA9IDMwMSwKLSAg
ICBOZXR3b3JrRXJyb3JDYW5jZWxsZWQgPSAzMDIsCi0gICAgTmV0d29ya0Vycm9yRmlsZURvZXNO
b3RFeGlzdCA9IDMwMwotfTsKLQotLy8gU3luYydkIHdpdGggTWFjJ3MgV2ViS2l0IEVycm9ycyBh
dDoKLS8vIFNvdXJjZS9XZWJLaXQvbWFjL01pc2MvV2ViS2l0RXJyb3JzW1ByaXZhdGVdLmgKLWVu
dW0gUG9saWN5RXJyb3IgewotICAgIFBvbGljeUVycm9yRmFpbGVkID0gMTk5LAotICAgIFBvbGlj
eUVycm9yQ2Fubm90U2hvd01pbWVUeXBlID0gMTAwLAotICAgIFBvbGljeUVycm9yQ2Fubm90U2hv
d1VSTCA9IDEwMSwKLSAgICBQb2xpY3lFcnJvckZyYW1lTG9hZEludGVycnVwdGVkQnlQb2xpY3lD
aGFuZ2UgPSAxMDIsCi0gICAgUG9saWN5RXJyb3JDYW5ub3RVc2VSZXN0cmljdGVkUG9ydCA9IDEw
MywKLSAgICBQb2xpY3lFcnJvckJsb2NrZWRCeUNvbnRlbnRCbG9ja2VyID0gMTA0LAotfTsKLQot
ZW51bSBQbHVnaW5FcnJvciB7Ci0gICAgUGx1Z2luRXJyb3JGYWlsZWQgPSAyOTksCi0gICAgUGx1
Z2luRXJyb3JDYW5ub3RGaW5kUGx1Z2luID0gMjAwLAotICAgIFBsdWdpbkVycm9yQ2Fubm90TG9h
ZFBsdWdpbiA9IDIwMSwKLSAgICBQbHVnaW5FcnJvckphdmFVbmF2YWlsYWJsZSA9IDIwMiwKLSAg
ICBQbHVnaW5FcnJvckNvbm5lY3Rpb25DYW5jZWxsZWQgPSAyMDMsCi0gICAgUGx1Z2luRXJyb3JX
aWxsSGFuZGxlTG9hZCA9IDIwNAotfTsKLQotZW51bSBEb3dubG9hZEVycm9yIHsKLSAgICBEb3du
bG9hZEVycm9yTmV0d29yayA9IDQ5OSwKLSAgICBEb3dubG9hZEVycm9yQ2FuY2VsbGVkQnlVc2Vy
ID0gNDAwLAotICAgIERvd25sb2FkRXJyb3JEZXN0aW5hdGlvbiA9IDQwMQotfTsKLQotZW51bSBQ
cmludEVycm9yIHsKLSAgICBQcmludEVycm9yR2VuZXJhbCA9IDU5OSwKLSAgICBQcmludEVycm9y
UHJpbnRlck5vdEZvdW5kID0gNTAwLAotICAgIFByaW50RXJyb3JJbnZhbGlkUGFnZVJhbmdlID0g
NTAxCi19OwotCi1SZXNvdXJjZUVycm9yIGNhbmNlbGxlZEVycm9yKGNvbnN0IFJlc291cmNlUmVx
dWVzdCYpOwotUmVzb3VyY2VFcnJvciBibG9ja2VkRXJyb3IoY29uc3QgUmVzb3VyY2VSZXF1ZXN0
Jik7Ci1SZXNvdXJjZUVycm9yIGJsb2NrZWRCeUNvbnRlbnRCbG9ja2VyRXJyb3IoY29uc3QgUmVz
b3VyY2VSZXF1ZXN0Jik7Ci1SZXNvdXJjZUVycm9yIGNhbm5vdFNob3dVUkxFcnJvcihjb25zdCBS
ZXNvdXJjZVJlcXVlc3QmKTsKLVJlc291cmNlRXJyb3IgaW50ZXJydXB0ZWRGb3JQb2xpY3lDaGFu
Z2VFcnJvcihjb25zdCBSZXNvdXJjZVJlcXVlc3QmKTsKLVJlc291cmNlRXJyb3IgY2Fubm90U2hv
d01JTUVUeXBlRXJyb3IoY29uc3QgUmVzb3VyY2VSZXNwb25zZSYpOwotUmVzb3VyY2VFcnJvciBm
aWxlRG9lc05vdEV4aXN0RXJyb3IoY29uc3QgUmVzb3VyY2VSZXNwb25zZSYpOwotUmVzb3VyY2VF
cnJvciBwbHVnaW5XaWxsSGFuZGxlTG9hZEVycm9yKGNvbnN0IFJlc291cmNlUmVzcG9uc2UmKTsK
LVJlc291cmNlRXJyb3IgZG93bmxvYWROZXR3b3JrRXJyb3IoY29uc3QgUmVzb3VyY2VFcnJvciYp
OwotUmVzb3VyY2VFcnJvciBkb3dubG9hZENhbmNlbGxlZEJ5VXNlckVycm9yKGNvbnN0IFJlc291
cmNlUmVzcG9uc2UmKTsKLVJlc291cmNlRXJyb3IgZG93bmxvYWREZXN0aW5hdGlvbkVycm9yKGNv
bnN0IFJlc291cmNlUmVzcG9uc2UmLCBjb25zdCBTdHJpbmcmIGVycm9yTWVzc2FnZSk7Ci1SZXNv
dXJjZUVycm9yIHByaW50RXJyb3IoY29uc3QgVVJMJiBmYWlsaW5nVVJMLCBjb25zdCBTdHJpbmcm
IGVycm9yTWVzc2FnZSk7Ci1SZXNvdXJjZUVycm9yIHByaW50ZXJOb3RGb3VuZEVycm9yKGNvbnN0
IFVSTCYgZmFpbGluZ1VSTCk7Ci1SZXNvdXJjZUVycm9yIGludmFsaWRQYWdlUmFuZ2VUb1ByaW50
KGNvbnN0IFVSTCYgZmFpbGluZ1VSTCk7Ci0KLX0KLQotI2VuZGlmIC8vIEVycm9yc0VmbF9oCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvRXJyb3JzR3RrLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9FcnJvcnNHdGsuY3BwCmRlbGV0ZWQgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCA4ZGZkMTU4YjNiNGQ2YzU0NGJkYjI5YTYxNTc0MWRiZGE0YjQxYTU0Li4w
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2d0ay9FcnJvcnNHdGsuY3BwCisrKyAvZGV2L251bGwKQEAgLTEsMTAwICsw
LDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTEgSWdhbGlhIFMuTC4KLSAqCi0gKiBUaGlz
IGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29y
Ci0gKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFs
IFB1YmxpYwotICogTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91
bmRhdGlvbjsgZWl0aGVyCi0gKiB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3Vy
IG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCi0gKgotICogVGhpcyBsaWJyYXJ5IGlzIGRpc3Ry
aWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCi0gKiBidXQgV0lUSE9V
VCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgotICog
TUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2Vl
IHRoZSBHTlUKLSAqIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRh
aWxzLgotICoKLSAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBM
aWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UKLSAqIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5
OyBzZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIuICBJZiBub3QsIHdyaXRlIHRvCi0gKiB0aGUgRnJl
ZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZs
b29yLAotICogQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0EuCi0gKi8KLQotI2luY2x1ZGUgImNv
bmZpZy5oIgotI2luY2x1ZGUgIkVycm9yc0d0ay5oIgotCi0jaW5jbHVkZSAiUmVzb3VyY2VFcnJv
ci5oIgotI2luY2x1ZGUgIlJlc291cmNlUmVxdWVzdC5oIgotI2luY2x1ZGUgIlJlc291cmNlUmVz
cG9uc2UuaCIKLSNpbmNsdWRlIDxnbGliL2dpMThuLWxpYi5oPgotCi1uYW1lc3BhY2UgV2ViQ29y
ZSB7Ci0KLVJlc291cmNlRXJyb3IgY2FuY2VsbGVkRXJyb3IoY29uc3QgUmVzb3VyY2VSZXF1ZXN0
JiByZXF1ZXN0KQotewotICAgIHJldHVybiBSZXNvdXJjZUVycm9yKGVycm9yRG9tYWluTmV0d29y
aywgTmV0d29ya0Vycm9yQ2FuY2VsbGVkLCByZXF1ZXN0LnVybCgpLCBfKCJMb2FkIHJlcXVlc3Qg
Y2FuY2VsbGVkIikpOwotfQotCi1SZXNvdXJjZUVycm9yIGJsb2NrZWRFcnJvcihjb25zdCBSZXNv
dXJjZVJlcXVlc3QmIHJlcXVlc3QpCi17Ci0gICAgcmV0dXJuIFJlc291cmNlRXJyb3IoZXJyb3JE
b21haW5Qb2xpY3ksIFBvbGljeUVycm9yQ2Fubm90VXNlUmVzdHJpY3RlZFBvcnQsIHJlcXVlc3Qu
dXJsKCksIF8oIk5vdCBhbGxvd2VkIHRvIHVzZSByZXN0cmljdGVkIG5ldHdvcmsgcG9ydCIpKTsK
LX0KLQotUmVzb3VyY2VFcnJvciBibG9ja2VkQnlDb250ZW50QmxvY2tlckVycm9yKGNvbnN0IFJl
c291cmNlUmVxdWVzdCYgcmVxdWVzdCkKLXsKLSAgICByZXR1cm4gUmVzb3VyY2VFcnJvcihlcnJv
ckRvbWFpblBvbGljeSwgUG9saWN5RXJyb3JCbG9ja2VkQnlDb250ZW50QmxvY2tlciwgcmVxdWVz
dC51cmwoKSwgXygiQmxvY2tlZCBieSBjb250ZW50IGJsb2NrZXIiKSk7Ci19Ci0KLVJlc291cmNl
RXJyb3IgY2Fubm90U2hvd1VSTEVycm9yKGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCkK
LXsKLSAgICByZXR1cm4gUmVzb3VyY2VFcnJvcihlcnJvckRvbWFpblBvbGljeSwgUG9saWN5RXJy
b3JDYW5ub3RTaG93VVJMLCByZXF1ZXN0LnVybCgpLCBfKCJVUkwgY2Fubm90IGJlIHNob3duIikp
OwotfQotCi1SZXNvdXJjZUVycm9yIGludGVycnVwdGVkRm9yUG9saWN5Q2hhbmdlRXJyb3IoY29u
c3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0KQotewotICAgIHJldHVybiBSZXNvdXJjZUVycm9y
KGVycm9yRG9tYWluUG9saWN5LCBQb2xpY3lFcnJvckZyYW1lTG9hZEludGVycnVwdGVkQnlQb2xp
Y3lDaGFuZ2UsIHJlcXVlc3QudXJsKCksIF8oIkZyYW1lIGxvYWQgd2FzIGludGVycnVwdGVkIikp
OwotfQotCi1SZXNvdXJjZUVycm9yIGNhbm5vdFNob3dNSU1FVHlwZUVycm9yKGNvbnN0IFJlc291
cmNlUmVzcG9uc2UmIHJlc3BvbnNlKQotewotICAgIHJldHVybiBSZXNvdXJjZUVycm9yKGVycm9y
RG9tYWluUG9saWN5LCBQb2xpY3lFcnJvckNhbm5vdFNob3dNaW1lVHlwZSwgcmVzcG9uc2UudXJs
KCksIF8oIkNvbnRlbnQgd2l0aCB0aGUgc3BlY2lmaWVkIE1JTUUgdHlwZSBjYW5ub3QgYmUgc2hv
d24iKSk7Ci19Ci0KLVJlc291cmNlRXJyb3IgZmlsZURvZXNOb3RFeGlzdEVycm9yKGNvbnN0IFJl
c291cmNlUmVzcG9uc2UmIHJlc3BvbnNlKQotewotICAgIHJldHVybiBSZXNvdXJjZUVycm9yKGVy
cm9yRG9tYWluTmV0d29yaywgTmV0d29ya0Vycm9yRmlsZURvZXNOb3RFeGlzdCwgcmVzcG9uc2Uu
dXJsKCksIF8oIkZpbGUgZG9lcyBub3QgZXhpc3QiKSk7Ci19Ci0KLVJlc291cmNlRXJyb3IgcGx1
Z2luV2lsbEhhbmRsZUxvYWRFcnJvcihjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiByZXNwb25zZSkK
LXsKLSAgICByZXR1cm4gUmVzb3VyY2VFcnJvcihlcnJvckRvbWFpblBsdWdpbiwgUGx1Z2luRXJy
b3JXaWxsSGFuZGxlTG9hZCwgcmVzcG9uc2UudXJsKCksIF8oIlBsdWdpbiB3aWxsIGhhbmRsZSBs
b2FkIikpOwotfQotCi1SZXNvdXJjZUVycm9yIGRvd25sb2FkTmV0d29ya0Vycm9yKGNvbnN0IFJl
c291cmNlRXJyb3ImIG5ldHdvcmtFcnJvcikKLXsKLSAgICByZXR1cm4gUmVzb3VyY2VFcnJvcihl
cnJvckRvbWFpbkRvd25sb2FkLCBEb3dubG9hZEVycm9yTmV0d29yaywgbmV0d29ya0Vycm9yLmZh
aWxpbmdVUkwoKSwgbmV0d29ya0Vycm9yLmxvY2FsaXplZERlc2NyaXB0aW9uKCkpOwotfQotCi1S
ZXNvdXJjZUVycm9yIGRvd25sb2FkQ2FuY2VsbGVkQnlVc2VyRXJyb3IoY29uc3QgUmVzb3VyY2VS
ZXNwb25zZSYgcmVzcG9uc2UpCi17Ci0gICAgcmV0dXJuIFJlc291cmNlRXJyb3IoZXJyb3JEb21h
aW5Eb3dubG9hZCwgRG93bmxvYWRFcnJvckNhbmNlbGxlZEJ5VXNlciwgcmVzcG9uc2UudXJsKCks
IF8oIlVzZXIgY2FuY2VsbGVkIHRoZSBkb3dubG9hZCIpKTsKLX0KLQotUmVzb3VyY2VFcnJvciBk
b3dubG9hZERlc3RpbmF0aW9uRXJyb3IoY29uc3QgUmVzb3VyY2VSZXNwb25zZSYgcmVzcG9uc2Us
IGNvbnN0IFN0cmluZyYgZXJyb3JNZXNzYWdlKQotewotICAgIHJldHVybiBSZXNvdXJjZUVycm9y
KGVycm9yRG9tYWluRG93bmxvYWQsIERvd25sb2FkRXJyb3JEZXN0aW5hdGlvbiwgcmVzcG9uc2Uu
dXJsKCksIGVycm9yTWVzc2FnZSk7Ci19Ci0KLVJlc291cmNlRXJyb3IgcHJpbnRFcnJvcihjb25z
dCBVUkwmIGZhaWxpbmdVUkwsIGNvbnN0IFN0cmluZyYgZXJyb3JNZXNzYWdlKQotewotICAgIHJl
dHVybiBSZXNvdXJjZUVycm9yKGVycm9yRG9tYWluUHJpbnQsIFByaW50RXJyb3JHZW5lcmFsLCBm
YWlsaW5nVVJMLCBlcnJvck1lc3NhZ2UpOwotfQotCi1SZXNvdXJjZUVycm9yIHByaW50ZXJOb3RG
b3VuZEVycm9yKGNvbnN0IFVSTCYgZmFpbGluZ1VSTCkKLXsKLSAgICByZXR1cm4gUmVzb3VyY2VF
cnJvcihlcnJvckRvbWFpblByaW50LCBQcmludEVycm9yUHJpbnRlck5vdEZvdW5kLCBmYWlsaW5n
VVJMLCBfKCJQcmludGVyIG5vdCBmb3VuZCIpKTsKLX0KLQotUmVzb3VyY2VFcnJvciBpbnZhbGlk
UGFnZVJhbmdlVG9QcmludChjb25zdCBVUkwmIGZhaWxpbmdVUkwpCi17Ci0gICAgcmV0dXJuIFJl
c291cmNlRXJyb3IoZXJyb3JEb21haW5QcmludCwgUHJpbnRFcnJvckludmFsaWRQYWdlUmFuZ2Us
IGZhaWxpbmdVUkwsIF8oIkludmFsaWQgcGFnZSByYW5nZSIpKTsKLX0KLQotfSAvLyBuYW1lc3Bh
Y2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL0Vycm9y
c0d0ay5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL0Vycm9yc0d0ay5oCmRlbGV0ZWQg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCA3NjFkY2NiMjZlZjcwMDQxYmM3MWE3MDIxYjUwNTMwZDc4
MDI4MTcwLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9FcnJvcnNHdGsuaAorKysgL2Rldi9udWxsCkBAIC0x
LDk0ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTEgSWdhbGlhIFMuTC4KLSAqCi0g
KiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQg
YW5kL29yCi0gKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBH
ZW5lcmFsIFB1YmxpYwotICogTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdh
cmUgRm91bmRhdGlvbjsgZWl0aGVyCi0gKiB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChh
dCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCi0gKgotICogVGhpcyBsaWJyYXJ5IGlz
IGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCi0gKiBidXQg
V0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBv
ZgotICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NF
LiAgU2VlIHRoZSBHTlUKLSAqIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9y
ZSBkZXRhaWxzLgotICoKLSAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhl
IEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UKLSAqIGFsb25nIHdpdGggdGhpcyBs
aWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIuICBJZiBub3QsIHdyaXRlIHRvCi0gKiB0
aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZp
ZnRoIEZsb29yLAotICogQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0EuCi0gKi8KLQotI2lmbmRl
ZiBFcnJvcnNHdGtfaAotI2RlZmluZSBFcnJvcnNHdGtfaAotCi0jaW5jbHVkZSA8d3RmL3RleHQv
V1RGU3RyaW5nLmg+Ci0KLW5hbWVzcGFjZSBXZWJDb3JlIHsKLQotY2xhc3MgUmVzb3VyY2VFcnJv
cjsKLWNsYXNzIFJlc291cmNlUmVxdWVzdDsKLWNsYXNzIFJlc291cmNlUmVzcG9uc2U7Ci1jbGFz
cyBVUkw7Ci0KLWNvbnN0IGNoYXIqIGNvbnN0IGVycm9yRG9tYWluTmV0d29yayA9ICJXZWJLaXRO
ZXR3b3JrRXJyb3IiOwotY29uc3QgY2hhciogY29uc3QgZXJyb3JEb21haW5Qb2xpY3kgPSAiV2Vi
S2l0UG9saWN5RXJyb3IiOwotY29uc3QgY2hhciogY29uc3QgZXJyb3JEb21haW5QbHVnaW4gPSAi
V2ViS2l0UGx1Z2luRXJyb3IiOwotY29uc3QgY2hhciogY29uc3QgZXJyb3JEb21haW5Eb3dubG9h
ZCA9ICJXZWJLaXREb3dubG9hZEVycm9yIjsKLWNvbnN0IGNoYXIqIGNvbnN0IGVycm9yRG9tYWlu
UHJpbnQgPSAiV2ViS2l0UHJpbnRFcnJvciI7Ci0KLWVudW0gTmV0d29ya0Vycm9yIHsKLSAgICBO
ZXR3b3JrRXJyb3JGYWlsZWQgPSAzOTksCi0gICAgTmV0d29ya0Vycm9yVHJhbnNwb3J0ID0gMzAw
LAotICAgIE5ldHdvcmtFcnJvclVua25vd25Qcm90b2NvbCA9IDMwMSwKLSAgICBOZXR3b3JrRXJy
b3JDYW5jZWxsZWQgPSAzMDIsCi0gICAgTmV0d29ya0Vycm9yRmlsZURvZXNOb3RFeGlzdCA9IDMw
MwotfTsKLQotLy8gU3luYydkIHdpdGggTWFjJ3MgV2ViS2l0IEVycm9ycy4KLWVudW0gUG9saWN5
RXJyb3IgewotICAgIFBvbGljeUVycm9yRmFpbGVkID0gMTk5LAotICAgIFBvbGljeUVycm9yQ2Fu
bm90U2hvd01pbWVUeXBlID0gMTAwLAotICAgIFBvbGljeUVycm9yQ2Fubm90U2hvd1VSTCA9IDEw
MSwKLSAgICBQb2xpY3lFcnJvckZyYW1lTG9hZEludGVycnVwdGVkQnlQb2xpY3lDaGFuZ2UgPSAx
MDIsCi0gICAgUG9saWN5RXJyb3JDYW5ub3RVc2VSZXN0cmljdGVkUG9ydCA9IDEwMywKLSAgICBQ
b2xpY3lFcnJvckJsb2NrZWRCeUNvbnRlbnRCbG9ja2VyID0gMTA0LAotfTsKLQotZW51bSBQbHVn
aW5FcnJvciB7Ci0gICAgUGx1Z2luRXJyb3JGYWlsZWQgPSAyOTksCi0gICAgUGx1Z2luRXJyb3JD
YW5ub3RGaW5kUGx1Z2luID0gMjAwLAotICAgIFBsdWdpbkVycm9yQ2Fubm90TG9hZFBsdWdpbiA9
IDIwMSwKLSAgICBQbHVnaW5FcnJvckphdmFVbmF2YWlsYWJsZSA9IDIwMiwKLSAgICBQbHVnaW5F
cnJvckNvbm5lY3Rpb25DYW5jZWxsZWQgPSAyMDMsCi0gICAgUGx1Z2luRXJyb3JXaWxsSGFuZGxl
TG9hZCA9IDIwNAotfTsKLQotZW51bSBEb3dubG9hZEVycm9yIHsKLSAgICBEb3dubG9hZEVycm9y
TmV0d29yayA9IDQ5OSwKLSAgICBEb3dubG9hZEVycm9yQ2FuY2VsbGVkQnlVc2VyID0gNDAwLAot
ICAgIERvd25sb2FkRXJyb3JEZXN0aW5hdGlvbiA9IDQwMQotfTsKLQotZW51bSBQcmludEVycm9y
IHsKLSAgICBQcmludEVycm9yR2VuZXJhbCA9IDU5OSwKLSAgICBQcmludEVycm9yUHJpbnRlck5v
dEZvdW5kID0gNTAwLAotICAgIFByaW50RXJyb3JJbnZhbGlkUGFnZVJhbmdlID0gNTAxCi19Owot
Ci1SZXNvdXJjZUVycm9yIGNhbmNlbGxlZEVycm9yKGNvbnN0IFJlc291cmNlUmVxdWVzdCYpOwot
UmVzb3VyY2VFcnJvciBibG9ja2VkRXJyb3IoY29uc3QgUmVzb3VyY2VSZXF1ZXN0Jik7Ci1SZXNv
dXJjZUVycm9yIGJsb2NrZWRCeUNvbnRlbnRCbG9ja2VyRXJyb3IoY29uc3QgUmVzb3VyY2VSZXF1
ZXN0Jik7Ci1SZXNvdXJjZUVycm9yIGNhbm5vdFNob3dVUkxFcnJvcihjb25zdCBSZXNvdXJjZVJl
cXVlc3QmKTsKLVJlc291cmNlRXJyb3IgaW50ZXJydXB0ZWRGb3JQb2xpY3lDaGFuZ2VFcnJvcihj
b25zdCBSZXNvdXJjZVJlcXVlc3QmKTsKLVJlc291cmNlRXJyb3IgY2Fubm90U2hvd01JTUVUeXBl
RXJyb3IoY29uc3QgUmVzb3VyY2VSZXNwb25zZSYpOwotUmVzb3VyY2VFcnJvciBmaWxlRG9lc05v
dEV4aXN0RXJyb3IoY29uc3QgUmVzb3VyY2VSZXNwb25zZSYpOwotUmVzb3VyY2VFcnJvciBwbHVn
aW5XaWxsSGFuZGxlTG9hZEVycm9yKGNvbnN0IFJlc291cmNlUmVzcG9uc2UmKTsKLVJlc291cmNl
RXJyb3IgZG93bmxvYWROZXR3b3JrRXJyb3IoY29uc3QgUmVzb3VyY2VFcnJvciYpOwotUmVzb3Vy
Y2VFcnJvciBkb3dubG9hZENhbmNlbGxlZEJ5VXNlckVycm9yKGNvbnN0IFJlc291cmNlUmVzcG9u
c2UmKTsKLVJlc291cmNlRXJyb3IgZG93bmxvYWREZXN0aW5hdGlvbkVycm9yKGNvbnN0IFJlc291
cmNlUmVzcG9uc2UmLCBjb25zdCBTdHJpbmcmIGVycm9yTWVzc2FnZSk7Ci1SZXNvdXJjZUVycm9y
IHByaW50RXJyb3IoY29uc3QgVVJMJiBmYWlsaW5nVVJMLCBjb25zdCBTdHJpbmcmIGVycm9yTWVz
c2FnZSk7Ci1SZXNvdXJjZUVycm9yIHByaW50ZXJOb3RGb3VuZEVycm9yKGNvbnN0IFVSTCYgZmFp
bGluZ1VSTCk7Ci1SZXNvdXJjZUVycm9yIGludmFsaWRQYWdlUmFuZ2VUb1ByaW50KGNvbnN0IFVS
TCYgZmFpbGluZ1VSTCk7Ci0KLX0KLQotI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ndGsvcG8vUE9URklMRVMuaW4gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
dGsvcG8vUE9URklMRVMuaW4KaW5kZXggN2ZhMjgyNTIwY2FlMmU3ZjE3MDk3YTc2ODU0MzdhNmU1
NTljNzQwZS4uNTFmNzg5ZWJmMjE3ZjY5ZjUyOWRiYjYxYmEyNGZiOTlhN2NiZWY2NCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL3BvL1BPVEZJTEVTLmluCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9wby9QT1RGSUxFUy5pbgpAQCAtMSw1ICsxLDUgQEAK
ICMgTGlzdCBvZiBzb3VyY2UgZmlsZXMgd2hpY2ggY29udGFpbiB0cmFuc2xhdGFibGUgc3RyaW5n
cy4KLUVycm9yc0d0ay5jcHAKKy4uL3VuaXgvRXJyb3JzVW5peC5jcHAKIExvY2FsaXplZFN0cmlu
Z3NHdGsuY3BwCiAuLi8uLi8uLi9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL0Rvd25sb2Fkcy9zb3Vw
L0Rvd25sb2FkU291cC5jcHAKIC4uLy4uLy4uL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2Vi
S2l0QXV0aGVudGljYXRpb25EaWFsb2cuY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9tYWMvRXJyb3JzTWFjLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL0Vy
cm9yc01hYy5tbQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41ZWE5NTFhZTJmZDEwN2YwNTM2YmNkYTNiODc5Mjc5N2Ni
MDc3MzA1Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL0Vy
cm9yc01hYy5tbQpAQCAtMCwwICsxLDExOSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMC0y
MDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElT
IFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMg
YGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0Ug
QVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRS
SUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUg
R09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBP
UiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2ltcG9ydCAi
Y29uZmlnLmgiCisjaW1wb3J0ICJFcnJvcnMuaCIKKworI2ltcG9ydCAiTG9jYWxpemVkU3RyaW5n
cy5oIgorI2ltcG9ydCAiUmVzb3VyY2VFcnJvci5oIgorI2ltcG9ydCAiUmVzb3VyY2VSZXF1ZXN0
LmgiCisjaW1wb3J0ICJSZXNvdXJjZVJlc3BvbnNlLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsK
KworZW51bSB7CisgICAga1dLRXJyb3JDb2RlQ2Fubm90U2hvd01JTUVUeXBlID0gICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIDEwMCwKKyAgICBrV0tFcnJvckNvZGVDYW5ub3RTaG93VVJMID0g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMTAxLAorICAgIGtXS0Vycm9yQ29kZUZy
YW1lTG9hZEludGVycnVwdGVkQnlQb2xpY3lDaGFuZ2UgPSAgICAgICAgICAgICAxMDIsCisgICAg
a1dLRXJyb3JDb2RlQ2Fubm90VXNlUmVzdHJpY3RlZFBvcnQgPSAgICAgICAgICAgICAgICAgICAg
ICAgIDEwMywKKyAgICBrV0tFcnJvckNvZGVGcmFtZUxvYWRCbG9ja2VkQnlDb250ZW50QmxvY2tl
ciA9ICAgICAgICAgICAgICAgMTA0LAorICAgIGtXS0Vycm9yQ29kZUZyYW1lTG9hZEJsb2NrZWRC
eUNvbnRlbnRGaWx0ZXIgPSAgICAgICAgICAgICAgICAxMDUsCisgICAga1dLRXJyb3JDb2RlQ2Fu
bm90RmluZFBsdWdJbiA9ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIwMCwKKyAgICBr
V0tFcnJvckNvZGVDYW5ub3RMb2FkUGx1Z0luID0gICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgMjAxLAorICAgIGtXS0Vycm9yQ29kZUphdmFVbmF2YWlsYWJsZSA9ICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAyMDIsCisgICAga1dLRXJyb3JDb2RlUGx1Z0luQ2FuY2VsbGVkQ29u
bmVjdGlvbiA9ICAgICAgICAgICAgICAgICAgICAgIDIwMywKKyAgICBrV0tFcnJvckNvZGVQbHVn
SW5XaWxsSGFuZGxlTG9hZCA9ICAgICAgICAgICAgICAgICAgICAgICAgICAgMjA0LAorICAgIGtX
S0Vycm9yQ29kZUluc2VjdXJlUGx1Z0luVmVyc2lvbiA9ICAgICAgICAgICAgICAgICAgICAgICAg
ICAyMDUsCisgICAga1dLRXJyb3JJbnRlcm5hbCA9ICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIDMwMCwKK307CisKK3N0YXRpYyBSZXRhaW5QdHI8TlNFcnJvcj4gY3Jl
YXRlTlNFcnJvcihOU1N0cmluZyogZG9tYWluLCBpbnQgY29kZSwgTlNVUkwgKlVSTCkKK3sKKyAg
ICBOU0RpY3Rpb25hcnkgKnVzZXJJbmZvID0gW05TRGljdGlvbmFyeSBkaWN0aW9uYXJ5V2l0aE9i
amVjdHNBbmRLZXlzOgorICAgICAgICBVUkwsIEAiTlNFcnJvckZhaWxpbmdVUkxLZXkiLAorICAg
ICAgICBbVVJMIGFic29sdXRlU3RyaW5nXSwgQCJOU0Vycm9yRmFpbGluZ1VSTFN0cmluZ0tleSIs
CisgICAgICAgIG5pbF07CisKKyAgICByZXR1cm4gYWRvcHROUyhbW05TRXJyb3IgYWxsb2NdIGlu
aXRXaXRoRG9tYWluOmRvbWFpbiBjb2RlOmNvZGUgdXNlckluZm86dXNlckluZm9dKTsKK30KKwor
Ly8gVXNlIE5TRXJyb3IncyBpZiBhdmFpbGFibGUuCisKK1Jlc291cmNlRXJyb3IgY2FuY2VsbGVk
RXJyb3IoY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0KQoreworICAgIHJldHVybiBSZXNv
dXJjZUVycm9yKGNyZWF0ZU5TRXJyb3IoTlNVUkxFcnJvckRvbWFpbiwgTlNVUkxFcnJvckNhbmNl
bGxlZCwgcmVxdWVzdC51cmwoKSkuZ2V0KCkpOworfQorCitSZXNvdXJjZUVycm9yIGZpbGVEb2Vz
Tm90RXhpc3RFcnJvcihjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiByZXNwb25zZSkKK3sKKyAgICBy
ZXR1cm4gUmVzb3VyY2VFcnJvcihjcmVhdGVOU0Vycm9yKE5TVVJMRXJyb3JEb21haW4sIE5TVVJM
RXJyb3JGaWxlRG9lc05vdEV4aXN0LCByZXNwb25zZS51cmwoKSkuZ2V0KCkpOworfQorCisKKy8v
IE90aGVyd2lzZSwgZmFsbGJhY2sgdG8gb3VyIG93biBlcnJvcnMuCisKK1Jlc291cmNlRXJyb3Ig
YmxvY2tlZEVycm9yKGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCkKK3sKKyAgICByZXR1
cm4gUmVzb3VyY2VFcnJvcih3ZWJLaXRFcnJvckRvbWFpbigpLCBrV0tFcnJvckNvZGVDYW5ub3RV
c2VSZXN0cmljdGVkUG9ydCwgcmVxdWVzdC51cmwoKSwgV0VCX1VJX1NUUklORygiTm90IGFsbG93
ZWQgdG8gdXNlIHJlc3RyaWN0ZWQgbmV0d29yayBwb3J0IiwgIldlYktpdEVycm9yQ2Fubm90VXNl
UmVzdHJpY3RlZFBvcnQgZGVzY3JpcHRpb24iKSk7Cit9CisKK1Jlc291cmNlRXJyb3IgYmxvY2tl
ZEJ5Q29udGVudEJsb2NrZXJFcnJvcihjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QpCit7
CisgICAgcmV0dXJuIFJlc291cmNlRXJyb3Iod2ViS2l0RXJyb3JEb21haW4oKSwga1dLRXJyb3JD
b2RlRnJhbWVMb2FkQmxvY2tlZEJ5Q29udGVudEJsb2NrZXIsIHJlcXVlc3QudXJsKCksIFdFQl9V
SV9TVFJJTkcoIlRoZSBVUkwgd2FzIGJsb2NrZWQgYnkgYSBjb250ZW50IGJsb2NrZXIiLCAiV2Vi
S2l0RXJyb3JCbG9ja2VkQnlDb250ZW50QmxvY2tlciBkZXNjcmlwdGlvbiIpKTsKK30KKworUmVz
b3VyY2VFcnJvciBjYW5ub3RTaG93VVJMRXJyb3IoY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1
ZXN0KQoreworICAgIHJldHVybiBSZXNvdXJjZUVycm9yKHdlYktpdEVycm9yRG9tYWluKCksIGtX
S0Vycm9yQ29kZUNhbm5vdFNob3dVUkwsIHJlcXVlc3QudXJsKCksIFdFQl9VSV9TVFJJTkcoIlRo
ZSBVUkwgY2Fu4oCZdCBiZSBzaG93biIsICJXZWJLaXRFcnJvckNhbm5vdFNob3dVUkwgZGVzY3Jp
cHRpb24iKSk7Cit9CisKK1Jlc291cmNlRXJyb3IgaW50ZXJydXB0ZWRGb3JQb2xpY3lDaGFuZ2VF
cnJvcihjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QpCit7CisgICAgcmV0dXJuIFJlc291
cmNlRXJyb3Iod2ViS2l0RXJyb3JEb21haW4oKSwga1dLRXJyb3JDb2RlRnJhbWVMb2FkSW50ZXJy
dXB0ZWRCeVBvbGljeUNoYW5nZSwgcmVxdWVzdC51cmwoKSwgV0VCX1VJX1NUUklORygiRnJhbWUg
bG9hZCBpbnRlcnJ1cHRlZCIsICJXZWJLaXRFcnJvckZyYW1lTG9hZEludGVycnVwdGVkQnlQb2xp
Y3lDaGFuZ2UgZGVzY3JpcHRpb24iKSk7Cit9CisKKyNpZiBFTkFCTEUoQ09OVEVOVF9GSUxURVJJ
TkcpCitSZXNvdXJjZUVycm9yIGJsb2NrZWRCeUNvbnRlbnRGaWx0ZXJFcnJvcihjb25zdCBSZXNv
dXJjZVJlcXVlc3QmIHJlcXVlc3QpCit7CisgICAgcmV0dXJuIFJlc291cmNlRXJyb3Iod2ViS2l0
RXJyb3JEb21haW4oKSwga1dLRXJyb3JDb2RlRnJhbWVMb2FkQmxvY2tlZEJ5Q29udGVudEZpbHRl
ciwgcmVxdWVzdC51cmwoKSwgV0VCX1VJX1NUUklORygiVGhlIFVSTCB3YXMgYmxvY2tlZCBieSBh
IGNvbnRlbnQgZmlsdGVyIiwgIldlYktpdEVycm9yQmxvY2tlZEJ5Q29udGVudEZpbHRlciIpKTsK
K30KKyNlbmRpZgorCitSZXNvdXJjZUVycm9yIGNhbm5vdFNob3dNSU1FVHlwZUVycm9yKGNvbnN0
IFJlc291cmNlUmVzcG9uc2UmIHJlc3BvbnNlKQoreworICAgIHJldHVybiBSZXNvdXJjZUVycm9y
KHdlYktpdEVycm9yRG9tYWluKCksIGtXS0Vycm9yQ29kZUNhbm5vdFNob3dNSU1FVHlwZSwgcmVz
cG9uc2UudXJsKCksIFdFQl9VSV9TVFJJTkcoIkNvbnRlbnQgd2l0aCBzcGVjaWZpZWQgTUlNRSB0
eXBlIGNhbuKAmXQgYmUgc2hvd24iLCAiV2ViS2l0RXJyb3JDYW5ub3RTaG93TUlNRVR5cGUgZGVz
Y3JpcHRpb24iKSk7Cit9CisKK1Jlc291cmNlRXJyb3IgcGx1Z2luV2lsbEhhbmRsZUxvYWRFcnJv
cihjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiByZXNwb25zZSkKK3sKKyAgICByZXR1cm4gUmVzb3Vy
Y2VFcnJvcih3ZWJLaXRFcnJvckRvbWFpbigpLCBrV0tFcnJvckNvZGVQbHVnSW5XaWxsSGFuZGxl
TG9hZCwgcmVzcG9uc2UudXJsKCksIFdFQl9VSV9TVFJJTkcoIlBsdWctaW4gaGFuZGxlZCBsb2Fk
IiwgIldlYktpdEVycm9yUGx1Z0luV2lsbEhhbmRsZUxvYWQgZGVzY3JpcHRpb24iKSk7Cit9CisK
K1Jlc291cmNlRXJyb3IgaW50ZXJuYWxFcnJvcihjb25zdCBVUkwmIHVybCkKK3sKKyAgICByZXR1
cm4gUmVzb3VyY2VFcnJvcih3ZWJLaXRFcnJvckRvbWFpbigpLCBrV0tFcnJvckludGVybmFsLCB1
cmwsIFdFQl9VSV9TVFJJTkcoIldlYktpdCBlbmNvdW50ZXJlZCBhbiBpbnRlcm5hbCBlcnJvciIs
ICJXZWJLaXRFcnJvckludGVybmFsIGRlc2NyaXB0aW9uIikpOworfQorCit9IC8vIG5hbWVzcGFj
ZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS91bml4L0Vycm9y
c1VuaXguY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdW5peC9FcnJvcnNVbml4LmNwcApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi5iMTZmNDkyOWJiZTUwZTYwNWY2NGM0N2M5NDA3YWI0NjIyZmQ1MDQzCi0tLSAv
ZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdW5peC9FcnJvcnNVbml4LmNw
cApAQCAtMCwwICsxLDExMiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMSBJZ2FsaWEgUy5M
LgorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJp
YnV0ZSBpdCBhbmQvb3IKKyAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBM
aWJyYXJ5IEdlbmVyYWwgUHVibGljCisgKiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJl
ZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAqIHZlcnNpb24gMiBvZiB0aGUgTGljZW5z
ZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiBUaGlzIGxp
YnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwK
KyAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdh
cnJhbnR5IG9mCisgKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
IFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICogTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNl
IGZvciBtb3JlIGRldGFpbHMuCisgKgorICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29w
eSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICogYWxvbmcgd2l0
aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUg
dG8KKyAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0
cmVldCwgRmlmdGggRmxvb3IsCisgKiBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KKyAqLwor
CisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiRXJyb3JzVW5peC5oIgorCisjaW5jbHVk
ZSAiRXJyb3JzLmgiCisjaW5jbHVkZSAiUmVzb3VyY2VFcnJvci5oIgorI2luY2x1ZGUgIlJlc291
cmNlUmVxdWVzdC5oIgorI2luY2x1ZGUgIlJlc291cmNlUmVzcG9uc2UuaCIKKworI2lmIFBMQVRG
T1JNKEdUSykKKyNpbmNsdWRlIDxnbGliL2dpMThuLWxpYi5oPgorI2RlZmluZSBFUlJPUl9TVFJJ
TkcocykgXyhzKQorI2VsaWYgUExBVEZPUk0oRUZMKQorI2RlZmluZSBFUlJPUl9TVFJJTkcocykg
QVNDSUlMaXRlcmFsKHMpCisjZW5kaWYKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitSZXNvdXJj
ZUVycm9yIGNhbmNlbGxlZEVycm9yKGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCkKK3sK
KyAgICByZXR1cm4gUmVzb3VyY2VFcnJvcihlcnJvckRvbWFpbk5ldHdvcmssIE5ldHdvcmtFcnJv
ckNhbmNlbGxlZCwgcmVxdWVzdC51cmwoKSwgRVJST1JfU1RSSU5HKCJMb2FkIHJlcXVlc3QgY2Fu
Y2VsbGVkIikpOworfQorCitSZXNvdXJjZUVycm9yIGJsb2NrZWRFcnJvcihjb25zdCBSZXNvdXJj
ZVJlcXVlc3QmIHJlcXVlc3QpCit7CisgICAgcmV0dXJuIFJlc291cmNlRXJyb3IoZXJyb3JEb21h
aW5Qb2xpY3ksIFBvbGljeUVycm9yQ2Fubm90VXNlUmVzdHJpY3RlZFBvcnQsIHJlcXVlc3QudXJs
KCksIEVSUk9SX1NUUklORygiTm90IGFsbG93ZWQgdG8gdXNlIHJlc3RyaWN0ZWQgbmV0d29yayBw
b3J0IikpOworfQorCitSZXNvdXJjZUVycm9yIGJsb2NrZWRCeUNvbnRlbnRCbG9ja2VyRXJyb3Io
Y29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0KQoreworICAgIHJldHVybiBSZXNvdXJjZUVy
cm9yKGVycm9yRG9tYWluUG9saWN5LCBQb2xpY3lFcnJvckJsb2NrZWRCeUNvbnRlbnRCbG9ja2Vy
LCByZXF1ZXN0LnVybCgpLCBFUlJPUl9TVFJJTkcoIkJsb2NrZWQgYnkgY29udGVudCBibG9ja2Vy
IikpOworfQorCitSZXNvdXJjZUVycm9yIGNhbm5vdFNob3dVUkxFcnJvcihjb25zdCBSZXNvdXJj
ZVJlcXVlc3QmIHJlcXVlc3QpCit7CisgICAgcmV0dXJuIFJlc291cmNlRXJyb3IoZXJyb3JEb21h
aW5Qb2xpY3ksIFBvbGljeUVycm9yQ2Fubm90U2hvd1VSTCwgcmVxdWVzdC51cmwoKSwgRVJST1Jf
U1RSSU5HKCJVUkwgY2Fubm90IGJlIHNob3duIikpOworfQorCitSZXNvdXJjZUVycm9yIGludGVy
cnVwdGVkRm9yUG9saWN5Q2hhbmdlRXJyb3IoY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0
KQoreworICAgIHJldHVybiBSZXNvdXJjZUVycm9yKGVycm9yRG9tYWluUG9saWN5LCBQb2xpY3lF
cnJvckZyYW1lTG9hZEludGVycnVwdGVkQnlQb2xpY3lDaGFuZ2UsIHJlcXVlc3QudXJsKCksIEVS
Uk9SX1NUUklORygiRnJhbWUgbG9hZCB3YXMgaW50ZXJydXB0ZWQiKSk7Cit9CisKK1Jlc291cmNl
RXJyb3IgY2Fubm90U2hvd01JTUVUeXBlRXJyb3IoY29uc3QgUmVzb3VyY2VSZXNwb25zZSYgcmVz
cG9uc2UpCit7CisgICAgcmV0dXJuIFJlc291cmNlRXJyb3IoZXJyb3JEb21haW5Qb2xpY3ksIFBv
bGljeUVycm9yQ2Fubm90U2hvd01pbWVUeXBlLCByZXNwb25zZS51cmwoKSwgRVJST1JfU1RSSU5H
KCJDb250ZW50IHdpdGggdGhlIHNwZWNpZmllZCBNSU1FIHR5cGUgY2Fubm90IGJlIHNob3duIikp
OworfQorCitSZXNvdXJjZUVycm9yIGZpbGVEb2VzTm90RXhpc3RFcnJvcihjb25zdCBSZXNvdXJj
ZVJlc3BvbnNlJiByZXNwb25zZSkKK3sKKyAgICByZXR1cm4gUmVzb3VyY2VFcnJvcihlcnJvckRv
bWFpbk5ldHdvcmssIE5ldHdvcmtFcnJvckZpbGVEb2VzTm90RXhpc3QsIHJlc3BvbnNlLnVybCgp
LCBFUlJPUl9TVFJJTkcoIkZpbGUgZG9lcyBub3QgZXhpc3QiKSk7Cit9CisKK1Jlc291cmNlRXJy
b3IgcGx1Z2luV2lsbEhhbmRsZUxvYWRFcnJvcihjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiByZXNw
b25zZSkKK3sKKyAgICByZXR1cm4gUmVzb3VyY2VFcnJvcihlcnJvckRvbWFpblBsdWdpbiwgUGx1
Z2luRXJyb3JXaWxsSGFuZGxlTG9hZCwgcmVzcG9uc2UudXJsKCksIEVSUk9SX1NUUklORygiUGx1
Z2luIHdpbGwgaGFuZGxlIGxvYWQiKSk7Cit9CisKK1Jlc291cmNlRXJyb3IgZG93bmxvYWROZXR3
b3JrRXJyb3IoY29uc3QgUmVzb3VyY2VFcnJvciYgbmV0d29ya0Vycm9yKQoreworICAgIHJldHVy
biBSZXNvdXJjZUVycm9yKGVycm9yRG9tYWluRG93bmxvYWQsIERvd25sb2FkRXJyb3JOZXR3b3Jr
LCBuZXR3b3JrRXJyb3IuZmFpbGluZ1VSTCgpLCBuZXR3b3JrRXJyb3IubG9jYWxpemVkRGVzY3Jp
cHRpb24oKSk7Cit9CisKK1Jlc291cmNlRXJyb3IgZG93bmxvYWRDYW5jZWxsZWRCeVVzZXJFcnJv
cihjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiByZXNwb25zZSkKK3sKKyAgICByZXR1cm4gUmVzb3Vy
Y2VFcnJvcihlcnJvckRvbWFpbkRvd25sb2FkLCBEb3dubG9hZEVycm9yQ2FuY2VsbGVkQnlVc2Vy
LCByZXNwb25zZS51cmwoKSwgRVJST1JfU1RSSU5HKCJVc2VyIGNhbmNlbGxlZCB0aGUgZG93bmxv
YWQiKSk7Cit9CisKK1Jlc291cmNlRXJyb3IgZG93bmxvYWREZXN0aW5hdGlvbkVycm9yKGNvbnN0
IFJlc291cmNlUmVzcG9uc2UmIHJlc3BvbnNlLCBjb25zdCBTdHJpbmcmIGVycm9yTWVzc2FnZSkK
K3sKKyAgICByZXR1cm4gUmVzb3VyY2VFcnJvcihlcnJvckRvbWFpbkRvd25sb2FkLCBEb3dubG9h
ZEVycm9yRGVzdGluYXRpb24sIHJlc3BvbnNlLnVybCgpLCBlcnJvck1lc3NhZ2UpOworfQorCitS
ZXNvdXJjZUVycm9yIHByaW50RXJyb3IoY29uc3QgVVJMJiBmYWlsaW5nVVJMLCBjb25zdCBTdHJp
bmcmIGVycm9yTWVzc2FnZSkKK3sKKyAgICByZXR1cm4gUmVzb3VyY2VFcnJvcihlcnJvckRvbWFp
blByaW50LCBQcmludEVycm9yR2VuZXJhbCwgZmFpbGluZ1VSTCwgZXJyb3JNZXNzYWdlKTsKK30K
KworUmVzb3VyY2VFcnJvciBwcmludGVyTm90Rm91bmRFcnJvcihjb25zdCBVUkwmIGZhaWxpbmdV
UkwpCit7CisgICAgcmV0dXJuIFJlc291cmNlRXJyb3IoZXJyb3JEb21haW5QcmludCwgUHJpbnRF
cnJvclByaW50ZXJOb3RGb3VuZCwgZmFpbGluZ1VSTCwgRVJST1JfU1RSSU5HKCJQcmludGVyIG5v
dCBmb3VuZCIpKTsKK30KKworUmVzb3VyY2VFcnJvciBpbnZhbGlkUGFnZVJhbmdlVG9QcmludChj
b25zdCBVUkwmIGZhaWxpbmdVUkwpCit7CisgICAgcmV0dXJuIFJlc291cmNlRXJyb3IoZXJyb3JE
b21haW5QcmludCwgUHJpbnRFcnJvckludmFsaWRQYWdlUmFuZ2UsIGZhaWxpbmdVUkwsIEVSUk9S
X1NUUklORygiSW52YWxpZCBwYWdlIHJhbmdlIikpOworfQorCitSZXNvdXJjZUVycm9yIGludGVy
bmFsRXJyb3IoY29uc3QgVVJMJiB1cmwpCit7CisgICAgcmV0dXJuIFJlc291cmNlRXJyb3Iod2Vi
S2l0RXJyb3JEb21haW4oKSwgUG9saWN5RXJyb3JJbnRlcm5hbCwgdXJsLCBFUlJPUl9TVFJJTkco
IkludGVybmFsIGVycm9yIikpOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS91bml4L0Vycm9yc1VuaXguaCBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL3VuaXgvRXJyb3JzVW5peC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjQxZjI1ZTUxY2E1
MGIyY2YzY2FiMzgwMzk4YTY5MTM2ODVmM2FiZmIKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS91bml4L0Vycm9yc1VuaXguaApAQCAtMCwwICsxLDg3IEBACisvKgor
ICogQ29weXJpZ2h0IChDKSAyMDExLCAyMDE2IElnYWxpYSBTLkwuCisgKgorICogVGhpcyBsaWJy
YXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICog
bW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJs
aWMKKyAqIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRp
b247IGVpdGhlcgorICogdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRp
b24pIGFueSBsYXRlciB2ZXJzaW9uLgorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRl
ZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICogYnV0IFdJVEhPVVQgQU5Z
IFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAqIE1FUkNI
QU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUg
R05VCisgKiBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4K
KyAqCisgKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGlicmFy
eSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgKiBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgc2Vl
IHRoZSBmaWxlIENPUFlJTkcuTElCLiAgSWYgbm90LCB3cml0ZSB0bworICogdGhlIEZyZWUgU29m
dHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwK
KyAqIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgorICovCisKKyNpZm5kZWYgRXJyb3JzVW5p
eF9oCisjZGVmaW5lIEVycm9yc1VuaXhfaAorCisjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5n
Lmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgUmVzb3VyY2VFcnJvcjsKK2NsYXNz
IFJlc291cmNlUmVxdWVzdDsKK2NsYXNzIFJlc291cmNlUmVzcG9uc2U7CitjbGFzcyBVUkw7CisK
K2NvbnN0IGNoYXIqIGNvbnN0IGVycm9yRG9tYWluTmV0d29yayA9ICJXZWJLaXROZXR3b3JrRXJy
b3IiOworY29uc3QgY2hhciogY29uc3QgZXJyb3JEb21haW5Qb2xpY3kgPSAiV2ViS2l0UG9saWN5
RXJyb3IiOworY29uc3QgY2hhciogY29uc3QgZXJyb3JEb21haW5QbHVnaW4gPSAiV2ViS2l0UGx1
Z2luRXJyb3IiOworY29uc3QgY2hhciogY29uc3QgZXJyb3JEb21haW5Eb3dubG9hZCA9ICJXZWJL
aXREb3dubG9hZEVycm9yIjsKK2NvbnN0IGNoYXIqIGNvbnN0IGVycm9yRG9tYWluUHJpbnQgPSAi
V2ViS2l0UHJpbnRFcnJvciI7CisKK2VudW0gTmV0d29ya0Vycm9yIHsKKyAgICBOZXR3b3JrRXJy
b3JGYWlsZWQgPSAzOTksCisgICAgTmV0d29ya0Vycm9yVW5rbm93blByb3RvY29sID0gMzAxLAor
ICAgIE5ldHdvcmtFcnJvckNhbmNlbGxlZCA9IDMwMiwKKyAgICBOZXR3b3JrRXJyb3JGaWxlRG9l
c05vdEV4aXN0ID0gMzAzLAorICAgIE5ldHdvcmtFcnJvclRyYW5zcG9ydCA9IDMwNCwKK307CisK
Ky8vIFN5bmMnZCB3aXRoIE1hYydzIFdlYktpdCBFcnJvcnMuCitlbnVtIFBvbGljeUVycm9yIHsK
KyAgICBQb2xpY3lFcnJvckludGVybmFsID0gMzAwLAorICAgIFBvbGljeUVycm9yRmFpbGVkID0g
MTk5LAorICAgIFBvbGljeUVycm9yQ2Fubm90U2hvd01pbWVUeXBlID0gMTAwLAorICAgIFBvbGlj
eUVycm9yQ2Fubm90U2hvd1VSTCA9IDEwMSwKKyAgICBQb2xpY3lFcnJvckZyYW1lTG9hZEludGVy
cnVwdGVkQnlQb2xpY3lDaGFuZ2UgPSAxMDIsCisgICAgUG9saWN5RXJyb3JDYW5ub3RVc2VSZXN0
cmljdGVkUG9ydCA9IDEwMywKKyAgICBQb2xpY3lFcnJvckJsb2NrZWRCeUNvbnRlbnRCbG9ja2Vy
ID0gMTA0LAorfTsKKworZW51bSBQbHVnaW5FcnJvciB7CisgICAgUGx1Z2luRXJyb3JGYWlsZWQg
PSAyOTksCisgICAgUGx1Z2luRXJyb3JDYW5ub3RGaW5kUGx1Z2luID0gMjAwLAorICAgIFBsdWdp
bkVycm9yQ2Fubm90TG9hZFBsdWdpbiA9IDIwMSwKKyAgICBQbHVnaW5FcnJvckphdmFVbmF2YWls
YWJsZSA9IDIwMiwKKyAgICBQbHVnaW5FcnJvckNvbm5lY3Rpb25DYW5jZWxsZWQgPSAyMDMsCisg
ICAgUGx1Z2luRXJyb3JXaWxsSGFuZGxlTG9hZCA9IDIwNAorfTsKKworZW51bSBEb3dubG9hZEVy
cm9yIHsKKyAgICBEb3dubG9hZEVycm9yTmV0d29yayA9IDQ5OSwKKyAgICBEb3dubG9hZEVycm9y
Q2FuY2VsbGVkQnlVc2VyID0gNDAwLAorICAgIERvd25sb2FkRXJyb3JEZXN0aW5hdGlvbiA9IDQw
MQorfTsKKworZW51bSBQcmludEVycm9yIHsKKyAgICBQcmludEVycm9yR2VuZXJhbCA9IDU5OSwK
KyAgICBQcmludEVycm9yUHJpbnRlck5vdEZvdW5kID0gNTAwLAorICAgIFByaW50RXJyb3JJbnZh
bGlkUGFnZVJhbmdlID0gNTAxCit9OworCitSZXNvdXJjZUVycm9yIGRvd25sb2FkTmV0d29ya0Vy
cm9yKGNvbnN0IFJlc291cmNlRXJyb3ImKTsKK1Jlc291cmNlRXJyb3IgZG93bmxvYWRDYW5jZWxs
ZWRCeVVzZXJFcnJvcihjb25zdCBSZXNvdXJjZVJlc3BvbnNlJik7CitSZXNvdXJjZUVycm9yIGRv
d25sb2FkRGVzdGluYXRpb25FcnJvcihjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiwgY29uc3QgU3Ry
aW5nJiBlcnJvck1lc3NhZ2UpOworUmVzb3VyY2VFcnJvciBwcmludEVycm9yKGNvbnN0IFVSTCYg
ZmFpbGluZ1VSTCwgY29uc3QgU3RyaW5nJiBlcnJvck1lc3NhZ2UpOworUmVzb3VyY2VFcnJvciBw
cmludGVyTm90Rm91bmRFcnJvcihjb25zdCBVUkwmIGZhaWxpbmdVUkwpOworUmVzb3VyY2VFcnJv
ciBpbnZhbGlkUGFnZVJhbmdlVG9QcmludChjb25zdCBVUkwmIGZhaWxpbmdVUkwpOworCit9CisK
KyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vd2luL0Vycm9yc1dp
bi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS93aW4vRXJyb3JzV2luLmNwcApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi41MmQ0MzExM2IwN2ZkODY0OWFjN2E0MzQ3YTRmNzg5NTkwYjk5ZjAxCi0tLSAvZGV2L251
bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vd2luL0Vycm9yc1dpbi5jcHAKQEAgLTAs
MCArMSw5NCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAwNi0yMDE2IEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJl
IG1ldDoKKyAqCisgKiAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiAgUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIgaW4gdGhlCisgKiAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqIDMuICBOZWl0aGVyIHRoZSBu
YW1lIG9mIEFwcGxlIEluYy4gKCJBcHBsZSIpIG5vciB0aGUgbmFtZXMgb2YKKyAqICAgICBpdHMg
Y29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBk
ZXJpdmVkCisgKiAgICAgZnJvbSB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Ig
d3JpdHRlbiBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkg
QVBQTEUgQU5EIElUUyBDT05UUklCVVRPUlMgIkFTIElTIiBBTkQgQU5ZCisgKiBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJ
TVBMSUVECisgKiBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCisgKiBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFM
TCBBUFBMRSBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZCisgKiBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJ
QUwgREFNQUdFUworICogKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVO
VCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOworICogTE9TUyBPRiBVU0UsIERBVEEs
IE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
CisgKiBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GCisgKiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgor
ICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJFcnJvcnMuaCIKKworI2luY2x1
ZGUgIkxvY2FsaXplZFN0cmluZ3MuaCIKKyNpbmNsdWRlICJSZXNvdXJjZUVycm9yLmgiCisjaW5j
bHVkZSAiUmVzb3VyY2VSZXF1ZXN0LmgiCisjaW5jbHVkZSAiUmVzb3VyY2VSZXNwb25zZS5oIgor
CituYW1lc3BhY2UgV2ViQ29yZSB7CisKKy8vIFRoZSBlbnVtZXJhdGlvbiBhbmQgZGVmaW5pdGlv
bnMgY29tZSBmcm9tIElXZWJFcnJvci5pZGwgYW5kCisvLyBJV2ViRXJyb3JQcml2YXRlLmlkbC4K
KworZW51bSB7CisgICAgV2ViS2l0RXJyb3JDYW5ub3RTaG93TUlNRVR5cGUgPSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgMTAwLAorICAgIFdlYktpdEVycm9yQ2Fubm90U2hvd1VSTCA9ICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEwMSwKKyAgICBXZWJLaXRFcnJvckZyYW1l
TG9hZEludGVycnVwdGVkQnlQb2xpY3lDaGFuZ2UgPSAgICAgICAgICAgICAxMDIsCisgICAgV2Vi
S2l0RXJyb3JDYW5ub3RVc2VSZXN0cmljdGVkUG9ydCA9ICAgICAgICAgICAgICAgICAgICAgICAg
MTAzLAorICAgIFdlYktpdEVycm9yUGx1Z0luV2lsbEhhbmRsZUxvYWQgPSAgICAgICAgICAgICAg
ICAgICAgICAgICAgIDIwNCwKK307CisKKyNkZWZpbmUgV2ViVVJMRXJyb3JEb21haW4gIkNGVVJM
RXJyb3JEb21haW4iCisKK1Jlc291cmNlRXJyb3IgY2FuY2VsbGVkRXJyb3IoY29uc3QgUmVzb3Vy
Y2VSZXF1ZXN0JiByZXF1ZXN0KQoreworICAgIC8vIEZJWE1FOiBOZWVkIENoaWNrZW5DYXQgdG8g
aW5jbHVkZSBDRk5ldHdvcmsvQ0ZVUkxFcnJvci5oIHRvIGdldCB0aGVzZSB2YWx1ZXMKKyAgICAv
LyBBbHRlcm5hdGl2ZWx5LCB3ZSBjb3VsZCBjcmVhdGUgb3VyIG93biBlcnJvciBkb21haW4vY29k
ZXMuCisgICAgcmV0dXJuIFJlc291cmNlRXJyb3IoU3RyaW5nKFdlYlVSTEVycm9yRG9tYWluKSwg
LTk5OSwgcmVxdWVzdC51cmwoKSwgU3RyaW5nKCJDYW5jZWxsZWQiKSk7Cit9CisKK1Jlc291cmNl
RXJyb3IgYmxvY2tlZEVycm9yKGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCkKK3sKKyAg
ICByZXR1cm4gUmVzb3VyY2VFcnJvcih3ZWJLaXRFcnJvckRvbWFpbigpLCBXZWJLaXRFcnJvckNh
bm5vdFVzZVJlc3RyaWN0ZWRQb3J0LCByZXF1ZXN0LnVybCgpLCBXRUJfVUlfU1RSSU5HKCJOb3Qg
YWxsb3dlZCB0byB1c2UgcmVzdHJpY3RlZCBuZXR3b3JrIHBvcnQiLCAiV2ViS2l0RXJyb3JDYW5u
b3RVc2VSZXN0cmljdGVkUG9ydCBkZXNjcmlwdGlvbiIpKTsKK30KKworUmVzb3VyY2VFcnJvciBi
bG9ja2VkQnlDb250ZW50QmxvY2tlckVycm9yKGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVz
dCkKK3sKKyAgICBSRUxFQVNFX0FTU0VSVF9OT1RfUkVBQ0hFRCgpOyAvLyBDb250ZW50IEJsb2Nr
ZXJzIGFyZSBub3QgZW5hYmxlZCBmb3IgV0sxLgorfQorCitSZXNvdXJjZUVycm9yIGNhbm5vdFNo
b3dVUkxFcnJvcihjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QpCit7CisgICAgcmV0dXJu
IFJlc291cmNlRXJyb3Iod2ViS2l0RXJyb3JEb21haW4oKSwgV2ViS2l0RXJyb3JDYW5ub3RTaG93
VVJMLCByZXF1ZXN0LnVybCgpLCBXRUJfVUlfU1RSSU5HKCJUaGUgVVJMIGNhblx4RTJceDgwXHg5
OXQgYmUgc2hvd24iLCAiV2ViS2l0RXJyb3JDYW5ub3RTaG93VVJMIGRlc2NyaXB0aW9uIikpOwor
fQorCitSZXNvdXJjZUVycm9yIGludGVycnVwdGVkRm9yUG9saWN5Q2hhbmdlRXJyb3IoY29uc3Qg
UmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0KQoreworICAgIHJldHVybiBSZXNvdXJjZUVycm9yKHdl
YktpdEVycm9yRG9tYWluKCksIFdlYktpdEVycm9yRnJhbWVMb2FkSW50ZXJydXB0ZWRCeVBvbGlj
eUNoYW5nZSwgcmVxdWVzdC51cmwoKSwgV0VCX1VJX1NUUklORygiRnJhbWUgbG9hZCBpbnRlcnJ1
cHRlZCIsICJXZWJLaXRFcnJvckZyYW1lTG9hZEludGVycnVwdGVkQnlQb2xpY3lDaGFuZ2UgZGVz
Y3JpcHRpb24iKSk7Cit9CisKK1Jlc291cmNlRXJyb3IgY2Fubm90U2hvd01JTUVUeXBlRXJyb3Io
Y29uc3QgUmVzb3VyY2VSZXNwb25zZSYgcmVzcG9uc2UpCit7CisgICAgcmV0dXJuIFJlc291cmNl
RXJyb3IoU3RyaW5nKCksIFdlYktpdEVycm9yQ2Fubm90U2hvd01JTUVUeXBlLCByZXNwb25zZS51
cmwoKSwgV0VCX1VJX1NUUklORygiQ29udGVudCB3aXRoIHNwZWNpZmllZCBNSU1FIHR5cGUgY2Fu
XHhFMlx4ODBceDk5dCBiZSBzaG93biIsICJXZWJLaXRFcnJvckNhbm5vdFNob3dNSU1FVHlwZSBk
ZXNjcmlwdGlvbiIpKTsKK30KKworUmVzb3VyY2VFcnJvciBmaWxlRG9lc05vdEV4aXN0RXJyb3Io
Y29uc3QgUmVzb3VyY2VSZXNwb25zZSYgcmVzcG9uc2UpCit7CisgICAgcmV0dXJuIFJlc291cmNl
RXJyb3IoU3RyaW5nKFdlYlVSTEVycm9yRG9tYWluKSwgLTExMDAsIHJlc3BvbnNlLnVybCgpLCBT
dHJpbmcoIkZpbGUgZG9lcyBub3QgZXhpc3QuIikpOworfQorCitSZXNvdXJjZUVycm9yIHBsdWdp
bldpbGxIYW5kbGVMb2FkRXJyb3IoY29uc3QgUmVzb3VyY2VSZXNwb25zZSYgcmVzcG9uc2UpCit7
CisgICAgcmV0dXJuIFJlc291cmNlRXJyb3Iod2ViS2l0RXJyb3JEb21haW4oKSwgV2ViS2l0RXJy
b3JQbHVnSW5XaWxsSGFuZGxlTG9hZCwgcmVzcG9uc2UudXJsKCksIFdFQl9VSV9TVFJJTkcoIlBs
dWctaW4gaGFuZGxlZCBsb2FkIiwgIldlYktpdEVycm9yUGx1Z0luV2lsbEhhbmRsZUxvYWQgZGVz
Y3JpcHRpb24iKSk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmggYi9T
b3VyY2UvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5oCmlu
ZGV4IDI2NzlkN2M5ZGY4ZGY4ZTNlM2E2YTFlNTM3MDhlYTFjODcyMWY4NzIuLmRmOGQ5Nzk4Y2Nj
NTkyMTFkYTkyNWY2MWY3NjgxOTEyM2ZmNzJiODggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
bWFjL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmgKKysrIGIvU291cmNlL1dl
YktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuaApAQCAtMTU3LDE5
ICsxNTcsNiBAQCBwcml2YXRlOgogICAgIHZvaWQgZGlkUnVuSW5zZWN1cmVDb250ZW50KFdlYkNv
cmU6OlNlY3VyaXR5T3JpZ2luKiwgY29uc3QgV2ViQ29yZTo6VVJMJikgb3ZlcnJpZGU7CiAgICAg
dm9pZCBkaWREZXRlY3RYU1MoY29uc3QgV2ViQ29yZTo6VVJMJiwgYm9vbCBkaWRCbG9ja0VudGly
ZVBhZ2UpIG92ZXJyaWRlOwogCi0gICAgV2ViQ29yZTo6UmVzb3VyY2VFcnJvciBjYW5jZWxsZWRF
cnJvcihjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmKSBvdmVycmlkZTsKLSAgICBXZWJD
b3JlOjpSZXNvdXJjZUVycm9yIGJsb2NrZWRFcnJvcihjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJl
cXVlc3QmKSBvdmVycmlkZTsKLSAgICBXZWJDb3JlOjpSZXNvdXJjZUVycm9yIGJsb2NrZWRCeUNv
bnRlbnRCbG9ja2VyRXJyb3IoY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0Jikgb3ZlcnJp
ZGU7Ci0gICAgV2ViQ29yZTo6UmVzb3VyY2VFcnJvciBjYW5ub3RTaG93VVJMRXJyb3IoY29uc3Qg
V2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0Jikgb3ZlcnJpZGU7Ci0gICAgV2ViQ29yZTo6UmVzb3Vy
Y2VFcnJvciBpbnRlcnJ1cHRlZEZvclBvbGljeUNoYW5nZUVycm9yKGNvbnN0IFdlYkNvcmU6OlJl
c291cmNlUmVxdWVzdCYpIG92ZXJyaWRlOwotI2lmIEVOQUJMRShDT05URU5UX0ZJTFRFUklORykK
LSAgICBXZWJDb3JlOjpSZXNvdXJjZUVycm9yIGJsb2NrZWRCeUNvbnRlbnRGaWx0ZXJFcnJvcihj
b25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmKSBvdmVycmlkZTsKLSNlbmRpZgotCi0gICAg
V2ViQ29yZTo6UmVzb3VyY2VFcnJvciBjYW5ub3RTaG93TUlNRVR5cGVFcnJvcihjb25zdCBXZWJD
b3JlOjpSZXNvdXJjZVJlc3BvbnNlJikgb3ZlcnJpZGU7Ci0gICAgV2ViQ29yZTo6UmVzb3VyY2VF
cnJvciBmaWxlRG9lc05vdEV4aXN0RXJyb3IoY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25z
ZSYpIG92ZXJyaWRlOwotICAgIFdlYkNvcmU6OlJlc291cmNlRXJyb3IgcGx1Z2luV2lsbEhhbmRs
ZUxvYWRFcnJvcihjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlJikgb3ZlcnJpZGU7Ci0K
ICAgICBib29sIHNob3VsZEZhbGxCYWNrKGNvbnN0IFdlYkNvcmU6OlJlc291cmNlRXJyb3ImKSBv
dmVycmlkZTsKIAogICAgIFdURjo6U3RyaW5nIHVzZXJBZ2VudChjb25zdCBXZWJDb3JlOjpVUkwm
KSBvdmVycmlkZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0
L1dlYkZyYW1lTG9hZGVyQ2xpZW50Lm1tIGIvU291cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBv
cnQvV2ViRnJhbWVMb2FkZXJDbGllbnQubW0KaW5kZXggZWNmMmY1MDE1NmFkMmRmZTE1YjRmNGFk
MjFkZmM5N2YwM2FmMjZjZC4uNzE5ZWQwNmUyNzYyNWVlOTFkMWZlMzhiMDYyYzgwOWIxMzk0NmNl
ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVM
b2FkZXJDbGllbnQubW0KKysrIGIvU291cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2Vi
RnJhbWVMb2FkZXJDbGllbnQubW0KQEAgLTExMjMsNTggKzExMjMsNiBAQCB2b2lkIFdlYkZyYW1l
TG9hZGVyQ2xpZW50OjpkaWREZXRlY3RYU1MoY29uc3QgVVJMJiBpbnNlY3VyZVVSTCwgYm9vbCBk
aWRCbG9ja0VudAogICAgIH0KIH0KIAotUmVzb3VyY2VFcnJvciBXZWJGcmFtZUxvYWRlckNsaWVu
dDo6Y2FuY2VsbGVkRXJyb3IoY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0KQotewotICAg
IHJldHVybiBbTlNFcnJvciBfd2ViS2l0RXJyb3JXaXRoRG9tYWluOk5TVVJMRXJyb3JEb21haW4g
Y29kZTpOU1VSTEVycm9yQ2FuY2VsbGVkIFVSTDpyZXF1ZXN0LnVybCgpXTsKLX0KLSAgICAKLVJl
c291cmNlRXJyb3IgV2ViRnJhbWVMb2FkZXJDbGllbnQ6OmJsb2NrZWRFcnJvcihjb25zdCBSZXNv
dXJjZVJlcXVlc3QmIHJlcXVlc3QpCi17Ci0gICAgcmV0dXJuIFtOU0Vycm9yIF93ZWJLaXRFcnJv
cldpdGhEb21haW46V2ViS2l0RXJyb3JEb21haW4gY29kZTpXZWJLaXRFcnJvckNhbm5vdFVzZVJl
c3RyaWN0ZWRQb3J0IFVSTDpyZXF1ZXN0LnVybCgpXTsKLX0KLQotUmVzb3VyY2VFcnJvciBXZWJG
cmFtZUxvYWRlckNsaWVudDo6YmxvY2tlZEJ5Q29udGVudEJsb2NrZXJFcnJvcihjb25zdCBSZXNv
dXJjZVJlcXVlc3QmIHJlcXVlc3QpCi17Ci0gICAgUkVMRUFTRV9BU1NFUlRfTk9UX1JFQUNIRUQo
KTsgLy8gQ29udGVudCBibG9ja2VycyBhcmUgbm90IGVuYWJsZWQgaW4gV2ViS2l0MS4KLX0KLQot
UmVzb3VyY2VFcnJvciBXZWJGcmFtZUxvYWRlckNsaWVudDo6Y2Fubm90U2hvd1VSTEVycm9yKGNv
bnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCkKLXsKLSAgICByZXR1cm4gW05TRXJyb3IgX3dl
YktpdEVycm9yV2l0aERvbWFpbjpXZWJLaXRFcnJvckRvbWFpbiBjb2RlOldlYktpdEVycm9yQ2Fu
bm90U2hvd1VSTCBVUkw6cmVxdWVzdC51cmwoKV07Ci19Ci0KLVJlc291cmNlRXJyb3IgV2ViRnJh
bWVMb2FkZXJDbGllbnQ6OmludGVycnVwdGVkRm9yUG9saWN5Q2hhbmdlRXJyb3IoY29uc3QgUmVz
b3VyY2VSZXF1ZXN0JiByZXF1ZXN0KQotewotICAgIHJldHVybiBbTlNFcnJvciBfd2ViS2l0RXJy
b3JXaXRoRG9tYWluOldlYktpdEVycm9yRG9tYWluIGNvZGU6V2ViS2l0RXJyb3JGcmFtZUxvYWRJ
bnRlcnJ1cHRlZEJ5UG9saWN5Q2hhbmdlIFVSTDpyZXF1ZXN0LnVybCgpXTsKLX0KLQotI2lmIEVO
QUJMRShDT05URU5UX0ZJTFRFUklORykKLVJlc291cmNlRXJyb3IgV2ViRnJhbWVMb2FkZXJDbGll
bnQ6OmJsb2NrZWRCeUNvbnRlbnRGaWx0ZXJFcnJvcihjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJl
cXVlc3QpCi17Ci0gICAgcmV0dXJuIFtOU0Vycm9yIF93ZWJLaXRFcnJvcldpdGhEb21haW46V2Vi
S2l0RXJyb3JEb21haW4gY29kZTpXZWJLaXRFcnJvckZyYW1lTG9hZEJsb2NrZWRCeUNvbnRlbnRG
aWx0ZXIgVVJMOnJlcXVlc3QudXJsKCldOwotfQotI2VuZGlmCi0KLVJlc291cmNlRXJyb3IgV2Vi
RnJhbWVMb2FkZXJDbGllbnQ6OmNhbm5vdFNob3dNSU1FVHlwZUVycm9yKGNvbnN0IFJlc291cmNl
UmVzcG9uc2UmIHJlc3BvbnNlKQotewotICAgIHJldHVybiBbTlNFcnJvciBfd2ViS2l0RXJyb3JX
aXRoRG9tYWluOk5TVVJMRXJyb3JEb21haW4gY29kZTpXZWJLaXRFcnJvckNhbm5vdFNob3dNSU1F
VHlwZSBVUkw6cmVzcG9uc2UudXJsKCldOwotfQotCi1SZXNvdXJjZUVycm9yIFdlYkZyYW1lTG9h
ZGVyQ2xpZW50OjpmaWxlRG9lc05vdEV4aXN0RXJyb3IoY29uc3QgUmVzb3VyY2VSZXNwb25zZSYg
cmVzcG9uc2UpCi17Ci0gICAgcmV0dXJuIFtOU0Vycm9yIF93ZWJLaXRFcnJvcldpdGhEb21haW46
TlNVUkxFcnJvckRvbWFpbiBjb2RlOk5TVVJMRXJyb3JGaWxlRG9lc05vdEV4aXN0IFVSTDpyZXNw
b25zZS51cmwoKV07ICAgIAotfQotCi1SZXNvdXJjZUVycm9yIFdlYkZyYW1lTG9hZGVyQ2xpZW50
OjpwbHVnaW5XaWxsSGFuZGxlTG9hZEVycm9yKGNvbnN0IFJlc291cmNlUmVzcG9uc2UmIHJlc3Bv
bnNlKQotewotICAgIE5TRXJyb3IgKmVycm9yID0gW1tOU0Vycm9yIGFsbG9jXSBfaW5pdFdpdGhQ
bHVnaW5FcnJvckNvZGU6V2ViS2l0RXJyb3JQbHVnSW5XaWxsSGFuZGxlTG9hZAotICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRlbnRVUkw6cmVz
cG9uc2UudXJsKCkKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBwbHVnaW5QYWdlVVJMOm5pbAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHBsdWdpbk5hbWU6bmlsCi0gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBNSU1FVHlwZTpyZXNwb25zZS5taW1lVHlw
ZSgpXTsKLSAgICByZXR1cm4gW2Vycm9yIGF1dG9yZWxlYXNlXTsKLX0KLQogYm9vbCBXZWJGcmFt
ZUxvYWRlckNsaWVudDo6c2hvdWxkRmFsbEJhY2soY29uc3QgUmVzb3VyY2VFcnJvciYgZXJyb3Ip
CiB7CiAgICAgLy8gRklYTUU6IE5lZWRzIHRvIGNoZWNrIGRvbWFpbi4KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQu
bW0gYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZU5ldHdvcmtpbmdD
b250ZXh0Lm1tCmluZGV4IDkzZTc0YmJlNjI4NGI2M2MyMzIxMjlkMTc0OGUwZDkxNjJkMWExOWMu
LjE3OTM2MzdmOTJiZGQwZmU3YmQ5Mzk0ODc0OTA4ZGM3MjQwYzFmMjIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQu
bW0KKysrIGIvU291cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVOZXR3b3Jr
aW5nQ29udGV4dC5tbQpAQCAtMjgsNiArMjgsNyBAQAogI2ltcG9ydCAiV2ViRnJhbWVJbnRlcm5h
bC5oIgogI2ltcG9ydCAiV2ViVmlld1ByaXZhdGUuaCIKICNpbXBvcnQgPFdlYkNvcmUvQ0ZOZXR3
b3JrU1BJLmg+CisjaW1wb3J0IDxXZWJDb3JlL0Vycm9ycy5oPgogI2ltcG9ydCA8V2ViQ29yZS9G
cmFtZUxvYWRlci5oPgogI2ltcG9ydCA8V2ViQ29yZS9GcmFtZUxvYWRlckNsaWVudC5oPgogI2lt
cG9ydCA8V2ViQ29yZS9OZXR3b3JrU3RvcmFnZVNlc3Npb24uaD4KQEAgLTkxLDcgKzkyLDcgQEAg
U3RyaW5nIFdlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQ6OnNvdXJjZUFwcGxpY2F0aW9uSWRlbnRp
ZmllcigpIGNvbnN0CiAKIFJlc291cmNlRXJyb3IgV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dDo6
YmxvY2tlZEVycm9yKGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCkgY29uc3QKIHsKLSAg
ICByZXR1cm4gZnJhbWUoKS0+bG9hZGVyKCkuY2xpZW50KCkuYmxvY2tlZEVycm9yKHJlcXVlc3Qp
OworICAgIHJldHVybiBXZWJDb3JlOjpibG9ja2VkRXJyb3IocmVxdWVzdCk7CiB9CiAKIE5ldHdv
cmtTdG9yYWdlU2Vzc2lvbiYgV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dDo6c3RvcmFnZVNlc3Np
b24oKSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJIVE1M
UmVwcmVzZW50YXRpb24ubW0gYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYkhUTUxSZXBy
ZXNlbnRhdGlvbi5tbQppbmRleCAxOThlZDVmMjM4NGQ3OGYzOGEwMDYwNjgwODE2ZGRlNmZkY2Rh
ZjZlLi4zZmQ3YjU0Nzk4MjZmNDM5YWYxMTAwZTUzY2VlOTEzOWRjMDFlZTA0IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYkhUTUxSZXByZXNlbnRhdGlvbi5tbQorKysg
Yi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYkhUTUxSZXByZXNlbnRhdGlvbi5tbQpAQCAt
NDUsNiArNDUsNyBAQAogI2ltcG9ydCA8V2ViQ29yZS9Eb2N1bWVudC5oPgogI2ltcG9ydCA8V2Vi
Q29yZS9Eb2N1bWVudExvYWRlci5oPgogI2ltcG9ydCA8V2ViQ29yZS9FZGl0b3IuaD4KKyNpbXBv
cnQgPFdlYkNvcmUvRXJyb3JzLmg+CiAjaW1wb3J0IDxXZWJDb3JlL0ZyYW1lLmg+CiAjaW1wb3J0
IDxXZWJDb3JlL0ZyYW1lTG9hZGVyLmg+CiAjaW1wb3J0IDxXZWJDb3JlL0ZyYW1lTG9hZGVyQ2xp
ZW50Lmg+CkBAIC0xODAsNyArMTgxLDcgQEAgc3RhdGljIFJldGFpblB0cjxOU0FycmF5PiBuZXdB
cnJheVdpdGhTdHJpbmdzKGNvbnN0IEhhc2hTZXQ8U3RyaW5nLCBBU0NJSUNhc2VJbnMKICAgICAv
LyBJZiB0aGUgZG9jdW1lbnQgaXMgYSBzdGFuZC1hbG9uZSBtZWRpYSBkb2N1bWVudCwgbm93IGlz
IHRoZSByaWdodCB0aW1lIHRvIGNhbmNlbCB0aGUgV2ViS2l0IGxvYWQKICAgICBGcmFtZSogY29y
ZUZyYW1lID0gY29yZSh3ZWJGcmFtZSk7CiAgICAgaWYgKGNvcmVGcmFtZS0+ZG9jdW1lbnQoKS0+
aXNNZWRpYURvY3VtZW50KCkpCi0gICAgICAgIGNvcmVGcmFtZS0+bG9hZGVyKCkuZG9jdW1lbnRM
b2FkZXIoKS0+Y2FuY2VsTWFpblJlc291cmNlTG9hZChjb3JlRnJhbWUtPmxvYWRlcigpLmNsaWVu
dCgpLnBsdWdpbldpbGxIYW5kbGVMb2FkRXJyb3IoY29yZUZyYW1lLT5sb2FkZXIoKS5kb2N1bWVu
dExvYWRlcigpLT5yZXNwb25zZSgpKSk7CisgICAgICAgIGNvcmVGcmFtZS0+bG9hZGVyKCkuZG9j
dW1lbnRMb2FkZXIoKS0+Y2FuY2VsTWFpblJlc291cmNlTG9hZChXZWJDb3JlOjpwbHVnaW5XaWxs
SGFuZGxlTG9hZEVycm9yKGNvcmVGcmFtZS0+bG9hZGVyKCkuZG9jdW1lbnRMb2FkZXIoKS0+cmVz
cG9uc2UoKSkpOwogCiAgICAgaWYgKF9wcml2YXRlLT5wbHVnaW5WaWV3KSB7CiAgICAgICAgIGlm
ICghX3ByaXZhdGUtPmhhc1NlbnRSZXNwb25zZVRvUGx1Z2luKSB7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L3dpbi9QbHVnaW5zL1BsdWdpblN0cmVhbS5jcHAgYi9Tb3VyY2UvV2ViS2l0L3dp
bi9QbHVnaW5zL1BsdWdpblN0cmVhbS5jcHAKaW5kZXggMmVmMzk1NWJlNjFhOGQwNTQyNGFkMTM5
OTYyZGQwZDdmYTZhZTQ0NC4uYmU3ZGRjMDIyOWE5ZWUyMGViMzZjOTEwNmQyMjM0NDBiYWY1NjY4
NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC93aW4vUGx1Z2lucy9QbHVnaW5TdHJlYW0uY3Bw
CisrKyBiL1NvdXJjZS9XZWJLaXQvd2luL1BsdWdpbnMvUGx1Z2luU3RyZWFtLmNwcApAQCAtMzUs
NiArMzUsNyBAQAogI2luY2x1ZGUgIlNoYXJlZEJ1ZmZlci5oIgogI2luY2x1ZGUgIlN1YnJlc291
cmNlTG9hZGVyLmgiCiAjaW5jbHVkZSAiV2ViUmVzb3VyY2VMb2FkU2NoZWR1bGVyLmgiCisjaW5j
bHVkZSA8V2ViQ29yZS9FcnJvcnMuaD4KICNpbmNsdWRlIDx3dGYvU3RyaW5nRXh0cmFzLmg+CiAj
aW5jbHVkZSA8d3RmL3RleHQvQ1N0cmluZy5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1N0cmluZ0J1
aWxkZXIuaD4KQEAgLTExMSw3ICsxMTIsNyBAQCB2b2lkIFBsdWdpblN0cmVhbTo6c3RvcCgpCiAg
ICAgICAgIEFTU0VSVChkb2N1bWVudExvYWRlcik7CiAKICAgICAgICAgaWYgKGRvY3VtZW50TG9h
ZGVyLT5pc0xvYWRpbmdNYWluUmVzb3VyY2UoKSkKLSAgICAgICAgICAgIGRvY3VtZW50TG9hZGVy
LT5jYW5jZWxNYWluUmVzb3VyY2VMb2FkKG1fZnJhbWUtPmxvYWRlcigpLmNhbmNlbGxlZEVycm9y
KG1fcmVzb3VyY2VSZXF1ZXN0KSk7CisgICAgICAgICAgICBkb2N1bWVudExvYWRlci0+Y2FuY2Vs
TWFpblJlc291cmNlTG9hZChXZWJDb3JlOjpjYW5jZWxsZWRFcnJvcihtX3Jlc291cmNlUmVxdWVz
dCkpOwogCiAgICAgICAgIHJldHVybjsKICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5jcHAgYi9Tb3VyY2UvV2Vi
S2l0L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5jcHAKaW5kZXggYzZl
MzM0NDA0Y2ZlYWEwM2UyYmZhMTVmNmU0MTBiMjE5N2Q2MWU2Ni4uYmIyMjQyNzk0YmM1ZGM1MWE1
ZTI4Zjg2NjM5NDhhNmYxMGU5YjhjMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC93aW4vV2Vi
Q29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQv
d2luL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmNwcApAQCAtNjIsNiArNjIs
NyBAQAogI2luY2x1ZGUgPFdlYkNvcmUvQ2FjaGVkRnJhbWUuaD4KICNpbmNsdWRlIDxXZWJDb3Jl
L0ROUy5oPgogI2luY2x1ZGUgPFdlYkNvcmUvRG9jdW1lbnRMb2FkZXIuaD4KKyNpbmNsdWRlIDxX
ZWJDb3JlL0Vycm9ycy5oPgogI2luY2x1ZGUgPFdlYkNvcmUvRm9ybVN0YXRlLmg+CiAjaW5jbHVk
ZSA8V2ViQ29yZS9GcmFtZS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvRnJhbWVMb2FkZXIuaD4KQEAg
LTgxOSw0OCArODIwLDYgQEAgdm9pZCBXZWJGcmFtZUxvYWRlckNsaWVudDo6ZGlkRGV0ZWN0WFNT
KGNvbnN0IFVSTCYsIGJvb2wpCiAgICAgLy8gRklYTUU6IHByb3BvZ2F0ZSBjYWxsIGludG8gdGhl
IHByaXZhdGUgZGVsZWdhdGUuCiB9CiAKLVJlc291cmNlRXJyb3IgV2ViRnJhbWVMb2FkZXJDbGll
bnQ6OmNhbmNlbGxlZEVycm9yKGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCkKLXsKLSAg
ICAvLyBGSVhNRTogTmVlZCBDaGlja2VuQ2F0IHRvIGluY2x1ZGUgQ0ZOZXR3b3JrL0NGVVJMRXJy
b3IuaCB0byBnZXQgdGhlc2UgdmFsdWVzCi0gICAgLy8gQWx0ZXJuYXRpdmVseSwgd2UgY291bGQg
Y3JlYXRlIG91ciBvd24gZXJyb3IgZG9tYWluL2NvZGVzLgotICAgIHJldHVybiBSZXNvdXJjZUVy
cm9yKFN0cmluZyhXZWJVUkxFcnJvckRvbWFpbiksIC05OTksIHJlcXVlc3QudXJsKCksIFN0cmlu
ZygiQ2FuY2VsbGVkIikpOwotfQotCi1SZXNvdXJjZUVycm9yIFdlYkZyYW1lTG9hZGVyQ2xpZW50
OjpibG9ja2VkRXJyb3IoY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0KQotewotICAgIHJl
dHVybiBSZXNvdXJjZUVycm9yKFN0cmluZyhXZWJLaXRFcnJvckRvbWFpbiksIFdlYktpdEVycm9y
Q2Fubm90VXNlUmVzdHJpY3RlZFBvcnQsIHJlcXVlc3QudXJsKCksIFdFQl9VSV9TVFJJTkcoIk5v
dCBhbGxvd2VkIHRvIHVzZSByZXN0cmljdGVkIG5ldHdvcmsgcG9ydCIsICJXZWJLaXRFcnJvckNh
bm5vdFVzZVJlc3RyaWN0ZWRQb3J0IGRlc2NyaXB0aW9uIikpOwotfQotCi1SZXNvdXJjZUVycm9y
IFdlYkZyYW1lTG9hZGVyQ2xpZW50OjpibG9ja2VkQnlDb250ZW50QmxvY2tlckVycm9yKGNvbnN0
IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCkKLXsKLSAgICBSRUxFQVNFX0FTU0VSVF9OT1RfUkVB
Q0hFRCgpOyAvLyBDb250ZW50IEJsb2NrZXJzIGFyZSBub3QgZW5hYmxlZCBmb3IgV0sxLgotfQot
Ci1SZXNvdXJjZUVycm9yIFdlYkZyYW1lTG9hZGVyQ2xpZW50OjpjYW5ub3RTaG93VVJMRXJyb3Io
Y29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0KQotewotICAgIHJldHVybiBSZXNvdXJjZUVy
cm9yKFN0cmluZyhXZWJLaXRFcnJvckRvbWFpbiksIFdlYktpdEVycm9yQ2Fubm90U2hvd1VSTCwg
cmVxdWVzdC51cmwoKSwgV0VCX1VJX1NUUklORygiVGhlIFVSTCBjYW5ceEUyXHg4MFx4OTl0IGJl
IHNob3duIiwgIldlYktpdEVycm9yQ2Fubm90U2hvd1VSTCBkZXNjcmlwdGlvbiIpKTsKLX0KLQot
UmVzb3VyY2VFcnJvciBXZWJGcmFtZUxvYWRlckNsaWVudDo6aW50ZXJydXB0ZWRGb3JQb2xpY3lD
aGFuZ2VFcnJvcihjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QpCi17Ci0gICAgcmV0dXJu
IFJlc291cmNlRXJyb3IoU3RyaW5nKFdlYktpdEVycm9yRG9tYWluKSwgV2ViS2l0RXJyb3JGcmFt
ZUxvYWRJbnRlcnJ1cHRlZEJ5UG9saWN5Q2hhbmdlLCByZXF1ZXN0LnVybCgpLCBXRUJfVUlfU1RS
SU5HKCJGcmFtZSBsb2FkIGludGVycnVwdGVkIiwgIldlYktpdEVycm9yRnJhbWVMb2FkSW50ZXJy
dXB0ZWRCeVBvbGljeUNoYW5nZSBkZXNjcmlwdGlvbiIpKTsKLX0KLQotUmVzb3VyY2VFcnJvciBX
ZWJGcmFtZUxvYWRlckNsaWVudDo6Y2Fubm90U2hvd01JTUVUeXBlRXJyb3IoY29uc3QgUmVzb3Vy
Y2VSZXNwb25zZSYgcmVzcG9uc2UpCi17Ci0gICAgcmV0dXJuIFJlc291cmNlRXJyb3IoU3RyaW5n
KCksIFdlYktpdEVycm9yQ2Fubm90U2hvd01JTUVUeXBlLCByZXNwb25zZS51cmwoKSwgV0VCX1VJ
X1NUUklORygiQ29udGVudCB3aXRoIHNwZWNpZmllZCBNSU1FIHR5cGUgY2FuXHhFMlx4ODBceDk5
dCBiZSBzaG93biIsICJXZWJLaXRFcnJvckNhbm5vdFNob3dNSU1FVHlwZSBkZXNjcmlwdGlvbiIp
KTsKLX0KLQotUmVzb3VyY2VFcnJvciBXZWJGcmFtZUxvYWRlckNsaWVudDo6ZmlsZURvZXNOb3RF
eGlzdEVycm9yKGNvbnN0IFJlc291cmNlUmVzcG9uc2UmIHJlc3BvbnNlKQotewotICAgIHJldHVy
biBSZXNvdXJjZUVycm9yKFN0cmluZyhXZWJVUkxFcnJvckRvbWFpbiksIC0xMTAwLCByZXNwb25z
ZS51cmwoKSwgU3RyaW5nKCJGaWxlIGRvZXMgbm90IGV4aXN0LiIpKTsKLX0KLQotUmVzb3VyY2VF
cnJvciBXZWJGcmFtZUxvYWRlckNsaWVudDo6cGx1Z2luV2lsbEhhbmRsZUxvYWRFcnJvcihjb25z
dCBSZXNvdXJjZVJlc3BvbnNlJiByZXNwb25zZSkKLXsKLSAgICByZXR1cm4gUmVzb3VyY2VFcnJv
cihTdHJpbmcoV2ViS2l0RXJyb3JEb21haW4pLCBXZWJLaXRFcnJvclBsdWdJbldpbGxIYW5kbGVM
b2FkLCByZXNwb25zZS51cmwoKSwgV0VCX1VJX1NUUklORygiUGx1Zy1pbiBoYW5kbGVkIGxvYWQi
LCAiV2ViS2l0RXJyb3JQbHVnSW5XaWxsSGFuZGxlTG9hZCBkZXNjcmlwdGlvbiIpKTsKLX0KLQog
Ym9vbCBXZWJGcmFtZUxvYWRlckNsaWVudDo6c2hvdWxkRmFsbEJhY2soY29uc3QgUmVzb3VyY2VF
cnJvciYgZXJyb3IpCiB7CiAgICAgaWYgKGVycm9yLmVycm9yQ29kZSgpID09IFdlYlVSTEVycm9y
Q2FuY2VsbGVkICYmIGVycm9yLmRvbWFpbigpID09IFN0cmluZyhXZWJVUkxFcnJvckRvbWFpbikp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxv
YWRlckNsaWVudC5oIGIvU291cmNlL1dlYktpdC93aW4vV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVM
b2FkZXJDbGllbnQuaAppbmRleCAwZWFhZTVjNWUxYjgxYTU1NTM1OGFiNmIzMDY5MGEyYmVkMGI5
NzUxLi5hZDUxNmEwNDM3ZDNhNzI0NjRhMmI2MWUyNjhlNWEwNjJiZjNmM2NjIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5o
CisrKyBiL1NvdXJjZS9XZWJLaXQvd2luL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xp
ZW50LmgKQEAgLTEzNiwxNSArMTM2LDYgQEAgcHVibGljOgogICAgIHZvaWQgZGlkUnVuSW5zZWN1
cmVDb250ZW50KFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luKiwgY29uc3QgV2ViQ29yZTo6VVJMJikg
b3ZlcnJpZGU7CiAgICAgdm9pZCBkaWREZXRlY3RYU1MoY29uc3QgV2ViQ29yZTo6VVJMJiwgYm9v
bCBkaWRCbG9ja0VudGlyZVBhZ2UpIG92ZXJyaWRlOwogCi0gICAgV2ViQ29yZTo6UmVzb3VyY2VF
cnJvciBjYW5jZWxsZWRFcnJvcihjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmKSBvdmVy
cmlkZTsKLSAgICBXZWJDb3JlOjpSZXNvdXJjZUVycm9yIGJsb2NrZWRFcnJvcihjb25zdCBXZWJD
b3JlOjpSZXNvdXJjZVJlcXVlc3QmKSBvdmVycmlkZTsKLSAgICBXZWJDb3JlOjpSZXNvdXJjZUVy
cm9yIGJsb2NrZWRCeUNvbnRlbnRCbG9ja2VyRXJyb3IoY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VS
ZXF1ZXN0Jikgb3ZlcnJpZGU7Ci0gICAgV2ViQ29yZTo6UmVzb3VyY2VFcnJvciBjYW5ub3RTaG93
VVJMRXJyb3IoY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0Jikgb3ZlcnJpZGU7Ci0gICAg
V2ViQ29yZTo6UmVzb3VyY2VFcnJvciBpbnRlcnJ1cHRlZEZvclBvbGljeUNoYW5nZUVycm9yKGNv
bnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYpIG92ZXJyaWRlOwotICAgIFdlYkNvcmU6OlJl
c291cmNlRXJyb3IgY2Fubm90U2hvd01JTUVUeXBlRXJyb3IoY29uc3QgV2ViQ29yZTo6UmVzb3Vy
Y2VSZXNwb25zZSYpIG92ZXJyaWRlOwotICAgIFdlYkNvcmU6OlJlc291cmNlRXJyb3IgZmlsZURv
ZXNOb3RFeGlzdEVycm9yKGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UmKSBvdmVycmlk
ZTsKLSAgICBXZWJDb3JlOjpSZXNvdXJjZUVycm9yIHBsdWdpbldpbGxIYW5kbGVMb2FkRXJyb3Io
Y29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSYpIG92ZXJyaWRlOwotCiAgICAgYm9vbCBz
aG91bGRGYWxsQmFjayhjb25zdCBXZWJDb3JlOjpSZXNvdXJjZUVycm9yJikgb3ZlcnJpZGU7CiAK
ICAgICBXVEY6OlN0cmluZyB1c2VyQWdlbnQoY29uc3QgV2ViQ29yZTo6VVJMJikgb3ZlcnJpZGU7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZU5l
dHdvcmtpbmdDb250ZXh0LmNwcCBiL1NvdXJjZS9XZWJLaXQvd2luL1dlYkNvcmVTdXBwb3J0L1dl
YkZyYW1lTmV0d29ya2luZ0NvbnRleHQuY3BwCmluZGV4IDk4ZmFmZDk4NjEzOWMyNDM0Yjc4ZDZl
NjVmMzg0NWFiMmY5MGY2MzMuLjJkNGIwZGMxMGQ0MWQ5OTJiZGI5Zjk4MGM1ZTY2ZTY1MDJkODJi
NTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvd2luL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1l
TmV0d29ya2luZ0NvbnRleHQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvd2luL1dlYkNvcmVTdXBw
b3J0L1dlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQuY3BwCkBAIC0yNiw2ICsyNiw3IEBACiAjaW5j
bHVkZSAiV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dC5oIgogCiAjaW5jbHVkZSAiV2ViVmlldy5o
IgorI2luY2x1ZGUgPFdlYkNvcmUvRXJyb3JzLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9GcmFtZUxv
YWRlci5oPgogI2luY2x1ZGUgPFdlYkNvcmUvRnJhbWVMb2FkZXJDbGllbnQuaD4KICNpbmNsdWRl
IDxXZWJDb3JlL05ldHdvcmtTdG9yYWdlU2Vzc2lvbi5oPgpAQCAtOTYsNyArOTcsNyBAQCB2b2lk
IFdlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQ6OmRlc3Ryb3lQcml2YXRlQnJvd3NpbmdTZXNzaW9u
KCkKIAogUmVzb3VyY2VFcnJvciBXZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0OjpibG9ja2VkRXJy
b3IoY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0KSBjb25zdAogewotICAgIHJldHVybiBm
cmFtZSgpLT5sb2FkZXIoKS5jbGllbnQoKS5ibG9ja2VkRXJyb3IocmVxdWVzdCk7CisgICAgcmV0
dXJuIFdlYkNvcmU6OmJsb2NrZWRFcnJvcihyZXF1ZXN0KTsKIH0KIAogTmV0d29ya1N0b3JhZ2VT
ZXNzaW9uJiBXZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0OjpzdG9yYWdlU2Vzc2lvbigpIGNvbnN0
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9Eb3dubG9hZHMvZWZs
L0Rvd25sb2FkU291cEVycm9yc0VmbC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vz
cy9Eb3dubG9hZHMvZWZsL0Rvd25sb2FkU291cEVycm9yc0VmbC5jcHAKZGVsZXRlZCBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IGFjMDBkNTFiMzcxMzg5MjFlNzc2YjFhYzU4YTBkNDU1NTE2YjA4NmEu
LjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dl
YktpdDIvTmV0d29ya1Byb2Nlc3MvRG93bmxvYWRzL2VmbC9Eb3dubG9hZFNvdXBFcnJvcnNFZmwu
Y3BwCisrKyAvZGV2L251bGwKQEAgLTEsNDYgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykg
MjAxMiBJbnRlbCBDb3Jwb3JhdGlvbi4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
Ci0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAq
Ci0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05U
UklCVVRPUlMgYGBBUyBJUycnCi0gKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5U
SUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFRIRSBJTVBMSUVEIFdBUlJB
TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAq
IFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1Ig
SVRTIENPTlRSSUJVVE9SUwotICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgotICogQ09OU0VRVUVOVElBTCBEQU1B
R0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKLSAqIFNV
QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRT
OyBPUiBCVVNJTkVTUwotICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5Z
IFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KLSAqIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCi0gKiBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GCi0gKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQot
I2luY2x1ZGUgImNvbmZpZy5oIgotI2luY2x1ZGUgIkRvd25sb2FkU291cEVycm9ycy5oIgotCi0j
aW5jbHVkZSA8V2ViQ29yZS9FcnJvcnNFZmwuaD4KLSNpbmNsdWRlIDxXZWJDb3JlL1Jlc291cmNl
RXJyb3IuaD4KLQotdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7Ci0KLW5hbWVzcGFjZSBXZWJLaXQg
ewotCi1SZXNvdXJjZUVycm9yIHBsYXRmb3JtRG93bmxvYWROZXR3b3JrRXJyb3IoaW50IGVycm9y
Q29kZSwgY29uc3QgVVJMJiBmYWlsaW5nVVJMLCBjb25zdCBTdHJpbmcmIGxvY2FsaXplZERlc2Ny
aXB0aW9uKQotewotICAgIHJldHVybiBkb3dubG9hZE5ldHdvcmtFcnJvcihSZXNvdXJjZUVycm9y
KGVycm9yRG9tYWluRG93bmxvYWQsIGVycm9yQ29kZSwgZmFpbGluZ1VSTCwgbG9jYWxpemVkRGVz
Y3JpcHRpb24pKTsKLX0KLQotUmVzb3VyY2VFcnJvciBwbGF0Zm9ybURvd25sb2FkRGVzdGluYXRp
b25FcnJvcihjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiByZXNwb25zZSwgY29uc3QgU3RyaW5nJiBt
ZXNzYWdlKQotewotICAgIHJldHVybiBkb3dubG9hZERlc3RpbmF0aW9uRXJyb3IocmVzcG9uc2Us
IG1lc3NhZ2UpOwotfQotCi19IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL0Rvd25sb2Fkcy9ndGsvRG93bmxvYWRTb3VwRXJyb3Jz
R3RrLmNwcCBiL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL0Rvd25sb2Fkcy9ndGsvRG93
bmxvYWRTb3VwRXJyb3JzR3RrLmNwcApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYmEy
ZTdiNDU2YTQxNWYxN2Q1OTY1MzAwMWJiZGZhYzBiZTI4MDM0Mi4uMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vz
cy9Eb3dubG9hZHMvZ3RrL0Rvd25sb2FkU291cEVycm9yc0d0ay5jcHAKKysrIC9kZXYvbnVsbApA
QCAtMSw0NiArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDEyIEludGVsIENvcnBvcmF0
aW9uLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
Ci0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0g
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycK
LSAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLAotICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC
SUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xB
SU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCi0g
KiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFM
LCBFWEVNUExBUlksIE9SCi0gKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgotICogU1VCU1RJVFVURSBHT09EUyBPUiBT
RVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCi0gKiBJ
TlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTgotICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKLSAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKLSAqIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaW5jbHVkZSAiY29uZmlnLmgi
Ci0jaW5jbHVkZSAiRG93bmxvYWRTb3VwRXJyb3JzLmgiCi0KLSNpbmNsdWRlIDxXZWJDb3JlL0Vy
cm9yc0d0ay5oPgotI2luY2x1ZGUgPFdlYkNvcmUvUmVzb3VyY2VFcnJvci5oPgotCi11c2luZyBu
YW1lc3BhY2UgV2ViQ29yZTsKLQotbmFtZXNwYWNlIFdlYktpdCB7Ci0KLVJlc291cmNlRXJyb3Ig
cGxhdGZvcm1Eb3dubG9hZE5ldHdvcmtFcnJvcihpbnQgZXJyb3JDb2RlLCBjb25zdCBVUkwmIGZh
aWxpbmdVUkwsIGNvbnN0IFN0cmluZyYgbG9jYWxpemVkRGVzY3JpcHRpb24pCi17Ci0gICAgcmV0
dXJuIGRvd25sb2FkTmV0d29ya0Vycm9yKFJlc291cmNlRXJyb3IoZXJyb3JEb21haW5Eb3dubG9h
ZCwgZXJyb3JDb2RlLCBmYWlsaW5nVVJMLCBsb2NhbGl6ZWREZXNjcmlwdGlvbikpOwotfQotCi1S
ZXNvdXJjZUVycm9yIHBsYXRmb3JtRG93bmxvYWREZXN0aW5hdGlvbkVycm9yKGNvbnN0IFJlc291
cmNlUmVzcG9uc2UmIHJlc3BvbnNlLCBjb25zdCBTdHJpbmcmIG1lc3NhZ2UpCi17Ci0gICAgcmV0
dXJuIGRvd25sb2FkRGVzdGluYXRpb25FcnJvcihyZXNwb25zZSwgbWVzc2FnZSk7Ci19Ci0KLX0g
Ly8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvTmV0d29ya1By
b2Nlc3MvRG93bmxvYWRzL3NvdXAvRG93bmxvYWRTb3VwRXJyb3JzLmNwcCBiL1NvdXJjZS9XZWJL
aXQyL05ldHdvcmtQcm9jZXNzL0Rvd25sb2Fkcy9zb3VwL0Rvd25sb2FkU291cEVycm9ycy5jcHAK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uYWU1YWY5MmQzMzEyMmUxNGE5MWI3OTM4MzdkMzhjMTZhMTNmMWMyMwotLS0g
L2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL0Rvd25sb2Fkcy9z
b3VwL0Rvd25sb2FkU291cEVycm9ycy5jcHAKQEAgLTAsMCArMSw0NyBAQAorLyoKKyAqIENvcHly
aWdodCAoQykgMjAxMiBJbnRlbCBDb3Jwb3JhdGlvbi4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAq
CisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXBy
b2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1
dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5E
IElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBM
SUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExF
IElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVO
VElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQg
T0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBP
UiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
CisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIkRvd25sb2FkU291cEVycm9y
cy5oIgorCisjaW5jbHVkZSA8V2ViQ29yZS9FcnJvcnMuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL0Vy
cm9yc1VuaXguaD4KKyNpbmNsdWRlIDxXZWJDb3JlL1Jlc291cmNlRXJyb3IuaD4KKwordXNpbmcg
bmFtZXNwYWNlIFdlYkNvcmU7CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitSZXNvdXJjZUVycm9y
IHBsYXRmb3JtRG93bmxvYWROZXR3b3JrRXJyb3IoaW50IGVycm9yQ29kZSwgY29uc3QgVVJMJiBm
YWlsaW5nVVJMLCBjb25zdCBTdHJpbmcmIGxvY2FsaXplZERlc2NyaXB0aW9uKQoreworICAgIHJl
dHVybiBkb3dubG9hZE5ldHdvcmtFcnJvcihSZXNvdXJjZUVycm9yKGVycm9yRG9tYWluRG93bmxv
YWQsIGVycm9yQ29kZSwgZmFpbGluZ1VSTCwgbG9jYWxpemVkRGVzY3JpcHRpb24pKTsKK30KKwor
UmVzb3VyY2VFcnJvciBwbGF0Zm9ybURvd25sb2FkRGVzdGluYXRpb25FcnJvcihjb25zdCBSZXNv
dXJjZVJlc3BvbnNlJiByZXNwb25zZSwgY29uc3QgU3RyaW5nJiBtZXNzYWdlKQoreworICAgIHJl
dHVybiBkb3dubG9hZERlc3RpbmF0aW9uRXJyb3IocmVzcG9uc2UsIG1lc3NhZ2UpOworfQorCit9
IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQ
cm9jZXNzL05ldHdvcmtMb2FkLmNwcCBiL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL05l
dHdvcmtMb2FkLmNwcAppbmRleCAyODcyM2U2OWI5Y2FiNTk4YjM2ZDk1Y2E4NTg5NzQzOTRiODQ4
NTJkLi45M2JlZWIwMDVjZTljYmQ0MmNiYjZhOTQ4OTBlNjY0ZjI3NGMwYjU0IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrTG9hZC5jcHAKKysrIGIvU291
cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0xvYWQuY3BwCkBAIC0zMCw3ICszMCw3
IEBACiAjaW5jbHVkZSAiQXV0aGVudGljYXRpb25NYW5hZ2VyLmgiCiAjaW5jbHVkZSAiTmV0d29y
a1Byb2Nlc3MuaCIKICNpbmNsdWRlICJTZXNzaW9uVHJhY2tlci5oIgotI2luY2x1ZGUgIldlYkVy
cm9ycy5oIgorI2luY2x1ZGUgPFdlYkNvcmUvRXJyb3JzLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9O
b3RJbXBsZW1lbnRlZC5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUmVzb3VyY2VIYW5kbGUuaD4KICNp
bmNsdWRlIDxXZWJDb3JlL1Nlc3Npb25JRC5oPgpAQCAtNDAxLDE0ICs0MDEsMTQgQEAgdm9pZCBO
ZXR3b3JrTG9hZDo6d2FzQmxvY2tlZChSZXNvdXJjZUhhbmRsZSogaGFuZGxlKQogewogICAgIEFT
U0VSVF9VTlVTRUQoaGFuZGxlLCBoYW5kbGUgPT0gbV9oYW5kbGUpOwogCi0gICAgZGlkRmFpbCho
YW5kbGUsIFdlYktpdDo6YmxvY2tlZEVycm9yKG1fY3VycmVudFJlcXVlc3QpKTsKKyAgICBkaWRG
YWlsKGhhbmRsZSwgYmxvY2tlZEVycm9yKG1fY3VycmVudFJlcXVlc3QpKTsKIH0KIAogdm9pZCBO
ZXR3b3JrTG9hZDo6Y2Fubm90U2hvd1VSTChSZXNvdXJjZUhhbmRsZSogaGFuZGxlKQogewogICAg
IEFTU0VSVF9VTlVTRUQoaGFuZGxlLCBoYW5kbGUgPT0gbV9oYW5kbGUpOwogCi0gICAgZGlkRmFp
bChoYW5kbGUsIFdlYktpdDo6Y2Fubm90U2hvd1VSTEVycm9yKG1fY3VycmVudFJlcXVlc3QpKTsK
KyAgICBkaWRGYWlsKGhhbmRsZSwgY2Fubm90U2hvd1VSTEVycm9yKG1fY3VycmVudFJlcXVlc3Qp
KTsKIH0KIAogYm9vbCBOZXR3b3JrTG9hZDo6c2hvdWxkVXNlQ3JlZGVudGlhbFN0b3JhZ2UoUmVz
b3VyY2VIYW5kbGUqIGhhbmRsZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQ
cm9jZXNzL21hYy9SZW1vdGVOZXR3b3JraW5nQ29udGV4dC5tbSBiL1NvdXJjZS9XZWJLaXQyL05l
dHdvcmtQcm9jZXNzL21hYy9SZW1vdGVOZXR3b3JraW5nQ29udGV4dC5tbQppbmRleCA5NjNkYzY4
ZTZhOTM3YTc5YWQ3YmVkNTdjOWY0NDZiOGYzN2MzMmE1Li43NmI4MjY0NzA0OTZjNGRjYmNkNGY5
NmU2NmQyMDhjZjczNTczMmYzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJv
Y2Vzcy9tYWMvUmVtb3RlTmV0d29ya2luZ0NvbnRleHQubW0KKysrIGIvU291cmNlL1dlYktpdDIv
TmV0d29ya1Byb2Nlc3MvbWFjL1JlbW90ZU5ldHdvcmtpbmdDb250ZXh0Lm1tCkBAIC03Nyw3ICs3
Nyw3IEBAIFN0cmluZyBSZW1vdGVOZXR3b3JraW5nQ29udGV4dDo6c291cmNlQXBwbGljYXRpb25J
ZGVudGlmaWVyKCkgY29uc3QKIAogUmVzb3VyY2VFcnJvciBSZW1vdGVOZXR3b3JraW5nQ29udGV4
dDo6YmxvY2tlZEVycm9yKGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCkgY29uc3QKIHsK
LSAgICByZXR1cm4gV2ViS2l0OjpibG9ja2VkRXJyb3IocmVxdWVzdCk7CisgICAgcmV0dXJuIFdl
YkNvcmU6OmJsb2NrZWRFcnJvcihyZXF1ZXN0KTsKIH0KIAogdm9pZCBSZW1vdGVOZXR3b3JraW5n
Q29udGV4dDo6ZW5zdXJlUHJpdmF0ZUJyb3dzaW5nU2Vzc2lvbihTZXNzaW9uSUQgc2Vzc2lvbklE
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvUGxhdGZvcm1FZmwuY21ha2UgYi9Tb3VyY2Uv
V2ViS2l0Mi9QbGF0Zm9ybUVmbC5jbWFrZQppbmRleCBmYWE3YmIzNDM2NzFlMjYzMTNmZDdhODZm
ZWFiMDhjODc1NDJkN2RiLi4xZDFiMzY4ZmM2ZTRhYzdjNTA2YzI1NzIyYjY4MzhlZWE3YzQ3YWM0
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybUVmbC5jbWFrZQorKysgYi9Tb3Vy
Y2UvV2ViS2l0Mi9QbGF0Zm9ybUVmbC5jbWFrZQpAQCAtNCw4ICs0LDcgQEAgbGlzdChBUFBFTkQg
V2ViS2l0Ml9TT1VSQ0VTCiAgICAgTmV0d29ya1Byb2Nlc3MvQ3VzdG9tUHJvdG9jb2xzL3NvdXAv
Q3VzdG9tUHJvdG9jb2xNYW5hZ2VySW1wbC5jcHAKICAgICBOZXR3b3JrUHJvY2Vzcy9DdXN0b21Q
cm90b2NvbHMvc291cC9DdXN0b21Qcm90b2NvbE1hbmFnZXJTb3VwLmNwcAogCi0gICAgTmV0d29y
a1Byb2Nlc3MvRG93bmxvYWRzL2VmbC9Eb3dubG9hZFNvdXBFcnJvcnNFZmwuY3BwCi0KKyAgICBO
ZXR3b3JrUHJvY2Vzcy9Eb3dubG9hZHMvc291cC9Eb3dubG9hZFNvdXBFcnJvcnMuY3BwCiAgICAg
TmV0d29ya1Byb2Nlc3MvRG93bmxvYWRzL3NvdXAvRG93bmxvYWRTb3VwLmNwcAogCiAgICAgTmV0
d29ya1Byb2Nlc3MvZWZsL05ldHdvcmtQcm9jZXNzTWFpbkVmbC5jcHAKQEAgLTE5Myw3ICsxOTIs
NiBAQCBsaXN0KEFQUEVORCBXZWJLaXQyX1NPVVJDRVMKIAogICAgIFdlYlByb2Nlc3MvV2ViQ29y
ZVN1cHBvcnQvZWZsL1dlYkNvbnRleHRNZW51Q2xpZW50RWZsLmNwcAogICAgIFdlYlByb2Nlc3Mv
V2ViQ29yZVN1cHBvcnQvZWZsL1dlYkVkaXRvckNsaWVudEVmbC5jcHAKLSAgICBXZWJQcm9jZXNz
L1dlYkNvcmVTdXBwb3J0L2VmbC9XZWJFcnJvcnNFZmwuY3BwCiAgICAgV2ViUHJvY2Vzcy9XZWJD
b3JlU3VwcG9ydC9lZmwvV2ViUG9wdXBNZW51RWZsLmNwcAogCiAgICAgV2ViUHJvY2Vzcy9XZWJD
b3JlU3VwcG9ydC9zb3VwL1dlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQuY3BwCkBAIC0yMzYsNiAr
MjM0LDcgQEAgbGlzdChBUFBFTkQgV2ViS2l0Ml9JTkNMVURFX0RJUkVDVE9SSUVTCiAgICAgIiR7
V0VCQ09SRV9ESVJ9L3BsYXRmb3JtL2dyYXBoaWNzL3gxMSIKICAgICAiJHtXRUJDT1JFX0RJUn0v
cGxhdGZvcm0vbmV0d29yay9zb3VwIgogICAgICIke1dFQkNPUkVfRElSfS9wbGF0Zm9ybS90ZXh0
L2VuY2hhbnQiCisgICAgIiR7V0VCQ09SRV9ESVJ9L3BsYXRmb3JtL3VuaXgiCiAgICAgIiR7V0VC
S0lUMl9ESVJ9L0RhdGFiYXNlUHJvY2Vzcy91bml4IgogICAgICIke1dFQktJVDJfRElSfS9OZXR3
b3JrUHJvY2Vzcy9DdXN0b21Qcm90b2NvbHMvc291cCIKICAgICAiJHtXRUJLSVQyX0RJUn0vTmV0
d29ya1Byb2Nlc3MvRG93bmxvYWRzL3NvdXAiCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9Q
bGF0Zm9ybUdUSy5jbWFrZSBiL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtR1RLLmNtYWtlCmluZGV4
IDc4ODk2NjQ4Y2M0M2VhNzRiZGE5Mjg2ZThmOGEyNTljZDRhYWNjYjIuLjBmOGQ1MWRmZTdkODEw
OTJkNGUzOWVmMTAxMWNiMDk5YzU3OTgwOWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1Bs
YXRmb3JtR1RLLmNtYWtlCisrKyBiL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtR1RLLmNtYWtlCkBA
IC0zMCw5ICszMCw4IEBAIGxpc3QoQVBQRU5EIFdlYktpdDJfU09VUkNFUwogICAgIE5ldHdvcmtQ
cm9jZXNzL0N1c3RvbVByb3RvY29scy9zb3VwL0N1c3RvbVByb3RvY29sTWFuYWdlckltcGwuY3Bw
CiAgICAgTmV0d29ya1Byb2Nlc3MvQ3VzdG9tUHJvdG9jb2xzL3NvdXAvQ3VzdG9tUHJvdG9jb2xN
YW5hZ2VyU291cC5jcHAKIAotICAgIE5ldHdvcmtQcm9jZXNzL0Rvd25sb2Fkcy9ndGsvRG93bmxv
YWRTb3VwRXJyb3JzR3RrLmNwcAotCiAgICAgTmV0d29ya1Byb2Nlc3MvRG93bmxvYWRzL3NvdXAv
RG93bmxvYWRTb3VwLmNwcAorICAgIE5ldHdvcmtQcm9jZXNzL0Rvd25sb2Fkcy9zb3VwL0Rvd25s
b2FkU291cEVycm9ycy5jcHAKIAogICAgIE5ldHdvcmtQcm9jZXNzL2NhY2hlL05ldHdvcmtDYWNo
ZUNvZGVyc1NvdXAuY3BwCiAgICAgTmV0d29ya1Byb2Nlc3MvY2FjaGUvTmV0d29ya0NhY2hlRGF0
YVNvdXAuY3BwCkBAIC0zMzgsNyArMzM3LDYgQEAgbGlzdChBUFBFTkQgV2ViS2l0Ml9TT1VSQ0VT
CiAgICAgV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9ndGsvV2ViQ29udGV4dE1lbnVDbGllbnRH
dGsuY3BwCiAgICAgV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9ndGsvV2ViRHJhZ0NsaWVudEd0
ay5jcHAKICAgICBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L2d0ay9XZWJFZGl0b3JDbGllbnRH
dGsuY3BwCi0gICAgV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9ndGsvV2ViRXJyb3JzR3RrLmNw
cAogICAgIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvZ3RrL1dlYlBvcHVwTWVudUd0ay5jcHAK
IAogICAgIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvc291cC9XZWJGcmFtZU5ldHdvcmtpbmdD
b250ZXh0LmNwcApAQCAtNDk2LDYgKzQ5NCw3IEBAIGxpc3QoQVBQRU5EIFdlYktpdDJfSU5DTFVE
RV9ESVJFQ1RPUklFUwogICAgICIke1dFQkNPUkVfRElSfS9wbGF0Zm9ybS9ncmFwaGljcy94MTEi
CiAgICAgIiR7V0VCQ09SRV9ESVJ9L3BsYXRmb3JtL25ldHdvcmsvc291cCIKICAgICAiJHtXRUJD
T1JFX0RJUn0vcGxhdGZvcm0vdGV4dC9lbmNoYW50IgorICAgICIke1dFQkNPUkVfRElSfS9wbGF0
Zm9ybS91bml4IgogICAgICIke1dFQktJVDJfRElSfS9EYXRhYmFzZVByb2Nlc3MvdW5peCIKICAg
ICAiJHtXRUJLSVQyX0RJUn0vTmV0d29ya1Byb2Nlc3MvQ3VzdG9tUHJvdG9jb2xzL3NvdXAiCiAg
ICAgIiR7V0VCS0lUMl9ESVJ9L05ldHdvcmtQcm9jZXNzL0Rvd25sb2Fkcy9zb3VwIgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdDIvUGxhdGZvcm1NYWMuY21ha2UgYi9Tb3VyY2UvV2ViS2l0Mi9Q
bGF0Zm9ybU1hYy5jbWFrZQppbmRleCAyYTEzZTE0OThkZWFhZDE4N2Q3YWJiNjdkNDM2ZDRjNDlj
YzgxMjJjLi4xYTJjMmM0NjdkNWZiMDliMjUwZjVjZmY0MDAxYWY1OTcyMDdiZTY0IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybU1hYy5jbWFrZQorKysgYi9Tb3VyY2UvV2ViS2l0
Mi9QbGF0Zm9ybU1hYy5jbWFrZQpAQCAtMzI4LDcgKzMyOCw2IEBAIGxpc3QoQVBQRU5EIFdlYktp
dDJfU09VUkNFUwogICAgIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvbWFjL1dlYkNvbnRleHRN
ZW51Q2xpZW50TWFjLm1tCiAgICAgV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9tYWMvV2ViRHJh
Z0NsaWVudE1hYy5tbQogICAgIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvbWFjL1dlYkVkaXRv
ckNsaWVudE1hYy5tbQotICAgIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvbWFjL1dlYkVycm9y
c01hYy5tbQogICAgIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvbWFjL1dlYkZyYW1lTmV0d29y
a2luZ0NvbnRleHQubW0KICAgICBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L21hYy9XZWJQb3B1
cE1lbnVNYWMubW0KICAgICBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L21hYy9XZWJTeXN0ZW1J
bnRlcmZhY2UubW0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9BUEkvQVBJRXJy
b3IuY3BwIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL0FQSS9BUElFcnJvci5jcHAKaW5kZXggODZh
MWRiMGIwMzc0ZDM2ZjRhM2U5MTMxNGQ1OTA4ODM2ZTViZGEyYS4uOWI5YjY3NWZiNzI0OTY5Yzk1
MWUwZjUyZmE2OWZhODM1ZjRmY2Y5YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVk
L0FQSS9BUElFcnJvci5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL0FQSS9BUElFcnJv
ci5jcHAKQEAgLTI3LDYgKzI3LDcgQEAKICNpbmNsdWRlICJBUElFcnJvci5oIgogCiAjaW5jbHVk
ZSAiV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmgiCisjaW5jbHVkZSA8V2ViQ29yZS9FcnJvcnMuaD4K
ICNpbmNsdWRlIDx3dGYvTmV2ZXJEZXN0cm95ZWQuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9XVEZT
dHJpbmcuaD4KIApAQCAtMzQsOCArMzUsNyBAQCBuYW1lc3BhY2UgQVBJIHsKIAogY29uc3QgV1RG
OjpTdHJpbmcmIEVycm9yOjp3ZWJLaXRFcnJvckRvbWFpbigpCiB7Ci0gICAgc3RhdGljIE5ldmVy
RGVzdHJveWVkPFdURjo6U3RyaW5nPiB3ZWJLaXRFcnJvckRvbWFpblN0cmluZyhBU0NJSUxpdGVy
YWwoIldlYktpdEVycm9yRG9tYWluIikpOwotICAgIHJldHVybiB3ZWJLaXRFcnJvckRvbWFpblN0
cmluZzsKKyAgICByZXR1cm4gV2ViQ29yZTo6d2ViS2l0RXJyb3JEb21haW4oKTsKIH0KIAogdm9p
ZCBFcnJvcjo6ZW5jb2RlKElQQzo6QXJndW1lbnRFbmNvZGVyJiBlbmNvZGVyKSBjb25zdApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX2Vycm9yLmNwcCBi
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a19lcnJvci5jcHAKaW5kZXggZDAw
MWM1NTc5OTI3YWMwOTg4MTA5N2UxYzk2MDU5ZTdiNDJiMTlmOC4uMDQxZjNmMjBmOWZlYzU3NzY2
NTIwN2JhNTk2MTc5MmFjN2JkMjk1MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL0FQSS9lZmwvZXdrX2Vycm9yLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
QVBJL2VmbC9ld2tfZXJyb3IuY3BwCkBAIC0yNiw3ICsyNiw3IEBACiAjaW5jbHVkZSAiY29uZmln
LmgiCiAjaW5jbHVkZSAiZXdrX2Vycm9yLmgiCiAKLSNpbmNsdWRlICJFcnJvcnNFZmwuaCIKKyNp
bmNsdWRlICJFcnJvcnNVbml4LmgiCiAjaW5jbHVkZSAiV0tFcnJvclJlZi5oIgogI2luY2x1ZGUg
IldLU3RyaW5nLmgiCiAjaW5jbHVkZSAiV0tVUkwuaCIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdERvd25sb2FkLmNwcCBiL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdERvd25sb2FkLmNwcAppbmRleCA4NmMwNWIyZjI5N2Ew
NWI5MWJlZjY4MWI0MWFlZGUwMTVlMzM1ODM1Li5hOWUzNTZiZTdkNGQ2NTQ5OWY3NDljODYyYjE1
ZDdkZWZhZTEzMzY2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0
ay9XZWJLaXREb3dubG9hZC5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9n
dGsvV2ViS2l0RG93bmxvYWQuY3BwCkBAIC0yNiw3ICsyNiw4IEBACiAjaW5jbHVkZSAiV2ViS2l0
UHJpdmF0ZS5oIgogI2luY2x1ZGUgIldlYktpdFVSSVJlcXVlc3RQcml2YXRlLmgiCiAjaW5jbHVk
ZSAiV2ViS2l0VVJJUmVzcG9uc2VQcml2YXRlLmgiCi0jaW5jbHVkZSA8V2ViQ29yZS9FcnJvcnNH
dGsuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL0Vycm9ycy5oPgorI2luY2x1ZGUgPFdlYkNvcmUvRXJy
b3JzVW5peC5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUmVzb3VyY2VSZXNwb25zZS5oPgogI2luY2x1
ZGUgPGdsaWIvZ2kxOG4tbGliLmg+CiAjaW5jbHVkZSA8d3RmL2dsaWIvR1JlZlB0ci5oPgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0RXJyb3IuY3Bw
IGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0RXJyb3IuY3BwCmluZGV4
IDc0MTllZTcyMWEwZmU4NmFiYzM2NDM2ZDI0ZWMyNWU0NjQyM2U4Y2YuLmIwODM0MzZhMThkOTE3
NGZmZjNlNjdjZWQ4OGZlNDBlMzhiNDFhN2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9BUEkvZ3RrL1dlYktpdEVycm9yLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvQVBJL2d0ay9XZWJLaXRFcnJvci5jcHAKQEAgLTIyLDcgKzIyLDcgQEAKICNpbmNsdWRl
ICJXZWJLaXRFcnJvci5oIgogCiAjaW5jbHVkZSAiV2ViS2l0UHJpdmF0ZS5oIgotI2luY2x1ZGUg
PFdlYkNvcmUvRXJyb3JzR3RrLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9FcnJvcnNVbml4Lmg+CiAK
IHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRQcml2YXRlLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9BUEkvZ3RrL1dlYktpdFByaXZhdGUuY3BwCmluZGV4IDJiMWUxMjQ5NzZiYTRkZGM2NzE5
MTcyNTBlOTc4Mjk4MDE0NWJhY2EuLjkxOTdiYzc3MmNjOGVlODE5OGUwOTFlZWNkZDBkOGIxMmNj
MGYyN2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktp
dFByaXZhdGUuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktp
dFByaXZhdGUuY3BwCkBAIC0yMCw3ICsyMCw3IEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5j
bHVkZSAiV2ViS2l0UHJpdmF0ZS5oIgogCi0jaW5jbHVkZSAiRXJyb3JzR3RrLmgiCisjaW5jbHVk
ZSAiRXJyb3JzVW5peC5oIgogI2luY2x1ZGUgIldlYkV2ZW50LmgiCiAjaW5jbHVkZSAiV2ViS2l0
RXJyb3IuaCIKICNpbmNsdWRlIDxnZGsvZ2RrLmg+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvTmV0d29yay9DdXN0b21Qcm90b2NvbHMvc291cC9XZWJTb3VwQ3VzdG9tUHJv
dG9jb2xSZXF1ZXN0TWFuYWdlci5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvTmV0d29y
ay9DdXN0b21Qcm90b2NvbHMvc291cC9XZWJTb3VwQ3VzdG9tUHJvdG9jb2xSZXF1ZXN0TWFuYWdl
ci5jcHAKaW5kZXggYjY1NWU0MzUxM2Q1ZTQxM2UxYjhmNWM2MjJkODhhMzk2NWIwNmE0Yi4uYTAz
NWI0Nzg0NjRkYjQxMTY4MGMxYjBjMzg5NDg3OWNlY2YzNTZhMiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL05ldHdvcmsvQ3VzdG9tUHJvdG9jb2xzL3NvdXAvV2ViU291cEN1
c3RvbVByb3RvY29sUmVxdWVzdE1hbmFnZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9OZXR3b3JrL0N1c3RvbVByb3RvY29scy9zb3VwL1dlYlNvdXBDdXN0b21Qcm90b2NvbFJl
cXVlc3RNYW5hZ2VyLmNwcApAQCAtMjMsMTYgKzIzLDEyIEBACiAjaW5jbHVkZSAiQVBJRGF0YS5o
IgogI2luY2x1ZGUgIkN1c3RvbVByb3RvY29sTWFuYWdlck1lc3NhZ2VzLmgiCiAjaW5jbHVkZSAi
V2ViUHJvY2Vzc1Bvb2wuaCIKKyNpbmNsdWRlIDxXZWJDb3JlL0Vycm9ycy5oPgorI2luY2x1ZGUg
PFdlYkNvcmUvRXJyb3JzVW5peC5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUmVzb3VyY2VFcnJvci5o
PgogI2luY2x1ZGUgPFdlYkNvcmUvUmVzb3VyY2VSZXF1ZXN0Lmg+CiAjaW5jbHVkZSA8V2ViQ29y
ZS9SZXNvdXJjZVJlc3BvbnNlLmg+CiAKLSNpZiBQTEFURk9STShHVEspCi0jaW5jbHVkZSA8V2Vi
Q29yZS9FcnJvcnNHdGsuaD4KLSNlbGlmIFBMQVRGT1JNKEVGTCkKLSNpbmNsdWRlIDxXZWJDb3Jl
L0Vycm9yc0VmbC5oPgotI2VuZGlmCi0KIG5hbWVzcGFjZSBXZWJLaXQgewogCiBjb25zdCBjaGFy
KiBXZWJTb3VwQ3VzdG9tUHJvdG9jb2xSZXF1ZXN0TWFuYWdlcjo6c3VwcGxlbWVudE5hbWUoKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViS2l0Mi54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qIGIvU291cmNlL1dlYktpdDIvV2ViS2l0Mi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmlu
ZGV4IGM2MzJmYmNhNzIxNmIzNTcyNWQwYjIwMDA4YjViYzU4MDkyZGJiZjMuLmE4OTFlZTUyNmFk
MDBjYTRiYzM4ZmJlMjI3OTI4MjlmYzNiMTFhMDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQy
L1dlYktpdDIueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViS2l0Mi9X
ZWJLaXQyLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTIyNSw3ICsyMjUsNiBAQAogCQkx
QTNFRUQwRjE2MUE1MzU0MDBBRUI0RjUgLyogTWVzc2FnZVJlY2VpdmVyTWFwLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxQTNFRUQwRDE2MUE1MzUzMDBB
RUI0RjUgLyogTWVzc2FnZVJlY2VpdmVyTWFwLmggKi87IH07CiAJCTFBM0VFRDEyMTYxQTUzRDYw
MEFFQjRGNSAvKiBNZXNzYWdlUmVjZWl2ZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDFBM0VFRDExMTYxQTUzRDYwMEFFQjRGNSAvKiBNZXNzYWdlUmVj
ZWl2ZXIuaCAqLzsgfTsKIAkJMUE0MjJGOEIxOEIyOUI1NDAwRDhDRDk2IC8qIFdLSGlzdG9yeURl
bGVnYXRlUHJpdmF0ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gMUE0MjJGOEExOEIyOUI1NDAwRDhDRDk2IC8qIFdLSGlzdG9yeURlbGVnYXRlUHJpdmF0
ZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07Ci0JCTFB
NDMzRjBEMTEzQzUzREQwMEZBQ0RFOSAvKiBXZWJFcnJvcnMuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFBNDMzRjBDMTEzQzUzREQwMEZBQ0RFOSAvKiBX
ZWJFcnJvcnMuaCAqLzsgfTsKIAkJMUE0M0U4MjkxODhGM0NEQzAwOUU0RDMwIC8qIF9XS1Byb2Nl
c3NQb29sQ29uZmlndXJhdGlvbi5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDFBNDNFODI3MTg4RjNDREMwMDlFNEQzMCAvKiBfV0tQcm9jZXNzUG9vbENv
bmZpZ3VyYXRpb24ubW0gKi87IH07CiAJCTFBNDNFODJBMTg4RjNDREMwMDlFNEQzMCAvKiBfV0tQ
cm9jZXNzUG9vbENvbmZpZ3VyYXRpb24uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDFBNDNFODI4MTg4RjNDREMwMDlFNEQzMCAvKiBfV0tQcm9jZXNzUG9v
bENvbmZpZ3VyYXRpb24uaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCAp
OyB9OyB9OwogCQkxQTQ0NUI5RjE4NEQ1RkI1MDA0QjM0MTQgLyogV0tDb250ZXh0SW5qZWN0ZWRC
dW5kbGVDbGllbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDFBNDQ1QjlFMTg0RDVGQjUwMDRCMzQxNCAvKiBXS0NvbnRleHRJbmplY3RlZEJ1bmRsZUNs
aWVudC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CkBA
IC0xMzc2LDcgKzEzNzUsNiBAQAogCQlCQzExMUE1RjExMkY0RkJCMDAzMzdCQUIgLyogV2ViRnJh
bWVMb2FkZXJDbGllbnQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gQkMxMTFBNTgxMTJGNEZCQjAwMzM3QkFCIC8qIFdlYkZyYW1lTG9hZGVyQ2xpZW50
LmNwcCAqLzsgfTsKIAkJQkMxMTFBNjAxMTJGNEZCQjAwMzM3QkFCIC8qIFdlYkluc3BlY3RvckNs
aWVudC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBC
QzExMUE1OTExMkY0RkJCMDAzMzdCQUIgLyogV2ViSW5zcGVjdG9yQ2xpZW50LmNwcCAqLzsgfTsK
IAkJQkMxMTFBREQxMTJGNUI5MzAwMzM3QkFCIC8qIFdlYkZyYW1lLmNwcCBpbiBTb3VyY2VzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDMTExQURDMTEyRjVCOTMwMDMzN0JB
QiAvKiBXZWJGcmFtZS5jcHAgKi87IH07Ci0JCUJDMTExQUUwMTEyRjVCQzIwMDMzN0JBQiAvKiBX
ZWJFcnJvcnNNYWMubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSBCQzExMUFERjExMkY1QkMyMDAzMzdCQUIgLyogV2ViRXJyb3JzTWFjLm1tICovOyB9Owog
CQlCQzExMUFFNDExMkY1QzI2MDAzMzdCQUIgLyogV2ViUHJvY2Vzcy5jcHAgaW4gU291cmNlcyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQzExMUFFMzExMkY1QzI2MDAzMzdC
QUIgLyogV2ViUHJvY2Vzcy5jcHAgKi87IH07CiAJCUJDMTExQjA5MTEyRjVFM0MwMDMzN0JBQiAv
KiBSZXNwb25zaXZlbmVzc1RpbWVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IEJDMTExQjA4MTEyRjVFM0MwMDMzN0JBQiAvKiBSZXNwb25zaXZlbmVz
c1RpbWVyLmNwcCAqLzsgfTsKIAkJQkMxMTFCMEUxMTJGNUU0RjAwMzM3QkFCIC8qIFdlYkZyYW1l
UHJveHkuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
QkMxMTFCMEExMTJGNUU0RjAwMzM3QkFCIC8qIFdlYkZyYW1lUHJveHkuY3BwICovOyB9OwpAQCAt
MjIwNyw3ICsyMjA1LDYgQEAKIAkJMUEzRUVEMEQxNjFBNTM1MzAwQUVCNEY1IC8qIE1lc3NhZ2VS
ZWNlaXZlck1hcC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBNZXNzYWdlUmVj
ZWl2ZXJNYXAuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMUEzRUVEMTExNjFBNTNE
NjAwQUVCNEY1IC8qIE1lc3NhZ2VSZWNlaXZlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBNZXNzYWdlUmVjZWl2ZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
MUE0MjJGOEExOEIyOUI1NDAwRDhDRDk2IC8qIFdLSGlzdG9yeURlbGVnYXRlUHJpdmF0ZS5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXS0hpc3RvcnlEZWxlZ2F0ZVByaXZhdGUu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJMUE0MzNGMEMxMTNDNTNERDAwRkFDREU5
IC8qIFdlYkVycm9ycy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJFcnJv
cnMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMUE0M0U4MjcxODhGM0NEQzAwOUU0
RDMwIC8qIF9XS1Byb2Nlc3NQb29sQ29uZmlndXJhdGlvbi5tbSAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLm9iamNwcDsgcGF0aCA9IF9XS1Byb2Nlc3NQb29sQ29uZmlndXJhdGlvbi5tbTsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMUE0M0U4MjgxODhGM0NEQzAwOUU0RDMwIC8qIF9X
S1Byb2Nlc3NQb29sQ29uZmlndXJhdGlvbi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBfV0tQcm9jZXNzUG9vbENvbmZpZ3VyYXRpb24uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJMUE0NDVCOUUxODRENUZCNTAwNEIzNDE0IC8qIFdLQ29udGV4dEluamVjdGVkQnVu
ZGxlQ2xpZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdLQ29udGV4dElu
amVjdGVkQnVuZGxlQ2xpZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0zNDY5
LDcgKzM0NjYsNiBAQAogCQlCQzExMUE1ODExMkY0RkJCMDAzMzdCQUIgLyogV2ViRnJhbWVMb2Fk
ZXJDbGllbnQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV2ViRnJh
bWVMb2FkZXJDbGllbnQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB3cmFwc0xpbmVzID0g
MDsgfTsKIAkJQkMxMTFBNTkxMTJGNEZCQjAwMzM3QkFCIC8qIFdlYkluc3BlY3RvckNsaWVudC5j
cHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXZWJJbnNwZWN0b3JDbGll
bnQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlCQzExMUFEQzExMkY1QjkzMDAz
MzdCQUIgLyogV2ViRnJhbWUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRo
ID0gV2ViRnJhbWUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQlCQzExMUFERjEx
MkY1QkMyMDAzMzdCQUIgLyogV2ViRXJyb3JzTWFjLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAub2JqY3BwOyBwYXRoID0gV2ViRXJyb3JzTWFjLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQlCQzExMUFFMzExMkY1QzI2MDAzMzdCQUIgLyogV2ViUHJvY2Vzcy5jcHAgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXZWJQcm9jZXNzLmNwcDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQkMxMTFCMDgxMTJGNUUzQzAwMzM3QkFCIC8qIFJlc3BvbnNp
dmVuZXNzVGltZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUmVz
cG9uc2l2ZW5lc3NUaW1lci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUJDMTEx
QjBBMTEyRjVFNEYwMDMzN0JBQiAvKiBXZWJGcmFtZVByb3h5LmNwcCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdlYkZyYW1lUHJveHkuY3BwOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwpAQCAtNTkzMSw3ICs1OTI3LDYgQEAKIAkJCQlCQzAzMkQ2NjEwRjQzNzhEMDA1
OEMxNUEgLyogV2ViRHJhZ0NsaWVudC5oICovLAogCQkJCUJDMTExQTU3MTEyRjRGQkIwMDMzN0JB
QiAvKiBXZWJFZGl0b3JDbGllbnQuY3BwICovLAogCQkJCUJDMDMyRDY4MTBGNDM3OEQwMDU4QzE1
QSAvKiBXZWJFZGl0b3JDbGllbnQuaCAqLywKLQkJCQkxQTQzM0YwQzExM0M1M0REMDBGQUNERTkg
LyogV2ViRXJyb3JzLmggKi8sCiAJCQkJQkMxMTFBNTgxMTJGNEZCQjAwMzM3QkFCIC8qIFdlYkZy
YW1lTG9hZGVyQ2xpZW50LmNwcCAqLywKIAkJCQlCQzAzMkQ2QTEwRjQzNzhEMDA1OEMxNUEgLyog
V2ViRnJhbWVMb2FkZXJDbGllbnQuaCAqLywKIAkJCQlCQzFCRTFERjEyRDU0QTQxMDAwNEEyMjgg
LyogV2ViR2VvbG9jYXRpb25DbGllbnQuY3BwICovLApAQCAtNjM3OSw3ICs2Mzc0LDYgQEAKIAkJ
CQk1MTAyMUU5QjEyQjE2Nzg4MDA1QzAzM0MgLyogV2ViQ29udGV4dE1lbnVDbGllbnRNYWMubW0g
Ki8sCiAJCQkJQzU1NEZGQTIxMkU0RThFQTAwMkYyMkMwIC8qIFdlYkRyYWdDbGllbnRNYWMubW0g
Ki8sCiAJCQkJQzUyMzdGNUYxMjQ0MUNBMzAwNzgwNDcyIC8qIFdlYkVkaXRvckNsaWVudE1hYy5t
bSAqLywKLQkJCQlCQzExMUFERjExMkY1QkMyMDAzMzdCQUIgLyogV2ViRXJyb3JzTWFjLm1tICov
LAogCQkJCTkzOTFGMjgzMTIxQjM4RjUwMEVCRjdFOCAvKiBXZWJGcmFtZU5ldHdvcmtpbmdDb250
ZXh0LmggKi8sCiAJCQkJOTM5MUYyODQxMjFCMzhGNTAwRUJGN0U4IC8qIFdlYkZyYW1lTmV0d29y
a2luZ0NvbnRleHQubW0gKi8sCiAJCQkJQkNDNDNBQzYxMjdCOTlERTAwMzE3RjE2IC8qIFdlYlBv
cHVwTWVudU1hYy5tbSAqLywKQEAgLTc4NjgsNyArNzg2Miw2IEBACiAJCQkJQkMwMzJEN0IxMEY0
Mzc4RDAwNThDMTVBIC8qIFdlYkRyYWdDbGllbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDQTBF
RjlGMTIzMzI2NDIwMDdEM0NGQiAvKiBXZWJFZGl0Q29tbWFuZFByb3h5LmggaW4gSGVhZGVycyAq
LywKIAkJCQlCQzAzMkQ3RDEwRjQzNzhEMDA1OEMxNUEgLyogV2ViRWRpdG9yQ2xpZW50LmggaW4g
SGVhZGVycyAqLywKLQkJCQkxQTQzM0YwRDExM0M1M0REMDBGQUNERTkgLyogV2ViRXJyb3JzLmgg
aW4gSGVhZGVycyAqLywKIAkJCQlCQzAzMkRCOTEwRjQzODBGMDA1OEMxNUEgLyogV2ViRXZlbnQu
aCBpbiBIZWFkZXJzICovLAogCQkJCUJDMDMyREJCMTBGNDM4MEYwMDU4QzE1QSAvKiBXZWJFdmVu
dENvbnZlcnNpb24uaCBpbiBIZWFkZXJzICovLAogCQkJCUJDMTExQjVEMTEyRjYyOTgwMDMzN0JB
QiAvKiBXZWJFdmVudEZhY3RvcnkuaCBpbiBIZWFkZXJzICovLApAQCAtOTM2NCw3ICs5MzU3LDYg
QEAKIAkJCQlCQzExMUE1RTExMkY0RkJCMDAzMzdCQUIgLyogV2ViRWRpdG9yQ2xpZW50LmNwcCBp
biBTb3VyY2VzICovLAogCQkJCTJEMjhGM0U2MTg4NUNDQzEwMDRCOUVBRSAvKiBXZWJFZGl0b3JD
bGllbnRJT1MubW0gaW4gU291cmNlcyAqLywKIAkJCQlDNTIzN0Y2MDEyNDQxQ0EzMDA3ODA0NzIg
LyogV2ViRWRpdG9yQ2xpZW50TWFjLm1tIGluIFNvdXJjZXMgKi8sCi0JCQkJQkMxMTFBRTAxMTJG
NUJDMjAwMzM3QkFCIC8qIFdlYkVycm9yc01hYy5tbSBpbiBTb3VyY2VzICovLAogCQkJCUMwMzM3
REFFMTI3QTI0RkUwMDhGRjRGNCAvKiBXZWJFdmVudC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlC
QzAzMkRCQTEwRjQzODBGMDA1OEMxNUEgLyogV2ViRXZlbnRDb252ZXJzaW9uLmNwcCBpbiBTb3Vy
Y2VzICovLAogCQkJCUJDMTExQjVFMTEyRjYyOTgwMDMzN0JBQiAvKiBXZWJFdmVudEZhY3Rvcnku
bW0gaW4gU291cmNlcyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
TmV0d29yay9XZWJMb2FkZXJTdHJhdGVneS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L05ldHdvcmsvV2ViTG9hZGVyU3RyYXRlZ3kuY3BwCmluZGV4IDM5M2I4Y2VkZTMzNDViZmZiYTUy
YThmYTUxYjc4NzViY2JiOThhZWYuLjRmNDUxZDRjZmNmMjg5ZmZhZGVhM2NjNDIwMmVhZGViZjMw
NDhlODYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvTmV0d29yay9XZWJM
b2FkZXJTdHJhdGVneS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9OZXR3b3Jr
L1dlYkxvYWRlclN0cmF0ZWd5LmNwcApAQCAtMzMsNyArMzMsNiBAQAogI2luY2x1ZGUgIk5ldHdv
cmtSZXNvdXJjZUxvYWRQYXJhbWV0ZXJzLmgiCiAjaW5jbHVkZSAiU2Vzc2lvblRyYWNrZXIuaCIK
ICNpbmNsdWRlICJXZWJDb3JlQXJndW1lbnRDb2RlcnMuaCIKLSNpbmNsdWRlICJXZWJFcnJvcnMu
aCIKICNpbmNsdWRlICJXZWJGcmFtZS5oIgogI2luY2x1ZGUgIldlYkZyYW1lTG9hZGVyQ2xpZW50
LmgiCiAjaW5jbHVkZSAiV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dC5oIgpAQCAtNDQsNiArNDMs
NyBAQAogI2luY2x1ZGUgPFdlYkNvcmUvQ2FjaGVkUmVzb3VyY2UuaD4KICNpbmNsdWRlIDxXZWJD
b3JlL0RvY3VtZW50Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9Eb2N1bWVudExvYWRlci5oPgorI2lu
Y2x1ZGUgPFdlYkNvcmUvRXJyb3JzLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9GcmFtZS5oPgogI2lu
Y2x1ZGUgPFdlYkNvcmUvRnJhbWVMb2FkZXIuaD4KICNpbmNsdWRlIDxXZWJDb3JlL05ldHNjYXBl
UGx1Z0luU3RyZWFtTG9hZGVyLmg+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9j
ZXNzL05ldHdvcmsvV2ViUmVzb3VyY2VMb2FkZXIuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9OZXR3b3JrL1dlYlJlc291cmNlTG9hZGVyLmNwcAppbmRleCA3OGIwYTk4OTE4ODE4NWVk
YzFhYTc3MjQ3ODRkNDdmNDBhZmIyZGI3Li45OWE2Nzg2M2I5MTc1YWUyYTBhNzBlNjBmN2IwYjNk
YjQyZTc3ZDZmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL05ldHdvcmsv
V2ViUmVzb3VyY2VMb2FkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvTmV0
d29yay9XZWJSZXNvdXJjZUxvYWRlci5jcHAKQEAgLTMxLDExICszMSwxMSBAQAogI2luY2x1ZGUg
Ik5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbi5oIgogI2luY2x1ZGUgIk5ldHdvcmtSZXNvdXJjZUxv
YWRlck1lc3NhZ2VzLmgiCiAjaW5jbHVkZSAiV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmgiCi0jaW5j
bHVkZSAiV2ViRXJyb3JzLmgiCiAjaW5jbHVkZSAiV2ViUHJvY2Vzcy5oIgogI2luY2x1ZGUgPFdl
YkNvcmUvQXBwbGljYXRpb25DYWNoZUhvc3QuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0NlcnRpZmlj
YXRlSW5mby5oPgogI2luY2x1ZGUgPFdlYkNvcmUvRG9jdW1lbnRMb2FkZXIuaD4KKyNpbmNsdWRl
IDxXZWJDb3JlL0Vycm9ycy5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUmVzb3VyY2VFcnJvci5oPgog
I2luY2x1ZGUgPFdlYkNvcmUvUmVzb3VyY2VMb2FkZXIuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1N1
YnJlc291cmNlTG9hZGVyLmg+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmNwcCBiL1NvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuY3BwCmluZGV4
IDVmNzZiYzlmNDE5ZTNjNGE1ZjMxOWY5Mzg5NGRlYjZhMWU0NGRkMzkuLjg2YTY5YmI4ZTk0NmY5
ZGUzZDdhMWYyYmQ0MWUyMWMwZDQ5YTU3MmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuY3BwCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGll
bnQuY3BwCkBAIC00MSw3ICs0MSw2IEBACiAjaW5jbHVkZSAiV2ViQmFja0ZvcndhcmRMaXN0UHJv
eHkuaCIKICNpbmNsdWRlICJXZWJDb3JlQXJndW1lbnRDb2RlcnMuaCIKICNpbmNsdWRlICJXZWJE
b2N1bWVudExvYWRlci5oIgotI2luY2x1ZGUgIldlYkVycm9ycy5oIgogI2luY2x1ZGUgIldlYkV2
ZW50LmgiCiAjaW5jbHVkZSAiV2ViRnJhbWUuaCIKICNpbmNsdWRlICJXZWJGcmFtZU5ldHdvcmtp
bmdDb250ZXh0LmgiCkBAIC01OSw2ICs1OCw3IEBACiAjaW5jbHVkZSA8V2ViQ29yZS9DaHJvbWUu
aD4KICNpbmNsdWRlIDxXZWJDb3JlL0RPTVdyYXBwZXJXb3JsZC5oPgogI2luY2x1ZGUgPFdlYkNv
cmUvRG9jdW1lbnRMb2FkZXIuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL0Vycm9ycy5oPgogI2luY2x1
ZGUgPFdlYkNvcmUvRm9ybVN0YXRlLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9GcmFtZUxvYWRSZXF1
ZXN0Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9GcmFtZUxvYWRlci5oPgpAQCAtMTA4OSw1NyArMTA4
OSwxMCBAQCB2b2lkIFdlYkZyYW1lTG9hZGVyQ2xpZW50OjpkaWREZXRlY3RYU1MoY29uc3QgVVJM
JiwgYm9vbCkKICAgICB3ZWJQYWdlLT5zZW5kKE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OkRpZERl
dGVjdFhTU0ZvckZyYW1lKG1fZnJhbWUtPmZyYW1lSUQoKSwgVXNlckRhdGEoV2ViUHJvY2Vzczo6
c2luZ2xldG9uKCkudHJhbnNmb3JtT2JqZWN0c1RvSGFuZGxlcyh1c2VyRGF0YS5nZXQoKSkuZ2V0
KCkpKSk7CiB9CiAKLVJlc291cmNlRXJyb3IgV2ViRnJhbWVMb2FkZXJDbGllbnQ6OmNhbmNlbGxl
ZEVycm9yKGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCkKLXsKLSAgICByZXR1cm4gV2Vi
S2l0OjpjYW5jZWxsZWRFcnJvcihyZXF1ZXN0KTsKLX0KLQotUmVzb3VyY2VFcnJvciBXZWJGcmFt
ZUxvYWRlckNsaWVudDo6YmxvY2tlZEVycm9yKGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVz
dCkKLXsKLSAgICByZXR1cm4gV2ViS2l0OjpibG9ja2VkRXJyb3IocmVxdWVzdCk7Ci19Ci0KLVJl
c291cmNlRXJyb3IgV2ViRnJhbWVMb2FkZXJDbGllbnQ6OmJsb2NrZWRCeUNvbnRlbnRCbG9ja2Vy
RXJyb3IoY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0KQotewotICAgIHJldHVybiBXZWJL
aXQ6OmJsb2NrZWRCeUNvbnRlbnRCbG9ja2VyRXJyb3IocmVxdWVzdCk7Ci19Ci0KLVJlc291cmNl
RXJyb3IgV2ViRnJhbWVMb2FkZXJDbGllbnQ6OmNhbm5vdFNob3dVUkxFcnJvcihjb25zdCBSZXNv
dXJjZVJlcXVlc3QmIHJlcXVlc3QpCi17Ci0gICAgcmV0dXJuIFdlYktpdDo6Y2Fubm90U2hvd1VS
TEVycm9yKHJlcXVlc3QpOwotfQotCi1SZXNvdXJjZUVycm9yIFdlYkZyYW1lTG9hZGVyQ2xpZW50
OjppbnRlcnJ1cHRlZEZvclBvbGljeUNoYW5nZUVycm9yKGNvbnN0IFJlc291cmNlUmVxdWVzdCYg
cmVxdWVzdCkKLXsKLSAgICByZXR1cm4gV2ViS2l0OjppbnRlcnJ1cHRlZEZvclBvbGljeUNoYW5n
ZUVycm9yKHJlcXVlc3QpOwotfQotCi0jaWYgRU5BQkxFKENPTlRFTlRfRklMVEVSSU5HKQotUmVz
b3VyY2VFcnJvciBXZWJGcmFtZUxvYWRlckNsaWVudDo6YmxvY2tlZEJ5Q29udGVudEZpbHRlckVy
cm9yKGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCkKLXsKLSAgICByZXR1cm4gV2ViS2l0
OjpibG9ja2VkQnlDb250ZW50RmlsdGVyRXJyb3IocmVxdWVzdCk7Ci19Ci0jZW5kaWYKLQotUmVz
b3VyY2VFcnJvciBXZWJGcmFtZUxvYWRlckNsaWVudDo6Y2Fubm90U2hvd01JTUVUeXBlRXJyb3Io
Y29uc3QgUmVzb3VyY2VSZXNwb25zZSYgcmVzcG9uc2UpCi17Ci0gICAgcmV0dXJuIFdlYktpdDo6
Y2Fubm90U2hvd01JTUVUeXBlRXJyb3IocmVzcG9uc2UpOwotfQotCi1SZXNvdXJjZUVycm9yIFdl
YkZyYW1lTG9hZGVyQ2xpZW50OjpmaWxlRG9lc05vdEV4aXN0RXJyb3IoY29uc3QgUmVzb3VyY2VS
ZXNwb25zZSYgcmVzcG9uc2UpCi17Ci0gICAgcmV0dXJuIFdlYktpdDo6ZmlsZURvZXNOb3RFeGlz
dEVycm9yKHJlc3BvbnNlKTsKLX0KLQotUmVzb3VyY2VFcnJvciBXZWJGcmFtZUxvYWRlckNsaWVu
dDo6cGx1Z2luV2lsbEhhbmRsZUxvYWRFcnJvcihjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiByZXNw
b25zZSkKLXsKLSAgICByZXR1cm4gV2ViS2l0OjpwbHVnaW5XaWxsSGFuZGxlTG9hZEVycm9yKHJl
c3BvbnNlKTsKLX0KLQogYm9vbCBXZWJGcmFtZUxvYWRlckNsaWVudDo6c2hvdWxkRmFsbEJhY2so
Y29uc3QgUmVzb3VyY2VFcnJvciYgZXJyb3IpCiB7Ci0gICAgc3RhdGljIE5ldmVyRGVzdHJveWVk
PGNvbnN0IFJlc291cmNlRXJyb3I+IGNhbmNlbGxlZEVycm9yKHRoaXMtPmNhbmNlbGxlZEVycm9y
KFJlc291cmNlUmVxdWVzdCgpKSk7Ci0gICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPGNvbnN0IFJl
c291cmNlRXJyb3I+IHBsdWdpbldpbGxIYW5kbGVMb2FkRXJyb3IodGhpcy0+cGx1Z2luV2lsbEhh
bmRsZUxvYWRFcnJvcihSZXNvdXJjZVJlc3BvbnNlKCkpKTsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0
cm95ZWQ8Y29uc3QgUmVzb3VyY2VFcnJvcj4gY2FuY2VsbGVkRXJyb3IoV2ViQ29yZTo6Y2FuY2Vs
bGVkRXJyb3IoUmVzb3VyY2VSZXF1ZXN0KCkpKTsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8
Y29uc3QgUmVzb3VyY2VFcnJvcj4gcGx1Z2luV2lsbEhhbmRsZUxvYWRFcnJvcihXZWJDb3JlOjpw
bHVnaW5XaWxsSGFuZGxlTG9hZEVycm9yKFJlc291cmNlUmVzcG9uc2UoKSkpOwogCiAgICAgaWYg
KGVycm9yLmVycm9yQ29kZSgpID09IGNhbmNlbGxlZEVycm9yLmdldCgpLmVycm9yQ29kZSgpICYm
IGVycm9yLmRvbWFpbigpID09IGNhbmNlbGxlZEVycm9yLmdldCgpLmRvbWFpbigpKQogICAgICAg
ICByZXR1cm4gZmFsc2U7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dl
YkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmggYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmgKaW5kZXggYjllMzlm
ZTIyZmI4YWVmYjVlOWE1OGEyNmY0YTZkNGEyMmUyM2FiNS4uYTk2NTlhMTBhOWUwNWMwOGZmYTVm
NDU5ZDQ3MDdlYTgwZDFlMjk2OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuaApAQCAt
MTQzLDE5ICsxNDMsNiBAQCBwcml2YXRlOgogICAgIHZvaWQgZGlkUnVuSW5zZWN1cmVDb250ZW50
KFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luKiwgY29uc3QgV2ViQ29yZTo6VVJMJikgb3ZlcnJpZGU7
CiAgICAgdm9pZCBkaWREZXRlY3RYU1MoY29uc3QgV2ViQ29yZTo6VVJMJiwgYm9vbCBkaWRCbG9j
a0VudGlyZVBhZ2UpIG92ZXJyaWRlOwogCi0gICAgV2ViQ29yZTo6UmVzb3VyY2VFcnJvciBjYW5j
ZWxsZWRFcnJvcihjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmKSBvdmVycmlkZTsKLSAg
ICBXZWJDb3JlOjpSZXNvdXJjZUVycm9yIGJsb2NrZWRFcnJvcihjb25zdCBXZWJDb3JlOjpSZXNv
dXJjZVJlcXVlc3QmKSBvdmVycmlkZTsKLSAgICBXZWJDb3JlOjpSZXNvdXJjZUVycm9yIGJsb2Nr
ZWRCeUNvbnRlbnRCbG9ja2VyRXJyb3IoY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0Jikg
b3ZlcnJpZGU7Ci0gICAgV2ViQ29yZTo6UmVzb3VyY2VFcnJvciBjYW5ub3RTaG93VVJMRXJyb3Io
Y29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0Jikgb3ZlcnJpZGU7Ci0gICAgV2ViQ29yZTo6
UmVzb3VyY2VFcnJvciBpbnRlcnJ1cHRlZEZvclBvbGljeUNoYW5nZUVycm9yKGNvbnN0IFdlYkNv
cmU6OlJlc291cmNlUmVxdWVzdCYpIG92ZXJyaWRlOwotI2lmIEVOQUJMRShDT05URU5UX0ZJTFRF
UklORykKLSAgICBXZWJDb3JlOjpSZXNvdXJjZUVycm9yIGJsb2NrZWRCeUNvbnRlbnRGaWx0ZXJF
cnJvcihjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmKSBvdmVycmlkZTsKLSNlbmRpZgot
ICAgIAotICAgIFdlYkNvcmU6OlJlc291cmNlRXJyb3IgY2Fubm90U2hvd01JTUVUeXBlRXJyb3Io
Y29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSYpIG92ZXJyaWRlOwotICAgIFdlYkNvcmU6
OlJlc291cmNlRXJyb3IgZmlsZURvZXNOb3RFeGlzdEVycm9yKGNvbnN0IFdlYkNvcmU6OlJlc291
cmNlUmVzcG9uc2UmKSBvdmVycmlkZTsKLSAgICBXZWJDb3JlOjpSZXNvdXJjZUVycm9yIHBsdWdp
bldpbGxIYW5kbGVMb2FkRXJyb3IoY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSYpIG92
ZXJyaWRlOwotICAgIAogICAgIGJvb2wgc2hvdWxkRmFsbEJhY2soY29uc3QgV2ViQ29yZTo6UmVz
b3VyY2VFcnJvciYpIG92ZXJyaWRlOwogICAgIAogICAgIGJvb2wgY2FuSGFuZGxlUmVxdWVzdChj
b25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmKSBjb25zdCBvdmVycmlkZTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViUGxhdGZvcm1T
dHJhdGVnaWVzLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQv
V2ViUGxhdGZvcm1TdHJhdGVnaWVzLmNwcAppbmRleCAwMTljMTMzMmRlNGMxYjRkMjUyOTNhZGVj
N2NiZDFkNDE5N2JiNjBjLi4wNzk1OGRiMTI3MTdlYzE2NWFiZDBhYjVkOGMxYjJjNTI3NTMxNTM2
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dl
YlBsYXRmb3JtU3RyYXRlZ2llcy5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9X
ZWJDb3JlU3VwcG9ydC9XZWJQbGF0Zm9ybVN0cmF0ZWdpZXMuY3BwCkBAIC0zNyw3ICszNyw2IEBA
CiAjaW5jbHVkZSAiU2Vzc2lvblRyYWNrZXIuaCIKICNpbmNsdWRlICJXZWJDb29raWVNYW5hZ2Vy
LmgiCiAjaW5jbHVkZSAiV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmgiCi0jaW5jbHVkZSAiV2ViRXJy
b3JzLmgiCiAjaW5jbHVkZSAiV2ViRnJhbWUuaCIKICNpbmNsdWRlICJXZWJGcmFtZUxvYWRlckNs
aWVudC5oIgogI2luY2x1ZGUgIldlYkxvYWRlclN0cmF0ZWd5LmgiCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L2VmbC9XZWJFcnJvcnNFZmwuY3Bw
IGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9lZmwvV2ViRXJyb3Jz
RWZsLmNwcApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYjFiOTdkODY0OTA5ZDFiZjdk
ZGU0NzlkOWFjN2E3MmRlZjU3YzMzNy4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L2Vm
bC9XZWJFcnJvcnNFZmwuY3BwCisrKyAvZGV2L251bGwKQEAgLTEsODUgKzAsMCBAQAotLyoKLSAq
IENvcHlyaWdodCAoQykgMjAxMSBTYW1zdW5nIEVsZWN0cm9uaWNzLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4g
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBt
dXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAg
ICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUg
ZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUg
SU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKLSAqIEFORCBBTlkgRVhQUkVTUyBP
UiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICog
VEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hB
TEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCi0gKiBCRSBMSUFCTEUgRk9SIEFOWSBE
SVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCi0gKiBD
T05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9D
VVJFTUVOVCBPRgotICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0Us
IERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCi0gKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIg
Q0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgotICogQ09O
VFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkKLSAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKLSAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4KLSAqLwotCi0jaW5jbHVkZSAiY29uZmlnLmgiCi0jaW5jbHVkZSAiV2ViRXJyb3Jz
LmgiCi0KLSNpbmNsdWRlICJBUElFcnJvci5oIgotI2luY2x1ZGUgPFdlYkNvcmUvRXJyb3JzRWZs
Lmg+Ci0jaW5jbHVkZSA8V2ViQ29yZS9SZXNvdXJjZUVycm9yLmg+Ci0jaW5jbHVkZSA8V2ViQ29y
ZS9SZXNvdXJjZVJlcXVlc3QuaD4KLSNpbmNsdWRlIDxXZWJDb3JlL1Jlc291cmNlUmVzcG9uc2Uu
aD4KLSNpbmNsdWRlIDxXZWJLaXQvV0tFcnJvclJlZi5oPgotCi11c2luZyBuYW1lc3BhY2UgV2Vi
Q29yZTsKLQotbmFtZXNwYWNlIFdlYktpdCB7Ci0KLVJlc291cmNlRXJyb3IgY2FuY2VsbGVkRXJy
b3IoY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0KQotewotICAgIHJldHVybiBXZWJDb3Jl
OjpjYW5jZWxsZWRFcnJvcihyZXF1ZXN0KTsKLX0KLQotUmVzb3VyY2VFcnJvciBibG9ja2VkRXJy
b3IoY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0KQotewotICAgIHJldHVybiBXZWJDb3Jl
OjpibG9ja2VkRXJyb3IocmVxdWVzdCk7Ci19Ci0KLVJlc291cmNlRXJyb3IgYmxvY2tlZEJ5Q29u
dGVudEJsb2NrZXJFcnJvcihjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QpCi17Ci0gICAg
cmV0dXJuIFdlYkNvcmU6OmJsb2NrZWRCeUNvbnRlbnRCbG9ja2VyRXJyb3IocmVxdWVzdCk7Ci19
Ci0KLVJlc291cmNlRXJyb3IgY2Fubm90U2hvd1VSTEVycm9yKGNvbnN0IFJlc291cmNlUmVxdWVz
dCYgcmVxdWVzdCkKLXsKLSAgICByZXR1cm4gV2ViQ29yZTo6Y2Fubm90U2hvd1VSTEVycm9yKHJl
cXVlc3QpOwotfQotCi1SZXNvdXJjZUVycm9yIGludGVycnVwdGVkRm9yUG9saWN5Q2hhbmdlRXJy
b3IoY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0KQotewotICAgIHJldHVybiBXZWJDb3Jl
OjppbnRlcnJ1cHRlZEZvclBvbGljeUNoYW5nZUVycm9yKHJlcXVlc3QpOwotfQotCi1SZXNvdXJj
ZUVycm9yIGNhbm5vdFNob3dNSU1FVHlwZUVycm9yKGNvbnN0IFJlc291cmNlUmVzcG9uc2UmIHJl
c3BvbnNlKQotewotICAgIHJldHVybiBXZWJDb3JlOjpjYW5ub3RTaG93TUlNRVR5cGVFcnJvcihy
ZXNwb25zZSk7Ci19Ci0KLVJlc291cmNlRXJyb3IgZmlsZURvZXNOb3RFeGlzdEVycm9yKGNvbnN0
IFJlc291cmNlUmVzcG9uc2UmIHJlc3BvbnNlKQotewotICAgIHJldHVybiBXZWJDb3JlOjpmaWxl
RG9lc05vdEV4aXN0RXJyb3IocmVzcG9uc2UpOwotfQotCi1SZXNvdXJjZUVycm9yIHBsdWdpbldp
bGxIYW5kbGVMb2FkRXJyb3IoY29uc3QgUmVzb3VyY2VSZXNwb25zZSYgcmVzcG9uc2UpCi17Ci0g
ICAgcmV0dXJuIFdlYkNvcmU6OnBsdWdpbldpbGxIYW5kbGVMb2FkRXJyb3IocmVzcG9uc2UpOwot
fQotCi1XZWJDb3JlOjpSZXNvdXJjZUVycm9yIGludGVybmFsRXJyb3IoY29uc3QgV2ViQ29yZTo6
VVJMJiB1cmwpCi17Ci0gICAgcmV0dXJuIFJlc291cmNlRXJyb3IoQVBJOjpFcnJvcjo6d2ViS2l0
RXJyb3JEb21haW4oKSwga1dLRXJyb3JJbnRlcm5hbCwgdXJsLCBBU0NJSUxpdGVyYWwoIkludGVy
bmFsIGVycm9yIikpOwotfQotCi19IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvZ3RrL1dlYkVycm9yc0d0ay5j
cHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L2d0ay9XZWJFcnJv
cnNHdGsuY3BwCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBlOWQxZDRjMmI3NDRjN2Ez
NjU5NmY5ZGM0OTIyZmQyNjQ4MmY3ZjgzLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQv
Z3RrL1dlYkVycm9yc0d0ay5jcHAKKysrIC9kZXYvbnVsbApAQCAtMSw4OCArMCwwIEBACi0vKgot
ICogQ29weXJpZ2h0IChDKSAyMDEwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAq
IFBvcnRpb25zIENvcHlyaWdodCAoYykgMjAxMCBNb3Rvcm9sYSBNb2JpbGl0eSwgSW5jLiAgQWxs
IHJpZ2h0cyByZXNlcnZlZC4KLSAqIENvcHlyaWdodCAoQykgMjAxMSBJZ2FsaWEgUy5MLgotICoK
LSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmli
dXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0
aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQg
SVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKLSAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogVEhFIElNUExJ
RUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUg
SU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCi0gKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCi0gKiBDT05TRVFVRU5U
SUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBP
RgotICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9S
IFBST0ZJVFM7IE9SIEJVU0lORVNTCi0gKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFO
RCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgotICogQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkKLSAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YKLSAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4K
LSAqLwotCi0jaW5jbHVkZSAiY29uZmlnLmgiCi0jaW5jbHVkZSAiV2ViRXJyb3JzLmgiCi0KLSNp
bmNsdWRlICJBUElFcnJvci5oIgotI2luY2x1ZGUgPFdlYkNvcmUvRXJyb3JzR3RrLmg+Ci0jaW5j
bHVkZSA8V2ViQ29yZS9SZXNvdXJjZUVycm9yLmg+Ci0jaW5jbHVkZSA8V2ViQ29yZS9SZXNvdXJj
ZVJlcXVlc3QuaD4KLSNpbmNsdWRlIDxXZWJDb3JlL1Jlc291cmNlUmVzcG9uc2UuaD4KLSNpbmNs
dWRlIDxXZWJLaXQvV0tFcnJvclJlZi5oPgotI2luY2x1ZGUgPGdsaWIvZ2kxOG4tbGliLmg+Ci0K
LXVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwotCi1uYW1lc3BhY2UgV2ViS2l0IHsKLQotUmVzb3Vy
Y2VFcnJvciBjYW5jZWxsZWRFcnJvcihjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QpCi17
Ci0gICAgcmV0dXJuIFdlYkNvcmU6OmNhbmNlbGxlZEVycm9yKHJlcXVlc3QpOwotfQotCi1SZXNv
dXJjZUVycm9yIGJsb2NrZWRFcnJvcihjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QpCi17
Ci0gICAgcmV0dXJuIFdlYkNvcmU6OmJsb2NrZWRFcnJvcihyZXF1ZXN0KTsKLX0KLQotUmVzb3Vy
Y2VFcnJvciBibG9ja2VkQnlDb250ZW50QmxvY2tlckVycm9yKGNvbnN0IFJlc291cmNlUmVxdWVz
dCYgcmVxdWVzdCkKLXsKLSAgICByZXR1cm4gV2ViQ29yZTo6YmxvY2tlZEJ5Q29udGVudEJsb2Nr
ZXJFcnJvcihyZXF1ZXN0KTsKLX0KLQotUmVzb3VyY2VFcnJvciBjYW5ub3RTaG93VVJMRXJyb3Io
Y29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0KQotewotICAgIHJldHVybiBXZWJDb3JlOjpj
YW5ub3RTaG93VVJMRXJyb3IocmVxdWVzdCk7Ci19Ci0KLVJlc291cmNlRXJyb3IgaW50ZXJydXB0
ZWRGb3JQb2xpY3lDaGFuZ2VFcnJvcihjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QpCi17
Ci0gICAgcmV0dXJuIFdlYkNvcmU6OmludGVycnVwdGVkRm9yUG9saWN5Q2hhbmdlRXJyb3IocmVx
dWVzdCk7Ci19Ci0KLVJlc291cmNlRXJyb3IgY2Fubm90U2hvd01JTUVUeXBlRXJyb3IoY29uc3Qg
UmVzb3VyY2VSZXNwb25zZSYgcmVzcG9uc2UpCi17Ci0gICAgcmV0dXJuIFdlYkNvcmU6OmNhbm5v
dFNob3dNSU1FVHlwZUVycm9yKHJlc3BvbnNlKTsKLX0KLQotUmVzb3VyY2VFcnJvciBmaWxlRG9l
c05vdEV4aXN0RXJyb3IoY29uc3QgUmVzb3VyY2VSZXNwb25zZSYgcmVzcG9uc2UpCi17Ci0gICAg
cmV0dXJuIFdlYkNvcmU6OmZpbGVEb2VzTm90RXhpc3RFcnJvcihyZXNwb25zZSk7Ci19Ci0KLVJl
c291cmNlRXJyb3IgcGx1Z2luV2lsbEhhbmRsZUxvYWRFcnJvcihjb25zdCBSZXNvdXJjZVJlc3Bv
bnNlJiByZXNwb25zZSkKLXsKLSAgICByZXR1cm4gV2ViQ29yZTo6cGx1Z2luV2lsbEhhbmRsZUxv
YWRFcnJvcihyZXNwb25zZSk7Ci19Ci0KLVdlYkNvcmU6OlJlc291cmNlRXJyb3IgaW50ZXJuYWxF
cnJvcihjb25zdCBXZWJDb3JlOjpVUkwmIHVybCkKLXsKLSAgICByZXR1cm4gUmVzb3VyY2VFcnJv
cihBUEk6OkVycm9yOjp3ZWJLaXRFcnJvckRvbWFpbigpLCBrV0tFcnJvckludGVybmFsLCB1cmws
IF8oIkludGVybmFsIGVycm9yIikpOwotfQotCi19IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvbWFjL1dlYkVy
cm9yc01hYy5tbSBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvbWFj
L1dlYkVycm9yc01hYy5tbQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYWE3ODQ4NWI2
NTJmZDNjNDk1ZWQ0ZTVmMmU5ZjNlZDU0M2FkYzNhMy4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVT
dXBwb3J0L21hYy9XZWJFcnJvcnNNYWMubW0KKysrIC9kZXYvbnVsbApAQCAtMSwxMDcgKzAsMCBA
QAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMC0yMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAq
IDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQot
ICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQ
UExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCi0gKiBBTkQgQU5ZIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywK
LSAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5U
IFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwotICogQkUgTElBQkxFIEZPUiBB
TlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgot
ICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
UFJPQ1VSRU1FTlQgT0YKLSAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0Yg
VVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwotICogSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KLSAq
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpCi0gKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCi0gKiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuCi0gKi8KLQotI2ltcG9ydCAiY29uZmlnLmgiCi0jaW1wb3J0ICJXZWJFcnJv
cnMuaCIKLQotI2ltcG9ydCAiQVBJRXJyb3IuaCIKLSNpbXBvcnQgIldLRXJyb3JSZWYuaCIKLSNp
bXBvcnQgPFdlYkNvcmUvTG9jYWxpemVkU3RyaW5ncy5oPgotI2ltcG9ydCA8V2ViQ29yZS9SZXNv
dXJjZVJlcXVlc3QuaD4KLSNpbXBvcnQgPFdlYkNvcmUvUmVzb3VyY2VSZXNwb25zZS5oPgotCi11
c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKLXVzaW5nIG5hbWVzcGFjZSBXZWJLaXQ7Ci0KLW5hbWVz
cGFjZSBXZWJLaXQgewotCi1zdGF0aWMgUmV0YWluUHRyPE5TRXJyb3I+IGNyZWF0ZU5TRXJyb3Io
TlNTdHJpbmcqIGRvbWFpbiwgaW50IGNvZGUsIE5TVVJMICpVUkwpCi17Ci0gICAgTlNEaWN0aW9u
YXJ5ICp1c2VySW5mbyA9IFtOU0RpY3Rpb25hcnkgZGljdGlvbmFyeVdpdGhPYmplY3RzQW5kS2V5
czoKLSAgICAgICAgVVJMLCBAIk5TRXJyb3JGYWlsaW5nVVJMS2V5IiwKLSAgICAgICAgW1VSTCBh
YnNvbHV0ZVN0cmluZ10sIEAiTlNFcnJvckZhaWxpbmdVUkxTdHJpbmdLZXkiLAotICAgICAgICBu
aWxdOwotCi0gICAgcmV0dXJuIGFkb3B0TlMoW1tOU0Vycm9yIGFsbG9jXSBpbml0V2l0aERvbWFp
bjpkb21haW4gY29kZTpjb2RlIHVzZXJJbmZvOnVzZXJJbmZvXSk7Ci19Ci0KLS8vIFVzZSBOU0Vy
cm9yJ3MgaWYgYXZhaWxhYmxlLgotCi1SZXNvdXJjZUVycm9yIGNhbmNlbGxlZEVycm9yKGNvbnN0
IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCkKLXsKLSAgICByZXR1cm4gUmVzb3VyY2VFcnJvcihj
cmVhdGVOU0Vycm9yKE5TVVJMRXJyb3JEb21haW4sIE5TVVJMRXJyb3JDYW5jZWxsZWQsIHJlcXVl
c3QudXJsKCkpLmdldCgpKTsKLX0KLQotUmVzb3VyY2VFcnJvciBmaWxlRG9lc05vdEV4aXN0RXJy
b3IoY29uc3QgUmVzb3VyY2VSZXNwb25zZSYgcmVzcG9uc2UpCi17Ci0gICAgcmV0dXJuIFJlc291
cmNlRXJyb3IoY3JlYXRlTlNFcnJvcihOU1VSTEVycm9yRG9tYWluLCBOU1VSTEVycm9yRmlsZURv
ZXNOb3RFeGlzdCwgcmVzcG9uc2UudXJsKCkpLmdldCgpKTsKLX0KLQotCi0vLyBPdGhlcndpc2Us
IGZhbGxiYWNrIHRvIG91ciBvd24gZXJyb3JzLgotCi1SZXNvdXJjZUVycm9yIGJsb2NrZWRFcnJv
cihjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QpCi17Ci0gICAgcmV0dXJuIFJlc291cmNl
RXJyb3IoQVBJOjpFcnJvcjo6d2ViS2l0RXJyb3JEb21haW4oKSwga1dLRXJyb3JDb2RlQ2Fubm90
VXNlUmVzdHJpY3RlZFBvcnQsIHJlcXVlc3QudXJsKCksIFdFQl9VSV9TVFJJTkcoIk5vdCBhbGxv
d2VkIHRvIHVzZSByZXN0cmljdGVkIG5ldHdvcmsgcG9ydCIsICJXZWJLaXRFcnJvckNhbm5vdFVz
ZVJlc3RyaWN0ZWRQb3J0IGRlc2NyaXB0aW9uIikpOwotfQotCi1SZXNvdXJjZUVycm9yIGJsb2Nr
ZWRCeUNvbnRlbnRCbG9ja2VyRXJyb3IoY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0KQot
ewotICAgIHJldHVybiBSZXNvdXJjZUVycm9yKEFQSTo6RXJyb3I6OndlYktpdEVycm9yRG9tYWlu
KCksIGtXS0Vycm9yQ29kZUZyYW1lTG9hZEJsb2NrZWRCeUNvbnRlbnRCbG9ja2VyLCByZXF1ZXN0
LnVybCgpLCBXRUJfVUlfU1RSSU5HKCJUaGUgVVJMIHdhcyBibG9ja2VkIGJ5IGEgY29udGVudCBi
bG9ja2VyIiwgIldlYktpdEVycm9yQmxvY2tlZEJ5Q29udGVudEJsb2NrZXIgZGVzY3JpcHRpb24i
KSk7Ci19Ci0KLVJlc291cmNlRXJyb3IgY2Fubm90U2hvd1VSTEVycm9yKGNvbnN0IFJlc291cmNl
UmVxdWVzdCYgcmVxdWVzdCkKLXsKLSAgICByZXR1cm4gUmVzb3VyY2VFcnJvcihBUEk6OkVycm9y
Ojp3ZWJLaXRFcnJvckRvbWFpbigpLCBrV0tFcnJvckNvZGVDYW5ub3RTaG93VVJMLCByZXF1ZXN0
LnVybCgpLCBXRUJfVUlfU1RSSU5HKCJUaGUgVVJMIGNhbuKAmXQgYmUgc2hvd24iLCAiV2ViS2l0
RXJyb3JDYW5ub3RTaG93VVJMIGRlc2NyaXB0aW9uIikpOwotfQotCi1SZXNvdXJjZUVycm9yIGlu
dGVycnVwdGVkRm9yUG9saWN5Q2hhbmdlRXJyb3IoY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1
ZXN0KQotewotICAgIHJldHVybiBSZXNvdXJjZUVycm9yKEFQSTo6RXJyb3I6OndlYktpdEVycm9y
RG9tYWluKCksIGtXS0Vycm9yQ29kZUZyYW1lTG9hZEludGVycnVwdGVkQnlQb2xpY3lDaGFuZ2Us
IHJlcXVlc3QudXJsKCksIFdFQl9VSV9TVFJJTkcoIkZyYW1lIGxvYWQgaW50ZXJydXB0ZWQiLCAi
V2ViS2l0RXJyb3JGcmFtZUxvYWRJbnRlcnJ1cHRlZEJ5UG9saWN5Q2hhbmdlIGRlc2NyaXB0aW9u
IikpOwotfQotCi0jaWYgRU5BQkxFKENPTlRFTlRfRklMVEVSSU5HKQotUmVzb3VyY2VFcnJvciBi
bG9ja2VkQnlDb250ZW50RmlsdGVyRXJyb3IoY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0
KQotewotICAgIHJldHVybiBSZXNvdXJjZUVycm9yKEFQSTo6RXJyb3I6OndlYktpdEVycm9yRG9t
YWluKCksIGtXS0Vycm9yQ29kZUZyYW1lTG9hZEJsb2NrZWRCeUNvbnRlbnRGaWx0ZXIsIHJlcXVl
c3QudXJsKCksIFdFQl9VSV9TVFJJTkcoIlRoZSBVUkwgd2FzIGJsb2NrZWQgYnkgYSBjb250ZW50
IGZpbHRlciIsICJXZWJLaXRFcnJvckJsb2NrZWRCeUNvbnRlbnRGaWx0ZXIiKSk7Ci19Ci0jZW5k
aWYKLQotUmVzb3VyY2VFcnJvciBjYW5ub3RTaG93TUlNRVR5cGVFcnJvcihjb25zdCBSZXNvdXJj
ZVJlc3BvbnNlJiByZXNwb25zZSkKLXsKLSAgICByZXR1cm4gUmVzb3VyY2VFcnJvcihBUEk6OkVy
cm9yOjp3ZWJLaXRFcnJvckRvbWFpbigpLCBrV0tFcnJvckNvZGVDYW5ub3RTaG93TUlNRVR5cGUs
IHJlc3BvbnNlLnVybCgpLCBXRUJfVUlfU1RSSU5HKCJDb250ZW50IHdpdGggc3BlY2lmaWVkIE1J
TUUgdHlwZSBjYW7igJl0IGJlIHNob3duIiwgIldlYktpdEVycm9yQ2Fubm90U2hvd01JTUVUeXBl
IGRlc2NyaXB0aW9uIikpOwotfQotCi1SZXNvdXJjZUVycm9yIHBsdWdpbldpbGxIYW5kbGVMb2Fk
RXJyb3IoY29uc3QgUmVzb3VyY2VSZXNwb25zZSYgcmVzcG9uc2UpCi17Ci0gICAgcmV0dXJuIFJl
c291cmNlRXJyb3IoQVBJOjpFcnJvcjo6d2ViS2l0RXJyb3JEb21haW4oKSwga1dLRXJyb3JDb2Rl
UGx1Z0luV2lsbEhhbmRsZUxvYWQsIHJlc3BvbnNlLnVybCgpLCBXRUJfVUlfU1RSSU5HKCJQbHVn
LWluIGhhbmRsZWQgbG9hZCIsICJXZWJLaXRFcnJvclBsdWdJbldpbGxIYW5kbGVMb2FkIGRlc2Ny
aXB0aW9uIikpOwotfQotCi1SZXNvdXJjZUVycm9yIGludGVybmFsRXJyb3IoY29uc3QgVVJMJiB1
cmwpCi17Ci0gICAgcmV0dXJuIFJlc291cmNlRXJyb3IoQVBJOjpFcnJvcjo6d2ViS2l0RXJyb3JE
b21haW4oKSwga1dLRXJyb3JJbnRlcm5hbCwgdXJsLCBXRUJfVUlfU1RSSU5HKCJXZWJLaXQgZW5j
b3VudGVyZWQgYW4gaW50ZXJuYWwgZXJyb3IiLCAiV2ViS2l0RXJyb3JJbnRlcm5hbCBkZXNjcmlw
dGlvbiIpKTsKLX0KLQotfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L21hYy9XZWJGcmFtZU5ldHdvcmtpbmdD
b250ZXh0Lm1tIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9tYWMv
V2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dC5tbQppbmRleCAxY2MxNWM2NTQxY2ExNzkzZWJmOGMx
N2I2YTkxYWVhZjVjY2UwN2NjLi4xZWQyZWE1MGY0NTdjODIwYTk3YjIwMzlmNTk5Y2RmN2EzZmE1
OGI1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0
L21hYy9XZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvbWFjL1dlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQubW0K
QEAgLTMyLDYgKzMyLDcgQEAKICNpbmNsdWRlICJXZWJQYWdlLmgiCiAjaW5jbHVkZSAiV2ViUHJv
Y2Vzcy5oIgogI2luY2x1ZGUgPFdlYkNvcmUvQ0ZOZXR3b3JrU1BJLmg+CisjaW5jbHVkZSA8V2Vi
Q29yZS9FcnJvcnMuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0ZyYW1lLmg+CiAjaW5jbHVkZSA8V2Vi
Q29yZS9GcmFtZUxvYWRlci5oPgogI2luY2x1ZGUgPFdlYkNvcmUvRnJhbWVMb2FkZXJDbGllbnQu
aD4KQEAgLTk5LDcgKzEwMCw3IEBAIFN0cmluZyBXZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0Ojpz
b3VyY2VBcHBsaWNhdGlvbklkZW50aWZpZXIoKSBjb25zdAogCiBSZXNvdXJjZUVycm9yIFdlYkZy
YW1lTmV0d29ya2luZ0NvbnRleHQ6OmJsb2NrZWRFcnJvcihjb25zdCBSZXNvdXJjZVJlcXVlc3Qm
IHJlcXVlc3QpIGNvbnN0CiB7Ci0gICAgcmV0dXJuIGZyYW1lKCktPmxvYWRlcigpLmNsaWVudCgp
LmJsb2NrZWRFcnJvcihyZXF1ZXN0KTsKKyAgICByZXR1cm4gV2ViQ29yZTo6YmxvY2tlZEVycm9y
KHJlcXVlc3QpOwogfQogCiBOZXR3b3JrU3RvcmFnZVNlc3Npb24mIFdlYkZyYW1lTmV0d29ya2lu
Z0NvbnRleHQ6OnN0b3JhZ2VTZXNzaW9uKCkgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9ndGsvV2ViUHJpbnRPcGVyYXRpb25HdGsuY3BwIGIvU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL2d0ay9XZWJQcmludE9wZXJhdGlvbkd0ay5j
cHAKaW5kZXggYjYyMDVkYjk0OTUwMTNlNGE4ZTIyMWNkNmJmYjZkODQ5ODM4MzAxMi4uNzBlZjUw
ZTAxOGY2ZTEyZTA2ZTkyYzExMTQ5ZGEwZWM3YjExYWJiNSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL2d0ay9XZWJQcmludE9wZXJhdGlvbkd0ay5jcHAKKysr
IGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL2d0ay9XZWJQcmludE9wZXJhdGlv
bkd0ay5jcHAKQEAgLTMxLDcgKzMxLDcgQEAKICNpbmNsdWRlICJXZWJQYWdlUHJveHlNZXNzYWdl
cy5oIgogI2luY2x1ZGUgIldlYlByb2Nlc3MuaCIKICNpbmNsdWRlIDxXZWJDb3JlL0RvY3VtZW50
TG9hZGVyLmg+Ci0jaW5jbHVkZSA8V2ViQ29yZS9FcnJvcnNHdGsuaD4KKyNpbmNsdWRlIDxXZWJD
b3JlL0Vycm9yc1VuaXguaD4KICNpbmNsdWRlIDxXZWJDb3JlL0ZyYW1lLmg+CiAjaW5jbHVkZSA8
V2ViQ29yZS9JbnRSZWN0Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9Ob3RJbXBsZW1lbnRlZC5oPgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>285912</attachid>
            <date>2016-08-12 05:49:55 -0700</date>
            <delta_ts>2017-03-15 09:58:44 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-156974-20160812154815.patch</filename>
            <type>text/plain</type>
            <size>133189</size>
            <attacher name="Claudio Saavedra">csaavedra</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjA0NDEwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYTNiYjRkNmJiN2MzNjVh
YjU3N2QxMjcwYmIwNTVlMDRkZTdjOTM3Yy4uYjk0MDNjY2RjZDVjYTljZGVkNTNmZjQxYmQyMTY0
ZTk3OWFjZjQxNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEwOCBAQAorMjAxNi0wNS0yMCAgQ2xh
dWRpbyBTYWF2ZWRyYSAgPGNzYWF2ZWRyYUBpZ2FsaWEuY29tPgorCisgICAgICAgIFVuaWZ5aW5n
IEVycm9ycy9XZWJFcnJvcnMgaW50byBXZWJDb3JlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNTY5NzQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICBGcmFtZUxvYWRlckNsaWVudCBlcnJvciBtZXRob2RzIGlu
IFdlYkNvcmUgYW5kIFdlYkVycm9ycyBpbiBXSzIgYXJlCisgICAgICAgIHJlZHVuZGFudC4gRnVy
dGhlcm1vcmUsIEZyYW1lTG9hZGVyQ2xpZW50IGVycm9yIG1ldGhvZHMgZG8gbm90IGRlcGVuZAor
ICAgICAgICBpbiB0aGUgbG9hZGVyIGNsaWVudCBpbnN0YW5jZSBhdCBhbGwuCisKKyAgICAgICAg
UmVtb3ZlIHRoZSBlcnJvciBtZXRob2RzIGZyb20gRnJhbWVMb2FkZXJDbGllbnQgYW5kIGFkb3B0
IHRoZSBXZWJFcnJvcnMKKyAgICAgICAgZnJvbSBXSzIgaW50byBXZWJDb3JlLCBzdGFuZGFsb25l
IG1ldGhvZHMuIE1vdmUgdGhlIEVGTCwgR1RLLCBhbmQgV2luLCBhbmQgTWFjIGltcGxlbWVudGF0
aW9ucworICAgICAgICB0byBXZWJDb3JlL3BsYXRmb3JtLCBhbmQgdXBkYXRlIHRoZSBjb2RlIGV2
ZXJ5d2hlcmUgYWNjb3JkaW5nbHkuCisKKyAgICAgICAgKiBQbGF0Zm9ybUVmbC5jbWFrZToKKyAg
ICAgICAgKiBQbGF0Zm9ybUdUSy5jbWFrZToKKyAgICAgICAgKiBQbGF0Zm9ybU1hYy5jbWFrZToK
KyAgICAgICAgKiBQbGF0Zm9ybVdpbi5jbWFrZToKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJv
ai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogbG9hZGVyL0RvY3VtZW50TG9hZGVyLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50TG9hZGVyOjpjb250aW51ZUFmdGVyQ29udGVudFBv
bGljeSk6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudExvYWRlcjo6aW50ZXJydXB0ZWRGb3JQ
b2xpY3lDaGFuZ2VFcnJvcik6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudExvYWRlcjo6c3Rh
cnRMb2FkaW5nTWFpblJlc291cmNlKToKKyAgICAgICAgKiBsb2FkZXIvRW1wdHlDbGllbnRzLmg6
CisgICAgICAgICogbG9hZGVyL0ZyYW1lTG9hZGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZy
YW1lTG9hZGVyOjpjYW5jZWxsZWRFcnJvcik6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZUxvYWRl
cjo6YmxvY2tlZEVycm9yKToKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lTG9hZGVyOjpibG9ja2Vk
QnlDb250ZW50QmxvY2tlckVycm9yKTogRGVsZXRlZC4KKyAgICAgICAgKiBsb2FkZXIvRnJhbWVM
b2FkZXIuaDoKKyAgICAgICAgKiBsb2FkZXIvRnJhbWVMb2FkZXJDbGllbnQuaDoKKyAgICAgICAg
KiBsb2FkZXIvTmV0c2NhcGVQbHVnSW5TdHJlYW1Mb2FkZXIuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6TmV0c2NhcGVQbHVnSW5TdHJlYW1Mb2FkZXI6OmRpZFJlY2VpdmVSZXNwb25zZSk6CisgICAg
ICAgICogbG9hZGVyL1BvbGljeUNoZWNrZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UG9saWN5
Q2hlY2tlcjo6Y2Fubm90U2hvd01JTUVUeXBlKToKKyAgICAgICAgKFdlYkNvcmU6OlBvbGljeUNo
ZWNrZXI6OmNvbnRpbnVlQWZ0ZXJOYXZpZ2F0aW9uUG9saWN5KToKKyAgICAgICAgKiBsb2FkZXIv
UmVzb3VyY2VMb2FkZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VMb2FkZXI6OmJs
b2NrZWRFcnJvcik6CisgICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZUxvYWRlcjo6YmxvY2tlZEJ5
Q29udGVudEJsb2NrZXJFcnJvcik6CisgICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZUxvYWRlcjo6
Y2Fubm90U2hvd1VSTEVycm9yKToKKyAgICAgICAgKiBsb2FkZXIvYXBwY2FjaGUvQXBwbGljYXRp
b25DYWNoZUhvc3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6QXBwbGljYXRpb25DYWNoZUhvc3Q6
Om1heWJlTG9hZFN5bmNocm9ub3VzbHkpOgorICAgICAgICAqIHBsYXRmb3JtL0Vycm9ycy5jcHA6
IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6d2ViS2l0RXJyb3JEb21haW4pOgorICAgICAgICAq
IHBsYXRmb3JtL0Vycm9ycy5oOiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9lZmwvRXJyb3Jz
RWZsLmNwcDogUmVtb3ZlZC4KKyAgICAgICAgKFdlYkNvcmU6OmNhbmNlbGxlZEVycm9yKTogRGVs
ZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OmJsb2NrZWRFcnJvcik6IERlbGV0ZWQuCisgICAgICAg
IChXZWJDb3JlOjpibG9ja2VkQnlDb250ZW50QmxvY2tlckVycm9yKTogRGVsZXRlZC4KKyAgICAg
ICAgKFdlYkNvcmU6OmNhbm5vdFNob3dVUkxFcnJvcik6IERlbGV0ZWQuCisgICAgICAgIChXZWJD
b3JlOjppbnRlcnJ1cHRlZEZvclBvbGljeUNoYW5nZUVycm9yKTogRGVsZXRlZC4KKyAgICAgICAg
KFdlYkNvcmU6OmNhbm5vdFNob3dNSU1FVHlwZUVycm9yKTogRGVsZXRlZC4KKyAgICAgICAgKFdl
YkNvcmU6OmZpbGVEb2VzTm90RXhpc3RFcnJvcik6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3Jl
OjpwbHVnaW5XaWxsSGFuZGxlTG9hZEVycm9yKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6
OmRvd25sb2FkTmV0d29ya0Vycm9yKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OmRvd25s
b2FkQ2FuY2VsbGVkQnlVc2VyRXJyb3IpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6ZG93
bmxvYWREZXN0aW5hdGlvbkVycm9yKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OnByaW50
RXJyb3IpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6cHJpbnRlck5vdEZvdW5kRXJyb3Ip
OiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6aW52YWxpZFBhZ2VSYW5nZVRvUHJpbnQpOiBE
ZWxldGVkLgorICAgICAgICAqIHBsYXRmb3JtL2VmbC9FcnJvcnNFZmwuaDogUmVtb3ZlZC4KKyAg
ICAgICAgKiBwbGF0Zm9ybS9ndGsvRXJyb3JzR3RrLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmNh
bmNlbGxlZEVycm9yKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OmJsb2NrZWRFcnJvcik6
IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpibG9ja2VkQnlDb250ZW50QmxvY2tlckVycm9y
KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OmNhbm5vdFNob3dVUkxFcnJvcik6IERlbGV0
ZWQuCisgICAgICAgIChXZWJDb3JlOjppbnRlcnJ1cHRlZEZvclBvbGljeUNoYW5nZUVycm9yKTog
RGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OmNhbm5vdFNob3dNSU1FVHlwZUVycm9yKTogRGVs
ZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OmZpbGVEb2VzTm90RXhpc3RFcnJvcik6IERlbGV0ZWQu
CisgICAgICAgIChXZWJDb3JlOjpwbHVnaW5XaWxsSGFuZGxlTG9hZEVycm9yKTogRGVsZXRlZC4K
KyAgICAgICAgKFdlYkNvcmU6OmRvd25sb2FkTmV0d29ya0Vycm9yKTogRGVsZXRlZC4KKyAgICAg
ICAgKFdlYkNvcmU6OmRvd25sb2FkQ2FuY2VsbGVkQnlVc2VyRXJyb3IpOiBEZWxldGVkLgorICAg
ICAgICAoV2ViQ29yZTo6ZG93bmxvYWREZXN0aW5hdGlvbkVycm9yKTogRGVsZXRlZC4KKyAgICAg
ICAgKFdlYkNvcmU6OnByaW50RXJyb3IpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6cHJp
bnRlck5vdEZvdW5kRXJyb3IpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6aW52YWxpZFBh
Z2VSYW5nZVRvUHJpbnQpOiBEZWxldGVkLgorICAgICAgICAqIHBsYXRmb3JtL21hYy9FcnJvcnNN
YWMubW06IFJlbmFtZWQgZnJvbSBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBw
b3J0L21hYy9XZWJFcnJvcnNNYWMubW0uCisgICAgICAgIChXZWJDb3JlOjpjcmVhdGVOU0Vycm9y
KToKKyAgICAgICAgKFdlYkNvcmU6OmNhbmNlbGxlZEVycm9yKToKKyAgICAgICAgKFdlYkNvcmU6
OmZpbGVEb2VzTm90RXhpc3RFcnJvcik6CisgICAgICAgIChXZWJDb3JlOjpibG9ja2VkRXJyb3Ip
OgorICAgICAgICAoV2ViQ29yZTo6YmxvY2tlZEJ5Q29udGVudEJsb2NrZXJFcnJvcik6CisgICAg
ICAgIChXZWJDb3JlOjpjYW5ub3RTaG93VVJMRXJyb3IpOgorICAgICAgICAoV2ViQ29yZTo6aW50
ZXJydXB0ZWRGb3JQb2xpY3lDaGFuZ2VFcnJvcik6CisgICAgICAgIChXZWJDb3JlOjpjYW5ub3RT
aG93TUlNRVR5cGVFcnJvcik6CisgICAgICAgIChXZWJDb3JlOjpwbHVnaW5XaWxsSGFuZGxlTG9h
ZEVycm9yKToKKyAgICAgICAgKFdlYkNvcmU6OmludGVybmFsRXJyb3IpOgorICAgICAgICAqIHBs
YXRmb3JtL3VuaXgvRXJyb3JzVW5peC5jcHA6IFJlbmFtZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ndGsvRXJyb3JzR3RrLmNwcC4KKyAgICAgICAgKFdlYkNvcmU6OmNhbmNlbGxlZEVy
cm9yKToKKyAgICAgICAgKFdlYkNvcmU6OmJsb2NrZWRFcnJvcik6CisgICAgICAgIChXZWJDb3Jl
OjpibG9ja2VkQnlDb250ZW50QmxvY2tlckVycm9yKToKKyAgICAgICAgKFdlYkNvcmU6OmNhbm5v
dFNob3dVUkxFcnJvcik6CisgICAgICAgIChXZWJDb3JlOjppbnRlcnJ1cHRlZEZvclBvbGljeUNo
YW5nZUVycm9yKToKKyAgICAgICAgKFdlYkNvcmU6OmNhbm5vdFNob3dNSU1FVHlwZUVycm9yKToK
KyAgICAgICAgKFdlYkNvcmU6OmZpbGVEb2VzTm90RXhpc3RFcnJvcik6CisgICAgICAgIChXZWJD
b3JlOjpwbHVnaW5XaWxsSGFuZGxlTG9hZEVycm9yKToKKyAgICAgICAgKFdlYkNvcmU6OmRvd25s
b2FkTmV0d29ya0Vycm9yKToKKyAgICAgICAgKFdlYkNvcmU6OmRvd25sb2FkQ2FuY2VsbGVkQnlV
c2VyRXJyb3IpOgorICAgICAgICAoV2ViQ29yZTo6ZG93bmxvYWREZXN0aW5hdGlvbkVycm9yKToK
KyAgICAgICAgKFdlYkNvcmU6OnByaW50RXJyb3IpOgorICAgICAgICAoV2ViQ29yZTo6cHJpbnRl
ck5vdEZvdW5kRXJyb3IpOgorICAgICAgICAoV2ViQ29yZTo6aW52YWxpZFBhZ2VSYW5nZVRvUHJp
bnQpOgorICAgICAgICAoV2ViQ29yZTo6aW50ZXJuYWxFcnJvcik6CisgICAgICAgICogcGxhdGZv
cm0vdW5peC9FcnJvcnNVbml4Lmg6IFJlbmFtZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ndGsvRXJyb3JzR3RrLmguCisKIDIwMTYtMDgtMTIgIFBoaWxpcHBlIE5vcm1hbmQgIDxwbm9y
bWFuZEBpZ2FsaWEuY29tPgogCiAgICAgICAgIFtHU3RyZWFtZXJdIFBlcmZvcm1hbmNlIHByb2Js
ZW1zIHdpdGggYmlnZ2VyIHZpZGVvIHJlc29sdXRpb24gaW4gdGhlIHdlYnJ0YyBtZWRpYSBwbGF5
ZXIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJL
aXQvbWFjL0NoYW5nZUxvZwppbmRleCBjYzYwNjVhZGU3ZmJjYTk0MWQ0NzJjODA1MzQ1Mjc4OGFm
NTg1N2Y3Li4yY2UyZmRhZWRmMzc1ZGEzZWNhMDMyNTA3YzFlOWIxZTgxNmE1YzU4IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9tYWMv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMzMgQEAKKzIwMTYtMDUtMjAgIENsYXVkaW8gU2FhdmVkcmEg
IDxjc2FhdmVkcmFAaWdhbGlhLmNvbT4KKworICAgICAgICBVbmlmeWluZyBFcnJvcnMvV2ViRXJy
b3JzIGludG8gV2ViQ29yZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MTU2OTc0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgRnJhbWVMb2FkZXJDbGllbnQgZXJyb3IgbWV0aG9kcyBpbiBXZWJDb3JlIGFuZCBX
ZWJFcnJvcnMgaW4gV0syIGFyZQorICAgICAgICByZWR1bmRhbnQuIEZ1cnRoZXJtb3JlLCBGcmFt
ZUxvYWRlckNsaWVudCBlcnJvciBtZXRob2RzIGRvIG5vdCBkZXBlbmQKKyAgICAgICAgaW4gdGhl
IGxvYWRlciBjbGllbnQgaW5zdGFuY2UgYXQgYWxsLgorCisgICAgICAgIFJlbW92ZSB0aGUgZXJy
b3IgbWV0aG9kcyBmcm9tIEZyYW1lTG9hZGVyQ2xpZW50IGFuZCBhZG9wdCB0aGUgV2ViRXJyb3Jz
CisgICAgICAgIGZyb20gV0syIGludG8gV2ViQ29yZSwgc3RhbmRhbG9uZSBtZXRob2RzLiBNb3Zl
IHRoZSBFRkwsIEdUSywgYW5kIE1hYyBpbXBsZW1lbnRhdGlvbnMKKyAgICAgICAgdG8gV2ViQ29y
ZS9wbGF0Zm9ybSwgYW5kIHVwZGF0ZSB0aGUgY29kZSBldmVyeXdoZXJlIGFjY29yZGluZ2x5Lgor
CisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuaDoKKyAgICAg
ICAgKiBXZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5tbToKKyAgICAgICAgKFdl
YkZyYW1lTG9hZGVyQ2xpZW50OjpjYW5jZWxsZWRFcnJvcik6IERlbGV0ZWQuCisgICAgICAgIChX
ZWJGcmFtZUxvYWRlckNsaWVudDo6YmxvY2tlZEVycm9yKTogRGVsZXRlZC4KKyAgICAgICAgKFdl
YkZyYW1lTG9hZGVyQ2xpZW50OjpibG9ja2VkQnlDb250ZW50QmxvY2tlckVycm9yKTogRGVsZXRl
ZC4KKyAgICAgICAgKFdlYkZyYW1lTG9hZGVyQ2xpZW50OjpjYW5ub3RTaG93VVJMRXJyb3IpOiBE
ZWxldGVkLgorICAgICAgICAoV2ViRnJhbWVMb2FkZXJDbGllbnQ6OmludGVycnVwdGVkRm9yUG9s
aWN5Q2hhbmdlRXJyb3IpOiBEZWxldGVkLgorICAgICAgICAoV2ViRnJhbWVMb2FkZXJDbGllbnQ6
OmNhbm5vdFNob3dNSU1FVHlwZUVycm9yKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkZyYW1lTG9h
ZGVyQ2xpZW50OjpmaWxlRG9lc05vdEV4aXN0RXJyb3IpOiBEZWxldGVkLgorICAgICAgICAoV2Vi
RnJhbWVMb2FkZXJDbGllbnQ6OnBsdWdpbldpbGxIYW5kbGVMb2FkRXJyb3IpOiBEZWxldGVkLgor
ICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQubW06Cisg
ICAgICAgIChXZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0OjpibG9ja2VkRXJyb3IpOgorICAgICAg
ICAqIFdlYlZpZXcvV2ViSFRNTFJlcHJlc2VudGF0aW9uLm1tOgorICAgICAgICAoLVtXZWJIVE1M
UmVwcmVzZW50YXRpb24gcmVjZWl2ZWREYXRhOndpdGhEYXRhU291cmNlOl0pOgorCiAyMDE2LTA4
LTExICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CiAKICAgICAgICAgUmVncmVzc2lv
bihyMjA0MjY4KTogTWFpbCBjcmFzaGVzIHdoZW4gdHJ5aW5nIHRvIGNvbXBvc2UgYW4gZW1haWwK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0No
YW5nZUxvZwppbmRleCAzOTRjYmNmY2IyYmExNTUwMjliYTQyYTcwZmM0YzIxNGQzYzQ0ZDUwLi42
OGYwNmYzNWRlYzg5YjM3MjEwODMxOTA0YzFjMzJjMTJiM2ZhZTM2IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0x
LDMgKzEsOTMgQEAKKzIwMTYtMDUtMjAgIENsYXVkaW8gU2FhdmVkcmEgIDxjc2FhdmVkcmFAaWdh
bGlhLmNvbT4KKworICAgICAgICBVbmlmeWluZyBFcnJvcnMvV2ViRXJyb3JzIGludG8gV2ViQ29y
ZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTU2OTc0
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgRnJhbWVM
b2FkZXJDbGllbnQgZXJyb3IgbWV0aG9kcyBpbiBXZWJDb3JlIGFuZCBXZWJFcnJvcnMgaW4gV0sy
IGFyZQorICAgICAgICByZWR1bmRhbnQuIEZ1cnRoZXJtb3JlLCBGcmFtZUxvYWRlckNsaWVudCBl
cnJvciBtZXRob2RzIGRvIG5vdCBkZXBlbmQKKyAgICAgICAgaW4gdGhlIGxvYWRlciBjbGllbnQg
aW5zdGFuY2UgYXQgYWxsLgorCisgICAgICAgIFJlbW92ZSB0aGUgZXJyb3IgbWV0aG9kcyBmcm9t
IEZyYW1lTG9hZGVyQ2xpZW50IGFuZCBhZG9wdCB0aGUgV2ViRXJyb3JzCisgICAgICAgIGZyb20g
V0syIGludG8gV2ViQ29yZSwgc3RhbmRhbG9uZSBtZXRob2RzLiBNb3ZlIHRoZSBFRkwsIEdUSywg
YW5kIE1hYyBpbXBsZW1lbnRhdGlvbnMKKyAgICAgICAgdG8gV2ViQ29yZS9wbGF0Zm9ybSwgYW5k
IHVwZGF0ZSB0aGUgY29kZSBldmVyeXdoZXJlIGFjY29yZGluZ2x5LgorCisgICAgICAgICogTmV0
d29ya1Byb2Nlc3MvRG93bmxvYWRzL2VmbC9Eb3dubG9hZFNvdXBFcnJvcnNFZmwuY3BwOiBSZW1v
dmVkLgorICAgICAgICAoV2ViS2l0OjpwbGF0Zm9ybURvd25sb2FkTmV0d29ya0Vycm9yKTogRGVs
ZXRlZC4KKyAgICAgICAgKFdlYktpdDo6cGxhdGZvcm1Eb3dubG9hZERlc3RpbmF0aW9uRXJyb3Ip
OiBEZWxldGVkLgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL0Rvd25sb2Fkcy9ndGsvRG93bmxv
YWRTb3VwRXJyb3JzR3RrLmNwcDoKKyAgICAgICAgKFdlYktpdDo6cGxhdGZvcm1Eb3dubG9hZE5l
dHdvcmtFcnJvcik6IERlbGV0ZWQuCisgICAgICAgIChXZWJLaXQ6OnBsYXRmb3JtRG93bmxvYWRE
ZXN0aW5hdGlvbkVycm9yKTogRGVsZXRlZC4KKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9Eb3du
bG9hZHMvc291cC9Eb3dubG9hZFNvdXBFcnJvcnMuY3BwOiBSZW5hbWVkIGZyb20gU291cmNlL1dl
YktpdDIvTmV0d29ya1Byb2Nlc3MvRG93bmxvYWRzL2d0ay9Eb3dubG9hZFNvdXBFcnJvcnNHdGsu
Y3BwLgorICAgICAgICAoV2ViS2l0OjpwbGF0Zm9ybURvd25sb2FkTmV0d29ya0Vycm9yKToKKyAg
ICAgICAgKFdlYktpdDo6cGxhdGZvcm1Eb3dubG9hZERlc3RpbmF0aW9uRXJyb3IpOgorICAgICAg
ICAqIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtMb2FkLmNwcDoKKyAgICAgICAgKFdlYktpdDo6TmV0
d29ya0xvYWQ6Ondhc0Jsb2NrZWQpOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrTG9hZDo6Y2Fu
bm90U2hvd1VSTCk6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvbWFjL1JlbW90ZU5ldHdvcmtp
bmdDb250ZXh0Lm1tOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVOZXR3b3JraW5nQ29udGV4dDo6
YmxvY2tlZEVycm9yKToKKyAgICAgICAgKiBQbGF0Zm9ybUVmbC5jbWFrZToKKyAgICAgICAgKiBQ
bGF0Zm9ybUdUSy5jbWFrZToKKyAgICAgICAgKiBQbGF0Zm9ybU1hYy5jbWFrZToKKyAgICAgICAg
KiBTaGFyZWQvQVBJL0FQSUVycm9yLmNwcDoKKyAgICAgICAgKEFQSTo6RXJyb3I6OndlYktpdEVy
cm9yRG9tYWluKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2VmbC9ld2tfZXJyb3IuY3BwOgor
ICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdERvd25sb2FkLmNwcDoKKyAgICAgICAg
KiBVSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRFcnJvci5jcHA6CisgICAgICAgICogVUlQcm9jZXNz
L0FQSS9ndGsvV2ViS2l0UHJpdmF0ZS5jcHA6CisgICAgICAgICogVUlQcm9jZXNzL05ldHdvcmsv
Q3VzdG9tUHJvdG9jb2xzL3NvdXAvV2ViU291cEN1c3RvbVByb3RvY29sUmVxdWVzdE1hbmFnZXIu
Y3BwOgorICAgICAgICAqIFdlYktpdDIueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAg
ICAgKiBXZWJQcm9jZXNzL05ldHdvcmsvV2ViTG9hZGVyU3RyYXRlZ3kuY3BwOgorICAgICAgICAq
IFdlYlByb2Nlc3MvTmV0d29yay9XZWJSZXNvdXJjZUxvYWRlci5jcHA6CisgICAgICAgICogV2Vi
UHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJFcnJvcnMuaDogUmVtb3ZlZC4KKyAgICAgICAgKiBX
ZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmNwcDoKKyAgICAg
ICAgKFdlYktpdDo6V2ViRnJhbWVMb2FkZXJDbGllbnQ6OnNob3VsZEZhbGxCYWNrKToKKyAgICAg
ICAgKFdlYktpdDo6V2ViRnJhbWVMb2FkZXJDbGllbnQ6OmNhbmNlbGxlZEVycm9yKTogRGVsZXRl
ZC4KKyAgICAgICAgKFdlYktpdDo6V2ViRnJhbWVMb2FkZXJDbGllbnQ6OmJsb2NrZWRFcnJvcik6
IERlbGV0ZWQuCisgICAgICAgIChXZWJLaXQ6OldlYkZyYW1lTG9hZGVyQ2xpZW50OjpibG9ja2Vk
QnlDb250ZW50QmxvY2tlckVycm9yKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYktpdDo6V2ViRnJh
bWVMb2FkZXJDbGllbnQ6OmNhbm5vdFNob3dVUkxFcnJvcik6IERlbGV0ZWQuCisgICAgICAgIChX
ZWJLaXQ6OldlYkZyYW1lTG9hZGVyQ2xpZW50OjppbnRlcnJ1cHRlZEZvclBvbGljeUNoYW5nZUVy
cm9yKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYktpdDo6V2ViRnJhbWVMb2FkZXJDbGllbnQ6OmNh
bm5vdFNob3dNSU1FVHlwZUVycm9yKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYktpdDo6V2ViRnJh
bWVMb2FkZXJDbGllbnQ6OmZpbGVEb2VzTm90RXhpc3RFcnJvcik6IERlbGV0ZWQuCisgICAgICAg
IChXZWJLaXQ6OldlYkZyYW1lTG9hZGVyQ2xpZW50OjpwbHVnaW5XaWxsSGFuZGxlTG9hZEVycm9y
KTogRGVsZXRlZC4KKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1l
TG9hZGVyQ2xpZW50Lmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJQ
bGF0Zm9ybVN0cmF0ZWdpZXMuY3BwOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBv
cnQvZWZsL1dlYkVycm9yc0VmbC5jcHA6IFJlbW92ZWQuCisgICAgICAgIChXZWJLaXQ6OmNhbmNl
bGxlZEVycm9yKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYktpdDo6YmxvY2tlZEVycm9yKTogRGVs
ZXRlZC4KKyAgICAgICAgKFdlYktpdDo6YmxvY2tlZEJ5Q29udGVudEJsb2NrZXJFcnJvcik6IERl
bGV0ZWQuCisgICAgICAgIChXZWJLaXQ6OmNhbm5vdFNob3dVUkxFcnJvcik6IERlbGV0ZWQuCisg
ICAgICAgIChXZWJLaXQ6OmludGVycnVwdGVkRm9yUG9saWN5Q2hhbmdlRXJyb3IpOiBEZWxldGVk
LgorICAgICAgICAoV2ViS2l0OjpjYW5ub3RTaG93TUlNRVR5cGVFcnJvcik6IERlbGV0ZWQuCisg
ICAgICAgIChXZWJLaXQ6OmZpbGVEb2VzTm90RXhpc3RFcnJvcik6IERlbGV0ZWQuCisgICAgICAg
IChXZWJLaXQ6OnBsdWdpbldpbGxIYW5kbGVMb2FkRXJyb3IpOiBEZWxldGVkLgorICAgICAgICAo
V2ViS2l0OjppbnRlcm5hbEVycm9yKTogRGVsZXRlZC4KKyAgICAgICAgKiBXZWJQcm9jZXNzL1dl
YkNvcmVTdXBwb3J0L2d0ay9XZWJFcnJvcnNHdGsuY3BwOiBSZW1vdmVkLgorICAgICAgICAoV2Vi
S2l0OjpjYW5jZWxsZWRFcnJvcik6IERlbGV0ZWQuCisgICAgICAgIChXZWJLaXQ6OmJsb2NrZWRF
cnJvcik6IERlbGV0ZWQuCisgICAgICAgIChXZWJLaXQ6OmJsb2NrZWRCeUNvbnRlbnRCbG9ja2Vy
RXJyb3IpOiBEZWxldGVkLgorICAgICAgICAoV2ViS2l0OjpjYW5ub3RTaG93VVJMRXJyb3IpOiBE
ZWxldGVkLgorICAgICAgICAoV2ViS2l0OjppbnRlcnJ1cHRlZEZvclBvbGljeUNoYW5nZUVycm9y
KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYktpdDo6Y2Fubm90U2hvd01JTUVUeXBlRXJyb3IpOiBE
ZWxldGVkLgorICAgICAgICAoV2ViS2l0OjpmaWxlRG9lc05vdEV4aXN0RXJyb3IpOiBEZWxldGVk
LgorICAgICAgICAoV2ViS2l0OjpwbHVnaW5XaWxsSGFuZGxlTG9hZEVycm9yKTogRGVsZXRlZC4K
KyAgICAgICAgKFdlYktpdDo6aW50ZXJuYWxFcnJvcik6IERlbGV0ZWQuCisgICAgICAgICogV2Vi
UHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9tYWMvV2ViRXJyb3JzTWFjLm1tOgorICAgICAgICAoV2Vi
S2l0OjpjcmVhdGVOU0Vycm9yKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYktpdDo6Y2FuY2VsbGVk
RXJyb3IpOiBEZWxldGVkLgorICAgICAgICAoV2ViS2l0OjpmaWxlRG9lc05vdEV4aXN0RXJyb3Ip
OiBEZWxldGVkLgorICAgICAgICAoV2ViS2l0OjpibG9ja2VkRXJyb3IpOiBEZWxldGVkLgorICAg
ICAgICAoV2ViS2l0OjpibG9ja2VkQnlDb250ZW50QmxvY2tlckVycm9yKTogRGVsZXRlZC4KKyAg
ICAgICAgKFdlYktpdDo6Y2Fubm90U2hvd1VSTEVycm9yKTogRGVsZXRlZC4KKyAgICAgICAgKFdl
YktpdDo6aW50ZXJydXB0ZWRGb3JQb2xpY3lDaGFuZ2VFcnJvcik6IERlbGV0ZWQuCisgICAgICAg
IChXZWJLaXQ6OmNhbm5vdFNob3dNSU1FVHlwZUVycm9yKTogRGVsZXRlZC4KKyAgICAgICAgKFdl
YktpdDo6cGx1Z2luV2lsbEhhbmRsZUxvYWRFcnJvcik6IERlbGV0ZWQuCisgICAgICAgIChXZWJL
aXQ6OmludGVybmFsRXJyb3IpOiBEZWxldGVkLgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29y
ZVN1cHBvcnQvbWFjL1dlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQubW06CisgICAgICAgIChXZWJL
aXQ6OldlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQ6OmJsb2NrZWRFcnJvcik6CisgICAgICAgICog
V2ViUHJvY2Vzcy9XZWJQYWdlL2d0ay9XZWJQcmludE9wZXJhdGlvbkd0ay5jcHA6CisKIDIwMTYt
MDgtMTEgIEJyYWR5IEVpZHNvbiAgPGJlaWRzb25AYXBwbGUuY29tPgogCiAgICAgICAgIFtXSzJd
IERvbid0IG1vbml0b3IgZ2FtZXBhZHMgYXQgYWxsIHVubGVzcyBhbiBpbnRlcmVzdGVkIFdlYlBh
Z2VQcm94eSBpcyBpbiB0aGUgYWN0aXZlIHdpbmRvdy4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL0NNYWtlTGlzdHMudHh0IGIvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKaW5kZXgg
M2RlYTA0OWQ2OTFkOWRhN2FmMTJmNjNhZWEzZWMwNWRjYzM1YTA5MS4uYzIwNDVhYWRhYmJlYTQw
Nzc5MmQzMmNkYzg4NjU0ZGQ1NDYzNGM0NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ01h
a2VMaXN0cy50eHQKKysrIGIvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKQEAgLTIxMjUs
NiArMjEyNSw3IEBAIHNldChXZWJDb3JlX1NPVVJDRVMKICAgICBwbGF0Zm9ybS9EaXNwbGF5U2xl
ZXBEaXNhYmxlci5jcHAKICAgICBwbGF0Zm9ybS9EcmFnRGF0YS5jcHAKICAgICBwbGF0Zm9ybS9E
cmFnSW1hZ2UuY3BwCisgICAgcGxhdGZvcm0vRXJyb3JzLmNwcAogICAgIHBsYXRmb3JtL0V2ZW50
VHJhY2tpbmdSZWdpb25zLmNwcAogICAgIHBsYXRmb3JtL0ZpbGVDaG9vc2VyLmNwcAogICAgIHBs
YXRmb3JtL0ZpbGVTdHJlYW0uY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9QbGF0Zm9y
bUVmbC5jbWFrZSBiL1NvdXJjZS9XZWJDb3JlL1BsYXRmb3JtRWZsLmNtYWtlCmluZGV4IGU3YjA4
Nzc0OGM1ZjFlZGQ2Mjk3MDhjNGVkODI3ODhjNDgzOTBlY2UuLjdiOThhNzZkYzdiMGMxMTQ4Mzc4
MWRhOGZlNmM3NzVmMWFmYzc1YmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1BsYXRmb3Jt
RWZsLmNtYWtlCisrKyBiL1NvdXJjZS9XZWJDb3JlL1BsYXRmb3JtRWZsLmNtYWtlCkBAIC05OCw3
ICs5OCw2IEBAIGxpc3QoQVBQRU5EIFdlYkNvcmVfU09VUkNFUwogICAgIHBsYXRmb3JtL2VmbC9F
ZmxJbnNwZWN0b3JVdGlsaXRpZXMuY3BwCiAgICAgcGxhdGZvcm0vZWZsL0VmbEtleWJvYXJkVXRp
bGl0aWVzLmNwcAogICAgIHBsYXRmb3JtL2VmbC9FZmxTY3JlZW5VdGlsaXRpZXMuY3BwCi0gICAg
cGxhdGZvcm0vZWZsL0Vycm9yc0VmbC5jcHAKICAgICBwbGF0Zm9ybS9lZmwvRXZlbnRMb29wRWZs
LmNwcAogICAgIHBsYXRmb3JtL2VmbC9GaWxlU3lzdGVtRWZsLmNwcAogICAgIHBsYXRmb3JtL2Vm
bC9Mb2NhbGl6ZWRTdHJpbmdzRWZsLmNwcApAQCAtMjIwLDYgKzIxOSw3IEBAIGxpc3QoQVBQRU5E
IFdlYkNvcmVfU09VUkNFUwogCiAgICAgcGxhdGZvcm0vdGV4dC9oeXBoZW4vSHlwaGVuYXRpb25M
aWJIeXBoZW4uY3BwCiAKKyAgICBwbGF0Zm9ybS91bml4L0Vycm9yc1VuaXguY3BwCiAgICAgcGxh
dGZvcm0vdW5peC9Mb2dnaW5nVW5peC5jcHAKIAogICAgIHJlbmRlcmluZy9SZW5kZXJUaGVtZUVm
bC5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1BsYXRmb3JtR1RLLmNtYWtlIGIvU291
cmNlL1dlYkNvcmUvUGxhdGZvcm1HVEsuY21ha2UKaW5kZXggYTY5ZDAyNjA3ZmMzOTc2YTNkODE0
YjNmMDY5ZGRhMjJkZDMwMGVjNC4uZjJjZjY0ODU4NmUyNjEyODM1Yzc4MWU1NjNkNjdjYmNlMWVh
YmJkMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvUGxhdGZvcm1HVEsuY21ha2UKKysrIGIv
U291cmNlL1dlYkNvcmUvUGxhdGZvcm1HVEsuY21ha2UKQEAgLTE0Nyw3ICsxNDcsNiBAQCBsaXN0
KEFQUEVORCBXZWJDb3JlX1NPVVJDRVMKICAgICBwbGF0Zm9ybS9ncmFwaGljcy94MTEvUGxhdGZv
cm1EaXNwbGF5WDExLmNwcAogICAgIHBsYXRmb3JtL2dyYXBoaWNzL3gxMS9YVW5pcXVlUmVzb3Vy
Y2UuY3BwCiAKLSAgICBwbGF0Zm9ybS9ndGsvRXJyb3JzR3RrLmNwcAogICAgIHBsYXRmb3JtL2d0
ay9NSU1FVHlwZVJlZ2lzdHJ5R3RrLmNwcAogICAgIHBsYXRmb3JtL2d0ay9TY3JvbGxBbmltYXRv
ckd0ay5jcHAKICAgICBwbGF0Zm9ybS9ndGsvVGVtcG9yYXJ5TGlua1N0dWJzLmNwcApAQCAtMTg4
LDYgKzE4Nyw3IEBAIGxpc3QoQVBQRU5EIFdlYkNvcmVfU09VUkNFUwogCiAgICAgcGxhdGZvcm0v
dGV4dC9oeXBoZW4vSHlwaGVuYXRpb25MaWJIeXBoZW4uY3BwCiAKKyAgICBwbGF0Zm9ybS91bml4
L0Vycm9yc1VuaXguY3BwCiAgICAgcGxhdGZvcm0vdW5peC9Mb2dnaW5nVW5peC5jcHAKICkKIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvUGxhdGZvcm1NYWMuY21ha2UgYi9Tb3VyY2UvV2Vi
Q29yZS9QbGF0Zm9ybU1hYy5jbWFrZQppbmRleCA3NTUyY2Q3NWNkMTVjOGJmNjFhZjdkMmEwZWE5
ZmI5MTdmZTA3ZTM5Li5mZGQxNDQyYTUzM2MzOTRkOTViMWQ2NzMzODc5Nzk3ZWU0YzE0MDJjIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9QbGF0Zm9ybU1hYy5jbWFrZQorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9QbGF0Zm9ybU1hYy5jbWFrZQpAQCAtNTg1LDYgKzU4NSw3IEBAIGxpc3QoQVBQRU5E
IFdlYkNvcmVfU09VUkNFUwogICAgIHBsYXRmb3JtL21hYy9DdXJzb3JNYWMubW0KICAgICBwbGF0
Zm9ybS9tYWMvRHJhZ0RhdGFNYWMubW0KICAgICBwbGF0Zm9ybS9tYWMvRHJhZ0ltYWdlTWFjLm1t
CisgICAgcGxhdGZvcm0vbWFjL0Vycm9yc01hYy5tbQogICAgIHBsYXRmb3JtL21hYy9FdmVudExv
b3BNYWMubW0KICAgICBwbGF0Zm9ybS9tYWMvRmlsZVN5c3RlbU1hYy5tbQogICAgIHBsYXRmb3Jt
L21hYy9ISURHYW1lcGFkLmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvUGxhdGZvcm1X
aW4uY21ha2UgYi9Tb3VyY2UvV2ViQ29yZS9QbGF0Zm9ybVdpbi5jbWFrZQppbmRleCAxNGVmYzQz
YmQ3YWZlOTFkMWYxYmYwOWQ5MGQwMWY1N2RjMTdkYThiLi45Mjk5MWFiNjNlYTc1MmRmMWIwYzdk
ZDZhNmM0NjI0Y2I1ODFhNzJkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9QbGF0Zm9ybVdp
bi5jbWFrZQorKysgYi9Tb3VyY2UvV2ViQ29yZS9QbGF0Zm9ybVdpbi5jbWFrZQpAQCAtMTE1LDYg
KzExNSw3IEBAIGxpc3QoQVBQRU5EIFdlYkNvcmVfU09VUkNFUwogICAgIHBsYXRmb3JtL3dpbi9E
ZWZXbmRQcm9jV2luZG93Q2xhc3MuY3BwCiAgICAgcGxhdGZvcm0vd2luL0RyYWdEYXRhV2luLmNw
cAogICAgIHBsYXRmb3JtL3dpbi9EcmFnSW1hZ2VXaW4uY3BwCisgICAgcGxhdGZvcm0vd2luL0Vy
cm9yc1dpbi5jcHAKICAgICBwbGF0Zm9ybS93aW4vRXZlbnRMb29wV2luLmNwcAogICAgIHBsYXRm
b3JtL3dpbi9GaWxlU3lzdGVtV2luLmNwcAogICAgIHBsYXRmb3JtL3dpbi9HRElPYmplY3RDb3Vu
dGVyLmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJv
amVjdC5wYnhwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5w
Ynhwcm9qCmluZGV4IDc3NDcwMDgzNjdmZTY1MGRiODZkZTRkMDkxOGNhMTQ0OWM4YTk3YzYuLjgz
YzUwZGEwMjNkMjNjM2ZkYjk1MDU2NTQzODg2MWMwNDAyOWY3ZWYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTIwMTYsNiArMjAx
Niw3IEBACiAJCTUxMEQ0QTM2MTAzMTY1RUUwMDQ5RUE1NCAvKiBTb2NrZXRTdHJlYW1IYW5kbGVC
YXNlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUx
MEQ0QTMwMTAzMTY1RUUwMDQ5RUE1NCAvKiBTb2NrZXRTdHJlYW1IYW5kbGVCYXNlLmNwcCAqLzsg
fTsKIAkJNTEwRDRBMzcxMDMxNjVFRTAwNDlFQTU0IC8qIFNvY2tldFN0cmVhbUhhbmRsZUJhc2Uu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxMEQ0QTMx
MTAzMTY1RUUwMDQ5RUE1NCAvKiBTb2NrZXRTdHJlYW1IYW5kbGVCYXNlLmggKi87IHNldHRpbmdz
ID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJNTEwRDRBMzgxMDMxNjVFRTAw
NDlFQTU0IC8qIFNvY2tldFN0cmVhbUhhbmRsZUNsaWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTEwRDRBMzIxMDMxNjVFRTAwNDlFQTU0IC8qIFNv
Y2tldFN0cmVhbUhhbmRsZUNsaWVudC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFBy
aXZhdGUsICk7IH07IH07CisJCTUxMTNFNkQ2MUNFMEM3QTQwMDJEOTU2MSAvKiBFcnJvcnMuY3Bw
IGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTExM0U2RDUx
Q0UwQzc5MDAwMkQ5NTYxIC8qIEVycm9ycy5jcHAgKi87IH07CiAJCTUxMUVDMTI3MUM1MEFBQ0Ew
MDMyRjk4MyAvKiBJREJTZXJpYWxpemF0aW9uLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxMUVDMTI1MUM1MEFBNTcwMDMyRjk4MyAvKiBJREJTZXJp
YWxpemF0aW9uLmNwcCAqLzsgfTsKIAkJNTExRUMxMjgxQzUwQUFDQTAwMzJGOTgzIC8qIElEQlNl
cmlhbGl6YXRpb24uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDUxMUVDMTI2MUM1MEFBNTcwMDMyRjk4MyAvKiBJREJTZXJpYWxpemF0aW9uLmggKi87IH07
CiAJCTUxMUVDMTJCMUM1MEFCQkYwMDMyRjk4MyAvKiBTUUxpdGVJREJUcmFuc2FjdGlvbi5jcHAg
aW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MTFFQzEyOTFD
NTBBQkJBMDAzMkY5ODMgLyogU1FMaXRlSURCVHJhbnNhY3Rpb24uY3BwICovOyB9OwpAQCAtMjEx
Niw2ICsyMTE3LDggQEAKIAkJNTE2MTAzQjAxQ0FEQkE3QTAwMTZCNEM3IC8qIElEQlZhbHVlLmNw
cCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxNjEwM0FE
MUNBREI5QTMwMDE2QjRDNyAvKiBJREJWYWx1ZS5jcHAgKi87IH07CiAJCTUxNjJDN0Y0MTFGNzdF
RkIwMDYxMkVGRSAvKiBTY2hlbWVSZWdpc3RyeS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MTYyQzdGMjExRjc3RUZBMDA2MTJFRkUgLyogU2NoZW1l
UmVnaXN0cnkuY3BwICovOyB9OwogCQk1MTYyQzdGNTExRjc3RUZCMDA2MTJFRkUgLyogU2NoZW1l
UmVnaXN0cnkuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDUxNjJDN0YzMTFGNzdFRkIwMDYxMkVGRSAvKiBTY2hlbWVSZWdpc3RyeS5oICovOyBzZXR0aW5n
cyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCTUxNjQ3NjA0MUNFMDkwNUEw
MDkxRjBBOSAvKiBFcnJvcnMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDUxNjQ3NjAzMUNFMDkwMUMwMDkxRjBBOSAvKiBFcnJvcnMuaCAqLzsgc2V0dGlu
Z3MgPSB7QVRUUklCVVRFUyA9IChQdWJsaWMsICk7IH07IH07CisJCTUxNjQ3NjA2MUNFMDkwQjEw
MDkxRjBBOSAvKiBFcnJvcnNNYWMubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA1MTY0NzYwNTFDRTA5MDkxMDA5MUYwQTkgLyogRXJyb3JzTWFjLm1tICov
OyB9OwogCQk1MTY5NTM5NzEzMjlBM0M4MDBCOTJEMDQgLyogSWNvbkRhdGFiYXNlQmFzZS5jcHAg
aW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MTY5NTM5NTEz
MjlBM0M4MDBCOTJEMDQgLyogSWNvbkRhdGFiYXNlQmFzZS5jcHAgKi87IH07CiAJCTUxNjk1Mzk4
MTMyOUEzQzgwMEI5MkQwNCAvKiBJY29uRGF0YWJhc2VCYXNlLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MTY5NTM5NjEzMjlBM0M4MDBCOTJEMDQgLyog
SWNvbkRhdGFiYXNlQmFzZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUs
ICk7IH07IH07CiAJCTUxNkJCNzk0MENFOTFFNjgwMDUxMkY3OSAvKiBKU1RyZWVXYWxrZXJDdXN0
b20uY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTE2
QkI3OTIwQ0U5MUU2ODAwNTEyRjc5IC8qIEpTVHJlZVdhbGtlckN1c3RvbS5jcHAgKi87IH07CkBA
IC05MzQyLDYgKzkzNDUsNyBAQAogCQk1MTBENEEzMDEwMzE2NUVFMDA0OUVBNTQgLyogU29ja2V0
U3RyZWFtSGFuZGxlQmFzZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGgg
PSBTb2NrZXRTdHJlYW1IYW5kbGVCYXNlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJNTEwRDRBMzExMDMxNjVFRTAwNDlFQTU0IC8qIFNvY2tldFN0cmVhbUhhbmRsZUJhc2UuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU29ja2V0U3RyZWFtSGFuZGxlQmFzZS5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1MTBENEEzMjEwMzE2NUVFMDA0OUVBNTQg
LyogU29ja2V0U3RyZWFtSGFuZGxlQ2xpZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IFNvY2tldFN0cmVhbUhhbmRsZUNsaWVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OworCQk1MTEzRTZENTFDRTBDNzkwMDAyRDk1NjEgLyogRXJyb3JzLmNwcCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEVycm9ycy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCTUxMUVDMTI1MUM1MEFBNTcwMDMyRjk4MyAvKiBJREJTZXJpYWxpemF0aW9u
LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IElEQlNlcmlhbGl6YXRp
b24uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1MTFFQzEyNjFDNTBBQTU3MDAz
MkY5ODMgLyogSURCU2VyaWFsaXphdGlvbi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBJREJTZXJpYWxpemF0aW9uLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTUx
MUVDMTI5MUM1MEFCQkEwMDMyRjk4MyAvKiBTUUxpdGVJREJUcmFuc2FjdGlvbi5jcHAgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBTUUxpdGVJREJUcmFuc2FjdGlvbi5jcHA7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC05NDY5LDYgKzk0NzMsOCBAQAogCQk1MTY0
NUI1MjFCOUY4ODlCMDBGNzg5Q0UgLyogSURCVmVyc2lvbkNoYW5nZUV2ZW50LmNwcCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IElEQlZlcnNpb25DaGFuZ2VFdmVudC5jcHA7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTUxNjQ1QjUzMUI5Rjg4OUIwMEY3ODlDRSAv
KiBJREJWZXJzaW9uQ2hhbmdlRXZlbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gSURCVmVyc2lvbkNoYW5nZUV2ZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CTUxNjQ1QjU0MUI5Rjg4RTgwMEY3ODlDRSAvKiBJREJDdXJzb3IuY3BwICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSURCQ3Vyc29yLmNwcDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKKwkJNTE2NDc2MDMxQ0UwOTAxQzAwOTFGMEE5IC8qIEVycm9ycy5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBFcnJvcnMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKKwkJNTE2NDc2MDUxQ0UwOTA5MTAwOTFGMEE5IC8qIEVycm9yc01hYy5tbSAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IEVycm9yc01hYy5tbTsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTE2OTUzOTUxMzI5QTNDODAwQjkyRDA0IC8qIEljb25EYXRh
YmFzZUJhc2UuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSWNvbkRh
dGFiYXNlQmFzZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTUxNjk1Mzk2MTMy
OUEzQzgwMEI5MkQwNCAvKiBJY29uRGF0YWJhc2VCYXNlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IEljb25EYXRhYmFzZUJhc2UuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJNTE2QkI3OTIwQ0U5MUU2ODAwNTEyRjc5IC8qIEpTVHJlZVdhbGtlckN1c3RvbS5jcHAg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU1RyZWVXYWxrZXJDdXN0b20u
Y3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTgwMDQsNiArMTgwMTAsNyBAQAog
CQkJCUE3OTU0NjNEMEI1QzRDODAwMDdCNDM4RiAvKiBEcmFnRGF0YU1hYy5tbSAqLywKIAkJCQlB
N0NGQjNENDBCN0VEMTE4MDA3MEMzMkQgLyogRHJhZ0ltYWdlTWFjLm1tICovLAogCQkJCUUxQkE2
NkYwMTc0MkJEODYwMEMyMDI1MSAvKiBEeW5hbWljTGlua2VySW50ZXJwb3NpbmcuaCAqLywKKwkJ
CQk1MTY0NzYwNTFDRTA5MDkxMDA5MUYwQTkgLyogRXJyb3JzTWFjLm1tICovLAogCQkJCTFDQTE5
RTAzMERDMjU1OTUwMDY1QTk5NCAvKiBFdmVudExvb3BNYWMubW0gKi8sCiAJCQkJNTE0QjNGNzUw
QzcyMjA1NTAwMDUzMERGIC8qIEZpbGVTeXN0ZW1NYWMubW0gKi8sCiAJCQkJOTM1QzQ3NkUwOUFD
NEQ3MzAwQTZBQUI0IC8qIEtleUV2ZW50TWFjLm1tICovLApAQCAtMjI1ODEsNiArMjI1ODgsOCBA
QAogCQkJCUE3QjZFNjlEMEIyOTFBOTYwMEQwNTI5RiAvKiBEcmFnRGF0YS5oICovLAogCQkJCUE3
Q0ZCM0NGMEI3RUQxMEEwMDcwQzMyRCAvKiBEcmFnSW1hZ2UuY3BwICovLAogCQkJCUE3Q0ZCM0Qw
MEI3RUQxMEEwMDcwQzMyRCAvKiBEcmFnSW1hZ2UuaCAqLywKKwkJCQk1MTEzRTZENTFDRTBDNzkw
MDAyRDk1NjEgLyogRXJyb3JzLmNwcCAqLywKKwkJCQk1MTY0NzYwMzFDRTA5MDFDMDA5MUYwQTkg
LyogRXJyb3JzLmggKi8sCiAJCQkJMUNBMTlFMTUwREMyNTVDQTAwNjVBOTk0IC8qIEV2ZW50TG9v
cC5oICovLAogCQkJCTI2MkVDNDFDMUQxMTBCMUYwMEJBNzhGQyAvKiBFdmVudFRyYWNraW5nUmVn
aW9ucy5jcHAgKi8sCiAJCQkJMjYyRUM0MTkxRDA3OEYzRDAwQkE3OEZDIC8qIEV2ZW50VHJhY2tp
bmdSZWdpb25zLmggKi8sCkBAIC0yNTQzMCw2ICsyNTQzOSw3IEBACiAJCQkJMkRFQzY2NTUxQzgy
RDA0MTAwOTk4NDZBIC8qIERPTUhUTUxNZWRpYUVsZW1lbnQuaCBpbiBIZWFkZXJzICovLAogCQkJ
CTg1QkE0RDEzMEFBNjg4NjgwMDg4MDUyRCAvKiBET01IVE1MTWVudUVsZW1lbnQuaCBpbiBIZWFk
ZXJzICovLAogCQkJCTg1OUE5QzREMEFBNUUzQkQwMEI2OTRCMiAvKiBET01IVE1MTWV0YUVsZW1l
bnQuaCBpbiBIZWFkZXJzICovLAorCQkJCTUxNjQ3NjA0MUNFMDkwNUEwMDkxRjBBOSAvKiBFcnJv
cnMuaCBpbiBIZWFkZXJzICovLAogCQkJCTg1RUNCRUY1MEFBNzYyNjkwMDU0NEYwQiAvKiBET01I
VE1MTW9kRWxlbWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJODVERjgxMkIwQUE3Nzg3MjAwNDg2
QUQ3IC8qIERPTUhUTUxPYmplY3RFbGVtZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQkxQTY3QkY2
QjFENEZFNDIzMDA0MTJBQzcgLyogRE9NSFRNTE9MaXN0RWxlbWVudC5oIGluIEhlYWRlcnMgKi8s
CkBAIC0yOTMxMSw2ICsyOTMyMSw3IEBACiAJCQkJRjUyQUQ1RTQxNTM0MjQ1RjAwNTlGQkU2IC8q
IEVtcHR5Q2xpZW50cy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk1MTVCRTE4RjFENTRGNUZCMDBE
RDdDNjggLyogRW1wdHlHYW1lcGFkUHJvdmlkZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJRkQz
MTYwOTIxMkIwMjZGNzAwQzFBMzU5IC8qIEVxdWFsUG93ZXJQYW5uZXIuY3BwIGluIFNvdXJjZXMg
Ki8sCisJCQkJNTE2NDc2MDYxQ0UwOTBCMTAwOTFGMEE5IC8qIEVycm9yc01hYy5tbSBpbiBTb3Vy
Y2VzICovLAogCQkJCTJFQ0Y3QUUxMTAxNjJCNTgwMDQyN0RFNyAvKiBFcnJvckV2ZW50LmNwcCBp
biBTb3VyY2VzICovLAogCQkJCTg1MDMxQjQxMEE0NEVGQzcwMEY5OTJFMCAvKiBFdmVudC5jcHAg
aW4gU291cmNlcyAqLywKIAkJCQk0MTM4RDMzNjEyNDQwNTQ4MDAzMjNEMzMgLyogRXZlbnRDb250
ZXh0LmNwcCBpbiBTb3VyY2VzICovLApAQCAtMzEyOTQsNiArMzEzMDUsNyBAQAogCQkJCTFGQzQw
RkI5MTY1NUNDQjYwMDQwRjI5RSAvKiBTdWJpbWFnZUNhY2hlV2l0aFRpbWVyLmNwcCBpbiBTb3Vy
Y2VzICovLAogCQkJCUY1NUIzREQzMTI1MUYxMkQwMDNFRjI2OSAvKiBTdWJtaXRJbnB1dFR5cGUu
Y3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJOTNFMjI3RTQwQUY1ODlBRDAwRDQ4MzI0IC8qIFN1YnJl
c291cmNlTG9hZGVyLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTUxMTNFNkQ2MUNFMEM3QTQwMDJE
OTU2MSAvKiBFcnJvcnMuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJN0UzN0VGMkUxMzM5MjA4ODAw
QjI5MjUwIC8qIFN1YnJlc291cmNlTG9hZGVyQ0YuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJN0U4
RkFEQzQxOTlBOTVCMTAwNzE0OTY4IC8qIFN1YnJlc291cmNlTG9hZGVyQ29jb2EubW0gaW4gU291
cmNlcyAqLywKIAkJCQk5M0IyRDgxODBGOTkyMEVFMDA2QUU2QjIgLyogU3VkZGVuVGVybWluYXRp
b24ubW0gaW4gU291cmNlcyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9E
b2N1bWVudExvYWRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRG9jdW1lbnRMb2FkZXIu
Y3BwCmluZGV4IDhiNzRkNjQxN2U0NjEwOTBkZDE2ZmQ4ZjYzZWU5M2YwNjJlODVjMjYuLmJjNmUz
ZWE5MDc5NjY0YmNjNjM2OTE1NmQwNWM4MDkwOGIxNjM1ZWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2xvYWRlci9Eb2N1bWVudExvYWRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9h
ZGVyL0RvY3VtZW50TG9hZGVyLmNwcApAQCAtNDEsNiArNDEsNyBAQAogI2luY2x1ZGUgIkRvY3Vt
ZW50LmgiCiAjaW5jbHVkZSAiRG9jdW1lbnRQYXJzZXIuaCIKICNpbmNsdWRlICJEb2N1bWVudFdy
aXRlci5oIgorI2luY2x1ZGUgIkVycm9ycy5oIgogI2luY2x1ZGUgIkV2ZW50LmgiCiAjaW5jbHVk
ZSAiRXZlbnROYW1lcy5oIgogI2luY2x1ZGUgIkV4dGVuc2lvblN0eWxlU2hlZXRzLmgiCkBAIC03
NjksNyArNzcwLDcgQEAgdm9pZCBEb2N1bWVudExvYWRlcjo6Y29udGludWVBZnRlckNvbnRlbnRQ
b2xpY3koUG9saWN5QWN0aW9uIHBvbGljeSkKICAgICBjYXNlIFBvbGljeURvd25sb2FkOiB7CiAg
ICAgICAgIC8vIG1fbWFpblJlc291cmNlIGNhbiBiZSBudWxsLCBlLmcuIHdoZW4gbG9hZGluZyBh
IHN1YnN0aXR1dGUgcmVzb3VyY2UgZnJvbSBhcHBsaWNhdGlvbiBjYWNoZS4KICAgICAgICAgaWYg
KCFtX21haW5SZXNvdXJjZSkgewotICAgICAgICAgICAgbWFpblJlY2VpdmVkRXJyb3IoZnJhbWVM
b2FkZXIoKS0+Y2xpZW50KCkuY2Fubm90U2hvd1VSTEVycm9yKG1fcmVxdWVzdCkpOworICAgICAg
ICAgICAgbWFpblJlY2VpdmVkRXJyb3IoY2Fubm90U2hvd1VSTEVycm9yKG1fcmVxdWVzdCkpOwog
ICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9CiAKQEAgLTg0OCw3ICs4NDksNyBAQCB2b2lk
IERvY3VtZW50TG9hZGVyOjpjb21taXRMb2FkKGNvbnN0IGNoYXIqIGRhdGEsIGludCBsZW5ndGgp
CiAKIFJlc291cmNlRXJyb3IgRG9jdW1lbnRMb2FkZXI6OmludGVycnVwdGVkRm9yUG9saWN5Q2hh
bmdlRXJyb3IoKSBjb25zdAogewotICAgIHJldHVybiBmcmFtZUxvYWRlcigpLT5jbGllbnQoKS5p
bnRlcnJ1cHRlZEZvclBvbGljeUNoYW5nZUVycm9yKHJlcXVlc3QoKSk7CisgICAgcmV0dXJuIFdl
YkNvcmU6OmludGVycnVwdGVkRm9yUG9saWN5Q2hhbmdlRXJyb3IocmVxdWVzdCgpKTsKIH0KIAog
dm9pZCBEb2N1bWVudExvYWRlcjo6c3RvcExvYWRpbmdGb3JQb2xpY3lDaGFuZ2UoKQpAQCAtMTUx
NiwxNCArMTUxNywxNCBAQCB2b2lkIERvY3VtZW50TG9hZGVyOjpzdGFydExvYWRpbmdNYWluUmVz
b3VyY2UoKQogCiAjaWYgRU5BQkxFKENPTlRFTlRfRVhURU5TSU9OUykKICAgICBpZiAobV9tYWlu
UmVzb3VyY2UgJiYgbV9tYWluUmVzb3VyY2UtPmVycm9yT2NjdXJyZWQoKSAmJiBtX2ZyYW1lLT5w
YWdlKCkgJiYgbV9tYWluUmVzb3VyY2UtPnJlc291cmNlRXJyb3IoKS5kb21haW4oKSA9PSBDb250
ZW50RXh0ZW5zaW9uczo6V2ViS2l0Q29udGVudEJsb2NrZXJEb21haW4pIHsKLSAgICAgICAgY2Fu
Y2VsTWFpblJlc291cmNlTG9hZChmcmFtZUxvYWRlcigpLT5ibG9ja2VkQnlDb250ZW50QmxvY2tl
ckVycm9yKG1fcmVxdWVzdCkpOworICAgICAgICBjYW5jZWxNYWluUmVzb3VyY2VMb2FkKFdlYkNv
cmU6OmJsb2NrZWRCeUNvbnRlbnRCbG9ja2VyRXJyb3IobV9yZXF1ZXN0KSk7CiAgICAgICAgIHJl
dHVybjsKICAgICB9CiAjZW5kaWYKIAogICAgIGlmICghbV9tYWluUmVzb3VyY2UpIHsKICAgICAg
ICAgaWYgKCFtX3JlcXVlc3QudXJsKCkuaXNWYWxpZCgpKSB7Ci0gICAgICAgICAgICBjYW5jZWxN
YWluUmVzb3VyY2VMb2FkKGZyYW1lTG9hZGVyKCktPmNsaWVudCgpLmNhbm5vdFNob3dVUkxFcnJv
cihtX3JlcXVlc3QpKTsKKyAgICAgICAgICAgIGNhbmNlbE1haW5SZXNvdXJjZUxvYWQoY2Fubm90
U2hvd1VSTEVycm9yKG1fcmVxdWVzdCkpOwogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9FbXB0eUNsaWVudHMuaCBiL1Nv
dXJjZS9XZWJDb3JlL2xvYWRlci9FbXB0eUNsaWVudHMuaAppbmRleCA5MzZhYzQ4NWE0N2NkODIx
YTJkNzg2OGUyZTcxNDFjNDgwNTMxNjM0Li5mOWVhZTlhOGVjYTM4NWE3MTA4YmNjNWMwZGYxOGVi
ODU0OTJhYzRhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRW1wdHlDbGllbnRz
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0VtcHR5Q2xpZW50cy5oCkBAIC0zMzEsMTkg
KzMzMSw2IEBAIHB1YmxpYzoKICAgICB2b2lkIGNvbW1pdHRlZExvYWQoRG9jdW1lbnRMb2FkZXIq
LCBjb25zdCBjaGFyKiwgaW50KSBvdmVycmlkZSB7IH0KICAgICB2b2lkIGZpbmlzaGVkTG9hZGlu
ZyhEb2N1bWVudExvYWRlciopIG92ZXJyaWRlIHsgfQogCi0gICAgUmVzb3VyY2VFcnJvciBjYW5j
ZWxsZWRFcnJvcihjb25zdCBSZXNvdXJjZVJlcXVlc3QmKSBvdmVycmlkZSB7IHJldHVybiBSZXNv
dXJjZUVycm9yKFJlc291cmNlRXJyb3I6OlR5cGU6OkNhbmNlbGxhdGlvbik7IH0KLSAgICBSZXNv
dXJjZUVycm9yIGJsb2NrZWRFcnJvcihjb25zdCBSZXNvdXJjZVJlcXVlc3QmKSBvdmVycmlkZSB7
IHJldHVybiB7IH07IH0KLSAgICBSZXNvdXJjZUVycm9yIGJsb2NrZWRCeUNvbnRlbnRCbG9ja2Vy
RXJyb3IoY29uc3QgUmVzb3VyY2VSZXF1ZXN0Jikgb3ZlcnJpZGUgeyByZXR1cm4geyB9OyB9Ci0g
ICAgUmVzb3VyY2VFcnJvciBjYW5ub3RTaG93VVJMRXJyb3IoY29uc3QgUmVzb3VyY2VSZXF1ZXN0
Jikgb3ZlcnJpZGUgeyByZXR1cm4geyB9OyB9Ci0gICAgUmVzb3VyY2VFcnJvciBpbnRlcnJ1cHRl
ZEZvclBvbGljeUNoYW5nZUVycm9yKGNvbnN0IFJlc291cmNlUmVxdWVzdCYpIG92ZXJyaWRlIHsg
cmV0dXJuIHsgfTsgfQotI2lmIEVOQUJMRShDT05URU5UX0ZJTFRFUklORykKLSAgICBSZXNvdXJj
ZUVycm9yIGJsb2NrZWRCeUNvbnRlbnRGaWx0ZXJFcnJvcihjb25zdCBSZXNvdXJjZVJlcXVlc3Qm
KSBvdmVycmlkZSB7IHJldHVybiB7IH07IH0KLSNlbmRpZgotCi0gICAgUmVzb3VyY2VFcnJvciBj
YW5ub3RTaG93TUlNRVR5cGVFcnJvcihjb25zdCBSZXNvdXJjZVJlc3BvbnNlJikgb3ZlcnJpZGUg
eyByZXR1cm4geyB9OyB9Ci0gICAgUmVzb3VyY2VFcnJvciBmaWxlRG9lc05vdEV4aXN0RXJyb3Io
Y29uc3QgUmVzb3VyY2VSZXNwb25zZSYpIG92ZXJyaWRlIHsgcmV0dXJuIHsgfTsgfQotICAgIFJl
c291cmNlRXJyb3IgcGx1Z2luV2lsbEhhbmRsZUxvYWRFcnJvcihjb25zdCBSZXNvdXJjZVJlc3Bv
bnNlJikgb3ZlcnJpZGUgeyByZXR1cm4geyB9OyB9Ci0KICAgICBib29sIHNob3VsZEZhbGxCYWNr
KGNvbnN0IFJlc291cmNlRXJyb3ImKSBvdmVycmlkZSB7IHJldHVybiBmYWxzZTsgfQogCiAgICAg
Ym9vbCBjYW5IYW5kbGVSZXF1ZXN0KGNvbnN0IFJlc291cmNlUmVxdWVzdCYpIGNvbnN0IG92ZXJy
aWRlIHsgcmV0dXJuIGZhbHNlOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIv
RnJhbWVMb2FkZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmNwcApp
bmRleCBlZmIwMWIwNjc4ODkwZjljNWM3MjFlMDlkNTZiYTQ0OWZhODgxODgxLi4zZjEyZDc2ZGEx
NjY2MmI2M2RlM2Y3YzI0MThmZTExZDFkOTA3MjBhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9sb2FkZXIvRnJhbWVMb2FkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFt
ZUxvYWRlci5jcHAKQEAgLTU2LDYgKzU2LDcgQEAKICNpbmNsdWRlICJFZGl0b3IuaCIKICNpbmNs
dWRlICJFZGl0b3JDbGllbnQuaCIKICNpbmNsdWRlICJFbGVtZW50LmgiCisjaW5jbHVkZSAiRXJy
b3JzLmgiCiAjaW5jbHVkZSAiRXZlbnQuaCIKICNpbmNsdWRlICJFdmVudEhhbmRsZXIuaCIKICNp
bmNsdWRlICJFdmVudE5hbWVzLmgiCkBAIC0zNDM0LDE5ICszNDM1LDE0IEBAIHZvaWQgRnJhbWVM
b2FkZXI6OnJldHJ5QWZ0ZXJGYWlsZWRDYWNoZU9ubHlNYWluUmVzb3VyY2VMb2FkKCkKIAogUmVz
b3VyY2VFcnJvciBGcmFtZUxvYWRlcjo6Y2FuY2VsbGVkRXJyb3IoY29uc3QgUmVzb3VyY2VSZXF1
ZXN0JiByZXF1ZXN0KSBjb25zdAogewotICAgIFJlc291cmNlRXJyb3IgZXJyb3IgPSBtX2NsaWVu
dC5jYW5jZWxsZWRFcnJvcihyZXF1ZXN0KTsKKyAgICBSZXNvdXJjZUVycm9yIGVycm9yID0gV2Vi
Q29yZTo6Y2FuY2VsbGVkRXJyb3IocmVxdWVzdCk7CiAgICAgZXJyb3Iuc2V0VHlwZShSZXNvdXJj
ZUVycm9yOjpUeXBlOjpDYW5jZWxsYXRpb24pOwogICAgIHJldHVybiBlcnJvcjsKIH0KIAotUmVz
b3VyY2VFcnJvciBGcmFtZUxvYWRlcjo6YmxvY2tlZEJ5Q29udGVudEJsb2NrZXJFcnJvcihjb25z
dCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QpIGNvbnN0Ci17Ci0gICAgcmV0dXJuIG1fY2xpZW50
LmJsb2NrZWRCeUNvbnRlbnRCbG9ja2VyRXJyb3IocmVxdWVzdCk7Ci19Ci0KIFJlc291cmNlRXJy
b3IgRnJhbWVMb2FkZXI6OmJsb2NrZWRFcnJvcihjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVl
c3QpIGNvbnN0CiB7Ci0gICAgUmVzb3VyY2VFcnJvciBlcnJvciA9IG1fY2xpZW50LmJsb2NrZWRF
cnJvcihyZXF1ZXN0KTsKKyAgICBSZXNvdXJjZUVycm9yIGVycm9yID0gV2ViQ29yZTo6YmxvY2tl
ZEVycm9yKHJlcXVlc3QpOwogICAgIGVycm9yLnNldFR5cGUoUmVzb3VyY2VFcnJvcjo6VHlwZTo6
Q2FuY2VsbGF0aW9uKTsKICAgICByZXR1cm4gZXJyb3I7CiB9CkBAIC0zNDU0LDcgKzM0NTAsNyBA
QCBSZXNvdXJjZUVycm9yIEZyYW1lTG9hZGVyOjpibG9ja2VkRXJyb3IoY29uc3QgUmVzb3VyY2VS
ZXF1ZXN0JiByZXF1ZXN0KSBjb25zdAogI2lmIEVOQUJMRShDT05URU5UX0ZJTFRFUklORykKIFJl
c291cmNlRXJyb3IgRnJhbWVMb2FkZXI6OmJsb2NrZWRCeUNvbnRlbnRGaWx0ZXJFcnJvcihjb25z
dCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QpIGNvbnN0CiB7Ci0gICAgUmVzb3VyY2VFcnJvciBl
cnJvciA9IG1fY2xpZW50LmJsb2NrZWRCeUNvbnRlbnRGaWx0ZXJFcnJvcihyZXF1ZXN0KTsKKyAg
ICBSZXNvdXJjZUVycm9yIGVycm9yID0gV2ViQ29yZTo6YmxvY2tlZEJ5Q29udGVudEZpbHRlckVy
cm9yKHJlcXVlc3QpOwogICAgIGVycm9yLnNldFR5cGUoUmVzb3VyY2VFcnJvcjo6VHlwZTo6R2Vu
ZXJhbCk7CiAgICAgcmV0dXJuIGVycm9yOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
bG9hZGVyL0ZyYW1lTG9hZGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIu
aAppbmRleCBjYmIyYTZjMzJjYzliMDk2YzZkNWNmZWNhOTNkYTE1MDIzNmJmNzNlLi5lNWYwOTg4
N2MzODk2MmRiOWI4NWVjNzUxNGZiNTkxYThiZGI1NGI5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9sb2FkZXIvRnJhbWVMb2FkZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJh
bWVMb2FkZXIuaApAQCAtMTcwLDcgKzE3MCw2IEBAIHB1YmxpYzoKICAgICB2b2lkIGhhbmRsZUZh
bGxiYWNrQ29udGVudCgpOwogCiAgICAgV0VCQ09SRV9FWFBPUlQgUmVzb3VyY2VFcnJvciBjYW5j
ZWxsZWRFcnJvcihjb25zdCBSZXNvdXJjZVJlcXVlc3QmKSBjb25zdDsKLSAgICBXRUJDT1JFX0VY
UE9SVCBSZXNvdXJjZUVycm9yIGJsb2NrZWRCeUNvbnRlbnRCbG9ja2VyRXJyb3IoY29uc3QgUmVz
b3VyY2VSZXF1ZXN0JikgY29uc3Q7CiAgICAgUmVzb3VyY2VFcnJvciBibG9ja2VkRXJyb3IoY29u
c3QgUmVzb3VyY2VSZXF1ZXN0JikgY29uc3Q7CiAjaWYgRU5BQkxFKENPTlRFTlRfRklMVEVSSU5H
KQogICAgIFJlc291cmNlRXJyb3IgYmxvY2tlZEJ5Q29udGVudEZpbHRlckVycm9yKGNvbnN0IFJl
c291cmNlUmVxdWVzdCYpIGNvbnN0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVy
L0ZyYW1lTG9hZGVyQ2xpZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXJD
bGllbnQuaAppbmRleCA3ODVmYmUzOWQ2OWI3ZmQ0ZDk0ZDdmOGM0MDI3MTU4YzYzZTllYzhiLi4x
Y2NlYmVlMDQ5YzA5YzM4YTZmNmQ1MmM5YzQxYTFkOTU1Y2FhNjhhIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXJDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9sb2FkZXIvRnJhbWVMb2FkZXJDbGllbnQuaApAQCAtMjI2LDE5ICsyMjYsNiBAQCBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiAgICAgICAgIHZpcnR1YWwgdm9pZCBkaWRSdW5JbnNlY3VyZUNvbnRlbnQo
U2VjdXJpdHlPcmlnaW4qLCBjb25zdCBVUkwmKSA9IDA7CiAgICAgICAgIHZpcnR1YWwgdm9pZCBk
aWREZXRlY3RYU1MoY29uc3QgVVJMJiwgYm9vbCBkaWRCbG9ja0VudGlyZVBhZ2UpID0gMDsKIAot
ICAgICAgICB2aXJ0dWFsIFJlc291cmNlRXJyb3IgY2FuY2VsbGVkRXJyb3IoY29uc3QgUmVzb3Vy
Y2VSZXF1ZXN0JikgPSAwOwotICAgICAgICB2aXJ0dWFsIFJlc291cmNlRXJyb3IgYmxvY2tlZEVy
cm9yKGNvbnN0IFJlc291cmNlUmVxdWVzdCYpID0gMDsKLSAgICAgICAgdmlydHVhbCBSZXNvdXJj
ZUVycm9yIGJsb2NrZWRCeUNvbnRlbnRCbG9ja2VyRXJyb3IoY29uc3QgUmVzb3VyY2VSZXF1ZXN0
JikgPSAwOwotICAgICAgICB2aXJ0dWFsIFJlc291cmNlRXJyb3IgY2Fubm90U2hvd1VSTEVycm9y
KGNvbnN0IFJlc291cmNlUmVxdWVzdCYpID0gMDsKLSAgICAgICAgdmlydHVhbCBSZXNvdXJjZUVy
cm9yIGludGVycnVwdGVkRm9yUG9saWN5Q2hhbmdlRXJyb3IoY29uc3QgUmVzb3VyY2VSZXF1ZXN0
JikgPSAwOwotI2lmIEVOQUJMRShDT05URU5UX0ZJTFRFUklORykKLSAgICAgICAgdmlydHVhbCBS
ZXNvdXJjZUVycm9yIGJsb2NrZWRCeUNvbnRlbnRGaWx0ZXJFcnJvcihjb25zdCBSZXNvdXJjZVJl
cXVlc3QmKSA9IDA7Ci0jZW5kaWYKLQotICAgICAgICB2aXJ0dWFsIFJlc291cmNlRXJyb3IgY2Fu
bm90U2hvd01JTUVUeXBlRXJyb3IoY29uc3QgUmVzb3VyY2VSZXNwb25zZSYpID0gMDsKLSAgICAg
ICAgdmlydHVhbCBSZXNvdXJjZUVycm9yIGZpbGVEb2VzTm90RXhpc3RFcnJvcihjb25zdCBSZXNv
dXJjZVJlc3BvbnNlJikgPSAwOwotICAgICAgICB2aXJ0dWFsIFJlc291cmNlRXJyb3IgcGx1Z2lu
V2lsbEhhbmRsZUxvYWRFcnJvcihjb25zdCBSZXNvdXJjZVJlc3BvbnNlJikgPSAwOwotCiAgICAg
ICAgIHZpcnR1YWwgYm9vbCBzaG91bGRGYWxsQmFjayhjb25zdCBSZXNvdXJjZUVycm9yJikgPSAw
OwogCiAgICAgICAgIHZpcnR1YWwgYm9vbCBjYW5IYW5kbGVSZXF1ZXN0KGNvbnN0IFJlc291cmNl
UmVxdWVzdCYpIGNvbnN0ID0gMDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9O
ZXRzY2FwZVBsdWdJblN0cmVhbUxvYWRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvTmV0
c2NhcGVQbHVnSW5TdHJlYW1Mb2FkZXIuY3BwCmluZGV4IDZiOWEzNDRlYTI4NmE4ZWQwMTM3ZWY0
OTYzM2E0OTIzODYzNTE3ZGUuLjU3MmViY2Y1NjEzMGE5NTc0ODJjODFjZTkyZDljMWQ5MzcxMTJi
OTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9OZXRzY2FwZVBsdWdJblN0cmVh
bUxvYWRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL05ldHNjYXBlUGx1Z0luU3Ry
ZWFtTG9hZGVyLmNwcApAQCAtMzAsNiArMzAsNyBAQAogI2luY2x1ZGUgIk5ldHNjYXBlUGx1Z0lu
U3RyZWFtTG9hZGVyLmgiCiAKICNpbmNsdWRlICJEb2N1bWVudExvYWRlci5oIgorI2luY2x1ZGUg
IkVycm9ycy5oIgogI2luY2x1ZGUgIkZyYW1lTG9hZGVyLmgiCiAjaW5jbHVkZSAiRnJhbWVMb2Fk
ZXJDbGllbnQuaCIKICNpbmNsdWRlIDx3dGYvUmVmLmg+CkBAIC0xMjQsNyArMTI1LDcgQEAgdm9p
ZCBOZXRzY2FwZVBsdWdJblN0cmVhbUxvYWRlcjo6ZGlkUmVjZWl2ZVJlc3BvbnNlKGNvbnN0IFJl
c291cmNlUmVzcG9uc2UmIHJlc3AKIAogICAgIC8vIFN0YXR1cyBjb2RlIGNhbiBiZSBudWxsIHdo
ZW4gc2VydmluZyBmcm9tIGEgV2ViIGFyY2hpdmUuCiAgICAgaWYgKHJlc3BvbnNlLmh0dHBTdGF0
dXNDb2RlKCkgJiYgKHJlc3BvbnNlLmh0dHBTdGF0dXNDb2RlKCkgPCAxMDAgfHwgcmVzcG9uc2Uu
aHR0cFN0YXR1c0NvZGUoKSA+PSA0MDApKQotICAgICAgICBjYW5jZWwoZnJhbWVMb2FkZXIoKS0+
Y2xpZW50KCkuZmlsZURvZXNOb3RFeGlzdEVycm9yKHJlc3BvbnNlKSk7CisgICAgICAgIGNhbmNl
bChmaWxlRG9lc05vdEV4aXN0RXJyb3IocmVzcG9uc2UpKTsKIH0KIAogdm9pZCBOZXRzY2FwZVBs
dWdJblN0cmVhbUxvYWRlcjo6ZGlkUmVjZWl2ZURhdGEoY29uc3QgY2hhciogZGF0YSwgdW5zaWdu
ZWQgbGVuZ3RoLCBsb25nIGxvbmcgZW5jb2RlZERhdGFMZW5ndGgsIERhdGFQYXlsb2FkVHlwZSBk
YXRhUGF5bG9hZFR5cGUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvUG9saWN5
Q2hlY2tlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvUG9saWN5Q2hlY2tlci5jcHAKaW5k
ZXggMjljNjUwNzc3ODAzZGM5NzZiZGUzMjYzMDc0MTk4NTQwYWQ5YzA0OS4uMWFmNWNlNzZiYzZh
NDRhNzBiMWU2NzgwNWZhNGRiYjQzZjE0NDYyOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
bG9hZGVyL1BvbGljeUNoZWNrZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Qb2xp
Y3lDaGVja2VyLmNwcApAQCAtMzUsNiArMzUsNyBAQAogI2luY2x1ZGUgIkNvbnRlbnRTZWN1cml0
eVBvbGljeS5oIgogI2luY2x1ZGUgIkRPTVdpbmRvdy5oIgogI2luY2x1ZGUgIkRvY3VtZW50TG9h
ZGVyLmgiCisjaW5jbHVkZSAiRXJyb3JzLmgiCiAjaW5jbHVkZSAiRXZlbnROYW1lcy5oIgogI2lu
Y2x1ZGUgIkZvcm1TdGF0ZS5oIgogI2luY2x1ZGUgIkZyYW1lLmgiCkBAIC0xODUsNyArMTg2LDcg
QEAgdm9pZCBQb2xpY3lDaGVja2VyOjpzdG9wQ2hlY2soKQogCiB2b2lkIFBvbGljeUNoZWNrZXI6
OmNhbm5vdFNob3dNSU1FVHlwZShjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiByZXNwb25zZSkKIHsK
LSAgICBoYW5kbGVVbmltcGxlbWVudGFibGVQb2xpY3kobV9mcmFtZS5sb2FkZXIoKS5jbGllbnQo
KS5jYW5ub3RTaG93TUlNRVR5cGVFcnJvcihyZXNwb25zZSkpOworICAgIGhhbmRsZVVuaW1wbGVt
ZW50YWJsZVBvbGljeShjYW5ub3RTaG93TUlNRVR5cGVFcnJvcihyZXNwb25zZSkpOwogfQogCiB2
b2lkIFBvbGljeUNoZWNrZXI6OmNvbnRpbnVlTG9hZEFmdGVyV2lsbFN1Ym1pdEZvcm0oUG9saWN5
QWN0aW9uKQpAQCAtMjE3LDcgKzIxOCw3IEBAIHZvaWQgUG9saWN5Q2hlY2tlcjo6Y29udGludWVB
ZnRlck5hdmlnYXRpb25Qb2xpY3koUG9saWN5QWN0aW9uIHBvbGljeSkKICAgICAgICAgICAgIFJl
c291cmNlUmVxdWVzdCByZXF1ZXN0KGNhbGxiYWNrLnJlcXVlc3QoKSk7CiAKICAgICAgICAgICAg
IGlmICghbV9mcmFtZS5sb2FkZXIoKS5jbGllbnQoKS5jYW5IYW5kbGVSZXF1ZXN0KHJlcXVlc3Qp
KSB7Ci0gICAgICAgICAgICAgICAgaGFuZGxlVW5pbXBsZW1lbnRhYmxlUG9saWN5KG1fZnJhbWUu
bG9hZGVyKCkuY2xpZW50KCkuY2Fubm90U2hvd1VSTEVycm9yKGNhbGxiYWNrLnJlcXVlc3QoKSkp
OworICAgICAgICAgICAgICAgIGhhbmRsZVVuaW1wbGVtZW50YWJsZVBvbGljeShjYW5ub3RTaG93
VVJMRXJyb3IoY2FsbGJhY2sucmVxdWVzdCgpKSk7CiAgICAgICAgICAgICAgICAgY2FsbGJhY2su
Y2xlYXJSZXF1ZXN0KCk7CiAgICAgICAgICAgICAgICAgc2hvdWxkQ29udGludWUgPSBmYWxzZTsK
ICAgICAgICAgICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9SZXNvdXJj
ZUxvYWRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvUmVzb3VyY2VMb2FkZXIuY3BwCmlu
ZGV4IGM3MWI2YjI0NGIxNDkxYWExOWJmNGJjYzAzOWMwYWY1ZDQ5YTI1MzMuLjBhODc2OWViNTcz
OWQ0NDllMGU3ZDQ3ODJlNzA5NzU5YzgyOGZiZjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2xvYWRlci9SZXNvdXJjZUxvYWRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL1Jl
c291cmNlTG9hZGVyLmNwcApAQCAtMzYsNiArMzYsNyBAQAogI2luY2x1ZGUgIkRpYWdub3N0aWNM
b2dnaW5nQ2xpZW50LmgiCiAjaW5jbHVkZSAiRGlhZ25vc3RpY0xvZ2dpbmdLZXlzLmgiCiAjaW5j
bHVkZSAiRG9jdW1lbnRMb2FkZXIuaCIKKyNpbmNsdWRlICJFcnJvcnMuaCIKICNpbmNsdWRlICJG
cmFtZS5oIgogI2luY2x1ZGUgIkZyYW1lTG9hZGVyLmgiCiAjaW5jbHVkZSAiRnJhbWVMb2FkZXJD
bGllbnQuaCIKQEAgLTYxMywxNyArNjE0LDE3IEBAIFJlc291cmNlRXJyb3IgUmVzb3VyY2VMb2Fk
ZXI6OmNhbmNlbGxlZEVycm9yKCkKIAogUmVzb3VyY2VFcnJvciBSZXNvdXJjZUxvYWRlcjo6Ymxv
Y2tlZEVycm9yKCkKIHsKLSAgICByZXR1cm4gZnJhbWVMb2FkZXIoKS0+Y2xpZW50KCkuYmxvY2tl
ZEVycm9yKG1fcmVxdWVzdCk7CisgICAgcmV0dXJuIFdlYkNvcmU6OmJsb2NrZWRFcnJvcihtX3Jl
cXVlc3QpOwogfQogCiBSZXNvdXJjZUVycm9yIFJlc291cmNlTG9hZGVyOjpibG9ja2VkQnlDb250
ZW50QmxvY2tlckVycm9yKCkKIHsKLSAgICByZXR1cm4gZnJhbWVMb2FkZXIoKS0+Y2xpZW50KCku
YmxvY2tlZEJ5Q29udGVudEJsb2NrZXJFcnJvcihtX3JlcXVlc3QpOworICAgIHJldHVybiBXZWJD
b3JlOjpibG9ja2VkQnlDb250ZW50QmxvY2tlckVycm9yKG1fcmVxdWVzdCk7CiB9CiAKIFJlc291
cmNlRXJyb3IgUmVzb3VyY2VMb2FkZXI6OmNhbm5vdFNob3dVUkxFcnJvcigpCiB7Ci0gICAgcmV0
dXJuIGZyYW1lTG9hZGVyKCktPmNsaWVudCgpLmNhbm5vdFNob3dVUkxFcnJvcihtX3JlcXVlc3Qp
OworICAgIHJldHVybiBXZWJDb3JlOjpjYW5ub3RTaG93VVJMRXJyb3IobV9yZXF1ZXN0KTsKIH0K
IAogUmVzb3VyY2VSZXF1ZXN0IFJlc291cmNlTG9hZGVyOjp3aWxsU2VuZFJlcXVlc3QoUmVzb3Vy
Y2VIYW5kbGUqLCBSZXNvdXJjZVJlcXVlc3QmJiByZXF1ZXN0LCBSZXNvdXJjZVJlc3BvbnNlJiYg
cmVkaXJlY3RSZXNwb25zZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9hcHBj
YWNoZS9BcHBsaWNhdGlvbkNhY2hlSG9zdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvYXBw
Y2FjaGUvQXBwbGljYXRpb25DYWNoZUhvc3QuY3BwCmluZGV4IGFiNzRlYzUxYzg4NTRmNDA1ZjNj
YjAwNTg1NTZlYmQ5Nzc5ZjYwNTMuLjE1MTNmZDQzNGVjN2MyOWNmZTYyNmU0ZmZkZGM5M2RjYmFk
ZDA2OGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9hcHBjYWNoZS9BcHBsaWNh
dGlvbkNhY2hlSG9zdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2FwcGNhY2hlL0Fw
cGxpY2F0aW9uQ2FjaGVIb3N0LmNwcApAQCAtMzIsNiArMzIsNyBAQAogI2luY2x1ZGUgIkNvbnRl
bnRTZWN1cml0eVBvbGljeS5oIgogI2luY2x1ZGUgIkRvY3VtZW50TG9hZGVyLmgiCiAjaW5jbHVk
ZSAiRE9NQXBwbGljYXRpb25DYWNoZS5oIgorI2luY2x1ZGUgIkVycm9ycy5oIgogI2luY2x1ZGUg
IkZpbGVTeXN0ZW0uaCIKICNpbmNsdWRlICJGcmFtZS5oIgogI2luY2x1ZGUgIkZyYW1lTG9hZGVy
LmgiCkBAIC0yNDQsNyArMjQ1LDcgQEAgYm9vbCBBcHBsaWNhdGlvbkNhY2hlSG9zdDo6bWF5YmVM
b2FkU3luY2hyb25vdXNseShSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIFJlc28KICAgICAgICAg
ICAgICAgICBkYXRhID0gU2hhcmVkQnVmZmVyOjpjcmVhdGVXaXRoQ29udGVudHNPZkZpbGUocmVz
b3VyY2UtPnBhdGgoKSk7CiAgICAgICAgIH0KICAgICAgICAgaWYgKCFkYXRhKQotICAgICAgICAg
ICAgZXJyb3IgPSBtX2RvY3VtZW50TG9hZGVyLmZyYW1lTG9hZGVyKCktPmNsaWVudCgpLmNhbm5v
dFNob3dVUkxFcnJvcihyZXF1ZXN0KTsKKyAgICAgICAgICAgIGVycm9yID0gY2Fubm90U2hvd1VS
TEVycm9yKHJlcXVlc3QpOwogICAgICAgICBlbHNlCiAgICAgICAgICAgICByZXNwb25zZSA9IHJl
c291cmNlLT5yZXNwb25zZSgpOwogICAgICAgICByZXR1cm4gdHJ1ZTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL0Vycm9ycy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9FcnJvcnMuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjAwNDkzNTBkYjI5MWIyZDM3ZDJlNTZmMGQ5OTlhNjUz
OWM4ZWZiYmYKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9FcnJv
cnMuY3BwCkBAIC0wLDAgKzEsMTUgQEAKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJF
cnJvcnMuaCIKKworI2luY2x1ZGUgPHd0Zi9OZXZlckRlc3Ryb3llZC5oPgorI2luY2x1ZGUgPHd0
Zi90ZXh0L1dURlN0cmluZy5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NvbnN0IFdURjo6
U3RyaW5nJiB3ZWJLaXRFcnJvckRvbWFpbigpCit7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVk
PFdURjo6U3RyaW5nPiB3ZWJLaXRFcnJvckRvbWFpblN0cmluZyhBU0NJSUxpdGVyYWwoIldlYktp
dEVycm9yRG9tYWluIikpOworICAgIHJldHVybiB3ZWJLaXRFcnJvckRvbWFpblN0cmluZzsKK30K
KworfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vRXJyb3JzLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9FcnJvcnMuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5hOWNiZmJiNTYxZjhkNTMy
OGVmNDQxYmUyOTE0Y2VmNGFhY2M3ZGI4Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vRXJyb3JzLmgKQEAgLTAsMCArMSw2MyBAQAorLyoKKyAqIENvcHlyaWdodCAo
QykgMjAwNiwgMjAwNywgMjAwOCwgMjAwOSwgMjAxMCwgMjAxMSwgMjAxMiBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTIgR29vZ2xlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxNiBJZ2FsaWEsIFMuTC4KKyAq
CisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqCisgKiAxLiAgUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIuIAorICogMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBt
dXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICog
ICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZSBkaXN0cmlidXRpb24uIAorICogMy4gIE5laXRoZXIgdGhlIG5hbWUgb2YgQXBwbGUgSW5jLiAo
IkFwcGxlIikgbm9yIHRoZSBuYW1lcyBvZgorICogICAgIGl0cyBjb250cmlidXRvcnMgbWF5IGJl
IHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQKKyAqICAgICBmcm9t
IHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24u
IAorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQU5EIElUUyBDT05U
UklCVVRPUlMgIkFTIElTIiBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElF
UywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECisgKiBXQVJSQU5U
SUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBP
U0UgQVJFCisgKiBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBPUiBJVFMgQ09O
VFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZCisgKiBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUworICogKElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdP
T0RTIE9SIFNFUlZJQ0VTOworICogTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJV
U0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5ECisgKiBPTiBBTlkgVEhFT1JZ
IE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1Ig
VE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBB
TlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GCisgKiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgRXJy
b3JzX2gKKyNkZWZpbmUgRXJyb3JzX2gKKworbmFtZXNwYWNlIFdURiB7CitjbGFzcyBTdHJpbmc7
Cit9CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKK2NsYXNzIFJlc291cmNlRXJyb3I7CitjbGFzcyBS
ZXNvdXJjZVJlcXVlc3Q7CitjbGFzcyBSZXNvdXJjZVJlc3BvbnNlOworY2xhc3MgVVJMOworCitX
RUJDT1JFX0VYUE9SVCBSZXNvdXJjZUVycm9yIGNhbmNlbGxlZEVycm9yKGNvbnN0IFJlc291cmNl
UmVxdWVzdCYpOworV0VCQ09SRV9FWFBPUlQgUmVzb3VyY2VFcnJvciBibG9ja2VkRXJyb3IoY29u
c3QgUmVzb3VyY2VSZXF1ZXN0Jik7CitXRUJDT1JFX0VYUE9SVCBSZXNvdXJjZUVycm9yIGJsb2Nr
ZWRCeUNvbnRlbnRCbG9ja2VyRXJyb3IoY29uc3QgUmVzb3VyY2VSZXF1ZXN0Jik7CitXRUJDT1JF
X0VYUE9SVCBSZXNvdXJjZUVycm9yIGNhbm5vdFNob3dVUkxFcnJvcihjb25zdCBSZXNvdXJjZVJl
cXVlc3QmKTsKK1dFQkNPUkVfRVhQT1JUIFJlc291cmNlRXJyb3IgaW50ZXJydXB0ZWRGb3JQb2xp
Y3lDaGFuZ2VFcnJvcihjb25zdCBSZXNvdXJjZVJlcXVlc3QmKTsKKyNpZiBFTkFCTEUoQ09OVEVO
VF9GSUxURVJJTkcpCitXRUJDT1JFX0VYUE9SVCBSZXNvdXJjZUVycm9yIGJsb2NrZWRCeUNvbnRl
bnRGaWx0ZXJFcnJvcihjb25zdCBSZXNvdXJjZVJlcXVlc3QmKTsKKyNlbmRpZgorCitXRUJDT1JF
X0VYUE9SVCBSZXNvdXJjZUVycm9yIGNhbm5vdFNob3dNSU1FVHlwZUVycm9yKGNvbnN0IFJlc291
cmNlUmVzcG9uc2UmKTsKK1dFQkNPUkVfRVhQT1JUIFJlc291cmNlRXJyb3IgZmlsZURvZXNOb3RF
eGlzdEVycm9yKGNvbnN0IFJlc291cmNlUmVzcG9uc2UmKTsKK1dFQkNPUkVfRVhQT1JUIFJlc291
cmNlRXJyb3IgcGx1Z2luV2lsbEhhbmRsZUxvYWRFcnJvcihjb25zdCBSZXNvdXJjZVJlc3BvbnNl
Jik7CisKK1dFQkNPUkVfRVhQT1JUIFJlc291cmNlRXJyb3IgaW50ZXJuYWxFcnJvcihjb25zdCBV
UkwmKTsKKworV0VCQ09SRV9FWFBPUlQgY29uc3QgV1RGOjpTdHJpbmcmIHdlYktpdEVycm9yRG9t
YWluKCk7CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIEVycm9yc19oCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9lZmwvRXJyb3JzRWZsLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2VmbC9FcnJvcnNFZmwuY3BwCmRlbGV0ZWQgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAzMjgyNmU1NjcyNzMwM2JlZmRlMjljMDhkZThjNTdhYjQ5ZGJlMzlhLi4w
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2VmbC9FcnJvcnNFZmwuY3BwCisrKyAvZGV2L251bGwKQEAgLTEsMTA1ICsw
LDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTIgSW50ZWwgQ29ycG9yYXRpb24uIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBt
ZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBp
biB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwotICogQU5EIEFO
WSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sCi0gKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBO
TyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKLSAqIEJFIExJQUJM
RSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFS
WSwgT1IKLSAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFBST0NVUkVNRU5UIE9GCi0gKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKLSAqIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOCi0gKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQotICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgotICogVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNpbmNsdWRlICJjb25maWcuaCIKLSNpbmNsdWRl
ICJFcnJvcnNFZmwuaCIKLQotI2luY2x1ZGUgIlJlc291cmNlRXJyb3IuaCIKLSNpbmNsdWRlICJS
ZXNvdXJjZVJlcXVlc3QuaCIKLSNpbmNsdWRlICJSZXNvdXJjZVJlc3BvbnNlLmgiCi0KLW5hbWVz
cGFjZSBXZWJDb3JlIHsKLQotUmVzb3VyY2VFcnJvciBjYW5jZWxsZWRFcnJvcihjb25zdCBSZXNv
dXJjZVJlcXVlc3QmIHJlcXVlc3QpCi17Ci0gICAgcmV0dXJuIFJlc291cmNlRXJyb3IoZXJyb3JE
b21haW5OZXR3b3JrLCBOZXR3b3JrRXJyb3JDYW5jZWxsZWQsIHJlcXVlc3QudXJsKCksIEFTQ0lJ
TGl0ZXJhbCgiTG9hZCByZXF1ZXN0IGNhbmNlbGxlZCIpKTsKLX0KLQotUmVzb3VyY2VFcnJvciBi
bG9ja2VkRXJyb3IoY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0KQotewotICAgIHJldHVy
biBSZXNvdXJjZUVycm9yKGVycm9yRG9tYWluUG9saWN5LCBQb2xpY3lFcnJvckNhbm5vdFVzZVJl
c3RyaWN0ZWRQb3J0LCByZXF1ZXN0LnVybCgpLCBBU0NJSUxpdGVyYWwoIk5vdCBhbGxvd2VkIHRv
IHVzZSByZXN0cmljdGVkIG5ldHdvcmsgcG9ydCIpKTsKLX0KLQotUmVzb3VyY2VFcnJvciBibG9j
a2VkQnlDb250ZW50QmxvY2tlckVycm9yKGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCkK
LXsKLSAgICByZXR1cm4gUmVzb3VyY2VFcnJvcihlcnJvckRvbWFpblBvbGljeSwgUG9saWN5RXJy
b3JCbG9ja2VkQnlDb250ZW50QmxvY2tlciwgcmVxdWVzdC51cmwoKSwgQVNDSUlMaXRlcmFsKCJC
bG9ja2VkIGJ5IGNvbnRlbnQgYmxvY2tlciIpKTsKLX0KLQotUmVzb3VyY2VFcnJvciBjYW5ub3RT
aG93VVJMRXJyb3IoY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0KQotewotICAgIHJldHVy
biBSZXNvdXJjZUVycm9yKGVycm9yRG9tYWluUG9saWN5LCBQb2xpY3lFcnJvckNhbm5vdFNob3dV
UkwsIHJlcXVlc3QudXJsKCksIEFTQ0lJTGl0ZXJhbCgiVVJMIGNhbm5vdCBiZSBzaG93biIpKTsK
LX0KLQotUmVzb3VyY2VFcnJvciBpbnRlcnJ1cHRlZEZvclBvbGljeUNoYW5nZUVycm9yKGNvbnN0
IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCkKLXsKLSAgICByZXR1cm4gUmVzb3VyY2VFcnJvcihl
cnJvckRvbWFpblBvbGljeSwgUG9saWN5RXJyb3JGcmFtZUxvYWRJbnRlcnJ1cHRlZEJ5UG9saWN5
Q2hhbmdlLCByZXF1ZXN0LnVybCgpLCBBU0NJSUxpdGVyYWwoIkZyYW1lIGxvYWQgd2FzIGludGVy
cnVwdGVkIikpOwotfQotCi1SZXNvdXJjZUVycm9yIGNhbm5vdFNob3dNSU1FVHlwZUVycm9yKGNv
bnN0IFJlc291cmNlUmVzcG9uc2UmIHJlc3BvbnNlKQotewotICAgIHJldHVybiBSZXNvdXJjZUVy
cm9yKGVycm9yRG9tYWluUG9saWN5LCBQb2xpY3lFcnJvckNhbm5vdFNob3dNaW1lVHlwZSwgcmVz
cG9uc2UudXJsKCksIEFTQ0lJTGl0ZXJhbCgiQ29udGVudCB3aXRoIHRoZSBzcGVjaWZpZWQgTUlN
RSB0eXBlIGNhbm5vdCBiZSBzaG93biIpKTsKLX0KLQotUmVzb3VyY2VFcnJvciBmaWxlRG9lc05v
dEV4aXN0RXJyb3IoY29uc3QgUmVzb3VyY2VSZXNwb25zZSYgcmVzcG9uc2UpCi17Ci0gICAgcmV0
dXJuIFJlc291cmNlRXJyb3IoZXJyb3JEb21haW5OZXR3b3JrLCBOZXR3b3JrRXJyb3JGaWxlRG9l
c05vdEV4aXN0LCByZXNwb25zZS51cmwoKSwgQVNDSUlMaXRlcmFsKCJGaWxlIGRvZXMgbm90IGV4
aXN0IikpOwotfQotCi1SZXNvdXJjZUVycm9yIHBsdWdpbldpbGxIYW5kbGVMb2FkRXJyb3IoY29u
c3QgUmVzb3VyY2VSZXNwb25zZSYgcmVzcG9uc2UpCi17Ci0gICAgcmV0dXJuIFJlc291cmNlRXJy
b3IoZXJyb3JEb21haW5QbHVnaW4sIFBsdWdpbkVycm9yV2lsbEhhbmRsZUxvYWQsIHJlc3BvbnNl
LnVybCgpLCBBU0NJSUxpdGVyYWwoIlBsdWdpbiB3aWxsIGhhbmRsZSBsb2FkIikpOwotfQotCi1S
ZXNvdXJjZUVycm9yIGRvd25sb2FkTmV0d29ya0Vycm9yKGNvbnN0IFJlc291cmNlRXJyb3ImIG5l
dHdvcmtFcnJvcikKLXsKLSAgICByZXR1cm4gUmVzb3VyY2VFcnJvcihlcnJvckRvbWFpbkRvd25s
b2FkLCBEb3dubG9hZEVycm9yTmV0d29yaywgbmV0d29ya0Vycm9yLmZhaWxpbmdVUkwoKSwgbmV0
d29ya0Vycm9yLmxvY2FsaXplZERlc2NyaXB0aW9uKCkpOwotfQotCi1SZXNvdXJjZUVycm9yIGRv
d25sb2FkQ2FuY2VsbGVkQnlVc2VyRXJyb3IoY29uc3QgUmVzb3VyY2VSZXNwb25zZSYgcmVzcG9u
c2UpCi17Ci0gICAgcmV0dXJuIFJlc291cmNlRXJyb3IoZXJyb3JEb21haW5Eb3dubG9hZCwgRG93
bmxvYWRFcnJvckNhbmNlbGxlZEJ5VXNlciwgcmVzcG9uc2UudXJsKCksIEFTQ0lJTGl0ZXJhbCgi
VXNlciBjYW5jZWxsZWQgdGhlIGRvd25sb2FkIikpOwotfQotCi1SZXNvdXJjZUVycm9yIGRvd25s
b2FkRGVzdGluYXRpb25FcnJvcihjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiByZXNwb25zZSwgY29u
c3QgU3RyaW5nJiBlcnJvck1lc3NhZ2UpCi17Ci0gICAgcmV0dXJuIFJlc291cmNlRXJyb3IoZXJy
b3JEb21haW5Eb3dubG9hZCwgRG93bmxvYWRFcnJvckRlc3RpbmF0aW9uLCByZXNwb25zZS51cmwo
KSwgZXJyb3JNZXNzYWdlKTsKLX0KLQotUmVzb3VyY2VFcnJvciBwcmludEVycm9yKGNvbnN0IFVS
TCYgZmFpbGluZ1VSTCwgY29uc3QgU3RyaW5nJiBlcnJvck1lc3NhZ2UpCi17Ci0gICAgcmV0dXJu
IFJlc291cmNlRXJyb3IoZXJyb3JEb21haW5QcmludCwgUHJpbnRFcnJvckdlbmVyYWwsIGZhaWxp
bmdVUkwsIGVycm9yTWVzc2FnZSk7Ci19Ci0KLVJlc291cmNlRXJyb3IgcHJpbnRlck5vdEZvdW5k
RXJyb3IoY29uc3QgVVJMJiBmYWlsaW5nVVJMKQotewotICAgIHJldHVybiBSZXNvdXJjZUVycm9y
KGVycm9yRG9tYWluUHJpbnQsIFByaW50RXJyb3JQcmludGVyTm90Rm91bmQsIGZhaWxpbmdVUkws
IEFTQ0lJTGl0ZXJhbCgiUHJpbnRlciBub3QgZm91bmQiKSk7Ci19Ci0KLVJlc291cmNlRXJyb3Ig
aW52YWxpZFBhZ2VSYW5nZVRvUHJpbnQoY29uc3QgVVJMJiBmYWlsaW5nVVJMKQotewotICAgIHJl
dHVybiBSZXNvdXJjZUVycm9yKGVycm9yRG9tYWluUHJpbnQsIFByaW50RXJyb3JJbnZhbGlkUGFn
ZVJhbmdlLCBmYWlsaW5nVVJMLCBBU0NJSUxpdGVyYWwoIkludmFsaWQgcGFnZSByYW5nZSIpKTsK
LX0KLQotfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZWZsL0Vycm9yc0VmbC5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZWZsL0Vy
cm9yc0VmbC5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA3MGZmYTZlNjlkZWVlN2U5
ZjU4MGNkOWQ1OWZjZTc4YzYyZWQ1MDQ2Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2VmbC9FcnJvcnNFZmwuaAor
KysgL2Rldi9udWxsCkBAIC0xLDEwMSArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDEy
IEludGVsIENvcnBvcmF0aW9uLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAq
IDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAq
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJV
VE9SUyBgYEFTIElTJycKLSAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogVEhFIElNUExJRUQgV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVS
UE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMg
Q09OVFJJQlVUT1JTCi0gKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCi0gKiBDT05TRVFVRU5USUFMIERBTUFHRVMg
KElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgotICogU1VCU1RJ
VFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9S
IEJVU0lORVNTCi0gKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhF
T1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgotICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKLSAqIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YKLSAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaWZu
ZGVmIEVycm9yc0VmbF9oCi0jZGVmaW5lIEVycm9yc0VmbF9oCi0KLSNpbmNsdWRlIDx3dGYvdGV4
dC9XVEZTdHJpbmcuaD4KLQotbmFtZXNwYWNlIFdlYkNvcmUgewotCi1jbGFzcyBSZXNvdXJjZUVy
cm9yOwotY2xhc3MgUmVzb3VyY2VSZXF1ZXN0OwotY2xhc3MgUmVzb3VyY2VSZXNwb25zZTsKLWNs
YXNzIFVSTDsKLQotc3RhdGljIGNvbnN0IGNoYXIgZXJyb3JEb21haW5OZXR3b3JrW10gPSAiV2Vi
S2l0TmV0d29ya0Vycm9yIjsKLXN0YXRpYyBjb25zdCBjaGFyIGVycm9yRG9tYWluUG9saWN5W10g
PSAiV2ViS2l0UG9saWN5RXJyb3IiOwotc3RhdGljIGNvbnN0IGNoYXIgZXJyb3JEb21haW5QbHVn
aW5bXSA9ICJXZWJLaXRQbHVnaW5FcnJvciI7Ci1zdGF0aWMgY29uc3QgY2hhciBlcnJvckRvbWFp
bkRvd25sb2FkW10gPSAiV2ViS2l0RG93bmxvYWRFcnJvciI7Ci1zdGF0aWMgY29uc3QgY2hhciBl
cnJvckRvbWFpblByaW50W10gPSAiV2ViS2l0UHJpbnRFcnJvciI7Ci0KLWVudW0gTmV0d29ya0Vy
cm9yIHsKLSAgICBOZXR3b3JrRXJyb3JGYWlsZWQgPSAzOTksCi0gICAgTmV0d29ya0Vycm9yVHJh
bnNwb3J0ID0gMzAwLAotICAgIE5ldHdvcmtFcnJvclVua25vd25Qcm90b2NvbCA9IDMwMSwKLSAg
ICBOZXR3b3JrRXJyb3JDYW5jZWxsZWQgPSAzMDIsCi0gICAgTmV0d29ya0Vycm9yRmlsZURvZXNO
b3RFeGlzdCA9IDMwMwotfTsKLQotLy8gU3luYydkIHdpdGggTWFjJ3MgV2ViS2l0IEVycm9ycyBh
dDoKLS8vIFNvdXJjZS9XZWJLaXQvbWFjL01pc2MvV2ViS2l0RXJyb3JzW1ByaXZhdGVdLmgKLWVu
dW0gUG9saWN5RXJyb3IgewotICAgIFBvbGljeUVycm9yRmFpbGVkID0gMTk5LAotICAgIFBvbGlj
eUVycm9yQ2Fubm90U2hvd01pbWVUeXBlID0gMTAwLAotICAgIFBvbGljeUVycm9yQ2Fubm90U2hv
d1VSTCA9IDEwMSwKLSAgICBQb2xpY3lFcnJvckZyYW1lTG9hZEludGVycnVwdGVkQnlQb2xpY3lD
aGFuZ2UgPSAxMDIsCi0gICAgUG9saWN5RXJyb3JDYW5ub3RVc2VSZXN0cmljdGVkUG9ydCA9IDEw
MywKLSAgICBQb2xpY3lFcnJvckJsb2NrZWRCeUNvbnRlbnRCbG9ja2VyID0gMTA0LAotfTsKLQot
ZW51bSBQbHVnaW5FcnJvciB7Ci0gICAgUGx1Z2luRXJyb3JGYWlsZWQgPSAyOTksCi0gICAgUGx1
Z2luRXJyb3JDYW5ub3RGaW5kUGx1Z2luID0gMjAwLAotICAgIFBsdWdpbkVycm9yQ2Fubm90TG9h
ZFBsdWdpbiA9IDIwMSwKLSAgICBQbHVnaW5FcnJvckphdmFVbmF2YWlsYWJsZSA9IDIwMiwKLSAg
ICBQbHVnaW5FcnJvckNvbm5lY3Rpb25DYW5jZWxsZWQgPSAyMDMsCi0gICAgUGx1Z2luRXJyb3JX
aWxsSGFuZGxlTG9hZCA9IDIwNAotfTsKLQotZW51bSBEb3dubG9hZEVycm9yIHsKLSAgICBEb3du
bG9hZEVycm9yTmV0d29yayA9IDQ5OSwKLSAgICBEb3dubG9hZEVycm9yQ2FuY2VsbGVkQnlVc2Vy
ID0gNDAwLAotICAgIERvd25sb2FkRXJyb3JEZXN0aW5hdGlvbiA9IDQwMQotfTsKLQotZW51bSBQ
cmludEVycm9yIHsKLSAgICBQcmludEVycm9yR2VuZXJhbCA9IDU5OSwKLSAgICBQcmludEVycm9y
UHJpbnRlck5vdEZvdW5kID0gNTAwLAotICAgIFByaW50RXJyb3JJbnZhbGlkUGFnZVJhbmdlID0g
NTAxCi19OwotCi1SZXNvdXJjZUVycm9yIGNhbmNlbGxlZEVycm9yKGNvbnN0IFJlc291cmNlUmVx
dWVzdCYpOwotUmVzb3VyY2VFcnJvciBibG9ja2VkRXJyb3IoY29uc3QgUmVzb3VyY2VSZXF1ZXN0
Jik7Ci1SZXNvdXJjZUVycm9yIGJsb2NrZWRCeUNvbnRlbnRCbG9ja2VyRXJyb3IoY29uc3QgUmVz
b3VyY2VSZXF1ZXN0Jik7Ci1SZXNvdXJjZUVycm9yIGNhbm5vdFNob3dVUkxFcnJvcihjb25zdCBS
ZXNvdXJjZVJlcXVlc3QmKTsKLVJlc291cmNlRXJyb3IgaW50ZXJydXB0ZWRGb3JQb2xpY3lDaGFu
Z2VFcnJvcihjb25zdCBSZXNvdXJjZVJlcXVlc3QmKTsKLVJlc291cmNlRXJyb3IgY2Fubm90U2hv
d01JTUVUeXBlRXJyb3IoY29uc3QgUmVzb3VyY2VSZXNwb25zZSYpOwotUmVzb3VyY2VFcnJvciBm
aWxlRG9lc05vdEV4aXN0RXJyb3IoY29uc3QgUmVzb3VyY2VSZXNwb25zZSYpOwotUmVzb3VyY2VF
cnJvciBwbHVnaW5XaWxsSGFuZGxlTG9hZEVycm9yKGNvbnN0IFJlc291cmNlUmVzcG9uc2UmKTsK
LVJlc291cmNlRXJyb3IgZG93bmxvYWROZXR3b3JrRXJyb3IoY29uc3QgUmVzb3VyY2VFcnJvciYp
OwotUmVzb3VyY2VFcnJvciBkb3dubG9hZENhbmNlbGxlZEJ5VXNlckVycm9yKGNvbnN0IFJlc291
cmNlUmVzcG9uc2UmKTsKLVJlc291cmNlRXJyb3IgZG93bmxvYWREZXN0aW5hdGlvbkVycm9yKGNv
bnN0IFJlc291cmNlUmVzcG9uc2UmLCBjb25zdCBTdHJpbmcmIGVycm9yTWVzc2FnZSk7Ci1SZXNv
dXJjZUVycm9yIHByaW50RXJyb3IoY29uc3QgVVJMJiBmYWlsaW5nVVJMLCBjb25zdCBTdHJpbmcm
IGVycm9yTWVzc2FnZSk7Ci1SZXNvdXJjZUVycm9yIHByaW50ZXJOb3RGb3VuZEVycm9yKGNvbnN0
IFVSTCYgZmFpbGluZ1VSTCk7Ci1SZXNvdXJjZUVycm9yIGludmFsaWRQYWdlUmFuZ2VUb1ByaW50
KGNvbnN0IFVSTCYgZmFpbGluZ1VSTCk7Ci0KLX0KLQotI2VuZGlmIC8vIEVycm9yc0VmbF9oCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvRXJyb3JzR3RrLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9FcnJvcnNHdGsuY3BwCmRlbGV0ZWQgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCA4ZGZkMTU4YjNiNGQ2YzU0NGJkYjI5YTYxNTc0MWRiZGE0YjQxYTU0Li4w
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2d0ay9FcnJvcnNHdGsuY3BwCisrKyAvZGV2L251bGwKQEAgLTEsMTAwICsw
LDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTEgSWdhbGlhIFMuTC4KLSAqCi0gKiBUaGlz
IGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29y
Ci0gKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFs
IFB1YmxpYwotICogTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91
bmRhdGlvbjsgZWl0aGVyCi0gKiB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3Vy
IG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCi0gKgotICogVGhpcyBsaWJyYXJ5IGlzIGRpc3Ry
aWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCi0gKiBidXQgV0lUSE9V
VCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgotICog
TUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2Vl
IHRoZSBHTlUKLSAqIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRh
aWxzLgotICoKLSAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBM
aWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UKLSAqIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5
OyBzZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIuICBJZiBub3QsIHdyaXRlIHRvCi0gKiB0aGUgRnJl
ZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZs
b29yLAotICogQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0EuCi0gKi8KLQotI2luY2x1ZGUgImNv
bmZpZy5oIgotI2luY2x1ZGUgIkVycm9yc0d0ay5oIgotCi0jaW5jbHVkZSAiUmVzb3VyY2VFcnJv
ci5oIgotI2luY2x1ZGUgIlJlc291cmNlUmVxdWVzdC5oIgotI2luY2x1ZGUgIlJlc291cmNlUmVz
cG9uc2UuaCIKLSNpbmNsdWRlIDxnbGliL2dpMThuLWxpYi5oPgotCi1uYW1lc3BhY2UgV2ViQ29y
ZSB7Ci0KLVJlc291cmNlRXJyb3IgY2FuY2VsbGVkRXJyb3IoY29uc3QgUmVzb3VyY2VSZXF1ZXN0
JiByZXF1ZXN0KQotewotICAgIHJldHVybiBSZXNvdXJjZUVycm9yKGVycm9yRG9tYWluTmV0d29y
aywgTmV0d29ya0Vycm9yQ2FuY2VsbGVkLCByZXF1ZXN0LnVybCgpLCBfKCJMb2FkIHJlcXVlc3Qg
Y2FuY2VsbGVkIikpOwotfQotCi1SZXNvdXJjZUVycm9yIGJsb2NrZWRFcnJvcihjb25zdCBSZXNv
dXJjZVJlcXVlc3QmIHJlcXVlc3QpCi17Ci0gICAgcmV0dXJuIFJlc291cmNlRXJyb3IoZXJyb3JE
b21haW5Qb2xpY3ksIFBvbGljeUVycm9yQ2Fubm90VXNlUmVzdHJpY3RlZFBvcnQsIHJlcXVlc3Qu
dXJsKCksIF8oIk5vdCBhbGxvd2VkIHRvIHVzZSByZXN0cmljdGVkIG5ldHdvcmsgcG9ydCIpKTsK
LX0KLQotUmVzb3VyY2VFcnJvciBibG9ja2VkQnlDb250ZW50QmxvY2tlckVycm9yKGNvbnN0IFJl
c291cmNlUmVxdWVzdCYgcmVxdWVzdCkKLXsKLSAgICByZXR1cm4gUmVzb3VyY2VFcnJvcihlcnJv
ckRvbWFpblBvbGljeSwgUG9saWN5RXJyb3JCbG9ja2VkQnlDb250ZW50QmxvY2tlciwgcmVxdWVz
dC51cmwoKSwgXygiQmxvY2tlZCBieSBjb250ZW50IGJsb2NrZXIiKSk7Ci19Ci0KLVJlc291cmNl
RXJyb3IgY2Fubm90U2hvd1VSTEVycm9yKGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCkK
LXsKLSAgICByZXR1cm4gUmVzb3VyY2VFcnJvcihlcnJvckRvbWFpblBvbGljeSwgUG9saWN5RXJy
b3JDYW5ub3RTaG93VVJMLCByZXF1ZXN0LnVybCgpLCBfKCJVUkwgY2Fubm90IGJlIHNob3duIikp
OwotfQotCi1SZXNvdXJjZUVycm9yIGludGVycnVwdGVkRm9yUG9saWN5Q2hhbmdlRXJyb3IoY29u
c3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0KQotewotICAgIHJldHVybiBSZXNvdXJjZUVycm9y
KGVycm9yRG9tYWluUG9saWN5LCBQb2xpY3lFcnJvckZyYW1lTG9hZEludGVycnVwdGVkQnlQb2xp
Y3lDaGFuZ2UsIHJlcXVlc3QudXJsKCksIF8oIkZyYW1lIGxvYWQgd2FzIGludGVycnVwdGVkIikp
OwotfQotCi1SZXNvdXJjZUVycm9yIGNhbm5vdFNob3dNSU1FVHlwZUVycm9yKGNvbnN0IFJlc291
cmNlUmVzcG9uc2UmIHJlc3BvbnNlKQotewotICAgIHJldHVybiBSZXNvdXJjZUVycm9yKGVycm9y
RG9tYWluUG9saWN5LCBQb2xpY3lFcnJvckNhbm5vdFNob3dNaW1lVHlwZSwgcmVzcG9uc2UudXJs
KCksIF8oIkNvbnRlbnQgd2l0aCB0aGUgc3BlY2lmaWVkIE1JTUUgdHlwZSBjYW5ub3QgYmUgc2hv
d24iKSk7Ci19Ci0KLVJlc291cmNlRXJyb3IgZmlsZURvZXNOb3RFeGlzdEVycm9yKGNvbnN0IFJl
c291cmNlUmVzcG9uc2UmIHJlc3BvbnNlKQotewotICAgIHJldHVybiBSZXNvdXJjZUVycm9yKGVy
cm9yRG9tYWluTmV0d29yaywgTmV0d29ya0Vycm9yRmlsZURvZXNOb3RFeGlzdCwgcmVzcG9uc2Uu
dXJsKCksIF8oIkZpbGUgZG9lcyBub3QgZXhpc3QiKSk7Ci19Ci0KLVJlc291cmNlRXJyb3IgcGx1
Z2luV2lsbEhhbmRsZUxvYWRFcnJvcihjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiByZXNwb25zZSkK
LXsKLSAgICByZXR1cm4gUmVzb3VyY2VFcnJvcihlcnJvckRvbWFpblBsdWdpbiwgUGx1Z2luRXJy
b3JXaWxsSGFuZGxlTG9hZCwgcmVzcG9uc2UudXJsKCksIF8oIlBsdWdpbiB3aWxsIGhhbmRsZSBs
b2FkIikpOwotfQotCi1SZXNvdXJjZUVycm9yIGRvd25sb2FkTmV0d29ya0Vycm9yKGNvbnN0IFJl
c291cmNlRXJyb3ImIG5ldHdvcmtFcnJvcikKLXsKLSAgICByZXR1cm4gUmVzb3VyY2VFcnJvcihl
cnJvckRvbWFpbkRvd25sb2FkLCBEb3dubG9hZEVycm9yTmV0d29yaywgbmV0d29ya0Vycm9yLmZh
aWxpbmdVUkwoKSwgbmV0d29ya0Vycm9yLmxvY2FsaXplZERlc2NyaXB0aW9uKCkpOwotfQotCi1S
ZXNvdXJjZUVycm9yIGRvd25sb2FkQ2FuY2VsbGVkQnlVc2VyRXJyb3IoY29uc3QgUmVzb3VyY2VS
ZXNwb25zZSYgcmVzcG9uc2UpCi17Ci0gICAgcmV0dXJuIFJlc291cmNlRXJyb3IoZXJyb3JEb21h
aW5Eb3dubG9hZCwgRG93bmxvYWRFcnJvckNhbmNlbGxlZEJ5VXNlciwgcmVzcG9uc2UudXJsKCks
IF8oIlVzZXIgY2FuY2VsbGVkIHRoZSBkb3dubG9hZCIpKTsKLX0KLQotUmVzb3VyY2VFcnJvciBk
b3dubG9hZERlc3RpbmF0aW9uRXJyb3IoY29uc3QgUmVzb3VyY2VSZXNwb25zZSYgcmVzcG9uc2Us
IGNvbnN0IFN0cmluZyYgZXJyb3JNZXNzYWdlKQotewotICAgIHJldHVybiBSZXNvdXJjZUVycm9y
KGVycm9yRG9tYWluRG93bmxvYWQsIERvd25sb2FkRXJyb3JEZXN0aW5hdGlvbiwgcmVzcG9uc2Uu
dXJsKCksIGVycm9yTWVzc2FnZSk7Ci19Ci0KLVJlc291cmNlRXJyb3IgcHJpbnRFcnJvcihjb25z
dCBVUkwmIGZhaWxpbmdVUkwsIGNvbnN0IFN0cmluZyYgZXJyb3JNZXNzYWdlKQotewotICAgIHJl
dHVybiBSZXNvdXJjZUVycm9yKGVycm9yRG9tYWluUHJpbnQsIFByaW50RXJyb3JHZW5lcmFsLCBm
YWlsaW5nVVJMLCBlcnJvck1lc3NhZ2UpOwotfQotCi1SZXNvdXJjZUVycm9yIHByaW50ZXJOb3RG
b3VuZEVycm9yKGNvbnN0IFVSTCYgZmFpbGluZ1VSTCkKLXsKLSAgICByZXR1cm4gUmVzb3VyY2VF
cnJvcihlcnJvckRvbWFpblByaW50LCBQcmludEVycm9yUHJpbnRlck5vdEZvdW5kLCBmYWlsaW5n
VVJMLCBfKCJQcmludGVyIG5vdCBmb3VuZCIpKTsKLX0KLQotUmVzb3VyY2VFcnJvciBpbnZhbGlk
UGFnZVJhbmdlVG9QcmludChjb25zdCBVUkwmIGZhaWxpbmdVUkwpCi17Ci0gICAgcmV0dXJuIFJl
c291cmNlRXJyb3IoZXJyb3JEb21haW5QcmludCwgUHJpbnRFcnJvckludmFsaWRQYWdlUmFuZ2Us
IGZhaWxpbmdVUkwsIF8oIkludmFsaWQgcGFnZSByYW5nZSIpKTsKLX0KLQotfSAvLyBuYW1lc3Bh
Y2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL0Vycm9y
c0d0ay5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL0Vycm9yc0d0ay5oCmRlbGV0ZWQg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCA3NjFkY2NiMjZlZjcwMDQxYmM3MWE3MDIxYjUwNTMwZDc4
MDI4MTcwLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9FcnJvcnNHdGsuaAorKysgL2Rldi9udWxsCkBAIC0x
LDk0ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTEgSWdhbGlhIFMuTC4KLSAqCi0g
KiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQg
YW5kL29yCi0gKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBH
ZW5lcmFsIFB1YmxpYwotICogTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdh
cmUgRm91bmRhdGlvbjsgZWl0aGVyCi0gKiB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChh
dCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCi0gKgotICogVGhpcyBsaWJyYXJ5IGlz
IGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCi0gKiBidXQg
V0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBv
ZgotICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NF
LiAgU2VlIHRoZSBHTlUKLSAqIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9y
ZSBkZXRhaWxzLgotICoKLSAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhl
IEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UKLSAqIGFsb25nIHdpdGggdGhpcyBs
aWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIuICBJZiBub3QsIHdyaXRlIHRvCi0gKiB0
aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZp
ZnRoIEZsb29yLAotICogQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0EuCi0gKi8KLQotI2lmbmRl
ZiBFcnJvcnNHdGtfaAotI2RlZmluZSBFcnJvcnNHdGtfaAotCi0jaW5jbHVkZSA8d3RmL3RleHQv
V1RGU3RyaW5nLmg+Ci0KLW5hbWVzcGFjZSBXZWJDb3JlIHsKLQotY2xhc3MgUmVzb3VyY2VFcnJv
cjsKLWNsYXNzIFJlc291cmNlUmVxdWVzdDsKLWNsYXNzIFJlc291cmNlUmVzcG9uc2U7Ci1jbGFz
cyBVUkw7Ci0KLWNvbnN0IGNoYXIqIGNvbnN0IGVycm9yRG9tYWluTmV0d29yayA9ICJXZWJLaXRO
ZXR3b3JrRXJyb3IiOwotY29uc3QgY2hhciogY29uc3QgZXJyb3JEb21haW5Qb2xpY3kgPSAiV2Vi
S2l0UG9saWN5RXJyb3IiOwotY29uc3QgY2hhciogY29uc3QgZXJyb3JEb21haW5QbHVnaW4gPSAi
V2ViS2l0UGx1Z2luRXJyb3IiOwotY29uc3QgY2hhciogY29uc3QgZXJyb3JEb21haW5Eb3dubG9h
ZCA9ICJXZWJLaXREb3dubG9hZEVycm9yIjsKLWNvbnN0IGNoYXIqIGNvbnN0IGVycm9yRG9tYWlu
UHJpbnQgPSAiV2ViS2l0UHJpbnRFcnJvciI7Ci0KLWVudW0gTmV0d29ya0Vycm9yIHsKLSAgICBO
ZXR3b3JrRXJyb3JGYWlsZWQgPSAzOTksCi0gICAgTmV0d29ya0Vycm9yVHJhbnNwb3J0ID0gMzAw
LAotICAgIE5ldHdvcmtFcnJvclVua25vd25Qcm90b2NvbCA9IDMwMSwKLSAgICBOZXR3b3JrRXJy
b3JDYW5jZWxsZWQgPSAzMDIsCi0gICAgTmV0d29ya0Vycm9yRmlsZURvZXNOb3RFeGlzdCA9IDMw
MwotfTsKLQotLy8gU3luYydkIHdpdGggTWFjJ3MgV2ViS2l0IEVycm9ycy4KLWVudW0gUG9saWN5
RXJyb3IgewotICAgIFBvbGljeUVycm9yRmFpbGVkID0gMTk5LAotICAgIFBvbGljeUVycm9yQ2Fu
bm90U2hvd01pbWVUeXBlID0gMTAwLAotICAgIFBvbGljeUVycm9yQ2Fubm90U2hvd1VSTCA9IDEw
MSwKLSAgICBQb2xpY3lFcnJvckZyYW1lTG9hZEludGVycnVwdGVkQnlQb2xpY3lDaGFuZ2UgPSAx
MDIsCi0gICAgUG9saWN5RXJyb3JDYW5ub3RVc2VSZXN0cmljdGVkUG9ydCA9IDEwMywKLSAgICBQ
b2xpY3lFcnJvckJsb2NrZWRCeUNvbnRlbnRCbG9ja2VyID0gMTA0LAotfTsKLQotZW51bSBQbHVn
aW5FcnJvciB7Ci0gICAgUGx1Z2luRXJyb3JGYWlsZWQgPSAyOTksCi0gICAgUGx1Z2luRXJyb3JD
YW5ub3RGaW5kUGx1Z2luID0gMjAwLAotICAgIFBsdWdpbkVycm9yQ2Fubm90TG9hZFBsdWdpbiA9
IDIwMSwKLSAgICBQbHVnaW5FcnJvckphdmFVbmF2YWlsYWJsZSA9IDIwMiwKLSAgICBQbHVnaW5F
cnJvckNvbm5lY3Rpb25DYW5jZWxsZWQgPSAyMDMsCi0gICAgUGx1Z2luRXJyb3JXaWxsSGFuZGxl
TG9hZCA9IDIwNAotfTsKLQotZW51bSBEb3dubG9hZEVycm9yIHsKLSAgICBEb3dubG9hZEVycm9y
TmV0d29yayA9IDQ5OSwKLSAgICBEb3dubG9hZEVycm9yQ2FuY2VsbGVkQnlVc2VyID0gNDAwLAot
ICAgIERvd25sb2FkRXJyb3JEZXN0aW5hdGlvbiA9IDQwMQotfTsKLQotZW51bSBQcmludEVycm9y
IHsKLSAgICBQcmludEVycm9yR2VuZXJhbCA9IDU5OSwKLSAgICBQcmludEVycm9yUHJpbnRlck5v
dEZvdW5kID0gNTAwLAotICAgIFByaW50RXJyb3JJbnZhbGlkUGFnZVJhbmdlID0gNTAxCi19Owot
Ci1SZXNvdXJjZUVycm9yIGNhbmNlbGxlZEVycm9yKGNvbnN0IFJlc291cmNlUmVxdWVzdCYpOwot
UmVzb3VyY2VFcnJvciBibG9ja2VkRXJyb3IoY29uc3QgUmVzb3VyY2VSZXF1ZXN0Jik7Ci1SZXNv
dXJjZUVycm9yIGJsb2NrZWRCeUNvbnRlbnRCbG9ja2VyRXJyb3IoY29uc3QgUmVzb3VyY2VSZXF1
ZXN0Jik7Ci1SZXNvdXJjZUVycm9yIGNhbm5vdFNob3dVUkxFcnJvcihjb25zdCBSZXNvdXJjZVJl
cXVlc3QmKTsKLVJlc291cmNlRXJyb3IgaW50ZXJydXB0ZWRGb3JQb2xpY3lDaGFuZ2VFcnJvcihj
b25zdCBSZXNvdXJjZVJlcXVlc3QmKTsKLVJlc291cmNlRXJyb3IgY2Fubm90U2hvd01JTUVUeXBl
RXJyb3IoY29uc3QgUmVzb3VyY2VSZXNwb25zZSYpOwotUmVzb3VyY2VFcnJvciBmaWxlRG9lc05v
dEV4aXN0RXJyb3IoY29uc3QgUmVzb3VyY2VSZXNwb25zZSYpOwotUmVzb3VyY2VFcnJvciBwbHVn
aW5XaWxsSGFuZGxlTG9hZEVycm9yKGNvbnN0IFJlc291cmNlUmVzcG9uc2UmKTsKLVJlc291cmNl
RXJyb3IgZG93bmxvYWROZXR3b3JrRXJyb3IoY29uc3QgUmVzb3VyY2VFcnJvciYpOwotUmVzb3Vy
Y2VFcnJvciBkb3dubG9hZENhbmNlbGxlZEJ5VXNlckVycm9yKGNvbnN0IFJlc291cmNlUmVzcG9u
c2UmKTsKLVJlc291cmNlRXJyb3IgZG93bmxvYWREZXN0aW5hdGlvbkVycm9yKGNvbnN0IFJlc291
cmNlUmVzcG9uc2UmLCBjb25zdCBTdHJpbmcmIGVycm9yTWVzc2FnZSk7Ci1SZXNvdXJjZUVycm9y
IHByaW50RXJyb3IoY29uc3QgVVJMJiBmYWlsaW5nVVJMLCBjb25zdCBTdHJpbmcmIGVycm9yTWVz
c2FnZSk7Ci1SZXNvdXJjZUVycm9yIHByaW50ZXJOb3RGb3VuZEVycm9yKGNvbnN0IFVSTCYgZmFp
bGluZ1VSTCk7Ci1SZXNvdXJjZUVycm9yIGludmFsaWRQYWdlUmFuZ2VUb1ByaW50KGNvbnN0IFVS
TCYgZmFpbGluZ1VSTCk7Ci0KLX0KLQotI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ndGsvcG8vUE9URklMRVMuaW4gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
dGsvcG8vUE9URklMRVMuaW4KaW5kZXggN2ZhMjgyNTIwY2FlMmU3ZjE3MDk3YTc2ODU0MzdhNmU1
NTljNzQwZS4uNTFmNzg5ZWJmMjE3ZjY5ZjUyOWRiYjYxYmEyNGZiOTlhN2NiZWY2NCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL3BvL1BPVEZJTEVTLmluCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9wby9QT1RGSUxFUy5pbgpAQCAtMSw1ICsxLDUgQEAK
ICMgTGlzdCBvZiBzb3VyY2UgZmlsZXMgd2hpY2ggY29udGFpbiB0cmFuc2xhdGFibGUgc3RyaW5n
cy4KLUVycm9yc0d0ay5jcHAKKy4uL3VuaXgvRXJyb3JzVW5peC5jcHAKIExvY2FsaXplZFN0cmlu
Z3NHdGsuY3BwCiAuLi8uLi8uLi9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL0Rvd25sb2Fkcy9zb3Vw
L0Rvd25sb2FkU291cC5jcHAKIC4uLy4uLy4uL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2Vi
S2l0QXV0aGVudGljYXRpb25EaWFsb2cuY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9tYWMvRXJyb3JzTWFjLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL0Vy
cm9yc01hYy5tbQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41ZWE5NTFhZTJmZDEwN2YwNTM2YmNkYTNiODc5Mjc5N2Ni
MDc3MzA1Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL0Vy
cm9yc01hYy5tbQpAQCAtMCwwICsxLDExOSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMC0y
MDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElT
IFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMg
YGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0Ug
QVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRS
SUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUg
R09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBP
UiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2ltcG9ydCAi
Y29uZmlnLmgiCisjaW1wb3J0ICJFcnJvcnMuaCIKKworI2ltcG9ydCAiTG9jYWxpemVkU3RyaW5n
cy5oIgorI2ltcG9ydCAiUmVzb3VyY2VFcnJvci5oIgorI2ltcG9ydCAiUmVzb3VyY2VSZXF1ZXN0
LmgiCisjaW1wb3J0ICJSZXNvdXJjZVJlc3BvbnNlLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsK
KworZW51bSB7CisgICAga1dLRXJyb3JDb2RlQ2Fubm90U2hvd01JTUVUeXBlID0gICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIDEwMCwKKyAgICBrV0tFcnJvckNvZGVDYW5ub3RTaG93VVJMID0g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMTAxLAorICAgIGtXS0Vycm9yQ29kZUZy
YW1lTG9hZEludGVycnVwdGVkQnlQb2xpY3lDaGFuZ2UgPSAgICAgICAgICAgICAxMDIsCisgICAg
a1dLRXJyb3JDb2RlQ2Fubm90VXNlUmVzdHJpY3RlZFBvcnQgPSAgICAgICAgICAgICAgICAgICAg
ICAgIDEwMywKKyAgICBrV0tFcnJvckNvZGVGcmFtZUxvYWRCbG9ja2VkQnlDb250ZW50QmxvY2tl
ciA9ICAgICAgICAgICAgICAgMTA0LAorICAgIGtXS0Vycm9yQ29kZUZyYW1lTG9hZEJsb2NrZWRC
eUNvbnRlbnRGaWx0ZXIgPSAgICAgICAgICAgICAgICAxMDUsCisgICAga1dLRXJyb3JDb2RlQ2Fu
bm90RmluZFBsdWdJbiA9ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIwMCwKKyAgICBr
V0tFcnJvckNvZGVDYW5ub3RMb2FkUGx1Z0luID0gICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgMjAxLAorICAgIGtXS0Vycm9yQ29kZUphdmFVbmF2YWlsYWJsZSA9ICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAyMDIsCisgICAga1dLRXJyb3JDb2RlUGx1Z0luQ2FuY2VsbGVkQ29u
bmVjdGlvbiA9ICAgICAgICAgICAgICAgICAgICAgIDIwMywKKyAgICBrV0tFcnJvckNvZGVQbHVn
SW5XaWxsSGFuZGxlTG9hZCA9ICAgICAgICAgICAgICAgICAgICAgICAgICAgMjA0LAorICAgIGtX
S0Vycm9yQ29kZUluc2VjdXJlUGx1Z0luVmVyc2lvbiA9ICAgICAgICAgICAgICAgICAgICAgICAg
ICAyMDUsCisgICAga1dLRXJyb3JJbnRlcm5hbCA9ICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIDMwMCwKK307CisKK3N0YXRpYyBSZXRhaW5QdHI8TlNFcnJvcj4gY3Jl
YXRlTlNFcnJvcihOU1N0cmluZyogZG9tYWluLCBpbnQgY29kZSwgTlNVUkwgKlVSTCkKK3sKKyAg
ICBOU0RpY3Rpb25hcnkgKnVzZXJJbmZvID0gW05TRGljdGlvbmFyeSBkaWN0aW9uYXJ5V2l0aE9i
amVjdHNBbmRLZXlzOgorICAgICAgICBVUkwsIEAiTlNFcnJvckZhaWxpbmdVUkxLZXkiLAorICAg
ICAgICBbVVJMIGFic29sdXRlU3RyaW5nXSwgQCJOU0Vycm9yRmFpbGluZ1VSTFN0cmluZ0tleSIs
CisgICAgICAgIG5pbF07CisKKyAgICByZXR1cm4gYWRvcHROUyhbW05TRXJyb3IgYWxsb2NdIGlu
aXRXaXRoRG9tYWluOmRvbWFpbiBjb2RlOmNvZGUgdXNlckluZm86dXNlckluZm9dKTsKK30KKwor
Ly8gVXNlIE5TRXJyb3IncyBpZiBhdmFpbGFibGUuCisKK1Jlc291cmNlRXJyb3IgY2FuY2VsbGVk
RXJyb3IoY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0KQoreworICAgIHJldHVybiBSZXNv
dXJjZUVycm9yKGNyZWF0ZU5TRXJyb3IoTlNVUkxFcnJvckRvbWFpbiwgTlNVUkxFcnJvckNhbmNl
bGxlZCwgcmVxdWVzdC51cmwoKSkuZ2V0KCkpOworfQorCitSZXNvdXJjZUVycm9yIGZpbGVEb2Vz
Tm90RXhpc3RFcnJvcihjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiByZXNwb25zZSkKK3sKKyAgICBy
ZXR1cm4gUmVzb3VyY2VFcnJvcihjcmVhdGVOU0Vycm9yKE5TVVJMRXJyb3JEb21haW4sIE5TVVJM
RXJyb3JGaWxlRG9lc05vdEV4aXN0LCByZXNwb25zZS51cmwoKSkuZ2V0KCkpOworfQorCisKKy8v
IE90aGVyd2lzZSwgZmFsbGJhY2sgdG8gb3VyIG93biBlcnJvcnMuCisKK1Jlc291cmNlRXJyb3Ig
YmxvY2tlZEVycm9yKGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCkKK3sKKyAgICByZXR1
cm4gUmVzb3VyY2VFcnJvcih3ZWJLaXRFcnJvckRvbWFpbigpLCBrV0tFcnJvckNvZGVDYW5ub3RV
c2VSZXN0cmljdGVkUG9ydCwgcmVxdWVzdC51cmwoKSwgV0VCX1VJX1NUUklORygiTm90IGFsbG93
ZWQgdG8gdXNlIHJlc3RyaWN0ZWQgbmV0d29yayBwb3J0IiwgIldlYktpdEVycm9yQ2Fubm90VXNl
UmVzdHJpY3RlZFBvcnQgZGVzY3JpcHRpb24iKSk7Cit9CisKK1Jlc291cmNlRXJyb3IgYmxvY2tl
ZEJ5Q29udGVudEJsb2NrZXJFcnJvcihjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QpCit7
CisgICAgcmV0dXJuIFJlc291cmNlRXJyb3Iod2ViS2l0RXJyb3JEb21haW4oKSwga1dLRXJyb3JD
b2RlRnJhbWVMb2FkQmxvY2tlZEJ5Q29udGVudEJsb2NrZXIsIHJlcXVlc3QudXJsKCksIFdFQl9V
SV9TVFJJTkcoIlRoZSBVUkwgd2FzIGJsb2NrZWQgYnkgYSBjb250ZW50IGJsb2NrZXIiLCAiV2Vi
S2l0RXJyb3JCbG9ja2VkQnlDb250ZW50QmxvY2tlciBkZXNjcmlwdGlvbiIpKTsKK30KKworUmVz
b3VyY2VFcnJvciBjYW5ub3RTaG93VVJMRXJyb3IoY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1
ZXN0KQoreworICAgIHJldHVybiBSZXNvdXJjZUVycm9yKHdlYktpdEVycm9yRG9tYWluKCksIGtX
S0Vycm9yQ29kZUNhbm5vdFNob3dVUkwsIHJlcXVlc3QudXJsKCksIFdFQl9VSV9TVFJJTkcoIlRo
ZSBVUkwgY2Fu4oCZdCBiZSBzaG93biIsICJXZWJLaXRFcnJvckNhbm5vdFNob3dVUkwgZGVzY3Jp
cHRpb24iKSk7Cit9CisKK1Jlc291cmNlRXJyb3IgaW50ZXJydXB0ZWRGb3JQb2xpY3lDaGFuZ2VF
cnJvcihjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QpCit7CisgICAgcmV0dXJuIFJlc291
cmNlRXJyb3Iod2ViS2l0RXJyb3JEb21haW4oKSwga1dLRXJyb3JDb2RlRnJhbWVMb2FkSW50ZXJy
dXB0ZWRCeVBvbGljeUNoYW5nZSwgcmVxdWVzdC51cmwoKSwgV0VCX1VJX1NUUklORygiRnJhbWUg
bG9hZCBpbnRlcnJ1cHRlZCIsICJXZWJLaXRFcnJvckZyYW1lTG9hZEludGVycnVwdGVkQnlQb2xp
Y3lDaGFuZ2UgZGVzY3JpcHRpb24iKSk7Cit9CisKKyNpZiBFTkFCTEUoQ09OVEVOVF9GSUxURVJJ
TkcpCitSZXNvdXJjZUVycm9yIGJsb2NrZWRCeUNvbnRlbnRGaWx0ZXJFcnJvcihjb25zdCBSZXNv
dXJjZVJlcXVlc3QmIHJlcXVlc3QpCit7CisgICAgcmV0dXJuIFJlc291cmNlRXJyb3Iod2ViS2l0
RXJyb3JEb21haW4oKSwga1dLRXJyb3JDb2RlRnJhbWVMb2FkQmxvY2tlZEJ5Q29udGVudEZpbHRl
ciwgcmVxdWVzdC51cmwoKSwgV0VCX1VJX1NUUklORygiVGhlIFVSTCB3YXMgYmxvY2tlZCBieSBh
IGNvbnRlbnQgZmlsdGVyIiwgIldlYktpdEVycm9yQmxvY2tlZEJ5Q29udGVudEZpbHRlciIpKTsK
K30KKyNlbmRpZgorCitSZXNvdXJjZUVycm9yIGNhbm5vdFNob3dNSU1FVHlwZUVycm9yKGNvbnN0
IFJlc291cmNlUmVzcG9uc2UmIHJlc3BvbnNlKQoreworICAgIHJldHVybiBSZXNvdXJjZUVycm9y
KHdlYktpdEVycm9yRG9tYWluKCksIGtXS0Vycm9yQ29kZUNhbm5vdFNob3dNSU1FVHlwZSwgcmVz
cG9uc2UudXJsKCksIFdFQl9VSV9TVFJJTkcoIkNvbnRlbnQgd2l0aCBzcGVjaWZpZWQgTUlNRSB0
eXBlIGNhbuKAmXQgYmUgc2hvd24iLCAiV2ViS2l0RXJyb3JDYW5ub3RTaG93TUlNRVR5cGUgZGVz
Y3JpcHRpb24iKSk7Cit9CisKK1Jlc291cmNlRXJyb3IgcGx1Z2luV2lsbEhhbmRsZUxvYWRFcnJv
cihjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiByZXNwb25zZSkKK3sKKyAgICByZXR1cm4gUmVzb3Vy
Y2VFcnJvcih3ZWJLaXRFcnJvckRvbWFpbigpLCBrV0tFcnJvckNvZGVQbHVnSW5XaWxsSGFuZGxl
TG9hZCwgcmVzcG9uc2UudXJsKCksIFdFQl9VSV9TVFJJTkcoIlBsdWctaW4gaGFuZGxlZCBsb2Fk
IiwgIldlYktpdEVycm9yUGx1Z0luV2lsbEhhbmRsZUxvYWQgZGVzY3JpcHRpb24iKSk7Cit9CisK
K1Jlc291cmNlRXJyb3IgaW50ZXJuYWxFcnJvcihjb25zdCBVUkwmIHVybCkKK3sKKyAgICByZXR1
cm4gUmVzb3VyY2VFcnJvcih3ZWJLaXRFcnJvckRvbWFpbigpLCBrV0tFcnJvckludGVybmFsLCB1
cmwsIFdFQl9VSV9TVFJJTkcoIldlYktpdCBlbmNvdW50ZXJlZCBhbiBpbnRlcm5hbCBlcnJvciIs
ICJXZWJLaXRFcnJvckludGVybmFsIGRlc2NyaXB0aW9uIikpOworfQorCit9IC8vIG5hbWVzcGFj
ZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS91bml4L0Vycm9y
c1VuaXguY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdW5peC9FcnJvcnNVbml4LmNwcApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi5iMTZmNDkyOWJiZTUwZTYwNWY2NGM0N2M5NDA3YWI0NjIyZmQ1MDQzCi0tLSAv
ZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdW5peC9FcnJvcnNVbml4LmNw
cApAQCAtMCwwICsxLDExMiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMSBJZ2FsaWEgUy5M
LgorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJp
YnV0ZSBpdCBhbmQvb3IKKyAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBM
aWJyYXJ5IEdlbmVyYWwgUHVibGljCisgKiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJl
ZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAqIHZlcnNpb24gMiBvZiB0aGUgTGljZW5z
ZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiBUaGlzIGxp
YnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwK
KyAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdh
cnJhbnR5IG9mCisgKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
IFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICogTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNl
IGZvciBtb3JlIGRldGFpbHMuCisgKgorICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29w
eSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICogYWxvbmcgd2l0
aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUg
dG8KKyAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0
cmVldCwgRmlmdGggRmxvb3IsCisgKiBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KKyAqLwor
CisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiRXJyb3JzVW5peC5oIgorCisjaW5jbHVk
ZSAiRXJyb3JzLmgiCisjaW5jbHVkZSAiUmVzb3VyY2VFcnJvci5oIgorI2luY2x1ZGUgIlJlc291
cmNlUmVxdWVzdC5oIgorI2luY2x1ZGUgIlJlc291cmNlUmVzcG9uc2UuaCIKKworI2lmIFBMQVRG
T1JNKEdUSykKKyNpbmNsdWRlIDxnbGliL2dpMThuLWxpYi5oPgorI2RlZmluZSBFUlJPUl9TVFJJ
TkcocykgXyhzKQorI2VsaWYgUExBVEZPUk0oRUZMKQorI2RlZmluZSBFUlJPUl9TVFJJTkcocykg
QVNDSUlMaXRlcmFsKHMpCisjZW5kaWYKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitSZXNvdXJj
ZUVycm9yIGNhbmNlbGxlZEVycm9yKGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCkKK3sK
KyAgICByZXR1cm4gUmVzb3VyY2VFcnJvcihlcnJvckRvbWFpbk5ldHdvcmssIE5ldHdvcmtFcnJv
ckNhbmNlbGxlZCwgcmVxdWVzdC51cmwoKSwgRVJST1JfU1RSSU5HKCJMb2FkIHJlcXVlc3QgY2Fu
Y2VsbGVkIikpOworfQorCitSZXNvdXJjZUVycm9yIGJsb2NrZWRFcnJvcihjb25zdCBSZXNvdXJj
ZVJlcXVlc3QmIHJlcXVlc3QpCit7CisgICAgcmV0dXJuIFJlc291cmNlRXJyb3IoZXJyb3JEb21h
aW5Qb2xpY3ksIFBvbGljeUVycm9yQ2Fubm90VXNlUmVzdHJpY3RlZFBvcnQsIHJlcXVlc3QudXJs
KCksIEVSUk9SX1NUUklORygiTm90IGFsbG93ZWQgdG8gdXNlIHJlc3RyaWN0ZWQgbmV0d29yayBw
b3J0IikpOworfQorCitSZXNvdXJjZUVycm9yIGJsb2NrZWRCeUNvbnRlbnRCbG9ja2VyRXJyb3Io
Y29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0KQoreworICAgIHJldHVybiBSZXNvdXJjZUVy
cm9yKGVycm9yRG9tYWluUG9saWN5LCBQb2xpY3lFcnJvckJsb2NrZWRCeUNvbnRlbnRCbG9ja2Vy
LCByZXF1ZXN0LnVybCgpLCBFUlJPUl9TVFJJTkcoIkJsb2NrZWQgYnkgY29udGVudCBibG9ja2Vy
IikpOworfQorCitSZXNvdXJjZUVycm9yIGNhbm5vdFNob3dVUkxFcnJvcihjb25zdCBSZXNvdXJj
ZVJlcXVlc3QmIHJlcXVlc3QpCit7CisgICAgcmV0dXJuIFJlc291cmNlRXJyb3IoZXJyb3JEb21h
aW5Qb2xpY3ksIFBvbGljeUVycm9yQ2Fubm90U2hvd1VSTCwgcmVxdWVzdC51cmwoKSwgRVJST1Jf
U1RSSU5HKCJVUkwgY2Fubm90IGJlIHNob3duIikpOworfQorCitSZXNvdXJjZUVycm9yIGludGVy
cnVwdGVkRm9yUG9saWN5Q2hhbmdlRXJyb3IoY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0
KQoreworICAgIHJldHVybiBSZXNvdXJjZUVycm9yKGVycm9yRG9tYWluUG9saWN5LCBQb2xpY3lF
cnJvckZyYW1lTG9hZEludGVycnVwdGVkQnlQb2xpY3lDaGFuZ2UsIHJlcXVlc3QudXJsKCksIEVS
Uk9SX1NUUklORygiRnJhbWUgbG9hZCB3YXMgaW50ZXJydXB0ZWQiKSk7Cit9CisKK1Jlc291cmNl
RXJyb3IgY2Fubm90U2hvd01JTUVUeXBlRXJyb3IoY29uc3QgUmVzb3VyY2VSZXNwb25zZSYgcmVz
cG9uc2UpCit7CisgICAgcmV0dXJuIFJlc291cmNlRXJyb3IoZXJyb3JEb21haW5Qb2xpY3ksIFBv
bGljeUVycm9yQ2Fubm90U2hvd01pbWVUeXBlLCByZXNwb25zZS51cmwoKSwgRVJST1JfU1RSSU5H
KCJDb250ZW50IHdpdGggdGhlIHNwZWNpZmllZCBNSU1FIHR5cGUgY2Fubm90IGJlIHNob3duIikp
OworfQorCitSZXNvdXJjZUVycm9yIGZpbGVEb2VzTm90RXhpc3RFcnJvcihjb25zdCBSZXNvdXJj
ZVJlc3BvbnNlJiByZXNwb25zZSkKK3sKKyAgICByZXR1cm4gUmVzb3VyY2VFcnJvcihlcnJvckRv
bWFpbk5ldHdvcmssIE5ldHdvcmtFcnJvckZpbGVEb2VzTm90RXhpc3QsIHJlc3BvbnNlLnVybCgp
LCBFUlJPUl9TVFJJTkcoIkZpbGUgZG9lcyBub3QgZXhpc3QiKSk7Cit9CisKK1Jlc291cmNlRXJy
b3IgcGx1Z2luV2lsbEhhbmRsZUxvYWRFcnJvcihjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiByZXNw
b25zZSkKK3sKKyAgICByZXR1cm4gUmVzb3VyY2VFcnJvcihlcnJvckRvbWFpblBsdWdpbiwgUGx1
Z2luRXJyb3JXaWxsSGFuZGxlTG9hZCwgcmVzcG9uc2UudXJsKCksIEVSUk9SX1NUUklORygiUGx1
Z2luIHdpbGwgaGFuZGxlIGxvYWQiKSk7Cit9CisKK1Jlc291cmNlRXJyb3IgZG93bmxvYWROZXR3
b3JrRXJyb3IoY29uc3QgUmVzb3VyY2VFcnJvciYgbmV0d29ya0Vycm9yKQoreworICAgIHJldHVy
biBSZXNvdXJjZUVycm9yKGVycm9yRG9tYWluRG93bmxvYWQsIERvd25sb2FkRXJyb3JOZXR3b3Jr
LCBuZXR3b3JrRXJyb3IuZmFpbGluZ1VSTCgpLCBuZXR3b3JrRXJyb3IubG9jYWxpemVkRGVzY3Jp
cHRpb24oKSk7Cit9CisKK1Jlc291cmNlRXJyb3IgZG93bmxvYWRDYW5jZWxsZWRCeVVzZXJFcnJv
cihjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiByZXNwb25zZSkKK3sKKyAgICByZXR1cm4gUmVzb3Vy
Y2VFcnJvcihlcnJvckRvbWFpbkRvd25sb2FkLCBEb3dubG9hZEVycm9yQ2FuY2VsbGVkQnlVc2Vy
LCByZXNwb25zZS51cmwoKSwgRVJST1JfU1RSSU5HKCJVc2VyIGNhbmNlbGxlZCB0aGUgZG93bmxv
YWQiKSk7Cit9CisKK1Jlc291cmNlRXJyb3IgZG93bmxvYWREZXN0aW5hdGlvbkVycm9yKGNvbnN0
IFJlc291cmNlUmVzcG9uc2UmIHJlc3BvbnNlLCBjb25zdCBTdHJpbmcmIGVycm9yTWVzc2FnZSkK
K3sKKyAgICByZXR1cm4gUmVzb3VyY2VFcnJvcihlcnJvckRvbWFpbkRvd25sb2FkLCBEb3dubG9h
ZEVycm9yRGVzdGluYXRpb24sIHJlc3BvbnNlLnVybCgpLCBlcnJvck1lc3NhZ2UpOworfQorCitS
ZXNvdXJjZUVycm9yIHByaW50RXJyb3IoY29uc3QgVVJMJiBmYWlsaW5nVVJMLCBjb25zdCBTdHJp
bmcmIGVycm9yTWVzc2FnZSkKK3sKKyAgICByZXR1cm4gUmVzb3VyY2VFcnJvcihlcnJvckRvbWFp
blByaW50LCBQcmludEVycm9yR2VuZXJhbCwgZmFpbGluZ1VSTCwgZXJyb3JNZXNzYWdlKTsKK30K
KworUmVzb3VyY2VFcnJvciBwcmludGVyTm90Rm91bmRFcnJvcihjb25zdCBVUkwmIGZhaWxpbmdV
UkwpCit7CisgICAgcmV0dXJuIFJlc291cmNlRXJyb3IoZXJyb3JEb21haW5QcmludCwgUHJpbnRF
cnJvclByaW50ZXJOb3RGb3VuZCwgZmFpbGluZ1VSTCwgRVJST1JfU1RSSU5HKCJQcmludGVyIG5v
dCBmb3VuZCIpKTsKK30KKworUmVzb3VyY2VFcnJvciBpbnZhbGlkUGFnZVJhbmdlVG9QcmludChj
b25zdCBVUkwmIGZhaWxpbmdVUkwpCit7CisgICAgcmV0dXJuIFJlc291cmNlRXJyb3IoZXJyb3JE
b21haW5QcmludCwgUHJpbnRFcnJvckludmFsaWRQYWdlUmFuZ2UsIGZhaWxpbmdVUkwsIEVSUk9S
X1NUUklORygiSW52YWxpZCBwYWdlIHJhbmdlIikpOworfQorCitSZXNvdXJjZUVycm9yIGludGVy
bmFsRXJyb3IoY29uc3QgVVJMJiB1cmwpCit7CisgICAgcmV0dXJuIFJlc291cmNlRXJyb3Iod2Vi
S2l0RXJyb3JEb21haW4oKSwgUG9saWN5RXJyb3JJbnRlcm5hbCwgdXJsLCBFUlJPUl9TVFJJTkco
IkludGVybmFsIGVycm9yIikpOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS91bml4L0Vycm9yc1VuaXguaCBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL3VuaXgvRXJyb3JzVW5peC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjQxZjI1ZTUxY2E1
MGIyY2YzY2FiMzgwMzk4YTY5MTM2ODVmM2FiZmIKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS91bml4L0Vycm9yc1VuaXguaApAQCAtMCwwICsxLDg3IEBACisvKgor
ICogQ29weXJpZ2h0IChDKSAyMDExLCAyMDE2IElnYWxpYSBTLkwuCisgKgorICogVGhpcyBsaWJy
YXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICog
bW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJs
aWMKKyAqIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRp
b247IGVpdGhlcgorICogdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRp
b24pIGFueSBsYXRlciB2ZXJzaW9uLgorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRl
ZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICogYnV0IFdJVEhPVVQgQU5Z
IFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAqIE1FUkNI
QU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUg
R05VCisgKiBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4K
KyAqCisgKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGlicmFy
eSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgKiBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgc2Vl
IHRoZSBmaWxlIENPUFlJTkcuTElCLiAgSWYgbm90LCB3cml0ZSB0bworICogdGhlIEZyZWUgU29m
dHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwK
KyAqIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgorICovCisKKyNpZm5kZWYgRXJyb3JzVW5p
eF9oCisjZGVmaW5lIEVycm9yc1VuaXhfaAorCisjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5n
Lmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgUmVzb3VyY2VFcnJvcjsKK2NsYXNz
IFJlc291cmNlUmVxdWVzdDsKK2NsYXNzIFJlc291cmNlUmVzcG9uc2U7CitjbGFzcyBVUkw7CisK
K2NvbnN0IGNoYXIqIGNvbnN0IGVycm9yRG9tYWluTmV0d29yayA9ICJXZWJLaXROZXR3b3JrRXJy
b3IiOworY29uc3QgY2hhciogY29uc3QgZXJyb3JEb21haW5Qb2xpY3kgPSAiV2ViS2l0UG9saWN5
RXJyb3IiOworY29uc3QgY2hhciogY29uc3QgZXJyb3JEb21haW5QbHVnaW4gPSAiV2ViS2l0UGx1
Z2luRXJyb3IiOworY29uc3QgY2hhciogY29uc3QgZXJyb3JEb21haW5Eb3dubG9hZCA9ICJXZWJL
aXREb3dubG9hZEVycm9yIjsKK2NvbnN0IGNoYXIqIGNvbnN0IGVycm9yRG9tYWluUHJpbnQgPSAi
V2ViS2l0UHJpbnRFcnJvciI7CisKK2VudW0gTmV0d29ya0Vycm9yIHsKKyAgICBOZXR3b3JrRXJy
b3JGYWlsZWQgPSAzOTksCisgICAgTmV0d29ya0Vycm9yVW5rbm93blByb3RvY29sID0gMzAxLAor
ICAgIE5ldHdvcmtFcnJvckNhbmNlbGxlZCA9IDMwMiwKKyAgICBOZXR3b3JrRXJyb3JGaWxlRG9l
c05vdEV4aXN0ID0gMzAzLAorICAgIE5ldHdvcmtFcnJvclRyYW5zcG9ydCA9IDMwNCwKK307CisK
Ky8vIFN5bmMnZCB3aXRoIE1hYydzIFdlYktpdCBFcnJvcnMuCitlbnVtIFBvbGljeUVycm9yIHsK
KyAgICBQb2xpY3lFcnJvckludGVybmFsID0gMzAwLAorICAgIFBvbGljeUVycm9yRmFpbGVkID0g
MTk5LAorICAgIFBvbGljeUVycm9yQ2Fubm90U2hvd01pbWVUeXBlID0gMTAwLAorICAgIFBvbGlj
eUVycm9yQ2Fubm90U2hvd1VSTCA9IDEwMSwKKyAgICBQb2xpY3lFcnJvckZyYW1lTG9hZEludGVy
cnVwdGVkQnlQb2xpY3lDaGFuZ2UgPSAxMDIsCisgICAgUG9saWN5RXJyb3JDYW5ub3RVc2VSZXN0
cmljdGVkUG9ydCA9IDEwMywKKyAgICBQb2xpY3lFcnJvckJsb2NrZWRCeUNvbnRlbnRCbG9ja2Vy
ID0gMTA0LAorfTsKKworZW51bSBQbHVnaW5FcnJvciB7CisgICAgUGx1Z2luRXJyb3JGYWlsZWQg
PSAyOTksCisgICAgUGx1Z2luRXJyb3JDYW5ub3RGaW5kUGx1Z2luID0gMjAwLAorICAgIFBsdWdp
bkVycm9yQ2Fubm90TG9hZFBsdWdpbiA9IDIwMSwKKyAgICBQbHVnaW5FcnJvckphdmFVbmF2YWls
YWJsZSA9IDIwMiwKKyAgICBQbHVnaW5FcnJvckNvbm5lY3Rpb25DYW5jZWxsZWQgPSAyMDMsCisg
ICAgUGx1Z2luRXJyb3JXaWxsSGFuZGxlTG9hZCA9IDIwNAorfTsKKworZW51bSBEb3dubG9hZEVy
cm9yIHsKKyAgICBEb3dubG9hZEVycm9yTmV0d29yayA9IDQ5OSwKKyAgICBEb3dubG9hZEVycm9y
Q2FuY2VsbGVkQnlVc2VyID0gNDAwLAorICAgIERvd25sb2FkRXJyb3JEZXN0aW5hdGlvbiA9IDQw
MQorfTsKKworZW51bSBQcmludEVycm9yIHsKKyAgICBQcmludEVycm9yR2VuZXJhbCA9IDU5OSwK
KyAgICBQcmludEVycm9yUHJpbnRlck5vdEZvdW5kID0gNTAwLAorICAgIFByaW50RXJyb3JJbnZh
bGlkUGFnZVJhbmdlID0gNTAxCit9OworCitSZXNvdXJjZUVycm9yIGRvd25sb2FkTmV0d29ya0Vy
cm9yKGNvbnN0IFJlc291cmNlRXJyb3ImKTsKK1Jlc291cmNlRXJyb3IgZG93bmxvYWRDYW5jZWxs
ZWRCeVVzZXJFcnJvcihjb25zdCBSZXNvdXJjZVJlc3BvbnNlJik7CitSZXNvdXJjZUVycm9yIGRv
d25sb2FkRGVzdGluYXRpb25FcnJvcihjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiwgY29uc3QgU3Ry
aW5nJiBlcnJvck1lc3NhZ2UpOworUmVzb3VyY2VFcnJvciBwcmludEVycm9yKGNvbnN0IFVSTCYg
ZmFpbGluZ1VSTCwgY29uc3QgU3RyaW5nJiBlcnJvck1lc3NhZ2UpOworUmVzb3VyY2VFcnJvciBw
cmludGVyTm90Rm91bmRFcnJvcihjb25zdCBVUkwmIGZhaWxpbmdVUkwpOworUmVzb3VyY2VFcnJv
ciBpbnZhbGlkUGFnZVJhbmdlVG9QcmludChjb25zdCBVUkwmIGZhaWxpbmdVUkwpOworCit9CisK
KyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vd2luL0Vycm9yc1dp
bi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS93aW4vRXJyb3JzV2luLmNwcApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi41MmQ0MzExM2IwN2ZkODY0OWFjN2E0MzQ3YTRmNzg5NTkwYjk5ZjAxCi0tLSAvZGV2L251
bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vd2luL0Vycm9yc1dpbi5jcHAKQEAgLTAs
MCArMSw5NCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAwNi0yMDE2IEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJl
IG1ldDoKKyAqCisgKiAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiAgUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIgaW4gdGhlCisgKiAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqIDMuICBOZWl0aGVyIHRoZSBu
YW1lIG9mIEFwcGxlIEluYy4gKCJBcHBsZSIpIG5vciB0aGUgbmFtZXMgb2YKKyAqICAgICBpdHMg
Y29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBk
ZXJpdmVkCisgKiAgICAgZnJvbSB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Ig
d3JpdHRlbiBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkg
QVBQTEUgQU5EIElUUyBDT05UUklCVVRPUlMgIkFTIElTIiBBTkQgQU5ZCisgKiBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJ
TVBMSUVECisgKiBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCisgKiBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFM
TCBBUFBMRSBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZCisgKiBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJ
QUwgREFNQUdFUworICogKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVO
VCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOworICogTE9TUyBPRiBVU0UsIERBVEEs
IE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
CisgKiBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GCisgKiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgor
ICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJFcnJvcnMuaCIKKworI2luY2x1
ZGUgIkxvY2FsaXplZFN0cmluZ3MuaCIKKyNpbmNsdWRlICJSZXNvdXJjZUVycm9yLmgiCisjaW5j
bHVkZSAiUmVzb3VyY2VSZXF1ZXN0LmgiCisjaW5jbHVkZSAiUmVzb3VyY2VSZXNwb25zZS5oIgor
CituYW1lc3BhY2UgV2ViQ29yZSB7CisKKy8vIFRoZSBlbnVtZXJhdGlvbiBhbmQgZGVmaW5pdGlv
bnMgY29tZSBmcm9tIElXZWJFcnJvci5pZGwgYW5kCisvLyBJV2ViRXJyb3JQcml2YXRlLmlkbC4K
KworZW51bSB7CisgICAgV2ViS2l0RXJyb3JDYW5ub3RTaG93TUlNRVR5cGUgPSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgMTAwLAorICAgIFdlYktpdEVycm9yQ2Fubm90U2hvd1VSTCA9ICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEwMSwKKyAgICBXZWJLaXRFcnJvckZyYW1l
TG9hZEludGVycnVwdGVkQnlQb2xpY3lDaGFuZ2UgPSAgICAgICAgICAgICAxMDIsCisgICAgV2Vi
S2l0RXJyb3JDYW5ub3RVc2VSZXN0cmljdGVkUG9ydCA9ICAgICAgICAgICAgICAgICAgICAgICAg
MTAzLAorICAgIFdlYktpdEVycm9yUGx1Z0luV2lsbEhhbmRsZUxvYWQgPSAgICAgICAgICAgICAg
ICAgICAgICAgICAgIDIwNCwKK307CisKKyNkZWZpbmUgV2ViVVJMRXJyb3JEb21haW4gIkNGVVJM
RXJyb3JEb21haW4iCisKK1Jlc291cmNlRXJyb3IgY2FuY2VsbGVkRXJyb3IoY29uc3QgUmVzb3Vy
Y2VSZXF1ZXN0JiByZXF1ZXN0KQoreworICAgIC8vIEZJWE1FOiBOZWVkIENoaWNrZW5DYXQgdG8g
aW5jbHVkZSBDRk5ldHdvcmsvQ0ZVUkxFcnJvci5oIHRvIGdldCB0aGVzZSB2YWx1ZXMKKyAgICAv
LyBBbHRlcm5hdGl2ZWx5LCB3ZSBjb3VsZCBjcmVhdGUgb3VyIG93biBlcnJvciBkb21haW4vY29k
ZXMuCisgICAgcmV0dXJuIFJlc291cmNlRXJyb3IoU3RyaW5nKFdlYlVSTEVycm9yRG9tYWluKSwg
LTk5OSwgcmVxdWVzdC51cmwoKSwgU3RyaW5nKCJDYW5jZWxsZWQiKSk7Cit9CisKK1Jlc291cmNl
RXJyb3IgYmxvY2tlZEVycm9yKGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCkKK3sKKyAg
ICByZXR1cm4gUmVzb3VyY2VFcnJvcih3ZWJLaXRFcnJvckRvbWFpbigpLCBXZWJLaXRFcnJvckNh
bm5vdFVzZVJlc3RyaWN0ZWRQb3J0LCByZXF1ZXN0LnVybCgpLCBXRUJfVUlfU1RSSU5HKCJOb3Qg
YWxsb3dlZCB0byB1c2UgcmVzdHJpY3RlZCBuZXR3b3JrIHBvcnQiLCAiV2ViS2l0RXJyb3JDYW5u
b3RVc2VSZXN0cmljdGVkUG9ydCBkZXNjcmlwdGlvbiIpKTsKK30KKworUmVzb3VyY2VFcnJvciBi
bG9ja2VkQnlDb250ZW50QmxvY2tlckVycm9yKGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVz
dCkKK3sKKyAgICBSRUxFQVNFX0FTU0VSVF9OT1RfUkVBQ0hFRCgpOyAvLyBDb250ZW50IEJsb2Nr
ZXJzIGFyZSBub3QgZW5hYmxlZCBmb3IgV0sxLgorfQorCitSZXNvdXJjZUVycm9yIGNhbm5vdFNo
b3dVUkxFcnJvcihjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QpCit7CisgICAgcmV0dXJu
IFJlc291cmNlRXJyb3Iod2ViS2l0RXJyb3JEb21haW4oKSwgV2ViS2l0RXJyb3JDYW5ub3RTaG93
VVJMLCByZXF1ZXN0LnVybCgpLCBXRUJfVUlfU1RSSU5HKCJUaGUgVVJMIGNhblx4RTJceDgwXHg5
OXQgYmUgc2hvd24iLCAiV2ViS2l0RXJyb3JDYW5ub3RTaG93VVJMIGRlc2NyaXB0aW9uIikpOwor
fQorCitSZXNvdXJjZUVycm9yIGludGVycnVwdGVkRm9yUG9saWN5Q2hhbmdlRXJyb3IoY29uc3Qg
UmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0KQoreworICAgIHJldHVybiBSZXNvdXJjZUVycm9yKHdl
YktpdEVycm9yRG9tYWluKCksIFdlYktpdEVycm9yRnJhbWVMb2FkSW50ZXJydXB0ZWRCeVBvbGlj
eUNoYW5nZSwgcmVxdWVzdC51cmwoKSwgV0VCX1VJX1NUUklORygiRnJhbWUgbG9hZCBpbnRlcnJ1
cHRlZCIsICJXZWJLaXRFcnJvckZyYW1lTG9hZEludGVycnVwdGVkQnlQb2xpY3lDaGFuZ2UgZGVz
Y3JpcHRpb24iKSk7Cit9CisKK1Jlc291cmNlRXJyb3IgY2Fubm90U2hvd01JTUVUeXBlRXJyb3Io
Y29uc3QgUmVzb3VyY2VSZXNwb25zZSYgcmVzcG9uc2UpCit7CisgICAgcmV0dXJuIFJlc291cmNl
RXJyb3IoU3RyaW5nKCksIFdlYktpdEVycm9yQ2Fubm90U2hvd01JTUVUeXBlLCByZXNwb25zZS51
cmwoKSwgV0VCX1VJX1NUUklORygiQ29udGVudCB3aXRoIHNwZWNpZmllZCBNSU1FIHR5cGUgY2Fu
XHhFMlx4ODBceDk5dCBiZSBzaG93biIsICJXZWJLaXRFcnJvckNhbm5vdFNob3dNSU1FVHlwZSBk
ZXNjcmlwdGlvbiIpKTsKK30KKworUmVzb3VyY2VFcnJvciBmaWxlRG9lc05vdEV4aXN0RXJyb3Io
Y29uc3QgUmVzb3VyY2VSZXNwb25zZSYgcmVzcG9uc2UpCit7CisgICAgcmV0dXJuIFJlc291cmNl
RXJyb3IoU3RyaW5nKFdlYlVSTEVycm9yRG9tYWluKSwgLTExMDAsIHJlc3BvbnNlLnVybCgpLCBT
dHJpbmcoIkZpbGUgZG9lcyBub3QgZXhpc3QuIikpOworfQorCitSZXNvdXJjZUVycm9yIHBsdWdp
bldpbGxIYW5kbGVMb2FkRXJyb3IoY29uc3QgUmVzb3VyY2VSZXNwb25zZSYgcmVzcG9uc2UpCit7
CisgICAgcmV0dXJuIFJlc291cmNlRXJyb3Iod2ViS2l0RXJyb3JEb21haW4oKSwgV2ViS2l0RXJy
b3JQbHVnSW5XaWxsSGFuZGxlTG9hZCwgcmVzcG9uc2UudXJsKCksIFdFQl9VSV9TVFJJTkcoIlBs
dWctaW4gaGFuZGxlZCBsb2FkIiwgIldlYktpdEVycm9yUGx1Z0luV2lsbEhhbmRsZUxvYWQgZGVz
Y3JpcHRpb24iKSk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmggYi9T
b3VyY2UvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5oCmlu
ZGV4IDI2NzlkN2M5ZGY4ZGY4ZTNlM2E2YTFlNTM3MDhlYTFjODcyMWY4NzIuLmRmOGQ5Nzk4Y2Nj
NTkyMTFkYTkyNWY2MWY3NjgxOTEyM2ZmNzJiODggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
bWFjL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmgKKysrIGIvU291cmNlL1dl
YktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuaApAQCAtMTU3LDE5
ICsxNTcsNiBAQCBwcml2YXRlOgogICAgIHZvaWQgZGlkUnVuSW5zZWN1cmVDb250ZW50KFdlYkNv
cmU6OlNlY3VyaXR5T3JpZ2luKiwgY29uc3QgV2ViQ29yZTo6VVJMJikgb3ZlcnJpZGU7CiAgICAg
dm9pZCBkaWREZXRlY3RYU1MoY29uc3QgV2ViQ29yZTo6VVJMJiwgYm9vbCBkaWRCbG9ja0VudGly
ZVBhZ2UpIG92ZXJyaWRlOwogCi0gICAgV2ViQ29yZTo6UmVzb3VyY2VFcnJvciBjYW5jZWxsZWRF
cnJvcihjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmKSBvdmVycmlkZTsKLSAgICBXZWJD
b3JlOjpSZXNvdXJjZUVycm9yIGJsb2NrZWRFcnJvcihjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJl
cXVlc3QmKSBvdmVycmlkZTsKLSAgICBXZWJDb3JlOjpSZXNvdXJjZUVycm9yIGJsb2NrZWRCeUNv
bnRlbnRCbG9ja2VyRXJyb3IoY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0Jikgb3ZlcnJp
ZGU7Ci0gICAgV2ViQ29yZTo6UmVzb3VyY2VFcnJvciBjYW5ub3RTaG93VVJMRXJyb3IoY29uc3Qg
V2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0Jikgb3ZlcnJpZGU7Ci0gICAgV2ViQ29yZTo6UmVzb3Vy
Y2VFcnJvciBpbnRlcnJ1cHRlZEZvclBvbGljeUNoYW5nZUVycm9yKGNvbnN0IFdlYkNvcmU6OlJl
c291cmNlUmVxdWVzdCYpIG92ZXJyaWRlOwotI2lmIEVOQUJMRShDT05URU5UX0ZJTFRFUklORykK
LSAgICBXZWJDb3JlOjpSZXNvdXJjZUVycm9yIGJsb2NrZWRCeUNvbnRlbnRGaWx0ZXJFcnJvcihj
b25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmKSBvdmVycmlkZTsKLSNlbmRpZgotCi0gICAg
V2ViQ29yZTo6UmVzb3VyY2VFcnJvciBjYW5ub3RTaG93TUlNRVR5cGVFcnJvcihjb25zdCBXZWJD
b3JlOjpSZXNvdXJjZVJlc3BvbnNlJikgb3ZlcnJpZGU7Ci0gICAgV2ViQ29yZTo6UmVzb3VyY2VF
cnJvciBmaWxlRG9lc05vdEV4aXN0RXJyb3IoY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25z
ZSYpIG92ZXJyaWRlOwotICAgIFdlYkNvcmU6OlJlc291cmNlRXJyb3IgcGx1Z2luV2lsbEhhbmRs
ZUxvYWRFcnJvcihjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlJikgb3ZlcnJpZGU7Ci0K
ICAgICBib29sIHNob3VsZEZhbGxCYWNrKGNvbnN0IFdlYkNvcmU6OlJlc291cmNlRXJyb3ImKSBv
dmVycmlkZTsKIAogICAgIFdURjo6U3RyaW5nIHVzZXJBZ2VudChjb25zdCBXZWJDb3JlOjpVUkwm
KSBvdmVycmlkZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0
L1dlYkZyYW1lTG9hZGVyQ2xpZW50Lm1tIGIvU291cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBv
cnQvV2ViRnJhbWVMb2FkZXJDbGllbnQubW0KaW5kZXggZWNmMmY1MDE1NmFkMmRmZTE1YjRmNGFk
MjFkZmM5N2YwM2FmMjZjZC4uNzE5ZWQwNmUyNzYyNWVlOTFkMWZlMzhiMDYyYzgwOWIxMzk0NmNl
ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVM
b2FkZXJDbGllbnQubW0KKysrIGIvU291cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2Vi
RnJhbWVMb2FkZXJDbGllbnQubW0KQEAgLTExMjMsNTggKzExMjMsNiBAQCB2b2lkIFdlYkZyYW1l
TG9hZGVyQ2xpZW50OjpkaWREZXRlY3RYU1MoY29uc3QgVVJMJiBpbnNlY3VyZVVSTCwgYm9vbCBk
aWRCbG9ja0VudAogICAgIH0KIH0KIAotUmVzb3VyY2VFcnJvciBXZWJGcmFtZUxvYWRlckNsaWVu
dDo6Y2FuY2VsbGVkRXJyb3IoY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0KQotewotICAg
IHJldHVybiBbTlNFcnJvciBfd2ViS2l0RXJyb3JXaXRoRG9tYWluOk5TVVJMRXJyb3JEb21haW4g
Y29kZTpOU1VSTEVycm9yQ2FuY2VsbGVkIFVSTDpyZXF1ZXN0LnVybCgpXTsKLX0KLSAgICAKLVJl
c291cmNlRXJyb3IgV2ViRnJhbWVMb2FkZXJDbGllbnQ6OmJsb2NrZWRFcnJvcihjb25zdCBSZXNv
dXJjZVJlcXVlc3QmIHJlcXVlc3QpCi17Ci0gICAgcmV0dXJuIFtOU0Vycm9yIF93ZWJLaXRFcnJv
cldpdGhEb21haW46V2ViS2l0RXJyb3JEb21haW4gY29kZTpXZWJLaXRFcnJvckNhbm5vdFVzZVJl
c3RyaWN0ZWRQb3J0IFVSTDpyZXF1ZXN0LnVybCgpXTsKLX0KLQotUmVzb3VyY2VFcnJvciBXZWJG
cmFtZUxvYWRlckNsaWVudDo6YmxvY2tlZEJ5Q29udGVudEJsb2NrZXJFcnJvcihjb25zdCBSZXNv
dXJjZVJlcXVlc3QmIHJlcXVlc3QpCi17Ci0gICAgUkVMRUFTRV9BU1NFUlRfTk9UX1JFQUNIRUQo
KTsgLy8gQ29udGVudCBibG9ja2VycyBhcmUgbm90IGVuYWJsZWQgaW4gV2ViS2l0MS4KLX0KLQot
UmVzb3VyY2VFcnJvciBXZWJGcmFtZUxvYWRlckNsaWVudDo6Y2Fubm90U2hvd1VSTEVycm9yKGNv
bnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCkKLXsKLSAgICByZXR1cm4gW05TRXJyb3IgX3dl
YktpdEVycm9yV2l0aERvbWFpbjpXZWJLaXRFcnJvckRvbWFpbiBjb2RlOldlYktpdEVycm9yQ2Fu
bm90U2hvd1VSTCBVUkw6cmVxdWVzdC51cmwoKV07Ci19Ci0KLVJlc291cmNlRXJyb3IgV2ViRnJh
bWVMb2FkZXJDbGllbnQ6OmludGVycnVwdGVkRm9yUG9saWN5Q2hhbmdlRXJyb3IoY29uc3QgUmVz
b3VyY2VSZXF1ZXN0JiByZXF1ZXN0KQotewotICAgIHJldHVybiBbTlNFcnJvciBfd2ViS2l0RXJy
b3JXaXRoRG9tYWluOldlYktpdEVycm9yRG9tYWluIGNvZGU6V2ViS2l0RXJyb3JGcmFtZUxvYWRJ
bnRlcnJ1cHRlZEJ5UG9saWN5Q2hhbmdlIFVSTDpyZXF1ZXN0LnVybCgpXTsKLX0KLQotI2lmIEVO
QUJMRShDT05URU5UX0ZJTFRFUklORykKLVJlc291cmNlRXJyb3IgV2ViRnJhbWVMb2FkZXJDbGll
bnQ6OmJsb2NrZWRCeUNvbnRlbnRGaWx0ZXJFcnJvcihjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJl
cXVlc3QpCi17Ci0gICAgcmV0dXJuIFtOU0Vycm9yIF93ZWJLaXRFcnJvcldpdGhEb21haW46V2Vi
S2l0RXJyb3JEb21haW4gY29kZTpXZWJLaXRFcnJvckZyYW1lTG9hZEJsb2NrZWRCeUNvbnRlbnRG
aWx0ZXIgVVJMOnJlcXVlc3QudXJsKCldOwotfQotI2VuZGlmCi0KLVJlc291cmNlRXJyb3IgV2Vi
RnJhbWVMb2FkZXJDbGllbnQ6OmNhbm5vdFNob3dNSU1FVHlwZUVycm9yKGNvbnN0IFJlc291cmNl
UmVzcG9uc2UmIHJlc3BvbnNlKQotewotICAgIHJldHVybiBbTlNFcnJvciBfd2ViS2l0RXJyb3JX
aXRoRG9tYWluOk5TVVJMRXJyb3JEb21haW4gY29kZTpXZWJLaXRFcnJvckNhbm5vdFNob3dNSU1F
VHlwZSBVUkw6cmVzcG9uc2UudXJsKCldOwotfQotCi1SZXNvdXJjZUVycm9yIFdlYkZyYW1lTG9h
ZGVyQ2xpZW50OjpmaWxlRG9lc05vdEV4aXN0RXJyb3IoY29uc3QgUmVzb3VyY2VSZXNwb25zZSYg
cmVzcG9uc2UpCi17Ci0gICAgcmV0dXJuIFtOU0Vycm9yIF93ZWJLaXRFcnJvcldpdGhEb21haW46
TlNVUkxFcnJvckRvbWFpbiBjb2RlOk5TVVJMRXJyb3JGaWxlRG9lc05vdEV4aXN0IFVSTDpyZXNw
b25zZS51cmwoKV07ICAgIAotfQotCi1SZXNvdXJjZUVycm9yIFdlYkZyYW1lTG9hZGVyQ2xpZW50
OjpwbHVnaW5XaWxsSGFuZGxlTG9hZEVycm9yKGNvbnN0IFJlc291cmNlUmVzcG9uc2UmIHJlc3Bv
bnNlKQotewotICAgIE5TRXJyb3IgKmVycm9yID0gW1tOU0Vycm9yIGFsbG9jXSBfaW5pdFdpdGhQ
bHVnaW5FcnJvckNvZGU6V2ViS2l0RXJyb3JQbHVnSW5XaWxsSGFuZGxlTG9hZAotICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRlbnRVUkw6cmVz
cG9uc2UudXJsKCkKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBwbHVnaW5QYWdlVVJMOm5pbAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHBsdWdpbk5hbWU6bmlsCi0gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBNSU1FVHlwZTpyZXNwb25zZS5taW1lVHlw
ZSgpXTsKLSAgICByZXR1cm4gW2Vycm9yIGF1dG9yZWxlYXNlXTsKLX0KLQogYm9vbCBXZWJGcmFt
ZUxvYWRlckNsaWVudDo6c2hvdWxkRmFsbEJhY2soY29uc3QgUmVzb3VyY2VFcnJvciYgZXJyb3Ip
CiB7CiAgICAgLy8gRklYTUU6IE5lZWRzIHRvIGNoZWNrIGRvbWFpbi4KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQu
bW0gYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZU5ldHdvcmtpbmdD
b250ZXh0Lm1tCmluZGV4IDkzZTc0YmJlNjI4NGI2M2MyMzIxMjlkMTc0OGUwZDkxNjJkMWExOWMu
LjE3OTM2MzdmOTJiZGQwZmU3YmQ5Mzk0ODc0OTA4ZGM3MjQwYzFmMjIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQu
bW0KKysrIGIvU291cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVOZXR3b3Jr
aW5nQ29udGV4dC5tbQpAQCAtMjgsNiArMjgsNyBAQAogI2ltcG9ydCAiV2ViRnJhbWVJbnRlcm5h
bC5oIgogI2ltcG9ydCAiV2ViVmlld1ByaXZhdGUuaCIKICNpbXBvcnQgPFdlYkNvcmUvQ0ZOZXR3
b3JrU1BJLmg+CisjaW1wb3J0IDxXZWJDb3JlL0Vycm9ycy5oPgogI2ltcG9ydCA8V2ViQ29yZS9G
cmFtZUxvYWRlci5oPgogI2ltcG9ydCA8V2ViQ29yZS9GcmFtZUxvYWRlckNsaWVudC5oPgogI2lt
cG9ydCA8V2ViQ29yZS9OZXR3b3JrU3RvcmFnZVNlc3Npb24uaD4KQEAgLTkxLDcgKzkyLDcgQEAg
U3RyaW5nIFdlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQ6OnNvdXJjZUFwcGxpY2F0aW9uSWRlbnRp
ZmllcigpIGNvbnN0CiAKIFJlc291cmNlRXJyb3IgV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dDo6
YmxvY2tlZEVycm9yKGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCkgY29uc3QKIHsKLSAg
ICByZXR1cm4gZnJhbWUoKS0+bG9hZGVyKCkuY2xpZW50KCkuYmxvY2tlZEVycm9yKHJlcXVlc3Qp
OworICAgIHJldHVybiBXZWJDb3JlOjpibG9ja2VkRXJyb3IocmVxdWVzdCk7CiB9CiAKIE5ldHdv
cmtTdG9yYWdlU2Vzc2lvbiYgV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dDo6c3RvcmFnZVNlc3Np
b24oKSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJIVE1M
UmVwcmVzZW50YXRpb24ubW0gYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYkhUTUxSZXBy
ZXNlbnRhdGlvbi5tbQppbmRleCAxOThlZDVmMjM4NGQ3OGYzOGEwMDYwNjgwODE2ZGRlNmZkY2Rh
ZjZlLi4zZmQ3YjU0Nzk4MjZmNDM5YWYxMTAwZTUzY2VlOTEzOWRjMDFlZTA0IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYkhUTUxSZXByZXNlbnRhdGlvbi5tbQorKysg
Yi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYkhUTUxSZXByZXNlbnRhdGlvbi5tbQpAQCAt
NDUsNiArNDUsNyBAQAogI2ltcG9ydCA8V2ViQ29yZS9Eb2N1bWVudC5oPgogI2ltcG9ydCA8V2Vi
Q29yZS9Eb2N1bWVudExvYWRlci5oPgogI2ltcG9ydCA8V2ViQ29yZS9FZGl0b3IuaD4KKyNpbXBv
cnQgPFdlYkNvcmUvRXJyb3JzLmg+CiAjaW1wb3J0IDxXZWJDb3JlL0ZyYW1lLmg+CiAjaW1wb3J0
IDxXZWJDb3JlL0ZyYW1lTG9hZGVyLmg+CiAjaW1wb3J0IDxXZWJDb3JlL0ZyYW1lTG9hZGVyQ2xp
ZW50Lmg+CkBAIC0xODAsNyArMTgxLDcgQEAgc3RhdGljIFJldGFpblB0cjxOU0FycmF5PiBuZXdB
cnJheVdpdGhTdHJpbmdzKGNvbnN0IEhhc2hTZXQ8U3RyaW5nLCBBU0NJSUNhc2VJbnMKICAgICAv
LyBJZiB0aGUgZG9jdW1lbnQgaXMgYSBzdGFuZC1hbG9uZSBtZWRpYSBkb2N1bWVudCwgbm93IGlz
IHRoZSByaWdodCB0aW1lIHRvIGNhbmNlbCB0aGUgV2ViS2l0IGxvYWQKICAgICBGcmFtZSogY29y
ZUZyYW1lID0gY29yZSh3ZWJGcmFtZSk7CiAgICAgaWYgKGNvcmVGcmFtZS0+ZG9jdW1lbnQoKS0+
aXNNZWRpYURvY3VtZW50KCkpCi0gICAgICAgIGNvcmVGcmFtZS0+bG9hZGVyKCkuZG9jdW1lbnRM
b2FkZXIoKS0+Y2FuY2VsTWFpblJlc291cmNlTG9hZChjb3JlRnJhbWUtPmxvYWRlcigpLmNsaWVu
dCgpLnBsdWdpbldpbGxIYW5kbGVMb2FkRXJyb3IoY29yZUZyYW1lLT5sb2FkZXIoKS5kb2N1bWVu
dExvYWRlcigpLT5yZXNwb25zZSgpKSk7CisgICAgICAgIGNvcmVGcmFtZS0+bG9hZGVyKCkuZG9j
dW1lbnRMb2FkZXIoKS0+Y2FuY2VsTWFpblJlc291cmNlTG9hZChXZWJDb3JlOjpwbHVnaW5XaWxs
SGFuZGxlTG9hZEVycm9yKGNvcmVGcmFtZS0+bG9hZGVyKCkuZG9jdW1lbnRMb2FkZXIoKS0+cmVz
cG9uc2UoKSkpOwogCiAgICAgaWYgKF9wcml2YXRlLT5wbHVnaW5WaWV3KSB7CiAgICAgICAgIGlm
ICghX3ByaXZhdGUtPmhhc1NlbnRSZXNwb25zZVRvUGx1Z2luKSB7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L3dpbi9QbHVnaW5zL1BsdWdpblN0cmVhbS5jcHAgYi9Tb3VyY2UvV2ViS2l0L3dp
bi9QbHVnaW5zL1BsdWdpblN0cmVhbS5jcHAKaW5kZXggMmVmMzk1NWJlNjFhOGQwNTQyNGFkMTM5
OTYyZGQwZDdmYTZhZTQ0NC4uYmU3ZGRjMDIyOWE5ZWUyMGViMzZjOTEwNmQyMjM0NDBiYWY1NjY4
NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC93aW4vUGx1Z2lucy9QbHVnaW5TdHJlYW0uY3Bw
CisrKyBiL1NvdXJjZS9XZWJLaXQvd2luL1BsdWdpbnMvUGx1Z2luU3RyZWFtLmNwcApAQCAtMzUs
NiArMzUsNyBAQAogI2luY2x1ZGUgIlNoYXJlZEJ1ZmZlci5oIgogI2luY2x1ZGUgIlN1YnJlc291
cmNlTG9hZGVyLmgiCiAjaW5jbHVkZSAiV2ViUmVzb3VyY2VMb2FkU2NoZWR1bGVyLmgiCisjaW5j
bHVkZSA8V2ViQ29yZS9FcnJvcnMuaD4KICNpbmNsdWRlIDx3dGYvU3RyaW5nRXh0cmFzLmg+CiAj
aW5jbHVkZSA8d3RmL3RleHQvQ1N0cmluZy5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1N0cmluZ0J1
aWxkZXIuaD4KQEAgLTExMSw3ICsxMTIsNyBAQCB2b2lkIFBsdWdpblN0cmVhbTo6c3RvcCgpCiAg
ICAgICAgIEFTU0VSVChkb2N1bWVudExvYWRlcik7CiAKICAgICAgICAgaWYgKGRvY3VtZW50TG9h
ZGVyLT5pc0xvYWRpbmdNYWluUmVzb3VyY2UoKSkKLSAgICAgICAgICAgIGRvY3VtZW50TG9hZGVy
LT5jYW5jZWxNYWluUmVzb3VyY2VMb2FkKG1fZnJhbWUtPmxvYWRlcigpLmNhbmNlbGxlZEVycm9y
KG1fcmVzb3VyY2VSZXF1ZXN0KSk7CisgICAgICAgICAgICBkb2N1bWVudExvYWRlci0+Y2FuY2Vs
TWFpblJlc291cmNlTG9hZChXZWJDb3JlOjpjYW5jZWxsZWRFcnJvcihtX3Jlc291cmNlUmVxdWVz
dCkpOwogCiAgICAgICAgIHJldHVybjsKICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5jcHAgYi9Tb3VyY2UvV2Vi
S2l0L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5jcHAKaW5kZXggYzZl
MzM0NDA0Y2ZlYWEwM2UyYmZhMTVmNmU0MTBiMjE5N2Q2MWU2Ni4uYmIyMjQyNzk0YmM1ZGM1MWE1
ZTI4Zjg2NjM5NDhhNmYxMGU5YjhjMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC93aW4vV2Vi
Q29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQv
d2luL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmNwcApAQCAtNjIsNiArNjIs
NyBAQAogI2luY2x1ZGUgPFdlYkNvcmUvQ2FjaGVkRnJhbWUuaD4KICNpbmNsdWRlIDxXZWJDb3Jl
L0ROUy5oPgogI2luY2x1ZGUgPFdlYkNvcmUvRG9jdW1lbnRMb2FkZXIuaD4KKyNpbmNsdWRlIDxX
ZWJDb3JlL0Vycm9ycy5oPgogI2luY2x1ZGUgPFdlYkNvcmUvRm9ybVN0YXRlLmg+CiAjaW5jbHVk
ZSA8V2ViQ29yZS9GcmFtZS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvRnJhbWVMb2FkZXIuaD4KQEAg
LTgxOSw0OCArODIwLDYgQEAgdm9pZCBXZWJGcmFtZUxvYWRlckNsaWVudDo6ZGlkRGV0ZWN0WFNT
KGNvbnN0IFVSTCYsIGJvb2wpCiAgICAgLy8gRklYTUU6IHByb3BvZ2F0ZSBjYWxsIGludG8gdGhl
IHByaXZhdGUgZGVsZWdhdGUuCiB9CiAKLVJlc291cmNlRXJyb3IgV2ViRnJhbWVMb2FkZXJDbGll
bnQ6OmNhbmNlbGxlZEVycm9yKGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCkKLXsKLSAg
ICAvLyBGSVhNRTogTmVlZCBDaGlja2VuQ2F0IHRvIGluY2x1ZGUgQ0ZOZXR3b3JrL0NGVVJMRXJy
b3IuaCB0byBnZXQgdGhlc2UgdmFsdWVzCi0gICAgLy8gQWx0ZXJuYXRpdmVseSwgd2UgY291bGQg
Y3JlYXRlIG91ciBvd24gZXJyb3IgZG9tYWluL2NvZGVzLgotICAgIHJldHVybiBSZXNvdXJjZUVy
cm9yKFN0cmluZyhXZWJVUkxFcnJvckRvbWFpbiksIC05OTksIHJlcXVlc3QudXJsKCksIFN0cmlu
ZygiQ2FuY2VsbGVkIikpOwotfQotCi1SZXNvdXJjZUVycm9yIFdlYkZyYW1lTG9hZGVyQ2xpZW50
OjpibG9ja2VkRXJyb3IoY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0KQotewotICAgIHJl
dHVybiBSZXNvdXJjZUVycm9yKFN0cmluZyhXZWJLaXRFcnJvckRvbWFpbiksIFdlYktpdEVycm9y
Q2Fubm90VXNlUmVzdHJpY3RlZFBvcnQsIHJlcXVlc3QudXJsKCksIFdFQl9VSV9TVFJJTkcoIk5v
dCBhbGxvd2VkIHRvIHVzZSByZXN0cmljdGVkIG5ldHdvcmsgcG9ydCIsICJXZWJLaXRFcnJvckNh
bm5vdFVzZVJlc3RyaWN0ZWRQb3J0IGRlc2NyaXB0aW9uIikpOwotfQotCi1SZXNvdXJjZUVycm9y
IFdlYkZyYW1lTG9hZGVyQ2xpZW50OjpibG9ja2VkQnlDb250ZW50QmxvY2tlckVycm9yKGNvbnN0
IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCkKLXsKLSAgICBSRUxFQVNFX0FTU0VSVF9OT1RfUkVB
Q0hFRCgpOyAvLyBDb250ZW50IEJsb2NrZXJzIGFyZSBub3QgZW5hYmxlZCBmb3IgV0sxLgotfQot
Ci1SZXNvdXJjZUVycm9yIFdlYkZyYW1lTG9hZGVyQ2xpZW50OjpjYW5ub3RTaG93VVJMRXJyb3Io
Y29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0KQotewotICAgIHJldHVybiBSZXNvdXJjZUVy
cm9yKFN0cmluZyhXZWJLaXRFcnJvckRvbWFpbiksIFdlYktpdEVycm9yQ2Fubm90U2hvd1VSTCwg
cmVxdWVzdC51cmwoKSwgV0VCX1VJX1NUUklORygiVGhlIFVSTCBjYW5ceEUyXHg4MFx4OTl0IGJl
IHNob3duIiwgIldlYktpdEVycm9yQ2Fubm90U2hvd1VSTCBkZXNjcmlwdGlvbiIpKTsKLX0KLQot
UmVzb3VyY2VFcnJvciBXZWJGcmFtZUxvYWRlckNsaWVudDo6aW50ZXJydXB0ZWRGb3JQb2xpY3lD
aGFuZ2VFcnJvcihjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QpCi17Ci0gICAgcmV0dXJu
IFJlc291cmNlRXJyb3IoU3RyaW5nKFdlYktpdEVycm9yRG9tYWluKSwgV2ViS2l0RXJyb3JGcmFt
ZUxvYWRJbnRlcnJ1cHRlZEJ5UG9saWN5Q2hhbmdlLCByZXF1ZXN0LnVybCgpLCBXRUJfVUlfU1RS
SU5HKCJGcmFtZSBsb2FkIGludGVycnVwdGVkIiwgIldlYktpdEVycm9yRnJhbWVMb2FkSW50ZXJy
dXB0ZWRCeVBvbGljeUNoYW5nZSBkZXNjcmlwdGlvbiIpKTsKLX0KLQotUmVzb3VyY2VFcnJvciBX
ZWJGcmFtZUxvYWRlckNsaWVudDo6Y2Fubm90U2hvd01JTUVUeXBlRXJyb3IoY29uc3QgUmVzb3Vy
Y2VSZXNwb25zZSYgcmVzcG9uc2UpCi17Ci0gICAgcmV0dXJuIFJlc291cmNlRXJyb3IoU3RyaW5n
KCksIFdlYktpdEVycm9yQ2Fubm90U2hvd01JTUVUeXBlLCByZXNwb25zZS51cmwoKSwgV0VCX1VJ
X1NUUklORygiQ29udGVudCB3aXRoIHNwZWNpZmllZCBNSU1FIHR5cGUgY2FuXHhFMlx4ODBceDk5
dCBiZSBzaG93biIsICJXZWJLaXRFcnJvckNhbm5vdFNob3dNSU1FVHlwZSBkZXNjcmlwdGlvbiIp
KTsKLX0KLQotUmVzb3VyY2VFcnJvciBXZWJGcmFtZUxvYWRlckNsaWVudDo6ZmlsZURvZXNOb3RF
eGlzdEVycm9yKGNvbnN0IFJlc291cmNlUmVzcG9uc2UmIHJlc3BvbnNlKQotewotICAgIHJldHVy
biBSZXNvdXJjZUVycm9yKFN0cmluZyhXZWJVUkxFcnJvckRvbWFpbiksIC0xMTAwLCByZXNwb25z
ZS51cmwoKSwgU3RyaW5nKCJGaWxlIGRvZXMgbm90IGV4aXN0LiIpKTsKLX0KLQotUmVzb3VyY2VF
cnJvciBXZWJGcmFtZUxvYWRlckNsaWVudDo6cGx1Z2luV2lsbEhhbmRsZUxvYWRFcnJvcihjb25z
dCBSZXNvdXJjZVJlc3BvbnNlJiByZXNwb25zZSkKLXsKLSAgICByZXR1cm4gUmVzb3VyY2VFcnJv
cihTdHJpbmcoV2ViS2l0RXJyb3JEb21haW4pLCBXZWJLaXRFcnJvclBsdWdJbldpbGxIYW5kbGVM
b2FkLCByZXNwb25zZS51cmwoKSwgV0VCX1VJX1NUUklORygiUGx1Zy1pbiBoYW5kbGVkIGxvYWQi
LCAiV2ViS2l0RXJyb3JQbHVnSW5XaWxsSGFuZGxlTG9hZCBkZXNjcmlwdGlvbiIpKTsKLX0KLQog
Ym9vbCBXZWJGcmFtZUxvYWRlckNsaWVudDo6c2hvdWxkRmFsbEJhY2soY29uc3QgUmVzb3VyY2VF
cnJvciYgZXJyb3IpCiB7CiAgICAgaWYgKGVycm9yLmVycm9yQ29kZSgpID09IFdlYlVSTEVycm9y
Q2FuY2VsbGVkICYmIGVycm9yLmRvbWFpbigpID09IFN0cmluZyhXZWJVUkxFcnJvckRvbWFpbikp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxv
YWRlckNsaWVudC5oIGIvU291cmNlL1dlYktpdC93aW4vV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVM
b2FkZXJDbGllbnQuaAppbmRleCAwZWFhZTVjNWUxYjgxYTU1NTM1OGFiNmIzMDY5MGEyYmVkMGI5
NzUxLi5hZDUxNmEwNDM3ZDNhNzI0NjRhMmI2MWUyNjhlNWEwNjJiZjNmM2NjIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5o
CisrKyBiL1NvdXJjZS9XZWJLaXQvd2luL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xp
ZW50LmgKQEAgLTEzNiwxNSArMTM2LDYgQEAgcHVibGljOgogICAgIHZvaWQgZGlkUnVuSW5zZWN1
cmVDb250ZW50KFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luKiwgY29uc3QgV2ViQ29yZTo6VVJMJikg
b3ZlcnJpZGU7CiAgICAgdm9pZCBkaWREZXRlY3RYU1MoY29uc3QgV2ViQ29yZTo6VVJMJiwgYm9v
bCBkaWRCbG9ja0VudGlyZVBhZ2UpIG92ZXJyaWRlOwogCi0gICAgV2ViQ29yZTo6UmVzb3VyY2VF
cnJvciBjYW5jZWxsZWRFcnJvcihjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmKSBvdmVy
cmlkZTsKLSAgICBXZWJDb3JlOjpSZXNvdXJjZUVycm9yIGJsb2NrZWRFcnJvcihjb25zdCBXZWJD
b3JlOjpSZXNvdXJjZVJlcXVlc3QmKSBvdmVycmlkZTsKLSAgICBXZWJDb3JlOjpSZXNvdXJjZUVy
cm9yIGJsb2NrZWRCeUNvbnRlbnRCbG9ja2VyRXJyb3IoY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VS
ZXF1ZXN0Jikgb3ZlcnJpZGU7Ci0gICAgV2ViQ29yZTo6UmVzb3VyY2VFcnJvciBjYW5ub3RTaG93
VVJMRXJyb3IoY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0Jikgb3ZlcnJpZGU7Ci0gICAg
V2ViQ29yZTo6UmVzb3VyY2VFcnJvciBpbnRlcnJ1cHRlZEZvclBvbGljeUNoYW5nZUVycm9yKGNv
bnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYpIG92ZXJyaWRlOwotICAgIFdlYkNvcmU6OlJl
c291cmNlRXJyb3IgY2Fubm90U2hvd01JTUVUeXBlRXJyb3IoY29uc3QgV2ViQ29yZTo6UmVzb3Vy
Y2VSZXNwb25zZSYpIG92ZXJyaWRlOwotICAgIFdlYkNvcmU6OlJlc291cmNlRXJyb3IgZmlsZURv
ZXNOb3RFeGlzdEVycm9yKGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UmKSBvdmVycmlk
ZTsKLSAgICBXZWJDb3JlOjpSZXNvdXJjZUVycm9yIHBsdWdpbldpbGxIYW5kbGVMb2FkRXJyb3Io
Y29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSYpIG92ZXJyaWRlOwotCiAgICAgYm9vbCBz
aG91bGRGYWxsQmFjayhjb25zdCBXZWJDb3JlOjpSZXNvdXJjZUVycm9yJikgb3ZlcnJpZGU7CiAK
ICAgICBXVEY6OlN0cmluZyB1c2VyQWdlbnQoY29uc3QgV2ViQ29yZTo6VVJMJikgb3ZlcnJpZGU7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZU5l
dHdvcmtpbmdDb250ZXh0LmNwcCBiL1NvdXJjZS9XZWJLaXQvd2luL1dlYkNvcmVTdXBwb3J0L1dl
YkZyYW1lTmV0d29ya2luZ0NvbnRleHQuY3BwCmluZGV4IDk4ZmFmZDk4NjEzOWMyNDM0Yjc4ZDZl
NjVmMzg0NWFiMmY5MGY2MzMuLjJkNGIwZGMxMGQ0MWQ5OTJiZGI5Zjk4MGM1ZTY2ZTY1MDJkODJi
NTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvd2luL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1l
TmV0d29ya2luZ0NvbnRleHQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvd2luL1dlYkNvcmVTdXBw
b3J0L1dlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQuY3BwCkBAIC0yNiw2ICsyNiw3IEBACiAjaW5j
bHVkZSAiV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dC5oIgogCiAjaW5jbHVkZSAiV2ViVmlldy5o
IgorI2luY2x1ZGUgPFdlYkNvcmUvRXJyb3JzLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9GcmFtZUxv
YWRlci5oPgogI2luY2x1ZGUgPFdlYkNvcmUvRnJhbWVMb2FkZXJDbGllbnQuaD4KICNpbmNsdWRl
IDxXZWJDb3JlL05ldHdvcmtTdG9yYWdlU2Vzc2lvbi5oPgpAQCAtOTYsNyArOTcsNyBAQCB2b2lk
IFdlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQ6OmRlc3Ryb3lQcml2YXRlQnJvd3NpbmdTZXNzaW9u
KCkKIAogUmVzb3VyY2VFcnJvciBXZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0OjpibG9ja2VkRXJy
b3IoY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0KSBjb25zdAogewotICAgIHJldHVybiBm
cmFtZSgpLT5sb2FkZXIoKS5jbGllbnQoKS5ibG9ja2VkRXJyb3IocmVxdWVzdCk7CisgICAgcmV0
dXJuIFdlYkNvcmU6OmJsb2NrZWRFcnJvcihyZXF1ZXN0KTsKIH0KIAogTmV0d29ya1N0b3JhZ2VT
ZXNzaW9uJiBXZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0OjpzdG9yYWdlU2Vzc2lvbigpIGNvbnN0
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9Eb3dubG9hZHMvZWZs
L0Rvd25sb2FkU291cEVycm9yc0VmbC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vz
cy9Eb3dubG9hZHMvZWZsL0Rvd25sb2FkU291cEVycm9yc0VmbC5jcHAKZGVsZXRlZCBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IGFjMDBkNTFiMzcxMzg5MjFlNzc2YjFhYzU4YTBkNDU1NTE2YjA4NmEu
LjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dl
YktpdDIvTmV0d29ya1Byb2Nlc3MvRG93bmxvYWRzL2VmbC9Eb3dubG9hZFNvdXBFcnJvcnNFZmwu
Y3BwCisrKyAvZGV2L251bGwKQEAgLTEsNDYgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykg
MjAxMiBJbnRlbCBDb3Jwb3JhdGlvbi4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
Ci0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAq
Ci0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05U
UklCVVRPUlMgYGBBUyBJUycnCi0gKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5U
SUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFRIRSBJTVBMSUVEIFdBUlJB
TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAq
IFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1Ig
SVRTIENPTlRSSUJVVE9SUwotICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgotICogQ09OU0VRVUVOVElBTCBEQU1B
R0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKLSAqIFNV
QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRT
OyBPUiBCVVNJTkVTUwotICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5Z
IFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KLSAqIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCi0gKiBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GCi0gKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQot
I2luY2x1ZGUgImNvbmZpZy5oIgotI2luY2x1ZGUgIkRvd25sb2FkU291cEVycm9ycy5oIgotCi0j
aW5jbHVkZSA8V2ViQ29yZS9FcnJvcnNFZmwuaD4KLSNpbmNsdWRlIDxXZWJDb3JlL1Jlc291cmNl
RXJyb3IuaD4KLQotdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7Ci0KLW5hbWVzcGFjZSBXZWJLaXQg
ewotCi1SZXNvdXJjZUVycm9yIHBsYXRmb3JtRG93bmxvYWROZXR3b3JrRXJyb3IoaW50IGVycm9y
Q29kZSwgY29uc3QgVVJMJiBmYWlsaW5nVVJMLCBjb25zdCBTdHJpbmcmIGxvY2FsaXplZERlc2Ny
aXB0aW9uKQotewotICAgIHJldHVybiBkb3dubG9hZE5ldHdvcmtFcnJvcihSZXNvdXJjZUVycm9y
KGVycm9yRG9tYWluRG93bmxvYWQsIGVycm9yQ29kZSwgZmFpbGluZ1VSTCwgbG9jYWxpemVkRGVz
Y3JpcHRpb24pKTsKLX0KLQotUmVzb3VyY2VFcnJvciBwbGF0Zm9ybURvd25sb2FkRGVzdGluYXRp
b25FcnJvcihjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiByZXNwb25zZSwgY29uc3QgU3RyaW5nJiBt
ZXNzYWdlKQotewotICAgIHJldHVybiBkb3dubG9hZERlc3RpbmF0aW9uRXJyb3IocmVzcG9uc2Us
IG1lc3NhZ2UpOwotfQotCi19IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL0Rvd25sb2Fkcy9ndGsvRG93bmxvYWRTb3VwRXJyb3Jz
R3RrLmNwcCBiL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL0Rvd25sb2Fkcy9ndGsvRG93
bmxvYWRTb3VwRXJyb3JzR3RrLmNwcApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYmEy
ZTdiNDU2YTQxNWYxN2Q1OTY1MzAwMWJiZGZhYzBiZTI4MDM0Mi4uMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vz
cy9Eb3dubG9hZHMvZ3RrL0Rvd25sb2FkU291cEVycm9yc0d0ay5jcHAKKysrIC9kZXYvbnVsbApA
QCAtMSw0NiArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDEyIEludGVsIENvcnBvcmF0
aW9uLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
Ci0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0g
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycK
LSAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLAotICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC
SUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xB
SU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCi0g
KiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFM
LCBFWEVNUExBUlksIE9SCi0gKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgotICogU1VCU1RJVFVURSBHT09EUyBPUiBT
RVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCi0gKiBJ
TlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTgotICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKLSAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKLSAqIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaW5jbHVkZSAiY29uZmlnLmgi
Ci0jaW5jbHVkZSAiRG93bmxvYWRTb3VwRXJyb3JzLmgiCi0KLSNpbmNsdWRlIDxXZWJDb3JlL0Vy
cm9yc0d0ay5oPgotI2luY2x1ZGUgPFdlYkNvcmUvUmVzb3VyY2VFcnJvci5oPgotCi11c2luZyBu
YW1lc3BhY2UgV2ViQ29yZTsKLQotbmFtZXNwYWNlIFdlYktpdCB7Ci0KLVJlc291cmNlRXJyb3Ig
cGxhdGZvcm1Eb3dubG9hZE5ldHdvcmtFcnJvcihpbnQgZXJyb3JDb2RlLCBjb25zdCBVUkwmIGZh
aWxpbmdVUkwsIGNvbnN0IFN0cmluZyYgbG9jYWxpemVkRGVzY3JpcHRpb24pCi17Ci0gICAgcmV0
dXJuIGRvd25sb2FkTmV0d29ya0Vycm9yKFJlc291cmNlRXJyb3IoZXJyb3JEb21haW5Eb3dubG9h
ZCwgZXJyb3JDb2RlLCBmYWlsaW5nVVJMLCBsb2NhbGl6ZWREZXNjcmlwdGlvbikpOwotfQotCi1S
ZXNvdXJjZUVycm9yIHBsYXRmb3JtRG93bmxvYWREZXN0aW5hdGlvbkVycm9yKGNvbnN0IFJlc291
cmNlUmVzcG9uc2UmIHJlc3BvbnNlLCBjb25zdCBTdHJpbmcmIG1lc3NhZ2UpCi17Ci0gICAgcmV0
dXJuIGRvd25sb2FkRGVzdGluYXRpb25FcnJvcihyZXNwb25zZSwgbWVzc2FnZSk7Ci19Ci0KLX0g
Ly8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvTmV0d29ya1By
b2Nlc3MvRG93bmxvYWRzL3NvdXAvRG93bmxvYWRTb3VwRXJyb3JzLmNwcCBiL1NvdXJjZS9XZWJL
aXQyL05ldHdvcmtQcm9jZXNzL0Rvd25sb2Fkcy9zb3VwL0Rvd25sb2FkU291cEVycm9ycy5jcHAK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uYWU1YWY5MmQzMzEyMmUxNGE5MWI3OTM4MzdkMzhjMTZhMTNmMWMyMwotLS0g
L2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL0Rvd25sb2Fkcy9z
b3VwL0Rvd25sb2FkU291cEVycm9ycy5jcHAKQEAgLTAsMCArMSw0NyBAQAorLyoKKyAqIENvcHly
aWdodCAoQykgMjAxMiBJbnRlbCBDb3Jwb3JhdGlvbi4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAq
CisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXBy
b2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1
dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5E
IElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBM
SUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExF
IElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVO
VElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQg
T0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBP
UiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
CisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIkRvd25sb2FkU291cEVycm9y
cy5oIgorCisjaW5jbHVkZSA8V2ViQ29yZS9FcnJvcnMuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL0Vy
cm9yc1VuaXguaD4KKyNpbmNsdWRlIDxXZWJDb3JlL1Jlc291cmNlRXJyb3IuaD4KKwordXNpbmcg
bmFtZXNwYWNlIFdlYkNvcmU7CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitSZXNvdXJjZUVycm9y
IHBsYXRmb3JtRG93bmxvYWROZXR3b3JrRXJyb3IoaW50IGVycm9yQ29kZSwgY29uc3QgVVJMJiBm
YWlsaW5nVVJMLCBjb25zdCBTdHJpbmcmIGxvY2FsaXplZERlc2NyaXB0aW9uKQoreworICAgIHJl
dHVybiBkb3dubG9hZE5ldHdvcmtFcnJvcihSZXNvdXJjZUVycm9yKGVycm9yRG9tYWluRG93bmxv
YWQsIGVycm9yQ29kZSwgZmFpbGluZ1VSTCwgbG9jYWxpemVkRGVzY3JpcHRpb24pKTsKK30KKwor
UmVzb3VyY2VFcnJvciBwbGF0Zm9ybURvd25sb2FkRGVzdGluYXRpb25FcnJvcihjb25zdCBSZXNv
dXJjZVJlc3BvbnNlJiByZXNwb25zZSwgY29uc3QgU3RyaW5nJiBtZXNzYWdlKQoreworICAgIHJl
dHVybiBkb3dubG9hZERlc3RpbmF0aW9uRXJyb3IocmVzcG9uc2UsIG1lc3NhZ2UpOworfQorCit9
IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQ
cm9jZXNzL05ldHdvcmtMb2FkLmNwcCBiL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL05l
dHdvcmtMb2FkLmNwcAppbmRleCAyODcyM2U2OWI5Y2FiNTk4YjM2ZDk1Y2E4NTg5NzQzOTRiODQ4
NTJkLi45M2JlZWIwMDVjZTljYmQ0MmNiYjZhOTQ4OTBlNjY0ZjI3NGMwYjU0IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrTG9hZC5jcHAKKysrIGIvU291
cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0xvYWQuY3BwCkBAIC0zMCw3ICszMCw3
IEBACiAjaW5jbHVkZSAiQXV0aGVudGljYXRpb25NYW5hZ2VyLmgiCiAjaW5jbHVkZSAiTmV0d29y
a1Byb2Nlc3MuaCIKICNpbmNsdWRlICJTZXNzaW9uVHJhY2tlci5oIgotI2luY2x1ZGUgIldlYkVy
cm9ycy5oIgorI2luY2x1ZGUgPFdlYkNvcmUvRXJyb3JzLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9O
b3RJbXBsZW1lbnRlZC5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUmVzb3VyY2VIYW5kbGUuaD4KICNp
bmNsdWRlIDxXZWJDb3JlL1Nlc3Npb25JRC5oPgpAQCAtNDAxLDE0ICs0MDEsMTQgQEAgdm9pZCBO
ZXR3b3JrTG9hZDo6d2FzQmxvY2tlZChSZXNvdXJjZUhhbmRsZSogaGFuZGxlKQogewogICAgIEFT
U0VSVF9VTlVTRUQoaGFuZGxlLCBoYW5kbGUgPT0gbV9oYW5kbGUpOwogCi0gICAgZGlkRmFpbCho
YW5kbGUsIFdlYktpdDo6YmxvY2tlZEVycm9yKG1fY3VycmVudFJlcXVlc3QpKTsKKyAgICBkaWRG
YWlsKGhhbmRsZSwgYmxvY2tlZEVycm9yKG1fY3VycmVudFJlcXVlc3QpKTsKIH0KIAogdm9pZCBO
ZXR3b3JrTG9hZDo6Y2Fubm90U2hvd1VSTChSZXNvdXJjZUhhbmRsZSogaGFuZGxlKQogewogICAg
IEFTU0VSVF9VTlVTRUQoaGFuZGxlLCBoYW5kbGUgPT0gbV9oYW5kbGUpOwogCi0gICAgZGlkRmFp
bChoYW5kbGUsIFdlYktpdDo6Y2Fubm90U2hvd1VSTEVycm9yKG1fY3VycmVudFJlcXVlc3QpKTsK
KyAgICBkaWRGYWlsKGhhbmRsZSwgY2Fubm90U2hvd1VSTEVycm9yKG1fY3VycmVudFJlcXVlc3Qp
KTsKIH0KIAogYm9vbCBOZXR3b3JrTG9hZDo6c2hvdWxkVXNlQ3JlZGVudGlhbFN0b3JhZ2UoUmVz
b3VyY2VIYW5kbGUqIGhhbmRsZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQ
cm9jZXNzL21hYy9SZW1vdGVOZXR3b3JraW5nQ29udGV4dC5tbSBiL1NvdXJjZS9XZWJLaXQyL05l
dHdvcmtQcm9jZXNzL21hYy9SZW1vdGVOZXR3b3JraW5nQ29udGV4dC5tbQppbmRleCA5NjNkYzY4
ZTZhOTM3YTc5YWQ3YmVkNTdjOWY0NDZiOGYzN2MzMmE1Li5jZDI1YWY5MDJjODRjYmExYWQwOGM4
MjA2MGJiY2Q4ZmY4NTczN2ExIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJv
Y2Vzcy9tYWMvUmVtb3RlTmV0d29ya2luZ0NvbnRleHQubW0KKysrIGIvU291cmNlL1dlYktpdDIv
TmV0d29ya1Byb2Nlc3MvbWFjL1JlbW90ZU5ldHdvcmtpbmdDb250ZXh0Lm1tCkBAIC0zMCw3ICsz
MCw3IEBACiAjaW1wb3J0ICJOZXR3b3JrUHJvY2Vzcy5oIgogI2ltcG9ydCAiTmV0d29ya1Nlc3Np
b24uaCIKICNpbXBvcnQgIlNlc3Npb25UcmFja2VyLmgiCi0jaW1wb3J0ICJXZWJFcnJvcnMuaCIK
KyNpbXBvcnQgPFdlYkNvcmUvRXJyb3JzLmg+CiAjaW1wb3J0IDxXZWJDb3JlL05ldHdvcmtTdG9y
YWdlU2Vzc2lvbi5oPgogI2ltcG9ydCA8V2ViQ29yZS9SZXNvdXJjZUVycm9yLmg+CiAjaW1wb3J0
IDxXZWJLaXRTeXN0ZW1JbnRlcmZhY2UuaD4KQEAgLTc3LDcgKzc3LDcgQEAgU3RyaW5nIFJlbW90
ZU5ldHdvcmtpbmdDb250ZXh0Ojpzb3VyY2VBcHBsaWNhdGlvbklkZW50aWZpZXIoKSBjb25zdAog
CiBSZXNvdXJjZUVycm9yIFJlbW90ZU5ldHdvcmtpbmdDb250ZXh0OjpibG9ja2VkRXJyb3IoY29u
c3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0KSBjb25zdAogewotICAgIHJldHVybiBXZWJLaXQ6
OmJsb2NrZWRFcnJvcihyZXF1ZXN0KTsKKyAgICByZXR1cm4gV2ViQ29yZTo6YmxvY2tlZEVycm9y
KHJlcXVlc3QpOwogfQogCiB2b2lkIFJlbW90ZU5ldHdvcmtpbmdDb250ZXh0OjplbnN1cmVQcml2
YXRlQnJvd3NpbmdTZXNzaW9uKFNlc3Npb25JRCBzZXNzaW9uSUQpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0Mi9QbGF0Zm9ybUVmbC5jbWFrZSBiL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtRWZs
LmNtYWtlCmluZGV4IGZhYTdiYjM0MzY3MWUyNjMxM2ZkN2E4NmZlYWIwOGM4NzU0MmQ3ZGIuLjFk
MWIzNjhmYzZlNGFjN2M1MDZjMjU3MjJiNjgzOGVlYTdjNDdhYzQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQyL1BsYXRmb3JtRWZsLmNtYWtlCisrKyBiL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3Jt
RWZsLmNtYWtlCkBAIC00LDggKzQsNyBAQCBsaXN0KEFQUEVORCBXZWJLaXQyX1NPVVJDRVMKICAg
ICBOZXR3b3JrUHJvY2Vzcy9DdXN0b21Qcm90b2NvbHMvc291cC9DdXN0b21Qcm90b2NvbE1hbmFn
ZXJJbXBsLmNwcAogICAgIE5ldHdvcmtQcm9jZXNzL0N1c3RvbVByb3RvY29scy9zb3VwL0N1c3Rv
bVByb3RvY29sTWFuYWdlclNvdXAuY3BwCiAKLSAgICBOZXR3b3JrUHJvY2Vzcy9Eb3dubG9hZHMv
ZWZsL0Rvd25sb2FkU291cEVycm9yc0VmbC5jcHAKLQorICAgIE5ldHdvcmtQcm9jZXNzL0Rvd25s
b2Fkcy9zb3VwL0Rvd25sb2FkU291cEVycm9ycy5jcHAKICAgICBOZXR3b3JrUHJvY2Vzcy9Eb3du
bG9hZHMvc291cC9Eb3dubG9hZFNvdXAuY3BwCiAKICAgICBOZXR3b3JrUHJvY2Vzcy9lZmwvTmV0
d29ya1Byb2Nlc3NNYWluRWZsLmNwcApAQCAtMTkzLDcgKzE5Miw2IEBAIGxpc3QoQVBQRU5EIFdl
YktpdDJfU09VUkNFUwogCiAgICAgV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9lZmwvV2ViQ29u
dGV4dE1lbnVDbGllbnRFZmwuY3BwCiAgICAgV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9lZmwv
V2ViRWRpdG9yQ2xpZW50RWZsLmNwcAotICAgIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvZWZs
L1dlYkVycm9yc0VmbC5jcHAKICAgICBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L2VmbC9XZWJQ
b3B1cE1lbnVFZmwuY3BwCiAKICAgICBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L3NvdXAvV2Vi
RnJhbWVOZXR3b3JraW5nQ29udGV4dC5jcHAKQEAgLTIzNiw2ICsyMzQsNyBAQCBsaXN0KEFQUEVO
RCBXZWJLaXQyX0lOQ0xVREVfRElSRUNUT1JJRVMKICAgICAiJHtXRUJDT1JFX0RJUn0vcGxhdGZv
cm0vZ3JhcGhpY3MveDExIgogICAgICIke1dFQkNPUkVfRElSfS9wbGF0Zm9ybS9uZXR3b3JrL3Nv
dXAiCiAgICAgIiR7V0VCQ09SRV9ESVJ9L3BsYXRmb3JtL3RleHQvZW5jaGFudCIKKyAgICAiJHtX
RUJDT1JFX0RJUn0vcGxhdGZvcm0vdW5peCIKICAgICAiJHtXRUJLSVQyX0RJUn0vRGF0YWJhc2VQ
cm9jZXNzL3VuaXgiCiAgICAgIiR7V0VCS0lUMl9ESVJ9L05ldHdvcmtQcm9jZXNzL0N1c3RvbVBy
b3RvY29scy9zb3VwIgogICAgICIke1dFQktJVDJfRElSfS9OZXR3b3JrUHJvY2Vzcy9Eb3dubG9h
ZHMvc291cCIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtR1RLLmNtYWtlIGIv
U291cmNlL1dlYktpdDIvUGxhdGZvcm1HVEsuY21ha2UKaW5kZXggNzg4OTY2NDhjYzQzZWE3NGJk
YTkyODZlOGY4YTI1OWNkNGFhY2NiMi4uMGY4ZDUxZGZlN2Q4MTA5MmQ0ZTM5ZWYxMDExY2IwOTlj
NTc5ODA5ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvUGxhdGZvcm1HVEsuY21ha2UKKysr
IGIvU291cmNlL1dlYktpdDIvUGxhdGZvcm1HVEsuY21ha2UKQEAgLTMwLDkgKzMwLDggQEAgbGlz
dChBUFBFTkQgV2ViS2l0Ml9TT1VSQ0VTCiAgICAgTmV0d29ya1Byb2Nlc3MvQ3VzdG9tUHJvdG9j
b2xzL3NvdXAvQ3VzdG9tUHJvdG9jb2xNYW5hZ2VySW1wbC5jcHAKICAgICBOZXR3b3JrUHJvY2Vz
cy9DdXN0b21Qcm90b2NvbHMvc291cC9DdXN0b21Qcm90b2NvbE1hbmFnZXJTb3VwLmNwcAogCi0g
ICAgTmV0d29ya1Byb2Nlc3MvRG93bmxvYWRzL2d0ay9Eb3dubG9hZFNvdXBFcnJvcnNHdGsuY3Bw
Ci0KICAgICBOZXR3b3JrUHJvY2Vzcy9Eb3dubG9hZHMvc291cC9Eb3dubG9hZFNvdXAuY3BwCisg
ICAgTmV0d29ya1Byb2Nlc3MvRG93bmxvYWRzL3NvdXAvRG93bmxvYWRTb3VwRXJyb3JzLmNwcAog
CiAgICAgTmV0d29ya1Byb2Nlc3MvY2FjaGUvTmV0d29ya0NhY2hlQ29kZXJzU291cC5jcHAKICAg
ICBOZXR3b3JrUHJvY2Vzcy9jYWNoZS9OZXR3b3JrQ2FjaGVEYXRhU291cC5jcHAKQEAgLTMzOCw3
ICszMzcsNiBAQCBsaXN0KEFQUEVORCBXZWJLaXQyX1NPVVJDRVMKICAgICBXZWJQcm9jZXNzL1dl
YkNvcmVTdXBwb3J0L2d0ay9XZWJDb250ZXh0TWVudUNsaWVudEd0ay5jcHAKICAgICBXZWJQcm9j
ZXNzL1dlYkNvcmVTdXBwb3J0L2d0ay9XZWJEcmFnQ2xpZW50R3RrLmNwcAogICAgIFdlYlByb2Nl
c3MvV2ViQ29yZVN1cHBvcnQvZ3RrL1dlYkVkaXRvckNsaWVudEd0ay5jcHAKLSAgICBXZWJQcm9j
ZXNzL1dlYkNvcmVTdXBwb3J0L2d0ay9XZWJFcnJvcnNHdGsuY3BwCiAgICAgV2ViUHJvY2Vzcy9X
ZWJDb3JlU3VwcG9ydC9ndGsvV2ViUG9wdXBNZW51R3RrLmNwcAogCiAgICAgV2ViUHJvY2Vzcy9X
ZWJDb3JlU3VwcG9ydC9zb3VwL1dlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQuY3BwCkBAIC00OTYs
NiArNDk0LDcgQEAgbGlzdChBUFBFTkQgV2ViS2l0Ml9JTkNMVURFX0RJUkVDVE9SSUVTCiAgICAg
IiR7V0VCQ09SRV9ESVJ9L3BsYXRmb3JtL2dyYXBoaWNzL3gxMSIKICAgICAiJHtXRUJDT1JFX0RJ
Un0vcGxhdGZvcm0vbmV0d29yay9zb3VwIgogICAgICIke1dFQkNPUkVfRElSfS9wbGF0Zm9ybS90
ZXh0L2VuY2hhbnQiCisgICAgIiR7V0VCQ09SRV9ESVJ9L3BsYXRmb3JtL3VuaXgiCiAgICAgIiR7
V0VCS0lUMl9ESVJ9L0RhdGFiYXNlUHJvY2Vzcy91bml4IgogICAgICIke1dFQktJVDJfRElSfS9O
ZXR3b3JrUHJvY2Vzcy9DdXN0b21Qcm90b2NvbHMvc291cCIKICAgICAiJHtXRUJLSVQyX0RJUn0v
TmV0d29ya1Byb2Nlc3MvRG93bmxvYWRzL3NvdXAiCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
Mi9QbGF0Zm9ybU1hYy5jbWFrZSBiL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtTWFjLmNtYWtlCmlu
ZGV4IDJhMTNlMTQ5OGRlYWFkMTg3ZDdhYmI2N2Q0MzZkNGM0OWNjODEyMmMuLjFhMmMyYzQ2N2Q1
ZmIwOWIyNTBmNWNmZjQwMDFhZjU5NzIwN2JlNjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQy
L1BsYXRmb3JtTWFjLmNtYWtlCisrKyBiL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtTWFjLmNtYWtl
CkBAIC0zMjgsNyArMzI4LDYgQEAgbGlzdChBUFBFTkQgV2ViS2l0Ml9TT1VSQ0VTCiAgICAgV2Vi
UHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9tYWMvV2ViQ29udGV4dE1lbnVDbGllbnRNYWMubW0KICAg
ICBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L21hYy9XZWJEcmFnQ2xpZW50TWFjLm1tCiAgICAg
V2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9tYWMvV2ViRWRpdG9yQ2xpZW50TWFjLm1tCi0gICAg
V2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9tYWMvV2ViRXJyb3JzTWFjLm1tCiAgICAgV2ViUHJv
Y2Vzcy9XZWJDb3JlU3VwcG9ydC9tYWMvV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dC5tbQogICAg
IFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvbWFjL1dlYlBvcHVwTWVudU1hYy5tbQogICAgIFdl
YlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvbWFjL1dlYlN5c3RlbUludGVyZmFjZS5tbQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL0FQSS9BUElFcnJvci5jcHAgYi9Tb3VyY2UvV2Vi
S2l0Mi9TaGFyZWQvQVBJL0FQSUVycm9yLmNwcAppbmRleCA4NmExZGIwYjAzNzRkMzZmNGEzZTkx
MzE0ZDU5MDg4MzZlNWJkYTJhLi45YjliNjc1ZmI3MjQ5NjljOTUxZTBmNTJmYTY5ZmE4MzVmNGZj
ZjliIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQVBJL0FQSUVycm9yLmNwcAor
KysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQVBJL0FQSUVycm9yLmNwcApAQCAtMjcsNiArMjcs
NyBAQAogI2luY2x1ZGUgIkFQSUVycm9yLmgiCiAKICNpbmNsdWRlICJXZWJDb3JlQXJndW1lbnRD
b2RlcnMuaCIKKyNpbmNsdWRlIDxXZWJDb3JlL0Vycm9ycy5oPgogI2luY2x1ZGUgPHd0Zi9OZXZl
ckRlc3Ryb3llZC5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgogCkBAIC0zNCw4
ICszNSw3IEBAIG5hbWVzcGFjZSBBUEkgewogCiBjb25zdCBXVEY6OlN0cmluZyYgRXJyb3I6Ondl
YktpdEVycm9yRG9tYWluKCkKIHsKLSAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8V1RGOjpTdHJp
bmc+IHdlYktpdEVycm9yRG9tYWluU3RyaW5nKEFTQ0lJTGl0ZXJhbCgiV2ViS2l0RXJyb3JEb21h
aW4iKSk7Ci0gICAgcmV0dXJuIHdlYktpdEVycm9yRG9tYWluU3RyaW5nOworICAgIHJldHVybiBX
ZWJDb3JlOjp3ZWJLaXRFcnJvckRvbWFpbigpOwogfQogCiB2b2lkIEVycm9yOjplbmNvZGUoSVBD
OjpBcmd1bWVudEVuY29kZXImIGVuY29kZXIpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfZXJyb3IuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL0FQSS9lZmwvZXdrX2Vycm9yLmNwcAppbmRleCBkMDAxYzU1Nzk5MjdhYzA5ODgxMDk3
ZTFjOTYwNTllN2I0MmIxOWY4Li4wNDFmM2YyMGY5ZmVjNTc3NjY1MjA3YmE1OTYxNzkyYWM3YmQy
OTUxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfZXJy
b3IuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a19lcnJvci5j
cHAKQEAgLTI2LDcgKzI2LDcgQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJld2tf
ZXJyb3IuaCIKIAotI2luY2x1ZGUgIkVycm9yc0VmbC5oIgorI2luY2x1ZGUgIkVycm9yc1VuaXgu
aCIKICNpbmNsdWRlICJXS0Vycm9yUmVmLmgiCiAjaW5jbHVkZSAiV0tTdHJpbmcuaCIKICNpbmNs
dWRlICJXS1VSTC5oIgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9n
dGsvV2ViS2l0RG93bmxvYWQuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsv
V2ViS2l0RG93bmxvYWQuY3BwCmluZGV4IDg2YzA1YjJmMjk3YTA1YjkxYmVmNjgxYjQxYWVkZTAx
NWUzMzU4MzUuLmE5ZTM1NmJlN2Q0ZDY1NDk5Zjc0OWM4NjJiMTVkN2RlZmFlMTMzNjYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdERvd25sb2FkLmNw
cAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXREb3dubG9hZC5j
cHAKQEAgLTI2LDcgKzI2LDggQEAKICNpbmNsdWRlICJXZWJLaXRQcml2YXRlLmgiCiAjaW5jbHVk
ZSAiV2ViS2l0VVJJUmVxdWVzdFByaXZhdGUuaCIKICNpbmNsdWRlICJXZWJLaXRVUklSZXNwb25z
ZVByaXZhdGUuaCIKLSNpbmNsdWRlIDxXZWJDb3JlL0Vycm9yc0d0ay5oPgorI2luY2x1ZGUgPFdl
YkNvcmUvRXJyb3JzLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9FcnJvcnNVbml4Lmg+CiAjaW5jbHVk
ZSA8V2ViQ29yZS9SZXNvdXJjZVJlc3BvbnNlLmg+CiAjaW5jbHVkZSA8Z2xpYi9naTE4bi1saWIu
aD4KICNpbmNsdWRlIDx3dGYvZ2xpYi9HUmVmUHRyLmg+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRFcnJvci5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRFcnJvci5jcHAKaW5kZXggNzQxOWVlNzIxYTBmZTg2YWJj
MzY0MzZkMjRlYzI1ZTQ2NDIzZThjZi4uYjA4MzQzNmExOGQ5MTc0ZmZmM2U2N2NlZDg4ZmU0MGUz
OGI0MWE3ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2Vi
S2l0RXJyb3IuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktp
dEVycm9yLmNwcApAQCAtMjIsNyArMjIsNyBAQAogI2luY2x1ZGUgIldlYktpdEVycm9yLmgiCiAK
ICNpbmNsdWRlICJXZWJLaXRQcml2YXRlLmgiCi0jaW5jbHVkZSA8V2ViQ29yZS9FcnJvcnNHdGsu
aD4KKyNpbmNsdWRlIDxXZWJDb3JlL0Vycm9yc1VuaXguaD4KIAogdXNpbmcgbmFtZXNwYWNlIFdl
YkNvcmU7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dl
YktpdFByaXZhdGUuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0
UHJpdmF0ZS5jcHAKaW5kZXggMmIxZTEyNDk3NmJhNGRkYzY3MTkxNzI1MGU5NzgyOTgwMTQ1YmFj
YS4uOTE5N2JjNzcyY2M4ZWU4MTk4ZTA5MWVlY2RkMGQ4YjEyY2MwZjI3ZiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0UHJpdmF0ZS5jcHAKKysrIGIv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0UHJpdmF0ZS5jcHAKQEAgLTIw
LDcgKzIwLDcgQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJXZWJLaXRQcml2YXRl
LmgiCiAKLSNpbmNsdWRlICJFcnJvcnNHdGsuaCIKKyNpbmNsdWRlICJFcnJvcnNVbml4LmgiCiAj
aW5jbHVkZSAiV2ViRXZlbnQuaCIKICNpbmNsdWRlICJXZWJLaXRFcnJvci5oIgogI2luY2x1ZGUg
PGdkay9nZGsuaD4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9OZXR3b3Jr
L0N1c3RvbVByb3RvY29scy9zb3VwL1dlYlNvdXBDdXN0b21Qcm90b2NvbFJlcXVlc3RNYW5hZ2Vy
LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9OZXR3b3JrL0N1c3RvbVByb3RvY29scy9z
b3VwL1dlYlNvdXBDdXN0b21Qcm90b2NvbFJlcXVlc3RNYW5hZ2VyLmNwcAppbmRleCBiNjU1ZTQz
NTEzZDVlNDEzZTFiOGY1YzYyMmQ4OGEzOTY1YjA2YTRiLi5hMDM1YjQ3ODQ2NGRiNDExNjgwYzFi
MGMzODk0ODc5Y2VjZjM1NmEyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
TmV0d29yay9DdXN0b21Qcm90b2NvbHMvc291cC9XZWJTb3VwQ3VzdG9tUHJvdG9jb2xSZXF1ZXN0
TWFuYWdlci5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL05ldHdvcmsvQ3VzdG9t
UHJvdG9jb2xzL3NvdXAvV2ViU291cEN1c3RvbVByb3RvY29sUmVxdWVzdE1hbmFnZXIuY3BwCkBA
IC0yMywxNiArMjMsMTIgQEAKICNpbmNsdWRlICJBUElEYXRhLmgiCiAjaW5jbHVkZSAiQ3VzdG9t
UHJvdG9jb2xNYW5hZ2VyTWVzc2FnZXMuaCIKICNpbmNsdWRlICJXZWJQcm9jZXNzUG9vbC5oIgor
I2luY2x1ZGUgPFdlYkNvcmUvRXJyb3JzLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9FcnJvcnNVbml4
Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9SZXNvdXJjZUVycm9yLmg+CiAjaW5jbHVkZSA8V2ViQ29y
ZS9SZXNvdXJjZVJlcXVlc3QuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1Jlc291cmNlUmVzcG9uc2Uu
aD4KIAotI2lmIFBMQVRGT1JNKEdUSykKLSNpbmNsdWRlIDxXZWJDb3JlL0Vycm9yc0d0ay5oPgot
I2VsaWYgUExBVEZPUk0oRUZMKQotI2luY2x1ZGUgPFdlYkNvcmUvRXJyb3JzRWZsLmg+Ci0jZW5k
aWYKLQogbmFtZXNwYWNlIFdlYktpdCB7CiAKIGNvbnN0IGNoYXIqIFdlYlNvdXBDdXN0b21Qcm90
b2NvbFJlcXVlc3RNYW5hZ2VyOjpzdXBwbGVtZW50TmFtZSgpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0Mi9XZWJLaXQyLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViS2l0
Mi9XZWJLaXQyLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggYzYzMmZiY2E3MjE2YjM1
NzI1ZDBiMjAwMDhiNWJjNTgwOTJkYmJmMy4uYTg5MWVlNTI2YWQwMGNhNGJjMzhmYmUyMjc5Mjgy
OWZjM2IxMWEwMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViS2l0Mi54Y29kZXByb2ov
cHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYktpdDIueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvagpAQCAtMjI1LDcgKzIyNSw2IEBACiAJCTFBM0VFRDBGMTYxQTUzNTQwMEFF
QjRGNSAvKiBNZXNzYWdlUmVjZWl2ZXJNYXAuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDFBM0VFRDBEMTYxQTUzNTMwMEFFQjRGNSAvKiBNZXNzYWdlUmVj
ZWl2ZXJNYXAuaCAqLzsgfTsKIAkJMUEzRUVEMTIxNjFBNTNENjAwQUVCNEY1IC8qIE1lc3NhZ2VS
ZWNlaXZlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
MUEzRUVEMTExNjFBNTNENjAwQUVCNEY1IC8qIE1lc3NhZ2VSZWNlaXZlci5oICovOyB9OwogCQkx
QTQyMkY4QjE4QjI5QjU0MDBEOENEOTYgLyogV0tIaXN0b3J5RGVsZWdhdGVQcml2YXRlLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxQTQyMkY4QTE4QjI5
QjU0MDBEOENEOTYgLyogV0tIaXN0b3J5RGVsZWdhdGVQcml2YXRlLmggKi87IHNldHRpbmdzID0g
e0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKLQkJMUE0MzNGMEQxMTNDNTNERDAwRkFD
REU5IC8qIFdlYkVycm9ycy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gMUE0MzNGMEMxMTNDNTNERDAwRkFDREU5IC8qIFdlYkVycm9ycy5oICovOyB9Owog
CQkxQTQzRTgyOTE4OEYzQ0RDMDA5RTREMzAgLyogX1dLUHJvY2Vzc1Bvb2xDb25maWd1cmF0aW9u
Lm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUE0M0U4
MjcxODhGM0NEQzAwOUU0RDMwIC8qIF9XS1Byb2Nlc3NQb29sQ29uZmlndXJhdGlvbi5tbSAqLzsg
fTsKIAkJMUE0M0U4MkExODhGM0NEQzAwOUU0RDMwIC8qIF9XS1Byb2Nlc3NQb29sQ29uZmlndXJh
dGlvbi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUE0
M0U4MjgxODhGM0NEQzAwOUU0RDMwIC8qIF9XS1Byb2Nlc3NQb29sQ29uZmlndXJhdGlvbi5oICov
OyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTFBNDQ1QjlG
MTg0RDVGQjUwMDRCMzQxNCAvKiBXS0NvbnRleHRJbmplY3RlZEJ1bmRsZUNsaWVudC5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUE0NDVCOUUxODRENUZC
NTAwNEIzNDE0IC8qIFdLQ29udGV4dEluamVjdGVkQnVuZGxlQ2xpZW50LmggKi87IHNldHRpbmdz
ID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKQEAgLTEzNzYsNyArMTM3NSw2IEBA
CiAJCUJDMTExQTVGMTEyRjRGQkIwMDMzN0JBQiAvKiBXZWJGcmFtZUxvYWRlckNsaWVudC5jcHAg
aW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQzExMUE1ODEx
MkY0RkJCMDAzMzdCQUIgLyogV2ViRnJhbWVMb2FkZXJDbGllbnQuY3BwICovOyB9OwogCQlCQzEx
MUE2MDExMkY0RkJCMDAzMzdCQUIgLyogV2ViSW5zcGVjdG9yQ2xpZW50LmNwcCBpbiBTb3VyY2Vz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDMTExQTU5MTEyRjRGQkIwMDMz
N0JBQiAvKiBXZWJJbnNwZWN0b3JDbGllbnQuY3BwICovOyB9OwogCQlCQzExMUFERDExMkY1Qjkz
MDAzMzdCQUIgLyogV2ViRnJhbWUuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gQkMxMTFBREMxMTJGNUI5MzAwMzM3QkFCIC8qIFdlYkZyYW1lLmNwcCAq
LzsgfTsKLQkJQkMxMTFBRTAxMTJGNUJDMjAwMzM3QkFCIC8qIFdlYkVycm9yc01hYy5tbSBpbiBT
b3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDMTExQURGMTEyRjVC
QzIwMDMzN0JBQiAvKiBXZWJFcnJvcnNNYWMubW0gKi87IH07CiAJCUJDMTExQUU0MTEyRjVDMjYw
MDMzN0JBQiAvKiBXZWJQcm9jZXNzLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IEJDMTExQUUzMTEyRjVDMjYwMDMzN0JBQiAvKiBXZWJQcm9jZXNzLmNw
cCAqLzsgfTsKIAkJQkMxMTFCMDkxMTJGNUUzQzAwMzM3QkFCIC8qIFJlc3BvbnNpdmVuZXNzVGlt
ZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkMx
MTFCMDgxMTJGNUUzQzAwMzM3QkFCIC8qIFJlc3BvbnNpdmVuZXNzVGltZXIuY3BwICovOyB9Owog
CQlCQzExMUIwRTExMkY1RTRGMDAzMzdCQUIgLyogV2ViRnJhbWVQcm94eS5jcHAgaW4gU291cmNl
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQzExMUIwQTExMkY1RTRGMDAz
MzdCQUIgLyogV2ViRnJhbWVQcm94eS5jcHAgKi87IH07CkBAIC0yMjA3LDcgKzIyMDUsNiBAQAog
CQkxQTNFRUQwRDE2MUE1MzUzMDBBRUI0RjUgLyogTWVzc2FnZVJlY2VpdmVyTWFwLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE1lc3NhZ2VSZWNlaXZlck1hcC5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQkxQTNFRUQxMTE2MUE1M0Q2MDBBRUI0RjUgLyogTWVzc2Fn
ZVJlY2VpdmVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE1lc3NhZ2VSZWNl
aXZlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkxQTQyMkY4QTE4QjI5QjU0MDBE
OENEOTYgLyogV0tIaXN0b3J5RGVsZWdhdGVQcml2YXRlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IFdLSGlzdG9yeURlbGVnYXRlUHJpdmF0ZS5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwotCQkxQTQzM0YwQzExM0M1M0REMDBGQUNERTkgLyogV2ViRXJyb3JzLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYkVycm9ycy5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQkxQTQzRTgyNzE4OEYzQ0RDMDA5RTREMzAgLyogX1dLUHJvY2Vzc1Bv
b2xDb25maWd1cmF0aW9uLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRo
ID0gX1dLUHJvY2Vzc1Bvb2xDb25maWd1cmF0aW9uLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQkxQTQzRTgyODE4OEYzQ0RDMDA5RTREMzAgLyogX1dLUHJvY2Vzc1Bvb2xDb25maWd1
cmF0aW9uLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IF9XS1Byb2Nlc3NQb29s
Q29uZmlndXJhdGlvbi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkxQTQ0NUI5RTE4
NEQ1RkI1MDA0QjM0MTQgLyogV0tDb250ZXh0SW5qZWN0ZWRCdW5kbGVDbGllbnQuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV0tDb250ZXh0SW5qZWN0ZWRCdW5kbGVDbGllbnQu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTM0NjksNyArMzQ2Niw2IEBACiAJCUJD
MTExQTU4MTEyRjRGQkIwMDMzN0JBQiAvKiBXZWJGcmFtZUxvYWRlckNsaWVudC5jcHAgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXZWJGcmFtZUxvYWRlckNsaWVudC5jcHA7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IHdyYXBzTGluZXMgPSAwOyB9OwogCQlCQzExMUE1OTEx
MkY0RkJCMDAzMzdCQUIgLyogV2ViSW5zcGVjdG9yQ2xpZW50LmNwcCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdlYkluc3BlY3RvckNsaWVudC5jcHA7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCUJDMTExQURDMTEyRjVCOTMwMDMzN0JBQiAvKiBXZWJGcmFtZS5j
cHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXZWJGcmFtZS5jcHA7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUJDMTExQURGMTEyRjVCQzIwMDMzN0JBQiAvKiBX
ZWJFcnJvcnNNYWMubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBX
ZWJFcnJvcnNNYWMubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUJDMTExQUUzMTEy
RjVDMjYwMDMzN0JBQiAvKiBXZWJQcm9jZXNzLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
LmNwcDsgcGF0aCA9IFdlYlByb2Nlc3MuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQlCQzExMUIwODExMkY1RTNDMDAzMzdCQUIgLyogUmVzcG9uc2l2ZW5lc3NUaW1lci5jcHAgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBSZXNwb25zaXZlbmVzc1RpbWVyLmNw
cDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQkMxMTFCMEExMTJGNUU0RjAwMzM3QkFC
IC8qIFdlYkZyYW1lUHJveHkuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRo
ID0gV2ViRnJhbWVQcm94eS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC01OTMx
LDcgKzU5MjcsNiBAQAogCQkJCUJDMDMyRDY2MTBGNDM3OEQwMDU4QzE1QSAvKiBXZWJEcmFnQ2xp
ZW50LmggKi8sCiAJCQkJQkMxMTFBNTcxMTJGNEZCQjAwMzM3QkFCIC8qIFdlYkVkaXRvckNsaWVu
dC5jcHAgKi8sCiAJCQkJQkMwMzJENjgxMEY0Mzc4RDAwNThDMTVBIC8qIFdlYkVkaXRvckNsaWVu
dC5oICovLAotCQkJCTFBNDMzRjBDMTEzQzUzREQwMEZBQ0RFOSAvKiBXZWJFcnJvcnMuaCAqLywK
IAkJCQlCQzExMUE1ODExMkY0RkJCMDAzMzdCQUIgLyogV2ViRnJhbWVMb2FkZXJDbGllbnQuY3Bw
ICovLAogCQkJCUJDMDMyRDZBMTBGNDM3OEQwMDU4QzE1QSAvKiBXZWJGcmFtZUxvYWRlckNsaWVu
dC5oICovLAogCQkJCUJDMUJFMURGMTJENTRBNDEwMDA0QTIyOCAvKiBXZWJHZW9sb2NhdGlvbkNs
aWVudC5jcHAgKi8sCkBAIC02Mzc5LDcgKzYzNzQsNiBAQAogCQkJCTUxMDIxRTlCMTJCMTY3ODgw
MDVDMDMzQyAvKiBXZWJDb250ZXh0TWVudUNsaWVudE1hYy5tbSAqLywKIAkJCQlDNTU0RkZBMjEy
RTRFOEVBMDAyRjIyQzAgLyogV2ViRHJhZ0NsaWVudE1hYy5tbSAqLywKIAkJCQlDNTIzN0Y1RjEy
NDQxQ0EzMDA3ODA0NzIgLyogV2ViRWRpdG9yQ2xpZW50TWFjLm1tICovLAotCQkJCUJDMTExQURG
MTEyRjVCQzIwMDMzN0JBQiAvKiBXZWJFcnJvcnNNYWMubW0gKi8sCiAJCQkJOTM5MUYyODMxMjFC
MzhGNTAwRUJGN0U4IC8qIFdlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQuaCAqLywKIAkJCQk5Mzkx
RjI4NDEyMUIzOEY1MDBFQkY3RTggLyogV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dC5tbSAqLywK
IAkJCQlCQ0M0M0FDNjEyN0I5OURFMDAzMTdGMTYgLyogV2ViUG9wdXBNZW51TWFjLm1tICovLApA
QCAtNzg2OCw3ICs3ODYyLDYgQEAKIAkJCQlCQzAzMkQ3QjEwRjQzNzhEMDA1OEMxNUEgLyogV2Vi
RHJhZ0NsaWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkNBMEVGOUYxMjMzMjY0MjAwN0QzQ0ZC
IC8qIFdlYkVkaXRDb21tYW5kUHJveHkuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDMDMyRDdEMTBG
NDM3OEQwMDU4QzE1QSAvKiBXZWJFZGl0b3JDbGllbnQuaCBpbiBIZWFkZXJzICovLAotCQkJCTFB
NDMzRjBEMTEzQzUzREQwMEZBQ0RFOSAvKiBXZWJFcnJvcnMuaCBpbiBIZWFkZXJzICovLAogCQkJ
CUJDMDMyREI5MTBGNDM4MEYwMDU4QzE1QSAvKiBXZWJFdmVudC5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJQkMwMzJEQkIxMEY0MzgwRjAwNThDMTVBIC8qIFdlYkV2ZW50Q29udmVyc2lvbi5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJQkMxMTFCNUQxMTJGNjI5ODAwMzM3QkFCIC8qIFdlYkV2ZW50RmFjdG9y
eS5oIGluIEhlYWRlcnMgKi8sCkBAIC05MzY0LDcgKzkzNTcsNiBAQAogCQkJCUJDMTExQTVFMTEy
RjRGQkIwMDMzN0JBQiAvKiBXZWJFZGl0b3JDbGllbnQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJ
MkQyOEYzRTYxODg1Q0NDMTAwNEI5RUFFIC8qIFdlYkVkaXRvckNsaWVudElPUy5tbSBpbiBTb3Vy
Y2VzICovLAogCQkJCUM1MjM3RjYwMTI0NDFDQTMwMDc4MDQ3MiAvKiBXZWJFZGl0b3JDbGllbnRN
YWMubW0gaW4gU291cmNlcyAqLywKLQkJCQlCQzExMUFFMDExMkY1QkMyMDAzMzdCQUIgLyogV2Vi
RXJyb3JzTWFjLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJQzAzMzdEQUUxMjdBMjRGRTAwOEZGNEY0
IC8qIFdlYkV2ZW50LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUJDMDMyREJBMTBGNDM4MEYwMDU4
QzE1QSAvKiBXZWJFdmVudENvbnZlcnNpb24uY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQkMxMTFC
NUUxMTJGNjI5ODAwMzM3QkFCIC8qIFdlYkV2ZW50RmFjdG9yeS5tbSBpbiBTb3VyY2VzICovLApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9OZXR3b3JrL1dlYkxvYWRlclN0
cmF0ZWd5LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvTmV0d29yay9XZWJMb2FkZXJT
dHJhdGVneS5jcHAKaW5kZXggMzkzYjhjZWRlMzM0NWJmZmJhNTJhOGZhNTFiNzg3NWJjYmI5OGFl
Zi4uNGY0NTFkNGNmY2YyODlmZmFkZWEzY2M0MjAyZWFkZWJmMzA0OGU4NiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9OZXR3b3JrL1dlYkxvYWRlclN0cmF0ZWd5LmNwcAor
KysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL05ldHdvcmsvV2ViTG9hZGVyU3RyYXRlZ3ku
Y3BwCkBAIC0zMyw3ICszMyw2IEBACiAjaW5jbHVkZSAiTmV0d29ya1Jlc291cmNlTG9hZFBhcmFt
ZXRlcnMuaCIKICNpbmNsdWRlICJTZXNzaW9uVHJhY2tlci5oIgogI2luY2x1ZGUgIldlYkNvcmVB
cmd1bWVudENvZGVycy5oIgotI2luY2x1ZGUgIldlYkVycm9ycy5oIgogI2luY2x1ZGUgIldlYkZy
YW1lLmgiCiAjaW5jbHVkZSAiV2ViRnJhbWVMb2FkZXJDbGllbnQuaCIKICNpbmNsdWRlICJXZWJG
cmFtZU5ldHdvcmtpbmdDb250ZXh0LmgiCkBAIC00NCw2ICs0Myw3IEBACiAjaW5jbHVkZSA8V2Vi
Q29yZS9DYWNoZWRSZXNvdXJjZS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvRG9jdW1lbnQuaD4KICNp
bmNsdWRlIDxXZWJDb3JlL0RvY3VtZW50TG9hZGVyLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9FcnJv
cnMuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0ZyYW1lLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9GcmFt
ZUxvYWRlci5oPgogI2luY2x1ZGUgPFdlYkNvcmUvTmV0c2NhcGVQbHVnSW5TdHJlYW1Mb2FkZXIu
aD4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvTmV0d29yay9XZWJSZXNv
dXJjZUxvYWRlci5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL05ldHdvcmsvV2ViUmVz
b3VyY2VMb2FkZXIuY3BwCmluZGV4IDc4YjBhOTg5MTg4MTg1ZWRjMWFhNzcyNDc4NGQ0N2Y0MGFm
YjJkYjcuLjk5YTY3ODYzYjkxNzVhZTJhMGE3MGU2MGY3YjBiM2RiNDJlNzdkNmYgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvTmV0d29yay9XZWJSZXNvdXJjZUxvYWRlci5j
cHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9OZXR3b3JrL1dlYlJlc291cmNlTG9h
ZGVyLmNwcApAQCAtMzEsMTEgKzMxLDExIEBACiAjaW5jbHVkZSAiTmV0d29ya1Byb2Nlc3NDb25u
ZWN0aW9uLmgiCiAjaW5jbHVkZSAiTmV0d29ya1Jlc291cmNlTG9hZGVyTWVzc2FnZXMuaCIKICNp
bmNsdWRlICJXZWJDb3JlQXJndW1lbnRDb2RlcnMuaCIKLSNpbmNsdWRlICJXZWJFcnJvcnMuaCIK
ICNpbmNsdWRlICJXZWJQcm9jZXNzLmgiCiAjaW5jbHVkZSA8V2ViQ29yZS9BcHBsaWNhdGlvbkNh
Y2hlSG9zdC5oPgogI2luY2x1ZGUgPFdlYkNvcmUvQ2VydGlmaWNhdGVJbmZvLmg+CiAjaW5jbHVk
ZSA8V2ViQ29yZS9Eb2N1bWVudExvYWRlci5oPgorI2luY2x1ZGUgPFdlYkNvcmUvRXJyb3JzLmg+
CiAjaW5jbHVkZSA8V2ViQ29yZS9SZXNvdXJjZUVycm9yLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9S
ZXNvdXJjZUxvYWRlci5oPgogI2luY2x1ZGUgPFdlYkNvcmUvU3VicmVzb3VyY2VMb2FkZXIuaD4K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2Vi
RnJhbWVMb2FkZXJDbGllbnQuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3Jl
U3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5jcHAKaW5kZXggNWY3NmJjOWY0MTllM2M0YTVm
MzE5ZjkzODk0ZGViNmExZTQ0ZGQzOS4uODZhNjliYjhlOTQ2ZjlkZTNkN2ExZjJiZDQxZTIxYzBk
NDlhNTcyYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3Vw
cG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5jcHAKQEAgLTQxLDcgKzQx
LDYgQEAKICNpbmNsdWRlICJXZWJCYWNrRm9yd2FyZExpc3RQcm94eS5oIgogI2luY2x1ZGUgIldl
YkNvcmVBcmd1bWVudENvZGVycy5oIgogI2luY2x1ZGUgIldlYkRvY3VtZW50TG9hZGVyLmgiCi0j
aW5jbHVkZSAiV2ViRXJyb3JzLmgiCiAjaW5jbHVkZSAiV2ViRXZlbnQuaCIKICNpbmNsdWRlICJX
ZWJGcmFtZS5oIgogI2luY2x1ZGUgIldlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQuaCIKQEAgLTU5
LDYgKzU4LDcgQEAKICNpbmNsdWRlIDxXZWJDb3JlL0Nocm9tZS5oPgogI2luY2x1ZGUgPFdlYkNv
cmUvRE9NV3JhcHBlcldvcmxkLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9Eb2N1bWVudExvYWRlci5o
PgorI2luY2x1ZGUgPFdlYkNvcmUvRXJyb3JzLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9Gb3JtU3Rh
dGUuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0ZyYW1lTG9hZFJlcXVlc3QuaD4KICNpbmNsdWRlIDxX
ZWJDb3JlL0ZyYW1lTG9hZGVyLmg+CkBAIC0xMDg5LDU3ICsxMDg5LDEwIEBAIHZvaWQgV2ViRnJh
bWVMb2FkZXJDbGllbnQ6OmRpZERldGVjdFhTUyhjb25zdCBVUkwmLCBib29sKQogICAgIHdlYlBh
Z2UtPnNlbmQoTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6RGlkRGV0ZWN0WFNTRm9yRnJhbWUobV9m
cmFtZS0+ZnJhbWVJRCgpLCBVc2VyRGF0YShXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS50cmFuc2Zv
cm1PYmplY3RzVG9IYW5kbGVzKHVzZXJEYXRhLmdldCgpKS5nZXQoKSkpKTsKIH0KIAotUmVzb3Vy
Y2VFcnJvciBXZWJGcmFtZUxvYWRlckNsaWVudDo6Y2FuY2VsbGVkRXJyb3IoY29uc3QgUmVzb3Vy
Y2VSZXF1ZXN0JiByZXF1ZXN0KQotewotICAgIHJldHVybiBXZWJLaXQ6OmNhbmNlbGxlZEVycm9y
KHJlcXVlc3QpOwotfQotCi1SZXNvdXJjZUVycm9yIFdlYkZyYW1lTG9hZGVyQ2xpZW50OjpibG9j
a2VkRXJyb3IoY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0KQotewotICAgIHJldHVybiBX
ZWJLaXQ6OmJsb2NrZWRFcnJvcihyZXF1ZXN0KTsKLX0KLQotUmVzb3VyY2VFcnJvciBXZWJGcmFt
ZUxvYWRlckNsaWVudDo6YmxvY2tlZEJ5Q29udGVudEJsb2NrZXJFcnJvcihjb25zdCBSZXNvdXJj
ZVJlcXVlc3QmIHJlcXVlc3QpCi17Ci0gICAgcmV0dXJuIFdlYktpdDo6YmxvY2tlZEJ5Q29udGVu
dEJsb2NrZXJFcnJvcihyZXF1ZXN0KTsKLX0KLQotUmVzb3VyY2VFcnJvciBXZWJGcmFtZUxvYWRl
ckNsaWVudDo6Y2Fubm90U2hvd1VSTEVycm9yKGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVz
dCkKLXsKLSAgICByZXR1cm4gV2ViS2l0OjpjYW5ub3RTaG93VVJMRXJyb3IocmVxdWVzdCk7Ci19
Ci0KLVJlc291cmNlRXJyb3IgV2ViRnJhbWVMb2FkZXJDbGllbnQ6OmludGVycnVwdGVkRm9yUG9s
aWN5Q2hhbmdlRXJyb3IoY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0KQotewotICAgIHJl
dHVybiBXZWJLaXQ6OmludGVycnVwdGVkRm9yUG9saWN5Q2hhbmdlRXJyb3IocmVxdWVzdCk7Ci19
Ci0KLSNpZiBFTkFCTEUoQ09OVEVOVF9GSUxURVJJTkcpCi1SZXNvdXJjZUVycm9yIFdlYkZyYW1l
TG9hZGVyQ2xpZW50OjpibG9ja2VkQnlDb250ZW50RmlsdGVyRXJyb3IoY29uc3QgUmVzb3VyY2VS
ZXF1ZXN0JiByZXF1ZXN0KQotewotICAgIHJldHVybiBXZWJLaXQ6OmJsb2NrZWRCeUNvbnRlbnRG
aWx0ZXJFcnJvcihyZXF1ZXN0KTsKLX0KLSNlbmRpZgotCi1SZXNvdXJjZUVycm9yIFdlYkZyYW1l
TG9hZGVyQ2xpZW50OjpjYW5ub3RTaG93TUlNRVR5cGVFcnJvcihjb25zdCBSZXNvdXJjZVJlc3Bv
bnNlJiByZXNwb25zZSkKLXsKLSAgICByZXR1cm4gV2ViS2l0OjpjYW5ub3RTaG93TUlNRVR5cGVF
cnJvcihyZXNwb25zZSk7Ci19Ci0KLVJlc291cmNlRXJyb3IgV2ViRnJhbWVMb2FkZXJDbGllbnQ6
OmZpbGVEb2VzTm90RXhpc3RFcnJvcihjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiByZXNwb25zZSkK
LXsKLSAgICByZXR1cm4gV2ViS2l0OjpmaWxlRG9lc05vdEV4aXN0RXJyb3IocmVzcG9uc2UpOwot
fQotCi1SZXNvdXJjZUVycm9yIFdlYkZyYW1lTG9hZGVyQ2xpZW50OjpwbHVnaW5XaWxsSGFuZGxl
TG9hZEVycm9yKGNvbnN0IFJlc291cmNlUmVzcG9uc2UmIHJlc3BvbnNlKQotewotICAgIHJldHVy
biBXZWJLaXQ6OnBsdWdpbldpbGxIYW5kbGVMb2FkRXJyb3IocmVzcG9uc2UpOwotfQotCiBib29s
IFdlYkZyYW1lTG9hZGVyQ2xpZW50OjpzaG91bGRGYWxsQmFjayhjb25zdCBSZXNvdXJjZUVycm9y
JiBlcnJvcikKIHsKLSAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgUmVzb3VyY2VFcnJv
cj4gY2FuY2VsbGVkRXJyb3IodGhpcy0+Y2FuY2VsbGVkRXJyb3IoUmVzb3VyY2VSZXF1ZXN0KCkp
KTsKLSAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgUmVzb3VyY2VFcnJvcj4gcGx1Z2lu
V2lsbEhhbmRsZUxvYWRFcnJvcih0aGlzLT5wbHVnaW5XaWxsSGFuZGxlTG9hZEVycm9yKFJlc291
cmNlUmVzcG9uc2UoKSkpOworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxjb25zdCBSZXNvdXJj
ZUVycm9yPiBjYW5jZWxsZWRFcnJvcihXZWJDb3JlOjpjYW5jZWxsZWRFcnJvcihSZXNvdXJjZVJl
cXVlc3QoKSkpOworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxjb25zdCBSZXNvdXJjZUVycm9y
PiBwbHVnaW5XaWxsSGFuZGxlTG9hZEVycm9yKFdlYkNvcmU6OnBsdWdpbldpbGxIYW5kbGVMb2Fk
RXJyb3IoUmVzb3VyY2VSZXNwb25zZSgpKSk7CiAKICAgICBpZiAoZXJyb3IuZXJyb3JDb2RlKCkg
PT0gY2FuY2VsbGVkRXJyb3IuZ2V0KCkuZXJyb3JDb2RlKCkgJiYgZXJyb3IuZG9tYWluKCkgPT0g
Y2FuY2VsbGVkRXJyb3IuZ2V0KCkuZG9tYWluKCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJh
bWVMb2FkZXJDbGllbnQuaCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBv
cnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuaAppbmRleCBiOWUzOWZlMjJmYjhhZWZiNWU5YTU4YTI2
ZjRhNmQ0YTIyZTIzYWI1Li5hOTY1OWExMGE5ZTA1YzA4ZmZhNWY0NTlkNDcwN2VhODBkMWUyOTY4
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dl
YkZyYW1lTG9hZGVyQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJD
b3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5oCkBAIC0xNDMsMTkgKzE0Myw2IEBAIHBy
aXZhdGU6CiAgICAgdm9pZCBkaWRSdW5JbnNlY3VyZUNvbnRlbnQoV2ViQ29yZTo6U2VjdXJpdHlP
cmlnaW4qLCBjb25zdCBXZWJDb3JlOjpVUkwmKSBvdmVycmlkZTsKICAgICB2b2lkIGRpZERldGVj
dFhTUyhjb25zdCBXZWJDb3JlOjpVUkwmLCBib29sIGRpZEJsb2NrRW50aXJlUGFnZSkgb3ZlcnJp
ZGU7CiAKLSAgICBXZWJDb3JlOjpSZXNvdXJjZUVycm9yIGNhbmNlbGxlZEVycm9yKGNvbnN0IFdl
YkNvcmU6OlJlc291cmNlUmVxdWVzdCYpIG92ZXJyaWRlOwotICAgIFdlYkNvcmU6OlJlc291cmNl
RXJyb3IgYmxvY2tlZEVycm9yKGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYpIG92ZXJy
aWRlOwotICAgIFdlYkNvcmU6OlJlc291cmNlRXJyb3IgYmxvY2tlZEJ5Q29udGVudEJsb2NrZXJF
cnJvcihjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmKSBvdmVycmlkZTsKLSAgICBXZWJD
b3JlOjpSZXNvdXJjZUVycm9yIGNhbm5vdFNob3dVUkxFcnJvcihjb25zdCBXZWJDb3JlOjpSZXNv
dXJjZVJlcXVlc3QmKSBvdmVycmlkZTsKLSAgICBXZWJDb3JlOjpSZXNvdXJjZUVycm9yIGludGVy
cnVwdGVkRm9yUG9saWN5Q2hhbmdlRXJyb3IoY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0
Jikgb3ZlcnJpZGU7Ci0jaWYgRU5BQkxFKENPTlRFTlRfRklMVEVSSU5HKQotICAgIFdlYkNvcmU6
OlJlc291cmNlRXJyb3IgYmxvY2tlZEJ5Q29udGVudEZpbHRlckVycm9yKGNvbnN0IFdlYkNvcmU6
OlJlc291cmNlUmVxdWVzdCYpIG92ZXJyaWRlOwotI2VuZGlmCi0gICAgCi0gICAgV2ViQ29yZTo6
UmVzb3VyY2VFcnJvciBjYW5ub3RTaG93TUlNRVR5cGVFcnJvcihjb25zdCBXZWJDb3JlOjpSZXNv
dXJjZVJlc3BvbnNlJikgb3ZlcnJpZGU7Ci0gICAgV2ViQ29yZTo6UmVzb3VyY2VFcnJvciBmaWxl
RG9lc05vdEV4aXN0RXJyb3IoY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSYpIG92ZXJy
aWRlOwotICAgIFdlYkNvcmU6OlJlc291cmNlRXJyb3IgcGx1Z2luV2lsbEhhbmRsZUxvYWRFcnJv
cihjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlJikgb3ZlcnJpZGU7Ci0gICAgCiAgICAg
Ym9vbCBzaG91bGRGYWxsQmFjayhjb25zdCBXZWJDb3JlOjpSZXNvdXJjZUVycm9yJikgb3ZlcnJp
ZGU7CiAgICAgCiAgICAgYm9vbCBjYW5IYW5kbGVSZXF1ZXN0KGNvbnN0IFdlYkNvcmU6OlJlc291
cmNlUmVxdWVzdCYpIGNvbnN0IG92ZXJyaWRlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJQbGF0Zm9ybVN0cmF0ZWdpZXMuY3BwIGIvU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJQbGF0Zm9ybVN0cmF0ZWdp
ZXMuY3BwCmluZGV4IDAxOWMxMzMyZGU0YzFiNGQyNTI5M2FkZWM3Y2JkMWQ0MTk3YmI2MGMuLjA3
OTU4ZGIxMjcxN2VjMTY1YWJkMGFiNWQ4YzFiMmM1Mjc1MzE1MzYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViUGxhdGZvcm1TdHJhdGVnaWVz
LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlBs
YXRmb3JtU3RyYXRlZ2llcy5jcHAKQEAgLTM3LDcgKzM3LDYgQEAKICNpbmNsdWRlICJTZXNzaW9u
VHJhY2tlci5oIgogI2luY2x1ZGUgIldlYkNvb2tpZU1hbmFnZXIuaCIKICNpbmNsdWRlICJXZWJD
b3JlQXJndW1lbnRDb2RlcnMuaCIKLSNpbmNsdWRlICJXZWJFcnJvcnMuaCIKICNpbmNsdWRlICJX
ZWJGcmFtZS5oIgogI2luY2x1ZGUgIldlYkZyYW1lTG9hZGVyQ2xpZW50LmgiCiAjaW5jbHVkZSAi
V2ViTG9hZGVyU3RyYXRlZ3kuaCIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvV2ViQ29yZVN1cHBvcnQvZWZsL1dlYkVycm9yc0VmbC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L2VmbC9XZWJFcnJvcnNFZmwuY3BwCmRlbGV0ZWQgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCBiMWI5N2Q4NjQ5MDlkMWJmN2RkZTQ3OWQ5YWM3YTcyZGVmNTdj
MzM3Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvZWZsL1dlYkVycm9yc0VmbC5jcHAK
KysrIC9kZXYvbnVsbApAQCAtMSw4NSArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDEx
IFNhbXN1bmcgRWxlY3Ryb25pY3MuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgot
ICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5k
L29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgot
ICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJ
QlVUT1JTIGBgQVMgSVMnJwotICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElF
UywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBUSEUgSU1QTElFRCBXQVJSQU5U
SUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQ
VVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElU
UyBDT05UUklCVVRPUlMKLSAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElO
Q0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKLSAqIENPTlNFUVVFTlRJQUwgREFNQUdF
UyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCi0gKiBTVUJT
VElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsg
T1IgQlVTSU5FU1MKLSAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBU
SEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCi0gKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJ
TElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQotICogQVJJ
U0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRgotICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNp
bmNsdWRlICJjb25maWcuaCIKLSNpbmNsdWRlICJXZWJFcnJvcnMuaCIKLQotI2luY2x1ZGUgIkFQ
SUVycm9yLmgiCi0jaW5jbHVkZSA8V2ViQ29yZS9FcnJvcnNFZmwuaD4KLSNpbmNsdWRlIDxXZWJD
b3JlL1Jlc291cmNlRXJyb3IuaD4KLSNpbmNsdWRlIDxXZWJDb3JlL1Jlc291cmNlUmVxdWVzdC5o
PgotI2luY2x1ZGUgPFdlYkNvcmUvUmVzb3VyY2VSZXNwb25zZS5oPgotI2luY2x1ZGUgPFdlYktp
dC9XS0Vycm9yUmVmLmg+Ci0KLXVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwotCi1uYW1lc3BhY2Ug
V2ViS2l0IHsKLQotUmVzb3VyY2VFcnJvciBjYW5jZWxsZWRFcnJvcihjb25zdCBSZXNvdXJjZVJl
cXVlc3QmIHJlcXVlc3QpCi17Ci0gICAgcmV0dXJuIFdlYkNvcmU6OmNhbmNlbGxlZEVycm9yKHJl
cXVlc3QpOwotfQotCi1SZXNvdXJjZUVycm9yIGJsb2NrZWRFcnJvcihjb25zdCBSZXNvdXJjZVJl
cXVlc3QmIHJlcXVlc3QpCi17Ci0gICAgcmV0dXJuIFdlYkNvcmU6OmJsb2NrZWRFcnJvcihyZXF1
ZXN0KTsKLX0KLQotUmVzb3VyY2VFcnJvciBibG9ja2VkQnlDb250ZW50QmxvY2tlckVycm9yKGNv
bnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCkKLXsKLSAgICByZXR1cm4gV2ViQ29yZTo6Ymxv
Y2tlZEJ5Q29udGVudEJsb2NrZXJFcnJvcihyZXF1ZXN0KTsKLX0KLQotUmVzb3VyY2VFcnJvciBj
YW5ub3RTaG93VVJMRXJyb3IoY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0KQotewotICAg
IHJldHVybiBXZWJDb3JlOjpjYW5ub3RTaG93VVJMRXJyb3IocmVxdWVzdCk7Ci19Ci0KLVJlc291
cmNlRXJyb3IgaW50ZXJydXB0ZWRGb3JQb2xpY3lDaGFuZ2VFcnJvcihjb25zdCBSZXNvdXJjZVJl
cXVlc3QmIHJlcXVlc3QpCi17Ci0gICAgcmV0dXJuIFdlYkNvcmU6OmludGVycnVwdGVkRm9yUG9s
aWN5Q2hhbmdlRXJyb3IocmVxdWVzdCk7Ci19Ci0KLVJlc291cmNlRXJyb3IgY2Fubm90U2hvd01J
TUVUeXBlRXJyb3IoY29uc3QgUmVzb3VyY2VSZXNwb25zZSYgcmVzcG9uc2UpCi17Ci0gICAgcmV0
dXJuIFdlYkNvcmU6OmNhbm5vdFNob3dNSU1FVHlwZUVycm9yKHJlc3BvbnNlKTsKLX0KLQotUmVz
b3VyY2VFcnJvciBmaWxlRG9lc05vdEV4aXN0RXJyb3IoY29uc3QgUmVzb3VyY2VSZXNwb25zZSYg
cmVzcG9uc2UpCi17Ci0gICAgcmV0dXJuIFdlYkNvcmU6OmZpbGVEb2VzTm90RXhpc3RFcnJvcihy
ZXNwb25zZSk7Ci19Ci0KLVJlc291cmNlRXJyb3IgcGx1Z2luV2lsbEhhbmRsZUxvYWRFcnJvcihj
b25zdCBSZXNvdXJjZVJlc3BvbnNlJiByZXNwb25zZSkKLXsKLSAgICByZXR1cm4gV2ViQ29yZTo6
cGx1Z2luV2lsbEhhbmRsZUxvYWRFcnJvcihyZXNwb25zZSk7Ci19Ci0KLVdlYkNvcmU6OlJlc291
cmNlRXJyb3IgaW50ZXJuYWxFcnJvcihjb25zdCBXZWJDb3JlOjpVUkwmIHVybCkKLXsKLSAgICBy
ZXR1cm4gUmVzb3VyY2VFcnJvcihBUEk6OkVycm9yOjp3ZWJLaXRFcnJvckRvbWFpbigpLCBrV0tF
cnJvckludGVybmFsLCB1cmwsIEFTQ0lJTGl0ZXJhbCgiSW50ZXJuYWwgZXJyb3IiKSk7Ci19Ci0K
LX0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9XZWJDb3JlU3VwcG9ydC9ndGsvV2ViRXJyb3JzR3RrLmNwcCBiL1NvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvZ3RrL1dlYkVycm9yc0d0ay5jcHAKZGVsZXRlZCBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IGU5ZDFkNGMyYjc0NGM3YTM2NTk2ZjlkYzQ5MjJmZDI2NDgy
ZjdmODMuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9ndGsvV2ViRXJyb3JzR3RrLmNw
cAorKysgL2Rldi9udWxsCkBAIC0xLDg4ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIw
MTAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICogUG9ydGlvbnMgQ29weXJpZ2h0
IChjKSAyMDEwIE1vdG9yb2xhIE1vYmlsaXR5LCBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgot
ICogQ29weXJpZ2h0IChDKSAyMDExIElnYWxpYSBTLkwuCi0gKgotICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNv
ZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVk
aXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5
cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVy
IG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBT
T0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBg
QVMgSVMnJwotICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1F
UkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFS
RSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklC
VVRPUlMKLSAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUws
IFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKLSAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCi0gKiBTVUJTVElUVVRFIEdP
T0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5F
U1MKLSAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0Yg
TElBQklMSVRZLCBXSEVUSEVSIElOCi0gKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1Ig
VE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQotICogQVJJU0lORyBJTiBB
TlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBP
RgotICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNpbmNsdWRlICJj
b25maWcuaCIKLSNpbmNsdWRlICJXZWJFcnJvcnMuaCIKLQotI2luY2x1ZGUgIkFQSUVycm9yLmgi
Ci0jaW5jbHVkZSA8V2ViQ29yZS9FcnJvcnNHdGsuaD4KLSNpbmNsdWRlIDxXZWJDb3JlL1Jlc291
cmNlRXJyb3IuaD4KLSNpbmNsdWRlIDxXZWJDb3JlL1Jlc291cmNlUmVxdWVzdC5oPgotI2luY2x1
ZGUgPFdlYkNvcmUvUmVzb3VyY2VSZXNwb25zZS5oPgotI2luY2x1ZGUgPFdlYktpdC9XS0Vycm9y
UmVmLmg+Ci0jaW5jbHVkZSA8Z2xpYi9naTE4bi1saWIuaD4KLQotdXNpbmcgbmFtZXNwYWNlIFdl
YkNvcmU7Ci0KLW5hbWVzcGFjZSBXZWJLaXQgewotCi1SZXNvdXJjZUVycm9yIGNhbmNlbGxlZEVy
cm9yKGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCkKLXsKLSAgICByZXR1cm4gV2ViQ29y
ZTo6Y2FuY2VsbGVkRXJyb3IocmVxdWVzdCk7Ci19Ci0KLVJlc291cmNlRXJyb3IgYmxvY2tlZEVy
cm9yKGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCkKLXsKLSAgICByZXR1cm4gV2ViQ29y
ZTo6YmxvY2tlZEVycm9yKHJlcXVlc3QpOwotfQotCi1SZXNvdXJjZUVycm9yIGJsb2NrZWRCeUNv
bnRlbnRCbG9ja2VyRXJyb3IoY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0KQotewotICAg
IHJldHVybiBXZWJDb3JlOjpibG9ja2VkQnlDb250ZW50QmxvY2tlckVycm9yKHJlcXVlc3QpOwot
fQotCi1SZXNvdXJjZUVycm9yIGNhbm5vdFNob3dVUkxFcnJvcihjb25zdCBSZXNvdXJjZVJlcXVl
c3QmIHJlcXVlc3QpCi17Ci0gICAgcmV0dXJuIFdlYkNvcmU6OmNhbm5vdFNob3dVUkxFcnJvcihy
ZXF1ZXN0KTsKLX0KLQotUmVzb3VyY2VFcnJvciBpbnRlcnJ1cHRlZEZvclBvbGljeUNoYW5nZUVy
cm9yKGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCkKLXsKLSAgICByZXR1cm4gV2ViQ29y
ZTo6aW50ZXJydXB0ZWRGb3JQb2xpY3lDaGFuZ2VFcnJvcihyZXF1ZXN0KTsKLX0KLQotUmVzb3Vy
Y2VFcnJvciBjYW5ub3RTaG93TUlNRVR5cGVFcnJvcihjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiBy
ZXNwb25zZSkKLXsKLSAgICByZXR1cm4gV2ViQ29yZTo6Y2Fubm90U2hvd01JTUVUeXBlRXJyb3Io
cmVzcG9uc2UpOwotfQotCi1SZXNvdXJjZUVycm9yIGZpbGVEb2VzTm90RXhpc3RFcnJvcihjb25z
dCBSZXNvdXJjZVJlc3BvbnNlJiByZXNwb25zZSkKLXsKLSAgICByZXR1cm4gV2ViQ29yZTo6Zmls
ZURvZXNOb3RFeGlzdEVycm9yKHJlc3BvbnNlKTsKLX0KLQotUmVzb3VyY2VFcnJvciBwbHVnaW5X
aWxsSGFuZGxlTG9hZEVycm9yKGNvbnN0IFJlc291cmNlUmVzcG9uc2UmIHJlc3BvbnNlKQotewot
ICAgIHJldHVybiBXZWJDb3JlOjpwbHVnaW5XaWxsSGFuZGxlTG9hZEVycm9yKHJlc3BvbnNlKTsK
LX0KLQotV2ViQ29yZTo6UmVzb3VyY2VFcnJvciBpbnRlcm5hbEVycm9yKGNvbnN0IFdlYkNvcmU6
OlVSTCYgdXJsKQotewotICAgIHJldHVybiBSZXNvdXJjZUVycm9yKEFQSTo6RXJyb3I6OndlYktp
dEVycm9yRG9tYWluKCksIGtXS0Vycm9ySW50ZXJuYWwsIHVybCwgXygiSW50ZXJuYWwgZXJyb3Ii
KSk7Ci19Ci0KLX0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9tYWMvV2ViRXJyb3JzTWFjLm1tIGIvU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9tYWMvV2ViRXJyb3JzTWFjLm1tCmRl
bGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBhYTc4NDg1YjY1MmZkM2M0OTVlZDRlNWYyZTlm
M2VkNTQzYWRjM2EzLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0t
LSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvbWFjL1dlYkVycm9y
c01hYy5tbQorKysgL2Rldi9udWxsCkBAIC0xLDEwNyArMCwwIEBACi0vKgotICogQ29weXJpZ2h0
IChDKSAyMDEwLTIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25z
IG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0
aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9u
IGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgot
ICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENP
TlRSSUJVVE9SUyBgYEFTIElTJycKLSAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJB
TlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogVEhFIElNUExJRUQgV0FS
UkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgot
ICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBP
UiBJVFMgQ09OVFJJQlVUT1JTCi0gKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNU
LCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCi0gKiBDT05TRVFVRU5USUFMIERB
TUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgotICog
U1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJ
VFM7IE9SIEJVU0lORVNTCi0gKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBB
TlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgotICogQ09OVFJBQ1QsIFNUUklDVCBM
SUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKLSAq
IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVO
IElGIEFEVklTRUQgT0YKLSAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwot
Ci0jaW1wb3J0ICJjb25maWcuaCIKLSNpbXBvcnQgIldlYkVycm9ycy5oIgotCi0jaW1wb3J0ICJB
UElFcnJvci5oIgotI2ltcG9ydCAiV0tFcnJvclJlZi5oIgotI2ltcG9ydCA8V2ViQ29yZS9Mb2Nh
bGl6ZWRTdHJpbmdzLmg+Ci0jaW1wb3J0IDxXZWJDb3JlL1Jlc291cmNlUmVxdWVzdC5oPgotI2lt
cG9ydCA8V2ViQ29yZS9SZXNvdXJjZVJlc3BvbnNlLmg+Ci0KLXVzaW5nIG5hbWVzcGFjZSBXZWJD
b3JlOwotdXNpbmcgbmFtZXNwYWNlIFdlYktpdDsKLQotbmFtZXNwYWNlIFdlYktpdCB7Ci0KLXN0
YXRpYyBSZXRhaW5QdHI8TlNFcnJvcj4gY3JlYXRlTlNFcnJvcihOU1N0cmluZyogZG9tYWluLCBp
bnQgY29kZSwgTlNVUkwgKlVSTCkKLXsKLSAgICBOU0RpY3Rpb25hcnkgKnVzZXJJbmZvID0gW05T
RGljdGlvbmFyeSBkaWN0aW9uYXJ5V2l0aE9iamVjdHNBbmRLZXlzOgotICAgICAgICBVUkwsIEAi
TlNFcnJvckZhaWxpbmdVUkxLZXkiLAotICAgICAgICBbVVJMIGFic29sdXRlU3RyaW5nXSwgQCJO
U0Vycm9yRmFpbGluZ1VSTFN0cmluZ0tleSIsCi0gICAgICAgIG5pbF07Ci0KLSAgICByZXR1cm4g
YWRvcHROUyhbW05TRXJyb3IgYWxsb2NdIGluaXRXaXRoRG9tYWluOmRvbWFpbiBjb2RlOmNvZGUg
dXNlckluZm86dXNlckluZm9dKTsKLX0KLQotLy8gVXNlIE5TRXJyb3IncyBpZiBhdmFpbGFibGUu
Ci0KLVJlc291cmNlRXJyb3IgY2FuY2VsbGVkRXJyb3IoY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiBy
ZXF1ZXN0KQotewotICAgIHJldHVybiBSZXNvdXJjZUVycm9yKGNyZWF0ZU5TRXJyb3IoTlNVUkxF
cnJvckRvbWFpbiwgTlNVUkxFcnJvckNhbmNlbGxlZCwgcmVxdWVzdC51cmwoKSkuZ2V0KCkpOwot
fQotCi1SZXNvdXJjZUVycm9yIGZpbGVEb2VzTm90RXhpc3RFcnJvcihjb25zdCBSZXNvdXJjZVJl
c3BvbnNlJiByZXNwb25zZSkKLXsKLSAgICByZXR1cm4gUmVzb3VyY2VFcnJvcihjcmVhdGVOU0Vy
cm9yKE5TVVJMRXJyb3JEb21haW4sIE5TVVJMRXJyb3JGaWxlRG9lc05vdEV4aXN0LCByZXNwb25z
ZS51cmwoKSkuZ2V0KCkpOwotfQotCi0KLS8vIE90aGVyd2lzZSwgZmFsbGJhY2sgdG8gb3VyIG93
biBlcnJvcnMuCi0KLVJlc291cmNlRXJyb3IgYmxvY2tlZEVycm9yKGNvbnN0IFJlc291cmNlUmVx
dWVzdCYgcmVxdWVzdCkKLXsKLSAgICByZXR1cm4gUmVzb3VyY2VFcnJvcihBUEk6OkVycm9yOjp3
ZWJLaXRFcnJvckRvbWFpbigpLCBrV0tFcnJvckNvZGVDYW5ub3RVc2VSZXN0cmljdGVkUG9ydCwg
cmVxdWVzdC51cmwoKSwgV0VCX1VJX1NUUklORygiTm90IGFsbG93ZWQgdG8gdXNlIHJlc3RyaWN0
ZWQgbmV0d29yayBwb3J0IiwgIldlYktpdEVycm9yQ2Fubm90VXNlUmVzdHJpY3RlZFBvcnQgZGVz
Y3JpcHRpb24iKSk7Ci19Ci0KLVJlc291cmNlRXJyb3IgYmxvY2tlZEJ5Q29udGVudEJsb2NrZXJF
cnJvcihjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QpCi17Ci0gICAgcmV0dXJuIFJlc291
cmNlRXJyb3IoQVBJOjpFcnJvcjo6d2ViS2l0RXJyb3JEb21haW4oKSwga1dLRXJyb3JDb2RlRnJh
bWVMb2FkQmxvY2tlZEJ5Q29udGVudEJsb2NrZXIsIHJlcXVlc3QudXJsKCksIFdFQl9VSV9TVFJJ
TkcoIlRoZSBVUkwgd2FzIGJsb2NrZWQgYnkgYSBjb250ZW50IGJsb2NrZXIiLCAiV2ViS2l0RXJy
b3JCbG9ja2VkQnlDb250ZW50QmxvY2tlciBkZXNjcmlwdGlvbiIpKTsKLX0KLQotUmVzb3VyY2VF
cnJvciBjYW5ub3RTaG93VVJMRXJyb3IoY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0KQot
ewotICAgIHJldHVybiBSZXNvdXJjZUVycm9yKEFQSTo6RXJyb3I6OndlYktpdEVycm9yRG9tYWlu
KCksIGtXS0Vycm9yQ29kZUNhbm5vdFNob3dVUkwsIHJlcXVlc3QudXJsKCksIFdFQl9VSV9TVFJJ
TkcoIlRoZSBVUkwgY2Fu4oCZdCBiZSBzaG93biIsICJXZWJLaXRFcnJvckNhbm5vdFNob3dVUkwg
ZGVzY3JpcHRpb24iKSk7Ci19Ci0KLVJlc291cmNlRXJyb3IgaW50ZXJydXB0ZWRGb3JQb2xpY3lD
aGFuZ2VFcnJvcihjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QpCi17Ci0gICAgcmV0dXJu
IFJlc291cmNlRXJyb3IoQVBJOjpFcnJvcjo6d2ViS2l0RXJyb3JEb21haW4oKSwga1dLRXJyb3JD
b2RlRnJhbWVMb2FkSW50ZXJydXB0ZWRCeVBvbGljeUNoYW5nZSwgcmVxdWVzdC51cmwoKSwgV0VC
X1VJX1NUUklORygiRnJhbWUgbG9hZCBpbnRlcnJ1cHRlZCIsICJXZWJLaXRFcnJvckZyYW1lTG9h
ZEludGVycnVwdGVkQnlQb2xpY3lDaGFuZ2UgZGVzY3JpcHRpb24iKSk7Ci19Ci0KLSNpZiBFTkFC
TEUoQ09OVEVOVF9GSUxURVJJTkcpCi1SZXNvdXJjZUVycm9yIGJsb2NrZWRCeUNvbnRlbnRGaWx0
ZXJFcnJvcihjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QpCi17Ci0gICAgcmV0dXJuIFJl
c291cmNlRXJyb3IoQVBJOjpFcnJvcjo6d2ViS2l0RXJyb3JEb21haW4oKSwga1dLRXJyb3JDb2Rl
RnJhbWVMb2FkQmxvY2tlZEJ5Q29udGVudEZpbHRlciwgcmVxdWVzdC51cmwoKSwgV0VCX1VJX1NU
UklORygiVGhlIFVSTCB3YXMgYmxvY2tlZCBieSBhIGNvbnRlbnQgZmlsdGVyIiwgIldlYktpdEVy
cm9yQmxvY2tlZEJ5Q29udGVudEZpbHRlciIpKTsKLX0KLSNlbmRpZgotCi1SZXNvdXJjZUVycm9y
IGNhbm5vdFNob3dNSU1FVHlwZUVycm9yKGNvbnN0IFJlc291cmNlUmVzcG9uc2UmIHJlc3BvbnNl
KQotewotICAgIHJldHVybiBSZXNvdXJjZUVycm9yKEFQSTo6RXJyb3I6OndlYktpdEVycm9yRG9t
YWluKCksIGtXS0Vycm9yQ29kZUNhbm5vdFNob3dNSU1FVHlwZSwgcmVzcG9uc2UudXJsKCksIFdF
Ql9VSV9TVFJJTkcoIkNvbnRlbnQgd2l0aCBzcGVjaWZpZWQgTUlNRSB0eXBlIGNhbuKAmXQgYmUg
c2hvd24iLCAiV2ViS2l0RXJyb3JDYW5ub3RTaG93TUlNRVR5cGUgZGVzY3JpcHRpb24iKSk7Ci19
Ci0KLVJlc291cmNlRXJyb3IgcGx1Z2luV2lsbEhhbmRsZUxvYWRFcnJvcihjb25zdCBSZXNvdXJj
ZVJlc3BvbnNlJiByZXNwb25zZSkKLXsKLSAgICByZXR1cm4gUmVzb3VyY2VFcnJvcihBUEk6OkVy
cm9yOjp3ZWJLaXRFcnJvckRvbWFpbigpLCBrV0tFcnJvckNvZGVQbHVnSW5XaWxsSGFuZGxlTG9h
ZCwgcmVzcG9uc2UudXJsKCksIFdFQl9VSV9TVFJJTkcoIlBsdWctaW4gaGFuZGxlZCBsb2FkIiwg
IldlYktpdEVycm9yUGx1Z0luV2lsbEhhbmRsZUxvYWQgZGVzY3JpcHRpb24iKSk7Ci19Ci0KLVJl
c291cmNlRXJyb3IgaW50ZXJuYWxFcnJvcihjb25zdCBVUkwmIHVybCkKLXsKLSAgICByZXR1cm4g
UmVzb3VyY2VFcnJvcihBUEk6OkVycm9yOjp3ZWJLaXRFcnJvckRvbWFpbigpLCBrV0tFcnJvcklu
dGVybmFsLCB1cmwsIFdFQl9VSV9TVFJJTkcoIldlYktpdCBlbmNvdW50ZXJlZCBhbiBpbnRlcm5h
bCBlcnJvciIsICJXZWJLaXRFcnJvckludGVybmFsIGRlc2NyaXB0aW9uIikpOwotfQotCi19IC8v
IG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
V2ViQ29yZVN1cHBvcnQvbWFjL1dlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQubW0gYi9Tb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L21hYy9XZWJGcmFtZU5ldHdvcmtpbmdD
b250ZXh0Lm1tCmluZGV4IDFjYzE1YzY1NDFjYTE3OTNlYmY4YzE3YjZhOTFhZWFmNWNjZTA3Y2Mu
LjFlZDJlYTUwZjQ1N2M4MjBhOTdiMjAzOWY1OTljZGY3YTNmYTU4YjUgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvbWFjL1dlYkZyYW1lTmV0d29y
a2luZ0NvbnRleHQubW0KKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3Vw
cG9ydC9tYWMvV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dC5tbQpAQCAtMzIsNiArMzIsNyBAQAog
I2luY2x1ZGUgIldlYlBhZ2UuaCIKICNpbmNsdWRlICJXZWJQcm9jZXNzLmgiCiAjaW5jbHVkZSA8
V2ViQ29yZS9DRk5ldHdvcmtTUEkuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL0Vycm9ycy5oPgogI2lu
Y2x1ZGUgPFdlYkNvcmUvRnJhbWUuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0ZyYW1lTG9hZGVyLmg+
CiAjaW5jbHVkZSA8V2ViQ29yZS9GcmFtZUxvYWRlckNsaWVudC5oPgpAQCAtOTksNyArMTAwLDcg
QEAgU3RyaW5nIFdlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQ6OnNvdXJjZUFwcGxpY2F0aW9uSWRl
bnRpZmllcigpIGNvbnN0CiAKIFJlc291cmNlRXJyb3IgV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4
dDo6YmxvY2tlZEVycm9yKGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCkgY29uc3QKIHsK
LSAgICByZXR1cm4gZnJhbWUoKS0+bG9hZGVyKCkuY2xpZW50KCkuYmxvY2tlZEVycm9yKHJlcXVl
c3QpOworICAgIHJldHVybiBXZWJDb3JlOjpibG9ja2VkRXJyb3IocmVxdWVzdCk7CiB9CiAKIE5l
dHdvcmtTdG9yYWdlU2Vzc2lvbiYgV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dDo6c3RvcmFnZVNl
c3Npb24oKSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQ
YWdlL2d0ay9XZWJQcmludE9wZXJhdGlvbkd0ay5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9j
ZXNzL1dlYlBhZ2UvZ3RrL1dlYlByaW50T3BlcmF0aW9uR3RrLmNwcAppbmRleCBiNjIwNWRiOTQ5
NTAxM2U0YThlMjIxY2Q2YmZiNmQ4NDk4MzgzMDEyLi43MGVmNTBlMDE4ZjZlMTJlMDZlOTJjMTEx
NDlkYTBlYzdiMTFhYmI1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dl
YlBhZ2UvZ3RrL1dlYlByaW50T3BlcmF0aW9uR3RrLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL1dlYlBhZ2UvZ3RrL1dlYlByaW50T3BlcmF0aW9uR3RrLmNwcApAQCAtMzEsNyAr
MzEsNyBAQAogI2luY2x1ZGUgIldlYlBhZ2VQcm94eU1lc3NhZ2VzLmgiCiAjaW5jbHVkZSAiV2Vi
UHJvY2Vzcy5oIgogI2luY2x1ZGUgPFdlYkNvcmUvRG9jdW1lbnRMb2FkZXIuaD4KLSNpbmNsdWRl
IDxXZWJDb3JlL0Vycm9yc0d0ay5oPgorI2luY2x1ZGUgPFdlYkNvcmUvRXJyb3JzVW5peC5oPgog
I2luY2x1ZGUgPFdlYkNvcmUvRnJhbWUuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0ludFJlY3QuaD4K
ICNpbmNsdWRlIDxXZWJDb3JlL05vdEltcGxlbWVudGVkLmg+Cg==
</data>
<flag name="review"
          id="309484"
          type_id="1"
          status="-"
          setter="sam"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>304508</attachid>
            <date>2017-03-15 09:58:44 -0700</date>
            <delta_ts>2017-03-22 03:00:48 -0700</delta_ts>
            <desc>New patch</desc>
            <filename>wk2-web-errors.diff</filename>
            <type>text/plain</type>
            <size>66613</size>
            <attacher name="Carlos Garcia Campos">cgarcia</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCA5MGI2NmVkNDAyYy4uNmYwM2EzNmI2ZDYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEs
NSArMSwxOCBAQAogMjAxNy0wMy0xNSAgQ2FybG9zIEdhcmNpYSBDYW1wb3MgIDxjZ2FyY2lhQGln
YWxpYS5jb20+CiAKKyAgICAgICAgTW92ZSBXZWJFcnJvcnMgZnJvbSBXZWJQcm9jZXNzIHRvIFNo
YXJlZCBhbmQgZ2V0IHJpZCBvZiBFcnJvcnNHdGsgaW4gV2ViQ29yZQorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTU2OTc0CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUmVtb3ZlIEVycm9yc0d0ay4KKworICAg
ICAgICAqIFBsYXRmb3JtR1RLLmNtYWtlOgorICAgICAgICAqIHBsYXRmb3JtL2d0ay9FcnJvcnNH
dGsuY3BwOiBSZW1vdmVkLgorICAgICAgICAqIHBsYXRmb3JtL2d0ay9FcnJvcnNHdGsuaDogUmVt
b3ZlZC4KKworMjAxNy0wMy0xNSAgQ2FybG9zIEdhcmNpYSBDYW1wb3MgIDxjZ2FyY2lhQGlnYWxp
YS5jb20+CisKICAgICAgICAgTWFrZSBpdCBwb3NzaWJsZSB0byB1c2UgV0VCX1VJX1NUUklORyBt
YWNyb3MgdG8gbWFyayB0cmFuc2xhdGFibGUgc3RyaW5ncyBpbiBnbGliIGJhc2VkIHBvcnRzCiAg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNjk2NzIKIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvUGxhdGZvcm1HVEsuY21ha2UgYi9Tb3VyY2UvV2Vi
Q29yZS9QbGF0Zm9ybUdUSy5jbWFrZQppbmRleCBiNThlNzVjYTY3Yi4uZGQ2YWYzNGFmMDggMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1BsYXRmb3JtR1RLLmNtYWtlCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL1BsYXRmb3JtR1RLLmNtYWtlCkBAIC0xMzcsNyArMTM3LDYgQEAgbGlzdChBUFBFTkQg
V2ViQ29yZV9TT1VSQ0VTCiAgICAgcGxhdGZvcm0vZ3JhcGhpY3MveDExL1hVbmlxdWVSZXNvdXJj
ZS5jcHAKIAogICAgIHBsYXRmb3JtL2d0ay9EcmFnRGF0YUd0ay5jcHAKLSAgICBwbGF0Zm9ybS9n
dGsvRXJyb3JzR3RrLmNwcAogICAgIHBsYXRmb3JtL2d0ay9Mb2NhbGl6ZWRTdHJpbmdzR3RrLmNw
cAogICAgIHBsYXRmb3JtL2d0ay9NSU1FVHlwZVJlZ2lzdHJ5R3RrLmNwcAogICAgIHBsYXRmb3Jt
L2d0ay9QYXN0ZWJvYXJkR3RrLmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3RrL0Vycm9yc0d0ay5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvRXJyb3Jz
R3RrLmNwcApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggOGRmZDE1OGIzYjQuLjAwMDAw
MDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9FcnJvcnNHdGsuY3BwCisr
KyAvZGV2L251bGwKQEAgLTEsMTAwICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTEg
SWdhbGlhIFMuTC4KLSAqCi0gKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNh
biByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCi0gKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9m
IHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYwotICogTGljZW5zZSBhcyBwdWJsaXNoZWQg
YnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCi0gKiB2ZXJzaW9uIDIgb2Yg
dGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCi0gKgot
ICogVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBi
ZSB1c2VmdWwsCi0gKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUg
aW1wbGllZCB3YXJyYW50eSBvZgotICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKLSAqIExpYnJhcnkgR2VuZXJhbCBQdWJs
aWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgotICoKLSAqIFlvdSBzaG91bGQgaGF2ZSByZWNl
aXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UKLSAq
IGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIuICBJZiBu
b3QsIHdyaXRlIHRvCi0gKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1MSBG
cmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLAotICogQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBV
U0EuCi0gKi8KLQotI2luY2x1ZGUgImNvbmZpZy5oIgotI2luY2x1ZGUgIkVycm9yc0d0ay5oIgot
Ci0jaW5jbHVkZSAiUmVzb3VyY2VFcnJvci5oIgotI2luY2x1ZGUgIlJlc291cmNlUmVxdWVzdC5o
IgotI2luY2x1ZGUgIlJlc291cmNlUmVzcG9uc2UuaCIKLSNpbmNsdWRlIDxnbGliL2dpMThuLWxp
Yi5oPgotCi1uYW1lc3BhY2UgV2ViQ29yZSB7Ci0KLVJlc291cmNlRXJyb3IgY2FuY2VsbGVkRXJy
b3IoY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0KQotewotICAgIHJldHVybiBSZXNvdXJj
ZUVycm9yKGVycm9yRG9tYWluTmV0d29yaywgTmV0d29ya0Vycm9yQ2FuY2VsbGVkLCByZXF1ZXN0
LnVybCgpLCBfKCJMb2FkIHJlcXVlc3QgY2FuY2VsbGVkIikpOwotfQotCi1SZXNvdXJjZUVycm9y
IGJsb2NrZWRFcnJvcihjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QpCi17Ci0gICAgcmV0
dXJuIFJlc291cmNlRXJyb3IoZXJyb3JEb21haW5Qb2xpY3ksIFBvbGljeUVycm9yQ2Fubm90VXNl
UmVzdHJpY3RlZFBvcnQsIHJlcXVlc3QudXJsKCksIF8oIk5vdCBhbGxvd2VkIHRvIHVzZSByZXN0
cmljdGVkIG5ldHdvcmsgcG9ydCIpKTsKLX0KLQotUmVzb3VyY2VFcnJvciBibG9ja2VkQnlDb250
ZW50QmxvY2tlckVycm9yKGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCkKLXsKLSAgICBy
ZXR1cm4gUmVzb3VyY2VFcnJvcihlcnJvckRvbWFpblBvbGljeSwgUG9saWN5RXJyb3JCbG9ja2Vk
QnlDb250ZW50QmxvY2tlciwgcmVxdWVzdC51cmwoKSwgXygiQmxvY2tlZCBieSBjb250ZW50IGJs
b2NrZXIiKSk7Ci19Ci0KLVJlc291cmNlRXJyb3IgY2Fubm90U2hvd1VSTEVycm9yKGNvbnN0IFJl
c291cmNlUmVxdWVzdCYgcmVxdWVzdCkKLXsKLSAgICByZXR1cm4gUmVzb3VyY2VFcnJvcihlcnJv
ckRvbWFpblBvbGljeSwgUG9saWN5RXJyb3JDYW5ub3RTaG93VVJMLCByZXF1ZXN0LnVybCgpLCBf
KCJVUkwgY2Fubm90IGJlIHNob3duIikpOwotfQotCi1SZXNvdXJjZUVycm9yIGludGVycnVwdGVk
Rm9yUG9saWN5Q2hhbmdlRXJyb3IoY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0KQotewot
ICAgIHJldHVybiBSZXNvdXJjZUVycm9yKGVycm9yRG9tYWluUG9saWN5LCBQb2xpY3lFcnJvckZy
YW1lTG9hZEludGVycnVwdGVkQnlQb2xpY3lDaGFuZ2UsIHJlcXVlc3QudXJsKCksIF8oIkZyYW1l
IGxvYWQgd2FzIGludGVycnVwdGVkIikpOwotfQotCi1SZXNvdXJjZUVycm9yIGNhbm5vdFNob3dN
SU1FVHlwZUVycm9yKGNvbnN0IFJlc291cmNlUmVzcG9uc2UmIHJlc3BvbnNlKQotewotICAgIHJl
dHVybiBSZXNvdXJjZUVycm9yKGVycm9yRG9tYWluUG9saWN5LCBQb2xpY3lFcnJvckNhbm5vdFNo
b3dNaW1lVHlwZSwgcmVzcG9uc2UudXJsKCksIF8oIkNvbnRlbnQgd2l0aCB0aGUgc3BlY2lmaWVk
IE1JTUUgdHlwZSBjYW5ub3QgYmUgc2hvd24iKSk7Ci19Ci0KLVJlc291cmNlRXJyb3IgZmlsZURv
ZXNOb3RFeGlzdEVycm9yKGNvbnN0IFJlc291cmNlUmVzcG9uc2UmIHJlc3BvbnNlKQotewotICAg
IHJldHVybiBSZXNvdXJjZUVycm9yKGVycm9yRG9tYWluTmV0d29yaywgTmV0d29ya0Vycm9yRmls
ZURvZXNOb3RFeGlzdCwgcmVzcG9uc2UudXJsKCksIF8oIkZpbGUgZG9lcyBub3QgZXhpc3QiKSk7
Ci19Ci0KLVJlc291cmNlRXJyb3IgcGx1Z2luV2lsbEhhbmRsZUxvYWRFcnJvcihjb25zdCBSZXNv
dXJjZVJlc3BvbnNlJiByZXNwb25zZSkKLXsKLSAgICByZXR1cm4gUmVzb3VyY2VFcnJvcihlcnJv
ckRvbWFpblBsdWdpbiwgUGx1Z2luRXJyb3JXaWxsSGFuZGxlTG9hZCwgcmVzcG9uc2UudXJsKCks
IF8oIlBsdWdpbiB3aWxsIGhhbmRsZSBsb2FkIikpOwotfQotCi1SZXNvdXJjZUVycm9yIGRvd25s
b2FkTmV0d29ya0Vycm9yKGNvbnN0IFJlc291cmNlRXJyb3ImIG5ldHdvcmtFcnJvcikKLXsKLSAg
ICByZXR1cm4gUmVzb3VyY2VFcnJvcihlcnJvckRvbWFpbkRvd25sb2FkLCBEb3dubG9hZEVycm9y
TmV0d29yaywgbmV0d29ya0Vycm9yLmZhaWxpbmdVUkwoKSwgbmV0d29ya0Vycm9yLmxvY2FsaXpl
ZERlc2NyaXB0aW9uKCkpOwotfQotCi1SZXNvdXJjZUVycm9yIGRvd25sb2FkQ2FuY2VsbGVkQnlV
c2VyRXJyb3IoY29uc3QgUmVzb3VyY2VSZXNwb25zZSYgcmVzcG9uc2UpCi17Ci0gICAgcmV0dXJu
IFJlc291cmNlRXJyb3IoZXJyb3JEb21haW5Eb3dubG9hZCwgRG93bmxvYWRFcnJvckNhbmNlbGxl
ZEJ5VXNlciwgcmVzcG9uc2UudXJsKCksIF8oIlVzZXIgY2FuY2VsbGVkIHRoZSBkb3dubG9hZCIp
KTsKLX0KLQotUmVzb3VyY2VFcnJvciBkb3dubG9hZERlc3RpbmF0aW9uRXJyb3IoY29uc3QgUmVz
b3VyY2VSZXNwb25zZSYgcmVzcG9uc2UsIGNvbnN0IFN0cmluZyYgZXJyb3JNZXNzYWdlKQotewot
ICAgIHJldHVybiBSZXNvdXJjZUVycm9yKGVycm9yRG9tYWluRG93bmxvYWQsIERvd25sb2FkRXJy
b3JEZXN0aW5hdGlvbiwgcmVzcG9uc2UudXJsKCksIGVycm9yTWVzc2FnZSk7Ci19Ci0KLVJlc291
cmNlRXJyb3IgcHJpbnRFcnJvcihjb25zdCBVUkwmIGZhaWxpbmdVUkwsIGNvbnN0IFN0cmluZyYg
ZXJyb3JNZXNzYWdlKQotewotICAgIHJldHVybiBSZXNvdXJjZUVycm9yKGVycm9yRG9tYWluUHJp
bnQsIFByaW50RXJyb3JHZW5lcmFsLCBmYWlsaW5nVVJMLCBlcnJvck1lc3NhZ2UpOwotfQotCi1S
ZXNvdXJjZUVycm9yIHByaW50ZXJOb3RGb3VuZEVycm9yKGNvbnN0IFVSTCYgZmFpbGluZ1VSTCkK
LXsKLSAgICByZXR1cm4gUmVzb3VyY2VFcnJvcihlcnJvckRvbWFpblByaW50LCBQcmludEVycm9y
UHJpbnRlck5vdEZvdW5kLCBmYWlsaW5nVVJMLCBfKCJQcmludGVyIG5vdCBmb3VuZCIpKTsKLX0K
LQotUmVzb3VyY2VFcnJvciBpbnZhbGlkUGFnZVJhbmdlVG9QcmludChjb25zdCBVUkwmIGZhaWxp
bmdVUkwpCi17Ci0gICAgcmV0dXJuIFJlc291cmNlRXJyb3IoZXJyb3JEb21haW5QcmludCwgUHJp
bnRFcnJvckludmFsaWRQYWdlUmFuZ2UsIGZhaWxpbmdVUkwsIF8oIkludmFsaWQgcGFnZSByYW5n
ZSIpKTsKLX0KLQotfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3RrL0Vycm9yc0d0ay5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3RrL0Vycm9yc0d0ay5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA3NjFkY2NiMjZl
Zi4uMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL0Vycm9yc0d0
ay5oCisrKyAvZGV2L251bGwKQEAgLTEsOTQgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykg
MjAxMSBJZ2FsaWEgUy5MLgotICoKLSAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5
b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKLSAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVy
bXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCi0gKiBMaWNlbnNlIGFzIHB1Ymxp
c2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKLSAqIHZlcnNpb24g
MiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4K
LSAqCi0gKiBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3
aWxsIGJlIHVzZWZ1bCwKLSAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVu
IHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCi0gKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQotICogTGlicmFyeSBHZW5lcmFs
IFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCi0gKgotICogWW91IHNob3VsZCBoYXZl
IHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5z
ZQotICogYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4g
IElmIG5vdCwgd3JpdGUgdG8KLSAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4s
IDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsCi0gKiBCb3N0b24sIE1BIDAyMTEwLTEz
MDEsIFVTQS4KLSAqLwotCi0jaWZuZGVmIEVycm9yc0d0a19oCi0jZGVmaW5lIEVycm9yc0d0a19o
Ci0KLSNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KLQotbmFtZXNwYWNlIFdlYkNvcmUg
ewotCi1jbGFzcyBSZXNvdXJjZUVycm9yOwotY2xhc3MgUmVzb3VyY2VSZXF1ZXN0OwotY2xhc3Mg
UmVzb3VyY2VSZXNwb25zZTsKLWNsYXNzIFVSTDsKLQotY29uc3QgY2hhciogY29uc3QgZXJyb3JE
b21haW5OZXR3b3JrID0gIldlYktpdE5ldHdvcmtFcnJvciI7Ci1jb25zdCBjaGFyKiBjb25zdCBl
cnJvckRvbWFpblBvbGljeSA9ICJXZWJLaXRQb2xpY3lFcnJvciI7Ci1jb25zdCBjaGFyKiBjb25z
dCBlcnJvckRvbWFpblBsdWdpbiA9ICJXZWJLaXRQbHVnaW5FcnJvciI7Ci1jb25zdCBjaGFyKiBj
b25zdCBlcnJvckRvbWFpbkRvd25sb2FkID0gIldlYktpdERvd25sb2FkRXJyb3IiOwotY29uc3Qg
Y2hhciogY29uc3QgZXJyb3JEb21haW5QcmludCA9ICJXZWJLaXRQcmludEVycm9yIjsKLQotZW51
bSBOZXR3b3JrRXJyb3IgewotICAgIE5ldHdvcmtFcnJvckZhaWxlZCA9IDM5OSwKLSAgICBOZXR3
b3JrRXJyb3JUcmFuc3BvcnQgPSAzMDAsCi0gICAgTmV0d29ya0Vycm9yVW5rbm93blByb3RvY29s
ID0gMzAxLAotICAgIE5ldHdvcmtFcnJvckNhbmNlbGxlZCA9IDMwMiwKLSAgICBOZXR3b3JrRXJy
b3JGaWxlRG9lc05vdEV4aXN0ID0gMzAzCi19OwotCi0vLyBTeW5jJ2Qgd2l0aCBNYWMncyBXZWJL
aXQgRXJyb3JzLgotZW51bSBQb2xpY3lFcnJvciB7Ci0gICAgUG9saWN5RXJyb3JGYWlsZWQgPSAx
OTksCi0gICAgUG9saWN5RXJyb3JDYW5ub3RTaG93TWltZVR5cGUgPSAxMDAsCi0gICAgUG9saWN5
RXJyb3JDYW5ub3RTaG93VVJMID0gMTAxLAotICAgIFBvbGljeUVycm9yRnJhbWVMb2FkSW50ZXJy
dXB0ZWRCeVBvbGljeUNoYW5nZSA9IDEwMiwKLSAgICBQb2xpY3lFcnJvckNhbm5vdFVzZVJlc3Ry
aWN0ZWRQb3J0ID0gMTAzLAotICAgIFBvbGljeUVycm9yQmxvY2tlZEJ5Q29udGVudEJsb2NrZXIg
PSAxMDQsCi19OwotCi1lbnVtIFBsdWdpbkVycm9yIHsKLSAgICBQbHVnaW5FcnJvckZhaWxlZCA9
IDI5OSwKLSAgICBQbHVnaW5FcnJvckNhbm5vdEZpbmRQbHVnaW4gPSAyMDAsCi0gICAgUGx1Z2lu
RXJyb3JDYW5ub3RMb2FkUGx1Z2luID0gMjAxLAotICAgIFBsdWdpbkVycm9ySmF2YVVuYXZhaWxh
YmxlID0gMjAyLAotICAgIFBsdWdpbkVycm9yQ29ubmVjdGlvbkNhbmNlbGxlZCA9IDIwMywKLSAg
ICBQbHVnaW5FcnJvcldpbGxIYW5kbGVMb2FkID0gMjA0Ci19OwotCi1lbnVtIERvd25sb2FkRXJy
b3IgewotICAgIERvd25sb2FkRXJyb3JOZXR3b3JrID0gNDk5LAotICAgIERvd25sb2FkRXJyb3JD
YW5jZWxsZWRCeVVzZXIgPSA0MDAsCi0gICAgRG93bmxvYWRFcnJvckRlc3RpbmF0aW9uID0gNDAx
Ci19OwotCi1lbnVtIFByaW50RXJyb3IgewotICAgIFByaW50RXJyb3JHZW5lcmFsID0gNTk5LAot
ICAgIFByaW50RXJyb3JQcmludGVyTm90Rm91bmQgPSA1MDAsCi0gICAgUHJpbnRFcnJvckludmFs
aWRQYWdlUmFuZ2UgPSA1MDEKLX07Ci0KLVJlc291cmNlRXJyb3IgY2FuY2VsbGVkRXJyb3IoY29u
c3QgUmVzb3VyY2VSZXF1ZXN0Jik7Ci1SZXNvdXJjZUVycm9yIGJsb2NrZWRFcnJvcihjb25zdCBS
ZXNvdXJjZVJlcXVlc3QmKTsKLVJlc291cmNlRXJyb3IgYmxvY2tlZEJ5Q29udGVudEJsb2NrZXJF
cnJvcihjb25zdCBSZXNvdXJjZVJlcXVlc3QmKTsKLVJlc291cmNlRXJyb3IgY2Fubm90U2hvd1VS
TEVycm9yKGNvbnN0IFJlc291cmNlUmVxdWVzdCYpOwotUmVzb3VyY2VFcnJvciBpbnRlcnJ1cHRl
ZEZvclBvbGljeUNoYW5nZUVycm9yKGNvbnN0IFJlc291cmNlUmVxdWVzdCYpOwotUmVzb3VyY2VF
cnJvciBjYW5ub3RTaG93TUlNRVR5cGVFcnJvcihjb25zdCBSZXNvdXJjZVJlc3BvbnNlJik7Ci1S
ZXNvdXJjZUVycm9yIGZpbGVEb2VzTm90RXhpc3RFcnJvcihjb25zdCBSZXNvdXJjZVJlc3BvbnNl
Jik7Ci1SZXNvdXJjZUVycm9yIHBsdWdpbldpbGxIYW5kbGVMb2FkRXJyb3IoY29uc3QgUmVzb3Vy
Y2VSZXNwb25zZSYpOwotUmVzb3VyY2VFcnJvciBkb3dubG9hZE5ldHdvcmtFcnJvcihjb25zdCBS
ZXNvdXJjZUVycm9yJik7Ci1SZXNvdXJjZUVycm9yIGRvd25sb2FkQ2FuY2VsbGVkQnlVc2VyRXJy
b3IoY29uc3QgUmVzb3VyY2VSZXNwb25zZSYpOwotUmVzb3VyY2VFcnJvciBkb3dubG9hZERlc3Rp
bmF0aW9uRXJyb3IoY29uc3QgUmVzb3VyY2VSZXNwb25zZSYsIGNvbnN0IFN0cmluZyYgZXJyb3JN
ZXNzYWdlKTsKLVJlc291cmNlRXJyb3IgcHJpbnRFcnJvcihjb25zdCBVUkwmIGZhaWxpbmdVUkws
IGNvbnN0IFN0cmluZyYgZXJyb3JNZXNzYWdlKTsKLVJlc291cmNlRXJyb3IgcHJpbnRlck5vdEZv
dW5kRXJyb3IoY29uc3QgVVJMJiBmYWlsaW5nVVJMKTsKLVJlc291cmNlRXJyb3IgaW52YWxpZFBh
Z2VSYW5nZVRvUHJpbnQoY29uc3QgVVJMJiBmYWlsaW5nVVJMKTsKLQotfQotCi0jZW5kaWYKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9wby9DaGFuZ2VMb2cgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvcG8vQ2hhbmdlTG9nCmluZGV4IDY4NzQwZGI4MGExLi42
NDNkMGI5YmQ1YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL3BvL0No
YW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvcG8vQ2hhbmdlTG9nCkBA
IC0xLDUgKzEsMTQgQEAKIDIwMTctMDMtMTUgIENhcmxvcyBHYXJjaWEgQ2FtcG9zICA8Y2dhcmNp
YUBpZ2FsaWEuY29tPgogCisgICAgICAgIE1vdmUgV2ViRXJyb3JzIGZyb20gV2ViUHJvY2VzcyB0
byBTaGFyZWQgYW5kIGdldCByaWQgb2YgRXJyb3JzR3RrIGluIFdlYkNvcmUKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE1Njk3NAorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogUE9URklMRVMuaW46IEFkZCBu
ZXcgcGF0aHMgd2l0aCB0cmFuc2xhdGFibGUgc3RyaW5ncy4KKworMjAxNy0wMy0xNSAgQ2FybG9z
IEdhcmNpYSBDYW1wb3MgIDxjZ2FyY2lhQGlnYWxpYS5jb20+CisKICAgICAgICAgTWFrZSBpdCBw
b3NzaWJsZSB0byB1c2UgV0VCX1VJX1NUUklORyBtYWNyb3MgdG8gbWFyayB0cmFuc2xhdGFibGUg
c3RyaW5ncyBpbiBnbGliIGJhc2VkIHBvcnRzCiAgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0xNjk2NzIKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3RrL3BvL1BPVEZJTEVTLmluIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Rr
L3BvL1BPVEZJTEVTLmluCmluZGV4IDg3MTAxMjAxNDhjLi40NGY5MDY3YzJjZCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL3BvL1BPVEZJTEVTLmluCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9wby9QT1RGSUxFUy5pbgpAQCAtMSw3ICsxLDEwIEBACiAj
IExpc3Qgb2Ygc291cmNlIGZpbGVzIHdoaWNoIGNvbnRhaW4gdHJhbnNsYXRhYmxlIHN0cmluZ3Mu
Ci1FcnJvcnNHdGsuY3BwCiBMb2NhbGl6ZWRTdHJpbmdzR3RrLmNwcAogLi4vTG9jYWxpemVkU3Ry
aW5ncy5jcHAKKy4uLy4uLy4uL1dlYktpdDIvU2hhcmVkL1dlYkVycm9ycy5jcHAKKy4uLy4uLy4u
L1dlYktpdDIvU2hhcmVkL2dsaWIvV2ViRXJyb3JzR2xpYi5jcHAKKy4uLy4uLy4uL1dlYktpdDIv
U2hhcmVkL2d0ay9XZWJFcnJvcnNHdGsuY3BwCisuLi8uLi8uLi9XZWJLaXQyL1NoYXJlZC9zb3Vw
L1dlYkVycm9yc1NvdXAuY3BwCiAuLi8uLi8uLi9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dl
YktpdEF1dGhlbnRpY2F0aW9uRGlhbG9nLmNwcAogLi4vLi4vLi4vV2ViS2l0Mi9VSVByb2Nlc3Mv
QVBJL2d0ay9XZWJLaXREb3dubG9hZC5jcHAKIC4uLy4uLy4uL1dlYktpdDIvVUlQcm9jZXNzL0FQ
SS9ndGsvV2ViS2l0RmF2aWNvbkRhdGFiYXNlLmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dDIvQ01ha2VMaXN0cy50eHQgYi9Tb3VyY2UvV2ViS2l0Mi9DTWFrZUxpc3RzLnR4dAppbmRleCBi
MWNlZTE0NTM5OS4uMDQzZjA3MGU5NzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL0NNYWtl
TGlzdHMudHh0CisrKyBiL1NvdXJjZS9XZWJLaXQyL0NNYWtlTGlzdHMudHh0CkBAIC0xODgsNiAr
MTg4LDcgQEAgc2V0KFdlYktpdDJfU09VUkNFUwogICAgIFNoYXJlZC9XZWJDb250ZXh0TWVudUl0
ZW0uY3BwCiAgICAgU2hhcmVkL1dlYkNvbnRleHRNZW51SXRlbURhdGEuY3BwCiAgICAgU2hhcmVk
L1dlYkNvcmVBcmd1bWVudENvZGVycy5jcHAKKyAgICBTaGFyZWQvV2ViRXJyb3JzLmNwcAogICAg
IFNoYXJlZC9XZWJFdmVudC5jcHAKICAgICBTaGFyZWQvV2ViRXZlbnRDb252ZXJzaW9uLmNwcAog
ICAgIFNoYXJlZC9XZWJHZW9sb2NhdGlvblBvc2l0aW9uLmNwcApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdDIvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCmluZGV4IGYwMDEx
Mjc0ZDgxLi5kZmYyODgwYjI0NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9n
CisrKyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDY3IEBACisyMDE3LTAz
LTE1ICBDYXJsb3MgR2FyY2lhIENhbXBvcyAgPGNnYXJjaWFAaWdhbGlhLmNvbT4KKworICAgICAg
ICBNb3ZlIFdlYkVycm9ycyBmcm9tIFdlYlByb2Nlc3MgdG8gU2hhcmVkIGFuZCBnZXQgcmlkIG9m
IEVycm9yc0d0ayBpbiBXZWJDb3JlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0xNTY5NzQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBXZWJFcnJvcnMgYXJlIG5vdCBvbmx5IHVzZWQgYnkgdGhlIGZyYW1lIGxv
YWRlciBjbGllbnQgaW4gdGhlIHdlYiBwcm9jZXNzLCBidXQgYWxzbyBieSB0aGUgbmV0d29yayBw
cm9jZXNzLiBTbywKKyAgICAgICAgbW92ZSB0aGVtIHRvIFNoYXJlZCBtYWtlIG1vc3Qgb2YgdGhl
IGltcGxlbWVudGF0aW9uIGNyb3NzLXBsYXRmb3JtLgorCisgICAgICAgICogQ01ha2VMaXN0cy50
eHQ6IEFkZCBuZXcgZmlsZXMgdG8gY29tcGlsYXRpb24uCisgICAgICAgICogTmV0d29ya1Byb2Nl
c3Mvc291cC9OZXR3b3JrRGF0YVRhc2tTb3VwLmNwcDoKKyAgICAgICAgKFdlYktpdDo6TmV0d29y
a0RhdGFUYXNrU291cDo6ZG93bmxvYWQpOiBVc2UgV2ViRXJyb3JzIGRpcmVjdGx5IGluc3RlYWQg
b2YgcGxhdGZvcm0gbWV0aG9kcyB0aGF0IGFyZSBubyBsb25nZXIgbmVlZGVkLgorICAgICAgICAo
V2ViS2l0OjpOZXR3b3JrRGF0YVRhc2tTb3VwOjp3cml0ZURvd25sb2FkQ2FsbGJhY2spOiBEaXR0
by4KKyAgICAgICAgKFdlYktpdDo6TmV0d29ya0RhdGFUYXNrU291cDo6ZGlkRmluaXNoRG93bmxv
YWQpOiBEaXR0by4KKyAgICAgICAgKFdlYktpdDo6TmV0d29ya0RhdGFUYXNrU291cDo6ZGlkRmFp
bCk6IERpdHRvLgorICAgICAgICAqIFBsYXRmb3JtR1RLLmNtYWtlOiBBZGQgbmV3IGZpbGVzIHRv
IGNvbXBpbGF0aW9uIGFuZCByZW1vdmUgRG93bmxvYWRTb3VwRXJyb3JzR3RrLmNwcAorICAgICAg
ICAqIFBsYXRmb3JtTWFjLmNtYWtlOgorICAgICAgICAqIFNoYXJlZC9BUEkvQVBJRXJyb3IuY3Bw
OiBBZGQgZXJyb3IgZG9tYWlucyB1c2VkIGJ5IGdsaWIgYmFzZWQgcG9ydHMuCisgICAgICAgIChB
UEk6OkVycm9yOjp3ZWJLaXROZXR3b3JrRXJyb3JEb21haW4pOgorICAgICAgICAoQVBJOjpFcnJv
cjo6d2ViS2l0UG9saWN5RXJyb3JEb21haW4pOgorICAgICAgICAoQVBJOjpFcnJvcjo6d2ViS2l0
UGx1Z2luRXJyb3JEb21haW4pOgorICAgICAgICAoQVBJOjpFcnJvcjo6d2ViS2l0RG93bmxvYWRF
cnJvckRvbWFpbik6CisgICAgICAgIChBUEk6OkVycm9yOjp3ZWJLaXRQcmludEVycm9yRG9tYWlu
KToKKyAgICAgICAgKiBTaGFyZWQvQVBJL0FQSUVycm9yLmg6CisgICAgICAgICogU2hhcmVkL0Nv
Y29hL1dlYkVycm9yc0NvY29hLm1tOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9j
ZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkVycm9ycy5oLgorICAgICAgICAoV2ViS2l0OjpjcmVhdGVO
U0Vycm9yKToKKyAgICAgICAgKFdlYktpdDo6Y2FuY2VsbGVkRXJyb3IpOgorICAgICAgICAoV2Vi
S2l0OjpmaWxlRG9lc05vdEV4aXN0RXJyb3IpOgorICAgICAgICAqIFNoYXJlZC9XZWJFcnJvcnMu
Y3BwOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0
L2d0ay9XZWJFcnJvcnNHdGsuY3BwLgorICAgICAgICAoV2ViS2l0OjpibG9ja2VkRXJyb3IpOgor
ICAgICAgICAoV2ViS2l0OjpibG9ja2VkQnlDb250ZW50QmxvY2tlckVycm9yKToKKyAgICAgICAg
KFdlYktpdDo6Y2Fubm90U2hvd1VSTEVycm9yKToKKyAgICAgICAgKFdlYktpdDo6aW50ZXJydXB0
ZWRGb3JQb2xpY3lDaGFuZ2VFcnJvcik6CisgICAgICAgIChXZWJLaXQ6OmJsb2NrZWRCeUNvbnRl
bnRGaWx0ZXJFcnJvcik6CisgICAgICAgIChXZWJLaXQ6OmNhbm5vdFNob3dNSU1FVHlwZUVycm9y
KToKKyAgICAgICAgKFdlYktpdDo6cGx1Z2luV2lsbEhhbmRsZUxvYWRFcnJvcik6CisgICAgICAg
IChXZWJLaXQ6OmludGVybmFsRXJyb3IpOgorICAgICAgICAqIFNoYXJlZC9XZWJFcnJvcnMuaDog
UmVuYW1lZCBmcm9tIFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2Vi
RXJyb3JzLmguCisgICAgICAgICogU2hhcmVkL2dsaWIvV2ViRXJyb3JzR2xpYi5jcHA6IFJlbmFt
ZWQgZnJvbSBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L2d0ay9XZWJF
cnJvcnNHdGsuY3BwLgorICAgICAgICAoV2ViS2l0OjpjYW5jZWxsZWRFcnJvcik6CisgICAgICAg
IChXZWJLaXQ6OmZpbGVEb2VzTm90RXhpc3RFcnJvcik6CisgICAgICAgICogU2hhcmVkL2d0ay9X
ZWJFcnJvcnNHdGsuY3BwOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vz
cy9Eb3dubG9hZHMvZ3RrL0Rvd25sb2FkU291cEVycm9yc0d0ay5jcHAuCisgICAgICAgIChXZWJL
aXQ6OnByaW50RXJyb3IpOgorICAgICAgICAoV2ViS2l0OjpwcmludGVyTm90Rm91bmRFcnJvcik6
CisgICAgICAgIChXZWJLaXQ6OmludmFsaWRQYWdlUmFuZ2VUb1ByaW50KToKKyAgICAgICAgKiBT
aGFyZWQvc291cC9XZWJFcnJvcnNTb3VwLmNwcDogUmVuYW1lZCBmcm9tIFNvdXJjZS9XZWJLaXQy
L05ldHdvcmtQcm9jZXNzL0Rvd25sb2Fkcy9ndGsvRG93bmxvYWRTb3VwRXJyb3JzR3RrLmNwcC4K
KyAgICAgICAgKFdlYktpdDo6ZG93bmxvYWROZXR3b3JrRXJyb3IpOgorICAgICAgICAoV2ViS2l0
Ojpkb3dubG9hZENhbmNlbGxlZEJ5VXNlckVycm9yKToKKyAgICAgICAgKFdlYktpdDo6ZG93bmxv
YWREZXN0aW5hdGlvbkVycm9yKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRE
b3dubG9hZC5jcHA6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0RXJyb3IuY3Bw
OgorICAgICAgICAod2Via2l0X25ldHdvcmtfZXJyb3JfcXVhcmspOgorICAgICAgICAod2Via2l0
X3BvbGljeV9lcnJvcl9xdWFyayk6CisgICAgICAgICh3ZWJraXRfcGx1Z2luX2Vycm9yX3F1YXJr
KToKKyAgICAgICAgKHdlYmtpdF9kb3dubG9hZF9lcnJvcl9xdWFyayk6CisgICAgICAgICh3ZWJr
aXRfcHJpbnRfZXJyb3JfcXVhcmspOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvZ3RrL1dlYktp
dFByaXZhdGUuY3BwOgorICAgICAgICAodG9XZWJLaXRFcnJvcik6CisgICAgICAgICh0b1dlYkNv
cmVFcnJvcik6CisgICAgICAgICogV2ViS2l0Mi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgor
ICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvbWFjL1dlYkVycm9yc01hYy5tbTog
UmVtb3ZlZC4KKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvZ3RrL1dlYlByaW50T3BlcmF0
aW9uR3RrLmNwcDoKKwogMjAxNy0wMy0xNCAgQ2FybG9zIEdhcmNpYSBDYW1wb3MgIDxjZ2FyY2lh
QGlnYWxpYS5jb20+CiAKICAgICAgICAgVW5yZXZpZXdlZC4gRml4IHN5bnRheCBlcnJvciBpbiBH
VEsrIEFQSSBkb2NzLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3Mv
c291cC9OZXR3b3JrRGF0YVRhc2tTb3VwLmNwcCBiL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9j
ZXNzL3NvdXAvTmV0d29ya0RhdGFUYXNrU291cC5jcHAKaW5kZXggNDFkOTI2ZWE5N2IuLjRlZTlh
ODhjYjI5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9zb3VwL05l
dHdvcmtEYXRhVGFza1NvdXAuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNz
L3NvdXAvTmV0d29ya0RhdGFUYXNrU291cC5jcHAKQEAgLTg2NSw3ICs4NjUsNyBAQCB2b2lkIE5l
dHdvcmtEYXRhVGFza1NvdXA6OmRvd25sb2FkKCkKICAgICBBU1NFUlQoIW1fcmVzcG9uc2UuaXNO
dWxsKCkpOwogCiAgICAgaWYgKG1fcmVzcG9uc2UuaHR0cFN0YXR1c0NvZGUoKSA+PSA0MDApIHsK
LSAgICAgICAgZGlkRmFpbERvd25sb2FkKHBsYXRmb3JtRG93bmxvYWROZXR3b3JrRXJyb3IobV9y
ZXNwb25zZS5odHRwU3RhdHVzQ29kZSgpLCBtX3Jlc3BvbnNlLnVybCgpLCBtX3Jlc3BvbnNlLmh0
dHBTdGF0dXNUZXh0KCkpKTsKKyAgICAgICAgZGlkRmFpbERvd25sb2FkKGRvd25sb2FkTmV0d29y
a0Vycm9yKG1fcmVzcG9uc2UudXJsKCksIG1fcmVzcG9uc2UuaHR0cFN0YXR1c1RleHQoKSkpOwog
ICAgICAgICByZXR1cm47CiAgICAgfQogCkBAIC04ODAsNyArODgwLDcgQEAgdm9pZCBOZXR3b3Jr
RGF0YVRhc2tTb3VwOjpkb3dubG9hZCgpCiAgICAgZWxzZQogICAgICAgICBvdXRwdXRTdHJlYW0g
PSBhZG9wdEdSZWYoZ19maWxlX2NyZWF0ZShtX2Rvd25sb2FkRGVzdGluYXRpb25GaWxlLmdldCgp
LCBHX0ZJTEVfQ1JFQVRFX05PTkUsIG51bGxwdHIsICZlcnJvci5vdXRQdHIoKSkpOwogICAgIGlm
ICghb3V0cHV0U3RyZWFtKSB7Ci0gICAgICAgIGRpZEZhaWxEb3dubG9hZChwbGF0Zm9ybURvd25s
b2FkRGVzdGluYXRpb25FcnJvcihtX3Jlc3BvbnNlLCBlcnJvci0+bWVzc2FnZSkpOworICAgICAg
ICBkaWRGYWlsRG93bmxvYWQoZG93bmxvYWREZXN0aW5hdGlvbkVycm9yKG1fcmVzcG9uc2UsIGVy
cm9yLT5tZXNzYWdlKSk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKQEAgLTg4OSw3ICs4ODks
NyBAQCB2b2lkIE5ldHdvcmtEYXRhVGFza1NvdXA6OmRvd25sb2FkKCkKICAgICBtX2Rvd25sb2Fk
SW50ZXJtZWRpYXRlRmlsZSA9IGFkb3B0R1JlZihnX2ZpbGVfbmV3X2Zvcl91cmkoaW50ZXJtZWRp
YXRlVVJJLmdldCgpKSk7CiAgICAgb3V0cHV0U3RyZWFtID0gYWRvcHRHUmVmKGdfZmlsZV9yZXBs
YWNlKG1fZG93bmxvYWRJbnRlcm1lZGlhdGVGaWxlLmdldCgpLCAwLCBUUlVFLCBHX0ZJTEVfQ1JF
QVRFX05PTkUsIDAsICZlcnJvci5vdXRQdHIoKSkpOwogICAgIGlmICghb3V0cHV0U3RyZWFtKSB7
Ci0gICAgICAgIGRpZEZhaWxEb3dubG9hZChwbGF0Zm9ybURvd25sb2FkRGVzdGluYXRpb25FcnJv
cihtX3Jlc3BvbnNlLCBlcnJvci0+bWVzc2FnZSkpOworICAgICAgICBkaWRGYWlsRG93bmxvYWQo
ZG93bmxvYWREZXN0aW5hdGlvbkVycm9yKG1fcmVzcG9uc2UsIGVycm9yLT5tZXNzYWdlKSk7CiAg
ICAgICAgIHJldHVybjsKICAgICB9CiAgICAgbV9kb3dubG9hZE91dHB1dFN0cmVhbSA9IGFkb3B0
R1JlZihHX09VVFBVVF9TVFJFQU0ob3V0cHV0U3RyZWFtLmxlYWtSZWYoKSkpOwpAQCAtOTIzLDcg
KzkyMyw3IEBAIHZvaWQgTmV0d29ya0RhdGFUYXNrU291cDo6d3JpdGVEb3dubG9hZENhbGxiYWNr
KEdPdXRwdXRTdHJlYW0qIG91dHB1dFN0cmVhbSwgR0FzCiAgICAgICAgIGJ5dGVzV3JpdHRlbiA9
IHdyaXRlVGFza1Jlc3VsdDsKICNlbmRpZgogICAgIGlmIChlcnJvcikKLSAgICAgICAgdGFzay0+
ZGlkRmFpbERvd25sb2FkKHBsYXRmb3JtRG93bmxvYWREZXN0aW5hdGlvbkVycm9yKHRhc2stPm1f
cmVzcG9uc2UsIGVycm9yLT5tZXNzYWdlKSk7CisgICAgICAgIHRhc2stPmRpZEZhaWxEb3dubG9h
ZChkb3dubG9hZERlc3RpbmF0aW9uRXJyb3IodGFzay0+bV9yZXNwb25zZSwgZXJyb3ItPm1lc3Nh
Z2UpKTsKICAgICBlbHNlCiAgICAgICAgIHRhc2stPmRpZFdyaXRlRG93bmxvYWQoYnl0ZXNXcml0
dGVuKTsKIH0KQEAgLTk3OCw3ICs5NzgsNyBAQCB2b2lkIE5ldHdvcmtEYXRhVGFza1NvdXA6OmRp
ZEZpbmlzaERvd25sb2FkKCkKICAgICBBU1NFUlQobV9kb3dubG9hZEludGVybWVkaWF0ZUZpbGUp
OwogICAgIEdVbmlxdWVPdXRQdHI8R0Vycm9yPiBlcnJvcjsKICAgICBpZiAoIWdfZmlsZV9tb3Zl
KG1fZG93bmxvYWRJbnRlcm1lZGlhdGVGaWxlLmdldCgpLCBtX2Rvd25sb2FkRGVzdGluYXRpb25G
aWxlLmdldCgpLCBHX0ZJTEVfQ09QWV9PVkVSV1JJVEUsIG1fY2FuY2VsbGFibGUuZ2V0KCksIG51
bGxwdHIsIG51bGxwdHIsICZlcnJvci5vdXRQdHIoKSkpIHsKLSAgICAgICAgZGlkRmFpbERvd25s
b2FkKHBsYXRmb3JtRG93bmxvYWREZXN0aW5hdGlvbkVycm9yKG1fcmVzcG9uc2UsIGVycm9yLT5t
ZXNzYWdlKSk7CisgICAgICAgIGRpZEZhaWxEb3dubG9hZChkb3dubG9hZERlc3RpbmF0aW9uRXJy
b3IobV9yZXNwb25zZSwgZXJyb3ItPm1lc3NhZ2UpKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0K
IApAQCAtMTAyMiw3ICsxMDIyLDcgQEAgdm9pZCBOZXR3b3JrRGF0YVRhc2tTb3VwOjpjbGVhbkRv
d25sb2FkRmlsZXMoKQogdm9pZCBOZXR3b3JrRGF0YVRhc2tTb3VwOjpkaWRGYWlsKGNvbnN0IFJl
c291cmNlRXJyb3ImIGVycm9yKQogewogICAgIGlmIChpc0Rvd25sb2FkKCkpIHsKLSAgICAgICAg
ZGlkRmFpbERvd25sb2FkKHBsYXRmb3JtRG93bmxvYWROZXR3b3JrRXJyb3IoZXJyb3IuZXJyb3JD
b2RlKCksIGVycm9yLmZhaWxpbmdVUkwoKSwgZXJyb3IubG9jYWxpemVkRGVzY3JpcHRpb24oKSkp
OworICAgICAgICBkaWRGYWlsRG93bmxvYWQoZG93bmxvYWROZXR3b3JrRXJyb3IoZXJyb3IuZmFp
bGluZ1VSTCgpLCBlcnJvci5sb2NhbGl6ZWREZXNjcmlwdGlvbigpKSk7CiAgICAgICAgIHJldHVy
bjsKICAgICB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtR1RLLmNtYWtl
IGIvU291cmNlL1dlYktpdDIvUGxhdGZvcm1HVEsuY21ha2UKaW5kZXggZDA5YjE5NGIyYWIuLjlj
YmZkMDUwMzBmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybUdUSy5jbWFrZQor
KysgYi9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybUdUSy5jbWFrZQpAQCAtMzAsOCArMzAsNiBAQCBs
aXN0KEFQUEVORCBXZWJLaXQyX1NPVVJDRVMKIAogICAgIE5ldHdvcmtQcm9jZXNzL0N1c3RvbVBy
b3RvY29scy9zb3VwL0xlZ2FjeUN1c3RvbVByb3RvY29sTWFuYWdlclNvdXAuY3BwCiAKLSAgICBO
ZXR3b3JrUHJvY2Vzcy9Eb3dubG9hZHMvZ3RrL0Rvd25sb2FkU291cEVycm9yc0d0ay5jcHAKLQog
ICAgIE5ldHdvcmtQcm9jZXNzL2NhY2hlL05ldHdvcmtDYWNoZUNvZGVyc1NvdXAuY3BwCiAgICAg
TmV0d29ya1Byb2Nlc3MvY2FjaGUvTmV0d29ya0NhY2hlRGF0YVNvdXAuY3BwCiAgICAgTmV0d29y
a1Byb2Nlc3MvY2FjaGUvTmV0d29ya0NhY2hlSU9DaGFubmVsU291cC5jcHAKQEAgLTc1LDYgKzcz
LDggQEAgbGlzdChBUFBFTkQgV2ViS2l0Ml9TT1VSQ0VTCiAKICAgICBTaGFyZWQvY2Fpcm8vU2hh
cmVhYmxlQml0bWFwQ2Fpcm8uY3BwCiAKKyAgICBTaGFyZWQvZ2xpYi9XZWJFcnJvcnNHbGliLmNw
cAorCiAgICAgU2hhcmVkL2d0ay9Bcmd1bWVudENvZGVyc0d0ay5jcHAKICAgICBTaGFyZWQvZ3Rr
L05hdGl2ZVdlYktleWJvYXJkRXZlbnRHdGsuY3BwCiAgICAgU2hhcmVkL2d0ay9OYXRpdmVXZWJN
b3VzZUV2ZW50R3RrLmNwcApAQCAtODMsMTIgKzgzLDE0IEBAIGxpc3QoQVBQRU5EIFdlYktpdDJf
U09VUkNFUwogICAgIFNoYXJlZC9ndGsvUHJpbnRJbmZvR3RrLmNwcAogICAgIFNoYXJlZC9ndGsv
UHJvY2Vzc0V4ZWN1dGFibGVQYXRoR3RrLmNwcAogICAgIFNoYXJlZC9ndGsvV2ViQ29udGV4dE1l
bnVJdGVtR3RrLmNwcAorICAgIFNoYXJlZC9ndGsvV2ViRXJyb3JzR3RrLmNwcAogICAgIFNoYXJl
ZC9ndGsvV2ViRXZlbnRGYWN0b3J5LmNwcAogICAgIFNoYXJlZC9ndGsvV2ViU2VsZWN0aW9uRGF0
YS5jcHAKIAogICAgIFNoYXJlZC9saW51eC9XZWJNZW1vcnlTYW1wbGVyTGludXguY3BwCiAKICAg
ICBTaGFyZWQvc291cC9XZWJDb3JlQXJndW1lbnRDb2RlcnNTb3VwLmNwcAorICAgIFNoYXJlZC9z
b3VwL1dlYkVycm9yc1NvdXAuY3BwCiAKICAgICBTaGFyZWQvdW5peC9DaGlsZFByb2Nlc3NNYWlu
LmNwcAogCkBAIC00NzMsNyArNDc1LDYgQEAgbGlzdChBUFBFTkQgV2ViS2l0Ml9TT1VSQ0VTCiAg
ICAgV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9ndGsvV2ViQ29udGV4dE1lbnVDbGllbnRHdGsu
Y3BwCiAgICAgV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9ndGsvV2ViRHJhZ0NsaWVudEd0ay5j
cHAKICAgICBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L2d0ay9XZWJFZGl0b3JDbGllbnRHdGsu
Y3BwCi0gICAgV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9ndGsvV2ViRXJyb3JzR3RrLmNwcAog
ICAgIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvZ3RrL1dlYlBvcHVwTWVudUd0ay5jcHAKIAog
ICAgIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvc291cC9XZWJGcmFtZU5ldHdvcmtpbmdDb250
ZXh0LmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvUGxhdGZvcm1NYWMuY21ha2UgYi9T
b3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybU1hYy5jbWFrZQppbmRleCA0OTEwYmU4YTkyZi4uNzNmNmU5
NDUwZDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtTWFjLmNtYWtlCisrKyBi
L1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtTWFjLmNtYWtlCkBAIC0xMTYsNiArMTE2LDcgQEAgbGlz
dChBUFBFTkQgV2ViS2l0Ml9TT1VSQ0VTCiAgICAgU2hhcmVkL0NvY29hL1dLTlNVUkxFeHRyYXMu
bW0KICAgICBTaGFyZWQvQ29jb2EvV0tOU1VSTFJlcXVlc3QubW0KICAgICBTaGFyZWQvQ29jb2Ev
V0tPYmplY3QubW0KKyAgICBTaGFyZWQvQ29jb2EvV2ViRXJyb3JzQ29jb2EubW0KIAogICAgIFNo
YXJlZC9QbHVnaW5zL05ldHNjYXBlL21hYy9OZXRzY2FwZVBsdWdpbk1vZHVsZU1hYy5tbQogICAg
IFNoYXJlZC9QbHVnaW5zL05ldHNjYXBlL21hYy9QbHVnaW5JbmZvcm1hdGlvbk1hYy5tbQpAQCAt
MzU1LDcgKzM1Niw2IEBAIGxpc3QoQVBQRU5EIFdlYktpdDJfU09VUkNFUwogICAgIFdlYlByb2Nl
c3MvV2ViQ29yZVN1cHBvcnQvbWFjL1dlYkNvbnRleHRNZW51Q2xpZW50TWFjLm1tCiAgICAgV2Vi
UHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9tYWMvV2ViRHJhZ0NsaWVudE1hYy5tbQogICAgIFdlYlBy
b2Nlc3MvV2ViQ29yZVN1cHBvcnQvbWFjL1dlYkVkaXRvckNsaWVudE1hYy5tbQotICAgIFdlYlBy
b2Nlc3MvV2ViQ29yZVN1cHBvcnQvbWFjL1dlYkVycm9yc01hYy5tbQogICAgIFdlYlByb2Nlc3Mv
V2ViQ29yZVN1cHBvcnQvbWFjL1dlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQubW0KICAgICBXZWJQ
cm9jZXNzL1dlYkNvcmVTdXBwb3J0L21hYy9XZWJQb3B1cE1lbnVNYWMubW0KICAgICBXZWJQcm9j
ZXNzL1dlYkNvcmVTdXBwb3J0L21hYy9XZWJTeXN0ZW1JbnRlcmZhY2UubW0KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9BUEkvQVBJRXJyb3IuY3BwIGIvU291cmNlL1dlYktpdDIv
U2hhcmVkL0FQSS9BUElFcnJvci5jcHAKaW5kZXggODM5ZmIwZjE0OGMuLmI3M2MyMTI5ZDRmIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQVBJL0FQSUVycm9yLmNwcAorKysgYi9T
b3VyY2UvV2ViS2l0Mi9TaGFyZWQvQVBJL0FQSUVycm9yLmNwcApAQCAtMzgsNiArMzgsNTIgQEAg
Y29uc3QgV1RGOjpTdHJpbmcmIEVycm9yOjp3ZWJLaXRFcnJvckRvbWFpbigpCiAgICAgcmV0dXJu
IHdlYktpdEVycm9yRG9tYWluU3RyaW5nOwogfQogCitjb25zdCBXVEY6OlN0cmluZyYgRXJyb3I6
OndlYktpdE5ldHdvcmtFcnJvckRvbWFpbigpCit7CisjaWYgVVNFKEdMSUIpCisgICAgc3RhdGlj
IE5ldmVyRGVzdHJveWVkPFdURjo6U3RyaW5nPiB3ZWJLaXRFcnJvckRvbWFpblN0cmluZyhBU0NJ
SUxpdGVyYWwoIldlYktpdE5ldHdvcmtFcnJvciIpKTsKKyAgICByZXR1cm4gd2ViS2l0RXJyb3JE
b21haW5TdHJpbmc7CisjZWxzZQorICAgIHJldHVybiB3ZWJLaXRFcnJvckRvbWFpbigpOworI2Vu
ZGlmCit9CisKK2NvbnN0IFdURjo6U3RyaW5nJiBFcnJvcjo6d2ViS2l0UG9saWN5RXJyb3JEb21h
aW4oKQoreworI2lmIFVTRShHTElCKQorICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxXVEY6OlN0
cmluZz4gd2ViS2l0RXJyb3JEb21haW5TdHJpbmcoQVNDSUlMaXRlcmFsKCJXZWJLaXRQb2xpY3lF
cnJvciIpKTsKKyAgICByZXR1cm4gd2ViS2l0RXJyb3JEb21haW5TdHJpbmc7CisjZWxzZQorICAg
IHJldHVybiB3ZWJLaXRFcnJvckRvbWFpbigpOworI2VuZGlmCit9CisKK2NvbnN0IFdURjo6U3Ry
aW5nJiBFcnJvcjo6d2ViS2l0UGx1Z2luRXJyb3JEb21haW4oKQoreworI2lmIFVTRShHTElCKQor
ICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxXVEY6OlN0cmluZz4gd2ViS2l0RXJyb3JEb21haW5T
dHJpbmcoQVNDSUlMaXRlcmFsKCJXZWJLaXRQbHVnaW5FcnJvciIpKTsKKyAgICByZXR1cm4gd2Vi
S2l0RXJyb3JEb21haW5TdHJpbmc7CisjZWxzZQorICAgIHJldHVybiB3ZWJLaXRFcnJvckRvbWFp
bigpOworI2VuZGlmCit9CisKKyNpZiBVU0UoU09VUCkKK2NvbnN0IFdURjo6U3RyaW5nJiBFcnJv
cjo6d2ViS2l0RG93bmxvYWRFcnJvckRvbWFpbigpCit7CisgICAgc3RhdGljIE5ldmVyRGVzdHJv
eWVkPFdURjo6U3RyaW5nPiB3ZWJLaXRFcnJvckRvbWFpblN0cmluZyhBU0NJSUxpdGVyYWwoIldl
YktpdERvd25sb2FkRXJyb3IiKSk7CisgICAgcmV0dXJuIHdlYktpdEVycm9yRG9tYWluU3RyaW5n
OworfQorI2VuZGlmCisKKyNpZiBQTEFURk9STShHVEspCitjb25zdCBXVEY6OlN0cmluZyYgRXJy
b3I6OndlYktpdFByaW50RXJyb3JEb21haW4oKQoreworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3ll
ZDxXVEY6OlN0cmluZz4gd2ViS2l0RXJyb3JEb21haW5TdHJpbmcoQVNDSUlMaXRlcmFsKCJXZWJL
aXRQcmludEVycm9yIikpOworICAgIHJldHVybiB3ZWJLaXRFcnJvckRvbWFpblN0cmluZzsKK30K
KyNlbmRpZgorCiB2b2lkIEVycm9yOjplbmNvZGUoSVBDOjpFbmNvZGVyJiBlbmNvZGVyKSBjb25z
dAogewogICAgIGVuY29kZXIgPDwgcGxhdGZvcm1FcnJvcigpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdDIvU2hhcmVkL0FQSS9BUElFcnJvci5oIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL0FQ
SS9BUElFcnJvci5oCmluZGV4IDhjMzYwMjdkZmMyLi4wYTFlNDA2OTI5ZCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdDIvU2hhcmVkL0FQSS9BUElFcnJvci5oCisrKyBiL1NvdXJjZS9XZWJLaXQy
L1NoYXJlZC9BUEkvQVBJRXJyb3IuaApAQCAtNDksNiArNDksMTkgQEAgcHVibGljOgogICAgIH0K
IAogICAgIHN0YXRpYyBjb25zdCBXVEY6OlN0cmluZyYgd2ViS2l0RXJyb3JEb21haW4oKTsKKyAg
ICBlbnVtIE5ldHdvcmsgeyBDYW5jZWxsZWQgPSAzMDIsIEZpbGVEb2VzTm90RXhpc3QgPSAzMDMg
fTsKKyAgICBzdGF0aWMgY29uc3QgV1RGOjpTdHJpbmcmIHdlYktpdE5ldHdvcmtFcnJvckRvbWFp
bigpOworICAgIHN0YXRpYyBjb25zdCBXVEY6OlN0cmluZyYgd2ViS2l0UG9saWN5RXJyb3JEb21h
aW4oKTsKKyAgICBzdGF0aWMgY29uc3QgV1RGOjpTdHJpbmcmIHdlYktpdFBsdWdpbkVycm9yRG9t
YWluKCk7CisjaWYgVVNFKFNPVVApCisgICAgZW51bSBEb3dubG9hZCB7IE5ldHdvcmsgPSA0OTks
IENhbmNlbGxlZEJ5VXNlciA9IDQwMCwgRGVzdGluYXRpb24gPSA0MDEgfTsKKyAgICBzdGF0aWMg
Y29uc3QgV1RGOjpTdHJpbmcmIHdlYktpdERvd25sb2FkRXJyb3JEb21haW4oKTsKKyNlbmRpZgor
I2lmIFBMQVRGT1JNKEdUSykKKyAgICBlbnVtIFByaW50IHsgR2VuZXJhbCA9IDU5OSwgUHJpbnRl
ck5vdEZvdW5kID0gNTAwLCBJbnZhbGlkUGFnZVJhbmdlID0gNTAxIH07CisgICAgc3RhdGljIGNv
bnN0IFdURjo6U3RyaW5nJiB3ZWJLaXRQcmludEVycm9yRG9tYWluKCk7CisjZW5kaWYKKwogCiAg
ICAgY29uc3QgV1RGOjpTdHJpbmcmIGRvbWFpbigpIGNvbnN0IHsgcmV0dXJuIG1fcGxhdGZvcm1F
cnJvci5kb21haW4oKTsgfQogICAgIGludCBlcnJvckNvZGUoKSBjb25zdCB7IHJldHVybiBtX3Bs
YXRmb3JtRXJyb3IuZXJyb3JDb2RlKCk7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1No
YXJlZC9Db2NvYS9XZWJFcnJvcnNDb2NvYS5tbSBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9Db2Nv
YS9XZWJFcnJvcnNDb2NvYS5tbQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MC4uNWJmZThiY2RjZDQKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQv
Q29jb2EvV2ViRXJyb3JzQ29jb2EubW0KQEAgLTAsMCArMSw2MCBAQAorLyoKKyAqIENvcHlyaWdo
dCAoQykgMjAxMC0yMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4K
KyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBD
T05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIK
KyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4g
T1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBE
QU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAq
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9G
SVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04g
QU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisg
KiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8K
KworI2ltcG9ydCAiY29uZmlnLmgiCisjaW1wb3J0ICJXZWJFcnJvcnMuaCIKKworI2ltcG9ydCAi
QVBJRXJyb3IuaCIKKyNpbXBvcnQgIldLRXJyb3JSZWYuaCIKKyNpbXBvcnQgPFdlYkNvcmUvTG9j
YWxpemVkU3RyaW5ncy5oPgorI2ltcG9ydCA8V2ViQ29yZS9SZXNvdXJjZVJlcXVlc3QuaD4KKyNp
bXBvcnQgPFdlYkNvcmUvUmVzb3VyY2VSZXNwb25zZS5oPgorCit1c2luZyBuYW1lc3BhY2UgV2Vi
Q29yZTsKK3VzaW5nIG5hbWVzcGFjZSBXZWJLaXQ7CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitz
dGF0aWMgUmV0YWluUHRyPE5TRXJyb3I+IGNyZWF0ZU5TRXJyb3IoTlNTdHJpbmcqIGRvbWFpbiwg
aW50IGNvZGUsIE5TVVJMICpVUkwpCit7CisgICAgTlNEaWN0aW9uYXJ5ICp1c2VySW5mbyA9IFtO
U0RpY3Rpb25hcnkgZGljdGlvbmFyeVdpdGhPYmplY3RzQW5kS2V5czoKKyAgICAgICAgVVJMLCBA
Ik5TRXJyb3JGYWlsaW5nVVJMS2V5IiwKKyAgICAgICAgW1VSTCBhYnNvbHV0ZVN0cmluZ10sIEAi
TlNFcnJvckZhaWxpbmdVUkxTdHJpbmdLZXkiLAorICAgICAgICBuaWxdOworCisgICAgcmV0dXJu
IGFkb3B0TlMoW1tOU0Vycm9yIGFsbG9jXSBpbml0V2l0aERvbWFpbjpkb21haW4gY29kZTpjb2Rl
IHVzZXJJbmZvOnVzZXJJbmZvXSk7Cit9CisKK1Jlc291cmNlRXJyb3IgY2FuY2VsbGVkRXJyb3Io
Y29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0KQoreworICAgIHJldHVybiBSZXNvdXJjZUVy
cm9yKGNyZWF0ZU5TRXJyb3IoTlNVUkxFcnJvckRvbWFpbiwgTlNVUkxFcnJvckNhbmNlbGxlZCwg
cmVxdWVzdC51cmwoKSkuZ2V0KCkpOworfQorCitSZXNvdXJjZUVycm9yIGZpbGVEb2VzTm90RXhp
c3RFcnJvcihjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiByZXNwb25zZSkKK3sKKyAgICByZXR1cm4g
UmVzb3VyY2VFcnJvcihjcmVhdGVOU0Vycm9yKE5TVVJMRXJyb3JEb21haW4sIE5TVVJMRXJyb3JG
aWxlRG9lc05vdEV4aXN0LCByZXNwb25zZS51cmwoKSkuZ2V0KCkpOworfQorCit9IC8vIG5hbWVz
cGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJFcnJvcnMu
Y3BwIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYkVycm9ycy5jcHAKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjhlZWQyOTYwYzY1Ci0tLSAvZGV2L251bGwKKysrIGIv
U291cmNlL1dlYktpdDIvU2hhcmVkL1dlYkVycm9ycy5jcHAKQEAgLTAsMCArMSw4MSBAQAorLyoK
KyAqIENvcHlyaWdodCAoQykgMjAxMC0yMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJl
ZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVz
dCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAg
ZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRp
c3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElO
Qy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1Ig
SU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRI
RSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBB
IFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxM
IEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElS
RUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09O
U0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VS
RU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBE
QVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENB
VVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIldlYkVycm9ycy5o
IgorCisjaW5jbHVkZSAiQVBJRXJyb3IuaCIKKyNpbmNsdWRlICJXS0Vycm9yUmVmLmgiCisjaW5j
bHVkZSA8V2ViQ29yZS9Mb2NhbGl6ZWRTdHJpbmdzLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9SZXNv
dXJjZVJlcXVlc3QuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL1Jlc291cmNlUmVzcG9uc2UuaD4KKwor
dXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitSZXNvdXJj
ZUVycm9yIGJsb2NrZWRFcnJvcihjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QpCit7Cisg
ICAgcmV0dXJuIFJlc291cmNlRXJyb3IoQVBJOjpFcnJvcjo6d2ViS2l0UG9saWN5RXJyb3JEb21h
aW4oKSwga1dLRXJyb3JDb2RlQ2Fubm90VXNlUmVzdHJpY3RlZFBvcnQsIHJlcXVlc3QudXJsKCks
IFdFQl9VSV9TVFJJTkcoIk5vdCBhbGxvd2VkIHRvIHVzZSByZXN0cmljdGVkIG5ldHdvcmsgcG9y
dCIsICJXZWJLaXRFcnJvckNhbm5vdFVzZVJlc3RyaWN0ZWRQb3J0IGRlc2NyaXB0aW9uIikpOwor
fQorCitSZXNvdXJjZUVycm9yIGJsb2NrZWRCeUNvbnRlbnRCbG9ja2VyRXJyb3IoY29uc3QgUmVz
b3VyY2VSZXF1ZXN0JiByZXF1ZXN0KQoreworICAgIHJldHVybiBSZXNvdXJjZUVycm9yKEFQSTo6
RXJyb3I6OndlYktpdFBvbGljeUVycm9yRG9tYWluKCksIGtXS0Vycm9yQ29kZUZyYW1lTG9hZEJs
b2NrZWRCeUNvbnRlbnRCbG9ja2VyLCByZXF1ZXN0LnVybCgpLCBXRUJfVUlfU1RSSU5HKCJUaGUg
VVJMIHdhcyBibG9ja2VkIGJ5IGEgY29udGVudCBibG9ja2VyIiwgIldlYktpdEVycm9yQmxvY2tl
ZEJ5Q29udGVudEJsb2NrZXIgZGVzY3JpcHRpb24iKSk7Cit9CisKK1Jlc291cmNlRXJyb3IgY2Fu
bm90U2hvd1VSTEVycm9yKGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCkKK3sKKyAgICBy
ZXR1cm4gUmVzb3VyY2VFcnJvcihBUEk6OkVycm9yOjp3ZWJLaXRQb2xpY3lFcnJvckRvbWFpbigp
LCBrV0tFcnJvckNvZGVDYW5ub3RTaG93VVJMLCByZXF1ZXN0LnVybCgpLCBXRUJfVUlfU1RSSU5H
KCJUaGUgVVJMIGNhbuKAmXQgYmUgc2hvd24iLCAiV2ViS2l0RXJyb3JDYW5ub3RTaG93VVJMIGRl
c2NyaXB0aW9uIikpOworfQorCitSZXNvdXJjZUVycm9yIGludGVycnVwdGVkRm9yUG9saWN5Q2hh
bmdlRXJyb3IoY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0KQoreworICAgIHJldHVybiBS
ZXNvdXJjZUVycm9yKEFQSTo6RXJyb3I6OndlYktpdFBvbGljeUVycm9yRG9tYWluKCksIGtXS0Vy
cm9yQ29kZUZyYW1lTG9hZEludGVycnVwdGVkQnlQb2xpY3lDaGFuZ2UsIHJlcXVlc3QudXJsKCks
IFdFQl9VSV9TVFJJTkcoIkZyYW1lIGxvYWQgaW50ZXJydXB0ZWQiLCAiV2ViS2l0RXJyb3JGcmFt
ZUxvYWRJbnRlcnJ1cHRlZEJ5UG9saWN5Q2hhbmdlIGRlc2NyaXB0aW9uIikpOworfQorCisjaWYg
RU5BQkxFKENPTlRFTlRfRklMVEVSSU5HKQorUmVzb3VyY2VFcnJvciBibG9ja2VkQnlDb250ZW50
RmlsdGVyRXJyb3IoY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0KQoreworICAgIHJldHVy
biBSZXNvdXJjZUVycm9yKEFQSTo6RXJyb3I6OndlYktpdFBvbGljeUVycm9yRG9tYWluKCksIGtX
S0Vycm9yQ29kZUZyYW1lTG9hZEJsb2NrZWRCeUNvbnRlbnRGaWx0ZXIsIHJlcXVlc3QudXJsKCks
IFdFQl9VSV9TVFJJTkcoIlRoZSBVUkwgd2FzIGJsb2NrZWQgYnkgYSBjb250ZW50IGZpbHRlciIs
ICJXZWJLaXRFcnJvckZyYW1lTG9hZEJsb2NrZWRCeUNvbnRlbnRGaWx0ZXIgZGVzY3JpcHRpb24i
KSk7Cit9CisjZW5kaWYKKworUmVzb3VyY2VFcnJvciBjYW5ub3RTaG93TUlNRVR5cGVFcnJvcihj
b25zdCBSZXNvdXJjZVJlc3BvbnNlJiByZXNwb25zZSkKK3sKKyAgICByZXR1cm4gUmVzb3VyY2VF
cnJvcihBUEk6OkVycm9yOjp3ZWJLaXRQb2xpY3lFcnJvckRvbWFpbigpLCBrV0tFcnJvckNvZGVD
YW5ub3RTaG93TUlNRVR5cGUsIHJlc3BvbnNlLnVybCgpLCBXRUJfVUlfU1RSSU5HKCJDb250ZW50
IHdpdGggc3BlY2lmaWVkIE1JTUUgdHlwZSBjYW7igJl0IGJlIHNob3duIiwgIldlYktpdEVycm9y
Q2Fubm90U2hvd01JTUVUeXBlIGRlc2NyaXB0aW9uIikpOworfQorCitSZXNvdXJjZUVycm9yIHBs
dWdpbldpbGxIYW5kbGVMb2FkRXJyb3IoY29uc3QgUmVzb3VyY2VSZXNwb25zZSYgcmVzcG9uc2Up
Cit7CisgICAgcmV0dXJuIFJlc291cmNlRXJyb3IoQVBJOjpFcnJvcjo6d2ViS2l0UGx1Z2luRXJy
b3JEb21haW4oKSwga1dLRXJyb3JDb2RlUGx1Z0luV2lsbEhhbmRsZUxvYWQsIHJlc3BvbnNlLnVy
bCgpLCBXRUJfVUlfU1RSSU5HKCJQbHVnLWluIGhhbmRsZWQgbG9hZCIsICJXZWJLaXRFcnJvclBs
dWdJbldpbGxIYW5kbGVMb2FkIGRlc2NyaXB0aW9uIikpOworfQorCitSZXNvdXJjZUVycm9yIGlu
dGVybmFsRXJyb3IoY29uc3QgVVJMJiB1cmwpCit7CisgICAgcmV0dXJuIFJlc291cmNlRXJyb3Io
QVBJOjpFcnJvcjo6d2ViS2l0RXJyb3JEb21haW4oKSwga1dLRXJyb3JJbnRlcm5hbCwgdXJsLCBX
RUJfVUlfU1RSSU5HKCJXZWJLaXQgZW5jb3VudGVyZWQgYW4gaW50ZXJuYWwgZXJyb3IiLCAiV2Vi
S2l0RXJyb3JJbnRlcm5hbCBkZXNjcmlwdGlvbiIpKTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2Vi
S2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0
L1dlYkVycm9ycy5oIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYkVycm9ycy5oCnNpbWlsYXJp
dHkgaW5kZXggNzclCnJlbmFtZSBmcm9tIFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29y
ZVN1cHBvcnQvV2ViRXJyb3JzLmgKcmVuYW1lIHRvIFNvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJF
cnJvcnMuaAppbmRleCA4NGRkNzNlM2NhOC4uNTkzZWE4ODUzN2QgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRXJyb3JzLmgKKysrIGIvU291
cmNlL1dlYktpdDIvU2hhcmVkL1dlYkVycm9ycy5oCkBAIC0yNSwxMSArMjUsMTMgQEAKIAogI3By
YWdtYSBvbmNlCiAKKyNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgorCiBuYW1lc3BhY2UgV2ViQ29y
ZSB7Ci0gICAgY2xhc3MgVVJMOwotICAgIGNsYXNzIFJlc291cmNlRXJyb3I7Ci0gICAgY2xhc3Mg
UmVzb3VyY2VSZXF1ZXN0OwotICAgIGNsYXNzIFJlc291cmNlUmVzcG9uc2U7CitjbGFzcyBVUkw7
CitjbGFzcyBSZXNvdXJjZUVycm9yOworY2xhc3MgUmVzb3VyY2VSZXF1ZXN0OworY2xhc3MgUmVz
b3VyY2VSZXNwb25zZTsKIH0KIAogbmFtZXNwYWNlIFdlYktpdCB7CkBAIC00Nyw0ICs0OSwxNiBA
QCBXZWJDb3JlOjpSZXNvdXJjZUVycm9yIGZpbGVEb2VzTm90RXhpc3RFcnJvcihjb25zdCBXZWJD
b3JlOjpSZXNvdXJjZVJlc3BvbnNlJik7CiBXZWJDb3JlOjpSZXNvdXJjZUVycm9yIHBsdWdpbldp
bGxIYW5kbGVMb2FkRXJyb3IoY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSYpOwogV2Vi
Q29yZTo6UmVzb3VyY2VFcnJvciBpbnRlcm5hbEVycm9yKGNvbnN0IFdlYkNvcmU6OlVSTCYpOwog
CisjaWYgVVNFKFNPVVApCitXZWJDb3JlOjpSZXNvdXJjZUVycm9yIGRvd25sb2FkTmV0d29ya0Vy
cm9yKGNvbnN0IFdlYkNvcmU6OlVSTCYsIGNvbnN0IFdURjo6U3RyaW5nJik7CitXZWJDb3JlOjpS
ZXNvdXJjZUVycm9yIGRvd25sb2FkQ2FuY2VsbGVkQnlVc2VyRXJyb3IoY29uc3QgV2ViQ29yZTo6
UmVzb3VyY2VSZXNwb25zZSYpOworV2ViQ29yZTo6UmVzb3VyY2VFcnJvciBkb3dubG9hZERlc3Rp
bmF0aW9uRXJyb3IoY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSYsIGNvbnN0IFdURjo6
U3RyaW5nJik7CisjZW5kaWYKKworI2lmIFBMQVRGT1JNKEdUSykKK1dlYkNvcmU6OlJlc291cmNl
RXJyb3IgcHJpbnRFcnJvcihjb25zdCBXZWJDb3JlOjpVUkwmLCBjb25zdCBXVEY6OlN0cmluZyYp
OworV2ViQ29yZTo6UmVzb3VyY2VFcnJvciBwcmludGVyTm90Rm91bmRFcnJvcihjb25zdCBXZWJD
b3JlOjpVUkwmKTsKK1dlYkNvcmU6OlJlc291cmNlRXJyb3IgaW52YWxpZFBhZ2VSYW5nZVRvUHJp
bnQoY29uc3QgV2ViQ29yZTo6VVJMJik7CisjZW5kaWYKKwogfSAvLyBuYW1lc3BhY2UgV2ViS2l0
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L2d0
ay9XZWJFcnJvcnNHdGsuY3BwIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL2dsaWIvV2ViRXJyb3Jz
R2xpYi5jcHAKc2ltaWxhcml0eSBpbmRleCA2MSUKcmVuYW1lIGZyb20gU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9ndGsvV2ViRXJyb3JzR3RrLmNwcApyZW5hbWUgdG8g
U291cmNlL1dlYktpdDIvU2hhcmVkL2dsaWIvV2ViRXJyb3JzR2xpYi5jcHAKaW5kZXggZTlkMWQ0
YzJiNzQuLmViYjU3Y2Y3N2NjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L1dlYkNvcmVTdXBwb3J0L2d0ay9XZWJFcnJvcnNHdGsuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQy
L1NoYXJlZC9nbGliL1dlYkVycm9yc0dsaWIuY3BwCkBAIC0yOSwxMiArMjksMTAgQEAKICNpbmNs
dWRlICJXZWJFcnJvcnMuaCIKIAogI2luY2x1ZGUgIkFQSUVycm9yLmgiCi0jaW5jbHVkZSA8V2Vi
Q29yZS9FcnJvcnNHdGsuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL0xvY2FsaXplZFN0cmluZ3MuaD4K
ICNpbmNsdWRlIDxXZWJDb3JlL1Jlc291cmNlRXJyb3IuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1Jl
c291cmNlUmVxdWVzdC5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUmVzb3VyY2VSZXNwb25zZS5oPgot
I2luY2x1ZGUgPFdlYktpdC9XS0Vycm9yUmVmLmg+Ci0jaW5jbHVkZSA8Z2xpYi9naTE4bi1saWIu
aD4KIAogdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAKQEAgLTQyLDQ3ICs0MCwxMiBAQCBuYW1l
c3BhY2UgV2ViS2l0IHsKIAogUmVzb3VyY2VFcnJvciBjYW5jZWxsZWRFcnJvcihjb25zdCBSZXNv
dXJjZVJlcXVlc3QmIHJlcXVlc3QpCiB7Ci0gICAgcmV0dXJuIFdlYkNvcmU6OmNhbmNlbGxlZEVy
cm9yKHJlcXVlc3QpOwotfQotCi1SZXNvdXJjZUVycm9yIGJsb2NrZWRFcnJvcihjb25zdCBSZXNv
dXJjZVJlcXVlc3QmIHJlcXVlc3QpCi17Ci0gICAgcmV0dXJuIFdlYkNvcmU6OmJsb2NrZWRFcnJv
cihyZXF1ZXN0KTsKLX0KLQotUmVzb3VyY2VFcnJvciBibG9ja2VkQnlDb250ZW50QmxvY2tlckVy
cm9yKGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCkKLXsKLSAgICByZXR1cm4gV2ViQ29y
ZTo6YmxvY2tlZEJ5Q29udGVudEJsb2NrZXJFcnJvcihyZXF1ZXN0KTsKLX0KLQotUmVzb3VyY2VF
cnJvciBjYW5ub3RTaG93VVJMRXJyb3IoY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0KQot
ewotICAgIHJldHVybiBXZWJDb3JlOjpjYW5ub3RTaG93VVJMRXJyb3IocmVxdWVzdCk7Ci19Ci0K
LVJlc291cmNlRXJyb3IgaW50ZXJydXB0ZWRGb3JQb2xpY3lDaGFuZ2VFcnJvcihjb25zdCBSZXNv
dXJjZVJlcXVlc3QmIHJlcXVlc3QpCi17Ci0gICAgcmV0dXJuIFdlYkNvcmU6OmludGVycnVwdGVk
Rm9yUG9saWN5Q2hhbmdlRXJyb3IocmVxdWVzdCk7Ci19Ci0KLVJlc291cmNlRXJyb3IgY2Fubm90
U2hvd01JTUVUeXBlRXJyb3IoY29uc3QgUmVzb3VyY2VSZXNwb25zZSYgcmVzcG9uc2UpCi17Ci0g
ICAgcmV0dXJuIFdlYkNvcmU6OmNhbm5vdFNob3dNSU1FVHlwZUVycm9yKHJlc3BvbnNlKTsKKyAg
ICByZXR1cm4gUmVzb3VyY2VFcnJvcihBUEk6OkVycm9yOjp3ZWJLaXROZXR3b3JrRXJyb3JEb21h
aW4oKSwgQVBJOjpFcnJvcjo6TmV0d29yazo6Q2FuY2VsbGVkLCByZXF1ZXN0LnVybCgpLCBXRUJf
VUlfU1RSSU5HKCJMb2FkIHJlcXVlc3QgY2FuY2VsbGVkIiwgIkxvYWQgcmVxdWVzdCBjYW5jZWxs
ZWQiKSk7CiB9CiAKIFJlc291cmNlRXJyb3IgZmlsZURvZXNOb3RFeGlzdEVycm9yKGNvbnN0IFJl
c291cmNlUmVzcG9uc2UmIHJlc3BvbnNlKQogewotICAgIHJldHVybiBXZWJDb3JlOjpmaWxlRG9l
c05vdEV4aXN0RXJyb3IocmVzcG9uc2UpOwotfQotCi1SZXNvdXJjZUVycm9yIHBsdWdpbldpbGxI
YW5kbGVMb2FkRXJyb3IoY29uc3QgUmVzb3VyY2VSZXNwb25zZSYgcmVzcG9uc2UpCi17Ci0gICAg
cmV0dXJuIFdlYkNvcmU6OnBsdWdpbldpbGxIYW5kbGVMb2FkRXJyb3IocmVzcG9uc2UpOwotfQot
Ci1XZWJDb3JlOjpSZXNvdXJjZUVycm9yIGludGVybmFsRXJyb3IoY29uc3QgV2ViQ29yZTo6VVJM
JiB1cmwpCi17Ci0gICAgcmV0dXJuIFJlc291cmNlRXJyb3IoQVBJOjpFcnJvcjo6d2ViS2l0RXJy
b3JEb21haW4oKSwga1dLRXJyb3JJbnRlcm5hbCwgdXJsLCBfKCJJbnRlcm5hbCBlcnJvciIpKTsK
KyAgICByZXR1cm4gUmVzb3VyY2VFcnJvcihBUEk6OkVycm9yOjp3ZWJLaXROZXR3b3JrRXJyb3JE
b21haW4oKSwgQVBJOjpFcnJvcjo6TmV0d29yazo6RmlsZURvZXNOb3RFeGlzdCwgcmVzcG9uc2Uu
dXJsKCksIFdFQl9VSV9TVFJJTkcoIkZpbGUgZG9lcyBub3QgZXhpc3QiLCAiVGhlIHJlcXVlc3Rl
ZCBmaWxlIGRvZXNuJ3QgZXhpc3QiKSk7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvRG93bmxvYWRzL2d0ay9Eb3du
bG9hZFNvdXBFcnJvcnNHdGsuY3BwIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL2d0ay9XZWJFcnJv
cnNHdGsuY3BwCnNpbWlsYXJpdHkgaW5kZXggNjUlCnJlbmFtZSBmcm9tIFNvdXJjZS9XZWJLaXQy
L05ldHdvcmtQcm9jZXNzL0Rvd25sb2Fkcy9ndGsvRG93bmxvYWRTb3VwRXJyb3JzR3RrLmNwcApy
ZW5hbWUgdG8gU291cmNlL1dlYktpdDIvU2hhcmVkL2d0ay9XZWJFcnJvcnNHdGsuY3BwCmluZGV4
IGJhMmU3YjQ1NmE0Li45ZmJmMjFkMTNjOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvTmV0
d29ya1Byb2Nlc3MvRG93bmxvYWRzL2d0ay9Eb3dubG9hZFNvdXBFcnJvcnNHdGsuY3BwCisrKyBi
L1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9ndGsvV2ViRXJyb3JzR3RrLmNwcApAQCAtMSw1ICsxLDUg
QEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTIgSW50ZWwgQ29ycG9yYXRpb24uIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTcgSWdhbGlhIFMuTC4KICAqCiAgKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMjQsMjMgKzI0LDI5IEBACiAgKi8KIAogI2luY2x1
ZGUgImNvbmZpZy5oIgotI2luY2x1ZGUgIkRvd25sb2FkU291cEVycm9ycy5oIgorI2luY2x1ZGUg
IldlYkVycm9ycy5oIgogCi0jaW5jbHVkZSA8V2ViQ29yZS9FcnJvcnNHdGsuaD4KLSNpbmNsdWRl
IDxXZWJDb3JlL1Jlc291cmNlRXJyb3IuaD4KKyNpbmNsdWRlICJBUElFcnJvci5oIgorI2luY2x1
ZGUgPFdlYkNvcmUvVVJMLmg+CisjaW5jbHVkZSA8Z2xpYi9naTE4bi1saWIuaD4KIAogdXNpbmcg
bmFtZXNwYWNlIFdlYkNvcmU7CiAKIG5hbWVzcGFjZSBXZWJLaXQgewogCi1SZXNvdXJjZUVycm9y
IHBsYXRmb3JtRG93bmxvYWROZXR3b3JrRXJyb3IoaW50IGVycm9yQ29kZSwgY29uc3QgVVJMJiBm
YWlsaW5nVVJMLCBjb25zdCBTdHJpbmcmIGxvY2FsaXplZERlc2NyaXB0aW9uKQorUmVzb3VyY2VF
cnJvciBwcmludEVycm9yKGNvbnN0IFVSTCYgZmFpbGluZ1VSTCwgY29uc3QgU3RyaW5nJiBsb2Nh
bGl6ZWREZXNjcmlwdGlvbikKIHsKLSAgICByZXR1cm4gZG93bmxvYWROZXR3b3JrRXJyb3IoUmVz
b3VyY2VFcnJvcihlcnJvckRvbWFpbkRvd25sb2FkLCBlcnJvckNvZGUsIGZhaWxpbmdVUkwsIGxv
Y2FsaXplZERlc2NyaXB0aW9uKSk7CisgICAgcmV0dXJuIFJlc291cmNlRXJyb3IoQVBJOjpFcnJv
cjo6d2ViS2l0UHJpbnRFcnJvckRvbWFpbigpLCBBUEk6OkVycm9yOjpQcmludDo6R2VuZXJhbCwg
ZmFpbGluZ1VSTCwgbG9jYWxpemVkRGVzY3JpcHRpb24pOwogfQogCi1SZXNvdXJjZUVycm9yIHBs
YXRmb3JtRG93bmxvYWREZXN0aW5hdGlvbkVycm9yKGNvbnN0IFJlc291cmNlUmVzcG9uc2UmIHJl
c3BvbnNlLCBjb25zdCBTdHJpbmcmIG1lc3NhZ2UpCitSZXNvdXJjZUVycm9yIHByaW50ZXJOb3RG
b3VuZEVycm9yKGNvbnN0IFVSTCYgZmFpbGluZ1VSTCkKIHsKLSAgICByZXR1cm4gZG93bmxvYWRE
ZXN0aW5hdGlvbkVycm9yKHJlc3BvbnNlLCBtZXNzYWdlKTsKKyAgICByZXR1cm4gUmVzb3VyY2VF
cnJvcihBUEk6OkVycm9yOjp3ZWJLaXRQcmludEVycm9yRG9tYWluKCksIEFQSTo6RXJyb3I6OlBy
aW50OjpQcmludGVyTm90Rm91bmQsIGZhaWxpbmdVUkwsIF8oIlByaW50ZXIgbm90IGZvdW5kIikp
OworfQorCitSZXNvdXJjZUVycm9yIGludmFsaWRQYWdlUmFuZ2VUb1ByaW50KGNvbnN0IFVSTCYg
ZmFpbGluZ1VSTCkKK3sKKyAgICByZXR1cm4gUmVzb3VyY2VFcnJvcihBUEk6OkVycm9yOjp3ZWJL
aXRQcmludEVycm9yRG9tYWluKCksIEFQSTo6RXJyb3I6OlByaW50OjpJbnZhbGlkUGFnZVJhbmdl
LCBmYWlsaW5nVVJMLCBfKCJJbnZhbGlkIHBhZ2UgcmFuZ2UiKSk7CiB9CiAKIH0gLy8gbmFtZXNw
YWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL3NvdXAvV2ViRXJy
b3JzU291cC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvc291cC9XZWJFcnJvcnNTb3VwLmNw
cApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uYzQzOTY0OTAzMjYKLS0t
IC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvc291cC9XZWJFcnJvcnNTb3Vw
LmNwcApAQCAtMCwwICsxLDUzIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE3IElnYWxpYSBT
LkwuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBS
ZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11
c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAg
IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBk
aXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJ
TkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBU
SEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFM
TCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJ
UkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENP
TlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NV
UkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwg
REFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1Ig
T1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMg
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJXZWJFcnJvcnMu
aCIKKworI2luY2x1ZGUgIkFQSUVycm9yLmgiCisjaW5jbHVkZSA8V2ViQ29yZS9Mb2NhbGl6ZWRT
dHJpbmdzLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9SZXNvdXJjZUVycm9yLmg+CisjaW5jbHVkZSA8
V2ViQ29yZS9SZXNvdXJjZVJlc3BvbnNlLmg+CisKK3VzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwor
CituYW1lc3BhY2UgV2ViS2l0IHsKKworUmVzb3VyY2VFcnJvciBkb3dubG9hZE5ldHdvcmtFcnJv
cihjb25zdCBVUkwmIGZhaWxpbmdVUkwsIGNvbnN0IFN0cmluZyYgbG9jYWxpemVkRGVzY3JpcHRp
b24pCit7CisgICAgcmV0dXJuIFJlc291cmNlRXJyb3IoQVBJOjpFcnJvcjo6d2ViS2l0RG93bmxv
YWRFcnJvckRvbWFpbigpLCBBUEk6OkVycm9yOjpEb3dubG9hZDo6TmV0d29yaywgZmFpbGluZ1VS
TCwgbG9jYWxpemVkRGVzY3JpcHRpb24pOworfQorCitSZXNvdXJjZUVycm9yIGRvd25sb2FkQ2Fu
Y2VsbGVkQnlVc2VyRXJyb3IoY29uc3QgUmVzb3VyY2VSZXNwb25zZSYgcmVzcG9uc2UpCit7Cisg
ICAgcmV0dXJuIFJlc291cmNlRXJyb3IoQVBJOjpFcnJvcjo6d2ViS2l0RG93bmxvYWRFcnJvckRv
bWFpbigpLCBBUEk6OkVycm9yOjpEb3dubG9hZDo6Q2FuY2VsbGVkQnlVc2VyLCByZXNwb25zZS51
cmwoKSwgV0VCX1VJX1NUUklORygiVXNlciBjYW5jZWxsZWQgdGhlIGRvd25sb2FkIiwgIlRoZSBk
b3dubG9hZCB3YXMgY2FuY2VsbGVkIGJ5IHRoZSB1c2VyIikpOworfQorCitSZXNvdXJjZUVycm9y
IGRvd25sb2FkRGVzdGluYXRpb25FcnJvcihjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiByZXNwb25z
ZSwgY29uc3QgU3RyaW5nJiBsb2NhbGl6ZWREZXNjcmlwdGlvbikKK3sKKyAgICByZXR1cm4gUmVz
b3VyY2VFcnJvcihBUEk6OkVycm9yOjp3ZWJLaXREb3dubG9hZEVycm9yRG9tYWluKCksIEFQSTo6
RXJyb3I6OkRvd25sb2FkOjpEZXN0aW5hdGlvbiwgcmVzcG9uc2UudXJsKCksIGxvY2FsaXplZERl
c2NyaXB0aW9uKTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXREb3dubG9hZC5jcHAgYi9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXREb3dubG9hZC5jcHAKaW5kZXggZDE4MzNk
ZDFkODYuLjFjNDVlN2E0NDZiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
QVBJL2d0ay9XZWJLaXREb3dubG9hZC5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L0FQSS9ndGsvV2ViS2l0RG93bmxvYWQuY3BwCkBAIC0yMSwxMiArMjEsMTIgQEAKICNpbmNsdWRl
ICJXZWJLaXREb3dubG9hZC5oIgogCiAjaW5jbHVkZSAiRG93bmxvYWRQcm94eS5oIgorI2luY2x1
ZGUgIldlYkVycm9ycy5oIgogI2luY2x1ZGUgIldlYktpdERvd25sb2FkUHJpdmF0ZS5oIgogI2lu
Y2x1ZGUgIldlYktpdE1hcnNoYWwuaCIKICNpbmNsdWRlICJXZWJLaXRQcml2YXRlLmgiCiAjaW5j
bHVkZSAiV2ViS2l0VVJJUmVxdWVzdFByaXZhdGUuaCIKICNpbmNsdWRlICJXZWJLaXRVUklSZXNw
b25zZVByaXZhdGUuaCIKLSNpbmNsdWRlIDxXZWJDb3JlL0Vycm9yc0d0ay5oPgogI2luY2x1ZGUg
PFdlYkNvcmUvUmVzb3VyY2VSZXNwb25zZS5oPgogI2luY2x1ZGUgPGdsaWIvZ2kxOG4tbGliLmg+
CiAjaW5jbHVkZSA8d3RmL2dsaWIvR1JlZlB0ci5oPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0RXJyb3IuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL0FQSS9ndGsvV2ViS2l0RXJyb3IuY3BwCmluZGV4IDc0MTllZTcyMWEwLi40NDI2ZDRm
NGU4NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0
RXJyb3IuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdEVy
cm9yLmNwcApAQCAtMjIsNyArMjIsNiBAQAogI2luY2x1ZGUgIldlYktpdEVycm9yLmgiCiAKICNp
bmNsdWRlICJXZWJLaXRQcml2YXRlLmgiCi0jaW5jbHVkZSA8V2ViQ29yZS9FcnJvcnNHdGsuaD4K
IAogdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAKQEAgLTM3LDI3ICszNiwyNyBAQCB1c2luZyBu
YW1lc3BhY2UgV2ViQ29yZTsKIAogR1F1YXJrIHdlYmtpdF9uZXR3b3JrX2Vycm9yX3F1YXJrKCkK
IHsKLSAgICByZXR1cm4gZ19xdWFya19mcm9tX3N0YXRpY19zdHJpbmcoV2ViQ29yZTo6ZXJyb3JE
b21haW5OZXR3b3JrKTsKKyAgICByZXR1cm4gZ19xdWFya19mcm9tX3N0YXRpY19zdHJpbmcocmVp
bnRlcnByZXRfY2FzdDxjb25zdCBjaGFyKj4oQVBJOjpFcnJvcjo6d2ViS2l0TmV0d29ya0Vycm9y
RG9tYWluKCkuY2hhcmFjdGVyczgoKSkpOwogfQogCiBHUXVhcmsgd2Via2l0X3BvbGljeV9lcnJv
cl9xdWFyaygpCiB7Ci0gICAgcmV0dXJuIGdfcXVhcmtfZnJvbV9zdGF0aWNfc3RyaW5nKFdlYkNv
cmU6OmVycm9yRG9tYWluUG9saWN5KTsKKyAgICByZXR1cm4gZ19xdWFya19mcm9tX3N0YXRpY19z
dHJpbmcocmVpbnRlcnByZXRfY2FzdDxjb25zdCBjaGFyKj4oQVBJOjpFcnJvcjo6d2ViS2l0UG9s
aWN5RXJyb3JEb21haW4oKS5jaGFyYWN0ZXJzOCgpKSk7CiB9CiAKIEdRdWFyayB3ZWJraXRfcGx1
Z2luX2Vycm9yX3F1YXJrKCkKIHsKLSAgICByZXR1cm4gZ19xdWFya19mcm9tX3N0YXRpY19zdHJp
bmcoV2ViQ29yZTo6ZXJyb3JEb21haW5QbHVnaW4pOworICAgIHJldHVybiBnX3F1YXJrX2Zyb21f
c3RhdGljX3N0cmluZyhyZWludGVycHJldF9jYXN0PGNvbnN0IGNoYXIqPihBUEk6OkVycm9yOjp3
ZWJLaXRQbHVnaW5FcnJvckRvbWFpbigpLmNoYXJhY3RlcnM4KCkpKTsKIH0KIAogR1F1YXJrIHdl
YmtpdF9kb3dubG9hZF9lcnJvcl9xdWFyaygpCiB7Ci0gICAgcmV0dXJuIGdfcXVhcmtfZnJvbV9z
dGF0aWNfc3RyaW5nKFdlYkNvcmU6OmVycm9yRG9tYWluRG93bmxvYWQpOworICAgIHJldHVybiBn
X3F1YXJrX2Zyb21fc3RhdGljX3N0cmluZyhyZWludGVycHJldF9jYXN0PGNvbnN0IGNoYXIqPihB
UEk6OkVycm9yOjp3ZWJLaXREb3dubG9hZEVycm9yRG9tYWluKCkuY2hhcmFjdGVyczgoKSkpOwog
fQogCiBHUXVhcmsgd2Via2l0X3ByaW50X2Vycm9yX3F1YXJrKCkKIHsKLSAgICByZXR1cm4gZ19x
dWFya19mcm9tX3N0YXRpY19zdHJpbmcoV2ViQ29yZTo6ZXJyb3JEb21haW5QcmludCk7CisgICAg
cmV0dXJuIGdfcXVhcmtfZnJvbV9zdGF0aWNfc3RyaW5nKHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3Qg
Y2hhcio+KEFQSTo6RXJyb3I6OndlYktpdFByaW50RXJyb3JEb21haW4oKS5jaGFyYWN0ZXJzOCgp
KSk7CiB9CiAKIEdRdWFyayB3ZWJraXRfamF2YXNjcmlwdF9lcnJvcl9xdWFyaygpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRQcml2YXRlLmNwcCBi
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFByaXZhdGUuY3BwCmluZGV4
IDJjOTcxYzIyZDU4Li5hOGNkZTgyNWZiOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL0FQSS9ndGsvV2ViS2l0UHJpdmF0ZS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL0FQSS9ndGsvV2ViS2l0UHJpdmF0ZS5jcHAKQEAgLTIwLDcgKzIwLDggQEAKICNpbmNs
dWRlICJjb25maWcuaCIKICNpbmNsdWRlICJXZWJLaXRQcml2YXRlLmgiCiAKLSNpbmNsdWRlICJF
cnJvcnNHdGsuaCIKKyNpbmNsdWRlICJBUElFcnJvci5oIgorI2luY2x1ZGUgIldLRXJyb3JSZWYu
aCIKICNpbmNsdWRlICJXZWJFdmVudC5oIgogI2luY2x1ZGUgIldlYktpdEVycm9yLmgiCiAjaW5j
bHVkZSA8Z2RrL2dkay5oPgpAQCAtMTEzLDQ5ICsxMTQsMzkgQEAgdW5zaWduZWQgd2tFdmVudE1v
dXNlQnV0dG9uVG9XZWJLaXRNb3VzZUJ1dHRvbihXS0V2ZW50TW91c2VCdXR0b24gd2tCdXR0b24p
CiB1bnNpZ25lZCB0b1dlYktpdEVycm9yKHVuc2lnbmVkIHdlYkNvcmVFcnJvcikKIHsKICAgICBz
d2l0Y2ggKHdlYkNvcmVFcnJvcikgewotICAgIGNhc2UgV2ViQ29yZTo6TmV0d29ya0Vycm9yRmFp
bGVkOgotICAgICAgICByZXR1cm4gV0VCS0lUX05FVFdPUktfRVJST1JfRkFJTEVEOwotICAgIGNh
c2UgV2ViQ29yZTo6TmV0d29ya0Vycm9yVHJhbnNwb3J0OgotICAgICAgICByZXR1cm4gV0VCS0lU
X05FVFdPUktfRVJST1JfVFJBTlNQT1JUOwotICAgIGNhc2UgV2ViQ29yZTo6TmV0d29ya0Vycm9y
VW5rbm93blByb3RvY29sOgotICAgICAgICByZXR1cm4gV0VCS0lUX05FVFdPUktfRVJST1JfVU5L
Tk9XTl9QUk9UT0NPTDsKLSAgICBjYXNlIFdlYkNvcmU6Ok5ldHdvcmtFcnJvckNhbmNlbGxlZDoK
KyAgICBjYXNlIEFQSTo6RXJyb3I6Ok5ldHdvcms6OkNhbmNlbGxlZDoKICAgICAgICAgcmV0dXJu
IFdFQktJVF9ORVRXT1JLX0VSUk9SX0NBTkNFTExFRDsKLSAgICBjYXNlIFdlYkNvcmU6Ok5ldHdv
cmtFcnJvckZpbGVEb2VzTm90RXhpc3Q6CisgICAgY2FzZSBBUEk6OkVycm9yOjpOZXR3b3JrOjpG
aWxlRG9lc05vdEV4aXN0OgogICAgICAgICByZXR1cm4gV0VCS0lUX05FVFdPUktfRVJST1JfRklM
RV9ET0VTX05PVF9FWElTVDsKLSAgICBjYXNlIFdlYkNvcmU6OlBvbGljeUVycm9yRmFpbGVkOgot
ICAgICAgICByZXR1cm4gV0VCS0lUX1BPTElDWV9FUlJPUl9GQUlMRUQ7Ci0gICAgY2FzZSBXZWJD
b3JlOjpQb2xpY3lFcnJvckNhbm5vdFNob3dNaW1lVHlwZToKKyAgICBjYXNlIGtXS0Vycm9yQ29k
ZUNhbm5vdFNob3dNSU1FVHlwZToKICAgICAgICAgcmV0dXJuIFdFQktJVF9QT0xJQ1lfRVJST1Jf
Q0FOTk9UX1NIT1dfTUlNRV9UWVBFOwotICAgIGNhc2UgV2ViQ29yZTo6UG9saWN5RXJyb3JDYW5u
b3RTaG93VVJMOgorICAgIGNhc2Uga1dLRXJyb3JDb2RlQ2Fubm90U2hvd1VSTDoKICAgICAgICAg
cmV0dXJuIFdFQktJVF9QT0xJQ1lfRVJST1JfQ0FOTk9UX1NIT1dfVVJJOwotICAgIGNhc2UgV2Vi
Q29yZTo6UG9saWN5RXJyb3JGcmFtZUxvYWRJbnRlcnJ1cHRlZEJ5UG9saWN5Q2hhbmdlOgorICAg
IGNhc2Uga1dLRXJyb3JDb2RlRnJhbWVMb2FkSW50ZXJydXB0ZWRCeVBvbGljeUNoYW5nZToKICAg
ICAgICAgcmV0dXJuIFdFQktJVF9QT0xJQ1lfRVJST1JfRlJBTUVfTE9BRF9JTlRFUlJVUFRFRF9C
WV9QT0xJQ1lfQ0hBTkdFOwotICAgIGNhc2UgV2ViQ29yZTo6UG9saWN5RXJyb3JDYW5ub3RVc2VS
ZXN0cmljdGVkUG9ydDoKKyAgICBjYXNlIGtXS0Vycm9yQ29kZUNhbm5vdFVzZVJlc3RyaWN0ZWRQ
b3J0OgogICAgICAgICByZXR1cm4gV0VCS0lUX1BPTElDWV9FUlJPUl9DQU5OT1RfVVNFX1JFU1RS
SUNURURfUE9SVDsKLSAgICBjYXNlIFdlYkNvcmU6OlBsdWdpbkVycm9yRmFpbGVkOgotICAgICAg
ICByZXR1cm4gV0VCS0lUX1BMVUdJTl9FUlJPUl9GQUlMRUQ7Ci0gICAgY2FzZSBXZWJDb3JlOjpQ
bHVnaW5FcnJvckNhbm5vdEZpbmRQbHVnaW46CisgICAgY2FzZSBrV0tFcnJvckNvZGVDYW5ub3RG
aW5kUGx1Z0luOgogICAgICAgICByZXR1cm4gV0VCS0lUX1BMVUdJTl9FUlJPUl9DQU5OT1RfRklO
RF9QTFVHSU47Ci0gICAgY2FzZSBXZWJDb3JlOjpQbHVnaW5FcnJvckNhbm5vdExvYWRQbHVnaW46
CisgICAgY2FzZSBrV0tFcnJvckNvZGVDYW5ub3RMb2FkUGx1Z0luOgogICAgICAgICByZXR1cm4g
V0VCS0lUX1BMVUdJTl9FUlJPUl9DQU5OT1RfTE9BRF9QTFVHSU47Ci0gICAgY2FzZSBXZWJDb3Jl
OjpQbHVnaW5FcnJvckphdmFVbmF2YWlsYWJsZToKKyAgICBjYXNlIGtXS0Vycm9yQ29kZUphdmFV
bmF2YWlsYWJsZToKICAgICAgICAgcmV0dXJuIFdFQktJVF9QTFVHSU5fRVJST1JfSkFWQV9VTkFW
QUlMQUJMRTsKLSAgICBjYXNlIFdlYkNvcmU6OlBsdWdpbkVycm9yQ29ubmVjdGlvbkNhbmNlbGxl
ZDoKKyAgICBjYXNlIGtXS0Vycm9yQ29kZVBsdWdJbkNhbmNlbGxlZENvbm5lY3Rpb246CiAgICAg
ICAgIHJldHVybiBXRUJLSVRfUExVR0lOX0VSUk9SX0NPTk5FQ1RJT05fQ0FOQ0VMTEVEOwotICAg
IGNhc2UgV2ViQ29yZTo6UGx1Z2luRXJyb3JXaWxsSGFuZGxlTG9hZDoKKyAgICBjYXNlIGtXS0Vy
cm9yQ29kZVBsdWdJbldpbGxIYW5kbGVMb2FkOgogICAgICAgICByZXR1cm4gV0VCS0lUX1BMVUdJ
Tl9FUlJPUl9XSUxMX0hBTkRMRV9MT0FEOwotICAgIGNhc2UgV2ViQ29yZTo6RG93bmxvYWRFcnJv
ck5ldHdvcms6CisgICAgY2FzZSBBUEk6OkVycm9yOjpEb3dubG9hZDo6TmV0d29yazoKICAgICAg
ICAgcmV0dXJuIFdFQktJVF9ET1dOTE9BRF9FUlJPUl9ORVRXT1JLOwotICAgIGNhc2UgV2ViQ29y
ZTo6RG93bmxvYWRFcnJvckNhbmNlbGxlZEJ5VXNlcjoKKyAgICBjYXNlIEFQSTo6RXJyb3I6OkRv
d25sb2FkOjpDYW5jZWxsZWRCeVVzZXI6CiAgICAgICAgIHJldHVybiBXRUJLSVRfRE9XTkxPQURf
RVJST1JfQ0FOQ0VMTEVEX0JZX1VTRVI7Ci0gICAgY2FzZSBXZWJDb3JlOjpEb3dubG9hZEVycm9y
RGVzdGluYXRpb246CisgICAgY2FzZSBBUEk6OkVycm9yOjpEb3dubG9hZDo6RGVzdGluYXRpb246
CiAgICAgICAgIHJldHVybiBXRUJLSVRfRE9XTkxPQURfRVJST1JfREVTVElOQVRJT047Ci0gICAg
Y2FzZSBXZWJDb3JlOjpQcmludEVycm9yR2VuZXJhbDoKKyAgICBjYXNlIEFQSTo6RXJyb3I6OlBy
aW50OjpHZW5lcmFsOgogICAgICAgICByZXR1cm4gV0VCS0lUX1BSSU5UX0VSUk9SX0dFTkVSQUw7
Ci0gICAgY2FzZSBXZWJDb3JlOjpQcmludEVycm9yUHJpbnRlck5vdEZvdW5kOgorICAgIGNhc2Ug
QVBJOjpFcnJvcjo6UHJpbnQ6OlByaW50ZXJOb3RGb3VuZDoKICAgICAgICAgcmV0dXJuIFdFQktJ
VF9QUklOVF9FUlJPUl9QUklOVEVSX05PVF9GT1VORDsKLSAgICBjYXNlIFdlYkNvcmU6OlByaW50
RXJyb3JJbnZhbGlkUGFnZVJhbmdlOgorICAgIGNhc2UgQVBJOjpFcnJvcjo6UHJpbnQ6OkludmFs
aWRQYWdlUmFuZ2U6CiAgICAgICAgIHJldHVybiBXRUJLSVRfUFJJTlRfRVJST1JfSU5WQUxJRF9Q
QUdFX1JBTkdFOwogICAgIGRlZmF1bHQ6CiAgICAgICAgIC8vIFRoaXMgbWF5IGJlIGEgdXNlciBh
cHAgZGVmaW5lZCBlcnJvciwgd2hpY2ggbmVlZHMgdG8gYmUgcGFzc2VkIGFzLWlzLgpAQCAtMTY2
LDUwICsxNTcsNDAgQEAgdW5zaWduZWQgdG9XZWJLaXRFcnJvcih1bnNpZ25lZCB3ZWJDb3JlRXJy
b3IpCiB1bnNpZ25lZCB0b1dlYkNvcmVFcnJvcih1bnNpZ25lZCB3ZWJLaXRFcnJvcikKIHsKICAg
ICBzd2l0Y2ggKHdlYktpdEVycm9yKSB7Ci0gICAgY2FzZSBXRUJLSVRfTkVUV09SS19FUlJPUl9G
QUlMRUQ6Ci0gICAgICAgIHJldHVybiBXZWJDb3JlOjpOZXR3b3JrRXJyb3JGYWlsZWQ7Ci0gICAg
Y2FzZSBXRUJLSVRfTkVUV09SS19FUlJPUl9UUkFOU1BPUlQ6Ci0gICAgICAgIHJldHVybiBXZWJD
b3JlOjpOZXR3b3JrRXJyb3JUcmFuc3BvcnQ7Ci0gICAgY2FzZSBXRUJLSVRfTkVUV09SS19FUlJP
Ul9VTktOT1dOX1BST1RPQ09MOgotICAgICAgICByZXR1cm4gV2ViQ29yZTo6TmV0d29ya0Vycm9y
VW5rbm93blByb3RvY29sOwogICAgIGNhc2UgV0VCS0lUX05FVFdPUktfRVJST1JfQ0FOQ0VMTEVE
OgotICAgICAgICByZXR1cm4gV2ViQ29yZTo6TmV0d29ya0Vycm9yQ2FuY2VsbGVkOworICAgICAg
ICByZXR1cm4gQVBJOjpFcnJvcjo6TmV0d29yazo6Q2FuY2VsbGVkOwogICAgIGNhc2UgV0VCS0lU
X05FVFdPUktfRVJST1JfRklMRV9ET0VTX05PVF9FWElTVDoKLSAgICAgICAgcmV0dXJuIFdlYkNv
cmU6Ok5ldHdvcmtFcnJvckZpbGVEb2VzTm90RXhpc3Q7Ci0gICAgY2FzZSBXRUJLSVRfUE9MSUNZ
X0VSUk9SX0ZBSUxFRDoKLSAgICAgICAgcmV0dXJuIFdlYkNvcmU6OlBvbGljeUVycm9yRmFpbGVk
OworICAgICAgICByZXR1cm4gQVBJOjpFcnJvcjo6TmV0d29yazo6RmlsZURvZXNOb3RFeGlzdDsK
ICAgICBjYXNlIFdFQktJVF9QT0xJQ1lfRVJST1JfQ0FOTk9UX1NIT1dfTUlNRV9UWVBFOgotICAg
ICAgICByZXR1cm4gV2ViQ29yZTo6UG9saWN5RXJyb3JDYW5ub3RTaG93TWltZVR5cGU7CisgICAg
ICAgIHJldHVybiBrV0tFcnJvckNvZGVDYW5ub3RTaG93TUlNRVR5cGU7CiAgICAgY2FzZSBXRUJL
SVRfUE9MSUNZX0VSUk9SX0NBTk5PVF9TSE9XX1VSSToKLSAgICAgICAgcmV0dXJuIFdlYkNvcmU6
OlBvbGljeUVycm9yQ2Fubm90U2hvd1VSTDsKKyAgICAgICAgcmV0dXJuIGtXS0Vycm9yQ29kZUNh
bm5vdFNob3dVUkw7CiAgICAgY2FzZSBXRUJLSVRfUE9MSUNZX0VSUk9SX0ZSQU1FX0xPQURfSU5U
RVJSVVBURURfQllfUE9MSUNZX0NIQU5HRToKLSAgICAgICAgcmV0dXJuIFdlYkNvcmU6OlBvbGlj
eUVycm9yRnJhbWVMb2FkSW50ZXJydXB0ZWRCeVBvbGljeUNoYW5nZTsKKyAgICAgICAgcmV0dXJu
IGtXS0Vycm9yQ29kZUZyYW1lTG9hZEludGVycnVwdGVkQnlQb2xpY3lDaGFuZ2U7CiAgICAgY2Fz
ZSBXRUJLSVRfUE9MSUNZX0VSUk9SX0NBTk5PVF9VU0VfUkVTVFJJQ1RFRF9QT1JUOgotICAgICAg
ICByZXR1cm4gV2ViQ29yZTo6UG9saWN5RXJyb3JDYW5ub3RVc2VSZXN0cmljdGVkUG9ydDsKLSAg
ICBjYXNlIFdFQktJVF9QTFVHSU5fRVJST1JfRkFJTEVEOgotICAgICAgICByZXR1cm4gV2ViQ29y
ZTo6UGx1Z2luRXJyb3JGYWlsZWQ7CisgICAgICAgIHJldHVybiBrV0tFcnJvckNvZGVDYW5ub3RV
c2VSZXN0cmljdGVkUG9ydDsKICAgICBjYXNlIFdFQktJVF9QTFVHSU5fRVJST1JfQ0FOTk9UX0ZJ
TkRfUExVR0lOOgotICAgICAgICByZXR1cm4gV2ViQ29yZTo6UGx1Z2luRXJyb3JDYW5ub3RGaW5k
UGx1Z2luOworICAgICAgICByZXR1cm4ga1dLRXJyb3JDb2RlQ2Fubm90RmluZFBsdWdJbjsKICAg
ICBjYXNlIFdFQktJVF9QTFVHSU5fRVJST1JfQ0FOTk9UX0xPQURfUExVR0lOOgotICAgICAgICBy
ZXR1cm4gV2ViQ29yZTo6UGx1Z2luRXJyb3JDYW5ub3RMb2FkUGx1Z2luOworICAgICAgICByZXR1
cm4ga1dLRXJyb3JDb2RlQ2Fubm90TG9hZFBsdWdJbjsKICAgICBjYXNlIFdFQktJVF9QTFVHSU5f
RVJST1JfSkFWQV9VTkFWQUlMQUJMRToKLSAgICAgICAgcmV0dXJuIFdlYkNvcmU6OlBsdWdpbkVy
cm9ySmF2YVVuYXZhaWxhYmxlOworICAgICAgICByZXR1cm4ga1dLRXJyb3JDb2RlSmF2YVVuYXZh
aWxhYmxlOwogICAgIGNhc2UgV0VCS0lUX1BMVUdJTl9FUlJPUl9DT05ORUNUSU9OX0NBTkNFTExF
RDoKLSAgICAgICAgcmV0dXJuIFdlYkNvcmU6OlBsdWdpbkVycm9yQ29ubmVjdGlvbkNhbmNlbGxl
ZDsKKyAgICAgICAgcmV0dXJuIGtXS0Vycm9yQ29kZVBsdWdJbkNhbmNlbGxlZENvbm5lY3Rpb247
CiAgICAgY2FzZSBXRUJLSVRfUExVR0lOX0VSUk9SX1dJTExfSEFORExFX0xPQUQ6Ci0gICAgICAg
IHJldHVybiBXZWJDb3JlOjpQbHVnaW5FcnJvcldpbGxIYW5kbGVMb2FkOworICAgICAgICByZXR1
cm4ga1dLRXJyb3JDb2RlUGx1Z0luV2lsbEhhbmRsZUxvYWQ7CiAgICAgY2FzZSBXRUJLSVRfRE9X
TkxPQURfRVJST1JfTkVUV09SSzoKLSAgICAgICAgcmV0dXJuIFdlYkNvcmU6OkRvd25sb2FkRXJy
b3JOZXR3b3JrOworICAgICAgICByZXR1cm4gQVBJOjpFcnJvcjo6RG93bmxvYWQ6Ok5ldHdvcms7
CiAgICAgY2FzZSBXRUJLSVRfRE9XTkxPQURfRVJST1JfQ0FOQ0VMTEVEX0JZX1VTRVI6Ci0gICAg
ICAgIHJldHVybiBXZWJDb3JlOjpEb3dubG9hZEVycm9yQ2FuY2VsbGVkQnlVc2VyOworICAgICAg
ICByZXR1cm4gQVBJOjpFcnJvcjo6RG93bmxvYWQ6OkNhbmNlbGxlZEJ5VXNlcjsKICAgICBjYXNl
IFdFQktJVF9ET1dOTE9BRF9FUlJPUl9ERVNUSU5BVElPTjoKLSAgICAgICAgcmV0dXJuIFdlYkNv
cmU6OkRvd25sb2FkRXJyb3JEZXN0aW5hdGlvbjsKKyAgICAgICAgcmV0dXJuIEFQSTo6RXJyb3I6
OkRvd25sb2FkOjpEZXN0aW5hdGlvbjsKICAgICBjYXNlIFdFQktJVF9QUklOVF9FUlJPUl9HRU5F
UkFMOgotICAgICAgICByZXR1cm4gV2ViQ29yZTo6UHJpbnRFcnJvckdlbmVyYWw7CisgICAgICAg
IHJldHVybiBBUEk6OkVycm9yOjpQcmludDo6R2VuZXJhbDsKICAgICBjYXNlIFdFQktJVF9QUklO
VF9FUlJPUl9QUklOVEVSX05PVF9GT1VORDoKLSAgICAgICAgcmV0dXJuIFdlYkNvcmU6OlByaW50
RXJyb3JQcmludGVyTm90Rm91bmQ7CisgICAgICAgIHJldHVybiBBUEk6OkVycm9yOjpQcmludDo6
UHJpbnRlck5vdEZvdW5kOwogICAgIGNhc2UgV0VCS0lUX1BSSU5UX0VSUk9SX0lOVkFMSURfUEFH
RV9SQU5HRToKLSAgICAgICAgcmV0dXJuIFdlYkNvcmU6OlByaW50RXJyb3JJbnZhbGlkUGFnZVJh
bmdlOworICAgICAgICByZXR1cm4gQVBJOjpFcnJvcjo6UHJpbnQ6OkludmFsaWRQYWdlUmFuZ2U7
CiAgICAgZGVmYXVsdDoKICAgICAgICAgLy8gVGhpcyBtYXkgYmUgYSB1c2VyIGFwcCBkZWZpbmVk
IGVycm9yLCB3aGljaCBuZWVkcyB0byBiZSBwYXNzZWQgYXMtaXMuCiAgICAgICAgIHJldHVybiB3
ZWJLaXRFcnJvcjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYktpdDIueGNvZGVwcm9q
L3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJLaXQyL1dlYktpdDIueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvagppbmRleCBlMzliZTlhZWUwOS4uMjAwODA1NGFiMDAgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQyL1dlYktpdDIueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3Vy
Y2UvV2ViS2l0Mi9XZWJLaXQyLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTIyNiw3ICsy
MjYsNiBAQAogCQkxQTNFRUQwRjE2MUE1MzU0MDBBRUI0RjUgLyogTWVzc2FnZVJlY2VpdmVyTWFw
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxQTNFRUQw
RDE2MUE1MzUzMDBBRUI0RjUgLyogTWVzc2FnZVJlY2VpdmVyTWFwLmggKi87IH07CiAJCTFBM0VF
RDEyMTYxQTUzRDYwMEFFQjRGNSAvKiBNZXNzYWdlUmVjZWl2ZXIuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFBM0VFRDExMTYxQTUzRDYwMEFFQjRGNSAv
KiBNZXNzYWdlUmVjZWl2ZXIuaCAqLzsgfTsKIAkJMUE0MjJGOEIxOEIyOUI1NDAwRDhDRDk2IC8q
IFdLSGlzdG9yeURlbGVnYXRlUHJpdmF0ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gMUE0MjJGOEExOEIyOUI1NDAwRDhDRDk2IC8qIFdLSGlzdG9yeURl
bGVnYXRlUHJpdmF0ZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7
IH07IH07Ci0JCTFBNDMzRjBEMTEzQzUzREQwMEZBQ0RFOSAvKiBXZWJFcnJvcnMuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFBNDMzRjBDMTEzQzUzREQw
MEZBQ0RFOSAvKiBXZWJFcnJvcnMuaCAqLzsgfTsKIAkJMUE0M0U4MjkxODhGM0NEQzAwOUU0RDMw
IC8qIF9XS1Byb2Nlc3NQb29sQ29uZmlndXJhdGlvbi5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFBNDNFODI3MTg4RjNDREMwMDlFNEQzMCAvKiBfV0tQ
cm9jZXNzUG9vbENvbmZpZ3VyYXRpb24ubW0gKi87IH07CiAJCTFBNDNFODJBMTg4RjNDREMwMDlF
NEQzMCAvKiBfV0tQcm9jZXNzUG9vbENvbmZpZ3VyYXRpb24uaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFBNDNFODI4MTg4RjNDREMwMDlFNEQzMCAvKiBf
V0tQcm9jZXNzUG9vbENvbmZpZ3VyYXRpb24uaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9
IChQcml2YXRlLCApOyB9OyB9OwogCQkxQTQ0NUI5RjE4NEQ1RkI1MDA0QjM0MTQgLyogV0tDb250
ZXh0SW5qZWN0ZWRCdW5kbGVDbGllbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDFBNDQ1QjlFMTg0RDVGQjUwMDRCMzQxNCAvKiBXS0NvbnRleHRJbmpl
Y3RlZEJ1bmRsZUNsaWVudC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUs
ICk7IH07IH07CkBAIC0xMTk4LDYgKzExOTcsOSBAQAogCQk3QTgyMUY0QzFFMkY2NzM5MDA2MDQ1
NzcgLyogTGVnYWN5Q3VzdG9tUHJvdG9jb2xNYW5hZ2VyQ2xpZW50LmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3QTgyMUY0QjFFMkY2NjQ4MDA2MDQ1Nzcg
LyogTGVnYWN5Q3VzdG9tUHJvdG9jb2xNYW5hZ2VyQ2xpZW50LmggKi87IH07CiAJCTdBODIxRjRF
MUUyRjY3QTgwMDYwNDU3NyAvKiBMZWdhY3lDdXN0b21Qcm90b2NvbE1hbmFnZXJDbGllbnQubW0g
aW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3QTgyMUY0RDFF
MkY2NzlFMDA2MDQ1NzcgLyogTGVnYWN5Q3VzdG9tUHJvdG9jb2xNYW5hZ2VyQ2xpZW50Lm1tICov
OyB9OwogCQk3QTgyMUY1MDFFMkY3QTc1MDA2MDQ1NzcgLyogQVBJQ3VzdG9tUHJvdG9jb2xNYW5h
Z2VyQ2xpZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA3QTgyMUY0RjFFMkY3QTVDMDA2MDQ1NzcgLyogQVBJQ3VzdG9tUHJvdG9jb2xNYW5hZ2VyQ2xp
ZW50LmggKi87IH07CisJCTdBRjIzNjIwMUU3OUEzRTQwMDQzOEEwNSAvKiBXZWJFcnJvcnMuY3Bw
IGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gN0FGMjM2MUUx
RTc5QTNCNDAwNDM4QTA1IC8qIFdlYkVycm9ycy5jcHAgKi87IH07CisJCTdBRjIzNjIxMUU3OUE0
MDgwMDQzOEEwNSAvKiBXZWJFcnJvcnMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDdBRjIzNjFGMUU3OUEzRDgwMDQzOEEwNSAvKiBXZWJFcnJvcnMuaCAq
LzsgfTsKKwkJN0FGMjM2MjMxRTc5QTQ0NDAwNDM4QTA1IC8qIFdlYkVycm9yc0NvY29hLm1tIGlu
IFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gN0FGMjM2MjIxRTc5
QTQzMTAwNDM4QTA1IC8qIFdlYkVycm9yc0NvY29hLm1tICovOyB9OwogCQk3QzA2NUYyQjFDOENE
OTVGMDBDMkQ5NTAgLyogV2ViVXNlckNvbnRlbnRDb250cm9sbGVyRGF0YVR5cGVzLmNwcCBpbiBT
b3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDdDMDY1RjI5MUM4Q0Q5
NUYwMEMyRDk1MCAvKiBXZWJVc2VyQ29udGVudENvbnRyb2xsZXJEYXRhVHlwZXMuY3BwICovOyB9
OwogCQk3QzA2NUYyQzFDOENEOTVGMDBDMkQ5NTAgLyogV2ViVXNlckNvbnRlbnRDb250cm9sbGVy
RGF0YVR5cGVzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA3QzA2NUYyQTFDOENEOTVGMDBDMkQ5NTAgLyogV2ViVXNlckNvbnRlbnRDb250cm9sbGVyRGF0
YVR5cGVzLmggKi87IH07CiAJCTdDMTM1QUE4MTczQjBCQ0EwMDU4NkFFMiAvKiBXS1BsdWdpbklu
Zm9ybWF0aW9uLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDdDMTM1QUE2MTczQjBCQ0EwMDU4NkFFMiAvKiBXS1BsdWdpbkluZm9ybWF0aW9uLmNwcCAq
LzsgfTsKQEAgLTE1MjIsNyArMTUyNCw2IEBACiAJCUJDMTExQTVGMTEyRjRGQkIwMDMzN0JBQiAv
KiBXZWJGcmFtZUxvYWRlckNsaWVudC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSBCQzExMUE1ODExMkY0RkJCMDAzMzdCQUIgLyogV2ViRnJhbWVMb2Fk
ZXJDbGllbnQuY3BwICovOyB9OwogCQlCQzExMUE2MDExMkY0RkJCMDAzMzdCQUIgLyogV2ViSW5z
cGVjdG9yQ2xpZW50LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IEJDMTExQTU5MTEyRjRGQkIwMDMzN0JBQiAvKiBXZWJJbnNwZWN0b3JDbGllbnQuY3Bw
ICovOyB9OwogCQlCQzExMUFERDExMkY1QjkzMDAzMzdCQUIgLyogV2ViRnJhbWUuY3BwIGluIFNv
dXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkMxMTFBREMxMTJGNUI5
MzAwMzM3QkFCIC8qIFdlYkZyYW1lLmNwcCAqLzsgfTsKLQkJQkMxMTFBRTAxMTJGNUJDMjAwMzM3
QkFCIC8qIFdlYkVycm9yc01hYy5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IEJDMTExQURGMTEyRjVCQzIwMDMzN0JBQiAvKiBXZWJFcnJvcnNNYWMubW0g
Ki87IH07CiAJCUJDMTExQUU0MTEyRjVDMjYwMDMzN0JBQiAvKiBXZWJQcm9jZXNzLmNwcCBpbiBT
b3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDMTExQUUzMTEyRjVD
MjYwMDMzN0JBQiAvKiBXZWJQcm9jZXNzLmNwcCAqLzsgfTsKIAkJQkMxMTFCMDkxMTJGNUUzQzAw
MzM3QkFCIC8qIFJlc3BvbnNpdmVuZXNzVGltZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkMxMTFCMDgxMTJGNUUzQzAwMzM3QkFCIC8qIFJlc3Bv
bnNpdmVuZXNzVGltZXIuY3BwICovOyB9OwogCQlCQzExMUIwRTExMkY1RTRGMDAzMzdCQUIgLyog
V2ViRnJhbWVQcm94eS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSBCQzExMUIwQTExMkY1RTRGMDAzMzdCQUIgLyogV2ViRnJhbWVQcm94eS5jcHAgKi87
IH07CkBAIC0yMzU4LDcgKzIzNTksNiBAQAogCQkxQTNFRUQwRDE2MUE1MzUzMDBBRUI0RjUgLyog
TWVzc2FnZVJlY2VpdmVyTWFwLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE1l
c3NhZ2VSZWNlaXZlck1hcC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkxQTNFRUQx
MTE2MUE1M0Q2MDBBRUI0RjUgLyogTWVzc2FnZVJlY2VpdmVyLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IE1lc3NhZ2VSZWNlaXZlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQkxQTQyMkY4QTE4QjI5QjU0MDBEOENEOTYgLyogV0tIaXN0b3J5RGVsZWdhdGVQcml2
YXRlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdLSGlzdG9yeURlbGVnYXRl
UHJpdmF0ZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQkxQTQzM0YwQzExM0M1M0RE
MDBGQUNERTkgLyogV2ViRXJyb3JzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IFdlYkVycm9ycy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkxQTQzRTgyNzE4OEYz
Q0RDMDA5RTREMzAgLyogX1dLUHJvY2Vzc1Bvb2xDb25maWd1cmF0aW9uLm1tICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gX1dLUHJvY2Vzc1Bvb2xDb25maWd1cmF0aW9u
Lm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkxQTQzRTgyODE4OEYzQ0RDMDA5RTRE
MzAgLyogX1dLUHJvY2Vzc1Bvb2xDb25maWd1cmF0aW9uLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IF9XS1Byb2Nlc3NQb29sQ29uZmlndXJhdGlvbi5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQkxQTQ0NUI5RTE4NEQ1RkI1MDA0QjM0MTQgLyogV0tDb250ZXh0SW5q
ZWN0ZWRCdW5kbGVDbGllbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV0tD
b250ZXh0SW5qZWN0ZWRCdW5kbGVDbGllbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
QEAgLTM0NDEsNiArMzQ0MSw5IEBACiAJCTdBOUNEOEMwMUM3Nzk4NDkwMEQ5RjZDNyAvKiBXZWJS
ZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
Y3BwOyBwYXRoID0gV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlLmNwcDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJN0E5Q0Q4QzExQzc3OTg0OTAwRDlGNkM3IC8qIFdlYlJlc291
cmNlTG9hZFN0YXRpc3RpY3NTdG9yZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJN0E5Q0Q4QzIxQzc3OUFENjAwRDlGNkM3IC8qIFdlYlJlc291cmNlTG9hZFN0YXRp
c3RpY3NTdG9yZS5tZXNzYWdlcy5pbiAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBXZWJSZXNvdXJj
ZUxvYWRTdGF0aXN0aWNzU3RvcmUubWVzc2FnZXMuaW47IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CisJCTdBRjIzNjFFMUU3OUEzQjQwMDQzOEEwNSAvKiBXZWJFcnJvcnMuY3BwICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV2ViRXJyb3JzLmNwcDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKKwkJN0FGMjM2MUYxRTc5QTNEODAwNDM4QTA1IC8qIFdlYkVycm9ycy5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJFcnJvcnMuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKKwkJN0FGMjM2MjIxRTc5QTQzMTAwNDM4QTA1IC8qIFdlYkVycm9y
c0NvY29hLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gV2ViRXJy
b3JzQ29jb2EubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTdDMDY1RjI5MUM4Q0Q5
NUYwMEMyRDk1MCAvKiBXZWJVc2VyQ29udGVudENvbnRyb2xsZXJEYXRhVHlwZXMuY3BwICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV2ViVXNlckNvbnRlbnRDb250cm9sbGVy
RGF0YVR5cGVzLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJN0MwNjVGMkExQzhD
RDk1RjAwQzJEOTUwIC8qIFdlYlVzZXJDb250ZW50Q29udHJvbGxlckRhdGFUeXBlcy5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJVc2VyQ29udGVudENvbnRyb2xsZXJEYXRh
VHlwZXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJN0MwQkI5QTgxOERDREU4OTAw
MDZDMDg2IC8qIFdlYkNvbnRlbnQtaU9TLmVudGl0bGVtZW50cyAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQueG1sOyBwYXRoID0gIldlYkNvbnRl
bnQtaU9TLmVudGl0bGVtZW50cyI7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0zNzg2
LDcgKzM3ODksNiBAQAogCQlCQzExMUE1ODExMkY0RkJCMDAzMzdCQUIgLyogV2ViRnJhbWVMb2Fk
ZXJDbGllbnQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV2ViRnJh
bWVMb2FkZXJDbGllbnQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB3cmFwc0xpbmVzID0g
MDsgfTsKIAkJQkMxMTFBNTkxMTJGNEZCQjAwMzM3QkFCIC8qIFdlYkluc3BlY3RvckNsaWVudC5j
cHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXZWJJbnNwZWN0b3JDbGll
bnQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlCQzExMUFEQzExMkY1QjkzMDAz
MzdCQUIgLyogV2ViRnJhbWUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRo
ID0gV2ViRnJhbWUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQlCQzExMUFERjEx
MkY1QkMyMDAzMzdCQUIgLyogV2ViRXJyb3JzTWFjLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAub2JqY3BwOyBwYXRoID0gV2ViRXJyb3JzTWFjLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQlCQzExMUFFMzExMkY1QzI2MDAzMzdCQUIgLyogV2ViUHJvY2Vzcy5jcHAgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXZWJQcm9jZXNzLmNwcDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQkMxMTFCMDgxMTJGNUUzQzAwMzM3QkFCIC8qIFJlc3BvbnNp
dmVuZXNzVGltZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUmVz
cG9uc2l2ZW5lc3NUaW1lci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUJDMTEx
QjBBMTEyRjVFNEYwMDMzN0JBQiAvKiBXZWJGcmFtZVByb3h5LmNwcCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdlYkZyYW1lUHJveHkuY3BwOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwpAQCAtNDkwNiw2ICs0OTA4LDggQEAKIAkJCQk1MTBGQkI5OTEyODhDOTVFMDBB
RkZERjQgLyogV2ViQ29udGV4dE1lbnVJdGVtRGF0YS5oICovLAogCQkJCTkzOUFFNzY1MTMxNkU5
OUMwMEFFMDZBNiAvKiBXZWJDb3JlQXJndW1lbnRDb2RlcnMuY3BwICovLAogCQkJCUJDMUREN0Ix
MTE0REMzOTYwMDVBREFGMyAvKiBXZWJDb3JlQXJndW1lbnRDb2RlcnMuaCAqLywKKwkJCQk3QUYy
MzYxRTFFNzlBM0I0MDA0MzhBMDUgLyogV2ViRXJyb3JzLmNwcCAqLywKKwkJCQk3QUYyMzYxRjFF
NzlBM0Q4MDA0MzhBMDUgLyogV2ViRXJyb3JzLmggKi8sCiAJCQkJQzAzMzdEQUQxMjdBMjRGRTAw
OEZGNEY0IC8qIFdlYkV2ZW50LmNwcCAqLywKIAkJCQlCQzAzMkRBRjEwRjQzODBGMDA1OEMxNUEg
LyogV2ViRXZlbnQuaCAqLywKIAkJCQlCQzAzMkRCMDEwRjQzODBGMDA1OEMxNUEgLyogV2ViRXZl
bnRDb252ZXJzaW9uLmNwcCAqLywKQEAgLTU2NjksNiArNTY3Myw3IEBACiAJCQkJMzdCRjJGMDUx
OTQ3REVCNDAwNzIzQzQ4IC8qIFdLTlNVUkxSZXF1ZXN0Lm1tICovLAogCQkJCTM3OEUxQTNGMTgx
RURBMDEwMDMxMDA3QSAvKiBXS09iamVjdC5oICovLAogCQkJCTM3NDQzNjg3MTgyMEU3MjQwMDQ5
NTc5RiAvKiBXS09iamVjdC5tbSAqLywKKwkJCQk3QUYyMzYyMjFFNzlBNDMxMDA0MzhBMDUgLyog
V2ViRXJyb3JzQ29jb2EubW0gKi8sCiAJCQkpOwogCQkJbmFtZSA9IGNvY29hOwogCQkJcGF0aCA9
IENvY29hOwpAQCAtNjQ1NSw3ICs2NDYwLDYgQEAKIAkJCQlCQzAzMkQ2NjEwRjQzNzhEMDA1OEMx
NUEgLyogV2ViRHJhZ0NsaWVudC5oICovLAogCQkJCUJDMTExQTU3MTEyRjRGQkIwMDMzN0JBQiAv
KiBXZWJFZGl0b3JDbGllbnQuY3BwICovLAogCQkJCUJDMDMyRDY4MTBGNDM3OEQwMDU4QzE1QSAv
KiBXZWJFZGl0b3JDbGllbnQuaCAqLywKLQkJCQkxQTQzM0YwQzExM0M1M0REMDBGQUNERTkgLyog
V2ViRXJyb3JzLmggKi8sCiAJCQkJQkMxMTFBNTgxMTJGNEZCQjAwMzM3QkFCIC8qIFdlYkZyYW1l
TG9hZGVyQ2xpZW50LmNwcCAqLywKIAkJCQlCQzAzMkQ2QTEwRjQzNzhEMDA1OEMxNUEgLyogV2Vi
RnJhbWVMb2FkZXJDbGllbnQuaCAqLywKIAkJCQlCQzFCRTFERjEyRDU0QTQxMDAwNEEyMjggLyog
V2ViR2VvbG9jYXRpb25DbGllbnQuY3BwICovLApAQCAtNjk0OCw3ICs2OTUyLDYgQEAKIAkJCQk1
MTAyMUU5QjEyQjE2Nzg4MDA1QzAzM0MgLyogV2ViQ29udGV4dE1lbnVDbGllbnRNYWMubW0gKi8s
CiAJCQkJQzU1NEZGQTIxMkU0RThFQTAwMkYyMkMwIC8qIFdlYkRyYWdDbGllbnRNYWMubW0gKi8s
CiAJCQkJQzUyMzdGNUYxMjQ0MUNBMzAwNzgwNDcyIC8qIFdlYkVkaXRvckNsaWVudE1hYy5tbSAq
LywKLQkJCQlCQzExMUFERjExMkY1QkMyMDAzMzdCQUIgLyogV2ViRXJyb3JzTWFjLm1tICovLAog
CQkJCTkzOTFGMjgzMTIxQjM4RjUwMEVCRjdFOCAvKiBXZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0
LmggKi8sCiAJCQkJOTM5MUYyODQxMjFCMzhGNTAwRUJGN0U4IC8qIFdlYkZyYW1lTmV0d29ya2lu
Z0NvbnRleHQubW0gKi8sCiAJCQkJQkNDNDNBQzYxMjdCOTlERTAwMzE3RjE2IC8qIFdlYlBvcHVw
TWVudU1hYy5tbSAqLywKQEAgLTg0OTIsNyArODQ5NSw2IEBACiAJCQkJQkMwMzJEN0IxMEY0Mzc4
RDAwNThDMTVBIC8qIFdlYkRyYWdDbGllbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDQTBFRjlG
MTIzMzI2NDIwMDdEM0NGQiAvKiBXZWJFZGl0Q29tbWFuZFByb3h5LmggaW4gSGVhZGVycyAqLywK
IAkJCQlCQzAzMkQ3RDEwRjQzNzhEMDA1OEMxNUEgLyogV2ViRWRpdG9yQ2xpZW50LmggaW4gSGVh
ZGVycyAqLywKLQkJCQkxQTQzM0YwRDExM0M1M0REMDBGQUNERTkgLyogV2ViRXJyb3JzLmggaW4g
SGVhZGVycyAqLywKIAkJCQlCQzAzMkRCOTEwRjQzODBGMDA1OEMxNUEgLyogV2ViRXZlbnQuaCBp
biBIZWFkZXJzICovLAogCQkJCUJDMDMyREJCMTBGNDM4MEYwMDU4QzE1QSAvKiBXZWJFdmVudENv
bnZlcnNpb24uaCBpbiBIZWFkZXJzICovLAogCQkJCUJDMTExQjVEMTEyRjYyOTgwMDMzN0JBQiAv
KiBXZWJFdmVudEZhY3RvcnkuaCBpbiBIZWFkZXJzICovLApAQCAtODkxOSw2ICs4OTIxLDcgQEAK
IAkJCQk3QzI0MTMwOTFBQUNGQ0I0MDBBNThDMTUgLyogV0tVc2VyQ29udGVudEV4dGVuc2lvblN0
b3JlUmVmLmggaW4gSGVhZGVycyAqLywKIAkJCQkzNzdFQUQ0ODE3RTJDNzdCMDAyRDE5M0QgLyog
V0tVc2VyQ29udGVudEluamVjdGVkRnJhbWVzLmggaW4gSGVhZGVycyAqLywKIAkJCQlGNjExM0Uy
OTEyNkNFMTlCMDA1N0QwQTcgLyogV0tVc2VyQ29udGVudFVSTFBhdHRlcm4uaCBpbiBIZWFkZXJz
ICovLAorCQkJCTdBRjIzNjIxMUU3OUE0MDgwMDQzOEEwNSAvKiBXZWJFcnJvcnMuaCBpbiBIZWFk
ZXJzICovLAogCQkJCTA3Mjk3RkEzMUMxODZBREIwMDNGMDczNSAvKiBXS1VzZXJNZWRpYVBlcm1p
c3Npb25DaGVjay5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNEEzQ0MxOEYxOUIwN0I4QTAwRDE0QUVG
IC8qIFdLVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3QuaCBpbiBIZWFkZXJzICovLAogCQkJCTFB
QUYwODlCMTkyNjdFRTUwMEI2MzkwQyAvKiBXS1VzZXJTY3JpcHQuaCBpbiBIZWFkZXJzICovLApA
QCAtMTAwNTcsNyArMTAwNjAsNiBAQAogCQkJCUJDMTExQTVFMTEyRjRGQkIwMDMzN0JBQiAvKiBX
ZWJFZGl0b3JDbGllbnQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMkQyOEYzRTYxODg1Q0NDMTAw
NEI5RUFFIC8qIFdlYkVkaXRvckNsaWVudElPUy5tbSBpbiBTb3VyY2VzICovLAogCQkJCUM1MjM3
RjYwMTI0NDFDQTMwMDc4MDQ3MiAvKiBXZWJFZGl0b3JDbGllbnRNYWMubW0gaW4gU291cmNlcyAq
LywKLQkJCQlCQzExMUFFMDExMkY1QkMyMDAzMzdCQUIgLyogV2ViRXJyb3JzTWFjLm1tIGluIFNv
dXJjZXMgKi8sCiAJCQkJQzAzMzdEQUUxMjdBMjRGRTAwOEZGNEY0IC8qIFdlYkV2ZW50LmNwcCBp
biBTb3VyY2VzICovLAogCQkJCUJDMDMyREJBMTBGNDM4MEYwMDU4QzE1QSAvKiBXZWJFdmVudENv
bnZlcnNpb24uY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQkMxMTFCNUUxMTJGNjI5ODAwMzM3QkFC
IC8qIFdlYkV2ZW50RmFjdG9yeS5tbSBpbiBTb3VyY2VzICovLApAQCAtMTAwNzUsNiArMTAwNzcs
NyBAQAogCQkJCUNENzNCQTRFMTMxQUNEQjcwMEVFREVEMiAvKiBXZWJGdWxsU2NyZWVuTWFuYWdl
ck1lc3NhZ2VSZWNlaXZlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlDRDZGNzVGNDEzMUI2NkQw
MDBENkIyMUUgLyogV2ViRnVsbFNjcmVlbk1hbmFnZXJQcm94eS5jcHAgaW4gU291cmNlcyAqLywK
IAkJCQlDRDczQkE0NzEzMUFDQzlBMDBFRURFRDIgLyogV2ViRnVsbFNjcmVlbk1hbmFnZXJQcm94
eU1lc3NhZ2VSZWNlaXZlci5jcHAgaW4gU291cmNlcyAqLywKKwkJCQk3QUYyMzYyMzFFNzlBNDQ0
MDA0MzhBMDUgLyogV2ViRXJyb3JzQ29jb2EubW0gaW4gU291cmNlcyAqLywKIAkJCQk1MTVCRTFB
QTFENTU1QTlCMDBERDdDNjggLyogV2ViR2FtZXBhZC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk1
MTVCRTE3NzFENTNGRTg3MDBERDdDNjggLyogV2ViR2FtZXBhZFByb3ZpZGVyLmNwcCBpbiBTb3Vy
Y2VzICovLAogCQkJCUJDMUJFMUUxMTJENTRBNDEwMDA0QTIyOCAvKiBXZWJHZW9sb2NhdGlvbkNs
aWVudC5jcHAgaW4gU291cmNlcyAqLywKQEAgLTEwNDE5LDYgKzEwNDIyLDcgQEAKIAkJCQlCQzQw
NzYwOTEyNEZGMDI3MDA2OEYyMEEgLyogV0tVUkwuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQkM0
MDc2MUIxMjRGRjAzNzAwNjhGMjBBIC8qIFdLVVJMQ0YubW0gaW4gU291cmNlcyAqLywKIAkJCQlC
QzQwNzYwQjEyNEZGMDI3MDA2OEYyMEEgLyogV0tVUkxSZXF1ZXN0LmNwcCBpbiBTb3VyY2VzICov
LAorCQkJCTdBRjIzNjIwMUU3OUEzRTQwMDQzOEEwNSAvKiBXZWJFcnJvcnMuY3BwIGluIFNvdXJj
ZXMgKi8sCiAJCQkJQkM0MDc2MkExMjRGRjA0MDAwNjhGMjBBIC8qIFdLVVJMUmVxdWVzdE5TLm1t
IGluIFNvdXJjZXMgKi8sCiAJCQkJQkM0MDc2MEQxMjRGRjAyNzAwNjhGMjBBIC8qIFdLVVJMUmVz
cG9uc2UuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQkM0MDc2MkMxMjRGRjA0MDAwNjhGMjBBIC8q
IFdLVVJMUmVzcG9uc2VOUy5tbSBpbiBTb3VyY2VzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9tYWMvV2ViRXJyb3JzTWFjLm1tIGIvU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9tYWMvV2ViRXJyb3JzTWFjLm1t
CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAxZjE3MWU4ODY4Zi4uMDAwMDAwMDAwMDAK
LS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9tYWMvV2ViRXJy
b3JzTWFjLm1tCisrKyAvZGV2L251bGwKQEAgLTEsMTA3ICswLDAgQEAKLS8qCi0gKiBDb3B5cmln
aHQgKEMpIDIwMTAtMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24u
Ci0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMg
Q09OVFJJQlVUT1JTIGBgQVMgSVMnJwotICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBUSEUgSU1QTElFRCBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
Ci0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMu
IE9SIElUUyBDT05UUklCVVRPUlMKLSAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKLSAqIENPTlNFUVVFTlRJQUwg
REFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCi0g
KiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJP
RklUUzsgT1IgQlVTSU5FU1MKLSAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9O
IEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCi0gKiBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQot
ICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRgotICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICov
Ci0KLSNpbXBvcnQgImNvbmZpZy5oIgotI2ltcG9ydCAiV2ViRXJyb3JzLmgiCi0KLSNpbXBvcnQg
IkFQSUVycm9yLmgiCi0jaW1wb3J0ICJXS0Vycm9yUmVmLmgiCi0jaW1wb3J0IDxXZWJDb3JlL0xv
Y2FsaXplZFN0cmluZ3MuaD4KLSNpbXBvcnQgPFdlYkNvcmUvUmVzb3VyY2VSZXF1ZXN0Lmg+Ci0j
aW1wb3J0IDxXZWJDb3JlL1Jlc291cmNlUmVzcG9uc2UuaD4KLQotdXNpbmcgbmFtZXNwYWNlIFdl
YkNvcmU7Ci11c2luZyBuYW1lc3BhY2UgV2ViS2l0OwotCi1uYW1lc3BhY2UgV2ViS2l0IHsKLQot
c3RhdGljIFJldGFpblB0cjxOU0Vycm9yPiBjcmVhdGVOU0Vycm9yKE5TU3RyaW5nKiBkb21haW4s
IGludCBjb2RlLCBOU1VSTCAqVVJMKQotewotICAgIE5TRGljdGlvbmFyeSAqdXNlckluZm8gPSBb
TlNEaWN0aW9uYXJ5IGRpY3Rpb25hcnlXaXRoT2JqZWN0c0FuZEtleXM6Ci0gICAgICAgIFVSTCwg
QCJOU0Vycm9yRmFpbGluZ1VSTEtleSIsCi0gICAgICAgIFtVUkwgYWJzb2x1dGVTdHJpbmddLCBA
Ik5TRXJyb3JGYWlsaW5nVVJMU3RyaW5nS2V5IiwKLSAgICAgICAgbmlsXTsKLQotICAgIHJldHVy
biBhZG9wdE5TKFtbTlNFcnJvciBhbGxvY10gaW5pdFdpdGhEb21haW46ZG9tYWluIGNvZGU6Y29k
ZSB1c2VySW5mbzp1c2VySW5mb10pOwotfQotCi0vLyBVc2UgTlNFcnJvcidzIGlmIGF2YWlsYWJs
ZS4KLQotUmVzb3VyY2VFcnJvciBjYW5jZWxsZWRFcnJvcihjb25zdCBSZXNvdXJjZVJlcXVlc3Qm
IHJlcXVlc3QpCi17Ci0gICAgcmV0dXJuIFJlc291cmNlRXJyb3IoY3JlYXRlTlNFcnJvcihOU1VS
TEVycm9yRG9tYWluLCBOU1VSTEVycm9yQ2FuY2VsbGVkLCByZXF1ZXN0LnVybCgpKS5nZXQoKSk7
Ci19Ci0KLVJlc291cmNlRXJyb3IgZmlsZURvZXNOb3RFeGlzdEVycm9yKGNvbnN0IFJlc291cmNl
UmVzcG9uc2UmIHJlc3BvbnNlKQotewotICAgIHJldHVybiBSZXNvdXJjZUVycm9yKGNyZWF0ZU5T
RXJyb3IoTlNVUkxFcnJvckRvbWFpbiwgTlNVUkxFcnJvckZpbGVEb2VzTm90RXhpc3QsIHJlc3Bv
bnNlLnVybCgpKS5nZXQoKSk7Ci19Ci0KLQotLy8gT3RoZXJ3aXNlLCBmYWxsYmFjayB0byBvdXIg
b3duIGVycm9ycy4KLQotUmVzb3VyY2VFcnJvciBibG9ja2VkRXJyb3IoY29uc3QgUmVzb3VyY2VS
ZXF1ZXN0JiByZXF1ZXN0KQotewotICAgIHJldHVybiBSZXNvdXJjZUVycm9yKEFQSTo6RXJyb3I6
OndlYktpdEVycm9yRG9tYWluKCksIGtXS0Vycm9yQ29kZUNhbm5vdFVzZVJlc3RyaWN0ZWRQb3J0
LCByZXF1ZXN0LnVybCgpLCBXRUJfVUlfU1RSSU5HKCJOb3QgYWxsb3dlZCB0byB1c2UgcmVzdHJp
Y3RlZCBuZXR3b3JrIHBvcnQiLCAiV2ViS2l0RXJyb3JDYW5ub3RVc2VSZXN0cmljdGVkUG9ydCBk
ZXNjcmlwdGlvbiIpKTsKLX0KLQotUmVzb3VyY2VFcnJvciBibG9ja2VkQnlDb250ZW50QmxvY2tl
ckVycm9yKGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCkKLXsKLSAgICByZXR1cm4gUmVz
b3VyY2VFcnJvcihBUEk6OkVycm9yOjp3ZWJLaXRFcnJvckRvbWFpbigpLCBrV0tFcnJvckNvZGVG
cmFtZUxvYWRCbG9ja2VkQnlDb250ZW50QmxvY2tlciwgcmVxdWVzdC51cmwoKSwgV0VCX1VJX1NU
UklORygiVGhlIFVSTCB3YXMgYmxvY2tlZCBieSBhIGNvbnRlbnQgYmxvY2tlciIsICJXZWJLaXRF
cnJvckJsb2NrZWRCeUNvbnRlbnRCbG9ja2VyIGRlc2NyaXB0aW9uIikpOwotfQotCi1SZXNvdXJj
ZUVycm9yIGNhbm5vdFNob3dVUkxFcnJvcihjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3Qp
Ci17Ci0gICAgcmV0dXJuIFJlc291cmNlRXJyb3IoQVBJOjpFcnJvcjo6d2ViS2l0RXJyb3JEb21h
aW4oKSwga1dLRXJyb3JDb2RlQ2Fubm90U2hvd1VSTCwgcmVxdWVzdC51cmwoKSwgV0VCX1VJX1NU
UklORygiVGhlIFVSTCBjYW7igJl0IGJlIHNob3duIiwgIldlYktpdEVycm9yQ2Fubm90U2hvd1VS
TCBkZXNjcmlwdGlvbiIpKTsKLX0KLQotUmVzb3VyY2VFcnJvciBpbnRlcnJ1cHRlZEZvclBvbGlj
eUNoYW5nZUVycm9yKGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCkKLXsKLSAgICByZXR1
cm4gUmVzb3VyY2VFcnJvcihBUEk6OkVycm9yOjp3ZWJLaXRFcnJvckRvbWFpbigpLCBrV0tFcnJv
ckNvZGVGcmFtZUxvYWRJbnRlcnJ1cHRlZEJ5UG9saWN5Q2hhbmdlLCByZXF1ZXN0LnVybCgpLCBX
RUJfVUlfU1RSSU5HKCJGcmFtZSBsb2FkIGludGVycnVwdGVkIiwgIldlYktpdEVycm9yRnJhbWVM
b2FkSW50ZXJydXB0ZWRCeVBvbGljeUNoYW5nZSBkZXNjcmlwdGlvbiIpKTsKLX0KLQotI2lmIEVO
QUJMRShDT05URU5UX0ZJTFRFUklORykKLVJlc291cmNlRXJyb3IgYmxvY2tlZEJ5Q29udGVudEZp
bHRlckVycm9yKGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCkKLXsKLSAgICByZXR1cm4g
UmVzb3VyY2VFcnJvcihBUEk6OkVycm9yOjp3ZWJLaXRFcnJvckRvbWFpbigpLCBrV0tFcnJvckNv
ZGVGcmFtZUxvYWRCbG9ja2VkQnlDb250ZW50RmlsdGVyLCByZXF1ZXN0LnVybCgpLCBXRUJfVUlf
U1RSSU5HKCJUaGUgVVJMIHdhcyBibG9ja2VkIGJ5IGEgY29udGVudCBmaWx0ZXIiLCAiV2ViS2l0
RXJyb3JGcmFtZUxvYWRCbG9ja2VkQnlDb250ZW50RmlsdGVyIGRlc2NyaXB0aW9uIikpOwotfQot
I2VuZGlmCi0KLVJlc291cmNlRXJyb3IgY2Fubm90U2hvd01JTUVUeXBlRXJyb3IoY29uc3QgUmVz
b3VyY2VSZXNwb25zZSYgcmVzcG9uc2UpCi17Ci0gICAgcmV0dXJuIFJlc291cmNlRXJyb3IoQVBJ
OjpFcnJvcjo6d2ViS2l0RXJyb3JEb21haW4oKSwga1dLRXJyb3JDb2RlQ2Fubm90U2hvd01JTUVU
eXBlLCByZXNwb25zZS51cmwoKSwgV0VCX1VJX1NUUklORygiQ29udGVudCB3aXRoIHNwZWNpZmll
ZCBNSU1FIHR5cGUgY2Fu4oCZdCBiZSBzaG93biIsICJXZWJLaXRFcnJvckNhbm5vdFNob3dNSU1F
VHlwZSBkZXNjcmlwdGlvbiIpKTsKLX0KLQotUmVzb3VyY2VFcnJvciBwbHVnaW5XaWxsSGFuZGxl
TG9hZEVycm9yKGNvbnN0IFJlc291cmNlUmVzcG9uc2UmIHJlc3BvbnNlKQotewotICAgIHJldHVy
biBSZXNvdXJjZUVycm9yKEFQSTo6RXJyb3I6OndlYktpdEVycm9yRG9tYWluKCksIGtXS0Vycm9y
Q29kZVBsdWdJbldpbGxIYW5kbGVMb2FkLCByZXNwb25zZS51cmwoKSwgV0VCX1VJX1NUUklORygi
UGx1Zy1pbiBoYW5kbGVkIGxvYWQiLCAiV2ViS2l0RXJyb3JQbHVnSW5XaWxsSGFuZGxlTG9hZCBk
ZXNjcmlwdGlvbiIpKTsKLX0KLQotUmVzb3VyY2VFcnJvciBpbnRlcm5hbEVycm9yKGNvbnN0IFVS
TCYgdXJsKQotewotICAgIHJldHVybiBSZXNvdXJjZUVycm9yKEFQSTo6RXJyb3I6OndlYktpdEVy
cm9yRG9tYWluKCksIGtXS0Vycm9ySW50ZXJuYWwsIHVybCwgV0VCX1VJX1NUUklORygiV2ViS2l0
IGVuY291bnRlcmVkIGFuIGludGVybmFsIGVycm9yIiwgIldlYktpdEVycm9ySW50ZXJuYWwgZGVz
Y3JpcHRpb24iKSk7Ci19Ci0KLX0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL2d0ay9XZWJQcmludE9wZXJhdGlvbkd0ay5j
cHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvZ3RrL1dlYlByaW50T3BlcmF0
aW9uR3RrLmNwcAppbmRleCBmZGQ0MTkzOTQ4Zi4uMWE1ZTEwMmVjNjMgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9ndGsvV2ViUHJpbnRPcGVyYXRpb25HdGsu
Y3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9ndGsvV2ViUHJpbnRP
cGVyYXRpb25HdGsuY3BwCkBAIC0yNywxMSArMjcsMTEgQEAKICNpbmNsdWRlICJXZWJQcmludE9w
ZXJhdGlvbkd0ay5oIgogCiAjaW5jbHVkZSAiV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmgiCisjaW5j
bHVkZSAiV2ViRXJyb3JzLmgiCiAjaW5jbHVkZSAiV2ViUGFnZS5oIgogI2luY2x1ZGUgIldlYlBh
Z2VQcm94eU1lc3NhZ2VzLmgiCiAjaW5jbHVkZSAiV2ViUHJvY2Vzcy5oIgogI2luY2x1ZGUgPFdl
YkNvcmUvRG9jdW1lbnRMb2FkZXIuaD4KLSNpbmNsdWRlIDxXZWJDb3JlL0Vycm9yc0d0ay5oPgog
I2luY2x1ZGUgPFdlYkNvcmUvRnJhbWUuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0ludFJlY3QuaD4K
ICNpbmNsdWRlIDxXZWJDb3JlL05vdEltcGxlbWVudGVkLmg+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>305092</attachid>
            <date>2017-03-22 03:00:48 -0700</date>
            <delta_ts>2017-03-22 03:25:13 -0700</delta_ts>
            <desc>Rebased patch</desc>
            <filename>wk2-web-errors.diff</filename>
            <type>text/plain</type>
            <size>66518</size>
            <attacher name="Carlos Garcia Campos">cgarcia</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCA5Y2Q0YzQyY2U3Yi4uY2QyOWI1YjE2ZGMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxNiBAQAorMjAxNy0wMy0xNSAgQ2FybG9zIEdhcmNpYSBDYW1wb3MgIDxjZ2FyY2lhQGln
YWxpYS5jb20+CisKKyAgICAgICAgTW92ZSBXZWJFcnJvcnMgZnJvbSBXZWJQcm9jZXNzIHRvIFNo
YXJlZCBhbmQgZ2V0IHJpZCBvZiBFcnJvcnNHdGsgaW4gV2ViQ29yZQorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTU2OTc0CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUmVtb3ZlIEVycm9yc0d0ay4KKworICAg
ICAgICAqIFBsYXRmb3JtR1RLLmNtYWtlOgorICAgICAgICAqIHBsYXRmb3JtL2d0ay9FcnJvcnNH
dGsuY3BwOiBSZW1vdmVkLgorICAgICAgICAqIHBsYXRmb3JtL2d0ay9FcnJvcnNHdGsuaDogUmVt
b3ZlZC4KKwogMjAxNy0wMy0yMiAgQ2FybG9zIEdhcmNpYSBDYW1wb3MgIDxjZ2FyY2lhQGlnYWxp
YS5jb20+CiAKICAgICAgICAgTWFrZSBpdCBwb3NzaWJsZSB0byB1c2UgV0VCX1VJX1NUUklORyBt
YWNyb3MgdG8gbWFyayB0cmFuc2xhdGFibGUgc3RyaW5ncyBpbiBnbGliIGJhc2VkIHBvcnRzCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9QbGF0Zm9ybUdUSy5jbWFrZSBiL1NvdXJjZS9XZWJD
b3JlL1BsYXRmb3JtR1RLLmNtYWtlCmluZGV4IDYyNTJlYjk3NDJmLi5kZjc2NTA5YzQwNyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvUGxhdGZvcm1HVEsuY21ha2UKKysrIGIvU291cmNlL1dl
YkNvcmUvUGxhdGZvcm1HVEsuY21ha2UKQEAgLTEzOCw3ICsxMzgsNiBAQCBsaXN0KEFQUEVORCBX
ZWJDb3JlX1NPVVJDRVMKICAgICBwbGF0Zm9ybS9ncmFwaGljcy94MTEvWFVuaXF1ZVJlc291cmNl
LmNwcAogCiAgICAgcGxhdGZvcm0vZ3RrL0RyYWdEYXRhR3RrLmNwcAotICAgIHBsYXRmb3JtL2d0
ay9FcnJvcnNHdGsuY3BwCiAgICAgcGxhdGZvcm0vZ3RrL0xvY2FsaXplZFN0cmluZ3NHdGsuY3Bw
CiAgICAgcGxhdGZvcm0vZ3RrL01JTUVUeXBlUmVnaXN0cnlHdGsuY3BwCiAgICAgcGxhdGZvcm0v
Z3RrL1Bhc3RlYm9hcmRHdGsuY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ndGsvRXJyb3JzR3RrLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9FcnJvcnNH
dGsuY3BwCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA4ZGZkMTU4YjNiNC4uMDAwMDAw
MDAwMDAKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL0Vycm9yc0d0ay5jcHAKKysr
IC9kZXYvbnVsbApAQCAtMSwxMDAgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMSBJ
Z2FsaWEgUy5MLgotICoKLSAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2Fu
IHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKLSAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2Yg
dGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCi0gKiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBi
eSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKLSAqIHZlcnNpb24gMiBvZiB0
aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KLSAqCi0g
KiBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJl
IHVzZWZ1bCwKLSAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBp
bXBsaWVkIHdhcnJhbnR5IG9mCi0gKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQotICogTGlicmFyeSBHZW5lcmFsIFB1Ymxp
YyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCi0gKgotICogWW91IHNob3VsZCBoYXZlIHJlY2Vp
dmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQotICog
YWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5v
dCwgd3JpdGUgdG8KLSAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDUxIEZy
YW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsCi0gKiBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVT
QS4KLSAqLwotCi0jaW5jbHVkZSAiY29uZmlnLmgiCi0jaW5jbHVkZSAiRXJyb3JzR3RrLmgiCi0K
LSNpbmNsdWRlICJSZXNvdXJjZUVycm9yLmgiCi0jaW5jbHVkZSAiUmVzb3VyY2VSZXF1ZXN0Lmgi
Ci0jaW5jbHVkZSAiUmVzb3VyY2VSZXNwb25zZS5oIgotI2luY2x1ZGUgPGdsaWIvZ2kxOG4tbGli
Lmg+Ci0KLW5hbWVzcGFjZSBXZWJDb3JlIHsKLQotUmVzb3VyY2VFcnJvciBjYW5jZWxsZWRFcnJv
cihjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QpCi17Ci0gICAgcmV0dXJuIFJlc291cmNl
RXJyb3IoZXJyb3JEb21haW5OZXR3b3JrLCBOZXR3b3JrRXJyb3JDYW5jZWxsZWQsIHJlcXVlc3Qu
dXJsKCksIF8oIkxvYWQgcmVxdWVzdCBjYW5jZWxsZWQiKSk7Ci19Ci0KLVJlc291cmNlRXJyb3Ig
YmxvY2tlZEVycm9yKGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCkKLXsKLSAgICByZXR1
cm4gUmVzb3VyY2VFcnJvcihlcnJvckRvbWFpblBvbGljeSwgUG9saWN5RXJyb3JDYW5ub3RVc2VS
ZXN0cmljdGVkUG9ydCwgcmVxdWVzdC51cmwoKSwgXygiTm90IGFsbG93ZWQgdG8gdXNlIHJlc3Ry
aWN0ZWQgbmV0d29yayBwb3J0IikpOwotfQotCi1SZXNvdXJjZUVycm9yIGJsb2NrZWRCeUNvbnRl
bnRCbG9ja2VyRXJyb3IoY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0KQotewotICAgIHJl
dHVybiBSZXNvdXJjZUVycm9yKGVycm9yRG9tYWluUG9saWN5LCBQb2xpY3lFcnJvckJsb2NrZWRC
eUNvbnRlbnRCbG9ja2VyLCByZXF1ZXN0LnVybCgpLCBfKCJCbG9ja2VkIGJ5IGNvbnRlbnQgYmxv
Y2tlciIpKTsKLX0KLQotUmVzb3VyY2VFcnJvciBjYW5ub3RTaG93VVJMRXJyb3IoY29uc3QgUmVz
b3VyY2VSZXF1ZXN0JiByZXF1ZXN0KQotewotICAgIHJldHVybiBSZXNvdXJjZUVycm9yKGVycm9y
RG9tYWluUG9saWN5LCBQb2xpY3lFcnJvckNhbm5vdFNob3dVUkwsIHJlcXVlc3QudXJsKCksIF8o
IlVSTCBjYW5ub3QgYmUgc2hvd24iKSk7Ci19Ci0KLVJlc291cmNlRXJyb3IgaW50ZXJydXB0ZWRG
b3JQb2xpY3lDaGFuZ2VFcnJvcihjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QpCi17Ci0g
ICAgcmV0dXJuIFJlc291cmNlRXJyb3IoZXJyb3JEb21haW5Qb2xpY3ksIFBvbGljeUVycm9yRnJh
bWVMb2FkSW50ZXJydXB0ZWRCeVBvbGljeUNoYW5nZSwgcmVxdWVzdC51cmwoKSwgXygiRnJhbWUg
bG9hZCB3YXMgaW50ZXJydXB0ZWQiKSk7Ci19Ci0KLVJlc291cmNlRXJyb3IgY2Fubm90U2hvd01J
TUVUeXBlRXJyb3IoY29uc3QgUmVzb3VyY2VSZXNwb25zZSYgcmVzcG9uc2UpCi17Ci0gICAgcmV0
dXJuIFJlc291cmNlRXJyb3IoZXJyb3JEb21haW5Qb2xpY3ksIFBvbGljeUVycm9yQ2Fubm90U2hv
d01pbWVUeXBlLCByZXNwb25zZS51cmwoKSwgXygiQ29udGVudCB3aXRoIHRoZSBzcGVjaWZpZWQg
TUlNRSB0eXBlIGNhbm5vdCBiZSBzaG93biIpKTsKLX0KLQotUmVzb3VyY2VFcnJvciBmaWxlRG9l
c05vdEV4aXN0RXJyb3IoY29uc3QgUmVzb3VyY2VSZXNwb25zZSYgcmVzcG9uc2UpCi17Ci0gICAg
cmV0dXJuIFJlc291cmNlRXJyb3IoZXJyb3JEb21haW5OZXR3b3JrLCBOZXR3b3JrRXJyb3JGaWxl
RG9lc05vdEV4aXN0LCByZXNwb25zZS51cmwoKSwgXygiRmlsZSBkb2VzIG5vdCBleGlzdCIpKTsK
LX0KLQotUmVzb3VyY2VFcnJvciBwbHVnaW5XaWxsSGFuZGxlTG9hZEVycm9yKGNvbnN0IFJlc291
cmNlUmVzcG9uc2UmIHJlc3BvbnNlKQotewotICAgIHJldHVybiBSZXNvdXJjZUVycm9yKGVycm9y
RG9tYWluUGx1Z2luLCBQbHVnaW5FcnJvcldpbGxIYW5kbGVMb2FkLCByZXNwb25zZS51cmwoKSwg
XygiUGx1Z2luIHdpbGwgaGFuZGxlIGxvYWQiKSk7Ci19Ci0KLVJlc291cmNlRXJyb3IgZG93bmxv
YWROZXR3b3JrRXJyb3IoY29uc3QgUmVzb3VyY2VFcnJvciYgbmV0d29ya0Vycm9yKQotewotICAg
IHJldHVybiBSZXNvdXJjZUVycm9yKGVycm9yRG9tYWluRG93bmxvYWQsIERvd25sb2FkRXJyb3JO
ZXR3b3JrLCBuZXR3b3JrRXJyb3IuZmFpbGluZ1VSTCgpLCBuZXR3b3JrRXJyb3IubG9jYWxpemVk
RGVzY3JpcHRpb24oKSk7Ci19Ci0KLVJlc291cmNlRXJyb3IgZG93bmxvYWRDYW5jZWxsZWRCeVVz
ZXJFcnJvcihjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiByZXNwb25zZSkKLXsKLSAgICByZXR1cm4g
UmVzb3VyY2VFcnJvcihlcnJvckRvbWFpbkRvd25sb2FkLCBEb3dubG9hZEVycm9yQ2FuY2VsbGVk
QnlVc2VyLCByZXNwb25zZS51cmwoKSwgXygiVXNlciBjYW5jZWxsZWQgdGhlIGRvd25sb2FkIikp
OwotfQotCi1SZXNvdXJjZUVycm9yIGRvd25sb2FkRGVzdGluYXRpb25FcnJvcihjb25zdCBSZXNv
dXJjZVJlc3BvbnNlJiByZXNwb25zZSwgY29uc3QgU3RyaW5nJiBlcnJvck1lc3NhZ2UpCi17Ci0g
ICAgcmV0dXJuIFJlc291cmNlRXJyb3IoZXJyb3JEb21haW5Eb3dubG9hZCwgRG93bmxvYWRFcnJv
ckRlc3RpbmF0aW9uLCByZXNwb25zZS51cmwoKSwgZXJyb3JNZXNzYWdlKTsKLX0KLQotUmVzb3Vy
Y2VFcnJvciBwcmludEVycm9yKGNvbnN0IFVSTCYgZmFpbGluZ1VSTCwgY29uc3QgU3RyaW5nJiBl
cnJvck1lc3NhZ2UpCi17Ci0gICAgcmV0dXJuIFJlc291cmNlRXJyb3IoZXJyb3JEb21haW5Qcmlu
dCwgUHJpbnRFcnJvckdlbmVyYWwsIGZhaWxpbmdVUkwsIGVycm9yTWVzc2FnZSk7Ci19Ci0KLVJl
c291cmNlRXJyb3IgcHJpbnRlck5vdEZvdW5kRXJyb3IoY29uc3QgVVJMJiBmYWlsaW5nVVJMKQot
ewotICAgIHJldHVybiBSZXNvdXJjZUVycm9yKGVycm9yRG9tYWluUHJpbnQsIFByaW50RXJyb3JQ
cmludGVyTm90Rm91bmQsIGZhaWxpbmdVUkwsIF8oIlByaW50ZXIgbm90IGZvdW5kIikpOwotfQot
Ci1SZXNvdXJjZUVycm9yIGludmFsaWRQYWdlUmFuZ2VUb1ByaW50KGNvbnN0IFVSTCYgZmFpbGlu
Z1VSTCkKLXsKLSAgICByZXR1cm4gUmVzb3VyY2VFcnJvcihlcnJvckRvbWFpblByaW50LCBQcmlu
dEVycm9ySW52YWxpZFBhZ2VSYW5nZSwgZmFpbGluZ1VSTCwgXygiSW52YWxpZCBwYWdlIHJhbmdl
IikpOwotfQotCi19IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ndGsvRXJyb3JzR3RrLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
dGsvRXJyb3JzR3RrLmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDc2MWRjY2IyNmVm
Li4wMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvRXJyb3JzR3Rr
LmgKKysrIC9kZXYvbnVsbApAQCAtMSw5NCArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAy
MDExIElnYWxpYSBTLkwuCi0gKgotICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlv
dSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgotICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJt
cyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKLSAqIExpY2Vuc2UgYXMgcHVibGlz
aGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgotICogdmVyc2lvbiAy
IG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgot
ICoKLSAqIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdp
bGwgYmUgdXNlZnVsLAotICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4g
dGhlIGltcGxpZWQgd2FycmFudHkgb2YKLSAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZP
UiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCi0gKiBMaWJyYXJ5IEdlbmVyYWwg
UHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KLSAqCi0gKiBZb3Ugc2hvdWxkIGhhdmUg
cmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNl
Ci0gKiBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJTkcuTElCLiAg
SWYgbm90LCB3cml0ZSB0bwotICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwg
NTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwKLSAqIEJvc3RvbiwgTUEgMDIxMTAtMTMw
MSwgVVNBLgotICovCi0KLSNpZm5kZWYgRXJyb3JzR3RrX2gKLSNkZWZpbmUgRXJyb3JzR3RrX2gK
LQotI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgotCi1uYW1lc3BhY2UgV2ViQ29yZSB7
Ci0KLWNsYXNzIFJlc291cmNlRXJyb3I7Ci1jbGFzcyBSZXNvdXJjZVJlcXVlc3Q7Ci1jbGFzcyBS
ZXNvdXJjZVJlc3BvbnNlOwotY2xhc3MgVVJMOwotCi1jb25zdCBjaGFyKiBjb25zdCBlcnJvckRv
bWFpbk5ldHdvcmsgPSAiV2ViS2l0TmV0d29ya0Vycm9yIjsKLWNvbnN0IGNoYXIqIGNvbnN0IGVy
cm9yRG9tYWluUG9saWN5ID0gIldlYktpdFBvbGljeUVycm9yIjsKLWNvbnN0IGNoYXIqIGNvbnN0
IGVycm9yRG9tYWluUGx1Z2luID0gIldlYktpdFBsdWdpbkVycm9yIjsKLWNvbnN0IGNoYXIqIGNv
bnN0IGVycm9yRG9tYWluRG93bmxvYWQgPSAiV2ViS2l0RG93bmxvYWRFcnJvciI7Ci1jb25zdCBj
aGFyKiBjb25zdCBlcnJvckRvbWFpblByaW50ID0gIldlYktpdFByaW50RXJyb3IiOwotCi1lbnVt
IE5ldHdvcmtFcnJvciB7Ci0gICAgTmV0d29ya0Vycm9yRmFpbGVkID0gMzk5LAotICAgIE5ldHdv
cmtFcnJvclRyYW5zcG9ydCA9IDMwMCwKLSAgICBOZXR3b3JrRXJyb3JVbmtub3duUHJvdG9jb2wg
PSAzMDEsCi0gICAgTmV0d29ya0Vycm9yQ2FuY2VsbGVkID0gMzAyLAotICAgIE5ldHdvcmtFcnJv
ckZpbGVEb2VzTm90RXhpc3QgPSAzMDMKLX07Ci0KLS8vIFN5bmMnZCB3aXRoIE1hYydzIFdlYktp
dCBFcnJvcnMuCi1lbnVtIFBvbGljeUVycm9yIHsKLSAgICBQb2xpY3lFcnJvckZhaWxlZCA9IDE5
OSwKLSAgICBQb2xpY3lFcnJvckNhbm5vdFNob3dNaW1lVHlwZSA9IDEwMCwKLSAgICBQb2xpY3lF
cnJvckNhbm5vdFNob3dVUkwgPSAxMDEsCi0gICAgUG9saWN5RXJyb3JGcmFtZUxvYWRJbnRlcnJ1
cHRlZEJ5UG9saWN5Q2hhbmdlID0gMTAyLAotICAgIFBvbGljeUVycm9yQ2Fubm90VXNlUmVzdHJp
Y3RlZFBvcnQgPSAxMDMsCi0gICAgUG9saWN5RXJyb3JCbG9ja2VkQnlDb250ZW50QmxvY2tlciA9
IDEwNCwKLX07Ci0KLWVudW0gUGx1Z2luRXJyb3IgewotICAgIFBsdWdpbkVycm9yRmFpbGVkID0g
Mjk5LAotICAgIFBsdWdpbkVycm9yQ2Fubm90RmluZFBsdWdpbiA9IDIwMCwKLSAgICBQbHVnaW5F
cnJvckNhbm5vdExvYWRQbHVnaW4gPSAyMDEsCi0gICAgUGx1Z2luRXJyb3JKYXZhVW5hdmFpbGFi
bGUgPSAyMDIsCi0gICAgUGx1Z2luRXJyb3JDb25uZWN0aW9uQ2FuY2VsbGVkID0gMjAzLAotICAg
IFBsdWdpbkVycm9yV2lsbEhhbmRsZUxvYWQgPSAyMDQKLX07Ci0KLWVudW0gRG93bmxvYWRFcnJv
ciB7Ci0gICAgRG93bmxvYWRFcnJvck5ldHdvcmsgPSA0OTksCi0gICAgRG93bmxvYWRFcnJvckNh
bmNlbGxlZEJ5VXNlciA9IDQwMCwKLSAgICBEb3dubG9hZEVycm9yRGVzdGluYXRpb24gPSA0MDEK
LX07Ci0KLWVudW0gUHJpbnRFcnJvciB7Ci0gICAgUHJpbnRFcnJvckdlbmVyYWwgPSA1OTksCi0g
ICAgUHJpbnRFcnJvclByaW50ZXJOb3RGb3VuZCA9IDUwMCwKLSAgICBQcmludEVycm9ySW52YWxp
ZFBhZ2VSYW5nZSA9IDUwMQotfTsKLQotUmVzb3VyY2VFcnJvciBjYW5jZWxsZWRFcnJvcihjb25z
dCBSZXNvdXJjZVJlcXVlc3QmKTsKLVJlc291cmNlRXJyb3IgYmxvY2tlZEVycm9yKGNvbnN0IFJl
c291cmNlUmVxdWVzdCYpOwotUmVzb3VyY2VFcnJvciBibG9ja2VkQnlDb250ZW50QmxvY2tlckVy
cm9yKGNvbnN0IFJlc291cmNlUmVxdWVzdCYpOwotUmVzb3VyY2VFcnJvciBjYW5ub3RTaG93VVJM
RXJyb3IoY29uc3QgUmVzb3VyY2VSZXF1ZXN0Jik7Ci1SZXNvdXJjZUVycm9yIGludGVycnVwdGVk
Rm9yUG9saWN5Q2hhbmdlRXJyb3IoY29uc3QgUmVzb3VyY2VSZXF1ZXN0Jik7Ci1SZXNvdXJjZUVy
cm9yIGNhbm5vdFNob3dNSU1FVHlwZUVycm9yKGNvbnN0IFJlc291cmNlUmVzcG9uc2UmKTsKLVJl
c291cmNlRXJyb3IgZmlsZURvZXNOb3RFeGlzdEVycm9yKGNvbnN0IFJlc291cmNlUmVzcG9uc2Um
KTsKLVJlc291cmNlRXJyb3IgcGx1Z2luV2lsbEhhbmRsZUxvYWRFcnJvcihjb25zdCBSZXNvdXJj
ZVJlc3BvbnNlJik7Ci1SZXNvdXJjZUVycm9yIGRvd25sb2FkTmV0d29ya0Vycm9yKGNvbnN0IFJl
c291cmNlRXJyb3ImKTsKLVJlc291cmNlRXJyb3IgZG93bmxvYWRDYW5jZWxsZWRCeVVzZXJFcnJv
cihjb25zdCBSZXNvdXJjZVJlc3BvbnNlJik7Ci1SZXNvdXJjZUVycm9yIGRvd25sb2FkRGVzdGlu
YXRpb25FcnJvcihjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiwgY29uc3QgU3RyaW5nJiBlcnJvck1l
c3NhZ2UpOwotUmVzb3VyY2VFcnJvciBwcmludEVycm9yKGNvbnN0IFVSTCYgZmFpbGluZ1VSTCwg
Y29uc3QgU3RyaW5nJiBlcnJvck1lc3NhZ2UpOwotUmVzb3VyY2VFcnJvciBwcmludGVyTm90Rm91
bmRFcnJvcihjb25zdCBVUkwmIGZhaWxpbmdVUkwpOwotUmVzb3VyY2VFcnJvciBpbnZhbGlkUGFn
ZVJhbmdlVG9QcmludChjb25zdCBVUkwmIGZhaWxpbmdVUkwpOwotCi19Ci0KLSNlbmRpZgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL3BvL0NoYW5nZUxvZyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9wby9DaGFuZ2VMb2cKaW5kZXggN2E5ZjUzZjg1ZjYuLjdi
ODM4Mjc4NjM3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvcG8vQ2hh
bmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9wby9DaGFuZ2VMb2cKQEAg
LTEsMyArMSwxMiBAQAorMjAxNy0wMy0xNSAgQ2FybG9zIEdhcmNpYSBDYW1wb3MgIDxjZ2FyY2lh
QGlnYWxpYS5jb20+CisKKyAgICAgICAgTW92ZSBXZWJFcnJvcnMgZnJvbSBXZWJQcm9jZXNzIHRv
IFNoYXJlZCBhbmQgZ2V0IHJpZCBvZiBFcnJvcnNHdGsgaW4gV2ViQ29yZQorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTU2OTc0CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBQT1RGSUxFUy5pbjogQWRkIG5l
dyBwYXRocyB3aXRoIHRyYW5zbGF0YWJsZSBzdHJpbmdzLgorCiAyMDE3LTAzLTIyICBDYXJsb3Mg
R2FyY2lhIENhbXBvcyAgPGNnYXJjaWFAaWdhbGlhLmNvbT4KIAogICAgICAgICBNYWtlIGl0IHBv
c3NpYmxlIHRvIHVzZSBXRUJfVUlfU1RSSU5HIG1hY3JvcyB0byBtYXJrIHRyYW5zbGF0YWJsZSBz
dHJpbmdzIGluIGdsaWIgYmFzZWQgcG9ydHMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2d0ay9wby9QT1RGSUxFUy5pbiBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9w
by9QT1RGSUxFUy5pbgppbmRleCA4NzEwMTIwMTQ4Yy4uNDRmOTA2N2MyY2QgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9wby9QT1RGSUxFUy5pbgorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ndGsvcG8vUE9URklMRVMuaW4KQEAgLTEsNyArMSwxMCBAQAogIyBM
aXN0IG9mIHNvdXJjZSBmaWxlcyB3aGljaCBjb250YWluIHRyYW5zbGF0YWJsZSBzdHJpbmdzLgot
RXJyb3JzR3RrLmNwcAogTG9jYWxpemVkU3RyaW5nc0d0ay5jcHAKIC4uL0xvY2FsaXplZFN0cmlu
Z3MuY3BwCisuLi8uLi8uLi9XZWJLaXQyL1NoYXJlZC9XZWJFcnJvcnMuY3BwCisuLi8uLi8uLi9X
ZWJLaXQyL1NoYXJlZC9nbGliL1dlYkVycm9yc0dsaWIuY3BwCisuLi8uLi8uLi9XZWJLaXQyL1No
YXJlZC9ndGsvV2ViRXJyb3JzR3RrLmNwcAorLi4vLi4vLi4vV2ViS2l0Mi9TaGFyZWQvc291cC9X
ZWJFcnJvcnNTb3VwLmNwcAogLi4vLi4vLi4vV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJL
aXRBdXRoZW50aWNhdGlvbkRpYWxvZy5jcHAKIC4uLy4uLy4uL1dlYktpdDIvVUlQcm9jZXNzL0FQ
SS9ndGsvV2ViS2l0RG93bmxvYWQuY3BwCiAuLi8uLi8uLi9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkv
Z3RrL1dlYktpdEZhdmljb25EYXRhYmFzZS5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQy
L0NNYWtlTGlzdHMudHh0IGIvU291cmNlL1dlYktpdDIvQ01ha2VMaXN0cy50eHQKaW5kZXggYjBj
ZGJkZDcwOGUuLjEyYjVlYjVhNjg3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9DTWFrZUxp
c3RzLnR4dAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9DTWFrZUxpc3RzLnR4dApAQCAtMTg4LDYgKzE4
OCw3IEBAIHNldChXZWJLaXQyX1NPVVJDRVMKICAgICBTaGFyZWQvV2ViQ29udGV4dE1lbnVJdGVt
LmNwcAogICAgIFNoYXJlZC9XZWJDb250ZXh0TWVudUl0ZW1EYXRhLmNwcAogICAgIFNoYXJlZC9X
ZWJDb3JlQXJndW1lbnRDb2RlcnMuY3BwCisgICAgU2hhcmVkL1dlYkVycm9ycy5jcHAKICAgICBT
aGFyZWQvV2ViRXZlbnQuY3BwCiAgICAgU2hhcmVkL1dlYkV2ZW50Q29udmVyc2lvbi5jcHAKICAg
ICBTaGFyZWQvV2ViR2VvbG9jYXRpb25Qb3NpdGlvbi5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwppbmRleCA1MDliNWZh
YWYwNC4uMmJjMmFkMzA5ZDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwor
KysgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKQEAgLTEsMyArMSw2NyBAQAorMjAxNy0wMy0x
NSAgQ2FybG9zIEdhcmNpYSBDYW1wb3MgIDxjZ2FyY2lhQGlnYWxpYS5jb20+CisKKyAgICAgICAg
TW92ZSBXZWJFcnJvcnMgZnJvbSBXZWJQcm9jZXNzIHRvIFNoYXJlZCBhbmQgZ2V0IHJpZCBvZiBF
cnJvcnNHdGsgaW4gV2ViQ29yZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MTU2OTc0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgV2ViRXJyb3JzIGFyZSBub3Qgb25seSB1c2VkIGJ5IHRoZSBmcmFtZSBsb2Fk
ZXIgY2xpZW50IGluIHRoZSB3ZWIgcHJvY2VzcywgYnV0IGFsc28gYnkgdGhlIG5ldHdvcmsgcHJv
Y2Vzcy4gU28sCisgICAgICAgIG1vdmUgdGhlbSB0byBTaGFyZWQgbWFrZSBtb3N0IG9mIHRoZSBp
bXBsZW1lbnRhdGlvbiBjcm9zcy1wbGF0Zm9ybS4KKworICAgICAgICAqIENNYWtlTGlzdHMudHh0
OiBBZGQgbmV3IGZpbGVzIHRvIGNvbXBpbGF0aW9uLgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNz
L3NvdXAvTmV0d29ya0RhdGFUYXNrU291cC5jcHA6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtE
YXRhVGFza1NvdXA6OmRvd25sb2FkKTogVXNlIFdlYkVycm9ycyBkaXJlY3RseSBpbnN0ZWFkIG9m
IHBsYXRmb3JtIG1ldGhvZHMgdGhhdCBhcmUgbm8gbG9uZ2VyIG5lZWRlZC4KKyAgICAgICAgKFdl
YktpdDo6TmV0d29ya0RhdGFUYXNrU291cDo6d3JpdGVEb3dubG9hZENhbGxiYWNrKTogRGl0dG8u
CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtEYXRhVGFza1NvdXA6OmRpZEZpbmlzaERvd25sb2Fk
KTogRGl0dG8uCisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtEYXRhVGFza1NvdXA6OmRpZEZhaWwp
OiBEaXR0by4KKyAgICAgICAgKiBQbGF0Zm9ybUdUSy5jbWFrZTogQWRkIG5ldyBmaWxlcyB0byBj
b21waWxhdGlvbiBhbmQgcmVtb3ZlIERvd25sb2FkU291cEVycm9yc0d0ay5jcHAKKyAgICAgICAg
KiBQbGF0Zm9ybU1hYy5jbWFrZToKKyAgICAgICAgKiBTaGFyZWQvQVBJL0FQSUVycm9yLmNwcDog
QWRkIGVycm9yIGRvbWFpbnMgdXNlZCBieSBnbGliIGJhc2VkIHBvcnRzLgorICAgICAgICAoQVBJ
OjpFcnJvcjo6d2ViS2l0TmV0d29ya0Vycm9yRG9tYWluKToKKyAgICAgICAgKEFQSTo6RXJyb3I6
OndlYktpdFBvbGljeUVycm9yRG9tYWluKToKKyAgICAgICAgKEFQSTo6RXJyb3I6OndlYktpdFBs
dWdpbkVycm9yRG9tYWluKToKKyAgICAgICAgKEFQSTo6RXJyb3I6OndlYktpdERvd25sb2FkRXJy
b3JEb21haW4pOgorICAgICAgICAoQVBJOjpFcnJvcjo6d2ViS2l0UHJpbnRFcnJvckRvbWFpbik6
CisgICAgICAgICogU2hhcmVkL0FQSS9BUElFcnJvci5oOgorICAgICAgICAqIFNoYXJlZC9Db2Nv
YS9XZWJFcnJvcnNDb2NvYS5tbTogQ29waWVkIGZyb20gU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9XZWJDb3JlU3VwcG9ydC9XZWJFcnJvcnMuaC4KKyAgICAgICAgKFdlYktpdDo6Y3JlYXRlTlNF
cnJvcik6CisgICAgICAgIChXZWJLaXQ6OmNhbmNlbGxlZEVycm9yKToKKyAgICAgICAgKFdlYktp
dDo6ZmlsZURvZXNOb3RFeGlzdEVycm9yKToKKyAgICAgICAgKiBTaGFyZWQvV2ViRXJyb3JzLmNw
cDogQ29waWVkIGZyb20gU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9n
dGsvV2ViRXJyb3JzR3RrLmNwcC4KKyAgICAgICAgKFdlYktpdDo6YmxvY2tlZEVycm9yKToKKyAg
ICAgICAgKFdlYktpdDo6YmxvY2tlZEJ5Q29udGVudEJsb2NrZXJFcnJvcik6CisgICAgICAgIChX
ZWJLaXQ6OmNhbm5vdFNob3dVUkxFcnJvcik6CisgICAgICAgIChXZWJLaXQ6OmludGVycnVwdGVk
Rm9yUG9saWN5Q2hhbmdlRXJyb3IpOgorICAgICAgICAoV2ViS2l0OjpibG9ja2VkQnlDb250ZW50
RmlsdGVyRXJyb3IpOgorICAgICAgICAoV2ViS2l0OjpjYW5ub3RTaG93TUlNRVR5cGVFcnJvcik6
CisgICAgICAgIChXZWJLaXQ6OnBsdWdpbldpbGxIYW5kbGVMb2FkRXJyb3IpOgorICAgICAgICAo
V2ViS2l0OjppbnRlcm5hbEVycm9yKToKKyAgICAgICAgKiBTaGFyZWQvV2ViRXJyb3JzLmg6IFJl
bmFtZWQgZnJvbSBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkVy
cm9ycy5oLgorICAgICAgICAqIFNoYXJlZC9nbGliL1dlYkVycm9yc0dsaWIuY3BwOiBSZW5hbWVk
IGZyb20gU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9ndGsvV2ViRXJy
b3JzR3RrLmNwcC4KKyAgICAgICAgKFdlYktpdDo6Y2FuY2VsbGVkRXJyb3IpOgorICAgICAgICAo
V2ViS2l0OjpmaWxlRG9lc05vdEV4aXN0RXJyb3IpOgorICAgICAgICAqIFNoYXJlZC9ndGsvV2Vi
RXJyb3JzR3RrLmNwcDogQ29waWVkIGZyb20gU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3Mv
RG93bmxvYWRzL2d0ay9Eb3dubG9hZFNvdXBFcnJvcnNHdGsuY3BwLgorICAgICAgICAoV2ViS2l0
OjpwcmludEVycm9yKToKKyAgICAgICAgKFdlYktpdDo6cHJpbnRlck5vdEZvdW5kRXJyb3IpOgor
ICAgICAgICAoV2ViS2l0OjppbnZhbGlkUGFnZVJhbmdlVG9QcmludCk6CisgICAgICAgICogU2hh
cmVkL3NvdXAvV2ViRXJyb3JzU291cC5jcHA6IFJlbmFtZWQgZnJvbSBTb3VyY2UvV2ViS2l0Mi9O
ZXR3b3JrUHJvY2Vzcy9Eb3dubG9hZHMvZ3RrL0Rvd25sb2FkU291cEVycm9yc0d0ay5jcHAuCisg
ICAgICAgIChXZWJLaXQ6OmRvd25sb2FkTmV0d29ya0Vycm9yKToKKyAgICAgICAgKFdlYktpdDo6
ZG93bmxvYWRDYW5jZWxsZWRCeVVzZXJFcnJvcik6CisgICAgICAgIChXZWJLaXQ6OmRvd25sb2Fk
RGVzdGluYXRpb25FcnJvcik6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0RG93
bmxvYWQuY3BwOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdEVycm9yLmNwcDoK
KyAgICAgICAgKHdlYmtpdF9uZXR3b3JrX2Vycm9yX3F1YXJrKToKKyAgICAgICAgKHdlYmtpdF9w
b2xpY3lfZXJyb3JfcXVhcmspOgorICAgICAgICAod2Via2l0X3BsdWdpbl9lcnJvcl9xdWFyayk6
CisgICAgICAgICh3ZWJraXRfZG93bmxvYWRfZXJyb3JfcXVhcmspOgorICAgICAgICAod2Via2l0
X3ByaW50X2Vycm9yX3F1YXJrKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRQ
cml2YXRlLmNwcDoKKyAgICAgICAgKHRvV2ViS2l0RXJyb3IpOgorICAgICAgICAodG9XZWJDb3Jl
RXJyb3IpOgorICAgICAgICAqIFdlYktpdDIueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAg
ICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L21hYy9XZWJFcnJvcnNNYWMubW06IFJl
bW92ZWQuCisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL2d0ay9XZWJQcmludE9wZXJhdGlv
bkd0ay5jcHA6CisKIDIwMTctMDMtMTkgIFdlbnNvbiBIc2llaCAgPHdlbnNvbl9oc2llaEBhcHBs
ZS5jb20+CiAKICAgICAgICAgVGVhY2ggVGV4dEluZGljYXRvciB0byBlc3RpbWF0ZSB0aGUgYmFj
a2dyb3VuZCBjb2xvciBvZiB0aGUgZ2l2ZW4gUmFuZ2UKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQyL05ldHdvcmtQcm9jZXNzL3NvdXAvTmV0d29ya0RhdGFUYXNrU291cC5jcHAgYi9Tb3VyY2Uv
V2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9zb3VwL05ldHdvcmtEYXRhVGFza1NvdXAuY3BwCmluZGV4
IDQxZDkyNmVhOTdiLi40ZWU5YTg4Y2IyOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvTmV0
d29ya1Byb2Nlc3Mvc291cC9OZXR3b3JrRGF0YVRhc2tTb3VwLmNwcAorKysgYi9Tb3VyY2UvV2Vi
S2l0Mi9OZXR3b3JrUHJvY2Vzcy9zb3VwL05ldHdvcmtEYXRhVGFza1NvdXAuY3BwCkBAIC04NjUs
NyArODY1LDcgQEAgdm9pZCBOZXR3b3JrRGF0YVRhc2tTb3VwOjpkb3dubG9hZCgpCiAgICAgQVNT
RVJUKCFtX3Jlc3BvbnNlLmlzTnVsbCgpKTsKIAogICAgIGlmIChtX3Jlc3BvbnNlLmh0dHBTdGF0
dXNDb2RlKCkgPj0gNDAwKSB7Ci0gICAgICAgIGRpZEZhaWxEb3dubG9hZChwbGF0Zm9ybURvd25s
b2FkTmV0d29ya0Vycm9yKG1fcmVzcG9uc2UuaHR0cFN0YXR1c0NvZGUoKSwgbV9yZXNwb25zZS51
cmwoKSwgbV9yZXNwb25zZS5odHRwU3RhdHVzVGV4dCgpKSk7CisgICAgICAgIGRpZEZhaWxEb3du
bG9hZChkb3dubG9hZE5ldHdvcmtFcnJvcihtX3Jlc3BvbnNlLnVybCgpLCBtX3Jlc3BvbnNlLmh0
dHBTdGF0dXNUZXh0KCkpKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIApAQCAtODgwLDcgKzg4
MCw3IEBAIHZvaWQgTmV0d29ya0RhdGFUYXNrU291cDo6ZG93bmxvYWQoKQogICAgIGVsc2UKICAg
ICAgICAgb3V0cHV0U3RyZWFtID0gYWRvcHRHUmVmKGdfZmlsZV9jcmVhdGUobV9kb3dubG9hZERl
c3RpbmF0aW9uRmlsZS5nZXQoKSwgR19GSUxFX0NSRUFURV9OT05FLCBudWxscHRyLCAmZXJyb3Iu
b3V0UHRyKCkpKTsKICAgICBpZiAoIW91dHB1dFN0cmVhbSkgewotICAgICAgICBkaWRGYWlsRG93
bmxvYWQocGxhdGZvcm1Eb3dubG9hZERlc3RpbmF0aW9uRXJyb3IobV9yZXNwb25zZSwgZXJyb3It
Pm1lc3NhZ2UpKTsKKyAgICAgICAgZGlkRmFpbERvd25sb2FkKGRvd25sb2FkRGVzdGluYXRpb25F
cnJvcihtX3Jlc3BvbnNlLCBlcnJvci0+bWVzc2FnZSkpOwogICAgICAgICByZXR1cm47CiAgICAg
fQogCkBAIC04ODksNyArODg5LDcgQEAgdm9pZCBOZXR3b3JrRGF0YVRhc2tTb3VwOjpkb3dubG9h
ZCgpCiAgICAgbV9kb3dubG9hZEludGVybWVkaWF0ZUZpbGUgPSBhZG9wdEdSZWYoZ19maWxlX25l
d19mb3JfdXJpKGludGVybWVkaWF0ZVVSSS5nZXQoKSkpOwogICAgIG91dHB1dFN0cmVhbSA9IGFk
b3B0R1JlZihnX2ZpbGVfcmVwbGFjZShtX2Rvd25sb2FkSW50ZXJtZWRpYXRlRmlsZS5nZXQoKSwg
MCwgVFJVRSwgR19GSUxFX0NSRUFURV9OT05FLCAwLCAmZXJyb3Iub3V0UHRyKCkpKTsKICAgICBp
ZiAoIW91dHB1dFN0cmVhbSkgewotICAgICAgICBkaWRGYWlsRG93bmxvYWQocGxhdGZvcm1Eb3du
bG9hZERlc3RpbmF0aW9uRXJyb3IobV9yZXNwb25zZSwgZXJyb3ItPm1lc3NhZ2UpKTsKKyAgICAg
ICAgZGlkRmFpbERvd25sb2FkKGRvd25sb2FkRGVzdGluYXRpb25FcnJvcihtX3Jlc3BvbnNlLCBl
cnJvci0+bWVzc2FnZSkpOwogICAgICAgICByZXR1cm47CiAgICAgfQogICAgIG1fZG93bmxvYWRP
dXRwdXRTdHJlYW0gPSBhZG9wdEdSZWYoR19PVVRQVVRfU1RSRUFNKG91dHB1dFN0cmVhbS5sZWFr
UmVmKCkpKTsKQEAgLTkyMyw3ICs5MjMsNyBAQCB2b2lkIE5ldHdvcmtEYXRhVGFza1NvdXA6Ondy
aXRlRG93bmxvYWRDYWxsYmFjayhHT3V0cHV0U3RyZWFtKiBvdXRwdXRTdHJlYW0sIEdBcwogICAg
ICAgICBieXRlc1dyaXR0ZW4gPSB3cml0ZVRhc2tSZXN1bHQ7CiAjZW5kaWYKICAgICBpZiAoZXJy
b3IpCi0gICAgICAgIHRhc2stPmRpZEZhaWxEb3dubG9hZChwbGF0Zm9ybURvd25sb2FkRGVzdGlu
YXRpb25FcnJvcih0YXNrLT5tX3Jlc3BvbnNlLCBlcnJvci0+bWVzc2FnZSkpOworICAgICAgICB0
YXNrLT5kaWRGYWlsRG93bmxvYWQoZG93bmxvYWREZXN0aW5hdGlvbkVycm9yKHRhc2stPm1fcmVz
cG9uc2UsIGVycm9yLT5tZXNzYWdlKSk7CiAgICAgZWxzZQogICAgICAgICB0YXNrLT5kaWRXcml0
ZURvd25sb2FkKGJ5dGVzV3JpdHRlbik7CiB9CkBAIC05NzgsNyArOTc4LDcgQEAgdm9pZCBOZXR3
b3JrRGF0YVRhc2tTb3VwOjpkaWRGaW5pc2hEb3dubG9hZCgpCiAgICAgQVNTRVJUKG1fZG93bmxv
YWRJbnRlcm1lZGlhdGVGaWxlKTsKICAgICBHVW5pcXVlT3V0UHRyPEdFcnJvcj4gZXJyb3I7CiAg
ICAgaWYgKCFnX2ZpbGVfbW92ZShtX2Rvd25sb2FkSW50ZXJtZWRpYXRlRmlsZS5nZXQoKSwgbV9k
b3dubG9hZERlc3RpbmF0aW9uRmlsZS5nZXQoKSwgR19GSUxFX0NPUFlfT1ZFUldSSVRFLCBtX2Nh
bmNlbGxhYmxlLmdldCgpLCBudWxscHRyLCBudWxscHRyLCAmZXJyb3Iub3V0UHRyKCkpKSB7Ci0g
ICAgICAgIGRpZEZhaWxEb3dubG9hZChwbGF0Zm9ybURvd25sb2FkRGVzdGluYXRpb25FcnJvciht
X3Jlc3BvbnNlLCBlcnJvci0+bWVzc2FnZSkpOworICAgICAgICBkaWRGYWlsRG93bmxvYWQoZG93
bmxvYWREZXN0aW5hdGlvbkVycm9yKG1fcmVzcG9uc2UsIGVycm9yLT5tZXNzYWdlKSk7CiAgICAg
ICAgIHJldHVybjsKICAgICB9CiAKQEAgLTEwMjIsNyArMTAyMiw3IEBAIHZvaWQgTmV0d29ya0Rh
dGFUYXNrU291cDo6Y2xlYW5Eb3dubG9hZEZpbGVzKCkKIHZvaWQgTmV0d29ya0RhdGFUYXNrU291
cDo6ZGlkRmFpbChjb25zdCBSZXNvdXJjZUVycm9yJiBlcnJvcikKIHsKICAgICBpZiAoaXNEb3du
bG9hZCgpKSB7Ci0gICAgICAgIGRpZEZhaWxEb3dubG9hZChwbGF0Zm9ybURvd25sb2FkTmV0d29y
a0Vycm9yKGVycm9yLmVycm9yQ29kZSgpLCBlcnJvci5mYWlsaW5nVVJMKCksIGVycm9yLmxvY2Fs
aXplZERlc2NyaXB0aW9uKCkpKTsKKyAgICAgICAgZGlkRmFpbERvd25sb2FkKGRvd25sb2FkTmV0
d29ya0Vycm9yKGVycm9yLmZhaWxpbmdVUkwoKSwgZXJyb3IubG9jYWxpemVkRGVzY3JpcHRpb24o
KSkpOwogICAgICAgICByZXR1cm47CiAgICAgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
Mi9QbGF0Zm9ybUdUSy5jbWFrZSBiL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtR1RLLmNtYWtlCmlu
ZGV4IGMyOWE5ZjM0N2FmLi40YWEyMDZhMDNhOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIv
UGxhdGZvcm1HVEsuY21ha2UKKysrIGIvU291cmNlL1dlYktpdDIvUGxhdGZvcm1HVEsuY21ha2UK
QEAgLTMwLDggKzMwLDYgQEAgbGlzdChBUFBFTkQgV2ViS2l0Ml9TT1VSQ0VTCiAKICAgICBOZXR3
b3JrUHJvY2Vzcy9DdXN0b21Qcm90b2NvbHMvc291cC9MZWdhY3lDdXN0b21Qcm90b2NvbE1hbmFn
ZXJTb3VwLmNwcAogCi0gICAgTmV0d29ya1Byb2Nlc3MvRG93bmxvYWRzL2d0ay9Eb3dubG9hZFNv
dXBFcnJvcnNHdGsuY3BwCi0KICAgICBOZXR3b3JrUHJvY2Vzcy9jYWNoZS9OZXR3b3JrQ2FjaGVD
b2RlcnNTb3VwLmNwcAogICAgIE5ldHdvcmtQcm9jZXNzL2NhY2hlL05ldHdvcmtDYWNoZURhdGFT
b3VwLmNwcAogICAgIE5ldHdvcmtQcm9jZXNzL2NhY2hlL05ldHdvcmtDYWNoZUlPQ2hhbm5lbFNv
dXAuY3BwCkBAIC03NSw2ICs3Myw4IEBAIGxpc3QoQVBQRU5EIFdlYktpdDJfU09VUkNFUwogCiAg
ICAgU2hhcmVkL2NhaXJvL1NoYXJlYWJsZUJpdG1hcENhaXJvLmNwcAogCisgICAgU2hhcmVkL2ds
aWIvV2ViRXJyb3JzR2xpYi5jcHAKKwogICAgIFNoYXJlZC9ndGsvQXJndW1lbnRDb2RlcnNHdGsu
Y3BwCiAgICAgU2hhcmVkL2d0ay9OYXRpdmVXZWJLZXlib2FyZEV2ZW50R3RrLmNwcAogICAgIFNo
YXJlZC9ndGsvTmF0aXZlV2ViTW91c2VFdmVudEd0ay5jcHAKQEAgLTgzLDEyICs4MywxNCBAQCBs
aXN0KEFQUEVORCBXZWJLaXQyX1NPVVJDRVMKICAgICBTaGFyZWQvZ3RrL1ByaW50SW5mb0d0ay5j
cHAKICAgICBTaGFyZWQvZ3RrL1Byb2Nlc3NFeGVjdXRhYmxlUGF0aEd0ay5jcHAKICAgICBTaGFy
ZWQvZ3RrL1dlYkNvbnRleHRNZW51SXRlbUd0ay5jcHAKKyAgICBTaGFyZWQvZ3RrL1dlYkVycm9y
c0d0ay5jcHAKICAgICBTaGFyZWQvZ3RrL1dlYkV2ZW50RmFjdG9yeS5jcHAKICAgICBTaGFyZWQv
Z3RrL1dlYlNlbGVjdGlvbkRhdGEuY3BwCiAKICAgICBTaGFyZWQvbGludXgvV2ViTWVtb3J5U2Ft
cGxlckxpbnV4LmNwcAogCiAgICAgU2hhcmVkL3NvdXAvV2ViQ29yZUFyZ3VtZW50Q29kZXJzU291
cC5jcHAKKyAgICBTaGFyZWQvc291cC9XZWJFcnJvcnNTb3VwLmNwcAogCiAgICAgU2hhcmVkL3Vu
aXgvQ2hpbGRQcm9jZXNzTWFpbi5jcHAKIApAQCAtNDc1LDcgKzQ3Nyw2IEBAIGxpc3QoQVBQRU5E
IFdlYktpdDJfU09VUkNFUwogICAgIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvZ3RrL1dlYkNv
bnRleHRNZW51Q2xpZW50R3RrLmNwcAogICAgIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvZ3Rr
L1dlYkRyYWdDbGllbnRHdGsuY3BwCiAgICAgV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9ndGsv
V2ViRWRpdG9yQ2xpZW50R3RrLmNwcAotICAgIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvZ3Rr
L1dlYkVycm9yc0d0ay5jcHAKICAgICBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L2d0ay9XZWJQ
b3B1cE1lbnVHdGsuY3BwCiAKICAgICBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L3NvdXAvV2Vi
RnJhbWVOZXR3b3JraW5nQ29udGV4dC5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1Bs
YXRmb3JtTWFjLmNtYWtlIGIvU291cmNlL1dlYktpdDIvUGxhdGZvcm1NYWMuY21ha2UKaW5kZXgg
OTI1ZjQwODBiMjcuLmNhOGE3NDliZWJhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9QbGF0
Zm9ybU1hYy5jbWFrZQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybU1hYy5jbWFrZQpAQCAt
MTE2LDYgKzExNiw3IEBAIGxpc3QoQVBQRU5EIFdlYktpdDJfU09VUkNFUwogICAgIFNoYXJlZC9D
b2NvYS9XS05TVVJMRXh0cmFzLm1tCiAgICAgU2hhcmVkL0NvY29hL1dLTlNVUkxSZXF1ZXN0Lm1t
CiAgICAgU2hhcmVkL0NvY29hL1dLT2JqZWN0Lm1tCisgICAgU2hhcmVkL0NvY29hL1dlYkVycm9y
c0NvY29hLm1tCiAKICAgICBTaGFyZWQvUGx1Z2lucy9OZXRzY2FwZS9tYWMvTmV0c2NhcGVQbHVn
aW5Nb2R1bGVNYWMubW0KICAgICBTaGFyZWQvUGx1Z2lucy9OZXRzY2FwZS9tYWMvUGx1Z2luSW5m
b3JtYXRpb25NYWMubW0KQEAgLTM1NSw3ICszNTYsNiBAQCBsaXN0KEFQUEVORCBXZWJLaXQyX1NP
VVJDRVMKICAgICBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L21hYy9XZWJDb250ZXh0TWVudUNs
aWVudE1hYy5tbQogICAgIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvbWFjL1dlYkRyYWdDbGll
bnRNYWMubW0KICAgICBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L21hYy9XZWJFZGl0b3JDbGll
bnRNYWMubW0KLSAgICBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L21hYy9XZWJFcnJvcnNNYWMu
bW0KICAgICBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L21hYy9XZWJGcmFtZU5ldHdvcmtpbmdD
b250ZXh0Lm1tCiAgICAgV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9tYWMvV2ViUG9wdXBNZW51
TWFjLm1tCiAgICAgV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9tYWMvV2ViU3lzdGVtSW50ZXJm
YWNlLm1tCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQVBJL0FQSUVycm9yLmNw
cCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9BUEkvQVBJRXJyb3IuY3BwCmluZGV4IDgzOWZiMGYx
NDhjLi5iNzNjMjEyOWQ0ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVkL0FQSS9B
UElFcnJvci5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL0FQSS9BUElFcnJvci5jcHAK
QEAgLTM4LDYgKzM4LDUyIEBAIGNvbnN0IFdURjo6U3RyaW5nJiBFcnJvcjo6d2ViS2l0RXJyb3JE
b21haW4oKQogICAgIHJldHVybiB3ZWJLaXRFcnJvckRvbWFpblN0cmluZzsKIH0KIAorY29uc3Qg
V1RGOjpTdHJpbmcmIEVycm9yOjp3ZWJLaXROZXR3b3JrRXJyb3JEb21haW4oKQoreworI2lmIFVT
RShHTElCKQorICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxXVEY6OlN0cmluZz4gd2ViS2l0RXJy
b3JEb21haW5TdHJpbmcoQVNDSUlMaXRlcmFsKCJXZWJLaXROZXR3b3JrRXJyb3IiKSk7CisgICAg
cmV0dXJuIHdlYktpdEVycm9yRG9tYWluU3RyaW5nOworI2Vsc2UKKyAgICByZXR1cm4gd2ViS2l0
RXJyb3JEb21haW4oKTsKKyNlbmRpZgorfQorCitjb25zdCBXVEY6OlN0cmluZyYgRXJyb3I6Ondl
YktpdFBvbGljeUVycm9yRG9tYWluKCkKK3sKKyNpZiBVU0UoR0xJQikKKyAgICBzdGF0aWMgTmV2
ZXJEZXN0cm95ZWQ8V1RGOjpTdHJpbmc+IHdlYktpdEVycm9yRG9tYWluU3RyaW5nKEFTQ0lJTGl0
ZXJhbCgiV2ViS2l0UG9saWN5RXJyb3IiKSk7CisgICAgcmV0dXJuIHdlYktpdEVycm9yRG9tYWlu
U3RyaW5nOworI2Vsc2UKKyAgICByZXR1cm4gd2ViS2l0RXJyb3JEb21haW4oKTsKKyNlbmRpZgor
fQorCitjb25zdCBXVEY6OlN0cmluZyYgRXJyb3I6OndlYktpdFBsdWdpbkVycm9yRG9tYWluKCkK
K3sKKyNpZiBVU0UoR0xJQikKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8V1RGOjpTdHJpbmc+
IHdlYktpdEVycm9yRG9tYWluU3RyaW5nKEFTQ0lJTGl0ZXJhbCgiV2ViS2l0UGx1Z2luRXJyb3Ii
KSk7CisgICAgcmV0dXJuIHdlYktpdEVycm9yRG9tYWluU3RyaW5nOworI2Vsc2UKKyAgICByZXR1
cm4gd2ViS2l0RXJyb3JEb21haW4oKTsKKyNlbmRpZgorfQorCisjaWYgVVNFKFNPVVApCitjb25z
dCBXVEY6OlN0cmluZyYgRXJyb3I6OndlYktpdERvd25sb2FkRXJyb3JEb21haW4oKQoreworICAg
IHN0YXRpYyBOZXZlckRlc3Ryb3llZDxXVEY6OlN0cmluZz4gd2ViS2l0RXJyb3JEb21haW5TdHJp
bmcoQVNDSUlMaXRlcmFsKCJXZWJLaXREb3dubG9hZEVycm9yIikpOworICAgIHJldHVybiB3ZWJL
aXRFcnJvckRvbWFpblN0cmluZzsKK30KKyNlbmRpZgorCisjaWYgUExBVEZPUk0oR1RLKQorY29u
c3QgV1RGOjpTdHJpbmcmIEVycm9yOjp3ZWJLaXRQcmludEVycm9yRG9tYWluKCkKK3sKKyAgICBz
dGF0aWMgTmV2ZXJEZXN0cm95ZWQ8V1RGOjpTdHJpbmc+IHdlYktpdEVycm9yRG9tYWluU3RyaW5n
KEFTQ0lJTGl0ZXJhbCgiV2ViS2l0UHJpbnRFcnJvciIpKTsKKyAgICByZXR1cm4gd2ViS2l0RXJy
b3JEb21haW5TdHJpbmc7Cit9CisjZW5kaWYKKwogdm9pZCBFcnJvcjo6ZW5jb2RlKElQQzo6RW5j
b2RlciYgZW5jb2RlcikgY29uc3QKIHsKICAgICBlbmNvZGVyIDw8IHBsYXRmb3JtRXJyb3IoKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9BUEkvQVBJRXJyb3IuaCBiL1NvdXJj
ZS9XZWJLaXQyL1NoYXJlZC9BUEkvQVBJRXJyb3IuaAppbmRleCA4YzM2MDI3ZGZjMi4uMGExZTQw
NjkyOWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9BUEkvQVBJRXJyb3IuaAor
KysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQVBJL0FQSUVycm9yLmgKQEAgLTQ5LDYgKzQ5LDE5
IEBAIHB1YmxpYzoKICAgICB9CiAKICAgICBzdGF0aWMgY29uc3QgV1RGOjpTdHJpbmcmIHdlYktp
dEVycm9yRG9tYWluKCk7CisgICAgZW51bSBOZXR3b3JrIHsgQ2FuY2VsbGVkID0gMzAyLCBGaWxl
RG9lc05vdEV4aXN0ID0gMzAzIH07CisgICAgc3RhdGljIGNvbnN0IFdURjo6U3RyaW5nJiB3ZWJL
aXROZXR3b3JrRXJyb3JEb21haW4oKTsKKyAgICBzdGF0aWMgY29uc3QgV1RGOjpTdHJpbmcmIHdl
YktpdFBvbGljeUVycm9yRG9tYWluKCk7CisgICAgc3RhdGljIGNvbnN0IFdURjo6U3RyaW5nJiB3
ZWJLaXRQbHVnaW5FcnJvckRvbWFpbigpOworI2lmIFVTRShTT1VQKQorICAgIGVudW0gRG93bmxv
YWQgeyBOZXR3b3JrID0gNDk5LCBDYW5jZWxsZWRCeVVzZXIgPSA0MDAsIERlc3RpbmF0aW9uID0g
NDAxIH07CisgICAgc3RhdGljIGNvbnN0IFdURjo6U3RyaW5nJiB3ZWJLaXREb3dubG9hZEVycm9y
RG9tYWluKCk7CisjZW5kaWYKKyNpZiBQTEFURk9STShHVEspCisgICAgZW51bSBQcmludCB7IEdl
bmVyYWwgPSA1OTksIFByaW50ZXJOb3RGb3VuZCA9IDUwMCwgSW52YWxpZFBhZ2VSYW5nZSA9IDUw
MSB9OworICAgIHN0YXRpYyBjb25zdCBXVEY6OlN0cmluZyYgd2ViS2l0UHJpbnRFcnJvckRvbWFp
bigpOworI2VuZGlmCisKIAogICAgIGNvbnN0IFdURjo6U3RyaW5nJiBkb21haW4oKSBjb25zdCB7
IHJldHVybiBtX3BsYXRmb3JtRXJyb3IuZG9tYWluKCk7IH0KICAgICBpbnQgZXJyb3JDb2RlKCkg
Y29uc3QgeyByZXR1cm4gbV9wbGF0Zm9ybUVycm9yLmVycm9yQ29kZSgpOyB9CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQ29jb2EvV2ViRXJyb3JzQ29jb2EubW0gYi9Tb3VyY2Uv
V2ViS2l0Mi9TaGFyZWQvQ29jb2EvV2ViRXJyb3JzQ29jb2EubW0KbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAuLjViZmU4YmNkY2Q0Ci0tLSAvZGV2L251bGwKKysrIGIvU291
cmNlL1dlYktpdDIvU2hhcmVkL0NvY29hL1dlYkVycm9yc0NvY29hLm1tCkBAIC0wLDAgKzEsNjAg
QEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAtMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6Cisg
KiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUK
KyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBB
UFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
CisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVO
VCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IK
KyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisg
KiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgorICovCisKKyNpbXBvcnQgImNvbmZpZy5oIgorI2ltcG9ydCAiV2ViRXJy
b3JzLmgiCisKKyNpbXBvcnQgIkFQSUVycm9yLmgiCisjaW1wb3J0ICJXS0Vycm9yUmVmLmgiCisj
aW1wb3J0IDxXZWJDb3JlL0xvY2FsaXplZFN0cmluZ3MuaD4KKyNpbXBvcnQgPFdlYkNvcmUvUmVz
b3VyY2VSZXF1ZXN0Lmg+CisjaW1wb3J0IDxXZWJDb3JlL1Jlc291cmNlUmVzcG9uc2UuaD4KKwor
dXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7Cit1c2luZyBuYW1lc3BhY2UgV2ViS2l0OworCituYW1l
c3BhY2UgV2ViS2l0IHsKKworc3RhdGljIFJldGFpblB0cjxOU0Vycm9yPiBjcmVhdGVOU0Vycm9y
KE5TU3RyaW5nKiBkb21haW4sIGludCBjb2RlLCBOU1VSTCAqVVJMKQoreworICAgIE5TRGljdGlv
bmFyeSAqdXNlckluZm8gPSBbTlNEaWN0aW9uYXJ5IGRpY3Rpb25hcnlXaXRoT2JqZWN0c0FuZEtl
eXM6CisgICAgICAgIFVSTCwgQCJOU0Vycm9yRmFpbGluZ1VSTEtleSIsCisgICAgICAgIFtVUkwg
YWJzb2x1dGVTdHJpbmddLCBAIk5TRXJyb3JGYWlsaW5nVVJMU3RyaW5nS2V5IiwKKyAgICAgICAg
bmlsXTsKKworICAgIHJldHVybiBhZG9wdE5TKFtbTlNFcnJvciBhbGxvY10gaW5pdFdpdGhEb21h
aW46ZG9tYWluIGNvZGU6Y29kZSB1c2VySW5mbzp1c2VySW5mb10pOworfQorCitSZXNvdXJjZUVy
cm9yIGNhbmNlbGxlZEVycm9yKGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCkKK3sKKyAg
ICByZXR1cm4gUmVzb3VyY2VFcnJvcihjcmVhdGVOU0Vycm9yKE5TVVJMRXJyb3JEb21haW4sIE5T
VVJMRXJyb3JDYW5jZWxsZWQsIHJlcXVlc3QudXJsKCkpLmdldCgpKTsKK30KKworUmVzb3VyY2VF
cnJvciBmaWxlRG9lc05vdEV4aXN0RXJyb3IoY29uc3QgUmVzb3VyY2VSZXNwb25zZSYgcmVzcG9u
c2UpCit7CisgICAgcmV0dXJuIFJlc291cmNlRXJyb3IoY3JlYXRlTlNFcnJvcihOU1VSTEVycm9y
RG9tYWluLCBOU1VSTEVycm9yRmlsZURvZXNOb3RFeGlzdCwgcmVzcG9uc2UudXJsKCkpLmdldCgp
KTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
Mi9TaGFyZWQvV2ViRXJyb3JzLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJFcnJvcnMu
Y3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi44ZWVkMjk2MGM2NQot
LS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJFcnJvcnMuY3BwCkBA
IC0wLDAgKzEsODEgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAtMjAxNiBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAq
IGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICog
QU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVE
LiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJF
IExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVY
RU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJ
Q0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVS
UlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBX
SEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVE
SU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBP
RiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNp
bmNsdWRlICJXZWJFcnJvcnMuaCIKKworI2luY2x1ZGUgIkFQSUVycm9yLmgiCisjaW5jbHVkZSAi
V0tFcnJvclJlZi5oIgorI2luY2x1ZGUgPFdlYkNvcmUvTG9jYWxpemVkU3RyaW5ncy5oPgorI2lu
Y2x1ZGUgPFdlYkNvcmUvUmVzb3VyY2VSZXF1ZXN0Lmg+CisjaW5jbHVkZSA8V2ViQ29yZS9SZXNv
dXJjZVJlc3BvbnNlLmg+CisKK3VzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOworCituYW1lc3BhY2Ug
V2ViS2l0IHsKKworUmVzb3VyY2VFcnJvciBibG9ja2VkRXJyb3IoY29uc3QgUmVzb3VyY2VSZXF1
ZXN0JiByZXF1ZXN0KQoreworICAgIHJldHVybiBSZXNvdXJjZUVycm9yKEFQSTo6RXJyb3I6Ondl
YktpdFBvbGljeUVycm9yRG9tYWluKCksIGtXS0Vycm9yQ29kZUNhbm5vdFVzZVJlc3RyaWN0ZWRQ
b3J0LCByZXF1ZXN0LnVybCgpLCBXRUJfVUlfU1RSSU5HKCJOb3QgYWxsb3dlZCB0byB1c2UgcmVz
dHJpY3RlZCBuZXR3b3JrIHBvcnQiLCAiV2ViS2l0RXJyb3JDYW5ub3RVc2VSZXN0cmljdGVkUG9y
dCBkZXNjcmlwdGlvbiIpKTsKK30KKworUmVzb3VyY2VFcnJvciBibG9ja2VkQnlDb250ZW50Qmxv
Y2tlckVycm9yKGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCkKK3sKKyAgICByZXR1cm4g
UmVzb3VyY2VFcnJvcihBUEk6OkVycm9yOjp3ZWJLaXRQb2xpY3lFcnJvckRvbWFpbigpLCBrV0tF
cnJvckNvZGVGcmFtZUxvYWRCbG9ja2VkQnlDb250ZW50QmxvY2tlciwgcmVxdWVzdC51cmwoKSwg
V0VCX1VJX1NUUklORygiVGhlIFVSTCB3YXMgYmxvY2tlZCBieSBhIGNvbnRlbnQgYmxvY2tlciIs
ICJXZWJLaXRFcnJvckJsb2NrZWRCeUNvbnRlbnRCbG9ja2VyIGRlc2NyaXB0aW9uIikpOworfQor
CitSZXNvdXJjZUVycm9yIGNhbm5vdFNob3dVUkxFcnJvcihjb25zdCBSZXNvdXJjZVJlcXVlc3Qm
IHJlcXVlc3QpCit7CisgICAgcmV0dXJuIFJlc291cmNlRXJyb3IoQVBJOjpFcnJvcjo6d2ViS2l0
UG9saWN5RXJyb3JEb21haW4oKSwga1dLRXJyb3JDb2RlQ2Fubm90U2hvd1VSTCwgcmVxdWVzdC51
cmwoKSwgV0VCX1VJX1NUUklORygiVGhlIFVSTCBjYW7igJl0IGJlIHNob3duIiwgIldlYktpdEVy
cm9yQ2Fubm90U2hvd1VSTCBkZXNjcmlwdGlvbiIpKTsKK30KKworUmVzb3VyY2VFcnJvciBpbnRl
cnJ1cHRlZEZvclBvbGljeUNoYW5nZUVycm9yKGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVz
dCkKK3sKKyAgICByZXR1cm4gUmVzb3VyY2VFcnJvcihBUEk6OkVycm9yOjp3ZWJLaXRQb2xpY3lF
cnJvckRvbWFpbigpLCBrV0tFcnJvckNvZGVGcmFtZUxvYWRJbnRlcnJ1cHRlZEJ5UG9saWN5Q2hh
bmdlLCByZXF1ZXN0LnVybCgpLCBXRUJfVUlfU1RSSU5HKCJGcmFtZSBsb2FkIGludGVycnVwdGVk
IiwgIldlYktpdEVycm9yRnJhbWVMb2FkSW50ZXJydXB0ZWRCeVBvbGljeUNoYW5nZSBkZXNjcmlw
dGlvbiIpKTsKK30KKworI2lmIEVOQUJMRShDT05URU5UX0ZJTFRFUklORykKK1Jlc291cmNlRXJy
b3IgYmxvY2tlZEJ5Q29udGVudEZpbHRlckVycm9yKGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVx
dWVzdCkKK3sKKyAgICByZXR1cm4gUmVzb3VyY2VFcnJvcihBUEk6OkVycm9yOjp3ZWJLaXRQb2xp
Y3lFcnJvckRvbWFpbigpLCBrV0tFcnJvckNvZGVGcmFtZUxvYWRCbG9ja2VkQnlDb250ZW50Rmls
dGVyLCByZXF1ZXN0LnVybCgpLCBXRUJfVUlfU1RSSU5HKCJUaGUgVVJMIHdhcyBibG9ja2VkIGJ5
IGEgY29udGVudCBmaWx0ZXIiLCAiV2ViS2l0RXJyb3JGcmFtZUxvYWRCbG9ja2VkQnlDb250ZW50
RmlsdGVyIGRlc2NyaXB0aW9uIikpOworfQorI2VuZGlmCisKK1Jlc291cmNlRXJyb3IgY2Fubm90
U2hvd01JTUVUeXBlRXJyb3IoY29uc3QgUmVzb3VyY2VSZXNwb25zZSYgcmVzcG9uc2UpCit7Cisg
ICAgcmV0dXJuIFJlc291cmNlRXJyb3IoQVBJOjpFcnJvcjo6d2ViS2l0UG9saWN5RXJyb3JEb21h
aW4oKSwga1dLRXJyb3JDb2RlQ2Fubm90U2hvd01JTUVUeXBlLCByZXNwb25zZS51cmwoKSwgV0VC
X1VJX1NUUklORygiQ29udGVudCB3aXRoIHNwZWNpZmllZCBNSU1FIHR5cGUgY2Fu4oCZdCBiZSBz
aG93biIsICJXZWJLaXRFcnJvckNhbm5vdFNob3dNSU1FVHlwZSBkZXNjcmlwdGlvbiIpKTsKK30K
KworUmVzb3VyY2VFcnJvciBwbHVnaW5XaWxsSGFuZGxlTG9hZEVycm9yKGNvbnN0IFJlc291cmNl
UmVzcG9uc2UmIHJlc3BvbnNlKQoreworICAgIHJldHVybiBSZXNvdXJjZUVycm9yKEFQSTo6RXJy
b3I6OndlYktpdFBsdWdpbkVycm9yRG9tYWluKCksIGtXS0Vycm9yQ29kZVBsdWdJbldpbGxIYW5k
bGVMb2FkLCByZXNwb25zZS51cmwoKSwgV0VCX1VJX1NUUklORygiUGx1Zy1pbiBoYW5kbGVkIGxv
YWQiLCAiV2ViS2l0RXJyb3JQbHVnSW5XaWxsSGFuZGxlTG9hZCBkZXNjcmlwdGlvbiIpKTsKK30K
KworUmVzb3VyY2VFcnJvciBpbnRlcm5hbEVycm9yKGNvbnN0IFVSTCYgdXJsKQoreworICAgIHJl
dHVybiBSZXNvdXJjZUVycm9yKEFQSTo6RXJyb3I6OndlYktpdEVycm9yRG9tYWluKCksIGtXS0Vy
cm9ySW50ZXJuYWwsIHVybCwgV0VCX1VJX1NUUklORygiV2ViS2l0IGVuY291bnRlcmVkIGFuIGlu
dGVybmFsIGVycm9yIiwgIldlYktpdEVycm9ySW50ZXJuYWwgZGVzY3JpcHRpb24iKSk7Cit9CisK
K30gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJFcnJvcnMuaCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9X
ZWJFcnJvcnMuaApzaW1pbGFyaXR5IGluZGV4IDc3JQpyZW5hbWUgZnJvbSBTb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkVycm9ycy5oCnJlbmFtZSB0byBTb3VyY2Uv
V2ViS2l0Mi9TaGFyZWQvV2ViRXJyb3JzLmgKaW5kZXggODRkZDczZTNjYTguLjU5M2VhODg1Mzdk
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dl
YkVycm9ycy5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJFcnJvcnMuaApAQCAtMjUs
MTEgKzI1LDEzIEBACiAKICNwcmFnbWEgb25jZQogCisjaW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4K
KwogbmFtZXNwYWNlIFdlYkNvcmUgewotICAgIGNsYXNzIFVSTDsKLSAgICBjbGFzcyBSZXNvdXJj
ZUVycm9yOwotICAgIGNsYXNzIFJlc291cmNlUmVxdWVzdDsKLSAgICBjbGFzcyBSZXNvdXJjZVJl
c3BvbnNlOworY2xhc3MgVVJMOworY2xhc3MgUmVzb3VyY2VFcnJvcjsKK2NsYXNzIFJlc291cmNl
UmVxdWVzdDsKK2NsYXNzIFJlc291cmNlUmVzcG9uc2U7CiB9CiAKIG5hbWVzcGFjZSBXZWJLaXQg
ewpAQCAtNDcsNCArNDksMTYgQEAgV2ViQ29yZTo6UmVzb3VyY2VFcnJvciBmaWxlRG9lc05vdEV4
aXN0RXJyb3IoY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSYpOwogV2ViQ29yZTo6UmVz
b3VyY2VFcnJvciBwbHVnaW5XaWxsSGFuZGxlTG9hZEVycm9yKGNvbnN0IFdlYkNvcmU6OlJlc291
cmNlUmVzcG9uc2UmKTsKIFdlYkNvcmU6OlJlc291cmNlRXJyb3IgaW50ZXJuYWxFcnJvcihjb25z
dCBXZWJDb3JlOjpVUkwmKTsKIAorI2lmIFVTRShTT1VQKQorV2ViQ29yZTo6UmVzb3VyY2VFcnJv
ciBkb3dubG9hZE5ldHdvcmtFcnJvcihjb25zdCBXZWJDb3JlOjpVUkwmLCBjb25zdCBXVEY6OlN0
cmluZyYpOworV2ViQ29yZTo6UmVzb3VyY2VFcnJvciBkb3dubG9hZENhbmNlbGxlZEJ5VXNlckVy
cm9yKGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UmKTsKK1dlYkNvcmU6OlJlc291cmNl
RXJyb3IgZG93bmxvYWREZXN0aW5hdGlvbkVycm9yKGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVz
cG9uc2UmLCBjb25zdCBXVEY6OlN0cmluZyYpOworI2VuZGlmCisKKyNpZiBQTEFURk9STShHVEsp
CitXZWJDb3JlOjpSZXNvdXJjZUVycm9yIHByaW50RXJyb3IoY29uc3QgV2ViQ29yZTo6VVJMJiwg
Y29uc3QgV1RGOjpTdHJpbmcmKTsKK1dlYkNvcmU6OlJlc291cmNlRXJyb3IgcHJpbnRlck5vdEZv
dW5kRXJyb3IoY29uc3QgV2ViQ29yZTo6VVJMJik7CitXZWJDb3JlOjpSZXNvdXJjZUVycm9yIGlu
dmFsaWRQYWdlUmFuZ2VUb1ByaW50KGNvbnN0IFdlYkNvcmU6OlVSTCYpOworI2VuZGlmCisKIH0g
Ly8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9XZWJDb3JlU3VwcG9ydC9ndGsvV2ViRXJyb3JzR3RrLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1No
YXJlZC9nbGliL1dlYkVycm9yc0dsaWIuY3BwCnNpbWlsYXJpdHkgaW5kZXggNjElCnJlbmFtZSBm
cm9tIFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvZ3RrL1dlYkVycm9y
c0d0ay5jcHAKcmVuYW1lIHRvIFNvdXJjZS9XZWJLaXQyL1NoYXJlZC9nbGliL1dlYkVycm9yc0ds
aWIuY3BwCmluZGV4IGU5ZDFkNGMyYjc0Li5lYmI1N2NmNzdjYyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9ndGsvV2ViRXJyb3JzR3RrLmNwcAor
KysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvZ2xpYi9XZWJFcnJvcnNHbGliLmNwcApAQCAtMjks
MTIgKzI5LDEwIEBACiAjaW5jbHVkZSAiV2ViRXJyb3JzLmgiCiAKICNpbmNsdWRlICJBUElFcnJv
ci5oIgotI2luY2x1ZGUgPFdlYkNvcmUvRXJyb3JzR3RrLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9M
b2NhbGl6ZWRTdHJpbmdzLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9SZXNvdXJjZUVycm9yLmg+CiAj
aW5jbHVkZSA8V2ViQ29yZS9SZXNvdXJjZVJlcXVlc3QuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1Jl
c291cmNlUmVzcG9uc2UuaD4KLSNpbmNsdWRlIDxXZWJLaXQvV0tFcnJvclJlZi5oPgotI2luY2x1
ZGUgPGdsaWIvZ2kxOG4tbGliLmg+CiAKIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogCkBAIC00
Miw0NyArNDAsMTIgQEAgbmFtZXNwYWNlIFdlYktpdCB7CiAKIFJlc291cmNlRXJyb3IgY2FuY2Vs
bGVkRXJyb3IoY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0KQogewotICAgIHJldHVybiBX
ZWJDb3JlOjpjYW5jZWxsZWRFcnJvcihyZXF1ZXN0KTsKLX0KLQotUmVzb3VyY2VFcnJvciBibG9j
a2VkRXJyb3IoY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0KQotewotICAgIHJldHVybiBX
ZWJDb3JlOjpibG9ja2VkRXJyb3IocmVxdWVzdCk7Ci19Ci0KLVJlc291cmNlRXJyb3IgYmxvY2tl
ZEJ5Q29udGVudEJsb2NrZXJFcnJvcihjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QpCi17
Ci0gICAgcmV0dXJuIFdlYkNvcmU6OmJsb2NrZWRCeUNvbnRlbnRCbG9ja2VyRXJyb3IocmVxdWVz
dCk7Ci19Ci0KLVJlc291cmNlRXJyb3IgY2Fubm90U2hvd1VSTEVycm9yKGNvbnN0IFJlc291cmNl
UmVxdWVzdCYgcmVxdWVzdCkKLXsKLSAgICByZXR1cm4gV2ViQ29yZTo6Y2Fubm90U2hvd1VSTEVy
cm9yKHJlcXVlc3QpOwotfQotCi1SZXNvdXJjZUVycm9yIGludGVycnVwdGVkRm9yUG9saWN5Q2hh
bmdlRXJyb3IoY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0KQotewotICAgIHJldHVybiBX
ZWJDb3JlOjppbnRlcnJ1cHRlZEZvclBvbGljeUNoYW5nZUVycm9yKHJlcXVlc3QpOwotfQotCi1S
ZXNvdXJjZUVycm9yIGNhbm5vdFNob3dNSU1FVHlwZUVycm9yKGNvbnN0IFJlc291cmNlUmVzcG9u
c2UmIHJlc3BvbnNlKQotewotICAgIHJldHVybiBXZWJDb3JlOjpjYW5ub3RTaG93TUlNRVR5cGVF
cnJvcihyZXNwb25zZSk7CisgICAgcmV0dXJuIFJlc291cmNlRXJyb3IoQVBJOjpFcnJvcjo6d2Vi
S2l0TmV0d29ya0Vycm9yRG9tYWluKCksIEFQSTo6RXJyb3I6Ok5ldHdvcms6OkNhbmNlbGxlZCwg
cmVxdWVzdC51cmwoKSwgV0VCX1VJX1NUUklORygiTG9hZCByZXF1ZXN0IGNhbmNlbGxlZCIsICJM
b2FkIHJlcXVlc3QgY2FuY2VsbGVkIikpOwogfQogCiBSZXNvdXJjZUVycm9yIGZpbGVEb2VzTm90
RXhpc3RFcnJvcihjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiByZXNwb25zZSkKIHsKLSAgICByZXR1
cm4gV2ViQ29yZTo6ZmlsZURvZXNOb3RFeGlzdEVycm9yKHJlc3BvbnNlKTsKLX0KLQotUmVzb3Vy
Y2VFcnJvciBwbHVnaW5XaWxsSGFuZGxlTG9hZEVycm9yKGNvbnN0IFJlc291cmNlUmVzcG9uc2Um
IHJlc3BvbnNlKQotewotICAgIHJldHVybiBXZWJDb3JlOjpwbHVnaW5XaWxsSGFuZGxlTG9hZEVy
cm9yKHJlc3BvbnNlKTsKLX0KLQotV2ViQ29yZTo6UmVzb3VyY2VFcnJvciBpbnRlcm5hbEVycm9y
KGNvbnN0IFdlYkNvcmU6OlVSTCYgdXJsKQotewotICAgIHJldHVybiBSZXNvdXJjZUVycm9yKEFQ
STo6RXJyb3I6OndlYktpdEVycm9yRG9tYWluKCksIGtXS0Vycm9ySW50ZXJuYWwsIHVybCwgXygi
SW50ZXJuYWwgZXJyb3IiKSk7CisgICAgcmV0dXJuIFJlc291cmNlRXJyb3IoQVBJOjpFcnJvcjo6
d2ViS2l0TmV0d29ya0Vycm9yRG9tYWluKCksIEFQSTo6RXJyb3I6Ok5ldHdvcms6OkZpbGVEb2Vz
Tm90RXhpc3QsIHJlc3BvbnNlLnVybCgpLCBXRUJfVUlfU1RSSU5HKCJGaWxlIGRvZXMgbm90IGV4
aXN0IiwgIlRoZSByZXF1ZXN0ZWQgZmlsZSBkb2Vzbid0IGV4aXN0IikpOwogfQogCiB9IC8vIG5h
bWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNz
L0Rvd25sb2Fkcy9ndGsvRG93bmxvYWRTb3VwRXJyb3JzR3RrLmNwcCBiL1NvdXJjZS9XZWJLaXQy
L1NoYXJlZC9ndGsvV2ViRXJyb3JzR3RrLmNwcApzaW1pbGFyaXR5IGluZGV4IDY1JQpyZW5hbWUg
ZnJvbSBTb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9Eb3dubG9hZHMvZ3RrL0Rvd25sb2Fk
U291cEVycm9yc0d0ay5jcHAKcmVuYW1lIHRvIFNvdXJjZS9XZWJLaXQyL1NoYXJlZC9ndGsvV2Vi
RXJyb3JzR3RrLmNwcAppbmRleCBiYTJlN2I0NTZhNC4uOWZiZjIxZDEzYzkgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL0Rvd25sb2Fkcy9ndGsvRG93bmxvYWRTb3Vw
RXJyb3JzR3RrLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvZ3RrL1dlYkVycm9yc0d0
ay5jcHAKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDEyIEludGVsIENv
cnBvcmF0aW9uLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDE3IEln
YWxpYSBTLkwuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTI0LDIzICsyNCwy
OSBAQAogICovCiAKICNpbmNsdWRlICJjb25maWcuaCIKLSNpbmNsdWRlICJEb3dubG9hZFNvdXBF
cnJvcnMuaCIKKyNpbmNsdWRlICJXZWJFcnJvcnMuaCIKIAotI2luY2x1ZGUgPFdlYkNvcmUvRXJy
b3JzR3RrLmg+Ci0jaW5jbHVkZSA8V2ViQ29yZS9SZXNvdXJjZUVycm9yLmg+CisjaW5jbHVkZSAi
QVBJRXJyb3IuaCIKKyNpbmNsdWRlIDxXZWJDb3JlL1VSTC5oPgorI2luY2x1ZGUgPGdsaWIvZ2kx
OG4tbGliLmg+CiAKIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogCiBuYW1lc3BhY2UgV2ViS2l0
IHsKIAotUmVzb3VyY2VFcnJvciBwbGF0Zm9ybURvd25sb2FkTmV0d29ya0Vycm9yKGludCBlcnJv
ckNvZGUsIGNvbnN0IFVSTCYgZmFpbGluZ1VSTCwgY29uc3QgU3RyaW5nJiBsb2NhbGl6ZWREZXNj
cmlwdGlvbikKK1Jlc291cmNlRXJyb3IgcHJpbnRFcnJvcihjb25zdCBVUkwmIGZhaWxpbmdVUkws
IGNvbnN0IFN0cmluZyYgbG9jYWxpemVkRGVzY3JpcHRpb24pCiB7Ci0gICAgcmV0dXJuIGRvd25s
b2FkTmV0d29ya0Vycm9yKFJlc291cmNlRXJyb3IoZXJyb3JEb21haW5Eb3dubG9hZCwgZXJyb3JD
b2RlLCBmYWlsaW5nVVJMLCBsb2NhbGl6ZWREZXNjcmlwdGlvbikpOworICAgIHJldHVybiBSZXNv
dXJjZUVycm9yKEFQSTo6RXJyb3I6OndlYktpdFByaW50RXJyb3JEb21haW4oKSwgQVBJOjpFcnJv
cjo6UHJpbnQ6OkdlbmVyYWwsIGZhaWxpbmdVUkwsIGxvY2FsaXplZERlc2NyaXB0aW9uKTsKIH0K
IAotUmVzb3VyY2VFcnJvciBwbGF0Zm9ybURvd25sb2FkRGVzdGluYXRpb25FcnJvcihjb25zdCBS
ZXNvdXJjZVJlc3BvbnNlJiByZXNwb25zZSwgY29uc3QgU3RyaW5nJiBtZXNzYWdlKQorUmVzb3Vy
Y2VFcnJvciBwcmludGVyTm90Rm91bmRFcnJvcihjb25zdCBVUkwmIGZhaWxpbmdVUkwpCiB7Ci0g
ICAgcmV0dXJuIGRvd25sb2FkRGVzdGluYXRpb25FcnJvcihyZXNwb25zZSwgbWVzc2FnZSk7Cisg
ICAgcmV0dXJuIFJlc291cmNlRXJyb3IoQVBJOjpFcnJvcjo6d2ViS2l0UHJpbnRFcnJvckRvbWFp
bigpLCBBUEk6OkVycm9yOjpQcmludDo6UHJpbnRlck5vdEZvdW5kLCBmYWlsaW5nVVJMLCBfKCJQ
cmludGVyIG5vdCBmb3VuZCIpKTsKK30KKworUmVzb3VyY2VFcnJvciBpbnZhbGlkUGFnZVJhbmdl
VG9QcmludChjb25zdCBVUkwmIGZhaWxpbmdVUkwpCit7CisgICAgcmV0dXJuIFJlc291cmNlRXJy
b3IoQVBJOjpFcnJvcjo6d2ViS2l0UHJpbnRFcnJvckRvbWFpbigpLCBBUEk6OkVycm9yOjpQcmlu
dDo6SW52YWxpZFBhZ2VSYW5nZSwgZmFpbGluZ1VSTCwgXygiSW52YWxpZCBwYWdlIHJhbmdlIikp
OwogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQy
L1NoYXJlZC9zb3VwL1dlYkVycm9yc1NvdXAuY3BwIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL3Nv
dXAvV2ViRXJyb3JzU291cC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAuLmM0Mzk2NDkwMzI2Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVk
L3NvdXAvV2ViRXJyb3JzU291cC5jcHAKQEAgLTAsMCArMSw1MyBAQAorLyoKKyAqIENvcHlyaWdo
dCAoQykgMjAxNyBJZ2FsaWEgUy5MLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisg
KiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAq
IEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1F
RC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBC
RSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBF
WEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisj
aW5jbHVkZSAiV2ViRXJyb3JzLmgiCisKKyNpbmNsdWRlICJBUElFcnJvci5oIgorI2luY2x1ZGUg
PFdlYkNvcmUvTG9jYWxpemVkU3RyaW5ncy5oPgorI2luY2x1ZGUgPFdlYkNvcmUvUmVzb3VyY2VF
cnJvci5oPgorI2luY2x1ZGUgPFdlYkNvcmUvUmVzb3VyY2VSZXNwb25zZS5oPgorCit1c2luZyBu
YW1lc3BhY2UgV2ViQ29yZTsKKworbmFtZXNwYWNlIFdlYktpdCB7CisKK1Jlc291cmNlRXJyb3Ig
ZG93bmxvYWROZXR3b3JrRXJyb3IoY29uc3QgVVJMJiBmYWlsaW5nVVJMLCBjb25zdCBTdHJpbmcm
IGxvY2FsaXplZERlc2NyaXB0aW9uKQoreworICAgIHJldHVybiBSZXNvdXJjZUVycm9yKEFQSTo6
RXJyb3I6OndlYktpdERvd25sb2FkRXJyb3JEb21haW4oKSwgQVBJOjpFcnJvcjo6RG93bmxvYWQ6
Ok5ldHdvcmssIGZhaWxpbmdVUkwsIGxvY2FsaXplZERlc2NyaXB0aW9uKTsKK30KKworUmVzb3Vy
Y2VFcnJvciBkb3dubG9hZENhbmNlbGxlZEJ5VXNlckVycm9yKGNvbnN0IFJlc291cmNlUmVzcG9u
c2UmIHJlc3BvbnNlKQoreworICAgIHJldHVybiBSZXNvdXJjZUVycm9yKEFQSTo6RXJyb3I6Ondl
YktpdERvd25sb2FkRXJyb3JEb21haW4oKSwgQVBJOjpFcnJvcjo6RG93bmxvYWQ6OkNhbmNlbGxl
ZEJ5VXNlciwgcmVzcG9uc2UudXJsKCksIFdFQl9VSV9TVFJJTkcoIlVzZXIgY2FuY2VsbGVkIHRo
ZSBkb3dubG9hZCIsICJUaGUgZG93bmxvYWQgd2FzIGNhbmNlbGxlZCBieSB0aGUgdXNlciIpKTsK
K30KKworUmVzb3VyY2VFcnJvciBkb3dubG9hZERlc3RpbmF0aW9uRXJyb3IoY29uc3QgUmVzb3Vy
Y2VSZXNwb25zZSYgcmVzcG9uc2UsIGNvbnN0IFN0cmluZyYgbG9jYWxpemVkRGVzY3JpcHRpb24p
Cit7CisgICAgcmV0dXJuIFJlc291cmNlRXJyb3IoQVBJOjpFcnJvcjo6d2ViS2l0RG93bmxvYWRF
cnJvckRvbWFpbigpLCBBUEk6OkVycm9yOjpEb3dubG9hZDo6RGVzdGluYXRpb24sIHJlc3BvbnNl
LnVybCgpLCBsb2NhbGl6ZWREZXNjcmlwdGlvbik7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYktp
dApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0RG93
bmxvYWQuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0RG93bmxv
YWQuY3BwCmluZGV4IGQxODMzZGQxZDg2Li4xYzQ1ZTdhNDQ2YiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0RG93bmxvYWQuY3BwCisrKyBiL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdERvd25sb2FkLmNwcApAQCAtMjEsMTIg
KzIxLDEyIEBACiAjaW5jbHVkZSAiV2ViS2l0RG93bmxvYWQuaCIKIAogI2luY2x1ZGUgIkRvd25s
b2FkUHJveHkuaCIKKyNpbmNsdWRlICJXZWJFcnJvcnMuaCIKICNpbmNsdWRlICJXZWJLaXREb3du
bG9hZFByaXZhdGUuaCIKICNpbmNsdWRlICJXZWJLaXRNYXJzaGFsLmgiCiAjaW5jbHVkZSAiV2Vi
S2l0UHJpdmF0ZS5oIgogI2luY2x1ZGUgIldlYktpdFVSSVJlcXVlc3RQcml2YXRlLmgiCiAjaW5j
bHVkZSAiV2ViS2l0VVJJUmVzcG9uc2VQcml2YXRlLmgiCi0jaW5jbHVkZSA8V2ViQ29yZS9FcnJv
cnNHdGsuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1Jlc291cmNlUmVzcG9uc2UuaD4KICNpbmNsdWRl
IDxnbGliL2dpMThuLWxpYi5oPgogI2luY2x1ZGUgPHd0Zi9nbGliL0dSZWZQdHIuaD4KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdEVycm9yLmNwcCBi
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdEVycm9yLmNwcAppbmRleCA3
NDE5ZWU3MjFhMC4uNDQyNmQ0ZjRlODQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9BUEkvZ3RrL1dlYktpdEVycm9yLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvQVBJL2d0ay9XZWJLaXRFcnJvci5jcHAKQEAgLTIyLDcgKzIyLDYgQEAKICNpbmNsdWRlICJX
ZWJLaXRFcnJvci5oIgogCiAjaW5jbHVkZSAiV2ViS2l0UHJpdmF0ZS5oIgotI2luY2x1ZGUgPFdl
YkNvcmUvRXJyb3JzR3RrLmg+CiAKIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogCkBAIC0zNywy
NyArMzYsMjcgQEAgdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAKIEdRdWFyayB3ZWJraXRfbmV0
d29ya19lcnJvcl9xdWFyaygpCiB7Ci0gICAgcmV0dXJuIGdfcXVhcmtfZnJvbV9zdGF0aWNfc3Ry
aW5nKFdlYkNvcmU6OmVycm9yRG9tYWluTmV0d29yayk7CisgICAgcmV0dXJuIGdfcXVhcmtfZnJv
bV9zdGF0aWNfc3RyaW5nKHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgY2hhcio+KEFQSTo6RXJyb3I6
OndlYktpdE5ldHdvcmtFcnJvckRvbWFpbigpLmNoYXJhY3RlcnM4KCkpKTsKIH0KIAogR1F1YXJr
IHdlYmtpdF9wb2xpY3lfZXJyb3JfcXVhcmsoKQogewotICAgIHJldHVybiBnX3F1YXJrX2Zyb21f
c3RhdGljX3N0cmluZyhXZWJDb3JlOjplcnJvckRvbWFpblBvbGljeSk7CisgICAgcmV0dXJuIGdf
cXVhcmtfZnJvbV9zdGF0aWNfc3RyaW5nKHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgY2hhcio+KEFQ
STo6RXJyb3I6OndlYktpdFBvbGljeUVycm9yRG9tYWluKCkuY2hhcmFjdGVyczgoKSkpOwogfQog
CiBHUXVhcmsgd2Via2l0X3BsdWdpbl9lcnJvcl9xdWFyaygpCiB7Ci0gICAgcmV0dXJuIGdfcXVh
cmtfZnJvbV9zdGF0aWNfc3RyaW5nKFdlYkNvcmU6OmVycm9yRG9tYWluUGx1Z2luKTsKKyAgICBy
ZXR1cm4gZ19xdWFya19mcm9tX3N0YXRpY19zdHJpbmcocmVpbnRlcnByZXRfY2FzdDxjb25zdCBj
aGFyKj4oQVBJOjpFcnJvcjo6d2ViS2l0UGx1Z2luRXJyb3JEb21haW4oKS5jaGFyYWN0ZXJzOCgp
KSk7CiB9CiAKIEdRdWFyayB3ZWJraXRfZG93bmxvYWRfZXJyb3JfcXVhcmsoKQogewotICAgIHJl
dHVybiBnX3F1YXJrX2Zyb21fc3RhdGljX3N0cmluZyhXZWJDb3JlOjplcnJvckRvbWFpbkRvd25s
b2FkKTsKKyAgICByZXR1cm4gZ19xdWFya19mcm9tX3N0YXRpY19zdHJpbmcocmVpbnRlcnByZXRf
Y2FzdDxjb25zdCBjaGFyKj4oQVBJOjpFcnJvcjo6d2ViS2l0RG93bmxvYWRFcnJvckRvbWFpbigp
LmNoYXJhY3RlcnM4KCkpKTsKIH0KIAogR1F1YXJrIHdlYmtpdF9wcmludF9lcnJvcl9xdWFyaygp
CiB7Ci0gICAgcmV0dXJuIGdfcXVhcmtfZnJvbV9zdGF0aWNfc3RyaW5nKFdlYkNvcmU6OmVycm9y
RG9tYWluUHJpbnQpOworICAgIHJldHVybiBnX3F1YXJrX2Zyb21fc3RhdGljX3N0cmluZyhyZWlu
dGVycHJldF9jYXN0PGNvbnN0IGNoYXIqPihBUEk6OkVycm9yOjp3ZWJLaXRQcmludEVycm9yRG9t
YWluKCkuY2hhcmFjdGVyczgoKSkpOwogfQogCiBHUXVhcmsgd2Via2l0X2phdmFzY3JpcHRfZXJy
b3JfcXVhcmsoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsv
V2ViS2l0UHJpdmF0ZS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJL
aXRQcml2YXRlLmNwcAppbmRleCAyYzk3MWMyMmQ1OC4uYThjZGU4MjVmYjggMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFByaXZhdGUuY3BwCisrKyBi
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFByaXZhdGUuY3BwCkBAIC0y
MCw3ICsyMCw4IEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiV2ViS2l0UHJpdmF0
ZS5oIgogCi0jaW5jbHVkZSAiRXJyb3JzR3RrLmgiCisjaW5jbHVkZSAiQVBJRXJyb3IuaCIKKyNp
bmNsdWRlICJXS0Vycm9yUmVmLmgiCiAjaW5jbHVkZSAiV2ViRXZlbnQuaCIKICNpbmNsdWRlICJX
ZWJLaXRFcnJvci5oIgogI2luY2x1ZGUgPGdkay9nZGsuaD4KQEAgLTExMyw0OSArMTE0LDM5IEBA
IHVuc2lnbmVkIHdrRXZlbnRNb3VzZUJ1dHRvblRvV2ViS2l0TW91c2VCdXR0b24oV0tFdmVudE1v
dXNlQnV0dG9uIHdrQnV0dG9uKQogdW5zaWduZWQgdG9XZWJLaXRFcnJvcih1bnNpZ25lZCB3ZWJD
b3JlRXJyb3IpCiB7CiAgICAgc3dpdGNoICh3ZWJDb3JlRXJyb3IpIHsKLSAgICBjYXNlIFdlYkNv
cmU6Ok5ldHdvcmtFcnJvckZhaWxlZDoKLSAgICAgICAgcmV0dXJuIFdFQktJVF9ORVRXT1JLX0VS
Uk9SX0ZBSUxFRDsKLSAgICBjYXNlIFdlYkNvcmU6Ok5ldHdvcmtFcnJvclRyYW5zcG9ydDoKLSAg
ICAgICAgcmV0dXJuIFdFQktJVF9ORVRXT1JLX0VSUk9SX1RSQU5TUE9SVDsKLSAgICBjYXNlIFdl
YkNvcmU6Ok5ldHdvcmtFcnJvclVua25vd25Qcm90b2NvbDoKLSAgICAgICAgcmV0dXJuIFdFQktJ
VF9ORVRXT1JLX0VSUk9SX1VOS05PV05fUFJPVE9DT0w7Ci0gICAgY2FzZSBXZWJDb3JlOjpOZXR3
b3JrRXJyb3JDYW5jZWxsZWQ6CisgICAgY2FzZSBBUEk6OkVycm9yOjpOZXR3b3JrOjpDYW5jZWxs
ZWQ6CiAgICAgICAgIHJldHVybiBXRUJLSVRfTkVUV09SS19FUlJPUl9DQU5DRUxMRUQ7Ci0gICAg
Y2FzZSBXZWJDb3JlOjpOZXR3b3JrRXJyb3JGaWxlRG9lc05vdEV4aXN0OgorICAgIGNhc2UgQVBJ
OjpFcnJvcjo6TmV0d29yazo6RmlsZURvZXNOb3RFeGlzdDoKICAgICAgICAgcmV0dXJuIFdFQktJ
VF9ORVRXT1JLX0VSUk9SX0ZJTEVfRE9FU19OT1RfRVhJU1Q7Ci0gICAgY2FzZSBXZWJDb3JlOjpQ
b2xpY3lFcnJvckZhaWxlZDoKLSAgICAgICAgcmV0dXJuIFdFQktJVF9QT0xJQ1lfRVJST1JfRkFJ
TEVEOwotICAgIGNhc2UgV2ViQ29yZTo6UG9saWN5RXJyb3JDYW5ub3RTaG93TWltZVR5cGU6Cisg
ICAgY2FzZSBrV0tFcnJvckNvZGVDYW5ub3RTaG93TUlNRVR5cGU6CiAgICAgICAgIHJldHVybiBX
RUJLSVRfUE9MSUNZX0VSUk9SX0NBTk5PVF9TSE9XX01JTUVfVFlQRTsKLSAgICBjYXNlIFdlYkNv
cmU6OlBvbGljeUVycm9yQ2Fubm90U2hvd1VSTDoKKyAgICBjYXNlIGtXS0Vycm9yQ29kZUNhbm5v
dFNob3dVUkw6CiAgICAgICAgIHJldHVybiBXRUJLSVRfUE9MSUNZX0VSUk9SX0NBTk5PVF9TSE9X
X1VSSTsKLSAgICBjYXNlIFdlYkNvcmU6OlBvbGljeUVycm9yRnJhbWVMb2FkSW50ZXJydXB0ZWRC
eVBvbGljeUNoYW5nZToKKyAgICBjYXNlIGtXS0Vycm9yQ29kZUZyYW1lTG9hZEludGVycnVwdGVk
QnlQb2xpY3lDaGFuZ2U6CiAgICAgICAgIHJldHVybiBXRUJLSVRfUE9MSUNZX0VSUk9SX0ZSQU1F
X0xPQURfSU5URVJSVVBURURfQllfUE9MSUNZX0NIQU5HRTsKLSAgICBjYXNlIFdlYkNvcmU6OlBv
bGljeUVycm9yQ2Fubm90VXNlUmVzdHJpY3RlZFBvcnQ6CisgICAgY2FzZSBrV0tFcnJvckNvZGVD
YW5ub3RVc2VSZXN0cmljdGVkUG9ydDoKICAgICAgICAgcmV0dXJuIFdFQktJVF9QT0xJQ1lfRVJS
T1JfQ0FOTk9UX1VTRV9SRVNUUklDVEVEX1BPUlQ7Ci0gICAgY2FzZSBXZWJDb3JlOjpQbHVnaW5F
cnJvckZhaWxlZDoKLSAgICAgICAgcmV0dXJuIFdFQktJVF9QTFVHSU5fRVJST1JfRkFJTEVEOwot
ICAgIGNhc2UgV2ViQ29yZTo6UGx1Z2luRXJyb3JDYW5ub3RGaW5kUGx1Z2luOgorICAgIGNhc2Ug
a1dLRXJyb3JDb2RlQ2Fubm90RmluZFBsdWdJbjoKICAgICAgICAgcmV0dXJuIFdFQktJVF9QTFVH
SU5fRVJST1JfQ0FOTk9UX0ZJTkRfUExVR0lOOwotICAgIGNhc2UgV2ViQ29yZTo6UGx1Z2luRXJy
b3JDYW5ub3RMb2FkUGx1Z2luOgorICAgIGNhc2Uga1dLRXJyb3JDb2RlQ2Fubm90TG9hZFBsdWdJ
bjoKICAgICAgICAgcmV0dXJuIFdFQktJVF9QTFVHSU5fRVJST1JfQ0FOTk9UX0xPQURfUExVR0lO
OwotICAgIGNhc2UgV2ViQ29yZTo6UGx1Z2luRXJyb3JKYXZhVW5hdmFpbGFibGU6CisgICAgY2Fz
ZSBrV0tFcnJvckNvZGVKYXZhVW5hdmFpbGFibGU6CiAgICAgICAgIHJldHVybiBXRUJLSVRfUExV
R0lOX0VSUk9SX0pBVkFfVU5BVkFJTEFCTEU7Ci0gICAgY2FzZSBXZWJDb3JlOjpQbHVnaW5FcnJv
ckNvbm5lY3Rpb25DYW5jZWxsZWQ6CisgICAgY2FzZSBrV0tFcnJvckNvZGVQbHVnSW5DYW5jZWxs
ZWRDb25uZWN0aW9uOgogICAgICAgICByZXR1cm4gV0VCS0lUX1BMVUdJTl9FUlJPUl9DT05ORUNU
SU9OX0NBTkNFTExFRDsKLSAgICBjYXNlIFdlYkNvcmU6OlBsdWdpbkVycm9yV2lsbEhhbmRsZUxv
YWQ6CisgICAgY2FzZSBrV0tFcnJvckNvZGVQbHVnSW5XaWxsSGFuZGxlTG9hZDoKICAgICAgICAg
cmV0dXJuIFdFQktJVF9QTFVHSU5fRVJST1JfV0lMTF9IQU5ETEVfTE9BRDsKLSAgICBjYXNlIFdl
YkNvcmU6OkRvd25sb2FkRXJyb3JOZXR3b3JrOgorICAgIGNhc2UgQVBJOjpFcnJvcjo6RG93bmxv
YWQ6Ok5ldHdvcms6CiAgICAgICAgIHJldHVybiBXRUJLSVRfRE9XTkxPQURfRVJST1JfTkVUV09S
SzsKLSAgICBjYXNlIFdlYkNvcmU6OkRvd25sb2FkRXJyb3JDYW5jZWxsZWRCeVVzZXI6CisgICAg
Y2FzZSBBUEk6OkVycm9yOjpEb3dubG9hZDo6Q2FuY2VsbGVkQnlVc2VyOgogICAgICAgICByZXR1
cm4gV0VCS0lUX0RPV05MT0FEX0VSUk9SX0NBTkNFTExFRF9CWV9VU0VSOwotICAgIGNhc2UgV2Vi
Q29yZTo6RG93bmxvYWRFcnJvckRlc3RpbmF0aW9uOgorICAgIGNhc2UgQVBJOjpFcnJvcjo6RG93
bmxvYWQ6OkRlc3RpbmF0aW9uOgogICAgICAgICByZXR1cm4gV0VCS0lUX0RPV05MT0FEX0VSUk9S
X0RFU1RJTkFUSU9OOwotICAgIGNhc2UgV2ViQ29yZTo6UHJpbnRFcnJvckdlbmVyYWw6CisgICAg
Y2FzZSBBUEk6OkVycm9yOjpQcmludDo6R2VuZXJhbDoKICAgICAgICAgcmV0dXJuIFdFQktJVF9Q
UklOVF9FUlJPUl9HRU5FUkFMOwotICAgIGNhc2UgV2ViQ29yZTo6UHJpbnRFcnJvclByaW50ZXJO
b3RGb3VuZDoKKyAgICBjYXNlIEFQSTo6RXJyb3I6OlByaW50OjpQcmludGVyTm90Rm91bmQ6CiAg
ICAgICAgIHJldHVybiBXRUJLSVRfUFJJTlRfRVJST1JfUFJJTlRFUl9OT1RfRk9VTkQ7Ci0gICAg
Y2FzZSBXZWJDb3JlOjpQcmludEVycm9ySW52YWxpZFBhZ2VSYW5nZToKKyAgICBjYXNlIEFQSTo6
RXJyb3I6OlByaW50OjpJbnZhbGlkUGFnZVJhbmdlOgogICAgICAgICByZXR1cm4gV0VCS0lUX1BS
SU5UX0VSUk9SX0lOVkFMSURfUEFHRV9SQU5HRTsKICAgICBkZWZhdWx0OgogICAgICAgICAvLyBU
aGlzIG1heSBiZSBhIHVzZXIgYXBwIGRlZmluZWQgZXJyb3IsIHdoaWNoIG5lZWRzIHRvIGJlIHBh
c3NlZCBhcy1pcy4KQEAgLTE2Niw1MCArMTU3LDQwIEBAIHVuc2lnbmVkIHRvV2ViS2l0RXJyb3Io
dW5zaWduZWQgd2ViQ29yZUVycm9yKQogdW5zaWduZWQgdG9XZWJDb3JlRXJyb3IodW5zaWduZWQg
d2ViS2l0RXJyb3IpCiB7CiAgICAgc3dpdGNoICh3ZWJLaXRFcnJvcikgewotICAgIGNhc2UgV0VC
S0lUX05FVFdPUktfRVJST1JfRkFJTEVEOgotICAgICAgICByZXR1cm4gV2ViQ29yZTo6TmV0d29y
a0Vycm9yRmFpbGVkOwotICAgIGNhc2UgV0VCS0lUX05FVFdPUktfRVJST1JfVFJBTlNQT1JUOgot
ICAgICAgICByZXR1cm4gV2ViQ29yZTo6TmV0d29ya0Vycm9yVHJhbnNwb3J0OwotICAgIGNhc2Ug
V0VCS0lUX05FVFdPUktfRVJST1JfVU5LTk9XTl9QUk9UT0NPTDoKLSAgICAgICAgcmV0dXJuIFdl
YkNvcmU6Ok5ldHdvcmtFcnJvclVua25vd25Qcm90b2NvbDsKICAgICBjYXNlIFdFQktJVF9ORVRX
T1JLX0VSUk9SX0NBTkNFTExFRDoKLSAgICAgICAgcmV0dXJuIFdlYkNvcmU6Ok5ldHdvcmtFcnJv
ckNhbmNlbGxlZDsKKyAgICAgICAgcmV0dXJuIEFQSTo6RXJyb3I6Ok5ldHdvcms6OkNhbmNlbGxl
ZDsKICAgICBjYXNlIFdFQktJVF9ORVRXT1JLX0VSUk9SX0ZJTEVfRE9FU19OT1RfRVhJU1Q6Ci0g
ICAgICAgIHJldHVybiBXZWJDb3JlOjpOZXR3b3JrRXJyb3JGaWxlRG9lc05vdEV4aXN0OwotICAg
IGNhc2UgV0VCS0lUX1BPTElDWV9FUlJPUl9GQUlMRUQ6Ci0gICAgICAgIHJldHVybiBXZWJDb3Jl
OjpQb2xpY3lFcnJvckZhaWxlZDsKKyAgICAgICAgcmV0dXJuIEFQSTo6RXJyb3I6Ok5ldHdvcms6
OkZpbGVEb2VzTm90RXhpc3Q7CiAgICAgY2FzZSBXRUJLSVRfUE9MSUNZX0VSUk9SX0NBTk5PVF9T
SE9XX01JTUVfVFlQRToKLSAgICAgICAgcmV0dXJuIFdlYkNvcmU6OlBvbGljeUVycm9yQ2Fubm90
U2hvd01pbWVUeXBlOworICAgICAgICByZXR1cm4ga1dLRXJyb3JDb2RlQ2Fubm90U2hvd01JTUVU
eXBlOwogICAgIGNhc2UgV0VCS0lUX1BPTElDWV9FUlJPUl9DQU5OT1RfU0hPV19VUkk6Ci0gICAg
ICAgIHJldHVybiBXZWJDb3JlOjpQb2xpY3lFcnJvckNhbm5vdFNob3dVUkw7CisgICAgICAgIHJl
dHVybiBrV0tFcnJvckNvZGVDYW5ub3RTaG93VVJMOwogICAgIGNhc2UgV0VCS0lUX1BPTElDWV9F
UlJPUl9GUkFNRV9MT0FEX0lOVEVSUlVQVEVEX0JZX1BPTElDWV9DSEFOR0U6Ci0gICAgICAgIHJl
dHVybiBXZWJDb3JlOjpQb2xpY3lFcnJvckZyYW1lTG9hZEludGVycnVwdGVkQnlQb2xpY3lDaGFu
Z2U7CisgICAgICAgIHJldHVybiBrV0tFcnJvckNvZGVGcmFtZUxvYWRJbnRlcnJ1cHRlZEJ5UG9s
aWN5Q2hhbmdlOwogICAgIGNhc2UgV0VCS0lUX1BPTElDWV9FUlJPUl9DQU5OT1RfVVNFX1JFU1RS
SUNURURfUE9SVDoKLSAgICAgICAgcmV0dXJuIFdlYkNvcmU6OlBvbGljeUVycm9yQ2Fubm90VXNl
UmVzdHJpY3RlZFBvcnQ7Ci0gICAgY2FzZSBXRUJLSVRfUExVR0lOX0VSUk9SX0ZBSUxFRDoKLSAg
ICAgICAgcmV0dXJuIFdlYkNvcmU6OlBsdWdpbkVycm9yRmFpbGVkOworICAgICAgICByZXR1cm4g
a1dLRXJyb3JDb2RlQ2Fubm90VXNlUmVzdHJpY3RlZFBvcnQ7CiAgICAgY2FzZSBXRUJLSVRfUExV
R0lOX0VSUk9SX0NBTk5PVF9GSU5EX1BMVUdJTjoKLSAgICAgICAgcmV0dXJuIFdlYkNvcmU6OlBs
dWdpbkVycm9yQ2Fubm90RmluZFBsdWdpbjsKKyAgICAgICAgcmV0dXJuIGtXS0Vycm9yQ29kZUNh
bm5vdEZpbmRQbHVnSW47CiAgICAgY2FzZSBXRUJLSVRfUExVR0lOX0VSUk9SX0NBTk5PVF9MT0FE
X1BMVUdJTjoKLSAgICAgICAgcmV0dXJuIFdlYkNvcmU6OlBsdWdpbkVycm9yQ2Fubm90TG9hZFBs
dWdpbjsKKyAgICAgICAgcmV0dXJuIGtXS0Vycm9yQ29kZUNhbm5vdExvYWRQbHVnSW47CiAgICAg
Y2FzZSBXRUJLSVRfUExVR0lOX0VSUk9SX0pBVkFfVU5BVkFJTEFCTEU6Ci0gICAgICAgIHJldHVy
biBXZWJDb3JlOjpQbHVnaW5FcnJvckphdmFVbmF2YWlsYWJsZTsKKyAgICAgICAgcmV0dXJuIGtX
S0Vycm9yQ29kZUphdmFVbmF2YWlsYWJsZTsKICAgICBjYXNlIFdFQktJVF9QTFVHSU5fRVJST1Jf
Q09OTkVDVElPTl9DQU5DRUxMRUQ6Ci0gICAgICAgIHJldHVybiBXZWJDb3JlOjpQbHVnaW5FcnJv
ckNvbm5lY3Rpb25DYW5jZWxsZWQ7CisgICAgICAgIHJldHVybiBrV0tFcnJvckNvZGVQbHVnSW5D
YW5jZWxsZWRDb25uZWN0aW9uOwogICAgIGNhc2UgV0VCS0lUX1BMVUdJTl9FUlJPUl9XSUxMX0hB
TkRMRV9MT0FEOgotICAgICAgICByZXR1cm4gV2ViQ29yZTo6UGx1Z2luRXJyb3JXaWxsSGFuZGxl
TG9hZDsKKyAgICAgICAgcmV0dXJuIGtXS0Vycm9yQ29kZVBsdWdJbldpbGxIYW5kbGVMb2FkOwog
ICAgIGNhc2UgV0VCS0lUX0RPV05MT0FEX0VSUk9SX05FVFdPUks6Ci0gICAgICAgIHJldHVybiBX
ZWJDb3JlOjpEb3dubG9hZEVycm9yTmV0d29yazsKKyAgICAgICAgcmV0dXJuIEFQSTo6RXJyb3I6
OkRvd25sb2FkOjpOZXR3b3JrOwogICAgIGNhc2UgV0VCS0lUX0RPV05MT0FEX0VSUk9SX0NBTkNF
TExFRF9CWV9VU0VSOgotICAgICAgICByZXR1cm4gV2ViQ29yZTo6RG93bmxvYWRFcnJvckNhbmNl
bGxlZEJ5VXNlcjsKKyAgICAgICAgcmV0dXJuIEFQSTo6RXJyb3I6OkRvd25sb2FkOjpDYW5jZWxs
ZWRCeVVzZXI7CiAgICAgY2FzZSBXRUJLSVRfRE9XTkxPQURfRVJST1JfREVTVElOQVRJT046Ci0g
ICAgICAgIHJldHVybiBXZWJDb3JlOjpEb3dubG9hZEVycm9yRGVzdGluYXRpb247CisgICAgICAg
IHJldHVybiBBUEk6OkVycm9yOjpEb3dubG9hZDo6RGVzdGluYXRpb247CiAgICAgY2FzZSBXRUJL
SVRfUFJJTlRfRVJST1JfR0VORVJBTDoKLSAgICAgICAgcmV0dXJuIFdlYkNvcmU6OlByaW50RXJy
b3JHZW5lcmFsOworICAgICAgICByZXR1cm4gQVBJOjpFcnJvcjo6UHJpbnQ6OkdlbmVyYWw7CiAg
ICAgY2FzZSBXRUJLSVRfUFJJTlRfRVJST1JfUFJJTlRFUl9OT1RfRk9VTkQ6Ci0gICAgICAgIHJl
dHVybiBXZWJDb3JlOjpQcmludEVycm9yUHJpbnRlck5vdEZvdW5kOworICAgICAgICByZXR1cm4g
QVBJOjpFcnJvcjo6UHJpbnQ6OlByaW50ZXJOb3RGb3VuZDsKICAgICBjYXNlIFdFQktJVF9QUklO
VF9FUlJPUl9JTlZBTElEX1BBR0VfUkFOR0U6Ci0gICAgICAgIHJldHVybiBXZWJDb3JlOjpQcmlu
dEVycm9ySW52YWxpZFBhZ2VSYW5nZTsKKyAgICAgICAgcmV0dXJuIEFQSTo6RXJyb3I6OlByaW50
OjpJbnZhbGlkUGFnZVJhbmdlOwogICAgIGRlZmF1bHQ6CiAgICAgICAgIC8vIFRoaXMgbWF5IGJl
IGEgdXNlciBhcHAgZGVmaW5lZCBlcnJvciwgd2hpY2ggbmVlZHMgdG8gYmUgcGFzc2VkIGFzLWlz
LgogICAgICAgICByZXR1cm4gd2ViS2l0RXJyb3I7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
Mi9XZWJLaXQyLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViS2l0Mi9XZWJL
aXQyLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggOWI4MWY5ODAyY2YuLjM5YWQwNjE3
OTc4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJLaXQyLnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2oKKysrIGIvU291cmNlL1dlYktpdDIvV2ViS2l0Mi54Y29kZXByb2ovcHJvamVjdC5w
Ynhwcm9qCkBAIC0yMjYsNyArMjI2LDYgQEAKIAkJMUEzRUVEMEYxNjFBNTM1NDAwQUVCNEY1IC8q
IE1lc3NhZ2VSZWNlaXZlck1hcC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gMUEzRUVEMEQxNjFBNTM1MzAwQUVCNEY1IC8qIE1lc3NhZ2VSZWNlaXZlck1h
cC5oICovOyB9OwogCQkxQTNFRUQxMjE2MUE1M0Q2MDBBRUI0RjUgLyogTWVzc2FnZVJlY2VpdmVy
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxQTNFRUQx
MTE2MUE1M0Q2MDBBRUI0RjUgLyogTWVzc2FnZVJlY2VpdmVyLmggKi87IH07CiAJCTFBNDIyRjhC
MThCMjlCNTQwMEQ4Q0Q5NiAvKiBXS0hpc3RvcnlEZWxlZ2F0ZVByaXZhdGUuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFBNDIyRjhBMThCMjlCNTQwMEQ4
Q0Q5NiAvKiBXS0hpc3RvcnlEZWxlZ2F0ZVByaXZhdGUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklC
VVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwotCQkxQTQzM0YwRDExM0M1M0REMDBGQUNERTkgLyog
V2ViRXJyb3JzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSAxQTQzM0YwQzExM0M1M0REMDBGQUNERTkgLyogV2ViRXJyb3JzLmggKi87IH07CiAJCTFBNDNF
ODI5MTg4RjNDREMwMDlFNEQzMCAvKiBfV0tQcm9jZXNzUG9vbENvbmZpZ3VyYXRpb24ubW0gaW4g
U291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxQTQzRTgyNzE4OEYz
Q0RDMDA5RTREMzAgLyogX1dLUHJvY2Vzc1Bvb2xDb25maWd1cmF0aW9uLm1tICovOyB9OwogCQkx
QTQzRTgyQTE4OEYzQ0RDMDA5RTREMzAgLyogX1dLUHJvY2Vzc1Bvb2xDb25maWd1cmF0aW9uLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxQTQzRTgyODE4
OEYzQ0RDMDA5RTREMzAgLyogX1dLUHJvY2Vzc1Bvb2xDb25maWd1cmF0aW9uLmggKi87IHNldHRp
bmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJMUE0NDVCOUYxODRENUZC
NTAwNEIzNDE0IC8qIFdLQ29udGV4dEluamVjdGVkQnVuZGxlQ2xpZW50LmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxQTQ0NUI5RTE4NEQ1RkI1MDA0QjM0
MTQgLyogV0tDb250ZXh0SW5qZWN0ZWRCdW5kbGVDbGllbnQuaCAqLzsgc2V0dGluZ3MgPSB7QVRU
UklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwpAQCAtMTE5OSw2ICsxMTk4LDkgQEAKIAkJN0E4
MjFGNEMxRTJGNjczOTAwNjA0NTc3IC8qIExlZ2FjeUN1c3RvbVByb3RvY29sTWFuYWdlckNsaWVu
dC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gN0E4MjFG
NEIxRTJGNjY0ODAwNjA0NTc3IC8qIExlZ2FjeUN1c3RvbVByb3RvY29sTWFuYWdlckNsaWVudC5o
ICovOyB9OwogCQk3QTgyMUY0RTFFMkY2N0E4MDA2MDQ1NzcgLyogTGVnYWN5Q3VzdG9tUHJvdG9j
b2xNYW5hZ2VyQ2xpZW50Lm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gN0E4MjFGNEQxRTJGNjc5RTAwNjA0NTc3IC8qIExlZ2FjeUN1c3RvbVByb3RvY29s
TWFuYWdlckNsaWVudC5tbSAqLzsgfTsKIAkJN0E4MjFGNTAxRTJGN0E3NTAwNjA0NTc3IC8qIEFQ
SUN1c3RvbVByb3RvY29sTWFuYWdlckNsaWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gN0E4MjFGNEYxRTJGN0E1QzAwNjA0NTc3IC8qIEFQSUN1c3Rv
bVByb3RvY29sTWFuYWdlckNsaWVudC5oICovOyB9OworCQk3QUYyMzYyMDFFNzlBM0U0MDA0MzhB
MDUgLyogV2ViRXJyb3JzLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDdBRjIzNjFFMUU3OUEzQjQwMDQzOEEwNSAvKiBXZWJFcnJvcnMuY3BwICovOyB9
OworCQk3QUYyMzYyMTFFNzlBNDA4MDA0MzhBMDUgLyogV2ViRXJyb3JzLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3QUYyMzYxRjFFNzlBM0Q4MDA0MzhB
MDUgLyogV2ViRXJyb3JzLmggKi87IH07CisJCTdBRjIzNjIzMUU3OUE0NDQwMDQzOEEwNSAvKiBX
ZWJFcnJvcnNDb2NvYS5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDdBRjIzNjIyMUU3OUE0MzEwMDQzOEEwNSAvKiBXZWJFcnJvcnNDb2NvYS5tbSAqLzsg
fTsKIAkJN0MwNjVGMkIxQzhDRDk1RjAwQzJEOTUwIC8qIFdlYlVzZXJDb250ZW50Q29udHJvbGxl
ckRhdGFUeXBlcy5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA3QzA2NUYyOTFDOENEOTVGMDBDMkQ5NTAgLyogV2ViVXNlckNvbnRlbnRDb250cm9sbGVy
RGF0YVR5cGVzLmNwcCAqLzsgfTsKIAkJN0MwNjVGMkMxQzhDRDk1RjAwQzJEOTUwIC8qIFdlYlVz
ZXJDb250ZW50Q29udHJvbGxlckRhdGFUeXBlcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gN0MwNjVGMkExQzhDRDk1RjAwQzJEOTUwIC8qIFdlYlVzZXJD
b250ZW50Q29udHJvbGxlckRhdGFUeXBlcy5oICovOyB9OwogCQk3QzEzNUFBODE3M0IwQkNBMDA1
ODZBRTIgLyogV0tQbHVnaW5JbmZvcm1hdGlvbi5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3QzEzNUFBNjE3M0IwQkNBMDA1ODZBRTIgLyogV0tQbHVn
aW5JbmZvcm1hdGlvbi5jcHAgKi87IH07CkBAIC0xNTI0LDcgKzE1MjYsNiBAQAogCQlCQzExMUE1
RjExMkY0RkJCMDAzMzdCQUIgLyogV2ViRnJhbWVMb2FkZXJDbGllbnQuY3BwIGluIFNvdXJjZXMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkMxMTFBNTgxMTJGNEZCQjAwMzM3
QkFCIC8qIFdlYkZyYW1lTG9hZGVyQ2xpZW50LmNwcCAqLzsgfTsKIAkJQkMxMTFBNjAxMTJGNEZC
QjAwMzM3QkFCIC8qIFdlYkluc3BlY3RvckNsaWVudC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQzExMUE1OTExMkY0RkJCMDAzMzdCQUIgLyogV2Vi
SW5zcGVjdG9yQ2xpZW50LmNwcCAqLzsgfTsKIAkJQkMxMTFBREQxMTJGNUI5MzAwMzM3QkFCIC8q
IFdlYkZyYW1lLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IEJDMTExQURDMTEyRjVCOTMwMDMzN0JBQiAvKiBXZWJGcmFtZS5jcHAgKi87IH07Ci0JCUJD
MTExQUUwMTEyRjVCQzIwMDMzN0JBQiAvKiBXZWJFcnJvcnNNYWMubW0gaW4gU291cmNlcyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQzExMUFERjExMkY1QkMyMDAzMzdCQUIg
LyogV2ViRXJyb3JzTWFjLm1tICovOyB9OwogCQlCQzExMUFFNDExMkY1QzI2MDAzMzdCQUIgLyog
V2ViUHJvY2Vzcy5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSBCQzExMUFFMzExMkY1QzI2MDAzMzdCQUIgLyogV2ViUHJvY2Vzcy5jcHAgKi87IH07CiAJ
CUJDMTExQjA5MTEyRjVFM0MwMDMzN0JBQiAvKiBSZXNwb25zaXZlbmVzc1RpbWVyLmNwcCBpbiBT
b3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDMTExQjA4MTEyRjVF
M0MwMDMzN0JBQiAvKiBSZXNwb25zaXZlbmVzc1RpbWVyLmNwcCAqLzsgfTsKIAkJQkMxMTFCMEUx
MTJGNUU0RjAwMzM3QkFCIC8qIFdlYkZyYW1lUHJveHkuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkMxMTFCMEExMTJGNUU0RjAwMzM3QkFCIC8qIFdl
YkZyYW1lUHJveHkuY3BwICovOyB9OwpAQCAtMjM3MCw3ICsyMzcxLDYgQEAKIAkJMUEzRUVEMEQx
NjFBNTM1MzAwQUVCNEY1IC8qIE1lc3NhZ2VSZWNlaXZlck1hcC5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBNZXNzYWdlUmVjZWl2ZXJNYXAuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJMUEzRUVEMTExNjFBNTNENjAwQUVCNEY1IC8qIE1lc3NhZ2VSZWNlaXZlci5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBNZXNzYWdlUmVjZWl2ZXIuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMUE0MjJGOEExOEIyOUI1NDAwRDhDRDk2IC8qIFdL
SGlzdG9yeURlbGVnYXRlUHJpdmF0ZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBXS0hpc3RvcnlEZWxlZ2F0ZVByaXZhdGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
LQkJMUE0MzNGMEMxMTNDNTNERDAwRkFDREU5IC8qIFdlYkVycm9ycy5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBXZWJFcnJvcnMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJMUE0M0U4MjcxODhGM0NEQzAwOUU0RDMwIC8qIF9XS1Byb2Nlc3NQb29sQ29uZmlndXJh
dGlvbi5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IF9XS1Byb2Nl
c3NQb29sQ29uZmlndXJhdGlvbi5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMUE0
M0U4MjgxODhGM0NEQzAwOUU0RDMwIC8qIF9XS1Byb2Nlc3NQb29sQ29uZmlndXJhdGlvbi5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBfV0tQcm9jZXNzUG9vbENvbmZpZ3VyYXRp
b24uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMUE0NDVCOUUxODRENUZCNTAwNEIz
NDE0IC8qIFdLQ29udGV4dEluamVjdGVkQnVuZGxlQ2xpZW50LmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IFdLQ29udGV4dEluamVjdGVkQnVuZGxlQ2xpZW50Lmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0zNDUyLDYgKzM0NTIsOSBAQAogCQk3QTlDRDhDMDFDNzc5
ODQ5MDBEOUY2QzcgLyogV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlLmNwcCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NT
dG9yZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTdBOUNEOEMxMUM3Nzk4NDkw
MEQ5RjZDNyAvKiBXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmUuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTdBOUNEOEMyMUM3NzlBRDYwMEQ5RjZDNyAvKiBX
ZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmUubWVzc2FnZXMuaW4gKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0
OyBwYXRoID0gV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlLm1lc3NhZ2VzLmluOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OworCQk3QUYyMzYxRTFFNzlBM0I0MDA0MzhBMDUgLyogV2Vi
RXJyb3JzLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdlYkVycm9y
cy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTdBRjIzNjFGMUU3OUEzRDgwMDQz
OEEwNSAvKiBXZWJFcnJvcnMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2Vi
RXJyb3JzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTdBRjIzNjIyMUU3OUE0MzEw
MDQzOEEwNSAvKiBXZWJFcnJvcnNDb2NvYS5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9i
amNwcDsgcGF0aCA9IFdlYkVycm9yc0NvY29hLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQk3QzA2NUYyOTFDOENEOTVGMDBDMkQ5NTAgLyogV2ViVXNlckNvbnRlbnRDb250cm9sbGVy
RGF0YVR5cGVzLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdlYlVz
ZXJDb250ZW50Q29udHJvbGxlckRhdGFUeXBlcy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCTdDMDY1RjJBMUM4Q0Q5NUYwMEMyRDk1MCAvKiBXZWJVc2VyQ29udGVudENvbnRyb2xs
ZXJEYXRhVHlwZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViVXNlckNv
bnRlbnRDb250cm9sbGVyRGF0YVR5cGVzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CTdDMEJCOUE4MThEQ0RFODkwMDA2QzA4NiAvKiBXZWJDb250ZW50LWlPUy5lbnRpdGxlbWVudHMg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0Lnht
bDsgcGF0aCA9ICJXZWJDb250ZW50LWlPUy5lbnRpdGxlbWVudHMiOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwpAQCAtMzc5OCw3ICszODAxLDYgQEAKIAkJQkMxMTFBNTgxMTJGNEZCQjAwMzM3
QkFCIC8qIFdlYkZyYW1lTG9hZGVyQ2xpZW50LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
LmNwcDsgcGF0aCA9IFdlYkZyYW1lTG9hZGVyQ2xpZW50LmNwcDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+Ijsgd3JhcHNMaW5lcyA9IDA7IH07CiAJCUJDMTExQTU5MTEyRjRGQkIwMDMzN0JBQiAvKiBX
ZWJJbnNwZWN0b3JDbGllbnQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRo
ID0gV2ViSW5zcGVjdG9yQ2xpZW50LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
QkMxMTFBREMxMTJGNUI5MzAwMzM3QkFCIC8qIFdlYkZyYW1lLmNwcCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdlYkZyYW1lLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKLQkJQkMxMTFBREYxMTJGNUJDMjAwMzM3QkFCIC8qIFdlYkVycm9yc01hYy5tbSAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFdlYkVycm9yc01hYy5tbTsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQkMxMTFBRTMxMTJGNUMyNjAwMzM3QkFCIC8qIFdl
YlByb2Nlc3MuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV2ViUHJv
Y2Vzcy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUJDMTExQjA4MTEyRjVFM0Mw
MDMzN0JBQiAvKiBSZXNwb25zaXZlbmVzc1RpbWVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLmNwcDsgcGF0aCA9IFJlc3BvbnNpdmVuZXNzVGltZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQlCQzExMUIwQTExMkY1RTRGMDAzMzdCQUIgLyogV2ViRnJhbWVQcm94eS5j
cHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXZWJGcmFtZVByb3h5LmNw
cDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTQ5MzAsNiArNDkzMiw4IEBACiAJCQkJ
NTEwRkJCOTkxMjg4Qzk1RTAwQUZGREY0IC8qIFdlYkNvbnRleHRNZW51SXRlbURhdGEuaCAqLywK
IAkJCQk5MzlBRTc2NTEzMTZFOTlDMDBBRTA2QTYgLyogV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmNw
cCAqLywKIAkJCQlCQzFERDdCMTExNERDMzk2MDA1QURBRjMgLyogV2ViQ29yZUFyZ3VtZW50Q29k
ZXJzLmggKi8sCisJCQkJN0FGMjM2MUUxRTc5QTNCNDAwNDM4QTA1IC8qIFdlYkVycm9ycy5jcHAg
Ki8sCisJCQkJN0FGMjM2MUYxRTc5QTNEODAwNDM4QTA1IC8qIFdlYkVycm9ycy5oICovLAogCQkJ
CUMwMzM3REFEMTI3QTI0RkUwMDhGRjRGNCAvKiBXZWJFdmVudC5jcHAgKi8sCiAJCQkJQkMwMzJE
QUYxMEY0MzgwRjAwNThDMTVBIC8qIFdlYkV2ZW50LmggKi8sCiAJCQkJQkMwMzJEQjAxMEY0Mzgw
RjAwNThDMTVBIC8qIFdlYkV2ZW50Q29udmVyc2lvbi5jcHAgKi8sCkBAIC01Njk1LDYgKzU2OTks
NyBAQAogCQkJCTM3QkYyRjA1MTk0N0RFQjQwMDcyM0M0OCAvKiBXS05TVVJMUmVxdWVzdC5tbSAq
LywKIAkJCQkzNzhFMUEzRjE4MUVEQTAxMDAzMTAwN0EgLyogV0tPYmplY3QuaCAqLywKIAkJCQkz
NzQ0MzY4NzE4MjBFNzI0MDA0OTU3OUYgLyogV0tPYmplY3QubW0gKi8sCisJCQkJN0FGMjM2MjIx
RTc5QTQzMTAwNDM4QTA1IC8qIFdlYkVycm9yc0NvY29hLm1tICovLAogCQkJKTsKIAkJCW5hbWUg
PSBjb2NvYTsKIAkJCXBhdGggPSBDb2NvYTsKQEAgLTY0OTYsNyArNjUwMSw2IEBACiAJCQkJQkMw
MzJENjYxMEY0Mzc4RDAwNThDMTVBIC8qIFdlYkRyYWdDbGllbnQuaCAqLywKIAkJCQlCQzExMUE1
NzExMkY0RkJCMDAzMzdCQUIgLyogV2ViRWRpdG9yQ2xpZW50LmNwcCAqLywKIAkJCQlCQzAzMkQ2
ODEwRjQzNzhEMDA1OEMxNUEgLyogV2ViRWRpdG9yQ2xpZW50LmggKi8sCi0JCQkJMUE0MzNGMEMx
MTNDNTNERDAwRkFDREU5IC8qIFdlYkVycm9ycy5oICovLAogCQkJCUJDMTExQTU4MTEyRjRGQkIw
MDMzN0JBQiAvKiBXZWJGcmFtZUxvYWRlckNsaWVudC5jcHAgKi8sCiAJCQkJQkMwMzJENkExMEY0
Mzc4RDAwNThDMTVBIC8qIFdlYkZyYW1lTG9hZGVyQ2xpZW50LmggKi8sCiAJCQkJQkMxQkUxREYx
MkQ1NEE0MTAwMDRBMjI4IC8qIFdlYkdlb2xvY2F0aW9uQ2xpZW50LmNwcCAqLywKQEAgLTY5ODks
NyArNjk5Myw2IEBACiAJCQkJNTEwMjFFOUIxMkIxNjc4ODAwNUMwMzNDIC8qIFdlYkNvbnRleHRN
ZW51Q2xpZW50TWFjLm1tICovLAogCQkJCUM1NTRGRkEyMTJFNEU4RUEwMDJGMjJDMCAvKiBXZWJE
cmFnQ2xpZW50TWFjLm1tICovLAogCQkJCUM1MjM3RjVGMTI0NDFDQTMwMDc4MDQ3MiAvKiBXZWJF
ZGl0b3JDbGllbnRNYWMubW0gKi8sCi0JCQkJQkMxMTFBREYxMTJGNUJDMjAwMzM3QkFCIC8qIFdl
YkVycm9yc01hYy5tbSAqLywKIAkJCQk5MzkxRjI4MzEyMUIzOEY1MDBFQkY3RTggLyogV2ViRnJh
bWVOZXR3b3JraW5nQ29udGV4dC5oICovLAogCQkJCTkzOTFGMjg0MTIxQjM4RjUwMEVCRjdFOCAv
KiBXZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0Lm1tICovLAogCQkJCUJDQzQzQUM2MTI3Qjk5REUw
MDMxN0YxNiAvKiBXZWJQb3B1cE1lbnVNYWMubW0gKi8sCkBAIC04NTQ4LDcgKzg1NTEsNiBAQAog
CQkJCUJDMDMyRDdCMTBGNDM3OEQwMDU4QzE1QSAvKiBXZWJEcmFnQ2xpZW50LmggaW4gSGVhZGVy
cyAqLywKIAkJCQlCQ0EwRUY5RjEyMzMyNjQyMDA3RDNDRkIgLyogV2ViRWRpdENvbW1hbmRQcm94
eS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkMwMzJEN0QxMEY0Mzc4RDAwNThDMTVBIC8qIFdlYkVk
aXRvckNsaWVudC5oIGluIEhlYWRlcnMgKi8sCi0JCQkJMUE0MzNGMEQxMTNDNTNERDAwRkFDREU5
IC8qIFdlYkVycm9ycy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkMwMzJEQjkxMEY0MzgwRjAwNThD
MTVBIC8qIFdlYkV2ZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQlCQzAzMkRCQjEwRjQzODBGMDA1
OEMxNUEgLyogV2ViRXZlbnRDb252ZXJzaW9uLmggaW4gSGVhZGVycyAqLywKIAkJCQlCQzExMUI1
RDExMkY2Mjk4MDAzMzdCQUIgLyogV2ViRXZlbnRGYWN0b3J5LmggaW4gSGVhZGVycyAqLywKQEAg
LTg5ODEsNiArODk4Myw3IEBACiAJCQkJN0MyNDEzMDkxQUFDRkNCNDAwQTU4QzE1IC8qIFdLVXNl
ckNvbnRlbnRFeHRlbnNpb25TdG9yZVJlZi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMzc3RUFENDgx
N0UyQzc3QjAwMkQxOTNEIC8qIFdLVXNlckNvbnRlbnRJbmplY3RlZEZyYW1lcy5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJRjYxMTNFMjkxMjZDRTE5QjAwNTdEMEE3IC8qIFdLVXNlckNvbnRlbnRVUkxQ
YXR0ZXJuLmggaW4gSGVhZGVycyAqLywKKwkJCQk3QUYyMzYyMTFFNzlBNDA4MDA0MzhBMDUgLyog
V2ViRXJyb3JzLmggaW4gSGVhZGVycyAqLywKIAkJCQkwNzI5N0ZBMzFDMTg2QURCMDAzRjA3MzUg
LyogV0tVc2VyTWVkaWFQZXJtaXNzaW9uQ2hlY2suaCBpbiBIZWFkZXJzICovLAogCQkJCTRBM0ND
MThGMTlCMDdCOEEwMEQxNEFFRiAvKiBXS1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0LmggaW4g
SGVhZGVycyAqLywKIAkJCQkxQUFGMDg5QjE5MjY3RUU1MDBCNjM5MEMgLyogV0tVc2VyU2NyaXB0
LmggaW4gSGVhZGVycyAqLywKQEAgLTEwMTI2LDcgKzEwMTI5LDYgQEAKIAkJCQlCQzExMUE1RTEx
MkY0RkJCMDAzMzdCQUIgLyogV2ViRWRpdG9yQ2xpZW50LmNwcCBpbiBTb3VyY2VzICovLAogCQkJ
CTJEMjhGM0U2MTg4NUNDQzEwMDRCOUVBRSAvKiBXZWJFZGl0b3JDbGllbnRJT1MubW0gaW4gU291
cmNlcyAqLywKIAkJCQlDNTIzN0Y2MDEyNDQxQ0EzMDA3ODA0NzIgLyogV2ViRWRpdG9yQ2xpZW50
TWFjLm1tIGluIFNvdXJjZXMgKi8sCi0JCQkJQkMxMTFBRTAxMTJGNUJDMjAwMzM3QkFCIC8qIFdl
YkVycm9yc01hYy5tbSBpbiBTb3VyY2VzICovLAogCQkJCUMwMzM3REFFMTI3QTI0RkUwMDhGRjRG
NCAvKiBXZWJFdmVudC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlCQzAzMkRCQTEwRjQzODBGMDA1
OEMxNUEgLyogV2ViRXZlbnRDb252ZXJzaW9uLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUJDMTEx
QjVFMTEyRjYyOTgwMDMzN0JBQiAvKiBXZWJFdmVudEZhY3RvcnkubW0gaW4gU291cmNlcyAqLywK
QEAgLTEwMTQzLDYgKzEwMTQ1LDcgQEAKIAkJCQlDRDczQkE0RTEzMUFDREI3MDBFRURFRDIgLyog
V2ViRnVsbFNjcmVlbk1hbmFnZXJNZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJ
CQkJQ0Q2Rjc1RjQxMzFCNjZEMDAwRDZCMjFFIC8qIFdlYkZ1bGxTY3JlZW5NYW5hZ2VyUHJveHku
Y3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQ0Q3M0JBNDcxMzFBQ0M5QTAwRUVERUQyIC8qIFdlYkZ1
bGxTY3JlZW5NYW5hZ2VyUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8sCisJ
CQkJN0FGMjM2MjMxRTc5QTQ0NDAwNDM4QTA1IC8qIFdlYkVycm9yc0NvY29hLm1tIGluIFNvdXJj
ZXMgKi8sCiAJCQkJNTE1QkUxQUExRDU1NUE5QjAwREQ3QzY4IC8qIFdlYkdhbWVwYWQuY3BwIGlu
IFNvdXJjZXMgKi8sCiAJCQkJNTE1QkUxNzcxRDUzRkU4NzAwREQ3QzY4IC8qIFdlYkdhbWVwYWRQ
cm92aWRlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlCQzFCRTFFMTEyRDU0QTQxMDAwNEEyMjgg
LyogV2ViR2VvbG9jYXRpb25DbGllbnQuY3BwIGluIFNvdXJjZXMgKi8sCkBAIC0xMDQ4NSw2ICsx
MDQ4OCw3IEBACiAJCQkJQkM0MDc2MDkxMjRGRjAyNzAwNjhGMjBBIC8qIFdLVVJMLmNwcCBpbiBT
b3VyY2VzICovLAogCQkJCUJDNDA3NjFCMTI0RkYwMzcwMDY4RjIwQSAvKiBXS1VSTENGLm1tIGlu
IFNvdXJjZXMgKi8sCiAJCQkJQkM0MDc2MEIxMjRGRjAyNzAwNjhGMjBBIC8qIFdLVVJMUmVxdWVz
dC5jcHAgaW4gU291cmNlcyAqLywKKwkJCQk3QUYyMzYyMDFFNzlBM0U0MDA0MzhBMDUgLyogV2Vi
RXJyb3JzLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUJDNDA3NjJBMTI0RkYwNDAwMDY4RjIwQSAv
KiBXS1VSTFJlcXVlc3ROUy5tbSBpbiBTb3VyY2VzICovLAogCQkJCUJDNDA3NjBEMTI0RkYwMjcw
MDY4RjIwQSAvKiBXS1VSTFJlc3BvbnNlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUJDNDA3NjJD
MTI0RkYwNDAwMDY4RjIwQSAvKiBXS1VSTFJlc3BvbnNlTlMubW0gaW4gU291cmNlcyAqLywKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvbWFjL1dl
YkVycm9yc01hYy5tbSBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQv
bWFjL1dlYkVycm9yc01hYy5tbQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMWYxNzFl
ODg2OGYuLjAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29y
ZVN1cHBvcnQvbWFjL1dlYkVycm9yc01hYy5tbQorKysgL2Rldi9udWxsCkBAIC0xLDEwNyArMCww
IEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDEwLTIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0Ogot
ICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92
ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkg
Zm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhl
Ci0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0
aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkg
QVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKLSAqIEFORCBBTlkgRVhQ
UkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LAotICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5F
U1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZF
TlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCi0gKiBCRSBMSUFCTEUgRk9S
IEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9S
Ci0gKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LCBQUk9DVVJFTUVOVCBPRgotICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBP
RiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCi0gKiBJTlRFUlJVUFRJT04pIEhP
V0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgot
ICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkKLSAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBP
RiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKLSAqIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaW1wb3J0ICJjb25maWcuaCIKLSNpbXBvcnQgIldlYkVy
cm9ycy5oIgotCi0jaW1wb3J0ICJBUElFcnJvci5oIgotI2ltcG9ydCAiV0tFcnJvclJlZi5oIgot
I2ltcG9ydCA8V2ViQ29yZS9Mb2NhbGl6ZWRTdHJpbmdzLmg+Ci0jaW1wb3J0IDxXZWJDb3JlL1Jl
c291cmNlUmVxdWVzdC5oPgotI2ltcG9ydCA8V2ViQ29yZS9SZXNvdXJjZVJlc3BvbnNlLmg+Ci0K
LXVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwotdXNpbmcgbmFtZXNwYWNlIFdlYktpdDsKLQotbmFt
ZXNwYWNlIFdlYktpdCB7Ci0KLXN0YXRpYyBSZXRhaW5QdHI8TlNFcnJvcj4gY3JlYXRlTlNFcnJv
cihOU1N0cmluZyogZG9tYWluLCBpbnQgY29kZSwgTlNVUkwgKlVSTCkKLXsKLSAgICBOU0RpY3Rp
b25hcnkgKnVzZXJJbmZvID0gW05TRGljdGlvbmFyeSBkaWN0aW9uYXJ5V2l0aE9iamVjdHNBbmRL
ZXlzOgotICAgICAgICBVUkwsIEAiTlNFcnJvckZhaWxpbmdVUkxLZXkiLAotICAgICAgICBbVVJM
IGFic29sdXRlU3RyaW5nXSwgQCJOU0Vycm9yRmFpbGluZ1VSTFN0cmluZ0tleSIsCi0gICAgICAg
IG5pbF07Ci0KLSAgICByZXR1cm4gYWRvcHROUyhbW05TRXJyb3IgYWxsb2NdIGluaXRXaXRoRG9t
YWluOmRvbWFpbiBjb2RlOmNvZGUgdXNlckluZm86dXNlckluZm9dKTsKLX0KLQotLy8gVXNlIE5T
RXJyb3IncyBpZiBhdmFpbGFibGUuCi0KLVJlc291cmNlRXJyb3IgY2FuY2VsbGVkRXJyb3IoY29u
c3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0KQotewotICAgIHJldHVybiBSZXNvdXJjZUVycm9y
KGNyZWF0ZU5TRXJyb3IoTlNVUkxFcnJvckRvbWFpbiwgTlNVUkxFcnJvckNhbmNlbGxlZCwgcmVx
dWVzdC51cmwoKSkuZ2V0KCkpOwotfQotCi1SZXNvdXJjZUVycm9yIGZpbGVEb2VzTm90RXhpc3RF
cnJvcihjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiByZXNwb25zZSkKLXsKLSAgICByZXR1cm4gUmVz
b3VyY2VFcnJvcihjcmVhdGVOU0Vycm9yKE5TVVJMRXJyb3JEb21haW4sIE5TVVJMRXJyb3JGaWxl
RG9lc05vdEV4aXN0LCByZXNwb25zZS51cmwoKSkuZ2V0KCkpOwotfQotCi0KLS8vIE90aGVyd2lz
ZSwgZmFsbGJhY2sgdG8gb3VyIG93biBlcnJvcnMuCi0KLVJlc291cmNlRXJyb3IgYmxvY2tlZEVy
cm9yKGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCkKLXsKLSAgICByZXR1cm4gUmVzb3Vy
Y2VFcnJvcihBUEk6OkVycm9yOjp3ZWJLaXRFcnJvckRvbWFpbigpLCBrV0tFcnJvckNvZGVDYW5u
b3RVc2VSZXN0cmljdGVkUG9ydCwgcmVxdWVzdC51cmwoKSwgV0VCX1VJX1NUUklORygiTm90IGFs
bG93ZWQgdG8gdXNlIHJlc3RyaWN0ZWQgbmV0d29yayBwb3J0IiwgIldlYktpdEVycm9yQ2Fubm90
VXNlUmVzdHJpY3RlZFBvcnQgZGVzY3JpcHRpb24iKSk7Ci19Ci0KLVJlc291cmNlRXJyb3IgYmxv
Y2tlZEJ5Q29udGVudEJsb2NrZXJFcnJvcihjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3Qp
Ci17Ci0gICAgcmV0dXJuIFJlc291cmNlRXJyb3IoQVBJOjpFcnJvcjo6d2ViS2l0RXJyb3JEb21h
aW4oKSwga1dLRXJyb3JDb2RlRnJhbWVMb2FkQmxvY2tlZEJ5Q29udGVudEJsb2NrZXIsIHJlcXVl
c3QudXJsKCksIFdFQl9VSV9TVFJJTkcoIlRoZSBVUkwgd2FzIGJsb2NrZWQgYnkgYSBjb250ZW50
IGJsb2NrZXIiLCAiV2ViS2l0RXJyb3JCbG9ja2VkQnlDb250ZW50QmxvY2tlciBkZXNjcmlwdGlv
biIpKTsKLX0KLQotUmVzb3VyY2VFcnJvciBjYW5ub3RTaG93VVJMRXJyb3IoY29uc3QgUmVzb3Vy
Y2VSZXF1ZXN0JiByZXF1ZXN0KQotewotICAgIHJldHVybiBSZXNvdXJjZUVycm9yKEFQSTo6RXJy
b3I6OndlYktpdEVycm9yRG9tYWluKCksIGtXS0Vycm9yQ29kZUNhbm5vdFNob3dVUkwsIHJlcXVl
c3QudXJsKCksIFdFQl9VSV9TVFJJTkcoIlRoZSBVUkwgY2Fu4oCZdCBiZSBzaG93biIsICJXZWJL
aXRFcnJvckNhbm5vdFNob3dVUkwgZGVzY3JpcHRpb24iKSk7Ci19Ci0KLVJlc291cmNlRXJyb3Ig
aW50ZXJydXB0ZWRGb3JQb2xpY3lDaGFuZ2VFcnJvcihjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJl
cXVlc3QpCi17Ci0gICAgcmV0dXJuIFJlc291cmNlRXJyb3IoQVBJOjpFcnJvcjo6d2ViS2l0RXJy
b3JEb21haW4oKSwga1dLRXJyb3JDb2RlRnJhbWVMb2FkSW50ZXJydXB0ZWRCeVBvbGljeUNoYW5n
ZSwgcmVxdWVzdC51cmwoKSwgV0VCX1VJX1NUUklORygiRnJhbWUgbG9hZCBpbnRlcnJ1cHRlZCIs
ICJXZWJLaXRFcnJvckZyYW1lTG9hZEludGVycnVwdGVkQnlQb2xpY3lDaGFuZ2UgZGVzY3JpcHRp
b24iKSk7Ci19Ci0KLSNpZiBFTkFCTEUoQ09OVEVOVF9GSUxURVJJTkcpCi1SZXNvdXJjZUVycm9y
IGJsb2NrZWRCeUNvbnRlbnRGaWx0ZXJFcnJvcihjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVl
c3QpCi17Ci0gICAgcmV0dXJuIFJlc291cmNlRXJyb3IoQVBJOjpFcnJvcjo6d2ViS2l0RXJyb3JE
b21haW4oKSwga1dLRXJyb3JDb2RlRnJhbWVMb2FkQmxvY2tlZEJ5Q29udGVudEZpbHRlciwgcmVx
dWVzdC51cmwoKSwgV0VCX1VJX1NUUklORygiVGhlIFVSTCB3YXMgYmxvY2tlZCBieSBhIGNvbnRl
bnQgZmlsdGVyIiwgIldlYktpdEVycm9yRnJhbWVMb2FkQmxvY2tlZEJ5Q29udGVudEZpbHRlciBk
ZXNjcmlwdGlvbiIpKTsKLX0KLSNlbmRpZgotCi1SZXNvdXJjZUVycm9yIGNhbm5vdFNob3dNSU1F
VHlwZUVycm9yKGNvbnN0IFJlc291cmNlUmVzcG9uc2UmIHJlc3BvbnNlKQotewotICAgIHJldHVy
biBSZXNvdXJjZUVycm9yKEFQSTo6RXJyb3I6OndlYktpdEVycm9yRG9tYWluKCksIGtXS0Vycm9y
Q29kZUNhbm5vdFNob3dNSU1FVHlwZSwgcmVzcG9uc2UudXJsKCksIFdFQl9VSV9TVFJJTkcoIkNv
bnRlbnQgd2l0aCBzcGVjaWZpZWQgTUlNRSB0eXBlIGNhbuKAmXQgYmUgc2hvd24iLCAiV2ViS2l0
RXJyb3JDYW5ub3RTaG93TUlNRVR5cGUgZGVzY3JpcHRpb24iKSk7Ci19Ci0KLVJlc291cmNlRXJy
b3IgcGx1Z2luV2lsbEhhbmRsZUxvYWRFcnJvcihjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiByZXNw
b25zZSkKLXsKLSAgICByZXR1cm4gUmVzb3VyY2VFcnJvcihBUEk6OkVycm9yOjp3ZWJLaXRFcnJv
ckRvbWFpbigpLCBrV0tFcnJvckNvZGVQbHVnSW5XaWxsSGFuZGxlTG9hZCwgcmVzcG9uc2UudXJs
KCksIFdFQl9VSV9TVFJJTkcoIlBsdWctaW4gaGFuZGxlZCBsb2FkIiwgIldlYktpdEVycm9yUGx1
Z0luV2lsbEhhbmRsZUxvYWQgZGVzY3JpcHRpb24iKSk7Ci19Ci0KLVJlc291cmNlRXJyb3IgaW50
ZXJuYWxFcnJvcihjb25zdCBVUkwmIHVybCkKLXsKLSAgICByZXR1cm4gUmVzb3VyY2VFcnJvcihB
UEk6OkVycm9yOjp3ZWJLaXRFcnJvckRvbWFpbigpLCBrV0tFcnJvckludGVybmFsLCB1cmwsIFdF
Ql9VSV9TVFJJTkcoIldlYktpdCBlbmNvdW50ZXJlZCBhbiBpbnRlcm5hbCBlcnJvciIsICJXZWJL
aXRFcnJvckludGVybmFsIGRlc2NyaXB0aW9uIikpOwotfQotCi19IC8vIG5hbWVzcGFjZSBXZWJL
aXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9ndGsvV2Vi
UHJpbnRPcGVyYXRpb25HdGsuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdl
L2d0ay9XZWJQcmludE9wZXJhdGlvbkd0ay5jcHAKaW5kZXggZmRkNDE5Mzk0OGYuLjFhNWUxMDJl
YzYzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvZ3RrL1dl
YlByaW50T3BlcmF0aW9uR3RrLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dl
YlBhZ2UvZ3RrL1dlYlByaW50T3BlcmF0aW9uR3RrLmNwcApAQCAtMjcsMTEgKzI3LDExIEBACiAj
aW5jbHVkZSAiV2ViUHJpbnRPcGVyYXRpb25HdGsuaCIKIAogI2luY2x1ZGUgIldlYkNvcmVBcmd1
bWVudENvZGVycy5oIgorI2luY2x1ZGUgIldlYkVycm9ycy5oIgogI2luY2x1ZGUgIldlYlBhZ2Uu
aCIKICNpbmNsdWRlICJXZWJQYWdlUHJveHlNZXNzYWdlcy5oIgogI2luY2x1ZGUgIldlYlByb2Nl
c3MuaCIKICNpbmNsdWRlIDxXZWJDb3JlL0RvY3VtZW50TG9hZGVyLmg+Ci0jaW5jbHVkZSA8V2Vi
Q29yZS9FcnJvcnNHdGsuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0ZyYW1lLmg+CiAjaW5jbHVkZSA8
V2ViQ29yZS9JbnRSZWN0Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9Ob3RJbXBsZW1lbnRlZC5oPgo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>305093</attachid>
            <date>2017-03-22 03:25:13 -0700</date>
            <delta_ts>2017-04-04 10:50:05 -0700</delta_ts>
            <desc>Try to fix GTK+ build</desc>
            <filename>wk2-web-errors.diff</filename>
            <type>text/plain</type>
            <size>66526</size>
            <attacher name="Carlos Garcia Campos">cgarcia</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCA5Y2Q0YzQyY2U3Yi4uY2QyOWI1YjE2ZGMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxNiBAQAorMjAxNy0wMy0xNSAgQ2FybG9zIEdhcmNpYSBDYW1wb3MgIDxjZ2FyY2lhQGln
YWxpYS5jb20+CisKKyAgICAgICAgTW92ZSBXZWJFcnJvcnMgZnJvbSBXZWJQcm9jZXNzIHRvIFNo
YXJlZCBhbmQgZ2V0IHJpZCBvZiBFcnJvcnNHdGsgaW4gV2ViQ29yZQorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTU2OTc0CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUmVtb3ZlIEVycm9yc0d0ay4KKworICAg
ICAgICAqIFBsYXRmb3JtR1RLLmNtYWtlOgorICAgICAgICAqIHBsYXRmb3JtL2d0ay9FcnJvcnNH
dGsuY3BwOiBSZW1vdmVkLgorICAgICAgICAqIHBsYXRmb3JtL2d0ay9FcnJvcnNHdGsuaDogUmVt
b3ZlZC4KKwogMjAxNy0wMy0yMiAgQ2FybG9zIEdhcmNpYSBDYW1wb3MgIDxjZ2FyY2lhQGlnYWxp
YS5jb20+CiAKICAgICAgICAgTWFrZSBpdCBwb3NzaWJsZSB0byB1c2UgV0VCX1VJX1NUUklORyBt
YWNyb3MgdG8gbWFyayB0cmFuc2xhdGFibGUgc3RyaW5ncyBpbiBnbGliIGJhc2VkIHBvcnRzCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9QbGF0Zm9ybUdUSy5jbWFrZSBiL1NvdXJjZS9XZWJD
b3JlL1BsYXRmb3JtR1RLLmNtYWtlCmluZGV4IDYyNTJlYjk3NDJmLi5kZjc2NTA5YzQwNyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvUGxhdGZvcm1HVEsuY21ha2UKKysrIGIvU291cmNlL1dl
YkNvcmUvUGxhdGZvcm1HVEsuY21ha2UKQEAgLTEzOCw3ICsxMzgsNiBAQCBsaXN0KEFQUEVORCBX
ZWJDb3JlX1NPVVJDRVMKICAgICBwbGF0Zm9ybS9ncmFwaGljcy94MTEvWFVuaXF1ZVJlc291cmNl
LmNwcAogCiAgICAgcGxhdGZvcm0vZ3RrL0RyYWdEYXRhR3RrLmNwcAotICAgIHBsYXRmb3JtL2d0
ay9FcnJvcnNHdGsuY3BwCiAgICAgcGxhdGZvcm0vZ3RrL0xvY2FsaXplZFN0cmluZ3NHdGsuY3Bw
CiAgICAgcGxhdGZvcm0vZ3RrL01JTUVUeXBlUmVnaXN0cnlHdGsuY3BwCiAgICAgcGxhdGZvcm0v
Z3RrL1Bhc3RlYm9hcmRHdGsuY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ndGsvRXJyb3JzR3RrLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9FcnJvcnNH
dGsuY3BwCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA4ZGZkMTU4YjNiNC4uMDAwMDAw
MDAwMDAKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL0Vycm9yc0d0ay5jcHAKKysr
IC9kZXYvbnVsbApAQCAtMSwxMDAgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMSBJ
Z2FsaWEgUy5MLgotICoKLSAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2Fu
IHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKLSAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2Yg
dGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCi0gKiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBi
eSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKLSAqIHZlcnNpb24gMiBvZiB0
aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KLSAqCi0g
KiBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJl
IHVzZWZ1bCwKLSAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBp
bXBsaWVkIHdhcnJhbnR5IG9mCi0gKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQotICogTGlicmFyeSBHZW5lcmFsIFB1Ymxp
YyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCi0gKgotICogWW91IHNob3VsZCBoYXZlIHJlY2Vp
dmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQotICog
YWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5v
dCwgd3JpdGUgdG8KLSAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDUxIEZy
YW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsCi0gKiBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVT
QS4KLSAqLwotCi0jaW5jbHVkZSAiY29uZmlnLmgiCi0jaW5jbHVkZSAiRXJyb3JzR3RrLmgiCi0K
LSNpbmNsdWRlICJSZXNvdXJjZUVycm9yLmgiCi0jaW5jbHVkZSAiUmVzb3VyY2VSZXF1ZXN0Lmgi
Ci0jaW5jbHVkZSAiUmVzb3VyY2VSZXNwb25zZS5oIgotI2luY2x1ZGUgPGdsaWIvZ2kxOG4tbGli
Lmg+Ci0KLW5hbWVzcGFjZSBXZWJDb3JlIHsKLQotUmVzb3VyY2VFcnJvciBjYW5jZWxsZWRFcnJv
cihjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QpCi17Ci0gICAgcmV0dXJuIFJlc291cmNl
RXJyb3IoZXJyb3JEb21haW5OZXR3b3JrLCBOZXR3b3JrRXJyb3JDYW5jZWxsZWQsIHJlcXVlc3Qu
dXJsKCksIF8oIkxvYWQgcmVxdWVzdCBjYW5jZWxsZWQiKSk7Ci19Ci0KLVJlc291cmNlRXJyb3Ig
YmxvY2tlZEVycm9yKGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCkKLXsKLSAgICByZXR1
cm4gUmVzb3VyY2VFcnJvcihlcnJvckRvbWFpblBvbGljeSwgUG9saWN5RXJyb3JDYW5ub3RVc2VS
ZXN0cmljdGVkUG9ydCwgcmVxdWVzdC51cmwoKSwgXygiTm90IGFsbG93ZWQgdG8gdXNlIHJlc3Ry
aWN0ZWQgbmV0d29yayBwb3J0IikpOwotfQotCi1SZXNvdXJjZUVycm9yIGJsb2NrZWRCeUNvbnRl
bnRCbG9ja2VyRXJyb3IoY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0KQotewotICAgIHJl
dHVybiBSZXNvdXJjZUVycm9yKGVycm9yRG9tYWluUG9saWN5LCBQb2xpY3lFcnJvckJsb2NrZWRC
eUNvbnRlbnRCbG9ja2VyLCByZXF1ZXN0LnVybCgpLCBfKCJCbG9ja2VkIGJ5IGNvbnRlbnQgYmxv
Y2tlciIpKTsKLX0KLQotUmVzb3VyY2VFcnJvciBjYW5ub3RTaG93VVJMRXJyb3IoY29uc3QgUmVz
b3VyY2VSZXF1ZXN0JiByZXF1ZXN0KQotewotICAgIHJldHVybiBSZXNvdXJjZUVycm9yKGVycm9y
RG9tYWluUG9saWN5LCBQb2xpY3lFcnJvckNhbm5vdFNob3dVUkwsIHJlcXVlc3QudXJsKCksIF8o
IlVSTCBjYW5ub3QgYmUgc2hvd24iKSk7Ci19Ci0KLVJlc291cmNlRXJyb3IgaW50ZXJydXB0ZWRG
b3JQb2xpY3lDaGFuZ2VFcnJvcihjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QpCi17Ci0g
ICAgcmV0dXJuIFJlc291cmNlRXJyb3IoZXJyb3JEb21haW5Qb2xpY3ksIFBvbGljeUVycm9yRnJh
bWVMb2FkSW50ZXJydXB0ZWRCeVBvbGljeUNoYW5nZSwgcmVxdWVzdC51cmwoKSwgXygiRnJhbWUg
bG9hZCB3YXMgaW50ZXJydXB0ZWQiKSk7Ci19Ci0KLVJlc291cmNlRXJyb3IgY2Fubm90U2hvd01J
TUVUeXBlRXJyb3IoY29uc3QgUmVzb3VyY2VSZXNwb25zZSYgcmVzcG9uc2UpCi17Ci0gICAgcmV0
dXJuIFJlc291cmNlRXJyb3IoZXJyb3JEb21haW5Qb2xpY3ksIFBvbGljeUVycm9yQ2Fubm90U2hv
d01pbWVUeXBlLCByZXNwb25zZS51cmwoKSwgXygiQ29udGVudCB3aXRoIHRoZSBzcGVjaWZpZWQg
TUlNRSB0eXBlIGNhbm5vdCBiZSBzaG93biIpKTsKLX0KLQotUmVzb3VyY2VFcnJvciBmaWxlRG9l
c05vdEV4aXN0RXJyb3IoY29uc3QgUmVzb3VyY2VSZXNwb25zZSYgcmVzcG9uc2UpCi17Ci0gICAg
cmV0dXJuIFJlc291cmNlRXJyb3IoZXJyb3JEb21haW5OZXR3b3JrLCBOZXR3b3JrRXJyb3JGaWxl
RG9lc05vdEV4aXN0LCByZXNwb25zZS51cmwoKSwgXygiRmlsZSBkb2VzIG5vdCBleGlzdCIpKTsK
LX0KLQotUmVzb3VyY2VFcnJvciBwbHVnaW5XaWxsSGFuZGxlTG9hZEVycm9yKGNvbnN0IFJlc291
cmNlUmVzcG9uc2UmIHJlc3BvbnNlKQotewotICAgIHJldHVybiBSZXNvdXJjZUVycm9yKGVycm9y
RG9tYWluUGx1Z2luLCBQbHVnaW5FcnJvcldpbGxIYW5kbGVMb2FkLCByZXNwb25zZS51cmwoKSwg
XygiUGx1Z2luIHdpbGwgaGFuZGxlIGxvYWQiKSk7Ci19Ci0KLVJlc291cmNlRXJyb3IgZG93bmxv
YWROZXR3b3JrRXJyb3IoY29uc3QgUmVzb3VyY2VFcnJvciYgbmV0d29ya0Vycm9yKQotewotICAg
IHJldHVybiBSZXNvdXJjZUVycm9yKGVycm9yRG9tYWluRG93bmxvYWQsIERvd25sb2FkRXJyb3JO
ZXR3b3JrLCBuZXR3b3JrRXJyb3IuZmFpbGluZ1VSTCgpLCBuZXR3b3JrRXJyb3IubG9jYWxpemVk
RGVzY3JpcHRpb24oKSk7Ci19Ci0KLVJlc291cmNlRXJyb3IgZG93bmxvYWRDYW5jZWxsZWRCeVVz
ZXJFcnJvcihjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiByZXNwb25zZSkKLXsKLSAgICByZXR1cm4g
UmVzb3VyY2VFcnJvcihlcnJvckRvbWFpbkRvd25sb2FkLCBEb3dubG9hZEVycm9yQ2FuY2VsbGVk
QnlVc2VyLCByZXNwb25zZS51cmwoKSwgXygiVXNlciBjYW5jZWxsZWQgdGhlIGRvd25sb2FkIikp
OwotfQotCi1SZXNvdXJjZUVycm9yIGRvd25sb2FkRGVzdGluYXRpb25FcnJvcihjb25zdCBSZXNv
dXJjZVJlc3BvbnNlJiByZXNwb25zZSwgY29uc3QgU3RyaW5nJiBlcnJvck1lc3NhZ2UpCi17Ci0g
ICAgcmV0dXJuIFJlc291cmNlRXJyb3IoZXJyb3JEb21haW5Eb3dubG9hZCwgRG93bmxvYWRFcnJv
ckRlc3RpbmF0aW9uLCByZXNwb25zZS51cmwoKSwgZXJyb3JNZXNzYWdlKTsKLX0KLQotUmVzb3Vy
Y2VFcnJvciBwcmludEVycm9yKGNvbnN0IFVSTCYgZmFpbGluZ1VSTCwgY29uc3QgU3RyaW5nJiBl
cnJvck1lc3NhZ2UpCi17Ci0gICAgcmV0dXJuIFJlc291cmNlRXJyb3IoZXJyb3JEb21haW5Qcmlu
dCwgUHJpbnRFcnJvckdlbmVyYWwsIGZhaWxpbmdVUkwsIGVycm9yTWVzc2FnZSk7Ci19Ci0KLVJl
c291cmNlRXJyb3IgcHJpbnRlck5vdEZvdW5kRXJyb3IoY29uc3QgVVJMJiBmYWlsaW5nVVJMKQot
ewotICAgIHJldHVybiBSZXNvdXJjZUVycm9yKGVycm9yRG9tYWluUHJpbnQsIFByaW50RXJyb3JQ
cmludGVyTm90Rm91bmQsIGZhaWxpbmdVUkwsIF8oIlByaW50ZXIgbm90IGZvdW5kIikpOwotfQot
Ci1SZXNvdXJjZUVycm9yIGludmFsaWRQYWdlUmFuZ2VUb1ByaW50KGNvbnN0IFVSTCYgZmFpbGlu
Z1VSTCkKLXsKLSAgICByZXR1cm4gUmVzb3VyY2VFcnJvcihlcnJvckRvbWFpblByaW50LCBQcmlu
dEVycm9ySW52YWxpZFBhZ2VSYW5nZSwgZmFpbGluZ1VSTCwgXygiSW52YWxpZCBwYWdlIHJhbmdl
IikpOwotfQotCi19IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ndGsvRXJyb3JzR3RrLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
dGsvRXJyb3JzR3RrLmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDc2MWRjY2IyNmVm
Li4wMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvRXJyb3JzR3Rr
LmgKKysrIC9kZXYvbnVsbApAQCAtMSw5NCArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAy
MDExIElnYWxpYSBTLkwuCi0gKgotICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlv
dSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgotICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJt
cyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKLSAqIExpY2Vuc2UgYXMgcHVibGlz
aGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgotICogdmVyc2lvbiAy
IG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgot
ICoKLSAqIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdp
bGwgYmUgdXNlZnVsLAotICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4g
dGhlIGltcGxpZWQgd2FycmFudHkgb2YKLSAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZP
UiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCi0gKiBMaWJyYXJ5IEdlbmVyYWwg
UHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KLSAqCi0gKiBZb3Ugc2hvdWxkIGhhdmUg
cmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNl
Ci0gKiBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJTkcuTElCLiAg
SWYgbm90LCB3cml0ZSB0bwotICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwg
NTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwKLSAqIEJvc3RvbiwgTUEgMDIxMTAtMTMw
MSwgVVNBLgotICovCi0KLSNpZm5kZWYgRXJyb3JzR3RrX2gKLSNkZWZpbmUgRXJyb3JzR3RrX2gK
LQotI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgotCi1uYW1lc3BhY2UgV2ViQ29yZSB7
Ci0KLWNsYXNzIFJlc291cmNlRXJyb3I7Ci1jbGFzcyBSZXNvdXJjZVJlcXVlc3Q7Ci1jbGFzcyBS
ZXNvdXJjZVJlc3BvbnNlOwotY2xhc3MgVVJMOwotCi1jb25zdCBjaGFyKiBjb25zdCBlcnJvckRv
bWFpbk5ldHdvcmsgPSAiV2ViS2l0TmV0d29ya0Vycm9yIjsKLWNvbnN0IGNoYXIqIGNvbnN0IGVy
cm9yRG9tYWluUG9saWN5ID0gIldlYktpdFBvbGljeUVycm9yIjsKLWNvbnN0IGNoYXIqIGNvbnN0
IGVycm9yRG9tYWluUGx1Z2luID0gIldlYktpdFBsdWdpbkVycm9yIjsKLWNvbnN0IGNoYXIqIGNv
bnN0IGVycm9yRG9tYWluRG93bmxvYWQgPSAiV2ViS2l0RG93bmxvYWRFcnJvciI7Ci1jb25zdCBj
aGFyKiBjb25zdCBlcnJvckRvbWFpblByaW50ID0gIldlYktpdFByaW50RXJyb3IiOwotCi1lbnVt
IE5ldHdvcmtFcnJvciB7Ci0gICAgTmV0d29ya0Vycm9yRmFpbGVkID0gMzk5LAotICAgIE5ldHdv
cmtFcnJvclRyYW5zcG9ydCA9IDMwMCwKLSAgICBOZXR3b3JrRXJyb3JVbmtub3duUHJvdG9jb2wg
PSAzMDEsCi0gICAgTmV0d29ya0Vycm9yQ2FuY2VsbGVkID0gMzAyLAotICAgIE5ldHdvcmtFcnJv
ckZpbGVEb2VzTm90RXhpc3QgPSAzMDMKLX07Ci0KLS8vIFN5bmMnZCB3aXRoIE1hYydzIFdlYktp
dCBFcnJvcnMuCi1lbnVtIFBvbGljeUVycm9yIHsKLSAgICBQb2xpY3lFcnJvckZhaWxlZCA9IDE5
OSwKLSAgICBQb2xpY3lFcnJvckNhbm5vdFNob3dNaW1lVHlwZSA9IDEwMCwKLSAgICBQb2xpY3lF
cnJvckNhbm5vdFNob3dVUkwgPSAxMDEsCi0gICAgUG9saWN5RXJyb3JGcmFtZUxvYWRJbnRlcnJ1
cHRlZEJ5UG9saWN5Q2hhbmdlID0gMTAyLAotICAgIFBvbGljeUVycm9yQ2Fubm90VXNlUmVzdHJp
Y3RlZFBvcnQgPSAxMDMsCi0gICAgUG9saWN5RXJyb3JCbG9ja2VkQnlDb250ZW50QmxvY2tlciA9
IDEwNCwKLX07Ci0KLWVudW0gUGx1Z2luRXJyb3IgewotICAgIFBsdWdpbkVycm9yRmFpbGVkID0g
Mjk5LAotICAgIFBsdWdpbkVycm9yQ2Fubm90RmluZFBsdWdpbiA9IDIwMCwKLSAgICBQbHVnaW5F
cnJvckNhbm5vdExvYWRQbHVnaW4gPSAyMDEsCi0gICAgUGx1Z2luRXJyb3JKYXZhVW5hdmFpbGFi
bGUgPSAyMDIsCi0gICAgUGx1Z2luRXJyb3JDb25uZWN0aW9uQ2FuY2VsbGVkID0gMjAzLAotICAg
IFBsdWdpbkVycm9yV2lsbEhhbmRsZUxvYWQgPSAyMDQKLX07Ci0KLWVudW0gRG93bmxvYWRFcnJv
ciB7Ci0gICAgRG93bmxvYWRFcnJvck5ldHdvcmsgPSA0OTksCi0gICAgRG93bmxvYWRFcnJvckNh
bmNlbGxlZEJ5VXNlciA9IDQwMCwKLSAgICBEb3dubG9hZEVycm9yRGVzdGluYXRpb24gPSA0MDEK
LX07Ci0KLWVudW0gUHJpbnRFcnJvciB7Ci0gICAgUHJpbnRFcnJvckdlbmVyYWwgPSA1OTksCi0g
ICAgUHJpbnRFcnJvclByaW50ZXJOb3RGb3VuZCA9IDUwMCwKLSAgICBQcmludEVycm9ySW52YWxp
ZFBhZ2VSYW5nZSA9IDUwMQotfTsKLQotUmVzb3VyY2VFcnJvciBjYW5jZWxsZWRFcnJvcihjb25z
dCBSZXNvdXJjZVJlcXVlc3QmKTsKLVJlc291cmNlRXJyb3IgYmxvY2tlZEVycm9yKGNvbnN0IFJl
c291cmNlUmVxdWVzdCYpOwotUmVzb3VyY2VFcnJvciBibG9ja2VkQnlDb250ZW50QmxvY2tlckVy
cm9yKGNvbnN0IFJlc291cmNlUmVxdWVzdCYpOwotUmVzb3VyY2VFcnJvciBjYW5ub3RTaG93VVJM
RXJyb3IoY29uc3QgUmVzb3VyY2VSZXF1ZXN0Jik7Ci1SZXNvdXJjZUVycm9yIGludGVycnVwdGVk
Rm9yUG9saWN5Q2hhbmdlRXJyb3IoY29uc3QgUmVzb3VyY2VSZXF1ZXN0Jik7Ci1SZXNvdXJjZUVy
cm9yIGNhbm5vdFNob3dNSU1FVHlwZUVycm9yKGNvbnN0IFJlc291cmNlUmVzcG9uc2UmKTsKLVJl
c291cmNlRXJyb3IgZmlsZURvZXNOb3RFeGlzdEVycm9yKGNvbnN0IFJlc291cmNlUmVzcG9uc2Um
KTsKLVJlc291cmNlRXJyb3IgcGx1Z2luV2lsbEhhbmRsZUxvYWRFcnJvcihjb25zdCBSZXNvdXJj
ZVJlc3BvbnNlJik7Ci1SZXNvdXJjZUVycm9yIGRvd25sb2FkTmV0d29ya0Vycm9yKGNvbnN0IFJl
c291cmNlRXJyb3ImKTsKLVJlc291cmNlRXJyb3IgZG93bmxvYWRDYW5jZWxsZWRCeVVzZXJFcnJv
cihjb25zdCBSZXNvdXJjZVJlc3BvbnNlJik7Ci1SZXNvdXJjZUVycm9yIGRvd25sb2FkRGVzdGlu
YXRpb25FcnJvcihjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiwgY29uc3QgU3RyaW5nJiBlcnJvck1l
c3NhZ2UpOwotUmVzb3VyY2VFcnJvciBwcmludEVycm9yKGNvbnN0IFVSTCYgZmFpbGluZ1VSTCwg
Y29uc3QgU3RyaW5nJiBlcnJvck1lc3NhZ2UpOwotUmVzb3VyY2VFcnJvciBwcmludGVyTm90Rm91
bmRFcnJvcihjb25zdCBVUkwmIGZhaWxpbmdVUkwpOwotUmVzb3VyY2VFcnJvciBpbnZhbGlkUGFn
ZVJhbmdlVG9QcmludChjb25zdCBVUkwmIGZhaWxpbmdVUkwpOwotCi19Ci0KLSNlbmRpZgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL3BvL0NoYW5nZUxvZyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9wby9DaGFuZ2VMb2cKaW5kZXggN2E5ZjUzZjg1ZjYuLjdi
ODM4Mjc4NjM3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvcG8vQ2hh
bmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9wby9DaGFuZ2VMb2cKQEAg
LTEsMyArMSwxMiBAQAorMjAxNy0wMy0xNSAgQ2FybG9zIEdhcmNpYSBDYW1wb3MgIDxjZ2FyY2lh
QGlnYWxpYS5jb20+CisKKyAgICAgICAgTW92ZSBXZWJFcnJvcnMgZnJvbSBXZWJQcm9jZXNzIHRv
IFNoYXJlZCBhbmQgZ2V0IHJpZCBvZiBFcnJvcnNHdGsgaW4gV2ViQ29yZQorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTU2OTc0CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBQT1RGSUxFUy5pbjogQWRkIG5l
dyBwYXRocyB3aXRoIHRyYW5zbGF0YWJsZSBzdHJpbmdzLgorCiAyMDE3LTAzLTIyICBDYXJsb3Mg
R2FyY2lhIENhbXBvcyAgPGNnYXJjaWFAaWdhbGlhLmNvbT4KIAogICAgICAgICBNYWtlIGl0IHBv
c3NpYmxlIHRvIHVzZSBXRUJfVUlfU1RSSU5HIG1hY3JvcyB0byBtYXJrIHRyYW5zbGF0YWJsZSBz
dHJpbmdzIGluIGdsaWIgYmFzZWQgcG9ydHMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2d0ay9wby9QT1RGSUxFUy5pbiBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9w
by9QT1RGSUxFUy5pbgppbmRleCA4NzEwMTIwMTQ4Yy4uNDRmOTA2N2MyY2QgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9wby9QT1RGSUxFUy5pbgorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ndGsvcG8vUE9URklMRVMuaW4KQEAgLTEsNyArMSwxMCBAQAogIyBM
aXN0IG9mIHNvdXJjZSBmaWxlcyB3aGljaCBjb250YWluIHRyYW5zbGF0YWJsZSBzdHJpbmdzLgot
RXJyb3JzR3RrLmNwcAogTG9jYWxpemVkU3RyaW5nc0d0ay5jcHAKIC4uL0xvY2FsaXplZFN0cmlu
Z3MuY3BwCisuLi8uLi8uLi9XZWJLaXQyL1NoYXJlZC9XZWJFcnJvcnMuY3BwCisuLi8uLi8uLi9X
ZWJLaXQyL1NoYXJlZC9nbGliL1dlYkVycm9yc0dsaWIuY3BwCisuLi8uLi8uLi9XZWJLaXQyL1No
YXJlZC9ndGsvV2ViRXJyb3JzR3RrLmNwcAorLi4vLi4vLi4vV2ViS2l0Mi9TaGFyZWQvc291cC9X
ZWJFcnJvcnNTb3VwLmNwcAogLi4vLi4vLi4vV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJL
aXRBdXRoZW50aWNhdGlvbkRpYWxvZy5jcHAKIC4uLy4uLy4uL1dlYktpdDIvVUlQcm9jZXNzL0FQ
SS9ndGsvV2ViS2l0RG93bmxvYWQuY3BwCiAuLi8uLi8uLi9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkv
Z3RrL1dlYktpdEZhdmljb25EYXRhYmFzZS5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQy
L0NNYWtlTGlzdHMudHh0IGIvU291cmNlL1dlYktpdDIvQ01ha2VMaXN0cy50eHQKaW5kZXggYjBj
ZGJkZDcwOGUuLjEyYjVlYjVhNjg3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9DTWFrZUxp
c3RzLnR4dAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9DTWFrZUxpc3RzLnR4dApAQCAtMTg4LDYgKzE4
OCw3IEBAIHNldChXZWJLaXQyX1NPVVJDRVMKICAgICBTaGFyZWQvV2ViQ29udGV4dE1lbnVJdGVt
LmNwcAogICAgIFNoYXJlZC9XZWJDb250ZXh0TWVudUl0ZW1EYXRhLmNwcAogICAgIFNoYXJlZC9X
ZWJDb3JlQXJndW1lbnRDb2RlcnMuY3BwCisgICAgU2hhcmVkL1dlYkVycm9ycy5jcHAKICAgICBT
aGFyZWQvV2ViRXZlbnQuY3BwCiAgICAgU2hhcmVkL1dlYkV2ZW50Q29udmVyc2lvbi5jcHAKICAg
ICBTaGFyZWQvV2ViR2VvbG9jYXRpb25Qb3NpdGlvbi5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwppbmRleCA1MDliNWZh
YWYwNC4uMmJjMmFkMzA5ZDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwor
KysgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKQEAgLTEsMyArMSw2NyBAQAorMjAxNy0wMy0x
NSAgQ2FybG9zIEdhcmNpYSBDYW1wb3MgIDxjZ2FyY2lhQGlnYWxpYS5jb20+CisKKyAgICAgICAg
TW92ZSBXZWJFcnJvcnMgZnJvbSBXZWJQcm9jZXNzIHRvIFNoYXJlZCBhbmQgZ2V0IHJpZCBvZiBF
cnJvcnNHdGsgaW4gV2ViQ29yZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MTU2OTc0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgV2ViRXJyb3JzIGFyZSBub3Qgb25seSB1c2VkIGJ5IHRoZSBmcmFtZSBsb2Fk
ZXIgY2xpZW50IGluIHRoZSB3ZWIgcHJvY2VzcywgYnV0IGFsc28gYnkgdGhlIG5ldHdvcmsgcHJv
Y2Vzcy4gU28sCisgICAgICAgIG1vdmUgdGhlbSB0byBTaGFyZWQgbWFrZSBtb3N0IG9mIHRoZSBp
bXBsZW1lbnRhdGlvbiBjcm9zcy1wbGF0Zm9ybS4KKworICAgICAgICAqIENNYWtlTGlzdHMudHh0
OiBBZGQgbmV3IGZpbGVzIHRvIGNvbXBpbGF0aW9uLgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNz
L3NvdXAvTmV0d29ya0RhdGFUYXNrU291cC5jcHA6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtE
YXRhVGFza1NvdXA6OmRvd25sb2FkKTogVXNlIFdlYkVycm9ycyBkaXJlY3RseSBpbnN0ZWFkIG9m
IHBsYXRmb3JtIG1ldGhvZHMgdGhhdCBhcmUgbm8gbG9uZ2VyIG5lZWRlZC4KKyAgICAgICAgKFdl
YktpdDo6TmV0d29ya0RhdGFUYXNrU291cDo6d3JpdGVEb3dubG9hZENhbGxiYWNrKTogRGl0dG8u
CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtEYXRhVGFza1NvdXA6OmRpZEZpbmlzaERvd25sb2Fk
KTogRGl0dG8uCisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtEYXRhVGFza1NvdXA6OmRpZEZhaWwp
OiBEaXR0by4KKyAgICAgICAgKiBQbGF0Zm9ybUdUSy5jbWFrZTogQWRkIG5ldyBmaWxlcyB0byBj
b21waWxhdGlvbiBhbmQgcmVtb3ZlIERvd25sb2FkU291cEVycm9yc0d0ay5jcHAKKyAgICAgICAg
KiBQbGF0Zm9ybU1hYy5jbWFrZToKKyAgICAgICAgKiBTaGFyZWQvQVBJL0FQSUVycm9yLmNwcDog
QWRkIGVycm9yIGRvbWFpbnMgdXNlZCBieSBnbGliIGJhc2VkIHBvcnRzLgorICAgICAgICAoQVBJ
OjpFcnJvcjo6d2ViS2l0TmV0d29ya0Vycm9yRG9tYWluKToKKyAgICAgICAgKEFQSTo6RXJyb3I6
OndlYktpdFBvbGljeUVycm9yRG9tYWluKToKKyAgICAgICAgKEFQSTo6RXJyb3I6OndlYktpdFBs
dWdpbkVycm9yRG9tYWluKToKKyAgICAgICAgKEFQSTo6RXJyb3I6OndlYktpdERvd25sb2FkRXJy
b3JEb21haW4pOgorICAgICAgICAoQVBJOjpFcnJvcjo6d2ViS2l0UHJpbnRFcnJvckRvbWFpbik6
CisgICAgICAgICogU2hhcmVkL0FQSS9BUElFcnJvci5oOgorICAgICAgICAqIFNoYXJlZC9Db2Nv
YS9XZWJFcnJvcnNDb2NvYS5tbTogQ29waWVkIGZyb20gU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9XZWJDb3JlU3VwcG9ydC9XZWJFcnJvcnMuaC4KKyAgICAgICAgKFdlYktpdDo6Y3JlYXRlTlNF
cnJvcik6CisgICAgICAgIChXZWJLaXQ6OmNhbmNlbGxlZEVycm9yKToKKyAgICAgICAgKFdlYktp
dDo6ZmlsZURvZXNOb3RFeGlzdEVycm9yKToKKyAgICAgICAgKiBTaGFyZWQvV2ViRXJyb3JzLmNw
cDogQ29waWVkIGZyb20gU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9n
dGsvV2ViRXJyb3JzR3RrLmNwcC4KKyAgICAgICAgKFdlYktpdDo6YmxvY2tlZEVycm9yKToKKyAg
ICAgICAgKFdlYktpdDo6YmxvY2tlZEJ5Q29udGVudEJsb2NrZXJFcnJvcik6CisgICAgICAgIChX
ZWJLaXQ6OmNhbm5vdFNob3dVUkxFcnJvcik6CisgICAgICAgIChXZWJLaXQ6OmludGVycnVwdGVk
Rm9yUG9saWN5Q2hhbmdlRXJyb3IpOgorICAgICAgICAoV2ViS2l0OjpibG9ja2VkQnlDb250ZW50
RmlsdGVyRXJyb3IpOgorICAgICAgICAoV2ViS2l0OjpjYW5ub3RTaG93TUlNRVR5cGVFcnJvcik6
CisgICAgICAgIChXZWJLaXQ6OnBsdWdpbldpbGxIYW5kbGVMb2FkRXJyb3IpOgorICAgICAgICAo
V2ViS2l0OjppbnRlcm5hbEVycm9yKToKKyAgICAgICAgKiBTaGFyZWQvV2ViRXJyb3JzLmg6IFJl
bmFtZWQgZnJvbSBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkVy
cm9ycy5oLgorICAgICAgICAqIFNoYXJlZC9nbGliL1dlYkVycm9yc0dsaWIuY3BwOiBSZW5hbWVk
IGZyb20gU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9ndGsvV2ViRXJy
b3JzR3RrLmNwcC4KKyAgICAgICAgKFdlYktpdDo6Y2FuY2VsbGVkRXJyb3IpOgorICAgICAgICAo
V2ViS2l0OjpmaWxlRG9lc05vdEV4aXN0RXJyb3IpOgorICAgICAgICAqIFNoYXJlZC9ndGsvV2Vi
RXJyb3JzR3RrLmNwcDogQ29waWVkIGZyb20gU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3Mv
RG93bmxvYWRzL2d0ay9Eb3dubG9hZFNvdXBFcnJvcnNHdGsuY3BwLgorICAgICAgICAoV2ViS2l0
OjpwcmludEVycm9yKToKKyAgICAgICAgKFdlYktpdDo6cHJpbnRlck5vdEZvdW5kRXJyb3IpOgor
ICAgICAgICAoV2ViS2l0OjppbnZhbGlkUGFnZVJhbmdlVG9QcmludCk6CisgICAgICAgICogU2hh
cmVkL3NvdXAvV2ViRXJyb3JzU291cC5jcHA6IFJlbmFtZWQgZnJvbSBTb3VyY2UvV2ViS2l0Mi9O
ZXR3b3JrUHJvY2Vzcy9Eb3dubG9hZHMvZ3RrL0Rvd25sb2FkU291cEVycm9yc0d0ay5jcHAuCisg
ICAgICAgIChXZWJLaXQ6OmRvd25sb2FkTmV0d29ya0Vycm9yKToKKyAgICAgICAgKFdlYktpdDo6
ZG93bmxvYWRDYW5jZWxsZWRCeVVzZXJFcnJvcik6CisgICAgICAgIChXZWJLaXQ6OmRvd25sb2Fk
RGVzdGluYXRpb25FcnJvcik6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0RG93
bmxvYWQuY3BwOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdEVycm9yLmNwcDoK
KyAgICAgICAgKHdlYmtpdF9uZXR3b3JrX2Vycm9yX3F1YXJrKToKKyAgICAgICAgKHdlYmtpdF9w
b2xpY3lfZXJyb3JfcXVhcmspOgorICAgICAgICAod2Via2l0X3BsdWdpbl9lcnJvcl9xdWFyayk6
CisgICAgICAgICh3ZWJraXRfZG93bmxvYWRfZXJyb3JfcXVhcmspOgorICAgICAgICAod2Via2l0
X3ByaW50X2Vycm9yX3F1YXJrKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRQ
cml2YXRlLmNwcDoKKyAgICAgICAgKHRvV2ViS2l0RXJyb3IpOgorICAgICAgICAodG9XZWJDb3Jl
RXJyb3IpOgorICAgICAgICAqIFdlYktpdDIueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAg
ICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L21hYy9XZWJFcnJvcnNNYWMubW06IFJl
bW92ZWQuCisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL2d0ay9XZWJQcmludE9wZXJhdGlv
bkd0ay5jcHA6CisKIDIwMTctMDMtMTkgIFdlbnNvbiBIc2llaCAgPHdlbnNvbl9oc2llaEBhcHBs
ZS5jb20+CiAKICAgICAgICAgVGVhY2ggVGV4dEluZGljYXRvciB0byBlc3RpbWF0ZSB0aGUgYmFj
a2dyb3VuZCBjb2xvciBvZiB0aGUgZ2l2ZW4gUmFuZ2UKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQyL05ldHdvcmtQcm9jZXNzL3NvdXAvTmV0d29ya0RhdGFUYXNrU291cC5jcHAgYi9Tb3VyY2Uv
V2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9zb3VwL05ldHdvcmtEYXRhVGFza1NvdXAuY3BwCmluZGV4
IDQxZDkyNmVhOTdiLi40ZWU5YTg4Y2IyOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvTmV0
d29ya1Byb2Nlc3Mvc291cC9OZXR3b3JrRGF0YVRhc2tTb3VwLmNwcAorKysgYi9Tb3VyY2UvV2Vi
S2l0Mi9OZXR3b3JrUHJvY2Vzcy9zb3VwL05ldHdvcmtEYXRhVGFza1NvdXAuY3BwCkBAIC04NjUs
NyArODY1LDcgQEAgdm9pZCBOZXR3b3JrRGF0YVRhc2tTb3VwOjpkb3dubG9hZCgpCiAgICAgQVNT
RVJUKCFtX3Jlc3BvbnNlLmlzTnVsbCgpKTsKIAogICAgIGlmIChtX3Jlc3BvbnNlLmh0dHBTdGF0
dXNDb2RlKCkgPj0gNDAwKSB7Ci0gICAgICAgIGRpZEZhaWxEb3dubG9hZChwbGF0Zm9ybURvd25s
b2FkTmV0d29ya0Vycm9yKG1fcmVzcG9uc2UuaHR0cFN0YXR1c0NvZGUoKSwgbV9yZXNwb25zZS51
cmwoKSwgbV9yZXNwb25zZS5odHRwU3RhdHVzVGV4dCgpKSk7CisgICAgICAgIGRpZEZhaWxEb3du
bG9hZChkb3dubG9hZE5ldHdvcmtFcnJvcihtX3Jlc3BvbnNlLnVybCgpLCBtX3Jlc3BvbnNlLmh0
dHBTdGF0dXNUZXh0KCkpKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIApAQCAtODgwLDcgKzg4
MCw3IEBAIHZvaWQgTmV0d29ya0RhdGFUYXNrU291cDo6ZG93bmxvYWQoKQogICAgIGVsc2UKICAg
ICAgICAgb3V0cHV0U3RyZWFtID0gYWRvcHRHUmVmKGdfZmlsZV9jcmVhdGUobV9kb3dubG9hZERl
c3RpbmF0aW9uRmlsZS5nZXQoKSwgR19GSUxFX0NSRUFURV9OT05FLCBudWxscHRyLCAmZXJyb3Iu
b3V0UHRyKCkpKTsKICAgICBpZiAoIW91dHB1dFN0cmVhbSkgewotICAgICAgICBkaWRGYWlsRG93
bmxvYWQocGxhdGZvcm1Eb3dubG9hZERlc3RpbmF0aW9uRXJyb3IobV9yZXNwb25zZSwgZXJyb3It
Pm1lc3NhZ2UpKTsKKyAgICAgICAgZGlkRmFpbERvd25sb2FkKGRvd25sb2FkRGVzdGluYXRpb25F
cnJvcihtX3Jlc3BvbnNlLCBlcnJvci0+bWVzc2FnZSkpOwogICAgICAgICByZXR1cm47CiAgICAg
fQogCkBAIC04ODksNyArODg5LDcgQEAgdm9pZCBOZXR3b3JrRGF0YVRhc2tTb3VwOjpkb3dubG9h
ZCgpCiAgICAgbV9kb3dubG9hZEludGVybWVkaWF0ZUZpbGUgPSBhZG9wdEdSZWYoZ19maWxlX25l
d19mb3JfdXJpKGludGVybWVkaWF0ZVVSSS5nZXQoKSkpOwogICAgIG91dHB1dFN0cmVhbSA9IGFk
b3B0R1JlZihnX2ZpbGVfcmVwbGFjZShtX2Rvd25sb2FkSW50ZXJtZWRpYXRlRmlsZS5nZXQoKSwg
MCwgVFJVRSwgR19GSUxFX0NSRUFURV9OT05FLCAwLCAmZXJyb3Iub3V0UHRyKCkpKTsKICAgICBp
ZiAoIW91dHB1dFN0cmVhbSkgewotICAgICAgICBkaWRGYWlsRG93bmxvYWQocGxhdGZvcm1Eb3du
bG9hZERlc3RpbmF0aW9uRXJyb3IobV9yZXNwb25zZSwgZXJyb3ItPm1lc3NhZ2UpKTsKKyAgICAg
ICAgZGlkRmFpbERvd25sb2FkKGRvd25sb2FkRGVzdGluYXRpb25FcnJvcihtX3Jlc3BvbnNlLCBl
cnJvci0+bWVzc2FnZSkpOwogICAgICAgICByZXR1cm47CiAgICAgfQogICAgIG1fZG93bmxvYWRP
dXRwdXRTdHJlYW0gPSBhZG9wdEdSZWYoR19PVVRQVVRfU1RSRUFNKG91dHB1dFN0cmVhbS5sZWFr
UmVmKCkpKTsKQEAgLTkyMyw3ICs5MjMsNyBAQCB2b2lkIE5ldHdvcmtEYXRhVGFza1NvdXA6Ondy
aXRlRG93bmxvYWRDYWxsYmFjayhHT3V0cHV0U3RyZWFtKiBvdXRwdXRTdHJlYW0sIEdBcwogICAg
ICAgICBieXRlc1dyaXR0ZW4gPSB3cml0ZVRhc2tSZXN1bHQ7CiAjZW5kaWYKICAgICBpZiAoZXJy
b3IpCi0gICAgICAgIHRhc2stPmRpZEZhaWxEb3dubG9hZChwbGF0Zm9ybURvd25sb2FkRGVzdGlu
YXRpb25FcnJvcih0YXNrLT5tX3Jlc3BvbnNlLCBlcnJvci0+bWVzc2FnZSkpOworICAgICAgICB0
YXNrLT5kaWRGYWlsRG93bmxvYWQoZG93bmxvYWREZXN0aW5hdGlvbkVycm9yKHRhc2stPm1fcmVz
cG9uc2UsIGVycm9yLT5tZXNzYWdlKSk7CiAgICAgZWxzZQogICAgICAgICB0YXNrLT5kaWRXcml0
ZURvd25sb2FkKGJ5dGVzV3JpdHRlbik7CiB9CkBAIC05NzgsNyArOTc4LDcgQEAgdm9pZCBOZXR3
b3JrRGF0YVRhc2tTb3VwOjpkaWRGaW5pc2hEb3dubG9hZCgpCiAgICAgQVNTRVJUKG1fZG93bmxv
YWRJbnRlcm1lZGlhdGVGaWxlKTsKICAgICBHVW5pcXVlT3V0UHRyPEdFcnJvcj4gZXJyb3I7CiAg
ICAgaWYgKCFnX2ZpbGVfbW92ZShtX2Rvd25sb2FkSW50ZXJtZWRpYXRlRmlsZS5nZXQoKSwgbV9k
b3dubG9hZERlc3RpbmF0aW9uRmlsZS5nZXQoKSwgR19GSUxFX0NPUFlfT1ZFUldSSVRFLCBtX2Nh
bmNlbGxhYmxlLmdldCgpLCBudWxscHRyLCBudWxscHRyLCAmZXJyb3Iub3V0UHRyKCkpKSB7Ci0g
ICAgICAgIGRpZEZhaWxEb3dubG9hZChwbGF0Zm9ybURvd25sb2FkRGVzdGluYXRpb25FcnJvciht
X3Jlc3BvbnNlLCBlcnJvci0+bWVzc2FnZSkpOworICAgICAgICBkaWRGYWlsRG93bmxvYWQoZG93
bmxvYWREZXN0aW5hdGlvbkVycm9yKG1fcmVzcG9uc2UsIGVycm9yLT5tZXNzYWdlKSk7CiAgICAg
ICAgIHJldHVybjsKICAgICB9CiAKQEAgLTEwMjIsNyArMTAyMiw3IEBAIHZvaWQgTmV0d29ya0Rh
dGFUYXNrU291cDo6Y2xlYW5Eb3dubG9hZEZpbGVzKCkKIHZvaWQgTmV0d29ya0RhdGFUYXNrU291
cDo6ZGlkRmFpbChjb25zdCBSZXNvdXJjZUVycm9yJiBlcnJvcikKIHsKICAgICBpZiAoaXNEb3du
bG9hZCgpKSB7Ci0gICAgICAgIGRpZEZhaWxEb3dubG9hZChwbGF0Zm9ybURvd25sb2FkTmV0d29y
a0Vycm9yKGVycm9yLmVycm9yQ29kZSgpLCBlcnJvci5mYWlsaW5nVVJMKCksIGVycm9yLmxvY2Fs
aXplZERlc2NyaXB0aW9uKCkpKTsKKyAgICAgICAgZGlkRmFpbERvd25sb2FkKGRvd25sb2FkTmV0
d29ya0Vycm9yKGVycm9yLmZhaWxpbmdVUkwoKSwgZXJyb3IubG9jYWxpemVkRGVzY3JpcHRpb24o
KSkpOwogICAgICAgICByZXR1cm47CiAgICAgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
Mi9QbGF0Zm9ybUdUSy5jbWFrZSBiL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtR1RLLmNtYWtlCmlu
ZGV4IGMyOWE5ZjM0N2FmLi40YWEyMDZhMDNhOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIv
UGxhdGZvcm1HVEsuY21ha2UKKysrIGIvU291cmNlL1dlYktpdDIvUGxhdGZvcm1HVEsuY21ha2UK
QEAgLTMwLDggKzMwLDYgQEAgbGlzdChBUFBFTkQgV2ViS2l0Ml9TT1VSQ0VTCiAKICAgICBOZXR3
b3JrUHJvY2Vzcy9DdXN0b21Qcm90b2NvbHMvc291cC9MZWdhY3lDdXN0b21Qcm90b2NvbE1hbmFn
ZXJTb3VwLmNwcAogCi0gICAgTmV0d29ya1Byb2Nlc3MvRG93bmxvYWRzL2d0ay9Eb3dubG9hZFNv
dXBFcnJvcnNHdGsuY3BwCi0KICAgICBOZXR3b3JrUHJvY2Vzcy9jYWNoZS9OZXR3b3JrQ2FjaGVD
b2RlcnNTb3VwLmNwcAogICAgIE5ldHdvcmtQcm9jZXNzL2NhY2hlL05ldHdvcmtDYWNoZURhdGFT
b3VwLmNwcAogICAgIE5ldHdvcmtQcm9jZXNzL2NhY2hlL05ldHdvcmtDYWNoZUlPQ2hhbm5lbFNv
dXAuY3BwCkBAIC03NSw2ICs3Myw4IEBAIGxpc3QoQVBQRU5EIFdlYktpdDJfU09VUkNFUwogCiAg
ICAgU2hhcmVkL2NhaXJvL1NoYXJlYWJsZUJpdG1hcENhaXJvLmNwcAogCisgICAgU2hhcmVkL2ds
aWIvV2ViRXJyb3JzR2xpYi5jcHAKKwogICAgIFNoYXJlZC9ndGsvQXJndW1lbnRDb2RlcnNHdGsu
Y3BwCiAgICAgU2hhcmVkL2d0ay9OYXRpdmVXZWJLZXlib2FyZEV2ZW50R3RrLmNwcAogICAgIFNo
YXJlZC9ndGsvTmF0aXZlV2ViTW91c2VFdmVudEd0ay5jcHAKQEAgLTgzLDEyICs4MywxNCBAQCBs
aXN0KEFQUEVORCBXZWJLaXQyX1NPVVJDRVMKICAgICBTaGFyZWQvZ3RrL1ByaW50SW5mb0d0ay5j
cHAKICAgICBTaGFyZWQvZ3RrL1Byb2Nlc3NFeGVjdXRhYmxlUGF0aEd0ay5jcHAKICAgICBTaGFy
ZWQvZ3RrL1dlYkNvbnRleHRNZW51SXRlbUd0ay5jcHAKKyAgICBTaGFyZWQvZ3RrL1dlYkVycm9y
c0d0ay5jcHAKICAgICBTaGFyZWQvZ3RrL1dlYkV2ZW50RmFjdG9yeS5jcHAKICAgICBTaGFyZWQv
Z3RrL1dlYlNlbGVjdGlvbkRhdGEuY3BwCiAKICAgICBTaGFyZWQvbGludXgvV2ViTWVtb3J5U2Ft
cGxlckxpbnV4LmNwcAogCiAgICAgU2hhcmVkL3NvdXAvV2ViQ29yZUFyZ3VtZW50Q29kZXJzU291
cC5jcHAKKyAgICBTaGFyZWQvc291cC9XZWJFcnJvcnNTb3VwLmNwcAogCiAgICAgU2hhcmVkL3Vu
aXgvQ2hpbGRQcm9jZXNzTWFpbi5jcHAKIApAQCAtNDc1LDcgKzQ3Nyw2IEBAIGxpc3QoQVBQRU5E
IFdlYktpdDJfU09VUkNFUwogICAgIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvZ3RrL1dlYkNv
bnRleHRNZW51Q2xpZW50R3RrLmNwcAogICAgIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvZ3Rr
L1dlYkRyYWdDbGllbnRHdGsuY3BwCiAgICAgV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9ndGsv
V2ViRWRpdG9yQ2xpZW50R3RrLmNwcAotICAgIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvZ3Rr
L1dlYkVycm9yc0d0ay5jcHAKICAgICBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L2d0ay9XZWJQ
b3B1cE1lbnVHdGsuY3BwCiAKICAgICBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L3NvdXAvV2Vi
RnJhbWVOZXR3b3JraW5nQ29udGV4dC5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1Bs
YXRmb3JtTWFjLmNtYWtlIGIvU291cmNlL1dlYktpdDIvUGxhdGZvcm1NYWMuY21ha2UKaW5kZXgg
OTI1ZjQwODBiMjcuLmNhOGE3NDliZWJhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9QbGF0
Zm9ybU1hYy5jbWFrZQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybU1hYy5jbWFrZQpAQCAt
MTE2LDYgKzExNiw3IEBAIGxpc3QoQVBQRU5EIFdlYktpdDJfU09VUkNFUwogICAgIFNoYXJlZC9D
b2NvYS9XS05TVVJMRXh0cmFzLm1tCiAgICAgU2hhcmVkL0NvY29hL1dLTlNVUkxSZXF1ZXN0Lm1t
CiAgICAgU2hhcmVkL0NvY29hL1dLT2JqZWN0Lm1tCisgICAgU2hhcmVkL0NvY29hL1dlYkVycm9y
c0NvY29hLm1tCiAKICAgICBTaGFyZWQvUGx1Z2lucy9OZXRzY2FwZS9tYWMvTmV0c2NhcGVQbHVn
aW5Nb2R1bGVNYWMubW0KICAgICBTaGFyZWQvUGx1Z2lucy9OZXRzY2FwZS9tYWMvUGx1Z2luSW5m
b3JtYXRpb25NYWMubW0KQEAgLTM1NSw3ICszNTYsNiBAQCBsaXN0KEFQUEVORCBXZWJLaXQyX1NP
VVJDRVMKICAgICBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L21hYy9XZWJDb250ZXh0TWVudUNs
aWVudE1hYy5tbQogICAgIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvbWFjL1dlYkRyYWdDbGll
bnRNYWMubW0KICAgICBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L21hYy9XZWJFZGl0b3JDbGll
bnRNYWMubW0KLSAgICBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L21hYy9XZWJFcnJvcnNNYWMu
bW0KICAgICBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L21hYy9XZWJGcmFtZU5ldHdvcmtpbmdD
b250ZXh0Lm1tCiAgICAgV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9tYWMvV2ViUG9wdXBNZW51
TWFjLm1tCiAgICAgV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9tYWMvV2ViU3lzdGVtSW50ZXJm
YWNlLm1tCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQVBJL0FQSUVycm9yLmNw
cCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9BUEkvQVBJRXJyb3IuY3BwCmluZGV4IDgzOWZiMGYx
NDhjLi5iNzNjMjEyOWQ0ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVkL0FQSS9B
UElFcnJvci5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL0FQSS9BUElFcnJvci5jcHAK
QEAgLTM4LDYgKzM4LDUyIEBAIGNvbnN0IFdURjo6U3RyaW5nJiBFcnJvcjo6d2ViS2l0RXJyb3JE
b21haW4oKQogICAgIHJldHVybiB3ZWJLaXRFcnJvckRvbWFpblN0cmluZzsKIH0KIAorY29uc3Qg
V1RGOjpTdHJpbmcmIEVycm9yOjp3ZWJLaXROZXR3b3JrRXJyb3JEb21haW4oKQoreworI2lmIFVT
RShHTElCKQorICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxXVEY6OlN0cmluZz4gd2ViS2l0RXJy
b3JEb21haW5TdHJpbmcoQVNDSUlMaXRlcmFsKCJXZWJLaXROZXR3b3JrRXJyb3IiKSk7CisgICAg
cmV0dXJuIHdlYktpdEVycm9yRG9tYWluU3RyaW5nOworI2Vsc2UKKyAgICByZXR1cm4gd2ViS2l0
RXJyb3JEb21haW4oKTsKKyNlbmRpZgorfQorCitjb25zdCBXVEY6OlN0cmluZyYgRXJyb3I6Ondl
YktpdFBvbGljeUVycm9yRG9tYWluKCkKK3sKKyNpZiBVU0UoR0xJQikKKyAgICBzdGF0aWMgTmV2
ZXJEZXN0cm95ZWQ8V1RGOjpTdHJpbmc+IHdlYktpdEVycm9yRG9tYWluU3RyaW5nKEFTQ0lJTGl0
ZXJhbCgiV2ViS2l0UG9saWN5RXJyb3IiKSk7CisgICAgcmV0dXJuIHdlYktpdEVycm9yRG9tYWlu
U3RyaW5nOworI2Vsc2UKKyAgICByZXR1cm4gd2ViS2l0RXJyb3JEb21haW4oKTsKKyNlbmRpZgor
fQorCitjb25zdCBXVEY6OlN0cmluZyYgRXJyb3I6OndlYktpdFBsdWdpbkVycm9yRG9tYWluKCkK
K3sKKyNpZiBVU0UoR0xJQikKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8V1RGOjpTdHJpbmc+
IHdlYktpdEVycm9yRG9tYWluU3RyaW5nKEFTQ0lJTGl0ZXJhbCgiV2ViS2l0UGx1Z2luRXJyb3Ii
KSk7CisgICAgcmV0dXJuIHdlYktpdEVycm9yRG9tYWluU3RyaW5nOworI2Vsc2UKKyAgICByZXR1
cm4gd2ViS2l0RXJyb3JEb21haW4oKTsKKyNlbmRpZgorfQorCisjaWYgVVNFKFNPVVApCitjb25z
dCBXVEY6OlN0cmluZyYgRXJyb3I6OndlYktpdERvd25sb2FkRXJyb3JEb21haW4oKQoreworICAg
IHN0YXRpYyBOZXZlckRlc3Ryb3llZDxXVEY6OlN0cmluZz4gd2ViS2l0RXJyb3JEb21haW5TdHJp
bmcoQVNDSUlMaXRlcmFsKCJXZWJLaXREb3dubG9hZEVycm9yIikpOworICAgIHJldHVybiB3ZWJL
aXRFcnJvckRvbWFpblN0cmluZzsKK30KKyNlbmRpZgorCisjaWYgUExBVEZPUk0oR1RLKQorY29u
c3QgV1RGOjpTdHJpbmcmIEVycm9yOjp3ZWJLaXRQcmludEVycm9yRG9tYWluKCkKK3sKKyAgICBz
dGF0aWMgTmV2ZXJEZXN0cm95ZWQ8V1RGOjpTdHJpbmc+IHdlYktpdEVycm9yRG9tYWluU3RyaW5n
KEFTQ0lJTGl0ZXJhbCgiV2ViS2l0UHJpbnRFcnJvciIpKTsKKyAgICByZXR1cm4gd2ViS2l0RXJy
b3JEb21haW5TdHJpbmc7Cit9CisjZW5kaWYKKwogdm9pZCBFcnJvcjo6ZW5jb2RlKElQQzo6RW5j
b2RlciYgZW5jb2RlcikgY29uc3QKIHsKICAgICBlbmNvZGVyIDw8IHBsYXRmb3JtRXJyb3IoKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9BUEkvQVBJRXJyb3IuaCBiL1NvdXJj
ZS9XZWJLaXQyL1NoYXJlZC9BUEkvQVBJRXJyb3IuaAppbmRleCA4YzM2MDI3ZGZjMi4uNzU3NTFk
YWE4ZjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9BUEkvQVBJRXJyb3IuaAor
KysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQVBJL0FQSUVycm9yLmgKQEAgLTQ5LDYgKzQ5LDE5
IEBAIHB1YmxpYzoKICAgICB9CiAKICAgICBzdGF0aWMgY29uc3QgV1RGOjpTdHJpbmcmIHdlYktp
dEVycm9yRG9tYWluKCk7CisgICAgZW51bSBOZXR3b3JrIHsgQ2FuY2VsbGVkID0gMzAyLCBGaWxl
RG9lc05vdEV4aXN0ID0gMzAzIH07CisgICAgc3RhdGljIGNvbnN0IFdURjo6U3RyaW5nJiB3ZWJL
aXROZXR3b3JrRXJyb3JEb21haW4oKTsKKyAgICBzdGF0aWMgY29uc3QgV1RGOjpTdHJpbmcmIHdl
YktpdFBvbGljeUVycm9yRG9tYWluKCk7CisgICAgc3RhdGljIGNvbnN0IFdURjo6U3RyaW5nJiB3
ZWJLaXRQbHVnaW5FcnJvckRvbWFpbigpOworI2lmIFVTRShTT1VQKQorICAgIGVudW0gRG93bmxv
YWQgeyBUcmFuc3BvcnQgPSA0OTksIENhbmNlbGxlZEJ5VXNlciA9IDQwMCwgRGVzdGluYXRpb24g
PSA0MDEgfTsKKyAgICBzdGF0aWMgY29uc3QgV1RGOjpTdHJpbmcmIHdlYktpdERvd25sb2FkRXJy
b3JEb21haW4oKTsKKyNlbmRpZgorI2lmIFBMQVRGT1JNKEdUSykKKyAgICBlbnVtIFByaW50IHsg
R2VuZXJhbCA9IDU5OSwgUHJpbnRlck5vdEZvdW5kID0gNTAwLCBJbnZhbGlkUGFnZVJhbmdlID0g
NTAxIH07CisgICAgc3RhdGljIGNvbnN0IFdURjo6U3RyaW5nJiB3ZWJLaXRQcmludEVycm9yRG9t
YWluKCk7CisjZW5kaWYKKwogCiAgICAgY29uc3QgV1RGOjpTdHJpbmcmIGRvbWFpbigpIGNvbnN0
IHsgcmV0dXJuIG1fcGxhdGZvcm1FcnJvci5kb21haW4oKTsgfQogICAgIGludCBlcnJvckNvZGUo
KSBjb25zdCB7IHJldHVybiBtX3BsYXRmb3JtRXJyb3IuZXJyb3JDb2RlKCk7IH0KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9Db2NvYS9XZWJFcnJvcnNDb2NvYS5tbSBiL1NvdXJj
ZS9XZWJLaXQyL1NoYXJlZC9Db2NvYS9XZWJFcnJvcnNDb2NvYS5tbQpuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMC4uNWJmZThiY2RjZDQKLS0tIC9kZXYvbnVsbAorKysgYi9T
b3VyY2UvV2ViS2l0Mi9TaGFyZWQvQ29jb2EvV2ViRXJyb3JzQ29jb2EubW0KQEAgLTAsMCArMSw2
MCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMC0yMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoK
KyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5
IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRo
ZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVW
RU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZP
UiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBP
UgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1Mg
T0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBI
T1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4K
KyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0Ug
T0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2ltcG9ydCAiY29uZmlnLmgiCisjaW1wb3J0ICJXZWJF
cnJvcnMuaCIKKworI2ltcG9ydCAiQVBJRXJyb3IuaCIKKyNpbXBvcnQgIldLRXJyb3JSZWYuaCIK
KyNpbXBvcnQgPFdlYkNvcmUvTG9jYWxpemVkU3RyaW5ncy5oPgorI2ltcG9ydCA8V2ViQ29yZS9S
ZXNvdXJjZVJlcXVlc3QuaD4KKyNpbXBvcnQgPFdlYkNvcmUvUmVzb3VyY2VSZXNwb25zZS5oPgor
Cit1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKK3VzaW5nIG5hbWVzcGFjZSBXZWJLaXQ7CisKK25h
bWVzcGFjZSBXZWJLaXQgeworCitzdGF0aWMgUmV0YWluUHRyPE5TRXJyb3I+IGNyZWF0ZU5TRXJy
b3IoTlNTdHJpbmcqIGRvbWFpbiwgaW50IGNvZGUsIE5TVVJMICpVUkwpCit7CisgICAgTlNEaWN0
aW9uYXJ5ICp1c2VySW5mbyA9IFtOU0RpY3Rpb25hcnkgZGljdGlvbmFyeVdpdGhPYmplY3RzQW5k
S2V5czoKKyAgICAgICAgVVJMLCBAIk5TRXJyb3JGYWlsaW5nVVJMS2V5IiwKKyAgICAgICAgW1VS
TCBhYnNvbHV0ZVN0cmluZ10sIEAiTlNFcnJvckZhaWxpbmdVUkxTdHJpbmdLZXkiLAorICAgICAg
ICBuaWxdOworCisgICAgcmV0dXJuIGFkb3B0TlMoW1tOU0Vycm9yIGFsbG9jXSBpbml0V2l0aERv
bWFpbjpkb21haW4gY29kZTpjb2RlIHVzZXJJbmZvOnVzZXJJbmZvXSk7Cit9CisKK1Jlc291cmNl
RXJyb3IgY2FuY2VsbGVkRXJyb3IoY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0KQorewor
ICAgIHJldHVybiBSZXNvdXJjZUVycm9yKGNyZWF0ZU5TRXJyb3IoTlNVUkxFcnJvckRvbWFpbiwg
TlNVUkxFcnJvckNhbmNlbGxlZCwgcmVxdWVzdC51cmwoKSkuZ2V0KCkpOworfQorCitSZXNvdXJj
ZUVycm9yIGZpbGVEb2VzTm90RXhpc3RFcnJvcihjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiByZXNw
b25zZSkKK3sKKyAgICByZXR1cm4gUmVzb3VyY2VFcnJvcihjcmVhdGVOU0Vycm9yKE5TVVJMRXJy
b3JEb21haW4sIE5TVVJMRXJyb3JGaWxlRG9lc05vdEV4aXN0LCByZXNwb25zZS51cmwoKSkuZ2V0
KCkpOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQyL1NoYXJlZC9XZWJFcnJvcnMuY3BwIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYkVycm9y
cy5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjhlZWQyOTYwYzY1
Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYkVycm9ycy5jcHAK
QEAgLTAsMCArMSw4MSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMC0yMDE2IEFwcGxlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwor
ICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJl
dGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlv
bnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxz
IHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElT
IFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisg
KiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlN
RUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICog
QkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwg
RVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VS
VklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5U
RVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VU
IE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUg
UE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgor
I2luY2x1ZGUgIldlYkVycm9ycy5oIgorCisjaW5jbHVkZSAiQVBJRXJyb3IuaCIKKyNpbmNsdWRl
ICJXS0Vycm9yUmVmLmgiCisjaW5jbHVkZSA8V2ViQ29yZS9Mb2NhbGl6ZWRTdHJpbmdzLmg+Cisj
aW5jbHVkZSA8V2ViQ29yZS9SZXNvdXJjZVJlcXVlc3QuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL1Jl
c291cmNlUmVzcG9uc2UuaD4KKwordXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CisKK25hbWVzcGFj
ZSBXZWJLaXQgeworCitSZXNvdXJjZUVycm9yIGJsb2NrZWRFcnJvcihjb25zdCBSZXNvdXJjZVJl
cXVlc3QmIHJlcXVlc3QpCit7CisgICAgcmV0dXJuIFJlc291cmNlRXJyb3IoQVBJOjpFcnJvcjo6
d2ViS2l0UG9saWN5RXJyb3JEb21haW4oKSwga1dLRXJyb3JDb2RlQ2Fubm90VXNlUmVzdHJpY3Rl
ZFBvcnQsIHJlcXVlc3QudXJsKCksIFdFQl9VSV9TVFJJTkcoIk5vdCBhbGxvd2VkIHRvIHVzZSBy
ZXN0cmljdGVkIG5ldHdvcmsgcG9ydCIsICJXZWJLaXRFcnJvckNhbm5vdFVzZVJlc3RyaWN0ZWRQ
b3J0IGRlc2NyaXB0aW9uIikpOworfQorCitSZXNvdXJjZUVycm9yIGJsb2NrZWRCeUNvbnRlbnRC
bG9ja2VyRXJyb3IoY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0KQoreworICAgIHJldHVy
biBSZXNvdXJjZUVycm9yKEFQSTo6RXJyb3I6OndlYktpdFBvbGljeUVycm9yRG9tYWluKCksIGtX
S0Vycm9yQ29kZUZyYW1lTG9hZEJsb2NrZWRCeUNvbnRlbnRCbG9ja2VyLCByZXF1ZXN0LnVybCgp
LCBXRUJfVUlfU1RSSU5HKCJUaGUgVVJMIHdhcyBibG9ja2VkIGJ5IGEgY29udGVudCBibG9ja2Vy
IiwgIldlYktpdEVycm9yQmxvY2tlZEJ5Q29udGVudEJsb2NrZXIgZGVzY3JpcHRpb24iKSk7Cit9
CisKK1Jlc291cmNlRXJyb3IgY2Fubm90U2hvd1VSTEVycm9yKGNvbnN0IFJlc291cmNlUmVxdWVz
dCYgcmVxdWVzdCkKK3sKKyAgICByZXR1cm4gUmVzb3VyY2VFcnJvcihBUEk6OkVycm9yOjp3ZWJL
aXRQb2xpY3lFcnJvckRvbWFpbigpLCBrV0tFcnJvckNvZGVDYW5ub3RTaG93VVJMLCByZXF1ZXN0
LnVybCgpLCBXRUJfVUlfU1RSSU5HKCJUaGUgVVJMIGNhbuKAmXQgYmUgc2hvd24iLCAiV2ViS2l0
RXJyb3JDYW5ub3RTaG93VVJMIGRlc2NyaXB0aW9uIikpOworfQorCitSZXNvdXJjZUVycm9yIGlu
dGVycnVwdGVkRm9yUG9saWN5Q2hhbmdlRXJyb3IoY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1
ZXN0KQoreworICAgIHJldHVybiBSZXNvdXJjZUVycm9yKEFQSTo6RXJyb3I6OndlYktpdFBvbGlj
eUVycm9yRG9tYWluKCksIGtXS0Vycm9yQ29kZUZyYW1lTG9hZEludGVycnVwdGVkQnlQb2xpY3lD
aGFuZ2UsIHJlcXVlc3QudXJsKCksIFdFQl9VSV9TVFJJTkcoIkZyYW1lIGxvYWQgaW50ZXJydXB0
ZWQiLCAiV2ViS2l0RXJyb3JGcmFtZUxvYWRJbnRlcnJ1cHRlZEJ5UG9saWN5Q2hhbmdlIGRlc2Ny
aXB0aW9uIikpOworfQorCisjaWYgRU5BQkxFKENPTlRFTlRfRklMVEVSSU5HKQorUmVzb3VyY2VF
cnJvciBibG9ja2VkQnlDb250ZW50RmlsdGVyRXJyb3IoY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiBy
ZXF1ZXN0KQoreworICAgIHJldHVybiBSZXNvdXJjZUVycm9yKEFQSTo6RXJyb3I6OndlYktpdFBv
bGljeUVycm9yRG9tYWluKCksIGtXS0Vycm9yQ29kZUZyYW1lTG9hZEJsb2NrZWRCeUNvbnRlbnRG
aWx0ZXIsIHJlcXVlc3QudXJsKCksIFdFQl9VSV9TVFJJTkcoIlRoZSBVUkwgd2FzIGJsb2NrZWQg
YnkgYSBjb250ZW50IGZpbHRlciIsICJXZWJLaXRFcnJvckZyYW1lTG9hZEJsb2NrZWRCeUNvbnRl
bnRGaWx0ZXIgZGVzY3JpcHRpb24iKSk7Cit9CisjZW5kaWYKKworUmVzb3VyY2VFcnJvciBjYW5u
b3RTaG93TUlNRVR5cGVFcnJvcihjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiByZXNwb25zZSkKK3sK
KyAgICByZXR1cm4gUmVzb3VyY2VFcnJvcihBUEk6OkVycm9yOjp3ZWJLaXRQb2xpY3lFcnJvckRv
bWFpbigpLCBrV0tFcnJvckNvZGVDYW5ub3RTaG93TUlNRVR5cGUsIHJlc3BvbnNlLnVybCgpLCBX
RUJfVUlfU1RSSU5HKCJDb250ZW50IHdpdGggc3BlY2lmaWVkIE1JTUUgdHlwZSBjYW7igJl0IGJl
IHNob3duIiwgIldlYktpdEVycm9yQ2Fubm90U2hvd01JTUVUeXBlIGRlc2NyaXB0aW9uIikpOwor
fQorCitSZXNvdXJjZUVycm9yIHBsdWdpbldpbGxIYW5kbGVMb2FkRXJyb3IoY29uc3QgUmVzb3Vy
Y2VSZXNwb25zZSYgcmVzcG9uc2UpCit7CisgICAgcmV0dXJuIFJlc291cmNlRXJyb3IoQVBJOjpF
cnJvcjo6d2ViS2l0UGx1Z2luRXJyb3JEb21haW4oKSwga1dLRXJyb3JDb2RlUGx1Z0luV2lsbEhh
bmRsZUxvYWQsIHJlc3BvbnNlLnVybCgpLCBXRUJfVUlfU1RSSU5HKCJQbHVnLWluIGhhbmRsZWQg
bG9hZCIsICJXZWJLaXRFcnJvclBsdWdJbldpbGxIYW5kbGVMb2FkIGRlc2NyaXB0aW9uIikpOwor
fQorCitSZXNvdXJjZUVycm9yIGludGVybmFsRXJyb3IoY29uc3QgVVJMJiB1cmwpCit7CisgICAg
cmV0dXJuIFJlc291cmNlRXJyb3IoQVBJOjpFcnJvcjo6d2ViS2l0RXJyb3JEb21haW4oKSwga1dL
RXJyb3JJbnRlcm5hbCwgdXJsLCBXRUJfVUlfU1RSSU5HKCJXZWJLaXQgZW5jb3VudGVyZWQgYW4g
aW50ZXJuYWwgZXJyb3IiLCAiV2ViS2l0RXJyb3JJbnRlcm5hbCBkZXNjcmlwdGlvbiIpKTsKK30K
KworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkVycm9ycy5oIGIvU291cmNlL1dlYktpdDIvU2hhcmVk
L1dlYkVycm9ycy5oCnNpbWlsYXJpdHkgaW5kZXggNzclCnJlbmFtZSBmcm9tIFNvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRXJyb3JzLmgKcmVuYW1lIHRvIFNvdXJj
ZS9XZWJLaXQyL1NoYXJlZC9XZWJFcnJvcnMuaAppbmRleCA4NGRkNzNlM2NhOC4uNTkzZWE4ODUz
N2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQv
V2ViRXJyb3JzLmgKKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYkVycm9ycy5oCkBAIC0y
NSwxMSArMjUsMTMgQEAKIAogI3ByYWdtYSBvbmNlCiAKKyNpbmNsdWRlIDx3dGYvRm9yd2FyZC5o
PgorCiBuYW1lc3BhY2UgV2ViQ29yZSB7Ci0gICAgY2xhc3MgVVJMOwotICAgIGNsYXNzIFJlc291
cmNlRXJyb3I7Ci0gICAgY2xhc3MgUmVzb3VyY2VSZXF1ZXN0OwotICAgIGNsYXNzIFJlc291cmNl
UmVzcG9uc2U7CitjbGFzcyBVUkw7CitjbGFzcyBSZXNvdXJjZUVycm9yOworY2xhc3MgUmVzb3Vy
Y2VSZXF1ZXN0OworY2xhc3MgUmVzb3VyY2VSZXNwb25zZTsKIH0KIAogbmFtZXNwYWNlIFdlYktp
dCB7CkBAIC00Nyw0ICs0OSwxNiBAQCBXZWJDb3JlOjpSZXNvdXJjZUVycm9yIGZpbGVEb2VzTm90
RXhpc3RFcnJvcihjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlJik7CiBXZWJDb3JlOjpS
ZXNvdXJjZUVycm9yIHBsdWdpbldpbGxIYW5kbGVMb2FkRXJyb3IoY29uc3QgV2ViQ29yZTo6UmVz
b3VyY2VSZXNwb25zZSYpOwogV2ViQ29yZTo6UmVzb3VyY2VFcnJvciBpbnRlcm5hbEVycm9yKGNv
bnN0IFdlYkNvcmU6OlVSTCYpOwogCisjaWYgVVNFKFNPVVApCitXZWJDb3JlOjpSZXNvdXJjZUVy
cm9yIGRvd25sb2FkTmV0d29ya0Vycm9yKGNvbnN0IFdlYkNvcmU6OlVSTCYsIGNvbnN0IFdURjo6
U3RyaW5nJik7CitXZWJDb3JlOjpSZXNvdXJjZUVycm9yIGRvd25sb2FkQ2FuY2VsbGVkQnlVc2Vy
RXJyb3IoY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSYpOworV2ViQ29yZTo6UmVzb3Vy
Y2VFcnJvciBkb3dubG9hZERlc3RpbmF0aW9uRXJyb3IoY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VS
ZXNwb25zZSYsIGNvbnN0IFdURjo6U3RyaW5nJik7CisjZW5kaWYKKworI2lmIFBMQVRGT1JNKEdU
SykKK1dlYkNvcmU6OlJlc291cmNlRXJyb3IgcHJpbnRFcnJvcihjb25zdCBXZWJDb3JlOjpVUkwm
LCBjb25zdCBXVEY6OlN0cmluZyYpOworV2ViQ29yZTo6UmVzb3VyY2VFcnJvciBwcmludGVyTm90
Rm91bmRFcnJvcihjb25zdCBXZWJDb3JlOjpVUkwmKTsKK1dlYkNvcmU6OlJlc291cmNlRXJyb3Ig
aW52YWxpZFBhZ2VSYW5nZVRvUHJpbnQoY29uc3QgV2ViQ29yZTo6VVJMJik7CisjZW5kaWYKKwog
fSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9j
ZXNzL1dlYkNvcmVTdXBwb3J0L2d0ay9XZWJFcnJvcnNHdGsuY3BwIGIvU291cmNlL1dlYktpdDIv
U2hhcmVkL2dsaWIvV2ViRXJyb3JzR2xpYi5jcHAKc2ltaWxhcml0eSBpbmRleCA2MSUKcmVuYW1l
IGZyb20gU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9ndGsvV2ViRXJy
b3JzR3RrLmNwcApyZW5hbWUgdG8gU291cmNlL1dlYktpdDIvU2hhcmVkL2dsaWIvV2ViRXJyb3Jz
R2xpYi5jcHAKaW5kZXggZTlkMWQ0YzJiNzQuLmViYjU3Y2Y3N2NjIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L2d0ay9XZWJFcnJvcnNHdGsuY3Bw
CisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9nbGliL1dlYkVycm9yc0dsaWIuY3BwCkBAIC0y
OSwxMiArMjksMTAgQEAKICNpbmNsdWRlICJXZWJFcnJvcnMuaCIKIAogI2luY2x1ZGUgIkFQSUVy
cm9yLmgiCi0jaW5jbHVkZSA8V2ViQ29yZS9FcnJvcnNHdGsuaD4KKyNpbmNsdWRlIDxXZWJDb3Jl
L0xvY2FsaXplZFN0cmluZ3MuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1Jlc291cmNlRXJyb3IuaD4K
ICNpbmNsdWRlIDxXZWJDb3JlL1Jlc291cmNlUmVxdWVzdC5oPgogI2luY2x1ZGUgPFdlYkNvcmUv
UmVzb3VyY2VSZXNwb25zZS5oPgotI2luY2x1ZGUgPFdlYktpdC9XS0Vycm9yUmVmLmg+Ci0jaW5j
bHVkZSA8Z2xpYi9naTE4bi1saWIuaD4KIAogdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAKQEAg
LTQyLDQ3ICs0MCwxMiBAQCBuYW1lc3BhY2UgV2ViS2l0IHsKIAogUmVzb3VyY2VFcnJvciBjYW5j
ZWxsZWRFcnJvcihjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QpCiB7Ci0gICAgcmV0dXJu
IFdlYkNvcmU6OmNhbmNlbGxlZEVycm9yKHJlcXVlc3QpOwotfQotCi1SZXNvdXJjZUVycm9yIGJs
b2NrZWRFcnJvcihjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QpCi17Ci0gICAgcmV0dXJu
IFdlYkNvcmU6OmJsb2NrZWRFcnJvcihyZXF1ZXN0KTsKLX0KLQotUmVzb3VyY2VFcnJvciBibG9j
a2VkQnlDb250ZW50QmxvY2tlckVycm9yKGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCkK
LXsKLSAgICByZXR1cm4gV2ViQ29yZTo6YmxvY2tlZEJ5Q29udGVudEJsb2NrZXJFcnJvcihyZXF1
ZXN0KTsKLX0KLQotUmVzb3VyY2VFcnJvciBjYW5ub3RTaG93VVJMRXJyb3IoY29uc3QgUmVzb3Vy
Y2VSZXF1ZXN0JiByZXF1ZXN0KQotewotICAgIHJldHVybiBXZWJDb3JlOjpjYW5ub3RTaG93VVJM
RXJyb3IocmVxdWVzdCk7Ci19Ci0KLVJlc291cmNlRXJyb3IgaW50ZXJydXB0ZWRGb3JQb2xpY3lD
aGFuZ2VFcnJvcihjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QpCi17Ci0gICAgcmV0dXJu
IFdlYkNvcmU6OmludGVycnVwdGVkRm9yUG9saWN5Q2hhbmdlRXJyb3IocmVxdWVzdCk7Ci19Ci0K
LVJlc291cmNlRXJyb3IgY2Fubm90U2hvd01JTUVUeXBlRXJyb3IoY29uc3QgUmVzb3VyY2VSZXNw
b25zZSYgcmVzcG9uc2UpCi17Ci0gICAgcmV0dXJuIFdlYkNvcmU6OmNhbm5vdFNob3dNSU1FVHlw
ZUVycm9yKHJlc3BvbnNlKTsKKyAgICByZXR1cm4gUmVzb3VyY2VFcnJvcihBUEk6OkVycm9yOjp3
ZWJLaXROZXR3b3JrRXJyb3JEb21haW4oKSwgQVBJOjpFcnJvcjo6TmV0d29yazo6Q2FuY2VsbGVk
LCByZXF1ZXN0LnVybCgpLCBXRUJfVUlfU1RSSU5HKCJMb2FkIHJlcXVlc3QgY2FuY2VsbGVkIiwg
IkxvYWQgcmVxdWVzdCBjYW5jZWxsZWQiKSk7CiB9CiAKIFJlc291cmNlRXJyb3IgZmlsZURvZXNO
b3RFeGlzdEVycm9yKGNvbnN0IFJlc291cmNlUmVzcG9uc2UmIHJlc3BvbnNlKQogewotICAgIHJl
dHVybiBXZWJDb3JlOjpmaWxlRG9lc05vdEV4aXN0RXJyb3IocmVzcG9uc2UpOwotfQotCi1SZXNv
dXJjZUVycm9yIHBsdWdpbldpbGxIYW5kbGVMb2FkRXJyb3IoY29uc3QgUmVzb3VyY2VSZXNwb25z
ZSYgcmVzcG9uc2UpCi17Ci0gICAgcmV0dXJuIFdlYkNvcmU6OnBsdWdpbldpbGxIYW5kbGVMb2Fk
RXJyb3IocmVzcG9uc2UpOwotfQotCi1XZWJDb3JlOjpSZXNvdXJjZUVycm9yIGludGVybmFsRXJy
b3IoY29uc3QgV2ViQ29yZTo6VVJMJiB1cmwpCi17Ci0gICAgcmV0dXJuIFJlc291cmNlRXJyb3Io
QVBJOjpFcnJvcjo6d2ViS2l0RXJyb3JEb21haW4oKSwga1dLRXJyb3JJbnRlcm5hbCwgdXJsLCBf
KCJJbnRlcm5hbCBlcnJvciIpKTsKKyAgICByZXR1cm4gUmVzb3VyY2VFcnJvcihBUEk6OkVycm9y
Ojp3ZWJLaXROZXR3b3JrRXJyb3JEb21haW4oKSwgQVBJOjpFcnJvcjo6TmV0d29yazo6RmlsZURv
ZXNOb3RFeGlzdCwgcmVzcG9uc2UudXJsKCksIFdFQl9VSV9TVFJJTkcoIkZpbGUgZG9lcyBub3Qg
ZXhpc3QiLCAiVGhlIHJlcXVlc3RlZCBmaWxlIGRvZXNuJ3QgZXhpc3QiKSk7CiB9CiAKIH0gLy8g
bmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nl
c3MvRG93bmxvYWRzL2d0ay9Eb3dubG9hZFNvdXBFcnJvcnNHdGsuY3BwIGIvU291cmNlL1dlYktp
dDIvU2hhcmVkL2d0ay9XZWJFcnJvcnNHdGsuY3BwCnNpbWlsYXJpdHkgaW5kZXggNjUlCnJlbmFt
ZSBmcm9tIFNvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL0Rvd25sb2Fkcy9ndGsvRG93bmxv
YWRTb3VwRXJyb3JzR3RrLmNwcApyZW5hbWUgdG8gU291cmNlL1dlYktpdDIvU2hhcmVkL2d0ay9X
ZWJFcnJvcnNHdGsuY3BwCmluZGV4IGJhMmU3YjQ1NmE0Li45ZmJmMjFkMTNjOSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvRG93bmxvYWRzL2d0ay9Eb3dubG9hZFNv
dXBFcnJvcnNHdGsuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9ndGsvV2ViRXJyb3Jz
R3RrLmNwcApAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTIgSW50ZWwg
Q29ycG9yYXRpb24uIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTcg
SWdhbGlhIFMuTC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMjQsMjMgKzI0
LDI5IEBACiAgKi8KIAogI2luY2x1ZGUgImNvbmZpZy5oIgotI2luY2x1ZGUgIkRvd25sb2FkU291
cEVycm9ycy5oIgorI2luY2x1ZGUgIldlYkVycm9ycy5oIgogCi0jaW5jbHVkZSA8V2ViQ29yZS9F
cnJvcnNHdGsuaD4KLSNpbmNsdWRlIDxXZWJDb3JlL1Jlc291cmNlRXJyb3IuaD4KKyNpbmNsdWRl
ICJBUElFcnJvci5oIgorI2luY2x1ZGUgPFdlYkNvcmUvVVJMLmg+CisjaW5jbHVkZSA8Z2xpYi9n
aTE4bi1saWIuaD4KIAogdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAKIG5hbWVzcGFjZSBXZWJL
aXQgewogCi1SZXNvdXJjZUVycm9yIHBsYXRmb3JtRG93bmxvYWROZXR3b3JrRXJyb3IoaW50IGVy
cm9yQ29kZSwgY29uc3QgVVJMJiBmYWlsaW5nVVJMLCBjb25zdCBTdHJpbmcmIGxvY2FsaXplZERl
c2NyaXB0aW9uKQorUmVzb3VyY2VFcnJvciBwcmludEVycm9yKGNvbnN0IFVSTCYgZmFpbGluZ1VS
TCwgY29uc3QgU3RyaW5nJiBsb2NhbGl6ZWREZXNjcmlwdGlvbikKIHsKLSAgICByZXR1cm4gZG93
bmxvYWROZXR3b3JrRXJyb3IoUmVzb3VyY2VFcnJvcihlcnJvckRvbWFpbkRvd25sb2FkLCBlcnJv
ckNvZGUsIGZhaWxpbmdVUkwsIGxvY2FsaXplZERlc2NyaXB0aW9uKSk7CisgICAgcmV0dXJuIFJl
c291cmNlRXJyb3IoQVBJOjpFcnJvcjo6d2ViS2l0UHJpbnRFcnJvckRvbWFpbigpLCBBUEk6OkVy
cm9yOjpQcmludDo6R2VuZXJhbCwgZmFpbGluZ1VSTCwgbG9jYWxpemVkRGVzY3JpcHRpb24pOwog
fQogCi1SZXNvdXJjZUVycm9yIHBsYXRmb3JtRG93bmxvYWREZXN0aW5hdGlvbkVycm9yKGNvbnN0
IFJlc291cmNlUmVzcG9uc2UmIHJlc3BvbnNlLCBjb25zdCBTdHJpbmcmIG1lc3NhZ2UpCitSZXNv
dXJjZUVycm9yIHByaW50ZXJOb3RGb3VuZEVycm9yKGNvbnN0IFVSTCYgZmFpbGluZ1VSTCkKIHsK
LSAgICByZXR1cm4gZG93bmxvYWREZXN0aW5hdGlvbkVycm9yKHJlc3BvbnNlLCBtZXNzYWdlKTsK
KyAgICByZXR1cm4gUmVzb3VyY2VFcnJvcihBUEk6OkVycm9yOjp3ZWJLaXRQcmludEVycm9yRG9t
YWluKCksIEFQSTo6RXJyb3I6OlByaW50OjpQcmludGVyTm90Rm91bmQsIGZhaWxpbmdVUkwsIF8o
IlByaW50ZXIgbm90IGZvdW5kIikpOworfQorCitSZXNvdXJjZUVycm9yIGludmFsaWRQYWdlUmFu
Z2VUb1ByaW50KGNvbnN0IFVSTCYgZmFpbGluZ1VSTCkKK3sKKyAgICByZXR1cm4gUmVzb3VyY2VF
cnJvcihBUEk6OkVycm9yOjp3ZWJLaXRQcmludEVycm9yRG9tYWluKCksIEFQSTo6RXJyb3I6OlBy
aW50OjpJbnZhbGlkUGFnZVJhbmdlLCBmYWlsaW5nVVJMLCBfKCJJbnZhbGlkIHBhZ2UgcmFuZ2Ui
KSk7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dDIvU2hhcmVkL3NvdXAvV2ViRXJyb3JzU291cC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQv
c291cC9XZWJFcnJvcnNTb3VwLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMC4uZDMxYmRhMjk1MjgKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFy
ZWQvc291cC9XZWJFcnJvcnNTb3VwLmNwcApAQCAtMCwwICsxLDUzIEBACisvKgorICogQ29weXJp
Z2h0IChDKSAyMDE3IElnYWxpYSBTLkwuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
KyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwor
ICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJ
TElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJ
TUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAq
IEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUws
IEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNF
UlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElO
VEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9V
VCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIK
KyNpbmNsdWRlICJXZWJFcnJvcnMuaCIKKworI2luY2x1ZGUgIkFQSUVycm9yLmgiCisjaW5jbHVk
ZSA8V2ViQ29yZS9Mb2NhbGl6ZWRTdHJpbmdzLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9SZXNvdXJj
ZUVycm9yLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9SZXNvdXJjZVJlc3BvbnNlLmg+CisKK3VzaW5n
IG5hbWVzcGFjZSBXZWJDb3JlOworCituYW1lc3BhY2UgV2ViS2l0IHsKKworUmVzb3VyY2VFcnJv
ciBkb3dubG9hZE5ldHdvcmtFcnJvcihjb25zdCBVUkwmIGZhaWxpbmdVUkwsIGNvbnN0IFN0cmlu
ZyYgbG9jYWxpemVkRGVzY3JpcHRpb24pCit7CisgICAgcmV0dXJuIFJlc291cmNlRXJyb3IoQVBJ
OjpFcnJvcjo6d2ViS2l0RG93bmxvYWRFcnJvckRvbWFpbigpLCBBUEk6OkVycm9yOjpEb3dubG9h
ZDo6VHJhbnNwb3J0LCBmYWlsaW5nVVJMLCBsb2NhbGl6ZWREZXNjcmlwdGlvbik7Cit9CisKK1Jl
c291cmNlRXJyb3IgZG93bmxvYWRDYW5jZWxsZWRCeVVzZXJFcnJvcihjb25zdCBSZXNvdXJjZVJl
c3BvbnNlJiByZXNwb25zZSkKK3sKKyAgICByZXR1cm4gUmVzb3VyY2VFcnJvcihBUEk6OkVycm9y
Ojp3ZWJLaXREb3dubG9hZEVycm9yRG9tYWluKCksIEFQSTo6RXJyb3I6OkRvd25sb2FkOjpDYW5j
ZWxsZWRCeVVzZXIsIHJlc3BvbnNlLnVybCgpLCBXRUJfVUlfU1RSSU5HKCJVc2VyIGNhbmNlbGxl
ZCB0aGUgZG93bmxvYWQiLCAiVGhlIGRvd25sb2FkIHdhcyBjYW5jZWxsZWQgYnkgdGhlIHVzZXIi
KSk7Cit9CisKK1Jlc291cmNlRXJyb3IgZG93bmxvYWREZXN0aW5hdGlvbkVycm9yKGNvbnN0IFJl
c291cmNlUmVzcG9uc2UmIHJlc3BvbnNlLCBjb25zdCBTdHJpbmcmIGxvY2FsaXplZERlc2NyaXB0
aW9uKQoreworICAgIHJldHVybiBSZXNvdXJjZUVycm9yKEFQSTo6RXJyb3I6OndlYktpdERvd25s
b2FkRXJyb3JEb21haW4oKSwgQVBJOjpFcnJvcjo6RG93bmxvYWQ6OkRlc3RpbmF0aW9uLCByZXNw
b25zZS51cmwoKSwgbG9jYWxpemVkRGVzY3JpcHRpb24pOworfQorCit9IC8vIG5hbWVzcGFjZSBX
ZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktp
dERvd25sb2FkLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdERv
d25sb2FkLmNwcAppbmRleCBkMTgzM2RkMWQ4Ni4uMWM0NWU3YTQ0NmIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdERvd25sb2FkLmNwcAorKysgYi9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXREb3dubG9hZC5jcHAKQEAgLTIx
LDEyICsyMSwxMiBAQAogI2luY2x1ZGUgIldlYktpdERvd25sb2FkLmgiCiAKICNpbmNsdWRlICJE
b3dubG9hZFByb3h5LmgiCisjaW5jbHVkZSAiV2ViRXJyb3JzLmgiCiAjaW5jbHVkZSAiV2ViS2l0
RG93bmxvYWRQcml2YXRlLmgiCiAjaW5jbHVkZSAiV2ViS2l0TWFyc2hhbC5oIgogI2luY2x1ZGUg
IldlYktpdFByaXZhdGUuaCIKICNpbmNsdWRlICJXZWJLaXRVUklSZXF1ZXN0UHJpdmF0ZS5oIgog
I2luY2x1ZGUgIldlYktpdFVSSVJlc3BvbnNlUHJpdmF0ZS5oIgotI2luY2x1ZGUgPFdlYkNvcmUv
RXJyb3JzR3RrLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9SZXNvdXJjZVJlc3BvbnNlLmg+CiAjaW5j
bHVkZSA8Z2xpYi9naTE4bi1saWIuaD4KICNpbmNsdWRlIDx3dGYvZ2xpYi9HUmVmUHRyLmg+CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRFcnJvci5j
cHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRFcnJvci5jcHAKaW5k
ZXggNzQxOWVlNzIxYTAuLjQ0MjZkNGY0ZTg0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRFcnJvci5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL0FQSS9ndGsvV2ViS2l0RXJyb3IuY3BwCkBAIC0yMiw3ICsyMiw2IEBACiAjaW5jbHVk
ZSAiV2ViS2l0RXJyb3IuaCIKIAogI2luY2x1ZGUgIldlYktpdFByaXZhdGUuaCIKLSNpbmNsdWRl
IDxXZWJDb3JlL0Vycm9yc0d0ay5oPgogCiB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIApAQCAt
MzcsMjcgKzM2LDI3IEBAIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogCiBHUXVhcmsgd2Via2l0
X25ldHdvcmtfZXJyb3JfcXVhcmsoKQogewotICAgIHJldHVybiBnX3F1YXJrX2Zyb21fc3RhdGlj
X3N0cmluZyhXZWJDb3JlOjplcnJvckRvbWFpbk5ldHdvcmspOworICAgIHJldHVybiBnX3F1YXJr
X2Zyb21fc3RhdGljX3N0cmluZyhyZWludGVycHJldF9jYXN0PGNvbnN0IGNoYXIqPihBUEk6OkVy
cm9yOjp3ZWJLaXROZXR3b3JrRXJyb3JEb21haW4oKS5jaGFyYWN0ZXJzOCgpKSk7CiB9CiAKIEdR
dWFyayB3ZWJraXRfcG9saWN5X2Vycm9yX3F1YXJrKCkKIHsKLSAgICByZXR1cm4gZ19xdWFya19m
cm9tX3N0YXRpY19zdHJpbmcoV2ViQ29yZTo6ZXJyb3JEb21haW5Qb2xpY3kpOworICAgIHJldHVy
biBnX3F1YXJrX2Zyb21fc3RhdGljX3N0cmluZyhyZWludGVycHJldF9jYXN0PGNvbnN0IGNoYXIq
PihBUEk6OkVycm9yOjp3ZWJLaXRQb2xpY3lFcnJvckRvbWFpbigpLmNoYXJhY3RlcnM4KCkpKTsK
IH0KIAogR1F1YXJrIHdlYmtpdF9wbHVnaW5fZXJyb3JfcXVhcmsoKQogewotICAgIHJldHVybiBn
X3F1YXJrX2Zyb21fc3RhdGljX3N0cmluZyhXZWJDb3JlOjplcnJvckRvbWFpblBsdWdpbik7Cisg
ICAgcmV0dXJuIGdfcXVhcmtfZnJvbV9zdGF0aWNfc3RyaW5nKHJlaW50ZXJwcmV0X2Nhc3Q8Y29u
c3QgY2hhcio+KEFQSTo6RXJyb3I6OndlYktpdFBsdWdpbkVycm9yRG9tYWluKCkuY2hhcmFjdGVy
czgoKSkpOwogfQogCiBHUXVhcmsgd2Via2l0X2Rvd25sb2FkX2Vycm9yX3F1YXJrKCkKIHsKLSAg
ICByZXR1cm4gZ19xdWFya19mcm9tX3N0YXRpY19zdHJpbmcoV2ViQ29yZTo6ZXJyb3JEb21haW5E
b3dubG9hZCk7CisgICAgcmV0dXJuIGdfcXVhcmtfZnJvbV9zdGF0aWNfc3RyaW5nKHJlaW50ZXJw
cmV0X2Nhc3Q8Y29uc3QgY2hhcio+KEFQSTo6RXJyb3I6OndlYktpdERvd25sb2FkRXJyb3JEb21h
aW4oKS5jaGFyYWN0ZXJzOCgpKSk7CiB9CiAKIEdRdWFyayB3ZWJraXRfcHJpbnRfZXJyb3JfcXVh
cmsoKQogewotICAgIHJldHVybiBnX3F1YXJrX2Zyb21fc3RhdGljX3N0cmluZyhXZWJDb3JlOjpl
cnJvckRvbWFpblByaW50KTsKKyAgICByZXR1cm4gZ19xdWFya19mcm9tX3N0YXRpY19zdHJpbmco
cmVpbnRlcnByZXRfY2FzdDxjb25zdCBjaGFyKj4oQVBJOjpFcnJvcjo6d2ViS2l0UHJpbnRFcnJv
ckRvbWFpbigpLmNoYXJhY3RlcnM4KCkpKTsKIH0KIAogR1F1YXJrIHdlYmtpdF9qYXZhc2NyaXB0
X2Vycm9yX3F1YXJrKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkv
Z3RrL1dlYktpdFByaXZhdGUuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsv
V2ViS2l0UHJpdmF0ZS5jcHAKaW5kZXggMmM5NzFjMjJkNTguLmM2YmNmZTMxYzRkIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRQcml2YXRlLmNwcAor
KysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRQcml2YXRlLmNwcApA
QCAtMjAsNyArMjAsOCBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIldlYktpdFBy
aXZhdGUuaCIKIAotI2luY2x1ZGUgIkVycm9yc0d0ay5oIgorI2luY2x1ZGUgIkFQSUVycm9yLmgi
CisjaW5jbHVkZSAiV0tFcnJvclJlZi5oIgogI2luY2x1ZGUgIldlYkV2ZW50LmgiCiAjaW5jbHVk
ZSAiV2ViS2l0RXJyb3IuaCIKICNpbmNsdWRlIDxnZGsvZ2RrLmg+CkBAIC0xMTMsNDkgKzExNCwz
OSBAQCB1bnNpZ25lZCB3a0V2ZW50TW91c2VCdXR0b25Ub1dlYktpdE1vdXNlQnV0dG9uKFdLRXZl
bnRNb3VzZUJ1dHRvbiB3a0J1dHRvbikKIHVuc2lnbmVkIHRvV2ViS2l0RXJyb3IodW5zaWduZWQg
d2ViQ29yZUVycm9yKQogewogICAgIHN3aXRjaCAod2ViQ29yZUVycm9yKSB7Ci0gICAgY2FzZSBX
ZWJDb3JlOjpOZXR3b3JrRXJyb3JGYWlsZWQ6Ci0gICAgICAgIHJldHVybiBXRUJLSVRfTkVUV09S
S19FUlJPUl9GQUlMRUQ7Ci0gICAgY2FzZSBXZWJDb3JlOjpOZXR3b3JrRXJyb3JUcmFuc3BvcnQ6
Ci0gICAgICAgIHJldHVybiBXRUJLSVRfTkVUV09SS19FUlJPUl9UUkFOU1BPUlQ7Ci0gICAgY2Fz
ZSBXZWJDb3JlOjpOZXR3b3JrRXJyb3JVbmtub3duUHJvdG9jb2w6Ci0gICAgICAgIHJldHVybiBX
RUJLSVRfTkVUV09SS19FUlJPUl9VTktOT1dOX1BST1RPQ09MOwotICAgIGNhc2UgV2ViQ29yZTo6
TmV0d29ya0Vycm9yQ2FuY2VsbGVkOgorICAgIGNhc2UgQVBJOjpFcnJvcjo6TmV0d29yazo6Q2Fu
Y2VsbGVkOgogICAgICAgICByZXR1cm4gV0VCS0lUX05FVFdPUktfRVJST1JfQ0FOQ0VMTEVEOwot
ICAgIGNhc2UgV2ViQ29yZTo6TmV0d29ya0Vycm9yRmlsZURvZXNOb3RFeGlzdDoKKyAgICBjYXNl
IEFQSTo6RXJyb3I6Ok5ldHdvcms6OkZpbGVEb2VzTm90RXhpc3Q6CiAgICAgICAgIHJldHVybiBX
RUJLSVRfTkVUV09SS19FUlJPUl9GSUxFX0RPRVNfTk9UX0VYSVNUOwotICAgIGNhc2UgV2ViQ29y
ZTo6UG9saWN5RXJyb3JGYWlsZWQ6Ci0gICAgICAgIHJldHVybiBXRUJLSVRfUE9MSUNZX0VSUk9S
X0ZBSUxFRDsKLSAgICBjYXNlIFdlYkNvcmU6OlBvbGljeUVycm9yQ2Fubm90U2hvd01pbWVUeXBl
OgorICAgIGNhc2Uga1dLRXJyb3JDb2RlQ2Fubm90U2hvd01JTUVUeXBlOgogICAgICAgICByZXR1
cm4gV0VCS0lUX1BPTElDWV9FUlJPUl9DQU5OT1RfU0hPV19NSU1FX1RZUEU7Ci0gICAgY2FzZSBX
ZWJDb3JlOjpQb2xpY3lFcnJvckNhbm5vdFNob3dVUkw6CisgICAgY2FzZSBrV0tFcnJvckNvZGVD
YW5ub3RTaG93VVJMOgogICAgICAgICByZXR1cm4gV0VCS0lUX1BPTElDWV9FUlJPUl9DQU5OT1Rf
U0hPV19VUkk7Ci0gICAgY2FzZSBXZWJDb3JlOjpQb2xpY3lFcnJvckZyYW1lTG9hZEludGVycnVw
dGVkQnlQb2xpY3lDaGFuZ2U6CisgICAgY2FzZSBrV0tFcnJvckNvZGVGcmFtZUxvYWRJbnRlcnJ1
cHRlZEJ5UG9saWN5Q2hhbmdlOgogICAgICAgICByZXR1cm4gV0VCS0lUX1BPTElDWV9FUlJPUl9G
UkFNRV9MT0FEX0lOVEVSUlVQVEVEX0JZX1BPTElDWV9DSEFOR0U7Ci0gICAgY2FzZSBXZWJDb3Jl
OjpQb2xpY3lFcnJvckNhbm5vdFVzZVJlc3RyaWN0ZWRQb3J0OgorICAgIGNhc2Uga1dLRXJyb3JD
b2RlQ2Fubm90VXNlUmVzdHJpY3RlZFBvcnQ6CiAgICAgICAgIHJldHVybiBXRUJLSVRfUE9MSUNZ
X0VSUk9SX0NBTk5PVF9VU0VfUkVTVFJJQ1RFRF9QT1JUOwotICAgIGNhc2UgV2ViQ29yZTo6UGx1
Z2luRXJyb3JGYWlsZWQ6Ci0gICAgICAgIHJldHVybiBXRUJLSVRfUExVR0lOX0VSUk9SX0ZBSUxF
RDsKLSAgICBjYXNlIFdlYkNvcmU6OlBsdWdpbkVycm9yQ2Fubm90RmluZFBsdWdpbjoKKyAgICBj
YXNlIGtXS0Vycm9yQ29kZUNhbm5vdEZpbmRQbHVnSW46CiAgICAgICAgIHJldHVybiBXRUJLSVRf
UExVR0lOX0VSUk9SX0NBTk5PVF9GSU5EX1BMVUdJTjsKLSAgICBjYXNlIFdlYkNvcmU6OlBsdWdp
bkVycm9yQ2Fubm90TG9hZFBsdWdpbjoKKyAgICBjYXNlIGtXS0Vycm9yQ29kZUNhbm5vdExvYWRQ
bHVnSW46CiAgICAgICAgIHJldHVybiBXRUJLSVRfUExVR0lOX0VSUk9SX0NBTk5PVF9MT0FEX1BM
VUdJTjsKLSAgICBjYXNlIFdlYkNvcmU6OlBsdWdpbkVycm9ySmF2YVVuYXZhaWxhYmxlOgorICAg
IGNhc2Uga1dLRXJyb3JDb2RlSmF2YVVuYXZhaWxhYmxlOgogICAgICAgICByZXR1cm4gV0VCS0lU
X1BMVUdJTl9FUlJPUl9KQVZBX1VOQVZBSUxBQkxFOwotICAgIGNhc2UgV2ViQ29yZTo6UGx1Z2lu
RXJyb3JDb25uZWN0aW9uQ2FuY2VsbGVkOgorICAgIGNhc2Uga1dLRXJyb3JDb2RlUGx1Z0luQ2Fu
Y2VsbGVkQ29ubmVjdGlvbjoKICAgICAgICAgcmV0dXJuIFdFQktJVF9QTFVHSU5fRVJST1JfQ09O
TkVDVElPTl9DQU5DRUxMRUQ7Ci0gICAgY2FzZSBXZWJDb3JlOjpQbHVnaW5FcnJvcldpbGxIYW5k
bGVMb2FkOgorICAgIGNhc2Uga1dLRXJyb3JDb2RlUGx1Z0luV2lsbEhhbmRsZUxvYWQ6CiAgICAg
ICAgIHJldHVybiBXRUJLSVRfUExVR0lOX0VSUk9SX1dJTExfSEFORExFX0xPQUQ7Ci0gICAgY2Fz
ZSBXZWJDb3JlOjpEb3dubG9hZEVycm9yTmV0d29yazoKKyAgICBjYXNlIEFQSTo6RXJyb3I6OkRv
d25sb2FkOjpUcmFuc3BvcnQ6CiAgICAgICAgIHJldHVybiBXRUJLSVRfRE9XTkxPQURfRVJST1Jf
TkVUV09SSzsKLSAgICBjYXNlIFdlYkNvcmU6OkRvd25sb2FkRXJyb3JDYW5jZWxsZWRCeVVzZXI6
CisgICAgY2FzZSBBUEk6OkVycm9yOjpEb3dubG9hZDo6Q2FuY2VsbGVkQnlVc2VyOgogICAgICAg
ICByZXR1cm4gV0VCS0lUX0RPV05MT0FEX0VSUk9SX0NBTkNFTExFRF9CWV9VU0VSOwotICAgIGNh
c2UgV2ViQ29yZTo6RG93bmxvYWRFcnJvckRlc3RpbmF0aW9uOgorICAgIGNhc2UgQVBJOjpFcnJv
cjo6RG93bmxvYWQ6OkRlc3RpbmF0aW9uOgogICAgICAgICByZXR1cm4gV0VCS0lUX0RPV05MT0FE
X0VSUk9SX0RFU1RJTkFUSU9OOwotICAgIGNhc2UgV2ViQ29yZTo6UHJpbnRFcnJvckdlbmVyYWw6
CisgICAgY2FzZSBBUEk6OkVycm9yOjpQcmludDo6R2VuZXJhbDoKICAgICAgICAgcmV0dXJuIFdF
QktJVF9QUklOVF9FUlJPUl9HRU5FUkFMOwotICAgIGNhc2UgV2ViQ29yZTo6UHJpbnRFcnJvclBy
aW50ZXJOb3RGb3VuZDoKKyAgICBjYXNlIEFQSTo6RXJyb3I6OlByaW50OjpQcmludGVyTm90Rm91
bmQ6CiAgICAgICAgIHJldHVybiBXRUJLSVRfUFJJTlRfRVJST1JfUFJJTlRFUl9OT1RfRk9VTkQ7
Ci0gICAgY2FzZSBXZWJDb3JlOjpQcmludEVycm9ySW52YWxpZFBhZ2VSYW5nZToKKyAgICBjYXNl
IEFQSTo6RXJyb3I6OlByaW50OjpJbnZhbGlkUGFnZVJhbmdlOgogICAgICAgICByZXR1cm4gV0VC
S0lUX1BSSU5UX0VSUk9SX0lOVkFMSURfUEFHRV9SQU5HRTsKICAgICBkZWZhdWx0OgogICAgICAg
ICAvLyBUaGlzIG1heSBiZSBhIHVzZXIgYXBwIGRlZmluZWQgZXJyb3IsIHdoaWNoIG5lZWRzIHRv
IGJlIHBhc3NlZCBhcy1pcy4KQEAgLTE2Niw1MCArMTU3LDQwIEBAIHVuc2lnbmVkIHRvV2ViS2l0
RXJyb3IodW5zaWduZWQgd2ViQ29yZUVycm9yKQogdW5zaWduZWQgdG9XZWJDb3JlRXJyb3IodW5z
aWduZWQgd2ViS2l0RXJyb3IpCiB7CiAgICAgc3dpdGNoICh3ZWJLaXRFcnJvcikgewotICAgIGNh
c2UgV0VCS0lUX05FVFdPUktfRVJST1JfRkFJTEVEOgotICAgICAgICByZXR1cm4gV2ViQ29yZTo6
TmV0d29ya0Vycm9yRmFpbGVkOwotICAgIGNhc2UgV0VCS0lUX05FVFdPUktfRVJST1JfVFJBTlNQ
T1JUOgotICAgICAgICByZXR1cm4gV2ViQ29yZTo6TmV0d29ya0Vycm9yVHJhbnNwb3J0OwotICAg
IGNhc2UgV0VCS0lUX05FVFdPUktfRVJST1JfVU5LTk9XTl9QUk9UT0NPTDoKLSAgICAgICAgcmV0
dXJuIFdlYkNvcmU6Ok5ldHdvcmtFcnJvclVua25vd25Qcm90b2NvbDsKICAgICBjYXNlIFdFQktJ
VF9ORVRXT1JLX0VSUk9SX0NBTkNFTExFRDoKLSAgICAgICAgcmV0dXJuIFdlYkNvcmU6Ok5ldHdv
cmtFcnJvckNhbmNlbGxlZDsKKyAgICAgICAgcmV0dXJuIEFQSTo6RXJyb3I6Ok5ldHdvcms6OkNh
bmNlbGxlZDsKICAgICBjYXNlIFdFQktJVF9ORVRXT1JLX0VSUk9SX0ZJTEVfRE9FU19OT1RfRVhJ
U1Q6Ci0gICAgICAgIHJldHVybiBXZWJDb3JlOjpOZXR3b3JrRXJyb3JGaWxlRG9lc05vdEV4aXN0
OwotICAgIGNhc2UgV0VCS0lUX1BPTElDWV9FUlJPUl9GQUlMRUQ6Ci0gICAgICAgIHJldHVybiBX
ZWJDb3JlOjpQb2xpY3lFcnJvckZhaWxlZDsKKyAgICAgICAgcmV0dXJuIEFQSTo6RXJyb3I6Ok5l
dHdvcms6OkZpbGVEb2VzTm90RXhpc3Q7CiAgICAgY2FzZSBXRUJLSVRfUE9MSUNZX0VSUk9SX0NB
Tk5PVF9TSE9XX01JTUVfVFlQRToKLSAgICAgICAgcmV0dXJuIFdlYkNvcmU6OlBvbGljeUVycm9y
Q2Fubm90U2hvd01pbWVUeXBlOworICAgICAgICByZXR1cm4ga1dLRXJyb3JDb2RlQ2Fubm90U2hv
d01JTUVUeXBlOwogICAgIGNhc2UgV0VCS0lUX1BPTElDWV9FUlJPUl9DQU5OT1RfU0hPV19VUkk6
Ci0gICAgICAgIHJldHVybiBXZWJDb3JlOjpQb2xpY3lFcnJvckNhbm5vdFNob3dVUkw7CisgICAg
ICAgIHJldHVybiBrV0tFcnJvckNvZGVDYW5ub3RTaG93VVJMOwogICAgIGNhc2UgV0VCS0lUX1BP
TElDWV9FUlJPUl9GUkFNRV9MT0FEX0lOVEVSUlVQVEVEX0JZX1BPTElDWV9DSEFOR0U6Ci0gICAg
ICAgIHJldHVybiBXZWJDb3JlOjpQb2xpY3lFcnJvckZyYW1lTG9hZEludGVycnVwdGVkQnlQb2xp
Y3lDaGFuZ2U7CisgICAgICAgIHJldHVybiBrV0tFcnJvckNvZGVGcmFtZUxvYWRJbnRlcnJ1cHRl
ZEJ5UG9saWN5Q2hhbmdlOwogICAgIGNhc2UgV0VCS0lUX1BPTElDWV9FUlJPUl9DQU5OT1RfVVNF
X1JFU1RSSUNURURfUE9SVDoKLSAgICAgICAgcmV0dXJuIFdlYkNvcmU6OlBvbGljeUVycm9yQ2Fu
bm90VXNlUmVzdHJpY3RlZFBvcnQ7Ci0gICAgY2FzZSBXRUJLSVRfUExVR0lOX0VSUk9SX0ZBSUxF
RDoKLSAgICAgICAgcmV0dXJuIFdlYkNvcmU6OlBsdWdpbkVycm9yRmFpbGVkOworICAgICAgICBy
ZXR1cm4ga1dLRXJyb3JDb2RlQ2Fubm90VXNlUmVzdHJpY3RlZFBvcnQ7CiAgICAgY2FzZSBXRUJL
SVRfUExVR0lOX0VSUk9SX0NBTk5PVF9GSU5EX1BMVUdJTjoKLSAgICAgICAgcmV0dXJuIFdlYkNv
cmU6OlBsdWdpbkVycm9yQ2Fubm90RmluZFBsdWdpbjsKKyAgICAgICAgcmV0dXJuIGtXS0Vycm9y
Q29kZUNhbm5vdEZpbmRQbHVnSW47CiAgICAgY2FzZSBXRUJLSVRfUExVR0lOX0VSUk9SX0NBTk5P
VF9MT0FEX1BMVUdJTjoKLSAgICAgICAgcmV0dXJuIFdlYkNvcmU6OlBsdWdpbkVycm9yQ2Fubm90
TG9hZFBsdWdpbjsKKyAgICAgICAgcmV0dXJuIGtXS0Vycm9yQ29kZUNhbm5vdExvYWRQbHVnSW47
CiAgICAgY2FzZSBXRUJLSVRfUExVR0lOX0VSUk9SX0pBVkFfVU5BVkFJTEFCTEU6Ci0gICAgICAg
IHJldHVybiBXZWJDb3JlOjpQbHVnaW5FcnJvckphdmFVbmF2YWlsYWJsZTsKKyAgICAgICAgcmV0
dXJuIGtXS0Vycm9yQ29kZUphdmFVbmF2YWlsYWJsZTsKICAgICBjYXNlIFdFQktJVF9QTFVHSU5f
RVJST1JfQ09OTkVDVElPTl9DQU5DRUxMRUQ6Ci0gICAgICAgIHJldHVybiBXZWJDb3JlOjpQbHVn
aW5FcnJvckNvbm5lY3Rpb25DYW5jZWxsZWQ7CisgICAgICAgIHJldHVybiBrV0tFcnJvckNvZGVQ
bHVnSW5DYW5jZWxsZWRDb25uZWN0aW9uOwogICAgIGNhc2UgV0VCS0lUX1BMVUdJTl9FUlJPUl9X
SUxMX0hBTkRMRV9MT0FEOgotICAgICAgICByZXR1cm4gV2ViQ29yZTo6UGx1Z2luRXJyb3JXaWxs
SGFuZGxlTG9hZDsKKyAgICAgICAgcmV0dXJuIGtXS0Vycm9yQ29kZVBsdWdJbldpbGxIYW5kbGVM
b2FkOwogICAgIGNhc2UgV0VCS0lUX0RPV05MT0FEX0VSUk9SX05FVFdPUks6Ci0gICAgICAgIHJl
dHVybiBXZWJDb3JlOjpEb3dubG9hZEVycm9yTmV0d29yazsKKyAgICAgICAgcmV0dXJuIEFQSTo6
RXJyb3I6OkRvd25sb2FkOjpUcmFuc3BvcnQ7CiAgICAgY2FzZSBXRUJLSVRfRE9XTkxPQURfRVJS
T1JfQ0FOQ0VMTEVEX0JZX1VTRVI6Ci0gICAgICAgIHJldHVybiBXZWJDb3JlOjpEb3dubG9hZEVy
cm9yQ2FuY2VsbGVkQnlVc2VyOworICAgICAgICByZXR1cm4gQVBJOjpFcnJvcjo6RG93bmxvYWQ6
OkNhbmNlbGxlZEJ5VXNlcjsKICAgICBjYXNlIFdFQktJVF9ET1dOTE9BRF9FUlJPUl9ERVNUSU5B
VElPTjoKLSAgICAgICAgcmV0dXJuIFdlYkNvcmU6OkRvd25sb2FkRXJyb3JEZXN0aW5hdGlvbjsK
KyAgICAgICAgcmV0dXJuIEFQSTo6RXJyb3I6OkRvd25sb2FkOjpEZXN0aW5hdGlvbjsKICAgICBj
YXNlIFdFQktJVF9QUklOVF9FUlJPUl9HRU5FUkFMOgotICAgICAgICByZXR1cm4gV2ViQ29yZTo6
UHJpbnRFcnJvckdlbmVyYWw7CisgICAgICAgIHJldHVybiBBUEk6OkVycm9yOjpQcmludDo6R2Vu
ZXJhbDsKICAgICBjYXNlIFdFQktJVF9QUklOVF9FUlJPUl9QUklOVEVSX05PVF9GT1VORDoKLSAg
ICAgICAgcmV0dXJuIFdlYkNvcmU6OlByaW50RXJyb3JQcmludGVyTm90Rm91bmQ7CisgICAgICAg
IHJldHVybiBBUEk6OkVycm9yOjpQcmludDo6UHJpbnRlck5vdEZvdW5kOwogICAgIGNhc2UgV0VC
S0lUX1BSSU5UX0VSUk9SX0lOVkFMSURfUEFHRV9SQU5HRToKLSAgICAgICAgcmV0dXJuIFdlYkNv
cmU6OlByaW50RXJyb3JJbnZhbGlkUGFnZVJhbmdlOworICAgICAgICByZXR1cm4gQVBJOjpFcnJv
cjo6UHJpbnQ6OkludmFsaWRQYWdlUmFuZ2U7CiAgICAgZGVmYXVsdDoKICAgICAgICAgLy8gVGhp
cyBtYXkgYmUgYSB1c2VyIGFwcCBkZWZpbmVkIGVycm9yLCB3aGljaCBuZWVkcyB0byBiZSBwYXNz
ZWQgYXMtaXMuCiAgICAgICAgIHJldHVybiB3ZWJLaXRFcnJvcjsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQyL1dlYktpdDIueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJL
aXQyL1dlYktpdDIueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCA5YjgxZjk4MDJjZi4u
MzlhZDA2MTc5NzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYktpdDIueGNvZGVwcm9q
L3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJLaXQyLnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2oKQEAgLTIyNiw3ICsyMjYsNiBAQAogCQkxQTNFRUQwRjE2MUE1MzU0MDBB
RUI0RjUgLyogTWVzc2FnZVJlY2VpdmVyTWFwLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSAxQTNFRUQwRDE2MUE1MzUzMDBBRUI0RjUgLyogTWVzc2FnZVJl
Y2VpdmVyTWFwLmggKi87IH07CiAJCTFBM0VFRDEyMTYxQTUzRDYwMEFFQjRGNSAvKiBNZXNzYWdl
UmVjZWl2ZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDFBM0VFRDExMTYxQTUzRDYwMEFFQjRGNSAvKiBNZXNzYWdlUmVjZWl2ZXIuaCAqLzsgfTsKIAkJ
MUE0MjJGOEIxOEIyOUI1NDAwRDhDRDk2IC8qIFdLSGlzdG9yeURlbGVnYXRlUHJpdmF0ZS5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUE0MjJGOEExOEIy
OUI1NDAwRDhDRDk2IC8qIFdLSGlzdG9yeURlbGVnYXRlUHJpdmF0ZS5oICovOyBzZXR0aW5ncyA9
IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07Ci0JCTFBNDMzRjBEMTEzQzUzREQwMEZB
Q0RFOSAvKiBXZWJFcnJvcnMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDFBNDMzRjBDMTEzQzUzREQwMEZBQ0RFOSAvKiBXZWJFcnJvcnMuaCAqLzsgfTsK
IAkJMUE0M0U4MjkxODhGM0NEQzAwOUU0RDMwIC8qIF9XS1Byb2Nlc3NQb29sQ29uZmlndXJhdGlv
bi5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFBNDNF
ODI3MTg4RjNDREMwMDlFNEQzMCAvKiBfV0tQcm9jZXNzUG9vbENvbmZpZ3VyYXRpb24ubW0gKi87
IH07CiAJCTFBNDNFODJBMTg4RjNDREMwMDlFNEQzMCAvKiBfV0tQcm9jZXNzUG9vbENvbmZpZ3Vy
YXRpb24uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFB
NDNFODI4MTg4RjNDREMwMDlFNEQzMCAvKiBfV0tQcm9jZXNzUG9vbENvbmZpZ3VyYXRpb24uaCAq
Lzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkxQTQ0NUI5
RjE4NEQ1RkI1MDA0QjM0MTQgLyogV0tDb250ZXh0SW5qZWN0ZWRCdW5kbGVDbGllbnQuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFBNDQ1QjlFMTg0RDVG
QjUwMDRCMzQxNCAvKiBXS0NvbnRleHRJbmplY3RlZEJ1bmRsZUNsaWVudC5oICovOyBzZXR0aW5n
cyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CkBAIC0xMTk5LDYgKzExOTgsOSBA
QAogCQk3QTgyMUY0QzFFMkY2NzM5MDA2MDQ1NzcgLyogTGVnYWN5Q3VzdG9tUHJvdG9jb2xNYW5h
Z2VyQ2xpZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA3QTgyMUY0QjFFMkY2NjQ4MDA2MDQ1NzcgLyogTGVnYWN5Q3VzdG9tUHJvdG9jb2xNYW5hZ2Vy
Q2xpZW50LmggKi87IH07CiAJCTdBODIxRjRFMUUyRjY3QTgwMDYwNDU3NyAvKiBMZWdhY3lDdXN0
b21Qcm90b2NvbE1hbmFnZXJDbGllbnQubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA3QTgyMUY0RDFFMkY2NzlFMDA2MDQ1NzcgLyogTGVnYWN5Q3VzdG9t
UHJvdG9jb2xNYW5hZ2VyQ2xpZW50Lm1tICovOyB9OwogCQk3QTgyMUY1MDFFMkY3QTc1MDA2MDQ1
NzcgLyogQVBJQ3VzdG9tUHJvdG9jb2xNYW5hZ2VyQ2xpZW50LmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3QTgyMUY0RjFFMkY3QTVDMDA2MDQ1NzcgLyog
QVBJQ3VzdG9tUHJvdG9jb2xNYW5hZ2VyQ2xpZW50LmggKi87IH07CisJCTdBRjIzNjIwMUU3OUEz
RTQwMDQzOEEwNSAvKiBXZWJFcnJvcnMuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gN0FGMjM2MUUxRTc5QTNCNDAwNDM4QTA1IC8qIFdlYkVycm9ycy5j
cHAgKi87IH07CisJCTdBRjIzNjIxMUU3OUE0MDgwMDQzOEEwNSAvKiBXZWJFcnJvcnMuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDdBRjIzNjFGMUU3OUEz
RDgwMDQzOEEwNSAvKiBXZWJFcnJvcnMuaCAqLzsgfTsKKwkJN0FGMjM2MjMxRTc5QTQ0NDAwNDM4
QTA1IC8qIFdlYkVycm9yc0NvY29hLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gN0FGMjM2MjIxRTc5QTQzMTAwNDM4QTA1IC8qIFdlYkVycm9yc0NvY29h
Lm1tICovOyB9OwogCQk3QzA2NUYyQjFDOENEOTVGMDBDMkQ5NTAgLyogV2ViVXNlckNvbnRlbnRD
b250cm9sbGVyRGF0YVR5cGVzLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDdDMDY1RjI5MUM4Q0Q5NUYwMEMyRDk1MCAvKiBXZWJVc2VyQ29udGVudENv
bnRyb2xsZXJEYXRhVHlwZXMuY3BwICovOyB9OwogCQk3QzA2NUYyQzFDOENEOTVGMDBDMkQ5NTAg
LyogV2ViVXNlckNvbnRlbnRDb250cm9sbGVyRGF0YVR5cGVzLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3QzA2NUYyQTFDOENEOTVGMDBDMkQ5NTAgLyog
V2ViVXNlckNvbnRlbnRDb250cm9sbGVyRGF0YVR5cGVzLmggKi87IH07CiAJCTdDMTM1QUE4MTcz
QjBCQ0EwMDU4NkFFMiAvKiBXS1BsdWdpbkluZm9ybWF0aW9uLmNwcCBpbiBTb3VyY2VzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDdDMTM1QUE2MTczQjBCQ0EwMDU4NkFFMiAv
KiBXS1BsdWdpbkluZm9ybWF0aW9uLmNwcCAqLzsgfTsKQEAgLTE1MjQsNyArMTUyNiw2IEBACiAJ
CUJDMTExQTVGMTEyRjRGQkIwMDMzN0JBQiAvKiBXZWJGcmFtZUxvYWRlckNsaWVudC5jcHAgaW4g
U291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQzExMUE1ODExMkY0
RkJCMDAzMzdCQUIgLyogV2ViRnJhbWVMb2FkZXJDbGllbnQuY3BwICovOyB9OwogCQlCQzExMUE2
MDExMkY0RkJCMDAzMzdCQUIgLyogV2ViSW5zcGVjdG9yQ2xpZW50LmNwcCBpbiBTb3VyY2VzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDMTExQTU5MTEyRjRGQkIwMDMzN0JB
QiAvKiBXZWJJbnNwZWN0b3JDbGllbnQuY3BwICovOyB9OwogCQlCQzExMUFERDExMkY1QjkzMDAz
MzdCQUIgLyogV2ViRnJhbWUuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gQkMxMTFBREMxMTJGNUI5MzAwMzM3QkFCIC8qIFdlYkZyYW1lLmNwcCAqLzsg
fTsKLQkJQkMxMTFBRTAxMTJGNUJDMjAwMzM3QkFCIC8qIFdlYkVycm9yc01hYy5tbSBpbiBTb3Vy
Y2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDMTExQURGMTEyRjVCQzIw
MDMzN0JBQiAvKiBXZWJFcnJvcnNNYWMubW0gKi87IH07CiAJCUJDMTExQUU0MTEyRjVDMjYwMDMz
N0JBQiAvKiBXZWJQcm9jZXNzLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IEJDMTExQUUzMTEyRjVDMjYwMDMzN0JBQiAvKiBXZWJQcm9jZXNzLmNwcCAq
LzsgfTsKIAkJQkMxMTFCMDkxMTJGNUUzQzAwMzM3QkFCIC8qIFJlc3BvbnNpdmVuZXNzVGltZXIu
Y3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkMxMTFC
MDgxMTJGNUUzQzAwMzM3QkFCIC8qIFJlc3BvbnNpdmVuZXNzVGltZXIuY3BwICovOyB9OwogCQlC
QzExMUIwRTExMkY1RTRGMDAzMzdCQUIgLyogV2ViRnJhbWVQcm94eS5jcHAgaW4gU291cmNlcyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQzExMUIwQTExMkY1RTRGMDAzMzdC
QUIgLyogV2ViRnJhbWVQcm94eS5jcHAgKi87IH07CkBAIC0yMzcwLDcgKzIzNzEsNiBAQAogCQkx
QTNFRUQwRDE2MUE1MzUzMDBBRUI0RjUgLyogTWVzc2FnZVJlY2VpdmVyTWFwLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE1lc3NhZ2VSZWNlaXZlck1hcC5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQkxQTNFRUQxMTE2MUE1M0Q2MDBBRUI0RjUgLyogTWVzc2FnZVJl
Y2VpdmVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE1lc3NhZ2VSZWNlaXZl
ci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkxQTQyMkY4QTE4QjI5QjU0MDBEOENE
OTYgLyogV0tIaXN0b3J5RGVsZWdhdGVQcml2YXRlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IFdLSGlzdG9yeURlbGVnYXRlUHJpdmF0ZS5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwotCQkxQTQzM0YwQzExM0M1M0REMDBGQUNERTkgLyogV2ViRXJyb3JzLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYkVycm9ycy5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQkxQTQzRTgyNzE4OEYzQ0RDMDA5RTREMzAgLyogX1dLUHJvY2Vzc1Bvb2xD
b25maWd1cmF0aW9uLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0g
X1dLUHJvY2Vzc1Bvb2xDb25maWd1cmF0aW9uLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQkxQTQzRTgyODE4OEYzQ0RDMDA5RTREMzAgLyogX1dLUHJvY2Vzc1Bvb2xDb25maWd1cmF0
aW9uLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IF9XS1Byb2Nlc3NQb29sQ29u
ZmlndXJhdGlvbi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkxQTQ0NUI5RTE4NEQ1
RkI1MDA0QjM0MTQgLyogV0tDb250ZXh0SW5qZWN0ZWRCdW5kbGVDbGllbnQuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV0tDb250ZXh0SW5qZWN0ZWRCdW5kbGVDbGllbnQuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTM0NTIsNiArMzQ1Miw5IEBACiAJCTdBOUNE
OEMwMUM3Nzk4NDkwMEQ5RjZDNyAvKiBXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmUuY3Bw
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV2ViUmVzb3VyY2VMb2FkU3Rh
dGlzdGljc1N0b3JlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJN0E5Q0Q4QzEx
Qzc3OTg0OTAwRDlGNkM3IC8qIFdlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZS5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3Rv
cmUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJN0E5Q0Q4QzIxQzc3OUFENjAwRDlG
NkM3IC8qIFdlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZS5tZXNzYWdlcy5pbiAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHRleHQ7IHBhdGggPSBXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmUubWVzc2FnZXMu
aW47IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTdBRjIzNjFFMUU3OUEzQjQwMDQzOEEw
NSAvKiBXZWJFcnJvcnMuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0g
V2ViRXJyb3JzLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJN0FGMjM2MUYxRTc5
QTNEODAwNDM4QTA1IC8qIFdlYkVycm9ycy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBXZWJFcnJvcnMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJN0FGMjM2MjIx
RTc5QTQzMTAwNDM4QTA1IC8qIFdlYkVycm9yc0NvY29hLm1tICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAub2JqY3BwOyBwYXRoID0gV2ViRXJyb3JzQ29jb2EubW07IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCTdDMDY1RjI5MUM4Q0Q5NUYwMEMyRDk1MCAvKiBXZWJVc2VyQ29udGVudENv
bnRyb2xsZXJEYXRhVHlwZXMuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRo
ID0gV2ViVXNlckNvbnRlbnRDb250cm9sbGVyRGF0YVR5cGVzLmNwcDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJN0MwNjVGMkExQzhDRDk1RjAwQzJEOTUwIC8qIFdlYlVzZXJDb250ZW50
Q29udHJvbGxlckRhdGFUeXBlcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBX
ZWJVc2VyQ29udGVudENvbnRyb2xsZXJEYXRhVHlwZXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJN0MwQkI5QTgxOERDREU4OTAwMDZDMDg2IC8qIFdlYkNvbnRlbnQtaU9TLmVudGl0
bGVtZW50cyAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9
IHRleHQueG1sOyBwYXRoID0gIldlYkNvbnRlbnQtaU9TLmVudGl0bGVtZW50cyI7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0zNzk4LDcgKzM4MDEsNiBAQAogCQlCQzExMUE1ODExMkY0
RkJCMDAzMzdCQUIgLyogV2ViRnJhbWVMb2FkZXJDbGllbnQuY3BwICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAuY3BwOyBwYXRoID0gV2ViRnJhbWVMb2FkZXJDbGllbnQuY3BwOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB3cmFwc0xpbmVzID0gMDsgfTsKIAkJQkMxMTFBNTkxMTJGNEZCQjAwMzM3
QkFCIC8qIFdlYkluc3BlY3RvckNsaWVudC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5j
cHA7IHBhdGggPSBXZWJJbnNwZWN0b3JDbGllbnQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQlCQzExMUFEQzExMkY1QjkzMDAzMzdCQUIgLyogV2ViRnJhbWUuY3BwICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV2ViRnJhbWUuY3BwOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwotCQlCQzExMUFERjExMkY1QkMyMDAzMzdCQUIgLyogV2ViRXJyb3JzTWFj
Lm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gV2ViRXJyb3JzTWFj
Lm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlCQzExMUFFMzExMkY1QzI2MDAzMzdC
QUIgLyogV2ViUHJvY2Vzcy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGgg
PSBXZWJQcm9jZXNzLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQkMxMTFCMDgx
MTJGNUUzQzAwMzM3QkFCIC8qIFJlc3BvbnNpdmVuZXNzVGltZXIuY3BwICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUmVzcG9uc2l2ZW5lc3NUaW1lci5jcHA7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCUJDMTExQjBBMTEyRjVFNEYwMDMzN0JBQiAvKiBXZWJGcmFt
ZVByb3h5LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdlYkZyYW1l
UHJveHkuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtNDkzMCw2ICs0OTMyLDgg
QEAKIAkJCQk1MTBGQkI5OTEyODhDOTVFMDBBRkZERjQgLyogV2ViQ29udGV4dE1lbnVJdGVtRGF0
YS5oICovLAogCQkJCTkzOUFFNzY1MTMxNkU5OUMwMEFFMDZBNiAvKiBXZWJDb3JlQXJndW1lbnRD
b2RlcnMuY3BwICovLAogCQkJCUJDMUREN0IxMTE0REMzOTYwMDVBREFGMyAvKiBXZWJDb3JlQXJn
dW1lbnRDb2RlcnMuaCAqLywKKwkJCQk3QUYyMzYxRTFFNzlBM0I0MDA0MzhBMDUgLyogV2ViRXJy
b3JzLmNwcCAqLywKKwkJCQk3QUYyMzYxRjFFNzlBM0Q4MDA0MzhBMDUgLyogV2ViRXJyb3JzLmgg
Ki8sCiAJCQkJQzAzMzdEQUQxMjdBMjRGRTAwOEZGNEY0IC8qIFdlYkV2ZW50LmNwcCAqLywKIAkJ
CQlCQzAzMkRBRjEwRjQzODBGMDA1OEMxNUEgLyogV2ViRXZlbnQuaCAqLywKIAkJCQlCQzAzMkRC
MDEwRjQzODBGMDA1OEMxNUEgLyogV2ViRXZlbnRDb252ZXJzaW9uLmNwcCAqLywKQEAgLTU2OTUs
NiArNTY5OSw3IEBACiAJCQkJMzdCRjJGMDUxOTQ3REVCNDAwNzIzQzQ4IC8qIFdLTlNVUkxSZXF1
ZXN0Lm1tICovLAogCQkJCTM3OEUxQTNGMTgxRURBMDEwMDMxMDA3QSAvKiBXS09iamVjdC5oICov
LAogCQkJCTM3NDQzNjg3MTgyMEU3MjQwMDQ5NTc5RiAvKiBXS09iamVjdC5tbSAqLywKKwkJCQk3
QUYyMzYyMjFFNzlBNDMxMDA0MzhBMDUgLyogV2ViRXJyb3JzQ29jb2EubW0gKi8sCiAJCQkpOwog
CQkJbmFtZSA9IGNvY29hOwogCQkJcGF0aCA9IENvY29hOwpAQCAtNjQ5Niw3ICs2NTAxLDYgQEAK
IAkJCQlCQzAzMkQ2NjEwRjQzNzhEMDA1OEMxNUEgLyogV2ViRHJhZ0NsaWVudC5oICovLAogCQkJ
CUJDMTExQTU3MTEyRjRGQkIwMDMzN0JBQiAvKiBXZWJFZGl0b3JDbGllbnQuY3BwICovLAogCQkJ
CUJDMDMyRDY4MTBGNDM3OEQwMDU4QzE1QSAvKiBXZWJFZGl0b3JDbGllbnQuaCAqLywKLQkJCQkx
QTQzM0YwQzExM0M1M0REMDBGQUNERTkgLyogV2ViRXJyb3JzLmggKi8sCiAJCQkJQkMxMTFBNTgx
MTJGNEZCQjAwMzM3QkFCIC8qIFdlYkZyYW1lTG9hZGVyQ2xpZW50LmNwcCAqLywKIAkJCQlCQzAz
MkQ2QTEwRjQzNzhEMDA1OEMxNUEgLyogV2ViRnJhbWVMb2FkZXJDbGllbnQuaCAqLywKIAkJCQlC
QzFCRTFERjEyRDU0QTQxMDAwNEEyMjggLyogV2ViR2VvbG9jYXRpb25DbGllbnQuY3BwICovLApA
QCAtNjk4OSw3ICs2OTkzLDYgQEAKIAkJCQk1MTAyMUU5QjEyQjE2Nzg4MDA1QzAzM0MgLyogV2Vi
Q29udGV4dE1lbnVDbGllbnRNYWMubW0gKi8sCiAJCQkJQzU1NEZGQTIxMkU0RThFQTAwMkYyMkMw
IC8qIFdlYkRyYWdDbGllbnRNYWMubW0gKi8sCiAJCQkJQzUyMzdGNUYxMjQ0MUNBMzAwNzgwNDcy
IC8qIFdlYkVkaXRvckNsaWVudE1hYy5tbSAqLywKLQkJCQlCQzExMUFERjExMkY1QkMyMDAzMzdC
QUIgLyogV2ViRXJyb3JzTWFjLm1tICovLAogCQkJCTkzOTFGMjgzMTIxQjM4RjUwMEVCRjdFOCAv
KiBXZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0LmggKi8sCiAJCQkJOTM5MUYyODQxMjFCMzhGNTAw
RUJGN0U4IC8qIFdlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQubW0gKi8sCiAJCQkJQkNDNDNBQzYx
MjdCOTlERTAwMzE3RjE2IC8qIFdlYlBvcHVwTWVudU1hYy5tbSAqLywKQEAgLTg1NDgsNyArODU1
MSw2IEBACiAJCQkJQkMwMzJEN0IxMEY0Mzc4RDAwNThDMTVBIC8qIFdlYkRyYWdDbGllbnQuaCBp
biBIZWFkZXJzICovLAogCQkJCUJDQTBFRjlGMTIzMzI2NDIwMDdEM0NGQiAvKiBXZWJFZGl0Q29t
bWFuZFByb3h5LmggaW4gSGVhZGVycyAqLywKIAkJCQlCQzAzMkQ3RDEwRjQzNzhEMDA1OEMxNUEg
LyogV2ViRWRpdG9yQ2xpZW50LmggaW4gSGVhZGVycyAqLywKLQkJCQkxQTQzM0YwRDExM0M1M0RE
MDBGQUNERTkgLyogV2ViRXJyb3JzLmggaW4gSGVhZGVycyAqLywKIAkJCQlCQzAzMkRCOTEwRjQz
ODBGMDA1OEMxNUEgLyogV2ViRXZlbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDMDMyREJCMTBG
NDM4MEYwMDU4QzE1QSAvKiBXZWJFdmVudENvbnZlcnNpb24uaCBpbiBIZWFkZXJzICovLAogCQkJ
CUJDMTExQjVEMTEyRjYyOTgwMDMzN0JBQiAvKiBXZWJFdmVudEZhY3RvcnkuaCBpbiBIZWFkZXJz
ICovLApAQCAtODk4MSw2ICs4OTgzLDcgQEAKIAkJCQk3QzI0MTMwOTFBQUNGQ0I0MDBBNThDMTUg
LyogV0tVc2VyQ29udGVudEV4dGVuc2lvblN0b3JlUmVmLmggaW4gSGVhZGVycyAqLywKIAkJCQkz
NzdFQUQ0ODE3RTJDNzdCMDAyRDE5M0QgLyogV0tVc2VyQ29udGVudEluamVjdGVkRnJhbWVzLmgg
aW4gSGVhZGVycyAqLywKIAkJCQlGNjExM0UyOTEyNkNFMTlCMDA1N0QwQTcgLyogV0tVc2VyQ29u
dGVudFVSTFBhdHRlcm4uaCBpbiBIZWFkZXJzICovLAorCQkJCTdBRjIzNjIxMUU3OUE0MDgwMDQz
OEEwNSAvKiBXZWJFcnJvcnMuaCBpbiBIZWFkZXJzICovLAogCQkJCTA3Mjk3RkEzMUMxODZBREIw
MDNGMDczNSAvKiBXS1VzZXJNZWRpYVBlcm1pc3Npb25DaGVjay5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJNEEzQ0MxOEYxOUIwN0I4QTAwRDE0QUVGIC8qIFdLVXNlck1lZGlhUGVybWlzc2lvblJlcXVl
c3QuaCBpbiBIZWFkZXJzICovLAogCQkJCTFBQUYwODlCMTkyNjdFRTUwMEI2MzkwQyAvKiBXS1Vz
ZXJTY3JpcHQuaCBpbiBIZWFkZXJzICovLApAQCAtMTAxMjYsNyArMTAxMjksNiBAQAogCQkJCUJD
MTExQTVFMTEyRjRGQkIwMDMzN0JBQiAvKiBXZWJFZGl0b3JDbGllbnQuY3BwIGluIFNvdXJjZXMg
Ki8sCiAJCQkJMkQyOEYzRTYxODg1Q0NDMTAwNEI5RUFFIC8qIFdlYkVkaXRvckNsaWVudElPUy5t
bSBpbiBTb3VyY2VzICovLAogCQkJCUM1MjM3RjYwMTI0NDFDQTMwMDc4MDQ3MiAvKiBXZWJFZGl0
b3JDbGllbnRNYWMubW0gaW4gU291cmNlcyAqLywKLQkJCQlCQzExMUFFMDExMkY1QkMyMDAzMzdC
QUIgLyogV2ViRXJyb3JzTWFjLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJQzAzMzdEQUUxMjdBMjRG
RTAwOEZGNEY0IC8qIFdlYkV2ZW50LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUJDMDMyREJBMTBG
NDM4MEYwMDU4QzE1QSAvKiBXZWJFdmVudENvbnZlcnNpb24uY3BwIGluIFNvdXJjZXMgKi8sCiAJ
CQkJQkMxMTFCNUUxMTJGNjI5ODAwMzM3QkFCIC8qIFdlYkV2ZW50RmFjdG9yeS5tbSBpbiBTb3Vy
Y2VzICovLApAQCAtMTAxNDMsNiArMTAxNDUsNyBAQAogCQkJCUNENzNCQTRFMTMxQUNEQjcwMEVF
REVEMiAvKiBXZWJGdWxsU2NyZWVuTWFuYWdlck1lc3NhZ2VSZWNlaXZlci5jcHAgaW4gU291cmNl
cyAqLywKIAkJCQlDRDZGNzVGNDEzMUI2NkQwMDBENkIyMUUgLyogV2ViRnVsbFNjcmVlbk1hbmFn
ZXJQcm94eS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlDRDczQkE0NzEzMUFDQzlBMDBFRURFRDIg
LyogV2ViRnVsbFNjcmVlbk1hbmFnZXJQcm94eU1lc3NhZ2VSZWNlaXZlci5jcHAgaW4gU291cmNl
cyAqLywKKwkJCQk3QUYyMzYyMzFFNzlBNDQ0MDA0MzhBMDUgLyogV2ViRXJyb3JzQ29jb2EubW0g
aW4gU291cmNlcyAqLywKIAkJCQk1MTVCRTFBQTFENTU1QTlCMDBERDdDNjggLyogV2ViR2FtZXBh
ZC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk1MTVCRTE3NzFENTNGRTg3MDBERDdDNjggLyogV2Vi
R2FtZXBhZFByb3ZpZGVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUJDMUJFMUUxMTJENTRBNDEw
MDA0QTIyOCAvKiBXZWJHZW9sb2NhdGlvbkNsaWVudC5jcHAgaW4gU291cmNlcyAqLywKQEAgLTEw
NDg1LDYgKzEwNDg4LDcgQEAKIAkJCQlCQzQwNzYwOTEyNEZGMDI3MDA2OEYyMEEgLyogV0tVUkwu
Y3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQkM0MDc2MUIxMjRGRjAzNzAwNjhGMjBBIC8qIFdLVVJM
Q0YubW0gaW4gU291cmNlcyAqLywKIAkJCQlCQzQwNzYwQjEyNEZGMDI3MDA2OEYyMEEgLyogV0tV
UkxSZXF1ZXN0LmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTdBRjIzNjIwMUU3OUEzRTQwMDQzOEEw
NSAvKiBXZWJFcnJvcnMuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQkM0MDc2MkExMjRGRjA0MDAw
NjhGMjBBIC8qIFdLVVJMUmVxdWVzdE5TLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJQkM0MDc2MEQx
MjRGRjAyNzAwNjhGMjBBIC8qIFdLVVJMUmVzcG9uc2UuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJ
QkM0MDc2MkMxMjRGRjA0MDAwNjhGMjBBIC8qIFdLVVJMUmVzcG9uc2VOUy5tbSBpbiBTb3VyY2Vz
ICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9y
dC9tYWMvV2ViRXJyb3JzTWFjLm1tIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3Jl
U3VwcG9ydC9tYWMvV2ViRXJyb3JzTWFjLm1tCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAxZjE3MWU4ODY4Zi4uMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9XZWJDb3JlU3VwcG9ydC9tYWMvV2ViRXJyb3JzTWFjLm1tCisrKyAvZGV2L251bGwKQEAgLTEs
MTA3ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTAtMjAxNiBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFy
ZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9W
SURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwotICogQU5E
IEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sCi0gKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBB
TkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJ
TiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKLSAqIEJFIExJ
QUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1Q
TEFSWSwgT1IKLSAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCi0gKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKLSAqIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVU
SEVSIElOCi0gKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5H
IE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQotICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgotICogVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNpbXBvcnQgImNvbmZpZy5oIgotI2ltcG9y
dCAiV2ViRXJyb3JzLmgiCi0KLSNpbXBvcnQgIkFQSUVycm9yLmgiCi0jaW1wb3J0ICJXS0Vycm9y
UmVmLmgiCi0jaW1wb3J0IDxXZWJDb3JlL0xvY2FsaXplZFN0cmluZ3MuaD4KLSNpbXBvcnQgPFdl
YkNvcmUvUmVzb3VyY2VSZXF1ZXN0Lmg+Ci0jaW1wb3J0IDxXZWJDb3JlL1Jlc291cmNlUmVzcG9u
c2UuaD4KLQotdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7Ci11c2luZyBuYW1lc3BhY2UgV2ViS2l0
OwotCi1uYW1lc3BhY2UgV2ViS2l0IHsKLQotc3RhdGljIFJldGFpblB0cjxOU0Vycm9yPiBjcmVh
dGVOU0Vycm9yKE5TU3RyaW5nKiBkb21haW4sIGludCBjb2RlLCBOU1VSTCAqVVJMKQotewotICAg
IE5TRGljdGlvbmFyeSAqdXNlckluZm8gPSBbTlNEaWN0aW9uYXJ5IGRpY3Rpb25hcnlXaXRoT2Jq
ZWN0c0FuZEtleXM6Ci0gICAgICAgIFVSTCwgQCJOU0Vycm9yRmFpbGluZ1VSTEtleSIsCi0gICAg
ICAgIFtVUkwgYWJzb2x1dGVTdHJpbmddLCBAIk5TRXJyb3JGYWlsaW5nVVJMU3RyaW5nS2V5IiwK
LSAgICAgICAgbmlsXTsKLQotICAgIHJldHVybiBhZG9wdE5TKFtbTlNFcnJvciBhbGxvY10gaW5p
dFdpdGhEb21haW46ZG9tYWluIGNvZGU6Y29kZSB1c2VySW5mbzp1c2VySW5mb10pOwotfQotCi0v
LyBVc2UgTlNFcnJvcidzIGlmIGF2YWlsYWJsZS4KLQotUmVzb3VyY2VFcnJvciBjYW5jZWxsZWRF
cnJvcihjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QpCi17Ci0gICAgcmV0dXJuIFJlc291
cmNlRXJyb3IoY3JlYXRlTlNFcnJvcihOU1VSTEVycm9yRG9tYWluLCBOU1VSTEVycm9yQ2FuY2Vs
bGVkLCByZXF1ZXN0LnVybCgpKS5nZXQoKSk7Ci19Ci0KLVJlc291cmNlRXJyb3IgZmlsZURvZXNO
b3RFeGlzdEVycm9yKGNvbnN0IFJlc291cmNlUmVzcG9uc2UmIHJlc3BvbnNlKQotewotICAgIHJl
dHVybiBSZXNvdXJjZUVycm9yKGNyZWF0ZU5TRXJyb3IoTlNVUkxFcnJvckRvbWFpbiwgTlNVUkxF
cnJvckZpbGVEb2VzTm90RXhpc3QsIHJlc3BvbnNlLnVybCgpKS5nZXQoKSk7Ci19Ci0KLQotLy8g
T3RoZXJ3aXNlLCBmYWxsYmFjayB0byBvdXIgb3duIGVycm9ycy4KLQotUmVzb3VyY2VFcnJvciBi
bG9ja2VkRXJyb3IoY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0KQotewotICAgIHJldHVy
biBSZXNvdXJjZUVycm9yKEFQSTo6RXJyb3I6OndlYktpdEVycm9yRG9tYWluKCksIGtXS0Vycm9y
Q29kZUNhbm5vdFVzZVJlc3RyaWN0ZWRQb3J0LCByZXF1ZXN0LnVybCgpLCBXRUJfVUlfU1RSSU5H
KCJOb3QgYWxsb3dlZCB0byB1c2UgcmVzdHJpY3RlZCBuZXR3b3JrIHBvcnQiLCAiV2ViS2l0RXJy
b3JDYW5ub3RVc2VSZXN0cmljdGVkUG9ydCBkZXNjcmlwdGlvbiIpKTsKLX0KLQotUmVzb3VyY2VF
cnJvciBibG9ja2VkQnlDb250ZW50QmxvY2tlckVycm9yKGNvbnN0IFJlc291cmNlUmVxdWVzdCYg
cmVxdWVzdCkKLXsKLSAgICByZXR1cm4gUmVzb3VyY2VFcnJvcihBUEk6OkVycm9yOjp3ZWJLaXRF
cnJvckRvbWFpbigpLCBrV0tFcnJvckNvZGVGcmFtZUxvYWRCbG9ja2VkQnlDb250ZW50QmxvY2tl
ciwgcmVxdWVzdC51cmwoKSwgV0VCX1VJX1NUUklORygiVGhlIFVSTCB3YXMgYmxvY2tlZCBieSBh
IGNvbnRlbnQgYmxvY2tlciIsICJXZWJLaXRFcnJvckJsb2NrZWRCeUNvbnRlbnRCbG9ja2VyIGRl
c2NyaXB0aW9uIikpOwotfQotCi1SZXNvdXJjZUVycm9yIGNhbm5vdFNob3dVUkxFcnJvcihjb25z
dCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QpCi17Ci0gICAgcmV0dXJuIFJlc291cmNlRXJyb3Io
QVBJOjpFcnJvcjo6d2ViS2l0RXJyb3JEb21haW4oKSwga1dLRXJyb3JDb2RlQ2Fubm90U2hvd1VS
TCwgcmVxdWVzdC51cmwoKSwgV0VCX1VJX1NUUklORygiVGhlIFVSTCBjYW7igJl0IGJlIHNob3du
IiwgIldlYktpdEVycm9yQ2Fubm90U2hvd1VSTCBkZXNjcmlwdGlvbiIpKTsKLX0KLQotUmVzb3Vy
Y2VFcnJvciBpbnRlcnJ1cHRlZEZvclBvbGljeUNoYW5nZUVycm9yKGNvbnN0IFJlc291cmNlUmVx
dWVzdCYgcmVxdWVzdCkKLXsKLSAgICByZXR1cm4gUmVzb3VyY2VFcnJvcihBUEk6OkVycm9yOjp3
ZWJLaXRFcnJvckRvbWFpbigpLCBrV0tFcnJvckNvZGVGcmFtZUxvYWRJbnRlcnJ1cHRlZEJ5UG9s
aWN5Q2hhbmdlLCByZXF1ZXN0LnVybCgpLCBXRUJfVUlfU1RSSU5HKCJGcmFtZSBsb2FkIGludGVy
cnVwdGVkIiwgIldlYktpdEVycm9yRnJhbWVMb2FkSW50ZXJydXB0ZWRCeVBvbGljeUNoYW5nZSBk
ZXNjcmlwdGlvbiIpKTsKLX0KLQotI2lmIEVOQUJMRShDT05URU5UX0ZJTFRFUklORykKLVJlc291
cmNlRXJyb3IgYmxvY2tlZEJ5Q29udGVudEZpbHRlckVycm9yKGNvbnN0IFJlc291cmNlUmVxdWVz
dCYgcmVxdWVzdCkKLXsKLSAgICByZXR1cm4gUmVzb3VyY2VFcnJvcihBUEk6OkVycm9yOjp3ZWJL
aXRFcnJvckRvbWFpbigpLCBrV0tFcnJvckNvZGVGcmFtZUxvYWRCbG9ja2VkQnlDb250ZW50Rmls
dGVyLCByZXF1ZXN0LnVybCgpLCBXRUJfVUlfU1RSSU5HKCJUaGUgVVJMIHdhcyBibG9ja2VkIGJ5
IGEgY29udGVudCBmaWx0ZXIiLCAiV2ViS2l0RXJyb3JGcmFtZUxvYWRCbG9ja2VkQnlDb250ZW50
RmlsdGVyIGRlc2NyaXB0aW9uIikpOwotfQotI2VuZGlmCi0KLVJlc291cmNlRXJyb3IgY2Fubm90
U2hvd01JTUVUeXBlRXJyb3IoY29uc3QgUmVzb3VyY2VSZXNwb25zZSYgcmVzcG9uc2UpCi17Ci0g
ICAgcmV0dXJuIFJlc291cmNlRXJyb3IoQVBJOjpFcnJvcjo6d2ViS2l0RXJyb3JEb21haW4oKSwg
a1dLRXJyb3JDb2RlQ2Fubm90U2hvd01JTUVUeXBlLCByZXNwb25zZS51cmwoKSwgV0VCX1VJX1NU
UklORygiQ29udGVudCB3aXRoIHNwZWNpZmllZCBNSU1FIHR5cGUgY2Fu4oCZdCBiZSBzaG93biIs
ICJXZWJLaXRFcnJvckNhbm5vdFNob3dNSU1FVHlwZSBkZXNjcmlwdGlvbiIpKTsKLX0KLQotUmVz
b3VyY2VFcnJvciBwbHVnaW5XaWxsSGFuZGxlTG9hZEVycm9yKGNvbnN0IFJlc291cmNlUmVzcG9u
c2UmIHJlc3BvbnNlKQotewotICAgIHJldHVybiBSZXNvdXJjZUVycm9yKEFQSTo6RXJyb3I6Ondl
YktpdEVycm9yRG9tYWluKCksIGtXS0Vycm9yQ29kZVBsdWdJbldpbGxIYW5kbGVMb2FkLCByZXNw
b25zZS51cmwoKSwgV0VCX1VJX1NUUklORygiUGx1Zy1pbiBoYW5kbGVkIGxvYWQiLCAiV2ViS2l0
RXJyb3JQbHVnSW5XaWxsSGFuZGxlTG9hZCBkZXNjcmlwdGlvbiIpKTsKLX0KLQotUmVzb3VyY2VF
cnJvciBpbnRlcm5hbEVycm9yKGNvbnN0IFVSTCYgdXJsKQotewotICAgIHJldHVybiBSZXNvdXJj
ZUVycm9yKEFQSTo6RXJyb3I6OndlYktpdEVycm9yRG9tYWluKCksIGtXS0Vycm9ySW50ZXJuYWws
IHVybCwgV0VCX1VJX1NUUklORygiV2ViS2l0IGVuY291bnRlcmVkIGFuIGludGVybmFsIGVycm9y
IiwgIldlYktpdEVycm9ySW50ZXJuYWwgZGVzY3JpcHRpb24iKSk7Ci19Ci0KLX0gLy8gbmFtZXNw
YWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdl
L2d0ay9XZWJQcmludE9wZXJhdGlvbkd0ay5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L1dlYlBhZ2UvZ3RrL1dlYlByaW50T3BlcmF0aW9uR3RrLmNwcAppbmRleCBmZGQ0MTkzOTQ4Zi4u
MWE1ZTEwMmVjNjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFn
ZS9ndGsvV2ViUHJpbnRPcGVyYXRpb25HdGsuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvV2ViUGFnZS9ndGsvV2ViUHJpbnRPcGVyYXRpb25HdGsuY3BwCkBAIC0yNywxMSArMjcs
MTEgQEAKICNpbmNsdWRlICJXZWJQcmludE9wZXJhdGlvbkd0ay5oIgogCiAjaW5jbHVkZSAiV2Vi
Q29yZUFyZ3VtZW50Q29kZXJzLmgiCisjaW5jbHVkZSAiV2ViRXJyb3JzLmgiCiAjaW5jbHVkZSAi
V2ViUGFnZS5oIgogI2luY2x1ZGUgIldlYlBhZ2VQcm94eU1lc3NhZ2VzLmgiCiAjaW5jbHVkZSAi
V2ViUHJvY2Vzcy5oIgogI2luY2x1ZGUgPFdlYkNvcmUvRG9jdW1lbnRMb2FkZXIuaD4KLSNpbmNs
dWRlIDxXZWJDb3JlL0Vycm9yc0d0ay5oPgogI2luY2x1ZGUgPFdlYkNvcmUvRnJhbWUuaD4KICNp
bmNsdWRlIDxXZWJDb3JlL0ludFJlY3QuaD4KICNpbmNsdWRlIDxXZWJDb3JlL05vdEltcGxlbWVu
dGVkLmg+Cg==
</data>
<flag name="review"
          id="326559"
          type_id="1"
          status="+"
          setter="sam"
    />
          </attachment>
      

    </bug>

</bugzilla>