<?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>8519</bug_id>
          
          <creation_ts>2006-04-21 11:01:46 -0700</creation_ts>
          <short_desc>WebCore doesn&apos;t fire window.onerror event when uncaught JavaScript exceptions are thrown</short_desc>
          <delta_ts>2011-08-11 13:42:10 -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 JavaScript</component>
          <version>420+</version>
          <rep_platform>Mac</rep_platform>
          <op_sys>OS X 10.4</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>GoogleBug, InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>50950</dependson>
    
    <dependson>51040</dependson>
          <blocked>10489</blocked>
    
    <blocked>51044</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Jon">jon</reporter>
          <assigned_to name="Yury Semikhatsky">yurys</assigned_to>
          <cc>aa</cc>
    
    <cc>abarth</cc>
    
    <cc>adele</cc>
    
    <cc>ama</cc>
    
    <cc>andy</cc>
    
    <cc>ap</cc>
    
    <cc>arv</cc>
    
    <cc>brianh.smartsheet</cc>
    
    <cc>cgriego</cc>
    
    <cc>charles.kendrick</cc>
    
    <cc>christopher.blum</cc>
    
    <cc>christophergoddard</cc>
    
    <cc>contact</cc>
    
    <cc>darin</cc>
    
    <cc>dbates</cc>
    
    <cc>desau</cc>
    
    <cc>dglazkov</cc>
    
    <cc>eric</cc>
    
    <cc>erikkay</cc>
    
    <cc>ghazel</cc>
    
    <cc>gravix</cc>
    
    <cc>gustavo</cc>
    
    <cc>ian</cc>
    
    <cc>ivan.centes</cc>
    
    <cc>jasneet</cc>
    
    <cc>jeffrey.yustman</cc>
    
    <cc>jesse</cc>
    
    <cc>jontro</cc>
    
    <cc>justinbmeyer</cc>
    
    <cc>kangax</cc>
    
    <cc>ksosjq102</cc>
    
    <cc>laszlo.gombos</cc>
    
    <cc>luoyx</cc>
    
    <cc>marchant</cc>
    
    <cc>marcus</cc>
    
    <cc>mjuhos</cc>
    
    <cc>Ms2ger</cc>
    
    <cc>mtakacs</cc>
    
    <cc>ossy</cc>
    
    <cc>paulirish</cc>
    
    <cc>pdousa</cc>
    
    <cc>pfeldman</cc>
    
    <cc>playmobil</cc>
    
    <cc>rpaplin</cc>
    
    <cc>sam</cc>
    
    <cc>sullivan</cc>
    
    <cc>tim.c.quinn</cc>
    
    <cc>vicki</cc>
    
    <cc>walter.poch</cc>
    
    <cc>webkit-ews</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>wyrmwood</cc>
    
    <cc>xan.lopez</cc>
    
    <cc>xk1t</cc>
    
    <cc>yurys</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>40044</commentid>
    <comment_count>0</comment_count>
    <who name="Jon">jon</who>
    <bug_when>2006-04-21 11:01:46 -0700</bug_when>
    <thetext>window.onerror registers an event listener, but WebCore never actually fires the onerror event.


Onerror references: 

http://msdn.microsoft.com/workshop/author/dhtml/reference/events/onerror.asp

http://developer.mozilla.org/en/docs/DOM:window.onerror

http://www.jaws.umn.edu/javascript_1.1/evnt8.htm</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>40047</commentid>
    <comment_count>1</comment_count>
      <attachid>7877</attachid>
    <who name="Jon">jon</who>
    <bug_when>2006-04-21 11:31:55 -0700</bug_when>
    <thetext>Created attachment 7877
Test case based on ggaren&apos;s test for 8511</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>45352</commentid>
    <comment_count>2</comment_count>
    <who name="Jesse Costello-Good">jesse</who>
    <bug_when>2006-11-18 17:19:25 -0800</bug_when>
    <thetext>If someone takes the effort to implement onerror, it would be great if it improves upon the usefulness of the current implementations in Internet Explorer and Firefox. In my opinion, the true value of window.onerror is to approximate this common Java idiom that provides invaluable error diagnostics to programmers:

public static void main(String[] args) {
  try {
    ...
  } catch (Throwable t) {
    t.printStackTrace();
    System.exit(1);
  }
}

Because JavaScript in a browser is so event-driven, it is tedious to impossible to wrap every entry point in a JavaScript try/catch block. It would be nice if window.onerror could act as the catch block in the main method in the Java code sample above. For this to be the case, the call stack of the thrown exception must be available in the onerror method. Ideally, the actual thrown exception object should also be available. 

Internet Explorer currently provides the call stack of the line where the exception was raised by introspecting arguments/caller/callee. The exception object not available. (The standard arguments to onerror are message, file, and line number). Unfortunately, if an object is explicitly thrown with the &quot;throw&quot; statement, the message argument to onerror is always &quot;Exception thrown and not caught&quot;. And of course, the file argument is always the HTML page hosting the JavaScript, not the actually JavaScript file. 

Firefox has its own weaknesses. The three arguments to onerror are typically useful. The message is relevant even if the error was thrown with the throw statement. The line number and file URL even pinpoint the JavaScript line that threw the exception even if that line is in an external JavaScript function. Unfortunately, the uncaught exception object is not available in the onerror function. Worse, there is no way to get the call stack of the exception, even through arguments/caller/callee. Since Firefox already supports the Error.stack property, it would make more sense for them to just expose the uncaught exception object.

My suggestion for Safari (and Firefox) is to either add a 4th argument to the onerror function that is the uncaught exception object, or to set a property of the window object to the last uncaught exception. 

See also: https://bugzilla.mozilla.org/show_bug.cgi?id=355430</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>10094</commentid>
    <comment_count>3</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2007-05-13 08:49:02 -0700</bug_when>
    <thetext>*** Bug 13645 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>10086</commentid>
    <comment_count>4</comment_count>
    <who name="Garrett Smith">xk1t</who>
    <bug_when>2007-05-13 09:43:16 -0700</bug_when>
    <thetext>comment #2. 

window.onerror sucks. JScript thinks it&apos;s an Event. Poor API design copied during browser wars. 

Should we copy this legacy approach?

Event onerror callback signature should be single argument: an object. 

This could be either of type: either Error or ErrorEvent.

Example:

errorCaught = function errorCaught( ev ) {
  var stack = ev.stack;
  log( stack );
  ev.preventDefault();
};

window.addEventListener( &quot;error&quot;, errorCaught, false );

</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>7735</commentid>
    <comment_count>5</comment_count>
    <who name="Adele Peterson">adele</who>
    <bug_when>2007-06-12 20:46:52 -0700</bug_when>
    <thetext>&lt;rdar://problem/3175102&gt; please implement onError</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>7737</commentid>
    <comment_count>6</comment_count>
    <who name="Adele Peterson">adele</who>
    <bug_when>2007-06-12 21:11:28 -0700</bug_when>
    <thetext>looks like we have some support for this event (see LayoutTests/fast/dom/onerror-img.html).

From looking at the code, we dispatch this event in these situations:
1) In the tokenizer (both HTML and XML versions), if an error occurred in a cached script. (HTMLTokenizer.cpp, XMLTokenizer.cpp)
2) If an error occurred loading an image (HTMLImageLoader.cpp)
3) If an error occurs parsing a script (HTMLScriptElement.cpp)

So there&apos;s probably some other places where we should be firing the event.  And there also might be some investigation needed about when the event bubbles.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>60186</commentid>
    <comment_count>7</comment_count>
    <who name="Kay Summers">ksosjq102</who>
    <bug_when>2007-11-03 09:51:41 -0700</bug_when>
    <thetext>I have yet to see a single example of a parse error being sent to the window object&apos;s error handler. Everything goes to the console no matter what. </thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>73282</commentid>
    <comment_count>8</comment_count>
    <who name="Sam Weinig">sam</who>
    <bug_when>2008-03-10 20:08:26 -0700</bug_when>
    <thetext>*** Bug 17758 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>74652</commentid>
    <comment_count>9</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2008-03-21 10:44:00 -0700</bug_when>
    <thetext>I&apos;ve received two (unsolicited) emails in the last 24 hours asking if WebKit supported this.  One of them was for catching uncaught JS exceptions (and I guess is used by an internal testing tool here @ Google).  A second was wanting to catch XML parse errors when rendering an SVG to an image (using the Obj-C API).  It seems to me that there are real needs out there for this feature.  Certainly the XML error, I can think of no other way to detect such.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>76520</commentid>
    <comment_count>10</comment_count>
    <who name="David Kilzer (:ddkilzer)">ddkilzer</who>
    <bug_when>2008-04-07 10:11:25 -0700</bug_when>
    <thetext>Adding GoogleBug keyword per Comment #9.

</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>77256</commentid>
    <comment_count>11</comment_count>
    <who name="Garrett Smith">xk1t</who>
    <bug_when>2008-04-10 23:59:29 -0700</bug_when>
    <thetext>The test for verifying deferError depends on onerror working.
http://dhtmlkitchen.com/ape/test/tests/APE-test.html

The code that the test is testing against, APE.deferError, actually works. There doesn&apos;t seem to be any other way (other than onerror) to determine that the code works, and so test fails (falsely).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>77785</commentid>
    <comment_count>12</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2008-04-16 07:36:21 -0700</bug_when>
    <thetext>This bug really needs more details and possibly to be broken up into multiple bugs.

The original complaint was that we don&apos;t support the error event at all. But it&apos;s clear that we do have the event and some code to dispatch it in some cases. We can fix the attached single test case, but it&apos;s likely that single fix won&apos;t cause us to dispatch error events in all the various cases people want us to.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>77798</commentid>
    <comment_count>13</comment_count>
    <who name="Aaron Boodman">aa</who>
    <bug_when>2008-04-16 09:18:12 -0700</bug_when>
    <thetext>On Wed, Apr 16, 2008 at 7:39 AM, Darin Adler &lt;darin@apple.com&gt; wrote:
&gt; That onerror bug report is way too broad. The original claim is that the
&gt; error event isn&apos;t supported at all by WebKit, and that&apos;s not true. It would
&gt; be helpful to know exactly which types of errors you would find this useful
&gt; for. It might be a straightforward fix. I think your comments in the bug
&gt; might make that clear, but I wasn&apos;t completely sure when reading it.

Sorry, we weren&apos;t aware that it worked at all because we were interested in catching runtime javascript errors, which it is not fired for.

Ideally, window.onerror would be called for any uncaught javascript error, and for any error inside asynchronous native code (eg databases).

Our immediate goal is to implement a unit test system where any error (even those fired asynchronously) is caught and reported as a test failure. But window.onerror is also frequently used to implement logging for deployed applications. For example, Gmail uses this API to catch all errors and report them back to the server.

And FWIW, I agree with Garrett Smith&apos;s comments. It would be great if WebKit would take the lead here and implement a really useful global error handler with lots of rich details about what went wrong. If you did not want to break compatibility with existing users of window.onerror, you could either add a new API (window.addEventListener(&quot;error&quot;), or window.onexception), or just add new params to the existing signature.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>77833</commentid>
    <comment_count>14</comment_count>
      <attachid>20597</attachid>
    <who name="Darrell Esau">desau</who>
    <bug_when>2008-04-16 11:53:20 -0700</bug_when>
    <thetext>Created attachment 20597
6 other test cases which throw JS errors that should be caught with window.onerror

(In reply to comment #12)
&gt; This bug really needs more details ...
&gt; 
&gt; ... We can fix the attached single test case, but it&apos;s likely that single
&gt; fix won&apos;t cause us to dispatch error events in all the various cases people
&gt; want us to.

I think fixing the attached case will go a long way ...

If you need more test cases, I&apos;ve attached 6 other test cases in this zip file.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>120792</commentid>
    <comment_count>15</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2009-05-11 21:33:21 -0700</bug_when>
    <thetext>I&apos;m willing to implement this.  My primary concern is test cases (which the 6 posted here do help some with).  I&apos;m also concerned as to if we should really match this API or if we should come up with something better as window.onexception or similar.  I&apos;m currently leaning towards that we should implement a IE/FF compatible window.onerror and then think more about *also* implementing a newer nicer thing, but that HTML5 should be involved in specing some nicer thing.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>120794</commentid>
    <comment_count>16</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2009-05-11 21:43:09 -0700</bug_when>
    <thetext>One question would be if this should be implemented in JavaScriptCore as an &quot;unhandledException&quot; callback (which would have to be wired into the right Interpreter::execute() calls, or if this should be a WebCore-only thing, which could be wired into ScriptController::evaluate() pretty easily.

I think I&apos;ll start with ScriptController::evaluate() and we can wire up a JSC-based solution later if that&apos;s preferred.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>120797</commentid>
    <comment_count>17</comment_count>
    <who name="Ian &apos;Hixie&apos; Hickson">ian</who>
    <bug_when>2009-05-11 22:06:19 -0700</bug_when>
    <thetext>What&apos;s wrong with what HTML5 specs? (I tried to make it match the other browsers; doesn&apos;t it?)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>120801</commentid>
    <comment_count>18</comment_count>
    <who name="Erik Arvidsson">arv</who>
    <bug_when>2009-05-11 22:28:43 -0700</bug_when>
    <thetext>Ian, the proposed spec says that onerror is called with 3 DOMStrings. The third argument (the line number) should be a number.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>120804</commentid>
    <comment_count>19</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2009-05-11 23:28:58 -0700</bug_when>
    <thetext>(In reply to comment #17)
&gt; What&apos;s wrong with what HTML5 specs? (I tried to make it match the other
&gt; browsers; doesn&apos;t it?)

Link to the HTML5 spec:
http://www.whatwg.org/specs/web-apps/current-work/#runtime-script-errors
</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>120999</commentid>
    <comment_count>20</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2009-05-13 00:42:20 -0700</bug_when>
    <thetext>so window.onerror is not actually an event listener.

It&apos;s a callback function.  It does not follow the same signature (or dispatch rules) as normal EventListener objects.  This is sad, and broken.

I wonder how important it is that we match IE/FF&apos;s (broken) syntax here.  How much of a compat issue would it be if we add window.onerror but that we make it fire a real event?   Like the Worker error event:
http://www.whatwg.org/specs/web-workers/current-work/#fire-a-worker-error-event</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>121000</commentid>
    <comment_count>21</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2009-05-13 00:47:32 -0700</bug_when>
    <thetext>(In reply to comment #20)

I will also note that the other place in the DOM where we have an onerror handler is XHR.  But that is explicitly left out of the W3C draft:
http://www.w3.org/TR/XMLHttpRequest/#notcovered

Oh yeah, and geolocation... which has it&apos;s own, lamely different onerror:
http://dev.w3.org/geo/api/spec-source.html#error-callback</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>121001</commentid>
    <comment_count>22</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2009-05-13 00:59:15 -0700</bug_when>
    <thetext>(In reply to comment #21)

Actually ApplicationCache has its own onerror too:
http://www.whatwg.org/specs/web-apps/current-work/#handler-appcache-onerror

Although that looks like an event again, although there is no definition yet as to what an ErrorEvent is.

</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>121031</commentid>
    <comment_count>23</comment_count>
    <who name="Erik Arvidsson">arv</who>
    <bug_when>2009-05-13 07:45:25 -0700</bug_when>
    <thetext>(In reply to comment #20)
&gt; I wonder how important it is that we match IE/FF&apos;s (broken) syntax here.  How
&gt; much of a compat issue would it be if we add window.onerror but that we make it
&gt; fire a real event?   Like the Worker error event:
&gt; http://www.whatwg.org/specs/web-workers/current-work/#fire-a-worker-error-event
&gt; 

Yeah, window.onerror is not an event listener. Lame? Yes, but I think we are better of following IE and FF here and then later later come up with a better solution.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>121204</commentid>
    <comment_count>24</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2009-05-13 20:28:40 -0700</bug_when>
    <thetext>I&apos;m going to work on implementing the historical compatible behavior.

window.onerror will take a callback function instead of a event listener.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>121220</commentid>
    <comment_count>25</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2009-05-13 23:31:33 -0700</bug_when>
    <thetext>Actually, looking at this more this looks pretty much useless.  Yes, the functionality of catching all exceptions is useful, but this callback isn&apos;t.  It doesn&apos;t even give you the actual thrown exception.

I don&apos;t think this is worth doing.  It can&apos;t be a compat concern because the feature is too weak for sites to actually depend on.  I think it is worth adding a real error event however.  The worker ErrorEvent does not expose an exception so that&apos;s not a fit.

A non-event way would be to implement an onerror callback which includes the Exception.  Passing the exception as the first argument would keep &quot;compatible&quot; arguments[0].toString() behavior even if the type would be different.  I could also pass the exception as the 4th argument and maintain compatibility.

I still prefer an EventListener as that fits better in our system (and is something we can define via IDL).  But a callback is also possible (and might actually be useful if it exposed the actual exception object -- so that eventually someone might be able to get a stack from it).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>123354</commentid>
    <comment_count>26</comment_count>
    <who name="Sam Weinig">sam</who>
    <bug_when>2009-05-27 18:25:14 -0700</bug_when>
    <thetext>*** Bug 26052 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>132940</commentid>
    <comment_count>27</comment_count>
    <who name="Greg Hazel">ghazel</who>
    <bug_when>2009-07-18 13:16:53 -0700</bug_when>
    <thetext>Since FF and IE offer window.onerror, why not support it as well? Websites do use it, even if it is not as useful as a real exception, to find out if the page encountered an error. Currently WebKit offers no notification, which is certainly worse than file:line.

If you add a new mechanism that provides an exception that would be great, but websites would have to implement support for it. Adding window.onerror in addition would mean sites get the benefit of it right away.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>140599</commentid>
    <comment_count>28</comment_count>
    <who name="Erik Kay">erikkay</who>
    <bug_when>2009-08-16 14:15:45 -0700</bug_when>
    <thetext>When you say &quot;it can&apos;t be a compat concern&quot;, you&apos;re only looking at it from one angle of compat.  I agree that it&apos;s unlikely that websites will break if this callback doesn&apos;t exist.  However, the existence of the feature allows websites to detect and fix other webkit compat issues more quickly.  For example, the gmail case sited previously means that any unhandled exceptions can be logged to a server where they can be detected, quantified, analyzed, etc.  Without this, it&apos;s quite possible that the site owners won&apos;t realize that their site is broken in webkit browsers as quickly as other browsers (or perhaps at all if the effect of the error is subtle).

Incidentally, I ran into this myself trying to build some unit tests for chrome extensions and not wanting to have to fill the code with zillions of try/catch blocks.  The net effect for me is a lot more effort and a longer debug cycle (since unhandled exceptions wind up leading to timeouts in the test rather than hard errors).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>146739</commentid>
    <comment_count>29</comment_count>
    <who name="Chris Goddard">christophergoddard</who>
    <bug_when>2009-09-11 14:15:17 -0700</bug_when>
    <thetext>Although I understand the desire to not support</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>146795</commentid>
    <comment_count>30</comment_count>
    <who name="Garrett Smith">xk1t</who>
    <bug_when>2009-09-11 16:40:06 -0700</bug_when>
    <thetext>On Sun, Aug 16, 2009 at 2:15 PM, &lt;bugzilla-daemon@webkit.org&gt; wrote:
&gt; https://bugs.webkit.org/show_bug.cgi?id=8519
&gt;
&gt;
&gt; Erik Kay &lt;erikkay@chromium.org&gt; changed:
&gt;
&gt;           What    |Removed                     |Added
&gt; ----------------------------------------------------------------------------
&gt;                 CC|                            |erikkay@chromium.org
&gt;
&gt;
&gt;
&gt;
&gt; --- Comment #28 from Erik Kay &lt;erikkay@chromium.org&gt;  2009-08-16 14:15:45 PDT ---
&gt; When you say &quot;it can&apos;t be a compat concern&quot;, you&apos;re only looking at it from one
&gt; angle of compat.  I agree that it&apos;s unlikely that websites will break if this
&gt; callback doesn&apos;t exist.  However, the existence of the feature allows websites
&gt; to detect and fix other webkit compat issues more quickly.  For example, the
&gt; gmail 

GMail is not such a good case because the code is not valid syntax for an ECMAScript program.

case sited previously means that any unhandled exceptions can be logged
&gt; to a server where they can be detected, quantified, analyzed, etc.  Without
&gt; this, it&apos;s quite possible that the site owners won&apos;t realize that their site is
&gt; broken in webkit browsers as quickly as other browsers (or perhaps at all if
&gt; the effect of the error is subtle).
&gt;
&gt; Incidentally, I ran into this myself trying to build some unit tests for chrome
&gt; extensions and not wanting to have to fill the code with zillions of try/catch
&gt; blocks.  The net effect for me is a lot more effort and a longer debug cycle
&gt; (since unhandled exceptions wind up leading to timeouts in the test rather than
&gt; hard errors).
&gt;
Wrapping everything in a try/catch is something that beginners will tend to do.

If the unhandled exception was thrown from a setTimeout, catch it using an asynchronous testing approach. 

testXXX : function() {
   function myCallback() {
     fired = true;
   }
   someObj.sendMessage(myCallback);
 
   currentTest.wait(function(){ 
    Assert.isTrue(fired, &quot;callback didn&apos;t fire&quot;);
   }, 20);
}

And you can see global the try-catch in GMail. Comment 13 mentions using |window.onerror| instead:

Here we can see what looks like a function declaration inside of a block; 

try{function e(b){throw b;}var h=true,j=null,k=false,aa=encodeURIComponent,aaa=JS_OBFUSCATED,ba=Object,l=Error,ca=parseInt,da=parseFloat,baa=Function,ea=GLOBALS,fa=decodeURIComponent,ga=

It would be reasonable to expect a SyntaxError from such syntactically invalid code, except for the fact that that is not what browsers do, and that falls into the realm of syntax extensions and error handling and this depends on the implementation.

A window.onerror event callback mechanism would be useful for a testing framework. I can see how window.onerror seems attractive for reasons mentioned in comment #13, however such motivation is both driven by and serves to encourage poor programming practices (such as those used in GMail) and should not be used in production (as GMail).

So, if a window.onerror is desirable, the reason for it is not given in comment 13.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>146897</commentid>
    <comment_count>31</comment_count>
    <who name="Benoit Marchant">marchant</who>
    <bug_when>2009-09-11 22:31:27 -0700</bug_when>
    <thetext>The bottom line is that you can&apos;t put try/catch everywhere, and especially (and unfortunately) considering the performance hit it represent. What I&apos;m interested in building is a way to trap unexpected errors and send it automatically with details, user agent, stack trace etc to a backend application in order to learn about bugs users will never report and help have an idea of their frequency.

I don&apos;t see another way than a top-level error handler to do that, and unfortunately, there&apos;s not a realistic way to put all one&apos;s code and framework within one global function that would wrap every lines of code in one try/catch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>146898</commentid>
    <comment_count>32</comment_count>
    <who name="kangax">kangax</who>
    <bug_when>2009-09-11 23:03:47 -0700</bug_when>
    <thetext>(In reply to comment #31)
&gt; The bottom line is that you can&apos;t put try/catch everywhere, and especially (and
&gt; unfortunately) considering the performance hit it represent. What I&apos;m
&gt; interested in building is a way to trap unexpected errors and send it
&gt; automatically with details, user agent, stack trace etc to a backend
&gt; application in order to learn about bugs users will never report and help have
&gt; an idea of their frequency.

[...]

I second that, and actually is exactly what I&apos;m doing in supporting clients. Trapping all unexpected errors at the top level does in fact reveal some of the unexpected glitches in application.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>146917</commentid>
    <comment_count>33</comment_count>
    <who name="Greg Hazel">ghazel</who>
    <bug_when>2009-09-12 03:26:03 -0700</bug_when>
    <thetext>(In reply to comment #32)
&gt; (In reply to comment #31)
&gt; &gt; The bottom line is that you can&apos;t put try/catch everywhere, and especially (and
&gt; &gt; unfortunately) considering the performance hit it represent. What I&apos;m
&gt; &gt; interested in building is a way to trap unexpected errors and send it
&gt; &gt; automatically with details, user agent, stack trace etc to a backend
&gt; &gt; application in order to learn about bugs users will never report and help have
&gt; &gt; an idea of their frequency.
&gt; 
&gt; [...]
&gt; 
&gt; I second that, and actually is exactly what I&apos;m doing in supporting clients.
&gt; Trapping all unexpected errors at the top level does in fact reveal some of the
&gt; unexpected glitches in application.

Agreed. Another good example of this is that window.onerror is called if there is a syntax error on the page, which try/catch can not catch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>146930</commentid>
    <comment_count>34</comment_count>
    <who name="Garrett Smith">xk1t</who>
    <bug_when>2009-09-12 09:09:17 -0700</bug_when>
    <thetext>&gt; Agreed. Another good example of this is that window.onerror is called if there
&gt; is a syntax error on the page, which try/catch can not catch.

Which errors? 

Whatever errors you have, they should have been prevented before the release and this comes back to proper testing.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>146954</commentid>
    <comment_count>35</comment_count>
    <who name="kangax">kangax</who>
    <bug_when>2009-09-12 15:44:38 -0700</bug_when>
    <thetext>(In reply to comment #34)
&gt; &gt; Agreed. Another good example of this is that window.onerror is called if there
&gt; &gt; is a syntax error on the page, which try/catch can not catch.
&gt; 
&gt; Which errors? 

Errors that I could not anticipate.

&gt; 
&gt; Whatever errors you have, they should have been prevented before the release

Isn&apos;t that like saying that whatever bugs in the system you have they should have been prevented before the release? Unfortunately, that&apos;s not how things work :)

&gt; and this comes back to proper testing.
   
What is proper testing? I do have a test suite which I always keep &quot;green&quot;. Yet, there are things I simply can&apos;t test or can&apos;t predict upfront. There could be errors due to unexpected user input. I do try to tame such input, but it still creeps in and being able to catch such errors later rather than never seems like a good idea to me.

Then there are unknown environments that I simply can&apos;t physically test. I don&apos;t have a Playstation 3 so I don&apos;t know how NetFront engine will react to my javascript (even though I try to design defensively). I can&apos;t test Opera 9.25 since (for whatever reason) it doesn&apos;t start on my Mac OS X. It is only after seeing these errors logged through `window.onerror` that I can &quot;fix&quot; them (and change test suite appropriately).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>146956</commentid>
    <comment_count>36</comment_count>
    <who name="Greg Hazel">ghazel</who>
    <bug_when>2009-09-12 16:05:28 -0700</bug_when>
    <thetext>There are many cases where testing on major browsers cannot catch all errors in all browsers and all networks. However, window.onerror covers these cases quite well. Here are a few examples:

http://www.google.com/support/forum/p/Google%20Analytics/thread?tid=7e7a84f8b3ad1439&amp;hl=en

http://www.google.com/support/forum/p/friendconnect/thread?tid=37300940d8ec540b&amp;hl=en

http://www.google.com/support/forum/p/Chrome/thread?tid=7e9f87870a37e401&amp;hl=en

http://www.seomoz.org/blog/google-analytics-javascript-is-broken</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>149492</commentid>
    <comment_count>37</comment_count>
    <who name="">jontro</who>
    <bug_when>2009-09-23 13:40:25 -0700</bug_when>
    <thetext>I wonder what the issue with implementing this is.

It&apos;s been up for discussion since 2006 and it&apos;s clearly a requested feature.

To me it doesn&apos;t matter if it is implemented in the same way as it&apos;s in firefox or IE, or if we choose a new way. 

The important thing is that there is a way to catch these errors.

What needs to be done to go forward with this feature?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>165770</commentid>
    <comment_count>38</comment_count>
    <who name="Jake Archibald">jaffathecake</who>
    <bug_when>2009-11-22 15:33:29 -0800</bug_when>
    <thetext>I&apos;d also like to see this implemented. When creating async tests in something like qunit we have to set a timeout in case the test errors. If window.onerror was implemented, qunit would be able to catch the error, report it, and proceed to the next test without a ~10 second timeout.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>180983</commentid>
    <comment_count>39</comment_count>
    <who name="Tak">mtakacs</who>
    <bug_when>2010-01-14 16:01:55 -0800</bug_when>
    <thetext>crosslinking to Google Chrome bug tracker entry for this same issue

http://code.google.com/p/chromium/issues/detail?id=7771</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>192265</commentid>
    <comment_count>40</comment_count>
    <who name="Brandon Thomson">gravix</who>
    <bug_when>2010-02-21 08:57:23 -0800</bug_when>
    <thetext>Until all popular browsers have exactly the same javascript behavior in every release (haha, yeah right), we really do need a mechanism of reporting errors back to the server or we&apos;ll never know about them. The path of least resistance is to implement this legacy handler and worry about improving it later</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>218425</commentid>
    <comment_count>41</comment_count>
    <who name="Walter Poch">walter.poch</who>
    <bug_when>2010-04-28 09:20:30 -0700</bug_when>
    <thetext>Guys, when this bug will be finally implemented. We need it for global error catching!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>219460</commentid>
    <comment_count>42</comment_count>
    <who name="Thomas Steinacher">tom</who>
    <bug_when>2010-04-30 06:09:19 -0700</bug_when>
    <thetext>Would love to see this implemented. This is required to detect failed JSONP requests by setting an onerror callback on the script element. Right now the only way to detect them is by having a timeout.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>219490</commentid>
    <comment_count>43</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2010-04-30 08:21:22 -0700</bug_when>
    <thetext>&gt; This is required to detect failed JSONP
&gt; requests by setting an onerror callback on the script element.

If HTMLScriptElement.onerror doesn&apos;t work, please file a new bug. This one is about window.onerror.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>219663</commentid>
    <comment_count>44</comment_count>
    <who name="Charles Kendrick">charles.kendrick</who>
    <bug_when>2010-04-30 17:24:21 -0700</bug_when>
    <thetext>This is hugely important to Ajax frameworks.  In IE, any time an error occurs, we are able to walk the stack and log something like this:

11:37:59.734:RDQ4:WARN:Log:Error:
   &apos;Object doesn&apos;t support this property or method&apos;
   in http://localhost:8080/MyStaffTrack.html
   at line 821
   [a]ImgButton.$31r(_1=&gt;13128, _2=&gt;Obj{name:HOURS_CLOCKED}, _3=&gt;[ListGrid ID:isc_OID_94], _4=&gt;Obj, _5=&gt;0, _6=&gt;5)
   ListGrid.$315(_1=&gt;13128, _2=&gt;Obj, _3=&gt;Obj{name:HOURS_CLOCKED}, _4=&gt;0, _5=&gt;5)
   ListGrid.getCellValue(_1=&gt;Obj, _2=&gt;0, _3=&gt;5, _4=&gt;[GridBody ID:isc_OID_94_body])
   [o]GridBody.getCellValue(record=&gt;Obj, rowNum=&gt;0, colNum=&gt;5, gridBody=&gt;[GridBody ID:isc_OID_94_body])
   GridRenderer.$22k(_1=&gt;Obj, _2=&gt;0, _3=&gt;5)
   GridRenderer.getTableHTML(_1=&gt;undef, _2=&gt;undef, _3=&gt;undef)
   GridRenderer.getInnerHTML(undef)
   Class.invokeSuper(_1=&gt;null, _2=&gt;&quot;getInnerHTML&quot;, _3=&gt;undef, _4=&gt;undef, _5=&gt;undef, _6=&gt;undef, _7=&gt;undef, _8=&gt;undef, _9=&gt;undef, _10=&gt;undef)
   Class.Super(_1=&gt;&quot;getInnerHTML&quot;, _2=&gt;Obj{length:1}, _3=&gt;undef)
   GridBody.getInnerHTML(undef)

This has major benefits:

1. it appears in the flow of other logs, so we know exactly when the error occurred relative to other happenings

2. we are adding all kinds of SmartClient/SmartGWT-specific information that a general, Firebug-like error console can never replicate.  For example, it knows that the anonymous function &quot;getCellValue&quot; is attached to a class ListGrid but this could never be figured out by a general tool that is just looking at JavaScript code and doesn&apos;t know about the SmartClient class system.  We are even showing information like the prefix [o] - this means the method is an override of the default method for the class.  Note also the thread indicator (RDQ4) - this indicates it happens in the redraw queue thread - very important to know.

This is so valuable for troubleshooting that right in the SmartGWT FAQ and in all our support documents we say that whenever you encounter a JavaScript error the first step is to leave Safari/Chrome/whatever nice fast browser you actually like to use, and go replicate the error in Internet Explorer so we can get good diagnostic information.. and that&apos;s just sad.

We don&apos;t care about compatibility with IE&apos;s window.onerror vs an event listener or some other approach - just please give us a way to get the information.  Thanks.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>219814</commentid>
    <comment_count>45</comment_count>
    <who name="Thomas Steinacher">tom</who>
    <bug_when>2010-05-02 03:42:53 -0700</bug_when>
    <thetext>Opened Bug 38428 for an issue concerning script onerror.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>230327</commentid>
    <comment_count>46</comment_count>
    <who name="Brian Harper">brianh.smartsheet</who>
    <bug_when>2010-05-25 10:10:38 -0700</bug_when>
    <thetext>4 years later and still no window.onerror. I&apos;ll add yet another note that this feature is hugely valuable to web application developers who rely on it to be notified of client errors. Like others we have implemented a logging system to collect information on errors that our users encounter, and have found it invaluable. No, window.onerror as it is implemented in FF and IE is not the best, or &quot;right&quot; solution. But it&apos;s infinitely better than no solution. Until window.onerror is implemented in Webkit, we can&apos;t recommend Chrome and Safari to our users, even though we support them and would otherwise prefer them. 

It makes little sense to me to plow ahead with a raft of new HTML5 features while this basic piece of infrastructure is missing. There&apos;s no way I&apos;m going to implement new functionality that is only supported in Webkit if I can&apos;t get error reporting short of littering my code with try/catch blocks.

It&apos;s been a year since Eric&apos;s comment that it wasn&apos;t valuable, and that has been refuted by many developers who absolutely do get a lot of value from it. And it&apos;s been 4 years since this deficiency was reported. Please, somebody tackle this!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>230430</commentid>
    <comment_count>47</comment_count>
    <who name="Christopher Blum">christopher.blum</who>
    <bug_when>2010-05-25 13:52:40 -0700</bug_when>
    <thetext>Totally agree with Brian.

We need this in order to create a cross browser exception notifier that sends us any javascript error that occured on our production system.

Thanks.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>230440</commentid>
    <comment_count>48</comment_count>
    <who name="Tak">mtakacs</who>
    <bug_when>2010-05-25 14:00:54 -0700</bug_when>
    <thetext>me too.

We use some libraries that attempt to compensate for this behavior, but we can&apos;t always use them.  It&apos;s a continued source of pain that we need to sniff for window.onerror and provide one if it doesn&apos;t exist.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>230449</commentid>
    <comment_count>49</comment_count>
    <who name="Justin Meyer">justinbmeyer</who>
    <bug_when>2010-05-25 14:10:23 -0700</bug_when>
    <thetext>onError is super crazy useful for big development efforts.  We even released an open source application(https://damnit.jupiterit.com/) and script that emails us when onerror happens in a page.

When you&apos;ve got 100s of thousands of custom JS code in an application, you can&apos;t test for everything.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>230531</commentid>
    <comment_count>50</comment_count>
    <who name="Anders Mad.">ama</who>
    <bug_when>2010-05-25 17:19:00 -0700</bug_when>
    <thetext>It&apos;s THE (only) thing missing!.. I&apos;m joining the angry mob here - hoping that our pitchfork comments will make a difference :-)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>230550</commentid>
    <comment_count>51</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2010-05-25 18:37:26 -0700</bug_when>
    <thetext>The &quot;me too&quot; comments can only make this less likely to be implemented, because useful technical information is lost between them.

There is more than enough interest expressed in this feature, please refrain from commenting unless you&apos;re actually implementing it, or are answering to a specific request for feedback (like that in comment 12).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>267813</commentid>
    <comment_count>52</comment_count>
      <attachid>65092</attachid>
    <who name="Yury Semikhatsky">yurys</who>
    <bug_when>2010-08-23 02:57:57 -0700</bug_when>
    <thetext>Created attachment 65092
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>267814</commentid>
    <comment_count>53</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-08-23 03:03:12 -0700</bug_when>
    <thetext>Attachment 65092 did not pass style-queue:

Failed to run &quot;[&apos;WebKitTools/Scripts/check-webkit-style&apos;]&quot; exit_code: 1
ERROR: Unexpected diff format when parsing a chunk: &apos;&apos;
ERROR: Unexpected diff format when parsing a chunk: &apos;&apos;
ERROR: Unexpected diff format when parsing a chunk: &apos;&apos;
ERROR: Unexpected diff format when parsing a chunk: &apos;&apos;
ERROR: Unexpected diff format when parsing a chunk: &apos;&apos;
ERROR: Unexpected diff format when parsing a chunk: &apos;&apos;
ERROR: Unexpected diff format when parsing a chunk: &apos;&apos;
ERROR: Unexpected diff format when parsing a chunk: &apos;&apos;
ERROR: Unexpected diff format when parsing a chunk: &apos;&apos;
ERROR: Unexpected diff format when parsing a chunk: &apos;&apos;
ERROR: Unexpected diff format when parsing a chunk: &apos;&apos;
ERROR: Unexpected diff format when parsing a chunk: &apos;&apos;
ERROR: Unexpected diff format when parsing a chunk: &apos;&apos;
ERROR: Unexpected diff format when parsing a chunk: &apos;&apos;
ERROR: Unexpected diff format when parsing a chunk: &apos;&apos;
ERROR: Unexpected diff format when parsing a chunk: &apos;&apos;
ERROR: Unexpected diff format when parsing a chunk: &apos;&apos;
ERROR: Unexpected diff format when parsing a chunk: &apos;&apos;
ERROR: Unexpected diff format when parsing a chunk: &apos;&apos;
ERROR: Unexpected diff format when parsing a chunk: &apos;&apos;
ERROR: Unexpected diff format when parsing a chunk: &apos;&apos;
ERROR: Unexpected diff format when parsing a chunk: &apos;&apos;
ERROR: Unexpected diff format when parsing a chunk: &apos;&apos;
ERROR: Unexpected diff format when parsing a chunk: &apos;&apos;
ERROR: Unexpected diff format when parsing a chunk: &apos;&apos;
ERROR: Unexpected diff format when parsing a chunk: &apos;&apos;
ERROR: Unexpected diff format when parsing a chunk: &apos;&apos;
ERROR: Unexpected diff format when parsing a chunk: &apos;&apos;
ERROR: Unexpected diff format when parsing a chunk: &apos;&apos;
ERROR: Unexpected diff format when parsing a chunk: &apos;&apos;
ERROR: Unexpected diff format when parsing a chunk: &apos;&apos;
ERROR: Unexpected diff format when parsing a chunk: &apos;&apos;
ERROR: Unexpected diff format when parsing a chunk: &apos;&apos;
ERROR: Unexpected diff format when parsing a chunk: &apos;&apos;
ERROR: Unexpected diff format when parsing a chunk: &apos;&apos;
ERROR: Unexpected diff format when parsing a chunk: &apos;&apos;
ERROR: Unexpected diff format when parsing a chunk: &apos;&apos;
ERROR: Unexpected diff format when parsing a chunk: &apos;&apos;
ERROR: Unexpected diff format when parsing a chunk: &apos;&apos;
ERROR: Unexpected diff format when parsing a chunk: &apos;&apos;
ERROR: Unexpected diff format when parsing a chunk: &apos;&apos;
ERROR: Unexpected diff format when parsing a chunk: &apos;&apos;
ERROR: Unexpected diff format when parsing a chunk: &apos;&apos;
ERROR: Unexpected diff format when parsing a chunk: &apos;&apos;
ERROR: Unexpected diff format when parsing a chunk: &apos;&apos;
ERROR: Unexpected diff format when parsing a chunk: &apos;&apos;
ERROR: Unexpected diff format when parsing a chunk: &apos;&apos;
ERROR: Unexpected diff format when parsing a chunk: &apos;&apos;
ERROR: Unexpected diff format when parsing a chunk: &apos;&apos;
ERROR: Unexpected diff format when parsing a chunk: &apos;&apos;
ERROR: Unexpected diff format when parsing a chunk: &apos;&apos;
ERROR: Unexpected diff format when parsing a chunk: &apos;&apos;
WebCore/bindings/v8/V8ConsoleMessage.h:40:  Code inside a namespace should not be indented.  [whitespace/indent] [4]
Total errors found: 1 in 51 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>267828</commentid>
    <comment_count>54</comment_count>
    <who name="Yury Semikhatsky">yurys</who>
    <bug_when>2010-08-23 03:33:12 -0700</bug_when>
    <thetext>(In reply to comment #52)
&gt; Created an attachment (id=65092) [details]
&gt; Patch

Not directly related to this patch but rater to the Element.onXXX handlers in general. One DOMWindow native instance may be shared between several DOM wrapper worlds. Each of such worlds may set its own function to window.onerror and since all of them will use DOMWindow.onerror as storage, the last assignment will overwrite all previous. This means that we need to store window.onerror handler on corresponding DOMWindow wrapper to allow window.onerror handler per wrapper world. Alternatively we may continue with current implementation and have at most one window.onerror handler no matter how many worlds share same DOMWindow. But in any case we shouldn&apos;t invoke the handler if it originates from a world other than that where the exception happened.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>267854</commentid>
    <comment_count>55</comment_count>
      <attachid>65104</attachid>
    <who name="Yury Semikhatsky">yurys</who>
    <bug_when>2010-08-23 05:07:36 -0700</bug_when>
    <thetext>Created attachment 65104
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>267857</commentid>
    <comment_count>56</comment_count>
      <attachid>65106</attachid>
    <who name="Yury Semikhatsky">yurys</who>
    <bug_when>2010-08-23 05:13:26 -0700</bug_when>
    <thetext>Created attachment 65106
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>267863</commentid>
    <comment_count>57</comment_count>
      <attachid>65106</attachid>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2010-08-23 05:29:30 -0700</bug_when>
    <thetext>Comment on attachment 65106
Patch

Looks sane to me. I am willing 

WebCore/dom/Document.cpp:408
 +      , m_reportingException(false)
This field is not used.


WebCore/dom/Document.h:1287
 +      bool m_reportingException;
ditto</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>267866</commentid>
    <comment_count>58</comment_count>
      <attachid>65109</attachid>
    <who name="Yury Semikhatsky">yurys</who>
    <bug_when>2010-08-23 05:32:23 -0700</bug_when>
    <thetext>Created attachment 65109
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>267867</commentid>
    <comment_count>59</comment_count>
    <who name="Yury Semikhatsky">yurys</who>
    <bug_when>2010-08-23 05:33:01 -0700</bug_when>
    <thetext>(In reply to comment #57)
&gt; (From update of attachment 65106 [details])
&gt; Looks sane to me. I am willing 
&gt; 
&gt; WebCore/dom/Document.cpp:408
&gt;  +      , m_reportingException(false)
&gt; This field is not used.
&gt; 
Done.

&gt; 
&gt; WebCore/dom/Document.h:1287
&gt;  +      bool m_reportingException;
&gt; ditto
Done.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>276911</commentid>
    <comment_count>60</comment_count>
      <attachid>65109</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2010-09-09 18:22:41 -0700</bug_when>
    <thetext>Comment on attachment 65109
Patch

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

&gt; LayoutTests/fast/events/window-onerror2.html:19
&gt; +window.onerror = function(msg, url, line)
&gt; +{
&gt; +    url = url ? url.match( /[^\/]+\/?$/ )[0] : url;
&gt; +    log(&quot;Main frame window.onerror: &quot; + msg + &quot; at &quot; + url + &quot;:&quot; + line);
&gt; +}
This would read more clearly if it returned false, instead of relying on the implicit return value of undefined being interpreted as false.

&gt; LayoutTests/fast/events/window-onerror2.html:30
&gt; +function delayedThrowException()
&gt; +{
&gt; +    throw &quot;Exception in setTimeout&quot;;
&gt; +}
&gt; +setTimeout(delayedThrowException, 0);
&gt; +
&gt; +setTimeout(function() {
&gt; +    if (window.layoutTestController)
&gt; +        layoutTestController.notifyDone();
&gt; +}, 0);
These racing setTimeouts seem unnecessarily complex/unreliable. Why not just have onerror keep a count, and notifyDone when it hits 3.

&gt; LayoutTests/fast/events/window-onerror3.html:22
&gt; +
&gt; +function log(msg) {
&gt; +    document.getElementById(&quot;console&quot;).innerHTML += msg + &quot;&lt;br&gt;&quot;;
&gt; +}
&gt; +
&gt; +function test1()
&gt; +{
&gt; +    window.onerror = function (error, url, line) {
&gt; +        url = url ? url.match( /[^\/]+\/?$/ )[0] : url;
&gt; +        log(&quot;Error caught successfully: &quot; + error + &quot;\nFile: &quot; + url + &quot;\nLine: &quot; + line)
&gt; +    };
&gt; +    unknownObject.unknownProperty++;
&gt; +}
&gt; +&lt;/script&gt;
&gt; +&lt;body onload=&quot;test1();&quot;&gt;
&gt; +&lt;p&gt;You should see a message if window.onerror is working properly for this test.&lt;a href=&quot;https://bugs.webkit.org/show_bug.cgi?id=8519&quot;&gt;Bug 8519&lt;/a&gt;.&lt;/p&gt;
&gt; +&lt;hr&gt;
&gt; +&lt;div id=&apos;console&apos;&gt;&lt;/div&gt;
&gt; +&lt;/body&gt;
It seems like there should be no console message here since the onerror handler is returning false (meaning handled). Is this a bug?  You also should explicitly return false.

&gt; LayoutTests/fast/events/window-onerror4.html:22
&gt; +
&gt; +function log(msg) {
&gt; +    document.getElementById(&quot;console&quot;).innerHTML += msg + &quot;&lt;br&gt;&quot;;
&gt; +}
&gt; +
&gt; +function test1()
&gt; +{
&gt; +    window.onerror = function (error, url, line) {
&gt; +        url = url ? url.match( /[^\/]+\/?$/ )[0] : url;
&gt; +        log(&quot;Error caught successfully: &quot; + error + &quot;\nFile: &quot; + url + &quot;\nLine: &quot; + line)
&gt; +    };
&gt; +    eval(&quot;1=2&quot;);
&gt; +}
&gt; +&lt;/script&gt;
&gt; +&lt;body onload=&quot;test1();&quot;&gt;
&gt; +&lt;p&gt;You should see a log record if window.onerror is working properly for this test.&lt;a href=&quot;https://bugs.webkit.org/show_bug.cgi?id=8519&quot;&gt;Bug 8519&lt;/a&gt;.&lt;/p&gt;
&gt; +&lt;hr&gt;
&gt; +&lt;div id=&apos;console&apos;&gt;&lt;/div&gt;
&gt; +&lt;/body&gt;
Same question as above?

&gt; LayoutTests/fast/events/window-onerror5.html:17
&gt; +function log(msg) {
&gt; +    document.getElementById(&quot;console&quot;).innerHTML += msg + &quot;&lt;br&gt;&quot;;
&gt; +}
&gt; +
&gt; +function test1()
&gt; +{
&gt; +    window.onerror = function (error, url, line) {
&gt; +        url = url ? url.match( /[^\/]+\/?$/ )[0] : url;
&gt; +        log(&quot;Error caught successfully: &quot; + error + &quot;\nFile: &quot; + url + &quot;\nLine: &quot; + line)
&gt; +    };
&gt; +    eval(&quot;a(&quot;);
&gt; +}
&gt; +&lt;/script&gt;
Here too.

&gt; LayoutTests/fast/events/window-onerror6.html:23
&gt; +    document.getElementById(&quot;console&quot;).innerHTML += msg + &quot;&lt;br&gt;&quot;;
&gt; +}
&gt; +
&gt; +window.onerror = function(msg, url, line)
&gt; +{
&gt; +    url = url ? url.match( /[^\/]+\/?$/ )[0] : url;
&gt; +    log(&quot;Main frame window.onerror: &quot; + msg + &quot; at &quot; + url + &quot;:&quot; + line);
&gt; +}
&gt; +&lt;/script&gt;
&gt; +&lt;script&gt;
&gt; +
&gt; +a) // syntax error
&gt; +
&gt; +&lt;/script&gt;
Same question.

&gt; LayoutTests/fast/events/window-onerror7.html:24
&gt; +
&gt; +function log(msg) {
&gt; +    document.getElementById(&quot;console&quot;).innerHTML += msg + &quot;&lt;br&gt;&quot;;
&gt; +}
&gt; +
&gt; +window.onerror = function(msg, url, line)
&gt; +{
&gt; +    url = url ? url.match( /[^\/]+\/?$/ )[0] : url;
&gt; +    log(&quot;Main frame window.onerror: &quot; + msg + &quot; at &quot; + url + &quot;:&quot; + line);
&gt; +    throw &quot;Nested error&quot;;
&gt; +}
&gt; +
&gt; +throw 2010;
&gt; +
&gt; +&lt;/script&gt;
&gt; +&lt;/body&gt;
&gt; +&lt;/html&gt;
According to HTML5:

&quot;Any uncaught exceptions thrown or errors caused by this function may be reported to the user immediately after the error that the function was called for; the report an error algorithm must not be used to handle exceptions thrown or errors caused by this function.&quot;

It seems like the nested error is being reported first which seems incorrect.

&gt; WebCore/dom/Document.cpp:4450
&gt; +        // Invoke window.onerror.
&gt; +        if (invokeOnErrorHandler(domWindow-&gt;onerror(), errorMessage, lineNumber, sourceURL))
&gt; +            return;
&gt; +    }
You should remove the comment. The code is clear enough not to need one.

&gt; WebCore/dom/ScriptExecutionContext.cpp:275
&gt; +bool ScriptExecutionContext::invokeOnErrorHandler(EventListener* onerror, const String&amp; errorMessage, int lineNumber, const String&amp; sourceURL)
&gt; +{
&gt; +    if (!onerror)
&gt; +        return false;
&gt; +    if (m_inErrorHandler)
&gt; +        return false;
&gt; +    m_inErrorHandler = true;
&gt; +    RefPtr&lt;ErrorEvent&gt; errorEvent(ErrorEvent::create(errorMessage, sourceURL, lineNumber));
&gt; +    onerror-&gt;handleEvent(this, errorEvent.get());
&gt; +    m_inErrorHandler = false;
&gt; +    return errorEvent-&gt;defaultPrevented();
&gt; +}
There are a few problems with this code. 
1) It doesn&apos;t dispatch the event to listeners added via addEventListener()
2) It doesn&apos;t set the properties on the event like &quot;target&quot;, &quot;phase&quot; and &quot;currentTarget&quot;. Even though the event object is not available as an argument, it will be both in scope and available on the global object.

There is an easy solution though, the standard way to due this is to call dispatchEvent on the EventTarget.  Please make this change and add tests for each of these bugs.

&gt; WebCore/dom/ScriptExecutionContext.h:98
&gt; +        bool invokeOnErrorHandler(EventListener*, const String&amp; errorMessage, int lineNumber, const String&amp; sourceURL);
Error handler is too generic a name. How about we call this dispatchErrorEvent.

&gt; WebCore/dom/ScriptExecutionContext.h:188
&gt; +        bool m_inErrorHandler;
This should probably be renamed to m_inDispatchErrorEvent. Thats what we do for other recursion guards in WebCore.


r- due to the correctness problems but this is a very promising patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>276950</commentid>
    <comment_count>61</comment_count>
      <attachid>67141</attachid>
    <who name="Greg Hazel">ghazel</who>
    <bug_when>2010-09-09 19:25:29 -0700</bug_when>
    <thetext>Created attachment 67141
Another test case with a syntax error which should be caught with window.onerror 

Maybe this is functionally already covered well by the eval tests, but I wanted to show exactly how it should be possible to use it before onload, and regarding regular script tags.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>286940</commentid>
    <comment_count>62</comment_count>
    <who name="Yury Semikhatsky">yurys</who>
    <bug_when>2010-09-29 10:08:08 -0700</bug_when>
    <thetext>(In reply to comment #60)
&gt; (From update of attachment 65109 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=65109&amp;action=prettypatch
&gt; 
&gt; &gt; LayoutTests/fast/events/window-onerror2.html:19
&gt; &gt; +window.onerror = function(msg, url, line)
&gt; &gt; +{
&gt; &gt; +    url = url ? url.match( /[^\/]+\/?$/ )[0] : url;
&gt; &gt; +    log(&quot;Main frame window.onerror: &quot; + msg + &quot; at &quot; + url + &quot;:&quot; + line);
&gt; &gt; +}
&gt; This would read more clearly if it returned false, instead of relying on the implicit return value of undefined being interpreted as false.

Done.


&gt; 
&gt; &gt; LayoutTests/fast/events/window-onerror2.html:30
&gt; &gt; +function delayedThrowException()
&gt; &gt; +{
&gt; &gt; +    throw &quot;Exception in setTimeout&quot;;
&gt; &gt; +}
&gt; &gt; +setTimeout(delayedThrowException, 0);
&gt; &gt; +
&gt; &gt; +setTimeout(function() {
&gt; &gt; +    if (window.layoutTestController)
&gt; &gt; +        layoutTestController.notifyDone();
&gt; &gt; +}, 0);
&gt; These racing setTimeouts seem unnecessarily complex/unreliable. Why not just have onerror keep a count, and notifyDone when it hits 3.
&gt; 
Fixed. Thanks. I forgot that test will just time out if notifyDone is not called.


&gt; &gt; LayoutTests/fast/events/window-onerror3.html:22
&gt; &gt; +
&gt; &gt; +function log(msg) {
&gt; &gt; +    document.getElementById(&quot;console&quot;).innerHTML += msg + &quot;&lt;br&gt;&quot;;
&gt; &gt; +}
&gt; &gt; +
&gt; &gt; +function test1()
&gt; &gt; +{
&gt; &gt; +    window.onerror = function (error, url, line) {
&gt; &gt; +        url = url ? url.match( /[^\/]+\/?$/ )[0] : url;
&gt; &gt; +        log(&quot;Error caught successfully: &quot; + error + &quot;\nFile: &quot; + url + &quot;\nLine: &quot; + line)
&gt; &gt; +    };
&gt; &gt; +    unknownObject.unknownProperty++;
&gt; &gt; +}
&gt; &gt; +&lt;/script&gt;
&gt; &gt; +&lt;body onload=&quot;test1();&quot;&gt;
&gt; &gt; +&lt;p&gt;You should see a message if window.onerror is working properly for this test.&lt;a href=&quot;https://bugs.webkit.org/show_bug.cgi?id=8519&quot;&gt;Bug 8519&lt;/a&gt;.&lt;/p&gt;
&gt; &gt; +&lt;hr&gt;
&gt; &gt; +&lt;div id=&apos;console&apos;&gt;&lt;/div&gt;
&gt; &gt; +&lt;/body&gt;
&gt; It seems like there should be no console message here since the onerror handler is returning false (meaning handled). Is this a bug?  You also should explicitly return false.
&gt; 

I&apos;ve added explicit return false statements to the other tests as well. From the following sentence in HTML5 spec 
&quot;If the function returns false, then the error is handled. Otherwise, the error is not handled.&quot;
I conclude that returning undefined value is supposed to be treated the same way as returning _true_. Actually that&apos;s how the code currently works: adding explicit &quot;return false&quot;s cleared the console messages. In my opinion although treating undefined as true complies with the spec, it is somewhat unusual in JavaScript world.



&gt; &gt; LayoutTests/fast/events/window-onerror4.html:22
&gt; &gt; +
&gt; &gt; +function log(msg) {
&gt; &gt; +    document.getElementById(&quot;console&quot;).innerHTML += msg + &quot;&lt;br&gt;&quot;;
&gt; &gt; +}
&gt; &gt; +
&gt; &gt; +function test1()
&gt; &gt; +{
&gt; &gt; +    window.onerror = function (error, url, line) {
&gt; &gt; +        url = url ? url.match( /[^\/]+\/?$/ )[0] : url;
&gt; &gt; +        log(&quot;Error caught successfully: &quot; + error + &quot;\nFile: &quot; + url + &quot;\nLine: &quot; + line)
&gt; &gt; +    };
&gt; &gt; +    eval(&quot;1=2&quot;);
&gt; &gt; +}
&gt; &gt; +&lt;/script&gt;
&gt; &gt; +&lt;body onload=&quot;test1();&quot;&gt;
&gt; &gt; +&lt;p&gt;You should see a log record if window.onerror is working properly for this test.&lt;a href=&quot;https://bugs.webkit.org/show_bug.cgi?id=8519&quot;&gt;Bug 8519&lt;/a&gt;.&lt;/p&gt;
&gt; &gt; +&lt;hr&gt;
&gt; &gt; +&lt;div id=&apos;console&apos;&gt;&lt;/div&gt;
&gt; &gt; +&lt;/body&gt;
&gt; Same question as above?
&gt; 
Fixed. See my reply above.

&gt; &gt; LayoutTests/fast/events/window-onerror5.html:17
&gt; &gt; +function log(msg) {
&gt; &gt; +    document.getElementById(&quot;console&quot;).innerHTML += msg + &quot;&lt;br&gt;&quot;;
&gt; &gt; +}
&gt; &gt; +
&gt; &gt; +function test1()
&gt; &gt; +{
&gt; &gt; +    window.onerror = function (error, url, line) {
&gt; &gt; +        url = url ? url.match( /[^\/]+\/?$/ )[0] : url;
&gt; &gt; +        log(&quot;Error caught successfully: &quot; + error + &quot;\nFile: &quot; + url + &quot;\nLine: &quot; + line)
&gt; &gt; +    };
&gt; &gt; +    eval(&quot;a(&quot;);
&gt; &gt; +}
&gt; &gt; +&lt;/script&gt;
&gt; Here too.
&gt; 
Ditto.

&gt; &gt; LayoutTests/fast/events/window-onerror6.html:23
&gt; &gt; +    document.getElementById(&quot;console&quot;).innerHTML += msg + &quot;&lt;br&gt;&quot;;
&gt; &gt; +}
&gt; &gt; +
&gt; &gt; +window.onerror = function(msg, url, line)
&gt; &gt; +{
&gt; &gt; +    url = url ? url.match( /[^\/]+\/?$/ )[0] : url;
&gt; &gt; +    log(&quot;Main frame window.onerror: &quot; + msg + &quot; at &quot; + url + &quot;:&quot; + line);
&gt; &gt; +}
&gt; &gt; +&lt;/script&gt;
&gt; &gt; +&lt;script&gt;
&gt; &gt; +
&gt; &gt; +a) // syntax error
&gt; &gt; +
&gt; &gt; +&lt;/script&gt;
&gt; Same question.
&gt; 
Ditto.

&gt; &gt; LayoutTests/fast/events/window-onerror7.html:24
&gt; &gt; +
&gt; &gt; +function log(msg) {
&gt; &gt; +    document.getElementById(&quot;console&quot;).innerHTML += msg + &quot;&lt;br&gt;&quot;;
&gt; &gt; +}
&gt; &gt; +
&gt; &gt; +window.onerror = function(msg, url, line)
&gt; &gt; +{
&gt; &gt; +    url = url ? url.match( /[^\/]+\/?$/ )[0] : url;
&gt; &gt; +    log(&quot;Main frame window.onerror: &quot; + msg + &quot; at &quot; + url + &quot;:&quot; + line);
&gt; &gt; +    throw &quot;Nested error&quot;;
&gt; &gt; +}
&gt; &gt; +
&gt; &gt; +throw 2010;
&gt; &gt; +
&gt; &gt; +&lt;/script&gt;
&gt; &gt; +&lt;/body&gt;
&gt; &gt; +&lt;/html&gt;
&gt; According to HTML5:
&gt; 
&gt; &quot;Any uncaught exceptions thrown or errors caused by this function may be reported to the user immediately after the error that the function was called for; the report an error algorithm must not be used to handle exceptions thrown or errors caused by this function.&quot;
&gt; 
&gt; It seems like the nested error is being reported first which seems incorrect.
&gt; 
Fixed. All nested exceptions are collected and dispatched only after the original error is handled.


&gt; &gt; WebCore/dom/Document.cpp:4450
&gt; &gt; +        // Invoke window.onerror.
&gt; &gt; +        if (invokeOnErrorHandler(domWindow-&gt;onerror(), errorMessage, lineNumber, sourceURL))
&gt; &gt; +            return;
&gt; &gt; +    }
&gt; You should remove the comment. The code is clear enough not to need one.
&gt; 
&gt; &gt; WebCore/dom/ScriptExecutionContext.cpp:275
&gt; &gt; +bool ScriptExecutionContext::invokeOnErrorHandler(EventListener* onerror, const String&amp; errorMessage, int lineNumber, const String&amp; sourceURL)
&gt; &gt; +{
&gt; &gt; +    if (!onerror)
&gt; &gt; +        return false;
&gt; &gt; +    if (m_inErrorHandler)
&gt; &gt; +        return false;
&gt; &gt; +    m_inErrorHandler = true;
&gt; &gt; +    RefPtr&lt;ErrorEvent&gt; errorEvent(ErrorEvent::create(errorMessage, sourceURL, lineNumber));
&gt; &gt; +    onerror-&gt;handleEvent(this, errorEvent.get());
&gt; &gt; +    m_inErrorHandler = false;
&gt; &gt; +    return errorEvent-&gt;defaultPrevented();
&gt; &gt; +}
&gt; There are a few problems with this code. 
&gt; 1) It doesn&apos;t dispatch the event to listeners added via addEventListener()
&gt; 2) It doesn&apos;t set the properties on the event like &quot;target&quot;, &quot;phase&quot; and &quot;currentTarget&quot;. Even though the event object is not available as an argument, it will be both in scope and available on the global object.
&gt; 
&gt; There is an easy solution though, the standard way to due this is to call dispatchEvent on the EventTarget.  Please make this change and add tests for each of these bugs.
&gt;
Fixed both and provided tests. I don&apos;t see support for &quot;error&quot; event listeners in other browsers. Firefox passes an event object with type &quot;error&quot; but there are no message, filename, lineno fields on it. IE doesn&apos;t allow add such listener on the window object.

I&apos;m not quite sure how to interpret section &quot;6.1.6.5 Runtime script errors&quot; in the HTML5 spec. It doesn&apos;t mention &quot;error&quot; listeners added via addEventListener, only onerror handlers. Does it mean that the listeners behavior is unspecified or should we treat &quot;error&quot; event here just like the other DOM events?


&gt; &gt; WebCore/dom/ScriptExecutionContext.h:98
&gt; &gt; +        bool invokeOnErrorHandler(EventListener*, const String&amp; errorMessage, int lineNumber, const String&amp; sourceURL);
&gt; Error handler is too generic a name. How about we call this dispatchErrorEvent.
&gt; 

Done. Renamed the method to dispatchErrorEvent.


&gt; &gt; WebCore/dom/ScriptExecutionContext.h:188
&gt; &gt; +        bool m_inErrorHandler;
&gt; This should probably be renamed to m_inDispatchErrorEvent. Thats what we do for other recursion guards in WebCore.
&gt; 
Done.


Additionally I added check for dom wrapper world into error handlers. If the exception occurred in a world other than the handler, the latter won&apos;t be invoked.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>286943</commentid>
    <comment_count>63</comment_count>
      <attachid>69208</attachid>
    <who name="Yury Semikhatsky">yurys</who>
    <bug_when>2010-09-29 10:10:07 -0700</bug_when>
    <thetext>Created attachment 69208
Patch, next iteration</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>286954</commentid>
    <comment_count>64</comment_count>
      <attachid>69208</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2010-09-29 10:23:15 -0700</bug_when>
    <thetext>Comment on attachment 69208
Patch, next iteration

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

&gt; WebCore/GNUmakefile.am:792
&gt; +&lt;&lt;&lt;&lt;&lt;&lt;&lt; HEAD

You left a merge marker in. Please fix that!

&gt; WebCore/GNUmakefile.am:801
&gt; +=======
&gt; +&gt;&gt;&gt;&gt;&gt;&gt;&gt; fix

Here’s the other half.

&gt; WebCore/bindings/js/JSErrorHandler.cpp:86
&gt; +        Event* savedEvent = globalObject-&gt;currentEvent();
&gt; +        globalObject-&gt;setCurrentEvent(event);

Why is this implementing event dispatch? Why can’t this use the DOMWindow::dispatchEvent function?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>286958</commentid>
    <comment_count>65</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2010-09-29 10:27:22 -0700</bug_when>
    <thetext>(In reply to comment #64)
&gt; &gt; WebCore/bindings/js/JSErrorHandler.cpp:86
&gt; &gt; +        Event* savedEvent = globalObject-&gt;currentEvent();
&gt; &gt; +        globalObject-&gt;setCurrentEvent(event);
&gt; 
&gt; Why is this implementing event dispatch? Why can’t this use the DOMWindow::dispatchEvent function?

I see, you’re thinking that 6.1.6.5 in HTML5 means only the function should be called, and other event dispatching rules do not apply.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>288219</commentid>
    <comment_count>66</comment_count>
      <attachid>69462</attachid>
    <who name="Yury Semikhatsky">yurys</who>
    <bug_when>2010-10-01 06:35:41 -0700</bug_when>
    <thetext>Created attachment 69462
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>288221</commentid>
    <comment_count>67</comment_count>
    <who name="Yury Semikhatsky">yurys</who>
    <bug_when>2010-10-01 06:38:12 -0700</bug_when>
    <thetext>Rebased the patch, added some description to the changelogs.

(In reply to comment #64)
&gt; (From update of attachment 69208 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=69208&amp;action=review
&gt; 
&gt; &gt; WebCore/GNUmakefile.am:792
&gt; &gt; +&lt;&lt;&lt;&lt;&lt;&lt;&lt; HEAD
&gt; 
&gt; You left a merge marker in. Please fix that!
&gt; 
Fixed.


&gt; &gt; WebCore/GNUmakefile.am:801
&gt; &gt; +=======
&gt; &gt; +&gt;&gt;&gt;&gt;&gt;&gt;&gt; fix
&gt; 
&gt; Here’s the other half.
&gt; 
Fixed.


(In reply to comment #65)
&gt; (In reply to comment #64)
&gt; &gt; &gt; WebCore/bindings/js/JSErrorHandler.cpp:86
&gt; &gt; &gt; +        Event* savedEvent = globalObject-&gt;currentEvent();
&gt; &gt; &gt; +        globalObject-&gt;setCurrentEvent(event);
&gt; &gt; 
&gt; &gt; Why is this implementing event dispatch? Why can’t this use the DOMWindow::dispatchEvent function?
&gt; 
&gt; I see, you’re thinking that 6.1.6.5 in HTML5 means only the function should be called, and other event dispatching rules do not apply.

Exactly. Do you think I misinterpreted that?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>288224</commentid>
    <comment_count>68</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-10-01 06:39:45 -0700</bug_when>
    <thetext>Attachment 69462 did not pass style-queue:

Failed to run &quot;[&apos;WebKitTools/Scripts/check-webkit-style&apos;]&quot; exit_code: 1
Last 3072 characters of output:
parsing a chunk: &apos;&apos;
ERROR: Unexpected diff format when parsing a chunk: &apos;&apos;
ERROR: Unexpected diff format when parsing a chunk: &apos;&apos;
ERROR: Unexpected diff format when parsing a chunk: &apos;&apos;
ERROR: Unexpected diff format when parsing a chunk: &apos;&apos;
ERROR: Unexpected diff format when parsing a chunk: &apos;&apos;
ERROR: Unexpected diff format when parsing a chunk: &apos;&apos;
ERROR: Unexpected diff format when parsing a chunk: &apos;&apos;
ERROR: Unexpected diff format when parsing a chunk: &apos;&apos;
ERROR: Unexpected diff format when parsing a chunk: &apos;&apos;
ERROR: Unexpected diff format when parsing a chunk: &apos;&apos;
ERROR: Unexpected diff format when parsing a chunk: &apos;&apos;
ERROR: Unexpected diff format when parsing a chunk: &apos;&apos;
ERROR: Unexpected diff format when parsing a chunk: &apos;&apos;
ERROR: Unexpected diff format when parsing a chunk: &apos;&apos;
ERROR: Unexpected diff format when parsing a chunk: &apos;&apos;
ERROR: Unexpected diff format when parsing a chunk: &apos;&apos;
ERROR: Unexpected diff format when parsing a chunk: &apos;&apos;
ERROR: Unexpected diff format when parsing a chunk: &apos;&apos;
ERROR: Unexpected diff format when parsing a chunk: &apos;&apos;
ERROR: Unexpected diff format when parsing a chunk: &apos;&apos;
ERROR: Unexpected diff format when parsing a chunk: &apos;&apos;
ERROR: Unexpected diff format when parsing a chunk: &apos;&apos;
ERROR: Unexpected diff format when parsing a chunk: &apos;&apos;
ERROR: Unexpected diff format when parsing a chunk: &apos;&apos;
ERROR: Unexpected diff format when parsing a chunk: &apos;&apos;
ERROR: Unexpected diff format when parsing a chunk: &apos;&apos;
ERROR: Unexpected diff format when parsing a chunk: &apos;&apos;
ERROR: Unexpected diff format when parsing a chunk: &apos;&apos;
ERROR: Unexpected diff format when parsing a chunk: &apos;&apos;
ERROR: Unexpected diff format when parsing a chunk: &apos;&apos;
ERROR: Unexpected diff format when parsing a chunk: &apos;&apos;
ERROR: Unexpected diff format when parsing a chunk: &apos;&apos;
ERROR: Unexpected diff format when parsing a chunk: &apos;&apos;
ERROR: Unexpected diff format when parsing a chunk: &apos;&apos;
ERROR: Unexpected diff format when parsing a chunk: &apos;&apos;
ERROR: Unexpected diff format when parsing a chunk: &apos;&apos;
ERROR: Unexpected diff format when parsing a chunk: &apos;&apos;
ERROR: Unexpected diff format when parsing a chunk: &apos;&apos;
ERROR: Unexpected diff format when parsing a chunk: &apos;&apos;
ERROR: Unexpected diff format when parsing a chunk: &apos;&apos;
ERROR: Unexpected diff format when parsing a chunk: &apos;&apos;
ERROR: Unexpected diff format when parsing a chunk: &apos;&apos;
ERROR: Unexpected diff format when parsing a chunk: &apos;&apos;
ERROR: Unexpected diff format when parsing a chunk: &apos;&apos;
ERROR: Unexpected diff format when parsing a chunk: &apos;&apos;
ERROR: Unexpected diff format when parsing a chunk: &apos;&apos;
ERROR: Unexpected diff format when parsing a chunk: &apos;&apos;
ERROR: Unexpected diff format when parsing a chunk: &apos;&apos;
ERROR: Unexpected diff format when parsing a chunk: &apos;&apos;
ERROR: Unexpected diff format when parsing a chunk: &apos;&apos;
ERROR: Unexpected diff format when parsing a chunk: &apos;&apos;
ERROR: Unexpected diff format when parsing a chunk: &apos;&apos;
ERROR: Unexpected diff format when parsing a chunk: &apos;&apos;
WebCore/dom/ErrorEvent.h:41:  Code inside a namespace should not be indented.  [whitespace/indent] [4]
Total errors found: 1 in 79 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>288232</commentid>
    <comment_count>69</comment_count>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2010-10-01 07:02:29 -0700</bug_when>
    <thetext>Attachment 69462 did not build on qt:
Build output: http://queues.webkit.org/results/4243017</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>288243</commentid>
    <comment_count>70</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-10-01 07:40:30 -0700</bug_when>
    <thetext>Attachment 69462 did not build on gtk:
Build output: http://queues.webkit.org/results/4218040</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>288291</commentid>
    <comment_count>71</comment_count>
      <attachid>69474</attachid>
    <who name="Yury Semikhatsky">yurys</who>
    <bug_when>2010-10-01 09:26:06 -0700</bug_when>
    <thetext>Created attachment 69474
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>288295</commentid>
    <comment_count>72</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-10-01 09:30:49 -0700</bug_when>
    <thetext>Attachment 69474 did not pass style-queue:

Failed to run &quot;[&apos;WebKitTools/Scripts/check-webkit-style&apos;]&quot; exit_code: 1
Last 3072 characters of output:
parsing a chunk: &apos;&apos;
ERROR: Unexpected diff format when parsing a chunk: &apos;&apos;
ERROR: Unexpected diff format when parsing a chunk: &apos;&apos;
ERROR: Unexpected diff format when parsing a chunk: &apos;&apos;
ERROR: Unexpected diff format when parsing a chunk: &apos;&apos;
ERROR: Unexpected diff format when parsing a chunk: &apos;&apos;
ERROR: Unexpected diff format when parsing a chunk: &apos;&apos;
ERROR: Unexpected diff format when parsing a chunk: &apos;&apos;
ERROR: Unexpected diff format when parsing a chunk: &apos;&apos;
ERROR: Unexpected diff format when parsing a chunk: &apos;&apos;
ERROR: Unexpected diff format when parsing a chunk: &apos;&apos;
ERROR: Unexpected diff format when parsing a chunk: &apos;&apos;
ERROR: Unexpected diff format when parsing a chunk: &apos;&apos;
ERROR: Unexpected diff format when parsing a chunk: &apos;&apos;
ERROR: Unexpected diff format when parsing a chunk: &apos;&apos;
ERROR: Unexpected diff format when parsing a chunk: &apos;&apos;
ERROR: Unexpected diff format when parsing a chunk: &apos;&apos;
ERROR: Unexpected diff format when parsing a chunk: &apos;&apos;
ERROR: Unexpected diff format when parsing a chunk: &apos;&apos;
ERROR: Unexpected diff format when parsing a chunk: &apos;&apos;
ERROR: Unexpected diff format when parsing a chunk: &apos;&apos;
ERROR: Unexpected diff format when parsing a chunk: &apos;&apos;
ERROR: Unexpected diff format when parsing a chunk: &apos;&apos;
ERROR: Unexpected diff format when parsing a chunk: &apos;&apos;
ERROR: Unexpected diff format when parsing a chunk: &apos;&apos;
ERROR: Unexpected diff format when parsing a chunk: &apos;&apos;
ERROR: Unexpected diff format when parsing a chunk: &apos;&apos;
ERROR: Unexpected diff format when parsing a chunk: &apos;&apos;
ERROR: Unexpected diff format when parsing a chunk: &apos;&apos;
ERROR: Unexpected diff format when parsing a chunk: &apos;&apos;
ERROR: Unexpected diff format when parsing a chunk: &apos;&apos;
ERROR: Unexpected diff format when parsing a chunk: &apos;&apos;
ERROR: Unexpected diff format when parsing a chunk: &apos;&apos;
ERROR: Unexpected diff format when parsing a chunk: &apos;&apos;
ERROR: Unexpected diff format when parsing a chunk: &apos;&apos;
ERROR: Unexpected diff format when parsing a chunk: &apos;&apos;
ERROR: Unexpected diff format when parsing a chunk: &apos;&apos;
ERROR: Unexpected diff format when parsing a chunk: &apos;&apos;
ERROR: Unexpected diff format when parsing a chunk: &apos;&apos;
ERROR: Unexpected diff format when parsing a chunk: &apos;&apos;
ERROR: Unexpected diff format when parsing a chunk: &apos;&apos;
ERROR: Unexpected diff format when parsing a chunk: &apos;&apos;
ERROR: Unexpected diff format when parsing a chunk: &apos;&apos;
ERROR: Unexpected diff format when parsing a chunk: &apos;&apos;
ERROR: Unexpected diff format when parsing a chunk: &apos;&apos;
ERROR: Unexpected diff format when parsing a chunk: &apos;&apos;
ERROR: Unexpected diff format when parsing a chunk: &apos;&apos;
ERROR: Unexpected diff format when parsing a chunk: &apos;&apos;
ERROR: Unexpected diff format when parsing a chunk: &apos;&apos;
ERROR: Unexpected diff format when parsing a chunk: &apos;&apos;
ERROR: Unexpected diff format when parsing a chunk: &apos;&apos;
ERROR: Unexpected diff format when parsing a chunk: &apos;&apos;
ERROR: Unexpected diff format when parsing a chunk: &apos;&apos;
ERROR: Unexpected diff format when parsing a chunk: &apos;&apos;
WebCore/dom/ErrorEvent.h:41:  Code inside a namespace should not be indented.  [whitespace/indent] [4]
Total errors found: 1 in 79 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>288311</commentid>
    <comment_count>73</comment_count>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2010-10-01 10:02:33 -0700</bug_when>
    <thetext>Attachment 69474 did not build on qt:
Build output: http://queues.webkit.org/results/4173039</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>288365</commentid>
    <comment_count>74</comment_count>
      <attachid>69474</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2010-10-01 11:34:50 -0700</bug_when>
    <thetext>Comment on attachment 69474
Patch

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

This patch looks a bit sloppy.  Some of that might be just style errors.  The isolated world stuff is subtle, and it feels like you&apos;re re-inventing the wheel.  Part of the problem is that V8 doesn&apos;t really use DOMWrapperWorld, which is something I should fix.  I&apos;m not sure what the current state of that is.  I&apos;d like to see a lot more testing around isolated worlds and onerror, since that&apos;s the toughest part.  It looks like you have one test, but you really should test all the cases, including inline event handlers, setTimeout, eval, etc.

&gt; WebCore/bindings/js/JSErrorHandler.cpp:62
&gt; +    // It is unsecure to report exception from one world to a handler from another.

unsecure =&gt; insecure

&gt; WebCore/bindings/v8/DOMWrapperWorld.cpp:56
&gt; +DOMWrapperWorld* enteredContextWorld()

I don&apos;t understand this function.  Why is this different than V8IsolatedContext::getEntered()-&gt;world() ?

&gt; WebCore/bindings/v8/DOMWrapperWorld.cpp:59
&gt; +    v8::Handle&lt;v8::Context&gt; enteredCotnext = v8::Context::GetEntered();

enteredCotnext =&gt; enteredContext

&gt; WebCore/bindings/v8/DOMWrapperWorld.cpp:76
&gt; +{
&gt; +    ASSERT(scriptExecutionContext-&gt;isDocument());
&gt; +    if (V8Proxy* proxy = V8Proxy::retrieve(scriptExecutionContext)) {
&gt; +        v8::HandleScope handleScope;
&gt; +        v8::Local&lt;v8::Context&gt; context = contextHandle.adjustedContext(proxy);
&gt; +        v8::Context::Scope contextScope(context);
&gt; +        return enteredContextWorld();

I don&apos;t really understand this code.  Are you truing to get the DOMWrapperWorld for scriptExecutionContext + contextHandle ?  This seems like a very round-about (and not necessarily correct) way of doing it.

&gt; WebCore/bindings/v8/V8WindowErrorHandler.cpp:50
&gt; +    // It is unsecure to report exception from one world to a handler from another.

unsecure =&gt; insecure

&gt; WebCore/bindings/v8/WorkerContextExecutionProxy.cpp:77
&gt; -        context-&gt;reportException(errorMessage, lineNumber, sourceURL);
&gt; +        context-&gt;reportException(0, errorMessage, lineNumber, sourceURL, 0);

What do these zeros mean?

&gt; WebCore/dom/ScriptExecutionContext.cpp:273
&gt; +    if (m_pendingExceptions) {

Prefer early return.

&gt; WebCore/dom/ScriptExecutionContext.cpp:294
&gt; +    RefPtr&lt;ErrorEvent&gt; errorEvent(ErrorEvent::create(wrapperWorld, errorMessage, sourceURL, lineNumber));

We usually use the = form of the constructor.

&gt; WebCore/dom/ScriptExecutionContext.h:193
&gt; +        struct PendingException : public Noncopyable {

class?

&gt; WebCore/workers/WorkerContext.cpp:261
&gt; +}

Missing a blank line after this }</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>288854</commentid>
    <comment_count>75</comment_count>
      <attachid>69610</attachid>
    <who name="Yury Semikhatsky">yurys</who>
    <bug_when>2010-10-04 02:48:40 -0700</bug_when>
    <thetext>Created attachment 69610
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>288859</commentid>
    <comment_count>76</comment_count>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2010-10-04 03:24:37 -0700</bug_when>
    <thetext>Attachment 69610 did not build on qt:
Build output: http://queues.webkit.org/results/4185063</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>288876</commentid>
    <comment_count>77</comment_count>
    <who name="Yury Semikhatsky">yurys</who>
    <bug_when>2010-10-04 04:43:58 -0700</bug_when>
    <thetext>(In reply to comment #74)
&gt; (From update of attachment 69474 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=69474&amp;action=review
&gt; 
&gt; This patch looks a bit sloppy.  Some of that might be just style errors.  The isolated world stuff is subtle, and it feels like you&apos;re re-inventing the wheel.  Part of the problem is that V8 doesn&apos;t really use DOMWrapperWorld, which is something I should fix.  I&apos;m not sure what the current state of that is.  I&apos;d like to see a lot more testing around isolated worlds and onerror, since that&apos;s the toughest part.  It looks like you have one test, but you really should test all the cases, including inline event handlers, setTimeout, eval, etc.
&gt; 
The code seems to work incorrectly for &quot;error&quot; event listeners. The ErrorEvent will be propagated to all listeners no matter in which isolated world they were added. That is a real problem and the reason why in my very initial patch I used a custom code to dispatch ErrorEvent to the global onerror handler without notification to &quot;error&quot; event listeners. I think we may want to stick with that approach(it would match other browsers behavior which as I mentioned above don&apos;t provide any meaningful info to the &quot;error&quot; event listeners), alternatively we could implement custom dispatching for error event that will compare listener&apos;s world with event&apos;s one before calling the listener. Before writing additional tests for the cross-world error reporting we need to agree how this should work in WebKit. What do you think, Adam?


&gt; &gt; WebCore/bindings/js/JSErrorHandler.cpp:62
&gt; &gt; +    // It is unsecure to report exception from one world to a handler from another.
&gt; 
&gt; unsecure =&gt; insecure
&gt; 
Fixed.


&gt; &gt; WebCore/bindings/v8/DOMWrapperWorld.cpp:56
&gt; &gt; +DOMWrapperWorld* enteredContextWorld()
&gt; 
&gt; I don&apos;t understand this function.  Why is this different than V8IsolatedContext::getEntered()-&gt;world() ?
&gt; 
Because V8IsolatedContext::getEntered() assumes that last entered context is an isolated world&apos;s context. As far as I understand main world and isolated world contexts have different sets of internal fields and it would be wrong to treat entered context as isolated world one if it was from main world.


&gt; &gt; WebCore/bindings/v8/DOMWrapperWorld.cpp:59
&gt; &gt; +    v8::Handle&lt;v8::Context&gt; enteredCotnext = v8::Context::GetEntered();
&gt; 
&gt; enteredCotnext =&gt; enteredContext
&gt; 
Fixed.


&gt; &gt; WebCore/bindings/v8/DOMWrapperWorld.cpp:76
&gt; &gt; +{
&gt; &gt; +    ASSERT(scriptExecutionContext-&gt;isDocument());
&gt; &gt; +    if (V8Proxy* proxy = V8Proxy::retrieve(scriptExecutionContext)) {
&gt; &gt; +        v8::HandleScope handleScope;
&gt; &gt; +        v8::Local&lt;v8::Context&gt; context = contextHandle.adjustedContext(proxy);
&gt; &gt; +        v8::Context::Scope contextScope(context);
&gt; &gt; +        return enteredContextWorld();
&gt; 
&gt; I don&apos;t really understand this code.  Are you truing to get the DOMWrapperWorld for scriptExecutionContext + contextHandle ?  This seems like a very round-about (and not necessarily correct) way of doing it.
&gt; 
Yes, the function tries to get DOMWrapperWorld for a V8 context which in turn can be retrieved by the ScriptExecutionContext and WorldContextHandle. We need this if we want to have common reportException implementation for both engines.  I don&apos;t understand why we use ScriptExecutionContext+WorldContextHandle to get world context instead of relying on ScriptExecutionContext+DOMWrapperWorld. This is the main reason why I need this function at all.


&gt; &gt; WebCore/bindings/v8/V8WindowErrorHandler.cpp:50
&gt; &gt; +    // It is unsecure to report exception from one world to a handler from another.
&gt; 
&gt; unsecure =&gt; insecure
&gt; 
Fixed.


&gt; &gt; WebCore/bindings/v8/WorkerContextExecutionProxy.cpp:77
&gt; &gt; -        context-&gt;reportException(errorMessage, lineNumber, sourceURL);
&gt; &gt; +        context-&gt;reportException(0, errorMessage, lineNumber, sourceURL, 0);
&gt; 
&gt; What do these zeros mean?
&gt; 
The first parameter is a DOM wrapper world. There are no isolated worlds in the worker context though. Last parameter is ScriptCallStack. Stack traces are not supported for uncaught worker exceptions yet.


&gt; &gt; WebCore/dom/ScriptExecutionContext.cpp:273
&gt; &gt; +    if (m_pendingExceptions) {
&gt; 
&gt; Prefer early return.
&gt; 
Done.


&gt; &gt; WebCore/dom/ScriptExecutionContext.cpp:294
&gt; &gt; +    RefPtr&lt;ErrorEvent&gt; errorEvent(ErrorEvent::create(wrapperWorld, errorMessage, sourceURL, lineNumber));
&gt; 
&gt; We usually use the = form of the constructor.
&gt; 
Done. Should we state this in the style guide?


&gt; &gt; WebCore/dom/ScriptExecutionContext.h:193
&gt; &gt; +        struct PendingException : public Noncopyable {
&gt; 
&gt; class?
&gt; 
Ditto. I didn&apos;t find any recommendations on using struct vs. class in WebKit code and decided to use struct for objects that are plain data containers.


&gt; &gt; WebCore/workers/WorkerContext.cpp:261
&gt; &gt; +}
&gt; 
&gt; Missing a blank line after this }
Fixed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>289058</commentid>
    <comment_count>78</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2010-10-04 12:13:20 -0700</bug_when>
    <thetext>I&apos;m confused.  Generally, we fire all events in all worlds, similar to how DOM nodes exist in all worlds.  The important part is that each world get a world-specific JS wrapper for the underlying event object.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>289090</commentid>
    <comment_count>79</comment_count>
    <who name="Chris Griego">cgriego</who>
    <bug_when>2010-10-04 12:54:14 -0700</bug_when>
    <thetext>In browsers today, window.onerror is treated as a callback, not an event listener. It doesn&apos;t behave anything like, say, window.onload.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>289091</commentid>
    <comment_count>80</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2010-10-04 12:58:20 -0700</bug_when>
    <thetext>(In reply to comment #79)
&gt; In browsers today, window.onerror is treated as a callback, not an event listener. It doesn&apos;t behave anything like, say, window.onload.

I see.  That&apos;s not confusing at all.  :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>289512</commentid>
    <comment_count>81</comment_count>
    <who name="Yury Semikhatsky">yurys</who>
    <bug_when>2010-10-05 02:48:42 -0700</bug_when>
    <thetext>(In reply to comment #78)
&gt; I&apos;m confused.  Generally, we fire all events in all worlds, similar to how DOM nodes exist in all worlds.  The important part is that each world get a world-specific JS wrapper for the underlying event object.

ErrorEvent is different from other DOM events as it always contains information(which otherwise cannot be obtained from the other worlds) about JavaScript context where the exception happened and ideally global onerror handler should be a property on a particular global JS object, rather than a property on DOMWindow which is shared by different isolated worlds. Simply having world-specific JS wrapper for the onerror handler is not enough in the case of ErrorEvent as it doesn&apos;t prevent leaks of exception details between worlds: you may have exception in an isolated world and window.onerror set in the main one, the handler will still be world-specific but it will learn about exception in a different world, looks like a vulnerability. Do you suggest we should dispatch ErrorEvents to all registered listeners/handlers no matter which world they originate from just for consistency with other events?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>289513</commentid>
    <comment_count>82</comment_count>
    <who name="Yury Semikhatsky">yurys</who>
    <bug_when>2010-10-05 02:58:40 -0700</bug_when>
    <thetext>(In reply to comment #80)
&gt; (In reply to comment #79)
&gt; &gt; In browsers today, window.onerror is treated as a callback, not an event listener. It doesn&apos;t behave anything like, say, window.onload.
&gt; 
&gt; I see.  That&apos;s not confusing at all.  :)

The error handling is confusing, that&apos;s true. But nowadays it&apos;s at least described in HTML5 spec(even the fact that window.onerror accepts 3 separate arguments instead of a single ErrorEvent) and I think we should provide at least the same functionality that exists in other browsers. People are used to the error handling mechanism and I believe it&apos;s better to support it in WebKit than don&apos;t provide any comparable solution.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>290612</commentid>
    <comment_count>83</comment_count>
      <attachid>69610</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2010-10-06 15:18:32 -0700</bug_when>
    <thetext>Comment on attachment 69610
Patch

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

&gt; WebCore/bindings/v8/DOMWrapperWorld.cpp:72
&gt; +    if (V8Proxy* proxy = V8Proxy::retrieve(scriptExecutionContext)) {

Prefer early exit.

&gt; WebCore/bindings/v8/DOMWrapperWorld.cpp:76
&gt; +        return enteredContextWorld();

I&apos;m not sure this is right.  There should be a more direct way to get to the DOMWrapperWorld from the v8 context.  The v8 context should have an internal field that maps to a V8IsolatedWorld and that isolated world should now what its DOMWrapperWorld is.  This whole business of writing to static state so that we can later read from it doesn&apos;t feel very robust.

&gt; WebCore/dom/ScriptExecutionContext.cpp:287
&gt; +    if (!wrapperWorld &amp;&amp; !isWorkerContext())
&gt; +        return false;

Should this be an ASSERT?  How calls this with a null world in a non-worker context?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>296133</commentid>
    <comment_count>84</comment_count>
      <attachid>71157</attachid>
    <who name="Yury Semikhatsky">yurys</who>
    <bug_when>2010-10-19 05:47:48 -0700</bug_when>
    <thetext>Created attachment 71157
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>296134</commentid>
    <comment_count>85</comment_count>
    <who name="Yury Semikhatsky">yurys</who>
    <bug_when>2010-10-19 05:50:33 -0700</bug_when>
    <thetext>(In reply to comment #84)
&gt; Created an attachment (id=71157) [details]
&gt; Patch

Removed code matching isolated worlds. Now each ErrorEvent will be dispatch to all &quot;error&quot; event listeners no matter in which world they were added. Added a couple more tests for that. Please take a look.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>296141</commentid>
    <comment_count>86</comment_count>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2010-10-19 06:25:00 -0700</bug_when>
    <thetext>Attachment 71157 did not build on qt:
Build output: http://queues.webkit.org/results/4449103</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>296153</commentid>
    <comment_count>87</comment_count>
    <who name="Csaba Osztrogonác">ossy</who>
    <bug_when>2010-10-19 06:47:22 -0700</bug_when>
    <thetext>(In reply to comment #86)
&gt; Attachment 71157 [details] did not build on qt:
&gt; Build output: http://queues.webkit.org/results/4449103

You missed to add new files to WebCore.pro:
WebCore/bindings/js/JSErrorHandler.cpp
WebCore/bindings/js/JSErrorHandler.h

You missed to add new files to WebCore.pro v8 sections:
WebCore/bindings/v8/V8WindowErrorHandler.cpp
WebCore/bindings/v8/V8WindowErrorHandler.h</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>296167</commentid>
    <comment_count>88</comment_count>
      <attachid>71164</attachid>
    <who name="Yury Semikhatsky">yurys</who>
    <bug_when>2010-10-19 07:01:57 -0700</bug_when>
    <thetext>Created attachment 71164
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>296168</commentid>
    <comment_count>89</comment_count>
    <who name="Yury Semikhatsky">yurys</who>
    <bug_when>2010-10-19 07:03:03 -0700</bug_when>
    <thetext>(In reply to comment #88)
&gt; Created an attachment (id=71164) [details]
&gt; Patch

Added new files to WebCore.pro. Thanks  Csaba!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>296486</commentid>
    <comment_count>90</comment_count>
    <who name="Aaron Boodman">aa</who>
    <bug_when>2010-10-19 15:56:17 -0700</bug_when>
    <thetext>(In reply to comment #81)
&gt; (In reply to comment #78)
&gt; &gt; I&apos;m confused.  Generally, we fire all events in all worlds, similar to how DOM nodes exist in all worlds.  The important part is that each world get a world-specific JS wrapper for the underlying event object.
&gt; 
&gt; ErrorEvent is different from other DOM events as it always contains information(which otherwise cannot be obtained from the other worlds) about JavaScript context where the exception happened and ideally global onerror handler should be a property on a particular global JS object, rather than a property on DOMWindow which is shared by different isolated worlds. Simply having world-specific JS wrapper for the onerror handler is not enough in the case of ErrorEvent as it doesn&apos;t prevent leaks of exception details between worlds: you may have exception in an isolated world and window.onerror set in the main one, the handler will still be world-specific but it will learn about exception in a different world, looks like a vulnerability. Do you suggest we should dispatch ErrorEvents to all registered listeners/handlers no matter which world they originate from just for consistency with other events?

I agree with the sentiment here. window.onerror is different from other event handlers (or callbacks or whatever) in that it is really (should really be) a property of the global object, not of DOMWindow.

There should be separate instances of onerror for each world, and we should only fire onerror in the context the error occurred in. It doesn&apos;t make sense to me to spam someone else&apos;s script with errors happening in your script, and it could lead to unintentional bridging of worlds.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>306644</commentid>
    <comment_count>91</comment_count>
    <who name="Yuxiang Luo">luoyx</who>
    <bug_when>2010-11-09 00:34:22 -0800</bug_when>
    <thetext>I recommend adding a fourth parameter &apos;stack&apos;. For chrome/V8, besides error description, file url, and line number, an Error object also contains stack info. So, it will be great and more consistent if window.onerror also accepts stack info as an additional parameter, and this won&apos;t break existing code that uses window.onerror.

An actual requirement is from one of our chrome compatibility audit tools, which listens to onerror event, and analyze error information when any occurs. The analysis requires error stack info (and also column info besides line number).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>320169</commentid>
    <comment_count>92</comment_count>
      <attachid>76202</attachid>
    <who name="Yury Semikhatsky">yurys</who>
    <bug_when>2010-12-10 08:16:02 -0800</bug_when>
    <thetext>Created attachment 76202
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>320176</commentid>
    <comment_count>93</comment_count>
    <who name="Yury Semikhatsky">yurys</who>
    <bug_when>2010-12-10 08:31:32 -0800</bug_when>
    <thetext>I&apos;d love to have window.onerror per isolated world, it would make the things clearer, but there is also Error DOM event which should be dispatched to all DOM listeners. One option would be to leave it unimplemented and dispatch the error only to the onerror handlers. If we decided to support DOM listeners as well we would need to extend DOM Error message with some information about the isolated world where the error happened so that the listeners could filter out errors that happened in other contexts. To implement the latter approach we would have to expose the concept of isolated worlds to the page.


(In reply to comment #90)
&gt; (In reply to comment #81)
&gt; &gt; (In reply to comment #78)
&gt; &gt; &gt; I&apos;m confused.  Generally, we fire all events in all worlds, similar to how DOM nodes exist in all worlds.  The important part is that each world get a world-specific JS wrapper for the underlying event object.
&gt; &gt; 
&gt; &gt; ErrorEvent is different from other DOM events as it always contains information(which otherwise cannot be obtained from the other worlds) about JavaScript context where the exception happened and ideally global onerror handler should be a property on a particular global JS object, rather than a property on DOMWindow which is shared by different isolated worlds. Simply having world-specific JS wrapper for the onerror handler is not enough in the case of ErrorEvent as it doesn&apos;t prevent leaks of exception details between worlds: you may have exception in an isolated world and window.onerror set in the main one, the handler will still be world-specific but it will learn about exception in a different world, looks like a vulnerability. Do you suggest we should dispatch ErrorEvents to all registered listeners/handlers no matter which world they originate from just for consistency with other events?
&gt; 
&gt; I agree with the sentiment here. window.onerror is different from other event handlers (or callbacks or whatever) in that it is really (should really be) a property of the global object, not of DOMWindow.
&gt; 
&gt; There should be separate instances of onerror for each world, and we should only fire onerror in the context the error occurred in. It doesn&apos;t make sense to me to spam someone else&apos;s script with errors happening in your script, and it could lead to unintentional bridging of worlds.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>320177</commentid>
    <comment_count>94</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-12-10 08:32:07 -0800</bug_when>
    <thetext>Attachment 76202 did not build on chromium:
Build output: http://queues.webkit.org/results/6983038</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>320184</commentid>
    <comment_count>95</comment_count>
      <attachid>76207</attachid>
    <who name="Yury Semikhatsky">yurys</who>
    <bug_when>2010-12-10 08:40:08 -0800</bug_when>
    <thetext>Created attachment 76207
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>320192</commentid>
    <comment_count>96</comment_count>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2010-12-10 08:58:51 -0800</bug_when>
    <thetext>Attachment 76202 did not build on qt:
Build output: http://queues.webkit.org/results/6953042</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>320212</commentid>
    <comment_count>97</comment_count>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2010-12-10 10:01:06 -0800</bug_when>
    <thetext>Attachment 76207 did not build on qt:
Build output: http://queues.webkit.org/results/6923042</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>320220</commentid>
    <comment_count>98</comment_count>
    <who name="Csaba Osztrogonác">ossy</who>
    <bug_when>2010-12-10 10:15:56 -0800</bug_when>
    <thetext>(In reply to comment #97)
&gt; Attachment 76207 [details] did not build on qt:
&gt; Build output: http://queues.webkit.org/results/6923042

You missed adding JSErrorHandler.cpp to WebCore.pro.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>320248</commentid>
    <comment_count>99</comment_count>
      <attachid>76222</attachid>
    <who name="Yury Semikhatsky">yurys</who>
    <bug_when>2010-12-10 10:53:37 -0800</bug_when>
    <thetext>Created attachment 76222
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>320252</commentid>
    <comment_count>100</comment_count>
    <who name="Yury Semikhatsky">yurys</who>
    <bug_when>2010-12-10 10:56:34 -0800</bug_when>
    <thetext>The latest version fixes that.

(In reply to comment #98)
&gt; (In reply to comment #97)
&gt; &gt; Attachment 76207 [details] [details] did not build on qt:
&gt; &gt; Build output: http://queues.webkit.org/results/6923042
&gt; 
&gt; You missed adding JSErrorHandler.cpp to WebCore.pro.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>320367</commentid>
    <comment_count>101</comment_count>
      <attachid>76222</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2010-12-10 13:31:35 -0800</bug_when>
    <thetext>Comment on attachment 76222
Patch

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

This patch is very subtle, but I think it looks good.  Sorry this took a while to review.  A couple minor nits below that would be nice to polish up before landing.

&gt; LayoutTests/ChangeLog:1
&gt; +2010-10-19  alex@webkit.org  &lt;alex@webkit.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc&gt;

Woah, this email address is crazy.

&gt; WebCore/ChangeLog:28
&gt; +        Tests: fast/events/window-onerror1.html
&gt; +               fast/events/window-onerror10.html
&gt; +               fast/events/window-onerror11.html
&gt; +               fast/events/window-onerror2.html
&gt; +               fast/events/window-onerror3.html
&gt; +               fast/events/window-onerror4.html
&gt; +               fast/events/window-onerror5.html
&gt; +               fast/events/window-onerror6.html
&gt; +               fast/events/window-onerror7.html
&gt; +               fast/events/window-onerror8.html
&gt; +               fast/events/window-onerror9.html
&gt; +               http/tests/security/window-onerror-exception-in-iframe.html
&gt; +               userscripts/window-onerror-for-isolated-world-1.html
&gt; +               userscripts/window-onerror-for-isolated-world-2.html

This is an impressive set of tests.

&gt; WebCore/bindings/js/JSErrorHandler.cpp:79
&gt; +        ref();

Manual ref counting is sadness.  Please use RefPtr&lt;...&gt; protector(this).

&gt; WebCore/dom/ScriptExecutionContext.cpp:272
&gt; +            m_pendingExceptions = new Vector&lt;OwnPtr&lt;PendingException&gt; &gt;();
&gt; +        m_pendingExceptions-&gt;append(new PendingException(errorMessage, lineNumber, sourceURL, callStack));

These are naked calls to new.  Can we either use adoptPtr or adoptRef?

&gt; WebCore/dom/ScriptExecutionContext.cpp:283
&gt; +    for (size_t i = 0; i &lt; m_pendingExceptions-&gt;size(); i++) {

What happens if m_pendingExceptions changes during this loop?  Does m_inDispatchErrorEvent stop that?

&gt; WebKit/chromium/src/WebWorkerClientImpl.cpp:388
&gt;          thisPtr-&gt;m_scriptExecutionContext-&gt;reportException(errorMessage,
&gt;                                                             lineNumber,
&gt; -                                                           sourceURL);
&gt; +                                                           sourceURL,
&gt; +                                                           0);

You can just make this all one line.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>321009</commentid>
    <comment_count>102</comment_count>
    <who name="Yury Semikhatsky">yurys</who>
    <bug_when>2010-12-13 02:51:35 -0800</bug_when>
    <thetext>(In reply to comment #101)
&gt; (From update of attachment 76222 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=76222&amp;action=review
&gt; 
&gt; This patch is very subtle, but I think it looks good.  Sorry this took a while to review.  A couple minor nits below that would be nice to polish up before landing.
&gt; 
&gt; &gt; LayoutTests/ChangeLog:1
&gt; &gt; +2010-10-19  alex@webkit.org  &lt;alex@webkit.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc&gt;
&gt; 
&gt; Woah, this email address is crazy.
&gt; 
Fixed.

&gt; &gt; WebCore/ChangeLog:28
&gt; &gt; +        Tests: fast/events/window-onerror1.html
&gt; &gt; +               fast/events/window-onerror10.html
&gt; &gt; +               fast/events/window-onerror11.html
&gt; &gt; +               fast/events/window-onerror2.html
&gt; &gt; +               fast/events/window-onerror3.html
&gt; &gt; +               fast/events/window-onerror4.html
&gt; &gt; +               fast/events/window-onerror5.html
&gt; &gt; +               fast/events/window-onerror6.html
&gt; &gt; +               fast/events/window-onerror7.html
&gt; &gt; +               fast/events/window-onerror8.html
&gt; &gt; +               fast/events/window-onerror9.html
&gt; &gt; +               http/tests/security/window-onerror-exception-in-iframe.html
&gt; &gt; +               userscripts/window-onerror-for-isolated-world-1.html
&gt; &gt; +               userscripts/window-onerror-for-isolated-world-2.html
&gt; 
&gt; This is an impressive set of tests.
&gt; 
&gt; &gt; WebCore/bindings/js/JSErrorHandler.cpp:79
&gt; &gt; +        ref();
&gt; 
&gt; Manual ref counting is sadness.  Please use RefPtr&lt;...&gt; protector(this).
&gt; 
Fixed.

&gt; &gt; WebCore/dom/ScriptExecutionContext.cpp:272
&gt; &gt; +            m_pendingExceptions = new Vector&lt;OwnPtr&lt;PendingException&gt; &gt;();
&gt; &gt; +        m_pendingExceptions-&gt;append(new PendingException(errorMessage, lineNumber, sourceURL, callStack));
&gt; 
&gt; These are naked calls to new.  Can we either use adoptPtr or adoptRef?
&gt; 
Done. Added adoptPtr().

&gt; &gt; WebCore/dom/ScriptExecutionContext.cpp:283
&gt; &gt; +    for (size_t i = 0; i &lt; m_pendingExceptions-&gt;size(); i++) {
&gt; 
&gt; What happens if m_pendingExceptions changes during this loop?  Does m_inDispatchErrorEvent stop that?
&gt; 
m_pendingExceptions can change only during dispatchErrorEvent call if there are exceptions in the error listeners/handler.


&gt; &gt; WebKit/chromium/src/WebWorkerClientImpl.cpp:388
&gt; &gt;          thisPtr-&gt;m_scriptExecutionContext-&gt;reportException(errorMessage,
&gt; &gt;                                                             lineNumber,
&gt; &gt; -                                                           sourceURL);
&gt; &gt; +                                                           sourceURL,
&gt; &gt; +                                                           0);
&gt; 
&gt; You can just make this all one line.
Done.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>321099</commentid>
    <comment_count>103</comment_count>
    <who name="Yury Semikhatsky">yurys</who>
    <bug_when>2010-12-13 07:17:20 -0800</bug_when>
    <thetext>Committed r73914: &lt;http://trac.webkit.org/changeset/73914&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>321112</commentid>
    <comment_count>104</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-12-13 07:38:16 -0800</bug_when>
    <thetext>http://trac.webkit.org/changeset/73914 might have broken Qt Linux Release minimal, Qt Windows 32-bit Release, and Qt Windows 32-bit Debug</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>321123</commentid>
    <comment_count>105</comment_count>
      <attachid>76222</attachid>
    <who name="Csaba Osztrogonác">ossy</who>
    <bug_when>2010-12-13 07:55:40 -0800</bug_when>
    <thetext>Comment on attachment 76222
Patch

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

&gt; WebCore/dom/ScriptExecutionContext.cpp:88
&gt;  ScriptExecutionContext::ScriptExecutionContext()
&gt;  #if ENABLE(DATABASE)
&gt;      : m_hasOpenDatabases(false)
&gt;  #endif
&gt; +    , m_inDispatchErrorEvent(false)

This modification is incorrect if ENABLE(DATABASE) 
is false, and it  broke Qt minimal and Windows build.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>321130</commentid>
    <comment_count>106</comment_count>
    <who name="Yury Semikhatsky">yurys</who>
    <bug_when>2010-12-13 08:20:43 -0800</bug_when>
    <thetext>Fixed in http://trac.webkit.org/changeset/73920

(In reply to comment #105)
&gt; (From update of attachment 76222 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=76222&amp;action=review
&gt; 
&gt; &gt; WebCore/dom/ScriptExecutionContext.cpp:88
&gt; &gt;  ScriptExecutionContext::ScriptExecutionContext()
&gt; &gt;  #if ENABLE(DATABASE)
&gt; &gt;      : m_hasOpenDatabases(false)
&gt; &gt;  #endif
&gt; &gt; +    , m_inDispatchErrorEvent(false)
&gt; 
&gt; This modification is incorrect if ENABLE(DATABASE) 
&gt; is false, and it  broke Qt minimal and Windows build.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>321307</commentid>
    <comment_count>107</comment_count>
    <who name="Yury Semikhatsky">yurys</who>
    <bug_when>2010-12-13 11:58:36 -0800</bug_when>
    <thetext>Reopening since the change was rolled out in r73939 due to Chromium page cycler failures.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>324834</commentid>
    <comment_count>108</comment_count>
      <attachid>76222</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-12-20 22:56:35 -0800</bug_when>
    <thetext>Comment on attachment 76222
Patch

r- since this was rolled out.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>327020</commentid>
    <comment_count>109</comment_count>
      <attachid>77495</attachid>
    <who name="Yury Semikhatsky">yurys</who>
    <bug_when>2010-12-27 06:24:33 -0800</bug_when>
    <thetext>Created attachment 77495
Patch

This change differs from the previous one in how window.onerror behaves in case of &quot;error&quot; event dispatched manually by user. If the event has type &quot;error&quot; but is not an instance od ErrorEvent the handler will be treated as a regular handler and will be called with the event object as a single argument. This matches Firefox behavior. See fast/events/window-onerror12.html for more details.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>327023</commentid>
    <comment_count>110</comment_count>
      <attachid>77497</attachid>
    <who name="Yury Semikhatsky">yurys</who>
    <bug_when>2010-12-27 06:31:33 -0800</bug_when>
    <thetext>Created attachment 77497
Patch

Fixed ChangeLog entries.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>327028</commentid>
    <comment_count>111</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-12-27 06:42:03 -0800</bug_when>
    <thetext>Attachment 77495 did not build on chromium:
Build output: http://queues.webkit.org/results/7306207</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>327033</commentid>
    <comment_count>112</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-12-27 06:58:06 -0800</bug_when>
    <thetext>Attachment 77497 did not build on chromium:
Build output: http://queues.webkit.org/results/7227221</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>327036</commentid>
    <comment_count>113</comment_count>
      <attachid>77504</attachid>
    <who name="Yury Semikhatsky">yurys</who>
    <bug_when>2010-12-27 07:09:31 -0800</bug_when>
    <thetext>Created attachment 77504
Patch

Fixed Chromium compilation.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>336486</commentid>
    <comment_count>114</comment_count>
      <attachid>77504</attachid>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2011-01-19 06:42:08 -0800</bug_when>
    <thetext>Comment on attachment 77504
Patch

Rubber stamping the patch, new bubbling guard looks sane.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>337185</commentid>
    <comment_count>115</comment_count>
    <who name="Yury Semikhatsky">yurys</who>
    <bug_when>2011-01-20 01:29:51 -0800</bug_when>
    <thetext>Committed r76216</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>353836</commentid>
    <comment_count>116</comment_count>
    <who name="Darrell Esau">desau</who>
    <bug_when>2011-02-18 14:39:49 -0800</bug_when>
    <thetext>Huge THANK YOU to Yury!

Wow - what a battle.  After 5 years -- I&apos;ve just confirmed that this is working as expected in Chrome 10 beta.

I owe you a beer.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>356441</commentid>
    <comment_count>117</comment_count>
    <who name="Charles Kendrick">charles.kendrick</who>
    <bug_when>2011-02-23 14:51:05 -0800</bug_when>
    <thetext>This is good stuff guys, but unfortunately WebKit is still well behind Internet Explorer here - you can&apos;t get a stack trace in onerror.

If you try new Error().stack, the stack ends at onerror.

If you try &quot;stack walking&quot; approaches like arguments.callee.caller or arguments.caller, you likewise cannot get past onerror.

This makes onerror mostly useless because you can get better diagnostics by putting try/catch blocks around your top-level event handling code, where you will get a valid error.stack.  But this is cumbersome and doesn&apos;t catch every scenario.

So at the moment we need to continue to recommend that users launch Internet Explorer to get definitive error reporting, which is a shame.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>356446</commentid>
    <comment_count>118</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2011-02-23 14:53:59 -0800</bug_when>
    <thetext>(In reply to comment #117)
&gt; If you try new Error().stack, the stack ends at on error.

Would you be willing to file a bug about this with a test case?

&gt; If you try &quot;stack walking&quot; approaches like arguments.callee.caller or arguments.caller, you likewise cannot get past on error.

Would you be willing to file a bug about this with a test case?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>356478</commentid>
    <comment_count>119</comment_count>
    <who name="Charles Kendrick">charles.kendrick</who>
    <bug_when>2011-02-23 15:17:43 -0800</bug_when>
    <thetext>Yes, I created a new bug with test code:

   https://bugs.webkit.org/show_bug.cgi?id=55092

Just also wanted to make this problem visible to the CC list here since a lot of effort went into onerror but it&apos;s not very useful as it stands.

Note there&apos;s a Mozilla bug for this too, I added the test case there as well:

   https://bugzilla.mozilla.org/show_bug.cgi?id=355430</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>449958</commentid>
    <comment_count>120</comment_count>
    <who name="Timothy Quinn">tim.c.quinn</who>
    <bug_when>2011-08-11 12:57:38 -0700</bug_when>
    <thetext>(In reply to comment #119)
I appreciate your effort in trying to get this refined. I too agree that the current solution of missing the stack makes this barely useful for inline debugging within a standalone browser.

IE&apos;s solution of allowing the call stack crawling is an interesting solution but I would agree that its a bit sloppy. The main reason to do call stack crawling is to get the stack.

I would suggest a hybrid solution similar to what was proposes in Comment #91 From Yuxiang Luo above and add a fourth parameter. The preferred fourth parametr is to pass the actual error object and thus the user can retrieve the error.stack just like in Mozilla.

For WebKit folks, I am new to this community. What is the best way to get this going? Is a new issue the best path?

Thanks! 
- JSD</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>449976</commentid>
    <comment_count>121</comment_count>
    <who name="Charles Kendrick">charles.kendrick</who>
    <bug_when>2011-08-11 13:13:47 -0700</bug_when>
    <thetext>(In reply to comment #120)
&gt; IE&apos;s solution of allowing the call stack crawling is an interesting solution but I would agree that its a bit sloppy. The main reason to do call stack crawling is to get the stack.
&gt; 
&gt; I would suggest a hybrid solution similar to what was proposes in Comment #91 From Yuxiang Luo above and add a fourth parameter. The preferred fourth parametr is to pass the actual error object and thus the user can retrieve the error.stack just like in Mozilla.

Just a reminder that the browser providing a stack as a String is vastly, vastly worse than programmatic access to the stack (see my comment #44).

It is so valuable to have direct access to the stack that Isomorphic has actually started on a Firefox extension to provide it, even though we already have mechanisms in place to get the stack as a String for almost any crash.

There&apos;s no need to replicate all the details of IE&apos;s stack walking APIs.  It can be replaced with a cleaner API (which is what our Firefox extension does).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>450004</commentid>
    <comment_count>122</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2011-08-11 13:42:10 -0700</bug_when>
    <thetext>Adding stack trace to the error object is tracked as bug 55092. Let&apos;s discuss that idea there.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>7877</attachid>
            <date>2006-04-21 11:31:55 -0700</date>
            <delta_ts>2006-04-21 11:31:55 -0700</delta_ts>
            <desc>Test case based on ggaren&apos;s test for 8511</desc>
            <filename>windowonerror.html</filename>
            <type>text/html</type>
            <size>824</size>
            <attacher name="Jon">jon</attacher>
            
              <data encoding="base64">PGh0bWw+CjxoZWFkPgo8c2NyaXB0PgpmdW5jdGlvbiBwcmludChtZXNzYWdlLCBjb2xvcikgCnsK
ICAgIHZhciBwYXJhZ3JhcGggPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTsKICAgIHBh
cmFncmFwaC5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZShtZXNzYWdlKSk7CiAg
ICBwYXJhZ3JhcGguc3R5bGUuZm9udEZhbWlseSA9ICJtb25vc3BhY2UiOwogICAgaWYgKGNvbG9y
KQogICAgICAgIHBhcmFncmFwaC5zdHlsZS5jb2xvciA9IGNvbG9yOwogICAgZG9jdW1lbnQuZ2V0
RWxlbWVudEJ5SWQoImNvbnNvbGUiKS5hcHBlbmRDaGlsZChwYXJhZ3JhcGgpOwp9CgpmdW5jdGlv
biB0ZXN0KCkgCnsKICAgIC8vIG11c3QgYmUgbGFzdCBiZWNhdXNlIHRoZSBleGNlcHRpb24gZW5k
cyBKYXZhU2NyaXB0IGV4ZWN1dGlvbgogICAgd2luZG93Lm9uZXJyb3IgPSBmdW5jdGlvbiAoZXJy
b3IpIHsKICAgICAgICBwcmludCgiUEFTUzogY2F1Z2h0IGdsb2JhbCBlcnJvcjogIiArIGVycm9y
LCAiZ3JlZW4iKTsKICAgICAgICByZXR1cm4gdHJ1ZTsKICAgIH07CiAgICBoYWhhaGFfZ29vZF9s
dWNrX2ZpbmRpbmdfbWUoKTsgLy8gY2F1Z2h0IGJ5IHdpbmRvdy5vbmVycm9yCn0KPC9zY3JpcHQ+
CjwvaGVhZD4KPGJvZHkgb25sb2FkPSJ0ZXN0KCk7Ij4KPHA+VGhpcyBwYWdlIHRlc3RzIHNldHRp
bmcgb25lcnJvciBoYW5kbGVycyB0aHJvdWdoIHRoZSBET00uIElmIGl0IHBhc3NlcywgeW91IHdp
bGwKICAgc2VlICJQQVNTIiBtZXNzYWdlcyBiZWxvdy48L3A+Cjxocj4KPGRpdiBpZD0nY29uc29s
ZSc+PC9kaXY+CjwvYm9keT4KPC9odG1sPgo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>20597</attachid>
            <date>2008-04-16 11:53:20 -0700</date>
            <delta_ts>2008-04-16 11:53:20 -0700</delta_ts>
            <desc>6 other test cases which throw JS errors that should be caught with window.onerror</desc>
            <filename>window onerror tests.zip</filename>
            <type>application/zip</type>
            <size>5090</size>
            <attacher name="Darrell Esau">desau</attacher>
            
              <data encoding="base64">UEsDBAoAAAAAACRekDgAAAAAAAAAAAAAAAAVABAAd2luZG93IG9uZXJyb3IgdGVzdHMvVVgMAAZK
BkgjSgZI9QH1AVBLAwQUAAgACAAPXZA4AAAAAAAAAAAAAAAAJgAQAHdpbmRvdyBvbmVycm9yIHRl
c3RzL29uZXJyb3J0ZXN0MS5odG1sVVgMACdKBkgeSAZI9QH1AV1Ru27DMAzc/RWElzhwYKNrLXtr
pwLtWqCLI8mxEpU09KhhFPn36uF2KAcROorHO4rN7lMPBZvlKEKy3KjFDcXkkTtFCE5a91Adofgu
IMSqUNDaEEpjyEAPfw+rhJxgUlqeQCuUR8g9MUYtjavKp9TFR3+ZHVjPubR28lpvj1BCDZm0hvID
nwNNBiNhxl4CacYSfSK/dyl5vCGt+Hq+Su6a/fZmaAljt7ruinvB2l9zrN3dnklsQKhpFH25O+3K
UFiGd/JgZ/JagJUSRswWQE3/d6AsrGRuCi+wpIF6gyngbg6VSNqwdokbNuEQ6guU6A+c0JKWh4G1
AYqSopYkLf7HD1BLBwjNWfmrAgEAAJYBAABQSwMECgAAAAAAJl6QOAAAAAAAAAAAAAAAAAkAEABf
X01BQ09TWC9VWAwAJ0oGSCdKBkj1AfUBUEsDBAoAAAAAACZekDgAAAAAAAAAAAAAAAAeABAAX19N
QUNPU1gvd2luZG93IG9uZXJyb3IgdGVzdHMvVVgMACdKBkgnSgZI9QH1AVBLAwQUAAgACAAPXZA4
AAAAAAAAAAAAAAAAMQAQAF9fTUFDT1NYL3dpbmRvdyBvbmVycm9yIHRlc3RzLy5fb25lcnJvcnRl
c3QxLmh0bWxVWAwAJ0oGSB5IBkj1AfUBY2AVY2dgYmDwTUxW8A9WiFCAApAYAycQGwFxOxCD+DsZ
iAKOISFBDJkib6E6ZgCxIpoSRoS4aHJ+rl5uYnJRfm5iSWqxXnJiUWoJQzUXyBXJ+TmluXkKtgpm
1mB+TmZeKpBnbs1VCwBQSwcI9Ko0P2gAAAC5AAAAUEsDBBQACAAIABRdkDgAAAAAAAAAAAAAAAAm
ABAAd2luZG93IG9uZXJyb3IgdGVzdHMvb25lcnJvcnRlc3QyLmh0bWxVWAwAJ0oGSCdIBkj1AfUB
XZHLasMwEEX3+orBm9gk2HTbyF4UUij0BwrduNLYFlU0Ro8aU/Lv1SPtorOQxB3N4V6JL/6qB8YX
HGXcnLBq9QObghFekQGPzj/UDbBvBrE2ZSRtLRm0liz08HexzsoJJqXxBFoZbKDMpBo1Wl9Xlzwl
xjAvHlwQAp2bgtb7I1RwhAI9QvVuniOmiAlYtNcILVrGZ/jtnDdJIlzR+HZGf9GYjk/7i6ybM7sx
3v3G4t095wfJHchoGmVf3TOeq9hYhzcK4BYKWoJDhNEU86Cm/+mVg43spzIzrJZWtHqHKep+iZ0E
bXm3pre1cZHqC5TsD4KMI42HgXdRSpaSl2wt/cQPUEsHCMw22AkCAQAAkAEAAFBLAwQUAAgACAAU
XZA4AAAAAAAAAAAAAAAAMQAQAF9fTUFDT1NYL3dpbmRvdyBvbmVycm9yIHRlc3RzLy5fb25lcnJv
cnRlc3QyLmh0bWxVWAwAJ0oGSCdIBkj1AfUBY2AVY2dgYmDwTUxW8A9WiFCAApAYAycQGwFxOxCD
+DsZiAKOISFBDJliM6A6QLQimhJGhLhocn6uXm5iclF+bmJJarFecmJRaglDNRfIFcn5OaW5eQq2
CmbWYH5OZl4qkGduzVULAFBLBwgnBLl6ZwAAALkAAABQSwMEFAAIAAgAGV2QOAAAAAAAAAAAAAAA
ACYAEAB3aW5kb3cgb25lcnJvciB0ZXN0cy9vbmVycm9ydGVzdDMuaHRtbFVYDAAnSgZIMUgGSPUB
9QFdkLtuwzAMRXd9BaElNhLESMfG9tZO/YECXVSJjoWooqFHDKPIv1ePtEM5iMCleHAv+zl8mZH1
MwqVmpdOL2FkU7QyaLIQ0IdT0wL7ZpBq1VbReiSLzpGDAf4+NkU5wKQNHsBoiy3UnVzCoAsNfylb
UsTLHMBHKdH7KRqzPQOHPVToHviHfU2YKmZg1d4StGoFX+D3c2l4E6bhp+GJt2d2Z333G6TvHsk+
SW1A1pBQA3+kOvM0WMZ3iuBnikaBRwRhq13Q0/+82sNK7qrtBRZHCzqzwZT0MKdJhh77bsnXdOlR
+gZaDTtJ1pPB3dh3ScqWspdiLd/+B1BLBwg4gC8w+AAAAIIBAABQSwMEFAAIAAgAGV2QOAAAAAAA
AAAAAAAAADEAEABfX01BQ09TWC93aW5kb3cgb25lcnJvciB0ZXN0cy8uX29uZXJyb3J0ZXN0My5o
dG1sVVgMACdKBkgxSAZI9QH1AWNgFWNnYGJg8E1MVvAPVohQgAKQGAMnEBsBcTsQg/g7GYgCjiEh
QQyZYoehOmYAsSKaEkaEuGhyfq5ebmJyUX5uYklqsV5yYlFqCUM1F8gVyfk5pbl5CrYKZtZgfk5m
XiqQZ27NVQsAUEsHCOggetZoAAAAuQAAAFBLAwQUAAgACAABXZA4AAAAAAAAAAAAAAAAJgAQAHdp
bmRvdyBvbmVycm9yIHRlc3RzL29uZXJyb3J0ZXN0NC5odG1sVVgMACdKBkgBSAZI9QH1AV2Qu27D
MAxFd30FoSU2EsToWj+2duoPFOiiSnQsVBENPWIYRf69eqQdykEELsWDezks4WomNiwoVGpeOr2G
ic3RyqDJQkAfnpoW2DeDVJu2irYzWXSOHIzw97EpyglmbfAERltsoe7kEgZdaPhL2ZIiXpYAPkqJ
3s/RmP0ZOByhQo/AP+xrwlQxA6v2lqBVK/gCv/el4U2YhouGtz27s6H7zTF0j2CfpHYga0iokT9C
9TwN1umdIviFolHgEUHY6hb0/D+u9rCR+9L2AqujFZ3ZYU56WNIkQ89Dt+ZjuvQofQOtxoMk68ng
YRq6JGVL2Uuxlk//A1BLBwgrZ45g9gAAAIEBAABQSwMEFAAIAAgAAV2QOAAAAAAAAAAAAAAAADEA
EABfX01BQ09TWC93aW5kb3cgb25lcnJvciB0ZXN0cy8uX29uZXJyb3J0ZXN0NC5odG1sVVgMACdK
BkgBSAZI9QH1AWNgFWNnYGJg8E1MVvAPVohQgAKQGAMnEBsBcQcQg/i7GIgCjiEhQQyZ4mJQHTOA
WAlNCSNCXDQ5P1cvNzG5KD83sSS1WC85sSi1hKGaC+SK5Pyc0tw8BVsFU0NrsEBOZl4qiGvNVQsA
UEsHCD8fXN5oAAAAugAAAFBLAwQUAAgACABPXZA4AAAAAAAAAAAAAAAAJgAQAHdpbmRvdyBvbmVy
cm9yIHRlc3RzL29uZXJyb3J0ZXN0NS5odG1sVVgMACdKBkiWSAZI9QH1AV2Ry27DIBBF93zFyJvY
ShQr25p41676A5W6oTCOUSlj8YhjVfn38ki76CxA3GGO7gU+hy8zMj6jUGnz0ukljGyKVgZNFgL6
cGo7YN8MUq3aKlqPZNE5cnCGv4ttUQ4waYMHMNpiB3UmlzDoQts8lykp4mUO4KOU6P0UjdmeoIE9
VOgemnf7kjBVzMCqvSZo1Qq+wO9D2a7CwS3ZOdXjre0Gdme8/83D+0fAD1IbkDUk1Ll5hBua1FjG
N4rgZ4pGgUcEYatr0NP/2NrDSu5T2wssjhZ0ZoMp6WFOnQw98n7Jj+rSovQVtDrvJFlPBncj75OU
LWUvxVr+gh9QSwcIKIqwV/oAAACJAQAAUEsDBBQACAAIAE9dkDgAAAAAAAAAAAAAAAAxABAAX19N
QUNPU1gvd2luZG93IG9uZXJyb3IgdGVzdHMvLl9vbmVycm9ydGVzdDUuaHRtbFVYDAAnSgZIlkgG
SPUB9QFjYBVjZ2BiYPBNTFbwD1aIUIACkBgDJxAbAXEHEIP4uxiIAo4hIUEMmdIMUB0zgFgJTQkj
Qlw0OT9XLzcxuSg/N7EktVgvObEotYShmgvkiuT8nNLcPAVbBUNja7BATmZeKpBrYc1VCwBQSwcI
cO1bGmkAAAC6AAAAUEsDBBQACAAIAJxdkDgAAAAAAAAAAAAAAAAmABAAd2luZG93IG9uZXJyb3Ig
dGVzdHMvb25lcnJvcnRlc3Q2Lmh0bWxVWAwAJ0oGSCdJBkj1AfUBXVHLasQwDLznK0QuSdglodfG
m0NhC4X+QKGX1FYSs14r+NE0lP33+rHtoTpYYmyNNGO2uKsaCrbgKEKy3MjVDcXkNXeSNDi07qFu
oPguIMQmtaCtJY3GkIET/D2sE3KESSo8gpIaG8g9MUaFxtXlOXXx0c+LA+s5R2snr9T+CCUcIJMe
oHzXz4Emg5EwY6+BNGOJPpHf+pQEcX9F7doZ3VlhLJ/2F1FXmtwi9Vw17Vfd9MWtYN2vRtbdRX+Q
2IG0olGcyrvgvgwX6/BGHuxCXgmwiDDqrATk9N8KaWEjcwmzYDW0olE7TAEP421ysWXdGo024RDy
E6Q4VZy0JYXVwLoAxZXiLmm1+C0/UEsHCFfD6+wLAQAAnQEAAFBLAwQUAAgACACcXZA4AAAAAAAA
AAAAAAAAMQAQAF9fTUFDT1NYL3dpbmRvdyBvbmVycm9yIHRlc3RzLy5fb25lcnJvcnRlc3Q2Lmh0
bWxVWAwAJ0oGSCdJBkj1AfUBY2AVY2dgYmDwTUxW8A9WiFCAApAYAycQGwFxBxCD+LsYiAKOISFB
DJnSblAdM4BYCU0JI0JcNDk/Vy83MbkoPzexJLVYLzmxKLWEoZoL5Irk/JzS3DwFWwUTY2uwQE5m
XiqQa2HNVQsAUEsHCPV5Wl5pAAAAugAAAFBLAQIVAwoAAAAAACRekDgAAAAAAAAAAAAAAAAVAAwA
AAAAAAAAAEDtQQAAAAB3aW5kb3cgb25lcnJvciB0ZXN0cy9VWAgABkoGSCNKBkhQSwECFQMUAAgA
CAAPXZA4zVn5qwIBAACWAQAAJgAMAAAAAAAAAABApIFDAAAAd2luZG93IG9uZXJyb3IgdGVzdHMv
b25lcnJvcnRlc3QxLmh0bWxVWAgAJ0oGSB5IBkhQSwECFQMKAAAAAAAmXpA4AAAAAAAAAAAAAAAA
CQAMAAAAAAAAAABA/UGpAQAAX19NQUNPU1gvVVgIACdKBkgnSgZIUEsBAhUDCgAAAAAAJl6QOAAA
AAAAAAAAAAAAAB4ADAAAAAAAAAAAQP1B4AEAAF9fTUFDT1NYL3dpbmRvdyBvbmVycm9yIHRlc3Rz
L1VYCAAnSgZIJ0oGSFBLAQIVAxQACAAIAA9dkDj0qjQ/aAAAALkAAAAxAAwAAAAAAAAAAECkgSwC
AABfX01BQ09TWC93aW5kb3cgb25lcnJvciB0ZXN0cy8uX29uZXJyb3J0ZXN0MS5odG1sVVgIACdK
BkgeSAZIUEsBAhUDFAAIAAgAFF2QOMw22AkCAQAAkAEAACYADAAAAAAAAAAAQKSBAwMAAHdpbmRv
dyBvbmVycm9yIHRlc3RzL29uZXJyb3J0ZXN0Mi5odG1sVVgIACdKBkgnSAZIUEsBAhUDFAAIAAgA
FF2QOCcEuXpnAAAAuQAAADEADAAAAAAAAAAAQKSBaQQAAF9fTUFDT1NYL3dpbmRvdyBvbmVycm9y
IHRlc3RzLy5fb25lcnJvcnRlc3QyLmh0bWxVWAgAJ0oGSCdIBkhQSwECFQMUAAgACAAZXZA4OIAv
MPgAAACCAQAAJgAMAAAAAAAAAABApIE/BQAAd2luZG93IG9uZXJyb3IgdGVzdHMvb25lcnJvcnRl
c3QzLmh0bWxVWAgAJ0oGSDFIBkhQSwECFQMUAAgACAAZXZA46CB61mgAAAC5AAAAMQAMAAAAAAAA
AABApIGbBgAAX19NQUNPU1gvd2luZG93IG9uZXJyb3IgdGVzdHMvLl9vbmVycm9ydGVzdDMuaHRt
bFVYCAAnSgZIMUgGSFBLAQIVAxQACAAIAAFdkDgrZ45g9gAAAIEBAAAmAAwAAAAAAAAAAECkgXIH
AAB3aW5kb3cgb25lcnJvciB0ZXN0cy9vbmVycm9ydGVzdDQuaHRtbFVYCAAnSgZIAUgGSFBLAQIV
AxQACAAIAAFdkDg/H1zeaAAAALoAAAAxAAwAAAAAAAAAAECkgcwIAABfX01BQ09TWC93aW5kb3cg
b25lcnJvciB0ZXN0cy8uX29uZXJyb3J0ZXN0NC5odG1sVVgIACdKBkgBSAZIUEsBAhUDFAAIAAgA
T12QOCiKsFf6AAAAiQEAACYADAAAAAAAAAAAQKSBowkAAHdpbmRvdyBvbmVycm9yIHRlc3RzL29u
ZXJyb3J0ZXN0NS5odG1sVVgIACdKBkiWSAZIUEsBAhUDFAAIAAgAT12QOHDtWxppAAAAugAAADEA
DAAAAAAAAAAAQKSBAQsAAF9fTUFDT1NYL3dpbmRvdyBvbmVycm9yIHRlc3RzLy5fb25lcnJvcnRl
c3Q1Lmh0bWxVWAgAJ0oGSJZIBkhQSwECFQMUAAgACACcXZA4V8Pr7AsBAACdAQAAJgAMAAAAAAAA
AABApIHZCwAAd2luZG93IG9uZXJyb3IgdGVzdHMvb25lcnJvcnRlc3Q2Lmh0bWxVWAgAJ0oGSCdJ
BkhQSwECFQMUAAgACACcXZA49XlaXmkAAAC6AAAAMQAMAAAAAAAAAABApIFIDQAAX19NQUNPU1gv
d2luZG93IG9uZXJyb3IgdGVzdHMvLl9vbmVycm9ydGVzdDYuaHRtbFVYCAAnSgZIJ0kGSFBLBQYA
AAAADwAPAKwFAAAgDgAAAAA=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>65092</attachid>
            <date>2010-08-23 02:57:57 -0700</date>
            <delta_ts>2010-08-23 05:07:24 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-8519-20100823135753.patch</filename>
            <type>text/plain</type>
            <size>66748</size>
            <attacher name="Yury Semikhatsky">yurys</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCA4ZjllNzNhZDc4ZWY2MzdiMDMxMTdiZTU1ZGZiOWNjZTA1YjZiOTQyLi5jYmQwYzA5
Y2ZlMjkxYzliY2M3ZWJlZjg5Y2VhYzFmZWM0ZjU3Y2VjIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDMgQEAK
KzIwMTAtMDgtMjMgIFl1cnkgU2VtaWtoYXRza3kgIDx5dXJ5c0BjaHJvbWl1bS5vcmc+CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgV2ViQ29yZSBkb2Vz
bid0IGZpcmUgd2luZG93Lm9uZXJyb3IgZXZlbnQgd2hlbiB1bmNhdWdodCBKYXZhU2NyaXB0IGV4
Y2VwdGlvbnMgYXJlIHRocm93bgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9ODUxOQorCisgICAgICAgIFVuY2F1Z2h0IGV4Y2VwdGlvbnMgYXJlIHByb3Bh
Z2F0ZWQgdG8gd2luZG93Lm9uZXJyb3IgaGFuZGVyIGlmIG9uZSBpcyBwcmVzZW50LgorICAgICAg
ICBUaGUgaGFuZGxlciBpcyBleHBlY3RlZCB0byBiZSBhIGZ1bmN0aW9uIGFjY2VwdGluZyB0aHJl
ZSBhcmd1bWVudHM6IGVycm9yIG1lc3NhZ2UsCisgICAgICAgIHJlc291cmNlIHVybCBhbmQgbGlu
ZSBudW1iZXIgd2hlcmUgdGhlIGV4Y2VwdGlvbiBvY2N1cmVkLgorCisgICAgICAgICogZmFzdC9l
dmVudHMvd2luZG93LW9uZXJyb3IxLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFz
dC9ldmVudHMvd2luZG93LW9uZXJyb3IxLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZXZl
bnRzL3dpbmRvdy1vbmVycm9yMi1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3Qv
ZXZlbnRzL3dpbmRvdy1vbmVycm9yMi5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2V2ZW50
cy93aW5kb3ctb25lcnJvcjMtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2V2
ZW50cy93aW5kb3ctb25lcnJvcjMuaHRtbDogQWRkZWQuCisgICAgICAgICogZmFzdC9ldmVudHMv
d2luZG93LW9uZXJyb3I0LWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC9ldmVu
dHMvd2luZG93LW9uZXJyb3I0Lmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZXZlbnRzL3dp
bmRvdy1vbmVycm9yNS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZXZlbnRz
L3dpbmRvdy1vbmVycm9yNS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2V2ZW50cy93aW5k
b3ctb25lcnJvcjYtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2V2ZW50cy93
aW5kb3ctb25lcnJvcjYuaHRtbDogQWRkZWQuCisgICAgICAgICogZmFzdC9ldmVudHMvd2luZG93
LW9uZXJyb3I3LWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC9ldmVudHMvd2lu
ZG93LW9uZXJyb3I3Lmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZXZlbnRzL3dpbmRvdy1v
bmVycm9yOC1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZXZlbnRzL3dpbmRv
dy1vbmVycm9yOC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3NlY3VyaXR5L3Jl
c291cmNlcy9vbmVycm9yLWlmcmFtZS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3Rz
L3NlY3VyaXR5L3dpbmRvdy1vbmVycm9yLWV4Y2VwdGlvbi1pbi1pZnJhbWUtZXhwZWN0ZWQudHh0
OiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3NlY3VyaXR5L3dpbmRvdy1vbmVycm9yLWV4
Y2VwdGlvbi1pbi1pZnJhbWUuaHRtbDogQWRkZWQuCisgICAgICAgICogcGxhdGZvcm0vY2hyb21p
dW0vZmFzdC9ldmVudHMvd2luZG93LW9uZXJyb3IxLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAg
ICAgICogcGxhdGZvcm0vY2hyb21pdW0vZmFzdC9ldmVudHMvd2luZG93LW9uZXJyb3IyLWV4cGVj
dGVkLnR4dDogQWRkZWQuCisgICAgICAgICogcGxhdGZvcm0vY2hyb21pdW0vZmFzdC9ldmVudHMv
d2luZG93LW9uZXJyb3IzLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogcGxhdGZvcm0v
Y2hyb21pdW0vZmFzdC9ldmVudHMvd2luZG93LW9uZXJyb3I0LWV4cGVjdGVkLnR4dDogQWRkZWQu
CisgICAgICAgICogcGxhdGZvcm0vY2hyb21pdW0vZmFzdC9ldmVudHMvd2luZG93LW9uZXJyb3I1
LWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogcGxhdGZvcm0vY2hyb21pdW0vZmFzdC9l
dmVudHMvd2luZG93LW9uZXJyb3I2LWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogcGxh
dGZvcm0vY2hyb21pdW0vZmFzdC9ldmVudHMvd2luZG93LW9uZXJyb3I3LWV4cGVjdGVkLnR4dDog
QWRkZWQuCisgICAgICAgICogcGxhdGZvcm0vY2hyb21pdW0vZmFzdC9ldmVudHMvd2luZG93LW9u
ZXJyb3I4LWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogcGxhdGZvcm0vY2hyb21pdW0v
aHR0cC90ZXN0cy9zZWN1cml0eS93aW5kb3ctb25lcnJvci1leGNlcHRpb24taW4taWZyYW1lLWV4
cGVjdGVkLnR4dDogQWRkZWQuCisKIDIwMTAtMDgtMjIgIEtlbnQgVGFtdXJhICA8dGtlbnRAY2hy
b21pdW0ub3JnPgogCiAgICAgICAgIFVucmV2aWV3ZWQsIHRlc3QgZXhwZWN0YXRpb24gdXBkYXRl
LgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvd2luZG93LW9uZXJyb3IxLWV4
cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3dpbmRvdy1vbmVycm9yMS1leHBl
Y3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uOWQwOGM1MGJkOWY3N2U5ZTRkODNhNjcxOTk0MzU3MjliMmFi
ZTA2YQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3dpbmRvdy1v
bmVycm9yMS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw0IEBACitDT05TT0xFIE1FU1NBR0U6IGxp
bmUgMjU6IFJlZmVyZW5jZUVycm9yOiBDYW4ndCBmaW5kIHZhcmlhYmxlOiBoYWhhaGFfZ29vZF9s
dWNrX2ZpbmRpbmdfbWUKK1RoaXMgcGFnZSB0ZXN0cyBzZXR0aW5nIG9uZXJyb3IgaGFuZGxlcnMg
dGhyb3VnaCB0aGUgRE9NLiBJZiBpdCBwYXNzZXMsIHlvdSB3aWxsIHNlZSAiUEFTUyIgbWVzc2Fn
ZXMgYmVsb3cuQnVnIDg1MTkuCisKK1BBU1M6IGNhdWdodCBnbG9iYWwgZXJyb3I6IFJlZmVyZW5j
ZUVycm9yOiBDYW4ndCBmaW5kIHZhcmlhYmxlOiBoYWhhaGFfZ29vZF9sdWNrX2ZpbmRpbmdfbWUg
YXQgd2luZG93LW9uZXJyb3IxLmh0bWw6MjUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3Qv
ZXZlbnRzL3dpbmRvdy1vbmVycm9yMS5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvd2lu
ZG93LW9uZXJyb3IxLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMGJkYWE5YmIyYmMwOGE0Nzk0YzFhMzE2N2Q4
NTZiNzE0YTIzMzUxZQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRz
L3dpbmRvdy1vbmVycm9yMS5odG1sCkBAIC0wLDAgKzEsMzUgQEAKKzxodG1sPgorPGhlYWQ+Cis8
c2NyaXB0PgoraWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKKyAgICBsYXlvdXRUZXN0
Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7CisKK2Z1bmN0aW9uIHByaW50KG1lc3NhZ2UsIGNvbG9y
KQoreworICAgIHZhciBwYXJhZ3JhcGggPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTsK
KyAgICBwYXJhZ3JhcGguYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUobWVzc2Fn
ZSkpOworICAgIHBhcmFncmFwaC5zdHlsZS5mb250RmFtaWx5ID0gIm1vbm9zcGFjZSI7CisgICAg
aWYgKGNvbG9yKQorICAgICAgICBwYXJhZ3JhcGguc3R5bGUuY29sb3IgPSBjb2xvcjsKKyAgICBk
b2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY29uc29sZSIpLmFwcGVuZENoaWxkKHBhcmFncmFwaCk7
Cit9CisKK2Z1bmN0aW9uIHRlc3QoKQoreworICAgIC8vIG11c3QgYmUgbGFzdCBiZWNhdXNlIHRo
ZSBleGNlcHRpb24gZW5kcyBKYXZhU2NyaXB0IGV4ZWN1dGlvbgorICAgIHdpbmRvdy5vbmVycm9y
ID0gZnVuY3Rpb24gKGVycm9yLCB1cmwsIGxpbmUpIHsKKyAgICAgICAgdXJsID0gdXJsID8gdXJs
Lm1hdGNoKCAvW15cL10rXC8/JC8gKVswXSA6IHVybDsKKyAgICAgICAgcHJpbnQoIlBBU1M6IGNh
dWdodCBnbG9iYWwgZXJyb3I6ICIgKyBlcnJvciArICIgYXQgIiArIHVybCArICI6IiArIGxpbmUs
ICJncmVlbiIpOworICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9OworICAgIGhhaGFoYV9nb29k
X2x1Y2tfZmluZGluZ19tZSgpOyAvLyBjYXVnaHQgYnkgd2luZG93Lm9uZXJyb3IKK30KKzwvc2Ny
aXB0PgorPC9oZWFkPgorPGJvZHkgb25sb2FkPSJ0ZXN0KCk7Ij4KKzxwPlRoaXMgcGFnZSB0ZXN0
cyBzZXR0aW5nIG9uZXJyb3IgaGFuZGxlcnMgdGhyb3VnaCB0aGUgRE9NLiBJZiBpdCBwYXNzZXMs
IHlvdSB3aWxsCisgICBzZWUgIlBBU1MiIG1lc3NhZ2VzIGJlbG93LjxhIGhyZWY9Imh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04NTE5Ij5CdWcgODUxOTwvYT4uPC9wPgor
PGhyPgorPGRpdiBpZD0nY29uc29sZSc+PC9kaXY+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy93aW5kb3ctb25lcnJvcjItZXhwZWN0ZWQudHh0
IGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvd2luZG93LW9uZXJyb3IyLWV4cGVjdGVkLnR4dApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi42YmQ0MGQ5MmUxMzU0ZmM1NDE0YTExMzJmMTc2ZTU5OTI4MDkyYWE0Ci0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvd2luZG93LW9uZXJyb3IyLWV4
cGVjdGVkLnR4dApAQCAtMCwwICsxLDkgQEAKK0NPTlNPTEUgTUVTU0FHRTogbGluZSAwOiBJbmxp
bmUgc2NyaXB0IGV4Y2VwdGlvbgorQ09OU09MRSBNRVNTQUdFOiBsaW5lIDA6IEV4Y2VwdGlvbiBp
biBvbmxvYWQKK0NPTlNPTEUgTUVTU0FHRTogbGluZSAwOiBFeGNlcHRpb24gaW4gc2V0VGltZW91
dAorVGVzdCB0aGF0IHVuY2F1Z2h0IGV4Y2VwdGlvbnMgd2lsbCBiZSByZXBvcnRlZCB0byB0aGUg
d2luZG93Lm9uZXJyb3IgaGFuZGxlci4gQnVnIDg1MTkuCisKK01haW4gZnJhbWUgd2luZG93Lm9u
ZXJyb3I6IElubGluZSBzY3JpcHQgZXhjZXB0aW9uIGF0IHVuZGVmaW5lZDowCitNYWluIGZyYW1l
IHdpbmRvdy5vbmVycm9yOiBFeGNlcHRpb24gaW4gb25sb2FkIGF0IHVuZGVmaW5lZDowCitNYWlu
IGZyYW1lIHdpbmRvdy5vbmVycm9yOiBFeGNlcHRpb24gaW4gc2V0VGltZW91dCBhdCB1bmRlZmlu
ZWQ6MAorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy93aW5kb3ctb25lcnJv
cjIuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3dpbmRvdy1vbmVycm9yMi5odG1sCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLjliYmM1MDk2OGFjNjM2MTk5MmQ1YTdkNjNjZmE2OTJmYzliOTMzYTIKLS0tIC9k
ZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy93aW5kb3ctb25lcnJvcjIuaHRt
bApAQCAtMCwwICsxLDQwIEBACis8aHRtbD4KKzxib2R5IG9ubG9hZD0idGhyb3cgJ0V4Y2VwdGlv
biBpbiBvbmxvYWQnOyI+Cis8cD5UZXN0IHRoYXQgdW5jYXVnaHQgZXhjZXB0aW9ucyB3aWxsIGJl
IHJlcG9ydGVkIHRvIHRoZSB3aW5kb3cub25lcnJvciBoYW5kbGVyLiA8YSBocmVmPSJodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODUxOSI+QnVnIDg1MTk8L2E+LjwvcD4K
KzxkaXYgaWQ9InJlc3VsdCI+PC9kaXY+Cis8c2NyaXB0PgoraWYgKHdpbmRvdy5sYXlvdXRUZXN0
Q29udHJvbGxlcikgeworICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKKyAg
ICBsYXlvdXRUZXN0Q29udHJvbGxlci53YWl0VW50aWxEb25lKCk7Cit9CisKK2Z1bmN0aW9uIGxv
Zyhtc2cpIHsKKyAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicmVzdWx0IikuaW5uZXJIVE1M
ICs9IG1zZyArICI8YnI+IjsKK30KKword2luZG93Lm9uZXJyb3IgPSBmdW5jdGlvbihtc2csIHVy
bCwgbGluZSkKK3sKKyAgICB1cmwgPSB1cmwgPyB1cmwubWF0Y2goIC9bXlwvXStcLz8kLyApWzBd
IDogdXJsOworICAgIGxvZygiTWFpbiBmcmFtZSB3aW5kb3cub25lcnJvcjogIiArIG1zZyArICIg
YXQgIiArIHVybCArICI6IiArIGxpbmUpOworfQorCitmdW5jdGlvbiBkZWxheWVkVGhyb3dFeGNl
cHRpb24oKQoreworICAgIHRocm93ICJFeGNlcHRpb24gaW4gc2V0VGltZW91dCI7Cit9CitzZXRU
aW1lb3V0KGRlbGF5ZWRUaHJvd0V4Y2VwdGlvbiwgMCk7CisKK3NldFRpbWVvdXQoZnVuY3Rpb24o
KSB7CisgICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKKyAgICAgICAgbGF5b3V0
VGVzdENvbnRyb2xsZXIubm90aWZ5RG9uZSgpOworfSwgMCk7CisKK2Z1bmN0aW9uIHRocm93RXhj
ZXB0aW9uKCkKK3sKKyAgICB0aHJvdyAiSW5saW5lIHNjcmlwdCBleGNlcHRpb24iOworfQordGhy
b3dFeGNlcHRpb24oKTsKKworPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy93aW5kb3ctb25lcnJvcjMtZXhwZWN0ZWQudHh0IGIv
TGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvd2luZG93LW9uZXJyb3IzLWV4cGVjdGVkLnR4dApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi44YzBjNTNlZDA2YjZmYmU5MzQxY2U1ZjY4OGZiYjE2YTgwNDNlOTYyCi0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvd2luZG93LW9uZXJyb3IzLWV4cGVj
dGVkLnR4dApAQCAtMCwwICsxLDUgQEAKK0NPTlNPTEUgTUVTU0FHRTogbGluZSAxNTogUmVmZXJl
bmNlRXJyb3I6IENhbid0IGZpbmQgdmFyaWFibGU6IHVua25vd25PYmplY3QKK1lvdSBzaG91bGQg
c2VlIGEgbWVzc2FnZSBpZiB3aW5kb3cub25lcnJvciBpcyB3b3JraW5nIHByb3Blcmx5IGZvciB0
aGlzIHRlc3QuQnVnIDg1MTkuCisKK0Vycm9yIGNhdWdodCBzdWNjZXNzZnVsbHk6IFJlZmVyZW5j
ZUVycm9yOiBDYW4ndCBmaW5kIHZhcmlhYmxlOiB1bmtub3duT2JqZWN0IEZpbGU6IHdpbmRvdy1v
bmVycm9yMy5odG1sIExpbmU6IDE1CisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZXZl
bnRzL3dpbmRvdy1vbmVycm9yMy5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvd2luZG93
LW9uZXJyb3IzLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMDY5YWFlYTQ4Mzc1ZmMzN2U0ZDUyYTY2OTRlNGY2
ZDZkNGNmZTgwMwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3dp
bmRvdy1vbmVycm9yMy5odG1sCkBAIC0wLDAgKzEsMjIgQEAKKzxzY3JpcHQ+CitpZiAod2luZG93
LmxheW91dFRlc3RDb250cm9sbGVyKQorICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1Rl
eHQoKTsKKworZnVuY3Rpb24gbG9nKG1zZykgeworICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlk
KCJjb25zb2xlIikuaW5uZXJIVE1MICs9IG1zZyArICI8YnI+IjsKK30KKworZnVuY3Rpb24gdGVz
dDEoKQoreworICAgIHdpbmRvdy5vbmVycm9yID0gZnVuY3Rpb24gKGVycm9yLCB1cmwsIGxpbmUp
IHsKKyAgICAgICAgdXJsID0gdXJsID8gdXJsLm1hdGNoKCAvW15cL10rXC8/JC8gKVswXSA6IHVy
bDsKKyAgICAgICAgbG9nKCJFcnJvciBjYXVnaHQgc3VjY2Vzc2Z1bGx5OiAiICsgZXJyb3IgKyAi
XG5GaWxlOiAiICsgdXJsICsgIlxuTGluZTogIiArIGxpbmUpCisgICAgfTsKKyAgICB1bmtub3du
T2JqZWN0LnVua25vd25Qcm9wZXJ0eSsrOworfQorPC9zY3JpcHQ+Cis8Ym9keSBvbmxvYWQ9InRl
c3QxKCk7Ij4KKzxwPllvdSBzaG91bGQgc2VlIGEgbWVzc2FnZSBpZiB3aW5kb3cub25lcnJvciBp
cyB3b3JraW5nIHByb3Blcmx5IGZvciB0aGlzIHRlc3QuPGEgaHJlZj0iaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTg1MTkiPkJ1ZyA4NTE5PC9hPi48L3A+Cis8aHI+Cis8
ZGl2IGlkPSdjb25zb2xlJz48L2Rpdj4KKzwvYm9keT4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2Zhc3QvZXZlbnRzL3dpbmRvdy1vbmVycm9yNC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9m
YXN0L2V2ZW50cy93aW5kb3ctb25lcnJvcjQtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmUzNmJi
MWUzYmFlZTM2ZDMwMTIxOTA1NDdiMWZiMDE1MTc3OGJjZDQKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy9mYXN0L2V2ZW50cy93aW5kb3ctb25lcnJvcjQtZXhwZWN0ZWQudHh0CkBAIC0w
LDAgKzEsNSBAQAorQ09OU09MRSBNRVNTQUdFOiBsaW5lIDE6IFJlZmVyZW5jZUVycm9yOiBMZWZ0
IHNpZGUgb2YgYXNzaWdubWVudCBpcyBub3QgYSByZWZlcmVuY2UuCitZb3Ugc2hvdWxkIHNlZSBh
IGxvZyByZWNvcmQgaWYgd2luZG93Lm9uZXJyb3IgaXMgd29ya2luZyBwcm9wZXJseSBmb3IgdGhp
cyB0ZXN0LkJ1ZyA4NTE5LgorCitFcnJvciBjYXVnaHQgc3VjY2Vzc2Z1bGx5OiBSZWZlcmVuY2VF
cnJvcjogTGVmdCBzaWRlIG9mIGFzc2lnbm1lbnQgaXMgbm90IGEgcmVmZXJlbmNlLiBGaWxlOiB1
bmRlZmluZWQgTGluZTogMQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy93
aW5kb3ctb25lcnJvcjQuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3dpbmRvdy1vbmVy
cm9yNC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLjM4Nzg1MjdlY2Y5ZGVkYTJhMjI3MjMwZjAzNzliOWM1NmM5
ZWYyNTgKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy93aW5kb3ct
b25lcnJvcjQuaHRtbApAQCAtMCwwICsxLDIyIEBACis8c2NyaXB0PgoraWYgKHdpbmRvdy5sYXlv
dXRUZXN0Q29udHJvbGxlcikKKyAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7
CisKK2Z1bmN0aW9uIGxvZyhtc2cpIHsKKyAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY29u
c29sZSIpLmlubmVySFRNTCArPSBtc2cgKyAiPGJyPiI7Cit9CisKK2Z1bmN0aW9uIHRlc3QxKCkK
K3sKKyAgICB3aW5kb3cub25lcnJvciA9IGZ1bmN0aW9uIChlcnJvciwgdXJsLCBsaW5lKSB7Cisg
ICAgICAgIHVybCA9IHVybCA/IHVybC5tYXRjaCggL1teXC9dK1wvPyQvIClbMF0gOiB1cmw7Cisg
ICAgICAgIGxvZygiRXJyb3IgY2F1Z2h0IHN1Y2Nlc3NmdWxseTogIiArIGVycm9yICsgIlxuRmls
ZTogIiArIHVybCArICJcbkxpbmU6ICIgKyBsaW5lKQorICAgIH07CisgICAgZXZhbCgiMT0yIik7
Cit9Cis8L3NjcmlwdD4KKzxib2R5IG9ubG9hZD0idGVzdDEoKTsiPgorPHA+WW91IHNob3VsZCBz
ZWUgYSBsb2cgcmVjb3JkIGlmIHdpbmRvdy5vbmVycm9yIGlzIHdvcmtpbmcgcHJvcGVybHkgZm9y
IHRoaXMgdGVzdC48YSBocmVmPSJodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9ODUxOSI+QnVnIDg1MTk8L2E+LjwvcD4KKzxocj4KKzxkaXYgaWQ9J2NvbnNvbGUnPjwvZGl2
PgorPC9ib2R5PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvd2luZG93LW9u
ZXJyb3I1LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3dpbmRvdy1vbmVy
cm9yNS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uM2U4ZGM2NGFjZGM1MzM4OTA2YTUxMmIwMGZh
ZTJhN2U4MTc5YzE0ZQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRz
L3dpbmRvdy1vbmVycm9yNS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw1IEBACitDT05TT0xFIE1F
U1NBR0U6IGxpbmUgMTogU3ludGF4RXJyb3I6IFBhcnNlIGVycm9yCitUZXN0IHRoYXQgd2luZG93
Lm9uZXJyb3IgaXMgaW52b2tlZCBmb3Igc3ludGF4IGVycm9yIGluIGV2YWwuIFlvdSBzaG91bGQg
c2VlIGEgbG9nIHJlY29yZCBpZiB3aW5kb3cub25lcnJvciBpcyB3b3JraW5nIHByb3Blcmx5IGZv
ciB0aGlzIHRlc3QuQnVnIDg1MTkuCisKK0Vycm9yIGNhdWdodCBzdWNjZXNzZnVsbHk6IFN5bnRh
eEVycm9yOiBQYXJzZSBlcnJvciBGaWxlOiB1bmRlZmluZWQgTGluZTogMQorCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy93aW5kb3ctb25lcnJvcjUuaHRtbCBiL0xheW91dFRl
c3RzL2Zhc3QvZXZlbnRzL3dpbmRvdy1vbmVycm9yNS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmQ0YWQxZDZh
MWRhY2ExM2I5ZWRjNDE3ODMwZTZmZDcyMDNjMjJhYTUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy9mYXN0L2V2ZW50cy93aW5kb3ctb25lcnJvcjUuaHRtbApAQCAtMCwwICsxLDIyIEBA
Cis8c2NyaXB0PgoraWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKKyAgICBsYXlvdXRU
ZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7CisKK2Z1bmN0aW9uIGxvZyhtc2cpIHsKKyAgICBk
b2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY29uc29sZSIpLmlubmVySFRNTCArPSBtc2cgKyAiPGJy
PiI7Cit9CisKK2Z1bmN0aW9uIHRlc3QxKCkKK3sKKyAgICB3aW5kb3cub25lcnJvciA9IGZ1bmN0
aW9uIChlcnJvciwgdXJsLCBsaW5lKSB7CisgICAgICAgIHVybCA9IHVybCA/IHVybC5tYXRjaCgg
L1teXC9dK1wvPyQvIClbMF0gOiB1cmw7CisgICAgICAgIGxvZygiRXJyb3IgY2F1Z2h0IHN1Y2Nl
c3NmdWxseTogIiArIGVycm9yICsgIlxuRmlsZTogIiArIHVybCArICJcbkxpbmU6ICIgKyBsaW5l
KQorICAgIH07CisgICAgZXZhbCgiYSgiKTsKK30KKzwvc2NyaXB0PgorPGJvZHkgb25sb2FkPSJ0
ZXN0MSgpOyI+Cis8cD5UZXN0IHRoYXQgd2luZG93Lm9uZXJyb3IgaXMgaW52b2tlZCBmb3Igc3lu
dGF4IGVycm9yIGluIGV2YWwuIFlvdSBzaG91bGQgc2VlIGEgbG9nIHJlY29yZCBpZiB3aW5kb3cu
b25lcnJvciBpcyB3b3JraW5nIHByb3Blcmx5IGZvciB0aGlzIHRlc3QuPGEgaHJlZj0iaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTg1MTkiPkJ1ZyA4NTE5PC9hPi48L3A+
Cis8aHI+Cis8ZGl2IGlkPSdjb25zb2xlJz48L2Rpdj4KKzwvYm9keT4KZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2Zhc3QvZXZlbnRzL3dpbmRvdy1vbmVycm9yNi1leHBlY3RlZC50eHQgYi9MYXlv
dXRUZXN0cy9mYXN0L2V2ZW50cy93aW5kb3ctb25lcnJvcjYtZXhwZWN0ZWQudHh0Cm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLmYzYTVhMDAxNGM5OTIwMjhlODViYmVlYjU5MWJjMGI4NGJlZjllNGUKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy93aW5kb3ctb25lcnJvcjYtZXhwZWN0ZWQu
dHh0CkBAIC0wLDAgKzEsNSBAQAorQ09OU09MRSBNRVNTQUdFOiBsaW5lIDIxOiBTeW50YXhFcnJv
cjogUGFyc2UgZXJyb3IKK1Rlc3QgdGhhdCBzeW50YXggZXJyb3Igd2lsbCBiZSByZXBvcnRlZCB0
byB0aGUgd2luZG93Lm9uZXJyb3IgaGFuZGxlci4gQnVnIDg1MTkuCisKK01haW4gZnJhbWUgd2lu
ZG93Lm9uZXJyb3I6IFN5bnRheEVycm9yOiBQYXJzZSBlcnJvciBhdCB3aW5kb3ctb25lcnJvcjYu
aHRtbDoyMQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy93aW5kb3ctb25l
cnJvcjYuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3dpbmRvdy1vbmVycm9yNi5odG1s
Cm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLjdkMDlmN2E4NWU5OWZlMzMyZWQyNmM1ZGI2MTMxODZlMGFjMjQxMWUKLS0t
IC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy93aW5kb3ctb25lcnJvcjYu
aHRtbApAQCAtMCwwICsxLDI1IEBACis8aHRtbD4KKzxib2R5PgorPHA+VGVzdCB0aGF0IHN5bnRh
eCBlcnJvciB3aWxsIGJlIHJlcG9ydGVkIHRvIHRoZSB3aW5kb3cub25lcnJvciBoYW5kbGVyLiA8
YSBocmVmPSJodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODUxOSI+QnVn
IDg1MTk8L2E+LjwvcD4KKzxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgorPHNjcmlwdD4KK2lmICh3
aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCisgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVt
cEFzVGV4dCgpOworCitmdW5jdGlvbiBsb2cobXNnKSB7CisgICAgZG9jdW1lbnQuZ2V0RWxlbWVu
dEJ5SWQoImNvbnNvbGUiKS5pbm5lckhUTUwgKz0gbXNnICsgIjxicj4iOworfQorCit3aW5kb3cu
b25lcnJvciA9IGZ1bmN0aW9uKG1zZywgdXJsLCBsaW5lKQoreworICAgIHVybCA9IHVybCA/IHVy
bC5tYXRjaCggL1teXC9dK1wvPyQvIClbMF0gOiB1cmw7CisgICAgbG9nKCJNYWluIGZyYW1lIHdp
bmRvdy5vbmVycm9yOiAiICsgbXNnICsgIiBhdCAiICsgdXJsICsgIjoiICsgbGluZSk7Cit9Cis8
L3NjcmlwdD4KKzxzY3JpcHQ+CisKK2EpIC8vIHN5bnRheCBlcnJvcgorCis8L3NjcmlwdD4KKzwv
Ym9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3dpbmRv
dy1vbmVycm9yNy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy93aW5kb3ct
b25lcnJvcjctZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjZjZTVkMjY2OThmYjQyMDU1NjBkNjNh
YzY0MDdmOTk3ZjEyMTg3OGYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2V2
ZW50cy93aW5kb3ctb25lcnJvcjctZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNiBAQAorQ09OU09M
RSBNRVNTQUdFOiBsaW5lIDA6IE5lc3RlZCBlcnJvcgorQ09OU09MRSBNRVNTQUdFOiBsaW5lIDA6
IDIwMTAKK1Rlc3QgdGhhdCBleGNlcHRpb24gaW4gd2luZG93Lm9uZXJyb3Igd29uJ3QgbGVhZCB0
byByZWN1cnNpdmUgd2luZG93Lm9uZXJyb3IgY2FsbC4gQnVnIDg1MTkuCisKK01haW4gZnJhbWUg
d2luZG93Lm9uZXJyb3I6IDIwMTAgYXQgdW5kZWZpbmVkOjAKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvZmFzdC9ldmVudHMvd2luZG93LW9uZXJyb3I3Lmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0
L2V2ZW50cy93aW5kb3ctb25lcnJvcjcuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zMDA0YjMzZTE1MjJlNWIx
N2YyMjEyNTM5MTg1OGI5ZTRmMjMwYzI0Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMv
ZmFzdC9ldmVudHMvd2luZG93LW9uZXJyb3I3Lmh0bWwKQEAgLTAsMCArMSwyNCBAQAorPGh0bWw+
Cis8Ym9keT4KKzxwPlRlc3QgdGhhdCBleGNlcHRpb24gaW4gd2luZG93Lm9uZXJyb3Igd29uJ3Qg
bGVhZCB0byByZWN1cnNpdmUgd2luZG93Lm9uZXJyb3IgY2FsbC4gPGEgaHJlZj0iaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTg1MTkiPkJ1ZyA4NTE5PC9hPi48L3A+Cis8
ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KKzxzY3JpcHQ+CitpZiAod2luZG93LmxheW91dFRlc3RD
b250cm9sbGVyKQorICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKKworZnVu
Y3Rpb24gbG9nKG1zZykgeworICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjb25zb2xlIiku
aW5uZXJIVE1MICs9IG1zZyArICI8YnI+IjsKK30KKword2luZG93Lm9uZXJyb3IgPSBmdW5jdGlv
bihtc2csIHVybCwgbGluZSkKK3sKKyAgICB1cmwgPSB1cmwgPyB1cmwubWF0Y2goIC9bXlwvXStc
Lz8kLyApWzBdIDogdXJsOworICAgIGxvZygiTWFpbiBmcmFtZSB3aW5kb3cub25lcnJvcjogIiAr
IG1zZyArICIgYXQgIiArIHVybCArICI6IiArIGxpbmUpOworICAgIHRocm93ICJOZXN0ZWQgZXJy
b3IiOworfQorCit0aHJvdyAyMDEwOworCis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3dpbmRvdy1vbmVycm9yOC1leHBlY3Rl
ZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy93aW5kb3ctb25lcnJvcjgtZXhwZWN0ZWQu
dHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLmIxNmY2MjFmZWZlZDdiMTYyZjgxMzA4YjRmNDhiZjBjMTcwZWViOWUK
LS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy93aW5kb3ctb25lcnJv
cjgtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNiBAQAorQ09OU09MRSBNRVNTQUdFOiBsaW5lIDA6
IDIwMTAKK1Rlc3QgdGhhdCB3aW5kb3cub25lcnJvciBpcyBjYWxsZWQgb24gd2luZG93IG9iamVj
dC4gQnVnIDg1MTkuCisKK01haW4gZnJhbWUgd2luZG93Lm9uZXJyb3I6IDIwMTAgYXQgdW5kZWZp
bmVkOjAKK1BBU1NFRDogdGhpcyA9PT0gd2luZG93CisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2Zhc3QvZXZlbnRzL3dpbmRvdy1vbmVycm9yOC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVu
dHMvd2luZG93LW9uZXJyb3I4Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNjE2OGM0ZmE2OTA2NDQ1MmIyMzg1
YmIyNzVjNWY5MGUxMzZhZDhiMgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3Qv
ZXZlbnRzL3dpbmRvdy1vbmVycm9yOC5odG1sCkBAIC0wLDAgKzEsMjcgQEAKKzxodG1sPgorPGJv
ZHk+Cis8cD5UZXN0IHRoYXQgd2luZG93Lm9uZXJyb3IgaXMgY2FsbGVkIG9uIHdpbmRvdyBvYmpl
Y3QuIDxhIGhyZWY9Imh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04NTE5
Ij5CdWcgODUxOTwvYT4uPC9wPgorPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+Cis8c2NyaXB0Pgor
aWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKKyAgICBsYXlvdXRUZXN0Q29udHJvbGxl
ci5kdW1wQXNUZXh0KCk7CisKK2Z1bmN0aW9uIGxvZyhtc2cpIHsKKyAgICBkb2N1bWVudC5nZXRF
bGVtZW50QnlJZCgiY29uc29sZSIpLmlubmVySFRNTCArPSBtc2cgKyAiPGJyPiI7Cit9CisKK3dp
bmRvdy5vbmVycm9yID0gZnVuY3Rpb24obXNnLCB1cmwsIGxpbmUpCit7CisgICAgdXJsID0gdXJs
ID8gdXJsLm1hdGNoKCAvW15cL10rXC8/JC8gKVswXSA6IHVybDsKKyAgICBsb2coIk1haW4gZnJh
bWUgd2luZG93Lm9uZXJyb3I6ICIgKyBtc2cgKyAiIGF0ICIgKyB1cmwgKyAiOiIgKyBsaW5lKTsK
KyAgICBpZiAodGhpcyA9PT0gd2luZG93KSAKKyAgICAgICAgbG9nKCJQQVNTRUQ6IHRoaXMgPT09
IHdpbmRvdyIpOworICAgIGVsc2UKKyAgICAgICAgbG9nKCJGQUlMRUQ6IHRoaXMgPT09IHdpbmRv
dyIpOworfQorCit0aHJvdyAyMDEwOworCis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvcmVzb3VyY2VzL29uZXJy
b3ItaWZyYW1lLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L3Jlc291cmNl
cy9vbmVycm9yLWlmcmFtZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjMxMmZkMTJkM2FkODEwMmE1ZmUxYjUx
NzAzZWMzY2IwMDFhNzRmYzgKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL3NlY3VyaXR5L3Jlc291cmNlcy9vbmVycm9yLWlmcmFtZS5odG1sCkBAIC0wLDAgKzEsMTEg
QEAKKzxzY3JpcHQ+CitmdW5jdGlvbiBoYW5kbGVMb2FkKCkKK3sKKyAgICB3aW5kb3cucGFyZW50
LnBvc3RNZXNzYWdlKCJJRnJhbWVMb2FkZWQiLCAiKiIpOworfQorCit0aHJvdyAiSWZyYW1lRXhj
ZXB0aW9uIjsKKworPC9zY3JpcHQ+Cis8Ym9keSBvbmxvYWQ9ImhhbmRsZUxvYWQoKSI+Cis8L2Jv
ZHk+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L3dpbmRvdy1v
bmVycm9yLWV4Y2VwdGlvbi1pbi1pZnJhbWUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy9zZWN1cml0eS93aW5kb3ctb25lcnJvci1leGNlcHRpb24taW4taWZyYW1lLWV4cGVj
dGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi5kODgzYTQwZGQzMDBiNTViYmY1OWZlMjQ1ZGNlMDdlMDZkMDIz
MDMwCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS93
aW5kb3ctb25lcnJvci1leGNlcHRpb24taW4taWZyYW1lLWV4cGVjdGVkLnR4dApAQCAtMCwwICsx
LDcgQEAKK0NPTlNPTEUgTUVTU0FHRTogbGluZSAwOiBNYWluRnJhbWVFeGNlcHRpb24KK0NPTlNP
TEUgTUVTU0FHRTogbGluZSAwOiBJZnJhbWVFeGNlcHRpb24KK1Rlc3QgdGhhdCBleGNlcHRpb25z
IGluIGlmcmFtZSBhcmUgbm90IHJlcG9ydGVkIHRvIHRoZSBtYWluIGZyYW1lIHdpbmRvdy5vbmVy
cm9yIGhhbmRsZXIuIHdpbmRvdy5vbmVycm9yIHNob3VsZCBwcmludCBleGFjdGx5IG9uZSBsaW5l
LgorCitNYWluIGZyYW1lIHdpbmRvdy5vbmVycm9yOiBNYWluRnJhbWVFeGNlcHRpb24gYXQgdW5k
ZWZpbmVkOjAKK0RPTkUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1
cml0eS93aW5kb3ctb25lcnJvci1leGNlcHRpb24taW4taWZyYW1lLmh0bWwgYi9MYXlvdXRUZXN0
cy9odHRwL3Rlc3RzL3NlY3VyaXR5L3dpbmRvdy1vbmVycm9yLWV4Y2VwdGlvbi1pbi1pZnJhbWUu
aHRtbApuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi41YmVjYTUwYTRmOWE0NDU4MWI1OWY3NDRlMDM1ODM0ZGE5YWUwMTk2
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS93aW5k
b3ctb25lcnJvci1leGNlcHRpb24taW4taWZyYW1lLmh0bWwKQEAgLTAsMCArMSwzOCBAQAorPGh0
bWw+Cis8Ym9keT4KKzxwPlRlc3QgdGhhdCBleGNlcHRpb25zIGluIGlmcmFtZSBhcmUgbm90IHJl
cG9ydGVkIHRvIHRoZSBtYWluIGZyYW1lIHdpbmRvdy5vbmVycm9yIGhhbmRsZXIuCit3aW5kb3cu
b25lcnJvciBzaG91bGQgcHJpbnQgZXhhY3RseSBvbmUgbGluZS48L3A+Cis8ZGl2IGlkPSJyZXN1
bHQiPjwvZGl2PgorPHNjcmlwdD4KK2lmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpIHsK
KyAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7CisgICAgbGF5b3V0VGVzdENv
bnRyb2xsZXIud2FpdFVudGlsRG9uZSgpOworfQorCitmdW5jdGlvbiBsb2cobXNnKSB7CisgICAg
ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInJlc3VsdCIpLmlubmVySFRNTCArPSBtc2cgKyAiPGJy
PiI7Cit9CisKK3dpbmRvdy5vbmVycm9yID0gZnVuY3Rpb24obXNnLCB1cmwsIGxpbmUpCit7Cisg
ICAgdXJsID0gdXJsID8gdXJsLm1hdGNoKCAvW15cL10rXC8/JC8gKVswXSA6IHVybDsKKyAgICBs
b2coIk1haW4gZnJhbWUgd2luZG93Lm9uZXJyb3I6ICIgKyBtc2cgKyAiIGF0ICIgKyB1cmwgKyAi
OiIgKyBsaW5lKTsKK30KKworZnVuY3Rpb24gcmVjZWl2ZU1lc3NhZ2UoZXZlbnQpIHsKKyAgICBp
ZiAoZXZlbnQuZGF0YSA9PT0gIklGcmFtZUxvYWRlZCIpIHsKKyAgICAgICAgbG9nKCJET05FIik7
CisgICAgICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCisgICAgICAgICAgICBs
YXlvdXRUZXN0Q29udHJvbGxlci5ub3RpZnlEb25lKCk7CisgICAgfSBlbHNlCisgICAgICAgIGxv
ZygiRkFJTCAiICsgZXZlbnQuZGF0YSk7Cit9CisKK3dpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJt
ZXNzYWdlIiwgcmVjZWl2ZU1lc3NhZ2UsIGZhbHNlKTsKKwordGhyb3cgIk1haW5GcmFtZUV4Y2Vw
dGlvbiI7CisKKzwvc2NyaXB0PgorPGlmcmFtZSBzcmM9Imh0dHA6Ly9sb2NhbGhvc3Q6ODAwMC9z
ZWN1cml0eS9yZXNvdXJjZXMvb25lcnJvci1pZnJhbWUuaHRtbCIvPgorPC9ib2R5PgorPC9odG1s
PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vZmFzdC9ldmVudHMv
d2luZG93LW9uZXJyb3IxLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9t
aXVtL2Zhc3QvZXZlbnRzL3dpbmRvdy1vbmVycm9yMS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9k
ZSAxMDA3NTUKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
MmJmODc1Mzk0NzMzY2ZjMTNkZTU5YTU5YmE2ZTQyMGVmNGQzMTg1YgotLS0gL2Rldi9udWxsCisr
KyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL2Zhc3QvZXZlbnRzL3dpbmRvdy1vbmVy
cm9yMS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw0IEBACitDT05TT0xFIE1FU1NBR0U6IGxpbmUg
MjU6IFVuY2F1Z2h0IFJlZmVyZW5jZUVycm9yOiBoYWhhaGFfZ29vZF9sdWNrX2ZpbmRpbmdfbWUg
aXMgbm90IGRlZmluZWQNDQorVGhpcyBwYWdlIHRlc3RzIHNldHRpbmcgb25lcnJvciBoYW5kbGVy
cyB0aHJvdWdoIHRoZSBET00uIElmIGl0IHBhc3NlcywgeW91IHdpbGwgc2VlICJQQVNTIiBtZXNz
YWdlcyBiZWxvdy5CdWcgODUxOS4NDQorDQ0KK1BBU1M6IGNhdWdodCBnbG9iYWwgZXJyb3I6IFVu
Y2F1Z2h0IFJlZmVyZW5jZUVycm9yOiBoYWhhaGFfZ29vZF9sdWNrX2ZpbmRpbmdfbWUgaXMgbm90
IGRlZmluZWQgYXQgd2luZG93LW9uZXJyb3IxLmh0bWw6MjUNDQpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vZmFzdC9ldmVudHMvd2luZG93LW9uZXJyb3IyLWV4cGVj
dGVkLnR4dCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL2Zhc3QvZXZlbnRzL3dpbmRv
dy1vbmVycm9yMi1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNWI2MWJmMWU1NzkwYmMxODdmNzM4
MjE2ZmFjOWY5NGFiZDZjMzBiMgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3BsYXRm
b3JtL2Nocm9taXVtL2Zhc3QvZXZlbnRzL3dpbmRvdy1vbmVycm9yMi1leHBlY3RlZC50eHQKQEAg
LTAsMCArMSw5IEBACitDT05TT0xFIE1FU1NBR0U6IGxpbmUgMzQ6IFVuY2F1Z2h0IElubGluZSBz
Y3JpcHQgZXhjZXB0aW9uDQ0KK0NPTlNPTEUgTUVTU0FHRTogbGluZSAyOiBVbmNhdWdodCBFeGNl
cHRpb24gaW4gb25sb2FkDQ0KK0NPTlNPTEUgTUVTU0FHRTogbGluZSAyMzogVW5jYXVnaHQgRXhj
ZXB0aW9uIGluIHNldFRpbWVvdXQNDQorVGVzdCB0aGF0IHVuY2F1Z2h0IGV4Y2VwdGlvbnMgd2ls
bCBiZSByZXBvcnRlZCB0byB0aGUgd2luZG93Lm9uZXJyb3IgaGFuZGxlci4gQnVnIDg1MTkuDQ0K
Kw0NCitNYWluIGZyYW1lIHdpbmRvdy5vbmVycm9yOiBVbmNhdWdodCBJbmxpbmUgc2NyaXB0IGV4
Y2VwdGlvbiBhdCB3aW5kb3ctb25lcnJvcjIuaHRtbDozNA0NCitNYWluIGZyYW1lIHdpbmRvdy5v
bmVycm9yOiBVbmNhdWdodCBFeGNlcHRpb24gaW4gb25sb2FkIGF0IHdpbmRvdy1vbmVycm9yMi5o
dG1sOjINDQorTWFpbiBmcmFtZSB3aW5kb3cub25lcnJvcjogVW5jYXVnaHQgRXhjZXB0aW9uIGlu
IHNldFRpbWVvdXQgYXQgd2luZG93LW9uZXJyb3IyLmh0bWw6MjMNDQorDQ0KZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL2Zhc3QvZXZlbnRzL3dpbmRvdy1vbmVycm9y
My1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS9mYXN0L2V2ZW50
cy93aW5kb3ctb25lcnJvcjMtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmVlOGRiOGIwNTdmMWEw
NDY3YTFlM2EzNDJhNjU2OTQwY2Q2YTQ5MWYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy9wbGF0Zm9ybS9jaHJvbWl1bS9mYXN0L2V2ZW50cy93aW5kb3ctb25lcnJvcjMtZXhwZWN0ZWQu
dHh0CkBAIC0wLDAgKzEsNSBAQAorQ09OU09MRSBNRVNTQUdFOiBsaW5lIDE1OiBVbmNhdWdodCBS
ZWZlcmVuY2VFcnJvcjogdW5rbm93bk9iamVjdCBpcyBub3QgZGVmaW5lZA0NCitZb3Ugc2hvdWxk
IHNlZSBhIG1lc3NhZ2UgaWYgd2luZG93Lm9uZXJyb3IgaXMgd29ya2luZyBwcm9wZXJseSBmb3Ig
dGhpcyB0ZXN0LkJ1ZyA4NTE5Lg0NCisNDQorRXJyb3IgY2F1Z2h0IHN1Y2Nlc3NmdWxseTogVW5j
YXVnaHQgUmVmZXJlbmNlRXJyb3I6IHVua25vd25PYmplY3QgaXMgbm90IGRlZmluZWQgRmlsZTog
d2luZG93LW9uZXJyb3IzLmh0bWwgTGluZTogMTUNDQorDQ0KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL3BsYXRmb3JtL2Nocm9taXVtL2Zhc3QvZXZlbnRzL3dpbmRvdy1vbmVycm9yNC1leHBlY3Rl
ZC50eHQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS9mYXN0L2V2ZW50cy93aW5kb3ct
b25lcnJvcjQtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjNhY2UyYjAyYmM4MWZhYzBkYjQ1ZDZk
ZDllN2I3ZDNjYTI4ZjA2YWEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9y
bS9jaHJvbWl1bS9mYXN0L2V2ZW50cy93aW5kb3ctb25lcnJvcjQtZXhwZWN0ZWQudHh0CkBAIC0w
LDAgKzEsNSBAQAorQ09OU09MRSBNRVNTQUdFOiBsaW5lIDE6IFVuY2F1Z2h0IFJlZmVyZW5jZUVy
cm9yOiBJbnZhbGlkIGxlZnQtaGFuZCBzaWRlIGluIGFzc2lnbm1lbnQNDQorWW91IHNob3VsZCBz
ZWUgYSBsb2cgcmVjb3JkIGlmIHdpbmRvdy5vbmVycm9yIGlzIHdvcmtpbmcgcHJvcGVybHkgZm9y
IHRoaXMgdGVzdC5CdWcgODUxOS4NDQorDQ0KK0Vycm9yIGNhdWdodCBzdWNjZXNzZnVsbHk6IFVu
Y2F1Z2h0IFJlZmVyZW5jZUVycm9yOiBJbnZhbGlkIGxlZnQtaGFuZCBzaWRlIGluIGFzc2lnbm1l
bnQgRmlsZTogd2luZG93LW9uZXJyb3I0Lmh0bWwgTGluZTogMQ0NCisNDQpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vZmFzdC9ldmVudHMvd2luZG93LW9uZXJyb3I1
LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL2Zhc3QvZXZlbnRz
L3dpbmRvdy1vbmVycm9yNS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZTEyYmI3ZDBhNWU1YWM1
YTFiYTA2ZWEyNGI3N2UxMTJhMzc1ZDI1MgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3Rz
L3BsYXRmb3JtL2Nocm9taXVtL2Zhc3QvZXZlbnRzL3dpbmRvdy1vbmVycm9yNS1leHBlY3RlZC50
eHQKQEAgLTAsMCArMSw1IEBACitDT05TT0xFIE1FU1NBR0U6IGxpbmUgMTogVW5jYXVnaHQgU3lu
dGF4RXJyb3I6IFVuZXhwZWN0ZWQgZW5kIG9mIGlucHV0DQ0KK1Rlc3QgdGhhdCB3aW5kb3cub25l
cnJvciBpcyBpbnZva2VkIGZvciBzeW50YXggZXJyb3IgaW4gZXZhbC4gWW91IHNob3VsZCBzZWUg
YSBsb2cgcmVjb3JkIGlmIHdpbmRvdy5vbmVycm9yIGlzIHdvcmtpbmcgcHJvcGVybHkgZm9yIHRo
aXMgdGVzdC5CdWcgODUxOS4NDQorDQ0KK0Vycm9yIGNhdWdodCBzdWNjZXNzZnVsbHk6IFVuY2F1
Z2h0IFN5bnRheEVycm9yOiBVbmV4cGVjdGVkIGVuZCBvZiBpbnB1dCBGaWxlOiB3aW5kb3ctb25l
cnJvcjUuaHRtbCBMaW5lOiAxDQ0KKw0NCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9y
bS9jaHJvbWl1bS9mYXN0L2V2ZW50cy93aW5kb3ctb25lcnJvcjYtZXhwZWN0ZWQudHh0IGIvTGF5
b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vZmFzdC9ldmVudHMvd2luZG93LW9uZXJyb3I2LWV4
cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43NzZhYTRmZGU4MDk5MWJkNDQwMTMwZTk3NDBkMmQwNDMz
MzdlNzBlCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0v
ZmFzdC9ldmVudHMvd2luZG93LW9uZXJyb3I2LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDUgQEAK
K0NPTlNPTEUgTUVTU0FHRTogbGluZSAyMTogVW5jYXVnaHQgU3ludGF4RXJyb3I6IFVuZXhwZWN0
ZWQgdG9rZW4gKQ0NCitUZXN0IHRoYXQgc3ludGF4IGVycm9yIHdpbGwgYmUgcmVwb3J0ZWQgdG8g
dGhlIHdpbmRvdy5vbmVycm9yIGhhbmRsZXIuIEJ1ZyA4NTE5Lg0NCisNDQorTWFpbiBmcmFtZSB3
aW5kb3cub25lcnJvcjogVW5jYXVnaHQgU3ludGF4RXJyb3I6IFVuZXhwZWN0ZWQgdG9rZW4gKSBh
dCB3aW5kb3ctb25lcnJvcjYuaHRtbDoyMQ0NCisNDQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
cGxhdGZvcm0vY2hyb21pdW0vZmFzdC9ldmVudHMvd2luZG93LW9uZXJyb3I3LWV4cGVjdGVkLnR4
dCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL2Zhc3QvZXZlbnRzL3dpbmRvdy1vbmVy
cm9yNy1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZjU3ZWIwOGU3NGNiMjRlNDIwOGRhZDRiY2Iw
NjZiYTM0ZWYzZDMyNgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2No
cm9taXVtL2Zhc3QvZXZlbnRzL3dpbmRvdy1vbmVycm9yNy1leHBlY3RlZC50eHQKQEAgLTAsMCAr
MSw2IEBACitDT05TT0xFIE1FU1NBR0U6IGxpbmUgMTc6IFVuY2F1Z2h0IE5lc3RlZCBlcnJvcg0N
CitDT05TT0xFIE1FU1NBR0U6IGxpbmUgMjA6IFVuY2F1Z2h0IDIwMTANDQorVGVzdCB0aGF0IGV4
Y2VwdGlvbiBpbiB3aW5kb3cub25lcnJvciB3b24ndCBsZWFkIHRvIHJlY3Vyc2l2ZSB3aW5kb3cu
b25lcnJvciBjYWxsLiBCdWcgODUxOS4NDQorDQ0KK01haW4gZnJhbWUgd2luZG93Lm9uZXJyb3I6
IFVuY2F1Z2h0IDIwMTAgYXQgd2luZG93LW9uZXJyb3I3Lmh0bWw6MjANDQorDQ0KZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL2Zhc3QvZXZlbnRzL3dpbmRvdy1vbmVy
cm9yOC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS9mYXN0L2V2
ZW50cy93aW5kb3ctb25lcnJvcjgtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNzU1Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmVmOTYzMzBmZWMy
MDZhMWVjYzhiOThhOTI2NmMwNjVjMTg1M2IxMDIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRU
ZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS9mYXN0L2V2ZW50cy93aW5kb3ctb25lcnJvcjgtZXhwZWN0
ZWQudHh0CkBAIC0wLDAgKzEsNiBAQAorQ09OU09MRSBNRVNTQUdFOiBsaW5lIDIzOiBVbmNhdWdo
dCAyMDEwDQ0KK1Rlc3QgdGhhdCB3aW5kb3cub25lcnJvciBpcyBjYWxsZWQgb24gd2luZG93IG9i
amVjdC4gQnVnIDg1MTkuDQ0KKw0NCitNYWluIGZyYW1lIHdpbmRvdy5vbmVycm9yOiBVbmNhdWdo
dCAyMDEwIGF0IHdpbmRvdy1vbmVycm9yOC5odG1sOjIzDQ0KK1BBU1NFRDogdGhpcyA9PT0gd2lu
ZG93DQ0KKw0NCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS9odHRw
L3Rlc3RzL3NlY3VyaXR5L3dpbmRvdy1vbmVycm9yLWV4Y2VwdGlvbi1pbi1pZnJhbWUtZXhwZWN0
ZWQudHh0IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vaHR0cC90ZXN0cy9zZWN1cml0
eS93aW5kb3ctb25lcnJvci1leGNlcHRpb24taW4taWZyYW1lLWV4cGVjdGVkLnR4dApuZXcgZmls
ZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi5kNzZmY2QwMDRjNzlmYzNmMjFlMDA3ODA3MjllMjlkMWQ0ZjJjOGE4Ci0tLSAvZGV2L251
bGwKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vaHR0cC90ZXN0cy9zZWN1cml0
eS93aW5kb3ctb25lcnJvci1leGNlcHRpb24taW4taWZyYW1lLWV4cGVjdGVkLnR4dApAQCAtMCww
ICsxLDcgQEAKK0NPTlNPTEUgTUVTU0FHRTogbGluZSAzMzogVW5jYXVnaHQgTWFpbkZyYW1lRXhj
ZXB0aW9uDQ0KK0NPTlNPTEUgTUVTU0FHRTogbGluZSA3OiBVbmNhdWdodCBJZnJhbWVFeGNlcHRp
b24NDQorVGVzdCB0aGF0IGV4Y2VwdGlvbnMgaW4gaWZyYW1lIGFyZSBub3QgcmVwb3J0ZWQgdG8g
dGhlIG1haW4gZnJhbWUgd2luZG93Lm9uZXJyb3IgaGFuZGxlci4gd2luZG93Lm9uZXJyb3Igc2hv
dWxkIHByaW50IGV4YWN0bHkgb25lIGxpbmUuDQ0KKw0NCitNYWluIGZyYW1lIHdpbmRvdy5vbmVy
cm9yOiBVbmNhdWdodCBNYWluRnJhbWVFeGNlcHRpb24gYXQgd2luZG93LW9uZXJyb3ItZXhjZXB0
aW9uLWluLWlmcmFtZS5odG1sOjMzDQ0KK0RPTkUNDQorDQ0KZGlmZiAtLWdpdCBhL1dlYkNvcmUv
QW5kcm9pZC5qc2NiaW5kaW5ncy5tayBiL1dlYkNvcmUvQW5kcm9pZC5qc2NiaW5kaW5ncy5tawpp
bmRleCBlMDdlZDFlNGZlNTgwOGUwMjdhNzFiOGU3NmM0ZDQ1MDMxYzk0YTE2Li43NDliYTE0MWZm
MGNmZTUzOTdlNmMzMjJhYTBhMGQ2NGI3NzgxYWM5IDEwMDY0NAotLS0gYS9XZWJDb3JlL0FuZHJv
aWQuanNjYmluZGluZ3MubWsKKysrIGIvV2ViQ29yZS9BbmRyb2lkLmpzY2JpbmRpbmdzLm1rCkBA
IC05NSw2ICs5NSw3IEBAIExPQ0FMX1NSQ19GSUxFUyArPSBcCiAJYmluZGluZ3MvanMvSlNEZXZp
Y2VPcmllbnRhdGlvbkV2ZW50Q3VzdG9tLmNwcCBcCiAJYmluZGluZ3MvanMvSlNEb2N1bWVudEN1
c3RvbS5jcHAgXAogCWJpbmRpbmdzL2pzL0pTRWxlbWVudEN1c3RvbS5jcHAgXAorCWJpbmRpbmdz
L2pzL0pTRXJyb3JIYW5kbGVyLmNwcCBcCiAJYmluZGluZ3MvanMvSlNFdmVudEN1c3RvbS5jcHAg
XAogCWJpbmRpbmdzL2pzL0pTRXZlbnRMaXN0ZW5lci5jcHAgXAogCWJpbmRpbmdzL2pzL0pTRXZl
bnRUYXJnZXQuY3BwIFwKQEAgLTE1NSw3ICsxNTYsNiBAQCBMT0NBTF9TUkNfRklMRVMgKz0gXAog
CWJpbmRpbmdzL2pzL0pTV2ViS2l0UG9pbnRDdXN0b20uY3BwIFwKIAliaW5kaW5ncy9qcy9KU1dv
cmtlckNvbnRleHRCYXNlLmNwcCBcCiAJYmluZGluZ3MvanMvSlNXb3JrZXJDb250ZXh0Q3VzdG9t
LmNwcCBcCi0JYmluZGluZ3MvanMvSlNXb3JrZXJDb250ZXh0RXJyb3JIYW5kbGVyLmNwcCBcCiAJ
YmluZGluZ3MvanMvSlNXb3JrZXJDdXN0b20uY3BwIFwKIAliaW5kaW5ncy9qcy9KU1hNTEh0dHBS
ZXF1ZXN0Q3VzdG9tLmNwcCBcCiAJYmluZGluZ3MvanMvSlNYTUxIdHRwUmVxdWVzdFVwbG9hZEN1
c3RvbS5jcHAgXApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dCBiL1dlYkNvcmUv
Q01ha2VMaXN0cy50eHQKaW5kZXggZWI0MmM1Y2FiZWY2MTg4MmFkZmQyMmViMWUwNDk1NjY5ZGNh
MmIyZi4uYzFiZDk3NzhmNDkxNWFkYTUzMTgwN2ZiM2E3MzBkYzYxYmE5NDYwNyAxMDA2NDQKLS0t
IGEvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAorKysgYi9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CkBA
IC02MTksNiArNjE5LDcgQEAgU0VUKFdlYkNvcmVfU09VUkNFUwogICAgIGJpbmRpbmdzL2pzL0pT
RE9NV2luZG93U2hlbGwuY3BwCiAgICAgYmluZGluZ3MvanMvSlNET01XcmFwcGVyLmNwcAogICAg
IGJpbmRpbmdzL2pzL0pTRWxlbWVudEN1c3RvbS5jcHAKKyAgICBiaW5kaW5ncy9qcy9KU0Vycm9y
SGFuZGxlci5jcHAKICAgICBiaW5kaW5ncy9qcy9KU0V2ZW50Q3VzdG9tLmNwcAogICAgIGJpbmRp
bmdzL2pzL0pTRXZlbnRMaXN0ZW5lci5jcHAKICAgICBiaW5kaW5ncy9qcy9KU0V2ZW50U291cmNl
Q3VzdG9tLmNwcApAQCAtNjgxLDcgKzY4Miw2IEBAIFNFVChXZWJDb3JlX1NPVVJDRVMKICAgICBi
aW5kaW5ncy9qcy9KU1dlYktpdFBvaW50Q3VzdG9tLmNwcAogICAgIGJpbmRpbmdzL2pzL0pTV29y
a2VyQ29udGV4dEJhc2UuY3BwCiAgICAgYmluZGluZ3MvanMvSlNXb3JrZXJDb250ZXh0Q3VzdG9t
LmNwcAotICAgIGJpbmRpbmdzL2pzL0pTV29ya2VyQ29udGV4dEVycm9ySGFuZGxlci5jcHAKICAg
ICBiaW5kaW5ncy9qcy9KU1dvcmtlckN1c3RvbS5jcHAKICAgICBiaW5kaW5ncy9qcy9KU1hNTEh0
dHBSZXF1ZXN0Q3VzdG9tLmNwcAogICAgIGJpbmRpbmdzL2pzL0pTWE1MSHR0cFJlcXVlc3RVcGxv
YWRDdXN0b20uY3BwCmRpZmYgLS1naXQgYS9XZWJDb3JlL0NoYW5nZUxvZyBiL1dlYkNvcmUvQ2hh
bmdlTG9nCmluZGV4IGUzZWMzOWRlMTFhYjk3NjhlMjI4MjlhOTI2OTNmYjNmOGZjNzliNDguLmFj
ZGYzMzMzYjUyOWU1N2JiODA4YWQzMzc3NWUwODE4NDdiZWZlNTUgMTAwNjQ0Ci0tLSBhL1dlYkNv
cmUvQ2hhbmdlTG9nCisrKyBiL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNjggQEAKKzIw
MTAtMDgtMjMgIFl1cnkgU2VtaWtoYXRza3kgIDx5dXJ5c0BjaHJvbWl1bS5vcmc+CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgV2ViQ29yZSBkb2Vzbid0
IGZpcmUgd2luZG93Lm9uZXJyb3IgZXZlbnQgd2hlbiB1bmNhdWdodCBKYXZhU2NyaXB0IGV4Y2Vw
dGlvbnMgYXJlIHRocm93bgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9ODUxOQorCisgICAgICAgIFVuY2F1Z2h0IGV4Y2VwdGlvbnMgYXJlIHByb3BhZ2F0
ZWQgdG8gd2luZG93Lm9uZXJyb3IgaGFuZGVyIGlmIG9uZSBpcyBwcmVzZW50LgorICAgICAgICBU
aGUgaGFuZGxlciBpcyBleHBlY3RlZCB0byBiZSBhIGZ1bmN0aW9uIGFjY2VwdGluZyB0aHJlZSBh
cmd1bWVudHM6IGVycm9yIG1lc3NhZ2UsCisgICAgICAgIHJlc291cmNlIHVybCBhbmQgbGluZSBu
dW1iZXIgd2hlcmUgdGhlIGV4Y2VwdGlvbiBvY2N1cmVkLgorCisgICAgICAgIFRlc3RzOiBmYXN0
L2V2ZW50cy93aW5kb3ctb25lcnJvcjEuaHRtbAorICAgICAgICAgICAgICAgZmFzdC9ldmVudHMv
d2luZG93LW9uZXJyb3IyLmh0bWwKKyAgICAgICAgICAgICAgIGZhc3QvZXZlbnRzL3dpbmRvdy1v
bmVycm9yMy5odG1sCisgICAgICAgICAgICAgICBmYXN0L2V2ZW50cy93aW5kb3ctb25lcnJvcjQu
aHRtbAorICAgICAgICAgICAgICAgZmFzdC9ldmVudHMvd2luZG93LW9uZXJyb3I1Lmh0bWwKKyAg
ICAgICAgICAgICAgIGZhc3QvZXZlbnRzL3dpbmRvdy1vbmVycm9yNi5odG1sCisgICAgICAgICAg
ICAgICBmYXN0L2V2ZW50cy93aW5kb3ctb25lcnJvcjcuaHRtbAorICAgICAgICAgICAgICAgZmFz
dC9ldmVudHMvd2luZG93LW9uZXJyb3I4Lmh0bWwKKyAgICAgICAgICAgICAgIGh0dHAvdGVzdHMv
c2VjdXJpdHkvd2luZG93LW9uZXJyb3ItZXhjZXB0aW9uLWluLWlmcmFtZS5odG1sCisKKyAgICAg
ICAgKiBBbmRyb2lkLmpzY2JpbmRpbmdzLm1rOgorICAgICAgICAqIENNYWtlTGlzdHMudHh0Ogor
ICAgICAgICAqIEdOVW1ha2VmaWxlLmFtOgorICAgICAgICAqIFdlYkNvcmUuZ3lwaToKKyAgICAg
ICAgKiBXZWJDb3JlLm9yZGVyOgorICAgICAgICAqIFdlYkNvcmUucHJvOgorICAgICAgICAqIFdl
YkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qOgorICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9q
L3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU0JpbmRpbmdzQWxsSW5P
bmUuY3BwOgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pTRXJyb3JIYW5kbGVyLmNwcDogQWRkZWQu
CisgICAgICAgIChXZWJDb3JlOjpKU0Vycm9ySGFuZGxlcjo6SlNFcnJvckhhbmRsZXIpOgorICAg
ICAgICAoV2ViQ29yZTo6SlNFcnJvckhhbmRsZXI6On5KU0Vycm9ySGFuZGxlcik6CisgICAgICAg
IChXZWJDb3JlOjpKU0Vycm9ySGFuZGxlcjo6aGFuZGxlRXZlbnQpOgorICAgICAgICAqIGJpbmRp
bmdzL2pzL0pTRXJyb3JIYW5kbGVyLmg6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6SlNFcnJv
ckhhbmRsZXI6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpjcmVhdGVKU0Vycm9ySGFuZGxl
cik6CisgICAgICAgICogYmluZGluZ3MvanMvSlNXb3JrZXJDb250ZXh0RXJyb3JIYW5kbGVyLmNw
cDogUmVtb3ZlZC4KKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU1dvcmtlckNvbnRleHRFcnJvckhh
bmRsZXIuaDogUmVtb3ZlZC4gVGhpcyBjbGFzcyB3YXMgcmVmYWN0b3JlZCBpbnRvIG1vcmUgZ2Vu
ZXJhbAorICAgICAgICBKU0Vycm9ySGFuZGxlciB0aGF0IHJlcHJlc2VudHMgZ2xvYmFsIG9uZXJy
byBoYW5kZXIgb24gV29ya2VyIENvbnRleHQgb3Igb24gRE9NV2luZG93LgorICAgICAgICAqIGJp
bmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtOgorICAgICAgICAqIGJpbmRpbmdzL3Nj
cmlwdHMvQ29kZUdlbmVyYXRvclY4LnBtOgorICAgICAgICAqIGJpbmRpbmdzL3Y4L1Y4Q29uc29s
ZU1lc3NhZ2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6VjhDb25zb2xlTWVzc2FnZTo6ZGlzcGF0
Y2hOb3cpOgorICAgICAgICAoV2ViQ29yZTo6VjhDb25zb2xlTWVzc2FnZTo6aGFuZGxlcik6Cisg
ICAgICAgICogYmluZGluZ3MvdjgvVjhDb25zb2xlTWVzc2FnZS5oOgorICAgICAgICAqIGJpbmRp
bmdzL3Y4L1Y4V2luZG93RXJyb3JIYW5kbGVyLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJDb3Jl
OjpWOFdpbmRvd0Vycm9ySGFuZGxlcjo6VjhXaW5kb3dFcnJvckhhbmRsZXIpOgorICAgICAgICAo
V2ViQ29yZTo6VjhXaW5kb3dFcnJvckhhbmRsZXI6OmNhbGxMaXN0ZW5lckZ1bmN0aW9uKToKKyAg
ICAgICAgKiBiaW5kaW5ncy92OC9WOFdpbmRvd0Vycm9ySGFuZGxlci5oOiBBZGRlZC4KKyAgICAg
ICAgKFdlYkNvcmU6OlY4V2luZG93RXJyb3JIYW5kbGVyOjpjcmVhdGUpOgorICAgICAgICAqIGRv
bS9Eb2N1bWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6RG9jdW1lbnQpOgor
ICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6OnJlcG9ydEV4Y2VwdGlvbik6CisgICAgICAgICog
ZG9tL0RvY3VtZW50Lmg6CisgICAgICAgICogZG9tL1NjcmlwdEV4ZWN1dGlvbkNvbnRleHQuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6U2NyaXB0RXhlY3V0aW9uQ29udGV4dDo6U2NyaXB0RXhlY3V0
aW9uQ29udGV4dCk6CisgICAgICAgIChXZWJDb3JlOjpTY3JpcHRFeGVjdXRpb25Db250ZXh0Ojpp
bnZva2VPbkVycm9ySGFuZGxlcik6IHV0aWxpdHkgbWV0aG9kIHRoYXQgYWxsb3dzIHRvIGludm9r
ZSBvbmVycm9yCisgICAgICAgIGhhbmRlciBhY2NlcHRpbmcgdGhyZWUgcGFyYW1ldGVycyhtZXNz
YWdlLCB1cmwgYW5kIGxpbmUgbnVtYmVyKSBmb3IgV2luZG93IGFuZCBXb3JrZXIgQ29udGV4dC4K
KyAgICAgICAgKiBkb20vU2NyaXB0RXhlY3V0aW9uQ29udGV4dC5oOgorICAgICAgICAqIHdvcmtl
cnMvV29ya2VyQ29udGV4dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpXb3JrZXJDb250ZXh0OjpX
b3JrZXJDb250ZXh0KToKKyAgICAgICAgKFdlYkNvcmU6OldvcmtlckNvbnRleHQ6OnJlcG9ydEV4
Y2VwdGlvbik6CisgICAgICAgICogd29ya2Vycy9Xb3JrZXJDb250ZXh0Lmg6CisKIDIwMTAtMDgt
MjMgIEFyaXlhIEhpZGF5YXQgIDxhcml5YUBzZW5jaGEuY29tPgogCiAgICAgICAgIFJldmlld2Vk
IGJ5IEtlbm5ldGggUm9oZGUgQ2hyaXN0aWFuc2VuLgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9HTlVt
YWtlZmlsZS5hbSBiL1dlYkNvcmUvR05VbWFrZWZpbGUuYW0KaW5kZXggZjFlYzQ0NTQyMWMyZGYz
OGNlZGM1ZDYxYTVjOWNjOTQxNzQwYWMyMS4uYzc5YWI1ZTZlMzZhMDMxOTZlNWYxY2I1OTVjNTRl
NDdhMzc1ZmNhYyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9HTlVtYWtlZmlsZS5hbQorKysgYi9XZWJD
b3JlL0dOVW1ha2VmaWxlLmFtCkBAIC02ODAsNiArNjgwLDggQEAgd2ViY29yZV9zb3VyY2VzICs9
IFwKIAlXZWJDb3JlL2JpbmRpbmdzL2pzL0pTRGV2aWNlT3JpZW50YXRpb25FdmVudEN1c3RvbS5j
cHAgXAogCVdlYkNvcmUvYmluZGluZ3MvanMvSlNEb2N1bWVudEN1c3RvbS5jcHAgXAogCVdlYkNv
cmUvYmluZGluZ3MvanMvSlNFbGVtZW50Q3VzdG9tLmNwcCBcCisJV2ViQ29yZS9iaW5kaW5ncy9q
cy9KU0Vycm9ySGFuZGxlci5jcHAgXAorCVdlYkNvcmUvYmluZGluZ3MvanMvSlNFcnJvckhhbmRs
ZXIuaCBcCiAJV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0V2ZW50Q3VzdG9tLmNwcCBcCiAJV2ViQ29y
ZS9iaW5kaW5ncy9qcy9KU0V2ZW50TGlzdGVuZXIuY3BwIFwKIAlXZWJDb3JlL2JpbmRpbmdzL2pz
L0pTRXZlbnRMaXN0ZW5lci5oIFwKQEAgLTc1Miw4ICs3NTQsNiBAQCB3ZWJjb3JlX3NvdXJjZXMg
Kz0gXAogCVdlYkNvcmUvYmluZGluZ3MvanMvSlNUcmVlV2Fsa2VyQ3VzdG9tLmNwcCBcCiAJV2Vi
Q29yZS9iaW5kaW5ncy9qcy9KU1dlYktpdENTU01hdHJpeEN1c3RvbS5jcHAgXAogCVdlYkNvcmUv
YmluZGluZ3MvanMvSlNXZWJLaXRQb2ludEN1c3RvbS5jcHAgXAotCVdlYkNvcmUvYmluZGluZ3Mv
anMvSlNXb3JrZXJDb250ZXh0RXJyb3JIYW5kbGVyLmNwcCBcCi0JV2ViQ29yZS9iaW5kaW5ncy9q
cy9KU1dvcmtlckNvbnRleHRFcnJvckhhbmRsZXIuaCBcCiAJV2ViQ29yZS9iaW5kaW5ncy9qcy9K
U1hNTEh0dHBSZXF1ZXN0Q3VzdG9tLmNwcCBcCiAJV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1hNTEh0
dHBSZXF1ZXN0VXBsb2FkQ3VzdG9tLmNwcCBcCiAJV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1hTTFRQ
cm9jZXNzb3JDdXN0b20uY3BwIFwKZGlmZiAtLWdpdCBhL1dlYkNvcmUvV2ViQ29yZS5neXBpIGIv
V2ViQ29yZS9XZWJDb3JlLmd5cGkKaW5kZXggZjQ3MzhhNTJkOTk5MDI2OTI2ODAzMzE0OTY2ZmI1
MGZlZjhlN2ViMC4uNTU0ZGQ0MWMwMWYzMjM3NGZhN2UyN2RjYzdhMDNmZjQ3NGJmNmJhMSAxMDA2
NDQKLS0tIGEvV2ViQ29yZS9XZWJDb3JlLmd5cGkKKysrIGIvV2ViQ29yZS9XZWJDb3JlLmd5cGkK
QEAgLTU3NCw2ICs1NzQsOCBAQAogICAgICAgICAgICAgJ2JpbmRpbmdzL2pzL0pTRE9NV3JhcHBl
ci5jcHAnLAogICAgICAgICAgICAgJ2JpbmRpbmdzL2pzL0pTRE9NV3JhcHBlci5oJywKICAgICAg
ICAgICAgICdiaW5kaW5ncy9qcy9KU0VsZW1lbnRDdXN0b20uY3BwJywKKyAgICAgICAgICAgICdi
aW5kaW5ncy9qcy9KU0Vycm9ySGFuZGxlci5jcHAnLAorICAgICAgICAgICAgJ2JpbmRpbmdzL2pz
L0pTRXJyb3JIYW5kbGVyLmgnLAogICAgICAgICAgICAgJ2JpbmRpbmdzL2pzL0pTRXZlbnRDdXN0
b20uY3BwJywKICAgICAgICAgICAgICdiaW5kaW5ncy9qcy9KU0V2ZW50TGlzdGVuZXIuY3BwJywK
ICAgICAgICAgICAgICdiaW5kaW5ncy9qcy9KU0V2ZW50TGlzdGVuZXIuaCcsCkBAIC02NjYsOCAr
NjY4LDYgQEAKICAgICAgICAgICAgICdiaW5kaW5ncy9qcy9KU1dvcmtlckNvbnRleHRCYXNlLmNw
cCcsCiAgICAgICAgICAgICAnYmluZGluZ3MvanMvSlNXb3JrZXJDb250ZXh0QmFzZS5oJywKICAg
ICAgICAgICAgICdiaW5kaW5ncy9qcy9KU1dvcmtlckNvbnRleHRDdXN0b20uY3BwJywKLSAgICAg
ICAgICAgICdiaW5kaW5ncy9qcy9KU1dvcmtlckNvbnRleHRFcnJvckhhbmRsZXIuY3BwJywKLSAg
ICAgICAgICAgICdiaW5kaW5ncy9qcy9KU1dvcmtlckNvbnRleHRFcnJvckhhbmRsZXIuaCcsCiAg
ICAgICAgICAgICAnYmluZGluZ3MvanMvSlNXb3JrZXJDdXN0b20uY3BwJywKICAgICAgICAgICAg
ICdiaW5kaW5ncy9qcy9KU1hNTEh0dHBSZXF1ZXN0Q3VzdG9tLmNwcCcsCiAgICAgICAgICAgICAn
YmluZGluZ3MvanMvSlNYTUxIdHRwUmVxdWVzdFVwbG9hZEN1c3RvbS5jcHAnLApAQCAtOTIzLDYg
KzkyMyw4IEBACiAgICAgICAgICAgICAnYmluZGluZ3MvdjgvVjhTVkdQT0RUeXBlV3JhcHBlci5o
JywKICAgICAgICAgICAgICdiaW5kaW5ncy92OC9WOFV0aWxpdGllcy5jcHAnLAogICAgICAgICAg
ICAgJ2JpbmRpbmdzL3Y4L1Y4VXRpbGl0aWVzLmgnLAorICAgICAgICAgICAgJ2JpbmRpbmdzL3Y4
L1Y4V2luZG93RXJyb3JIYW5kbGVyLmNwcCcsCisgICAgICAgICAgICAnYmluZGluZ3MvdjgvVjhX
aW5kb3dFcnJvckhhbmRsZXIuaCcsCiAgICAgICAgICAgICAnYmluZGluZ3MvdjgvVjhXb3JrZXJD
b250ZXh0RXJyb3JIYW5kbGVyLmNwcCcsCiAgICAgICAgICAgICAnYmluZGluZ3MvdjgvVjhXb3Jr
ZXJDb250ZXh0RXJyb3JIYW5kbGVyLmgnLAogICAgICAgICAgICAgJ2JpbmRpbmdzL3Y4L1Y4V29y
a2VyQ29udGV4dEV2ZW50TGlzdGVuZXIuY3BwJywKZGlmZiAtLWdpdCBhL1dlYkNvcmUvV2ViQ29y
ZS5vcmRlciBiL1dlYkNvcmUvV2ViQ29yZS5vcmRlcgppbmRleCA0MTI0Nzc3M2JhMzdlZmQ1MDVl
YjdmMWVjNTg0NzhlYzU2MmZjMDk3Li5mYjE4ZDY0ODI3MjMxZWJjYmU5YTBmYjFlZTQ0NjFmNjNm
YTUwNzJjIDEwMDY0NAotLS0gYS9XZWJDb3JlL1dlYkNvcmUub3JkZXIKKysrIGIvV2ViQ29yZS9X
ZWJDb3JlLm9yZGVyCkBAIC0yNTIxNywxMyArMjUyMTcsOSBAQCBfX1pON1dlYkNvcmUxNUpTV29y
a2VyQ29udGV4dDEwc2V0VGltZW91dEVQTjNKU0M5RXhlY1N0YXRlRVJLTlMxXzdBcmdMaXN0RQog
X19aTjdXZWJDb3JlMTNXb3JrZXJDb250ZXh0MTBzZXRUaW1lb3V0RVBOU18xNVNjaGVkdWxlZEFj
dGlvbkVpCiBfX1pON1dlYkNvcmUxN1dvcmtlclNoYXJlZFRpbWVyMTFzZXRGaXJlVGltZUVkCiBf
X1pON1dlYkNvcmUxNVNjaGVkdWxlZEFjdGlvbjdleGVjdXRlRVBOU18xM1dvcmtlckNvbnRleHRF
Ci1fX1pON1dlYkNvcmUyN0pTV29ya2VyQ29udGV4dEVycm9ySGFuZGxlckMxRVBOM0pTQzhKU09i
amVjdEVTM19iUE5TXzE1RE9NV3JhcHBlcldvcmxkRQotX19aTjdXZWJDb3JlMjdKU1dvcmtlckNv
bnRleHRFcnJvckhhbmRsZXJDMkVQTjNKU0M4SlNPYmplY3RFUzNfYlBOU18xNURPTVdyYXBwZXJX
b3JsZEUKIF9fWk43V2ViQ29yZTEwRXJyb3JFdmVudEMxRVJLTlNfNlN0cmluZ0VTM19qCiBfX1pO
N1dlYkNvcmUxMEVycm9yRXZlbnRDMkVSS05TXzZTdHJpbmdFUzNfagotX19aTjdXZWJDb3JlMjdK
U1dvcmtlckNvbnRleHRFcnJvckhhbmRsZXIxMWhhbmRsZUV2ZW50RVBOU18yMlNjcmlwdEV4ZWN1
dGlvbkNvbnRleHRFUE5TXzVFdmVudEUKIF9fWk43V2ViQ29yZTEwRXJyb3JFdmVudEQwRXYKLV9f
Wk43V2ViQ29yZTI3SlNXb3JrZXJDb250ZXh0RXJyb3JIYW5kbGVyRDBFdgogX19aTjdXZWJDb3Jl
MTdqc1dvcmtlck9ubWVzc2FnZUVQTjNKU0M5RXhlY1N0YXRlRU5TMF83SlNWYWx1ZUVSS05TMF8x
MElkZW50aWZpZXJFCiBfX1pON1dlYkNvcmUzNGpzV29ya2VyUHJvdG90eXBlRnVuY3Rpb25UZXJt
aW5hdGVFUE4zSlNDOUV4ZWNTdGF0ZUVQTlMwXzhKU09iamVjdEVOUzBfN0pTVmFsdWVFUktOUzBf
N0FyZ0xpc3RFCiBfX1pUaG44X043V2ViQ29yZTIwV29ya2VyTWVzc2FnaW5nUHJveHkxOXdvcmtl
ckNvbnRleHRDbG9zZWRFdgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9XZWJDb3JlLnBybyBiL1dlYkNv
cmUvV2ViQ29yZS5wcm8KaW5kZXggMTNhYTA3MzM1OWMxZjRkNTIzYTBkZWE4YTBmNGYxNzEwNDRm
YTcwNy4uYjcwYjdhY2NjYTIwZTBlODllMDk1MGQyYzk5MWUyMDVlZTkyZWZhYyAxMDA2NDQKLS0t
IGEvV2ViQ29yZS9XZWJDb3JlLnBybworKysgYi9XZWJDb3JlL1dlYkNvcmUucHJvCkBAIC0zMTks
NiArMzE5LDcgQEAgU09VUkNFUyArPSBcCiAgICAgYmluZGluZ3MvanMvSlNET01XaW5kb3dTaGVs
bC5jcHAgXAogICAgIGJpbmRpbmdzL2pzL0pTRE9NV3JhcHBlci5jcHAgXAogICAgIGJpbmRpbmdz
L2pzL0pTRWxlbWVudEN1c3RvbS5jcHAgXAorICAgIGJpbmRpbmdzL2pzL0pTRXJyb3JIYW5kbGVy
LmNwcCBcCiAgICAgYmluZGluZ3MvanMvSlNFdmVudEN1c3RvbS5jcHAgXAogICAgIGJpbmRpbmdz
L2pzL0pTRXZlbnRTb3VyY2VDdXN0b20uY3BwIFwKICAgICBiaW5kaW5ncy9qcy9KU0V2ZW50VGFy
Z2V0LmNwcCBcCkBAIC0zNzUsNyArMzc2LDYgQEAgU09VUkNFUyArPSBcCiAgICAgYmluZGluZ3Mv
anMvSlNNYWluVGhyZWFkRXhlY1N0YXRlLmNwcCBcCiAgICAgYmluZGluZ3MvanMvSlNQbHVnaW5F
bGVtZW50RnVuY3Rpb25zLmNwcCBcCiAgICAgYmluZGluZ3MvanMvSlNQb3BTdGF0ZUV2ZW50Q3Vz
dG9tLmNwcCBcCi0gICAgYmluZGluZ3MvanMvSlNXb3JrZXJDb250ZXh0RXJyb3JIYW5kbGVyLmNw
cCBcCiAgICAgYmluZGluZ3MvanMvU2NyaXB0Q2FjaGVkRnJhbWVEYXRhLmNwcCBcCiAgICAgYmlu
ZGluZ3MvanMvU2NyaXB0Q2FsbEZyYW1lLmNwcCBcCiAgICAgYmluZGluZ3MvanMvU2NyaXB0Q2Fs
bFN0YWNrLmNwcCBcCkBAIC0xMTI4LDYgKzExMjgsNyBAQCBIRUFERVJTICs9IFwKICAgICBiaW5k
aW5ncy9qcy9KU0RPTVdpbmRvd0N1c3RvbS5oIFwKICAgICBiaW5kaW5ncy9qcy9KU0RPTVdpbmRv
d1NoZWxsLmggXAogICAgIGJpbmRpbmdzL2pzL0pTRE9NV3JhcHBlci5oIFwKKyAgICBiaW5kaW5n
cy9qcy9KU0Vycm9ySGFuZGxlci5oIFwKICAgICBiaW5kaW5ncy9qcy9KU0V2ZW50TGlzdGVuZXIu
aCBcCiAgICAgYmluZGluZ3MvanMvSlNFdmVudFRhcmdldC5oIFwKICAgICBiaW5kaW5ncy9qcy9K
U0hpc3RvcnlDdXN0b20uaCBcCkBAIC0xMTQ1LDcgKzExNDYsNiBAQCBIRUFERVJTICs9IFwKICAg
ICBiaW5kaW5ncy9qcy9KU1BsdWdpbkVsZW1lbnRGdW5jdGlvbnMuaCBcCiAgICAgYmluZGluZ3Mv
anMvSlNTdG9yYWdlQ3VzdG9tLmggXAogICAgIGJpbmRpbmdzL2pzL0pTV29ya2VyQ29udGV4dEJh
c2UuaCBcCi0gICAgYmluZGluZ3MvanMvSlNXb3JrZXJDb250ZXh0RXJyb3JIYW5kbGVyLmggXAog
ICAgIGJpbmRpbmdzL2pzL0phdmFTY3JpcHRDYWxsRnJhbWUuaCBcCiAgICAgYmluZGluZ3MvanMv
U2NoZWR1bGVkQWN0aW9uLmggXAogICAgIGJpbmRpbmdzL2pzL1NjcmlwdENhY2hlZEZyYW1lRGF0
YS5oIFwKZGlmZiAtLWdpdCBhL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2og
Yi9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qCmluZGV4IDc0ODYwMzM0Mzhi
ZjEzMDRjZDIxNzIwNDViZThiMWIzZTAyYTFjNGMuLjRmZDNmN2EyOGMzMDY5ZDlmOTFlZDRmYWQ0
ZjMzZTc1NzU1ODJiYWEgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29y
ZS52Y3Byb2oKKysrIGIvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvagpAQCAt
NDQxMDQsNiArNDQxMDQsNjIgQEAKIAkJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4NCiAJCQkJPC9G
aWxlPg0KIAkJCQk8RmlsZQ0KKwkJCQkJUmVsYXRpdmVQYXRoPSIuLlxiaW5kaW5nc1xqc1xKU0Vy
cm9ySGFuZGxlci5jcHAiDQorCQkJCQk+DQorCQkJCQk8RmlsZUNvbmZpZ3VyYXRpb24NCisJCQkJ
CQlOYW1lPSJEZWJ1Z3xXaW4zMiINCisJCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSINCisJ
CQkJCQk+DQorCQkJCQkJPFRvb2wNCisJCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCINCisJ
CQkJCQkvPg0KKwkJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4NCisJCQkJCTxGaWxlQ29uZmlndXJh
dGlvbg0KKwkJCQkJCU5hbWU9IlJlbGVhc2V8V2luMzIiDQorCQkJCQkJRXhjbHVkZWRGcm9tQnVp
bGQ9InRydWUiDQorCQkJCQkJPg0KKwkJCQkJCTxUb29sDQorCQkJCQkJCU5hbWU9IlZDQ0xDb21w
aWxlclRvb2wiDQorCQkJCQkJLz4NCisJCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+DQorCQkJCQk8
RmlsZUNvbmZpZ3VyYXRpb24NCisJCQkJCQlOYW1lPSJEZWJ1Z19JbnRlcm5hbHxXaW4zMiINCisJ
CQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSINCisJCQkJCQk+DQorCQkJCQkJPFRvb2wNCisJ
CQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCINCisJCQkJCQkvPg0KKwkJCQkJPC9GaWxlQ29u
ZmlndXJhdGlvbj4NCisJCQkJCTxGaWxlQ29uZmlndXJhdGlvbg0KKwkJCQkJCU5hbWU9IkRlYnVn
X0NhaXJvfFdpbjMyIg0KKwkJCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIg0KKwkJCQkJCT4N
CisJCQkJCQk8VG9vbA0KKwkJCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIg0KKwkJCQkJCS8+
DQorCQkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPg0KKwkJCQkJPEZpbGVDb25maWd1cmF0aW9uDQor
CQkJCQkJTmFtZT0iUmVsZWFzZV9DYWlyb3xXaW4zMiINCisJCQkJCQlFeGNsdWRlZEZyb21CdWls
ZD0idHJ1ZSINCisJCQkJCQk+DQorCQkJCQkJPFRvb2wNCisJCQkJCQkJTmFtZT0iVkNDTENvbXBp
bGVyVG9vbCINCisJCQkJCQkvPg0KKwkJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4NCisJCQkJCTxG
aWxlQ29uZmlndXJhdGlvbg0KKwkJCQkJCU5hbWU9IkRlYnVnX0FsbHxXaW4zMiINCisJCQkJCQlF
eGNsdWRlZEZyb21CdWlsZD0idHJ1ZSINCisJCQkJCQk+DQorCQkJCQkJPFRvb2wNCisJCQkJCQkJ
TmFtZT0iVkNDTENvbXBpbGVyVG9vbCINCisJCQkJCQkvPg0KKwkJCQkJPC9GaWxlQ29uZmlndXJh
dGlvbj4NCisJCQkJPC9GaWxlPg0KKwkJCQk8RmlsZQ0KKwkJCQkJUmVsYXRpdmVQYXRoPSIuLlxi
aW5kaW5nc1xqc1xKU0Vycm9ySGFuZGxlci5oIg0KKwkJCQkJPg0KKwkJCQk8L0ZpbGU+DQorCQkJ
CTxGaWxlDQogCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGJpbmRpbmdzXGpzXEpTRXZlbnRDdXN0b20u
Y3BwIg0KIAkJCQkJPg0KIAkJCQkJPEZpbGVDb25maWd1cmF0aW9uDQpAQCAtNDg0OTYsNjIgKzQ4
NTUyLDYgQEAKIAkJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4NCiAJCQkJPC9GaWxlPg0KIAkJCQk8
RmlsZQ0KLQkJCQkJUmVsYXRpdmVQYXRoPSIuLlxiaW5kaW5nc1xqc1xKU1dvcmtlckNvbnRleHRF
cnJvckhhbmRsZXIuY3BwIg0KLQkJCQkJPg0KLQkJCQkJPEZpbGVDb25maWd1cmF0aW9uDQotCQkJ
CQkJTmFtZT0iRGVidWd8V2luMzIiDQotCQkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiDQot
CQkJCQkJPg0KLQkJCQkJCTxUb29sDQotCQkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiDQot
CQkJCQkJLz4NCi0JCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+DQotCQkJCQk8RmlsZUNvbmZpZ3Vy
YXRpb24NCi0JCQkJCQlOYW1lPSJSZWxlYXNlfFdpbjMyIg0KLQkJCQkJCUV4Y2x1ZGVkRnJvbUJ1
aWxkPSJ0cnVlIg0KLQkJCQkJCT4NCi0JCQkJCQk8VG9vbA0KLQkJCQkJCQlOYW1lPSJWQ0NMQ29t
cGlsZXJUb29sIg0KLQkJCQkJCS8+DQotCQkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPg0KLQkJCQkJ
PEZpbGVDb25maWd1cmF0aW9uDQotCQkJCQkJTmFtZT0iRGVidWdfSW50ZXJuYWx8V2luMzIiDQot
CQkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiDQotCQkJCQkJPg0KLQkJCQkJCTxUb29sDQot
CQkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiDQotCQkJCQkJLz4NCi0JCQkJCTwvRmlsZUNv
bmZpZ3VyYXRpb24+DQotCQkJCQk8RmlsZUNvbmZpZ3VyYXRpb24NCi0JCQkJCQlOYW1lPSJEZWJ1
Z19DYWlyb3xXaW4zMiINCi0JCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSINCi0JCQkJCQk+
DQotCQkJCQkJPFRvb2wNCi0JCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCINCi0JCQkJCQkv
Pg0KLQkJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4NCi0JCQkJCTxGaWxlQ29uZmlndXJhdGlvbg0K
LQkJCQkJCU5hbWU9IlJlbGVhc2VfQ2Fpcm98V2luMzIiDQotCQkJCQkJRXhjbHVkZWRGcm9tQnVp
bGQ9InRydWUiDQotCQkJCQkJPg0KLQkJCQkJCTxUb29sDQotCQkJCQkJCU5hbWU9IlZDQ0xDb21w
aWxlclRvb2wiDQotCQkJCQkJLz4NCi0JCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+DQotCQkJCQk8
RmlsZUNvbmZpZ3VyYXRpb24NCi0JCQkJCQlOYW1lPSJEZWJ1Z19BbGx8V2luMzIiDQotCQkJCQkJ
RXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiDQotCQkJCQkJPg0KLQkJCQkJCTxUb29sDQotCQkJCQkJ
CU5hbWU9IlZDQ0xDb21waWxlclRvb2wiDQotCQkJCQkJLz4NCi0JCQkJCTwvRmlsZUNvbmZpZ3Vy
YXRpb24+DQotCQkJCTwvRmlsZT4NCi0JCQkJPEZpbGUNCi0JCQkJCVJlbGF0aXZlUGF0aD0iLi5c
YmluZGluZ3NcanNcSlNXb3JrZXJDb250ZXh0RXJyb3JIYW5kbGVyLmgiDQotCQkJCQk+DQotCQkJ
CTwvRmlsZT4NCi0JCQkJPEZpbGUNCiAJCQkJCVJlbGF0aXZlUGF0aD0iLi5cYmluZGluZ3NcanNc
SlNYTUxIdHRwUmVxdWVzdEN1c3RvbS5jcHAiDQogCQkJCQk+DQogCQkJCQk8RmlsZUNvbmZpZ3Vy
YXRpb24NCmRpZmYgLS1naXQgYS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvaiBiL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDgw
NTlhYTJlMjdhYWEzZTc2Zjg1ZjVkNjQ2NDBlNzA2ODVlNmZjOWQuLmZlOGFlYmYxMjBmODk3NWY5
N2I4ZDZkNzA4YjVkZGQwNDIwMDI1ODEgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvV2ViQ29yZS54Y29k
ZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJv
amVjdC5wYnhwcm9qCkBAIC01MzAxLDggKzUzMDEsOCBAQAogCQlGMzY0NEFGRjExMTk4MDU5MDBF
MEQ1MzcgLyogSW5qZWN0ZWRTY3JpcHQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gRjM2NDRBRkQxMTE5ODA1OTAwRTBENTM3IC8qIEluamVjdGVkU2Ny
aXB0LmNwcCAqLzsgfTsKIAkJRjM2NDRCMDAxMTE5ODA1OTAwRTBENTM3IC8qIEluamVjdGVkU2Ny
aXB0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGMzY0
NEFGRTExMTk4MDU5MDBFMEQ1MzcgLyogSW5qZWN0ZWRTY3JpcHQuaCAqLzsgfTsKIAkJRjM3NUND
MDcxMTUwRDMwMDAwOEREQjgxIC8qIEluc3BlY3RvcldvcmtlclJlc291cmNlLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGMzc1Q0MwNjExNTBEMzAwMDA4
RERCODEgLyogSW5zcGVjdG9yV29ya2VyUmVzb3VyY2UuaCAqLzsgfTsKLQkJRjNENDYxNDgxMTYx
RDUzMjAwQ0EwRDA5IC8qIEpTV29ya2VyQ29udGV4dEVycm9ySGFuZGxlci5jcHAgaW4gU291cmNl
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGM0Q0NjE0NjExNjFENTMyMDBD
QTBEMDkgLyogSlNXb3JrZXJDb250ZXh0RXJyb3JIYW5kbGVyLmNwcCAqLzsgfTsKLQkJRjNENDYx
NDkxMTYxRDUzMjAwQ0EwRDA5IC8qIEpTV29ya2VyQ29udGV4dEVycm9ySGFuZGxlci5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjNENDYxNDcxMTYxRDUz
MjAwQ0EwRDA5IC8qIEpTV29ya2VyQ29udGV4dEVycm9ySGFuZGxlci5oICovOyB9OworCQlGM0Q0
NjE0ODExNjFENTMyMDBDQTBEMDkgLyogSlNFcnJvckhhbmRsZXIuY3BwIGluIFNvdXJjZXMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjNENDYxNDYxMTYxRDUzMjAwQ0EwRDA5
IC8qIEpTRXJyb3JIYW5kbGVyLmNwcCAqLzsgfTsKKwkJRjNENDYxNDkxMTYxRDUzMjAwQ0EwRDA5
IC8qIEpTRXJyb3JIYW5kbGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSBGM0Q0NjE0NzExNjFENTMyMDBDQTBEMDkgLyogSlNFcnJvckhhbmRsZXIuaCAq
LzsgfTsKIAkJRjRFQUY0QUUxMEM3NDJCMTAwOTEwMEQzIC8qIE9wZW5UeXBlU2FuaXRpemVyLmNw
cCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY0RUFGNEFD
MTBDNzQyQjEwMDkxMDBEMyAvKiBPcGVuVHlwZVNhbml0aXplci5jcHAgKi87IH07CiAJCUY0RUFG
NEFGMTBDNzQyQjEwMDkxMDBEMyAvKiBPcGVuVHlwZVNhbml0aXplci5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjRFQUY0QUQxMEM3NDJCMTAwOTEwMEQz
IC8qIE9wZW5UeXBlU2FuaXRpemVyLmggKi87IH07CiAJCUY1QzA0MURBMEZGQ0E3Q0UwMDgzOUQ0
QSAvKiBIVE1MRGF0YUxpc3RFbGVtZW50LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IEY1QzA0MUQ3MEZGQ0E3Q0UwMDgzOUQ0QSAvKiBIVE1MRGF0YUxp
c3RFbGVtZW50LmNwcCAqLzsgfTsKQEAgLTExMTM1LDggKzExMTM1LDggQEAKIAkJRjM2NDRBRkQx
MTE5ODA1OTAwRTBENTM3IC8qIEluamVjdGVkU2NyaXB0LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLmNwcDsgcGF0aCA9IEluamVjdGVkU2NyaXB0LmNwcDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJRjM2NDRBRkUxMTE5ODA1OTAwRTBENTM3IC8qIEluamVjdGVkU2NyaXB0Lmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEluamVjdGVkU2NyaXB0Lmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUYzNzVDQzA2MTE1MEQzMDAwMDhEREI4MSAvKiBJbnNw
ZWN0b3JXb3JrZXJSZXNvdXJjZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBJ
bnNwZWN0b3JXb3JrZXJSZXNvdXJjZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQlG
M0Q0NjE0NjExNjFENTMyMDBDQTBEMDkgLyogSlNXb3JrZXJDb250ZXh0RXJyb3JIYW5kbGVyLmNw
cCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTV29ya2VyQ29udGV4dEVy
cm9ySGFuZGxlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUYzRDQ2MTQ3MTE2
MUQ1MzIwMENBMEQwOSAvKiBKU1dvcmtlckNvbnRleHRFcnJvckhhbmRsZXIuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNXb3JrZXJDb250ZXh0RXJyb3JIYW5kbGVyLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUYzRDQ2MTQ2MTE2MUQ1MzIwMENBMEQwOSAvKiBK
U0Vycm9ySGFuZGxlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBK
U0Vycm9ySGFuZGxlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUYzRDQ2MTQ3
MTE2MUQ1MzIwMENBMEQwOSAvKiBKU0Vycm9ySGFuZGxlci5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBKU0Vycm9ySGFuZGxlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQlGNEVBRjRBQzEwQzc0MkIxMDA5MTAwRDMgLyogT3BlblR5cGVTYW5pdGl6ZXIuY3BwICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gT3BlblR5cGVTYW5pdGl6ZXIuY3Bw
OyBwYXRoID0gb3BlbnR5cGUvT3BlblR5cGVTYW5pdGl6ZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQlGNEVBRjRBRDEwQzc0MkIxMDA5MTAwRDMgLyogT3BlblR5cGVTYW5pdGl6
ZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gT3BlblR5cGVTYW5pdGl6ZXIu
aDsgcGF0aCA9IG9wZW50eXBlL09wZW5UeXBlU2FuaXRpemVyLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCUY1MjNEMjNCMDJERTQzOTYwMTg2MzVDQSAvKiBIVE1MRG9jdW1lbnQuY3Bw
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBpbmRlbnRX
aWR0aCA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0g
SFRNTERvY3VtZW50LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgdGFiV2lkdGggPSA4OyB1
c2VzVGFicyA9IDA7IH07CkBAIC0xNjA2OCw2ICsxNjA2OCw4IEBACiAJCQkJQkNCRkI1M0IwRENE
MjlDRjAwMTlCM0U1IC8qIEpTRE9NV2luZG93U2hlbGwuaCAqLywKIAkJCQlCQzUzREFDNjExNDMz
MDY0MDAwRDgxN0UgLyogSlNET01XcmFwcGVyLmNwcCAqLywKIAkJCQk2NUUwRTk0MzExMzNDODlG
MDBCNENCMTAgLyogSlNET01XcmFwcGVyLmggKi8sCisJCQkJRjNENDYxNDYxMTYxRDUzMjAwQ0Ew
RDA5IC8qIEpTRXJyb3JIYW5kbGVyLmNwcCAqLywKKwkJCQlGM0Q0NjE0NzExNjFENTMyMDBDQTBE
MDkgLyogSlNFcnJvckhhbmRsZXIuaCAqLywKIAkJCQlCQzYwOTAxRTBFOTFCOEVDMDAwQzY4QjUg
LyogSlNFdmVudFRhcmdldC5jcHAgKi8sCiAJCQkJQkM2MDkwMUQwRTkxQjhFQzAwMEM2OEI1IC8q
IEpTRXZlbnRUYXJnZXQuaCAqLywKIAkJCQkzMzE0QUNFOTEwODkyMDg2MDAwRjBFNTYgLyogSlNF
eGNlcHRpb25CYXNlLmNwcCAqLywKQEAgLTE2MDgwLDggKzE2MDgyLDYgQEAKIAkJCQlCMjExMjdB
NTBCMzE4Njc3MDAwOUJFNTMgLyogSlNTVkdQT0RUeXBlV3JhcHBlci5oICovLAogCQkJCUUxQzM2
RDMyMEVCMEEwOTQwMDc0MTBCQyAvKiBKU1dvcmtlckNvbnRleHRCYXNlLmNwcCAqLywKIAkJCQlF
MUMzNkQzMzBFQjBBMDk0MDA3NDEwQkMgLyogSlNXb3JrZXJDb250ZXh0QmFzZS5oICovLAotCQkJ
CUYzRDQ2MTQ2MTE2MUQ1MzIwMENBMEQwOSAvKiBKU1dvcmtlckNvbnRleHRFcnJvckhhbmRsZXIu
Y3BwICovLAotCQkJCUYzRDQ2MTQ3MTE2MUQ1MzIwMENBMEQwOSAvKiBKU1dvcmtlckNvbnRleHRF
cnJvckhhbmRsZXIuaCAqLywKIAkJCQlCQ0EzNzhCQTBEMTVGNjQyMDBCNzkzRDYgLyogU2NoZWR1
bGVkQWN0aW9uLmNwcCAqLywKIAkJCQlCQ0EzNzhCQjBEMTVGNjQyMDBCNzkzRDYgLyogU2NoZWR1
bGVkQWN0aW9uLmggKi8sCiAJCQkJNDFGMUQyMUUwRUYzNUMyQTAwREE4NzUzIC8qIFNjcmlwdENh
Y2hlZEZyYW1lRGF0YS5jcHAgKi8sCkBAIC0xOTQwOSw3ICsxOTQwOSw3IEBACiAJCQkJRTFDQUE1
QzYwRThCRDIzNjAwQTczRUNBIC8qIEpTV29ya2VyLmggaW4gSGVhZGVycyAqLywKIAkJCQlFMTgy
NTY5MDBFRjJCMDJEMDA5MzMyNDIgLyogSlNXb3JrZXJDb250ZXh0LmggaW4gSGVhZGVycyAqLywK
IAkJCQlFMUMzNkQzNTBFQjBBMDk0MDA3NDEwQkMgLyogSlNXb3JrZXJDb250ZXh0QmFzZS5oIGlu
IEhlYWRlcnMgKi8sCi0JCQkJRjNENDYxNDkxMTYxRDUzMjAwQ0EwRDA5IC8qIEpTV29ya2VyQ29u
dGV4dEVycm9ySGFuZGxlci5oIGluIEhlYWRlcnMgKi8sCisJCQkJRjNENDYxNDkxMTYxRDUzMjAw
Q0EwRDA5IC8qIEpTRXJyb3JIYW5kbGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQlFMUMzNjJFRjBF
QUYyQUE5MDA3NDEwQkMgLyogSlNXb3JrZXJMb2NhdGlvbi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
RTEyNzFBNTgwRUVFQ0RFNDAwRjYxMjEzIC8qIEpTV29ya2VyTmF2aWdhdG9yLmggaW4gSGVhZGVy
cyAqLywKIAkJCQlCQzM0OEJENDBEQjdGODA0MDA0QUJBQjkgLyogSlNYTUxIdHRwUmVxdWVzdC5o
IGluIEhlYWRlcnMgKi8sCkBAIC0yMTk3Nyw3ICsyMTk3Nyw3IEBACiAJCQkJRTE4MjU2OEYwRUYy
QjAyRDAwOTMzMjQyIC8qIEpTV29ya2VyQ29udGV4dC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlF
MUMzNkQzNDBFQjBBMDk0MDA3NDEwQkMgLyogSlNXb3JrZXJDb250ZXh0QmFzZS5jcHAgaW4gU291
cmNlcyAqLywKIAkJCQlFMTgyNThBQzBFRjNDRDcwMDA5MzMyNDIgLyogSlNXb3JrZXJDb250ZXh0
Q3VzdG9tLmNwcCBpbiBTb3VyY2VzICovLAotCQkJCUYzRDQ2MTQ4MTE2MUQ1MzIwMENBMEQwOSAv
KiBKU1dvcmtlckNvbnRleHRFcnJvckhhbmRsZXIuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJRjNE
NDYxNDgxMTYxRDUzMjAwQ0EwRDA5IC8qIEpTRXJyb3JIYW5kbGVyLmNwcCBpbiBTb3VyY2VzICov
LAogCQkJCUUxQ0E1Q0JDMEU4Q0RDQUYwMEU4RUY5MCAvKiBKU1dvcmtlckN1c3RvbS5jcHAgaW4g
U291cmNlcyAqLywKIAkJCQlFMUMzNjJGMDBFQUYyQUE5MDA3NDEwQkMgLyogSlNXb3JrZXJMb2Nh
dGlvbi5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlFMTI3MUE1OTBFRUVDREU0MDBGNjEyMTMgLyog
SlNXb3JrZXJOYXZpZ2F0b3IuY3BwIGluIFNvdXJjZXMgKi8sCmRpZmYgLS1naXQgYS9XZWJDb3Jl
L2JpbmRpbmdzL2pzL0pTQmluZGluZ3NBbGxJbk9uZS5jcHAgYi9XZWJDb3JlL2JpbmRpbmdzL2pz
L0pTQmluZGluZ3NBbGxJbk9uZS5jcHAKaW5kZXggOTIyZTQ0OTcxOGMxNzQzYjYzY2MyN2UwM2Vj
NTI5YzM1ODFjOGI3MS4uMTRmOGE3OGFmNjk2NzJjZmI0MDdjMDRhMzA2M2VjYjE3YTQ2ZGMyNiAx
MDA2NDQKLS0tIGEvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0JpbmRpbmdzQWxsSW5PbmUuY3BwCisr
KyBiL1dlYkNvcmUvYmluZGluZ3MvanMvSlNCaW5kaW5nc0FsbEluT25lLmNwcApAQCAtNjMsNiAr
NjMsNyBAQAogI2luY2x1ZGUgIkpTRGV2aWNlT3JpZW50YXRpb25FdmVudEN1c3RvbS5jcHAiCiAj
aW5jbHVkZSAiSlNEb2N1bWVudEN1c3RvbS5jcHAiCiAjaW5jbHVkZSAiSlNFbGVtZW50Q3VzdG9t
LmNwcCIKKyNpbmNsdWRlICJKU0Vycm9ySGFuZGxlci5jcHAiCiAjaW5jbHVkZSAiSlNFdmVudEN1
c3RvbS5jcHAiCiAjaW5jbHVkZSAiSlNFdmVudExpc3RlbmVyLmNwcCIKICNpbmNsdWRlICJKU0V2
ZW50U291cmNlQ3VzdG9tLmNwcCIKQEAgLTEyOSw3ICsxMzAsNiBAQAogI2luY2x1ZGUgIkpTV2Vi
U29ja2V0Q3VzdG9tLmNwcCIKICNpbmNsdWRlICJKU1dvcmtlckNvbnRleHRCYXNlLmNwcCIKICNp
bmNsdWRlICJKU1dvcmtlckNvbnRleHRDdXN0b20uY3BwIgotI2luY2x1ZGUgIkpTV29ya2VyQ29u
dGV4dEVycm9ySGFuZGxlci5jcHAiCiAjaW5jbHVkZSAiSlNXb3JrZXJDdXN0b20uY3BwIgogI2lu
Y2x1ZGUgIkpTWE1MSHR0cFJlcXVlc3RDdXN0b20uY3BwIgogI2luY2x1ZGUgIkpTWE1MSHR0cFJl
cXVlc3RVcGxvYWRDdXN0b20uY3BwIgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9iaW5kaW5ncy9qcy9K
U1dvcmtlckNvbnRleHRFcnJvckhhbmRsZXIuY3BwIGIvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0Vy
cm9ySGFuZGxlci5jcHAKc2ltaWxhcml0eSBpbmRleCA4OSUKcmVuYW1lIGZyb20gV2ViQ29yZS9i
aW5kaW5ncy9qcy9KU1dvcmtlckNvbnRleHRFcnJvckhhbmRsZXIuY3BwCnJlbmFtZSB0byBXZWJD
b3JlL2JpbmRpbmdzL2pzL0pTRXJyb3JIYW5kbGVyLmNwcAppbmRleCBhZDNmNWVjMTdkM2I1ODBj
YjY4MDg4ZGViNjE5ZmY3MDhhNzJiNzRkLi44MjYxYzg0MWZiYWQzNTYxZWYzMzhlYmM2ODMxMGI0
MzBhMGU3ZDkzIDEwMDY0NAotLS0gYS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTV29ya2VyQ29udGV4
dEVycm9ySGFuZGxlci5jcHAKKysrIGIvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0Vycm9ySGFuZGxl
ci5jcHAKQEAgLTMwLDkgKzMwLDcgQEAKIAogI2luY2x1ZGUgImNvbmZpZy5oIgogCi0jaWYgRU5B
QkxFKFdPUktFUlMpCi0KLSNpbmNsdWRlICJKU1dvcmtlckNvbnRleHRFcnJvckhhbmRsZXIuaCIK
KyNpbmNsdWRlICJKU0Vycm9ySGFuZGxlci5oIgogCiAjaW5jbHVkZSAiRXJyb3JFdmVudC5oIgog
I2luY2x1ZGUgIkV2ZW50LmgiCkBAIC00MywxNiArNDEsMTYgQEAgdXNpbmcgbmFtZXNwYWNlIEpT
QzsKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1KU1dvcmtlckNvbnRleHRFcnJvckhhbmRsZXI6
OkpTV29ya2VyQ29udGV4dEVycm9ySGFuZGxlcihKU09iamVjdCogZnVuY3Rpb24sIEpTT2JqZWN0
KiB3cmFwcGVyLCBib29sIGlzQXR0cmlidXRlLCBET01XcmFwcGVyV29ybGQqIGlzb2xhdGVkV29y
bGQpCitKU0Vycm9ySGFuZGxlcjo6SlNFcnJvckhhbmRsZXIoSlNPYmplY3QqIGZ1bmN0aW9uLCBK
U09iamVjdCogd3JhcHBlciwgYm9vbCBpc0F0dHJpYnV0ZSwgRE9NV3JhcHBlcldvcmxkKiBpc29s
YXRlZFdvcmxkKQogICAgIDogSlNFdmVudExpc3RlbmVyKGZ1bmN0aW9uLCB3cmFwcGVyLCBpc0F0
dHJpYnV0ZSwgaXNvbGF0ZWRXb3JsZCkKIHsKIH0KIAotSlNXb3JrZXJDb250ZXh0RXJyb3JIYW5k
bGVyOjp+SlNXb3JrZXJDb250ZXh0RXJyb3JIYW5kbGVyKCkKK0pTRXJyb3JIYW5kbGVyOjp+SlNF
cnJvckhhbmRsZXIoKQogewogfQogCi12b2lkIEpTV29ya2VyQ29udGV4dEVycm9ySGFuZGxlcjo6
aGFuZGxlRXZlbnQoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogc2NyaXB0RXhlY3V0aW9uQ29udGV4
dCwgRXZlbnQqIGV2ZW50KQordm9pZCBKU0Vycm9ySGFuZGxlcjo6aGFuZGxlRXZlbnQoU2NyaXB0
RXhlY3V0aW9uQ29udGV4dCogc2NyaXB0RXhlY3V0aW9uQ29udGV4dCwgRXZlbnQqIGV2ZW50KQog
ewogICAgIEFTU0VSVChzY3JpcHRFeGVjdXRpb25Db250ZXh0KTsKICAgICBpZiAoIXNjcmlwdEV4
ZWN1dGlvbkNvbnRleHQpCkBAIC0xMTIsNSArMTEwLDMgQEAgdm9pZCBKU1dvcmtlckNvbnRleHRF
cnJvckhhbmRsZXI6OmhhbmRsZUV2ZW50KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIHNjcmlwdEV4
ZWMKIH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQotCi0jZW5kaWYgLy8gRU5BQkxFKFdPUktF
UlMpCmRpZmYgLS1naXQgYS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTV29ya2VyQ29udGV4dEVycm9y
SGFuZGxlci5oIGIvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0Vycm9ySGFuZGxlci5oCnNpbWlsYXJp
dHkgaW5kZXggNjklCmNvcHkgZnJvbSBXZWJDb3JlL2JpbmRpbmdzL2pzL0pTV29ya2VyQ29udGV4
dEVycm9ySGFuZGxlci5oCmNvcHkgdG8gV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0Vycm9ySGFuZGxl
ci5oCmluZGV4IGExODgyOTkwMzhjOWNkZmU3MjI4NmI3MWZlYWViM2E0OWMyYTBkODEuLjk1N2Zk
ODFkYWEwNTc0NjliMjExMmUxMWQ3ZTcwNGFkNGUyOWQ3ZWQgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUv
YmluZGluZ3MvanMvSlNXb3JrZXJDb250ZXh0RXJyb3JIYW5kbGVyLmgKKysrIGIvV2ViQ29yZS9i
aW5kaW5ncy9qcy9KU0Vycm9ySGFuZGxlci5oCkBAIC0yOCwzNyArMjgsMzcgQEAKICAqIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuCiAgKi8KIAotI2lmbmRlZiBKU1dvcmtlckNvbnRleHRFcnJvckhhbmRsZXJfaAotI2Rl
ZmluZSBKU1dvcmtlckNvbnRleHRFcnJvckhhbmRsZXJfaAorI2lmbmRlZiBKU0Vycm9ySGFuZGxl
cl9oCisjZGVmaW5lIEpTRXJyb3JIYW5kbGVyX2gKIAogI2luY2x1ZGUgIkpTRXZlbnRMaXN0ZW5l
ci5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLWNsYXNzIEpTV29ya2VyQ29udGV4dEVycm9y
SGFuZGxlciA6IHB1YmxpYyBKU0V2ZW50TGlzdGVuZXIgeworY2xhc3MgSlNFcnJvckhhbmRsZXIg
OiBwdWJsaWMgSlNFdmVudExpc3RlbmVyIHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUGFzc1JlZlB0
cjxKU1dvcmtlckNvbnRleHRFcnJvckhhbmRsZXI+IGNyZWF0ZShKU0M6OkpTT2JqZWN0KiBsaXN0
ZW5lciwgSlNDOjpKU09iamVjdCogd3JhcHBlciwgYm9vbCBpc0F0dHJpYnV0ZSwgRE9NV3JhcHBl
cldvcmxkKiBpc29sYXRlZFdvcmxkKQorICAgIHN0YXRpYyBQYXNzUmVmUHRyPEpTRXJyb3JIYW5k
bGVyPiBjcmVhdGUoSlNDOjpKU09iamVjdCogbGlzdGVuZXIsIEpTQzo6SlNPYmplY3QqIHdyYXBw
ZXIsIGJvb2wgaXNBdHRyaWJ1dGUsIERPTVdyYXBwZXJXb3JsZCogaXNvbGF0ZWRXb3JsZCkKICAg
ICB7Ci0gICAgICAgIHJldHVybiBhZG9wdFJlZihuZXcgSlNXb3JrZXJDb250ZXh0RXJyb3JIYW5k
bGVyKGxpc3RlbmVyLCB3cmFwcGVyLCBpc0F0dHJpYnV0ZSwgaXNvbGF0ZWRXb3JsZCkpOworICAg
ICAgICByZXR1cm4gYWRvcHRSZWYobmV3IEpTRXJyb3JIYW5kbGVyKGxpc3RlbmVyLCB3cmFwcGVy
LCBpc0F0dHJpYnV0ZSwgaXNvbGF0ZWRXb3JsZCkpOwogICAgIH0KIAotICAgIHZpcnR1YWwgfkpT
V29ya2VyQ29udGV4dEVycm9ySGFuZGxlcigpOworICAgIHZpcnR1YWwgfkpTRXJyb3JIYW5kbGVy
KCk7CiAKIHByaXZhdGU6Ci0gICAgSlNXb3JrZXJDb250ZXh0RXJyb3JIYW5kbGVyKEpTQzo6SlNP
YmplY3QqIGZ1bmN0aW9uLCBKU0M6OkpTT2JqZWN0KiB3cmFwcGVyLCBib29sIGlzQXR0cmlidXRl
LCBET01XcmFwcGVyV29ybGQqIGlzb2xhdGVkV29ybGQpOworICAgIEpTRXJyb3JIYW5kbGVyKEpT
Qzo6SlNPYmplY3QqIGZ1bmN0aW9uLCBKU0M6OkpTT2JqZWN0KiB3cmFwcGVyLCBib29sIGlzQXR0
cmlidXRlLCBET01XcmFwcGVyV29ybGQqIGlzb2xhdGVkV29ybGQpOwogICAgIHZpcnR1YWwgdm9p
ZCBoYW5kbGVFdmVudChTY3JpcHRFeGVjdXRpb25Db250ZXh0KiwgRXZlbnQqKTsKIH07CiAKIC8v
IENyZWF0ZXMgYSBKUyBFdmVudExpc3RlbmVyIGZvciAib25lcnJvciIgZXZlbnQgaGFuZGxlciBp
biB3b3JrZXIgY29udGV4dC4gSXQgaGFzIGN1c3RvbSBpbXBsZW1lbnRhdGlvbiBiZWNhdXNlCiAv
LyB1bmxpa2Ugb3RoZXIgZXZlbnQgbGlzdGVuZXJzIGl0IGFjY2VwdHMgdGhyZWUgcGFyYW1ldGVy
cy4KLWlubGluZSBQYXNzUmVmUHRyPEpTV29ya2VyQ29udGV4dEVycm9ySGFuZGxlcj4gY3JlYXRl
SlNXb3JrZXJDb250ZXh0RXJyb3JIYW5kbGVyKEpTQzo6RXhlY1N0YXRlKiBleGVjLCBKU0M6OkpT
VmFsdWUgbGlzdGVuZXIsIEpTQzo6SlNPYmplY3QqIHdyYXBwZXIpCitpbmxpbmUgUGFzc1JlZlB0
cjxKU0Vycm9ySGFuZGxlcj4gY3JlYXRlSlNFcnJvckhhbmRsZXIoSlNDOjpFeGVjU3RhdGUqIGV4
ZWMsIEpTQzo6SlNWYWx1ZSBsaXN0ZW5lciwgSlNDOjpKU09iamVjdCogd3JhcHBlcikKIHsKICAg
ICBpZiAoIWxpc3RlbmVyLmlzT2JqZWN0KCkpCiAgICAgICAgIHJldHVybiAwOwogCi0gICAgcmV0
dXJuIEpTV29ya2VyQ29udGV4dEVycm9ySGFuZGxlcjo6Y3JlYXRlKGFzT2JqZWN0KGxpc3RlbmVy
KSwgd3JhcHBlciwgdHJ1ZSwgY3VycmVudFdvcmxkKGV4ZWMpKTsKKyAgICByZXR1cm4gSlNFcnJv
ckhhbmRsZXI6OmNyZWF0ZShhc09iamVjdChsaXN0ZW5lciksIHdyYXBwZXIsIHRydWUsIGN1cnJl
bnRXb3JsZChleGVjKSk7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAotI2VuZGlmIC8v
IEpTV29ya2VyQ29udGV4dEVycm9ySGFuZGxlcl9oCisjZW5kaWYgLy8gSlNFcnJvckhhbmRsZXJf
aApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5w
bSBiL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG0KaW5kZXggODRl
MzkxOTA1ZjU2MjU1ODUzMjcxODAxYThkYWYzMTU3YTAyZTYxNi4uOGQzNTAzZTgxMTgyMTQ4OTk0
M2UzZWQ4NzE0NmYyODBiZDVjOThkMiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9iaW5kaW5ncy9zY3Jp
cHRzL0NvZGVHZW5lcmF0b3JKUy5wbQorKysgYi9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29k
ZUdlbmVyYXRvckpTLnBtCkBAIC0xNzA5LDkgKzE3MDksOSBAQCBzdWIgR2VuZXJhdGVJbXBsZW1l
bnRhdGlvbgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVu
dCwgIiAgICBKU0RPTUdsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0ID0gY2FzdGVkVGhpcy0+Z2xv
YmFsT2JqZWN0KCk7XG4iKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgJGltcGxDbGFzc05h
bWUqIGltcCA9IHN0YXRpY19jYXN0PCRpbXBsQ2xhc3NOYW1lKj4oc3RhdGljX2Nhc3Q8JGNsYXNz
TmFtZSo+KHRoaXNPYmplY3QpLT5pbXBsKCkpO1xuIik7Ci0gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgaWYgKCRpbnRlcmZhY2VOYW1lIGVxICJXb3JrZXJDb250ZXh0IiBhbmQgJG5hbWUgZXEg
Im9uZXJyb3IiKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRpbXBsSW5jbHVk
ZXN7IkpTV29ya2VyQ29udGV4dEVycm9ySGFuZGxlci5oIn0gPSAxOwotICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICBpbXAtPnNldCRpbXBsU2V0
dGVyRnVuY3Rpb25OYW1lKGNyZWF0ZUpTV29ya2VyQ29udGV4dEVycm9ySGFuZGxlcihleGVjLCB2
YWx1ZSwgdGhpc09iamVjdCkpO1xuIik7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYg
KCgoJGludGVyZmFjZU5hbWUgZXEgIkRPTVdpbmRvdyIpIG9yICgkaW50ZXJmYWNlTmFtZSBlcSAi
V29ya2VyQ29udGV4dCIpKSBhbmQgJG5hbWUgZXEgIm9uZXJyb3IiKSB7CisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICRpbXBsSW5jbHVkZXN7IkpTRXJyb3JIYW5kbGVyLmgifSA9IDE7
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAg
IGltcC0+c2V0JGltcGxTZXR0ZXJGdW5jdGlvbk5hbWUoY3JlYXRlSlNFcnJvckhhbmRsZXIoZXhl
YywgdmFsdWUsIHRoaXNPYmplY3QpKTtcbiIpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAg
IH0gZWxzZSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHB1c2goQGltcGxDb250
ZW50LCBHZW5lcmF0ZUF0dHJpYnV0ZUV2ZW50TGlzdGVuZXJDYWxsKCRjbGFzc05hbWUsICRpbXBs
U2V0dGVyRnVuY3Rpb25OYW1lLCAkd2luZG93RXZlbnRMaXN0ZW5lcikpOwogICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIH0KZGlmZiAtLWdpdCBhL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9D
b2RlR2VuZXJhdG9yVjgucG0gYi9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRv
clY4LnBtCm9sZCBtb2RlIDEwMDY0NApuZXcgbW9kZSAxMDA3NTUKaW5kZXggNTY4MzhjYTJlYmVm
YzBjMzFmMmM3YTcyZDVhYjYyMDE4ZGM3NzMzMy4uYWQ1M2EwNGU1YWVkNmJiZjgwYmU2N2UwZTRi
ZmNlYjQzNGFjMzkyMgotLS0gYS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRv
clY4LnBtCisrKyBiL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9yVjgucG0K
QEAgLTkxNyw2ICs5MTcsMTAgQEAgRU5ECiAgICAgICAgICAgICAgICAgJGltcGxJbmNsdWRlc3si
VjhFdmVudExpc3RlbmVyTGlzdC5oIn0gPSAxOwogICAgICAgICAgICAgICAgICRpbXBsSW5jbHVk
ZXN7IlY4V29ya2VyQ29udGV4dEVycm9ySGFuZGxlci5oIn0gPSAxOwogICAgICAgICAgICAgICAg
IHB1c2goQGltcGxDb250ZW50RGVjbHMsICIgICAgaW1wLT5zZXQkaW1wbFNldHRlckZ1bmN0aW9u
TmFtZShWOEV2ZW50TGlzdGVuZXJMaXN0OjpmaW5kT3JDcmVhdGVXcmFwcGVyPFY4V29ya2VyQ29u
dGV4dEVycm9ySGFuZGxlcj4odmFsdWUsIHRydWUpIik7CisgICAgICAgICAgICB9IGVsc2lmICgk
aW50ZXJmYWNlTmFtZSBlcSAiRE9NV2luZG93IiBhbmQgJGF0dHJpYnV0ZS0+c2lnbmF0dXJlLT5u
YW1lIGVxICJvbmVycm9yIikgeworICAgICAgICAgICAgICAgICRpbXBsSW5jbHVkZXN7IlY4RXZl
bnRMaXN0ZW5lckxpc3QuaCJ9ID0gMTsKKyAgICAgICAgICAgICAgICAkaW1wbEluY2x1ZGVzeyJW
OFdpbmRvd0Vycm9ySGFuZGxlci5oIn0gPSAxOworICAgICAgICAgICAgICAgIHB1c2goQGltcGxD
b250ZW50RGVjbHMsICIgICAgaW1wLT5zZXQkaW1wbFNldHRlckZ1bmN0aW9uTmFtZShWOEV2ZW50
TGlzdGVuZXJMaXN0OjpmaW5kT3JDcmVhdGVXcmFwcGVyPFY4V2luZG93RXJyb3JIYW5kbGVyPih2
YWx1ZSwgdHJ1ZSkiKTsKICAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICAgcHVz
aChAaW1wbENvbnRlbnREZWNscywgIiAgICBpbXAtPnNldCRpbXBsU2V0dGVyRnVuY3Rpb25OYW1l
KFY4RE9NV3JhcHBlcjo6Z2V0RXZlbnRMaXN0ZW5lcih2YWx1ZSwgdHJ1ZSwgTGlzdGVuZXJGaW5k
T3JDcmVhdGUpIik7CiAgICAgICAgICAgICB9CmRpZmYgLS1naXQgYS9XZWJDb3JlL2JpbmRpbmdz
L3Y4L1Y4Q29uc29sZU1lc3NhZ2UuY3BwIGIvV2ViQ29yZS9iaW5kaW5ncy92OC9WOENvbnNvbGVN
ZXNzYWdlLmNwcAppbmRleCA4YjZiYjE3ODZhODVjNzliY2YwMmZkZGU4NTQxNjUxN2QxZDFhODcz
Li5mZjEyODgxNWExMjQ2OGFlNjM1MWFlMjI4NjY0ZDIwNDRkNjNhNDkyIDEwMDY0NAotLS0gYS9X
ZWJDb3JlL2JpbmRpbmdzL3Y4L1Y4Q29uc29sZU1lc3NhZ2UuY3BwCisrKyBiL1dlYkNvcmUvYmlu
ZGluZ3MvdjgvVjhDb25zb2xlTWVzc2FnZS5jcHAKQEAgLTUzLDcgKzUzLDcgQEAgVjhDb25zb2xl
TWVzc2FnZTo6VjhDb25zb2xlTWVzc2FnZShjb25zdCBTdHJpbmcmIHN0cmluZywgY29uc3QgU3Ry
aW5nJiBzb3VyY2VJRCwKIAogdm9pZCBWOENvbnNvbGVNZXNzYWdlOjpkaXNwYXRjaE5vdyhQYWdl
KiBwYWdlKQogewotICAgIGRpc3BhdGNoTm93KHBhZ2UsIDApOworICAgIGRpc3BhdGNoTm93KHBh
Z2UsIDAsIDApOwogfQogCiB2b2lkIFY4Q29uc29sZU1lc3NhZ2U6OmRpc3BhdGNoTGF0ZXIoKQpA
QCAtMTI1LDE2ICsxMjUsMjAgQEAgdm9pZCBWOENvbnNvbGVNZXNzYWdlOjpoYW5kbGVyKHY4OjpI
YW5kbGU8djg6Ok1lc3NhZ2U+IG1lc3NhZ2UsIHY4OjpIYW5kbGU8djg6OlYKICAgICBib29sIHVz
ZVVSTCA9IHJlc291cmNlTmFtZS5Jc0VtcHR5KCkgfHwgIXJlc291cmNlTmFtZS0+SXNTdHJpbmco
KTsKICAgICBTdHJpbmcgcmVzb3VyY2VOYW1lU3RyaW5nID0gdXNlVVJMID8gZnJhbWUtPmRvY3Vt
ZW50KCktPnVybCgpIDogdG9XZWJDb3JlU3RyaW5nKHJlc291cmNlTmFtZSk7CiAgICAgVjhDb25z
b2xlTWVzc2FnZSBjb25zb2xlTWVzc2FnZShlcnJvck1lc3NhZ2UsIHJlc291cmNlTmFtZVN0cmlu
ZywgbWVzc2FnZS0+R2V0TGluZU51bWJlcigpKTsKLSAgICBjb25zb2xlTWVzc2FnZS5kaXNwYXRj
aE5vdyhwYWdlLCBjYWxsU3RhY2suZ2V0KCkpOworICAgIGNvbnNvbGVNZXNzYWdlLmRpc3BhdGNo
Tm93KHBhZ2UsIGZyYW1lLCBjYWxsU3RhY2suZ2V0KCkpOwogfQogCi12b2lkIFY4Q29uc29sZU1l
c3NhZ2U6OmRpc3BhdGNoTm93KFBhZ2UqIHBhZ2UsIFNjcmlwdENhbGxTdGFjayogY2FsbFN0YWNr
KQordm9pZCBWOENvbnNvbGVNZXNzYWdlOjpkaXNwYXRjaE5vdyhQYWdlKiBwYWdlLCBGcmFtZSog
ZnJhbWUsIFNjcmlwdENhbGxTdGFjayogY2FsbFN0YWNrKQogewogICAgIEFTU0VSVChwYWdlKTsK
IAogICAgIC8vIFByb2Nlc3MgYW55IGRlbGF5ZWQgbWVzc2FnZXMgdG8gbWFrZSBzdXJlIHRoYXQg
bWVzc2FnZXMKICAgICAvLyBhcHBlYXIgaW4gdGhlIHJpZ2h0IG9yZGVyIGluIHRoZSBjb25zb2xl
LgogICAgIHByb2Nlc3NEZWxheWVkKCk7CisgICAgCisgICAgRG9jdW1lbnQqIGRvYyA9IGZyYW1l
LT5kb2N1bWVudCgpOworICAgIGlmIChkb2MtPmludm9rZU9uRXJyb3JIYW5kbGVyKGZyYW1lLT5k
b21XaW5kb3coKS0+b25lcnJvcigpLCBtX3N0cmluZywgbV9saW5lTnVtYmVyLCBtX3NvdXJjZUlE
KSkKKyAgICAgICAgcmV0dXJuOwogCiAgICAgQ29uc29sZSogY29uc29sZSA9IHBhZ2UtPm1haW5G
cmFtZSgpLT5kb21XaW5kb3coKS0+Y29uc29sZSgpOwogICAgIE1lc3NhZ2VUeXBlIG1lc3NhZ2VU
eXBlID0gY2FsbFN0YWNrID8gVW5jYXVnaHRFeGNlcHRpb25NZXNzYWdlVHlwZSA6IExvZ01lc3Nh
Z2VUeXBlOwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9iaW5kaW5ncy92OC9WOENvbnNvbGVNZXNzYWdl
LmggYi9XZWJDb3JlL2JpbmRpbmdzL3Y4L1Y4Q29uc29sZU1lc3NhZ2UuaAppbmRleCAzODdiNWVl
MzRiNTY4ZTY4M2Y0Y2U3ZWVhZWYxNGMyNmIxNTY3ZTUzLi5mZWQ1NTNmYzBmMTQ5YTY1ZmEyNDBk
YWM1ZmMwZTViNzBkMzBjMGYyIDEwMDY0NAotLS0gYS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1Y4Q29u
c29sZU1lc3NhZ2UuaAorKysgYi9XZWJDb3JlL2JpbmRpbmdzL3Y4L1Y4Q29uc29sZU1lc3NhZ2Uu
aApAQCAtMzcsNiArMzcsNyBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKKyAgICBjbGFzcyBG
cmFtZTsKICAgICBjbGFzcyBQYWdlOwogICAgIGNsYXNzIFNjcmlwdENhbGxTdGFjazsKIApAQCAt
ODEsNyArODIsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIGNvbnN0IFN0cmluZyBt
X3NvdXJjZUlEOwogICAgICAgICBjb25zdCB1bnNpZ25lZCBtX2xpbmVOdW1iZXI7CiAKLSAgICAg
ICAgdm9pZCBkaXNwYXRjaE5vdyhQYWdlKiwgU2NyaXB0Q2FsbFN0YWNrKik7CisgICAgICAgIHZv
aWQgZGlzcGF0Y2hOb3coUGFnZSosIEZyYW1lKiwgU2NyaXB0Q2FsbFN0YWNrKik7CiAKICAgICAg
ICAgLy8gQWxsIGRlbGF5ZWQgbWVzc2FnZXMgYXJlIHN0b3JlZCBpbiB0aGlzIHZlY3Rvci4gSWYg
dGhlIHZlY3RvcgogICAgICAgICAvLyBpcyAwLCB0aGVyZSBhcmUgbm8gZGVsYXllZCBtZXNzYWdl
cy4KZGlmZiAtLWdpdCBhL1dlYkNvcmUvYmluZGluZ3MvanMvSlNXb3JrZXJDb250ZXh0RXJyb3JI
YW5kbGVyLmggYi9XZWJDb3JlL2JpbmRpbmdzL3Y4L1Y4V2luZG93RXJyb3JIYW5kbGVyLmNwcApv
bGQgbW9kZSAxMDA2NDQKbmV3IG1vZGUgMTAwNzU1CnNpbWlsYXJpdHkgaW5kZXggNTYlCmNvcHkg
ZnJvbSBXZWJDb3JlL2JpbmRpbmdzL2pzL0pTV29ya2VyQ29udGV4dEVycm9ySGFuZGxlci5oCmNv
cHkgdG8gV2ViQ29yZS9iaW5kaW5ncy92OC9WOFdpbmRvd0Vycm9ySGFuZGxlci5jcHAKaW5kZXgg
YTE4ODI5OTAzOGM5Y2RmZTcyMjg2YjcxZmVhZWIzYTQ5YzJhMGQ4MS4uY2Y2NmJmYTEwOTFkNTFh
ZTkwZjY4OWExMjQ3Y2Q4OTE1OTc5NjNjNAotLS0gYS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTV29y
a2VyQ29udGV4dEVycm9ySGFuZGxlci5oCisrKyBiL1dlYkNvcmUvYmluZGluZ3MvdjgvVjhXaW5k
b3dFcnJvckhhbmRsZXIuY3BwCkBAIC0yOCwzNyArMjgsMzUgQEAKICAqIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCiAg
Ki8KIAotI2lmbmRlZiBKU1dvcmtlckNvbnRleHRFcnJvckhhbmRsZXJfaAotI2RlZmluZSBKU1dv
cmtlckNvbnRleHRFcnJvckhhbmRsZXJfaAorI2luY2x1ZGUgImNvbmZpZy5oIgogCi0jaW5jbHVk
ZSAiSlNFdmVudExpc3RlbmVyLmgiCisjaW5jbHVkZSAiVjhXaW5kb3dFcnJvckhhbmRsZXIuaCIK
IAotbmFtZXNwYWNlIFdlYkNvcmUgewotCi1jbGFzcyBKU1dvcmtlckNvbnRleHRFcnJvckhhbmRs
ZXIgOiBwdWJsaWMgSlNFdmVudExpc3RlbmVyIHsKLXB1YmxpYzoKLSAgICBzdGF0aWMgUGFzc1Jl
ZlB0cjxKU1dvcmtlckNvbnRleHRFcnJvckhhbmRsZXI+IGNyZWF0ZShKU0M6OkpTT2JqZWN0KiBs
aXN0ZW5lciwgSlNDOjpKU09iamVjdCogd3JhcHBlciwgYm9vbCBpc0F0dHJpYnV0ZSwgRE9NV3Jh
cHBlcldvcmxkKiBpc29sYXRlZFdvcmxkKQotICAgIHsKLSAgICAgICAgcmV0dXJuIGFkb3B0UmVm
KG5ldyBKU1dvcmtlckNvbnRleHRFcnJvckhhbmRsZXIobGlzdGVuZXIsIHdyYXBwZXIsIGlzQXR0
cmlidXRlLCBpc29sYXRlZFdvcmxkKSk7Ci0gICAgfQorI2luY2x1ZGUgIkVycm9yRXZlbnQuaCIK
KyNpbmNsdWRlICJWOEJpbmRpbmcuaCIKIAotICAgIHZpcnR1YWwgfkpTV29ya2VyQ29udGV4dEVy
cm9ySGFuZGxlcigpOwotCi1wcml2YXRlOgotICAgIEpTV29ya2VyQ29udGV4dEVycm9ySGFuZGxl
cihKU0M6OkpTT2JqZWN0KiBmdW5jdGlvbiwgSlNDOjpKU09iamVjdCogd3JhcHBlciwgYm9vbCBp
c0F0dHJpYnV0ZSwgRE9NV3JhcHBlcldvcmxkKiBpc29sYXRlZFdvcmxkKTsKLSAgICB2aXJ0dWFs
IHZvaWQgaGFuZGxlRXZlbnQoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIEV2ZW50Kik7Ci19Owor
bmFtZXNwYWNlIFdlYkNvcmUgewogCi0vLyBDcmVhdGVzIGEgSlMgRXZlbnRMaXN0ZW5lciBmb3Ig
Im9uZXJyb3IiIGV2ZW50IGhhbmRsZXIgaW4gd29ya2VyIGNvbnRleHQuIEl0IGhhcyBjdXN0b20g
aW1wbGVtZW50YXRpb24gYmVjYXVzZQotLy8gdW5saWtlIG90aGVyIGV2ZW50IGxpc3RlbmVycyBp
dCBhY2NlcHRzIHRocmVlIHBhcmFtZXRlcnMuCi1pbmxpbmUgUGFzc1JlZlB0cjxKU1dvcmtlckNv
bnRleHRFcnJvckhhbmRsZXI+IGNyZWF0ZUpTV29ya2VyQ29udGV4dEVycm9ySGFuZGxlcihKU0M6
OkV4ZWNTdGF0ZSogZXhlYywgSlNDOjpKU1ZhbHVlIGxpc3RlbmVyLCBKU0M6OkpTT2JqZWN0KiB3
cmFwcGVyKQorVjhXaW5kb3dFcnJvckhhbmRsZXI6OlY4V2luZG93RXJyb3JIYW5kbGVyKHY4OjpM
b2NhbDx2ODo6T2JqZWN0PiBsaXN0ZW5lciwgYm9vbCBpc0lubGluZSwgY29uc3QgV29ybGRDb250
ZXh0SGFuZGxlJiB3b3JsZENvbnRleHQpCisgICAgOiBWOEV2ZW50TGlzdGVuZXIobGlzdGVuZXIs
IGlzSW5saW5lLCB3b3JsZENvbnRleHQpCiB7Ci0gICAgaWYgKCFsaXN0ZW5lci5pc09iamVjdCgp
KQotICAgICAgICByZXR1cm4gMDsKK30KIAotICAgIHJldHVybiBKU1dvcmtlckNvbnRleHRFcnJv
ckhhbmRsZXI6OmNyZWF0ZShhc09iamVjdChsaXN0ZW5lciksIHdyYXBwZXIsIHRydWUsIGN1cnJl
bnRXb3JsZChleGVjKSk7Cit2ODo6TG9jYWw8djg6OlZhbHVlPiBWOFdpbmRvd0Vycm9ySGFuZGxl
cjo6Y2FsbExpc3RlbmVyRnVuY3Rpb24oU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCwg
djg6OkhhbmRsZTx2ODo6VmFsdWU+IGpzRXZlbnQsIEV2ZW50KiBldmVudCkKK3sKKyAgICBBU1NF
UlQoZXZlbnQtPmlzRXJyb3JFdmVudCgpKTsKKyAgICB2ODo6TG9jYWw8djg6Ok9iamVjdD4gbGlz
dGVuZXIgPSBnZXRMaXN0ZW5lck9iamVjdChjb250ZXh0KTsKKyAgICB2ODo6TG9jYWw8djg6OlZh
bHVlPiByZXR1cm5WYWx1ZTsKKyAgICBpZiAoIWxpc3RlbmVyLklzRW1wdHkoKSAmJiBsaXN0ZW5l
ci0+SXNGdW5jdGlvbigpKSB7CisgICAgICAgIEVycm9yRXZlbnQqIGVycm9yRXZlbnQgPSBzdGF0
aWNfY2FzdDxFcnJvckV2ZW50Kj4oZXZlbnQpOworICAgICAgICB2ODo6TG9jYWw8djg6OkZ1bmN0
aW9uPiBjYWxsRnVuY3Rpb24gPSB2ODo6TG9jYWw8djg6OkZ1bmN0aW9uPjo6Q2FzdChsaXN0ZW5l
cik7CisgICAgICAgIHY4OjpMb2NhbDx2ODo6T2JqZWN0PiB0aGlzVmFsdWUgPSB2ODo6Q29udGV4
dDo6R2V0Q3VycmVudCgpLT5HbG9iYWwoKTsKKyAgICAgICAgdjg6OkhhbmRsZTx2ODo6VmFsdWU+
IHBhcmFtZXRlcnNbM10gPSB7IHY4U3RyaW5nKGVycm9yRXZlbnQtPm1lc3NhZ2UoKSksIHY4U3Ry
aW5nKGVycm9yRXZlbnQtPmZpbGVuYW1lKCkpLCB2ODo6SW50ZWdlcjo6TmV3KGVycm9yRXZlbnQt
PmxpbmVubygpKSB9OworICAgICAgICByZXR1cm5WYWx1ZSA9IGNhbGxGdW5jdGlvbi0+Q2FsbCh0
aGlzVmFsdWUsIDMsIHBhcmFtZXRlcnMpOworICAgICAgICBpZiAoIXJldHVyblZhbHVlLklzRW1w
dHkoKSAmJiByZXR1cm5WYWx1ZS0+SXNCb29sZWFuKCkgJiYgIXJldHVyblZhbHVlLT5Cb29sZWFu
VmFsdWUoKSkKKyAgICAgICAgICAgIGV2ZW50LT5wcmV2ZW50RGVmYXVsdCgpOworICAgIH0KKyAg
ICByZXR1cm4gcmV0dXJuVmFsdWU7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKLQotI2Vu
ZGlmIC8vIEpTV29ya2VyQ29udGV4dEVycm9ySGFuZGxlcl9oCmRpZmYgLS1naXQgYS9XZWJDb3Jl
L2JpbmRpbmdzL2pzL0pTV29ya2VyQ29udGV4dEVycm9ySGFuZGxlci5oIGIvV2ViQ29yZS9iaW5k
aW5ncy92OC9WOFdpbmRvd0Vycm9ySGFuZGxlci5oCm9sZCBtb2RlIDEwMDY0NApuZXcgbW9kZSAx
MDA3NTUKc2ltaWxhcml0eSBpbmRleCA1OCUKcmVuYW1lIGZyb20gV2ViQ29yZS9iaW5kaW5ncy9q
cy9KU1dvcmtlckNvbnRleHRFcnJvckhhbmRsZXIuaApyZW5hbWUgdG8gV2ViQ29yZS9iaW5kaW5n
cy92OC9WOFdpbmRvd0Vycm9ySGFuZGxlci5oCmluZGV4IGExODgyOTkwMzhjOWNkZmU3MjI4NmI3
MWZlYWViM2E0OWMyYTBkODEuLjE2N2NhMGQ3ZGY0ODYxZTExNGYzYTJkNjYzM2E3NDIxMGJmNjhm
OWMKLS0tIGEvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1dvcmtlckNvbnRleHRFcnJvckhhbmRsZXIu
aAorKysgYi9XZWJDb3JlL2JpbmRpbmdzL3Y4L1Y4V2luZG93RXJyb3JIYW5kbGVyLmgKQEAgLTI4
LDM3ICsyOCwyOCBAQAogICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KICAqLwogCi0jaWZuZGVmIEpTV29ya2VyQ29u
dGV4dEVycm9ySGFuZGxlcl9oCi0jZGVmaW5lIEpTV29ya2VyQ29udGV4dEVycm9ySGFuZGxlcl9o
CisjaWZuZGVmIFY4V2luZG93RXJyb3JIYW5kbGVyX2gKKyNkZWZpbmUgVjhXaW5kb3dFcnJvckhh
bmRsZXJfaAogCi0jaW5jbHVkZSAiSlNFdmVudExpc3RlbmVyLmgiCisjaW5jbHVkZSAiVjhDdXN0
b21FdmVudExpc3RlbmVyLmgiCisjaW5jbHVkZSA8djguaD4KKyNpbmNsdWRlIDx3dGYvUGFzc1Jl
ZlB0ci5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLWNsYXNzIEpTV29ya2VyQ29udGV4dEVy
cm9ySGFuZGxlciA6IHB1YmxpYyBKU0V2ZW50TGlzdGVuZXIgeworY2xhc3MgVjhXaW5kb3dFcnJv
ckhhbmRsZXIgOiBwdWJsaWMgVjhFdmVudExpc3RlbmVyIHsKIHB1YmxpYzoKLSAgICBzdGF0aWMg
UGFzc1JlZlB0cjxKU1dvcmtlckNvbnRleHRFcnJvckhhbmRsZXI+IGNyZWF0ZShKU0M6OkpTT2Jq
ZWN0KiBsaXN0ZW5lciwgSlNDOjpKU09iamVjdCogd3JhcHBlciwgYm9vbCBpc0F0dHJpYnV0ZSwg
RE9NV3JhcHBlcldvcmxkKiBpc29sYXRlZFdvcmxkKQorICAgIHN0YXRpYyBQYXNzUmVmUHRyPFY4
V2luZG93RXJyb3JIYW5kbGVyPiBjcmVhdGUodjg6OkxvY2FsPHY4OjpPYmplY3Q+IGxpc3RlbmVy
LCBib29sIGlzSW5saW5lLCBjb25zdCBXb3JsZENvbnRleHRIYW5kbGUmIHdvcmxkQ29udGV4dCkK
ICAgICB7Ci0gICAgICAgIHJldHVybiBhZG9wdFJlZihuZXcgSlNXb3JrZXJDb250ZXh0RXJyb3JI
YW5kbGVyKGxpc3RlbmVyLCB3cmFwcGVyLCBpc0F0dHJpYnV0ZSwgaXNvbGF0ZWRXb3JsZCkpOwor
ICAgICAgICByZXR1cm4gYWRvcHRSZWYobmV3IFY4V2luZG93RXJyb3JIYW5kbGVyKGxpc3RlbmVy
LCBpc0lubGluZSwgd29ybGRDb250ZXh0KSk7CiAgICAgfQogCi0gICAgdmlydHVhbCB+SlNXb3Jr
ZXJDb250ZXh0RXJyb3JIYW5kbGVyKCk7Ci0KIHByaXZhdGU6Ci0gICAgSlNXb3JrZXJDb250ZXh0
RXJyb3JIYW5kbGVyKEpTQzo6SlNPYmplY3QqIGZ1bmN0aW9uLCBKU0M6OkpTT2JqZWN0KiB3cmFw
cGVyLCBib29sIGlzQXR0cmlidXRlLCBET01XcmFwcGVyV29ybGQqIGlzb2xhdGVkV29ybGQpOwot
ICAgIHZpcnR1YWwgdm9pZCBoYW5kbGVFdmVudChTY3JpcHRFeGVjdXRpb25Db250ZXh0KiwgRXZl
bnQqKTsKLX07CisgICAgVjhXaW5kb3dFcnJvckhhbmRsZXIodjg6OkxvY2FsPHY4OjpPYmplY3Q+
IGxpc3RlbmVyLCBib29sIGlzSW5saW5lLCBjb25zdCBXb3JsZENvbnRleHRIYW5kbGUmIHdvcmxk
Q29udGV4dCk7CiAKLS8vIENyZWF0ZXMgYSBKUyBFdmVudExpc3RlbmVyIGZvciAib25lcnJvciIg
ZXZlbnQgaGFuZGxlciBpbiB3b3JrZXIgY29udGV4dC4gSXQgaGFzIGN1c3RvbSBpbXBsZW1lbnRh
dGlvbiBiZWNhdXNlCi0vLyB1bmxpa2Ugb3RoZXIgZXZlbnQgbGlzdGVuZXJzIGl0IGFjY2VwdHMg
dGhyZWUgcGFyYW1ldGVycy4KLWlubGluZSBQYXNzUmVmUHRyPEpTV29ya2VyQ29udGV4dEVycm9y
SGFuZGxlcj4gY3JlYXRlSlNXb3JrZXJDb250ZXh0RXJyb3JIYW5kbGVyKEpTQzo6RXhlY1N0YXRl
KiBleGVjLCBKU0M6OkpTVmFsdWUgbGlzdGVuZXIsIEpTQzo6SlNPYmplY3QqIHdyYXBwZXIpCi17
Ci0gICAgaWYgKCFsaXN0ZW5lci5pc09iamVjdCgpKQotICAgICAgICByZXR1cm4gMDsKLQotICAg
IHJldHVybiBKU1dvcmtlckNvbnRleHRFcnJvckhhbmRsZXI6OmNyZWF0ZShhc09iamVjdChsaXN0
ZW5lciksIHdyYXBwZXIsIHRydWUsIGN1cnJlbnRXb3JsZChleGVjKSk7Ci19CisgICAgdmlydHVh
bCB2ODo6TG9jYWw8djg6OlZhbHVlPiBjYWxsTGlzdGVuZXJGdW5jdGlvbihTY3JpcHRFeGVjdXRp
b25Db250ZXh0Kiwgdjg6OkhhbmRsZTx2ODo6VmFsdWU+IGpzRXZlbnQsIEV2ZW50Kik7Cit9Owog
CiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKLSNlbmRpZiAvLyBKU1dvcmtlckNvbnRleHRFcnJv
ckhhbmRsZXJfaAorI2VuZGlmIC8vIFY4V2luZG93RXJyb3JIYW5kbGVyX2gKZGlmZiAtLWdpdCBh
L1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcCBiL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcAppbmRl
eCBlNzVhYzZhMDhhNmIzZWRhMTM0OGI0YThmMTdjZDNlNDAyYzU2ZDQ1Li40MGJmMTU5ODM4YjA1
ZGZiYjI4NjlmMTE5Y2IyZGRiNTcyZmZkYWM0IDEwMDY0NAotLS0gYS9XZWJDb3JlL2RvbS9Eb2N1
bWVudC5jcHAKKysrIGIvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCkBAIC00MDUsNiArNDA1LDcg
QEAgRG9jdW1lbnQ6OkRvY3VtZW50KEZyYW1lKiBmcmFtZSwgY29uc3QgS1VSTCYgdXJsLCBib29s
IGlzWEhUTUwsIGJvb2wgaXNIVE1MKQogI2VuZGlmCiAgICAgLCBtX3dlYWtSZWZlcmVuY2UoRG9j
dW1lbnRXZWFrUmVmZXJlbmNlOjpjcmVhdGUodGhpcykpCiAgICAgLCBtX2lkQXR0cmlidXRlTmFt
ZShpZEF0dHIpCisgICAgLCBtX3JlcG9ydGluZ0V4Y2VwdGlvbihmYWxzZSkKIHsKICAgICBtX2Rv
Y3VtZW50ID0gdGhpczsKIApAQCAtNDQ0Myw2ICs0NDQ0LDEyIEBAIHZvaWQgRG9jdW1lbnQ6OnBh
cnNlRE5TUHJlZmV0Y2hDb250cm9sSGVhZGVyKGNvbnN0IFN0cmluZyYgZG5zUHJlZmV0Y2hDb250
cm9sKQogCiB2b2lkIERvY3VtZW50OjpyZXBvcnRFeGNlcHRpb24oY29uc3QgU3RyaW5nJiBlcnJv
ck1lc3NhZ2UsIGludCBsaW5lTnVtYmVyLCBjb25zdCBTdHJpbmcmIHNvdXJjZVVSTCkKIHsKKyAg
ICBpZiAoRE9NV2luZG93KiBkb21XaW5kb3cgPSB0aGlzLT5kb21XaW5kb3coKSkgeworICAgICAg
ICAvLyBJbnZva2Ugd2luZG93Lm9uZXJyb3IuCisgICAgICAgIGlmIChpbnZva2VPbkVycm9ySGFu
ZGxlcihkb21XaW5kb3ctPm9uZXJyb3IoKSwgZXJyb3JNZXNzYWdlLCBsaW5lTnVtYmVyLCBzb3Vy
Y2VVUkwpKQorICAgICAgICAgICAgcmV0dXJuOworICAgIH0KKwogICAgIGFkZE1lc3NhZ2UoSlNN
ZXNzYWdlU291cmNlLCBMb2dNZXNzYWdlVHlwZSwgRXJyb3JNZXNzYWdlTGV2ZWwsIGVycm9yTWVz
c2FnZSwgbGluZU51bWJlciwgc291cmNlVVJMKTsKIH0KIApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9k
b20vRG9jdW1lbnQuaCBiL1dlYkNvcmUvZG9tL0RvY3VtZW50LmgKaW5kZXggNjVlZjEzZmZkZGNi
NTdiNzdjNTc5YTQ2YTU4NGZmZTI0N2YyNGEzZS4uMjUwOGYxNDEzYzA0N2FhMDhiNmQ1OTUwZGNl
Y2I2MjAzOTY0ZGEwYyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9kb20vRG9jdW1lbnQuaAorKysgYi9X
ZWJDb3JlL2RvbS9Eb2N1bWVudC5oCkBAIC0xMjgzLDYgKzEyODMsOCBAQCBwcml2YXRlOgogICAg
IEhhc2hTZXQ8TWVkaWFDYW5TdGFydExpc3RlbmVyKj4gbV9tZWRpYUNhblN0YXJ0TGlzdGVuZXJz
OwogCiAgICAgUXVhbGlmaWVkTmFtZSBtX2lkQXR0cmlidXRlTmFtZTsKKworICAgIGJvb2wgbV9y
ZXBvcnRpbmdFeGNlcHRpb247CiB9OwogCiBpbmxpbmUgYm9vbCBEb2N1bWVudDo6aGFzRWxlbWVu
dFdpdGhJZChBdG9taWNTdHJpbmdJbXBsKiBpZCkgY29uc3QKZGlmZiAtLWdpdCBhL1dlYkNvcmUv
ZG9tL1NjcmlwdEV4ZWN1dGlvbkNvbnRleHQuY3BwIGIvV2ViQ29yZS9kb20vU2NyaXB0RXhlY3V0
aW9uQ29udGV4dC5jcHAKaW5kZXggZDAxNGQ0N2I0MmRiNTE1YmU1M2M3MTBlMzllZGM4YmY5MGI0
MDYzMS4uZmM4YzMxMmRkNTgwYTQ5Y2FjZDhjYzVhZTk4ZWZiMjRmMDQ5ZTQzZCAxMDA2NDQKLS0t
IGEvV2ViQ29yZS9kb20vU2NyaXB0RXhlY3V0aW9uQ29udGV4dC5jcHAKKysrIGIvV2ViQ29yZS9k
b20vU2NyaXB0RXhlY3V0aW9uQ29udGV4dC5jcHAKQEAgLTMzLDYgKzMzLDggQEAKICNpbmNsdWRl
ICJEYXRhYmFzZS5oIgogI2luY2x1ZGUgIkRhdGFiYXNlVGFzay5oIgogI2luY2x1ZGUgIkRhdGFi
YXNlVGhyZWFkLmgiCisjaW5jbHVkZSAiRXJyb3JFdmVudC5oIgorI2luY2x1ZGUgIkV2ZW50TGlz
dGVuZXIuaCIKICNpbmNsdWRlICJGaWxlVGhyZWFkLmgiCiAjaW5jbHVkZSAiTWVzc2FnZVBvcnQu
aCIKICNpbmNsdWRlICJTZWN1cml0eU9yaWdpbi5oIgpAQCAtNjUsNiArNjcsNyBAQCBTY3JpcHRF
eGVjdXRpb25Db250ZXh0OjpTY3JpcHRFeGVjdXRpb25Db250ZXh0KCkKICNpZiBFTkFCTEUoREFU
QUJBU0UpCiAgICAgOiBtX2hhc09wZW5EYXRhYmFzZXMoZmFsc2UpCiAjZW5kaWYKKyAgICAsIG1f
aW5FcnJvckhhbmRsZXIoZmFsc2UpCiB7CiB9CiAKQEAgLTI1OCw2ICsyNjEsMTkgQEAgdm9pZCBT
Y3JpcHRFeGVjdXRpb25Db250ZXh0OjpzZXRTZWN1cml0eU9yaWdpbihQYXNzUmVmUHRyPFNlY3Vy
aXR5T3JpZ2luPiBzZWN1cmkKICAgICBtX3NlY3VyaXR5T3JpZ2luID0gc2VjdXJpdHlPcmlnaW47
CiB9CiAKK2Jvb2wgU2NyaXB0RXhlY3V0aW9uQ29udGV4dDo6aW52b2tlT25FcnJvckhhbmRsZXIo
RXZlbnRMaXN0ZW5lciogb25lcnJvciwgY29uc3QgU3RyaW5nJiBlcnJvck1lc3NhZ2UsIGludCBs
aW5lTnVtYmVyLCBjb25zdCBTdHJpbmcmIHNvdXJjZVVSTCkKK3sKKyAgICBpZiAoIW9uZXJyb3Ip
CisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICBpZiAobV9pbkVycm9ySGFuZGxlcikKKyAgICAg
ICAgcmV0dXJuIGZhbHNlOworICAgIG1faW5FcnJvckhhbmRsZXIgPSB0cnVlOworICAgIFJlZlB0
cjxFcnJvckV2ZW50PiBlcnJvckV2ZW50KEVycm9yRXZlbnQ6OmNyZWF0ZShlcnJvck1lc3NhZ2Us
IHNvdXJjZVVSTCwgbGluZU51bWJlcikpOworICAgIG9uZXJyb3ItPmhhbmRsZUV2ZW50KHRoaXMs
IGVycm9yRXZlbnQuZ2V0KCkpOworICAgIG1faW5FcnJvckhhbmRsZXIgPSBmYWxzZTsKKyAgICBy
ZXR1cm4gZXJyb3JFdmVudC0+ZGVmYXVsdFByZXZlbnRlZCgpOworfQorCiB2b2lkIFNjcmlwdEV4
ZWN1dGlvbkNvbnRleHQ6OmFkZFRpbWVvdXQoaW50IHRpbWVvdXRJZCwgRE9NVGltZXIqIHRpbWVy
KQogewogICAgIEFTU0VSVCghbV90aW1lb3V0cy5jb250YWlucyh0aW1lb3V0SWQpKTsKZGlmZiAt
LWdpdCBhL1dlYkNvcmUvZG9tL1NjcmlwdEV4ZWN1dGlvbkNvbnRleHQuaCBiL1dlYkNvcmUvZG9t
L1NjcmlwdEV4ZWN1dGlvbkNvbnRleHQuaAppbmRleCAzMGMxMmU1MGMzNjJlZjAwODZiNTQ5ODYx
MWMwMTQzNmU3YWU0MGI3Li5iOTdjMzEzNTRhNzEyYTAxZDhlYjRmYTY5ZjE0YzFlYTM0N2Q4MzRl
IDEwMDY0NAotLS0gYS9XZWJDb3JlL2RvbS9TY3JpcHRFeGVjdXRpb25Db250ZXh0LmgKKysrIGIv
V2ViQ29yZS9kb20vU2NyaXB0RXhlY3V0aW9uQ29udGV4dC5oCkBAIC01Miw2ICs1Miw3IEBAIG5h
bWVzcGFjZSBXZWJDb3JlIHsKICAgICBjbGFzcyBEYXRhYmFzZVRocmVhZDsKICNlbmRpZgogICAg
IGNsYXNzIERPTVRpbWVyOworICAgIGNsYXNzIEV2ZW50TGlzdGVuZXI7CiAjaWYgRU5BQkxFKEJM
T0IpIHx8IEVOQUJMRShGSUxFX1dSSVRFUikKICAgICBjbGFzcyBGaWxlVGhyZWFkOwogI2VuZGlm
CkBAIC05NCw2ICs5NSw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogICAgICAgICB2aXJ0dWFs
IHZvaWQgcmVwb3J0RXhjZXB0aW9uKGNvbnN0IFN0cmluZyYgZXJyb3JNZXNzYWdlLCBpbnQgbGlu
ZU51bWJlciwgY29uc3QgU3RyaW5nJiBzb3VyY2VVUkwpID0gMDsKICAgICAgICAgdmlydHVhbCB2
b2lkIGFkZE1lc3NhZ2UoTWVzc2FnZVNvdXJjZSwgTWVzc2FnZVR5cGUsIE1lc3NhZ2VMZXZlbCwg
Y29uc3QgU3RyaW5nJiBtZXNzYWdlLCB1bnNpZ25lZCBsaW5lTnVtYmVyLCBjb25zdCBTdHJpbmcm
IHNvdXJjZVVSTCkgPSAwOworICAgICAgICBib29sIGludm9rZU9uRXJyb3JIYW5kbGVyKEV2ZW50
TGlzdGVuZXIqLCBjb25zdCBTdHJpbmcmIGVycm9yTWVzc2FnZSwgaW50IGxpbmVOdW1iZXIsIGNv
bnN0IFN0cmluZyYgc291cmNlVVJMKTsKIAogICAgICAgICAvLyBBY3RpdmUgb2JqZWN0cyBhcmUg
bm90IGdhcmJhZ2UgY29sbGVjdGVkIGV2ZW4gaWYgaW5hY2Nlc3NpYmxlLCBlLmcuIGJlY2F1c2Ug
dGhlaXIgYWN0aXZpdHkgbWF5IHJlc3VsdCBpbiBjYWxsYmFja3MgYmVpbmcgaW52b2tlZC4KICAg
ICAgICAgYm9vbCBjYW5TdXNwZW5kQWN0aXZlRE9NT2JqZWN0cygpOwpAQCAtMTgzLDYgKzE4NSw3
IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICNpZiBFTkFCTEUoQkxPQikgfHwgRU5BQkxFKEZJTEVf
V1JJVEVSKQogICAgICAgICBSZWZQdHI8RmlsZVRocmVhZD4gbV9maWxlVGhyZWFkOwogI2VuZGlm
CisgICAgICAgIGJvb2wgbV9pbkVycm9ySGFuZGxlcjsKICAgICB9OwogCiB9IC8vIG5hbWVzcGFj
ZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyQ29udGV4dC5jcHAg
Yi9XZWJDb3JlL3dvcmtlcnMvV29ya2VyQ29udGV4dC5jcHAKaW5kZXggMzZhOWY5NDZkZDM3Nzdm
ZWRmMTJjY2QwNzg3MWM5NzA4MzZlZGU4ZS4uMzBhOGNkNGNlMGFlNzg3ODE4MDc1MGFiNzBkYjM3
ZmFhM2JkY2Y0NiAxMDA2NDQKLS0tIGEvV2ViQ29yZS93b3JrZXJzL1dvcmtlckNvbnRleHQuY3Bw
CisrKyBiL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJDb250ZXh0LmNwcApAQCAtODgsNyArODgsNiBA
QCBXb3JrZXJDb250ZXh0OjpXb3JrZXJDb250ZXh0KGNvbnN0IEtVUkwmIHVybCwgY29uc3QgU3Ry
aW5nJiB1c2VyQWdlbnQsIFdvcmtlclRocgogICAgICwgbV9zY3JpcHQobmV3IFdvcmtlclNjcmlw
dENvbnRyb2xsZXIodGhpcykpCiAgICAgLCBtX3RocmVhZCh0aHJlYWQpCiAgICAgLCBtX2Nsb3Np
bmcoZmFsc2UpCi0gICAgLCBtX3JlcG9ydGluZ0V4Y2VwdGlvbihmYWxzZSkKIHsKICAgICBzZXRT
ZWN1cml0eU9yaWdpbihTZWN1cml0eU9yaWdpbjo6Y3JlYXRlKHVybCkpOwogfQpAQCAtMjQzLDE3
ICsyNDIsNyBAQCB2b2lkIFdvcmtlckNvbnRleHQ6OmltcG9ydFNjcmlwdHMoY29uc3QgVmVjdG9y
PFN0cmluZz4mIHVybHMsIEV4Y2VwdGlvbkNvZGUmIGVjKQogCiB2b2lkIFdvcmtlckNvbnRleHQ6
OnJlcG9ydEV4Y2VwdGlvbihjb25zdCBTdHJpbmcmIGVycm9yTWVzc2FnZSwgaW50IGxpbmVOdW1i
ZXIsIGNvbnN0IFN0cmluZyYgc291cmNlVVJMKQogewotICAgIGJvb2wgZXJyb3JIYW5kbGVkID0g
ZmFsc2U7Ci0gICAgaWYgKCFtX3JlcG9ydGluZ0V4Y2VwdGlvbikgewotICAgICAgICBpZiAob25l
cnJvcigpKSB7Ci0gICAgICAgICAgICBtX3JlcG9ydGluZ0V4Y2VwdGlvbiA9IHRydWU7Ci0gICAg
ICAgICAgICBSZWZQdHI8RXJyb3JFdmVudD4gZXJyb3JFdmVudChFcnJvckV2ZW50OjpjcmVhdGUo
ZXJyb3JNZXNzYWdlLCBzb3VyY2VVUkwsIGxpbmVOdW1iZXIpKTsKLSAgICAgICAgICAgIG9uZXJy
b3IoKS0+aGFuZGxlRXZlbnQodGhpcywgZXJyb3JFdmVudC5nZXQoKSk7Ci0gICAgICAgICAgICBl
cnJvckhhbmRsZWQgPSBlcnJvckV2ZW50LT5kZWZhdWx0UHJldmVudGVkKCk7Ci0gICAgICAgICAg
ICBtX3JlcG9ydGluZ0V4Y2VwdGlvbiA9IGZhbHNlOwotICAgICAgICB9Ci0gICAgfQotICAgIGlm
ICghZXJyb3JIYW5kbGVkKQorICAgIGlmICghaW52b2tlT25FcnJvckhhbmRsZXIob25lcnJvcigp
LCBlcnJvck1lc3NhZ2UsIGxpbmVOdW1iZXIsIHNvdXJjZVVSTCkpCiAgICAgICAgIHRocmVhZCgp
LT53b3JrZXJSZXBvcnRpbmdQcm94eSgpLnBvc3RFeGNlcHRpb25Ub1dvcmtlck9iamVjdChlcnJv
ck1lc3NhZ2UsIGxpbmVOdW1iZXIsIHNvdXJjZVVSTCk7CiB9CiAKZGlmZiAtLWdpdCBhL1dlYkNv
cmUvd29ya2Vycy9Xb3JrZXJDb250ZXh0LmggYi9XZWJDb3JlL3dvcmtlcnMvV29ya2VyQ29udGV4
dC5oCmluZGV4IDllOWU1NGY4YjEzMTNlNjVmYmFmZWFhZWRhZWY0ZGUwOWM5MDIyYzEuLjE3NDNi
YjYwMWY2ZWVkODUyMTlhZWE5ZmVmOWU1MGNiOWM2YTkxMmEgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUv
d29ya2Vycy9Xb3JrZXJDb250ZXh0LmgKKysrIGIvV2ViQ29yZS93b3JrZXJzL1dvcmtlckNvbnRl
eHQuaApAQCAtMTU0LDcgKzE1NCw2IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgbXV0
YWJsZSBSZWZQdHI8Tm90aWZpY2F0aW9uQ2VudGVyPiBtX25vdGlmaWNhdGlvbnM7CiAjZW5kaWYK
ICAgICAgICAgYm9vbCBtX2Nsb3Npbmc7Ci0gICAgICAgIGJvb2wgbV9yZXBvcnRpbmdFeGNlcHRp
b247CiAgICAgICAgIEV2ZW50VGFyZ2V0RGF0YSBtX2V2ZW50VGFyZ2V0RGF0YTsKICAgICB9Owog
Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>65104</attachid>
            <date>2010-08-23 05:07:36 -0700</date>
            <delta_ts>2010-08-23 05:13:14 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-8519-20100823160732.patch</filename>
            <type>text/plain</type>
            <size>70478</size>
            <attacher name="Yury Semikhatsky">yurys</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCA4ZjllNzNhZDc4ZWY2MzdiMDMxMTdiZTU1ZGZiOWNjZTA1YjZiOTQyLi5jYmQwYzA5
Y2ZlMjkxYzliY2M3ZWJlZjg5Y2VhYzFmZWM0ZjU3Y2VjIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDMgQEAK
KzIwMTAtMDgtMjMgIFl1cnkgU2VtaWtoYXRza3kgIDx5dXJ5c0BjaHJvbWl1bS5vcmc+CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgV2ViQ29yZSBkb2Vz
bid0IGZpcmUgd2luZG93Lm9uZXJyb3IgZXZlbnQgd2hlbiB1bmNhdWdodCBKYXZhU2NyaXB0IGV4
Y2VwdGlvbnMgYXJlIHRocm93bgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9ODUxOQorCisgICAgICAgIFVuY2F1Z2h0IGV4Y2VwdGlvbnMgYXJlIHByb3Bh
Z2F0ZWQgdG8gd2luZG93Lm9uZXJyb3IgaGFuZGVyIGlmIG9uZSBpcyBwcmVzZW50LgorICAgICAg
ICBUaGUgaGFuZGxlciBpcyBleHBlY3RlZCB0byBiZSBhIGZ1bmN0aW9uIGFjY2VwdGluZyB0aHJl
ZSBhcmd1bWVudHM6IGVycm9yIG1lc3NhZ2UsCisgICAgICAgIHJlc291cmNlIHVybCBhbmQgbGlu
ZSBudW1iZXIgd2hlcmUgdGhlIGV4Y2VwdGlvbiBvY2N1cmVkLgorCisgICAgICAgICogZmFzdC9l
dmVudHMvd2luZG93LW9uZXJyb3IxLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFz
dC9ldmVudHMvd2luZG93LW9uZXJyb3IxLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZXZl
bnRzL3dpbmRvdy1vbmVycm9yMi1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3Qv
ZXZlbnRzL3dpbmRvdy1vbmVycm9yMi5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2V2ZW50
cy93aW5kb3ctb25lcnJvcjMtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2V2
ZW50cy93aW5kb3ctb25lcnJvcjMuaHRtbDogQWRkZWQuCisgICAgICAgICogZmFzdC9ldmVudHMv
d2luZG93LW9uZXJyb3I0LWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC9ldmVu
dHMvd2luZG93LW9uZXJyb3I0Lmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZXZlbnRzL3dp
bmRvdy1vbmVycm9yNS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZXZlbnRz
L3dpbmRvdy1vbmVycm9yNS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2V2ZW50cy93aW5k
b3ctb25lcnJvcjYtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2V2ZW50cy93
aW5kb3ctb25lcnJvcjYuaHRtbDogQWRkZWQuCisgICAgICAgICogZmFzdC9ldmVudHMvd2luZG93
LW9uZXJyb3I3LWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC9ldmVudHMvd2lu
ZG93LW9uZXJyb3I3Lmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZXZlbnRzL3dpbmRvdy1v
bmVycm9yOC1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZXZlbnRzL3dpbmRv
dy1vbmVycm9yOC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3NlY3VyaXR5L3Jl
c291cmNlcy9vbmVycm9yLWlmcmFtZS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3Rz
L3NlY3VyaXR5L3dpbmRvdy1vbmVycm9yLWV4Y2VwdGlvbi1pbi1pZnJhbWUtZXhwZWN0ZWQudHh0
OiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3NlY3VyaXR5L3dpbmRvdy1vbmVycm9yLWV4
Y2VwdGlvbi1pbi1pZnJhbWUuaHRtbDogQWRkZWQuCisgICAgICAgICogcGxhdGZvcm0vY2hyb21p
dW0vZmFzdC9ldmVudHMvd2luZG93LW9uZXJyb3IxLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAg
ICAgICogcGxhdGZvcm0vY2hyb21pdW0vZmFzdC9ldmVudHMvd2luZG93LW9uZXJyb3IyLWV4cGVj
dGVkLnR4dDogQWRkZWQuCisgICAgICAgICogcGxhdGZvcm0vY2hyb21pdW0vZmFzdC9ldmVudHMv
d2luZG93LW9uZXJyb3IzLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogcGxhdGZvcm0v
Y2hyb21pdW0vZmFzdC9ldmVudHMvd2luZG93LW9uZXJyb3I0LWV4cGVjdGVkLnR4dDogQWRkZWQu
CisgICAgICAgICogcGxhdGZvcm0vY2hyb21pdW0vZmFzdC9ldmVudHMvd2luZG93LW9uZXJyb3I1
LWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogcGxhdGZvcm0vY2hyb21pdW0vZmFzdC9l
dmVudHMvd2luZG93LW9uZXJyb3I2LWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogcGxh
dGZvcm0vY2hyb21pdW0vZmFzdC9ldmVudHMvd2luZG93LW9uZXJyb3I3LWV4cGVjdGVkLnR4dDog
QWRkZWQuCisgICAgICAgICogcGxhdGZvcm0vY2hyb21pdW0vZmFzdC9ldmVudHMvd2luZG93LW9u
ZXJyb3I4LWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogcGxhdGZvcm0vY2hyb21pdW0v
aHR0cC90ZXN0cy9zZWN1cml0eS93aW5kb3ctb25lcnJvci1leGNlcHRpb24taW4taWZyYW1lLWV4
cGVjdGVkLnR4dDogQWRkZWQuCisKIDIwMTAtMDgtMjIgIEtlbnQgVGFtdXJhICA8dGtlbnRAY2hy
b21pdW0ub3JnPgogCiAgICAgICAgIFVucmV2aWV3ZWQsIHRlc3QgZXhwZWN0YXRpb24gdXBkYXRl
LgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvd2luZG93LW9uZXJyb3IxLWV4
cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3dpbmRvdy1vbmVycm9yMS1leHBl
Y3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uOWQwOGM1MGJkOWY3N2U5ZTRkODNhNjcxOTk0MzU3MjliMmFi
ZTA2YQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3dpbmRvdy1v
bmVycm9yMS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw0IEBACitDT05TT0xFIE1FU1NBR0U6IGxp
bmUgMjU6IFJlZmVyZW5jZUVycm9yOiBDYW4ndCBmaW5kIHZhcmlhYmxlOiBoYWhhaGFfZ29vZF9s
dWNrX2ZpbmRpbmdfbWUKK1RoaXMgcGFnZSB0ZXN0cyBzZXR0aW5nIG9uZXJyb3IgaGFuZGxlcnMg
dGhyb3VnaCB0aGUgRE9NLiBJZiBpdCBwYXNzZXMsIHlvdSB3aWxsIHNlZSAiUEFTUyIgbWVzc2Fn
ZXMgYmVsb3cuQnVnIDg1MTkuCisKK1BBU1M6IGNhdWdodCBnbG9iYWwgZXJyb3I6IFJlZmVyZW5j
ZUVycm9yOiBDYW4ndCBmaW5kIHZhcmlhYmxlOiBoYWhhaGFfZ29vZF9sdWNrX2ZpbmRpbmdfbWUg
YXQgd2luZG93LW9uZXJyb3IxLmh0bWw6MjUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3Qv
ZXZlbnRzL3dpbmRvdy1vbmVycm9yMS5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvd2lu
ZG93LW9uZXJyb3IxLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMGJkYWE5YmIyYmMwOGE0Nzk0YzFhMzE2N2Q4
NTZiNzE0YTIzMzUxZQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRz
L3dpbmRvdy1vbmVycm9yMS5odG1sCkBAIC0wLDAgKzEsMzUgQEAKKzxodG1sPgorPGhlYWQ+Cis8
c2NyaXB0PgoraWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKKyAgICBsYXlvdXRUZXN0
Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7CisKK2Z1bmN0aW9uIHByaW50KG1lc3NhZ2UsIGNvbG9y
KQoreworICAgIHZhciBwYXJhZ3JhcGggPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTsK
KyAgICBwYXJhZ3JhcGguYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUobWVzc2Fn
ZSkpOworICAgIHBhcmFncmFwaC5zdHlsZS5mb250RmFtaWx5ID0gIm1vbm9zcGFjZSI7CisgICAg
aWYgKGNvbG9yKQorICAgICAgICBwYXJhZ3JhcGguc3R5bGUuY29sb3IgPSBjb2xvcjsKKyAgICBk
b2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY29uc29sZSIpLmFwcGVuZENoaWxkKHBhcmFncmFwaCk7
Cit9CisKK2Z1bmN0aW9uIHRlc3QoKQoreworICAgIC8vIG11c3QgYmUgbGFzdCBiZWNhdXNlIHRo
ZSBleGNlcHRpb24gZW5kcyBKYXZhU2NyaXB0IGV4ZWN1dGlvbgorICAgIHdpbmRvdy5vbmVycm9y
ID0gZnVuY3Rpb24gKGVycm9yLCB1cmwsIGxpbmUpIHsKKyAgICAgICAgdXJsID0gdXJsID8gdXJs
Lm1hdGNoKCAvW15cL10rXC8/JC8gKVswXSA6IHVybDsKKyAgICAgICAgcHJpbnQoIlBBU1M6IGNh
dWdodCBnbG9iYWwgZXJyb3I6ICIgKyBlcnJvciArICIgYXQgIiArIHVybCArICI6IiArIGxpbmUs
ICJncmVlbiIpOworICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9OworICAgIGhhaGFoYV9nb29k
X2x1Y2tfZmluZGluZ19tZSgpOyAvLyBjYXVnaHQgYnkgd2luZG93Lm9uZXJyb3IKK30KKzwvc2Ny
aXB0PgorPC9oZWFkPgorPGJvZHkgb25sb2FkPSJ0ZXN0KCk7Ij4KKzxwPlRoaXMgcGFnZSB0ZXN0
cyBzZXR0aW5nIG9uZXJyb3IgaGFuZGxlcnMgdGhyb3VnaCB0aGUgRE9NLiBJZiBpdCBwYXNzZXMs
IHlvdSB3aWxsCisgICBzZWUgIlBBU1MiIG1lc3NhZ2VzIGJlbG93LjxhIGhyZWY9Imh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04NTE5Ij5CdWcgODUxOTwvYT4uPC9wPgor
PGhyPgorPGRpdiBpZD0nY29uc29sZSc+PC9kaXY+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy93aW5kb3ctb25lcnJvcjItZXhwZWN0ZWQudHh0
IGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvd2luZG93LW9uZXJyb3IyLWV4cGVjdGVkLnR4dApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi42YmQ0MGQ5MmUxMzU0ZmM1NDE0YTExMzJmMTc2ZTU5OTI4MDkyYWE0Ci0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvd2luZG93LW9uZXJyb3IyLWV4
cGVjdGVkLnR4dApAQCAtMCwwICsxLDkgQEAKK0NPTlNPTEUgTUVTU0FHRTogbGluZSAwOiBJbmxp
bmUgc2NyaXB0IGV4Y2VwdGlvbgorQ09OU09MRSBNRVNTQUdFOiBsaW5lIDA6IEV4Y2VwdGlvbiBp
biBvbmxvYWQKK0NPTlNPTEUgTUVTU0FHRTogbGluZSAwOiBFeGNlcHRpb24gaW4gc2V0VGltZW91
dAorVGVzdCB0aGF0IHVuY2F1Z2h0IGV4Y2VwdGlvbnMgd2lsbCBiZSByZXBvcnRlZCB0byB0aGUg
d2luZG93Lm9uZXJyb3IgaGFuZGxlci4gQnVnIDg1MTkuCisKK01haW4gZnJhbWUgd2luZG93Lm9u
ZXJyb3I6IElubGluZSBzY3JpcHQgZXhjZXB0aW9uIGF0IHVuZGVmaW5lZDowCitNYWluIGZyYW1l
IHdpbmRvdy5vbmVycm9yOiBFeGNlcHRpb24gaW4gb25sb2FkIGF0IHVuZGVmaW5lZDowCitNYWlu
IGZyYW1lIHdpbmRvdy5vbmVycm9yOiBFeGNlcHRpb24gaW4gc2V0VGltZW91dCBhdCB1bmRlZmlu
ZWQ6MAorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy93aW5kb3ctb25lcnJv
cjIuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3dpbmRvdy1vbmVycm9yMi5odG1sCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLjliYmM1MDk2OGFjNjM2MTk5MmQ1YTdkNjNjZmE2OTJmYzliOTMzYTIKLS0tIC9k
ZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy93aW5kb3ctb25lcnJvcjIuaHRt
bApAQCAtMCwwICsxLDQwIEBACis8aHRtbD4KKzxib2R5IG9ubG9hZD0idGhyb3cgJ0V4Y2VwdGlv
biBpbiBvbmxvYWQnOyI+Cis8cD5UZXN0IHRoYXQgdW5jYXVnaHQgZXhjZXB0aW9ucyB3aWxsIGJl
IHJlcG9ydGVkIHRvIHRoZSB3aW5kb3cub25lcnJvciBoYW5kbGVyLiA8YSBocmVmPSJodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODUxOSI+QnVnIDg1MTk8L2E+LjwvcD4K
KzxkaXYgaWQ9InJlc3VsdCI+PC9kaXY+Cis8c2NyaXB0PgoraWYgKHdpbmRvdy5sYXlvdXRUZXN0
Q29udHJvbGxlcikgeworICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKKyAg
ICBsYXlvdXRUZXN0Q29udHJvbGxlci53YWl0VW50aWxEb25lKCk7Cit9CisKK2Z1bmN0aW9uIGxv
Zyhtc2cpIHsKKyAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicmVzdWx0IikuaW5uZXJIVE1M
ICs9IG1zZyArICI8YnI+IjsKK30KKword2luZG93Lm9uZXJyb3IgPSBmdW5jdGlvbihtc2csIHVy
bCwgbGluZSkKK3sKKyAgICB1cmwgPSB1cmwgPyB1cmwubWF0Y2goIC9bXlwvXStcLz8kLyApWzBd
IDogdXJsOworICAgIGxvZygiTWFpbiBmcmFtZSB3aW5kb3cub25lcnJvcjogIiArIG1zZyArICIg
YXQgIiArIHVybCArICI6IiArIGxpbmUpOworfQorCitmdW5jdGlvbiBkZWxheWVkVGhyb3dFeGNl
cHRpb24oKQoreworICAgIHRocm93ICJFeGNlcHRpb24gaW4gc2V0VGltZW91dCI7Cit9CitzZXRU
aW1lb3V0KGRlbGF5ZWRUaHJvd0V4Y2VwdGlvbiwgMCk7CisKK3NldFRpbWVvdXQoZnVuY3Rpb24o
KSB7CisgICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKKyAgICAgICAgbGF5b3V0
VGVzdENvbnRyb2xsZXIubm90aWZ5RG9uZSgpOworfSwgMCk7CisKK2Z1bmN0aW9uIHRocm93RXhj
ZXB0aW9uKCkKK3sKKyAgICB0aHJvdyAiSW5saW5lIHNjcmlwdCBleGNlcHRpb24iOworfQordGhy
b3dFeGNlcHRpb24oKTsKKworPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy93aW5kb3ctb25lcnJvcjMtZXhwZWN0ZWQudHh0IGIv
TGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvd2luZG93LW9uZXJyb3IzLWV4cGVjdGVkLnR4dApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi44YzBjNTNlZDA2YjZmYmU5MzQxY2U1ZjY4OGZiYjE2YTgwNDNlOTYyCi0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvd2luZG93LW9uZXJyb3IzLWV4cGVj
dGVkLnR4dApAQCAtMCwwICsxLDUgQEAKK0NPTlNPTEUgTUVTU0FHRTogbGluZSAxNTogUmVmZXJl
bmNlRXJyb3I6IENhbid0IGZpbmQgdmFyaWFibGU6IHVua25vd25PYmplY3QKK1lvdSBzaG91bGQg
c2VlIGEgbWVzc2FnZSBpZiB3aW5kb3cub25lcnJvciBpcyB3b3JraW5nIHByb3Blcmx5IGZvciB0
aGlzIHRlc3QuQnVnIDg1MTkuCisKK0Vycm9yIGNhdWdodCBzdWNjZXNzZnVsbHk6IFJlZmVyZW5j
ZUVycm9yOiBDYW4ndCBmaW5kIHZhcmlhYmxlOiB1bmtub3duT2JqZWN0IEZpbGU6IHdpbmRvdy1v
bmVycm9yMy5odG1sIExpbmU6IDE1CisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZXZl
bnRzL3dpbmRvdy1vbmVycm9yMy5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvd2luZG93
LW9uZXJyb3IzLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMDY5YWFlYTQ4Mzc1ZmMzN2U0ZDUyYTY2OTRlNGY2
ZDZkNGNmZTgwMwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3dp
bmRvdy1vbmVycm9yMy5odG1sCkBAIC0wLDAgKzEsMjIgQEAKKzxzY3JpcHQ+CitpZiAod2luZG93
LmxheW91dFRlc3RDb250cm9sbGVyKQorICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1Rl
eHQoKTsKKworZnVuY3Rpb24gbG9nKG1zZykgeworICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlk
KCJjb25zb2xlIikuaW5uZXJIVE1MICs9IG1zZyArICI8YnI+IjsKK30KKworZnVuY3Rpb24gdGVz
dDEoKQoreworICAgIHdpbmRvdy5vbmVycm9yID0gZnVuY3Rpb24gKGVycm9yLCB1cmwsIGxpbmUp
IHsKKyAgICAgICAgdXJsID0gdXJsID8gdXJsLm1hdGNoKCAvW15cL10rXC8/JC8gKVswXSA6IHVy
bDsKKyAgICAgICAgbG9nKCJFcnJvciBjYXVnaHQgc3VjY2Vzc2Z1bGx5OiAiICsgZXJyb3IgKyAi
XG5GaWxlOiAiICsgdXJsICsgIlxuTGluZTogIiArIGxpbmUpCisgICAgfTsKKyAgICB1bmtub3du
T2JqZWN0LnVua25vd25Qcm9wZXJ0eSsrOworfQorPC9zY3JpcHQ+Cis8Ym9keSBvbmxvYWQ9InRl
c3QxKCk7Ij4KKzxwPllvdSBzaG91bGQgc2VlIGEgbWVzc2FnZSBpZiB3aW5kb3cub25lcnJvciBp
cyB3b3JraW5nIHByb3Blcmx5IGZvciB0aGlzIHRlc3QuPGEgaHJlZj0iaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTg1MTkiPkJ1ZyA4NTE5PC9hPi48L3A+Cis8aHI+Cis8
ZGl2IGlkPSdjb25zb2xlJz48L2Rpdj4KKzwvYm9keT4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2Zhc3QvZXZlbnRzL3dpbmRvdy1vbmVycm9yNC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9m
YXN0L2V2ZW50cy93aW5kb3ctb25lcnJvcjQtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmUzNmJi
MWUzYmFlZTM2ZDMwMTIxOTA1NDdiMWZiMDE1MTc3OGJjZDQKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy9mYXN0L2V2ZW50cy93aW5kb3ctb25lcnJvcjQtZXhwZWN0ZWQudHh0CkBAIC0w
LDAgKzEsNSBAQAorQ09OU09MRSBNRVNTQUdFOiBsaW5lIDE6IFJlZmVyZW5jZUVycm9yOiBMZWZ0
IHNpZGUgb2YgYXNzaWdubWVudCBpcyBub3QgYSByZWZlcmVuY2UuCitZb3Ugc2hvdWxkIHNlZSBh
IGxvZyByZWNvcmQgaWYgd2luZG93Lm9uZXJyb3IgaXMgd29ya2luZyBwcm9wZXJseSBmb3IgdGhp
cyB0ZXN0LkJ1ZyA4NTE5LgorCitFcnJvciBjYXVnaHQgc3VjY2Vzc2Z1bGx5OiBSZWZlcmVuY2VF
cnJvcjogTGVmdCBzaWRlIG9mIGFzc2lnbm1lbnQgaXMgbm90IGEgcmVmZXJlbmNlLiBGaWxlOiB1
bmRlZmluZWQgTGluZTogMQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy93
aW5kb3ctb25lcnJvcjQuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3dpbmRvdy1vbmVy
cm9yNC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLjM4Nzg1MjdlY2Y5ZGVkYTJhMjI3MjMwZjAzNzliOWM1NmM5
ZWYyNTgKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy93aW5kb3ct
b25lcnJvcjQuaHRtbApAQCAtMCwwICsxLDIyIEBACis8c2NyaXB0PgoraWYgKHdpbmRvdy5sYXlv
dXRUZXN0Q29udHJvbGxlcikKKyAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7
CisKK2Z1bmN0aW9uIGxvZyhtc2cpIHsKKyAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY29u
c29sZSIpLmlubmVySFRNTCArPSBtc2cgKyAiPGJyPiI7Cit9CisKK2Z1bmN0aW9uIHRlc3QxKCkK
K3sKKyAgICB3aW5kb3cub25lcnJvciA9IGZ1bmN0aW9uIChlcnJvciwgdXJsLCBsaW5lKSB7Cisg
ICAgICAgIHVybCA9IHVybCA/IHVybC5tYXRjaCggL1teXC9dK1wvPyQvIClbMF0gOiB1cmw7Cisg
ICAgICAgIGxvZygiRXJyb3IgY2F1Z2h0IHN1Y2Nlc3NmdWxseTogIiArIGVycm9yICsgIlxuRmls
ZTogIiArIHVybCArICJcbkxpbmU6ICIgKyBsaW5lKQorICAgIH07CisgICAgZXZhbCgiMT0yIik7
Cit9Cis8L3NjcmlwdD4KKzxib2R5IG9ubG9hZD0idGVzdDEoKTsiPgorPHA+WW91IHNob3VsZCBz
ZWUgYSBsb2cgcmVjb3JkIGlmIHdpbmRvdy5vbmVycm9yIGlzIHdvcmtpbmcgcHJvcGVybHkgZm9y
IHRoaXMgdGVzdC48YSBocmVmPSJodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9ODUxOSI+QnVnIDg1MTk8L2E+LjwvcD4KKzxocj4KKzxkaXYgaWQ9J2NvbnNvbGUnPjwvZGl2
PgorPC9ib2R5PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvd2luZG93LW9u
ZXJyb3I1LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3dpbmRvdy1vbmVy
cm9yNS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uM2U4ZGM2NGFjZGM1MzM4OTA2YTUxMmIwMGZh
ZTJhN2U4MTc5YzE0ZQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRz
L3dpbmRvdy1vbmVycm9yNS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw1IEBACitDT05TT0xFIE1F
U1NBR0U6IGxpbmUgMTogU3ludGF4RXJyb3I6IFBhcnNlIGVycm9yCitUZXN0IHRoYXQgd2luZG93
Lm9uZXJyb3IgaXMgaW52b2tlZCBmb3Igc3ludGF4IGVycm9yIGluIGV2YWwuIFlvdSBzaG91bGQg
c2VlIGEgbG9nIHJlY29yZCBpZiB3aW5kb3cub25lcnJvciBpcyB3b3JraW5nIHByb3Blcmx5IGZv
ciB0aGlzIHRlc3QuQnVnIDg1MTkuCisKK0Vycm9yIGNhdWdodCBzdWNjZXNzZnVsbHk6IFN5bnRh
eEVycm9yOiBQYXJzZSBlcnJvciBGaWxlOiB1bmRlZmluZWQgTGluZTogMQorCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy93aW5kb3ctb25lcnJvcjUuaHRtbCBiL0xheW91dFRl
c3RzL2Zhc3QvZXZlbnRzL3dpbmRvdy1vbmVycm9yNS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmQ0YWQxZDZh
MWRhY2ExM2I5ZWRjNDE3ODMwZTZmZDcyMDNjMjJhYTUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy9mYXN0L2V2ZW50cy93aW5kb3ctb25lcnJvcjUuaHRtbApAQCAtMCwwICsxLDIyIEBA
Cis8c2NyaXB0PgoraWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKKyAgICBsYXlvdXRU
ZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7CisKK2Z1bmN0aW9uIGxvZyhtc2cpIHsKKyAgICBk
b2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY29uc29sZSIpLmlubmVySFRNTCArPSBtc2cgKyAiPGJy
PiI7Cit9CisKK2Z1bmN0aW9uIHRlc3QxKCkKK3sKKyAgICB3aW5kb3cub25lcnJvciA9IGZ1bmN0
aW9uIChlcnJvciwgdXJsLCBsaW5lKSB7CisgICAgICAgIHVybCA9IHVybCA/IHVybC5tYXRjaCgg
L1teXC9dK1wvPyQvIClbMF0gOiB1cmw7CisgICAgICAgIGxvZygiRXJyb3IgY2F1Z2h0IHN1Y2Nl
c3NmdWxseTogIiArIGVycm9yICsgIlxuRmlsZTogIiArIHVybCArICJcbkxpbmU6ICIgKyBsaW5l
KQorICAgIH07CisgICAgZXZhbCgiYSgiKTsKK30KKzwvc2NyaXB0PgorPGJvZHkgb25sb2FkPSJ0
ZXN0MSgpOyI+Cis8cD5UZXN0IHRoYXQgd2luZG93Lm9uZXJyb3IgaXMgaW52b2tlZCBmb3Igc3lu
dGF4IGVycm9yIGluIGV2YWwuIFlvdSBzaG91bGQgc2VlIGEgbG9nIHJlY29yZCBpZiB3aW5kb3cu
b25lcnJvciBpcyB3b3JraW5nIHByb3Blcmx5IGZvciB0aGlzIHRlc3QuPGEgaHJlZj0iaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTg1MTkiPkJ1ZyA4NTE5PC9hPi48L3A+
Cis8aHI+Cis8ZGl2IGlkPSdjb25zb2xlJz48L2Rpdj4KKzwvYm9keT4KZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2Zhc3QvZXZlbnRzL3dpbmRvdy1vbmVycm9yNi1leHBlY3RlZC50eHQgYi9MYXlv
dXRUZXN0cy9mYXN0L2V2ZW50cy93aW5kb3ctb25lcnJvcjYtZXhwZWN0ZWQudHh0Cm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLmYzYTVhMDAxNGM5OTIwMjhlODViYmVlYjU5MWJjMGI4NGJlZjllNGUKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy93aW5kb3ctb25lcnJvcjYtZXhwZWN0ZWQu
dHh0CkBAIC0wLDAgKzEsNSBAQAorQ09OU09MRSBNRVNTQUdFOiBsaW5lIDIxOiBTeW50YXhFcnJv
cjogUGFyc2UgZXJyb3IKK1Rlc3QgdGhhdCBzeW50YXggZXJyb3Igd2lsbCBiZSByZXBvcnRlZCB0
byB0aGUgd2luZG93Lm9uZXJyb3IgaGFuZGxlci4gQnVnIDg1MTkuCisKK01haW4gZnJhbWUgd2lu
ZG93Lm9uZXJyb3I6IFN5bnRheEVycm9yOiBQYXJzZSBlcnJvciBhdCB3aW5kb3ctb25lcnJvcjYu
aHRtbDoyMQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy93aW5kb3ctb25l
cnJvcjYuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3dpbmRvdy1vbmVycm9yNi5odG1s
Cm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLjdkMDlmN2E4NWU5OWZlMzMyZWQyNmM1ZGI2MTMxODZlMGFjMjQxMWUKLS0t
IC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy93aW5kb3ctb25lcnJvcjYu
aHRtbApAQCAtMCwwICsxLDI1IEBACis8aHRtbD4KKzxib2R5PgorPHA+VGVzdCB0aGF0IHN5bnRh
eCBlcnJvciB3aWxsIGJlIHJlcG9ydGVkIHRvIHRoZSB3aW5kb3cub25lcnJvciBoYW5kbGVyLiA8
YSBocmVmPSJodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODUxOSI+QnVn
IDg1MTk8L2E+LjwvcD4KKzxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgorPHNjcmlwdD4KK2lmICh3
aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCisgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVt
cEFzVGV4dCgpOworCitmdW5jdGlvbiBsb2cobXNnKSB7CisgICAgZG9jdW1lbnQuZ2V0RWxlbWVu
dEJ5SWQoImNvbnNvbGUiKS5pbm5lckhUTUwgKz0gbXNnICsgIjxicj4iOworfQorCit3aW5kb3cu
b25lcnJvciA9IGZ1bmN0aW9uKG1zZywgdXJsLCBsaW5lKQoreworICAgIHVybCA9IHVybCA/IHVy
bC5tYXRjaCggL1teXC9dK1wvPyQvIClbMF0gOiB1cmw7CisgICAgbG9nKCJNYWluIGZyYW1lIHdp
bmRvdy5vbmVycm9yOiAiICsgbXNnICsgIiBhdCAiICsgdXJsICsgIjoiICsgbGluZSk7Cit9Cis8
L3NjcmlwdD4KKzxzY3JpcHQ+CisKK2EpIC8vIHN5bnRheCBlcnJvcgorCis8L3NjcmlwdD4KKzwv
Ym9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3dpbmRv
dy1vbmVycm9yNy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy93aW5kb3ct
b25lcnJvcjctZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjZjZTVkMjY2OThmYjQyMDU1NjBkNjNh
YzY0MDdmOTk3ZjEyMTg3OGYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2V2
ZW50cy93aW5kb3ctb25lcnJvcjctZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNiBAQAorQ09OU09M
RSBNRVNTQUdFOiBsaW5lIDA6IE5lc3RlZCBlcnJvcgorQ09OU09MRSBNRVNTQUdFOiBsaW5lIDA6
IDIwMTAKK1Rlc3QgdGhhdCBleGNlcHRpb24gaW4gd2luZG93Lm9uZXJyb3Igd29uJ3QgbGVhZCB0
byByZWN1cnNpdmUgd2luZG93Lm9uZXJyb3IgY2FsbC4gQnVnIDg1MTkuCisKK01haW4gZnJhbWUg
d2luZG93Lm9uZXJyb3I6IDIwMTAgYXQgdW5kZWZpbmVkOjAKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvZmFzdC9ldmVudHMvd2luZG93LW9uZXJyb3I3Lmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0
L2V2ZW50cy93aW5kb3ctb25lcnJvcjcuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zMDA0YjMzZTE1MjJlNWIx
N2YyMjEyNTM5MTg1OGI5ZTRmMjMwYzI0Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMv
ZmFzdC9ldmVudHMvd2luZG93LW9uZXJyb3I3Lmh0bWwKQEAgLTAsMCArMSwyNCBAQAorPGh0bWw+
Cis8Ym9keT4KKzxwPlRlc3QgdGhhdCBleGNlcHRpb24gaW4gd2luZG93Lm9uZXJyb3Igd29uJ3Qg
bGVhZCB0byByZWN1cnNpdmUgd2luZG93Lm9uZXJyb3IgY2FsbC4gPGEgaHJlZj0iaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTg1MTkiPkJ1ZyA4NTE5PC9hPi48L3A+Cis8
ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KKzxzY3JpcHQ+CitpZiAod2luZG93LmxheW91dFRlc3RD
b250cm9sbGVyKQorICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKKworZnVu
Y3Rpb24gbG9nKG1zZykgeworICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjb25zb2xlIiku
aW5uZXJIVE1MICs9IG1zZyArICI8YnI+IjsKK30KKword2luZG93Lm9uZXJyb3IgPSBmdW5jdGlv
bihtc2csIHVybCwgbGluZSkKK3sKKyAgICB1cmwgPSB1cmwgPyB1cmwubWF0Y2goIC9bXlwvXStc
Lz8kLyApWzBdIDogdXJsOworICAgIGxvZygiTWFpbiBmcmFtZSB3aW5kb3cub25lcnJvcjogIiAr
IG1zZyArICIgYXQgIiArIHVybCArICI6IiArIGxpbmUpOworICAgIHRocm93ICJOZXN0ZWQgZXJy
b3IiOworfQorCit0aHJvdyAyMDEwOworCis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3dpbmRvdy1vbmVycm9yOC1leHBlY3Rl
ZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy93aW5kb3ctb25lcnJvcjgtZXhwZWN0ZWQu
dHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLmIxNmY2MjFmZWZlZDdiMTYyZjgxMzA4YjRmNDhiZjBjMTcwZWViOWUK
LS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy93aW5kb3ctb25lcnJv
cjgtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNiBAQAorQ09OU09MRSBNRVNTQUdFOiBsaW5lIDA6
IDIwMTAKK1Rlc3QgdGhhdCB3aW5kb3cub25lcnJvciBpcyBjYWxsZWQgb24gd2luZG93IG9iamVj
dC4gQnVnIDg1MTkuCisKK01haW4gZnJhbWUgd2luZG93Lm9uZXJyb3I6IDIwMTAgYXQgdW5kZWZp
bmVkOjAKK1BBU1NFRDogdGhpcyA9PT0gd2luZG93CisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2Zhc3QvZXZlbnRzL3dpbmRvdy1vbmVycm9yOC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVu
dHMvd2luZG93LW9uZXJyb3I4Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNjE2OGM0ZmE2OTA2NDQ1MmIyMzg1
YmIyNzVjNWY5MGUxMzZhZDhiMgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3Qv
ZXZlbnRzL3dpbmRvdy1vbmVycm9yOC5odG1sCkBAIC0wLDAgKzEsMjcgQEAKKzxodG1sPgorPGJv
ZHk+Cis8cD5UZXN0IHRoYXQgd2luZG93Lm9uZXJyb3IgaXMgY2FsbGVkIG9uIHdpbmRvdyBvYmpl
Y3QuIDxhIGhyZWY9Imh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04NTE5
Ij5CdWcgODUxOTwvYT4uPC9wPgorPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+Cis8c2NyaXB0Pgor
aWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKKyAgICBsYXlvdXRUZXN0Q29udHJvbGxl
ci5kdW1wQXNUZXh0KCk7CisKK2Z1bmN0aW9uIGxvZyhtc2cpIHsKKyAgICBkb2N1bWVudC5nZXRF
bGVtZW50QnlJZCgiY29uc29sZSIpLmlubmVySFRNTCArPSBtc2cgKyAiPGJyPiI7Cit9CisKK3dp
bmRvdy5vbmVycm9yID0gZnVuY3Rpb24obXNnLCB1cmwsIGxpbmUpCit7CisgICAgdXJsID0gdXJs
ID8gdXJsLm1hdGNoKCAvW15cL10rXC8/JC8gKVswXSA6IHVybDsKKyAgICBsb2coIk1haW4gZnJh
bWUgd2luZG93Lm9uZXJyb3I6ICIgKyBtc2cgKyAiIGF0ICIgKyB1cmwgKyAiOiIgKyBsaW5lKTsK
KyAgICBpZiAodGhpcyA9PT0gd2luZG93KSAKKyAgICAgICAgbG9nKCJQQVNTRUQ6IHRoaXMgPT09
IHdpbmRvdyIpOworICAgIGVsc2UKKyAgICAgICAgbG9nKCJGQUlMRUQ6IHRoaXMgPT09IHdpbmRv
dyIpOworfQorCit0aHJvdyAyMDEwOworCis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvcmVzb3VyY2VzL29uZXJy
b3ItaWZyYW1lLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L3Jlc291cmNl
cy9vbmVycm9yLWlmcmFtZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjMxMmZkMTJkM2FkODEwMmE1ZmUxYjUx
NzAzZWMzY2IwMDFhNzRmYzgKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL3NlY3VyaXR5L3Jlc291cmNlcy9vbmVycm9yLWlmcmFtZS5odG1sCkBAIC0wLDAgKzEsMTEg
QEAKKzxzY3JpcHQ+CitmdW5jdGlvbiBoYW5kbGVMb2FkKCkKK3sKKyAgICB3aW5kb3cucGFyZW50
LnBvc3RNZXNzYWdlKCJJRnJhbWVMb2FkZWQiLCAiKiIpOworfQorCit0aHJvdyAiSWZyYW1lRXhj
ZXB0aW9uIjsKKworPC9zY3JpcHQ+Cis8Ym9keSBvbmxvYWQ9ImhhbmRsZUxvYWQoKSI+Cis8L2Jv
ZHk+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L3dpbmRvdy1v
bmVycm9yLWV4Y2VwdGlvbi1pbi1pZnJhbWUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy9zZWN1cml0eS93aW5kb3ctb25lcnJvci1leGNlcHRpb24taW4taWZyYW1lLWV4cGVj
dGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi5kODgzYTQwZGQzMDBiNTViYmY1OWZlMjQ1ZGNlMDdlMDZkMDIz
MDMwCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS93
aW5kb3ctb25lcnJvci1leGNlcHRpb24taW4taWZyYW1lLWV4cGVjdGVkLnR4dApAQCAtMCwwICsx
LDcgQEAKK0NPTlNPTEUgTUVTU0FHRTogbGluZSAwOiBNYWluRnJhbWVFeGNlcHRpb24KK0NPTlNP
TEUgTUVTU0FHRTogbGluZSAwOiBJZnJhbWVFeGNlcHRpb24KK1Rlc3QgdGhhdCBleGNlcHRpb25z
IGluIGlmcmFtZSBhcmUgbm90IHJlcG9ydGVkIHRvIHRoZSBtYWluIGZyYW1lIHdpbmRvdy5vbmVy
cm9yIGhhbmRsZXIuIHdpbmRvdy5vbmVycm9yIHNob3VsZCBwcmludCBleGFjdGx5IG9uZSBsaW5l
LgorCitNYWluIGZyYW1lIHdpbmRvdy5vbmVycm9yOiBNYWluRnJhbWVFeGNlcHRpb24gYXQgdW5k
ZWZpbmVkOjAKK0RPTkUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1
cml0eS93aW5kb3ctb25lcnJvci1leGNlcHRpb24taW4taWZyYW1lLmh0bWwgYi9MYXlvdXRUZXN0
cy9odHRwL3Rlc3RzL3NlY3VyaXR5L3dpbmRvdy1vbmVycm9yLWV4Y2VwdGlvbi1pbi1pZnJhbWUu
aHRtbApuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi41YmVjYTUwYTRmOWE0NDU4MWI1OWY3NDRlMDM1ODM0ZGE5YWUwMTk2
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS93aW5k
b3ctb25lcnJvci1leGNlcHRpb24taW4taWZyYW1lLmh0bWwKQEAgLTAsMCArMSwzOCBAQAorPGh0
bWw+Cis8Ym9keT4KKzxwPlRlc3QgdGhhdCBleGNlcHRpb25zIGluIGlmcmFtZSBhcmUgbm90IHJl
cG9ydGVkIHRvIHRoZSBtYWluIGZyYW1lIHdpbmRvdy5vbmVycm9yIGhhbmRsZXIuCit3aW5kb3cu
b25lcnJvciBzaG91bGQgcHJpbnQgZXhhY3RseSBvbmUgbGluZS48L3A+Cis8ZGl2IGlkPSJyZXN1
bHQiPjwvZGl2PgorPHNjcmlwdD4KK2lmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpIHsK
KyAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7CisgICAgbGF5b3V0VGVzdENv
bnRyb2xsZXIud2FpdFVudGlsRG9uZSgpOworfQorCitmdW5jdGlvbiBsb2cobXNnKSB7CisgICAg
ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInJlc3VsdCIpLmlubmVySFRNTCArPSBtc2cgKyAiPGJy
PiI7Cit9CisKK3dpbmRvdy5vbmVycm9yID0gZnVuY3Rpb24obXNnLCB1cmwsIGxpbmUpCit7Cisg
ICAgdXJsID0gdXJsID8gdXJsLm1hdGNoKCAvW15cL10rXC8/JC8gKVswXSA6IHVybDsKKyAgICBs
b2coIk1haW4gZnJhbWUgd2luZG93Lm9uZXJyb3I6ICIgKyBtc2cgKyAiIGF0ICIgKyB1cmwgKyAi
OiIgKyBsaW5lKTsKK30KKworZnVuY3Rpb24gcmVjZWl2ZU1lc3NhZ2UoZXZlbnQpIHsKKyAgICBp
ZiAoZXZlbnQuZGF0YSA9PT0gIklGcmFtZUxvYWRlZCIpIHsKKyAgICAgICAgbG9nKCJET05FIik7
CisgICAgICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCisgICAgICAgICAgICBs
YXlvdXRUZXN0Q29udHJvbGxlci5ub3RpZnlEb25lKCk7CisgICAgfSBlbHNlCisgICAgICAgIGxv
ZygiRkFJTCAiICsgZXZlbnQuZGF0YSk7Cit9CisKK3dpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJt
ZXNzYWdlIiwgcmVjZWl2ZU1lc3NhZ2UsIGZhbHNlKTsKKwordGhyb3cgIk1haW5GcmFtZUV4Y2Vw
dGlvbiI7CisKKzwvc2NyaXB0PgorPGlmcmFtZSBzcmM9Imh0dHA6Ly9sb2NhbGhvc3Q6ODAwMC9z
ZWN1cml0eS9yZXNvdXJjZXMvb25lcnJvci1pZnJhbWUuaHRtbCIvPgorPC9ib2R5PgorPC9odG1s
PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vZmFzdC9ldmVudHMv
d2luZG93LW9uZXJyb3IxLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9t
aXVtL2Zhc3QvZXZlbnRzL3dpbmRvdy1vbmVycm9yMS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9k
ZSAxMDA3NTUKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
ZjQzYTNhZjE3NGJmNzVmYmNiYjAwODE0NDViNmMyNTkyZWVkYWI1NAotLS0gL2Rldi9udWxsCisr
KyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL2Zhc3QvZXZlbnRzL3dpbmRvdy1vbmVy
cm9yMS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw0IEBACitDT05TT0xFIE1FU1NBR0U6IGxpbmUg
MjU6IFVuY2F1Z2h0IFJlZmVyZW5jZUVycm9yOiBoYWhhaGFfZ29vZF9sdWNrX2ZpbmRpbmdfbWUg
aXMgbm90IGRlZmluZWQNCitUaGlzIHBhZ2UgdGVzdHMgc2V0dGluZyBvbmVycm9yIGhhbmRsZXJz
IHRocm91Z2ggdGhlIERPTS4gSWYgaXQgcGFzc2VzLCB5b3Ugd2lsbCBzZWUgIlBBU1MiIG1lc3Nh
Z2VzIGJlbG93LkJ1ZyA4NTE5Lg0KKw0KK1BBU1M6IGNhdWdodCBnbG9iYWwgZXJyb3I6IFVuY2F1
Z2h0IFJlZmVyZW5jZUVycm9yOiBoYWhhaGFfZ29vZF9sdWNrX2ZpbmRpbmdfbWUgaXMgbm90IGRl
ZmluZWQgYXQgd2luZG93LW9uZXJyb3IxLmh0bWw6MjUNCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9wbGF0Zm9ybS9jaHJvbWl1bS9mYXN0L2V2ZW50cy93aW5kb3ctb25lcnJvcjItZXhwZWN0ZWQu
dHh0IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vZmFzdC9ldmVudHMvd2luZG93LW9u
ZXJyb3IyLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5lMjllNjZhMTY2ZjkzYTc5MGM4NGQyYWVm
MjMyYzg1YzU3ZjI1MDBhCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0v
Y2hyb21pdW0vZmFzdC9ldmVudHMvd2luZG93LW9uZXJyb3IyLWV4cGVjdGVkLnR4dApAQCAtMCww
ICsxLDkgQEAKK0NPTlNPTEUgTUVTU0FHRTogbGluZSAzNDogVW5jYXVnaHQgSW5saW5lIHNjcmlw
dCBleGNlcHRpb24NCitDT05TT0xFIE1FU1NBR0U6IGxpbmUgMjogVW5jYXVnaHQgRXhjZXB0aW9u
IGluIG9ubG9hZA0KK0NPTlNPTEUgTUVTU0FHRTogbGluZSAyMzogVW5jYXVnaHQgRXhjZXB0aW9u
IGluIHNldFRpbWVvdXQNCitUZXN0IHRoYXQgdW5jYXVnaHQgZXhjZXB0aW9ucyB3aWxsIGJlIHJl
cG9ydGVkIHRvIHRoZSB3aW5kb3cub25lcnJvciBoYW5kbGVyLiBCdWcgODUxOS4NCisNCitNYWlu
IGZyYW1lIHdpbmRvdy5vbmVycm9yOiBVbmNhdWdodCBJbmxpbmUgc2NyaXB0IGV4Y2VwdGlvbiBh
dCB3aW5kb3ctb25lcnJvcjIuaHRtbDozNA0KK01haW4gZnJhbWUgd2luZG93Lm9uZXJyb3I6IFVu
Y2F1Z2h0IEV4Y2VwdGlvbiBpbiBvbmxvYWQgYXQgd2luZG93LW9uZXJyb3IyLmh0bWw6Mg0KK01h
aW4gZnJhbWUgd2luZG93Lm9uZXJyb3I6IFVuY2F1Z2h0IEV4Y2VwdGlvbiBpbiBzZXRUaW1lb3V0
IGF0IHdpbmRvdy1vbmVycm9yMi5odG1sOjIzDQorDQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
cGxhdGZvcm0vY2hyb21pdW0vZmFzdC9ldmVudHMvd2luZG93LW9uZXJyb3IzLWV4cGVjdGVkLnR4
dCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL2Zhc3QvZXZlbnRzL3dpbmRvdy1vbmVy
cm9yMy1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uODIzNzNhYmVmOTRhNzc2NjczMjZmN2E2NWRm
MGRiOGQxOTUzMjQzMgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2No
cm9taXVtL2Zhc3QvZXZlbnRzL3dpbmRvdy1vbmVycm9yMy1leHBlY3RlZC50eHQKQEAgLTAsMCAr
MSw1IEBACitDT05TT0xFIE1FU1NBR0U6IGxpbmUgMTU6IFVuY2F1Z2h0IFJlZmVyZW5jZUVycm9y
OiB1bmtub3duT2JqZWN0IGlzIG5vdCBkZWZpbmVkDQorWW91IHNob3VsZCBzZWUgYSBtZXNzYWdl
IGlmIHdpbmRvdy5vbmVycm9yIGlzIHdvcmtpbmcgcHJvcGVybHkgZm9yIHRoaXMgdGVzdC5CdWcg
ODUxOS4NCisNCitFcnJvciBjYXVnaHQgc3VjY2Vzc2Z1bGx5OiBVbmNhdWdodCBSZWZlcmVuY2VF
cnJvcjogdW5rbm93bk9iamVjdCBpcyBub3QgZGVmaW5lZCBGaWxlOiB3aW5kb3ctb25lcnJvcjMu
aHRtbCBMaW5lOiAxNQ0KKw0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9t
aXVtL2Zhc3QvZXZlbnRzL3dpbmRvdy1vbmVycm9yNC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0
cy9wbGF0Zm9ybS9jaHJvbWl1bS9mYXN0L2V2ZW50cy93aW5kb3ctb25lcnJvcjQtZXhwZWN0ZWQu
dHh0Cm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjA0M2ViYTMyNzA2OWY0OTgyY2EzZTA5NWNjYWY5NTY3YmViZDRlZjIK
LS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS9mYXN0L2V2
ZW50cy93aW5kb3ctb25lcnJvcjQtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNSBAQAorQ09OU09M
RSBNRVNTQUdFOiBsaW5lIDE6IFVuY2F1Z2h0IFJlZmVyZW5jZUVycm9yOiBJbnZhbGlkIGxlZnQt
aGFuZCBzaWRlIGluIGFzc2lnbm1lbnQNCitZb3Ugc2hvdWxkIHNlZSBhIGxvZyByZWNvcmQgaWYg
d2luZG93Lm9uZXJyb3IgaXMgd29ya2luZyBwcm9wZXJseSBmb3IgdGhpcyB0ZXN0LkJ1ZyA4NTE5
Lg0KKw0KK0Vycm9yIGNhdWdodCBzdWNjZXNzZnVsbHk6IFVuY2F1Z2h0IFJlZmVyZW5jZUVycm9y
OiBJbnZhbGlkIGxlZnQtaGFuZCBzaWRlIGluIGFzc2lnbm1lbnQgRmlsZTogd2luZG93LW9uZXJy
b3I0Lmh0bWwgTGluZTogMQ0KKw0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2No
cm9taXVtL2Zhc3QvZXZlbnRzL3dpbmRvdy1vbmVycm9yNS1leHBlY3RlZC50eHQgYi9MYXlvdXRU
ZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS9mYXN0L2V2ZW50cy93aW5kb3ctb25lcnJvcjUtZXhwZWN0
ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLmQyZjZhZDUzZjMyNGM4YjA2YjE4NjNjYWVkNDdmYWE0NWI0MzRk
MWQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS9mYXN0
L2V2ZW50cy93aW5kb3ctb25lcnJvcjUtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNSBAQAorQ09O
U09MRSBNRVNTQUdFOiBsaW5lIDE6IFVuY2F1Z2h0IFN5bnRheEVycm9yOiBVbmV4cGVjdGVkIGVu
ZCBvZiBpbnB1dA0KK1Rlc3QgdGhhdCB3aW5kb3cub25lcnJvciBpcyBpbnZva2VkIGZvciBzeW50
YXggZXJyb3IgaW4gZXZhbC4gWW91IHNob3VsZCBzZWUgYSBsb2cgcmVjb3JkIGlmIHdpbmRvdy5v
bmVycm9yIGlzIHdvcmtpbmcgcHJvcGVybHkgZm9yIHRoaXMgdGVzdC5CdWcgODUxOS4NCisNCitF
cnJvciBjYXVnaHQgc3VjY2Vzc2Z1bGx5OiBVbmNhdWdodCBTeW50YXhFcnJvcjogVW5leHBlY3Rl
ZCBlbmQgb2YgaW5wdXQgRmlsZTogd2luZG93LW9uZXJyb3I1Lmh0bWwgTGluZTogMQ0KKw0KZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL2Zhc3QvZXZlbnRzL3dpbmRv
dy1vbmVycm9yNi1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS9m
YXN0L2V2ZW50cy93aW5kb3ctb25lcnJvcjYtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAw
NzU1CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjlhODEw
YWVhNzEzNGExNzEwYzE3NmQ4NTIyM2ZhOTE4YWViNWU1MTcKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS9mYXN0L2V2ZW50cy93aW5kb3ctb25lcnJvcjYt
ZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNSBAQAorQ09OU09MRSBNRVNTQUdFOiBsaW5lIDIxOiBV
bmNhdWdodCBTeW50YXhFcnJvcjogVW5leHBlY3RlZCB0b2tlbiApDQorVGVzdCB0aGF0IHN5bnRh
eCBlcnJvciB3aWxsIGJlIHJlcG9ydGVkIHRvIHRoZSB3aW5kb3cub25lcnJvciBoYW5kbGVyLiBC
dWcgODUxOS4NCisNCitNYWluIGZyYW1lIHdpbmRvdy5vbmVycm9yOiBVbmNhdWdodCBTeW50YXhF
cnJvcjogVW5leHBlY3RlZCB0b2tlbiApIGF0IHdpbmRvdy1vbmVycm9yNi5odG1sOjIxDQorDQpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vZmFzdC9ldmVudHMvd2lu
ZG93LW9uZXJyb3I3LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVt
L2Zhc3QvZXZlbnRzL3dpbmRvdy1vbmVycm9yNy1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAx
MDA3NTUKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMDVl
ZmM1ZjhkYjMxNTE1ZjU2MTg0NmFkZmRiZTUyYjJkZDVmYmFhMAotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL2Zhc3QvZXZlbnRzL3dpbmRvdy1vbmVycm9y
Ny1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw2IEBACitDT05TT0xFIE1FU1NBR0U6IGxpbmUgMTc6
IFVuY2F1Z2h0IE5lc3RlZCBlcnJvcg0KK0NPTlNPTEUgTUVTU0FHRTogbGluZSAyMDogVW5jYXVn
aHQgMjAxMA0KK1Rlc3QgdGhhdCBleGNlcHRpb24gaW4gd2luZG93Lm9uZXJyb3Igd29uJ3QgbGVh
ZCB0byByZWN1cnNpdmUgd2luZG93Lm9uZXJyb3IgY2FsbC4gQnVnIDg1MTkuDQorDQorTWFpbiBm
cmFtZSB3aW5kb3cub25lcnJvcjogVW5jYXVnaHQgMjAxMCBhdCB3aW5kb3ctb25lcnJvcjcuaHRt
bDoyMA0KKw0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL2Zhc3Qv
ZXZlbnRzL3dpbmRvdy1vbmVycm9yOC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9y
bS9jaHJvbWl1bS9mYXN0L2V2ZW50cy93aW5kb3ctb25lcnJvcjgtZXhwZWN0ZWQudHh0Cm5ldyBm
aWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLmU4YTc1N2ZhMGE3YThkMjY4NDgxOGEyZWE2OWY2NzNiZDQ5MThjMjUKLS0tIC9kZXYv
bnVsbAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS9mYXN0L2V2ZW50cy93aW5k
b3ctb25lcnJvcjgtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNiBAQAorQ09OU09MRSBNRVNTQUdF
OiBsaW5lIDIzOiBVbmNhdWdodCAyMDEwDQorVGVzdCB0aGF0IHdpbmRvdy5vbmVycm9yIGlzIGNh
bGxlZCBvbiB3aW5kb3cgb2JqZWN0LiBCdWcgODUxOS4NCisNCitNYWluIGZyYW1lIHdpbmRvdy5v
bmVycm9yOiBVbmNhdWdodCAyMDEwIGF0IHdpbmRvdy1vbmVycm9yOC5odG1sOjIzDQorUEFTU0VE
OiB0aGlzID09PSB3aW5kb3cNCisNCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9j
aHJvbWl1bS9odHRwL3Rlc3RzL3NlY3VyaXR5L3dpbmRvdy1vbmVycm9yLWV4Y2VwdGlvbi1pbi1p
ZnJhbWUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vaHR0cC90
ZXN0cy9zZWN1cml0eS93aW5kb3ctb25lcnJvci1leGNlcHRpb24taW4taWZyYW1lLWV4cGVjdGVk
LnR4dApuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi43ZDkwNzRhMDFhYjQ1YTU2ZjdlM2I3YzVjYzMzNGI5ZTNmMTdjYWVk
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vaHR0cC90
ZXN0cy9zZWN1cml0eS93aW5kb3ctb25lcnJvci1leGNlcHRpb24taW4taWZyYW1lLWV4cGVjdGVk
LnR4dApAQCAtMCwwICsxLDcgQEAKK0NPTlNPTEUgTUVTU0FHRTogbGluZSAzMzogVW5jYXVnaHQg
TWFpbkZyYW1lRXhjZXB0aW9uDQorQ09OU09MRSBNRVNTQUdFOiBsaW5lIDc6IFVuY2F1Z2h0IElm
cmFtZUV4Y2VwdGlvbg0KK1Rlc3QgdGhhdCBleGNlcHRpb25zIGluIGlmcmFtZSBhcmUgbm90IHJl
cG9ydGVkIHRvIHRoZSBtYWluIGZyYW1lIHdpbmRvdy5vbmVycm9yIGhhbmRsZXIuIHdpbmRvdy5v
bmVycm9yIHNob3VsZCBwcmludCBleGFjdGx5IG9uZSBsaW5lLg0KKw0KK01haW4gZnJhbWUgd2lu
ZG93Lm9uZXJyb3I6IFVuY2F1Z2h0IE1haW5GcmFtZUV4Y2VwdGlvbiBhdCB3aW5kb3ctb25lcnJv
ci1leGNlcHRpb24taW4taWZyYW1lLmh0bWw6MzMNCitET05FDQorDQpkaWZmIC0tZ2l0IGEvV2Vi
Q29yZS9BbmRyb2lkLmpzY2JpbmRpbmdzLm1rIGIvV2ViQ29yZS9BbmRyb2lkLmpzY2JpbmRpbmdz
Lm1rCmluZGV4IGUwN2VkMWU0ZmU1ODA4ZTAyN2E3MWI4ZTc2YzRkNDUwMzFjOTRhMTYuLjc0OWJh
MTQxZmYwY2ZlNTM5N2U2YzMyMmFhMGEwZDY0Yjc3ODFhYzkgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUv
QW5kcm9pZC5qc2NiaW5kaW5ncy5taworKysgYi9XZWJDb3JlL0FuZHJvaWQuanNjYmluZGluZ3Mu
bWsKQEAgLTk1LDYgKzk1LDcgQEAgTE9DQUxfU1JDX0ZJTEVTICs9IFwKIAliaW5kaW5ncy9qcy9K
U0RldmljZU9yaWVudGF0aW9uRXZlbnRDdXN0b20uY3BwIFwKIAliaW5kaW5ncy9qcy9KU0RvY3Vt
ZW50Q3VzdG9tLmNwcCBcCiAJYmluZGluZ3MvanMvSlNFbGVtZW50Q3VzdG9tLmNwcCBcCisJYmlu
ZGluZ3MvanMvSlNFcnJvckhhbmRsZXIuY3BwIFwKIAliaW5kaW5ncy9qcy9KU0V2ZW50Q3VzdG9t
LmNwcCBcCiAJYmluZGluZ3MvanMvSlNFdmVudExpc3RlbmVyLmNwcCBcCiAJYmluZGluZ3MvanMv
SlNFdmVudFRhcmdldC5jcHAgXApAQCAtMTU1LDcgKzE1Niw2IEBAIExPQ0FMX1NSQ19GSUxFUyAr
PSBcCiAJYmluZGluZ3MvanMvSlNXZWJLaXRQb2ludEN1c3RvbS5jcHAgXAogCWJpbmRpbmdzL2pz
L0pTV29ya2VyQ29udGV4dEJhc2UuY3BwIFwKIAliaW5kaW5ncy9qcy9KU1dvcmtlckNvbnRleHRD
dXN0b20uY3BwIFwKLQliaW5kaW5ncy9qcy9KU1dvcmtlckNvbnRleHRFcnJvckhhbmRsZXIuY3Bw
IFwKIAliaW5kaW5ncy9qcy9KU1dvcmtlckN1c3RvbS5jcHAgXAogCWJpbmRpbmdzL2pzL0pTWE1M
SHR0cFJlcXVlc3RDdXN0b20uY3BwIFwKIAliaW5kaW5ncy9qcy9KU1hNTEh0dHBSZXF1ZXN0VXBs
b2FkQ3VzdG9tLmNwcCBcCmRpZmYgLS1naXQgYS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0IGIvV2Vi
Q29yZS9DTWFrZUxpc3RzLnR4dAppbmRleCBlYjQyYzVjYWJlZjYxODgyYWRmZDIyZWIxZTA0OTU2
NjlkY2EyYjJmLi5jMWJkOTc3OGY0OTE1YWRhNTMxODA3ZmIzYTczMGRjNjFiYTk0NjA3IDEwMDY0
NAotLS0gYS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CisrKyBiL1dlYkNvcmUvQ01ha2VMaXN0cy50
eHQKQEAgLTYxOSw2ICs2MTksNyBAQCBTRVQoV2ViQ29yZV9TT1VSQ0VTCiAgICAgYmluZGluZ3Mv
anMvSlNET01XaW5kb3dTaGVsbC5jcHAKICAgICBiaW5kaW5ncy9qcy9KU0RPTVdyYXBwZXIuY3Bw
CiAgICAgYmluZGluZ3MvanMvSlNFbGVtZW50Q3VzdG9tLmNwcAorICAgIGJpbmRpbmdzL2pzL0pT
RXJyb3JIYW5kbGVyLmNwcAogICAgIGJpbmRpbmdzL2pzL0pTRXZlbnRDdXN0b20uY3BwCiAgICAg
YmluZGluZ3MvanMvSlNFdmVudExpc3RlbmVyLmNwcAogICAgIGJpbmRpbmdzL2pzL0pTRXZlbnRT
b3VyY2VDdXN0b20uY3BwCkBAIC02ODEsNyArNjgyLDYgQEAgU0VUKFdlYkNvcmVfU09VUkNFUwog
ICAgIGJpbmRpbmdzL2pzL0pTV2ViS2l0UG9pbnRDdXN0b20uY3BwCiAgICAgYmluZGluZ3MvanMv
SlNXb3JrZXJDb250ZXh0QmFzZS5jcHAKICAgICBiaW5kaW5ncy9qcy9KU1dvcmtlckNvbnRleHRD
dXN0b20uY3BwCi0gICAgYmluZGluZ3MvanMvSlNXb3JrZXJDb250ZXh0RXJyb3JIYW5kbGVyLmNw
cAogICAgIGJpbmRpbmdzL2pzL0pTV29ya2VyQ3VzdG9tLmNwcAogICAgIGJpbmRpbmdzL2pzL0pT
WE1MSHR0cFJlcXVlc3RDdXN0b20uY3BwCiAgICAgYmluZGluZ3MvanMvSlNYTUxIdHRwUmVxdWVz
dFVwbG9hZEN1c3RvbS5jcHAKZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29y
ZS9DaGFuZ2VMb2cKaW5kZXggZTNlYzM5ZGUxMWFiOTc2OGUyMjgyOWE5MjY5M2ZiM2Y4ZmM3OWI0
OC4uYWNkZjMzMzNiNTI5ZTU3YmI4MDhhZDMzNzc1ZTA4MTg0N2JlZmU1NSAxMDA2NDQKLS0tIGEv
V2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSw2OCBA
QAorMjAxMC0wOC0yMyAgWXVyeSBTZW1pa2hhdHNreSAgPHl1cnlzQGNocm9taXVtLm9yZz4KKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBXZWJDb3JlIGRv
ZXNuJ3QgZmlyZSB3aW5kb3cub25lcnJvciBldmVudCB3aGVuIHVuY2F1Z2h0IEphdmFTY3JpcHQg
ZXhjZXB0aW9ucyBhcmUgdGhyb3duCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD04NTE5CisKKyAgICAgICAgVW5jYXVnaHQgZXhjZXB0aW9ucyBhcmUgcHJv
cGFnYXRlZCB0byB3aW5kb3cub25lcnJvciBoYW5kZXIgaWYgb25lIGlzIHByZXNlbnQuCisgICAg
ICAgIFRoZSBoYW5kbGVyIGlzIGV4cGVjdGVkIHRvIGJlIGEgZnVuY3Rpb24gYWNjZXB0aW5nIHRo
cmVlIGFyZ3VtZW50czogZXJyb3IgbWVzc2FnZSwKKyAgICAgICAgcmVzb3VyY2UgdXJsIGFuZCBs
aW5lIG51bWJlciB3aGVyZSB0aGUgZXhjZXB0aW9uIG9jY3VyZWQuCisKKyAgICAgICAgVGVzdHM6
IGZhc3QvZXZlbnRzL3dpbmRvdy1vbmVycm9yMS5odG1sCisgICAgICAgICAgICAgICBmYXN0L2V2
ZW50cy93aW5kb3ctb25lcnJvcjIuaHRtbAorICAgICAgICAgICAgICAgZmFzdC9ldmVudHMvd2lu
ZG93LW9uZXJyb3IzLmh0bWwKKyAgICAgICAgICAgICAgIGZhc3QvZXZlbnRzL3dpbmRvdy1vbmVy
cm9yNC5odG1sCisgICAgICAgICAgICAgICBmYXN0L2V2ZW50cy93aW5kb3ctb25lcnJvcjUuaHRt
bAorICAgICAgICAgICAgICAgZmFzdC9ldmVudHMvd2luZG93LW9uZXJyb3I2Lmh0bWwKKyAgICAg
ICAgICAgICAgIGZhc3QvZXZlbnRzL3dpbmRvdy1vbmVycm9yNy5odG1sCisgICAgICAgICAgICAg
ICBmYXN0L2V2ZW50cy93aW5kb3ctb25lcnJvcjguaHRtbAorICAgICAgICAgICAgICAgaHR0cC90
ZXN0cy9zZWN1cml0eS93aW5kb3ctb25lcnJvci1leGNlcHRpb24taW4taWZyYW1lLmh0bWwKKwor
ICAgICAgICAqIEFuZHJvaWQuanNjYmluZGluZ3MubWs6CisgICAgICAgICogQ01ha2VMaXN0cy50
eHQ6CisgICAgICAgICogR05VbWFrZWZpbGUuYW06CisgICAgICAgICogV2ViQ29yZS5neXBpOgor
ICAgICAgICAqIFdlYkNvcmUub3JkZXI6CisgICAgICAgICogV2ViQ29yZS5wcm86CisgICAgICAg
ICogV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2o6CisgICAgICAgICogV2ViQ29yZS54Y29k
ZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pTQmluZGluZ3NB
bGxJbk9uZS5jcHA6CisgICAgICAgICogYmluZGluZ3MvanMvSlNFcnJvckhhbmRsZXIuY3BwOiBB
ZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkpTRXJyb3JIYW5kbGVyOjpKU0Vycm9ySGFuZGxlcik6
CisgICAgICAgIChXZWJDb3JlOjpKU0Vycm9ySGFuZGxlcjo6fkpTRXJyb3JIYW5kbGVyKToKKyAg
ICAgICAgKFdlYkNvcmU6OkpTRXJyb3JIYW5kbGVyOjpoYW5kbGVFdmVudCk6CisgICAgICAgICog
YmluZGluZ3MvanMvSlNFcnJvckhhbmRsZXIuaDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpK
U0Vycm9ySGFuZGxlcjo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OmNyZWF0ZUpTRXJyb3JI
YW5kbGVyKToKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU1dvcmtlckNvbnRleHRFcnJvckhhbmRs
ZXIuY3BwOiBSZW1vdmVkLgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pTV29ya2VyQ29udGV4dEVy
cm9ySGFuZGxlci5oOiBSZW1vdmVkLiBUaGlzIGNsYXNzIHdhcyByZWZhY3RvcmVkIGludG8gbW9y
ZSBnZW5lcmFsCisgICAgICAgIEpTRXJyb3JIYW5kbGVyIHRoYXQgcmVwcmVzZW50cyBnbG9iYWwg
b25lcnJvIGhhbmRlciBvbiBXb3JrZXIgQ29udGV4dCBvciBvbiBET01XaW5kb3cuCisgICAgICAg
ICogYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG06CisgICAgICAgICogYmluZGlu
Z3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9yVjgucG06CisgICAgICAgICogYmluZGluZ3MvdjgvVjhD
b25zb2xlTWVzc2FnZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpWOENvbnNvbGVNZXNzYWdlOjpk
aXNwYXRjaE5vdyk6CisgICAgICAgIChXZWJDb3JlOjpWOENvbnNvbGVNZXNzYWdlOjpoYW5kbGVy
KToKKyAgICAgICAgKiBiaW5kaW5ncy92OC9WOENvbnNvbGVNZXNzYWdlLmg6CisgICAgICAgICog
YmluZGluZ3MvdjgvVjhXaW5kb3dFcnJvckhhbmRsZXIuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdl
YkNvcmU6OlY4V2luZG93RXJyb3JIYW5kbGVyOjpWOFdpbmRvd0Vycm9ySGFuZGxlcik6CisgICAg
ICAgIChXZWJDb3JlOjpWOFdpbmRvd0Vycm9ySGFuZGxlcjo6Y2FsbExpc3RlbmVyRnVuY3Rpb24p
OgorICAgICAgICAqIGJpbmRpbmdzL3Y4L1Y4V2luZG93RXJyb3JIYW5kbGVyLmg6IEFkZGVkLgor
ICAgICAgICAoV2ViQ29yZTo6VjhXaW5kb3dFcnJvckhhbmRsZXI6OmNyZWF0ZSk6CisgICAgICAg
ICogZG9tL0RvY3VtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50OjpEb2N1bWVu
dCk6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6cmVwb3J0RXhjZXB0aW9uKToKKyAgICAg
ICAgKiBkb20vRG9jdW1lbnQuaDoKKyAgICAgICAgKiBkb20vU2NyaXB0RXhlY3V0aW9uQ29udGV4
dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTY3JpcHRFeGVjdXRpb25Db250ZXh0OjpTY3JpcHRF
eGVjdXRpb25Db250ZXh0KToKKyAgICAgICAgKFdlYkNvcmU6OlNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHQ6Omludm9rZU9uRXJyb3JIYW5kbGVyKTogdXRpbGl0eSBtZXRob2QgdGhhdCBhbGxvd3MgdG8g
aW52b2tlIG9uZXJyb3IKKyAgICAgICAgaGFuZGVyIGFjY2VwdGluZyB0aHJlZSBwYXJhbWV0ZXJz
KG1lc3NhZ2UsIHVybCBhbmQgbGluZSBudW1iZXIpIGZvciBXaW5kb3cgYW5kIFdvcmtlciBDb250
ZXh0LgorICAgICAgICAqIGRvbS9TY3JpcHRFeGVjdXRpb25Db250ZXh0Lmg6CisgICAgICAgICog
d29ya2Vycy9Xb3JrZXJDb250ZXh0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OldvcmtlckNvbnRl
eHQ6OldvcmtlckNvbnRleHQpOgorICAgICAgICAoV2ViQ29yZTo6V29ya2VyQ29udGV4dDo6cmVw
b3J0RXhjZXB0aW9uKToKKyAgICAgICAgKiB3b3JrZXJzL1dvcmtlckNvbnRleHQuaDoKKwogMjAx
MC0wOC0yMyAgQXJpeWEgSGlkYXlhdCAgPGFyaXlhQHNlbmNoYS5jb20+CiAKICAgICAgICAgUmV2
aWV3ZWQgYnkgS2VubmV0aCBSb2hkZSBDaHJpc3RpYW5zZW4uCmRpZmYgLS1naXQgYS9XZWJDb3Jl
L0dOVW1ha2VmaWxlLmFtIGIvV2ViQ29yZS9HTlVtYWtlZmlsZS5hbQppbmRleCBmMWVjNDQ1NDIx
YzJkZjM4Y2VkYzVkNjFhNWM5Y2M5NDE3NDBhYzIxLi5jNzlhYjVlNmUzNmEwMzE5NmU1ZjFjYjU5
NWM1NGU0N2EzNzVmY2FjIDEwMDY0NAotLS0gYS9XZWJDb3JlL0dOVW1ha2VmaWxlLmFtCisrKyBi
L1dlYkNvcmUvR05VbWFrZWZpbGUuYW0KQEAgLTY4MCw2ICs2ODAsOCBAQCB3ZWJjb3JlX3NvdXJj
ZXMgKz0gXAogCVdlYkNvcmUvYmluZGluZ3MvanMvSlNEZXZpY2VPcmllbnRhdGlvbkV2ZW50Q3Vz
dG9tLmNwcCBcCiAJV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RvY3VtZW50Q3VzdG9tLmNwcCBcCiAJ
V2ViQ29yZS9iaW5kaW5ncy9qcy9KU0VsZW1lbnRDdXN0b20uY3BwIFwKKwlXZWJDb3JlL2JpbmRp
bmdzL2pzL0pTRXJyb3JIYW5kbGVyLmNwcCBcCisJV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0Vycm9y
SGFuZGxlci5oIFwKIAlXZWJDb3JlL2JpbmRpbmdzL2pzL0pTRXZlbnRDdXN0b20uY3BwIFwKIAlX
ZWJDb3JlL2JpbmRpbmdzL2pzL0pTRXZlbnRMaXN0ZW5lci5jcHAgXAogCVdlYkNvcmUvYmluZGlu
Z3MvanMvSlNFdmVudExpc3RlbmVyLmggXApAQCAtNzUyLDggKzc1NCw2IEBAIHdlYmNvcmVfc291
cmNlcyArPSBcCiAJV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1RyZWVXYWxrZXJDdXN0b20uY3BwIFwK
IAlXZWJDb3JlL2JpbmRpbmdzL2pzL0pTV2ViS2l0Q1NTTWF0cml4Q3VzdG9tLmNwcCBcCiAJV2Vi
Q29yZS9iaW5kaW5ncy9qcy9KU1dlYktpdFBvaW50Q3VzdG9tLmNwcCBcCi0JV2ViQ29yZS9iaW5k
aW5ncy9qcy9KU1dvcmtlckNvbnRleHRFcnJvckhhbmRsZXIuY3BwIFwKLQlXZWJDb3JlL2JpbmRp
bmdzL2pzL0pTV29ya2VyQ29udGV4dEVycm9ySGFuZGxlci5oIFwKIAlXZWJDb3JlL2JpbmRpbmdz
L2pzL0pTWE1MSHR0cFJlcXVlc3RDdXN0b20uY3BwIFwKIAlXZWJDb3JlL2JpbmRpbmdzL2pzL0pT
WE1MSHR0cFJlcXVlc3RVcGxvYWRDdXN0b20uY3BwIFwKIAlXZWJDb3JlL2JpbmRpbmdzL2pzL0pT
WFNMVFByb2Nlc3NvckN1c3RvbS5jcHAgXApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9XZWJDb3JlLmd5
cGkgYi9XZWJDb3JlL1dlYkNvcmUuZ3lwaQppbmRleCBmNDczOGE1MmQ5OTkwMjY5MjY4MDMzMTQ5
NjZmYjUwZmVmOGU3ZWIwLi41NTRkZDQxYzAxZjMyMzc0ZmE3ZTI3ZGNjN2EwM2ZmNDc0YmY2YmEx
IDEwMDY0NAotLS0gYS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQorKysgYi9XZWJDb3JlL1dlYkNvcmUu
Z3lwaQpAQCAtNTc0LDYgKzU3NCw4IEBACiAgICAgICAgICAgICAnYmluZGluZ3MvanMvSlNET01X
cmFwcGVyLmNwcCcsCiAgICAgICAgICAgICAnYmluZGluZ3MvanMvSlNET01XcmFwcGVyLmgnLAog
ICAgICAgICAgICAgJ2JpbmRpbmdzL2pzL0pTRWxlbWVudEN1c3RvbS5jcHAnLAorICAgICAgICAg
ICAgJ2JpbmRpbmdzL2pzL0pTRXJyb3JIYW5kbGVyLmNwcCcsCisgICAgICAgICAgICAnYmluZGlu
Z3MvanMvSlNFcnJvckhhbmRsZXIuaCcsCiAgICAgICAgICAgICAnYmluZGluZ3MvanMvSlNFdmVu
dEN1c3RvbS5jcHAnLAogICAgICAgICAgICAgJ2JpbmRpbmdzL2pzL0pTRXZlbnRMaXN0ZW5lci5j
cHAnLAogICAgICAgICAgICAgJ2JpbmRpbmdzL2pzL0pTRXZlbnRMaXN0ZW5lci5oJywKQEAgLTY2
Niw4ICs2NjgsNiBAQAogICAgICAgICAgICAgJ2JpbmRpbmdzL2pzL0pTV29ya2VyQ29udGV4dEJh
c2UuY3BwJywKICAgICAgICAgICAgICdiaW5kaW5ncy9qcy9KU1dvcmtlckNvbnRleHRCYXNlLmgn
LAogICAgICAgICAgICAgJ2JpbmRpbmdzL2pzL0pTV29ya2VyQ29udGV4dEN1c3RvbS5jcHAnLAot
ICAgICAgICAgICAgJ2JpbmRpbmdzL2pzL0pTV29ya2VyQ29udGV4dEVycm9ySGFuZGxlci5jcHAn
LAotICAgICAgICAgICAgJ2JpbmRpbmdzL2pzL0pTV29ya2VyQ29udGV4dEVycm9ySGFuZGxlci5o
JywKICAgICAgICAgICAgICdiaW5kaW5ncy9qcy9KU1dvcmtlckN1c3RvbS5jcHAnLAogICAgICAg
ICAgICAgJ2JpbmRpbmdzL2pzL0pTWE1MSHR0cFJlcXVlc3RDdXN0b20uY3BwJywKICAgICAgICAg
ICAgICdiaW5kaW5ncy9qcy9KU1hNTEh0dHBSZXF1ZXN0VXBsb2FkQ3VzdG9tLmNwcCcsCkBAIC05
MjMsNiArOTIzLDggQEAKICAgICAgICAgICAgICdiaW5kaW5ncy92OC9WOFNWR1BPRFR5cGVXcmFw
cGVyLmgnLAogICAgICAgICAgICAgJ2JpbmRpbmdzL3Y4L1Y4VXRpbGl0aWVzLmNwcCcsCiAgICAg
ICAgICAgICAnYmluZGluZ3MvdjgvVjhVdGlsaXRpZXMuaCcsCisgICAgICAgICAgICAnYmluZGlu
Z3MvdjgvVjhXaW5kb3dFcnJvckhhbmRsZXIuY3BwJywKKyAgICAgICAgICAgICdiaW5kaW5ncy92
OC9WOFdpbmRvd0Vycm9ySGFuZGxlci5oJywKICAgICAgICAgICAgICdiaW5kaW5ncy92OC9WOFdv
cmtlckNvbnRleHRFcnJvckhhbmRsZXIuY3BwJywKICAgICAgICAgICAgICdiaW5kaW5ncy92OC9W
OFdvcmtlckNvbnRleHRFcnJvckhhbmRsZXIuaCcsCiAgICAgICAgICAgICAnYmluZGluZ3Mvdjgv
VjhXb3JrZXJDb250ZXh0RXZlbnRMaXN0ZW5lci5jcHAnLApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9X
ZWJDb3JlLm9yZGVyIGIvV2ViQ29yZS9XZWJDb3JlLm9yZGVyCmluZGV4IDQxMjQ3NzczYmEzN2Vm
ZDUwNWViN2YxZWM1ODQ3OGVjNTYyZmMwOTcuLmZiMThkNjQ4MjcyMzFlYmNiZTlhMGZiMWVlNDQ2
MWY2M2ZhNTA3MmMgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvV2ViQ29yZS5vcmRlcgorKysgYi9XZWJD
b3JlL1dlYkNvcmUub3JkZXIKQEAgLTI1MjE3LDEzICsyNTIxNyw5IEBAIF9fWk43V2ViQ29yZTE1
SlNXb3JrZXJDb250ZXh0MTBzZXRUaW1lb3V0RVBOM0pTQzlFeGVjU3RhdGVFUktOUzFfN0FyZ0xp
c3RFCiBfX1pON1dlYkNvcmUxM1dvcmtlckNvbnRleHQxMHNldFRpbWVvdXRFUE5TXzE1U2NoZWR1
bGVkQWN0aW9uRWkKIF9fWk43V2ViQ29yZTE3V29ya2VyU2hhcmVkVGltZXIxMXNldEZpcmVUaW1l
RWQKIF9fWk43V2ViQ29yZTE1U2NoZWR1bGVkQWN0aW9uN2V4ZWN1dGVFUE5TXzEzV29ya2VyQ29u
dGV4dEUKLV9fWk43V2ViQ29yZTI3SlNXb3JrZXJDb250ZXh0RXJyb3JIYW5kbGVyQzFFUE4zSlND
OEpTT2JqZWN0RVMzX2JQTlNfMTVET01XcmFwcGVyV29ybGRFCi1fX1pON1dlYkNvcmUyN0pTV29y
a2VyQ29udGV4dEVycm9ySGFuZGxlckMyRVBOM0pTQzhKU09iamVjdEVTM19iUE5TXzE1RE9NV3Jh
cHBlcldvcmxkRQogX19aTjdXZWJDb3JlMTBFcnJvckV2ZW50QzFFUktOU182U3RyaW5nRVMzX2oK
IF9fWk43V2ViQ29yZTEwRXJyb3JFdmVudEMyRVJLTlNfNlN0cmluZ0VTM19qCi1fX1pON1dlYkNv
cmUyN0pTV29ya2VyQ29udGV4dEVycm9ySGFuZGxlcjExaGFuZGxlRXZlbnRFUE5TXzIyU2NyaXB0
RXhlY3V0aW9uQ29udGV4dEVQTlNfNUV2ZW50RQogX19aTjdXZWJDb3JlMTBFcnJvckV2ZW50RDBF
dgotX19aTjdXZWJDb3JlMjdKU1dvcmtlckNvbnRleHRFcnJvckhhbmRsZXJEMEV2CiBfX1pON1dl
YkNvcmUxN2pzV29ya2VyT25tZXNzYWdlRVBOM0pTQzlFeGVjU3RhdGVFTlMwXzdKU1ZhbHVlRVJL
TlMwXzEwSWRlbnRpZmllckUKIF9fWk43V2ViQ29yZTM0anNXb3JrZXJQcm90b3R5cGVGdW5jdGlv
blRlcm1pbmF0ZUVQTjNKU0M5RXhlY1N0YXRlRVBOUzBfOEpTT2JqZWN0RU5TMF83SlNWYWx1ZUVS
S05TMF83QXJnTGlzdEUKIF9fWlRobjhfTjdXZWJDb3JlMjBXb3JrZXJNZXNzYWdpbmdQcm94eTE5
d29ya2VyQ29udGV4dENsb3NlZEV2CmRpZmYgLS1naXQgYS9XZWJDb3JlL1dlYkNvcmUucHJvIGIv
V2ViQ29yZS9XZWJDb3JlLnBybwppbmRleCAxM2FhMDczMzU5YzFmNGQ1MjNhMGRlYThhMGY0ZjE3
MTA0NGZhNzA3Li5iNzBiN2FjY2NhMjBlMGU4OWUwOTUwZDJjOTkxZTIwNWVlOTJlZmFjIDEwMDY0
NAotLS0gYS9XZWJDb3JlL1dlYkNvcmUucHJvCisrKyBiL1dlYkNvcmUvV2ViQ29yZS5wcm8KQEAg
LTMxOSw2ICszMTksNyBAQCBTT1VSQ0VTICs9IFwKICAgICBiaW5kaW5ncy9qcy9KU0RPTVdpbmRv
d1NoZWxsLmNwcCBcCiAgICAgYmluZGluZ3MvanMvSlNET01XcmFwcGVyLmNwcCBcCiAgICAgYmlu
ZGluZ3MvanMvSlNFbGVtZW50Q3VzdG9tLmNwcCBcCisgICAgYmluZGluZ3MvanMvSlNFcnJvckhh
bmRsZXIuY3BwIFwKICAgICBiaW5kaW5ncy9qcy9KU0V2ZW50Q3VzdG9tLmNwcCBcCiAgICAgYmlu
ZGluZ3MvanMvSlNFdmVudFNvdXJjZUN1c3RvbS5jcHAgXAogICAgIGJpbmRpbmdzL2pzL0pTRXZl
bnRUYXJnZXQuY3BwIFwKQEAgLTM3NSw3ICszNzYsNiBAQCBTT1VSQ0VTICs9IFwKICAgICBiaW5k
aW5ncy9qcy9KU01haW5UaHJlYWRFeGVjU3RhdGUuY3BwIFwKICAgICBiaW5kaW5ncy9qcy9KU1Bs
dWdpbkVsZW1lbnRGdW5jdGlvbnMuY3BwIFwKICAgICBiaW5kaW5ncy9qcy9KU1BvcFN0YXRlRXZl
bnRDdXN0b20uY3BwIFwKLSAgICBiaW5kaW5ncy9qcy9KU1dvcmtlckNvbnRleHRFcnJvckhhbmRs
ZXIuY3BwIFwKICAgICBiaW5kaW5ncy9qcy9TY3JpcHRDYWNoZWRGcmFtZURhdGEuY3BwIFwKICAg
ICBiaW5kaW5ncy9qcy9TY3JpcHRDYWxsRnJhbWUuY3BwIFwKICAgICBiaW5kaW5ncy9qcy9TY3Jp
cHRDYWxsU3RhY2suY3BwIFwKQEAgLTExMjgsNiArMTEyOCw3IEBAIEhFQURFUlMgKz0gXAogICAg
IGJpbmRpbmdzL2pzL0pTRE9NV2luZG93Q3VzdG9tLmggXAogICAgIGJpbmRpbmdzL2pzL0pTRE9N
V2luZG93U2hlbGwuaCBcCiAgICAgYmluZGluZ3MvanMvSlNET01XcmFwcGVyLmggXAorICAgIGJp
bmRpbmdzL2pzL0pTRXJyb3JIYW5kbGVyLmggXAogICAgIGJpbmRpbmdzL2pzL0pTRXZlbnRMaXN0
ZW5lci5oIFwKICAgICBiaW5kaW5ncy9qcy9KU0V2ZW50VGFyZ2V0LmggXAogICAgIGJpbmRpbmdz
L2pzL0pTSGlzdG9yeUN1c3RvbS5oIFwKQEAgLTExNDUsNyArMTE0Niw2IEBAIEhFQURFUlMgKz0g
XAogICAgIGJpbmRpbmdzL2pzL0pTUGx1Z2luRWxlbWVudEZ1bmN0aW9ucy5oIFwKICAgICBiaW5k
aW5ncy9qcy9KU1N0b3JhZ2VDdXN0b20uaCBcCiAgICAgYmluZGluZ3MvanMvSlNXb3JrZXJDb250
ZXh0QmFzZS5oIFwKLSAgICBiaW5kaW5ncy9qcy9KU1dvcmtlckNvbnRleHRFcnJvckhhbmRsZXIu
aCBcCiAgICAgYmluZGluZ3MvanMvSmF2YVNjcmlwdENhbGxGcmFtZS5oIFwKICAgICBiaW5kaW5n
cy9qcy9TY2hlZHVsZWRBY3Rpb24uaCBcCiAgICAgYmluZGluZ3MvanMvU2NyaXB0Q2FjaGVkRnJh
bWVEYXRhLmggXApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZj
cHJvaiBiL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oKaW5kZXggNzQ4NjAz
MzQzOGJmMTMwNGNkMjE3MjA0NWJlOGIxYjNlMDJhMWM0Yy4uNGZkM2Y3YTI4YzMwNjlkOWY5MWVk
NGZhZDRmMzNlNzU3NTU4MmJhYSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9X
ZWJDb3JlLnZjcHJvagorKysgYi9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9q
CkBAIC00NDEwNCw2ICs0NDEwNCw2MiBAQAogCQkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPg0KIAkJ
CQk8L0ZpbGU+DQogCQkJCTxGaWxlDQorCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGJpbmRpbmdzXGpz
XEpTRXJyb3JIYW5kbGVyLmNwcCINCisJCQkJCT4NCisJCQkJCTxGaWxlQ29uZmlndXJhdGlvbg0K
KwkJCQkJCU5hbWU9IkRlYnVnfFdpbjMyIg0KKwkJCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVl
Ig0KKwkJCQkJCT4NCisJCQkJCQk8VG9vbA0KKwkJCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29s
Ig0KKwkJCQkJCS8+DQorCQkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPg0KKwkJCQkJPEZpbGVDb25m
aWd1cmF0aW9uDQorCQkJCQkJTmFtZT0iUmVsZWFzZXxXaW4zMiINCisJCQkJCQlFeGNsdWRlZEZy
b21CdWlsZD0idHJ1ZSINCisJCQkJCQk+DQorCQkJCQkJPFRvb2wNCisJCQkJCQkJTmFtZT0iVkND
TENvbXBpbGVyVG9vbCINCisJCQkJCQkvPg0KKwkJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4NCisJ
CQkJCTxGaWxlQ29uZmlndXJhdGlvbg0KKwkJCQkJCU5hbWU9IkRlYnVnX0ludGVybmFsfFdpbjMy
Ig0KKwkJCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIg0KKwkJCQkJCT4NCisJCQkJCQk8VG9v
bA0KKwkJCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIg0KKwkJCQkJCS8+DQorCQkJCQk8L0Zp
bGVDb25maWd1cmF0aW9uPg0KKwkJCQkJPEZpbGVDb25maWd1cmF0aW9uDQorCQkJCQkJTmFtZT0i
RGVidWdfQ2Fpcm98V2luMzIiDQorCQkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiDQorCQkJ
CQkJPg0KKwkJCQkJCTxUb29sDQorCQkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiDQorCQkJ
CQkJLz4NCisJCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+DQorCQkJCQk8RmlsZUNvbmZpZ3VyYXRp
b24NCisJCQkJCQlOYW1lPSJSZWxlYXNlX0NhaXJvfFdpbjMyIg0KKwkJCQkJCUV4Y2x1ZGVkRnJv
bUJ1aWxkPSJ0cnVlIg0KKwkJCQkJCT4NCisJCQkJCQk8VG9vbA0KKwkJCQkJCQlOYW1lPSJWQ0NM
Q29tcGlsZXJUb29sIg0KKwkJCQkJCS8+DQorCQkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPg0KKwkJ
CQkJPEZpbGVDb25maWd1cmF0aW9uDQorCQkJCQkJTmFtZT0iRGVidWdfQWxsfFdpbjMyIg0KKwkJ
CQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIg0KKwkJCQkJCT4NCisJCQkJCQk8VG9vbA0KKwkJ
CQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIg0KKwkJCQkJCS8+DQorCQkJCQk8L0ZpbGVDb25m
aWd1cmF0aW9uPg0KKwkJCQk8L0ZpbGU+DQorCQkJCTxGaWxlDQorCQkJCQlSZWxhdGl2ZVBhdGg9
Ii4uXGJpbmRpbmdzXGpzXEpTRXJyb3JIYW5kbGVyLmgiDQorCQkJCQk+DQorCQkJCTwvRmlsZT4N
CisJCQkJPEZpbGUNCiAJCQkJCVJlbGF0aXZlUGF0aD0iLi5cYmluZGluZ3NcanNcSlNFdmVudEN1
c3RvbS5jcHAiDQogCQkJCQk+DQogCQkJCQk8RmlsZUNvbmZpZ3VyYXRpb24NCkBAIC00ODQ5Niw2
MiArNDg1NTIsNiBAQAogCQkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPg0KIAkJCQk8L0ZpbGU+DQog
CQkJCTxGaWxlDQotCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGJpbmRpbmdzXGpzXEpTV29ya2VyQ29u
dGV4dEVycm9ySGFuZGxlci5jcHAiDQotCQkJCQk+DQotCQkJCQk8RmlsZUNvbmZpZ3VyYXRpb24N
Ci0JCQkJCQlOYW1lPSJEZWJ1Z3xXaW4zMiINCi0JCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1
ZSINCi0JCQkJCQk+DQotCQkJCQkJPFRvb2wNCi0JCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9v
bCINCi0JCQkJCQkvPg0KLQkJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4NCi0JCQkJCTxGaWxlQ29u
ZmlndXJhdGlvbg0KLQkJCQkJCU5hbWU9IlJlbGVhc2V8V2luMzIiDQotCQkJCQkJRXhjbHVkZWRG
cm9tQnVpbGQ9InRydWUiDQotCQkJCQkJPg0KLQkJCQkJCTxUb29sDQotCQkJCQkJCU5hbWU9IlZD
Q0xDb21waWxlclRvb2wiDQotCQkJCQkJLz4NCi0JCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+DQot
CQkJCQk8RmlsZUNvbmZpZ3VyYXRpb24NCi0JCQkJCQlOYW1lPSJEZWJ1Z19JbnRlcm5hbHxXaW4z
MiINCi0JCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSINCi0JCQkJCQk+DQotCQkJCQkJPFRv
b2wNCi0JCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCINCi0JCQkJCQkvPg0KLQkJCQkJPC9G
aWxlQ29uZmlndXJhdGlvbj4NCi0JCQkJCTxGaWxlQ29uZmlndXJhdGlvbg0KLQkJCQkJCU5hbWU9
IkRlYnVnX0NhaXJvfFdpbjMyIg0KLQkJCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIg0KLQkJ
CQkJCT4NCi0JCQkJCQk8VG9vbA0KLQkJCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIg0KLQkJ
CQkJCS8+DQotCQkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPg0KLQkJCQkJPEZpbGVDb25maWd1cmF0
aW9uDQotCQkJCQkJTmFtZT0iUmVsZWFzZV9DYWlyb3xXaW4zMiINCi0JCQkJCQlFeGNsdWRlZEZy
b21CdWlsZD0idHJ1ZSINCi0JCQkJCQk+DQotCQkJCQkJPFRvb2wNCi0JCQkJCQkJTmFtZT0iVkND
TENvbXBpbGVyVG9vbCINCi0JCQkJCQkvPg0KLQkJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4NCi0J
CQkJCTxGaWxlQ29uZmlndXJhdGlvbg0KLQkJCQkJCU5hbWU9IkRlYnVnX0FsbHxXaW4zMiINCi0J
CQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSINCi0JCQkJCQk+DQotCQkJCQkJPFRvb2wNCi0J
CQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCINCi0JCQkJCQkvPg0KLQkJCQkJPC9GaWxlQ29u
ZmlndXJhdGlvbj4NCi0JCQkJPC9GaWxlPg0KLQkJCQk8RmlsZQ0KLQkJCQkJUmVsYXRpdmVQYXRo
PSIuLlxiaW5kaW5nc1xqc1xKU1dvcmtlckNvbnRleHRFcnJvckhhbmRsZXIuaCINCi0JCQkJCT4N
Ci0JCQkJPC9GaWxlPg0KLQkJCQk8RmlsZQ0KIAkJCQkJUmVsYXRpdmVQYXRoPSIuLlxiaW5kaW5n
c1xqc1xKU1hNTEh0dHBSZXF1ZXN0Q3VzdG9tLmNwcCINCiAJCQkJCT4NCiAJCQkJCTxGaWxlQ29u
ZmlndXJhdGlvbg0KZGlmZiAtLWdpdCBhL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qIGIvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5k
ZXggODA1OWFhMmUyN2FhYTNlNzZmODVmNWQ2NDY0MGU3MDY4NWU2ZmM5ZC4uZmU4YWViZjEyMGY4
OTc1Zjk3YjhkNmQ3MDhiNWRkZDA0MjAwMjU4MSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9XZWJDb3Jl
Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJv
ai9wcm9qZWN0LnBieHByb2oKQEAgLTUzMDEsOCArNTMwMSw4IEBACiAJCUYzNjQ0QUZGMTExOTgw
NTkwMEUwRDUzNyAvKiBJbmplY3RlZFNjcmlwdC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGMzY0NEFGRDExMTk4MDU5MDBFMEQ1MzcgLyogSW5qZWN0
ZWRTY3JpcHQuY3BwICovOyB9OwogCQlGMzY0NEIwMDExMTk4MDU5MDBFMEQ1MzcgLyogSW5qZWN0
ZWRTY3JpcHQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IEYzNjQ0QUZFMTExOTgwNTkwMEUwRDUzNyAvKiBJbmplY3RlZFNjcmlwdC5oICovOyB9OwogCQlG
Mzc1Q0MwNzExNTBEMzAwMDA4RERCODEgLyogSW5zcGVjdG9yV29ya2VyUmVzb3VyY2UuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEYzNzVDQzA2MTE1MEQz
MDAwMDhEREI4MSAvKiBJbnNwZWN0b3JXb3JrZXJSZXNvdXJjZS5oICovOyB9OwotCQlGM0Q0NjE0
ODExNjFENTMyMDBDQTBEMDkgLyogSlNXb3JrZXJDb250ZXh0RXJyb3JIYW5kbGVyLmNwcCBpbiBT
b3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEYzRDQ2MTQ2MTE2MUQ1
MzIwMENBMEQwOSAvKiBKU1dvcmtlckNvbnRleHRFcnJvckhhbmRsZXIuY3BwICovOyB9OwotCQlG
M0Q0NjE0OTExNjFENTMyMDBDQTBEMDkgLyogSlNXb3JrZXJDb250ZXh0RXJyb3JIYW5kbGVyLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGM0Q0NjE0NzEx
NjFENTMyMDBDQTBEMDkgLyogSlNXb3JrZXJDb250ZXh0RXJyb3JIYW5kbGVyLmggKi87IH07CisJ
CUYzRDQ2MTQ4MTE2MUQ1MzIwMENBMEQwOSAvKiBKU0Vycm9ySGFuZGxlci5jcHAgaW4gU291cmNl
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGM0Q0NjE0NjExNjFENTMyMDBD
QTBEMDkgLyogSlNFcnJvckhhbmRsZXIuY3BwICovOyB9OworCQlGM0Q0NjE0OTExNjFENTMyMDBD
QTBEMDkgLyogSlNFcnJvckhhbmRsZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IEYzRDQ2MTQ3MTE2MUQ1MzIwMENBMEQwOSAvKiBKU0Vycm9ySGFuZGxl
ci5oICovOyB9OwogCQlGNEVBRjRBRTEwQzc0MkIxMDA5MTAwRDMgLyogT3BlblR5cGVTYW5pdGl6
ZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjRF
QUY0QUMxMEM3NDJCMTAwOTEwMEQzIC8qIE9wZW5UeXBlU2FuaXRpemVyLmNwcCAqLzsgfTsKIAkJ
RjRFQUY0QUYxMEM3NDJCMTAwOTEwMEQzIC8qIE9wZW5UeXBlU2FuaXRpemVyLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNEVBRjRBRDEwQzc0MkIxMDA5
MTAwRDMgLyogT3BlblR5cGVTYW5pdGl6ZXIuaCAqLzsgfTsKIAkJRjVDMDQxREEwRkZDQTdDRTAw
ODM5RDRBIC8qIEhUTUxEYXRhTGlzdEVsZW1lbnQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjVDMDQxRDcwRkZDQTdDRTAwODM5RDRBIC8qIEhUTUxE
YXRhTGlzdEVsZW1lbnQuY3BwICovOyB9OwpAQCAtMTExMzUsOCArMTExMzUsOCBAQAogCQlGMzY0
NEFGRDExMTk4MDU5MDBFMEQ1MzcgLyogSW5qZWN0ZWRTY3JpcHQuY3BwICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSW5qZWN0ZWRTY3JpcHQuY3BwOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQlGMzY0NEFGRTExMTk4MDU5MDBFMEQ1MzcgLyogSW5qZWN0ZWRTY3Jp
cHQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSW5qZWN0ZWRTY3JpcHQuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRjM3NUNDMDYxMTUwRDMwMDAwOEREQjgxIC8q
IEluc3BlY3RvcldvcmtlclJlc291cmNlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IEluc3BlY3RvcldvcmtlclJlc291cmNlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
Ci0JCUYzRDQ2MTQ2MTE2MUQ1MzIwMENBMEQwOSAvKiBKU1dvcmtlckNvbnRleHRFcnJvckhhbmRs
ZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNXb3JrZXJDb250
ZXh0RXJyb3JIYW5kbGVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJRjNENDYx
NDcxMTYxRDUzMjAwQ0EwRDA5IC8qIEpTV29ya2VyQ29udGV4dEVycm9ySGFuZGxlci5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKU1dvcmtlckNvbnRleHRFcnJvckhhbmRsZXIu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRjNENDYxNDYxMTYxRDUzMjAwQ0EwRDA5
IC8qIEpTRXJyb3JIYW5kbGVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0
aCA9IEpTRXJyb3JIYW5kbGVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRjNE
NDYxNDcxMTYxRDUzMjAwQ0EwRDA5IC8qIEpTRXJyb3JIYW5kbGVyLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IEpTRXJyb3JIYW5kbGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCUY0RUFGNEFDMTBDNzQyQjEwMDkxMDBEMyAvKiBPcGVuVHlwZVNhbml0aXplci5j
cHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBPcGVuVHlwZVNhbml0aXpl
ci5jcHA7IHBhdGggPSBvcGVudHlwZS9PcGVuVHlwZVNhbml0aXplci5jcHA7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCUY0RUFGNEFEMTBDNzQyQjEwMDkxMDBEMyAvKiBPcGVuVHlwZVNh
bml0aXplci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBPcGVuVHlwZVNhbml0
aXplci5oOyBwYXRoID0gb3BlbnR5cGUvT3BlblR5cGVTYW5pdGl6ZXIuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJRjUyM0QyM0IwMkRFNDM5NjAxODYzNUNBIC8qIEhUTUxEb2N1bWVu
dC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGlu
ZGVudFdpZHRoID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBh
dGggPSBIVE1MRG9jdW1lbnQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB0YWJXaWR0aCA9
IDg7IHVzZXNUYWJzID0gMDsgfTsKQEAgLTE2MDY4LDYgKzE2MDY4LDggQEAKIAkJCQlCQ0JGQjUz
QjBEQ0QyOUNGMDAxOUIzRTUgLyogSlNET01XaW5kb3dTaGVsbC5oICovLAogCQkJCUJDNTNEQUM2
MTE0MzMwNjQwMDBEODE3RSAvKiBKU0RPTVdyYXBwZXIuY3BwICovLAogCQkJCTY1RTBFOTQzMTEz
M0M4OUYwMEI0Q0IxMCAvKiBKU0RPTVdyYXBwZXIuaCAqLywKKwkJCQlGM0Q0NjE0NjExNjFENTMy
MDBDQTBEMDkgLyogSlNFcnJvckhhbmRsZXIuY3BwICovLAorCQkJCUYzRDQ2MTQ3MTE2MUQ1MzIw
MENBMEQwOSAvKiBKU0Vycm9ySGFuZGxlci5oICovLAogCQkJCUJDNjA5MDFFMEU5MUI4RUMwMDBD
NjhCNSAvKiBKU0V2ZW50VGFyZ2V0LmNwcCAqLywKIAkJCQlCQzYwOTAxRDBFOTFCOEVDMDAwQzY4
QjUgLyogSlNFdmVudFRhcmdldC5oICovLAogCQkJCTMzMTRBQ0U5MTA4OTIwODYwMDBGMEU1NiAv
KiBKU0V4Y2VwdGlvbkJhc2UuY3BwICovLApAQCAtMTYwODAsOCArMTYwODIsNiBAQAogCQkJCUIy
MTEyN0E1MEIzMTg2NzcwMDA5QkU1MyAvKiBKU1NWR1BPRFR5cGVXcmFwcGVyLmggKi8sCiAJCQkJ
RTFDMzZEMzIwRUIwQTA5NDAwNzQxMEJDIC8qIEpTV29ya2VyQ29udGV4dEJhc2UuY3BwICovLAog
CQkJCUUxQzM2RDMzMEVCMEEwOTQwMDc0MTBCQyAvKiBKU1dvcmtlckNvbnRleHRCYXNlLmggKi8s
Ci0JCQkJRjNENDYxNDYxMTYxRDUzMjAwQ0EwRDA5IC8qIEpTV29ya2VyQ29udGV4dEVycm9ySGFu
ZGxlci5jcHAgKi8sCi0JCQkJRjNENDYxNDcxMTYxRDUzMjAwQ0EwRDA5IC8qIEpTV29ya2VyQ29u
dGV4dEVycm9ySGFuZGxlci5oICovLAogCQkJCUJDQTM3OEJBMEQxNUY2NDIwMEI3OTNENiAvKiBT
Y2hlZHVsZWRBY3Rpb24uY3BwICovLAogCQkJCUJDQTM3OEJCMEQxNUY2NDIwMEI3OTNENiAvKiBT
Y2hlZHVsZWRBY3Rpb24uaCAqLywKIAkJCQk0MUYxRDIxRTBFRjM1QzJBMDBEQTg3NTMgLyogU2Ny
aXB0Q2FjaGVkRnJhbWVEYXRhLmNwcCAqLywKQEAgLTE5NDA5LDcgKzE5NDA5LDcgQEAKIAkJCQlF
MUNBQTVDNjBFOEJEMjM2MDBBNzNFQ0EgLyogSlNXb3JrZXIuaCBpbiBIZWFkZXJzICovLAogCQkJ
CUUxODI1NjkwMEVGMkIwMkQwMDkzMzI0MiAvKiBKU1dvcmtlckNvbnRleHQuaCBpbiBIZWFkZXJz
ICovLAogCQkJCUUxQzM2RDM1MEVCMEEwOTQwMDc0MTBCQyAvKiBKU1dvcmtlckNvbnRleHRCYXNl
LmggaW4gSGVhZGVycyAqLywKLQkJCQlGM0Q0NjE0OTExNjFENTMyMDBDQTBEMDkgLyogSlNXb3Jr
ZXJDb250ZXh0RXJyb3JIYW5kbGVyLmggaW4gSGVhZGVycyAqLywKKwkJCQlGM0Q0NjE0OTExNjFE
NTMyMDBDQTBEMDkgLyogSlNFcnJvckhhbmRsZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCUUxQzM2
MkVGMEVBRjJBQTkwMDc0MTBCQyAvKiBKU1dvcmtlckxvY2F0aW9uLmggaW4gSGVhZGVycyAqLywK
IAkJCQlFMTI3MUE1ODBFRUVDREU0MDBGNjEyMTMgLyogSlNXb3JrZXJOYXZpZ2F0b3IuaCBpbiBI
ZWFkZXJzICovLAogCQkJCUJDMzQ4QkQ0MERCN0Y4MDQwMDRBQkFCOSAvKiBKU1hNTEh0dHBSZXF1
ZXN0LmggaW4gSGVhZGVycyAqLywKQEAgLTIxOTc3LDcgKzIxOTc3LDcgQEAKIAkJCQlFMTgyNTY4
RjBFRjJCMDJEMDA5MzMyNDIgLyogSlNXb3JrZXJDb250ZXh0LmNwcCBpbiBTb3VyY2VzICovLAog
CQkJCUUxQzM2RDM0MEVCMEEwOTQwMDc0MTBCQyAvKiBKU1dvcmtlckNvbnRleHRCYXNlLmNwcCBp
biBTb3VyY2VzICovLAogCQkJCUUxODI1OEFDMEVGM0NENzAwMDkzMzI0MiAvKiBKU1dvcmtlckNv
bnRleHRDdXN0b20uY3BwIGluIFNvdXJjZXMgKi8sCi0JCQkJRjNENDYxNDgxMTYxRDUzMjAwQ0Ew
RDA5IC8qIEpTV29ya2VyQ29udGV4dEVycm9ySGFuZGxlci5jcHAgaW4gU291cmNlcyAqLywKKwkJ
CQlGM0Q0NjE0ODExNjFENTMyMDBDQTBEMDkgLyogSlNFcnJvckhhbmRsZXIuY3BwIGluIFNvdXJj
ZXMgKi8sCiAJCQkJRTFDQTVDQkMwRThDRENBRjAwRThFRjkwIC8qIEpTV29ya2VyQ3VzdG9tLmNw
cCBpbiBTb3VyY2VzICovLAogCQkJCUUxQzM2MkYwMEVBRjJBQTkwMDc0MTBCQyAvKiBKU1dvcmtl
ckxvY2F0aW9uLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUUxMjcxQTU5MEVFRUNERTQwMEY2MTIx
MyAvKiBKU1dvcmtlck5hdmlnYXRvci5jcHAgaW4gU291cmNlcyAqLywKZGlmZiAtLWdpdCBhL1dl
YkNvcmUvYmluZGluZ3MvanMvSlNCaW5kaW5nc0FsbEluT25lLmNwcCBiL1dlYkNvcmUvYmluZGlu
Z3MvanMvSlNCaW5kaW5nc0FsbEluT25lLmNwcAppbmRleCA5MjJlNDQ5NzE4YzE3NDNiNjNjYzI3
ZTAzZWM1MjljMzU4MWM4YjcxLi4xNGY4YTc4YWY2OTY3MmNmYjQwN2MwNGEzMDYzZWNiMTdhNDZk
YzI2IDEwMDY0NAotLS0gYS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTQmluZGluZ3NBbGxJbk9uZS5j
cHAKKysrIGIvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0JpbmRpbmdzQWxsSW5PbmUuY3BwCkBAIC02
Myw2ICs2Myw3IEBACiAjaW5jbHVkZSAiSlNEZXZpY2VPcmllbnRhdGlvbkV2ZW50Q3VzdG9tLmNw
cCIKICNpbmNsdWRlICJKU0RvY3VtZW50Q3VzdG9tLmNwcCIKICNpbmNsdWRlICJKU0VsZW1lbnRD
dXN0b20uY3BwIgorI2luY2x1ZGUgIkpTRXJyb3JIYW5kbGVyLmNwcCIKICNpbmNsdWRlICJKU0V2
ZW50Q3VzdG9tLmNwcCIKICNpbmNsdWRlICJKU0V2ZW50TGlzdGVuZXIuY3BwIgogI2luY2x1ZGUg
IkpTRXZlbnRTb3VyY2VDdXN0b20uY3BwIgpAQCAtMTI5LDcgKzEzMCw2IEBACiAjaW5jbHVkZSAi
SlNXZWJTb2NrZXRDdXN0b20uY3BwIgogI2luY2x1ZGUgIkpTV29ya2VyQ29udGV4dEJhc2UuY3Bw
IgogI2luY2x1ZGUgIkpTV29ya2VyQ29udGV4dEN1c3RvbS5jcHAiCi0jaW5jbHVkZSAiSlNXb3Jr
ZXJDb250ZXh0RXJyb3JIYW5kbGVyLmNwcCIKICNpbmNsdWRlICJKU1dvcmtlckN1c3RvbS5jcHAi
CiAjaW5jbHVkZSAiSlNYTUxIdHRwUmVxdWVzdEN1c3RvbS5jcHAiCiAjaW5jbHVkZSAiSlNYTUxI
dHRwUmVxdWVzdFVwbG9hZEN1c3RvbS5jcHAiCmRpZmYgLS1naXQgYS9XZWJDb3JlL2JpbmRpbmdz
L2pzL0pTV29ya2VyQ29udGV4dEVycm9ySGFuZGxlci5jcHAgYi9XZWJDb3JlL2JpbmRpbmdzL2pz
L0pTRXJyb3JIYW5kbGVyLmNwcApzaW1pbGFyaXR5IGluZGV4IDg5JQpyZW5hbWUgZnJvbSBXZWJD
b3JlL2JpbmRpbmdzL2pzL0pTV29ya2VyQ29udGV4dEVycm9ySGFuZGxlci5jcHAKcmVuYW1lIHRv
IFdlYkNvcmUvYmluZGluZ3MvanMvSlNFcnJvckhhbmRsZXIuY3BwCmluZGV4IGFkM2Y1ZWMxN2Qz
YjU4MGNiNjgwODhkZWI2MTlmZjcwOGE3MmI3NGQuLjgyNjFjODQxZmJhZDM1NjFlZjMzOGViYzY4
MzEwYjQzMGEwZTdkOTMgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvYmluZGluZ3MvanMvSlNXb3JrZXJD
b250ZXh0RXJyb3JIYW5kbGVyLmNwcAorKysgYi9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRXJyb3JI
YW5kbGVyLmNwcApAQCAtMzAsOSArMzAsNyBAQAogCiAjaW5jbHVkZSAiY29uZmlnLmgiCiAKLSNp
ZiBFTkFCTEUoV09SS0VSUykKLQotI2luY2x1ZGUgIkpTV29ya2VyQ29udGV4dEVycm9ySGFuZGxl
ci5oIgorI2luY2x1ZGUgIkpTRXJyb3JIYW5kbGVyLmgiCiAKICNpbmNsdWRlICJFcnJvckV2ZW50
LmgiCiAjaW5jbHVkZSAiRXZlbnQuaCIKQEAgLTQzLDE2ICs0MSwxNiBAQCB1c2luZyBuYW1lc3Bh
Y2UgSlNDOwogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLUpTV29ya2VyQ29udGV4dEVycm9ySGFu
ZGxlcjo6SlNXb3JrZXJDb250ZXh0RXJyb3JIYW5kbGVyKEpTT2JqZWN0KiBmdW5jdGlvbiwgSlNP
YmplY3QqIHdyYXBwZXIsIGJvb2wgaXNBdHRyaWJ1dGUsIERPTVdyYXBwZXJXb3JsZCogaXNvbGF0
ZWRXb3JsZCkKK0pTRXJyb3JIYW5kbGVyOjpKU0Vycm9ySGFuZGxlcihKU09iamVjdCogZnVuY3Rp
b24sIEpTT2JqZWN0KiB3cmFwcGVyLCBib29sIGlzQXR0cmlidXRlLCBET01XcmFwcGVyV29ybGQq
IGlzb2xhdGVkV29ybGQpCiAgICAgOiBKU0V2ZW50TGlzdGVuZXIoZnVuY3Rpb24sIHdyYXBwZXIs
IGlzQXR0cmlidXRlLCBpc29sYXRlZFdvcmxkKQogewogfQogCi1KU1dvcmtlckNvbnRleHRFcnJv
ckhhbmRsZXI6On5KU1dvcmtlckNvbnRleHRFcnJvckhhbmRsZXIoKQorSlNFcnJvckhhbmRsZXI6
On5KU0Vycm9ySGFuZGxlcigpCiB7CiB9CiAKLXZvaWQgSlNXb3JrZXJDb250ZXh0RXJyb3JIYW5k
bGVyOjpoYW5kbGVFdmVudChTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBzY3JpcHRFeGVjdXRpb25D
b250ZXh0LCBFdmVudCogZXZlbnQpCit2b2lkIEpTRXJyb3JIYW5kbGVyOjpoYW5kbGVFdmVudChT
Y3JpcHRFeGVjdXRpb25Db250ZXh0KiBzY3JpcHRFeGVjdXRpb25Db250ZXh0LCBFdmVudCogZXZl
bnQpCiB7CiAgICAgQVNTRVJUKHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQpOwogICAgIGlmICghc2Ny
aXB0RXhlY3V0aW9uQ29udGV4dCkKQEAgLTExMiw1ICsxMTAsMyBAQCB2b2lkIEpTV29ya2VyQ29u
dGV4dEVycm9ySGFuZGxlcjo6aGFuZGxlRXZlbnQoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogc2Ny
aXB0RXhlYwogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCi0KLSNlbmRpZiAvLyBFTkFCTEUo
V09SS0VSUykKZGlmZiAtLWdpdCBhL1dlYkNvcmUvYmluZGluZ3MvanMvSlNXb3JrZXJDb250ZXh0
RXJyb3JIYW5kbGVyLmggYi9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRXJyb3JIYW5kbGVyLmgKc2lt
aWxhcml0eSBpbmRleCA2OSUKY29weSBmcm9tIFdlYkNvcmUvYmluZGluZ3MvanMvSlNXb3JrZXJD
b250ZXh0RXJyb3JIYW5kbGVyLmgKY29weSB0byBXZWJDb3JlL2JpbmRpbmdzL2pzL0pTRXJyb3JI
YW5kbGVyLmgKaW5kZXggYTE4ODI5OTAzOGM5Y2RmZTcyMjg2YjcxZmVhZWIzYTQ5YzJhMGQ4MS4u
OTU3ZmQ4MWRhYTA1NzQ2OWIyMTEyZTExZDdlNzA0YWQ0ZTI5ZDdlZCAxMDA2NDQKLS0tIGEvV2Vi
Q29yZS9iaW5kaW5ncy9qcy9KU1dvcmtlckNvbnRleHRFcnJvckhhbmRsZXIuaAorKysgYi9XZWJD
b3JlL2JpbmRpbmdzL2pzL0pTRXJyb3JIYW5kbGVyLmgKQEAgLTI4LDM3ICsyOCwzNyBAQAogICog
T0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4KICAqLwogCi0jaWZuZGVmIEpTV29ya2VyQ29udGV4dEVycm9ySGFuZGxlcl9o
Ci0jZGVmaW5lIEpTV29ya2VyQ29udGV4dEVycm9ySGFuZGxlcl9oCisjaWZuZGVmIEpTRXJyb3JI
YW5kbGVyX2gKKyNkZWZpbmUgSlNFcnJvckhhbmRsZXJfaAogCiAjaW5jbHVkZSAiSlNFdmVudExp
c3RlbmVyLmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotY2xhc3MgSlNXb3JrZXJDb250ZXh0
RXJyb3JIYW5kbGVyIDogcHVibGljIEpTRXZlbnRMaXN0ZW5lciB7CitjbGFzcyBKU0Vycm9ySGFu
ZGxlciA6IHB1YmxpYyBKU0V2ZW50TGlzdGVuZXIgewogcHVibGljOgotICAgIHN0YXRpYyBQYXNz
UmVmUHRyPEpTV29ya2VyQ29udGV4dEVycm9ySGFuZGxlcj4gY3JlYXRlKEpTQzo6SlNPYmplY3Qq
IGxpc3RlbmVyLCBKU0M6OkpTT2JqZWN0KiB3cmFwcGVyLCBib29sIGlzQXR0cmlidXRlLCBET01X
cmFwcGVyV29ybGQqIGlzb2xhdGVkV29ybGQpCisgICAgc3RhdGljIFBhc3NSZWZQdHI8SlNFcnJv
ckhhbmRsZXI+IGNyZWF0ZShKU0M6OkpTT2JqZWN0KiBsaXN0ZW5lciwgSlNDOjpKU09iamVjdCog
d3JhcHBlciwgYm9vbCBpc0F0dHJpYnV0ZSwgRE9NV3JhcHBlcldvcmxkKiBpc29sYXRlZFdvcmxk
KQogICAgIHsKLSAgICAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBKU1dvcmtlckNvbnRleHRFcnJv
ckhhbmRsZXIobGlzdGVuZXIsIHdyYXBwZXIsIGlzQXR0cmlidXRlLCBpc29sYXRlZFdvcmxkKSk7
CisgICAgICAgIHJldHVybiBhZG9wdFJlZihuZXcgSlNFcnJvckhhbmRsZXIobGlzdGVuZXIsIHdy
YXBwZXIsIGlzQXR0cmlidXRlLCBpc29sYXRlZFdvcmxkKSk7CiAgICAgfQogCi0gICAgdmlydHVh
bCB+SlNXb3JrZXJDb250ZXh0RXJyb3JIYW5kbGVyKCk7CisgICAgdmlydHVhbCB+SlNFcnJvckhh
bmRsZXIoKTsKIAogcHJpdmF0ZToKLSAgICBKU1dvcmtlckNvbnRleHRFcnJvckhhbmRsZXIoSlND
OjpKU09iamVjdCogZnVuY3Rpb24sIEpTQzo6SlNPYmplY3QqIHdyYXBwZXIsIGJvb2wgaXNBdHRy
aWJ1dGUsIERPTVdyYXBwZXJXb3JsZCogaXNvbGF0ZWRXb3JsZCk7CisgICAgSlNFcnJvckhhbmRs
ZXIoSlNDOjpKU09iamVjdCogZnVuY3Rpb24sIEpTQzo6SlNPYmplY3QqIHdyYXBwZXIsIGJvb2wg
aXNBdHRyaWJ1dGUsIERPTVdyYXBwZXJXb3JsZCogaXNvbGF0ZWRXb3JsZCk7CiAgICAgdmlydHVh
bCB2b2lkIGhhbmRsZUV2ZW50KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqLCBFdmVudCopOwogfTsK
IAogLy8gQ3JlYXRlcyBhIEpTIEV2ZW50TGlzdGVuZXIgZm9yICJvbmVycm9yIiBldmVudCBoYW5k
bGVyIGluIHdvcmtlciBjb250ZXh0LiBJdCBoYXMgY3VzdG9tIGltcGxlbWVudGF0aW9uIGJlY2F1
c2UKIC8vIHVubGlrZSBvdGhlciBldmVudCBsaXN0ZW5lcnMgaXQgYWNjZXB0cyB0aHJlZSBwYXJh
bWV0ZXJzLgotaW5saW5lIFBhc3NSZWZQdHI8SlNXb3JrZXJDb250ZXh0RXJyb3JIYW5kbGVyPiBj
cmVhdGVKU1dvcmtlckNvbnRleHRFcnJvckhhbmRsZXIoSlNDOjpFeGVjU3RhdGUqIGV4ZWMsIEpT
Qzo6SlNWYWx1ZSBsaXN0ZW5lciwgSlNDOjpKU09iamVjdCogd3JhcHBlcikKK2lubGluZSBQYXNz
UmVmUHRyPEpTRXJyb3JIYW5kbGVyPiBjcmVhdGVKU0Vycm9ySGFuZGxlcihKU0M6OkV4ZWNTdGF0
ZSogZXhlYywgSlNDOjpKU1ZhbHVlIGxpc3RlbmVyLCBKU0M6OkpTT2JqZWN0KiB3cmFwcGVyKQog
ewogICAgIGlmICghbGlzdGVuZXIuaXNPYmplY3QoKSkKICAgICAgICAgcmV0dXJuIDA7CiAKLSAg
ICByZXR1cm4gSlNXb3JrZXJDb250ZXh0RXJyb3JIYW5kbGVyOjpjcmVhdGUoYXNPYmplY3QobGlz
dGVuZXIpLCB3cmFwcGVyLCB0cnVlLCBjdXJyZW50V29ybGQoZXhlYykpOworICAgIHJldHVybiBK
U0Vycm9ySGFuZGxlcjo6Y3JlYXRlKGFzT2JqZWN0KGxpc3RlbmVyKSwgd3JhcHBlciwgdHJ1ZSwg
Y3VycmVudFdvcmxkKGV4ZWMpKTsKIH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCi0jZW5k
aWYgLy8gSlNXb3JrZXJDb250ZXh0RXJyb3JIYW5kbGVyX2gKKyNlbmRpZiAvLyBKU0Vycm9ySGFu
ZGxlcl9oCmRpZmYgLS1naXQgYS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRv
ckpTLnBtIGIvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbQppbmRl
eCA4NGUzOTE5MDVmNTYyNTU4NTMyNzE4MDFhOGRhZjMxNTdhMDJlNjE2Li44ZDM1MDNlODExODIx
NDg5OTQzZTNlZDg3MTQ2ZjI4MGJkNWM5OGQyIDEwMDY0NAotLS0gYS9XZWJDb3JlL2JpbmRpbmdz
L3NjcmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtCisrKyBiL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0
cy9Db2RlR2VuZXJhdG9ySlMucG0KQEAgLTE3MDksOSArMTcwOSw5IEBAIHN1YiBHZW5lcmF0ZUlt
cGxlbWVudGF0aW9uCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHB1c2goQGltcGxD
b250ZW50LCAiICAgIEpTRE9NR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QgPSBjYXN0ZWRUaGlz
LT5nbG9iYWxPYmplY3QoKTtcbiIpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICAkaW1wbENs
YXNzTmFtZSogaW1wID0gc3RhdGljX2Nhc3Q8JGltcGxDbGFzc05hbWUqPihzdGF0aWNfY2FzdDwk
Y2xhc3NOYW1lKj4odGhpc09iamVjdCktPmltcGwoKSk7XG4iKTsKLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBpZiAoJGludGVyZmFjZU5hbWUgZXEgIldvcmtlckNvbnRleHQiIGFuZCAkbmFt
ZSBlcSAib25lcnJvciIpIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJGltcGxJ
bmNsdWRlc3siSlNXb3JrZXJDb250ZXh0RXJyb3JIYW5kbGVyLmgifSA9IDE7Ci0gICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgIGltcC0+c2V0JGlt
cGxTZXR0ZXJGdW5jdGlvbk5hbWUoY3JlYXRlSlNXb3JrZXJDb250ZXh0RXJyb3JIYW5kbGVyKGV4
ZWMsIHZhbHVlLCB0aGlzT2JqZWN0KSk7XG4iKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBpZiAoKCgkaW50ZXJmYWNlTmFtZSBlcSAiRE9NV2luZG93Iikgb3IgKCRpbnRlcmZhY2VOYW1l
IGVxICJXb3JrZXJDb250ZXh0IikpIGFuZCAkbmFtZSBlcSAib25lcnJvciIpIHsKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgJGltcGxJbmNsdWRlc3siSlNFcnJvckhhbmRsZXIuaCJ9
ID0gMTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQs
ICIgICAgaW1wLT5zZXQkaW1wbFNldHRlckZ1bmN0aW9uTmFtZShjcmVhdGVKU0Vycm9ySGFuZGxl
cihleGVjLCB2YWx1ZSwgdGhpc09iamVjdCkpO1xuIik7CiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHVzaChAaW1w
bENvbnRlbnQsIEdlbmVyYXRlQXR0cmlidXRlRXZlbnRMaXN0ZW5lckNhbGwoJGNsYXNzTmFtZSwg
JGltcGxTZXR0ZXJGdW5jdGlvbk5hbWUsICR3aW5kb3dFdmVudExpc3RlbmVyKSk7CiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgfQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9iaW5kaW5ncy9zY3Jp
cHRzL0NvZGVHZW5lcmF0b3JWOC5wbSBiL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2Vu
ZXJhdG9yVjgucG0Kb2xkIG1vZGUgMTAwNjQ0Cm5ldyBtb2RlIDEwMDc1NQppbmRleCA1NjgzOGNh
MmViZWZjMGMzMWYyYzdhNzJkNWFiNjIwMThkYzc3MzMzLi5hZDUzYTA0ZTVhZWQ2YmJmODBiZTY3
ZTBlNGJmY2ViNDM0YWMzOTIyCi0tLSBhL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2Vu
ZXJhdG9yVjgucG0KKysrIGIvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JW
OC5wbQpAQCAtOTE3LDYgKzkxNywxMCBAQCBFTkQKICAgICAgICAgICAgICAgICAkaW1wbEluY2x1
ZGVzeyJWOEV2ZW50TGlzdGVuZXJMaXN0LmgifSA9IDE7CiAgICAgICAgICAgICAgICAgJGltcGxJ
bmNsdWRlc3siVjhXb3JrZXJDb250ZXh0RXJyb3JIYW5kbGVyLmgifSA9IDE7CiAgICAgICAgICAg
ICAgICAgcHVzaChAaW1wbENvbnRlbnREZWNscywgIiAgICBpbXAtPnNldCRpbXBsU2V0dGVyRnVu
Y3Rpb25OYW1lKFY4RXZlbnRMaXN0ZW5lckxpc3Q6OmZpbmRPckNyZWF0ZVdyYXBwZXI8VjhXb3Jr
ZXJDb250ZXh0RXJyb3JIYW5kbGVyPih2YWx1ZSwgdHJ1ZSkiKTsKKyAgICAgICAgICAgIH0gZWxz
aWYgKCRpbnRlcmZhY2VOYW1lIGVxICJET01XaW5kb3ciIGFuZCAkYXR0cmlidXRlLT5zaWduYXR1
cmUtPm5hbWUgZXEgIm9uZXJyb3IiKSB7CisgICAgICAgICAgICAgICAgJGltcGxJbmNsdWRlc3si
VjhFdmVudExpc3RlbmVyTGlzdC5oIn0gPSAxOworICAgICAgICAgICAgICAgICRpbXBsSW5jbHVk
ZXN7IlY4V2luZG93RXJyb3JIYW5kbGVyLmgifSA9IDE7CisgICAgICAgICAgICAgICAgcHVzaChA
aW1wbENvbnRlbnREZWNscywgIiAgICBpbXAtPnNldCRpbXBsU2V0dGVyRnVuY3Rpb25OYW1lKFY4
RXZlbnRMaXN0ZW5lckxpc3Q6OmZpbmRPckNyZWF0ZVdyYXBwZXI8VjhXaW5kb3dFcnJvckhhbmRs
ZXI+KHZhbHVlLCB0cnVlKSIpOwogICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAg
ICBwdXNoKEBpbXBsQ29udGVudERlY2xzLCAiICAgIGltcC0+c2V0JGltcGxTZXR0ZXJGdW5jdGlv
bk5hbWUoVjhET01XcmFwcGVyOjpnZXRFdmVudExpc3RlbmVyKHZhbHVlLCB0cnVlLCBMaXN0ZW5l
ckZpbmRPckNyZWF0ZSkiKTsKICAgICAgICAgICAgIH0KZGlmZiAtLWdpdCBhL1dlYkNvcmUvYmlu
ZGluZ3MvdjgvVjhDb25zb2xlTWVzc2FnZS5jcHAgYi9XZWJDb3JlL2JpbmRpbmdzL3Y4L1Y4Q29u
c29sZU1lc3NhZ2UuY3BwCmluZGV4IDhiNmJiMTc4NmE4NWM3OWJjZjAyZmRkZTg1NDE2NTE3ZDFk
MWE4NzMuLjU1MDY4N2FmMThmYzYxMzQ4NmEzMGMxODc4OWFmYWEzOGVjMjU2YmMgMTAwNjQ0Ci0t
LSBhL1dlYkNvcmUvYmluZGluZ3MvdjgvVjhDb25zb2xlTWVzc2FnZS5jcHAKKysrIGIvV2ViQ29y
ZS9iaW5kaW5ncy92OC9WOENvbnNvbGVNZXNzYWdlLmNwcApAQCAtNTMsNyArNTMsNyBAQCBWOENv
bnNvbGVNZXNzYWdlOjpWOENvbnNvbGVNZXNzYWdlKGNvbnN0IFN0cmluZyYgc3RyaW5nLCBjb25z
dCBTdHJpbmcmIHNvdXJjZUlELAogCiB2b2lkIFY4Q29uc29sZU1lc3NhZ2U6OmRpc3BhdGNoTm93
KFBhZ2UqIHBhZ2UpCiB7Ci0gICAgZGlzcGF0Y2hOb3cocGFnZSwgMCk7CisgICAgZGlzcGF0Y2hO
b3cocGFnZSwgMCwgMCk7CiB9CiAKIHZvaWQgVjhDb25zb2xlTWVzc2FnZTo6ZGlzcGF0Y2hMYXRl
cigpCkBAIC0xMjUsMTAgKzEyNSwxMCBAQCB2b2lkIFY4Q29uc29sZU1lc3NhZ2U6OmhhbmRsZXIo
djg6OkhhbmRsZTx2ODo6TWVzc2FnZT4gbWVzc2FnZSwgdjg6OkhhbmRsZTx2ODo6VgogICAgIGJv
b2wgdXNlVVJMID0gcmVzb3VyY2VOYW1lLklzRW1wdHkoKSB8fCAhcmVzb3VyY2VOYW1lLT5Jc1N0
cmluZygpOwogICAgIFN0cmluZyByZXNvdXJjZU5hbWVTdHJpbmcgPSB1c2VVUkwgPyBmcmFtZS0+
ZG9jdW1lbnQoKS0+dXJsKCkgOiB0b1dlYkNvcmVTdHJpbmcocmVzb3VyY2VOYW1lKTsKICAgICBW
OENvbnNvbGVNZXNzYWdlIGNvbnNvbGVNZXNzYWdlKGVycm9yTWVzc2FnZSwgcmVzb3VyY2VOYW1l
U3RyaW5nLCBtZXNzYWdlLT5HZXRMaW5lTnVtYmVyKCkpOwotICAgIGNvbnNvbGVNZXNzYWdlLmRp
c3BhdGNoTm93KHBhZ2UsIGNhbGxTdGFjay5nZXQoKSk7CisgICAgY29uc29sZU1lc3NhZ2UuZGlz
cGF0Y2hOb3cocGFnZSwgZnJhbWUsIGNhbGxTdGFjay5nZXQoKSk7CiB9CiAKLXZvaWQgVjhDb25z
b2xlTWVzc2FnZTo6ZGlzcGF0Y2hOb3coUGFnZSogcGFnZSwgU2NyaXB0Q2FsbFN0YWNrKiBjYWxs
U3RhY2spCit2b2lkIFY4Q29uc29sZU1lc3NhZ2U6OmRpc3BhdGNoTm93KFBhZ2UqIHBhZ2UsIEZy
YW1lKiBmcmFtZSwgU2NyaXB0Q2FsbFN0YWNrKiBjYWxsU3RhY2spCiB7CiAgICAgQVNTRVJUKHBh
Z2UpOwogCkBAIC0xMzYsNiArMTM2LDEwIEBAIHZvaWQgVjhDb25zb2xlTWVzc2FnZTo6ZGlzcGF0
Y2hOb3coUGFnZSogcGFnZSwgU2NyaXB0Q2FsbFN0YWNrKiBjYWxsU3RhY2spCiAgICAgLy8gYXBw
ZWFyIGluIHRoZSByaWdodCBvcmRlciBpbiB0aGUgY29uc29sZS4KICAgICBwcm9jZXNzRGVsYXll
ZCgpOwogCisgICAgRG9jdW1lbnQqIGRvYyA9IGZyYW1lLT5kb2N1bWVudCgpOworICAgIGlmIChk
b2MtPmludm9rZU9uRXJyb3JIYW5kbGVyKGZyYW1lLT5kb21XaW5kb3coKS0+b25lcnJvcigpLCBt
X3N0cmluZywgbV9saW5lTnVtYmVyLCBtX3NvdXJjZUlEKSkKKyAgICAgICAgcmV0dXJuOworCiAg
ICAgQ29uc29sZSogY29uc29sZSA9IHBhZ2UtPm1haW5GcmFtZSgpLT5kb21XaW5kb3coKS0+Y29u
c29sZSgpOwogICAgIE1lc3NhZ2VUeXBlIG1lc3NhZ2VUeXBlID0gY2FsbFN0YWNrID8gVW5jYXVn
aHRFeGNlcHRpb25NZXNzYWdlVHlwZSA6IExvZ01lc3NhZ2VUeXBlOwogICAgIGNvbnNvbGUtPmFk
ZE1lc3NhZ2UoSlNNZXNzYWdlU291cmNlLCBtZXNzYWdlVHlwZSwgRXJyb3JNZXNzYWdlTGV2ZWws
IG1fc3RyaW5nLCBtX2xpbmVOdW1iZXIsIG1fc291cmNlSUQsIGNhbGxTdGFjayk7CmRpZmYgLS1n
aXQgYS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1Y4Q29uc29sZU1lc3NhZ2UuaCBiL1dlYkNvcmUvYmlu
ZGluZ3MvdjgvVjhDb25zb2xlTWVzc2FnZS5oCmluZGV4IDM4N2I1ZWUzNGI1NjhlNjgzZjRjZTdl
ZWFlZjE0YzI2YjE1NjdlNTMuLmRmOTcyMjdiODY5MTU2ZjM0NTUyMzZmMGE2ODk2MDkxNWE2NjM2
YTQgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvYmluZGluZ3MvdjgvVjhDb25zb2xlTWVzc2FnZS5oCisr
KyBiL1dlYkNvcmUvYmluZGluZ3MvdjgvVjhDb25zb2xlTWVzc2FnZS5oCkBAIC0zNyw1NiArMzcs
NTcgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi0gICAgY2xhc3MgUGFnZTsKLSAgICBjbGFz
cyBTY3JpcHRDYWxsU3RhY2s7CitjbGFzcyBGcmFtZTsKK2NsYXNzIFBhZ2U7CitjbGFzcyBTY3Jp
cHRDYWxsU3RhY2s7CiAKLSAgICAvLyBWOENvbnNvbGVNZXNzYWdlIGVuY2Fwc3VsYXRlcyBldmVy
eXRoaW5nIG5lZWRlZCB0bwotICAgIC8vIGxvZyBtZXNzYWdlcyBvcmlnaW5hdGluZyBmcm9tIEph
dmFTY3JpcHQgdG8gdGhlIGNvbnNvbGUuCi0gICAgY2xhc3MgVjhDb25zb2xlTWVzc2FnZSB7Ci0g
ICAgcHVibGljOgotICAgICAgICBWOENvbnNvbGVNZXNzYWdlKGNvbnN0IFN0cmluZyYgc3RyaW5n
LCBjb25zdCBTdHJpbmcmIHNvdXJjZUlELCB1bnNpZ25lZCBsaW5lTnVtYmVyKTsKKy8vIFY4Q29u
c29sZU1lc3NhZ2UgZW5jYXBzdWxhdGVzIGV2ZXJ5dGhpbmcgbmVlZGVkIHRvCisvLyBsb2cgbWVz
c2FnZXMgb3JpZ2luYXRpbmcgZnJvbSBKYXZhU2NyaXB0IHRvIHRoZSBjb25zb2xlLgorY2xhc3Mg
VjhDb25zb2xlTWVzc2FnZSB7CitwdWJsaWM6CisgICAgVjhDb25zb2xlTWVzc2FnZShjb25zdCBT
dHJpbmcmIHN0cmluZywgY29uc3QgU3RyaW5nJiBzb3VyY2VJRCwgdW5zaWduZWQgbGluZU51bWJl
cik7CiAKLSAgICAgICAgLy8gQWRkIGEgbWVzc2FnZSB0byB0aGUgY29uc29sZS4gTWF5IGVuZCB1
cCBjYWxsaW5nIEphdmFTY3JpcHQgY29kZQotICAgICAgICAvLyBpbmRpcmVjdGx5IHRocm91Z2gg
dGhlIGluc3BlY3RvciBzbyBvbmx5IGNhbGwgdGhpcyBmdW5jdGlvbiB3aGVuCi0gICAgICAgIC8v
IGl0IGlzIHNhZmUgdG8gZG8gYWxsb2NhdGlvbnMuCi0gICAgICAgIHZvaWQgZGlzcGF0Y2hOb3co
UGFnZSopOworICAgIC8vIEFkZCBhIG1lc3NhZ2UgdG8gdGhlIGNvbnNvbGUuIE1heSBlbmQgdXAg
Y2FsbGluZyBKYXZhU2NyaXB0IGNvZGUKKyAgICAvLyBpbmRpcmVjdGx5IHRocm91Z2ggdGhlIGlu
c3BlY3RvciBzbyBvbmx5IGNhbGwgdGhpcyBmdW5jdGlvbiB3aGVuCisgICAgLy8gaXQgaXMgc2Fm
ZSB0byBkbyBhbGxvY2F0aW9ucy4KKyAgICB2b2lkIGRpc3BhdGNoTm93KFBhZ2UqKTsKIAotICAg
ICAgICAvLyBBZGQgYSBtZXNzYWdlIHRvIHRoZSBjb25zb2xlIGJ1dCBkZWxheSB0aGUgcmVwb3J0
aW5nIHVudGlsIGl0Ci0gICAgICAgIC8vIGlzIHNhZmUgdG8gZG8gc286IEVpdGhlciB3aGVuIHdl
IGxlYXZlIEphdmFTY3JpcHQgZXhlY3V0aW9uIG9yCi0gICAgICAgIC8vIHdoZW4gYWRkaW5nIG90
aGVyIGNvbnNvbGUgbWVzc2FnZXMuIFRoZSBwcmltYXJ5IHB1cnBvc2Ugb2YgdGhpcwotICAgICAg
ICAvLyBtZXRob2QgaXMgdG8gYXZvaWQgY2FsbGluZyBpbnRvIFY4IHRvIGhhbmRsZSBjb25zb2xl
IG1lc3NhZ2VzCi0gICAgICAgIC8vIHdoZW4gdGhlIFZNIGlzIGluIGEgc3RhdGUgdGhhdCBkb2Vz
IG5vdCBzdXBwb3J0IEdDcyBvciBhbGxvY2F0aW9ucy4KLSAgICAgICAgLy8gRGVsYXllZCBtZXNz
YWdlcyBhcmUgYWx3YXlzIHJlcG9ydGVkIGluIHRoZSBwYWdlIGNvcnJlc3BvbmRpbmcKLSAgICAg
ICAgLy8gdG8gdGhlIGFjdGl2ZSBjb250ZXh0LgotICAgICAgICB2b2lkIGRpc3BhdGNoTGF0ZXIo
KTsKKyAgICAvLyBBZGQgYSBtZXNzYWdlIHRvIHRoZSBjb25zb2xlIGJ1dCBkZWxheSB0aGUgcmVw
b3J0aW5nIHVudGlsIGl0CisgICAgLy8gaXMgc2FmZSB0byBkbyBzbzogRWl0aGVyIHdoZW4gd2Ug
bGVhdmUgSmF2YVNjcmlwdCBleGVjdXRpb24gb3IKKyAgICAvLyB3aGVuIGFkZGluZyBvdGhlciBj
b25zb2xlIG1lc3NhZ2VzLiBUaGUgcHJpbWFyeSBwdXJwb3NlIG9mIHRoaXMKKyAgICAvLyBtZXRo
b2QgaXMgdG8gYXZvaWQgY2FsbGluZyBpbnRvIFY4IHRvIGhhbmRsZSBjb25zb2xlIG1lc3NhZ2Vz
CisgICAgLy8gd2hlbiB0aGUgVk0gaXMgaW4gYSBzdGF0ZSB0aGF0IGRvZXMgbm90IHN1cHBvcnQg
R0NzIG9yIGFsbG9jYXRpb25zLgorICAgIC8vIERlbGF5ZWQgbWVzc2FnZXMgYXJlIGFsd2F5cyBy
ZXBvcnRlZCBpbiB0aGUgcGFnZSBjb3JyZXNwb25kaW5nCisgICAgLy8gdG8gdGhlIGFjdGl2ZSBj
b250ZXh0LgorICAgIHZvaWQgZGlzcGF0Y2hMYXRlcigpOwogCi0gICAgICAgIC8vIFByb2Nlc3Mg
YW55IGRlbGF5ZWQgbWVzc2FnZXMuIE1heSBlbmQgdXAgY2FsbGluZyBKYXZhU2NyaXB0IGNvZGUK
LSAgICAgICAgLy8gaW5kaXJlY3RseSB0aHJvdWdoIHRoZSBpbnNwZWN0b3Igc28gb25seSBjYWxs
IHRoaXMgZnVuY3Rpb24gd2hlbgotICAgICAgICAvLyBpdCBpcyBzYWZlIHRvIGRvIGFsbG9jYXRp
b25zLgotICAgICAgICBzdGF0aWMgdm9pZCBwcm9jZXNzRGVsYXllZCgpOworICAgIC8vIFByb2Nl
c3MgYW55IGRlbGF5ZWQgbWVzc2FnZXMuIE1heSBlbmQgdXAgY2FsbGluZyBKYXZhU2NyaXB0IGNv
ZGUKKyAgICAvLyBpbmRpcmVjdGx5IHRocm91Z2ggdGhlIGluc3BlY3RvciBzbyBvbmx5IGNhbGwg
dGhpcyBmdW5jdGlvbiB3aGVuCisgICAgLy8gaXQgaXMgc2FmZSB0byBkbyBhbGxvY2F0aW9ucy4K
KyAgICBzdGF0aWMgdm9pZCBwcm9jZXNzRGVsYXllZCgpOwogCi0gICAgICAgIC8vIENvbnZlbmll
bmNlIGNsYXNzIGZvciBlbnN1cmluZyB0aGF0IGRlbGF5ZWQgbWVzc2FnZXMgaW4gdGhlCi0gICAg
ICAgIC8vIENvbnNvbGVNZXNzYWdlTWFuYWdlciBhcmUgcHJvY2Vzc2VkIHF1aWNrbHkuCi0gICAg
ICAgIGNsYXNzIFNjb3BlIHsKLSAgICAgICAgcHVibGljOgotICAgICAgICAgICAgU2NvcGUoKSB7
IFY4Q29uc29sZU1lc3NhZ2U6OnByb2Nlc3NEZWxheWVkKCk7IH0KLSAgICAgICAgICAgIH5TY29w
ZSgpIHsgVjhDb25zb2xlTWVzc2FnZTo6cHJvY2Vzc0RlbGF5ZWQoKTsgfQotICAgICAgICB9Owor
ICAgIC8vIENvbnZlbmllbmNlIGNsYXNzIGZvciBlbnN1cmluZyB0aGF0IGRlbGF5ZWQgbWVzc2Fn
ZXMgaW4gdGhlCisgICAgLy8gQ29uc29sZU1lc3NhZ2VNYW5hZ2VyIGFyZSBwcm9jZXNzZWQgcXVp
Y2tseS4KKyAgICBjbGFzcyBTY29wZSB7CisgICAgcHVibGljOgorICAgICAgICBTY29wZSgpIHsg
VjhDb25zb2xlTWVzc2FnZTo6cHJvY2Vzc0RlbGF5ZWQoKTsgfQorICAgICAgICB+U2NvcGUoKSB7
IFY4Q29uc29sZU1lc3NhZ2U6OnByb2Nlc3NEZWxheWVkKCk7IH0KKyAgICB9OwogCi0gICAgICAg
IC8vIENhbGxiYWNrIGZyb20gVjguCi0gICAgICAgIHN0YXRpYyB2b2lkIGhhbmRsZXIodjg6Okhh
bmRsZTx2ODo6TWVzc2FnZT4sIHY4OjpIYW5kbGU8djg6OlZhbHVlPiBkYXRhKTsKKyAgICAvLyBD
YWxsYmFjayBmcm9tIFY4LgorICAgIHN0YXRpYyB2b2lkIGhhbmRsZXIodjg6OkhhbmRsZTx2ODo6
TWVzc2FnZT4sIHY4OjpIYW5kbGU8djg6OlZhbHVlPiBkYXRhKTsKIAotICAgIHByaXZhdGU6Ci0g
ICAgICAgIGNvbnN0IFN0cmluZyBtX3N0cmluZzsKLSAgICAgICAgY29uc3QgU3RyaW5nIG1fc291
cmNlSUQ7Ci0gICAgICAgIGNvbnN0IHVuc2lnbmVkIG1fbGluZU51bWJlcjsKK3ByaXZhdGU6Cisg
ICAgY29uc3QgU3RyaW5nIG1fc3RyaW5nOworICAgIGNvbnN0IFN0cmluZyBtX3NvdXJjZUlEOwor
ICAgIGNvbnN0IHVuc2lnbmVkIG1fbGluZU51bWJlcjsKIAotICAgICAgICB2b2lkIGRpc3BhdGNo
Tm93KFBhZ2UqLCBTY3JpcHRDYWxsU3RhY2sqKTsKKyAgICB2b2lkIGRpc3BhdGNoTm93KFBhZ2Uq
LCBGcmFtZSosIFNjcmlwdENhbGxTdGFjayopOwogCi0gICAgICAgIC8vIEFsbCBkZWxheWVkIG1l
c3NhZ2VzIGFyZSBzdG9yZWQgaW4gdGhpcyB2ZWN0b3IuIElmIHRoZSB2ZWN0b3IKLSAgICAgICAg
Ly8gaXMgMCwgdGhlcmUgYXJlIG5vIGRlbGF5ZWQgbWVzc2FnZXMuCi0gICAgICAgIHN0YXRpYyBW
ZWN0b3I8VjhDb25zb2xlTWVzc2FnZT4qIG1fZGVsYXllZE1lc3NhZ2VzOwotICAgIH07CisgICAg
Ly8gQWxsIGRlbGF5ZWQgbWVzc2FnZXMgYXJlIHN0b3JlZCBpbiB0aGlzIHZlY3Rvci4gSWYgdGhl
IHZlY3RvcgorICAgIC8vIGlzIDAsIHRoZXJlIGFyZSBubyBkZWxheWVkIG1lc3NhZ2VzLgorICAg
IHN0YXRpYyBWZWN0b3I8VjhDb25zb2xlTWVzc2FnZT4qIG1fZGVsYXllZE1lc3NhZ2VzOworfTsK
IAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCmRpZmYgLS1naXQgYS9XZWJDb3JlL2JpbmRpbmdz
L2pzL0pTV29ya2VyQ29udGV4dEVycm9ySGFuZGxlci5oIGIvV2ViQ29yZS9iaW5kaW5ncy92OC9W
OFdpbmRvd0Vycm9ySGFuZGxlci5jcHAKb2xkIG1vZGUgMTAwNjQ0Cm5ldyBtb2RlIDEwMDc1NQpz
aW1pbGFyaXR5IGluZGV4IDU2JQpjb3B5IGZyb20gV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1dvcmtl
ckNvbnRleHRFcnJvckhhbmRsZXIuaApjb3B5IHRvIFdlYkNvcmUvYmluZGluZ3MvdjgvVjhXaW5k
b3dFcnJvckhhbmRsZXIuY3BwCmluZGV4IGExODgyOTkwMzhjOWNkZmU3MjI4NmI3MWZlYWViM2E0
OWMyYTBkODEuLmNmNjZiZmExMDkxZDUxYWU5MGY2ODlhMTI0N2NkODkxNTk3OTYzYzQKLS0tIGEv
V2ViQ29yZS9iaW5kaW5ncy9qcy9KU1dvcmtlckNvbnRleHRFcnJvckhhbmRsZXIuaAorKysgYi9X
ZWJDb3JlL2JpbmRpbmdzL3Y4L1Y4V2luZG93RXJyb3JIYW5kbGVyLmNwcApAQCAtMjgsMzcgKzI4
LDM1IEBACiAgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLgogICovCiAKLSNpZm5kZWYgSlNXb3JrZXJDb250ZXh0RXJy
b3JIYW5kbGVyX2gKLSNkZWZpbmUgSlNXb3JrZXJDb250ZXh0RXJyb3JIYW5kbGVyX2gKKyNpbmNs
dWRlICJjb25maWcuaCIKIAotI2luY2x1ZGUgIkpTRXZlbnRMaXN0ZW5lci5oIgorI2luY2x1ZGUg
IlY4V2luZG93RXJyb3JIYW5kbGVyLmgiCiAKLW5hbWVzcGFjZSBXZWJDb3JlIHsKLQotY2xhc3Mg
SlNXb3JrZXJDb250ZXh0RXJyb3JIYW5kbGVyIDogcHVibGljIEpTRXZlbnRMaXN0ZW5lciB7Ci1w
dWJsaWM6Ci0gICAgc3RhdGljIFBhc3NSZWZQdHI8SlNXb3JrZXJDb250ZXh0RXJyb3JIYW5kbGVy
PiBjcmVhdGUoSlNDOjpKU09iamVjdCogbGlzdGVuZXIsIEpTQzo6SlNPYmplY3QqIHdyYXBwZXIs
IGJvb2wgaXNBdHRyaWJ1dGUsIERPTVdyYXBwZXJXb3JsZCogaXNvbGF0ZWRXb3JsZCkKLSAgICB7
Ci0gICAgICAgIHJldHVybiBhZG9wdFJlZihuZXcgSlNXb3JrZXJDb250ZXh0RXJyb3JIYW5kbGVy
KGxpc3RlbmVyLCB3cmFwcGVyLCBpc0F0dHJpYnV0ZSwgaXNvbGF0ZWRXb3JsZCkpOwotICAgIH0K
KyNpbmNsdWRlICJFcnJvckV2ZW50LmgiCisjaW5jbHVkZSAiVjhCaW5kaW5nLmgiCiAKLSAgICB2
aXJ0dWFsIH5KU1dvcmtlckNvbnRleHRFcnJvckhhbmRsZXIoKTsKLQotcHJpdmF0ZToKLSAgICBK
U1dvcmtlckNvbnRleHRFcnJvckhhbmRsZXIoSlNDOjpKU09iamVjdCogZnVuY3Rpb24sIEpTQzo6
SlNPYmplY3QqIHdyYXBwZXIsIGJvb2wgaXNBdHRyaWJ1dGUsIERPTVdyYXBwZXJXb3JsZCogaXNv
bGF0ZWRXb3JsZCk7Ci0gICAgdmlydHVhbCB2b2lkIGhhbmRsZUV2ZW50KFNjcmlwdEV4ZWN1dGlv
bkNvbnRleHQqLCBFdmVudCopOwotfTsKK25hbWVzcGFjZSBXZWJDb3JlIHsKIAotLy8gQ3JlYXRl
cyBhIEpTIEV2ZW50TGlzdGVuZXIgZm9yICJvbmVycm9yIiBldmVudCBoYW5kbGVyIGluIHdvcmtl
ciBjb250ZXh0LiBJdCBoYXMgY3VzdG9tIGltcGxlbWVudGF0aW9uIGJlY2F1c2UKLS8vIHVubGlr
ZSBvdGhlciBldmVudCBsaXN0ZW5lcnMgaXQgYWNjZXB0cyB0aHJlZSBwYXJhbWV0ZXJzLgotaW5s
aW5lIFBhc3NSZWZQdHI8SlNXb3JrZXJDb250ZXh0RXJyb3JIYW5kbGVyPiBjcmVhdGVKU1dvcmtl
ckNvbnRleHRFcnJvckhhbmRsZXIoSlNDOjpFeGVjU3RhdGUqIGV4ZWMsIEpTQzo6SlNWYWx1ZSBs
aXN0ZW5lciwgSlNDOjpKU09iamVjdCogd3JhcHBlcikKK1Y4V2luZG93RXJyb3JIYW5kbGVyOjpW
OFdpbmRvd0Vycm9ySGFuZGxlcih2ODo6TG9jYWw8djg6Ok9iamVjdD4gbGlzdGVuZXIsIGJvb2wg
aXNJbmxpbmUsIGNvbnN0IFdvcmxkQ29udGV4dEhhbmRsZSYgd29ybGRDb250ZXh0KQorICAgIDog
VjhFdmVudExpc3RlbmVyKGxpc3RlbmVyLCBpc0lubGluZSwgd29ybGRDb250ZXh0KQogewotICAg
IGlmICghbGlzdGVuZXIuaXNPYmplY3QoKSkKLSAgICAgICAgcmV0dXJuIDA7Cit9CiAKLSAgICBy
ZXR1cm4gSlNXb3JrZXJDb250ZXh0RXJyb3JIYW5kbGVyOjpjcmVhdGUoYXNPYmplY3QobGlzdGVu
ZXIpLCB3cmFwcGVyLCB0cnVlLCBjdXJyZW50V29ybGQoZXhlYykpOwordjg6OkxvY2FsPHY4OjpW
YWx1ZT4gVjhXaW5kb3dFcnJvckhhbmRsZXI6OmNhbGxMaXN0ZW5lckZ1bmN0aW9uKFNjcmlwdEV4
ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQsIHY4OjpIYW5kbGU8djg6OlZhbHVlPiBqc0V2ZW50LCBF
dmVudCogZXZlbnQpCit7CisgICAgQVNTRVJUKGV2ZW50LT5pc0Vycm9yRXZlbnQoKSk7CisgICAg
djg6OkxvY2FsPHY4OjpPYmplY3Q+IGxpc3RlbmVyID0gZ2V0TGlzdGVuZXJPYmplY3QoY29udGV4
dCk7CisgICAgdjg6OkxvY2FsPHY4OjpWYWx1ZT4gcmV0dXJuVmFsdWU7CisgICAgaWYgKCFsaXN0
ZW5lci5Jc0VtcHR5KCkgJiYgbGlzdGVuZXItPklzRnVuY3Rpb24oKSkgeworICAgICAgICBFcnJv
ckV2ZW50KiBlcnJvckV2ZW50ID0gc3RhdGljX2Nhc3Q8RXJyb3JFdmVudCo+KGV2ZW50KTsKKyAg
ICAgICAgdjg6OkxvY2FsPHY4OjpGdW5jdGlvbj4gY2FsbEZ1bmN0aW9uID0gdjg6OkxvY2FsPHY4
OjpGdW5jdGlvbj46OkNhc3QobGlzdGVuZXIpOworICAgICAgICB2ODo6TG9jYWw8djg6Ok9iamVj
dD4gdGhpc1ZhbHVlID0gdjg6OkNvbnRleHQ6OkdldEN1cnJlbnQoKS0+R2xvYmFsKCk7CisgICAg
ICAgIHY4OjpIYW5kbGU8djg6OlZhbHVlPiBwYXJhbWV0ZXJzWzNdID0geyB2OFN0cmluZyhlcnJv
ckV2ZW50LT5tZXNzYWdlKCkpLCB2OFN0cmluZyhlcnJvckV2ZW50LT5maWxlbmFtZSgpKSwgdjg6
OkludGVnZXI6Ok5ldyhlcnJvckV2ZW50LT5saW5lbm8oKSkgfTsKKyAgICAgICAgcmV0dXJuVmFs
dWUgPSBjYWxsRnVuY3Rpb24tPkNhbGwodGhpc1ZhbHVlLCAzLCBwYXJhbWV0ZXJzKTsKKyAgICAg
ICAgaWYgKCFyZXR1cm5WYWx1ZS5Jc0VtcHR5KCkgJiYgcmV0dXJuVmFsdWUtPklzQm9vbGVhbigp
ICYmICFyZXR1cm5WYWx1ZS0+Qm9vbGVhblZhbHVlKCkpCisgICAgICAgICAgICBldmVudC0+cHJl
dmVudERlZmF1bHQoKTsKKyAgICB9CisgICAgcmV0dXJuIHJldHVyblZhbHVlOwogfQogCiB9IC8v
IG5hbWVzcGFjZSBXZWJDb3JlCi0KLSNlbmRpZiAvLyBKU1dvcmtlckNvbnRleHRFcnJvckhhbmRs
ZXJfaApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1dvcmtlckNvbnRleHRFcnJv
ckhhbmRsZXIuaCBiL1dlYkNvcmUvYmluZGluZ3MvdjgvVjhXaW5kb3dFcnJvckhhbmRsZXIuaApv
bGQgbW9kZSAxMDA2NDQKbmV3IG1vZGUgMTAwNzU1CnNpbWlsYXJpdHkgaW5kZXggNTglCnJlbmFt
ZSBmcm9tIFdlYkNvcmUvYmluZGluZ3MvanMvSlNXb3JrZXJDb250ZXh0RXJyb3JIYW5kbGVyLmgK
cmVuYW1lIHRvIFdlYkNvcmUvYmluZGluZ3MvdjgvVjhXaW5kb3dFcnJvckhhbmRsZXIuaAppbmRl
eCBhMTg4Mjk5MDM4YzljZGZlNzIyODZiNzFmZWFlYjNhNDljMmEwZDgxLi4xNjdjYTBkN2RmNDg2
MWUxMTRmM2EyZDY2MzNhNzQyMTBiZjY4ZjljCi0tLSBhL1dlYkNvcmUvYmluZGluZ3MvanMvSlNX
b3JrZXJDb250ZXh0RXJyb3JIYW5kbGVyLmgKKysrIGIvV2ViQ29yZS9iaW5kaW5ncy92OC9WOFdp
bmRvd0Vycm9ySGFuZGxlci5oCkBAIC0yOCwzNyArMjgsMjggQEAKICAqIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCiAg
Ki8KIAotI2lmbmRlZiBKU1dvcmtlckNvbnRleHRFcnJvckhhbmRsZXJfaAotI2RlZmluZSBKU1dv
cmtlckNvbnRleHRFcnJvckhhbmRsZXJfaAorI2lmbmRlZiBWOFdpbmRvd0Vycm9ySGFuZGxlcl9o
CisjZGVmaW5lIFY4V2luZG93RXJyb3JIYW5kbGVyX2gKIAotI2luY2x1ZGUgIkpTRXZlbnRMaXN0
ZW5lci5oIgorI2luY2x1ZGUgIlY4Q3VzdG9tRXZlbnRMaXN0ZW5lci5oIgorI2luY2x1ZGUgPHY4
Lmg+CisjaW5jbHVkZSA8d3RmL1Bhc3NSZWZQdHIuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewog
Ci1jbGFzcyBKU1dvcmtlckNvbnRleHRFcnJvckhhbmRsZXIgOiBwdWJsaWMgSlNFdmVudExpc3Rl
bmVyIHsKK2NsYXNzIFY4V2luZG93RXJyb3JIYW5kbGVyIDogcHVibGljIFY4RXZlbnRMaXN0ZW5l
ciB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFBhc3NSZWZQdHI8SlNXb3JrZXJDb250ZXh0RXJyb3JI
YW5kbGVyPiBjcmVhdGUoSlNDOjpKU09iamVjdCogbGlzdGVuZXIsIEpTQzo6SlNPYmplY3QqIHdy
YXBwZXIsIGJvb2wgaXNBdHRyaWJ1dGUsIERPTVdyYXBwZXJXb3JsZCogaXNvbGF0ZWRXb3JsZCkK
KyAgICBzdGF0aWMgUGFzc1JlZlB0cjxWOFdpbmRvd0Vycm9ySGFuZGxlcj4gY3JlYXRlKHY4OjpM
b2NhbDx2ODo6T2JqZWN0PiBsaXN0ZW5lciwgYm9vbCBpc0lubGluZSwgY29uc3QgV29ybGRDb250
ZXh0SGFuZGxlJiB3b3JsZENvbnRleHQpCiAgICAgewotICAgICAgICByZXR1cm4gYWRvcHRSZWYo
bmV3IEpTV29ya2VyQ29udGV4dEVycm9ySGFuZGxlcihsaXN0ZW5lciwgd3JhcHBlciwgaXNBdHRy
aWJ1dGUsIGlzb2xhdGVkV29ybGQpKTsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBWOFdp
bmRvd0Vycm9ySGFuZGxlcihsaXN0ZW5lciwgaXNJbmxpbmUsIHdvcmxkQ29udGV4dCkpOwogICAg
IH0KIAotICAgIHZpcnR1YWwgfkpTV29ya2VyQ29udGV4dEVycm9ySGFuZGxlcigpOwotCiBwcml2
YXRlOgotICAgIEpTV29ya2VyQ29udGV4dEVycm9ySGFuZGxlcihKU0M6OkpTT2JqZWN0KiBmdW5j
dGlvbiwgSlNDOjpKU09iamVjdCogd3JhcHBlciwgYm9vbCBpc0F0dHJpYnV0ZSwgRE9NV3JhcHBl
cldvcmxkKiBpc29sYXRlZFdvcmxkKTsKLSAgICB2aXJ0dWFsIHZvaWQgaGFuZGxlRXZlbnQoU2Ny
aXB0RXhlY3V0aW9uQ29udGV4dCosIEV2ZW50Kik7Ci19OworICAgIFY4V2luZG93RXJyb3JIYW5k
bGVyKHY4OjpMb2NhbDx2ODo6T2JqZWN0PiBsaXN0ZW5lciwgYm9vbCBpc0lubGluZSwgY29uc3Qg
V29ybGRDb250ZXh0SGFuZGxlJiB3b3JsZENvbnRleHQpOwogCi0vLyBDcmVhdGVzIGEgSlMgRXZl
bnRMaXN0ZW5lciBmb3IgIm9uZXJyb3IiIGV2ZW50IGhhbmRsZXIgaW4gd29ya2VyIGNvbnRleHQu
IEl0IGhhcyBjdXN0b20gaW1wbGVtZW50YXRpb24gYmVjYXVzZQotLy8gdW5saWtlIG90aGVyIGV2
ZW50IGxpc3RlbmVycyBpdCBhY2NlcHRzIHRocmVlIHBhcmFtZXRlcnMuCi1pbmxpbmUgUGFzc1Jl
ZlB0cjxKU1dvcmtlckNvbnRleHRFcnJvckhhbmRsZXI+IGNyZWF0ZUpTV29ya2VyQ29udGV4dEVy
cm9ySGFuZGxlcihKU0M6OkV4ZWNTdGF0ZSogZXhlYywgSlNDOjpKU1ZhbHVlIGxpc3RlbmVyLCBK
U0M6OkpTT2JqZWN0KiB3cmFwcGVyKQotewotICAgIGlmICghbGlzdGVuZXIuaXNPYmplY3QoKSkK
LSAgICAgICAgcmV0dXJuIDA7Ci0KLSAgICByZXR1cm4gSlNXb3JrZXJDb250ZXh0RXJyb3JIYW5k
bGVyOjpjcmVhdGUoYXNPYmplY3QobGlzdGVuZXIpLCB3cmFwcGVyLCB0cnVlLCBjdXJyZW50V29y
bGQoZXhlYykpOwotfQorICAgIHZpcnR1YWwgdjg6OkxvY2FsPHY4OjpWYWx1ZT4gY2FsbExpc3Rl
bmVyRnVuY3Rpb24oU2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIHY4OjpIYW5kbGU8djg6OlZhbHVl
PiBqc0V2ZW50LCBFdmVudCopOworfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCi0jZW5k
aWYgLy8gSlNXb3JrZXJDb250ZXh0RXJyb3JIYW5kbGVyX2gKKyNlbmRpZiAvLyBWOFdpbmRvd0Vy
cm9ySGFuZGxlcl9oCmRpZmYgLS1naXQgYS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAgYi9XZWJD
b3JlL2RvbS9Eb2N1bWVudC5jcHAKaW5kZXggZTc1YWM2YTA4YTZiM2VkYTEzNDhiNGE4ZjE3Y2Qz
ZTQwMmM1NmQ0NS4uNDBiZjE1OTgzOGIwNWRmYmIyODY5ZjExOWNiMmRkYjU3MmZmZGFjNCAxMDA2
NDQKLS0tIGEvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCisrKyBiL1dlYkNvcmUvZG9tL0RvY3Vt
ZW50LmNwcApAQCAtNDA1LDYgKzQwNSw3IEBAIERvY3VtZW50OjpEb2N1bWVudChGcmFtZSogZnJh
bWUsIGNvbnN0IEtVUkwmIHVybCwgYm9vbCBpc1hIVE1MLCBib29sIGlzSFRNTCkKICNlbmRpZgog
ICAgICwgbV93ZWFrUmVmZXJlbmNlKERvY3VtZW50V2Vha1JlZmVyZW5jZTo6Y3JlYXRlKHRoaXMp
KQogICAgICwgbV9pZEF0dHJpYnV0ZU5hbWUoaWRBdHRyKQorICAgICwgbV9yZXBvcnRpbmdFeGNl
cHRpb24oZmFsc2UpCiB7CiAgICAgbV9kb2N1bWVudCA9IHRoaXM7CiAKQEAgLTQ0NDMsNiArNDQ0
NCwxMiBAQCB2b2lkIERvY3VtZW50OjpwYXJzZUROU1ByZWZldGNoQ29udHJvbEhlYWRlcihjb25z
dCBTdHJpbmcmIGRuc1ByZWZldGNoQ29udHJvbCkKIAogdm9pZCBEb2N1bWVudDo6cmVwb3J0RXhj
ZXB0aW9uKGNvbnN0IFN0cmluZyYgZXJyb3JNZXNzYWdlLCBpbnQgbGluZU51bWJlciwgY29uc3Qg
U3RyaW5nJiBzb3VyY2VVUkwpCiB7CisgICAgaWYgKERPTVdpbmRvdyogZG9tV2luZG93ID0gdGhp
cy0+ZG9tV2luZG93KCkpIHsKKyAgICAgICAgLy8gSW52b2tlIHdpbmRvdy5vbmVycm9yLgorICAg
ICAgICBpZiAoaW52b2tlT25FcnJvckhhbmRsZXIoZG9tV2luZG93LT5vbmVycm9yKCksIGVycm9y
TWVzc2FnZSwgbGluZU51bWJlciwgc291cmNlVVJMKSkKKyAgICAgICAgICAgIHJldHVybjsKKyAg
ICB9CisKICAgICBhZGRNZXNzYWdlKEpTTWVzc2FnZVNvdXJjZSwgTG9nTWVzc2FnZVR5cGUsIEVy
cm9yTWVzc2FnZUxldmVsLCBlcnJvck1lc3NhZ2UsIGxpbmVOdW1iZXIsIHNvdXJjZVVSTCk7CiB9
CiAKZGlmZiAtLWdpdCBhL1dlYkNvcmUvZG9tL0RvY3VtZW50LmggYi9XZWJDb3JlL2RvbS9Eb2N1
bWVudC5oCmluZGV4IDY1ZWYxM2ZmZGRjYjU3Yjc3YzU3OWE0NmE1ODRmZmUyNDdmMjRhM2UuLjI1
MDhmMTQxM2MwNDdhYTA4YjZkNTk1MGRjZWNiNjIwMzk2NGRhMGMgMTAwNjQ0Ci0tLSBhL1dlYkNv
cmUvZG9tL0RvY3VtZW50LmgKKysrIGIvV2ViQ29yZS9kb20vRG9jdW1lbnQuaApAQCAtMTI4Myw2
ICsxMjgzLDggQEAgcHJpdmF0ZToKICAgICBIYXNoU2V0PE1lZGlhQ2FuU3RhcnRMaXN0ZW5lcio+
IG1fbWVkaWFDYW5TdGFydExpc3RlbmVyczsKIAogICAgIFF1YWxpZmllZE5hbWUgbV9pZEF0dHJp
YnV0ZU5hbWU7CisKKyAgICBib29sIG1fcmVwb3J0aW5nRXhjZXB0aW9uOwogfTsKIAogaW5saW5l
IGJvb2wgRG9jdW1lbnQ6Omhhc0VsZW1lbnRXaXRoSWQoQXRvbWljU3RyaW5nSW1wbCogaWQpIGNv
bnN0CmRpZmYgLS1naXQgYS9XZWJDb3JlL2RvbS9TY3JpcHRFeGVjdXRpb25Db250ZXh0LmNwcCBi
L1dlYkNvcmUvZG9tL1NjcmlwdEV4ZWN1dGlvbkNvbnRleHQuY3BwCmluZGV4IGQwMTRkNDdiNDJk
YjUxNWJlNTNjNzEwZTM5ZWRjOGJmOTBiNDA2MzEuLmZjOGMzMTJkZDU4MGE0OWNhY2Q4Y2M1YWU5
OGVmYjI0ZjA0OWU0M2QgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvZG9tL1NjcmlwdEV4ZWN1dGlvbkNv
bnRleHQuY3BwCisrKyBiL1dlYkNvcmUvZG9tL1NjcmlwdEV4ZWN1dGlvbkNvbnRleHQuY3BwCkBA
IC0zMyw2ICszMyw4IEBACiAjaW5jbHVkZSAiRGF0YWJhc2UuaCIKICNpbmNsdWRlICJEYXRhYmFz
ZVRhc2suaCIKICNpbmNsdWRlICJEYXRhYmFzZVRocmVhZC5oIgorI2luY2x1ZGUgIkVycm9yRXZl
bnQuaCIKKyNpbmNsdWRlICJFdmVudExpc3RlbmVyLmgiCiAjaW5jbHVkZSAiRmlsZVRocmVhZC5o
IgogI2luY2x1ZGUgIk1lc3NhZ2VQb3J0LmgiCiAjaW5jbHVkZSAiU2VjdXJpdHlPcmlnaW4uaCIK
QEAgLTY1LDYgKzY3LDcgQEAgU2NyaXB0RXhlY3V0aW9uQ29udGV4dDo6U2NyaXB0RXhlY3V0aW9u
Q29udGV4dCgpCiAjaWYgRU5BQkxFKERBVEFCQVNFKQogICAgIDogbV9oYXNPcGVuRGF0YWJhc2Vz
KGZhbHNlKQogI2VuZGlmCisgICAgLCBtX2luRXJyb3JIYW5kbGVyKGZhbHNlKQogewogfQogCkBA
IC0yNTgsNiArMjYxLDE5IEBAIHZvaWQgU2NyaXB0RXhlY3V0aW9uQ29udGV4dDo6c2V0U2VjdXJp
dHlPcmlnaW4oUGFzc1JlZlB0cjxTZWN1cml0eU9yaWdpbj4gc2VjdXJpCiAgICAgbV9zZWN1cml0
eU9yaWdpbiA9IHNlY3VyaXR5T3JpZ2luOwogfQogCitib29sIFNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHQ6Omludm9rZU9uRXJyb3JIYW5kbGVyKEV2ZW50TGlzdGVuZXIqIG9uZXJyb3IsIGNvbnN0IFN0
cmluZyYgZXJyb3JNZXNzYWdlLCBpbnQgbGluZU51bWJlciwgY29uc3QgU3RyaW5nJiBzb3VyY2VV
UkwpCit7CisgICAgaWYgKCFvbmVycm9yKQorICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgaWYg
KG1faW5FcnJvckhhbmRsZXIpCisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICBtX2luRXJyb3JI
YW5kbGVyID0gdHJ1ZTsKKyAgICBSZWZQdHI8RXJyb3JFdmVudD4gZXJyb3JFdmVudChFcnJvckV2
ZW50OjpjcmVhdGUoZXJyb3JNZXNzYWdlLCBzb3VyY2VVUkwsIGxpbmVOdW1iZXIpKTsKKyAgICBv
bmVycm9yLT5oYW5kbGVFdmVudCh0aGlzLCBlcnJvckV2ZW50LmdldCgpKTsKKyAgICBtX2luRXJy
b3JIYW5kbGVyID0gZmFsc2U7CisgICAgcmV0dXJuIGVycm9yRXZlbnQtPmRlZmF1bHRQcmV2ZW50
ZWQoKTsKK30KKwogdm9pZCBTY3JpcHRFeGVjdXRpb25Db250ZXh0OjphZGRUaW1lb3V0KGludCB0
aW1lb3V0SWQsIERPTVRpbWVyKiB0aW1lcikKIHsKICAgICBBU1NFUlQoIW1fdGltZW91dHMuY29u
dGFpbnModGltZW91dElkKSk7CmRpZmYgLS1naXQgYS9XZWJDb3JlL2RvbS9TY3JpcHRFeGVjdXRp
b25Db250ZXh0LmggYi9XZWJDb3JlL2RvbS9TY3JpcHRFeGVjdXRpb25Db250ZXh0LmgKaW5kZXgg
MzBjMTJlNTBjMzYyZWYwMDg2YjU0OTg2MTFjMDE0MzZlN2FlNDBiNy4uYjk3YzMxMzU0YTcxMmEw
MWQ4ZWI0ZmE2OWYxNGMxZWEzNDdkODM0ZSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9kb20vU2NyaXB0
RXhlY3V0aW9uQ29udGV4dC5oCisrKyBiL1dlYkNvcmUvZG9tL1NjcmlwdEV4ZWN1dGlvbkNvbnRl
eHQuaApAQCAtNTIsNiArNTIsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgY2xhc3MgRGF0
YWJhc2VUaHJlYWQ7CiAjZW5kaWYKICAgICBjbGFzcyBET01UaW1lcjsKKyAgICBjbGFzcyBFdmVu
dExpc3RlbmVyOwogI2lmIEVOQUJMRShCTE9CKSB8fCBFTkFCTEUoRklMRV9XUklURVIpCiAgICAg
Y2xhc3MgRmlsZVRocmVhZDsKICNlbmRpZgpAQCAtOTQsNiArOTUsNyBAQCBuYW1lc3BhY2UgV2Vi
Q29yZSB7CiAKICAgICAgICAgdmlydHVhbCB2b2lkIHJlcG9ydEV4Y2VwdGlvbihjb25zdCBTdHJp
bmcmIGVycm9yTWVzc2FnZSwgaW50IGxpbmVOdW1iZXIsIGNvbnN0IFN0cmluZyYgc291cmNlVVJM
KSA9IDA7CiAgICAgICAgIHZpcnR1YWwgdm9pZCBhZGRNZXNzYWdlKE1lc3NhZ2VTb3VyY2UsIE1l
c3NhZ2VUeXBlLCBNZXNzYWdlTGV2ZWwsIGNvbnN0IFN0cmluZyYgbWVzc2FnZSwgdW5zaWduZWQg
bGluZU51bWJlciwgY29uc3QgU3RyaW5nJiBzb3VyY2VVUkwpID0gMDsKKyAgICAgICAgYm9vbCBp
bnZva2VPbkVycm9ySGFuZGxlcihFdmVudExpc3RlbmVyKiwgY29uc3QgU3RyaW5nJiBlcnJvck1l
c3NhZ2UsIGludCBsaW5lTnVtYmVyLCBjb25zdCBTdHJpbmcmIHNvdXJjZVVSTCk7CiAKICAgICAg
ICAgLy8gQWN0aXZlIG9iamVjdHMgYXJlIG5vdCBnYXJiYWdlIGNvbGxlY3RlZCBldmVuIGlmIGlu
YWNjZXNzaWJsZSwgZS5nLiBiZWNhdXNlIHRoZWlyIGFjdGl2aXR5IG1heSByZXN1bHQgaW4gY2Fs
bGJhY2tzIGJlaW5nIGludm9rZWQuCiAgICAgICAgIGJvb2wgY2FuU3VzcGVuZEFjdGl2ZURPTU9i
amVjdHMoKTsKQEAgLTE4Myw2ICsxODUsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAjaWYgRU5B
QkxFKEJMT0IpIHx8IEVOQUJMRShGSUxFX1dSSVRFUikKICAgICAgICAgUmVmUHRyPEZpbGVUaHJl
YWQ+IG1fZmlsZVRocmVhZDsKICNlbmRpZgorICAgICAgICBib29sIG1faW5FcnJvckhhbmRsZXI7
CiAgICAgfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS93
b3JrZXJzL1dvcmtlckNvbnRleHQuY3BwIGIvV2ViQ29yZS93b3JrZXJzL1dvcmtlckNvbnRleHQu
Y3BwCmluZGV4IDM2YTlmOTQ2ZGQzNzc3ZmVkZjEyY2NkMDc4NzFjOTcwODM2ZWRlOGUuLjMwYThj
ZDRjZTBhZTc4NzgxODA3NTBhYjcwZGIzN2ZhYTNiZGNmNDYgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUv
d29ya2Vycy9Xb3JrZXJDb250ZXh0LmNwcAorKysgYi9XZWJDb3JlL3dvcmtlcnMvV29ya2VyQ29u
dGV4dC5jcHAKQEAgLTg4LDcgKzg4LDYgQEAgV29ya2VyQ29udGV4dDo6V29ya2VyQ29udGV4dChj
b25zdCBLVVJMJiB1cmwsIGNvbnN0IFN0cmluZyYgdXNlckFnZW50LCBXb3JrZXJUaHIKICAgICAs
IG1fc2NyaXB0KG5ldyBXb3JrZXJTY3JpcHRDb250cm9sbGVyKHRoaXMpKQogICAgICwgbV90aHJl
YWQodGhyZWFkKQogICAgICwgbV9jbG9zaW5nKGZhbHNlKQotICAgICwgbV9yZXBvcnRpbmdFeGNl
cHRpb24oZmFsc2UpCiB7CiAgICAgc2V0U2VjdXJpdHlPcmlnaW4oU2VjdXJpdHlPcmlnaW46OmNy
ZWF0ZSh1cmwpKTsKIH0KQEAgLTI0MywxNyArMjQyLDcgQEAgdm9pZCBXb3JrZXJDb250ZXh0Ojpp
bXBvcnRTY3JpcHRzKGNvbnN0IFZlY3RvcjxTdHJpbmc+JiB1cmxzLCBFeGNlcHRpb25Db2RlJiBl
YykKIAogdm9pZCBXb3JrZXJDb250ZXh0OjpyZXBvcnRFeGNlcHRpb24oY29uc3QgU3RyaW5nJiBl
cnJvck1lc3NhZ2UsIGludCBsaW5lTnVtYmVyLCBjb25zdCBTdHJpbmcmIHNvdXJjZVVSTCkKIHsK
LSAgICBib29sIGVycm9ySGFuZGxlZCA9IGZhbHNlOwotICAgIGlmICghbV9yZXBvcnRpbmdFeGNl
cHRpb24pIHsKLSAgICAgICAgaWYgKG9uZXJyb3IoKSkgewotICAgICAgICAgICAgbV9yZXBvcnRp
bmdFeGNlcHRpb24gPSB0cnVlOwotICAgICAgICAgICAgUmVmUHRyPEVycm9yRXZlbnQ+IGVycm9y
RXZlbnQoRXJyb3JFdmVudDo6Y3JlYXRlKGVycm9yTWVzc2FnZSwgc291cmNlVVJMLCBsaW5lTnVt
YmVyKSk7Ci0gICAgICAgICAgICBvbmVycm9yKCktPmhhbmRsZUV2ZW50KHRoaXMsIGVycm9yRXZl
bnQuZ2V0KCkpOwotICAgICAgICAgICAgZXJyb3JIYW5kbGVkID0gZXJyb3JFdmVudC0+ZGVmYXVs
dFByZXZlbnRlZCgpOwotICAgICAgICAgICAgbV9yZXBvcnRpbmdFeGNlcHRpb24gPSBmYWxzZTsK
LSAgICAgICAgfQotICAgIH0KLSAgICBpZiAoIWVycm9ySGFuZGxlZCkKKyAgICBpZiAoIWludm9r
ZU9uRXJyb3JIYW5kbGVyKG9uZXJyb3IoKSwgZXJyb3JNZXNzYWdlLCBsaW5lTnVtYmVyLCBzb3Vy
Y2VVUkwpKQogICAgICAgICB0aHJlYWQoKS0+d29ya2VyUmVwb3J0aW5nUHJveHkoKS5wb3N0RXhj
ZXB0aW9uVG9Xb3JrZXJPYmplY3QoZXJyb3JNZXNzYWdlLCBsaW5lTnVtYmVyLCBzb3VyY2VVUkwp
OwogfQogCmRpZmYgLS1naXQgYS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyQ29udGV4dC5oIGIvV2Vi
Q29yZS93b3JrZXJzL1dvcmtlckNvbnRleHQuaAppbmRleCA5ZTllNTRmOGIxMzEzZTY1ZmJhZmVh
YWVkYWVmNGRlMDljOTAyMmMxLi4xNzQzYmI2MDFmNmVlZDg1MjE5YWVhOWZlZjllNTBjYjljNmE5
MTJhIDEwMDY0NAotLS0gYS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyQ29udGV4dC5oCisrKyBiL1dl
YkNvcmUvd29ya2Vycy9Xb3JrZXJDb250ZXh0LmgKQEAgLTE1NCw3ICsxNTQsNiBAQCBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiAgICAgICAgIG11dGFibGUgUmVmUHRyPE5vdGlmaWNhdGlvbkNlbnRlcj4g
bV9ub3RpZmljYXRpb25zOwogI2VuZGlmCiAgICAgICAgIGJvb2wgbV9jbG9zaW5nOwotICAgICAg
ICBib29sIG1fcmVwb3J0aW5nRXhjZXB0aW9uOwogICAgICAgICBFdmVudFRhcmdldERhdGEgbV9l
dmVudFRhcmdldERhdGE7CiAgICAgfTsKIAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>65106</attachid>
            <date>2010-08-23 05:13:26 -0700</date>
            <delta_ts>2010-08-23 05:32:11 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-8519-20100823161322.patch</filename>
            <type>text/plain</type>
            <size>70515</size>
            <attacher name="Yury Semikhatsky">yurys</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCA4ZjllNzNhZDc4ZWY2MzdiMDMxMTdiZTU1ZGZiOWNjZTA1YjZiOTQyLi5jYmQwYzA5
Y2ZlMjkxYzliY2M3ZWJlZjg5Y2VhYzFmZWM0ZjU3Y2VjIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDMgQEAK
KzIwMTAtMDgtMjMgIFl1cnkgU2VtaWtoYXRza3kgIDx5dXJ5c0BjaHJvbWl1bS5vcmc+CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgV2ViQ29yZSBkb2Vz
bid0IGZpcmUgd2luZG93Lm9uZXJyb3IgZXZlbnQgd2hlbiB1bmNhdWdodCBKYXZhU2NyaXB0IGV4
Y2VwdGlvbnMgYXJlIHRocm93bgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9ODUxOQorCisgICAgICAgIFVuY2F1Z2h0IGV4Y2VwdGlvbnMgYXJlIHByb3Bh
Z2F0ZWQgdG8gd2luZG93Lm9uZXJyb3IgaGFuZGVyIGlmIG9uZSBpcyBwcmVzZW50LgorICAgICAg
ICBUaGUgaGFuZGxlciBpcyBleHBlY3RlZCB0byBiZSBhIGZ1bmN0aW9uIGFjY2VwdGluZyB0aHJl
ZSBhcmd1bWVudHM6IGVycm9yIG1lc3NhZ2UsCisgICAgICAgIHJlc291cmNlIHVybCBhbmQgbGlu
ZSBudW1iZXIgd2hlcmUgdGhlIGV4Y2VwdGlvbiBvY2N1cmVkLgorCisgICAgICAgICogZmFzdC9l
dmVudHMvd2luZG93LW9uZXJyb3IxLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFz
dC9ldmVudHMvd2luZG93LW9uZXJyb3IxLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZXZl
bnRzL3dpbmRvdy1vbmVycm9yMi1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3Qv
ZXZlbnRzL3dpbmRvdy1vbmVycm9yMi5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2V2ZW50
cy93aW5kb3ctb25lcnJvcjMtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2V2
ZW50cy93aW5kb3ctb25lcnJvcjMuaHRtbDogQWRkZWQuCisgICAgICAgICogZmFzdC9ldmVudHMv
d2luZG93LW9uZXJyb3I0LWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC9ldmVu
dHMvd2luZG93LW9uZXJyb3I0Lmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZXZlbnRzL3dp
bmRvdy1vbmVycm9yNS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZXZlbnRz
L3dpbmRvdy1vbmVycm9yNS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2V2ZW50cy93aW5k
b3ctb25lcnJvcjYtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2V2ZW50cy93
aW5kb3ctb25lcnJvcjYuaHRtbDogQWRkZWQuCisgICAgICAgICogZmFzdC9ldmVudHMvd2luZG93
LW9uZXJyb3I3LWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC9ldmVudHMvd2lu
ZG93LW9uZXJyb3I3Lmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZXZlbnRzL3dpbmRvdy1v
bmVycm9yOC1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZXZlbnRzL3dpbmRv
dy1vbmVycm9yOC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3NlY3VyaXR5L3Jl
c291cmNlcy9vbmVycm9yLWlmcmFtZS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3Rz
L3NlY3VyaXR5L3dpbmRvdy1vbmVycm9yLWV4Y2VwdGlvbi1pbi1pZnJhbWUtZXhwZWN0ZWQudHh0
OiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3NlY3VyaXR5L3dpbmRvdy1vbmVycm9yLWV4
Y2VwdGlvbi1pbi1pZnJhbWUuaHRtbDogQWRkZWQuCisgICAgICAgICogcGxhdGZvcm0vY2hyb21p
dW0vZmFzdC9ldmVudHMvd2luZG93LW9uZXJyb3IxLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAg
ICAgICogcGxhdGZvcm0vY2hyb21pdW0vZmFzdC9ldmVudHMvd2luZG93LW9uZXJyb3IyLWV4cGVj
dGVkLnR4dDogQWRkZWQuCisgICAgICAgICogcGxhdGZvcm0vY2hyb21pdW0vZmFzdC9ldmVudHMv
d2luZG93LW9uZXJyb3IzLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogcGxhdGZvcm0v
Y2hyb21pdW0vZmFzdC9ldmVudHMvd2luZG93LW9uZXJyb3I0LWV4cGVjdGVkLnR4dDogQWRkZWQu
CisgICAgICAgICogcGxhdGZvcm0vY2hyb21pdW0vZmFzdC9ldmVudHMvd2luZG93LW9uZXJyb3I1
LWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogcGxhdGZvcm0vY2hyb21pdW0vZmFzdC9l
dmVudHMvd2luZG93LW9uZXJyb3I2LWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogcGxh
dGZvcm0vY2hyb21pdW0vZmFzdC9ldmVudHMvd2luZG93LW9uZXJyb3I3LWV4cGVjdGVkLnR4dDog
QWRkZWQuCisgICAgICAgICogcGxhdGZvcm0vY2hyb21pdW0vZmFzdC9ldmVudHMvd2luZG93LW9u
ZXJyb3I4LWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogcGxhdGZvcm0vY2hyb21pdW0v
aHR0cC90ZXN0cy9zZWN1cml0eS93aW5kb3ctb25lcnJvci1leGNlcHRpb24taW4taWZyYW1lLWV4
cGVjdGVkLnR4dDogQWRkZWQuCisKIDIwMTAtMDgtMjIgIEtlbnQgVGFtdXJhICA8dGtlbnRAY2hy
b21pdW0ub3JnPgogCiAgICAgICAgIFVucmV2aWV3ZWQsIHRlc3QgZXhwZWN0YXRpb24gdXBkYXRl
LgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvd2luZG93LW9uZXJyb3IxLWV4
cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3dpbmRvdy1vbmVycm9yMS1leHBl
Y3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uOWQwOGM1MGJkOWY3N2U5ZTRkODNhNjcxOTk0MzU3MjliMmFi
ZTA2YQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3dpbmRvdy1v
bmVycm9yMS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw0IEBACitDT05TT0xFIE1FU1NBR0U6IGxp
bmUgMjU6IFJlZmVyZW5jZUVycm9yOiBDYW4ndCBmaW5kIHZhcmlhYmxlOiBoYWhhaGFfZ29vZF9s
dWNrX2ZpbmRpbmdfbWUKK1RoaXMgcGFnZSB0ZXN0cyBzZXR0aW5nIG9uZXJyb3IgaGFuZGxlcnMg
dGhyb3VnaCB0aGUgRE9NLiBJZiBpdCBwYXNzZXMsIHlvdSB3aWxsIHNlZSAiUEFTUyIgbWVzc2Fn
ZXMgYmVsb3cuQnVnIDg1MTkuCisKK1BBU1M6IGNhdWdodCBnbG9iYWwgZXJyb3I6IFJlZmVyZW5j
ZUVycm9yOiBDYW4ndCBmaW5kIHZhcmlhYmxlOiBoYWhhaGFfZ29vZF9sdWNrX2ZpbmRpbmdfbWUg
YXQgd2luZG93LW9uZXJyb3IxLmh0bWw6MjUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3Qv
ZXZlbnRzL3dpbmRvdy1vbmVycm9yMS5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvd2lu
ZG93LW9uZXJyb3IxLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMGJkYWE5YmIyYmMwOGE0Nzk0YzFhMzE2N2Q4
NTZiNzE0YTIzMzUxZQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRz
L3dpbmRvdy1vbmVycm9yMS5odG1sCkBAIC0wLDAgKzEsMzUgQEAKKzxodG1sPgorPGhlYWQ+Cis8
c2NyaXB0PgoraWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKKyAgICBsYXlvdXRUZXN0
Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7CisKK2Z1bmN0aW9uIHByaW50KG1lc3NhZ2UsIGNvbG9y
KQoreworICAgIHZhciBwYXJhZ3JhcGggPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTsK
KyAgICBwYXJhZ3JhcGguYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUobWVzc2Fn
ZSkpOworICAgIHBhcmFncmFwaC5zdHlsZS5mb250RmFtaWx5ID0gIm1vbm9zcGFjZSI7CisgICAg
aWYgKGNvbG9yKQorICAgICAgICBwYXJhZ3JhcGguc3R5bGUuY29sb3IgPSBjb2xvcjsKKyAgICBk
b2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY29uc29sZSIpLmFwcGVuZENoaWxkKHBhcmFncmFwaCk7
Cit9CisKK2Z1bmN0aW9uIHRlc3QoKQoreworICAgIC8vIG11c3QgYmUgbGFzdCBiZWNhdXNlIHRo
ZSBleGNlcHRpb24gZW5kcyBKYXZhU2NyaXB0IGV4ZWN1dGlvbgorICAgIHdpbmRvdy5vbmVycm9y
ID0gZnVuY3Rpb24gKGVycm9yLCB1cmwsIGxpbmUpIHsKKyAgICAgICAgdXJsID0gdXJsID8gdXJs
Lm1hdGNoKCAvW15cL10rXC8/JC8gKVswXSA6IHVybDsKKyAgICAgICAgcHJpbnQoIlBBU1M6IGNh
dWdodCBnbG9iYWwgZXJyb3I6ICIgKyBlcnJvciArICIgYXQgIiArIHVybCArICI6IiArIGxpbmUs
ICJncmVlbiIpOworICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9OworICAgIGhhaGFoYV9nb29k
X2x1Y2tfZmluZGluZ19tZSgpOyAvLyBjYXVnaHQgYnkgd2luZG93Lm9uZXJyb3IKK30KKzwvc2Ny
aXB0PgorPC9oZWFkPgorPGJvZHkgb25sb2FkPSJ0ZXN0KCk7Ij4KKzxwPlRoaXMgcGFnZSB0ZXN0
cyBzZXR0aW5nIG9uZXJyb3IgaGFuZGxlcnMgdGhyb3VnaCB0aGUgRE9NLiBJZiBpdCBwYXNzZXMs
IHlvdSB3aWxsCisgICBzZWUgIlBBU1MiIG1lc3NhZ2VzIGJlbG93LjxhIGhyZWY9Imh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04NTE5Ij5CdWcgODUxOTwvYT4uPC9wPgor
PGhyPgorPGRpdiBpZD0nY29uc29sZSc+PC9kaXY+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy93aW5kb3ctb25lcnJvcjItZXhwZWN0ZWQudHh0
IGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvd2luZG93LW9uZXJyb3IyLWV4cGVjdGVkLnR4dApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi42YmQ0MGQ5MmUxMzU0ZmM1NDE0YTExMzJmMTc2ZTU5OTI4MDkyYWE0Ci0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvd2luZG93LW9uZXJyb3IyLWV4
cGVjdGVkLnR4dApAQCAtMCwwICsxLDkgQEAKK0NPTlNPTEUgTUVTU0FHRTogbGluZSAwOiBJbmxp
bmUgc2NyaXB0IGV4Y2VwdGlvbgorQ09OU09MRSBNRVNTQUdFOiBsaW5lIDA6IEV4Y2VwdGlvbiBp
biBvbmxvYWQKK0NPTlNPTEUgTUVTU0FHRTogbGluZSAwOiBFeGNlcHRpb24gaW4gc2V0VGltZW91
dAorVGVzdCB0aGF0IHVuY2F1Z2h0IGV4Y2VwdGlvbnMgd2lsbCBiZSByZXBvcnRlZCB0byB0aGUg
d2luZG93Lm9uZXJyb3IgaGFuZGxlci4gQnVnIDg1MTkuCisKK01haW4gZnJhbWUgd2luZG93Lm9u
ZXJyb3I6IElubGluZSBzY3JpcHQgZXhjZXB0aW9uIGF0IHVuZGVmaW5lZDowCitNYWluIGZyYW1l
IHdpbmRvdy5vbmVycm9yOiBFeGNlcHRpb24gaW4gb25sb2FkIGF0IHVuZGVmaW5lZDowCitNYWlu
IGZyYW1lIHdpbmRvdy5vbmVycm9yOiBFeGNlcHRpb24gaW4gc2V0VGltZW91dCBhdCB1bmRlZmlu
ZWQ6MAorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy93aW5kb3ctb25lcnJv
cjIuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3dpbmRvdy1vbmVycm9yMi5odG1sCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLjliYmM1MDk2OGFjNjM2MTk5MmQ1YTdkNjNjZmE2OTJmYzliOTMzYTIKLS0tIC9k
ZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy93aW5kb3ctb25lcnJvcjIuaHRt
bApAQCAtMCwwICsxLDQwIEBACis8aHRtbD4KKzxib2R5IG9ubG9hZD0idGhyb3cgJ0V4Y2VwdGlv
biBpbiBvbmxvYWQnOyI+Cis8cD5UZXN0IHRoYXQgdW5jYXVnaHQgZXhjZXB0aW9ucyB3aWxsIGJl
IHJlcG9ydGVkIHRvIHRoZSB3aW5kb3cub25lcnJvciBoYW5kbGVyLiA8YSBocmVmPSJodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODUxOSI+QnVnIDg1MTk8L2E+LjwvcD4K
KzxkaXYgaWQ9InJlc3VsdCI+PC9kaXY+Cis8c2NyaXB0PgoraWYgKHdpbmRvdy5sYXlvdXRUZXN0
Q29udHJvbGxlcikgeworICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKKyAg
ICBsYXlvdXRUZXN0Q29udHJvbGxlci53YWl0VW50aWxEb25lKCk7Cit9CisKK2Z1bmN0aW9uIGxv
Zyhtc2cpIHsKKyAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicmVzdWx0IikuaW5uZXJIVE1M
ICs9IG1zZyArICI8YnI+IjsKK30KKword2luZG93Lm9uZXJyb3IgPSBmdW5jdGlvbihtc2csIHVy
bCwgbGluZSkKK3sKKyAgICB1cmwgPSB1cmwgPyB1cmwubWF0Y2goIC9bXlwvXStcLz8kLyApWzBd
IDogdXJsOworICAgIGxvZygiTWFpbiBmcmFtZSB3aW5kb3cub25lcnJvcjogIiArIG1zZyArICIg
YXQgIiArIHVybCArICI6IiArIGxpbmUpOworfQorCitmdW5jdGlvbiBkZWxheWVkVGhyb3dFeGNl
cHRpb24oKQoreworICAgIHRocm93ICJFeGNlcHRpb24gaW4gc2V0VGltZW91dCI7Cit9CitzZXRU
aW1lb3V0KGRlbGF5ZWRUaHJvd0V4Y2VwdGlvbiwgMCk7CisKK3NldFRpbWVvdXQoZnVuY3Rpb24o
KSB7CisgICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKKyAgICAgICAgbGF5b3V0
VGVzdENvbnRyb2xsZXIubm90aWZ5RG9uZSgpOworfSwgMCk7CisKK2Z1bmN0aW9uIHRocm93RXhj
ZXB0aW9uKCkKK3sKKyAgICB0aHJvdyAiSW5saW5lIHNjcmlwdCBleGNlcHRpb24iOworfQordGhy
b3dFeGNlcHRpb24oKTsKKworPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy93aW5kb3ctb25lcnJvcjMtZXhwZWN0ZWQudHh0IGIv
TGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvd2luZG93LW9uZXJyb3IzLWV4cGVjdGVkLnR4dApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi44YzBjNTNlZDA2YjZmYmU5MzQxY2U1ZjY4OGZiYjE2YTgwNDNlOTYyCi0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvd2luZG93LW9uZXJyb3IzLWV4cGVj
dGVkLnR4dApAQCAtMCwwICsxLDUgQEAKK0NPTlNPTEUgTUVTU0FHRTogbGluZSAxNTogUmVmZXJl
bmNlRXJyb3I6IENhbid0IGZpbmQgdmFyaWFibGU6IHVua25vd25PYmplY3QKK1lvdSBzaG91bGQg
c2VlIGEgbWVzc2FnZSBpZiB3aW5kb3cub25lcnJvciBpcyB3b3JraW5nIHByb3Blcmx5IGZvciB0
aGlzIHRlc3QuQnVnIDg1MTkuCisKK0Vycm9yIGNhdWdodCBzdWNjZXNzZnVsbHk6IFJlZmVyZW5j
ZUVycm9yOiBDYW4ndCBmaW5kIHZhcmlhYmxlOiB1bmtub3duT2JqZWN0IEZpbGU6IHdpbmRvdy1v
bmVycm9yMy5odG1sIExpbmU6IDE1CisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZXZl
bnRzL3dpbmRvdy1vbmVycm9yMy5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvd2luZG93
LW9uZXJyb3IzLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMDY5YWFlYTQ4Mzc1ZmMzN2U0ZDUyYTY2OTRlNGY2
ZDZkNGNmZTgwMwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3dp
bmRvdy1vbmVycm9yMy5odG1sCkBAIC0wLDAgKzEsMjIgQEAKKzxzY3JpcHQ+CitpZiAod2luZG93
LmxheW91dFRlc3RDb250cm9sbGVyKQorICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1Rl
eHQoKTsKKworZnVuY3Rpb24gbG9nKG1zZykgeworICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlk
KCJjb25zb2xlIikuaW5uZXJIVE1MICs9IG1zZyArICI8YnI+IjsKK30KKworZnVuY3Rpb24gdGVz
dDEoKQoreworICAgIHdpbmRvdy5vbmVycm9yID0gZnVuY3Rpb24gKGVycm9yLCB1cmwsIGxpbmUp
IHsKKyAgICAgICAgdXJsID0gdXJsID8gdXJsLm1hdGNoKCAvW15cL10rXC8/JC8gKVswXSA6IHVy
bDsKKyAgICAgICAgbG9nKCJFcnJvciBjYXVnaHQgc3VjY2Vzc2Z1bGx5OiAiICsgZXJyb3IgKyAi
XG5GaWxlOiAiICsgdXJsICsgIlxuTGluZTogIiArIGxpbmUpCisgICAgfTsKKyAgICB1bmtub3du
T2JqZWN0LnVua25vd25Qcm9wZXJ0eSsrOworfQorPC9zY3JpcHQ+Cis8Ym9keSBvbmxvYWQ9InRl
c3QxKCk7Ij4KKzxwPllvdSBzaG91bGQgc2VlIGEgbWVzc2FnZSBpZiB3aW5kb3cub25lcnJvciBp
cyB3b3JraW5nIHByb3Blcmx5IGZvciB0aGlzIHRlc3QuPGEgaHJlZj0iaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTg1MTkiPkJ1ZyA4NTE5PC9hPi48L3A+Cis8aHI+Cis8
ZGl2IGlkPSdjb25zb2xlJz48L2Rpdj4KKzwvYm9keT4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2Zhc3QvZXZlbnRzL3dpbmRvdy1vbmVycm9yNC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9m
YXN0L2V2ZW50cy93aW5kb3ctb25lcnJvcjQtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmUzNmJi
MWUzYmFlZTM2ZDMwMTIxOTA1NDdiMWZiMDE1MTc3OGJjZDQKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy9mYXN0L2V2ZW50cy93aW5kb3ctb25lcnJvcjQtZXhwZWN0ZWQudHh0CkBAIC0w
LDAgKzEsNSBAQAorQ09OU09MRSBNRVNTQUdFOiBsaW5lIDE6IFJlZmVyZW5jZUVycm9yOiBMZWZ0
IHNpZGUgb2YgYXNzaWdubWVudCBpcyBub3QgYSByZWZlcmVuY2UuCitZb3Ugc2hvdWxkIHNlZSBh
IGxvZyByZWNvcmQgaWYgd2luZG93Lm9uZXJyb3IgaXMgd29ya2luZyBwcm9wZXJseSBmb3IgdGhp
cyB0ZXN0LkJ1ZyA4NTE5LgorCitFcnJvciBjYXVnaHQgc3VjY2Vzc2Z1bGx5OiBSZWZlcmVuY2VF
cnJvcjogTGVmdCBzaWRlIG9mIGFzc2lnbm1lbnQgaXMgbm90IGEgcmVmZXJlbmNlLiBGaWxlOiB1
bmRlZmluZWQgTGluZTogMQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy93
aW5kb3ctb25lcnJvcjQuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3dpbmRvdy1vbmVy
cm9yNC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLjM4Nzg1MjdlY2Y5ZGVkYTJhMjI3MjMwZjAzNzliOWM1NmM5
ZWYyNTgKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy93aW5kb3ct
b25lcnJvcjQuaHRtbApAQCAtMCwwICsxLDIyIEBACis8c2NyaXB0PgoraWYgKHdpbmRvdy5sYXlv
dXRUZXN0Q29udHJvbGxlcikKKyAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7
CisKK2Z1bmN0aW9uIGxvZyhtc2cpIHsKKyAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY29u
c29sZSIpLmlubmVySFRNTCArPSBtc2cgKyAiPGJyPiI7Cit9CisKK2Z1bmN0aW9uIHRlc3QxKCkK
K3sKKyAgICB3aW5kb3cub25lcnJvciA9IGZ1bmN0aW9uIChlcnJvciwgdXJsLCBsaW5lKSB7Cisg
ICAgICAgIHVybCA9IHVybCA/IHVybC5tYXRjaCggL1teXC9dK1wvPyQvIClbMF0gOiB1cmw7Cisg
ICAgICAgIGxvZygiRXJyb3IgY2F1Z2h0IHN1Y2Nlc3NmdWxseTogIiArIGVycm9yICsgIlxuRmls
ZTogIiArIHVybCArICJcbkxpbmU6ICIgKyBsaW5lKQorICAgIH07CisgICAgZXZhbCgiMT0yIik7
Cit9Cis8L3NjcmlwdD4KKzxib2R5IG9ubG9hZD0idGVzdDEoKTsiPgorPHA+WW91IHNob3VsZCBz
ZWUgYSBsb2cgcmVjb3JkIGlmIHdpbmRvdy5vbmVycm9yIGlzIHdvcmtpbmcgcHJvcGVybHkgZm9y
IHRoaXMgdGVzdC48YSBocmVmPSJodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9ODUxOSI+QnVnIDg1MTk8L2E+LjwvcD4KKzxocj4KKzxkaXYgaWQ9J2NvbnNvbGUnPjwvZGl2
PgorPC9ib2R5PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvd2luZG93LW9u
ZXJyb3I1LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3dpbmRvdy1vbmVy
cm9yNS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uM2U4ZGM2NGFjZGM1MzM4OTA2YTUxMmIwMGZh
ZTJhN2U4MTc5YzE0ZQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRz
L3dpbmRvdy1vbmVycm9yNS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw1IEBACitDT05TT0xFIE1F
U1NBR0U6IGxpbmUgMTogU3ludGF4RXJyb3I6IFBhcnNlIGVycm9yCitUZXN0IHRoYXQgd2luZG93
Lm9uZXJyb3IgaXMgaW52b2tlZCBmb3Igc3ludGF4IGVycm9yIGluIGV2YWwuIFlvdSBzaG91bGQg
c2VlIGEgbG9nIHJlY29yZCBpZiB3aW5kb3cub25lcnJvciBpcyB3b3JraW5nIHByb3Blcmx5IGZv
ciB0aGlzIHRlc3QuQnVnIDg1MTkuCisKK0Vycm9yIGNhdWdodCBzdWNjZXNzZnVsbHk6IFN5bnRh
eEVycm9yOiBQYXJzZSBlcnJvciBGaWxlOiB1bmRlZmluZWQgTGluZTogMQorCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy93aW5kb3ctb25lcnJvcjUuaHRtbCBiL0xheW91dFRl
c3RzL2Zhc3QvZXZlbnRzL3dpbmRvdy1vbmVycm9yNS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmQ0YWQxZDZh
MWRhY2ExM2I5ZWRjNDE3ODMwZTZmZDcyMDNjMjJhYTUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy9mYXN0L2V2ZW50cy93aW5kb3ctb25lcnJvcjUuaHRtbApAQCAtMCwwICsxLDIyIEBA
Cis8c2NyaXB0PgoraWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKKyAgICBsYXlvdXRU
ZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7CisKK2Z1bmN0aW9uIGxvZyhtc2cpIHsKKyAgICBk
b2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY29uc29sZSIpLmlubmVySFRNTCArPSBtc2cgKyAiPGJy
PiI7Cit9CisKK2Z1bmN0aW9uIHRlc3QxKCkKK3sKKyAgICB3aW5kb3cub25lcnJvciA9IGZ1bmN0
aW9uIChlcnJvciwgdXJsLCBsaW5lKSB7CisgICAgICAgIHVybCA9IHVybCA/IHVybC5tYXRjaCgg
L1teXC9dK1wvPyQvIClbMF0gOiB1cmw7CisgICAgICAgIGxvZygiRXJyb3IgY2F1Z2h0IHN1Y2Nl
c3NmdWxseTogIiArIGVycm9yICsgIlxuRmlsZTogIiArIHVybCArICJcbkxpbmU6ICIgKyBsaW5l
KQorICAgIH07CisgICAgZXZhbCgiYSgiKTsKK30KKzwvc2NyaXB0PgorPGJvZHkgb25sb2FkPSJ0
ZXN0MSgpOyI+Cis8cD5UZXN0IHRoYXQgd2luZG93Lm9uZXJyb3IgaXMgaW52b2tlZCBmb3Igc3lu
dGF4IGVycm9yIGluIGV2YWwuIFlvdSBzaG91bGQgc2VlIGEgbG9nIHJlY29yZCBpZiB3aW5kb3cu
b25lcnJvciBpcyB3b3JraW5nIHByb3Blcmx5IGZvciB0aGlzIHRlc3QuPGEgaHJlZj0iaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTg1MTkiPkJ1ZyA4NTE5PC9hPi48L3A+
Cis8aHI+Cis8ZGl2IGlkPSdjb25zb2xlJz48L2Rpdj4KKzwvYm9keT4KZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2Zhc3QvZXZlbnRzL3dpbmRvdy1vbmVycm9yNi1leHBlY3RlZC50eHQgYi9MYXlv
dXRUZXN0cy9mYXN0L2V2ZW50cy93aW5kb3ctb25lcnJvcjYtZXhwZWN0ZWQudHh0Cm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLmYzYTVhMDAxNGM5OTIwMjhlODViYmVlYjU5MWJjMGI4NGJlZjllNGUKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy93aW5kb3ctb25lcnJvcjYtZXhwZWN0ZWQu
dHh0CkBAIC0wLDAgKzEsNSBAQAorQ09OU09MRSBNRVNTQUdFOiBsaW5lIDIxOiBTeW50YXhFcnJv
cjogUGFyc2UgZXJyb3IKK1Rlc3QgdGhhdCBzeW50YXggZXJyb3Igd2lsbCBiZSByZXBvcnRlZCB0
byB0aGUgd2luZG93Lm9uZXJyb3IgaGFuZGxlci4gQnVnIDg1MTkuCisKK01haW4gZnJhbWUgd2lu
ZG93Lm9uZXJyb3I6IFN5bnRheEVycm9yOiBQYXJzZSBlcnJvciBhdCB3aW5kb3ctb25lcnJvcjYu
aHRtbDoyMQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy93aW5kb3ctb25l
cnJvcjYuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3dpbmRvdy1vbmVycm9yNi5odG1s
Cm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLjdkMDlmN2E4NWU5OWZlMzMyZWQyNmM1ZGI2MTMxODZlMGFjMjQxMWUKLS0t
IC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy93aW5kb3ctb25lcnJvcjYu
aHRtbApAQCAtMCwwICsxLDI1IEBACis8aHRtbD4KKzxib2R5PgorPHA+VGVzdCB0aGF0IHN5bnRh
eCBlcnJvciB3aWxsIGJlIHJlcG9ydGVkIHRvIHRoZSB3aW5kb3cub25lcnJvciBoYW5kbGVyLiA8
YSBocmVmPSJodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODUxOSI+QnVn
IDg1MTk8L2E+LjwvcD4KKzxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgorPHNjcmlwdD4KK2lmICh3
aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCisgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVt
cEFzVGV4dCgpOworCitmdW5jdGlvbiBsb2cobXNnKSB7CisgICAgZG9jdW1lbnQuZ2V0RWxlbWVu
dEJ5SWQoImNvbnNvbGUiKS5pbm5lckhUTUwgKz0gbXNnICsgIjxicj4iOworfQorCit3aW5kb3cu
b25lcnJvciA9IGZ1bmN0aW9uKG1zZywgdXJsLCBsaW5lKQoreworICAgIHVybCA9IHVybCA/IHVy
bC5tYXRjaCggL1teXC9dK1wvPyQvIClbMF0gOiB1cmw7CisgICAgbG9nKCJNYWluIGZyYW1lIHdp
bmRvdy5vbmVycm9yOiAiICsgbXNnICsgIiBhdCAiICsgdXJsICsgIjoiICsgbGluZSk7Cit9Cis8
L3NjcmlwdD4KKzxzY3JpcHQ+CisKK2EpIC8vIHN5bnRheCBlcnJvcgorCis8L3NjcmlwdD4KKzwv
Ym9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3dpbmRv
dy1vbmVycm9yNy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy93aW5kb3ct
b25lcnJvcjctZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjZjZTVkMjY2OThmYjQyMDU1NjBkNjNh
YzY0MDdmOTk3ZjEyMTg3OGYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2V2
ZW50cy93aW5kb3ctb25lcnJvcjctZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNiBAQAorQ09OU09M
RSBNRVNTQUdFOiBsaW5lIDA6IE5lc3RlZCBlcnJvcgorQ09OU09MRSBNRVNTQUdFOiBsaW5lIDA6
IDIwMTAKK1Rlc3QgdGhhdCBleGNlcHRpb24gaW4gd2luZG93Lm9uZXJyb3Igd29uJ3QgbGVhZCB0
byByZWN1cnNpdmUgd2luZG93Lm9uZXJyb3IgY2FsbC4gQnVnIDg1MTkuCisKK01haW4gZnJhbWUg
d2luZG93Lm9uZXJyb3I6IDIwMTAgYXQgdW5kZWZpbmVkOjAKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvZmFzdC9ldmVudHMvd2luZG93LW9uZXJyb3I3Lmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0
L2V2ZW50cy93aW5kb3ctb25lcnJvcjcuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zMDA0YjMzZTE1MjJlNWIx
N2YyMjEyNTM5MTg1OGI5ZTRmMjMwYzI0Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMv
ZmFzdC9ldmVudHMvd2luZG93LW9uZXJyb3I3Lmh0bWwKQEAgLTAsMCArMSwyNCBAQAorPGh0bWw+
Cis8Ym9keT4KKzxwPlRlc3QgdGhhdCBleGNlcHRpb24gaW4gd2luZG93Lm9uZXJyb3Igd29uJ3Qg
bGVhZCB0byByZWN1cnNpdmUgd2luZG93Lm9uZXJyb3IgY2FsbC4gPGEgaHJlZj0iaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTg1MTkiPkJ1ZyA4NTE5PC9hPi48L3A+Cis8
ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KKzxzY3JpcHQ+CitpZiAod2luZG93LmxheW91dFRlc3RD
b250cm9sbGVyKQorICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKKworZnVu
Y3Rpb24gbG9nKG1zZykgeworICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjb25zb2xlIiku
aW5uZXJIVE1MICs9IG1zZyArICI8YnI+IjsKK30KKword2luZG93Lm9uZXJyb3IgPSBmdW5jdGlv
bihtc2csIHVybCwgbGluZSkKK3sKKyAgICB1cmwgPSB1cmwgPyB1cmwubWF0Y2goIC9bXlwvXStc
Lz8kLyApWzBdIDogdXJsOworICAgIGxvZygiTWFpbiBmcmFtZSB3aW5kb3cub25lcnJvcjogIiAr
IG1zZyArICIgYXQgIiArIHVybCArICI6IiArIGxpbmUpOworICAgIHRocm93ICJOZXN0ZWQgZXJy
b3IiOworfQorCit0aHJvdyAyMDEwOworCis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3dpbmRvdy1vbmVycm9yOC1leHBlY3Rl
ZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy93aW5kb3ctb25lcnJvcjgtZXhwZWN0ZWQu
dHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLmIxNmY2MjFmZWZlZDdiMTYyZjgxMzA4YjRmNDhiZjBjMTcwZWViOWUK
LS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy93aW5kb3ctb25lcnJv
cjgtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNiBAQAorQ09OU09MRSBNRVNTQUdFOiBsaW5lIDA6
IDIwMTAKK1Rlc3QgdGhhdCB3aW5kb3cub25lcnJvciBpcyBjYWxsZWQgb24gd2luZG93IG9iamVj
dC4gQnVnIDg1MTkuCisKK01haW4gZnJhbWUgd2luZG93Lm9uZXJyb3I6IDIwMTAgYXQgdW5kZWZp
bmVkOjAKK1BBU1NFRDogdGhpcyA9PT0gd2luZG93CisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2Zhc3QvZXZlbnRzL3dpbmRvdy1vbmVycm9yOC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVu
dHMvd2luZG93LW9uZXJyb3I4Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNjE2OGM0ZmE2OTA2NDQ1MmIyMzg1
YmIyNzVjNWY5MGUxMzZhZDhiMgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3Qv
ZXZlbnRzL3dpbmRvdy1vbmVycm9yOC5odG1sCkBAIC0wLDAgKzEsMjcgQEAKKzxodG1sPgorPGJv
ZHk+Cis8cD5UZXN0IHRoYXQgd2luZG93Lm9uZXJyb3IgaXMgY2FsbGVkIG9uIHdpbmRvdyBvYmpl
Y3QuIDxhIGhyZWY9Imh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04NTE5
Ij5CdWcgODUxOTwvYT4uPC9wPgorPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+Cis8c2NyaXB0Pgor
aWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKKyAgICBsYXlvdXRUZXN0Q29udHJvbGxl
ci5kdW1wQXNUZXh0KCk7CisKK2Z1bmN0aW9uIGxvZyhtc2cpIHsKKyAgICBkb2N1bWVudC5nZXRF
bGVtZW50QnlJZCgiY29uc29sZSIpLmlubmVySFRNTCArPSBtc2cgKyAiPGJyPiI7Cit9CisKK3dp
bmRvdy5vbmVycm9yID0gZnVuY3Rpb24obXNnLCB1cmwsIGxpbmUpCit7CisgICAgdXJsID0gdXJs
ID8gdXJsLm1hdGNoKCAvW15cL10rXC8/JC8gKVswXSA6IHVybDsKKyAgICBsb2coIk1haW4gZnJh
bWUgd2luZG93Lm9uZXJyb3I6ICIgKyBtc2cgKyAiIGF0ICIgKyB1cmwgKyAiOiIgKyBsaW5lKTsK
KyAgICBpZiAodGhpcyA9PT0gd2luZG93KSAKKyAgICAgICAgbG9nKCJQQVNTRUQ6IHRoaXMgPT09
IHdpbmRvdyIpOworICAgIGVsc2UKKyAgICAgICAgbG9nKCJGQUlMRUQ6IHRoaXMgPT09IHdpbmRv
dyIpOworfQorCit0aHJvdyAyMDEwOworCis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvcmVzb3VyY2VzL29uZXJy
b3ItaWZyYW1lLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L3Jlc291cmNl
cy9vbmVycm9yLWlmcmFtZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjMxMmZkMTJkM2FkODEwMmE1ZmUxYjUx
NzAzZWMzY2IwMDFhNzRmYzgKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL3NlY3VyaXR5L3Jlc291cmNlcy9vbmVycm9yLWlmcmFtZS5odG1sCkBAIC0wLDAgKzEsMTEg
QEAKKzxzY3JpcHQ+CitmdW5jdGlvbiBoYW5kbGVMb2FkKCkKK3sKKyAgICB3aW5kb3cucGFyZW50
LnBvc3RNZXNzYWdlKCJJRnJhbWVMb2FkZWQiLCAiKiIpOworfQorCit0aHJvdyAiSWZyYW1lRXhj
ZXB0aW9uIjsKKworPC9zY3JpcHQ+Cis8Ym9keSBvbmxvYWQ9ImhhbmRsZUxvYWQoKSI+Cis8L2Jv
ZHk+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L3dpbmRvdy1v
bmVycm9yLWV4Y2VwdGlvbi1pbi1pZnJhbWUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy9zZWN1cml0eS93aW5kb3ctb25lcnJvci1leGNlcHRpb24taW4taWZyYW1lLWV4cGVj
dGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi5kODgzYTQwZGQzMDBiNTViYmY1OWZlMjQ1ZGNlMDdlMDZkMDIz
MDMwCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS93
aW5kb3ctb25lcnJvci1leGNlcHRpb24taW4taWZyYW1lLWV4cGVjdGVkLnR4dApAQCAtMCwwICsx
LDcgQEAKK0NPTlNPTEUgTUVTU0FHRTogbGluZSAwOiBNYWluRnJhbWVFeGNlcHRpb24KK0NPTlNP
TEUgTUVTU0FHRTogbGluZSAwOiBJZnJhbWVFeGNlcHRpb24KK1Rlc3QgdGhhdCBleGNlcHRpb25z
IGluIGlmcmFtZSBhcmUgbm90IHJlcG9ydGVkIHRvIHRoZSBtYWluIGZyYW1lIHdpbmRvdy5vbmVy
cm9yIGhhbmRsZXIuIHdpbmRvdy5vbmVycm9yIHNob3VsZCBwcmludCBleGFjdGx5IG9uZSBsaW5l
LgorCitNYWluIGZyYW1lIHdpbmRvdy5vbmVycm9yOiBNYWluRnJhbWVFeGNlcHRpb24gYXQgdW5k
ZWZpbmVkOjAKK0RPTkUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1
cml0eS93aW5kb3ctb25lcnJvci1leGNlcHRpb24taW4taWZyYW1lLmh0bWwgYi9MYXlvdXRUZXN0
cy9odHRwL3Rlc3RzL3NlY3VyaXR5L3dpbmRvdy1vbmVycm9yLWV4Y2VwdGlvbi1pbi1pZnJhbWUu
aHRtbApuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi41YmVjYTUwYTRmOWE0NDU4MWI1OWY3NDRlMDM1ODM0ZGE5YWUwMTk2
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS93aW5k
b3ctb25lcnJvci1leGNlcHRpb24taW4taWZyYW1lLmh0bWwKQEAgLTAsMCArMSwzOCBAQAorPGh0
bWw+Cis8Ym9keT4KKzxwPlRlc3QgdGhhdCBleGNlcHRpb25zIGluIGlmcmFtZSBhcmUgbm90IHJl
cG9ydGVkIHRvIHRoZSBtYWluIGZyYW1lIHdpbmRvdy5vbmVycm9yIGhhbmRsZXIuCit3aW5kb3cu
b25lcnJvciBzaG91bGQgcHJpbnQgZXhhY3RseSBvbmUgbGluZS48L3A+Cis8ZGl2IGlkPSJyZXN1
bHQiPjwvZGl2PgorPHNjcmlwdD4KK2lmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpIHsK
KyAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7CisgICAgbGF5b3V0VGVzdENv
bnRyb2xsZXIud2FpdFVudGlsRG9uZSgpOworfQorCitmdW5jdGlvbiBsb2cobXNnKSB7CisgICAg
ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInJlc3VsdCIpLmlubmVySFRNTCArPSBtc2cgKyAiPGJy
PiI7Cit9CisKK3dpbmRvdy5vbmVycm9yID0gZnVuY3Rpb24obXNnLCB1cmwsIGxpbmUpCit7Cisg
ICAgdXJsID0gdXJsID8gdXJsLm1hdGNoKCAvW15cL10rXC8/JC8gKVswXSA6IHVybDsKKyAgICBs
b2coIk1haW4gZnJhbWUgd2luZG93Lm9uZXJyb3I6ICIgKyBtc2cgKyAiIGF0ICIgKyB1cmwgKyAi
OiIgKyBsaW5lKTsKK30KKworZnVuY3Rpb24gcmVjZWl2ZU1lc3NhZ2UoZXZlbnQpIHsKKyAgICBp
ZiAoZXZlbnQuZGF0YSA9PT0gIklGcmFtZUxvYWRlZCIpIHsKKyAgICAgICAgbG9nKCJET05FIik7
CisgICAgICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCisgICAgICAgICAgICBs
YXlvdXRUZXN0Q29udHJvbGxlci5ub3RpZnlEb25lKCk7CisgICAgfSBlbHNlCisgICAgICAgIGxv
ZygiRkFJTCAiICsgZXZlbnQuZGF0YSk7Cit9CisKK3dpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJt
ZXNzYWdlIiwgcmVjZWl2ZU1lc3NhZ2UsIGZhbHNlKTsKKwordGhyb3cgIk1haW5GcmFtZUV4Y2Vw
dGlvbiI7CisKKzwvc2NyaXB0PgorPGlmcmFtZSBzcmM9Imh0dHA6Ly9sb2NhbGhvc3Q6ODAwMC9z
ZWN1cml0eS9yZXNvdXJjZXMvb25lcnJvci1pZnJhbWUuaHRtbCIvPgorPC9ib2R5PgorPC9odG1s
PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vZmFzdC9ldmVudHMv
d2luZG93LW9uZXJyb3IxLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9t
aXVtL2Zhc3QvZXZlbnRzL3dpbmRvdy1vbmVycm9yMS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9k
ZSAxMDA3NTUKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
ZjQzYTNhZjE3NGJmNzVmYmNiYjAwODE0NDViNmMyNTkyZWVkYWI1NAotLS0gL2Rldi9udWxsCisr
KyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL2Zhc3QvZXZlbnRzL3dpbmRvdy1vbmVy
cm9yMS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw0IEBACitDT05TT0xFIE1FU1NBR0U6IGxpbmUg
MjU6IFVuY2F1Z2h0IFJlZmVyZW5jZUVycm9yOiBoYWhhaGFfZ29vZF9sdWNrX2ZpbmRpbmdfbWUg
aXMgbm90IGRlZmluZWQNCitUaGlzIHBhZ2UgdGVzdHMgc2V0dGluZyBvbmVycm9yIGhhbmRsZXJz
IHRocm91Z2ggdGhlIERPTS4gSWYgaXQgcGFzc2VzLCB5b3Ugd2lsbCBzZWUgIlBBU1MiIG1lc3Nh
Z2VzIGJlbG93LkJ1ZyA4NTE5Lg0KKw0KK1BBU1M6IGNhdWdodCBnbG9iYWwgZXJyb3I6IFVuY2F1
Z2h0IFJlZmVyZW5jZUVycm9yOiBoYWhhaGFfZ29vZF9sdWNrX2ZpbmRpbmdfbWUgaXMgbm90IGRl
ZmluZWQgYXQgd2luZG93LW9uZXJyb3IxLmh0bWw6MjUNCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9wbGF0Zm9ybS9jaHJvbWl1bS9mYXN0L2V2ZW50cy93aW5kb3ctb25lcnJvcjItZXhwZWN0ZWQu
dHh0IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vZmFzdC9ldmVudHMvd2luZG93LW9u
ZXJyb3IyLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5lMjllNjZhMTY2ZjkzYTc5MGM4NGQyYWVm
MjMyYzg1YzU3ZjI1MDBhCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0v
Y2hyb21pdW0vZmFzdC9ldmVudHMvd2luZG93LW9uZXJyb3IyLWV4cGVjdGVkLnR4dApAQCAtMCww
ICsxLDkgQEAKK0NPTlNPTEUgTUVTU0FHRTogbGluZSAzNDogVW5jYXVnaHQgSW5saW5lIHNjcmlw
dCBleGNlcHRpb24NCitDT05TT0xFIE1FU1NBR0U6IGxpbmUgMjogVW5jYXVnaHQgRXhjZXB0aW9u
IGluIG9ubG9hZA0KK0NPTlNPTEUgTUVTU0FHRTogbGluZSAyMzogVW5jYXVnaHQgRXhjZXB0aW9u
IGluIHNldFRpbWVvdXQNCitUZXN0IHRoYXQgdW5jYXVnaHQgZXhjZXB0aW9ucyB3aWxsIGJlIHJl
cG9ydGVkIHRvIHRoZSB3aW5kb3cub25lcnJvciBoYW5kbGVyLiBCdWcgODUxOS4NCisNCitNYWlu
IGZyYW1lIHdpbmRvdy5vbmVycm9yOiBVbmNhdWdodCBJbmxpbmUgc2NyaXB0IGV4Y2VwdGlvbiBh
dCB3aW5kb3ctb25lcnJvcjIuaHRtbDozNA0KK01haW4gZnJhbWUgd2luZG93Lm9uZXJyb3I6IFVu
Y2F1Z2h0IEV4Y2VwdGlvbiBpbiBvbmxvYWQgYXQgd2luZG93LW9uZXJyb3IyLmh0bWw6Mg0KK01h
aW4gZnJhbWUgd2luZG93Lm9uZXJyb3I6IFVuY2F1Z2h0IEV4Y2VwdGlvbiBpbiBzZXRUaW1lb3V0
IGF0IHdpbmRvdy1vbmVycm9yMi5odG1sOjIzDQorDQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
cGxhdGZvcm0vY2hyb21pdW0vZmFzdC9ldmVudHMvd2luZG93LW9uZXJyb3IzLWV4cGVjdGVkLnR4
dCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL2Zhc3QvZXZlbnRzL3dpbmRvdy1vbmVy
cm9yMy1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uODIzNzNhYmVmOTRhNzc2NjczMjZmN2E2NWRm
MGRiOGQxOTUzMjQzMgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2No
cm9taXVtL2Zhc3QvZXZlbnRzL3dpbmRvdy1vbmVycm9yMy1leHBlY3RlZC50eHQKQEAgLTAsMCAr
MSw1IEBACitDT05TT0xFIE1FU1NBR0U6IGxpbmUgMTU6IFVuY2F1Z2h0IFJlZmVyZW5jZUVycm9y
OiB1bmtub3duT2JqZWN0IGlzIG5vdCBkZWZpbmVkDQorWW91IHNob3VsZCBzZWUgYSBtZXNzYWdl
IGlmIHdpbmRvdy5vbmVycm9yIGlzIHdvcmtpbmcgcHJvcGVybHkgZm9yIHRoaXMgdGVzdC5CdWcg
ODUxOS4NCisNCitFcnJvciBjYXVnaHQgc3VjY2Vzc2Z1bGx5OiBVbmNhdWdodCBSZWZlcmVuY2VF
cnJvcjogdW5rbm93bk9iamVjdCBpcyBub3QgZGVmaW5lZCBGaWxlOiB3aW5kb3ctb25lcnJvcjMu
aHRtbCBMaW5lOiAxNQ0KKw0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9t
aXVtL2Zhc3QvZXZlbnRzL3dpbmRvdy1vbmVycm9yNC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0
cy9wbGF0Zm9ybS9jaHJvbWl1bS9mYXN0L2V2ZW50cy93aW5kb3ctb25lcnJvcjQtZXhwZWN0ZWQu
dHh0Cm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjA0M2ViYTMyNzA2OWY0OTgyY2EzZTA5NWNjYWY5NTY3YmViZDRlZjIK
LS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS9mYXN0L2V2
ZW50cy93aW5kb3ctb25lcnJvcjQtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNSBAQAorQ09OU09M
RSBNRVNTQUdFOiBsaW5lIDE6IFVuY2F1Z2h0IFJlZmVyZW5jZUVycm9yOiBJbnZhbGlkIGxlZnQt
aGFuZCBzaWRlIGluIGFzc2lnbm1lbnQNCitZb3Ugc2hvdWxkIHNlZSBhIGxvZyByZWNvcmQgaWYg
d2luZG93Lm9uZXJyb3IgaXMgd29ya2luZyBwcm9wZXJseSBmb3IgdGhpcyB0ZXN0LkJ1ZyA4NTE5
Lg0KKw0KK0Vycm9yIGNhdWdodCBzdWNjZXNzZnVsbHk6IFVuY2F1Z2h0IFJlZmVyZW5jZUVycm9y
OiBJbnZhbGlkIGxlZnQtaGFuZCBzaWRlIGluIGFzc2lnbm1lbnQgRmlsZTogd2luZG93LW9uZXJy
b3I0Lmh0bWwgTGluZTogMQ0KKw0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2No
cm9taXVtL2Zhc3QvZXZlbnRzL3dpbmRvdy1vbmVycm9yNS1leHBlY3RlZC50eHQgYi9MYXlvdXRU
ZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS9mYXN0L2V2ZW50cy93aW5kb3ctb25lcnJvcjUtZXhwZWN0
ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLmQyZjZhZDUzZjMyNGM4YjA2YjE4NjNjYWVkNDdmYWE0NWI0MzRk
MWQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS9mYXN0
L2V2ZW50cy93aW5kb3ctb25lcnJvcjUtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNSBAQAorQ09O
U09MRSBNRVNTQUdFOiBsaW5lIDE6IFVuY2F1Z2h0IFN5bnRheEVycm9yOiBVbmV4cGVjdGVkIGVu
ZCBvZiBpbnB1dA0KK1Rlc3QgdGhhdCB3aW5kb3cub25lcnJvciBpcyBpbnZva2VkIGZvciBzeW50
YXggZXJyb3IgaW4gZXZhbC4gWW91IHNob3VsZCBzZWUgYSBsb2cgcmVjb3JkIGlmIHdpbmRvdy5v
bmVycm9yIGlzIHdvcmtpbmcgcHJvcGVybHkgZm9yIHRoaXMgdGVzdC5CdWcgODUxOS4NCisNCitF
cnJvciBjYXVnaHQgc3VjY2Vzc2Z1bGx5OiBVbmNhdWdodCBTeW50YXhFcnJvcjogVW5leHBlY3Rl
ZCBlbmQgb2YgaW5wdXQgRmlsZTogd2luZG93LW9uZXJyb3I1Lmh0bWwgTGluZTogMQ0KKw0KZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL2Zhc3QvZXZlbnRzL3dpbmRv
dy1vbmVycm9yNi1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS9m
YXN0L2V2ZW50cy93aW5kb3ctb25lcnJvcjYtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAw
NzU1CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjlhODEw
YWVhNzEzNGExNzEwYzE3NmQ4NTIyM2ZhOTE4YWViNWU1MTcKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS9mYXN0L2V2ZW50cy93aW5kb3ctb25lcnJvcjYt
ZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNSBAQAorQ09OU09MRSBNRVNTQUdFOiBsaW5lIDIxOiBV
bmNhdWdodCBTeW50YXhFcnJvcjogVW5leHBlY3RlZCB0b2tlbiApDQorVGVzdCB0aGF0IHN5bnRh
eCBlcnJvciB3aWxsIGJlIHJlcG9ydGVkIHRvIHRoZSB3aW5kb3cub25lcnJvciBoYW5kbGVyLiBC
dWcgODUxOS4NCisNCitNYWluIGZyYW1lIHdpbmRvdy5vbmVycm9yOiBVbmNhdWdodCBTeW50YXhF
cnJvcjogVW5leHBlY3RlZCB0b2tlbiApIGF0IHdpbmRvdy1vbmVycm9yNi5odG1sOjIxDQorDQpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vZmFzdC9ldmVudHMvd2lu
ZG93LW9uZXJyb3I3LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVt
L2Zhc3QvZXZlbnRzL3dpbmRvdy1vbmVycm9yNy1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAx
MDA3NTUKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMDVl
ZmM1ZjhkYjMxNTE1ZjU2MTg0NmFkZmRiZTUyYjJkZDVmYmFhMAotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL2Zhc3QvZXZlbnRzL3dpbmRvdy1vbmVycm9y
Ny1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw2IEBACitDT05TT0xFIE1FU1NBR0U6IGxpbmUgMTc6
IFVuY2F1Z2h0IE5lc3RlZCBlcnJvcg0KK0NPTlNPTEUgTUVTU0FHRTogbGluZSAyMDogVW5jYXVn
aHQgMjAxMA0KK1Rlc3QgdGhhdCBleGNlcHRpb24gaW4gd2luZG93Lm9uZXJyb3Igd29uJ3QgbGVh
ZCB0byByZWN1cnNpdmUgd2luZG93Lm9uZXJyb3IgY2FsbC4gQnVnIDg1MTkuDQorDQorTWFpbiBm
cmFtZSB3aW5kb3cub25lcnJvcjogVW5jYXVnaHQgMjAxMCBhdCB3aW5kb3ctb25lcnJvcjcuaHRt
bDoyMA0KKw0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL2Zhc3Qv
ZXZlbnRzL3dpbmRvdy1vbmVycm9yOC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9y
bS9jaHJvbWl1bS9mYXN0L2V2ZW50cy93aW5kb3ctb25lcnJvcjgtZXhwZWN0ZWQudHh0Cm5ldyBm
aWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLmU4YTc1N2ZhMGE3YThkMjY4NDgxOGEyZWE2OWY2NzNiZDQ5MThjMjUKLS0tIC9kZXYv
bnVsbAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS9mYXN0L2V2ZW50cy93aW5k
b3ctb25lcnJvcjgtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNiBAQAorQ09OU09MRSBNRVNTQUdF
OiBsaW5lIDIzOiBVbmNhdWdodCAyMDEwDQorVGVzdCB0aGF0IHdpbmRvdy5vbmVycm9yIGlzIGNh
bGxlZCBvbiB3aW5kb3cgb2JqZWN0LiBCdWcgODUxOS4NCisNCitNYWluIGZyYW1lIHdpbmRvdy5v
bmVycm9yOiBVbmNhdWdodCAyMDEwIGF0IHdpbmRvdy1vbmVycm9yOC5odG1sOjIzDQorUEFTU0VE
OiB0aGlzID09PSB3aW5kb3cNCisNCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9j
aHJvbWl1bS9odHRwL3Rlc3RzL3NlY3VyaXR5L3dpbmRvdy1vbmVycm9yLWV4Y2VwdGlvbi1pbi1p
ZnJhbWUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vaHR0cC90
ZXN0cy9zZWN1cml0eS93aW5kb3ctb25lcnJvci1leGNlcHRpb24taW4taWZyYW1lLWV4cGVjdGVk
LnR4dApuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi43ZDkwNzRhMDFhYjQ1YTU2ZjdlM2I3YzVjYzMzNGI5ZTNmMTdjYWVk
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vaHR0cC90
ZXN0cy9zZWN1cml0eS93aW5kb3ctb25lcnJvci1leGNlcHRpb24taW4taWZyYW1lLWV4cGVjdGVk
LnR4dApAQCAtMCwwICsxLDcgQEAKK0NPTlNPTEUgTUVTU0FHRTogbGluZSAzMzogVW5jYXVnaHQg
TWFpbkZyYW1lRXhjZXB0aW9uDQorQ09OU09MRSBNRVNTQUdFOiBsaW5lIDc6IFVuY2F1Z2h0IElm
cmFtZUV4Y2VwdGlvbg0KK1Rlc3QgdGhhdCBleGNlcHRpb25zIGluIGlmcmFtZSBhcmUgbm90IHJl
cG9ydGVkIHRvIHRoZSBtYWluIGZyYW1lIHdpbmRvdy5vbmVycm9yIGhhbmRsZXIuIHdpbmRvdy5v
bmVycm9yIHNob3VsZCBwcmludCBleGFjdGx5IG9uZSBsaW5lLg0KKw0KK01haW4gZnJhbWUgd2lu
ZG93Lm9uZXJyb3I6IFVuY2F1Z2h0IE1haW5GcmFtZUV4Y2VwdGlvbiBhdCB3aW5kb3ctb25lcnJv
ci1leGNlcHRpb24taW4taWZyYW1lLmh0bWw6MzMNCitET05FDQorDQpkaWZmIC0tZ2l0IGEvV2Vi
Q29yZS9BbmRyb2lkLmpzY2JpbmRpbmdzLm1rIGIvV2ViQ29yZS9BbmRyb2lkLmpzY2JpbmRpbmdz
Lm1rCmluZGV4IGUwN2VkMWU0ZmU1ODA4ZTAyN2E3MWI4ZTc2YzRkNDUwMzFjOTRhMTYuLjc0OWJh
MTQxZmYwY2ZlNTM5N2U2YzMyMmFhMGEwZDY0Yjc3ODFhYzkgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUv
QW5kcm9pZC5qc2NiaW5kaW5ncy5taworKysgYi9XZWJDb3JlL0FuZHJvaWQuanNjYmluZGluZ3Mu
bWsKQEAgLTk1LDYgKzk1LDcgQEAgTE9DQUxfU1JDX0ZJTEVTICs9IFwKIAliaW5kaW5ncy9qcy9K
U0RldmljZU9yaWVudGF0aW9uRXZlbnRDdXN0b20uY3BwIFwKIAliaW5kaW5ncy9qcy9KU0RvY3Vt
ZW50Q3VzdG9tLmNwcCBcCiAJYmluZGluZ3MvanMvSlNFbGVtZW50Q3VzdG9tLmNwcCBcCisJYmlu
ZGluZ3MvanMvSlNFcnJvckhhbmRsZXIuY3BwIFwKIAliaW5kaW5ncy9qcy9KU0V2ZW50Q3VzdG9t
LmNwcCBcCiAJYmluZGluZ3MvanMvSlNFdmVudExpc3RlbmVyLmNwcCBcCiAJYmluZGluZ3MvanMv
SlNFdmVudFRhcmdldC5jcHAgXApAQCAtMTU1LDcgKzE1Niw2IEBAIExPQ0FMX1NSQ19GSUxFUyAr
PSBcCiAJYmluZGluZ3MvanMvSlNXZWJLaXRQb2ludEN1c3RvbS5jcHAgXAogCWJpbmRpbmdzL2pz
L0pTV29ya2VyQ29udGV4dEJhc2UuY3BwIFwKIAliaW5kaW5ncy9qcy9KU1dvcmtlckNvbnRleHRD
dXN0b20uY3BwIFwKLQliaW5kaW5ncy9qcy9KU1dvcmtlckNvbnRleHRFcnJvckhhbmRsZXIuY3Bw
IFwKIAliaW5kaW5ncy9qcy9KU1dvcmtlckN1c3RvbS5jcHAgXAogCWJpbmRpbmdzL2pzL0pTWE1M
SHR0cFJlcXVlc3RDdXN0b20uY3BwIFwKIAliaW5kaW5ncy9qcy9KU1hNTEh0dHBSZXF1ZXN0VXBs
b2FkQ3VzdG9tLmNwcCBcCmRpZmYgLS1naXQgYS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0IGIvV2Vi
Q29yZS9DTWFrZUxpc3RzLnR4dAppbmRleCBlYjQyYzVjYWJlZjYxODgyYWRmZDIyZWIxZTA0OTU2
NjlkY2EyYjJmLi5jMWJkOTc3OGY0OTE1YWRhNTMxODA3ZmIzYTczMGRjNjFiYTk0NjA3IDEwMDY0
NAotLS0gYS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CisrKyBiL1dlYkNvcmUvQ01ha2VMaXN0cy50
eHQKQEAgLTYxOSw2ICs2MTksNyBAQCBTRVQoV2ViQ29yZV9TT1VSQ0VTCiAgICAgYmluZGluZ3Mv
anMvSlNET01XaW5kb3dTaGVsbC5jcHAKICAgICBiaW5kaW5ncy9qcy9KU0RPTVdyYXBwZXIuY3Bw
CiAgICAgYmluZGluZ3MvanMvSlNFbGVtZW50Q3VzdG9tLmNwcAorICAgIGJpbmRpbmdzL2pzL0pT
RXJyb3JIYW5kbGVyLmNwcAogICAgIGJpbmRpbmdzL2pzL0pTRXZlbnRDdXN0b20uY3BwCiAgICAg
YmluZGluZ3MvanMvSlNFdmVudExpc3RlbmVyLmNwcAogICAgIGJpbmRpbmdzL2pzL0pTRXZlbnRT
b3VyY2VDdXN0b20uY3BwCkBAIC02ODEsNyArNjgyLDYgQEAgU0VUKFdlYkNvcmVfU09VUkNFUwog
ICAgIGJpbmRpbmdzL2pzL0pTV2ViS2l0UG9pbnRDdXN0b20uY3BwCiAgICAgYmluZGluZ3MvanMv
SlNXb3JrZXJDb250ZXh0QmFzZS5jcHAKICAgICBiaW5kaW5ncy9qcy9KU1dvcmtlckNvbnRleHRD
dXN0b20uY3BwCi0gICAgYmluZGluZ3MvanMvSlNXb3JrZXJDb250ZXh0RXJyb3JIYW5kbGVyLmNw
cAogICAgIGJpbmRpbmdzL2pzL0pTV29ya2VyQ3VzdG9tLmNwcAogICAgIGJpbmRpbmdzL2pzL0pT
WE1MSHR0cFJlcXVlc3RDdXN0b20uY3BwCiAgICAgYmluZGluZ3MvanMvSlNYTUxIdHRwUmVxdWVz
dFVwbG9hZEN1c3RvbS5jcHAKZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29y
ZS9DaGFuZ2VMb2cKaW5kZXggZTNlYzM5ZGUxMWFiOTc2OGUyMjgyOWE5MjY5M2ZiM2Y4ZmM3OWI0
OC4uYWNkZjMzMzNiNTI5ZTU3YmI4MDhhZDMzNzc1ZTA4MTg0N2JlZmU1NSAxMDA2NDQKLS0tIGEv
V2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSw2OCBA
QAorMjAxMC0wOC0yMyAgWXVyeSBTZW1pa2hhdHNreSAgPHl1cnlzQGNocm9taXVtLm9yZz4KKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBXZWJDb3JlIGRv
ZXNuJ3QgZmlyZSB3aW5kb3cub25lcnJvciBldmVudCB3aGVuIHVuY2F1Z2h0IEphdmFTY3JpcHQg
ZXhjZXB0aW9ucyBhcmUgdGhyb3duCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD04NTE5CisKKyAgICAgICAgVW5jYXVnaHQgZXhjZXB0aW9ucyBhcmUgcHJv
cGFnYXRlZCB0byB3aW5kb3cub25lcnJvciBoYW5kZXIgaWYgb25lIGlzIHByZXNlbnQuCisgICAg
ICAgIFRoZSBoYW5kbGVyIGlzIGV4cGVjdGVkIHRvIGJlIGEgZnVuY3Rpb24gYWNjZXB0aW5nIHRo
cmVlIGFyZ3VtZW50czogZXJyb3IgbWVzc2FnZSwKKyAgICAgICAgcmVzb3VyY2UgdXJsIGFuZCBs
aW5lIG51bWJlciB3aGVyZSB0aGUgZXhjZXB0aW9uIG9jY3VyZWQuCisKKyAgICAgICAgVGVzdHM6
IGZhc3QvZXZlbnRzL3dpbmRvdy1vbmVycm9yMS5odG1sCisgICAgICAgICAgICAgICBmYXN0L2V2
ZW50cy93aW5kb3ctb25lcnJvcjIuaHRtbAorICAgICAgICAgICAgICAgZmFzdC9ldmVudHMvd2lu
ZG93LW9uZXJyb3IzLmh0bWwKKyAgICAgICAgICAgICAgIGZhc3QvZXZlbnRzL3dpbmRvdy1vbmVy
cm9yNC5odG1sCisgICAgICAgICAgICAgICBmYXN0L2V2ZW50cy93aW5kb3ctb25lcnJvcjUuaHRt
bAorICAgICAgICAgICAgICAgZmFzdC9ldmVudHMvd2luZG93LW9uZXJyb3I2Lmh0bWwKKyAgICAg
ICAgICAgICAgIGZhc3QvZXZlbnRzL3dpbmRvdy1vbmVycm9yNy5odG1sCisgICAgICAgICAgICAg
ICBmYXN0L2V2ZW50cy93aW5kb3ctb25lcnJvcjguaHRtbAorICAgICAgICAgICAgICAgaHR0cC90
ZXN0cy9zZWN1cml0eS93aW5kb3ctb25lcnJvci1leGNlcHRpb24taW4taWZyYW1lLmh0bWwKKwor
ICAgICAgICAqIEFuZHJvaWQuanNjYmluZGluZ3MubWs6CisgICAgICAgICogQ01ha2VMaXN0cy50
eHQ6CisgICAgICAgICogR05VbWFrZWZpbGUuYW06CisgICAgICAgICogV2ViQ29yZS5neXBpOgor
ICAgICAgICAqIFdlYkNvcmUub3JkZXI6CisgICAgICAgICogV2ViQ29yZS5wcm86CisgICAgICAg
ICogV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2o6CisgICAgICAgICogV2ViQ29yZS54Y29k
ZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pTQmluZGluZ3NB
bGxJbk9uZS5jcHA6CisgICAgICAgICogYmluZGluZ3MvanMvSlNFcnJvckhhbmRsZXIuY3BwOiBB
ZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkpTRXJyb3JIYW5kbGVyOjpKU0Vycm9ySGFuZGxlcik6
CisgICAgICAgIChXZWJDb3JlOjpKU0Vycm9ySGFuZGxlcjo6fkpTRXJyb3JIYW5kbGVyKToKKyAg
ICAgICAgKFdlYkNvcmU6OkpTRXJyb3JIYW5kbGVyOjpoYW5kbGVFdmVudCk6CisgICAgICAgICog
YmluZGluZ3MvanMvSlNFcnJvckhhbmRsZXIuaDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpK
U0Vycm9ySGFuZGxlcjo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OmNyZWF0ZUpTRXJyb3JI
YW5kbGVyKToKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU1dvcmtlckNvbnRleHRFcnJvckhhbmRs
ZXIuY3BwOiBSZW1vdmVkLgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pTV29ya2VyQ29udGV4dEVy
cm9ySGFuZGxlci5oOiBSZW1vdmVkLiBUaGlzIGNsYXNzIHdhcyByZWZhY3RvcmVkIGludG8gbW9y
ZSBnZW5lcmFsCisgICAgICAgIEpTRXJyb3JIYW5kbGVyIHRoYXQgcmVwcmVzZW50cyBnbG9iYWwg
b25lcnJvIGhhbmRlciBvbiBXb3JrZXIgQ29udGV4dCBvciBvbiBET01XaW5kb3cuCisgICAgICAg
ICogYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG06CisgICAgICAgICogYmluZGlu
Z3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9yVjgucG06CisgICAgICAgICogYmluZGluZ3MvdjgvVjhD
b25zb2xlTWVzc2FnZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpWOENvbnNvbGVNZXNzYWdlOjpk
aXNwYXRjaE5vdyk6CisgICAgICAgIChXZWJDb3JlOjpWOENvbnNvbGVNZXNzYWdlOjpoYW5kbGVy
KToKKyAgICAgICAgKiBiaW5kaW5ncy92OC9WOENvbnNvbGVNZXNzYWdlLmg6CisgICAgICAgICog
YmluZGluZ3MvdjgvVjhXaW5kb3dFcnJvckhhbmRsZXIuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdl
YkNvcmU6OlY4V2luZG93RXJyb3JIYW5kbGVyOjpWOFdpbmRvd0Vycm9ySGFuZGxlcik6CisgICAg
ICAgIChXZWJDb3JlOjpWOFdpbmRvd0Vycm9ySGFuZGxlcjo6Y2FsbExpc3RlbmVyRnVuY3Rpb24p
OgorICAgICAgICAqIGJpbmRpbmdzL3Y4L1Y4V2luZG93RXJyb3JIYW5kbGVyLmg6IEFkZGVkLgor
ICAgICAgICAoV2ViQ29yZTo6VjhXaW5kb3dFcnJvckhhbmRsZXI6OmNyZWF0ZSk6CisgICAgICAg
ICogZG9tL0RvY3VtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50OjpEb2N1bWVu
dCk6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6cmVwb3J0RXhjZXB0aW9uKToKKyAgICAg
ICAgKiBkb20vRG9jdW1lbnQuaDoKKyAgICAgICAgKiBkb20vU2NyaXB0RXhlY3V0aW9uQ29udGV4
dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTY3JpcHRFeGVjdXRpb25Db250ZXh0OjpTY3JpcHRF
eGVjdXRpb25Db250ZXh0KToKKyAgICAgICAgKFdlYkNvcmU6OlNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHQ6Omludm9rZU9uRXJyb3JIYW5kbGVyKTogdXRpbGl0eSBtZXRob2QgdGhhdCBhbGxvd3MgdG8g
aW52b2tlIG9uZXJyb3IKKyAgICAgICAgaGFuZGVyIGFjY2VwdGluZyB0aHJlZSBwYXJhbWV0ZXJz
KG1lc3NhZ2UsIHVybCBhbmQgbGluZSBudW1iZXIpIGZvciBXaW5kb3cgYW5kIFdvcmtlciBDb250
ZXh0LgorICAgICAgICAqIGRvbS9TY3JpcHRFeGVjdXRpb25Db250ZXh0Lmg6CisgICAgICAgICog
d29ya2Vycy9Xb3JrZXJDb250ZXh0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OldvcmtlckNvbnRl
eHQ6OldvcmtlckNvbnRleHQpOgorICAgICAgICAoV2ViQ29yZTo6V29ya2VyQ29udGV4dDo6cmVw
b3J0RXhjZXB0aW9uKToKKyAgICAgICAgKiB3b3JrZXJzL1dvcmtlckNvbnRleHQuaDoKKwogMjAx
MC0wOC0yMyAgQXJpeWEgSGlkYXlhdCAgPGFyaXlhQHNlbmNoYS5jb20+CiAKICAgICAgICAgUmV2
aWV3ZWQgYnkgS2VubmV0aCBSb2hkZSBDaHJpc3RpYW5zZW4uCmRpZmYgLS1naXQgYS9XZWJDb3Jl
L0dOVW1ha2VmaWxlLmFtIGIvV2ViQ29yZS9HTlVtYWtlZmlsZS5hbQppbmRleCBmMWVjNDQ1NDIx
YzJkZjM4Y2VkYzVkNjFhNWM5Y2M5NDE3NDBhYzIxLi5jNzlhYjVlNmUzNmEwMzE5NmU1ZjFjYjU5
NWM1NGU0N2EzNzVmY2FjIDEwMDY0NAotLS0gYS9XZWJDb3JlL0dOVW1ha2VmaWxlLmFtCisrKyBi
L1dlYkNvcmUvR05VbWFrZWZpbGUuYW0KQEAgLTY4MCw2ICs2ODAsOCBAQCB3ZWJjb3JlX3NvdXJj
ZXMgKz0gXAogCVdlYkNvcmUvYmluZGluZ3MvanMvSlNEZXZpY2VPcmllbnRhdGlvbkV2ZW50Q3Vz
dG9tLmNwcCBcCiAJV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RvY3VtZW50Q3VzdG9tLmNwcCBcCiAJ
V2ViQ29yZS9iaW5kaW5ncy9qcy9KU0VsZW1lbnRDdXN0b20uY3BwIFwKKwlXZWJDb3JlL2JpbmRp
bmdzL2pzL0pTRXJyb3JIYW5kbGVyLmNwcCBcCisJV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0Vycm9y
SGFuZGxlci5oIFwKIAlXZWJDb3JlL2JpbmRpbmdzL2pzL0pTRXZlbnRDdXN0b20uY3BwIFwKIAlX
ZWJDb3JlL2JpbmRpbmdzL2pzL0pTRXZlbnRMaXN0ZW5lci5jcHAgXAogCVdlYkNvcmUvYmluZGlu
Z3MvanMvSlNFdmVudExpc3RlbmVyLmggXApAQCAtNzUyLDggKzc1NCw2IEBAIHdlYmNvcmVfc291
cmNlcyArPSBcCiAJV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1RyZWVXYWxrZXJDdXN0b20uY3BwIFwK
IAlXZWJDb3JlL2JpbmRpbmdzL2pzL0pTV2ViS2l0Q1NTTWF0cml4Q3VzdG9tLmNwcCBcCiAJV2Vi
Q29yZS9iaW5kaW5ncy9qcy9KU1dlYktpdFBvaW50Q3VzdG9tLmNwcCBcCi0JV2ViQ29yZS9iaW5k
aW5ncy9qcy9KU1dvcmtlckNvbnRleHRFcnJvckhhbmRsZXIuY3BwIFwKLQlXZWJDb3JlL2JpbmRp
bmdzL2pzL0pTV29ya2VyQ29udGV4dEVycm9ySGFuZGxlci5oIFwKIAlXZWJDb3JlL2JpbmRpbmdz
L2pzL0pTWE1MSHR0cFJlcXVlc3RDdXN0b20uY3BwIFwKIAlXZWJDb3JlL2JpbmRpbmdzL2pzL0pT
WE1MSHR0cFJlcXVlc3RVcGxvYWRDdXN0b20uY3BwIFwKIAlXZWJDb3JlL2JpbmRpbmdzL2pzL0pT
WFNMVFByb2Nlc3NvckN1c3RvbS5jcHAgXApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9XZWJDb3JlLmd5
cGkgYi9XZWJDb3JlL1dlYkNvcmUuZ3lwaQppbmRleCBmNDczOGE1MmQ5OTkwMjY5MjY4MDMzMTQ5
NjZmYjUwZmVmOGU3ZWIwLi41NTRkZDQxYzAxZjMyMzc0ZmE3ZTI3ZGNjN2EwM2ZmNDc0YmY2YmEx
IDEwMDY0NAotLS0gYS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQorKysgYi9XZWJDb3JlL1dlYkNvcmUu
Z3lwaQpAQCAtNTc0LDYgKzU3NCw4IEBACiAgICAgICAgICAgICAnYmluZGluZ3MvanMvSlNET01X
cmFwcGVyLmNwcCcsCiAgICAgICAgICAgICAnYmluZGluZ3MvanMvSlNET01XcmFwcGVyLmgnLAog
ICAgICAgICAgICAgJ2JpbmRpbmdzL2pzL0pTRWxlbWVudEN1c3RvbS5jcHAnLAorICAgICAgICAg
ICAgJ2JpbmRpbmdzL2pzL0pTRXJyb3JIYW5kbGVyLmNwcCcsCisgICAgICAgICAgICAnYmluZGlu
Z3MvanMvSlNFcnJvckhhbmRsZXIuaCcsCiAgICAgICAgICAgICAnYmluZGluZ3MvanMvSlNFdmVu
dEN1c3RvbS5jcHAnLAogICAgICAgICAgICAgJ2JpbmRpbmdzL2pzL0pTRXZlbnRMaXN0ZW5lci5j
cHAnLAogICAgICAgICAgICAgJ2JpbmRpbmdzL2pzL0pTRXZlbnRMaXN0ZW5lci5oJywKQEAgLTY2
Niw4ICs2NjgsNiBAQAogICAgICAgICAgICAgJ2JpbmRpbmdzL2pzL0pTV29ya2VyQ29udGV4dEJh
c2UuY3BwJywKICAgICAgICAgICAgICdiaW5kaW5ncy9qcy9KU1dvcmtlckNvbnRleHRCYXNlLmgn
LAogICAgICAgICAgICAgJ2JpbmRpbmdzL2pzL0pTV29ya2VyQ29udGV4dEN1c3RvbS5jcHAnLAot
ICAgICAgICAgICAgJ2JpbmRpbmdzL2pzL0pTV29ya2VyQ29udGV4dEVycm9ySGFuZGxlci5jcHAn
LAotICAgICAgICAgICAgJ2JpbmRpbmdzL2pzL0pTV29ya2VyQ29udGV4dEVycm9ySGFuZGxlci5o
JywKICAgICAgICAgICAgICdiaW5kaW5ncy9qcy9KU1dvcmtlckN1c3RvbS5jcHAnLAogICAgICAg
ICAgICAgJ2JpbmRpbmdzL2pzL0pTWE1MSHR0cFJlcXVlc3RDdXN0b20uY3BwJywKICAgICAgICAg
ICAgICdiaW5kaW5ncy9qcy9KU1hNTEh0dHBSZXF1ZXN0VXBsb2FkQ3VzdG9tLmNwcCcsCkBAIC05
MjMsNiArOTIzLDggQEAKICAgICAgICAgICAgICdiaW5kaW5ncy92OC9WOFNWR1BPRFR5cGVXcmFw
cGVyLmgnLAogICAgICAgICAgICAgJ2JpbmRpbmdzL3Y4L1Y4VXRpbGl0aWVzLmNwcCcsCiAgICAg
ICAgICAgICAnYmluZGluZ3MvdjgvVjhVdGlsaXRpZXMuaCcsCisgICAgICAgICAgICAnYmluZGlu
Z3MvdjgvVjhXaW5kb3dFcnJvckhhbmRsZXIuY3BwJywKKyAgICAgICAgICAgICdiaW5kaW5ncy92
OC9WOFdpbmRvd0Vycm9ySGFuZGxlci5oJywKICAgICAgICAgICAgICdiaW5kaW5ncy92OC9WOFdv
cmtlckNvbnRleHRFcnJvckhhbmRsZXIuY3BwJywKICAgICAgICAgICAgICdiaW5kaW5ncy92OC9W
OFdvcmtlckNvbnRleHRFcnJvckhhbmRsZXIuaCcsCiAgICAgICAgICAgICAnYmluZGluZ3Mvdjgv
VjhXb3JrZXJDb250ZXh0RXZlbnRMaXN0ZW5lci5jcHAnLApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9X
ZWJDb3JlLm9yZGVyIGIvV2ViQ29yZS9XZWJDb3JlLm9yZGVyCmluZGV4IDQxMjQ3NzczYmEzN2Vm
ZDUwNWViN2YxZWM1ODQ3OGVjNTYyZmMwOTcuLmZiMThkNjQ4MjcyMzFlYmNiZTlhMGZiMWVlNDQ2
MWY2M2ZhNTA3MmMgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvV2ViQ29yZS5vcmRlcgorKysgYi9XZWJD
b3JlL1dlYkNvcmUub3JkZXIKQEAgLTI1MjE3LDEzICsyNTIxNyw5IEBAIF9fWk43V2ViQ29yZTE1
SlNXb3JrZXJDb250ZXh0MTBzZXRUaW1lb3V0RVBOM0pTQzlFeGVjU3RhdGVFUktOUzFfN0FyZ0xp
c3RFCiBfX1pON1dlYkNvcmUxM1dvcmtlckNvbnRleHQxMHNldFRpbWVvdXRFUE5TXzE1U2NoZWR1
bGVkQWN0aW9uRWkKIF9fWk43V2ViQ29yZTE3V29ya2VyU2hhcmVkVGltZXIxMXNldEZpcmVUaW1l
RWQKIF9fWk43V2ViQ29yZTE1U2NoZWR1bGVkQWN0aW9uN2V4ZWN1dGVFUE5TXzEzV29ya2VyQ29u
dGV4dEUKLV9fWk43V2ViQ29yZTI3SlNXb3JrZXJDb250ZXh0RXJyb3JIYW5kbGVyQzFFUE4zSlND
OEpTT2JqZWN0RVMzX2JQTlNfMTVET01XcmFwcGVyV29ybGRFCi1fX1pON1dlYkNvcmUyN0pTV29y
a2VyQ29udGV4dEVycm9ySGFuZGxlckMyRVBOM0pTQzhKU09iamVjdEVTM19iUE5TXzE1RE9NV3Jh
cHBlcldvcmxkRQogX19aTjdXZWJDb3JlMTBFcnJvckV2ZW50QzFFUktOU182U3RyaW5nRVMzX2oK
IF9fWk43V2ViQ29yZTEwRXJyb3JFdmVudEMyRVJLTlNfNlN0cmluZ0VTM19qCi1fX1pON1dlYkNv
cmUyN0pTV29ya2VyQ29udGV4dEVycm9ySGFuZGxlcjExaGFuZGxlRXZlbnRFUE5TXzIyU2NyaXB0
RXhlY3V0aW9uQ29udGV4dEVQTlNfNUV2ZW50RQogX19aTjdXZWJDb3JlMTBFcnJvckV2ZW50RDBF
dgotX19aTjdXZWJDb3JlMjdKU1dvcmtlckNvbnRleHRFcnJvckhhbmRsZXJEMEV2CiBfX1pON1dl
YkNvcmUxN2pzV29ya2VyT25tZXNzYWdlRVBOM0pTQzlFeGVjU3RhdGVFTlMwXzdKU1ZhbHVlRVJL
TlMwXzEwSWRlbnRpZmllckUKIF9fWk43V2ViQ29yZTM0anNXb3JrZXJQcm90b3R5cGVGdW5jdGlv
blRlcm1pbmF0ZUVQTjNKU0M5RXhlY1N0YXRlRVBOUzBfOEpTT2JqZWN0RU5TMF83SlNWYWx1ZUVS
S05TMF83QXJnTGlzdEUKIF9fWlRobjhfTjdXZWJDb3JlMjBXb3JrZXJNZXNzYWdpbmdQcm94eTE5
d29ya2VyQ29udGV4dENsb3NlZEV2CmRpZmYgLS1naXQgYS9XZWJDb3JlL1dlYkNvcmUucHJvIGIv
V2ViQ29yZS9XZWJDb3JlLnBybwppbmRleCAxM2FhMDczMzU5YzFmNGQ1MjNhMGRlYThhMGY0ZjE3
MTA0NGZhNzA3Li5iNzBiN2FjY2NhMjBlMGU4OWUwOTUwZDJjOTkxZTIwNWVlOTJlZmFjIDEwMDY0
NAotLS0gYS9XZWJDb3JlL1dlYkNvcmUucHJvCisrKyBiL1dlYkNvcmUvV2ViQ29yZS5wcm8KQEAg
LTMxOSw2ICszMTksNyBAQCBTT1VSQ0VTICs9IFwKICAgICBiaW5kaW5ncy9qcy9KU0RPTVdpbmRv
d1NoZWxsLmNwcCBcCiAgICAgYmluZGluZ3MvanMvSlNET01XcmFwcGVyLmNwcCBcCiAgICAgYmlu
ZGluZ3MvanMvSlNFbGVtZW50Q3VzdG9tLmNwcCBcCisgICAgYmluZGluZ3MvanMvSlNFcnJvckhh
bmRsZXIuY3BwIFwKICAgICBiaW5kaW5ncy9qcy9KU0V2ZW50Q3VzdG9tLmNwcCBcCiAgICAgYmlu
ZGluZ3MvanMvSlNFdmVudFNvdXJjZUN1c3RvbS5jcHAgXAogICAgIGJpbmRpbmdzL2pzL0pTRXZl
bnRUYXJnZXQuY3BwIFwKQEAgLTM3NSw3ICszNzYsNiBAQCBTT1VSQ0VTICs9IFwKICAgICBiaW5k
aW5ncy9qcy9KU01haW5UaHJlYWRFeGVjU3RhdGUuY3BwIFwKICAgICBiaW5kaW5ncy9qcy9KU1Bs
dWdpbkVsZW1lbnRGdW5jdGlvbnMuY3BwIFwKICAgICBiaW5kaW5ncy9qcy9KU1BvcFN0YXRlRXZl
bnRDdXN0b20uY3BwIFwKLSAgICBiaW5kaW5ncy9qcy9KU1dvcmtlckNvbnRleHRFcnJvckhhbmRs
ZXIuY3BwIFwKICAgICBiaW5kaW5ncy9qcy9TY3JpcHRDYWNoZWRGcmFtZURhdGEuY3BwIFwKICAg
ICBiaW5kaW5ncy9qcy9TY3JpcHRDYWxsRnJhbWUuY3BwIFwKICAgICBiaW5kaW5ncy9qcy9TY3Jp
cHRDYWxsU3RhY2suY3BwIFwKQEAgLTExMjgsNiArMTEyOCw3IEBAIEhFQURFUlMgKz0gXAogICAg
IGJpbmRpbmdzL2pzL0pTRE9NV2luZG93Q3VzdG9tLmggXAogICAgIGJpbmRpbmdzL2pzL0pTRE9N
V2luZG93U2hlbGwuaCBcCiAgICAgYmluZGluZ3MvanMvSlNET01XcmFwcGVyLmggXAorICAgIGJp
bmRpbmdzL2pzL0pTRXJyb3JIYW5kbGVyLmggXAogICAgIGJpbmRpbmdzL2pzL0pTRXZlbnRMaXN0
ZW5lci5oIFwKICAgICBiaW5kaW5ncy9qcy9KU0V2ZW50VGFyZ2V0LmggXAogICAgIGJpbmRpbmdz
L2pzL0pTSGlzdG9yeUN1c3RvbS5oIFwKQEAgLTExNDUsNyArMTE0Niw2IEBAIEhFQURFUlMgKz0g
XAogICAgIGJpbmRpbmdzL2pzL0pTUGx1Z2luRWxlbWVudEZ1bmN0aW9ucy5oIFwKICAgICBiaW5k
aW5ncy9qcy9KU1N0b3JhZ2VDdXN0b20uaCBcCiAgICAgYmluZGluZ3MvanMvSlNXb3JrZXJDb250
ZXh0QmFzZS5oIFwKLSAgICBiaW5kaW5ncy9qcy9KU1dvcmtlckNvbnRleHRFcnJvckhhbmRsZXIu
aCBcCiAgICAgYmluZGluZ3MvanMvSmF2YVNjcmlwdENhbGxGcmFtZS5oIFwKICAgICBiaW5kaW5n
cy9qcy9TY2hlZHVsZWRBY3Rpb24uaCBcCiAgICAgYmluZGluZ3MvanMvU2NyaXB0Q2FjaGVkRnJh
bWVEYXRhLmggXApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZj
cHJvaiBiL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oKaW5kZXggNzQ4NjAz
MzQzOGJmMTMwNGNkMjE3MjA0NWJlOGIxYjNlMDJhMWM0Yy4uNGZkM2Y3YTI4YzMwNjlkOWY5MWVk
NGZhZDRmMzNlNzU3NTU4MmJhYSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9X
ZWJDb3JlLnZjcHJvagorKysgYi9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9q
CkBAIC00NDEwNCw2ICs0NDEwNCw2MiBAQAogCQkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPg0KIAkJ
CQk8L0ZpbGU+DQogCQkJCTxGaWxlDQorCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGJpbmRpbmdzXGpz
XEpTRXJyb3JIYW5kbGVyLmNwcCINCisJCQkJCT4NCisJCQkJCTxGaWxlQ29uZmlndXJhdGlvbg0K
KwkJCQkJCU5hbWU9IkRlYnVnfFdpbjMyIg0KKwkJCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVl
Ig0KKwkJCQkJCT4NCisJCQkJCQk8VG9vbA0KKwkJCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29s
Ig0KKwkJCQkJCS8+DQorCQkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPg0KKwkJCQkJPEZpbGVDb25m
aWd1cmF0aW9uDQorCQkJCQkJTmFtZT0iUmVsZWFzZXxXaW4zMiINCisJCQkJCQlFeGNsdWRlZEZy
b21CdWlsZD0idHJ1ZSINCisJCQkJCQk+DQorCQkJCQkJPFRvb2wNCisJCQkJCQkJTmFtZT0iVkND
TENvbXBpbGVyVG9vbCINCisJCQkJCQkvPg0KKwkJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4NCisJ
CQkJCTxGaWxlQ29uZmlndXJhdGlvbg0KKwkJCQkJCU5hbWU9IkRlYnVnX0ludGVybmFsfFdpbjMy
Ig0KKwkJCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIg0KKwkJCQkJCT4NCisJCQkJCQk8VG9v
bA0KKwkJCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIg0KKwkJCQkJCS8+DQorCQkJCQk8L0Zp
bGVDb25maWd1cmF0aW9uPg0KKwkJCQkJPEZpbGVDb25maWd1cmF0aW9uDQorCQkJCQkJTmFtZT0i
RGVidWdfQ2Fpcm98V2luMzIiDQorCQkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiDQorCQkJ
CQkJPg0KKwkJCQkJCTxUb29sDQorCQkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiDQorCQkJ
CQkJLz4NCisJCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+DQorCQkJCQk8RmlsZUNvbmZpZ3VyYXRp
b24NCisJCQkJCQlOYW1lPSJSZWxlYXNlX0NhaXJvfFdpbjMyIg0KKwkJCQkJCUV4Y2x1ZGVkRnJv
bUJ1aWxkPSJ0cnVlIg0KKwkJCQkJCT4NCisJCQkJCQk8VG9vbA0KKwkJCQkJCQlOYW1lPSJWQ0NM
Q29tcGlsZXJUb29sIg0KKwkJCQkJCS8+DQorCQkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPg0KKwkJ
CQkJPEZpbGVDb25maWd1cmF0aW9uDQorCQkJCQkJTmFtZT0iRGVidWdfQWxsfFdpbjMyIg0KKwkJ
CQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIg0KKwkJCQkJCT4NCisJCQkJCQk8VG9vbA0KKwkJ
CQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIg0KKwkJCQkJCS8+DQorCQkJCQk8L0ZpbGVDb25m
aWd1cmF0aW9uPg0KKwkJCQk8L0ZpbGU+DQorCQkJCTxGaWxlDQorCQkJCQlSZWxhdGl2ZVBhdGg9
Ii4uXGJpbmRpbmdzXGpzXEpTRXJyb3JIYW5kbGVyLmgiDQorCQkJCQk+DQorCQkJCTwvRmlsZT4N
CisJCQkJPEZpbGUNCiAJCQkJCVJlbGF0aXZlUGF0aD0iLi5cYmluZGluZ3NcanNcSlNFdmVudEN1
c3RvbS5jcHAiDQogCQkJCQk+DQogCQkJCQk8RmlsZUNvbmZpZ3VyYXRpb24NCkBAIC00ODQ5Niw2
MiArNDg1NTIsNiBAQAogCQkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPg0KIAkJCQk8L0ZpbGU+DQog
CQkJCTxGaWxlDQotCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGJpbmRpbmdzXGpzXEpTV29ya2VyQ29u
dGV4dEVycm9ySGFuZGxlci5jcHAiDQotCQkJCQk+DQotCQkJCQk8RmlsZUNvbmZpZ3VyYXRpb24N
Ci0JCQkJCQlOYW1lPSJEZWJ1Z3xXaW4zMiINCi0JCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1
ZSINCi0JCQkJCQk+DQotCQkJCQkJPFRvb2wNCi0JCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9v
bCINCi0JCQkJCQkvPg0KLQkJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4NCi0JCQkJCTxGaWxlQ29u
ZmlndXJhdGlvbg0KLQkJCQkJCU5hbWU9IlJlbGVhc2V8V2luMzIiDQotCQkJCQkJRXhjbHVkZWRG
cm9tQnVpbGQ9InRydWUiDQotCQkJCQkJPg0KLQkJCQkJCTxUb29sDQotCQkJCQkJCU5hbWU9IlZD
Q0xDb21waWxlclRvb2wiDQotCQkJCQkJLz4NCi0JCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+DQot
CQkJCQk8RmlsZUNvbmZpZ3VyYXRpb24NCi0JCQkJCQlOYW1lPSJEZWJ1Z19JbnRlcm5hbHxXaW4z
MiINCi0JCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSINCi0JCQkJCQk+DQotCQkJCQkJPFRv
b2wNCi0JCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCINCi0JCQkJCQkvPg0KLQkJCQkJPC9G
aWxlQ29uZmlndXJhdGlvbj4NCi0JCQkJCTxGaWxlQ29uZmlndXJhdGlvbg0KLQkJCQkJCU5hbWU9
IkRlYnVnX0NhaXJvfFdpbjMyIg0KLQkJCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIg0KLQkJ
CQkJCT4NCi0JCQkJCQk8VG9vbA0KLQkJCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIg0KLQkJ
CQkJCS8+DQotCQkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPg0KLQkJCQkJPEZpbGVDb25maWd1cmF0
aW9uDQotCQkJCQkJTmFtZT0iUmVsZWFzZV9DYWlyb3xXaW4zMiINCi0JCQkJCQlFeGNsdWRlZEZy
b21CdWlsZD0idHJ1ZSINCi0JCQkJCQk+DQotCQkJCQkJPFRvb2wNCi0JCQkJCQkJTmFtZT0iVkND
TENvbXBpbGVyVG9vbCINCi0JCQkJCQkvPg0KLQkJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4NCi0J
CQkJCTxGaWxlQ29uZmlndXJhdGlvbg0KLQkJCQkJCU5hbWU9IkRlYnVnX0FsbHxXaW4zMiINCi0J
CQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSINCi0JCQkJCQk+DQotCQkJCQkJPFRvb2wNCi0J
CQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCINCi0JCQkJCQkvPg0KLQkJCQkJPC9GaWxlQ29u
ZmlndXJhdGlvbj4NCi0JCQkJPC9GaWxlPg0KLQkJCQk8RmlsZQ0KLQkJCQkJUmVsYXRpdmVQYXRo
PSIuLlxiaW5kaW5nc1xqc1xKU1dvcmtlckNvbnRleHRFcnJvckhhbmRsZXIuaCINCi0JCQkJCT4N
Ci0JCQkJPC9GaWxlPg0KLQkJCQk8RmlsZQ0KIAkJCQkJUmVsYXRpdmVQYXRoPSIuLlxiaW5kaW5n
c1xqc1xKU1hNTEh0dHBSZXF1ZXN0Q3VzdG9tLmNwcCINCiAJCQkJCT4NCiAJCQkJCTxGaWxlQ29u
ZmlndXJhdGlvbg0KZGlmZiAtLWdpdCBhL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qIGIvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5k
ZXggODA1OWFhMmUyN2FhYTNlNzZmODVmNWQ2NDY0MGU3MDY4NWU2ZmM5ZC4uZmU4YWViZjEyMGY4
OTc1Zjk3YjhkNmQ3MDhiNWRkZDA0MjAwMjU4MSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9XZWJDb3Jl
Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJv
ai9wcm9qZWN0LnBieHByb2oKQEAgLTUzMDEsOCArNTMwMSw4IEBACiAJCUYzNjQ0QUZGMTExOTgw
NTkwMEUwRDUzNyAvKiBJbmplY3RlZFNjcmlwdC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGMzY0NEFGRDExMTk4MDU5MDBFMEQ1MzcgLyogSW5qZWN0
ZWRTY3JpcHQuY3BwICovOyB9OwogCQlGMzY0NEIwMDExMTk4MDU5MDBFMEQ1MzcgLyogSW5qZWN0
ZWRTY3JpcHQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IEYzNjQ0QUZFMTExOTgwNTkwMEUwRDUzNyAvKiBJbmplY3RlZFNjcmlwdC5oICovOyB9OwogCQlG
Mzc1Q0MwNzExNTBEMzAwMDA4RERCODEgLyogSW5zcGVjdG9yV29ya2VyUmVzb3VyY2UuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEYzNzVDQzA2MTE1MEQz
MDAwMDhEREI4MSAvKiBJbnNwZWN0b3JXb3JrZXJSZXNvdXJjZS5oICovOyB9OwotCQlGM0Q0NjE0
ODExNjFENTMyMDBDQTBEMDkgLyogSlNXb3JrZXJDb250ZXh0RXJyb3JIYW5kbGVyLmNwcCBpbiBT
b3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEYzRDQ2MTQ2MTE2MUQ1
MzIwMENBMEQwOSAvKiBKU1dvcmtlckNvbnRleHRFcnJvckhhbmRsZXIuY3BwICovOyB9OwotCQlG
M0Q0NjE0OTExNjFENTMyMDBDQTBEMDkgLyogSlNXb3JrZXJDb250ZXh0RXJyb3JIYW5kbGVyLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGM0Q0NjE0NzEx
NjFENTMyMDBDQTBEMDkgLyogSlNXb3JrZXJDb250ZXh0RXJyb3JIYW5kbGVyLmggKi87IH07CisJ
CUYzRDQ2MTQ4MTE2MUQ1MzIwMENBMEQwOSAvKiBKU0Vycm9ySGFuZGxlci5jcHAgaW4gU291cmNl
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGM0Q0NjE0NjExNjFENTMyMDBD
QTBEMDkgLyogSlNFcnJvckhhbmRsZXIuY3BwICovOyB9OworCQlGM0Q0NjE0OTExNjFENTMyMDBD
QTBEMDkgLyogSlNFcnJvckhhbmRsZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IEYzRDQ2MTQ3MTE2MUQ1MzIwMENBMEQwOSAvKiBKU0Vycm9ySGFuZGxl
ci5oICovOyB9OwogCQlGNEVBRjRBRTEwQzc0MkIxMDA5MTAwRDMgLyogT3BlblR5cGVTYW5pdGl6
ZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjRF
QUY0QUMxMEM3NDJCMTAwOTEwMEQzIC8qIE9wZW5UeXBlU2FuaXRpemVyLmNwcCAqLzsgfTsKIAkJ
RjRFQUY0QUYxMEM3NDJCMTAwOTEwMEQzIC8qIE9wZW5UeXBlU2FuaXRpemVyLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNEVBRjRBRDEwQzc0MkIxMDA5
MTAwRDMgLyogT3BlblR5cGVTYW5pdGl6ZXIuaCAqLzsgfTsKIAkJRjVDMDQxREEwRkZDQTdDRTAw
ODM5RDRBIC8qIEhUTUxEYXRhTGlzdEVsZW1lbnQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjVDMDQxRDcwRkZDQTdDRTAwODM5RDRBIC8qIEhUTUxE
YXRhTGlzdEVsZW1lbnQuY3BwICovOyB9OwpAQCAtMTExMzUsOCArMTExMzUsOCBAQAogCQlGMzY0
NEFGRDExMTk4MDU5MDBFMEQ1MzcgLyogSW5qZWN0ZWRTY3JpcHQuY3BwICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSW5qZWN0ZWRTY3JpcHQuY3BwOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQlGMzY0NEFGRTExMTk4MDU5MDBFMEQ1MzcgLyogSW5qZWN0ZWRTY3Jp
cHQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSW5qZWN0ZWRTY3JpcHQuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRjM3NUNDMDYxMTUwRDMwMDAwOEREQjgxIC8q
IEluc3BlY3RvcldvcmtlclJlc291cmNlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IEluc3BlY3RvcldvcmtlclJlc291cmNlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
Ci0JCUYzRDQ2MTQ2MTE2MUQ1MzIwMENBMEQwOSAvKiBKU1dvcmtlckNvbnRleHRFcnJvckhhbmRs
ZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNXb3JrZXJDb250
ZXh0RXJyb3JIYW5kbGVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJRjNENDYx
NDcxMTYxRDUzMjAwQ0EwRDA5IC8qIEpTV29ya2VyQ29udGV4dEVycm9ySGFuZGxlci5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKU1dvcmtlckNvbnRleHRFcnJvckhhbmRsZXIu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRjNENDYxNDYxMTYxRDUzMjAwQ0EwRDA5
IC8qIEpTRXJyb3JIYW5kbGVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0
aCA9IEpTRXJyb3JIYW5kbGVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRjNE
NDYxNDcxMTYxRDUzMjAwQ0EwRDA5IC8qIEpTRXJyb3JIYW5kbGVyLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IEpTRXJyb3JIYW5kbGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCUY0RUFGNEFDMTBDNzQyQjEwMDkxMDBEMyAvKiBPcGVuVHlwZVNhbml0aXplci5j
cHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBPcGVuVHlwZVNhbml0aXpl
ci5jcHA7IHBhdGggPSBvcGVudHlwZS9PcGVuVHlwZVNhbml0aXplci5jcHA7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCUY0RUFGNEFEMTBDNzQyQjEwMDkxMDBEMyAvKiBPcGVuVHlwZVNh
bml0aXplci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBPcGVuVHlwZVNhbml0
aXplci5oOyBwYXRoID0gb3BlbnR5cGUvT3BlblR5cGVTYW5pdGl6ZXIuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJRjUyM0QyM0IwMkRFNDM5NjAxODYzNUNBIC8qIEhUTUxEb2N1bWVu
dC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGlu
ZGVudFdpZHRoID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBh
dGggPSBIVE1MRG9jdW1lbnQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB0YWJXaWR0aCA9
IDg7IHVzZXNUYWJzID0gMDsgfTsKQEAgLTE2MDY4LDYgKzE2MDY4LDggQEAKIAkJCQlCQ0JGQjUz
QjBEQ0QyOUNGMDAxOUIzRTUgLyogSlNET01XaW5kb3dTaGVsbC5oICovLAogCQkJCUJDNTNEQUM2
MTE0MzMwNjQwMDBEODE3RSAvKiBKU0RPTVdyYXBwZXIuY3BwICovLAogCQkJCTY1RTBFOTQzMTEz
M0M4OUYwMEI0Q0IxMCAvKiBKU0RPTVdyYXBwZXIuaCAqLywKKwkJCQlGM0Q0NjE0NjExNjFENTMy
MDBDQTBEMDkgLyogSlNFcnJvckhhbmRsZXIuY3BwICovLAorCQkJCUYzRDQ2MTQ3MTE2MUQ1MzIw
MENBMEQwOSAvKiBKU0Vycm9ySGFuZGxlci5oICovLAogCQkJCUJDNjA5MDFFMEU5MUI4RUMwMDBD
NjhCNSAvKiBKU0V2ZW50VGFyZ2V0LmNwcCAqLywKIAkJCQlCQzYwOTAxRDBFOTFCOEVDMDAwQzY4
QjUgLyogSlNFdmVudFRhcmdldC5oICovLAogCQkJCTMzMTRBQ0U5MTA4OTIwODYwMDBGMEU1NiAv
KiBKU0V4Y2VwdGlvbkJhc2UuY3BwICovLApAQCAtMTYwODAsOCArMTYwODIsNiBAQAogCQkJCUIy
MTEyN0E1MEIzMTg2NzcwMDA5QkU1MyAvKiBKU1NWR1BPRFR5cGVXcmFwcGVyLmggKi8sCiAJCQkJ
RTFDMzZEMzIwRUIwQTA5NDAwNzQxMEJDIC8qIEpTV29ya2VyQ29udGV4dEJhc2UuY3BwICovLAog
CQkJCUUxQzM2RDMzMEVCMEEwOTQwMDc0MTBCQyAvKiBKU1dvcmtlckNvbnRleHRCYXNlLmggKi8s
Ci0JCQkJRjNENDYxNDYxMTYxRDUzMjAwQ0EwRDA5IC8qIEpTV29ya2VyQ29udGV4dEVycm9ySGFu
ZGxlci5jcHAgKi8sCi0JCQkJRjNENDYxNDcxMTYxRDUzMjAwQ0EwRDA5IC8qIEpTV29ya2VyQ29u
dGV4dEVycm9ySGFuZGxlci5oICovLAogCQkJCUJDQTM3OEJBMEQxNUY2NDIwMEI3OTNENiAvKiBT
Y2hlZHVsZWRBY3Rpb24uY3BwICovLAogCQkJCUJDQTM3OEJCMEQxNUY2NDIwMEI3OTNENiAvKiBT
Y2hlZHVsZWRBY3Rpb24uaCAqLywKIAkJCQk0MUYxRDIxRTBFRjM1QzJBMDBEQTg3NTMgLyogU2Ny
aXB0Q2FjaGVkRnJhbWVEYXRhLmNwcCAqLywKQEAgLTE5NDA5LDcgKzE5NDA5LDcgQEAKIAkJCQlF
MUNBQTVDNjBFOEJEMjM2MDBBNzNFQ0EgLyogSlNXb3JrZXIuaCBpbiBIZWFkZXJzICovLAogCQkJ
CUUxODI1NjkwMEVGMkIwMkQwMDkzMzI0MiAvKiBKU1dvcmtlckNvbnRleHQuaCBpbiBIZWFkZXJz
ICovLAogCQkJCUUxQzM2RDM1MEVCMEEwOTQwMDc0MTBCQyAvKiBKU1dvcmtlckNvbnRleHRCYXNl
LmggaW4gSGVhZGVycyAqLywKLQkJCQlGM0Q0NjE0OTExNjFENTMyMDBDQTBEMDkgLyogSlNXb3Jr
ZXJDb250ZXh0RXJyb3JIYW5kbGVyLmggaW4gSGVhZGVycyAqLywKKwkJCQlGM0Q0NjE0OTExNjFE
NTMyMDBDQTBEMDkgLyogSlNFcnJvckhhbmRsZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCUUxQzM2
MkVGMEVBRjJBQTkwMDc0MTBCQyAvKiBKU1dvcmtlckxvY2F0aW9uLmggaW4gSGVhZGVycyAqLywK
IAkJCQlFMTI3MUE1ODBFRUVDREU0MDBGNjEyMTMgLyogSlNXb3JrZXJOYXZpZ2F0b3IuaCBpbiBI
ZWFkZXJzICovLAogCQkJCUJDMzQ4QkQ0MERCN0Y4MDQwMDRBQkFCOSAvKiBKU1hNTEh0dHBSZXF1
ZXN0LmggaW4gSGVhZGVycyAqLywKQEAgLTIxOTc3LDcgKzIxOTc3LDcgQEAKIAkJCQlFMTgyNTY4
RjBFRjJCMDJEMDA5MzMyNDIgLyogSlNXb3JrZXJDb250ZXh0LmNwcCBpbiBTb3VyY2VzICovLAog
CQkJCUUxQzM2RDM0MEVCMEEwOTQwMDc0MTBCQyAvKiBKU1dvcmtlckNvbnRleHRCYXNlLmNwcCBp
biBTb3VyY2VzICovLAogCQkJCUUxODI1OEFDMEVGM0NENzAwMDkzMzI0MiAvKiBKU1dvcmtlckNv
bnRleHRDdXN0b20uY3BwIGluIFNvdXJjZXMgKi8sCi0JCQkJRjNENDYxNDgxMTYxRDUzMjAwQ0Ew
RDA5IC8qIEpTV29ya2VyQ29udGV4dEVycm9ySGFuZGxlci5jcHAgaW4gU291cmNlcyAqLywKKwkJ
CQlGM0Q0NjE0ODExNjFENTMyMDBDQTBEMDkgLyogSlNFcnJvckhhbmRsZXIuY3BwIGluIFNvdXJj
ZXMgKi8sCiAJCQkJRTFDQTVDQkMwRThDRENBRjAwRThFRjkwIC8qIEpTV29ya2VyQ3VzdG9tLmNw
cCBpbiBTb3VyY2VzICovLAogCQkJCUUxQzM2MkYwMEVBRjJBQTkwMDc0MTBCQyAvKiBKU1dvcmtl
ckxvY2F0aW9uLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUUxMjcxQTU5MEVFRUNERTQwMEY2MTIx
MyAvKiBKU1dvcmtlck5hdmlnYXRvci5jcHAgaW4gU291cmNlcyAqLywKZGlmZiAtLWdpdCBhL1dl
YkNvcmUvYmluZGluZ3MvanMvSlNCaW5kaW5nc0FsbEluT25lLmNwcCBiL1dlYkNvcmUvYmluZGlu
Z3MvanMvSlNCaW5kaW5nc0FsbEluT25lLmNwcAppbmRleCA5MjJlNDQ5NzE4YzE3NDNiNjNjYzI3
ZTAzZWM1MjljMzU4MWM4YjcxLi4xNGY4YTc4YWY2OTY3MmNmYjQwN2MwNGEzMDYzZWNiMTdhNDZk
YzI2IDEwMDY0NAotLS0gYS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTQmluZGluZ3NBbGxJbk9uZS5j
cHAKKysrIGIvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0JpbmRpbmdzQWxsSW5PbmUuY3BwCkBAIC02
Myw2ICs2Myw3IEBACiAjaW5jbHVkZSAiSlNEZXZpY2VPcmllbnRhdGlvbkV2ZW50Q3VzdG9tLmNw
cCIKICNpbmNsdWRlICJKU0RvY3VtZW50Q3VzdG9tLmNwcCIKICNpbmNsdWRlICJKU0VsZW1lbnRD
dXN0b20uY3BwIgorI2luY2x1ZGUgIkpTRXJyb3JIYW5kbGVyLmNwcCIKICNpbmNsdWRlICJKU0V2
ZW50Q3VzdG9tLmNwcCIKICNpbmNsdWRlICJKU0V2ZW50TGlzdGVuZXIuY3BwIgogI2luY2x1ZGUg
IkpTRXZlbnRTb3VyY2VDdXN0b20uY3BwIgpAQCAtMTI5LDcgKzEzMCw2IEBACiAjaW5jbHVkZSAi
SlNXZWJTb2NrZXRDdXN0b20uY3BwIgogI2luY2x1ZGUgIkpTV29ya2VyQ29udGV4dEJhc2UuY3Bw
IgogI2luY2x1ZGUgIkpTV29ya2VyQ29udGV4dEN1c3RvbS5jcHAiCi0jaW5jbHVkZSAiSlNXb3Jr
ZXJDb250ZXh0RXJyb3JIYW5kbGVyLmNwcCIKICNpbmNsdWRlICJKU1dvcmtlckN1c3RvbS5jcHAi
CiAjaW5jbHVkZSAiSlNYTUxIdHRwUmVxdWVzdEN1c3RvbS5jcHAiCiAjaW5jbHVkZSAiSlNYTUxI
dHRwUmVxdWVzdFVwbG9hZEN1c3RvbS5jcHAiCmRpZmYgLS1naXQgYS9XZWJDb3JlL2JpbmRpbmdz
L2pzL0pTV29ya2VyQ29udGV4dEVycm9ySGFuZGxlci5jcHAgYi9XZWJDb3JlL2JpbmRpbmdzL2pz
L0pTRXJyb3JIYW5kbGVyLmNwcApzaW1pbGFyaXR5IGluZGV4IDg5JQpyZW5hbWUgZnJvbSBXZWJD
b3JlL2JpbmRpbmdzL2pzL0pTV29ya2VyQ29udGV4dEVycm9ySGFuZGxlci5jcHAKcmVuYW1lIHRv
IFdlYkNvcmUvYmluZGluZ3MvanMvSlNFcnJvckhhbmRsZXIuY3BwCmluZGV4IGFkM2Y1ZWMxN2Qz
YjU4MGNiNjgwODhkZWI2MTlmZjcwOGE3MmI3NGQuLjgyNjFjODQxZmJhZDM1NjFlZjMzOGViYzY4
MzEwYjQzMGEwZTdkOTMgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvYmluZGluZ3MvanMvSlNXb3JrZXJD
b250ZXh0RXJyb3JIYW5kbGVyLmNwcAorKysgYi9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRXJyb3JI
YW5kbGVyLmNwcApAQCAtMzAsOSArMzAsNyBAQAogCiAjaW5jbHVkZSAiY29uZmlnLmgiCiAKLSNp
ZiBFTkFCTEUoV09SS0VSUykKLQotI2luY2x1ZGUgIkpTV29ya2VyQ29udGV4dEVycm9ySGFuZGxl
ci5oIgorI2luY2x1ZGUgIkpTRXJyb3JIYW5kbGVyLmgiCiAKICNpbmNsdWRlICJFcnJvckV2ZW50
LmgiCiAjaW5jbHVkZSAiRXZlbnQuaCIKQEAgLTQzLDE2ICs0MSwxNiBAQCB1c2luZyBuYW1lc3Bh
Y2UgSlNDOwogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLUpTV29ya2VyQ29udGV4dEVycm9ySGFu
ZGxlcjo6SlNXb3JrZXJDb250ZXh0RXJyb3JIYW5kbGVyKEpTT2JqZWN0KiBmdW5jdGlvbiwgSlNP
YmplY3QqIHdyYXBwZXIsIGJvb2wgaXNBdHRyaWJ1dGUsIERPTVdyYXBwZXJXb3JsZCogaXNvbGF0
ZWRXb3JsZCkKK0pTRXJyb3JIYW5kbGVyOjpKU0Vycm9ySGFuZGxlcihKU09iamVjdCogZnVuY3Rp
b24sIEpTT2JqZWN0KiB3cmFwcGVyLCBib29sIGlzQXR0cmlidXRlLCBET01XcmFwcGVyV29ybGQq
IGlzb2xhdGVkV29ybGQpCiAgICAgOiBKU0V2ZW50TGlzdGVuZXIoZnVuY3Rpb24sIHdyYXBwZXIs
IGlzQXR0cmlidXRlLCBpc29sYXRlZFdvcmxkKQogewogfQogCi1KU1dvcmtlckNvbnRleHRFcnJv
ckhhbmRsZXI6On5KU1dvcmtlckNvbnRleHRFcnJvckhhbmRsZXIoKQorSlNFcnJvckhhbmRsZXI6
On5KU0Vycm9ySGFuZGxlcigpCiB7CiB9CiAKLXZvaWQgSlNXb3JrZXJDb250ZXh0RXJyb3JIYW5k
bGVyOjpoYW5kbGVFdmVudChTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBzY3JpcHRFeGVjdXRpb25D
b250ZXh0LCBFdmVudCogZXZlbnQpCit2b2lkIEpTRXJyb3JIYW5kbGVyOjpoYW5kbGVFdmVudChT
Y3JpcHRFeGVjdXRpb25Db250ZXh0KiBzY3JpcHRFeGVjdXRpb25Db250ZXh0LCBFdmVudCogZXZl
bnQpCiB7CiAgICAgQVNTRVJUKHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQpOwogICAgIGlmICghc2Ny
aXB0RXhlY3V0aW9uQ29udGV4dCkKQEAgLTExMiw1ICsxMTAsMyBAQCB2b2lkIEpTV29ya2VyQ29u
dGV4dEVycm9ySGFuZGxlcjo6aGFuZGxlRXZlbnQoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogc2Ny
aXB0RXhlYwogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCi0KLSNlbmRpZiAvLyBFTkFCTEUo
V09SS0VSUykKZGlmZiAtLWdpdCBhL1dlYkNvcmUvYmluZGluZ3MvanMvSlNXb3JrZXJDb250ZXh0
RXJyb3JIYW5kbGVyLmggYi9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRXJyb3JIYW5kbGVyLmgKc2lt
aWxhcml0eSBpbmRleCA2OSUKY29weSBmcm9tIFdlYkNvcmUvYmluZGluZ3MvanMvSlNXb3JrZXJD
b250ZXh0RXJyb3JIYW5kbGVyLmgKY29weSB0byBXZWJDb3JlL2JpbmRpbmdzL2pzL0pTRXJyb3JI
YW5kbGVyLmgKaW5kZXggYTE4ODI5OTAzOGM5Y2RmZTcyMjg2YjcxZmVhZWIzYTQ5YzJhMGQ4MS4u
OTU3ZmQ4MWRhYTA1NzQ2OWIyMTEyZTExZDdlNzA0YWQ0ZTI5ZDdlZCAxMDA2NDQKLS0tIGEvV2Vi
Q29yZS9iaW5kaW5ncy9qcy9KU1dvcmtlckNvbnRleHRFcnJvckhhbmRsZXIuaAorKysgYi9XZWJD
b3JlL2JpbmRpbmdzL2pzL0pTRXJyb3JIYW5kbGVyLmgKQEAgLTI4LDM3ICsyOCwzNyBAQAogICog
T0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4KICAqLwogCi0jaWZuZGVmIEpTV29ya2VyQ29udGV4dEVycm9ySGFuZGxlcl9o
Ci0jZGVmaW5lIEpTV29ya2VyQ29udGV4dEVycm9ySGFuZGxlcl9oCisjaWZuZGVmIEpTRXJyb3JI
YW5kbGVyX2gKKyNkZWZpbmUgSlNFcnJvckhhbmRsZXJfaAogCiAjaW5jbHVkZSAiSlNFdmVudExp
c3RlbmVyLmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotY2xhc3MgSlNXb3JrZXJDb250ZXh0
RXJyb3JIYW5kbGVyIDogcHVibGljIEpTRXZlbnRMaXN0ZW5lciB7CitjbGFzcyBKU0Vycm9ySGFu
ZGxlciA6IHB1YmxpYyBKU0V2ZW50TGlzdGVuZXIgewogcHVibGljOgotICAgIHN0YXRpYyBQYXNz
UmVmUHRyPEpTV29ya2VyQ29udGV4dEVycm9ySGFuZGxlcj4gY3JlYXRlKEpTQzo6SlNPYmplY3Qq
IGxpc3RlbmVyLCBKU0M6OkpTT2JqZWN0KiB3cmFwcGVyLCBib29sIGlzQXR0cmlidXRlLCBET01X
cmFwcGVyV29ybGQqIGlzb2xhdGVkV29ybGQpCisgICAgc3RhdGljIFBhc3NSZWZQdHI8SlNFcnJv
ckhhbmRsZXI+IGNyZWF0ZShKU0M6OkpTT2JqZWN0KiBsaXN0ZW5lciwgSlNDOjpKU09iamVjdCog
d3JhcHBlciwgYm9vbCBpc0F0dHJpYnV0ZSwgRE9NV3JhcHBlcldvcmxkKiBpc29sYXRlZFdvcmxk
KQogICAgIHsKLSAgICAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBKU1dvcmtlckNvbnRleHRFcnJv
ckhhbmRsZXIobGlzdGVuZXIsIHdyYXBwZXIsIGlzQXR0cmlidXRlLCBpc29sYXRlZFdvcmxkKSk7
CisgICAgICAgIHJldHVybiBhZG9wdFJlZihuZXcgSlNFcnJvckhhbmRsZXIobGlzdGVuZXIsIHdy
YXBwZXIsIGlzQXR0cmlidXRlLCBpc29sYXRlZFdvcmxkKSk7CiAgICAgfQogCi0gICAgdmlydHVh
bCB+SlNXb3JrZXJDb250ZXh0RXJyb3JIYW5kbGVyKCk7CisgICAgdmlydHVhbCB+SlNFcnJvckhh
bmRsZXIoKTsKIAogcHJpdmF0ZToKLSAgICBKU1dvcmtlckNvbnRleHRFcnJvckhhbmRsZXIoSlND
OjpKU09iamVjdCogZnVuY3Rpb24sIEpTQzo6SlNPYmplY3QqIHdyYXBwZXIsIGJvb2wgaXNBdHRy
aWJ1dGUsIERPTVdyYXBwZXJXb3JsZCogaXNvbGF0ZWRXb3JsZCk7CisgICAgSlNFcnJvckhhbmRs
ZXIoSlNDOjpKU09iamVjdCogZnVuY3Rpb24sIEpTQzo6SlNPYmplY3QqIHdyYXBwZXIsIGJvb2wg
aXNBdHRyaWJ1dGUsIERPTVdyYXBwZXJXb3JsZCogaXNvbGF0ZWRXb3JsZCk7CiAgICAgdmlydHVh
bCB2b2lkIGhhbmRsZUV2ZW50KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqLCBFdmVudCopOwogfTsK
IAogLy8gQ3JlYXRlcyBhIEpTIEV2ZW50TGlzdGVuZXIgZm9yICJvbmVycm9yIiBldmVudCBoYW5k
bGVyIGluIHdvcmtlciBjb250ZXh0LiBJdCBoYXMgY3VzdG9tIGltcGxlbWVudGF0aW9uIGJlY2F1
c2UKIC8vIHVubGlrZSBvdGhlciBldmVudCBsaXN0ZW5lcnMgaXQgYWNjZXB0cyB0aHJlZSBwYXJh
bWV0ZXJzLgotaW5saW5lIFBhc3NSZWZQdHI8SlNXb3JrZXJDb250ZXh0RXJyb3JIYW5kbGVyPiBj
cmVhdGVKU1dvcmtlckNvbnRleHRFcnJvckhhbmRsZXIoSlNDOjpFeGVjU3RhdGUqIGV4ZWMsIEpT
Qzo6SlNWYWx1ZSBsaXN0ZW5lciwgSlNDOjpKU09iamVjdCogd3JhcHBlcikKK2lubGluZSBQYXNz
UmVmUHRyPEpTRXJyb3JIYW5kbGVyPiBjcmVhdGVKU0Vycm9ySGFuZGxlcihKU0M6OkV4ZWNTdGF0
ZSogZXhlYywgSlNDOjpKU1ZhbHVlIGxpc3RlbmVyLCBKU0M6OkpTT2JqZWN0KiB3cmFwcGVyKQog
ewogICAgIGlmICghbGlzdGVuZXIuaXNPYmplY3QoKSkKICAgICAgICAgcmV0dXJuIDA7CiAKLSAg
ICByZXR1cm4gSlNXb3JrZXJDb250ZXh0RXJyb3JIYW5kbGVyOjpjcmVhdGUoYXNPYmplY3QobGlz
dGVuZXIpLCB3cmFwcGVyLCB0cnVlLCBjdXJyZW50V29ybGQoZXhlYykpOworICAgIHJldHVybiBK
U0Vycm9ySGFuZGxlcjo6Y3JlYXRlKGFzT2JqZWN0KGxpc3RlbmVyKSwgd3JhcHBlciwgdHJ1ZSwg
Y3VycmVudFdvcmxkKGV4ZWMpKTsKIH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCi0jZW5k
aWYgLy8gSlNXb3JrZXJDb250ZXh0RXJyb3JIYW5kbGVyX2gKKyNlbmRpZiAvLyBKU0Vycm9ySGFu
ZGxlcl9oCmRpZmYgLS1naXQgYS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRv
ckpTLnBtIGIvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbQppbmRl
eCA4NGUzOTE5MDVmNTYyNTU4NTMyNzE4MDFhOGRhZjMxNTdhMDJlNjE2Li44ZDM1MDNlODExODIx
NDg5OTQzZTNlZDg3MTQ2ZjI4MGJkNWM5OGQyIDEwMDY0NAotLS0gYS9XZWJDb3JlL2JpbmRpbmdz
L3NjcmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtCisrKyBiL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0
cy9Db2RlR2VuZXJhdG9ySlMucG0KQEAgLTE3MDksOSArMTcwOSw5IEBAIHN1YiBHZW5lcmF0ZUlt
cGxlbWVudGF0aW9uCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHB1c2goQGltcGxD
b250ZW50LCAiICAgIEpTRE9NR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QgPSBjYXN0ZWRUaGlz
LT5nbG9iYWxPYmplY3QoKTtcbiIpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICAkaW1wbENs
YXNzTmFtZSogaW1wID0gc3RhdGljX2Nhc3Q8JGltcGxDbGFzc05hbWUqPihzdGF0aWNfY2FzdDwk
Y2xhc3NOYW1lKj4odGhpc09iamVjdCktPmltcGwoKSk7XG4iKTsKLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBpZiAoJGludGVyZmFjZU5hbWUgZXEgIldvcmtlckNvbnRleHQiIGFuZCAkbmFt
ZSBlcSAib25lcnJvciIpIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJGltcGxJ
bmNsdWRlc3siSlNXb3JrZXJDb250ZXh0RXJyb3JIYW5kbGVyLmgifSA9IDE7Ci0gICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgIGltcC0+c2V0JGlt
cGxTZXR0ZXJGdW5jdGlvbk5hbWUoY3JlYXRlSlNXb3JrZXJDb250ZXh0RXJyb3JIYW5kbGVyKGV4
ZWMsIHZhbHVlLCB0aGlzT2JqZWN0KSk7XG4iKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBpZiAoKCgkaW50ZXJmYWNlTmFtZSBlcSAiRE9NV2luZG93Iikgb3IgKCRpbnRlcmZhY2VOYW1l
IGVxICJXb3JrZXJDb250ZXh0IikpIGFuZCAkbmFtZSBlcSAib25lcnJvciIpIHsKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgJGltcGxJbmNsdWRlc3siSlNFcnJvckhhbmRsZXIuaCJ9
ID0gMTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQs
ICIgICAgaW1wLT5zZXQkaW1wbFNldHRlckZ1bmN0aW9uTmFtZShjcmVhdGVKU0Vycm9ySGFuZGxl
cihleGVjLCB2YWx1ZSwgdGhpc09iamVjdCkpO1xuIik7CiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHVzaChAaW1w
bENvbnRlbnQsIEdlbmVyYXRlQXR0cmlidXRlRXZlbnRMaXN0ZW5lckNhbGwoJGNsYXNzTmFtZSwg
JGltcGxTZXR0ZXJGdW5jdGlvbk5hbWUsICR3aW5kb3dFdmVudExpc3RlbmVyKSk7CiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgfQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9iaW5kaW5ncy9zY3Jp
cHRzL0NvZGVHZW5lcmF0b3JWOC5wbSBiL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2Vu
ZXJhdG9yVjgucG0Kb2xkIG1vZGUgMTAwNjQ0Cm5ldyBtb2RlIDEwMDc1NQppbmRleCA1NjgzOGNh
MmViZWZjMGMzMWYyYzdhNzJkNWFiNjIwMThkYzc3MzMzLi5hZDUzYTA0ZTVhZWQ2YmJmODBiZTY3
ZTBlNGJmY2ViNDM0YWMzOTIyCi0tLSBhL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2Vu
ZXJhdG9yVjgucG0KKysrIGIvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JW
OC5wbQpAQCAtOTE3LDYgKzkxNywxMCBAQCBFTkQKICAgICAgICAgICAgICAgICAkaW1wbEluY2x1
ZGVzeyJWOEV2ZW50TGlzdGVuZXJMaXN0LmgifSA9IDE7CiAgICAgICAgICAgICAgICAgJGltcGxJ
bmNsdWRlc3siVjhXb3JrZXJDb250ZXh0RXJyb3JIYW5kbGVyLmgifSA9IDE7CiAgICAgICAgICAg
ICAgICAgcHVzaChAaW1wbENvbnRlbnREZWNscywgIiAgICBpbXAtPnNldCRpbXBsU2V0dGVyRnVu
Y3Rpb25OYW1lKFY4RXZlbnRMaXN0ZW5lckxpc3Q6OmZpbmRPckNyZWF0ZVdyYXBwZXI8VjhXb3Jr
ZXJDb250ZXh0RXJyb3JIYW5kbGVyPih2YWx1ZSwgdHJ1ZSkiKTsKKyAgICAgICAgICAgIH0gZWxz
aWYgKCRpbnRlcmZhY2VOYW1lIGVxICJET01XaW5kb3ciIGFuZCAkYXR0cmlidXRlLT5zaWduYXR1
cmUtPm5hbWUgZXEgIm9uZXJyb3IiKSB7CisgICAgICAgICAgICAgICAgJGltcGxJbmNsdWRlc3si
VjhFdmVudExpc3RlbmVyTGlzdC5oIn0gPSAxOworICAgICAgICAgICAgICAgICRpbXBsSW5jbHVk
ZXN7IlY4V2luZG93RXJyb3JIYW5kbGVyLmgifSA9IDE7CisgICAgICAgICAgICAgICAgcHVzaChA
aW1wbENvbnRlbnREZWNscywgIiAgICBpbXAtPnNldCRpbXBsU2V0dGVyRnVuY3Rpb25OYW1lKFY4
RXZlbnRMaXN0ZW5lckxpc3Q6OmZpbmRPckNyZWF0ZVdyYXBwZXI8VjhXaW5kb3dFcnJvckhhbmRs
ZXI+KHZhbHVlLCB0cnVlKSIpOwogICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAg
ICBwdXNoKEBpbXBsQ29udGVudERlY2xzLCAiICAgIGltcC0+c2V0JGltcGxTZXR0ZXJGdW5jdGlv
bk5hbWUoVjhET01XcmFwcGVyOjpnZXRFdmVudExpc3RlbmVyKHZhbHVlLCB0cnVlLCBMaXN0ZW5l
ckZpbmRPckNyZWF0ZSkiKTsKICAgICAgICAgICAgIH0KZGlmZiAtLWdpdCBhL1dlYkNvcmUvYmlu
ZGluZ3MvdjgvVjhDb25zb2xlTWVzc2FnZS5jcHAgYi9XZWJDb3JlL2JpbmRpbmdzL3Y4L1Y4Q29u
c29sZU1lc3NhZ2UuY3BwCmluZGV4IDhiNmJiMTc4NmE4NWM3OWJjZjAyZmRkZTg1NDE2NTE3ZDFk
MWE4NzMuLjIzZmJjNDU3Yzc4OTczZjQyYmZhNGM3NDgwNzE3NWFlNDk4Njg0NTEgMTAwNjQ0Ci0t
LSBhL1dlYkNvcmUvYmluZGluZ3MvdjgvVjhDb25zb2xlTWVzc2FnZS5jcHAKKysrIGIvV2ViQ29y
ZS9iaW5kaW5ncy92OC9WOENvbnNvbGVNZXNzYWdlLmNwcApAQCAtNTMsNyArNTMsNyBAQCBWOENv
bnNvbGVNZXNzYWdlOjpWOENvbnNvbGVNZXNzYWdlKGNvbnN0IFN0cmluZyYgc3RyaW5nLCBjb25z
dCBTdHJpbmcmIHNvdXJjZUlELAogCiB2b2lkIFY4Q29uc29sZU1lc3NhZ2U6OmRpc3BhdGNoTm93
KFBhZ2UqIHBhZ2UpCiB7Ci0gICAgZGlzcGF0Y2hOb3cocGFnZSwgMCk7CisgICAgZGlzcGF0Y2hO
b3cocGFnZSwgMCwgMCk7CiB9CiAKIHZvaWQgVjhDb25zb2xlTWVzc2FnZTo6ZGlzcGF0Y2hMYXRl
cigpCkBAIC0xMjUsMTAgKzEyNSwxMCBAQCB2b2lkIFY4Q29uc29sZU1lc3NhZ2U6OmhhbmRsZXIo
djg6OkhhbmRsZTx2ODo6TWVzc2FnZT4gbWVzc2FnZSwgdjg6OkhhbmRsZTx2ODo6VgogICAgIGJv
b2wgdXNlVVJMID0gcmVzb3VyY2VOYW1lLklzRW1wdHkoKSB8fCAhcmVzb3VyY2VOYW1lLT5Jc1N0
cmluZygpOwogICAgIFN0cmluZyByZXNvdXJjZU5hbWVTdHJpbmcgPSB1c2VVUkwgPyBmcmFtZS0+
ZG9jdW1lbnQoKS0+dXJsKCkgOiB0b1dlYkNvcmVTdHJpbmcocmVzb3VyY2VOYW1lKTsKICAgICBW
OENvbnNvbGVNZXNzYWdlIGNvbnNvbGVNZXNzYWdlKGVycm9yTWVzc2FnZSwgcmVzb3VyY2VOYW1l
U3RyaW5nLCBtZXNzYWdlLT5HZXRMaW5lTnVtYmVyKCkpOwotICAgIGNvbnNvbGVNZXNzYWdlLmRp
c3BhdGNoTm93KHBhZ2UsIGNhbGxTdGFjay5nZXQoKSk7CisgICAgY29uc29sZU1lc3NhZ2UuZGlz
cGF0Y2hOb3cocGFnZSwgZnJhbWUsIGNhbGxTdGFjay5nZXQoKSk7CiB9CiAKLXZvaWQgVjhDb25z
b2xlTWVzc2FnZTo6ZGlzcGF0Y2hOb3coUGFnZSogcGFnZSwgU2NyaXB0Q2FsbFN0YWNrKiBjYWxs
U3RhY2spCit2b2lkIFY4Q29uc29sZU1lc3NhZ2U6OmRpc3BhdGNoTm93KFBhZ2UqIHBhZ2UsIEZy
YW1lKiBmcmFtZSwgU2NyaXB0Q2FsbFN0YWNrKiBjYWxsU3RhY2spCiB7CiAgICAgQVNTRVJUKHBh
Z2UpOwogCkBAIC0xMzYsNiArMTM2LDEyIEBAIHZvaWQgVjhDb25zb2xlTWVzc2FnZTo6ZGlzcGF0
Y2hOb3coUGFnZSogcGFnZSwgU2NyaXB0Q2FsbFN0YWNrKiBjYWxsU3RhY2spCiAgICAgLy8gYXBw
ZWFyIGluIHRoZSByaWdodCBvcmRlciBpbiB0aGUgY29uc29sZS4KICAgICBwcm9jZXNzRGVsYXll
ZCgpOwogCisgICAgaWYgKGZyYW1lKSB7CisgICAgICAgIERvY3VtZW50KiBkb2MgPSBmcmFtZS0+
ZG9jdW1lbnQoKTsKKyAgICAgICAgaWYgKGRvYy0+aW52b2tlT25FcnJvckhhbmRsZXIoZnJhbWUt
PmRvbVdpbmRvdygpLT5vbmVycm9yKCksIG1fc3RyaW5nLCBtX2xpbmVOdW1iZXIsIG1fc291cmNl
SUQpKQorICAgICAgICAgICAgcmV0dXJuOworICAgIH0KKwogICAgIENvbnNvbGUqIGNvbnNvbGUg
PSBwYWdlLT5tYWluRnJhbWUoKS0+ZG9tV2luZG93KCktPmNvbnNvbGUoKTsKICAgICBNZXNzYWdl
VHlwZSBtZXNzYWdlVHlwZSA9IGNhbGxTdGFjayA/IFVuY2F1Z2h0RXhjZXB0aW9uTWVzc2FnZVR5
cGUgOiBMb2dNZXNzYWdlVHlwZTsKICAgICBjb25zb2xlLT5hZGRNZXNzYWdlKEpTTWVzc2FnZVNv
dXJjZSwgbWVzc2FnZVR5cGUsIEVycm9yTWVzc2FnZUxldmVsLCBtX3N0cmluZywgbV9saW5lTnVt
YmVyLCBtX3NvdXJjZUlELCBjYWxsU3RhY2spOwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9iaW5kaW5n
cy92OC9WOENvbnNvbGVNZXNzYWdlLmggYi9XZWJDb3JlL2JpbmRpbmdzL3Y4L1Y4Q29uc29sZU1l
c3NhZ2UuaAppbmRleCAzODdiNWVlMzRiNTY4ZTY4M2Y0Y2U3ZWVhZWYxNGMyNmIxNTY3ZTUzLi5k
Zjk3MjI3Yjg2OTE1NmYzNDU1MjM2ZjBhNjg5NjA5MTVhNjYzNmE0IDEwMDY0NAotLS0gYS9XZWJD
b3JlL2JpbmRpbmdzL3Y4L1Y4Q29uc29sZU1lc3NhZ2UuaAorKysgYi9XZWJDb3JlL2JpbmRpbmdz
L3Y4L1Y4Q29uc29sZU1lc3NhZ2UuaApAQCAtMzcsNTYgKzM3LDU3IEBACiAKIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKIAotICAgIGNsYXNzIFBhZ2U7Ci0gICAgY2xhc3MgU2NyaXB0Q2FsbFN0YWNrOwor
Y2xhc3MgRnJhbWU7CitjbGFzcyBQYWdlOworY2xhc3MgU2NyaXB0Q2FsbFN0YWNrOwogCi0gICAg
Ly8gVjhDb25zb2xlTWVzc2FnZSBlbmNhcHN1bGF0ZXMgZXZlcnl0aGluZyBuZWVkZWQgdG8KLSAg
ICAvLyBsb2cgbWVzc2FnZXMgb3JpZ2luYXRpbmcgZnJvbSBKYXZhU2NyaXB0IHRvIHRoZSBjb25z
b2xlLgotICAgIGNsYXNzIFY4Q29uc29sZU1lc3NhZ2UgewotICAgIHB1YmxpYzoKLSAgICAgICAg
VjhDb25zb2xlTWVzc2FnZShjb25zdCBTdHJpbmcmIHN0cmluZywgY29uc3QgU3RyaW5nJiBzb3Vy
Y2VJRCwgdW5zaWduZWQgbGluZU51bWJlcik7CisvLyBWOENvbnNvbGVNZXNzYWdlIGVuY2Fwc3Vs
YXRlcyBldmVyeXRoaW5nIG5lZWRlZCB0bworLy8gbG9nIG1lc3NhZ2VzIG9yaWdpbmF0aW5nIGZy
b20gSmF2YVNjcmlwdCB0byB0aGUgY29uc29sZS4KK2NsYXNzIFY4Q29uc29sZU1lc3NhZ2Ugewor
cHVibGljOgorICAgIFY4Q29uc29sZU1lc3NhZ2UoY29uc3QgU3RyaW5nJiBzdHJpbmcsIGNvbnN0
IFN0cmluZyYgc291cmNlSUQsIHVuc2lnbmVkIGxpbmVOdW1iZXIpOwogCi0gICAgICAgIC8vIEFk
ZCBhIG1lc3NhZ2UgdG8gdGhlIGNvbnNvbGUuIE1heSBlbmQgdXAgY2FsbGluZyBKYXZhU2NyaXB0
IGNvZGUKLSAgICAgICAgLy8gaW5kaXJlY3RseSB0aHJvdWdoIHRoZSBpbnNwZWN0b3Igc28gb25s
eSBjYWxsIHRoaXMgZnVuY3Rpb24gd2hlbgotICAgICAgICAvLyBpdCBpcyBzYWZlIHRvIGRvIGFs
bG9jYXRpb25zLgotICAgICAgICB2b2lkIGRpc3BhdGNoTm93KFBhZ2UqKTsKKyAgICAvLyBBZGQg
YSBtZXNzYWdlIHRvIHRoZSBjb25zb2xlLiBNYXkgZW5kIHVwIGNhbGxpbmcgSmF2YVNjcmlwdCBj
b2RlCisgICAgLy8gaW5kaXJlY3RseSB0aHJvdWdoIHRoZSBpbnNwZWN0b3Igc28gb25seSBjYWxs
IHRoaXMgZnVuY3Rpb24gd2hlbgorICAgIC8vIGl0IGlzIHNhZmUgdG8gZG8gYWxsb2NhdGlvbnMu
CisgICAgdm9pZCBkaXNwYXRjaE5vdyhQYWdlKik7CiAKLSAgICAgICAgLy8gQWRkIGEgbWVzc2Fn
ZSB0byB0aGUgY29uc29sZSBidXQgZGVsYXkgdGhlIHJlcG9ydGluZyB1bnRpbCBpdAotICAgICAg
ICAvLyBpcyBzYWZlIHRvIGRvIHNvOiBFaXRoZXIgd2hlbiB3ZSBsZWF2ZSBKYXZhU2NyaXB0IGV4
ZWN1dGlvbiBvcgotICAgICAgICAvLyB3aGVuIGFkZGluZyBvdGhlciBjb25zb2xlIG1lc3NhZ2Vz
LiBUaGUgcHJpbWFyeSBwdXJwb3NlIG9mIHRoaXMKLSAgICAgICAgLy8gbWV0aG9kIGlzIHRvIGF2
b2lkIGNhbGxpbmcgaW50byBWOCB0byBoYW5kbGUgY29uc29sZSBtZXNzYWdlcwotICAgICAgICAv
LyB3aGVuIHRoZSBWTSBpcyBpbiBhIHN0YXRlIHRoYXQgZG9lcyBub3Qgc3VwcG9ydCBHQ3Mgb3Ig
YWxsb2NhdGlvbnMuCi0gICAgICAgIC8vIERlbGF5ZWQgbWVzc2FnZXMgYXJlIGFsd2F5cyByZXBv
cnRlZCBpbiB0aGUgcGFnZSBjb3JyZXNwb25kaW5nCi0gICAgICAgIC8vIHRvIHRoZSBhY3RpdmUg
Y29udGV4dC4KLSAgICAgICAgdm9pZCBkaXNwYXRjaExhdGVyKCk7CisgICAgLy8gQWRkIGEgbWVz
c2FnZSB0byB0aGUgY29uc29sZSBidXQgZGVsYXkgdGhlIHJlcG9ydGluZyB1bnRpbCBpdAorICAg
IC8vIGlzIHNhZmUgdG8gZG8gc286IEVpdGhlciB3aGVuIHdlIGxlYXZlIEphdmFTY3JpcHQgZXhl
Y3V0aW9uIG9yCisgICAgLy8gd2hlbiBhZGRpbmcgb3RoZXIgY29uc29sZSBtZXNzYWdlcy4gVGhl
IHByaW1hcnkgcHVycG9zZSBvZiB0aGlzCisgICAgLy8gbWV0aG9kIGlzIHRvIGF2b2lkIGNhbGxp
bmcgaW50byBWOCB0byBoYW5kbGUgY29uc29sZSBtZXNzYWdlcworICAgIC8vIHdoZW4gdGhlIFZN
IGlzIGluIGEgc3RhdGUgdGhhdCBkb2VzIG5vdCBzdXBwb3J0IEdDcyBvciBhbGxvY2F0aW9ucy4K
KyAgICAvLyBEZWxheWVkIG1lc3NhZ2VzIGFyZSBhbHdheXMgcmVwb3J0ZWQgaW4gdGhlIHBhZ2Ug
Y29ycmVzcG9uZGluZworICAgIC8vIHRvIHRoZSBhY3RpdmUgY29udGV4dC4KKyAgICB2b2lkIGRp
c3BhdGNoTGF0ZXIoKTsKIAotICAgICAgICAvLyBQcm9jZXNzIGFueSBkZWxheWVkIG1lc3NhZ2Vz
LiBNYXkgZW5kIHVwIGNhbGxpbmcgSmF2YVNjcmlwdCBjb2RlCi0gICAgICAgIC8vIGluZGlyZWN0
bHkgdGhyb3VnaCB0aGUgaW5zcGVjdG9yIHNvIG9ubHkgY2FsbCB0aGlzIGZ1bmN0aW9uIHdoZW4K
LSAgICAgICAgLy8gaXQgaXMgc2FmZSB0byBkbyBhbGxvY2F0aW9ucy4KLSAgICAgICAgc3RhdGlj
IHZvaWQgcHJvY2Vzc0RlbGF5ZWQoKTsKKyAgICAvLyBQcm9jZXNzIGFueSBkZWxheWVkIG1lc3Nh
Z2VzLiBNYXkgZW5kIHVwIGNhbGxpbmcgSmF2YVNjcmlwdCBjb2RlCisgICAgLy8gaW5kaXJlY3Rs
eSB0aHJvdWdoIHRoZSBpbnNwZWN0b3Igc28gb25seSBjYWxsIHRoaXMgZnVuY3Rpb24gd2hlbgor
ICAgIC8vIGl0IGlzIHNhZmUgdG8gZG8gYWxsb2NhdGlvbnMuCisgICAgc3RhdGljIHZvaWQgcHJv
Y2Vzc0RlbGF5ZWQoKTsKIAotICAgICAgICAvLyBDb252ZW5pZW5jZSBjbGFzcyBmb3IgZW5zdXJp
bmcgdGhhdCBkZWxheWVkIG1lc3NhZ2VzIGluIHRoZQotICAgICAgICAvLyBDb25zb2xlTWVzc2Fn
ZU1hbmFnZXIgYXJlIHByb2Nlc3NlZCBxdWlja2x5LgotICAgICAgICBjbGFzcyBTY29wZSB7Ci0g
ICAgICAgIHB1YmxpYzoKLSAgICAgICAgICAgIFNjb3BlKCkgeyBWOENvbnNvbGVNZXNzYWdlOjpw
cm9jZXNzRGVsYXllZCgpOyB9Ci0gICAgICAgICAgICB+U2NvcGUoKSB7IFY4Q29uc29sZU1lc3Nh
Z2U6OnByb2Nlc3NEZWxheWVkKCk7IH0KLSAgICAgICAgfTsKKyAgICAvLyBDb252ZW5pZW5jZSBj
bGFzcyBmb3IgZW5zdXJpbmcgdGhhdCBkZWxheWVkIG1lc3NhZ2VzIGluIHRoZQorICAgIC8vIENv
bnNvbGVNZXNzYWdlTWFuYWdlciBhcmUgcHJvY2Vzc2VkIHF1aWNrbHkuCisgICAgY2xhc3MgU2Nv
cGUgeworICAgIHB1YmxpYzoKKyAgICAgICAgU2NvcGUoKSB7IFY4Q29uc29sZU1lc3NhZ2U6OnBy
b2Nlc3NEZWxheWVkKCk7IH0KKyAgICAgICAgflNjb3BlKCkgeyBWOENvbnNvbGVNZXNzYWdlOjpw
cm9jZXNzRGVsYXllZCgpOyB9CisgICAgfTsKIAotICAgICAgICAvLyBDYWxsYmFjayBmcm9tIFY4
LgotICAgICAgICBzdGF0aWMgdm9pZCBoYW5kbGVyKHY4OjpIYW5kbGU8djg6Ok1lc3NhZ2U+LCB2
ODo6SGFuZGxlPHY4OjpWYWx1ZT4gZGF0YSk7CisgICAgLy8gQ2FsbGJhY2sgZnJvbSBWOC4KKyAg
ICBzdGF0aWMgdm9pZCBoYW5kbGVyKHY4OjpIYW5kbGU8djg6Ok1lc3NhZ2U+LCB2ODo6SGFuZGxl
PHY4OjpWYWx1ZT4gZGF0YSk7CiAKLSAgICBwcml2YXRlOgotICAgICAgICBjb25zdCBTdHJpbmcg
bV9zdHJpbmc7Ci0gICAgICAgIGNvbnN0IFN0cmluZyBtX3NvdXJjZUlEOwotICAgICAgICBjb25z
dCB1bnNpZ25lZCBtX2xpbmVOdW1iZXI7Citwcml2YXRlOgorICAgIGNvbnN0IFN0cmluZyBtX3N0
cmluZzsKKyAgICBjb25zdCBTdHJpbmcgbV9zb3VyY2VJRDsKKyAgICBjb25zdCB1bnNpZ25lZCBt
X2xpbmVOdW1iZXI7CiAKLSAgICAgICAgdm9pZCBkaXNwYXRjaE5vdyhQYWdlKiwgU2NyaXB0Q2Fs
bFN0YWNrKik7CisgICAgdm9pZCBkaXNwYXRjaE5vdyhQYWdlKiwgRnJhbWUqLCBTY3JpcHRDYWxs
U3RhY2sqKTsKIAotICAgICAgICAvLyBBbGwgZGVsYXllZCBtZXNzYWdlcyBhcmUgc3RvcmVkIGlu
IHRoaXMgdmVjdG9yLiBJZiB0aGUgdmVjdG9yCi0gICAgICAgIC8vIGlzIDAsIHRoZXJlIGFyZSBu
byBkZWxheWVkIG1lc3NhZ2VzLgotICAgICAgICBzdGF0aWMgVmVjdG9yPFY4Q29uc29sZU1lc3Nh
Z2U+KiBtX2RlbGF5ZWRNZXNzYWdlczsKLSAgICB9OworICAgIC8vIEFsbCBkZWxheWVkIG1lc3Nh
Z2VzIGFyZSBzdG9yZWQgaW4gdGhpcyB2ZWN0b3IuIElmIHRoZSB2ZWN0b3IKKyAgICAvLyBpcyAw
LCB0aGVyZSBhcmUgbm8gZGVsYXllZCBtZXNzYWdlcy4KKyAgICBzdGF0aWMgVmVjdG9yPFY4Q29u
c29sZU1lc3NhZ2U+KiBtX2RlbGF5ZWRNZXNzYWdlczsKK307CiAKIH0gLy8gbmFtZXNwYWNlIFdl
YkNvcmUKIApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1dvcmtlckNvbnRleHRF
cnJvckhhbmRsZXIuaCBiL1dlYkNvcmUvYmluZGluZ3MvdjgvVjhXaW5kb3dFcnJvckhhbmRsZXIu
Y3BwCm9sZCBtb2RlIDEwMDY0NApuZXcgbW9kZSAxMDA3NTUKc2ltaWxhcml0eSBpbmRleCA1NiUK
Y29weSBmcm9tIFdlYkNvcmUvYmluZGluZ3MvanMvSlNXb3JrZXJDb250ZXh0RXJyb3JIYW5kbGVy
LmgKY29weSB0byBXZWJDb3JlL2JpbmRpbmdzL3Y4L1Y4V2luZG93RXJyb3JIYW5kbGVyLmNwcApp
bmRleCBhMTg4Mjk5MDM4YzljZGZlNzIyODZiNzFmZWFlYjNhNDljMmEwZDgxLi5jZjY2YmZhMTA5
MWQ1MWFlOTBmNjg5YTEyNDdjZDg5MTU5Nzk2M2M0Ci0tLSBhL1dlYkNvcmUvYmluZGluZ3MvanMv
SlNXb3JrZXJDb250ZXh0RXJyb3JIYW5kbGVyLmgKKysrIGIvV2ViQ29yZS9iaW5kaW5ncy92OC9W
OFdpbmRvd0Vycm9ySGFuZGxlci5jcHAKQEAgLTI4LDM3ICsyOCwzNSBAQAogICogT0YgVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4KICAqLwogCi0jaWZuZGVmIEpTV29ya2VyQ29udGV4dEVycm9ySGFuZGxlcl9oCi0jZGVmaW5l
IEpTV29ya2VyQ29udGV4dEVycm9ySGFuZGxlcl9oCisjaW5jbHVkZSAiY29uZmlnLmgiCiAKLSNp
bmNsdWRlICJKU0V2ZW50TGlzdGVuZXIuaCIKKyNpbmNsdWRlICJWOFdpbmRvd0Vycm9ySGFuZGxl
ci5oIgogCi1uYW1lc3BhY2UgV2ViQ29yZSB7Ci0KLWNsYXNzIEpTV29ya2VyQ29udGV4dEVycm9y
SGFuZGxlciA6IHB1YmxpYyBKU0V2ZW50TGlzdGVuZXIgewotcHVibGljOgotICAgIHN0YXRpYyBQ
YXNzUmVmUHRyPEpTV29ya2VyQ29udGV4dEVycm9ySGFuZGxlcj4gY3JlYXRlKEpTQzo6SlNPYmpl
Y3QqIGxpc3RlbmVyLCBKU0M6OkpTT2JqZWN0KiB3cmFwcGVyLCBib29sIGlzQXR0cmlidXRlLCBE
T01XcmFwcGVyV29ybGQqIGlzb2xhdGVkV29ybGQpCi0gICAgewotICAgICAgICByZXR1cm4gYWRv
cHRSZWYobmV3IEpTV29ya2VyQ29udGV4dEVycm9ySGFuZGxlcihsaXN0ZW5lciwgd3JhcHBlciwg
aXNBdHRyaWJ1dGUsIGlzb2xhdGVkV29ybGQpKTsKLSAgICB9CisjaW5jbHVkZSAiRXJyb3JFdmVu
dC5oIgorI2luY2x1ZGUgIlY4QmluZGluZy5oIgogCi0gICAgdmlydHVhbCB+SlNXb3JrZXJDb250
ZXh0RXJyb3JIYW5kbGVyKCk7Ci0KLXByaXZhdGU6Ci0gICAgSlNXb3JrZXJDb250ZXh0RXJyb3JI
YW5kbGVyKEpTQzo6SlNPYmplY3QqIGZ1bmN0aW9uLCBKU0M6OkpTT2JqZWN0KiB3cmFwcGVyLCBi
b29sIGlzQXR0cmlidXRlLCBET01XcmFwcGVyV29ybGQqIGlzb2xhdGVkV29ybGQpOwotICAgIHZp
cnR1YWwgdm9pZCBoYW5kbGVFdmVudChTY3JpcHRFeGVjdXRpb25Db250ZXh0KiwgRXZlbnQqKTsK
LX07CituYW1lc3BhY2UgV2ViQ29yZSB7CiAKLS8vIENyZWF0ZXMgYSBKUyBFdmVudExpc3RlbmVy
IGZvciAib25lcnJvciIgZXZlbnQgaGFuZGxlciBpbiB3b3JrZXIgY29udGV4dC4gSXQgaGFzIGN1
c3RvbSBpbXBsZW1lbnRhdGlvbiBiZWNhdXNlCi0vLyB1bmxpa2Ugb3RoZXIgZXZlbnQgbGlzdGVu
ZXJzIGl0IGFjY2VwdHMgdGhyZWUgcGFyYW1ldGVycy4KLWlubGluZSBQYXNzUmVmUHRyPEpTV29y
a2VyQ29udGV4dEVycm9ySGFuZGxlcj4gY3JlYXRlSlNXb3JrZXJDb250ZXh0RXJyb3JIYW5kbGVy
KEpTQzo6RXhlY1N0YXRlKiBleGVjLCBKU0M6OkpTVmFsdWUgbGlzdGVuZXIsIEpTQzo6SlNPYmpl
Y3QqIHdyYXBwZXIpCitWOFdpbmRvd0Vycm9ySGFuZGxlcjo6VjhXaW5kb3dFcnJvckhhbmRsZXIo
djg6OkxvY2FsPHY4OjpPYmplY3Q+IGxpc3RlbmVyLCBib29sIGlzSW5saW5lLCBjb25zdCBXb3Js
ZENvbnRleHRIYW5kbGUmIHdvcmxkQ29udGV4dCkKKyAgICA6IFY4RXZlbnRMaXN0ZW5lcihsaXN0
ZW5lciwgaXNJbmxpbmUsIHdvcmxkQ29udGV4dCkKIHsKLSAgICBpZiAoIWxpc3RlbmVyLmlzT2Jq
ZWN0KCkpCi0gICAgICAgIHJldHVybiAwOworfQogCi0gICAgcmV0dXJuIEpTV29ya2VyQ29udGV4
dEVycm9ySGFuZGxlcjo6Y3JlYXRlKGFzT2JqZWN0KGxpc3RlbmVyKSwgd3JhcHBlciwgdHJ1ZSwg
Y3VycmVudFdvcmxkKGV4ZWMpKTsKK3Y4OjpMb2NhbDx2ODo6VmFsdWU+IFY4V2luZG93RXJyb3JI
YW5kbGVyOjpjYWxsTGlzdGVuZXJGdW5jdGlvbihTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250
ZXh0LCB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4ganNFdmVudCwgRXZlbnQqIGV2ZW50KQoreworICAg
IEFTU0VSVChldmVudC0+aXNFcnJvckV2ZW50KCkpOworICAgIHY4OjpMb2NhbDx2ODo6T2JqZWN0
PiBsaXN0ZW5lciA9IGdldExpc3RlbmVyT2JqZWN0KGNvbnRleHQpOworICAgIHY4OjpMb2NhbDx2
ODo6VmFsdWU+IHJldHVyblZhbHVlOworICAgIGlmICghbGlzdGVuZXIuSXNFbXB0eSgpICYmIGxp
c3RlbmVyLT5Jc0Z1bmN0aW9uKCkpIHsKKyAgICAgICAgRXJyb3JFdmVudCogZXJyb3JFdmVudCA9
IHN0YXRpY19jYXN0PEVycm9yRXZlbnQqPihldmVudCk7CisgICAgICAgIHY4OjpMb2NhbDx2ODo6
RnVuY3Rpb24+IGNhbGxGdW5jdGlvbiA9IHY4OjpMb2NhbDx2ODo6RnVuY3Rpb24+OjpDYXN0KGxp
c3RlbmVyKTsKKyAgICAgICAgdjg6OkxvY2FsPHY4OjpPYmplY3Q+IHRoaXNWYWx1ZSA9IHY4OjpD
b250ZXh0OjpHZXRDdXJyZW50KCktPkdsb2JhbCgpOworICAgICAgICB2ODo6SGFuZGxlPHY4OjpW
YWx1ZT4gcGFyYW1ldGVyc1szXSA9IHsgdjhTdHJpbmcoZXJyb3JFdmVudC0+bWVzc2FnZSgpKSwg
djhTdHJpbmcoZXJyb3JFdmVudC0+ZmlsZW5hbWUoKSksIHY4OjpJbnRlZ2VyOjpOZXcoZXJyb3JF
dmVudC0+bGluZW5vKCkpIH07CisgICAgICAgIHJldHVyblZhbHVlID0gY2FsbEZ1bmN0aW9uLT5D
YWxsKHRoaXNWYWx1ZSwgMywgcGFyYW1ldGVycyk7CisgICAgICAgIGlmICghcmV0dXJuVmFsdWUu
SXNFbXB0eSgpICYmIHJldHVyblZhbHVlLT5Jc0Jvb2xlYW4oKSAmJiAhcmV0dXJuVmFsdWUtPkJv
b2xlYW5WYWx1ZSgpKQorICAgICAgICAgICAgZXZlbnQtPnByZXZlbnREZWZhdWx0KCk7CisgICAg
fQorICAgIHJldHVybiByZXR1cm5WYWx1ZTsKIH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQot
Ci0jZW5kaWYgLy8gSlNXb3JrZXJDb250ZXh0RXJyb3JIYW5kbGVyX2gKZGlmZiAtLWdpdCBhL1dl
YkNvcmUvYmluZGluZ3MvanMvSlNXb3JrZXJDb250ZXh0RXJyb3JIYW5kbGVyLmggYi9XZWJDb3Jl
L2JpbmRpbmdzL3Y4L1Y4V2luZG93RXJyb3JIYW5kbGVyLmgKb2xkIG1vZGUgMTAwNjQ0Cm5ldyBt
b2RlIDEwMDc1NQpzaW1pbGFyaXR5IGluZGV4IDU4JQpyZW5hbWUgZnJvbSBXZWJDb3JlL2JpbmRp
bmdzL2pzL0pTV29ya2VyQ29udGV4dEVycm9ySGFuZGxlci5oCnJlbmFtZSB0byBXZWJDb3JlL2Jp
bmRpbmdzL3Y4L1Y4V2luZG93RXJyb3JIYW5kbGVyLmgKaW5kZXggYTE4ODI5OTAzOGM5Y2RmZTcy
Mjg2YjcxZmVhZWIzYTQ5YzJhMGQ4MS4uMTY3Y2EwZDdkZjQ4NjFlMTE0ZjNhMmQ2NjMzYTc0MjEw
YmY2OGY5YwotLS0gYS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTV29ya2VyQ29udGV4dEVycm9ySGFu
ZGxlci5oCisrKyBiL1dlYkNvcmUvYmluZGluZ3MvdjgvVjhXaW5kb3dFcnJvckhhbmRsZXIuaApA
QCAtMjgsMzcgKzI4LDI4IEBACiAgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgogICovCiAKLSNpZm5kZWYgSlNXb3Jr
ZXJDb250ZXh0RXJyb3JIYW5kbGVyX2gKLSNkZWZpbmUgSlNXb3JrZXJDb250ZXh0RXJyb3JIYW5k
bGVyX2gKKyNpZm5kZWYgVjhXaW5kb3dFcnJvckhhbmRsZXJfaAorI2RlZmluZSBWOFdpbmRvd0Vy
cm9ySGFuZGxlcl9oCiAKLSNpbmNsdWRlICJKU0V2ZW50TGlzdGVuZXIuaCIKKyNpbmNsdWRlICJW
OEN1c3RvbUV2ZW50TGlzdGVuZXIuaCIKKyNpbmNsdWRlIDx2OC5oPgorI2luY2x1ZGUgPHd0Zi9Q
YXNzUmVmUHRyLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotY2xhc3MgSlNXb3JrZXJDb250
ZXh0RXJyb3JIYW5kbGVyIDogcHVibGljIEpTRXZlbnRMaXN0ZW5lciB7CitjbGFzcyBWOFdpbmRv
d0Vycm9ySGFuZGxlciA6IHB1YmxpYyBWOEV2ZW50TGlzdGVuZXIgewogcHVibGljOgotICAgIHN0
YXRpYyBQYXNzUmVmUHRyPEpTV29ya2VyQ29udGV4dEVycm9ySGFuZGxlcj4gY3JlYXRlKEpTQzo6
SlNPYmplY3QqIGxpc3RlbmVyLCBKU0M6OkpTT2JqZWN0KiB3cmFwcGVyLCBib29sIGlzQXR0cmli
dXRlLCBET01XcmFwcGVyV29ybGQqIGlzb2xhdGVkV29ybGQpCisgICAgc3RhdGljIFBhc3NSZWZQ
dHI8VjhXaW5kb3dFcnJvckhhbmRsZXI+IGNyZWF0ZSh2ODo6TG9jYWw8djg6Ok9iamVjdD4gbGlz
dGVuZXIsIGJvb2wgaXNJbmxpbmUsIGNvbnN0IFdvcmxkQ29udGV4dEhhbmRsZSYgd29ybGRDb250
ZXh0KQogICAgIHsKLSAgICAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBKU1dvcmtlckNvbnRleHRF
cnJvckhhbmRsZXIobGlzdGVuZXIsIHdyYXBwZXIsIGlzQXR0cmlidXRlLCBpc29sYXRlZFdvcmxk
KSk7CisgICAgICAgIHJldHVybiBhZG9wdFJlZihuZXcgVjhXaW5kb3dFcnJvckhhbmRsZXIobGlz
dGVuZXIsIGlzSW5saW5lLCB3b3JsZENvbnRleHQpKTsKICAgICB9CiAKLSAgICB2aXJ0dWFsIH5K
U1dvcmtlckNvbnRleHRFcnJvckhhbmRsZXIoKTsKLQogcHJpdmF0ZToKLSAgICBKU1dvcmtlckNv
bnRleHRFcnJvckhhbmRsZXIoSlNDOjpKU09iamVjdCogZnVuY3Rpb24sIEpTQzo6SlNPYmplY3Qq
IHdyYXBwZXIsIGJvb2wgaXNBdHRyaWJ1dGUsIERPTVdyYXBwZXJXb3JsZCogaXNvbGF0ZWRXb3Js
ZCk7Ci0gICAgdmlydHVhbCB2b2lkIGhhbmRsZUV2ZW50KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQq
LCBFdmVudCopOwotfTsKKyAgICBWOFdpbmRvd0Vycm9ySGFuZGxlcih2ODo6TG9jYWw8djg6Ok9i
amVjdD4gbGlzdGVuZXIsIGJvb2wgaXNJbmxpbmUsIGNvbnN0IFdvcmxkQ29udGV4dEhhbmRsZSYg
d29ybGRDb250ZXh0KTsKIAotLy8gQ3JlYXRlcyBhIEpTIEV2ZW50TGlzdGVuZXIgZm9yICJvbmVy
cm9yIiBldmVudCBoYW5kbGVyIGluIHdvcmtlciBjb250ZXh0LiBJdCBoYXMgY3VzdG9tIGltcGxl
bWVudGF0aW9uIGJlY2F1c2UKLS8vIHVubGlrZSBvdGhlciBldmVudCBsaXN0ZW5lcnMgaXQgYWNj
ZXB0cyB0aHJlZSBwYXJhbWV0ZXJzLgotaW5saW5lIFBhc3NSZWZQdHI8SlNXb3JrZXJDb250ZXh0
RXJyb3JIYW5kbGVyPiBjcmVhdGVKU1dvcmtlckNvbnRleHRFcnJvckhhbmRsZXIoSlNDOjpFeGVj
U3RhdGUqIGV4ZWMsIEpTQzo6SlNWYWx1ZSBsaXN0ZW5lciwgSlNDOjpKU09iamVjdCogd3JhcHBl
cikKLXsKLSAgICBpZiAoIWxpc3RlbmVyLmlzT2JqZWN0KCkpCi0gICAgICAgIHJldHVybiAwOwot
Ci0gICAgcmV0dXJuIEpTV29ya2VyQ29udGV4dEVycm9ySGFuZGxlcjo6Y3JlYXRlKGFzT2JqZWN0
KGxpc3RlbmVyKSwgd3JhcHBlciwgdHJ1ZSwgY3VycmVudFdvcmxkKGV4ZWMpKTsKLX0KKyAgICB2
aXJ0dWFsIHY4OjpMb2NhbDx2ODo6VmFsdWU+IGNhbGxMaXN0ZW5lckZ1bmN0aW9uKFNjcmlwdEV4
ZWN1dGlvbkNvbnRleHQqLCB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4ganNFdmVudCwgRXZlbnQqKTsK
K307CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAotI2VuZGlmIC8vIEpTV29ya2VyQ29udGV4
dEVycm9ySGFuZGxlcl9oCisjZW5kaWYgLy8gVjhXaW5kb3dFcnJvckhhbmRsZXJfaApkaWZmIC0t
Z2l0IGEvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwIGIvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3Bw
CmluZGV4IGU3NWFjNmEwOGE2YjNlZGExMzQ4YjRhOGYxN2NkM2U0MDJjNTZkNDUuLjQwYmYxNTk4
MzhiMDVkZmJiMjg2OWYxMTljYjJkZGI1NzJmZmRhYzQgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvZG9t
L0RvY3VtZW50LmNwcAorKysgYi9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKQEAgLTQwNSw2ICs0
MDUsNyBAQCBEb2N1bWVudDo6RG9jdW1lbnQoRnJhbWUqIGZyYW1lLCBjb25zdCBLVVJMJiB1cmws
IGJvb2wgaXNYSFRNTCwgYm9vbCBpc0hUTUwpCiAjZW5kaWYKICAgICAsIG1fd2Vha1JlZmVyZW5j
ZShEb2N1bWVudFdlYWtSZWZlcmVuY2U6OmNyZWF0ZSh0aGlzKSkKICAgICAsIG1faWRBdHRyaWJ1
dGVOYW1lKGlkQXR0cikKKyAgICAsIG1fcmVwb3J0aW5nRXhjZXB0aW9uKGZhbHNlKQogewogICAg
IG1fZG9jdW1lbnQgPSB0aGlzOwogCkBAIC00NDQzLDYgKzQ0NDQsMTIgQEAgdm9pZCBEb2N1bWVu
dDo6cGFyc2VETlNQcmVmZXRjaENvbnRyb2xIZWFkZXIoY29uc3QgU3RyaW5nJiBkbnNQcmVmZXRj
aENvbnRyb2wpCiAKIHZvaWQgRG9jdW1lbnQ6OnJlcG9ydEV4Y2VwdGlvbihjb25zdCBTdHJpbmcm
IGVycm9yTWVzc2FnZSwgaW50IGxpbmVOdW1iZXIsIGNvbnN0IFN0cmluZyYgc291cmNlVVJMKQog
eworICAgIGlmIChET01XaW5kb3cqIGRvbVdpbmRvdyA9IHRoaXMtPmRvbVdpbmRvdygpKSB7Cisg
ICAgICAgIC8vIEludm9rZSB3aW5kb3cub25lcnJvci4KKyAgICAgICAgaWYgKGludm9rZU9uRXJy
b3JIYW5kbGVyKGRvbVdpbmRvdy0+b25lcnJvcigpLCBlcnJvck1lc3NhZ2UsIGxpbmVOdW1iZXIs
IHNvdXJjZVVSTCkpCisgICAgICAgICAgICByZXR1cm47CisgICAgfQorCiAgICAgYWRkTWVzc2Fn
ZShKU01lc3NhZ2VTb3VyY2UsIExvZ01lc3NhZ2VUeXBlLCBFcnJvck1lc3NhZ2VMZXZlbCwgZXJy
b3JNZXNzYWdlLCBsaW5lTnVtYmVyLCBzb3VyY2VVUkwpOwogfQogCmRpZmYgLS1naXQgYS9XZWJD
b3JlL2RvbS9Eb2N1bWVudC5oIGIvV2ViQ29yZS9kb20vRG9jdW1lbnQuaAppbmRleCA2NWVmMTNm
ZmRkY2I1N2I3N2M1NzlhNDZhNTg0ZmZlMjQ3ZjI0YTNlLi4yNTA4ZjE0MTNjMDQ3YWEwOGI2ZDU5
NTBkY2VjYjYyMDM5NjRkYTBjIDEwMDY0NAotLS0gYS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oCisr
KyBiL1dlYkNvcmUvZG9tL0RvY3VtZW50LmgKQEAgLTEyODMsNiArMTI4Myw4IEBAIHByaXZhdGU6
CiAgICAgSGFzaFNldDxNZWRpYUNhblN0YXJ0TGlzdGVuZXIqPiBtX21lZGlhQ2FuU3RhcnRMaXN0
ZW5lcnM7CiAKICAgICBRdWFsaWZpZWROYW1lIG1faWRBdHRyaWJ1dGVOYW1lOworCisgICAgYm9v
bCBtX3JlcG9ydGluZ0V4Y2VwdGlvbjsKIH07CiAKIGlubGluZSBib29sIERvY3VtZW50OjpoYXNF
bGVtZW50V2l0aElkKEF0b21pY1N0cmluZ0ltcGwqIGlkKSBjb25zdApkaWZmIC0tZ2l0IGEvV2Vi
Q29yZS9kb20vU2NyaXB0RXhlY3V0aW9uQ29udGV4dC5jcHAgYi9XZWJDb3JlL2RvbS9TY3JpcHRF
eGVjdXRpb25Db250ZXh0LmNwcAppbmRleCBkMDE0ZDQ3YjQyZGI1MTViZTUzYzcxMGUzOWVkYzhi
ZjkwYjQwNjMxLi5mYzhjMzEyZGQ1ODBhNDljYWNkOGNjNWFlOThlZmIyNGYwNDllNDNkIDEwMDY0
NAotLS0gYS9XZWJDb3JlL2RvbS9TY3JpcHRFeGVjdXRpb25Db250ZXh0LmNwcAorKysgYi9XZWJD
b3JlL2RvbS9TY3JpcHRFeGVjdXRpb25Db250ZXh0LmNwcApAQCAtMzMsNiArMzMsOCBAQAogI2lu
Y2x1ZGUgIkRhdGFiYXNlLmgiCiAjaW5jbHVkZSAiRGF0YWJhc2VUYXNrLmgiCiAjaW5jbHVkZSAi
RGF0YWJhc2VUaHJlYWQuaCIKKyNpbmNsdWRlICJFcnJvckV2ZW50LmgiCisjaW5jbHVkZSAiRXZl
bnRMaXN0ZW5lci5oIgogI2luY2x1ZGUgIkZpbGVUaHJlYWQuaCIKICNpbmNsdWRlICJNZXNzYWdl
UG9ydC5oIgogI2luY2x1ZGUgIlNlY3VyaXR5T3JpZ2luLmgiCkBAIC02NSw2ICs2Nyw3IEBAIFNj
cmlwdEV4ZWN1dGlvbkNvbnRleHQ6OlNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKQogI2lmIEVOQUJM
RShEQVRBQkFTRSkKICAgICA6IG1faGFzT3BlbkRhdGFiYXNlcyhmYWxzZSkKICNlbmRpZgorICAg
ICwgbV9pbkVycm9ySGFuZGxlcihmYWxzZSkKIHsKIH0KIApAQCAtMjU4LDYgKzI2MSwxOSBAQCB2
b2lkIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQ6OnNldFNlY3VyaXR5T3JpZ2luKFBhc3NSZWZQdHI8
U2VjdXJpdHlPcmlnaW4+IHNlY3VyaQogICAgIG1fc2VjdXJpdHlPcmlnaW4gPSBzZWN1cml0eU9y
aWdpbjsKIH0KIAorYm9vbCBTY3JpcHRFeGVjdXRpb25Db250ZXh0OjppbnZva2VPbkVycm9ySGFu
ZGxlcihFdmVudExpc3RlbmVyKiBvbmVycm9yLCBjb25zdCBTdHJpbmcmIGVycm9yTWVzc2FnZSwg
aW50IGxpbmVOdW1iZXIsIGNvbnN0IFN0cmluZyYgc291cmNlVVJMKQoreworICAgIGlmICghb25l
cnJvcikKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIGlmIChtX2luRXJyb3JIYW5kbGVyKQor
ICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgbV9pbkVycm9ySGFuZGxlciA9IHRydWU7CisgICAg
UmVmUHRyPEVycm9yRXZlbnQ+IGVycm9yRXZlbnQoRXJyb3JFdmVudDo6Y3JlYXRlKGVycm9yTWVz
c2FnZSwgc291cmNlVVJMLCBsaW5lTnVtYmVyKSk7CisgICAgb25lcnJvci0+aGFuZGxlRXZlbnQo
dGhpcywgZXJyb3JFdmVudC5nZXQoKSk7CisgICAgbV9pbkVycm9ySGFuZGxlciA9IGZhbHNlOwor
ICAgIHJldHVybiBlcnJvckV2ZW50LT5kZWZhdWx0UHJldmVudGVkKCk7Cit9CisKIHZvaWQgU2Ny
aXB0RXhlY3V0aW9uQ29udGV4dDo6YWRkVGltZW91dChpbnQgdGltZW91dElkLCBET01UaW1lciog
dGltZXIpCiB7CiAgICAgQVNTRVJUKCFtX3RpbWVvdXRzLmNvbnRhaW5zKHRpbWVvdXRJZCkpOwpk
aWZmIC0tZ2l0IGEvV2ViQ29yZS9kb20vU2NyaXB0RXhlY3V0aW9uQ29udGV4dC5oIGIvV2ViQ29y
ZS9kb20vU2NyaXB0RXhlY3V0aW9uQ29udGV4dC5oCmluZGV4IDMwYzEyZTUwYzM2MmVmMDA4NmI1
NDk4NjExYzAxNDM2ZTdhZTQwYjcuLmI5N2MzMTM1NGE3MTJhMDFkOGViNGZhNjlmMTRjMWVhMzQ3
ZDgzNGUgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvZG9tL1NjcmlwdEV4ZWN1dGlvbkNvbnRleHQuaAor
KysgYi9XZWJDb3JlL2RvbS9TY3JpcHRFeGVjdXRpb25Db250ZXh0LmgKQEAgLTUyLDYgKzUyLDcg
QEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgIGNsYXNzIERhdGFiYXNlVGhyZWFkOwogI2VuZGlm
CiAgICAgY2xhc3MgRE9NVGltZXI7CisgICAgY2xhc3MgRXZlbnRMaXN0ZW5lcjsKICNpZiBFTkFC
TEUoQkxPQikgfHwgRU5BQkxFKEZJTEVfV1JJVEVSKQogICAgIGNsYXNzIEZpbGVUaHJlYWQ7CiAj
ZW5kaWYKQEAgLTk0LDYgKzk1LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiAgICAgICAgIHZp
cnR1YWwgdm9pZCByZXBvcnRFeGNlcHRpb24oY29uc3QgU3RyaW5nJiBlcnJvck1lc3NhZ2UsIGlu
dCBsaW5lTnVtYmVyLCBjb25zdCBTdHJpbmcmIHNvdXJjZVVSTCkgPSAwOwogICAgICAgICB2aXJ0
dWFsIHZvaWQgYWRkTWVzc2FnZShNZXNzYWdlU291cmNlLCBNZXNzYWdlVHlwZSwgTWVzc2FnZUxl
dmVsLCBjb25zdCBTdHJpbmcmIG1lc3NhZ2UsIHVuc2lnbmVkIGxpbmVOdW1iZXIsIGNvbnN0IFN0
cmluZyYgc291cmNlVVJMKSA9IDA7CisgICAgICAgIGJvb2wgaW52b2tlT25FcnJvckhhbmRsZXIo
RXZlbnRMaXN0ZW5lciosIGNvbnN0IFN0cmluZyYgZXJyb3JNZXNzYWdlLCBpbnQgbGluZU51bWJl
ciwgY29uc3QgU3RyaW5nJiBzb3VyY2VVUkwpOwogCiAgICAgICAgIC8vIEFjdGl2ZSBvYmplY3Rz
IGFyZSBub3QgZ2FyYmFnZSBjb2xsZWN0ZWQgZXZlbiBpZiBpbmFjY2Vzc2libGUsIGUuZy4gYmVj
YXVzZSB0aGVpciBhY3Rpdml0eSBtYXkgcmVzdWx0IGluIGNhbGxiYWNrcyBiZWluZyBpbnZva2Vk
LgogICAgICAgICBib29sIGNhblN1c3BlbmRBY3RpdmVET01PYmplY3RzKCk7CkBAIC0xODMsNiAr
MTg1LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogI2lmIEVOQUJMRShCTE9CKSB8fCBFTkFCTEUo
RklMRV9XUklURVIpCiAgICAgICAgIFJlZlB0cjxGaWxlVGhyZWFkPiBtX2ZpbGVUaHJlYWQ7CiAj
ZW5kaWYKKyAgICAgICAgYm9vbCBtX2luRXJyb3JIYW5kbGVyOwogICAgIH07CiAKIH0gLy8gbmFt
ZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJDb250ZXh0
LmNwcCBiL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJDb250ZXh0LmNwcAppbmRleCAzNmE5Zjk0NmRk
Mzc3N2ZlZGYxMmNjZDA3ODcxYzk3MDgzNmVkZThlLi4zMGE4Y2Q0Y2UwYWU3ODc4MTgwNzUwYWI3
MGRiMzdmYWEzYmRjZjQ2IDEwMDY0NAotLS0gYS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyQ29udGV4
dC5jcHAKKysrIGIvV2ViQ29yZS93b3JrZXJzL1dvcmtlckNvbnRleHQuY3BwCkBAIC04OCw3ICs4
OCw2IEBAIFdvcmtlckNvbnRleHQ6OldvcmtlckNvbnRleHQoY29uc3QgS1VSTCYgdXJsLCBjb25z
dCBTdHJpbmcmIHVzZXJBZ2VudCwgV29ya2VyVGhyCiAgICAgLCBtX3NjcmlwdChuZXcgV29ya2Vy
U2NyaXB0Q29udHJvbGxlcih0aGlzKSkKICAgICAsIG1fdGhyZWFkKHRocmVhZCkKICAgICAsIG1f
Y2xvc2luZyhmYWxzZSkKLSAgICAsIG1fcmVwb3J0aW5nRXhjZXB0aW9uKGZhbHNlKQogewogICAg
IHNldFNlY3VyaXR5T3JpZ2luKFNlY3VyaXR5T3JpZ2luOjpjcmVhdGUodXJsKSk7CiB9CkBAIC0y
NDMsMTcgKzI0Miw3IEBAIHZvaWQgV29ya2VyQ29udGV4dDo6aW1wb3J0U2NyaXB0cyhjb25zdCBW
ZWN0b3I8U3RyaW5nPiYgdXJscywgRXhjZXB0aW9uQ29kZSYgZWMpCiAKIHZvaWQgV29ya2VyQ29u
dGV4dDo6cmVwb3J0RXhjZXB0aW9uKGNvbnN0IFN0cmluZyYgZXJyb3JNZXNzYWdlLCBpbnQgbGlu
ZU51bWJlciwgY29uc3QgU3RyaW5nJiBzb3VyY2VVUkwpCiB7Ci0gICAgYm9vbCBlcnJvckhhbmRs
ZWQgPSBmYWxzZTsKLSAgICBpZiAoIW1fcmVwb3J0aW5nRXhjZXB0aW9uKSB7Ci0gICAgICAgIGlm
IChvbmVycm9yKCkpIHsKLSAgICAgICAgICAgIG1fcmVwb3J0aW5nRXhjZXB0aW9uID0gdHJ1ZTsK
LSAgICAgICAgICAgIFJlZlB0cjxFcnJvckV2ZW50PiBlcnJvckV2ZW50KEVycm9yRXZlbnQ6OmNy
ZWF0ZShlcnJvck1lc3NhZ2UsIHNvdXJjZVVSTCwgbGluZU51bWJlcikpOwotICAgICAgICAgICAg
b25lcnJvcigpLT5oYW5kbGVFdmVudCh0aGlzLCBlcnJvckV2ZW50LmdldCgpKTsKLSAgICAgICAg
ICAgIGVycm9ySGFuZGxlZCA9IGVycm9yRXZlbnQtPmRlZmF1bHRQcmV2ZW50ZWQoKTsKLSAgICAg
ICAgICAgIG1fcmVwb3J0aW5nRXhjZXB0aW9uID0gZmFsc2U7Ci0gICAgICAgIH0KLSAgICB9Ci0g
ICAgaWYgKCFlcnJvckhhbmRsZWQpCisgICAgaWYgKCFpbnZva2VPbkVycm9ySGFuZGxlcihvbmVy
cm9yKCksIGVycm9yTWVzc2FnZSwgbGluZU51bWJlciwgc291cmNlVVJMKSkKICAgICAgICAgdGhy
ZWFkKCktPndvcmtlclJlcG9ydGluZ1Byb3h5KCkucG9zdEV4Y2VwdGlvblRvV29ya2VyT2JqZWN0
KGVycm9yTWVzc2FnZSwgbGluZU51bWJlciwgc291cmNlVVJMKTsKIH0KIApkaWZmIC0tZ2l0IGEv
V2ViQ29yZS93b3JrZXJzL1dvcmtlckNvbnRleHQuaCBiL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJD
b250ZXh0LmgKaW5kZXggOWU5ZTU0ZjhiMTMxM2U2NWZiYWZlYWFlZGFlZjRkZTA5YzkwMjJjMS4u
MTc0M2JiNjAxZjZlZWQ4NTIxOWFlYTlmZWY5ZTUwY2I5YzZhOTEyYSAxMDA2NDQKLS0tIGEvV2Vi
Q29yZS93b3JrZXJzL1dvcmtlckNvbnRleHQuaAorKysgYi9XZWJDb3JlL3dvcmtlcnMvV29ya2Vy
Q29udGV4dC5oCkBAIC0xNTQsNyArMTU0LDYgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAg
ICBtdXRhYmxlIFJlZlB0cjxOb3RpZmljYXRpb25DZW50ZXI+IG1fbm90aWZpY2F0aW9uczsKICNl
bmRpZgogICAgICAgICBib29sIG1fY2xvc2luZzsKLSAgICAgICAgYm9vbCBtX3JlcG9ydGluZ0V4
Y2VwdGlvbjsKICAgICAgICAgRXZlbnRUYXJnZXREYXRhIG1fZXZlbnRUYXJnZXREYXRhOwogICAg
IH07CiAK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>65109</attachid>
            <date>2010-08-23 05:32:23 -0700</date>
            <delta_ts>2010-09-29 10:10:07 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-8519-20100823163220.patch</filename>
            <type>text/plain</type>
            <size>69796</size>
            <attacher name="Yury Semikhatsky">yurys</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCA4ZjllNzNhZDc4ZWY2MzdiMDMxMTdiZTU1ZGZiOWNjZTA1YjZiOTQyLi5jYmQwYzA5
Y2ZlMjkxYzliY2M3ZWJlZjg5Y2VhYzFmZWM0ZjU3Y2VjIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDMgQEAK
KzIwMTAtMDgtMjMgIFl1cnkgU2VtaWtoYXRza3kgIDx5dXJ5c0BjaHJvbWl1bS5vcmc+CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgV2ViQ29yZSBkb2Vz
bid0IGZpcmUgd2luZG93Lm9uZXJyb3IgZXZlbnQgd2hlbiB1bmNhdWdodCBKYXZhU2NyaXB0IGV4
Y2VwdGlvbnMgYXJlIHRocm93bgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9ODUxOQorCisgICAgICAgIFVuY2F1Z2h0IGV4Y2VwdGlvbnMgYXJlIHByb3Bh
Z2F0ZWQgdG8gd2luZG93Lm9uZXJyb3IgaGFuZGVyIGlmIG9uZSBpcyBwcmVzZW50LgorICAgICAg
ICBUaGUgaGFuZGxlciBpcyBleHBlY3RlZCB0byBiZSBhIGZ1bmN0aW9uIGFjY2VwdGluZyB0aHJl
ZSBhcmd1bWVudHM6IGVycm9yIG1lc3NhZ2UsCisgICAgICAgIHJlc291cmNlIHVybCBhbmQgbGlu
ZSBudW1iZXIgd2hlcmUgdGhlIGV4Y2VwdGlvbiBvY2N1cmVkLgorCisgICAgICAgICogZmFzdC9l
dmVudHMvd2luZG93LW9uZXJyb3IxLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFz
dC9ldmVudHMvd2luZG93LW9uZXJyb3IxLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZXZl
bnRzL3dpbmRvdy1vbmVycm9yMi1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3Qv
ZXZlbnRzL3dpbmRvdy1vbmVycm9yMi5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2V2ZW50
cy93aW5kb3ctb25lcnJvcjMtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2V2
ZW50cy93aW5kb3ctb25lcnJvcjMuaHRtbDogQWRkZWQuCisgICAgICAgICogZmFzdC9ldmVudHMv
d2luZG93LW9uZXJyb3I0LWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC9ldmVu
dHMvd2luZG93LW9uZXJyb3I0Lmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZXZlbnRzL3dp
bmRvdy1vbmVycm9yNS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZXZlbnRz
L3dpbmRvdy1vbmVycm9yNS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2V2ZW50cy93aW5k
b3ctb25lcnJvcjYtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2V2ZW50cy93
aW5kb3ctb25lcnJvcjYuaHRtbDogQWRkZWQuCisgICAgICAgICogZmFzdC9ldmVudHMvd2luZG93
LW9uZXJyb3I3LWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC9ldmVudHMvd2lu
ZG93LW9uZXJyb3I3Lmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZXZlbnRzL3dpbmRvdy1v
bmVycm9yOC1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZXZlbnRzL3dpbmRv
dy1vbmVycm9yOC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3NlY3VyaXR5L3Jl
c291cmNlcy9vbmVycm9yLWlmcmFtZS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3Rz
L3NlY3VyaXR5L3dpbmRvdy1vbmVycm9yLWV4Y2VwdGlvbi1pbi1pZnJhbWUtZXhwZWN0ZWQudHh0
OiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3NlY3VyaXR5L3dpbmRvdy1vbmVycm9yLWV4
Y2VwdGlvbi1pbi1pZnJhbWUuaHRtbDogQWRkZWQuCisgICAgICAgICogcGxhdGZvcm0vY2hyb21p
dW0vZmFzdC9ldmVudHMvd2luZG93LW9uZXJyb3IxLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAg
ICAgICogcGxhdGZvcm0vY2hyb21pdW0vZmFzdC9ldmVudHMvd2luZG93LW9uZXJyb3IyLWV4cGVj
dGVkLnR4dDogQWRkZWQuCisgICAgICAgICogcGxhdGZvcm0vY2hyb21pdW0vZmFzdC9ldmVudHMv
d2luZG93LW9uZXJyb3IzLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogcGxhdGZvcm0v
Y2hyb21pdW0vZmFzdC9ldmVudHMvd2luZG93LW9uZXJyb3I0LWV4cGVjdGVkLnR4dDogQWRkZWQu
CisgICAgICAgICogcGxhdGZvcm0vY2hyb21pdW0vZmFzdC9ldmVudHMvd2luZG93LW9uZXJyb3I1
LWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogcGxhdGZvcm0vY2hyb21pdW0vZmFzdC9l
dmVudHMvd2luZG93LW9uZXJyb3I2LWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogcGxh
dGZvcm0vY2hyb21pdW0vZmFzdC9ldmVudHMvd2luZG93LW9uZXJyb3I3LWV4cGVjdGVkLnR4dDog
QWRkZWQuCisgICAgICAgICogcGxhdGZvcm0vY2hyb21pdW0vZmFzdC9ldmVudHMvd2luZG93LW9u
ZXJyb3I4LWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogcGxhdGZvcm0vY2hyb21pdW0v
aHR0cC90ZXN0cy9zZWN1cml0eS93aW5kb3ctb25lcnJvci1leGNlcHRpb24taW4taWZyYW1lLWV4
cGVjdGVkLnR4dDogQWRkZWQuCisKIDIwMTAtMDgtMjIgIEtlbnQgVGFtdXJhICA8dGtlbnRAY2hy
b21pdW0ub3JnPgogCiAgICAgICAgIFVucmV2aWV3ZWQsIHRlc3QgZXhwZWN0YXRpb24gdXBkYXRl
LgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvd2luZG93LW9uZXJyb3IxLWV4
cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3dpbmRvdy1vbmVycm9yMS1leHBl
Y3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uOWQwOGM1MGJkOWY3N2U5ZTRkODNhNjcxOTk0MzU3MjliMmFi
ZTA2YQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3dpbmRvdy1v
bmVycm9yMS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw0IEBACitDT05TT0xFIE1FU1NBR0U6IGxp
bmUgMjU6IFJlZmVyZW5jZUVycm9yOiBDYW4ndCBmaW5kIHZhcmlhYmxlOiBoYWhhaGFfZ29vZF9s
dWNrX2ZpbmRpbmdfbWUKK1RoaXMgcGFnZSB0ZXN0cyBzZXR0aW5nIG9uZXJyb3IgaGFuZGxlcnMg
dGhyb3VnaCB0aGUgRE9NLiBJZiBpdCBwYXNzZXMsIHlvdSB3aWxsIHNlZSAiUEFTUyIgbWVzc2Fn
ZXMgYmVsb3cuQnVnIDg1MTkuCisKK1BBU1M6IGNhdWdodCBnbG9iYWwgZXJyb3I6IFJlZmVyZW5j
ZUVycm9yOiBDYW4ndCBmaW5kIHZhcmlhYmxlOiBoYWhhaGFfZ29vZF9sdWNrX2ZpbmRpbmdfbWUg
YXQgd2luZG93LW9uZXJyb3IxLmh0bWw6MjUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3Qv
ZXZlbnRzL3dpbmRvdy1vbmVycm9yMS5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvd2lu
ZG93LW9uZXJyb3IxLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMGJkYWE5YmIyYmMwOGE0Nzk0YzFhMzE2N2Q4
NTZiNzE0YTIzMzUxZQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRz
L3dpbmRvdy1vbmVycm9yMS5odG1sCkBAIC0wLDAgKzEsMzUgQEAKKzxodG1sPgorPGhlYWQ+Cis8
c2NyaXB0PgoraWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKKyAgICBsYXlvdXRUZXN0
Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7CisKK2Z1bmN0aW9uIHByaW50KG1lc3NhZ2UsIGNvbG9y
KQoreworICAgIHZhciBwYXJhZ3JhcGggPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTsK
KyAgICBwYXJhZ3JhcGguYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUobWVzc2Fn
ZSkpOworICAgIHBhcmFncmFwaC5zdHlsZS5mb250RmFtaWx5ID0gIm1vbm9zcGFjZSI7CisgICAg
aWYgKGNvbG9yKQorICAgICAgICBwYXJhZ3JhcGguc3R5bGUuY29sb3IgPSBjb2xvcjsKKyAgICBk
b2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY29uc29sZSIpLmFwcGVuZENoaWxkKHBhcmFncmFwaCk7
Cit9CisKK2Z1bmN0aW9uIHRlc3QoKQoreworICAgIC8vIG11c3QgYmUgbGFzdCBiZWNhdXNlIHRo
ZSBleGNlcHRpb24gZW5kcyBKYXZhU2NyaXB0IGV4ZWN1dGlvbgorICAgIHdpbmRvdy5vbmVycm9y
ID0gZnVuY3Rpb24gKGVycm9yLCB1cmwsIGxpbmUpIHsKKyAgICAgICAgdXJsID0gdXJsID8gdXJs
Lm1hdGNoKCAvW15cL10rXC8/JC8gKVswXSA6IHVybDsKKyAgICAgICAgcHJpbnQoIlBBU1M6IGNh
dWdodCBnbG9iYWwgZXJyb3I6ICIgKyBlcnJvciArICIgYXQgIiArIHVybCArICI6IiArIGxpbmUs
ICJncmVlbiIpOworICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9OworICAgIGhhaGFoYV9nb29k
X2x1Y2tfZmluZGluZ19tZSgpOyAvLyBjYXVnaHQgYnkgd2luZG93Lm9uZXJyb3IKK30KKzwvc2Ny
aXB0PgorPC9oZWFkPgorPGJvZHkgb25sb2FkPSJ0ZXN0KCk7Ij4KKzxwPlRoaXMgcGFnZSB0ZXN0
cyBzZXR0aW5nIG9uZXJyb3IgaGFuZGxlcnMgdGhyb3VnaCB0aGUgRE9NLiBJZiBpdCBwYXNzZXMs
IHlvdSB3aWxsCisgICBzZWUgIlBBU1MiIG1lc3NhZ2VzIGJlbG93LjxhIGhyZWY9Imh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04NTE5Ij5CdWcgODUxOTwvYT4uPC9wPgor
PGhyPgorPGRpdiBpZD0nY29uc29sZSc+PC9kaXY+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy93aW5kb3ctb25lcnJvcjItZXhwZWN0ZWQudHh0
IGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvd2luZG93LW9uZXJyb3IyLWV4cGVjdGVkLnR4dApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi42YmQ0MGQ5MmUxMzU0ZmM1NDE0YTExMzJmMTc2ZTU5OTI4MDkyYWE0Ci0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvd2luZG93LW9uZXJyb3IyLWV4
cGVjdGVkLnR4dApAQCAtMCwwICsxLDkgQEAKK0NPTlNPTEUgTUVTU0FHRTogbGluZSAwOiBJbmxp
bmUgc2NyaXB0IGV4Y2VwdGlvbgorQ09OU09MRSBNRVNTQUdFOiBsaW5lIDA6IEV4Y2VwdGlvbiBp
biBvbmxvYWQKK0NPTlNPTEUgTUVTU0FHRTogbGluZSAwOiBFeGNlcHRpb24gaW4gc2V0VGltZW91
dAorVGVzdCB0aGF0IHVuY2F1Z2h0IGV4Y2VwdGlvbnMgd2lsbCBiZSByZXBvcnRlZCB0byB0aGUg
d2luZG93Lm9uZXJyb3IgaGFuZGxlci4gQnVnIDg1MTkuCisKK01haW4gZnJhbWUgd2luZG93Lm9u
ZXJyb3I6IElubGluZSBzY3JpcHQgZXhjZXB0aW9uIGF0IHVuZGVmaW5lZDowCitNYWluIGZyYW1l
IHdpbmRvdy5vbmVycm9yOiBFeGNlcHRpb24gaW4gb25sb2FkIGF0IHVuZGVmaW5lZDowCitNYWlu
IGZyYW1lIHdpbmRvdy5vbmVycm9yOiBFeGNlcHRpb24gaW4gc2V0VGltZW91dCBhdCB1bmRlZmlu
ZWQ6MAorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy93aW5kb3ctb25lcnJv
cjIuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3dpbmRvdy1vbmVycm9yMi5odG1sCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLjliYmM1MDk2OGFjNjM2MTk5MmQ1YTdkNjNjZmE2OTJmYzliOTMzYTIKLS0tIC9k
ZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy93aW5kb3ctb25lcnJvcjIuaHRt
bApAQCAtMCwwICsxLDQwIEBACis8aHRtbD4KKzxib2R5IG9ubG9hZD0idGhyb3cgJ0V4Y2VwdGlv
biBpbiBvbmxvYWQnOyI+Cis8cD5UZXN0IHRoYXQgdW5jYXVnaHQgZXhjZXB0aW9ucyB3aWxsIGJl
IHJlcG9ydGVkIHRvIHRoZSB3aW5kb3cub25lcnJvciBoYW5kbGVyLiA8YSBocmVmPSJodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODUxOSI+QnVnIDg1MTk8L2E+LjwvcD4K
KzxkaXYgaWQ9InJlc3VsdCI+PC9kaXY+Cis8c2NyaXB0PgoraWYgKHdpbmRvdy5sYXlvdXRUZXN0
Q29udHJvbGxlcikgeworICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKKyAg
ICBsYXlvdXRUZXN0Q29udHJvbGxlci53YWl0VW50aWxEb25lKCk7Cit9CisKK2Z1bmN0aW9uIGxv
Zyhtc2cpIHsKKyAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicmVzdWx0IikuaW5uZXJIVE1M
ICs9IG1zZyArICI8YnI+IjsKK30KKword2luZG93Lm9uZXJyb3IgPSBmdW5jdGlvbihtc2csIHVy
bCwgbGluZSkKK3sKKyAgICB1cmwgPSB1cmwgPyB1cmwubWF0Y2goIC9bXlwvXStcLz8kLyApWzBd
IDogdXJsOworICAgIGxvZygiTWFpbiBmcmFtZSB3aW5kb3cub25lcnJvcjogIiArIG1zZyArICIg
YXQgIiArIHVybCArICI6IiArIGxpbmUpOworfQorCitmdW5jdGlvbiBkZWxheWVkVGhyb3dFeGNl
cHRpb24oKQoreworICAgIHRocm93ICJFeGNlcHRpb24gaW4gc2V0VGltZW91dCI7Cit9CitzZXRU
aW1lb3V0KGRlbGF5ZWRUaHJvd0V4Y2VwdGlvbiwgMCk7CisKK3NldFRpbWVvdXQoZnVuY3Rpb24o
KSB7CisgICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKKyAgICAgICAgbGF5b3V0
VGVzdENvbnRyb2xsZXIubm90aWZ5RG9uZSgpOworfSwgMCk7CisKK2Z1bmN0aW9uIHRocm93RXhj
ZXB0aW9uKCkKK3sKKyAgICB0aHJvdyAiSW5saW5lIHNjcmlwdCBleGNlcHRpb24iOworfQordGhy
b3dFeGNlcHRpb24oKTsKKworPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy93aW5kb3ctb25lcnJvcjMtZXhwZWN0ZWQudHh0IGIv
TGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvd2luZG93LW9uZXJyb3IzLWV4cGVjdGVkLnR4dApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi44YzBjNTNlZDA2YjZmYmU5MzQxY2U1ZjY4OGZiYjE2YTgwNDNlOTYyCi0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvd2luZG93LW9uZXJyb3IzLWV4cGVj
dGVkLnR4dApAQCAtMCwwICsxLDUgQEAKK0NPTlNPTEUgTUVTU0FHRTogbGluZSAxNTogUmVmZXJl
bmNlRXJyb3I6IENhbid0IGZpbmQgdmFyaWFibGU6IHVua25vd25PYmplY3QKK1lvdSBzaG91bGQg
c2VlIGEgbWVzc2FnZSBpZiB3aW5kb3cub25lcnJvciBpcyB3b3JraW5nIHByb3Blcmx5IGZvciB0
aGlzIHRlc3QuQnVnIDg1MTkuCisKK0Vycm9yIGNhdWdodCBzdWNjZXNzZnVsbHk6IFJlZmVyZW5j
ZUVycm9yOiBDYW4ndCBmaW5kIHZhcmlhYmxlOiB1bmtub3duT2JqZWN0IEZpbGU6IHdpbmRvdy1v
bmVycm9yMy5odG1sIExpbmU6IDE1CisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZXZl
bnRzL3dpbmRvdy1vbmVycm9yMy5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvd2luZG93
LW9uZXJyb3IzLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMDY5YWFlYTQ4Mzc1ZmMzN2U0ZDUyYTY2OTRlNGY2
ZDZkNGNmZTgwMwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3dp
bmRvdy1vbmVycm9yMy5odG1sCkBAIC0wLDAgKzEsMjIgQEAKKzxzY3JpcHQ+CitpZiAod2luZG93
LmxheW91dFRlc3RDb250cm9sbGVyKQorICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1Rl
eHQoKTsKKworZnVuY3Rpb24gbG9nKG1zZykgeworICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlk
KCJjb25zb2xlIikuaW5uZXJIVE1MICs9IG1zZyArICI8YnI+IjsKK30KKworZnVuY3Rpb24gdGVz
dDEoKQoreworICAgIHdpbmRvdy5vbmVycm9yID0gZnVuY3Rpb24gKGVycm9yLCB1cmwsIGxpbmUp
IHsKKyAgICAgICAgdXJsID0gdXJsID8gdXJsLm1hdGNoKCAvW15cL10rXC8/JC8gKVswXSA6IHVy
bDsKKyAgICAgICAgbG9nKCJFcnJvciBjYXVnaHQgc3VjY2Vzc2Z1bGx5OiAiICsgZXJyb3IgKyAi
XG5GaWxlOiAiICsgdXJsICsgIlxuTGluZTogIiArIGxpbmUpCisgICAgfTsKKyAgICB1bmtub3du
T2JqZWN0LnVua25vd25Qcm9wZXJ0eSsrOworfQorPC9zY3JpcHQ+Cis8Ym9keSBvbmxvYWQ9InRl
c3QxKCk7Ij4KKzxwPllvdSBzaG91bGQgc2VlIGEgbWVzc2FnZSBpZiB3aW5kb3cub25lcnJvciBp
cyB3b3JraW5nIHByb3Blcmx5IGZvciB0aGlzIHRlc3QuPGEgaHJlZj0iaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTg1MTkiPkJ1ZyA4NTE5PC9hPi48L3A+Cis8aHI+Cis8
ZGl2IGlkPSdjb25zb2xlJz48L2Rpdj4KKzwvYm9keT4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2Zhc3QvZXZlbnRzL3dpbmRvdy1vbmVycm9yNC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9m
YXN0L2V2ZW50cy93aW5kb3ctb25lcnJvcjQtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmUzNmJi
MWUzYmFlZTM2ZDMwMTIxOTA1NDdiMWZiMDE1MTc3OGJjZDQKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy9mYXN0L2V2ZW50cy93aW5kb3ctb25lcnJvcjQtZXhwZWN0ZWQudHh0CkBAIC0w
LDAgKzEsNSBAQAorQ09OU09MRSBNRVNTQUdFOiBsaW5lIDE6IFJlZmVyZW5jZUVycm9yOiBMZWZ0
IHNpZGUgb2YgYXNzaWdubWVudCBpcyBub3QgYSByZWZlcmVuY2UuCitZb3Ugc2hvdWxkIHNlZSBh
IGxvZyByZWNvcmQgaWYgd2luZG93Lm9uZXJyb3IgaXMgd29ya2luZyBwcm9wZXJseSBmb3IgdGhp
cyB0ZXN0LkJ1ZyA4NTE5LgorCitFcnJvciBjYXVnaHQgc3VjY2Vzc2Z1bGx5OiBSZWZlcmVuY2VF
cnJvcjogTGVmdCBzaWRlIG9mIGFzc2lnbm1lbnQgaXMgbm90IGEgcmVmZXJlbmNlLiBGaWxlOiB1
bmRlZmluZWQgTGluZTogMQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy93
aW5kb3ctb25lcnJvcjQuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3dpbmRvdy1vbmVy
cm9yNC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLjM4Nzg1MjdlY2Y5ZGVkYTJhMjI3MjMwZjAzNzliOWM1NmM5
ZWYyNTgKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy93aW5kb3ct
b25lcnJvcjQuaHRtbApAQCAtMCwwICsxLDIyIEBACis8c2NyaXB0PgoraWYgKHdpbmRvdy5sYXlv
dXRUZXN0Q29udHJvbGxlcikKKyAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7
CisKK2Z1bmN0aW9uIGxvZyhtc2cpIHsKKyAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY29u
c29sZSIpLmlubmVySFRNTCArPSBtc2cgKyAiPGJyPiI7Cit9CisKK2Z1bmN0aW9uIHRlc3QxKCkK
K3sKKyAgICB3aW5kb3cub25lcnJvciA9IGZ1bmN0aW9uIChlcnJvciwgdXJsLCBsaW5lKSB7Cisg
ICAgICAgIHVybCA9IHVybCA/IHVybC5tYXRjaCggL1teXC9dK1wvPyQvIClbMF0gOiB1cmw7Cisg
ICAgICAgIGxvZygiRXJyb3IgY2F1Z2h0IHN1Y2Nlc3NmdWxseTogIiArIGVycm9yICsgIlxuRmls
ZTogIiArIHVybCArICJcbkxpbmU6ICIgKyBsaW5lKQorICAgIH07CisgICAgZXZhbCgiMT0yIik7
Cit9Cis8L3NjcmlwdD4KKzxib2R5IG9ubG9hZD0idGVzdDEoKTsiPgorPHA+WW91IHNob3VsZCBz
ZWUgYSBsb2cgcmVjb3JkIGlmIHdpbmRvdy5vbmVycm9yIGlzIHdvcmtpbmcgcHJvcGVybHkgZm9y
IHRoaXMgdGVzdC48YSBocmVmPSJodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9ODUxOSI+QnVnIDg1MTk8L2E+LjwvcD4KKzxocj4KKzxkaXYgaWQ9J2NvbnNvbGUnPjwvZGl2
PgorPC9ib2R5PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvd2luZG93LW9u
ZXJyb3I1LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3dpbmRvdy1vbmVy
cm9yNS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uM2U4ZGM2NGFjZGM1MzM4OTA2YTUxMmIwMGZh
ZTJhN2U4MTc5YzE0ZQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRz
L3dpbmRvdy1vbmVycm9yNS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw1IEBACitDT05TT0xFIE1F
U1NBR0U6IGxpbmUgMTogU3ludGF4RXJyb3I6IFBhcnNlIGVycm9yCitUZXN0IHRoYXQgd2luZG93
Lm9uZXJyb3IgaXMgaW52b2tlZCBmb3Igc3ludGF4IGVycm9yIGluIGV2YWwuIFlvdSBzaG91bGQg
c2VlIGEgbG9nIHJlY29yZCBpZiB3aW5kb3cub25lcnJvciBpcyB3b3JraW5nIHByb3Blcmx5IGZv
ciB0aGlzIHRlc3QuQnVnIDg1MTkuCisKK0Vycm9yIGNhdWdodCBzdWNjZXNzZnVsbHk6IFN5bnRh
eEVycm9yOiBQYXJzZSBlcnJvciBGaWxlOiB1bmRlZmluZWQgTGluZTogMQorCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy93aW5kb3ctb25lcnJvcjUuaHRtbCBiL0xheW91dFRl
c3RzL2Zhc3QvZXZlbnRzL3dpbmRvdy1vbmVycm9yNS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmQ0YWQxZDZh
MWRhY2ExM2I5ZWRjNDE3ODMwZTZmZDcyMDNjMjJhYTUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy9mYXN0L2V2ZW50cy93aW5kb3ctb25lcnJvcjUuaHRtbApAQCAtMCwwICsxLDIyIEBA
Cis8c2NyaXB0PgoraWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKKyAgICBsYXlvdXRU
ZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7CisKK2Z1bmN0aW9uIGxvZyhtc2cpIHsKKyAgICBk
b2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY29uc29sZSIpLmlubmVySFRNTCArPSBtc2cgKyAiPGJy
PiI7Cit9CisKK2Z1bmN0aW9uIHRlc3QxKCkKK3sKKyAgICB3aW5kb3cub25lcnJvciA9IGZ1bmN0
aW9uIChlcnJvciwgdXJsLCBsaW5lKSB7CisgICAgICAgIHVybCA9IHVybCA/IHVybC5tYXRjaCgg
L1teXC9dK1wvPyQvIClbMF0gOiB1cmw7CisgICAgICAgIGxvZygiRXJyb3IgY2F1Z2h0IHN1Y2Nl
c3NmdWxseTogIiArIGVycm9yICsgIlxuRmlsZTogIiArIHVybCArICJcbkxpbmU6ICIgKyBsaW5l
KQorICAgIH07CisgICAgZXZhbCgiYSgiKTsKK30KKzwvc2NyaXB0PgorPGJvZHkgb25sb2FkPSJ0
ZXN0MSgpOyI+Cis8cD5UZXN0IHRoYXQgd2luZG93Lm9uZXJyb3IgaXMgaW52b2tlZCBmb3Igc3lu
dGF4IGVycm9yIGluIGV2YWwuIFlvdSBzaG91bGQgc2VlIGEgbG9nIHJlY29yZCBpZiB3aW5kb3cu
b25lcnJvciBpcyB3b3JraW5nIHByb3Blcmx5IGZvciB0aGlzIHRlc3QuPGEgaHJlZj0iaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTg1MTkiPkJ1ZyA4NTE5PC9hPi48L3A+
Cis8aHI+Cis8ZGl2IGlkPSdjb25zb2xlJz48L2Rpdj4KKzwvYm9keT4KZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2Zhc3QvZXZlbnRzL3dpbmRvdy1vbmVycm9yNi1leHBlY3RlZC50eHQgYi9MYXlv
dXRUZXN0cy9mYXN0L2V2ZW50cy93aW5kb3ctb25lcnJvcjYtZXhwZWN0ZWQudHh0Cm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLmYzYTVhMDAxNGM5OTIwMjhlODViYmVlYjU5MWJjMGI4NGJlZjllNGUKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy93aW5kb3ctb25lcnJvcjYtZXhwZWN0ZWQu
dHh0CkBAIC0wLDAgKzEsNSBAQAorQ09OU09MRSBNRVNTQUdFOiBsaW5lIDIxOiBTeW50YXhFcnJv
cjogUGFyc2UgZXJyb3IKK1Rlc3QgdGhhdCBzeW50YXggZXJyb3Igd2lsbCBiZSByZXBvcnRlZCB0
byB0aGUgd2luZG93Lm9uZXJyb3IgaGFuZGxlci4gQnVnIDg1MTkuCisKK01haW4gZnJhbWUgd2lu
ZG93Lm9uZXJyb3I6IFN5bnRheEVycm9yOiBQYXJzZSBlcnJvciBhdCB3aW5kb3ctb25lcnJvcjYu
aHRtbDoyMQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy93aW5kb3ctb25l
cnJvcjYuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3dpbmRvdy1vbmVycm9yNi5odG1s
Cm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLjdkMDlmN2E4NWU5OWZlMzMyZWQyNmM1ZGI2MTMxODZlMGFjMjQxMWUKLS0t
IC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy93aW5kb3ctb25lcnJvcjYu
aHRtbApAQCAtMCwwICsxLDI1IEBACis8aHRtbD4KKzxib2R5PgorPHA+VGVzdCB0aGF0IHN5bnRh
eCBlcnJvciB3aWxsIGJlIHJlcG9ydGVkIHRvIHRoZSB3aW5kb3cub25lcnJvciBoYW5kbGVyLiA8
YSBocmVmPSJodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODUxOSI+QnVn
IDg1MTk8L2E+LjwvcD4KKzxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgorPHNjcmlwdD4KK2lmICh3
aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCisgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVt
cEFzVGV4dCgpOworCitmdW5jdGlvbiBsb2cobXNnKSB7CisgICAgZG9jdW1lbnQuZ2V0RWxlbWVu
dEJ5SWQoImNvbnNvbGUiKS5pbm5lckhUTUwgKz0gbXNnICsgIjxicj4iOworfQorCit3aW5kb3cu
b25lcnJvciA9IGZ1bmN0aW9uKG1zZywgdXJsLCBsaW5lKQoreworICAgIHVybCA9IHVybCA/IHVy
bC5tYXRjaCggL1teXC9dK1wvPyQvIClbMF0gOiB1cmw7CisgICAgbG9nKCJNYWluIGZyYW1lIHdp
bmRvdy5vbmVycm9yOiAiICsgbXNnICsgIiBhdCAiICsgdXJsICsgIjoiICsgbGluZSk7Cit9Cis8
L3NjcmlwdD4KKzxzY3JpcHQ+CisKK2EpIC8vIHN5bnRheCBlcnJvcgorCis8L3NjcmlwdD4KKzwv
Ym9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3dpbmRv
dy1vbmVycm9yNy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy93aW5kb3ct
b25lcnJvcjctZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjZjZTVkMjY2OThmYjQyMDU1NjBkNjNh
YzY0MDdmOTk3ZjEyMTg3OGYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2V2
ZW50cy93aW5kb3ctb25lcnJvcjctZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNiBAQAorQ09OU09M
RSBNRVNTQUdFOiBsaW5lIDA6IE5lc3RlZCBlcnJvcgorQ09OU09MRSBNRVNTQUdFOiBsaW5lIDA6
IDIwMTAKK1Rlc3QgdGhhdCBleGNlcHRpb24gaW4gd2luZG93Lm9uZXJyb3Igd29uJ3QgbGVhZCB0
byByZWN1cnNpdmUgd2luZG93Lm9uZXJyb3IgY2FsbC4gQnVnIDg1MTkuCisKK01haW4gZnJhbWUg
d2luZG93Lm9uZXJyb3I6IDIwMTAgYXQgdW5kZWZpbmVkOjAKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvZmFzdC9ldmVudHMvd2luZG93LW9uZXJyb3I3Lmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0
L2V2ZW50cy93aW5kb3ctb25lcnJvcjcuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zMDA0YjMzZTE1MjJlNWIx
N2YyMjEyNTM5MTg1OGI5ZTRmMjMwYzI0Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMv
ZmFzdC9ldmVudHMvd2luZG93LW9uZXJyb3I3Lmh0bWwKQEAgLTAsMCArMSwyNCBAQAorPGh0bWw+
Cis8Ym9keT4KKzxwPlRlc3QgdGhhdCBleGNlcHRpb24gaW4gd2luZG93Lm9uZXJyb3Igd29uJ3Qg
bGVhZCB0byByZWN1cnNpdmUgd2luZG93Lm9uZXJyb3IgY2FsbC4gPGEgaHJlZj0iaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTg1MTkiPkJ1ZyA4NTE5PC9hPi48L3A+Cis8
ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KKzxzY3JpcHQ+CitpZiAod2luZG93LmxheW91dFRlc3RD
b250cm9sbGVyKQorICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKKworZnVu
Y3Rpb24gbG9nKG1zZykgeworICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjb25zb2xlIiku
aW5uZXJIVE1MICs9IG1zZyArICI8YnI+IjsKK30KKword2luZG93Lm9uZXJyb3IgPSBmdW5jdGlv
bihtc2csIHVybCwgbGluZSkKK3sKKyAgICB1cmwgPSB1cmwgPyB1cmwubWF0Y2goIC9bXlwvXStc
Lz8kLyApWzBdIDogdXJsOworICAgIGxvZygiTWFpbiBmcmFtZSB3aW5kb3cub25lcnJvcjogIiAr
IG1zZyArICIgYXQgIiArIHVybCArICI6IiArIGxpbmUpOworICAgIHRocm93ICJOZXN0ZWQgZXJy
b3IiOworfQorCit0aHJvdyAyMDEwOworCis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3dpbmRvdy1vbmVycm9yOC1leHBlY3Rl
ZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy93aW5kb3ctb25lcnJvcjgtZXhwZWN0ZWQu
dHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLmIxNmY2MjFmZWZlZDdiMTYyZjgxMzA4YjRmNDhiZjBjMTcwZWViOWUK
LS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy93aW5kb3ctb25lcnJv
cjgtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNiBAQAorQ09OU09MRSBNRVNTQUdFOiBsaW5lIDA6
IDIwMTAKK1Rlc3QgdGhhdCB3aW5kb3cub25lcnJvciBpcyBjYWxsZWQgb24gd2luZG93IG9iamVj
dC4gQnVnIDg1MTkuCisKK01haW4gZnJhbWUgd2luZG93Lm9uZXJyb3I6IDIwMTAgYXQgdW5kZWZp
bmVkOjAKK1BBU1NFRDogdGhpcyA9PT0gd2luZG93CisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2Zhc3QvZXZlbnRzL3dpbmRvdy1vbmVycm9yOC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVu
dHMvd2luZG93LW9uZXJyb3I4Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNjE2OGM0ZmE2OTA2NDQ1MmIyMzg1
YmIyNzVjNWY5MGUxMzZhZDhiMgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3Qv
ZXZlbnRzL3dpbmRvdy1vbmVycm9yOC5odG1sCkBAIC0wLDAgKzEsMjcgQEAKKzxodG1sPgorPGJv
ZHk+Cis8cD5UZXN0IHRoYXQgd2luZG93Lm9uZXJyb3IgaXMgY2FsbGVkIG9uIHdpbmRvdyBvYmpl
Y3QuIDxhIGhyZWY9Imh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04NTE5
Ij5CdWcgODUxOTwvYT4uPC9wPgorPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+Cis8c2NyaXB0Pgor
aWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKKyAgICBsYXlvdXRUZXN0Q29udHJvbGxl
ci5kdW1wQXNUZXh0KCk7CisKK2Z1bmN0aW9uIGxvZyhtc2cpIHsKKyAgICBkb2N1bWVudC5nZXRF
bGVtZW50QnlJZCgiY29uc29sZSIpLmlubmVySFRNTCArPSBtc2cgKyAiPGJyPiI7Cit9CisKK3dp
bmRvdy5vbmVycm9yID0gZnVuY3Rpb24obXNnLCB1cmwsIGxpbmUpCit7CisgICAgdXJsID0gdXJs
ID8gdXJsLm1hdGNoKCAvW15cL10rXC8/JC8gKVswXSA6IHVybDsKKyAgICBsb2coIk1haW4gZnJh
bWUgd2luZG93Lm9uZXJyb3I6ICIgKyBtc2cgKyAiIGF0ICIgKyB1cmwgKyAiOiIgKyBsaW5lKTsK
KyAgICBpZiAodGhpcyA9PT0gd2luZG93KSAKKyAgICAgICAgbG9nKCJQQVNTRUQ6IHRoaXMgPT09
IHdpbmRvdyIpOworICAgIGVsc2UKKyAgICAgICAgbG9nKCJGQUlMRUQ6IHRoaXMgPT09IHdpbmRv
dyIpOworfQorCit0aHJvdyAyMDEwOworCis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvcmVzb3VyY2VzL29uZXJy
b3ItaWZyYW1lLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L3Jlc291cmNl
cy9vbmVycm9yLWlmcmFtZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjMxMmZkMTJkM2FkODEwMmE1ZmUxYjUx
NzAzZWMzY2IwMDFhNzRmYzgKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL3NlY3VyaXR5L3Jlc291cmNlcy9vbmVycm9yLWlmcmFtZS5odG1sCkBAIC0wLDAgKzEsMTEg
QEAKKzxzY3JpcHQ+CitmdW5jdGlvbiBoYW5kbGVMb2FkKCkKK3sKKyAgICB3aW5kb3cucGFyZW50
LnBvc3RNZXNzYWdlKCJJRnJhbWVMb2FkZWQiLCAiKiIpOworfQorCit0aHJvdyAiSWZyYW1lRXhj
ZXB0aW9uIjsKKworPC9zY3JpcHQ+Cis8Ym9keSBvbmxvYWQ9ImhhbmRsZUxvYWQoKSI+Cis8L2Jv
ZHk+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L3dpbmRvdy1v
bmVycm9yLWV4Y2VwdGlvbi1pbi1pZnJhbWUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy9zZWN1cml0eS93aW5kb3ctb25lcnJvci1leGNlcHRpb24taW4taWZyYW1lLWV4cGVj
dGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi5kODgzYTQwZGQzMDBiNTViYmY1OWZlMjQ1ZGNlMDdlMDZkMDIz
MDMwCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS93
aW5kb3ctb25lcnJvci1leGNlcHRpb24taW4taWZyYW1lLWV4cGVjdGVkLnR4dApAQCAtMCwwICsx
LDcgQEAKK0NPTlNPTEUgTUVTU0FHRTogbGluZSAwOiBNYWluRnJhbWVFeGNlcHRpb24KK0NPTlNP
TEUgTUVTU0FHRTogbGluZSAwOiBJZnJhbWVFeGNlcHRpb24KK1Rlc3QgdGhhdCBleGNlcHRpb25z
IGluIGlmcmFtZSBhcmUgbm90IHJlcG9ydGVkIHRvIHRoZSBtYWluIGZyYW1lIHdpbmRvdy5vbmVy
cm9yIGhhbmRsZXIuIHdpbmRvdy5vbmVycm9yIHNob3VsZCBwcmludCBleGFjdGx5IG9uZSBsaW5l
LgorCitNYWluIGZyYW1lIHdpbmRvdy5vbmVycm9yOiBNYWluRnJhbWVFeGNlcHRpb24gYXQgdW5k
ZWZpbmVkOjAKK0RPTkUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1
cml0eS93aW5kb3ctb25lcnJvci1leGNlcHRpb24taW4taWZyYW1lLmh0bWwgYi9MYXlvdXRUZXN0
cy9odHRwL3Rlc3RzL3NlY3VyaXR5L3dpbmRvdy1vbmVycm9yLWV4Y2VwdGlvbi1pbi1pZnJhbWUu
aHRtbApuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi41YmVjYTUwYTRmOWE0NDU4MWI1OWY3NDRlMDM1ODM0ZGE5YWUwMTk2
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS93aW5k
b3ctb25lcnJvci1leGNlcHRpb24taW4taWZyYW1lLmh0bWwKQEAgLTAsMCArMSwzOCBAQAorPGh0
bWw+Cis8Ym9keT4KKzxwPlRlc3QgdGhhdCBleGNlcHRpb25zIGluIGlmcmFtZSBhcmUgbm90IHJl
cG9ydGVkIHRvIHRoZSBtYWluIGZyYW1lIHdpbmRvdy5vbmVycm9yIGhhbmRsZXIuCit3aW5kb3cu
b25lcnJvciBzaG91bGQgcHJpbnQgZXhhY3RseSBvbmUgbGluZS48L3A+Cis8ZGl2IGlkPSJyZXN1
bHQiPjwvZGl2PgorPHNjcmlwdD4KK2lmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpIHsK
KyAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7CisgICAgbGF5b3V0VGVzdENv
bnRyb2xsZXIud2FpdFVudGlsRG9uZSgpOworfQorCitmdW5jdGlvbiBsb2cobXNnKSB7CisgICAg
ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInJlc3VsdCIpLmlubmVySFRNTCArPSBtc2cgKyAiPGJy
PiI7Cit9CisKK3dpbmRvdy5vbmVycm9yID0gZnVuY3Rpb24obXNnLCB1cmwsIGxpbmUpCit7Cisg
ICAgdXJsID0gdXJsID8gdXJsLm1hdGNoKCAvW15cL10rXC8/JC8gKVswXSA6IHVybDsKKyAgICBs
b2coIk1haW4gZnJhbWUgd2luZG93Lm9uZXJyb3I6ICIgKyBtc2cgKyAiIGF0ICIgKyB1cmwgKyAi
OiIgKyBsaW5lKTsKK30KKworZnVuY3Rpb24gcmVjZWl2ZU1lc3NhZ2UoZXZlbnQpIHsKKyAgICBp
ZiAoZXZlbnQuZGF0YSA9PT0gIklGcmFtZUxvYWRlZCIpIHsKKyAgICAgICAgbG9nKCJET05FIik7
CisgICAgICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCisgICAgICAgICAgICBs
YXlvdXRUZXN0Q29udHJvbGxlci5ub3RpZnlEb25lKCk7CisgICAgfSBlbHNlCisgICAgICAgIGxv
ZygiRkFJTCAiICsgZXZlbnQuZGF0YSk7Cit9CisKK3dpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJt
ZXNzYWdlIiwgcmVjZWl2ZU1lc3NhZ2UsIGZhbHNlKTsKKwordGhyb3cgIk1haW5GcmFtZUV4Y2Vw
dGlvbiI7CisKKzwvc2NyaXB0PgorPGlmcmFtZSBzcmM9Imh0dHA6Ly9sb2NhbGhvc3Q6ODAwMC9z
ZWN1cml0eS9yZXNvdXJjZXMvb25lcnJvci1pZnJhbWUuaHRtbCIvPgorPC9ib2R5PgorPC9odG1s
PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vZmFzdC9ldmVudHMv
d2luZG93LW9uZXJyb3IxLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9t
aXVtL2Zhc3QvZXZlbnRzL3dpbmRvdy1vbmVycm9yMS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9k
ZSAxMDA3NTUKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
ZjQzYTNhZjE3NGJmNzVmYmNiYjAwODE0NDViNmMyNTkyZWVkYWI1NAotLS0gL2Rldi9udWxsCisr
KyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL2Zhc3QvZXZlbnRzL3dpbmRvdy1vbmVy
cm9yMS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw0IEBACitDT05TT0xFIE1FU1NBR0U6IGxpbmUg
MjU6IFVuY2F1Z2h0IFJlZmVyZW5jZUVycm9yOiBoYWhhaGFfZ29vZF9sdWNrX2ZpbmRpbmdfbWUg
aXMgbm90IGRlZmluZWQNCitUaGlzIHBhZ2UgdGVzdHMgc2V0dGluZyBvbmVycm9yIGhhbmRsZXJz
IHRocm91Z2ggdGhlIERPTS4gSWYgaXQgcGFzc2VzLCB5b3Ugd2lsbCBzZWUgIlBBU1MiIG1lc3Nh
Z2VzIGJlbG93LkJ1ZyA4NTE5Lg0KKw0KK1BBU1M6IGNhdWdodCBnbG9iYWwgZXJyb3I6IFVuY2F1
Z2h0IFJlZmVyZW5jZUVycm9yOiBoYWhhaGFfZ29vZF9sdWNrX2ZpbmRpbmdfbWUgaXMgbm90IGRl
ZmluZWQgYXQgd2luZG93LW9uZXJyb3IxLmh0bWw6MjUNCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9wbGF0Zm9ybS9jaHJvbWl1bS9mYXN0L2V2ZW50cy93aW5kb3ctb25lcnJvcjItZXhwZWN0ZWQu
dHh0IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vZmFzdC9ldmVudHMvd2luZG93LW9u
ZXJyb3IyLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5lMjllNjZhMTY2ZjkzYTc5MGM4NGQyYWVm
MjMyYzg1YzU3ZjI1MDBhCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0v
Y2hyb21pdW0vZmFzdC9ldmVudHMvd2luZG93LW9uZXJyb3IyLWV4cGVjdGVkLnR4dApAQCAtMCww
ICsxLDkgQEAKK0NPTlNPTEUgTUVTU0FHRTogbGluZSAzNDogVW5jYXVnaHQgSW5saW5lIHNjcmlw
dCBleGNlcHRpb24NCitDT05TT0xFIE1FU1NBR0U6IGxpbmUgMjogVW5jYXVnaHQgRXhjZXB0aW9u
IGluIG9ubG9hZA0KK0NPTlNPTEUgTUVTU0FHRTogbGluZSAyMzogVW5jYXVnaHQgRXhjZXB0aW9u
IGluIHNldFRpbWVvdXQNCitUZXN0IHRoYXQgdW5jYXVnaHQgZXhjZXB0aW9ucyB3aWxsIGJlIHJl
cG9ydGVkIHRvIHRoZSB3aW5kb3cub25lcnJvciBoYW5kbGVyLiBCdWcgODUxOS4NCisNCitNYWlu
IGZyYW1lIHdpbmRvdy5vbmVycm9yOiBVbmNhdWdodCBJbmxpbmUgc2NyaXB0IGV4Y2VwdGlvbiBh
dCB3aW5kb3ctb25lcnJvcjIuaHRtbDozNA0KK01haW4gZnJhbWUgd2luZG93Lm9uZXJyb3I6IFVu
Y2F1Z2h0IEV4Y2VwdGlvbiBpbiBvbmxvYWQgYXQgd2luZG93LW9uZXJyb3IyLmh0bWw6Mg0KK01h
aW4gZnJhbWUgd2luZG93Lm9uZXJyb3I6IFVuY2F1Z2h0IEV4Y2VwdGlvbiBpbiBzZXRUaW1lb3V0
IGF0IHdpbmRvdy1vbmVycm9yMi5odG1sOjIzDQorDQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
cGxhdGZvcm0vY2hyb21pdW0vZmFzdC9ldmVudHMvd2luZG93LW9uZXJyb3IzLWV4cGVjdGVkLnR4
dCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL2Zhc3QvZXZlbnRzL3dpbmRvdy1vbmVy
cm9yMy1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uODIzNzNhYmVmOTRhNzc2NjczMjZmN2E2NWRm
MGRiOGQxOTUzMjQzMgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2No
cm9taXVtL2Zhc3QvZXZlbnRzL3dpbmRvdy1vbmVycm9yMy1leHBlY3RlZC50eHQKQEAgLTAsMCAr
MSw1IEBACitDT05TT0xFIE1FU1NBR0U6IGxpbmUgMTU6IFVuY2F1Z2h0IFJlZmVyZW5jZUVycm9y
OiB1bmtub3duT2JqZWN0IGlzIG5vdCBkZWZpbmVkDQorWW91IHNob3VsZCBzZWUgYSBtZXNzYWdl
IGlmIHdpbmRvdy5vbmVycm9yIGlzIHdvcmtpbmcgcHJvcGVybHkgZm9yIHRoaXMgdGVzdC5CdWcg
ODUxOS4NCisNCitFcnJvciBjYXVnaHQgc3VjY2Vzc2Z1bGx5OiBVbmNhdWdodCBSZWZlcmVuY2VF
cnJvcjogdW5rbm93bk9iamVjdCBpcyBub3QgZGVmaW5lZCBGaWxlOiB3aW5kb3ctb25lcnJvcjMu
aHRtbCBMaW5lOiAxNQ0KKw0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9t
aXVtL2Zhc3QvZXZlbnRzL3dpbmRvdy1vbmVycm9yNC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0
cy9wbGF0Zm9ybS9jaHJvbWl1bS9mYXN0L2V2ZW50cy93aW5kb3ctb25lcnJvcjQtZXhwZWN0ZWQu
dHh0Cm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjA0M2ViYTMyNzA2OWY0OTgyY2EzZTA5NWNjYWY5NTY3YmViZDRlZjIK
LS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS9mYXN0L2V2
ZW50cy93aW5kb3ctb25lcnJvcjQtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNSBAQAorQ09OU09M
RSBNRVNTQUdFOiBsaW5lIDE6IFVuY2F1Z2h0IFJlZmVyZW5jZUVycm9yOiBJbnZhbGlkIGxlZnQt
aGFuZCBzaWRlIGluIGFzc2lnbm1lbnQNCitZb3Ugc2hvdWxkIHNlZSBhIGxvZyByZWNvcmQgaWYg
d2luZG93Lm9uZXJyb3IgaXMgd29ya2luZyBwcm9wZXJseSBmb3IgdGhpcyB0ZXN0LkJ1ZyA4NTE5
Lg0KKw0KK0Vycm9yIGNhdWdodCBzdWNjZXNzZnVsbHk6IFVuY2F1Z2h0IFJlZmVyZW5jZUVycm9y
OiBJbnZhbGlkIGxlZnQtaGFuZCBzaWRlIGluIGFzc2lnbm1lbnQgRmlsZTogd2luZG93LW9uZXJy
b3I0Lmh0bWwgTGluZTogMQ0KKw0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2No
cm9taXVtL2Zhc3QvZXZlbnRzL3dpbmRvdy1vbmVycm9yNS1leHBlY3RlZC50eHQgYi9MYXlvdXRU
ZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS9mYXN0L2V2ZW50cy93aW5kb3ctb25lcnJvcjUtZXhwZWN0
ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLmQyZjZhZDUzZjMyNGM4YjA2YjE4NjNjYWVkNDdmYWE0NWI0MzRk
MWQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS9mYXN0
L2V2ZW50cy93aW5kb3ctb25lcnJvcjUtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNSBAQAorQ09O
U09MRSBNRVNTQUdFOiBsaW5lIDE6IFVuY2F1Z2h0IFN5bnRheEVycm9yOiBVbmV4cGVjdGVkIGVu
ZCBvZiBpbnB1dA0KK1Rlc3QgdGhhdCB3aW5kb3cub25lcnJvciBpcyBpbnZva2VkIGZvciBzeW50
YXggZXJyb3IgaW4gZXZhbC4gWW91IHNob3VsZCBzZWUgYSBsb2cgcmVjb3JkIGlmIHdpbmRvdy5v
bmVycm9yIGlzIHdvcmtpbmcgcHJvcGVybHkgZm9yIHRoaXMgdGVzdC5CdWcgODUxOS4NCisNCitF
cnJvciBjYXVnaHQgc3VjY2Vzc2Z1bGx5OiBVbmNhdWdodCBTeW50YXhFcnJvcjogVW5leHBlY3Rl
ZCBlbmQgb2YgaW5wdXQgRmlsZTogd2luZG93LW9uZXJyb3I1Lmh0bWwgTGluZTogMQ0KKw0KZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL2Zhc3QvZXZlbnRzL3dpbmRv
dy1vbmVycm9yNi1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS9m
YXN0L2V2ZW50cy93aW5kb3ctb25lcnJvcjYtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAw
NzU1CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjlhODEw
YWVhNzEzNGExNzEwYzE3NmQ4NTIyM2ZhOTE4YWViNWU1MTcKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS9mYXN0L2V2ZW50cy93aW5kb3ctb25lcnJvcjYt
ZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNSBAQAorQ09OU09MRSBNRVNTQUdFOiBsaW5lIDIxOiBV
bmNhdWdodCBTeW50YXhFcnJvcjogVW5leHBlY3RlZCB0b2tlbiApDQorVGVzdCB0aGF0IHN5bnRh
eCBlcnJvciB3aWxsIGJlIHJlcG9ydGVkIHRvIHRoZSB3aW5kb3cub25lcnJvciBoYW5kbGVyLiBC
dWcgODUxOS4NCisNCitNYWluIGZyYW1lIHdpbmRvdy5vbmVycm9yOiBVbmNhdWdodCBTeW50YXhF
cnJvcjogVW5leHBlY3RlZCB0b2tlbiApIGF0IHdpbmRvdy1vbmVycm9yNi5odG1sOjIxDQorDQpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vZmFzdC9ldmVudHMvd2lu
ZG93LW9uZXJyb3I3LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVt
L2Zhc3QvZXZlbnRzL3dpbmRvdy1vbmVycm9yNy1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAx
MDA3NTUKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMDVl
ZmM1ZjhkYjMxNTE1ZjU2MTg0NmFkZmRiZTUyYjJkZDVmYmFhMAotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL2Zhc3QvZXZlbnRzL3dpbmRvdy1vbmVycm9y
Ny1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw2IEBACitDT05TT0xFIE1FU1NBR0U6IGxpbmUgMTc6
IFVuY2F1Z2h0IE5lc3RlZCBlcnJvcg0KK0NPTlNPTEUgTUVTU0FHRTogbGluZSAyMDogVW5jYXVn
aHQgMjAxMA0KK1Rlc3QgdGhhdCBleGNlcHRpb24gaW4gd2luZG93Lm9uZXJyb3Igd29uJ3QgbGVh
ZCB0byByZWN1cnNpdmUgd2luZG93Lm9uZXJyb3IgY2FsbC4gQnVnIDg1MTkuDQorDQorTWFpbiBm
cmFtZSB3aW5kb3cub25lcnJvcjogVW5jYXVnaHQgMjAxMCBhdCB3aW5kb3ctb25lcnJvcjcuaHRt
bDoyMA0KKw0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL2Zhc3Qv
ZXZlbnRzL3dpbmRvdy1vbmVycm9yOC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9y
bS9jaHJvbWl1bS9mYXN0L2V2ZW50cy93aW5kb3ctb25lcnJvcjgtZXhwZWN0ZWQudHh0Cm5ldyBm
aWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLmU4YTc1N2ZhMGE3YThkMjY4NDgxOGEyZWE2OWY2NzNiZDQ5MThjMjUKLS0tIC9kZXYv
bnVsbAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS9mYXN0L2V2ZW50cy93aW5k
b3ctb25lcnJvcjgtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNiBAQAorQ09OU09MRSBNRVNTQUdF
OiBsaW5lIDIzOiBVbmNhdWdodCAyMDEwDQorVGVzdCB0aGF0IHdpbmRvdy5vbmVycm9yIGlzIGNh
bGxlZCBvbiB3aW5kb3cgb2JqZWN0LiBCdWcgODUxOS4NCisNCitNYWluIGZyYW1lIHdpbmRvdy5v
bmVycm9yOiBVbmNhdWdodCAyMDEwIGF0IHdpbmRvdy1vbmVycm9yOC5odG1sOjIzDQorUEFTU0VE
OiB0aGlzID09PSB3aW5kb3cNCisNCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9j
aHJvbWl1bS9odHRwL3Rlc3RzL3NlY3VyaXR5L3dpbmRvdy1vbmVycm9yLWV4Y2VwdGlvbi1pbi1p
ZnJhbWUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vaHR0cC90
ZXN0cy9zZWN1cml0eS93aW5kb3ctb25lcnJvci1leGNlcHRpb24taW4taWZyYW1lLWV4cGVjdGVk
LnR4dApuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi43ZDkwNzRhMDFhYjQ1YTU2ZjdlM2I3YzVjYzMzNGI5ZTNmMTdjYWVk
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vaHR0cC90
ZXN0cy9zZWN1cml0eS93aW5kb3ctb25lcnJvci1leGNlcHRpb24taW4taWZyYW1lLWV4cGVjdGVk
LnR4dApAQCAtMCwwICsxLDcgQEAKK0NPTlNPTEUgTUVTU0FHRTogbGluZSAzMzogVW5jYXVnaHQg
TWFpbkZyYW1lRXhjZXB0aW9uDQorQ09OU09MRSBNRVNTQUdFOiBsaW5lIDc6IFVuY2F1Z2h0IElm
cmFtZUV4Y2VwdGlvbg0KK1Rlc3QgdGhhdCBleGNlcHRpb25zIGluIGlmcmFtZSBhcmUgbm90IHJl
cG9ydGVkIHRvIHRoZSBtYWluIGZyYW1lIHdpbmRvdy5vbmVycm9yIGhhbmRsZXIuIHdpbmRvdy5v
bmVycm9yIHNob3VsZCBwcmludCBleGFjdGx5IG9uZSBsaW5lLg0KKw0KK01haW4gZnJhbWUgd2lu
ZG93Lm9uZXJyb3I6IFVuY2F1Z2h0IE1haW5GcmFtZUV4Y2VwdGlvbiBhdCB3aW5kb3ctb25lcnJv
ci1leGNlcHRpb24taW4taWZyYW1lLmh0bWw6MzMNCitET05FDQorDQpkaWZmIC0tZ2l0IGEvV2Vi
Q29yZS9BbmRyb2lkLmpzY2JpbmRpbmdzLm1rIGIvV2ViQ29yZS9BbmRyb2lkLmpzY2JpbmRpbmdz
Lm1rCmluZGV4IGUwN2VkMWU0ZmU1ODA4ZTAyN2E3MWI4ZTc2YzRkNDUwMzFjOTRhMTYuLjc0OWJh
MTQxZmYwY2ZlNTM5N2U2YzMyMmFhMGEwZDY0Yjc3ODFhYzkgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUv
QW5kcm9pZC5qc2NiaW5kaW5ncy5taworKysgYi9XZWJDb3JlL0FuZHJvaWQuanNjYmluZGluZ3Mu
bWsKQEAgLTk1LDYgKzk1LDcgQEAgTE9DQUxfU1JDX0ZJTEVTICs9IFwKIAliaW5kaW5ncy9qcy9K
U0RldmljZU9yaWVudGF0aW9uRXZlbnRDdXN0b20uY3BwIFwKIAliaW5kaW5ncy9qcy9KU0RvY3Vt
ZW50Q3VzdG9tLmNwcCBcCiAJYmluZGluZ3MvanMvSlNFbGVtZW50Q3VzdG9tLmNwcCBcCisJYmlu
ZGluZ3MvanMvSlNFcnJvckhhbmRsZXIuY3BwIFwKIAliaW5kaW5ncy9qcy9KU0V2ZW50Q3VzdG9t
LmNwcCBcCiAJYmluZGluZ3MvanMvSlNFdmVudExpc3RlbmVyLmNwcCBcCiAJYmluZGluZ3MvanMv
SlNFdmVudFRhcmdldC5jcHAgXApAQCAtMTU1LDcgKzE1Niw2IEBAIExPQ0FMX1NSQ19GSUxFUyAr
PSBcCiAJYmluZGluZ3MvanMvSlNXZWJLaXRQb2ludEN1c3RvbS5jcHAgXAogCWJpbmRpbmdzL2pz
L0pTV29ya2VyQ29udGV4dEJhc2UuY3BwIFwKIAliaW5kaW5ncy9qcy9KU1dvcmtlckNvbnRleHRD
dXN0b20uY3BwIFwKLQliaW5kaW5ncy9qcy9KU1dvcmtlckNvbnRleHRFcnJvckhhbmRsZXIuY3Bw
IFwKIAliaW5kaW5ncy9qcy9KU1dvcmtlckN1c3RvbS5jcHAgXAogCWJpbmRpbmdzL2pzL0pTWE1M
SHR0cFJlcXVlc3RDdXN0b20uY3BwIFwKIAliaW5kaW5ncy9qcy9KU1hNTEh0dHBSZXF1ZXN0VXBs
b2FkQ3VzdG9tLmNwcCBcCmRpZmYgLS1naXQgYS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0IGIvV2Vi
Q29yZS9DTWFrZUxpc3RzLnR4dAppbmRleCBlYjQyYzVjYWJlZjYxODgyYWRmZDIyZWIxZTA0OTU2
NjlkY2EyYjJmLi5jMWJkOTc3OGY0OTE1YWRhNTMxODA3ZmIzYTczMGRjNjFiYTk0NjA3IDEwMDY0
NAotLS0gYS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CisrKyBiL1dlYkNvcmUvQ01ha2VMaXN0cy50
eHQKQEAgLTYxOSw2ICs2MTksNyBAQCBTRVQoV2ViQ29yZV9TT1VSQ0VTCiAgICAgYmluZGluZ3Mv
anMvSlNET01XaW5kb3dTaGVsbC5jcHAKICAgICBiaW5kaW5ncy9qcy9KU0RPTVdyYXBwZXIuY3Bw
CiAgICAgYmluZGluZ3MvanMvSlNFbGVtZW50Q3VzdG9tLmNwcAorICAgIGJpbmRpbmdzL2pzL0pT
RXJyb3JIYW5kbGVyLmNwcAogICAgIGJpbmRpbmdzL2pzL0pTRXZlbnRDdXN0b20uY3BwCiAgICAg
YmluZGluZ3MvanMvSlNFdmVudExpc3RlbmVyLmNwcAogICAgIGJpbmRpbmdzL2pzL0pTRXZlbnRT
b3VyY2VDdXN0b20uY3BwCkBAIC02ODEsNyArNjgyLDYgQEAgU0VUKFdlYkNvcmVfU09VUkNFUwog
ICAgIGJpbmRpbmdzL2pzL0pTV2ViS2l0UG9pbnRDdXN0b20uY3BwCiAgICAgYmluZGluZ3MvanMv
SlNXb3JrZXJDb250ZXh0QmFzZS5jcHAKICAgICBiaW5kaW5ncy9qcy9KU1dvcmtlckNvbnRleHRD
dXN0b20uY3BwCi0gICAgYmluZGluZ3MvanMvSlNXb3JrZXJDb250ZXh0RXJyb3JIYW5kbGVyLmNw
cAogICAgIGJpbmRpbmdzL2pzL0pTV29ya2VyQ3VzdG9tLmNwcAogICAgIGJpbmRpbmdzL2pzL0pT
WE1MSHR0cFJlcXVlc3RDdXN0b20uY3BwCiAgICAgYmluZGluZ3MvanMvSlNYTUxIdHRwUmVxdWVz
dFVwbG9hZEN1c3RvbS5jcHAKZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29y
ZS9DaGFuZ2VMb2cKaW5kZXggZTNlYzM5ZGUxMWFiOTc2OGUyMjgyOWE5MjY5M2ZiM2Y4ZmM3OWI0
OC4uYWNkZjMzMzNiNTI5ZTU3YmI4MDhhZDMzNzc1ZTA4MTg0N2JlZmU1NSAxMDA2NDQKLS0tIGEv
V2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSw2OCBA
QAorMjAxMC0wOC0yMyAgWXVyeSBTZW1pa2hhdHNreSAgPHl1cnlzQGNocm9taXVtLm9yZz4KKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBXZWJDb3JlIGRv
ZXNuJ3QgZmlyZSB3aW5kb3cub25lcnJvciBldmVudCB3aGVuIHVuY2F1Z2h0IEphdmFTY3JpcHQg
ZXhjZXB0aW9ucyBhcmUgdGhyb3duCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD04NTE5CisKKyAgICAgICAgVW5jYXVnaHQgZXhjZXB0aW9ucyBhcmUgcHJv
cGFnYXRlZCB0byB3aW5kb3cub25lcnJvciBoYW5kZXIgaWYgb25lIGlzIHByZXNlbnQuCisgICAg
ICAgIFRoZSBoYW5kbGVyIGlzIGV4cGVjdGVkIHRvIGJlIGEgZnVuY3Rpb24gYWNjZXB0aW5nIHRo
cmVlIGFyZ3VtZW50czogZXJyb3IgbWVzc2FnZSwKKyAgICAgICAgcmVzb3VyY2UgdXJsIGFuZCBs
aW5lIG51bWJlciB3aGVyZSB0aGUgZXhjZXB0aW9uIG9jY3VyZWQuCisKKyAgICAgICAgVGVzdHM6
IGZhc3QvZXZlbnRzL3dpbmRvdy1vbmVycm9yMS5odG1sCisgICAgICAgICAgICAgICBmYXN0L2V2
ZW50cy93aW5kb3ctb25lcnJvcjIuaHRtbAorICAgICAgICAgICAgICAgZmFzdC9ldmVudHMvd2lu
ZG93LW9uZXJyb3IzLmh0bWwKKyAgICAgICAgICAgICAgIGZhc3QvZXZlbnRzL3dpbmRvdy1vbmVy
cm9yNC5odG1sCisgICAgICAgICAgICAgICBmYXN0L2V2ZW50cy93aW5kb3ctb25lcnJvcjUuaHRt
bAorICAgICAgICAgICAgICAgZmFzdC9ldmVudHMvd2luZG93LW9uZXJyb3I2Lmh0bWwKKyAgICAg
ICAgICAgICAgIGZhc3QvZXZlbnRzL3dpbmRvdy1vbmVycm9yNy5odG1sCisgICAgICAgICAgICAg
ICBmYXN0L2V2ZW50cy93aW5kb3ctb25lcnJvcjguaHRtbAorICAgICAgICAgICAgICAgaHR0cC90
ZXN0cy9zZWN1cml0eS93aW5kb3ctb25lcnJvci1leGNlcHRpb24taW4taWZyYW1lLmh0bWwKKwor
ICAgICAgICAqIEFuZHJvaWQuanNjYmluZGluZ3MubWs6CisgICAgICAgICogQ01ha2VMaXN0cy50
eHQ6CisgICAgICAgICogR05VbWFrZWZpbGUuYW06CisgICAgICAgICogV2ViQ29yZS5neXBpOgor
ICAgICAgICAqIFdlYkNvcmUub3JkZXI6CisgICAgICAgICogV2ViQ29yZS5wcm86CisgICAgICAg
ICogV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2o6CisgICAgICAgICogV2ViQ29yZS54Y29k
ZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pTQmluZGluZ3NB
bGxJbk9uZS5jcHA6CisgICAgICAgICogYmluZGluZ3MvanMvSlNFcnJvckhhbmRsZXIuY3BwOiBB
ZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkpTRXJyb3JIYW5kbGVyOjpKU0Vycm9ySGFuZGxlcik6
CisgICAgICAgIChXZWJDb3JlOjpKU0Vycm9ySGFuZGxlcjo6fkpTRXJyb3JIYW5kbGVyKToKKyAg
ICAgICAgKFdlYkNvcmU6OkpTRXJyb3JIYW5kbGVyOjpoYW5kbGVFdmVudCk6CisgICAgICAgICog
YmluZGluZ3MvanMvSlNFcnJvckhhbmRsZXIuaDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpK
U0Vycm9ySGFuZGxlcjo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OmNyZWF0ZUpTRXJyb3JI
YW5kbGVyKToKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU1dvcmtlckNvbnRleHRFcnJvckhhbmRs
ZXIuY3BwOiBSZW1vdmVkLgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pTV29ya2VyQ29udGV4dEVy
cm9ySGFuZGxlci5oOiBSZW1vdmVkLiBUaGlzIGNsYXNzIHdhcyByZWZhY3RvcmVkIGludG8gbW9y
ZSBnZW5lcmFsCisgICAgICAgIEpTRXJyb3JIYW5kbGVyIHRoYXQgcmVwcmVzZW50cyBnbG9iYWwg
b25lcnJvIGhhbmRlciBvbiBXb3JrZXIgQ29udGV4dCBvciBvbiBET01XaW5kb3cuCisgICAgICAg
ICogYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG06CisgICAgICAgICogYmluZGlu
Z3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9yVjgucG06CisgICAgICAgICogYmluZGluZ3MvdjgvVjhD
b25zb2xlTWVzc2FnZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpWOENvbnNvbGVNZXNzYWdlOjpk
aXNwYXRjaE5vdyk6CisgICAgICAgIChXZWJDb3JlOjpWOENvbnNvbGVNZXNzYWdlOjpoYW5kbGVy
KToKKyAgICAgICAgKiBiaW5kaW5ncy92OC9WOENvbnNvbGVNZXNzYWdlLmg6CisgICAgICAgICog
YmluZGluZ3MvdjgvVjhXaW5kb3dFcnJvckhhbmRsZXIuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdl
YkNvcmU6OlY4V2luZG93RXJyb3JIYW5kbGVyOjpWOFdpbmRvd0Vycm9ySGFuZGxlcik6CisgICAg
ICAgIChXZWJDb3JlOjpWOFdpbmRvd0Vycm9ySGFuZGxlcjo6Y2FsbExpc3RlbmVyRnVuY3Rpb24p
OgorICAgICAgICAqIGJpbmRpbmdzL3Y4L1Y4V2luZG93RXJyb3JIYW5kbGVyLmg6IEFkZGVkLgor
ICAgICAgICAoV2ViQ29yZTo6VjhXaW5kb3dFcnJvckhhbmRsZXI6OmNyZWF0ZSk6CisgICAgICAg
ICogZG9tL0RvY3VtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50OjpEb2N1bWVu
dCk6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6cmVwb3J0RXhjZXB0aW9uKToKKyAgICAg
ICAgKiBkb20vRG9jdW1lbnQuaDoKKyAgICAgICAgKiBkb20vU2NyaXB0RXhlY3V0aW9uQ29udGV4
dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTY3JpcHRFeGVjdXRpb25Db250ZXh0OjpTY3JpcHRF
eGVjdXRpb25Db250ZXh0KToKKyAgICAgICAgKFdlYkNvcmU6OlNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHQ6Omludm9rZU9uRXJyb3JIYW5kbGVyKTogdXRpbGl0eSBtZXRob2QgdGhhdCBhbGxvd3MgdG8g
aW52b2tlIG9uZXJyb3IKKyAgICAgICAgaGFuZGVyIGFjY2VwdGluZyB0aHJlZSBwYXJhbWV0ZXJz
KG1lc3NhZ2UsIHVybCBhbmQgbGluZSBudW1iZXIpIGZvciBXaW5kb3cgYW5kIFdvcmtlciBDb250
ZXh0LgorICAgICAgICAqIGRvbS9TY3JpcHRFeGVjdXRpb25Db250ZXh0Lmg6CisgICAgICAgICog
d29ya2Vycy9Xb3JrZXJDb250ZXh0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OldvcmtlckNvbnRl
eHQ6OldvcmtlckNvbnRleHQpOgorICAgICAgICAoV2ViQ29yZTo6V29ya2VyQ29udGV4dDo6cmVw
b3J0RXhjZXB0aW9uKToKKyAgICAgICAgKiB3b3JrZXJzL1dvcmtlckNvbnRleHQuaDoKKwogMjAx
MC0wOC0yMyAgQXJpeWEgSGlkYXlhdCAgPGFyaXlhQHNlbmNoYS5jb20+CiAKICAgICAgICAgUmV2
aWV3ZWQgYnkgS2VubmV0aCBSb2hkZSBDaHJpc3RpYW5zZW4uCmRpZmYgLS1naXQgYS9XZWJDb3Jl
L0dOVW1ha2VmaWxlLmFtIGIvV2ViQ29yZS9HTlVtYWtlZmlsZS5hbQppbmRleCBmMWVjNDQ1NDIx
YzJkZjM4Y2VkYzVkNjFhNWM5Y2M5NDE3NDBhYzIxLi5jNzlhYjVlNmUzNmEwMzE5NmU1ZjFjYjU5
NWM1NGU0N2EzNzVmY2FjIDEwMDY0NAotLS0gYS9XZWJDb3JlL0dOVW1ha2VmaWxlLmFtCisrKyBi
L1dlYkNvcmUvR05VbWFrZWZpbGUuYW0KQEAgLTY4MCw2ICs2ODAsOCBAQCB3ZWJjb3JlX3NvdXJj
ZXMgKz0gXAogCVdlYkNvcmUvYmluZGluZ3MvanMvSlNEZXZpY2VPcmllbnRhdGlvbkV2ZW50Q3Vz
dG9tLmNwcCBcCiAJV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RvY3VtZW50Q3VzdG9tLmNwcCBcCiAJ
V2ViQ29yZS9iaW5kaW5ncy9qcy9KU0VsZW1lbnRDdXN0b20uY3BwIFwKKwlXZWJDb3JlL2JpbmRp
bmdzL2pzL0pTRXJyb3JIYW5kbGVyLmNwcCBcCisJV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0Vycm9y
SGFuZGxlci5oIFwKIAlXZWJDb3JlL2JpbmRpbmdzL2pzL0pTRXZlbnRDdXN0b20uY3BwIFwKIAlX
ZWJDb3JlL2JpbmRpbmdzL2pzL0pTRXZlbnRMaXN0ZW5lci5jcHAgXAogCVdlYkNvcmUvYmluZGlu
Z3MvanMvSlNFdmVudExpc3RlbmVyLmggXApAQCAtNzUyLDggKzc1NCw2IEBAIHdlYmNvcmVfc291
cmNlcyArPSBcCiAJV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1RyZWVXYWxrZXJDdXN0b20uY3BwIFwK
IAlXZWJDb3JlL2JpbmRpbmdzL2pzL0pTV2ViS2l0Q1NTTWF0cml4Q3VzdG9tLmNwcCBcCiAJV2Vi
Q29yZS9iaW5kaW5ncy9qcy9KU1dlYktpdFBvaW50Q3VzdG9tLmNwcCBcCi0JV2ViQ29yZS9iaW5k
aW5ncy9qcy9KU1dvcmtlckNvbnRleHRFcnJvckhhbmRsZXIuY3BwIFwKLQlXZWJDb3JlL2JpbmRp
bmdzL2pzL0pTV29ya2VyQ29udGV4dEVycm9ySGFuZGxlci5oIFwKIAlXZWJDb3JlL2JpbmRpbmdz
L2pzL0pTWE1MSHR0cFJlcXVlc3RDdXN0b20uY3BwIFwKIAlXZWJDb3JlL2JpbmRpbmdzL2pzL0pT
WE1MSHR0cFJlcXVlc3RVcGxvYWRDdXN0b20uY3BwIFwKIAlXZWJDb3JlL2JpbmRpbmdzL2pzL0pT
WFNMVFByb2Nlc3NvckN1c3RvbS5jcHAgXApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9XZWJDb3JlLmd5
cGkgYi9XZWJDb3JlL1dlYkNvcmUuZ3lwaQppbmRleCBmNDczOGE1MmQ5OTkwMjY5MjY4MDMzMTQ5
NjZmYjUwZmVmOGU3ZWIwLi41NTRkZDQxYzAxZjMyMzc0ZmE3ZTI3ZGNjN2EwM2ZmNDc0YmY2YmEx
IDEwMDY0NAotLS0gYS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQorKysgYi9XZWJDb3JlL1dlYkNvcmUu
Z3lwaQpAQCAtNTc0LDYgKzU3NCw4IEBACiAgICAgICAgICAgICAnYmluZGluZ3MvanMvSlNET01X
cmFwcGVyLmNwcCcsCiAgICAgICAgICAgICAnYmluZGluZ3MvanMvSlNET01XcmFwcGVyLmgnLAog
ICAgICAgICAgICAgJ2JpbmRpbmdzL2pzL0pTRWxlbWVudEN1c3RvbS5jcHAnLAorICAgICAgICAg
ICAgJ2JpbmRpbmdzL2pzL0pTRXJyb3JIYW5kbGVyLmNwcCcsCisgICAgICAgICAgICAnYmluZGlu
Z3MvanMvSlNFcnJvckhhbmRsZXIuaCcsCiAgICAgICAgICAgICAnYmluZGluZ3MvanMvSlNFdmVu
dEN1c3RvbS5jcHAnLAogICAgICAgICAgICAgJ2JpbmRpbmdzL2pzL0pTRXZlbnRMaXN0ZW5lci5j
cHAnLAogICAgICAgICAgICAgJ2JpbmRpbmdzL2pzL0pTRXZlbnRMaXN0ZW5lci5oJywKQEAgLTY2
Niw4ICs2NjgsNiBAQAogICAgICAgICAgICAgJ2JpbmRpbmdzL2pzL0pTV29ya2VyQ29udGV4dEJh
c2UuY3BwJywKICAgICAgICAgICAgICdiaW5kaW5ncy9qcy9KU1dvcmtlckNvbnRleHRCYXNlLmgn
LAogICAgICAgICAgICAgJ2JpbmRpbmdzL2pzL0pTV29ya2VyQ29udGV4dEN1c3RvbS5jcHAnLAot
ICAgICAgICAgICAgJ2JpbmRpbmdzL2pzL0pTV29ya2VyQ29udGV4dEVycm9ySGFuZGxlci5jcHAn
LAotICAgICAgICAgICAgJ2JpbmRpbmdzL2pzL0pTV29ya2VyQ29udGV4dEVycm9ySGFuZGxlci5o
JywKICAgICAgICAgICAgICdiaW5kaW5ncy9qcy9KU1dvcmtlckN1c3RvbS5jcHAnLAogICAgICAg
ICAgICAgJ2JpbmRpbmdzL2pzL0pTWE1MSHR0cFJlcXVlc3RDdXN0b20uY3BwJywKICAgICAgICAg
ICAgICdiaW5kaW5ncy9qcy9KU1hNTEh0dHBSZXF1ZXN0VXBsb2FkQ3VzdG9tLmNwcCcsCkBAIC05
MjMsNiArOTIzLDggQEAKICAgICAgICAgICAgICdiaW5kaW5ncy92OC9WOFNWR1BPRFR5cGVXcmFw
cGVyLmgnLAogICAgICAgICAgICAgJ2JpbmRpbmdzL3Y4L1Y4VXRpbGl0aWVzLmNwcCcsCiAgICAg
ICAgICAgICAnYmluZGluZ3MvdjgvVjhVdGlsaXRpZXMuaCcsCisgICAgICAgICAgICAnYmluZGlu
Z3MvdjgvVjhXaW5kb3dFcnJvckhhbmRsZXIuY3BwJywKKyAgICAgICAgICAgICdiaW5kaW5ncy92
OC9WOFdpbmRvd0Vycm9ySGFuZGxlci5oJywKICAgICAgICAgICAgICdiaW5kaW5ncy92OC9WOFdv
cmtlckNvbnRleHRFcnJvckhhbmRsZXIuY3BwJywKICAgICAgICAgICAgICdiaW5kaW5ncy92OC9W
OFdvcmtlckNvbnRleHRFcnJvckhhbmRsZXIuaCcsCiAgICAgICAgICAgICAnYmluZGluZ3Mvdjgv
VjhXb3JrZXJDb250ZXh0RXZlbnRMaXN0ZW5lci5jcHAnLApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9X
ZWJDb3JlLm9yZGVyIGIvV2ViQ29yZS9XZWJDb3JlLm9yZGVyCmluZGV4IDQxMjQ3NzczYmEzN2Vm
ZDUwNWViN2YxZWM1ODQ3OGVjNTYyZmMwOTcuLmZiMThkNjQ4MjcyMzFlYmNiZTlhMGZiMWVlNDQ2
MWY2M2ZhNTA3MmMgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvV2ViQ29yZS5vcmRlcgorKysgYi9XZWJD
b3JlL1dlYkNvcmUub3JkZXIKQEAgLTI1MjE3LDEzICsyNTIxNyw5IEBAIF9fWk43V2ViQ29yZTE1
SlNXb3JrZXJDb250ZXh0MTBzZXRUaW1lb3V0RVBOM0pTQzlFeGVjU3RhdGVFUktOUzFfN0FyZ0xp
c3RFCiBfX1pON1dlYkNvcmUxM1dvcmtlckNvbnRleHQxMHNldFRpbWVvdXRFUE5TXzE1U2NoZWR1
bGVkQWN0aW9uRWkKIF9fWk43V2ViQ29yZTE3V29ya2VyU2hhcmVkVGltZXIxMXNldEZpcmVUaW1l
RWQKIF9fWk43V2ViQ29yZTE1U2NoZWR1bGVkQWN0aW9uN2V4ZWN1dGVFUE5TXzEzV29ya2VyQ29u
dGV4dEUKLV9fWk43V2ViQ29yZTI3SlNXb3JrZXJDb250ZXh0RXJyb3JIYW5kbGVyQzFFUE4zSlND
OEpTT2JqZWN0RVMzX2JQTlNfMTVET01XcmFwcGVyV29ybGRFCi1fX1pON1dlYkNvcmUyN0pTV29y
a2VyQ29udGV4dEVycm9ySGFuZGxlckMyRVBOM0pTQzhKU09iamVjdEVTM19iUE5TXzE1RE9NV3Jh
cHBlcldvcmxkRQogX19aTjdXZWJDb3JlMTBFcnJvckV2ZW50QzFFUktOU182U3RyaW5nRVMzX2oK
IF9fWk43V2ViQ29yZTEwRXJyb3JFdmVudEMyRVJLTlNfNlN0cmluZ0VTM19qCi1fX1pON1dlYkNv
cmUyN0pTV29ya2VyQ29udGV4dEVycm9ySGFuZGxlcjExaGFuZGxlRXZlbnRFUE5TXzIyU2NyaXB0
RXhlY3V0aW9uQ29udGV4dEVQTlNfNUV2ZW50RQogX19aTjdXZWJDb3JlMTBFcnJvckV2ZW50RDBF
dgotX19aTjdXZWJDb3JlMjdKU1dvcmtlckNvbnRleHRFcnJvckhhbmRsZXJEMEV2CiBfX1pON1dl
YkNvcmUxN2pzV29ya2VyT25tZXNzYWdlRVBOM0pTQzlFeGVjU3RhdGVFTlMwXzdKU1ZhbHVlRVJL
TlMwXzEwSWRlbnRpZmllckUKIF9fWk43V2ViQ29yZTM0anNXb3JrZXJQcm90b3R5cGVGdW5jdGlv
blRlcm1pbmF0ZUVQTjNKU0M5RXhlY1N0YXRlRVBOUzBfOEpTT2JqZWN0RU5TMF83SlNWYWx1ZUVS
S05TMF83QXJnTGlzdEUKIF9fWlRobjhfTjdXZWJDb3JlMjBXb3JrZXJNZXNzYWdpbmdQcm94eTE5
d29ya2VyQ29udGV4dENsb3NlZEV2CmRpZmYgLS1naXQgYS9XZWJDb3JlL1dlYkNvcmUucHJvIGIv
V2ViQ29yZS9XZWJDb3JlLnBybwppbmRleCAxM2FhMDczMzU5YzFmNGQ1MjNhMGRlYThhMGY0ZjE3
MTA0NGZhNzA3Li5iNzBiN2FjY2NhMjBlMGU4OWUwOTUwZDJjOTkxZTIwNWVlOTJlZmFjIDEwMDY0
NAotLS0gYS9XZWJDb3JlL1dlYkNvcmUucHJvCisrKyBiL1dlYkNvcmUvV2ViQ29yZS5wcm8KQEAg
LTMxOSw2ICszMTksNyBAQCBTT1VSQ0VTICs9IFwKICAgICBiaW5kaW5ncy9qcy9KU0RPTVdpbmRv
d1NoZWxsLmNwcCBcCiAgICAgYmluZGluZ3MvanMvSlNET01XcmFwcGVyLmNwcCBcCiAgICAgYmlu
ZGluZ3MvanMvSlNFbGVtZW50Q3VzdG9tLmNwcCBcCisgICAgYmluZGluZ3MvanMvSlNFcnJvckhh
bmRsZXIuY3BwIFwKICAgICBiaW5kaW5ncy9qcy9KU0V2ZW50Q3VzdG9tLmNwcCBcCiAgICAgYmlu
ZGluZ3MvanMvSlNFdmVudFNvdXJjZUN1c3RvbS5jcHAgXAogICAgIGJpbmRpbmdzL2pzL0pTRXZl
bnRUYXJnZXQuY3BwIFwKQEAgLTM3NSw3ICszNzYsNiBAQCBTT1VSQ0VTICs9IFwKICAgICBiaW5k
aW5ncy9qcy9KU01haW5UaHJlYWRFeGVjU3RhdGUuY3BwIFwKICAgICBiaW5kaW5ncy9qcy9KU1Bs
dWdpbkVsZW1lbnRGdW5jdGlvbnMuY3BwIFwKICAgICBiaW5kaW5ncy9qcy9KU1BvcFN0YXRlRXZl
bnRDdXN0b20uY3BwIFwKLSAgICBiaW5kaW5ncy9qcy9KU1dvcmtlckNvbnRleHRFcnJvckhhbmRs
ZXIuY3BwIFwKICAgICBiaW5kaW5ncy9qcy9TY3JpcHRDYWNoZWRGcmFtZURhdGEuY3BwIFwKICAg
ICBiaW5kaW5ncy9qcy9TY3JpcHRDYWxsRnJhbWUuY3BwIFwKICAgICBiaW5kaW5ncy9qcy9TY3Jp
cHRDYWxsU3RhY2suY3BwIFwKQEAgLTExMjgsNiArMTEyOCw3IEBAIEhFQURFUlMgKz0gXAogICAg
IGJpbmRpbmdzL2pzL0pTRE9NV2luZG93Q3VzdG9tLmggXAogICAgIGJpbmRpbmdzL2pzL0pTRE9N
V2luZG93U2hlbGwuaCBcCiAgICAgYmluZGluZ3MvanMvSlNET01XcmFwcGVyLmggXAorICAgIGJp
bmRpbmdzL2pzL0pTRXJyb3JIYW5kbGVyLmggXAogICAgIGJpbmRpbmdzL2pzL0pTRXZlbnRMaXN0
ZW5lci5oIFwKICAgICBiaW5kaW5ncy9qcy9KU0V2ZW50VGFyZ2V0LmggXAogICAgIGJpbmRpbmdz
L2pzL0pTSGlzdG9yeUN1c3RvbS5oIFwKQEAgLTExNDUsNyArMTE0Niw2IEBAIEhFQURFUlMgKz0g
XAogICAgIGJpbmRpbmdzL2pzL0pTUGx1Z2luRWxlbWVudEZ1bmN0aW9ucy5oIFwKICAgICBiaW5k
aW5ncy9qcy9KU1N0b3JhZ2VDdXN0b20uaCBcCiAgICAgYmluZGluZ3MvanMvSlNXb3JrZXJDb250
ZXh0QmFzZS5oIFwKLSAgICBiaW5kaW5ncy9qcy9KU1dvcmtlckNvbnRleHRFcnJvckhhbmRsZXIu
aCBcCiAgICAgYmluZGluZ3MvanMvSmF2YVNjcmlwdENhbGxGcmFtZS5oIFwKICAgICBiaW5kaW5n
cy9qcy9TY2hlZHVsZWRBY3Rpb24uaCBcCiAgICAgYmluZGluZ3MvanMvU2NyaXB0Q2FjaGVkRnJh
bWVEYXRhLmggXApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZj
cHJvaiBiL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oKaW5kZXggNzQ4NjAz
MzQzOGJmMTMwNGNkMjE3MjA0NWJlOGIxYjNlMDJhMWM0Yy4uNGZkM2Y3YTI4YzMwNjlkOWY5MWVk
NGZhZDRmMzNlNzU3NTU4MmJhYSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9X
ZWJDb3JlLnZjcHJvagorKysgYi9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9q
CkBAIC00NDEwNCw2ICs0NDEwNCw2MiBAQAogCQkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPg0KIAkJ
CQk8L0ZpbGU+DQogCQkJCTxGaWxlDQorCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGJpbmRpbmdzXGpz
XEpTRXJyb3JIYW5kbGVyLmNwcCINCisJCQkJCT4NCisJCQkJCTxGaWxlQ29uZmlndXJhdGlvbg0K
KwkJCQkJCU5hbWU9IkRlYnVnfFdpbjMyIg0KKwkJCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVl
Ig0KKwkJCQkJCT4NCisJCQkJCQk8VG9vbA0KKwkJCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29s
Ig0KKwkJCQkJCS8+DQorCQkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPg0KKwkJCQkJPEZpbGVDb25m
aWd1cmF0aW9uDQorCQkJCQkJTmFtZT0iUmVsZWFzZXxXaW4zMiINCisJCQkJCQlFeGNsdWRlZEZy
b21CdWlsZD0idHJ1ZSINCisJCQkJCQk+DQorCQkJCQkJPFRvb2wNCisJCQkJCQkJTmFtZT0iVkND
TENvbXBpbGVyVG9vbCINCisJCQkJCQkvPg0KKwkJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4NCisJ
CQkJCTxGaWxlQ29uZmlndXJhdGlvbg0KKwkJCQkJCU5hbWU9IkRlYnVnX0ludGVybmFsfFdpbjMy
Ig0KKwkJCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIg0KKwkJCQkJCT4NCisJCQkJCQk8VG9v
bA0KKwkJCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIg0KKwkJCQkJCS8+DQorCQkJCQk8L0Zp
bGVDb25maWd1cmF0aW9uPg0KKwkJCQkJPEZpbGVDb25maWd1cmF0aW9uDQorCQkJCQkJTmFtZT0i
RGVidWdfQ2Fpcm98V2luMzIiDQorCQkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiDQorCQkJ
CQkJPg0KKwkJCQkJCTxUb29sDQorCQkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiDQorCQkJ
CQkJLz4NCisJCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+DQorCQkJCQk8RmlsZUNvbmZpZ3VyYXRp
b24NCisJCQkJCQlOYW1lPSJSZWxlYXNlX0NhaXJvfFdpbjMyIg0KKwkJCQkJCUV4Y2x1ZGVkRnJv
bUJ1aWxkPSJ0cnVlIg0KKwkJCQkJCT4NCisJCQkJCQk8VG9vbA0KKwkJCQkJCQlOYW1lPSJWQ0NM
Q29tcGlsZXJUb29sIg0KKwkJCQkJCS8+DQorCQkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPg0KKwkJ
CQkJPEZpbGVDb25maWd1cmF0aW9uDQorCQkJCQkJTmFtZT0iRGVidWdfQWxsfFdpbjMyIg0KKwkJ
CQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIg0KKwkJCQkJCT4NCisJCQkJCQk8VG9vbA0KKwkJ
CQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIg0KKwkJCQkJCS8+DQorCQkJCQk8L0ZpbGVDb25m
aWd1cmF0aW9uPg0KKwkJCQk8L0ZpbGU+DQorCQkJCTxGaWxlDQorCQkJCQlSZWxhdGl2ZVBhdGg9
Ii4uXGJpbmRpbmdzXGpzXEpTRXJyb3JIYW5kbGVyLmgiDQorCQkJCQk+DQorCQkJCTwvRmlsZT4N
CisJCQkJPEZpbGUNCiAJCQkJCVJlbGF0aXZlUGF0aD0iLi5cYmluZGluZ3NcanNcSlNFdmVudEN1
c3RvbS5jcHAiDQogCQkJCQk+DQogCQkJCQk8RmlsZUNvbmZpZ3VyYXRpb24NCkBAIC00ODQ5Niw2
MiArNDg1NTIsNiBAQAogCQkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPg0KIAkJCQk8L0ZpbGU+DQog
CQkJCTxGaWxlDQotCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGJpbmRpbmdzXGpzXEpTV29ya2VyQ29u
dGV4dEVycm9ySGFuZGxlci5jcHAiDQotCQkJCQk+DQotCQkJCQk8RmlsZUNvbmZpZ3VyYXRpb24N
Ci0JCQkJCQlOYW1lPSJEZWJ1Z3xXaW4zMiINCi0JCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1
ZSINCi0JCQkJCQk+DQotCQkJCQkJPFRvb2wNCi0JCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9v
bCINCi0JCQkJCQkvPg0KLQkJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4NCi0JCQkJCTxGaWxlQ29u
ZmlndXJhdGlvbg0KLQkJCQkJCU5hbWU9IlJlbGVhc2V8V2luMzIiDQotCQkJCQkJRXhjbHVkZWRG
cm9tQnVpbGQ9InRydWUiDQotCQkJCQkJPg0KLQkJCQkJCTxUb29sDQotCQkJCQkJCU5hbWU9IlZD
Q0xDb21waWxlclRvb2wiDQotCQkJCQkJLz4NCi0JCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+DQot
CQkJCQk8RmlsZUNvbmZpZ3VyYXRpb24NCi0JCQkJCQlOYW1lPSJEZWJ1Z19JbnRlcm5hbHxXaW4z
MiINCi0JCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSINCi0JCQkJCQk+DQotCQkJCQkJPFRv
b2wNCi0JCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCINCi0JCQkJCQkvPg0KLQkJCQkJPC9G
aWxlQ29uZmlndXJhdGlvbj4NCi0JCQkJCTxGaWxlQ29uZmlndXJhdGlvbg0KLQkJCQkJCU5hbWU9
IkRlYnVnX0NhaXJvfFdpbjMyIg0KLQkJCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIg0KLQkJ
CQkJCT4NCi0JCQkJCQk8VG9vbA0KLQkJCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIg0KLQkJ
CQkJCS8+DQotCQkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPg0KLQkJCQkJPEZpbGVDb25maWd1cmF0
aW9uDQotCQkJCQkJTmFtZT0iUmVsZWFzZV9DYWlyb3xXaW4zMiINCi0JCQkJCQlFeGNsdWRlZEZy
b21CdWlsZD0idHJ1ZSINCi0JCQkJCQk+DQotCQkJCQkJPFRvb2wNCi0JCQkJCQkJTmFtZT0iVkND
TENvbXBpbGVyVG9vbCINCi0JCQkJCQkvPg0KLQkJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4NCi0J
CQkJCTxGaWxlQ29uZmlndXJhdGlvbg0KLQkJCQkJCU5hbWU9IkRlYnVnX0FsbHxXaW4zMiINCi0J
CQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSINCi0JCQkJCQk+DQotCQkJCQkJPFRvb2wNCi0J
CQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCINCi0JCQkJCQkvPg0KLQkJCQkJPC9GaWxlQ29u
ZmlndXJhdGlvbj4NCi0JCQkJPC9GaWxlPg0KLQkJCQk8RmlsZQ0KLQkJCQkJUmVsYXRpdmVQYXRo
PSIuLlxiaW5kaW5nc1xqc1xKU1dvcmtlckNvbnRleHRFcnJvckhhbmRsZXIuaCINCi0JCQkJCT4N
Ci0JCQkJPC9GaWxlPg0KLQkJCQk8RmlsZQ0KIAkJCQkJUmVsYXRpdmVQYXRoPSIuLlxiaW5kaW5n
c1xqc1xKU1hNTEh0dHBSZXF1ZXN0Q3VzdG9tLmNwcCINCiAJCQkJCT4NCiAJCQkJCTxGaWxlQ29u
ZmlndXJhdGlvbg0KZGlmZiAtLWdpdCBhL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qIGIvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5k
ZXggODA1OWFhMmUyN2FhYTNlNzZmODVmNWQ2NDY0MGU3MDY4NWU2ZmM5ZC4uZmU4YWViZjEyMGY4
OTc1Zjk3YjhkNmQ3MDhiNWRkZDA0MjAwMjU4MSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9XZWJDb3Jl
Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJv
ai9wcm9qZWN0LnBieHByb2oKQEAgLTUzMDEsOCArNTMwMSw4IEBACiAJCUYzNjQ0QUZGMTExOTgw
NTkwMEUwRDUzNyAvKiBJbmplY3RlZFNjcmlwdC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGMzY0NEFGRDExMTk4MDU5MDBFMEQ1MzcgLyogSW5qZWN0
ZWRTY3JpcHQuY3BwICovOyB9OwogCQlGMzY0NEIwMDExMTk4MDU5MDBFMEQ1MzcgLyogSW5qZWN0
ZWRTY3JpcHQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IEYzNjQ0QUZFMTExOTgwNTkwMEUwRDUzNyAvKiBJbmplY3RlZFNjcmlwdC5oICovOyB9OwogCQlG
Mzc1Q0MwNzExNTBEMzAwMDA4RERCODEgLyogSW5zcGVjdG9yV29ya2VyUmVzb3VyY2UuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEYzNzVDQzA2MTE1MEQz
MDAwMDhEREI4MSAvKiBJbnNwZWN0b3JXb3JrZXJSZXNvdXJjZS5oICovOyB9OwotCQlGM0Q0NjE0
ODExNjFENTMyMDBDQTBEMDkgLyogSlNXb3JrZXJDb250ZXh0RXJyb3JIYW5kbGVyLmNwcCBpbiBT
b3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEYzRDQ2MTQ2MTE2MUQ1
MzIwMENBMEQwOSAvKiBKU1dvcmtlckNvbnRleHRFcnJvckhhbmRsZXIuY3BwICovOyB9OwotCQlG
M0Q0NjE0OTExNjFENTMyMDBDQTBEMDkgLyogSlNXb3JrZXJDb250ZXh0RXJyb3JIYW5kbGVyLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGM0Q0NjE0NzEx
NjFENTMyMDBDQTBEMDkgLyogSlNXb3JrZXJDb250ZXh0RXJyb3JIYW5kbGVyLmggKi87IH07CisJ
CUYzRDQ2MTQ4MTE2MUQ1MzIwMENBMEQwOSAvKiBKU0Vycm9ySGFuZGxlci5jcHAgaW4gU291cmNl
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGM0Q0NjE0NjExNjFENTMyMDBD
QTBEMDkgLyogSlNFcnJvckhhbmRsZXIuY3BwICovOyB9OworCQlGM0Q0NjE0OTExNjFENTMyMDBD
QTBEMDkgLyogSlNFcnJvckhhbmRsZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IEYzRDQ2MTQ3MTE2MUQ1MzIwMENBMEQwOSAvKiBKU0Vycm9ySGFuZGxl
ci5oICovOyB9OwogCQlGNEVBRjRBRTEwQzc0MkIxMDA5MTAwRDMgLyogT3BlblR5cGVTYW5pdGl6
ZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjRF
QUY0QUMxMEM3NDJCMTAwOTEwMEQzIC8qIE9wZW5UeXBlU2FuaXRpemVyLmNwcCAqLzsgfTsKIAkJ
RjRFQUY0QUYxMEM3NDJCMTAwOTEwMEQzIC8qIE9wZW5UeXBlU2FuaXRpemVyLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNEVBRjRBRDEwQzc0MkIxMDA5
MTAwRDMgLyogT3BlblR5cGVTYW5pdGl6ZXIuaCAqLzsgfTsKIAkJRjVDMDQxREEwRkZDQTdDRTAw
ODM5RDRBIC8qIEhUTUxEYXRhTGlzdEVsZW1lbnQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjVDMDQxRDcwRkZDQTdDRTAwODM5RDRBIC8qIEhUTUxE
YXRhTGlzdEVsZW1lbnQuY3BwICovOyB9OwpAQCAtMTExMzUsOCArMTExMzUsOCBAQAogCQlGMzY0
NEFGRDExMTk4MDU5MDBFMEQ1MzcgLyogSW5qZWN0ZWRTY3JpcHQuY3BwICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSW5qZWN0ZWRTY3JpcHQuY3BwOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQlGMzY0NEFGRTExMTk4MDU5MDBFMEQ1MzcgLyogSW5qZWN0ZWRTY3Jp
cHQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSW5qZWN0ZWRTY3JpcHQuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRjM3NUNDMDYxMTUwRDMwMDAwOEREQjgxIC8q
IEluc3BlY3RvcldvcmtlclJlc291cmNlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IEluc3BlY3RvcldvcmtlclJlc291cmNlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
Ci0JCUYzRDQ2MTQ2MTE2MUQ1MzIwMENBMEQwOSAvKiBKU1dvcmtlckNvbnRleHRFcnJvckhhbmRs
ZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNXb3JrZXJDb250
ZXh0RXJyb3JIYW5kbGVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJRjNENDYx
NDcxMTYxRDUzMjAwQ0EwRDA5IC8qIEpTV29ya2VyQ29udGV4dEVycm9ySGFuZGxlci5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKU1dvcmtlckNvbnRleHRFcnJvckhhbmRsZXIu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRjNENDYxNDYxMTYxRDUzMjAwQ0EwRDA5
IC8qIEpTRXJyb3JIYW5kbGVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0
aCA9IEpTRXJyb3JIYW5kbGVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRjNE
NDYxNDcxMTYxRDUzMjAwQ0EwRDA5IC8qIEpTRXJyb3JIYW5kbGVyLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IEpTRXJyb3JIYW5kbGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCUY0RUFGNEFDMTBDNzQyQjEwMDkxMDBEMyAvKiBPcGVuVHlwZVNhbml0aXplci5j
cHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBPcGVuVHlwZVNhbml0aXpl
ci5jcHA7IHBhdGggPSBvcGVudHlwZS9PcGVuVHlwZVNhbml0aXplci5jcHA7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCUY0RUFGNEFEMTBDNzQyQjEwMDkxMDBEMyAvKiBPcGVuVHlwZVNh
bml0aXplci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBPcGVuVHlwZVNhbml0
aXplci5oOyBwYXRoID0gb3BlbnR5cGUvT3BlblR5cGVTYW5pdGl6ZXIuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJRjUyM0QyM0IwMkRFNDM5NjAxODYzNUNBIC8qIEhUTUxEb2N1bWVu
dC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGlu
ZGVudFdpZHRoID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBh
dGggPSBIVE1MRG9jdW1lbnQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB0YWJXaWR0aCA9
IDg7IHVzZXNUYWJzID0gMDsgfTsKQEAgLTE2MDY4LDYgKzE2MDY4LDggQEAKIAkJCQlCQ0JGQjUz
QjBEQ0QyOUNGMDAxOUIzRTUgLyogSlNET01XaW5kb3dTaGVsbC5oICovLAogCQkJCUJDNTNEQUM2
MTE0MzMwNjQwMDBEODE3RSAvKiBKU0RPTVdyYXBwZXIuY3BwICovLAogCQkJCTY1RTBFOTQzMTEz
M0M4OUYwMEI0Q0IxMCAvKiBKU0RPTVdyYXBwZXIuaCAqLywKKwkJCQlGM0Q0NjE0NjExNjFENTMy
MDBDQTBEMDkgLyogSlNFcnJvckhhbmRsZXIuY3BwICovLAorCQkJCUYzRDQ2MTQ3MTE2MUQ1MzIw
MENBMEQwOSAvKiBKU0Vycm9ySGFuZGxlci5oICovLAogCQkJCUJDNjA5MDFFMEU5MUI4RUMwMDBD
NjhCNSAvKiBKU0V2ZW50VGFyZ2V0LmNwcCAqLywKIAkJCQlCQzYwOTAxRDBFOTFCOEVDMDAwQzY4
QjUgLyogSlNFdmVudFRhcmdldC5oICovLAogCQkJCTMzMTRBQ0U5MTA4OTIwODYwMDBGMEU1NiAv
KiBKU0V4Y2VwdGlvbkJhc2UuY3BwICovLApAQCAtMTYwODAsOCArMTYwODIsNiBAQAogCQkJCUIy
MTEyN0E1MEIzMTg2NzcwMDA5QkU1MyAvKiBKU1NWR1BPRFR5cGVXcmFwcGVyLmggKi8sCiAJCQkJ
RTFDMzZEMzIwRUIwQTA5NDAwNzQxMEJDIC8qIEpTV29ya2VyQ29udGV4dEJhc2UuY3BwICovLAog
CQkJCUUxQzM2RDMzMEVCMEEwOTQwMDc0MTBCQyAvKiBKU1dvcmtlckNvbnRleHRCYXNlLmggKi8s
Ci0JCQkJRjNENDYxNDYxMTYxRDUzMjAwQ0EwRDA5IC8qIEpTV29ya2VyQ29udGV4dEVycm9ySGFu
ZGxlci5jcHAgKi8sCi0JCQkJRjNENDYxNDcxMTYxRDUzMjAwQ0EwRDA5IC8qIEpTV29ya2VyQ29u
dGV4dEVycm9ySGFuZGxlci5oICovLAogCQkJCUJDQTM3OEJBMEQxNUY2NDIwMEI3OTNENiAvKiBT
Y2hlZHVsZWRBY3Rpb24uY3BwICovLAogCQkJCUJDQTM3OEJCMEQxNUY2NDIwMEI3OTNENiAvKiBT
Y2hlZHVsZWRBY3Rpb24uaCAqLywKIAkJCQk0MUYxRDIxRTBFRjM1QzJBMDBEQTg3NTMgLyogU2Ny
aXB0Q2FjaGVkRnJhbWVEYXRhLmNwcCAqLywKQEAgLTE5NDA5LDcgKzE5NDA5LDcgQEAKIAkJCQlF
MUNBQTVDNjBFOEJEMjM2MDBBNzNFQ0EgLyogSlNXb3JrZXIuaCBpbiBIZWFkZXJzICovLAogCQkJ
CUUxODI1NjkwMEVGMkIwMkQwMDkzMzI0MiAvKiBKU1dvcmtlckNvbnRleHQuaCBpbiBIZWFkZXJz
ICovLAogCQkJCUUxQzM2RDM1MEVCMEEwOTQwMDc0MTBCQyAvKiBKU1dvcmtlckNvbnRleHRCYXNl
LmggaW4gSGVhZGVycyAqLywKLQkJCQlGM0Q0NjE0OTExNjFENTMyMDBDQTBEMDkgLyogSlNXb3Jr
ZXJDb250ZXh0RXJyb3JIYW5kbGVyLmggaW4gSGVhZGVycyAqLywKKwkJCQlGM0Q0NjE0OTExNjFE
NTMyMDBDQTBEMDkgLyogSlNFcnJvckhhbmRsZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCUUxQzM2
MkVGMEVBRjJBQTkwMDc0MTBCQyAvKiBKU1dvcmtlckxvY2F0aW9uLmggaW4gSGVhZGVycyAqLywK
IAkJCQlFMTI3MUE1ODBFRUVDREU0MDBGNjEyMTMgLyogSlNXb3JrZXJOYXZpZ2F0b3IuaCBpbiBI
ZWFkZXJzICovLAogCQkJCUJDMzQ4QkQ0MERCN0Y4MDQwMDRBQkFCOSAvKiBKU1hNTEh0dHBSZXF1
ZXN0LmggaW4gSGVhZGVycyAqLywKQEAgLTIxOTc3LDcgKzIxOTc3LDcgQEAKIAkJCQlFMTgyNTY4
RjBFRjJCMDJEMDA5MzMyNDIgLyogSlNXb3JrZXJDb250ZXh0LmNwcCBpbiBTb3VyY2VzICovLAog
CQkJCUUxQzM2RDM0MEVCMEEwOTQwMDc0MTBCQyAvKiBKU1dvcmtlckNvbnRleHRCYXNlLmNwcCBp
biBTb3VyY2VzICovLAogCQkJCUUxODI1OEFDMEVGM0NENzAwMDkzMzI0MiAvKiBKU1dvcmtlckNv
bnRleHRDdXN0b20uY3BwIGluIFNvdXJjZXMgKi8sCi0JCQkJRjNENDYxNDgxMTYxRDUzMjAwQ0Ew
RDA5IC8qIEpTV29ya2VyQ29udGV4dEVycm9ySGFuZGxlci5jcHAgaW4gU291cmNlcyAqLywKKwkJ
CQlGM0Q0NjE0ODExNjFENTMyMDBDQTBEMDkgLyogSlNFcnJvckhhbmRsZXIuY3BwIGluIFNvdXJj
ZXMgKi8sCiAJCQkJRTFDQTVDQkMwRThDRENBRjAwRThFRjkwIC8qIEpTV29ya2VyQ3VzdG9tLmNw
cCBpbiBTb3VyY2VzICovLAogCQkJCUUxQzM2MkYwMEVBRjJBQTkwMDc0MTBCQyAvKiBKU1dvcmtl
ckxvY2F0aW9uLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUUxMjcxQTU5MEVFRUNERTQwMEY2MTIx
MyAvKiBKU1dvcmtlck5hdmlnYXRvci5jcHAgaW4gU291cmNlcyAqLywKZGlmZiAtLWdpdCBhL1dl
YkNvcmUvYmluZGluZ3MvanMvSlNCaW5kaW5nc0FsbEluT25lLmNwcCBiL1dlYkNvcmUvYmluZGlu
Z3MvanMvSlNCaW5kaW5nc0FsbEluT25lLmNwcAppbmRleCA5MjJlNDQ5NzE4YzE3NDNiNjNjYzI3
ZTAzZWM1MjljMzU4MWM4YjcxLi4xNGY4YTc4YWY2OTY3MmNmYjQwN2MwNGEzMDYzZWNiMTdhNDZk
YzI2IDEwMDY0NAotLS0gYS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTQmluZGluZ3NBbGxJbk9uZS5j
cHAKKysrIGIvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0JpbmRpbmdzQWxsSW5PbmUuY3BwCkBAIC02
Myw2ICs2Myw3IEBACiAjaW5jbHVkZSAiSlNEZXZpY2VPcmllbnRhdGlvbkV2ZW50Q3VzdG9tLmNw
cCIKICNpbmNsdWRlICJKU0RvY3VtZW50Q3VzdG9tLmNwcCIKICNpbmNsdWRlICJKU0VsZW1lbnRD
dXN0b20uY3BwIgorI2luY2x1ZGUgIkpTRXJyb3JIYW5kbGVyLmNwcCIKICNpbmNsdWRlICJKU0V2
ZW50Q3VzdG9tLmNwcCIKICNpbmNsdWRlICJKU0V2ZW50TGlzdGVuZXIuY3BwIgogI2luY2x1ZGUg
IkpTRXZlbnRTb3VyY2VDdXN0b20uY3BwIgpAQCAtMTI5LDcgKzEzMCw2IEBACiAjaW5jbHVkZSAi
SlNXZWJTb2NrZXRDdXN0b20uY3BwIgogI2luY2x1ZGUgIkpTV29ya2VyQ29udGV4dEJhc2UuY3Bw
IgogI2luY2x1ZGUgIkpTV29ya2VyQ29udGV4dEN1c3RvbS5jcHAiCi0jaW5jbHVkZSAiSlNXb3Jr
ZXJDb250ZXh0RXJyb3JIYW5kbGVyLmNwcCIKICNpbmNsdWRlICJKU1dvcmtlckN1c3RvbS5jcHAi
CiAjaW5jbHVkZSAiSlNYTUxIdHRwUmVxdWVzdEN1c3RvbS5jcHAiCiAjaW5jbHVkZSAiSlNYTUxI
dHRwUmVxdWVzdFVwbG9hZEN1c3RvbS5jcHAiCmRpZmYgLS1naXQgYS9XZWJDb3JlL2JpbmRpbmdz
L2pzL0pTV29ya2VyQ29udGV4dEVycm9ySGFuZGxlci5jcHAgYi9XZWJDb3JlL2JpbmRpbmdzL2pz
L0pTRXJyb3JIYW5kbGVyLmNwcApzaW1pbGFyaXR5IGluZGV4IDg5JQpyZW5hbWUgZnJvbSBXZWJD
b3JlL2JpbmRpbmdzL2pzL0pTV29ya2VyQ29udGV4dEVycm9ySGFuZGxlci5jcHAKcmVuYW1lIHRv
IFdlYkNvcmUvYmluZGluZ3MvanMvSlNFcnJvckhhbmRsZXIuY3BwCmluZGV4IGFkM2Y1ZWMxN2Qz
YjU4MGNiNjgwODhkZWI2MTlmZjcwOGE3MmI3NGQuLjgyNjFjODQxZmJhZDM1NjFlZjMzOGViYzY4
MzEwYjQzMGEwZTdkOTMgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvYmluZGluZ3MvanMvSlNXb3JrZXJD
b250ZXh0RXJyb3JIYW5kbGVyLmNwcAorKysgYi9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRXJyb3JI
YW5kbGVyLmNwcApAQCAtMzAsOSArMzAsNyBAQAogCiAjaW5jbHVkZSAiY29uZmlnLmgiCiAKLSNp
ZiBFTkFCTEUoV09SS0VSUykKLQotI2luY2x1ZGUgIkpTV29ya2VyQ29udGV4dEVycm9ySGFuZGxl
ci5oIgorI2luY2x1ZGUgIkpTRXJyb3JIYW5kbGVyLmgiCiAKICNpbmNsdWRlICJFcnJvckV2ZW50
LmgiCiAjaW5jbHVkZSAiRXZlbnQuaCIKQEAgLTQzLDE2ICs0MSwxNiBAQCB1c2luZyBuYW1lc3Bh
Y2UgSlNDOwogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLUpTV29ya2VyQ29udGV4dEVycm9ySGFu
ZGxlcjo6SlNXb3JrZXJDb250ZXh0RXJyb3JIYW5kbGVyKEpTT2JqZWN0KiBmdW5jdGlvbiwgSlNP
YmplY3QqIHdyYXBwZXIsIGJvb2wgaXNBdHRyaWJ1dGUsIERPTVdyYXBwZXJXb3JsZCogaXNvbGF0
ZWRXb3JsZCkKK0pTRXJyb3JIYW5kbGVyOjpKU0Vycm9ySGFuZGxlcihKU09iamVjdCogZnVuY3Rp
b24sIEpTT2JqZWN0KiB3cmFwcGVyLCBib29sIGlzQXR0cmlidXRlLCBET01XcmFwcGVyV29ybGQq
IGlzb2xhdGVkV29ybGQpCiAgICAgOiBKU0V2ZW50TGlzdGVuZXIoZnVuY3Rpb24sIHdyYXBwZXIs
IGlzQXR0cmlidXRlLCBpc29sYXRlZFdvcmxkKQogewogfQogCi1KU1dvcmtlckNvbnRleHRFcnJv
ckhhbmRsZXI6On5KU1dvcmtlckNvbnRleHRFcnJvckhhbmRsZXIoKQorSlNFcnJvckhhbmRsZXI6
On5KU0Vycm9ySGFuZGxlcigpCiB7CiB9CiAKLXZvaWQgSlNXb3JrZXJDb250ZXh0RXJyb3JIYW5k
bGVyOjpoYW5kbGVFdmVudChTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBzY3JpcHRFeGVjdXRpb25D
b250ZXh0LCBFdmVudCogZXZlbnQpCit2b2lkIEpTRXJyb3JIYW5kbGVyOjpoYW5kbGVFdmVudChT
Y3JpcHRFeGVjdXRpb25Db250ZXh0KiBzY3JpcHRFeGVjdXRpb25Db250ZXh0LCBFdmVudCogZXZl
bnQpCiB7CiAgICAgQVNTRVJUKHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQpOwogICAgIGlmICghc2Ny
aXB0RXhlY3V0aW9uQ29udGV4dCkKQEAgLTExMiw1ICsxMTAsMyBAQCB2b2lkIEpTV29ya2VyQ29u
dGV4dEVycm9ySGFuZGxlcjo6aGFuZGxlRXZlbnQoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogc2Ny
aXB0RXhlYwogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCi0KLSNlbmRpZiAvLyBFTkFCTEUo
V09SS0VSUykKZGlmZiAtLWdpdCBhL1dlYkNvcmUvYmluZGluZ3MvanMvSlNXb3JrZXJDb250ZXh0
RXJyb3JIYW5kbGVyLmggYi9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRXJyb3JIYW5kbGVyLmgKc2lt
aWxhcml0eSBpbmRleCA2OSUKY29weSBmcm9tIFdlYkNvcmUvYmluZGluZ3MvanMvSlNXb3JrZXJD
b250ZXh0RXJyb3JIYW5kbGVyLmgKY29weSB0byBXZWJDb3JlL2JpbmRpbmdzL2pzL0pTRXJyb3JI
YW5kbGVyLmgKaW5kZXggYTE4ODI5OTAzOGM5Y2RmZTcyMjg2YjcxZmVhZWIzYTQ5YzJhMGQ4MS4u
OTU3ZmQ4MWRhYTA1NzQ2OWIyMTEyZTExZDdlNzA0YWQ0ZTI5ZDdlZCAxMDA2NDQKLS0tIGEvV2Vi
Q29yZS9iaW5kaW5ncy9qcy9KU1dvcmtlckNvbnRleHRFcnJvckhhbmRsZXIuaAorKysgYi9XZWJD
b3JlL2JpbmRpbmdzL2pzL0pTRXJyb3JIYW5kbGVyLmgKQEAgLTI4LDM3ICsyOCwzNyBAQAogICog
T0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4KICAqLwogCi0jaWZuZGVmIEpTV29ya2VyQ29udGV4dEVycm9ySGFuZGxlcl9o
Ci0jZGVmaW5lIEpTV29ya2VyQ29udGV4dEVycm9ySGFuZGxlcl9oCisjaWZuZGVmIEpTRXJyb3JI
YW5kbGVyX2gKKyNkZWZpbmUgSlNFcnJvckhhbmRsZXJfaAogCiAjaW5jbHVkZSAiSlNFdmVudExp
c3RlbmVyLmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotY2xhc3MgSlNXb3JrZXJDb250ZXh0
RXJyb3JIYW5kbGVyIDogcHVibGljIEpTRXZlbnRMaXN0ZW5lciB7CitjbGFzcyBKU0Vycm9ySGFu
ZGxlciA6IHB1YmxpYyBKU0V2ZW50TGlzdGVuZXIgewogcHVibGljOgotICAgIHN0YXRpYyBQYXNz
UmVmUHRyPEpTV29ya2VyQ29udGV4dEVycm9ySGFuZGxlcj4gY3JlYXRlKEpTQzo6SlNPYmplY3Qq
IGxpc3RlbmVyLCBKU0M6OkpTT2JqZWN0KiB3cmFwcGVyLCBib29sIGlzQXR0cmlidXRlLCBET01X
cmFwcGVyV29ybGQqIGlzb2xhdGVkV29ybGQpCisgICAgc3RhdGljIFBhc3NSZWZQdHI8SlNFcnJv
ckhhbmRsZXI+IGNyZWF0ZShKU0M6OkpTT2JqZWN0KiBsaXN0ZW5lciwgSlNDOjpKU09iamVjdCog
d3JhcHBlciwgYm9vbCBpc0F0dHJpYnV0ZSwgRE9NV3JhcHBlcldvcmxkKiBpc29sYXRlZFdvcmxk
KQogICAgIHsKLSAgICAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBKU1dvcmtlckNvbnRleHRFcnJv
ckhhbmRsZXIobGlzdGVuZXIsIHdyYXBwZXIsIGlzQXR0cmlidXRlLCBpc29sYXRlZFdvcmxkKSk7
CisgICAgICAgIHJldHVybiBhZG9wdFJlZihuZXcgSlNFcnJvckhhbmRsZXIobGlzdGVuZXIsIHdy
YXBwZXIsIGlzQXR0cmlidXRlLCBpc29sYXRlZFdvcmxkKSk7CiAgICAgfQogCi0gICAgdmlydHVh
bCB+SlNXb3JrZXJDb250ZXh0RXJyb3JIYW5kbGVyKCk7CisgICAgdmlydHVhbCB+SlNFcnJvckhh
bmRsZXIoKTsKIAogcHJpdmF0ZToKLSAgICBKU1dvcmtlckNvbnRleHRFcnJvckhhbmRsZXIoSlND
OjpKU09iamVjdCogZnVuY3Rpb24sIEpTQzo6SlNPYmplY3QqIHdyYXBwZXIsIGJvb2wgaXNBdHRy
aWJ1dGUsIERPTVdyYXBwZXJXb3JsZCogaXNvbGF0ZWRXb3JsZCk7CisgICAgSlNFcnJvckhhbmRs
ZXIoSlNDOjpKU09iamVjdCogZnVuY3Rpb24sIEpTQzo6SlNPYmplY3QqIHdyYXBwZXIsIGJvb2wg
aXNBdHRyaWJ1dGUsIERPTVdyYXBwZXJXb3JsZCogaXNvbGF0ZWRXb3JsZCk7CiAgICAgdmlydHVh
bCB2b2lkIGhhbmRsZUV2ZW50KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqLCBFdmVudCopOwogfTsK
IAogLy8gQ3JlYXRlcyBhIEpTIEV2ZW50TGlzdGVuZXIgZm9yICJvbmVycm9yIiBldmVudCBoYW5k
bGVyIGluIHdvcmtlciBjb250ZXh0LiBJdCBoYXMgY3VzdG9tIGltcGxlbWVudGF0aW9uIGJlY2F1
c2UKIC8vIHVubGlrZSBvdGhlciBldmVudCBsaXN0ZW5lcnMgaXQgYWNjZXB0cyB0aHJlZSBwYXJh
bWV0ZXJzLgotaW5saW5lIFBhc3NSZWZQdHI8SlNXb3JrZXJDb250ZXh0RXJyb3JIYW5kbGVyPiBj
cmVhdGVKU1dvcmtlckNvbnRleHRFcnJvckhhbmRsZXIoSlNDOjpFeGVjU3RhdGUqIGV4ZWMsIEpT
Qzo6SlNWYWx1ZSBsaXN0ZW5lciwgSlNDOjpKU09iamVjdCogd3JhcHBlcikKK2lubGluZSBQYXNz
UmVmUHRyPEpTRXJyb3JIYW5kbGVyPiBjcmVhdGVKU0Vycm9ySGFuZGxlcihKU0M6OkV4ZWNTdGF0
ZSogZXhlYywgSlNDOjpKU1ZhbHVlIGxpc3RlbmVyLCBKU0M6OkpTT2JqZWN0KiB3cmFwcGVyKQog
ewogICAgIGlmICghbGlzdGVuZXIuaXNPYmplY3QoKSkKICAgICAgICAgcmV0dXJuIDA7CiAKLSAg
ICByZXR1cm4gSlNXb3JrZXJDb250ZXh0RXJyb3JIYW5kbGVyOjpjcmVhdGUoYXNPYmplY3QobGlz
dGVuZXIpLCB3cmFwcGVyLCB0cnVlLCBjdXJyZW50V29ybGQoZXhlYykpOworICAgIHJldHVybiBK
U0Vycm9ySGFuZGxlcjo6Y3JlYXRlKGFzT2JqZWN0KGxpc3RlbmVyKSwgd3JhcHBlciwgdHJ1ZSwg
Y3VycmVudFdvcmxkKGV4ZWMpKTsKIH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCi0jZW5k
aWYgLy8gSlNXb3JrZXJDb250ZXh0RXJyb3JIYW5kbGVyX2gKKyNlbmRpZiAvLyBKU0Vycm9ySGFu
ZGxlcl9oCmRpZmYgLS1naXQgYS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRv
ckpTLnBtIGIvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbQppbmRl
eCA4NGUzOTE5MDVmNTYyNTU4NTMyNzE4MDFhOGRhZjMxNTdhMDJlNjE2Li44ZDM1MDNlODExODIx
NDg5OTQzZTNlZDg3MTQ2ZjI4MGJkNWM5OGQyIDEwMDY0NAotLS0gYS9XZWJDb3JlL2JpbmRpbmdz
L3NjcmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtCisrKyBiL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0
cy9Db2RlR2VuZXJhdG9ySlMucG0KQEAgLTE3MDksOSArMTcwOSw5IEBAIHN1YiBHZW5lcmF0ZUlt
cGxlbWVudGF0aW9uCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHB1c2goQGltcGxD
b250ZW50LCAiICAgIEpTRE9NR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QgPSBjYXN0ZWRUaGlz
LT5nbG9iYWxPYmplY3QoKTtcbiIpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICAkaW1wbENs
YXNzTmFtZSogaW1wID0gc3RhdGljX2Nhc3Q8JGltcGxDbGFzc05hbWUqPihzdGF0aWNfY2FzdDwk
Y2xhc3NOYW1lKj4odGhpc09iamVjdCktPmltcGwoKSk7XG4iKTsKLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBpZiAoJGludGVyZmFjZU5hbWUgZXEgIldvcmtlckNvbnRleHQiIGFuZCAkbmFt
ZSBlcSAib25lcnJvciIpIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJGltcGxJ
bmNsdWRlc3siSlNXb3JrZXJDb250ZXh0RXJyb3JIYW5kbGVyLmgifSA9IDE7Ci0gICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgIGltcC0+c2V0JGlt
cGxTZXR0ZXJGdW5jdGlvbk5hbWUoY3JlYXRlSlNXb3JrZXJDb250ZXh0RXJyb3JIYW5kbGVyKGV4
ZWMsIHZhbHVlLCB0aGlzT2JqZWN0KSk7XG4iKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBpZiAoKCgkaW50ZXJmYWNlTmFtZSBlcSAiRE9NV2luZG93Iikgb3IgKCRpbnRlcmZhY2VOYW1l
IGVxICJXb3JrZXJDb250ZXh0IikpIGFuZCAkbmFtZSBlcSAib25lcnJvciIpIHsKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgJGltcGxJbmNsdWRlc3siSlNFcnJvckhhbmRsZXIuaCJ9
ID0gMTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQs
ICIgICAgaW1wLT5zZXQkaW1wbFNldHRlckZ1bmN0aW9uTmFtZShjcmVhdGVKU0Vycm9ySGFuZGxl
cihleGVjLCB2YWx1ZSwgdGhpc09iamVjdCkpO1xuIik7CiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHVzaChAaW1w
bENvbnRlbnQsIEdlbmVyYXRlQXR0cmlidXRlRXZlbnRMaXN0ZW5lckNhbGwoJGNsYXNzTmFtZSwg
JGltcGxTZXR0ZXJGdW5jdGlvbk5hbWUsICR3aW5kb3dFdmVudExpc3RlbmVyKSk7CiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgfQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9iaW5kaW5ncy9zY3Jp
cHRzL0NvZGVHZW5lcmF0b3JWOC5wbSBiL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2Vu
ZXJhdG9yVjgucG0Kb2xkIG1vZGUgMTAwNjQ0Cm5ldyBtb2RlIDEwMDc1NQppbmRleCA1NjgzOGNh
MmViZWZjMGMzMWYyYzdhNzJkNWFiNjIwMThkYzc3MzMzLi5hZDUzYTA0ZTVhZWQ2YmJmODBiZTY3
ZTBlNGJmY2ViNDM0YWMzOTIyCi0tLSBhL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2Vu
ZXJhdG9yVjgucG0KKysrIGIvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JW
OC5wbQpAQCAtOTE3LDYgKzkxNywxMCBAQCBFTkQKICAgICAgICAgICAgICAgICAkaW1wbEluY2x1
ZGVzeyJWOEV2ZW50TGlzdGVuZXJMaXN0LmgifSA9IDE7CiAgICAgICAgICAgICAgICAgJGltcGxJ
bmNsdWRlc3siVjhXb3JrZXJDb250ZXh0RXJyb3JIYW5kbGVyLmgifSA9IDE7CiAgICAgICAgICAg
ICAgICAgcHVzaChAaW1wbENvbnRlbnREZWNscywgIiAgICBpbXAtPnNldCRpbXBsU2V0dGVyRnVu
Y3Rpb25OYW1lKFY4RXZlbnRMaXN0ZW5lckxpc3Q6OmZpbmRPckNyZWF0ZVdyYXBwZXI8VjhXb3Jr
ZXJDb250ZXh0RXJyb3JIYW5kbGVyPih2YWx1ZSwgdHJ1ZSkiKTsKKyAgICAgICAgICAgIH0gZWxz
aWYgKCRpbnRlcmZhY2VOYW1lIGVxICJET01XaW5kb3ciIGFuZCAkYXR0cmlidXRlLT5zaWduYXR1
cmUtPm5hbWUgZXEgIm9uZXJyb3IiKSB7CisgICAgICAgICAgICAgICAgJGltcGxJbmNsdWRlc3si
VjhFdmVudExpc3RlbmVyTGlzdC5oIn0gPSAxOworICAgICAgICAgICAgICAgICRpbXBsSW5jbHVk
ZXN7IlY4V2luZG93RXJyb3JIYW5kbGVyLmgifSA9IDE7CisgICAgICAgICAgICAgICAgcHVzaChA
aW1wbENvbnRlbnREZWNscywgIiAgICBpbXAtPnNldCRpbXBsU2V0dGVyRnVuY3Rpb25OYW1lKFY4
RXZlbnRMaXN0ZW5lckxpc3Q6OmZpbmRPckNyZWF0ZVdyYXBwZXI8VjhXaW5kb3dFcnJvckhhbmRs
ZXI+KHZhbHVlLCB0cnVlKSIpOwogICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAg
ICBwdXNoKEBpbXBsQ29udGVudERlY2xzLCAiICAgIGltcC0+c2V0JGltcGxTZXR0ZXJGdW5jdGlv
bk5hbWUoVjhET01XcmFwcGVyOjpnZXRFdmVudExpc3RlbmVyKHZhbHVlLCB0cnVlLCBMaXN0ZW5l
ckZpbmRPckNyZWF0ZSkiKTsKICAgICAgICAgICAgIH0KZGlmZiAtLWdpdCBhL1dlYkNvcmUvYmlu
ZGluZ3MvdjgvVjhDb25zb2xlTWVzc2FnZS5jcHAgYi9XZWJDb3JlL2JpbmRpbmdzL3Y4L1Y4Q29u
c29sZU1lc3NhZ2UuY3BwCmluZGV4IDhiNmJiMTc4NmE4NWM3OWJjZjAyZmRkZTg1NDE2NTE3ZDFk
MWE4NzMuLjIzZmJjNDU3Yzc4OTczZjQyYmZhNGM3NDgwNzE3NWFlNDk4Njg0NTEgMTAwNjQ0Ci0t
LSBhL1dlYkNvcmUvYmluZGluZ3MvdjgvVjhDb25zb2xlTWVzc2FnZS5jcHAKKysrIGIvV2ViQ29y
ZS9iaW5kaW5ncy92OC9WOENvbnNvbGVNZXNzYWdlLmNwcApAQCAtNTMsNyArNTMsNyBAQCBWOENv
bnNvbGVNZXNzYWdlOjpWOENvbnNvbGVNZXNzYWdlKGNvbnN0IFN0cmluZyYgc3RyaW5nLCBjb25z
dCBTdHJpbmcmIHNvdXJjZUlELAogCiB2b2lkIFY4Q29uc29sZU1lc3NhZ2U6OmRpc3BhdGNoTm93
KFBhZ2UqIHBhZ2UpCiB7Ci0gICAgZGlzcGF0Y2hOb3cocGFnZSwgMCk7CisgICAgZGlzcGF0Y2hO
b3cocGFnZSwgMCwgMCk7CiB9CiAKIHZvaWQgVjhDb25zb2xlTWVzc2FnZTo6ZGlzcGF0Y2hMYXRl
cigpCkBAIC0xMjUsMTAgKzEyNSwxMCBAQCB2b2lkIFY4Q29uc29sZU1lc3NhZ2U6OmhhbmRsZXIo
djg6OkhhbmRsZTx2ODo6TWVzc2FnZT4gbWVzc2FnZSwgdjg6OkhhbmRsZTx2ODo6VgogICAgIGJv
b2wgdXNlVVJMID0gcmVzb3VyY2VOYW1lLklzRW1wdHkoKSB8fCAhcmVzb3VyY2VOYW1lLT5Jc1N0
cmluZygpOwogICAgIFN0cmluZyByZXNvdXJjZU5hbWVTdHJpbmcgPSB1c2VVUkwgPyBmcmFtZS0+
ZG9jdW1lbnQoKS0+dXJsKCkgOiB0b1dlYkNvcmVTdHJpbmcocmVzb3VyY2VOYW1lKTsKICAgICBW
OENvbnNvbGVNZXNzYWdlIGNvbnNvbGVNZXNzYWdlKGVycm9yTWVzc2FnZSwgcmVzb3VyY2VOYW1l
U3RyaW5nLCBtZXNzYWdlLT5HZXRMaW5lTnVtYmVyKCkpOwotICAgIGNvbnNvbGVNZXNzYWdlLmRp
c3BhdGNoTm93KHBhZ2UsIGNhbGxTdGFjay5nZXQoKSk7CisgICAgY29uc29sZU1lc3NhZ2UuZGlz
cGF0Y2hOb3cocGFnZSwgZnJhbWUsIGNhbGxTdGFjay5nZXQoKSk7CiB9CiAKLXZvaWQgVjhDb25z
b2xlTWVzc2FnZTo6ZGlzcGF0Y2hOb3coUGFnZSogcGFnZSwgU2NyaXB0Q2FsbFN0YWNrKiBjYWxs
U3RhY2spCit2b2lkIFY4Q29uc29sZU1lc3NhZ2U6OmRpc3BhdGNoTm93KFBhZ2UqIHBhZ2UsIEZy
YW1lKiBmcmFtZSwgU2NyaXB0Q2FsbFN0YWNrKiBjYWxsU3RhY2spCiB7CiAgICAgQVNTRVJUKHBh
Z2UpOwogCkBAIC0xMzYsNiArMTM2LDEyIEBAIHZvaWQgVjhDb25zb2xlTWVzc2FnZTo6ZGlzcGF0
Y2hOb3coUGFnZSogcGFnZSwgU2NyaXB0Q2FsbFN0YWNrKiBjYWxsU3RhY2spCiAgICAgLy8gYXBw
ZWFyIGluIHRoZSByaWdodCBvcmRlciBpbiB0aGUgY29uc29sZS4KICAgICBwcm9jZXNzRGVsYXll
ZCgpOwogCisgICAgaWYgKGZyYW1lKSB7CisgICAgICAgIERvY3VtZW50KiBkb2MgPSBmcmFtZS0+
ZG9jdW1lbnQoKTsKKyAgICAgICAgaWYgKGRvYy0+aW52b2tlT25FcnJvckhhbmRsZXIoZnJhbWUt
PmRvbVdpbmRvdygpLT5vbmVycm9yKCksIG1fc3RyaW5nLCBtX2xpbmVOdW1iZXIsIG1fc291cmNl
SUQpKQorICAgICAgICAgICAgcmV0dXJuOworICAgIH0KKwogICAgIENvbnNvbGUqIGNvbnNvbGUg
PSBwYWdlLT5tYWluRnJhbWUoKS0+ZG9tV2luZG93KCktPmNvbnNvbGUoKTsKICAgICBNZXNzYWdl
VHlwZSBtZXNzYWdlVHlwZSA9IGNhbGxTdGFjayA/IFVuY2F1Z2h0RXhjZXB0aW9uTWVzc2FnZVR5
cGUgOiBMb2dNZXNzYWdlVHlwZTsKICAgICBjb25zb2xlLT5hZGRNZXNzYWdlKEpTTWVzc2FnZVNv
dXJjZSwgbWVzc2FnZVR5cGUsIEVycm9yTWVzc2FnZUxldmVsLCBtX3N0cmluZywgbV9saW5lTnVt
YmVyLCBtX3NvdXJjZUlELCBjYWxsU3RhY2spOwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9iaW5kaW5n
cy92OC9WOENvbnNvbGVNZXNzYWdlLmggYi9XZWJDb3JlL2JpbmRpbmdzL3Y4L1Y4Q29uc29sZU1l
c3NhZ2UuaAppbmRleCAzODdiNWVlMzRiNTY4ZTY4M2Y0Y2U3ZWVhZWYxNGMyNmIxNTY3ZTUzLi5k
Zjk3MjI3Yjg2OTE1NmYzNDU1MjM2ZjBhNjg5NjA5MTVhNjYzNmE0IDEwMDY0NAotLS0gYS9XZWJD
b3JlL2JpbmRpbmdzL3Y4L1Y4Q29uc29sZU1lc3NhZ2UuaAorKysgYi9XZWJDb3JlL2JpbmRpbmdz
L3Y4L1Y4Q29uc29sZU1lc3NhZ2UuaApAQCAtMzcsNTYgKzM3LDU3IEBACiAKIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKIAotICAgIGNsYXNzIFBhZ2U7Ci0gICAgY2xhc3MgU2NyaXB0Q2FsbFN0YWNrOwor
Y2xhc3MgRnJhbWU7CitjbGFzcyBQYWdlOworY2xhc3MgU2NyaXB0Q2FsbFN0YWNrOwogCi0gICAg
Ly8gVjhDb25zb2xlTWVzc2FnZSBlbmNhcHN1bGF0ZXMgZXZlcnl0aGluZyBuZWVkZWQgdG8KLSAg
ICAvLyBsb2cgbWVzc2FnZXMgb3JpZ2luYXRpbmcgZnJvbSBKYXZhU2NyaXB0IHRvIHRoZSBjb25z
b2xlLgotICAgIGNsYXNzIFY4Q29uc29sZU1lc3NhZ2UgewotICAgIHB1YmxpYzoKLSAgICAgICAg
VjhDb25zb2xlTWVzc2FnZShjb25zdCBTdHJpbmcmIHN0cmluZywgY29uc3QgU3RyaW5nJiBzb3Vy
Y2VJRCwgdW5zaWduZWQgbGluZU51bWJlcik7CisvLyBWOENvbnNvbGVNZXNzYWdlIGVuY2Fwc3Vs
YXRlcyBldmVyeXRoaW5nIG5lZWRlZCB0bworLy8gbG9nIG1lc3NhZ2VzIG9yaWdpbmF0aW5nIGZy
b20gSmF2YVNjcmlwdCB0byB0aGUgY29uc29sZS4KK2NsYXNzIFY4Q29uc29sZU1lc3NhZ2Ugewor
cHVibGljOgorICAgIFY4Q29uc29sZU1lc3NhZ2UoY29uc3QgU3RyaW5nJiBzdHJpbmcsIGNvbnN0
IFN0cmluZyYgc291cmNlSUQsIHVuc2lnbmVkIGxpbmVOdW1iZXIpOwogCi0gICAgICAgIC8vIEFk
ZCBhIG1lc3NhZ2UgdG8gdGhlIGNvbnNvbGUuIE1heSBlbmQgdXAgY2FsbGluZyBKYXZhU2NyaXB0
IGNvZGUKLSAgICAgICAgLy8gaW5kaXJlY3RseSB0aHJvdWdoIHRoZSBpbnNwZWN0b3Igc28gb25s
eSBjYWxsIHRoaXMgZnVuY3Rpb24gd2hlbgotICAgICAgICAvLyBpdCBpcyBzYWZlIHRvIGRvIGFs
bG9jYXRpb25zLgotICAgICAgICB2b2lkIGRpc3BhdGNoTm93KFBhZ2UqKTsKKyAgICAvLyBBZGQg
YSBtZXNzYWdlIHRvIHRoZSBjb25zb2xlLiBNYXkgZW5kIHVwIGNhbGxpbmcgSmF2YVNjcmlwdCBj
b2RlCisgICAgLy8gaW5kaXJlY3RseSB0aHJvdWdoIHRoZSBpbnNwZWN0b3Igc28gb25seSBjYWxs
IHRoaXMgZnVuY3Rpb24gd2hlbgorICAgIC8vIGl0IGlzIHNhZmUgdG8gZG8gYWxsb2NhdGlvbnMu
CisgICAgdm9pZCBkaXNwYXRjaE5vdyhQYWdlKik7CiAKLSAgICAgICAgLy8gQWRkIGEgbWVzc2Fn
ZSB0byB0aGUgY29uc29sZSBidXQgZGVsYXkgdGhlIHJlcG9ydGluZyB1bnRpbCBpdAotICAgICAg
ICAvLyBpcyBzYWZlIHRvIGRvIHNvOiBFaXRoZXIgd2hlbiB3ZSBsZWF2ZSBKYXZhU2NyaXB0IGV4
ZWN1dGlvbiBvcgotICAgICAgICAvLyB3aGVuIGFkZGluZyBvdGhlciBjb25zb2xlIG1lc3NhZ2Vz
LiBUaGUgcHJpbWFyeSBwdXJwb3NlIG9mIHRoaXMKLSAgICAgICAgLy8gbWV0aG9kIGlzIHRvIGF2
b2lkIGNhbGxpbmcgaW50byBWOCB0byBoYW5kbGUgY29uc29sZSBtZXNzYWdlcwotICAgICAgICAv
LyB3aGVuIHRoZSBWTSBpcyBpbiBhIHN0YXRlIHRoYXQgZG9lcyBub3Qgc3VwcG9ydCBHQ3Mgb3Ig
YWxsb2NhdGlvbnMuCi0gICAgICAgIC8vIERlbGF5ZWQgbWVzc2FnZXMgYXJlIGFsd2F5cyByZXBv
cnRlZCBpbiB0aGUgcGFnZSBjb3JyZXNwb25kaW5nCi0gICAgICAgIC8vIHRvIHRoZSBhY3RpdmUg
Y29udGV4dC4KLSAgICAgICAgdm9pZCBkaXNwYXRjaExhdGVyKCk7CisgICAgLy8gQWRkIGEgbWVz
c2FnZSB0byB0aGUgY29uc29sZSBidXQgZGVsYXkgdGhlIHJlcG9ydGluZyB1bnRpbCBpdAorICAg
IC8vIGlzIHNhZmUgdG8gZG8gc286IEVpdGhlciB3aGVuIHdlIGxlYXZlIEphdmFTY3JpcHQgZXhl
Y3V0aW9uIG9yCisgICAgLy8gd2hlbiBhZGRpbmcgb3RoZXIgY29uc29sZSBtZXNzYWdlcy4gVGhl
IHByaW1hcnkgcHVycG9zZSBvZiB0aGlzCisgICAgLy8gbWV0aG9kIGlzIHRvIGF2b2lkIGNhbGxp
bmcgaW50byBWOCB0byBoYW5kbGUgY29uc29sZSBtZXNzYWdlcworICAgIC8vIHdoZW4gdGhlIFZN
IGlzIGluIGEgc3RhdGUgdGhhdCBkb2VzIG5vdCBzdXBwb3J0IEdDcyBvciBhbGxvY2F0aW9ucy4K
KyAgICAvLyBEZWxheWVkIG1lc3NhZ2VzIGFyZSBhbHdheXMgcmVwb3J0ZWQgaW4gdGhlIHBhZ2Ug
Y29ycmVzcG9uZGluZworICAgIC8vIHRvIHRoZSBhY3RpdmUgY29udGV4dC4KKyAgICB2b2lkIGRp
c3BhdGNoTGF0ZXIoKTsKIAotICAgICAgICAvLyBQcm9jZXNzIGFueSBkZWxheWVkIG1lc3NhZ2Vz
LiBNYXkgZW5kIHVwIGNhbGxpbmcgSmF2YVNjcmlwdCBjb2RlCi0gICAgICAgIC8vIGluZGlyZWN0
bHkgdGhyb3VnaCB0aGUgaW5zcGVjdG9yIHNvIG9ubHkgY2FsbCB0aGlzIGZ1bmN0aW9uIHdoZW4K
LSAgICAgICAgLy8gaXQgaXMgc2FmZSB0byBkbyBhbGxvY2F0aW9ucy4KLSAgICAgICAgc3RhdGlj
IHZvaWQgcHJvY2Vzc0RlbGF5ZWQoKTsKKyAgICAvLyBQcm9jZXNzIGFueSBkZWxheWVkIG1lc3Nh
Z2VzLiBNYXkgZW5kIHVwIGNhbGxpbmcgSmF2YVNjcmlwdCBjb2RlCisgICAgLy8gaW5kaXJlY3Rs
eSB0aHJvdWdoIHRoZSBpbnNwZWN0b3Igc28gb25seSBjYWxsIHRoaXMgZnVuY3Rpb24gd2hlbgor
ICAgIC8vIGl0IGlzIHNhZmUgdG8gZG8gYWxsb2NhdGlvbnMuCisgICAgc3RhdGljIHZvaWQgcHJv
Y2Vzc0RlbGF5ZWQoKTsKIAotICAgICAgICAvLyBDb252ZW5pZW5jZSBjbGFzcyBmb3IgZW5zdXJp
bmcgdGhhdCBkZWxheWVkIG1lc3NhZ2VzIGluIHRoZQotICAgICAgICAvLyBDb25zb2xlTWVzc2Fn
ZU1hbmFnZXIgYXJlIHByb2Nlc3NlZCBxdWlja2x5LgotICAgICAgICBjbGFzcyBTY29wZSB7Ci0g
ICAgICAgIHB1YmxpYzoKLSAgICAgICAgICAgIFNjb3BlKCkgeyBWOENvbnNvbGVNZXNzYWdlOjpw
cm9jZXNzRGVsYXllZCgpOyB9Ci0gICAgICAgICAgICB+U2NvcGUoKSB7IFY4Q29uc29sZU1lc3Nh
Z2U6OnByb2Nlc3NEZWxheWVkKCk7IH0KLSAgICAgICAgfTsKKyAgICAvLyBDb252ZW5pZW5jZSBj
bGFzcyBmb3IgZW5zdXJpbmcgdGhhdCBkZWxheWVkIG1lc3NhZ2VzIGluIHRoZQorICAgIC8vIENv
bnNvbGVNZXNzYWdlTWFuYWdlciBhcmUgcHJvY2Vzc2VkIHF1aWNrbHkuCisgICAgY2xhc3MgU2Nv
cGUgeworICAgIHB1YmxpYzoKKyAgICAgICAgU2NvcGUoKSB7IFY4Q29uc29sZU1lc3NhZ2U6OnBy
b2Nlc3NEZWxheWVkKCk7IH0KKyAgICAgICAgflNjb3BlKCkgeyBWOENvbnNvbGVNZXNzYWdlOjpw
cm9jZXNzRGVsYXllZCgpOyB9CisgICAgfTsKIAotICAgICAgICAvLyBDYWxsYmFjayBmcm9tIFY4
LgotICAgICAgICBzdGF0aWMgdm9pZCBoYW5kbGVyKHY4OjpIYW5kbGU8djg6Ok1lc3NhZ2U+LCB2
ODo6SGFuZGxlPHY4OjpWYWx1ZT4gZGF0YSk7CisgICAgLy8gQ2FsbGJhY2sgZnJvbSBWOC4KKyAg
ICBzdGF0aWMgdm9pZCBoYW5kbGVyKHY4OjpIYW5kbGU8djg6Ok1lc3NhZ2U+LCB2ODo6SGFuZGxl
PHY4OjpWYWx1ZT4gZGF0YSk7CiAKLSAgICBwcml2YXRlOgotICAgICAgICBjb25zdCBTdHJpbmcg
bV9zdHJpbmc7Ci0gICAgICAgIGNvbnN0IFN0cmluZyBtX3NvdXJjZUlEOwotICAgICAgICBjb25z
dCB1bnNpZ25lZCBtX2xpbmVOdW1iZXI7Citwcml2YXRlOgorICAgIGNvbnN0IFN0cmluZyBtX3N0
cmluZzsKKyAgICBjb25zdCBTdHJpbmcgbV9zb3VyY2VJRDsKKyAgICBjb25zdCB1bnNpZ25lZCBt
X2xpbmVOdW1iZXI7CiAKLSAgICAgICAgdm9pZCBkaXNwYXRjaE5vdyhQYWdlKiwgU2NyaXB0Q2Fs
bFN0YWNrKik7CisgICAgdm9pZCBkaXNwYXRjaE5vdyhQYWdlKiwgRnJhbWUqLCBTY3JpcHRDYWxs
U3RhY2sqKTsKIAotICAgICAgICAvLyBBbGwgZGVsYXllZCBtZXNzYWdlcyBhcmUgc3RvcmVkIGlu
IHRoaXMgdmVjdG9yLiBJZiB0aGUgdmVjdG9yCi0gICAgICAgIC8vIGlzIDAsIHRoZXJlIGFyZSBu
byBkZWxheWVkIG1lc3NhZ2VzLgotICAgICAgICBzdGF0aWMgVmVjdG9yPFY4Q29uc29sZU1lc3Nh
Z2U+KiBtX2RlbGF5ZWRNZXNzYWdlczsKLSAgICB9OworICAgIC8vIEFsbCBkZWxheWVkIG1lc3Nh
Z2VzIGFyZSBzdG9yZWQgaW4gdGhpcyB2ZWN0b3IuIElmIHRoZSB2ZWN0b3IKKyAgICAvLyBpcyAw
LCB0aGVyZSBhcmUgbm8gZGVsYXllZCBtZXNzYWdlcy4KKyAgICBzdGF0aWMgVmVjdG9yPFY4Q29u
c29sZU1lc3NhZ2U+KiBtX2RlbGF5ZWRNZXNzYWdlczsKK307CiAKIH0gLy8gbmFtZXNwYWNlIFdl
YkNvcmUKIApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1dvcmtlckNvbnRleHRF
cnJvckhhbmRsZXIuaCBiL1dlYkNvcmUvYmluZGluZ3MvdjgvVjhXaW5kb3dFcnJvckhhbmRsZXIu
Y3BwCm9sZCBtb2RlIDEwMDY0NApuZXcgbW9kZSAxMDA3NTUKc2ltaWxhcml0eSBpbmRleCA1NiUK
Y29weSBmcm9tIFdlYkNvcmUvYmluZGluZ3MvanMvSlNXb3JrZXJDb250ZXh0RXJyb3JIYW5kbGVy
LmgKY29weSB0byBXZWJDb3JlL2JpbmRpbmdzL3Y4L1Y4V2luZG93RXJyb3JIYW5kbGVyLmNwcApp
bmRleCBhMTg4Mjk5MDM4YzljZGZlNzIyODZiNzFmZWFlYjNhNDljMmEwZDgxLi5jZjY2YmZhMTA5
MWQ1MWFlOTBmNjg5YTEyNDdjZDg5MTU5Nzk2M2M0Ci0tLSBhL1dlYkNvcmUvYmluZGluZ3MvanMv
SlNXb3JrZXJDb250ZXh0RXJyb3JIYW5kbGVyLmgKKysrIGIvV2ViQ29yZS9iaW5kaW5ncy92OC9W
OFdpbmRvd0Vycm9ySGFuZGxlci5jcHAKQEAgLTI4LDM3ICsyOCwzNSBAQAogICogT0YgVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4KICAqLwogCi0jaWZuZGVmIEpTV29ya2VyQ29udGV4dEVycm9ySGFuZGxlcl9oCi0jZGVmaW5l
IEpTV29ya2VyQ29udGV4dEVycm9ySGFuZGxlcl9oCisjaW5jbHVkZSAiY29uZmlnLmgiCiAKLSNp
bmNsdWRlICJKU0V2ZW50TGlzdGVuZXIuaCIKKyNpbmNsdWRlICJWOFdpbmRvd0Vycm9ySGFuZGxl
ci5oIgogCi1uYW1lc3BhY2UgV2ViQ29yZSB7Ci0KLWNsYXNzIEpTV29ya2VyQ29udGV4dEVycm9y
SGFuZGxlciA6IHB1YmxpYyBKU0V2ZW50TGlzdGVuZXIgewotcHVibGljOgotICAgIHN0YXRpYyBQ
YXNzUmVmUHRyPEpTV29ya2VyQ29udGV4dEVycm9ySGFuZGxlcj4gY3JlYXRlKEpTQzo6SlNPYmpl
Y3QqIGxpc3RlbmVyLCBKU0M6OkpTT2JqZWN0KiB3cmFwcGVyLCBib29sIGlzQXR0cmlidXRlLCBE
T01XcmFwcGVyV29ybGQqIGlzb2xhdGVkV29ybGQpCi0gICAgewotICAgICAgICByZXR1cm4gYWRv
cHRSZWYobmV3IEpTV29ya2VyQ29udGV4dEVycm9ySGFuZGxlcihsaXN0ZW5lciwgd3JhcHBlciwg
aXNBdHRyaWJ1dGUsIGlzb2xhdGVkV29ybGQpKTsKLSAgICB9CisjaW5jbHVkZSAiRXJyb3JFdmVu
dC5oIgorI2luY2x1ZGUgIlY4QmluZGluZy5oIgogCi0gICAgdmlydHVhbCB+SlNXb3JrZXJDb250
ZXh0RXJyb3JIYW5kbGVyKCk7Ci0KLXByaXZhdGU6Ci0gICAgSlNXb3JrZXJDb250ZXh0RXJyb3JI
YW5kbGVyKEpTQzo6SlNPYmplY3QqIGZ1bmN0aW9uLCBKU0M6OkpTT2JqZWN0KiB3cmFwcGVyLCBi
b29sIGlzQXR0cmlidXRlLCBET01XcmFwcGVyV29ybGQqIGlzb2xhdGVkV29ybGQpOwotICAgIHZp
cnR1YWwgdm9pZCBoYW5kbGVFdmVudChTY3JpcHRFeGVjdXRpb25Db250ZXh0KiwgRXZlbnQqKTsK
LX07CituYW1lc3BhY2UgV2ViQ29yZSB7CiAKLS8vIENyZWF0ZXMgYSBKUyBFdmVudExpc3RlbmVy
IGZvciAib25lcnJvciIgZXZlbnQgaGFuZGxlciBpbiB3b3JrZXIgY29udGV4dC4gSXQgaGFzIGN1
c3RvbSBpbXBsZW1lbnRhdGlvbiBiZWNhdXNlCi0vLyB1bmxpa2Ugb3RoZXIgZXZlbnQgbGlzdGVu
ZXJzIGl0IGFjY2VwdHMgdGhyZWUgcGFyYW1ldGVycy4KLWlubGluZSBQYXNzUmVmUHRyPEpTV29y
a2VyQ29udGV4dEVycm9ySGFuZGxlcj4gY3JlYXRlSlNXb3JrZXJDb250ZXh0RXJyb3JIYW5kbGVy
KEpTQzo6RXhlY1N0YXRlKiBleGVjLCBKU0M6OkpTVmFsdWUgbGlzdGVuZXIsIEpTQzo6SlNPYmpl
Y3QqIHdyYXBwZXIpCitWOFdpbmRvd0Vycm9ySGFuZGxlcjo6VjhXaW5kb3dFcnJvckhhbmRsZXIo
djg6OkxvY2FsPHY4OjpPYmplY3Q+IGxpc3RlbmVyLCBib29sIGlzSW5saW5lLCBjb25zdCBXb3Js
ZENvbnRleHRIYW5kbGUmIHdvcmxkQ29udGV4dCkKKyAgICA6IFY4RXZlbnRMaXN0ZW5lcihsaXN0
ZW5lciwgaXNJbmxpbmUsIHdvcmxkQ29udGV4dCkKIHsKLSAgICBpZiAoIWxpc3RlbmVyLmlzT2Jq
ZWN0KCkpCi0gICAgICAgIHJldHVybiAwOworfQogCi0gICAgcmV0dXJuIEpTV29ya2VyQ29udGV4
dEVycm9ySGFuZGxlcjo6Y3JlYXRlKGFzT2JqZWN0KGxpc3RlbmVyKSwgd3JhcHBlciwgdHJ1ZSwg
Y3VycmVudFdvcmxkKGV4ZWMpKTsKK3Y4OjpMb2NhbDx2ODo6VmFsdWU+IFY4V2luZG93RXJyb3JI
YW5kbGVyOjpjYWxsTGlzdGVuZXJGdW5jdGlvbihTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250
ZXh0LCB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4ganNFdmVudCwgRXZlbnQqIGV2ZW50KQoreworICAg
IEFTU0VSVChldmVudC0+aXNFcnJvckV2ZW50KCkpOworICAgIHY4OjpMb2NhbDx2ODo6T2JqZWN0
PiBsaXN0ZW5lciA9IGdldExpc3RlbmVyT2JqZWN0KGNvbnRleHQpOworICAgIHY4OjpMb2NhbDx2
ODo6VmFsdWU+IHJldHVyblZhbHVlOworICAgIGlmICghbGlzdGVuZXIuSXNFbXB0eSgpICYmIGxp
c3RlbmVyLT5Jc0Z1bmN0aW9uKCkpIHsKKyAgICAgICAgRXJyb3JFdmVudCogZXJyb3JFdmVudCA9
IHN0YXRpY19jYXN0PEVycm9yRXZlbnQqPihldmVudCk7CisgICAgICAgIHY4OjpMb2NhbDx2ODo6
RnVuY3Rpb24+IGNhbGxGdW5jdGlvbiA9IHY4OjpMb2NhbDx2ODo6RnVuY3Rpb24+OjpDYXN0KGxp
c3RlbmVyKTsKKyAgICAgICAgdjg6OkxvY2FsPHY4OjpPYmplY3Q+IHRoaXNWYWx1ZSA9IHY4OjpD
b250ZXh0OjpHZXRDdXJyZW50KCktPkdsb2JhbCgpOworICAgICAgICB2ODo6SGFuZGxlPHY4OjpW
YWx1ZT4gcGFyYW1ldGVyc1szXSA9IHsgdjhTdHJpbmcoZXJyb3JFdmVudC0+bWVzc2FnZSgpKSwg
djhTdHJpbmcoZXJyb3JFdmVudC0+ZmlsZW5hbWUoKSksIHY4OjpJbnRlZ2VyOjpOZXcoZXJyb3JF
dmVudC0+bGluZW5vKCkpIH07CisgICAgICAgIHJldHVyblZhbHVlID0gY2FsbEZ1bmN0aW9uLT5D
YWxsKHRoaXNWYWx1ZSwgMywgcGFyYW1ldGVycyk7CisgICAgICAgIGlmICghcmV0dXJuVmFsdWUu
SXNFbXB0eSgpICYmIHJldHVyblZhbHVlLT5Jc0Jvb2xlYW4oKSAmJiAhcmV0dXJuVmFsdWUtPkJv
b2xlYW5WYWx1ZSgpKQorICAgICAgICAgICAgZXZlbnQtPnByZXZlbnREZWZhdWx0KCk7CisgICAg
fQorICAgIHJldHVybiByZXR1cm5WYWx1ZTsKIH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQot
Ci0jZW5kaWYgLy8gSlNXb3JrZXJDb250ZXh0RXJyb3JIYW5kbGVyX2gKZGlmZiAtLWdpdCBhL1dl
YkNvcmUvYmluZGluZ3MvanMvSlNXb3JrZXJDb250ZXh0RXJyb3JIYW5kbGVyLmggYi9XZWJDb3Jl
L2JpbmRpbmdzL3Y4L1Y4V2luZG93RXJyb3JIYW5kbGVyLmgKb2xkIG1vZGUgMTAwNjQ0Cm5ldyBt
b2RlIDEwMDc1NQpzaW1pbGFyaXR5IGluZGV4IDU4JQpyZW5hbWUgZnJvbSBXZWJDb3JlL2JpbmRp
bmdzL2pzL0pTV29ya2VyQ29udGV4dEVycm9ySGFuZGxlci5oCnJlbmFtZSB0byBXZWJDb3JlL2Jp
bmRpbmdzL3Y4L1Y4V2luZG93RXJyb3JIYW5kbGVyLmgKaW5kZXggYTE4ODI5OTAzOGM5Y2RmZTcy
Mjg2YjcxZmVhZWIzYTQ5YzJhMGQ4MS4uMTY3Y2EwZDdkZjQ4NjFlMTE0ZjNhMmQ2NjMzYTc0MjEw
YmY2OGY5YwotLS0gYS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTV29ya2VyQ29udGV4dEVycm9ySGFu
ZGxlci5oCisrKyBiL1dlYkNvcmUvYmluZGluZ3MvdjgvVjhXaW5kb3dFcnJvckhhbmRsZXIuaApA
QCAtMjgsMzcgKzI4LDI4IEBACiAgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgogICovCiAKLSNpZm5kZWYgSlNXb3Jr
ZXJDb250ZXh0RXJyb3JIYW5kbGVyX2gKLSNkZWZpbmUgSlNXb3JrZXJDb250ZXh0RXJyb3JIYW5k
bGVyX2gKKyNpZm5kZWYgVjhXaW5kb3dFcnJvckhhbmRsZXJfaAorI2RlZmluZSBWOFdpbmRvd0Vy
cm9ySGFuZGxlcl9oCiAKLSNpbmNsdWRlICJKU0V2ZW50TGlzdGVuZXIuaCIKKyNpbmNsdWRlICJW
OEN1c3RvbUV2ZW50TGlzdGVuZXIuaCIKKyNpbmNsdWRlIDx2OC5oPgorI2luY2x1ZGUgPHd0Zi9Q
YXNzUmVmUHRyLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotY2xhc3MgSlNXb3JrZXJDb250
ZXh0RXJyb3JIYW5kbGVyIDogcHVibGljIEpTRXZlbnRMaXN0ZW5lciB7CitjbGFzcyBWOFdpbmRv
d0Vycm9ySGFuZGxlciA6IHB1YmxpYyBWOEV2ZW50TGlzdGVuZXIgewogcHVibGljOgotICAgIHN0
YXRpYyBQYXNzUmVmUHRyPEpTV29ya2VyQ29udGV4dEVycm9ySGFuZGxlcj4gY3JlYXRlKEpTQzo6
SlNPYmplY3QqIGxpc3RlbmVyLCBKU0M6OkpTT2JqZWN0KiB3cmFwcGVyLCBib29sIGlzQXR0cmli
dXRlLCBET01XcmFwcGVyV29ybGQqIGlzb2xhdGVkV29ybGQpCisgICAgc3RhdGljIFBhc3NSZWZQ
dHI8VjhXaW5kb3dFcnJvckhhbmRsZXI+IGNyZWF0ZSh2ODo6TG9jYWw8djg6Ok9iamVjdD4gbGlz
dGVuZXIsIGJvb2wgaXNJbmxpbmUsIGNvbnN0IFdvcmxkQ29udGV4dEhhbmRsZSYgd29ybGRDb250
ZXh0KQogICAgIHsKLSAgICAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBKU1dvcmtlckNvbnRleHRF
cnJvckhhbmRsZXIobGlzdGVuZXIsIHdyYXBwZXIsIGlzQXR0cmlidXRlLCBpc29sYXRlZFdvcmxk
KSk7CisgICAgICAgIHJldHVybiBhZG9wdFJlZihuZXcgVjhXaW5kb3dFcnJvckhhbmRsZXIobGlz
dGVuZXIsIGlzSW5saW5lLCB3b3JsZENvbnRleHQpKTsKICAgICB9CiAKLSAgICB2aXJ0dWFsIH5K
U1dvcmtlckNvbnRleHRFcnJvckhhbmRsZXIoKTsKLQogcHJpdmF0ZToKLSAgICBKU1dvcmtlckNv
bnRleHRFcnJvckhhbmRsZXIoSlNDOjpKU09iamVjdCogZnVuY3Rpb24sIEpTQzo6SlNPYmplY3Qq
IHdyYXBwZXIsIGJvb2wgaXNBdHRyaWJ1dGUsIERPTVdyYXBwZXJXb3JsZCogaXNvbGF0ZWRXb3Js
ZCk7Ci0gICAgdmlydHVhbCB2b2lkIGhhbmRsZUV2ZW50KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQq
LCBFdmVudCopOwotfTsKKyAgICBWOFdpbmRvd0Vycm9ySGFuZGxlcih2ODo6TG9jYWw8djg6Ok9i
amVjdD4gbGlzdGVuZXIsIGJvb2wgaXNJbmxpbmUsIGNvbnN0IFdvcmxkQ29udGV4dEhhbmRsZSYg
d29ybGRDb250ZXh0KTsKIAotLy8gQ3JlYXRlcyBhIEpTIEV2ZW50TGlzdGVuZXIgZm9yICJvbmVy
cm9yIiBldmVudCBoYW5kbGVyIGluIHdvcmtlciBjb250ZXh0LiBJdCBoYXMgY3VzdG9tIGltcGxl
bWVudGF0aW9uIGJlY2F1c2UKLS8vIHVubGlrZSBvdGhlciBldmVudCBsaXN0ZW5lcnMgaXQgYWNj
ZXB0cyB0aHJlZSBwYXJhbWV0ZXJzLgotaW5saW5lIFBhc3NSZWZQdHI8SlNXb3JrZXJDb250ZXh0
RXJyb3JIYW5kbGVyPiBjcmVhdGVKU1dvcmtlckNvbnRleHRFcnJvckhhbmRsZXIoSlNDOjpFeGVj
U3RhdGUqIGV4ZWMsIEpTQzo6SlNWYWx1ZSBsaXN0ZW5lciwgSlNDOjpKU09iamVjdCogd3JhcHBl
cikKLXsKLSAgICBpZiAoIWxpc3RlbmVyLmlzT2JqZWN0KCkpCi0gICAgICAgIHJldHVybiAwOwot
Ci0gICAgcmV0dXJuIEpTV29ya2VyQ29udGV4dEVycm9ySGFuZGxlcjo6Y3JlYXRlKGFzT2JqZWN0
KGxpc3RlbmVyKSwgd3JhcHBlciwgdHJ1ZSwgY3VycmVudFdvcmxkKGV4ZWMpKTsKLX0KKyAgICB2
aXJ0dWFsIHY4OjpMb2NhbDx2ODo6VmFsdWU+IGNhbGxMaXN0ZW5lckZ1bmN0aW9uKFNjcmlwdEV4
ZWN1dGlvbkNvbnRleHQqLCB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4ganNFdmVudCwgRXZlbnQqKTsK
K307CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAotI2VuZGlmIC8vIEpTV29ya2VyQ29udGV4
dEVycm9ySGFuZGxlcl9oCisjZW5kaWYgLy8gVjhXaW5kb3dFcnJvckhhbmRsZXJfaApkaWZmIC0t
Z2l0IGEvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwIGIvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3Bw
CmluZGV4IGU3NWFjNmEwOGE2YjNlZGExMzQ4YjRhOGYxN2NkM2U0MDJjNTZkNDUuLjBlMjRjOTVh
ZTU2NTlhZmFhM2VjYzU4MDUxMzhjNmY0MWU3Yjg4NTcgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvZG9t
L0RvY3VtZW50LmNwcAorKysgYi9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKQEAgLTQ0NDMsNiAr
NDQ0MywxMiBAQCB2b2lkIERvY3VtZW50OjpwYXJzZUROU1ByZWZldGNoQ29udHJvbEhlYWRlcihj
b25zdCBTdHJpbmcmIGRuc1ByZWZldGNoQ29udHJvbCkKIAogdm9pZCBEb2N1bWVudDo6cmVwb3J0
RXhjZXB0aW9uKGNvbnN0IFN0cmluZyYgZXJyb3JNZXNzYWdlLCBpbnQgbGluZU51bWJlciwgY29u
c3QgU3RyaW5nJiBzb3VyY2VVUkwpCiB7CisgICAgaWYgKERPTVdpbmRvdyogZG9tV2luZG93ID0g
dGhpcy0+ZG9tV2luZG93KCkpIHsKKyAgICAgICAgLy8gSW52b2tlIHdpbmRvdy5vbmVycm9yLgor
ICAgICAgICBpZiAoaW52b2tlT25FcnJvckhhbmRsZXIoZG9tV2luZG93LT5vbmVycm9yKCksIGVy
cm9yTWVzc2FnZSwgbGluZU51bWJlciwgc291cmNlVVJMKSkKKyAgICAgICAgICAgIHJldHVybjsK
KyAgICB9CisKICAgICBhZGRNZXNzYWdlKEpTTWVzc2FnZVNvdXJjZSwgTG9nTWVzc2FnZVR5cGUs
IEVycm9yTWVzc2FnZUxldmVsLCBlcnJvck1lc3NhZ2UsIGxpbmVOdW1iZXIsIHNvdXJjZVVSTCk7
CiB9CiAKZGlmZiAtLWdpdCBhL1dlYkNvcmUvZG9tL1NjcmlwdEV4ZWN1dGlvbkNvbnRleHQuY3Bw
IGIvV2ViQ29yZS9kb20vU2NyaXB0RXhlY3V0aW9uQ29udGV4dC5jcHAKaW5kZXggZDAxNGQ0N2I0
MmRiNTE1YmU1M2M3MTBlMzllZGM4YmY5MGI0MDYzMS4uZmM4YzMxMmRkNTgwYTQ5Y2FjZDhjYzVh
ZTk4ZWZiMjRmMDQ5ZTQzZCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9kb20vU2NyaXB0RXhlY3V0aW9u
Q29udGV4dC5jcHAKKysrIGIvV2ViQ29yZS9kb20vU2NyaXB0RXhlY3V0aW9uQ29udGV4dC5jcHAK
QEAgLTMzLDYgKzMzLDggQEAKICNpbmNsdWRlICJEYXRhYmFzZS5oIgogI2luY2x1ZGUgIkRhdGFi
YXNlVGFzay5oIgogI2luY2x1ZGUgIkRhdGFiYXNlVGhyZWFkLmgiCisjaW5jbHVkZSAiRXJyb3JF
dmVudC5oIgorI2luY2x1ZGUgIkV2ZW50TGlzdGVuZXIuaCIKICNpbmNsdWRlICJGaWxlVGhyZWFk
LmgiCiAjaW5jbHVkZSAiTWVzc2FnZVBvcnQuaCIKICNpbmNsdWRlICJTZWN1cml0eU9yaWdpbi5o
IgpAQCAtNjUsNiArNjcsNyBAQCBTY3JpcHRFeGVjdXRpb25Db250ZXh0OjpTY3JpcHRFeGVjdXRp
b25Db250ZXh0KCkKICNpZiBFTkFCTEUoREFUQUJBU0UpCiAgICAgOiBtX2hhc09wZW5EYXRhYmFz
ZXMoZmFsc2UpCiAjZW5kaWYKKyAgICAsIG1faW5FcnJvckhhbmRsZXIoZmFsc2UpCiB7CiB9CiAK
QEAgLTI1OCw2ICsyNjEsMTkgQEAgdm9pZCBTY3JpcHRFeGVjdXRpb25Db250ZXh0OjpzZXRTZWN1
cml0eU9yaWdpbihQYXNzUmVmUHRyPFNlY3VyaXR5T3JpZ2luPiBzZWN1cmkKICAgICBtX3NlY3Vy
aXR5T3JpZ2luID0gc2VjdXJpdHlPcmlnaW47CiB9CiAKK2Jvb2wgU2NyaXB0RXhlY3V0aW9uQ29u
dGV4dDo6aW52b2tlT25FcnJvckhhbmRsZXIoRXZlbnRMaXN0ZW5lciogb25lcnJvciwgY29uc3Qg
U3RyaW5nJiBlcnJvck1lc3NhZ2UsIGludCBsaW5lTnVtYmVyLCBjb25zdCBTdHJpbmcmIHNvdXJj
ZVVSTCkKK3sKKyAgICBpZiAoIW9uZXJyb3IpCisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICBp
ZiAobV9pbkVycm9ySGFuZGxlcikKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIG1faW5FcnJv
ckhhbmRsZXIgPSB0cnVlOworICAgIFJlZlB0cjxFcnJvckV2ZW50PiBlcnJvckV2ZW50KEVycm9y
RXZlbnQ6OmNyZWF0ZShlcnJvck1lc3NhZ2UsIHNvdXJjZVVSTCwgbGluZU51bWJlcikpOworICAg
IG9uZXJyb3ItPmhhbmRsZUV2ZW50KHRoaXMsIGVycm9yRXZlbnQuZ2V0KCkpOworICAgIG1faW5F
cnJvckhhbmRsZXIgPSBmYWxzZTsKKyAgICByZXR1cm4gZXJyb3JFdmVudC0+ZGVmYXVsdFByZXZl
bnRlZCgpOworfQorCiB2b2lkIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQ6OmFkZFRpbWVvdXQoaW50
IHRpbWVvdXRJZCwgRE9NVGltZXIqIHRpbWVyKQogewogICAgIEFTU0VSVCghbV90aW1lb3V0cy5j
b250YWlucyh0aW1lb3V0SWQpKTsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvZG9tL1NjcmlwdEV4ZWN1
dGlvbkNvbnRleHQuaCBiL1dlYkNvcmUvZG9tL1NjcmlwdEV4ZWN1dGlvbkNvbnRleHQuaAppbmRl
eCAzMGMxMmU1MGMzNjJlZjAwODZiNTQ5ODYxMWMwMTQzNmU3YWU0MGI3Li5iOTdjMzEzNTRhNzEy
YTAxZDhlYjRmYTY5ZjE0YzFlYTM0N2Q4MzRlIDEwMDY0NAotLS0gYS9XZWJDb3JlL2RvbS9TY3Jp
cHRFeGVjdXRpb25Db250ZXh0LmgKKysrIGIvV2ViQ29yZS9kb20vU2NyaXB0RXhlY3V0aW9uQ29u
dGV4dC5oCkBAIC01Miw2ICs1Miw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICBjbGFzcyBE
YXRhYmFzZVRocmVhZDsKICNlbmRpZgogICAgIGNsYXNzIERPTVRpbWVyOworICAgIGNsYXNzIEV2
ZW50TGlzdGVuZXI7CiAjaWYgRU5BQkxFKEJMT0IpIHx8IEVOQUJMRShGSUxFX1dSSVRFUikKICAg
ICBjbGFzcyBGaWxlVGhyZWFkOwogI2VuZGlmCkBAIC05NCw2ICs5NSw3IEBAIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKIAogICAgICAgICB2aXJ0dWFsIHZvaWQgcmVwb3J0RXhjZXB0aW9uKGNvbnN0IFN0
cmluZyYgZXJyb3JNZXNzYWdlLCBpbnQgbGluZU51bWJlciwgY29uc3QgU3RyaW5nJiBzb3VyY2VV
UkwpID0gMDsKICAgICAgICAgdmlydHVhbCB2b2lkIGFkZE1lc3NhZ2UoTWVzc2FnZVNvdXJjZSwg
TWVzc2FnZVR5cGUsIE1lc3NhZ2VMZXZlbCwgY29uc3QgU3RyaW5nJiBtZXNzYWdlLCB1bnNpZ25l
ZCBsaW5lTnVtYmVyLCBjb25zdCBTdHJpbmcmIHNvdXJjZVVSTCkgPSAwOworICAgICAgICBib29s
IGludm9rZU9uRXJyb3JIYW5kbGVyKEV2ZW50TGlzdGVuZXIqLCBjb25zdCBTdHJpbmcmIGVycm9y
TWVzc2FnZSwgaW50IGxpbmVOdW1iZXIsIGNvbnN0IFN0cmluZyYgc291cmNlVVJMKTsKIAogICAg
ICAgICAvLyBBY3RpdmUgb2JqZWN0cyBhcmUgbm90IGdhcmJhZ2UgY29sbGVjdGVkIGV2ZW4gaWYg
aW5hY2Nlc3NpYmxlLCBlLmcuIGJlY2F1c2UgdGhlaXIgYWN0aXZpdHkgbWF5IHJlc3VsdCBpbiBj
YWxsYmFja3MgYmVpbmcgaW52b2tlZC4KICAgICAgICAgYm9vbCBjYW5TdXNwZW5kQWN0aXZlRE9N
T2JqZWN0cygpOwpAQCAtMTgzLDYgKzE4NSw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICNpZiBF
TkFCTEUoQkxPQikgfHwgRU5BQkxFKEZJTEVfV1JJVEVSKQogICAgICAgICBSZWZQdHI8RmlsZVRo
cmVhZD4gbV9maWxlVGhyZWFkOwogI2VuZGlmCisgICAgICAgIGJvb2wgbV9pbkVycm9ySGFuZGxl
cjsKICAgICB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9XZWJDb3Jl
L3dvcmtlcnMvV29ya2VyQ29udGV4dC5jcHAgYi9XZWJDb3JlL3dvcmtlcnMvV29ya2VyQ29udGV4
dC5jcHAKaW5kZXggMzZhOWY5NDZkZDM3NzdmZWRmMTJjY2QwNzg3MWM5NzA4MzZlZGU4ZS4uMzBh
OGNkNGNlMGFlNzg3ODE4MDc1MGFiNzBkYjM3ZmFhM2JkY2Y0NiAxMDA2NDQKLS0tIGEvV2ViQ29y
ZS93b3JrZXJzL1dvcmtlckNvbnRleHQuY3BwCisrKyBiL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJD
b250ZXh0LmNwcApAQCAtODgsNyArODgsNiBAQCBXb3JrZXJDb250ZXh0OjpXb3JrZXJDb250ZXh0
KGNvbnN0IEtVUkwmIHVybCwgY29uc3QgU3RyaW5nJiB1c2VyQWdlbnQsIFdvcmtlclRocgogICAg
ICwgbV9zY3JpcHQobmV3IFdvcmtlclNjcmlwdENvbnRyb2xsZXIodGhpcykpCiAgICAgLCBtX3Ro
cmVhZCh0aHJlYWQpCiAgICAgLCBtX2Nsb3NpbmcoZmFsc2UpCi0gICAgLCBtX3JlcG9ydGluZ0V4
Y2VwdGlvbihmYWxzZSkKIHsKICAgICBzZXRTZWN1cml0eU9yaWdpbihTZWN1cml0eU9yaWdpbjo6
Y3JlYXRlKHVybCkpOwogfQpAQCAtMjQzLDE3ICsyNDIsNyBAQCB2b2lkIFdvcmtlckNvbnRleHQ6
OmltcG9ydFNjcmlwdHMoY29uc3QgVmVjdG9yPFN0cmluZz4mIHVybHMsIEV4Y2VwdGlvbkNvZGUm
IGVjKQogCiB2b2lkIFdvcmtlckNvbnRleHQ6OnJlcG9ydEV4Y2VwdGlvbihjb25zdCBTdHJpbmcm
IGVycm9yTWVzc2FnZSwgaW50IGxpbmVOdW1iZXIsIGNvbnN0IFN0cmluZyYgc291cmNlVVJMKQog
ewotICAgIGJvb2wgZXJyb3JIYW5kbGVkID0gZmFsc2U7Ci0gICAgaWYgKCFtX3JlcG9ydGluZ0V4
Y2VwdGlvbikgewotICAgICAgICBpZiAob25lcnJvcigpKSB7Ci0gICAgICAgICAgICBtX3JlcG9y
dGluZ0V4Y2VwdGlvbiA9IHRydWU7Ci0gICAgICAgICAgICBSZWZQdHI8RXJyb3JFdmVudD4gZXJy
b3JFdmVudChFcnJvckV2ZW50OjpjcmVhdGUoZXJyb3JNZXNzYWdlLCBzb3VyY2VVUkwsIGxpbmVO
dW1iZXIpKTsKLSAgICAgICAgICAgIG9uZXJyb3IoKS0+aGFuZGxlRXZlbnQodGhpcywgZXJyb3JF
dmVudC5nZXQoKSk7Ci0gICAgICAgICAgICBlcnJvckhhbmRsZWQgPSBlcnJvckV2ZW50LT5kZWZh
dWx0UHJldmVudGVkKCk7Ci0gICAgICAgICAgICBtX3JlcG9ydGluZ0V4Y2VwdGlvbiA9IGZhbHNl
OwotICAgICAgICB9Ci0gICAgfQotICAgIGlmICghZXJyb3JIYW5kbGVkKQorICAgIGlmICghaW52
b2tlT25FcnJvckhhbmRsZXIob25lcnJvcigpLCBlcnJvck1lc3NhZ2UsIGxpbmVOdW1iZXIsIHNv
dXJjZVVSTCkpCiAgICAgICAgIHRocmVhZCgpLT53b3JrZXJSZXBvcnRpbmdQcm94eSgpLnBvc3RF
eGNlcHRpb25Ub1dvcmtlck9iamVjdChlcnJvck1lc3NhZ2UsIGxpbmVOdW1iZXIsIHNvdXJjZVVS
TCk7CiB9CiAKZGlmZiAtLWdpdCBhL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJDb250ZXh0LmggYi9X
ZWJDb3JlL3dvcmtlcnMvV29ya2VyQ29udGV4dC5oCmluZGV4IDllOWU1NGY4YjEzMTNlNjVmYmFm
ZWFhZWRhZWY0ZGUwOWM5MDIyYzEuLjE3NDNiYjYwMWY2ZWVkODUyMTlhZWE5ZmVmOWU1MGNiOWM2
YTkxMmEgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJDb250ZXh0LmgKKysrIGIv
V2ViQ29yZS93b3JrZXJzL1dvcmtlckNvbnRleHQuaApAQCAtMTU0LDcgKzE1NCw2IEBAIG5hbWVz
cGFjZSBXZWJDb3JlIHsKICAgICAgICAgbXV0YWJsZSBSZWZQdHI8Tm90aWZpY2F0aW9uQ2VudGVy
PiBtX25vdGlmaWNhdGlvbnM7CiAjZW5kaWYKICAgICAgICAgYm9vbCBtX2Nsb3Npbmc7Ci0gICAg
ICAgIGJvb2wgbV9yZXBvcnRpbmdFeGNlcHRpb247CiAgICAgICAgIEV2ZW50VGFyZ2V0RGF0YSBt
X2V2ZW50VGFyZ2V0RGF0YTsKICAgICB9OwogCg==
</data>
<flag name="review"
          id="53790"
          type_id="1"
          status="-"
          setter="sam"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>67141</attachid>
            <date>2010-09-09 19:25:29 -0700</date>
            <delta_ts>2010-09-09 19:25:29 -0700</delta_ts>
            <desc>Another test case with a syntax error which should be caught with window.onerror </desc>
            <filename>onerrorsyntaxtest1.html</filename>
            <type>text/html</type>
            <size>339</size>
            <attacher name="Greg Hazel">ghazel</attacher>
            
              <data encoding="base64">PGh0bWw+CjxoZWFkPgo8c2NyaXB0Pgp3aW5kb3cub25lcnJvciA9IGZ1bmN0aW9uIChlcnJvciwg
ZmlsZSwgbGluZSkgewogICAgYWxlcnQoIkVycm9yIGNhdWdodCBzdWNjZXNzZnVsbHk6ICIgKyBl
cnJvciArICJcbkZpbGU6ICIgKyBmaWxlICsgIlxuTGluZTogIiArIGxpbmUpCn07Cjwvc2NyaXB0
Pgo8c2NyaXB0PgphKAo8L3NjcmlwdD4KPC9oZWFkPgo8Ym9keT4KPHA+WW91IHNob3VsZCBzZWUg
YW4gYWxlcnQgaWYgd2luZG93Lm9uZXJyb3IgaXMgd29ya2luZyBwcm9wZXJseSBmb3IgdGhpcyB0
ZXN0LjwvcD4KPGhyPgo8ZGl2IGlkPSdjb25zb2xlJz48L2Rpdj4KPC9ib2R5Pgo8L2h0bWw+
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>69208</attachid>
            <date>2010-09-29 10:10:07 -0700</date>
            <delta_ts>2010-10-01 06:35:27 -0700</delta_ts>
            <desc>Patch, next iteration</desc>
            <filename>window.onerror.patch</filename>
            <type>text/plain</type>
            <size>108752</size>
            <attacher name="Yury Semikhatsky">yurys</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCBlODc5MjJlLi41YTQ1MGU0IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDMgQEAKKzIwMTAtMDgt
MjMgIFl1cnkgU2VtaWtoYXRza3kgIDx5dXJ5c0BjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgV2ViQ29yZSBkb2Vzbid0IGZpcmUg
d2luZG93Lm9uZXJyb3IgZXZlbnQgd2hlbiB1bmNhdWdodCBKYXZhU2NyaXB0IGV4Y2VwdGlvbnMg
YXJlIHRocm93bgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9ODUxOQorCisgICAgICAgIFVuY2F1Z2h0IGV4Y2VwdGlvbnMgYXJlIHByb3BhZ2F0ZWQgdG8g
d2luZG93Lm9uZXJyb3IgaGFuZGVyIGlmIG9uZSBpcyBwcmVzZW50LgorICAgICAgICBUaGUgaGFu
ZGxlciBpcyBleHBlY3RlZCB0byBiZSBhIGZ1bmN0aW9uIGFjY2VwdGluZyB0aHJlZSBhcmd1bWVu
dHM6IGVycm9yIG1lc3NhZ2UsCisgICAgICAgIHJlc291cmNlIHVybCBhbmQgbGluZSBudW1iZXIg
d2hlcmUgdGhlIGV4Y2VwdGlvbiBvY2N1cmVkLgorCisgICAgICAgICogZmFzdC9ldmVudHMvd2lu
ZG93LW9uZXJyb3IxLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC9ldmVudHMv
d2luZG93LW9uZXJyb3IxLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZXZlbnRzL3dpbmRv
dy1vbmVycm9yMi1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZXZlbnRzL3dp
bmRvdy1vbmVycm9yMi5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2V2ZW50cy93aW5kb3ct
b25lcnJvcjMtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2V2ZW50cy93aW5k
b3ctb25lcnJvcjMuaHRtbDogQWRkZWQuCisgICAgICAgICogZmFzdC9ldmVudHMvd2luZG93LW9u
ZXJyb3I0LWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC9ldmVudHMvd2luZG93
LW9uZXJyb3I0Lmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZXZlbnRzL3dpbmRvdy1vbmVy
cm9yNS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZXZlbnRzL3dpbmRvdy1v
bmVycm9yNS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2V2ZW50cy93aW5kb3ctb25lcnJv
cjYtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2V2ZW50cy93aW5kb3ctb25l
cnJvcjYuaHRtbDogQWRkZWQuCisgICAgICAgICogZmFzdC9ldmVudHMvd2luZG93LW9uZXJyb3I3
LWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC9ldmVudHMvd2luZG93LW9uZXJy
b3I3Lmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZXZlbnRzL3dpbmRvdy1vbmVycm9yOC1l
eHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZXZlbnRzL3dpbmRvdy1vbmVycm9y
OC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3NlY3VyaXR5L3Jlc291cmNlcy9v
bmVycm9yLWlmcmFtZS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3NlY3VyaXR5
L3dpbmRvdy1vbmVycm9yLWV4Y2VwdGlvbi1pbi1pZnJhbWUtZXhwZWN0ZWQudHh0OiBBZGRlZC4K
KyAgICAgICAgKiBodHRwL3Rlc3RzL3NlY3VyaXR5L3dpbmRvdy1vbmVycm9yLWV4Y2VwdGlvbi1p
bi1pZnJhbWUuaHRtbDogQWRkZWQuCisgICAgICAgICogcGxhdGZvcm0vY2hyb21pdW0vZmFzdC9l
dmVudHMvd2luZG93LW9uZXJyb3IxLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogcGxh
dGZvcm0vY2hyb21pdW0vZmFzdC9ldmVudHMvd2luZG93LW9uZXJyb3IyLWV4cGVjdGVkLnR4dDog
QWRkZWQuCisgICAgICAgICogcGxhdGZvcm0vY2hyb21pdW0vZmFzdC9ldmVudHMvd2luZG93LW9u
ZXJyb3IzLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogcGxhdGZvcm0vY2hyb21pdW0v
ZmFzdC9ldmVudHMvd2luZG93LW9uZXJyb3I0LWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAg
ICogcGxhdGZvcm0vY2hyb21pdW0vZmFzdC9ldmVudHMvd2luZG93LW9uZXJyb3I1LWV4cGVjdGVk
LnR4dDogQWRkZWQuCisgICAgICAgICogcGxhdGZvcm0vY2hyb21pdW0vZmFzdC9ldmVudHMvd2lu
ZG93LW9uZXJyb3I2LWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogcGxhdGZvcm0vY2hy
b21pdW0vZmFzdC9ldmVudHMvd2luZG93LW9uZXJyb3I3LWV4cGVjdGVkLnR4dDogQWRkZWQuCisg
ICAgICAgICogcGxhdGZvcm0vY2hyb21pdW0vZmFzdC9ldmVudHMvd2luZG93LW9uZXJyb3I4LWV4
cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogcGxhdGZvcm0vY2hyb21pdW0vaHR0cC90ZXN0
cy9zZWN1cml0eS93aW5kb3ctb25lcnJvci1leGNlcHRpb24taW4taWZyYW1lLWV4cGVjdGVkLnR4
dDogQWRkZWQuCisKIDIwMTAtMDktMjcgIEFsZXhhbmRlciBQYXZsb3YgIDxhcGF2bG92QGNocm9t
aXVtLm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBieSBTYW0gV2VpbmlnLgpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvcmVzb3VyY2VzL3dpbmRvdy1vbmVycm9yLmpzIGIvTGF5
b3V0VGVzdHMvZmFzdC9ldmVudHMvcmVzb3VyY2VzL3dpbmRvdy1vbmVycm9yLmpzCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjM0NDU3NGIKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9yZXNvdXJjZXMvd2luZG93LW9uZXJyb3IuanMKQEAgLTAs
MCArMSwzIEBACitmdW5jdGlvbiB0aHJvd0V4Y2VwdGlvbigpIHsKKyAgICB0aHJvdyBuZXcgRXJy
b3IoIkFuIGV4Y2VwdGlvbiIpOworfQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9ldmVu
dHMvd2luZG93LW9uZXJyb3IxLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRz
L3dpbmRvdy1vbmVycm9yMS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMC4uZmU1MWI3MgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZXZl
bnRzL3dpbmRvdy1vbmVycm9yMS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwzIEBACitUaGlzIHBh
Z2UgdGVzdHMgc2V0dGluZyBvbmVycm9yIGhhbmRsZXJzIHRocm91Z2ggdGhlIERPTS4gSWYgaXQg
cGFzc2VzLCB5b3Ugd2lsbCBzZWUgIlBBU1MiIG1lc3NhZ2VzIGJlbG93LkJ1ZyA4NTE5LgorCitQ
QVNTOiBjYXVnaHQgZ2xvYmFsIGVycm9yOiBSZWZlcmVuY2VFcnJvcjogQ2FuJ3QgZmluZCB2YXJp
YWJsZTogaGFoYWhhX2dvb2RfbHVja19maW5kaW5nX21lIGF0IHdpbmRvdy1vbmVycm9yMS5odG1s
OjI1CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy93aW5kb3ctb25lcnJvcjEu
aHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3dpbmRvdy1vbmVycm9yMS5odG1sCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjU5ZDI0OTUKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy93aW5kb3ctb25lcnJvcjEuaHRtbApAQCAtMCwwICsx
LDM1IEBACis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdD4KK2lmICh3aW5kb3cubGF5b3V0VGVzdENv
bnRyb2xsZXIpCisgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOworCitmdW5j
dGlvbiBwcmludChtZXNzYWdlLCBjb2xvcikKK3sKKyAgICB2YXIgcGFyYWdyYXBoID0gZG9jdW1l
bnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7CisgICAgcGFyYWdyYXBoLmFwcGVuZENoaWxkKGRvY3Vt
ZW50LmNyZWF0ZVRleHROb2RlKG1lc3NhZ2UpKTsKKyAgICBwYXJhZ3JhcGguc3R5bGUuZm9udEZh
bWlseSA9ICJtb25vc3BhY2UiOworICAgIGlmIChjb2xvcikKKyAgICAgICAgcGFyYWdyYXBoLnN0
eWxlLmNvbG9yID0gY29sb3I7CisgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNvbnNvbGUi
KS5hcHBlbmRDaGlsZChwYXJhZ3JhcGgpOworfQorCitmdW5jdGlvbiB0ZXN0KCkKK3sKKyAgICAv
LyBtdXN0IGJlIGxhc3QgYmVjYXVzZSB0aGUgZXhjZXB0aW9uIGVuZHMgSmF2YVNjcmlwdCBleGVj
dXRpb24KKyAgICB3aW5kb3cub25lcnJvciA9IGZ1bmN0aW9uIChlcnJvciwgdXJsLCBsaW5lKSB7
CisgICAgICAgIHVybCA9IHVybCA/IHVybC5tYXRjaCggL1teXC9dK1wvPyQvIClbMF0gOiB1cmw7
CisgICAgICAgIHByaW50KCJQQVNTOiBjYXVnaHQgZ2xvYmFsIGVycm9yOiAiICsgZXJyb3IgKyAi
IGF0ICIgKyB1cmwgKyAiOiIgKyBsaW5lLCAiZ3JlZW4iKTsKKyAgICAgICAgcmV0dXJuIGZhbHNl
OworICAgIH07CisgICAgaGFoYWhhX2dvb2RfbHVja19maW5kaW5nX21lKCk7IC8vIGNhdWdodCBi
eSB3aW5kb3cub25lcnJvcgorfQorPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keSBvbmxvYWQ9InRl
c3QoKTsiPgorPHA+VGhpcyBwYWdlIHRlc3RzIHNldHRpbmcgb25lcnJvciBoYW5kbGVycyB0aHJv
dWdoIHRoZSBET00uIElmIGl0IHBhc3NlcywgeW91IHdpbGwKKyAgIHNlZSAiUEFTUyIgbWVzc2Fn
ZXMgYmVsb3cuPGEgaHJlZj0iaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTg1MTkiPkJ1ZyA4NTE5PC9hPi48L3A+Cis8aHI+Cis8ZGl2IGlkPSdjb25zb2xlJz48L2Rpdj4K
KzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3dp
bmRvdy1vbmVycm9yMTAtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvd2lu
ZG93LW9uZXJyb3IxMC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMC4uYmZmNTYzNgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRz
L3dpbmRvdy1vbmVycm9yMTAtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTEgQEAKK1Rlc3QgdGhh
dCAiZXJyb3IiIGV2ZW50IGxpc3RlbmVyIGFkZGVkIHdpdGggd2luZG93LmFkZEV2ZW50TGlzdGVu
ZXIgaXMgaW52b2tlZCBmb3IgdW5jYXVjaHQgZXhjZXB0aW9ucy4gQnVnIDg1MTkuCisKK2V2ZW50
IHBhc3NlZCB0byB0aGUgbGlzdGVuZXIgaXMgdGhlIHNhbWUgYXMgd2luZG93LmV2ZW50OiB0cnVl
CitFdmVudCBkZXRhaWxzOgordHlwZTogZXJyb3IKK3BoYXNlOiAyCitjdXJyZW50VGFyZ2V0IGlz
IHRoZSBnbG9iYWwgb2JqZWN0OiB0cnVlCittZXNzYWdlOiBFcnJvcjogTXkgZmF1bHQuCitmaWxl
bmFtZTogd2luZG93LW9uZXJyb3IxMC5odG1sCitsaW5lbm86IDI5CisKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2Zhc3QvZXZlbnRzL3dpbmRvdy1vbmVycm9yMTAuaHRtbCBiL0xheW91dFRlc3Rz
L2Zhc3QvZXZlbnRzL3dpbmRvdy1vbmVycm9yMTAuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDc1NQpp
bmRleCAwMDAwMDAwLi4yNmVkMDE4Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFz
dC9ldmVudHMvd2luZG93LW9uZXJyb3IxMC5odG1sCkBAIC0wLDAgKzEsMzMgQEAKKzxodG1sPgor
PGJvZHk+Cis8cD5UZXN0IHRoYXQgImVycm9yIiBldmVudCBsaXN0ZW5lciBhZGRlZCB3aXRoIHdp
bmRvdy5hZGRFdmVudExpc3RlbmVyIGlzIGludm9rZWQgZm9yIHVuY2F1Y2h0IGV4Y2VwdGlvbnMu
IDxhIGhyZWY9Imh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04NTE5Ij5C
dWcgODUxOTwvYT4uPC9wPgorPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+Cis8c2NyaXB0PgoraWYg
KHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKKyAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5k
dW1wQXNUZXh0KCk7CisKK2Z1bmN0aW9uIGxvZyhtc2cpIHsKKyAgICBkb2N1bWVudC5nZXRFbGVt
ZW50QnlJZCgiY29uc29sZSIpLmlubmVySFRNTCArPSBtc2cgKyAiPGJyPiI7Cit9CisKK2Z1bmN0
aW9uIGxhc3RQYXRoQ29tcG9uZW50KHVybCkgeworICAgIHJldHVybiB1cmwgPyB1cmwubWF0Y2go
IC9bXlwvXStcLz8kLyApWzBdIDogdXJsOworfQorCit3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigi
ZXJyb3IiLCBmdW5jdGlvbihlKSB7CisgICAgbG9nKCJldmVudCBwYXNzZWQgdG8gdGhlIGxpc3Rl
bmVyIGlzIHRoZSBzYW1lIGFzIHdpbmRvdy5ldmVudDogIiArICh3aW5kb3cuZXZlbnQgPT09IGUp
KTsKKyAgICBsb2coIkV2ZW50IGRldGFpbHM6Iik7CisgICAgbG9nKCJ0eXBlOiAiICsgZS50eXBl
KTsKKyAgICBsb2coInBoYXNlOiAiICsgZS5ldmVudFBoYXNlKQorICAgIGxvZygiY3VycmVudFRh
cmdldCBpcyB0aGUgZ2xvYmFsIG9iamVjdDogIiArIChlLmN1cnJlbnRUYXJnZXQgPT09IHdpbmRv
dykpOworICAgIGxvZygibWVzc2FnZTogIiArIGUubWVzc2FnZSk7CisgICAgbG9nKCJmaWxlbmFt
ZTogIiArIGxhc3RQYXRoQ29tcG9uZW50KGUuZmlsZW5hbWUpKTsKKyAgICBsb2coImxpbmVubzog
IiArIGUubGluZW5vKTsKKyAgICBlLnByZXZlbnREZWZhdWx0KCk7Cit9LCBmYWxzZSk7CisKK3Ro
cm93IG5ldyBFcnJvcigiTXkgZmF1bHQuIik7CisKKzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1s
PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvd2luZG93LW9uZXJyb3IxMS1l
eHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy93aW5kb3ctb25lcnJvcjExLWV4
cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45NmUyMGNjCi0t
LSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvd2luZG93LW9uZXJyb3Ix
MS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw0IEBACitUZXN0IHRoYXQgd2luZG93Lm9uZXJyb3Ig
aXMgY2FsbGVkIG9uIHdpbmRvdyBvYmplY3QuIEJ1ZyA4NTE5LgorCitNYWluIGZyYW1lIHdpbmRv
dy5vbmVycm9yOiBFcnJvcjogQW4gZXhjZXB0aW9uIGF0IHdpbmRvdy1vbmVycm9yLmpzOjIKKwpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvd2luZG93LW9uZXJyb3IxMS5odG1s
IGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvd2luZG93LW9uZXJyb3IxMS5odG1sCm5ldyBmaWxl
IG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjc2NTVmYTcKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy9mYXN0L2V2ZW50cy93aW5kb3ctb25lcnJvcjExLmh0bWwKQEAgLTAsMCArMSwy
OCBAQAorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvd2luZG93LW9uZXJy
b3IuanMiPgorPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxwPlRlc3QgdGhhdCB3aW5kb3cu
b25lcnJvciBpcyBjYWxsZWQgb24gd2luZG93IG9iamVjdC4gPGEgaHJlZj0iaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTg1MTkiPkJ1ZyA4NTE5PC9hPi48L3A+Cis8ZGl2
IGlkPSJjb25zb2xlIj48L2Rpdj4KKzxzY3JpcHQ+CitpZiAod2luZG93LmxheW91dFRlc3RDb250
cm9sbGVyKQorICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKKworZnVuY3Rp
b24gbG9nKG1zZykgeworICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjb25zb2xlIikuaW5u
ZXJIVE1MICs9IG1zZyArICI8YnI+IjsKK30KKword2luZG93Lm9uZXJyb3IgPSBmdW5jdGlvbiht
c2csIHVybCwgbGluZSkKK3sKKyAgICB1cmwgPSB1cmwgPyB1cmwubWF0Y2goIC9bXlwvXStcLz8k
LyApWzBdIDogdXJsOworICAgIGxvZygiTWFpbiBmcmFtZSB3aW5kb3cub25lcnJvcjogIiArIG1z
ZyArICIgYXQgIiArIHVybCArICI6IiArIGxpbmUpOworICAgIHJldHVybiBmYWxzZTsKK30KKwor
dGhyb3dFeGNlcHRpb24oKTsKKworPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy93aW5kb3ctb25lcnJvcjItZXhwZWN0ZWQudHh0
IGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvd2luZG93LW9uZXJyb3IyLWV4cGVjdGVkLnR4dApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45M2EyZDNmCi0tLSAvZGV2L251bGwK
KysrIGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvd2luZG93LW9uZXJyb3IyLWV4cGVjdGVkLnR4
dApAQCAtMCwwICsxLDYgQEAKK1Rlc3QgdGhhdCB1bmNhdWdodCBleGNlcHRpb25zIHdpbGwgYmUg
cmVwb3J0ZWQgdG8gdGhlIHdpbmRvdy5vbmVycm9yIGhhbmRsZXIuIEJ1ZyA4NTE5LgorCitNYWlu
IGZyYW1lIHdpbmRvdy5vbmVycm9yOiBFcnJvcjogSW5saW5lIHNjcmlwdCBleGNlcHRpb24gYXQg
d2luZG93LW9uZXJyb3IyLmh0bWw6MzUKK01haW4gZnJhbWUgd2luZG93Lm9uZXJyb3I6IEV4Y2Vw
dGlvbiBpbiBvbmxvYWQgYXQgdW5kZWZpbmVkOjAKK01haW4gZnJhbWUgd2luZG93Lm9uZXJyb3I6
IEVycm9yOiBFeGNlcHRpb24gaW4gc2V0VGltZW91dCBhdCB3aW5kb3ctb25lcnJvcjIuaHRtbDoy
OQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy93aW5kb3ctb25lcnJvcjIu
aHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3dpbmRvdy1vbmVycm9yMi5odG1sCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmRiOWZiNzUKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy93aW5kb3ctb25lcnJvcjIuaHRtbApAQCAtMCwwICsx
LDQxIEBACis8aHRtbD4KKzxib2R5IG9ubG9hZD0idGhyb3cgJ0V4Y2VwdGlvbiBpbiBvbmxvYWQn
OyI+Cis8cD5UZXN0IHRoYXQgdW5jYXVnaHQgZXhjZXB0aW9ucyB3aWxsIGJlIHJlcG9ydGVkIHRv
IHRoZSB3aW5kb3cub25lcnJvciBoYW5kbGVyLiA8YSBocmVmPSJodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODUxOSI+QnVnIDg1MTk8L2E+LjwvcD4KKzxkaXYgaWQ9InJl
c3VsdCI+PC9kaXY+Cis8c2NyaXB0PgoraWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikg
eworICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKKyAgICBsYXlvdXRUZXN0
Q29udHJvbGxlci53YWl0VW50aWxEb25lKCk7Cit9CisKK2Z1bmN0aW9uIGxvZyhtc2cpIHsKKyAg
ICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicmVzdWx0IikuaW5uZXJIVE1MICs9IG1zZyArICI8
YnI+IjsKK30KKwordmFyIHVuaGFuZGxlZEVycm9yQ291bnQgPSAwOword2luZG93Lm9uZXJyb3Ig
PSBmdW5jdGlvbihtc2csIHVybCwgbGluZSkKK3sKKyAgICB1cmwgPSB1cmwgPyB1cmwubWF0Y2go
IC9bXlwvXStcLz8kLyApWzBdIDogdXJsOworICAgIGxvZygiTWFpbiBmcmFtZSB3aW5kb3cub25l
cnJvcjogIiArIG1zZyArICIgYXQgIiArIHVybCArICI6IiArIGxpbmUpOworICAgIAorICAgIGlm
ICgrK3VuaGFuZGxlZEVycm9yQ291bnQgPT09IDMgJiYgd2luZG93LmxheW91dFRlc3RDb250cm9s
bGVyKQorICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5ub3RpZnlEb25lKCk7CisKKyAgICBy
ZXR1cm4gZmFsc2U7Cit9CisKK2Z1bmN0aW9uIGRlbGF5ZWRUaHJvd0V4Y2VwdGlvbigpCit7Cisg
ICAgdGhyb3cgbmV3IEVycm9yKCJFeGNlcHRpb24gaW4gc2V0VGltZW91dCIpOworfQorc2V0VGlt
ZW91dChkZWxheWVkVGhyb3dFeGNlcHRpb24sIDApOworCitmdW5jdGlvbiB0aHJvd0V4Y2VwdGlv
bigpCit7CisgICAgdGhyb3cgbmV3IEVycm9yKCJJbmxpbmUgc2NyaXB0IGV4Y2VwdGlvbiIpOwor
fQordGhyb3dFeGNlcHRpb24oKTsKKworPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy93aW5kb3ctb25lcnJvcjMtZXhwZWN0ZWQu
dHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvd2luZG93LW9uZXJyb3IzLWV4cGVjdGVkLnR4
dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43MDI1ZGJiCi0tLSAvZGV2L251
bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvd2luZG93LW9uZXJyb3IzLWV4cGVjdGVk
LnR4dApAQCAtMCwwICsxLDQgQEAKK1lvdSBzaG91bGQgc2VlIGEgbWVzc2FnZSBpZiB3aW5kb3cu
b25lcnJvciBpcyB3b3JraW5nIHByb3Blcmx5IGZvciB0aGlzIHRlc3QuQnVnIDg1MTkuCisKK0Vy
cm9yIGNhdWdodCBzdWNjZXNzZnVsbHk6IFJlZmVyZW5jZUVycm9yOiBDYW4ndCBmaW5kIHZhcmlh
YmxlOiB1bmtub3duT2JqZWN0IEZpbGU6IHdpbmRvdy1vbmVycm9yMy5odG1sIExpbmU6IDE2CisK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3dpbmRvdy1vbmVycm9yMy5odG1s
IGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvd2luZG93LW9uZXJyb3IzLmh0bWwKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZWUyODkzZgotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL2Zhc3QvZXZlbnRzL3dpbmRvdy1vbmVycm9yMy5odG1sCkBAIC0wLDAgKzEsMjMg
QEAKKzxzY3JpcHQ+CitpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQorICAgIGxheW91
dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKKworZnVuY3Rpb24gbG9nKG1zZykgeworICAg
IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjb25zb2xlIikuaW5uZXJIVE1MICs9IG1zZyArICI8
YnI+IjsKK30KKworZnVuY3Rpb24gdGVzdDEoKQoreworICAgIHdpbmRvdy5vbmVycm9yID0gZnVu
Y3Rpb24gKGVycm9yLCB1cmwsIGxpbmUpIHsKKyAgICAgICAgdXJsID0gdXJsID8gdXJsLm1hdGNo
KCAvW15cL10rXC8/JC8gKVswXSA6IHVybDsKKyAgICAgICAgbG9nKCJFcnJvciBjYXVnaHQgc3Vj
Y2Vzc2Z1bGx5OiAiICsgZXJyb3IgKyAiXG5GaWxlOiAiICsgdXJsICsgIlxuTGluZTogIiArIGxp
bmUpCisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9OworICAgIHVua25vd25PYmplY3QudW5r
bm93blByb3BlcnR5Kys7Cit9Cis8L3NjcmlwdD4KKzxib2R5IG9ubG9hZD0idGVzdDEoKTsiPgor
PHA+WW91IHNob3VsZCBzZWUgYSBtZXNzYWdlIGlmIHdpbmRvdy5vbmVycm9yIGlzIHdvcmtpbmcg
cHJvcGVybHkgZm9yIHRoaXMgdGVzdC48YSBocmVmPSJodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9ODUxOSI+QnVnIDg1MTk8L2E+LjwvcD4KKzxocj4KKzxkaXYgaWQ9J2Nv
bnNvbGUnPjwvZGl2PgorPC9ib2R5PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9ldmVu
dHMvd2luZG93LW9uZXJyb3I0LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRz
L3dpbmRvdy1vbmVycm9yNC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMC4uMjZhZjhhMQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZXZl
bnRzL3dpbmRvdy1vbmVycm9yNC1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw0IEBACitZb3Ugc2hv
dWxkIHNlZSBhIGxvZyByZWNvcmQgaWYgd2luZG93Lm9uZXJyb3IgaXMgd29ya2luZyBwcm9wZXJs
eSBmb3IgdGhpcyB0ZXN0LkJ1ZyA4NTE5LgorCitFcnJvciBjYXVnaHQgc3VjY2Vzc2Z1bGx5OiBS
ZWZlcmVuY2VFcnJvcjogTGVmdCBzaWRlIG9mIGFzc2lnbm1lbnQgaXMgbm90IGEgcmVmZXJlbmNl
LiBGaWxlOiB1bmRlZmluZWQgTGluZTogMQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0
L2V2ZW50cy93aW5kb3ctb25lcnJvcjQuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3dp
bmRvdy1vbmVycm9yNC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmM1
MTg4N2QKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy93aW5kb3ct
b25lcnJvcjQuaHRtbApAQCAtMCwwICsxLDIzIEBACis8c2NyaXB0PgoraWYgKHdpbmRvdy5sYXlv
dXRUZXN0Q29udHJvbGxlcikKKyAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7
CisKK2Z1bmN0aW9uIGxvZyhtc2cpIHsKKyAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY29u
c29sZSIpLmlubmVySFRNTCArPSBtc2cgKyAiPGJyPiI7Cit9CisKK2Z1bmN0aW9uIHRlc3QxKCkK
K3sKKyAgICB3aW5kb3cub25lcnJvciA9IGZ1bmN0aW9uIChlcnJvciwgdXJsLCBsaW5lKSB7Cisg
ICAgICAgIHVybCA9IHVybCA/IHVybC5tYXRjaCggL1teXC9dK1wvPyQvIClbMF0gOiB1cmw7Cisg
ICAgICAgIGxvZygiRXJyb3IgY2F1Z2h0IHN1Y2Nlc3NmdWxseTogIiArIGVycm9yICsgIlxuRmls
ZTogIiArIHVybCArICJcbkxpbmU6ICIgKyBsaW5lKQorICAgICAgICByZXR1cm4gZmFsc2U7Cisg
ICAgfTsKKyAgICBldmFsKCIxPTIiKTsKK30KKzwvc2NyaXB0PgorPGJvZHkgb25sb2FkPSJ0ZXN0
MSgpOyI+Cis8cD5Zb3Ugc2hvdWxkIHNlZSBhIGxvZyByZWNvcmQgaWYgd2luZG93Lm9uZXJyb3Ig
aXMgd29ya2luZyBwcm9wZXJseSBmb3IgdGhpcyB0ZXN0LjxhIGhyZWY9Imh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04NTE5Ij5CdWcgODUxOTwvYT4uPC9wPgorPGhyPgor
PGRpdiBpZD0nY29uc29sZSc+PC9kaXY+Cis8L2JvZHk+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9mYXN0L2V2ZW50cy93aW5kb3ctb25lcnJvcjUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMv
ZmFzdC9ldmVudHMvd2luZG93LW9uZXJyb3I1LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwLi4zZWM3ZjVlCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvZmFzdC9ldmVudHMvd2luZG93LW9uZXJyb3I1LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDQg
QEAKK1Rlc3QgdGhhdCB3aW5kb3cub25lcnJvciBpcyBpbnZva2VkIGZvciBzeW50YXggZXJyb3Ig
aW4gZXZhbC4gWW91IHNob3VsZCBzZWUgYSBsb2cgcmVjb3JkIGlmIHdpbmRvdy5vbmVycm9yIGlz
IHdvcmtpbmcgcHJvcGVybHkgZm9yIHRoaXMgdGVzdC5CdWcgODUxOS4KKworRXJyb3IgY2F1Z2h0
IHN1Y2Nlc3NmdWxseTogU3ludGF4RXJyb3I6IFBhcnNlIGVycm9yIEZpbGU6IHVuZGVmaW5lZCBM
aW5lOiAxCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3dpbmRvdy1vbmVy
cm9yNS5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvd2luZG93LW9uZXJyb3I1Lmh0bWwK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOTMyZDQzOAotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3dpbmRvdy1vbmVycm9yNS5odG1sCkBAIC0w
LDAgKzEsMjMgQEAKKzxzY3JpcHQ+CitpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQor
ICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKKworZnVuY3Rpb24gbG9nKG1z
ZykgeworICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjb25zb2xlIikuaW5uZXJIVE1MICs9
IG1zZyArICI8YnI+IjsKK30KKworZnVuY3Rpb24gdGVzdDEoKQoreworICAgIHdpbmRvdy5vbmVy
cm9yID0gZnVuY3Rpb24gKGVycm9yLCB1cmwsIGxpbmUpIHsKKyAgICAgICAgdXJsID0gdXJsID8g
dXJsLm1hdGNoKCAvW15cL10rXC8/JC8gKVswXSA6IHVybDsKKyAgICAgICAgbG9nKCJFcnJvciBj
YXVnaHQgc3VjY2Vzc2Z1bGx5OiAiICsgZXJyb3IgKyAiXG5GaWxlOiAiICsgdXJsICsgIlxuTGlu
ZTogIiArIGxpbmUpCisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9OworICAgIGV2YWwoImEo
Iik7Cit9Cis8L3NjcmlwdD4KKzxib2R5IG9ubG9hZD0idGVzdDEoKTsiPgorPHA+VGVzdCB0aGF0
IHdpbmRvdy5vbmVycm9yIGlzIGludm9rZWQgZm9yIHN5bnRheCBlcnJvciBpbiBldmFsLiBZb3Ug
c2hvdWxkIHNlZSBhIGxvZyByZWNvcmQgaWYgd2luZG93Lm9uZXJyb3IgaXMgd29ya2luZyBwcm9w
ZXJseSBmb3IgdGhpcyB0ZXN0LjxhIGhyZWY9Imh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD04NTE5Ij5CdWcgODUxOTwvYT4uPC9wPgorPGhyPgorPGRpdiBpZD0nY29uc29s
ZSc+PC9kaXY+Cis8L2JvZHk+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy93
aW5kb3ctb25lcnJvcjYtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvd2lu
ZG93LW9uZXJyb3I2LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwLi5lN2MyN2JiCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMv
d2luZG93LW9uZXJyb3I2LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDQgQEAKK1Rlc3QgdGhhdCBz
eW50YXggZXJyb3Igd2lsbCBiZSByZXBvcnRlZCB0byB0aGUgd2luZG93Lm9uZXJyb3IgaGFuZGxl
ci4gQnVnIDg1MTkuCisKK01haW4gZnJhbWUgd2luZG93Lm9uZXJyb3I6IFN5bnRheEVycm9yOiBQ
YXJzZSBlcnJvciBhdCB3aW5kb3ctb25lcnJvcjYuaHRtbDoyMgorCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9mYXN0L2V2ZW50cy93aW5kb3ctb25lcnJvcjYuaHRtbCBiL0xheW91dFRlc3RzL2Zh
c3QvZXZlbnRzL3dpbmRvdy1vbmVycm9yNi5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4
IDAwMDAwMDAuLjE5Nzg0MzYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2V2
ZW50cy93aW5kb3ctb25lcnJvcjYuaHRtbApAQCAtMCwwICsxLDI2IEBACis8aHRtbD4KKzxib2R5
PgorPHA+VGVzdCB0aGF0IHN5bnRheCBlcnJvciB3aWxsIGJlIHJlcG9ydGVkIHRvIHRoZSB3aW5k
b3cub25lcnJvciBoYW5kbGVyLiA8YSBocmVmPSJodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9ODUxOSI+QnVnIDg1MTk8L2E+LjwvcD4KKzxkaXYgaWQ9ImNvbnNvbGUiPjwv
ZGl2PgorPHNjcmlwdD4KK2lmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCisgICAgbGF5
b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOworCitmdW5jdGlvbiBsb2cobXNnKSB7Cisg
ICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNvbnNvbGUiKS5pbm5lckhUTUwgKz0gbXNnICsg
Ijxicj4iOworfQorCit3aW5kb3cub25lcnJvciA9IGZ1bmN0aW9uKG1zZywgdXJsLCBsaW5lKQor
eworICAgIHVybCA9IHVybCA/IHVybC5tYXRjaCggL1teXC9dK1wvPyQvIClbMF0gOiB1cmw7Cisg
ICAgbG9nKCJNYWluIGZyYW1lIHdpbmRvdy5vbmVycm9yOiAiICsgbXNnICsgIiBhdCAiICsgdXJs
ICsgIjoiICsgbGluZSk7CisgICAgcmV0dXJuIGZhbHNlOworfQorPC9zY3JpcHQ+Cis8c2NyaXB0
PgorCithKSAvLyBzeW50YXggZXJyb3IKKworPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy93aW5kb3ctb25lcnJvcjctZXhwZWN0
ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvd2luZG93LW9uZXJyb3I3LWV4cGVjdGVk
LnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41ZDIyZTdlCi0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvd2luZG93LW9uZXJyb3I3LWV4cGVj
dGVkLnR4dApAQCAtMCwwICsxLDYgQEAKK0NPTlNPTEUgTUVTU0FHRTogbGluZSAyMDogRXJyb3I6
IE9yaWdpbmFsIGVycm9yCitDT05TT0xFIE1FU1NBR0U6IGxpbmUgMTc6IEVycm9yOiBOZXN0ZWQg
ZXJyb3IKK1Rlc3QgdGhhdCBleGNlcHRpb24gaW4gd2luZG93Lm9uZXJyb3Igd29uJ3QgbGVhZCB0
byByZWN1cnNpdmUgd2luZG93Lm9uZXJyb3IgY2FsbC4gQnVnIDg1MTkuCisKK01haW4gZnJhbWUg
d2luZG93Lm9uZXJyb3I6IEVycm9yOiBPcmlnaW5hbCBlcnJvciBhdCB3aW5kb3ctb25lcnJvcjcu
aHRtbDoyMAorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy93aW5kb3ctb25l
cnJvcjcuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3dpbmRvdy1vbmVycm9yNy5odG1s
Cm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmY2NjU2ODYKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy93aW5kb3ctb25lcnJvcjcuaHRtbApAQCAt
MCwwICsxLDI0IEBACis8aHRtbD4KKzxib2R5PgorPHA+VGVzdCB0aGF0IGV4Y2VwdGlvbiBpbiB3
aW5kb3cub25lcnJvciB3b24ndCBsZWFkIHRvIHJlY3Vyc2l2ZSB3aW5kb3cub25lcnJvciBjYWxs
LiA8YSBocmVmPSJodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODUxOSI+
QnVnIDg1MTk8L2E+LjwvcD4KKzxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgorPHNjcmlwdD4KK2lm
ICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCisgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIu
ZHVtcEFzVGV4dCgpOworCitmdW5jdGlvbiBsb2cobXNnKSB7CisgICAgZG9jdW1lbnQuZ2V0RWxl
bWVudEJ5SWQoImNvbnNvbGUiKS5pbm5lckhUTUwgKz0gbXNnICsgIjxicj4iOworfQorCit3aW5k
b3cub25lcnJvciA9IGZ1bmN0aW9uKG1zZywgdXJsLCBsaW5lKQoreworICAgIHVybCA9IHVybCA/
IHVybC5tYXRjaCggL1teXC9dK1wvPyQvIClbMF0gOiB1cmw7CisgICAgbG9nKCJNYWluIGZyYW1l
IHdpbmRvdy5vbmVycm9yOiAiICsgbXNnICsgIiBhdCAiICsgdXJsICsgIjoiICsgbGluZSk7Cisg
ICAgdGhyb3cgbmV3IEVycm9yKCJOZXN0ZWQgZXJyb3IiKTsKK30KKwordGhyb3cgbmV3IEVycm9y
KCJPcmlnaW5hbCBlcnJvciIpOworCis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3dpbmRvdy1vbmVycm9yOC1leHBlY3RlZC50
eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy93aW5kb3ctb25lcnJvcjgtZXhwZWN0ZWQudHh0
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmVmYzYzMDgKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy93aW5kb3ctb25lcnJvcjgtZXhwZWN0ZWQu
dHh0CkBAIC0wLDAgKzEsNSBAQAorVGVzdCB0aGF0IHdpbmRvdy5vbmVycm9yIGlzIGNhbGxlZCBv
biB3aW5kb3cgb2JqZWN0LiBCdWcgODUxOS4KKworTWFpbiBmcmFtZSB3aW5kb3cub25lcnJvcjog
MjAxMCBhdCB1bmRlZmluZWQ6MAorUEFTU0VEOiB0aGlzID09PSB3aW5kb3cKKwpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvd2luZG93LW9uZXJyb3I4Lmh0bWwgYi9MYXlvdXRU
ZXN0cy9mYXN0L2V2ZW50cy93aW5kb3ctb25lcnJvcjguaHRtbApuZXcgZmlsZSBtb2RlIDEwMDc1
NQppbmRleCAwMDAwMDAwLi5iYWRlNTM4Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMv
ZmFzdC9ldmVudHMvd2luZG93LW9uZXJyb3I4Lmh0bWwKQEAgLTAsMCArMSwyOCBAQAorPGh0bWw+
Cis8Ym9keT4KKzxwPlRlc3QgdGhhdCB3aW5kb3cub25lcnJvciBpcyBjYWxsZWQgb24gd2luZG93
IG9iamVjdC4gPGEgaHJlZj0iaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTg1MTkiPkJ1ZyA4NTE5PC9hPi48L3A+Cis8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KKzxzY3Jp
cHQ+CitpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQorICAgIGxheW91dFRlc3RDb250
cm9sbGVyLmR1bXBBc1RleHQoKTsKKworZnVuY3Rpb24gbG9nKG1zZykgeworICAgIGRvY3VtZW50
LmdldEVsZW1lbnRCeUlkKCJjb25zb2xlIikuaW5uZXJIVE1MICs9IG1zZyArICI8YnI+IjsKK30K
Kword2luZG93Lm9uZXJyb3IgPSBmdW5jdGlvbihtc2csIHVybCwgbGluZSkKK3sKKyAgICB1cmwg
PSB1cmwgPyB1cmwubWF0Y2goIC9bXlwvXStcLz8kLyApWzBdIDogdXJsOworICAgIGxvZygiTWFp
biBmcmFtZSB3aW5kb3cub25lcnJvcjogIiArIG1zZyArICIgYXQgIiArIHVybCArICI6IiArIGxp
bmUpOworICAgIGlmICh0aGlzID09PSB3aW5kb3cpIAorICAgICAgICBsb2coIlBBU1NFRDogdGhp
cyA9PT0gd2luZG93Iik7CisgICAgZWxzZQorICAgICAgICBsb2coIkZBSUxFRDogdGhpcyA9PT0g
d2luZG93Iik7CisgICAgcmV0dXJuIGZhbHNlOworfQorCit0aHJvdyAyMDEwOworCis8L3Njcmlw
dD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRz
L3dpbmRvdy1vbmVycm9yOS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy93
aW5kb3ctb25lcnJvcjktZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAuLjk0MzE2ZDMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50
cy93aW5kb3ctb25lcnJvcjktZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsOCBAQAorVGVzdCB0aGF0
IHdoZW4gd2luZG93Lm9uZXJyb3IgaGFuZGxlciBpcyBjYWxsZWQsIHdpbmRvdy5ldmVudCBpcyB0
aGUgY29ycmVzcG9uZGluZyBFcnJvckV2ZW50IG9iamVjdC4gQnVnIDg1MTkuCisKK01haW4gZnJh
bWUgd2luZG93Lm9uZXJyb3I6IEVycm9yOiAyMDEwIGF0IHdpbmRvdy1vbmVycm9yOS5odG1sOjMx
Cit3aW5kb3cuZXZlbnQudHlwZSA9IGVycm9yCit3aW5kb3cuZXZlbnQubWVzc2FnZSA9IEVycm9y
OiAyMDEwCit3aW5kb3cuZXZlbnQuZmlsZW5hbWUgPSB3aW5kb3ctb25lcnJvcjkuaHRtbAord2lu
ZG93LmV2ZW50LmxpbmVubyA9IDMxCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZXZl
bnRzL3dpbmRvdy1vbmVycm9yOS5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvd2luZG93
LW9uZXJyb3I5Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uMTA4NmFj
ZQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3dpbmRvdy1vbmVy
cm9yOS5odG1sCkBAIC0wLDAgKzEsMzUgQEAKKzxodG1sPgorPGJvZHk+Cis8cD5UZXN0IHRoYXQg
d2hlbiB3aW5kb3cub25lcnJvciBoYW5kbGVyIGlzIGNhbGxlZCwgd2luZG93LmV2ZW50IGlzIHRo
ZSBjb3JyZXNwb25kaW5nIEVycm9yRXZlbnQgb2JqZWN0LiA8YSBocmVmPSJodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODUxOSI+QnVnIDg1MTk8L2E+LjwvcD4KKzxkaXYg
aWQ9ImNvbnNvbGUiPjwvZGl2PgorPHNjcmlwdD4KK2lmICh3aW5kb3cubGF5b3V0VGVzdENvbnRy
b2xsZXIpIHsKKyAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7CisgICAgbGF5
b3V0VGVzdENvbnRyb2xsZXIud2FpdFVudGlsRG9uZSgpOworfQorCitmdW5jdGlvbiBsb2cobXNn
KSB7CisgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNvbnNvbGUiKS5pbm5lckhUTUwgKz0g
bXNnICsgIjxicj4iOworfQorCitmdW5jdGlvbiBsYXN0UGF0aENvbXBvbmVudCh1cmwpIHsKKyAg
ICByZXR1cm4gdXJsID8gdXJsLm1hdGNoKCAvW15cL10rXC8/JC8gKVswXSA6IHVybDsKK30KKwor
d2luZG93Lm9uZXJyb3IgPSBmdW5jdGlvbihtc2csIHVybCwgbGluZSkKK3sKKyAgICBsb2coIk1h
aW4gZnJhbWUgd2luZG93Lm9uZXJyb3I6ICIgKyBtc2cgKyAiIGF0ICIgKyBsYXN0UGF0aENvbXBv
bmVudCh1cmwpICsgIjoiICsgbGluZSk7CisgICAgbG9nKCJ3aW5kb3cuZXZlbnQudHlwZSA9ICIg
KyB3aW5kb3cuZXZlbnQudHlwZSk7CisgICAgbG9nKCJ3aW5kb3cuZXZlbnQubWVzc2FnZSA9ICIg
KyB3aW5kb3cuZXZlbnQubWVzc2FnZSk7CisgICAgbG9nKCJ3aW5kb3cuZXZlbnQuZmlsZW5hbWUg
PSAiICsgbGFzdFBhdGhDb21wb25lbnQod2luZG93LmV2ZW50LmZpbGVuYW1lKSk7CisgICAgbG9n
KCJ3aW5kb3cuZXZlbnQubGluZW5vID0gIiArIHdpbmRvdy5ldmVudC5saW5lbm8pOworICAgIGlm
ICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCisgICAgICAgIGxheW91dFRlc3RDb250cm9s
bGVyLm5vdGlmeURvbmUoKTsKKyAgICByZXR1cm4gZmFsc2U7Cit9CisKK3Rocm93IG5ldyBFcnJv
cigyMDEwKTsKKworPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9mYXN0L3dvcmtlcnMvd29ya2VyLXNjcmlwdC1lcnJvci1leHBlY3RlZC50eHQgYi9M
YXlvdXRUZXN0cy9mYXN0L3dvcmtlcnMvd29ya2VyLXNjcmlwdC1lcnJvci1leHBlY3RlZC50eHQK
aW5kZXggMTBhYjA0OS4uNDA0MTY0MCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC93b3Jr
ZXJzL3dvcmtlci1zY3JpcHQtZXJyb3ItZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2Zh
c3Qvd29ya2Vycy93b3JrZXItc2NyaXB0LWVycm9yLWV4cGVjdGVkLnR4dApAQCAtNCw4ICs0LDgg
QEAgVGVzdCBXb3JrZXIgc2NyaXB0IGVycm9yIGhhbmRsaW5nIGZ1bmN0aW9uYWxpdHkuIFNob3Vs
ZCBwcmludCBhIHNlcmllcyBvZiBQQVNTIG0KIFBBU1M6IG9uZXJyb3IgaW52b2tlZCBmb3IgYSBz
Y3JpcHQgdGhhdCBoYXMgaW52YWxpZCBzeW50YXguCiBQQVNTOiBvbmVycm9yIGludm9rZWQgZm9y
IGEgc2NyaXB0IHRoYXQgaGFzIHNjcmlwdCBlcnJvciAnUmVmZXJlbmNlRXJyb3I6IENhbid0IGZp
bmQgdmFyaWFibGU6IGZvbycgYXQgbGluZSAxLgogUEFTUzogZXZlbnQgbGlzdGVuZXIgaW52b2tl
ZCBmb3IgYSBzY3JpcHQgdGhhdCBoYXMgc2NyaXB0IGVycm9yICdSZWZlcmVuY2VFcnJvcjogQ2Fu
J3QgZmluZCB2YXJpYWJsZTogZm9vJyBhdCBsaW5lIDEuCi1QQVNTOiBvbmVycm9yIGludm9rZWQg
Zm9yIGEgc2NyaXB0IHRoYXQgaGFzIHNjcmlwdCBlcnJvciAnUmVmZXJlbmNlRXJyb3I6IENhbid0
IGZpbmQgdmFyaWFibGU6IGJhcicgYXQgbGluZSAzLgogUEFTUzogb25lcnJvciBpbnZva2VkIGZv
ciBhIHNjcmlwdCB0aGF0IGhhcyBzY3JpcHQgZXJyb3IgJ1JlZmVyZW5jZUVycm9yOiBDYW4ndCBm
aW5kIHZhcmlhYmxlOiBmb28nIGF0IGxpbmUgNy4KK1BBU1M6IG9uZXJyb3IgaW52b2tlZCBmb3Ig
YSBzY3JpcHQgdGhhdCBoYXMgc2NyaXB0IGVycm9yICdSZWZlcmVuY2VFcnJvcjogQ2FuJ3QgZmlu
ZCB2YXJpYWJsZTogYmFyJyBhdCBsaW5lIDMuCiBQQVNTOiBvbmVycm9yIGludm9rZWQgZm9yIGEg
c2NyaXB0IHRoYXQgaGFzIHNjcmlwdCBlcnJvciAnUmVmZXJlbmNlRXJyb3I6IENhbid0IGZpbmQg
dmFyaWFibGU6IGZvbycgYXQgbGluZSA3LgogUEFTUzogb25lcnJvciBpbnZva2VkIGZvciBhIHNj
cmlwdCB0aGF0IGhhcyBzY3JpcHQgZXJyb3IgJ1JlZmVyZW5jZUVycm9yOiBDYW4ndCBmaW5kIHZh
cmlhYmxlOiBmb28nIGF0IGxpbmUgNy4KIFBBU1M6IG1lc3NhZ2UgcmVjZWl2ZWQgZnJvbSBXb3Jr
ZXJHbG9iYWxTY29wZS5vbmVycm9yOiBvbmVycm9yIGludm9rZWQgZm9yIGEgc2NyaXB0IHRoYXQg
aGFzIHNjcmlwdCBlcnJvciAnUmVmZXJlbmNlRXJyb3I6IENhbid0IGZpbmQgdmFyaWFibGU6IGZv
bycgYXQgbGluZSA3LgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0
eS9yZXNvdXJjZXMvb25lcnJvci1pZnJhbWUuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMv
c2VjdXJpdHkvcmVzb3VyY2VzL29uZXJyb3ItaWZyYW1lLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMC4uMzEyZmQxMgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3Rz
L2h0dHAvdGVzdHMvc2VjdXJpdHkvcmVzb3VyY2VzL29uZXJyb3ItaWZyYW1lLmh0bWwKQEAgLTAs
MCArMSwxMSBAQAorPHNjcmlwdD4KK2Z1bmN0aW9uIGhhbmRsZUxvYWQoKQoreworICAgIHdpbmRv
dy5wYXJlbnQucG9zdE1lc3NhZ2UoIklGcmFtZUxvYWRlZCIsICIqIik7Cit9CisKK3Rocm93ICJJ
ZnJhbWVFeGNlcHRpb24iOworCis8L3NjcmlwdD4KKzxib2R5IG9ubG9hZD0iaGFuZGxlTG9hZCgp
Ij4KKzwvYm9keT4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkv
d2luZG93LW9uZXJyb3ItZXhjZXB0aW9uLWluLWlmcmFtZS1leHBlY3RlZC50eHQgYi9MYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L3dpbmRvdy1vbmVycm9yLWV4Y2VwdGlvbi1pbi1pZnJh
bWUtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjhiMTdk
OTIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L3dp
bmRvdy1vbmVycm9yLWV4Y2VwdGlvbi1pbi1pZnJhbWUtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEs
NiBAQAorQ09OU09MRSBNRVNTQUdFOiBsaW5lIDA6IElmcmFtZUV4Y2VwdGlvbgorVGVzdCB0aGF0
IGV4Y2VwdGlvbnMgaW4gaWZyYW1lIGFyZSBub3QgcmVwb3J0ZWQgdG8gdGhlIG1haW4gZnJhbWUg
d2luZG93Lm9uZXJyb3IgaGFuZGxlci4gd2luZG93Lm9uZXJyb3Igc2hvdWxkIHByaW50IGV4YWN0
bHkgb25lIGxpbmUuCisKK01haW4gZnJhbWUgd2luZG93Lm9uZXJyb3I6IE1haW5GcmFtZUV4Y2Vw
dGlvbiBhdCB1bmRlZmluZWQ6MAorRE9ORQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL3NlY3VyaXR5L3dpbmRvdy1vbmVycm9yLWV4Y2VwdGlvbi1pbi1pZnJhbWUuaHRtbCBi
L0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvd2luZG93LW9uZXJyb3ItZXhjZXB0aW9u
LWluLWlmcmFtZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjA5MDRl
MzkKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L3dp
bmRvdy1vbmVycm9yLWV4Y2VwdGlvbi1pbi1pZnJhbWUuaHRtbApAQCAtMCwwICsxLDM5IEBACis8
aHRtbD4KKzxib2R5PgorPHA+VGVzdCB0aGF0IGV4Y2VwdGlvbnMgaW4gaWZyYW1lIGFyZSBub3Qg
cmVwb3J0ZWQgdG8gdGhlIG1haW4gZnJhbWUgd2luZG93Lm9uZXJyb3IgaGFuZGxlci4KK3dpbmRv
dy5vbmVycm9yIHNob3VsZCBwcmludCBleGFjdGx5IG9uZSBsaW5lLjwvcD4KKzxkaXYgaWQ9InJl
c3VsdCI+PC9kaXY+Cis8c2NyaXB0PgoraWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikg
eworICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKKyAgICBsYXlvdXRUZXN0
Q29udHJvbGxlci53YWl0VW50aWxEb25lKCk7Cit9CisKK2Z1bmN0aW9uIGxvZyhtc2cpIHsKKyAg
ICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicmVzdWx0IikuaW5uZXJIVE1MICs9IG1zZyArICI8
YnI+IjsKK30KKword2luZG93Lm9uZXJyb3IgPSBmdW5jdGlvbihtc2csIHVybCwgbGluZSkKK3sK
KyAgICB1cmwgPSB1cmwgPyB1cmwubWF0Y2goIC9bXlwvXStcLz8kLyApWzBdIDogdXJsOworICAg
IGxvZygiTWFpbiBmcmFtZSB3aW5kb3cub25lcnJvcjogIiArIG1zZyArICIgYXQgIiArIHVybCAr
ICI6IiArIGxpbmUpOworICAgIHJldHVybiBmYWxzZTsKK30KKworZnVuY3Rpb24gcmVjZWl2ZU1l
c3NhZ2UoZXZlbnQpIHsKKyAgICBpZiAoZXZlbnQuZGF0YSA9PT0gIklGcmFtZUxvYWRlZCIpIHsK
KyAgICAgICAgbG9nKCJET05FIik7CisgICAgICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRy
b2xsZXIpCisgICAgICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5ub3RpZnlEb25lKCk7Cisg
ICAgfSBlbHNlCisgICAgICAgIGxvZygiRkFJTCAiICsgZXZlbnQuZGF0YSk7Cit9CisKK3dpbmRv
dy5hZGRFdmVudExpc3RlbmVyKCJtZXNzYWdlIiwgcmVjZWl2ZU1lc3NhZ2UsIGZhbHNlKTsKKwor
dGhyb3cgIk1haW5GcmFtZUV4Y2VwdGlvbiI7CisKKzwvc2NyaXB0PgorPGlmcmFtZSBzcmM9Imh0
dHA6Ly9sb2NhbGhvc3Q6ODAwMC9zZWN1cml0eS9yZXNvdXJjZXMvb25lcnJvci1pZnJhbWUuaHRt
bCIvPgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0v
Y2hyb21pdW0td2luL2Zhc3Qvd29ya2Vycy93b3JrZXItc2NyaXB0LWVycm9yLWV4cGVjdGVkLnR4
dCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtLXdpbi9mYXN0L3dvcmtlcnMvd29ya2Vy
LXNjcmlwdC1lcnJvci1leHBlY3RlZC50eHQKb2xkIG1vZGUgMTAwNjQ0Cm5ldyBtb2RlIDEwMDc1
NQppbmRleCBmZGY2NjBiLi5lZjBhMzkxCi0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9t
aXVtLXdpbi9mYXN0L3dvcmtlcnMvd29ya2VyLXNjcmlwdC1lcnJvci1leHBlY3RlZC50eHQKKysr
IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0td2luL2Zhc3Qvd29ya2Vycy93b3JrZXIt
c2NyaXB0LWVycm9yLWV4cGVjdGVkLnR4dApAQCAtMyw4ICszLDggQEAgVGVzdCBXb3JrZXIgc2Ny
aXB0IGVycm9yIGhhbmRsaW5nIGZ1bmN0aW9uYWxpdHkuIFNob3VsZCBwcmludCBhIHNlcmllcyBv
ZiBQQVNTIG0KIFBBU1M6IG9uZXJyb3IgaW52b2tlZCBmb3IgYSBzY3JpcHQgdGhhdCBoYXMgaW52
YWxpZCBzeW50YXguCiBQQVNTOiBvbmVycm9yIGludm9rZWQgZm9yIGEgc2NyaXB0IHRoYXQgaGFz
IHNjcmlwdCBlcnJvciAnVW5jYXVnaHQgUmVmZXJlbmNlRXJyb3I6IGZvbyBpcyBub3QgZGVmaW5l
ZCcgYXQgbGluZSAxLgogUEFTUzogZXZlbnQgbGlzdGVuZXIgaW52b2tlZCBmb3IgYSBzY3JpcHQg
dGhhdCBoYXMgc2NyaXB0IGVycm9yICdVbmNhdWdodCBSZWZlcmVuY2VFcnJvcjogZm9vIGlzIG5v
dCBkZWZpbmVkJyBhdCBsaW5lIDEuCi1QQVNTOiBvbmVycm9yIGludm9rZWQgZm9yIGEgc2NyaXB0
IHRoYXQgaGFzIHNjcmlwdCBlcnJvciAnVW5jYXVnaHQgUmVmZXJlbmNlRXJyb3I6IGJhciBpcyBu
b3QgZGVmaW5lZCcgYXQgbGluZSAzLgogUEFTUzogb25lcnJvciBpbnZva2VkIGZvciBhIHNjcmlw
dCB0aGF0IGhhcyBzY3JpcHQgZXJyb3IgJ1VuY2F1Z2h0IFJlZmVyZW5jZUVycm9yOiBmb28gaXMg
bm90IGRlZmluZWQnIGF0IGxpbmUgNy4KK1BBU1M6IG9uZXJyb3IgaW52b2tlZCBmb3IgYSBzY3Jp
cHQgdGhhdCBoYXMgc2NyaXB0IGVycm9yICdVbmNhdWdodCBSZWZlcmVuY2VFcnJvcjogYmFyIGlz
IG5vdCBkZWZpbmVkJyBhdCBsaW5lIDMuCiBQQVNTOiBvbmVycm9yIGludm9rZWQgZm9yIGEgc2Ny
aXB0IHRoYXQgaGFzIHNjcmlwdCBlcnJvciAnVW5jYXVnaHQgUmVmZXJlbmNlRXJyb3I6IGZvbyBp
cyBub3QgZGVmaW5lZCcgYXQgbGluZSA3LgogUEFTUzogb25lcnJvciBpbnZva2VkIGZvciBhIHNj
cmlwdCB0aGF0IGhhcyBzY3JpcHQgZXJyb3IgJ1VuY2F1Z2h0IFJlZmVyZW5jZUVycm9yOiBmb28g
aXMgbm90IGRlZmluZWQnIGF0IGxpbmUgNy4KIFBBU1M6IG1lc3NhZ2UgcmVjZWl2ZWQgZnJvbSBX
b3JrZXJHbG9iYWxTY29wZS5vbmVycm9yOiBvbmVycm9yIGludm9rZWQgZm9yIGEgc2NyaXB0IHRo
YXQgaGFzIHNjcmlwdCBlcnJvciAnVW5jYXVnaHQgUmVmZXJlbmNlRXJyb3I6IGZvbyBpcyBub3Qg
ZGVmaW5lZCcgYXQgbGluZSA3LgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hy
b21pdW0vZmFzdC9ldmVudHMvd2luZG93LW9uZXJyb3IxLWV4cGVjdGVkLnR4dCBiL0xheW91dFRl
c3RzL3BsYXRmb3JtL2Nocm9taXVtL2Zhc3QvZXZlbnRzL3dpbmRvdy1vbmVycm9yMS1leHBlY3Rl
ZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uMGM2MGNkMwotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL2Zhc3QvZXZlbnRzL3dp
bmRvdy1vbmVycm9yMS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwzIEBACitUaGlzIHBhZ2UgdGVz
dHMgc2V0dGluZyBvbmVycm9yIGhhbmRsZXJzIHRocm91Z2ggdGhlIERPTS4gSWYgaXQgcGFzc2Vz
LCB5b3Ugd2lsbCBzZWUgIlBBU1MiIG1lc3NhZ2VzIGJlbG93LkJ1ZyA4NTE5Lg0NCisNDQorUEFT
UzogY2F1Z2h0IGdsb2JhbCBlcnJvcjogVW5jYXVnaHQgUmVmZXJlbmNlRXJyb3I6IGhhaGFoYV9n
b29kX2x1Y2tfZmluZGluZ19tZSBpcyBub3QgZGVmaW5lZCBhdCB3aW5kb3ctb25lcnJvcjEuaHRt
bDoyNQ0NCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS9mYXN0L2V2
ZW50cy93aW5kb3ctb25lcnJvcjEwLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3BsYXRmb3Jt
L2Nocm9taXVtL2Zhc3QvZXZlbnRzL3dpbmRvdy1vbmVycm9yMTAtZXhwZWN0ZWQudHh0Cm5ldyBm
aWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjlhZDQzZDQKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS9mYXN0L2V2ZW50cy93aW5kb3ctb25lcnJv
cjEwLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDExIEBACitUZXN0IHRoYXQgImVycm9yIiBldmVu
dCBsaXN0ZW5lciBhZGRlZCB3aXRoIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyIGlzIGludm9rZWQg
Zm9yIHVuY2F1Y2h0IGV4Y2VwdGlvbnMuIEJ1ZyA4NTE5Lg0NCisNDQorZXZlbnQgcGFzc2VkIHRv
IHRoZSBsaXN0ZW5lciBpcyB0aGUgc2FtZSBhcyB3aW5kb3cuZXZlbnQ6IHRydWUNDQorRXZlbnQg
ZGV0YWlsczoNDQordHlwZTogZXJyb3INDQorcGhhc2U6IDINDQorY3VycmVudFRhcmdldCBpcyB0
aGUgZ2xvYmFsIG9iamVjdDogdHJ1ZQ0NCittZXNzYWdlOiBVbmNhdWdodCBFcnJvcjogTXkgZmF1
bHQuDQ0KK2ZpbGVuYW1lOiB3aW5kb3ctb25lcnJvcjEwLmh0bWwNDQorbGluZW5vOiAyOQ0NCisN
DQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vZmFzdC9ldmVudHMv
d2luZG93LW9uZXJyb3IxMS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJv
bWl1bS9mYXN0L2V2ZW50cy93aW5kb3ctb25lcnJvcjExLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBt
b2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi40MzAwNDRiCi0tLSAvZGV2L251bGwKKysrIGIvTGF5
b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vZmFzdC9ldmVudHMvd2luZG93LW9uZXJyb3IxMS1l
eHBlY3RlZC50eHQKQEAgLTAsMCArMSw0IEBACitUZXN0IHRoYXQgd2luZG93Lm9uZXJyb3IgaXMg
Y2FsbGVkIG9uIHdpbmRvdyBvYmplY3QuIEJ1ZyA4NTE5Lg0NCisNDQorTWFpbiBmcmFtZSB3aW5k
b3cub25lcnJvcjogVW5jYXVnaHQgRXJyb3I6IEFuIGV4Y2VwdGlvbiBhdCB3aW5kb3ctb25lcnJv
ci5qczoyDQ0KKw0NCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS9m
YXN0L2V2ZW50cy93aW5kb3ctb25lcnJvcjItZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvcGxh
dGZvcm0vY2hyb21pdW0vZmFzdC9ldmVudHMvd2luZG93LW9uZXJyb3IyLWV4cGVjdGVkLnR4dApu
ZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi44YjZjMTUzCi0tLSAvZGV2L251bGwK
KysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vZmFzdC9ldmVudHMvd2luZG93LW9u
ZXJyb3IyLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDYgQEAKK1Rlc3QgdGhhdCB1bmNhdWdodCBl
eGNlcHRpb25zIHdpbGwgYmUgcmVwb3J0ZWQgdG8gdGhlIHdpbmRvdy5vbmVycm9yIGhhbmRsZXIu
IEJ1ZyA4NTE5Lg0NCisNDQorTWFpbiBmcmFtZSB3aW5kb3cub25lcnJvcjogVW5jYXVnaHQgRXJy
b3I6IElubGluZSBzY3JpcHQgZXhjZXB0aW9uIGF0IHdpbmRvdy1vbmVycm9yMi5odG1sOjM1DQ0K
K01haW4gZnJhbWUgd2luZG93Lm9uZXJyb3I6IFVuY2F1Z2h0IEV4Y2VwdGlvbiBpbiBvbmxvYWQg
YXQgd2luZG93LW9uZXJyb3IyLmh0bWw6Mg0NCitNYWluIGZyYW1lIHdpbmRvdy5vbmVycm9yOiBV
bmNhdWdodCBFcnJvcjogRXhjZXB0aW9uIGluIHNldFRpbWVvdXQgYXQgd2luZG93LW9uZXJyb3Iy
Lmh0bWw6MjkNDQorDQ0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVt
L2Zhc3QvZXZlbnRzL3dpbmRvdy1vbmVycm9yMy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9w
bGF0Zm9ybS9jaHJvbWl1bS9mYXN0L2V2ZW50cy93aW5kb3ctb25lcnJvcjMtZXhwZWN0ZWQudHh0
Cm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmNkNWU3NDkKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS9mYXN0L2V2ZW50cy93aW5kb3ct
b25lcnJvcjMtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNCBAQAorWW91IHNob3VsZCBzZWUgYSBt
ZXNzYWdlIGlmIHdpbmRvdy5vbmVycm9yIGlzIHdvcmtpbmcgcHJvcGVybHkgZm9yIHRoaXMgdGVz
dC5CdWcgODUxOS4NDQorDQ0KK0Vycm9yIGNhdWdodCBzdWNjZXNzZnVsbHk6IFVuY2F1Z2h0IFJl
ZmVyZW5jZUVycm9yOiB1bmtub3duT2JqZWN0IGlzIG5vdCBkZWZpbmVkIEZpbGU6IHdpbmRvdy1v
bmVycm9yMy5odG1sIExpbmU6IDE2DQ0KKw0NCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0
Zm9ybS9jaHJvbWl1bS9mYXN0L2V2ZW50cy93aW5kb3ctb25lcnJvcjQtZXhwZWN0ZWQudHh0IGIv
TGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vZmFzdC9ldmVudHMvd2luZG93LW9uZXJyb3I0
LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi41N2YzNzFl
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vZmFzdC9l
dmVudHMvd2luZG93LW9uZXJyb3I0LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDQgQEAKK1lvdSBz
aG91bGQgc2VlIGEgbG9nIHJlY29yZCBpZiB3aW5kb3cub25lcnJvciBpcyB3b3JraW5nIHByb3Bl
cmx5IGZvciB0aGlzIHRlc3QuQnVnIDg1MTkuDQ0KKw0NCitFcnJvciBjYXVnaHQgc3VjY2Vzc2Z1
bGx5OiBVbmNhdWdodCBSZWZlcmVuY2VFcnJvcjogSW52YWxpZCBsZWZ0LWhhbmQgc2lkZSBpbiBh
c3NpZ25tZW50IEZpbGU6IHdpbmRvdy1vbmVycm9yNC5odG1sIExpbmU6IDENDQorDQ0KZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL2Zhc3QvZXZlbnRzL3dpbmRvdy1v
bmVycm9yNS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS9mYXN0
L2V2ZW50cy93aW5kb3ctb25lcnJvcjUtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNzU1
CmluZGV4IDAwMDAwMDAuLmJlNGI0OWEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9w
bGF0Zm9ybS9jaHJvbWl1bS9mYXN0L2V2ZW50cy93aW5kb3ctb25lcnJvcjUtZXhwZWN0ZWQudHh0
CkBAIC0wLDAgKzEsNCBAQAorVGVzdCB0aGF0IHdpbmRvdy5vbmVycm9yIGlzIGludm9rZWQgZm9y
IHN5bnRheCBlcnJvciBpbiBldmFsLiBZb3Ugc2hvdWxkIHNlZSBhIGxvZyByZWNvcmQgaWYgd2lu
ZG93Lm9uZXJyb3IgaXMgd29ya2luZyBwcm9wZXJseSBmb3IgdGhpcyB0ZXN0LkJ1ZyA4NTE5Lg0N
CisNDQorRXJyb3IgY2F1Z2h0IHN1Y2Nlc3NmdWxseTogVW5jYXVnaHQgU3ludGF4RXJyb3I6IFVu
ZXhwZWN0ZWQgZW5kIG9mIGlucHV0IEZpbGU6IHdpbmRvdy1vbmVycm9yNS5odG1sIExpbmU6IDEN
DQorDQ0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL2Zhc3QvZXZl
bnRzL3dpbmRvdy1vbmVycm9yNi1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9j
aHJvbWl1bS9mYXN0L2V2ZW50cy93aW5kb3ctb25lcnJvcjYtZXhwZWN0ZWQudHh0Cm5ldyBmaWxl
IG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjJjODAxMDMKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS9mYXN0L2V2ZW50cy93aW5kb3ctb25lcnJvcjYt
ZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNCBAQAorVGVzdCB0aGF0IHN5bnRheCBlcnJvciB3aWxs
IGJlIHJlcG9ydGVkIHRvIHRoZSB3aW5kb3cub25lcnJvciBoYW5kbGVyLiBCdWcgODUxOS4NDQor
DQ0KK01haW4gZnJhbWUgd2luZG93Lm9uZXJyb3I6IFVuY2F1Z2h0IFN5bnRheEVycm9yOiBVbmV4
cGVjdGVkIHRva2VuICkgYXQgd2luZG93LW9uZXJyb3I2Lmh0bWw6MjINDQorDQ0KZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL2Zhc3QvZXZlbnRzL3dpbmRvdy1vbmVy
cm9yNy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS9mYXN0L2V2
ZW50cy93aW5kb3ctb25lcnJvcjctZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNzU1Cmlu
ZGV4IDAwMDAwMDAuLjgwNGM3NmQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9wbGF0
Zm9ybS9jaHJvbWl1bS9mYXN0L2V2ZW50cy93aW5kb3ctb25lcnJvcjctZXhwZWN0ZWQudHh0CkBA
IC0wLDAgKzEsNiBAQAorQ09OU09MRSBNRVNTQUdFOiBsaW5lIDIwOiBVbmNhdWdodCBFcnJvcjog
T3JpZ2luYWwgZXJyb3INDQorQ09OU09MRSBNRVNTQUdFOiBsaW5lIDE3OiBVbmNhdWdodCBFcnJv
cjogTmVzdGVkIGVycm9yDQ0KK1Rlc3QgdGhhdCBleGNlcHRpb24gaW4gd2luZG93Lm9uZXJyb3Ig
d29uJ3QgbGVhZCB0byByZWN1cnNpdmUgd2luZG93Lm9uZXJyb3IgY2FsbC4gQnVnIDg1MTkuDQ0K
Kw0NCitNYWluIGZyYW1lIHdpbmRvdy5vbmVycm9yOiBVbmNhdWdodCBFcnJvcjogT3JpZ2luYWwg
ZXJyb3IgYXQgd2luZG93LW9uZXJyb3I3Lmh0bWw6MjANDQorDQ0KZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL2Zhc3QvZXZlbnRzL3dpbmRvdy1vbmVycm9yOC1leHBl
Y3RlZC50eHQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS9mYXN0L2V2ZW50cy93aW5k
b3ctb25lcnJvcjgtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAw
MDAuLmM5YTFkMmEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJv
bWl1bS9mYXN0L2V2ZW50cy93aW5kb3ctb25lcnJvcjgtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEs
NSBAQAorVGVzdCB0aGF0IHdpbmRvdy5vbmVycm9yIGlzIGNhbGxlZCBvbiB3aW5kb3cgb2JqZWN0
LiBCdWcgODUxOS4NDQorDQ0KK01haW4gZnJhbWUgd2luZG93Lm9uZXJyb3I6IFVuY2F1Z2h0IDIw
MTAgYXQgd2luZG93LW9uZXJyb3I4Lmh0bWw6MjQNDQorUEFTU0VEOiB0aGlzID09PSB3aW5kb3cN
DQorDQ0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL2Zhc3QvZXZl
bnRzL3dpbmRvdy1vbmVycm9yOS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9j
aHJvbWl1bS9mYXN0L2V2ZW50cy93aW5kb3ctb25lcnJvcjktZXhwZWN0ZWQudHh0Cm5ldyBmaWxl
IG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjYxMjc4NTYKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS9mYXN0L2V2ZW50cy93aW5kb3ctb25lcnJvcjkt
ZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsOCBAQAorVGVzdCB0aGF0IHdoZW4gd2luZG93Lm9uZXJy
b3IgaGFuZGxlciBpcyBjYWxsZWQsIHdpbmRvdy5ldmVudCBpcyB0aGUgY29ycmVzcG9uZGluZyBF
cnJvckV2ZW50IG9iamVjdC4gQnVnIDg1MTkuDQ0KKw0NCitNYWluIGZyYW1lIHdpbmRvdy5vbmVy
cm9yOiBVbmNhdWdodCBFcnJvcjogMjAxMCBhdCB3aW5kb3ctb25lcnJvcjkuaHRtbDozMQ0NCit3
aW5kb3cuZXZlbnQudHlwZSA9IGVycm9yDQ0KK3dpbmRvdy5ldmVudC5tZXNzYWdlID0gVW5jYXVn
aHQgRXJyb3I6IDIwMTANDQord2luZG93LmV2ZW50LmZpbGVuYW1lID0gd2luZG93LW9uZXJyb3I5
Lmh0bWwNDQord2luZG93LmV2ZW50LmxpbmVubyA9IDMxDQ0KKw0NCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS9odHRwL3Rlc3RzL3NlY3VyaXR5L3dpbmRvdy1vbmVy
cm9yLWV4Y2VwdGlvbi1pbi1pZnJhbWUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvcGxhdGZv
cm0vY2hyb21pdW0vaHR0cC90ZXN0cy9zZWN1cml0eS93aW5kb3ctb25lcnJvci1leGNlcHRpb24t
aW4taWZyYW1lLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAw
Li44NjY1YWIyCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21p
dW0vaHR0cC90ZXN0cy9zZWN1cml0eS93aW5kb3ctb25lcnJvci1leGNlcHRpb24taW4taWZyYW1l
LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDYgQEAKK0NPTlNPTEUgTUVTU0FHRTogbGluZSA3OiBV
bmNhdWdodCBJZnJhbWVFeGNlcHRpb24NDQorVGVzdCB0aGF0IGV4Y2VwdGlvbnMgaW4gaWZyYW1l
IGFyZSBub3QgcmVwb3J0ZWQgdG8gdGhlIG1haW4gZnJhbWUgd2luZG93Lm9uZXJyb3IgaGFuZGxl
ci4gd2luZG93Lm9uZXJyb3Igc2hvdWxkIHByaW50IGV4YWN0bHkgb25lIGxpbmUuDQ0KKw0NCitN
YWluIGZyYW1lIHdpbmRvdy5vbmVycm9yOiBVbmNhdWdodCBNYWluRnJhbWVFeGNlcHRpb24gYXQg
d2luZG93LW9uZXJyb3ItZXhjZXB0aW9uLWluLWlmcmFtZS5odG1sOjM0DQ0KK0RPTkUNDQorDQ0K
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL3VzZXJzY3JpcHRzL3dp
bmRvdy1vbmVycm9yLWZvci1pc29sYXRlZC13b3JsZC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0
cy9wbGF0Zm9ybS9jaHJvbWl1bS91c2Vyc2NyaXB0cy93aW5kb3ctb25lcnJvci1mb3ItaXNvbGF0
ZWQtd29ybGQtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAu
LjlmOTA5MDkKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1
bS91c2Vyc2NyaXB0cy93aW5kb3ctb25lcnJvci1mb3ItaXNvbGF0ZWQtd29ybGQtZXhwZWN0ZWQu
dHh0CkBAIC0wLDAgKzEsNSBAQAorQ09OU09MRSBNRVNTQUdFOiBsaW5lIDE6IFVuY2F1Z2h0IEVy
cm9yOiBFcnJvciBpbiB1c2VyIHNjcmlwdA0NCitJbiB0aGlzIHRlc3Qgd2luZG93Lm9uZXJyb3Ig
c2hvdWxkIGJlIGludm9rZWQgb25seSBmb3IgdW5jYXVnaHQgZXhjZXB0aW9uIGluIHRoZSBtYWlu
IHdvcmxkLg0NCisNDQorTWFpbiBmcmFtZSB3aW5kb3cub25lcnJvcjogVW5jYXVnaHQgRXJyb3I6
IEVycm9yIGluIG1haW4gd29ybGQgYXQgd2luZG93LW9uZXJyb3ItZm9yLWlzb2xhdGVkLXdvcmxk
Lmh0bWw6MjYNDQorDQ0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3VzZXJzY3JpcHRzL3dpbmRv
dy1vbmVycm9yLWZvci1pc29sYXRlZC13b3JsZC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy91
c2Vyc2NyaXB0cy93aW5kb3ctb25lcnJvci1mb3ItaXNvbGF0ZWQtd29ybGQtZXhwZWN0ZWQudHh0
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmI4YWY2OTUKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy91c2Vyc2NyaXB0cy93aW5kb3ctb25lcnJvci1mb3ItaXNvbGF0
ZWQtd29ybGQtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNSBAQAorQ09OU09MRSBNRVNTQUdFOiBs
aW5lIDE6IEVycm9yOiBFcnJvciBpbiB1c2VyIHNjcmlwdAorSW4gdGhpcyB0ZXN0IHdpbmRvdy5v
bmVycm9yIHNob3VsZCBiZSBpbnZva2VkIG9ubHkgZm9yIHVuY2F1Z2h0IGV4Y2VwdGlvbiBpbiB0
aGUgbWFpbiB3b3JsZC4KKworTWFpbiBmcmFtZSB3aW5kb3cub25lcnJvcjogRXJyb3I6IEVycm9y
IGluIG1haW4gd29ybGQgYXQgd2luZG93LW9uZXJyb3ItZm9yLWlzb2xhdGVkLXdvcmxkLmh0bWw6
MjYKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvdXNlcnNjcmlwdHMvd2luZG93LW9uZXJyb3It
Zm9yLWlzb2xhdGVkLXdvcmxkLmh0bWwgYi9MYXlvdXRUZXN0cy91c2Vyc2NyaXB0cy93aW5kb3ct
b25lcnJvci1mb3ItaXNvbGF0ZWQtd29ybGQuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwLi44NTYyNzEzCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvdXNlcnNj
cmlwdHMvd2luZG93LW9uZXJyb3ItZm9yLWlzb2xhdGVkLXdvcmxkLmh0bWwKQEAgLTAsMCArMSwz
MCBAQAorPCFET0NUWVBFIEhUTUw+Cis8aHRtbD4KKzxoZWFkPgorPC9oZWFkPgorPGJvZHk+Cis8
cD5JbiB0aGlzIHRlc3Qgd2luZG93Lm9uZXJyb3Igc2hvdWxkIGJlIGludm9rZWQgb25seSBmb3Ig
dW5jYXVnaHQgZXhjZXB0aW9uIGluIHRoZSBtYWluIHdvcmxkLgorPC9wPgorPGRpdiBpZD0iY29u
c29sZSI+PC9kaXY+Cis8c2NyaXB0PgoraWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikg
eworICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKKyAgICBsYXlvdXRUZXN0
Q29udHJvbGxlci5hZGRVc2VyU2NyaXB0KCJ0aHJvdyBuZXcgRXJyb3IoJ0Vycm9yIGluIHVzZXIg
c2NyaXB0Jyk7IiwgZmFsc2UsIHRydWUpOworfQorCitmdW5jdGlvbiBsb2cobXNnKSB7CisgICAg
ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNvbnNvbGUiKS5pbm5lckhUTUwgKz0gbXNnICsgIjxi
cj4iOworfQorCit3aW5kb3cub25lcnJvciA9IGZ1bmN0aW9uKG1zZywgdXJsLCBsaW5lKQorewor
ICAgIHVybCA9IHVybCA/IHVybC5tYXRjaCggL1teXC9dK1wvPyQvIClbMF0gOiB1cmw7CisgICAg
bG9nKCJNYWluIGZyYW1lIHdpbmRvdy5vbmVycm9yOiAiICsgbXNnICsgIiBhdCAiICsgdXJsICsg
IjoiICsgbGluZSk7CisgICAgcmV0dXJuIGZhbHNlOworfQorCit0aHJvdyBuZXcgRXJyb3IoIkVy
cm9yIGluIG1haW4gd29ybGQiKTsKKworPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYg
LS1naXQgYS9XZWJDb3JlL0FuZHJvaWQuanNjYmluZGluZ3MubWsgYi9XZWJDb3JlL0FuZHJvaWQu
anNjYmluZGluZ3MubWsKaW5kZXggZTA3ZWQxZS4uNzQ5YmExNCAxMDA2NDQKLS0tIGEvV2ViQ29y
ZS9BbmRyb2lkLmpzY2JpbmRpbmdzLm1rCisrKyBiL1dlYkNvcmUvQW5kcm9pZC5qc2NiaW5kaW5n
cy5tawpAQCAtOTUsNiArOTUsNyBAQCBMT0NBTF9TUkNfRklMRVMgKz0gXAogCWJpbmRpbmdzL2pz
L0pTRGV2aWNlT3JpZW50YXRpb25FdmVudEN1c3RvbS5jcHAgXAogCWJpbmRpbmdzL2pzL0pTRG9j
dW1lbnRDdXN0b20uY3BwIFwKIAliaW5kaW5ncy9qcy9KU0VsZW1lbnRDdXN0b20uY3BwIFwKKwli
aW5kaW5ncy9qcy9KU0Vycm9ySGFuZGxlci5jcHAgXAogCWJpbmRpbmdzL2pzL0pTRXZlbnRDdXN0
b20uY3BwIFwKIAliaW5kaW5ncy9qcy9KU0V2ZW50TGlzdGVuZXIuY3BwIFwKIAliaW5kaW5ncy9q
cy9KU0V2ZW50VGFyZ2V0LmNwcCBcCkBAIC0xNTUsNyArMTU2LDYgQEAgTE9DQUxfU1JDX0ZJTEVT
ICs9IFwKIAliaW5kaW5ncy9qcy9KU1dlYktpdFBvaW50Q3VzdG9tLmNwcCBcCiAJYmluZGluZ3Mv
anMvSlNXb3JrZXJDb250ZXh0QmFzZS5jcHAgXAogCWJpbmRpbmdzL2pzL0pTV29ya2VyQ29udGV4
dEN1c3RvbS5jcHAgXAotCWJpbmRpbmdzL2pzL0pTV29ya2VyQ29udGV4dEVycm9ySGFuZGxlci5j
cHAgXAogCWJpbmRpbmdzL2pzL0pTV29ya2VyQ3VzdG9tLmNwcCBcCiAJYmluZGluZ3MvanMvSlNY
TUxIdHRwUmVxdWVzdEN1c3RvbS5jcHAgXAogCWJpbmRpbmdzL2pzL0pTWE1MSHR0cFJlcXVlc3RV
cGxvYWRDdXN0b20uY3BwIFwKZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQgYi9X
ZWJDb3JlL0NNYWtlTGlzdHMudHh0CmluZGV4IGZhZWQ4ZWUuLjZjYWI3MTIgMTAwNjQ0Ci0tLSBh
L1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKKysrIGIvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dApAQCAt
NjA3LDYgKzYwNyw3IEBAIFNFVChXZWJDb3JlX1NPVVJDRVMKICAgICBiaW5kaW5ncy9qcy9KU0RP
TVdpbmRvd1NoZWxsLmNwcAogICAgIGJpbmRpbmdzL2pzL0pTRE9NV3JhcHBlci5jcHAKICAgICBi
aW5kaW5ncy9qcy9KU0VsZW1lbnRDdXN0b20uY3BwCisgICAgYmluZGluZ3MvanMvSlNFcnJvckhh
bmRsZXIuY3BwCiAgICAgYmluZGluZ3MvanMvSlNFdmVudEN1c3RvbS5jcHAKICAgICBiaW5kaW5n
cy9qcy9KU0V2ZW50TGlzdGVuZXIuY3BwCiAgICAgYmluZGluZ3MvanMvSlNFdmVudFNvdXJjZUN1
c3RvbS5jcHAKQEAgLTY3MCw3ICs2NzEsNiBAQCBTRVQoV2ViQ29yZV9TT1VSQ0VTCiAgICAgYmlu
ZGluZ3MvanMvSlNXZWJTb2NrZXRDdXN0b20uY3BwCiAgICAgYmluZGluZ3MvanMvSlNXb3JrZXJD
b250ZXh0QmFzZS5jcHAKICAgICBiaW5kaW5ncy9qcy9KU1dvcmtlckNvbnRleHRDdXN0b20uY3Bw
Ci0gICAgYmluZGluZ3MvanMvSlNXb3JrZXJDb250ZXh0RXJyb3JIYW5kbGVyLmNwcAogICAgIGJp
bmRpbmdzL2pzL0pTV29ya2VyQ3VzdG9tLmNwcAogICAgIGJpbmRpbmdzL2pzL0pTWE1MSHR0cFJl
cXVlc3RDdXN0b20uY3BwCiAgICAgYmluZGluZ3MvanMvSlNYTUxIdHRwUmVxdWVzdFVwbG9hZEN1
c3RvbS5jcHAKZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VM
b2cKaW5kZXggMDQ5MTM2ZS4uNTA4NmI2YyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cK
KysrIGIvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSw2OCBAQAorMjAxMC0wOC0yMyAgWXVy
eSBTZW1pa2hhdHNreSAgPHl1cnlzQGNocm9taXVtLm9yZz4KKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBXZWJDb3JlIGRvZXNuJ3QgZmlyZSB3aW5kb3cu
b25lcnJvciBldmVudCB3aGVuIHVuY2F1Z2h0IEphdmFTY3JpcHQgZXhjZXB0aW9ucyBhcmUgdGhy
b3duCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04NTE5
CisKKyAgICAgICAgVW5jYXVnaHQgZXhjZXB0aW9ucyBhcmUgcHJvcGFnYXRlZCB0byB3aW5kb3cu
b25lcnJvciBoYW5kZXIgaWYgb25lIGlzIHByZXNlbnQuCisgICAgICAgIFRoZSBoYW5kbGVyIGlz
IGV4cGVjdGVkIHRvIGJlIGEgZnVuY3Rpb24gYWNjZXB0aW5nIHRocmVlIGFyZ3VtZW50czogZXJy
b3IgbWVzc2FnZSwKKyAgICAgICAgcmVzb3VyY2UgdXJsIGFuZCBsaW5lIG51bWJlciB3aGVyZSB0
aGUgZXhjZXB0aW9uIG9jY3VyZWQuCisKKyAgICAgICAgVGVzdHM6IGZhc3QvZXZlbnRzL3dpbmRv
dy1vbmVycm9yMS5odG1sCisgICAgICAgICAgICAgICBmYXN0L2V2ZW50cy93aW5kb3ctb25lcnJv
cjIuaHRtbAorICAgICAgICAgICAgICAgZmFzdC9ldmVudHMvd2luZG93LW9uZXJyb3IzLmh0bWwK
KyAgICAgICAgICAgICAgIGZhc3QvZXZlbnRzL3dpbmRvdy1vbmVycm9yNC5odG1sCisgICAgICAg
ICAgICAgICBmYXN0L2V2ZW50cy93aW5kb3ctb25lcnJvcjUuaHRtbAorICAgICAgICAgICAgICAg
ZmFzdC9ldmVudHMvd2luZG93LW9uZXJyb3I2Lmh0bWwKKyAgICAgICAgICAgICAgIGZhc3QvZXZl
bnRzL3dpbmRvdy1vbmVycm9yNy5odG1sCisgICAgICAgICAgICAgICBmYXN0L2V2ZW50cy93aW5k
b3ctb25lcnJvcjguaHRtbAorICAgICAgICAgICAgICAgaHR0cC90ZXN0cy9zZWN1cml0eS93aW5k
b3ctb25lcnJvci1leGNlcHRpb24taW4taWZyYW1lLmh0bWwKKworICAgICAgICAqIEFuZHJvaWQu
anNjYmluZGluZ3MubWs6CisgICAgICAgICogQ01ha2VMaXN0cy50eHQ6CisgICAgICAgICogR05V
bWFrZWZpbGUuYW06CisgICAgICAgICogV2ViQ29yZS5neXBpOgorICAgICAgICAqIFdlYkNvcmUu
b3JkZXI6CisgICAgICAgICogV2ViQ29yZS5wcm86CisgICAgICAgICogV2ViQ29yZS52Y3Byb2ov
V2ViQ29yZS52Y3Byb2o6CisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qOgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pTQmluZGluZ3NBbGxJbk9uZS5jcHA6CisgICAg
ICAgICogYmluZGluZ3MvanMvSlNFcnJvckhhbmRsZXIuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdl
YkNvcmU6OkpTRXJyb3JIYW5kbGVyOjpKU0Vycm9ySGFuZGxlcik6CisgICAgICAgIChXZWJDb3Jl
OjpKU0Vycm9ySGFuZGxlcjo6fkpTRXJyb3JIYW5kbGVyKToKKyAgICAgICAgKFdlYkNvcmU6OkpT
RXJyb3JIYW5kbGVyOjpoYW5kbGVFdmVudCk6CisgICAgICAgICogYmluZGluZ3MvanMvSlNFcnJv
ckhhbmRsZXIuaDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpKU0Vycm9ySGFuZGxlcjo6Y3Jl
YXRlKToKKyAgICAgICAgKFdlYkNvcmU6OmNyZWF0ZUpTRXJyb3JIYW5kbGVyKToKKyAgICAgICAg
KiBiaW5kaW5ncy9qcy9KU1dvcmtlckNvbnRleHRFcnJvckhhbmRsZXIuY3BwOiBSZW1vdmVkLgor
ICAgICAgICAqIGJpbmRpbmdzL2pzL0pTV29ya2VyQ29udGV4dEVycm9ySGFuZGxlci5oOiBSZW1v
dmVkLiBUaGlzIGNsYXNzIHdhcyByZWZhY3RvcmVkIGludG8gbW9yZSBnZW5lcmFsCisgICAgICAg
IEpTRXJyb3JIYW5kbGVyIHRoYXQgcmVwcmVzZW50cyBnbG9iYWwgb25lcnJvIGhhbmRlciBvbiBX
b3JrZXIgQ29udGV4dCBvciBvbiBET01XaW5kb3cuCisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0
cy9Db2RlR2VuZXJhdG9ySlMucG06CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2Vu
ZXJhdG9yVjgucG06CisgICAgICAgICogYmluZGluZ3MvdjgvVjhDb25zb2xlTWVzc2FnZS5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpWOENvbnNvbGVNZXNzYWdlOjpkaXNwYXRjaE5vdyk6CisgICAg
ICAgIChXZWJDb3JlOjpWOENvbnNvbGVNZXNzYWdlOjpoYW5kbGVyKToKKyAgICAgICAgKiBiaW5k
aW5ncy92OC9WOENvbnNvbGVNZXNzYWdlLmg6CisgICAgICAgICogYmluZGluZ3MvdjgvVjhXaW5k
b3dFcnJvckhhbmRsZXIuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlY4V2luZG93RXJy
b3JIYW5kbGVyOjpWOFdpbmRvd0Vycm9ySGFuZGxlcik6CisgICAgICAgIChXZWJDb3JlOjpWOFdp
bmRvd0Vycm9ySGFuZGxlcjo6Y2FsbExpc3RlbmVyRnVuY3Rpb24pOgorICAgICAgICAqIGJpbmRp
bmdzL3Y4L1Y4V2luZG93RXJyb3JIYW5kbGVyLmg6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6
VjhXaW5kb3dFcnJvckhhbmRsZXI6OmNyZWF0ZSk6CisgICAgICAgICogZG9tL0RvY3VtZW50LmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50OjpEb2N1bWVudCk6CisgICAgICAgIChXZWJD
b3JlOjpEb2N1bWVudDo6cmVwb3J0RXhjZXB0aW9uKToKKyAgICAgICAgKiBkb20vRG9jdW1lbnQu
aDoKKyAgICAgICAgKiBkb20vU2NyaXB0RXhlY3V0aW9uQ29udGV4dC5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpTY3JpcHRFeGVjdXRpb25Db250ZXh0OjpTY3JpcHRFeGVjdXRpb25Db250ZXh0KToK
KyAgICAgICAgKFdlYkNvcmU6OlNjcmlwdEV4ZWN1dGlvbkNvbnRleHQ6Omludm9rZU9uRXJyb3JI
YW5kbGVyKTogdXRpbGl0eSBtZXRob2QgdGhhdCBhbGxvd3MgdG8gaW52b2tlIG9uZXJyb3IKKyAg
ICAgICAgaGFuZGVyIGFjY2VwdGluZyB0aHJlZSBwYXJhbWV0ZXJzKG1lc3NhZ2UsIHVybCBhbmQg
bGluZSBudW1iZXIpIGZvciBXaW5kb3cgYW5kIFdvcmtlciBDb250ZXh0LgorICAgICAgICAqIGRv
bS9TY3JpcHRFeGVjdXRpb25Db250ZXh0Lmg6CisgICAgICAgICogd29ya2Vycy9Xb3JrZXJDb250
ZXh0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OldvcmtlckNvbnRleHQ6OldvcmtlckNvbnRleHQp
OgorICAgICAgICAoV2ViQ29yZTo6V29ya2VyQ29udGV4dDo6cmVwb3J0RXhjZXB0aW9uKToKKyAg
ICAgICAgKiB3b3JrZXJzL1dvcmtlckNvbnRleHQuaDoKKwogMjAxMC0wOS0xNyAgWXVyeSBTZW1p
a2hhdHNreSAgPHl1cnlzQGNocm9taXVtLm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBieSBQYXZl
bCBGZWxkbWFuLgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9HTlVtYWtlZmlsZS5hbSBiL1dlYkNvcmUv
R05VbWFrZWZpbGUuYW0KaW5kZXggNDRjNzFiNS4uNDFhNTgyYiAxMDA2NDQKLS0tIGEvV2ViQ29y
ZS9HTlVtYWtlZmlsZS5hbQorKysgYi9XZWJDb3JlL0dOVW1ha2VmaWxlLmFtCkBAIC03MDUsNiAr
NzA1LDggQEAgd2ViY29yZV9zb3VyY2VzICs9IFwKIAlXZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9N
V3JhcHBlci5oIFwKIAlXZWJDb3JlL2JpbmRpbmdzL2pzL0pTRWxlbWVudEN1c3RvbS5jcHAgXAog
CVdlYkNvcmUvYmluZGluZ3MvanMvSlNFbnRyeUN1c3RvbS5jcHAgXAorCVdlYkNvcmUvYmluZGlu
Z3MvanMvSlNFcnJvckhhbmRsZXIuY3BwIFwKKwlXZWJDb3JlL2JpbmRpbmdzL2pzL0pTRXJyb3JI
YW5kbGVyLmggXAogCVdlYkNvcmUvYmluZGluZ3MvanMvSlNFdmVudEN1c3RvbS5jcHAgXAogCVdl
YkNvcmUvYmluZGluZ3MvanMvSlNFdmVudExpc3RlbmVyLmNwcCBcCiAJV2ViQ29yZS9iaW5kaW5n
cy9qcy9KU0V2ZW50TGlzdGVuZXIuaCBcCkBAIC03ODcsNiArNzg5LDcgQEAgd2ViY29yZV9zb3Vy
Y2VzICs9IFwKIAlXZWJDb3JlL2JpbmRpbmdzL2pzL0pTVHJlZVdhbGtlckN1c3RvbS5jcHAgXAog
CVdlYkNvcmUvYmluZGluZ3MvanMvSlNXZWJLaXRDU1NNYXRyaXhDdXN0b20uY3BwIFwKIAlXZWJD
b3JlL2JpbmRpbmdzL2pzL0pTV2ViS2l0UG9pbnRDdXN0b20uY3BwIFwKKzw8PDw8PDwgSEVBRAog
CVdlYkNvcmUvYmluZGluZ3MvanMvSlNXZWJTb2NrZXRDdXN0b20uY3BwIFwKIAlXZWJDb3JlL2Jp
bmRpbmdzL2pzL0pTV29ya2VyQ29udGV4dEJhc2UuY3BwIFwKIAlXZWJDb3JlL2JpbmRpbmdzL2pz
L0pTV29ya2VyQ29udGV4dEJhc2UuaCBcCkBAIC03OTQsNiArNzk3LDggQEAgd2ViY29yZV9zb3Vy
Y2VzICs9IFwKIAlXZWJDb3JlL2JpbmRpbmdzL2pzL0pTV29ya2VyQ29udGV4dEVycm9ySGFuZGxl
ci5jcHAgXAogCVdlYkNvcmUvYmluZGluZ3MvanMvSlNXb3JrZXJDb250ZXh0RXJyb3JIYW5kbGVy
LmggXAogCVdlYkNvcmUvYmluZGluZ3MvanMvSlNXb3JrZXJDdXN0b20uY3BwIFwKKz09PT09PT0K
Kz4+Pj4+Pj4gZml4CiAJV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1hNTEh0dHBSZXF1ZXN0Q3VzdG9t
LmNwcCBcCiAJV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1hNTEh0dHBSZXF1ZXN0VXBsb2FkQ3VzdG9t
LmNwcCBcCiAJV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1hTTFRQcm9jZXNzb3JDdXN0b20uY3BwIFwK
ZGlmZiAtLWdpdCBhL1dlYkNvcmUvV2ViQ29yZS5neXBpIGIvV2ViQ29yZS9XZWJDb3JlLmd5cGkK
aW5kZXggY2E2NTVkNS4uOTBkMmY0MyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9XZWJDb3JlLmd5cGkK
KysrIGIvV2ViQ29yZS9XZWJDb3JlLmd5cGkKQEAgLTU4NCw2ICs1ODQsOCBAQAogICAgICAgICAg
ICAgJ2JpbmRpbmdzL2pzL0pTRE9NV3JhcHBlci5oJywKICAgICAgICAgICAgICdiaW5kaW5ncy9q
cy9KU0VsZW1lbnRDdXN0b20uY3BwJywKICAgICAgICAgICAgICdiaW5kaW5ncy9qcy9KU0VudHJ5
Q3VzdG9tLmNwcCcsCisgICAgICAgICAgICAnYmluZGluZ3MvanMvSlNFcnJvckhhbmRsZXIuY3Bw
JywKKyAgICAgICAgICAgICdiaW5kaW5ncy9qcy9KU0Vycm9ySGFuZGxlci5oJywKICAgICAgICAg
ICAgICdiaW5kaW5ncy9qcy9KU0V2ZW50Q3VzdG9tLmNwcCcsCiAgICAgICAgICAgICAnYmluZGlu
Z3MvanMvSlNFdmVudExpc3RlbmVyLmNwcCcsCiAgICAgICAgICAgICAnYmluZGluZ3MvanMvSlNF
dmVudExpc3RlbmVyLmgnLApAQCAtNjc2LDggKzY3OCw2IEBACiAgICAgICAgICAgICAnYmluZGlu
Z3MvanMvSlNXb3JrZXJDb250ZXh0QmFzZS5jcHAnLAogICAgICAgICAgICAgJ2JpbmRpbmdzL2pz
L0pTV29ya2VyQ29udGV4dEJhc2UuaCcsCiAgICAgICAgICAgICAnYmluZGluZ3MvanMvSlNXb3Jr
ZXJDb250ZXh0Q3VzdG9tLmNwcCcsCi0gICAgICAgICAgICAnYmluZGluZ3MvanMvSlNXb3JrZXJD
b250ZXh0RXJyb3JIYW5kbGVyLmNwcCcsCi0gICAgICAgICAgICAnYmluZGluZ3MvanMvSlNXb3Jr
ZXJDb250ZXh0RXJyb3JIYW5kbGVyLmgnLAogICAgICAgICAgICAgJ2JpbmRpbmdzL2pzL0pTV29y
a2VyQ3VzdG9tLmNwcCcsCiAgICAgICAgICAgICAnYmluZGluZ3MvanMvSlNYTUxIdHRwUmVxdWVz
dEN1c3RvbS5jcHAnLAogICAgICAgICAgICAgJ2JpbmRpbmdzL2pzL0pTWE1MSHR0cFJlcXVlc3RV
cGxvYWRDdXN0b20uY3BwJywKQEAgLTk0MCw2ICs5NDAsOCBAQAogICAgICAgICAgICAgJ2JpbmRp
bmdzL3Y4L1Y4U1ZHUE9EVHlwZVdyYXBwZXIuaCcsCiAgICAgICAgICAgICAnYmluZGluZ3Mvdjgv
VjhVdGlsaXRpZXMuY3BwJywKICAgICAgICAgICAgICdiaW5kaW5ncy92OC9WOFV0aWxpdGllcy5o
JywKKyAgICAgICAgICAgICdiaW5kaW5ncy92OC9WOFdpbmRvd0Vycm9ySGFuZGxlci5jcHAnLAor
ICAgICAgICAgICAgJ2JpbmRpbmdzL3Y4L1Y4V2luZG93RXJyb3JIYW5kbGVyLmgnLAogICAgICAg
ICAgICAgJ2JpbmRpbmdzL3Y4L1Y4V29ya2VyQ29udGV4dEVycm9ySGFuZGxlci5jcHAnLAogICAg
ICAgICAgICAgJ2JpbmRpbmdzL3Y4L1Y4V29ya2VyQ29udGV4dEVycm9ySGFuZGxlci5oJywKICAg
ICAgICAgICAgICdiaW5kaW5ncy92OC9WOFdvcmtlckNvbnRleHRFdmVudExpc3RlbmVyLmNwcCcs
CmRpZmYgLS1naXQgYS9XZWJDb3JlL1dlYkNvcmUub3JkZXIgYi9XZWJDb3JlL1dlYkNvcmUub3Jk
ZXIKaW5kZXggNDEyNDc3Ny4uZmIxOGQ2NCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9XZWJDb3JlLm9y
ZGVyCisrKyBiL1dlYkNvcmUvV2ViQ29yZS5vcmRlcgpAQCAtMjUyMTcsMTMgKzI1MjE3LDkgQEAg
X19aTjdXZWJDb3JlMTVKU1dvcmtlckNvbnRleHQxMHNldFRpbWVvdXRFUE4zSlNDOUV4ZWNTdGF0
ZUVSS05TMV83QXJnTGlzdEUKIF9fWk43V2ViQ29yZTEzV29ya2VyQ29udGV4dDEwc2V0VGltZW91
dEVQTlNfMTVTY2hlZHVsZWRBY3Rpb25FaQogX19aTjdXZWJDb3JlMTdXb3JrZXJTaGFyZWRUaW1l
cjExc2V0RmlyZVRpbWVFZAogX19aTjdXZWJDb3JlMTVTY2hlZHVsZWRBY3Rpb243ZXhlY3V0ZUVQ
TlNfMTNXb3JrZXJDb250ZXh0RQotX19aTjdXZWJDb3JlMjdKU1dvcmtlckNvbnRleHRFcnJvckhh
bmRsZXJDMUVQTjNKU0M4SlNPYmplY3RFUzNfYlBOU18xNURPTVdyYXBwZXJXb3JsZEUKLV9fWk43
V2ViQ29yZTI3SlNXb3JrZXJDb250ZXh0RXJyb3JIYW5kbGVyQzJFUE4zSlNDOEpTT2JqZWN0RVMz
X2JQTlNfMTVET01XcmFwcGVyV29ybGRFCiBfX1pON1dlYkNvcmUxMEVycm9yRXZlbnRDMUVSS05T
XzZTdHJpbmdFUzNfagogX19aTjdXZWJDb3JlMTBFcnJvckV2ZW50QzJFUktOU182U3RyaW5nRVMz
X2oKLV9fWk43V2ViQ29yZTI3SlNXb3JrZXJDb250ZXh0RXJyb3JIYW5kbGVyMTFoYW5kbGVFdmVu
dEVQTlNfMjJTY3JpcHRFeGVjdXRpb25Db250ZXh0RVBOU181RXZlbnRFCiBfX1pON1dlYkNvcmUx
MEVycm9yRXZlbnREMEV2Ci1fX1pON1dlYkNvcmUyN0pTV29ya2VyQ29udGV4dEVycm9ySGFuZGxl
ckQwRXYKIF9fWk43V2ViQ29yZTE3anNXb3JrZXJPbm1lc3NhZ2VFUE4zSlNDOUV4ZWNTdGF0ZUVO
UzBfN0pTVmFsdWVFUktOUzBfMTBJZGVudGlmaWVyRQogX19aTjdXZWJDb3JlMzRqc1dvcmtlclBy
b3RvdHlwZUZ1bmN0aW9uVGVybWluYXRlRVBOM0pTQzlFeGVjU3RhdGVFUE5TMF84SlNPYmplY3RF
TlMwXzdKU1ZhbHVlRVJLTlMwXzdBcmdMaXN0RQogX19aVGhuOF9ON1dlYkNvcmUyMFdvcmtlck1l
c3NhZ2luZ1Byb3h5MTl3b3JrZXJDb250ZXh0Q2xvc2VkRXYKZGlmZiAtLWdpdCBhL1dlYkNvcmUv
V2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2ogYi9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dl
YkNvcmUudmNwcm9qCmluZGV4IDZlODRmN2MuLjBiNjU4NzggMTAwNjQ0Ci0tLSBhL1dlYkNvcmUv
V2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oKKysrIGIvV2ViQ29yZS9XZWJDb3JlLnZjcHJv
ai9XZWJDb3JlLnZjcHJvagpAQCAtNDQ3MjUsNiArNDQ3MjUsNjMgQEAKIAkJCQk8L0ZpbGU+DQog
CQkJCTxGaWxlDQogCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGJpbmRpbmdzXGpzXEpTRE9NV2luZG93
U2hlbGwuY3BwIg0KKwkJCQkJUmVsYXRpdmVQYXRoPSIuLlxiaW5kaW5nc1xqc1xKU0Vycm9ySGFu
ZGxlci5jcHAiDQorCQkJCQk+DQorCQkJCQk8RmlsZUNvbmZpZ3VyYXRpb24NCisJCQkJCQlOYW1l
PSJEZWJ1Z3xXaW4zMiINCisJCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSINCisJCQkJCQk+
DQorCQkJCQkJPFRvb2wNCisJCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCINCisJCQkJCQkv
Pg0KKwkJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4NCisJCQkJCTxGaWxlQ29uZmlndXJhdGlvbg0K
KwkJCQkJCU5hbWU9IlJlbGVhc2V8V2luMzIiDQorCQkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRy
dWUiDQorCQkJCQkJPg0KKwkJCQkJCTxUb29sDQorCQkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRv
b2wiDQorCQkJCQkJLz4NCisJCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+DQorCQkJCQk8RmlsZUNv
bmZpZ3VyYXRpb24NCisJCQkJCQlOYW1lPSJEZWJ1Z19JbnRlcm5hbHxXaW4zMiINCisJCQkJCQlF
eGNsdWRlZEZyb21CdWlsZD0idHJ1ZSINCisJCQkJCQk+DQorCQkJCQkJPFRvb2wNCisJCQkJCQkJ
TmFtZT0iVkNDTENvbXBpbGVyVG9vbCINCisJCQkJCQkvPg0KKwkJCQkJPC9GaWxlQ29uZmlndXJh
dGlvbj4NCisJCQkJCTxGaWxlQ29uZmlndXJhdGlvbg0KKwkJCQkJCU5hbWU9IkRlYnVnX0NhaXJv
fFdpbjMyIg0KKwkJCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIg0KKwkJCQkJCT4NCisJCQkJ
CQk8VG9vbA0KKwkJCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIg0KKwkJCQkJCS8+DQorCQkJ
CQk8L0ZpbGVDb25maWd1cmF0aW9uPg0KKwkJCQkJPEZpbGVDb25maWd1cmF0aW9uDQorCQkJCQkJ
TmFtZT0iUmVsZWFzZV9DYWlyb3xXaW4zMiINCisJCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1
ZSINCisJCQkJCQk+DQorCQkJCQkJPFRvb2wNCisJCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9v
bCINCisJCQkJCQkvPg0KKwkJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4NCisJCQkJCTxGaWxlQ29u
ZmlndXJhdGlvbg0KKwkJCQkJCU5hbWU9IkRlYnVnX0FsbHxXaW4zMiINCisJCQkJCQlFeGNsdWRl
ZEZyb21CdWlsZD0idHJ1ZSINCisJCQkJCQk+DQorCQkJCQkJPFRvb2wNCisJCQkJCQkJTmFtZT0i
VkNDTENvbXBpbGVyVG9vbCINCisJCQkJCQkvPg0KKwkJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4N
CisJCQkJPC9GaWxlPg0KKwkJCQk8RmlsZQ0KKwkJCQkJUmVsYXRpdmVQYXRoPSIuLlxiaW5kaW5n
c1xqc1xKU0Vycm9ySGFuZGxlci5oIg0KKwkJCQkJPg0KKwkJCQk8L0ZpbGU+DQorCQkJCTxGaWxl
DQorCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGJpbmRpbmdzXGpzXEpTRXZlbnRDdXN0b20uY3BwIg0K
IAkJCQkJPg0KIAkJCQkJPEZpbGVDb25maWd1cmF0aW9uDQogCQkJCQkJTmFtZT0iRGVidWd8V2lu
MzIiDQpAQCAtNDkyODQsNjIgKzQ5MzQxLDYgQEAKIAkJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4N
CiAJCQkJPC9GaWxlPg0KIAkJCQk8RmlsZQ0KLQkJCQkJUmVsYXRpdmVQYXRoPSIuLlxiaW5kaW5n
c1xqc1xKU1dvcmtlckNvbnRleHRFcnJvckhhbmRsZXIuY3BwIg0KLQkJCQkJPg0KLQkJCQkJPEZp
bGVDb25maWd1cmF0aW9uDQotCQkJCQkJTmFtZT0iRGVidWd8V2luMzIiDQotCQkJCQkJRXhjbHVk
ZWRGcm9tQnVpbGQ9InRydWUiDQotCQkJCQkJPg0KLQkJCQkJCTxUb29sDQotCQkJCQkJCU5hbWU9
IlZDQ0xDb21waWxlclRvb2wiDQotCQkJCQkJLz4NCi0JCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+
DQotCQkJCQk8RmlsZUNvbmZpZ3VyYXRpb24NCi0JCQkJCQlOYW1lPSJSZWxlYXNlfFdpbjMyIg0K
LQkJCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIg0KLQkJCQkJCT4NCi0JCQkJCQk8VG9vbA0K
LQkJCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIg0KLQkJCQkJCS8+DQotCQkJCQk8L0ZpbGVD
b25maWd1cmF0aW9uPg0KLQkJCQkJPEZpbGVDb25maWd1cmF0aW9uDQotCQkJCQkJTmFtZT0iRGVi
dWdfSW50ZXJuYWx8V2luMzIiDQotCQkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiDQotCQkJ
CQkJPg0KLQkJCQkJCTxUb29sDQotCQkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiDQotCQkJ
CQkJLz4NCi0JCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+DQotCQkJCQk8RmlsZUNvbmZpZ3VyYXRp
b24NCi0JCQkJCQlOYW1lPSJEZWJ1Z19DYWlyb3xXaW4zMiINCi0JCQkJCQlFeGNsdWRlZEZyb21C
dWlsZD0idHJ1ZSINCi0JCQkJCQk+DQotCQkJCQkJPFRvb2wNCi0JCQkJCQkJTmFtZT0iVkNDTENv
bXBpbGVyVG9vbCINCi0JCQkJCQkvPg0KLQkJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4NCi0JCQkJ
CTxGaWxlQ29uZmlndXJhdGlvbg0KLQkJCQkJCU5hbWU9IlJlbGVhc2VfQ2Fpcm98V2luMzIiDQot
CQkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiDQotCQkJCQkJPg0KLQkJCQkJCTxUb29sDQot
CQkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiDQotCQkJCQkJLz4NCi0JCQkJCTwvRmlsZUNv
bmZpZ3VyYXRpb24+DQotCQkJCQk8RmlsZUNvbmZpZ3VyYXRpb24NCi0JCQkJCQlOYW1lPSJEZWJ1
Z19BbGx8V2luMzIiDQotCQkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiDQotCQkJCQkJPg0K
LQkJCQkJCTxUb29sDQotCQkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiDQotCQkJCQkJLz4N
Ci0JCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+DQotCQkJCTwvRmlsZT4NCi0JCQkJPEZpbGUNCi0J
CQkJCVJlbGF0aXZlUGF0aD0iLi5cYmluZGluZ3NcanNcSlNXb3JrZXJDb250ZXh0RXJyb3JIYW5k
bGVyLmgiDQotCQkJCQk+DQotCQkJCTwvRmlsZT4NCi0JCQkJPEZpbGUNCiAJCQkJCVJlbGF0aXZl
UGF0aD0iLi5cYmluZGluZ3NcanNcSlNYTUxIdHRwUmVxdWVzdEN1c3RvbS5jcHAiDQogCQkJCQk+
DQogCQkJCQk8RmlsZUNvbmZpZ3VyYXRpb24NCmRpZmYgLS1naXQgYS9XZWJDb3JlL1dlYkNvcmUu
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJv
amVjdC5wYnhwcm9qCmluZGV4IGRkNGE4YjYuLmIwZTExYjIgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUv
V2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1dlYkNvcmUvV2ViQ29yZS54
Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC01MzYxLDggKzUzNjEsOCBAQAogCQlGMzY0NEFG
RjExMTk4MDU5MDBFMEQ1MzcgLyogSW5qZWN0ZWRTY3JpcHQuY3BwIGluIFNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjM2NDRBRkQxMTE5ODA1OTAwRTBENTM3IC8q
IEluamVjdGVkU2NyaXB0LmNwcCAqLzsgfTsKIAkJRjM2NDRCMDAxMTE5ODA1OTAwRTBENTM3IC8q
IEluamVjdGVkU2NyaXB0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSBGMzY0NEFGRTExMTk4MDU5MDBFMEQ1MzcgLyogSW5qZWN0ZWRTY3JpcHQuaCAqLzsg
fTsKIAkJRjM3NUNDMDcxMTUwRDMwMDAwOEREQjgxIC8qIEluc3BlY3RvcldvcmtlclJlc291cmNl
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGMzc1Q0Mw
NjExNTBEMzAwMDA4RERCODEgLyogSW5zcGVjdG9yV29ya2VyUmVzb3VyY2UuaCAqLzsgfTsKLQkJ
RjNENDYxNDgxMTYxRDUzMjAwQ0EwRDA5IC8qIEpTV29ya2VyQ29udGV4dEVycm9ySGFuZGxlci5j
cHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGM0Q0NjE0
NjExNjFENTMyMDBDQTBEMDkgLyogSlNXb3JrZXJDb250ZXh0RXJyb3JIYW5kbGVyLmNwcCAqLzsg
fTsKLQkJRjNENDYxNDkxMTYxRDUzMjAwQ0EwRDA5IC8qIEpTV29ya2VyQ29udGV4dEVycm9ySGFu
ZGxlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjNE
NDYxNDcxMTYxRDUzMjAwQ0EwRDA5IC8qIEpTV29ya2VyQ29udGV4dEVycm9ySGFuZGxlci5oICov
OyB9OworCQlGM0Q0NjE0ODExNjFENTMyMDBDQTBEMDkgLyogSlNFcnJvckhhbmRsZXIuY3BwIGlu
IFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjNENDYxNDYxMTYx
RDUzMjAwQ0EwRDA5IC8qIEpTRXJyb3JIYW5kbGVyLmNwcCAqLzsgfTsKKwkJRjNENDYxNDkxMTYx
RDUzMjAwQ0EwRDA5IC8qIEpTRXJyb3JIYW5kbGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGM0Q0NjE0NzExNjFENTMyMDBDQTBEMDkgLyogSlNFcnJv
ckhhbmRsZXIuaCAqLzsgfTsKIAkJRjRFQUY0QUUxMEM3NDJCMTAwOTEwMEQzIC8qIE9wZW5UeXBl
U2FuaXRpemVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IEY0RUFGNEFDMTBDNzQyQjEwMDkxMDBEMyAvKiBPcGVuVHlwZVNhbml0aXplci5jcHAgKi87
IH07CiAJCUY0RUFGNEFGMTBDNzQyQjEwMDkxMDBEMyAvKiBPcGVuVHlwZVNhbml0aXplci5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjRFQUY0QUQxMEM3
NDJCMTAwOTEwMEQzIC8qIE9wZW5UeXBlU2FuaXRpemVyLmggKi87IH07CiAJCUY1QzA0MURBMEZG
Q0E3Q0UwMDgzOUQ0QSAvKiBIVE1MRGF0YUxpc3RFbGVtZW50LmNwcCBpbiBTb3VyY2VzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY1QzA0MUQ3MEZGQ0E3Q0UwMDgzOUQ0QSAv
KiBIVE1MRGF0YUxpc3RFbGVtZW50LmNwcCAqLzsgfTsKQEAgLTExMjM4LDggKzExMjM4LDggQEAK
IAkJRjM2NDRBRkQxMTE5ODA1OTAwRTBENTM3IC8qIEluamVjdGVkU2NyaXB0LmNwcCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEluamVjdGVkU2NyaXB0LmNwcDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRjM2NDRBRkUxMTE5ODA1OTAwRTBENTM3IC8qIEluamVj
dGVkU2NyaXB0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEluamVjdGVkU2Ny
aXB0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUYzNzVDQzA2MTE1MEQzMDAwMDhE
REI4MSAvKiBJbnNwZWN0b3JXb3JrZXJSZXNvdXJjZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBJbnNwZWN0b3JXb3JrZXJSZXNvdXJjZS5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwotCQlGM0Q0NjE0NjExNjFENTMyMDBDQTBEMDkgLyogSlNXb3JrZXJDb250ZXh0RXJy
b3JIYW5kbGVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTV29y
a2VyQ29udGV4dEVycm9ySGFuZGxlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0J
CUYzRDQ2MTQ3MTE2MUQ1MzIwMENBMEQwOSAvKiBKU1dvcmtlckNvbnRleHRFcnJvckhhbmRsZXIu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNXb3JrZXJDb250ZXh0RXJyb3JI
YW5kbGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUYzRDQ2MTQ2MTE2MUQ1MzIw
MENBMEQwOSAvKiBKU0Vycm9ySGFuZGxlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5j
cHA7IHBhdGggPSBKU0Vycm9ySGFuZGxlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CisJCUYzRDQ2MTQ3MTE2MUQ1MzIwMENBMEQwOSAvKiBKU0Vycm9ySGFuZGxlci5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKU0Vycm9ySGFuZGxlci5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQlGNEVBRjRBQzEwQzc0MkIxMDA5MTAwRDMgLyogT3BlblR5cGVTYW5p
dGl6ZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gT3BlblR5cGVT
YW5pdGl6ZXIuY3BwOyBwYXRoID0gb3BlbnR5cGUvT3BlblR5cGVTYW5pdGl6ZXIuY3BwOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlGNEVBRjRBRDEwQzc0MkIxMDA5MTAwRDMgLyogT3Bl
blR5cGVTYW5pdGl6ZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gT3BlblR5
cGVTYW5pdGl6ZXIuaDsgcGF0aCA9IG9wZW50eXBlL09wZW5UeXBlU2FuaXRpemVyLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUY1MjNEMjNCMDJERTQzOTYwMTg2MzVDQSAvKiBIVE1M
RG9jdW1lbnQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDMwOyBpbmRlbnRXaWR0aCA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
Y3BwOyBwYXRoID0gSFRNTERvY3VtZW50LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgdGFi
V2lkdGggPSA4OyB1c2VzVGFicyA9IDA7IH07CkBAIC0xNjI1Myw2ICsxNjI1Myw4IEBACiAJCQkJ
QkNCRkI1M0IwRENEMjlDRjAwMTlCM0U1IC8qIEpTRE9NV2luZG93U2hlbGwuaCAqLywKIAkJCQlC
QzUzREFDNjExNDMzMDY0MDAwRDgxN0UgLyogSlNET01XcmFwcGVyLmNwcCAqLywKIAkJCQk2NUUw
RTk0MzExMzNDODlGMDBCNENCMTAgLyogSlNET01XcmFwcGVyLmggKi8sCisJCQkJRjNENDYxNDYx
MTYxRDUzMjAwQ0EwRDA5IC8qIEpTRXJyb3JIYW5kbGVyLmNwcCAqLywKKwkJCQlGM0Q0NjE0NzEx
NjFENTMyMDBDQTBEMDkgLyogSlNFcnJvckhhbmRsZXIuaCAqLywKIAkJCQlCQzYwOTAxRTBFOTFC
OEVDMDAwQzY4QjUgLyogSlNFdmVudFRhcmdldC5jcHAgKi8sCiAJCQkJQkM2MDkwMUQwRTkxQjhF
QzAwMEM2OEI1IC8qIEpTRXZlbnRUYXJnZXQuaCAqLywKIAkJCQkzMzE0QUNFOTEwODkyMDg2MDAw
RjBFNTYgLyogSlNFeGNlcHRpb25CYXNlLmNwcCAqLywKQEAgLTE2MjY1LDggKzE2MjY3LDYgQEAK
IAkJCQlCMjExMjdBNTBCMzE4Njc3MDAwOUJFNTMgLyogSlNTVkdQT0RUeXBlV3JhcHBlci5oICov
LAogCQkJCUUxQzM2RDMyMEVCMEEwOTQwMDc0MTBCQyAvKiBKU1dvcmtlckNvbnRleHRCYXNlLmNw
cCAqLywKIAkJCQlFMUMzNkQzMzBFQjBBMDk0MDA3NDEwQkMgLyogSlNXb3JrZXJDb250ZXh0QmFz
ZS5oICovLAotCQkJCUYzRDQ2MTQ2MTE2MUQ1MzIwMENBMEQwOSAvKiBKU1dvcmtlckNvbnRleHRF
cnJvckhhbmRsZXIuY3BwICovLAotCQkJCUYzRDQ2MTQ3MTE2MUQ1MzIwMENBMEQwOSAvKiBKU1dv
cmtlckNvbnRleHRFcnJvckhhbmRsZXIuaCAqLywKIAkJCQlCQ0EzNzhCQTBEMTVGNjQyMDBCNzkz
RDYgLyogU2NoZWR1bGVkQWN0aW9uLmNwcCAqLywKIAkJCQlCQ0EzNzhCQjBEMTVGNjQyMDBCNzkz
RDYgLyogU2NoZWR1bGVkQWN0aW9uLmggKi8sCiAJCQkJNDFGMUQyMUUwRUYzNUMyQTAwREE4NzUz
IC8qIFNjcmlwdENhY2hlZEZyYW1lRGF0YS5jcHAgKi8sCkBAIC0xOTY2OSw3ICsxOTY2OSw3IEBA
CiAJCQkJRTFDQUE1QzYwRThCRDIzNjAwQTczRUNBIC8qIEpTV29ya2VyLmggaW4gSGVhZGVycyAq
LywKIAkJCQlFMTgyNTY5MDBFRjJCMDJEMDA5MzMyNDIgLyogSlNXb3JrZXJDb250ZXh0LmggaW4g
SGVhZGVycyAqLywKIAkJCQlFMUMzNkQzNTBFQjBBMDk0MDA3NDEwQkMgLyogSlNXb3JrZXJDb250
ZXh0QmFzZS5oIGluIEhlYWRlcnMgKi8sCi0JCQkJRjNENDYxNDkxMTYxRDUzMjAwQ0EwRDA5IC8q
IEpTV29ya2VyQ29udGV4dEVycm9ySGFuZGxlci5oIGluIEhlYWRlcnMgKi8sCisJCQkJRjNENDYx
NDkxMTYxRDUzMjAwQ0EwRDA5IC8qIEpTRXJyb3JIYW5kbGVyLmggaW4gSGVhZGVycyAqLywKIAkJ
CQlFMUMzNjJFRjBFQUYyQUE5MDA3NDEwQkMgLyogSlNXb3JrZXJMb2NhdGlvbi5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJRTEyNzFBNTgwRUVFQ0RFNDAwRjYxMjEzIC8qIEpTV29ya2VyTmF2aWdhdG9y
LmggaW4gSGVhZGVycyAqLywKIAkJCQlCQzM0OEJENDBEQjdGODA0MDA0QUJBQjkgLyogSlNYTUxI
dHRwUmVxdWVzdC5oIGluIEhlYWRlcnMgKi8sCkBAIC0yMjI1Nyw3ICsyMjI1Nyw3IEBACiAJCQkJ
RTE4MjU2OEYwRUYyQjAyRDAwOTMzMjQyIC8qIEpTV29ya2VyQ29udGV4dC5jcHAgaW4gU291cmNl
cyAqLywKIAkJCQlFMUMzNkQzNDBFQjBBMDk0MDA3NDEwQkMgLyogSlNXb3JrZXJDb250ZXh0QmFz
ZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlFMTgyNThBQzBFRjNDRDcwMDA5MzMyNDIgLyogSlNX
b3JrZXJDb250ZXh0Q3VzdG9tLmNwcCBpbiBTb3VyY2VzICovLAotCQkJCUYzRDQ2MTQ4MTE2MUQ1
MzIwMENBMEQwOSAvKiBKU1dvcmtlckNvbnRleHRFcnJvckhhbmRsZXIuY3BwIGluIFNvdXJjZXMg
Ki8sCisJCQkJRjNENDYxNDgxMTYxRDUzMjAwQ0EwRDA5IC8qIEpTRXJyb3JIYW5kbGVyLmNwcCBp
biBTb3VyY2VzICovLAogCQkJCUUxQ0E1Q0JDMEU4Q0RDQUYwMEU4RUY5MCAvKiBKU1dvcmtlckN1
c3RvbS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlFMUMzNjJGMDBFQUYyQUE5MDA3NDEwQkMgLyog
SlNXb3JrZXJMb2NhdGlvbi5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlFMTI3MUE1OTBFRUVDREU0
MDBGNjEyMTMgLyogSlNXb3JrZXJOYXZpZ2F0b3IuY3BwIGluIFNvdXJjZXMgKi8sCmRpZmYgLS1n
aXQgYS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTQmluZGluZ3NBbGxJbk9uZS5jcHAgYi9XZWJDb3Jl
L2JpbmRpbmdzL2pzL0pTQmluZGluZ3NBbGxJbk9uZS5jcHAKaW5kZXggNmUxY2MxZS4uNTYwMTJm
YSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0JpbmRpbmdzQWxsSW5PbmUuY3Bw
CisrKyBiL1dlYkNvcmUvYmluZGluZ3MvanMvSlNCaW5kaW5nc0FsbEluT25lLmNwcApAQCAtNjQs
NiArNjQsNyBAQAogI2luY2x1ZGUgIkpTRGV2aWNlT3JpZW50YXRpb25FdmVudEN1c3RvbS5jcHAi
CiAjaW5jbHVkZSAiSlNEb2N1bWVudEN1c3RvbS5jcHAiCiAjaW5jbHVkZSAiSlNFbGVtZW50Q3Vz
dG9tLmNwcCIKKyNpbmNsdWRlICJKU0Vycm9ySGFuZGxlci5jcHAiCiAjaW5jbHVkZSAiSlNFdmVu
dEN1c3RvbS5jcHAiCiAjaW5jbHVkZSAiSlNFdmVudExpc3RlbmVyLmNwcCIKICNpbmNsdWRlICJK
U0V2ZW50U291cmNlQ3VzdG9tLmNwcCIKQEAgLTEzMCw3ICsxMzEsNiBAQAogI2luY2x1ZGUgIkpT
V2ViU29ja2V0Q3VzdG9tLmNwcCIKICNpbmNsdWRlICJKU1dvcmtlckNvbnRleHRCYXNlLmNwcCIK
ICNpbmNsdWRlICJKU1dvcmtlckNvbnRleHRDdXN0b20uY3BwIgotI2luY2x1ZGUgIkpTV29ya2Vy
Q29udGV4dEVycm9ySGFuZGxlci5jcHAiCiAjaW5jbHVkZSAiSlNXb3JrZXJDdXN0b20uY3BwIgog
I2luY2x1ZGUgIkpTWE1MSHR0cFJlcXVlc3RDdXN0b20uY3BwIgogI2luY2x1ZGUgIkpTWE1MSHR0
cFJlcXVlc3RVcGxvYWRDdXN0b20uY3BwIgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9iaW5kaW5ncy9q
cy9KU0RPTUJpbmRpbmcuY3BwIGIvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTUJpbmRpbmcuY3Bw
CmluZGV4IDc0YzgxMzEuLjhjYzVhYTYgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvYmluZGluZ3MvanMv
SlNET01CaW5kaW5nLmNwcAorKysgYi9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NQmluZGluZy5j
cHAKQEAgLTUzLDYgKzUzLDcgQEAKICNpbmNsdWRlICJNZXNzYWdlUG9ydC5oIgogI2luY2x1ZGUg
IlJhbmdlRXhjZXB0aW9uLmgiCiAjaW5jbHVkZSAiU2NyaXB0Q2FjaGVkRnJhbWVEYXRhLmgiCisj
aW5jbHVkZSAiU2NyaXB0Q2FsbFN0YWNrLmgiCiAjaW5jbHVkZSAiU2NyaXB0Q29udHJvbGxlci5o
IgogI2luY2x1ZGUgIlNldHRpbmdzLmgiCiAjaW5jbHVkZSAiV2ViQ29yZUpTQ2xpZW50RGF0YS5o
IgpAQCAtNTYxLDcgKzU2Miw3IEBAIHZvaWQgcmVwb3J0RXhjZXB0aW9uKEV4ZWNTdGF0ZSogZXhl
YywgSlNWYWx1ZSBleGNlcHRpb24pCiAgICAgaWYgKCFzY3JpcHRFeGVjdXRpb25Db250ZXh0KQog
ICAgICAgICByZXR1cm47CiAKLSAgICBzY3JpcHRFeGVjdXRpb25Db250ZXh0LT5yZXBvcnRFeGNl
cHRpb24odXN0cmluZ1RvU3RyaW5nKGVycm9yTWVzc2FnZSksIGxpbmVOdW1iZXIsIHVzdHJpbmdU
b1N0cmluZyhleGNlcHRpb25Tb3VyY2VVUkwpKTsKKyAgICBzY3JpcHRFeGVjdXRpb25Db250ZXh0
LT5yZXBvcnRFeGNlcHRpb24oY3VycmVudFdvcmxkKGV4ZWMpLCB1c3RyaW5nVG9TdHJpbmcoZXJy
b3JNZXNzYWdlKSwgbGluZU51bWJlciwgdXN0cmluZ1RvU3RyaW5nKGV4Y2VwdGlvblNvdXJjZVVS
TCksIDApOwogfQogCiB2b2lkIHJlcG9ydEN1cnJlbnRFeGNlcHRpb24oRXhlY1N0YXRlKiBleGVj
KQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0Vycm9ySGFuZGxlci5jcHAgYi9X
ZWJDb3JlL2JpbmRpbmdzL2pzL0pTRXJyb3JIYW5kbGVyLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwLi42NzdiOWFlCi0tLSAvZGV2L251bGwKKysrIGIvV2ViQ29yZS9iaW5k
aW5ncy9qcy9KU0Vycm9ySGFuZGxlci5jcHAKQEAgLTAsMCArMSwxMTYgQEAKKy8qCisgKiBDb3B5
cmlnaHQgKEMpIDIwMTAgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKKyAqIG1ldDoKKyAqCisgKiAgICAgKiBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgorICogICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVw
cm9kdWNlIHRoZSBhYm92ZQorICogY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgorICogaW4gdGhlIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQorICogZGlzdHJpYnV0
aW9uLgorICogICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5h
bWVzIG9mIGl0cworICogY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJv
bW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KKyAqIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVj
aWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUworICogIkFT
IElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QKKyAqIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB
QklMSVRZIEFORCBGSVRORVNTIEZPUgorICogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NM
QUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKKyAqIE9XTkVSIE9SIENPTlRS
SUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAor
ICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElO
RywgQlVUIE5PVAorICogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09E
UyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCisgKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKKyAqIFRIRU9SWSBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29u
ZmlnLmgiCisKKyNpbmNsdWRlICJKU0Vycm9ySGFuZGxlci5oIgorCisjaW5jbHVkZSAiRXJyb3JF
dmVudC5oIgorI2luY2x1ZGUgIkV2ZW50LmgiCisjaW5jbHVkZSAiSlNFdmVudC5oIgorI2luY2x1
ZGUgPHJ1bnRpbWUvSlNMb2NrLmg+CisKK3VzaW5nIG5hbWVzcGFjZSBKU0M7CisKK25hbWVzcGFj
ZSBXZWJDb3JlIHsKKworSlNFcnJvckhhbmRsZXI6OkpTRXJyb3JIYW5kbGVyKEpTT2JqZWN0KiBm
dW5jdGlvbiwgSlNPYmplY3QqIHdyYXBwZXIsIGJvb2wgaXNBdHRyaWJ1dGUsIERPTVdyYXBwZXJX
b3JsZCogaXNvbGF0ZWRXb3JsZCkKKyAgICA6IEpTRXZlbnRMaXN0ZW5lcihmdW5jdGlvbiwgd3Jh
cHBlciwgaXNBdHRyaWJ1dGUsIGlzb2xhdGVkV29ybGQpCit7Cit9CisKK0pTRXJyb3JIYW5kbGVy
Ojp+SlNFcnJvckhhbmRsZXIoKQoreworfQorCit2b2lkIEpTRXJyb3JIYW5kbGVyOjpoYW5kbGVF
dmVudChTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBzY3JpcHRFeGVjdXRpb25Db250ZXh0LCBFdmVu
dCogZXZlbnQpCit7CisgICAgQVNTRVJUKHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQpOworICAgIGlm
ICghc2NyaXB0RXhlY3V0aW9uQ29udGV4dCkKKyAgICAgICAgcmV0dXJuOworCisgICAgQVNTRVJU
KGV2ZW50LT5pc0Vycm9yRXZlbnQoKSk7CisgICAgRXJyb3JFdmVudCogZXJyb3JFdmVudCA9IHN0
YXRpY19jYXN0PEVycm9yRXZlbnQqPihldmVudCk7CisKKyAgICAvLyBJdCBpcyB1bnNlY3VyZSB0
byByZXBvcnQgZXhjZXB0aW9uIGZyb20gb25lIHdvcmxkIHRvIGEgaGFuZGxlciBmcm9tIGFub3Ro
ZXIuCisgICAgaWYgKGlzb2xhdGVkV29ybGQoKSAhPSBlcnJvckV2ZW50LT53cmFwcGVyV29ybGQo
KSkKKyAgICAgICAgcmV0dXJuOworCisgICAgSlNMb2NrIGxvY2soU2lsZW5jZUFzc2VydGlvbnNP
bmx5KTsKKworICAgIEpTT2JqZWN0KiBqc0Z1bmN0aW9uID0gdGhpcy0+anNGdW5jdGlvbihzY3Jp
cHRFeGVjdXRpb25Db250ZXh0KTsKKyAgICBpZiAoIWpzRnVuY3Rpb24pCisgICAgICAgIHJldHVy
bjsKKworICAgIEpTRE9NR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QgPSB0b0pTRE9NR2xvYmFs
T2JqZWN0KHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQsIGlzb2xhdGVkV29ybGQoKSk7CisgICAgaWYg
KCFnbG9iYWxPYmplY3QpCisgICAgICAgIHJldHVybjsKKworICAgIEV4ZWNTdGF0ZSogZXhlYyA9
IGdsb2JhbE9iamVjdC0+Z2xvYmFsRXhlYygpOworCisgICAgQ2FsbERhdGEgY2FsbERhdGE7Cisg
ICAgQ2FsbFR5cGUgY2FsbFR5cGUgPSBqc0Z1bmN0aW9uLT5nZXRDYWxsRGF0YShjYWxsRGF0YSk7
CisKKyAgICBpZiAoY2FsbFR5cGUgIT0gQ2FsbFR5cGVOb25lKSB7CisKKyAgICAgICAgcmVmKCk7
CisKKyAgICAgICAgRXZlbnQqIHNhdmVkRXZlbnQgPSBnbG9iYWxPYmplY3QtPmN1cnJlbnRFdmVu
dCgpOworICAgICAgICBnbG9iYWxPYmplY3QtPnNldEN1cnJlbnRFdmVudChldmVudCk7CisKKyAg
ICAgICAgTWFya2VkQXJndW1lbnRCdWZmZXIgYXJnczsKKyAgICAgICAgYXJncy5hcHBlbmQoanNT
dHJpbmcoZXhlYywgZXJyb3JFdmVudC0+bWVzc2FnZSgpKSk7CisgICAgICAgIGFyZ3MuYXBwZW5k
KGpzU3RyaW5nKGV4ZWMsIGVycm9yRXZlbnQtPmZpbGVuYW1lKCkpKTsKKyAgICAgICAgYXJncy5h
cHBlbmQoanNOdW1iZXIoZXhlYywgZXJyb3JFdmVudC0+bGluZW5vKCkpKTsKKworICAgICAgICBK
U0dsb2JhbERhdGEqIGdsb2JhbERhdGEgPSBnbG9iYWxPYmplY3QtPmdsb2JhbERhdGEoKTsKKyAg
ICAgICAgRHluYW1pY0dsb2JhbE9iamVjdFNjb3BlIGdsb2JhbE9iamVjdFNjb3BlKGV4ZWMsIGds
b2JhbERhdGEtPmR5bmFtaWNHbG9iYWxPYmplY3QgPyBnbG9iYWxEYXRhLT5keW5hbWljR2xvYmFs
T2JqZWN0IDogZ2xvYmFsT2JqZWN0KTsgICAgCisKKyAgICAgICAgSlNWYWx1ZSB0aGlzVmFsdWUg
PSBnbG9iYWxPYmplY3QtPnRvVGhpc09iamVjdChleGVjKTsKKworICAgICAgICBnbG9iYWxEYXRh
LT50aW1lb3V0Q2hlY2tlci5zdGFydCgpOworICAgICAgICBKU1ZhbHVlIHJldHVyblZhbHVlID0g
SlNDOjpjYWxsKGV4ZWMsIGpzRnVuY3Rpb24sIGNhbGxUeXBlLCBjYWxsRGF0YSwgdGhpc1ZhbHVl
LCBhcmdzKTsKKyAgICAgICAgZ2xvYmFsRGF0YS0+dGltZW91dENoZWNrZXIuc3RvcCgpOworCisg
ICAgICAgIGdsb2JhbE9iamVjdC0+c2V0Q3VycmVudEV2ZW50KHNhdmVkRXZlbnQpOworCisgICAg
ICAgIGlmIChleGVjLT5oYWRFeGNlcHRpb24oKSkKKyAgICAgICAgICAgIHJlcG9ydEN1cnJlbnRF
eGNlcHRpb24oZXhlYyk7CisgICAgICAgIGVsc2UgeworICAgICAgICAgICAgYm9vbCByZXR2YWxi
b29sOworICAgICAgICAgICAgaWYgKHJldHVyblZhbHVlLmdldEJvb2xlYW4ocmV0dmFsYm9vbCkg
JiYgIXJldHZhbGJvb2wpCisgICAgICAgICAgICAgICAgZXZlbnQtPnByZXZlbnREZWZhdWx0KCk7
CisgICAgICAgIH0KKworICAgICAgICBkZXJlZigpOworICAgIH0KK30KKworfSAvLyBuYW1lc3Bh
Y2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0Vycm9ySGFuZGxl
ci5oIGIvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0Vycm9ySGFuZGxlci5oCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAuLjk1N2ZkODEKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJDb3Jl
L2JpbmRpbmdzL2pzL0pTRXJyb3JIYW5kbGVyLmgKQEAgLTAsMCArMSw2NCBAQAorLyoKKyAqIENv
cHlyaWdodCAoQykgMjAxMCBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQorICogbWV0OgorICoKKyAqICAgICAqIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlCisgKiBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCisgKiBpbiB0aGUgZG9jdW1lbnRh
dGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCisgKiBkaXN0cmli
dXRpb24uCisgKiAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUg
bmFtZXMgb2YgaXRzCisgKiBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBw
cm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQorICogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNw
ZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElT
IFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCisgKiAi
QVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVAorICogTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFO
VEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCisgKiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElT
Q0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAorICogT1dORVIgT1IgQ09O
VFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUws
CisgKiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVE
SU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdP
T0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKKyAqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJV
U0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQorICogVEhFT1JZ
IE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1Ig
VE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBB
TlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgSlNF
cnJvckhhbmRsZXJfaAorI2RlZmluZSBKU0Vycm9ySGFuZGxlcl9oCisKKyNpbmNsdWRlICJKU0V2
ZW50TGlzdGVuZXIuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBKU0Vycm9ySGFu
ZGxlciA6IHB1YmxpYyBKU0V2ZW50TGlzdGVuZXIgeworcHVibGljOgorICAgIHN0YXRpYyBQYXNz
UmVmUHRyPEpTRXJyb3JIYW5kbGVyPiBjcmVhdGUoSlNDOjpKU09iamVjdCogbGlzdGVuZXIsIEpT
Qzo6SlNPYmplY3QqIHdyYXBwZXIsIGJvb2wgaXNBdHRyaWJ1dGUsIERPTVdyYXBwZXJXb3JsZCog
aXNvbGF0ZWRXb3JsZCkKKyAgICB7CisgICAgICAgIHJldHVybiBhZG9wdFJlZihuZXcgSlNFcnJv
ckhhbmRsZXIobGlzdGVuZXIsIHdyYXBwZXIsIGlzQXR0cmlidXRlLCBpc29sYXRlZFdvcmxkKSk7
CisgICAgfQorCisgICAgdmlydHVhbCB+SlNFcnJvckhhbmRsZXIoKTsKKworcHJpdmF0ZToKKyAg
ICBKU0Vycm9ySGFuZGxlcihKU0M6OkpTT2JqZWN0KiBmdW5jdGlvbiwgSlNDOjpKU09iamVjdCog
d3JhcHBlciwgYm9vbCBpc0F0dHJpYnV0ZSwgRE9NV3JhcHBlcldvcmxkKiBpc29sYXRlZFdvcmxk
KTsKKyAgICB2aXJ0dWFsIHZvaWQgaGFuZGxlRXZlbnQoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCos
IEV2ZW50Kik7Cit9OworCisvLyBDcmVhdGVzIGEgSlMgRXZlbnRMaXN0ZW5lciBmb3IgIm9uZXJy
b3IiIGV2ZW50IGhhbmRsZXIgaW4gd29ya2VyIGNvbnRleHQuIEl0IGhhcyBjdXN0b20gaW1wbGVt
ZW50YXRpb24gYmVjYXVzZQorLy8gdW5saWtlIG90aGVyIGV2ZW50IGxpc3RlbmVycyBpdCBhY2Nl
cHRzIHRocmVlIHBhcmFtZXRlcnMuCitpbmxpbmUgUGFzc1JlZlB0cjxKU0Vycm9ySGFuZGxlcj4g
Y3JlYXRlSlNFcnJvckhhbmRsZXIoSlNDOjpFeGVjU3RhdGUqIGV4ZWMsIEpTQzo6SlNWYWx1ZSBs
aXN0ZW5lciwgSlNDOjpKU09iamVjdCogd3JhcHBlcikKK3sKKyAgICBpZiAoIWxpc3RlbmVyLmlz
T2JqZWN0KCkpCisgICAgICAgIHJldHVybiAwOworCisgICAgcmV0dXJuIEpTRXJyb3JIYW5kbGVy
OjpjcmVhdGUoYXNPYmplY3QobGlzdGVuZXIpLCB3cmFwcGVyLCB0cnVlLCBjdXJyZW50V29ybGQo
ZXhlYykpOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBKU0Vycm9y
SGFuZGxlcl9oCmRpZmYgLS1naXQgYS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTV29ya2VyQ29udGV4
dEVycm9ySGFuZGxlci5jcHAgYi9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTV29ya2VyQ29udGV4dEVy
cm9ySGFuZGxlci5jcHAKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGFkM2Y1ZWMuLjAw
MDAwMDAKLS0tIGEvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1dvcmtlckNvbnRleHRFcnJvckhhbmRs
ZXIuY3BwCisrKyAvZGV2L251bGwKQEAgLTEsMTE2ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQg
KEMpIDIwMTAgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucyBhcmUKLSAqIG1ldDoKLSAqCi0gKiAgICAgKiBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgotICogICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZQotICogY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgotICogaW4gdGhlIGRvY3VtZW50YXRpb24gYW5k
L29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQotICogZGlzdHJpYnV0aW9uLgot
ICogICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9m
IGl0cwotICogY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBw
cm9kdWN0cyBkZXJpdmVkIGZyb20KLSAqIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBw
cmlvciB3cml0dGVuIHBlcm1pc3Npb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUwotICogIkFTIElTIiBB
TkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QK
LSAqIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZ
IEFORCBGSVRORVNTIEZPUgotICogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQu
IElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKLSAqIE9XTkVSIE9SIENPTlRSSUJVVE9S
UyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAotICogU1BF
Q0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVU
IE5PVAotICogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBT
RVJWSUNFUzsgTE9TUyBPRiBVU0UsCi0gKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJ
TlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKLSAqIFRIRU9SWSBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAq
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRQotICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaW5jbHVkZSAiY29uZmlnLmgi
Ci0KLSNpZiBFTkFCTEUoV09SS0VSUykKLQotI2luY2x1ZGUgIkpTV29ya2VyQ29udGV4dEVycm9y
SGFuZGxlci5oIgotCi0jaW5jbHVkZSAiRXJyb3JFdmVudC5oIgotI2luY2x1ZGUgIkV2ZW50Lmgi
Ci0jaW5jbHVkZSAiSlNFdmVudC5oIgotI2luY2x1ZGUgPHJ1bnRpbWUvSlNMb2NrLmg+Ci0KLXVz
aW5nIG5hbWVzcGFjZSBKU0M7Ci0KLW5hbWVzcGFjZSBXZWJDb3JlIHsKLQotSlNXb3JrZXJDb250
ZXh0RXJyb3JIYW5kbGVyOjpKU1dvcmtlckNvbnRleHRFcnJvckhhbmRsZXIoSlNPYmplY3QqIGZ1
bmN0aW9uLCBKU09iamVjdCogd3JhcHBlciwgYm9vbCBpc0F0dHJpYnV0ZSwgRE9NV3JhcHBlcldv
cmxkKiBpc29sYXRlZFdvcmxkKQotICAgIDogSlNFdmVudExpc3RlbmVyKGZ1bmN0aW9uLCB3cmFw
cGVyLCBpc0F0dHJpYnV0ZSwgaXNvbGF0ZWRXb3JsZCkKLXsKLX0KLQotSlNXb3JrZXJDb250ZXh0
RXJyb3JIYW5kbGVyOjp+SlNXb3JrZXJDb250ZXh0RXJyb3JIYW5kbGVyKCkKLXsKLX0KLQotdm9p
ZCBKU1dvcmtlckNvbnRleHRFcnJvckhhbmRsZXI6OmhhbmRsZUV2ZW50KFNjcmlwdEV4ZWN1dGlv
bkNvbnRleHQqIHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQsIEV2ZW50KiBldmVudCkKLXsKLSAgICBB
U1NFUlQoc2NyaXB0RXhlY3V0aW9uQ29udGV4dCk7Ci0gICAgaWYgKCFzY3JpcHRFeGVjdXRpb25D
b250ZXh0KQotICAgICAgICByZXR1cm47Ci0KLSAgICBKU0xvY2sgbG9jayhTaWxlbmNlQXNzZXJ0
aW9uc09ubHkpOwotCi0gICAgSlNPYmplY3QqIGpzRnVuY3Rpb24gPSB0aGlzLT5qc0Z1bmN0aW9u
KHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQpOwotICAgIGlmICghanNGdW5jdGlvbikKLSAgICAgICAg
cmV0dXJuOwotCi0gICAgSlNET01HbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCA9IHRvSlNET01H
bG9iYWxPYmplY3Qoc2NyaXB0RXhlY3V0aW9uQ29udGV4dCwgaXNvbGF0ZWRXb3JsZCgpKTsKLSAg
ICBpZiAoIWdsb2JhbE9iamVjdCkKLSAgICAgICAgcmV0dXJuOwotCi0gICAgRXhlY1N0YXRlKiBl
eGVjID0gZ2xvYmFsT2JqZWN0LT5nbG9iYWxFeGVjKCk7Ci0KLSAgICBDYWxsRGF0YSBjYWxsRGF0
YTsKLSAgICBDYWxsVHlwZSBjYWxsVHlwZSA9IGpzRnVuY3Rpb24tPmdldENhbGxEYXRhKGNhbGxE
YXRhKTsKLQotICAgIGlmIChjYWxsVHlwZSAhPSBDYWxsVHlwZU5vbmUpIHsKLQotICAgICAgICBy
ZWYoKTsKLQotICAgICAgICBFdmVudCogc2F2ZWRFdmVudCA9IGdsb2JhbE9iamVjdC0+Y3VycmVu
dEV2ZW50KCk7Ci0gICAgICAgIGdsb2JhbE9iamVjdC0+c2V0Q3VycmVudEV2ZW50KGV2ZW50KTsK
LQotICAgICAgICBBU1NFUlQoZXZlbnQtPmlzRXJyb3JFdmVudCgpKTsKLSAgICAgICAgRXJyb3JF
dmVudCogZXJyb3JFdmVudCA9IHN0YXRpY19jYXN0PEVycm9yRXZlbnQqPihldmVudCk7Ci0KLSAg
ICAgICAgTWFya2VkQXJndW1lbnRCdWZmZXIgYXJnczsKLSAgICAgICAgYXJncy5hcHBlbmQoanNT
dHJpbmcoZXhlYywgZXJyb3JFdmVudC0+bWVzc2FnZSgpKSk7Ci0gICAgICAgIGFyZ3MuYXBwZW5k
KGpzU3RyaW5nKGV4ZWMsIGVycm9yRXZlbnQtPmZpbGVuYW1lKCkpKTsKLSAgICAgICAgYXJncy5h
cHBlbmQoanNOdW1iZXIoZXhlYywgZXJyb3JFdmVudC0+bGluZW5vKCkpKTsKLQotICAgICAgICBK
U0dsb2JhbERhdGEqIGdsb2JhbERhdGEgPSBnbG9iYWxPYmplY3QtPmdsb2JhbERhdGEoKTsKLSAg
ICAgICAgRHluYW1pY0dsb2JhbE9iamVjdFNjb3BlIGdsb2JhbE9iamVjdFNjb3BlKGV4ZWMsIGds
b2JhbERhdGEtPmR5bmFtaWNHbG9iYWxPYmplY3QgPyBnbG9iYWxEYXRhLT5keW5hbWljR2xvYmFs
T2JqZWN0IDogZ2xvYmFsT2JqZWN0KTsgICAgCi0KLSAgICAgICAgSlNWYWx1ZSB0aGlzVmFsdWUg
PSBnbG9iYWxPYmplY3QtPnRvVGhpc09iamVjdChleGVjKTsKLQotICAgICAgICBnbG9iYWxEYXRh
LT50aW1lb3V0Q2hlY2tlci5zdGFydCgpOwotICAgICAgICBKU1ZhbHVlIHJldHVyblZhbHVlID0g
SlNDOjpjYWxsKGV4ZWMsIGpzRnVuY3Rpb24sIGNhbGxUeXBlLCBjYWxsRGF0YSwgdGhpc1ZhbHVl
LCBhcmdzKTsKLSAgICAgICAgZ2xvYmFsRGF0YS0+dGltZW91dENoZWNrZXIuc3RvcCgpOwotCi0g
ICAgICAgIGdsb2JhbE9iamVjdC0+c2V0Q3VycmVudEV2ZW50KHNhdmVkRXZlbnQpOwotCi0gICAg
ICAgIGlmIChleGVjLT5oYWRFeGNlcHRpb24oKSkKLSAgICAgICAgICAgIHJlcG9ydEN1cnJlbnRF
eGNlcHRpb24oZXhlYyk7Ci0gICAgICAgIGVsc2UgewotICAgICAgICAgICAgYm9vbCByZXR2YWxi
b29sOwotICAgICAgICAgICAgaWYgKHJldHVyblZhbHVlLmdldEJvb2xlYW4ocmV0dmFsYm9vbCkg
JiYgIXJldHZhbGJvb2wpCi0gICAgICAgICAgICAgICAgZXZlbnQtPnByZXZlbnREZWZhdWx0KCk7
Ci0gICAgICAgIH0KLQotICAgICAgICBkZXJlZigpOwotICAgIH0KLX0KLQotfSAvLyBuYW1lc3Bh
Y2UgV2ViQ29yZQotCi0jZW5kaWYgLy8gRU5BQkxFKFdPUktFUlMpCmRpZmYgLS1naXQgYS9XZWJD
b3JlL2JpbmRpbmdzL2pzL0pTV29ya2VyQ29udGV4dEVycm9ySGFuZGxlci5oIGIvV2ViQ29yZS9i
aW5kaW5ncy9qcy9KU1dvcmtlckNvbnRleHRFcnJvckhhbmRsZXIuaApkZWxldGVkIGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggYTE4ODI5OS4uMDAwMDAwMAotLS0gYS9XZWJDb3JlL2JpbmRpbmdzL2pz
L0pTV29ya2VyQ29udGV4dEVycm9ySGFuZGxlci5oCisrKyAvZGV2L251bGwKQEAgLTEsNjQgKzAs
MCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMCBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQotICogbWV0OgotICoK
LSAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUg
YWJvdmUgY29weXJpZ2h0Ci0gKiBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmlu
YXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCi0gKiBjb3B5cmlnaHQgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCi0gKiBp
biB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlCi0gKiBkaXN0cmlidXRpb24uCi0gKiAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2ds
ZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCi0gKiBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQg
dG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQotICogdGhpcyBzb2Z0
d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KLSAqCi0gKiBU
SElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09O
VFJJQlVUT1JTCi0gKiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVAotICogTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCi0gKiBBIFBBUlRJQ1VMQVIg
UFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAot
ICogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsCi0gKiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwg
REFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCi0gKiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBP
RiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKLSAqIERBVEEsIE9S
IFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9O
IEFOWQotICogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0gKiBPRiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICov
Ci0KLSNpZm5kZWYgSlNXb3JrZXJDb250ZXh0RXJyb3JIYW5kbGVyX2gKLSNkZWZpbmUgSlNXb3Jr
ZXJDb250ZXh0RXJyb3JIYW5kbGVyX2gKLQotI2luY2x1ZGUgIkpTRXZlbnRMaXN0ZW5lci5oIgot
Ci1uYW1lc3BhY2UgV2ViQ29yZSB7Ci0KLWNsYXNzIEpTV29ya2VyQ29udGV4dEVycm9ySGFuZGxl
ciA6IHB1YmxpYyBKU0V2ZW50TGlzdGVuZXIgewotcHVibGljOgotICAgIHN0YXRpYyBQYXNzUmVm
UHRyPEpTV29ya2VyQ29udGV4dEVycm9ySGFuZGxlcj4gY3JlYXRlKEpTQzo6SlNPYmplY3QqIGxp
c3RlbmVyLCBKU0M6OkpTT2JqZWN0KiB3cmFwcGVyLCBib29sIGlzQXR0cmlidXRlLCBET01XcmFw
cGVyV29ybGQqIGlzb2xhdGVkV29ybGQpCi0gICAgewotICAgICAgICByZXR1cm4gYWRvcHRSZWYo
bmV3IEpTV29ya2VyQ29udGV4dEVycm9ySGFuZGxlcihsaXN0ZW5lciwgd3JhcHBlciwgaXNBdHRy
aWJ1dGUsIGlzb2xhdGVkV29ybGQpKTsKLSAgICB9Ci0KLSAgICB2aXJ0dWFsIH5KU1dvcmtlckNv
bnRleHRFcnJvckhhbmRsZXIoKTsKLQotcHJpdmF0ZToKLSAgICBKU1dvcmtlckNvbnRleHRFcnJv
ckhhbmRsZXIoSlNDOjpKU09iamVjdCogZnVuY3Rpb24sIEpTQzo6SlNPYmplY3QqIHdyYXBwZXIs
IGJvb2wgaXNBdHRyaWJ1dGUsIERPTVdyYXBwZXJXb3JsZCogaXNvbGF0ZWRXb3JsZCk7Ci0gICAg
dmlydHVhbCB2b2lkIGhhbmRsZUV2ZW50KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqLCBFdmVudCop
OwotfTsKLQotLy8gQ3JlYXRlcyBhIEpTIEV2ZW50TGlzdGVuZXIgZm9yICJvbmVycm9yIiBldmVu
dCBoYW5kbGVyIGluIHdvcmtlciBjb250ZXh0LiBJdCBoYXMgY3VzdG9tIGltcGxlbWVudGF0aW9u
IGJlY2F1c2UKLS8vIHVubGlrZSBvdGhlciBldmVudCBsaXN0ZW5lcnMgaXQgYWNjZXB0cyB0aHJl
ZSBwYXJhbWV0ZXJzLgotaW5saW5lIFBhc3NSZWZQdHI8SlNXb3JrZXJDb250ZXh0RXJyb3JIYW5k
bGVyPiBjcmVhdGVKU1dvcmtlckNvbnRleHRFcnJvckhhbmRsZXIoSlNDOjpFeGVjU3RhdGUqIGV4
ZWMsIEpTQzo6SlNWYWx1ZSBsaXN0ZW5lciwgSlNDOjpKU09iamVjdCogd3JhcHBlcikKLXsKLSAg
ICBpZiAoIWxpc3RlbmVyLmlzT2JqZWN0KCkpCi0gICAgICAgIHJldHVybiAwOwotCi0gICAgcmV0
dXJuIEpTV29ya2VyQ29udGV4dEVycm9ySGFuZGxlcjo6Y3JlYXRlKGFzT2JqZWN0KGxpc3RlbmVy
KSwgd3JhcHBlciwgdHJ1ZSwgY3VycmVudFdvcmxkKGV4ZWMpKTsKLX0KLQotfSAvLyBuYW1lc3Bh
Y2UgV2ViQ29yZQotCi0jZW5kaWYgLy8gSlNXb3JrZXJDb250ZXh0RXJyb3JIYW5kbGVyX2gKZGlm
ZiAtLWdpdCBhL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG0gYi9X
ZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtCmluZGV4IDFhMTE0YTQu
LjA5ZThjMDcgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJh
dG9ySlMucG0KKysrIGIvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5w
bQpAQCAtMTcxNCw5ICsxNzE0LDkgQEAgc3ViIEdlbmVyYXRlSW1wbGVtZW50YXRpb24KICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgSlNET01H
bG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCA9IGNhc3RlZFRoaXMtPmdsb2JhbE9iamVjdCgpO1xu
Iik7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgICRpbXBsQ2xhc3NOYW1lKiBpbXAgPSBzdGF0
aWNfY2FzdDwkaW1wbENsYXNzTmFtZSo+KHN0YXRpY19jYXN0PCRjbGFzc05hbWUqPih0aGlzT2Jq
ZWN0KS0+aW1wbCgpKTtcbiIpOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICgkaW50
ZXJmYWNlTmFtZSBlcSAiV29ya2VyQ29udGV4dCIgYW5kICRuYW1lIGVxICJvbmVycm9yIikgewot
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkaW1wbEluY2x1ZGVzeyJKU1dvcmtlckNv
bnRleHRFcnJvckhhbmRsZXIuaCJ9ID0gMTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgaW1wLT5zZXQkaW1wbFNldHRlckZ1bmN0aW9uTmFt
ZShjcmVhdGVKU1dvcmtlckNvbnRleHRFcnJvckhhbmRsZXIoZXhlYywgdmFsdWUsIHRoaXNPYmpl
Y3QpKTtcbiIpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICgoKCRpbnRlcmZhY2VO
YW1lIGVxICJET01XaW5kb3ciKSBvciAoJGludGVyZmFjZU5hbWUgZXEgIldvcmtlckNvbnRleHQi
KSkgYW5kICRuYW1lIGVxICJvbmVycm9yIikgeworICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAkaW1wbEluY2x1ZGVzeyJKU0Vycm9ySGFuZGxlci5oIn0gPSAxOworICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICBpbXAtPnNldCRpbXBs
U2V0dGVyRnVuY3Rpb25OYW1lKGNyZWF0ZUpTRXJyb3JIYW5kbGVyKGV4ZWMsIHZhbHVlLCB0aGlz
T2JqZWN0KSk7XG4iKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgewogICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgR2VuZXJhdGVB
dHRyaWJ1dGVFdmVudExpc3RlbmVyQ2FsbCgkY2xhc3NOYW1lLCAkaW1wbFNldHRlckZ1bmN0aW9u
TmFtZSwgJHdpbmRvd0V2ZW50TGlzdGVuZXIpKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICB9CmRpZmYgLS1naXQgYS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvclY4
LnBtIGIvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JWOC5wbQpvbGQgbW9k
ZSAxMDA2NDQKbmV3IG1vZGUgMTAwNzU1CmluZGV4IGY3NGYyYjEuLmJiNDU0YzYKLS0tIGEvV2Vi
Q29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JWOC5wbQorKysgYi9XZWJDb3JlL2Jp
bmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvclY4LnBtCkBAIC05OTUsNiArOTk1LDEwIEBAIEVO
RAogICAgICAgICAgICAgICAgICRpbXBsSW5jbHVkZXN7IlY4RXZlbnRMaXN0ZW5lckxpc3QuaCJ9
ID0gMTsKICAgICAgICAgICAgICAgICAkaW1wbEluY2x1ZGVzeyJWOFdvcmtlckNvbnRleHRFcnJv
ckhhbmRsZXIuaCJ9ID0gMTsKICAgICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudERlY2xz
LCAiICAgIGltcC0+c2V0JGltcGxTZXR0ZXJGdW5jdGlvbk5hbWUoVjhFdmVudExpc3RlbmVyTGlz
dDo6ZmluZE9yQ3JlYXRlV3JhcHBlcjxWOFdvcmtlckNvbnRleHRFcnJvckhhbmRsZXI+KHZhbHVl
LCB0cnVlKSIpOworICAgICAgICAgICAgfSBlbHNpZiAoJGludGVyZmFjZU5hbWUgZXEgIkRPTVdp
bmRvdyIgYW5kICRhdHRyaWJ1dGUtPnNpZ25hdHVyZS0+bmFtZSBlcSAib25lcnJvciIpIHsKKyAg
ICAgICAgICAgICAgICAkaW1wbEluY2x1ZGVzeyJWOEV2ZW50TGlzdGVuZXJMaXN0LmgifSA9IDE7
CisgICAgICAgICAgICAgICAgJGltcGxJbmNsdWRlc3siVjhXaW5kb3dFcnJvckhhbmRsZXIuaCJ9
ID0gMTsKKyAgICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudERlY2xzLCAiICAgIGltcC0+
c2V0JGltcGxTZXR0ZXJGdW5jdGlvbk5hbWUoVjhFdmVudExpc3RlbmVyTGlzdDo6ZmluZE9yQ3Jl
YXRlV3JhcHBlcjxWOFdpbmRvd0Vycm9ySGFuZGxlcj4odmFsdWUsIHRydWUpIik7CiAgICAgICAg
ICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50RGVjbHMsICIg
ICAgaW1wLT5zZXQkaW1wbFNldHRlckZ1bmN0aW9uTmFtZShWOERPTVdyYXBwZXI6OmdldEV2ZW50
TGlzdGVuZXIodmFsdWUsIHRydWUsIExpc3RlbmVyRmluZE9yQ3JlYXRlKSIpOwogICAgICAgICAg
ICAgfQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9iaW5kaW5ncy92OC9ET01XcmFwcGVyV29ybGQuY3Bw
IGIvV2ViQ29yZS9iaW5kaW5ncy92OC9ET01XcmFwcGVyV29ybGQuY3BwCm9sZCBtb2RlIDEwMDY0
NApuZXcgbW9kZSAxMDA3NTUKaW5kZXggMWU5NDI5Zi4uMDUwOTlhZAotLS0gYS9XZWJDb3JlL2Jp
bmRpbmdzL3Y4L0RPTVdyYXBwZXJXb3JsZC5jcHAKKysrIGIvV2ViQ29yZS9iaW5kaW5ncy92OC9E
T01XcmFwcGVyV29ybGQuY3BwCkBAIC0zMSw2ICszMSwxMSBAQAogI2luY2x1ZGUgImNvbmZpZy5o
IgogI2luY2x1ZGUgIkRPTVdyYXBwZXJXb3JsZC5oIgogCisjaW5jbHVkZSAiRnJhbWUuaCIKKyNp
bmNsdWRlICJTY3JpcHRFeGVjdXRpb25Db250ZXh0LmgiCisjaW5jbHVkZSAiVjhJc29sYXRlZENv
bnRleHQuaCIKKyNpbmNsdWRlICJWOFByb3h5LmgiCisjaW5jbHVkZSAiV29ybGRDb250ZXh0SGFu
ZGxlLmgiCiAjaW5jbHVkZSA8d3RmL1N0ZExpYkV4dHJhcy5oPgogI2luY2x1ZGUgPHd0Zi9UaHJl
YWRpbmcuaD4KIApAQCAtNDgsNCArNTMsMzAgQEAgRE9NV3JhcHBlcldvcmxkKiBtYWluVGhyZWFk
Tm9ybWFsV29ybGQoKQogICAgIHJldHVybiBjYWNoZWROb3JtYWxXb3JsZC5nZXQoKTsKIH0KIAor
RE9NV3JhcHBlcldvcmxkKiBlbnRlcmVkQ29udGV4dFdvcmxkKCkKK3sKKyAgICB2ODo6SGFuZGxl
U2NvcGUgaGFuZGxlU2NvcGU7CisgICAgdjg6OkhhbmRsZTx2ODo6Q29udGV4dD4gZW50ZXJlZENv
dG5leHQgPSB2ODo6Q29udGV4dDo6R2V0RW50ZXJlZCgpOworICAgIGlmIChlbnRlcmVkQ290bmV4
dC5Jc0VtcHR5KCkpCisgICAgICAgIHJldHVybiAwOworICAgIEZyYW1lKiBmcmFtZSA9IFY4UHJv
eHk6OnJldHJpZXZlRnJhbWUoZW50ZXJlZENvdG5leHQpOworICAgIFY4UHJveHkqIHByb3h5ID0g
VjhQcm94eTo6cmV0cmlldmUoZnJhbWUpOworICAgIGlmIChwcm94eS0+bWFpbldvcmxkQ29udGV4
dCgpID09IGVudGVyZWRDb3RuZXh0KQorICAgICAgICByZXR1cm4gbWFpblRocmVhZE5vcm1hbFdv
cmxkKCk7CisgICAgcmV0dXJuIFY4SXNvbGF0ZWRDb250ZXh0OjpnZXRFbnRlcmVkKCktPndvcmxk
KCk7Cit9CisKK0RPTVdyYXBwZXJXb3JsZCogY29udGV4dFdvcmxkKFNjcmlwdEV4ZWN1dGlvbkNv
bnRleHQqIHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQsIGNvbnN0IFdvcmxkQ29udGV4dEhhbmRsZSYg
Y29udGV4dEhhbmRsZSkKK3sKKyAgICBBU1NFUlQoc2NyaXB0RXhlY3V0aW9uQ29udGV4dC0+aXNE
b2N1bWVudCgpKTsKKyAgICBpZiAoVjhQcm94eSogcHJveHkgPSBWOFByb3h5OjpyZXRyaWV2ZShz
Y3JpcHRFeGVjdXRpb25Db250ZXh0KSkgeworICAgICAgICB2ODo6SGFuZGxlU2NvcGUgaGFuZGxl
U2NvcGU7CisgICAgICAgIHY4OjpMb2NhbDx2ODo6Q29udGV4dD4gY29udGV4dCA9IGNvbnRleHRI
YW5kbGUuYWRqdXN0ZWRDb250ZXh0KHByb3h5KTsKKyAgICAgICAgdjg6OkNvbnRleHQ6OlNjb3Bl
IGNvbnRleHRTY29wZShjb250ZXh0KTsKKyAgICAgICAgcmV0dXJuIGVudGVyZWRDb250ZXh0V29y
bGQoKTsKKyAgICB9CisgICAgcmV0dXJuIDA7Cit9CisKKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29y
ZQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9iaW5kaW5ncy92OC9ET01XcmFwcGVyV29ybGQuaCBiL1dl
YkNvcmUvYmluZGluZ3MvdjgvRE9NV3JhcHBlcldvcmxkLmgKb2xkIG1vZGUgMTAwNjQ0Cm5ldyBt
b2RlIDEwMDc1NQppbmRleCAyYTlkZjMwLi4yZTZkYmI2Ci0tLSBhL1dlYkNvcmUvYmluZGluZ3Mv
djgvRE9NV3JhcHBlcldvcmxkLmgKKysrIGIvV2ViQ29yZS9iaW5kaW5ncy92OC9ET01XcmFwcGVy
V29ybGQuaApAQCAtMzcsNiArMzcsOSBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKK2NsYXNz
IFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQ7CitjbGFzcyBXb3JsZENvbnRleHRIYW5kbGU7CisKIC8v
IFRoaXMgY2xhc3MgcmVwcmVzZW50IGEgY29sbGVjdGlvbiBvZiBET00gd3JhcHBlcnMgZm9yIGEg
c3BlY2lmaWMgd29ybGQuCiAvLyBUaGUgYmFzZSBjbGFzcyBpcyBwcmV0dHkgYm9yaW5nIGJlY2F1
c2UgdGhlIHdyYXBwZXJzIGFyZSBhY3R1YWxseSBzdG9yZWQKIC8vIHN0YXRpY2FsbHkgaW4gVjhE
T01NYXAgYW5kIGdhcmJhZ2UgY29sbGVjdGVkIGJ5IFY4IGl0c2VsZi4KQEAgLTUxLDYgKzU0LDkg
QEAgcHJvdGVjdGVkOgogCiBET01XcmFwcGVyV29ybGQqIG1haW5UaHJlYWROb3JtYWxXb3JsZCgp
OwogCitET01XcmFwcGVyV29ybGQqIGVudGVyZWRDb250ZXh0V29ybGQoKTsKK0RPTVdyYXBwZXJX
b3JsZCogY29udGV4dFdvcmxkKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqLCBjb25zdCBXb3JsZENv
bnRleHRIYW5kbGUmKTsKKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCiAjZW5kaWYgLy8gRE9N
V3JhcHBlcldvcmxkX2gKZGlmZiAtLWdpdCBhL1dlYkNvcmUvYmluZGluZ3MvdjgvVjhDb25zb2xl
TWVzc2FnZS5jcHAgYi9XZWJDb3JlL2JpbmRpbmdzL3Y4L1Y4Q29uc29sZU1lc3NhZ2UuY3BwCm9s
ZCBtb2RlIDEwMDY0NApuZXcgbW9kZSAxMDA3NTUKaW5kZXggOGI2YmIxNy4uNGY4NDJlMwotLS0g
YS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1Y4Q29uc29sZU1lc3NhZ2UuY3BwCisrKyBiL1dlYkNvcmUv
YmluZGluZ3MvdjgvVjhDb25zb2xlTWVzc2FnZS5jcHAKQEAgLTUzLDcgKzUzLDE0IEBAIFY4Q29u
c29sZU1lc3NhZ2U6OlY4Q29uc29sZU1lc3NhZ2UoY29uc3QgU3RyaW5nJiBzdHJpbmcsIGNvbnN0
IFN0cmluZyYgc291cmNlSUQsCiAKIHZvaWQgVjhDb25zb2xlTWVzc2FnZTo6ZGlzcGF0Y2hOb3co
UGFnZSogcGFnZSkKIHsKLSAgICBkaXNwYXRjaE5vdyhwYWdlLCAwKTsKKyAgICBBU1NFUlQocGFn
ZSk7CisKKyAgICAvLyBQcm9jZXNzIGFueSBkZWxheWVkIG1lc3NhZ2VzIHRvIG1ha2Ugc3VyZSB0
aGF0IG1lc3NhZ2VzCisgICAgLy8gYXBwZWFyIGluIHRoZSByaWdodCBvcmRlciBpbiB0aGUgY29u
c29sZS4KKyAgICBwcm9jZXNzRGVsYXllZCgpOworCisgICAgQ29uc29sZSogY29uc29sZSA9IHBh
Z2UtPm1haW5GcmFtZSgpLT5kb21XaW5kb3coKS0+Y29uc29sZSgpOworICAgIGNvbnNvbGUtPmFk
ZE1lc3NhZ2UoSlNNZXNzYWdlU291cmNlLCBMb2dNZXNzYWdlVHlwZSwgRXJyb3JNZXNzYWdlTGV2
ZWwsIG1fc3RyaW5nLCBtX2xpbmVOdW1iZXIsIG1fc291cmNlSUQpOwogfQogCiB2b2lkIFY4Q29u
c29sZU1lc3NhZ2U6OmRpc3BhdGNoTGF0ZXIoKQpAQCAtMTA0LDggKzExMSw4IEBAIHZvaWQgVjhD
b25zb2xlTWVzc2FnZTo6aGFuZGxlcih2ODo6SGFuZGxlPHY4OjpNZXNzYWdlPiBtZXNzYWdlLCB2
ODo6SGFuZGxlPHY4OjpWCiAgICAgRnJhbWUqIGZyYW1lID0gVjhQcm94eTo6cmV0cmlldmVGcmFt
ZUZvckVudGVyZWRDb250ZXh0KCk7CiAgICAgaWYgKCFmcmFtZSkKICAgICAgICAgcmV0dXJuOwot
ICAgIFBhZ2UqIHBhZ2UgPSBmcmFtZS0+cGFnZSgpOwotICAgIGlmICghcGFnZSkKKyAgICBEb2N1
bWVudCogZG9jdW1lbnQgPSBmcmFtZS0+ZG9jdW1lbnQoKTsKKyAgICBpZiAoIWRvY3VtZW50KQog
ICAgICAgICByZXR1cm47CiAKICAgICB2ODo6SGFuZGxlPHY4OjpTdHJpbmc+IGVycm9yTWVzc2Fn
ZVN0cmluZyA9IG1lc3NhZ2UtPkdldCgpOwpAQCAtMTI0LDIxICsxMzEsOSBAQCB2b2lkIFY4Q29u
c29sZU1lc3NhZ2U6OmhhbmRsZXIodjg6OkhhbmRsZTx2ODo6TWVzc2FnZT4gbWVzc2FnZSwgdjg6
OkhhbmRsZTx2ODo6VgogICAgIHY4OjpIYW5kbGU8djg6OlZhbHVlPiByZXNvdXJjZU5hbWUgPSBt
ZXNzYWdlLT5HZXRTY3JpcHRSZXNvdXJjZU5hbWUoKTsKICAgICBib29sIHVzZVVSTCA9IHJlc291
cmNlTmFtZS5Jc0VtcHR5KCkgfHwgIXJlc291cmNlTmFtZS0+SXNTdHJpbmcoKTsKICAgICBTdHJp
bmcgcmVzb3VyY2VOYW1lU3RyaW5nID0gdXNlVVJMID8gZnJhbWUtPmRvY3VtZW50KCktPnVybCgp
IDogdG9XZWJDb3JlU3RyaW5nKHJlc291cmNlTmFtZSk7Ci0gICAgVjhDb25zb2xlTWVzc2FnZSBj
b25zb2xlTWVzc2FnZShlcnJvck1lc3NhZ2UsIHJlc291cmNlTmFtZVN0cmluZywgbWVzc2FnZS0+
R2V0TGluZU51bWJlcigpKTsKLSAgICBjb25zb2xlTWVzc2FnZS5kaXNwYXRjaE5vdyhwYWdlLCBj
YWxsU3RhY2suZ2V0KCkpOwotfQotCi12b2lkIFY4Q29uc29sZU1lc3NhZ2U6OmRpc3BhdGNoTm93
KFBhZ2UqIHBhZ2UsIFNjcmlwdENhbGxTdGFjayogY2FsbFN0YWNrKQotewotICAgIEFTU0VSVChw
YWdlKTsKIAotICAgIC8vIFByb2Nlc3MgYW55IGRlbGF5ZWQgbWVzc2FnZXMgdG8gbWFrZSBzdXJl
IHRoYXQgbWVzc2FnZXMKLSAgICAvLyBhcHBlYXIgaW4gdGhlIHJpZ2h0IG9yZGVyIGluIHRoZSBj
b25zb2xlLgogICAgIHByb2Nlc3NEZWxheWVkKCk7Ci0KLSAgICBDb25zb2xlKiBjb25zb2xlID0g
cGFnZS0+bWFpbkZyYW1lKCktPmRvbVdpbmRvdygpLT5jb25zb2xlKCk7Ci0gICAgTWVzc2FnZVR5
cGUgbWVzc2FnZVR5cGUgPSBjYWxsU3RhY2sgPyBVbmNhdWdodEV4Y2VwdGlvbk1lc3NhZ2VUeXBl
IDogTG9nTWVzc2FnZVR5cGU7Ci0gICAgY29uc29sZS0+YWRkTWVzc2FnZShKU01lc3NhZ2VTb3Vy
Y2UsIG1lc3NhZ2VUeXBlLCBFcnJvck1lc3NhZ2VMZXZlbCwgbV9zdHJpbmcsIG1fbGluZU51bWJl
ciwgbV9zb3VyY2VJRCwgY2FsbFN0YWNrKTsKKyAgICBkb2N1bWVudC0+cmVwb3J0RXhjZXB0aW9u
KGVudGVyZWRDb250ZXh0V29ybGQoKSwgZXJyb3JNZXNzYWdlLCBtZXNzYWdlLT5HZXRMaW5lTnVt
YmVyKCksIHJlc291cmNlTmFtZVN0cmluZywgY2FsbFN0YWNrLnJlbGVhc2UoKSk7CiB9CiAKIH0g
Ly8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1dlYkNvcmUvYmluZGluZ3MvdjgvVjhD
b25zb2xlTWVzc2FnZS5oIGIvV2ViQ29yZS9iaW5kaW5ncy92OC9WOENvbnNvbGVNZXNzYWdlLmgK
aW5kZXggMzg3YjVlZS4uZTJmYmNhNyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9iaW5kaW5ncy92OC9W
OENvbnNvbGVNZXNzYWdlLmgKKysrIGIvV2ViQ29yZS9iaW5kaW5ncy92OC9WOENvbnNvbGVNZXNz
YWdlLmgKQEAgLTM3LDU2ICszNyw1NSBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLSAgICBj
bGFzcyBQYWdlOwotICAgIGNsYXNzIFNjcmlwdENhbGxTdGFjazsKK2NsYXNzIEZyYW1lOworY2xh
c3MgUGFnZTsKK2NsYXNzIFNjcmlwdENhbGxTdGFjazsKIAotICAgIC8vIFY4Q29uc29sZU1lc3Nh
Z2UgZW5jYXBzdWxhdGVzIGV2ZXJ5dGhpbmcgbmVlZGVkIHRvCi0gICAgLy8gbG9nIG1lc3NhZ2Vz
IG9yaWdpbmF0aW5nIGZyb20gSmF2YVNjcmlwdCB0byB0aGUgY29uc29sZS4KLSAgICBjbGFzcyBW
OENvbnNvbGVNZXNzYWdlIHsKLSAgICBwdWJsaWM6Ci0gICAgICAgIFY4Q29uc29sZU1lc3NhZ2Uo
Y29uc3QgU3RyaW5nJiBzdHJpbmcsIGNvbnN0IFN0cmluZyYgc291cmNlSUQsIHVuc2lnbmVkIGxp
bmVOdW1iZXIpOwotCi0gICAgICAgIC8vIEFkZCBhIG1lc3NhZ2UgdG8gdGhlIGNvbnNvbGUuIE1h
eSBlbmQgdXAgY2FsbGluZyBKYXZhU2NyaXB0IGNvZGUKLSAgICAgICAgLy8gaW5kaXJlY3RseSB0
aHJvdWdoIHRoZSBpbnNwZWN0b3Igc28gb25seSBjYWxsIHRoaXMgZnVuY3Rpb24gd2hlbgotICAg
ICAgICAvLyBpdCBpcyBzYWZlIHRvIGRvIGFsbG9jYXRpb25zLgotICAgICAgICB2b2lkIGRpc3Bh
dGNoTm93KFBhZ2UqKTsKKy8vIFY4Q29uc29sZU1lc3NhZ2UgZW5jYXBzdWxhdGVzIGV2ZXJ5dGhp
bmcgbmVlZGVkIHRvCisvLyBsb2cgbWVzc2FnZXMgb3JpZ2luYXRpbmcgZnJvbSBKYXZhU2NyaXB0
IHRvIHRoZSBjb25zb2xlLgorY2xhc3MgVjhDb25zb2xlTWVzc2FnZSB7CitwdWJsaWM6CisgICAg
VjhDb25zb2xlTWVzc2FnZShjb25zdCBTdHJpbmcmIHN0cmluZywgY29uc3QgU3RyaW5nJiBzb3Vy
Y2VJRCwgdW5zaWduZWQgbGluZU51bWJlcik7CiAKLSAgICAgICAgLy8gQWRkIGEgbWVzc2FnZSB0
byB0aGUgY29uc29sZSBidXQgZGVsYXkgdGhlIHJlcG9ydGluZyB1bnRpbCBpdAotICAgICAgICAv
LyBpcyBzYWZlIHRvIGRvIHNvOiBFaXRoZXIgd2hlbiB3ZSBsZWF2ZSBKYXZhU2NyaXB0IGV4ZWN1
dGlvbiBvcgotICAgICAgICAvLyB3aGVuIGFkZGluZyBvdGhlciBjb25zb2xlIG1lc3NhZ2VzLiBU
aGUgcHJpbWFyeSBwdXJwb3NlIG9mIHRoaXMKLSAgICAgICAgLy8gbWV0aG9kIGlzIHRvIGF2b2lk
IGNhbGxpbmcgaW50byBWOCB0byBoYW5kbGUgY29uc29sZSBtZXNzYWdlcwotICAgICAgICAvLyB3
aGVuIHRoZSBWTSBpcyBpbiBhIHN0YXRlIHRoYXQgZG9lcyBub3Qgc3VwcG9ydCBHQ3Mgb3IgYWxs
b2NhdGlvbnMuCi0gICAgICAgIC8vIERlbGF5ZWQgbWVzc2FnZXMgYXJlIGFsd2F5cyByZXBvcnRl
ZCBpbiB0aGUgcGFnZSBjb3JyZXNwb25kaW5nCi0gICAgICAgIC8vIHRvIHRoZSBhY3RpdmUgY29u
dGV4dC4KLSAgICAgICAgdm9pZCBkaXNwYXRjaExhdGVyKCk7CisgICAgLy8gQWRkIGEgbWVzc2Fn
ZSB0byB0aGUgY29uc29sZS4gTWF5IGVuZCB1cCBjYWxsaW5nIEphdmFTY3JpcHQgY29kZQorICAg
IC8vIGluZGlyZWN0bHkgdGhyb3VnaCB0aGUgaW5zcGVjdG9yIHNvIG9ubHkgY2FsbCB0aGlzIGZ1
bmN0aW9uIHdoZW4KKyAgICAvLyBpdCBpcyBzYWZlIHRvIGRvIGFsbG9jYXRpb25zLgorICAgIHZv
aWQgZGlzcGF0Y2hOb3coUGFnZSopOwogCi0gICAgICAgIC8vIFByb2Nlc3MgYW55IGRlbGF5ZWQg
bWVzc2FnZXMuIE1heSBlbmQgdXAgY2FsbGluZyBKYXZhU2NyaXB0IGNvZGUKLSAgICAgICAgLy8g
aW5kaXJlY3RseSB0aHJvdWdoIHRoZSBpbnNwZWN0b3Igc28gb25seSBjYWxsIHRoaXMgZnVuY3Rp
b24gd2hlbgotICAgICAgICAvLyBpdCBpcyBzYWZlIHRvIGRvIGFsbG9jYXRpb25zLgotICAgICAg
ICBzdGF0aWMgdm9pZCBwcm9jZXNzRGVsYXllZCgpOworICAgIC8vIEFkZCBhIG1lc3NhZ2UgdG8g
dGhlIGNvbnNvbGUgYnV0IGRlbGF5IHRoZSByZXBvcnRpbmcgdW50aWwgaXQKKyAgICAvLyBpcyBz
YWZlIHRvIGRvIHNvOiBFaXRoZXIgd2hlbiB3ZSBsZWF2ZSBKYXZhU2NyaXB0IGV4ZWN1dGlvbiBv
cgorICAgIC8vIHdoZW4gYWRkaW5nIG90aGVyIGNvbnNvbGUgbWVzc2FnZXMuIFRoZSBwcmltYXJ5
IHB1cnBvc2Ugb2YgdGhpcworICAgIC8vIG1ldGhvZCBpcyB0byBhdm9pZCBjYWxsaW5nIGludG8g
VjggdG8gaGFuZGxlIGNvbnNvbGUgbWVzc2FnZXMKKyAgICAvLyB3aGVuIHRoZSBWTSBpcyBpbiBh
IHN0YXRlIHRoYXQgZG9lcyBub3Qgc3VwcG9ydCBHQ3Mgb3IgYWxsb2NhdGlvbnMuCisgICAgLy8g
RGVsYXllZCBtZXNzYWdlcyBhcmUgYWx3YXlzIHJlcG9ydGVkIGluIHRoZSBwYWdlIGNvcnJlc3Bv
bmRpbmcKKyAgICAvLyB0byB0aGUgYWN0aXZlIGNvbnRleHQuCisgICAgdm9pZCBkaXNwYXRjaExh
dGVyKCk7CiAKLSAgICAgICAgLy8gQ29udmVuaWVuY2UgY2xhc3MgZm9yIGVuc3VyaW5nIHRoYXQg
ZGVsYXllZCBtZXNzYWdlcyBpbiB0aGUKLSAgICAgICAgLy8gQ29uc29sZU1lc3NhZ2VNYW5hZ2Vy
IGFyZSBwcm9jZXNzZWQgcXVpY2tseS4KLSAgICAgICAgY2xhc3MgU2NvcGUgewotICAgICAgICBw
dWJsaWM6Ci0gICAgICAgICAgICBTY29wZSgpIHsgVjhDb25zb2xlTWVzc2FnZTo6cHJvY2Vzc0Rl
bGF5ZWQoKTsgfQotICAgICAgICAgICAgflNjb3BlKCkgeyBWOENvbnNvbGVNZXNzYWdlOjpwcm9j
ZXNzRGVsYXllZCgpOyB9Ci0gICAgICAgIH07CisgICAgLy8gUHJvY2VzcyBhbnkgZGVsYXllZCBt
ZXNzYWdlcy4gTWF5IGVuZCB1cCBjYWxsaW5nIEphdmFTY3JpcHQgY29kZQorICAgIC8vIGluZGly
ZWN0bHkgdGhyb3VnaCB0aGUgaW5zcGVjdG9yIHNvIG9ubHkgY2FsbCB0aGlzIGZ1bmN0aW9uIHdo
ZW4KKyAgICAvLyBpdCBpcyBzYWZlIHRvIGRvIGFsbG9jYXRpb25zLgorICAgIHN0YXRpYyB2b2lk
IHByb2Nlc3NEZWxheWVkKCk7CiAKLSAgICAgICAgLy8gQ2FsbGJhY2sgZnJvbSBWOC4KLSAgICAg
ICAgc3RhdGljIHZvaWQgaGFuZGxlcih2ODo6SGFuZGxlPHY4OjpNZXNzYWdlPiwgdjg6OkhhbmRs
ZTx2ODo6VmFsdWU+IGRhdGEpOworICAgIC8vIENvbnZlbmllbmNlIGNsYXNzIGZvciBlbnN1cmlu
ZyB0aGF0IGRlbGF5ZWQgbWVzc2FnZXMgaW4gdGhlCisgICAgLy8gQ29uc29sZU1lc3NhZ2VNYW5h
Z2VyIGFyZSBwcm9jZXNzZWQgcXVpY2tseS4KKyAgICBjbGFzcyBTY29wZSB7CisgICAgcHVibGlj
OgorICAgICAgICBTY29wZSgpIHsgVjhDb25zb2xlTWVzc2FnZTo6cHJvY2Vzc0RlbGF5ZWQoKTsg
fQorICAgICAgICB+U2NvcGUoKSB7IFY4Q29uc29sZU1lc3NhZ2U6OnByb2Nlc3NEZWxheWVkKCk7
IH0KKyAgICB9OwogCi0gICAgcHJpdmF0ZToKLSAgICAgICAgY29uc3QgU3RyaW5nIG1fc3RyaW5n
OwotICAgICAgICBjb25zdCBTdHJpbmcgbV9zb3VyY2VJRDsKLSAgICAgICAgY29uc3QgdW5zaWdu
ZWQgbV9saW5lTnVtYmVyOworICAgIC8vIENhbGxiYWNrIGZyb20gVjguCisgICAgc3RhdGljIHZv
aWQgaGFuZGxlcih2ODo6SGFuZGxlPHY4OjpNZXNzYWdlPiwgdjg6OkhhbmRsZTx2ODo6VmFsdWU+
IGRhdGEpOwogCi0gICAgICAgIHZvaWQgZGlzcGF0Y2hOb3coUGFnZSosIFNjcmlwdENhbGxTdGFj
ayopOworcHJpdmF0ZToKKyAgICBjb25zdCBTdHJpbmcgbV9zdHJpbmc7CisgICAgY29uc3QgU3Ry
aW5nIG1fc291cmNlSUQ7CisgICAgY29uc3QgdW5zaWduZWQgbV9saW5lTnVtYmVyOwogCi0gICAg
ICAgIC8vIEFsbCBkZWxheWVkIG1lc3NhZ2VzIGFyZSBzdG9yZWQgaW4gdGhpcyB2ZWN0b3IuIElm
IHRoZSB2ZWN0b3IKLSAgICAgICAgLy8gaXMgMCwgdGhlcmUgYXJlIG5vIGRlbGF5ZWQgbWVzc2Fn
ZXMuCi0gICAgICAgIHN0YXRpYyBWZWN0b3I8VjhDb25zb2xlTWVzc2FnZT4qIG1fZGVsYXllZE1l
c3NhZ2VzOwotICAgIH07CisgICAgLy8gQWxsIGRlbGF5ZWQgbWVzc2FnZXMgYXJlIHN0b3JlZCBp
biB0aGlzIHZlY3Rvci4gSWYgdGhlIHZlY3RvcgorICAgIC8vIGlzIDAsIHRoZXJlIGFyZSBubyBk
ZWxheWVkIG1lc3NhZ2VzLgorICAgIHN0YXRpYyBWZWN0b3I8VjhDb25zb2xlTWVzc2FnZT4qIG1f
ZGVsYXllZE1lc3NhZ2VzOworfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCmRpZmYgLS1n
aXQgYS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1Y4V2luZG93RXJyb3JIYW5kbGVyLmNwcCBiL1dlYkNv
cmUvYmluZGluZ3MvdjgvVjhXaW5kb3dFcnJvckhhbmRsZXIuY3BwCm5ldyBmaWxlIG1vZGUgMTAw
NzU1CmluZGV4IDAwMDAwMDAuLjg5ZWMwNWUKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJDb3JlL2Jp
bmRpbmdzL3Y4L1Y4V2luZG93RXJyb3JIYW5kbGVyLmNwcApAQCAtMCwwICsxLDY2IEBACisvKgor
ICogQ29weXJpZ2h0IChDKSAyMDEwIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisg
KgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCisgKiBtZXQ6CisgKgorICogICAgICog
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lci4KKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBt
dXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKKyAqIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKKyAqIGluIHRoZSBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKKyAqIGRp
c3RyaWJ1dGlvbi4KKyAqICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9y
IHRoZSBuYW1lcyBvZiBpdHMKKyAqIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNl
IG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCisgKiB0aGlzIHNvZnR3YXJlIHdpdGhv
dXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMK
KyAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVE
SU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1F
UkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKKyAqIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFS
RSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCisgKiBPV05FUiBP
UiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwKKyAqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJ
TkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRV
VEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAorICogREFUQSwgT1IgUFJPRklUUzsg
T1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisgKiBU
SEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1
ZGUgImNvbmZpZy5oIgorCisjaW5jbHVkZSAiVjhXaW5kb3dFcnJvckhhbmRsZXIuaCIKKworI2lu
Y2x1ZGUgIkRPTVdyYXBwZXJXb3JsZC5oIgorI2luY2x1ZGUgIkVycm9yRXZlbnQuaCIKKyNpbmNs
dWRlICJWOEJpbmRpbmcuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitWOFdpbmRvd0Vycm9y
SGFuZGxlcjo6VjhXaW5kb3dFcnJvckhhbmRsZXIodjg6OkxvY2FsPHY4OjpPYmplY3Q+IGxpc3Rl
bmVyLCBib29sIGlzSW5saW5lLCBjb25zdCBXb3JsZENvbnRleHRIYW5kbGUmIHdvcmxkQ29udGV4
dCkKKyAgICA6IFY4RXZlbnRMaXN0ZW5lcihsaXN0ZW5lciwgaXNJbmxpbmUsIHdvcmxkQ29udGV4
dCkKK3sKK30KKwordjg6OkxvY2FsPHY4OjpWYWx1ZT4gVjhXaW5kb3dFcnJvckhhbmRsZXI6OmNh
bGxMaXN0ZW5lckZ1bmN0aW9uKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQsIHY4OjpI
YW5kbGU8djg6OlZhbHVlPiBqc0V2ZW50LCBFdmVudCogZXZlbnQpCit7CisgICAgQVNTRVJUKGV2
ZW50LT5pc0Vycm9yRXZlbnQoKSk7CisgICAgRXJyb3JFdmVudCogZXJyb3JFdmVudCA9IHN0YXRp
Y19jYXN0PEVycm9yRXZlbnQqPihldmVudCk7CisgICAgLy8gSXQgaXMgdW5zZWN1cmUgdG8gcmVw
b3J0IGV4Y2VwdGlvbiBmcm9tIG9uZSB3b3JsZCB0byBhIGhhbmRsZXIgZnJvbSBhbm90aGVyLgor
ICAgIGlmIChlcnJvckV2ZW50LT53cmFwcGVyV29ybGQoKSAhPSBjb250ZXh0V29ybGQoY29udGV4
dCwgd29ybGRDb250ZXh0KCkpKQorICAgICAgICByZXR1cm4gdjg6OkxvY2FsPHY4OjpWYWx1ZT4o
KTsKKyAgICB2ODo6TG9jYWw8djg6Ok9iamVjdD4gbGlzdGVuZXIgPSBnZXRMaXN0ZW5lck9iamVj
dChjb250ZXh0KTsKKyAgICB2ODo6TG9jYWw8djg6OlZhbHVlPiByZXR1cm5WYWx1ZTsKKyAgICBp
ZiAoIWxpc3RlbmVyLklzRW1wdHkoKSAmJiBsaXN0ZW5lci0+SXNGdW5jdGlvbigpKSB7CisgICAg
ICAgIHY4OjpMb2NhbDx2ODo6RnVuY3Rpb24+IGNhbGxGdW5jdGlvbiA9IHY4OjpMb2NhbDx2ODo6
RnVuY3Rpb24+OjpDYXN0KGxpc3RlbmVyKTsKKyAgICAgICAgdjg6OkxvY2FsPHY4OjpPYmplY3Q+
IHRoaXNWYWx1ZSA9IHY4OjpDb250ZXh0OjpHZXRDdXJyZW50KCktPkdsb2JhbCgpOworICAgICAg
ICB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gcGFyYW1ldGVyc1szXSA9IHsgdjhTdHJpbmcoZXJyb3JF
dmVudC0+bWVzc2FnZSgpKSwgdjhTdHJpbmcoZXJyb3JFdmVudC0+ZmlsZW5hbWUoKSksIHY4OjpJ
bnRlZ2VyOjpOZXcoZXJyb3JFdmVudC0+bGluZW5vKCkpIH07CisgICAgICAgIHJldHVyblZhbHVl
ID0gY2FsbEZ1bmN0aW9uLT5DYWxsKHRoaXNWYWx1ZSwgMywgcGFyYW1ldGVycyk7CisgICAgICAg
IGlmICghcmV0dXJuVmFsdWUuSXNFbXB0eSgpICYmIHJldHVyblZhbHVlLT5Jc0Jvb2xlYW4oKSAm
JiAhcmV0dXJuVmFsdWUtPkJvb2xlYW5WYWx1ZSgpKQorICAgICAgICAgICAgZXZlbnQtPnByZXZl
bnREZWZhdWx0KCk7CisgICAgfQorICAgIHJldHVybiByZXR1cm5WYWx1ZTsKK30KKworfSAvLyBu
YW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9iaW5kaW5ncy92OC9WOFdpbmRv
d0Vycm9ySGFuZGxlci5oIGIvV2ViQ29yZS9iaW5kaW5ncy92OC9WOFdpbmRvd0Vycm9ySGFuZGxl
ci5oCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjE2N2NhMGQKLS0tIC9kZXYv
bnVsbAorKysgYi9XZWJDb3JlL2JpbmRpbmdzL3Y4L1Y4V2luZG93RXJyb3JIYW5kbGVyLmgKQEAg
LTAsMCArMSw1NSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMCBHb29nbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQorICog
bWV0OgorICoKKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJl
dGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlv
bnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCisgKiBjb3B5cmlnaHQg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyCisgKiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlCisgKiBkaXN0cmlidXRpb24uCisgKiAgICAgKiBOZWl0aGVyIHRoZSBuYW1l
IG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCisgKiBjb250cmlidXRvcnMgbWF5
IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQorICog
dGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4K
KyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVS
UyBBTkQgQ09OVFJJQlVUT1JTCisgKiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgVEhFIElNUExJ
RUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCisgKiBBIFBB
UlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENP
UFlSSUdIVAorICogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCisgKiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNF
UVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBQUk9D
VVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKKyAq
IERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5EIE9OIEFOWQorICogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLgorICovCisKKyNpZm5kZWYgVjhXaW5kb3dFcnJvckhhbmRsZXJfaAorI2RlZmluZSBWOFdp
bmRvd0Vycm9ySGFuZGxlcl9oCisKKyNpbmNsdWRlICJWOEN1c3RvbUV2ZW50TGlzdGVuZXIuaCIK
KyNpbmNsdWRlIDx2OC5oPgorI2luY2x1ZGUgPHd0Zi9QYXNzUmVmUHRyLmg+CisKK25hbWVzcGFj
ZSBXZWJDb3JlIHsKKworY2xhc3MgVjhXaW5kb3dFcnJvckhhbmRsZXIgOiBwdWJsaWMgVjhFdmVu
dExpc3RlbmVyIHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUGFzc1JlZlB0cjxWOFdpbmRvd0Vycm9y
SGFuZGxlcj4gY3JlYXRlKHY4OjpMb2NhbDx2ODo6T2JqZWN0PiBsaXN0ZW5lciwgYm9vbCBpc0lu
bGluZSwgY29uc3QgV29ybGRDb250ZXh0SGFuZGxlJiB3b3JsZENvbnRleHQpCisgICAgeworICAg
ICAgICByZXR1cm4gYWRvcHRSZWYobmV3IFY4V2luZG93RXJyb3JIYW5kbGVyKGxpc3RlbmVyLCBp
c0lubGluZSwgd29ybGRDb250ZXh0KSk7CisgICAgfQorCitwcml2YXRlOgorICAgIFY4V2luZG93
RXJyb3JIYW5kbGVyKHY4OjpMb2NhbDx2ODo6T2JqZWN0PiBsaXN0ZW5lciwgYm9vbCBpc0lubGlu
ZSwgY29uc3QgV29ybGRDb250ZXh0SGFuZGxlJiB3b3JsZENvbnRleHQpOworCisgICAgdmlydHVh
bCB2ODo6TG9jYWw8djg6OlZhbHVlPiBjYWxsTGlzdGVuZXJGdW5jdGlvbihTY3JpcHRFeGVjdXRp
b25Db250ZXh0Kiwgdjg6OkhhbmRsZTx2ODo6VmFsdWU+IGpzRXZlbnQsIEV2ZW50Kik7Cit9Owor
Cit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBWOFdpbmRvd0Vycm9ySGFuZGxl
cl9oCmRpZmYgLS1naXQgYS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1dvcmtlckNvbnRleHRFeGVjdXRp
b25Qcm94eS5jcHAgYi9XZWJDb3JlL2JpbmRpbmdzL3Y4L1dvcmtlckNvbnRleHRFeGVjdXRpb25Q
cm94eS5jcHAKb2xkIG1vZGUgMTAwNjQ0Cm5ldyBtb2RlIDEwMDc1NQppbmRleCAxNmUwYjQxLi4y
NDhkZTAyCi0tLSBhL1dlYkNvcmUvYmluZGluZ3MvdjgvV29ya2VyQ29udGV4dEV4ZWN1dGlvblBy
b3h5LmNwcAorKysgYi9XZWJDb3JlL2JpbmRpbmdzL3Y4L1dvcmtlckNvbnRleHRFeGVjdXRpb25Q
cm94eS5jcHAKQEAgLTM1LDggKzM1LDEwIEBACiAKICNpbmNsdWRlICJXb3JrZXJDb250ZXh0RXhl
Y3V0aW9uUHJveHkuaCIKIAorI2luY2x1ZGUgIkRPTVdyYXBwZXJXb3JsZC5oIgogI2luY2x1ZGUg
IkRlZGljYXRlZFdvcmtlckNvbnRleHQuaCIKICNpbmNsdWRlICJFdmVudC5oIgorI2luY2x1ZGUg
IlNjcmlwdENhbGxTdGFjay5oIgogI2luY2x1ZGUgIlNoYXJlZFdvcmtlci5oIgogI2luY2x1ZGUg
IlNoYXJlZFdvcmtlckNvbnRleHQuaCIKICNpbmNsdWRlICJWOEJpbmRpbmcuaCIKQEAgLTcyLDcg
Kzc0LDcgQEAgc3RhdGljIHZvaWQgdjhNZXNzYWdlSGFuZGxlcih2ODo6SGFuZGxlPHY4OjpNZXNz
YWdlPiBtZXNzYWdlLCB2ODo6SGFuZGxlPHY4OjpWYWwKICAgICAgICAgU3RyaW5nIGVycm9yTWVz
c2FnZSA9IHRvV2ViQ29yZVN0cmluZyhtZXNzYWdlLT5HZXQoKSk7CiAgICAgICAgIGludCBsaW5l
TnVtYmVyID0gbWVzc2FnZS0+R2V0TGluZU51bWJlcigpOwogICAgICAgICBTdHJpbmcgc291cmNl
VVJMID0gdG9XZWJDb3JlU3RyaW5nKG1lc3NhZ2UtPkdldFNjcmlwdFJlc291cmNlTmFtZSgpKTsK
LSAgICAgICAgY29udGV4dC0+cmVwb3J0RXhjZXB0aW9uKGVycm9yTWVzc2FnZSwgbGluZU51bWJl
ciwgc291cmNlVVJMKTsKKyAgICAgICAgY29udGV4dC0+cmVwb3J0RXhjZXB0aW9uKDAsIGVycm9y
TWVzc2FnZSwgbGluZU51bWJlciwgc291cmNlVVJMLCAwKTsKICAgICB9CiAKICAgICBpc1JlcG9y
dGluZ0V4Y2VwdGlvbiA9IGZhbHNlOwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9iaW5kaW5ncy92OC9X
b3JrZXJTY3JpcHRDb250cm9sbGVyLmNwcCBiL1dlYkNvcmUvYmluZGluZ3MvdjgvV29ya2VyU2Ny
aXB0Q29udHJvbGxlci5jcHAKb2xkIG1vZGUgMTAwNjQ0Cm5ldyBtb2RlIDEwMDc1NQppbmRleCA3
ZGIwZDhkLi4yMWFlNTRlCi0tLSBhL1dlYkNvcmUvYmluZGluZ3MvdjgvV29ya2VyU2NyaXB0Q29u
dHJvbGxlci5jcHAKKysrIGIvV2ViQ29yZS9iaW5kaW5ncy92OC9Xb3JrZXJTY3JpcHRDb250cm9s
bGVyLmNwcApAQCAtMzYsOSArMzYsMTEgQEAKIAogI2luY2x1ZGUgPHY4Lmg+CiAKKyNpbmNsdWRl
ICJTY3JpcHRDYWxsU3RhY2suaCIKICNpbmNsdWRlICJTY3JpcHRTb3VyY2VDb2RlLmgiCiAjaW5j
bHVkZSAiU2NyaXB0VmFsdWUuaCIKICNpbmNsdWRlICJET01UaW1lci5oIgorI2luY2x1ZGUgIkRP
TVdyYXBwZXJXb3JsZC5oIgogI2luY2x1ZGUgIlY4RE9NTWFwLmgiCiAjaW5jbHVkZSAiVjhQcm94
eS5oIgogI2luY2x1ZGUgIlY4V29ya2VyQ29udGV4dC5oIgpAQCAtODAsNyArODIsNyBAQCBTY3Jp
cHRWYWx1ZSBXb3JrZXJTY3JpcHRDb250cm9sbGVyOjpldmFsdWF0ZShjb25zdCBTY3JpcHRTb3Vy
Y2VDb2RlJiBzb3VyY2VDb2RlLAogICAgICAgICBpZiAoZXhjZXB0aW9uKQogICAgICAgICAgICAg
KmV4Y2VwdGlvbiA9IHN0YXRlLmV4Y2VwdGlvbjsKICAgICAgICAgZWxzZQotICAgICAgICAgICAg
bV93b3JrZXJDb250ZXh0LT5yZXBvcnRFeGNlcHRpb24oc3RhdGUuZXJyb3JNZXNzYWdlLCBzdGF0
ZS5saW5lTnVtYmVyLCBzdGF0ZS5zb3VyY2VVUkwpOworICAgICAgICAgICAgbV93b3JrZXJDb250
ZXh0LT5yZXBvcnRFeGNlcHRpb24oMCwgc3RhdGUuZXJyb3JNZXNzYWdlLCBzdGF0ZS5saW5lTnVt
YmVyLCBzdGF0ZS5zb3VyY2VVUkwsIDApOwogICAgIH0KIAogICAgIHJldHVybiByZXN1bHQ7CmRp
ZmYgLS1naXQgYS9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOEN1c3RvbVZvaWRDYWxsYmFj
ay5jcHAgYi9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOEN1c3RvbVZvaWRDYWxsYmFjay5j
cHAKb2xkIG1vZGUgMTAwNjQ0Cm5ldyBtb2RlIDEwMDc1NQppbmRleCAyNWU3ZTBkLi4xMWYzMDli
Ci0tLSBhL1dlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4Q3VzdG9tVm9pZENhbGxiYWNrLmNw
cAorKysgYi9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOEN1c3RvbVZvaWRDYWxsYmFjay5j
cHAKQEAgLTY2LDYgKzY2LDcgQEAgdm9pZCBWOEN1c3RvbVZvaWRDYWxsYmFjazo6aGFuZGxlRXZl
bnQoKQogYm9vbCBpbnZva2VDYWxsYmFjayh2ODo6UGVyc2lzdGVudDx2ODo6T2JqZWN0PiBjYWxs
YmFjaywgaW50IGFyZ2MsIHY4OjpIYW5kbGU8djg6OlZhbHVlPiBhcmd2W10sIGJvb2wmIGNhbGxi
YWNrUmV0dXJuVmFsdWUsIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIHNjcmlwdEV4ZWN1dGlvbkNv
bnRleHQpCiB7CiAgICAgdjg6OlRyeUNhdGNoIGV4Y2VwdGlvbkNhdGNoZXI7CisgICAgZXhjZXB0
aW9uQ2F0Y2hlci5TZXRWZXJib3NlKHRydWUpOwogCiAgICAgdjg6OkxvY2FsPHY4OjpGdW5jdGlv
bj4gY2FsbGJhY2tGdW5jdGlvbjsKICAgICBpZiAoY2FsbGJhY2stPklzRnVuY3Rpb24oKSkgewpA
QCAtODQsMTQgKzg1LDcgQEAgYm9vbCBpbnZva2VDYWxsYmFjayh2ODo6UGVyc2lzdGVudDx2ODo6
T2JqZWN0PiBjYWxsYmFjaywgaW50IGFyZ2MsIHY4OjpIYW5kbGU8djgKIAogICAgIHY4OjpIYW5k
bGU8djg6OlZhbHVlPiByZXN1bHQgPSBjYWxsYmFja0Z1bmN0aW9uLT5DYWxsKHRoaXNPYmplY3Qs
IGFyZ2MsIGFyZ3YpOwogICAgIGNhbGxiYWNrUmV0dXJuVmFsdWUgPSAhcmVzdWx0LklzRW1wdHko
KSAmJiByZXN1bHQtPkJvb2xlYW5WYWx1ZSgpOwotCi0gICAgaWYgKGV4Y2VwdGlvbkNhdGNoZXIu
SGFzQ2F1Z2h0KCkpIHsKLSAgICAgICAgdjg6OkxvY2FsPHY4OjpNZXNzYWdlPiBtZXNzYWdlID0g
ZXhjZXB0aW9uQ2F0Y2hlci5NZXNzYWdlKCk7Ci0gICAgICAgIHNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHQtPnJlcG9ydEV4Y2VwdGlvbih0b1dlYkNvcmVTdHJpbmcobWVzc2FnZS0+R2V0KCkpLCBtZXNz
YWdlLT5HZXRMaW5lTnVtYmVyKCksIHRvV2ViQ29yZVN0cmluZyhtZXNzYWdlLT5HZXRTY3JpcHRS
ZXNvdXJjZU5hbWUoKSkpOwotICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICB9Ci0KLSAgICByZXR1
cm4gZmFsc2U7CisgICAgcmV0dXJuIGV4Y2VwdGlvbkNhdGNoZXIuSGFzQ2F1Z2h0KCk7CiB9CiAK
IH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1dlYkNvcmUvZG9tL0RvY3VtZW50
LmNwcCBiL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcAppbmRleCAyN2M1ZWY5Li5iNjlmMzdjIDEw
MDY0NAotLS0gYS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKKysrIGIvV2ViQ29yZS9kb20vRG9j
dW1lbnQuY3BwCkBAIC0yMTc1LDYgKzIxNzUsMTcgQEAgS1VSTCBEb2N1bWVudDo6dmlydHVhbENv
bXBsZXRlVVJMKGNvbnN0IFN0cmluZyYgdXJsKSBjb25zdAogICAgIHJldHVybiBjb21wbGV0ZVVS
TCh1cmwpOwogfQogCitFdmVudFRhcmdldCogRG9jdW1lbnQ6OmVycm9yRXZlbnRUYXJnZXQoKQor
eworICAgIHJldHVybiBkb21XaW5kb3coKTsKK30KKwordm9pZCBEb2N1bWVudDo6bG9nRXhjZXB0
aW9uVG9Db25zb2xlKGNvbnN0IFN0cmluZyYgZXJyb3JNZXNzYWdlLCBpbnQgbGluZU51bWJlciwg
Y29uc3QgU3RyaW5nJiBzb3VyY2VVUkwsIFNjcmlwdENhbGxTdGFjayogY2FsbFN0YWNrKQorewor
ICAgIE1lc3NhZ2VUeXBlIG1lc3NhZ2VUeXBlID0gY2FsbFN0YWNrID8gVW5jYXVnaHRFeGNlcHRp
b25NZXNzYWdlVHlwZSA6IExvZ01lc3NhZ2VUeXBlOworICAgIGFkZE1lc3NhZ2UoSlNNZXNzYWdl
U291cmNlLCBtZXNzYWdlVHlwZSwgRXJyb3JNZXNzYWdlTGV2ZWwsIGVycm9yTWVzc2FnZSwgbGlu
ZU51bWJlciwgc291cmNlVVJMKTsKK30KKwogdm9pZCBEb2N1bWVudDo6c2V0VVJMKGNvbnN0IEtV
UkwmIHVybCkKIHsKICAgICBjb25zdCBLVVJMJiBuZXdVUkwgPSB1cmwuaXNFbXB0eSgpID8gYmxh
bmtVUkwoKSA6IHVybDsKQEAgLTQ1MzIsMTEgKzQ1NDMsNiBAQCB2b2lkIERvY3VtZW50OjpwYXJz
ZUROU1ByZWZldGNoQ29udHJvbEhlYWRlcihjb25zdCBTdHJpbmcmIGRuc1ByZWZldGNoQ29udHJv
bCkKICAgICBtX2hhdmVFeHBsaWNpdGx5RGlzYWJsZWRETlNQcmVmZXRjaCA9IHRydWU7CiB9CiAK
LXZvaWQgRG9jdW1lbnQ6OnJlcG9ydEV4Y2VwdGlvbihjb25zdCBTdHJpbmcmIGVycm9yTWVzc2Fn
ZSwgaW50IGxpbmVOdW1iZXIsIGNvbnN0IFN0cmluZyYgc291cmNlVVJMKQotewotICAgIGFkZE1l
c3NhZ2UoSlNNZXNzYWdlU291cmNlLCBMb2dNZXNzYWdlVHlwZSwgRXJyb3JNZXNzYWdlTGV2ZWws
IGVycm9yTWVzc2FnZSwgbGluZU51bWJlciwgc291cmNlVVJMKTsKLX0KLQogdm9pZCBEb2N1bWVu
dDo6YWRkTWVzc2FnZShNZXNzYWdlU291cmNlIHNvdXJjZSwgTWVzc2FnZVR5cGUgdHlwZSwgTWVz
c2FnZUxldmVsIGxldmVsLCBjb25zdCBTdHJpbmcmIG1lc3NhZ2UsIHVuc2lnbmVkIGxpbmVOdW1i
ZXIsIGNvbnN0IFN0cmluZyYgc291cmNlVVJMKQogewogICAgIGlmIChET01XaW5kb3cqIHdpbmRv
dyA9IGRvbVdpbmRvdygpKQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9kb20vRG9jdW1lbnQuaCBiL1dl
YkNvcmUvZG9tL0RvY3VtZW50LmgKaW5kZXggMWFkN2VjZC4uOTc5ZWQ0MiAxMDA2NDQKLS0tIGEv
V2ViQ29yZS9kb20vRG9jdW1lbnQuaAorKysgYi9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oCkBAIC05
MDMsNyArOTAzLDYgQEAgcHVibGljOgogICAgIGJvb2wgaXNETlNQcmVmZXRjaEVuYWJsZWQoKSBj
b25zdCB7IHJldHVybiBtX2lzRE5TUHJlZmV0Y2hFbmFibGVkOyB9CiAgICAgdm9pZCBwYXJzZURO
U1ByZWZldGNoQ29udHJvbEhlYWRlcihjb25zdCBTdHJpbmcmKTsKIAotICAgIHZpcnR1YWwgdm9p
ZCByZXBvcnRFeGNlcHRpb24oY29uc3QgU3RyaW5nJiBlcnJvck1lc3NhZ2UsIGludCBsaW5lTnVt
YmVyLCBjb25zdCBTdHJpbmcmIHNvdXJjZVVSTCk7CiAgICAgdmlydHVhbCB2b2lkIGFkZE1lc3Nh
Z2UoTWVzc2FnZVNvdXJjZSwgTWVzc2FnZVR5cGUsIE1lc3NhZ2VMZXZlbCwgY29uc3QgU3RyaW5n
JiBtZXNzYWdlLCB1bnNpZ25lZCBsaW5lTnVtYmVyLCBjb25zdCBTdHJpbmcmIHNvdXJjZVVSTCk7
CiAgICAgdmlydHVhbCB2b2lkIHBvc3RUYXNrKFBhc3NPd25QdHI8VGFzaz4pOyAvLyBFeGVjdXRl
cyB0aGUgdGFzayBvbiBjb250ZXh0J3MgdGhyZWFkIGFzeW5jaHJvbm91c2x5LgogCkBAIC0xMDU5
LDYgKzEwNTgsOSBAQCBwcml2YXRlOgogICAgIHZpcnR1YWwgY29uc3QgS1VSTCYgdmlydHVhbFVS
TCgpIGNvbnN0OyAvLyBTYW1lIGFzIHVybCgpLCBidXQgbmVlZGVkIGZvciBTY3JpcHRFeGVjdXRp
b25Db250ZXh0IHRvIGltcGxlbWVudCBpdCB3aXRob3V0IGEgcGVyZm9ybWFuY2UgbG9zcyBmb3Ig
ZGlyZWN0IGNhbGxzLgogICAgIHZpcnR1YWwgS1VSTCB2aXJ0dWFsQ29tcGxldGVVUkwoY29uc3Qg
U3RyaW5nJikgY29uc3Q7IC8vIFNhbWUgYXMgY29tcGxldGVVUkwoKSBmb3IgdGhlIHNhbWUgcmVh
c29uIGFzIGFib3ZlLgogCisgICAgdmlydHVhbCBFdmVudFRhcmdldCogZXJyb3JFdmVudFRhcmdl
dCgpOworICAgIHZpcnR1YWwgdm9pZCBsb2dFeGNlcHRpb25Ub0NvbnNvbGUoY29uc3QgU3RyaW5n
JiBlcnJvck1lc3NhZ2UsIGludCBsaW5lTnVtYmVyLCBjb25zdCBTdHJpbmcmIHNvdXJjZVVSTCwg
U2NyaXB0Q2FsbFN0YWNrKik7CisKICAgICB2b2lkIGluaXRETlNQcmVmZXRjaCgpOwogCiAgICAg
U3RyaW5nIGVuY29kaW5nKCkgY29uc3Q7CmRpZmYgLS1naXQgYS9XZWJDb3JlL2RvbS9FcnJvckV2
ZW50LmNwcCBiL1dlYkNvcmUvZG9tL0Vycm9yRXZlbnQuY3BwCmluZGV4IDI2MjdkMDEuLjA2Njk5
ZDQgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvZG9tL0Vycm9yRXZlbnQuY3BwCisrKyBiL1dlYkNvcmUv
ZG9tL0Vycm9yRXZlbnQuY3BwCkBAIC0zNCw2ICszNCw3IEBACiAKICNpbmNsdWRlICJFcnJvckV2
ZW50LmgiCiAKKyNpbmNsdWRlICJET01XcmFwcGVyV29ybGQuaCIKICNpbmNsdWRlICJFdmVudE5h
bWVzLmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAgLTQyLDggKzQzLDkgQEAgRXJyb3JFdmVu
dDo6RXJyb3JFdmVudCgpCiB7CiB9CiAKLUVycm9yRXZlbnQ6OkVycm9yRXZlbnQoY29uc3QgU3Ry
aW5nJiBtZXNzYWdlLCBjb25zdCBTdHJpbmcmIGZpbGVOYW1lLCB1bnNpZ25lZCBsaW5lTnVtYmVy
KQorRXJyb3JFdmVudDo6RXJyb3JFdmVudChET01XcmFwcGVyV29ybGQqIHdyYXBwZXJXb3JsZCwg
Y29uc3QgU3RyaW5nJiBtZXNzYWdlLCBjb25zdCBTdHJpbmcmIGZpbGVOYW1lLCB1bnNpZ25lZCBs
aW5lTnVtYmVyKQogICAgIDogRXZlbnQoZXZlbnROYW1lcygpLmVycm9yRXZlbnQsIGZhbHNlLCB0
cnVlKQorICAgICwgbV93cmFwcGVyV29ybGQod3JhcHBlcldvcmxkKQogICAgICwgbV9tZXNzYWdl
KG1lc3NhZ2UpCiAgICAgLCBtX2ZpbGVOYW1lKGZpbGVOYW1lKQogICAgICwgbV9saW5lTnVtYmVy
KGxpbmVOdW1iZXIpCmRpZmYgLS1naXQgYS9XZWJDb3JlL2RvbS9FcnJvckV2ZW50LmggYi9XZWJD
b3JlL2RvbS9FcnJvckV2ZW50LmgKaW5kZXggZjgxNTMwYS4uZGZmZmQxYiAxMDA2NDQKLS0tIGEv
V2ViQ29yZS9kb20vRXJyb3JFdmVudC5oCisrKyBiL1dlYkNvcmUvZG9tL0Vycm9yRXZlbnQuaApA
QCAtMzgsMjAgKzM4LDI0IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAorICAgIGNsYXNzIERP
TVdyYXBwZXJXb3JsZDsKKwogICAgIGNsYXNzIEVycm9yRXZlbnQgOiBwdWJsaWMgRXZlbnQgewog
ICAgIHB1YmxpYzoKICAgICAgICAgc3RhdGljIFBhc3NSZWZQdHI8RXJyb3JFdmVudD4gY3JlYXRl
KCkKICAgICAgICAgewogICAgICAgICAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBFcnJvckV2ZW50
KTsKICAgICAgICAgfQotICAgICAgICBzdGF0aWMgUGFzc1JlZlB0cjxFcnJvckV2ZW50PiBjcmVh
dGUoY29uc3QgU3RyaW5nJiBtZXNzYWdlLCBjb25zdCBTdHJpbmcmIGZpbGVOYW1lLCB1bnNpZ25l
ZCBsaW5lTnVtYmVyKQorICAgICAgICBzdGF0aWMgUGFzc1JlZlB0cjxFcnJvckV2ZW50PiBjcmVh
dGUoRE9NV3JhcHBlcldvcmxkKiB3cmFwcGVyV29ybGQsIGNvbnN0IFN0cmluZyYgbWVzc2FnZSwg
Y29uc3QgU3RyaW5nJiBmaWxlTmFtZSwgdW5zaWduZWQgbGluZU51bWJlcikKICAgICAgICAgewot
ICAgICAgICAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBFcnJvckV2ZW50KG1lc3NhZ2UsIGZpbGVO
YW1lLCBsaW5lTnVtYmVyKSk7CisgICAgICAgICAgICByZXR1cm4gYWRvcHRSZWYobmV3IEVycm9y
RXZlbnQod3JhcHBlcldvcmxkLCBtZXNzYWdlLCBmaWxlTmFtZSwgbGluZU51bWJlcikpOwogICAg
ICAgICB9CiAgICAgICAgIHZpcnR1YWwgfkVycm9yRXZlbnQoKTsKIAogICAgICAgICB2b2lkIGlu
aXRFcnJvckV2ZW50KGNvbnN0IEF0b21pY1N0cmluZyYgdHlwZSwgYm9vbCBjYW5CdWJibGUsIGJv
b2wgY2FuY2VsYWJsZSwgY29uc3QgU3RyaW5nJiBtZXNzYWdlLCBjb25zdCBTdHJpbmcmIGZpbGVO
YW1lLCB1bnNpZ25lZCBsaW5lTnVtYmVyKTsKIAorICAgICAgICBET01XcmFwcGVyV29ybGQqIHdy
YXBwZXJXb3JsZCgpIGNvbnN0IHsgcmV0dXJuIG1fd3JhcHBlcldvcmxkLmdldCgpOyB9CisKICAg
ICAgICAgY29uc3QgU3RyaW5nJiBtZXNzYWdlKCkgY29uc3QgeyByZXR1cm4gbV9tZXNzYWdlOyB9
CiAgICAgICAgIGNvbnN0IFN0cmluZyYgZmlsZW5hbWUoKSBjb25zdCB7IHJldHVybiBtX2ZpbGVO
YW1lOyB9CiAgICAgICAgIHVuc2lnbmVkIGxpbmVubygpIGNvbnN0IHsgcmV0dXJuIG1fbGluZU51
bWJlcjsgfQpAQCAtNjAsOCArNjQsOSBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKICAgICBwcml2
YXRlOiAgICAKICAgICAgICAgRXJyb3JFdmVudCgpOwotICAgICAgICBFcnJvckV2ZW50KGNvbnN0
IFN0cmluZyYgbWVzc2FnZSwgY29uc3QgU3RyaW5nJiBmaWxlTmFtZSwgdW5zaWduZWQgbGluZU51
bWJlcik7CisgICAgICAgIEVycm9yRXZlbnQoRE9NV3JhcHBlcldvcmxkKiwgY29uc3QgU3RyaW5n
JiBtZXNzYWdlLCBjb25zdCBTdHJpbmcmIGZpbGVOYW1lLCB1bnNpZ25lZCBsaW5lTnVtYmVyKTsK
IAorICAgICAgICBSZWZQdHI8RE9NV3JhcHBlcldvcmxkPiAgbV93cmFwcGVyV29ybGQ7CiAgICAg
ICAgIFN0cmluZyBtX21lc3NhZ2U7CiAgICAgICAgIFN0cmluZyBtX2ZpbGVOYW1lOwogICAgICAg
ICB1bnNpZ25lZCBtX2xpbmVOdW1iZXI7CmRpZmYgLS1naXQgYS9XZWJDb3JlL2RvbS9TY3JpcHRF
eGVjdXRpb25Db250ZXh0LmNwcCBiL1dlYkNvcmUvZG9tL1NjcmlwdEV4ZWN1dGlvbkNvbnRleHQu
Y3BwCm9sZCBtb2RlIDEwMDY0NApuZXcgbW9kZSAxMDA3NTUKaW5kZXggYmZkYTE3Yi4uNDk0OTY0
YwotLS0gYS9XZWJDb3JlL2RvbS9TY3JpcHRFeGVjdXRpb25Db250ZXh0LmNwcAorKysgYi9XZWJD
b3JlL2RvbS9TY3JpcHRFeGVjdXRpb25Db250ZXh0LmNwcApAQCAtMzMsMTQgKzMzLDE5IEBACiAj
aW5jbHVkZSAiRGF0YWJhc2UuaCIKICNpbmNsdWRlICJEYXRhYmFzZVRhc2suaCIKICNpbmNsdWRl
ICJEYXRhYmFzZVRocmVhZC5oIgorI2luY2x1ZGUgIkVycm9yRXZlbnQuaCIKKyNpbmNsdWRlICJF
dmVudExpc3RlbmVyLmgiCisjaW5jbHVkZSAiRXZlbnRUYXJnZXQuaCIKICNpbmNsdWRlICJGaWxl
VGhyZWFkLmgiCiAjaW5jbHVkZSAiTWVzc2FnZVBvcnQuaCIKKyNpbmNsdWRlICJTY3JpcHRDYWxs
U3RhY2suaCIKICNpbmNsdWRlICJTZWN1cml0eU9yaWdpbi5oIgogI2luY2x1ZGUgIlRocmVhZGFi
bGVCbG9iUmVnaXN0cnkuaCIKICNpbmNsdWRlICJXb3JrZXJDb250ZXh0LmgiCiAjaW5jbHVkZSAi
V29ya2VyVGhyZWFkLmgiCiAjaW5jbHVkZSA8d3RmL01haW5UaHJlYWQuaD4KICNpbmNsdWRlIDx3
dGYvUGFzc1JlZlB0ci5oPgorI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KIAogI2lmIFVTRShKU0Mp
CiAjaW5jbHVkZSAiSlNET01XaW5kb3cuaCIKQEAgLTYxLDEwICs2NiwxOSBAQCBwdWJsaWM6CiAg
ICAgfQogfTsKIAorU2NyaXB0RXhlY3V0aW9uQ29udGV4dDo6UGVuZGluZ0V4Y2VwdGlvbjo6UGVu
ZGluZ0V4Y2VwdGlvbihjb25zdCBTdHJpbmcmIGVycm9yTWVzc2FnZSwgaW50IGxpbmVOdW1iZXIs
IGNvbnN0IFN0cmluZyYgc291cmNlVVJMLCBQYXNzT3duUHRyPFNjcmlwdENhbGxTdGFjaz4gY2Fs
bFN0YWNrKQorICAgIDogbV9lcnJvck1lc3NhZ2UoZXJyb3JNZXNzYWdlKQorICAgICwgbV9saW5l
TnVtYmVyKGxpbmVOdW1iZXIpCisgICAgLCBtX3NvdXJjZVVSTChzb3VyY2VVUkwpCisgICAgLCBt
X2NhbGxTdGFjayhjYWxsU3RhY2spCit7Cit9CisKIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQ6OlNj
cmlwdEV4ZWN1dGlvbkNvbnRleHQoKQogI2lmIEVOQUJMRShEQVRBQkFTRSkKICAgICA6IG1faGFz
T3BlbkRhdGFiYXNlcyhmYWxzZSkKICNlbmRpZgorICAgICwgbV9pbkRpc3BhdGNoRXJyb3JFdmVu
dChmYWxzZSkKIHsKIH0KIApAQCAtMjQzLDYgKzI1Nyw0NiBAQCB2b2lkIFNjcmlwdEV4ZWN1dGlv
bkNvbnRleHQ6OnNldFNlY3VyaXR5T3JpZ2luKFBhc3NSZWZQdHI8U2VjdXJpdHlPcmlnaW4+IHNl
Y3VyaQogICAgIG1fc2VjdXJpdHlPcmlnaW4gPSBzZWN1cml0eU9yaWdpbjsKIH0KIAordm9pZCBT
Y3JpcHRFeGVjdXRpb25Db250ZXh0OjpyZXBvcnRFeGNlcHRpb24oRE9NV3JhcHBlcldvcmxkKiB3
cmFwcGVyV29ybGQsIGNvbnN0IFN0cmluZyYgZXJyb3JNZXNzYWdlLCBpbnQgbGluZU51bWJlciwg
Y29uc3QgU3RyaW5nJiBzb3VyY2VVUkwsIFBhc3NPd25QdHI8U2NyaXB0Q2FsbFN0YWNrPiBjYWxs
U3RhY2spCit7CisgICAgaWYgKG1faW5EaXNwYXRjaEVycm9yRXZlbnQpIHsKKyAgICAgICAgaWYg
KCFtX3BlbmRpbmdFeGNlcHRpb25zKQorICAgICAgICAgICAgbV9wZW5kaW5nRXhjZXB0aW9ucyA9
IG5ldyBWZWN0b3I8T3duUHRyPFBlbmRpbmdFeGNlcHRpb24+ID4oKTsKKyAgICAgICAgbV9wZW5k
aW5nRXhjZXB0aW9ucy0+YXBwZW5kKG5ldyBQZW5kaW5nRXhjZXB0aW9uKGVycm9yTWVzc2FnZSwg
bGluZU51bWJlciwgc291cmNlVVJMLCBjYWxsU3RhY2spKTsKKyAgICAgICAgcmV0dXJuOworICAg
IH0KKworICAgIC8vIEZpcnN0IHJlcG9ydCB0aGUgb3JpZ2luYWwgZXhjZXB0aW9uIGFuZCBvbmx5
IHRoZW4gYWxsIHRoZSBuZXN0ZWQgb25lcy4KKyAgICBpZiAoIWRpc3BhdGNoRXJyb3JFdmVudCh3
cmFwcGVyV29ybGQsIGVycm9yTWVzc2FnZSwgbGluZU51bWJlciwgc291cmNlVVJMKSkKKyAgICAg
ICAgbG9nRXhjZXB0aW9uVG9Db25zb2xlKGVycm9yTWVzc2FnZSwgbGluZU51bWJlciwgc291cmNl
VVJMLCBjYWxsU3RhY2suZ2V0KCkpOworCisgICAgaWYgKG1fcGVuZGluZ0V4Y2VwdGlvbnMpIHsK
KyAgICAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBtX3BlbmRpbmdFeGNlcHRpb25zLT5zaXpl
KCk7IGkrKykgeworICAgICAgICAgICAgUGVuZGluZ0V4Y2VwdGlvbiogZSA9IG1fcGVuZGluZ0V4
Y2VwdGlvbnMtPmF0KGkpLmdldCgpOworICAgICAgICAgICAgbG9nRXhjZXB0aW9uVG9Db25zb2xl
KGUtPm1fZXJyb3JNZXNzYWdlLCBlLT5tX2xpbmVOdW1iZXIsIGUtPm1fc291cmNlVVJMLCBlLT5t
X2NhbGxTdGFjay5nZXQoKSk7CisgICAgICAgIH0KKyAgICAgICAgbV9wZW5kaW5nRXhjZXB0aW9u
cy5jbGVhcigpOworICAgIH0KK30KKworYm9vbCBTY3JpcHRFeGVjdXRpb25Db250ZXh0OjpkaXNw
YXRjaEVycm9yRXZlbnQoRE9NV3JhcHBlcldvcmxkKiB3cmFwcGVyV29ybGQsIGNvbnN0IFN0cmlu
ZyYgZXJyb3JNZXNzYWdlLCBpbnQgbGluZU51bWJlciwgY29uc3QgU3RyaW5nJiBzb3VyY2VVUkwp
Cit7CisgICAgLy8gSXQncyB1bnNhZmUgdG8gZGlzcGF0Y2ggZXJyb3IgZXZlbnQgdG8gZXJyb3Ig
aGFuZGxlciBpbiBhIGRpZmZlcmVudCB3b3JsZC4KKyAgICBpZiAoIXdyYXBwZXJXb3JsZCAmJiAh
aXNXb3JrZXJDb250ZXh0KCkpCisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIEV2ZW50VGFy
Z2V0KiB0YXJnZXQgPSBlcnJvckV2ZW50VGFyZ2V0KCk7CisgICAgaWYgKCF0YXJnZXQpCisgICAg
ICAgIHJldHVybiBmYWxzZTsKKworICAgIEFTU0VSVCghbV9pbkRpc3BhdGNoRXJyb3JFdmVudCk7
CisgICAgbV9pbkRpc3BhdGNoRXJyb3JFdmVudCA9IHRydWU7CisgICAgUmVmUHRyPEVycm9yRXZl
bnQ+IGVycm9yRXZlbnQoRXJyb3JFdmVudDo6Y3JlYXRlKHdyYXBwZXJXb3JsZCwgZXJyb3JNZXNz
YWdlLCBzb3VyY2VVUkwsIGxpbmVOdW1iZXIpKTsKKyAgICB0YXJnZXQtPmRpc3BhdGNoRXZlbnQo
ZXJyb3JFdmVudCk7CisgICAgbV9pbkRpc3BhdGNoRXJyb3JFdmVudCA9IGZhbHNlOworICAgIHJl
dHVybiBlcnJvckV2ZW50LT5kZWZhdWx0UHJldmVudGVkKCk7Cit9CisKIHZvaWQgU2NyaXB0RXhl
Y3V0aW9uQ29udGV4dDo6YWRkVGltZW91dChpbnQgdGltZW91dElkLCBET01UaW1lciogdGltZXIp
CiB7CiAgICAgQVNTRVJUKCFtX3RpbWVvdXRzLmNvbnRhaW5zKHRpbWVvdXRJZCkpOwpkaWZmIC0t
Z2l0IGEvV2ViQ29yZS9kb20vU2NyaXB0RXhlY3V0aW9uQ29udGV4dC5oIGIvV2ViQ29yZS9kb20v
U2NyaXB0RXhlY3V0aW9uQ29udGV4dC5oCmluZGV4IGQzOWNiNjQuLjkyMDI0OTEgMTAwNjQ0Ci0t
LSBhL1dlYkNvcmUvZG9tL1NjcmlwdEV4ZWN1dGlvbkNvbnRleHQuaAorKysgYi9XZWJDb3JlL2Rv
bS9TY3JpcHRFeGVjdXRpb25Db250ZXh0LmgKQEAgLTMzLDYgKzMzLDcgQEAKICNpbmNsdWRlIDx3
dGYvRm9yd2FyZC5oPgogI2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+CiAjaW5jbHVkZSA8d3RmL0hh
c2hTZXQuaD4KKyNpbmNsdWRlIDx3dGYvT3duUHRyLmg+CiAjaW5jbHVkZSA8d3RmL1Bhc3NPd25Q
dHIuaD4KICNpbmNsdWRlIDx3dGYvUGFzc1JlZlB0ci5oPgogI2luY2x1ZGUgPHd0Zi9SZWZQdHIu
aD4KQEAgLTUyLDExICs1MywxNSBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgY2xhc3MgRGF0
YWJhc2VUaHJlYWQ7CiAjZW5kaWYKICAgICBjbGFzcyBET01UaW1lcjsKKyAgICBjbGFzcyBET01X
cmFwcGVyV29ybGQ7CisgICAgY2xhc3MgRXZlbnRMaXN0ZW5lcjsKKyAgICBjbGFzcyBFdmVudFRh
cmdldDsKICNpZiBFTkFCTEUoQkxPQikgfHwgRU5BQkxFKEZJTEVfU1lTVEVNKQogICAgIGNsYXNz
IEZpbGVUaHJlYWQ7CiAjZW5kaWYKICAgICBjbGFzcyBNZXNzYWdlUG9ydDsKICAgICBjbGFzcyBT
ZWN1cml0eU9yaWdpbjsKKyAgICBjbGFzcyBTY3JpcHRDYWxsU3RhY2s7CiAgICAgY2xhc3MgU2Ny
aXB0U3RyaW5nOwogI2lmIEVOQUJMRShJTlNQRUNUT1IpCiAgICAgY2xhc3MgSW5zcGVjdG9yQ29u
dHJvbGxlcjsKQEAgLTkyLDcgKzk3LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICB2
aXJ0dWFsIEluc3BlY3RvckNvbnRyb2xsZXIqIGluc3BlY3RvckNvbnRyb2xsZXIoKSBjb25zdCB7
IHJldHVybiAwOyB9CiAjZW5kaWYKIAotICAgICAgICB2aXJ0dWFsIHZvaWQgcmVwb3J0RXhjZXB0
aW9uKGNvbnN0IFN0cmluZyYgZXJyb3JNZXNzYWdlLCBpbnQgbGluZU51bWJlciwgY29uc3QgU3Ry
aW5nJiBzb3VyY2VVUkwpID0gMDsKKyAgICAgICAgdmlydHVhbCB2b2lkIHJlcG9ydEV4Y2VwdGlv
bihET01XcmFwcGVyV29ybGQqLCBjb25zdCBTdHJpbmcmIGVycm9yTWVzc2FnZSwgaW50IGxpbmVO
dW1iZXIsIGNvbnN0IFN0cmluZyYgc291cmNlVVJMLCBQYXNzT3duUHRyPFNjcmlwdENhbGxTdGFj
az4pOwogICAgICAgICB2aXJ0dWFsIHZvaWQgYWRkTWVzc2FnZShNZXNzYWdlU291cmNlLCBNZXNz
YWdlVHlwZSwgTWVzc2FnZUxldmVsLCBjb25zdCBTdHJpbmcmIG1lc3NhZ2UsIHVuc2lnbmVkIGxp
bmVOdW1iZXIsIGNvbnN0IFN0cmluZyYgc291cmNlVVJMKSA9IDA7CiAKICAgICAgICAgLy8gQWN0
aXZlIG9iamVjdHMgYXJlIG5vdCBnYXJiYWdlIGNvbGxlY3RlZCBldmVuIGlmIGluYWNjZXNzaWJs
ZSwgZS5nLiBiZWNhdXNlIHRoZWlyIGFjdGl2aXR5IG1heSByZXN1bHQgaW4gY2FsbGJhY2tzIGJl
aW5nIGludm9rZWQuCkBAIC0xNTUsNiArMTYwLDEwIEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAg
ICAgICAgdmlydHVhbCBjb25zdCBLVVJMJiB2aXJ0dWFsVVJMKCkgY29uc3QgPSAwOwogICAgICAg
ICB2aXJ0dWFsIEtVUkwgdmlydHVhbENvbXBsZXRlVVJMKGNvbnN0IFN0cmluZyYpIGNvbnN0ID0g
MDsKIAorICAgICAgICB2aXJ0dWFsIEV2ZW50VGFyZ2V0KiBlcnJvckV2ZW50VGFyZ2V0KCkgPSAw
OworICAgICAgICB2aXJ0dWFsIHZvaWQgbG9nRXhjZXB0aW9uVG9Db25zb2xlKGNvbnN0IFN0cmlu
ZyYgZXJyb3JNZXNzYWdlLCBpbnQgbGluZU51bWJlciwgY29uc3QgU3RyaW5nJiBzb3VyY2VVUkws
IFNjcmlwdENhbGxTdGFjayopID0gMDsKKyAgICAgICAgYm9vbCBkaXNwYXRjaEVycm9yRXZlbnQo
RE9NV3JhcHBlcldvcmxkKiwgY29uc3QgU3RyaW5nJiBlcnJvck1lc3NhZ2UsIGludCBsaW5lTnVt
YmVyLCBjb25zdCBTdHJpbmcmIHNvdXJjZVVSTCk7CisKICAgICAgICAgdm9pZCBjbG9zZU1lc3Nh
Z2VQb3J0cygpOwogCiAgICAgICAgIFJlZlB0cjxTZWN1cml0eU9yaWdpbj4gbV9zZWN1cml0eU9y
aWdpbjsKQEAgLTE4MCw2ICsxODksMTUgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogI2lmIEVOQUJM
RShCTE9CKSB8fCBFTkFCTEUoRklMRV9TWVNURU0pCiAgICAgICAgIFJlZlB0cjxGaWxlVGhyZWFk
PiBtX2ZpbGVUaHJlYWQ7CiAjZW5kaWYKKyAgICAgICAgYm9vbCBtX2luRGlzcGF0Y2hFcnJvckV2
ZW50OworICAgICAgICBzdHJ1Y3QgUGVuZGluZ0V4Y2VwdGlvbiA6IHB1YmxpYyBOb25jb3B5YWJs
ZSB7CisgICAgICAgICAgICBQZW5kaW5nRXhjZXB0aW9uKGNvbnN0IFN0cmluZyYgZXJyb3JNZXNz
YWdlLCBpbnQgbGluZU51bWJlciwgY29uc3QgU3RyaW5nJiBzb3VyY2VVUkwsIFBhc3NPd25QdHI8
U2NyaXB0Q2FsbFN0YWNrPiBjYWxsU3RhY2spOworICAgICAgICAgICAgU3RyaW5nIG1fZXJyb3JN
ZXNzYWdlOworICAgICAgICAgICAgaW50IG1fbGluZU51bWJlcjsKKyAgICAgICAgICAgIFN0cmlu
ZyBtX3NvdXJjZVVSTDsKKyAgICAgICAgICAgIE93blB0cjxTY3JpcHRDYWxsU3RhY2s+IG1fY2Fs
bFN0YWNrOworICAgICAgICB9OworICAgICAgICBPd25QdHI8VmVjdG9yPE93blB0cjxQZW5kaW5n
RXhjZXB0aW9uPiA+ID4gbV9wZW5kaW5nRXhjZXB0aW9uczsKICAgICB9OwogCiB9IC8vIG5hbWVz
cGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9XZWJDb3JlL3dvcmtlcnMvRGVmYXVsdFNoYXJlZFdv
cmtlclJlcG9zaXRvcnkuY3BwIGIvV2ViQ29yZS93b3JrZXJzL0RlZmF1bHRTaGFyZWRXb3JrZXJS
ZXBvc2l0b3J5LmNwcAppbmRleCA0YThlOTQ3Li5jNzA5OTgwIDEwMDY0NAotLS0gYS9XZWJDb3Jl
L3dvcmtlcnMvRGVmYXVsdFNoYXJlZFdvcmtlclJlcG9zaXRvcnkuY3BwCisrKyBiL1dlYkNvcmUv
d29ya2Vycy9EZWZhdWx0U2hhcmVkV29ya2VyUmVwb3NpdG9yeS5jcHAKQEAgLTQyLDYgKzQyLDcg
QEAKICNpbmNsdWRlICJNZXNzYWdlUG9ydC5oIgogI2luY2x1ZGUgIk5vdEltcGxlbWVudGVkLmgi
CiAjaW5jbHVkZSAiUGxhdGZvcm1TdHJpbmcuaCIKKyNpbmNsdWRlICJTY3JpcHRDYWxsU3RhY2su
aCIKICNpbmNsdWRlICJTZWN1cml0eU9yaWdpbi5oIgogI2luY2x1ZGUgIlNlY3VyaXR5T3JpZ2lu
SGFzaC5oIgogI2luY2x1ZGUgIlNoYXJlZFdvcmtlci5oIgpAQCAtMTU1LDcgKzE1Niw3IEBAIHZv
aWQgU2hhcmVkV29ya2VyUHJveHk6OnBvc3RUYXNrRm9yTW9kZVRvV29ya2VyQ29udGV4dChQYXNz
T3duUHRyPFNjcmlwdEV4ZWN1dGlvCiAKIHN0YXRpYyB2b2lkIHBvc3RFeGNlcHRpb25UYXNrKFNj
cmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQsIGNvbnN0IFN0cmluZyYgZXJyb3JNZXNzYWdl
LCBpbnQgbGluZU51bWJlciwgY29uc3QgU3RyaW5nJiBzb3VyY2VVUkwpCiB7Ci0gICAgY29udGV4
dC0+cmVwb3J0RXhjZXB0aW9uKGVycm9yTWVzc2FnZSwgbGluZU51bWJlciwgc291cmNlVVJMKTsK
KyAgICBjb250ZXh0LT5yZXBvcnRFeGNlcHRpb24oMCwgZXJyb3JNZXNzYWdlLCBsaW5lTnVtYmVy
LCBzb3VyY2VVUkwsIDApOwogfQogCiB2b2lkIFNoYXJlZFdvcmtlclByb3h5Ojpwb3N0RXhjZXB0
aW9uVG9Xb3JrZXJPYmplY3QoY29uc3QgU3RyaW5nJiBlcnJvck1lc3NhZ2UsIGludCBsaW5lTnVt
YmVyLCBjb25zdCBTdHJpbmcmIHNvdXJjZVVSTCkKZGlmZiAtLWdpdCBhL1dlYkNvcmUvd29ya2Vy
cy9Xb3JrZXJDb250ZXh0LmNwcCBiL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJDb250ZXh0LmNwcApp
bmRleCA0OTY0ZDA1Li5lZjk1YTc0IDEwMDY0NAotLS0gYS9XZWJDb3JlL3dvcmtlcnMvV29ya2Vy
Q29udGV4dC5jcHAKKysrIGIvV2ViQ29yZS93b3JrZXJzL1dvcmtlckNvbnRleHQuY3BwCkBAIC05
OCw3ICs5OCw2IEBAIFdvcmtlckNvbnRleHQ6OldvcmtlckNvbnRleHQoY29uc3QgS1VSTCYgdXJs
LCBjb25zdCBTdHJpbmcmIHVzZXJBZ2VudCwgV29ya2VyVGhyCiAgICAgLCBtX3NjcmlwdChuZXcg
V29ya2VyU2NyaXB0Q29udHJvbGxlcih0aGlzKSkKICAgICAsIG1fdGhyZWFkKHRocmVhZCkKICAg
ICAsIG1fY2xvc2luZyhmYWxzZSkKLSAgICAsIG1fcmVwb3J0aW5nRXhjZXB0aW9uKGZhbHNlKQog
ewogICAgIHNldFNlY3VyaXR5T3JpZ2luKFNlY3VyaXR5T3JpZ2luOjpjcmVhdGUodXJsKSk7CiB9
CkBAIC0yNTUsMjAgKzI1NCwxMyBAQCB2b2lkIFdvcmtlckNvbnRleHQ6OmltcG9ydFNjcmlwdHMo
Y29uc3QgVmVjdG9yPFN0cmluZz4mIHVybHMsIEV4Y2VwdGlvbkNvZGUmIGVjKQogICAgIH0KIH0K
IAotdm9pZCBXb3JrZXJDb250ZXh0OjpyZXBvcnRFeGNlcHRpb24oY29uc3QgU3RyaW5nJiBlcnJv
ck1lc3NhZ2UsIGludCBsaW5lTnVtYmVyLCBjb25zdCBTdHJpbmcmIHNvdXJjZVVSTCkKK0V2ZW50
VGFyZ2V0KiBXb3JrZXJDb250ZXh0OjplcnJvckV2ZW50VGFyZ2V0KCkKIHsKLSAgICBib29sIGVy
cm9ySGFuZGxlZCA9IGZhbHNlOwotICAgIGlmICghbV9yZXBvcnRpbmdFeGNlcHRpb24pIHsKLSAg
ICAgICAgaWYgKG9uZXJyb3IoKSkgewotICAgICAgICAgICAgbV9yZXBvcnRpbmdFeGNlcHRpb24g
PSB0cnVlOwotICAgICAgICAgICAgUmVmUHRyPEVycm9yRXZlbnQ+IGVycm9yRXZlbnQoRXJyb3JF
dmVudDo6Y3JlYXRlKGVycm9yTWVzc2FnZSwgc291cmNlVVJMLCBsaW5lTnVtYmVyKSk7Ci0gICAg
ICAgICAgICBvbmVycm9yKCktPmhhbmRsZUV2ZW50KHRoaXMsIGVycm9yRXZlbnQuZ2V0KCkpOwot
ICAgICAgICAgICAgZXJyb3JIYW5kbGVkID0gZXJyb3JFdmVudC0+ZGVmYXVsdFByZXZlbnRlZCgp
OwotICAgICAgICAgICAgbV9yZXBvcnRpbmdFeGNlcHRpb24gPSBmYWxzZTsKLSAgICAgICAgfQot
ICAgIH0KLSAgICBpZiAoIWVycm9ySGFuZGxlZCkKLSAgICAgICAgdGhyZWFkKCktPndvcmtlclJl
cG9ydGluZ1Byb3h5KCkucG9zdEV4Y2VwdGlvblRvV29ya2VyT2JqZWN0KGVycm9yTWVzc2FnZSwg
bGluZU51bWJlciwgc291cmNlVVJMKTsKKyAgICByZXR1cm4gdGhpczsKK30KK3ZvaWQgV29ya2Vy
Q29udGV4dDo6bG9nRXhjZXB0aW9uVG9Db25zb2xlKGNvbnN0IFN0cmluZyYgZXJyb3JNZXNzYWdl
LCBpbnQgbGluZU51bWJlciwgY29uc3QgU3RyaW5nJiBzb3VyY2VVUkwsIFNjcmlwdENhbGxTdGFj
ayopCit7CisgICAgdGhyZWFkKCktPndvcmtlclJlcG9ydGluZ1Byb3h5KCkucG9zdEV4Y2VwdGlv
blRvV29ya2VyT2JqZWN0KGVycm9yTWVzc2FnZSwgbGluZU51bWJlciwgc291cmNlVVJMKTsKIH0K
IAogdm9pZCBXb3JrZXJDb250ZXh0OjphZGRNZXNzYWdlKE1lc3NhZ2VTb3VyY2Ugc291cmNlLCBN
ZXNzYWdlVHlwZSB0eXBlLCBNZXNzYWdlTGV2ZWwgbGV2ZWwsIGNvbnN0IFN0cmluZyYgbWVzc2Fn
ZSwgdW5zaWduZWQgbGluZU51bWJlciwgY29uc3QgU3RyaW5nJiBzb3VyY2VVUkwpCmRpZmYgLS1n
aXQgYS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyQ29udGV4dC5oIGIvV2ViQ29yZS93b3JrZXJzL1dv
cmtlckNvbnRleHQuaAppbmRleCA0MTI4YTU2Li44MTczMDA2IDEwMDY0NAotLS0gYS9XZWJDb3Jl
L3dvcmtlcnMvV29ya2VyQ29udGV4dC5oCisrKyBiL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJDb250
ZXh0LmgKQEAgLTk5LDcgKzk5LDYgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICB2b2lk
IGNsZWFySW50ZXJ2YWwoaW50IHRpbWVvdXRJZCk7CiAKICAgICAgICAgLy8gU2NyaXB0RXhlY3V0
aW9uQ29udGV4dAotICAgICAgICB2aXJ0dWFsIHZvaWQgcmVwb3J0RXhjZXB0aW9uKGNvbnN0IFN0
cmluZyYgZXJyb3JNZXNzYWdlLCBpbnQgbGluZU51bWJlciwgY29uc3QgU3RyaW5nJiBzb3VyY2VV
UkwpOwogICAgICAgICB2aXJ0dWFsIHZvaWQgYWRkTWVzc2FnZShNZXNzYWdlU291cmNlLCBNZXNz
YWdlVHlwZSwgTWVzc2FnZUxldmVsLCBjb25zdCBTdHJpbmcmIG1lc3NhZ2UsIHVuc2lnbmVkIGxp
bmVOdW1iZXIsIGNvbnN0IFN0cmluZyYgc291cmNlVVJMKTsKIAogI2lmIEVOQUJMRShOT1RJRklD
QVRJT05TKQpAQCAtMTcyLDYgKzE3MSw5IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAg
dmlydHVhbCBjb25zdCBLVVJMJiB2aXJ0dWFsVVJMKCkgY29uc3Q7CiAgICAgICAgIHZpcnR1YWwg
S1VSTCB2aXJ0dWFsQ29tcGxldGVVUkwoY29uc3QgU3RyaW5nJikgY29uc3Q7CiAKKyAgICAgICAg
dmlydHVhbCBFdmVudFRhcmdldCogZXJyb3JFdmVudFRhcmdldCgpOworICAgICAgICB2aXJ0dWFs
IHZvaWQgbG9nRXhjZXB0aW9uVG9Db25zb2xlKGNvbnN0IFN0cmluZyYgZXJyb3JNZXNzYWdlLCBp
bnQgbGluZU51bWJlciwgY29uc3QgU3RyaW5nJiBzb3VyY2VVUkwsIFNjcmlwdENhbGxTdGFjayop
OworCiAgICAgICAgIEtVUkwgbV91cmw7CiAgICAgICAgIFN0cmluZyBtX3VzZXJBZ2VudDsKIApA
QCAtMTg1LDcgKzE4Nyw2IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgbXV0YWJsZSBS
ZWZQdHI8Tm90aWZpY2F0aW9uQ2VudGVyPiBtX25vdGlmaWNhdGlvbnM7CiAjZW5kaWYKICAgICAg
ICAgYm9vbCBtX2Nsb3Npbmc7Ci0gICAgICAgIGJvb2wgbV9yZXBvcnRpbmdFeGNlcHRpb247CiAg
ICAgICAgIEV2ZW50VGFyZ2V0RGF0YSBtX2V2ZW50VGFyZ2V0RGF0YTsKIAogICAgICAgICBIYXNo
U2V0PE9ic2VydmVyKj4gbV93b3JrZXJPYnNlcnZlcnM7CmRpZmYgLS1naXQgYS9XZWJDb3JlL3dv
cmtlcnMvV29ya2VyTWVzc2FnaW5nUHJveHkuY3BwIGIvV2ViQ29yZS93b3JrZXJzL1dvcmtlck1l
c3NhZ2luZ1Byb3h5LmNwcAppbmRleCAxMDcwMGM2Li5hNzY2ZDYwIDEwMDY0NAotLS0gYS9XZWJD
b3JlL3dvcmtlcnMvV29ya2VyTWVzc2FnaW5nUHJveHkuY3BwCisrKyBiL1dlYkNvcmUvd29ya2Vy
cy9Xb3JrZXJNZXNzYWdpbmdQcm94eS5jcHAKQEAgLTQwLDYgKzQwLDcgQEAKICNpbmNsdWRlICJF
eGNlcHRpb25Db2RlLmgiCiAjaW5jbHVkZSAiSW5zcGVjdG9yQ29udHJvbGxlci5oIgogI2luY2x1
ZGUgIk1lc3NhZ2VFdmVudC5oIgorI2luY2x1ZGUgIlNjcmlwdENhbGxTdGFjay5oIgogI2luY2x1
ZGUgIlNjcmlwdEV4ZWN1dGlvbkNvbnRleHQuaCIKICNpbmNsdWRlICJXb3JrZXIuaCIKIApAQCAt
MTI5LDkgKzEzMCw5IEBAIHByaXZhdGU6CiAgICAgICAgIC8vIFdlIGRvbid0IGJvdGhlciBjaGVj
a2luZyB0aGUgYXNrZWRUb1Rlcm1pbmF0ZSgpIGZsYWcgaGVyZSwgYmVjYXVzZSBleGNlcHRpb25z
IHNob3VsZCAqYWx3YXlzKiBiZSByZXBvcnRlZCBldmVuIGlmIHRoZSB0aHJlYWQgaXMgdGVybWlu
YXRlZC4KICAgICAgICAgLy8gVGhpcyBpcyBpbnRlbnRpb25hbGx5IGRpZmZlcmVudCB0aGFuIHRo
ZSBiZWhhdmlvciBpbiBNZXNzYWdlV29ya2VyVGFzaywgYmVjYXVzZSB0ZXJtaW5hdGVkIHdvcmtl
cnMgbm8gbG9uZ2VyIGRlbGl2ZXIgbWVzc2FnZXMgKHNlY3Rpb24gNC42IG9mIHRoZSBXZWJXb3Jr
ZXIgc3BlYyksIGJ1dCB0aGV5IGRvIHJlcG9ydCBleGNlcHRpb25zLgogCi0gICAgICAgIGJvb2wg
ZXJyb3JIYW5kbGVkID0gIXdvcmtlck9iamVjdC0+ZGlzcGF0Y2hFdmVudChFcnJvckV2ZW50Ojpj
cmVhdGUobV9lcnJvck1lc3NhZ2UsIG1fc291cmNlVVJMLCBtX2xpbmVOdW1iZXIpKTsKKyAgICAg
ICAgYm9vbCBlcnJvckhhbmRsZWQgPSAhd29ya2VyT2JqZWN0LT5kaXNwYXRjaEV2ZW50KEVycm9y
RXZlbnQ6OmNyZWF0ZSgwLCBtX2Vycm9yTWVzc2FnZSwgbV9zb3VyY2VVUkwsIG1fbGluZU51bWJl
cikpOwogICAgICAgICBpZiAoIWVycm9ySGFuZGxlZCkKLSAgICAgICAgICAgIGNvbnRleHQtPnJl
cG9ydEV4Y2VwdGlvbihtX2Vycm9yTWVzc2FnZSwgbV9saW5lTnVtYmVyLCBtX3NvdXJjZVVSTCk7
CisgICAgICAgICAgICBjb250ZXh0LT5yZXBvcnRFeGNlcHRpb24oMCwgbV9lcnJvck1lc3NhZ2Us
IG1fbGluZU51bWJlciwgbV9zb3VyY2VVUkwsIDApOwogICAgIH0KIAogICAgIFN0cmluZyBtX2Vy
cm9yTWVzc2FnZTsKZGlmZiAtLWdpdCBhL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViV29ya2VyQ2xp
ZW50SW1wbC5jcHAgYi9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYldvcmtlckNsaWVudEltcGwuY3Bw
Cm9sZCBtb2RlIDEwMDY0NApuZXcgbW9kZSAxMDA3NTUKaW5kZXggMTgyODJlMy4uZDA3ZDZjMQot
LS0gYS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYldvcmtlckNsaWVudEltcGwuY3BwCisrKyBiL1dl
YktpdC9jaHJvbWl1bS9zcmMvV2ViV29ya2VyQ2xpZW50SW1wbC5jcHAKQEAgLTQxLDYgKzQxLDcg
QEAKICNpbmNsdWRlICJNZXNzYWdlRXZlbnQuaCIKICNpbmNsdWRlICJNZXNzYWdlUG9ydC5oIgog
I2luY2x1ZGUgIk1lc3NhZ2VQb3J0Q2hhbm5lbC5oIgorI2luY2x1ZGUgIlNjcmlwdENhbGxTdGFj
ay5oIgogI2luY2x1ZGUgIlNjcmlwdEV4ZWN1dGlvbkNvbnRleHQuaCIKICNpbmNsdWRlICJXb3Jr
ZXIuaCIKICNpbmNsdWRlICJXb3JrZXJDb250ZXh0LmgiCkBAIC0yNDMsMTEgKzI0NCwxMiBAQCB2
b2lkIFdlYldvcmtlckNsaWVudEltcGw6OnBvc3RFeGNlcHRpb25Ub1dvcmtlck9iamVjdChjb25z
dCBXZWJTdHJpbmcmIGVycm9yTWVzcwogICAgICAgICByZXR1cm47CiAgICAgfQogCi0gICAgYm9v
bCB1bmhhbmRsZWQgPSBtX3dvcmtlci0+ZGlzcGF0Y2hFdmVudChFcnJvckV2ZW50OjpjcmVhdGUo
ZXJyb3JNZXNzYWdlLAorICAgIGJvb2wgdW5oYW5kbGVkID0gbV93b3JrZXItPmRpc3BhdGNoRXZl
bnQoRXJyb3JFdmVudDo6Y3JlYXRlKDAsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXJyb3JNZXNzYWdlLAogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNv
dXJjZVVSTCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBsaW5lTnVtYmVyKSk7CiAgICAgaWYgKHVuaGFuZGxlZCkKLSAgICAg
ICAgbV9zY3JpcHRFeGVjdXRpb25Db250ZXh0LT5yZXBvcnRFeGNlcHRpb24oZXJyb3JNZXNzYWdl
LCBsaW5lTnVtYmVyLCBzb3VyY2VVUkwpOworICAgICAgICBtX3NjcmlwdEV4ZWN1dGlvbkNvbnRl
eHQtPnJlcG9ydEV4Y2VwdGlvbigwLCBlcnJvck1lc3NhZ2UsIGxpbmVOdW1iZXIsIHNvdXJjZVVS
TCwgMCk7CiB9CiAKIHZvaWQgV2ViV29ya2VyQ2xpZW50SW1wbDo6cG9zdENvbnNvbGVNZXNzYWdl
VG9Xb3JrZXJPYmplY3QoaW50IGRlc3RpbmF0aW9uLApAQCAtMzc3LDEzICszNzksMTYgQEAgdm9p
ZCBXZWJXb3JrZXJDbGllbnRJbXBsOjpwb3N0RXhjZXB0aW9uVG9Xb3JrZXJPYmplY3RUYXNrKAog
ewogICAgIGJvb2wgaGFuZGxlZCA9IGZhbHNlOwogICAgIGlmICh0aGlzUHRyLT5tX3dvcmtlcikK
LSAgICAgICAgaGFuZGxlZCA9IHRoaXNQdHItPm1fd29ya2VyLT5kaXNwYXRjaEV2ZW50KEVycm9y
RXZlbnQ6OmNyZWF0ZShlcnJvck1lc3NhZ2UsCisgICAgICAgIGhhbmRsZWQgPSB0aGlzUHRyLT5t
X3dvcmtlci0+ZGlzcGF0Y2hFdmVudChFcnJvckV2ZW50OjpjcmVhdGUoMCwKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBlcnJvck1lc3NhZ2UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc291cmNlVVJMLAogICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxp
bmVOdW1iZXIpKTsKICAgICBpZiAoIWhhbmRsZWQpCi0gICAgICAgIHRoaXNQdHItPm1fc2NyaXB0
RXhlY3V0aW9uQ29udGV4dC0+cmVwb3J0RXhjZXB0aW9uKGVycm9yTWVzc2FnZSwKKyAgICAgICAg
dGhpc1B0ci0+bV9zY3JpcHRFeGVjdXRpb25Db250ZXh0LT5yZXBvcnRFeGNlcHRpb24oMCwKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ZXJyb3JNZXNzYWdlLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBsaW5lTnVtYmVyLAotICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzb3VyY2VVUkwpOworICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzb3VyY2VVUkws
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIDApOwogfQogCiB2b2lkIFdlYldvcmtlckNsaWVudEltcGw6OnBvc3RDb25zb2xlTWVzc2Fn
ZVRvV29ya2VyT2JqZWN0VGFzayhTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0LAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>69462</attachid>
            <date>2010-10-01 06:35:41 -0700</date>
            <delta_ts>2010-10-01 09:25:51 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-8519-20101001173537.patch</filename>
            <type>text/plain</type>
            <size>107052</size>
            <attacher name="Yury Semikhatsky">yurys</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCBmOTdkZmZlM2YwZTlkOWYwYTNhZTY0YmI2ZDFmOWRlNDMyY2I1NzlmLi4zYzY4MTQx
YTk5ZDcxMTI1NzU0NTNjZjg2ZWRlOGJkZTY3NjJjN2E3IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNjEgQEAK
KzIwMTAtMTAtMDEgIFl1cnkgU2VtaWtoYXRza3kgIDx5dXJ5c0BjaHJvbWl1bS5vcmc+CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgV2ViQ29yZSBkb2Vz
bid0IGZpcmUgd2luZG93Lm9uZXJyb3IgZXZlbnQgd2hlbiB1bmNhdWdodCBKYXZhU2NyaXB0IGV4
Y2VwdGlvbnMgYXJlIHRocm93bgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9ODUxOQorCisgICAgICAgIFVuY2F1Z2h0IGV4Y2VwdGlvbnMgYXJlIHByb3Bh
Z2F0ZWQgdG8gd2luZG93Lm9uZXJyb3IgaGFuZGVyIGlmIG9uZSBpcyBwcmVzZW50LgorICAgICAg
ICBUaGUgaGFuZGxlciBpcyBleHBlY3RlZCB0byBiZSBhIGZ1bmN0aW9uIGFjY2VwdGluZyB0aHJl
ZSBhcmd1bWVudHM6IGVycm9yIG1lc3NhZ2UsCisgICAgICAgIHJlc291cmNlIHVybCBhbmQgbGlu
ZSBudW1iZXIgd2hlcmUgdGhlIGV4Y2VwdGlvbiBvY2N1cmVkLgorCisgICAgICAgICogZmFzdC9l
dmVudHMvcmVzb3VyY2VzL3dpbmRvdy1vbmVycm9yLmpzOiBBZGRlZC4KKyAgICAgICAgKHRocm93
RXhjZXB0aW9uKToKKyAgICAgICAgKiBmYXN0L2V2ZW50cy93aW5kb3ctb25lcnJvcjEtZXhwZWN0
ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2V2ZW50cy93aW5kb3ctb25lcnJvcjEuaHRt
bDogQWRkZWQuCisgICAgICAgICogZmFzdC9ldmVudHMvd2luZG93LW9uZXJyb3IxMC1leHBlY3Rl
ZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZXZlbnRzL3dpbmRvdy1vbmVycm9yMTAuaHRt
bDogQWRkZWQuCisgICAgICAgICogZmFzdC9ldmVudHMvd2luZG93LW9uZXJyb3IxMS1leHBlY3Rl
ZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZXZlbnRzL3dpbmRvdy1vbmVycm9yMTEuaHRt
bDogQWRkZWQuCisgICAgICAgICogZmFzdC9ldmVudHMvd2luZG93LW9uZXJyb3IyLWV4cGVjdGVk
LnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC9ldmVudHMvd2luZG93LW9uZXJyb3IyLmh0bWw6
IEFkZGVkLgorICAgICAgICAqIGZhc3QvZXZlbnRzL3dpbmRvdy1vbmVycm9yMy1leHBlY3RlZC50
eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZXZlbnRzL3dpbmRvdy1vbmVycm9yMy5odG1sOiBB
ZGRlZC4KKyAgICAgICAgKiBmYXN0L2V2ZW50cy93aW5kb3ctb25lcnJvcjQtZXhwZWN0ZWQudHh0
OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2V2ZW50cy93aW5kb3ctb25lcnJvcjQuaHRtbDogQWRk
ZWQuCisgICAgICAgICogZmFzdC9ldmVudHMvd2luZG93LW9uZXJyb3I1LWV4cGVjdGVkLnR4dDog
QWRkZWQuCisgICAgICAgICogZmFzdC9ldmVudHMvd2luZG93LW9uZXJyb3I1Lmh0bWw6IEFkZGVk
LgorICAgICAgICAqIGZhc3QvZXZlbnRzL3dpbmRvdy1vbmVycm9yNi1leHBlY3RlZC50eHQ6IEFk
ZGVkLgorICAgICAgICAqIGZhc3QvZXZlbnRzL3dpbmRvdy1vbmVycm9yNi5odG1sOiBBZGRlZC4K
KyAgICAgICAgKiBmYXN0L2V2ZW50cy93aW5kb3ctb25lcnJvcjctZXhwZWN0ZWQudHh0OiBBZGRl
ZC4KKyAgICAgICAgKiBmYXN0L2V2ZW50cy93aW5kb3ctb25lcnJvcjcuaHRtbDogQWRkZWQuCisg
ICAgICAgICogZmFzdC9ldmVudHMvd2luZG93LW9uZXJyb3I4LWV4cGVjdGVkLnR4dDogQWRkZWQu
CisgICAgICAgICogZmFzdC9ldmVudHMvd2luZG93LW9uZXJyb3I4Lmh0bWw6IEFkZGVkLgorICAg
ICAgICAqIGZhc3QvZXZlbnRzL3dpbmRvdy1vbmVycm9yOS1leHBlY3RlZC50eHQ6IEFkZGVkLgor
ICAgICAgICAqIGZhc3QvZXZlbnRzL3dpbmRvdy1vbmVycm9yOS5odG1sOiBBZGRlZC4KKyAgICAg
ICAgKiBmYXN0L3dvcmtlcnMvd29ya2VyLXNjcmlwdC1lcnJvci1leHBlY3RlZC50eHQ6CisgICAg
ICAgICogaHR0cC90ZXN0cy9pbnNwZWN0b3IvcmVzb3VyY2UtY29udGVudC1sZW5ndGgtZXhwZWN0
ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL2luc3BlY3Rvci9yZXNvdXJjZXMv
aW1hZ2UuaHRtbDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9zZWN1cml0eS9yZXNvdXJj
ZXMvb25lcnJvci1pZnJhbWUuaHRtbDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9zZWN1
cml0eS93aW5kb3ctb25lcnJvci1leGNlcHRpb24taW4taWZyYW1lLWV4cGVjdGVkLnR4dDogQWRk
ZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9zZWN1cml0eS93aW5kb3ctb25lcnJvci1leGNlcHRp
b24taW4taWZyYW1lLmh0bWw6IEFkZGVkLgorICAgICAgICAqIHBsYXRmb3JtL2Nocm9taXVtLXdp
bi9mYXN0L3dvcmtlcnMvd29ya2VyLXNjcmlwdC1lcnJvci1leHBlY3RlZC50eHQ6CisgICAgICAg
ICogcGxhdGZvcm0vY2hyb21pdW0vZmFzdC9ldmVudHMvd2luZG93LW9uZXJyb3IxLWV4cGVjdGVk
LnR4dDogQWRkZWQuCisgICAgICAgICogcGxhdGZvcm0vY2hyb21pdW0vZmFzdC9ldmVudHMvd2lu
ZG93LW9uZXJyb3IxMC1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIHBsYXRmb3JtL2No
cm9taXVtL2Zhc3QvZXZlbnRzL3dpbmRvdy1vbmVycm9yMTEtZXhwZWN0ZWQudHh0OiBBZGRlZC4K
KyAgICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS9mYXN0L2V2ZW50cy93aW5kb3ctb25lcnJvcjIt
ZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS9mYXN0L2V2
ZW50cy93aW5kb3ctb25lcnJvcjMtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBwbGF0
Zm9ybS9jaHJvbWl1bS9mYXN0L2V2ZW50cy93aW5kb3ctb25lcnJvcjQtZXhwZWN0ZWQudHh0OiBB
ZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS9mYXN0L2V2ZW50cy93aW5kb3ctb25l
cnJvcjUtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS9m
YXN0L2V2ZW50cy93aW5kb3ctb25lcnJvcjYtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAg
KiBwbGF0Zm9ybS9jaHJvbWl1bS9mYXN0L2V2ZW50cy93aW5kb3ctb25lcnJvcjctZXhwZWN0ZWQu
dHh0OiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS9mYXN0L2V2ZW50cy93aW5k
b3ctb25lcnJvcjgtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9jaHJv
bWl1bS9mYXN0L2V2ZW50cy93aW5kb3ctb25lcnJvcjktZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAg
ICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS9odHRwL3Rlc3RzL3NlY3VyaXR5L3dpbmRvdy1vbmVy
cm9yLWV4Y2VwdGlvbi1pbi1pZnJhbWUtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBw
bGF0Zm9ybS9jaHJvbWl1bS91c2Vyc2NyaXB0cy93aW5kb3ctb25lcnJvci1mb3ItaXNvbGF0ZWQt
d29ybGQtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiB1c2Vyc2NyaXB0cy93aW5kb3ct
b25lcnJvci1mb3ItaXNvbGF0ZWQtd29ybGQtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAg
KiB1c2Vyc2NyaXB0cy93aW5kb3ctb25lcnJvci1mb3ItaXNvbGF0ZWQtd29ybGQuaHRtbDogQWRk
ZWQuCisKIDIwMTAtMTAtMDEgIENzYWJhIE9zenRyb2dvbsOhYyAgPG9zc3lAd2Via2l0Lm9yZz4K
IAogICAgICAgICBVbnJldmlld2VkIHJvbGxpbmcgb3V0IHI2ODYzMywgYmVjYXVzZSB3ZSBkb24n
dCBuZWVkIFF0IHNwZWNpZmljIGV4cGVjdGVkIHJlc3VsdHMgYW55IG1vcmUuCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9yZXNvdXJjZXMvd2luZG93LW9uZXJyb3IuanMgYi9M
YXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9yZXNvdXJjZXMvd2luZG93LW9uZXJyb3IuanMKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uMzQ0NTc0YmI2NTNjM2ZlZGYyMzE1MTZlMWQwYjk5NjAzODliYWY2MAotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3Jlc291cmNlcy93aW5kb3ctb25lcnJv
ci5qcwpAQCAtMCwwICsxLDMgQEAKK2Z1bmN0aW9uIHRocm93RXhjZXB0aW9uKCkgeworICAgIHRo
cm93IG5ldyBFcnJvcigiQW4gZXhjZXB0aW9uIik7Cit9CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9mYXN0L2V2ZW50cy93aW5kb3ctb25lcnJvcjEtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMv
ZmFzdC9ldmVudHMvd2luZG93LW9uZXJyb3IxLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mZTUx
YjcyMmYwYjM3MDlhZWNkNGI4MTVjZDIwNzA5NWMwMjQ2NTQ1Ci0tLSAvZGV2L251bGwKKysrIGIv
TGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvd2luZG93LW9uZXJyb3IxLWV4cGVjdGVkLnR4dApAQCAt
MCwwICsxLDMgQEAKK1RoaXMgcGFnZSB0ZXN0cyBzZXR0aW5nIG9uZXJyb3IgaGFuZGxlcnMgdGhy
b3VnaCB0aGUgRE9NLiBJZiBpdCBwYXNzZXMsIHlvdSB3aWxsIHNlZSAiUEFTUyIgbWVzc2FnZXMg
YmVsb3cuQnVnIDg1MTkuCisKK1BBU1M6IGNhdWdodCBnbG9iYWwgZXJyb3I6IFJlZmVyZW5jZUVy
cm9yOiBDYW4ndCBmaW5kIHZhcmlhYmxlOiBoYWhhaGFfZ29vZF9sdWNrX2ZpbmRpbmdfbWUgYXQg
d2luZG93LW9uZXJyb3IxLmh0bWw6MjUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZXZl
bnRzL3dpbmRvdy1vbmVycm9yMS5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvd2luZG93
LW9uZXJyb3IxLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNTlkMjQ5NTg2ODg1NTc0YWUwOGIzNjVhYzIxYWQx
MTFjYjczYTVmMwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3dp
bmRvdy1vbmVycm9yMS5odG1sCkBAIC0wLDAgKzEsMzUgQEAKKzxodG1sPgorPGhlYWQ+Cis8c2Ny
aXB0PgoraWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKKyAgICBsYXlvdXRUZXN0Q29u
dHJvbGxlci5kdW1wQXNUZXh0KCk7CisKK2Z1bmN0aW9uIHByaW50KG1lc3NhZ2UsIGNvbG9yKQor
eworICAgIHZhciBwYXJhZ3JhcGggPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTsKKyAg
ICBwYXJhZ3JhcGguYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUobWVzc2FnZSkp
OworICAgIHBhcmFncmFwaC5zdHlsZS5mb250RmFtaWx5ID0gIm1vbm9zcGFjZSI7CisgICAgaWYg
KGNvbG9yKQorICAgICAgICBwYXJhZ3JhcGguc3R5bGUuY29sb3IgPSBjb2xvcjsKKyAgICBkb2N1
bWVudC5nZXRFbGVtZW50QnlJZCgiY29uc29sZSIpLmFwcGVuZENoaWxkKHBhcmFncmFwaCk7Cit9
CisKK2Z1bmN0aW9uIHRlc3QoKQoreworICAgIC8vIG11c3QgYmUgbGFzdCBiZWNhdXNlIHRoZSBl
eGNlcHRpb24gZW5kcyBKYXZhU2NyaXB0IGV4ZWN1dGlvbgorICAgIHdpbmRvdy5vbmVycm9yID0g
ZnVuY3Rpb24gKGVycm9yLCB1cmwsIGxpbmUpIHsKKyAgICAgICAgdXJsID0gdXJsID8gdXJsLm1h
dGNoKCAvW15cL10rXC8/JC8gKVswXSA6IHVybDsKKyAgICAgICAgcHJpbnQoIlBBU1M6IGNhdWdo
dCBnbG9iYWwgZXJyb3I6ICIgKyBlcnJvciArICIgYXQgIiArIHVybCArICI6IiArIGxpbmUsICJn
cmVlbiIpOworICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfTsKKyAgICBoYWhhaGFfZ29vZF9s
dWNrX2ZpbmRpbmdfbWUoKTsgLy8gY2F1Z2h0IGJ5IHdpbmRvdy5vbmVycm9yCit9Cis8L3Njcmlw
dD4KKzwvaGVhZD4KKzxib2R5IG9ubG9hZD0idGVzdCgpOyI+Cis8cD5UaGlzIHBhZ2UgdGVzdHMg
c2V0dGluZyBvbmVycm9yIGhhbmRsZXJzIHRocm91Z2ggdGhlIERPTS4gSWYgaXQgcGFzc2VzLCB5
b3Ugd2lsbAorICAgc2VlICJQQVNTIiBtZXNzYWdlcyBiZWxvdy48YSBocmVmPSJodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODUxOSI+QnVnIDg1MTk8L2E+LjwvcD4KKzxo
cj4KKzxkaXYgaWQ9J2NvbnNvbGUnPjwvZGl2PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvd2luZG93LW9uZXJyb3IxMC1leHBlY3RlZC50eHQg
Yi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy93aW5kb3ctb25lcnJvcjEwLWV4cGVjdGVkLnR4dApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi5iZmY1NjM2NTQxMWYxZDlmMDc5N2JkYjAwODc1MTE3NjY5YjQ5NGQxCi0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvd2luZG93LW9uZXJyb3IxMC1l
eHBlY3RlZC50eHQKQEAgLTAsMCArMSwxMSBAQAorVGVzdCB0aGF0ICJlcnJvciIgZXZlbnQgbGlz
dGVuZXIgYWRkZWQgd2l0aCB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lciBpcyBpbnZva2VkIGZvciB1
bmNhdWNodCBleGNlcHRpb25zLiBCdWcgODUxOS4KKworZXZlbnQgcGFzc2VkIHRvIHRoZSBsaXN0
ZW5lciBpcyB0aGUgc2FtZSBhcyB3aW5kb3cuZXZlbnQ6IHRydWUKK0V2ZW50IGRldGFpbHM6Cit0
eXBlOiBlcnJvcgorcGhhc2U6IDIKK2N1cnJlbnRUYXJnZXQgaXMgdGhlIGdsb2JhbCBvYmplY3Q6
IHRydWUKK21lc3NhZ2U6IEVycm9yOiBNeSBmYXVsdC4KK2ZpbGVuYW1lOiB3aW5kb3ctb25lcnJv
cjEwLmh0bWwKK2xpbmVubzogMjkKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9ldmVu
dHMvd2luZG93LW9uZXJyb3IxMC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvd2luZG93
LW9uZXJyb3IxMC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjI2ZWQwMThmZGYxOGEzNDczODUzZTFjMTA2ZGE4
YzVlZDk2MDIxZmUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy93
aW5kb3ctb25lcnJvcjEwLmh0bWwKQEAgLTAsMCArMSwzMyBAQAorPGh0bWw+Cis8Ym9keT4KKzxw
PlRlc3QgdGhhdCAiZXJyb3IiIGV2ZW50IGxpc3RlbmVyIGFkZGVkIHdpdGggd2luZG93LmFkZEV2
ZW50TGlzdGVuZXIgaXMgaW52b2tlZCBmb3IgdW5jYXVjaHQgZXhjZXB0aW9ucy4gPGEgaHJlZj0i
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTg1MTkiPkJ1ZyA4NTE5PC9h
Pi48L3A+Cis8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KKzxzY3JpcHQ+CitpZiAod2luZG93Lmxh
eW91dFRlc3RDb250cm9sbGVyKQorICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQo
KTsKKworZnVuY3Rpb24gbG9nKG1zZykgeworICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJj
b25zb2xlIikuaW5uZXJIVE1MICs9IG1zZyArICI8YnI+IjsKK30KKworZnVuY3Rpb24gbGFzdFBh
dGhDb21wb25lbnQodXJsKSB7CisgICAgcmV0dXJuIHVybCA/IHVybC5tYXRjaCggL1teXC9dK1wv
PyQvIClbMF0gOiB1cmw7Cit9CisKK3dpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJlcnJvciIsIGZ1
bmN0aW9uKGUpIHsKKyAgICBsb2coImV2ZW50IHBhc3NlZCB0byB0aGUgbGlzdGVuZXIgaXMgdGhl
IHNhbWUgYXMgd2luZG93LmV2ZW50OiAiICsgKHdpbmRvdy5ldmVudCA9PT0gZSkpOworICAgIGxv
ZygiRXZlbnQgZGV0YWlsczoiKTsKKyAgICBsb2coInR5cGU6ICIgKyBlLnR5cGUpOworICAgIGxv
ZygicGhhc2U6ICIgKyBlLmV2ZW50UGhhc2UpCisgICAgbG9nKCJjdXJyZW50VGFyZ2V0IGlzIHRo
ZSBnbG9iYWwgb2JqZWN0OiAiICsgKGUuY3VycmVudFRhcmdldCA9PT0gd2luZG93KSk7CisgICAg
bG9nKCJtZXNzYWdlOiAiICsgZS5tZXNzYWdlKTsKKyAgICBsb2coImZpbGVuYW1lOiAiICsgbGFz
dFBhdGhDb21wb25lbnQoZS5maWxlbmFtZSkpOworICAgIGxvZygibGluZW5vOiAiICsgZS5saW5l
bm8pOworICAgIGUucHJldmVudERlZmF1bHQoKTsKK30sIGZhbHNlKTsKKwordGhyb3cgbmV3IEVy
cm9yKCJNeSBmYXVsdC4iKTsKKworPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy93aW5kb3ctb25lcnJvcjExLWV4cGVjdGVkLnR4
dCBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3dpbmRvdy1vbmVycm9yMTEtZXhwZWN0ZWQudHh0
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLjk2ZTIwY2MzZWMzYjEwYjc1M2NiYWNkNmQwYmEwOTQzZGNkZWUyNjQKLS0t
IC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy93aW5kb3ctb25lcnJvcjEx
LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDQgQEAKK1Rlc3QgdGhhdCB3aW5kb3cub25lcnJvciBp
cyBjYWxsZWQgb24gd2luZG93IG9iamVjdC4gQnVnIDg1MTkuCisKK01haW4gZnJhbWUgd2luZG93
Lm9uZXJyb3I6IEVycm9yOiBBbiBleGNlcHRpb24gYXQgd2luZG93LW9uZXJyb3IuanM6MgorCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy93aW5kb3ctb25lcnJvcjExLmh0bWwg
Yi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy93aW5kb3ctb25lcnJvcjExLmh0bWwKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uNzY1NWZhNzI3ZDhiNTYyYTBiZTQzZWFlMjNkMWMwNjQxMDQyZTQ1MwotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3dpbmRvdy1vbmVycm9yMTEuaHRtbApAQCAt
MCwwICsxLDI4IEBACis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdCBzcmM9InJlc291cmNlcy93aW5k
b3ctb25lcnJvci5qcyI+Cis8L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHA+VGVzdCB0aGF0
IHdpbmRvdy5vbmVycm9yIGlzIGNhbGxlZCBvbiB3aW5kb3cgb2JqZWN0LiA8YSBocmVmPSJodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODUxOSI+QnVnIDg1MTk8L2E+Ljwv
cD4KKzxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgorPHNjcmlwdD4KK2lmICh3aW5kb3cubGF5b3V0
VGVzdENvbnRyb2xsZXIpCisgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOwor
CitmdW5jdGlvbiBsb2cobXNnKSB7CisgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNvbnNv
bGUiKS5pbm5lckhUTUwgKz0gbXNnICsgIjxicj4iOworfQorCit3aW5kb3cub25lcnJvciA9IGZ1
bmN0aW9uKG1zZywgdXJsLCBsaW5lKQoreworICAgIHVybCA9IHVybCA/IHVybC5tYXRjaCggL1te
XC9dK1wvPyQvIClbMF0gOiB1cmw7CisgICAgbG9nKCJNYWluIGZyYW1lIHdpbmRvdy5vbmVycm9y
OiAiICsgbXNnICsgIiBhdCAiICsgdXJsICsgIjoiICsgbGluZSk7CisgICAgcmV0dXJuIGZhbHNl
OworfQorCit0aHJvd0V4Y2VwdGlvbigpOworCis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4K
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3dpbmRvdy1vbmVycm9yMi1leHBl
Y3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy93aW5kb3ctb25lcnJvcjItZXhwZWN0
ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLjkzYTJkM2YxM2IxZDFiODc5NjRmNjM4YzZmNWJmNzI2ZDkxMjc2
NzgKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy93aW5kb3ctb25l
cnJvcjItZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNiBAQAorVGVzdCB0aGF0IHVuY2F1Z2h0IGV4
Y2VwdGlvbnMgd2lsbCBiZSByZXBvcnRlZCB0byB0aGUgd2luZG93Lm9uZXJyb3IgaGFuZGxlci4g
QnVnIDg1MTkuCisKK01haW4gZnJhbWUgd2luZG93Lm9uZXJyb3I6IEVycm9yOiBJbmxpbmUgc2Ny
aXB0IGV4Y2VwdGlvbiBhdCB3aW5kb3ctb25lcnJvcjIuaHRtbDozNQorTWFpbiBmcmFtZSB3aW5k
b3cub25lcnJvcjogRXhjZXB0aW9uIGluIG9ubG9hZCBhdCB1bmRlZmluZWQ6MAorTWFpbiBmcmFt
ZSB3aW5kb3cub25lcnJvcjogRXJyb3I6IEV4Y2VwdGlvbiBpbiBzZXRUaW1lb3V0IGF0IHdpbmRv
dy1vbmVycm9yMi5odG1sOjI5CisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRz
L3dpbmRvdy1vbmVycm9yMi5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvd2luZG93LW9u
ZXJyb3IyLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZGI5ZmI3NWVjNDA2MmFjN2U0ZjNiZjU2MDNlNGE1OGJm
ZDU0ZTNmNwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3dpbmRv
dy1vbmVycm9yMi5odG1sCkBAIC0wLDAgKzEsNDEgQEAKKzxodG1sPgorPGJvZHkgb25sb2FkPSJ0
aHJvdyAnRXhjZXB0aW9uIGluIG9ubG9hZCc7Ij4KKzxwPlRlc3QgdGhhdCB1bmNhdWdodCBleGNl
cHRpb25zIHdpbGwgYmUgcmVwb3J0ZWQgdG8gdGhlIHdpbmRvdy5vbmVycm9yIGhhbmRsZXIuIDxh
IGhyZWY9Imh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04NTE5Ij5CdWcg
ODUxOTwvYT4uPC9wPgorPGRpdiBpZD0icmVzdWx0Ij48L2Rpdj4KKzxzY3JpcHQ+CitpZiAod2lu
ZG93LmxheW91dFRlc3RDb250cm9sbGVyKSB7CisgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVt
cEFzVGV4dCgpOworICAgIGxheW91dFRlc3RDb250cm9sbGVyLndhaXRVbnRpbERvbmUoKTsKK30K
KworZnVuY3Rpb24gbG9nKG1zZykgeworICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJyZXN1
bHQiKS5pbm5lckhUTUwgKz0gbXNnICsgIjxicj4iOworfQorCit2YXIgdW5oYW5kbGVkRXJyb3JD
b3VudCA9IDA7Cit3aW5kb3cub25lcnJvciA9IGZ1bmN0aW9uKG1zZywgdXJsLCBsaW5lKQorewor
ICAgIHVybCA9IHVybCA/IHVybC5tYXRjaCggL1teXC9dK1wvPyQvIClbMF0gOiB1cmw7CisgICAg
bG9nKCJNYWluIGZyYW1lIHdpbmRvdy5vbmVycm9yOiAiICsgbXNnICsgIiBhdCAiICsgdXJsICsg
IjoiICsgbGluZSk7CisgICAgCisgICAgaWYgKCsrdW5oYW5kbGVkRXJyb3JDb3VudCA9PT0gMyAm
JiB3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCisgICAgICAgIGxheW91dFRlc3RDb250cm9s
bGVyLm5vdGlmeURvbmUoKTsKKworICAgIHJldHVybiBmYWxzZTsKK30KKworZnVuY3Rpb24gZGVs
YXllZFRocm93RXhjZXB0aW9uKCkKK3sKKyAgICB0aHJvdyBuZXcgRXJyb3IoIkV4Y2VwdGlvbiBp
biBzZXRUaW1lb3V0Iik7Cit9CitzZXRUaW1lb3V0KGRlbGF5ZWRUaHJvd0V4Y2VwdGlvbiwgMCk7
CisKK2Z1bmN0aW9uIHRocm93RXhjZXB0aW9uKCkKK3sKKyAgICB0aHJvdyBuZXcgRXJyb3IoIklu
bGluZSBzY3JpcHQgZXhjZXB0aW9uIik7Cit9Cit0aHJvd0V4Y2VwdGlvbigpOworCis8L3Njcmlw
dD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRz
L3dpbmRvdy1vbmVycm9yMy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy93
aW5kb3ctb25lcnJvcjMtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjcwMjVkYmI5N2EyY2Y0Mjlk
ZjJhODExOTA5MWNhNzZlN2E4MDY3MzEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9m
YXN0L2V2ZW50cy93aW5kb3ctb25lcnJvcjMtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNCBAQAor
WW91IHNob3VsZCBzZWUgYSBtZXNzYWdlIGlmIHdpbmRvdy5vbmVycm9yIGlzIHdvcmtpbmcgcHJv
cGVybHkgZm9yIHRoaXMgdGVzdC5CdWcgODUxOS4KKworRXJyb3IgY2F1Z2h0IHN1Y2Nlc3NmdWxs
eTogUmVmZXJlbmNlRXJyb3I6IENhbid0IGZpbmQgdmFyaWFibGU6IHVua25vd25PYmplY3QgRmls
ZTogd2luZG93LW9uZXJyb3IzLmh0bWwgTGluZTogMTYKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvZmFzdC9ldmVudHMvd2luZG93LW9uZXJyb3IzLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2V2
ZW50cy93aW5kb3ctb25lcnJvcjMuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5lZTI4OTNmMGM3ZDk5MzIxNzZj
MGVhMzFlYTRmMGQyMTBjZWYxM2NmCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFz
dC9ldmVudHMvd2luZG93LW9uZXJyb3IzLmh0bWwKQEAgLTAsMCArMSwyMyBAQAorPHNjcmlwdD4K
K2lmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCisgICAgbGF5b3V0VGVzdENvbnRyb2xs
ZXIuZHVtcEFzVGV4dCgpOworCitmdW5jdGlvbiBsb2cobXNnKSB7CisgICAgZG9jdW1lbnQuZ2V0
RWxlbWVudEJ5SWQoImNvbnNvbGUiKS5pbm5lckhUTUwgKz0gbXNnICsgIjxicj4iOworfQorCitm
dW5jdGlvbiB0ZXN0MSgpCit7CisgICAgd2luZG93Lm9uZXJyb3IgPSBmdW5jdGlvbiAoZXJyb3Is
IHVybCwgbGluZSkgeworICAgICAgICB1cmwgPSB1cmwgPyB1cmwubWF0Y2goIC9bXlwvXStcLz8k
LyApWzBdIDogdXJsOworICAgICAgICBsb2coIkVycm9yIGNhdWdodCBzdWNjZXNzZnVsbHk6ICIg
KyBlcnJvciArICJcbkZpbGU6ICIgKyB1cmwgKyAiXG5MaW5lOiAiICsgbGluZSkKKyAgICAgICAg
cmV0dXJuIGZhbHNlOworICAgIH07CisgICAgdW5rbm93bk9iamVjdC51bmtub3duUHJvcGVydHkr
KzsKK30KKzwvc2NyaXB0PgorPGJvZHkgb25sb2FkPSJ0ZXN0MSgpOyI+Cis8cD5Zb3Ugc2hvdWxk
IHNlZSBhIG1lc3NhZ2UgaWYgd2luZG93Lm9uZXJyb3IgaXMgd29ya2luZyBwcm9wZXJseSBmb3Ig
dGhpcyB0ZXN0LjxhIGhyZWY9Imh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD04NTE5Ij5CdWcgODUxOTwvYT4uPC9wPgorPGhyPgorPGRpdiBpZD0nY29uc29sZSc+PC9kaXY+
Cis8L2JvZHk+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy93aW5kb3ctb25l
cnJvcjQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvd2luZG93LW9uZXJy
b3I0LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yNmFmOGExZWE5YzgyZDFkZGIyMGJmYTA3MWJk
YTdmOGM2NzdiNzY2Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMv
d2luZG93LW9uZXJyb3I0LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDQgQEAKK1lvdSBzaG91bGQg
c2VlIGEgbG9nIHJlY29yZCBpZiB3aW5kb3cub25lcnJvciBpcyB3b3JraW5nIHByb3Blcmx5IGZv
ciB0aGlzIHRlc3QuQnVnIDg1MTkuCisKK0Vycm9yIGNhdWdodCBzdWNjZXNzZnVsbHk6IFJlZmVy
ZW5jZUVycm9yOiBMZWZ0IHNpZGUgb2YgYXNzaWdubWVudCBpcyBub3QgYSByZWZlcmVuY2UuIEZp
bGU6IHVuZGVmaW5lZCBMaW5lOiAxCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZXZl
bnRzL3dpbmRvdy1vbmVycm9yNC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvd2luZG93
LW9uZXJyb3I0Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYzUxODg3ZGFmNjhmMTkwNjBlNzA2NDAxODQ4OWU1
OWFkYjk3OGRlZgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3dp
bmRvdy1vbmVycm9yNC5odG1sCkBAIC0wLDAgKzEsMjMgQEAKKzxzY3JpcHQ+CitpZiAod2luZG93
LmxheW91dFRlc3RDb250cm9sbGVyKQorICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1Rl
eHQoKTsKKworZnVuY3Rpb24gbG9nKG1zZykgeworICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlk
KCJjb25zb2xlIikuaW5uZXJIVE1MICs9IG1zZyArICI8YnI+IjsKK30KKworZnVuY3Rpb24gdGVz
dDEoKQoreworICAgIHdpbmRvdy5vbmVycm9yID0gZnVuY3Rpb24gKGVycm9yLCB1cmwsIGxpbmUp
IHsKKyAgICAgICAgdXJsID0gdXJsID8gdXJsLm1hdGNoKCAvW15cL10rXC8/JC8gKVswXSA6IHVy
bDsKKyAgICAgICAgbG9nKCJFcnJvciBjYXVnaHQgc3VjY2Vzc2Z1bGx5OiAiICsgZXJyb3IgKyAi
XG5GaWxlOiAiICsgdXJsICsgIlxuTGluZTogIiArIGxpbmUpCisgICAgICAgIHJldHVybiBmYWxz
ZTsKKyAgICB9OworICAgIGV2YWwoIjE9MiIpOworfQorPC9zY3JpcHQ+Cis8Ym9keSBvbmxvYWQ9
InRlc3QxKCk7Ij4KKzxwPllvdSBzaG91bGQgc2VlIGEgbG9nIHJlY29yZCBpZiB3aW5kb3cub25l
cnJvciBpcyB3b3JraW5nIHByb3Blcmx5IGZvciB0aGlzIHRlc3QuPGEgaHJlZj0iaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTg1MTkiPkJ1ZyA4NTE5PC9hPi48L3A+Cis8
aHI+Cis8ZGl2IGlkPSdjb25zb2xlJz48L2Rpdj4KKzwvYm9keT4KZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2Zhc3QvZXZlbnRzL3dpbmRvdy1vbmVycm9yNS1leHBlY3RlZC50eHQgYi9MYXlvdXRU
ZXN0cy9mYXN0L2V2ZW50cy93aW5kb3ctb25lcnJvcjUtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LjNlYzdmNWVmYzFkMDg2YTY1YzMyMzA0MjIxM2VmODIwYTcxOTcxNTQKLS0tIC9kZXYvbnVsbAor
KysgYi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy93aW5kb3ctb25lcnJvcjUtZXhwZWN0ZWQudHh0
CkBAIC0wLDAgKzEsNCBAQAorVGVzdCB0aGF0IHdpbmRvdy5vbmVycm9yIGlzIGludm9rZWQgZm9y
IHN5bnRheCBlcnJvciBpbiBldmFsLiBZb3Ugc2hvdWxkIHNlZSBhIGxvZyByZWNvcmQgaWYgd2lu
ZG93Lm9uZXJyb3IgaXMgd29ya2luZyBwcm9wZXJseSBmb3IgdGhpcyB0ZXN0LkJ1ZyA4NTE5Lgor
CitFcnJvciBjYXVnaHQgc3VjY2Vzc2Z1bGx5OiBTeW50YXhFcnJvcjogUGFyc2UgZXJyb3IgRmls
ZTogdW5kZWZpbmVkIExpbmU6IDEKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9ldmVu
dHMvd2luZG93LW9uZXJyb3I1Lmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy93aW5kb3ct
b25lcnJvcjUuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45MzJkNDM4YTU2ZWE4ODJmYjExN2IyMjEzOTVjNGEw
ZDgxOTk2NDRlCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvd2lu
ZG93LW9uZXJyb3I1Lmh0bWwKQEAgLTAsMCArMSwyMyBAQAorPHNjcmlwdD4KK2lmICh3aW5kb3cu
bGF5b3V0VGVzdENvbnRyb2xsZXIpCisgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4
dCgpOworCitmdW5jdGlvbiBsb2cobXNnKSB7CisgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQo
ImNvbnNvbGUiKS5pbm5lckhUTUwgKz0gbXNnICsgIjxicj4iOworfQorCitmdW5jdGlvbiB0ZXN0
MSgpCit7CisgICAgd2luZG93Lm9uZXJyb3IgPSBmdW5jdGlvbiAoZXJyb3IsIHVybCwgbGluZSkg
eworICAgICAgICB1cmwgPSB1cmwgPyB1cmwubWF0Y2goIC9bXlwvXStcLz8kLyApWzBdIDogdXJs
OworICAgICAgICBsb2coIkVycm9yIGNhdWdodCBzdWNjZXNzZnVsbHk6ICIgKyBlcnJvciArICJc
bkZpbGU6ICIgKyB1cmwgKyAiXG5MaW5lOiAiICsgbGluZSkKKyAgICAgICAgcmV0dXJuIGZhbHNl
OworICAgIH07CisgICAgZXZhbCgiYSgiKTsKK30KKzwvc2NyaXB0PgorPGJvZHkgb25sb2FkPSJ0
ZXN0MSgpOyI+Cis8cD5UZXN0IHRoYXQgd2luZG93Lm9uZXJyb3IgaXMgaW52b2tlZCBmb3Igc3lu
dGF4IGVycm9yIGluIGV2YWwuIFlvdSBzaG91bGQgc2VlIGEgbG9nIHJlY29yZCBpZiB3aW5kb3cu
b25lcnJvciBpcyB3b3JraW5nIHByb3Blcmx5IGZvciB0aGlzIHRlc3QuPGEgaHJlZj0iaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTg1MTkiPkJ1ZyA4NTE5PC9hPi48L3A+
Cis8aHI+Cis8ZGl2IGlkPSdjb25zb2xlJz48L2Rpdj4KKzwvYm9keT4KZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2Zhc3QvZXZlbnRzL3dpbmRvdy1vbmVycm9yNi1leHBlY3RlZC50eHQgYi9MYXlv
dXRUZXN0cy9mYXN0L2V2ZW50cy93aW5kb3ctb25lcnJvcjYtZXhwZWN0ZWQudHh0Cm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLmU3YzI3YmI3NzUyMTFiNTEwMDEyNzY1MzY5ZGMwZTEzOTM0MjkwOTAKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy93aW5kb3ctb25lcnJvcjYtZXhwZWN0ZWQu
dHh0CkBAIC0wLDAgKzEsNCBAQAorVGVzdCB0aGF0IHN5bnRheCBlcnJvciB3aWxsIGJlIHJlcG9y
dGVkIHRvIHRoZSB3aW5kb3cub25lcnJvciBoYW5kbGVyLiBCdWcgODUxOS4KKworTWFpbiBmcmFt
ZSB3aW5kb3cub25lcnJvcjogU3ludGF4RXJyb3I6IFBhcnNlIGVycm9yIGF0IHdpbmRvdy1vbmVy
cm9yNi5odG1sOjIyCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3dpbmRv
dy1vbmVycm9yNi5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvd2luZG93LW9uZXJyb3I2
Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uMTk3ODQzNjg5NzMyNDExMzhhOWU2MGI3YjQ1NmQ1MWUzMGIxYWU0
MAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3dpbmRvdy1vbmVy
cm9yNi5odG1sCkBAIC0wLDAgKzEsMjYgQEAKKzxodG1sPgorPGJvZHk+Cis8cD5UZXN0IHRoYXQg
c3ludGF4IGVycm9yIHdpbGwgYmUgcmVwb3J0ZWQgdG8gdGhlIHdpbmRvdy5vbmVycm9yIGhhbmRs
ZXIuIDxhIGhyZWY9Imh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04NTE5
Ij5CdWcgODUxOTwvYT4uPC9wPgorPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+Cis8c2NyaXB0Pgor
aWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKKyAgICBsYXlvdXRUZXN0Q29udHJvbGxl
ci5kdW1wQXNUZXh0KCk7CisKK2Z1bmN0aW9uIGxvZyhtc2cpIHsKKyAgICBkb2N1bWVudC5nZXRF
bGVtZW50QnlJZCgiY29uc29sZSIpLmlubmVySFRNTCArPSBtc2cgKyAiPGJyPiI7Cit9CisKK3dp
bmRvdy5vbmVycm9yID0gZnVuY3Rpb24obXNnLCB1cmwsIGxpbmUpCit7CisgICAgdXJsID0gdXJs
ID8gdXJsLm1hdGNoKCAvW15cL10rXC8/JC8gKVswXSA6IHVybDsKKyAgICBsb2coIk1haW4gZnJh
bWUgd2luZG93Lm9uZXJyb3I6ICIgKyBtc2cgKyAiIGF0ICIgKyB1cmwgKyAiOiIgKyBsaW5lKTsK
KyAgICByZXR1cm4gZmFsc2U7Cit9Cis8L3NjcmlwdD4KKzxzY3JpcHQ+CisKK2EpIC8vIHN5bnRh
eCBlcnJvcgorCis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2Zhc3QvZXZlbnRzL3dpbmRvdy1vbmVycm9yNy1leHBlY3RlZC50eHQgYi9MYXlvdXRU
ZXN0cy9mYXN0L2V2ZW50cy93aW5kb3ctb25lcnJvcjctZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LjVkMjJlN2U3NTU2OGEyNDk1OWNiZTYzZDlmYWFlMTRmZGFiY2YzNjAKLS0tIC9kZXYvbnVsbAor
KysgYi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy93aW5kb3ctb25lcnJvcjctZXhwZWN0ZWQudHh0
CkBAIC0wLDAgKzEsNiBAQAorQ09OU09MRSBNRVNTQUdFOiBsaW5lIDIwOiBFcnJvcjogT3JpZ2lu
YWwgZXJyb3IKK0NPTlNPTEUgTUVTU0FHRTogbGluZSAxNzogRXJyb3I6IE5lc3RlZCBlcnJvcgor
VGVzdCB0aGF0IGV4Y2VwdGlvbiBpbiB3aW5kb3cub25lcnJvciB3b24ndCBsZWFkIHRvIHJlY3Vy
c2l2ZSB3aW5kb3cub25lcnJvciBjYWxsLiBCdWcgODUxOS4KKworTWFpbiBmcmFtZSB3aW5kb3cu
b25lcnJvcjogRXJyb3I6IE9yaWdpbmFsIGVycm9yIGF0IHdpbmRvdy1vbmVycm9yNy5odG1sOjIw
CisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3dpbmRvdy1vbmVycm9yNy5o
dG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvd2luZG93LW9uZXJyb3I3Lmh0bWwKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uZjY2NTY4NjZjYzE2YzgzZmVhMTg2NjNjMDg3MGYzNmVjMDhiY2NhNAotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3dpbmRvdy1vbmVycm9yNy5odG1sCkBA
IC0wLDAgKzEsMjQgQEAKKzxodG1sPgorPGJvZHk+Cis8cD5UZXN0IHRoYXQgZXhjZXB0aW9uIGlu
IHdpbmRvdy5vbmVycm9yIHdvbid0IGxlYWQgdG8gcmVjdXJzaXZlIHdpbmRvdy5vbmVycm9yIGNh
bGwuIDxhIGhyZWY9Imh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04NTE5
Ij5CdWcgODUxOTwvYT4uPC9wPgorPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+Cis8c2NyaXB0Pgor
aWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKKyAgICBsYXlvdXRUZXN0Q29udHJvbGxl
ci5kdW1wQXNUZXh0KCk7CisKK2Z1bmN0aW9uIGxvZyhtc2cpIHsKKyAgICBkb2N1bWVudC5nZXRF
bGVtZW50QnlJZCgiY29uc29sZSIpLmlubmVySFRNTCArPSBtc2cgKyAiPGJyPiI7Cit9CisKK3dp
bmRvdy5vbmVycm9yID0gZnVuY3Rpb24obXNnLCB1cmwsIGxpbmUpCit7CisgICAgdXJsID0gdXJs
ID8gdXJsLm1hdGNoKCAvW15cL10rXC8/JC8gKVswXSA6IHVybDsKKyAgICBsb2coIk1haW4gZnJh
bWUgd2luZG93Lm9uZXJyb3I6ICIgKyBtc2cgKyAiIGF0ICIgKyB1cmwgKyAiOiIgKyBsaW5lKTsK
KyAgICB0aHJvdyBuZXcgRXJyb3IoIk5lc3RlZCBlcnJvciIpOworfQorCit0aHJvdyBuZXcgRXJy
b3IoIk9yaWdpbmFsIGVycm9yIik7CisKKzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvd2luZG93LW9uZXJyb3I4LWV4cGVjdGVk
LnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3dpbmRvdy1vbmVycm9yOC1leHBlY3RlZC50
eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uZWZjNjMwOGQ4Mjk1ZjU1MzhmMzhkNmYzOGYwYjU0NmYzODhhNmE0OAot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3dpbmRvdy1vbmVycm9y
OC1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw1IEBACitUZXN0IHRoYXQgd2luZG93Lm9uZXJyb3Ig
aXMgY2FsbGVkIG9uIHdpbmRvdyBvYmplY3QuIEJ1ZyA4NTE5LgorCitNYWluIGZyYW1lIHdpbmRv
dy5vbmVycm9yOiAyMDEwIGF0IHVuZGVmaW5lZDowCitQQVNTRUQ6IHRoaXMgPT09IHdpbmRvdwor
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy93aW5kb3ctb25lcnJvcjguaHRt
bCBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3dpbmRvdy1vbmVycm9yOC5odG1sCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLmJhZGU1Mzg4NmYyZmQ3Mzk5NTZiNjEwOTQ2NzczMThhNWEyMWE4ODkKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy93aW5kb3ctb25lcnJvcjguaHRtbApAQCAt
MCwwICsxLDI4IEBACis8aHRtbD4KKzxib2R5PgorPHA+VGVzdCB0aGF0IHdpbmRvdy5vbmVycm9y
IGlzIGNhbGxlZCBvbiB3aW5kb3cgb2JqZWN0LiA8YSBocmVmPSJodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODUxOSI+QnVnIDg1MTk8L2E+LjwvcD4KKzxkaXYgaWQ9ImNv
bnNvbGUiPjwvZGl2PgorPHNjcmlwdD4KK2lmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIp
CisgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOworCitmdW5jdGlvbiBsb2co
bXNnKSB7CisgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNvbnNvbGUiKS5pbm5lckhUTUwg
Kz0gbXNnICsgIjxicj4iOworfQorCit3aW5kb3cub25lcnJvciA9IGZ1bmN0aW9uKG1zZywgdXJs
LCBsaW5lKQoreworICAgIHVybCA9IHVybCA/IHVybC5tYXRjaCggL1teXC9dK1wvPyQvIClbMF0g
OiB1cmw7CisgICAgbG9nKCJNYWluIGZyYW1lIHdpbmRvdy5vbmVycm9yOiAiICsgbXNnICsgIiBh
dCAiICsgdXJsICsgIjoiICsgbGluZSk7CisgICAgaWYgKHRoaXMgPT09IHdpbmRvdykgCisgICAg
ICAgIGxvZygiUEFTU0VEOiB0aGlzID09PSB3aW5kb3ciKTsKKyAgICBlbHNlCisgICAgICAgIGxv
ZygiRkFJTEVEOiB0aGlzID09PSB3aW5kb3ciKTsKKyAgICByZXR1cm4gZmFsc2U7Cit9CisKK3Ro
cm93IDIwMTA7CisKKzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvZmFzdC9ldmVudHMvd2luZG93LW9uZXJyb3I5LWV4cGVjdGVkLnR4dCBiL0xheW91
dFRlc3RzL2Zhc3QvZXZlbnRzL3dpbmRvdy1vbmVycm9yOS1leHBlY3RlZC50eHQKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uOTQzMTZkM2YxMDdlOWNiNGY0OTk5NDhiMTlmZDllMmU0YWUzZGFkNgotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3dpbmRvdy1vbmVycm9yOS1leHBlY3RlZC50
eHQKQEAgLTAsMCArMSw4IEBACitUZXN0IHRoYXQgd2hlbiB3aW5kb3cub25lcnJvciBoYW5kbGVy
IGlzIGNhbGxlZCwgd2luZG93LmV2ZW50IGlzIHRoZSBjb3JyZXNwb25kaW5nIEVycm9yRXZlbnQg
b2JqZWN0LiBCdWcgODUxOS4KKworTWFpbiBmcmFtZSB3aW5kb3cub25lcnJvcjogRXJyb3I6IDIw
MTAgYXQgd2luZG93LW9uZXJyb3I5Lmh0bWw6MzEKK3dpbmRvdy5ldmVudC50eXBlID0gZXJyb3IK
K3dpbmRvdy5ldmVudC5tZXNzYWdlID0gRXJyb3I6IDIwMTAKK3dpbmRvdy5ldmVudC5maWxlbmFt
ZSA9IHdpbmRvdy1vbmVycm9yOS5odG1sCit3aW5kb3cuZXZlbnQubGluZW5vID0gMzEKKwpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvd2luZG93LW9uZXJyb3I5Lmh0bWwgYi9M
YXlvdXRUZXN0cy9mYXN0L2V2ZW50cy93aW5kb3ctb25lcnJvcjkuaHRtbApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4x
MDg2YWNlOWM3YWQ3NjI5ZTcxMGEyNGJkYmI5ZjVjOTMxNDViOTU0Ci0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvd2luZG93LW9uZXJyb3I5Lmh0bWwKQEAgLTAsMCAr
MSwzNSBAQAorPGh0bWw+Cis8Ym9keT4KKzxwPlRlc3QgdGhhdCB3aGVuIHdpbmRvdy5vbmVycm9y
IGhhbmRsZXIgaXMgY2FsbGVkLCB3aW5kb3cuZXZlbnQgaXMgdGhlIGNvcnJlc3BvbmRpbmcgRXJy
b3JFdmVudCBvYmplY3QuIDxhIGhyZWY9Imh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD04NTE5Ij5CdWcgODUxOTwvYT4uPC9wPgorPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+
Cis8c2NyaXB0PgoraWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikgeworICAgIGxheW91
dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKKyAgICBsYXlvdXRUZXN0Q29udHJvbGxlci53
YWl0VW50aWxEb25lKCk7Cit9CisKK2Z1bmN0aW9uIGxvZyhtc2cpIHsKKyAgICBkb2N1bWVudC5n
ZXRFbGVtZW50QnlJZCgiY29uc29sZSIpLmlubmVySFRNTCArPSBtc2cgKyAiPGJyPiI7Cit9CisK
K2Z1bmN0aW9uIGxhc3RQYXRoQ29tcG9uZW50KHVybCkgeworICAgIHJldHVybiB1cmwgPyB1cmwu
bWF0Y2goIC9bXlwvXStcLz8kLyApWzBdIDogdXJsOworfQorCit3aW5kb3cub25lcnJvciA9IGZ1
bmN0aW9uKG1zZywgdXJsLCBsaW5lKQoreworICAgIGxvZygiTWFpbiBmcmFtZSB3aW5kb3cub25l
cnJvcjogIiArIG1zZyArICIgYXQgIiArIGxhc3RQYXRoQ29tcG9uZW50KHVybCkgKyAiOiIgKyBs
aW5lKTsKKyAgICBsb2coIndpbmRvdy5ldmVudC50eXBlID0gIiArIHdpbmRvdy5ldmVudC50eXBl
KTsKKyAgICBsb2coIndpbmRvdy5ldmVudC5tZXNzYWdlID0gIiArIHdpbmRvdy5ldmVudC5tZXNz
YWdlKTsKKyAgICBsb2coIndpbmRvdy5ldmVudC5maWxlbmFtZSA9ICIgKyBsYXN0UGF0aENvbXBv
bmVudCh3aW5kb3cuZXZlbnQuZmlsZW5hbWUpKTsKKyAgICBsb2coIndpbmRvdy5ldmVudC5saW5l
bm8gPSAiICsgd2luZG93LmV2ZW50LmxpbmVubyk7CisgICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0
Q29udHJvbGxlcikKKyAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIubm90aWZ5RG9uZSgpOwor
ICAgIHJldHVybiBmYWxzZTsKK30KKwordGhyb3cgbmV3IEVycm9yKDIwMTApOworCis8L3Njcmlw
dD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3Qvd29ya2Vy
cy93b3JrZXItc2NyaXB0LWVycm9yLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3Qvd29y
a2Vycy93b3JrZXItc2NyaXB0LWVycm9yLWV4cGVjdGVkLnR4dAppbmRleCAxMGFiMDQ5M2FiNDdh
MjQyY2E2ZDczZmNmMDRiYWYzODZlNGY0NWY3Li40MDQxNjQwODllODI0YTkwZTQwZGU5MmM3ZTEy
NDk1MDFiNzg4NzE5IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L3dvcmtlcnMvd29ya2Vy
LXNjcmlwdC1lcnJvci1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC93b3JrZXJz
L3dvcmtlci1zY3JpcHQtZXJyb3ItZXhwZWN0ZWQudHh0CkBAIC00LDggKzQsOCBAQCBUZXN0IFdv
cmtlciBzY3JpcHQgZXJyb3IgaGFuZGxpbmcgZnVuY3Rpb25hbGl0eS4gU2hvdWxkIHByaW50IGEg
c2VyaWVzIG9mIFBBU1MgbQogUEFTUzogb25lcnJvciBpbnZva2VkIGZvciBhIHNjcmlwdCB0aGF0
IGhhcyBpbnZhbGlkIHN5bnRheC4KIFBBU1M6IG9uZXJyb3IgaW52b2tlZCBmb3IgYSBzY3JpcHQg
dGhhdCBoYXMgc2NyaXB0IGVycm9yICdSZWZlcmVuY2VFcnJvcjogQ2FuJ3QgZmluZCB2YXJpYWJs
ZTogZm9vJyBhdCBsaW5lIDEuCiBQQVNTOiBldmVudCBsaXN0ZW5lciBpbnZva2VkIGZvciBhIHNj
cmlwdCB0aGF0IGhhcyBzY3JpcHQgZXJyb3IgJ1JlZmVyZW5jZUVycm9yOiBDYW4ndCBmaW5kIHZh
cmlhYmxlOiBmb28nIGF0IGxpbmUgMS4KLVBBU1M6IG9uZXJyb3IgaW52b2tlZCBmb3IgYSBzY3Jp
cHQgdGhhdCBoYXMgc2NyaXB0IGVycm9yICdSZWZlcmVuY2VFcnJvcjogQ2FuJ3QgZmluZCB2YXJp
YWJsZTogYmFyJyBhdCBsaW5lIDMuCiBQQVNTOiBvbmVycm9yIGludm9rZWQgZm9yIGEgc2NyaXB0
IHRoYXQgaGFzIHNjcmlwdCBlcnJvciAnUmVmZXJlbmNlRXJyb3I6IENhbid0IGZpbmQgdmFyaWFi
bGU6IGZvbycgYXQgbGluZSA3LgorUEFTUzogb25lcnJvciBpbnZva2VkIGZvciBhIHNjcmlwdCB0
aGF0IGhhcyBzY3JpcHQgZXJyb3IgJ1JlZmVyZW5jZUVycm9yOiBDYW4ndCBmaW5kIHZhcmlhYmxl
OiBiYXInIGF0IGxpbmUgMy4KIFBBU1M6IG9uZXJyb3IgaW52b2tlZCBmb3IgYSBzY3JpcHQgdGhh
dCBoYXMgc2NyaXB0IGVycm9yICdSZWZlcmVuY2VFcnJvcjogQ2FuJ3QgZmluZCB2YXJpYWJsZTog
Zm9vJyBhdCBsaW5lIDcuCiBQQVNTOiBvbmVycm9yIGludm9rZWQgZm9yIGEgc2NyaXB0IHRoYXQg
aGFzIHNjcmlwdCBlcnJvciAnUmVmZXJlbmNlRXJyb3I6IENhbid0IGZpbmQgdmFyaWFibGU6IGZv
bycgYXQgbGluZSA3LgogUEFTUzogbWVzc2FnZSByZWNlaXZlZCBmcm9tIFdvcmtlckdsb2JhbFNj
b3BlLm9uZXJyb3I6IG9uZXJyb3IgaW52b2tlZCBmb3IgYSBzY3JpcHQgdGhhdCBoYXMgc2NyaXB0
IGVycm9yICdSZWZlcmVuY2VFcnJvcjogQ2FuJ3QgZmluZCB2YXJpYWJsZTogZm9vJyBhdCBsaW5l
IDcuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9yZXNvdXJj
ZS1jb250ZW50LWxlbmd0aC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2lu
c3BlY3Rvci9yZXNvdXJjZS1jb250ZW50LWxlbmd0aC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
MDE5MDFkMzU1ZjY4YzdkMGVlZGQ0OTZkNjQ1ZGMxNTQxODZlN2Y4ZgotLS0gL2Rldi9udWxsCisr
KyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL3Jlc291cmNlLWNvbnRlbnQtbGVu
Z3RoLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDEyIEBACitUZXN0cyB0aGF0IHJlc291cmNlcyBw
YW5lbCBzaG93cyBmb3JtIGRhdGEgcGFyYW1ldGVycy4KKworCitSZXNvdXJjZSB0cmFja2luZyBz
dGF0ZTogZmFsc2UKK1BhZ2UgcmVsb2FkZWQuCitQYWdlIHJlbG9hZGVkLgorU2l6ZSBvZiBodHRw
Oi8vMTI3LjAuMC4xOjgwMDAvaW5zcGVjdG9yL3Jlc291cmNlLWNvbnRlbnQtbGVuZ3RoLmh0bWwg
aXMgMTAwOQorU2l6ZSBvZiBodHRwOi8vMTI3LjAuMC4xOjgwMDAvaW5zcGVjdG9yL2luc3BlY3Rv
ci10ZXN0Mi5qcyBpcyAwCitTaXplIG9mIGh0dHA6Ly8xMjcuMC4wLjE6ODAwMC9pbnNwZWN0b3Iv
cmVzb3VyY2UtdGVzdHMyLmpzIGlzIDM0MAorU2l6ZSBvZiBodHRwOi8vMTI3LjAuMC4xOjgwMDAv
aW5zcGVjdG9yL3Jlc291cmNlcy9pbWFnZS5wbmcgaXMgMAorRE9ORS4KKwpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3IvcmVzb3VyY2VzL2ltYWdlLmh0bWwgYi9M
YXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9yZXNvdXJjZXMvaW1hZ2UuaHRtbApuZXcg
ZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi5mZmZkYWExZGQ4NGJlOGFjZmRlOTdjOWYwM2M4OGM2ZWJhZWZlNDlhCi0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3IvcmVzb3VyY2VzL2lt
YWdlLmh0bWwKQEAgLTAsMCArMSw3IEBACis8aHRtbD4KKzxoZWFkPgorPC9oZWFkPgorPGJvZHk+
Cis8aW1nIHNyYz0iaW1hZ2UucG5nIiBhbHQ9IkEgc2NyZWVuc2hvdCIgLz4KKzwvYm9keT4KKzwv
aHRtbD4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9odHRwL3Rlc3RzL3NlY3VyaXR5L3Jlc291cmNlcy9vbmVycm9yLWlmcmFtZS5odG1sIGIvTGF5
b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9yZXNvdXJjZXMvb25lcnJvci1pZnJhbWUuaHRt
bApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi4zMTJmZDEyZDNhZDgxMDJhNWZlMWI1MTcwM2VjM2NiMDAxYTc0ZmM4Ci0t
LSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9yZXNvdXJj
ZXMvb25lcnJvci1pZnJhbWUuaHRtbApAQCAtMCwwICsxLDExIEBACis8c2NyaXB0PgorZnVuY3Rp
b24gaGFuZGxlTG9hZCgpCit7CisgICAgd2luZG93LnBhcmVudC5wb3N0TWVzc2FnZSgiSUZyYW1l
TG9hZGVkIiwgIioiKTsKK30KKwordGhyb3cgIklmcmFtZUV4Y2VwdGlvbiI7CisKKzwvc2NyaXB0
PgorPGJvZHkgb25sb2FkPSJoYW5kbGVMb2FkKCkiPgorPC9ib2R5PgpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS93aW5kb3ctb25lcnJvci1leGNlcHRpb24taW4t
aWZyYW1lLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvd2lu
ZG93LW9uZXJyb3ItZXhjZXB0aW9uLWluLWlmcmFtZS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
OGIxN2Q5MjI4MWNmNWYxMDQxZjhkOTU3YjQ2MzY1MjAyNmFjMTdlYgotLS0gL2Rldi9udWxsCisr
KyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvd2luZG93LW9uZXJyb3ItZXhjZXB0
aW9uLWluLWlmcmFtZS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw2IEBACitDT05TT0xFIE1FU1NB
R0U6IGxpbmUgMDogSWZyYW1lRXhjZXB0aW9uCitUZXN0IHRoYXQgZXhjZXB0aW9ucyBpbiBpZnJh
bWUgYXJlIG5vdCByZXBvcnRlZCB0byB0aGUgbWFpbiBmcmFtZSB3aW5kb3cub25lcnJvciBoYW5k
bGVyLiB3aW5kb3cub25lcnJvciBzaG91bGQgcHJpbnQgZXhhY3RseSBvbmUgbGluZS4KKworTWFp
biBmcmFtZSB3aW5kb3cub25lcnJvcjogTWFpbkZyYW1lRXhjZXB0aW9uIGF0IHVuZGVmaW5lZDow
CitET05FCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvd2lu
ZG93LW9uZXJyb3ItZXhjZXB0aW9uLWluLWlmcmFtZS5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy9zZWN1cml0eS93aW5kb3ctb25lcnJvci1leGNlcHRpb24taW4taWZyYW1lLmh0bWwKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uMDkwNGUzOTUyYjhhYTE5OWExYzNkNDVlYzYyNTg4MzkzNzMyY2ExYgotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvd2luZG93LW9uZXJy
b3ItZXhjZXB0aW9uLWluLWlmcmFtZS5odG1sCkBAIC0wLDAgKzEsMzkgQEAKKzxodG1sPgorPGJv
ZHk+Cis8cD5UZXN0IHRoYXQgZXhjZXB0aW9ucyBpbiBpZnJhbWUgYXJlIG5vdCByZXBvcnRlZCB0
byB0aGUgbWFpbiBmcmFtZSB3aW5kb3cub25lcnJvciBoYW5kbGVyLgord2luZG93Lm9uZXJyb3Ig
c2hvdWxkIHByaW50IGV4YWN0bHkgb25lIGxpbmUuPC9wPgorPGRpdiBpZD0icmVzdWx0Ij48L2Rp
dj4KKzxzY3JpcHQ+CitpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKSB7CisgICAgbGF5
b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOworICAgIGxheW91dFRlc3RDb250cm9sbGVy
LndhaXRVbnRpbERvbmUoKTsKK30KKworZnVuY3Rpb24gbG9nKG1zZykgeworICAgIGRvY3VtZW50
LmdldEVsZW1lbnRCeUlkKCJyZXN1bHQiKS5pbm5lckhUTUwgKz0gbXNnICsgIjxicj4iOworfQor
Cit3aW5kb3cub25lcnJvciA9IGZ1bmN0aW9uKG1zZywgdXJsLCBsaW5lKQoreworICAgIHVybCA9
IHVybCA/IHVybC5tYXRjaCggL1teXC9dK1wvPyQvIClbMF0gOiB1cmw7CisgICAgbG9nKCJNYWlu
IGZyYW1lIHdpbmRvdy5vbmVycm9yOiAiICsgbXNnICsgIiBhdCAiICsgdXJsICsgIjoiICsgbGlu
ZSk7CisgICAgcmV0dXJuIGZhbHNlOworfQorCitmdW5jdGlvbiByZWNlaXZlTWVzc2FnZShldmVu
dCkgeworICAgIGlmIChldmVudC5kYXRhID09PSAiSUZyYW1lTG9hZGVkIikgeworICAgICAgICBs
b2coIkRPTkUiKTsKKyAgICAgICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKKyAg
ICAgICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLm5vdGlmeURvbmUoKTsKKyAgICB9IGVsc2UK
KyAgICAgICAgbG9nKCJGQUlMICIgKyBldmVudC5kYXRhKTsKK30KKword2luZG93LmFkZEV2ZW50
TGlzdGVuZXIoIm1lc3NhZ2UiLCByZWNlaXZlTWVzc2FnZSwgZmFsc2UpOworCit0aHJvdyAiTWFp
bkZyYW1lRXhjZXB0aW9uIjsKKworPC9zY3JpcHQ+Cis8aWZyYW1lIHNyYz0iaHR0cDovL2xvY2Fs
aG9zdDo4MDAwL3NlY3VyaXR5L3Jlc291cmNlcy9vbmVycm9yLWlmcmFtZS5odG1sIi8+Cis8L2Jv
ZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS13
aW4vZmFzdC93b3JrZXJzL3dvcmtlci1zY3JpcHQtZXJyb3ItZXhwZWN0ZWQudHh0IGIvTGF5b3V0
VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0td2luL2Zhc3Qvd29ya2Vycy93b3JrZXItc2NyaXB0LWVy
cm9yLWV4cGVjdGVkLnR4dAppbmRleCBmZGY2NjBiZDUwYzY2N2Q0MzBmMTY1YTdmYTgzNzQwMTY0
MWExY2ExLi5lZjBhMzkxZTQ3ODdiMzNiYmJiMGQ5ZjcwNjAzODQ5M2ZlMzE4MTI5IDEwMDY0NAot
LS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS13aW4vZmFzdC93b3JrZXJzL3dvcmtl
ci1zY3JpcHQtZXJyb3ItZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2No
cm9taXVtLXdpbi9mYXN0L3dvcmtlcnMvd29ya2VyLXNjcmlwdC1lcnJvci1leHBlY3RlZC50eHQK
QEAgLTMsOCArMyw4IEBAIFRlc3QgV29ya2VyIHNjcmlwdCBlcnJvciBoYW5kbGluZyBmdW5jdGlv
bmFsaXR5LiBTaG91bGQgcHJpbnQgYSBzZXJpZXMgb2YgUEFTUyBtCiBQQVNTOiBvbmVycm9yIGlu
dm9rZWQgZm9yIGEgc2NyaXB0IHRoYXQgaGFzIGludmFsaWQgc3ludGF4LgogUEFTUzogb25lcnJv
ciBpbnZva2VkIGZvciBhIHNjcmlwdCB0aGF0IGhhcyBzY3JpcHQgZXJyb3IgJ1VuY2F1Z2h0IFJl
ZmVyZW5jZUVycm9yOiBmb28gaXMgbm90IGRlZmluZWQnIGF0IGxpbmUgMS4KIFBBU1M6IGV2ZW50
IGxpc3RlbmVyIGludm9rZWQgZm9yIGEgc2NyaXB0IHRoYXQgaGFzIHNjcmlwdCBlcnJvciAnVW5j
YXVnaHQgUmVmZXJlbmNlRXJyb3I6IGZvbyBpcyBub3QgZGVmaW5lZCcgYXQgbGluZSAxLgotUEFT
Uzogb25lcnJvciBpbnZva2VkIGZvciBhIHNjcmlwdCB0aGF0IGhhcyBzY3JpcHQgZXJyb3IgJ1Vu
Y2F1Z2h0IFJlZmVyZW5jZUVycm9yOiBiYXIgaXMgbm90IGRlZmluZWQnIGF0IGxpbmUgMy4KIFBB
U1M6IG9uZXJyb3IgaW52b2tlZCBmb3IgYSBzY3JpcHQgdGhhdCBoYXMgc2NyaXB0IGVycm9yICdV
bmNhdWdodCBSZWZlcmVuY2VFcnJvcjogZm9vIGlzIG5vdCBkZWZpbmVkJyBhdCBsaW5lIDcuCitQ
QVNTOiBvbmVycm9yIGludm9rZWQgZm9yIGEgc2NyaXB0IHRoYXQgaGFzIHNjcmlwdCBlcnJvciAn
VW5jYXVnaHQgUmVmZXJlbmNlRXJyb3I6IGJhciBpcyBub3QgZGVmaW5lZCcgYXQgbGluZSAzLgog
UEFTUzogb25lcnJvciBpbnZva2VkIGZvciBhIHNjcmlwdCB0aGF0IGhhcyBzY3JpcHQgZXJyb3Ig
J1VuY2F1Z2h0IFJlZmVyZW5jZUVycm9yOiBmb28gaXMgbm90IGRlZmluZWQnIGF0IGxpbmUgNy4K
IFBBU1M6IG9uZXJyb3IgaW52b2tlZCBmb3IgYSBzY3JpcHQgdGhhdCBoYXMgc2NyaXB0IGVycm9y
ICdVbmNhdWdodCBSZWZlcmVuY2VFcnJvcjogZm9vIGlzIG5vdCBkZWZpbmVkJyBhdCBsaW5lIDcu
CiBQQVNTOiBtZXNzYWdlIHJlY2VpdmVkIGZyb20gV29ya2VyR2xvYmFsU2NvcGUub25lcnJvcjog
b25lcnJvciBpbnZva2VkIGZvciBhIHNjcmlwdCB0aGF0IGhhcyBzY3JpcHQgZXJyb3IgJ1VuY2F1
Z2h0IFJlZmVyZW5jZUVycm9yOiBmb28gaXMgbm90IGRlZmluZWQnIGF0IGxpbmUgNy4KZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL2Zhc3QvZXZlbnRzL3dpbmRvdy1v
bmVycm9yMS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS9mYXN0
L2V2ZW50cy93aW5kb3ctb25lcnJvcjEtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjBjNjBjZDNk
NDljZDExNDBkYTU1YWUxNzA2Yzg2ZmM5M2NmOTFkMWQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS9mYXN0L2V2ZW50cy93aW5kb3ctb25lcnJvcjEtZXhw
ZWN0ZWQudHh0CkBAIC0wLDAgKzEsMyBAQAorVGhpcyBwYWdlIHRlc3RzIHNldHRpbmcgb25lcnJv
ciBoYW5kbGVycyB0aHJvdWdoIHRoZSBET00uIElmIGl0IHBhc3NlcywgeW91IHdpbGwgc2VlICJQ
QVNTIiBtZXNzYWdlcyBiZWxvdy5CdWcgODUxOS4NDQorDQ0KK1BBU1M6IGNhdWdodCBnbG9iYWwg
ZXJyb3I6IFVuY2F1Z2h0IFJlZmVyZW5jZUVycm9yOiBoYWhhaGFfZ29vZF9sdWNrX2ZpbmRpbmdf
bWUgaXMgbm90IGRlZmluZWQgYXQgd2luZG93LW9uZXJyb3IxLmh0bWw6MjUNDQpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vZmFzdC9ldmVudHMvd2luZG93LW9uZXJy
b3IxMC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS9mYXN0L2V2
ZW50cy93aW5kb3ctb25lcnJvcjEwLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45YWQ0M2Q0ZWIx
N2E0ZGNmNTE2MDU4NDdiMzZmNTkzMGIxNWQ4MzY1Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0
VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vZmFzdC9ldmVudHMvd2luZG93LW9uZXJyb3IxMC1leHBl
Y3RlZC50eHQKQEAgLTAsMCArMSwxMSBAQAorVGVzdCB0aGF0ICJlcnJvciIgZXZlbnQgbGlzdGVu
ZXIgYWRkZWQgd2l0aCB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lciBpcyBpbnZva2VkIGZvciB1bmNh
dWNodCBleGNlcHRpb25zLiBCdWcgODUxOS4NDQorDQ0KK2V2ZW50IHBhc3NlZCB0byB0aGUgbGlz
dGVuZXIgaXMgdGhlIHNhbWUgYXMgd2luZG93LmV2ZW50OiB0cnVlDQ0KK0V2ZW50IGRldGFpbHM6
DQ0KK3R5cGU6IGVycm9yDQ0KK3BoYXNlOiAyDQ0KK2N1cnJlbnRUYXJnZXQgaXMgdGhlIGdsb2Jh
bCBvYmplY3Q6IHRydWUNDQorbWVzc2FnZTogVW5jYXVnaHQgRXJyb3I6IE15IGZhdWx0Lg0NCitm
aWxlbmFtZTogd2luZG93LW9uZXJyb3IxMC5odG1sDQ0KK2xpbmVubzogMjkNDQorDQ0KZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL2Zhc3QvZXZlbnRzL3dpbmRvdy1v
bmVycm9yMTEtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vZmFz
dC9ldmVudHMvd2luZG93LW9uZXJyb3IxMS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNDMwMDQ0
YmQ2NjAyNjc5ZmY2YTZkZTI1ZjQ5ZmIwNzgyZGU1ZjYzOAotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL2Zhc3QvZXZlbnRzL3dpbmRvdy1vbmVycm9yMTEt
ZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNCBAQAorVGVzdCB0aGF0IHdpbmRvdy5vbmVycm9yIGlz
IGNhbGxlZCBvbiB3aW5kb3cgb2JqZWN0LiBCdWcgODUxOS4NDQorDQ0KK01haW4gZnJhbWUgd2lu
ZG93Lm9uZXJyb3I6IFVuY2F1Z2h0IEVycm9yOiBBbiBleGNlcHRpb24gYXQgd2luZG93LW9uZXJy
b3IuanM6Mg0NCisNDQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0v
ZmFzdC9ldmVudHMvd2luZG93LW9uZXJyb3IyLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3Bs
YXRmb3JtL2Nocm9taXVtL2Zhc3QvZXZlbnRzL3dpbmRvdy1vbmVycm9yMi1leHBlY3RlZC50eHQK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uOGI2YzE1Mzk5ZWQ0OTI1NTkzOTBkMGQ4YTFjMjkwMDBiNjIyZmE5MQotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL2Zhc3QvZXZlbnRz
L3dpbmRvdy1vbmVycm9yMi1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw2IEBACitUZXN0IHRoYXQg
dW5jYXVnaHQgZXhjZXB0aW9ucyB3aWxsIGJlIHJlcG9ydGVkIHRvIHRoZSB3aW5kb3cub25lcnJv
ciBoYW5kbGVyLiBCdWcgODUxOS4NDQorDQ0KK01haW4gZnJhbWUgd2luZG93Lm9uZXJyb3I6IFVu
Y2F1Z2h0IEVycm9yOiBJbmxpbmUgc2NyaXB0IGV4Y2VwdGlvbiBhdCB3aW5kb3ctb25lcnJvcjIu
aHRtbDozNQ0NCitNYWluIGZyYW1lIHdpbmRvdy5vbmVycm9yOiBVbmNhdWdodCBFeGNlcHRpb24g
aW4gb25sb2FkIGF0IHdpbmRvdy1vbmVycm9yMi5odG1sOjINDQorTWFpbiBmcmFtZSB3aW5kb3cu
b25lcnJvcjogVW5jYXVnaHQgRXJyb3I6IEV4Y2VwdGlvbiBpbiBzZXRUaW1lb3V0IGF0IHdpbmRv
dy1vbmVycm9yMi5odG1sOjI5DQ0KKw0NCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9y
bS9jaHJvbWl1bS9mYXN0L2V2ZW50cy93aW5kb3ctb25lcnJvcjMtZXhwZWN0ZWQudHh0IGIvTGF5
b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vZmFzdC9ldmVudHMvd2luZG93LW9uZXJyb3IzLWV4
cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jZDVlNzQ5OTZiMTdmYmMyMjk3YzcxNzRmYzUzYjlkNGJm
YjAxN2QyCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0v
ZmFzdC9ldmVudHMvd2luZG93LW9uZXJyb3IzLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDQgQEAK
K1lvdSBzaG91bGQgc2VlIGEgbWVzc2FnZSBpZiB3aW5kb3cub25lcnJvciBpcyB3b3JraW5nIHBy
b3Blcmx5IGZvciB0aGlzIHRlc3QuQnVnIDg1MTkuDQ0KKw0NCitFcnJvciBjYXVnaHQgc3VjY2Vz
c2Z1bGx5OiBVbmNhdWdodCBSZWZlcmVuY2VFcnJvcjogdW5rbm93bk9iamVjdCBpcyBub3QgZGVm
aW5lZCBGaWxlOiB3aW5kb3ctb25lcnJvcjMuaHRtbCBMaW5lOiAxNg0NCisNDQpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vZmFzdC9ldmVudHMvd2luZG93LW9uZXJy
b3I0LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL2Zhc3QvZXZl
bnRzL3dpbmRvdy1vbmVycm9yNC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNTdmMzcxZTg2MTky
MTQxMzg4NDVhN2E3OTcwYzJkZWFiZDA3YzBjNwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL3BsYXRmb3JtL2Nocm9taXVtL2Zhc3QvZXZlbnRzL3dpbmRvdy1vbmVycm9yNC1leHBlY3Rl
ZC50eHQKQEAgLTAsMCArMSw0IEBACitZb3Ugc2hvdWxkIHNlZSBhIGxvZyByZWNvcmQgaWYgd2lu
ZG93Lm9uZXJyb3IgaXMgd29ya2luZyBwcm9wZXJseSBmb3IgdGhpcyB0ZXN0LkJ1ZyA4NTE5Lg0N
CisNDQorRXJyb3IgY2F1Z2h0IHN1Y2Nlc3NmdWxseTogVW5jYXVnaHQgUmVmZXJlbmNlRXJyb3I6
IEludmFsaWQgbGVmdC1oYW5kIHNpZGUgaW4gYXNzaWdubWVudCBGaWxlOiB3aW5kb3ctb25lcnJv
cjQuaHRtbCBMaW5lOiAxDQ0KKw0NCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9j
aHJvbWl1bS9mYXN0L2V2ZW50cy93aW5kb3ctb25lcnJvcjUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0
VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vZmFzdC9ldmVudHMvd2luZG93LW9uZXJyb3I1LWV4cGVj
dGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi5iZTRiNDlhNzBlM2VmYTBiNzQ0ZjYwNDEwNjgwYzA5ZTkxOTM4
YjgyCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vZmFz
dC9ldmVudHMvd2luZG93LW9uZXJyb3I1LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDQgQEAKK1Rl
c3QgdGhhdCB3aW5kb3cub25lcnJvciBpcyBpbnZva2VkIGZvciBzeW50YXggZXJyb3IgaW4gZXZh
bC4gWW91IHNob3VsZCBzZWUgYSBsb2cgcmVjb3JkIGlmIHdpbmRvdy5vbmVycm9yIGlzIHdvcmtp
bmcgcHJvcGVybHkgZm9yIHRoaXMgdGVzdC5CdWcgODUxOS4NDQorDQ0KK0Vycm9yIGNhdWdodCBz
dWNjZXNzZnVsbHk6IFVuY2F1Z2h0IFN5bnRheEVycm9yOiBVbmV4cGVjdGVkIGVuZCBvZiBpbnB1
dCBGaWxlOiB3aW5kb3ctb25lcnJvcjUuaHRtbCBMaW5lOiAxDQ0KKw0NCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS9mYXN0L2V2ZW50cy93aW5kb3ctb25lcnJvcjYt
ZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vZmFzdC9ldmVudHMv
d2luZG93LW9uZXJyb3I2LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yYzgwMTAzYWIwNmQ1MmQx
NzliOGFiYzMyZGVlMDc2ZDQxODJhOWEzCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMv
cGxhdGZvcm0vY2hyb21pdW0vZmFzdC9ldmVudHMvd2luZG93LW9uZXJyb3I2LWV4cGVjdGVkLnR4
dApAQCAtMCwwICsxLDQgQEAKK1Rlc3QgdGhhdCBzeW50YXggZXJyb3Igd2lsbCBiZSByZXBvcnRl
ZCB0byB0aGUgd2luZG93Lm9uZXJyb3IgaGFuZGxlci4gQnVnIDg1MTkuDQ0KKw0NCitNYWluIGZy
YW1lIHdpbmRvdy5vbmVycm9yOiBVbmNhdWdodCBTeW50YXhFcnJvcjogVW5leHBlY3RlZCB0b2tl
biApIGF0IHdpbmRvdy1vbmVycm9yNi5odG1sOjIyDQ0KKw0NCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS9mYXN0L2V2ZW50cy93aW5kb3ctb25lcnJvcjctZXhwZWN0
ZWQudHh0IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vZmFzdC9ldmVudHMvd2luZG93
LW9uZXJyb3I3LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44MDRjNzZkNWU3ZTMyMzJiZDNkZGM5
NjI1MDdkMTllNDIwZGYzZmExCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZv
cm0vY2hyb21pdW0vZmFzdC9ldmVudHMvd2luZG93LW9uZXJyb3I3LWV4cGVjdGVkLnR4dApAQCAt
MCwwICsxLDYgQEAKK0NPTlNPTEUgTUVTU0FHRTogbGluZSAyMDogVW5jYXVnaHQgRXJyb3I6IE9y
aWdpbmFsIGVycm9yDQ0KK0NPTlNPTEUgTUVTU0FHRTogbGluZSAxNzogVW5jYXVnaHQgRXJyb3I6
IE5lc3RlZCBlcnJvcg0NCitUZXN0IHRoYXQgZXhjZXB0aW9uIGluIHdpbmRvdy5vbmVycm9yIHdv
bid0IGxlYWQgdG8gcmVjdXJzaXZlIHdpbmRvdy5vbmVycm9yIGNhbGwuIEJ1ZyA4NTE5Lg0NCisN
DQorTWFpbiBmcmFtZSB3aW5kb3cub25lcnJvcjogVW5jYXVnaHQgRXJyb3I6IE9yaWdpbmFsIGVy
cm9yIGF0IHdpbmRvdy1vbmVycm9yNy5odG1sOjIwDQ0KKw0NCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS9mYXN0L2V2ZW50cy93aW5kb3ctb25lcnJvcjgtZXhwZWN0
ZWQudHh0IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vZmFzdC9ldmVudHMvd2luZG93
LW9uZXJyb3I4LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jOWExZDJhZmVlOTgzMThiNjczN2Jj
NDY4NmJiYzk1YTc3MWM3YTE5Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZv
cm0vY2hyb21pdW0vZmFzdC9ldmVudHMvd2luZG93LW9uZXJyb3I4LWV4cGVjdGVkLnR4dApAQCAt
MCwwICsxLDUgQEAKK1Rlc3QgdGhhdCB3aW5kb3cub25lcnJvciBpcyBjYWxsZWQgb24gd2luZG93
IG9iamVjdC4gQnVnIDg1MTkuDQ0KKw0NCitNYWluIGZyYW1lIHdpbmRvdy5vbmVycm9yOiBVbmNh
dWdodCAyMDEwIGF0IHdpbmRvdy1vbmVycm9yOC5odG1sOjI0DQ0KK1BBU1NFRDogdGhpcyA9PT0g
d2luZG93DQ0KKw0NCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS9m
YXN0L2V2ZW50cy93aW5kb3ctb25lcnJvcjktZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvcGxh
dGZvcm0vY2hyb21pdW0vZmFzdC9ldmVudHMvd2luZG93LW9uZXJyb3I5LWV4cGVjdGVkLnR4dApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi42MTI3ODU2OTcwMmQxNGUzOTgyYTU4Njg1YTU3MjcyOWNmOWE4M2ViCi0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vZmFzdC9ldmVudHMv
d2luZG93LW9uZXJyb3I5LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDggQEAKK1Rlc3QgdGhhdCB3
aGVuIHdpbmRvdy5vbmVycm9yIGhhbmRsZXIgaXMgY2FsbGVkLCB3aW5kb3cuZXZlbnQgaXMgdGhl
IGNvcnJlc3BvbmRpbmcgRXJyb3JFdmVudCBvYmplY3QuIEJ1ZyA4NTE5Lg0NCisNDQorTWFpbiBm
cmFtZSB3aW5kb3cub25lcnJvcjogVW5jYXVnaHQgRXJyb3I6IDIwMTAgYXQgd2luZG93LW9uZXJy
b3I5Lmh0bWw6MzENDQord2luZG93LmV2ZW50LnR5cGUgPSBlcnJvcg0NCit3aW5kb3cuZXZlbnQu
bWVzc2FnZSA9IFVuY2F1Z2h0IEVycm9yOiAyMDEwDQ0KK3dpbmRvdy5ldmVudC5maWxlbmFtZSA9
IHdpbmRvdy1vbmVycm9yOS5odG1sDQ0KK3dpbmRvdy5ldmVudC5saW5lbm8gPSAzMQ0NCisNDQpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vaHR0cC90ZXN0cy9zZWN1
cml0eS93aW5kb3ctb25lcnJvci1leGNlcHRpb24taW4taWZyYW1lLWV4cGVjdGVkLnR4dCBiL0xh
eW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL2h0dHAvdGVzdHMvc2VjdXJpdHkvd2luZG93LW9u
ZXJyb3ItZXhjZXB0aW9uLWluLWlmcmFtZS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uODY2NWFi
MjQ4NGRjNGY4YmNjYzhhNTc1NjFmNDRjYmQ3OGIwNmE1ZQotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL2h0dHAvdGVzdHMvc2VjdXJpdHkvd2luZG93LW9u
ZXJyb3ItZXhjZXB0aW9uLWluLWlmcmFtZS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw2IEBACitD
T05TT0xFIE1FU1NBR0U6IGxpbmUgNzogVW5jYXVnaHQgSWZyYW1lRXhjZXB0aW9uDQ0KK1Rlc3Qg
dGhhdCBleGNlcHRpb25zIGluIGlmcmFtZSBhcmUgbm90IHJlcG9ydGVkIHRvIHRoZSBtYWluIGZy
YW1lIHdpbmRvdy5vbmVycm9yIGhhbmRsZXIuIHdpbmRvdy5vbmVycm9yIHNob3VsZCBwcmludCBl
eGFjdGx5IG9uZSBsaW5lLg0NCisNDQorTWFpbiBmcmFtZSB3aW5kb3cub25lcnJvcjogVW5jYXVn
aHQgTWFpbkZyYW1lRXhjZXB0aW9uIGF0IHdpbmRvdy1vbmVycm9yLWV4Y2VwdGlvbi1pbi1pZnJh
bWUuaHRtbDozNA0NCitET05FDQ0KKw0NCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9y
bS9jaHJvbWl1bS91c2Vyc2NyaXB0cy93aW5kb3ctb25lcnJvci1mb3ItaXNvbGF0ZWQtd29ybGQt
ZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vdXNlcnNjcmlwdHMv
d2luZG93LW9uZXJyb3ItZm9yLWlzb2xhdGVkLXdvcmxkLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li45ZjkwOTA5ZTUzZTA1ZjUyNTBkMzAyZTgxYmMyNTI1NjVlMTRkYjdjCi0tLSAvZGV2L251bGwK
KysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vdXNlcnNjcmlwdHMvd2luZG93LW9u
ZXJyb3ItZm9yLWlzb2xhdGVkLXdvcmxkLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDUgQEAKK0NP
TlNPTEUgTUVTU0FHRTogbGluZSAxOiBVbmNhdWdodCBFcnJvcjogRXJyb3IgaW4gdXNlciBzY3Jp
cHQNDQorSW4gdGhpcyB0ZXN0IHdpbmRvdy5vbmVycm9yIHNob3VsZCBiZSBpbnZva2VkIG9ubHkg
Zm9yIHVuY2F1Z2h0IGV4Y2VwdGlvbiBpbiB0aGUgbWFpbiB3b3JsZC4NDQorDQ0KK01haW4gZnJh
bWUgd2luZG93Lm9uZXJyb3I6IFVuY2F1Z2h0IEVycm9yOiBFcnJvciBpbiBtYWluIHdvcmxkIGF0
IHdpbmRvdy1vbmVycm9yLWZvci1pc29sYXRlZC13b3JsZC5odG1sOjI2DQ0KKw0NCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy91c2Vyc2NyaXB0cy93aW5kb3ctb25lcnJvci1mb3ItaXNvbGF0ZWQt
d29ybGQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvdXNlcnNjcmlwdHMvd2luZG93LW9uZXJy
b3ItZm9yLWlzb2xhdGVkLXdvcmxkLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iOGFmNjk1YmZh
N2Q4NGY3ZmFkZTJjMWMxODFhNWNjOGM1MTkyN2VkCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0
VGVzdHMvdXNlcnNjcmlwdHMvd2luZG93LW9uZXJyb3ItZm9yLWlzb2xhdGVkLXdvcmxkLWV4cGVj
dGVkLnR4dApAQCAtMCwwICsxLDUgQEAKK0NPTlNPTEUgTUVTU0FHRTogbGluZSAxOiBFcnJvcjog
RXJyb3IgaW4gdXNlciBzY3JpcHQKK0luIHRoaXMgdGVzdCB3aW5kb3cub25lcnJvciBzaG91bGQg
YmUgaW52b2tlZCBvbmx5IGZvciB1bmNhdWdodCBleGNlcHRpb24gaW4gdGhlIG1haW4gd29ybGQu
CisKK01haW4gZnJhbWUgd2luZG93Lm9uZXJyb3I6IEVycm9yOiBFcnJvciBpbiBtYWluIHdvcmxk
IGF0IHdpbmRvdy1vbmVycm9yLWZvci1pc29sYXRlZC13b3JsZC5odG1sOjI2CisKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL3VzZXJzY3JpcHRzL3dpbmRvdy1vbmVycm9yLWZvci1pc29sYXRlZC13
b3JsZC5odG1sIGIvTGF5b3V0VGVzdHMvdXNlcnNjcmlwdHMvd2luZG93LW9uZXJyb3ItZm9yLWlz
b2xhdGVkLXdvcmxkLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uODU2MjcxMzQyOGEwYzc1ZTdlNDdjMDkxZDdj
NWNhMjJiZGY0NTM1MwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3VzZXJzY3JpcHRz
L3dpbmRvdy1vbmVycm9yLWZvci1pc29sYXRlZC13b3JsZC5odG1sCkBAIC0wLDAgKzEsMzAgQEAK
KzwhRE9DVFlQRSBIVE1MPgorPGh0bWw+Cis8aGVhZD4KKzwvaGVhZD4KKzxib2R5PgorPHA+SW4g
dGhpcyB0ZXN0IHdpbmRvdy5vbmVycm9yIHNob3VsZCBiZSBpbnZva2VkIG9ubHkgZm9yIHVuY2F1
Z2h0IGV4Y2VwdGlvbiBpbiB0aGUgbWFpbiB3b3JsZC4KKzwvcD4KKzxkaXYgaWQ9ImNvbnNvbGUi
PjwvZGl2PgorPHNjcmlwdD4KK2lmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpIHsKKyAg
ICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7CisgICAgbGF5b3V0VGVzdENvbnRy
b2xsZXIuYWRkVXNlclNjcmlwdCgidGhyb3cgbmV3IEVycm9yKCdFcnJvciBpbiB1c2VyIHNjcmlw
dCcpOyIsIGZhbHNlLCB0cnVlKTsKK30KKworZnVuY3Rpb24gbG9nKG1zZykgeworICAgIGRvY3Vt
ZW50LmdldEVsZW1lbnRCeUlkKCJjb25zb2xlIikuaW5uZXJIVE1MICs9IG1zZyArICI8YnI+IjsK
K30KKword2luZG93Lm9uZXJyb3IgPSBmdW5jdGlvbihtc2csIHVybCwgbGluZSkKK3sKKyAgICB1
cmwgPSB1cmwgPyB1cmwubWF0Y2goIC9bXlwvXStcLz8kLyApWzBdIDogdXJsOworICAgIGxvZygi
TWFpbiBmcmFtZSB3aW5kb3cub25lcnJvcjogIiArIG1zZyArICIgYXQgIiArIHVybCArICI6IiAr
IGxpbmUpOworICAgIHJldHVybiBmYWxzZTsKK30KKwordGhyb3cgbmV3IEVycm9yKCJFcnJvciBp
biBtYWluIHdvcmxkIik7CisKKzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0
IGEvV2ViQ29yZS9BbmRyb2lkLmpzY2JpbmRpbmdzLm1rIGIvV2ViQ29yZS9BbmRyb2lkLmpzY2Jp
bmRpbmdzLm1rCmluZGV4IDA4MTYxMTM0OTlmMzM1MDU0NWRhMDFkY2U5ZmE5ODkwZDQ0OTA1OTcu
LmE0YjA5MmY3ZTU3YTllZDk3MzU2ZDJmNzA5ZTFhY2EwZDk5YzlkZjcgMTAwNjQ0Ci0tLSBhL1dl
YkNvcmUvQW5kcm9pZC5qc2NiaW5kaW5ncy5taworKysgYi9XZWJDb3JlL0FuZHJvaWQuanNjYmlu
ZGluZ3MubWsKQEAgLTk2LDYgKzk2LDcgQEAgTE9DQUxfU1JDX0ZJTEVTICs9IFwKIAliaW5kaW5n
cy9qcy9KU0RldmljZU9yaWVudGF0aW9uRXZlbnRDdXN0b20uY3BwIFwKIAliaW5kaW5ncy9qcy9K
U0RvY3VtZW50Q3VzdG9tLmNwcCBcCiAJYmluZGluZ3MvanMvSlNFbGVtZW50Q3VzdG9tLmNwcCBc
CisJYmluZGluZ3MvanMvSlNFcnJvckhhbmRsZXIuY3BwIFwKIAliaW5kaW5ncy9qcy9KU0V2ZW50
Q3VzdG9tLmNwcCBcCiAJYmluZGluZ3MvanMvSlNFdmVudExpc3RlbmVyLmNwcCBcCiAJYmluZGlu
Z3MvanMvSlNFdmVudFRhcmdldC5jcHAgXApAQCAtMTU2LDcgKzE1Nyw2IEBAIExPQ0FMX1NSQ19G
SUxFUyArPSBcCiAJYmluZGluZ3MvanMvSlNXZWJLaXRQb2ludEN1c3RvbS5jcHAgXAogCWJpbmRp
bmdzL2pzL0pTV29ya2VyQ29udGV4dEJhc2UuY3BwIFwKIAliaW5kaW5ncy9qcy9KU1dvcmtlckNv
bnRleHRDdXN0b20uY3BwIFwKLQliaW5kaW5ncy9qcy9KU1dvcmtlckNvbnRleHRFcnJvckhhbmRs
ZXIuY3BwIFwKIAliaW5kaW5ncy9qcy9KU1dvcmtlckN1c3RvbS5jcHAgXAogCWJpbmRpbmdzL2pz
L0pTWE1MSHR0cFJlcXVlc3RDdXN0b20uY3BwIFwKIAliaW5kaW5ncy9qcy9KU1hNTEh0dHBSZXF1
ZXN0VXBsb2FkQ3VzdG9tLmNwcCBcCmRpZmYgLS1naXQgYS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0
IGIvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAppbmRleCA0MTBkNTliYzFmNjQ1NzliNGM2YTNjNjU0
MDZmMDdjNzZhZjM3YWI3Li4yN2Y4MTcxMmFhMjc0ZmE2ZTc2ZmYyYTc4NGYwODk3MWVkOWFmNzUy
IDEwMDY0NAotLS0gYS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CisrKyBiL1dlYkNvcmUvQ01ha2VM
aXN0cy50eHQKQEAgLTYxMiw2ICs2MTIsNyBAQCBTRVQoV2ViQ29yZV9TT1VSQ0VTCiAgICAgYmlu
ZGluZ3MvanMvSlNET01XaW5kb3dTaGVsbC5jcHAKICAgICBiaW5kaW5ncy9qcy9KU0RPTVdyYXBw
ZXIuY3BwCiAgICAgYmluZGluZ3MvanMvSlNFbGVtZW50Q3VzdG9tLmNwcAorICAgIGJpbmRpbmdz
L2pzL0pTRXJyb3JIYW5kbGVyLmNwcAogICAgIGJpbmRpbmdzL2pzL0pTRXZlbnRDdXN0b20uY3Bw
CiAgICAgYmluZGluZ3MvanMvSlNFdmVudExpc3RlbmVyLmNwcAogICAgIGJpbmRpbmdzL2pzL0pT
RXZlbnRTb3VyY2VDdXN0b20uY3BwCkBAIC02NzUsNyArNjc2LDYgQEAgU0VUKFdlYkNvcmVfU09V
UkNFUwogICAgIGJpbmRpbmdzL2pzL0pTV2ViU29ja2V0Q3VzdG9tLmNwcAogICAgIGJpbmRpbmdz
L2pzL0pTV29ya2VyQ29udGV4dEJhc2UuY3BwCiAgICAgYmluZGluZ3MvanMvSlNXb3JrZXJDb250
ZXh0Q3VzdG9tLmNwcAotICAgIGJpbmRpbmdzL2pzL0pTV29ya2VyQ29udGV4dEVycm9ySGFuZGxl
ci5jcHAKICAgICBiaW5kaW5ncy9qcy9KU1dvcmtlckN1c3RvbS5jcHAKICAgICBiaW5kaW5ncy9q
cy9KU1hNTEh0dHBSZXF1ZXN0Q3VzdG9tLmNwcAogICAgIGJpbmRpbmdzL2pzL0pTWE1MSHR0cFJl
cXVlc3RVcGxvYWRDdXN0b20uY3BwCmRpZmYgLS1naXQgYS9XZWJDb3JlL0NoYW5nZUxvZyBiL1dl
YkNvcmUvQ2hhbmdlTG9nCmluZGV4IGNjZjQ4ZGY3NzM1M2NlY2I2YTU3NmY4OWEyNWU5OGI2ZmJh
MGU0YmMuLmJmYThhNjJhNmFlYWY4ODQ2YjhiN2UyZTE2MWZiYWU2YmJkYjMyYjMgMTAwNjQ0Ci0t
LSBhL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEs
MTAwIEBACisyMDEwLTEwLTAxICBZdXJ5IFNlbWlraGF0c2t5ICA8eXVyeXNAY2hyb21pdW0ub3Jn
PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFdlYkNv
cmUgZG9lc24ndCBmaXJlIHdpbmRvdy5vbmVycm9yIGV2ZW50IHdoZW4gdW5jYXVnaHQgSmF2YVNj
cmlwdCBleGNlcHRpb25zIGFyZSB0aHJvd24KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTg1MTkKKworICAgICAgICBVbmNhdWdodCBleGNlcHRpb25zIGFy
ZSBwcm9wYWdhdGVkIHRvIHdpbmRvdy5vbmVycm9yIGhhbmRlciBpZiBvbmUgaXMgcHJlc2VudC4K
KyAgICAgICAgVGhlIGhhbmRsZXIgaXMgZXhwZWN0ZWQgdG8gYmUgYSBmdW5jdGlvbiBhY2NlcHRp
bmcgdGhyZWUgYXJndW1lbnRzOiBlcnJvciBtZXNzYWdlLAorICAgICAgICByZXNvdXJjZSB1cmwg
YW5kIGxpbmUgbnVtYmVyIHdoZXJlIHRoZSBleGNlcHRpb24gb2NjdXJlZC4KKworICAgICAgICBU
ZXN0czogZmFzdC9ldmVudHMvd2luZG93LW9uZXJyb3IxLmh0bWwKKyAgICAgICAgICAgICAgIGZh
c3QvZXZlbnRzL3dpbmRvdy1vbmVycm9yMTAuaHRtbAorICAgICAgICAgICAgICAgZmFzdC9ldmVu
dHMvd2luZG93LW9uZXJyb3IxMS5odG1sCisgICAgICAgICAgICAgICBmYXN0L2V2ZW50cy93aW5k
b3ctb25lcnJvcjIuaHRtbAorICAgICAgICAgICAgICAgZmFzdC9ldmVudHMvd2luZG93LW9uZXJy
b3IzLmh0bWwKKyAgICAgICAgICAgICAgIGZhc3QvZXZlbnRzL3dpbmRvdy1vbmVycm9yNC5odG1s
CisgICAgICAgICAgICAgICBmYXN0L2V2ZW50cy93aW5kb3ctb25lcnJvcjUuaHRtbAorICAgICAg
ICAgICAgICAgZmFzdC9ldmVudHMvd2luZG93LW9uZXJyb3I2Lmh0bWwKKyAgICAgICAgICAgICAg
IGZhc3QvZXZlbnRzL3dpbmRvdy1vbmVycm9yNy5odG1sCisgICAgICAgICAgICAgICBmYXN0L2V2
ZW50cy93aW5kb3ctb25lcnJvcjguaHRtbAorICAgICAgICAgICAgICAgZmFzdC9ldmVudHMvd2lu
ZG93LW9uZXJyb3I5Lmh0bWwKKyAgICAgICAgICAgICAgIGh0dHAvdGVzdHMvc2VjdXJpdHkvd2lu
ZG93LW9uZXJyb3ItZXhjZXB0aW9uLWluLWlmcmFtZS5odG1sCisgICAgICAgICAgICAgICB1c2Vy
c2NyaXB0cy93aW5kb3ctb25lcnJvci1mb3ItaXNvbGF0ZWQtd29ybGQuaHRtbAorCisgICAgICAg
ICogQW5kcm9pZC5qc2NiaW5kaW5ncy5tazoKKyAgICAgICAgKiBDTWFrZUxpc3RzLnR4dDoKKyAg
ICAgICAgKiBHTlVtYWtlZmlsZS5hbToKKyAgICAgICAgKiBXZWJDb3JlLmd5cGk6CisgICAgICAg
ICogV2ViQ29yZS5vcmRlcjoKKyAgICAgICAgKiBXZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJv
ajoKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAg
ICogYmluZGluZ3MvanMvSlNCaW5kaW5nc0FsbEluT25lLmNwcDoKKyAgICAgICAgKiBiaW5kaW5n
cy9qcy9KU0RPTUJpbmRpbmcuY3BwOgorICAgICAgICAoV2ViQ29yZTo6cmVwb3J0RXhjZXB0aW9u
KToKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU0Vycm9ySGFuZGxlci5jcHA6IEFkZGVkLgorICAg
ICAgICAoV2ViQ29yZTo6SlNFcnJvckhhbmRsZXI6OkpTRXJyb3JIYW5kbGVyKToKKyAgICAgICAg
KFdlYkNvcmU6OkpTRXJyb3JIYW5kbGVyOjp+SlNFcnJvckhhbmRsZXIpOgorICAgICAgICAoV2Vi
Q29yZTo6SlNFcnJvckhhbmRsZXI6OmhhbmRsZUV2ZW50KToKKyAgICAgICAgKiBiaW5kaW5ncy9q
cy9KU0Vycm9ySGFuZGxlci5oOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkpTRXJyb3JIYW5k
bGVyOjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6Y3JlYXRlSlNFcnJvckhhbmRsZXIpOgor
ICAgICAgICAqIGJpbmRpbmdzL2pzL0pTV29ya2VyQ29udGV4dEVycm9ySGFuZGxlci5jcHA6IFJl
bW92ZWQuCisgICAgICAgICogYmluZGluZ3MvanMvSlNXb3JrZXJDb250ZXh0RXJyb3JIYW5kbGVy
Lmg6IFJlbW92ZWQuIFRoaXMgY2xhc3Mgd2FzIHJlZmFjdG9yZWQgaW50byBtb3JlIGdlbmVyYWwK
KyAgICAgICAgSlNFcnJvckhhbmRsZXIgdGhhdCByZXByZXNlbnRzIGdsb2JhbCBvbmVycm8gaGFu
ZGVyIG9uIFdvcmtlciBDb250ZXh0IG9yIG9uIERPTVdpbmRvdy4KKyAgICAgICAgKiBiaW5kaW5n
cy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbToKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRz
L0NvZGVHZW5lcmF0b3JWOC5wbToKKyAgICAgICAgKiBiaW5kaW5ncy92OC9ET01XcmFwcGVyV29y
bGQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6ZW50ZXJlZENvbnRleHRXb3JsZCk6CisgICAgICAg
IChXZWJDb3JlOjpjb250ZXh0V29ybGQpOgorICAgICAgICAqIGJpbmRpbmdzL3Y4L0RPTVdyYXBw
ZXJXb3JsZC5oOiBhZGRlZCBmdW5jdGlvbnMgdGhhdCBhbGxvdyB0byBnZXQgRE9NV3JhcHBlcldv
cmxkIGZyb20gb2JqZWN0cworICAgICAgICB0aGF0IGFyZSBhdmFpbGFibGUgaW4gdGhlIGV2ZW50
IGhhbmRsZXJzLiBXZSBuZWVkIHRvIGtub3cgdGhlaXIgd29ybGQgd2hlbiBFcnJvckV2ZW50Cisg
ICAgICAgIGlzIGJlaW5nIGRpc3BhdGNoZWQgdG8gY2hlY2sgdGhhdCB0aGUgZXZlbnQgaXMgZnJv
bSB0aGUgc2FtZSB3b3JsZCBhcyB0aGUgaGFuZGxlci4KKyAgICAgICAgKiBiaW5kaW5ncy92OC9W
OENvbnNvbGVNZXNzYWdlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlY4Q29uc29sZU1lc3NhZ2U6
OmRpc3BhdGNoTm93KToKKyAgICAgICAgKFdlYkNvcmU6OlY4Q29uc29sZU1lc3NhZ2U6OmhhbmRs
ZXIpOiB0aGUgbWV0aG9kIHdhcyBjaGFuZ2VkIHRvIHVzZSBnZW5lcmljIFdlYkNvcmUgZXhjZXB0
aW9uCisgICAgICAgIHJlcG9ydGluZyBtZWNoYW5pc20gd2hpY2ggaXMgYWxzbyB1c2VkIGJ5IEpT
QyBiaW5kaW5ncy4KKyAgICAgICAgKiBiaW5kaW5ncy92OC9WOENvbnNvbGVNZXNzYWdlLmg6Cisg
ICAgICAgIChXZWJDb3JlOjpWOENvbnNvbGVNZXNzYWdlOjpTY29wZTo6U2NvcGUpOgorICAgICAg
ICAoV2ViQ29yZTo6VjhDb25zb2xlTWVzc2FnZTo6U2NvcGU6On5TY29wZSk6CisgICAgICAgICog
YmluZGluZ3MvdjgvVjhXaW5kb3dFcnJvckhhbmRsZXIuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdl
YkNvcmU6OlY4V2luZG93RXJyb3JIYW5kbGVyOjpWOFdpbmRvd0Vycm9ySGFuZGxlcik6CisgICAg
ICAgIChXZWJDb3JlOjpWOFdpbmRvd0Vycm9ySGFuZGxlcjo6Y2FsbExpc3RlbmVyRnVuY3Rpb24p
OgorICAgICAgICAqIGJpbmRpbmdzL3Y4L1Y4V2luZG93RXJyb3JIYW5kbGVyLmg6IEFkZGVkLgor
ICAgICAgICAoV2ViQ29yZTo6VjhXaW5kb3dFcnJvckhhbmRsZXI6OmNyZWF0ZSk6CisgICAgICAg
ICogYmluZGluZ3MvdjgvV29ya2VyQ29udGV4dEV4ZWN1dGlvblByb3h5LmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OnY4TWVzc2FnZUhhbmRsZXIpOgorICAgICAgICAqIGJpbmRpbmdzL3Y4L1dvcmtl
clNjcmlwdENvbnRyb2xsZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6V29ya2VyU2NyaXB0Q29u
dHJvbGxlcjo6ZXZhbHVhdGUpOgorICAgICAgICAqIGRvbS9Eb2N1bWVudC5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpEb2N1bWVudDo6ZXJyb3JFdmVudFRhcmdldCk6CisgICAgICAgIChXZWJDb3Jl
OjpEb2N1bWVudDo6bG9nRXhjZXB0aW9uVG9Db25zb2xlKToKKyAgICAgICAgKiBkb20vRG9jdW1l
bnQuaDoKKyAgICAgICAgKiBkb20vRXJyb3JFdmVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpF
cnJvckV2ZW50OjpFcnJvckV2ZW50KToKKyAgICAgICAgKiBkb20vRXJyb3JFdmVudC5oOiBFcnJv
ckV2ZW50IGlzIGV4dGVuZGVkIHdpdGggYW4gYWNjZXNzb3IgZm9yIERPTVdyYXBwZXJXb3JsZCBp
bgorICAgICAgICB3aGljaCB0aGUgZXhjZXB0aW9uIG9jY3VycmVkLiBUaGlzIGFsbG93cyB0byBu
b3QgcGFzcyB0aGUgZXZlbnQgb2JqZWN0IHRvIGxpc3RlbmVycworICAgICAgICBpbiBvdGhlciB3
b3JsZHMuCisgICAgICAgIChXZWJDb3JlOjpFcnJvckV2ZW50OjpjcmVhdGUpOgorICAgICAgICAo
V2ViQ29yZTo6RXJyb3JFdmVudDo6d3JhcHBlcldvcmxkKToKKyAgICAgICAgKiBkb20vU2NyaXB0
RXhlY3V0aW9uQ29udGV4dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTY3JpcHRFeGVjdXRpb25D
b250ZXh0OjpQZW5kaW5nRXhjZXB0aW9uOjpQZW5kaW5nRXhjZXB0aW9uKToKKyAgICAgICAgKFdl
YkNvcmU6OlNjcmlwdEV4ZWN1dGlvbkNvbnRleHQ6OlNjcmlwdEV4ZWN1dGlvbkNvbnRleHQpOgor
ICAgICAgICAoV2ViQ29yZTo6U2NyaXB0RXhlY3V0aW9uQ29udGV4dDo6cmVwb3J0RXhjZXB0aW9u
KTogdGhpcyBtZXRob2QgaXMgbm90IHZpcnR1YWwgYW55bW9yZSB0bworICAgICAgICBlbnN1cmUg
dGhhdCBlcnJvciBldmVudCBkaXNwYXRjaGluZyBhbGdvcml0aG0gaXMgdGhlIHNhbWUgaW4gV29y
a2VyQ29udGV4dCBhbmQgaW4gRG9jdW1lbnQuCisgICAgICAgIChXZWJDb3JlOjpTY3JpcHRFeGVj
dXRpb25Db250ZXh0OjpkaXNwYXRjaEVycm9yRXZlbnQpOgorICAgICAgICAqIGRvbS9TY3JpcHRF
eGVjdXRpb25Db250ZXh0Lmg6CisgICAgICAgICogd29ya2Vycy9EZWZhdWx0U2hhcmVkV29ya2Vy
UmVwb3NpdG9yeS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpwb3N0RXhjZXB0aW9uVGFzayk6Cisg
ICAgICAgICogd29ya2Vycy9Xb3JrZXJDb250ZXh0LmNwcDogCisgICAgICAgIChXZWJDb3JlOjpX
b3JrZXJDb250ZXh0OjpXb3JrZXJDb250ZXh0KToKKyAgICAgICAgKFdlYkNvcmU6OldvcmtlckNv
bnRleHQ6OmVycm9yRXZlbnRUYXJnZXQpOgorICAgICAgICAoV2ViQ29yZTo6V29ya2VyQ29udGV4
dDo6bG9nRXhjZXB0aW9uVG9Db25zb2xlKToKKyAgICAgICAgKiB3b3JrZXJzL1dvcmtlckNvbnRl
eHQuaDoKKyAgICAgICAgKiB3b3JrZXJzL1dvcmtlck1lc3NhZ2luZ1Byb3h5LmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OldvcmtlckV4Y2VwdGlvblRhc2s6OnBlcmZvcm1UYXNrKToKKwogMjAxMC0x
MC0wMSAgUGF0cmljayBHYW5zdGVyZXIgIDxwYXJvZ2FAd2Via2l0Lm9yZz4KIAogICAgICAgICBS
ZXZpZXdlZCBieSBBZGFtIFJvYmVuLgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9HTlVtYWtlZmlsZS5h
bSBiL1dlYkNvcmUvR05VbWFrZWZpbGUuYW0KaW5kZXggYTc0Mzk4MzllMzJjMTY4Y2ViYzIyNDdl
YWFkMjYyMmE1YjhiMTRiZS4uMjA3ZWU4Y2E3MTA3NGMwNGVlOTBhNmMwOWEzODA5ZjBkZWQ3NGQw
OSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9HTlVtYWtlZmlsZS5hbQorKysgYi9XZWJDb3JlL0dOVW1h
a2VmaWxlLmFtCkBAIC03MTEsNiArNzExLDggQEAgd2ViY29yZV9zb3VyY2VzICs9IFwKIAlXZWJD
b3JlL2JpbmRpbmdzL2pzL0pTRE9NV3JhcHBlci5oIFwKIAlXZWJDb3JlL2JpbmRpbmdzL2pzL0pT
RWxlbWVudEN1c3RvbS5jcHAgXAogCVdlYkNvcmUvYmluZGluZ3MvanMvSlNFbnRyeUN1c3RvbS5j
cHAgXAorCVdlYkNvcmUvYmluZGluZ3MvanMvSlNFcnJvckhhbmRsZXIuY3BwIFwKKwlXZWJDb3Jl
L2JpbmRpbmdzL2pzL0pTRXJyb3JIYW5kbGVyLmggXAogCVdlYkNvcmUvYmluZGluZ3MvanMvSlNF
dmVudEN1c3RvbS5jcHAgXAogCVdlYkNvcmUvYmluZGluZ3MvanMvSlNFdmVudExpc3RlbmVyLmNw
cCBcCiAJV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0V2ZW50TGlzdGVuZXIuaCBcCmRpZmYgLS1naXQg
YS9XZWJDb3JlL1dlYkNvcmUuZ3lwaSBiL1dlYkNvcmUvV2ViQ29yZS5neXBpCmluZGV4IGU5YWVm
N2I4MzkzNjhmYjRmNWRhZjJiMzQ0MzhjOTdkOWU5N2EwY2EuLjg3OWFjYjgzZTY1Mjk1ODdiNWY2
YzY1ZmRjNTIyN2RhOWI5M2I5MTYgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvV2ViQ29yZS5neXBpCisr
KyBiL1dlYkNvcmUvV2ViQ29yZS5neXBpCkBAIC01ODUsNiArNTg1LDggQEAKICAgICAgICAgICAg
ICdiaW5kaW5ncy9qcy9KU0RPTVdyYXBwZXIuaCcsCiAgICAgICAgICAgICAnYmluZGluZ3MvanMv
SlNFbGVtZW50Q3VzdG9tLmNwcCcsCiAgICAgICAgICAgICAnYmluZGluZ3MvanMvSlNFbnRyeUN1
c3RvbS5jcHAnLAorICAgICAgICAgICAgJ2JpbmRpbmdzL2pzL0pTRXJyb3JIYW5kbGVyLmNwcCcs
CisgICAgICAgICAgICAnYmluZGluZ3MvanMvSlNFcnJvckhhbmRsZXIuaCcsCiAgICAgICAgICAg
ICAnYmluZGluZ3MvanMvSlNFdmVudEN1c3RvbS5jcHAnLAogICAgICAgICAgICAgJ2JpbmRpbmdz
L2pzL0pTRXZlbnRMaXN0ZW5lci5jcHAnLAogICAgICAgICAgICAgJ2JpbmRpbmdzL2pzL0pTRXZl
bnRMaXN0ZW5lci5oJywKQEAgLTY3Nyw4ICs2NzksNiBAQAogICAgICAgICAgICAgJ2JpbmRpbmdz
L2pzL0pTV29ya2VyQ29udGV4dEJhc2UuY3BwJywKICAgICAgICAgICAgICdiaW5kaW5ncy9qcy9K
U1dvcmtlckNvbnRleHRCYXNlLmgnLAogICAgICAgICAgICAgJ2JpbmRpbmdzL2pzL0pTV29ya2Vy
Q29udGV4dEN1c3RvbS5jcHAnLAotICAgICAgICAgICAgJ2JpbmRpbmdzL2pzL0pTV29ya2VyQ29u
dGV4dEVycm9ySGFuZGxlci5jcHAnLAotICAgICAgICAgICAgJ2JpbmRpbmdzL2pzL0pTV29ya2Vy
Q29udGV4dEVycm9ySGFuZGxlci5oJywKICAgICAgICAgICAgICdiaW5kaW5ncy9qcy9KU1dvcmtl
ckN1c3RvbS5jcHAnLAogICAgICAgICAgICAgJ2JpbmRpbmdzL2pzL0pTWE1MSHR0cFJlcXVlc3RD
dXN0b20uY3BwJywKICAgICAgICAgICAgICdiaW5kaW5ncy9qcy9KU1hNTEh0dHBSZXF1ZXN0VXBs
b2FkQ3VzdG9tLmNwcCcsCkBAIC05NDIsNiArOTQyLDggQEAKICAgICAgICAgICAgICdiaW5kaW5n
cy92OC9WOFNWR1BPRFR5cGVXcmFwcGVyLmgnLAogICAgICAgICAgICAgJ2JpbmRpbmdzL3Y4L1Y4
VXRpbGl0aWVzLmNwcCcsCiAgICAgICAgICAgICAnYmluZGluZ3MvdjgvVjhVdGlsaXRpZXMuaCcs
CisgICAgICAgICAgICAnYmluZGluZ3MvdjgvVjhXaW5kb3dFcnJvckhhbmRsZXIuY3BwJywKKyAg
ICAgICAgICAgICdiaW5kaW5ncy92OC9WOFdpbmRvd0Vycm9ySGFuZGxlci5oJywKICAgICAgICAg
ICAgICdiaW5kaW5ncy92OC9WOFdvcmtlckNvbnRleHRFcnJvckhhbmRsZXIuY3BwJywKICAgICAg
ICAgICAgICdiaW5kaW5ncy92OC9WOFdvcmtlckNvbnRleHRFcnJvckhhbmRsZXIuaCcsCiAgICAg
ICAgICAgICAnYmluZGluZ3MvdjgvVjhXb3JrZXJDb250ZXh0RXZlbnRMaXN0ZW5lci5jcHAnLApk
aWZmIC0tZ2l0IGEvV2ViQ29yZS9XZWJDb3JlLm9yZGVyIGIvV2ViQ29yZS9XZWJDb3JlLm9yZGVy
CmluZGV4IDQxMjQ3NzczYmEzN2VmZDUwNWViN2YxZWM1ODQ3OGVjNTYyZmMwOTcuLmZiMThkNjQ4
MjcyMzFlYmNiZTlhMGZiMWVlNDQ2MWY2M2ZhNTA3MmMgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvV2Vi
Q29yZS5vcmRlcgorKysgYi9XZWJDb3JlL1dlYkNvcmUub3JkZXIKQEAgLTI1MjE3LDEzICsyNTIx
Nyw5IEBAIF9fWk43V2ViQ29yZTE1SlNXb3JrZXJDb250ZXh0MTBzZXRUaW1lb3V0RVBOM0pTQzlF
eGVjU3RhdGVFUktOUzFfN0FyZ0xpc3RFCiBfX1pON1dlYkNvcmUxM1dvcmtlckNvbnRleHQxMHNl
dFRpbWVvdXRFUE5TXzE1U2NoZWR1bGVkQWN0aW9uRWkKIF9fWk43V2ViQ29yZTE3V29ya2VyU2hh
cmVkVGltZXIxMXNldEZpcmVUaW1lRWQKIF9fWk43V2ViQ29yZTE1U2NoZWR1bGVkQWN0aW9uN2V4
ZWN1dGVFUE5TXzEzV29ya2VyQ29udGV4dEUKLV9fWk43V2ViQ29yZTI3SlNXb3JrZXJDb250ZXh0
RXJyb3JIYW5kbGVyQzFFUE4zSlNDOEpTT2JqZWN0RVMzX2JQTlNfMTVET01XcmFwcGVyV29ybGRF
Ci1fX1pON1dlYkNvcmUyN0pTV29ya2VyQ29udGV4dEVycm9ySGFuZGxlckMyRVBOM0pTQzhKU09i
amVjdEVTM19iUE5TXzE1RE9NV3JhcHBlcldvcmxkRQogX19aTjdXZWJDb3JlMTBFcnJvckV2ZW50
QzFFUktOU182U3RyaW5nRVMzX2oKIF9fWk43V2ViQ29yZTEwRXJyb3JFdmVudEMyRVJLTlNfNlN0
cmluZ0VTM19qCi1fX1pON1dlYkNvcmUyN0pTV29ya2VyQ29udGV4dEVycm9ySGFuZGxlcjExaGFu
ZGxlRXZlbnRFUE5TXzIyU2NyaXB0RXhlY3V0aW9uQ29udGV4dEVQTlNfNUV2ZW50RQogX19aTjdX
ZWJDb3JlMTBFcnJvckV2ZW50RDBFdgotX19aTjdXZWJDb3JlMjdKU1dvcmtlckNvbnRleHRFcnJv
ckhhbmRsZXJEMEV2CiBfX1pON1dlYkNvcmUxN2pzV29ya2VyT25tZXNzYWdlRVBOM0pTQzlFeGVj
U3RhdGVFTlMwXzdKU1ZhbHVlRVJLTlMwXzEwSWRlbnRpZmllckUKIF9fWk43V2ViQ29yZTM0anNX
b3JrZXJQcm90b3R5cGVGdW5jdGlvblRlcm1pbmF0ZUVQTjNKU0M5RXhlY1N0YXRlRVBOUzBfOEpT
T2JqZWN0RU5TMF83SlNWYWx1ZUVSS05TMF83QXJnTGlzdEUKIF9fWlRobjhfTjdXZWJDb3JlMjBX
b3JrZXJNZXNzYWdpbmdQcm94eTE5d29ya2VyQ29udGV4dENsb3NlZEV2CmRpZmYgLS1naXQgYS9X
ZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qIGIvV2ViQ29yZS9XZWJDb3JlLnZj
cHJvai9XZWJDb3JlLnZjcHJvagppbmRleCAyYzhkOWI0MWQyYjEyYzE3ZjEzODdkOGY5M2Q2MTM1
NjI1NjEyNmFmLi42MTFjY2MwZWYxYjU4OWE1YjQ5ZjQ0YTI4NjhhNzQ0MmQwOTc3YmFlIDEwMDY0
NAotLS0gYS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qCisrKyBiL1dlYkNv
cmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oKQEAgLTQ1MDE3LDYgKzQ1MDE3LDYzIEBA
CiAJCQkJPC9GaWxlPg0KIAkJCQk8RmlsZQ0KIAkJCQkJUmVsYXRpdmVQYXRoPSIuLlxiaW5kaW5n
c1xqc1xKU0RPTVdpbmRvd1NoZWxsLmNwcCINCisJCQkJCVJlbGF0aXZlUGF0aD0iLi5cYmluZGlu
Z3NcanNcSlNFcnJvckhhbmRsZXIuY3BwIg0KKwkJCQkJPg0KKwkJCQkJPEZpbGVDb25maWd1cmF0
aW9uDQorCQkJCQkJTmFtZT0iRGVidWd8V2luMzIiDQorCQkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9
InRydWUiDQorCQkJCQkJPg0KKwkJCQkJCTxUb29sDQorCQkJCQkJCU5hbWU9IlZDQ0xDb21waWxl
clRvb2wiDQorCQkJCQkJLz4NCisJCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+DQorCQkJCQk8Rmls
ZUNvbmZpZ3VyYXRpb24NCisJCQkJCQlOYW1lPSJSZWxlYXNlfFdpbjMyIg0KKwkJCQkJCUV4Y2x1
ZGVkRnJvbUJ1aWxkPSJ0cnVlIg0KKwkJCQkJCT4NCisJCQkJCQk8VG9vbA0KKwkJCQkJCQlOYW1l
PSJWQ0NMQ29tcGlsZXJUb29sIg0KKwkJCQkJCS8+DQorCQkJCQk8L0ZpbGVDb25maWd1cmF0aW9u
Pg0KKwkJCQkJPEZpbGVDb25maWd1cmF0aW9uDQorCQkJCQkJTmFtZT0iRGVidWdfSW50ZXJuYWx8
V2luMzIiDQorCQkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiDQorCQkJCQkJPg0KKwkJCQkJ
CTxUb29sDQorCQkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiDQorCQkJCQkJLz4NCisJCQkJ
CTwvRmlsZUNvbmZpZ3VyYXRpb24+DQorCQkJCQk8RmlsZUNvbmZpZ3VyYXRpb24NCisJCQkJCQlO
YW1lPSJEZWJ1Z19DYWlyb3xXaW4zMiINCisJCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSIN
CisJCQkJCQk+DQorCQkJCQkJPFRvb2wNCisJCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCIN
CisJCQkJCQkvPg0KKwkJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4NCisJCQkJCTxGaWxlQ29uZmln
dXJhdGlvbg0KKwkJCQkJCU5hbWU9IlJlbGVhc2VfQ2Fpcm98V2luMzIiDQorCQkJCQkJRXhjbHVk
ZWRGcm9tQnVpbGQ9InRydWUiDQorCQkJCQkJPg0KKwkJCQkJCTxUb29sDQorCQkJCQkJCU5hbWU9
IlZDQ0xDb21waWxlclRvb2wiDQorCQkJCQkJLz4NCisJCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+
DQorCQkJCQk8RmlsZUNvbmZpZ3VyYXRpb24NCisJCQkJCQlOYW1lPSJEZWJ1Z19BbGx8V2luMzIi
DQorCQkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiDQorCQkJCQkJPg0KKwkJCQkJCTxUb29s
DQorCQkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiDQorCQkJCQkJLz4NCisJCQkJCTwvRmls
ZUNvbmZpZ3VyYXRpb24+DQorCQkJCTwvRmlsZT4NCisJCQkJPEZpbGUNCisJCQkJCVJlbGF0aXZl
UGF0aD0iLi5cYmluZGluZ3NcanNcSlNFcnJvckhhbmRsZXIuaCINCisJCQkJCT4NCisJCQkJPC9G
aWxlPg0KKwkJCQk8RmlsZQ0KKwkJCQkJUmVsYXRpdmVQYXRoPSIuLlxiaW5kaW5nc1xqc1xKU0V2
ZW50Q3VzdG9tLmNwcCINCiAJCQkJCT4NCiAJCQkJCTxGaWxlQ29uZmlndXJhdGlvbg0KIAkJCQkJ
CU5hbWU9IkRlYnVnfFdpbjMyIg0KQEAgLTQ5NTc2LDYyICs0OTYzMyw2IEBACiAJCQkJCTwvRmls
ZUNvbmZpZ3VyYXRpb24+DQogCQkJCTwvRmlsZT4NCiAJCQkJPEZpbGUNCi0JCQkJCVJlbGF0aXZl
UGF0aD0iLi5cYmluZGluZ3NcanNcSlNXb3JrZXJDb250ZXh0RXJyb3JIYW5kbGVyLmNwcCINCi0J
CQkJCT4NCi0JCQkJCTxGaWxlQ29uZmlndXJhdGlvbg0KLQkJCQkJCU5hbWU9IkRlYnVnfFdpbjMy
Ig0KLQkJCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIg0KLQkJCQkJCT4NCi0JCQkJCQk8VG9v
bA0KLQkJCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIg0KLQkJCQkJCS8+DQotCQkJCQk8L0Zp
bGVDb25maWd1cmF0aW9uPg0KLQkJCQkJPEZpbGVDb25maWd1cmF0aW9uDQotCQkJCQkJTmFtZT0i
UmVsZWFzZXxXaW4zMiINCi0JCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSINCi0JCQkJCQk+
DQotCQkJCQkJPFRvb2wNCi0JCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCINCi0JCQkJCQkv
Pg0KLQkJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4NCi0JCQkJCTxGaWxlQ29uZmlndXJhdGlvbg0K
LQkJCQkJCU5hbWU9IkRlYnVnX0ludGVybmFsfFdpbjMyIg0KLQkJCQkJCUV4Y2x1ZGVkRnJvbUJ1
aWxkPSJ0cnVlIg0KLQkJCQkJCT4NCi0JCQkJCQk8VG9vbA0KLQkJCQkJCQlOYW1lPSJWQ0NMQ29t
cGlsZXJUb29sIg0KLQkJCQkJCS8+DQotCQkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPg0KLQkJCQkJ
PEZpbGVDb25maWd1cmF0aW9uDQotCQkJCQkJTmFtZT0iRGVidWdfQ2Fpcm98V2luMzIiDQotCQkJ
CQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiDQotCQkJCQkJPg0KLQkJCQkJCTxUb29sDQotCQkJ
CQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiDQotCQkJCQkJLz4NCi0JCQkJCTwvRmlsZUNvbmZp
Z3VyYXRpb24+DQotCQkJCQk8RmlsZUNvbmZpZ3VyYXRpb24NCi0JCQkJCQlOYW1lPSJSZWxlYXNl
X0NhaXJvfFdpbjMyIg0KLQkJCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIg0KLQkJCQkJCT4N
Ci0JCQkJCQk8VG9vbA0KLQkJCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIg0KLQkJCQkJCS8+
DQotCQkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPg0KLQkJCQkJPEZpbGVDb25maWd1cmF0aW9uDQot
CQkJCQkJTmFtZT0iRGVidWdfQWxsfFdpbjMyIg0KLQkJCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0
cnVlIg0KLQkJCQkJCT4NCi0JCQkJCQk8VG9vbA0KLQkJCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJU
b29sIg0KLQkJCQkJCS8+DQotCQkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPg0KLQkJCQk8L0ZpbGU+
DQotCQkJCTxGaWxlDQotCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGJpbmRpbmdzXGpzXEpTV29ya2Vy
Q29udGV4dEVycm9ySGFuZGxlci5oIg0KLQkJCQkJPg0KLQkJCQk8L0ZpbGU+DQotCQkJCTxGaWxl
DQogCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGJpbmRpbmdzXGpzXEpTWE1MSHR0cFJlcXVlc3RDdXN0
b20uY3BwIg0KIAkJCQkJPg0KIAkJCQkJPEZpbGVDb25maWd1cmF0aW9uDQpkaWZmIC0tZ2l0IGEv
V2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9XZWJDb3JlL1dlYkNv
cmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCA5MDAwNzI2ODg0NzE5MTJhNGIzZDdl
YTViYWU2YmI4ZjhlZmMzZWUzLi5jZTU0NzFiNDI1MzZmNmM1NGNiY2U3ZWUwNTc1ZWMzMjlhYmE4
OTMxIDEwMDY0NAotLS0gYS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
agorKysgYi9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtNTQx
MSw4ICs1NDExLDggQEAKIAkJRjM2NDRBRkYxMTE5ODA1OTAwRTBENTM3IC8qIEluamVjdGVkU2Ny
aXB0LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEYz
NjQ0QUZEMTExOTgwNTkwMEUwRDUzNyAvKiBJbmplY3RlZFNjcmlwdC5jcHAgKi87IH07CiAJCUYz
NjQ0QjAwMTExOTgwNTkwMEUwRDUzNyAvKiBJbmplY3RlZFNjcmlwdC5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjM2NDRBRkUxMTE5ODA1OTAwRTBENTM3
IC8qIEluamVjdGVkU2NyaXB0LmggKi87IH07CiAJCUYzNzVDQzA3MTE1MEQzMDAwMDhEREI4MSAv
KiBJbnNwZWN0b3JXb3JrZXJSZXNvdXJjZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gRjM3NUNDMDYxMTUwRDMwMDAwOEREQjgxIC8qIEluc3BlY3Rvcldv
cmtlclJlc291cmNlLmggKi87IH07Ci0JCUYzRDQ2MTQ4MTE2MUQ1MzIwMENBMEQwOSAvKiBKU1dv
cmtlckNvbnRleHRFcnJvckhhbmRsZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gRjNENDYxNDYxMTYxRDUzMjAwQ0EwRDA5IC8qIEpTV29ya2VyQ29u
dGV4dEVycm9ySGFuZGxlci5jcHAgKi87IH07Ci0JCUYzRDQ2MTQ5MTE2MUQ1MzIwMENBMEQwOSAv
KiBKU1dvcmtlckNvbnRleHRFcnJvckhhbmRsZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEYzRDQ2MTQ3MTE2MUQ1MzIwMENBMEQwOSAvKiBKU1dvcmtl
ckNvbnRleHRFcnJvckhhbmRsZXIuaCAqLzsgfTsKKwkJRjNENDYxNDgxMTYxRDUzMjAwQ0EwRDA5
IC8qIEpTRXJyb3JIYW5kbGVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IEYzRDQ2MTQ2MTE2MUQ1MzIwMENBMEQwOSAvKiBKU0Vycm9ySGFuZGxlci5j
cHAgKi87IH07CisJCUYzRDQ2MTQ5MTE2MUQ1MzIwMENBMEQwOSAvKiBKU0Vycm9ySGFuZGxlci5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjNENDYxNDcx
MTYxRDUzMjAwQ0EwRDA5IC8qIEpTRXJyb3JIYW5kbGVyLmggKi87IH07CiAJCUY0RUFGNEFFMTBD
NzQyQjEwMDkxMDBEMyAvKiBPcGVuVHlwZVNhbml0aXplci5jcHAgaW4gU291cmNlcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNEVBRjRBQzEwQzc0MkIxMDA5MTAwRDMgLyog
T3BlblR5cGVTYW5pdGl6ZXIuY3BwICovOyB9OwogCQlGNEVBRjRBRjEwQzc0MkIxMDA5MTAwRDMg
LyogT3BlblR5cGVTYW5pdGl6ZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IEY0RUFGNEFEMTBDNzQyQjEwMDkxMDBEMyAvKiBPcGVuVHlwZVNhbml0aXpl
ci5oICovOyB9OwogCQlGNTVCM0RBRDEyNTFGMTJEMDAzRUYyNjkgLyogQmFzZVRleHRJbnB1dFR5
cGUuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjU1
QjNENzkxMjUxRjEyRDAwM0VGMjY5IC8qIEJhc2VUZXh0SW5wdXRUeXBlLmNwcCAqLzsgfTsKQEAg
LTExMzg3LDggKzExMzg3LDggQEAKIAkJRjM2NDRBRkQxMTE5ODA1OTAwRTBENTM3IC8qIEluamVj
dGVkU2NyaXB0LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEluamVj
dGVkU2NyaXB0LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRjM2NDRBRkUxMTE5
ODA1OTAwRTBENTM3IC8qIEluamVjdGVkU2NyaXB0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IEluamVjdGVkU2NyaXB0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CUYzNzVDQzA2MTE1MEQzMDAwMDhEREI4MSAvKiBJbnNwZWN0b3JXb3JrZXJSZXNvdXJjZS5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBJbnNwZWN0b3JXb3JrZXJSZXNvdXJjZS5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQlGM0Q0NjE0NjExNjFENTMyMDBDQTBEMDkg
LyogSlNXb3JrZXJDb250ZXh0RXJyb3JIYW5kbGVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLmNwcDsgcGF0aCA9IEpTV29ya2VyQ29udGV4dEVycm9ySGFuZGxlci5jcHA7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUYzRDQ2MTQ3MTE2MUQ1MzIwMENBMEQwOSAvKiBKU1dvcmtl
ckNvbnRleHRFcnJvckhhbmRsZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
SlNXb3JrZXJDb250ZXh0RXJyb3JIYW5kbGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CisJCUYzRDQ2MTQ2MTE2MUQ1MzIwMENBMEQwOSAvKiBKU0Vycm9ySGFuZGxlci5jcHAgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU0Vycm9ySGFuZGxlci5jcHA7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUYzRDQ2MTQ3MTE2MUQ1MzIwMENBMEQwOSAvKiBKU0Vy
cm9ySGFuZGxlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKU0Vycm9ySGFu
ZGxlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlGNEVBRjRBQzEwQzc0MkIxMDA5
MTAwRDMgLyogT3BlblR5cGVTYW5pdGl6ZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
Y3BwOyBuYW1lID0gT3BlblR5cGVTYW5pdGl6ZXIuY3BwOyBwYXRoID0gb3BlbnR5cGUvT3BlblR5
cGVTYW5pdGl6ZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlGNEVBRjRBRDEw
Qzc0MkIxMDA5MTAwRDMgLyogT3BlblR5cGVTYW5pdGl6ZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBuYW1lID0gT3BlblR5cGVTYW5pdGl6ZXIuaDsgcGF0aCA9IG9wZW50eXBlL09wZW5U
eXBlU2FuaXRpemVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUY1MjNEMjNCMDJE
RTQzOTYwMTg2MzVDQSAvKiBIVE1MRG9jdW1lbnQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBpbmRlbnRXaWR0aCA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSFRNTERvY3VtZW50LmNwcDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgdGFiV2lkdGggPSA4OyB1c2VzVGFicyA9IDA7IH07CkBAIC0xNjU4
OSw2ICsxNjU4OSw4IEBACiAJCQkJQkNCRkI1M0IwRENEMjlDRjAwMTlCM0U1IC8qIEpTRE9NV2lu
ZG93U2hlbGwuaCAqLywKIAkJCQlCQzUzREFDNjExNDMzMDY0MDAwRDgxN0UgLyogSlNET01XcmFw
cGVyLmNwcCAqLywKIAkJCQk2NUUwRTk0MzExMzNDODlGMDBCNENCMTAgLyogSlNET01XcmFwcGVy
LmggKi8sCisJCQkJRjNENDYxNDYxMTYxRDUzMjAwQ0EwRDA5IC8qIEpTRXJyb3JIYW5kbGVyLmNw
cCAqLywKKwkJCQlGM0Q0NjE0NzExNjFENTMyMDBDQTBEMDkgLyogSlNFcnJvckhhbmRsZXIuaCAq
LywKIAkJCQlCQzYwOTAxRTBFOTFCOEVDMDAwQzY4QjUgLyogSlNFdmVudFRhcmdldC5jcHAgKi8s
CiAJCQkJQkM2MDkwMUQwRTkxQjhFQzAwMEM2OEI1IC8qIEpTRXZlbnRUYXJnZXQuaCAqLywKIAkJ
CQkzMzE0QUNFOTEwODkyMDg2MDAwRjBFNTYgLyogSlNFeGNlcHRpb25CYXNlLmNwcCAqLywKQEAg
LTE2NjAxLDggKzE2NjAzLDYgQEAKIAkJCQlCMjExMjdBNTBCMzE4Njc3MDAwOUJFNTMgLyogSlNT
VkdQT0RUeXBlV3JhcHBlci5oICovLAogCQkJCUUxQzM2RDMyMEVCMEEwOTQwMDc0MTBCQyAvKiBK
U1dvcmtlckNvbnRleHRCYXNlLmNwcCAqLywKIAkJCQlFMUMzNkQzMzBFQjBBMDk0MDA3NDEwQkMg
LyogSlNXb3JrZXJDb250ZXh0QmFzZS5oICovLAotCQkJCUYzRDQ2MTQ2MTE2MUQ1MzIwMENBMEQw
OSAvKiBKU1dvcmtlckNvbnRleHRFcnJvckhhbmRsZXIuY3BwICovLAotCQkJCUYzRDQ2MTQ3MTE2
MUQ1MzIwMENBMEQwOSAvKiBKU1dvcmtlckNvbnRleHRFcnJvckhhbmRsZXIuaCAqLywKIAkJCQlC
Q0EzNzhCQTBEMTVGNjQyMDBCNzkzRDYgLyogU2NoZWR1bGVkQWN0aW9uLmNwcCAqLywKIAkJCQlC
Q0EzNzhCQjBEMTVGNjQyMDBCNzkzRDYgLyogU2NoZWR1bGVkQWN0aW9uLmggKi8sCiAJCQkJNDFG
MUQyMUUwRUYzNUMyQTAwREE4NzUzIC8qIFNjcmlwdENhY2hlZEZyYW1lRGF0YS5jcHAgKi8sCkBA
IC0yMDAxNCw3ICsyMDAxNCw3IEBACiAJCQkJRTFDQUE1QzYwRThCRDIzNjAwQTczRUNBIC8qIEpT
V29ya2VyLmggaW4gSGVhZGVycyAqLywKIAkJCQlFMTgyNTY5MDBFRjJCMDJEMDA5MzMyNDIgLyog
SlNXb3JrZXJDb250ZXh0LmggaW4gSGVhZGVycyAqLywKIAkJCQlFMUMzNkQzNTBFQjBBMDk0MDA3
NDEwQkMgLyogSlNXb3JrZXJDb250ZXh0QmFzZS5oIGluIEhlYWRlcnMgKi8sCi0JCQkJRjNENDYx
NDkxMTYxRDUzMjAwQ0EwRDA5IC8qIEpTV29ya2VyQ29udGV4dEVycm9ySGFuZGxlci5oIGluIEhl
YWRlcnMgKi8sCisJCQkJRjNENDYxNDkxMTYxRDUzMjAwQ0EwRDA5IC8qIEpTRXJyb3JIYW5kbGVy
LmggaW4gSGVhZGVycyAqLywKIAkJCQlFMUMzNjJFRjBFQUYyQUE5MDA3NDEwQkMgLyogSlNXb3Jr
ZXJMb2NhdGlvbi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRTEyNzFBNTgwRUVFQ0RFNDAwRjYxMjEz
IC8qIEpTV29ya2VyTmF2aWdhdG9yLmggaW4gSGVhZGVycyAqLywKIAkJCQlCQzM0OEJENDBEQjdG
ODA0MDA0QUJBQjkgLyogSlNYTUxIdHRwUmVxdWVzdC5oIGluIEhlYWRlcnMgKi8sCkBAIC0yMjY1
Niw3ICsyMjY1Niw3IEBACiAJCQkJRTE4MjU2OEYwRUYyQjAyRDAwOTMzMjQyIC8qIEpTV29ya2Vy
Q29udGV4dC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlFMUMzNkQzNDBFQjBBMDk0MDA3NDEwQkMg
LyogSlNXb3JrZXJDb250ZXh0QmFzZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlFMTgyNThBQzBF
RjNDRDcwMDA5MzMyNDIgLyogSlNXb3JrZXJDb250ZXh0Q3VzdG9tLmNwcCBpbiBTb3VyY2VzICov
LAotCQkJCUYzRDQ2MTQ4MTE2MUQ1MzIwMENBMEQwOSAvKiBKU1dvcmtlckNvbnRleHRFcnJvckhh
bmRsZXIuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJRjNENDYxNDgxMTYxRDUzMjAwQ0EwRDA5IC8q
IEpTRXJyb3JIYW5kbGVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUUxQ0E1Q0JDMEU4Q0RDQUYw
MEU4RUY5MCAvKiBKU1dvcmtlckN1c3RvbS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlFMUMzNjJG
MDBFQUYyQUE5MDA3NDEwQkMgLyogSlNXb3JrZXJMb2NhdGlvbi5jcHAgaW4gU291cmNlcyAqLywK
IAkJCQlFMTI3MUE1OTBFRUVDREU0MDBGNjEyMTMgLyogSlNXb3JrZXJOYXZpZ2F0b3IuY3BwIGlu
IFNvdXJjZXMgKi8sCmRpZmYgLS1naXQgYS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTQmluZGluZ3NB
bGxJbk9uZS5jcHAgYi9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTQmluZGluZ3NBbGxJbk9uZS5jcHAK
aW5kZXggNmUxY2MxZTIzYmExYWY4MzRjZjM3OWUzM2JhNWJjZmViOTNhYmZlNy4uNTYwMTJmYTQ4
YjE0ZjIwZTg2NDQ5OTk1ZDVmNGZjMmFkNmQ2OWEzNiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9iaW5k
aW5ncy9qcy9KU0JpbmRpbmdzQWxsSW5PbmUuY3BwCisrKyBiL1dlYkNvcmUvYmluZGluZ3MvanMv
SlNCaW5kaW5nc0FsbEluT25lLmNwcApAQCAtNjQsNiArNjQsNyBAQAogI2luY2x1ZGUgIkpTRGV2
aWNlT3JpZW50YXRpb25FdmVudEN1c3RvbS5jcHAiCiAjaW5jbHVkZSAiSlNEb2N1bWVudEN1c3Rv
bS5jcHAiCiAjaW5jbHVkZSAiSlNFbGVtZW50Q3VzdG9tLmNwcCIKKyNpbmNsdWRlICJKU0Vycm9y
SGFuZGxlci5jcHAiCiAjaW5jbHVkZSAiSlNFdmVudEN1c3RvbS5jcHAiCiAjaW5jbHVkZSAiSlNF
dmVudExpc3RlbmVyLmNwcCIKICNpbmNsdWRlICJKU0V2ZW50U291cmNlQ3VzdG9tLmNwcCIKQEAg
LTEzMCw3ICsxMzEsNiBAQAogI2luY2x1ZGUgIkpTV2ViU29ja2V0Q3VzdG9tLmNwcCIKICNpbmNs
dWRlICJKU1dvcmtlckNvbnRleHRCYXNlLmNwcCIKICNpbmNsdWRlICJKU1dvcmtlckNvbnRleHRD
dXN0b20uY3BwIgotI2luY2x1ZGUgIkpTV29ya2VyQ29udGV4dEVycm9ySGFuZGxlci5jcHAiCiAj
aW5jbHVkZSAiSlNXb3JrZXJDdXN0b20uY3BwIgogI2luY2x1ZGUgIkpTWE1MSHR0cFJlcXVlc3RD
dXN0b20uY3BwIgogI2luY2x1ZGUgIkpTWE1MSHR0cFJlcXVlc3RVcGxvYWRDdXN0b20uY3BwIgpk
aWZmIC0tZ2l0IGEvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTUJpbmRpbmcuY3BwIGIvV2ViQ29y
ZS9iaW5kaW5ncy9qcy9KU0RPTUJpbmRpbmcuY3BwCmluZGV4IGQ3YzA4NmExNTBhODQ2ZThkOGYz
N2JiZmFjMDljZTViYjY3NGRiMjUuLjBiODYzMDZmMWZmNWVmNmRiMGQ0MjIzNzE0ZDkwZjg3YWI5
Y2JmNWUgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01CaW5kaW5nLmNwcAor
KysgYi9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NQmluZGluZy5jcHAKQEAgLTUyLDYgKzUyLDcg
QEAKICNpbmNsdWRlICJNZXNzYWdlUG9ydC5oIgogI2luY2x1ZGUgIlJhbmdlRXhjZXB0aW9uLmgi
CiAjaW5jbHVkZSAiU2NyaXB0Q2FjaGVkRnJhbWVEYXRhLmgiCisjaW5jbHVkZSAiU2NyaXB0Q2Fs
bFN0YWNrLmgiCiAjaW5jbHVkZSAiU2NyaXB0Q29udHJvbGxlci5oIgogI2luY2x1ZGUgIlNldHRp
bmdzLmgiCiAjaW5jbHVkZSAiV2ViQ29yZUpTQ2xpZW50RGF0YS5oIgpAQCAtNTYwLDcgKzU2MSw3
IEBAIHZvaWQgcmVwb3J0RXhjZXB0aW9uKEV4ZWNTdGF0ZSogZXhlYywgSlNWYWx1ZSBleGNlcHRp
b24pCiAgICAgaWYgKCFzY3JpcHRFeGVjdXRpb25Db250ZXh0KQogICAgICAgICByZXR1cm47CiAK
LSAgICBzY3JpcHRFeGVjdXRpb25Db250ZXh0LT5yZXBvcnRFeGNlcHRpb24odXN0cmluZ1RvU3Ry
aW5nKGVycm9yTWVzc2FnZSksIGxpbmVOdW1iZXIsIHVzdHJpbmdUb1N0cmluZyhleGNlcHRpb25T
b3VyY2VVUkwpKTsKKyAgICBzY3JpcHRFeGVjdXRpb25Db250ZXh0LT5yZXBvcnRFeGNlcHRpb24o
Y3VycmVudFdvcmxkKGV4ZWMpLCB1c3RyaW5nVG9TdHJpbmcoZXJyb3JNZXNzYWdlKSwgbGluZU51
bWJlciwgdXN0cmluZ1RvU3RyaW5nKGV4Y2VwdGlvblNvdXJjZVVSTCksIDApOwogfQogCiB2b2lk
IHJlcG9ydEN1cnJlbnRFeGNlcHRpb24oRXhlY1N0YXRlKiBleGVjKQpkaWZmIC0tZ2l0IGEvV2Vi
Q29yZS9iaW5kaW5ncy9qcy9KU1dvcmtlckNvbnRleHRFcnJvckhhbmRsZXIuY3BwIGIvV2ViQ29y
ZS9iaW5kaW5ncy9qcy9KU0Vycm9ySGFuZGxlci5jcHAKc2ltaWxhcml0eSBpbmRleCA4NiUKcmVu
YW1lIGZyb20gV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1dvcmtlckNvbnRleHRFcnJvckhhbmRsZXIu
Y3BwCnJlbmFtZSB0byBXZWJDb3JlL2JpbmRpbmdzL2pzL0pTRXJyb3JIYW5kbGVyLmNwcAppbmRl
eCBhZDNmNWVjMTdkM2I1ODBjYjY4MDg4ZGViNjE5ZmY3MDhhNzJiNzRkLi42NzdiOWFlMmZlN2Qy
ZDMzODM0NGRmNjZjOTMxZDA1MTk2ODBhMDNiIDEwMDY0NAotLS0gYS9XZWJDb3JlL2JpbmRpbmdz
L2pzL0pTV29ya2VyQ29udGV4dEVycm9ySGFuZGxlci5jcHAKKysrIGIvV2ViQ29yZS9iaW5kaW5n
cy9qcy9KU0Vycm9ySGFuZGxlci5jcHAKQEAgLTMwLDkgKzMwLDcgQEAKIAogI2luY2x1ZGUgImNv
bmZpZy5oIgogCi0jaWYgRU5BQkxFKFdPUktFUlMpCi0KLSNpbmNsdWRlICJKU1dvcmtlckNvbnRl
eHRFcnJvckhhbmRsZXIuaCIKKyNpbmNsdWRlICJKU0Vycm9ySGFuZGxlci5oIgogCiAjaW5jbHVk
ZSAiRXJyb3JFdmVudC5oIgogI2luY2x1ZGUgIkV2ZW50LmgiCkBAIC00MywyMSArNDEsMjggQEAg
dXNpbmcgbmFtZXNwYWNlIEpTQzsKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1KU1dvcmtlckNv
bnRleHRFcnJvckhhbmRsZXI6OkpTV29ya2VyQ29udGV4dEVycm9ySGFuZGxlcihKU09iamVjdCog
ZnVuY3Rpb24sIEpTT2JqZWN0KiB3cmFwcGVyLCBib29sIGlzQXR0cmlidXRlLCBET01XcmFwcGVy
V29ybGQqIGlzb2xhdGVkV29ybGQpCitKU0Vycm9ySGFuZGxlcjo6SlNFcnJvckhhbmRsZXIoSlNP
YmplY3QqIGZ1bmN0aW9uLCBKU09iamVjdCogd3JhcHBlciwgYm9vbCBpc0F0dHJpYnV0ZSwgRE9N
V3JhcHBlcldvcmxkKiBpc29sYXRlZFdvcmxkKQogICAgIDogSlNFdmVudExpc3RlbmVyKGZ1bmN0
aW9uLCB3cmFwcGVyLCBpc0F0dHJpYnV0ZSwgaXNvbGF0ZWRXb3JsZCkKIHsKIH0KIAotSlNXb3Jr
ZXJDb250ZXh0RXJyb3JIYW5kbGVyOjp+SlNXb3JrZXJDb250ZXh0RXJyb3JIYW5kbGVyKCkKK0pT
RXJyb3JIYW5kbGVyOjp+SlNFcnJvckhhbmRsZXIoKQogewogfQogCi12b2lkIEpTV29ya2VyQ29u
dGV4dEVycm9ySGFuZGxlcjo6aGFuZGxlRXZlbnQoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogc2Ny
aXB0RXhlY3V0aW9uQ29udGV4dCwgRXZlbnQqIGV2ZW50KQordm9pZCBKU0Vycm9ySGFuZGxlcjo6
aGFuZGxlRXZlbnQoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogc2NyaXB0RXhlY3V0aW9uQ29udGV4
dCwgRXZlbnQqIGV2ZW50KQogewogICAgIEFTU0VSVChzY3JpcHRFeGVjdXRpb25Db250ZXh0KTsK
ICAgICBpZiAoIXNjcmlwdEV4ZWN1dGlvbkNvbnRleHQpCiAgICAgICAgIHJldHVybjsKIAorICAg
IEFTU0VSVChldmVudC0+aXNFcnJvckV2ZW50KCkpOworICAgIEVycm9yRXZlbnQqIGVycm9yRXZl
bnQgPSBzdGF0aWNfY2FzdDxFcnJvckV2ZW50Kj4oZXZlbnQpOworCisgICAgLy8gSXQgaXMgdW5z
ZWN1cmUgdG8gcmVwb3J0IGV4Y2VwdGlvbiBmcm9tIG9uZSB3b3JsZCB0byBhIGhhbmRsZXIgZnJv
bSBhbm90aGVyLgorICAgIGlmIChpc29sYXRlZFdvcmxkKCkgIT0gZXJyb3JFdmVudC0+d3JhcHBl
cldvcmxkKCkpCisgICAgICAgIHJldHVybjsKKwogICAgIEpTTG9jayBsb2NrKFNpbGVuY2VBc3Nl
cnRpb25zT25seSk7CiAKICAgICBKU09iamVjdCoganNGdW5jdGlvbiA9IHRoaXMtPmpzRnVuY3Rp
b24oc2NyaXB0RXhlY3V0aW9uQ29udGV4dCk7CkBAIC04MCw5ICs4NSw2IEBAIHZvaWQgSlNXb3Jr
ZXJDb250ZXh0RXJyb3JIYW5kbGVyOjpoYW5kbGVFdmVudChTY3JpcHRFeGVjdXRpb25Db250ZXh0
KiBzY3JpcHRFeGVjCiAgICAgICAgIEV2ZW50KiBzYXZlZEV2ZW50ID0gZ2xvYmFsT2JqZWN0LT5j
dXJyZW50RXZlbnQoKTsKICAgICAgICAgZ2xvYmFsT2JqZWN0LT5zZXRDdXJyZW50RXZlbnQoZXZl
bnQpOwogCi0gICAgICAgIEFTU0VSVChldmVudC0+aXNFcnJvckV2ZW50KCkpOwotICAgICAgICBF
cnJvckV2ZW50KiBlcnJvckV2ZW50ID0gc3RhdGljX2Nhc3Q8RXJyb3JFdmVudCo+KGV2ZW50KTsK
LQogICAgICAgICBNYXJrZWRBcmd1bWVudEJ1ZmZlciBhcmdzOwogICAgICAgICBhcmdzLmFwcGVu
ZChqc1N0cmluZyhleGVjLCBlcnJvckV2ZW50LT5tZXNzYWdlKCkpKTsKICAgICAgICAgYXJncy5h
cHBlbmQoanNTdHJpbmcoZXhlYywgZXJyb3JFdmVudC0+ZmlsZW5hbWUoKSkpOwpAQCAtMTEyLDUg
KzExNCwzIEBAIHZvaWQgSlNXb3JrZXJDb250ZXh0RXJyb3JIYW5kbGVyOjpoYW5kbGVFdmVudChT
Y3JpcHRFeGVjdXRpb25Db250ZXh0KiBzY3JpcHRFeGVjCiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdl
YkNvcmUKLQotI2VuZGlmIC8vIEVOQUJMRShXT1JLRVJTKQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9i
aW5kaW5ncy9qcy9KU1dvcmtlckNvbnRleHRFcnJvckhhbmRsZXIuaCBiL1dlYkNvcmUvYmluZGlu
Z3MvanMvSlNFcnJvckhhbmRsZXIuaApzaW1pbGFyaXR5IGluZGV4IDY5JQpjb3B5IGZyb20gV2Vi
Q29yZS9iaW5kaW5ncy9qcy9KU1dvcmtlckNvbnRleHRFcnJvckhhbmRsZXIuaApjb3B5IHRvIFdl
YkNvcmUvYmluZGluZ3MvanMvSlNFcnJvckhhbmRsZXIuaAppbmRleCBhMTg4Mjk5MDM4YzljZGZl
NzIyODZiNzFmZWFlYjNhNDljMmEwZDgxLi45NTdmZDgxZGFhMDU3NDY5YjIxMTJlMTFkN2U3MDRh
ZDRlMjlkN2VkIDEwMDY0NAotLS0gYS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTV29ya2VyQ29udGV4
dEVycm9ySGFuZGxlci5oCisrKyBiL1dlYkNvcmUvYmluZGluZ3MvanMvSlNFcnJvckhhbmRsZXIu
aApAQCAtMjgsMzcgKzI4LDM3IEBACiAgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgogICovCiAKLSNpZm5kZWYgSlNX
b3JrZXJDb250ZXh0RXJyb3JIYW5kbGVyX2gKLSNkZWZpbmUgSlNXb3JrZXJDb250ZXh0RXJyb3JI
YW5kbGVyX2gKKyNpZm5kZWYgSlNFcnJvckhhbmRsZXJfaAorI2RlZmluZSBKU0Vycm9ySGFuZGxl
cl9oCiAKICNpbmNsdWRlICJKU0V2ZW50TGlzdGVuZXIuaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUg
ewogCi1jbGFzcyBKU1dvcmtlckNvbnRleHRFcnJvckhhbmRsZXIgOiBwdWJsaWMgSlNFdmVudExp
c3RlbmVyIHsKK2NsYXNzIEpTRXJyb3JIYW5kbGVyIDogcHVibGljIEpTRXZlbnRMaXN0ZW5lciB7
CiBwdWJsaWM6Ci0gICAgc3RhdGljIFBhc3NSZWZQdHI8SlNXb3JrZXJDb250ZXh0RXJyb3JIYW5k
bGVyPiBjcmVhdGUoSlNDOjpKU09iamVjdCogbGlzdGVuZXIsIEpTQzo6SlNPYmplY3QqIHdyYXBw
ZXIsIGJvb2wgaXNBdHRyaWJ1dGUsIERPTVdyYXBwZXJXb3JsZCogaXNvbGF0ZWRXb3JsZCkKKyAg
ICBzdGF0aWMgUGFzc1JlZlB0cjxKU0Vycm9ySGFuZGxlcj4gY3JlYXRlKEpTQzo6SlNPYmplY3Qq
IGxpc3RlbmVyLCBKU0M6OkpTT2JqZWN0KiB3cmFwcGVyLCBib29sIGlzQXR0cmlidXRlLCBET01X
cmFwcGVyV29ybGQqIGlzb2xhdGVkV29ybGQpCiAgICAgewotICAgICAgICByZXR1cm4gYWRvcHRS
ZWYobmV3IEpTV29ya2VyQ29udGV4dEVycm9ySGFuZGxlcihsaXN0ZW5lciwgd3JhcHBlciwgaXNB
dHRyaWJ1dGUsIGlzb2xhdGVkV29ybGQpKTsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBK
U0Vycm9ySGFuZGxlcihsaXN0ZW5lciwgd3JhcHBlciwgaXNBdHRyaWJ1dGUsIGlzb2xhdGVkV29y
bGQpKTsKICAgICB9CiAKLSAgICB2aXJ0dWFsIH5KU1dvcmtlckNvbnRleHRFcnJvckhhbmRsZXIo
KTsKKyAgICB2aXJ0dWFsIH5KU0Vycm9ySGFuZGxlcigpOwogCiBwcml2YXRlOgotICAgIEpTV29y
a2VyQ29udGV4dEVycm9ySGFuZGxlcihKU0M6OkpTT2JqZWN0KiBmdW5jdGlvbiwgSlNDOjpKU09i
amVjdCogd3JhcHBlciwgYm9vbCBpc0F0dHJpYnV0ZSwgRE9NV3JhcHBlcldvcmxkKiBpc29sYXRl
ZFdvcmxkKTsKKyAgICBKU0Vycm9ySGFuZGxlcihKU0M6OkpTT2JqZWN0KiBmdW5jdGlvbiwgSlND
OjpKU09iamVjdCogd3JhcHBlciwgYm9vbCBpc0F0dHJpYnV0ZSwgRE9NV3JhcHBlcldvcmxkKiBp
c29sYXRlZFdvcmxkKTsKICAgICB2aXJ0dWFsIHZvaWQgaGFuZGxlRXZlbnQoU2NyaXB0RXhlY3V0
aW9uQ29udGV4dCosIEV2ZW50Kik7CiB9OwogCiAvLyBDcmVhdGVzIGEgSlMgRXZlbnRMaXN0ZW5l
ciBmb3IgIm9uZXJyb3IiIGV2ZW50IGhhbmRsZXIgaW4gd29ya2VyIGNvbnRleHQuIEl0IGhhcyBj
dXN0b20gaW1wbGVtZW50YXRpb24gYmVjYXVzZQogLy8gdW5saWtlIG90aGVyIGV2ZW50IGxpc3Rl
bmVycyBpdCBhY2NlcHRzIHRocmVlIHBhcmFtZXRlcnMuCi1pbmxpbmUgUGFzc1JlZlB0cjxKU1dv
cmtlckNvbnRleHRFcnJvckhhbmRsZXI+IGNyZWF0ZUpTV29ya2VyQ29udGV4dEVycm9ySGFuZGxl
cihKU0M6OkV4ZWNTdGF0ZSogZXhlYywgSlNDOjpKU1ZhbHVlIGxpc3RlbmVyLCBKU0M6OkpTT2Jq
ZWN0KiB3cmFwcGVyKQoraW5saW5lIFBhc3NSZWZQdHI8SlNFcnJvckhhbmRsZXI+IGNyZWF0ZUpT
RXJyb3JIYW5kbGVyKEpTQzo6RXhlY1N0YXRlKiBleGVjLCBKU0M6OkpTVmFsdWUgbGlzdGVuZXIs
IEpTQzo6SlNPYmplY3QqIHdyYXBwZXIpCiB7CiAgICAgaWYgKCFsaXN0ZW5lci5pc09iamVjdCgp
KQogICAgICAgICByZXR1cm4gMDsKIAotICAgIHJldHVybiBKU1dvcmtlckNvbnRleHRFcnJvckhh
bmRsZXI6OmNyZWF0ZShhc09iamVjdChsaXN0ZW5lciksIHdyYXBwZXIsIHRydWUsIGN1cnJlbnRX
b3JsZChleGVjKSk7CisgICAgcmV0dXJuIEpTRXJyb3JIYW5kbGVyOjpjcmVhdGUoYXNPYmplY3Qo
bGlzdGVuZXIpLCB3cmFwcGVyLCB0cnVlLCBjdXJyZW50V29ybGQoZXhlYykpOwogfQogCiB9IC8v
IG5hbWVzcGFjZSBXZWJDb3JlCiAKLSNlbmRpZiAvLyBKU1dvcmtlckNvbnRleHRFcnJvckhhbmRs
ZXJfaAorI2VuZGlmIC8vIEpTRXJyb3JIYW5kbGVyX2gKZGlmZiAtLWdpdCBhL1dlYkNvcmUvYmlu
ZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG0gYi9XZWJDb3JlL2JpbmRpbmdzL3Njcmlw
dHMvQ29kZUdlbmVyYXRvckpTLnBtCmluZGV4IDgwMzU0MmU2OWQ4MmRjYmRmNTI3OGNkZTcyZDA2
YjU1NTQyYjcxMTYuLjk3ZGY0YTA2YjIyOTU4Mzg5MzI2ZmFhYjBjNDM0NDYwNjY2NzhmOTEgMTAw
NjQ0Ci0tLSBhL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG0KKysr
IGIvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbQpAQCAtMTcxNCw5
ICsxNzE0LDkgQEAgc3ViIEdlbmVyYXRlSW1wbGVtZW50YXRpb24KICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgSlNET01HbG9iYWxPYmplY3Qq
IGdsb2JhbE9iamVjdCA9IGNhc3RlZFRoaXMtPmdsb2JhbE9iamVjdCgpO1xuIik7CiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgIHB1c2go
QGltcGxDb250ZW50LCAiICAgICRpbXBsQ2xhc3NOYW1lKiBpbXAgPSBzdGF0aWNfY2FzdDwkaW1w
bENsYXNzTmFtZSo+KHN0YXRpY19jYXN0PCRjbGFzc05hbWUqPih0aGlzT2JqZWN0KS0+aW1wbCgp
KTtcbiIpOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICgkaW50ZXJmYWNlTmFtZSBl
cSAiV29ya2VyQ29udGV4dCIgYW5kICRuYW1lIGVxICJvbmVycm9yIikgewotICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAkaW1wbEluY2x1ZGVzeyJKU1dvcmtlckNvbnRleHRFcnJvckhh
bmRsZXIuaCJ9ID0gMTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHVzaChAaW1w
bENvbnRlbnQsICIgICAgaW1wLT5zZXQkaW1wbFNldHRlckZ1bmN0aW9uTmFtZShjcmVhdGVKU1dv
cmtlckNvbnRleHRFcnJvckhhbmRsZXIoZXhlYywgdmFsdWUsIHRoaXNPYmplY3QpKTtcbiIpOwor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICgoKCRpbnRlcmZhY2VOYW1lIGVxICJET01X
aW5kb3ciKSBvciAoJGludGVyZmFjZU5hbWUgZXEgIldvcmtlckNvbnRleHQiKSkgYW5kICRuYW1l
IGVxICJvbmVycm9yIikgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkaW1wbElu
Y2x1ZGVzeyJKU0Vycm9ySGFuZGxlci5oIn0gPSAxOworICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICBpbXAtPnNldCRpbXBsU2V0dGVyRnVuY3Rp
b25OYW1lKGNyZWF0ZUpTRXJyb3JIYW5kbGVyKGV4ZWMsIHZhbHVlLCB0aGlzT2JqZWN0KSk7XG4i
KTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgR2VuZXJhdGVBdHRyaWJ1dGVFdmVu
dExpc3RlbmVyQ2FsbCgkY2xhc3NOYW1lLCAkaW1wbFNldHRlckZ1bmN0aW9uTmFtZSwgJHdpbmRv
d0V2ZW50TGlzdGVuZXIpKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CmRpZmYgLS1n
aXQgYS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvclY4LnBtIGIvV2ViQ29y
ZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JWOC5wbQppbmRleCAzMzUzZjBmNWU2NzQy
NjE1Y2MzZTBhMzllY2ZiNDJlMzM3MWU3MzU0Li5hNjFlNDlhZDcxMTNkYzEzMjQ4YzdkOGFiMDdl
MGY4MTY4OGY1MjNlIDEwMDY0NAotLS0gYS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdl
bmVyYXRvclY4LnBtCisrKyBiL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9y
VjgucG0KQEAgLTk5NSw2ICs5OTUsMTAgQEAgRU5ECiAgICAgICAgICAgICAgICAgJGltcGxJbmNs
dWRlc3siVjhFdmVudExpc3RlbmVyTGlzdC5oIn0gPSAxOwogICAgICAgICAgICAgICAgICRpbXBs
SW5jbHVkZXN7IlY4V29ya2VyQ29udGV4dEVycm9ySGFuZGxlci5oIn0gPSAxOwogICAgICAgICAg
ICAgICAgIHB1c2goQGltcGxDb250ZW50RGVjbHMsICIgICAgaW1wLT5zZXQkaW1wbFNldHRlckZ1
bmN0aW9uTmFtZShWOEV2ZW50TGlzdGVuZXJMaXN0OjpmaW5kT3JDcmVhdGVXcmFwcGVyPFY4V29y
a2VyQ29udGV4dEVycm9ySGFuZGxlcj4odmFsdWUsIHRydWUpIik7CisgICAgICAgICAgICB9IGVs
c2lmICgkaW50ZXJmYWNlTmFtZSBlcSAiRE9NV2luZG93IiBhbmQgJGF0dHJpYnV0ZS0+c2lnbmF0
dXJlLT5uYW1lIGVxICJvbmVycm9yIikgeworICAgICAgICAgICAgICAgICRpbXBsSW5jbHVkZXN7
IlY4RXZlbnRMaXN0ZW5lckxpc3QuaCJ9ID0gMTsKKyAgICAgICAgICAgICAgICAkaW1wbEluY2x1
ZGVzeyJWOFdpbmRvd0Vycm9ySGFuZGxlci5oIn0gPSAxOworICAgICAgICAgICAgICAgIHB1c2go
QGltcGxDb250ZW50RGVjbHMsICIgICAgaW1wLT5zZXQkaW1wbFNldHRlckZ1bmN0aW9uTmFtZShW
OEV2ZW50TGlzdGVuZXJMaXN0OjpmaW5kT3JDcmVhdGVXcmFwcGVyPFY4V2luZG93RXJyb3JIYW5k
bGVyPih2YWx1ZSwgdHJ1ZSkiKTsKICAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAg
ICAgcHVzaChAaW1wbENvbnRlbnREZWNscywgIiAgICBpbXAtPnNldCRpbXBsU2V0dGVyRnVuY3Rp
b25OYW1lKFY4RE9NV3JhcHBlcjo6Z2V0RXZlbnRMaXN0ZW5lcih2YWx1ZSwgdHJ1ZSwgTGlzdGVu
ZXJGaW5kT3JDcmVhdGUpIik7CiAgICAgICAgICAgICB9CmRpZmYgLS1naXQgYS9XZWJDb3JlL2Jp
bmRpbmdzL3Y4L0RPTVdyYXBwZXJXb3JsZC5jcHAgYi9XZWJDb3JlL2JpbmRpbmdzL3Y4L0RPTVdy
YXBwZXJXb3JsZC5jcHAKaW5kZXggMWU5NDI5ZjlkM2U1OGIxZGQ3YjljZmJiYjI1ODg5MGQxNDQx
N2E0YS4uMDUwOTlhZDA1ODMzNTJiODVhODRiNGJiODM4OTgzMjhmODEyZTYwOSAxMDA2NDQKLS0t
IGEvV2ViQ29yZS9iaW5kaW5ncy92OC9ET01XcmFwcGVyV29ybGQuY3BwCisrKyBiL1dlYkNvcmUv
YmluZGluZ3MvdjgvRE9NV3JhcHBlcldvcmxkLmNwcApAQCAtMzEsNiArMzEsMTEgQEAKICNpbmNs
dWRlICJjb25maWcuaCIKICNpbmNsdWRlICJET01XcmFwcGVyV29ybGQuaCIKIAorI2luY2x1ZGUg
IkZyYW1lLmgiCisjaW5jbHVkZSAiU2NyaXB0RXhlY3V0aW9uQ29udGV4dC5oIgorI2luY2x1ZGUg
IlY4SXNvbGF0ZWRDb250ZXh0LmgiCisjaW5jbHVkZSAiVjhQcm94eS5oIgorI2luY2x1ZGUgIldv
cmxkQ29udGV4dEhhbmRsZS5oIgogI2luY2x1ZGUgPHd0Zi9TdGRMaWJFeHRyYXMuaD4KICNpbmNs
dWRlIDx3dGYvVGhyZWFkaW5nLmg+CiAKQEAgLTQ4LDQgKzUzLDMwIEBAIERPTVdyYXBwZXJXb3Js
ZCogbWFpblRocmVhZE5vcm1hbFdvcmxkKCkKICAgICByZXR1cm4gY2FjaGVkTm9ybWFsV29ybGQu
Z2V0KCk7CiB9CiAKK0RPTVdyYXBwZXJXb3JsZCogZW50ZXJlZENvbnRleHRXb3JsZCgpCit7Cisg
ICAgdjg6OkhhbmRsZVNjb3BlIGhhbmRsZVNjb3BlOworICAgIHY4OjpIYW5kbGU8djg6OkNvbnRl
eHQ+IGVudGVyZWRDb3RuZXh0ID0gdjg6OkNvbnRleHQ6OkdldEVudGVyZWQoKTsKKyAgICBpZiAo
ZW50ZXJlZENvdG5leHQuSXNFbXB0eSgpKQorICAgICAgICByZXR1cm4gMDsKKyAgICBGcmFtZSog
ZnJhbWUgPSBWOFByb3h5OjpyZXRyaWV2ZUZyYW1lKGVudGVyZWRDb3RuZXh0KTsKKyAgICBWOFBy
b3h5KiBwcm94eSA9IFY4UHJveHk6OnJldHJpZXZlKGZyYW1lKTsKKyAgICBpZiAocHJveHktPm1h
aW5Xb3JsZENvbnRleHQoKSA9PSBlbnRlcmVkQ290bmV4dCkKKyAgICAgICAgcmV0dXJuIG1haW5U
aHJlYWROb3JtYWxXb3JsZCgpOworICAgIHJldHVybiBWOElzb2xhdGVkQ29udGV4dDo6Z2V0RW50
ZXJlZCgpLT53b3JsZCgpOworfQorCitET01XcmFwcGVyV29ybGQqIGNvbnRleHRXb3JsZChTY3Jp
cHRFeGVjdXRpb25Db250ZXh0KiBzY3JpcHRFeGVjdXRpb25Db250ZXh0LCBjb25zdCBXb3JsZENv
bnRleHRIYW5kbGUmIGNvbnRleHRIYW5kbGUpCit7CisgICAgQVNTRVJUKHNjcmlwdEV4ZWN1dGlv
bkNvbnRleHQtPmlzRG9jdW1lbnQoKSk7CisgICAgaWYgKFY4UHJveHkqIHByb3h5ID0gVjhQcm94
eTo6cmV0cmlldmUoc2NyaXB0RXhlY3V0aW9uQ29udGV4dCkpIHsKKyAgICAgICAgdjg6OkhhbmRs
ZVNjb3BlIGhhbmRsZVNjb3BlOworICAgICAgICB2ODo6TG9jYWw8djg6OkNvbnRleHQ+IGNvbnRl
eHQgPSBjb250ZXh0SGFuZGxlLmFkanVzdGVkQ29udGV4dChwcm94eSk7CisgICAgICAgIHY4OjpD
b250ZXh0OjpTY29wZSBjb250ZXh0U2NvcGUoY29udGV4dCk7CisgICAgICAgIHJldHVybiBlbnRl
cmVkQ29udGV4dFdvcmxkKCk7CisgICAgfQorICAgIHJldHVybiAwOworfQorCisKIH0gLy8gbmFt
ZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1dlYkNvcmUvYmluZGluZ3MvdjgvRE9NV3JhcHBl
cldvcmxkLmggYi9XZWJDb3JlL2JpbmRpbmdzL3Y4L0RPTVdyYXBwZXJXb3JsZC5oCmluZGV4IDJh
OWRmMzBjZDJkNzYxNjQ0ZDNhOGZkZjcxYTgyNDgzM2M4ZjY2MDkuLjJlNmRiYjY1NTZhMjJlYmU0
MTU1ODhiZmVjNTdiMzBlY2ZiZDExNjUgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvYmluZGluZ3Mvdjgv
RE9NV3JhcHBlcldvcmxkLmgKKysrIGIvV2ViQ29yZS9iaW5kaW5ncy92OC9ET01XcmFwcGVyV29y
bGQuaApAQCAtMzcsNiArMzcsOSBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKK2NsYXNzIFNj
cmlwdEV4ZWN1dGlvbkNvbnRleHQ7CitjbGFzcyBXb3JsZENvbnRleHRIYW5kbGU7CisKIC8vIFRo
aXMgY2xhc3MgcmVwcmVzZW50IGEgY29sbGVjdGlvbiBvZiBET00gd3JhcHBlcnMgZm9yIGEgc3Bl
Y2lmaWMgd29ybGQuCiAvLyBUaGUgYmFzZSBjbGFzcyBpcyBwcmV0dHkgYm9yaW5nIGJlY2F1c2Ug
dGhlIHdyYXBwZXJzIGFyZSBhY3R1YWxseSBzdG9yZWQKIC8vIHN0YXRpY2FsbHkgaW4gVjhET01N
YXAgYW5kIGdhcmJhZ2UgY29sbGVjdGVkIGJ5IFY4IGl0c2VsZi4KQEAgLTUxLDYgKzU0LDkgQEAg
cHJvdGVjdGVkOgogCiBET01XcmFwcGVyV29ybGQqIG1haW5UaHJlYWROb3JtYWxXb3JsZCgpOwog
CitET01XcmFwcGVyV29ybGQqIGVudGVyZWRDb250ZXh0V29ybGQoKTsKK0RPTVdyYXBwZXJXb3Js
ZCogY29udGV4dFdvcmxkKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqLCBjb25zdCBXb3JsZENvbnRl
eHRIYW5kbGUmKTsKKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCiAjZW5kaWYgLy8gRE9NV3Jh
cHBlcldvcmxkX2gKZGlmZiAtLWdpdCBhL1dlYkNvcmUvYmluZGluZ3MvdjgvVjhDb25zb2xlTWVz
c2FnZS5jcHAgYi9XZWJDb3JlL2JpbmRpbmdzL3Y4L1Y4Q29uc29sZU1lc3NhZ2UuY3BwCmluZGV4
IDhiNmJiMTc4NmE4NWM3OWJjZjAyZmRkZTg1NDE2NTE3ZDFkMWE4NzMuLjRmODQyZTM0NGRiNzc2
MzY5YTc5Njk1OWVjY2Q3OGM5OTA4OTY0Y2EgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvYmluZGluZ3Mv
djgvVjhDb25zb2xlTWVzc2FnZS5jcHAKKysrIGIvV2ViQ29yZS9iaW5kaW5ncy92OC9WOENvbnNv
bGVNZXNzYWdlLmNwcApAQCAtNTMsNyArNTMsMTQgQEAgVjhDb25zb2xlTWVzc2FnZTo6VjhDb25z
b2xlTWVzc2FnZShjb25zdCBTdHJpbmcmIHN0cmluZywgY29uc3QgU3RyaW5nJiBzb3VyY2VJRCwK
IAogdm9pZCBWOENvbnNvbGVNZXNzYWdlOjpkaXNwYXRjaE5vdyhQYWdlKiBwYWdlKQogewotICAg
IGRpc3BhdGNoTm93KHBhZ2UsIDApOworICAgIEFTU0VSVChwYWdlKTsKKworICAgIC8vIFByb2Nl
c3MgYW55IGRlbGF5ZWQgbWVzc2FnZXMgdG8gbWFrZSBzdXJlIHRoYXQgbWVzc2FnZXMKKyAgICAv
LyBhcHBlYXIgaW4gdGhlIHJpZ2h0IG9yZGVyIGluIHRoZSBjb25zb2xlLgorICAgIHByb2Nlc3NE
ZWxheWVkKCk7CisKKyAgICBDb25zb2xlKiBjb25zb2xlID0gcGFnZS0+bWFpbkZyYW1lKCktPmRv
bVdpbmRvdygpLT5jb25zb2xlKCk7CisgICAgY29uc29sZS0+YWRkTWVzc2FnZShKU01lc3NhZ2VT
b3VyY2UsIExvZ01lc3NhZ2VUeXBlLCBFcnJvck1lc3NhZ2VMZXZlbCwgbV9zdHJpbmcsIG1fbGlu
ZU51bWJlciwgbV9zb3VyY2VJRCk7CiB9CiAKIHZvaWQgVjhDb25zb2xlTWVzc2FnZTo6ZGlzcGF0
Y2hMYXRlcigpCkBAIC0xMDQsOCArMTExLDggQEAgdm9pZCBWOENvbnNvbGVNZXNzYWdlOjpoYW5k
bGVyKHY4OjpIYW5kbGU8djg6Ok1lc3NhZ2U+IG1lc3NhZ2UsIHY4OjpIYW5kbGU8djg6OlYKICAg
ICBGcmFtZSogZnJhbWUgPSBWOFByb3h5OjpyZXRyaWV2ZUZyYW1lRm9yRW50ZXJlZENvbnRleHQo
KTsKICAgICBpZiAoIWZyYW1lKQogICAgICAgICByZXR1cm47Ci0gICAgUGFnZSogcGFnZSA9IGZy
YW1lLT5wYWdlKCk7Ci0gICAgaWYgKCFwYWdlKQorICAgIERvY3VtZW50KiBkb2N1bWVudCA9IGZy
YW1lLT5kb2N1bWVudCgpOworICAgIGlmICghZG9jdW1lbnQpCiAgICAgICAgIHJldHVybjsKIAog
ICAgIHY4OjpIYW5kbGU8djg6OlN0cmluZz4gZXJyb3JNZXNzYWdlU3RyaW5nID0gbWVzc2FnZS0+
R2V0KCk7CkBAIC0xMjQsMjEgKzEzMSw5IEBAIHZvaWQgVjhDb25zb2xlTWVzc2FnZTo6aGFuZGxl
cih2ODo6SGFuZGxlPHY4OjpNZXNzYWdlPiBtZXNzYWdlLCB2ODo6SGFuZGxlPHY4OjpWCiAgICAg
djg6OkhhbmRsZTx2ODo6VmFsdWU+IHJlc291cmNlTmFtZSA9IG1lc3NhZ2UtPkdldFNjcmlwdFJl
c291cmNlTmFtZSgpOwogICAgIGJvb2wgdXNlVVJMID0gcmVzb3VyY2VOYW1lLklzRW1wdHkoKSB8
fCAhcmVzb3VyY2VOYW1lLT5Jc1N0cmluZygpOwogICAgIFN0cmluZyByZXNvdXJjZU5hbWVTdHJp
bmcgPSB1c2VVUkwgPyBmcmFtZS0+ZG9jdW1lbnQoKS0+dXJsKCkgOiB0b1dlYkNvcmVTdHJpbmco
cmVzb3VyY2VOYW1lKTsKLSAgICBWOENvbnNvbGVNZXNzYWdlIGNvbnNvbGVNZXNzYWdlKGVycm9y
TWVzc2FnZSwgcmVzb3VyY2VOYW1lU3RyaW5nLCBtZXNzYWdlLT5HZXRMaW5lTnVtYmVyKCkpOwot
ICAgIGNvbnNvbGVNZXNzYWdlLmRpc3BhdGNoTm93KHBhZ2UsIGNhbGxTdGFjay5nZXQoKSk7Ci19
Ci0KLXZvaWQgVjhDb25zb2xlTWVzc2FnZTo6ZGlzcGF0Y2hOb3coUGFnZSogcGFnZSwgU2NyaXB0
Q2FsbFN0YWNrKiBjYWxsU3RhY2spCi17Ci0gICAgQVNTRVJUKHBhZ2UpOwogCi0gICAgLy8gUHJv
Y2VzcyBhbnkgZGVsYXllZCBtZXNzYWdlcyB0byBtYWtlIHN1cmUgdGhhdCBtZXNzYWdlcwotICAg
IC8vIGFwcGVhciBpbiB0aGUgcmlnaHQgb3JkZXIgaW4gdGhlIGNvbnNvbGUuCiAgICAgcHJvY2Vz
c0RlbGF5ZWQoKTsKLQotICAgIENvbnNvbGUqIGNvbnNvbGUgPSBwYWdlLT5tYWluRnJhbWUoKS0+
ZG9tV2luZG93KCktPmNvbnNvbGUoKTsKLSAgICBNZXNzYWdlVHlwZSBtZXNzYWdlVHlwZSA9IGNh
bGxTdGFjayA/IFVuY2F1Z2h0RXhjZXB0aW9uTWVzc2FnZVR5cGUgOiBMb2dNZXNzYWdlVHlwZTsK
LSAgICBjb25zb2xlLT5hZGRNZXNzYWdlKEpTTWVzc2FnZVNvdXJjZSwgbWVzc2FnZVR5cGUsIEVy
cm9yTWVzc2FnZUxldmVsLCBtX3N0cmluZywgbV9saW5lTnVtYmVyLCBtX3NvdXJjZUlELCBjYWxs
U3RhY2spOworICAgIGRvY3VtZW50LT5yZXBvcnRFeGNlcHRpb24oZW50ZXJlZENvbnRleHRXb3Js
ZCgpLCBlcnJvck1lc3NhZ2UsIG1lc3NhZ2UtPkdldExpbmVOdW1iZXIoKSwgcmVzb3VyY2VOYW1l
U3RyaW5nLCBjYWxsU3RhY2sucmVsZWFzZSgpKTsKIH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29y
ZQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9iaW5kaW5ncy92OC9WOENvbnNvbGVNZXNzYWdlLmggYi9X
ZWJDb3JlL2JpbmRpbmdzL3Y4L1Y4Q29uc29sZU1lc3NhZ2UuaAppbmRleCAzODdiNWVlMzRiNTY4
ZTY4M2Y0Y2U3ZWVhZWYxNGMyNmIxNTY3ZTUzLi5lMmZiY2E3ZGYzNjIzMjk4ZjI0NTA1NTIwMTE1
OGU5NTY3OTZhZjE5IDEwMDY0NAotLS0gYS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1Y4Q29uc29sZU1l
c3NhZ2UuaAorKysgYi9XZWJDb3JlL2JpbmRpbmdzL3Y4L1Y4Q29uc29sZU1lc3NhZ2UuaApAQCAt
MzcsNTYgKzM3LDU1IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotICAgIGNsYXNzIFBhZ2U7
Ci0gICAgY2xhc3MgU2NyaXB0Q2FsbFN0YWNrOworY2xhc3MgRnJhbWU7CitjbGFzcyBQYWdlOwor
Y2xhc3MgU2NyaXB0Q2FsbFN0YWNrOwogCi0gICAgLy8gVjhDb25zb2xlTWVzc2FnZSBlbmNhcHN1
bGF0ZXMgZXZlcnl0aGluZyBuZWVkZWQgdG8KLSAgICAvLyBsb2cgbWVzc2FnZXMgb3JpZ2luYXRp
bmcgZnJvbSBKYXZhU2NyaXB0IHRvIHRoZSBjb25zb2xlLgotICAgIGNsYXNzIFY4Q29uc29sZU1l
c3NhZ2UgewotICAgIHB1YmxpYzoKLSAgICAgICAgVjhDb25zb2xlTWVzc2FnZShjb25zdCBTdHJp
bmcmIHN0cmluZywgY29uc3QgU3RyaW5nJiBzb3VyY2VJRCwgdW5zaWduZWQgbGluZU51bWJlcik7
Ci0KLSAgICAgICAgLy8gQWRkIGEgbWVzc2FnZSB0byB0aGUgY29uc29sZS4gTWF5IGVuZCB1cCBj
YWxsaW5nIEphdmFTY3JpcHQgY29kZQotICAgICAgICAvLyBpbmRpcmVjdGx5IHRocm91Z2ggdGhl
IGluc3BlY3RvciBzbyBvbmx5IGNhbGwgdGhpcyBmdW5jdGlvbiB3aGVuCi0gICAgICAgIC8vIGl0
IGlzIHNhZmUgdG8gZG8gYWxsb2NhdGlvbnMuCi0gICAgICAgIHZvaWQgZGlzcGF0Y2hOb3coUGFn
ZSopOworLy8gVjhDb25zb2xlTWVzc2FnZSBlbmNhcHN1bGF0ZXMgZXZlcnl0aGluZyBuZWVkZWQg
dG8KKy8vIGxvZyBtZXNzYWdlcyBvcmlnaW5hdGluZyBmcm9tIEphdmFTY3JpcHQgdG8gdGhlIGNv
bnNvbGUuCitjbGFzcyBWOENvbnNvbGVNZXNzYWdlIHsKK3B1YmxpYzoKKyAgICBWOENvbnNvbGVN
ZXNzYWdlKGNvbnN0IFN0cmluZyYgc3RyaW5nLCBjb25zdCBTdHJpbmcmIHNvdXJjZUlELCB1bnNp
Z25lZCBsaW5lTnVtYmVyKTsKIAotICAgICAgICAvLyBBZGQgYSBtZXNzYWdlIHRvIHRoZSBjb25z
b2xlIGJ1dCBkZWxheSB0aGUgcmVwb3J0aW5nIHVudGlsIGl0Ci0gICAgICAgIC8vIGlzIHNhZmUg
dG8gZG8gc286IEVpdGhlciB3aGVuIHdlIGxlYXZlIEphdmFTY3JpcHQgZXhlY3V0aW9uIG9yCi0g
ICAgICAgIC8vIHdoZW4gYWRkaW5nIG90aGVyIGNvbnNvbGUgbWVzc2FnZXMuIFRoZSBwcmltYXJ5
IHB1cnBvc2Ugb2YgdGhpcwotICAgICAgICAvLyBtZXRob2QgaXMgdG8gYXZvaWQgY2FsbGluZyBp
bnRvIFY4IHRvIGhhbmRsZSBjb25zb2xlIG1lc3NhZ2VzCi0gICAgICAgIC8vIHdoZW4gdGhlIFZN
IGlzIGluIGEgc3RhdGUgdGhhdCBkb2VzIG5vdCBzdXBwb3J0IEdDcyBvciBhbGxvY2F0aW9ucy4K
LSAgICAgICAgLy8gRGVsYXllZCBtZXNzYWdlcyBhcmUgYWx3YXlzIHJlcG9ydGVkIGluIHRoZSBw
YWdlIGNvcnJlc3BvbmRpbmcKLSAgICAgICAgLy8gdG8gdGhlIGFjdGl2ZSBjb250ZXh0LgotICAg
ICAgICB2b2lkIGRpc3BhdGNoTGF0ZXIoKTsKKyAgICAvLyBBZGQgYSBtZXNzYWdlIHRvIHRoZSBj
b25zb2xlLiBNYXkgZW5kIHVwIGNhbGxpbmcgSmF2YVNjcmlwdCBjb2RlCisgICAgLy8gaW5kaXJl
Y3RseSB0aHJvdWdoIHRoZSBpbnNwZWN0b3Igc28gb25seSBjYWxsIHRoaXMgZnVuY3Rpb24gd2hl
bgorICAgIC8vIGl0IGlzIHNhZmUgdG8gZG8gYWxsb2NhdGlvbnMuCisgICAgdm9pZCBkaXNwYXRj
aE5vdyhQYWdlKik7CiAKLSAgICAgICAgLy8gUHJvY2VzcyBhbnkgZGVsYXllZCBtZXNzYWdlcy4g
TWF5IGVuZCB1cCBjYWxsaW5nIEphdmFTY3JpcHQgY29kZQotICAgICAgICAvLyBpbmRpcmVjdGx5
IHRocm91Z2ggdGhlIGluc3BlY3RvciBzbyBvbmx5IGNhbGwgdGhpcyBmdW5jdGlvbiB3aGVuCi0g
ICAgICAgIC8vIGl0IGlzIHNhZmUgdG8gZG8gYWxsb2NhdGlvbnMuCi0gICAgICAgIHN0YXRpYyB2
b2lkIHByb2Nlc3NEZWxheWVkKCk7CisgICAgLy8gQWRkIGEgbWVzc2FnZSB0byB0aGUgY29uc29s
ZSBidXQgZGVsYXkgdGhlIHJlcG9ydGluZyB1bnRpbCBpdAorICAgIC8vIGlzIHNhZmUgdG8gZG8g
c286IEVpdGhlciB3aGVuIHdlIGxlYXZlIEphdmFTY3JpcHQgZXhlY3V0aW9uIG9yCisgICAgLy8g
d2hlbiBhZGRpbmcgb3RoZXIgY29uc29sZSBtZXNzYWdlcy4gVGhlIHByaW1hcnkgcHVycG9zZSBv
ZiB0aGlzCisgICAgLy8gbWV0aG9kIGlzIHRvIGF2b2lkIGNhbGxpbmcgaW50byBWOCB0byBoYW5k
bGUgY29uc29sZSBtZXNzYWdlcworICAgIC8vIHdoZW4gdGhlIFZNIGlzIGluIGEgc3RhdGUgdGhh
dCBkb2VzIG5vdCBzdXBwb3J0IEdDcyBvciBhbGxvY2F0aW9ucy4KKyAgICAvLyBEZWxheWVkIG1l
c3NhZ2VzIGFyZSBhbHdheXMgcmVwb3J0ZWQgaW4gdGhlIHBhZ2UgY29ycmVzcG9uZGluZworICAg
IC8vIHRvIHRoZSBhY3RpdmUgY29udGV4dC4KKyAgICB2b2lkIGRpc3BhdGNoTGF0ZXIoKTsKIAot
ICAgICAgICAvLyBDb252ZW5pZW5jZSBjbGFzcyBmb3IgZW5zdXJpbmcgdGhhdCBkZWxheWVkIG1l
c3NhZ2VzIGluIHRoZQotICAgICAgICAvLyBDb25zb2xlTWVzc2FnZU1hbmFnZXIgYXJlIHByb2Nl
c3NlZCBxdWlja2x5LgotICAgICAgICBjbGFzcyBTY29wZSB7Ci0gICAgICAgIHB1YmxpYzoKLSAg
ICAgICAgICAgIFNjb3BlKCkgeyBWOENvbnNvbGVNZXNzYWdlOjpwcm9jZXNzRGVsYXllZCgpOyB9
Ci0gICAgICAgICAgICB+U2NvcGUoKSB7IFY4Q29uc29sZU1lc3NhZ2U6OnByb2Nlc3NEZWxheWVk
KCk7IH0KLSAgICAgICAgfTsKKyAgICAvLyBQcm9jZXNzIGFueSBkZWxheWVkIG1lc3NhZ2VzLiBN
YXkgZW5kIHVwIGNhbGxpbmcgSmF2YVNjcmlwdCBjb2RlCisgICAgLy8gaW5kaXJlY3RseSB0aHJv
dWdoIHRoZSBpbnNwZWN0b3Igc28gb25seSBjYWxsIHRoaXMgZnVuY3Rpb24gd2hlbgorICAgIC8v
IGl0IGlzIHNhZmUgdG8gZG8gYWxsb2NhdGlvbnMuCisgICAgc3RhdGljIHZvaWQgcHJvY2Vzc0Rl
bGF5ZWQoKTsKIAotICAgICAgICAvLyBDYWxsYmFjayBmcm9tIFY4LgotICAgICAgICBzdGF0aWMg
dm9pZCBoYW5kbGVyKHY4OjpIYW5kbGU8djg6Ok1lc3NhZ2U+LCB2ODo6SGFuZGxlPHY4OjpWYWx1
ZT4gZGF0YSk7CisgICAgLy8gQ29udmVuaWVuY2UgY2xhc3MgZm9yIGVuc3VyaW5nIHRoYXQgZGVs
YXllZCBtZXNzYWdlcyBpbiB0aGUKKyAgICAvLyBDb25zb2xlTWVzc2FnZU1hbmFnZXIgYXJlIHBy
b2Nlc3NlZCBxdWlja2x5LgorICAgIGNsYXNzIFNjb3BlIHsKKyAgICBwdWJsaWM6CisgICAgICAg
IFNjb3BlKCkgeyBWOENvbnNvbGVNZXNzYWdlOjpwcm9jZXNzRGVsYXllZCgpOyB9CisgICAgICAg
IH5TY29wZSgpIHsgVjhDb25zb2xlTWVzc2FnZTo6cHJvY2Vzc0RlbGF5ZWQoKTsgfQorICAgIH07
CiAKLSAgICBwcml2YXRlOgotICAgICAgICBjb25zdCBTdHJpbmcgbV9zdHJpbmc7Ci0gICAgICAg
IGNvbnN0IFN0cmluZyBtX3NvdXJjZUlEOwotICAgICAgICBjb25zdCB1bnNpZ25lZCBtX2xpbmVO
dW1iZXI7CisgICAgLy8gQ2FsbGJhY2sgZnJvbSBWOC4KKyAgICBzdGF0aWMgdm9pZCBoYW5kbGVy
KHY4OjpIYW5kbGU8djg6Ok1lc3NhZ2U+LCB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gZGF0YSk7CiAK
LSAgICAgICAgdm9pZCBkaXNwYXRjaE5vdyhQYWdlKiwgU2NyaXB0Q2FsbFN0YWNrKik7Citwcml2
YXRlOgorICAgIGNvbnN0IFN0cmluZyBtX3N0cmluZzsKKyAgICBjb25zdCBTdHJpbmcgbV9zb3Vy
Y2VJRDsKKyAgICBjb25zdCB1bnNpZ25lZCBtX2xpbmVOdW1iZXI7CiAKLSAgICAgICAgLy8gQWxs
IGRlbGF5ZWQgbWVzc2FnZXMgYXJlIHN0b3JlZCBpbiB0aGlzIHZlY3Rvci4gSWYgdGhlIHZlY3Rv
cgotICAgICAgICAvLyBpcyAwLCB0aGVyZSBhcmUgbm8gZGVsYXllZCBtZXNzYWdlcy4KLSAgICAg
ICAgc3RhdGljIFZlY3RvcjxWOENvbnNvbGVNZXNzYWdlPiogbV9kZWxheWVkTWVzc2FnZXM7Ci0g
ICAgfTsKKyAgICAvLyBBbGwgZGVsYXllZCBtZXNzYWdlcyBhcmUgc3RvcmVkIGluIHRoaXMgdmVj
dG9yLiBJZiB0aGUgdmVjdG9yCisgICAgLy8gaXMgMCwgdGhlcmUgYXJlIG5vIGRlbGF5ZWQgbWVz
c2FnZXMuCisgICAgc3RhdGljIFZlY3RvcjxWOENvbnNvbGVNZXNzYWdlPiogbV9kZWxheWVkTWVz
c2FnZXM7Cit9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKZGlmZiAtLWdpdCBhL1dlYkNv
cmUvYmluZGluZ3MvanMvSlNXb3JrZXJDb250ZXh0RXJyb3JIYW5kbGVyLmggYi9XZWJDb3JlL2Jp
bmRpbmdzL3Y4L1Y4V2luZG93RXJyb3JIYW5kbGVyLmNwcApzaW1pbGFyaXR5IGluZGV4IDUyJQpj
b3B5IGZyb20gV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1dvcmtlckNvbnRleHRFcnJvckhhbmRsZXIu
aApjb3B5IHRvIFdlYkNvcmUvYmluZGluZ3MvdjgvVjhXaW5kb3dFcnJvckhhbmRsZXIuY3BwCmlu
ZGV4IGExODgyOTkwMzhjOWNkZmU3MjI4NmI3MWZlYWViM2E0OWMyYTBkODEuLjg5ZWMwNWU3OTky
MWE1YmZhMzJmYTQ4ZjFhNjY4NTFhNDY2YjIwM2EgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvYmluZGlu
Z3MvanMvSlNXb3JrZXJDb250ZXh0RXJyb3JIYW5kbGVyLmgKKysrIGIvV2ViQ29yZS9iaW5kaW5n
cy92OC9WOFdpbmRvd0Vycm9ySGFuZGxlci5jcHAKQEAgLTI4LDM3ICsyOCwzOSBAQAogICogT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4KICAqLwogCi0jaWZuZGVmIEpTV29ya2VyQ29udGV4dEVycm9ySGFuZGxlcl9oCi0j
ZGVmaW5lIEpTV29ya2VyQ29udGV4dEVycm9ySGFuZGxlcl9oCisjaW5jbHVkZSAiY29uZmlnLmgi
CiAKLSNpbmNsdWRlICJKU0V2ZW50TGlzdGVuZXIuaCIKKyNpbmNsdWRlICJWOFdpbmRvd0Vycm9y
SGFuZGxlci5oIgogCi1uYW1lc3BhY2UgV2ViQ29yZSB7Ci0KLWNsYXNzIEpTV29ya2VyQ29udGV4
dEVycm9ySGFuZGxlciA6IHB1YmxpYyBKU0V2ZW50TGlzdGVuZXIgewotcHVibGljOgotICAgIHN0
YXRpYyBQYXNzUmVmUHRyPEpTV29ya2VyQ29udGV4dEVycm9ySGFuZGxlcj4gY3JlYXRlKEpTQzo6
SlNPYmplY3QqIGxpc3RlbmVyLCBKU0M6OkpTT2JqZWN0KiB3cmFwcGVyLCBib29sIGlzQXR0cmli
dXRlLCBET01XcmFwcGVyV29ybGQqIGlzb2xhdGVkV29ybGQpCi0gICAgewotICAgICAgICByZXR1
cm4gYWRvcHRSZWYobmV3IEpTV29ya2VyQ29udGV4dEVycm9ySGFuZGxlcihsaXN0ZW5lciwgd3Jh
cHBlciwgaXNBdHRyaWJ1dGUsIGlzb2xhdGVkV29ybGQpKTsKLSAgICB9CisjaW5jbHVkZSAiRE9N
V3JhcHBlcldvcmxkLmgiCisjaW5jbHVkZSAiRXJyb3JFdmVudC5oIgorI2luY2x1ZGUgIlY4Qmlu
ZGluZy5oIgogCi0gICAgdmlydHVhbCB+SlNXb3JrZXJDb250ZXh0RXJyb3JIYW5kbGVyKCk7Ci0K
LXByaXZhdGU6Ci0gICAgSlNXb3JrZXJDb250ZXh0RXJyb3JIYW5kbGVyKEpTQzo6SlNPYmplY3Qq
IGZ1bmN0aW9uLCBKU0M6OkpTT2JqZWN0KiB3cmFwcGVyLCBib29sIGlzQXR0cmlidXRlLCBET01X
cmFwcGVyV29ybGQqIGlzb2xhdGVkV29ybGQpOwotICAgIHZpcnR1YWwgdm9pZCBoYW5kbGVFdmVu
dChTY3JpcHRFeGVjdXRpb25Db250ZXh0KiwgRXZlbnQqKTsKLX07CituYW1lc3BhY2UgV2ViQ29y
ZSB7CiAKLS8vIENyZWF0ZXMgYSBKUyBFdmVudExpc3RlbmVyIGZvciAib25lcnJvciIgZXZlbnQg
aGFuZGxlciBpbiB3b3JrZXIgY29udGV4dC4gSXQgaGFzIGN1c3RvbSBpbXBsZW1lbnRhdGlvbiBi
ZWNhdXNlCi0vLyB1bmxpa2Ugb3RoZXIgZXZlbnQgbGlzdGVuZXJzIGl0IGFjY2VwdHMgdGhyZWUg
cGFyYW1ldGVycy4KLWlubGluZSBQYXNzUmVmUHRyPEpTV29ya2VyQ29udGV4dEVycm9ySGFuZGxl
cj4gY3JlYXRlSlNXb3JrZXJDb250ZXh0RXJyb3JIYW5kbGVyKEpTQzo6RXhlY1N0YXRlKiBleGVj
LCBKU0M6OkpTVmFsdWUgbGlzdGVuZXIsIEpTQzo6SlNPYmplY3QqIHdyYXBwZXIpCitWOFdpbmRv
d0Vycm9ySGFuZGxlcjo6VjhXaW5kb3dFcnJvckhhbmRsZXIodjg6OkxvY2FsPHY4OjpPYmplY3Q+
IGxpc3RlbmVyLCBib29sIGlzSW5saW5lLCBjb25zdCBXb3JsZENvbnRleHRIYW5kbGUmIHdvcmxk
Q29udGV4dCkKKyAgICA6IFY4RXZlbnRMaXN0ZW5lcihsaXN0ZW5lciwgaXNJbmxpbmUsIHdvcmxk
Q29udGV4dCkKIHsKLSAgICBpZiAoIWxpc3RlbmVyLmlzT2JqZWN0KCkpCi0gICAgICAgIHJldHVy
biAwOworfQogCi0gICAgcmV0dXJuIEpTV29ya2VyQ29udGV4dEVycm9ySGFuZGxlcjo6Y3JlYXRl
KGFzT2JqZWN0KGxpc3RlbmVyKSwgd3JhcHBlciwgdHJ1ZSwgY3VycmVudFdvcmxkKGV4ZWMpKTsK
K3Y4OjpMb2NhbDx2ODo6VmFsdWU+IFY4V2luZG93RXJyb3JIYW5kbGVyOjpjYWxsTGlzdGVuZXJG
dW5jdGlvbihTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0LCB2ODo6SGFuZGxlPHY4OjpW
YWx1ZT4ganNFdmVudCwgRXZlbnQqIGV2ZW50KQoreworICAgIEFTU0VSVChldmVudC0+aXNFcnJv
ckV2ZW50KCkpOworICAgIEVycm9yRXZlbnQqIGVycm9yRXZlbnQgPSBzdGF0aWNfY2FzdDxFcnJv
ckV2ZW50Kj4oZXZlbnQpOworICAgIC8vIEl0IGlzIHVuc2VjdXJlIHRvIHJlcG9ydCBleGNlcHRp
b24gZnJvbSBvbmUgd29ybGQgdG8gYSBoYW5kbGVyIGZyb20gYW5vdGhlci4KKyAgICBpZiAoZXJy
b3JFdmVudC0+d3JhcHBlcldvcmxkKCkgIT0gY29udGV4dFdvcmxkKGNvbnRleHQsIHdvcmxkQ29u
dGV4dCgpKSkKKyAgICAgICAgcmV0dXJuIHY4OjpMb2NhbDx2ODo6VmFsdWU+KCk7CisgICAgdjg6
OkxvY2FsPHY4OjpPYmplY3Q+IGxpc3RlbmVyID0gZ2V0TGlzdGVuZXJPYmplY3QoY29udGV4dCk7
CisgICAgdjg6OkxvY2FsPHY4OjpWYWx1ZT4gcmV0dXJuVmFsdWU7CisgICAgaWYgKCFsaXN0ZW5l
ci5Jc0VtcHR5KCkgJiYgbGlzdGVuZXItPklzRnVuY3Rpb24oKSkgeworICAgICAgICB2ODo6TG9j
YWw8djg6OkZ1bmN0aW9uPiBjYWxsRnVuY3Rpb24gPSB2ODo6TG9jYWw8djg6OkZ1bmN0aW9uPjo6
Q2FzdChsaXN0ZW5lcik7CisgICAgICAgIHY4OjpMb2NhbDx2ODo6T2JqZWN0PiB0aGlzVmFsdWUg
PSB2ODo6Q29udGV4dDo6R2V0Q3VycmVudCgpLT5HbG9iYWwoKTsKKyAgICAgICAgdjg6OkhhbmRs
ZTx2ODo6VmFsdWU+IHBhcmFtZXRlcnNbM10gPSB7IHY4U3RyaW5nKGVycm9yRXZlbnQtPm1lc3Nh
Z2UoKSksIHY4U3RyaW5nKGVycm9yRXZlbnQtPmZpbGVuYW1lKCkpLCB2ODo6SW50ZWdlcjo6TmV3
KGVycm9yRXZlbnQtPmxpbmVubygpKSB9OworICAgICAgICByZXR1cm5WYWx1ZSA9IGNhbGxGdW5j
dGlvbi0+Q2FsbCh0aGlzVmFsdWUsIDMsIHBhcmFtZXRlcnMpOworICAgICAgICBpZiAoIXJldHVy
blZhbHVlLklzRW1wdHkoKSAmJiByZXR1cm5WYWx1ZS0+SXNCb29sZWFuKCkgJiYgIXJldHVyblZh
bHVlLT5Cb29sZWFuVmFsdWUoKSkKKyAgICAgICAgICAgIGV2ZW50LT5wcmV2ZW50RGVmYXVsdCgp
OworICAgIH0KKyAgICByZXR1cm4gcmV0dXJuVmFsdWU7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdl
YkNvcmUKLQotI2VuZGlmIC8vIEpTV29ya2VyQ29udGV4dEVycm9ySGFuZGxlcl9oCmRpZmYgLS1n
aXQgYS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTV29ya2VyQ29udGV4dEVycm9ySGFuZGxlci5oIGIv
V2ViQ29yZS9iaW5kaW5ncy92OC9WOFdpbmRvd0Vycm9ySGFuZGxlci5oCnNpbWlsYXJpdHkgaW5k
ZXggNTglCnJlbmFtZSBmcm9tIFdlYkNvcmUvYmluZGluZ3MvanMvSlNXb3JrZXJDb250ZXh0RXJy
b3JIYW5kbGVyLmgKcmVuYW1lIHRvIFdlYkNvcmUvYmluZGluZ3MvdjgvVjhXaW5kb3dFcnJvckhh
bmRsZXIuaAppbmRleCBhMTg4Mjk5MDM4YzljZGZlNzIyODZiNzFmZWFlYjNhNDljMmEwZDgxLi4x
NjdjYTBkN2RmNDg2MWUxMTRmM2EyZDY2MzNhNzQyMTBiZjY4ZjljIDEwMDY0NAotLS0gYS9XZWJD
b3JlL2JpbmRpbmdzL2pzL0pTV29ya2VyQ29udGV4dEVycm9ySGFuZGxlci5oCisrKyBiL1dlYkNv
cmUvYmluZGluZ3MvdjgvVjhXaW5kb3dFcnJvckhhbmRsZXIuaApAQCAtMjgsMzcgKzI4LDI4IEBA
CiAgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLgogICovCiAKLSNpZm5kZWYgSlNXb3JrZXJDb250ZXh0RXJyb3JIYW5k
bGVyX2gKLSNkZWZpbmUgSlNXb3JrZXJDb250ZXh0RXJyb3JIYW5kbGVyX2gKKyNpZm5kZWYgVjhX
aW5kb3dFcnJvckhhbmRsZXJfaAorI2RlZmluZSBWOFdpbmRvd0Vycm9ySGFuZGxlcl9oCiAKLSNp
bmNsdWRlICJKU0V2ZW50TGlzdGVuZXIuaCIKKyNpbmNsdWRlICJWOEN1c3RvbUV2ZW50TGlzdGVu
ZXIuaCIKKyNpbmNsdWRlIDx2OC5oPgorI2luY2x1ZGUgPHd0Zi9QYXNzUmVmUHRyLmg+CiAKIG5h
bWVzcGFjZSBXZWJDb3JlIHsKIAotY2xhc3MgSlNXb3JrZXJDb250ZXh0RXJyb3JIYW5kbGVyIDog
cHVibGljIEpTRXZlbnRMaXN0ZW5lciB7CitjbGFzcyBWOFdpbmRvd0Vycm9ySGFuZGxlciA6IHB1
YmxpYyBWOEV2ZW50TGlzdGVuZXIgewogcHVibGljOgotICAgIHN0YXRpYyBQYXNzUmVmUHRyPEpT
V29ya2VyQ29udGV4dEVycm9ySGFuZGxlcj4gY3JlYXRlKEpTQzo6SlNPYmplY3QqIGxpc3RlbmVy
LCBKU0M6OkpTT2JqZWN0KiB3cmFwcGVyLCBib29sIGlzQXR0cmlidXRlLCBET01XcmFwcGVyV29y
bGQqIGlzb2xhdGVkV29ybGQpCisgICAgc3RhdGljIFBhc3NSZWZQdHI8VjhXaW5kb3dFcnJvckhh
bmRsZXI+IGNyZWF0ZSh2ODo6TG9jYWw8djg6Ok9iamVjdD4gbGlzdGVuZXIsIGJvb2wgaXNJbmxp
bmUsIGNvbnN0IFdvcmxkQ29udGV4dEhhbmRsZSYgd29ybGRDb250ZXh0KQogICAgIHsKLSAgICAg
ICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBKU1dvcmtlckNvbnRleHRFcnJvckhhbmRsZXIobGlzdGVu
ZXIsIHdyYXBwZXIsIGlzQXR0cmlidXRlLCBpc29sYXRlZFdvcmxkKSk7CisgICAgICAgIHJldHVy
biBhZG9wdFJlZihuZXcgVjhXaW5kb3dFcnJvckhhbmRsZXIobGlzdGVuZXIsIGlzSW5saW5lLCB3
b3JsZENvbnRleHQpKTsKICAgICB9CiAKLSAgICB2aXJ0dWFsIH5KU1dvcmtlckNvbnRleHRFcnJv
ckhhbmRsZXIoKTsKLQogcHJpdmF0ZToKLSAgICBKU1dvcmtlckNvbnRleHRFcnJvckhhbmRsZXIo
SlNDOjpKU09iamVjdCogZnVuY3Rpb24sIEpTQzo6SlNPYmplY3QqIHdyYXBwZXIsIGJvb2wgaXNB
dHRyaWJ1dGUsIERPTVdyYXBwZXJXb3JsZCogaXNvbGF0ZWRXb3JsZCk7Ci0gICAgdmlydHVhbCB2
b2lkIGhhbmRsZUV2ZW50KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqLCBFdmVudCopOwotfTsKKyAg
ICBWOFdpbmRvd0Vycm9ySGFuZGxlcih2ODo6TG9jYWw8djg6Ok9iamVjdD4gbGlzdGVuZXIsIGJv
b2wgaXNJbmxpbmUsIGNvbnN0IFdvcmxkQ29udGV4dEhhbmRsZSYgd29ybGRDb250ZXh0KTsKIAot
Ly8gQ3JlYXRlcyBhIEpTIEV2ZW50TGlzdGVuZXIgZm9yICJvbmVycm9yIiBldmVudCBoYW5kbGVy
IGluIHdvcmtlciBjb250ZXh0LiBJdCBoYXMgY3VzdG9tIGltcGxlbWVudGF0aW9uIGJlY2F1c2UK
LS8vIHVubGlrZSBvdGhlciBldmVudCBsaXN0ZW5lcnMgaXQgYWNjZXB0cyB0aHJlZSBwYXJhbWV0
ZXJzLgotaW5saW5lIFBhc3NSZWZQdHI8SlNXb3JrZXJDb250ZXh0RXJyb3JIYW5kbGVyPiBjcmVh
dGVKU1dvcmtlckNvbnRleHRFcnJvckhhbmRsZXIoSlNDOjpFeGVjU3RhdGUqIGV4ZWMsIEpTQzo6
SlNWYWx1ZSBsaXN0ZW5lciwgSlNDOjpKU09iamVjdCogd3JhcHBlcikKLXsKLSAgICBpZiAoIWxp
c3RlbmVyLmlzT2JqZWN0KCkpCi0gICAgICAgIHJldHVybiAwOwotCi0gICAgcmV0dXJuIEpTV29y
a2VyQ29udGV4dEVycm9ySGFuZGxlcjo6Y3JlYXRlKGFzT2JqZWN0KGxpc3RlbmVyKSwgd3JhcHBl
ciwgdHJ1ZSwgY3VycmVudFdvcmxkKGV4ZWMpKTsKLX0KKyAgICB2aXJ0dWFsIHY4OjpMb2NhbDx2
ODo6VmFsdWU+IGNhbGxMaXN0ZW5lckZ1bmN0aW9uKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqLCB2
ODo6SGFuZGxlPHY4OjpWYWx1ZT4ganNFdmVudCwgRXZlbnQqKTsKK307CiAKIH0gLy8gbmFtZXNw
YWNlIFdlYkNvcmUKIAotI2VuZGlmIC8vIEpTV29ya2VyQ29udGV4dEVycm9ySGFuZGxlcl9oCisj
ZW5kaWYgLy8gVjhXaW5kb3dFcnJvckhhbmRsZXJfaApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9iaW5k
aW5ncy92OC9Xb3JrZXJDb250ZXh0RXhlY3V0aW9uUHJveHkuY3BwIGIvV2ViQ29yZS9iaW5kaW5n
cy92OC9Xb3JrZXJDb250ZXh0RXhlY3V0aW9uUHJveHkuY3BwCmluZGV4IDE2ZTBiNDEwMWVmZGMz
NWFlNzQ0MTgxN2IwNjg3ZGI2YjVhNjVhMjUuLjI0OGRlMDI3Mjc4OWUxYTA2NGU3ODdiMTU5YzA2
NDUxYmY2MWVmMTUgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvYmluZGluZ3MvdjgvV29ya2VyQ29udGV4
dEV4ZWN1dGlvblByb3h5LmNwcAorKysgYi9XZWJDb3JlL2JpbmRpbmdzL3Y4L1dvcmtlckNvbnRl
eHRFeGVjdXRpb25Qcm94eS5jcHAKQEAgLTM1LDggKzM1LDEwIEBACiAKICNpbmNsdWRlICJXb3Jr
ZXJDb250ZXh0RXhlY3V0aW9uUHJveHkuaCIKIAorI2luY2x1ZGUgIkRPTVdyYXBwZXJXb3JsZC5o
IgogI2luY2x1ZGUgIkRlZGljYXRlZFdvcmtlckNvbnRleHQuaCIKICNpbmNsdWRlICJFdmVudC5o
IgorI2luY2x1ZGUgIlNjcmlwdENhbGxTdGFjay5oIgogI2luY2x1ZGUgIlNoYXJlZFdvcmtlci5o
IgogI2luY2x1ZGUgIlNoYXJlZFdvcmtlckNvbnRleHQuaCIKICNpbmNsdWRlICJWOEJpbmRpbmcu
aCIKQEAgLTcyLDcgKzc0LDcgQEAgc3RhdGljIHZvaWQgdjhNZXNzYWdlSGFuZGxlcih2ODo6SGFu
ZGxlPHY4OjpNZXNzYWdlPiBtZXNzYWdlLCB2ODo6SGFuZGxlPHY4OjpWYWwKICAgICAgICAgU3Ry
aW5nIGVycm9yTWVzc2FnZSA9IHRvV2ViQ29yZVN0cmluZyhtZXNzYWdlLT5HZXQoKSk7CiAgICAg
ICAgIGludCBsaW5lTnVtYmVyID0gbWVzc2FnZS0+R2V0TGluZU51bWJlcigpOwogICAgICAgICBT
dHJpbmcgc291cmNlVVJMID0gdG9XZWJDb3JlU3RyaW5nKG1lc3NhZ2UtPkdldFNjcmlwdFJlc291
cmNlTmFtZSgpKTsKLSAgICAgICAgY29udGV4dC0+cmVwb3J0RXhjZXB0aW9uKGVycm9yTWVzc2Fn
ZSwgbGluZU51bWJlciwgc291cmNlVVJMKTsKKyAgICAgICAgY29udGV4dC0+cmVwb3J0RXhjZXB0
aW9uKDAsIGVycm9yTWVzc2FnZSwgbGluZU51bWJlciwgc291cmNlVVJMLCAwKTsKICAgICB9CiAK
ICAgICBpc1JlcG9ydGluZ0V4Y2VwdGlvbiA9IGZhbHNlOwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9i
aW5kaW5ncy92OC9Xb3JrZXJTY3JpcHRDb250cm9sbGVyLmNwcCBiL1dlYkNvcmUvYmluZGluZ3Mv
djgvV29ya2VyU2NyaXB0Q29udHJvbGxlci5jcHAKaW5kZXggN2RiMGQ4ZDM3MzcwOWIyZTk3M2I2
N2U3NzIzZTRmYzMxMWZiY2E1OS4uNWFmNTM3NzM4MTkyYjI3OGM2NjBlZjgyYjg1NDczODUyNWU5
MjRkNiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9iaW5kaW5ncy92OC9Xb3JrZXJTY3JpcHRDb250cm9s
bGVyLmNwcAorKysgYi9XZWJDb3JlL2JpbmRpbmdzL3Y4L1dvcmtlclNjcmlwdENvbnRyb2xsZXIu
Y3BwCkBAIC0zNCwxMSArMzQsMTEgQEAKIAogI2luY2x1ZGUgIldvcmtlclNjcmlwdENvbnRyb2xs
ZXIuaCIKIAotI2luY2x1ZGUgPHY4Lmg+Ci0KKyNpbmNsdWRlICJET01UaW1lci5oIgorI2luY2x1
ZGUgIkRPTVdyYXBwZXJXb3JsZC5oIgorI2luY2x1ZGUgIlNjcmlwdENhbGxTdGFjay5oIgogI2lu
Y2x1ZGUgIlNjcmlwdFNvdXJjZUNvZGUuaCIKICNpbmNsdWRlICJTY3JpcHRWYWx1ZS5oIgotI2lu
Y2x1ZGUgIkRPTVRpbWVyLmgiCiAjaW5jbHVkZSAiVjhET01NYXAuaCIKICNpbmNsdWRlICJWOFBy
b3h5LmgiCiAjaW5jbHVkZSAiVjhXb3JrZXJDb250ZXh0LmgiCkBAIC00Niw2ICs0Niw3IEBACiAj
aW5jbHVkZSAiV29ya2VyQ29udGV4dEV4ZWN1dGlvblByb3h5LmgiCiAjaW5jbHVkZSAiV29ya2Vy
T2JqZWN0UHJveHkuaCIKICNpbmNsdWRlICJXb3JrZXJUaHJlYWQuaCIKKyNpbmNsdWRlIDx2OC5o
PgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKQEAgLTgwLDcgKzgxLDcgQEAgU2NyaXB0VmFsdWUg
V29ya2VyU2NyaXB0Q29udHJvbGxlcjo6ZXZhbHVhdGUoY29uc3QgU2NyaXB0U291cmNlQ29kZSYg
c291cmNlQ29kZSwKICAgICAgICAgaWYgKGV4Y2VwdGlvbikKICAgICAgICAgICAgICpleGNlcHRp
b24gPSBzdGF0ZS5leGNlcHRpb247CiAgICAgICAgIGVsc2UKLSAgICAgICAgICAgIG1fd29ya2Vy
Q29udGV4dC0+cmVwb3J0RXhjZXB0aW9uKHN0YXRlLmVycm9yTWVzc2FnZSwgc3RhdGUubGluZU51
bWJlciwgc3RhdGUuc291cmNlVVJMKTsKKyAgICAgICAgICAgIG1fd29ya2VyQ29udGV4dC0+cmVw
b3J0RXhjZXB0aW9uKDAsIHN0YXRlLmVycm9yTWVzc2FnZSwgc3RhdGUubGluZU51bWJlciwgc3Rh
dGUuc291cmNlVVJMLCAwKTsKICAgICB9CiAKICAgICByZXR1cm4gcmVzdWx0OwpkaWZmIC0tZ2l0
IGEvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwIGIvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCmlu
ZGV4IGExMTNkODgyNTllZjUxN2I4NjdjNjM0OTFiYzUwYWRiM2Q4MmE2M2UuLmRlYzIwZDExODEx
M2MxYzY4MjRjYjU3ZWZiMWRkZjNlNTIyMjNlNWEgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvZG9tL0Rv
Y3VtZW50LmNwcAorKysgYi9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKQEAgLTIxODYsNiArMjE4
NiwxNyBAQCBLVVJMIERvY3VtZW50Ojp2aXJ0dWFsQ29tcGxldGVVUkwoY29uc3QgU3RyaW5nJiB1
cmwpIGNvbnN0CiAgICAgcmV0dXJuIGNvbXBsZXRlVVJMKHVybCk7CiB9CiAKK0V2ZW50VGFyZ2V0
KiBEb2N1bWVudDo6ZXJyb3JFdmVudFRhcmdldCgpCit7CisgICAgcmV0dXJuIGRvbVdpbmRvdygp
OworfQorCit2b2lkIERvY3VtZW50Ojpsb2dFeGNlcHRpb25Ub0NvbnNvbGUoY29uc3QgU3RyaW5n
JiBlcnJvck1lc3NhZ2UsIGludCBsaW5lTnVtYmVyLCBjb25zdCBTdHJpbmcmIHNvdXJjZVVSTCwg
U2NyaXB0Q2FsbFN0YWNrKiBjYWxsU3RhY2spCit7CisgICAgTWVzc2FnZVR5cGUgbWVzc2FnZVR5
cGUgPSBjYWxsU3RhY2sgPyBVbmNhdWdodEV4Y2VwdGlvbk1lc3NhZ2VUeXBlIDogTG9nTWVzc2Fn
ZVR5cGU7CisgICAgYWRkTWVzc2FnZShKU01lc3NhZ2VTb3VyY2UsIG1lc3NhZ2VUeXBlLCBFcnJv
ck1lc3NhZ2VMZXZlbCwgZXJyb3JNZXNzYWdlLCBsaW5lTnVtYmVyLCBzb3VyY2VVUkwpOworfQor
CiB2b2lkIERvY3VtZW50OjpzZXRVUkwoY29uc3QgS1VSTCYgdXJsKQogewogICAgIGNvbnN0IEtV
UkwmIG5ld1VSTCA9IHVybC5pc0VtcHR5KCkgPyBibGFua1VSTCgpIDogdXJsOwpAQCAtNDU0Mywx
MSArNDU1NCw2IEBAIHZvaWQgRG9jdW1lbnQ6OnBhcnNlRE5TUHJlZmV0Y2hDb250cm9sSGVhZGVy
KGNvbnN0IFN0cmluZyYgZG5zUHJlZmV0Y2hDb250cm9sKQogICAgIG1faGF2ZUV4cGxpY2l0bHlE
aXNhYmxlZEROU1ByZWZldGNoID0gdHJ1ZTsKIH0KIAotdm9pZCBEb2N1bWVudDo6cmVwb3J0RXhj
ZXB0aW9uKGNvbnN0IFN0cmluZyYgZXJyb3JNZXNzYWdlLCBpbnQgbGluZU51bWJlciwgY29uc3Qg
U3RyaW5nJiBzb3VyY2VVUkwpCi17Ci0gICAgYWRkTWVzc2FnZShKU01lc3NhZ2VTb3VyY2UsIExv
Z01lc3NhZ2VUeXBlLCBFcnJvck1lc3NhZ2VMZXZlbCwgZXJyb3JNZXNzYWdlLCBsaW5lTnVtYmVy
LCBzb3VyY2VVUkwpOwotfQotCiB2b2lkIERvY3VtZW50OjphZGRNZXNzYWdlKE1lc3NhZ2VTb3Vy
Y2Ugc291cmNlLCBNZXNzYWdlVHlwZSB0eXBlLCBNZXNzYWdlTGV2ZWwgbGV2ZWwsIGNvbnN0IFN0
cmluZyYgbWVzc2FnZSwgdW5zaWduZWQgbGluZU51bWJlciwgY29uc3QgU3RyaW5nJiBzb3VyY2VV
UkwpCiB7CiAgICAgaWYgKERPTVdpbmRvdyogd2luZG93ID0gZG9tV2luZG93KCkpCmRpZmYgLS1n
aXQgYS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oIGIvV2ViQ29yZS9kb20vRG9jdW1lbnQuaAppbmRl
eCBmYTE0ZTNkMzlhN2RiZTc5NGM4MzRiNjkzNmVmYTgxMDNmNjk4Yjc3Li41NDA3MjU5ZDdjZDhj
YmI2NzhmNGEwOGI2NDI0ODFhNWI1ZGI1NTMyIDEwMDY0NAotLS0gYS9XZWJDb3JlL2RvbS9Eb2N1
bWVudC5oCisrKyBiL1dlYkNvcmUvZG9tL0RvY3VtZW50LmgKQEAgLTkwNSw3ICs5MDUsNiBAQCBw
dWJsaWM6CiAgICAgYm9vbCBpc0ROU1ByZWZldGNoRW5hYmxlZCgpIGNvbnN0IHsgcmV0dXJuIG1f
aXNETlNQcmVmZXRjaEVuYWJsZWQ7IH0KICAgICB2b2lkIHBhcnNlRE5TUHJlZmV0Y2hDb250cm9s
SGVhZGVyKGNvbnN0IFN0cmluZyYpOwogCi0gICAgdmlydHVhbCB2b2lkIHJlcG9ydEV4Y2VwdGlv
bihjb25zdCBTdHJpbmcmIGVycm9yTWVzc2FnZSwgaW50IGxpbmVOdW1iZXIsIGNvbnN0IFN0cmlu
ZyYgc291cmNlVVJMKTsKICAgICB2aXJ0dWFsIHZvaWQgYWRkTWVzc2FnZShNZXNzYWdlU291cmNl
LCBNZXNzYWdlVHlwZSwgTWVzc2FnZUxldmVsLCBjb25zdCBTdHJpbmcmIG1lc3NhZ2UsIHVuc2ln
bmVkIGxpbmVOdW1iZXIsIGNvbnN0IFN0cmluZyYgc291cmNlVVJMKTsKICAgICB2aXJ0dWFsIHZv
aWQgcG9zdFRhc2soUGFzc093blB0cjxUYXNrPik7IC8vIEV4ZWN1dGVzIHRoZSB0YXNrIG9uIGNv
bnRleHQncyB0aHJlYWQgYXN5bmNocm9ub3VzbHkuCiAKQEAgLTEwNjEsNiArMTA2MCw5IEBAIHBy
aXZhdGU6CiAgICAgdmlydHVhbCBjb25zdCBLVVJMJiB2aXJ0dWFsVVJMKCkgY29uc3Q7IC8vIFNh
bWUgYXMgdXJsKCksIGJ1dCBuZWVkZWQgZm9yIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQgdG8gaW1w
bGVtZW50IGl0IHdpdGhvdXQgYSBwZXJmb3JtYW5jZSBsb3NzIGZvciBkaXJlY3QgY2FsbHMuCiAg
ICAgdmlydHVhbCBLVVJMIHZpcnR1YWxDb21wbGV0ZVVSTChjb25zdCBTdHJpbmcmKSBjb25zdDsg
Ly8gU2FtZSBhcyBjb21wbGV0ZVVSTCgpIGZvciB0aGUgc2FtZSByZWFzb24gYXMgYWJvdmUuCiAK
KyAgICB2aXJ0dWFsIEV2ZW50VGFyZ2V0KiBlcnJvckV2ZW50VGFyZ2V0KCk7CisgICAgdmlydHVh
bCB2b2lkIGxvZ0V4Y2VwdGlvblRvQ29uc29sZShjb25zdCBTdHJpbmcmIGVycm9yTWVzc2FnZSwg
aW50IGxpbmVOdW1iZXIsIGNvbnN0IFN0cmluZyYgc291cmNlVVJMLCBTY3JpcHRDYWxsU3RhY2sq
KTsKKwogICAgIHZvaWQgaW5pdEROU1ByZWZldGNoKCk7CiAKICAgICBTdHJpbmcgZW5jb2Rpbmco
KSBjb25zdDsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvZG9tL0Vycm9yRXZlbnQuY3BwIGIvV2ViQ29y
ZS9kb20vRXJyb3JFdmVudC5jcHAKaW5kZXggMjYyN2QwMTU0ZTYyM2FiYWFkOTFkNDliYWE5ZGYx
OTg2ZDI5M2Q1MC4uMDY2OTlkNDYyOTM3NzU0MTAzOGM5ODEzOTk4NjljYWQ5MjE2ZmM3OCAxMDA2
NDQKLS0tIGEvV2ViQ29yZS9kb20vRXJyb3JFdmVudC5jcHAKKysrIGIvV2ViQ29yZS9kb20vRXJy
b3JFdmVudC5jcHAKQEAgLTM0LDYgKzM0LDcgQEAKIAogI2luY2x1ZGUgIkVycm9yRXZlbnQuaCIK
IAorI2luY2x1ZGUgIkRPTVdyYXBwZXJXb3JsZC5oIgogI2luY2x1ZGUgIkV2ZW50TmFtZXMuaCIK
IAogbmFtZXNwYWNlIFdlYkNvcmUgewpAQCAtNDIsOCArNDMsOSBAQCBFcnJvckV2ZW50OjpFcnJv
ckV2ZW50KCkKIHsKIH0KIAotRXJyb3JFdmVudDo6RXJyb3JFdmVudChjb25zdCBTdHJpbmcmIG1l
c3NhZ2UsIGNvbnN0IFN0cmluZyYgZmlsZU5hbWUsIHVuc2lnbmVkIGxpbmVOdW1iZXIpCitFcnJv
ckV2ZW50OjpFcnJvckV2ZW50KERPTVdyYXBwZXJXb3JsZCogd3JhcHBlcldvcmxkLCBjb25zdCBT
dHJpbmcmIG1lc3NhZ2UsIGNvbnN0IFN0cmluZyYgZmlsZU5hbWUsIHVuc2lnbmVkIGxpbmVOdW1i
ZXIpCiAgICAgOiBFdmVudChldmVudE5hbWVzKCkuZXJyb3JFdmVudCwgZmFsc2UsIHRydWUpCisg
ICAgLCBtX3dyYXBwZXJXb3JsZCh3cmFwcGVyV29ybGQpCiAgICAgLCBtX21lc3NhZ2UobWVzc2Fn
ZSkKICAgICAsIG1fZmlsZU5hbWUoZmlsZU5hbWUpCiAgICAgLCBtX2xpbmVOdW1iZXIobGluZU51
bWJlcikKZGlmZiAtLWdpdCBhL1dlYkNvcmUvZG9tL0Vycm9yRXZlbnQuaCBiL1dlYkNvcmUvZG9t
L0Vycm9yRXZlbnQuaAppbmRleCBmODE1MzBhZWU2MjBiODkyMTdlMTY0Y2NmYWJhNzMwZjFkYjYx
MTQwLi5kZmZmZDFiMGZiZjQ4M2JmNzJmZDFhYWZiMGRmODhmYWMzOTg2MTFjIDEwMDY0NAotLS0g
YS9XZWJDb3JlL2RvbS9FcnJvckV2ZW50LmgKKysrIGIvV2ViQ29yZS9kb20vRXJyb3JFdmVudC5o
CkBAIC0zOCwyMCArMzgsMjQgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCisgICAgY2xhc3Mg
RE9NV3JhcHBlcldvcmxkOworCiAgICAgY2xhc3MgRXJyb3JFdmVudCA6IHB1YmxpYyBFdmVudCB7
CiAgICAgcHVibGljOgogICAgICAgICBzdGF0aWMgUGFzc1JlZlB0cjxFcnJvckV2ZW50PiBjcmVh
dGUoKQogICAgICAgICB7CiAgICAgICAgICAgICByZXR1cm4gYWRvcHRSZWYobmV3IEVycm9yRXZl
bnQpOwogICAgICAgICB9Ci0gICAgICAgIHN0YXRpYyBQYXNzUmVmUHRyPEVycm9yRXZlbnQ+IGNy
ZWF0ZShjb25zdCBTdHJpbmcmIG1lc3NhZ2UsIGNvbnN0IFN0cmluZyYgZmlsZU5hbWUsIHVuc2ln
bmVkIGxpbmVOdW1iZXIpCisgICAgICAgIHN0YXRpYyBQYXNzUmVmUHRyPEVycm9yRXZlbnQ+IGNy
ZWF0ZShET01XcmFwcGVyV29ybGQqIHdyYXBwZXJXb3JsZCwgY29uc3QgU3RyaW5nJiBtZXNzYWdl
LCBjb25zdCBTdHJpbmcmIGZpbGVOYW1lLCB1bnNpZ25lZCBsaW5lTnVtYmVyKQogICAgICAgICB7
Ci0gICAgICAgICAgICByZXR1cm4gYWRvcHRSZWYobmV3IEVycm9yRXZlbnQobWVzc2FnZSwgZmls
ZU5hbWUsIGxpbmVOdW1iZXIpKTsKKyAgICAgICAgICAgIHJldHVybiBhZG9wdFJlZihuZXcgRXJy
b3JFdmVudCh3cmFwcGVyV29ybGQsIG1lc3NhZ2UsIGZpbGVOYW1lLCBsaW5lTnVtYmVyKSk7CiAg
ICAgICAgIH0KICAgICAgICAgdmlydHVhbCB+RXJyb3JFdmVudCgpOwogCiAgICAgICAgIHZvaWQg
aW5pdEVycm9yRXZlbnQoY29uc3QgQXRvbWljU3RyaW5nJiB0eXBlLCBib29sIGNhbkJ1YmJsZSwg
Ym9vbCBjYW5jZWxhYmxlLCBjb25zdCBTdHJpbmcmIG1lc3NhZ2UsIGNvbnN0IFN0cmluZyYgZmls
ZU5hbWUsIHVuc2lnbmVkIGxpbmVOdW1iZXIpOwogCisgICAgICAgIERPTVdyYXBwZXJXb3JsZCog
d3JhcHBlcldvcmxkKCkgY29uc3QgeyByZXR1cm4gbV93cmFwcGVyV29ybGQuZ2V0KCk7IH0KKwog
ICAgICAgICBjb25zdCBTdHJpbmcmIG1lc3NhZ2UoKSBjb25zdCB7IHJldHVybiBtX21lc3NhZ2U7
IH0KICAgICAgICAgY29uc3QgU3RyaW5nJiBmaWxlbmFtZSgpIGNvbnN0IHsgcmV0dXJuIG1fZmls
ZU5hbWU7IH0KICAgICAgICAgdW5zaWduZWQgbGluZW5vKCkgY29uc3QgeyByZXR1cm4gbV9saW5l
TnVtYmVyOyB9CkBAIC02MCw4ICs2NCw5IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogICAgIHBy
aXZhdGU6ICAgIAogICAgICAgICBFcnJvckV2ZW50KCk7Ci0gICAgICAgIEVycm9yRXZlbnQoY29u
c3QgU3RyaW5nJiBtZXNzYWdlLCBjb25zdCBTdHJpbmcmIGZpbGVOYW1lLCB1bnNpZ25lZCBsaW5l
TnVtYmVyKTsKKyAgICAgICAgRXJyb3JFdmVudChET01XcmFwcGVyV29ybGQqLCBjb25zdCBTdHJp
bmcmIG1lc3NhZ2UsIGNvbnN0IFN0cmluZyYgZmlsZU5hbWUsIHVuc2lnbmVkIGxpbmVOdW1iZXIp
OwogCisgICAgICAgIFJlZlB0cjxET01XcmFwcGVyV29ybGQ+ICBtX3dyYXBwZXJXb3JsZDsKICAg
ICAgICAgU3RyaW5nIG1fbWVzc2FnZTsKICAgICAgICAgU3RyaW5nIG1fZmlsZU5hbWU7CiAgICAg
ICAgIHVuc2lnbmVkIG1fbGluZU51bWJlcjsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvZG9tL1Njcmlw
dEV4ZWN1dGlvbkNvbnRleHQuY3BwIGIvV2ViQ29yZS9kb20vU2NyaXB0RXhlY3V0aW9uQ29udGV4
dC5jcHAKaW5kZXggYmZkYTE3YjNmMWI0ZDkzZGFiZDhmNjQxMGRiNzY1YjUwMzY3ZGVjOC4uNDk0
OTY0Y2Q4NTY3MTMwZjhiZGFhNzAzNjBhOTgyYWM3YjBmNzU5YSAxMDA2NDQKLS0tIGEvV2ViQ29y
ZS9kb20vU2NyaXB0RXhlY3V0aW9uQ29udGV4dC5jcHAKKysrIGIvV2ViQ29yZS9kb20vU2NyaXB0
RXhlY3V0aW9uQ29udGV4dC5jcHAKQEAgLTMzLDE0ICszMywxOSBAQAogI2luY2x1ZGUgIkRhdGFi
YXNlLmgiCiAjaW5jbHVkZSAiRGF0YWJhc2VUYXNrLmgiCiAjaW5jbHVkZSAiRGF0YWJhc2VUaHJl
YWQuaCIKKyNpbmNsdWRlICJFcnJvckV2ZW50LmgiCisjaW5jbHVkZSAiRXZlbnRMaXN0ZW5lci5o
IgorI2luY2x1ZGUgIkV2ZW50VGFyZ2V0LmgiCiAjaW5jbHVkZSAiRmlsZVRocmVhZC5oIgogI2lu
Y2x1ZGUgIk1lc3NhZ2VQb3J0LmgiCisjaW5jbHVkZSAiU2NyaXB0Q2FsbFN0YWNrLmgiCiAjaW5j
bHVkZSAiU2VjdXJpdHlPcmlnaW4uaCIKICNpbmNsdWRlICJUaHJlYWRhYmxlQmxvYlJlZ2lzdHJ5
LmgiCiAjaW5jbHVkZSAiV29ya2VyQ29udGV4dC5oIgogI2luY2x1ZGUgIldvcmtlclRocmVhZC5o
IgogI2luY2x1ZGUgPHd0Zi9NYWluVGhyZWFkLmg+CiAjaW5jbHVkZSA8d3RmL1Bhc3NSZWZQdHIu
aD4KKyNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CiAKICNpZiBVU0UoSlNDKQogI2luY2x1ZGUgIkpT
RE9NV2luZG93LmgiCkBAIC02MSwxMCArNjYsMTkgQEAgcHVibGljOgogICAgIH0KIH07CiAKK1Nj
cmlwdEV4ZWN1dGlvbkNvbnRleHQ6OlBlbmRpbmdFeGNlcHRpb246OlBlbmRpbmdFeGNlcHRpb24o
Y29uc3QgU3RyaW5nJiBlcnJvck1lc3NhZ2UsIGludCBsaW5lTnVtYmVyLCBjb25zdCBTdHJpbmcm
IHNvdXJjZVVSTCwgUGFzc093blB0cjxTY3JpcHRDYWxsU3RhY2s+IGNhbGxTdGFjaykKKyAgICA6
IG1fZXJyb3JNZXNzYWdlKGVycm9yTWVzc2FnZSkKKyAgICAsIG1fbGluZU51bWJlcihsaW5lTnVt
YmVyKQorICAgICwgbV9zb3VyY2VVUkwoc291cmNlVVJMKQorICAgICwgbV9jYWxsU3RhY2soY2Fs
bFN0YWNrKQoreworfQorCiBTY3JpcHRFeGVjdXRpb25Db250ZXh0OjpTY3JpcHRFeGVjdXRpb25D
b250ZXh0KCkKICNpZiBFTkFCTEUoREFUQUJBU0UpCiAgICAgOiBtX2hhc09wZW5EYXRhYmFzZXMo
ZmFsc2UpCiAjZW5kaWYKKyAgICAsIG1faW5EaXNwYXRjaEVycm9yRXZlbnQoZmFsc2UpCiB7CiB9
CiAKQEAgLTI0Myw2ICsyNTcsNDYgQEAgdm9pZCBTY3JpcHRFeGVjdXRpb25Db250ZXh0OjpzZXRT
ZWN1cml0eU9yaWdpbihQYXNzUmVmUHRyPFNlY3VyaXR5T3JpZ2luPiBzZWN1cmkKICAgICBtX3Nl
Y3VyaXR5T3JpZ2luID0gc2VjdXJpdHlPcmlnaW47CiB9CiAKK3ZvaWQgU2NyaXB0RXhlY3V0aW9u
Q29udGV4dDo6cmVwb3J0RXhjZXB0aW9uKERPTVdyYXBwZXJXb3JsZCogd3JhcHBlcldvcmxkLCBj
b25zdCBTdHJpbmcmIGVycm9yTWVzc2FnZSwgaW50IGxpbmVOdW1iZXIsIGNvbnN0IFN0cmluZyYg
c291cmNlVVJMLCBQYXNzT3duUHRyPFNjcmlwdENhbGxTdGFjaz4gY2FsbFN0YWNrKQoreworICAg
IGlmIChtX2luRGlzcGF0Y2hFcnJvckV2ZW50KSB7CisgICAgICAgIGlmICghbV9wZW5kaW5nRXhj
ZXB0aW9ucykKKyAgICAgICAgICAgIG1fcGVuZGluZ0V4Y2VwdGlvbnMgPSBuZXcgVmVjdG9yPE93
blB0cjxQZW5kaW5nRXhjZXB0aW9uPiA+KCk7CisgICAgICAgIG1fcGVuZGluZ0V4Y2VwdGlvbnMt
PmFwcGVuZChuZXcgUGVuZGluZ0V4Y2VwdGlvbihlcnJvck1lc3NhZ2UsIGxpbmVOdW1iZXIsIHNv
dXJjZVVSTCwgY2FsbFN0YWNrKSk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICAvLyBG
aXJzdCByZXBvcnQgdGhlIG9yaWdpbmFsIGV4Y2VwdGlvbiBhbmQgb25seSB0aGVuIGFsbCB0aGUg
bmVzdGVkIG9uZXMuCisgICAgaWYgKCFkaXNwYXRjaEVycm9yRXZlbnQod3JhcHBlcldvcmxkLCBl
cnJvck1lc3NhZ2UsIGxpbmVOdW1iZXIsIHNvdXJjZVVSTCkpCisgICAgICAgIGxvZ0V4Y2VwdGlv
blRvQ29uc29sZShlcnJvck1lc3NhZ2UsIGxpbmVOdW1iZXIsIHNvdXJjZVVSTCwgY2FsbFN0YWNr
LmdldCgpKTsKKworICAgIGlmIChtX3BlbmRpbmdFeGNlcHRpb25zKSB7CisgICAgICAgIGZvciAo
c2l6ZV90IGkgPSAwOyBpIDwgbV9wZW5kaW5nRXhjZXB0aW9ucy0+c2l6ZSgpOyBpKyspIHsKKyAg
ICAgICAgICAgIFBlbmRpbmdFeGNlcHRpb24qIGUgPSBtX3BlbmRpbmdFeGNlcHRpb25zLT5hdChp
KS5nZXQoKTsKKyAgICAgICAgICAgIGxvZ0V4Y2VwdGlvblRvQ29uc29sZShlLT5tX2Vycm9yTWVz
c2FnZSwgZS0+bV9saW5lTnVtYmVyLCBlLT5tX3NvdXJjZVVSTCwgZS0+bV9jYWxsU3RhY2suZ2V0
KCkpOworICAgICAgICB9CisgICAgICAgIG1fcGVuZGluZ0V4Y2VwdGlvbnMuY2xlYXIoKTsKKyAg
ICB9Cit9CisKK2Jvb2wgU2NyaXB0RXhlY3V0aW9uQ29udGV4dDo6ZGlzcGF0Y2hFcnJvckV2ZW50
KERPTVdyYXBwZXJXb3JsZCogd3JhcHBlcldvcmxkLCBjb25zdCBTdHJpbmcmIGVycm9yTWVzc2Fn
ZSwgaW50IGxpbmVOdW1iZXIsIGNvbnN0IFN0cmluZyYgc291cmNlVVJMKQoreworICAgIC8vIEl0
J3MgdW5zYWZlIHRvIGRpc3BhdGNoIGVycm9yIGV2ZW50IHRvIGVycm9yIGhhbmRsZXIgaW4gYSBk
aWZmZXJlbnQgd29ybGQuCisgICAgaWYgKCF3cmFwcGVyV29ybGQgJiYgIWlzV29ya2VyQ29udGV4
dCgpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICBFdmVudFRhcmdldCogdGFyZ2V0ID0g
ZXJyb3JFdmVudFRhcmdldCgpOworICAgIGlmICghdGFyZ2V0KQorICAgICAgICByZXR1cm4gZmFs
c2U7CisKKyAgICBBU1NFUlQoIW1faW5EaXNwYXRjaEVycm9yRXZlbnQpOworICAgIG1faW5EaXNw
YXRjaEVycm9yRXZlbnQgPSB0cnVlOworICAgIFJlZlB0cjxFcnJvckV2ZW50PiBlcnJvckV2ZW50
KEVycm9yRXZlbnQ6OmNyZWF0ZSh3cmFwcGVyV29ybGQsIGVycm9yTWVzc2FnZSwgc291cmNlVVJM
LCBsaW5lTnVtYmVyKSk7CisgICAgdGFyZ2V0LT5kaXNwYXRjaEV2ZW50KGVycm9yRXZlbnQpOwor
ICAgIG1faW5EaXNwYXRjaEVycm9yRXZlbnQgPSBmYWxzZTsKKyAgICByZXR1cm4gZXJyb3JFdmVu
dC0+ZGVmYXVsdFByZXZlbnRlZCgpOworfQorCiB2b2lkIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQ6
OmFkZFRpbWVvdXQoaW50IHRpbWVvdXRJZCwgRE9NVGltZXIqIHRpbWVyKQogewogICAgIEFTU0VS
VCghbV90aW1lb3V0cy5jb250YWlucyh0aW1lb3V0SWQpKTsKZGlmZiAtLWdpdCBhL1dlYkNvcmUv
ZG9tL1NjcmlwdEV4ZWN1dGlvbkNvbnRleHQuaCBiL1dlYkNvcmUvZG9tL1NjcmlwdEV4ZWN1dGlv
bkNvbnRleHQuaAppbmRleCBkMzljYjY0Yjk3M2U5MjU1MmFiMzA2NzM3MzA0MzIxOWZjMmNlNGM5
Li45MjAyNDkxMGNmNGJjNDYxY2UzMTc5ZGIzMmE0YTkzNzMxZGE1ZmQ2IDEwMDY0NAotLS0gYS9X
ZWJDb3JlL2RvbS9TY3JpcHRFeGVjdXRpb25Db250ZXh0LmgKKysrIGIvV2ViQ29yZS9kb20vU2Ny
aXB0RXhlY3V0aW9uQ29udGV4dC5oCkBAIC0zMyw2ICszMyw3IEBACiAjaW5jbHVkZSA8d3RmL0Zv
cndhcmQuaD4KICNpbmNsdWRlIDx3dGYvSGFzaE1hcC5oPgogI2luY2x1ZGUgPHd0Zi9IYXNoU2V0
Lmg+CisjaW5jbHVkZSA8d3RmL093blB0ci5oPgogI2luY2x1ZGUgPHd0Zi9QYXNzT3duUHRyLmg+
CiAjaW5jbHVkZSA8d3RmL1Bhc3NSZWZQdHIuaD4KICNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+CkBA
IC01MiwxMSArNTMsMTUgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgIGNsYXNzIERhdGFiYXNl
VGhyZWFkOwogI2VuZGlmCiAgICAgY2xhc3MgRE9NVGltZXI7CisgICAgY2xhc3MgRE9NV3JhcHBl
cldvcmxkOworICAgIGNsYXNzIEV2ZW50TGlzdGVuZXI7CisgICAgY2xhc3MgRXZlbnRUYXJnZXQ7
CiAjaWYgRU5BQkxFKEJMT0IpIHx8IEVOQUJMRShGSUxFX1NZU1RFTSkKICAgICBjbGFzcyBGaWxl
VGhyZWFkOwogI2VuZGlmCiAgICAgY2xhc3MgTWVzc2FnZVBvcnQ7CiAgICAgY2xhc3MgU2VjdXJp
dHlPcmlnaW47CisgICAgY2xhc3MgU2NyaXB0Q2FsbFN0YWNrOwogICAgIGNsYXNzIFNjcmlwdFN0
cmluZzsKICNpZiBFTkFCTEUoSU5TUEVDVE9SKQogICAgIGNsYXNzIEluc3BlY3RvckNvbnRyb2xs
ZXI7CkBAIC05Miw3ICs5Nyw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgdmlydHVh
bCBJbnNwZWN0b3JDb250cm9sbGVyKiBpbnNwZWN0b3JDb250cm9sbGVyKCkgY29uc3QgeyByZXR1
cm4gMDsgfQogI2VuZGlmCiAKLSAgICAgICAgdmlydHVhbCB2b2lkIHJlcG9ydEV4Y2VwdGlvbihj
b25zdCBTdHJpbmcmIGVycm9yTWVzc2FnZSwgaW50IGxpbmVOdW1iZXIsIGNvbnN0IFN0cmluZyYg
c291cmNlVVJMKSA9IDA7CisgICAgICAgIHZpcnR1YWwgdm9pZCByZXBvcnRFeGNlcHRpb24oRE9N
V3JhcHBlcldvcmxkKiwgY29uc3QgU3RyaW5nJiBlcnJvck1lc3NhZ2UsIGludCBsaW5lTnVtYmVy
LCBjb25zdCBTdHJpbmcmIHNvdXJjZVVSTCwgUGFzc093blB0cjxTY3JpcHRDYWxsU3RhY2s+KTsK
ICAgICAgICAgdmlydHVhbCB2b2lkIGFkZE1lc3NhZ2UoTWVzc2FnZVNvdXJjZSwgTWVzc2FnZVR5
cGUsIE1lc3NhZ2VMZXZlbCwgY29uc3QgU3RyaW5nJiBtZXNzYWdlLCB1bnNpZ25lZCBsaW5lTnVt
YmVyLCBjb25zdCBTdHJpbmcmIHNvdXJjZVVSTCkgPSAwOwogCiAgICAgICAgIC8vIEFjdGl2ZSBv
YmplY3RzIGFyZSBub3QgZ2FyYmFnZSBjb2xsZWN0ZWQgZXZlbiBpZiBpbmFjY2Vzc2libGUsIGUu
Zy4gYmVjYXVzZSB0aGVpciBhY3Rpdml0eSBtYXkgcmVzdWx0IGluIGNhbGxiYWNrcyBiZWluZyBp
bnZva2VkLgpAQCAtMTU1LDYgKzE2MCwxMCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAg
IHZpcnR1YWwgY29uc3QgS1VSTCYgdmlydHVhbFVSTCgpIGNvbnN0ID0gMDsKICAgICAgICAgdmly
dHVhbCBLVVJMIHZpcnR1YWxDb21wbGV0ZVVSTChjb25zdCBTdHJpbmcmKSBjb25zdCA9IDA7CiAK
KyAgICAgICAgdmlydHVhbCBFdmVudFRhcmdldCogZXJyb3JFdmVudFRhcmdldCgpID0gMDsKKyAg
ICAgICAgdmlydHVhbCB2b2lkIGxvZ0V4Y2VwdGlvblRvQ29uc29sZShjb25zdCBTdHJpbmcmIGVy
cm9yTWVzc2FnZSwgaW50IGxpbmVOdW1iZXIsIGNvbnN0IFN0cmluZyYgc291cmNlVVJMLCBTY3Jp
cHRDYWxsU3RhY2sqKSA9IDA7CisgICAgICAgIGJvb2wgZGlzcGF0Y2hFcnJvckV2ZW50KERPTVdy
YXBwZXJXb3JsZCosIGNvbnN0IFN0cmluZyYgZXJyb3JNZXNzYWdlLCBpbnQgbGluZU51bWJlciwg
Y29uc3QgU3RyaW5nJiBzb3VyY2VVUkwpOworCiAgICAgICAgIHZvaWQgY2xvc2VNZXNzYWdlUG9y
dHMoKTsKIAogICAgICAgICBSZWZQdHI8U2VjdXJpdHlPcmlnaW4+IG1fc2VjdXJpdHlPcmlnaW47
CkBAIC0xODAsNiArMTg5LDE1IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICNpZiBFTkFCTEUoQkxP
QikgfHwgRU5BQkxFKEZJTEVfU1lTVEVNKQogICAgICAgICBSZWZQdHI8RmlsZVRocmVhZD4gbV9m
aWxlVGhyZWFkOwogI2VuZGlmCisgICAgICAgIGJvb2wgbV9pbkRpc3BhdGNoRXJyb3JFdmVudDsK
KyAgICAgICAgc3RydWN0IFBlbmRpbmdFeGNlcHRpb24gOiBwdWJsaWMgTm9uY29weWFibGUgewor
ICAgICAgICAgICAgUGVuZGluZ0V4Y2VwdGlvbihjb25zdCBTdHJpbmcmIGVycm9yTWVzc2FnZSwg
aW50IGxpbmVOdW1iZXIsIGNvbnN0IFN0cmluZyYgc291cmNlVVJMLCBQYXNzT3duUHRyPFNjcmlw
dENhbGxTdGFjaz4gY2FsbFN0YWNrKTsKKyAgICAgICAgICAgIFN0cmluZyBtX2Vycm9yTWVzc2Fn
ZTsKKyAgICAgICAgICAgIGludCBtX2xpbmVOdW1iZXI7CisgICAgICAgICAgICBTdHJpbmcgbV9z
b3VyY2VVUkw7CisgICAgICAgICAgICBPd25QdHI8U2NyaXB0Q2FsbFN0YWNrPiBtX2NhbGxTdGFj
azsKKyAgICAgICAgfTsKKyAgICAgICAgT3duUHRyPFZlY3RvcjxPd25QdHI8UGVuZGluZ0V4Y2Vw
dGlvbj4gPiA+IG1fcGVuZGluZ0V4Y2VwdGlvbnM7CiAgICAgfTsKIAogfSAvLyBuYW1lc3BhY2Ug
V2ViQ29yZQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS93b3JrZXJzL0RlZmF1bHRTaGFyZWRXb3JrZXJS
ZXBvc2l0b3J5LmNwcCBiL1dlYkNvcmUvd29ya2Vycy9EZWZhdWx0U2hhcmVkV29ya2VyUmVwb3Np
dG9yeS5jcHAKaW5kZXggNGE4ZTk0NzMxYmFhNjIwZGJlOWRmNWQzNDA5NzdiMDk5YjBhMDY0NC4u
YzcwOTk4MDg2ZmYyY2RhMDhmMzliYjNlNjZkNGY3MDU3OWI5Y2EwNiAxMDA2NDQKLS0tIGEvV2Vi
Q29yZS93b3JrZXJzL0RlZmF1bHRTaGFyZWRXb3JrZXJSZXBvc2l0b3J5LmNwcAorKysgYi9XZWJD
b3JlL3dvcmtlcnMvRGVmYXVsdFNoYXJlZFdvcmtlclJlcG9zaXRvcnkuY3BwCkBAIC00Miw2ICs0
Miw3IEBACiAjaW5jbHVkZSAiTWVzc2FnZVBvcnQuaCIKICNpbmNsdWRlICJOb3RJbXBsZW1lbnRl
ZC5oIgogI2luY2x1ZGUgIlBsYXRmb3JtU3RyaW5nLmgiCisjaW5jbHVkZSAiU2NyaXB0Q2FsbFN0
YWNrLmgiCiAjaW5jbHVkZSAiU2VjdXJpdHlPcmlnaW4uaCIKICNpbmNsdWRlICJTZWN1cml0eU9y
aWdpbkhhc2guaCIKICNpbmNsdWRlICJTaGFyZWRXb3JrZXIuaCIKQEAgLTE1NSw3ICsxNTYsNyBA
QCB2b2lkIFNoYXJlZFdvcmtlclByb3h5Ojpwb3N0VGFza0Zvck1vZGVUb1dvcmtlckNvbnRleHQo
UGFzc093blB0cjxTY3JpcHRFeGVjdXRpbwogCiBzdGF0aWMgdm9pZCBwb3N0RXhjZXB0aW9uVGFz
ayhTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0LCBjb25zdCBTdHJpbmcmIGVycm9yTWVz
c2FnZSwgaW50IGxpbmVOdW1iZXIsIGNvbnN0IFN0cmluZyYgc291cmNlVVJMKQogewotICAgIGNv
bnRleHQtPnJlcG9ydEV4Y2VwdGlvbihlcnJvck1lc3NhZ2UsIGxpbmVOdW1iZXIsIHNvdXJjZVVS
TCk7CisgICAgY29udGV4dC0+cmVwb3J0RXhjZXB0aW9uKDAsIGVycm9yTWVzc2FnZSwgbGluZU51
bWJlciwgc291cmNlVVJMLCAwKTsKIH0KIAogdm9pZCBTaGFyZWRXb3JrZXJQcm94eTo6cG9zdEV4
Y2VwdGlvblRvV29ya2VyT2JqZWN0KGNvbnN0IFN0cmluZyYgZXJyb3JNZXNzYWdlLCBpbnQgbGlu
ZU51bWJlciwgY29uc3QgU3RyaW5nJiBzb3VyY2VVUkwpCmRpZmYgLS1naXQgYS9XZWJDb3JlL3dv
cmtlcnMvV29ya2VyQ29udGV4dC5jcHAgYi9XZWJDb3JlL3dvcmtlcnMvV29ya2VyQ29udGV4dC5j
cHAKaW5kZXggNmNlZTI0NjI5YjdiODZmYWMyN2EyNWI1YjNhY2FiMzg5M2Q3MGJhOC4uZjVlYjQ2
NDU3NzcxNjUwOGE5ZWYxMmM3ZTQ4ZTliNmZhYWQ3YzliNSAxMDA2NDQKLS0tIGEvV2ViQ29yZS93
b3JrZXJzL1dvcmtlckNvbnRleHQuY3BwCisrKyBiL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJDb250
ZXh0LmNwcApAQCAtOTksNyArOTksNiBAQCBXb3JrZXJDb250ZXh0OjpXb3JrZXJDb250ZXh0KGNv
bnN0IEtVUkwmIHVybCwgY29uc3QgU3RyaW5nJiB1c2VyQWdlbnQsIFdvcmtlclRocgogICAgICwg
bV9zY3JpcHQobmV3IFdvcmtlclNjcmlwdENvbnRyb2xsZXIodGhpcykpCiAgICAgLCBtX3RocmVh
ZCh0aHJlYWQpCiAgICAgLCBtX2Nsb3NpbmcoZmFsc2UpCi0gICAgLCBtX3JlcG9ydGluZ0V4Y2Vw
dGlvbihmYWxzZSkKIHsKICAgICBzZXRTZWN1cml0eU9yaWdpbihTZWN1cml0eU9yaWdpbjo6Y3Jl
YXRlKHVybCkpOwogfQpAQCAtMjU2LDIwICsyNTUsMTMgQEAgdm9pZCBXb3JrZXJDb250ZXh0Ojpp
bXBvcnRTY3JpcHRzKGNvbnN0IFZlY3RvcjxTdHJpbmc+JiB1cmxzLCBFeGNlcHRpb25Db2RlJiBl
YykKICAgICB9CiB9CiAKLXZvaWQgV29ya2VyQ29udGV4dDo6cmVwb3J0RXhjZXB0aW9uKGNvbnN0
IFN0cmluZyYgZXJyb3JNZXNzYWdlLCBpbnQgbGluZU51bWJlciwgY29uc3QgU3RyaW5nJiBzb3Vy
Y2VVUkwpCitFdmVudFRhcmdldCogV29ya2VyQ29udGV4dDo6ZXJyb3JFdmVudFRhcmdldCgpCiB7
Ci0gICAgYm9vbCBlcnJvckhhbmRsZWQgPSBmYWxzZTsKLSAgICBpZiAoIW1fcmVwb3J0aW5nRXhj
ZXB0aW9uKSB7Ci0gICAgICAgIGlmIChvbmVycm9yKCkpIHsKLSAgICAgICAgICAgIG1fcmVwb3J0
aW5nRXhjZXB0aW9uID0gdHJ1ZTsKLSAgICAgICAgICAgIFJlZlB0cjxFcnJvckV2ZW50PiBlcnJv
ckV2ZW50KEVycm9yRXZlbnQ6OmNyZWF0ZShlcnJvck1lc3NhZ2UsIHNvdXJjZVVSTCwgbGluZU51
bWJlcikpOwotICAgICAgICAgICAgb25lcnJvcigpLT5oYW5kbGVFdmVudCh0aGlzLCBlcnJvckV2
ZW50LmdldCgpKTsKLSAgICAgICAgICAgIGVycm9ySGFuZGxlZCA9IGVycm9yRXZlbnQtPmRlZmF1
bHRQcmV2ZW50ZWQoKTsKLSAgICAgICAgICAgIG1fcmVwb3J0aW5nRXhjZXB0aW9uID0gZmFsc2U7
Ci0gICAgICAgIH0KLSAgICB9Ci0gICAgaWYgKCFlcnJvckhhbmRsZWQpCi0gICAgICAgIHRocmVh
ZCgpLT53b3JrZXJSZXBvcnRpbmdQcm94eSgpLnBvc3RFeGNlcHRpb25Ub1dvcmtlck9iamVjdChl
cnJvck1lc3NhZ2UsIGxpbmVOdW1iZXIsIHNvdXJjZVVSTCk7CisgICAgcmV0dXJuIHRoaXM7Cit9
Cit2b2lkIFdvcmtlckNvbnRleHQ6OmxvZ0V4Y2VwdGlvblRvQ29uc29sZShjb25zdCBTdHJpbmcm
IGVycm9yTWVzc2FnZSwgaW50IGxpbmVOdW1iZXIsIGNvbnN0IFN0cmluZyYgc291cmNlVVJMLCBT
Y3JpcHRDYWxsU3RhY2sqKQoreworICAgIHRocmVhZCgpLT53b3JrZXJSZXBvcnRpbmdQcm94eSgp
LnBvc3RFeGNlcHRpb25Ub1dvcmtlck9iamVjdChlcnJvck1lc3NhZ2UsIGxpbmVOdW1iZXIsIHNv
dXJjZVVSTCk7CiB9CiAKIHZvaWQgV29ya2VyQ29udGV4dDo6YWRkTWVzc2FnZShNZXNzYWdlU291
cmNlIHNvdXJjZSwgTWVzc2FnZVR5cGUgdHlwZSwgTWVzc2FnZUxldmVsIGxldmVsLCBjb25zdCBT
dHJpbmcmIG1lc3NhZ2UsIHVuc2lnbmVkIGxpbmVOdW1iZXIsIGNvbnN0IFN0cmluZyYgc291cmNl
VVJMKQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS93b3JrZXJzL1dvcmtlckNvbnRleHQuaCBiL1dlYkNv
cmUvd29ya2Vycy9Xb3JrZXJDb250ZXh0LmgKaW5kZXggNDEyOGE1NjIzYjhlZjhhZGMzNDIwNzQx
NTNhMGVhNGM2Yjk4NGQ4Zi4uODE3MzAwNmFhMjIyNDY2ZDE4YWRlYjlhMzQxZDM1YjY1Y2RhOWZm
OSAxMDA2NDQKLS0tIGEvV2ViQ29yZS93b3JrZXJzL1dvcmtlckNvbnRleHQuaAorKysgYi9XZWJD
b3JlL3dvcmtlcnMvV29ya2VyQ29udGV4dC5oCkBAIC05OSw3ICs5OSw2IEBAIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKICAgICAgICAgdm9pZCBjbGVhckludGVydmFsKGludCB0aW1lb3V0SWQpOwogCiAg
ICAgICAgIC8vIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQKLSAgICAgICAgdmlydHVhbCB2b2lkIHJl
cG9ydEV4Y2VwdGlvbihjb25zdCBTdHJpbmcmIGVycm9yTWVzc2FnZSwgaW50IGxpbmVOdW1iZXIs
IGNvbnN0IFN0cmluZyYgc291cmNlVVJMKTsKICAgICAgICAgdmlydHVhbCB2b2lkIGFkZE1lc3Nh
Z2UoTWVzc2FnZVNvdXJjZSwgTWVzc2FnZVR5cGUsIE1lc3NhZ2VMZXZlbCwgY29uc3QgU3RyaW5n
JiBtZXNzYWdlLCB1bnNpZ25lZCBsaW5lTnVtYmVyLCBjb25zdCBTdHJpbmcmIHNvdXJjZVVSTCk7
CiAKICNpZiBFTkFCTEUoTk9USUZJQ0FUSU9OUykKQEAgLTE3Miw2ICsxNzEsOSBAQCBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiAgICAgICAgIHZpcnR1YWwgY29uc3QgS1VSTCYgdmlydHVhbFVSTCgpIGNv
bnN0OwogICAgICAgICB2aXJ0dWFsIEtVUkwgdmlydHVhbENvbXBsZXRlVVJMKGNvbnN0IFN0cmlu
ZyYpIGNvbnN0OwogCisgICAgICAgIHZpcnR1YWwgRXZlbnRUYXJnZXQqIGVycm9yRXZlbnRUYXJn
ZXQoKTsKKyAgICAgICAgdmlydHVhbCB2b2lkIGxvZ0V4Y2VwdGlvblRvQ29uc29sZShjb25zdCBT
dHJpbmcmIGVycm9yTWVzc2FnZSwgaW50IGxpbmVOdW1iZXIsIGNvbnN0IFN0cmluZyYgc291cmNl
VVJMLCBTY3JpcHRDYWxsU3RhY2sqKTsKKwogICAgICAgICBLVVJMIG1fdXJsOwogICAgICAgICBT
dHJpbmcgbV91c2VyQWdlbnQ7CiAKQEAgLTE4NSw3ICsxODcsNiBAQCBuYW1lc3BhY2UgV2ViQ29y
ZSB7CiAgICAgICAgIG11dGFibGUgUmVmUHRyPE5vdGlmaWNhdGlvbkNlbnRlcj4gbV9ub3RpZmlj
YXRpb25zOwogI2VuZGlmCiAgICAgICAgIGJvb2wgbV9jbG9zaW5nOwotICAgICAgICBib29sIG1f
cmVwb3J0aW5nRXhjZXB0aW9uOwogICAgICAgICBFdmVudFRhcmdldERhdGEgbV9ldmVudFRhcmdl
dERhdGE7CiAKICAgICAgICAgSGFzaFNldDxPYnNlcnZlcio+IG1fd29ya2VyT2JzZXJ2ZXJzOwpk
aWZmIC0tZ2l0IGEvV2ViQ29yZS93b3JrZXJzL1dvcmtlck1lc3NhZ2luZ1Byb3h5LmNwcCBiL1dl
YkNvcmUvd29ya2Vycy9Xb3JrZXJNZXNzYWdpbmdQcm94eS5jcHAKaW5kZXggMTA3MDBjNjRlZjY5
ZTVhNWYzN2QwMWFmYjI0NDM2ZjVjNWZjZTFhMS4uYTc2NmQ2MDExY2Q5M2MzN2VkMjExMzEyOGJi
NzgzMTJiMDYyMzI5NyAxMDA2NDQKLS0tIGEvV2ViQ29yZS93b3JrZXJzL1dvcmtlck1lc3NhZ2lu
Z1Byb3h5LmNwcAorKysgYi9XZWJDb3JlL3dvcmtlcnMvV29ya2VyTWVzc2FnaW5nUHJveHkuY3Bw
CkBAIC00MCw2ICs0MCw3IEBACiAjaW5jbHVkZSAiRXhjZXB0aW9uQ29kZS5oIgogI2luY2x1ZGUg
Ikluc3BlY3RvckNvbnRyb2xsZXIuaCIKICNpbmNsdWRlICJNZXNzYWdlRXZlbnQuaCIKKyNpbmNs
dWRlICJTY3JpcHRDYWxsU3RhY2suaCIKICNpbmNsdWRlICJTY3JpcHRFeGVjdXRpb25Db250ZXh0
LmgiCiAjaW5jbHVkZSAiV29ya2VyLmgiCiAKQEAgLTEyOSw5ICsxMzAsOSBAQCBwcml2YXRlOgog
ICAgICAgICAvLyBXZSBkb24ndCBib3RoZXIgY2hlY2tpbmcgdGhlIGFza2VkVG9UZXJtaW5hdGUo
KSBmbGFnIGhlcmUsIGJlY2F1c2UgZXhjZXB0aW9ucyBzaG91bGQgKmFsd2F5cyogYmUgcmVwb3J0
ZWQgZXZlbiBpZiB0aGUgdGhyZWFkIGlzIHRlcm1pbmF0ZWQuCiAgICAgICAgIC8vIFRoaXMgaXMg
aW50ZW50aW9uYWxseSBkaWZmZXJlbnQgdGhhbiB0aGUgYmVoYXZpb3IgaW4gTWVzc2FnZVdvcmtl
clRhc2ssIGJlY2F1c2UgdGVybWluYXRlZCB3b3JrZXJzIG5vIGxvbmdlciBkZWxpdmVyIG1lc3Nh
Z2VzIChzZWN0aW9uIDQuNiBvZiB0aGUgV2ViV29ya2VyIHNwZWMpLCBidXQgdGhleSBkbyByZXBv
cnQgZXhjZXB0aW9ucy4KIAotICAgICAgICBib29sIGVycm9ySGFuZGxlZCA9ICF3b3JrZXJPYmpl
Y3QtPmRpc3BhdGNoRXZlbnQoRXJyb3JFdmVudDo6Y3JlYXRlKG1fZXJyb3JNZXNzYWdlLCBtX3Nv
dXJjZVVSTCwgbV9saW5lTnVtYmVyKSk7CisgICAgICAgIGJvb2wgZXJyb3JIYW5kbGVkID0gIXdv
cmtlck9iamVjdC0+ZGlzcGF0Y2hFdmVudChFcnJvckV2ZW50OjpjcmVhdGUoMCwgbV9lcnJvck1l
c3NhZ2UsIG1fc291cmNlVVJMLCBtX2xpbmVOdW1iZXIpKTsKICAgICAgICAgaWYgKCFlcnJvckhh
bmRsZWQpCi0gICAgICAgICAgICBjb250ZXh0LT5yZXBvcnRFeGNlcHRpb24obV9lcnJvck1lc3Nh
Z2UsIG1fbGluZU51bWJlciwgbV9zb3VyY2VVUkwpOworICAgICAgICAgICAgY29udGV4dC0+cmVw
b3J0RXhjZXB0aW9uKDAsIG1fZXJyb3JNZXNzYWdlLCBtX2xpbmVOdW1iZXIsIG1fc291cmNlVVJM
LCAwKTsKICAgICB9CiAKICAgICBTdHJpbmcgbV9lcnJvck1lc3NhZ2U7CmRpZmYgLS1naXQgYS9X
ZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nIGIvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwppbmRl
eCBiMDFhYWJlOGM2ODdiZjc1MjYzOTQzODU1NGYyMmY3ZDkyMzg5NzQ0Li5lYjA0MDE3YTA1YWVh
OTgwMDU1N2E5OTA2MzhiNzg3ODc3MTgzZTdkIDEwMDY0NAotLS0gYS9XZWJLaXQvY2hyb21pdW0v
Q2hhbmdlTG9nCisrKyBiL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxOCBA
QAorMjAxMC0xMC0wMSAgWXVyeSBTZW1pa2hhdHNreSAgPHl1cnlzQGNocm9taXVtLm9yZz4KKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBXZWJDb3JlIGRv
ZXNuJ3QgZmlyZSB3aW5kb3cub25lcnJvciBldmVudCB3aGVuIHVuY2F1Z2h0IEphdmFTY3JpcHQg
ZXhjZXB0aW9ucyBhcmUgdGhyb3duCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD04NTE5CisKKyAgICAgICAgVW5jYXVnaHQgZXhjZXB0aW9ucyBhcmUgcHJv
cGFnYXRlZCB0byB3aW5kb3cub25lcnJvciBoYW5kZXIgaWYgb25lIGlzIHByZXNlbnQuCisgICAg
ICAgIFRoZSBoYW5kbGVyIGlzIGV4cGVjdGVkIHRvIGJlIGEgZnVuY3Rpb24gYWNjZXB0aW5nIHRo
cmVlIGFyZ3VtZW50czogZXJyb3IgbWVzc2FnZSwKKyAgICAgICAgcmVzb3VyY2UgdXJsIGFuZCBs
aW5lIG51bWJlciB3aGVyZSB0aGUgZXhjZXB0aW9uIG9jY3VyZWQuCisKKyAgICAgICAgKiBzcmMv
V2ViV29ya2VyQ2xpZW50SW1wbC5jcHA6IHJlcG9ydEV4Y2VwdGlvbiBzaWduYXR1cmUgaGFzIGNo
YW5nZWQsIGNhbGwgcGxhY2VzcyBhcmUgdXBkZXRlZC4KKyAgICAgICAgKFdlYktpdDo6V2ViV29y
a2VyQ2xpZW50SW1wbDo6cG9zdEV4Y2VwdGlvblRvV29ya2VyT2JqZWN0KToKKyAgICAgICAgKFdl
YktpdDo6V2ViV29ya2VyQ2xpZW50SW1wbDo6cG9zdEV4Y2VwdGlvblRvV29ya2VyT2JqZWN0VGFz
ayk6CisKIDIwMTAtMTAtMDEgIEpvY2hlbiBFaXNpbmdlciAgPGpvY2hlbkBjaHJvbWl1bS5vcmc+
CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgRGFyaW4gRmlzaGVyLgpkaWZmIC0tZ2l0IGEvV2ViS2l0
L2Nocm9taXVtL3NyYy9XZWJXb3JrZXJDbGllbnRJbXBsLmNwcCBiL1dlYktpdC9jaHJvbWl1bS9z
cmMvV2ViV29ya2VyQ2xpZW50SW1wbC5jcHAKaW5kZXggMTgyODJlMzQxNmI3M2RlMmVjZDA0NjMy
ZDZiY2U3NTJmZGQzMjlhNi4uZDA3ZDZjMWY5NzEyYTgyYzA1OTAwMDJiYjJkZjI4Yzc1OTNlZWY0
MSAxMDA2NDQKLS0tIGEvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJXb3JrZXJDbGllbnRJbXBsLmNw
cAorKysgYi9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYldvcmtlckNsaWVudEltcGwuY3BwCkBAIC00
MSw2ICs0MSw3IEBACiAjaW5jbHVkZSAiTWVzc2FnZUV2ZW50LmgiCiAjaW5jbHVkZSAiTWVzc2Fn
ZVBvcnQuaCIKICNpbmNsdWRlICJNZXNzYWdlUG9ydENoYW5uZWwuaCIKKyNpbmNsdWRlICJTY3Jp
cHRDYWxsU3RhY2suaCIKICNpbmNsdWRlICJTY3JpcHRFeGVjdXRpb25Db250ZXh0LmgiCiAjaW5j
bHVkZSAiV29ya2VyLmgiCiAjaW5jbHVkZSAiV29ya2VyQ29udGV4dC5oIgpAQCAtMjQzLDExICsy
NDQsMTIgQEAgdm9pZCBXZWJXb3JrZXJDbGllbnRJbXBsOjpwb3N0RXhjZXB0aW9uVG9Xb3JrZXJP
YmplY3QoY29uc3QgV2ViU3RyaW5nJiBlcnJvck1lc3MKICAgICAgICAgcmV0dXJuOwogICAgIH0K
IAotICAgIGJvb2wgdW5oYW5kbGVkID0gbV93b3JrZXItPmRpc3BhdGNoRXZlbnQoRXJyb3JFdmVu
dDo6Y3JlYXRlKGVycm9yTWVzc2FnZSwKKyAgICBib29sIHVuaGFuZGxlZCA9IG1fd29ya2VyLT5k
aXNwYXRjaEV2ZW50KEVycm9yRXZlbnQ6OmNyZWF0ZSgwLAorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVycm9yTWVzc2FnZSwK
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBzb3VyY2VVUkwsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgbGluZU51bWJlcikpOwogICAgIGlmICh1bmhhbmRs
ZWQpCi0gICAgICAgIG1fc2NyaXB0RXhlY3V0aW9uQ29udGV4dC0+cmVwb3J0RXhjZXB0aW9uKGVy
cm9yTWVzc2FnZSwgbGluZU51bWJlciwgc291cmNlVVJMKTsKKyAgICAgICAgbV9zY3JpcHRFeGVj
dXRpb25Db250ZXh0LT5yZXBvcnRFeGNlcHRpb24oMCwgZXJyb3JNZXNzYWdlLCBsaW5lTnVtYmVy
LCBzb3VyY2VVUkwsIDApOwogfQogCiB2b2lkIFdlYldvcmtlckNsaWVudEltcGw6OnBvc3RDb25z
b2xlTWVzc2FnZVRvV29ya2VyT2JqZWN0KGludCBkZXN0aW5hdGlvbiwKQEAgLTM3NywxMyArMzc5
LDE2IEBAIHZvaWQgV2ViV29ya2VyQ2xpZW50SW1wbDo6cG9zdEV4Y2VwdGlvblRvV29ya2VyT2Jq
ZWN0VGFzaygKIHsKICAgICBib29sIGhhbmRsZWQgPSBmYWxzZTsKICAgICBpZiAodGhpc1B0ci0+
bV93b3JrZXIpCi0gICAgICAgIGhhbmRsZWQgPSB0aGlzUHRyLT5tX3dvcmtlci0+ZGlzcGF0Y2hF
dmVudChFcnJvckV2ZW50OjpjcmVhdGUoZXJyb3JNZXNzYWdlLAorICAgICAgICBoYW5kbGVkID0g
dGhpc1B0ci0+bV93b3JrZXItPmRpc3BhdGNoRXZlbnQoRXJyb3JFdmVudDo6Y3JlYXRlKDAsCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgZXJyb3JNZXNzYWdlLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNvdXJjZVVSTCwKICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBsaW5lTnVtYmVyKSk7CiAgICAgaWYgKCFoYW5kbGVkKQotICAgICAgICB0aGlzUHRy
LT5tX3NjcmlwdEV4ZWN1dGlvbkNvbnRleHQtPnJlcG9ydEV4Y2VwdGlvbihlcnJvck1lc3NhZ2Us
CisgICAgICAgIHRoaXNQdHItPm1fc2NyaXB0RXhlY3V0aW9uQ29udGV4dC0+cmVwb3J0RXhjZXB0
aW9uKDAsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGVycm9yTWVzc2FnZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgbGluZU51bWJlciwKLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc291cmNlVVJMKTsKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
c291cmNlVVJMLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAwKTsKIH0KIAogdm9pZCBXZWJXb3JrZXJDbGllbnRJbXBsOjpwb3N0Q29u
c29sZU1lc3NhZ2VUb1dvcmtlck9iamVjdFRhc2soU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29u
dGV4dCwK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>69474</attachid>
            <date>2010-10-01 09:26:06 -0700</date>
            <delta_ts>2010-10-04 02:48:26 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-8519-20101001202602.patch</filename>
            <type>text/plain</type>
            <size>108415</size>
            <attacher name="Yury Semikhatsky">yurys</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCBmOTdkZmZlM2YwZTlkOWYwYTNhZTY0YmI2ZDFmOWRlNDMyY2I1NzlmLi4zYzY4MTQx
YTk5ZDcxMTI1NzU0NTNjZjg2ZWRlOGJkZTY3NjJjN2E3IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNjEgQEAK
KzIwMTAtMTAtMDEgIFl1cnkgU2VtaWtoYXRza3kgIDx5dXJ5c0BjaHJvbWl1bS5vcmc+CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgV2ViQ29yZSBkb2Vz
bid0IGZpcmUgd2luZG93Lm9uZXJyb3IgZXZlbnQgd2hlbiB1bmNhdWdodCBKYXZhU2NyaXB0IGV4
Y2VwdGlvbnMgYXJlIHRocm93bgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9ODUxOQorCisgICAgICAgIFVuY2F1Z2h0IGV4Y2VwdGlvbnMgYXJlIHByb3Bh
Z2F0ZWQgdG8gd2luZG93Lm9uZXJyb3IgaGFuZGVyIGlmIG9uZSBpcyBwcmVzZW50LgorICAgICAg
ICBUaGUgaGFuZGxlciBpcyBleHBlY3RlZCB0byBiZSBhIGZ1bmN0aW9uIGFjY2VwdGluZyB0aHJl
ZSBhcmd1bWVudHM6IGVycm9yIG1lc3NhZ2UsCisgICAgICAgIHJlc291cmNlIHVybCBhbmQgbGlu
ZSBudW1iZXIgd2hlcmUgdGhlIGV4Y2VwdGlvbiBvY2N1cmVkLgorCisgICAgICAgICogZmFzdC9l
dmVudHMvcmVzb3VyY2VzL3dpbmRvdy1vbmVycm9yLmpzOiBBZGRlZC4KKyAgICAgICAgKHRocm93
RXhjZXB0aW9uKToKKyAgICAgICAgKiBmYXN0L2V2ZW50cy93aW5kb3ctb25lcnJvcjEtZXhwZWN0
ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2V2ZW50cy93aW5kb3ctb25lcnJvcjEuaHRt
bDogQWRkZWQuCisgICAgICAgICogZmFzdC9ldmVudHMvd2luZG93LW9uZXJyb3IxMC1leHBlY3Rl
ZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZXZlbnRzL3dpbmRvdy1vbmVycm9yMTAuaHRt
bDogQWRkZWQuCisgICAgICAgICogZmFzdC9ldmVudHMvd2luZG93LW9uZXJyb3IxMS1leHBlY3Rl
ZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZXZlbnRzL3dpbmRvdy1vbmVycm9yMTEuaHRt
bDogQWRkZWQuCisgICAgICAgICogZmFzdC9ldmVudHMvd2luZG93LW9uZXJyb3IyLWV4cGVjdGVk
LnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC9ldmVudHMvd2luZG93LW9uZXJyb3IyLmh0bWw6
IEFkZGVkLgorICAgICAgICAqIGZhc3QvZXZlbnRzL3dpbmRvdy1vbmVycm9yMy1leHBlY3RlZC50
eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZXZlbnRzL3dpbmRvdy1vbmVycm9yMy5odG1sOiBB
ZGRlZC4KKyAgICAgICAgKiBmYXN0L2V2ZW50cy93aW5kb3ctb25lcnJvcjQtZXhwZWN0ZWQudHh0
OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2V2ZW50cy93aW5kb3ctb25lcnJvcjQuaHRtbDogQWRk
ZWQuCisgICAgICAgICogZmFzdC9ldmVudHMvd2luZG93LW9uZXJyb3I1LWV4cGVjdGVkLnR4dDog
QWRkZWQuCisgICAgICAgICogZmFzdC9ldmVudHMvd2luZG93LW9uZXJyb3I1Lmh0bWw6IEFkZGVk
LgorICAgICAgICAqIGZhc3QvZXZlbnRzL3dpbmRvdy1vbmVycm9yNi1leHBlY3RlZC50eHQ6IEFk
ZGVkLgorICAgICAgICAqIGZhc3QvZXZlbnRzL3dpbmRvdy1vbmVycm9yNi5odG1sOiBBZGRlZC4K
KyAgICAgICAgKiBmYXN0L2V2ZW50cy93aW5kb3ctb25lcnJvcjctZXhwZWN0ZWQudHh0OiBBZGRl
ZC4KKyAgICAgICAgKiBmYXN0L2V2ZW50cy93aW5kb3ctb25lcnJvcjcuaHRtbDogQWRkZWQuCisg
ICAgICAgICogZmFzdC9ldmVudHMvd2luZG93LW9uZXJyb3I4LWV4cGVjdGVkLnR4dDogQWRkZWQu
CisgICAgICAgICogZmFzdC9ldmVudHMvd2luZG93LW9uZXJyb3I4Lmh0bWw6IEFkZGVkLgorICAg
ICAgICAqIGZhc3QvZXZlbnRzL3dpbmRvdy1vbmVycm9yOS1leHBlY3RlZC50eHQ6IEFkZGVkLgor
ICAgICAgICAqIGZhc3QvZXZlbnRzL3dpbmRvdy1vbmVycm9yOS5odG1sOiBBZGRlZC4KKyAgICAg
ICAgKiBmYXN0L3dvcmtlcnMvd29ya2VyLXNjcmlwdC1lcnJvci1leHBlY3RlZC50eHQ6CisgICAg
ICAgICogaHR0cC90ZXN0cy9pbnNwZWN0b3IvcmVzb3VyY2UtY29udGVudC1sZW5ndGgtZXhwZWN0
ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL2luc3BlY3Rvci9yZXNvdXJjZXMv
aW1hZ2UuaHRtbDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9zZWN1cml0eS9yZXNvdXJj
ZXMvb25lcnJvci1pZnJhbWUuaHRtbDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9zZWN1
cml0eS93aW5kb3ctb25lcnJvci1leGNlcHRpb24taW4taWZyYW1lLWV4cGVjdGVkLnR4dDogQWRk
ZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9zZWN1cml0eS93aW5kb3ctb25lcnJvci1leGNlcHRp
b24taW4taWZyYW1lLmh0bWw6IEFkZGVkLgorICAgICAgICAqIHBsYXRmb3JtL2Nocm9taXVtLXdp
bi9mYXN0L3dvcmtlcnMvd29ya2VyLXNjcmlwdC1lcnJvci1leHBlY3RlZC50eHQ6CisgICAgICAg
ICogcGxhdGZvcm0vY2hyb21pdW0vZmFzdC9ldmVudHMvd2luZG93LW9uZXJyb3IxLWV4cGVjdGVk
LnR4dDogQWRkZWQuCisgICAgICAgICogcGxhdGZvcm0vY2hyb21pdW0vZmFzdC9ldmVudHMvd2lu
ZG93LW9uZXJyb3IxMC1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIHBsYXRmb3JtL2No
cm9taXVtL2Zhc3QvZXZlbnRzL3dpbmRvdy1vbmVycm9yMTEtZXhwZWN0ZWQudHh0OiBBZGRlZC4K
KyAgICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS9mYXN0L2V2ZW50cy93aW5kb3ctb25lcnJvcjIt
ZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS9mYXN0L2V2
ZW50cy93aW5kb3ctb25lcnJvcjMtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBwbGF0
Zm9ybS9jaHJvbWl1bS9mYXN0L2V2ZW50cy93aW5kb3ctb25lcnJvcjQtZXhwZWN0ZWQudHh0OiBB
ZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS9mYXN0L2V2ZW50cy93aW5kb3ctb25l
cnJvcjUtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS9m
YXN0L2V2ZW50cy93aW5kb3ctb25lcnJvcjYtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAg
KiBwbGF0Zm9ybS9jaHJvbWl1bS9mYXN0L2V2ZW50cy93aW5kb3ctb25lcnJvcjctZXhwZWN0ZWQu
dHh0OiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS9mYXN0L2V2ZW50cy93aW5k
b3ctb25lcnJvcjgtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9jaHJv
bWl1bS9mYXN0L2V2ZW50cy93aW5kb3ctb25lcnJvcjktZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAg
ICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS9odHRwL3Rlc3RzL3NlY3VyaXR5L3dpbmRvdy1vbmVy
cm9yLWV4Y2VwdGlvbi1pbi1pZnJhbWUtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBw
bGF0Zm9ybS9jaHJvbWl1bS91c2Vyc2NyaXB0cy93aW5kb3ctb25lcnJvci1mb3ItaXNvbGF0ZWQt
d29ybGQtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiB1c2Vyc2NyaXB0cy93aW5kb3ct
b25lcnJvci1mb3ItaXNvbGF0ZWQtd29ybGQtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAg
KiB1c2Vyc2NyaXB0cy93aW5kb3ctb25lcnJvci1mb3ItaXNvbGF0ZWQtd29ybGQuaHRtbDogQWRk
ZWQuCisKIDIwMTAtMTAtMDEgIENzYWJhIE9zenRyb2dvbsOhYyAgPG9zc3lAd2Via2l0Lm9yZz4K
IAogICAgICAgICBVbnJldmlld2VkIHJvbGxpbmcgb3V0IHI2ODYzMywgYmVjYXVzZSB3ZSBkb24n
dCBuZWVkIFF0IHNwZWNpZmljIGV4cGVjdGVkIHJlc3VsdHMgYW55IG1vcmUuCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9yZXNvdXJjZXMvd2luZG93LW9uZXJyb3IuanMgYi9M
YXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9yZXNvdXJjZXMvd2luZG93LW9uZXJyb3IuanMKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uMzQ0NTc0YmI2NTNjM2ZlZGYyMzE1MTZlMWQwYjk5NjAzODliYWY2MAotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3Jlc291cmNlcy93aW5kb3ctb25lcnJv
ci5qcwpAQCAtMCwwICsxLDMgQEAKK2Z1bmN0aW9uIHRocm93RXhjZXB0aW9uKCkgeworICAgIHRo
cm93IG5ldyBFcnJvcigiQW4gZXhjZXB0aW9uIik7Cit9CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9mYXN0L2V2ZW50cy93aW5kb3ctb25lcnJvcjEtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMv
ZmFzdC9ldmVudHMvd2luZG93LW9uZXJyb3IxLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mZTUx
YjcyMmYwYjM3MDlhZWNkNGI4MTVjZDIwNzA5NWMwMjQ2NTQ1Ci0tLSAvZGV2L251bGwKKysrIGIv
TGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvd2luZG93LW9uZXJyb3IxLWV4cGVjdGVkLnR4dApAQCAt
MCwwICsxLDMgQEAKK1RoaXMgcGFnZSB0ZXN0cyBzZXR0aW5nIG9uZXJyb3IgaGFuZGxlcnMgdGhy
b3VnaCB0aGUgRE9NLiBJZiBpdCBwYXNzZXMsIHlvdSB3aWxsIHNlZSAiUEFTUyIgbWVzc2FnZXMg
YmVsb3cuQnVnIDg1MTkuCisKK1BBU1M6IGNhdWdodCBnbG9iYWwgZXJyb3I6IFJlZmVyZW5jZUVy
cm9yOiBDYW4ndCBmaW5kIHZhcmlhYmxlOiBoYWhhaGFfZ29vZF9sdWNrX2ZpbmRpbmdfbWUgYXQg
d2luZG93LW9uZXJyb3IxLmh0bWw6MjUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZXZl
bnRzL3dpbmRvdy1vbmVycm9yMS5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvd2luZG93
LW9uZXJyb3IxLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNTlkMjQ5NTg2ODg1NTc0YWUwOGIzNjVhYzIxYWQx
MTFjYjczYTVmMwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3dp
bmRvdy1vbmVycm9yMS5odG1sCkBAIC0wLDAgKzEsMzUgQEAKKzxodG1sPgorPGhlYWQ+Cis8c2Ny
aXB0PgoraWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKKyAgICBsYXlvdXRUZXN0Q29u
dHJvbGxlci5kdW1wQXNUZXh0KCk7CisKK2Z1bmN0aW9uIHByaW50KG1lc3NhZ2UsIGNvbG9yKQor
eworICAgIHZhciBwYXJhZ3JhcGggPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTsKKyAg
ICBwYXJhZ3JhcGguYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUobWVzc2FnZSkp
OworICAgIHBhcmFncmFwaC5zdHlsZS5mb250RmFtaWx5ID0gIm1vbm9zcGFjZSI7CisgICAgaWYg
KGNvbG9yKQorICAgICAgICBwYXJhZ3JhcGguc3R5bGUuY29sb3IgPSBjb2xvcjsKKyAgICBkb2N1
bWVudC5nZXRFbGVtZW50QnlJZCgiY29uc29sZSIpLmFwcGVuZENoaWxkKHBhcmFncmFwaCk7Cit9
CisKK2Z1bmN0aW9uIHRlc3QoKQoreworICAgIC8vIG11c3QgYmUgbGFzdCBiZWNhdXNlIHRoZSBl
eGNlcHRpb24gZW5kcyBKYXZhU2NyaXB0IGV4ZWN1dGlvbgorICAgIHdpbmRvdy5vbmVycm9yID0g
ZnVuY3Rpb24gKGVycm9yLCB1cmwsIGxpbmUpIHsKKyAgICAgICAgdXJsID0gdXJsID8gdXJsLm1h
dGNoKCAvW15cL10rXC8/JC8gKVswXSA6IHVybDsKKyAgICAgICAgcHJpbnQoIlBBU1M6IGNhdWdo
dCBnbG9iYWwgZXJyb3I6ICIgKyBlcnJvciArICIgYXQgIiArIHVybCArICI6IiArIGxpbmUsICJn
cmVlbiIpOworICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfTsKKyAgICBoYWhhaGFfZ29vZF9s
dWNrX2ZpbmRpbmdfbWUoKTsgLy8gY2F1Z2h0IGJ5IHdpbmRvdy5vbmVycm9yCit9Cis8L3Njcmlw
dD4KKzwvaGVhZD4KKzxib2R5IG9ubG9hZD0idGVzdCgpOyI+Cis8cD5UaGlzIHBhZ2UgdGVzdHMg
c2V0dGluZyBvbmVycm9yIGhhbmRsZXJzIHRocm91Z2ggdGhlIERPTS4gSWYgaXQgcGFzc2VzLCB5
b3Ugd2lsbAorICAgc2VlICJQQVNTIiBtZXNzYWdlcyBiZWxvdy48YSBocmVmPSJodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODUxOSI+QnVnIDg1MTk8L2E+LjwvcD4KKzxo
cj4KKzxkaXYgaWQ9J2NvbnNvbGUnPjwvZGl2PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvd2luZG93LW9uZXJyb3IxMC1leHBlY3RlZC50eHQg
Yi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy93aW5kb3ctb25lcnJvcjEwLWV4cGVjdGVkLnR4dApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi5iZmY1NjM2NTQxMWYxZDlmMDc5N2JkYjAwODc1MTE3NjY5YjQ5NGQxCi0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvd2luZG93LW9uZXJyb3IxMC1l
eHBlY3RlZC50eHQKQEAgLTAsMCArMSwxMSBAQAorVGVzdCB0aGF0ICJlcnJvciIgZXZlbnQgbGlz
dGVuZXIgYWRkZWQgd2l0aCB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lciBpcyBpbnZva2VkIGZvciB1
bmNhdWNodCBleGNlcHRpb25zLiBCdWcgODUxOS4KKworZXZlbnQgcGFzc2VkIHRvIHRoZSBsaXN0
ZW5lciBpcyB0aGUgc2FtZSBhcyB3aW5kb3cuZXZlbnQ6IHRydWUKK0V2ZW50IGRldGFpbHM6Cit0
eXBlOiBlcnJvcgorcGhhc2U6IDIKK2N1cnJlbnRUYXJnZXQgaXMgdGhlIGdsb2JhbCBvYmplY3Q6
IHRydWUKK21lc3NhZ2U6IEVycm9yOiBNeSBmYXVsdC4KK2ZpbGVuYW1lOiB3aW5kb3ctb25lcnJv
cjEwLmh0bWwKK2xpbmVubzogMjkKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9ldmVu
dHMvd2luZG93LW9uZXJyb3IxMC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvd2luZG93
LW9uZXJyb3IxMC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjI2ZWQwMThmZGYxOGEzNDczODUzZTFjMTA2ZGE4
YzVlZDk2MDIxZmUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy93
aW5kb3ctb25lcnJvcjEwLmh0bWwKQEAgLTAsMCArMSwzMyBAQAorPGh0bWw+Cis8Ym9keT4KKzxw
PlRlc3QgdGhhdCAiZXJyb3IiIGV2ZW50IGxpc3RlbmVyIGFkZGVkIHdpdGggd2luZG93LmFkZEV2
ZW50TGlzdGVuZXIgaXMgaW52b2tlZCBmb3IgdW5jYXVjaHQgZXhjZXB0aW9ucy4gPGEgaHJlZj0i
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTg1MTkiPkJ1ZyA4NTE5PC9h
Pi48L3A+Cis8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KKzxzY3JpcHQ+CitpZiAod2luZG93Lmxh
eW91dFRlc3RDb250cm9sbGVyKQorICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQo
KTsKKworZnVuY3Rpb24gbG9nKG1zZykgeworICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJj
b25zb2xlIikuaW5uZXJIVE1MICs9IG1zZyArICI8YnI+IjsKK30KKworZnVuY3Rpb24gbGFzdFBh
dGhDb21wb25lbnQodXJsKSB7CisgICAgcmV0dXJuIHVybCA/IHVybC5tYXRjaCggL1teXC9dK1wv
PyQvIClbMF0gOiB1cmw7Cit9CisKK3dpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJlcnJvciIsIGZ1
bmN0aW9uKGUpIHsKKyAgICBsb2coImV2ZW50IHBhc3NlZCB0byB0aGUgbGlzdGVuZXIgaXMgdGhl
IHNhbWUgYXMgd2luZG93LmV2ZW50OiAiICsgKHdpbmRvdy5ldmVudCA9PT0gZSkpOworICAgIGxv
ZygiRXZlbnQgZGV0YWlsczoiKTsKKyAgICBsb2coInR5cGU6ICIgKyBlLnR5cGUpOworICAgIGxv
ZygicGhhc2U6ICIgKyBlLmV2ZW50UGhhc2UpCisgICAgbG9nKCJjdXJyZW50VGFyZ2V0IGlzIHRo
ZSBnbG9iYWwgb2JqZWN0OiAiICsgKGUuY3VycmVudFRhcmdldCA9PT0gd2luZG93KSk7CisgICAg
bG9nKCJtZXNzYWdlOiAiICsgZS5tZXNzYWdlKTsKKyAgICBsb2coImZpbGVuYW1lOiAiICsgbGFz
dFBhdGhDb21wb25lbnQoZS5maWxlbmFtZSkpOworICAgIGxvZygibGluZW5vOiAiICsgZS5saW5l
bm8pOworICAgIGUucHJldmVudERlZmF1bHQoKTsKK30sIGZhbHNlKTsKKwordGhyb3cgbmV3IEVy
cm9yKCJNeSBmYXVsdC4iKTsKKworPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy93aW5kb3ctb25lcnJvcjExLWV4cGVjdGVkLnR4
dCBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3dpbmRvdy1vbmVycm9yMTEtZXhwZWN0ZWQudHh0
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLjk2ZTIwY2MzZWMzYjEwYjc1M2NiYWNkNmQwYmEwOTQzZGNkZWUyNjQKLS0t
IC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy93aW5kb3ctb25lcnJvcjEx
LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDQgQEAKK1Rlc3QgdGhhdCB3aW5kb3cub25lcnJvciBp
cyBjYWxsZWQgb24gd2luZG93IG9iamVjdC4gQnVnIDg1MTkuCisKK01haW4gZnJhbWUgd2luZG93
Lm9uZXJyb3I6IEVycm9yOiBBbiBleGNlcHRpb24gYXQgd2luZG93LW9uZXJyb3IuanM6MgorCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy93aW5kb3ctb25lcnJvcjExLmh0bWwg
Yi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy93aW5kb3ctb25lcnJvcjExLmh0bWwKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uNzY1NWZhNzI3ZDhiNTYyYTBiZTQzZWFlMjNkMWMwNjQxMDQyZTQ1MwotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3dpbmRvdy1vbmVycm9yMTEuaHRtbApAQCAt
MCwwICsxLDI4IEBACis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdCBzcmM9InJlc291cmNlcy93aW5k
b3ctb25lcnJvci5qcyI+Cis8L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHA+VGVzdCB0aGF0
IHdpbmRvdy5vbmVycm9yIGlzIGNhbGxlZCBvbiB3aW5kb3cgb2JqZWN0LiA8YSBocmVmPSJodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODUxOSI+QnVnIDg1MTk8L2E+Ljwv
cD4KKzxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgorPHNjcmlwdD4KK2lmICh3aW5kb3cubGF5b3V0
VGVzdENvbnRyb2xsZXIpCisgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOwor
CitmdW5jdGlvbiBsb2cobXNnKSB7CisgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNvbnNv
bGUiKS5pbm5lckhUTUwgKz0gbXNnICsgIjxicj4iOworfQorCit3aW5kb3cub25lcnJvciA9IGZ1
bmN0aW9uKG1zZywgdXJsLCBsaW5lKQoreworICAgIHVybCA9IHVybCA/IHVybC5tYXRjaCggL1te
XC9dK1wvPyQvIClbMF0gOiB1cmw7CisgICAgbG9nKCJNYWluIGZyYW1lIHdpbmRvdy5vbmVycm9y
OiAiICsgbXNnICsgIiBhdCAiICsgdXJsICsgIjoiICsgbGluZSk7CisgICAgcmV0dXJuIGZhbHNl
OworfQorCit0aHJvd0V4Y2VwdGlvbigpOworCis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4K
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3dpbmRvdy1vbmVycm9yMi1leHBl
Y3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy93aW5kb3ctb25lcnJvcjItZXhwZWN0
ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLjkzYTJkM2YxM2IxZDFiODc5NjRmNjM4YzZmNWJmNzI2ZDkxMjc2
NzgKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy93aW5kb3ctb25l
cnJvcjItZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNiBAQAorVGVzdCB0aGF0IHVuY2F1Z2h0IGV4
Y2VwdGlvbnMgd2lsbCBiZSByZXBvcnRlZCB0byB0aGUgd2luZG93Lm9uZXJyb3IgaGFuZGxlci4g
QnVnIDg1MTkuCisKK01haW4gZnJhbWUgd2luZG93Lm9uZXJyb3I6IEVycm9yOiBJbmxpbmUgc2Ny
aXB0IGV4Y2VwdGlvbiBhdCB3aW5kb3ctb25lcnJvcjIuaHRtbDozNQorTWFpbiBmcmFtZSB3aW5k
b3cub25lcnJvcjogRXhjZXB0aW9uIGluIG9ubG9hZCBhdCB1bmRlZmluZWQ6MAorTWFpbiBmcmFt
ZSB3aW5kb3cub25lcnJvcjogRXJyb3I6IEV4Y2VwdGlvbiBpbiBzZXRUaW1lb3V0IGF0IHdpbmRv
dy1vbmVycm9yMi5odG1sOjI5CisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRz
L3dpbmRvdy1vbmVycm9yMi5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvd2luZG93LW9u
ZXJyb3IyLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZGI5ZmI3NWVjNDA2MmFjN2U0ZjNiZjU2MDNlNGE1OGJm
ZDU0ZTNmNwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3dpbmRv
dy1vbmVycm9yMi5odG1sCkBAIC0wLDAgKzEsNDEgQEAKKzxodG1sPgorPGJvZHkgb25sb2FkPSJ0
aHJvdyAnRXhjZXB0aW9uIGluIG9ubG9hZCc7Ij4KKzxwPlRlc3QgdGhhdCB1bmNhdWdodCBleGNl
cHRpb25zIHdpbGwgYmUgcmVwb3J0ZWQgdG8gdGhlIHdpbmRvdy5vbmVycm9yIGhhbmRsZXIuIDxh
IGhyZWY9Imh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04NTE5Ij5CdWcg
ODUxOTwvYT4uPC9wPgorPGRpdiBpZD0icmVzdWx0Ij48L2Rpdj4KKzxzY3JpcHQ+CitpZiAod2lu
ZG93LmxheW91dFRlc3RDb250cm9sbGVyKSB7CisgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVt
cEFzVGV4dCgpOworICAgIGxheW91dFRlc3RDb250cm9sbGVyLndhaXRVbnRpbERvbmUoKTsKK30K
KworZnVuY3Rpb24gbG9nKG1zZykgeworICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJyZXN1
bHQiKS5pbm5lckhUTUwgKz0gbXNnICsgIjxicj4iOworfQorCit2YXIgdW5oYW5kbGVkRXJyb3JD
b3VudCA9IDA7Cit3aW5kb3cub25lcnJvciA9IGZ1bmN0aW9uKG1zZywgdXJsLCBsaW5lKQorewor
ICAgIHVybCA9IHVybCA/IHVybC5tYXRjaCggL1teXC9dK1wvPyQvIClbMF0gOiB1cmw7CisgICAg
bG9nKCJNYWluIGZyYW1lIHdpbmRvdy5vbmVycm9yOiAiICsgbXNnICsgIiBhdCAiICsgdXJsICsg
IjoiICsgbGluZSk7CisgICAgCisgICAgaWYgKCsrdW5oYW5kbGVkRXJyb3JDb3VudCA9PT0gMyAm
JiB3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCisgICAgICAgIGxheW91dFRlc3RDb250cm9s
bGVyLm5vdGlmeURvbmUoKTsKKworICAgIHJldHVybiBmYWxzZTsKK30KKworZnVuY3Rpb24gZGVs
YXllZFRocm93RXhjZXB0aW9uKCkKK3sKKyAgICB0aHJvdyBuZXcgRXJyb3IoIkV4Y2VwdGlvbiBp
biBzZXRUaW1lb3V0Iik7Cit9CitzZXRUaW1lb3V0KGRlbGF5ZWRUaHJvd0V4Y2VwdGlvbiwgMCk7
CisKK2Z1bmN0aW9uIHRocm93RXhjZXB0aW9uKCkKK3sKKyAgICB0aHJvdyBuZXcgRXJyb3IoIklu
bGluZSBzY3JpcHQgZXhjZXB0aW9uIik7Cit9Cit0aHJvd0V4Y2VwdGlvbigpOworCis8L3Njcmlw
dD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRz
L3dpbmRvdy1vbmVycm9yMy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy93
aW5kb3ctb25lcnJvcjMtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjcwMjVkYmI5N2EyY2Y0Mjlk
ZjJhODExOTA5MWNhNzZlN2E4MDY3MzEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9m
YXN0L2V2ZW50cy93aW5kb3ctb25lcnJvcjMtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNCBAQAor
WW91IHNob3VsZCBzZWUgYSBtZXNzYWdlIGlmIHdpbmRvdy5vbmVycm9yIGlzIHdvcmtpbmcgcHJv
cGVybHkgZm9yIHRoaXMgdGVzdC5CdWcgODUxOS4KKworRXJyb3IgY2F1Z2h0IHN1Y2Nlc3NmdWxs
eTogUmVmZXJlbmNlRXJyb3I6IENhbid0IGZpbmQgdmFyaWFibGU6IHVua25vd25PYmplY3QgRmls
ZTogd2luZG93LW9uZXJyb3IzLmh0bWwgTGluZTogMTYKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvZmFzdC9ldmVudHMvd2luZG93LW9uZXJyb3IzLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2V2
ZW50cy93aW5kb3ctb25lcnJvcjMuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5lZTI4OTNmMGM3ZDk5MzIxNzZj
MGVhMzFlYTRmMGQyMTBjZWYxM2NmCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFz
dC9ldmVudHMvd2luZG93LW9uZXJyb3IzLmh0bWwKQEAgLTAsMCArMSwyMyBAQAorPHNjcmlwdD4K
K2lmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCisgICAgbGF5b3V0VGVzdENvbnRyb2xs
ZXIuZHVtcEFzVGV4dCgpOworCitmdW5jdGlvbiBsb2cobXNnKSB7CisgICAgZG9jdW1lbnQuZ2V0
RWxlbWVudEJ5SWQoImNvbnNvbGUiKS5pbm5lckhUTUwgKz0gbXNnICsgIjxicj4iOworfQorCitm
dW5jdGlvbiB0ZXN0MSgpCit7CisgICAgd2luZG93Lm9uZXJyb3IgPSBmdW5jdGlvbiAoZXJyb3Is
IHVybCwgbGluZSkgeworICAgICAgICB1cmwgPSB1cmwgPyB1cmwubWF0Y2goIC9bXlwvXStcLz8k
LyApWzBdIDogdXJsOworICAgICAgICBsb2coIkVycm9yIGNhdWdodCBzdWNjZXNzZnVsbHk6ICIg
KyBlcnJvciArICJcbkZpbGU6ICIgKyB1cmwgKyAiXG5MaW5lOiAiICsgbGluZSkKKyAgICAgICAg
cmV0dXJuIGZhbHNlOworICAgIH07CisgICAgdW5rbm93bk9iamVjdC51bmtub3duUHJvcGVydHkr
KzsKK30KKzwvc2NyaXB0PgorPGJvZHkgb25sb2FkPSJ0ZXN0MSgpOyI+Cis8cD5Zb3Ugc2hvdWxk
IHNlZSBhIG1lc3NhZ2UgaWYgd2luZG93Lm9uZXJyb3IgaXMgd29ya2luZyBwcm9wZXJseSBmb3Ig
dGhpcyB0ZXN0LjxhIGhyZWY9Imh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD04NTE5Ij5CdWcgODUxOTwvYT4uPC9wPgorPGhyPgorPGRpdiBpZD0nY29uc29sZSc+PC9kaXY+
Cis8L2JvZHk+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy93aW5kb3ctb25l
cnJvcjQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvd2luZG93LW9uZXJy
b3I0LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yNmFmOGExZWE5YzgyZDFkZGIyMGJmYTA3MWJk
YTdmOGM2NzdiNzY2Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMv
d2luZG93LW9uZXJyb3I0LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDQgQEAKK1lvdSBzaG91bGQg
c2VlIGEgbG9nIHJlY29yZCBpZiB3aW5kb3cub25lcnJvciBpcyB3b3JraW5nIHByb3Blcmx5IGZv
ciB0aGlzIHRlc3QuQnVnIDg1MTkuCisKK0Vycm9yIGNhdWdodCBzdWNjZXNzZnVsbHk6IFJlZmVy
ZW5jZUVycm9yOiBMZWZ0IHNpZGUgb2YgYXNzaWdubWVudCBpcyBub3QgYSByZWZlcmVuY2UuIEZp
bGU6IHVuZGVmaW5lZCBMaW5lOiAxCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZXZl
bnRzL3dpbmRvdy1vbmVycm9yNC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvd2luZG93
LW9uZXJyb3I0Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYzUxODg3ZGFmNjhmMTkwNjBlNzA2NDAxODQ4OWU1
OWFkYjk3OGRlZgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3dp
bmRvdy1vbmVycm9yNC5odG1sCkBAIC0wLDAgKzEsMjMgQEAKKzxzY3JpcHQ+CitpZiAod2luZG93
LmxheW91dFRlc3RDb250cm9sbGVyKQorICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1Rl
eHQoKTsKKworZnVuY3Rpb24gbG9nKG1zZykgeworICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlk
KCJjb25zb2xlIikuaW5uZXJIVE1MICs9IG1zZyArICI8YnI+IjsKK30KKworZnVuY3Rpb24gdGVz
dDEoKQoreworICAgIHdpbmRvdy5vbmVycm9yID0gZnVuY3Rpb24gKGVycm9yLCB1cmwsIGxpbmUp
IHsKKyAgICAgICAgdXJsID0gdXJsID8gdXJsLm1hdGNoKCAvW15cL10rXC8/JC8gKVswXSA6IHVy
bDsKKyAgICAgICAgbG9nKCJFcnJvciBjYXVnaHQgc3VjY2Vzc2Z1bGx5OiAiICsgZXJyb3IgKyAi
XG5GaWxlOiAiICsgdXJsICsgIlxuTGluZTogIiArIGxpbmUpCisgICAgICAgIHJldHVybiBmYWxz
ZTsKKyAgICB9OworICAgIGV2YWwoIjE9MiIpOworfQorPC9zY3JpcHQ+Cis8Ym9keSBvbmxvYWQ9
InRlc3QxKCk7Ij4KKzxwPllvdSBzaG91bGQgc2VlIGEgbG9nIHJlY29yZCBpZiB3aW5kb3cub25l
cnJvciBpcyB3b3JraW5nIHByb3Blcmx5IGZvciB0aGlzIHRlc3QuPGEgaHJlZj0iaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTg1MTkiPkJ1ZyA4NTE5PC9hPi48L3A+Cis8
aHI+Cis8ZGl2IGlkPSdjb25zb2xlJz48L2Rpdj4KKzwvYm9keT4KZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2Zhc3QvZXZlbnRzL3dpbmRvdy1vbmVycm9yNS1leHBlY3RlZC50eHQgYi9MYXlvdXRU
ZXN0cy9mYXN0L2V2ZW50cy93aW5kb3ctb25lcnJvcjUtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LjNlYzdmNWVmYzFkMDg2YTY1YzMyMzA0MjIxM2VmODIwYTcxOTcxNTQKLS0tIC9kZXYvbnVsbAor
KysgYi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy93aW5kb3ctb25lcnJvcjUtZXhwZWN0ZWQudHh0
CkBAIC0wLDAgKzEsNCBAQAorVGVzdCB0aGF0IHdpbmRvdy5vbmVycm9yIGlzIGludm9rZWQgZm9y
IHN5bnRheCBlcnJvciBpbiBldmFsLiBZb3Ugc2hvdWxkIHNlZSBhIGxvZyByZWNvcmQgaWYgd2lu
ZG93Lm9uZXJyb3IgaXMgd29ya2luZyBwcm9wZXJseSBmb3IgdGhpcyB0ZXN0LkJ1ZyA4NTE5Lgor
CitFcnJvciBjYXVnaHQgc3VjY2Vzc2Z1bGx5OiBTeW50YXhFcnJvcjogUGFyc2UgZXJyb3IgRmls
ZTogdW5kZWZpbmVkIExpbmU6IDEKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9ldmVu
dHMvd2luZG93LW9uZXJyb3I1Lmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy93aW5kb3ct
b25lcnJvcjUuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45MzJkNDM4YTU2ZWE4ODJmYjExN2IyMjEzOTVjNGEw
ZDgxOTk2NDRlCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvd2lu
ZG93LW9uZXJyb3I1Lmh0bWwKQEAgLTAsMCArMSwyMyBAQAorPHNjcmlwdD4KK2lmICh3aW5kb3cu
bGF5b3V0VGVzdENvbnRyb2xsZXIpCisgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4
dCgpOworCitmdW5jdGlvbiBsb2cobXNnKSB7CisgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQo
ImNvbnNvbGUiKS5pbm5lckhUTUwgKz0gbXNnICsgIjxicj4iOworfQorCitmdW5jdGlvbiB0ZXN0
MSgpCit7CisgICAgd2luZG93Lm9uZXJyb3IgPSBmdW5jdGlvbiAoZXJyb3IsIHVybCwgbGluZSkg
eworICAgICAgICB1cmwgPSB1cmwgPyB1cmwubWF0Y2goIC9bXlwvXStcLz8kLyApWzBdIDogdXJs
OworICAgICAgICBsb2coIkVycm9yIGNhdWdodCBzdWNjZXNzZnVsbHk6ICIgKyBlcnJvciArICJc
bkZpbGU6ICIgKyB1cmwgKyAiXG5MaW5lOiAiICsgbGluZSkKKyAgICAgICAgcmV0dXJuIGZhbHNl
OworICAgIH07CisgICAgZXZhbCgiYSgiKTsKK30KKzwvc2NyaXB0PgorPGJvZHkgb25sb2FkPSJ0
ZXN0MSgpOyI+Cis8cD5UZXN0IHRoYXQgd2luZG93Lm9uZXJyb3IgaXMgaW52b2tlZCBmb3Igc3lu
dGF4IGVycm9yIGluIGV2YWwuIFlvdSBzaG91bGQgc2VlIGEgbG9nIHJlY29yZCBpZiB3aW5kb3cu
b25lcnJvciBpcyB3b3JraW5nIHByb3Blcmx5IGZvciB0aGlzIHRlc3QuPGEgaHJlZj0iaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTg1MTkiPkJ1ZyA4NTE5PC9hPi48L3A+
Cis8aHI+Cis8ZGl2IGlkPSdjb25zb2xlJz48L2Rpdj4KKzwvYm9keT4KZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2Zhc3QvZXZlbnRzL3dpbmRvdy1vbmVycm9yNi1leHBlY3RlZC50eHQgYi9MYXlv
dXRUZXN0cy9mYXN0L2V2ZW50cy93aW5kb3ctb25lcnJvcjYtZXhwZWN0ZWQudHh0Cm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLmU3YzI3YmI3NzUyMTFiNTEwMDEyNzY1MzY5ZGMwZTEzOTM0MjkwOTAKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy93aW5kb3ctb25lcnJvcjYtZXhwZWN0ZWQu
dHh0CkBAIC0wLDAgKzEsNCBAQAorVGVzdCB0aGF0IHN5bnRheCBlcnJvciB3aWxsIGJlIHJlcG9y
dGVkIHRvIHRoZSB3aW5kb3cub25lcnJvciBoYW5kbGVyLiBCdWcgODUxOS4KKworTWFpbiBmcmFt
ZSB3aW5kb3cub25lcnJvcjogU3ludGF4RXJyb3I6IFBhcnNlIGVycm9yIGF0IHdpbmRvdy1vbmVy
cm9yNi5odG1sOjIyCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3dpbmRv
dy1vbmVycm9yNi5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvd2luZG93LW9uZXJyb3I2
Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uMTk3ODQzNjg5NzMyNDExMzhhOWU2MGI3YjQ1NmQ1MWUzMGIxYWU0
MAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3dpbmRvdy1vbmVy
cm9yNi5odG1sCkBAIC0wLDAgKzEsMjYgQEAKKzxodG1sPgorPGJvZHk+Cis8cD5UZXN0IHRoYXQg
c3ludGF4IGVycm9yIHdpbGwgYmUgcmVwb3J0ZWQgdG8gdGhlIHdpbmRvdy5vbmVycm9yIGhhbmRs
ZXIuIDxhIGhyZWY9Imh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04NTE5
Ij5CdWcgODUxOTwvYT4uPC9wPgorPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+Cis8c2NyaXB0Pgor
aWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKKyAgICBsYXlvdXRUZXN0Q29udHJvbGxl
ci5kdW1wQXNUZXh0KCk7CisKK2Z1bmN0aW9uIGxvZyhtc2cpIHsKKyAgICBkb2N1bWVudC5nZXRF
bGVtZW50QnlJZCgiY29uc29sZSIpLmlubmVySFRNTCArPSBtc2cgKyAiPGJyPiI7Cit9CisKK3dp
bmRvdy5vbmVycm9yID0gZnVuY3Rpb24obXNnLCB1cmwsIGxpbmUpCit7CisgICAgdXJsID0gdXJs
ID8gdXJsLm1hdGNoKCAvW15cL10rXC8/JC8gKVswXSA6IHVybDsKKyAgICBsb2coIk1haW4gZnJh
bWUgd2luZG93Lm9uZXJyb3I6ICIgKyBtc2cgKyAiIGF0ICIgKyB1cmwgKyAiOiIgKyBsaW5lKTsK
KyAgICByZXR1cm4gZmFsc2U7Cit9Cis8L3NjcmlwdD4KKzxzY3JpcHQ+CisKK2EpIC8vIHN5bnRh
eCBlcnJvcgorCis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2Zhc3QvZXZlbnRzL3dpbmRvdy1vbmVycm9yNy1leHBlY3RlZC50eHQgYi9MYXlvdXRU
ZXN0cy9mYXN0L2V2ZW50cy93aW5kb3ctb25lcnJvcjctZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LjVkMjJlN2U3NTU2OGEyNDk1OWNiZTYzZDlmYWFlMTRmZGFiY2YzNjAKLS0tIC9kZXYvbnVsbAor
KysgYi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy93aW5kb3ctb25lcnJvcjctZXhwZWN0ZWQudHh0
CkBAIC0wLDAgKzEsNiBAQAorQ09OU09MRSBNRVNTQUdFOiBsaW5lIDIwOiBFcnJvcjogT3JpZ2lu
YWwgZXJyb3IKK0NPTlNPTEUgTUVTU0FHRTogbGluZSAxNzogRXJyb3I6IE5lc3RlZCBlcnJvcgor
VGVzdCB0aGF0IGV4Y2VwdGlvbiBpbiB3aW5kb3cub25lcnJvciB3b24ndCBsZWFkIHRvIHJlY3Vy
c2l2ZSB3aW5kb3cub25lcnJvciBjYWxsLiBCdWcgODUxOS4KKworTWFpbiBmcmFtZSB3aW5kb3cu
b25lcnJvcjogRXJyb3I6IE9yaWdpbmFsIGVycm9yIGF0IHdpbmRvdy1vbmVycm9yNy5odG1sOjIw
CisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3dpbmRvdy1vbmVycm9yNy5o
dG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvd2luZG93LW9uZXJyb3I3Lmh0bWwKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uZjY2NTY4NjZjYzE2YzgzZmVhMTg2NjNjMDg3MGYzNmVjMDhiY2NhNAotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3dpbmRvdy1vbmVycm9yNy5odG1sCkBA
IC0wLDAgKzEsMjQgQEAKKzxodG1sPgorPGJvZHk+Cis8cD5UZXN0IHRoYXQgZXhjZXB0aW9uIGlu
IHdpbmRvdy5vbmVycm9yIHdvbid0IGxlYWQgdG8gcmVjdXJzaXZlIHdpbmRvdy5vbmVycm9yIGNh
bGwuIDxhIGhyZWY9Imh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04NTE5
Ij5CdWcgODUxOTwvYT4uPC9wPgorPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+Cis8c2NyaXB0Pgor
aWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKKyAgICBsYXlvdXRUZXN0Q29udHJvbGxl
ci5kdW1wQXNUZXh0KCk7CisKK2Z1bmN0aW9uIGxvZyhtc2cpIHsKKyAgICBkb2N1bWVudC5nZXRF
bGVtZW50QnlJZCgiY29uc29sZSIpLmlubmVySFRNTCArPSBtc2cgKyAiPGJyPiI7Cit9CisKK3dp
bmRvdy5vbmVycm9yID0gZnVuY3Rpb24obXNnLCB1cmwsIGxpbmUpCit7CisgICAgdXJsID0gdXJs
ID8gdXJsLm1hdGNoKCAvW15cL10rXC8/JC8gKVswXSA6IHVybDsKKyAgICBsb2coIk1haW4gZnJh
bWUgd2luZG93Lm9uZXJyb3I6ICIgKyBtc2cgKyAiIGF0ICIgKyB1cmwgKyAiOiIgKyBsaW5lKTsK
KyAgICB0aHJvdyBuZXcgRXJyb3IoIk5lc3RlZCBlcnJvciIpOworfQorCit0aHJvdyBuZXcgRXJy
b3IoIk9yaWdpbmFsIGVycm9yIik7CisKKzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvd2luZG93LW9uZXJyb3I4LWV4cGVjdGVk
LnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3dpbmRvdy1vbmVycm9yOC1leHBlY3RlZC50
eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uZWZjNjMwOGQ4Mjk1ZjU1MzhmMzhkNmYzOGYwYjU0NmYzODhhNmE0OAot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3dpbmRvdy1vbmVycm9y
OC1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw1IEBACitUZXN0IHRoYXQgd2luZG93Lm9uZXJyb3Ig
aXMgY2FsbGVkIG9uIHdpbmRvdyBvYmplY3QuIEJ1ZyA4NTE5LgorCitNYWluIGZyYW1lIHdpbmRv
dy5vbmVycm9yOiAyMDEwIGF0IHVuZGVmaW5lZDowCitQQVNTRUQ6IHRoaXMgPT09IHdpbmRvdwor
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy93aW5kb3ctb25lcnJvcjguaHRt
bCBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3dpbmRvdy1vbmVycm9yOC5odG1sCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLmJhZGU1Mzg4NmYyZmQ3Mzk5NTZiNjEwOTQ2NzczMThhNWEyMWE4ODkKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy93aW5kb3ctb25lcnJvcjguaHRtbApAQCAt
MCwwICsxLDI4IEBACis8aHRtbD4KKzxib2R5PgorPHA+VGVzdCB0aGF0IHdpbmRvdy5vbmVycm9y
IGlzIGNhbGxlZCBvbiB3aW5kb3cgb2JqZWN0LiA8YSBocmVmPSJodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODUxOSI+QnVnIDg1MTk8L2E+LjwvcD4KKzxkaXYgaWQ9ImNv
bnNvbGUiPjwvZGl2PgorPHNjcmlwdD4KK2lmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIp
CisgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOworCitmdW5jdGlvbiBsb2co
bXNnKSB7CisgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNvbnNvbGUiKS5pbm5lckhUTUwg
Kz0gbXNnICsgIjxicj4iOworfQorCit3aW5kb3cub25lcnJvciA9IGZ1bmN0aW9uKG1zZywgdXJs
LCBsaW5lKQoreworICAgIHVybCA9IHVybCA/IHVybC5tYXRjaCggL1teXC9dK1wvPyQvIClbMF0g
OiB1cmw7CisgICAgbG9nKCJNYWluIGZyYW1lIHdpbmRvdy5vbmVycm9yOiAiICsgbXNnICsgIiBh
dCAiICsgdXJsICsgIjoiICsgbGluZSk7CisgICAgaWYgKHRoaXMgPT09IHdpbmRvdykgCisgICAg
ICAgIGxvZygiUEFTU0VEOiB0aGlzID09PSB3aW5kb3ciKTsKKyAgICBlbHNlCisgICAgICAgIGxv
ZygiRkFJTEVEOiB0aGlzID09PSB3aW5kb3ciKTsKKyAgICByZXR1cm4gZmFsc2U7Cit9CisKK3Ro
cm93IDIwMTA7CisKKzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvZmFzdC9ldmVudHMvd2luZG93LW9uZXJyb3I5LWV4cGVjdGVkLnR4dCBiL0xheW91
dFRlc3RzL2Zhc3QvZXZlbnRzL3dpbmRvdy1vbmVycm9yOS1leHBlY3RlZC50eHQKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uOTQzMTZkM2YxMDdlOWNiNGY0OTk5NDhiMTlmZDllMmU0YWUzZGFkNgotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3dpbmRvdy1vbmVycm9yOS1leHBlY3RlZC50
eHQKQEAgLTAsMCArMSw4IEBACitUZXN0IHRoYXQgd2hlbiB3aW5kb3cub25lcnJvciBoYW5kbGVy
IGlzIGNhbGxlZCwgd2luZG93LmV2ZW50IGlzIHRoZSBjb3JyZXNwb25kaW5nIEVycm9yRXZlbnQg
b2JqZWN0LiBCdWcgODUxOS4KKworTWFpbiBmcmFtZSB3aW5kb3cub25lcnJvcjogRXJyb3I6IDIw
MTAgYXQgd2luZG93LW9uZXJyb3I5Lmh0bWw6MzEKK3dpbmRvdy5ldmVudC50eXBlID0gZXJyb3IK
K3dpbmRvdy5ldmVudC5tZXNzYWdlID0gRXJyb3I6IDIwMTAKK3dpbmRvdy5ldmVudC5maWxlbmFt
ZSA9IHdpbmRvdy1vbmVycm9yOS5odG1sCit3aW5kb3cuZXZlbnQubGluZW5vID0gMzEKKwpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvd2luZG93LW9uZXJyb3I5Lmh0bWwgYi9M
YXlvdXRUZXN0cy9mYXN0L2V2ZW50cy93aW5kb3ctb25lcnJvcjkuaHRtbApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4x
MDg2YWNlOWM3YWQ3NjI5ZTcxMGEyNGJkYmI5ZjVjOTMxNDViOTU0Ci0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvd2luZG93LW9uZXJyb3I5Lmh0bWwKQEAgLTAsMCAr
MSwzNSBAQAorPGh0bWw+Cis8Ym9keT4KKzxwPlRlc3QgdGhhdCB3aGVuIHdpbmRvdy5vbmVycm9y
IGhhbmRsZXIgaXMgY2FsbGVkLCB3aW5kb3cuZXZlbnQgaXMgdGhlIGNvcnJlc3BvbmRpbmcgRXJy
b3JFdmVudCBvYmplY3QuIDxhIGhyZWY9Imh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD04NTE5Ij5CdWcgODUxOTwvYT4uPC9wPgorPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+
Cis8c2NyaXB0PgoraWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikgeworICAgIGxheW91
dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKKyAgICBsYXlvdXRUZXN0Q29udHJvbGxlci53
YWl0VW50aWxEb25lKCk7Cit9CisKK2Z1bmN0aW9uIGxvZyhtc2cpIHsKKyAgICBkb2N1bWVudC5n
ZXRFbGVtZW50QnlJZCgiY29uc29sZSIpLmlubmVySFRNTCArPSBtc2cgKyAiPGJyPiI7Cit9CisK
K2Z1bmN0aW9uIGxhc3RQYXRoQ29tcG9uZW50KHVybCkgeworICAgIHJldHVybiB1cmwgPyB1cmwu
bWF0Y2goIC9bXlwvXStcLz8kLyApWzBdIDogdXJsOworfQorCit3aW5kb3cub25lcnJvciA9IGZ1
bmN0aW9uKG1zZywgdXJsLCBsaW5lKQoreworICAgIGxvZygiTWFpbiBmcmFtZSB3aW5kb3cub25l
cnJvcjogIiArIG1zZyArICIgYXQgIiArIGxhc3RQYXRoQ29tcG9uZW50KHVybCkgKyAiOiIgKyBs
aW5lKTsKKyAgICBsb2coIndpbmRvdy5ldmVudC50eXBlID0gIiArIHdpbmRvdy5ldmVudC50eXBl
KTsKKyAgICBsb2coIndpbmRvdy5ldmVudC5tZXNzYWdlID0gIiArIHdpbmRvdy5ldmVudC5tZXNz
YWdlKTsKKyAgICBsb2coIndpbmRvdy5ldmVudC5maWxlbmFtZSA9ICIgKyBsYXN0UGF0aENvbXBv
bmVudCh3aW5kb3cuZXZlbnQuZmlsZW5hbWUpKTsKKyAgICBsb2coIndpbmRvdy5ldmVudC5saW5l
bm8gPSAiICsgd2luZG93LmV2ZW50LmxpbmVubyk7CisgICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0
Q29udHJvbGxlcikKKyAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIubm90aWZ5RG9uZSgpOwor
ICAgIHJldHVybiBmYWxzZTsKK30KKwordGhyb3cgbmV3IEVycm9yKDIwMTApOworCis8L3Njcmlw
dD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3Qvd29ya2Vy
cy93b3JrZXItc2NyaXB0LWVycm9yLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3Qvd29y
a2Vycy93b3JrZXItc2NyaXB0LWVycm9yLWV4cGVjdGVkLnR4dAppbmRleCAxMGFiMDQ5M2FiNDdh
MjQyY2E2ZDczZmNmMDRiYWYzODZlNGY0NWY3Li40MDQxNjQwODllODI0YTkwZTQwZGU5MmM3ZTEy
NDk1MDFiNzg4NzE5IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L3dvcmtlcnMvd29ya2Vy
LXNjcmlwdC1lcnJvci1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC93b3JrZXJz
L3dvcmtlci1zY3JpcHQtZXJyb3ItZXhwZWN0ZWQudHh0CkBAIC00LDggKzQsOCBAQCBUZXN0IFdv
cmtlciBzY3JpcHQgZXJyb3IgaGFuZGxpbmcgZnVuY3Rpb25hbGl0eS4gU2hvdWxkIHByaW50IGEg
c2VyaWVzIG9mIFBBU1MgbQogUEFTUzogb25lcnJvciBpbnZva2VkIGZvciBhIHNjcmlwdCB0aGF0
IGhhcyBpbnZhbGlkIHN5bnRheC4KIFBBU1M6IG9uZXJyb3IgaW52b2tlZCBmb3IgYSBzY3JpcHQg
dGhhdCBoYXMgc2NyaXB0IGVycm9yICdSZWZlcmVuY2VFcnJvcjogQ2FuJ3QgZmluZCB2YXJpYWJs
ZTogZm9vJyBhdCBsaW5lIDEuCiBQQVNTOiBldmVudCBsaXN0ZW5lciBpbnZva2VkIGZvciBhIHNj
cmlwdCB0aGF0IGhhcyBzY3JpcHQgZXJyb3IgJ1JlZmVyZW5jZUVycm9yOiBDYW4ndCBmaW5kIHZh
cmlhYmxlOiBmb28nIGF0IGxpbmUgMS4KLVBBU1M6IG9uZXJyb3IgaW52b2tlZCBmb3IgYSBzY3Jp
cHQgdGhhdCBoYXMgc2NyaXB0IGVycm9yICdSZWZlcmVuY2VFcnJvcjogQ2FuJ3QgZmluZCB2YXJp
YWJsZTogYmFyJyBhdCBsaW5lIDMuCiBQQVNTOiBvbmVycm9yIGludm9rZWQgZm9yIGEgc2NyaXB0
IHRoYXQgaGFzIHNjcmlwdCBlcnJvciAnUmVmZXJlbmNlRXJyb3I6IENhbid0IGZpbmQgdmFyaWFi
bGU6IGZvbycgYXQgbGluZSA3LgorUEFTUzogb25lcnJvciBpbnZva2VkIGZvciBhIHNjcmlwdCB0
aGF0IGhhcyBzY3JpcHQgZXJyb3IgJ1JlZmVyZW5jZUVycm9yOiBDYW4ndCBmaW5kIHZhcmlhYmxl
OiBiYXInIGF0IGxpbmUgMy4KIFBBU1M6IG9uZXJyb3IgaW52b2tlZCBmb3IgYSBzY3JpcHQgdGhh
dCBoYXMgc2NyaXB0IGVycm9yICdSZWZlcmVuY2VFcnJvcjogQ2FuJ3QgZmluZCB2YXJpYWJsZTog
Zm9vJyBhdCBsaW5lIDcuCiBQQVNTOiBvbmVycm9yIGludm9rZWQgZm9yIGEgc2NyaXB0IHRoYXQg
aGFzIHNjcmlwdCBlcnJvciAnUmVmZXJlbmNlRXJyb3I6IENhbid0IGZpbmQgdmFyaWFibGU6IGZv
bycgYXQgbGluZSA3LgogUEFTUzogbWVzc2FnZSByZWNlaXZlZCBmcm9tIFdvcmtlckdsb2JhbFNj
b3BlLm9uZXJyb3I6IG9uZXJyb3IgaW52b2tlZCBmb3IgYSBzY3JpcHQgdGhhdCBoYXMgc2NyaXB0
IGVycm9yICdSZWZlcmVuY2VFcnJvcjogQ2FuJ3QgZmluZCB2YXJpYWJsZTogZm9vJyBhdCBsaW5l
IDcuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9yZXNvdXJj
ZS1jb250ZW50LWxlbmd0aC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2lu
c3BlY3Rvci9yZXNvdXJjZS1jb250ZW50LWxlbmd0aC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
MDE5MDFkMzU1ZjY4YzdkMGVlZGQ0OTZkNjQ1ZGMxNTQxODZlN2Y4ZgotLS0gL2Rldi9udWxsCisr
KyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL3Jlc291cmNlLWNvbnRlbnQtbGVu
Z3RoLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDEyIEBACitUZXN0cyB0aGF0IHJlc291cmNlcyBw
YW5lbCBzaG93cyBmb3JtIGRhdGEgcGFyYW1ldGVycy4KKworCitSZXNvdXJjZSB0cmFja2luZyBz
dGF0ZTogZmFsc2UKK1BhZ2UgcmVsb2FkZWQuCitQYWdlIHJlbG9hZGVkLgorU2l6ZSBvZiBodHRw
Oi8vMTI3LjAuMC4xOjgwMDAvaW5zcGVjdG9yL3Jlc291cmNlLWNvbnRlbnQtbGVuZ3RoLmh0bWwg
aXMgMTAwOQorU2l6ZSBvZiBodHRwOi8vMTI3LjAuMC4xOjgwMDAvaW5zcGVjdG9yL2luc3BlY3Rv
ci10ZXN0Mi5qcyBpcyAwCitTaXplIG9mIGh0dHA6Ly8xMjcuMC4wLjE6ODAwMC9pbnNwZWN0b3Iv
cmVzb3VyY2UtdGVzdHMyLmpzIGlzIDM0MAorU2l6ZSBvZiBodHRwOi8vMTI3LjAuMC4xOjgwMDAv
aW5zcGVjdG9yL3Jlc291cmNlcy9pbWFnZS5wbmcgaXMgMAorRE9ORS4KKwpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3IvcmVzb3VyY2VzL2ltYWdlLmh0bWwgYi9M
YXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9yZXNvdXJjZXMvaW1hZ2UuaHRtbApuZXcg
ZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi5mZmZkYWExZGQ4NGJlOGFjZmRlOTdjOWYwM2M4OGM2ZWJhZWZlNDlhCi0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3IvcmVzb3VyY2VzL2lt
YWdlLmh0bWwKQEAgLTAsMCArMSw3IEBACis8aHRtbD4KKzxoZWFkPgorPC9oZWFkPgorPGJvZHk+
Cis8aW1nIHNyYz0iaW1hZ2UucG5nIiBhbHQ9IkEgc2NyZWVuc2hvdCIgLz4KKzwvYm9keT4KKzwv
aHRtbD4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9odHRwL3Rlc3RzL3NlY3VyaXR5L3Jlc291cmNlcy9vbmVycm9yLWlmcmFtZS5odG1sIGIvTGF5
b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9yZXNvdXJjZXMvb25lcnJvci1pZnJhbWUuaHRt
bApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi4zMTJmZDEyZDNhZDgxMDJhNWZlMWI1MTcwM2VjM2NiMDAxYTc0ZmM4Ci0t
LSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9yZXNvdXJj
ZXMvb25lcnJvci1pZnJhbWUuaHRtbApAQCAtMCwwICsxLDExIEBACis8c2NyaXB0PgorZnVuY3Rp
b24gaGFuZGxlTG9hZCgpCit7CisgICAgd2luZG93LnBhcmVudC5wb3N0TWVzc2FnZSgiSUZyYW1l
TG9hZGVkIiwgIioiKTsKK30KKwordGhyb3cgIklmcmFtZUV4Y2VwdGlvbiI7CisKKzwvc2NyaXB0
PgorPGJvZHkgb25sb2FkPSJoYW5kbGVMb2FkKCkiPgorPC9ib2R5PgpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS93aW5kb3ctb25lcnJvci1leGNlcHRpb24taW4t
aWZyYW1lLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvd2lu
ZG93LW9uZXJyb3ItZXhjZXB0aW9uLWluLWlmcmFtZS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
OGIxN2Q5MjI4MWNmNWYxMDQxZjhkOTU3YjQ2MzY1MjAyNmFjMTdlYgotLS0gL2Rldi9udWxsCisr
KyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvd2luZG93LW9uZXJyb3ItZXhjZXB0
aW9uLWluLWlmcmFtZS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw2IEBACitDT05TT0xFIE1FU1NB
R0U6IGxpbmUgMDogSWZyYW1lRXhjZXB0aW9uCitUZXN0IHRoYXQgZXhjZXB0aW9ucyBpbiBpZnJh
bWUgYXJlIG5vdCByZXBvcnRlZCB0byB0aGUgbWFpbiBmcmFtZSB3aW5kb3cub25lcnJvciBoYW5k
bGVyLiB3aW5kb3cub25lcnJvciBzaG91bGQgcHJpbnQgZXhhY3RseSBvbmUgbGluZS4KKworTWFp
biBmcmFtZSB3aW5kb3cub25lcnJvcjogTWFpbkZyYW1lRXhjZXB0aW9uIGF0IHVuZGVmaW5lZDow
CitET05FCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvd2lu
ZG93LW9uZXJyb3ItZXhjZXB0aW9uLWluLWlmcmFtZS5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy9zZWN1cml0eS93aW5kb3ctb25lcnJvci1leGNlcHRpb24taW4taWZyYW1lLmh0bWwKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uMDkwNGUzOTUyYjhhYTE5OWExYzNkNDVlYzYyNTg4MzkzNzMyY2ExYgotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvd2luZG93LW9uZXJy
b3ItZXhjZXB0aW9uLWluLWlmcmFtZS5odG1sCkBAIC0wLDAgKzEsMzkgQEAKKzxodG1sPgorPGJv
ZHk+Cis8cD5UZXN0IHRoYXQgZXhjZXB0aW9ucyBpbiBpZnJhbWUgYXJlIG5vdCByZXBvcnRlZCB0
byB0aGUgbWFpbiBmcmFtZSB3aW5kb3cub25lcnJvciBoYW5kbGVyLgord2luZG93Lm9uZXJyb3Ig
c2hvdWxkIHByaW50IGV4YWN0bHkgb25lIGxpbmUuPC9wPgorPGRpdiBpZD0icmVzdWx0Ij48L2Rp
dj4KKzxzY3JpcHQ+CitpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKSB7CisgICAgbGF5
b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOworICAgIGxheW91dFRlc3RDb250cm9sbGVy
LndhaXRVbnRpbERvbmUoKTsKK30KKworZnVuY3Rpb24gbG9nKG1zZykgeworICAgIGRvY3VtZW50
LmdldEVsZW1lbnRCeUlkKCJyZXN1bHQiKS5pbm5lckhUTUwgKz0gbXNnICsgIjxicj4iOworfQor
Cit3aW5kb3cub25lcnJvciA9IGZ1bmN0aW9uKG1zZywgdXJsLCBsaW5lKQoreworICAgIHVybCA9
IHVybCA/IHVybC5tYXRjaCggL1teXC9dK1wvPyQvIClbMF0gOiB1cmw7CisgICAgbG9nKCJNYWlu
IGZyYW1lIHdpbmRvdy5vbmVycm9yOiAiICsgbXNnICsgIiBhdCAiICsgdXJsICsgIjoiICsgbGlu
ZSk7CisgICAgcmV0dXJuIGZhbHNlOworfQorCitmdW5jdGlvbiByZWNlaXZlTWVzc2FnZShldmVu
dCkgeworICAgIGlmIChldmVudC5kYXRhID09PSAiSUZyYW1lTG9hZGVkIikgeworICAgICAgICBs
b2coIkRPTkUiKTsKKyAgICAgICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKKyAg
ICAgICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLm5vdGlmeURvbmUoKTsKKyAgICB9IGVsc2UK
KyAgICAgICAgbG9nKCJGQUlMICIgKyBldmVudC5kYXRhKTsKK30KKword2luZG93LmFkZEV2ZW50
TGlzdGVuZXIoIm1lc3NhZ2UiLCByZWNlaXZlTWVzc2FnZSwgZmFsc2UpOworCit0aHJvdyAiTWFp
bkZyYW1lRXhjZXB0aW9uIjsKKworPC9zY3JpcHQ+Cis8aWZyYW1lIHNyYz0iaHR0cDovL2xvY2Fs
aG9zdDo4MDAwL3NlY3VyaXR5L3Jlc291cmNlcy9vbmVycm9yLWlmcmFtZS5odG1sIi8+Cis8L2Jv
ZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS13
aW4vZmFzdC93b3JrZXJzL3dvcmtlci1zY3JpcHQtZXJyb3ItZXhwZWN0ZWQudHh0IGIvTGF5b3V0
VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0td2luL2Zhc3Qvd29ya2Vycy93b3JrZXItc2NyaXB0LWVy
cm9yLWV4cGVjdGVkLnR4dAppbmRleCBmZGY2NjBiZDUwYzY2N2Q0MzBmMTY1YTdmYTgzNzQwMTY0
MWExY2ExLi5lZjBhMzkxZTQ3ODdiMzNiYmJiMGQ5ZjcwNjAzODQ5M2ZlMzE4MTI5IDEwMDY0NAot
LS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS13aW4vZmFzdC93b3JrZXJzL3dvcmtl
ci1zY3JpcHQtZXJyb3ItZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2No
cm9taXVtLXdpbi9mYXN0L3dvcmtlcnMvd29ya2VyLXNjcmlwdC1lcnJvci1leHBlY3RlZC50eHQK
QEAgLTMsOCArMyw4IEBAIFRlc3QgV29ya2VyIHNjcmlwdCBlcnJvciBoYW5kbGluZyBmdW5jdGlv
bmFsaXR5LiBTaG91bGQgcHJpbnQgYSBzZXJpZXMgb2YgUEFTUyBtCiBQQVNTOiBvbmVycm9yIGlu
dm9rZWQgZm9yIGEgc2NyaXB0IHRoYXQgaGFzIGludmFsaWQgc3ludGF4LgogUEFTUzogb25lcnJv
ciBpbnZva2VkIGZvciBhIHNjcmlwdCB0aGF0IGhhcyBzY3JpcHQgZXJyb3IgJ1VuY2F1Z2h0IFJl
ZmVyZW5jZUVycm9yOiBmb28gaXMgbm90IGRlZmluZWQnIGF0IGxpbmUgMS4KIFBBU1M6IGV2ZW50
IGxpc3RlbmVyIGludm9rZWQgZm9yIGEgc2NyaXB0IHRoYXQgaGFzIHNjcmlwdCBlcnJvciAnVW5j
YXVnaHQgUmVmZXJlbmNlRXJyb3I6IGZvbyBpcyBub3QgZGVmaW5lZCcgYXQgbGluZSAxLgotUEFT
Uzogb25lcnJvciBpbnZva2VkIGZvciBhIHNjcmlwdCB0aGF0IGhhcyBzY3JpcHQgZXJyb3IgJ1Vu
Y2F1Z2h0IFJlZmVyZW5jZUVycm9yOiBiYXIgaXMgbm90IGRlZmluZWQnIGF0IGxpbmUgMy4KIFBB
U1M6IG9uZXJyb3IgaW52b2tlZCBmb3IgYSBzY3JpcHQgdGhhdCBoYXMgc2NyaXB0IGVycm9yICdV
bmNhdWdodCBSZWZlcmVuY2VFcnJvcjogZm9vIGlzIG5vdCBkZWZpbmVkJyBhdCBsaW5lIDcuCitQ
QVNTOiBvbmVycm9yIGludm9rZWQgZm9yIGEgc2NyaXB0IHRoYXQgaGFzIHNjcmlwdCBlcnJvciAn
VW5jYXVnaHQgUmVmZXJlbmNlRXJyb3I6IGJhciBpcyBub3QgZGVmaW5lZCcgYXQgbGluZSAzLgog
UEFTUzogb25lcnJvciBpbnZva2VkIGZvciBhIHNjcmlwdCB0aGF0IGhhcyBzY3JpcHQgZXJyb3Ig
J1VuY2F1Z2h0IFJlZmVyZW5jZUVycm9yOiBmb28gaXMgbm90IGRlZmluZWQnIGF0IGxpbmUgNy4K
IFBBU1M6IG9uZXJyb3IgaW52b2tlZCBmb3IgYSBzY3JpcHQgdGhhdCBoYXMgc2NyaXB0IGVycm9y
ICdVbmNhdWdodCBSZWZlcmVuY2VFcnJvcjogZm9vIGlzIG5vdCBkZWZpbmVkJyBhdCBsaW5lIDcu
CiBQQVNTOiBtZXNzYWdlIHJlY2VpdmVkIGZyb20gV29ya2VyR2xvYmFsU2NvcGUub25lcnJvcjog
b25lcnJvciBpbnZva2VkIGZvciBhIHNjcmlwdCB0aGF0IGhhcyBzY3JpcHQgZXJyb3IgJ1VuY2F1
Z2h0IFJlZmVyZW5jZUVycm9yOiBmb28gaXMgbm90IGRlZmluZWQnIGF0IGxpbmUgNy4KZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL2Zhc3QvZXZlbnRzL3dpbmRvdy1v
bmVycm9yMS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS9mYXN0
L2V2ZW50cy93aW5kb3ctb25lcnJvcjEtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjBjNjBjZDNk
NDljZDExNDBkYTU1YWUxNzA2Yzg2ZmM5M2NmOTFkMWQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS9mYXN0L2V2ZW50cy93aW5kb3ctb25lcnJvcjEtZXhw
ZWN0ZWQudHh0CkBAIC0wLDAgKzEsMyBAQAorVGhpcyBwYWdlIHRlc3RzIHNldHRpbmcgb25lcnJv
ciBoYW5kbGVycyB0aHJvdWdoIHRoZSBET00uIElmIGl0IHBhc3NlcywgeW91IHdpbGwgc2VlICJQ
QVNTIiBtZXNzYWdlcyBiZWxvdy5CdWcgODUxOS4NDQorDQ0KK1BBU1M6IGNhdWdodCBnbG9iYWwg
ZXJyb3I6IFVuY2F1Z2h0IFJlZmVyZW5jZUVycm9yOiBoYWhhaGFfZ29vZF9sdWNrX2ZpbmRpbmdf
bWUgaXMgbm90IGRlZmluZWQgYXQgd2luZG93LW9uZXJyb3IxLmh0bWw6MjUNDQpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vZmFzdC9ldmVudHMvd2luZG93LW9uZXJy
b3IxMC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS9mYXN0L2V2
ZW50cy93aW5kb3ctb25lcnJvcjEwLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45YWQ0M2Q0ZWIx
N2E0ZGNmNTE2MDU4NDdiMzZmNTkzMGIxNWQ4MzY1Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0
VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vZmFzdC9ldmVudHMvd2luZG93LW9uZXJyb3IxMC1leHBl
Y3RlZC50eHQKQEAgLTAsMCArMSwxMSBAQAorVGVzdCB0aGF0ICJlcnJvciIgZXZlbnQgbGlzdGVu
ZXIgYWRkZWQgd2l0aCB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lciBpcyBpbnZva2VkIGZvciB1bmNh
dWNodCBleGNlcHRpb25zLiBCdWcgODUxOS4NDQorDQ0KK2V2ZW50IHBhc3NlZCB0byB0aGUgbGlz
dGVuZXIgaXMgdGhlIHNhbWUgYXMgd2luZG93LmV2ZW50OiB0cnVlDQ0KK0V2ZW50IGRldGFpbHM6
DQ0KK3R5cGU6IGVycm9yDQ0KK3BoYXNlOiAyDQ0KK2N1cnJlbnRUYXJnZXQgaXMgdGhlIGdsb2Jh
bCBvYmplY3Q6IHRydWUNDQorbWVzc2FnZTogVW5jYXVnaHQgRXJyb3I6IE15IGZhdWx0Lg0NCitm
aWxlbmFtZTogd2luZG93LW9uZXJyb3IxMC5odG1sDQ0KK2xpbmVubzogMjkNDQorDQ0KZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL2Zhc3QvZXZlbnRzL3dpbmRvdy1v
bmVycm9yMTEtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vZmFz
dC9ldmVudHMvd2luZG93LW9uZXJyb3IxMS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNDMwMDQ0
YmQ2NjAyNjc5ZmY2YTZkZTI1ZjQ5ZmIwNzgyZGU1ZjYzOAotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL2Zhc3QvZXZlbnRzL3dpbmRvdy1vbmVycm9yMTEt
ZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNCBAQAorVGVzdCB0aGF0IHdpbmRvdy5vbmVycm9yIGlz
IGNhbGxlZCBvbiB3aW5kb3cgb2JqZWN0LiBCdWcgODUxOS4NDQorDQ0KK01haW4gZnJhbWUgd2lu
ZG93Lm9uZXJyb3I6IFVuY2F1Z2h0IEVycm9yOiBBbiBleGNlcHRpb24gYXQgd2luZG93LW9uZXJy
b3IuanM6Mg0NCisNDQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0v
ZmFzdC9ldmVudHMvd2luZG93LW9uZXJyb3IyLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3Bs
YXRmb3JtL2Nocm9taXVtL2Zhc3QvZXZlbnRzL3dpbmRvdy1vbmVycm9yMi1leHBlY3RlZC50eHQK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uOGI2YzE1Mzk5ZWQ0OTI1NTkzOTBkMGQ4YTFjMjkwMDBiNjIyZmE5MQotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL2Zhc3QvZXZlbnRz
L3dpbmRvdy1vbmVycm9yMi1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw2IEBACitUZXN0IHRoYXQg
dW5jYXVnaHQgZXhjZXB0aW9ucyB3aWxsIGJlIHJlcG9ydGVkIHRvIHRoZSB3aW5kb3cub25lcnJv
ciBoYW5kbGVyLiBCdWcgODUxOS4NDQorDQ0KK01haW4gZnJhbWUgd2luZG93Lm9uZXJyb3I6IFVu
Y2F1Z2h0IEVycm9yOiBJbmxpbmUgc2NyaXB0IGV4Y2VwdGlvbiBhdCB3aW5kb3ctb25lcnJvcjIu
aHRtbDozNQ0NCitNYWluIGZyYW1lIHdpbmRvdy5vbmVycm9yOiBVbmNhdWdodCBFeGNlcHRpb24g
aW4gb25sb2FkIGF0IHdpbmRvdy1vbmVycm9yMi5odG1sOjINDQorTWFpbiBmcmFtZSB3aW5kb3cu
b25lcnJvcjogVW5jYXVnaHQgRXJyb3I6IEV4Y2VwdGlvbiBpbiBzZXRUaW1lb3V0IGF0IHdpbmRv
dy1vbmVycm9yMi5odG1sOjI5DQ0KKw0NCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9y
bS9jaHJvbWl1bS9mYXN0L2V2ZW50cy93aW5kb3ctb25lcnJvcjMtZXhwZWN0ZWQudHh0IGIvTGF5
b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vZmFzdC9ldmVudHMvd2luZG93LW9uZXJyb3IzLWV4
cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jZDVlNzQ5OTZiMTdmYmMyMjk3YzcxNzRmYzUzYjlkNGJm
YjAxN2QyCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0v
ZmFzdC9ldmVudHMvd2luZG93LW9uZXJyb3IzLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDQgQEAK
K1lvdSBzaG91bGQgc2VlIGEgbWVzc2FnZSBpZiB3aW5kb3cub25lcnJvciBpcyB3b3JraW5nIHBy
b3Blcmx5IGZvciB0aGlzIHRlc3QuQnVnIDg1MTkuDQ0KKw0NCitFcnJvciBjYXVnaHQgc3VjY2Vz
c2Z1bGx5OiBVbmNhdWdodCBSZWZlcmVuY2VFcnJvcjogdW5rbm93bk9iamVjdCBpcyBub3QgZGVm
aW5lZCBGaWxlOiB3aW5kb3ctb25lcnJvcjMuaHRtbCBMaW5lOiAxNg0NCisNDQpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vZmFzdC9ldmVudHMvd2luZG93LW9uZXJy
b3I0LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL2Zhc3QvZXZl
bnRzL3dpbmRvdy1vbmVycm9yNC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNTdmMzcxZTg2MTky
MTQxMzg4NDVhN2E3OTcwYzJkZWFiZDA3YzBjNwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL3BsYXRmb3JtL2Nocm9taXVtL2Zhc3QvZXZlbnRzL3dpbmRvdy1vbmVycm9yNC1leHBlY3Rl
ZC50eHQKQEAgLTAsMCArMSw0IEBACitZb3Ugc2hvdWxkIHNlZSBhIGxvZyByZWNvcmQgaWYgd2lu
ZG93Lm9uZXJyb3IgaXMgd29ya2luZyBwcm9wZXJseSBmb3IgdGhpcyB0ZXN0LkJ1ZyA4NTE5Lg0N
CisNDQorRXJyb3IgY2F1Z2h0IHN1Y2Nlc3NmdWxseTogVW5jYXVnaHQgUmVmZXJlbmNlRXJyb3I6
IEludmFsaWQgbGVmdC1oYW5kIHNpZGUgaW4gYXNzaWdubWVudCBGaWxlOiB3aW5kb3ctb25lcnJv
cjQuaHRtbCBMaW5lOiAxDQ0KKw0NCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9j
aHJvbWl1bS9mYXN0L2V2ZW50cy93aW5kb3ctb25lcnJvcjUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0
VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vZmFzdC9ldmVudHMvd2luZG93LW9uZXJyb3I1LWV4cGVj
dGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi5iZTRiNDlhNzBlM2VmYTBiNzQ0ZjYwNDEwNjgwYzA5ZTkxOTM4
YjgyCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vZmFz
dC9ldmVudHMvd2luZG93LW9uZXJyb3I1LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDQgQEAKK1Rl
c3QgdGhhdCB3aW5kb3cub25lcnJvciBpcyBpbnZva2VkIGZvciBzeW50YXggZXJyb3IgaW4gZXZh
bC4gWW91IHNob3VsZCBzZWUgYSBsb2cgcmVjb3JkIGlmIHdpbmRvdy5vbmVycm9yIGlzIHdvcmtp
bmcgcHJvcGVybHkgZm9yIHRoaXMgdGVzdC5CdWcgODUxOS4NDQorDQ0KK0Vycm9yIGNhdWdodCBz
dWNjZXNzZnVsbHk6IFVuY2F1Z2h0IFN5bnRheEVycm9yOiBVbmV4cGVjdGVkIGVuZCBvZiBpbnB1
dCBGaWxlOiB3aW5kb3ctb25lcnJvcjUuaHRtbCBMaW5lOiAxDQ0KKw0NCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS9mYXN0L2V2ZW50cy93aW5kb3ctb25lcnJvcjYt
ZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vZmFzdC9ldmVudHMv
d2luZG93LW9uZXJyb3I2LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yYzgwMTAzYWIwNmQ1MmQx
NzliOGFiYzMyZGVlMDc2ZDQxODJhOWEzCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMv
cGxhdGZvcm0vY2hyb21pdW0vZmFzdC9ldmVudHMvd2luZG93LW9uZXJyb3I2LWV4cGVjdGVkLnR4
dApAQCAtMCwwICsxLDQgQEAKK1Rlc3QgdGhhdCBzeW50YXggZXJyb3Igd2lsbCBiZSByZXBvcnRl
ZCB0byB0aGUgd2luZG93Lm9uZXJyb3IgaGFuZGxlci4gQnVnIDg1MTkuDQ0KKw0NCitNYWluIGZy
YW1lIHdpbmRvdy5vbmVycm9yOiBVbmNhdWdodCBTeW50YXhFcnJvcjogVW5leHBlY3RlZCB0b2tl
biApIGF0IHdpbmRvdy1vbmVycm9yNi5odG1sOjIyDQ0KKw0NCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS9mYXN0L2V2ZW50cy93aW5kb3ctb25lcnJvcjctZXhwZWN0
ZWQudHh0IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vZmFzdC9ldmVudHMvd2luZG93
LW9uZXJyb3I3LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44MDRjNzZkNWU3ZTMyMzJiZDNkZGM5
NjI1MDdkMTllNDIwZGYzZmExCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZv
cm0vY2hyb21pdW0vZmFzdC9ldmVudHMvd2luZG93LW9uZXJyb3I3LWV4cGVjdGVkLnR4dApAQCAt
MCwwICsxLDYgQEAKK0NPTlNPTEUgTUVTU0FHRTogbGluZSAyMDogVW5jYXVnaHQgRXJyb3I6IE9y
aWdpbmFsIGVycm9yDQ0KK0NPTlNPTEUgTUVTU0FHRTogbGluZSAxNzogVW5jYXVnaHQgRXJyb3I6
IE5lc3RlZCBlcnJvcg0NCitUZXN0IHRoYXQgZXhjZXB0aW9uIGluIHdpbmRvdy5vbmVycm9yIHdv
bid0IGxlYWQgdG8gcmVjdXJzaXZlIHdpbmRvdy5vbmVycm9yIGNhbGwuIEJ1ZyA4NTE5Lg0NCisN
DQorTWFpbiBmcmFtZSB3aW5kb3cub25lcnJvcjogVW5jYXVnaHQgRXJyb3I6IE9yaWdpbmFsIGVy
cm9yIGF0IHdpbmRvdy1vbmVycm9yNy5odG1sOjIwDQ0KKw0NCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS9mYXN0L2V2ZW50cy93aW5kb3ctb25lcnJvcjgtZXhwZWN0
ZWQudHh0IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vZmFzdC9ldmVudHMvd2luZG93
LW9uZXJyb3I4LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jOWExZDJhZmVlOTgzMThiNjczN2Jj
NDY4NmJiYzk1YTc3MWM3YTE5Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZv
cm0vY2hyb21pdW0vZmFzdC9ldmVudHMvd2luZG93LW9uZXJyb3I4LWV4cGVjdGVkLnR4dApAQCAt
MCwwICsxLDUgQEAKK1Rlc3QgdGhhdCB3aW5kb3cub25lcnJvciBpcyBjYWxsZWQgb24gd2luZG93
IG9iamVjdC4gQnVnIDg1MTkuDQ0KKw0NCitNYWluIGZyYW1lIHdpbmRvdy5vbmVycm9yOiBVbmNh
dWdodCAyMDEwIGF0IHdpbmRvdy1vbmVycm9yOC5odG1sOjI0DQ0KK1BBU1NFRDogdGhpcyA9PT0g
d2luZG93DQ0KKw0NCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS9m
YXN0L2V2ZW50cy93aW5kb3ctb25lcnJvcjktZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvcGxh
dGZvcm0vY2hyb21pdW0vZmFzdC9ldmVudHMvd2luZG93LW9uZXJyb3I5LWV4cGVjdGVkLnR4dApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi42MTI3ODU2OTcwMmQxNGUzOTgyYTU4Njg1YTU3MjcyOWNmOWE4M2ViCi0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vZmFzdC9ldmVudHMv
d2luZG93LW9uZXJyb3I5LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDggQEAKK1Rlc3QgdGhhdCB3
aGVuIHdpbmRvdy5vbmVycm9yIGhhbmRsZXIgaXMgY2FsbGVkLCB3aW5kb3cuZXZlbnQgaXMgdGhl
IGNvcnJlc3BvbmRpbmcgRXJyb3JFdmVudCBvYmplY3QuIEJ1ZyA4NTE5Lg0NCisNDQorTWFpbiBm
cmFtZSB3aW5kb3cub25lcnJvcjogVW5jYXVnaHQgRXJyb3I6IDIwMTAgYXQgd2luZG93LW9uZXJy
b3I5Lmh0bWw6MzENDQord2luZG93LmV2ZW50LnR5cGUgPSBlcnJvcg0NCit3aW5kb3cuZXZlbnQu
bWVzc2FnZSA9IFVuY2F1Z2h0IEVycm9yOiAyMDEwDQ0KK3dpbmRvdy5ldmVudC5maWxlbmFtZSA9
IHdpbmRvdy1vbmVycm9yOS5odG1sDQ0KK3dpbmRvdy5ldmVudC5saW5lbm8gPSAzMQ0NCisNDQpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vaHR0cC90ZXN0cy9zZWN1
cml0eS93aW5kb3ctb25lcnJvci1leGNlcHRpb24taW4taWZyYW1lLWV4cGVjdGVkLnR4dCBiL0xh
eW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL2h0dHAvdGVzdHMvc2VjdXJpdHkvd2luZG93LW9u
ZXJyb3ItZXhjZXB0aW9uLWluLWlmcmFtZS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uODY2NWFi
MjQ4NGRjNGY4YmNjYzhhNTc1NjFmNDRjYmQ3OGIwNmE1ZQotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL2h0dHAvdGVzdHMvc2VjdXJpdHkvd2luZG93LW9u
ZXJyb3ItZXhjZXB0aW9uLWluLWlmcmFtZS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw2IEBACitD
T05TT0xFIE1FU1NBR0U6IGxpbmUgNzogVW5jYXVnaHQgSWZyYW1lRXhjZXB0aW9uDQ0KK1Rlc3Qg
dGhhdCBleGNlcHRpb25zIGluIGlmcmFtZSBhcmUgbm90IHJlcG9ydGVkIHRvIHRoZSBtYWluIGZy
YW1lIHdpbmRvdy5vbmVycm9yIGhhbmRsZXIuIHdpbmRvdy5vbmVycm9yIHNob3VsZCBwcmludCBl
eGFjdGx5IG9uZSBsaW5lLg0NCisNDQorTWFpbiBmcmFtZSB3aW5kb3cub25lcnJvcjogVW5jYXVn
aHQgTWFpbkZyYW1lRXhjZXB0aW9uIGF0IHdpbmRvdy1vbmVycm9yLWV4Y2VwdGlvbi1pbi1pZnJh
bWUuaHRtbDozNA0NCitET05FDQ0KKw0NCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9y
bS9jaHJvbWl1bS91c2Vyc2NyaXB0cy93aW5kb3ctb25lcnJvci1mb3ItaXNvbGF0ZWQtd29ybGQt
ZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vdXNlcnNjcmlwdHMv
d2luZG93LW9uZXJyb3ItZm9yLWlzb2xhdGVkLXdvcmxkLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li45ZjkwOTA5ZTUzZTA1ZjUyNTBkMzAyZTgxYmMyNTI1NjVlMTRkYjdjCi0tLSAvZGV2L251bGwK
KysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vdXNlcnNjcmlwdHMvd2luZG93LW9u
ZXJyb3ItZm9yLWlzb2xhdGVkLXdvcmxkLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDUgQEAKK0NP
TlNPTEUgTUVTU0FHRTogbGluZSAxOiBVbmNhdWdodCBFcnJvcjogRXJyb3IgaW4gdXNlciBzY3Jp
cHQNDQorSW4gdGhpcyB0ZXN0IHdpbmRvdy5vbmVycm9yIHNob3VsZCBiZSBpbnZva2VkIG9ubHkg
Zm9yIHVuY2F1Z2h0IGV4Y2VwdGlvbiBpbiB0aGUgbWFpbiB3b3JsZC4NDQorDQ0KK01haW4gZnJh
bWUgd2luZG93Lm9uZXJyb3I6IFVuY2F1Z2h0IEVycm9yOiBFcnJvciBpbiBtYWluIHdvcmxkIGF0
IHdpbmRvdy1vbmVycm9yLWZvci1pc29sYXRlZC13b3JsZC5odG1sOjI2DQ0KKw0NCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy91c2Vyc2NyaXB0cy93aW5kb3ctb25lcnJvci1mb3ItaXNvbGF0ZWQt
d29ybGQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvdXNlcnNjcmlwdHMvd2luZG93LW9uZXJy
b3ItZm9yLWlzb2xhdGVkLXdvcmxkLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iOGFmNjk1YmZh
N2Q4NGY3ZmFkZTJjMWMxODFhNWNjOGM1MTkyN2VkCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0
VGVzdHMvdXNlcnNjcmlwdHMvd2luZG93LW9uZXJyb3ItZm9yLWlzb2xhdGVkLXdvcmxkLWV4cGVj
dGVkLnR4dApAQCAtMCwwICsxLDUgQEAKK0NPTlNPTEUgTUVTU0FHRTogbGluZSAxOiBFcnJvcjog
RXJyb3IgaW4gdXNlciBzY3JpcHQKK0luIHRoaXMgdGVzdCB3aW5kb3cub25lcnJvciBzaG91bGQg
YmUgaW52b2tlZCBvbmx5IGZvciB1bmNhdWdodCBleGNlcHRpb24gaW4gdGhlIG1haW4gd29ybGQu
CisKK01haW4gZnJhbWUgd2luZG93Lm9uZXJyb3I6IEVycm9yOiBFcnJvciBpbiBtYWluIHdvcmxk
IGF0IHdpbmRvdy1vbmVycm9yLWZvci1pc29sYXRlZC13b3JsZC5odG1sOjI2CisKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL3VzZXJzY3JpcHRzL3dpbmRvdy1vbmVycm9yLWZvci1pc29sYXRlZC13
b3JsZC5odG1sIGIvTGF5b3V0VGVzdHMvdXNlcnNjcmlwdHMvd2luZG93LW9uZXJyb3ItZm9yLWlz
b2xhdGVkLXdvcmxkLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uODU2MjcxMzQyOGEwYzc1ZTdlNDdjMDkxZDdj
NWNhMjJiZGY0NTM1MwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3VzZXJzY3JpcHRz
L3dpbmRvdy1vbmVycm9yLWZvci1pc29sYXRlZC13b3JsZC5odG1sCkBAIC0wLDAgKzEsMzAgQEAK
KzwhRE9DVFlQRSBIVE1MPgorPGh0bWw+Cis8aGVhZD4KKzwvaGVhZD4KKzxib2R5PgorPHA+SW4g
dGhpcyB0ZXN0IHdpbmRvdy5vbmVycm9yIHNob3VsZCBiZSBpbnZva2VkIG9ubHkgZm9yIHVuY2F1
Z2h0IGV4Y2VwdGlvbiBpbiB0aGUgbWFpbiB3b3JsZC4KKzwvcD4KKzxkaXYgaWQ9ImNvbnNvbGUi
PjwvZGl2PgorPHNjcmlwdD4KK2lmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpIHsKKyAg
ICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7CisgICAgbGF5b3V0VGVzdENvbnRy
b2xsZXIuYWRkVXNlclNjcmlwdCgidGhyb3cgbmV3IEVycm9yKCdFcnJvciBpbiB1c2VyIHNjcmlw
dCcpOyIsIGZhbHNlLCB0cnVlKTsKK30KKworZnVuY3Rpb24gbG9nKG1zZykgeworICAgIGRvY3Vt
ZW50LmdldEVsZW1lbnRCeUlkKCJjb25zb2xlIikuaW5uZXJIVE1MICs9IG1zZyArICI8YnI+IjsK
K30KKword2luZG93Lm9uZXJyb3IgPSBmdW5jdGlvbihtc2csIHVybCwgbGluZSkKK3sKKyAgICB1
cmwgPSB1cmwgPyB1cmwubWF0Y2goIC9bXlwvXStcLz8kLyApWzBdIDogdXJsOworICAgIGxvZygi
TWFpbiBmcmFtZSB3aW5kb3cub25lcnJvcjogIiArIG1zZyArICIgYXQgIiArIHVybCArICI6IiAr
IGxpbmUpOworICAgIHJldHVybiBmYWxzZTsKK30KKwordGhyb3cgbmV3IEVycm9yKCJFcnJvciBp
biBtYWluIHdvcmxkIik7CisKKzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0
IGEvV2ViQ29yZS9BbmRyb2lkLmpzY2JpbmRpbmdzLm1rIGIvV2ViQ29yZS9BbmRyb2lkLmpzY2Jp
bmRpbmdzLm1rCmluZGV4IDA4MTYxMTM0OTlmMzM1MDU0NWRhMDFkY2U5ZmE5ODkwZDQ0OTA1OTcu
LmE0YjA5MmY3ZTU3YTllZDk3MzU2ZDJmNzA5ZTFhY2EwZDk5YzlkZjcgMTAwNjQ0Ci0tLSBhL1dl
YkNvcmUvQW5kcm9pZC5qc2NiaW5kaW5ncy5taworKysgYi9XZWJDb3JlL0FuZHJvaWQuanNjYmlu
ZGluZ3MubWsKQEAgLTk2LDYgKzk2LDcgQEAgTE9DQUxfU1JDX0ZJTEVTICs9IFwKIAliaW5kaW5n
cy9qcy9KU0RldmljZU9yaWVudGF0aW9uRXZlbnRDdXN0b20uY3BwIFwKIAliaW5kaW5ncy9qcy9K
U0RvY3VtZW50Q3VzdG9tLmNwcCBcCiAJYmluZGluZ3MvanMvSlNFbGVtZW50Q3VzdG9tLmNwcCBc
CisJYmluZGluZ3MvanMvSlNFcnJvckhhbmRsZXIuY3BwIFwKIAliaW5kaW5ncy9qcy9KU0V2ZW50
Q3VzdG9tLmNwcCBcCiAJYmluZGluZ3MvanMvSlNFdmVudExpc3RlbmVyLmNwcCBcCiAJYmluZGlu
Z3MvanMvSlNFdmVudFRhcmdldC5jcHAgXApAQCAtMTU2LDcgKzE1Nyw2IEBAIExPQ0FMX1NSQ19G
SUxFUyArPSBcCiAJYmluZGluZ3MvanMvSlNXZWJLaXRQb2ludEN1c3RvbS5jcHAgXAogCWJpbmRp
bmdzL2pzL0pTV29ya2VyQ29udGV4dEJhc2UuY3BwIFwKIAliaW5kaW5ncy9qcy9KU1dvcmtlckNv
bnRleHRDdXN0b20uY3BwIFwKLQliaW5kaW5ncy9qcy9KU1dvcmtlckNvbnRleHRFcnJvckhhbmRs
ZXIuY3BwIFwKIAliaW5kaW5ncy9qcy9KU1dvcmtlckN1c3RvbS5jcHAgXAogCWJpbmRpbmdzL2pz
L0pTWE1MSHR0cFJlcXVlc3RDdXN0b20uY3BwIFwKIAliaW5kaW5ncy9qcy9KU1hNTEh0dHBSZXF1
ZXN0VXBsb2FkQ3VzdG9tLmNwcCBcCmRpZmYgLS1naXQgYS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0
IGIvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAppbmRleCA0MTBkNTliYzFmNjQ1NzliNGM2YTNjNjU0
MDZmMDdjNzZhZjM3YWI3Li4yN2Y4MTcxMmFhMjc0ZmE2ZTc2ZmYyYTc4NGYwODk3MWVkOWFmNzUy
IDEwMDY0NAotLS0gYS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CisrKyBiL1dlYkNvcmUvQ01ha2VM
aXN0cy50eHQKQEAgLTYxMiw2ICs2MTIsNyBAQCBTRVQoV2ViQ29yZV9TT1VSQ0VTCiAgICAgYmlu
ZGluZ3MvanMvSlNET01XaW5kb3dTaGVsbC5jcHAKICAgICBiaW5kaW5ncy9qcy9KU0RPTVdyYXBw
ZXIuY3BwCiAgICAgYmluZGluZ3MvanMvSlNFbGVtZW50Q3VzdG9tLmNwcAorICAgIGJpbmRpbmdz
L2pzL0pTRXJyb3JIYW5kbGVyLmNwcAogICAgIGJpbmRpbmdzL2pzL0pTRXZlbnRDdXN0b20uY3Bw
CiAgICAgYmluZGluZ3MvanMvSlNFdmVudExpc3RlbmVyLmNwcAogICAgIGJpbmRpbmdzL2pzL0pT
RXZlbnRTb3VyY2VDdXN0b20uY3BwCkBAIC02NzUsNyArNjc2LDYgQEAgU0VUKFdlYkNvcmVfU09V
UkNFUwogICAgIGJpbmRpbmdzL2pzL0pTV2ViU29ja2V0Q3VzdG9tLmNwcAogICAgIGJpbmRpbmdz
L2pzL0pTV29ya2VyQ29udGV4dEJhc2UuY3BwCiAgICAgYmluZGluZ3MvanMvSlNXb3JrZXJDb250
ZXh0Q3VzdG9tLmNwcAotICAgIGJpbmRpbmdzL2pzL0pTV29ya2VyQ29udGV4dEVycm9ySGFuZGxl
ci5jcHAKICAgICBiaW5kaW5ncy9qcy9KU1dvcmtlckN1c3RvbS5jcHAKICAgICBiaW5kaW5ncy9q
cy9KU1hNTEh0dHBSZXF1ZXN0Q3VzdG9tLmNwcAogICAgIGJpbmRpbmdzL2pzL0pTWE1MSHR0cFJl
cXVlc3RVcGxvYWRDdXN0b20uY3BwCmRpZmYgLS1naXQgYS9XZWJDb3JlL0NoYW5nZUxvZyBiL1dl
YkNvcmUvQ2hhbmdlTG9nCmluZGV4IGNjZjQ4ZGY3NzM1M2NlY2I2YTU3NmY4OWEyNWU5OGI2ZmJh
MGU0YmMuLmJmYThhNjJhNmFlYWY4ODQ2YjhiN2UyZTE2MWZiYWU2YmJkYjMyYjMgMTAwNjQ0Ci0t
LSBhL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEs
MTAwIEBACisyMDEwLTEwLTAxICBZdXJ5IFNlbWlraGF0c2t5ICA8eXVyeXNAY2hyb21pdW0ub3Jn
PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFdlYkNv
cmUgZG9lc24ndCBmaXJlIHdpbmRvdy5vbmVycm9yIGV2ZW50IHdoZW4gdW5jYXVnaHQgSmF2YVNj
cmlwdCBleGNlcHRpb25zIGFyZSB0aHJvd24KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTg1MTkKKworICAgICAgICBVbmNhdWdodCBleGNlcHRpb25zIGFy
ZSBwcm9wYWdhdGVkIHRvIHdpbmRvdy5vbmVycm9yIGhhbmRlciBpZiBvbmUgaXMgcHJlc2VudC4K
KyAgICAgICAgVGhlIGhhbmRsZXIgaXMgZXhwZWN0ZWQgdG8gYmUgYSBmdW5jdGlvbiBhY2NlcHRp
bmcgdGhyZWUgYXJndW1lbnRzOiBlcnJvciBtZXNzYWdlLAorICAgICAgICByZXNvdXJjZSB1cmwg
YW5kIGxpbmUgbnVtYmVyIHdoZXJlIHRoZSBleGNlcHRpb24gb2NjdXJlZC4KKworICAgICAgICBU
ZXN0czogZmFzdC9ldmVudHMvd2luZG93LW9uZXJyb3IxLmh0bWwKKyAgICAgICAgICAgICAgIGZh
c3QvZXZlbnRzL3dpbmRvdy1vbmVycm9yMTAuaHRtbAorICAgICAgICAgICAgICAgZmFzdC9ldmVu
dHMvd2luZG93LW9uZXJyb3IxMS5odG1sCisgICAgICAgICAgICAgICBmYXN0L2V2ZW50cy93aW5k
b3ctb25lcnJvcjIuaHRtbAorICAgICAgICAgICAgICAgZmFzdC9ldmVudHMvd2luZG93LW9uZXJy
b3IzLmh0bWwKKyAgICAgICAgICAgICAgIGZhc3QvZXZlbnRzL3dpbmRvdy1vbmVycm9yNC5odG1s
CisgICAgICAgICAgICAgICBmYXN0L2V2ZW50cy93aW5kb3ctb25lcnJvcjUuaHRtbAorICAgICAg
ICAgICAgICAgZmFzdC9ldmVudHMvd2luZG93LW9uZXJyb3I2Lmh0bWwKKyAgICAgICAgICAgICAg
IGZhc3QvZXZlbnRzL3dpbmRvdy1vbmVycm9yNy5odG1sCisgICAgICAgICAgICAgICBmYXN0L2V2
ZW50cy93aW5kb3ctb25lcnJvcjguaHRtbAorICAgICAgICAgICAgICAgZmFzdC9ldmVudHMvd2lu
ZG93LW9uZXJyb3I5Lmh0bWwKKyAgICAgICAgICAgICAgIGh0dHAvdGVzdHMvc2VjdXJpdHkvd2lu
ZG93LW9uZXJyb3ItZXhjZXB0aW9uLWluLWlmcmFtZS5odG1sCisgICAgICAgICAgICAgICB1c2Vy
c2NyaXB0cy93aW5kb3ctb25lcnJvci1mb3ItaXNvbGF0ZWQtd29ybGQuaHRtbAorCisgICAgICAg
ICogQW5kcm9pZC5qc2NiaW5kaW5ncy5tazoKKyAgICAgICAgKiBDTWFrZUxpc3RzLnR4dDoKKyAg
ICAgICAgKiBHTlVtYWtlZmlsZS5hbToKKyAgICAgICAgKiBXZWJDb3JlLmd5cGk6CisgICAgICAg
ICogV2ViQ29yZS5vcmRlcjoKKyAgICAgICAgKiBXZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJv
ajoKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAg
ICogYmluZGluZ3MvanMvSlNCaW5kaW5nc0FsbEluT25lLmNwcDoKKyAgICAgICAgKiBiaW5kaW5n
cy9qcy9KU0RPTUJpbmRpbmcuY3BwOgorICAgICAgICAoV2ViQ29yZTo6cmVwb3J0RXhjZXB0aW9u
KToKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU0Vycm9ySGFuZGxlci5jcHA6IEFkZGVkLgorICAg
ICAgICAoV2ViQ29yZTo6SlNFcnJvckhhbmRsZXI6OkpTRXJyb3JIYW5kbGVyKToKKyAgICAgICAg
KFdlYkNvcmU6OkpTRXJyb3JIYW5kbGVyOjp+SlNFcnJvckhhbmRsZXIpOgorICAgICAgICAoV2Vi
Q29yZTo6SlNFcnJvckhhbmRsZXI6OmhhbmRsZUV2ZW50KToKKyAgICAgICAgKiBiaW5kaW5ncy9q
cy9KU0Vycm9ySGFuZGxlci5oOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkpTRXJyb3JIYW5k
bGVyOjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6Y3JlYXRlSlNFcnJvckhhbmRsZXIpOgor
ICAgICAgICAqIGJpbmRpbmdzL2pzL0pTV29ya2VyQ29udGV4dEVycm9ySGFuZGxlci5jcHA6IFJl
bW92ZWQuCisgICAgICAgICogYmluZGluZ3MvanMvSlNXb3JrZXJDb250ZXh0RXJyb3JIYW5kbGVy
Lmg6IFJlbW92ZWQuIFRoaXMgY2xhc3Mgd2FzIHJlZmFjdG9yZWQgaW50byBtb3JlIGdlbmVyYWwK
KyAgICAgICAgSlNFcnJvckhhbmRsZXIgdGhhdCByZXByZXNlbnRzIGdsb2JhbCBvbmVycm8gaGFu
ZGVyIG9uIFdvcmtlciBDb250ZXh0IG9yIG9uIERPTVdpbmRvdy4KKyAgICAgICAgKiBiaW5kaW5n
cy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbToKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRz
L0NvZGVHZW5lcmF0b3JWOC5wbToKKyAgICAgICAgKiBiaW5kaW5ncy92OC9ET01XcmFwcGVyV29y
bGQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6ZW50ZXJlZENvbnRleHRXb3JsZCk6CisgICAgICAg
IChXZWJDb3JlOjpjb250ZXh0V29ybGQpOgorICAgICAgICAqIGJpbmRpbmdzL3Y4L0RPTVdyYXBw
ZXJXb3JsZC5oOiBhZGRlZCBmdW5jdGlvbnMgdGhhdCBhbGxvdyB0byBnZXQgRE9NV3JhcHBlcldv
cmxkIGZyb20gb2JqZWN0cworICAgICAgICB0aGF0IGFyZSBhdmFpbGFibGUgaW4gdGhlIGV2ZW50
IGhhbmRsZXJzLiBXZSBuZWVkIHRvIGtub3cgdGhlaXIgd29ybGQgd2hlbiBFcnJvckV2ZW50Cisg
ICAgICAgIGlzIGJlaW5nIGRpc3BhdGNoZWQgdG8gY2hlY2sgdGhhdCB0aGUgZXZlbnQgaXMgZnJv
bSB0aGUgc2FtZSB3b3JsZCBhcyB0aGUgaGFuZGxlci4KKyAgICAgICAgKiBiaW5kaW5ncy92OC9W
OENvbnNvbGVNZXNzYWdlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlY4Q29uc29sZU1lc3NhZ2U6
OmRpc3BhdGNoTm93KToKKyAgICAgICAgKFdlYkNvcmU6OlY4Q29uc29sZU1lc3NhZ2U6OmhhbmRs
ZXIpOiB0aGUgbWV0aG9kIHdhcyBjaGFuZ2VkIHRvIHVzZSBnZW5lcmljIFdlYkNvcmUgZXhjZXB0
aW9uCisgICAgICAgIHJlcG9ydGluZyBtZWNoYW5pc20gd2hpY2ggaXMgYWxzbyB1c2VkIGJ5IEpT
QyBiaW5kaW5ncy4KKyAgICAgICAgKiBiaW5kaW5ncy92OC9WOENvbnNvbGVNZXNzYWdlLmg6Cisg
ICAgICAgIChXZWJDb3JlOjpWOENvbnNvbGVNZXNzYWdlOjpTY29wZTo6U2NvcGUpOgorICAgICAg
ICAoV2ViQ29yZTo6VjhDb25zb2xlTWVzc2FnZTo6U2NvcGU6On5TY29wZSk6CisgICAgICAgICog
YmluZGluZ3MvdjgvVjhXaW5kb3dFcnJvckhhbmRsZXIuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdl
YkNvcmU6OlY4V2luZG93RXJyb3JIYW5kbGVyOjpWOFdpbmRvd0Vycm9ySGFuZGxlcik6CisgICAg
ICAgIChXZWJDb3JlOjpWOFdpbmRvd0Vycm9ySGFuZGxlcjo6Y2FsbExpc3RlbmVyRnVuY3Rpb24p
OgorICAgICAgICAqIGJpbmRpbmdzL3Y4L1Y4V2luZG93RXJyb3JIYW5kbGVyLmg6IEFkZGVkLgor
ICAgICAgICAoV2ViQ29yZTo6VjhXaW5kb3dFcnJvckhhbmRsZXI6OmNyZWF0ZSk6CisgICAgICAg
ICogYmluZGluZ3MvdjgvV29ya2VyQ29udGV4dEV4ZWN1dGlvblByb3h5LmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OnY4TWVzc2FnZUhhbmRsZXIpOgorICAgICAgICAqIGJpbmRpbmdzL3Y4L1dvcmtl
clNjcmlwdENvbnRyb2xsZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6V29ya2VyU2NyaXB0Q29u
dHJvbGxlcjo6ZXZhbHVhdGUpOgorICAgICAgICAqIGRvbS9Eb2N1bWVudC5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpEb2N1bWVudDo6ZXJyb3JFdmVudFRhcmdldCk6CisgICAgICAgIChXZWJDb3Jl
OjpEb2N1bWVudDo6bG9nRXhjZXB0aW9uVG9Db25zb2xlKToKKyAgICAgICAgKiBkb20vRG9jdW1l
bnQuaDoKKyAgICAgICAgKiBkb20vRXJyb3JFdmVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpF
cnJvckV2ZW50OjpFcnJvckV2ZW50KToKKyAgICAgICAgKiBkb20vRXJyb3JFdmVudC5oOiBFcnJv
ckV2ZW50IGlzIGV4dGVuZGVkIHdpdGggYW4gYWNjZXNzb3IgZm9yIERPTVdyYXBwZXJXb3JsZCBp
bgorICAgICAgICB3aGljaCB0aGUgZXhjZXB0aW9uIG9jY3VycmVkLiBUaGlzIGFsbG93cyB0byBu
b3QgcGFzcyB0aGUgZXZlbnQgb2JqZWN0IHRvIGxpc3RlbmVycworICAgICAgICBpbiBvdGhlciB3
b3JsZHMuCisgICAgICAgIChXZWJDb3JlOjpFcnJvckV2ZW50OjpjcmVhdGUpOgorICAgICAgICAo
V2ViQ29yZTo6RXJyb3JFdmVudDo6d3JhcHBlcldvcmxkKToKKyAgICAgICAgKiBkb20vU2NyaXB0
RXhlY3V0aW9uQ29udGV4dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTY3JpcHRFeGVjdXRpb25D
b250ZXh0OjpQZW5kaW5nRXhjZXB0aW9uOjpQZW5kaW5nRXhjZXB0aW9uKToKKyAgICAgICAgKFdl
YkNvcmU6OlNjcmlwdEV4ZWN1dGlvbkNvbnRleHQ6OlNjcmlwdEV4ZWN1dGlvbkNvbnRleHQpOgor
ICAgICAgICAoV2ViQ29yZTo6U2NyaXB0RXhlY3V0aW9uQ29udGV4dDo6cmVwb3J0RXhjZXB0aW9u
KTogdGhpcyBtZXRob2QgaXMgbm90IHZpcnR1YWwgYW55bW9yZSB0bworICAgICAgICBlbnN1cmUg
dGhhdCBlcnJvciBldmVudCBkaXNwYXRjaGluZyBhbGdvcml0aG0gaXMgdGhlIHNhbWUgaW4gV29y
a2VyQ29udGV4dCBhbmQgaW4gRG9jdW1lbnQuCisgICAgICAgIChXZWJDb3JlOjpTY3JpcHRFeGVj
dXRpb25Db250ZXh0OjpkaXNwYXRjaEVycm9yRXZlbnQpOgorICAgICAgICAqIGRvbS9TY3JpcHRF
eGVjdXRpb25Db250ZXh0Lmg6CisgICAgICAgICogd29ya2Vycy9EZWZhdWx0U2hhcmVkV29ya2Vy
UmVwb3NpdG9yeS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpwb3N0RXhjZXB0aW9uVGFzayk6Cisg
ICAgICAgICogd29ya2Vycy9Xb3JrZXJDb250ZXh0LmNwcDogCisgICAgICAgIChXZWJDb3JlOjpX
b3JrZXJDb250ZXh0OjpXb3JrZXJDb250ZXh0KToKKyAgICAgICAgKFdlYkNvcmU6OldvcmtlckNv
bnRleHQ6OmVycm9yRXZlbnRUYXJnZXQpOgorICAgICAgICAoV2ViQ29yZTo6V29ya2VyQ29udGV4
dDo6bG9nRXhjZXB0aW9uVG9Db25zb2xlKToKKyAgICAgICAgKiB3b3JrZXJzL1dvcmtlckNvbnRl
eHQuaDoKKyAgICAgICAgKiB3b3JrZXJzL1dvcmtlck1lc3NhZ2luZ1Byb3h5LmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OldvcmtlckV4Y2VwdGlvblRhc2s6OnBlcmZvcm1UYXNrKToKKwogMjAxMC0x
MC0wMSAgUGF0cmljayBHYW5zdGVyZXIgIDxwYXJvZ2FAd2Via2l0Lm9yZz4KIAogICAgICAgICBS
ZXZpZXdlZCBieSBBZGFtIFJvYmVuLgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9HTlVtYWtlZmlsZS5h
bSBiL1dlYkNvcmUvR05VbWFrZWZpbGUuYW0KaW5kZXggYTc0Mzk4MzllMzJjMTY4Y2ViYzIyNDdl
YWFkMjYyMmE1YjhiMTRiZS4uOTRmZDQ2YzZhMTY5YmJiNmQyYmIyMThmYjliZjFmYzg3MWI0OTQ2
MiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9HTlVtYWtlZmlsZS5hbQorKysgYi9XZWJDb3JlL0dOVW1h
a2VmaWxlLmFtCkBAIC03MTEsNiArNzExLDggQEAgd2ViY29yZV9zb3VyY2VzICs9IFwKIAlXZWJD
b3JlL2JpbmRpbmdzL2pzL0pTRE9NV3JhcHBlci5oIFwKIAlXZWJDb3JlL2JpbmRpbmdzL2pzL0pT
RWxlbWVudEN1c3RvbS5jcHAgXAogCVdlYkNvcmUvYmluZGluZ3MvanMvSlNFbnRyeUN1c3RvbS5j
cHAgXAorCVdlYkNvcmUvYmluZGluZ3MvanMvSlNFcnJvckhhbmRsZXIuY3BwIFwKKwlXZWJDb3Jl
L2JpbmRpbmdzL2pzL0pTRXJyb3JIYW5kbGVyLmggXAogCVdlYkNvcmUvYmluZGluZ3MvanMvSlNF
dmVudEN1c3RvbS5jcHAgXAogCVdlYkNvcmUvYmluZGluZ3MvanMvSlNFdmVudExpc3RlbmVyLmNw
cCBcCiAJV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0V2ZW50TGlzdGVuZXIuaCBcCkBAIC03OTcsOCAr
Nzk5LDYgQEAgd2ViY29yZV9zb3VyY2VzICs9IFwKIAlXZWJDb3JlL2JpbmRpbmdzL2pzL0pTV29y
a2VyQ29udGV4dEJhc2UuY3BwIFwKIAlXZWJDb3JlL2JpbmRpbmdzL2pzL0pTV29ya2VyQ29udGV4
dEJhc2UuaCBcCiAJV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1dvcmtlckNvbnRleHRDdXN0b20uY3Bw
IFwKLQlXZWJDb3JlL2JpbmRpbmdzL2pzL0pTV29ya2VyQ29udGV4dEVycm9ySGFuZGxlci5jcHAg
XAotCVdlYkNvcmUvYmluZGluZ3MvanMvSlNXb3JrZXJDb250ZXh0RXJyb3JIYW5kbGVyLmggXAog
CVdlYkNvcmUvYmluZGluZ3MvanMvSlNXb3JrZXJDdXN0b20uY3BwIFwKIAlXZWJDb3JlL2JpbmRp
bmdzL2pzL0pTWE1MSHR0cFJlcXVlc3RDdXN0b20uY3BwIFwKIAlXZWJDb3JlL2JpbmRpbmdzL2pz
L0pTWE1MSHR0cFJlcXVlc3RVcGxvYWRDdXN0b20uY3BwIFwKZGlmZiAtLWdpdCBhL1dlYkNvcmUv
V2ViQ29yZS5neXBpIGIvV2ViQ29yZS9XZWJDb3JlLmd5cGkKaW5kZXggZTlhZWY3YjgzOTM2OGZi
NGY1ZGFmMmIzNDQzOGM5N2Q5ZTk3YTBjYS4uODc5YWNiODNlNjUyOTU4N2I1ZjZjNjVmZGM1MjI3
ZGE5YjkzYjkxNiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9XZWJDb3JlLmd5cGkKKysrIGIvV2ViQ29y
ZS9XZWJDb3JlLmd5cGkKQEAgLTU4NSw2ICs1ODUsOCBAQAogICAgICAgICAgICAgJ2JpbmRpbmdz
L2pzL0pTRE9NV3JhcHBlci5oJywKICAgICAgICAgICAgICdiaW5kaW5ncy9qcy9KU0VsZW1lbnRD
dXN0b20uY3BwJywKICAgICAgICAgICAgICdiaW5kaW5ncy9qcy9KU0VudHJ5Q3VzdG9tLmNwcCcs
CisgICAgICAgICAgICAnYmluZGluZ3MvanMvSlNFcnJvckhhbmRsZXIuY3BwJywKKyAgICAgICAg
ICAgICdiaW5kaW5ncy9qcy9KU0Vycm9ySGFuZGxlci5oJywKICAgICAgICAgICAgICdiaW5kaW5n
cy9qcy9KU0V2ZW50Q3VzdG9tLmNwcCcsCiAgICAgICAgICAgICAnYmluZGluZ3MvanMvSlNFdmVu
dExpc3RlbmVyLmNwcCcsCiAgICAgICAgICAgICAnYmluZGluZ3MvanMvSlNFdmVudExpc3RlbmVy
LmgnLApAQCAtNjc3LDggKzY3OSw2IEBACiAgICAgICAgICAgICAnYmluZGluZ3MvanMvSlNXb3Jr
ZXJDb250ZXh0QmFzZS5jcHAnLAogICAgICAgICAgICAgJ2JpbmRpbmdzL2pzL0pTV29ya2VyQ29u
dGV4dEJhc2UuaCcsCiAgICAgICAgICAgICAnYmluZGluZ3MvanMvSlNXb3JrZXJDb250ZXh0Q3Vz
dG9tLmNwcCcsCi0gICAgICAgICAgICAnYmluZGluZ3MvanMvSlNXb3JrZXJDb250ZXh0RXJyb3JI
YW5kbGVyLmNwcCcsCi0gICAgICAgICAgICAnYmluZGluZ3MvanMvSlNXb3JrZXJDb250ZXh0RXJy
b3JIYW5kbGVyLmgnLAogICAgICAgICAgICAgJ2JpbmRpbmdzL2pzL0pTV29ya2VyQ3VzdG9tLmNw
cCcsCiAgICAgICAgICAgICAnYmluZGluZ3MvanMvSlNYTUxIdHRwUmVxdWVzdEN1c3RvbS5jcHAn
LAogICAgICAgICAgICAgJ2JpbmRpbmdzL2pzL0pTWE1MSHR0cFJlcXVlc3RVcGxvYWRDdXN0b20u
Y3BwJywKQEAgLTk0Miw2ICs5NDIsOCBAQAogICAgICAgICAgICAgJ2JpbmRpbmdzL3Y4L1Y4U1ZH
UE9EVHlwZVdyYXBwZXIuaCcsCiAgICAgICAgICAgICAnYmluZGluZ3MvdjgvVjhVdGlsaXRpZXMu
Y3BwJywKICAgICAgICAgICAgICdiaW5kaW5ncy92OC9WOFV0aWxpdGllcy5oJywKKyAgICAgICAg
ICAgICdiaW5kaW5ncy92OC9WOFdpbmRvd0Vycm9ySGFuZGxlci5jcHAnLAorICAgICAgICAgICAg
J2JpbmRpbmdzL3Y4L1Y4V2luZG93RXJyb3JIYW5kbGVyLmgnLAogICAgICAgICAgICAgJ2JpbmRp
bmdzL3Y4L1Y4V29ya2VyQ29udGV4dEVycm9ySGFuZGxlci5jcHAnLAogICAgICAgICAgICAgJ2Jp
bmRpbmdzL3Y4L1Y4V29ya2VyQ29udGV4dEVycm9ySGFuZGxlci5oJywKICAgICAgICAgICAgICdi
aW5kaW5ncy92OC9WOFdvcmtlckNvbnRleHRFdmVudExpc3RlbmVyLmNwcCcsCmRpZmYgLS1naXQg
YS9XZWJDb3JlL1dlYkNvcmUub3JkZXIgYi9XZWJDb3JlL1dlYkNvcmUub3JkZXIKaW5kZXggNDEy
NDc3NzNiYTM3ZWZkNTA1ZWI3ZjFlYzU4NDc4ZWM1NjJmYzA5Ny4uZmIxOGQ2NDgyNzIzMWViY2Jl
OWEwZmIxZWU0NDYxZjYzZmE1MDcyYyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9XZWJDb3JlLm9yZGVy
CisrKyBiL1dlYkNvcmUvV2ViQ29yZS5vcmRlcgpAQCAtMjUyMTcsMTMgKzI1MjE3LDkgQEAgX19a
TjdXZWJDb3JlMTVKU1dvcmtlckNvbnRleHQxMHNldFRpbWVvdXRFUE4zSlNDOUV4ZWNTdGF0ZUVS
S05TMV83QXJnTGlzdEUKIF9fWk43V2ViQ29yZTEzV29ya2VyQ29udGV4dDEwc2V0VGltZW91dEVQ
TlNfMTVTY2hlZHVsZWRBY3Rpb25FaQogX19aTjdXZWJDb3JlMTdXb3JrZXJTaGFyZWRUaW1lcjEx
c2V0RmlyZVRpbWVFZAogX19aTjdXZWJDb3JlMTVTY2hlZHVsZWRBY3Rpb243ZXhlY3V0ZUVQTlNf
MTNXb3JrZXJDb250ZXh0RQotX19aTjdXZWJDb3JlMjdKU1dvcmtlckNvbnRleHRFcnJvckhhbmRs
ZXJDMUVQTjNKU0M4SlNPYmplY3RFUzNfYlBOU18xNURPTVdyYXBwZXJXb3JsZEUKLV9fWk43V2Vi
Q29yZTI3SlNXb3JrZXJDb250ZXh0RXJyb3JIYW5kbGVyQzJFUE4zSlNDOEpTT2JqZWN0RVMzX2JQ
TlNfMTVET01XcmFwcGVyV29ybGRFCiBfX1pON1dlYkNvcmUxMEVycm9yRXZlbnRDMUVSS05TXzZT
dHJpbmdFUzNfagogX19aTjdXZWJDb3JlMTBFcnJvckV2ZW50QzJFUktOU182U3RyaW5nRVMzX2oK
LV9fWk43V2ViQ29yZTI3SlNXb3JrZXJDb250ZXh0RXJyb3JIYW5kbGVyMTFoYW5kbGVFdmVudEVQ
TlNfMjJTY3JpcHRFeGVjdXRpb25Db250ZXh0RVBOU181RXZlbnRFCiBfX1pON1dlYkNvcmUxMEVy
cm9yRXZlbnREMEV2Ci1fX1pON1dlYkNvcmUyN0pTV29ya2VyQ29udGV4dEVycm9ySGFuZGxlckQw
RXYKIF9fWk43V2ViQ29yZTE3anNXb3JrZXJPbm1lc3NhZ2VFUE4zSlNDOUV4ZWNTdGF0ZUVOUzBf
N0pTVmFsdWVFUktOUzBfMTBJZGVudGlmaWVyRQogX19aTjdXZWJDb3JlMzRqc1dvcmtlclByb3Rv
dHlwZUZ1bmN0aW9uVGVybWluYXRlRVBOM0pTQzlFeGVjU3RhdGVFUE5TMF84SlNPYmplY3RFTlMw
XzdKU1ZhbHVlRVJLTlMwXzdBcmdMaXN0RQogX19aVGhuOF9ON1dlYkNvcmUyMFdvcmtlck1lc3Nh
Z2luZ1Byb3h5MTl3b3JrZXJDb250ZXh0Q2xvc2VkRXYKZGlmZiAtLWdpdCBhL1dlYkNvcmUvV2Vi
Q29yZS5wcm8gYi9XZWJDb3JlL1dlYkNvcmUucHJvCmluZGV4IDE4NDdkMDkzMDUxMTJlMTIxODI2
NWFlZjhhYjZhMDE5OWU5YzZhMTYuLmJjMGQ1Y2ViMTRhZjljNGUwMTQwY2VlZTExYTAxMjIwY2U5
MmM1MTEgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvV2ViQ29yZS5wcm8KKysrIGIvV2ViQ29yZS9XZWJD
b3JlLnBybwpAQCAtNTcwLDcgKzU3MCw2IEBAIHY4IHsKICAgICAgICAgYmluZGluZ3MvanMvSlNN
YWluVGhyZWFkRXhlY1N0YXRlLmNwcCBcCiAgICAgICAgIGJpbmRpbmdzL2pzL0pTUGx1Z2luRWxl
bWVudEZ1bmN0aW9ucy5jcHAgXAogICAgICAgICBiaW5kaW5ncy9qcy9KU1BvcFN0YXRlRXZlbnRD
dXN0b20uY3BwIFwKLSAgICAgICAgYmluZGluZ3MvanMvSlNXb3JrZXJDb250ZXh0RXJyb3JIYW5k
bGVyLmNwcCBcCiAgICAgICAgIGJpbmRpbmdzL2pzL1NjcmlwdENhY2hlZEZyYW1lRGF0YS5jcHAg
XAogICAgICAgICBiaW5kaW5ncy9qcy9TY3JpcHRDYWxsRnJhbWUuY3BwIFwKICAgICAgICAgYmlu
ZGluZ3MvanMvU2NyaXB0Q2FsbFN0YWNrLmNwcCBcCkBAIC0xNDU5LDcgKzE0NTgsNiBAQCB2OCB7
CiAgICAgICAgIGJpbmRpbmdzL2pzL0pTUGx1Z2luRWxlbWVudEZ1bmN0aW9ucy5oIFwKICAgICAg
ICAgYmluZGluZ3MvanMvSlNTdG9yYWdlQ3VzdG9tLmggXAogICAgICAgICBiaW5kaW5ncy9qcy9K
U1dvcmtlckNvbnRleHRCYXNlLmggXAotICAgICAgICBiaW5kaW5ncy9qcy9KU1dvcmtlckNvbnRl
eHRFcnJvckhhbmRsZXIuaCBcCiAgICAgICAgIGJpbmRpbmdzL2pzL0phdmFTY3JpcHRDYWxsRnJh
bWUuaCBcCiAgICAgICAgIGJpbmRpbmdzL2pzL1NjaGVkdWxlZEFjdGlvbi5oIFwKICAgICAgICAg
YmluZGluZ3MvanMvU2NyaXB0Q2FjaGVkRnJhbWVEYXRhLmggXApkaWZmIC0tZ2l0IGEvV2ViQ29y
ZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvaiBiL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ov
V2ViQ29yZS52Y3Byb2oKaW5kZXggMmM4ZDliNDFkMmIxMmMxN2YxMzg3ZDhmOTNkNjEzNTYyNTYx
MjZhZi4uNjExY2NjMGVmMWI1ODlhNWI0OWY0NGEyODY4YTc0NDJkMDk3N2JhZSAxMDA2NDQKLS0t
IGEvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvagorKysgYi9XZWJDb3JlL1dl
YkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qCkBAIC00NTAxNyw2ICs0NTAxNyw2MyBAQAogCQkJ
CTwvRmlsZT4NCiAJCQkJPEZpbGUNCiAJCQkJCVJlbGF0aXZlUGF0aD0iLi5cYmluZGluZ3NcanNc
SlNET01XaW5kb3dTaGVsbC5jcHAiDQorCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGJpbmRpbmdzXGpz
XEpTRXJyb3JIYW5kbGVyLmNwcCINCisJCQkJCT4NCisJCQkJCTxGaWxlQ29uZmlndXJhdGlvbg0K
KwkJCQkJCU5hbWU9IkRlYnVnfFdpbjMyIg0KKwkJCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVl
Ig0KKwkJCQkJCT4NCisJCQkJCQk8VG9vbA0KKwkJCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29s
Ig0KKwkJCQkJCS8+DQorCQkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPg0KKwkJCQkJPEZpbGVDb25m
aWd1cmF0aW9uDQorCQkJCQkJTmFtZT0iUmVsZWFzZXxXaW4zMiINCisJCQkJCQlFeGNsdWRlZEZy
b21CdWlsZD0idHJ1ZSINCisJCQkJCQk+DQorCQkJCQkJPFRvb2wNCisJCQkJCQkJTmFtZT0iVkND
TENvbXBpbGVyVG9vbCINCisJCQkJCQkvPg0KKwkJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4NCisJ
CQkJCTxGaWxlQ29uZmlndXJhdGlvbg0KKwkJCQkJCU5hbWU9IkRlYnVnX0ludGVybmFsfFdpbjMy
Ig0KKwkJCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIg0KKwkJCQkJCT4NCisJCQkJCQk8VG9v
bA0KKwkJCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIg0KKwkJCQkJCS8+DQorCQkJCQk8L0Zp
bGVDb25maWd1cmF0aW9uPg0KKwkJCQkJPEZpbGVDb25maWd1cmF0aW9uDQorCQkJCQkJTmFtZT0i
RGVidWdfQ2Fpcm98V2luMzIiDQorCQkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiDQorCQkJ
CQkJPg0KKwkJCQkJCTxUb29sDQorCQkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiDQorCQkJ
CQkJLz4NCisJCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+DQorCQkJCQk8RmlsZUNvbmZpZ3VyYXRp
b24NCisJCQkJCQlOYW1lPSJSZWxlYXNlX0NhaXJvfFdpbjMyIg0KKwkJCQkJCUV4Y2x1ZGVkRnJv
bUJ1aWxkPSJ0cnVlIg0KKwkJCQkJCT4NCisJCQkJCQk8VG9vbA0KKwkJCQkJCQlOYW1lPSJWQ0NM
Q29tcGlsZXJUb29sIg0KKwkJCQkJCS8+DQorCQkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPg0KKwkJ
CQkJPEZpbGVDb25maWd1cmF0aW9uDQorCQkJCQkJTmFtZT0iRGVidWdfQWxsfFdpbjMyIg0KKwkJ
CQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIg0KKwkJCQkJCT4NCisJCQkJCQk8VG9vbA0KKwkJ
CQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIg0KKwkJCQkJCS8+DQorCQkJCQk8L0ZpbGVDb25m
aWd1cmF0aW9uPg0KKwkJCQk8L0ZpbGU+DQorCQkJCTxGaWxlDQorCQkJCQlSZWxhdGl2ZVBhdGg9
Ii4uXGJpbmRpbmdzXGpzXEpTRXJyb3JIYW5kbGVyLmgiDQorCQkJCQk+DQorCQkJCTwvRmlsZT4N
CisJCQkJPEZpbGUNCisJCQkJCVJlbGF0aXZlUGF0aD0iLi5cYmluZGluZ3NcanNcSlNFdmVudEN1
c3RvbS5jcHAiDQogCQkJCQk+DQogCQkJCQk8RmlsZUNvbmZpZ3VyYXRpb24NCiAJCQkJCQlOYW1l
PSJEZWJ1Z3xXaW4zMiINCkBAIC00OTU3Niw2MiArNDk2MzMsNiBAQAogCQkJCQk8L0ZpbGVDb25m
aWd1cmF0aW9uPg0KIAkJCQk8L0ZpbGU+DQogCQkJCTxGaWxlDQotCQkJCQlSZWxhdGl2ZVBhdGg9
Ii4uXGJpbmRpbmdzXGpzXEpTV29ya2VyQ29udGV4dEVycm9ySGFuZGxlci5jcHAiDQotCQkJCQk+
DQotCQkJCQk8RmlsZUNvbmZpZ3VyYXRpb24NCi0JCQkJCQlOYW1lPSJEZWJ1Z3xXaW4zMiINCi0J
CQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSINCi0JCQkJCQk+DQotCQkJCQkJPFRvb2wNCi0J
CQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCINCi0JCQkJCQkvPg0KLQkJCQkJPC9GaWxlQ29u
ZmlndXJhdGlvbj4NCi0JCQkJCTxGaWxlQ29uZmlndXJhdGlvbg0KLQkJCQkJCU5hbWU9IlJlbGVh
c2V8V2luMzIiDQotCQkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiDQotCQkJCQkJPg0KLQkJ
CQkJCTxUb29sDQotCQkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiDQotCQkJCQkJLz4NCi0J
CQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+DQotCQkJCQk8RmlsZUNvbmZpZ3VyYXRpb24NCi0JCQkJ
CQlOYW1lPSJEZWJ1Z19JbnRlcm5hbHxXaW4zMiINCi0JCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0i
dHJ1ZSINCi0JCQkJCQk+DQotCQkJCQkJPFRvb2wNCi0JCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVy
VG9vbCINCi0JCQkJCQkvPg0KLQkJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4NCi0JCQkJCTxGaWxl
Q29uZmlndXJhdGlvbg0KLQkJCQkJCU5hbWU9IkRlYnVnX0NhaXJvfFdpbjMyIg0KLQkJCQkJCUV4
Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIg0KLQkJCQkJCT4NCi0JCQkJCQk8VG9vbA0KLQkJCQkJCQlO
YW1lPSJWQ0NMQ29tcGlsZXJUb29sIg0KLQkJCQkJCS8+DQotCQkJCQk8L0ZpbGVDb25maWd1cmF0
aW9uPg0KLQkJCQkJPEZpbGVDb25maWd1cmF0aW9uDQotCQkJCQkJTmFtZT0iUmVsZWFzZV9DYWly
b3xXaW4zMiINCi0JCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSINCi0JCQkJCQk+DQotCQkJ
CQkJPFRvb2wNCi0JCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCINCi0JCQkJCQkvPg0KLQkJ
CQkJPC9GaWxlQ29uZmlndXJhdGlvbj4NCi0JCQkJCTxGaWxlQ29uZmlndXJhdGlvbg0KLQkJCQkJ
CU5hbWU9IkRlYnVnX0FsbHxXaW4zMiINCi0JCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSIN
Ci0JCQkJCQk+DQotCQkJCQkJPFRvb2wNCi0JCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCIN
Ci0JCQkJCQkvPg0KLQkJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4NCi0JCQkJPC9GaWxlPg0KLQkJ
CQk8RmlsZQ0KLQkJCQkJUmVsYXRpdmVQYXRoPSIuLlxiaW5kaW5nc1xqc1xKU1dvcmtlckNvbnRl
eHRFcnJvckhhbmRsZXIuaCINCi0JCQkJCT4NCi0JCQkJPC9GaWxlPg0KLQkJCQk8RmlsZQ0KIAkJ
CQkJUmVsYXRpdmVQYXRoPSIuLlxiaW5kaW5nc1xqc1xKU1hNTEh0dHBSZXF1ZXN0Q3VzdG9tLmNw
cCINCiAJCQkJCT4NCiAJCQkJCTxGaWxlQ29uZmlndXJhdGlvbg0KZGlmZiAtLWdpdCBhL1dlYkNv
cmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvV2ViQ29yZS9XZWJDb3JlLnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggOTAwMDcyNjg4NDcxOTEyYTRiM2Q3ZWE1YmFl
NmJiOGY4ZWZjM2VlMy4uY2U1NDcxYjQyNTM2ZjZjNTRjYmNlN2VlMDU3NWVjMzI5YWJhODkzMSAx
MDA2NDQKLS0tIGEvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysr
IGIvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTU0MTEsOCAr
NTQxMSw4IEBACiAJCUYzNjQ0QUZGMTExOTgwNTkwMEUwRDUzNyAvKiBJbmplY3RlZFNjcmlwdC5j
cHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGMzY0NEFG
RDExMTk4MDU5MDBFMEQ1MzcgLyogSW5qZWN0ZWRTY3JpcHQuY3BwICovOyB9OwogCQlGMzY0NEIw
MDExMTk4MDU5MDBFMEQ1MzcgLyogSW5qZWN0ZWRTY3JpcHQuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEYzNjQ0QUZFMTExOTgwNTkwMEUwRDUzNyAvKiBJ
bmplY3RlZFNjcmlwdC5oICovOyB9OwogCQlGMzc1Q0MwNzExNTBEMzAwMDA4RERCODEgLyogSW5z
cGVjdG9yV29ya2VyUmVzb3VyY2UuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IEYzNzVDQzA2MTE1MEQzMDAwMDhEREI4MSAvKiBJbnNwZWN0b3JXb3JrZXJS
ZXNvdXJjZS5oICovOyB9OwotCQlGM0Q0NjE0ODExNjFENTMyMDBDQTBEMDkgLyogSlNXb3JrZXJD
b250ZXh0RXJyb3JIYW5kbGVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IEYzRDQ2MTQ2MTE2MUQ1MzIwMENBMEQwOSAvKiBKU1dvcmtlckNvbnRleHRF
cnJvckhhbmRsZXIuY3BwICovOyB9OwotCQlGM0Q0NjE0OTExNjFENTMyMDBDQTBEMDkgLyogSlNX
b3JrZXJDb250ZXh0RXJyb3JIYW5kbGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSBGM0Q0NjE0NzExNjFENTMyMDBDQTBEMDkgLyogSlNXb3JrZXJDb250
ZXh0RXJyb3JIYW5kbGVyLmggKi87IH07CisJCUYzRDQ2MTQ4MTE2MUQ1MzIwMENBMEQwOSAvKiBK
U0Vycm9ySGFuZGxlci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSBGM0Q0NjE0NjExNjFENTMyMDBDQTBEMDkgLyogSlNFcnJvckhhbmRsZXIuY3BwICov
OyB9OworCQlGM0Q0NjE0OTExNjFENTMyMDBDQTBEMDkgLyogSlNFcnJvckhhbmRsZXIuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEYzRDQ2MTQ3MTE2MUQ1
MzIwMENBMEQwOSAvKiBKU0Vycm9ySGFuZGxlci5oICovOyB9OwogCQlGNEVBRjRBRTEwQzc0MkIx
MDA5MTAwRDMgLyogT3BlblR5cGVTYW5pdGl6ZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjRFQUY0QUMxMEM3NDJCMTAwOTEwMEQzIC8qIE9wZW5U
eXBlU2FuaXRpemVyLmNwcCAqLzsgfTsKIAkJRjRFQUY0QUYxMEM3NDJCMTAwOTEwMEQzIC8qIE9w
ZW5UeXBlU2FuaXRpemVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSBGNEVBRjRBRDEwQzc0MkIxMDA5MTAwRDMgLyogT3BlblR5cGVTYW5pdGl6ZXIuaCAq
LzsgfTsKIAkJRjU1QjNEQUQxMjUxRjEyRDAwM0VGMjY5IC8qIEJhc2VUZXh0SW5wdXRUeXBlLmNw
cCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY1NUIzRDc5
MTI1MUYxMkQwMDNFRjI2OSAvKiBCYXNlVGV4dElucHV0VHlwZS5jcHAgKi87IH07CkBAIC0xMTM4
Nyw4ICsxMTM4Nyw4IEBACiAJCUYzNjQ0QUZEMTExOTgwNTkwMEUwRDUzNyAvKiBJbmplY3RlZFNj
cmlwdC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBJbmplY3RlZFNj
cmlwdC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUYzNjQ0QUZFMTExOTgwNTkw
MEUwRDUzNyAvKiBJbmplY3RlZFNjcmlwdC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBJbmplY3RlZFNjcmlwdC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlGMzc1
Q0MwNjExNTBEMzAwMDA4RERCODEgLyogSW5zcGVjdG9yV29ya2VyUmVzb3VyY2UuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSW5zcGVjdG9yV29ya2VyUmVzb3VyY2UuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJRjNENDYxNDYxMTYxRDUzMjAwQ0EwRDA5IC8qIEpT
V29ya2VyQ29udGV4dEVycm9ySGFuZGxlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5j
cHA7IHBhdGggPSBKU1dvcmtlckNvbnRleHRFcnJvckhhbmRsZXIuY3BwOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwotCQlGM0Q0NjE0NzExNjFENTMyMDBDQTBEMDkgLyogSlNXb3JrZXJDb250
ZXh0RXJyb3JIYW5kbGVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTV29y
a2VyQ29udGV4dEVycm9ySGFuZGxlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlG
M0Q0NjE0NjExNjFENTMyMDBDQTBEMDkgLyogSlNFcnJvckhhbmRsZXIuY3BwICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNFcnJvckhhbmRsZXIuY3BwOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OworCQlGM0Q0NjE0NzExNjFENTMyMDBDQTBEMDkgLyogSlNFcnJvckhh
bmRsZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNFcnJvckhhbmRsZXIu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRjRFQUY0QUMxMEM3NDJCMTAwOTEwMEQz
IC8qIE9wZW5UeXBlU2FuaXRpemVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsg
bmFtZSA9IE9wZW5UeXBlU2FuaXRpemVyLmNwcDsgcGF0aCA9IG9wZW50eXBlL09wZW5UeXBlU2Fu
aXRpemVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRjRFQUY0QUQxMEM3NDJC
MTAwOTEwMEQzIC8qIE9wZW5UeXBlU2FuaXRpemVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgbmFtZSA9IE9wZW5UeXBlU2FuaXRpemVyLmg7IHBhdGggPSBvcGVudHlwZS9PcGVuVHlwZVNh
bml0aXplci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlGNTIzRDIzQjAyREU0Mzk2
MDE4NjM1Q0EgLyogSFRNTERvY3VtZW50LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSAzMDsgaW5kZW50V2lkdGggPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEhUTUxEb2N1bWVudC5jcHA7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IHRhYldpZHRoID0gODsgdXNlc1RhYnMgPSAwOyB9OwpAQCAtMTY1ODksNiAr
MTY1ODksOCBAQAogCQkJCUJDQkZCNTNCMERDRDI5Q0YwMDE5QjNFNSAvKiBKU0RPTVdpbmRvd1No
ZWxsLmggKi8sCiAJCQkJQkM1M0RBQzYxMTQzMzA2NDAwMEQ4MTdFIC8qIEpTRE9NV3JhcHBlci5j
cHAgKi8sCiAJCQkJNjVFMEU5NDMxMTMzQzg5RjAwQjRDQjEwIC8qIEpTRE9NV3JhcHBlci5oICov
LAorCQkJCUYzRDQ2MTQ2MTE2MUQ1MzIwMENBMEQwOSAvKiBKU0Vycm9ySGFuZGxlci5jcHAgKi8s
CisJCQkJRjNENDYxNDcxMTYxRDUzMjAwQ0EwRDA5IC8qIEpTRXJyb3JIYW5kbGVyLmggKi8sCiAJ
CQkJQkM2MDkwMUUwRTkxQjhFQzAwMEM2OEI1IC8qIEpTRXZlbnRUYXJnZXQuY3BwICovLAogCQkJ
CUJDNjA5MDFEMEU5MUI4RUMwMDBDNjhCNSAvKiBKU0V2ZW50VGFyZ2V0LmggKi8sCiAJCQkJMzMx
NEFDRTkxMDg5MjA4NjAwMEYwRTU2IC8qIEpTRXhjZXB0aW9uQmFzZS5jcHAgKi8sCkBAIC0xNjYw
MSw4ICsxNjYwMyw2IEBACiAJCQkJQjIxMTI3QTUwQjMxODY3NzAwMDlCRTUzIC8qIEpTU1ZHUE9E
VHlwZVdyYXBwZXIuaCAqLywKIAkJCQlFMUMzNkQzMjBFQjBBMDk0MDA3NDEwQkMgLyogSlNXb3Jr
ZXJDb250ZXh0QmFzZS5jcHAgKi8sCiAJCQkJRTFDMzZEMzMwRUIwQTA5NDAwNzQxMEJDIC8qIEpT
V29ya2VyQ29udGV4dEJhc2UuaCAqLywKLQkJCQlGM0Q0NjE0NjExNjFENTMyMDBDQTBEMDkgLyog
SlNXb3JrZXJDb250ZXh0RXJyb3JIYW5kbGVyLmNwcCAqLywKLQkJCQlGM0Q0NjE0NzExNjFENTMy
MDBDQTBEMDkgLyogSlNXb3JrZXJDb250ZXh0RXJyb3JIYW5kbGVyLmggKi8sCiAJCQkJQkNBMzc4
QkEwRDE1RjY0MjAwQjc5M0Q2IC8qIFNjaGVkdWxlZEFjdGlvbi5jcHAgKi8sCiAJCQkJQkNBMzc4
QkIwRDE1RjY0MjAwQjc5M0Q2IC8qIFNjaGVkdWxlZEFjdGlvbi5oICovLAogCQkJCTQxRjFEMjFF
MEVGMzVDMkEwMERBODc1MyAvKiBTY3JpcHRDYWNoZWRGcmFtZURhdGEuY3BwICovLApAQCAtMjAw
MTQsNyArMjAwMTQsNyBAQAogCQkJCUUxQ0FBNUM2MEU4QkQyMzYwMEE3M0VDQSAvKiBKU1dvcmtl
ci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRTE4MjU2OTAwRUYyQjAyRDAwOTMzMjQyIC8qIEpTV29y
a2VyQ29udGV4dC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRTFDMzZEMzUwRUIwQTA5NDAwNzQxMEJD
IC8qIEpTV29ya2VyQ29udGV4dEJhc2UuaCBpbiBIZWFkZXJzICovLAotCQkJCUYzRDQ2MTQ5MTE2
MUQ1MzIwMENBMEQwOSAvKiBKU1dvcmtlckNvbnRleHRFcnJvckhhbmRsZXIuaCBpbiBIZWFkZXJz
ICovLAorCQkJCUYzRDQ2MTQ5MTE2MUQ1MzIwMENBMEQwOSAvKiBKU0Vycm9ySGFuZGxlci5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJRTFDMzYyRUYwRUFGMkFBOTAwNzQxMEJDIC8qIEpTV29ya2VyTG9j
YXRpb24uaCBpbiBIZWFkZXJzICovLAogCQkJCUUxMjcxQTU4MEVFRUNERTQwMEY2MTIxMyAvKiBK
U1dvcmtlck5hdmlnYXRvci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkMzNDhCRDQwREI3RjgwNDAw
NEFCQUI5IC8qIEpTWE1MSHR0cFJlcXVlc3QuaCBpbiBIZWFkZXJzICovLApAQCAtMjI2NTYsNyAr
MjI2NTYsNyBAQAogCQkJCUUxODI1NjhGMEVGMkIwMkQwMDkzMzI0MiAvKiBKU1dvcmtlckNvbnRl
eHQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJRTFDMzZEMzQwRUIwQTA5NDAwNzQxMEJDIC8qIEpT
V29ya2VyQ29udGV4dEJhc2UuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJRTE4MjU4QUMwRUYzQ0Q3
MDAwOTMzMjQyIC8qIEpTV29ya2VyQ29udGV4dEN1c3RvbS5jcHAgaW4gU291cmNlcyAqLywKLQkJ
CQlGM0Q0NjE0ODExNjFENTMyMDBDQTBEMDkgLyogSlNXb3JrZXJDb250ZXh0RXJyb3JIYW5kbGVy
LmNwcCBpbiBTb3VyY2VzICovLAorCQkJCUYzRDQ2MTQ4MTE2MUQ1MzIwMENBMEQwOSAvKiBKU0Vy
cm9ySGFuZGxlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlFMUNBNUNCQzBFOENEQ0FGMDBFOEVG
OTAgLyogSlNXb3JrZXJDdXN0b20uY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJRTFDMzYyRjAwRUFG
MkFBOTAwNzQxMEJDIC8qIEpTV29ya2VyTG9jYXRpb24uY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJ
RTEyNzFBNTkwRUVFQ0RFNDAwRjYxMjEzIC8qIEpTV29ya2VyTmF2aWdhdG9yLmNwcCBpbiBTb3Vy
Y2VzICovLApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0JpbmRpbmdzQWxsSW5P
bmUuY3BwIGIvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0JpbmRpbmdzQWxsSW5PbmUuY3BwCmluZGV4
IDZlMWNjMWUyM2JhMWFmODM0Y2YzNzllMzNiYTViY2ZlYjkzYWJmZTcuLjU2MDEyZmE0OGIxNGYy
MGU4NjQ0OTk5NWQ1ZjRmYzJhZDZkNjlhMzYgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvYmluZGluZ3Mv
anMvSlNCaW5kaW5nc0FsbEluT25lLmNwcAorKysgYi9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTQmlu
ZGluZ3NBbGxJbk9uZS5jcHAKQEAgLTY0LDYgKzY0LDcgQEAKICNpbmNsdWRlICJKU0RldmljZU9y
aWVudGF0aW9uRXZlbnRDdXN0b20uY3BwIgogI2luY2x1ZGUgIkpTRG9jdW1lbnRDdXN0b20uY3Bw
IgogI2luY2x1ZGUgIkpTRWxlbWVudEN1c3RvbS5jcHAiCisjaW5jbHVkZSAiSlNFcnJvckhhbmRs
ZXIuY3BwIgogI2luY2x1ZGUgIkpTRXZlbnRDdXN0b20uY3BwIgogI2luY2x1ZGUgIkpTRXZlbnRM
aXN0ZW5lci5jcHAiCiAjaW5jbHVkZSAiSlNFdmVudFNvdXJjZUN1c3RvbS5jcHAiCkBAIC0xMzAs
NyArMTMxLDYgQEAKICNpbmNsdWRlICJKU1dlYlNvY2tldEN1c3RvbS5jcHAiCiAjaW5jbHVkZSAi
SlNXb3JrZXJDb250ZXh0QmFzZS5jcHAiCiAjaW5jbHVkZSAiSlNXb3JrZXJDb250ZXh0Q3VzdG9t
LmNwcCIKLSNpbmNsdWRlICJKU1dvcmtlckNvbnRleHRFcnJvckhhbmRsZXIuY3BwIgogI2luY2x1
ZGUgIkpTV29ya2VyQ3VzdG9tLmNwcCIKICNpbmNsdWRlICJKU1hNTEh0dHBSZXF1ZXN0Q3VzdG9t
LmNwcCIKICNpbmNsdWRlICJKU1hNTEh0dHBSZXF1ZXN0VXBsb2FkQ3VzdG9tLmNwcCIKZGlmZiAt
LWdpdCBhL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01CaW5kaW5nLmNwcCBiL1dlYkNvcmUvYmlu
ZGluZ3MvanMvSlNET01CaW5kaW5nLmNwcAppbmRleCBkN2MwODZhMTUwYTg0NmU4ZDhmMzdiYmZh
YzA5Y2U1YmI2NzRkYjI1Li4wYjg2MzA2ZjFmZjVlZjZkYjBkNDIyMzcxNGQ5MGY4N2FiOWNiZjVl
IDEwMDY0NAotLS0gYS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NQmluZGluZy5jcHAKKysrIGIv
V2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTUJpbmRpbmcuY3BwCkBAIC01Miw2ICs1Miw3IEBACiAj
aW5jbHVkZSAiTWVzc2FnZVBvcnQuaCIKICNpbmNsdWRlICJSYW5nZUV4Y2VwdGlvbi5oIgogI2lu
Y2x1ZGUgIlNjcmlwdENhY2hlZEZyYW1lRGF0YS5oIgorI2luY2x1ZGUgIlNjcmlwdENhbGxTdGFj
ay5oIgogI2luY2x1ZGUgIlNjcmlwdENvbnRyb2xsZXIuaCIKICNpbmNsdWRlICJTZXR0aW5ncy5o
IgogI2luY2x1ZGUgIldlYkNvcmVKU0NsaWVudERhdGEuaCIKQEAgLTU2MCw3ICs1NjEsNyBAQCB2
b2lkIHJlcG9ydEV4Y2VwdGlvbihFeGVjU3RhdGUqIGV4ZWMsIEpTVmFsdWUgZXhjZXB0aW9uKQog
ICAgIGlmICghc2NyaXB0RXhlY3V0aW9uQ29udGV4dCkKICAgICAgICAgcmV0dXJuOwogCi0gICAg
c2NyaXB0RXhlY3V0aW9uQ29udGV4dC0+cmVwb3J0RXhjZXB0aW9uKHVzdHJpbmdUb1N0cmluZyhl
cnJvck1lc3NhZ2UpLCBsaW5lTnVtYmVyLCB1c3RyaW5nVG9TdHJpbmcoZXhjZXB0aW9uU291cmNl
VVJMKSk7CisgICAgc2NyaXB0RXhlY3V0aW9uQ29udGV4dC0+cmVwb3J0RXhjZXB0aW9uKGN1cnJl
bnRXb3JsZChleGVjKSwgdXN0cmluZ1RvU3RyaW5nKGVycm9yTWVzc2FnZSksIGxpbmVOdW1iZXIs
IHVzdHJpbmdUb1N0cmluZyhleGNlcHRpb25Tb3VyY2VVUkwpLCAwKTsKIH0KIAogdm9pZCByZXBv
cnRDdXJyZW50RXhjZXB0aW9uKEV4ZWNTdGF0ZSogZXhlYykKZGlmZiAtLWdpdCBhL1dlYkNvcmUv
YmluZGluZ3MvanMvSlNXb3JrZXJDb250ZXh0RXJyb3JIYW5kbGVyLmNwcCBiL1dlYkNvcmUvYmlu
ZGluZ3MvanMvSlNFcnJvckhhbmRsZXIuY3BwCnNpbWlsYXJpdHkgaW5kZXggODYlCnJlbmFtZSBm
cm9tIFdlYkNvcmUvYmluZGluZ3MvanMvSlNXb3JrZXJDb250ZXh0RXJyb3JIYW5kbGVyLmNwcApy
ZW5hbWUgdG8gV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0Vycm9ySGFuZGxlci5jcHAKaW5kZXggYWQz
ZjVlYzE3ZDNiNTgwY2I2ODA4OGRlYjYxOWZmNzA4YTcyYjc0ZC4uNjc3YjlhZTJmZTdkMmQzMzgz
NDRkZjY2YzkzMWQwNTE5NjgwYTAzYiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9iaW5kaW5ncy9qcy9K
U1dvcmtlckNvbnRleHRFcnJvckhhbmRsZXIuY3BwCisrKyBiL1dlYkNvcmUvYmluZGluZ3MvanMv
SlNFcnJvckhhbmRsZXIuY3BwCkBAIC0zMCw5ICszMCw3IEBACiAKICNpbmNsdWRlICJjb25maWcu
aCIKIAotI2lmIEVOQUJMRShXT1JLRVJTKQotCi0jaW5jbHVkZSAiSlNXb3JrZXJDb250ZXh0RXJy
b3JIYW5kbGVyLmgiCisjaW5jbHVkZSAiSlNFcnJvckhhbmRsZXIuaCIKIAogI2luY2x1ZGUgIkVy
cm9yRXZlbnQuaCIKICNpbmNsdWRlICJFdmVudC5oIgpAQCAtNDMsMjEgKzQxLDI4IEBAIHVzaW5n
IG5hbWVzcGFjZSBKU0M7CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotSlNXb3JrZXJDb250ZXh0
RXJyb3JIYW5kbGVyOjpKU1dvcmtlckNvbnRleHRFcnJvckhhbmRsZXIoSlNPYmplY3QqIGZ1bmN0
aW9uLCBKU09iamVjdCogd3JhcHBlciwgYm9vbCBpc0F0dHJpYnV0ZSwgRE9NV3JhcHBlcldvcmxk
KiBpc29sYXRlZFdvcmxkKQorSlNFcnJvckhhbmRsZXI6OkpTRXJyb3JIYW5kbGVyKEpTT2JqZWN0
KiBmdW5jdGlvbiwgSlNPYmplY3QqIHdyYXBwZXIsIGJvb2wgaXNBdHRyaWJ1dGUsIERPTVdyYXBw
ZXJXb3JsZCogaXNvbGF0ZWRXb3JsZCkKICAgICA6IEpTRXZlbnRMaXN0ZW5lcihmdW5jdGlvbiwg
d3JhcHBlciwgaXNBdHRyaWJ1dGUsIGlzb2xhdGVkV29ybGQpCiB7CiB9CiAKLUpTV29ya2VyQ29u
dGV4dEVycm9ySGFuZGxlcjo6fkpTV29ya2VyQ29udGV4dEVycm9ySGFuZGxlcigpCitKU0Vycm9y
SGFuZGxlcjo6fkpTRXJyb3JIYW5kbGVyKCkKIHsKIH0KIAotdm9pZCBKU1dvcmtlckNvbnRleHRF
cnJvckhhbmRsZXI6OmhhbmRsZUV2ZW50KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIHNjcmlwdEV4
ZWN1dGlvbkNvbnRleHQsIEV2ZW50KiBldmVudCkKK3ZvaWQgSlNFcnJvckhhbmRsZXI6OmhhbmRs
ZUV2ZW50KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQsIEV2
ZW50KiBldmVudCkKIHsKICAgICBBU1NFUlQoc2NyaXB0RXhlY3V0aW9uQ29udGV4dCk7CiAgICAg
aWYgKCFzY3JpcHRFeGVjdXRpb25Db250ZXh0KQogICAgICAgICByZXR1cm47CiAKKyAgICBBU1NF
UlQoZXZlbnQtPmlzRXJyb3JFdmVudCgpKTsKKyAgICBFcnJvckV2ZW50KiBlcnJvckV2ZW50ID0g
c3RhdGljX2Nhc3Q8RXJyb3JFdmVudCo+KGV2ZW50KTsKKworICAgIC8vIEl0IGlzIHVuc2VjdXJl
IHRvIHJlcG9ydCBleGNlcHRpb24gZnJvbSBvbmUgd29ybGQgdG8gYSBoYW5kbGVyIGZyb20gYW5v
dGhlci4KKyAgICBpZiAoaXNvbGF0ZWRXb3JsZCgpICE9IGVycm9yRXZlbnQtPndyYXBwZXJXb3Js
ZCgpKQorICAgICAgICByZXR1cm47CisKICAgICBKU0xvY2sgbG9jayhTaWxlbmNlQXNzZXJ0aW9u
c09ubHkpOwogCiAgICAgSlNPYmplY3QqIGpzRnVuY3Rpb24gPSB0aGlzLT5qc0Z1bmN0aW9uKHNj
cmlwdEV4ZWN1dGlvbkNvbnRleHQpOwpAQCAtODAsOSArODUsNiBAQCB2b2lkIEpTV29ya2VyQ29u
dGV4dEVycm9ySGFuZGxlcjo6aGFuZGxlRXZlbnQoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogc2Ny
aXB0RXhlYwogICAgICAgICBFdmVudCogc2F2ZWRFdmVudCA9IGdsb2JhbE9iamVjdC0+Y3VycmVu
dEV2ZW50KCk7CiAgICAgICAgIGdsb2JhbE9iamVjdC0+c2V0Q3VycmVudEV2ZW50KGV2ZW50KTsK
IAotICAgICAgICBBU1NFUlQoZXZlbnQtPmlzRXJyb3JFdmVudCgpKTsKLSAgICAgICAgRXJyb3JF
dmVudCogZXJyb3JFdmVudCA9IHN0YXRpY19jYXN0PEVycm9yRXZlbnQqPihldmVudCk7Ci0KICAg
ICAgICAgTWFya2VkQXJndW1lbnRCdWZmZXIgYXJnczsKICAgICAgICAgYXJncy5hcHBlbmQoanNT
dHJpbmcoZXhlYywgZXJyb3JFdmVudC0+bWVzc2FnZSgpKSk7CiAgICAgICAgIGFyZ3MuYXBwZW5k
KGpzU3RyaW5nKGV4ZWMsIGVycm9yRXZlbnQtPmZpbGVuYW1lKCkpKTsKQEAgLTExMiw1ICsxMTQs
MyBAQCB2b2lkIEpTV29ya2VyQ29udGV4dEVycm9ySGFuZGxlcjo6aGFuZGxlRXZlbnQoU2NyaXB0
RXhlY3V0aW9uQ29udGV4dCogc2NyaXB0RXhlYwogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3Jl
Ci0KLSNlbmRpZiAvLyBFTkFCTEUoV09SS0VSUykKZGlmZiAtLWdpdCBhL1dlYkNvcmUvYmluZGlu
Z3MvanMvSlNXb3JrZXJDb250ZXh0RXJyb3JIYW5kbGVyLmggYi9XZWJDb3JlL2JpbmRpbmdzL2pz
L0pTRXJyb3JIYW5kbGVyLmgKc2ltaWxhcml0eSBpbmRleCA2OSUKY29weSBmcm9tIFdlYkNvcmUv
YmluZGluZ3MvanMvSlNXb3JrZXJDb250ZXh0RXJyb3JIYW5kbGVyLmgKY29weSB0byBXZWJDb3Jl
L2JpbmRpbmdzL2pzL0pTRXJyb3JIYW5kbGVyLmgKaW5kZXggYTE4ODI5OTAzOGM5Y2RmZTcyMjg2
YjcxZmVhZWIzYTQ5YzJhMGQ4MS4uOTU3ZmQ4MWRhYTA1NzQ2OWIyMTEyZTExZDdlNzA0YWQ0ZTI5
ZDdlZCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1dvcmtlckNvbnRleHRFcnJv
ckhhbmRsZXIuaAorKysgYi9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRXJyb3JIYW5kbGVyLmgKQEAg
LTI4LDM3ICsyOCwzNyBAQAogICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KICAqLwogCi0jaWZuZGVmIEpTV29ya2Vy
Q29udGV4dEVycm9ySGFuZGxlcl9oCi0jZGVmaW5lIEpTV29ya2VyQ29udGV4dEVycm9ySGFuZGxl
cl9oCisjaWZuZGVmIEpTRXJyb3JIYW5kbGVyX2gKKyNkZWZpbmUgSlNFcnJvckhhbmRsZXJfaAog
CiAjaW5jbHVkZSAiSlNFdmVudExpc3RlbmVyLmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAot
Y2xhc3MgSlNXb3JrZXJDb250ZXh0RXJyb3JIYW5kbGVyIDogcHVibGljIEpTRXZlbnRMaXN0ZW5l
ciB7CitjbGFzcyBKU0Vycm9ySGFuZGxlciA6IHB1YmxpYyBKU0V2ZW50TGlzdGVuZXIgewogcHVi
bGljOgotICAgIHN0YXRpYyBQYXNzUmVmUHRyPEpTV29ya2VyQ29udGV4dEVycm9ySGFuZGxlcj4g
Y3JlYXRlKEpTQzo6SlNPYmplY3QqIGxpc3RlbmVyLCBKU0M6OkpTT2JqZWN0KiB3cmFwcGVyLCBi
b29sIGlzQXR0cmlidXRlLCBET01XcmFwcGVyV29ybGQqIGlzb2xhdGVkV29ybGQpCisgICAgc3Rh
dGljIFBhc3NSZWZQdHI8SlNFcnJvckhhbmRsZXI+IGNyZWF0ZShKU0M6OkpTT2JqZWN0KiBsaXN0
ZW5lciwgSlNDOjpKU09iamVjdCogd3JhcHBlciwgYm9vbCBpc0F0dHJpYnV0ZSwgRE9NV3JhcHBl
cldvcmxkKiBpc29sYXRlZFdvcmxkKQogICAgIHsKLSAgICAgICAgcmV0dXJuIGFkb3B0UmVmKG5l
dyBKU1dvcmtlckNvbnRleHRFcnJvckhhbmRsZXIobGlzdGVuZXIsIHdyYXBwZXIsIGlzQXR0cmli
dXRlLCBpc29sYXRlZFdvcmxkKSk7CisgICAgICAgIHJldHVybiBhZG9wdFJlZihuZXcgSlNFcnJv
ckhhbmRsZXIobGlzdGVuZXIsIHdyYXBwZXIsIGlzQXR0cmlidXRlLCBpc29sYXRlZFdvcmxkKSk7
CiAgICAgfQogCi0gICAgdmlydHVhbCB+SlNXb3JrZXJDb250ZXh0RXJyb3JIYW5kbGVyKCk7Cisg
ICAgdmlydHVhbCB+SlNFcnJvckhhbmRsZXIoKTsKIAogcHJpdmF0ZToKLSAgICBKU1dvcmtlckNv
bnRleHRFcnJvckhhbmRsZXIoSlNDOjpKU09iamVjdCogZnVuY3Rpb24sIEpTQzo6SlNPYmplY3Qq
IHdyYXBwZXIsIGJvb2wgaXNBdHRyaWJ1dGUsIERPTVdyYXBwZXJXb3JsZCogaXNvbGF0ZWRXb3Js
ZCk7CisgICAgSlNFcnJvckhhbmRsZXIoSlNDOjpKU09iamVjdCogZnVuY3Rpb24sIEpTQzo6SlNP
YmplY3QqIHdyYXBwZXIsIGJvb2wgaXNBdHRyaWJ1dGUsIERPTVdyYXBwZXJXb3JsZCogaXNvbGF0
ZWRXb3JsZCk7CiAgICAgdmlydHVhbCB2b2lkIGhhbmRsZUV2ZW50KFNjcmlwdEV4ZWN1dGlvbkNv
bnRleHQqLCBFdmVudCopOwogfTsKIAogLy8gQ3JlYXRlcyBhIEpTIEV2ZW50TGlzdGVuZXIgZm9y
ICJvbmVycm9yIiBldmVudCBoYW5kbGVyIGluIHdvcmtlciBjb250ZXh0LiBJdCBoYXMgY3VzdG9t
IGltcGxlbWVudGF0aW9uIGJlY2F1c2UKIC8vIHVubGlrZSBvdGhlciBldmVudCBsaXN0ZW5lcnMg
aXQgYWNjZXB0cyB0aHJlZSBwYXJhbWV0ZXJzLgotaW5saW5lIFBhc3NSZWZQdHI8SlNXb3JrZXJD
b250ZXh0RXJyb3JIYW5kbGVyPiBjcmVhdGVKU1dvcmtlckNvbnRleHRFcnJvckhhbmRsZXIoSlND
OjpFeGVjU3RhdGUqIGV4ZWMsIEpTQzo6SlNWYWx1ZSBsaXN0ZW5lciwgSlNDOjpKU09iamVjdCog
d3JhcHBlcikKK2lubGluZSBQYXNzUmVmUHRyPEpTRXJyb3JIYW5kbGVyPiBjcmVhdGVKU0Vycm9y
SGFuZGxlcihKU0M6OkV4ZWNTdGF0ZSogZXhlYywgSlNDOjpKU1ZhbHVlIGxpc3RlbmVyLCBKU0M6
OkpTT2JqZWN0KiB3cmFwcGVyKQogewogICAgIGlmICghbGlzdGVuZXIuaXNPYmplY3QoKSkKICAg
ICAgICAgcmV0dXJuIDA7CiAKLSAgICByZXR1cm4gSlNXb3JrZXJDb250ZXh0RXJyb3JIYW5kbGVy
OjpjcmVhdGUoYXNPYmplY3QobGlzdGVuZXIpLCB3cmFwcGVyLCB0cnVlLCBjdXJyZW50V29ybGQo
ZXhlYykpOworICAgIHJldHVybiBKU0Vycm9ySGFuZGxlcjo6Y3JlYXRlKGFzT2JqZWN0KGxpc3Rl
bmVyKSwgd3JhcHBlciwgdHJ1ZSwgY3VycmVudFdvcmxkKGV4ZWMpKTsKIH0KIAogfSAvLyBuYW1l
c3BhY2UgV2ViQ29yZQogCi0jZW5kaWYgLy8gSlNXb3JrZXJDb250ZXh0RXJyb3JIYW5kbGVyX2gK
KyNlbmRpZiAvLyBKU0Vycm9ySGFuZGxlcl9oCmRpZmYgLS1naXQgYS9XZWJDb3JlL2JpbmRpbmdz
L3NjcmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtIGIvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0Nv
ZGVHZW5lcmF0b3JKUy5wbQppbmRleCA4MDM1NDJlNjlkODJkY2JkZjUyNzhjZGU3MmQwNmI1NTU0
MmI3MTE2Li45N2RmNGEwNmIyMjk1ODM4OTMyNmZhYWIwYzQzNDQ2MDY2Njc4ZjkxIDEwMDY0NAot
LS0gYS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtCisrKyBiL1dl
YkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG0KQEAgLTE3MTQsOSArMTcx
NCw5IEBAIHN1YiBHZW5lcmF0ZUltcGxlbWVudGF0aW9uCiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgIEpTRE9NR2xvYmFsT2JqZWN0KiBnbG9i
YWxPYmplY3QgPSBjYXN0ZWRUaGlzLT5nbG9iYWxPYmplY3QoKTtcbiIpOwogICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwdXNoKEBpbXBs
Q29udGVudCwgIiAgICAkaW1wbENsYXNzTmFtZSogaW1wID0gc3RhdGljX2Nhc3Q8JGltcGxDbGFz
c05hbWUqPihzdGF0aWNfY2FzdDwkY2xhc3NOYW1lKj4odGhpc09iamVjdCktPmltcGwoKSk7XG4i
KTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoJGludGVyZmFjZU5hbWUgZXEgIldv
cmtlckNvbnRleHQiIGFuZCAkbmFtZSBlcSAib25lcnJvciIpIHsKLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgJGltcGxJbmNsdWRlc3siSlNXb3JrZXJDb250ZXh0RXJyb3JIYW5kbGVy
LmgifSA9IDE7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHB1c2goQGltcGxDb250
ZW50LCAiICAgIGltcC0+c2V0JGltcGxTZXR0ZXJGdW5jdGlvbk5hbWUoY3JlYXRlSlNXb3JrZXJD
b250ZXh0RXJyb3JIYW5kbGVyKGV4ZWMsIHZhbHVlLCB0aGlzT2JqZWN0KSk7XG4iKTsKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBpZiAoKCgkaW50ZXJmYWNlTmFtZSBlcSAiRE9NV2luZG93
Iikgb3IgKCRpbnRlcmZhY2VOYW1lIGVxICJXb3JrZXJDb250ZXh0IikpIGFuZCAkbmFtZSBlcSAi
b25lcnJvciIpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJGltcGxJbmNsdWRl
c3siSlNFcnJvckhhbmRsZXIuaCJ9ID0gMTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgaW1wLT5zZXQkaW1wbFNldHRlckZ1bmN0aW9uTmFt
ZShjcmVhdGVKU0Vycm9ySGFuZGxlcihleGVjLCB2YWx1ZSwgdGhpc09iamVjdCkpO1xuIik7CiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsIEdlbmVyYXRlQXR0cmlidXRlRXZlbnRMaXN0
ZW5lckNhbGwoJGNsYXNzTmFtZSwgJGltcGxTZXR0ZXJGdW5jdGlvbk5hbWUsICR3aW5kb3dFdmVu
dExpc3RlbmVyKSk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQpkaWZmIC0tZ2l0IGEv
V2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JWOC5wbSBiL1dlYkNvcmUvYmlu
ZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9yVjgucG0KaW5kZXggMzM1M2YwZjVlNjc0MjYxNWNj
M2UwYTM5ZWNmYjQyZTMzNzFlNzM1NC4uYTYxZTQ5YWQ3MTEzZGMxMzI0OGM3ZDhhYjA3ZTBmODE2
ODhmNTIzZSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0
b3JWOC5wbQorKysgYi9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvclY4LnBt
CkBAIC05OTUsNiArOTk1LDEwIEBAIEVORAogICAgICAgICAgICAgICAgICRpbXBsSW5jbHVkZXN7
IlY4RXZlbnRMaXN0ZW5lckxpc3QuaCJ9ID0gMTsKICAgICAgICAgICAgICAgICAkaW1wbEluY2x1
ZGVzeyJWOFdvcmtlckNvbnRleHRFcnJvckhhbmRsZXIuaCJ9ID0gMTsKICAgICAgICAgICAgICAg
ICBwdXNoKEBpbXBsQ29udGVudERlY2xzLCAiICAgIGltcC0+c2V0JGltcGxTZXR0ZXJGdW5jdGlv
bk5hbWUoVjhFdmVudExpc3RlbmVyTGlzdDo6ZmluZE9yQ3JlYXRlV3JhcHBlcjxWOFdvcmtlckNv
bnRleHRFcnJvckhhbmRsZXI+KHZhbHVlLCB0cnVlKSIpOworICAgICAgICAgICAgfSBlbHNpZiAo
JGludGVyZmFjZU5hbWUgZXEgIkRPTVdpbmRvdyIgYW5kICRhdHRyaWJ1dGUtPnNpZ25hdHVyZS0+
bmFtZSBlcSAib25lcnJvciIpIHsKKyAgICAgICAgICAgICAgICAkaW1wbEluY2x1ZGVzeyJWOEV2
ZW50TGlzdGVuZXJMaXN0LmgifSA9IDE7CisgICAgICAgICAgICAgICAgJGltcGxJbmNsdWRlc3si
VjhXaW5kb3dFcnJvckhhbmRsZXIuaCJ9ID0gMTsKKyAgICAgICAgICAgICAgICBwdXNoKEBpbXBs
Q29udGVudERlY2xzLCAiICAgIGltcC0+c2V0JGltcGxTZXR0ZXJGdW5jdGlvbk5hbWUoVjhFdmVu
dExpc3RlbmVyTGlzdDo6ZmluZE9yQ3JlYXRlV3JhcHBlcjxWOFdpbmRvd0Vycm9ySGFuZGxlcj4o
dmFsdWUsIHRydWUpIik7CiAgICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgIHB1
c2goQGltcGxDb250ZW50RGVjbHMsICIgICAgaW1wLT5zZXQkaW1wbFNldHRlckZ1bmN0aW9uTmFt
ZShWOERPTVdyYXBwZXI6OmdldEV2ZW50TGlzdGVuZXIodmFsdWUsIHRydWUsIExpc3RlbmVyRmlu
ZE9yQ3JlYXRlKSIpOwogICAgICAgICAgICAgfQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9iaW5kaW5n
cy92OC9ET01XcmFwcGVyV29ybGQuY3BwIGIvV2ViQ29yZS9iaW5kaW5ncy92OC9ET01XcmFwcGVy
V29ybGQuY3BwCmluZGV4IDFlOTQyOWY5ZDNlNThiMWRkN2I5Y2ZiYmIyNTg4OTBkMTQ0MTdhNGEu
LjA1MDk5YWQwNTgzMzUyYjg1YTg0YjRiYjgzODk4MzI4ZjgxMmU2MDkgMTAwNjQ0Ci0tLSBhL1dl
YkNvcmUvYmluZGluZ3MvdjgvRE9NV3JhcHBlcldvcmxkLmNwcAorKysgYi9XZWJDb3JlL2JpbmRp
bmdzL3Y4L0RPTVdyYXBwZXJXb3JsZC5jcHAKQEAgLTMxLDYgKzMxLDExIEBACiAjaW5jbHVkZSAi
Y29uZmlnLmgiCiAjaW5jbHVkZSAiRE9NV3JhcHBlcldvcmxkLmgiCiAKKyNpbmNsdWRlICJGcmFt
ZS5oIgorI2luY2x1ZGUgIlNjcmlwdEV4ZWN1dGlvbkNvbnRleHQuaCIKKyNpbmNsdWRlICJWOElz
b2xhdGVkQ29udGV4dC5oIgorI2luY2x1ZGUgIlY4UHJveHkuaCIKKyNpbmNsdWRlICJXb3JsZENv
bnRleHRIYW5kbGUuaCIKICNpbmNsdWRlIDx3dGYvU3RkTGliRXh0cmFzLmg+CiAjaW5jbHVkZSA8
d3RmL1RocmVhZGluZy5oPgogCkBAIC00OCw0ICs1MywzMCBAQCBET01XcmFwcGVyV29ybGQqIG1h
aW5UaHJlYWROb3JtYWxXb3JsZCgpCiAgICAgcmV0dXJuIGNhY2hlZE5vcm1hbFdvcmxkLmdldCgp
OwogfQogCitET01XcmFwcGVyV29ybGQqIGVudGVyZWRDb250ZXh0V29ybGQoKQoreworICAgIHY4
OjpIYW5kbGVTY29wZSBoYW5kbGVTY29wZTsKKyAgICB2ODo6SGFuZGxlPHY4OjpDb250ZXh0PiBl
bnRlcmVkQ290bmV4dCA9IHY4OjpDb250ZXh0OjpHZXRFbnRlcmVkKCk7CisgICAgaWYgKGVudGVy
ZWRDb3RuZXh0LklzRW1wdHkoKSkKKyAgICAgICAgcmV0dXJuIDA7CisgICAgRnJhbWUqIGZyYW1l
ID0gVjhQcm94eTo6cmV0cmlldmVGcmFtZShlbnRlcmVkQ290bmV4dCk7CisgICAgVjhQcm94eSog
cHJveHkgPSBWOFByb3h5OjpyZXRyaWV2ZShmcmFtZSk7CisgICAgaWYgKHByb3h5LT5tYWluV29y
bGRDb250ZXh0KCkgPT0gZW50ZXJlZENvdG5leHQpCisgICAgICAgIHJldHVybiBtYWluVGhyZWFk
Tm9ybWFsV29ybGQoKTsKKyAgICByZXR1cm4gVjhJc29sYXRlZENvbnRleHQ6OmdldEVudGVyZWQo
KS0+d29ybGQoKTsKK30KKworRE9NV3JhcHBlcldvcmxkKiBjb250ZXh0V29ybGQoU2NyaXB0RXhl
Y3V0aW9uQ29udGV4dCogc2NyaXB0RXhlY3V0aW9uQ29udGV4dCwgY29uc3QgV29ybGRDb250ZXh0
SGFuZGxlJiBjb250ZXh0SGFuZGxlKQoreworICAgIEFTU0VSVChzY3JpcHRFeGVjdXRpb25Db250
ZXh0LT5pc0RvY3VtZW50KCkpOworICAgIGlmIChWOFByb3h5KiBwcm94eSA9IFY4UHJveHk6OnJl
dHJpZXZlKHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQpKSB7CisgICAgICAgIHY4OjpIYW5kbGVTY29w
ZSBoYW5kbGVTY29wZTsKKyAgICAgICAgdjg6OkxvY2FsPHY4OjpDb250ZXh0PiBjb250ZXh0ID0g
Y29udGV4dEhhbmRsZS5hZGp1c3RlZENvbnRleHQocHJveHkpOworICAgICAgICB2ODo6Q29udGV4
dDo6U2NvcGUgY29udGV4dFNjb3BlKGNvbnRleHQpOworICAgICAgICByZXR1cm4gZW50ZXJlZENv
bnRleHRXb3JsZCgpOworICAgIH0KKyAgICByZXR1cm4gMDsKK30KKworCiB9IC8vIG5hbWVzcGFj
ZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9XZWJDb3JlL2JpbmRpbmdzL3Y4L0RPTVdyYXBwZXJXb3Js
ZC5oIGIvV2ViQ29yZS9iaW5kaW5ncy92OC9ET01XcmFwcGVyV29ybGQuaAppbmRleCAyYTlkZjMw
Y2QyZDc2MTY0NGQzYThmZGY3MWE4MjQ4MzNjOGY2NjA5Li4yZTZkYmI2NTU2YTIyZWJlNDE1NTg4
YmZlYzU3YjMwZWNmYmQxMTY1IDEwMDY0NAotLS0gYS9XZWJDb3JlL2JpbmRpbmdzL3Y4L0RPTVdy
YXBwZXJXb3JsZC5oCisrKyBiL1dlYkNvcmUvYmluZGluZ3MvdjgvRE9NV3JhcHBlcldvcmxkLmgK
QEAgLTM3LDYgKzM3LDkgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCitjbGFzcyBTY3JpcHRF
eGVjdXRpb25Db250ZXh0OworY2xhc3MgV29ybGRDb250ZXh0SGFuZGxlOworCiAvLyBUaGlzIGNs
YXNzIHJlcHJlc2VudCBhIGNvbGxlY3Rpb24gb2YgRE9NIHdyYXBwZXJzIGZvciBhIHNwZWNpZmlj
IHdvcmxkLgogLy8gVGhlIGJhc2UgY2xhc3MgaXMgcHJldHR5IGJvcmluZyBiZWNhdXNlIHRoZSB3
cmFwcGVycyBhcmUgYWN0dWFsbHkgc3RvcmVkCiAvLyBzdGF0aWNhbGx5IGluIFY4RE9NTWFwIGFu
ZCBnYXJiYWdlIGNvbGxlY3RlZCBieSBWOCBpdHNlbGYuCkBAIC01MSw2ICs1NCw5IEBAIHByb3Rl
Y3RlZDoKIAogRE9NV3JhcHBlcldvcmxkKiBtYWluVGhyZWFkTm9ybWFsV29ybGQoKTsKIAorRE9N
V3JhcHBlcldvcmxkKiBlbnRlcmVkQ29udGV4dFdvcmxkKCk7CitET01XcmFwcGVyV29ybGQqIGNv
bnRleHRXb3JsZChTY3JpcHRFeGVjdXRpb25Db250ZXh0KiwgY29uc3QgV29ybGRDb250ZXh0SGFu
ZGxlJik7CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAogI2VuZGlmIC8vIERPTVdyYXBwZXJX
b3JsZF9oCmRpZmYgLS1naXQgYS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1Y4Q29uc29sZU1lc3NhZ2Uu
Y3BwIGIvV2ViQ29yZS9iaW5kaW5ncy92OC9WOENvbnNvbGVNZXNzYWdlLmNwcAppbmRleCA4YjZi
YjE3ODZhODVjNzliY2YwMmZkZGU4NTQxNjUxN2QxZDFhODczLi40Zjg0MmUzNDRkYjc3NjM2OWE3
OTY5NTllY2NkNzhjOTkwODk2NGNhIDEwMDY0NAotLS0gYS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1Y4
Q29uc29sZU1lc3NhZ2UuY3BwCisrKyBiL1dlYkNvcmUvYmluZGluZ3MvdjgvVjhDb25zb2xlTWVz
c2FnZS5jcHAKQEAgLTUzLDcgKzUzLDE0IEBAIFY4Q29uc29sZU1lc3NhZ2U6OlY4Q29uc29sZU1l
c3NhZ2UoY29uc3QgU3RyaW5nJiBzdHJpbmcsIGNvbnN0IFN0cmluZyYgc291cmNlSUQsCiAKIHZv
aWQgVjhDb25zb2xlTWVzc2FnZTo6ZGlzcGF0Y2hOb3coUGFnZSogcGFnZSkKIHsKLSAgICBkaXNw
YXRjaE5vdyhwYWdlLCAwKTsKKyAgICBBU1NFUlQocGFnZSk7CisKKyAgICAvLyBQcm9jZXNzIGFu
eSBkZWxheWVkIG1lc3NhZ2VzIHRvIG1ha2Ugc3VyZSB0aGF0IG1lc3NhZ2VzCisgICAgLy8gYXBw
ZWFyIGluIHRoZSByaWdodCBvcmRlciBpbiB0aGUgY29uc29sZS4KKyAgICBwcm9jZXNzRGVsYXll
ZCgpOworCisgICAgQ29uc29sZSogY29uc29sZSA9IHBhZ2UtPm1haW5GcmFtZSgpLT5kb21XaW5k
b3coKS0+Y29uc29sZSgpOworICAgIGNvbnNvbGUtPmFkZE1lc3NhZ2UoSlNNZXNzYWdlU291cmNl
LCBMb2dNZXNzYWdlVHlwZSwgRXJyb3JNZXNzYWdlTGV2ZWwsIG1fc3RyaW5nLCBtX2xpbmVOdW1i
ZXIsIG1fc291cmNlSUQpOwogfQogCiB2b2lkIFY4Q29uc29sZU1lc3NhZ2U6OmRpc3BhdGNoTGF0
ZXIoKQpAQCAtMTA0LDggKzExMSw4IEBAIHZvaWQgVjhDb25zb2xlTWVzc2FnZTo6aGFuZGxlcih2
ODo6SGFuZGxlPHY4OjpNZXNzYWdlPiBtZXNzYWdlLCB2ODo6SGFuZGxlPHY4OjpWCiAgICAgRnJh
bWUqIGZyYW1lID0gVjhQcm94eTo6cmV0cmlldmVGcmFtZUZvckVudGVyZWRDb250ZXh0KCk7CiAg
ICAgaWYgKCFmcmFtZSkKICAgICAgICAgcmV0dXJuOwotICAgIFBhZ2UqIHBhZ2UgPSBmcmFtZS0+
cGFnZSgpOwotICAgIGlmICghcGFnZSkKKyAgICBEb2N1bWVudCogZG9jdW1lbnQgPSBmcmFtZS0+
ZG9jdW1lbnQoKTsKKyAgICBpZiAoIWRvY3VtZW50KQogICAgICAgICByZXR1cm47CiAKICAgICB2
ODo6SGFuZGxlPHY4OjpTdHJpbmc+IGVycm9yTWVzc2FnZVN0cmluZyA9IG1lc3NhZ2UtPkdldCgp
OwpAQCAtMTI0LDIxICsxMzEsOSBAQCB2b2lkIFY4Q29uc29sZU1lc3NhZ2U6OmhhbmRsZXIodjg6
OkhhbmRsZTx2ODo6TWVzc2FnZT4gbWVzc2FnZSwgdjg6OkhhbmRsZTx2ODo6VgogICAgIHY4OjpI
YW5kbGU8djg6OlZhbHVlPiByZXNvdXJjZU5hbWUgPSBtZXNzYWdlLT5HZXRTY3JpcHRSZXNvdXJj
ZU5hbWUoKTsKICAgICBib29sIHVzZVVSTCA9IHJlc291cmNlTmFtZS5Jc0VtcHR5KCkgfHwgIXJl
c291cmNlTmFtZS0+SXNTdHJpbmcoKTsKICAgICBTdHJpbmcgcmVzb3VyY2VOYW1lU3RyaW5nID0g
dXNlVVJMID8gZnJhbWUtPmRvY3VtZW50KCktPnVybCgpIDogdG9XZWJDb3JlU3RyaW5nKHJlc291
cmNlTmFtZSk7Ci0gICAgVjhDb25zb2xlTWVzc2FnZSBjb25zb2xlTWVzc2FnZShlcnJvck1lc3Nh
Z2UsIHJlc291cmNlTmFtZVN0cmluZywgbWVzc2FnZS0+R2V0TGluZU51bWJlcigpKTsKLSAgICBj
b25zb2xlTWVzc2FnZS5kaXNwYXRjaE5vdyhwYWdlLCBjYWxsU3RhY2suZ2V0KCkpOwotfQotCi12
b2lkIFY4Q29uc29sZU1lc3NhZ2U6OmRpc3BhdGNoTm93KFBhZ2UqIHBhZ2UsIFNjcmlwdENhbGxT
dGFjayogY2FsbFN0YWNrKQotewotICAgIEFTU0VSVChwYWdlKTsKIAotICAgIC8vIFByb2Nlc3Mg
YW55IGRlbGF5ZWQgbWVzc2FnZXMgdG8gbWFrZSBzdXJlIHRoYXQgbWVzc2FnZXMKLSAgICAvLyBh
cHBlYXIgaW4gdGhlIHJpZ2h0IG9yZGVyIGluIHRoZSBjb25zb2xlLgogICAgIHByb2Nlc3NEZWxh
eWVkKCk7Ci0KLSAgICBDb25zb2xlKiBjb25zb2xlID0gcGFnZS0+bWFpbkZyYW1lKCktPmRvbVdp
bmRvdygpLT5jb25zb2xlKCk7Ci0gICAgTWVzc2FnZVR5cGUgbWVzc2FnZVR5cGUgPSBjYWxsU3Rh
Y2sgPyBVbmNhdWdodEV4Y2VwdGlvbk1lc3NhZ2VUeXBlIDogTG9nTWVzc2FnZVR5cGU7Ci0gICAg
Y29uc29sZS0+YWRkTWVzc2FnZShKU01lc3NhZ2VTb3VyY2UsIG1lc3NhZ2VUeXBlLCBFcnJvck1l
c3NhZ2VMZXZlbCwgbV9zdHJpbmcsIG1fbGluZU51bWJlciwgbV9zb3VyY2VJRCwgY2FsbFN0YWNr
KTsKKyAgICBkb2N1bWVudC0+cmVwb3J0RXhjZXB0aW9uKGVudGVyZWRDb250ZXh0V29ybGQoKSwg
ZXJyb3JNZXNzYWdlLCBtZXNzYWdlLT5HZXRMaW5lTnVtYmVyKCksIHJlc291cmNlTmFtZVN0cmlu
ZywgY2FsbFN0YWNrLnJlbGVhc2UoKSk7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlm
ZiAtLWdpdCBhL1dlYkNvcmUvYmluZGluZ3MvdjgvVjhDb25zb2xlTWVzc2FnZS5oIGIvV2ViQ29y
ZS9iaW5kaW5ncy92OC9WOENvbnNvbGVNZXNzYWdlLmgKaW5kZXggMzg3YjVlZTM0YjU2OGU2ODNm
NGNlN2VlYWVmMTRjMjZiMTU2N2U1My4uZTJmYmNhN2RmMzYyMzI5OGYyNDUwNTUyMDExNThlOTU2
Nzk2YWYxOSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9iaW5kaW5ncy92OC9WOENvbnNvbGVNZXNzYWdl
LmgKKysrIGIvV2ViQ29yZS9iaW5kaW5ncy92OC9WOENvbnNvbGVNZXNzYWdlLmgKQEAgLTM3LDU2
ICszNyw1NSBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLSAgICBjbGFzcyBQYWdlOwotICAg
IGNsYXNzIFNjcmlwdENhbGxTdGFjazsKK2NsYXNzIEZyYW1lOworY2xhc3MgUGFnZTsKK2NsYXNz
IFNjcmlwdENhbGxTdGFjazsKIAotICAgIC8vIFY4Q29uc29sZU1lc3NhZ2UgZW5jYXBzdWxhdGVz
IGV2ZXJ5dGhpbmcgbmVlZGVkIHRvCi0gICAgLy8gbG9nIG1lc3NhZ2VzIG9yaWdpbmF0aW5nIGZy
b20gSmF2YVNjcmlwdCB0byB0aGUgY29uc29sZS4KLSAgICBjbGFzcyBWOENvbnNvbGVNZXNzYWdl
IHsKLSAgICBwdWJsaWM6Ci0gICAgICAgIFY4Q29uc29sZU1lc3NhZ2UoY29uc3QgU3RyaW5nJiBz
dHJpbmcsIGNvbnN0IFN0cmluZyYgc291cmNlSUQsIHVuc2lnbmVkIGxpbmVOdW1iZXIpOwotCi0g
ICAgICAgIC8vIEFkZCBhIG1lc3NhZ2UgdG8gdGhlIGNvbnNvbGUuIE1heSBlbmQgdXAgY2FsbGlu
ZyBKYXZhU2NyaXB0IGNvZGUKLSAgICAgICAgLy8gaW5kaXJlY3RseSB0aHJvdWdoIHRoZSBpbnNw
ZWN0b3Igc28gb25seSBjYWxsIHRoaXMgZnVuY3Rpb24gd2hlbgotICAgICAgICAvLyBpdCBpcyBz
YWZlIHRvIGRvIGFsbG9jYXRpb25zLgotICAgICAgICB2b2lkIGRpc3BhdGNoTm93KFBhZ2UqKTsK
Ky8vIFY4Q29uc29sZU1lc3NhZ2UgZW5jYXBzdWxhdGVzIGV2ZXJ5dGhpbmcgbmVlZGVkIHRvCisv
LyBsb2cgbWVzc2FnZXMgb3JpZ2luYXRpbmcgZnJvbSBKYXZhU2NyaXB0IHRvIHRoZSBjb25zb2xl
LgorY2xhc3MgVjhDb25zb2xlTWVzc2FnZSB7CitwdWJsaWM6CisgICAgVjhDb25zb2xlTWVzc2Fn
ZShjb25zdCBTdHJpbmcmIHN0cmluZywgY29uc3QgU3RyaW5nJiBzb3VyY2VJRCwgdW5zaWduZWQg
bGluZU51bWJlcik7CiAKLSAgICAgICAgLy8gQWRkIGEgbWVzc2FnZSB0byB0aGUgY29uc29sZSBi
dXQgZGVsYXkgdGhlIHJlcG9ydGluZyB1bnRpbCBpdAotICAgICAgICAvLyBpcyBzYWZlIHRvIGRv
IHNvOiBFaXRoZXIgd2hlbiB3ZSBsZWF2ZSBKYXZhU2NyaXB0IGV4ZWN1dGlvbiBvcgotICAgICAg
ICAvLyB3aGVuIGFkZGluZyBvdGhlciBjb25zb2xlIG1lc3NhZ2VzLiBUaGUgcHJpbWFyeSBwdXJw
b3NlIG9mIHRoaXMKLSAgICAgICAgLy8gbWV0aG9kIGlzIHRvIGF2b2lkIGNhbGxpbmcgaW50byBW
OCB0byBoYW5kbGUgY29uc29sZSBtZXNzYWdlcwotICAgICAgICAvLyB3aGVuIHRoZSBWTSBpcyBp
biBhIHN0YXRlIHRoYXQgZG9lcyBub3Qgc3VwcG9ydCBHQ3Mgb3IgYWxsb2NhdGlvbnMuCi0gICAg
ICAgIC8vIERlbGF5ZWQgbWVzc2FnZXMgYXJlIGFsd2F5cyByZXBvcnRlZCBpbiB0aGUgcGFnZSBj
b3JyZXNwb25kaW5nCi0gICAgICAgIC8vIHRvIHRoZSBhY3RpdmUgY29udGV4dC4KLSAgICAgICAg
dm9pZCBkaXNwYXRjaExhdGVyKCk7CisgICAgLy8gQWRkIGEgbWVzc2FnZSB0byB0aGUgY29uc29s
ZS4gTWF5IGVuZCB1cCBjYWxsaW5nIEphdmFTY3JpcHQgY29kZQorICAgIC8vIGluZGlyZWN0bHkg
dGhyb3VnaCB0aGUgaW5zcGVjdG9yIHNvIG9ubHkgY2FsbCB0aGlzIGZ1bmN0aW9uIHdoZW4KKyAg
ICAvLyBpdCBpcyBzYWZlIHRvIGRvIGFsbG9jYXRpb25zLgorICAgIHZvaWQgZGlzcGF0Y2hOb3co
UGFnZSopOwogCi0gICAgICAgIC8vIFByb2Nlc3MgYW55IGRlbGF5ZWQgbWVzc2FnZXMuIE1heSBl
bmQgdXAgY2FsbGluZyBKYXZhU2NyaXB0IGNvZGUKLSAgICAgICAgLy8gaW5kaXJlY3RseSB0aHJv
dWdoIHRoZSBpbnNwZWN0b3Igc28gb25seSBjYWxsIHRoaXMgZnVuY3Rpb24gd2hlbgotICAgICAg
ICAvLyBpdCBpcyBzYWZlIHRvIGRvIGFsbG9jYXRpb25zLgotICAgICAgICBzdGF0aWMgdm9pZCBw
cm9jZXNzRGVsYXllZCgpOworICAgIC8vIEFkZCBhIG1lc3NhZ2UgdG8gdGhlIGNvbnNvbGUgYnV0
IGRlbGF5IHRoZSByZXBvcnRpbmcgdW50aWwgaXQKKyAgICAvLyBpcyBzYWZlIHRvIGRvIHNvOiBF
aXRoZXIgd2hlbiB3ZSBsZWF2ZSBKYXZhU2NyaXB0IGV4ZWN1dGlvbiBvcgorICAgIC8vIHdoZW4g
YWRkaW5nIG90aGVyIGNvbnNvbGUgbWVzc2FnZXMuIFRoZSBwcmltYXJ5IHB1cnBvc2Ugb2YgdGhp
cworICAgIC8vIG1ldGhvZCBpcyB0byBhdm9pZCBjYWxsaW5nIGludG8gVjggdG8gaGFuZGxlIGNv
bnNvbGUgbWVzc2FnZXMKKyAgICAvLyB3aGVuIHRoZSBWTSBpcyBpbiBhIHN0YXRlIHRoYXQgZG9l
cyBub3Qgc3VwcG9ydCBHQ3Mgb3IgYWxsb2NhdGlvbnMuCisgICAgLy8gRGVsYXllZCBtZXNzYWdl
cyBhcmUgYWx3YXlzIHJlcG9ydGVkIGluIHRoZSBwYWdlIGNvcnJlc3BvbmRpbmcKKyAgICAvLyB0
byB0aGUgYWN0aXZlIGNvbnRleHQuCisgICAgdm9pZCBkaXNwYXRjaExhdGVyKCk7CiAKLSAgICAg
ICAgLy8gQ29udmVuaWVuY2UgY2xhc3MgZm9yIGVuc3VyaW5nIHRoYXQgZGVsYXllZCBtZXNzYWdl
cyBpbiB0aGUKLSAgICAgICAgLy8gQ29uc29sZU1lc3NhZ2VNYW5hZ2VyIGFyZSBwcm9jZXNzZWQg
cXVpY2tseS4KLSAgICAgICAgY2xhc3MgU2NvcGUgewotICAgICAgICBwdWJsaWM6Ci0gICAgICAg
ICAgICBTY29wZSgpIHsgVjhDb25zb2xlTWVzc2FnZTo6cHJvY2Vzc0RlbGF5ZWQoKTsgfQotICAg
ICAgICAgICAgflNjb3BlKCkgeyBWOENvbnNvbGVNZXNzYWdlOjpwcm9jZXNzRGVsYXllZCgpOyB9
Ci0gICAgICAgIH07CisgICAgLy8gUHJvY2VzcyBhbnkgZGVsYXllZCBtZXNzYWdlcy4gTWF5IGVu
ZCB1cCBjYWxsaW5nIEphdmFTY3JpcHQgY29kZQorICAgIC8vIGluZGlyZWN0bHkgdGhyb3VnaCB0
aGUgaW5zcGVjdG9yIHNvIG9ubHkgY2FsbCB0aGlzIGZ1bmN0aW9uIHdoZW4KKyAgICAvLyBpdCBp
cyBzYWZlIHRvIGRvIGFsbG9jYXRpb25zLgorICAgIHN0YXRpYyB2b2lkIHByb2Nlc3NEZWxheWVk
KCk7CiAKLSAgICAgICAgLy8gQ2FsbGJhY2sgZnJvbSBWOC4KLSAgICAgICAgc3RhdGljIHZvaWQg
aGFuZGxlcih2ODo6SGFuZGxlPHY4OjpNZXNzYWdlPiwgdjg6OkhhbmRsZTx2ODo6VmFsdWU+IGRh
dGEpOworICAgIC8vIENvbnZlbmllbmNlIGNsYXNzIGZvciBlbnN1cmluZyB0aGF0IGRlbGF5ZWQg
bWVzc2FnZXMgaW4gdGhlCisgICAgLy8gQ29uc29sZU1lc3NhZ2VNYW5hZ2VyIGFyZSBwcm9jZXNz
ZWQgcXVpY2tseS4KKyAgICBjbGFzcyBTY29wZSB7CisgICAgcHVibGljOgorICAgICAgICBTY29w
ZSgpIHsgVjhDb25zb2xlTWVzc2FnZTo6cHJvY2Vzc0RlbGF5ZWQoKTsgfQorICAgICAgICB+U2Nv
cGUoKSB7IFY4Q29uc29sZU1lc3NhZ2U6OnByb2Nlc3NEZWxheWVkKCk7IH0KKyAgICB9OwogCi0g
ICAgcHJpdmF0ZToKLSAgICAgICAgY29uc3QgU3RyaW5nIG1fc3RyaW5nOwotICAgICAgICBjb25z
dCBTdHJpbmcgbV9zb3VyY2VJRDsKLSAgICAgICAgY29uc3QgdW5zaWduZWQgbV9saW5lTnVtYmVy
OworICAgIC8vIENhbGxiYWNrIGZyb20gVjguCisgICAgc3RhdGljIHZvaWQgaGFuZGxlcih2ODo6
SGFuZGxlPHY4OjpNZXNzYWdlPiwgdjg6OkhhbmRsZTx2ODo6VmFsdWU+IGRhdGEpOwogCi0gICAg
ICAgIHZvaWQgZGlzcGF0Y2hOb3coUGFnZSosIFNjcmlwdENhbGxTdGFjayopOworcHJpdmF0ZToK
KyAgICBjb25zdCBTdHJpbmcgbV9zdHJpbmc7CisgICAgY29uc3QgU3RyaW5nIG1fc291cmNlSUQ7
CisgICAgY29uc3QgdW5zaWduZWQgbV9saW5lTnVtYmVyOwogCi0gICAgICAgIC8vIEFsbCBkZWxh
eWVkIG1lc3NhZ2VzIGFyZSBzdG9yZWQgaW4gdGhpcyB2ZWN0b3IuIElmIHRoZSB2ZWN0b3IKLSAg
ICAgICAgLy8gaXMgMCwgdGhlcmUgYXJlIG5vIGRlbGF5ZWQgbWVzc2FnZXMuCi0gICAgICAgIHN0
YXRpYyBWZWN0b3I8VjhDb25zb2xlTWVzc2FnZT4qIG1fZGVsYXllZE1lc3NhZ2VzOwotICAgIH07
CisgICAgLy8gQWxsIGRlbGF5ZWQgbWVzc2FnZXMgYXJlIHN0b3JlZCBpbiB0aGlzIHZlY3Rvci4g
SWYgdGhlIHZlY3RvcgorICAgIC8vIGlzIDAsIHRoZXJlIGFyZSBubyBkZWxheWVkIG1lc3NhZ2Vz
LgorICAgIHN0YXRpYyBWZWN0b3I8VjhDb25zb2xlTWVzc2FnZT4qIG1fZGVsYXllZE1lc3NhZ2Vz
OworfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCmRpZmYgLS1naXQgYS9XZWJDb3JlL2Jp
bmRpbmdzL2pzL0pTV29ya2VyQ29udGV4dEVycm9ySGFuZGxlci5oIGIvV2ViQ29yZS9iaW5kaW5n
cy92OC9WOFdpbmRvd0Vycm9ySGFuZGxlci5jcHAKc2ltaWxhcml0eSBpbmRleCA1MiUKY29weSBm
cm9tIFdlYkNvcmUvYmluZGluZ3MvanMvSlNXb3JrZXJDb250ZXh0RXJyb3JIYW5kbGVyLmgKY29w
eSB0byBXZWJDb3JlL2JpbmRpbmdzL3Y4L1Y4V2luZG93RXJyb3JIYW5kbGVyLmNwcAppbmRleCBh
MTg4Mjk5MDM4YzljZGZlNzIyODZiNzFmZWFlYjNhNDljMmEwZDgxLi44OWVjMDVlNzk5MjFhNWJm
YTMyZmE0OGYxYTY2ODUxYTQ2NmIyMDNhIDEwMDY0NAotLS0gYS9XZWJDb3JlL2JpbmRpbmdzL2pz
L0pTV29ya2VyQ29udGV4dEVycm9ySGFuZGxlci5oCisrKyBiL1dlYkNvcmUvYmluZGluZ3Mvdjgv
VjhXaW5kb3dFcnJvckhhbmRsZXIuY3BwCkBAIC0yOCwzNyArMjgsMzkgQEAKICAqIE9GIFRISVMg
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuCiAgKi8KIAotI2lmbmRlZiBKU1dvcmtlckNvbnRleHRFcnJvckhhbmRsZXJfaAotI2RlZmlu
ZSBKU1dvcmtlckNvbnRleHRFcnJvckhhbmRsZXJfaAorI2luY2x1ZGUgImNvbmZpZy5oIgogCi0j
aW5jbHVkZSAiSlNFdmVudExpc3RlbmVyLmgiCisjaW5jbHVkZSAiVjhXaW5kb3dFcnJvckhhbmRs
ZXIuaCIKIAotbmFtZXNwYWNlIFdlYkNvcmUgewotCi1jbGFzcyBKU1dvcmtlckNvbnRleHRFcnJv
ckhhbmRsZXIgOiBwdWJsaWMgSlNFdmVudExpc3RlbmVyIHsKLXB1YmxpYzoKLSAgICBzdGF0aWMg
UGFzc1JlZlB0cjxKU1dvcmtlckNvbnRleHRFcnJvckhhbmRsZXI+IGNyZWF0ZShKU0M6OkpTT2Jq
ZWN0KiBsaXN0ZW5lciwgSlNDOjpKU09iamVjdCogd3JhcHBlciwgYm9vbCBpc0F0dHJpYnV0ZSwg
RE9NV3JhcHBlcldvcmxkKiBpc29sYXRlZFdvcmxkKQotICAgIHsKLSAgICAgICAgcmV0dXJuIGFk
b3B0UmVmKG5ldyBKU1dvcmtlckNvbnRleHRFcnJvckhhbmRsZXIobGlzdGVuZXIsIHdyYXBwZXIs
IGlzQXR0cmlidXRlLCBpc29sYXRlZFdvcmxkKSk7Ci0gICAgfQorI2luY2x1ZGUgIkRPTVdyYXBw
ZXJXb3JsZC5oIgorI2luY2x1ZGUgIkVycm9yRXZlbnQuaCIKKyNpbmNsdWRlICJWOEJpbmRpbmcu
aCIKIAotICAgIHZpcnR1YWwgfkpTV29ya2VyQ29udGV4dEVycm9ySGFuZGxlcigpOwotCi1wcml2
YXRlOgotICAgIEpTV29ya2VyQ29udGV4dEVycm9ySGFuZGxlcihKU0M6OkpTT2JqZWN0KiBmdW5j
dGlvbiwgSlNDOjpKU09iamVjdCogd3JhcHBlciwgYm9vbCBpc0F0dHJpYnV0ZSwgRE9NV3JhcHBl
cldvcmxkKiBpc29sYXRlZFdvcmxkKTsKLSAgICB2aXJ0dWFsIHZvaWQgaGFuZGxlRXZlbnQoU2Ny
aXB0RXhlY3V0aW9uQ29udGV4dCosIEV2ZW50Kik7Ci19OworbmFtZXNwYWNlIFdlYkNvcmUgewog
Ci0vLyBDcmVhdGVzIGEgSlMgRXZlbnRMaXN0ZW5lciBmb3IgIm9uZXJyb3IiIGV2ZW50IGhhbmRs
ZXIgaW4gd29ya2VyIGNvbnRleHQuIEl0IGhhcyBjdXN0b20gaW1wbGVtZW50YXRpb24gYmVjYXVz
ZQotLy8gdW5saWtlIG90aGVyIGV2ZW50IGxpc3RlbmVycyBpdCBhY2NlcHRzIHRocmVlIHBhcmFt
ZXRlcnMuCi1pbmxpbmUgUGFzc1JlZlB0cjxKU1dvcmtlckNvbnRleHRFcnJvckhhbmRsZXI+IGNy
ZWF0ZUpTV29ya2VyQ29udGV4dEVycm9ySGFuZGxlcihKU0M6OkV4ZWNTdGF0ZSogZXhlYywgSlND
OjpKU1ZhbHVlIGxpc3RlbmVyLCBKU0M6OkpTT2JqZWN0KiB3cmFwcGVyKQorVjhXaW5kb3dFcnJv
ckhhbmRsZXI6OlY4V2luZG93RXJyb3JIYW5kbGVyKHY4OjpMb2NhbDx2ODo6T2JqZWN0PiBsaXN0
ZW5lciwgYm9vbCBpc0lubGluZSwgY29uc3QgV29ybGRDb250ZXh0SGFuZGxlJiB3b3JsZENvbnRl
eHQpCisgICAgOiBWOEV2ZW50TGlzdGVuZXIobGlzdGVuZXIsIGlzSW5saW5lLCB3b3JsZENvbnRl
eHQpCiB7Ci0gICAgaWYgKCFsaXN0ZW5lci5pc09iamVjdCgpKQotICAgICAgICByZXR1cm4gMDsK
K30KIAotICAgIHJldHVybiBKU1dvcmtlckNvbnRleHRFcnJvckhhbmRsZXI6OmNyZWF0ZShhc09i
amVjdChsaXN0ZW5lciksIHdyYXBwZXIsIHRydWUsIGN1cnJlbnRXb3JsZChleGVjKSk7Cit2ODo6
TG9jYWw8djg6OlZhbHVlPiBWOFdpbmRvd0Vycm9ySGFuZGxlcjo6Y2FsbExpc3RlbmVyRnVuY3Rp
b24oU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCwgdjg6OkhhbmRsZTx2ODo6VmFsdWU+
IGpzRXZlbnQsIEV2ZW50KiBldmVudCkKK3sKKyAgICBBU1NFUlQoZXZlbnQtPmlzRXJyb3JFdmVu
dCgpKTsKKyAgICBFcnJvckV2ZW50KiBlcnJvckV2ZW50ID0gc3RhdGljX2Nhc3Q8RXJyb3JFdmVu
dCo+KGV2ZW50KTsKKyAgICAvLyBJdCBpcyB1bnNlY3VyZSB0byByZXBvcnQgZXhjZXB0aW9uIGZy
b20gb25lIHdvcmxkIHRvIGEgaGFuZGxlciBmcm9tIGFub3RoZXIuCisgICAgaWYgKGVycm9yRXZl
bnQtPndyYXBwZXJXb3JsZCgpICE9IGNvbnRleHRXb3JsZChjb250ZXh0LCB3b3JsZENvbnRleHQo
KSkpCisgICAgICAgIHJldHVybiB2ODo6TG9jYWw8djg6OlZhbHVlPigpOworICAgIHY4OjpMb2Nh
bDx2ODo6T2JqZWN0PiBsaXN0ZW5lciA9IGdldExpc3RlbmVyT2JqZWN0KGNvbnRleHQpOworICAg
IHY4OjpMb2NhbDx2ODo6VmFsdWU+IHJldHVyblZhbHVlOworICAgIGlmICghbGlzdGVuZXIuSXNF
bXB0eSgpICYmIGxpc3RlbmVyLT5Jc0Z1bmN0aW9uKCkpIHsKKyAgICAgICAgdjg6OkxvY2FsPHY4
OjpGdW5jdGlvbj4gY2FsbEZ1bmN0aW9uID0gdjg6OkxvY2FsPHY4OjpGdW5jdGlvbj46OkNhc3Qo
bGlzdGVuZXIpOworICAgICAgICB2ODo6TG9jYWw8djg6Ok9iamVjdD4gdGhpc1ZhbHVlID0gdjg6
OkNvbnRleHQ6OkdldEN1cnJlbnQoKS0+R2xvYmFsKCk7CisgICAgICAgIHY4OjpIYW5kbGU8djg6
OlZhbHVlPiBwYXJhbWV0ZXJzWzNdID0geyB2OFN0cmluZyhlcnJvckV2ZW50LT5tZXNzYWdlKCkp
LCB2OFN0cmluZyhlcnJvckV2ZW50LT5maWxlbmFtZSgpKSwgdjg6OkludGVnZXI6Ok5ldyhlcnJv
ckV2ZW50LT5saW5lbm8oKSkgfTsKKyAgICAgICAgcmV0dXJuVmFsdWUgPSBjYWxsRnVuY3Rpb24t
PkNhbGwodGhpc1ZhbHVlLCAzLCBwYXJhbWV0ZXJzKTsKKyAgICAgICAgaWYgKCFyZXR1cm5WYWx1
ZS5Jc0VtcHR5KCkgJiYgcmV0dXJuVmFsdWUtPklzQm9vbGVhbigpICYmICFyZXR1cm5WYWx1ZS0+
Qm9vbGVhblZhbHVlKCkpCisgICAgICAgICAgICBldmVudC0+cHJldmVudERlZmF1bHQoKTsKKyAg
ICB9CisgICAgcmV0dXJuIHJldHVyblZhbHVlOwogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3Jl
Ci0KLSNlbmRpZiAvLyBKU1dvcmtlckNvbnRleHRFcnJvckhhbmRsZXJfaApkaWZmIC0tZ2l0IGEv
V2ViQ29yZS9iaW5kaW5ncy9qcy9KU1dvcmtlckNvbnRleHRFcnJvckhhbmRsZXIuaCBiL1dlYkNv
cmUvYmluZGluZ3MvdjgvVjhXaW5kb3dFcnJvckhhbmRsZXIuaApzaW1pbGFyaXR5IGluZGV4IDU4
JQpyZW5hbWUgZnJvbSBXZWJDb3JlL2JpbmRpbmdzL2pzL0pTV29ya2VyQ29udGV4dEVycm9ySGFu
ZGxlci5oCnJlbmFtZSB0byBXZWJDb3JlL2JpbmRpbmdzL3Y4L1Y4V2luZG93RXJyb3JIYW5kbGVy
LmgKaW5kZXggYTE4ODI5OTAzOGM5Y2RmZTcyMjg2YjcxZmVhZWIzYTQ5YzJhMGQ4MS4uMTY3Y2Ew
ZDdkZjQ4NjFlMTE0ZjNhMmQ2NjMzYTc0MjEwYmY2OGY5YyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9i
aW5kaW5ncy9qcy9KU1dvcmtlckNvbnRleHRFcnJvckhhbmRsZXIuaAorKysgYi9XZWJDb3JlL2Jp
bmRpbmdzL3Y4L1Y4V2luZG93RXJyb3JIYW5kbGVyLmgKQEAgLTI4LDM3ICsyOCwyOCBAQAogICog
T0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4KICAqLwogCi0jaWZuZGVmIEpTV29ya2VyQ29udGV4dEVycm9ySGFuZGxlcl9o
Ci0jZGVmaW5lIEpTV29ya2VyQ29udGV4dEVycm9ySGFuZGxlcl9oCisjaWZuZGVmIFY4V2luZG93
RXJyb3JIYW5kbGVyX2gKKyNkZWZpbmUgVjhXaW5kb3dFcnJvckhhbmRsZXJfaAogCi0jaW5jbHVk
ZSAiSlNFdmVudExpc3RlbmVyLmgiCisjaW5jbHVkZSAiVjhDdXN0b21FdmVudExpc3RlbmVyLmgi
CisjaW5jbHVkZSA8djguaD4KKyNpbmNsdWRlIDx3dGYvUGFzc1JlZlB0ci5oPgogCiBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiAKLWNsYXNzIEpTV29ya2VyQ29udGV4dEVycm9ySGFuZGxlciA6IHB1Ymxp
YyBKU0V2ZW50TGlzdGVuZXIgeworY2xhc3MgVjhXaW5kb3dFcnJvckhhbmRsZXIgOiBwdWJsaWMg
VjhFdmVudExpc3RlbmVyIHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxKU1dvcmtl
ckNvbnRleHRFcnJvckhhbmRsZXI+IGNyZWF0ZShKU0M6OkpTT2JqZWN0KiBsaXN0ZW5lciwgSlND
OjpKU09iamVjdCogd3JhcHBlciwgYm9vbCBpc0F0dHJpYnV0ZSwgRE9NV3JhcHBlcldvcmxkKiBp
c29sYXRlZFdvcmxkKQorICAgIHN0YXRpYyBQYXNzUmVmUHRyPFY4V2luZG93RXJyb3JIYW5kbGVy
PiBjcmVhdGUodjg6OkxvY2FsPHY4OjpPYmplY3Q+IGxpc3RlbmVyLCBib29sIGlzSW5saW5lLCBj
b25zdCBXb3JsZENvbnRleHRIYW5kbGUmIHdvcmxkQ29udGV4dCkKICAgICB7Ci0gICAgICAgIHJl
dHVybiBhZG9wdFJlZihuZXcgSlNXb3JrZXJDb250ZXh0RXJyb3JIYW5kbGVyKGxpc3RlbmVyLCB3
cmFwcGVyLCBpc0F0dHJpYnV0ZSwgaXNvbGF0ZWRXb3JsZCkpOworICAgICAgICByZXR1cm4gYWRv
cHRSZWYobmV3IFY4V2luZG93RXJyb3JIYW5kbGVyKGxpc3RlbmVyLCBpc0lubGluZSwgd29ybGRD
b250ZXh0KSk7CiAgICAgfQogCi0gICAgdmlydHVhbCB+SlNXb3JrZXJDb250ZXh0RXJyb3JIYW5k
bGVyKCk7Ci0KIHByaXZhdGU6Ci0gICAgSlNXb3JrZXJDb250ZXh0RXJyb3JIYW5kbGVyKEpTQzo6
SlNPYmplY3QqIGZ1bmN0aW9uLCBKU0M6OkpTT2JqZWN0KiB3cmFwcGVyLCBib29sIGlzQXR0cmli
dXRlLCBET01XcmFwcGVyV29ybGQqIGlzb2xhdGVkV29ybGQpOwotICAgIHZpcnR1YWwgdm9pZCBo
YW5kbGVFdmVudChTY3JpcHRFeGVjdXRpb25Db250ZXh0KiwgRXZlbnQqKTsKLX07CisgICAgVjhX
aW5kb3dFcnJvckhhbmRsZXIodjg6OkxvY2FsPHY4OjpPYmplY3Q+IGxpc3RlbmVyLCBib29sIGlz
SW5saW5lLCBjb25zdCBXb3JsZENvbnRleHRIYW5kbGUmIHdvcmxkQ29udGV4dCk7CiAKLS8vIENy
ZWF0ZXMgYSBKUyBFdmVudExpc3RlbmVyIGZvciAib25lcnJvciIgZXZlbnQgaGFuZGxlciBpbiB3
b3JrZXIgY29udGV4dC4gSXQgaGFzIGN1c3RvbSBpbXBsZW1lbnRhdGlvbiBiZWNhdXNlCi0vLyB1
bmxpa2Ugb3RoZXIgZXZlbnQgbGlzdGVuZXJzIGl0IGFjY2VwdHMgdGhyZWUgcGFyYW1ldGVycy4K
LWlubGluZSBQYXNzUmVmUHRyPEpTV29ya2VyQ29udGV4dEVycm9ySGFuZGxlcj4gY3JlYXRlSlNX
b3JrZXJDb250ZXh0RXJyb3JIYW5kbGVyKEpTQzo6RXhlY1N0YXRlKiBleGVjLCBKU0M6OkpTVmFs
dWUgbGlzdGVuZXIsIEpTQzo6SlNPYmplY3QqIHdyYXBwZXIpCi17Ci0gICAgaWYgKCFsaXN0ZW5l
ci5pc09iamVjdCgpKQotICAgICAgICByZXR1cm4gMDsKLQotICAgIHJldHVybiBKU1dvcmtlckNv
bnRleHRFcnJvckhhbmRsZXI6OmNyZWF0ZShhc09iamVjdChsaXN0ZW5lciksIHdyYXBwZXIsIHRy
dWUsIGN1cnJlbnRXb3JsZChleGVjKSk7Ci19CisgICAgdmlydHVhbCB2ODo6TG9jYWw8djg6OlZh
bHVlPiBjYWxsTGlzdGVuZXJGdW5jdGlvbihTY3JpcHRFeGVjdXRpb25Db250ZXh0Kiwgdjg6Okhh
bmRsZTx2ODo6VmFsdWU+IGpzRXZlbnQsIEV2ZW50Kik7Cit9OwogCiB9IC8vIG5hbWVzcGFjZSBX
ZWJDb3JlCiAKLSNlbmRpZiAvLyBKU1dvcmtlckNvbnRleHRFcnJvckhhbmRsZXJfaAorI2VuZGlm
IC8vIFY4V2luZG93RXJyb3JIYW5kbGVyX2gKZGlmZiAtLWdpdCBhL1dlYkNvcmUvYmluZGluZ3Mv
djgvV29ya2VyQ29udGV4dEV4ZWN1dGlvblByb3h5LmNwcCBiL1dlYkNvcmUvYmluZGluZ3Mvdjgv
V29ya2VyQ29udGV4dEV4ZWN1dGlvblByb3h5LmNwcAppbmRleCAxNmUwYjQxMDFlZmRjMzVhZTc0
NDE4MTdiMDY4N2RiNmI1YTY1YTI1Li4yNDhkZTAyNzI3ODllMWEwNjRlNzg3YjE1OWMwNjQ1MWJm
NjFlZjE1IDEwMDY0NAotLS0gYS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1dvcmtlckNvbnRleHRFeGVj
dXRpb25Qcm94eS5jcHAKKysrIGIvV2ViQ29yZS9iaW5kaW5ncy92OC9Xb3JrZXJDb250ZXh0RXhl
Y3V0aW9uUHJveHkuY3BwCkBAIC0zNSw4ICszNSwxMCBAQAogCiAjaW5jbHVkZSAiV29ya2VyQ29u
dGV4dEV4ZWN1dGlvblByb3h5LmgiCiAKKyNpbmNsdWRlICJET01XcmFwcGVyV29ybGQuaCIKICNp
bmNsdWRlICJEZWRpY2F0ZWRXb3JrZXJDb250ZXh0LmgiCiAjaW5jbHVkZSAiRXZlbnQuaCIKKyNp
bmNsdWRlICJTY3JpcHRDYWxsU3RhY2suaCIKICNpbmNsdWRlICJTaGFyZWRXb3JrZXIuaCIKICNp
bmNsdWRlICJTaGFyZWRXb3JrZXJDb250ZXh0LmgiCiAjaW5jbHVkZSAiVjhCaW5kaW5nLmgiCkBA
IC03Miw3ICs3NCw3IEBAIHN0YXRpYyB2b2lkIHY4TWVzc2FnZUhhbmRsZXIodjg6OkhhbmRsZTx2
ODo6TWVzc2FnZT4gbWVzc2FnZSwgdjg6OkhhbmRsZTx2ODo6VmFsCiAgICAgICAgIFN0cmluZyBl
cnJvck1lc3NhZ2UgPSB0b1dlYkNvcmVTdHJpbmcobWVzc2FnZS0+R2V0KCkpOwogICAgICAgICBp
bnQgbGluZU51bWJlciA9IG1lc3NhZ2UtPkdldExpbmVOdW1iZXIoKTsKICAgICAgICAgU3RyaW5n
IHNvdXJjZVVSTCA9IHRvV2ViQ29yZVN0cmluZyhtZXNzYWdlLT5HZXRTY3JpcHRSZXNvdXJjZU5h
bWUoKSk7Ci0gICAgICAgIGNvbnRleHQtPnJlcG9ydEV4Y2VwdGlvbihlcnJvck1lc3NhZ2UsIGxp
bmVOdW1iZXIsIHNvdXJjZVVSTCk7CisgICAgICAgIGNvbnRleHQtPnJlcG9ydEV4Y2VwdGlvbigw
LCBlcnJvck1lc3NhZ2UsIGxpbmVOdW1iZXIsIHNvdXJjZVVSTCwgMCk7CiAgICAgfQogCiAgICAg
aXNSZXBvcnRpbmdFeGNlcHRpb24gPSBmYWxzZTsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvYmluZGlu
Z3MvdjgvV29ya2VyU2NyaXB0Q29udHJvbGxlci5jcHAgYi9XZWJDb3JlL2JpbmRpbmdzL3Y4L1dv
cmtlclNjcmlwdENvbnRyb2xsZXIuY3BwCmluZGV4IDdkYjBkOGQzNzM3MDliMmU5NzNiNjdlNzcy
M2U0ZmMzMTFmYmNhNTkuLjVhZjUzNzczODE5MmIyNzhjNjYwZWY4MmI4NTQ3Mzg1MjVlOTI0ZDYg
MTAwNjQ0Ci0tLSBhL1dlYkNvcmUvYmluZGluZ3MvdjgvV29ya2VyU2NyaXB0Q29udHJvbGxlci5j
cHAKKysrIGIvV2ViQ29yZS9iaW5kaW5ncy92OC9Xb3JrZXJTY3JpcHRDb250cm9sbGVyLmNwcApA
QCAtMzQsMTEgKzM0LDExIEBACiAKICNpbmNsdWRlICJXb3JrZXJTY3JpcHRDb250cm9sbGVyLmgi
CiAKLSNpbmNsdWRlIDx2OC5oPgotCisjaW5jbHVkZSAiRE9NVGltZXIuaCIKKyNpbmNsdWRlICJE
T01XcmFwcGVyV29ybGQuaCIKKyNpbmNsdWRlICJTY3JpcHRDYWxsU3RhY2suaCIKICNpbmNsdWRl
ICJTY3JpcHRTb3VyY2VDb2RlLmgiCiAjaW5jbHVkZSAiU2NyaXB0VmFsdWUuaCIKLSNpbmNsdWRl
ICJET01UaW1lci5oIgogI2luY2x1ZGUgIlY4RE9NTWFwLmgiCiAjaW5jbHVkZSAiVjhQcm94eS5o
IgogI2luY2x1ZGUgIlY4V29ya2VyQ29udGV4dC5oIgpAQCAtNDYsNiArNDYsNyBAQAogI2luY2x1
ZGUgIldvcmtlckNvbnRleHRFeGVjdXRpb25Qcm94eS5oIgogI2luY2x1ZGUgIldvcmtlck9iamVj
dFByb3h5LmgiCiAjaW5jbHVkZSAiV29ya2VyVGhyZWFkLmgiCisjaW5jbHVkZSA8djguaD4KIAog
bmFtZXNwYWNlIFdlYkNvcmUgewogCkBAIC04MCw3ICs4MSw3IEBAIFNjcmlwdFZhbHVlIFdvcmtl
clNjcmlwdENvbnRyb2xsZXI6OmV2YWx1YXRlKGNvbnN0IFNjcmlwdFNvdXJjZUNvZGUmIHNvdXJj
ZUNvZGUsCiAgICAgICAgIGlmIChleGNlcHRpb24pCiAgICAgICAgICAgICAqZXhjZXB0aW9uID0g
c3RhdGUuZXhjZXB0aW9uOwogICAgICAgICBlbHNlCi0gICAgICAgICAgICBtX3dvcmtlckNvbnRl
eHQtPnJlcG9ydEV4Y2VwdGlvbihzdGF0ZS5lcnJvck1lc3NhZ2UsIHN0YXRlLmxpbmVOdW1iZXIs
IHN0YXRlLnNvdXJjZVVSTCk7CisgICAgICAgICAgICBtX3dvcmtlckNvbnRleHQtPnJlcG9ydEV4
Y2VwdGlvbigwLCBzdGF0ZS5lcnJvck1lc3NhZ2UsIHN0YXRlLmxpbmVOdW1iZXIsIHN0YXRlLnNv
dXJjZVVSTCwgMCk7CiAgICAgfQogCiAgICAgcmV0dXJuIHJlc3VsdDsKZGlmZiAtLWdpdCBhL1dl
YkNvcmUvZG9tL0RvY3VtZW50LmNwcCBiL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcAppbmRleCBh
MTEzZDg4MjU5ZWY1MTdiODY3YzYzNDkxYmM1MGFkYjNkODJhNjNlLi5kZWMyMGQxMTgxMTNjMWM2
ODI0Y2I1N2VmYjFkZGYzZTUyMjIzZTVhIDEwMDY0NAotLS0gYS9XZWJDb3JlL2RvbS9Eb2N1bWVu
dC5jcHAKKysrIGIvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCkBAIC0yMTg2LDYgKzIxODYsMTcg
QEAgS1VSTCBEb2N1bWVudDo6dmlydHVhbENvbXBsZXRlVVJMKGNvbnN0IFN0cmluZyYgdXJsKSBj
b25zdAogICAgIHJldHVybiBjb21wbGV0ZVVSTCh1cmwpOwogfQogCitFdmVudFRhcmdldCogRG9j
dW1lbnQ6OmVycm9yRXZlbnRUYXJnZXQoKQoreworICAgIHJldHVybiBkb21XaW5kb3coKTsKK30K
Kwordm9pZCBEb2N1bWVudDo6bG9nRXhjZXB0aW9uVG9Db25zb2xlKGNvbnN0IFN0cmluZyYgZXJy
b3JNZXNzYWdlLCBpbnQgbGluZU51bWJlciwgY29uc3QgU3RyaW5nJiBzb3VyY2VVUkwsIFNjcmlw
dENhbGxTdGFjayogY2FsbFN0YWNrKQoreworICAgIE1lc3NhZ2VUeXBlIG1lc3NhZ2VUeXBlID0g
Y2FsbFN0YWNrID8gVW5jYXVnaHRFeGNlcHRpb25NZXNzYWdlVHlwZSA6IExvZ01lc3NhZ2VUeXBl
OworICAgIGFkZE1lc3NhZ2UoSlNNZXNzYWdlU291cmNlLCBtZXNzYWdlVHlwZSwgRXJyb3JNZXNz
YWdlTGV2ZWwsIGVycm9yTWVzc2FnZSwgbGluZU51bWJlciwgc291cmNlVVJMKTsKK30KKwogdm9p
ZCBEb2N1bWVudDo6c2V0VVJMKGNvbnN0IEtVUkwmIHVybCkKIHsKICAgICBjb25zdCBLVVJMJiBu
ZXdVUkwgPSB1cmwuaXNFbXB0eSgpID8gYmxhbmtVUkwoKSA6IHVybDsKQEAgLTQ1NDMsMTEgKzQ1
NTQsNiBAQCB2b2lkIERvY3VtZW50OjpwYXJzZUROU1ByZWZldGNoQ29udHJvbEhlYWRlcihjb25z
dCBTdHJpbmcmIGRuc1ByZWZldGNoQ29udHJvbCkKICAgICBtX2hhdmVFeHBsaWNpdGx5RGlzYWJs
ZWRETlNQcmVmZXRjaCA9IHRydWU7CiB9CiAKLXZvaWQgRG9jdW1lbnQ6OnJlcG9ydEV4Y2VwdGlv
bihjb25zdCBTdHJpbmcmIGVycm9yTWVzc2FnZSwgaW50IGxpbmVOdW1iZXIsIGNvbnN0IFN0cmlu
ZyYgc291cmNlVVJMKQotewotICAgIGFkZE1lc3NhZ2UoSlNNZXNzYWdlU291cmNlLCBMb2dNZXNz
YWdlVHlwZSwgRXJyb3JNZXNzYWdlTGV2ZWwsIGVycm9yTWVzc2FnZSwgbGluZU51bWJlciwgc291
cmNlVVJMKTsKLX0KLQogdm9pZCBEb2N1bWVudDo6YWRkTWVzc2FnZShNZXNzYWdlU291cmNlIHNv
dXJjZSwgTWVzc2FnZVR5cGUgdHlwZSwgTWVzc2FnZUxldmVsIGxldmVsLCBjb25zdCBTdHJpbmcm
IG1lc3NhZ2UsIHVuc2lnbmVkIGxpbmVOdW1iZXIsIGNvbnN0IFN0cmluZyYgc291cmNlVVJMKQog
ewogICAgIGlmIChET01XaW5kb3cqIHdpbmRvdyA9IGRvbVdpbmRvdygpKQpkaWZmIC0tZ2l0IGEv
V2ViQ29yZS9kb20vRG9jdW1lbnQuaCBiL1dlYkNvcmUvZG9tL0RvY3VtZW50LmgKaW5kZXggZmEx
NGUzZDM5YTdkYmU3OTRjODM0YjY5MzZlZmE4MTAzZjY5OGI3Ny4uNTQwNzI1OWQ3Y2Q4Y2JiNjc4
ZjRhMDhiNjQyNDgxYTViNWRiNTUzMiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9kb20vRG9jdW1lbnQu
aAorKysgYi9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oCkBAIC05MDUsNyArOTA1LDYgQEAgcHVibGlj
OgogICAgIGJvb2wgaXNETlNQcmVmZXRjaEVuYWJsZWQoKSBjb25zdCB7IHJldHVybiBtX2lzRE5T
UHJlZmV0Y2hFbmFibGVkOyB9CiAgICAgdm9pZCBwYXJzZUROU1ByZWZldGNoQ29udHJvbEhlYWRl
cihjb25zdCBTdHJpbmcmKTsKIAotICAgIHZpcnR1YWwgdm9pZCByZXBvcnRFeGNlcHRpb24oY29u
c3QgU3RyaW5nJiBlcnJvck1lc3NhZ2UsIGludCBsaW5lTnVtYmVyLCBjb25zdCBTdHJpbmcmIHNv
dXJjZVVSTCk7CiAgICAgdmlydHVhbCB2b2lkIGFkZE1lc3NhZ2UoTWVzc2FnZVNvdXJjZSwgTWVz
c2FnZVR5cGUsIE1lc3NhZ2VMZXZlbCwgY29uc3QgU3RyaW5nJiBtZXNzYWdlLCB1bnNpZ25lZCBs
aW5lTnVtYmVyLCBjb25zdCBTdHJpbmcmIHNvdXJjZVVSTCk7CiAgICAgdmlydHVhbCB2b2lkIHBv
c3RUYXNrKFBhc3NPd25QdHI8VGFzaz4pOyAvLyBFeGVjdXRlcyB0aGUgdGFzayBvbiBjb250ZXh0
J3MgdGhyZWFkIGFzeW5jaHJvbm91c2x5LgogCkBAIC0xMDYxLDYgKzEwNjAsOSBAQCBwcml2YXRl
OgogICAgIHZpcnR1YWwgY29uc3QgS1VSTCYgdmlydHVhbFVSTCgpIGNvbnN0OyAvLyBTYW1lIGFz
IHVybCgpLCBidXQgbmVlZGVkIGZvciBTY3JpcHRFeGVjdXRpb25Db250ZXh0IHRvIGltcGxlbWVu
dCBpdCB3aXRob3V0IGEgcGVyZm9ybWFuY2UgbG9zcyBmb3IgZGlyZWN0IGNhbGxzLgogICAgIHZp
cnR1YWwgS1VSTCB2aXJ0dWFsQ29tcGxldGVVUkwoY29uc3QgU3RyaW5nJikgY29uc3Q7IC8vIFNh
bWUgYXMgY29tcGxldGVVUkwoKSBmb3IgdGhlIHNhbWUgcmVhc29uIGFzIGFib3ZlLgogCisgICAg
dmlydHVhbCBFdmVudFRhcmdldCogZXJyb3JFdmVudFRhcmdldCgpOworICAgIHZpcnR1YWwgdm9p
ZCBsb2dFeGNlcHRpb25Ub0NvbnNvbGUoY29uc3QgU3RyaW5nJiBlcnJvck1lc3NhZ2UsIGludCBs
aW5lTnVtYmVyLCBjb25zdCBTdHJpbmcmIHNvdXJjZVVSTCwgU2NyaXB0Q2FsbFN0YWNrKik7CisK
ICAgICB2b2lkIGluaXRETlNQcmVmZXRjaCgpOwogCiAgICAgU3RyaW5nIGVuY29kaW5nKCkgY29u
c3Q7CmRpZmYgLS1naXQgYS9XZWJDb3JlL2RvbS9FcnJvckV2ZW50LmNwcCBiL1dlYkNvcmUvZG9t
L0Vycm9yRXZlbnQuY3BwCmluZGV4IDI2MjdkMDE1NGU2MjNhYmFhZDkxZDQ5YmFhOWRmMTk4NmQy
OTNkNTAuLjA2Njk5ZDQ2MjkzNzc1NDEwMzhjOTgxMzk5ODY5Y2FkOTIxNmZjNzggMTAwNjQ0Ci0t
LSBhL1dlYkNvcmUvZG9tL0Vycm9yRXZlbnQuY3BwCisrKyBiL1dlYkNvcmUvZG9tL0Vycm9yRXZl
bnQuY3BwCkBAIC0zNCw2ICszNCw3IEBACiAKICNpbmNsdWRlICJFcnJvckV2ZW50LmgiCiAKKyNp
bmNsdWRlICJET01XcmFwcGVyV29ybGQuaCIKICNpbmNsdWRlICJFdmVudE5hbWVzLmgiCiAKIG5h
bWVzcGFjZSBXZWJDb3JlIHsKQEAgLTQyLDggKzQzLDkgQEAgRXJyb3JFdmVudDo6RXJyb3JFdmVu
dCgpCiB7CiB9CiAKLUVycm9yRXZlbnQ6OkVycm9yRXZlbnQoY29uc3QgU3RyaW5nJiBtZXNzYWdl
LCBjb25zdCBTdHJpbmcmIGZpbGVOYW1lLCB1bnNpZ25lZCBsaW5lTnVtYmVyKQorRXJyb3JFdmVu
dDo6RXJyb3JFdmVudChET01XcmFwcGVyV29ybGQqIHdyYXBwZXJXb3JsZCwgY29uc3QgU3RyaW5n
JiBtZXNzYWdlLCBjb25zdCBTdHJpbmcmIGZpbGVOYW1lLCB1bnNpZ25lZCBsaW5lTnVtYmVyKQog
ICAgIDogRXZlbnQoZXZlbnROYW1lcygpLmVycm9yRXZlbnQsIGZhbHNlLCB0cnVlKQorICAgICwg
bV93cmFwcGVyV29ybGQod3JhcHBlcldvcmxkKQogICAgICwgbV9tZXNzYWdlKG1lc3NhZ2UpCiAg
ICAgLCBtX2ZpbGVOYW1lKGZpbGVOYW1lKQogICAgICwgbV9saW5lTnVtYmVyKGxpbmVOdW1iZXIp
CmRpZmYgLS1naXQgYS9XZWJDb3JlL2RvbS9FcnJvckV2ZW50LmggYi9XZWJDb3JlL2RvbS9FcnJv
ckV2ZW50LmgKaW5kZXggZjgxNTMwYWVlNjIwYjg5MjE3ZTE2NGNjZmFiYTczMGYxZGI2MTE0MC4u
ZGZmZmQxYjBmYmY0ODNiZjcyZmQxYWFmYjBkZjg4ZmFjMzk4NjExYyAxMDA2NDQKLS0tIGEvV2Vi
Q29yZS9kb20vRXJyb3JFdmVudC5oCisrKyBiL1dlYkNvcmUvZG9tL0Vycm9yRXZlbnQuaApAQCAt
MzgsMjAgKzM4LDI0IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAorICAgIGNsYXNzIERPTVdy
YXBwZXJXb3JsZDsKKwogICAgIGNsYXNzIEVycm9yRXZlbnQgOiBwdWJsaWMgRXZlbnQgewogICAg
IHB1YmxpYzoKICAgICAgICAgc3RhdGljIFBhc3NSZWZQdHI8RXJyb3JFdmVudD4gY3JlYXRlKCkK
ICAgICAgICAgewogICAgICAgICAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBFcnJvckV2ZW50KTsK
ICAgICAgICAgfQotICAgICAgICBzdGF0aWMgUGFzc1JlZlB0cjxFcnJvckV2ZW50PiBjcmVhdGUo
Y29uc3QgU3RyaW5nJiBtZXNzYWdlLCBjb25zdCBTdHJpbmcmIGZpbGVOYW1lLCB1bnNpZ25lZCBs
aW5lTnVtYmVyKQorICAgICAgICBzdGF0aWMgUGFzc1JlZlB0cjxFcnJvckV2ZW50PiBjcmVhdGUo
RE9NV3JhcHBlcldvcmxkKiB3cmFwcGVyV29ybGQsIGNvbnN0IFN0cmluZyYgbWVzc2FnZSwgY29u
c3QgU3RyaW5nJiBmaWxlTmFtZSwgdW5zaWduZWQgbGluZU51bWJlcikKICAgICAgICAgewotICAg
ICAgICAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBFcnJvckV2ZW50KG1lc3NhZ2UsIGZpbGVOYW1l
LCBsaW5lTnVtYmVyKSk7CisgICAgICAgICAgICByZXR1cm4gYWRvcHRSZWYobmV3IEVycm9yRXZl
bnQod3JhcHBlcldvcmxkLCBtZXNzYWdlLCBmaWxlTmFtZSwgbGluZU51bWJlcikpOwogICAgICAg
ICB9CiAgICAgICAgIHZpcnR1YWwgfkVycm9yRXZlbnQoKTsKIAogICAgICAgICB2b2lkIGluaXRF
cnJvckV2ZW50KGNvbnN0IEF0b21pY1N0cmluZyYgdHlwZSwgYm9vbCBjYW5CdWJibGUsIGJvb2wg
Y2FuY2VsYWJsZSwgY29uc3QgU3RyaW5nJiBtZXNzYWdlLCBjb25zdCBTdHJpbmcmIGZpbGVOYW1l
LCB1bnNpZ25lZCBsaW5lTnVtYmVyKTsKIAorICAgICAgICBET01XcmFwcGVyV29ybGQqIHdyYXBw
ZXJXb3JsZCgpIGNvbnN0IHsgcmV0dXJuIG1fd3JhcHBlcldvcmxkLmdldCgpOyB9CisKICAgICAg
ICAgY29uc3QgU3RyaW5nJiBtZXNzYWdlKCkgY29uc3QgeyByZXR1cm4gbV9tZXNzYWdlOyB9CiAg
ICAgICAgIGNvbnN0IFN0cmluZyYgZmlsZW5hbWUoKSBjb25zdCB7IHJldHVybiBtX2ZpbGVOYW1l
OyB9CiAgICAgICAgIHVuc2lnbmVkIGxpbmVubygpIGNvbnN0IHsgcmV0dXJuIG1fbGluZU51bWJl
cjsgfQpAQCAtNjAsOCArNjQsOSBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKICAgICBwcml2YXRl
OiAgICAKICAgICAgICAgRXJyb3JFdmVudCgpOwotICAgICAgICBFcnJvckV2ZW50KGNvbnN0IFN0
cmluZyYgbWVzc2FnZSwgY29uc3QgU3RyaW5nJiBmaWxlTmFtZSwgdW5zaWduZWQgbGluZU51bWJl
cik7CisgICAgICAgIEVycm9yRXZlbnQoRE9NV3JhcHBlcldvcmxkKiwgY29uc3QgU3RyaW5nJiBt
ZXNzYWdlLCBjb25zdCBTdHJpbmcmIGZpbGVOYW1lLCB1bnNpZ25lZCBsaW5lTnVtYmVyKTsKIAor
ICAgICAgICBSZWZQdHI8RE9NV3JhcHBlcldvcmxkPiAgbV93cmFwcGVyV29ybGQ7CiAgICAgICAg
IFN0cmluZyBtX21lc3NhZ2U7CiAgICAgICAgIFN0cmluZyBtX2ZpbGVOYW1lOwogICAgICAgICB1
bnNpZ25lZCBtX2xpbmVOdW1iZXI7CmRpZmYgLS1naXQgYS9XZWJDb3JlL2RvbS9TY3JpcHRFeGVj
dXRpb25Db250ZXh0LmNwcCBiL1dlYkNvcmUvZG9tL1NjcmlwdEV4ZWN1dGlvbkNvbnRleHQuY3Bw
CmluZGV4IGJmZGExN2IzZjFiNGQ5M2RhYmQ4ZjY0MTBkYjc2NWI1MDM2N2RlYzguLjQ5NDk2NGNk
ODU2NzEzMGY4YmRhYTcwMzYwYTk4MmFjN2IwZjc1OWEgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvZG9t
L1NjcmlwdEV4ZWN1dGlvbkNvbnRleHQuY3BwCisrKyBiL1dlYkNvcmUvZG9tL1NjcmlwdEV4ZWN1
dGlvbkNvbnRleHQuY3BwCkBAIC0zMywxNCArMzMsMTkgQEAKICNpbmNsdWRlICJEYXRhYmFzZS5o
IgogI2luY2x1ZGUgIkRhdGFiYXNlVGFzay5oIgogI2luY2x1ZGUgIkRhdGFiYXNlVGhyZWFkLmgi
CisjaW5jbHVkZSAiRXJyb3JFdmVudC5oIgorI2luY2x1ZGUgIkV2ZW50TGlzdGVuZXIuaCIKKyNp
bmNsdWRlICJFdmVudFRhcmdldC5oIgogI2luY2x1ZGUgIkZpbGVUaHJlYWQuaCIKICNpbmNsdWRl
ICJNZXNzYWdlUG9ydC5oIgorI2luY2x1ZGUgIlNjcmlwdENhbGxTdGFjay5oIgogI2luY2x1ZGUg
IlNlY3VyaXR5T3JpZ2luLmgiCiAjaW5jbHVkZSAiVGhyZWFkYWJsZUJsb2JSZWdpc3RyeS5oIgog
I2luY2x1ZGUgIldvcmtlckNvbnRleHQuaCIKICNpbmNsdWRlICJXb3JrZXJUaHJlYWQuaCIKICNp
bmNsdWRlIDx3dGYvTWFpblRocmVhZC5oPgogI2luY2x1ZGUgPHd0Zi9QYXNzUmVmUHRyLmg+Cisj
aW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgogCiAjaWYgVVNFKEpTQykKICNpbmNsdWRlICJKU0RPTVdp
bmRvdy5oIgpAQCAtNjEsMTAgKzY2LDE5IEBAIHB1YmxpYzoKICAgICB9CiB9OwogCitTY3JpcHRF
eGVjdXRpb25Db250ZXh0OjpQZW5kaW5nRXhjZXB0aW9uOjpQZW5kaW5nRXhjZXB0aW9uKGNvbnN0
IFN0cmluZyYgZXJyb3JNZXNzYWdlLCBpbnQgbGluZU51bWJlciwgY29uc3QgU3RyaW5nJiBzb3Vy
Y2VVUkwsIFBhc3NPd25QdHI8U2NyaXB0Q2FsbFN0YWNrPiBjYWxsU3RhY2spCisgICAgOiBtX2Vy
cm9yTWVzc2FnZShlcnJvck1lc3NhZ2UpCisgICAgLCBtX2xpbmVOdW1iZXIobGluZU51bWJlcikK
KyAgICAsIG1fc291cmNlVVJMKHNvdXJjZVVSTCkKKyAgICAsIG1fY2FsbFN0YWNrKGNhbGxTdGFj
aykKK3sKK30KKwogU2NyaXB0RXhlY3V0aW9uQ29udGV4dDo6U2NyaXB0RXhlY3V0aW9uQ29udGV4
dCgpCiAjaWYgRU5BQkxFKERBVEFCQVNFKQogICAgIDogbV9oYXNPcGVuRGF0YWJhc2VzKGZhbHNl
KQogI2VuZGlmCisgICAgLCBtX2luRGlzcGF0Y2hFcnJvckV2ZW50KGZhbHNlKQogewogfQogCkBA
IC0yNDMsNiArMjU3LDQ2IEBAIHZvaWQgU2NyaXB0RXhlY3V0aW9uQ29udGV4dDo6c2V0U2VjdXJp
dHlPcmlnaW4oUGFzc1JlZlB0cjxTZWN1cml0eU9yaWdpbj4gc2VjdXJpCiAgICAgbV9zZWN1cml0
eU9yaWdpbiA9IHNlY3VyaXR5T3JpZ2luOwogfQogCit2b2lkIFNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHQ6OnJlcG9ydEV4Y2VwdGlvbihET01XcmFwcGVyV29ybGQqIHdyYXBwZXJXb3JsZCwgY29uc3Qg
U3RyaW5nJiBlcnJvck1lc3NhZ2UsIGludCBsaW5lTnVtYmVyLCBjb25zdCBTdHJpbmcmIHNvdXJj
ZVVSTCwgUGFzc093blB0cjxTY3JpcHRDYWxsU3RhY2s+IGNhbGxTdGFjaykKK3sKKyAgICBpZiAo
bV9pbkRpc3BhdGNoRXJyb3JFdmVudCkgeworICAgICAgICBpZiAoIW1fcGVuZGluZ0V4Y2VwdGlv
bnMpCisgICAgICAgICAgICBtX3BlbmRpbmdFeGNlcHRpb25zID0gbmV3IFZlY3RvcjxPd25QdHI8
UGVuZGluZ0V4Y2VwdGlvbj4gPigpOworICAgICAgICBtX3BlbmRpbmdFeGNlcHRpb25zLT5hcHBl
bmQobmV3IFBlbmRpbmdFeGNlcHRpb24oZXJyb3JNZXNzYWdlLCBsaW5lTnVtYmVyLCBzb3VyY2VV
UkwsIGNhbGxTdGFjaykpOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgLy8gRmlyc3Qg
cmVwb3J0IHRoZSBvcmlnaW5hbCBleGNlcHRpb24gYW5kIG9ubHkgdGhlbiBhbGwgdGhlIG5lc3Rl
ZCBvbmVzLgorICAgIGlmICghZGlzcGF0Y2hFcnJvckV2ZW50KHdyYXBwZXJXb3JsZCwgZXJyb3JN
ZXNzYWdlLCBsaW5lTnVtYmVyLCBzb3VyY2VVUkwpKQorICAgICAgICBsb2dFeGNlcHRpb25Ub0Nv
bnNvbGUoZXJyb3JNZXNzYWdlLCBsaW5lTnVtYmVyLCBzb3VyY2VVUkwsIGNhbGxTdGFjay5nZXQo
KSk7CisKKyAgICBpZiAobV9wZW5kaW5nRXhjZXB0aW9ucykgeworICAgICAgICBmb3IgKHNpemVf
dCBpID0gMDsgaSA8IG1fcGVuZGluZ0V4Y2VwdGlvbnMtPnNpemUoKTsgaSsrKSB7CisgICAgICAg
ICAgICBQZW5kaW5nRXhjZXB0aW9uKiBlID0gbV9wZW5kaW5nRXhjZXB0aW9ucy0+YXQoaSkuZ2V0
KCk7CisgICAgICAgICAgICBsb2dFeGNlcHRpb25Ub0NvbnNvbGUoZS0+bV9lcnJvck1lc3NhZ2Us
IGUtPm1fbGluZU51bWJlciwgZS0+bV9zb3VyY2VVUkwsIGUtPm1fY2FsbFN0YWNrLmdldCgpKTsK
KyAgICAgICAgfQorICAgICAgICBtX3BlbmRpbmdFeGNlcHRpb25zLmNsZWFyKCk7CisgICAgfQor
fQorCitib29sIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQ6OmRpc3BhdGNoRXJyb3JFdmVudChET01X
cmFwcGVyV29ybGQqIHdyYXBwZXJXb3JsZCwgY29uc3QgU3RyaW5nJiBlcnJvck1lc3NhZ2UsIGlu
dCBsaW5lTnVtYmVyLCBjb25zdCBTdHJpbmcmIHNvdXJjZVVSTCkKK3sKKyAgICAvLyBJdCdzIHVu
c2FmZSB0byBkaXNwYXRjaCBlcnJvciBldmVudCB0byBlcnJvciBoYW5kbGVyIGluIGEgZGlmZmVy
ZW50IHdvcmxkLgorICAgIGlmICghd3JhcHBlcldvcmxkICYmICFpc1dvcmtlckNvbnRleHQoKSkK
KyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgRXZlbnRUYXJnZXQqIHRhcmdldCA9IGVycm9y
RXZlbnRUYXJnZXQoKTsKKyAgICBpZiAoIXRhcmdldCkKKyAgICAgICAgcmV0dXJuIGZhbHNlOwor
CisgICAgQVNTRVJUKCFtX2luRGlzcGF0Y2hFcnJvckV2ZW50KTsKKyAgICBtX2luRGlzcGF0Y2hF
cnJvckV2ZW50ID0gdHJ1ZTsKKyAgICBSZWZQdHI8RXJyb3JFdmVudD4gZXJyb3JFdmVudChFcnJv
ckV2ZW50OjpjcmVhdGUod3JhcHBlcldvcmxkLCBlcnJvck1lc3NhZ2UsIHNvdXJjZVVSTCwgbGlu
ZU51bWJlcikpOworICAgIHRhcmdldC0+ZGlzcGF0Y2hFdmVudChlcnJvckV2ZW50KTsKKyAgICBt
X2luRGlzcGF0Y2hFcnJvckV2ZW50ID0gZmFsc2U7CisgICAgcmV0dXJuIGVycm9yRXZlbnQtPmRl
ZmF1bHRQcmV2ZW50ZWQoKTsKK30KKwogdm9pZCBTY3JpcHRFeGVjdXRpb25Db250ZXh0OjphZGRU
aW1lb3V0KGludCB0aW1lb3V0SWQsIERPTVRpbWVyKiB0aW1lcikKIHsKICAgICBBU1NFUlQoIW1f
dGltZW91dHMuY29udGFpbnModGltZW91dElkKSk7CmRpZmYgLS1naXQgYS9XZWJDb3JlL2RvbS9T
Y3JpcHRFeGVjdXRpb25Db250ZXh0LmggYi9XZWJDb3JlL2RvbS9TY3JpcHRFeGVjdXRpb25Db250
ZXh0LmgKaW5kZXggZDM5Y2I2NGI5NzNlOTI1NTJhYjMwNjczNzMwNDMyMTlmYzJjZTRjOS4uOTIw
MjQ5MTBjZjRiYzQ2MWNlMzE3OWRiMzJhNGE5MzczMWRhNWZkNiAxMDA2NDQKLS0tIGEvV2ViQ29y
ZS9kb20vU2NyaXB0RXhlY3V0aW9uQ29udGV4dC5oCisrKyBiL1dlYkNvcmUvZG9tL1NjcmlwdEV4
ZWN1dGlvbkNvbnRleHQuaApAQCAtMzMsNiArMzMsNyBAQAogI2luY2x1ZGUgPHd0Zi9Gb3J3YXJk
Lmg+CiAjaW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4KICNpbmNsdWRlIDx3dGYvSGFzaFNldC5oPgor
I2luY2x1ZGUgPHd0Zi9Pd25QdHIuaD4KICNpbmNsdWRlIDx3dGYvUGFzc093blB0ci5oPgogI2lu
Y2x1ZGUgPHd0Zi9QYXNzUmVmUHRyLmg+CiAjaW5jbHVkZSA8d3RmL1JlZlB0ci5oPgpAQCAtNTIs
MTEgKzUzLDE1IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICBjbGFzcyBEYXRhYmFzZVRocmVh
ZDsKICNlbmRpZgogICAgIGNsYXNzIERPTVRpbWVyOworICAgIGNsYXNzIERPTVdyYXBwZXJXb3Js
ZDsKKyAgICBjbGFzcyBFdmVudExpc3RlbmVyOworICAgIGNsYXNzIEV2ZW50VGFyZ2V0OwogI2lm
IEVOQUJMRShCTE9CKSB8fCBFTkFCTEUoRklMRV9TWVNURU0pCiAgICAgY2xhc3MgRmlsZVRocmVh
ZDsKICNlbmRpZgogICAgIGNsYXNzIE1lc3NhZ2VQb3J0OwogICAgIGNsYXNzIFNlY3VyaXR5T3Jp
Z2luOworICAgIGNsYXNzIFNjcmlwdENhbGxTdGFjazsKICAgICBjbGFzcyBTY3JpcHRTdHJpbmc7
CiAjaWYgRU5BQkxFKElOU1BFQ1RPUikKICAgICBjbGFzcyBJbnNwZWN0b3JDb250cm9sbGVyOwpA
QCAtOTIsNyArOTcsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIHZpcnR1YWwgSW5z
cGVjdG9yQ29udHJvbGxlciogaW5zcGVjdG9yQ29udHJvbGxlcigpIGNvbnN0IHsgcmV0dXJuIDA7
IH0KICNlbmRpZgogCi0gICAgICAgIHZpcnR1YWwgdm9pZCByZXBvcnRFeGNlcHRpb24oY29uc3Qg
U3RyaW5nJiBlcnJvck1lc3NhZ2UsIGludCBsaW5lTnVtYmVyLCBjb25zdCBTdHJpbmcmIHNvdXJj
ZVVSTCkgPSAwOworICAgICAgICB2aXJ0dWFsIHZvaWQgcmVwb3J0RXhjZXB0aW9uKERPTVdyYXBw
ZXJXb3JsZCosIGNvbnN0IFN0cmluZyYgZXJyb3JNZXNzYWdlLCBpbnQgbGluZU51bWJlciwgY29u
c3QgU3RyaW5nJiBzb3VyY2VVUkwsIFBhc3NPd25QdHI8U2NyaXB0Q2FsbFN0YWNrPik7CiAgICAg
ICAgIHZpcnR1YWwgdm9pZCBhZGRNZXNzYWdlKE1lc3NhZ2VTb3VyY2UsIE1lc3NhZ2VUeXBlLCBN
ZXNzYWdlTGV2ZWwsIGNvbnN0IFN0cmluZyYgbWVzc2FnZSwgdW5zaWduZWQgbGluZU51bWJlciwg
Y29uc3QgU3RyaW5nJiBzb3VyY2VVUkwpID0gMDsKIAogICAgICAgICAvLyBBY3RpdmUgb2JqZWN0
cyBhcmUgbm90IGdhcmJhZ2UgY29sbGVjdGVkIGV2ZW4gaWYgaW5hY2Nlc3NpYmxlLCBlLmcuIGJl
Y2F1c2UgdGhlaXIgYWN0aXZpdHkgbWF5IHJlc3VsdCBpbiBjYWxsYmFja3MgYmVpbmcgaW52b2tl
ZC4KQEAgLTE1NSw2ICsxNjAsMTAgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICB2aXJ0
dWFsIGNvbnN0IEtVUkwmIHZpcnR1YWxVUkwoKSBjb25zdCA9IDA7CiAgICAgICAgIHZpcnR1YWwg
S1VSTCB2aXJ0dWFsQ29tcGxldGVVUkwoY29uc3QgU3RyaW5nJikgY29uc3QgPSAwOwogCisgICAg
ICAgIHZpcnR1YWwgRXZlbnRUYXJnZXQqIGVycm9yRXZlbnRUYXJnZXQoKSA9IDA7CisgICAgICAg
IHZpcnR1YWwgdm9pZCBsb2dFeGNlcHRpb25Ub0NvbnNvbGUoY29uc3QgU3RyaW5nJiBlcnJvck1l
c3NhZ2UsIGludCBsaW5lTnVtYmVyLCBjb25zdCBTdHJpbmcmIHNvdXJjZVVSTCwgU2NyaXB0Q2Fs
bFN0YWNrKikgPSAwOworICAgICAgICBib29sIGRpc3BhdGNoRXJyb3JFdmVudChET01XcmFwcGVy
V29ybGQqLCBjb25zdCBTdHJpbmcmIGVycm9yTWVzc2FnZSwgaW50IGxpbmVOdW1iZXIsIGNvbnN0
IFN0cmluZyYgc291cmNlVVJMKTsKKwogICAgICAgICB2b2lkIGNsb3NlTWVzc2FnZVBvcnRzKCk7
CiAKICAgICAgICAgUmVmUHRyPFNlY3VyaXR5T3JpZ2luPiBtX3NlY3VyaXR5T3JpZ2luOwpAQCAt
MTgwLDYgKzE4OSwxNSBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAjaWYgRU5BQkxFKEJMT0IpIHx8
IEVOQUJMRShGSUxFX1NZU1RFTSkKICAgICAgICAgUmVmUHRyPEZpbGVUaHJlYWQ+IG1fZmlsZVRo
cmVhZDsKICNlbmRpZgorICAgICAgICBib29sIG1faW5EaXNwYXRjaEVycm9yRXZlbnQ7CisgICAg
ICAgIHN0cnVjdCBQZW5kaW5nRXhjZXB0aW9uIDogcHVibGljIE5vbmNvcHlhYmxlIHsKKyAgICAg
ICAgICAgIFBlbmRpbmdFeGNlcHRpb24oY29uc3QgU3RyaW5nJiBlcnJvck1lc3NhZ2UsIGludCBs
aW5lTnVtYmVyLCBjb25zdCBTdHJpbmcmIHNvdXJjZVVSTCwgUGFzc093blB0cjxTY3JpcHRDYWxs
U3RhY2s+IGNhbGxTdGFjayk7CisgICAgICAgICAgICBTdHJpbmcgbV9lcnJvck1lc3NhZ2U7Cisg
ICAgICAgICAgICBpbnQgbV9saW5lTnVtYmVyOworICAgICAgICAgICAgU3RyaW5nIG1fc291cmNl
VVJMOworICAgICAgICAgICAgT3duUHRyPFNjcmlwdENhbGxTdGFjaz4gbV9jYWxsU3RhY2s7Cisg
ICAgICAgIH07CisgICAgICAgIE93blB0cjxWZWN0b3I8T3duUHRyPFBlbmRpbmdFeGNlcHRpb24+
ID4gPiBtX3BlbmRpbmdFeGNlcHRpb25zOwogICAgIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNv
cmUKZGlmZiAtLWdpdCBhL1dlYkNvcmUvd29ya2Vycy9EZWZhdWx0U2hhcmVkV29ya2VyUmVwb3Np
dG9yeS5jcHAgYi9XZWJDb3JlL3dvcmtlcnMvRGVmYXVsdFNoYXJlZFdvcmtlclJlcG9zaXRvcnku
Y3BwCmluZGV4IDRhOGU5NDczMWJhYTYyMGRiZTlkZjVkMzQwOTc3YjA5OWIwYTA2NDQuLmM3MDk5
ODA4NmZmMmNkYTA4ZjM5YmIzZTY2ZDRmNzA1NzliOWNhMDYgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUv
d29ya2Vycy9EZWZhdWx0U2hhcmVkV29ya2VyUmVwb3NpdG9yeS5jcHAKKysrIGIvV2ViQ29yZS93
b3JrZXJzL0RlZmF1bHRTaGFyZWRXb3JrZXJSZXBvc2l0b3J5LmNwcApAQCAtNDIsNiArNDIsNyBA
QAogI2luY2x1ZGUgIk1lc3NhZ2VQb3J0LmgiCiAjaW5jbHVkZSAiTm90SW1wbGVtZW50ZWQuaCIK
ICNpbmNsdWRlICJQbGF0Zm9ybVN0cmluZy5oIgorI2luY2x1ZGUgIlNjcmlwdENhbGxTdGFjay5o
IgogI2luY2x1ZGUgIlNlY3VyaXR5T3JpZ2luLmgiCiAjaW5jbHVkZSAiU2VjdXJpdHlPcmlnaW5I
YXNoLmgiCiAjaW5jbHVkZSAiU2hhcmVkV29ya2VyLmgiCkBAIC0xNTUsNyArMTU2LDcgQEAgdm9p
ZCBTaGFyZWRXb3JrZXJQcm94eTo6cG9zdFRhc2tGb3JNb2RlVG9Xb3JrZXJDb250ZXh0KFBhc3NP
d25QdHI8U2NyaXB0RXhlY3V0aW8KIAogc3RhdGljIHZvaWQgcG9zdEV4Y2VwdGlvblRhc2soU2Ny
aXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCwgY29uc3QgU3RyaW5nJiBlcnJvck1lc3NhZ2Us
IGludCBsaW5lTnVtYmVyLCBjb25zdCBTdHJpbmcmIHNvdXJjZVVSTCkKIHsKLSAgICBjb250ZXh0
LT5yZXBvcnRFeGNlcHRpb24oZXJyb3JNZXNzYWdlLCBsaW5lTnVtYmVyLCBzb3VyY2VVUkwpOwor
ICAgIGNvbnRleHQtPnJlcG9ydEV4Y2VwdGlvbigwLCBlcnJvck1lc3NhZ2UsIGxpbmVOdW1iZXIs
IHNvdXJjZVVSTCwgMCk7CiB9CiAKIHZvaWQgU2hhcmVkV29ya2VyUHJveHk6OnBvc3RFeGNlcHRp
b25Ub1dvcmtlck9iamVjdChjb25zdCBTdHJpbmcmIGVycm9yTWVzc2FnZSwgaW50IGxpbmVOdW1i
ZXIsIGNvbnN0IFN0cmluZyYgc291cmNlVVJMKQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS93b3JrZXJz
L1dvcmtlckNvbnRleHQuY3BwIGIvV2ViQ29yZS93b3JrZXJzL1dvcmtlckNvbnRleHQuY3BwCmlu
ZGV4IDZjZWUyNDYyOWI3Yjg2ZmFjMjdhMjViNWIzYWNhYjM4OTNkNzBiYTguLmY1ZWI0NjQ1Nzc3
MTY1MDhhOWVmMTJjN2U0OGU5YjZmYWFkN2M5YjUgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvd29ya2Vy
cy9Xb3JrZXJDb250ZXh0LmNwcAorKysgYi9XZWJDb3JlL3dvcmtlcnMvV29ya2VyQ29udGV4dC5j
cHAKQEAgLTk5LDcgKzk5LDYgQEAgV29ya2VyQ29udGV4dDo6V29ya2VyQ29udGV4dChjb25zdCBL
VVJMJiB1cmwsIGNvbnN0IFN0cmluZyYgdXNlckFnZW50LCBXb3JrZXJUaHIKICAgICAsIG1fc2Ny
aXB0KG5ldyBXb3JrZXJTY3JpcHRDb250cm9sbGVyKHRoaXMpKQogICAgICwgbV90aHJlYWQodGhy
ZWFkKQogICAgICwgbV9jbG9zaW5nKGZhbHNlKQotICAgICwgbV9yZXBvcnRpbmdFeGNlcHRpb24o
ZmFsc2UpCiB7CiAgICAgc2V0U2VjdXJpdHlPcmlnaW4oU2VjdXJpdHlPcmlnaW46OmNyZWF0ZSh1
cmwpKTsKIH0KQEAgLTI1NiwyMCArMjU1LDEzIEBAIHZvaWQgV29ya2VyQ29udGV4dDo6aW1wb3J0
U2NyaXB0cyhjb25zdCBWZWN0b3I8U3RyaW5nPiYgdXJscywgRXhjZXB0aW9uQ29kZSYgZWMpCiAg
ICAgfQogfQogCi12b2lkIFdvcmtlckNvbnRleHQ6OnJlcG9ydEV4Y2VwdGlvbihjb25zdCBTdHJp
bmcmIGVycm9yTWVzc2FnZSwgaW50IGxpbmVOdW1iZXIsIGNvbnN0IFN0cmluZyYgc291cmNlVVJM
KQorRXZlbnRUYXJnZXQqIFdvcmtlckNvbnRleHQ6OmVycm9yRXZlbnRUYXJnZXQoKQogewotICAg
IGJvb2wgZXJyb3JIYW5kbGVkID0gZmFsc2U7Ci0gICAgaWYgKCFtX3JlcG9ydGluZ0V4Y2VwdGlv
bikgewotICAgICAgICBpZiAob25lcnJvcigpKSB7Ci0gICAgICAgICAgICBtX3JlcG9ydGluZ0V4
Y2VwdGlvbiA9IHRydWU7Ci0gICAgICAgICAgICBSZWZQdHI8RXJyb3JFdmVudD4gZXJyb3JFdmVu
dChFcnJvckV2ZW50OjpjcmVhdGUoZXJyb3JNZXNzYWdlLCBzb3VyY2VVUkwsIGxpbmVOdW1iZXIp
KTsKLSAgICAgICAgICAgIG9uZXJyb3IoKS0+aGFuZGxlRXZlbnQodGhpcywgZXJyb3JFdmVudC5n
ZXQoKSk7Ci0gICAgICAgICAgICBlcnJvckhhbmRsZWQgPSBlcnJvckV2ZW50LT5kZWZhdWx0UHJl
dmVudGVkKCk7Ci0gICAgICAgICAgICBtX3JlcG9ydGluZ0V4Y2VwdGlvbiA9IGZhbHNlOwotICAg
ICAgICB9Ci0gICAgfQotICAgIGlmICghZXJyb3JIYW5kbGVkKQotICAgICAgICB0aHJlYWQoKS0+
d29ya2VyUmVwb3J0aW5nUHJveHkoKS5wb3N0RXhjZXB0aW9uVG9Xb3JrZXJPYmplY3QoZXJyb3JN
ZXNzYWdlLCBsaW5lTnVtYmVyLCBzb3VyY2VVUkwpOworICAgIHJldHVybiB0aGlzOworfQordm9p
ZCBXb3JrZXJDb250ZXh0Ojpsb2dFeGNlcHRpb25Ub0NvbnNvbGUoY29uc3QgU3RyaW5nJiBlcnJv
ck1lc3NhZ2UsIGludCBsaW5lTnVtYmVyLCBjb25zdCBTdHJpbmcmIHNvdXJjZVVSTCwgU2NyaXB0
Q2FsbFN0YWNrKikKK3sKKyAgICB0aHJlYWQoKS0+d29ya2VyUmVwb3J0aW5nUHJveHkoKS5wb3N0
RXhjZXB0aW9uVG9Xb3JrZXJPYmplY3QoZXJyb3JNZXNzYWdlLCBsaW5lTnVtYmVyLCBzb3VyY2VV
UkwpOwogfQogCiB2b2lkIFdvcmtlckNvbnRleHQ6OmFkZE1lc3NhZ2UoTWVzc2FnZVNvdXJjZSBz
b3VyY2UsIE1lc3NhZ2VUeXBlIHR5cGUsIE1lc3NhZ2VMZXZlbCBsZXZlbCwgY29uc3QgU3RyaW5n
JiBtZXNzYWdlLCB1bnNpZ25lZCBsaW5lTnVtYmVyLCBjb25zdCBTdHJpbmcmIHNvdXJjZVVSTCkK
ZGlmZiAtLWdpdCBhL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJDb250ZXh0LmggYi9XZWJDb3JlL3dv
cmtlcnMvV29ya2VyQ29udGV4dC5oCmluZGV4IDQxMjhhNTYyM2I4ZWY4YWRjMzQyMDc0MTUzYTBl
YTRjNmI5ODRkOGYuLjgxNzMwMDZhYTIyMjQ2NmQxOGFkZWI5YTM0MWQzNWI2NWNkYTlmZjkgMTAw
NjQ0Ci0tLSBhL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJDb250ZXh0LmgKKysrIGIvV2ViQ29yZS93
b3JrZXJzL1dvcmtlckNvbnRleHQuaApAQCAtOTksNyArOTksNiBAQCBuYW1lc3BhY2UgV2ViQ29y
ZSB7CiAgICAgICAgIHZvaWQgY2xlYXJJbnRlcnZhbChpbnQgdGltZW91dElkKTsKIAogICAgICAg
ICAvLyBTY3JpcHRFeGVjdXRpb25Db250ZXh0Ci0gICAgICAgIHZpcnR1YWwgdm9pZCByZXBvcnRF
eGNlcHRpb24oY29uc3QgU3RyaW5nJiBlcnJvck1lc3NhZ2UsIGludCBsaW5lTnVtYmVyLCBjb25z
dCBTdHJpbmcmIHNvdXJjZVVSTCk7CiAgICAgICAgIHZpcnR1YWwgdm9pZCBhZGRNZXNzYWdlKE1l
c3NhZ2VTb3VyY2UsIE1lc3NhZ2VUeXBlLCBNZXNzYWdlTGV2ZWwsIGNvbnN0IFN0cmluZyYgbWVz
c2FnZSwgdW5zaWduZWQgbGluZU51bWJlciwgY29uc3QgU3RyaW5nJiBzb3VyY2VVUkwpOwogCiAj
aWYgRU5BQkxFKE5PVElGSUNBVElPTlMpCkBAIC0xNzIsNiArMTcxLDkgQEAgbmFtZXNwYWNlIFdl
YkNvcmUgewogICAgICAgICB2aXJ0dWFsIGNvbnN0IEtVUkwmIHZpcnR1YWxVUkwoKSBjb25zdDsK
ICAgICAgICAgdmlydHVhbCBLVVJMIHZpcnR1YWxDb21wbGV0ZVVSTChjb25zdCBTdHJpbmcmKSBj
b25zdDsKIAorICAgICAgICB2aXJ0dWFsIEV2ZW50VGFyZ2V0KiBlcnJvckV2ZW50VGFyZ2V0KCk7
CisgICAgICAgIHZpcnR1YWwgdm9pZCBsb2dFeGNlcHRpb25Ub0NvbnNvbGUoY29uc3QgU3RyaW5n
JiBlcnJvck1lc3NhZ2UsIGludCBsaW5lTnVtYmVyLCBjb25zdCBTdHJpbmcmIHNvdXJjZVVSTCwg
U2NyaXB0Q2FsbFN0YWNrKik7CisKICAgICAgICAgS1VSTCBtX3VybDsKICAgICAgICAgU3RyaW5n
IG1fdXNlckFnZW50OwogCkBAIC0xODUsNyArMTg3LDYgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewog
ICAgICAgICBtdXRhYmxlIFJlZlB0cjxOb3RpZmljYXRpb25DZW50ZXI+IG1fbm90aWZpY2F0aW9u
czsKICNlbmRpZgogICAgICAgICBib29sIG1fY2xvc2luZzsKLSAgICAgICAgYm9vbCBtX3JlcG9y
dGluZ0V4Y2VwdGlvbjsKICAgICAgICAgRXZlbnRUYXJnZXREYXRhIG1fZXZlbnRUYXJnZXREYXRh
OwogCiAgICAgICAgIEhhc2hTZXQ8T2JzZXJ2ZXIqPiBtX3dvcmtlck9ic2VydmVyczsKZGlmZiAt
LWdpdCBhL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJNZXNzYWdpbmdQcm94eS5jcHAgYi9XZWJDb3Jl
L3dvcmtlcnMvV29ya2VyTWVzc2FnaW5nUHJveHkuY3BwCmluZGV4IDEwNzAwYzY0ZWY2OWU1YTVm
MzdkMDFhZmIyNDQzNmY1YzVmY2UxYTEuLmE3NjZkNjAxMWNkOTNjMzdlZDIxMTMxMjhiYjc4MzEy
YjA2MjMyOTcgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJNZXNzYWdpbmdQcm94
eS5jcHAKKysrIGIvV2ViQ29yZS93b3JrZXJzL1dvcmtlck1lc3NhZ2luZ1Byb3h5LmNwcApAQCAt
NDAsNiArNDAsNyBAQAogI2luY2x1ZGUgIkV4Y2VwdGlvbkNvZGUuaCIKICNpbmNsdWRlICJJbnNw
ZWN0b3JDb250cm9sbGVyLmgiCiAjaW5jbHVkZSAiTWVzc2FnZUV2ZW50LmgiCisjaW5jbHVkZSAi
U2NyaXB0Q2FsbFN0YWNrLmgiCiAjaW5jbHVkZSAiU2NyaXB0RXhlY3V0aW9uQ29udGV4dC5oIgog
I2luY2x1ZGUgIldvcmtlci5oIgogCkBAIC0xMjksOSArMTMwLDkgQEAgcHJpdmF0ZToKICAgICAg
ICAgLy8gV2UgZG9uJ3QgYm90aGVyIGNoZWNraW5nIHRoZSBhc2tlZFRvVGVybWluYXRlKCkgZmxh
ZyBoZXJlLCBiZWNhdXNlIGV4Y2VwdGlvbnMgc2hvdWxkICphbHdheXMqIGJlIHJlcG9ydGVkIGV2
ZW4gaWYgdGhlIHRocmVhZCBpcyB0ZXJtaW5hdGVkLgogICAgICAgICAvLyBUaGlzIGlzIGludGVu
dGlvbmFsbHkgZGlmZmVyZW50IHRoYW4gdGhlIGJlaGF2aW9yIGluIE1lc3NhZ2VXb3JrZXJUYXNr
LCBiZWNhdXNlIHRlcm1pbmF0ZWQgd29ya2VycyBubyBsb25nZXIgZGVsaXZlciBtZXNzYWdlcyAo
c2VjdGlvbiA0LjYgb2YgdGhlIFdlYldvcmtlciBzcGVjKSwgYnV0IHRoZXkgZG8gcmVwb3J0IGV4
Y2VwdGlvbnMuCiAKLSAgICAgICAgYm9vbCBlcnJvckhhbmRsZWQgPSAhd29ya2VyT2JqZWN0LT5k
aXNwYXRjaEV2ZW50KEVycm9yRXZlbnQ6OmNyZWF0ZShtX2Vycm9yTWVzc2FnZSwgbV9zb3VyY2VV
UkwsIG1fbGluZU51bWJlcikpOworICAgICAgICBib29sIGVycm9ySGFuZGxlZCA9ICF3b3JrZXJP
YmplY3QtPmRpc3BhdGNoRXZlbnQoRXJyb3JFdmVudDo6Y3JlYXRlKDAsIG1fZXJyb3JNZXNzYWdl
LCBtX3NvdXJjZVVSTCwgbV9saW5lTnVtYmVyKSk7CiAgICAgICAgIGlmICghZXJyb3JIYW5kbGVk
KQotICAgICAgICAgICAgY29udGV4dC0+cmVwb3J0RXhjZXB0aW9uKG1fZXJyb3JNZXNzYWdlLCBt
X2xpbmVOdW1iZXIsIG1fc291cmNlVVJMKTsKKyAgICAgICAgICAgIGNvbnRleHQtPnJlcG9ydEV4
Y2VwdGlvbigwLCBtX2Vycm9yTWVzc2FnZSwgbV9saW5lTnVtYmVyLCBtX3NvdXJjZVVSTCwgMCk7
CiAgICAgfQogCiAgICAgU3RyaW5nIG1fZXJyb3JNZXNzYWdlOwpkaWZmIC0tZ2l0IGEvV2ViS2l0
L2Nocm9taXVtL0NoYW5nZUxvZyBiL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKaW5kZXggYjAx
YWFiZThjNjg3YmY3NTI2Mzk0Mzg1NTRmMjJmN2Q5MjM4OTc0NC4uZWIwNDAxN2EwNWFlYTk4MDA1
NTdhOTkwNjM4Yjc4Nzg3NzE4M2U3ZCAxMDA2NDQKLS0tIGEvV2ViS2l0L2Nocm9taXVtL0NoYW5n
ZUxvZworKysgYi9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTggQEAKKzIw
MTAtMTAtMDEgIFl1cnkgU2VtaWtoYXRza3kgIDx5dXJ5c0BjaHJvbWl1bS5vcmc+CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgV2ViQ29yZSBkb2Vzbid0
IGZpcmUgd2luZG93Lm9uZXJyb3IgZXZlbnQgd2hlbiB1bmNhdWdodCBKYXZhU2NyaXB0IGV4Y2Vw
dGlvbnMgYXJlIHRocm93bgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9ODUxOQorCisgICAgICAgIFVuY2F1Z2h0IGV4Y2VwdGlvbnMgYXJlIHByb3BhZ2F0
ZWQgdG8gd2luZG93Lm9uZXJyb3IgaGFuZGVyIGlmIG9uZSBpcyBwcmVzZW50LgorICAgICAgICBU
aGUgaGFuZGxlciBpcyBleHBlY3RlZCB0byBiZSBhIGZ1bmN0aW9uIGFjY2VwdGluZyB0aHJlZSBh
cmd1bWVudHM6IGVycm9yIG1lc3NhZ2UsCisgICAgICAgIHJlc291cmNlIHVybCBhbmQgbGluZSBu
dW1iZXIgd2hlcmUgdGhlIGV4Y2VwdGlvbiBvY2N1cmVkLgorCisgICAgICAgICogc3JjL1dlYldv
cmtlckNsaWVudEltcGwuY3BwOiByZXBvcnRFeGNlcHRpb24gc2lnbmF0dXJlIGhhcyBjaGFuZ2Vk
LCBjYWxsIHBsYWNlc3MgYXJlIHVwZGV0ZWQuCisgICAgICAgIChXZWJLaXQ6OldlYldvcmtlckNs
aWVudEltcGw6OnBvc3RFeGNlcHRpb25Ub1dvcmtlck9iamVjdCk6CisgICAgICAgIChXZWJLaXQ6
OldlYldvcmtlckNsaWVudEltcGw6OnBvc3RFeGNlcHRpb25Ub1dvcmtlck9iamVjdFRhc2spOgor
CiAyMDEwLTEwLTAxICBKb2NoZW4gRWlzaW5nZXIgIDxqb2NoZW5AY2hyb21pdW0ub3JnPgogCiAg
ICAgICAgIFJldmlld2VkIGJ5IERhcmluIEZpc2hlci4KZGlmZiAtLWdpdCBhL1dlYktpdC9jaHJv
bWl1bS9zcmMvV2ViV29ya2VyQ2xpZW50SW1wbC5jcHAgYi9XZWJLaXQvY2hyb21pdW0vc3JjL1dl
YldvcmtlckNsaWVudEltcGwuY3BwCmluZGV4IDE4MjgyZTM0MTZiNzNkZTJlY2QwNDYzMmQ2YmNl
NzUyZmRkMzI5YTYuLmQwN2Q2YzFmOTcxMmE4MmMwNTkwMDAyYmIyZGYyOGM3NTkzZWVmNDEgMTAw
NjQ0Ci0tLSBhL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViV29ya2VyQ2xpZW50SW1wbC5jcHAKKysr
IGIvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJXb3JrZXJDbGllbnRJbXBsLmNwcApAQCAtNDEsNiAr
NDEsNyBAQAogI2luY2x1ZGUgIk1lc3NhZ2VFdmVudC5oIgogI2luY2x1ZGUgIk1lc3NhZ2VQb3J0
LmgiCiAjaW5jbHVkZSAiTWVzc2FnZVBvcnRDaGFubmVsLmgiCisjaW5jbHVkZSAiU2NyaXB0Q2Fs
bFN0YWNrLmgiCiAjaW5jbHVkZSAiU2NyaXB0RXhlY3V0aW9uQ29udGV4dC5oIgogI2luY2x1ZGUg
Ildvcmtlci5oIgogI2luY2x1ZGUgIldvcmtlckNvbnRleHQuaCIKQEAgLTI0MywxMSArMjQ0LDEy
IEBAIHZvaWQgV2ViV29ya2VyQ2xpZW50SW1wbDo6cG9zdEV4Y2VwdGlvblRvV29ya2VyT2JqZWN0
KGNvbnN0IFdlYlN0cmluZyYgZXJyb3JNZXNzCiAgICAgICAgIHJldHVybjsKICAgICB9CiAKLSAg
ICBib29sIHVuaGFuZGxlZCA9IG1fd29ya2VyLT5kaXNwYXRjaEV2ZW50KEVycm9yRXZlbnQ6OmNy
ZWF0ZShlcnJvck1lc3NhZ2UsCisgICAgYm9vbCB1bmhhbmRsZWQgPSBtX3dvcmtlci0+ZGlzcGF0
Y2hFdmVudChFcnJvckV2ZW50OjpjcmVhdGUoMCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlcnJvck1lc3NhZ2UsCiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgc291cmNlVVJMLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGxpbmVOdW1iZXIpKTsKICAgICBpZiAodW5oYW5kbGVkKQot
ICAgICAgICBtX3NjcmlwdEV4ZWN1dGlvbkNvbnRleHQtPnJlcG9ydEV4Y2VwdGlvbihlcnJvck1l
c3NhZ2UsIGxpbmVOdW1iZXIsIHNvdXJjZVVSTCk7CisgICAgICAgIG1fc2NyaXB0RXhlY3V0aW9u
Q29udGV4dC0+cmVwb3J0RXhjZXB0aW9uKDAsIGVycm9yTWVzc2FnZSwgbGluZU51bWJlciwgc291
cmNlVVJMLCAwKTsKIH0KIAogdm9pZCBXZWJXb3JrZXJDbGllbnRJbXBsOjpwb3N0Q29uc29sZU1l
c3NhZ2VUb1dvcmtlck9iamVjdChpbnQgZGVzdGluYXRpb24sCkBAIC0zNzcsMTMgKzM3OSwxNiBA
QCB2b2lkIFdlYldvcmtlckNsaWVudEltcGw6OnBvc3RFeGNlcHRpb25Ub1dvcmtlck9iamVjdFRh
c2soCiB7CiAgICAgYm9vbCBoYW5kbGVkID0gZmFsc2U7CiAgICAgaWYgKHRoaXNQdHItPm1fd29y
a2VyKQotICAgICAgICBoYW5kbGVkID0gdGhpc1B0ci0+bV93b3JrZXItPmRpc3BhdGNoRXZlbnQo
RXJyb3JFdmVudDo6Y3JlYXRlKGVycm9yTWVzc2FnZSwKKyAgICAgICAgaGFuZGxlZCA9IHRoaXNQ
dHItPm1fd29ya2VyLT5kaXNwYXRjaEV2ZW50KEVycm9yRXZlbnQ6OmNyZWF0ZSgwLAorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIGVycm9yTWVzc2FnZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzb3VyY2VVUkwsCiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgbGluZU51bWJlcikpOwogICAgIGlmICghaGFuZGxlZCkKLSAgICAgICAgdGhpc1B0ci0+bV9z
Y3JpcHRFeGVjdXRpb25Db250ZXh0LT5yZXBvcnRFeGNlcHRpb24oZXJyb3JNZXNzYWdlLAorICAg
ICAgICB0aGlzUHRyLT5tX3NjcmlwdEV4ZWN1dGlvbkNvbnRleHQtPnJlcG9ydEV4Y2VwdGlvbigw
LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBlcnJvck1lc3NhZ2UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGxpbmVOdW1iZXIsCi0gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNvdXJjZVVSTCk7CisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNvdXJj
ZVVSTCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgMCk7CiB9CiAKIHZvaWQgV2ViV29ya2VyQ2xpZW50SW1wbDo6cG9zdENvbnNvbGVN
ZXNzYWdlVG9Xb3JrZXJPYmplY3RUYXNrKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQs
Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>69610</attachid>
            <date>2010-10-04 02:48:40 -0700</date>
            <delta_ts>2010-10-19 05:47:33 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-8519-20101004134837.patch</filename>
            <type>text/plain</type>
            <size>108370</size>
            <attacher name="Yury Semikhatsky">yurys</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCAwMDhmYzc3NmFlZTA2ZjI5NzgwMzA5ZmZhMmEzMGJhZDMxMDVkNGFlLi5kNmE3MmYw
YjQxOTMyZDUwODFkZjM4ZTlhY2U1YWFiNTA0Zjg3NjUyIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNjEgQEAK
KzIwMTAtMTAtMDEgIFl1cnkgU2VtaWtoYXRza3kgIDx5dXJ5c0BjaHJvbWl1bS5vcmc+CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgV2ViQ29yZSBkb2Vz
bid0IGZpcmUgd2luZG93Lm9uZXJyb3IgZXZlbnQgd2hlbiB1bmNhdWdodCBKYXZhU2NyaXB0IGV4
Y2VwdGlvbnMgYXJlIHRocm93bgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9ODUxOQorCisgICAgICAgIFVuY2F1Z2h0IGV4Y2VwdGlvbnMgYXJlIHByb3Bh
Z2F0ZWQgdG8gd2luZG93Lm9uZXJyb3IgaGFuZGVyIGlmIG9uZSBpcyBwcmVzZW50LgorICAgICAg
ICBUaGUgaGFuZGxlciBpcyBleHBlY3RlZCB0byBiZSBhIGZ1bmN0aW9uIGFjY2VwdGluZyB0aHJl
ZSBhcmd1bWVudHM6IGVycm9yIG1lc3NhZ2UsCisgICAgICAgIHJlc291cmNlIHVybCBhbmQgbGlu
ZSBudW1iZXIgd2hlcmUgdGhlIGV4Y2VwdGlvbiBvY2N1cmVkLgorCisgICAgICAgICogZmFzdC9l
dmVudHMvcmVzb3VyY2VzL3dpbmRvdy1vbmVycm9yLmpzOiBBZGRlZC4KKyAgICAgICAgKHRocm93
RXhjZXB0aW9uKToKKyAgICAgICAgKiBmYXN0L2V2ZW50cy93aW5kb3ctb25lcnJvcjEtZXhwZWN0
ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2V2ZW50cy93aW5kb3ctb25lcnJvcjEuaHRt
bDogQWRkZWQuCisgICAgICAgICogZmFzdC9ldmVudHMvd2luZG93LW9uZXJyb3IxMC1leHBlY3Rl
ZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZXZlbnRzL3dpbmRvdy1vbmVycm9yMTAuaHRt
bDogQWRkZWQuCisgICAgICAgICogZmFzdC9ldmVudHMvd2luZG93LW9uZXJyb3IxMS1leHBlY3Rl
ZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZXZlbnRzL3dpbmRvdy1vbmVycm9yMTEuaHRt
bDogQWRkZWQuCisgICAgICAgICogZmFzdC9ldmVudHMvd2luZG93LW9uZXJyb3IyLWV4cGVjdGVk
LnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC9ldmVudHMvd2luZG93LW9uZXJyb3IyLmh0bWw6
IEFkZGVkLgorICAgICAgICAqIGZhc3QvZXZlbnRzL3dpbmRvdy1vbmVycm9yMy1leHBlY3RlZC50
eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZXZlbnRzL3dpbmRvdy1vbmVycm9yMy5odG1sOiBB
ZGRlZC4KKyAgICAgICAgKiBmYXN0L2V2ZW50cy93aW5kb3ctb25lcnJvcjQtZXhwZWN0ZWQudHh0
OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2V2ZW50cy93aW5kb3ctb25lcnJvcjQuaHRtbDogQWRk
ZWQuCisgICAgICAgICogZmFzdC9ldmVudHMvd2luZG93LW9uZXJyb3I1LWV4cGVjdGVkLnR4dDog
QWRkZWQuCisgICAgICAgICogZmFzdC9ldmVudHMvd2luZG93LW9uZXJyb3I1Lmh0bWw6IEFkZGVk
LgorICAgICAgICAqIGZhc3QvZXZlbnRzL3dpbmRvdy1vbmVycm9yNi1leHBlY3RlZC50eHQ6IEFk
ZGVkLgorICAgICAgICAqIGZhc3QvZXZlbnRzL3dpbmRvdy1vbmVycm9yNi5odG1sOiBBZGRlZC4K
KyAgICAgICAgKiBmYXN0L2V2ZW50cy93aW5kb3ctb25lcnJvcjctZXhwZWN0ZWQudHh0OiBBZGRl
ZC4KKyAgICAgICAgKiBmYXN0L2V2ZW50cy93aW5kb3ctb25lcnJvcjcuaHRtbDogQWRkZWQuCisg
ICAgICAgICogZmFzdC9ldmVudHMvd2luZG93LW9uZXJyb3I4LWV4cGVjdGVkLnR4dDogQWRkZWQu
CisgICAgICAgICogZmFzdC9ldmVudHMvd2luZG93LW9uZXJyb3I4Lmh0bWw6IEFkZGVkLgorICAg
ICAgICAqIGZhc3QvZXZlbnRzL3dpbmRvdy1vbmVycm9yOS1leHBlY3RlZC50eHQ6IEFkZGVkLgor
ICAgICAgICAqIGZhc3QvZXZlbnRzL3dpbmRvdy1vbmVycm9yOS5odG1sOiBBZGRlZC4KKyAgICAg
ICAgKiBmYXN0L3dvcmtlcnMvd29ya2VyLXNjcmlwdC1lcnJvci1leHBlY3RlZC50eHQ6CisgICAg
ICAgICogaHR0cC90ZXN0cy9pbnNwZWN0b3IvcmVzb3VyY2UtY29udGVudC1sZW5ndGgtZXhwZWN0
ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL2luc3BlY3Rvci9yZXNvdXJjZXMv
aW1hZ2UuaHRtbDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9zZWN1cml0eS9yZXNvdXJj
ZXMvb25lcnJvci1pZnJhbWUuaHRtbDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9zZWN1
cml0eS93aW5kb3ctb25lcnJvci1leGNlcHRpb24taW4taWZyYW1lLWV4cGVjdGVkLnR4dDogQWRk
ZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9zZWN1cml0eS93aW5kb3ctb25lcnJvci1leGNlcHRp
b24taW4taWZyYW1lLmh0bWw6IEFkZGVkLgorICAgICAgICAqIHBsYXRmb3JtL2Nocm9taXVtLXdp
bi9mYXN0L3dvcmtlcnMvd29ya2VyLXNjcmlwdC1lcnJvci1leHBlY3RlZC50eHQ6CisgICAgICAg
ICogcGxhdGZvcm0vY2hyb21pdW0vZmFzdC9ldmVudHMvd2luZG93LW9uZXJyb3IxLWV4cGVjdGVk
LnR4dDogQWRkZWQuCisgICAgICAgICogcGxhdGZvcm0vY2hyb21pdW0vZmFzdC9ldmVudHMvd2lu
ZG93LW9uZXJyb3IxMC1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIHBsYXRmb3JtL2No
cm9taXVtL2Zhc3QvZXZlbnRzL3dpbmRvdy1vbmVycm9yMTEtZXhwZWN0ZWQudHh0OiBBZGRlZC4K
KyAgICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS9mYXN0L2V2ZW50cy93aW5kb3ctb25lcnJvcjIt
ZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS9mYXN0L2V2
ZW50cy93aW5kb3ctb25lcnJvcjMtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBwbGF0
Zm9ybS9jaHJvbWl1bS9mYXN0L2V2ZW50cy93aW5kb3ctb25lcnJvcjQtZXhwZWN0ZWQudHh0OiBB
ZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS9mYXN0L2V2ZW50cy93aW5kb3ctb25l
cnJvcjUtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS9m
YXN0L2V2ZW50cy93aW5kb3ctb25lcnJvcjYtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAg
KiBwbGF0Zm9ybS9jaHJvbWl1bS9mYXN0L2V2ZW50cy93aW5kb3ctb25lcnJvcjctZXhwZWN0ZWQu
dHh0OiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS9mYXN0L2V2ZW50cy93aW5k
b3ctb25lcnJvcjgtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9jaHJv
bWl1bS9mYXN0L2V2ZW50cy93aW5kb3ctb25lcnJvcjktZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAg
ICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS9odHRwL3Rlc3RzL3NlY3VyaXR5L3dpbmRvdy1vbmVy
cm9yLWV4Y2VwdGlvbi1pbi1pZnJhbWUtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBw
bGF0Zm9ybS9jaHJvbWl1bS91c2Vyc2NyaXB0cy93aW5kb3ctb25lcnJvci1mb3ItaXNvbGF0ZWQt
d29ybGQtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiB1c2Vyc2NyaXB0cy93aW5kb3ct
b25lcnJvci1mb3ItaXNvbGF0ZWQtd29ybGQtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAg
KiB1c2Vyc2NyaXB0cy93aW5kb3ctb25lcnJvci1mb3ItaXNvbGF0ZWQtd29ybGQuaHRtbDogQWRk
ZWQuCisKIDIwMTAtMTAtMDQgIEtlbnQgVGFtdXJhICA8dGtlbnRAY2hyb21pdW0ub3JnPgogCiAg
ICAgICAgIFVucmV2aWV3ZWQsIHRlc3QgZXhwZWN0YXRpb24gdXBkYXRlLgpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvcmVzb3VyY2VzL3dpbmRvdy1vbmVycm9yLmpzIGIvTGF5
b3V0VGVzdHMvZmFzdC9ldmVudHMvcmVzb3VyY2VzL3dpbmRvdy1vbmVycm9yLmpzCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjM0NDU3NGJiNjUzYzNmZWRmMjMxNTE2ZTFkMGI5OTYwMzg5YmFmNjAKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9yZXNvdXJjZXMvd2luZG93LW9uZXJyb3Iu
anMKQEAgLTAsMCArMSwzIEBACitmdW5jdGlvbiB0aHJvd0V4Y2VwdGlvbigpIHsKKyAgICB0aHJv
dyBuZXcgRXJyb3IoIkFuIGV4Y2VwdGlvbiIpOworfQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
ZmFzdC9ldmVudHMvd2luZG93LW9uZXJyb3IxLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zh
c3QvZXZlbnRzL3dpbmRvdy1vbmVycm9yMS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZmU1MWI3
MjJmMGIzNzA5YWVjZDRiODE1Y2QyMDcwOTVjMDI0NjU0NQotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL2Zhc3QvZXZlbnRzL3dpbmRvdy1vbmVycm9yMS1leHBlY3RlZC50eHQKQEAgLTAs
MCArMSwzIEBACitUaGlzIHBhZ2UgdGVzdHMgc2V0dGluZyBvbmVycm9yIGhhbmRsZXJzIHRocm91
Z2ggdGhlIERPTS4gSWYgaXQgcGFzc2VzLCB5b3Ugd2lsbCBzZWUgIlBBU1MiIG1lc3NhZ2VzIGJl
bG93LkJ1ZyA4NTE5LgorCitQQVNTOiBjYXVnaHQgZ2xvYmFsIGVycm9yOiBSZWZlcmVuY2VFcnJv
cjogQ2FuJ3QgZmluZCB2YXJpYWJsZTogaGFoYWhhX2dvb2RfbHVja19maW5kaW5nX21lIGF0IHdp
bmRvdy1vbmVycm9yMS5odG1sOjI1CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50
cy93aW5kb3ctb25lcnJvcjEuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3dpbmRvdy1v
bmVycm9yMS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjU5ZDI0OTU4Njg4NTU3NGFlMDhiMzY1YWMyMWFkMTEx
Y2I3M2E1ZjMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy93aW5k
b3ctb25lcnJvcjEuaHRtbApAQCAtMCwwICsxLDM1IEBACis8aHRtbD4KKzxoZWFkPgorPHNjcmlw
dD4KK2lmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCisgICAgbGF5b3V0VGVzdENvbnRy
b2xsZXIuZHVtcEFzVGV4dCgpOworCitmdW5jdGlvbiBwcmludChtZXNzYWdlLCBjb2xvcikKK3sK
KyAgICB2YXIgcGFyYWdyYXBoID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7CisgICAg
cGFyYWdyYXBoLmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKG1lc3NhZ2UpKTsK
KyAgICBwYXJhZ3JhcGguc3R5bGUuZm9udEZhbWlseSA9ICJtb25vc3BhY2UiOworICAgIGlmIChj
b2xvcikKKyAgICAgICAgcGFyYWdyYXBoLnN0eWxlLmNvbG9yID0gY29sb3I7CisgICAgZG9jdW1l
bnQuZ2V0RWxlbWVudEJ5SWQoImNvbnNvbGUiKS5hcHBlbmRDaGlsZChwYXJhZ3JhcGgpOworfQor
CitmdW5jdGlvbiB0ZXN0KCkKK3sKKyAgICAvLyBtdXN0IGJlIGxhc3QgYmVjYXVzZSB0aGUgZXhj
ZXB0aW9uIGVuZHMgSmF2YVNjcmlwdCBleGVjdXRpb24KKyAgICB3aW5kb3cub25lcnJvciA9IGZ1
bmN0aW9uIChlcnJvciwgdXJsLCBsaW5lKSB7CisgICAgICAgIHVybCA9IHVybCA/IHVybC5tYXRj
aCggL1teXC9dK1wvPyQvIClbMF0gOiB1cmw7CisgICAgICAgIHByaW50KCJQQVNTOiBjYXVnaHQg
Z2xvYmFsIGVycm9yOiAiICsgZXJyb3IgKyAiIGF0ICIgKyB1cmwgKyAiOiIgKyBsaW5lLCAiZ3Jl
ZW4iKTsKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH07CisgICAgaGFoYWhhX2dvb2RfbHVj
a19maW5kaW5nX21lKCk7IC8vIGNhdWdodCBieSB3aW5kb3cub25lcnJvcgorfQorPC9zY3JpcHQ+
Cis8L2hlYWQ+Cis8Ym9keSBvbmxvYWQ9InRlc3QoKTsiPgorPHA+VGhpcyBwYWdlIHRlc3RzIHNl
dHRpbmcgb25lcnJvciBoYW5kbGVycyB0aHJvdWdoIHRoZSBET00uIElmIGl0IHBhc3NlcywgeW91
IHdpbGwKKyAgIHNlZSAiUEFTUyIgbWVzc2FnZXMgYmVsb3cuPGEgaHJlZj0iaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTg1MTkiPkJ1ZyA4NTE5PC9hPi48L3A+Cis8aHI+
Cis8ZGl2IGlkPSdjb25zb2xlJz48L2Rpdj4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3dpbmRvdy1vbmVycm9yMTAtZXhwZWN0ZWQudHh0IGIv
TGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvd2luZG93LW9uZXJyb3IxMC1leHBlY3RlZC50eHQKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uYmZmNTYzNjU0MTFmMWQ5ZjA3OTdiZGIwMDg3NTExNzY2OWI0OTRkMQotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3dpbmRvdy1vbmVycm9yMTAtZXhw
ZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTEgQEAKK1Rlc3QgdGhhdCAiZXJyb3IiIGV2ZW50IGxpc3Rl
bmVyIGFkZGVkIHdpdGggd2luZG93LmFkZEV2ZW50TGlzdGVuZXIgaXMgaW52b2tlZCBmb3IgdW5j
YXVjaHQgZXhjZXB0aW9ucy4gQnVnIDg1MTkuCisKK2V2ZW50IHBhc3NlZCB0byB0aGUgbGlzdGVu
ZXIgaXMgdGhlIHNhbWUgYXMgd2luZG93LmV2ZW50OiB0cnVlCitFdmVudCBkZXRhaWxzOgordHlw
ZTogZXJyb3IKK3BoYXNlOiAyCitjdXJyZW50VGFyZ2V0IGlzIHRoZSBnbG9iYWwgb2JqZWN0OiB0
cnVlCittZXNzYWdlOiBFcnJvcjogTXkgZmF1bHQuCitmaWxlbmFtZTogd2luZG93LW9uZXJyb3Ix
MC5odG1sCitsaW5lbm86IDI5CisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRz
L3dpbmRvdy1vbmVycm9yMTAuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3dpbmRvdy1v
bmVycm9yMTAuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yNmVkMDE4ZmRmMThhMzQ3Mzg1M2UxYzEwNmRhOGM1
ZWQ5NjAyMWZlCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvd2lu
ZG93LW9uZXJyb3IxMC5odG1sCkBAIC0wLDAgKzEsMzMgQEAKKzxodG1sPgorPGJvZHk+Cis8cD5U
ZXN0IHRoYXQgImVycm9yIiBldmVudCBsaXN0ZW5lciBhZGRlZCB3aXRoIHdpbmRvdy5hZGRFdmVu
dExpc3RlbmVyIGlzIGludm9rZWQgZm9yIHVuY2F1Y2h0IGV4Y2VwdGlvbnMuIDxhIGhyZWY9Imh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04NTE5Ij5CdWcgODUxOTwvYT4u
PC9wPgorPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+Cis8c2NyaXB0PgoraWYgKHdpbmRvdy5sYXlv
dXRUZXN0Q29udHJvbGxlcikKKyAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7
CisKK2Z1bmN0aW9uIGxvZyhtc2cpIHsKKyAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY29u
c29sZSIpLmlubmVySFRNTCArPSBtc2cgKyAiPGJyPiI7Cit9CisKK2Z1bmN0aW9uIGxhc3RQYXRo
Q29tcG9uZW50KHVybCkgeworICAgIHJldHVybiB1cmwgPyB1cmwubWF0Y2goIC9bXlwvXStcLz8k
LyApWzBdIDogdXJsOworfQorCit3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigiZXJyb3IiLCBmdW5j
dGlvbihlKSB7CisgICAgbG9nKCJldmVudCBwYXNzZWQgdG8gdGhlIGxpc3RlbmVyIGlzIHRoZSBz
YW1lIGFzIHdpbmRvdy5ldmVudDogIiArICh3aW5kb3cuZXZlbnQgPT09IGUpKTsKKyAgICBsb2co
IkV2ZW50IGRldGFpbHM6Iik7CisgICAgbG9nKCJ0eXBlOiAiICsgZS50eXBlKTsKKyAgICBsb2co
InBoYXNlOiAiICsgZS5ldmVudFBoYXNlKQorICAgIGxvZygiY3VycmVudFRhcmdldCBpcyB0aGUg
Z2xvYmFsIG9iamVjdDogIiArIChlLmN1cnJlbnRUYXJnZXQgPT09IHdpbmRvdykpOworICAgIGxv
ZygibWVzc2FnZTogIiArIGUubWVzc2FnZSk7CisgICAgbG9nKCJmaWxlbmFtZTogIiArIGxhc3RQ
YXRoQ29tcG9uZW50KGUuZmlsZW5hbWUpKTsKKyAgICBsb2coImxpbmVubzogIiArIGUubGluZW5v
KTsKKyAgICBlLnByZXZlbnREZWZhdWx0KCk7Cit9LCBmYWxzZSk7CisKK3Rocm93IG5ldyBFcnJv
cigiTXkgZmF1bHQuIik7CisKKzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvd2luZG93LW9uZXJyb3IxMS1leHBlY3RlZC50eHQg
Yi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy93aW5kb3ctb25lcnJvcjExLWV4cGVjdGVkLnR4dApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi45NmUyMGNjM2VjM2IxMGI3NTNjYmFjZDZkMGJhMDk0M2RjZGVlMjY0Ci0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvd2luZG93LW9uZXJyb3IxMS1l
eHBlY3RlZC50eHQKQEAgLTAsMCArMSw0IEBACitUZXN0IHRoYXQgd2luZG93Lm9uZXJyb3IgaXMg
Y2FsbGVkIG9uIHdpbmRvdyBvYmplY3QuIEJ1ZyA4NTE5LgorCitNYWluIGZyYW1lIHdpbmRvdy5v
bmVycm9yOiBFcnJvcjogQW4gZXhjZXB0aW9uIGF0IHdpbmRvdy1vbmVycm9yLmpzOjIKKwpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvd2luZG93LW9uZXJyb3IxMS5odG1sIGIv
TGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvd2luZG93LW9uZXJyb3IxMS5odG1sCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
Ljc2NTVmYTcyN2Q4YjU2MmEwYmU0M2VhZTIzZDFjMDY0MTA0MmU0NTMKLS0tIC9kZXYvbnVsbAor
KysgYi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy93aW5kb3ctb25lcnJvcjExLmh0bWwKQEAgLTAs
MCArMSwyOCBAQAorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvd2luZG93
LW9uZXJyb3IuanMiPgorPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxwPlRlc3QgdGhhdCB3
aW5kb3cub25lcnJvciBpcyBjYWxsZWQgb24gd2luZG93IG9iamVjdC4gPGEgaHJlZj0iaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTg1MTkiPkJ1ZyA4NTE5PC9hPi48L3A+
Cis8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KKzxzY3JpcHQ+CitpZiAod2luZG93LmxheW91dFRl
c3RDb250cm9sbGVyKQorICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKKwor
ZnVuY3Rpb24gbG9nKG1zZykgeworICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjb25zb2xl
IikuaW5uZXJIVE1MICs9IG1zZyArICI8YnI+IjsKK30KKword2luZG93Lm9uZXJyb3IgPSBmdW5j
dGlvbihtc2csIHVybCwgbGluZSkKK3sKKyAgICB1cmwgPSB1cmwgPyB1cmwubWF0Y2goIC9bXlwv
XStcLz8kLyApWzBdIDogdXJsOworICAgIGxvZygiTWFpbiBmcmFtZSB3aW5kb3cub25lcnJvcjog
IiArIG1zZyArICIgYXQgIiArIHVybCArICI6IiArIGxpbmUpOworICAgIHJldHVybiBmYWxzZTsK
K30KKwordGhyb3dFeGNlcHRpb24oKTsKKworPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy93aW5kb3ctb25lcnJvcjItZXhwZWN0
ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvd2luZG93LW9uZXJyb3IyLWV4cGVjdGVk
LnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi45M2EyZDNmMTNiMWQxYjg3OTY0ZjYzOGM2ZjViZjcyNmQ5MTI3Njc4
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvd2luZG93LW9uZXJy
b3IyLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDYgQEAKK1Rlc3QgdGhhdCB1bmNhdWdodCBleGNl
cHRpb25zIHdpbGwgYmUgcmVwb3J0ZWQgdG8gdGhlIHdpbmRvdy5vbmVycm9yIGhhbmRsZXIuIEJ1
ZyA4NTE5LgorCitNYWluIGZyYW1lIHdpbmRvdy5vbmVycm9yOiBFcnJvcjogSW5saW5lIHNjcmlw
dCBleGNlcHRpb24gYXQgd2luZG93LW9uZXJyb3IyLmh0bWw6MzUKK01haW4gZnJhbWUgd2luZG93
Lm9uZXJyb3I6IEV4Y2VwdGlvbiBpbiBvbmxvYWQgYXQgdW5kZWZpbmVkOjAKK01haW4gZnJhbWUg
d2luZG93Lm9uZXJyb3I6IEVycm9yOiBFeGNlcHRpb24gaW4gc2V0VGltZW91dCBhdCB3aW5kb3ct
b25lcnJvcjIuaHRtbDoyOQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy93
aW5kb3ctb25lcnJvcjIuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3dpbmRvdy1vbmVy
cm9yMi5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLmRiOWZiNzVlYzQwNjJhYzdlNGYzYmY1NjAzZTRhNThiZmQ1
NGUzZjcKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy93aW5kb3ct
b25lcnJvcjIuaHRtbApAQCAtMCwwICsxLDQxIEBACis8aHRtbD4KKzxib2R5IG9ubG9hZD0idGhy
b3cgJ0V4Y2VwdGlvbiBpbiBvbmxvYWQnOyI+Cis8cD5UZXN0IHRoYXQgdW5jYXVnaHQgZXhjZXB0
aW9ucyB3aWxsIGJlIHJlcG9ydGVkIHRvIHRoZSB3aW5kb3cub25lcnJvciBoYW5kbGVyLiA8YSBo
cmVmPSJodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODUxOSI+QnVnIDg1
MTk8L2E+LjwvcD4KKzxkaXYgaWQ9InJlc3VsdCI+PC9kaXY+Cis8c2NyaXB0PgoraWYgKHdpbmRv
dy5sYXlvdXRUZXN0Q29udHJvbGxlcikgeworICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBB
c1RleHQoKTsKKyAgICBsYXlvdXRUZXN0Q29udHJvbGxlci53YWl0VW50aWxEb25lKCk7Cit9CisK
K2Z1bmN0aW9uIGxvZyhtc2cpIHsKKyAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicmVzdWx0
IikuaW5uZXJIVE1MICs9IG1zZyArICI8YnI+IjsKK30KKwordmFyIHVuaGFuZGxlZEVycm9yQ291
bnQgPSAwOword2luZG93Lm9uZXJyb3IgPSBmdW5jdGlvbihtc2csIHVybCwgbGluZSkKK3sKKyAg
ICB1cmwgPSB1cmwgPyB1cmwubWF0Y2goIC9bXlwvXStcLz8kLyApWzBdIDogdXJsOworICAgIGxv
ZygiTWFpbiBmcmFtZSB3aW5kb3cub25lcnJvcjogIiArIG1zZyArICIgYXQgIiArIHVybCArICI6
IiArIGxpbmUpOworICAgIAorICAgIGlmICgrK3VuaGFuZGxlZEVycm9yQ291bnQgPT09IDMgJiYg
d2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQorICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxl
ci5ub3RpZnlEb25lKCk7CisKKyAgICByZXR1cm4gZmFsc2U7Cit9CisKK2Z1bmN0aW9uIGRlbGF5
ZWRUaHJvd0V4Y2VwdGlvbigpCit7CisgICAgdGhyb3cgbmV3IEVycm9yKCJFeGNlcHRpb24gaW4g
c2V0VGltZW91dCIpOworfQorc2V0VGltZW91dChkZWxheWVkVGhyb3dFeGNlcHRpb24sIDApOwor
CitmdW5jdGlvbiB0aHJvd0V4Y2VwdGlvbigpCit7CisgICAgdGhyb3cgbmV3IEVycm9yKCJJbmxp
bmUgc2NyaXB0IGV4Y2VwdGlvbiIpOworfQordGhyb3dFeGNlcHRpb24oKTsKKworPC9zY3JpcHQ+
Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy93
aW5kb3ctb25lcnJvcjMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvd2lu
ZG93LW9uZXJyb3IzLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43MDI1ZGJiOTdhMmNmNDI5ZGYy
YTgxMTkwOTFjYTc2ZTdhODA2NzMxCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFz
dC9ldmVudHMvd2luZG93LW9uZXJyb3IzLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDQgQEAKK1lv
dSBzaG91bGQgc2VlIGEgbWVzc2FnZSBpZiB3aW5kb3cub25lcnJvciBpcyB3b3JraW5nIHByb3Bl
cmx5IGZvciB0aGlzIHRlc3QuQnVnIDg1MTkuCisKK0Vycm9yIGNhdWdodCBzdWNjZXNzZnVsbHk6
IFJlZmVyZW5jZUVycm9yOiBDYW4ndCBmaW5kIHZhcmlhYmxlOiB1bmtub3duT2JqZWN0IEZpbGU6
IHdpbmRvdy1vbmVycm9yMy5odG1sIExpbmU6IDE2CisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2Zhc3QvZXZlbnRzL3dpbmRvdy1vbmVycm9yMy5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVu
dHMvd2luZG93LW9uZXJyb3IzLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZWUyODkzZjBjN2Q5OTMyMTc2YzBl
YTMxZWE0ZjBkMjEwY2VmMTNjZgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3Qv
ZXZlbnRzL3dpbmRvdy1vbmVycm9yMy5odG1sCkBAIC0wLDAgKzEsMjMgQEAKKzxzY3JpcHQ+Citp
ZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQorICAgIGxheW91dFRlc3RDb250cm9sbGVy
LmR1bXBBc1RleHQoKTsKKworZnVuY3Rpb24gbG9nKG1zZykgeworICAgIGRvY3VtZW50LmdldEVs
ZW1lbnRCeUlkKCJjb25zb2xlIikuaW5uZXJIVE1MICs9IG1zZyArICI8YnI+IjsKK30KKworZnVu
Y3Rpb24gdGVzdDEoKQoreworICAgIHdpbmRvdy5vbmVycm9yID0gZnVuY3Rpb24gKGVycm9yLCB1
cmwsIGxpbmUpIHsKKyAgICAgICAgdXJsID0gdXJsID8gdXJsLm1hdGNoKCAvW15cL10rXC8/JC8g
KVswXSA6IHVybDsKKyAgICAgICAgbG9nKCJFcnJvciBjYXVnaHQgc3VjY2Vzc2Z1bGx5OiAiICsg
ZXJyb3IgKyAiXG5GaWxlOiAiICsgdXJsICsgIlxuTGluZTogIiArIGxpbmUpCisgICAgICAgIHJl
dHVybiBmYWxzZTsKKyAgICB9OworICAgIHVua25vd25PYmplY3QudW5rbm93blByb3BlcnR5Kys7
Cit9Cis8L3NjcmlwdD4KKzxib2R5IG9ubG9hZD0idGVzdDEoKTsiPgorPHA+WW91IHNob3VsZCBz
ZWUgYSBtZXNzYWdlIGlmIHdpbmRvdy5vbmVycm9yIGlzIHdvcmtpbmcgcHJvcGVybHkgZm9yIHRo
aXMgdGVzdC48YSBocmVmPSJodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
ODUxOSI+QnVnIDg1MTk8L2E+LjwvcD4KKzxocj4KKzxkaXYgaWQ9J2NvbnNvbGUnPjwvZGl2Pgor
PC9ib2R5PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvd2luZG93LW9uZXJy
b3I0LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3dpbmRvdy1vbmVycm9y
NC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMjZhZjhhMWVhOWM4MmQxZGRiMjBiZmEwNzFiZGE3
ZjhjNjc3Yjc2NgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3dp
bmRvdy1vbmVycm9yNC1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw0IEBACitZb3Ugc2hvdWxkIHNl
ZSBhIGxvZyByZWNvcmQgaWYgd2luZG93Lm9uZXJyb3IgaXMgd29ya2luZyBwcm9wZXJseSBmb3Ig
dGhpcyB0ZXN0LkJ1ZyA4NTE5LgorCitFcnJvciBjYXVnaHQgc3VjY2Vzc2Z1bGx5OiBSZWZlcmVu
Y2VFcnJvcjogTGVmdCBzaWRlIG9mIGFzc2lnbm1lbnQgaXMgbm90IGEgcmVmZXJlbmNlLiBGaWxl
OiB1bmRlZmluZWQgTGluZTogMQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50
cy93aW5kb3ctb25lcnJvcjQuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3dpbmRvdy1v
bmVycm9yNC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmM1MTg4N2RhZjY4ZjE5MDYwZTcwNjQwMTg0ODllNTlh
ZGI5NzhkZWYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy93aW5k
b3ctb25lcnJvcjQuaHRtbApAQCAtMCwwICsxLDIzIEBACis8c2NyaXB0PgoraWYgKHdpbmRvdy5s
YXlvdXRUZXN0Q29udHJvbGxlcikKKyAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0
KCk7CisKK2Z1bmN0aW9uIGxvZyhtc2cpIHsKKyAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgi
Y29uc29sZSIpLmlubmVySFRNTCArPSBtc2cgKyAiPGJyPiI7Cit9CisKK2Z1bmN0aW9uIHRlc3Qx
KCkKK3sKKyAgICB3aW5kb3cub25lcnJvciA9IGZ1bmN0aW9uIChlcnJvciwgdXJsLCBsaW5lKSB7
CisgICAgICAgIHVybCA9IHVybCA/IHVybC5tYXRjaCggL1teXC9dK1wvPyQvIClbMF0gOiB1cmw7
CisgICAgICAgIGxvZygiRXJyb3IgY2F1Z2h0IHN1Y2Nlc3NmdWxseTogIiArIGVycm9yICsgIlxu
RmlsZTogIiArIHVybCArICJcbkxpbmU6ICIgKyBsaW5lKQorICAgICAgICByZXR1cm4gZmFsc2U7
CisgICAgfTsKKyAgICBldmFsKCIxPTIiKTsKK30KKzwvc2NyaXB0PgorPGJvZHkgb25sb2FkPSJ0
ZXN0MSgpOyI+Cis8cD5Zb3Ugc2hvdWxkIHNlZSBhIGxvZyByZWNvcmQgaWYgd2luZG93Lm9uZXJy
b3IgaXMgd29ya2luZyBwcm9wZXJseSBmb3IgdGhpcyB0ZXN0LjxhIGhyZWY9Imh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04NTE5Ij5CdWcgODUxOTwvYT4uPC9wPgorPGhy
PgorPGRpdiBpZD0nY29uc29sZSc+PC9kaXY+Cis8L2JvZHk+CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9mYXN0L2V2ZW50cy93aW5kb3ctb25lcnJvcjUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVz
dHMvZmFzdC9ldmVudHMvd2luZG93LW9uZXJyb3I1LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4z
ZWM3ZjVlZmMxZDA4NmE2NWMzMjMwNDIyMTNlZjgyMGE3MTk3MTU0Ci0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvd2luZG93LW9uZXJyb3I1LWV4cGVjdGVkLnR4dApA
QCAtMCwwICsxLDQgQEAKK1Rlc3QgdGhhdCB3aW5kb3cub25lcnJvciBpcyBpbnZva2VkIGZvciBz
eW50YXggZXJyb3IgaW4gZXZhbC4gWW91IHNob3VsZCBzZWUgYSBsb2cgcmVjb3JkIGlmIHdpbmRv
dy5vbmVycm9yIGlzIHdvcmtpbmcgcHJvcGVybHkgZm9yIHRoaXMgdGVzdC5CdWcgODUxOS4KKwor
RXJyb3IgY2F1Z2h0IHN1Y2Nlc3NmdWxseTogU3ludGF4RXJyb3I6IFBhcnNlIGVycm9yIEZpbGU6
IHVuZGVmaW5lZCBMaW5lOiAxCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRz
L3dpbmRvdy1vbmVycm9yNS5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvd2luZG93LW9u
ZXJyb3I1Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOTMyZDQzOGE1NmVhODgyZmIxMTdiMjIxMzk1YzRhMGQ4
MTk5NjQ0ZQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3dpbmRv
dy1vbmVycm9yNS5odG1sCkBAIC0wLDAgKzEsMjMgQEAKKzxzY3JpcHQ+CitpZiAod2luZG93Lmxh
eW91dFRlc3RDb250cm9sbGVyKQorICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQo
KTsKKworZnVuY3Rpb24gbG9nKG1zZykgeworICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJj
b25zb2xlIikuaW5uZXJIVE1MICs9IG1zZyArICI8YnI+IjsKK30KKworZnVuY3Rpb24gdGVzdDEo
KQoreworICAgIHdpbmRvdy5vbmVycm9yID0gZnVuY3Rpb24gKGVycm9yLCB1cmwsIGxpbmUpIHsK
KyAgICAgICAgdXJsID0gdXJsID8gdXJsLm1hdGNoKCAvW15cL10rXC8/JC8gKVswXSA6IHVybDsK
KyAgICAgICAgbG9nKCJFcnJvciBjYXVnaHQgc3VjY2Vzc2Z1bGx5OiAiICsgZXJyb3IgKyAiXG5G
aWxlOiAiICsgdXJsICsgIlxuTGluZTogIiArIGxpbmUpCisgICAgICAgIHJldHVybiBmYWxzZTsK
KyAgICB9OworICAgIGV2YWwoImEoIik7Cit9Cis8L3NjcmlwdD4KKzxib2R5IG9ubG9hZD0idGVz
dDEoKTsiPgorPHA+VGVzdCB0aGF0IHdpbmRvdy5vbmVycm9yIGlzIGludm9rZWQgZm9yIHN5bnRh
eCBlcnJvciBpbiBldmFsLiBZb3Ugc2hvdWxkIHNlZSBhIGxvZyByZWNvcmQgaWYgd2luZG93Lm9u
ZXJyb3IgaXMgd29ya2luZyBwcm9wZXJseSBmb3IgdGhpcyB0ZXN0LjxhIGhyZWY9Imh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04NTE5Ij5CdWcgODUxOTwvYT4uPC9wPgor
PGhyPgorPGRpdiBpZD0nY29uc29sZSc+PC9kaXY+Cis8L2JvZHk+CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9mYXN0L2V2ZW50cy93aW5kb3ctb25lcnJvcjYtZXhwZWN0ZWQudHh0IGIvTGF5b3V0
VGVzdHMvZmFzdC9ldmVudHMvd2luZG93LW9uZXJyb3I2LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li5lN2MyN2JiNzc1MjExYjUxMDAxMjc2NTM2OWRjMGUxMzkzNDI5MDkwCi0tLSAvZGV2L251bGwK
KysrIGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvd2luZG93LW9uZXJyb3I2LWV4cGVjdGVkLnR4
dApAQCAtMCwwICsxLDQgQEAKK1Rlc3QgdGhhdCBzeW50YXggZXJyb3Igd2lsbCBiZSByZXBvcnRl
ZCB0byB0aGUgd2luZG93Lm9uZXJyb3IgaGFuZGxlci4gQnVnIDg1MTkuCisKK01haW4gZnJhbWUg
d2luZG93Lm9uZXJyb3I6IFN5bnRheEVycm9yOiBQYXJzZSBlcnJvciBhdCB3aW5kb3ctb25lcnJv
cjYuaHRtbDoyMgorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy93aW5kb3ct
b25lcnJvcjYuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3dpbmRvdy1vbmVycm9yNi5o
dG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjE5Nzg0MzY4OTczMjQxMTM4YTllNjBiN2I0NTZkNTFlMzBiMWFlNDAK
LS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy93aW5kb3ctb25lcnJv
cjYuaHRtbApAQCAtMCwwICsxLDI2IEBACis8aHRtbD4KKzxib2R5PgorPHA+VGVzdCB0aGF0IHN5
bnRheCBlcnJvciB3aWxsIGJlIHJlcG9ydGVkIHRvIHRoZSB3aW5kb3cub25lcnJvciBoYW5kbGVy
LiA8YSBocmVmPSJodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODUxOSI+
QnVnIDg1MTk8L2E+LjwvcD4KKzxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgorPHNjcmlwdD4KK2lm
ICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCisgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIu
ZHVtcEFzVGV4dCgpOworCitmdW5jdGlvbiBsb2cobXNnKSB7CisgICAgZG9jdW1lbnQuZ2V0RWxl
bWVudEJ5SWQoImNvbnNvbGUiKS5pbm5lckhUTUwgKz0gbXNnICsgIjxicj4iOworfQorCit3aW5k
b3cub25lcnJvciA9IGZ1bmN0aW9uKG1zZywgdXJsLCBsaW5lKQoreworICAgIHVybCA9IHVybCA/
IHVybC5tYXRjaCggL1teXC9dK1wvPyQvIClbMF0gOiB1cmw7CisgICAgbG9nKCJNYWluIGZyYW1l
IHdpbmRvdy5vbmVycm9yOiAiICsgbXNnICsgIiBhdCAiICsgdXJsICsgIjoiICsgbGluZSk7Cisg
ICAgcmV0dXJuIGZhbHNlOworfQorPC9zY3JpcHQ+Cis8c2NyaXB0PgorCithKSAvLyBzeW50YXgg
ZXJyb3IKKworPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9mYXN0L2V2ZW50cy93aW5kb3ctb25lcnJvcjctZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVz
dHMvZmFzdC9ldmVudHMvd2luZG93LW9uZXJyb3I3LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41
ZDIyZTdlNzU1NjhhMjQ5NTljYmU2M2Q5ZmFhZTE0ZmRhYmNmMzYwCi0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvd2luZG93LW9uZXJyb3I3LWV4cGVjdGVkLnR4dApA
QCAtMCwwICsxLDYgQEAKK0NPTlNPTEUgTUVTU0FHRTogbGluZSAyMDogRXJyb3I6IE9yaWdpbmFs
IGVycm9yCitDT05TT0xFIE1FU1NBR0U6IGxpbmUgMTc6IEVycm9yOiBOZXN0ZWQgZXJyb3IKK1Rl
c3QgdGhhdCBleGNlcHRpb24gaW4gd2luZG93Lm9uZXJyb3Igd29uJ3QgbGVhZCB0byByZWN1cnNp
dmUgd2luZG93Lm9uZXJyb3IgY2FsbC4gQnVnIDg1MTkuCisKK01haW4gZnJhbWUgd2luZG93Lm9u
ZXJyb3I6IEVycm9yOiBPcmlnaW5hbCBlcnJvciBhdCB3aW5kb3ctb25lcnJvcjcuaHRtbDoyMAor
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy93aW5kb3ctb25lcnJvcjcuaHRt
bCBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3dpbmRvdy1vbmVycm9yNy5odG1sCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLmY2NjU2ODY2Y2MxNmM4M2ZlYTE4NjYzYzA4NzBmMzZlYzA4YmNjYTQKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy93aW5kb3ctb25lcnJvcjcuaHRtbApAQCAt
MCwwICsxLDI0IEBACis8aHRtbD4KKzxib2R5PgorPHA+VGVzdCB0aGF0IGV4Y2VwdGlvbiBpbiB3
aW5kb3cub25lcnJvciB3b24ndCBsZWFkIHRvIHJlY3Vyc2l2ZSB3aW5kb3cub25lcnJvciBjYWxs
LiA8YSBocmVmPSJodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODUxOSI+
QnVnIDg1MTk8L2E+LjwvcD4KKzxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgorPHNjcmlwdD4KK2lm
ICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCisgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIu
ZHVtcEFzVGV4dCgpOworCitmdW5jdGlvbiBsb2cobXNnKSB7CisgICAgZG9jdW1lbnQuZ2V0RWxl
bWVudEJ5SWQoImNvbnNvbGUiKS5pbm5lckhUTUwgKz0gbXNnICsgIjxicj4iOworfQorCit3aW5k
b3cub25lcnJvciA9IGZ1bmN0aW9uKG1zZywgdXJsLCBsaW5lKQoreworICAgIHVybCA9IHVybCA/
IHVybC5tYXRjaCggL1teXC9dK1wvPyQvIClbMF0gOiB1cmw7CisgICAgbG9nKCJNYWluIGZyYW1l
IHdpbmRvdy5vbmVycm9yOiAiICsgbXNnICsgIiBhdCAiICsgdXJsICsgIjoiICsgbGluZSk7Cisg
ICAgdGhyb3cgbmV3IEVycm9yKCJOZXN0ZWQgZXJyb3IiKTsKK30KKwordGhyb3cgbmV3IEVycm9y
KCJPcmlnaW5hbCBlcnJvciIpOworCis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3dpbmRvdy1vbmVycm9yOC1leHBlY3RlZC50
eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy93aW5kb3ctb25lcnJvcjgtZXhwZWN0ZWQudHh0
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLmVmYzYzMDhkODI5NWY1NTM4ZjM4ZDZmMzhmMGI1NDZmMzg4YTZhNDgKLS0t
IC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy93aW5kb3ctb25lcnJvcjgt
ZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNSBAQAorVGVzdCB0aGF0IHdpbmRvdy5vbmVycm9yIGlz
IGNhbGxlZCBvbiB3aW5kb3cgb2JqZWN0LiBCdWcgODUxOS4KKworTWFpbiBmcmFtZSB3aW5kb3cu
b25lcnJvcjogMjAxMCBhdCB1bmRlZmluZWQ6MAorUEFTU0VEOiB0aGlzID09PSB3aW5kb3cKKwpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvd2luZG93LW9uZXJyb3I4Lmh0bWwg
Yi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy93aW5kb3ctb25lcnJvcjguaHRtbApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li5iYWRlNTM4ODZmMmZkNzM5OTU2YjYxMDk0Njc3MzE4YTVhMjFhODg5Ci0tLSAvZGV2L251bGwK
KysrIGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvd2luZG93LW9uZXJyb3I4Lmh0bWwKQEAgLTAs
MCArMSwyOCBAQAorPGh0bWw+Cis8Ym9keT4KKzxwPlRlc3QgdGhhdCB3aW5kb3cub25lcnJvciBp
cyBjYWxsZWQgb24gd2luZG93IG9iamVjdC4gPGEgaHJlZj0iaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTg1MTkiPkJ1ZyA4NTE5PC9hPi48L3A+Cis8ZGl2IGlkPSJjb25z
b2xlIj48L2Rpdj4KKzxzY3JpcHQ+CitpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQor
ICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKKworZnVuY3Rpb24gbG9nKG1z
ZykgeworICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjb25zb2xlIikuaW5uZXJIVE1MICs9
IG1zZyArICI8YnI+IjsKK30KKword2luZG93Lm9uZXJyb3IgPSBmdW5jdGlvbihtc2csIHVybCwg
bGluZSkKK3sKKyAgICB1cmwgPSB1cmwgPyB1cmwubWF0Y2goIC9bXlwvXStcLz8kLyApWzBdIDog
dXJsOworICAgIGxvZygiTWFpbiBmcmFtZSB3aW5kb3cub25lcnJvcjogIiArIG1zZyArICIgYXQg
IiArIHVybCArICI6IiArIGxpbmUpOworICAgIGlmICh0aGlzID09PSB3aW5kb3cpIAorICAgICAg
ICBsb2coIlBBU1NFRDogdGhpcyA9PT0gd2luZG93Iik7CisgICAgZWxzZQorICAgICAgICBsb2co
IkZBSUxFRDogdGhpcyA9PT0gd2luZG93Iik7CisgICAgcmV0dXJuIGZhbHNlOworfQorCit0aHJv
dyAyMDEwOworCis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2Zhc3QvZXZlbnRzL3dpbmRvdy1vbmVycm9yOS1leHBlY3RlZC50eHQgYi9MYXlvdXRU
ZXN0cy9mYXN0L2V2ZW50cy93aW5kb3ctb25lcnJvcjktZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
Ljk0MzE2ZDNmMTA3ZTljYjRmNDk5OTQ4YjE5ZmQ5ZTJlNGFlM2RhZDYKLS0tIC9kZXYvbnVsbAor
KysgYi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy93aW5kb3ctb25lcnJvcjktZXhwZWN0ZWQudHh0
CkBAIC0wLDAgKzEsOCBAQAorVGVzdCB0aGF0IHdoZW4gd2luZG93Lm9uZXJyb3IgaGFuZGxlciBp
cyBjYWxsZWQsIHdpbmRvdy5ldmVudCBpcyB0aGUgY29ycmVzcG9uZGluZyBFcnJvckV2ZW50IG9i
amVjdC4gQnVnIDg1MTkuCisKK01haW4gZnJhbWUgd2luZG93Lm9uZXJyb3I6IEVycm9yOiAyMDEw
IGF0IHdpbmRvdy1vbmVycm9yOS5odG1sOjMxCit3aW5kb3cuZXZlbnQudHlwZSA9IGVycm9yCit3
aW5kb3cuZXZlbnQubWVzc2FnZSA9IEVycm9yOiAyMDEwCit3aW5kb3cuZXZlbnQuZmlsZW5hbWUg
PSB3aW5kb3ctb25lcnJvcjkuaHRtbAord2luZG93LmV2ZW50LmxpbmVubyA9IDMxCisKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3dpbmRvdy1vbmVycm9yOS5odG1sIGIvTGF5
b3V0VGVzdHMvZmFzdC9ldmVudHMvd2luZG93LW9uZXJyb3I5Lmh0bWwKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMTA4
NmFjZTljN2FkNzYyOWU3MTBhMjRiZGJiOWY1YzkzMTQ1Yjk1NAotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3dpbmRvdy1vbmVycm9yOS5odG1sCkBAIC0wLDAgKzEs
MzUgQEAKKzxodG1sPgorPGJvZHk+Cis8cD5UZXN0IHRoYXQgd2hlbiB3aW5kb3cub25lcnJvciBo
YW5kbGVyIGlzIGNhbGxlZCwgd2luZG93LmV2ZW50IGlzIHRoZSBjb3JyZXNwb25kaW5nIEVycm9y
RXZlbnQgb2JqZWN0LiA8YSBocmVmPSJodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9ODUxOSI+QnVnIDg1MTk8L2E+LjwvcD4KKzxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2Pgor
PHNjcmlwdD4KK2lmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpIHsKKyAgICBsYXlvdXRU
ZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7CisgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIud2Fp
dFVudGlsRG9uZSgpOworfQorCitmdW5jdGlvbiBsb2cobXNnKSB7CisgICAgZG9jdW1lbnQuZ2V0
RWxlbWVudEJ5SWQoImNvbnNvbGUiKS5pbm5lckhUTUwgKz0gbXNnICsgIjxicj4iOworfQorCitm
dW5jdGlvbiBsYXN0UGF0aENvbXBvbmVudCh1cmwpIHsKKyAgICByZXR1cm4gdXJsID8gdXJsLm1h
dGNoKCAvW15cL10rXC8/JC8gKVswXSA6IHVybDsKK30KKword2luZG93Lm9uZXJyb3IgPSBmdW5j
dGlvbihtc2csIHVybCwgbGluZSkKK3sKKyAgICBsb2coIk1haW4gZnJhbWUgd2luZG93Lm9uZXJy
b3I6ICIgKyBtc2cgKyAiIGF0ICIgKyBsYXN0UGF0aENvbXBvbmVudCh1cmwpICsgIjoiICsgbGlu
ZSk7CisgICAgbG9nKCJ3aW5kb3cuZXZlbnQudHlwZSA9ICIgKyB3aW5kb3cuZXZlbnQudHlwZSk7
CisgICAgbG9nKCJ3aW5kb3cuZXZlbnQubWVzc2FnZSA9ICIgKyB3aW5kb3cuZXZlbnQubWVzc2Fn
ZSk7CisgICAgbG9nKCJ3aW5kb3cuZXZlbnQuZmlsZW5hbWUgPSAiICsgbGFzdFBhdGhDb21wb25l
bnQod2luZG93LmV2ZW50LmZpbGVuYW1lKSk7CisgICAgbG9nKCJ3aW5kb3cuZXZlbnQubGluZW5v
ID0gIiArIHdpbmRvdy5ldmVudC5saW5lbm8pOworICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENv
bnRyb2xsZXIpCisgICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLm5vdGlmeURvbmUoKTsKKyAg
ICByZXR1cm4gZmFsc2U7Cit9CisKK3Rocm93IG5ldyBFcnJvcigyMDEwKTsKKworPC9zY3JpcHQ+
Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3dvcmtlcnMv
d29ya2VyLXNjcmlwdC1lcnJvci1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L3dvcmtl
cnMvd29ya2VyLXNjcmlwdC1lcnJvci1leHBlY3RlZC50eHQKaW5kZXggMTBhYjA0OTNhYjQ3YTI0
MmNhNmQ3M2ZjZjA0YmFmMzg2ZTRmNDVmNy4uNDA0MTY0MDg5ZTgyNGE5MGU0MGRlOTJjN2UxMjQ5
NTAxYjc4ODcxOSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC93b3JrZXJzL3dvcmtlci1z
Y3JpcHQtZXJyb3ItZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2Zhc3Qvd29ya2Vycy93
b3JrZXItc2NyaXB0LWVycm9yLWV4cGVjdGVkLnR4dApAQCAtNCw4ICs0LDggQEAgVGVzdCBXb3Jr
ZXIgc2NyaXB0IGVycm9yIGhhbmRsaW5nIGZ1bmN0aW9uYWxpdHkuIFNob3VsZCBwcmludCBhIHNl
cmllcyBvZiBQQVNTIG0KIFBBU1M6IG9uZXJyb3IgaW52b2tlZCBmb3IgYSBzY3JpcHQgdGhhdCBo
YXMgaW52YWxpZCBzeW50YXguCiBQQVNTOiBvbmVycm9yIGludm9rZWQgZm9yIGEgc2NyaXB0IHRo
YXQgaGFzIHNjcmlwdCBlcnJvciAnUmVmZXJlbmNlRXJyb3I6IENhbid0IGZpbmQgdmFyaWFibGU6
IGZvbycgYXQgbGluZSAxLgogUEFTUzogZXZlbnQgbGlzdGVuZXIgaW52b2tlZCBmb3IgYSBzY3Jp
cHQgdGhhdCBoYXMgc2NyaXB0IGVycm9yICdSZWZlcmVuY2VFcnJvcjogQ2FuJ3QgZmluZCB2YXJp
YWJsZTogZm9vJyBhdCBsaW5lIDEuCi1QQVNTOiBvbmVycm9yIGludm9rZWQgZm9yIGEgc2NyaXB0
IHRoYXQgaGFzIHNjcmlwdCBlcnJvciAnUmVmZXJlbmNlRXJyb3I6IENhbid0IGZpbmQgdmFyaWFi
bGU6IGJhcicgYXQgbGluZSAzLgogUEFTUzogb25lcnJvciBpbnZva2VkIGZvciBhIHNjcmlwdCB0
aGF0IGhhcyBzY3JpcHQgZXJyb3IgJ1JlZmVyZW5jZUVycm9yOiBDYW4ndCBmaW5kIHZhcmlhYmxl
OiBmb28nIGF0IGxpbmUgNy4KK1BBU1M6IG9uZXJyb3IgaW52b2tlZCBmb3IgYSBzY3JpcHQgdGhh
dCBoYXMgc2NyaXB0IGVycm9yICdSZWZlcmVuY2VFcnJvcjogQ2FuJ3QgZmluZCB2YXJpYWJsZTog
YmFyJyBhdCBsaW5lIDMuCiBQQVNTOiBvbmVycm9yIGludm9rZWQgZm9yIGEgc2NyaXB0IHRoYXQg
aGFzIHNjcmlwdCBlcnJvciAnUmVmZXJlbmNlRXJyb3I6IENhbid0IGZpbmQgdmFyaWFibGU6IGZv
bycgYXQgbGluZSA3LgogUEFTUzogb25lcnJvciBpbnZva2VkIGZvciBhIHNjcmlwdCB0aGF0IGhh
cyBzY3JpcHQgZXJyb3IgJ1JlZmVyZW5jZUVycm9yOiBDYW4ndCBmaW5kIHZhcmlhYmxlOiBmb28n
IGF0IGxpbmUgNy4KIFBBU1M6IG1lc3NhZ2UgcmVjZWl2ZWQgZnJvbSBXb3JrZXJHbG9iYWxTY29w
ZS5vbmVycm9yOiBvbmVycm9yIGludm9rZWQgZm9yIGEgc2NyaXB0IHRoYXQgaGFzIHNjcmlwdCBl
cnJvciAnUmVmZXJlbmNlRXJyb3I6IENhbid0IGZpbmQgdmFyaWFibGU6IGZvbycgYXQgbGluZSA3
LgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3IvcmVzb3VyY2Ut
Y29udGVudC1sZW5ndGgtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNw
ZWN0b3IvcmVzb3VyY2UtY29udGVudC1sZW5ndGgtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjAx
OTAxZDM1NWY2OGM3ZDBlZWRkNDk2ZDY0NWRjMTU0MTg2ZTdmOGYKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9yZXNvdXJjZS1jb250ZW50LWxlbmd0
aC1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxMiBAQAorVGVzdHMgdGhhdCByZXNvdXJjZXMgcGFu
ZWwgc2hvd3MgZm9ybSBkYXRhIHBhcmFtZXRlcnMuCisKKworUmVzb3VyY2UgdHJhY2tpbmcgc3Rh
dGU6IGZhbHNlCitQYWdlIHJlbG9hZGVkLgorUGFnZSByZWxvYWRlZC4KK1NpemUgb2YgaHR0cDov
LzEyNy4wLjAuMTo4MDAwL2luc3BlY3Rvci9yZXNvdXJjZS1jb250ZW50LWxlbmd0aC5odG1sIGlz
IDEwMDkKK1NpemUgb2YgaHR0cDovLzEyNy4wLjAuMTo4MDAwL2luc3BlY3Rvci9pbnNwZWN0b3It
dGVzdDIuanMgaXMgMAorU2l6ZSBvZiBodHRwOi8vMTI3LjAuMC4xOjgwMDAvaW5zcGVjdG9yL3Jl
c291cmNlLXRlc3RzMi5qcyBpcyAzNDAKK1NpemUgb2YgaHR0cDovLzEyNy4wLjAuMTo4MDAwL2lu
c3BlY3Rvci9yZXNvdXJjZXMvaW1hZ2UucG5nIGlzIDAKK0RPTkUuCisKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL3Jlc291cmNlcy9pbWFnZS5odG1sIGIvTGF5
b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3IvcmVzb3VyY2VzL2ltYWdlLmh0bWwKbmV3IGZp
bGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uZmZmZGFhMWRkODRiZThhY2ZkZTk3YzlmMDNjODhjNmViYWVmZTQ5YQotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL3Jlc291cmNlcy9pbWFn
ZS5odG1sCkBAIC0wLDAgKzEsNyBAQAorPGh0bWw+Cis8aGVhZD4KKzwvaGVhZD4KKzxib2R5Pgor
PGltZyBzcmM9ImltYWdlLnBuZyIgYWx0PSJBIHNjcmVlbnNob3QiIC8+Cis8L2JvZHk+Cis8L2h0
bWw+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy9zZWN1cml0eS9yZXNvdXJjZXMvb25lcnJvci1pZnJhbWUuaHRtbCBiL0xheW91
dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvcmVzb3VyY2VzL29uZXJyb3ItaWZyYW1lLmh0bWwK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uMzEyZmQxMmQzYWQ4MTAyYTVmZTFiNTE3MDNlYzNjYjAwMWE3NGZjOAotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvcmVzb3VyY2Vz
L29uZXJyb3ItaWZyYW1lLmh0bWwKQEAgLTAsMCArMSwxMSBAQAorPHNjcmlwdD4KK2Z1bmN0aW9u
IGhhbmRsZUxvYWQoKQoreworICAgIHdpbmRvdy5wYXJlbnQucG9zdE1lc3NhZ2UoIklGcmFtZUxv
YWRlZCIsICIqIik7Cit9CisKK3Rocm93ICJJZnJhbWVFeGNlcHRpb24iOworCis8L3NjcmlwdD4K
Kzxib2R5IG9ubG9hZD0iaGFuZGxlTG9hZCgpIj4KKzwvYm9keT4KZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvd2luZG93LW9uZXJyb3ItZXhjZXB0aW9uLWluLWlm
cmFtZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L3dpbmRv
dy1vbmVycm9yLWV4Y2VwdGlvbi1pbi1pZnJhbWUtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjhi
MTdkOTIyODFjZjVmMTA0MWY4ZDk1N2I0NjM2NTIwMjZhYzE3ZWIKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L3dpbmRvdy1vbmVycm9yLWV4Y2VwdGlv
bi1pbi1pZnJhbWUtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNiBAQAorQ09OU09MRSBNRVNTQUdF
OiBsaW5lIDA6IElmcmFtZUV4Y2VwdGlvbgorVGVzdCB0aGF0IGV4Y2VwdGlvbnMgaW4gaWZyYW1l
IGFyZSBub3QgcmVwb3J0ZWQgdG8gdGhlIG1haW4gZnJhbWUgd2luZG93Lm9uZXJyb3IgaGFuZGxl
ci4gd2luZG93Lm9uZXJyb3Igc2hvdWxkIHByaW50IGV4YWN0bHkgb25lIGxpbmUuCisKK01haW4g
ZnJhbWUgd2luZG93Lm9uZXJyb3I6IE1haW5GcmFtZUV4Y2VwdGlvbiBhdCB1bmRlZmluZWQ6MAor
RE9ORQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L3dpbmRv
dy1vbmVycm9yLWV4Y2VwdGlvbi1pbi1pZnJhbWUuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVz
dHMvc2VjdXJpdHkvd2luZG93LW9uZXJyb3ItZXhjZXB0aW9uLWluLWlmcmFtZS5odG1sCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLjA5MDRlMzk1MmI4YWExOTlhMWMzZDQ1ZWM2MjU4ODM5MzczMmNhMWIKLS0tIC9kZXYv
bnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L3dpbmRvdy1vbmVycm9y
LWV4Y2VwdGlvbi1pbi1pZnJhbWUuaHRtbApAQCAtMCwwICsxLDM5IEBACis8aHRtbD4KKzxib2R5
PgorPHA+VGVzdCB0aGF0IGV4Y2VwdGlvbnMgaW4gaWZyYW1lIGFyZSBub3QgcmVwb3J0ZWQgdG8g
dGhlIG1haW4gZnJhbWUgd2luZG93Lm9uZXJyb3IgaGFuZGxlci4KK3dpbmRvdy5vbmVycm9yIHNo
b3VsZCBwcmludCBleGFjdGx5IG9uZSBsaW5lLjwvcD4KKzxkaXYgaWQ9InJlc3VsdCI+PC9kaXY+
Cis8c2NyaXB0PgoraWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikgeworICAgIGxheW91
dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKKyAgICBsYXlvdXRUZXN0Q29udHJvbGxlci53
YWl0VW50aWxEb25lKCk7Cit9CisKK2Z1bmN0aW9uIGxvZyhtc2cpIHsKKyAgICBkb2N1bWVudC5n
ZXRFbGVtZW50QnlJZCgicmVzdWx0IikuaW5uZXJIVE1MICs9IG1zZyArICI8YnI+IjsKK30KKwor
d2luZG93Lm9uZXJyb3IgPSBmdW5jdGlvbihtc2csIHVybCwgbGluZSkKK3sKKyAgICB1cmwgPSB1
cmwgPyB1cmwubWF0Y2goIC9bXlwvXStcLz8kLyApWzBdIDogdXJsOworICAgIGxvZygiTWFpbiBm
cmFtZSB3aW5kb3cub25lcnJvcjogIiArIG1zZyArICIgYXQgIiArIHVybCArICI6IiArIGxpbmUp
OworICAgIHJldHVybiBmYWxzZTsKK30KKworZnVuY3Rpb24gcmVjZWl2ZU1lc3NhZ2UoZXZlbnQp
IHsKKyAgICBpZiAoZXZlbnQuZGF0YSA9PT0gIklGcmFtZUxvYWRlZCIpIHsKKyAgICAgICAgbG9n
KCJET05FIik7CisgICAgICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCisgICAg
ICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5ub3RpZnlEb25lKCk7CisgICAgfSBlbHNlCisg
ICAgICAgIGxvZygiRkFJTCAiICsgZXZlbnQuZGF0YSk7Cit9CisKK3dpbmRvdy5hZGRFdmVudExp
c3RlbmVyKCJtZXNzYWdlIiwgcmVjZWl2ZU1lc3NhZ2UsIGZhbHNlKTsKKwordGhyb3cgIk1haW5G
cmFtZUV4Y2VwdGlvbiI7CisKKzwvc2NyaXB0PgorPGlmcmFtZSBzcmM9Imh0dHA6Ly9sb2NhbGhv
c3Q6ODAwMC9zZWN1cml0eS9yZXNvdXJjZXMvb25lcnJvci1pZnJhbWUuaHRtbCIvPgorPC9ib2R5
PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0td2lu
L2Zhc3Qvd29ya2Vycy93b3JrZXItc2NyaXB0LWVycm9yLWV4cGVjdGVkLnR4dCBiL0xheW91dFRl
c3RzL3BsYXRmb3JtL2Nocm9taXVtLXdpbi9mYXN0L3dvcmtlcnMvd29ya2VyLXNjcmlwdC1lcnJv
ci1leHBlY3RlZC50eHQKaW5kZXggZmRmNjYwYmQ1MGM2NjdkNDMwZjE2NWE3ZmE4Mzc0MDE2NDFh
MWNhMS4uZWYwYTM5MWU0Nzg3YjMzYmJiYjBkOWY3MDYwMzg0OTNmZTMxODEyOSAxMDA2NDQKLS0t
IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0td2luL2Zhc3Qvd29ya2Vycy93b3JrZXIt
c2NyaXB0LWVycm9yLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJv
bWl1bS13aW4vZmFzdC93b3JrZXJzL3dvcmtlci1zY3JpcHQtZXJyb3ItZXhwZWN0ZWQudHh0CkBA
IC0zLDggKzMsOCBAQCBUZXN0IFdvcmtlciBzY3JpcHQgZXJyb3IgaGFuZGxpbmcgZnVuY3Rpb25h
bGl0eS4gU2hvdWxkIHByaW50IGEgc2VyaWVzIG9mIFBBU1MgbQogUEFTUzogb25lcnJvciBpbnZv
a2VkIGZvciBhIHNjcmlwdCB0aGF0IGhhcyBpbnZhbGlkIHN5bnRheC4KIFBBU1M6IG9uZXJyb3Ig
aW52b2tlZCBmb3IgYSBzY3JpcHQgdGhhdCBoYXMgc2NyaXB0IGVycm9yICdVbmNhdWdodCBSZWZl
cmVuY2VFcnJvcjogZm9vIGlzIG5vdCBkZWZpbmVkJyBhdCBsaW5lIDEuCiBQQVNTOiBldmVudCBs
aXN0ZW5lciBpbnZva2VkIGZvciBhIHNjcmlwdCB0aGF0IGhhcyBzY3JpcHQgZXJyb3IgJ1VuY2F1
Z2h0IFJlZmVyZW5jZUVycm9yOiBmb28gaXMgbm90IGRlZmluZWQnIGF0IGxpbmUgMS4KLVBBU1M6
IG9uZXJyb3IgaW52b2tlZCBmb3IgYSBzY3JpcHQgdGhhdCBoYXMgc2NyaXB0IGVycm9yICdVbmNh
dWdodCBSZWZlcmVuY2VFcnJvcjogYmFyIGlzIG5vdCBkZWZpbmVkJyBhdCBsaW5lIDMuCiBQQVNT
OiBvbmVycm9yIGludm9rZWQgZm9yIGEgc2NyaXB0IHRoYXQgaGFzIHNjcmlwdCBlcnJvciAnVW5j
YXVnaHQgUmVmZXJlbmNlRXJyb3I6IGZvbyBpcyBub3QgZGVmaW5lZCcgYXQgbGluZSA3LgorUEFT
Uzogb25lcnJvciBpbnZva2VkIGZvciBhIHNjcmlwdCB0aGF0IGhhcyBzY3JpcHQgZXJyb3IgJ1Vu
Y2F1Z2h0IFJlZmVyZW5jZUVycm9yOiBiYXIgaXMgbm90IGRlZmluZWQnIGF0IGxpbmUgMy4KIFBB
U1M6IG9uZXJyb3IgaW52b2tlZCBmb3IgYSBzY3JpcHQgdGhhdCBoYXMgc2NyaXB0IGVycm9yICdV
bmNhdWdodCBSZWZlcmVuY2VFcnJvcjogZm9vIGlzIG5vdCBkZWZpbmVkJyBhdCBsaW5lIDcuCiBQ
QVNTOiBvbmVycm9yIGludm9rZWQgZm9yIGEgc2NyaXB0IHRoYXQgaGFzIHNjcmlwdCBlcnJvciAn
VW5jYXVnaHQgUmVmZXJlbmNlRXJyb3I6IGZvbyBpcyBub3QgZGVmaW5lZCcgYXQgbGluZSA3Lgog
UEFTUzogbWVzc2FnZSByZWNlaXZlZCBmcm9tIFdvcmtlckdsb2JhbFNjb3BlLm9uZXJyb3I6IG9u
ZXJyb3IgaW52b2tlZCBmb3IgYSBzY3JpcHQgdGhhdCBoYXMgc2NyaXB0IGVycm9yICdVbmNhdWdo
dCBSZWZlcmVuY2VFcnJvcjogZm9vIGlzIG5vdCBkZWZpbmVkJyBhdCBsaW5lIDcuCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS9mYXN0L2V2ZW50cy93aW5kb3ctb25l
cnJvcjEtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vZmFzdC9l
dmVudHMvd2luZG93LW9uZXJyb3IxLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wYzYwY2QzZDQ5
Y2QxMTQwZGE1NWFlMTcwNmM4NmZjOTNjZjkxZDFkCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0
VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vZmFzdC9ldmVudHMvd2luZG93LW9uZXJyb3IxLWV4cGVj
dGVkLnR4dApAQCAtMCwwICsxLDMgQEAKK1RoaXMgcGFnZSB0ZXN0cyBzZXR0aW5nIG9uZXJyb3Ig
aGFuZGxlcnMgdGhyb3VnaCB0aGUgRE9NLiBJZiBpdCBwYXNzZXMsIHlvdSB3aWxsIHNlZSAiUEFT
UyIgbWVzc2FnZXMgYmVsb3cuQnVnIDg1MTkuDQ0KKw0NCitQQVNTOiBjYXVnaHQgZ2xvYmFsIGVy
cm9yOiBVbmNhdWdodCBSZWZlcmVuY2VFcnJvcjogaGFoYWhhX2dvb2RfbHVja19maW5kaW5nX21l
IGlzIG5vdCBkZWZpbmVkIGF0IHdpbmRvdy1vbmVycm9yMS5odG1sOjI1DQ0KZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL2Zhc3QvZXZlbnRzL3dpbmRvdy1vbmVycm9y
MTAtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vZmFzdC9ldmVu
dHMvd2luZG93LW9uZXJyb3IxMC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOWFkNDNkNGViMTdh
NGRjZjUxNjA1ODQ3YjM2ZjU5MzBiMTVkODM2NQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL3BsYXRmb3JtL2Nocm9taXVtL2Zhc3QvZXZlbnRzL3dpbmRvdy1vbmVycm9yMTAtZXhwZWN0
ZWQudHh0CkBAIC0wLDAgKzEsMTEgQEAKK1Rlc3QgdGhhdCAiZXJyb3IiIGV2ZW50IGxpc3RlbmVy
IGFkZGVkIHdpdGggd2luZG93LmFkZEV2ZW50TGlzdGVuZXIgaXMgaW52b2tlZCBmb3IgdW5jYXVj
aHQgZXhjZXB0aW9ucy4gQnVnIDg1MTkuDQ0KKw0NCitldmVudCBwYXNzZWQgdG8gdGhlIGxpc3Rl
bmVyIGlzIHRoZSBzYW1lIGFzIHdpbmRvdy5ldmVudDogdHJ1ZQ0NCitFdmVudCBkZXRhaWxzOg0N
Cit0eXBlOiBlcnJvcg0NCitwaGFzZTogMg0NCitjdXJyZW50VGFyZ2V0IGlzIHRoZSBnbG9iYWwg
b2JqZWN0OiB0cnVlDQ0KK21lc3NhZ2U6IFVuY2F1Z2h0IEVycm9yOiBNeSBmYXVsdC4NDQorZmls
ZW5hbWU6IHdpbmRvdy1vbmVycm9yMTAuaHRtbA0NCitsaW5lbm86IDI5DQ0KKw0NCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS9mYXN0L2V2ZW50cy93aW5kb3ctb25l
cnJvcjExLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL2Zhc3Qv
ZXZlbnRzL3dpbmRvdy1vbmVycm9yMTEtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjQzMDA0NGJk
NjYwMjY3OWZmNmE2ZGUyNWY0OWZiMDc4MmRlNWY2MzgKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS9mYXN0L2V2ZW50cy93aW5kb3ctb25lcnJvcjExLWV4
cGVjdGVkLnR4dApAQCAtMCwwICsxLDQgQEAKK1Rlc3QgdGhhdCB3aW5kb3cub25lcnJvciBpcyBj
YWxsZWQgb24gd2luZG93IG9iamVjdC4gQnVnIDg1MTkuDQ0KKw0NCitNYWluIGZyYW1lIHdpbmRv
dy5vbmVycm9yOiBVbmNhdWdodCBFcnJvcjogQW4gZXhjZXB0aW9uIGF0IHdpbmRvdy1vbmVycm9y
LmpzOjINDQorDQ0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL2Zh
c3QvZXZlbnRzL3dpbmRvdy1vbmVycm9yMi1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9wbGF0
Zm9ybS9jaHJvbWl1bS9mYXN0L2V2ZW50cy93aW5kb3ctb25lcnJvcjItZXhwZWN0ZWQudHh0Cm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLjhiNmMxNTM5OWVkNDkyNTU5MzkwZDBkOGExYzI5MDAwYjYyMmZhOTEKLS0tIC9k
ZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS9mYXN0L2V2ZW50cy93
aW5kb3ctb25lcnJvcjItZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNiBAQAorVGVzdCB0aGF0IHVu
Y2F1Z2h0IGV4Y2VwdGlvbnMgd2lsbCBiZSByZXBvcnRlZCB0byB0aGUgd2luZG93Lm9uZXJyb3Ig
aGFuZGxlci4gQnVnIDg1MTkuDQ0KKw0NCitNYWluIGZyYW1lIHdpbmRvdy5vbmVycm9yOiBVbmNh
dWdodCBFcnJvcjogSW5saW5lIHNjcmlwdCBleGNlcHRpb24gYXQgd2luZG93LW9uZXJyb3IyLmh0
bWw6MzUNDQorTWFpbiBmcmFtZSB3aW5kb3cub25lcnJvcjogVW5jYXVnaHQgRXhjZXB0aW9uIGlu
IG9ubG9hZCBhdCB3aW5kb3ctb25lcnJvcjIuaHRtbDoyDQ0KK01haW4gZnJhbWUgd2luZG93Lm9u
ZXJyb3I6IFVuY2F1Z2h0IEVycm9yOiBFeGNlcHRpb24gaW4gc2V0VGltZW91dCBhdCB3aW5kb3ct
b25lcnJvcjIuaHRtbDoyOQ0NCisNDQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0v
Y2hyb21pdW0vZmFzdC9ldmVudHMvd2luZG93LW9uZXJyb3IzLWV4cGVjdGVkLnR4dCBiL0xheW91
dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL2Zhc3QvZXZlbnRzL3dpbmRvdy1vbmVycm9yMy1leHBl
Y3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uY2Q1ZTc0OTk2YjE3ZmJjMjI5N2M3MTc0ZmM1M2I5ZDRiZmIw
MTdkMgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL2Zh
c3QvZXZlbnRzL3dpbmRvdy1vbmVycm9yMy1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw0IEBACitZ
b3Ugc2hvdWxkIHNlZSBhIG1lc3NhZ2UgaWYgd2luZG93Lm9uZXJyb3IgaXMgd29ya2luZyBwcm9w
ZXJseSBmb3IgdGhpcyB0ZXN0LkJ1ZyA4NTE5Lg0NCisNDQorRXJyb3IgY2F1Z2h0IHN1Y2Nlc3Nm
dWxseTogVW5jYXVnaHQgUmVmZXJlbmNlRXJyb3I6IHVua25vd25PYmplY3QgaXMgbm90IGRlZmlu
ZWQgRmlsZTogd2luZG93LW9uZXJyb3IzLmh0bWwgTGluZTogMTYNDQorDQ0KZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL2Zhc3QvZXZlbnRzL3dpbmRvdy1vbmVycm9y
NC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS9mYXN0L2V2ZW50
cy93aW5kb3ctb25lcnJvcjQtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjU3ZjM3MWU4NjE5MjE0
MTM4ODQ1YTdhNzk3MGMyZGVhYmQwN2MwYzcKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy9wbGF0Zm9ybS9jaHJvbWl1bS9mYXN0L2V2ZW50cy93aW5kb3ctb25lcnJvcjQtZXhwZWN0ZWQu
dHh0CkBAIC0wLDAgKzEsNCBAQAorWW91IHNob3VsZCBzZWUgYSBsb2cgcmVjb3JkIGlmIHdpbmRv
dy5vbmVycm9yIGlzIHdvcmtpbmcgcHJvcGVybHkgZm9yIHRoaXMgdGVzdC5CdWcgODUxOS4NDQor
DQ0KK0Vycm9yIGNhdWdodCBzdWNjZXNzZnVsbHk6IFVuY2F1Z2h0IFJlZmVyZW5jZUVycm9yOiBJ
bnZhbGlkIGxlZnQtaGFuZCBzaWRlIGluIGFzc2lnbm1lbnQgRmlsZTogd2luZG93LW9uZXJyb3I0
Lmh0bWwgTGluZTogMQ0NCisNDQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hy
b21pdW0vZmFzdC9ldmVudHMvd2luZG93LW9uZXJyb3I1LWV4cGVjdGVkLnR4dCBiL0xheW91dFRl
c3RzL3BsYXRmb3JtL2Nocm9taXVtL2Zhc3QvZXZlbnRzL3dpbmRvdy1vbmVycm9yNS1leHBlY3Rl
ZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uYmU0YjQ5YTcwZTNlZmEwYjc0NGY2MDQxMDY4MGMwOWU5MTkzOGI4
MgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL2Zhc3Qv
ZXZlbnRzL3dpbmRvdy1vbmVycm9yNS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw0IEBACitUZXN0
IHRoYXQgd2luZG93Lm9uZXJyb3IgaXMgaW52b2tlZCBmb3Igc3ludGF4IGVycm9yIGluIGV2YWwu
IFlvdSBzaG91bGQgc2VlIGEgbG9nIHJlY29yZCBpZiB3aW5kb3cub25lcnJvciBpcyB3b3JraW5n
IHByb3Blcmx5IGZvciB0aGlzIHRlc3QuQnVnIDg1MTkuDQ0KKw0NCitFcnJvciBjYXVnaHQgc3Vj
Y2Vzc2Z1bGx5OiBVbmNhdWdodCBTeW50YXhFcnJvcjogVW5leHBlY3RlZCBlbmQgb2YgaW5wdXQg
RmlsZTogd2luZG93LW9uZXJyb3I1Lmh0bWwgTGluZTogMQ0NCisNDQpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vZmFzdC9ldmVudHMvd2luZG93LW9uZXJyb3I2LWV4
cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL2Zhc3QvZXZlbnRzL3dp
bmRvdy1vbmVycm9yNi1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMmM4MDEwM2FiMDZkNTJkMTc5
YjhhYmMzMmRlZTA3NmQ0MTgyYTlhMwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3Bs
YXRmb3JtL2Nocm9taXVtL2Zhc3QvZXZlbnRzL3dpbmRvdy1vbmVycm9yNi1leHBlY3RlZC50eHQK
QEAgLTAsMCArMSw0IEBACitUZXN0IHRoYXQgc3ludGF4IGVycm9yIHdpbGwgYmUgcmVwb3J0ZWQg
dG8gdGhlIHdpbmRvdy5vbmVycm9yIGhhbmRsZXIuIEJ1ZyA4NTE5Lg0NCisNDQorTWFpbiBmcmFt
ZSB3aW5kb3cub25lcnJvcjogVW5jYXVnaHQgU3ludGF4RXJyb3I6IFVuZXhwZWN0ZWQgdG9rZW4g
KSBhdCB3aW5kb3ctb25lcnJvcjYuaHRtbDoyMg0NCisNDQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvcGxhdGZvcm0vY2hyb21pdW0vZmFzdC9ldmVudHMvd2luZG93LW9uZXJyb3I3LWV4cGVjdGVk
LnR4dCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL2Zhc3QvZXZlbnRzL3dpbmRvdy1v
bmVycm9yNy1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uODA0Yzc2ZDVlN2UzMjMyYmQzZGRjOTYy
NTA3ZDE5ZTQyMGRmM2ZhMQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3Jt
L2Nocm9taXVtL2Zhc3QvZXZlbnRzL3dpbmRvdy1vbmVycm9yNy1leHBlY3RlZC50eHQKQEAgLTAs
MCArMSw2IEBACitDT05TT0xFIE1FU1NBR0U6IGxpbmUgMjA6IFVuY2F1Z2h0IEVycm9yOiBPcmln
aW5hbCBlcnJvcg0NCitDT05TT0xFIE1FU1NBR0U6IGxpbmUgMTc6IFVuY2F1Z2h0IEVycm9yOiBO
ZXN0ZWQgZXJyb3INDQorVGVzdCB0aGF0IGV4Y2VwdGlvbiBpbiB3aW5kb3cub25lcnJvciB3b24n
dCBsZWFkIHRvIHJlY3Vyc2l2ZSB3aW5kb3cub25lcnJvciBjYWxsLiBCdWcgODUxOS4NDQorDQ0K
K01haW4gZnJhbWUgd2luZG93Lm9uZXJyb3I6IFVuY2F1Z2h0IEVycm9yOiBPcmlnaW5hbCBlcnJv
ciBhdCB3aW5kb3ctb25lcnJvcjcuaHRtbDoyMA0NCisNDQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvcGxhdGZvcm0vY2hyb21pdW0vZmFzdC9ldmVudHMvd2luZG93LW9uZXJyb3I4LWV4cGVjdGVk
LnR4dCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL2Zhc3QvZXZlbnRzL3dpbmRvdy1v
bmVycm9yOC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYzlhMWQyYWZlZTk4MzE4YjY3MzdiYzQ2
ODZiYmM5NWE3NzFjN2ExOQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3Jt
L2Nocm9taXVtL2Zhc3QvZXZlbnRzL3dpbmRvdy1vbmVycm9yOC1leHBlY3RlZC50eHQKQEAgLTAs
MCArMSw1IEBACitUZXN0IHRoYXQgd2luZG93Lm9uZXJyb3IgaXMgY2FsbGVkIG9uIHdpbmRvdyBv
YmplY3QuIEJ1ZyA4NTE5Lg0NCisNDQorTWFpbiBmcmFtZSB3aW5kb3cub25lcnJvcjogVW5jYXVn
aHQgMjAxMCBhdCB3aW5kb3ctb25lcnJvcjguaHRtbDoyNA0NCitQQVNTRUQ6IHRoaXMgPT09IHdp
bmRvdw0NCisNDQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vZmFz
dC9ldmVudHMvd2luZG93LW9uZXJyb3I5LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3BsYXRm
b3JtL2Nocm9taXVtL2Zhc3QvZXZlbnRzL3dpbmRvdy1vbmVycm9yOS1leHBlY3RlZC50eHQKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uNjEyNzg1Njk3MDJkMTRlMzk4MmE1ODY4NWE1NzI3MjljZjlhODNlYgotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL2Zhc3QvZXZlbnRzL3dp
bmRvdy1vbmVycm9yOS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw4IEBACitUZXN0IHRoYXQgd2hl
biB3aW5kb3cub25lcnJvciBoYW5kbGVyIGlzIGNhbGxlZCwgd2luZG93LmV2ZW50IGlzIHRoZSBj
b3JyZXNwb25kaW5nIEVycm9yRXZlbnQgb2JqZWN0LiBCdWcgODUxOS4NDQorDQ0KK01haW4gZnJh
bWUgd2luZG93Lm9uZXJyb3I6IFVuY2F1Z2h0IEVycm9yOiAyMDEwIGF0IHdpbmRvdy1vbmVycm9y
OS5odG1sOjMxDQ0KK3dpbmRvdy5ldmVudC50eXBlID0gZXJyb3INDQord2luZG93LmV2ZW50Lm1l
c3NhZ2UgPSBVbmNhdWdodCBFcnJvcjogMjAxMA0NCit3aW5kb3cuZXZlbnQuZmlsZW5hbWUgPSB3
aW5kb3ctb25lcnJvcjkuaHRtbA0NCit3aW5kb3cuZXZlbnQubGluZW5vID0gMzENDQorDQ0KZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL2h0dHAvdGVzdHMvc2VjdXJp
dHkvd2luZG93LW9uZXJyb3ItZXhjZXB0aW9uLWluLWlmcmFtZS1leHBlY3RlZC50eHQgYi9MYXlv
dXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS9odHRwL3Rlc3RzL3NlY3VyaXR5L3dpbmRvdy1vbmVy
cm9yLWV4Y2VwdGlvbi1pbi1pZnJhbWUtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjg2NjVhYjI0
ODRkYzRmOGJjY2M4YTU3NTYxZjQ0Y2JkNzhiMDZhNWUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS9odHRwL3Rlc3RzL3NlY3VyaXR5L3dpbmRvdy1vbmVy
cm9yLWV4Y2VwdGlvbi1pbi1pZnJhbWUtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNiBAQAorQ09O
U09MRSBNRVNTQUdFOiBsaW5lIDc6IFVuY2F1Z2h0IElmcmFtZUV4Y2VwdGlvbg0NCitUZXN0IHRo
YXQgZXhjZXB0aW9ucyBpbiBpZnJhbWUgYXJlIG5vdCByZXBvcnRlZCB0byB0aGUgbWFpbiBmcmFt
ZSB3aW5kb3cub25lcnJvciBoYW5kbGVyLiB3aW5kb3cub25lcnJvciBzaG91bGQgcHJpbnQgZXhh
Y3RseSBvbmUgbGluZS4NDQorDQ0KK01haW4gZnJhbWUgd2luZG93Lm9uZXJyb3I6IFVuY2F1Z2h0
IE1haW5GcmFtZUV4Y2VwdGlvbiBhdCB3aW5kb3ctb25lcnJvci1leGNlcHRpb24taW4taWZyYW1l
Lmh0bWw6MzQNDQorRE9ORQ0NCisNDQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0v
Y2hyb21pdW0vdXNlcnNjcmlwdHMvd2luZG93LW9uZXJyb3ItZm9yLWlzb2xhdGVkLXdvcmxkLWV4
cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL3VzZXJzY3JpcHRzL3dp
bmRvdy1vbmVycm9yLWZvci1pc29sYXRlZC13b3JsZC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
OWY5MDkwOWU1M2UwNWY1MjUwZDMwMmU4MWJjMjUyNTY1ZTE0ZGI3YwotLS0gL2Rldi9udWxsCisr
KyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL3VzZXJzY3JpcHRzL3dpbmRvdy1vbmVy
cm9yLWZvci1pc29sYXRlZC13b3JsZC1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw1IEBACitDT05T
T0xFIE1FU1NBR0U6IGxpbmUgMTogVW5jYXVnaHQgRXJyb3I6IEVycm9yIGluIHVzZXIgc2NyaXB0
DQ0KK0luIHRoaXMgdGVzdCB3aW5kb3cub25lcnJvciBzaG91bGQgYmUgaW52b2tlZCBvbmx5IGZv
ciB1bmNhdWdodCBleGNlcHRpb24gaW4gdGhlIG1haW4gd29ybGQuDQ0KKw0NCitNYWluIGZyYW1l
IHdpbmRvdy5vbmVycm9yOiBVbmNhdWdodCBFcnJvcjogRXJyb3IgaW4gbWFpbiB3b3JsZCBhdCB3
aW5kb3ctb25lcnJvci1mb3ItaXNvbGF0ZWQtd29ybGQuaHRtbDoyNg0NCisNDQpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvdXNlcnNjcmlwdHMvd2luZG93LW9uZXJyb3ItZm9yLWlzb2xhdGVkLXdv
cmxkLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3VzZXJzY3JpcHRzL3dpbmRvdy1vbmVycm9y
LWZvci1pc29sYXRlZC13b3JsZC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYjhhZjY5NWJmYTdk
ODRmN2ZhZGUyYzFjMTgxYTVjYzhjNTE5MjdlZAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL3VzZXJzY3JpcHRzL3dpbmRvdy1vbmVycm9yLWZvci1pc29sYXRlZC13b3JsZC1leHBlY3Rl
ZC50eHQKQEAgLTAsMCArMSw1IEBACitDT05TT0xFIE1FU1NBR0U6IGxpbmUgMTogRXJyb3I6IEVy
cm9yIGluIHVzZXIgc2NyaXB0CitJbiB0aGlzIHRlc3Qgd2luZG93Lm9uZXJyb3Igc2hvdWxkIGJl
IGludm9rZWQgb25seSBmb3IgdW5jYXVnaHQgZXhjZXB0aW9uIGluIHRoZSBtYWluIHdvcmxkLgor
CitNYWluIGZyYW1lIHdpbmRvdy5vbmVycm9yOiBFcnJvcjogRXJyb3IgaW4gbWFpbiB3b3JsZCBh
dCB3aW5kb3ctb25lcnJvci1mb3ItaXNvbGF0ZWQtd29ybGQuaHRtbDoyNgorCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy91c2Vyc2NyaXB0cy93aW5kb3ctb25lcnJvci1mb3ItaXNvbGF0ZWQtd29y
bGQuaHRtbCBiL0xheW91dFRlc3RzL3VzZXJzY3JpcHRzL3dpbmRvdy1vbmVycm9yLWZvci1pc29s
YXRlZC13b3JsZC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjg1NjI3MTM0MjhhMGM3NWU3ZTQ3YzA5MWQ3YzVj
YTIyYmRmNDUzNTMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy91c2Vyc2NyaXB0cy93
aW5kb3ctb25lcnJvci1mb3ItaXNvbGF0ZWQtd29ybGQuaHRtbApAQCAtMCwwICsxLDMwIEBACis8
IURPQ1RZUEUgSFRNTD4KKzxodG1sPgorPGhlYWQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxwPkluIHRo
aXMgdGVzdCB3aW5kb3cub25lcnJvciBzaG91bGQgYmUgaW52b2tlZCBvbmx5IGZvciB1bmNhdWdo
dCBleGNlcHRpb24gaW4gdGhlIG1haW4gd29ybGQuCis8L3A+Cis8ZGl2IGlkPSJjb25zb2xlIj48
L2Rpdj4KKzxzY3JpcHQ+CitpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKSB7CisgICAg
bGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOworICAgIGxheW91dFRlc3RDb250cm9s
bGVyLmFkZFVzZXJTY3JpcHQoInRocm93IG5ldyBFcnJvcignRXJyb3IgaW4gdXNlciBzY3JpcHQn
KTsiLCBmYWxzZSwgdHJ1ZSk7Cit9CisKK2Z1bmN0aW9uIGxvZyhtc2cpIHsKKyAgICBkb2N1bWVu
dC5nZXRFbGVtZW50QnlJZCgiY29uc29sZSIpLmlubmVySFRNTCArPSBtc2cgKyAiPGJyPiI7Cit9
CisKK3dpbmRvdy5vbmVycm9yID0gZnVuY3Rpb24obXNnLCB1cmwsIGxpbmUpCit7CisgICAgdXJs
ID0gdXJsID8gdXJsLm1hdGNoKCAvW15cL10rXC8/JC8gKVswXSA6IHVybDsKKyAgICBsb2coIk1h
aW4gZnJhbWUgd2luZG93Lm9uZXJyb3I6ICIgKyBtc2cgKyAiIGF0ICIgKyB1cmwgKyAiOiIgKyBs
aW5lKTsKKyAgICByZXR1cm4gZmFsc2U7Cit9CisKK3Rocm93IG5ldyBFcnJvcigiRXJyb3IgaW4g
bWFpbiB3b3JsZCIpOworCis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBh
L1dlYkNvcmUvQW5kcm9pZC5qc2NiaW5kaW5ncy5tayBiL1dlYkNvcmUvQW5kcm9pZC5qc2NiaW5k
aW5ncy5tawppbmRleCAwODE2MTEzNDk5ZjMzNTA1NDVkYTAxZGNlOWZhOTg5MGQ0NDkwNTk3Li5h
NGIwOTJmN2U1N2E5ZWQ5NzM1NmQyZjcwOWUxYWNhMGQ5OWM5ZGY3IDEwMDY0NAotLS0gYS9XZWJD
b3JlL0FuZHJvaWQuanNjYmluZGluZ3MubWsKKysrIGIvV2ViQ29yZS9BbmRyb2lkLmpzY2JpbmRp
bmdzLm1rCkBAIC05Niw2ICs5Niw3IEBAIExPQ0FMX1NSQ19GSUxFUyArPSBcCiAJYmluZGluZ3Mv
anMvSlNEZXZpY2VPcmllbnRhdGlvbkV2ZW50Q3VzdG9tLmNwcCBcCiAJYmluZGluZ3MvanMvSlNE
b2N1bWVudEN1c3RvbS5jcHAgXAogCWJpbmRpbmdzL2pzL0pTRWxlbWVudEN1c3RvbS5jcHAgXAor
CWJpbmRpbmdzL2pzL0pTRXJyb3JIYW5kbGVyLmNwcCBcCiAJYmluZGluZ3MvanMvSlNFdmVudEN1
c3RvbS5jcHAgXAogCWJpbmRpbmdzL2pzL0pTRXZlbnRMaXN0ZW5lci5jcHAgXAogCWJpbmRpbmdz
L2pzL0pTRXZlbnRUYXJnZXQuY3BwIFwKQEAgLTE1Niw3ICsxNTcsNiBAQCBMT0NBTF9TUkNfRklM
RVMgKz0gXAogCWJpbmRpbmdzL2pzL0pTV2ViS2l0UG9pbnRDdXN0b20uY3BwIFwKIAliaW5kaW5n
cy9qcy9KU1dvcmtlckNvbnRleHRCYXNlLmNwcCBcCiAJYmluZGluZ3MvanMvSlNXb3JrZXJDb250
ZXh0Q3VzdG9tLmNwcCBcCi0JYmluZGluZ3MvanMvSlNXb3JrZXJDb250ZXh0RXJyb3JIYW5kbGVy
LmNwcCBcCiAJYmluZGluZ3MvanMvSlNXb3JrZXJDdXN0b20uY3BwIFwKIAliaW5kaW5ncy9qcy9K
U1hNTEh0dHBSZXF1ZXN0Q3VzdG9tLmNwcCBcCiAJYmluZGluZ3MvanMvSlNYTUxIdHRwUmVxdWVz
dFVwbG9hZEN1c3RvbS5jcHAgXApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dCBi
L1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKaW5kZXggMjE3MjUyZWQ5MzdmODQ4YjY4NjdlNTgxMmI5
OGFlZDgwYjcwOWMyMS4uNzYzMDIxNjEzYzZiMWM0NDM4NjA3MjYwYzE0ZGUxMGY0NmFkYzhlYSAx
MDA2NDQKLS0tIGEvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAorKysgYi9XZWJDb3JlL0NNYWtlTGlz
dHMudHh0CkBAIC02MTIsNiArNjEyLDcgQEAgU0VUKFdlYkNvcmVfU09VUkNFUwogICAgIGJpbmRp
bmdzL2pzL0pTRE9NV2luZG93U2hlbGwuY3BwCiAgICAgYmluZGluZ3MvanMvSlNET01XcmFwcGVy
LmNwcAogICAgIGJpbmRpbmdzL2pzL0pTRWxlbWVudEN1c3RvbS5jcHAKKyAgICBiaW5kaW5ncy9q
cy9KU0Vycm9ySGFuZGxlci5jcHAKICAgICBiaW5kaW5ncy9qcy9KU0V2ZW50Q3VzdG9tLmNwcAog
ICAgIGJpbmRpbmdzL2pzL0pTRXZlbnRMaXN0ZW5lci5jcHAKICAgICBiaW5kaW5ncy9qcy9KU0V2
ZW50U291cmNlQ3VzdG9tLmNwcApAQCAtNjc1LDcgKzY3Niw2IEBAIFNFVChXZWJDb3JlX1NPVVJD
RVMKICAgICBiaW5kaW5ncy9qcy9KU1dlYlNvY2tldEN1c3RvbS5jcHAKICAgICBiaW5kaW5ncy9q
cy9KU1dvcmtlckNvbnRleHRCYXNlLmNwcAogICAgIGJpbmRpbmdzL2pzL0pTV29ya2VyQ29udGV4
dEN1c3RvbS5jcHAKLSAgICBiaW5kaW5ncy9qcy9KU1dvcmtlckNvbnRleHRFcnJvckhhbmRsZXIu
Y3BwCiAgICAgYmluZGluZ3MvanMvSlNXb3JrZXJDdXN0b20uY3BwCiAgICAgYmluZGluZ3MvanMv
SlNYTUxIdHRwUmVxdWVzdEN1c3RvbS5jcHAKICAgICBiaW5kaW5ncy9qcy9KU1hNTEh0dHBSZXF1
ZXN0VXBsb2FkQ3VzdG9tLmNwcApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9DaGFuZ2VMb2cgYi9XZWJD
b3JlL0NoYW5nZUxvZwppbmRleCBkOTYwMmRhMjAzMDBjOTI4ZTYzODdmM2U3NTNkZTU4YzU3ZjI2
ZTYzLi4wNWM4YjkwZjExYmRlODQ0OGZjYjQ1MzYwMDFhMDYyZDQ2Y2E0OTUxIDEwMDY0NAotLS0g
YS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEw
MCBAQAorMjAxMC0xMC0wMSAgWXVyeSBTZW1pa2hhdHNreSAgPHl1cnlzQGNocm9taXVtLm9yZz4K
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBXZWJDb3Jl
IGRvZXNuJ3QgZmlyZSB3aW5kb3cub25lcnJvciBldmVudCB3aGVuIHVuY2F1Z2h0IEphdmFTY3Jp
cHQgZXhjZXB0aW9ucyBhcmUgdGhyb3duCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD04NTE5CisKKyAgICAgICAgVW5jYXVnaHQgZXhjZXB0aW9ucyBhcmUg
cHJvcGFnYXRlZCB0byB3aW5kb3cub25lcnJvciBoYW5kZXIgaWYgb25lIGlzIHByZXNlbnQuCisg
ICAgICAgIFRoZSBoYW5kbGVyIGlzIGV4cGVjdGVkIHRvIGJlIGEgZnVuY3Rpb24gYWNjZXB0aW5n
IHRocmVlIGFyZ3VtZW50czogZXJyb3IgbWVzc2FnZSwKKyAgICAgICAgcmVzb3VyY2UgdXJsIGFu
ZCBsaW5lIG51bWJlciB3aGVyZSB0aGUgZXhjZXB0aW9uIG9jY3VyZWQuCisKKyAgICAgICAgVGVz
dHM6IGZhc3QvZXZlbnRzL3dpbmRvdy1vbmVycm9yMS5odG1sCisgICAgICAgICAgICAgICBmYXN0
L2V2ZW50cy93aW5kb3ctb25lcnJvcjEwLmh0bWwKKyAgICAgICAgICAgICAgIGZhc3QvZXZlbnRz
L3dpbmRvdy1vbmVycm9yMTEuaHRtbAorICAgICAgICAgICAgICAgZmFzdC9ldmVudHMvd2luZG93
LW9uZXJyb3IyLmh0bWwKKyAgICAgICAgICAgICAgIGZhc3QvZXZlbnRzL3dpbmRvdy1vbmVycm9y
My5odG1sCisgICAgICAgICAgICAgICBmYXN0L2V2ZW50cy93aW5kb3ctb25lcnJvcjQuaHRtbAor
ICAgICAgICAgICAgICAgZmFzdC9ldmVudHMvd2luZG93LW9uZXJyb3I1Lmh0bWwKKyAgICAgICAg
ICAgICAgIGZhc3QvZXZlbnRzL3dpbmRvdy1vbmVycm9yNi5odG1sCisgICAgICAgICAgICAgICBm
YXN0L2V2ZW50cy93aW5kb3ctb25lcnJvcjcuaHRtbAorICAgICAgICAgICAgICAgZmFzdC9ldmVu
dHMvd2luZG93LW9uZXJyb3I4Lmh0bWwKKyAgICAgICAgICAgICAgIGZhc3QvZXZlbnRzL3dpbmRv
dy1vbmVycm9yOS5odG1sCisgICAgICAgICAgICAgICBodHRwL3Rlc3RzL3NlY3VyaXR5L3dpbmRv
dy1vbmVycm9yLWV4Y2VwdGlvbi1pbi1pZnJhbWUuaHRtbAorICAgICAgICAgICAgICAgdXNlcnNj
cmlwdHMvd2luZG93LW9uZXJyb3ItZm9yLWlzb2xhdGVkLXdvcmxkLmh0bWwKKworICAgICAgICAq
IEFuZHJvaWQuanNjYmluZGluZ3MubWs6CisgICAgICAgICogQ01ha2VMaXN0cy50eHQ6CisgICAg
ICAgICogR05VbWFrZWZpbGUuYW06CisgICAgICAgICogV2ViQ29yZS5neXBpOgorICAgICAgICAq
IFdlYkNvcmUub3JkZXI6CisgICAgICAgICogV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2o6
CisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAq
IGJpbmRpbmdzL2pzL0pTQmluZGluZ3NBbGxJbk9uZS5jcHA6CisgICAgICAgICogYmluZGluZ3Mv
anMvSlNET01CaW5kaW5nLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OnJlcG9ydEV4Y2VwdGlvbik6
CisgICAgICAgICogYmluZGluZ3MvanMvSlNFcnJvckhhbmRsZXIuY3BwOiBBZGRlZC4KKyAgICAg
ICAgKFdlYkNvcmU6OkpTRXJyb3JIYW5kbGVyOjpKU0Vycm9ySGFuZGxlcik6CisgICAgICAgIChX
ZWJDb3JlOjpKU0Vycm9ySGFuZGxlcjo6fkpTRXJyb3JIYW5kbGVyKToKKyAgICAgICAgKFdlYkNv
cmU6OkpTRXJyb3JIYW5kbGVyOjpoYW5kbGVFdmVudCk6CisgICAgICAgICogYmluZGluZ3MvanMv
SlNFcnJvckhhbmRsZXIuaDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpKU0Vycm9ySGFuZGxl
cjo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OmNyZWF0ZUpTRXJyb3JIYW5kbGVyKToKKyAg
ICAgICAgKiBiaW5kaW5ncy9qcy9KU1dvcmtlckNvbnRleHRFcnJvckhhbmRsZXIuY3BwOiBSZW1v
dmVkLgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pTV29ya2VyQ29udGV4dEVycm9ySGFuZGxlci5o
OiBSZW1vdmVkLiBUaGlzIGNsYXNzIHdhcyByZWZhY3RvcmVkIGludG8gbW9yZSBnZW5lcmFsCisg
ICAgICAgIEpTRXJyb3JIYW5kbGVyIHRoYXQgcmVwcmVzZW50cyBnbG9iYWwgb25lcnJvIGhhbmRl
ciBvbiBXb3JrZXIgQ29udGV4dCBvciBvbiBET01XaW5kb3cuCisgICAgICAgICogYmluZGluZ3Mv
c2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG06CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy9D
b2RlR2VuZXJhdG9yVjgucG06CisgICAgICAgICogYmluZGluZ3MvdjgvRE9NV3JhcHBlcldvcmxk
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmVudGVyZWRDb250ZXh0V29ybGQpOgorICAgICAgICAo
V2ViQ29yZTo6Y29udGV4dFdvcmxkKToKKyAgICAgICAgKiBiaW5kaW5ncy92OC9ET01XcmFwcGVy
V29ybGQuaDogYWRkZWQgZnVuY3Rpb25zIHRoYXQgYWxsb3cgdG8gZ2V0IERPTVdyYXBwZXJXb3Js
ZCBmcm9tIG9iamVjdHMKKyAgICAgICAgdGhhdCBhcmUgYXZhaWxhYmxlIGluIHRoZSBldmVudCBo
YW5kbGVycy4gV2UgbmVlZCB0byBrbm93IHRoZWlyIHdvcmxkIHdoZW4gRXJyb3JFdmVudAorICAg
ICAgICBpcyBiZWluZyBkaXNwYXRjaGVkIHRvIGNoZWNrIHRoYXQgdGhlIGV2ZW50IGlzIGZyb20g
dGhlIHNhbWUgd29ybGQgYXMgdGhlIGhhbmRsZXIuCisgICAgICAgICogYmluZGluZ3MvdjgvVjhD
b25zb2xlTWVzc2FnZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpWOENvbnNvbGVNZXNzYWdlOjpk
aXNwYXRjaE5vdyk6CisgICAgICAgIChXZWJDb3JlOjpWOENvbnNvbGVNZXNzYWdlOjpoYW5kbGVy
KTogdGhlIG1ldGhvZCB3YXMgY2hhbmdlZCB0byB1c2UgZ2VuZXJpYyBXZWJDb3JlIGV4Y2VwdGlv
bgorICAgICAgICByZXBvcnRpbmcgbWVjaGFuaXNtIHdoaWNoIGlzIGFsc28gdXNlZCBieSBKU0Mg
YmluZGluZ3MuCisgICAgICAgICogYmluZGluZ3MvdjgvVjhDb25zb2xlTWVzc2FnZS5oOgorICAg
ICAgICAoV2ViQ29yZTo6VjhDb25zb2xlTWVzc2FnZTo6U2NvcGU6OlNjb3BlKToKKyAgICAgICAg
KFdlYkNvcmU6OlY4Q29uc29sZU1lc3NhZ2U6OlNjb3BlOjp+U2NvcGUpOgorICAgICAgICAqIGJp
bmRpbmdzL3Y4L1Y4V2luZG93RXJyb3JIYW5kbGVyLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJD
b3JlOjpWOFdpbmRvd0Vycm9ySGFuZGxlcjo6VjhXaW5kb3dFcnJvckhhbmRsZXIpOgorICAgICAg
ICAoV2ViQ29yZTo6VjhXaW5kb3dFcnJvckhhbmRsZXI6OmNhbGxMaXN0ZW5lckZ1bmN0aW9uKToK
KyAgICAgICAgKiBiaW5kaW5ncy92OC9WOFdpbmRvd0Vycm9ySGFuZGxlci5oOiBBZGRlZC4KKyAg
ICAgICAgKFdlYkNvcmU6OlY4V2luZG93RXJyb3JIYW5kbGVyOjpjcmVhdGUpOgorICAgICAgICAq
IGJpbmRpbmdzL3Y4L1dvcmtlckNvbnRleHRFeGVjdXRpb25Qcm94eS5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjp2OE1lc3NhZ2VIYW5kbGVyKToKKyAgICAgICAgKiBiaW5kaW5ncy92OC9Xb3JrZXJT
Y3JpcHRDb250cm9sbGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OldvcmtlclNjcmlwdENvbnRy
b2xsZXI6OmV2YWx1YXRlKToKKyAgICAgICAgKiBkb20vRG9jdW1lbnQuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6RG9jdW1lbnQ6OmVycm9yRXZlbnRUYXJnZXQpOgorICAgICAgICAoV2ViQ29yZTo6
RG9jdW1lbnQ6OmxvZ0V4Y2VwdGlvblRvQ29uc29sZSk6CisgICAgICAgICogZG9tL0RvY3VtZW50
Lmg6CisgICAgICAgICogZG9tL0Vycm9yRXZlbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RXJy
b3JFdmVudDo6RXJyb3JFdmVudCk6CisgICAgICAgICogZG9tL0Vycm9yRXZlbnQuaDogRXJyb3JF
dmVudCBpcyBleHRlbmRlZCB3aXRoIGFuIGFjY2Vzc29yIGZvciBET01XcmFwcGVyV29ybGQgaW4K
KyAgICAgICAgd2hpY2ggdGhlIGV4Y2VwdGlvbiBvY2N1cnJlZC4gVGhpcyBhbGxvd3MgdG8gbm90
IHBhc3MgdGhlIGV2ZW50IG9iamVjdCB0byBsaXN0ZW5lcnMKKyAgICAgICAgaW4gb3RoZXIgd29y
bGRzLgorICAgICAgICAoV2ViQ29yZTo6RXJyb3JFdmVudDo6Y3JlYXRlKToKKyAgICAgICAgKFdl
YkNvcmU6OkVycm9yRXZlbnQ6OndyYXBwZXJXb3JsZCk6CisgICAgICAgICogZG9tL1NjcmlwdEV4
ZWN1dGlvbkNvbnRleHQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2NyaXB0RXhlY3V0aW9uQ29u
dGV4dDo6UGVuZGluZ0V4Y2VwdGlvbjo6UGVuZGluZ0V4Y2VwdGlvbik6CisgICAgICAgIChXZWJD
b3JlOjpTY3JpcHRFeGVjdXRpb25Db250ZXh0OjpTY3JpcHRFeGVjdXRpb25Db250ZXh0KToKKyAg
ICAgICAgKFdlYkNvcmU6OlNjcmlwdEV4ZWN1dGlvbkNvbnRleHQ6OnJlcG9ydEV4Y2VwdGlvbik6
IHRoaXMgbWV0aG9kIGlzIG5vdCB2aXJ0dWFsIGFueW1vcmUgdG8KKyAgICAgICAgZW5zdXJlIHRo
YXQgZXJyb3IgZXZlbnQgZGlzcGF0Y2hpbmcgYWxnb3JpdGhtIGlzIHRoZSBzYW1lIGluIFdvcmtl
ckNvbnRleHQgYW5kIGluIERvY3VtZW50LgorICAgICAgICAoV2ViQ29yZTo6U2NyaXB0RXhlY3V0
aW9uQ29udGV4dDo6ZGlzcGF0Y2hFcnJvckV2ZW50KToKKyAgICAgICAgKiBkb20vU2NyaXB0RXhl
Y3V0aW9uQ29udGV4dC5oOgorICAgICAgICAqIHdvcmtlcnMvRGVmYXVsdFNoYXJlZFdvcmtlclJl
cG9zaXRvcnkuY3BwOgorICAgICAgICAoV2ViQ29yZTo6cG9zdEV4Y2VwdGlvblRhc2spOgorICAg
ICAgICAqIHdvcmtlcnMvV29ya2VyQ29udGV4dC5jcHA6IAorICAgICAgICAoV2ViQ29yZTo6V29y
a2VyQ29udGV4dDo6V29ya2VyQ29udGV4dCk6CisgICAgICAgIChXZWJDb3JlOjpXb3JrZXJDb250
ZXh0OjplcnJvckV2ZW50VGFyZ2V0KToKKyAgICAgICAgKFdlYkNvcmU6OldvcmtlckNvbnRleHQ6
OmxvZ0V4Y2VwdGlvblRvQ29uc29sZSk6CisgICAgICAgICogd29ya2Vycy9Xb3JrZXJDb250ZXh0
Lmg6CisgICAgICAgICogd29ya2Vycy9Xb3JrZXJNZXNzYWdpbmdQcm94eS5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpXb3JrZXJFeGNlcHRpb25UYXNrOjpwZXJmb3JtVGFzayk6CisKIDIwMTAtMTAt
MDMgIEtlbnQgVGFtdXJhICA8dGtlbnRAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFVucmV2aWV3
ZWQsIGJ1aWxkIGZpeCBmb3IgcjY4OTk2LgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9HTlVtYWtlZmls
ZS5hbSBiL1dlYkNvcmUvR05VbWFrZWZpbGUuYW0KaW5kZXggNzg5YTkwY2Q4ZjQ4MmQyZTRmZDRk
ODU4ZDY4ZGRhMjM2YjJhMjIwOS4uZDE2MzFjMjc4ZTBhMmEyM2U5MGRjODg1M2EyZjQ2Mzc4ZDQ2
NjUyOCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9HTlVtYWtlZmlsZS5hbQorKysgYi9XZWJDb3JlL0dO
VW1ha2VmaWxlLmFtCkBAIC03MTEsNiArNzExLDggQEAgd2ViY29yZV9zb3VyY2VzICs9IFwKIAlX
ZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NV3JhcHBlci5oIFwKIAlXZWJDb3JlL2JpbmRpbmdzL2pz
L0pTRWxlbWVudEN1c3RvbS5jcHAgXAogCVdlYkNvcmUvYmluZGluZ3MvanMvSlNFbnRyeUN1c3Rv
bS5jcHAgXAorCVdlYkNvcmUvYmluZGluZ3MvanMvSlNFcnJvckhhbmRsZXIuY3BwIFwKKwlXZWJD
b3JlL2JpbmRpbmdzL2pzL0pTRXJyb3JIYW5kbGVyLmggXAogCVdlYkNvcmUvYmluZGluZ3MvanMv
SlNFdmVudEN1c3RvbS5jcHAgXAogCVdlYkNvcmUvYmluZGluZ3MvanMvSlNFdmVudExpc3RlbmVy
LmNwcCBcCiAJV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0V2ZW50TGlzdGVuZXIuaCBcCkBAIC03OTcs
OCArNzk5LDYgQEAgd2ViY29yZV9zb3VyY2VzICs9IFwKIAlXZWJDb3JlL2JpbmRpbmdzL2pzL0pT
V29ya2VyQ29udGV4dEJhc2UuY3BwIFwKIAlXZWJDb3JlL2JpbmRpbmdzL2pzL0pTV29ya2VyQ29u
dGV4dEJhc2UuaCBcCiAJV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1dvcmtlckNvbnRleHRDdXN0b20u
Y3BwIFwKLQlXZWJDb3JlL2JpbmRpbmdzL2pzL0pTV29ya2VyQ29udGV4dEVycm9ySGFuZGxlci5j
cHAgXAotCVdlYkNvcmUvYmluZGluZ3MvanMvSlNXb3JrZXJDb250ZXh0RXJyb3JIYW5kbGVyLmgg
XAogCVdlYkNvcmUvYmluZGluZ3MvanMvSlNXb3JrZXJDdXN0b20uY3BwIFwKIAlXZWJDb3JlL2Jp
bmRpbmdzL2pzL0pTWE1MSHR0cFJlcXVlc3RDdXN0b20uY3BwIFwKIAlXZWJDb3JlL2JpbmRpbmdz
L2pzL0pTWE1MSHR0cFJlcXVlc3RVcGxvYWRDdXN0b20uY3BwIFwKZGlmZiAtLWdpdCBhL1dlYkNv
cmUvV2ViQ29yZS5neXBpIGIvV2ViQ29yZS9XZWJDb3JlLmd5cGkKaW5kZXggYTE3ZjYxY2FlZDhj
MmM5ZjljMTc0MjVhZmVlNmU5YzY3ZDg1ZWNjZC4uNzMxZGJkZjUyYTQ1ZDFiOTMzZGJjNWQ0NTI1
MTc4N2U2N2QzMTM3MCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9XZWJDb3JlLmd5cGkKKysrIGIvV2Vi
Q29yZS9XZWJDb3JlLmd5cGkKQEAgLTU4NSw2ICs1ODUsOCBAQAogICAgICAgICAgICAgJ2JpbmRp
bmdzL2pzL0pTRE9NV3JhcHBlci5oJywKICAgICAgICAgICAgICdiaW5kaW5ncy9qcy9KU0VsZW1l
bnRDdXN0b20uY3BwJywKICAgICAgICAgICAgICdiaW5kaW5ncy9qcy9KU0VudHJ5Q3VzdG9tLmNw
cCcsCisgICAgICAgICAgICAnYmluZGluZ3MvanMvSlNFcnJvckhhbmRsZXIuY3BwJywKKyAgICAg
ICAgICAgICdiaW5kaW5ncy9qcy9KU0Vycm9ySGFuZGxlci5oJywKICAgICAgICAgICAgICdiaW5k
aW5ncy9qcy9KU0V2ZW50Q3VzdG9tLmNwcCcsCiAgICAgICAgICAgICAnYmluZGluZ3MvanMvSlNF
dmVudExpc3RlbmVyLmNwcCcsCiAgICAgICAgICAgICAnYmluZGluZ3MvanMvSlNFdmVudExpc3Rl
bmVyLmgnLApAQCAtNjc3LDggKzY3OSw2IEBACiAgICAgICAgICAgICAnYmluZGluZ3MvanMvSlNX
b3JrZXJDb250ZXh0QmFzZS5jcHAnLAogICAgICAgICAgICAgJ2JpbmRpbmdzL2pzL0pTV29ya2Vy
Q29udGV4dEJhc2UuaCcsCiAgICAgICAgICAgICAnYmluZGluZ3MvanMvSlNXb3JrZXJDb250ZXh0
Q3VzdG9tLmNwcCcsCi0gICAgICAgICAgICAnYmluZGluZ3MvanMvSlNXb3JrZXJDb250ZXh0RXJy
b3JIYW5kbGVyLmNwcCcsCi0gICAgICAgICAgICAnYmluZGluZ3MvanMvSlNXb3JrZXJDb250ZXh0
RXJyb3JIYW5kbGVyLmgnLAogICAgICAgICAgICAgJ2JpbmRpbmdzL2pzL0pTV29ya2VyQ3VzdG9t
LmNwcCcsCiAgICAgICAgICAgICAnYmluZGluZ3MvanMvSlNYTUxIdHRwUmVxdWVzdEN1c3RvbS5j
cHAnLAogICAgICAgICAgICAgJ2JpbmRpbmdzL2pzL0pTWE1MSHR0cFJlcXVlc3RVcGxvYWRDdXN0
b20uY3BwJywKQEAgLTk0Miw2ICs5NDIsOCBAQAogICAgICAgICAgICAgJ2JpbmRpbmdzL3Y4L1Y4
U1ZHUE9EVHlwZVdyYXBwZXIuaCcsCiAgICAgICAgICAgICAnYmluZGluZ3MvdjgvVjhVdGlsaXRp
ZXMuY3BwJywKICAgICAgICAgICAgICdiaW5kaW5ncy92OC9WOFV0aWxpdGllcy5oJywKKyAgICAg
ICAgICAgICdiaW5kaW5ncy92OC9WOFdpbmRvd0Vycm9ySGFuZGxlci5jcHAnLAorICAgICAgICAg
ICAgJ2JpbmRpbmdzL3Y4L1Y4V2luZG93RXJyb3JIYW5kbGVyLmgnLAogICAgICAgICAgICAgJ2Jp
bmRpbmdzL3Y4L1Y4V29ya2VyQ29udGV4dEVycm9ySGFuZGxlci5jcHAnLAogICAgICAgICAgICAg
J2JpbmRpbmdzL3Y4L1Y4V29ya2VyQ29udGV4dEVycm9ySGFuZGxlci5oJywKICAgICAgICAgICAg
ICdiaW5kaW5ncy92OC9WOFdvcmtlckNvbnRleHRFdmVudExpc3RlbmVyLmNwcCcsCmRpZmYgLS1n
aXQgYS9XZWJDb3JlL1dlYkNvcmUub3JkZXIgYi9XZWJDb3JlL1dlYkNvcmUub3JkZXIKaW5kZXgg
NDEyNDc3NzNiYTM3ZWZkNTA1ZWI3ZjFlYzU4NDc4ZWM1NjJmYzA5Ny4uZmIxOGQ2NDgyNzIzMWVi
Y2JlOWEwZmIxZWU0NDYxZjYzZmE1MDcyYyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9XZWJDb3JlLm9y
ZGVyCisrKyBiL1dlYkNvcmUvV2ViQ29yZS5vcmRlcgpAQCAtMjUyMTcsMTMgKzI1MjE3LDkgQEAg
X19aTjdXZWJDb3JlMTVKU1dvcmtlckNvbnRleHQxMHNldFRpbWVvdXRFUE4zSlNDOUV4ZWNTdGF0
ZUVSS05TMV83QXJnTGlzdEUKIF9fWk43V2ViQ29yZTEzV29ya2VyQ29udGV4dDEwc2V0VGltZW91
dEVQTlNfMTVTY2hlZHVsZWRBY3Rpb25FaQogX19aTjdXZWJDb3JlMTdXb3JrZXJTaGFyZWRUaW1l
cjExc2V0RmlyZVRpbWVFZAogX19aTjdXZWJDb3JlMTVTY2hlZHVsZWRBY3Rpb243ZXhlY3V0ZUVQ
TlNfMTNXb3JrZXJDb250ZXh0RQotX19aTjdXZWJDb3JlMjdKU1dvcmtlckNvbnRleHRFcnJvckhh
bmRsZXJDMUVQTjNKU0M4SlNPYmplY3RFUzNfYlBOU18xNURPTVdyYXBwZXJXb3JsZEUKLV9fWk43
V2ViQ29yZTI3SlNXb3JrZXJDb250ZXh0RXJyb3JIYW5kbGVyQzJFUE4zSlNDOEpTT2JqZWN0RVMz
X2JQTlNfMTVET01XcmFwcGVyV29ybGRFCiBfX1pON1dlYkNvcmUxMEVycm9yRXZlbnRDMUVSS05T
XzZTdHJpbmdFUzNfagogX19aTjdXZWJDb3JlMTBFcnJvckV2ZW50QzJFUktOU182U3RyaW5nRVMz
X2oKLV9fWk43V2ViQ29yZTI3SlNXb3JrZXJDb250ZXh0RXJyb3JIYW5kbGVyMTFoYW5kbGVFdmVu
dEVQTlNfMjJTY3JpcHRFeGVjdXRpb25Db250ZXh0RVBOU181RXZlbnRFCiBfX1pON1dlYkNvcmUx
MEVycm9yRXZlbnREMEV2Ci1fX1pON1dlYkNvcmUyN0pTV29ya2VyQ29udGV4dEVycm9ySGFuZGxl
ckQwRXYKIF9fWk43V2ViQ29yZTE3anNXb3JrZXJPbm1lc3NhZ2VFUE4zSlNDOUV4ZWNTdGF0ZUVO
UzBfN0pTVmFsdWVFUktOUzBfMTBJZGVudGlmaWVyRQogX19aTjdXZWJDb3JlMzRqc1dvcmtlclBy
b3RvdHlwZUZ1bmN0aW9uVGVybWluYXRlRVBOM0pTQzlFeGVjU3RhdGVFUE5TMF84SlNPYmplY3RF
TlMwXzdKU1ZhbHVlRVJLTlMwXzdBcmdMaXN0RQogX19aVGhuOF9ON1dlYkNvcmUyMFdvcmtlck1l
c3NhZ2luZ1Byb3h5MTl3b3JrZXJDb250ZXh0Q2xvc2VkRXYKZGlmZiAtLWdpdCBhL1dlYkNvcmUv
V2ViQ29yZS5wcm8gYi9XZWJDb3JlL1dlYkNvcmUucHJvCmluZGV4IGQ3Njk5MjFjNGM2YjI1ZDc4
ZjMyZmM3OWVmMGZjYWMyMTE5YjdkMjcuLjM4MDFhOWI0NTllZjBiYjM1NWQ3YzQ4ODQ4ODdhYmNh
Zjk2N2Y3NTMgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvV2ViQ29yZS5wcm8KKysrIGIvV2ViQ29yZS9X
ZWJDb3JlLnBybwpAQCAtNTcwLDcgKzU3MCw2IEBAIHY4IHsKICAgICAgICAgYmluZGluZ3MvanMv
SlNNYWluVGhyZWFkRXhlY1N0YXRlLmNwcCBcCiAgICAgICAgIGJpbmRpbmdzL2pzL0pTUGx1Z2lu
RWxlbWVudEZ1bmN0aW9ucy5jcHAgXAogICAgICAgICBiaW5kaW5ncy9qcy9KU1BvcFN0YXRlRXZl
bnRDdXN0b20uY3BwIFwKLSAgICAgICAgYmluZGluZ3MvanMvSlNXb3JrZXJDb250ZXh0RXJyb3JI
YW5kbGVyLmNwcCBcCiAgICAgICAgIGJpbmRpbmdzL2pzL1NjcmlwdENhY2hlZEZyYW1lRGF0YS5j
cHAgXAogICAgICAgICBiaW5kaW5ncy9qcy9TY3JpcHRDYWxsRnJhbWUuY3BwIFwKICAgICAgICAg
YmluZGluZ3MvanMvU2NyaXB0Q2FsbFN0YWNrLmNwcCBcCkBAIC0xNDYyLDcgKzE0NjEsNiBAQCB2
OCB7CiAgICAgICAgIGJpbmRpbmdzL2pzL0pTUGx1Z2luRWxlbWVudEZ1bmN0aW9ucy5oIFwKICAg
ICAgICAgYmluZGluZ3MvanMvSlNTdG9yYWdlQ3VzdG9tLmggXAogICAgICAgICBiaW5kaW5ncy9q
cy9KU1dvcmtlckNvbnRleHRCYXNlLmggXAotICAgICAgICBiaW5kaW5ncy9qcy9KU1dvcmtlckNv
bnRleHRFcnJvckhhbmRsZXIuaCBcCiAgICAgICAgIGJpbmRpbmdzL2pzL0phdmFTY3JpcHRDYWxs
RnJhbWUuaCBcCiAgICAgICAgIGJpbmRpbmdzL2pzL1NjaGVkdWxlZEFjdGlvbi5oIFwKICAgICAg
ICAgYmluZGluZ3MvanMvU2NyaXB0Q2FjaGVkRnJhbWVEYXRhLmggXApkaWZmIC0tZ2l0IGEvV2Vi
Q29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvaiBiL1dlYkNvcmUvV2ViQ29yZS52Y3By
b2ovV2ViQ29yZS52Y3Byb2oKaW5kZXggNGY4NDdhM2NjZGRkMGY0OGVhZTgzMjliMDk3NjgyZjg2
MzEwMjQzNS4uNGFkMWY3OWQ4ODJlMmIwMjAyYTc3OTlkYjk1NzQxMzgwYmM1MjUwOCAxMDA2NDQK
LS0tIGEvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvagorKysgYi9XZWJDb3Jl
L1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qCkBAIC00NDgzOSw2ICs0NDgzOSw2MyBAQAog
CQkJCTwvRmlsZT4NCiAJCQkJPEZpbGUNCiAJCQkJCVJlbGF0aXZlUGF0aD0iLi5cYmluZGluZ3Nc
anNcSlNET01XaW5kb3dTaGVsbC5jcHAiDQorCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGJpbmRpbmdz
XGpzXEpTRXJyb3JIYW5kbGVyLmNwcCINCisJCQkJCT4NCisJCQkJCTxGaWxlQ29uZmlndXJhdGlv
bg0KKwkJCQkJCU5hbWU9IkRlYnVnfFdpbjMyIg0KKwkJCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0
cnVlIg0KKwkJCQkJCT4NCisJCQkJCQk8VG9vbA0KKwkJCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJU
b29sIg0KKwkJCQkJCS8+DQorCQkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPg0KKwkJCQkJPEZpbGVD
b25maWd1cmF0aW9uDQorCQkJCQkJTmFtZT0iUmVsZWFzZXxXaW4zMiINCisJCQkJCQlFeGNsdWRl
ZEZyb21CdWlsZD0idHJ1ZSINCisJCQkJCQk+DQorCQkJCQkJPFRvb2wNCisJCQkJCQkJTmFtZT0i
VkNDTENvbXBpbGVyVG9vbCINCisJCQkJCQkvPg0KKwkJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4N
CisJCQkJCTxGaWxlQ29uZmlndXJhdGlvbg0KKwkJCQkJCU5hbWU9IkRlYnVnX0ludGVybmFsfFdp
bjMyIg0KKwkJCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIg0KKwkJCQkJCT4NCisJCQkJCQk8
VG9vbA0KKwkJCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIg0KKwkJCQkJCS8+DQorCQkJCQk8
L0ZpbGVDb25maWd1cmF0aW9uPg0KKwkJCQkJPEZpbGVDb25maWd1cmF0aW9uDQorCQkJCQkJTmFt
ZT0iRGVidWdfQ2Fpcm98V2luMzIiDQorCQkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiDQor
CQkJCQkJPg0KKwkJCQkJCTxUb29sDQorCQkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiDQor
CQkJCQkJLz4NCisJCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+DQorCQkJCQk8RmlsZUNvbmZpZ3Vy
YXRpb24NCisJCQkJCQlOYW1lPSJSZWxlYXNlX0NhaXJvfFdpbjMyIg0KKwkJCQkJCUV4Y2x1ZGVk
RnJvbUJ1aWxkPSJ0cnVlIg0KKwkJCQkJCT4NCisJCQkJCQk8VG9vbA0KKwkJCQkJCQlOYW1lPSJW
Q0NMQ29tcGlsZXJUb29sIg0KKwkJCQkJCS8+DQorCQkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPg0K
KwkJCQkJPEZpbGVDb25maWd1cmF0aW9uDQorCQkJCQkJTmFtZT0iRGVidWdfQWxsfFdpbjMyIg0K
KwkJCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIg0KKwkJCQkJCT4NCisJCQkJCQk8VG9vbA0K
KwkJCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIg0KKwkJCQkJCS8+DQorCQkJCQk8L0ZpbGVD
b25maWd1cmF0aW9uPg0KKwkJCQk8L0ZpbGU+DQorCQkJCTxGaWxlDQorCQkJCQlSZWxhdGl2ZVBh
dGg9Ii4uXGJpbmRpbmdzXGpzXEpTRXJyb3JIYW5kbGVyLmgiDQorCQkJCQk+DQorCQkJCTwvRmls
ZT4NCisJCQkJPEZpbGUNCisJCQkJCVJlbGF0aXZlUGF0aD0iLi5cYmluZGluZ3NcanNcSlNFdmVu
dEN1c3RvbS5jcHAiDQogCQkJCQk+DQogCQkJCQk8RmlsZUNvbmZpZ3VyYXRpb24NCiAJCQkJCQlO
YW1lPSJEZWJ1Z3xXaW4zMiINCkBAIC00OTM5OCw2MiArNDk0NTUsNiBAQAogCQkJCQk8L0ZpbGVD
b25maWd1cmF0aW9uPg0KIAkJCQk8L0ZpbGU+DQogCQkJCTxGaWxlDQotCQkJCQlSZWxhdGl2ZVBh
dGg9Ii4uXGJpbmRpbmdzXGpzXEpTV29ya2VyQ29udGV4dEVycm9ySGFuZGxlci5jcHAiDQotCQkJ
CQk+DQotCQkJCQk8RmlsZUNvbmZpZ3VyYXRpb24NCi0JCQkJCQlOYW1lPSJEZWJ1Z3xXaW4zMiIN
Ci0JCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSINCi0JCQkJCQk+DQotCQkJCQkJPFRvb2wN
Ci0JCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCINCi0JCQkJCQkvPg0KLQkJCQkJPC9GaWxl
Q29uZmlndXJhdGlvbj4NCi0JCQkJCTxGaWxlQ29uZmlndXJhdGlvbg0KLQkJCQkJCU5hbWU9IlJl
bGVhc2V8V2luMzIiDQotCQkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiDQotCQkJCQkJPg0K
LQkJCQkJCTxUb29sDQotCQkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiDQotCQkJCQkJLz4N
Ci0JCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+DQotCQkJCQk8RmlsZUNvbmZpZ3VyYXRpb24NCi0J
CQkJCQlOYW1lPSJEZWJ1Z19JbnRlcm5hbHxXaW4zMiINCi0JCQkJCQlFeGNsdWRlZEZyb21CdWls
ZD0idHJ1ZSINCi0JCQkJCQk+DQotCQkJCQkJPFRvb2wNCi0JCQkJCQkJTmFtZT0iVkNDTENvbXBp
bGVyVG9vbCINCi0JCQkJCQkvPg0KLQkJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4NCi0JCQkJCTxG
aWxlQ29uZmlndXJhdGlvbg0KLQkJCQkJCU5hbWU9IkRlYnVnX0NhaXJvfFdpbjMyIg0KLQkJCQkJ
CUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIg0KLQkJCQkJCT4NCi0JCQkJCQk8VG9vbA0KLQkJCQkJ
CQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIg0KLQkJCQkJCS8+DQotCQkJCQk8L0ZpbGVDb25maWd1
cmF0aW9uPg0KLQkJCQkJPEZpbGVDb25maWd1cmF0aW9uDQotCQkJCQkJTmFtZT0iUmVsZWFzZV9D
YWlyb3xXaW4zMiINCi0JCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSINCi0JCQkJCQk+DQot
CQkJCQkJPFRvb2wNCi0JCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCINCi0JCQkJCQkvPg0K
LQkJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4NCi0JCQkJCTxGaWxlQ29uZmlndXJhdGlvbg0KLQkJ
CQkJCU5hbWU9IkRlYnVnX0FsbHxXaW4zMiINCi0JCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1
ZSINCi0JCQkJCQk+DQotCQkJCQkJPFRvb2wNCi0JCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9v
bCINCi0JCQkJCQkvPg0KLQkJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4NCi0JCQkJPC9GaWxlPg0K
LQkJCQk8RmlsZQ0KLQkJCQkJUmVsYXRpdmVQYXRoPSIuLlxiaW5kaW5nc1xqc1xKU1dvcmtlckNv
bnRleHRFcnJvckhhbmRsZXIuaCINCi0JCQkJCT4NCi0JCQkJPC9GaWxlPg0KLQkJCQk8RmlsZQ0K
IAkJCQkJUmVsYXRpdmVQYXRoPSIuLlxiaW5kaW5nc1xqc1xKU1hNTEh0dHBSZXF1ZXN0Q3VzdG9t
LmNwcCINCiAJCQkJCT4NCiAJCQkJCTxGaWxlQ29uZmlndXJhdGlvbg0KZGlmZiAtLWdpdCBhL1dl
YkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvV2ViQ29yZS9XZWJDb3Jl
Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggYjg2ODQwOGZmYmIzNDljNTY4ODZhNmJi
NmY1MWY5ZjkxNWMxNTBmNy4uMzFjMTA1MzliYmI2OTQ0NjMxZTY5MDY3MDQ0YzVlNjI2M2RmNWFk
MiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oK
KysrIGIvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTU0MTIs
OCArNTQxMiw4IEBACiAJCUYzNjQ0QUZGMTExOTgwNTkwMEUwRDUzNyAvKiBJbmplY3RlZFNjcmlw
dC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGMzY0
NEFGRDExMTk4MDU5MDBFMEQ1MzcgLyogSW5qZWN0ZWRTY3JpcHQuY3BwICovOyB9OwogCQlGMzY0
NEIwMDExMTk4MDU5MDBFMEQ1MzcgLyogSW5qZWN0ZWRTY3JpcHQuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEYzNjQ0QUZFMTExOTgwNTkwMEUwRDUzNyAv
KiBJbmplY3RlZFNjcmlwdC5oICovOyB9OwogCQlGMzc1Q0MwNzExNTBEMzAwMDA4RERCODEgLyog
SW5zcGVjdG9yV29ya2VyUmVzb3VyY2UuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IEYzNzVDQzA2MTE1MEQzMDAwMDhEREI4MSAvKiBJbnNwZWN0b3JXb3Jr
ZXJSZXNvdXJjZS5oICovOyB9OwotCQlGM0Q0NjE0ODExNjFENTMyMDBDQTBEMDkgLyogSlNXb3Jr
ZXJDb250ZXh0RXJyb3JIYW5kbGVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IEYzRDQ2MTQ2MTE2MUQ1MzIwMENBMEQwOSAvKiBKU1dvcmtlckNvbnRl
eHRFcnJvckhhbmRsZXIuY3BwICovOyB9OwotCQlGM0Q0NjE0OTExNjFENTMyMDBDQTBEMDkgLyog
SlNXb3JrZXJDb250ZXh0RXJyb3JIYW5kbGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSBGM0Q0NjE0NzExNjFENTMyMDBDQTBEMDkgLyogSlNXb3JrZXJD
b250ZXh0RXJyb3JIYW5kbGVyLmggKi87IH07CisJCUYzRDQ2MTQ4MTE2MUQ1MzIwMENBMEQwOSAv
KiBKU0Vycm9ySGFuZGxlci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSBGM0Q0NjE0NjExNjFENTMyMDBDQTBEMDkgLyogSlNFcnJvckhhbmRsZXIuY3Bw
ICovOyB9OworCQlGM0Q0NjE0OTExNjFENTMyMDBDQTBEMDkgLyogSlNFcnJvckhhbmRsZXIuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEYzRDQ2MTQ3MTE2
MUQ1MzIwMENBMEQwOSAvKiBKU0Vycm9ySGFuZGxlci5oICovOyB9OwogCQlGNEVBRjRBRTEwQzc0
MkIxMDA5MTAwRDMgLyogT3BlblR5cGVTYW5pdGl6ZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjRFQUY0QUMxMEM3NDJCMTAwOTEwMEQzIC8qIE9w
ZW5UeXBlU2FuaXRpemVyLmNwcCAqLzsgfTsKIAkJRjRFQUY0QUYxMEM3NDJCMTAwOTEwMEQzIC8q
IE9wZW5UeXBlU2FuaXRpemVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSBGNEVBRjRBRDEwQzc0MkIxMDA5MTAwRDMgLyogT3BlblR5cGVTYW5pdGl6ZXIu
aCAqLzsgfTsKIAkJRjU1QjNEQUQxMjUxRjEyRDAwM0VGMjY5IC8qIEJhc2VUZXh0SW5wdXRUeXBl
LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY1NUIz
RDc5MTI1MUYxMkQwMDNFRjI2OSAvKiBCYXNlVGV4dElucHV0VHlwZS5jcHAgKi87IH07CkBAIC0x
MTM5MSw4ICsxMTM5MSw4IEBACiAJCUYzNjQ0QUZEMTExOTgwNTkwMEUwRDUzNyAvKiBJbmplY3Rl
ZFNjcmlwdC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBJbmplY3Rl
ZFNjcmlwdC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUYzNjQ0QUZFMTExOTgw
NTkwMEUwRDUzNyAvKiBJbmplY3RlZFNjcmlwdC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBJbmplY3RlZFNjcmlwdC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlG
Mzc1Q0MwNjExNTBEMzAwMDA4RERCODEgLyogSW5zcGVjdG9yV29ya2VyUmVzb3VyY2UuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSW5zcGVjdG9yV29ya2VyUmVzb3VyY2UuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJRjNENDYxNDYxMTYxRDUzMjAwQ0EwRDA5IC8q
IEpTV29ya2VyQ29udGV4dEVycm9ySGFuZGxlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5jcHA7IHBhdGggPSBKU1dvcmtlckNvbnRleHRFcnJvckhhbmRsZXIuY3BwOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwotCQlGM0Q0NjE0NzExNjFENTMyMDBDQTBEMDkgLyogSlNXb3JrZXJD
b250ZXh0RXJyb3JIYW5kbGVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpT
V29ya2VyQ29udGV4dEVycm9ySGFuZGxlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owor
CQlGM0Q0NjE0NjExNjFENTMyMDBDQTBEMDkgLyogSlNFcnJvckhhbmRsZXIuY3BwICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNFcnJvckhhbmRsZXIuY3BwOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OworCQlGM0Q0NjE0NzExNjFENTMyMDBDQTBEMDkgLyogSlNFcnJv
ckhhbmRsZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNFcnJvckhhbmRs
ZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRjRFQUY0QUMxMEM3NDJCMTAwOTEw
MEQzIC8qIE9wZW5UeXBlU2FuaXRpemVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNw
cDsgbmFtZSA9IE9wZW5UeXBlU2FuaXRpemVyLmNwcDsgcGF0aCA9IG9wZW50eXBlL09wZW5UeXBl
U2FuaXRpemVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRjRFQUY0QUQxMEM3
NDJCMTAwOTEwMEQzIC8qIE9wZW5UeXBlU2FuaXRpemVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgbmFtZSA9IE9wZW5UeXBlU2FuaXRpemVyLmg7IHBhdGggPSBvcGVudHlwZS9PcGVuVHlw
ZVNhbml0aXplci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlGNTIzRDIzQjAyREU0
Mzk2MDE4NjM1Q0EgLyogSFRNTERvY3VtZW50LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgaW5kZW50V2lkdGggPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEhUTUxEb2N1bWVudC5jcHA7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IHRhYldpZHRoID0gODsgdXNlc1RhYnMgPSAwOyB9OwpAQCAtMTY2MDYs
NiArMTY2MDYsOCBAQAogCQkJCUJDQkZCNTNCMERDRDI5Q0YwMDE5QjNFNSAvKiBKU0RPTVdpbmRv
d1NoZWxsLmggKi8sCiAJCQkJQkM1M0RBQzYxMTQzMzA2NDAwMEQ4MTdFIC8qIEpTRE9NV3JhcHBl
ci5jcHAgKi8sCiAJCQkJNjVFMEU5NDMxMTMzQzg5RjAwQjRDQjEwIC8qIEpTRE9NV3JhcHBlci5o
ICovLAorCQkJCUYzRDQ2MTQ2MTE2MUQ1MzIwMENBMEQwOSAvKiBKU0Vycm9ySGFuZGxlci5jcHAg
Ki8sCisJCQkJRjNENDYxNDcxMTYxRDUzMjAwQ0EwRDA5IC8qIEpTRXJyb3JIYW5kbGVyLmggKi8s
CiAJCQkJQkM2MDkwMUUwRTkxQjhFQzAwMEM2OEI1IC8qIEpTRXZlbnRUYXJnZXQuY3BwICovLAog
CQkJCUJDNjA5MDFEMEU5MUI4RUMwMDBDNjhCNSAvKiBKU0V2ZW50VGFyZ2V0LmggKi8sCiAJCQkJ
MzMxNEFDRTkxMDg5MjA4NjAwMEYwRTU2IC8qIEpTRXhjZXB0aW9uQmFzZS5jcHAgKi8sCkBAIC0x
NjYxOCw4ICsxNjYyMCw2IEBACiAJCQkJQjIxMTI3QTUwQjMxODY3NzAwMDlCRTUzIC8qIEpTU1ZH
UE9EVHlwZVdyYXBwZXIuaCAqLywKIAkJCQlFMUMzNkQzMjBFQjBBMDk0MDA3NDEwQkMgLyogSlNX
b3JrZXJDb250ZXh0QmFzZS5jcHAgKi8sCiAJCQkJRTFDMzZEMzMwRUIwQTA5NDAwNzQxMEJDIC8q
IEpTV29ya2VyQ29udGV4dEJhc2UuaCAqLywKLQkJCQlGM0Q0NjE0NjExNjFENTMyMDBDQTBEMDkg
LyogSlNXb3JrZXJDb250ZXh0RXJyb3JIYW5kbGVyLmNwcCAqLywKLQkJCQlGM0Q0NjE0NzExNjFE
NTMyMDBDQTBEMDkgLyogSlNXb3JrZXJDb250ZXh0RXJyb3JIYW5kbGVyLmggKi8sCiAJCQkJQkNB
Mzc4QkEwRDE1RjY0MjAwQjc5M0Q2IC8qIFNjaGVkdWxlZEFjdGlvbi5jcHAgKi8sCiAJCQkJQkNB
Mzc4QkIwRDE1RjY0MjAwQjc5M0Q2IC8qIFNjaGVkdWxlZEFjdGlvbi5oICovLAogCQkJCTQxRjFE
MjFFMEVGMzVDMkEwMERBODc1MyAvKiBTY3JpcHRDYWNoZWRGcmFtZURhdGEuY3BwICovLApAQCAt
MjAwMjUsNyArMjAwMjUsNyBAQAogCQkJCUUxQ0FBNUM2MEU4QkQyMzYwMEE3M0VDQSAvKiBKU1dv
cmtlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRTE4MjU2OTAwRUYyQjAyRDAwOTMzMjQyIC8qIEpT
V29ya2VyQ29udGV4dC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRTFDMzZEMzUwRUIwQTA5NDAwNzQx
MEJDIC8qIEpTV29ya2VyQ29udGV4dEJhc2UuaCBpbiBIZWFkZXJzICovLAotCQkJCUYzRDQ2MTQ5
MTE2MUQ1MzIwMENBMEQwOSAvKiBKU1dvcmtlckNvbnRleHRFcnJvckhhbmRsZXIuaCBpbiBIZWFk
ZXJzICovLAorCQkJCUYzRDQ2MTQ5MTE2MUQ1MzIwMENBMEQwOSAvKiBKU0Vycm9ySGFuZGxlci5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJRTFDMzYyRUYwRUFGMkFBOTAwNzQxMEJDIC8qIEpTV29ya2Vy
TG9jYXRpb24uaCBpbiBIZWFkZXJzICovLAogCQkJCUUxMjcxQTU4MEVFRUNERTQwMEY2MTIxMyAv
KiBKU1dvcmtlck5hdmlnYXRvci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkMzNDhCRDQwREI3Rjgw
NDAwNEFCQUI5IC8qIEpTWE1MSHR0cFJlcXVlc3QuaCBpbiBIZWFkZXJzICovLApAQCAtMjI2Njgs
NyArMjI2NjgsNyBAQAogCQkJCUUxODI1NjhGMEVGMkIwMkQwMDkzMzI0MiAvKiBKU1dvcmtlckNv
bnRleHQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJRTFDMzZEMzQwRUIwQTA5NDAwNzQxMEJDIC8q
IEpTV29ya2VyQ29udGV4dEJhc2UuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJRTE4MjU4QUMwRUYz
Q0Q3MDAwOTMzMjQyIC8qIEpTV29ya2VyQ29udGV4dEN1c3RvbS5jcHAgaW4gU291cmNlcyAqLywK
LQkJCQlGM0Q0NjE0ODExNjFENTMyMDBDQTBEMDkgLyogSlNXb3JrZXJDb250ZXh0RXJyb3JIYW5k
bGVyLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCUYzRDQ2MTQ4MTE2MUQ1MzIwMENBMEQwOSAvKiBK
U0Vycm9ySGFuZGxlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlFMUNBNUNCQzBFOENEQ0FGMDBF
OEVGOTAgLyogSlNXb3JrZXJDdXN0b20uY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJRTFDMzYyRjAw
RUFGMkFBOTAwNzQxMEJDIC8qIEpTV29ya2VyTG9jYXRpb24uY3BwIGluIFNvdXJjZXMgKi8sCiAJ
CQkJRTEyNzFBNTkwRUVFQ0RFNDAwRjYxMjEzIC8qIEpTV29ya2VyTmF2aWdhdG9yLmNwcCBpbiBT
b3VyY2VzICovLApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0JpbmRpbmdzQWxs
SW5PbmUuY3BwIGIvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0JpbmRpbmdzQWxsSW5PbmUuY3BwCmlu
ZGV4IDZlMWNjMWUyM2JhMWFmODM0Y2YzNzllMzNiYTViY2ZlYjkzYWJmZTcuLjU2MDEyZmE0OGIx
NGYyMGU4NjQ0OTk5NWQ1ZjRmYzJhZDZkNjlhMzYgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvYmluZGlu
Z3MvanMvSlNCaW5kaW5nc0FsbEluT25lLmNwcAorKysgYi9XZWJDb3JlL2JpbmRpbmdzL2pzL0pT
QmluZGluZ3NBbGxJbk9uZS5jcHAKQEAgLTY0LDYgKzY0LDcgQEAKICNpbmNsdWRlICJKU0Rldmlj
ZU9yaWVudGF0aW9uRXZlbnRDdXN0b20uY3BwIgogI2luY2x1ZGUgIkpTRG9jdW1lbnRDdXN0b20u
Y3BwIgogI2luY2x1ZGUgIkpTRWxlbWVudEN1c3RvbS5jcHAiCisjaW5jbHVkZSAiSlNFcnJvckhh
bmRsZXIuY3BwIgogI2luY2x1ZGUgIkpTRXZlbnRDdXN0b20uY3BwIgogI2luY2x1ZGUgIkpTRXZl
bnRMaXN0ZW5lci5jcHAiCiAjaW5jbHVkZSAiSlNFdmVudFNvdXJjZUN1c3RvbS5jcHAiCkBAIC0x
MzAsNyArMTMxLDYgQEAKICNpbmNsdWRlICJKU1dlYlNvY2tldEN1c3RvbS5jcHAiCiAjaW5jbHVk
ZSAiSlNXb3JrZXJDb250ZXh0QmFzZS5jcHAiCiAjaW5jbHVkZSAiSlNXb3JrZXJDb250ZXh0Q3Vz
dG9tLmNwcCIKLSNpbmNsdWRlICJKU1dvcmtlckNvbnRleHRFcnJvckhhbmRsZXIuY3BwIgogI2lu
Y2x1ZGUgIkpTV29ya2VyQ3VzdG9tLmNwcCIKICNpbmNsdWRlICJKU1hNTEh0dHBSZXF1ZXN0Q3Vz
dG9tLmNwcCIKICNpbmNsdWRlICJKU1hNTEh0dHBSZXF1ZXN0VXBsb2FkQ3VzdG9tLmNwcCIKZGlm
ZiAtLWdpdCBhL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01CaW5kaW5nLmNwcCBiL1dlYkNvcmUv
YmluZGluZ3MvanMvSlNET01CaW5kaW5nLmNwcAppbmRleCBkN2MwODZhMTUwYTg0NmU4ZDhmMzdi
YmZhYzA5Y2U1YmI2NzRkYjI1Li4wYjg2MzA2ZjFmZjVlZjZkYjBkNDIyMzcxNGQ5MGY4N2FiOWNi
ZjVlIDEwMDY0NAotLS0gYS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NQmluZGluZy5jcHAKKysr
IGIvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTUJpbmRpbmcuY3BwCkBAIC01Miw2ICs1Miw3IEBA
CiAjaW5jbHVkZSAiTWVzc2FnZVBvcnQuaCIKICNpbmNsdWRlICJSYW5nZUV4Y2VwdGlvbi5oIgog
I2luY2x1ZGUgIlNjcmlwdENhY2hlZEZyYW1lRGF0YS5oIgorI2luY2x1ZGUgIlNjcmlwdENhbGxT
dGFjay5oIgogI2luY2x1ZGUgIlNjcmlwdENvbnRyb2xsZXIuaCIKICNpbmNsdWRlICJTZXR0aW5n
cy5oIgogI2luY2x1ZGUgIldlYkNvcmVKU0NsaWVudERhdGEuaCIKQEAgLTU2MCw3ICs1NjEsNyBA
QCB2b2lkIHJlcG9ydEV4Y2VwdGlvbihFeGVjU3RhdGUqIGV4ZWMsIEpTVmFsdWUgZXhjZXB0aW9u
KQogICAgIGlmICghc2NyaXB0RXhlY3V0aW9uQ29udGV4dCkKICAgICAgICAgcmV0dXJuOwogCi0g
ICAgc2NyaXB0RXhlY3V0aW9uQ29udGV4dC0+cmVwb3J0RXhjZXB0aW9uKHVzdHJpbmdUb1N0cmlu
ZyhlcnJvck1lc3NhZ2UpLCBsaW5lTnVtYmVyLCB1c3RyaW5nVG9TdHJpbmcoZXhjZXB0aW9uU291
cmNlVVJMKSk7CisgICAgc2NyaXB0RXhlY3V0aW9uQ29udGV4dC0+cmVwb3J0RXhjZXB0aW9uKGN1
cnJlbnRXb3JsZChleGVjKSwgdXN0cmluZ1RvU3RyaW5nKGVycm9yTWVzc2FnZSksIGxpbmVOdW1i
ZXIsIHVzdHJpbmdUb1N0cmluZyhleGNlcHRpb25Tb3VyY2VVUkwpLCAwKTsKIH0KIAogdm9pZCBy
ZXBvcnRDdXJyZW50RXhjZXB0aW9uKEV4ZWNTdGF0ZSogZXhlYykKZGlmZiAtLWdpdCBhL1dlYkNv
cmUvYmluZGluZ3MvanMvSlNXb3JrZXJDb250ZXh0RXJyb3JIYW5kbGVyLmNwcCBiL1dlYkNvcmUv
YmluZGluZ3MvanMvSlNFcnJvckhhbmRsZXIuY3BwCnNpbWlsYXJpdHkgaW5kZXggODYlCnJlbmFt
ZSBmcm9tIFdlYkNvcmUvYmluZGluZ3MvanMvSlNXb3JrZXJDb250ZXh0RXJyb3JIYW5kbGVyLmNw
cApyZW5hbWUgdG8gV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0Vycm9ySGFuZGxlci5jcHAKaW5kZXgg
YWQzZjVlYzE3ZDNiNTgwY2I2ODA4OGRlYjYxOWZmNzA4YTcyYjc0ZC4uY2JjZjdiYzdmZmQwODRh
MDQ0Mzk2MzM5MWI1N2Q5ZmQzNTYxMTE1YiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9iaW5kaW5ncy9q
cy9KU1dvcmtlckNvbnRleHRFcnJvckhhbmRsZXIuY3BwCisrKyBiL1dlYkNvcmUvYmluZGluZ3Mv
anMvSlNFcnJvckhhbmRsZXIuY3BwCkBAIC0zMCw5ICszMCw3IEBACiAKICNpbmNsdWRlICJjb25m
aWcuaCIKIAotI2lmIEVOQUJMRShXT1JLRVJTKQotCi0jaW5jbHVkZSAiSlNXb3JrZXJDb250ZXh0
RXJyb3JIYW5kbGVyLmgiCisjaW5jbHVkZSAiSlNFcnJvckhhbmRsZXIuaCIKIAogI2luY2x1ZGUg
IkVycm9yRXZlbnQuaCIKICNpbmNsdWRlICJFdmVudC5oIgpAQCAtNDMsMjEgKzQxLDI4IEBAIHVz
aW5nIG5hbWVzcGFjZSBKU0M7CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotSlNXb3JrZXJDb250
ZXh0RXJyb3JIYW5kbGVyOjpKU1dvcmtlckNvbnRleHRFcnJvckhhbmRsZXIoSlNPYmplY3QqIGZ1
bmN0aW9uLCBKU09iamVjdCogd3JhcHBlciwgYm9vbCBpc0F0dHJpYnV0ZSwgRE9NV3JhcHBlcldv
cmxkKiBpc29sYXRlZFdvcmxkKQorSlNFcnJvckhhbmRsZXI6OkpTRXJyb3JIYW5kbGVyKEpTT2Jq
ZWN0KiBmdW5jdGlvbiwgSlNPYmplY3QqIHdyYXBwZXIsIGJvb2wgaXNBdHRyaWJ1dGUsIERPTVdy
YXBwZXJXb3JsZCogaXNvbGF0ZWRXb3JsZCkKICAgICA6IEpTRXZlbnRMaXN0ZW5lcihmdW5jdGlv
biwgd3JhcHBlciwgaXNBdHRyaWJ1dGUsIGlzb2xhdGVkV29ybGQpCiB7CiB9CiAKLUpTV29ya2Vy
Q29udGV4dEVycm9ySGFuZGxlcjo6fkpTV29ya2VyQ29udGV4dEVycm9ySGFuZGxlcigpCitKU0Vy
cm9ySGFuZGxlcjo6fkpTRXJyb3JIYW5kbGVyKCkKIHsKIH0KIAotdm9pZCBKU1dvcmtlckNvbnRl
eHRFcnJvckhhbmRsZXI6OmhhbmRsZUV2ZW50KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIHNjcmlw
dEV4ZWN1dGlvbkNvbnRleHQsIEV2ZW50KiBldmVudCkKK3ZvaWQgSlNFcnJvckhhbmRsZXI6Omhh
bmRsZUV2ZW50KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQs
IEV2ZW50KiBldmVudCkKIHsKICAgICBBU1NFUlQoc2NyaXB0RXhlY3V0aW9uQ29udGV4dCk7CiAg
ICAgaWYgKCFzY3JpcHRFeGVjdXRpb25Db250ZXh0KQogICAgICAgICByZXR1cm47CiAKKyAgICBB
U1NFUlQoZXZlbnQtPmlzRXJyb3JFdmVudCgpKTsKKyAgICBFcnJvckV2ZW50KiBlcnJvckV2ZW50
ID0gc3RhdGljX2Nhc3Q8RXJyb3JFdmVudCo+KGV2ZW50KTsKKworICAgIC8vIEl0IGlzIGluc2Vj
dXJlIHRvIHJlcG9ydCBleGNlcHRpb24gZnJvbSBvbmUgd29ybGQgdG8gYSBoYW5kbGVyIGZyb20g
YW5vdGhlci4KKyAgICBpZiAoaXNvbGF0ZWRXb3JsZCgpICE9IGVycm9yRXZlbnQtPndyYXBwZXJX
b3JsZCgpKQorICAgICAgICByZXR1cm47CisKICAgICBKU0xvY2sgbG9jayhTaWxlbmNlQXNzZXJ0
aW9uc09ubHkpOwogCiAgICAgSlNPYmplY3QqIGpzRnVuY3Rpb24gPSB0aGlzLT5qc0Z1bmN0aW9u
KHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQpOwpAQCAtODAsOSArODUsNiBAQCB2b2lkIEpTV29ya2Vy
Q29udGV4dEVycm9ySGFuZGxlcjo6aGFuZGxlRXZlbnQoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCog
c2NyaXB0RXhlYwogICAgICAgICBFdmVudCogc2F2ZWRFdmVudCA9IGdsb2JhbE9iamVjdC0+Y3Vy
cmVudEV2ZW50KCk7CiAgICAgICAgIGdsb2JhbE9iamVjdC0+c2V0Q3VycmVudEV2ZW50KGV2ZW50
KTsKIAotICAgICAgICBBU1NFUlQoZXZlbnQtPmlzRXJyb3JFdmVudCgpKTsKLSAgICAgICAgRXJy
b3JFdmVudCogZXJyb3JFdmVudCA9IHN0YXRpY19jYXN0PEVycm9yRXZlbnQqPihldmVudCk7Ci0K
ICAgICAgICAgTWFya2VkQXJndW1lbnRCdWZmZXIgYXJnczsKICAgICAgICAgYXJncy5hcHBlbmQo
anNTdHJpbmcoZXhlYywgZXJyb3JFdmVudC0+bWVzc2FnZSgpKSk7CiAgICAgICAgIGFyZ3MuYXBw
ZW5kKGpzU3RyaW5nKGV4ZWMsIGVycm9yRXZlbnQtPmZpbGVuYW1lKCkpKTsKQEAgLTExMiw1ICsx
MTQsMyBAQCB2b2lkIEpTV29ya2VyQ29udGV4dEVycm9ySGFuZGxlcjo6aGFuZGxlRXZlbnQoU2Ny
aXB0RXhlY3V0aW9uQ29udGV4dCogc2NyaXB0RXhlYwogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJD
b3JlCi0KLSNlbmRpZiAvLyBFTkFCTEUoV09SS0VSUykKZGlmZiAtLWdpdCBhL1dlYkNvcmUvYmlu
ZGluZ3MvanMvSlNXb3JrZXJDb250ZXh0RXJyb3JIYW5kbGVyLmggYi9XZWJDb3JlL2JpbmRpbmdz
L2pzL0pTRXJyb3JIYW5kbGVyLmgKc2ltaWxhcml0eSBpbmRleCA2OSUKY29weSBmcm9tIFdlYkNv
cmUvYmluZGluZ3MvanMvSlNXb3JrZXJDb250ZXh0RXJyb3JIYW5kbGVyLmgKY29weSB0byBXZWJD
b3JlL2JpbmRpbmdzL2pzL0pTRXJyb3JIYW5kbGVyLmgKaW5kZXggYTE4ODI5OTAzOGM5Y2RmZTcy
Mjg2YjcxZmVhZWIzYTQ5YzJhMGQ4MS4uOTU3ZmQ4MWRhYTA1NzQ2OWIyMTEyZTExZDdlNzA0YWQ0
ZTI5ZDdlZCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1dvcmtlckNvbnRleHRF
cnJvckhhbmRsZXIuaAorKysgYi9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRXJyb3JIYW5kbGVyLmgK
QEAgLTI4LDM3ICsyOCwzNyBAQAogICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KICAqLwogCi0jaWZuZGVmIEpTV29y
a2VyQ29udGV4dEVycm9ySGFuZGxlcl9oCi0jZGVmaW5lIEpTV29ya2VyQ29udGV4dEVycm9ySGFu
ZGxlcl9oCisjaWZuZGVmIEpTRXJyb3JIYW5kbGVyX2gKKyNkZWZpbmUgSlNFcnJvckhhbmRsZXJf
aAogCiAjaW5jbHVkZSAiSlNFdmVudExpc3RlbmVyLmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsK
IAotY2xhc3MgSlNXb3JrZXJDb250ZXh0RXJyb3JIYW5kbGVyIDogcHVibGljIEpTRXZlbnRMaXN0
ZW5lciB7CitjbGFzcyBKU0Vycm9ySGFuZGxlciA6IHB1YmxpYyBKU0V2ZW50TGlzdGVuZXIgewog
cHVibGljOgotICAgIHN0YXRpYyBQYXNzUmVmUHRyPEpTV29ya2VyQ29udGV4dEVycm9ySGFuZGxl
cj4gY3JlYXRlKEpTQzo6SlNPYmplY3QqIGxpc3RlbmVyLCBKU0M6OkpTT2JqZWN0KiB3cmFwcGVy
LCBib29sIGlzQXR0cmlidXRlLCBET01XcmFwcGVyV29ybGQqIGlzb2xhdGVkV29ybGQpCisgICAg
c3RhdGljIFBhc3NSZWZQdHI8SlNFcnJvckhhbmRsZXI+IGNyZWF0ZShKU0M6OkpTT2JqZWN0KiBs
aXN0ZW5lciwgSlNDOjpKU09iamVjdCogd3JhcHBlciwgYm9vbCBpc0F0dHJpYnV0ZSwgRE9NV3Jh
cHBlcldvcmxkKiBpc29sYXRlZFdvcmxkKQogICAgIHsKLSAgICAgICAgcmV0dXJuIGFkb3B0UmVm
KG5ldyBKU1dvcmtlckNvbnRleHRFcnJvckhhbmRsZXIobGlzdGVuZXIsIHdyYXBwZXIsIGlzQXR0
cmlidXRlLCBpc29sYXRlZFdvcmxkKSk7CisgICAgICAgIHJldHVybiBhZG9wdFJlZihuZXcgSlNF
cnJvckhhbmRsZXIobGlzdGVuZXIsIHdyYXBwZXIsIGlzQXR0cmlidXRlLCBpc29sYXRlZFdvcmxk
KSk7CiAgICAgfQogCi0gICAgdmlydHVhbCB+SlNXb3JrZXJDb250ZXh0RXJyb3JIYW5kbGVyKCk7
CisgICAgdmlydHVhbCB+SlNFcnJvckhhbmRsZXIoKTsKIAogcHJpdmF0ZToKLSAgICBKU1dvcmtl
ckNvbnRleHRFcnJvckhhbmRsZXIoSlNDOjpKU09iamVjdCogZnVuY3Rpb24sIEpTQzo6SlNPYmpl
Y3QqIHdyYXBwZXIsIGJvb2wgaXNBdHRyaWJ1dGUsIERPTVdyYXBwZXJXb3JsZCogaXNvbGF0ZWRX
b3JsZCk7CisgICAgSlNFcnJvckhhbmRsZXIoSlNDOjpKU09iamVjdCogZnVuY3Rpb24sIEpTQzo6
SlNPYmplY3QqIHdyYXBwZXIsIGJvb2wgaXNBdHRyaWJ1dGUsIERPTVdyYXBwZXJXb3JsZCogaXNv
bGF0ZWRXb3JsZCk7CiAgICAgdmlydHVhbCB2b2lkIGhhbmRsZUV2ZW50KFNjcmlwdEV4ZWN1dGlv
bkNvbnRleHQqLCBFdmVudCopOwogfTsKIAogLy8gQ3JlYXRlcyBhIEpTIEV2ZW50TGlzdGVuZXIg
Zm9yICJvbmVycm9yIiBldmVudCBoYW5kbGVyIGluIHdvcmtlciBjb250ZXh0LiBJdCBoYXMgY3Vz
dG9tIGltcGxlbWVudGF0aW9uIGJlY2F1c2UKIC8vIHVubGlrZSBvdGhlciBldmVudCBsaXN0ZW5l
cnMgaXQgYWNjZXB0cyB0aHJlZSBwYXJhbWV0ZXJzLgotaW5saW5lIFBhc3NSZWZQdHI8SlNXb3Jr
ZXJDb250ZXh0RXJyb3JIYW5kbGVyPiBjcmVhdGVKU1dvcmtlckNvbnRleHRFcnJvckhhbmRsZXIo
SlNDOjpFeGVjU3RhdGUqIGV4ZWMsIEpTQzo6SlNWYWx1ZSBsaXN0ZW5lciwgSlNDOjpKU09iamVj
dCogd3JhcHBlcikKK2lubGluZSBQYXNzUmVmUHRyPEpTRXJyb3JIYW5kbGVyPiBjcmVhdGVKU0Vy
cm9ySGFuZGxlcihKU0M6OkV4ZWNTdGF0ZSogZXhlYywgSlNDOjpKU1ZhbHVlIGxpc3RlbmVyLCBK
U0M6OkpTT2JqZWN0KiB3cmFwcGVyKQogewogICAgIGlmICghbGlzdGVuZXIuaXNPYmplY3QoKSkK
ICAgICAgICAgcmV0dXJuIDA7CiAKLSAgICByZXR1cm4gSlNXb3JrZXJDb250ZXh0RXJyb3JIYW5k
bGVyOjpjcmVhdGUoYXNPYmplY3QobGlzdGVuZXIpLCB3cmFwcGVyLCB0cnVlLCBjdXJyZW50V29y
bGQoZXhlYykpOworICAgIHJldHVybiBKU0Vycm9ySGFuZGxlcjo6Y3JlYXRlKGFzT2JqZWN0KGxp
c3RlbmVyKSwgd3JhcHBlciwgdHJ1ZSwgY3VycmVudFdvcmxkKGV4ZWMpKTsKIH0KIAogfSAvLyBu
YW1lc3BhY2UgV2ViQ29yZQogCi0jZW5kaWYgLy8gSlNXb3JrZXJDb250ZXh0RXJyb3JIYW5kbGVy
X2gKKyNlbmRpZiAvLyBKU0Vycm9ySGFuZGxlcl9oCmRpZmYgLS1naXQgYS9XZWJDb3JlL2JpbmRp
bmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtIGIvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRz
L0NvZGVHZW5lcmF0b3JKUy5wbQppbmRleCA4MDM1NDJlNjlkODJkY2JkZjUyNzhjZGU3MmQwNmI1
NTU0MmI3MTE2Li45N2RmNGEwNmIyMjk1ODM4OTMyNmZhYWIwYzQzNDQ2MDY2Njc4ZjkxIDEwMDY0
NAotLS0gYS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtCisrKyBi
L1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG0KQEAgLTE3MTQsOSAr
MTcxNCw5IEBAIHN1YiBHZW5lcmF0ZUltcGxlbWVudGF0aW9uCiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgIEpTRE9NR2xvYmFsT2JqZWN0KiBn
bG9iYWxPYmplY3QgPSBjYXN0ZWRUaGlzLT5nbG9iYWxPYmplY3QoKTtcbiIpOwogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwdXNoKEBp
bXBsQ29udGVudCwgIiAgICAkaW1wbENsYXNzTmFtZSogaW1wID0gc3RhdGljX2Nhc3Q8JGltcGxD
bGFzc05hbWUqPihzdGF0aWNfY2FzdDwkY2xhc3NOYW1lKj4odGhpc09iamVjdCktPmltcGwoKSk7
XG4iKTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoJGludGVyZmFjZU5hbWUgZXEg
IldvcmtlckNvbnRleHQiIGFuZCAkbmFtZSBlcSAib25lcnJvciIpIHsKLSAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgJGltcGxJbmNsdWRlc3siSlNXb3JrZXJDb250ZXh0RXJyb3JIYW5k
bGVyLmgifSA9IDE7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHB1c2goQGltcGxD
b250ZW50LCAiICAgIGltcC0+c2V0JGltcGxTZXR0ZXJGdW5jdGlvbk5hbWUoY3JlYXRlSlNXb3Jr
ZXJDb250ZXh0RXJyb3JIYW5kbGVyKGV4ZWMsIHZhbHVlLCB0aGlzT2JqZWN0KSk7XG4iKTsKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoKCgkaW50ZXJmYWNlTmFtZSBlcSAiRE9NV2lu
ZG93Iikgb3IgKCRpbnRlcmZhY2VOYW1lIGVxICJXb3JrZXJDb250ZXh0IikpIGFuZCAkbmFtZSBl
cSAib25lcnJvciIpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJGltcGxJbmNs
dWRlc3siSlNFcnJvckhhbmRsZXIuaCJ9ID0gMTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgaW1wLT5zZXQkaW1wbFNldHRlckZ1bmN0aW9u
TmFtZShjcmVhdGVKU0Vycm9ySGFuZGxlcihleGVjLCB2YWx1ZSwgdGhpc09iamVjdCkpO1xuIik7
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsIEdlbmVyYXRlQXR0cmlidXRlRXZlbnRM
aXN0ZW5lckNhbGwoJGNsYXNzTmFtZSwgJGltcGxTZXR0ZXJGdW5jdGlvbk5hbWUsICR3aW5kb3dF
dmVudExpc3RlbmVyKSk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQpkaWZmIC0tZ2l0
IGEvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JWOC5wbSBiL1dlYkNvcmUv
YmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9yVjgucG0KaW5kZXggMzM1M2YwZjVlNjc0MjYx
NWNjM2UwYTM5ZWNmYjQyZTMzNzFlNzM1NC4uYTYxZTQ5YWQ3MTEzZGMxMzI0OGM3ZDhhYjA3ZTBm
ODE2ODhmNTIzZSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5l
cmF0b3JWOC5wbQorKysgYi9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvclY4
LnBtCkBAIC05OTUsNiArOTk1LDEwIEBAIEVORAogICAgICAgICAgICAgICAgICRpbXBsSW5jbHVk
ZXN7IlY4RXZlbnRMaXN0ZW5lckxpc3QuaCJ9ID0gMTsKICAgICAgICAgICAgICAgICAkaW1wbElu
Y2x1ZGVzeyJWOFdvcmtlckNvbnRleHRFcnJvckhhbmRsZXIuaCJ9ID0gMTsKICAgICAgICAgICAg
ICAgICBwdXNoKEBpbXBsQ29udGVudERlY2xzLCAiICAgIGltcC0+c2V0JGltcGxTZXR0ZXJGdW5j
dGlvbk5hbWUoVjhFdmVudExpc3RlbmVyTGlzdDo6ZmluZE9yQ3JlYXRlV3JhcHBlcjxWOFdvcmtl
ckNvbnRleHRFcnJvckhhbmRsZXI+KHZhbHVlLCB0cnVlKSIpOworICAgICAgICAgICAgfSBlbHNp
ZiAoJGludGVyZmFjZU5hbWUgZXEgIkRPTVdpbmRvdyIgYW5kICRhdHRyaWJ1dGUtPnNpZ25hdHVy
ZS0+bmFtZSBlcSAib25lcnJvciIpIHsKKyAgICAgICAgICAgICAgICAkaW1wbEluY2x1ZGVzeyJW
OEV2ZW50TGlzdGVuZXJMaXN0LmgifSA9IDE7CisgICAgICAgICAgICAgICAgJGltcGxJbmNsdWRl
c3siVjhXaW5kb3dFcnJvckhhbmRsZXIuaCJ9ID0gMTsKKyAgICAgICAgICAgICAgICBwdXNoKEBp
bXBsQ29udGVudERlY2xzLCAiICAgIGltcC0+c2V0JGltcGxTZXR0ZXJGdW5jdGlvbk5hbWUoVjhF
dmVudExpc3RlbmVyTGlzdDo6ZmluZE9yQ3JlYXRlV3JhcHBlcjxWOFdpbmRvd0Vycm9ySGFuZGxl
cj4odmFsdWUsIHRydWUpIik7CiAgICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAg
IHB1c2goQGltcGxDb250ZW50RGVjbHMsICIgICAgaW1wLT5zZXQkaW1wbFNldHRlckZ1bmN0aW9u
TmFtZShWOERPTVdyYXBwZXI6OmdldEV2ZW50TGlzdGVuZXIodmFsdWUsIHRydWUsIExpc3RlbmVy
RmluZE9yQ3JlYXRlKSIpOwogICAgICAgICAgICAgfQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9iaW5k
aW5ncy92OC9ET01XcmFwcGVyV29ybGQuY3BwIGIvV2ViQ29yZS9iaW5kaW5ncy92OC9ET01XcmFw
cGVyV29ybGQuY3BwCmluZGV4IDFlOTQyOWY5ZDNlNThiMWRkN2I5Y2ZiYmIyNTg4OTBkMTQ0MTdh
NGEuLjViZTNjMDg4MjExMzhiNmQ2YTVkMTA5ZjM2MzdmZGZlYzI0ODQxMmQgMTAwNjQ0Ci0tLSBh
L1dlYkNvcmUvYmluZGluZ3MvdjgvRE9NV3JhcHBlcldvcmxkLmNwcAorKysgYi9XZWJDb3JlL2Jp
bmRpbmdzL3Y4L0RPTVdyYXBwZXJXb3JsZC5jcHAKQEAgLTMxLDYgKzMxLDExIEBACiAjaW5jbHVk
ZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiRE9NV3JhcHBlcldvcmxkLmgiCiAKKyNpbmNsdWRlICJG
cmFtZS5oIgorI2luY2x1ZGUgIlNjcmlwdEV4ZWN1dGlvbkNvbnRleHQuaCIKKyNpbmNsdWRlICJW
OElzb2xhdGVkQ29udGV4dC5oIgorI2luY2x1ZGUgIlY4UHJveHkuaCIKKyNpbmNsdWRlICJXb3Js
ZENvbnRleHRIYW5kbGUuaCIKICNpbmNsdWRlIDx3dGYvU3RkTGliRXh0cmFzLmg+CiAjaW5jbHVk
ZSA8d3RmL1RocmVhZGluZy5oPgogCkBAIC00OCw0ICs1MywzMCBAQCBET01XcmFwcGVyV29ybGQq
IG1haW5UaHJlYWROb3JtYWxXb3JsZCgpCiAgICAgcmV0dXJuIGNhY2hlZE5vcm1hbFdvcmxkLmdl
dCgpOwogfQogCitET01XcmFwcGVyV29ybGQqIGVudGVyZWRDb250ZXh0V29ybGQoKQoreworICAg
IHY4OjpIYW5kbGVTY29wZSBoYW5kbGVTY29wZTsKKyAgICB2ODo6SGFuZGxlPHY4OjpDb250ZXh0
PiBlbnRlcmVkQ29udGV4dCA9IHY4OjpDb250ZXh0OjpHZXRFbnRlcmVkKCk7CisgICAgaWYgKGVu
dGVyZWRDb250ZXh0LklzRW1wdHkoKSkKKyAgICAgICAgcmV0dXJuIDA7CisgICAgRnJhbWUqIGZy
YW1lID0gVjhQcm94eTo6cmV0cmlldmVGcmFtZShlbnRlcmVkQ29udGV4dCk7CisgICAgVjhQcm94
eSogcHJveHkgPSBWOFByb3h5OjpyZXRyaWV2ZShmcmFtZSk7CisgICAgaWYgKHByb3h5LT5tYWlu
V29ybGRDb250ZXh0KCkgPT0gZW50ZXJlZENvbnRleHQpCisgICAgICAgIHJldHVybiBtYWluVGhy
ZWFkTm9ybWFsV29ybGQoKTsKKyAgICByZXR1cm4gVjhJc29sYXRlZENvbnRleHQ6OmdldEVudGVy
ZWQoKS0+d29ybGQoKTsKK30KKworRE9NV3JhcHBlcldvcmxkKiBjb250ZXh0V29ybGQoU2NyaXB0
RXhlY3V0aW9uQ29udGV4dCogc2NyaXB0RXhlY3V0aW9uQ29udGV4dCwgY29uc3QgV29ybGRDb250
ZXh0SGFuZGxlJiBjb250ZXh0SGFuZGxlKQoreworICAgIEFTU0VSVChzY3JpcHRFeGVjdXRpb25D
b250ZXh0LT5pc0RvY3VtZW50KCkpOworICAgIGlmIChWOFByb3h5KiBwcm94eSA9IFY4UHJveHk6
OnJldHJpZXZlKHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQpKSB7CisgICAgICAgIHY4OjpIYW5kbGVT
Y29wZSBoYW5kbGVTY29wZTsKKyAgICAgICAgdjg6OkxvY2FsPHY4OjpDb250ZXh0PiBjb250ZXh0
ID0gY29udGV4dEhhbmRsZS5hZGp1c3RlZENvbnRleHQocHJveHkpOworICAgICAgICB2ODo6Q29u
dGV4dDo6U2NvcGUgY29udGV4dFNjb3BlKGNvbnRleHQpOworICAgICAgICByZXR1cm4gZW50ZXJl
ZENvbnRleHRXb3JsZCgpOworICAgIH0KKyAgICByZXR1cm4gMDsKK30KKworCiB9IC8vIG5hbWVz
cGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9XZWJDb3JlL2JpbmRpbmdzL3Y4L0RPTVdyYXBwZXJX
b3JsZC5oIGIvV2ViQ29yZS9iaW5kaW5ncy92OC9ET01XcmFwcGVyV29ybGQuaAppbmRleCAyYTlk
ZjMwY2QyZDc2MTY0NGQzYThmZGY3MWE4MjQ4MzNjOGY2NjA5Li4yZTZkYmI2NTU2YTIyZWJlNDE1
NTg4YmZlYzU3YjMwZWNmYmQxMTY1IDEwMDY0NAotLS0gYS9XZWJDb3JlL2JpbmRpbmdzL3Y4L0RP
TVdyYXBwZXJXb3JsZC5oCisrKyBiL1dlYkNvcmUvYmluZGluZ3MvdjgvRE9NV3JhcHBlcldvcmxk
LmgKQEAgLTM3LDYgKzM3LDkgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCitjbGFzcyBTY3Jp
cHRFeGVjdXRpb25Db250ZXh0OworY2xhc3MgV29ybGRDb250ZXh0SGFuZGxlOworCiAvLyBUaGlz
IGNsYXNzIHJlcHJlc2VudCBhIGNvbGxlY3Rpb24gb2YgRE9NIHdyYXBwZXJzIGZvciBhIHNwZWNp
ZmljIHdvcmxkLgogLy8gVGhlIGJhc2UgY2xhc3MgaXMgcHJldHR5IGJvcmluZyBiZWNhdXNlIHRo
ZSB3cmFwcGVycyBhcmUgYWN0dWFsbHkgc3RvcmVkCiAvLyBzdGF0aWNhbGx5IGluIFY4RE9NTWFw
IGFuZCBnYXJiYWdlIGNvbGxlY3RlZCBieSBWOCBpdHNlbGYuCkBAIC01MSw2ICs1NCw5IEBAIHBy
b3RlY3RlZDoKIAogRE9NV3JhcHBlcldvcmxkKiBtYWluVGhyZWFkTm9ybWFsV29ybGQoKTsKIAor
RE9NV3JhcHBlcldvcmxkKiBlbnRlcmVkQ29udGV4dFdvcmxkKCk7CitET01XcmFwcGVyV29ybGQq
IGNvbnRleHRXb3JsZChTY3JpcHRFeGVjdXRpb25Db250ZXh0KiwgY29uc3QgV29ybGRDb250ZXh0
SGFuZGxlJik7CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAogI2VuZGlmIC8vIERPTVdyYXBw
ZXJXb3JsZF9oCmRpZmYgLS1naXQgYS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1Y4Q29uc29sZU1lc3Nh
Z2UuY3BwIGIvV2ViQ29yZS9iaW5kaW5ncy92OC9WOENvbnNvbGVNZXNzYWdlLmNwcAppbmRleCA4
YjZiYjE3ODZhODVjNzliY2YwMmZkZGU4NTQxNjUxN2QxZDFhODczLi40Zjg0MmUzNDRkYjc3NjM2
OWE3OTY5NTllY2NkNzhjOTkwODk2NGNhIDEwMDY0NAotLS0gYS9XZWJDb3JlL2JpbmRpbmdzL3Y4
L1Y4Q29uc29sZU1lc3NhZ2UuY3BwCisrKyBiL1dlYkNvcmUvYmluZGluZ3MvdjgvVjhDb25zb2xl
TWVzc2FnZS5jcHAKQEAgLTUzLDcgKzUzLDE0IEBAIFY4Q29uc29sZU1lc3NhZ2U6OlY4Q29uc29s
ZU1lc3NhZ2UoY29uc3QgU3RyaW5nJiBzdHJpbmcsIGNvbnN0IFN0cmluZyYgc291cmNlSUQsCiAK
IHZvaWQgVjhDb25zb2xlTWVzc2FnZTo6ZGlzcGF0Y2hOb3coUGFnZSogcGFnZSkKIHsKLSAgICBk
aXNwYXRjaE5vdyhwYWdlLCAwKTsKKyAgICBBU1NFUlQocGFnZSk7CisKKyAgICAvLyBQcm9jZXNz
IGFueSBkZWxheWVkIG1lc3NhZ2VzIHRvIG1ha2Ugc3VyZSB0aGF0IG1lc3NhZ2VzCisgICAgLy8g
YXBwZWFyIGluIHRoZSByaWdodCBvcmRlciBpbiB0aGUgY29uc29sZS4KKyAgICBwcm9jZXNzRGVs
YXllZCgpOworCisgICAgQ29uc29sZSogY29uc29sZSA9IHBhZ2UtPm1haW5GcmFtZSgpLT5kb21X
aW5kb3coKS0+Y29uc29sZSgpOworICAgIGNvbnNvbGUtPmFkZE1lc3NhZ2UoSlNNZXNzYWdlU291
cmNlLCBMb2dNZXNzYWdlVHlwZSwgRXJyb3JNZXNzYWdlTGV2ZWwsIG1fc3RyaW5nLCBtX2xpbmVO
dW1iZXIsIG1fc291cmNlSUQpOwogfQogCiB2b2lkIFY4Q29uc29sZU1lc3NhZ2U6OmRpc3BhdGNo
TGF0ZXIoKQpAQCAtMTA0LDggKzExMSw4IEBAIHZvaWQgVjhDb25zb2xlTWVzc2FnZTo6aGFuZGxl
cih2ODo6SGFuZGxlPHY4OjpNZXNzYWdlPiBtZXNzYWdlLCB2ODo6SGFuZGxlPHY4OjpWCiAgICAg
RnJhbWUqIGZyYW1lID0gVjhQcm94eTo6cmV0cmlldmVGcmFtZUZvckVudGVyZWRDb250ZXh0KCk7
CiAgICAgaWYgKCFmcmFtZSkKICAgICAgICAgcmV0dXJuOwotICAgIFBhZ2UqIHBhZ2UgPSBmcmFt
ZS0+cGFnZSgpOwotICAgIGlmICghcGFnZSkKKyAgICBEb2N1bWVudCogZG9jdW1lbnQgPSBmcmFt
ZS0+ZG9jdW1lbnQoKTsKKyAgICBpZiAoIWRvY3VtZW50KQogICAgICAgICByZXR1cm47CiAKICAg
ICB2ODo6SGFuZGxlPHY4OjpTdHJpbmc+IGVycm9yTWVzc2FnZVN0cmluZyA9IG1lc3NhZ2UtPkdl
dCgpOwpAQCAtMTI0LDIxICsxMzEsOSBAQCB2b2lkIFY4Q29uc29sZU1lc3NhZ2U6OmhhbmRsZXIo
djg6OkhhbmRsZTx2ODo6TWVzc2FnZT4gbWVzc2FnZSwgdjg6OkhhbmRsZTx2ODo6VgogICAgIHY4
OjpIYW5kbGU8djg6OlZhbHVlPiByZXNvdXJjZU5hbWUgPSBtZXNzYWdlLT5HZXRTY3JpcHRSZXNv
dXJjZU5hbWUoKTsKICAgICBib29sIHVzZVVSTCA9IHJlc291cmNlTmFtZS5Jc0VtcHR5KCkgfHwg
IXJlc291cmNlTmFtZS0+SXNTdHJpbmcoKTsKICAgICBTdHJpbmcgcmVzb3VyY2VOYW1lU3RyaW5n
ID0gdXNlVVJMID8gZnJhbWUtPmRvY3VtZW50KCktPnVybCgpIDogdG9XZWJDb3JlU3RyaW5nKHJl
c291cmNlTmFtZSk7Ci0gICAgVjhDb25zb2xlTWVzc2FnZSBjb25zb2xlTWVzc2FnZShlcnJvck1l
c3NhZ2UsIHJlc291cmNlTmFtZVN0cmluZywgbWVzc2FnZS0+R2V0TGluZU51bWJlcigpKTsKLSAg
ICBjb25zb2xlTWVzc2FnZS5kaXNwYXRjaE5vdyhwYWdlLCBjYWxsU3RhY2suZ2V0KCkpOwotfQot
Ci12b2lkIFY4Q29uc29sZU1lc3NhZ2U6OmRpc3BhdGNoTm93KFBhZ2UqIHBhZ2UsIFNjcmlwdENh
bGxTdGFjayogY2FsbFN0YWNrKQotewotICAgIEFTU0VSVChwYWdlKTsKIAotICAgIC8vIFByb2Nl
c3MgYW55IGRlbGF5ZWQgbWVzc2FnZXMgdG8gbWFrZSBzdXJlIHRoYXQgbWVzc2FnZXMKLSAgICAv
LyBhcHBlYXIgaW4gdGhlIHJpZ2h0IG9yZGVyIGluIHRoZSBjb25zb2xlLgogICAgIHByb2Nlc3NE
ZWxheWVkKCk7Ci0KLSAgICBDb25zb2xlKiBjb25zb2xlID0gcGFnZS0+bWFpbkZyYW1lKCktPmRv
bVdpbmRvdygpLT5jb25zb2xlKCk7Ci0gICAgTWVzc2FnZVR5cGUgbWVzc2FnZVR5cGUgPSBjYWxs
U3RhY2sgPyBVbmNhdWdodEV4Y2VwdGlvbk1lc3NhZ2VUeXBlIDogTG9nTWVzc2FnZVR5cGU7Ci0g
ICAgY29uc29sZS0+YWRkTWVzc2FnZShKU01lc3NhZ2VTb3VyY2UsIG1lc3NhZ2VUeXBlLCBFcnJv
ck1lc3NhZ2VMZXZlbCwgbV9zdHJpbmcsIG1fbGluZU51bWJlciwgbV9zb3VyY2VJRCwgY2FsbFN0
YWNrKTsKKyAgICBkb2N1bWVudC0+cmVwb3J0RXhjZXB0aW9uKGVudGVyZWRDb250ZXh0V29ybGQo
KSwgZXJyb3JNZXNzYWdlLCBtZXNzYWdlLT5HZXRMaW5lTnVtYmVyKCksIHJlc291cmNlTmFtZVN0
cmluZywgY2FsbFN0YWNrLnJlbGVhc2UoKSk7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUK
ZGlmZiAtLWdpdCBhL1dlYkNvcmUvYmluZGluZ3MvdjgvVjhDb25zb2xlTWVzc2FnZS5oIGIvV2Vi
Q29yZS9iaW5kaW5ncy92OC9WOENvbnNvbGVNZXNzYWdlLmgKaW5kZXggMzg3YjVlZTM0YjU2OGU2
ODNmNGNlN2VlYWVmMTRjMjZiMTU2N2U1My4uZTJmYmNhN2RmMzYyMzI5OGYyNDUwNTUyMDExNThl
OTU2Nzk2YWYxOSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9iaW5kaW5ncy92OC9WOENvbnNvbGVNZXNz
YWdlLmgKKysrIGIvV2ViQ29yZS9iaW5kaW5ncy92OC9WOENvbnNvbGVNZXNzYWdlLmgKQEAgLTM3
LDU2ICszNyw1NSBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLSAgICBjbGFzcyBQYWdlOwot
ICAgIGNsYXNzIFNjcmlwdENhbGxTdGFjazsKK2NsYXNzIEZyYW1lOworY2xhc3MgUGFnZTsKK2Ns
YXNzIFNjcmlwdENhbGxTdGFjazsKIAotICAgIC8vIFY4Q29uc29sZU1lc3NhZ2UgZW5jYXBzdWxh
dGVzIGV2ZXJ5dGhpbmcgbmVlZGVkIHRvCi0gICAgLy8gbG9nIG1lc3NhZ2VzIG9yaWdpbmF0aW5n
IGZyb20gSmF2YVNjcmlwdCB0byB0aGUgY29uc29sZS4KLSAgICBjbGFzcyBWOENvbnNvbGVNZXNz
YWdlIHsKLSAgICBwdWJsaWM6Ci0gICAgICAgIFY4Q29uc29sZU1lc3NhZ2UoY29uc3QgU3RyaW5n
JiBzdHJpbmcsIGNvbnN0IFN0cmluZyYgc291cmNlSUQsIHVuc2lnbmVkIGxpbmVOdW1iZXIpOwot
Ci0gICAgICAgIC8vIEFkZCBhIG1lc3NhZ2UgdG8gdGhlIGNvbnNvbGUuIE1heSBlbmQgdXAgY2Fs
bGluZyBKYXZhU2NyaXB0IGNvZGUKLSAgICAgICAgLy8gaW5kaXJlY3RseSB0aHJvdWdoIHRoZSBp
bnNwZWN0b3Igc28gb25seSBjYWxsIHRoaXMgZnVuY3Rpb24gd2hlbgotICAgICAgICAvLyBpdCBp
cyBzYWZlIHRvIGRvIGFsbG9jYXRpb25zLgotICAgICAgICB2b2lkIGRpc3BhdGNoTm93KFBhZ2Uq
KTsKKy8vIFY4Q29uc29sZU1lc3NhZ2UgZW5jYXBzdWxhdGVzIGV2ZXJ5dGhpbmcgbmVlZGVkIHRv
CisvLyBsb2cgbWVzc2FnZXMgb3JpZ2luYXRpbmcgZnJvbSBKYXZhU2NyaXB0IHRvIHRoZSBjb25z
b2xlLgorY2xhc3MgVjhDb25zb2xlTWVzc2FnZSB7CitwdWJsaWM6CisgICAgVjhDb25zb2xlTWVz
c2FnZShjb25zdCBTdHJpbmcmIHN0cmluZywgY29uc3QgU3RyaW5nJiBzb3VyY2VJRCwgdW5zaWdu
ZWQgbGluZU51bWJlcik7CiAKLSAgICAgICAgLy8gQWRkIGEgbWVzc2FnZSB0byB0aGUgY29uc29s
ZSBidXQgZGVsYXkgdGhlIHJlcG9ydGluZyB1bnRpbCBpdAotICAgICAgICAvLyBpcyBzYWZlIHRv
IGRvIHNvOiBFaXRoZXIgd2hlbiB3ZSBsZWF2ZSBKYXZhU2NyaXB0IGV4ZWN1dGlvbiBvcgotICAg
ICAgICAvLyB3aGVuIGFkZGluZyBvdGhlciBjb25zb2xlIG1lc3NhZ2VzLiBUaGUgcHJpbWFyeSBw
dXJwb3NlIG9mIHRoaXMKLSAgICAgICAgLy8gbWV0aG9kIGlzIHRvIGF2b2lkIGNhbGxpbmcgaW50
byBWOCB0byBoYW5kbGUgY29uc29sZSBtZXNzYWdlcwotICAgICAgICAvLyB3aGVuIHRoZSBWTSBp
cyBpbiBhIHN0YXRlIHRoYXQgZG9lcyBub3Qgc3VwcG9ydCBHQ3Mgb3IgYWxsb2NhdGlvbnMuCi0g
ICAgICAgIC8vIERlbGF5ZWQgbWVzc2FnZXMgYXJlIGFsd2F5cyByZXBvcnRlZCBpbiB0aGUgcGFn
ZSBjb3JyZXNwb25kaW5nCi0gICAgICAgIC8vIHRvIHRoZSBhY3RpdmUgY29udGV4dC4KLSAgICAg
ICAgdm9pZCBkaXNwYXRjaExhdGVyKCk7CisgICAgLy8gQWRkIGEgbWVzc2FnZSB0byB0aGUgY29u
c29sZS4gTWF5IGVuZCB1cCBjYWxsaW5nIEphdmFTY3JpcHQgY29kZQorICAgIC8vIGluZGlyZWN0
bHkgdGhyb3VnaCB0aGUgaW5zcGVjdG9yIHNvIG9ubHkgY2FsbCB0aGlzIGZ1bmN0aW9uIHdoZW4K
KyAgICAvLyBpdCBpcyBzYWZlIHRvIGRvIGFsbG9jYXRpb25zLgorICAgIHZvaWQgZGlzcGF0Y2hO
b3coUGFnZSopOwogCi0gICAgICAgIC8vIFByb2Nlc3MgYW55IGRlbGF5ZWQgbWVzc2FnZXMuIE1h
eSBlbmQgdXAgY2FsbGluZyBKYXZhU2NyaXB0IGNvZGUKLSAgICAgICAgLy8gaW5kaXJlY3RseSB0
aHJvdWdoIHRoZSBpbnNwZWN0b3Igc28gb25seSBjYWxsIHRoaXMgZnVuY3Rpb24gd2hlbgotICAg
ICAgICAvLyBpdCBpcyBzYWZlIHRvIGRvIGFsbG9jYXRpb25zLgotICAgICAgICBzdGF0aWMgdm9p
ZCBwcm9jZXNzRGVsYXllZCgpOworICAgIC8vIEFkZCBhIG1lc3NhZ2UgdG8gdGhlIGNvbnNvbGUg
YnV0IGRlbGF5IHRoZSByZXBvcnRpbmcgdW50aWwgaXQKKyAgICAvLyBpcyBzYWZlIHRvIGRvIHNv
OiBFaXRoZXIgd2hlbiB3ZSBsZWF2ZSBKYXZhU2NyaXB0IGV4ZWN1dGlvbiBvcgorICAgIC8vIHdo
ZW4gYWRkaW5nIG90aGVyIGNvbnNvbGUgbWVzc2FnZXMuIFRoZSBwcmltYXJ5IHB1cnBvc2Ugb2Yg
dGhpcworICAgIC8vIG1ldGhvZCBpcyB0byBhdm9pZCBjYWxsaW5nIGludG8gVjggdG8gaGFuZGxl
IGNvbnNvbGUgbWVzc2FnZXMKKyAgICAvLyB3aGVuIHRoZSBWTSBpcyBpbiBhIHN0YXRlIHRoYXQg
ZG9lcyBub3Qgc3VwcG9ydCBHQ3Mgb3IgYWxsb2NhdGlvbnMuCisgICAgLy8gRGVsYXllZCBtZXNz
YWdlcyBhcmUgYWx3YXlzIHJlcG9ydGVkIGluIHRoZSBwYWdlIGNvcnJlc3BvbmRpbmcKKyAgICAv
LyB0byB0aGUgYWN0aXZlIGNvbnRleHQuCisgICAgdm9pZCBkaXNwYXRjaExhdGVyKCk7CiAKLSAg
ICAgICAgLy8gQ29udmVuaWVuY2UgY2xhc3MgZm9yIGVuc3VyaW5nIHRoYXQgZGVsYXllZCBtZXNz
YWdlcyBpbiB0aGUKLSAgICAgICAgLy8gQ29uc29sZU1lc3NhZ2VNYW5hZ2VyIGFyZSBwcm9jZXNz
ZWQgcXVpY2tseS4KLSAgICAgICAgY2xhc3MgU2NvcGUgewotICAgICAgICBwdWJsaWM6Ci0gICAg
ICAgICAgICBTY29wZSgpIHsgVjhDb25zb2xlTWVzc2FnZTo6cHJvY2Vzc0RlbGF5ZWQoKTsgfQot
ICAgICAgICAgICAgflNjb3BlKCkgeyBWOENvbnNvbGVNZXNzYWdlOjpwcm9jZXNzRGVsYXllZCgp
OyB9Ci0gICAgICAgIH07CisgICAgLy8gUHJvY2VzcyBhbnkgZGVsYXllZCBtZXNzYWdlcy4gTWF5
IGVuZCB1cCBjYWxsaW5nIEphdmFTY3JpcHQgY29kZQorICAgIC8vIGluZGlyZWN0bHkgdGhyb3Vn
aCB0aGUgaW5zcGVjdG9yIHNvIG9ubHkgY2FsbCB0aGlzIGZ1bmN0aW9uIHdoZW4KKyAgICAvLyBp
dCBpcyBzYWZlIHRvIGRvIGFsbG9jYXRpb25zLgorICAgIHN0YXRpYyB2b2lkIHByb2Nlc3NEZWxh
eWVkKCk7CiAKLSAgICAgICAgLy8gQ2FsbGJhY2sgZnJvbSBWOC4KLSAgICAgICAgc3RhdGljIHZv
aWQgaGFuZGxlcih2ODo6SGFuZGxlPHY4OjpNZXNzYWdlPiwgdjg6OkhhbmRsZTx2ODo6VmFsdWU+
IGRhdGEpOworICAgIC8vIENvbnZlbmllbmNlIGNsYXNzIGZvciBlbnN1cmluZyB0aGF0IGRlbGF5
ZWQgbWVzc2FnZXMgaW4gdGhlCisgICAgLy8gQ29uc29sZU1lc3NhZ2VNYW5hZ2VyIGFyZSBwcm9j
ZXNzZWQgcXVpY2tseS4KKyAgICBjbGFzcyBTY29wZSB7CisgICAgcHVibGljOgorICAgICAgICBT
Y29wZSgpIHsgVjhDb25zb2xlTWVzc2FnZTo6cHJvY2Vzc0RlbGF5ZWQoKTsgfQorICAgICAgICB+
U2NvcGUoKSB7IFY4Q29uc29sZU1lc3NhZ2U6OnByb2Nlc3NEZWxheWVkKCk7IH0KKyAgICB9Owog
Ci0gICAgcHJpdmF0ZToKLSAgICAgICAgY29uc3QgU3RyaW5nIG1fc3RyaW5nOwotICAgICAgICBj
b25zdCBTdHJpbmcgbV9zb3VyY2VJRDsKLSAgICAgICAgY29uc3QgdW5zaWduZWQgbV9saW5lTnVt
YmVyOworICAgIC8vIENhbGxiYWNrIGZyb20gVjguCisgICAgc3RhdGljIHZvaWQgaGFuZGxlcih2
ODo6SGFuZGxlPHY4OjpNZXNzYWdlPiwgdjg6OkhhbmRsZTx2ODo6VmFsdWU+IGRhdGEpOwogCi0g
ICAgICAgIHZvaWQgZGlzcGF0Y2hOb3coUGFnZSosIFNjcmlwdENhbGxTdGFjayopOworcHJpdmF0
ZToKKyAgICBjb25zdCBTdHJpbmcgbV9zdHJpbmc7CisgICAgY29uc3QgU3RyaW5nIG1fc291cmNl
SUQ7CisgICAgY29uc3QgdW5zaWduZWQgbV9saW5lTnVtYmVyOwogCi0gICAgICAgIC8vIEFsbCBk
ZWxheWVkIG1lc3NhZ2VzIGFyZSBzdG9yZWQgaW4gdGhpcyB2ZWN0b3IuIElmIHRoZSB2ZWN0b3IK
LSAgICAgICAgLy8gaXMgMCwgdGhlcmUgYXJlIG5vIGRlbGF5ZWQgbWVzc2FnZXMuCi0gICAgICAg
IHN0YXRpYyBWZWN0b3I8VjhDb25zb2xlTWVzc2FnZT4qIG1fZGVsYXllZE1lc3NhZ2VzOwotICAg
IH07CisgICAgLy8gQWxsIGRlbGF5ZWQgbWVzc2FnZXMgYXJlIHN0b3JlZCBpbiB0aGlzIHZlY3Rv
ci4gSWYgdGhlIHZlY3RvcgorICAgIC8vIGlzIDAsIHRoZXJlIGFyZSBubyBkZWxheWVkIG1lc3Nh
Z2VzLgorICAgIHN0YXRpYyBWZWN0b3I8VjhDb25zb2xlTWVzc2FnZT4qIG1fZGVsYXllZE1lc3Nh
Z2VzOworfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCmRpZmYgLS1naXQgYS9XZWJDb3Jl
L2JpbmRpbmdzL2pzL0pTV29ya2VyQ29udGV4dEVycm9ySGFuZGxlci5oIGIvV2ViQ29yZS9iaW5k
aW5ncy92OC9WOFdpbmRvd0Vycm9ySGFuZGxlci5jcHAKc2ltaWxhcml0eSBpbmRleCA1MiUKY29w
eSBmcm9tIFdlYkNvcmUvYmluZGluZ3MvanMvSlNXb3JrZXJDb250ZXh0RXJyb3JIYW5kbGVyLmgK
Y29weSB0byBXZWJDb3JlL2JpbmRpbmdzL3Y4L1Y4V2luZG93RXJyb3JIYW5kbGVyLmNwcAppbmRl
eCBhMTg4Mjk5MDM4YzljZGZlNzIyODZiNzFmZWFlYjNhNDljMmEwZDgxLi4wNzQxMGJkNDc4NTVk
MTljNDEwNGRjYWRmNjZjNjM2ZTMzMGYyYTA1IDEwMDY0NAotLS0gYS9XZWJDb3JlL2JpbmRpbmdz
L2pzL0pTV29ya2VyQ29udGV4dEVycm9ySGFuZGxlci5oCisrKyBiL1dlYkNvcmUvYmluZGluZ3Mv
djgvVjhXaW5kb3dFcnJvckhhbmRsZXIuY3BwCkBAIC0yOCwzNyArMjgsMzkgQEAKICAqIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuCiAgKi8KIAotI2lmbmRlZiBKU1dvcmtlckNvbnRleHRFcnJvckhhbmRsZXJfaAotI2Rl
ZmluZSBKU1dvcmtlckNvbnRleHRFcnJvckhhbmRsZXJfaAorI2luY2x1ZGUgImNvbmZpZy5oIgog
Ci0jaW5jbHVkZSAiSlNFdmVudExpc3RlbmVyLmgiCisjaW5jbHVkZSAiVjhXaW5kb3dFcnJvckhh
bmRsZXIuaCIKIAotbmFtZXNwYWNlIFdlYkNvcmUgewotCi1jbGFzcyBKU1dvcmtlckNvbnRleHRF
cnJvckhhbmRsZXIgOiBwdWJsaWMgSlNFdmVudExpc3RlbmVyIHsKLXB1YmxpYzoKLSAgICBzdGF0
aWMgUGFzc1JlZlB0cjxKU1dvcmtlckNvbnRleHRFcnJvckhhbmRsZXI+IGNyZWF0ZShKU0M6OkpT
T2JqZWN0KiBsaXN0ZW5lciwgSlNDOjpKU09iamVjdCogd3JhcHBlciwgYm9vbCBpc0F0dHJpYnV0
ZSwgRE9NV3JhcHBlcldvcmxkKiBpc29sYXRlZFdvcmxkKQotICAgIHsKLSAgICAgICAgcmV0dXJu
IGFkb3B0UmVmKG5ldyBKU1dvcmtlckNvbnRleHRFcnJvckhhbmRsZXIobGlzdGVuZXIsIHdyYXBw
ZXIsIGlzQXR0cmlidXRlLCBpc29sYXRlZFdvcmxkKSk7Ci0gICAgfQorI2luY2x1ZGUgIkRPTVdy
YXBwZXJXb3JsZC5oIgorI2luY2x1ZGUgIkVycm9yRXZlbnQuaCIKKyNpbmNsdWRlICJWOEJpbmRp
bmcuaCIKIAotICAgIHZpcnR1YWwgfkpTV29ya2VyQ29udGV4dEVycm9ySGFuZGxlcigpOwotCi1w
cml2YXRlOgotICAgIEpTV29ya2VyQ29udGV4dEVycm9ySGFuZGxlcihKU0M6OkpTT2JqZWN0KiBm
dW5jdGlvbiwgSlNDOjpKU09iamVjdCogd3JhcHBlciwgYm9vbCBpc0F0dHJpYnV0ZSwgRE9NV3Jh
cHBlcldvcmxkKiBpc29sYXRlZFdvcmxkKTsKLSAgICB2aXJ0dWFsIHZvaWQgaGFuZGxlRXZlbnQo
U2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIEV2ZW50Kik7Ci19OworbmFtZXNwYWNlIFdlYkNvcmUg
ewogCi0vLyBDcmVhdGVzIGEgSlMgRXZlbnRMaXN0ZW5lciBmb3IgIm9uZXJyb3IiIGV2ZW50IGhh
bmRsZXIgaW4gd29ya2VyIGNvbnRleHQuIEl0IGhhcyBjdXN0b20gaW1wbGVtZW50YXRpb24gYmVj
YXVzZQotLy8gdW5saWtlIG90aGVyIGV2ZW50IGxpc3RlbmVycyBpdCBhY2NlcHRzIHRocmVlIHBh
cmFtZXRlcnMuCi1pbmxpbmUgUGFzc1JlZlB0cjxKU1dvcmtlckNvbnRleHRFcnJvckhhbmRsZXI+
IGNyZWF0ZUpTV29ya2VyQ29udGV4dEVycm9ySGFuZGxlcihKU0M6OkV4ZWNTdGF0ZSogZXhlYywg
SlNDOjpKU1ZhbHVlIGxpc3RlbmVyLCBKU0M6OkpTT2JqZWN0KiB3cmFwcGVyKQorVjhXaW5kb3dF
cnJvckhhbmRsZXI6OlY4V2luZG93RXJyb3JIYW5kbGVyKHY4OjpMb2NhbDx2ODo6T2JqZWN0PiBs
aXN0ZW5lciwgYm9vbCBpc0lubGluZSwgY29uc3QgV29ybGRDb250ZXh0SGFuZGxlJiB3b3JsZENv
bnRleHQpCisgICAgOiBWOEV2ZW50TGlzdGVuZXIobGlzdGVuZXIsIGlzSW5saW5lLCB3b3JsZENv
bnRleHQpCiB7Ci0gICAgaWYgKCFsaXN0ZW5lci5pc09iamVjdCgpKQotICAgICAgICByZXR1cm4g
MDsKK30KIAotICAgIHJldHVybiBKU1dvcmtlckNvbnRleHRFcnJvckhhbmRsZXI6OmNyZWF0ZShh
c09iamVjdChsaXN0ZW5lciksIHdyYXBwZXIsIHRydWUsIGN1cnJlbnRXb3JsZChleGVjKSk7Cit2
ODo6TG9jYWw8djg6OlZhbHVlPiBWOFdpbmRvd0Vycm9ySGFuZGxlcjo6Y2FsbExpc3RlbmVyRnVu
Y3Rpb24oU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCwgdjg6OkhhbmRsZTx2ODo6VmFs
dWU+IGpzRXZlbnQsIEV2ZW50KiBldmVudCkKK3sKKyAgICBBU1NFUlQoZXZlbnQtPmlzRXJyb3JF
dmVudCgpKTsKKyAgICBFcnJvckV2ZW50KiBlcnJvckV2ZW50ID0gc3RhdGljX2Nhc3Q8RXJyb3JF
dmVudCo+KGV2ZW50KTsKKyAgICAvLyBJdCBpcyBpbnNlY3VyZSB0byByZXBvcnQgZXhjZXB0aW9u
IGZyb20gb25lIHdvcmxkIHRvIGEgaGFuZGxlciBmcm9tIGFub3RoZXIuCisgICAgaWYgKGVycm9y
RXZlbnQtPndyYXBwZXJXb3JsZCgpICE9IGNvbnRleHRXb3JsZChjb250ZXh0LCB3b3JsZENvbnRl
eHQoKSkpCisgICAgICAgIHJldHVybiB2ODo6TG9jYWw8djg6OlZhbHVlPigpOworICAgIHY4OjpM
b2NhbDx2ODo6T2JqZWN0PiBsaXN0ZW5lciA9IGdldExpc3RlbmVyT2JqZWN0KGNvbnRleHQpOwor
ICAgIHY4OjpMb2NhbDx2ODo6VmFsdWU+IHJldHVyblZhbHVlOworICAgIGlmICghbGlzdGVuZXIu
SXNFbXB0eSgpICYmIGxpc3RlbmVyLT5Jc0Z1bmN0aW9uKCkpIHsKKyAgICAgICAgdjg6OkxvY2Fs
PHY4OjpGdW5jdGlvbj4gY2FsbEZ1bmN0aW9uID0gdjg6OkxvY2FsPHY4OjpGdW5jdGlvbj46OkNh
c3QobGlzdGVuZXIpOworICAgICAgICB2ODo6TG9jYWw8djg6Ok9iamVjdD4gdGhpc1ZhbHVlID0g
djg6OkNvbnRleHQ6OkdldEN1cnJlbnQoKS0+R2xvYmFsKCk7CisgICAgICAgIHY4OjpIYW5kbGU8
djg6OlZhbHVlPiBwYXJhbWV0ZXJzWzNdID0geyB2OFN0cmluZyhlcnJvckV2ZW50LT5tZXNzYWdl
KCkpLCB2OFN0cmluZyhlcnJvckV2ZW50LT5maWxlbmFtZSgpKSwgdjg6OkludGVnZXI6Ok5ldyhl
cnJvckV2ZW50LT5saW5lbm8oKSkgfTsKKyAgICAgICAgcmV0dXJuVmFsdWUgPSBjYWxsRnVuY3Rp
b24tPkNhbGwodGhpc1ZhbHVlLCAzLCBwYXJhbWV0ZXJzKTsKKyAgICAgICAgaWYgKCFyZXR1cm5W
YWx1ZS5Jc0VtcHR5KCkgJiYgcmV0dXJuVmFsdWUtPklzQm9vbGVhbigpICYmICFyZXR1cm5WYWx1
ZS0+Qm9vbGVhblZhbHVlKCkpCisgICAgICAgICAgICBldmVudC0+cHJldmVudERlZmF1bHQoKTsK
KyAgICB9CisgICAgcmV0dXJuIHJldHVyblZhbHVlOwogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJD
b3JlCi0KLSNlbmRpZiAvLyBKU1dvcmtlckNvbnRleHRFcnJvckhhbmRsZXJfaApkaWZmIC0tZ2l0
IGEvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1dvcmtlckNvbnRleHRFcnJvckhhbmRsZXIuaCBiL1dl
YkNvcmUvYmluZGluZ3MvdjgvVjhXaW5kb3dFcnJvckhhbmRsZXIuaApzaW1pbGFyaXR5IGluZGV4
IDU4JQpyZW5hbWUgZnJvbSBXZWJDb3JlL2JpbmRpbmdzL2pzL0pTV29ya2VyQ29udGV4dEVycm9y
SGFuZGxlci5oCnJlbmFtZSB0byBXZWJDb3JlL2JpbmRpbmdzL3Y4L1Y4V2luZG93RXJyb3JIYW5k
bGVyLmgKaW5kZXggYTE4ODI5OTAzOGM5Y2RmZTcyMjg2YjcxZmVhZWIzYTQ5YzJhMGQ4MS4uMTY3
Y2EwZDdkZjQ4NjFlMTE0ZjNhMmQ2NjMzYTc0MjEwYmY2OGY5YyAxMDA2NDQKLS0tIGEvV2ViQ29y
ZS9iaW5kaW5ncy9qcy9KU1dvcmtlckNvbnRleHRFcnJvckhhbmRsZXIuaAorKysgYi9XZWJDb3Jl
L2JpbmRpbmdzL3Y4L1Y4V2luZG93RXJyb3JIYW5kbGVyLmgKQEAgLTI4LDM3ICsyOCwyOCBAQAog
ICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4KICAqLwogCi0jaWZuZGVmIEpTV29ya2VyQ29udGV4dEVycm9ySGFuZGxl
cl9oCi0jZGVmaW5lIEpTV29ya2VyQ29udGV4dEVycm9ySGFuZGxlcl9oCisjaWZuZGVmIFY4V2lu
ZG93RXJyb3JIYW5kbGVyX2gKKyNkZWZpbmUgVjhXaW5kb3dFcnJvckhhbmRsZXJfaAogCi0jaW5j
bHVkZSAiSlNFdmVudExpc3RlbmVyLmgiCisjaW5jbHVkZSAiVjhDdXN0b21FdmVudExpc3RlbmVy
LmgiCisjaW5jbHVkZSA8djguaD4KKyNpbmNsdWRlIDx3dGYvUGFzc1JlZlB0ci5oPgogCiBuYW1l
c3BhY2UgV2ViQ29yZSB7CiAKLWNsYXNzIEpTV29ya2VyQ29udGV4dEVycm9ySGFuZGxlciA6IHB1
YmxpYyBKU0V2ZW50TGlzdGVuZXIgeworY2xhc3MgVjhXaW5kb3dFcnJvckhhbmRsZXIgOiBwdWJs
aWMgVjhFdmVudExpc3RlbmVyIHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxKU1dv
cmtlckNvbnRleHRFcnJvckhhbmRsZXI+IGNyZWF0ZShKU0M6OkpTT2JqZWN0KiBsaXN0ZW5lciwg
SlNDOjpKU09iamVjdCogd3JhcHBlciwgYm9vbCBpc0F0dHJpYnV0ZSwgRE9NV3JhcHBlcldvcmxk
KiBpc29sYXRlZFdvcmxkKQorICAgIHN0YXRpYyBQYXNzUmVmUHRyPFY4V2luZG93RXJyb3JIYW5k
bGVyPiBjcmVhdGUodjg6OkxvY2FsPHY4OjpPYmplY3Q+IGxpc3RlbmVyLCBib29sIGlzSW5saW5l
LCBjb25zdCBXb3JsZENvbnRleHRIYW5kbGUmIHdvcmxkQ29udGV4dCkKICAgICB7Ci0gICAgICAg
IHJldHVybiBhZG9wdFJlZihuZXcgSlNXb3JrZXJDb250ZXh0RXJyb3JIYW5kbGVyKGxpc3RlbmVy
LCB3cmFwcGVyLCBpc0F0dHJpYnV0ZSwgaXNvbGF0ZWRXb3JsZCkpOworICAgICAgICByZXR1cm4g
YWRvcHRSZWYobmV3IFY4V2luZG93RXJyb3JIYW5kbGVyKGxpc3RlbmVyLCBpc0lubGluZSwgd29y
bGRDb250ZXh0KSk7CiAgICAgfQogCi0gICAgdmlydHVhbCB+SlNXb3JrZXJDb250ZXh0RXJyb3JI
YW5kbGVyKCk7Ci0KIHByaXZhdGU6Ci0gICAgSlNXb3JrZXJDb250ZXh0RXJyb3JIYW5kbGVyKEpT
Qzo6SlNPYmplY3QqIGZ1bmN0aW9uLCBKU0M6OkpTT2JqZWN0KiB3cmFwcGVyLCBib29sIGlzQXR0
cmlidXRlLCBET01XcmFwcGVyV29ybGQqIGlzb2xhdGVkV29ybGQpOwotICAgIHZpcnR1YWwgdm9p
ZCBoYW5kbGVFdmVudChTY3JpcHRFeGVjdXRpb25Db250ZXh0KiwgRXZlbnQqKTsKLX07CisgICAg
VjhXaW5kb3dFcnJvckhhbmRsZXIodjg6OkxvY2FsPHY4OjpPYmplY3Q+IGxpc3RlbmVyLCBib29s
IGlzSW5saW5lLCBjb25zdCBXb3JsZENvbnRleHRIYW5kbGUmIHdvcmxkQ29udGV4dCk7CiAKLS8v
IENyZWF0ZXMgYSBKUyBFdmVudExpc3RlbmVyIGZvciAib25lcnJvciIgZXZlbnQgaGFuZGxlciBp
biB3b3JrZXIgY29udGV4dC4gSXQgaGFzIGN1c3RvbSBpbXBsZW1lbnRhdGlvbiBiZWNhdXNlCi0v
LyB1bmxpa2Ugb3RoZXIgZXZlbnQgbGlzdGVuZXJzIGl0IGFjY2VwdHMgdGhyZWUgcGFyYW1ldGVy
cy4KLWlubGluZSBQYXNzUmVmUHRyPEpTV29ya2VyQ29udGV4dEVycm9ySGFuZGxlcj4gY3JlYXRl
SlNXb3JrZXJDb250ZXh0RXJyb3JIYW5kbGVyKEpTQzo6RXhlY1N0YXRlKiBleGVjLCBKU0M6OkpT
VmFsdWUgbGlzdGVuZXIsIEpTQzo6SlNPYmplY3QqIHdyYXBwZXIpCi17Ci0gICAgaWYgKCFsaXN0
ZW5lci5pc09iamVjdCgpKQotICAgICAgICByZXR1cm4gMDsKLQotICAgIHJldHVybiBKU1dvcmtl
ckNvbnRleHRFcnJvckhhbmRsZXI6OmNyZWF0ZShhc09iamVjdChsaXN0ZW5lciksIHdyYXBwZXIs
IHRydWUsIGN1cnJlbnRXb3JsZChleGVjKSk7Ci19CisgICAgdmlydHVhbCB2ODo6TG9jYWw8djg6
OlZhbHVlPiBjYWxsTGlzdGVuZXJGdW5jdGlvbihTY3JpcHRFeGVjdXRpb25Db250ZXh0Kiwgdjg6
OkhhbmRsZTx2ODo6VmFsdWU+IGpzRXZlbnQsIEV2ZW50Kik7Cit9OwogCiB9IC8vIG5hbWVzcGFj
ZSBXZWJDb3JlCiAKLSNlbmRpZiAvLyBKU1dvcmtlckNvbnRleHRFcnJvckhhbmRsZXJfaAorI2Vu
ZGlmIC8vIFY4V2luZG93RXJyb3JIYW5kbGVyX2gKZGlmZiAtLWdpdCBhL1dlYkNvcmUvYmluZGlu
Z3MvdjgvV29ya2VyQ29udGV4dEV4ZWN1dGlvblByb3h5LmNwcCBiL1dlYkNvcmUvYmluZGluZ3Mv
djgvV29ya2VyQ29udGV4dEV4ZWN1dGlvblByb3h5LmNwcAppbmRleCAxNmUwYjQxMDFlZmRjMzVh
ZTc0NDE4MTdiMDY4N2RiNmI1YTY1YTI1Li4yNDhkZTAyNzI3ODllMWEwNjRlNzg3YjE1OWMwNjQ1
MWJmNjFlZjE1IDEwMDY0NAotLS0gYS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1dvcmtlckNvbnRleHRF
eGVjdXRpb25Qcm94eS5jcHAKKysrIGIvV2ViQ29yZS9iaW5kaW5ncy92OC9Xb3JrZXJDb250ZXh0
RXhlY3V0aW9uUHJveHkuY3BwCkBAIC0zNSw4ICszNSwxMCBAQAogCiAjaW5jbHVkZSAiV29ya2Vy
Q29udGV4dEV4ZWN1dGlvblByb3h5LmgiCiAKKyNpbmNsdWRlICJET01XcmFwcGVyV29ybGQuaCIK
ICNpbmNsdWRlICJEZWRpY2F0ZWRXb3JrZXJDb250ZXh0LmgiCiAjaW5jbHVkZSAiRXZlbnQuaCIK
KyNpbmNsdWRlICJTY3JpcHRDYWxsU3RhY2suaCIKICNpbmNsdWRlICJTaGFyZWRXb3JrZXIuaCIK
ICNpbmNsdWRlICJTaGFyZWRXb3JrZXJDb250ZXh0LmgiCiAjaW5jbHVkZSAiVjhCaW5kaW5nLmgi
CkBAIC03Miw3ICs3NCw3IEBAIHN0YXRpYyB2b2lkIHY4TWVzc2FnZUhhbmRsZXIodjg6OkhhbmRs
ZTx2ODo6TWVzc2FnZT4gbWVzc2FnZSwgdjg6OkhhbmRsZTx2ODo6VmFsCiAgICAgICAgIFN0cmlu
ZyBlcnJvck1lc3NhZ2UgPSB0b1dlYkNvcmVTdHJpbmcobWVzc2FnZS0+R2V0KCkpOwogICAgICAg
ICBpbnQgbGluZU51bWJlciA9IG1lc3NhZ2UtPkdldExpbmVOdW1iZXIoKTsKICAgICAgICAgU3Ry
aW5nIHNvdXJjZVVSTCA9IHRvV2ViQ29yZVN0cmluZyhtZXNzYWdlLT5HZXRTY3JpcHRSZXNvdXJj
ZU5hbWUoKSk7Ci0gICAgICAgIGNvbnRleHQtPnJlcG9ydEV4Y2VwdGlvbihlcnJvck1lc3NhZ2Us
IGxpbmVOdW1iZXIsIHNvdXJjZVVSTCk7CisgICAgICAgIGNvbnRleHQtPnJlcG9ydEV4Y2VwdGlv
bigwLCBlcnJvck1lc3NhZ2UsIGxpbmVOdW1iZXIsIHNvdXJjZVVSTCwgMCk7CiAgICAgfQogCiAg
ICAgaXNSZXBvcnRpbmdFeGNlcHRpb24gPSBmYWxzZTsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvYmlu
ZGluZ3MvdjgvV29ya2VyU2NyaXB0Q29udHJvbGxlci5jcHAgYi9XZWJDb3JlL2JpbmRpbmdzL3Y4
L1dvcmtlclNjcmlwdENvbnRyb2xsZXIuY3BwCmluZGV4IDdkYjBkOGQzNzM3MDliMmU5NzNiNjdl
NzcyM2U0ZmMzMTFmYmNhNTkuLjVhZjUzNzczODE5MmIyNzhjNjYwZWY4MmI4NTQ3Mzg1MjVlOTI0
ZDYgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvYmluZGluZ3MvdjgvV29ya2VyU2NyaXB0Q29udHJvbGxl
ci5jcHAKKysrIGIvV2ViQ29yZS9iaW5kaW5ncy92OC9Xb3JrZXJTY3JpcHRDb250cm9sbGVyLmNw
cApAQCAtMzQsMTEgKzM0LDExIEBACiAKICNpbmNsdWRlICJXb3JrZXJTY3JpcHRDb250cm9sbGVy
LmgiCiAKLSNpbmNsdWRlIDx2OC5oPgotCisjaW5jbHVkZSAiRE9NVGltZXIuaCIKKyNpbmNsdWRl
ICJET01XcmFwcGVyV29ybGQuaCIKKyNpbmNsdWRlICJTY3JpcHRDYWxsU3RhY2suaCIKICNpbmNs
dWRlICJTY3JpcHRTb3VyY2VDb2RlLmgiCiAjaW5jbHVkZSAiU2NyaXB0VmFsdWUuaCIKLSNpbmNs
dWRlICJET01UaW1lci5oIgogI2luY2x1ZGUgIlY4RE9NTWFwLmgiCiAjaW5jbHVkZSAiVjhQcm94
eS5oIgogI2luY2x1ZGUgIlY4V29ya2VyQ29udGV4dC5oIgpAQCAtNDYsNiArNDYsNyBAQAogI2lu
Y2x1ZGUgIldvcmtlckNvbnRleHRFeGVjdXRpb25Qcm94eS5oIgogI2luY2x1ZGUgIldvcmtlck9i
amVjdFByb3h5LmgiCiAjaW5jbHVkZSAiV29ya2VyVGhyZWFkLmgiCisjaW5jbHVkZSA8djguaD4K
IAogbmFtZXNwYWNlIFdlYkNvcmUgewogCkBAIC04MCw3ICs4MSw3IEBAIFNjcmlwdFZhbHVlIFdv
cmtlclNjcmlwdENvbnRyb2xsZXI6OmV2YWx1YXRlKGNvbnN0IFNjcmlwdFNvdXJjZUNvZGUmIHNv
dXJjZUNvZGUsCiAgICAgICAgIGlmIChleGNlcHRpb24pCiAgICAgICAgICAgICAqZXhjZXB0aW9u
ID0gc3RhdGUuZXhjZXB0aW9uOwogICAgICAgICBlbHNlCi0gICAgICAgICAgICBtX3dvcmtlckNv
bnRleHQtPnJlcG9ydEV4Y2VwdGlvbihzdGF0ZS5lcnJvck1lc3NhZ2UsIHN0YXRlLmxpbmVOdW1i
ZXIsIHN0YXRlLnNvdXJjZVVSTCk7CisgICAgICAgICAgICBtX3dvcmtlckNvbnRleHQtPnJlcG9y
dEV4Y2VwdGlvbigwLCBzdGF0ZS5lcnJvck1lc3NhZ2UsIHN0YXRlLmxpbmVOdW1iZXIsIHN0YXRl
LnNvdXJjZVVSTCwgMCk7CiAgICAgfQogCiAgICAgcmV0dXJuIHJlc3VsdDsKZGlmZiAtLWdpdCBh
L1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcCBiL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcAppbmRl
eCBkNTc4YWQ5Nzc4Y2U5NDNhNzc4ZTI0NjFkZjIwYjIyNmRhNGQ1Y2JmLi40OWQyMDk1ZjJhOWU0
MTY5ZWI3NTJlMWZjN2I0NDEyOTIyZGQ1N2VjIDEwMDY0NAotLS0gYS9XZWJDb3JlL2RvbS9Eb2N1
bWVudC5jcHAKKysrIGIvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCkBAIC0yMTg2LDYgKzIxODYs
MTcgQEAgS1VSTCBEb2N1bWVudDo6dmlydHVhbENvbXBsZXRlVVJMKGNvbnN0IFN0cmluZyYgdXJs
KSBjb25zdAogICAgIHJldHVybiBjb21wbGV0ZVVSTCh1cmwpOwogfQogCitFdmVudFRhcmdldCog
RG9jdW1lbnQ6OmVycm9yRXZlbnRUYXJnZXQoKQoreworICAgIHJldHVybiBkb21XaW5kb3coKTsK
K30KKwordm9pZCBEb2N1bWVudDo6bG9nRXhjZXB0aW9uVG9Db25zb2xlKGNvbnN0IFN0cmluZyYg
ZXJyb3JNZXNzYWdlLCBpbnQgbGluZU51bWJlciwgY29uc3QgU3RyaW5nJiBzb3VyY2VVUkwsIFNj
cmlwdENhbGxTdGFjayogY2FsbFN0YWNrKQoreworICAgIE1lc3NhZ2VUeXBlIG1lc3NhZ2VUeXBl
ID0gY2FsbFN0YWNrID8gVW5jYXVnaHRFeGNlcHRpb25NZXNzYWdlVHlwZSA6IExvZ01lc3NhZ2VU
eXBlOworICAgIGFkZE1lc3NhZ2UoSlNNZXNzYWdlU291cmNlLCBtZXNzYWdlVHlwZSwgRXJyb3JN
ZXNzYWdlTGV2ZWwsIGVycm9yTWVzc2FnZSwgbGluZU51bWJlciwgc291cmNlVVJMKTsKK30KKwog
dm9pZCBEb2N1bWVudDo6c2V0VVJMKGNvbnN0IEtVUkwmIHVybCkKIHsKICAgICBjb25zdCBLVVJM
JiBuZXdVUkwgPSB1cmwuaXNFbXB0eSgpID8gYmxhbmtVUkwoKSA6IHVybDsKQEAgLTQ1NDksMTEg
KzQ1NjAsNiBAQCB2b2lkIERvY3VtZW50OjpwYXJzZUROU1ByZWZldGNoQ29udHJvbEhlYWRlcihj
b25zdCBTdHJpbmcmIGRuc1ByZWZldGNoQ29udHJvbCkKICAgICBtX2hhdmVFeHBsaWNpdGx5RGlz
YWJsZWRETlNQcmVmZXRjaCA9IHRydWU7CiB9CiAKLXZvaWQgRG9jdW1lbnQ6OnJlcG9ydEV4Y2Vw
dGlvbihjb25zdCBTdHJpbmcmIGVycm9yTWVzc2FnZSwgaW50IGxpbmVOdW1iZXIsIGNvbnN0IFN0
cmluZyYgc291cmNlVVJMKQotewotICAgIGFkZE1lc3NhZ2UoSlNNZXNzYWdlU291cmNlLCBMb2dN
ZXNzYWdlVHlwZSwgRXJyb3JNZXNzYWdlTGV2ZWwsIGVycm9yTWVzc2FnZSwgbGluZU51bWJlciwg
c291cmNlVVJMKTsKLX0KLQogdm9pZCBEb2N1bWVudDo6YWRkTWVzc2FnZShNZXNzYWdlU291cmNl
IHNvdXJjZSwgTWVzc2FnZVR5cGUgdHlwZSwgTWVzc2FnZUxldmVsIGxldmVsLCBjb25zdCBTdHJp
bmcmIG1lc3NhZ2UsIHVuc2lnbmVkIGxpbmVOdW1iZXIsIGNvbnN0IFN0cmluZyYgc291cmNlVVJM
KQogewogICAgIGlmIChET01XaW5kb3cqIHdpbmRvdyA9IGRvbVdpbmRvdygpKQpkaWZmIC0tZ2l0
IGEvV2ViQ29yZS9kb20vRG9jdW1lbnQuaCBiL1dlYkNvcmUvZG9tL0RvY3VtZW50LmgKaW5kZXgg
ZmExNGUzZDM5YTdkYmU3OTRjODM0YjY5MzZlZmE4MTAzZjY5OGI3Ny4uNTQwNzI1OWQ3Y2Q4Y2Ji
Njc4ZjRhMDhiNjQyNDgxYTViNWRiNTUzMiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9kb20vRG9jdW1l
bnQuaAorKysgYi9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oCkBAIC05MDUsNyArOTA1LDYgQEAgcHVi
bGljOgogICAgIGJvb2wgaXNETlNQcmVmZXRjaEVuYWJsZWQoKSBjb25zdCB7IHJldHVybiBtX2lz
RE5TUHJlZmV0Y2hFbmFibGVkOyB9CiAgICAgdm9pZCBwYXJzZUROU1ByZWZldGNoQ29udHJvbEhl
YWRlcihjb25zdCBTdHJpbmcmKTsKIAotICAgIHZpcnR1YWwgdm9pZCByZXBvcnRFeGNlcHRpb24o
Y29uc3QgU3RyaW5nJiBlcnJvck1lc3NhZ2UsIGludCBsaW5lTnVtYmVyLCBjb25zdCBTdHJpbmcm
IHNvdXJjZVVSTCk7CiAgICAgdmlydHVhbCB2b2lkIGFkZE1lc3NhZ2UoTWVzc2FnZVNvdXJjZSwg
TWVzc2FnZVR5cGUsIE1lc3NhZ2VMZXZlbCwgY29uc3QgU3RyaW5nJiBtZXNzYWdlLCB1bnNpZ25l
ZCBsaW5lTnVtYmVyLCBjb25zdCBTdHJpbmcmIHNvdXJjZVVSTCk7CiAgICAgdmlydHVhbCB2b2lk
IHBvc3RUYXNrKFBhc3NPd25QdHI8VGFzaz4pOyAvLyBFeGVjdXRlcyB0aGUgdGFzayBvbiBjb250
ZXh0J3MgdGhyZWFkIGFzeW5jaHJvbm91c2x5LgogCkBAIC0xMDYxLDYgKzEwNjAsOSBAQCBwcml2
YXRlOgogICAgIHZpcnR1YWwgY29uc3QgS1VSTCYgdmlydHVhbFVSTCgpIGNvbnN0OyAvLyBTYW1l
IGFzIHVybCgpLCBidXQgbmVlZGVkIGZvciBTY3JpcHRFeGVjdXRpb25Db250ZXh0IHRvIGltcGxl
bWVudCBpdCB3aXRob3V0IGEgcGVyZm9ybWFuY2UgbG9zcyBmb3IgZGlyZWN0IGNhbGxzLgogICAg
IHZpcnR1YWwgS1VSTCB2aXJ0dWFsQ29tcGxldGVVUkwoY29uc3QgU3RyaW5nJikgY29uc3Q7IC8v
IFNhbWUgYXMgY29tcGxldGVVUkwoKSBmb3IgdGhlIHNhbWUgcmVhc29uIGFzIGFib3ZlLgogCisg
ICAgdmlydHVhbCBFdmVudFRhcmdldCogZXJyb3JFdmVudFRhcmdldCgpOworICAgIHZpcnR1YWwg
dm9pZCBsb2dFeGNlcHRpb25Ub0NvbnNvbGUoY29uc3QgU3RyaW5nJiBlcnJvck1lc3NhZ2UsIGlu
dCBsaW5lTnVtYmVyLCBjb25zdCBTdHJpbmcmIHNvdXJjZVVSTCwgU2NyaXB0Q2FsbFN0YWNrKik7
CisKICAgICB2b2lkIGluaXRETlNQcmVmZXRjaCgpOwogCiAgICAgU3RyaW5nIGVuY29kaW5nKCkg
Y29uc3Q7CmRpZmYgLS1naXQgYS9XZWJDb3JlL2RvbS9FcnJvckV2ZW50LmNwcCBiL1dlYkNvcmUv
ZG9tL0Vycm9yRXZlbnQuY3BwCmluZGV4IDI2MjdkMDE1NGU2MjNhYmFhZDkxZDQ5YmFhOWRmMTk4
NmQyOTNkNTAuLjA2Njk5ZDQ2MjkzNzc1NDEwMzhjOTgxMzk5ODY5Y2FkOTIxNmZjNzggMTAwNjQ0
Ci0tLSBhL1dlYkNvcmUvZG9tL0Vycm9yRXZlbnQuY3BwCisrKyBiL1dlYkNvcmUvZG9tL0Vycm9y
RXZlbnQuY3BwCkBAIC0zNCw2ICszNCw3IEBACiAKICNpbmNsdWRlICJFcnJvckV2ZW50LmgiCiAK
KyNpbmNsdWRlICJET01XcmFwcGVyV29ybGQuaCIKICNpbmNsdWRlICJFdmVudE5hbWVzLmgiCiAK
IG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAgLTQyLDggKzQzLDkgQEAgRXJyb3JFdmVudDo6RXJyb3JF
dmVudCgpCiB7CiB9CiAKLUVycm9yRXZlbnQ6OkVycm9yRXZlbnQoY29uc3QgU3RyaW5nJiBtZXNz
YWdlLCBjb25zdCBTdHJpbmcmIGZpbGVOYW1lLCB1bnNpZ25lZCBsaW5lTnVtYmVyKQorRXJyb3JF
dmVudDo6RXJyb3JFdmVudChET01XcmFwcGVyV29ybGQqIHdyYXBwZXJXb3JsZCwgY29uc3QgU3Ry
aW5nJiBtZXNzYWdlLCBjb25zdCBTdHJpbmcmIGZpbGVOYW1lLCB1bnNpZ25lZCBsaW5lTnVtYmVy
KQogICAgIDogRXZlbnQoZXZlbnROYW1lcygpLmVycm9yRXZlbnQsIGZhbHNlLCB0cnVlKQorICAg
ICwgbV93cmFwcGVyV29ybGQod3JhcHBlcldvcmxkKQogICAgICwgbV9tZXNzYWdlKG1lc3NhZ2Up
CiAgICAgLCBtX2ZpbGVOYW1lKGZpbGVOYW1lKQogICAgICwgbV9saW5lTnVtYmVyKGxpbmVOdW1i
ZXIpCmRpZmYgLS1naXQgYS9XZWJDb3JlL2RvbS9FcnJvckV2ZW50LmggYi9XZWJDb3JlL2RvbS9F
cnJvckV2ZW50LmgKaW5kZXggZjgxNTMwYWVlNjIwYjg5MjE3ZTE2NGNjZmFiYTczMGYxZGI2MTE0
MC4uZGZmZmQxYjBmYmY0ODNiZjcyZmQxYWFmYjBkZjg4ZmFjMzk4NjExYyAxMDA2NDQKLS0tIGEv
V2ViQ29yZS9kb20vRXJyb3JFdmVudC5oCisrKyBiL1dlYkNvcmUvZG9tL0Vycm9yRXZlbnQuaApA
QCAtMzgsMjAgKzM4LDI0IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAorICAgIGNsYXNzIERP
TVdyYXBwZXJXb3JsZDsKKwogICAgIGNsYXNzIEVycm9yRXZlbnQgOiBwdWJsaWMgRXZlbnQgewog
ICAgIHB1YmxpYzoKICAgICAgICAgc3RhdGljIFBhc3NSZWZQdHI8RXJyb3JFdmVudD4gY3JlYXRl
KCkKICAgICAgICAgewogICAgICAgICAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBFcnJvckV2ZW50
KTsKICAgICAgICAgfQotICAgICAgICBzdGF0aWMgUGFzc1JlZlB0cjxFcnJvckV2ZW50PiBjcmVh
dGUoY29uc3QgU3RyaW5nJiBtZXNzYWdlLCBjb25zdCBTdHJpbmcmIGZpbGVOYW1lLCB1bnNpZ25l
ZCBsaW5lTnVtYmVyKQorICAgICAgICBzdGF0aWMgUGFzc1JlZlB0cjxFcnJvckV2ZW50PiBjcmVh
dGUoRE9NV3JhcHBlcldvcmxkKiB3cmFwcGVyV29ybGQsIGNvbnN0IFN0cmluZyYgbWVzc2FnZSwg
Y29uc3QgU3RyaW5nJiBmaWxlTmFtZSwgdW5zaWduZWQgbGluZU51bWJlcikKICAgICAgICAgewot
ICAgICAgICAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBFcnJvckV2ZW50KG1lc3NhZ2UsIGZpbGVO
YW1lLCBsaW5lTnVtYmVyKSk7CisgICAgICAgICAgICByZXR1cm4gYWRvcHRSZWYobmV3IEVycm9y
RXZlbnQod3JhcHBlcldvcmxkLCBtZXNzYWdlLCBmaWxlTmFtZSwgbGluZU51bWJlcikpOwogICAg
ICAgICB9CiAgICAgICAgIHZpcnR1YWwgfkVycm9yRXZlbnQoKTsKIAogICAgICAgICB2b2lkIGlu
aXRFcnJvckV2ZW50KGNvbnN0IEF0b21pY1N0cmluZyYgdHlwZSwgYm9vbCBjYW5CdWJibGUsIGJv
b2wgY2FuY2VsYWJsZSwgY29uc3QgU3RyaW5nJiBtZXNzYWdlLCBjb25zdCBTdHJpbmcmIGZpbGVO
YW1lLCB1bnNpZ25lZCBsaW5lTnVtYmVyKTsKIAorICAgICAgICBET01XcmFwcGVyV29ybGQqIHdy
YXBwZXJXb3JsZCgpIGNvbnN0IHsgcmV0dXJuIG1fd3JhcHBlcldvcmxkLmdldCgpOyB9CisKICAg
ICAgICAgY29uc3QgU3RyaW5nJiBtZXNzYWdlKCkgY29uc3QgeyByZXR1cm4gbV9tZXNzYWdlOyB9
CiAgICAgICAgIGNvbnN0IFN0cmluZyYgZmlsZW5hbWUoKSBjb25zdCB7IHJldHVybiBtX2ZpbGVO
YW1lOyB9CiAgICAgICAgIHVuc2lnbmVkIGxpbmVubygpIGNvbnN0IHsgcmV0dXJuIG1fbGluZU51
bWJlcjsgfQpAQCAtNjAsOCArNjQsOSBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKICAgICBwcml2
YXRlOiAgICAKICAgICAgICAgRXJyb3JFdmVudCgpOwotICAgICAgICBFcnJvckV2ZW50KGNvbnN0
IFN0cmluZyYgbWVzc2FnZSwgY29uc3QgU3RyaW5nJiBmaWxlTmFtZSwgdW5zaWduZWQgbGluZU51
bWJlcik7CisgICAgICAgIEVycm9yRXZlbnQoRE9NV3JhcHBlcldvcmxkKiwgY29uc3QgU3RyaW5n
JiBtZXNzYWdlLCBjb25zdCBTdHJpbmcmIGZpbGVOYW1lLCB1bnNpZ25lZCBsaW5lTnVtYmVyKTsK
IAorICAgICAgICBSZWZQdHI8RE9NV3JhcHBlcldvcmxkPiAgbV93cmFwcGVyV29ybGQ7CiAgICAg
ICAgIFN0cmluZyBtX21lc3NhZ2U7CiAgICAgICAgIFN0cmluZyBtX2ZpbGVOYW1lOwogICAgICAg
ICB1bnNpZ25lZCBtX2xpbmVOdW1iZXI7CmRpZmYgLS1naXQgYS9XZWJDb3JlL2RvbS9TY3JpcHRF
eGVjdXRpb25Db250ZXh0LmNwcCBiL1dlYkNvcmUvZG9tL1NjcmlwdEV4ZWN1dGlvbkNvbnRleHQu
Y3BwCmluZGV4IGJmZGExN2IzZjFiNGQ5M2RhYmQ4ZjY0MTBkYjc2NWI1MDM2N2RlYzguLjJlMzFj
ZDE1ZTVhOWE0YjdhNjBhYTU1NzJhMjQwZDA5YmM1NDhmNGQgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUv
ZG9tL1NjcmlwdEV4ZWN1dGlvbkNvbnRleHQuY3BwCisrKyBiL1dlYkNvcmUvZG9tL1NjcmlwdEV4
ZWN1dGlvbkNvbnRleHQuY3BwCkBAIC0zMywxNCArMzMsMTkgQEAKICNpbmNsdWRlICJEYXRhYmFz
ZS5oIgogI2luY2x1ZGUgIkRhdGFiYXNlVGFzay5oIgogI2luY2x1ZGUgIkRhdGFiYXNlVGhyZWFk
LmgiCisjaW5jbHVkZSAiRXJyb3JFdmVudC5oIgorI2luY2x1ZGUgIkV2ZW50TGlzdGVuZXIuaCIK
KyNpbmNsdWRlICJFdmVudFRhcmdldC5oIgogI2luY2x1ZGUgIkZpbGVUaHJlYWQuaCIKICNpbmNs
dWRlICJNZXNzYWdlUG9ydC5oIgorI2luY2x1ZGUgIlNjcmlwdENhbGxTdGFjay5oIgogI2luY2x1
ZGUgIlNlY3VyaXR5T3JpZ2luLmgiCiAjaW5jbHVkZSAiVGhyZWFkYWJsZUJsb2JSZWdpc3RyeS5o
IgogI2luY2x1ZGUgIldvcmtlckNvbnRleHQuaCIKICNpbmNsdWRlICJXb3JrZXJUaHJlYWQuaCIK
ICNpbmNsdWRlIDx3dGYvTWFpblRocmVhZC5oPgogI2luY2x1ZGUgPHd0Zi9QYXNzUmVmUHRyLmg+
CisjaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgogCiAjaWYgVVNFKEpTQykKICNpbmNsdWRlICJKU0RP
TVdpbmRvdy5oIgpAQCAtNjEsMTAgKzY2LDE5IEBAIHB1YmxpYzoKICAgICB9CiB9OwogCitTY3Jp
cHRFeGVjdXRpb25Db250ZXh0OjpQZW5kaW5nRXhjZXB0aW9uOjpQZW5kaW5nRXhjZXB0aW9uKGNv
bnN0IFN0cmluZyYgZXJyb3JNZXNzYWdlLCBpbnQgbGluZU51bWJlciwgY29uc3QgU3RyaW5nJiBz
b3VyY2VVUkwsIFBhc3NPd25QdHI8U2NyaXB0Q2FsbFN0YWNrPiBjYWxsU3RhY2spCisgICAgOiBt
X2Vycm9yTWVzc2FnZShlcnJvck1lc3NhZ2UpCisgICAgLCBtX2xpbmVOdW1iZXIobGluZU51bWJl
cikKKyAgICAsIG1fc291cmNlVVJMKHNvdXJjZVVSTCkKKyAgICAsIG1fY2FsbFN0YWNrKGNhbGxT
dGFjaykKK3sKK30KKwogU2NyaXB0RXhlY3V0aW9uQ29udGV4dDo6U2NyaXB0RXhlY3V0aW9uQ29u
dGV4dCgpCiAjaWYgRU5BQkxFKERBVEFCQVNFKQogICAgIDogbV9oYXNPcGVuRGF0YWJhc2VzKGZh
bHNlKQogI2VuZGlmCisgICAgLCBtX2luRGlzcGF0Y2hFcnJvckV2ZW50KGZhbHNlKQogewogfQog
CkBAIC0yNDMsNiArMjU3LDQ3IEBAIHZvaWQgU2NyaXB0RXhlY3V0aW9uQ29udGV4dDo6c2V0U2Vj
dXJpdHlPcmlnaW4oUGFzc1JlZlB0cjxTZWN1cml0eU9yaWdpbj4gc2VjdXJpCiAgICAgbV9zZWN1
cml0eU9yaWdpbiA9IHNlY3VyaXR5T3JpZ2luOwogfQogCit2b2lkIFNjcmlwdEV4ZWN1dGlvbkNv
bnRleHQ6OnJlcG9ydEV4Y2VwdGlvbihET01XcmFwcGVyV29ybGQqIHdyYXBwZXJXb3JsZCwgY29u
c3QgU3RyaW5nJiBlcnJvck1lc3NhZ2UsIGludCBsaW5lTnVtYmVyLCBjb25zdCBTdHJpbmcmIHNv
dXJjZVVSTCwgUGFzc093blB0cjxTY3JpcHRDYWxsU3RhY2s+IGNhbGxTdGFjaykKK3sKKyAgICBp
ZiAobV9pbkRpc3BhdGNoRXJyb3JFdmVudCkgeworICAgICAgICBpZiAoIW1fcGVuZGluZ0V4Y2Vw
dGlvbnMpCisgICAgICAgICAgICBtX3BlbmRpbmdFeGNlcHRpb25zID0gbmV3IFZlY3RvcjxPd25Q
dHI8UGVuZGluZ0V4Y2VwdGlvbj4gPigpOworICAgICAgICBtX3BlbmRpbmdFeGNlcHRpb25zLT5h
cHBlbmQobmV3IFBlbmRpbmdFeGNlcHRpb24oZXJyb3JNZXNzYWdlLCBsaW5lTnVtYmVyLCBzb3Vy
Y2VVUkwsIGNhbGxTdGFjaykpOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgLy8gRmly
c3QgcmVwb3J0IHRoZSBvcmlnaW5hbCBleGNlcHRpb24gYW5kIG9ubHkgdGhlbiBhbGwgdGhlIG5l
c3RlZCBvbmVzLgorICAgIGlmICghZGlzcGF0Y2hFcnJvckV2ZW50KHdyYXBwZXJXb3JsZCwgZXJy
b3JNZXNzYWdlLCBsaW5lTnVtYmVyLCBzb3VyY2VVUkwpKQorICAgICAgICBsb2dFeGNlcHRpb25U
b0NvbnNvbGUoZXJyb3JNZXNzYWdlLCBsaW5lTnVtYmVyLCBzb3VyY2VVUkwsIGNhbGxTdGFjay5n
ZXQoKSk7CisKKyAgICBpZiAoIW1fcGVuZGluZ0V4Y2VwdGlvbnMpCisgICAgICAgIHJldHVybjsK
KworICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgbV9wZW5kaW5nRXhjZXB0aW9ucy0+c2l6ZSgp
OyBpKyspIHsKKyAgICAgICAgUGVuZGluZ0V4Y2VwdGlvbiogZSA9IG1fcGVuZGluZ0V4Y2VwdGlv
bnMtPmF0KGkpLmdldCgpOworICAgICAgICBsb2dFeGNlcHRpb25Ub0NvbnNvbGUoZS0+bV9lcnJv
ck1lc3NhZ2UsIGUtPm1fbGluZU51bWJlciwgZS0+bV9zb3VyY2VVUkwsIGUtPm1fY2FsbFN0YWNr
LmdldCgpKTsKKyAgICB9CisgICAgbV9wZW5kaW5nRXhjZXB0aW9ucy5jbGVhcigpOworfQorCiti
b29sIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQ6OmRpc3BhdGNoRXJyb3JFdmVudChET01XcmFwcGVy
V29ybGQqIHdyYXBwZXJXb3JsZCwgY29uc3QgU3RyaW5nJiBlcnJvck1lc3NhZ2UsIGludCBsaW5l
TnVtYmVyLCBjb25zdCBTdHJpbmcmIHNvdXJjZVVSTCkKK3sKKyAgICAvLyBJdCdzIHVuc2FmZSB0
byBkaXNwYXRjaCBlcnJvciBldmVudCB0byBlcnJvciBoYW5kbGVyIGluIGEgZGlmZmVyZW50IHdv
cmxkLgorICAgIGlmICghd3JhcHBlcldvcmxkICYmICFpc1dvcmtlckNvbnRleHQoKSkKKyAgICAg
ICAgcmV0dXJuIGZhbHNlOworCisgICAgRXZlbnRUYXJnZXQqIHRhcmdldCA9IGVycm9yRXZlbnRU
YXJnZXQoKTsKKyAgICBpZiAoIXRhcmdldCkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAg
QVNTRVJUKCFtX2luRGlzcGF0Y2hFcnJvckV2ZW50KTsKKyAgICBtX2luRGlzcGF0Y2hFcnJvckV2
ZW50ID0gdHJ1ZTsKKyAgICBSZWZQdHI8RXJyb3JFdmVudD4gZXJyb3JFdmVudCA9IEVycm9yRXZl
bnQ6OmNyZWF0ZSh3cmFwcGVyV29ybGQsIGVycm9yTWVzc2FnZSwgc291cmNlVVJMLCBsaW5lTnVt
YmVyKTsKKyAgICB0YXJnZXQtPmRpc3BhdGNoRXZlbnQoZXJyb3JFdmVudCk7CisgICAgbV9pbkRp
c3BhdGNoRXJyb3JFdmVudCA9IGZhbHNlOworICAgIHJldHVybiBlcnJvckV2ZW50LT5kZWZhdWx0
UHJldmVudGVkKCk7Cit9CisKIHZvaWQgU2NyaXB0RXhlY3V0aW9uQ29udGV4dDo6YWRkVGltZW91
dChpbnQgdGltZW91dElkLCBET01UaW1lciogdGltZXIpCiB7CiAgICAgQVNTRVJUKCFtX3RpbWVv
dXRzLmNvbnRhaW5zKHRpbWVvdXRJZCkpOwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9kb20vU2NyaXB0
RXhlY3V0aW9uQ29udGV4dC5oIGIvV2ViQ29yZS9kb20vU2NyaXB0RXhlY3V0aW9uQ29udGV4dC5o
CmluZGV4IGQzOWNiNjRiOTczZTkyNTUyYWIzMDY3MzczMDQzMjE5ZmMyY2U0YzkuLjJkMGE3NWY2
YzBhMWY1NjVlMjRkYjFlMDY3MmYwMWNiNDM1ZWY0OGEgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvZG9t
L1NjcmlwdEV4ZWN1dGlvbkNvbnRleHQuaAorKysgYi9XZWJDb3JlL2RvbS9TY3JpcHRFeGVjdXRp
b25Db250ZXh0LmgKQEAgLTMzLDYgKzMzLDcgQEAKICNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgog
I2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+CiAjaW5jbHVkZSA8d3RmL0hhc2hTZXQuaD4KKyNpbmNs
dWRlIDx3dGYvT3duUHRyLmg+CiAjaW5jbHVkZSA8d3RmL1Bhc3NPd25QdHIuaD4KICNpbmNsdWRl
IDx3dGYvUGFzc1JlZlB0ci5oPgogI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KQEAgLTUyLDExICs1
MywxNSBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgY2xhc3MgRGF0YWJhc2VUaHJlYWQ7CiAj
ZW5kaWYKICAgICBjbGFzcyBET01UaW1lcjsKKyAgICBjbGFzcyBET01XcmFwcGVyV29ybGQ7Cisg
ICAgY2xhc3MgRXZlbnRMaXN0ZW5lcjsKKyAgICBjbGFzcyBFdmVudFRhcmdldDsKICNpZiBFTkFC
TEUoQkxPQikgfHwgRU5BQkxFKEZJTEVfU1lTVEVNKQogICAgIGNsYXNzIEZpbGVUaHJlYWQ7CiAj
ZW5kaWYKICAgICBjbGFzcyBNZXNzYWdlUG9ydDsKICAgICBjbGFzcyBTZWN1cml0eU9yaWdpbjsK
KyAgICBjbGFzcyBTY3JpcHRDYWxsU3RhY2s7CiAgICAgY2xhc3MgU2NyaXB0U3RyaW5nOwogI2lm
IEVOQUJMRShJTlNQRUNUT1IpCiAgICAgY2xhc3MgSW5zcGVjdG9yQ29udHJvbGxlcjsKQEAgLTky
LDcgKzk3LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICB2aXJ0dWFsIEluc3BlY3Rv
ckNvbnRyb2xsZXIqIGluc3BlY3RvckNvbnRyb2xsZXIoKSBjb25zdCB7IHJldHVybiAwOyB9CiAj
ZW5kaWYKIAotICAgICAgICB2aXJ0dWFsIHZvaWQgcmVwb3J0RXhjZXB0aW9uKGNvbnN0IFN0cmlu
ZyYgZXJyb3JNZXNzYWdlLCBpbnQgbGluZU51bWJlciwgY29uc3QgU3RyaW5nJiBzb3VyY2VVUkwp
ID0gMDsKKyAgICAgICAgdmlydHVhbCB2b2lkIHJlcG9ydEV4Y2VwdGlvbihET01XcmFwcGVyV29y
bGQqLCBjb25zdCBTdHJpbmcmIGVycm9yTWVzc2FnZSwgaW50IGxpbmVOdW1iZXIsIGNvbnN0IFN0
cmluZyYgc291cmNlVVJMLCBQYXNzT3duUHRyPFNjcmlwdENhbGxTdGFjaz4pOwogICAgICAgICB2
aXJ0dWFsIHZvaWQgYWRkTWVzc2FnZShNZXNzYWdlU291cmNlLCBNZXNzYWdlVHlwZSwgTWVzc2Fn
ZUxldmVsLCBjb25zdCBTdHJpbmcmIG1lc3NhZ2UsIHVuc2lnbmVkIGxpbmVOdW1iZXIsIGNvbnN0
IFN0cmluZyYgc291cmNlVVJMKSA9IDA7CiAKICAgICAgICAgLy8gQWN0aXZlIG9iamVjdHMgYXJl
IG5vdCBnYXJiYWdlIGNvbGxlY3RlZCBldmVuIGlmIGluYWNjZXNzaWJsZSwgZS5nLiBiZWNhdXNl
IHRoZWlyIGFjdGl2aXR5IG1heSByZXN1bHQgaW4gY2FsbGJhY2tzIGJlaW5nIGludm9rZWQuCkBA
IC0xNTUsNiArMTYwLDEwIEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgdmlydHVhbCBj
b25zdCBLVVJMJiB2aXJ0dWFsVVJMKCkgY29uc3QgPSAwOwogICAgICAgICB2aXJ0dWFsIEtVUkwg
dmlydHVhbENvbXBsZXRlVVJMKGNvbnN0IFN0cmluZyYpIGNvbnN0ID0gMDsKIAorICAgICAgICB2
aXJ0dWFsIEV2ZW50VGFyZ2V0KiBlcnJvckV2ZW50VGFyZ2V0KCkgPSAwOworICAgICAgICB2aXJ0
dWFsIHZvaWQgbG9nRXhjZXB0aW9uVG9Db25zb2xlKGNvbnN0IFN0cmluZyYgZXJyb3JNZXNzYWdl
LCBpbnQgbGluZU51bWJlciwgY29uc3QgU3RyaW5nJiBzb3VyY2VVUkwsIFNjcmlwdENhbGxTdGFj
ayopID0gMDsKKyAgICAgICAgYm9vbCBkaXNwYXRjaEVycm9yRXZlbnQoRE9NV3JhcHBlcldvcmxk
KiwgY29uc3QgU3RyaW5nJiBlcnJvck1lc3NhZ2UsIGludCBsaW5lTnVtYmVyLCBjb25zdCBTdHJp
bmcmIHNvdXJjZVVSTCk7CisKICAgICAgICAgdm9pZCBjbG9zZU1lc3NhZ2VQb3J0cygpOwogCiAg
ICAgICAgIFJlZlB0cjxTZWN1cml0eU9yaWdpbj4gbV9zZWN1cml0eU9yaWdpbjsKQEAgLTE4MCw2
ICsxODksMTYgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogI2lmIEVOQUJMRShCTE9CKSB8fCBFTkFC
TEUoRklMRV9TWVNURU0pCiAgICAgICAgIFJlZlB0cjxGaWxlVGhyZWFkPiBtX2ZpbGVUaHJlYWQ7
CiAjZW5kaWYKKyAgICAgICAgYm9vbCBtX2luRGlzcGF0Y2hFcnJvckV2ZW50OworICAgICAgICBj
bGFzcyBQZW5kaW5nRXhjZXB0aW9uIDogcHVibGljIE5vbmNvcHlhYmxlIHsKKyAgICAgICAgcHVi
bGljOgorICAgICAgICAgICAgUGVuZGluZ0V4Y2VwdGlvbihjb25zdCBTdHJpbmcmIGVycm9yTWVz
c2FnZSwgaW50IGxpbmVOdW1iZXIsIGNvbnN0IFN0cmluZyYgc291cmNlVVJMLCBQYXNzT3duUHRy
PFNjcmlwdENhbGxTdGFjaz4gY2FsbFN0YWNrKTsKKyAgICAgICAgICAgIFN0cmluZyBtX2Vycm9y
TWVzc2FnZTsKKyAgICAgICAgICAgIGludCBtX2xpbmVOdW1iZXI7CisgICAgICAgICAgICBTdHJp
bmcgbV9zb3VyY2VVUkw7CisgICAgICAgICAgICBPd25QdHI8U2NyaXB0Q2FsbFN0YWNrPiBtX2Nh
bGxTdGFjazsKKyAgICAgICAgfTsKKyAgICAgICAgT3duUHRyPFZlY3RvcjxPd25QdHI8UGVuZGlu
Z0V4Y2VwdGlvbj4gPiA+IG1fcGVuZGluZ0V4Y2VwdGlvbnM7CiAgICAgfTsKIAogfSAvLyBuYW1l
c3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS93b3JrZXJzL0RlZmF1bHRTaGFyZWRX
b3JrZXJSZXBvc2l0b3J5LmNwcCBiL1dlYkNvcmUvd29ya2Vycy9EZWZhdWx0U2hhcmVkV29ya2Vy
UmVwb3NpdG9yeS5jcHAKaW5kZXggNGE4ZTk0NzMxYmFhNjIwZGJlOWRmNWQzNDA5NzdiMDk5YjBh
MDY0NC4uYzcwOTk4MDg2ZmYyY2RhMDhmMzliYjNlNjZkNGY3MDU3OWI5Y2EwNiAxMDA2NDQKLS0t
IGEvV2ViQ29yZS93b3JrZXJzL0RlZmF1bHRTaGFyZWRXb3JrZXJSZXBvc2l0b3J5LmNwcAorKysg
Yi9XZWJDb3JlL3dvcmtlcnMvRGVmYXVsdFNoYXJlZFdvcmtlclJlcG9zaXRvcnkuY3BwCkBAIC00
Miw2ICs0Miw3IEBACiAjaW5jbHVkZSAiTWVzc2FnZVBvcnQuaCIKICNpbmNsdWRlICJOb3RJbXBs
ZW1lbnRlZC5oIgogI2luY2x1ZGUgIlBsYXRmb3JtU3RyaW5nLmgiCisjaW5jbHVkZSAiU2NyaXB0
Q2FsbFN0YWNrLmgiCiAjaW5jbHVkZSAiU2VjdXJpdHlPcmlnaW4uaCIKICNpbmNsdWRlICJTZWN1
cml0eU9yaWdpbkhhc2guaCIKICNpbmNsdWRlICJTaGFyZWRXb3JrZXIuaCIKQEAgLTE1NSw3ICsx
NTYsNyBAQCB2b2lkIFNoYXJlZFdvcmtlclByb3h5Ojpwb3N0VGFza0Zvck1vZGVUb1dvcmtlckNv
bnRleHQoUGFzc093blB0cjxTY3JpcHRFeGVjdXRpbwogCiBzdGF0aWMgdm9pZCBwb3N0RXhjZXB0
aW9uVGFzayhTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0LCBjb25zdCBTdHJpbmcmIGVy
cm9yTWVzc2FnZSwgaW50IGxpbmVOdW1iZXIsIGNvbnN0IFN0cmluZyYgc291cmNlVVJMKQogewot
ICAgIGNvbnRleHQtPnJlcG9ydEV4Y2VwdGlvbihlcnJvck1lc3NhZ2UsIGxpbmVOdW1iZXIsIHNv
dXJjZVVSTCk7CisgICAgY29udGV4dC0+cmVwb3J0RXhjZXB0aW9uKDAsIGVycm9yTWVzc2FnZSwg
bGluZU51bWJlciwgc291cmNlVVJMLCAwKTsKIH0KIAogdm9pZCBTaGFyZWRXb3JrZXJQcm94eTo6
cG9zdEV4Y2VwdGlvblRvV29ya2VyT2JqZWN0KGNvbnN0IFN0cmluZyYgZXJyb3JNZXNzYWdlLCBp
bnQgbGluZU51bWJlciwgY29uc3QgU3RyaW5nJiBzb3VyY2VVUkwpCmRpZmYgLS1naXQgYS9XZWJD
b3JlL3dvcmtlcnMvV29ya2VyQ29udGV4dC5jcHAgYi9XZWJDb3JlL3dvcmtlcnMvV29ya2VyQ29u
dGV4dC5jcHAKaW5kZXggNmNlZTI0NjI5YjdiODZmYWMyN2EyNWI1YjNhY2FiMzg5M2Q3MGJhOC4u
MjczODI1YmRmNTYzMzUyMGRjMTQ1NDI3NWZmN2I2MWIyYjc3NGUxMSAxMDA2NDQKLS0tIGEvV2Vi
Q29yZS93b3JrZXJzL1dvcmtlckNvbnRleHQuY3BwCisrKyBiL1dlYkNvcmUvd29ya2Vycy9Xb3Jr
ZXJDb250ZXh0LmNwcApAQCAtOTksNyArOTksNiBAQCBXb3JrZXJDb250ZXh0OjpXb3JrZXJDb250
ZXh0KGNvbnN0IEtVUkwmIHVybCwgY29uc3QgU3RyaW5nJiB1c2VyQWdlbnQsIFdvcmtlclRocgog
ICAgICwgbV9zY3JpcHQobmV3IFdvcmtlclNjcmlwdENvbnRyb2xsZXIodGhpcykpCiAgICAgLCBt
X3RocmVhZCh0aHJlYWQpCiAgICAgLCBtX2Nsb3NpbmcoZmFsc2UpCi0gICAgLCBtX3JlcG9ydGlu
Z0V4Y2VwdGlvbihmYWxzZSkKIHsKICAgICBzZXRTZWN1cml0eU9yaWdpbihTZWN1cml0eU9yaWdp
bjo6Y3JlYXRlKHVybCkpOwogfQpAQCAtMjU2LDIwICsyNTUsMTQgQEAgdm9pZCBXb3JrZXJDb250
ZXh0OjppbXBvcnRTY3JpcHRzKGNvbnN0IFZlY3RvcjxTdHJpbmc+JiB1cmxzLCBFeGNlcHRpb25D
b2RlJiBlYykKICAgICB9CiB9CiAKLXZvaWQgV29ya2VyQ29udGV4dDo6cmVwb3J0RXhjZXB0aW9u
KGNvbnN0IFN0cmluZyYgZXJyb3JNZXNzYWdlLCBpbnQgbGluZU51bWJlciwgY29uc3QgU3RyaW5n
JiBzb3VyY2VVUkwpCitFdmVudFRhcmdldCogV29ya2VyQ29udGV4dDo6ZXJyb3JFdmVudFRhcmdl
dCgpCiB7Ci0gICAgYm9vbCBlcnJvckhhbmRsZWQgPSBmYWxzZTsKLSAgICBpZiAoIW1fcmVwb3J0
aW5nRXhjZXB0aW9uKSB7Ci0gICAgICAgIGlmIChvbmVycm9yKCkpIHsKLSAgICAgICAgICAgIG1f
cmVwb3J0aW5nRXhjZXB0aW9uID0gdHJ1ZTsKLSAgICAgICAgICAgIFJlZlB0cjxFcnJvckV2ZW50
PiBlcnJvckV2ZW50KEVycm9yRXZlbnQ6OmNyZWF0ZShlcnJvck1lc3NhZ2UsIHNvdXJjZVVSTCwg
bGluZU51bWJlcikpOwotICAgICAgICAgICAgb25lcnJvcigpLT5oYW5kbGVFdmVudCh0aGlzLCBl
cnJvckV2ZW50LmdldCgpKTsKLSAgICAgICAgICAgIGVycm9ySGFuZGxlZCA9IGVycm9yRXZlbnQt
PmRlZmF1bHRQcmV2ZW50ZWQoKTsKLSAgICAgICAgICAgIG1fcmVwb3J0aW5nRXhjZXB0aW9uID0g
ZmFsc2U7Ci0gICAgICAgIH0KLSAgICB9Ci0gICAgaWYgKCFlcnJvckhhbmRsZWQpCi0gICAgICAg
IHRocmVhZCgpLT53b3JrZXJSZXBvcnRpbmdQcm94eSgpLnBvc3RFeGNlcHRpb25Ub1dvcmtlck9i
amVjdChlcnJvck1lc3NhZ2UsIGxpbmVOdW1iZXIsIHNvdXJjZVVSTCk7CisgICAgcmV0dXJuIHRo
aXM7Cit9CisKK3ZvaWQgV29ya2VyQ29udGV4dDo6bG9nRXhjZXB0aW9uVG9Db25zb2xlKGNvbnN0
IFN0cmluZyYgZXJyb3JNZXNzYWdlLCBpbnQgbGluZU51bWJlciwgY29uc3QgU3RyaW5nJiBzb3Vy
Y2VVUkwsIFNjcmlwdENhbGxTdGFjayopCit7CisgICAgdGhyZWFkKCktPndvcmtlclJlcG9ydGlu
Z1Byb3h5KCkucG9zdEV4Y2VwdGlvblRvV29ya2VyT2JqZWN0KGVycm9yTWVzc2FnZSwgbGluZU51
bWJlciwgc291cmNlVVJMKTsKIH0KIAogdm9pZCBXb3JrZXJDb250ZXh0OjphZGRNZXNzYWdlKE1l
c3NhZ2VTb3VyY2Ugc291cmNlLCBNZXNzYWdlVHlwZSB0eXBlLCBNZXNzYWdlTGV2ZWwgbGV2ZWws
IGNvbnN0IFN0cmluZyYgbWVzc2FnZSwgdW5zaWduZWQgbGluZU51bWJlciwgY29uc3QgU3RyaW5n
JiBzb3VyY2VVUkwpCmRpZmYgLS1naXQgYS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyQ29udGV4dC5o
IGIvV2ViQ29yZS93b3JrZXJzL1dvcmtlckNvbnRleHQuaAppbmRleCA0MTI4YTU2MjNiOGVmOGFk
YzM0MjA3NDE1M2EwZWE0YzZiOTg0ZDhmLi44MTczMDA2YWEyMjI0NjZkMThhZGViOWEzNDFkMzVi
NjVjZGE5ZmY5IDEwMDY0NAotLS0gYS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyQ29udGV4dC5oCisr
KyBiL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJDb250ZXh0LmgKQEAgLTk5LDcgKzk5LDYgQEAgbmFt
ZXNwYWNlIFdlYkNvcmUgewogICAgICAgICB2b2lkIGNsZWFySW50ZXJ2YWwoaW50IHRpbWVvdXRJ
ZCk7CiAKICAgICAgICAgLy8gU2NyaXB0RXhlY3V0aW9uQ29udGV4dAotICAgICAgICB2aXJ0dWFs
IHZvaWQgcmVwb3J0RXhjZXB0aW9uKGNvbnN0IFN0cmluZyYgZXJyb3JNZXNzYWdlLCBpbnQgbGlu
ZU51bWJlciwgY29uc3QgU3RyaW5nJiBzb3VyY2VVUkwpOwogICAgICAgICB2aXJ0dWFsIHZvaWQg
YWRkTWVzc2FnZShNZXNzYWdlU291cmNlLCBNZXNzYWdlVHlwZSwgTWVzc2FnZUxldmVsLCBjb25z
dCBTdHJpbmcmIG1lc3NhZ2UsIHVuc2lnbmVkIGxpbmVOdW1iZXIsIGNvbnN0IFN0cmluZyYgc291
cmNlVVJMKTsKIAogI2lmIEVOQUJMRShOT1RJRklDQVRJT05TKQpAQCAtMTcyLDYgKzE3MSw5IEBA
IG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgdmlydHVhbCBjb25zdCBLVVJMJiB2aXJ0dWFs
VVJMKCkgY29uc3Q7CiAgICAgICAgIHZpcnR1YWwgS1VSTCB2aXJ0dWFsQ29tcGxldGVVUkwoY29u
c3QgU3RyaW5nJikgY29uc3Q7CiAKKyAgICAgICAgdmlydHVhbCBFdmVudFRhcmdldCogZXJyb3JF
dmVudFRhcmdldCgpOworICAgICAgICB2aXJ0dWFsIHZvaWQgbG9nRXhjZXB0aW9uVG9Db25zb2xl
KGNvbnN0IFN0cmluZyYgZXJyb3JNZXNzYWdlLCBpbnQgbGluZU51bWJlciwgY29uc3QgU3RyaW5n
JiBzb3VyY2VVUkwsIFNjcmlwdENhbGxTdGFjayopOworCiAgICAgICAgIEtVUkwgbV91cmw7CiAg
ICAgICAgIFN0cmluZyBtX3VzZXJBZ2VudDsKIApAQCAtMTg1LDcgKzE4Nyw2IEBAIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKICAgICAgICAgbXV0YWJsZSBSZWZQdHI8Tm90aWZpY2F0aW9uQ2VudGVyPiBt
X25vdGlmaWNhdGlvbnM7CiAjZW5kaWYKICAgICAgICAgYm9vbCBtX2Nsb3Npbmc7Ci0gICAgICAg
IGJvb2wgbV9yZXBvcnRpbmdFeGNlcHRpb247CiAgICAgICAgIEV2ZW50VGFyZ2V0RGF0YSBtX2V2
ZW50VGFyZ2V0RGF0YTsKIAogICAgICAgICBIYXNoU2V0PE9ic2VydmVyKj4gbV93b3JrZXJPYnNl
cnZlcnM7CmRpZmYgLS1naXQgYS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyTWVzc2FnaW5nUHJveHku
Y3BwIGIvV2ViQ29yZS93b3JrZXJzL1dvcmtlck1lc3NhZ2luZ1Byb3h5LmNwcAppbmRleCAxMDcw
MGM2NGVmNjllNWE1ZjM3ZDAxYWZiMjQ0MzZmNWM1ZmNlMWExLi5hNzY2ZDYwMTFjZDkzYzM3ZWQy
MTEzMTI4YmI3ODMxMmIwNjIzMjk3IDEwMDY0NAotLS0gYS9XZWJDb3JlL3dvcmtlcnMvV29ya2Vy
TWVzc2FnaW5nUHJveHkuY3BwCisrKyBiL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJNZXNzYWdpbmdQ
cm94eS5jcHAKQEAgLTQwLDYgKzQwLDcgQEAKICNpbmNsdWRlICJFeGNlcHRpb25Db2RlLmgiCiAj
aW5jbHVkZSAiSW5zcGVjdG9yQ29udHJvbGxlci5oIgogI2luY2x1ZGUgIk1lc3NhZ2VFdmVudC5o
IgorI2luY2x1ZGUgIlNjcmlwdENhbGxTdGFjay5oIgogI2luY2x1ZGUgIlNjcmlwdEV4ZWN1dGlv
bkNvbnRleHQuaCIKICNpbmNsdWRlICJXb3JrZXIuaCIKIApAQCAtMTI5LDkgKzEzMCw5IEBAIHBy
aXZhdGU6CiAgICAgICAgIC8vIFdlIGRvbid0IGJvdGhlciBjaGVja2luZyB0aGUgYXNrZWRUb1Rl
cm1pbmF0ZSgpIGZsYWcgaGVyZSwgYmVjYXVzZSBleGNlcHRpb25zIHNob3VsZCAqYWx3YXlzKiBi
ZSByZXBvcnRlZCBldmVuIGlmIHRoZSB0aHJlYWQgaXMgdGVybWluYXRlZC4KICAgICAgICAgLy8g
VGhpcyBpcyBpbnRlbnRpb25hbGx5IGRpZmZlcmVudCB0aGFuIHRoZSBiZWhhdmlvciBpbiBNZXNz
YWdlV29ya2VyVGFzaywgYmVjYXVzZSB0ZXJtaW5hdGVkIHdvcmtlcnMgbm8gbG9uZ2VyIGRlbGl2
ZXIgbWVzc2FnZXMgKHNlY3Rpb24gNC42IG9mIHRoZSBXZWJXb3JrZXIgc3BlYyksIGJ1dCB0aGV5
IGRvIHJlcG9ydCBleGNlcHRpb25zLgogCi0gICAgICAgIGJvb2wgZXJyb3JIYW5kbGVkID0gIXdv
cmtlck9iamVjdC0+ZGlzcGF0Y2hFdmVudChFcnJvckV2ZW50OjpjcmVhdGUobV9lcnJvck1lc3Nh
Z2UsIG1fc291cmNlVVJMLCBtX2xpbmVOdW1iZXIpKTsKKyAgICAgICAgYm9vbCBlcnJvckhhbmRs
ZWQgPSAhd29ya2VyT2JqZWN0LT5kaXNwYXRjaEV2ZW50KEVycm9yRXZlbnQ6OmNyZWF0ZSgwLCBt
X2Vycm9yTWVzc2FnZSwgbV9zb3VyY2VVUkwsIG1fbGluZU51bWJlcikpOwogICAgICAgICBpZiAo
IWVycm9ySGFuZGxlZCkKLSAgICAgICAgICAgIGNvbnRleHQtPnJlcG9ydEV4Y2VwdGlvbihtX2Vy
cm9yTWVzc2FnZSwgbV9saW5lTnVtYmVyLCBtX3NvdXJjZVVSTCk7CisgICAgICAgICAgICBjb250
ZXh0LT5yZXBvcnRFeGNlcHRpb24oMCwgbV9lcnJvck1lc3NhZ2UsIG1fbGluZU51bWJlciwgbV9z
b3VyY2VVUkwsIDApOwogICAgIH0KIAogICAgIFN0cmluZyBtX2Vycm9yTWVzc2FnZTsKZGlmZiAt
LWdpdCBhL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cgYi9XZWJLaXQvY2hyb21pdW0vQ2hhbmdl
TG9nCmluZGV4IGU2YzgwMGI2ZmVjOGJjY2FmODhiYzBjYjViZTcwZmIxYjJkZTAxNzkuLmY1OTg0
M2YzMWZkZDAyMzMxZTRiYzRhYmYzOTBiMmY0OTRjMGI5ZGQgMTAwNjQ0Ci0tLSBhL1dlYktpdC9j
aHJvbWl1bS9DaGFuZ2VMb2cKKysrIGIvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwpAQCAtMSwz
ICsxLDE4IEBACisyMDEwLTEwLTAxICBZdXJ5IFNlbWlraGF0c2t5ICA8eXVyeXNAY2hyb21pdW0u
b3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFdl
YkNvcmUgZG9lc24ndCBmaXJlIHdpbmRvdy5vbmVycm9yIGV2ZW50IHdoZW4gdW5jYXVnaHQgSmF2
YVNjcmlwdCBleGNlcHRpb25zIGFyZSB0aHJvd24KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTg1MTkKKworICAgICAgICBVbmNhdWdodCBleGNlcHRpb25z
IGFyZSBwcm9wYWdhdGVkIHRvIHdpbmRvdy5vbmVycm9yIGhhbmRlciBpZiBvbmUgaXMgcHJlc2Vu
dC4KKyAgICAgICAgVGhlIGhhbmRsZXIgaXMgZXhwZWN0ZWQgdG8gYmUgYSBmdW5jdGlvbiBhY2Nl
cHRpbmcgdGhyZWUgYXJndW1lbnRzOiBlcnJvciBtZXNzYWdlLAorICAgICAgICByZXNvdXJjZSB1
cmwgYW5kIGxpbmUgbnVtYmVyIHdoZXJlIHRoZSBleGNlcHRpb24gb2NjdXJlZC4KKworICAgICAg
ICAqIHNyYy9XZWJXb3JrZXJDbGllbnRJbXBsLmNwcDogcmVwb3J0RXhjZXB0aW9uIHNpZ25hdHVy
ZSBoYXMgY2hhbmdlZCwgY2FsbCBwbGFjZXNzIGFyZSB1cGRldGVkLgorICAgICAgICAoV2ViS2l0
OjpXZWJXb3JrZXJDbGllbnRJbXBsOjpwb3N0RXhjZXB0aW9uVG9Xb3JrZXJPYmplY3QpOgorICAg
ICAgICAoV2ViS2l0OjpXZWJXb3JrZXJDbGllbnRJbXBsOjpwb3N0RXhjZXB0aW9uVG9Xb3JrZXJP
YmplY3RUYXNrKToKKwogMjAxMC0xMC0wMSAgTWloYWkgUGFycGFyaXRhICA8bWloYWlwQGNocm9t
aXVtLm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBieSBOYXRlIENoYXBpbi4KZGlmZiAtLWdpdCBh
L1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViV29ya2VyQ2xpZW50SW1wbC5jcHAgYi9XZWJLaXQvY2hy
b21pdW0vc3JjL1dlYldvcmtlckNsaWVudEltcGwuY3BwCmluZGV4IDE4MjgyZTM0MTZiNzNkZTJl
Y2QwNDYzMmQ2YmNlNzUyZmRkMzI5YTYuLmQwN2Q2YzFmOTcxMmE4MmMwNTkwMDAyYmIyZGYyOGM3
NTkzZWVmNDEgMTAwNjQ0Ci0tLSBhL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViV29ya2VyQ2xpZW50
SW1wbC5jcHAKKysrIGIvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJXb3JrZXJDbGllbnRJbXBsLmNw
cApAQCAtNDEsNiArNDEsNyBAQAogI2luY2x1ZGUgIk1lc3NhZ2VFdmVudC5oIgogI2luY2x1ZGUg
Ik1lc3NhZ2VQb3J0LmgiCiAjaW5jbHVkZSAiTWVzc2FnZVBvcnRDaGFubmVsLmgiCisjaW5jbHVk
ZSAiU2NyaXB0Q2FsbFN0YWNrLmgiCiAjaW5jbHVkZSAiU2NyaXB0RXhlY3V0aW9uQ29udGV4dC5o
IgogI2luY2x1ZGUgIldvcmtlci5oIgogI2luY2x1ZGUgIldvcmtlckNvbnRleHQuaCIKQEAgLTI0
MywxMSArMjQ0LDEyIEBAIHZvaWQgV2ViV29ya2VyQ2xpZW50SW1wbDo6cG9zdEV4Y2VwdGlvblRv
V29ya2VyT2JqZWN0KGNvbnN0IFdlYlN0cmluZyYgZXJyb3JNZXNzCiAgICAgICAgIHJldHVybjsK
ICAgICB9CiAKLSAgICBib29sIHVuaGFuZGxlZCA9IG1fd29ya2VyLT5kaXNwYXRjaEV2ZW50KEVy
cm9yRXZlbnQ6OmNyZWF0ZShlcnJvck1lc3NhZ2UsCisgICAgYm9vbCB1bmhhbmRsZWQgPSBtX3dv
cmtlci0+ZGlzcGF0Y2hFdmVudChFcnJvckV2ZW50OjpjcmVhdGUoMCwKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlcnJvck1l
c3NhZ2UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgc291cmNlVVJMLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpbmVOdW1iZXIpKTsKICAgICBpZiAo
dW5oYW5kbGVkKQotICAgICAgICBtX3NjcmlwdEV4ZWN1dGlvbkNvbnRleHQtPnJlcG9ydEV4Y2Vw
dGlvbihlcnJvck1lc3NhZ2UsIGxpbmVOdW1iZXIsIHNvdXJjZVVSTCk7CisgICAgICAgIG1fc2Ny
aXB0RXhlY3V0aW9uQ29udGV4dC0+cmVwb3J0RXhjZXB0aW9uKDAsIGVycm9yTWVzc2FnZSwgbGlu
ZU51bWJlciwgc291cmNlVVJMLCAwKTsKIH0KIAogdm9pZCBXZWJXb3JrZXJDbGllbnRJbXBsOjpw
b3N0Q29uc29sZU1lc3NhZ2VUb1dvcmtlck9iamVjdChpbnQgZGVzdGluYXRpb24sCkBAIC0zNzcs
MTMgKzM3OSwxNiBAQCB2b2lkIFdlYldvcmtlckNsaWVudEltcGw6OnBvc3RFeGNlcHRpb25Ub1dv
cmtlck9iamVjdFRhc2soCiB7CiAgICAgYm9vbCBoYW5kbGVkID0gZmFsc2U7CiAgICAgaWYgKHRo
aXNQdHItPm1fd29ya2VyKQotICAgICAgICBoYW5kbGVkID0gdGhpc1B0ci0+bV93b3JrZXItPmRp
c3BhdGNoRXZlbnQoRXJyb3JFdmVudDo6Y3JlYXRlKGVycm9yTWVzc2FnZSwKKyAgICAgICAgaGFu
ZGxlZCA9IHRoaXNQdHItPm1fd29ya2VyLT5kaXNwYXRjaEV2ZW50KEVycm9yRXZlbnQ6OmNyZWF0
ZSgwLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGVycm9yTWVzc2FnZSwKICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzb3VyY2VVUkws
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgbGluZU51bWJlcikpOwogICAgIGlmICghaGFuZGxlZCkKLSAgICAgICAg
dGhpc1B0ci0+bV9zY3JpcHRFeGVjdXRpb25Db250ZXh0LT5yZXBvcnRFeGNlcHRpb24oZXJyb3JN
ZXNzYWdlLAorICAgICAgICB0aGlzUHRyLT5tX3NjcmlwdEV4ZWN1dGlvbkNvbnRleHQtPnJlcG9y
dEV4Y2VwdGlvbigwLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBlcnJvck1lc3NhZ2UsCiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpbmVOdW1iZXIsCi0gICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNvdXJjZVVS
TCk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHNvdXJjZVVSTCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgMCk7CiB9CiAKIHZvaWQgV2ViV29ya2VyQ2xpZW50SW1wbDo6
cG9zdENvbnNvbGVNZXNzYWdlVG9Xb3JrZXJPYmplY3RUYXNrKFNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHQqIGNvbnRleHQsCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>71157</attachid>
            <date>2010-10-19 05:47:48 -0700</date>
            <delta_ts>2010-10-19 07:01:42 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-8519-20101019164744.patch</filename>
            <type>text/plain</type>
            <size>109450</size>
            <attacher name="Yury Semikhatsky">yurys</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCAzMzA0N2Q1OGIwMjY1OWRjZDlkMDA4ZDVmMWMxM2FlNmE0ZGUzOTIyLi5hN2E2OWUx
YzBlMzUwYzI4ZmJlNWMxNzkyY2IxMWZmZTcyMjIzYzVlIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNjMgQEAK
KzIwMTAtMTAtMTkgIGFsZXhAd2Via2l0Lm9yZyAgPGFsZXhAd2Via2l0Lm9yZ0AyNjhmNDVjYy1j
ZDA5LTA0MTAtYWIzYy1kNTI2OTFiNGRiZmM+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgV2ViQ29yZSBkb2Vzbid0IGZpcmUgd2luZG93Lm9uZXJyb3Ig
ZXZlbnQgd2hlbiB1bmNhdWdodCBKYXZhU2NyaXB0IGV4Y2VwdGlvbnMgYXJlIHRocm93bgorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODUxOQorCisgICAg
ICAgIFVuY2F1Z2h0IGV4Y2VwdGlvbnMgYXJlIHByb3BhZ2F0ZWQgdG8gd2luZG93Lm9uZXJyb3Ig
aGFuZGVyIGlmIG9uZSBpcyBwcmVzZW50LgorICAgICAgICBUaGUgaGFuZGxlciBpcyBleHBlY3Rl
ZCB0byBiZSBhIGZ1bmN0aW9uIGFjY2VwdGluZyB0aHJlZSBhcmd1bWVudHM6IGVycm9yIG1lc3Nh
Z2UsCisgICAgICAgIHJlc291cmNlIHVybCBhbmQgbGluZSBudW1iZXIgd2hlcmUgdGhlIGV4Y2Vw
dGlvbiBvY2N1cmVkLgorCisgICAgICAgICogZmFzdC9ldmVudHMvcmVzb3VyY2VzL3dpbmRvdy1v
bmVycm9yLmpzOiBBZGRlZC4KKyAgICAgICAgKHRocm93RXhjZXB0aW9uKToKKyAgICAgICAgKiBm
YXN0L2V2ZW50cy93aW5kb3ctb25lcnJvcjEtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAg
KiBmYXN0L2V2ZW50cy93aW5kb3ctb25lcnJvcjEuaHRtbDogQWRkZWQuCisgICAgICAgICogZmFz
dC9ldmVudHMvd2luZG93LW9uZXJyb3IxMC1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAq
IGZhc3QvZXZlbnRzL3dpbmRvdy1vbmVycm9yMTAuaHRtbDogQWRkZWQuCisgICAgICAgICogZmFz
dC9ldmVudHMvd2luZG93LW9uZXJyb3IxMS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAq
IGZhc3QvZXZlbnRzL3dpbmRvdy1vbmVycm9yMTEuaHRtbDogQWRkZWQuCisgICAgICAgICogZmFz
dC9ldmVudHMvd2luZG93LW9uZXJyb3IyLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICog
ZmFzdC9ldmVudHMvd2luZG93LW9uZXJyb3IyLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3Qv
ZXZlbnRzL3dpbmRvdy1vbmVycm9yMy1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZh
c3QvZXZlbnRzL3dpbmRvdy1vbmVycm9yMy5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2V2
ZW50cy93aW5kb3ctb25lcnJvcjQtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0
L2V2ZW50cy93aW5kb3ctb25lcnJvcjQuaHRtbDogQWRkZWQuCisgICAgICAgICogZmFzdC9ldmVu
dHMvd2luZG93LW9uZXJyb3I1LWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC9l
dmVudHMvd2luZG93LW9uZXJyb3I1Lmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZXZlbnRz
L3dpbmRvdy1vbmVycm9yNi1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZXZl
bnRzL3dpbmRvdy1vbmVycm9yNi5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2V2ZW50cy93
aW5kb3ctb25lcnJvcjctZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2V2ZW50
cy93aW5kb3ctb25lcnJvcjcuaHRtbDogQWRkZWQuCisgICAgICAgICogZmFzdC9ldmVudHMvd2lu
ZG93LW9uZXJyb3I4LWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC9ldmVudHMv
d2luZG93LW9uZXJyb3I4Lmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZXZlbnRzL3dpbmRv
dy1vbmVycm9yOS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZXZlbnRzL3dp
bmRvdy1vbmVycm9yOS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L3dvcmtlcnMvd29ya2Vy
LXNjcmlwdC1lcnJvci1leHBlY3RlZC50eHQ6CisgICAgICAgICogaHR0cC90ZXN0cy9zZWN1cml0
eS9yZXNvdXJjZXMvb25lcnJvci1pZnJhbWUuaHRtbDogQWRkZWQuCisgICAgICAgICogaHR0cC90
ZXN0cy9zZWN1cml0eS93aW5kb3ctb25lcnJvci1leGNlcHRpb24taW4taWZyYW1lLWV4cGVjdGVk
LnR4dDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9zZWN1cml0eS93aW5kb3ctb25lcnJv
ci1leGNlcHRpb24taW4taWZyYW1lLmh0bWw6IEFkZGVkLgorICAgICAgICAqIHBsYXRmb3JtL2No
cm9taXVtLXdpbi9mYXN0L3dvcmtlcnMvd29ya2VyLXNjcmlwdC1lcnJvci1leHBlY3RlZC50eHQ6
CisgICAgICAgICogcGxhdGZvcm0vY2hyb21pdW0vZmFzdC9ldmVudHMvd2luZG93LW9uZXJyb3Ix
LWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogcGxhdGZvcm0vY2hyb21pdW0vZmFzdC9l
dmVudHMvd2luZG93LW9uZXJyb3IxMC1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIHBs
YXRmb3JtL2Nocm9taXVtL2Zhc3QvZXZlbnRzL3dpbmRvdy1vbmVycm9yMTEtZXhwZWN0ZWQudHh0
OiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS9mYXN0L2V2ZW50cy93aW5kb3ct
b25lcnJvcjItZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1
bS9mYXN0L2V2ZW50cy93aW5kb3ctb25lcnJvcjMtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAg
ICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS9mYXN0L2V2ZW50cy93aW5kb3ctb25lcnJvcjQtZXhwZWN0
ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS9mYXN0L2V2ZW50cy93
aW5kb3ctb25lcnJvcjUtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9j
aHJvbWl1bS9mYXN0L2V2ZW50cy93aW5kb3ctb25lcnJvcjYtZXhwZWN0ZWQudHh0OiBBZGRlZC4K
KyAgICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS9mYXN0L2V2ZW50cy93aW5kb3ctb25lcnJvcjct
ZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS9mYXN0L2V2
ZW50cy93aW5kb3ctb25lcnJvcjgtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBwbGF0
Zm9ybS9jaHJvbWl1bS9mYXN0L2V2ZW50cy93aW5kb3ctb25lcnJvcjktZXhwZWN0ZWQudHh0OiBB
ZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS9odHRwL3Rlc3RzL3NlY3VyaXR5L3dp
bmRvdy1vbmVycm9yLWV4Y2VwdGlvbi1pbi1pZnJhbWUtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAg
ICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS91c2Vyc2NyaXB0cy93aW5kb3ctb25lcnJvci1mb3It
aXNvbGF0ZWQtd29ybGQtMS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIHBsYXRmb3Jt
L2Nocm9taXVtL3VzZXJzY3JpcHRzL3dpbmRvdy1vbmVycm9yLWZvci1pc29sYXRlZC13b3JsZC0y
LWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogdXNlcnNjcmlwdHMvd2luZG93LW9uZXJy
b3ItZm9yLWlzb2xhdGVkLXdvcmxkLTEtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiB1
c2Vyc2NyaXB0cy93aW5kb3ctb25lcnJvci1mb3ItaXNvbGF0ZWQtd29ybGQtMS5odG1sOiBBZGRl
ZC4KKyAgICAgICAgKiB1c2Vyc2NyaXB0cy93aW5kb3ctb25lcnJvci1mb3ItaXNvbGF0ZWQtd29y
bGQtMi1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIHVzZXJzY3JpcHRzL3dpbmRvdy1v
bmVycm9yLWZvci1pc29sYXRlZC13b3JsZC0yLmh0bWw6IEFkZGVkLgorICAgICAgICAqIHVzZXJz
Y3JpcHRzL3dpbmRvdy1vbmVycm9yLWZvci1pc29sYXRlZC13b3JsZC5odG1sOiBBZGRlZC4KKwog
MjAxMC0xMC0xOCAgQWRhbSBCYXJ0aCAgPGFiYXJ0aEB3ZWJraXQub3JnPgogCiAgICAgICAgIEFk
ZCBtb3JlIFNraXBwZWQgbGlzdCBlbnRyaWVzIGJlY2F1c2UgV2ViUCByZXF1aXJlcyBhbiBleHRl
cm5hbCBkZWNvZGVyCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9yZXNvdXJj
ZXMvd2luZG93LW9uZXJyb3IuanMgYi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9yZXNvdXJjZXMv
d2luZG93LW9uZXJyb3IuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMzQ0NTc0YmI2NTNjM2ZlZGYyMzE1MTZlMWQw
Yjk5NjAzODliYWY2MAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRz
L3Jlc291cmNlcy93aW5kb3ctb25lcnJvci5qcwpAQCAtMCwwICsxLDMgQEAKK2Z1bmN0aW9uIHRo
cm93RXhjZXB0aW9uKCkgeworICAgIHRocm93IG5ldyBFcnJvcigiQW4gZXhjZXB0aW9uIik7Cit9
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy93aW5kb3ctb25lcnJvcjEtZXhw
ZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvd2luZG93LW9uZXJyb3IxLWV4cGVj
dGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi5mZTUxYjcyMmYwYjM3MDlhZWNkNGI4MTVjZDIwNzA5NWMwMjQ2
NTQ1Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvd2luZG93LW9u
ZXJyb3IxLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDMgQEAKK1RoaXMgcGFnZSB0ZXN0cyBzZXR0
aW5nIG9uZXJyb3IgaGFuZGxlcnMgdGhyb3VnaCB0aGUgRE9NLiBJZiBpdCBwYXNzZXMsIHlvdSB3
aWxsIHNlZSAiUEFTUyIgbWVzc2FnZXMgYmVsb3cuQnVnIDg1MTkuCisKK1BBU1M6IGNhdWdodCBn
bG9iYWwgZXJyb3I6IFJlZmVyZW5jZUVycm9yOiBDYW4ndCBmaW5kIHZhcmlhYmxlOiBoYWhhaGFf
Z29vZF9sdWNrX2ZpbmRpbmdfbWUgYXQgd2luZG93LW9uZXJyb3IxLmh0bWw6MjUKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3dpbmRvdy1vbmVycm9yMS5odG1sIGIvTGF5b3V0
VGVzdHMvZmFzdC9ldmVudHMvd2luZG93LW9uZXJyb3IxLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNTlkMjQ5
NTg2ODg1NTc0YWUwOGIzNjVhYzIxYWQxMTFjYjczYTVmMwotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL2Zhc3QvZXZlbnRzL3dpbmRvdy1vbmVycm9yMS5odG1sCkBAIC0wLDAgKzEsMzUg
QEAKKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0PgoraWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJv
bGxlcikKKyAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7CisKK2Z1bmN0aW9u
IHByaW50KG1lc3NhZ2UsIGNvbG9yKQoreworICAgIHZhciBwYXJhZ3JhcGggPSBkb2N1bWVudC5j
cmVhdGVFbGVtZW50KCJkaXYiKTsKKyAgICBwYXJhZ3JhcGguYXBwZW5kQ2hpbGQoZG9jdW1lbnQu
Y3JlYXRlVGV4dE5vZGUobWVzc2FnZSkpOworICAgIHBhcmFncmFwaC5zdHlsZS5mb250RmFtaWx5
ID0gIm1vbm9zcGFjZSI7CisgICAgaWYgKGNvbG9yKQorICAgICAgICBwYXJhZ3JhcGguc3R5bGUu
Y29sb3IgPSBjb2xvcjsKKyAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY29uc29sZSIpLmFw
cGVuZENoaWxkKHBhcmFncmFwaCk7Cit9CisKK2Z1bmN0aW9uIHRlc3QoKQoreworICAgIC8vIG11
c3QgYmUgbGFzdCBiZWNhdXNlIHRoZSBleGNlcHRpb24gZW5kcyBKYXZhU2NyaXB0IGV4ZWN1dGlv
bgorICAgIHdpbmRvdy5vbmVycm9yID0gZnVuY3Rpb24gKGVycm9yLCB1cmwsIGxpbmUpIHsKKyAg
ICAgICAgdXJsID0gdXJsID8gdXJsLm1hdGNoKCAvW15cL10rXC8/JC8gKVswXSA6IHVybDsKKyAg
ICAgICAgcHJpbnQoIlBBU1M6IGNhdWdodCBnbG9iYWwgZXJyb3I6ICIgKyBlcnJvciArICIgYXQg
IiArIHVybCArICI6IiArIGxpbmUsICJncmVlbiIpOworICAgICAgICByZXR1cm4gZmFsc2U7Cisg
ICAgfTsKKyAgICBoYWhhaGFfZ29vZF9sdWNrX2ZpbmRpbmdfbWUoKTsgLy8gY2F1Z2h0IGJ5IHdp
bmRvdy5vbmVycm9yCit9Cis8L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5IG9ubG9hZD0idGVzdCgp
OyI+Cis8cD5UaGlzIHBhZ2UgdGVzdHMgc2V0dGluZyBvbmVycm9yIGhhbmRsZXJzIHRocm91Z2gg
dGhlIERPTS4gSWYgaXQgcGFzc2VzLCB5b3Ugd2lsbAorICAgc2VlICJQQVNTIiBtZXNzYWdlcyBi
ZWxvdy48YSBocmVmPSJodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODUx
OSI+QnVnIDg1MTk8L2E+LjwvcD4KKzxocj4KKzxkaXYgaWQ9J2NvbnNvbGUnPjwvZGl2PgorPC9i
b2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvd2luZG93
LW9uZXJyb3IxMC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy93aW5kb3ct
b25lcnJvcjEwLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iZmY1NjM2NTQxMWYxZDlmMDc5N2Jk
YjAwODc1MTE3NjY5YjQ5NGQxCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9l
dmVudHMvd2luZG93LW9uZXJyb3IxMC1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxMSBAQAorVGVz
dCB0aGF0ICJlcnJvciIgZXZlbnQgbGlzdGVuZXIgYWRkZWQgd2l0aCB3aW5kb3cuYWRkRXZlbnRM
aXN0ZW5lciBpcyBpbnZva2VkIGZvciB1bmNhdWNodCBleGNlcHRpb25zLiBCdWcgODUxOS4KKwor
ZXZlbnQgcGFzc2VkIHRvIHRoZSBsaXN0ZW5lciBpcyB0aGUgc2FtZSBhcyB3aW5kb3cuZXZlbnQ6
IHRydWUKK0V2ZW50IGRldGFpbHM6Cit0eXBlOiBlcnJvcgorcGhhc2U6IDIKK2N1cnJlbnRUYXJn
ZXQgaXMgdGhlIGdsb2JhbCBvYmplY3Q6IHRydWUKK21lc3NhZ2U6IEVycm9yOiBNeSBmYXVsdC4K
K2ZpbGVuYW1lOiB3aW5kb3ctb25lcnJvcjEwLmh0bWwKK2xpbmVubzogMjkKKwpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvd2luZG93LW9uZXJyb3IxMC5odG1sIGIvTGF5b3V0
VGVzdHMvZmFzdC9ldmVudHMvd2luZG93LW9uZXJyb3IxMC5odG1sCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjI2ZWQw
MThmZGYxOGEzNDczODUzZTFjMTA2ZGE4YzVlZDk2MDIxZmUKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy9mYXN0L2V2ZW50cy93aW5kb3ctb25lcnJvcjEwLmh0bWwKQEAgLTAsMCArMSwz
MyBAQAorPGh0bWw+Cis8Ym9keT4KKzxwPlRlc3QgdGhhdCAiZXJyb3IiIGV2ZW50IGxpc3RlbmVy
IGFkZGVkIHdpdGggd2luZG93LmFkZEV2ZW50TGlzdGVuZXIgaXMgaW52b2tlZCBmb3IgdW5jYXVj
aHQgZXhjZXB0aW9ucy4gPGEgaHJlZj0iaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTg1MTkiPkJ1ZyA4NTE5PC9hPi48L3A+Cis8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4K
KzxzY3JpcHQ+CitpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQorICAgIGxheW91dFRl
c3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKKworZnVuY3Rpb24gbG9nKG1zZykgeworICAgIGRv
Y3VtZW50LmdldEVsZW1lbnRCeUlkKCJjb25zb2xlIikuaW5uZXJIVE1MICs9IG1zZyArICI8YnI+
IjsKK30KKworZnVuY3Rpb24gbGFzdFBhdGhDb21wb25lbnQodXJsKSB7CisgICAgcmV0dXJuIHVy
bCA/IHVybC5tYXRjaCggL1teXC9dK1wvPyQvIClbMF0gOiB1cmw7Cit9CisKK3dpbmRvdy5hZGRF
dmVudExpc3RlbmVyKCJlcnJvciIsIGZ1bmN0aW9uKGUpIHsKKyAgICBsb2coImV2ZW50IHBhc3Nl
ZCB0byB0aGUgbGlzdGVuZXIgaXMgdGhlIHNhbWUgYXMgd2luZG93LmV2ZW50OiAiICsgKHdpbmRv
dy5ldmVudCA9PT0gZSkpOworICAgIGxvZygiRXZlbnQgZGV0YWlsczoiKTsKKyAgICBsb2coInR5
cGU6ICIgKyBlLnR5cGUpOworICAgIGxvZygicGhhc2U6ICIgKyBlLmV2ZW50UGhhc2UpCisgICAg
bG9nKCJjdXJyZW50VGFyZ2V0IGlzIHRoZSBnbG9iYWwgb2JqZWN0OiAiICsgKGUuY3VycmVudFRh
cmdldCA9PT0gd2luZG93KSk7CisgICAgbG9nKCJtZXNzYWdlOiAiICsgZS5tZXNzYWdlKTsKKyAg
ICBsb2coImZpbGVuYW1lOiAiICsgbGFzdFBhdGhDb21wb25lbnQoZS5maWxlbmFtZSkpOworICAg
IGxvZygibGluZW5vOiAiICsgZS5saW5lbm8pOworICAgIGUucHJldmVudERlZmF1bHQoKTsKK30s
IGZhbHNlKTsKKwordGhyb3cgbmV3IEVycm9yKCJNeSBmYXVsdC4iKTsKKworPC9zY3JpcHQ+Cis8
L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy93aW5k
b3ctb25lcnJvcjExLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3dpbmRv
dy1vbmVycm9yMTEtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjk2ZTIwY2MzZWMzYjEwYjc1M2Ni
YWNkNmQwYmEwOTQzZGNkZWUyNjQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0
L2V2ZW50cy93aW5kb3ctb25lcnJvcjExLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDQgQEAKK1Rl
c3QgdGhhdCB3aW5kb3cub25lcnJvciBpcyBjYWxsZWQgb24gd2luZG93IG9iamVjdC4gQnVnIDg1
MTkuCisKK01haW4gZnJhbWUgd2luZG93Lm9uZXJyb3I6IEVycm9yOiBBbiBleGNlcHRpb24gYXQg
d2luZG93LW9uZXJyb3IuanM6MgorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50
cy93aW5kb3ctb25lcnJvcjExLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy93aW5kb3ct
b25lcnJvcjExLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNzY1NWZhNzI3ZDhiNTYyYTBiZTQzZWFlMjNkMWMw
NjQxMDQyZTQ1MwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3dp
bmRvdy1vbmVycm9yMTEuaHRtbApAQCAtMCwwICsxLDI4IEBACis8aHRtbD4KKzxoZWFkPgorPHNj
cmlwdCBzcmM9InJlc291cmNlcy93aW5kb3ctb25lcnJvci5qcyI+Cis8L3NjcmlwdD4KKzwvaGVh
ZD4KKzxib2R5PgorPHA+VGVzdCB0aGF0IHdpbmRvdy5vbmVycm9yIGlzIGNhbGxlZCBvbiB3aW5k
b3cgb2JqZWN0LiA8YSBocmVmPSJodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9ODUxOSI+QnVnIDg1MTk8L2E+LjwvcD4KKzxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgorPHNj
cmlwdD4KK2lmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCisgICAgbGF5b3V0VGVzdENv
bnRyb2xsZXIuZHVtcEFzVGV4dCgpOworCitmdW5jdGlvbiBsb2cobXNnKSB7CisgICAgZG9jdW1l
bnQuZ2V0RWxlbWVudEJ5SWQoImNvbnNvbGUiKS5pbm5lckhUTUwgKz0gbXNnICsgIjxicj4iOwor
fQorCit3aW5kb3cub25lcnJvciA9IGZ1bmN0aW9uKG1zZywgdXJsLCBsaW5lKQoreworICAgIHVy
bCA9IHVybCA/IHVybC5tYXRjaCggL1teXC9dK1wvPyQvIClbMF0gOiB1cmw7CisgICAgbG9nKCJN
YWluIGZyYW1lIHdpbmRvdy5vbmVycm9yOiAiICsgbXNnICsgIiBhdCAiICsgdXJsICsgIjoiICsg
bGluZSk7CisgICAgcmV0dXJuIGZhbHNlOworfQorCit0aHJvd0V4Y2VwdGlvbigpOworCis8L3Nj
cmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZXZl
bnRzL3dpbmRvdy1vbmVycm9yMi1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50
cy93aW5kb3ctb25lcnJvcjItZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjkzYTJkM2YxM2IxZDFi
ODc5NjRmNjM4YzZmNWJmNzI2ZDkxMjc2NzgKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy9mYXN0L2V2ZW50cy93aW5kb3ctb25lcnJvcjItZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNiBA
QAorVGVzdCB0aGF0IHVuY2F1Z2h0IGV4Y2VwdGlvbnMgd2lsbCBiZSByZXBvcnRlZCB0byB0aGUg
d2luZG93Lm9uZXJyb3IgaGFuZGxlci4gQnVnIDg1MTkuCisKK01haW4gZnJhbWUgd2luZG93Lm9u
ZXJyb3I6IEVycm9yOiBJbmxpbmUgc2NyaXB0IGV4Y2VwdGlvbiBhdCB3aW5kb3ctb25lcnJvcjIu
aHRtbDozNQorTWFpbiBmcmFtZSB3aW5kb3cub25lcnJvcjogRXhjZXB0aW9uIGluIG9ubG9hZCBh
dCB1bmRlZmluZWQ6MAorTWFpbiBmcmFtZSB3aW5kb3cub25lcnJvcjogRXJyb3I6IEV4Y2VwdGlv
biBpbiBzZXRUaW1lb3V0IGF0IHdpbmRvdy1vbmVycm9yMi5odG1sOjI5CisKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3dpbmRvdy1vbmVycm9yMi5odG1sIGIvTGF5b3V0VGVz
dHMvZmFzdC9ldmVudHMvd2luZG93LW9uZXJyb3IyLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZGI5ZmI3NWVj
NDA2MmFjN2U0ZjNiZjU2MDNlNGE1OGJmZDU0ZTNmNwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL2Zhc3QvZXZlbnRzL3dpbmRvdy1vbmVycm9yMi5odG1sCkBAIC0wLDAgKzEsNDEgQEAK
KzxodG1sPgorPGJvZHkgb25sb2FkPSJ0aHJvdyAnRXhjZXB0aW9uIGluIG9ubG9hZCc7Ij4KKzxw
PlRlc3QgdGhhdCB1bmNhdWdodCBleGNlcHRpb25zIHdpbGwgYmUgcmVwb3J0ZWQgdG8gdGhlIHdp
bmRvdy5vbmVycm9yIGhhbmRsZXIuIDxhIGhyZWY9Imh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD04NTE5Ij5CdWcgODUxOTwvYT4uPC9wPgorPGRpdiBpZD0icmVzdWx0Ij48
L2Rpdj4KKzxzY3JpcHQ+CitpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKSB7CisgICAg
bGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOworICAgIGxheW91dFRlc3RDb250cm9s
bGVyLndhaXRVbnRpbERvbmUoKTsKK30KKworZnVuY3Rpb24gbG9nKG1zZykgeworICAgIGRvY3Vt
ZW50LmdldEVsZW1lbnRCeUlkKCJyZXN1bHQiKS5pbm5lckhUTUwgKz0gbXNnICsgIjxicj4iOwor
fQorCit2YXIgdW5oYW5kbGVkRXJyb3JDb3VudCA9IDA7Cit3aW5kb3cub25lcnJvciA9IGZ1bmN0
aW9uKG1zZywgdXJsLCBsaW5lKQoreworICAgIHVybCA9IHVybCA/IHVybC5tYXRjaCggL1teXC9d
K1wvPyQvIClbMF0gOiB1cmw7CisgICAgbG9nKCJNYWluIGZyYW1lIHdpbmRvdy5vbmVycm9yOiAi
ICsgbXNnICsgIiBhdCAiICsgdXJsICsgIjoiICsgbGluZSk7CisgICAgCisgICAgaWYgKCsrdW5o
YW5kbGVkRXJyb3JDb3VudCA9PT0gMyAmJiB3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCisg
ICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLm5vdGlmeURvbmUoKTsKKworICAgIHJldHVybiBm
YWxzZTsKK30KKworZnVuY3Rpb24gZGVsYXllZFRocm93RXhjZXB0aW9uKCkKK3sKKyAgICB0aHJv
dyBuZXcgRXJyb3IoIkV4Y2VwdGlvbiBpbiBzZXRUaW1lb3V0Iik7Cit9CitzZXRUaW1lb3V0KGRl
bGF5ZWRUaHJvd0V4Y2VwdGlvbiwgMCk7CisKK2Z1bmN0aW9uIHRocm93RXhjZXB0aW9uKCkKK3sK
KyAgICB0aHJvdyBuZXcgRXJyb3IoIklubGluZSBzY3JpcHQgZXhjZXB0aW9uIik7Cit9Cit0aHJv
d0V4Y2VwdGlvbigpOworCis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3dpbmRvdy1vbmVycm9yMy1leHBlY3RlZC50eHQgYi9M
YXlvdXRUZXN0cy9mYXN0L2V2ZW50cy93aW5kb3ctb25lcnJvcjMtZXhwZWN0ZWQudHh0Cm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLjcwMjVkYmI5N2EyY2Y0MjlkZjJhODExOTA5MWNhNzZlN2E4MDY3MzEKLS0tIC9kZXYv
bnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy93aW5kb3ctb25lcnJvcjMtZXhwZWN0
ZWQudHh0CkBAIC0wLDAgKzEsNCBAQAorWW91IHNob3VsZCBzZWUgYSBtZXNzYWdlIGlmIHdpbmRv
dy5vbmVycm9yIGlzIHdvcmtpbmcgcHJvcGVybHkgZm9yIHRoaXMgdGVzdC5CdWcgODUxOS4KKwor
RXJyb3IgY2F1Z2h0IHN1Y2Nlc3NmdWxseTogUmVmZXJlbmNlRXJyb3I6IENhbid0IGZpbmQgdmFy
aWFibGU6IHVua25vd25PYmplY3QgRmlsZTogd2luZG93LW9uZXJyb3IzLmh0bWwgTGluZTogMTYK
KwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvd2luZG93LW9uZXJyb3IzLmh0
bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy93aW5kb3ctb25lcnJvcjMuaHRtbApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi5lZTI4OTNmMGM3ZDk5MzIxNzZjMGVhMzFlYTRmMGQyMTBjZWYxM2NmCi0tLSAvZGV2L251
bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvd2luZG93LW9uZXJyb3IzLmh0bWwKQEAg
LTAsMCArMSwyMyBAQAorPHNjcmlwdD4KK2lmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIp
CisgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOworCitmdW5jdGlvbiBsb2co
bXNnKSB7CisgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNvbnNvbGUiKS5pbm5lckhUTUwg
Kz0gbXNnICsgIjxicj4iOworfQorCitmdW5jdGlvbiB0ZXN0MSgpCit7CisgICAgd2luZG93Lm9u
ZXJyb3IgPSBmdW5jdGlvbiAoZXJyb3IsIHVybCwgbGluZSkgeworICAgICAgICB1cmwgPSB1cmwg
PyB1cmwubWF0Y2goIC9bXlwvXStcLz8kLyApWzBdIDogdXJsOworICAgICAgICBsb2coIkVycm9y
IGNhdWdodCBzdWNjZXNzZnVsbHk6ICIgKyBlcnJvciArICJcbkZpbGU6ICIgKyB1cmwgKyAiXG5M
aW5lOiAiICsgbGluZSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH07CisgICAgdW5rbm93
bk9iamVjdC51bmtub3duUHJvcGVydHkrKzsKK30KKzwvc2NyaXB0PgorPGJvZHkgb25sb2FkPSJ0
ZXN0MSgpOyI+Cis8cD5Zb3Ugc2hvdWxkIHNlZSBhIG1lc3NhZ2UgaWYgd2luZG93Lm9uZXJyb3Ig
aXMgd29ya2luZyBwcm9wZXJseSBmb3IgdGhpcyB0ZXN0LjxhIGhyZWY9Imh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04NTE5Ij5CdWcgODUxOTwvYT4uPC9wPgorPGhyPgor
PGRpdiBpZD0nY29uc29sZSc+PC9kaXY+Cis8L2JvZHk+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9mYXN0L2V2ZW50cy93aW5kb3ctb25lcnJvcjQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMv
ZmFzdC9ldmVudHMvd2luZG93LW9uZXJyb3I0LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yNmFm
OGExZWE5YzgyZDFkZGIyMGJmYTA3MWJkYTdmOGM2NzdiNzY2Ci0tLSAvZGV2L251bGwKKysrIGIv
TGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvd2luZG93LW9uZXJyb3I0LWV4cGVjdGVkLnR4dApAQCAt
MCwwICsxLDQgQEAKK1lvdSBzaG91bGQgc2VlIGEgbG9nIHJlY29yZCBpZiB3aW5kb3cub25lcnJv
ciBpcyB3b3JraW5nIHByb3Blcmx5IGZvciB0aGlzIHRlc3QuQnVnIDg1MTkuCisKK0Vycm9yIGNh
dWdodCBzdWNjZXNzZnVsbHk6IFJlZmVyZW5jZUVycm9yOiBMZWZ0IHNpZGUgb2YgYXNzaWdubWVu
dCBpcyBub3QgYSByZWZlcmVuY2UuIEZpbGU6IHVuZGVmaW5lZCBMaW5lOiAxCisKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3dpbmRvdy1vbmVycm9yNC5odG1sIGIvTGF5b3V0
VGVzdHMvZmFzdC9ldmVudHMvd2luZG93LW9uZXJyb3I0Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYzUxODg3
ZGFmNjhmMTkwNjBlNzA2NDAxODQ4OWU1OWFkYjk3OGRlZgotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL2Zhc3QvZXZlbnRzL3dpbmRvdy1vbmVycm9yNC5odG1sCkBAIC0wLDAgKzEsMjMg
QEAKKzxzY3JpcHQ+CitpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQorICAgIGxheW91
dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKKworZnVuY3Rpb24gbG9nKG1zZykgeworICAg
IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjb25zb2xlIikuaW5uZXJIVE1MICs9IG1zZyArICI8
YnI+IjsKK30KKworZnVuY3Rpb24gdGVzdDEoKQoreworICAgIHdpbmRvdy5vbmVycm9yID0gZnVu
Y3Rpb24gKGVycm9yLCB1cmwsIGxpbmUpIHsKKyAgICAgICAgdXJsID0gdXJsID8gdXJsLm1hdGNo
KCAvW15cL10rXC8/JC8gKVswXSA6IHVybDsKKyAgICAgICAgbG9nKCJFcnJvciBjYXVnaHQgc3Vj
Y2Vzc2Z1bGx5OiAiICsgZXJyb3IgKyAiXG5GaWxlOiAiICsgdXJsICsgIlxuTGluZTogIiArIGxp
bmUpCisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9OworICAgIGV2YWwoIjE9MiIpOworfQor
PC9zY3JpcHQ+Cis8Ym9keSBvbmxvYWQ9InRlc3QxKCk7Ij4KKzxwPllvdSBzaG91bGQgc2VlIGEg
bG9nIHJlY29yZCBpZiB3aW5kb3cub25lcnJvciBpcyB3b3JraW5nIHByb3Blcmx5IGZvciB0aGlz
IHRlc3QuPGEgaHJlZj0iaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTg1
MTkiPkJ1ZyA4NTE5PC9hPi48L3A+Cis8aHI+Cis8ZGl2IGlkPSdjb25zb2xlJz48L2Rpdj4KKzwv
Ym9keT4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3dpbmRvdy1vbmVycm9y
NS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy93aW5kb3ctb25lcnJvcjUt
ZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjNlYzdmNWVmYzFkMDg2YTY1YzMyMzA0MjIxM2VmODIw
YTcxOTcxNTQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy93aW5k
b3ctb25lcnJvcjUtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNCBAQAorVGVzdCB0aGF0IHdpbmRv
dy5vbmVycm9yIGlzIGludm9rZWQgZm9yIHN5bnRheCBlcnJvciBpbiBldmFsLiBZb3Ugc2hvdWxk
IHNlZSBhIGxvZyByZWNvcmQgaWYgd2luZG93Lm9uZXJyb3IgaXMgd29ya2luZyBwcm9wZXJseSBm
b3IgdGhpcyB0ZXN0LkJ1ZyA4NTE5LgorCitFcnJvciBjYXVnaHQgc3VjY2Vzc2Z1bGx5OiBTeW50
YXhFcnJvcjogUGFyc2UgZXJyb3IgRmlsZTogdW5kZWZpbmVkIExpbmU6IDEKKwpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvd2luZG93LW9uZXJyb3I1Lmh0bWwgYi9MYXlvdXRU
ZXN0cy9mYXN0L2V2ZW50cy93aW5kb3ctb25lcnJvcjUuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45MzJkNDM4
YTU2ZWE4ODJmYjExN2IyMjEzOTVjNGEwZDgxOTk2NDRlCi0tLSAvZGV2L251bGwKKysrIGIvTGF5
b3V0VGVzdHMvZmFzdC9ldmVudHMvd2luZG93LW9uZXJyb3I1Lmh0bWwKQEAgLTAsMCArMSwyMyBA
QAorPHNjcmlwdD4KK2lmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCisgICAgbGF5b3V0
VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOworCitmdW5jdGlvbiBsb2cobXNnKSB7CisgICAg
ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNvbnNvbGUiKS5pbm5lckhUTUwgKz0gbXNnICsgIjxi
cj4iOworfQorCitmdW5jdGlvbiB0ZXN0MSgpCit7CisgICAgd2luZG93Lm9uZXJyb3IgPSBmdW5j
dGlvbiAoZXJyb3IsIHVybCwgbGluZSkgeworICAgICAgICB1cmwgPSB1cmwgPyB1cmwubWF0Y2go
IC9bXlwvXStcLz8kLyApWzBdIDogdXJsOworICAgICAgICBsb2coIkVycm9yIGNhdWdodCBzdWNj
ZXNzZnVsbHk6ICIgKyBlcnJvciArICJcbkZpbGU6ICIgKyB1cmwgKyAiXG5MaW5lOiAiICsgbGlu
ZSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH07CisgICAgZXZhbCgiYSgiKTsKK30KKzwv
c2NyaXB0PgorPGJvZHkgb25sb2FkPSJ0ZXN0MSgpOyI+Cis8cD5UZXN0IHRoYXQgd2luZG93Lm9u
ZXJyb3IgaXMgaW52b2tlZCBmb3Igc3ludGF4IGVycm9yIGluIGV2YWwuIFlvdSBzaG91bGQgc2Vl
IGEgbG9nIHJlY29yZCBpZiB3aW5kb3cub25lcnJvciBpcyB3b3JraW5nIHByb3Blcmx5IGZvciB0
aGlzIHRlc3QuPGEgaHJlZj0iaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTg1MTkiPkJ1ZyA4NTE5PC9hPi48L3A+Cis8aHI+Cis8ZGl2IGlkPSdjb25zb2xlJz48L2Rpdj4K
KzwvYm9keT4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3dpbmRvdy1vbmVy
cm9yNi1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy93aW5kb3ctb25lcnJv
cjYtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmU3YzI3YmI3NzUyMTFiNTEwMDEyNzY1MzY5ZGMw
ZTEzOTM0MjkwOTAKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy93
aW5kb3ctb25lcnJvcjYtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNCBAQAorVGVzdCB0aGF0IHN5
bnRheCBlcnJvciB3aWxsIGJlIHJlcG9ydGVkIHRvIHRoZSB3aW5kb3cub25lcnJvciBoYW5kbGVy
LiBCdWcgODUxOS4KKworTWFpbiBmcmFtZSB3aW5kb3cub25lcnJvcjogU3ludGF4RXJyb3I6IFBh
cnNlIGVycm9yIGF0IHdpbmRvdy1vbmVycm9yNi5odG1sOjIyCisKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2Zhc3QvZXZlbnRzL3dpbmRvdy1vbmVycm9yNi5odG1sIGIvTGF5b3V0VGVzdHMvZmFz
dC9ldmVudHMvd2luZG93LW9uZXJyb3I2Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMTk3ODQzNjg5NzMyNDEx
MzhhOWU2MGI3YjQ1NmQ1MWUzMGIxYWU0MAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3Rz
L2Zhc3QvZXZlbnRzL3dpbmRvdy1vbmVycm9yNi5odG1sCkBAIC0wLDAgKzEsMjYgQEAKKzxodG1s
PgorPGJvZHk+Cis8cD5UZXN0IHRoYXQgc3ludGF4IGVycm9yIHdpbGwgYmUgcmVwb3J0ZWQgdG8g
dGhlIHdpbmRvdy5vbmVycm9yIGhhbmRsZXIuIDxhIGhyZWY9Imh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD04NTE5Ij5CdWcgODUxOTwvYT4uPC9wPgorPGRpdiBpZD0iY29u
c29sZSI+PC9kaXY+Cis8c2NyaXB0PgoraWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikK
KyAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7CisKK2Z1bmN0aW9uIGxvZyht
c2cpIHsKKyAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY29uc29sZSIpLmlubmVySFRNTCAr
PSBtc2cgKyAiPGJyPiI7Cit9CisKK3dpbmRvdy5vbmVycm9yID0gZnVuY3Rpb24obXNnLCB1cmws
IGxpbmUpCit7CisgICAgdXJsID0gdXJsID8gdXJsLm1hdGNoKCAvW15cL10rXC8/JC8gKVswXSA6
IHVybDsKKyAgICBsb2coIk1haW4gZnJhbWUgd2luZG93Lm9uZXJyb3I6ICIgKyBtc2cgKyAiIGF0
ICIgKyB1cmwgKyAiOiIgKyBsaW5lKTsKKyAgICByZXR1cm4gZmFsc2U7Cit9Cis8L3NjcmlwdD4K
KzxzY3JpcHQ+CisKK2EpIC8vIHN5bnRheCBlcnJvcgorCis8L3NjcmlwdD4KKzwvYm9keT4KKzwv
aHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3dpbmRvdy1vbmVycm9y
Ny1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy93aW5kb3ctb25lcnJvcjct
ZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjVkMjJlN2U3NTU2OGEyNDk1OWNiZTYzZDlmYWFlMTRm
ZGFiY2YzNjAKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy93aW5k
b3ctb25lcnJvcjctZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNiBAQAorQ09OU09MRSBNRVNTQUdF
OiBsaW5lIDIwOiBFcnJvcjogT3JpZ2luYWwgZXJyb3IKK0NPTlNPTEUgTUVTU0FHRTogbGluZSAx
NzogRXJyb3I6IE5lc3RlZCBlcnJvcgorVGVzdCB0aGF0IGV4Y2VwdGlvbiBpbiB3aW5kb3cub25l
cnJvciB3b24ndCBsZWFkIHRvIHJlY3Vyc2l2ZSB3aW5kb3cub25lcnJvciBjYWxsLiBCdWcgODUx
OS4KKworTWFpbiBmcmFtZSB3aW5kb3cub25lcnJvcjogRXJyb3I6IE9yaWdpbmFsIGVycm9yIGF0
IHdpbmRvdy1vbmVycm9yNy5odG1sOjIwCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3Qv
ZXZlbnRzL3dpbmRvdy1vbmVycm9yNy5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvd2lu
ZG93LW9uZXJyb3I3Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZjY2NTY4NjZjYzE2YzgzZmVhMTg2NjNjMDg3
MGYzNmVjMDhiY2NhNAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRz
L3dpbmRvdy1vbmVycm9yNy5odG1sCkBAIC0wLDAgKzEsMjQgQEAKKzxodG1sPgorPGJvZHk+Cis8
cD5UZXN0IHRoYXQgZXhjZXB0aW9uIGluIHdpbmRvdy5vbmVycm9yIHdvbid0IGxlYWQgdG8gcmVj
dXJzaXZlIHdpbmRvdy5vbmVycm9yIGNhbGwuIDxhIGhyZWY9Imh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD04NTE5Ij5CdWcgODUxOTwvYT4uPC9wPgorPGRpdiBpZD0iY29u
c29sZSI+PC9kaXY+Cis8c2NyaXB0PgoraWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikK
KyAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7CisKK2Z1bmN0aW9uIGxvZyht
c2cpIHsKKyAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY29uc29sZSIpLmlubmVySFRNTCAr
PSBtc2cgKyAiPGJyPiI7Cit9CisKK3dpbmRvdy5vbmVycm9yID0gZnVuY3Rpb24obXNnLCB1cmws
IGxpbmUpCit7CisgICAgdXJsID0gdXJsID8gdXJsLm1hdGNoKCAvW15cL10rXC8/JC8gKVswXSA6
IHVybDsKKyAgICBsb2coIk1haW4gZnJhbWUgd2luZG93Lm9uZXJyb3I6ICIgKyBtc2cgKyAiIGF0
ICIgKyB1cmwgKyAiOiIgKyBsaW5lKTsKKyAgICB0aHJvdyBuZXcgRXJyb3IoIk5lc3RlZCBlcnJv
ciIpOworfQorCit0aHJvdyBuZXcgRXJyb3IoIk9yaWdpbmFsIGVycm9yIik7CisKKzwvc2NyaXB0
PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMv
d2luZG93LW9uZXJyb3I4LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3dp
bmRvdy1vbmVycm9yOC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZWZjNjMwOGQ4Mjk1ZjU1Mzhm
MzhkNmYzOGYwYjU0NmYzODhhNmE0OAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zh
c3QvZXZlbnRzL3dpbmRvdy1vbmVycm9yOC1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw1IEBACitU
ZXN0IHRoYXQgd2luZG93Lm9uZXJyb3IgaXMgY2FsbGVkIG9uIHdpbmRvdyBvYmplY3QuIEJ1ZyA4
NTE5LgorCitNYWluIGZyYW1lIHdpbmRvdy5vbmVycm9yOiAyMDEwIGF0IHVuZGVmaW5lZDowCitQ
QVNTRUQ6IHRoaXMgPT09IHdpbmRvdworCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2V2
ZW50cy93aW5kb3ctb25lcnJvcjguaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3dpbmRv
dy1vbmVycm9yOC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmJhZGU1Mzg4NmYyZmQ3Mzk5NTZiNjEwOTQ2Nzcz
MThhNWEyMWE4ODkKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy93
aW5kb3ctb25lcnJvcjguaHRtbApAQCAtMCwwICsxLDI4IEBACis8aHRtbD4KKzxib2R5PgorPHA+
VGVzdCB0aGF0IHdpbmRvdy5vbmVycm9yIGlzIGNhbGxlZCBvbiB3aW5kb3cgb2JqZWN0LiA8YSBo
cmVmPSJodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODUxOSI+QnVnIDg1
MTk8L2E+LjwvcD4KKzxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgorPHNjcmlwdD4KK2lmICh3aW5k
b3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCisgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFz
VGV4dCgpOworCitmdW5jdGlvbiBsb2cobXNnKSB7CisgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5
SWQoImNvbnNvbGUiKS5pbm5lckhUTUwgKz0gbXNnICsgIjxicj4iOworfQorCit3aW5kb3cub25l
cnJvciA9IGZ1bmN0aW9uKG1zZywgdXJsLCBsaW5lKQoreworICAgIHVybCA9IHVybCA/IHVybC5t
YXRjaCggL1teXC9dK1wvPyQvIClbMF0gOiB1cmw7CisgICAgbG9nKCJNYWluIGZyYW1lIHdpbmRv
dy5vbmVycm9yOiAiICsgbXNnICsgIiBhdCAiICsgdXJsICsgIjoiICsgbGluZSk7CisgICAgaWYg
KHRoaXMgPT09IHdpbmRvdykgCisgICAgICAgIGxvZygiUEFTU0VEOiB0aGlzID09PSB3aW5kb3ci
KTsKKyAgICBlbHNlCisgICAgICAgIGxvZygiRkFJTEVEOiB0aGlzID09PSB3aW5kb3ciKTsKKyAg
ICByZXR1cm4gZmFsc2U7Cit9CisKK3Rocm93IDIwMTA7CisKKzwvc2NyaXB0PgorPC9ib2R5Pgor
PC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvd2luZG93LW9uZXJy
b3I5LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3dpbmRvdy1vbmVycm9y
OS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOTQzMTZkM2YxMDdlOWNiNGY0OTk5NDhiMTlmZDll
MmU0YWUzZGFkNgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3dp
bmRvdy1vbmVycm9yOS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw4IEBACitUZXN0IHRoYXQgd2hl
biB3aW5kb3cub25lcnJvciBoYW5kbGVyIGlzIGNhbGxlZCwgd2luZG93LmV2ZW50IGlzIHRoZSBj
b3JyZXNwb25kaW5nIEVycm9yRXZlbnQgb2JqZWN0LiBCdWcgODUxOS4KKworTWFpbiBmcmFtZSB3
aW5kb3cub25lcnJvcjogRXJyb3I6IDIwMTAgYXQgd2luZG93LW9uZXJyb3I5Lmh0bWw6MzEKK3dp
bmRvdy5ldmVudC50eXBlID0gZXJyb3IKK3dpbmRvdy5ldmVudC5tZXNzYWdlID0gRXJyb3I6IDIw
MTAKK3dpbmRvdy5ldmVudC5maWxlbmFtZSA9IHdpbmRvdy1vbmVycm9yOS5odG1sCit3aW5kb3cu
ZXZlbnQubGluZW5vID0gMzEKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMv
d2luZG93LW9uZXJyb3I5Lmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy93aW5kb3ctb25l
cnJvcjkuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xMDg2YWNlOWM3YWQ3NjI5ZTcxMGEyNGJkYmI5ZjVjOTMx
NDViOTU0Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvd2luZG93
LW9uZXJyb3I5Lmh0bWwKQEAgLTAsMCArMSwzNSBAQAorPGh0bWw+Cis8Ym9keT4KKzxwPlRlc3Qg
dGhhdCB3aGVuIHdpbmRvdy5vbmVycm9yIGhhbmRsZXIgaXMgY2FsbGVkLCB3aW5kb3cuZXZlbnQg
aXMgdGhlIGNvcnJlc3BvbmRpbmcgRXJyb3JFdmVudCBvYmplY3QuIDxhIGhyZWY9Imh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04NTE5Ij5CdWcgODUxOTwvYT4uPC9wPgor
PGRpdiBpZD0iY29uc29sZSI+PC9kaXY+Cis8c2NyaXB0PgoraWYgKHdpbmRvdy5sYXlvdXRUZXN0
Q29udHJvbGxlcikgeworICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKKyAg
ICBsYXlvdXRUZXN0Q29udHJvbGxlci53YWl0VW50aWxEb25lKCk7Cit9CisKK2Z1bmN0aW9uIGxv
Zyhtc2cpIHsKKyAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY29uc29sZSIpLmlubmVySFRN
TCArPSBtc2cgKyAiPGJyPiI7Cit9CisKK2Z1bmN0aW9uIGxhc3RQYXRoQ29tcG9uZW50KHVybCkg
eworICAgIHJldHVybiB1cmwgPyB1cmwubWF0Y2goIC9bXlwvXStcLz8kLyApWzBdIDogdXJsOwor
fQorCit3aW5kb3cub25lcnJvciA9IGZ1bmN0aW9uKG1zZywgdXJsLCBsaW5lKQoreworICAgIGxv
ZygiTWFpbiBmcmFtZSB3aW5kb3cub25lcnJvcjogIiArIG1zZyArICIgYXQgIiArIGxhc3RQYXRo
Q29tcG9uZW50KHVybCkgKyAiOiIgKyBsaW5lKTsKKyAgICBsb2coIndpbmRvdy5ldmVudC50eXBl
ID0gIiArIHdpbmRvdy5ldmVudC50eXBlKTsKKyAgICBsb2coIndpbmRvdy5ldmVudC5tZXNzYWdl
ID0gIiArIHdpbmRvdy5ldmVudC5tZXNzYWdlKTsKKyAgICBsb2coIndpbmRvdy5ldmVudC5maWxl
bmFtZSA9ICIgKyBsYXN0UGF0aENvbXBvbmVudCh3aW5kb3cuZXZlbnQuZmlsZW5hbWUpKTsKKyAg
ICBsb2coIndpbmRvdy5ldmVudC5saW5lbm8gPSAiICsgd2luZG93LmV2ZW50LmxpbmVubyk7Cisg
ICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKKyAgICAgICAgbGF5b3V0VGVzdENv
bnRyb2xsZXIubm90aWZ5RG9uZSgpOworICAgIHJldHVybiBmYWxzZTsKK30KKwordGhyb3cgbmV3
IEVycm9yKDIwMTApOworCis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2Zhc3Qvd29ya2Vycy93b3JrZXItc2NyaXB0LWVycm9yLWV4cGVjdGVkLnR4
dCBiL0xheW91dFRlc3RzL2Zhc3Qvd29ya2Vycy93b3JrZXItc2NyaXB0LWVycm9yLWV4cGVjdGVk
LnR4dAppbmRleCAxMGFiMDQ5M2FiNDdhMjQyY2E2ZDczZmNmMDRiYWYzODZlNGY0NWY3Li40MDQx
NjQwODllODI0YTkwZTQwZGU5MmM3ZTEyNDk1MDFiNzg4NzE5IDEwMDY0NAotLS0gYS9MYXlvdXRU
ZXN0cy9mYXN0L3dvcmtlcnMvd29ya2VyLXNjcmlwdC1lcnJvci1leHBlY3RlZC50eHQKKysrIGIv
TGF5b3V0VGVzdHMvZmFzdC93b3JrZXJzL3dvcmtlci1zY3JpcHQtZXJyb3ItZXhwZWN0ZWQudHh0
CkBAIC00LDggKzQsOCBAQCBUZXN0IFdvcmtlciBzY3JpcHQgZXJyb3IgaGFuZGxpbmcgZnVuY3Rp
b25hbGl0eS4gU2hvdWxkIHByaW50IGEgc2VyaWVzIG9mIFBBU1MgbQogUEFTUzogb25lcnJvciBp
bnZva2VkIGZvciBhIHNjcmlwdCB0aGF0IGhhcyBpbnZhbGlkIHN5bnRheC4KIFBBU1M6IG9uZXJy
b3IgaW52b2tlZCBmb3IgYSBzY3JpcHQgdGhhdCBoYXMgc2NyaXB0IGVycm9yICdSZWZlcmVuY2VF
cnJvcjogQ2FuJ3QgZmluZCB2YXJpYWJsZTogZm9vJyBhdCBsaW5lIDEuCiBQQVNTOiBldmVudCBs
aXN0ZW5lciBpbnZva2VkIGZvciBhIHNjcmlwdCB0aGF0IGhhcyBzY3JpcHQgZXJyb3IgJ1JlZmVy
ZW5jZUVycm9yOiBDYW4ndCBmaW5kIHZhcmlhYmxlOiBmb28nIGF0IGxpbmUgMS4KLVBBU1M6IG9u
ZXJyb3IgaW52b2tlZCBmb3IgYSBzY3JpcHQgdGhhdCBoYXMgc2NyaXB0IGVycm9yICdSZWZlcmVu
Y2VFcnJvcjogQ2FuJ3QgZmluZCB2YXJpYWJsZTogYmFyJyBhdCBsaW5lIDMuCiBQQVNTOiBvbmVy
cm9yIGludm9rZWQgZm9yIGEgc2NyaXB0IHRoYXQgaGFzIHNjcmlwdCBlcnJvciAnUmVmZXJlbmNl
RXJyb3I6IENhbid0IGZpbmQgdmFyaWFibGU6IGZvbycgYXQgbGluZSA3LgorUEFTUzogb25lcnJv
ciBpbnZva2VkIGZvciBhIHNjcmlwdCB0aGF0IGhhcyBzY3JpcHQgZXJyb3IgJ1JlZmVyZW5jZUVy
cm9yOiBDYW4ndCBmaW5kIHZhcmlhYmxlOiBiYXInIGF0IGxpbmUgMy4KIFBBU1M6IG9uZXJyb3Ig
aW52b2tlZCBmb3IgYSBzY3JpcHQgdGhhdCBoYXMgc2NyaXB0IGVycm9yICdSZWZlcmVuY2VFcnJv
cjogQ2FuJ3QgZmluZCB2YXJpYWJsZTogZm9vJyBhdCBsaW5lIDcuCiBQQVNTOiBvbmVycm9yIGlu
dm9rZWQgZm9yIGEgc2NyaXB0IHRoYXQgaGFzIHNjcmlwdCBlcnJvciAnUmVmZXJlbmNlRXJyb3I6
IENhbid0IGZpbmQgdmFyaWFibGU6IGZvbycgYXQgbGluZSA3LgogUEFTUzogbWVzc2FnZSByZWNl
aXZlZCBmcm9tIFdvcmtlckdsb2JhbFNjb3BlLm9uZXJyb3I6IG9uZXJyb3IgaW52b2tlZCBmb3Ig
YSBzY3JpcHQgdGhhdCBoYXMgc2NyaXB0IGVycm9yICdSZWZlcmVuY2VFcnJvcjogQ2FuJ3QgZmlu
ZCB2YXJpYWJsZTogZm9vJyBhdCBsaW5lIDcuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL3NlY3VyaXR5L3Jlc291cmNlcy9vbmVycm9yLWlmcmFtZS5odG1sIGIvTGF5b3V0VGVz
dHMvaHR0cC90ZXN0cy9zZWN1cml0eS9yZXNvdXJjZXMvb25lcnJvci1pZnJhbWUuaHRtbApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi4zMTJmZDEyZDNhZDgxMDJhNWZlMWI1MTcwM2VjM2NiMDAxYTc0ZmM4Ci0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9yZXNvdXJjZXMvb25l
cnJvci1pZnJhbWUuaHRtbApAQCAtMCwwICsxLDExIEBACis8c2NyaXB0PgorZnVuY3Rpb24gaGFu
ZGxlTG9hZCgpCit7CisgICAgd2luZG93LnBhcmVudC5wb3N0TWVzc2FnZSgiSUZyYW1lTG9hZGVk
IiwgIioiKTsKK30KKwordGhyb3cgIklmcmFtZUV4Y2VwdGlvbiI7CisKKzwvc2NyaXB0PgorPGJv
ZHkgb25sb2FkPSJoYW5kbGVMb2FkKCkiPgorPC9ib2R5PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaHR0cC90ZXN0cy9zZWN1cml0eS93aW5kb3ctb25lcnJvci1leGNlcHRpb24taW4taWZyYW1l
LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvd2luZG93LW9u
ZXJyb3ItZXhjZXB0aW9uLWluLWlmcmFtZS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOGIxN2Q5
MjI4MWNmNWYxMDQxZjhkOTU3YjQ2MzY1MjAyNmFjMTdlYgotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvd2luZG93LW9uZXJyb3ItZXhjZXB0aW9uLWlu
LWlmcmFtZS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw2IEBACitDT05TT0xFIE1FU1NBR0U6IGxp
bmUgMDogSWZyYW1lRXhjZXB0aW9uCitUZXN0IHRoYXQgZXhjZXB0aW9ucyBpbiBpZnJhbWUgYXJl
IG5vdCByZXBvcnRlZCB0byB0aGUgbWFpbiBmcmFtZSB3aW5kb3cub25lcnJvciBoYW5kbGVyLiB3
aW5kb3cub25lcnJvciBzaG91bGQgcHJpbnQgZXhhY3RseSBvbmUgbGluZS4KKworTWFpbiBmcmFt
ZSB3aW5kb3cub25lcnJvcjogTWFpbkZyYW1lRXhjZXB0aW9uIGF0IHVuZGVmaW5lZDowCitET05F
CisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvd2luZG93LW9u
ZXJyb3ItZXhjZXB0aW9uLWluLWlmcmFtZS5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9z
ZWN1cml0eS93aW5kb3ctb25lcnJvci1leGNlcHRpb24taW4taWZyYW1lLmh0bWwKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uMDkwNGUzOTUyYjhhYTE5OWExYzNkNDVlYzYyNTg4MzkzNzMyY2ExYgotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvd2luZG93LW9uZXJyb3ItZXhj
ZXB0aW9uLWluLWlmcmFtZS5odG1sCkBAIC0wLDAgKzEsMzkgQEAKKzxodG1sPgorPGJvZHk+Cis8
cD5UZXN0IHRoYXQgZXhjZXB0aW9ucyBpbiBpZnJhbWUgYXJlIG5vdCByZXBvcnRlZCB0byB0aGUg
bWFpbiBmcmFtZSB3aW5kb3cub25lcnJvciBoYW5kbGVyLgord2luZG93Lm9uZXJyb3Igc2hvdWxk
IHByaW50IGV4YWN0bHkgb25lIGxpbmUuPC9wPgorPGRpdiBpZD0icmVzdWx0Ij48L2Rpdj4KKzxz
Y3JpcHQ+CitpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKSB7CisgICAgbGF5b3V0VGVz
dENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOworICAgIGxheW91dFRlc3RDb250cm9sbGVyLndhaXRV
bnRpbERvbmUoKTsKK30KKworZnVuY3Rpb24gbG9nKG1zZykgeworICAgIGRvY3VtZW50LmdldEVs
ZW1lbnRCeUlkKCJyZXN1bHQiKS5pbm5lckhUTUwgKz0gbXNnICsgIjxicj4iOworfQorCit3aW5k
b3cub25lcnJvciA9IGZ1bmN0aW9uKG1zZywgdXJsLCBsaW5lKQoreworICAgIHVybCA9IHVybCA/
IHVybC5tYXRjaCggL1teXC9dK1wvPyQvIClbMF0gOiB1cmw7CisgICAgbG9nKCJNYWluIGZyYW1l
IHdpbmRvdy5vbmVycm9yOiAiICsgbXNnICsgIiBhdCAiICsgdXJsICsgIjoiICsgbGluZSk7Cisg
ICAgcmV0dXJuIGZhbHNlOworfQorCitmdW5jdGlvbiByZWNlaXZlTWVzc2FnZShldmVudCkgewor
ICAgIGlmIChldmVudC5kYXRhID09PSAiSUZyYW1lTG9hZGVkIikgeworICAgICAgICBsb2coIkRP
TkUiKTsKKyAgICAgICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKKyAgICAgICAg
ICAgIGxheW91dFRlc3RDb250cm9sbGVyLm5vdGlmeURvbmUoKTsKKyAgICB9IGVsc2UKKyAgICAg
ICAgbG9nKCJGQUlMICIgKyBldmVudC5kYXRhKTsKK30KKword2luZG93LmFkZEV2ZW50TGlzdGVu
ZXIoIm1lc3NhZ2UiLCByZWNlaXZlTWVzc2FnZSwgZmFsc2UpOworCit0aHJvdyAiTWFpbkZyYW1l
RXhjZXB0aW9uIjsKKworPC9zY3JpcHQ+Cis8aWZyYW1lIHNyYz0iaHR0cDovL2xvY2FsaG9zdDo4
MDAwL3NlY3VyaXR5L3Jlc291cmNlcy9vbmVycm9yLWlmcmFtZS5odG1sIi8+Cis8L2JvZHk+Cis8
L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS13aW4vZmFz
dC93b3JrZXJzL3dvcmtlci1zY3JpcHQtZXJyb3ItZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMv
cGxhdGZvcm0vY2hyb21pdW0td2luL2Zhc3Qvd29ya2Vycy93b3JrZXItc2NyaXB0LWVycm9yLWV4
cGVjdGVkLnR4dAppbmRleCBmZGY2NjBiZDUwYzY2N2Q0MzBmMTY1YTdmYTgzNzQwMTY0MWExY2Ex
Li5lZjBhMzkxZTQ3ODdiMzNiYmJiMGQ5ZjcwNjAzODQ5M2ZlMzE4MTI5IDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS13aW4vZmFzdC93b3JrZXJzL3dvcmtlci1zY3Jp
cHQtZXJyb3ItZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVt
LXdpbi9mYXN0L3dvcmtlcnMvd29ya2VyLXNjcmlwdC1lcnJvci1leHBlY3RlZC50eHQKQEAgLTMs
OCArMyw4IEBAIFRlc3QgV29ya2VyIHNjcmlwdCBlcnJvciBoYW5kbGluZyBmdW5jdGlvbmFsaXR5
LiBTaG91bGQgcHJpbnQgYSBzZXJpZXMgb2YgUEFTUyBtCiBQQVNTOiBvbmVycm9yIGludm9rZWQg
Zm9yIGEgc2NyaXB0IHRoYXQgaGFzIGludmFsaWQgc3ludGF4LgogUEFTUzogb25lcnJvciBpbnZv
a2VkIGZvciBhIHNjcmlwdCB0aGF0IGhhcyBzY3JpcHQgZXJyb3IgJ1VuY2F1Z2h0IFJlZmVyZW5j
ZUVycm9yOiBmb28gaXMgbm90IGRlZmluZWQnIGF0IGxpbmUgMS4KIFBBU1M6IGV2ZW50IGxpc3Rl
bmVyIGludm9rZWQgZm9yIGEgc2NyaXB0IHRoYXQgaGFzIHNjcmlwdCBlcnJvciAnVW5jYXVnaHQg
UmVmZXJlbmNlRXJyb3I6IGZvbyBpcyBub3QgZGVmaW5lZCcgYXQgbGluZSAxLgotUEFTUzogb25l
cnJvciBpbnZva2VkIGZvciBhIHNjcmlwdCB0aGF0IGhhcyBzY3JpcHQgZXJyb3IgJ1VuY2F1Z2h0
IFJlZmVyZW5jZUVycm9yOiBiYXIgaXMgbm90IGRlZmluZWQnIGF0IGxpbmUgMy4KIFBBU1M6IG9u
ZXJyb3IgaW52b2tlZCBmb3IgYSBzY3JpcHQgdGhhdCBoYXMgc2NyaXB0IGVycm9yICdVbmNhdWdo
dCBSZWZlcmVuY2VFcnJvcjogZm9vIGlzIG5vdCBkZWZpbmVkJyBhdCBsaW5lIDcuCitQQVNTOiBv
bmVycm9yIGludm9rZWQgZm9yIGEgc2NyaXB0IHRoYXQgaGFzIHNjcmlwdCBlcnJvciAnVW5jYXVn
aHQgUmVmZXJlbmNlRXJyb3I6IGJhciBpcyBub3QgZGVmaW5lZCcgYXQgbGluZSAzLgogUEFTUzog
b25lcnJvciBpbnZva2VkIGZvciBhIHNjcmlwdCB0aGF0IGhhcyBzY3JpcHQgZXJyb3IgJ1VuY2F1
Z2h0IFJlZmVyZW5jZUVycm9yOiBmb28gaXMgbm90IGRlZmluZWQnIGF0IGxpbmUgNy4KIFBBU1M6
IG9uZXJyb3IgaW52b2tlZCBmb3IgYSBzY3JpcHQgdGhhdCBoYXMgc2NyaXB0IGVycm9yICdVbmNh
dWdodCBSZWZlcmVuY2VFcnJvcjogZm9vIGlzIG5vdCBkZWZpbmVkJyBhdCBsaW5lIDcuCiBQQVNT
OiBtZXNzYWdlIHJlY2VpdmVkIGZyb20gV29ya2VyR2xvYmFsU2NvcGUub25lcnJvcjogb25lcnJv
ciBpbnZva2VkIGZvciBhIHNjcmlwdCB0aGF0IGhhcyBzY3JpcHQgZXJyb3IgJ1VuY2F1Z2h0IFJl
ZmVyZW5jZUVycm9yOiBmb28gaXMgbm90IGRlZmluZWQnIGF0IGxpbmUgNy4KZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL2Zhc3QvZXZlbnRzL3dpbmRvdy1vbmVycm9y
MS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS9mYXN0L2V2ZW50
cy93aW5kb3ctb25lcnJvcjEtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjY1YjYyNGI5ZTk4Nzg5
N2FlZDgzZDFjYjdjYTQ1N2FjNzYzZjdjYzEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy9wbGF0Zm9ybS9jaHJvbWl1bS9mYXN0L2V2ZW50cy93aW5kb3ctb25lcnJvcjEtZXhwZWN0ZWQu
dHh0CkBAIC0wLDAgKzEsMyBAQAorVGhpcyBwYWdlIHRlc3RzIHNldHRpbmcgb25lcnJvciBoYW5k
bGVycyB0aHJvdWdoIHRoZSBET00uIElmIGl0IHBhc3NlcywgeW91IHdpbGwgc2VlICJQQVNTIiBt
ZXNzYWdlcyBiZWxvdy5CdWcgODUxOS4NCisNCitQQVNTOiBjYXVnaHQgZ2xvYmFsIGVycm9yOiBV
bmNhdWdodCBSZWZlcmVuY2VFcnJvcjogaGFoYWhhX2dvb2RfbHVja19maW5kaW5nX21lIGlzIG5v
dCBkZWZpbmVkIGF0IHdpbmRvdy1vbmVycm9yMS5odG1sOjI1DQpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vZmFzdC9ldmVudHMvd2luZG93LW9uZXJyb3IxMC1leHBl
Y3RlZC50eHQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS9mYXN0L2V2ZW50cy93aW5k
b3ctb25lcnJvcjEwLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iM2QyZDM5MDk3ZmJmNDk3NmYz
YjU3MzRmYWQ1OTdhZmE3ZDg0ZmNlCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvcGxh
dGZvcm0vY2hyb21pdW0vZmFzdC9ldmVudHMvd2luZG93LW9uZXJyb3IxMC1leHBlY3RlZC50eHQK
QEAgLTAsMCArMSwxMSBAQAorVGVzdCB0aGF0ICJlcnJvciIgZXZlbnQgbGlzdGVuZXIgYWRkZWQg
d2l0aCB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lciBpcyBpbnZva2VkIGZvciB1bmNhdWNodCBleGNl
cHRpb25zLiBCdWcgODUxOS4NCisNCitldmVudCBwYXNzZWQgdG8gdGhlIGxpc3RlbmVyIGlzIHRo
ZSBzYW1lIGFzIHdpbmRvdy5ldmVudDogdHJ1ZQ0KK0V2ZW50IGRldGFpbHM6DQordHlwZTogZXJy
b3INCitwaGFzZTogMg0KK2N1cnJlbnRUYXJnZXQgaXMgdGhlIGdsb2JhbCBvYmplY3Q6IHRydWUN
CittZXNzYWdlOiBVbmNhdWdodCBFcnJvcjogTXkgZmF1bHQuDQorZmlsZW5hbWU6IHdpbmRvdy1v
bmVycm9yMTAuaHRtbA0KK2xpbmVubzogMjkNCisNCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9w
bGF0Zm9ybS9jaHJvbWl1bS9mYXN0L2V2ZW50cy93aW5kb3ctb25lcnJvcjExLWV4cGVjdGVkLnR4
dCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL2Zhc3QvZXZlbnRzL3dpbmRvdy1vbmVy
cm9yMTEtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjkyZTNjZjU4YmZhNDQwOWIzMzY2ODRlZWQy
YzdiMDI1MDIwODY5YjcKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9j
aHJvbWl1bS9mYXN0L2V2ZW50cy93aW5kb3ctb25lcnJvcjExLWV4cGVjdGVkLnR4dApAQCAtMCww
ICsxLDQgQEAKK1Rlc3QgdGhhdCB3aW5kb3cub25lcnJvciBpcyBjYWxsZWQgb24gd2luZG93IG9i
amVjdC4gQnVnIDg1MTkuDQorDQorTWFpbiBmcmFtZSB3aW5kb3cub25lcnJvcjogVW5jYXVnaHQg
RXJyb3I6IEFuIGV4Y2VwdGlvbiBhdCB3aW5kb3ctb25lcnJvci5qczoyDQorDQpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vZmFzdC9ldmVudHMvd2luZG93LW9uZXJy
b3IyLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL2Zhc3QvZXZl
bnRzL3dpbmRvdy1vbmVycm9yMi1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZjdiMTYyMWMxOTYw
ODBjOTE0NzViYzliNjE2MjBlYjc5MDQ2ZTcyNwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL3BsYXRmb3JtL2Nocm9taXVtL2Zhc3QvZXZlbnRzL3dpbmRvdy1vbmVycm9yMi1leHBlY3Rl
ZC50eHQKQEAgLTAsMCArMSw2IEBACitUZXN0IHRoYXQgdW5jYXVnaHQgZXhjZXB0aW9ucyB3aWxs
IGJlIHJlcG9ydGVkIHRvIHRoZSB3aW5kb3cub25lcnJvciBoYW5kbGVyLiBCdWcgODUxOS4NCisN
CitNYWluIGZyYW1lIHdpbmRvdy5vbmVycm9yOiBVbmNhdWdodCBFcnJvcjogSW5saW5lIHNjcmlw
dCBleGNlcHRpb24gYXQgd2luZG93LW9uZXJyb3IyLmh0bWw6MzUNCitNYWluIGZyYW1lIHdpbmRv
dy5vbmVycm9yOiBVbmNhdWdodCBFeGNlcHRpb24gaW4gb25sb2FkIGF0IHdpbmRvdy1vbmVycm9y
Mi5odG1sOjINCitNYWluIGZyYW1lIHdpbmRvdy5vbmVycm9yOiBVbmNhdWdodCBFcnJvcjogRXhj
ZXB0aW9uIGluIHNldFRpbWVvdXQgYXQgd2luZG93LW9uZXJyb3IyLmh0bWw6MjkNCisNCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS9mYXN0L2V2ZW50cy93aW5kb3ct
b25lcnJvcjMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vZmFz
dC9ldmVudHMvd2luZG93LW9uZXJyb3IzLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5hMWI4YmQ1
NTgwMGYwOTBlOTRkOTljMDMxMjUxMTA4YTVlOWVlNDk1Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5
b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vZmFzdC9ldmVudHMvd2luZG93LW9uZXJyb3IzLWV4
cGVjdGVkLnR4dApAQCAtMCwwICsxLDQgQEAKK1lvdSBzaG91bGQgc2VlIGEgbWVzc2FnZSBpZiB3
aW5kb3cub25lcnJvciBpcyB3b3JraW5nIHByb3Blcmx5IGZvciB0aGlzIHRlc3QuQnVnIDg1MTku
DQorDQorRXJyb3IgY2F1Z2h0IHN1Y2Nlc3NmdWxseTogVW5jYXVnaHQgUmVmZXJlbmNlRXJyb3I6
IHVua25vd25PYmplY3QgaXMgbm90IGRlZmluZWQgRmlsZTogd2luZG93LW9uZXJyb3IzLmh0bWwg
TGluZTogMTYNCisNCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS9m
YXN0L2V2ZW50cy93aW5kb3ctb25lcnJvcjQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvcGxh
dGZvcm0vY2hyb21pdW0vZmFzdC9ldmVudHMvd2luZG93LW9uZXJyb3I0LWV4cGVjdGVkLnR4dApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi41MGYwOWUwMmU5OGEzMmQ4NjA0MTc0MTI0MTZmZGFmOGRkODY2Y2RjCi0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vZmFzdC9ldmVudHMv
d2luZG93LW9uZXJyb3I0LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDQgQEAKK1lvdSBzaG91bGQg
c2VlIGEgbG9nIHJlY29yZCBpZiB3aW5kb3cub25lcnJvciBpcyB3b3JraW5nIHByb3Blcmx5IGZv
ciB0aGlzIHRlc3QuQnVnIDg1MTkuDQorDQorRXJyb3IgY2F1Z2h0IHN1Y2Nlc3NmdWxseTogVW5j
YXVnaHQgUmVmZXJlbmNlRXJyb3I6IEludmFsaWQgbGVmdC1oYW5kIHNpZGUgaW4gYXNzaWdubWVu
dCBGaWxlOiB3aW5kb3ctb25lcnJvcjQuaHRtbCBMaW5lOiAxDQorDQpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vZmFzdC9ldmVudHMvd2luZG93LW9uZXJyb3I1LWV4
cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL2Zhc3QvZXZlbnRzL3dp
bmRvdy1vbmVycm9yNS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZTQ1MzY5ZTI5ZjExNWM1NWY0
N2IxZGI0YThmMWZmYmI2MTRjNDhiNwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3Bs
YXRmb3JtL2Nocm9taXVtL2Zhc3QvZXZlbnRzL3dpbmRvdy1vbmVycm9yNS1leHBlY3RlZC50eHQK
QEAgLTAsMCArMSw0IEBACitUZXN0IHRoYXQgd2luZG93Lm9uZXJyb3IgaXMgaW52b2tlZCBmb3Ig
c3ludGF4IGVycm9yIGluIGV2YWwuIFlvdSBzaG91bGQgc2VlIGEgbG9nIHJlY29yZCBpZiB3aW5k
b3cub25lcnJvciBpcyB3b3JraW5nIHByb3Blcmx5IGZvciB0aGlzIHRlc3QuQnVnIDg1MTkuDQor
DQorRXJyb3IgY2F1Z2h0IHN1Y2Nlc3NmdWxseTogVW5jYXVnaHQgU3ludGF4RXJyb3I6IFVuZXhw
ZWN0ZWQgZW5kIG9mIGlucHV0IEZpbGU6IHdpbmRvdy1vbmVycm9yNS5odG1sIExpbmU6IDENCisN
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS9mYXN0L2V2ZW50cy93
aW5kb3ctb25lcnJvcjYtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21p
dW0vZmFzdC9ldmVudHMvd2luZG93LW9uZXJyb3I2LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4x
OGVkODFhYTAyYTA1ZGVjYjVjYzAyNWFkZWZiMDFhMmRhNmU4NjdlCi0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vZmFzdC9ldmVudHMvd2luZG93LW9uZXJy
b3I2LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDQgQEAKK1Rlc3QgdGhhdCBzeW50YXggZXJyb3Ig
d2lsbCBiZSByZXBvcnRlZCB0byB0aGUgd2luZG93Lm9uZXJyb3IgaGFuZGxlci4gQnVnIDg1MTku
DQorDQorTWFpbiBmcmFtZSB3aW5kb3cub25lcnJvcjogVW5jYXVnaHQgU3ludGF4RXJyb3I6IFVu
ZXhwZWN0ZWQgdG9rZW4gKSBhdCB3aW5kb3ctb25lcnJvcjYuaHRtbDoyMg0KKw0KZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL2Zhc3QvZXZlbnRzL3dpbmRvdy1vbmVy
cm9yNy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS9mYXN0L2V2
ZW50cy93aW5kb3ctb25lcnJvcjctZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjIzZDA0MDc5MDZh
ODc4MDk4MTQ3NGIxMzAwNjYyOTRkYjNjMDk1MTUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRU
ZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS9mYXN0L2V2ZW50cy93aW5kb3ctb25lcnJvcjctZXhwZWN0
ZWQudHh0CkBAIC0wLDAgKzEsNiBAQAorQ09OU09MRSBNRVNTQUdFOiBsaW5lIDIwOiBVbmNhdWdo
dCBFcnJvcjogT3JpZ2luYWwgZXJyb3INCitDT05TT0xFIE1FU1NBR0U6IGxpbmUgMTc6IFVuY2F1
Z2h0IEVycm9yOiBOZXN0ZWQgZXJyb3INCitUZXN0IHRoYXQgZXhjZXB0aW9uIGluIHdpbmRvdy5v
bmVycm9yIHdvbid0IGxlYWQgdG8gcmVjdXJzaXZlIHdpbmRvdy5vbmVycm9yIGNhbGwuIEJ1ZyA4
NTE5Lg0KKw0KK01haW4gZnJhbWUgd2luZG93Lm9uZXJyb3I6IFVuY2F1Z2h0IEVycm9yOiBPcmln
aW5hbCBlcnJvciBhdCB3aW5kb3ctb25lcnJvcjcuaHRtbDoyMA0KKw0KZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL2Zhc3QvZXZlbnRzL3dpbmRvdy1vbmVycm9yOC1l
eHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS9mYXN0L2V2ZW50cy93
aW5kb3ctb25lcnJvcjgtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjEzZjJiMzI3NzY2M2FiZTE1
NmNkNTY4YzBhOTFhNGQzODg2YTE0YjAKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9w
bGF0Zm9ybS9jaHJvbWl1bS9mYXN0L2V2ZW50cy93aW5kb3ctb25lcnJvcjgtZXhwZWN0ZWQudHh0
CkBAIC0wLDAgKzEsNSBAQAorVGVzdCB0aGF0IHdpbmRvdy5vbmVycm9yIGlzIGNhbGxlZCBvbiB3
aW5kb3cgb2JqZWN0LiBCdWcgODUxOS4NCisNCitNYWluIGZyYW1lIHdpbmRvdy5vbmVycm9yOiBV
bmNhdWdodCAyMDEwIGF0IHdpbmRvdy1vbmVycm9yOC5odG1sOjI0DQorUEFTU0VEOiB0aGlzID09
PSB3aW5kb3cNCisNCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS9m
YXN0L2V2ZW50cy93aW5kb3ctb25lcnJvcjktZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvcGxh
dGZvcm0vY2hyb21pdW0vZmFzdC9ldmVudHMvd2luZG93LW9uZXJyb3I5LWV4cGVjdGVkLnR4dApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi4xNjc3ZTUwMjBkMDhlYjc1YTUwM2IzNDZiZDkzY2RmYzdiMGVhNzY5Ci0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vZmFzdC9ldmVudHMv
d2luZG93LW9uZXJyb3I5LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDggQEAKK1Rlc3QgdGhhdCB3
aGVuIHdpbmRvdy5vbmVycm9yIGhhbmRsZXIgaXMgY2FsbGVkLCB3aW5kb3cuZXZlbnQgaXMgdGhl
IGNvcnJlc3BvbmRpbmcgRXJyb3JFdmVudCBvYmplY3QuIEJ1ZyA4NTE5Lg0KKw0KK01haW4gZnJh
bWUgd2luZG93Lm9uZXJyb3I6IFVuY2F1Z2h0IEVycm9yOiAyMDEwIGF0IHdpbmRvdy1vbmVycm9y
OS5odG1sOjMxDQord2luZG93LmV2ZW50LnR5cGUgPSBlcnJvcg0KK3dpbmRvdy5ldmVudC5tZXNz
YWdlID0gVW5jYXVnaHQgRXJyb3I6IDIwMTANCit3aW5kb3cuZXZlbnQuZmlsZW5hbWUgPSB3aW5k
b3ctb25lcnJvcjkuaHRtbA0KK3dpbmRvdy5ldmVudC5saW5lbm8gPSAzMQ0KKw0KZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL2h0dHAvdGVzdHMvc2VjdXJpdHkvd2lu
ZG93LW9uZXJyb3ItZXhjZXB0aW9uLWluLWlmcmFtZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0
cy9wbGF0Zm9ybS9jaHJvbWl1bS9odHRwL3Rlc3RzL3NlY3VyaXR5L3dpbmRvdy1vbmVycm9yLWV4
Y2VwdGlvbi1pbi1pZnJhbWUtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjllOWMyZWE0YmI0Yjg5
MWMwNzUyZDI4NjM4NDY0MGMxMGU4NzkyMWYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy9wbGF0Zm9ybS9jaHJvbWl1bS9odHRwL3Rlc3RzL3NlY3VyaXR5L3dpbmRvdy1vbmVycm9yLWV4
Y2VwdGlvbi1pbi1pZnJhbWUtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNiBAQAorQ09OU09MRSBN
RVNTQUdFOiBsaW5lIDc6IFVuY2F1Z2h0IElmcmFtZUV4Y2VwdGlvbg0KK1Rlc3QgdGhhdCBleGNl
cHRpb25zIGluIGlmcmFtZSBhcmUgbm90IHJlcG9ydGVkIHRvIHRoZSBtYWluIGZyYW1lIHdpbmRv
dy5vbmVycm9yIGhhbmRsZXIuIHdpbmRvdy5vbmVycm9yIHNob3VsZCBwcmludCBleGFjdGx5IG9u
ZSBsaW5lLg0KKw0KK01haW4gZnJhbWUgd2luZG93Lm9uZXJyb3I6IFVuY2F1Z2h0IE1haW5GcmFt
ZUV4Y2VwdGlvbiBhdCB3aW5kb3ctb25lcnJvci1leGNlcHRpb24taW4taWZyYW1lLmh0bWw6MzQN
CitET05FDQorDQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vdXNl
cnNjcmlwdHMvd2luZG93LW9uZXJyb3ItZm9yLWlzb2xhdGVkLXdvcmxkLTEtZXhwZWN0ZWQudHh0
IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vdXNlcnNjcmlwdHMvd2luZG93LW9uZXJy
b3ItZm9yLWlzb2xhdGVkLXdvcmxkLTEtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNzU1
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjJhM2QwNjgw
MGY1MjVjNGZiNzRlZmY4MThlMzdkZWQyYjE4ZDkzZTkKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS91c2Vyc2NyaXB0cy93aW5kb3ctb25lcnJvci1mb3It
aXNvbGF0ZWQtd29ybGQtMS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxNCBAQAorVGVzdCB0aGF0
IHdpbmRvdy5vbmVycm9yIGFuZCAiZXJyb3IiIGV2ZW50IGxpc3RlbmVycyBmcm9tIG1haW4gd29y
bGQgYXJlIGludm9rZWQgZm9yIHVuY2F1Z2h0IGV4Y2VwdGlvbnMgaW4gdXNlciBzY3JpcHRzIHJ1
bm5pbmcgaW4gaXNvbGF0ZSB3b3JsZHMgYXMgd2VsbCBhcyBmb3IgZXhjZXB0aW9ucyBpbiB0aGUg
bWFpbiB3b3JsZC5CdWcgODUxOS4NCisNCitNYWluIHdvcmxkIHdpbmRvdy5vbmVycm9yOiBVbmNh
dWdodCBFcnJvcjogRXJyb3IgaW4gbWFpbiB3b3JsZCBpbmxpbmUgc2NyaXB0LiBhdCB3aW5kb3ct
b25lcnJvci1mb3ItaXNvbGF0ZWQtd29ybGQtMS5odG1sOjU0DQorTWFpbiB3b3JsZCBlcnJvciBl
dmVudCBsaXN0ZW5lcjogVW5jYXVnaHQgRXJyb3I6IEVycm9yIGluIG1haW4gd29ybGQgaW5saW5l
IHNjcmlwdC4gYXQgd2luZG93LW9uZXJyb3ItZm9yLWlzb2xhdGVkLXdvcmxkLTEuaHRtbDo1NA0K
K01haW4gd29ybGQgd2luZG93Lm9uZXJyb3I6IFVuY2F1Z2h0IEVycm9yOiBFcnJvciBpbiB1c2Vy
IHNjcmlwdCBpbmxpbmUgc2NyaXB0LiBhdCA6MTINCitNYWluIHdvcmxkIGVycm9yIGV2ZW50IGxp
c3RlbmVyOiBVbmNhdWdodCBFcnJvcjogRXJyb3IgaW4gdXNlciBzY3JpcHQgaW5saW5lIHNjcmlw
dC4gYXQgOjEyDQorTWFpbiB3b3JsZCB3aW5kb3cub25lcnJvcjogVW5jYXVnaHQgRXJyb3I6IEVy
cm9yIGluIG1haW4gd29ybGQgbG9hZCBoYW5kbGVyLiBhdCB3aW5kb3ctb25lcnJvci1mb3ItaXNv
bGF0ZWQtd29ybGQtMS5odG1sOjQ2DQorTWFpbiB3b3JsZCBlcnJvciBldmVudCBsaXN0ZW5lcjog
VW5jYXVnaHQgRXJyb3I6IEVycm9yIGluIG1haW4gd29ybGQgbG9hZCBoYW5kbGVyLiBhdCB3aW5k
b3ctb25lcnJvci1mb3ItaXNvbGF0ZWQtd29ybGQtMS5odG1sOjQ2DQorTWFpbiB3b3JsZCB3aW5k
b3cub25lcnJvcjogVW5jYXVnaHQgRXJyb3I6IEVycm9yIGluIHVzZXIgc2NyaXB0IGxvYWQgaGFu
ZGxlci4gYXQgOjQNCitNYWluIHdvcmxkIGVycm9yIGV2ZW50IGxpc3RlbmVyOiBVbmNhdWdodCBF
cnJvcjogRXJyb3IgaW4gdXNlciBzY3JpcHQgbG9hZCBoYW5kbGVyLiBhdCA6NA0KK01haW4gd29y
bGQgd2luZG93Lm9uZXJyb3I6IFVuY2F1Z2h0IEVycm9yOiBFcnJvciBpbiBtYWluIHdvcmxkIHNl
dFRpbWVvdXQgY2FsbGJhY2suIGF0IHdpbmRvdy1vbmVycm9yLWZvci1pc29sYXRlZC13b3JsZC0x
Lmh0bWw6NTENCitNYWluIHdvcmxkIGVycm9yIGV2ZW50IGxpc3RlbmVyOiBVbmNhdWdodCBFcnJv
cjogRXJyb3IgaW4gbWFpbiB3b3JsZCBzZXRUaW1lb3V0IGNhbGxiYWNrLiBhdCB3aW5kb3ctb25l
cnJvci1mb3ItaXNvbGF0ZWQtd29ybGQtMS5odG1sOjUxDQorTWFpbiB3b3JsZCB3aW5kb3cub25l
cnJvcjogVW5jYXVnaHQgRXJyb3I6IEVycm9yIGluIHVzZXIgc2NyaXB0IHNldFRpbWVvdXQgY2Fs
bGJhY2suIGF0IDo5DQorTWFpbiB3b3JsZCBlcnJvciBldmVudCBsaXN0ZW5lcjogVW5jYXVnaHQg
RXJyb3I6IEVycm9yIGluIHVzZXIgc2NyaXB0IHNldFRpbWVvdXQgY2FsbGJhY2suIGF0IDo5DQpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vdXNlcnNjcmlwdHMvd2lu
ZG93LW9uZXJyb3ItZm9yLWlzb2xhdGVkLXdvcmxkLTItZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVz
dHMvcGxhdGZvcm0vY2hyb21pdW0vdXNlcnNjcmlwdHMvd2luZG93LW9uZXJyb3ItZm9yLWlzb2xh
dGVkLXdvcmxkLTItZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjkzOTk0ZGIxMmNiMDhiZGYxNjRk
OTAxOGFkNDYwNTRiMGE0NTE5MGMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9wbGF0
Zm9ybS9jaHJvbWl1bS91c2Vyc2NyaXB0cy93aW5kb3ctb25lcnJvci1mb3ItaXNvbGF0ZWQtd29y
bGQtMi1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxMyBAQAorQ09OU09MRSBNRVNTQUdFOiBsaW5l
IDMwOiBVbmNhdWdodCBFcnJvcjogRXJyb3IgaW4gbWFpbiB3b3JsZCBpbmxpbmUgc2NyaXB0Lg0K
K1Rlc3QgdGhhdCB3aW5kb3cub25lcnJvciBhbmQgImVycm9yIiBldmVudCBsaXN0ZW5lcnMgZnJv
bSBpc29sYXRlZCB3b3JsZCBhcmUgaW52b2tlZCBmb3IgdW5jYXVnaHQgZXhjZXB0aW9ucyBpbiB1
c2VyIHNjcmlwdHMgcnVubmluZyBpbiBpc29sYXRlIHdvcmxkcyBhcyB3ZWxsIGFzIGZvciBleGNl
cHRpb25zIGluIHRoZSBtYWluIHdvcmxkLkJ1ZyA4NTE5Lg0KKw0KK3VzZXIgc2NyaXB0IHdpbmRv
dy5vbmVycm9yOiBVbmNhdWdodCBFcnJvcjogRXJyb3IgaW4gdXNlciBzY3JpcHQgaW5saW5lIHNj
cmlwdC4gYXQgOjMzDQordXNlciBzY3JpcHQgZXJyb3IgZXZlbnQgbGlzdGVuZXI6IFVuY2F1Z2h0
IEVycm9yOiBFcnJvciBpbiB1c2VyIHNjcmlwdCBpbmxpbmUgc2NyaXB0LiBhdCA6MzMNCit1c2Vy
IHNjcmlwdCB3aW5kb3cub25lcnJvcjogVW5jYXVnaHQgRXJyb3I6IEVycm9yIGluIG1haW4gd29y
bGQgbG9hZCBoYW5kbGVyLiBhdCB3aW5kb3ctb25lcnJvci1mb3ItaXNvbGF0ZWQtd29ybGQtMi5o
dG1sOjIzDQordXNlciBzY3JpcHQgZXJyb3IgZXZlbnQgbGlzdGVuZXI6IFVuY2F1Z2h0IEVycm9y
OiBFcnJvciBpbiBtYWluIHdvcmxkIGxvYWQgaGFuZGxlci4gYXQgd2luZG93LW9uZXJyb3ItZm9y
LWlzb2xhdGVkLXdvcmxkLTIuaHRtbDoyMw0KK3VzZXIgc2NyaXB0IHdpbmRvdy5vbmVycm9yOiBV
bmNhdWdodCBFcnJvcjogRXJyb3IgaW4gdXNlciBzY3JpcHQgbG9hZCBoYW5kbGVyLiBhdCA6MjYN
Cit1c2VyIHNjcmlwdCBlcnJvciBldmVudCBsaXN0ZW5lcjogVW5jYXVnaHQgRXJyb3I6IEVycm9y
IGluIHVzZXIgc2NyaXB0IGxvYWQgaGFuZGxlci4gYXQgOjI2DQordXNlciBzY3JpcHQgd2luZG93
Lm9uZXJyb3I6IFVuY2F1Z2h0IEVycm9yOiBFcnJvciBpbiBtYWluIHdvcmxkIHNldFRpbWVvdXQg
Y2FsbGJhY2suIGF0IHdpbmRvdy1vbmVycm9yLWZvci1pc29sYXRlZC13b3JsZC0yLmh0bWw6MjcN
Cit1c2VyIHNjcmlwdCBlcnJvciBldmVudCBsaXN0ZW5lcjogVW5jYXVnaHQgRXJyb3I6IEVycm9y
IGluIG1haW4gd29ybGQgc2V0VGltZW91dCBjYWxsYmFjay4gYXQgd2luZG93LW9uZXJyb3ItZm9y
LWlzb2xhdGVkLXdvcmxkLTIuaHRtbDoyNw0KK3VzZXIgc2NyaXB0IHdpbmRvdy5vbmVycm9yOiBV
bmNhdWdodCBFcnJvcjogRXJyb3IgaW4gdXNlciBzY3JpcHQgc2V0VGltZW91dCBjYWxsYmFjay4g
YXQgOjMwDQordXNlciBzY3JpcHQgZXJyb3IgZXZlbnQgbGlzdGVuZXI6IFVuY2F1Z2h0IEVycm9y
OiBFcnJvciBpbiB1c2VyIHNjcmlwdCBzZXRUaW1lb3V0IGNhbGxiYWNrLiBhdCA6MzANCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy91c2Vyc2NyaXB0cy93aW5kb3ctb25lcnJvci1mb3ItaXNvbGF0
ZWQtd29ybGQtMS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy91c2Vyc2NyaXB0cy93aW5kb3ct
b25lcnJvci1mb3ItaXNvbGF0ZWQtd29ybGQtMS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNjg5
NWM0MTJlNjRhNGM5Y2M4YmVlYzFhYTJiODIxOTljNTBiMTUzOQotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL3VzZXJzY3JpcHRzL3dpbmRvdy1vbmVycm9yLWZvci1pc29sYXRlZC13b3Js
ZC0xLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDE0IEBACitUZXN0IHRoYXQgd2luZG93Lm9uZXJy
b3IgYW5kICJlcnJvciIgZXZlbnQgbGlzdGVuZXJzIGZyb20gbWFpbiB3b3JsZCBhcmUgaW52b2tl
ZCBmb3IgdW5jYXVnaHQgZXhjZXB0aW9ucyBpbiB1c2VyIHNjcmlwdHMgcnVubmluZyBpbiBpc29s
YXRlIHdvcmxkcyBhcyB3ZWxsIGFzIGZvciBleGNlcHRpb25zIGluIHRoZSBtYWluIHdvcmxkLkJ1
ZyA4NTE5LgorCitNYWluIHdvcmxkIHdpbmRvdy5vbmVycm9yOiBFcnJvcjogRXJyb3IgaW4gbWFp
biB3b3JsZCBpbmxpbmUgc2NyaXB0LiBhdCB3aW5kb3ctb25lcnJvci1mb3ItaXNvbGF0ZWQtd29y
bGQtMS5odG1sOjU0CitNYWluIHdvcmxkIGVycm9yIGV2ZW50IGxpc3RlbmVyOiBFcnJvcjogRXJy
b3IgaW4gbWFpbiB3b3JsZCBpbmxpbmUgc2NyaXB0LiBhdCB3aW5kb3ctb25lcnJvci1mb3ItaXNv
bGF0ZWQtd29ybGQtMS5odG1sOjU0CitNYWluIHdvcmxkIHdpbmRvdy5vbmVycm9yOiBFcnJvcjog
RXJyb3IgaW4gdXNlciBzY3JpcHQgaW5saW5lIHNjcmlwdC4gYXQgdW5kZWZpbmVkOjExCitNYWlu
IHdvcmxkIGVycm9yIGV2ZW50IGxpc3RlbmVyOiBFcnJvcjogRXJyb3IgaW4gdXNlciBzY3JpcHQg
aW5saW5lIHNjcmlwdC4gYXQgdW5kZWZpbmVkOjExCitNYWluIHdvcmxkIHdpbmRvdy5vbmVycm9y
OiBFcnJvcjogRXJyb3IgaW4gbWFpbiB3b3JsZCBsb2FkIGhhbmRsZXIuIGF0IHdpbmRvdy1vbmVy
cm9yLWZvci1pc29sYXRlZC13b3JsZC0xLmh0bWw6NDYKK01haW4gd29ybGQgZXJyb3IgZXZlbnQg
bGlzdGVuZXI6IEVycm9yOiBFcnJvciBpbiBtYWluIHdvcmxkIGxvYWQgaGFuZGxlci4gYXQgd2lu
ZG93LW9uZXJyb3ItZm9yLWlzb2xhdGVkLXdvcmxkLTEuaHRtbDo0NgorTWFpbiB3b3JsZCB3aW5k
b3cub25lcnJvcjogRXJyb3I6IEVycm9yIGluIHVzZXIgc2NyaXB0IGxvYWQgaGFuZGxlci4gYXQg
dW5kZWZpbmVkOjMKK01haW4gd29ybGQgZXJyb3IgZXZlbnQgbGlzdGVuZXI6IEVycm9yOiBFcnJv
ciBpbiB1c2VyIHNjcmlwdCBsb2FkIGhhbmRsZXIuIGF0IHVuZGVmaW5lZDozCitNYWluIHdvcmxk
IHdpbmRvdy5vbmVycm9yOiBFcnJvcjogRXJyb3IgaW4gbWFpbiB3b3JsZCBzZXRUaW1lb3V0IGNh
bGxiYWNrLiBhdCB3aW5kb3ctb25lcnJvci1mb3ItaXNvbGF0ZWQtd29ybGQtMS5odG1sOjUxCitN
YWluIHdvcmxkIGVycm9yIGV2ZW50IGxpc3RlbmVyOiBFcnJvcjogRXJyb3IgaW4gbWFpbiB3b3Js
ZCBzZXRUaW1lb3V0IGNhbGxiYWNrLiBhdCB3aW5kb3ctb25lcnJvci1mb3ItaXNvbGF0ZWQtd29y
bGQtMS5odG1sOjUxCitNYWluIHdvcmxkIHdpbmRvdy5vbmVycm9yOiBFcnJvcjogRXJyb3IgaW4g
dXNlciBzY3JpcHQgc2V0VGltZW91dCBjYWxsYmFjay4gYXQgdW5kZWZpbmVkOjgKK01haW4gd29y
bGQgZXJyb3IgZXZlbnQgbGlzdGVuZXI6IEVycm9yOiBFcnJvciBpbiB1c2VyIHNjcmlwdCBzZXRU
aW1lb3V0IGNhbGxiYWNrLiBhdCB1bmRlZmluZWQ6OApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
dXNlcnNjcmlwdHMvd2luZG93LW9uZXJyb3ItZm9yLWlzb2xhdGVkLXdvcmxkLTEuaHRtbCBiL0xh
eW91dFRlc3RzL3VzZXJzY3JpcHRzL3dpbmRvdy1vbmVycm9yLWZvci1pc29sYXRlZC13b3JsZC0x
Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uM2M2YmFjMjI4MzUyZmIyZWZiODg2NDRjYjBjNTI0YmY2OWU2ZDkw
YgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3VzZXJzY3JpcHRzL3dpbmRvdy1vbmVy
cm9yLWZvci1pc29sYXRlZC13b3JsZC0xLmh0bWwKQEAgLTAsMCArMSw2NyBAQAorPCFET0NUWVBF
IEhUTUw+Cis8aHRtbD4KKzxoZWFkPgorPC9oZWFkPgorPGJvZHk+Cis8cD5UZXN0IHRoYXQgd2lu
ZG93Lm9uZXJyb3IgYW5kICJlcnJvciIgZXZlbnQgbGlzdGVuZXJzIGZyb20gbWFpbiB3b3JsZCBh
cmUKK2ludm9rZWQgZm9yIHVuY2F1Z2h0IGV4Y2VwdGlvbnMgaW4gdXNlciBzY3JpcHRzIHJ1bm5p
bmcgaW4gaXNvbGF0ZSB3b3JsZHMgYXMKK3dlbGwgYXMgZm9yIGV4Y2VwdGlvbnMgaW4gdGhlIG1h
aW4gd29ybGQuPGEgaHJlZj0iaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTg1MTkiPkJ1ZyA4NTE5LjwvYT4KKzwvcD4KKzxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgorPHNj
cmlwdD4KKwordmFyIGV4cGVjdGVkUmVjb3JkQ291bnQgPSAxMjsKK3ZhciByZWNvcmRDb3VudCA9
IDA7Citkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY29uc29sZSIpLmFkZEV2ZW50TGlzdGVuZXIo
IkRPTU5vZGVJbnNlcnRlZCIsIGZ1bmN0aW9uKGUpIHsKKyAgICByZWNvcmRDb3VudCsrOworICAg
IGlmIChyZWNvcmRDb3VudCA9PT0gZXhwZWN0ZWRSZWNvcmRDb3VudCAmJiB3aW5kb3cubGF5b3V0
VGVzdENvbnRyb2xsZXIpCisgICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLm5vdGlmeURvbmUo
KTsKK30sIGZhbHNlKTsKKworZnVuY3Rpb24gbG9nKG1zZykgeworICAgIHZhciByZWNvcmQgPSBk
b2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTsKKyAgICByZWNvcmQuaW5uZXJIVE1MID0gbXNn
OworICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjb25zb2xlIikuYXBwZW5kQ2hpbGQocmVj
b3JkKTsKK30KKworZnVuY3Rpb24gbGFzdFVybENvbXBvbmVudCh1cmwpIHsKKyAgICByZXR1cm4g
dXJsID8gdXJsLm1hdGNoKCAvW15cL10rXC8/JC8gKVswXSA6IHVybDsKK30KKword2luZG93Lm9u
ZXJyb3IgPSBmdW5jdGlvbihtc2csIHVybCwgbGluZSkKK3sKKyAgICBsb2coIk1haW4gd29ybGQg
d2luZG93Lm9uZXJyb3I6ICIgKyBtc2cgKyAiIGF0ICIgKyBsYXN0VXJsQ29tcG9uZW50KHVybCkg
KyAiOiIgKyBsaW5lKTsKKyAgICByZXR1cm4gZmFsc2U7Cit9CisKK3dpbmRvdy5hZGRFdmVudExp
c3RlbmVyKCJlcnJvciIsIGZ1bmN0aW9uKGUpCit7CisgICAgdmFyIHVybCA9IGxhc3RVcmxDb21w
b25lbnQoZS5maWxlbmFtZSk7CisgICAgbG9nKCJNYWluIHdvcmxkIGVycm9yIGV2ZW50IGxpc3Rl
bmVyOiAiICsgZS5tZXNzYWdlICsgIiBhdCAiICsgdXJsICsgIjoiICsgZS5saW5lbm8pOworfSwg
ZmFsc2UpOworCit2YXIgZXhjZXB0aW9ucyA9IGZ1bmN0aW9uKGlzb2xhdGVkV29ybGQpCit7Cisg
ICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoImxvYWQiLCBmdW5jdGlvbihlKSB7CisgICAgICAg
IHRocm93IG5ldyBFcnJvcigiRXJyb3IgaW4gIiArIGlzb2xhdGVkV29ybGQgKyAiIGxvYWQgaGFu
ZGxlci4iKTsKKyAgICB9LCBmYWxzZSk7CisKKworICAgIHNldFRpbWVvdXQoZnVuY3Rpb24oKSB7
CisgICAgICAgIHRocm93IG5ldyBFcnJvcigiRXJyb3IgaW4gIiArIGlzb2xhdGVkV29ybGQgKyAi
IHNldFRpbWVvdXQgY2FsbGJhY2suIik7CisgICAgfSwgMCk7CisKKyAgICB0aHJvdyBuZXcgRXJy
b3IoIkVycm9yIGluICIrIGlzb2xhdGVkV29ybGQgKyAiIGlubGluZSBzY3JpcHQuIik7Cit9CisK
K2lmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpIHsKKyAgICBsYXlvdXRUZXN0Q29udHJv
bGxlci5kdW1wQXNUZXh0KCk7CisgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIud2FpdFVudGlsRG9u
ZSgpOworICAgIGxheW91dFRlc3RDb250cm9sbGVyLmFkZFVzZXJTY3JpcHQoIigiICsgZXhjZXB0
aW9ucyArICIpKCd1c2VyIHNjcmlwdCcpIiwgZmFsc2UsIHRydWUpOworfQorCitleGNlcHRpb25z
KCJtYWluIHdvcmxkIik7CisKKzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvdXNlcnNjcmlwdHMvd2luZG93LW9uZXJyb3ItZm9yLWlzb2xhdGVkLXdv
cmxkLTItZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvdXNlcnNjcmlwdHMvd2luZG93LW9uZXJy
b3ItZm9yLWlzb2xhdGVkLXdvcmxkLTItZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmI5MDlhOTk3
NWJmZmE2MTI3MGZiZTQ4ZmY1NGY0OGI3OWEyODlhMmQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy91c2Vyc2NyaXB0cy93aW5kb3ctb25lcnJvci1mb3ItaXNvbGF0ZWQtd29ybGQtMi1l
eHBlY3RlZC50eHQKQEAgLTAsMCArMSwxMyBAQAorQ09OU09MRSBNRVNTQUdFOiBsaW5lIDMwOiBF
cnJvcjogRXJyb3IgaW4gbWFpbiB3b3JsZCBpbmxpbmUgc2NyaXB0LgorVGVzdCB0aGF0IHdpbmRv
dy5vbmVycm9yIGFuZCAiZXJyb3IiIGV2ZW50IGxpc3RlbmVycyBmcm9tIGlzb2xhdGVkIHdvcmxk
IGFyZSBpbnZva2VkIGZvciB1bmNhdWdodCBleGNlcHRpb25zIGluIHVzZXIgc2NyaXB0cyBydW5u
aW5nIGluIGlzb2xhdGUgd29ybGRzIGFzIHdlbGwgYXMgZm9yIGV4Y2VwdGlvbnMgaW4gdGhlIG1h
aW4gd29ybGQuQnVnIDg1MTkuCisKK3VzZXIgc2NyaXB0IHdpbmRvdy5vbmVycm9yOiBFcnJvcjog
RXJyb3IgaW4gdXNlciBzY3JpcHQgaW5saW5lIHNjcmlwdC4gYXQgdW5kZWZpbmVkOjMxCit1c2Vy
IHNjcmlwdCBlcnJvciBldmVudCBsaXN0ZW5lcjogRXJyb3I6IEVycm9yIGluIHVzZXIgc2NyaXB0
IGlubGluZSBzY3JpcHQuIGF0IHVuZGVmaW5lZDozMQordXNlciBzY3JpcHQgd2luZG93Lm9uZXJy
b3I6IEVycm9yOiBFcnJvciBpbiBtYWluIHdvcmxkIGxvYWQgaGFuZGxlci4gYXQgd2luZG93LW9u
ZXJyb3ItZm9yLWlzb2xhdGVkLXdvcmxkLTIuaHRtbDoyMwordXNlciBzY3JpcHQgZXJyb3IgZXZl
bnQgbGlzdGVuZXI6IEVycm9yOiBFcnJvciBpbiBtYWluIHdvcmxkIGxvYWQgaGFuZGxlci4gYXQg
d2luZG93LW9uZXJyb3ItZm9yLWlzb2xhdGVkLXdvcmxkLTIuaHRtbDoyMwordXNlciBzY3JpcHQg
d2luZG93Lm9uZXJyb3I6IEVycm9yOiBFcnJvciBpbiB1c2VyIHNjcmlwdCBsb2FkIGhhbmRsZXIu
IGF0IHVuZGVmaW5lZDoyNAordXNlciBzY3JpcHQgZXJyb3IgZXZlbnQgbGlzdGVuZXI6IEVycm9y
OiBFcnJvciBpbiB1c2VyIHNjcmlwdCBsb2FkIGhhbmRsZXIuIGF0IHVuZGVmaW5lZDoyNAordXNl
ciBzY3JpcHQgd2luZG93Lm9uZXJyb3I6IEVycm9yOiBFcnJvciBpbiBtYWluIHdvcmxkIHNldFRp
bWVvdXQgY2FsbGJhY2suIGF0IHdpbmRvdy1vbmVycm9yLWZvci1pc29sYXRlZC13b3JsZC0yLmh0
bWw6MjcKK3VzZXIgc2NyaXB0IGVycm9yIGV2ZW50IGxpc3RlbmVyOiBFcnJvcjogRXJyb3IgaW4g
bWFpbiB3b3JsZCBzZXRUaW1lb3V0IGNhbGxiYWNrLiBhdCB3aW5kb3ctb25lcnJvci1mb3ItaXNv
bGF0ZWQtd29ybGQtMi5odG1sOjI3Cit1c2VyIHNjcmlwdCB3aW5kb3cub25lcnJvcjogRXJyb3I6
IEVycm9yIGluIHVzZXIgc2NyaXB0IHNldFRpbWVvdXQgY2FsbGJhY2suIGF0IHVuZGVmaW5lZDoy
OAordXNlciBzY3JpcHQgZXJyb3IgZXZlbnQgbGlzdGVuZXI6IEVycm9yOiBFcnJvciBpbiB1c2Vy
IHNjcmlwdCBzZXRUaW1lb3V0IGNhbGxiYWNrLiBhdCB1bmRlZmluZWQ6MjgKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL3VzZXJzY3JpcHRzL3dpbmRvdy1vbmVycm9yLWZvci1pc29sYXRlZC13b3Js
ZC0yLmh0bWwgYi9MYXlvdXRUZXN0cy91c2Vyc2NyaXB0cy93aW5kb3ctb25lcnJvci1mb3ItaXNv
bGF0ZWQtd29ybGQtMi5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmE2ZWM2OTlmOGM2MGJiNTI0ZDkxNDQ4YjU3
YWQ3MzJhY2RhYzA5MTEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy91c2Vyc2NyaXB0
cy93aW5kb3ctb25lcnJvci1mb3ItaXNvbGF0ZWQtd29ybGQtMi5odG1sCkBAIC0wLDAgKzEsNjcg
QEAKKzwhRE9DVFlQRSBIVE1MPgorPGh0bWw+Cis8aGVhZD4KKzwvaGVhZD4KKzxib2R5PgorPHA+
VGVzdCB0aGF0IHdpbmRvdy5vbmVycm9yIGFuZCAiZXJyb3IiIGV2ZW50IGxpc3RlbmVycyBmcm9t
IGlzb2xhdGVkIHdvcmxkIGFyZQoraW52b2tlZCBmb3IgdW5jYXVnaHQgZXhjZXB0aW9ucyBpbiB1
c2VyIHNjcmlwdHMgcnVubmluZyBpbiBpc29sYXRlIHdvcmxkcyBhcword2VsbCBhcyBmb3IgZXhj
ZXB0aW9ucyBpbiB0aGUgbWFpbiB3b3JsZC48YSBocmVmPSJodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9ODUxOSI+QnVnIDg1MTkuPC9hPgorPC9wPgorPGRpdiBpZD0iY29u
c29sZSI+PC9kaXY+Cis8c2NyaXB0PgorCit2YXIgZXhwZWN0ZWRSZWNvcmRDb3VudCA9IDEwOwor
dmFyIHJlY29yZENvdW50ID0gMDsKK2RvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjb25zb2xlIiku
YWRkRXZlbnRMaXN0ZW5lcigiRE9NTm9kZUluc2VydGVkIiwgZnVuY3Rpb24oZSkgeworICAgIGlm
ICgrK3JlY29yZENvdW50ID09PSBleHBlY3RlZFJlY29yZENvdW50ICYmIHdpbmRvdy5sYXlvdXRU
ZXN0Q29udHJvbGxlcikKKyAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIubm90aWZ5RG9uZSgp
OworfSwgZmFsc2UpOworCit2YXIgdGhyb3dFeGNlcHRpb25zID0gZnVuY3Rpb24oaXNvbGF0ZWRX
b3JsZCkKK3sKKyAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigibG9hZCIsIGZ1bmN0aW9uKGUp
IHsKKyAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJFcnJvciBpbiAiICsgaXNvbGF0ZWRXb3JsZCAr
ICIgbG9hZCBoYW5kbGVyLiIpOworICAgIH0sIGZhbHNlKTsKKworICAgIHNldFRpbWVvdXQoZnVu
Y3Rpb24oKSB7CisgICAgICAgIHRocm93IG5ldyBFcnJvcigiRXJyb3IgaW4gIiArIGlzb2xhdGVk
V29ybGQgKyAiIHNldFRpbWVvdXQgY2FsbGJhY2suIik7CisgICAgfSwgMCk7CisgICAgCisgICAg
dGhyb3cgbmV3IEVycm9yKCJFcnJvciBpbiAiKyBpc29sYXRlZFdvcmxkICsgIiBpbmxpbmUgc2Ny
aXB0LiIpOworfTsKKwordmFyIGVycm9ySGFuZGxlcnMgPSBmdW5jdGlvbihpc29sYXRlZFdvcmxk
KQoreworICAgIGZ1bmN0aW9uIGxhc3RVcmxDb21wb25lbnQodXJsKSB7CisgICAgICAgIHJldHVy
biB1cmwgPyB1cmwubWF0Y2goIC9bXlwvXStcLz8kLyApWzBdIDogdXJsOworICAgIH0KKworICAg
IGZ1bmN0aW9uIGxvZyhtc2cpIHsKKyAgICAgICAgdmFyIHJlY29yZCA9IGRvY3VtZW50LmNyZWF0
ZUVsZW1lbnQoImRpdiIpOworICAgICAgICByZWNvcmQuaW5uZXJIVE1MID0gbXNnOworICAgICAg
ICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY29uc29sZSIpLmFwcGVuZENoaWxkKHJlY29yZCk7
CisgICAgfQorCisgICAgd2luZG93Lm9uZXJyb3IgPSBmdW5jdGlvbihtc2csIHVybCwgbGluZSkg
eworICAgICAgICBsb2coaXNvbGF0ZWRXb3JsZCArICIgd2luZG93Lm9uZXJyb3I6ICIgKyBtc2cg
KyAiIGF0ICIgKyBsYXN0VXJsQ29tcG9uZW50KHVybCkgKyAiOiIgKyBsaW5lLCAiKiIpOworICAg
ICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorCisgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIo
ImVycm9yIiwgZnVuY3Rpb24oZSkgeworICAgICAgICB2YXIgdXJsID0gbGFzdFVybENvbXBvbmVu
dChlLmZpbGVuYW1lKTsKKyAgICAgICAgbG9nKGlzb2xhdGVkV29ybGQgKyAiIGVycm9yIGV2ZW50
IGxpc3RlbmVyOiAiICsgZS5tZXNzYWdlICsgIiBhdCAiICsgdXJsICsgIjoiICsgZS5saW5lbm8s
ICIqIik7CisgICAgICAgIGUucHJldmVudERlZmF1bHQoKTsKKyAgICB9LCBmYWxzZSk7Cit9Owor
CitpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKSB7CisgICAgbGF5b3V0VGVzdENvbnRy
b2xsZXIuZHVtcEFzVGV4dCgpOworICAgIGxheW91dFRlc3RDb250cm9sbGVyLndhaXRVbnRpbERv
bmUoKTsKKyAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5hZGRVc2VyU2NyaXB0KCIoIiArIGVycm9y
SGFuZGxlcnMgKyAiKSgndXNlciBzY3JpcHQnKTsgKCIgKyB0aHJvd0V4Y2VwdGlvbnMgKyAiKSgn
dXNlciBzY3JpcHQnKSIsIGZhbHNlLCB0cnVlKTsKK30KKwordGhyb3dFeGNlcHRpb25zKCJtYWlu
IHdvcmxkIik7CisKKzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvV2Vi
Q29yZS9BbmRyb2lkLmpzY2JpbmRpbmdzLm1rIGIvV2ViQ29yZS9BbmRyb2lkLmpzY2JpbmRpbmdz
Lm1rCmluZGV4IDA4MTYxMTM0OTlmMzM1MDU0NWRhMDFkY2U5ZmE5ODkwZDQ0OTA1OTcuLmE0YjA5
MmY3ZTU3YTllZDk3MzU2ZDJmNzA5ZTFhY2EwZDk5YzlkZjcgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUv
QW5kcm9pZC5qc2NiaW5kaW5ncy5taworKysgYi9XZWJDb3JlL0FuZHJvaWQuanNjYmluZGluZ3Mu
bWsKQEAgLTk2LDYgKzk2LDcgQEAgTE9DQUxfU1JDX0ZJTEVTICs9IFwKIAliaW5kaW5ncy9qcy9K
U0RldmljZU9yaWVudGF0aW9uRXZlbnRDdXN0b20uY3BwIFwKIAliaW5kaW5ncy9qcy9KU0RvY3Vt
ZW50Q3VzdG9tLmNwcCBcCiAJYmluZGluZ3MvanMvSlNFbGVtZW50Q3VzdG9tLmNwcCBcCisJYmlu
ZGluZ3MvanMvSlNFcnJvckhhbmRsZXIuY3BwIFwKIAliaW5kaW5ncy9qcy9KU0V2ZW50Q3VzdG9t
LmNwcCBcCiAJYmluZGluZ3MvanMvSlNFdmVudExpc3RlbmVyLmNwcCBcCiAJYmluZGluZ3MvanMv
SlNFdmVudFRhcmdldC5jcHAgXApAQCAtMTU2LDcgKzE1Nyw2IEBAIExPQ0FMX1NSQ19GSUxFUyAr
PSBcCiAJYmluZGluZ3MvanMvSlNXZWJLaXRQb2ludEN1c3RvbS5jcHAgXAogCWJpbmRpbmdzL2pz
L0pTV29ya2VyQ29udGV4dEJhc2UuY3BwIFwKIAliaW5kaW5ncy9qcy9KU1dvcmtlckNvbnRleHRD
dXN0b20uY3BwIFwKLQliaW5kaW5ncy9qcy9KU1dvcmtlckNvbnRleHRFcnJvckhhbmRsZXIuY3Bw
IFwKIAliaW5kaW5ncy9qcy9KU1dvcmtlckN1c3RvbS5jcHAgXAogCWJpbmRpbmdzL2pzL0pTWE1M
SHR0cFJlcXVlc3RDdXN0b20uY3BwIFwKIAliaW5kaW5ncy9qcy9KU1hNTEh0dHBSZXF1ZXN0VXBs
b2FkQ3VzdG9tLmNwcCBcCmRpZmYgLS1naXQgYS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0IGIvV2Vi
Q29yZS9DTWFrZUxpc3RzLnR4dAppbmRleCA3NjAzM2NmNjljYmRmNmE2YjcyMGU5ZGQ5NzU1YTlm
NTczMjVkMzY1Li5jYTMwNWM0YzdkOWZjOTA0YjJhNTVmNzAyNTMzMzhiZmFkNWVjMDA2IDEwMDY0
NAotLS0gYS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CisrKyBiL1dlYkNvcmUvQ01ha2VMaXN0cy50
eHQKQEAgLTYxMyw2ICs2MTMsNyBAQCBTRVQoV2ViQ29yZV9TT1VSQ0VTCiAgICAgYmluZGluZ3Mv
anMvSlNET01XaW5kb3dTaGVsbC5jcHAKICAgICBiaW5kaW5ncy9qcy9KU0RPTVdyYXBwZXIuY3Bw
CiAgICAgYmluZGluZ3MvanMvSlNFbGVtZW50Q3VzdG9tLmNwcAorICAgIGJpbmRpbmdzL2pzL0pT
RXJyb3JIYW5kbGVyLmNwcAogICAgIGJpbmRpbmdzL2pzL0pTRXZlbnRDdXN0b20uY3BwCiAgICAg
YmluZGluZ3MvanMvSlNFdmVudExpc3RlbmVyLmNwcAogICAgIGJpbmRpbmdzL2pzL0pTRXZlbnRT
b3VyY2VDdXN0b20uY3BwCkBAIC02NzYsNyArNjc3LDYgQEAgU0VUKFdlYkNvcmVfU09VUkNFUwog
ICAgIGJpbmRpbmdzL2pzL0pTV2ViU29ja2V0Q3VzdG9tLmNwcAogICAgIGJpbmRpbmdzL2pzL0pT
V29ya2VyQ29udGV4dEJhc2UuY3BwCiAgICAgYmluZGluZ3MvanMvSlNXb3JrZXJDb250ZXh0Q3Vz
dG9tLmNwcAotICAgIGJpbmRpbmdzL2pzL0pTV29ya2VyQ29udGV4dEVycm9ySGFuZGxlci5jcHAK
ICAgICBiaW5kaW5ncy9qcy9KU1dvcmtlckN1c3RvbS5jcHAKICAgICBiaW5kaW5ncy9qcy9KU1hN
TEh0dHBSZXF1ZXN0Q3VzdG9tLmNwcAogICAgIGJpbmRpbmdzL2pzL0pTWE1MSHR0cFJlcXVlc3RV
cGxvYWRDdXN0b20uY3BwCmRpZmYgLS1naXQgYS9XZWJDb3JlL0NoYW5nZUxvZyBiL1dlYkNvcmUv
Q2hhbmdlTG9nCmluZGV4IDkxNWM1YjY1Nzc3NjhiNjhjODAzMzFlNGIxMWI4YmVjN2Y0MTY0NGIu
LjhiNTFhNGI3YzQ4MzdmOTg3YmQ3MzQzNjgwOTgyZTg0ZDhlZDQwMzkgMTAwNjQ0Ci0tLSBhL1dl
YkNvcmUvQ2hhbmdlTG9nCisrKyBiL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsOTIgQEAK
KzIwMTAtMTAtMTkgIGFsZXhAd2Via2l0Lm9yZyAgPGFsZXhAd2Via2l0Lm9yZ0AyNjhmNDVjYy1j
ZDA5LTA0MTAtYWIzYy1kNTI2OTFiNGRiZmM+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgV2ViQ29yZSBkb2Vzbid0IGZpcmUgd2luZG93Lm9uZXJyb3Ig
ZXZlbnQgd2hlbiB1bmNhdWdodCBKYXZhU2NyaXB0IGV4Y2VwdGlvbnMgYXJlIHRocm93bgorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODUxOQorCisgICAg
ICAgIFVuY2F1Z2h0IGV4Y2VwdGlvbnMgYXJlIHByb3BhZ2F0ZWQgdG8gd2luZG93Lm9uZXJyb3Ig
aGFuZGVyIGlmIG9uZSBpcyBwcmVzZW50LgorICAgICAgICBUaGUgaGFuZGxlciBpcyBleHBlY3Rl
ZCB0byBiZSBhIGZ1bmN0aW9uIGFjY2VwdGluZyB0aHJlZSBhcmd1bWVudHM6IGVycm9yIG1lc3Nh
Z2UsCisgICAgICAgIHJlc291cmNlIHVybCBhbmQgbGluZSBudW1iZXIgd2hlcmUgdGhlIGV4Y2Vw
dGlvbiBvY2N1cmVkLgorCisgICAgICAgIEl0IHdhcyBkZWNpZGVkIHRvIGRpc3BhdGNoIEVycm9y
RXZlbnQgdG8gYWxsIGxpc3RlbmVycy9oYW5kbGVycyBubyBtYXR0ZXIgaWYgdGhleQorICAgICAg
ICB3ZXJlIGNyZWF0ZWQgaW4gdGhlIHNhbWUgaXNvbGF0ZWQgd29ybGQgd2hlcmUgdGhlIGV4Y2Vw
dGlvbiBvY2N1cmVkIG9yIG5vdC4KKworICAgICAgICBUZXN0czogZmFzdC9ldmVudHMvd2luZG93
LW9uZXJyb3IxLmh0bWwKKyAgICAgICAgICAgICAgIGZhc3QvZXZlbnRzL3dpbmRvdy1vbmVycm9y
MTAuaHRtbAorICAgICAgICAgICAgICAgZmFzdC9ldmVudHMvd2luZG93LW9uZXJyb3IxMS5odG1s
CisgICAgICAgICAgICAgICBmYXN0L2V2ZW50cy93aW5kb3ctb25lcnJvcjIuaHRtbAorICAgICAg
ICAgICAgICAgZmFzdC9ldmVudHMvd2luZG93LW9uZXJyb3IzLmh0bWwKKyAgICAgICAgICAgICAg
IGZhc3QvZXZlbnRzL3dpbmRvdy1vbmVycm9yNC5odG1sCisgICAgICAgICAgICAgICBmYXN0L2V2
ZW50cy93aW5kb3ctb25lcnJvcjUuaHRtbAorICAgICAgICAgICAgICAgZmFzdC9ldmVudHMvd2lu
ZG93LW9uZXJyb3I2Lmh0bWwKKyAgICAgICAgICAgICAgIGZhc3QvZXZlbnRzL3dpbmRvdy1vbmVy
cm9yNy5odG1sCisgICAgICAgICAgICAgICBmYXN0L2V2ZW50cy93aW5kb3ctb25lcnJvcjguaHRt
bAorICAgICAgICAgICAgICAgZmFzdC9ldmVudHMvd2luZG93LW9uZXJyb3I5Lmh0bWwKKyAgICAg
ICAgICAgICAgIGh0dHAvdGVzdHMvc2VjdXJpdHkvd2luZG93LW9uZXJyb3ItZXhjZXB0aW9uLWlu
LWlmcmFtZS5odG1sCisgICAgICAgICAgICAgICB1c2Vyc2NyaXB0cy93aW5kb3ctb25lcnJvci1m
b3ItaXNvbGF0ZWQtd29ybGQtMS5odG1sCisgICAgICAgICAgICAgICB1c2Vyc2NyaXB0cy93aW5k
b3ctb25lcnJvci1mb3ItaXNvbGF0ZWQtd29ybGQtMi5odG1sCisKKyAgICAgICAgKiBBbmRyb2lk
LmpzY2JpbmRpbmdzLm1rOgorICAgICAgICAqIENNYWtlTGlzdHMudHh0OgorICAgICAgICAqIEdO
VW1ha2VmaWxlLmFtOgorICAgICAgICAqIFdlYkNvcmUuZ3lwaToKKyAgICAgICAgKiBXZWJDb3Jl
Lm9yZGVyOgorICAgICAgICAqIFdlYkNvcmUucHJvOgorICAgICAgICAqIFdlYkNvcmUudmNwcm9q
L1dlYkNvcmUudmNwcm9qOgorICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvajoKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU0JpbmRpbmdzQWxsSW5PbmUuY3BwOgorICAg
ICAgICAqIGJpbmRpbmdzL2pzL0pTRE9NQmluZGluZy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpy
ZXBvcnRFeGNlcHRpb24pOgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pTRXJyb3JIYW5kbGVyLmNw
cDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpKU0Vycm9ySGFuZGxlcjo6SlNFcnJvckhhbmRs
ZXIpOgorICAgICAgICAoV2ViQ29yZTo6SlNFcnJvckhhbmRsZXI6On5KU0Vycm9ySGFuZGxlcik6
CisgICAgICAgIChXZWJDb3JlOjpKU0Vycm9ySGFuZGxlcjo6aGFuZGxlRXZlbnQpOgorICAgICAg
ICAqIGJpbmRpbmdzL2pzL0pTRXJyb3JIYW5kbGVyLmg6IEFkZGVkLgorICAgICAgICAoV2ViQ29y
ZTo6SlNFcnJvckhhbmRsZXI6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpjcmVhdGVKU0Vy
cm9ySGFuZGxlcik6CisgICAgICAgICogYmluZGluZ3MvanMvSlNXb3JrZXJDb250ZXh0RXJyb3JI
YW5kbGVyLmNwcDogUmVtb3ZlZC4KKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU1dvcmtlckNvbnRl
eHRFcnJvckhhbmRsZXIuaDogUmVtb3ZlZC4gVGhpcyBjbGFzcyB3YXMgcmVmYWN0b3JlZCBpbnRv
IG1vcmUgZ2VuZXJhbAorICAgICAgICBKU0Vycm9ySGFuZGxlciB0aGF0IHJlcHJlc2VudHMgZ2xv
YmFsIG9uZXJybyBoYW5kZXIgb24gV29ya2VyIENvbnRleHQgb3Igb24gRE9NV2luZG93LgorICAg
ICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtOgorICAgICAgICAqIGJp
bmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvclY4LnBtOgorICAgICAgICAqIGJpbmRpbmdzL3Y4
L1Y4Q29uc29sZU1lc3NhZ2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6VjhDb25zb2xlTWVzc2Fn
ZTo6ZGlzcGF0Y2hOb3cpOgorICAgICAgICAoV2ViQ29yZTo6VjhDb25zb2xlTWVzc2FnZTo6aGFu
ZGxlcik6IHRoZSBtZXRob2Qgd2FzIGNoYW5nZWQgdG8gdXNlIGdlbmVyaWMgV2ViQ29yZSBleGNl
cHRpb24KKyAgICAgICAgcmVwb3J0aW5nIG1lY2hhbmlzbSB3aGljaCBpcyBhbHNvIHVzZWQgYnkg
SlNDIGJpbmRpbmdzLgorICAgICAgICAqIGJpbmRpbmdzL3Y4L1Y4Q29uc29sZU1lc3NhZ2UuaDoK
KyAgICAgICAgKFdlYkNvcmU6OlY4Q29uc29sZU1lc3NhZ2U6OlNjb3BlOjpTY29wZSk6CisgICAg
ICAgIChXZWJDb3JlOjpWOENvbnNvbGVNZXNzYWdlOjpTY29wZTo6flNjb3BlKToKKyAgICAgICAg
KiBiaW5kaW5ncy92OC9WOFdpbmRvd0Vycm9ySGFuZGxlci5jcHA6IEFkZGVkLgorICAgICAgICAo
V2ViQ29yZTo6VjhXaW5kb3dFcnJvckhhbmRsZXI6OlY4V2luZG93RXJyb3JIYW5kbGVyKToKKyAg
ICAgICAgKFdlYkNvcmU6OlY4V2luZG93RXJyb3JIYW5kbGVyOjpjYWxsTGlzdGVuZXJGdW5jdGlv
bik6CisgICAgICAgICogYmluZGluZ3MvdjgvVjhXaW5kb3dFcnJvckhhbmRsZXIuaDogQWRkZWQu
CisgICAgICAgIChXZWJDb3JlOjpWOFdpbmRvd0Vycm9ySGFuZGxlcjo6Y3JlYXRlKToKKyAgICAg
ICAgKiBiaW5kaW5ncy92OC9Xb3JrZXJDb250ZXh0RXhlY3V0aW9uUHJveHkuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6djhNZXNzYWdlSGFuZGxlcik6CisgICAgICAgICogYmluZGluZ3MvdjgvV29y
a2VyU2NyaXB0Q29udHJvbGxlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpXb3JrZXJTY3JpcHRD
b250cm9sbGVyOjpldmFsdWF0ZSk6CisgICAgICAgICogZG9tL0RvY3VtZW50LmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OkRvY3VtZW50OjplcnJvckV2ZW50VGFyZ2V0KToKKyAgICAgICAgKFdlYkNv
cmU6OkRvY3VtZW50Ojpsb2dFeGNlcHRpb25Ub0NvbnNvbGUpOgorICAgICAgICAqIGRvbS9Eb2N1
bWVudC5oOgorICAgICAgICAqIGRvbS9TY3JpcHRFeGVjdXRpb25Db250ZXh0LmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OlNjcmlwdEV4ZWN1dGlvbkNvbnRleHQ6OlBlbmRpbmdFeGNlcHRpb246OlBl
bmRpbmdFeGNlcHRpb24pOgorICAgICAgICAoV2ViQ29yZTo6U2NyaXB0RXhlY3V0aW9uQ29udGV4
dDo6U2NyaXB0RXhlY3V0aW9uQ29udGV4dCk6CisgICAgICAgIChXZWJDb3JlOjpTY3JpcHRFeGVj
dXRpb25Db250ZXh0OjpyZXBvcnRFeGNlcHRpb24pOiB0aGlzIG1ldGhvZCBpcyBub3QgdmlydHVh
bCBhbnltb3JlIHRvCisgICAgICAgIGVuc3VyZSB0aGF0IGVycm9yIGV2ZW50IGRpc3BhdGNoaW5n
IGFsZ29yaXRobSBpcyB0aGUgc2FtZSBpbiBXb3JrZXJDb250ZXh0IGFuZCBpbiBEb2N1bWVudC4K
KyAgICAgICAgKFdlYkNvcmU6OlNjcmlwdEV4ZWN1dGlvbkNvbnRleHQ6OmRpc3BhdGNoRXJyb3JF
dmVudCk6CisgICAgICAgICogZG9tL1NjcmlwdEV4ZWN1dGlvbkNvbnRleHQuaDoKKyAgICAgICAg
KiB3b3JrZXJzL0RlZmF1bHRTaGFyZWRXb3JrZXJSZXBvc2l0b3J5LmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OnBvc3RFeGNlcHRpb25UYXNrKToKKyAgICAgICAgKiB3b3JrZXJzL1dvcmtlckNvbnRl
eHQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6V29ya2VyQ29udGV4dDo6V29ya2VyQ29udGV4dCk6
CisgICAgICAgIChXZWJDb3JlOjpXb3JrZXJDb250ZXh0OjplcnJvckV2ZW50VGFyZ2V0KToKKyAg
ICAgICAgKFdlYkNvcmU6OldvcmtlckNvbnRleHQ6OmxvZ0V4Y2VwdGlvblRvQ29uc29sZSk6Cisg
ICAgICAgICogd29ya2Vycy9Xb3JrZXJDb250ZXh0Lmg6CisgICAgICAgICogd29ya2Vycy9Xb3Jr
ZXJNZXNzYWdpbmdQcm94eS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpXb3JrZXJFeGNlcHRpb25U
YXNrOjpwZXJmb3JtVGFzayk6CisKIDIwMTAtMTAtMTggIFBhdmVsIEZlbGRtYW4gIDxwZmVsZG1h
bkBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgTm90IHJldmlld2VkLiBCdWlsZCBmaXguCmRpZmYg
LS1naXQgYS9XZWJDb3JlL0dOVW1ha2VmaWxlLmFtIGIvV2ViQ29yZS9HTlVtYWtlZmlsZS5hbQpp
bmRleCA3MzVmNjFiM2VjYWVkODAyZGIyYTY0NzI1MTUwOWFlNDVhYTIxZTk1Li4wMWUzN2VhYTNm
NGJmM2RkZTEyMzA5NDE5ZGNhNTdhNzE5NjgwNWQ3IDEwMDY0NAotLS0gYS9XZWJDb3JlL0dOVW1h
a2VmaWxlLmFtCisrKyBiL1dlYkNvcmUvR05VbWFrZWZpbGUuYW0KQEAgLTcxNyw2ICs3MTcsOCBA
QCB3ZWJjb3JlX3NvdXJjZXMgKz0gXAogCVdlYkNvcmUvYmluZGluZ3MvanMvSlNFbGVtZW50Q3Vz
dG9tLmNwcCBcCiAJV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0VudHJ5Q3VzdG9tLmNwcCBcCiAJV2Vi
Q29yZS9iaW5kaW5ncy9qcy9KU0VudHJ5U3luY0N1c3RvbS5jcHAgXAorCVdlYkNvcmUvYmluZGlu
Z3MvanMvSlNFcnJvckhhbmRsZXIuY3BwIFwKKwlXZWJDb3JlL2JpbmRpbmdzL2pzL0pTRXJyb3JI
YW5kbGVyLmggXAogCVdlYkNvcmUvYmluZGluZ3MvanMvSlNFdmVudEN1c3RvbS5jcHAgXAogCVdl
YkNvcmUvYmluZGluZ3MvanMvSlNFdmVudExpc3RlbmVyLmNwcCBcCiAJV2ViQ29yZS9iaW5kaW5n
cy9qcy9KU0V2ZW50TGlzdGVuZXIuaCBcCkBAIC04MDMsOCArODA1LDYgQEAgd2ViY29yZV9zb3Vy
Y2VzICs9IFwKIAlXZWJDb3JlL2JpbmRpbmdzL2pzL0pTV29ya2VyQ29udGV4dEJhc2UuY3BwIFwK
IAlXZWJDb3JlL2JpbmRpbmdzL2pzL0pTV29ya2VyQ29udGV4dEJhc2UuaCBcCiAJV2ViQ29yZS9i
aW5kaW5ncy9qcy9KU1dvcmtlckNvbnRleHRDdXN0b20uY3BwIFwKLQlXZWJDb3JlL2JpbmRpbmdz
L2pzL0pTV29ya2VyQ29udGV4dEVycm9ySGFuZGxlci5jcHAgXAotCVdlYkNvcmUvYmluZGluZ3Mv
anMvSlNXb3JrZXJDb250ZXh0RXJyb3JIYW5kbGVyLmggXAogCVdlYkNvcmUvYmluZGluZ3MvanMv
SlNXb3JrZXJDdXN0b20uY3BwIFwKIAlXZWJDb3JlL2JpbmRpbmdzL2pzL0pTWE1MSHR0cFJlcXVl
c3RDdXN0b20uY3BwIFwKIAlXZWJDb3JlL2JpbmRpbmdzL2pzL0pTWE1MSHR0cFJlcXVlc3RVcGxv
YWRDdXN0b20uY3BwIFwKZGlmZiAtLWdpdCBhL1dlYkNvcmUvV2ViQ29yZS5neXBpIGIvV2ViQ29y
ZS9XZWJDb3JlLmd5cGkKaW5kZXggNzg4MDYwNjc4NDVkYTQxZDVmNWEwYTZiOWU4NmJjZjRjMjk5
ZDk5Mi4uYmYyNGY5ZGU5ZjQ1OTdiMDU1OTI0Njc3MzE0ODA4ZDMyNTcwMTE1NiAxMDA2NDQKLS0t
IGEvV2ViQ29yZS9XZWJDb3JlLmd5cGkKKysrIGIvV2ViQ29yZS9XZWJDb3JlLmd5cGkKQEAgLTU5
Myw2ICs1OTMsOCBAQAogICAgICAgICAgICAgJ2JpbmRpbmdzL2pzL0pTRWxlbWVudEN1c3RvbS5j
cHAnLAogICAgICAgICAgICAgJ2JpbmRpbmdzL2pzL0pTRW50cnlDdXN0b20uY3BwJywKICAgICAg
ICAgICAgICdiaW5kaW5ncy9qcy9KU0VudHJ5U3luY0N1c3RvbS5jcHAnLAorICAgICAgICAgICAg
J2JpbmRpbmdzL2pzL0pTRXJyb3JIYW5kbGVyLmNwcCcsCisgICAgICAgICAgICAnYmluZGluZ3Mv
anMvSlNFcnJvckhhbmRsZXIuaCcsCiAgICAgICAgICAgICAnYmluZGluZ3MvanMvSlNFdmVudEN1
c3RvbS5jcHAnLAogICAgICAgICAgICAgJ2JpbmRpbmdzL2pzL0pTRXZlbnRMaXN0ZW5lci5jcHAn
LAogICAgICAgICAgICAgJ2JpbmRpbmdzL2pzL0pTRXZlbnRMaXN0ZW5lci5oJywKQEAgLTY4NSw4
ICs2ODcsNiBAQAogICAgICAgICAgICAgJ2JpbmRpbmdzL2pzL0pTV29ya2VyQ29udGV4dEJhc2Uu
Y3BwJywKICAgICAgICAgICAgICdiaW5kaW5ncy9qcy9KU1dvcmtlckNvbnRleHRCYXNlLmgnLAog
ICAgICAgICAgICAgJ2JpbmRpbmdzL2pzL0pTV29ya2VyQ29udGV4dEN1c3RvbS5jcHAnLAotICAg
ICAgICAgICAgJ2JpbmRpbmdzL2pzL0pTV29ya2VyQ29udGV4dEVycm9ySGFuZGxlci5jcHAnLAot
ICAgICAgICAgICAgJ2JpbmRpbmdzL2pzL0pTV29ya2VyQ29udGV4dEVycm9ySGFuZGxlci5oJywK
ICAgICAgICAgICAgICdiaW5kaW5ncy9qcy9KU1dvcmtlckN1c3RvbS5jcHAnLAogICAgICAgICAg
ICAgJ2JpbmRpbmdzL2pzL0pTWE1MSHR0cFJlcXVlc3RDdXN0b20uY3BwJywKICAgICAgICAgICAg
ICdiaW5kaW5ncy9qcy9KU1hNTEh0dHBSZXF1ZXN0VXBsb2FkQ3VzdG9tLmNwcCcsCkBAIC05NDks
NiArOTQ5LDggQEAKICAgICAgICAgICAgICdiaW5kaW5ncy92OC9WOFNWR1BPRFR5cGVXcmFwcGVy
LmgnLAogICAgICAgICAgICAgJ2JpbmRpbmdzL3Y4L1Y4VXRpbGl0aWVzLmNwcCcsCiAgICAgICAg
ICAgICAnYmluZGluZ3MvdjgvVjhVdGlsaXRpZXMuaCcsCisgICAgICAgICAgICAnYmluZGluZ3Mv
djgvVjhXaW5kb3dFcnJvckhhbmRsZXIuY3BwJywKKyAgICAgICAgICAgICdiaW5kaW5ncy92OC9W
OFdpbmRvd0Vycm9ySGFuZGxlci5oJywKICAgICAgICAgICAgICdiaW5kaW5ncy92OC9WOFdvcmtl
ckNvbnRleHRFcnJvckhhbmRsZXIuY3BwJywKICAgICAgICAgICAgICdiaW5kaW5ncy92OC9WOFdv
cmtlckNvbnRleHRFcnJvckhhbmRsZXIuaCcsCiAgICAgICAgICAgICAnYmluZGluZ3MvdjgvVjhX
b3JrZXJDb250ZXh0RXZlbnRMaXN0ZW5lci5jcHAnLApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9XZWJD
b3JlLm9yZGVyIGIvV2ViQ29yZS9XZWJDb3JlLm9yZGVyCmluZGV4IDA2ZGZiM2Q3MzU5YmJkZWVm
NTg3Mjg2MjcyZThmYzQzMmZhZDBlODcuLmQwNWY1OTQ4MWViODM5YmM2YjBkODhmNDU0MjA3MGQ3
NzRmZWMzMTIgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvV2ViQ29yZS5vcmRlcgorKysgYi9XZWJDb3Jl
L1dlYkNvcmUub3JkZXIKQEAgLTI1MjEzLDEzICsyNTIxMyw5IEBAIF9fWk43V2ViQ29yZTE1SlNX
b3JrZXJDb250ZXh0MTBzZXRUaW1lb3V0RVBOM0pTQzlFeGVjU3RhdGVFUktOUzFfN0FyZ0xpc3RF
CiBfX1pON1dlYkNvcmUxM1dvcmtlckNvbnRleHQxMHNldFRpbWVvdXRFUE5TXzE1U2NoZWR1bGVk
QWN0aW9uRWkKIF9fWk43V2ViQ29yZTE3V29ya2VyU2hhcmVkVGltZXIxMXNldEZpcmVUaW1lRWQK
IF9fWk43V2ViQ29yZTE1U2NoZWR1bGVkQWN0aW9uN2V4ZWN1dGVFUE5TXzEzV29ya2VyQ29udGV4
dEUKLV9fWk43V2ViQ29yZTI3SlNXb3JrZXJDb250ZXh0RXJyb3JIYW5kbGVyQzFFUE4zSlNDOEpT
T2JqZWN0RVMzX2JQTlNfMTVET01XcmFwcGVyV29ybGRFCi1fX1pON1dlYkNvcmUyN0pTV29ya2Vy
Q29udGV4dEVycm9ySGFuZGxlckMyRVBOM0pTQzhKU09iamVjdEVTM19iUE5TXzE1RE9NV3JhcHBl
cldvcmxkRQogX19aTjdXZWJDb3JlMTBFcnJvckV2ZW50QzFFUktOU182U3RyaW5nRVMzX2oKIF9f
Wk43V2ViQ29yZTEwRXJyb3JFdmVudEMyRVJLTlNfNlN0cmluZ0VTM19qCi1fX1pON1dlYkNvcmUy
N0pTV29ya2VyQ29udGV4dEVycm9ySGFuZGxlcjExaGFuZGxlRXZlbnRFUE5TXzIyU2NyaXB0RXhl
Y3V0aW9uQ29udGV4dEVQTlNfNUV2ZW50RQogX19aTjdXZWJDb3JlMTBFcnJvckV2ZW50RDBFdgot
X19aTjdXZWJDb3JlMjdKU1dvcmtlckNvbnRleHRFcnJvckhhbmRsZXJEMEV2CiBfX1pON1dlYkNv
cmUxN2pzV29ya2VyT25tZXNzYWdlRVBOM0pTQzlFeGVjU3RhdGVFTlMwXzdKU1ZhbHVlRVJLTlMw
XzEwSWRlbnRpZmllckUKIF9fWk43V2ViQ29yZTM0anNXb3JrZXJQcm90b3R5cGVGdW5jdGlvblRl
cm1pbmF0ZUVQTjNKU0M5RXhlY1N0YXRlRVBOUzBfOEpTT2JqZWN0RU5TMF83SlNWYWx1ZUVSS05T
MF83QXJnTGlzdEUKIF9fWlRobjhfTjdXZWJDb3JlMjBXb3JrZXJNZXNzYWdpbmdQcm94eTE5d29y
a2VyQ29udGV4dENsb3NlZEV2CmRpZmYgLS1naXQgYS9XZWJDb3JlL1dlYkNvcmUucHJvIGIvV2Vi
Q29yZS9XZWJDb3JlLnBybwppbmRleCBmYTczNDUwNjkzYjEwNmU2ODM5OWZjOGIwYWJlNDcxY2Qw
ZDQzNDJkLi5kMGUwMWE5ZjI3MTY2ODg2ZTdhMGQ3NGE5YTJlZDJkMGE5YTM2Yjk3IDEwMDY0NAot
LS0gYS9XZWJDb3JlL1dlYkNvcmUucHJvCisrKyBiL1dlYkNvcmUvV2ViQ29yZS5wcm8KQEAgLTU2
OSw3ICs1NjksNiBAQCB2OCB7CiAgICAgICAgIGJpbmRpbmdzL2pzL0pTTWFpblRocmVhZEV4ZWNT
dGF0ZS5jcHAgXAogICAgICAgICBiaW5kaW5ncy9qcy9KU1BsdWdpbkVsZW1lbnRGdW5jdGlvbnMu
Y3BwIFwKICAgICAgICAgYmluZGluZ3MvanMvSlNQb3BTdGF0ZUV2ZW50Q3VzdG9tLmNwcCBcCi0g
ICAgICAgIGJpbmRpbmdzL2pzL0pTV29ya2VyQ29udGV4dEVycm9ySGFuZGxlci5jcHAgXAogICAg
ICAgICBiaW5kaW5ncy9qcy9TY3JpcHRDYWNoZWRGcmFtZURhdGEuY3BwIFwKICAgICAgICAgYmlu
ZGluZ3MvanMvU2NyaXB0Q2FsbEZyYW1lLmNwcCBcCiAgICAgICAgIGJpbmRpbmdzL2pzL1Njcmlw
dENhbGxTdGFjay5jcHAgXApAQCAtMTQ2Myw3ICsxNDYyLDYgQEAgdjggewogICAgICAgICBiaW5k
aW5ncy9qcy9KU1BsdWdpbkVsZW1lbnRGdW5jdGlvbnMuaCBcCiAgICAgICAgIGJpbmRpbmdzL2pz
L0pTU3RvcmFnZUN1c3RvbS5oIFwKICAgICAgICAgYmluZGluZ3MvanMvSlNXb3JrZXJDb250ZXh0
QmFzZS5oIFwKLSAgICAgICAgYmluZGluZ3MvanMvSlNXb3JrZXJDb250ZXh0RXJyb3JIYW5kbGVy
LmggXAogICAgICAgICBiaW5kaW5ncy9qcy9KYXZhU2NyaXB0Q2FsbEZyYW1lLmggXAogICAgICAg
ICBiaW5kaW5ncy9qcy9TY2hlZHVsZWRBY3Rpb24uaCBcCiAgICAgICAgIGJpbmRpbmdzL2pzL1Nj
cmlwdENhY2hlZEZyYW1lRGF0YS5oIFwKZGlmZiAtLWdpdCBhL1dlYkNvcmUvV2ViQ29yZS52Y3By
b2ovV2ViQ29yZS52Y3Byb2ogYi9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9q
CmluZGV4IGE3Y2ZmNTIzOTVkYzZjNWZhYmEzN2RkMDA3NjQ1YTZjNTQ5NTk3N2YuLjhmM2UxODA1
ZTE0YmQzMWQzNzM1MjA0NmNmYmMwNmM2MDMzY2JkOTcgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvV2Vi
Q29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oKKysrIGIvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9X
ZWJDb3JlLnZjcHJvagpAQCAtNTU1MTEsNiArNTU1MTEsNjMgQEAKIAkJCQk8L0ZpbGU+DQogCQkJ
CTxGaWxlDQogCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGJpbmRpbmdzXGpzXEpTRE9NV2luZG93U2hl
bGwuY3BwIg0KKwkJCQkJUmVsYXRpdmVQYXRoPSIuLlxiaW5kaW5nc1xqc1xKU0Vycm9ySGFuZGxl
ci5jcHAiDQorCQkJCQk+DQorCQkJCQk8RmlsZUNvbmZpZ3VyYXRpb24NCisJCQkJCQlOYW1lPSJE
ZWJ1Z3xXaW4zMiINCisJCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSINCisJCQkJCQk+DQor
CQkJCQkJPFRvb2wNCisJCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCINCisJCQkJCQkvPg0K
KwkJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4NCisJCQkJCTxGaWxlQ29uZmlndXJhdGlvbg0KKwkJ
CQkJCU5hbWU9IlJlbGVhc2V8V2luMzIiDQorCQkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUi
DQorCQkJCQkJPg0KKwkJCQkJCTxUb29sDQorCQkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wi
DQorCQkJCQkJLz4NCisJCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+DQorCQkJCQk8RmlsZUNvbmZp
Z3VyYXRpb24NCisJCQkJCQlOYW1lPSJEZWJ1Z19JbnRlcm5hbHxXaW4zMiINCisJCQkJCQlFeGNs
dWRlZEZyb21CdWlsZD0idHJ1ZSINCisJCQkJCQk+DQorCQkJCQkJPFRvb2wNCisJCQkJCQkJTmFt
ZT0iVkNDTENvbXBpbGVyVG9vbCINCisJCQkJCQkvPg0KKwkJCQkJPC9GaWxlQ29uZmlndXJhdGlv
bj4NCisJCQkJCTxGaWxlQ29uZmlndXJhdGlvbg0KKwkJCQkJCU5hbWU9IkRlYnVnX0NhaXJvfFdp
bjMyIg0KKwkJCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIg0KKwkJCQkJCT4NCisJCQkJCQk8
VG9vbA0KKwkJCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIg0KKwkJCQkJCS8+DQorCQkJCQk8
L0ZpbGVDb25maWd1cmF0aW9uPg0KKwkJCQkJPEZpbGVDb25maWd1cmF0aW9uDQorCQkJCQkJTmFt
ZT0iUmVsZWFzZV9DYWlyb3xXaW4zMiINCisJCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSIN
CisJCQkJCQk+DQorCQkJCQkJPFRvb2wNCisJCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCIN
CisJCQkJCQkvPg0KKwkJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4NCisJCQkJCTxGaWxlQ29uZmln
dXJhdGlvbg0KKwkJCQkJCU5hbWU9IkRlYnVnX0FsbHxXaW4zMiINCisJCQkJCQlFeGNsdWRlZEZy
b21CdWlsZD0idHJ1ZSINCisJCQkJCQk+DQorCQkJCQkJPFRvb2wNCisJCQkJCQkJTmFtZT0iVkND
TENvbXBpbGVyVG9vbCINCisJCQkJCQkvPg0KKwkJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4NCisJ
CQkJPC9GaWxlPg0KKwkJCQk8RmlsZQ0KKwkJCQkJUmVsYXRpdmVQYXRoPSIuLlxiaW5kaW5nc1xq
c1xKU0Vycm9ySGFuZGxlci5oIg0KKwkJCQkJPg0KKwkJCQk8L0ZpbGU+DQorCQkJCTxGaWxlDQor
CQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGJpbmRpbmdzXGpzXEpTRXZlbnRDdXN0b20uY3BwIg0KIAkJ
CQkJPg0KIAkJCQkJPEZpbGVDb25maWd1cmF0aW9uDQogCQkJCQkJTmFtZT0iRGVidWd8V2luMzIi
DQpAQCAtNjAwNzQsNjIgKzYwMTMxLDYgQEAKIAkJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4NCiAJ
CQkJPC9GaWxlPg0KIAkJCQk8RmlsZQ0KLQkJCQkJUmVsYXRpdmVQYXRoPSIuLlxiaW5kaW5nc1xq
c1xKU1dvcmtlckNvbnRleHRFcnJvckhhbmRsZXIuY3BwIg0KLQkJCQkJPg0KLQkJCQkJPEZpbGVD
b25maWd1cmF0aW9uDQotCQkJCQkJTmFtZT0iRGVidWd8V2luMzIiDQotCQkJCQkJRXhjbHVkZWRG
cm9tQnVpbGQ9InRydWUiDQotCQkJCQkJPg0KLQkJCQkJCTxUb29sDQotCQkJCQkJCU5hbWU9IlZD
Q0xDb21waWxlclRvb2wiDQotCQkJCQkJLz4NCi0JCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+DQot
CQkJCQk8RmlsZUNvbmZpZ3VyYXRpb24NCi0JCQkJCQlOYW1lPSJSZWxlYXNlfFdpbjMyIg0KLQkJ
CQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIg0KLQkJCQkJCT4NCi0JCQkJCQk8VG9vbA0KLQkJ
CQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIg0KLQkJCQkJCS8+DQotCQkJCQk8L0ZpbGVDb25m
aWd1cmF0aW9uPg0KLQkJCQkJPEZpbGVDb25maWd1cmF0aW9uDQotCQkJCQkJTmFtZT0iRGVidWdf
SW50ZXJuYWx8V2luMzIiDQotCQkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiDQotCQkJCQkJ
Pg0KLQkJCQkJCTxUb29sDQotCQkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiDQotCQkJCQkJ
Lz4NCi0JCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+DQotCQkJCQk8RmlsZUNvbmZpZ3VyYXRpb24N
Ci0JCQkJCQlOYW1lPSJEZWJ1Z19DYWlyb3xXaW4zMiINCi0JCQkJCQlFeGNsdWRlZEZyb21CdWls
ZD0idHJ1ZSINCi0JCQkJCQk+DQotCQkJCQkJPFRvb2wNCi0JCQkJCQkJTmFtZT0iVkNDTENvbXBp
bGVyVG9vbCINCi0JCQkJCQkvPg0KLQkJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4NCi0JCQkJCTxG
aWxlQ29uZmlndXJhdGlvbg0KLQkJCQkJCU5hbWU9IlJlbGVhc2VfQ2Fpcm98V2luMzIiDQotCQkJ
CQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiDQotCQkJCQkJPg0KLQkJCQkJCTxUb29sDQotCQkJ
CQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiDQotCQkJCQkJLz4NCi0JCQkJCTwvRmlsZUNvbmZp
Z3VyYXRpb24+DQotCQkJCQk8RmlsZUNvbmZpZ3VyYXRpb24NCi0JCQkJCQlOYW1lPSJEZWJ1Z19B
bGx8V2luMzIiDQotCQkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiDQotCQkJCQkJPg0KLQkJ
CQkJCTxUb29sDQotCQkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiDQotCQkJCQkJLz4NCi0J
CQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+DQotCQkJCTwvRmlsZT4NCi0JCQkJPEZpbGUNCi0JCQkJ
CVJlbGF0aXZlUGF0aD0iLi5cYmluZGluZ3NcanNcSlNXb3JrZXJDb250ZXh0RXJyb3JIYW5kbGVy
LmgiDQotCQkJCQk+DQotCQkJCTwvRmlsZT4NCi0JCQkJPEZpbGUNCiAJCQkJCVJlbGF0aXZlUGF0
aD0iLi5cYmluZGluZ3NcanNcSlNYTUxIdHRwUmVxdWVzdEN1c3RvbS5jcHAiDQogCQkJCQk+DQog
CQkJCQk8RmlsZUNvbmZpZ3VyYXRpb24NCmRpZmYgLS1naXQgYS9XZWJDb3JlL1dlYkNvcmUueGNv
ZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qCmluZGV4IGMzMjNjOTQ1ODJhNjUzNTk2ZGRhNjJlM2VlNDQwMWNhZTNlY2UxYWEu
LjMyODg0ODBmMjRjOGFmODg2Yjg5ODUxY2Q2ZDI5NDhiMzdjNDJlMzcgMTAwNjQ0Ci0tLSBhL1dl
YkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1dlYkNvcmUvV2Vi
Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC01NDQ3LDggKzU0NDcsOCBAQAogCQlG
MzY0NEFGRjExMTk4MDU5MDBFMEQ1MzcgLyogSW5qZWN0ZWRTY3JpcHQuY3BwIGluIFNvdXJjZXMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjM2NDRBRkQxMTE5ODA1OTAwRTBE
NTM3IC8qIEluamVjdGVkU2NyaXB0LmNwcCAqLzsgfTsKIAkJRjM2NDRCMDAxMTE5ODA1OTAwRTBE
NTM3IC8qIEluamVjdGVkU2NyaXB0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSBGMzY0NEFGRTExMTk4MDU5MDBFMEQ1MzcgLyogSW5qZWN0ZWRTY3JpcHQu
aCAqLzsgfTsKIAkJRjM3NUNDMDcxMTUwRDMwMDAwOEREQjgxIC8qIEluc3BlY3RvcldvcmtlclJl
c291cmNlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBG
Mzc1Q0MwNjExNTBEMzAwMDA4RERCODEgLyogSW5zcGVjdG9yV29ya2VyUmVzb3VyY2UuaCAqLzsg
fTsKLQkJRjNENDYxNDgxMTYxRDUzMjAwQ0EwRDA5IC8qIEpTV29ya2VyQ29udGV4dEVycm9ySGFu
ZGxlci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBG
M0Q0NjE0NjExNjFENTMyMDBDQTBEMDkgLyogSlNXb3JrZXJDb250ZXh0RXJyb3JIYW5kbGVyLmNw
cCAqLzsgfTsKLQkJRjNENDYxNDkxMTYxRDUzMjAwQ0EwRDA5IC8qIEpTV29ya2VyQ29udGV4dEVy
cm9ySGFuZGxlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gRjNENDYxNDcxMTYxRDUzMjAwQ0EwRDA5IC8qIEpTV29ya2VyQ29udGV4dEVycm9ySGFuZGxl
ci5oICovOyB9OworCQlGM0Q0NjE0ODExNjFENTMyMDBDQTBEMDkgLyogSlNFcnJvckhhbmRsZXIu
Y3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjNENDYx
NDYxMTYxRDUzMjAwQ0EwRDA5IC8qIEpTRXJyb3JIYW5kbGVyLmNwcCAqLzsgfTsKKwkJRjNENDYx
NDkxMTYxRDUzMjAwQ0EwRDA5IC8qIEpTRXJyb3JIYW5kbGVyLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGM0Q0NjE0NzExNjFENTMyMDBDQTBEMDkgLyog
SlNFcnJvckhhbmRsZXIuaCAqLzsgfTsKIAkJRjRFQUY0QUUxMEM3NDJCMTAwOTEwMEQzIC8qIE9w
ZW5UeXBlU2FuaXRpemVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IEY0RUFGNEFDMTBDNzQyQjEwMDkxMDBEMyAvKiBPcGVuVHlwZVNhbml0aXplci5j
cHAgKi87IH07CiAJCUY0RUFGNEFGMTBDNzQyQjEwMDkxMDBEMyAvKiBPcGVuVHlwZVNhbml0aXpl
ci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjRFQUY0
QUQxMEM3NDJCMTAwOTEwMEQzIC8qIE9wZW5UeXBlU2FuaXRpemVyLmggKi87IH07CiAJCUY1NUIz
REFEMTI1MUYxMkQwMDNFRjI2OSAvKiBCYXNlVGV4dElucHV0VHlwZS5jcHAgaW4gU291cmNlcyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNTVCM0Q3OTEyNTFGMTJEMDAzRUYy
NjkgLyogQmFzZVRleHRJbnB1dFR5cGUuY3BwICovOyB9OwpAQCAtMTE0NjEsOCArMTE0NjEsOCBA
QAogCQlGMzY0NEFGRDExMTk4MDU5MDBFMEQ1MzcgLyogSW5qZWN0ZWRTY3JpcHQuY3BwICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSW5qZWN0ZWRTY3JpcHQuY3BwOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlGMzY0NEFGRTExMTk4MDU5MDBFMEQ1MzcgLyogSW5q
ZWN0ZWRTY3JpcHQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSW5qZWN0ZWRT
Y3JpcHQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRjM3NUNDMDYxMTUwRDMwMDAw
OEREQjgxIC8qIEluc3BlY3RvcldvcmtlclJlc291cmNlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IEluc3BlY3RvcldvcmtlclJlc291cmNlLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07Ci0JCUYzRDQ2MTQ2MTE2MUQ1MzIwMENBMEQwOSAvKiBKU1dvcmtlckNvbnRleHRF
cnJvckhhbmRsZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNX
b3JrZXJDb250ZXh0RXJyb3JIYW5kbGVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
LQkJRjNENDYxNDcxMTYxRDUzMjAwQ0EwRDA5IC8qIEpTV29ya2VyQ29udGV4dEVycm9ySGFuZGxl
ci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKU1dvcmtlckNvbnRleHRFcnJv
ckhhbmRsZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRjNENDYxNDYxMTYxRDUz
MjAwQ0EwRDA5IC8qIEpTRXJyb3JIYW5kbGVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
LmNwcDsgcGF0aCA9IEpTRXJyb3JIYW5kbGVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKKwkJRjNENDYxNDcxMTYxRDUzMjAwQ0EwRDA5IC8qIEpTRXJyb3JIYW5kbGVyLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTRXJyb3JIYW5kbGVyLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCUY0RUFGNEFDMTBDNzQyQjEwMDkxMDBEMyAvKiBPcGVuVHlwZVNh
bml0aXplci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBPcGVuVHlw
ZVNhbml0aXplci5jcHA7IHBhdGggPSBvcGVudHlwZS9PcGVuVHlwZVNhbml0aXplci5jcHA7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUY0RUFGNEFEMTBDNzQyQjEwMDkxMDBEMyAvKiBP
cGVuVHlwZVNhbml0aXplci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBPcGVu
VHlwZVNhbml0aXplci5oOyBwYXRoID0gb3BlbnR5cGUvT3BlblR5cGVTYW5pdGl6ZXIuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRjUyM0QyM0IwMkRFNDM5NjAxODYzNUNBIC8qIEhU
TUxEb2N1bWVudC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gMzA7IGluZGVudFdpZHRoID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5jcHA7IHBhdGggPSBIVE1MRG9jdW1lbnQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB0
YWJXaWR0aCA9IDg7IHVzZXNUYWJzID0gMDsgfTsKQEAgLTE2NzEyLDYgKzE2NzEyLDggQEAKIAkJ
CQlCQ0JGQjUzQjBEQ0QyOUNGMDAxOUIzRTUgLyogSlNET01XaW5kb3dTaGVsbC5oICovLAogCQkJ
CUJDNTNEQUM2MTE0MzMwNjQwMDBEODE3RSAvKiBKU0RPTVdyYXBwZXIuY3BwICovLAogCQkJCTY1
RTBFOTQzMTEzM0M4OUYwMEI0Q0IxMCAvKiBKU0RPTVdyYXBwZXIuaCAqLywKKwkJCQlGM0Q0NjE0
NjExNjFENTMyMDBDQTBEMDkgLyogSlNFcnJvckhhbmRsZXIuY3BwICovLAorCQkJCUYzRDQ2MTQ3
MTE2MUQ1MzIwMENBMEQwOSAvKiBKU0Vycm9ySGFuZGxlci5oICovLAogCQkJCUJDNjA5MDFFMEU5
MUI4RUMwMDBDNjhCNSAvKiBKU0V2ZW50VGFyZ2V0LmNwcCAqLywKIAkJCQlCQzYwOTAxRDBFOTFC
OEVDMDAwQzY4QjUgLyogSlNFdmVudFRhcmdldC5oICovLAogCQkJCTMzMTRBQ0U5MTA4OTIwODYw
MDBGMEU1NiAvKiBKU0V4Y2VwdGlvbkJhc2UuY3BwICovLApAQCAtMTY3MjQsOCArMTY3MjYsNiBA
QAogCQkJCUIyMTEyN0E1MEIzMTg2NzcwMDA5QkU1MyAvKiBKU1NWR1BPRFR5cGVXcmFwcGVyLmgg
Ki8sCiAJCQkJRTFDMzZEMzIwRUIwQTA5NDAwNzQxMEJDIC8qIEpTV29ya2VyQ29udGV4dEJhc2Uu
Y3BwICovLAogCQkJCUUxQzM2RDMzMEVCMEEwOTQwMDc0MTBCQyAvKiBKU1dvcmtlckNvbnRleHRC
YXNlLmggKi8sCi0JCQkJRjNENDYxNDYxMTYxRDUzMjAwQ0EwRDA5IC8qIEpTV29ya2VyQ29udGV4
dEVycm9ySGFuZGxlci5jcHAgKi8sCi0JCQkJRjNENDYxNDcxMTYxRDUzMjAwQ0EwRDA5IC8qIEpT
V29ya2VyQ29udGV4dEVycm9ySGFuZGxlci5oICovLAogCQkJCUJDQTM3OEJBMEQxNUY2NDIwMEI3
OTNENiAvKiBTY2hlZHVsZWRBY3Rpb24uY3BwICovLAogCQkJCUJDQTM3OEJCMEQxNUY2NDIwMEI3
OTNENiAvKiBTY2hlZHVsZWRBY3Rpb24uaCAqLywKIAkJCQk0MUYxRDIxRTBFRjM1QzJBMDBEQTg3
NTMgLyogU2NyaXB0Q2FjaGVkRnJhbWVEYXRhLmNwcCAqLywKQEAgLTIwMTUwLDcgKzIwMTUwLDcg
QEAKIAkJCQlFMUNBQTVDNjBFOEJEMjM2MDBBNzNFQ0EgLyogSlNXb3JrZXIuaCBpbiBIZWFkZXJz
ICovLAogCQkJCUUxODI1NjkwMEVGMkIwMkQwMDkzMzI0MiAvKiBKU1dvcmtlckNvbnRleHQuaCBp
biBIZWFkZXJzICovLAogCQkJCUUxQzM2RDM1MEVCMEEwOTQwMDc0MTBCQyAvKiBKU1dvcmtlckNv
bnRleHRCYXNlLmggaW4gSGVhZGVycyAqLywKLQkJCQlGM0Q0NjE0OTExNjFENTMyMDBDQTBEMDkg
LyogSlNXb3JrZXJDb250ZXh0RXJyb3JIYW5kbGVyLmggaW4gSGVhZGVycyAqLywKKwkJCQlGM0Q0
NjE0OTExNjFENTMyMDBDQTBEMDkgLyogSlNFcnJvckhhbmRsZXIuaCBpbiBIZWFkZXJzICovLAog
CQkJCUUxQzM2MkVGMEVBRjJBQTkwMDc0MTBCQyAvKiBKU1dvcmtlckxvY2F0aW9uLmggaW4gSGVh
ZGVycyAqLywKIAkJCQlFMTI3MUE1ODBFRUVDREU0MDBGNjEyMTMgLyogSlNXb3JrZXJOYXZpZ2F0
b3IuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDMzQ4QkQ0MERCN0Y4MDQwMDRBQkFCOSAvKiBKU1hN
TEh0dHBSZXF1ZXN0LmggaW4gSGVhZGVycyAqLywKQEAgLTIyODEwLDcgKzIyODEwLDcgQEAKIAkJ
CQlFMTgyNTY4RjBFRjJCMDJEMDA5MzMyNDIgLyogSlNXb3JrZXJDb250ZXh0LmNwcCBpbiBTb3Vy
Y2VzICovLAogCQkJCUUxQzM2RDM0MEVCMEEwOTQwMDc0MTBCQyAvKiBKU1dvcmtlckNvbnRleHRC
YXNlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUUxODI1OEFDMEVGM0NENzAwMDkzMzI0MiAvKiBK
U1dvcmtlckNvbnRleHRDdXN0b20uY3BwIGluIFNvdXJjZXMgKi8sCi0JCQkJRjNENDYxNDgxMTYx
RDUzMjAwQ0EwRDA5IC8qIEpTV29ya2VyQ29udGV4dEVycm9ySGFuZGxlci5jcHAgaW4gU291cmNl
cyAqLywKKwkJCQlGM0Q0NjE0ODExNjFENTMyMDBDQTBEMDkgLyogSlNFcnJvckhhbmRsZXIuY3Bw
IGluIFNvdXJjZXMgKi8sCiAJCQkJRTFDQTVDQkMwRThDRENBRjAwRThFRjkwIC8qIEpTV29ya2Vy
Q3VzdG9tLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUUxQzM2MkYwMEVBRjJBQTkwMDc0MTBCQyAv
KiBKU1dvcmtlckxvY2F0aW9uLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUUxMjcxQTU5MEVFRUNE
RTQwMEY2MTIxMyAvKiBKU1dvcmtlck5hdmlnYXRvci5jcHAgaW4gU291cmNlcyAqLywKZGlmZiAt
LWdpdCBhL1dlYkNvcmUvYmluZGluZ3MvanMvSlNCaW5kaW5nc0FsbEluT25lLmNwcCBiL1dlYkNv
cmUvYmluZGluZ3MvanMvSlNCaW5kaW5nc0FsbEluT25lLmNwcAppbmRleCA2ZTFjYzFlMjNiYTFh
ZjgzNGNmMzc5ZTMzYmE1YmNmZWI5M2FiZmU3Li41NjAxMmZhNDhiMTRmMjBlODY0NDk5OTVkNWY0
ZmMyYWQ2ZDY5YTM2IDEwMDY0NAotLS0gYS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTQmluZGluZ3NB
bGxJbk9uZS5jcHAKKysrIGIvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0JpbmRpbmdzQWxsSW5PbmUu
Y3BwCkBAIC02NCw2ICs2NCw3IEBACiAjaW5jbHVkZSAiSlNEZXZpY2VPcmllbnRhdGlvbkV2ZW50
Q3VzdG9tLmNwcCIKICNpbmNsdWRlICJKU0RvY3VtZW50Q3VzdG9tLmNwcCIKICNpbmNsdWRlICJK
U0VsZW1lbnRDdXN0b20uY3BwIgorI2luY2x1ZGUgIkpTRXJyb3JIYW5kbGVyLmNwcCIKICNpbmNs
dWRlICJKU0V2ZW50Q3VzdG9tLmNwcCIKICNpbmNsdWRlICJKU0V2ZW50TGlzdGVuZXIuY3BwIgog
I2luY2x1ZGUgIkpTRXZlbnRTb3VyY2VDdXN0b20uY3BwIgpAQCAtMTMwLDcgKzEzMSw2IEBACiAj
aW5jbHVkZSAiSlNXZWJTb2NrZXRDdXN0b20uY3BwIgogI2luY2x1ZGUgIkpTV29ya2VyQ29udGV4
dEJhc2UuY3BwIgogI2luY2x1ZGUgIkpTV29ya2VyQ29udGV4dEN1c3RvbS5jcHAiCi0jaW5jbHVk
ZSAiSlNXb3JrZXJDb250ZXh0RXJyb3JIYW5kbGVyLmNwcCIKICNpbmNsdWRlICJKU1dvcmtlckN1
c3RvbS5jcHAiCiAjaW5jbHVkZSAiSlNYTUxIdHRwUmVxdWVzdEN1c3RvbS5jcHAiCiAjaW5jbHVk
ZSAiSlNYTUxIdHRwUmVxdWVzdFVwbG9hZEN1c3RvbS5jcHAiCmRpZmYgLS1naXQgYS9XZWJDb3Jl
L2JpbmRpbmdzL2pzL0pTRE9NQmluZGluZy5jcHAgYi9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9N
QmluZGluZy5jcHAKaW5kZXggNzJlNmQwMzljZTAxNGQ3YTYyNjEyNGU2OGNkYzllYzM4MWRmYjQ1
Ni4uN2I3YzlkNDcwNDU4NjVhNTQ2N2VkYWYyNjkwOTUyNzhiMTNhMTBjNSAxMDA2NDQKLS0tIGEv
V2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTUJpbmRpbmcuY3BwCisrKyBiL1dlYkNvcmUvYmluZGlu
Z3MvanMvSlNET01CaW5kaW5nLmNwcApAQCAtNTIsNiArNTIsNyBAQAogI2luY2x1ZGUgIk1lc3Nh
Z2VQb3J0LmgiCiAjaW5jbHVkZSAiUmFuZ2VFeGNlcHRpb24uaCIKICNpbmNsdWRlICJTY3JpcHRD
YWNoZWRGcmFtZURhdGEuaCIKKyNpbmNsdWRlICJTY3JpcHRDYWxsU3RhY2suaCIKICNpbmNsdWRl
ICJTY3JpcHRDb250cm9sbGVyLmgiCiAjaW5jbHVkZSAiU2V0dGluZ3MuaCIKICNpbmNsdWRlICJX
ZWJDb3JlSlNDbGllbnREYXRhLmgiCkBAIC01NjcsNyArNTY4LDcgQEAgdm9pZCByZXBvcnRFeGNl
cHRpb24oRXhlY1N0YXRlKiBleGVjLCBKU1ZhbHVlIGV4Y2VwdGlvbikKICAgICBpZiAoIXNjcmlw
dEV4ZWN1dGlvbkNvbnRleHQpCiAgICAgICAgIHJldHVybjsKIAotICAgIHNjcmlwdEV4ZWN1dGlv
bkNvbnRleHQtPnJlcG9ydEV4Y2VwdGlvbih1c3RyaW5nVG9TdHJpbmcoZXJyb3JNZXNzYWdlKSwg
bGluZU51bWJlciwgdXN0cmluZ1RvU3RyaW5nKGV4Y2VwdGlvblNvdXJjZVVSTCkpOworICAgIHNj
cmlwdEV4ZWN1dGlvbkNvbnRleHQtPnJlcG9ydEV4Y2VwdGlvbih1c3RyaW5nVG9TdHJpbmcoZXJy
b3JNZXNzYWdlKSwgbGluZU51bWJlciwgdXN0cmluZ1RvU3RyaW5nKGV4Y2VwdGlvblNvdXJjZVVS
TCksIDApOwogfQogCiB2b2lkIHJlcG9ydEN1cnJlbnRFeGNlcHRpb24oRXhlY1N0YXRlKiBleGVj
KQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1dvcmtlckNvbnRleHRFcnJvckhh
bmRsZXIuY3BwIGIvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0Vycm9ySGFuZGxlci5jcHAKc2ltaWxh
cml0eSBpbmRleCA4NyUKcmVuYW1lIGZyb20gV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1dvcmtlckNv
bnRleHRFcnJvckhhbmRsZXIuY3BwCnJlbmFtZSB0byBXZWJDb3JlL2JpbmRpbmdzL2pzL0pTRXJy
b3JIYW5kbGVyLmNwcAppbmRleCBhZDNmNWVjMTdkM2I1ODBjYjY4MDg4ZGViNjE5ZmY3MDhhNzJi
NzRkLi4xMDA0ZDVjZjRmZjEyZmFlOGExY2VmMmJlNGNmNzM5ODg4NDczYjk0IDEwMDY0NAotLS0g
YS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTV29ya2VyQ29udGV4dEVycm9ySGFuZGxlci5jcHAKKysr
IGIvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0Vycm9ySGFuZGxlci5jcHAKQEAgLTMwLDkgKzMwLDcg
QEAKIAogI2luY2x1ZGUgImNvbmZpZy5oIgogCi0jaWYgRU5BQkxFKFdPUktFUlMpCi0KLSNpbmNs
dWRlICJKU1dvcmtlckNvbnRleHRFcnJvckhhbmRsZXIuaCIKKyNpbmNsdWRlICJKU0Vycm9ySGFu
ZGxlci5oIgogCiAjaW5jbHVkZSAiRXJyb3JFdmVudC5oIgogI2luY2x1ZGUgIkV2ZW50LmgiCkBA
IC00MywyMSArNDEsMjQgQEAgdXNpbmcgbmFtZXNwYWNlIEpTQzsKIAogbmFtZXNwYWNlIFdlYkNv
cmUgewogCi1KU1dvcmtlckNvbnRleHRFcnJvckhhbmRsZXI6OkpTV29ya2VyQ29udGV4dEVycm9y
SGFuZGxlcihKU09iamVjdCogZnVuY3Rpb24sIEpTT2JqZWN0KiB3cmFwcGVyLCBib29sIGlzQXR0
cmlidXRlLCBET01XcmFwcGVyV29ybGQqIGlzb2xhdGVkV29ybGQpCitKU0Vycm9ySGFuZGxlcjo6
SlNFcnJvckhhbmRsZXIoSlNPYmplY3QqIGZ1bmN0aW9uLCBKU09iamVjdCogd3JhcHBlciwgYm9v
bCBpc0F0dHJpYnV0ZSwgRE9NV3JhcHBlcldvcmxkKiBpc29sYXRlZFdvcmxkKQogICAgIDogSlNF
dmVudExpc3RlbmVyKGZ1bmN0aW9uLCB3cmFwcGVyLCBpc0F0dHJpYnV0ZSwgaXNvbGF0ZWRXb3Js
ZCkKIHsKIH0KIAotSlNXb3JrZXJDb250ZXh0RXJyb3JIYW5kbGVyOjp+SlNXb3JrZXJDb250ZXh0
RXJyb3JIYW5kbGVyKCkKK0pTRXJyb3JIYW5kbGVyOjp+SlNFcnJvckhhbmRsZXIoKQogewogfQog
Ci12b2lkIEpTV29ya2VyQ29udGV4dEVycm9ySGFuZGxlcjo6aGFuZGxlRXZlbnQoU2NyaXB0RXhl
Y3V0aW9uQ29udGV4dCogc2NyaXB0RXhlY3V0aW9uQ29udGV4dCwgRXZlbnQqIGV2ZW50KQordm9p
ZCBKU0Vycm9ySGFuZGxlcjo6aGFuZGxlRXZlbnQoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogc2Ny
aXB0RXhlY3V0aW9uQ29udGV4dCwgRXZlbnQqIGV2ZW50KQogewogICAgIEFTU0VSVChzY3JpcHRF
eGVjdXRpb25Db250ZXh0KTsKICAgICBpZiAoIXNjcmlwdEV4ZWN1dGlvbkNvbnRleHQpCiAgICAg
ICAgIHJldHVybjsKIAorICAgIEFTU0VSVChldmVudC0+aXNFcnJvckV2ZW50KCkpOworICAgIEVy
cm9yRXZlbnQqIGVycm9yRXZlbnQgPSBzdGF0aWNfY2FzdDxFcnJvckV2ZW50Kj4oZXZlbnQpOwor
CiAgICAgSlNMb2NrIGxvY2soU2lsZW5jZUFzc2VydGlvbnNPbmx5KTsKIAogICAgIEpTT2JqZWN0
KiBqc0Z1bmN0aW9uID0gdGhpcy0+anNGdW5jdGlvbihzY3JpcHRFeGVjdXRpb25Db250ZXh0KTsK
QEAgLTgwLDkgKzgxLDYgQEAgdm9pZCBKU1dvcmtlckNvbnRleHRFcnJvckhhbmRsZXI6OmhhbmRs
ZUV2ZW50KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIHNjcmlwdEV4ZWMKICAgICAgICAgRXZlbnQq
IHNhdmVkRXZlbnQgPSBnbG9iYWxPYmplY3QtPmN1cnJlbnRFdmVudCgpOwogICAgICAgICBnbG9i
YWxPYmplY3QtPnNldEN1cnJlbnRFdmVudChldmVudCk7CiAKLSAgICAgICAgQVNTRVJUKGV2ZW50
LT5pc0Vycm9yRXZlbnQoKSk7Ci0gICAgICAgIEVycm9yRXZlbnQqIGVycm9yRXZlbnQgPSBzdGF0
aWNfY2FzdDxFcnJvckV2ZW50Kj4oZXZlbnQpOwotCiAgICAgICAgIE1hcmtlZEFyZ3VtZW50QnVm
ZmVyIGFyZ3M7CiAgICAgICAgIGFyZ3MuYXBwZW5kKGpzU3RyaW5nKGV4ZWMsIGVycm9yRXZlbnQt
Pm1lc3NhZ2UoKSkpOwogICAgICAgICBhcmdzLmFwcGVuZChqc1N0cmluZyhleGVjLCBlcnJvckV2
ZW50LT5maWxlbmFtZSgpKSk7CkBAIC0xMTIsNSArMTEwLDMgQEAgdm9pZCBKU1dvcmtlckNvbnRl
eHRFcnJvckhhbmRsZXI6OmhhbmRsZUV2ZW50KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIHNjcmlw
dEV4ZWMKIH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQotCi0jZW5kaWYgLy8gRU5BQkxFKFdP
UktFUlMpCmRpZmYgLS1naXQgYS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTV29ya2VyQ29udGV4dEVy
cm9ySGFuZGxlci5oIGIvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0Vycm9ySGFuZGxlci5oCnNpbWls
YXJpdHkgaW5kZXggNjklCmNvcHkgZnJvbSBXZWJDb3JlL2JpbmRpbmdzL2pzL0pTV29ya2VyQ29u
dGV4dEVycm9ySGFuZGxlci5oCmNvcHkgdG8gV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0Vycm9ySGFu
ZGxlci5oCmluZGV4IGExODgyOTkwMzhjOWNkZmU3MjI4NmI3MWZlYWViM2E0OWMyYTBkODEuLjk1
N2ZkODFkYWEwNTc0NjliMjExMmUxMWQ3ZTcwNGFkNGUyOWQ3ZWQgMTAwNjQ0Ci0tLSBhL1dlYkNv
cmUvYmluZGluZ3MvanMvSlNXb3JrZXJDb250ZXh0RXJyb3JIYW5kbGVyLmgKKysrIGIvV2ViQ29y
ZS9iaW5kaW5ncy9qcy9KU0Vycm9ySGFuZGxlci5oCkBAIC0yOCwzNyArMjgsMzcgQEAKICAqIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuCiAgKi8KIAotI2lmbmRlZiBKU1dvcmtlckNvbnRleHRFcnJvckhhbmRsZXJfaAot
I2RlZmluZSBKU1dvcmtlckNvbnRleHRFcnJvckhhbmRsZXJfaAorI2lmbmRlZiBKU0Vycm9ySGFu
ZGxlcl9oCisjZGVmaW5lIEpTRXJyb3JIYW5kbGVyX2gKIAogI2luY2x1ZGUgIkpTRXZlbnRMaXN0
ZW5lci5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLWNsYXNzIEpTV29ya2VyQ29udGV4dEVy
cm9ySGFuZGxlciA6IHB1YmxpYyBKU0V2ZW50TGlzdGVuZXIgeworY2xhc3MgSlNFcnJvckhhbmRs
ZXIgOiBwdWJsaWMgSlNFdmVudExpc3RlbmVyIHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUGFzc1Jl
ZlB0cjxKU1dvcmtlckNvbnRleHRFcnJvckhhbmRsZXI+IGNyZWF0ZShKU0M6OkpTT2JqZWN0KiBs
aXN0ZW5lciwgSlNDOjpKU09iamVjdCogd3JhcHBlciwgYm9vbCBpc0F0dHJpYnV0ZSwgRE9NV3Jh
cHBlcldvcmxkKiBpc29sYXRlZFdvcmxkKQorICAgIHN0YXRpYyBQYXNzUmVmUHRyPEpTRXJyb3JI
YW5kbGVyPiBjcmVhdGUoSlNDOjpKU09iamVjdCogbGlzdGVuZXIsIEpTQzo6SlNPYmplY3QqIHdy
YXBwZXIsIGJvb2wgaXNBdHRyaWJ1dGUsIERPTVdyYXBwZXJXb3JsZCogaXNvbGF0ZWRXb3JsZCkK
ICAgICB7Ci0gICAgICAgIHJldHVybiBhZG9wdFJlZihuZXcgSlNXb3JrZXJDb250ZXh0RXJyb3JI
YW5kbGVyKGxpc3RlbmVyLCB3cmFwcGVyLCBpc0F0dHJpYnV0ZSwgaXNvbGF0ZWRXb3JsZCkpOwor
ICAgICAgICByZXR1cm4gYWRvcHRSZWYobmV3IEpTRXJyb3JIYW5kbGVyKGxpc3RlbmVyLCB3cmFw
cGVyLCBpc0F0dHJpYnV0ZSwgaXNvbGF0ZWRXb3JsZCkpOwogICAgIH0KIAotICAgIHZpcnR1YWwg
fkpTV29ya2VyQ29udGV4dEVycm9ySGFuZGxlcigpOworICAgIHZpcnR1YWwgfkpTRXJyb3JIYW5k
bGVyKCk7CiAKIHByaXZhdGU6Ci0gICAgSlNXb3JrZXJDb250ZXh0RXJyb3JIYW5kbGVyKEpTQzo6
SlNPYmplY3QqIGZ1bmN0aW9uLCBKU0M6OkpTT2JqZWN0KiB3cmFwcGVyLCBib29sIGlzQXR0cmli
dXRlLCBET01XcmFwcGVyV29ybGQqIGlzb2xhdGVkV29ybGQpOworICAgIEpTRXJyb3JIYW5kbGVy
KEpTQzo6SlNPYmplY3QqIGZ1bmN0aW9uLCBKU0M6OkpTT2JqZWN0KiB3cmFwcGVyLCBib29sIGlz
QXR0cmlidXRlLCBET01XcmFwcGVyV29ybGQqIGlzb2xhdGVkV29ybGQpOwogICAgIHZpcnR1YWwg
dm9pZCBoYW5kbGVFdmVudChTY3JpcHRFeGVjdXRpb25Db250ZXh0KiwgRXZlbnQqKTsKIH07CiAK
IC8vIENyZWF0ZXMgYSBKUyBFdmVudExpc3RlbmVyIGZvciAib25lcnJvciIgZXZlbnQgaGFuZGxl
ciBpbiB3b3JrZXIgY29udGV4dC4gSXQgaGFzIGN1c3RvbSBpbXBsZW1lbnRhdGlvbiBiZWNhdXNl
CiAvLyB1bmxpa2Ugb3RoZXIgZXZlbnQgbGlzdGVuZXJzIGl0IGFjY2VwdHMgdGhyZWUgcGFyYW1l
dGVycy4KLWlubGluZSBQYXNzUmVmUHRyPEpTV29ya2VyQ29udGV4dEVycm9ySGFuZGxlcj4gY3Jl
YXRlSlNXb3JrZXJDb250ZXh0RXJyb3JIYW5kbGVyKEpTQzo6RXhlY1N0YXRlKiBleGVjLCBKU0M6
OkpTVmFsdWUgbGlzdGVuZXIsIEpTQzo6SlNPYmplY3QqIHdyYXBwZXIpCitpbmxpbmUgUGFzc1Jl
ZlB0cjxKU0Vycm9ySGFuZGxlcj4gY3JlYXRlSlNFcnJvckhhbmRsZXIoSlNDOjpFeGVjU3RhdGUq
IGV4ZWMsIEpTQzo6SlNWYWx1ZSBsaXN0ZW5lciwgSlNDOjpKU09iamVjdCogd3JhcHBlcikKIHsK
ICAgICBpZiAoIWxpc3RlbmVyLmlzT2JqZWN0KCkpCiAgICAgICAgIHJldHVybiAwOwogCi0gICAg
cmV0dXJuIEpTV29ya2VyQ29udGV4dEVycm9ySGFuZGxlcjo6Y3JlYXRlKGFzT2JqZWN0KGxpc3Rl
bmVyKSwgd3JhcHBlciwgdHJ1ZSwgY3VycmVudFdvcmxkKGV4ZWMpKTsKKyAgICByZXR1cm4gSlNF
cnJvckhhbmRsZXI6OmNyZWF0ZShhc09iamVjdChsaXN0ZW5lciksIHdyYXBwZXIsIHRydWUsIGN1
cnJlbnRXb3JsZChleGVjKSk7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAotI2VuZGlm
IC8vIEpTV29ya2VyQ29udGV4dEVycm9ySGFuZGxlcl9oCisjZW5kaWYgLy8gSlNFcnJvckhhbmRs
ZXJfaApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JK
Uy5wbSBiL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG0KaW5kZXgg
NTU3OWEzNWYxZmUwZDNmMjZkNjZjYWNmZmYxNWY5NDcyYjE2YzM0NC4uNThjODdiMThlYjI5Mjhi
NTNiYzYwYzc0ZTY0NGZiOGNkZTM2YTc5OCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9iaW5kaW5ncy9z
Y3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbQorKysgYi9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMv
Q29kZUdlbmVyYXRvckpTLnBtCkBAIC0xNzIwLDkgKzE3MjAsOSBAQCBzdWIgR2VuZXJhdGVJbXBs
ZW1lbnRhdGlvbgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29u
dGVudCwgIiAgICBKU0RPTUdsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0ID0gY2FzdGVkVGhpcy0+
Z2xvYmFsT2JqZWN0KCk7XG4iKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgJGltcGxDbGFz
c05hbWUqIGltcCA9IHN0YXRpY19jYXN0PCRpbXBsQ2xhc3NOYW1lKj4oc3RhdGljX2Nhc3Q8JGNs
YXNzTmFtZSo+KHRoaXNPYmplY3QpLT5pbXBsKCkpO1xuIik7Ci0gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgaWYgKCRpbnRlcmZhY2VOYW1lIGVxICJXb3JrZXJDb250ZXh0IiBhbmQgJG5hbWUg
ZXEgIm9uZXJyb3IiKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRpbXBsSW5j
bHVkZXN7IkpTV29ya2VyQ29udGV4dEVycm9ySGFuZGxlci5oIn0gPSAxOwotICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICBpbXAtPnNldCRpbXBs
U2V0dGVyRnVuY3Rpb25OYW1lKGNyZWF0ZUpTV29ya2VyQ29udGV4dEVycm9ySGFuZGxlcihleGVj
LCB2YWx1ZSwgdGhpc09iamVjdCkpO1xuIik7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
aWYgKCgoJGludGVyZmFjZU5hbWUgZXEgIkRPTVdpbmRvdyIpIG9yICgkaW50ZXJmYWNlTmFtZSBl
cSAiV29ya2VyQ29udGV4dCIpKSBhbmQgJG5hbWUgZXEgIm9uZXJyb3IiKSB7CisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICRpbXBsSW5jbHVkZXN7IkpTRXJyb3JIYW5kbGVyLmgifSA9
IDE7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAi
ICAgIGltcC0+c2V0JGltcGxTZXR0ZXJGdW5jdGlvbk5hbWUoY3JlYXRlSlNFcnJvckhhbmRsZXIo
ZXhlYywgdmFsdWUsIHRoaXNPYmplY3QpKTtcbiIpOwogICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHB1c2goQGltcGxD
b250ZW50LCBHZW5lcmF0ZUF0dHJpYnV0ZUV2ZW50TGlzdGVuZXJDYWxsKCRjbGFzc05hbWUsICRp
bXBsU2V0dGVyRnVuY3Rpb25OYW1lLCAkd2luZG93RXZlbnRMaXN0ZW5lcikpOwogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIH0KZGlmZiAtLWdpdCBhL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0
cy9Db2RlR2VuZXJhdG9yVjgucG0gYi9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVy
YXRvclY4LnBtCmluZGV4IDE4ZTgwZTRmN2NjNmYxZjVkZTg3YmVmNmRkMGNhZDQ4MTc1YzY0NGEu
LmQzYzBiZjkyNTBhMzM1MTk1YmRmMDA3Y2FmOGRhNzlmMWY0MjBjNDMgMTAwNjQ0Ci0tLSBhL1dl
YkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9yVjgucG0KKysrIGIvV2ViQ29yZS9i
aW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JWOC5wbQpAQCAtOTk1LDYgKzk5NSwxMCBAQCBF
TkQKICAgICAgICAgICAgICAgICAkaW1wbEluY2x1ZGVzeyJWOEV2ZW50TGlzdGVuZXJMaXN0Lmgi
fSA9IDE7CiAgICAgICAgICAgICAgICAgJGltcGxJbmNsdWRlc3siVjhXb3JrZXJDb250ZXh0RXJy
b3JIYW5kbGVyLmgifSA9IDE7CiAgICAgICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnREZWNs
cywgIiAgICBpbXAtPnNldCRpbXBsU2V0dGVyRnVuY3Rpb25OYW1lKFY4RXZlbnRMaXN0ZW5lckxp
c3Q6OmZpbmRPckNyZWF0ZVdyYXBwZXI8VjhXb3JrZXJDb250ZXh0RXJyb3JIYW5kbGVyPih2YWx1
ZSwgdHJ1ZSkiKTsKKyAgICAgICAgICAgIH0gZWxzaWYgKCRpbnRlcmZhY2VOYW1lIGVxICJET01X
aW5kb3ciIGFuZCAkYXR0cmlidXRlLT5zaWduYXR1cmUtPm5hbWUgZXEgIm9uZXJyb3IiKSB7Cisg
ICAgICAgICAgICAgICAgJGltcGxJbmNsdWRlc3siVjhFdmVudExpc3RlbmVyTGlzdC5oIn0gPSAx
OworICAgICAgICAgICAgICAgICRpbXBsSW5jbHVkZXN7IlY4V2luZG93RXJyb3JIYW5kbGVyLmgi
fSA9IDE7CisgICAgICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnREZWNscywgIiAgICBpbXAt
PnNldCRpbXBsU2V0dGVyRnVuY3Rpb25OYW1lKFY4RXZlbnRMaXN0ZW5lckxpc3Q6OmZpbmRPckNy
ZWF0ZVdyYXBwZXI8VjhXaW5kb3dFcnJvckhhbmRsZXI+KHZhbHVlLCB0cnVlKSIpOwogICAgICAg
ICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudERlY2xzLCAi
ICAgIGltcC0+c2V0JGltcGxTZXR0ZXJGdW5jdGlvbk5hbWUoVjhET01XcmFwcGVyOjpnZXRFdmVu
dExpc3RlbmVyKHZhbHVlLCB0cnVlLCBMaXN0ZW5lckZpbmRPckNyZWF0ZSkiKTsKICAgICAgICAg
ICAgIH0KZGlmZiAtLWdpdCBhL1dlYkNvcmUvYmluZGluZ3MvdjgvVjhDb25zb2xlTWVzc2FnZS5j
cHAgYi9XZWJDb3JlL2JpbmRpbmdzL3Y4L1Y4Q29uc29sZU1lc3NhZ2UuY3BwCm9sZCBtb2RlIDEw
MDY0NApuZXcgbW9kZSAxMDA3NTUKaW5kZXggOGI2YmIxNzg2YTg1Yzc5YmNmMDJmZGRlODU0MTY1
MTdkMWQxYTg3My4uNGNhNTI0NzdkZDQyNTgyMDBkNzI5ZWNkMjViZGIzYzA0NzcxYmY0NwotLS0g
YS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1Y4Q29uc29sZU1lc3NhZ2UuY3BwCisrKyBiL1dlYkNvcmUv
YmluZGluZ3MvdjgvVjhDb25zb2xlTWVzc2FnZS5jcHAKQEAgLTUzLDcgKzUzLDE0IEBAIFY4Q29u
c29sZU1lc3NhZ2U6OlY4Q29uc29sZU1lc3NhZ2UoY29uc3QgU3RyaW5nJiBzdHJpbmcsIGNvbnN0
IFN0cmluZyYgc291cmNlSUQsCiAKIHZvaWQgVjhDb25zb2xlTWVzc2FnZTo6ZGlzcGF0Y2hOb3co
UGFnZSogcGFnZSkKIHsKLSAgICBkaXNwYXRjaE5vdyhwYWdlLCAwKTsKKyAgICBBU1NFUlQocGFn
ZSk7CisKKyAgICAvLyBQcm9jZXNzIGFueSBkZWxheWVkIG1lc3NhZ2VzIHRvIG1ha2Ugc3VyZSB0
aGF0IG1lc3NhZ2VzCisgICAgLy8gYXBwZWFyIGluIHRoZSByaWdodCBvcmRlciBpbiB0aGUgY29u
c29sZS4KKyAgICBwcm9jZXNzRGVsYXllZCgpOworCisgICAgQ29uc29sZSogY29uc29sZSA9IHBh
Z2UtPm1haW5GcmFtZSgpLT5kb21XaW5kb3coKS0+Y29uc29sZSgpOworICAgIGNvbnNvbGUtPmFk
ZE1lc3NhZ2UoSlNNZXNzYWdlU291cmNlLCBMb2dNZXNzYWdlVHlwZSwgRXJyb3JNZXNzYWdlTGV2
ZWwsIG1fc3RyaW5nLCBtX2xpbmVOdW1iZXIsIG1fc291cmNlSUQpOwogfQogCiB2b2lkIFY4Q29u
c29sZU1lc3NhZ2U6OmRpc3BhdGNoTGF0ZXIoKQpAQCAtMTA0LDggKzExMSw4IEBAIHZvaWQgVjhD
b25zb2xlTWVzc2FnZTo6aGFuZGxlcih2ODo6SGFuZGxlPHY4OjpNZXNzYWdlPiBtZXNzYWdlLCB2
ODo6SGFuZGxlPHY4OjpWCiAgICAgRnJhbWUqIGZyYW1lID0gVjhQcm94eTo6cmV0cmlldmVGcmFt
ZUZvckVudGVyZWRDb250ZXh0KCk7CiAgICAgaWYgKCFmcmFtZSkKICAgICAgICAgcmV0dXJuOwot
ICAgIFBhZ2UqIHBhZ2UgPSBmcmFtZS0+cGFnZSgpOwotICAgIGlmICghcGFnZSkKKyAgICBEb2N1
bWVudCogZG9jdW1lbnQgPSBmcmFtZS0+ZG9jdW1lbnQoKTsKKyAgICBpZiAoIWRvY3VtZW50KQog
ICAgICAgICByZXR1cm47CiAKICAgICB2ODo6SGFuZGxlPHY4OjpTdHJpbmc+IGVycm9yTWVzc2Fn
ZVN0cmluZyA9IG1lc3NhZ2UtPkdldCgpOwpAQCAtMTI0LDIxICsxMzEsOSBAQCB2b2lkIFY4Q29u
c29sZU1lc3NhZ2U6OmhhbmRsZXIodjg6OkhhbmRsZTx2ODo6TWVzc2FnZT4gbWVzc2FnZSwgdjg6
OkhhbmRsZTx2ODo6VgogICAgIHY4OjpIYW5kbGU8djg6OlZhbHVlPiByZXNvdXJjZU5hbWUgPSBt
ZXNzYWdlLT5HZXRTY3JpcHRSZXNvdXJjZU5hbWUoKTsKICAgICBib29sIHVzZVVSTCA9IHJlc291
cmNlTmFtZS5Jc0VtcHR5KCkgfHwgIXJlc291cmNlTmFtZS0+SXNTdHJpbmcoKTsKICAgICBTdHJp
bmcgcmVzb3VyY2VOYW1lU3RyaW5nID0gdXNlVVJMID8gZnJhbWUtPmRvY3VtZW50KCktPnVybCgp
IDogdG9XZWJDb3JlU3RyaW5nKHJlc291cmNlTmFtZSk7Ci0gICAgVjhDb25zb2xlTWVzc2FnZSBj
b25zb2xlTWVzc2FnZShlcnJvck1lc3NhZ2UsIHJlc291cmNlTmFtZVN0cmluZywgbWVzc2FnZS0+
R2V0TGluZU51bWJlcigpKTsKLSAgICBjb25zb2xlTWVzc2FnZS5kaXNwYXRjaE5vdyhwYWdlLCBj
YWxsU3RhY2suZ2V0KCkpOwotfQotCi12b2lkIFY4Q29uc29sZU1lc3NhZ2U6OmRpc3BhdGNoTm93
KFBhZ2UqIHBhZ2UsIFNjcmlwdENhbGxTdGFjayogY2FsbFN0YWNrKQotewotICAgIEFTU0VSVChw
YWdlKTsKIAotICAgIC8vIFByb2Nlc3MgYW55IGRlbGF5ZWQgbWVzc2FnZXMgdG8gbWFrZSBzdXJl
IHRoYXQgbWVzc2FnZXMKLSAgICAvLyBhcHBlYXIgaW4gdGhlIHJpZ2h0IG9yZGVyIGluIHRoZSBj
b25zb2xlLgogICAgIHByb2Nlc3NEZWxheWVkKCk7Ci0KLSAgICBDb25zb2xlKiBjb25zb2xlID0g
cGFnZS0+bWFpbkZyYW1lKCktPmRvbVdpbmRvdygpLT5jb25zb2xlKCk7Ci0gICAgTWVzc2FnZVR5
cGUgbWVzc2FnZVR5cGUgPSBjYWxsU3RhY2sgPyBVbmNhdWdodEV4Y2VwdGlvbk1lc3NhZ2VUeXBl
IDogTG9nTWVzc2FnZVR5cGU7Ci0gICAgY29uc29sZS0+YWRkTWVzc2FnZShKU01lc3NhZ2VTb3Vy
Y2UsIG1lc3NhZ2VUeXBlLCBFcnJvck1lc3NhZ2VMZXZlbCwgbV9zdHJpbmcsIG1fbGluZU51bWJl
ciwgbV9zb3VyY2VJRCwgY2FsbFN0YWNrKTsKKyAgICBkb2N1bWVudC0+cmVwb3J0RXhjZXB0aW9u
KGVycm9yTWVzc2FnZSwgbWVzc2FnZS0+R2V0TGluZU51bWJlcigpLCByZXNvdXJjZU5hbWVTdHJp
bmcsIGNhbGxTdGFjay5yZWxlYXNlKCkpOwogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRp
ZmYgLS1naXQgYS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1Y4Q29uc29sZU1lc3NhZ2UuaCBiL1dlYkNv
cmUvYmluZGluZ3MvdjgvVjhDb25zb2xlTWVzc2FnZS5oCm9sZCBtb2RlIDEwMDY0NApuZXcgbW9k
ZSAxMDA3NTUKaW5kZXggMzg3YjVlZTM0YjU2OGU2ODNmNGNlN2VlYWVmMTRjMjZiMTU2N2U1My4u
ZTJmYmNhN2RmMzYyMzI5OGYyNDUwNTUyMDExNThlOTU2Nzk2YWYxOQotLS0gYS9XZWJDb3JlL2Jp
bmRpbmdzL3Y4L1Y4Q29uc29sZU1lc3NhZ2UuaAorKysgYi9XZWJDb3JlL2JpbmRpbmdzL3Y4L1Y4
Q29uc29sZU1lc3NhZ2UuaApAQCAtMzcsNTYgKzM3LDU1IEBACiAKIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKIAotICAgIGNsYXNzIFBhZ2U7Ci0gICAgY2xhc3MgU2NyaXB0Q2FsbFN0YWNrOworY2xhc3Mg
RnJhbWU7CitjbGFzcyBQYWdlOworY2xhc3MgU2NyaXB0Q2FsbFN0YWNrOwogCi0gICAgLy8gVjhD
b25zb2xlTWVzc2FnZSBlbmNhcHN1bGF0ZXMgZXZlcnl0aGluZyBuZWVkZWQgdG8KLSAgICAvLyBs
b2cgbWVzc2FnZXMgb3JpZ2luYXRpbmcgZnJvbSBKYXZhU2NyaXB0IHRvIHRoZSBjb25zb2xlLgot
ICAgIGNsYXNzIFY4Q29uc29sZU1lc3NhZ2UgewotICAgIHB1YmxpYzoKLSAgICAgICAgVjhDb25z
b2xlTWVzc2FnZShjb25zdCBTdHJpbmcmIHN0cmluZywgY29uc3QgU3RyaW5nJiBzb3VyY2VJRCwg
dW5zaWduZWQgbGluZU51bWJlcik7Ci0KLSAgICAgICAgLy8gQWRkIGEgbWVzc2FnZSB0byB0aGUg
Y29uc29sZS4gTWF5IGVuZCB1cCBjYWxsaW5nIEphdmFTY3JpcHQgY29kZQotICAgICAgICAvLyBp
bmRpcmVjdGx5IHRocm91Z2ggdGhlIGluc3BlY3RvciBzbyBvbmx5IGNhbGwgdGhpcyBmdW5jdGlv
biB3aGVuCi0gICAgICAgIC8vIGl0IGlzIHNhZmUgdG8gZG8gYWxsb2NhdGlvbnMuCi0gICAgICAg
IHZvaWQgZGlzcGF0Y2hOb3coUGFnZSopOworLy8gVjhDb25zb2xlTWVzc2FnZSBlbmNhcHN1bGF0
ZXMgZXZlcnl0aGluZyBuZWVkZWQgdG8KKy8vIGxvZyBtZXNzYWdlcyBvcmlnaW5hdGluZyBmcm9t
IEphdmFTY3JpcHQgdG8gdGhlIGNvbnNvbGUuCitjbGFzcyBWOENvbnNvbGVNZXNzYWdlIHsKK3B1
YmxpYzoKKyAgICBWOENvbnNvbGVNZXNzYWdlKGNvbnN0IFN0cmluZyYgc3RyaW5nLCBjb25zdCBT
dHJpbmcmIHNvdXJjZUlELCB1bnNpZ25lZCBsaW5lTnVtYmVyKTsKIAotICAgICAgICAvLyBBZGQg
YSBtZXNzYWdlIHRvIHRoZSBjb25zb2xlIGJ1dCBkZWxheSB0aGUgcmVwb3J0aW5nIHVudGlsIGl0
Ci0gICAgICAgIC8vIGlzIHNhZmUgdG8gZG8gc286IEVpdGhlciB3aGVuIHdlIGxlYXZlIEphdmFT
Y3JpcHQgZXhlY3V0aW9uIG9yCi0gICAgICAgIC8vIHdoZW4gYWRkaW5nIG90aGVyIGNvbnNvbGUg
bWVzc2FnZXMuIFRoZSBwcmltYXJ5IHB1cnBvc2Ugb2YgdGhpcwotICAgICAgICAvLyBtZXRob2Qg
aXMgdG8gYXZvaWQgY2FsbGluZyBpbnRvIFY4IHRvIGhhbmRsZSBjb25zb2xlIG1lc3NhZ2VzCi0g
ICAgICAgIC8vIHdoZW4gdGhlIFZNIGlzIGluIGEgc3RhdGUgdGhhdCBkb2VzIG5vdCBzdXBwb3J0
IEdDcyBvciBhbGxvY2F0aW9ucy4KLSAgICAgICAgLy8gRGVsYXllZCBtZXNzYWdlcyBhcmUgYWx3
YXlzIHJlcG9ydGVkIGluIHRoZSBwYWdlIGNvcnJlc3BvbmRpbmcKLSAgICAgICAgLy8gdG8gdGhl
IGFjdGl2ZSBjb250ZXh0LgotICAgICAgICB2b2lkIGRpc3BhdGNoTGF0ZXIoKTsKKyAgICAvLyBB
ZGQgYSBtZXNzYWdlIHRvIHRoZSBjb25zb2xlLiBNYXkgZW5kIHVwIGNhbGxpbmcgSmF2YVNjcmlw
dCBjb2RlCisgICAgLy8gaW5kaXJlY3RseSB0aHJvdWdoIHRoZSBpbnNwZWN0b3Igc28gb25seSBj
YWxsIHRoaXMgZnVuY3Rpb24gd2hlbgorICAgIC8vIGl0IGlzIHNhZmUgdG8gZG8gYWxsb2NhdGlv
bnMuCisgICAgdm9pZCBkaXNwYXRjaE5vdyhQYWdlKik7CiAKLSAgICAgICAgLy8gUHJvY2VzcyBh
bnkgZGVsYXllZCBtZXNzYWdlcy4gTWF5IGVuZCB1cCBjYWxsaW5nIEphdmFTY3JpcHQgY29kZQot
ICAgICAgICAvLyBpbmRpcmVjdGx5IHRocm91Z2ggdGhlIGluc3BlY3RvciBzbyBvbmx5IGNhbGwg
dGhpcyBmdW5jdGlvbiB3aGVuCi0gICAgICAgIC8vIGl0IGlzIHNhZmUgdG8gZG8gYWxsb2NhdGlv
bnMuCi0gICAgICAgIHN0YXRpYyB2b2lkIHByb2Nlc3NEZWxheWVkKCk7CisgICAgLy8gQWRkIGEg
bWVzc2FnZSB0byB0aGUgY29uc29sZSBidXQgZGVsYXkgdGhlIHJlcG9ydGluZyB1bnRpbCBpdAor
ICAgIC8vIGlzIHNhZmUgdG8gZG8gc286IEVpdGhlciB3aGVuIHdlIGxlYXZlIEphdmFTY3JpcHQg
ZXhlY3V0aW9uIG9yCisgICAgLy8gd2hlbiBhZGRpbmcgb3RoZXIgY29uc29sZSBtZXNzYWdlcy4g
VGhlIHByaW1hcnkgcHVycG9zZSBvZiB0aGlzCisgICAgLy8gbWV0aG9kIGlzIHRvIGF2b2lkIGNh
bGxpbmcgaW50byBWOCB0byBoYW5kbGUgY29uc29sZSBtZXNzYWdlcworICAgIC8vIHdoZW4gdGhl
IFZNIGlzIGluIGEgc3RhdGUgdGhhdCBkb2VzIG5vdCBzdXBwb3J0IEdDcyBvciBhbGxvY2F0aW9u
cy4KKyAgICAvLyBEZWxheWVkIG1lc3NhZ2VzIGFyZSBhbHdheXMgcmVwb3J0ZWQgaW4gdGhlIHBh
Z2UgY29ycmVzcG9uZGluZworICAgIC8vIHRvIHRoZSBhY3RpdmUgY29udGV4dC4KKyAgICB2b2lk
IGRpc3BhdGNoTGF0ZXIoKTsKIAotICAgICAgICAvLyBDb252ZW5pZW5jZSBjbGFzcyBmb3IgZW5z
dXJpbmcgdGhhdCBkZWxheWVkIG1lc3NhZ2VzIGluIHRoZQotICAgICAgICAvLyBDb25zb2xlTWVz
c2FnZU1hbmFnZXIgYXJlIHByb2Nlc3NlZCBxdWlja2x5LgotICAgICAgICBjbGFzcyBTY29wZSB7
Ci0gICAgICAgIHB1YmxpYzoKLSAgICAgICAgICAgIFNjb3BlKCkgeyBWOENvbnNvbGVNZXNzYWdl
Ojpwcm9jZXNzRGVsYXllZCgpOyB9Ci0gICAgICAgICAgICB+U2NvcGUoKSB7IFY4Q29uc29sZU1l
c3NhZ2U6OnByb2Nlc3NEZWxheWVkKCk7IH0KLSAgICAgICAgfTsKKyAgICAvLyBQcm9jZXNzIGFu
eSBkZWxheWVkIG1lc3NhZ2VzLiBNYXkgZW5kIHVwIGNhbGxpbmcgSmF2YVNjcmlwdCBjb2RlCisg
ICAgLy8gaW5kaXJlY3RseSB0aHJvdWdoIHRoZSBpbnNwZWN0b3Igc28gb25seSBjYWxsIHRoaXMg
ZnVuY3Rpb24gd2hlbgorICAgIC8vIGl0IGlzIHNhZmUgdG8gZG8gYWxsb2NhdGlvbnMuCisgICAg
c3RhdGljIHZvaWQgcHJvY2Vzc0RlbGF5ZWQoKTsKIAotICAgICAgICAvLyBDYWxsYmFjayBmcm9t
IFY4LgotICAgICAgICBzdGF0aWMgdm9pZCBoYW5kbGVyKHY4OjpIYW5kbGU8djg6Ok1lc3NhZ2U+
LCB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gZGF0YSk7CisgICAgLy8gQ29udmVuaWVuY2UgY2xhc3Mg
Zm9yIGVuc3VyaW5nIHRoYXQgZGVsYXllZCBtZXNzYWdlcyBpbiB0aGUKKyAgICAvLyBDb25zb2xl
TWVzc2FnZU1hbmFnZXIgYXJlIHByb2Nlc3NlZCBxdWlja2x5LgorICAgIGNsYXNzIFNjb3BlIHsK
KyAgICBwdWJsaWM6CisgICAgICAgIFNjb3BlKCkgeyBWOENvbnNvbGVNZXNzYWdlOjpwcm9jZXNz
RGVsYXllZCgpOyB9CisgICAgICAgIH5TY29wZSgpIHsgVjhDb25zb2xlTWVzc2FnZTo6cHJvY2Vz
c0RlbGF5ZWQoKTsgfQorICAgIH07CiAKLSAgICBwcml2YXRlOgotICAgICAgICBjb25zdCBTdHJp
bmcgbV9zdHJpbmc7Ci0gICAgICAgIGNvbnN0IFN0cmluZyBtX3NvdXJjZUlEOwotICAgICAgICBj
b25zdCB1bnNpZ25lZCBtX2xpbmVOdW1iZXI7CisgICAgLy8gQ2FsbGJhY2sgZnJvbSBWOC4KKyAg
ICBzdGF0aWMgdm9pZCBoYW5kbGVyKHY4OjpIYW5kbGU8djg6Ok1lc3NhZ2U+LCB2ODo6SGFuZGxl
PHY4OjpWYWx1ZT4gZGF0YSk7CiAKLSAgICAgICAgdm9pZCBkaXNwYXRjaE5vdyhQYWdlKiwgU2Ny
aXB0Q2FsbFN0YWNrKik7Citwcml2YXRlOgorICAgIGNvbnN0IFN0cmluZyBtX3N0cmluZzsKKyAg
ICBjb25zdCBTdHJpbmcgbV9zb3VyY2VJRDsKKyAgICBjb25zdCB1bnNpZ25lZCBtX2xpbmVOdW1i
ZXI7CiAKLSAgICAgICAgLy8gQWxsIGRlbGF5ZWQgbWVzc2FnZXMgYXJlIHN0b3JlZCBpbiB0aGlz
IHZlY3Rvci4gSWYgdGhlIHZlY3RvcgotICAgICAgICAvLyBpcyAwLCB0aGVyZSBhcmUgbm8gZGVs
YXllZCBtZXNzYWdlcy4KLSAgICAgICAgc3RhdGljIFZlY3RvcjxWOENvbnNvbGVNZXNzYWdlPiog
bV9kZWxheWVkTWVzc2FnZXM7Ci0gICAgfTsKKyAgICAvLyBBbGwgZGVsYXllZCBtZXNzYWdlcyBh
cmUgc3RvcmVkIGluIHRoaXMgdmVjdG9yLiBJZiB0aGUgdmVjdG9yCisgICAgLy8gaXMgMCwgdGhl
cmUgYXJlIG5vIGRlbGF5ZWQgbWVzc2FnZXMuCisgICAgc3RhdGljIFZlY3RvcjxWOENvbnNvbGVN
ZXNzYWdlPiogbV9kZWxheWVkTWVzc2FnZXM7Cit9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3Jl
CiAKZGlmZiAtLWdpdCBhL1dlYkNvcmUvYmluZGluZ3MvanMvSlNXb3JrZXJDb250ZXh0RXJyb3JI
YW5kbGVyLmggYi9XZWJDb3JlL2JpbmRpbmdzL3Y4L1Y4V2luZG93RXJyb3JIYW5kbGVyLmNwcApv
bGQgbW9kZSAxMDA2NDQKbmV3IG1vZGUgMTAwNzU1CnNpbWlsYXJpdHkgaW5kZXggNTYlCmNvcHkg
ZnJvbSBXZWJDb3JlL2JpbmRpbmdzL2pzL0pTV29ya2VyQ29udGV4dEVycm9ySGFuZGxlci5oCmNv
cHkgdG8gV2ViQ29yZS9iaW5kaW5ncy92OC9WOFdpbmRvd0Vycm9ySGFuZGxlci5jcHAKaW5kZXgg
YTE4ODI5OTAzOGM5Y2RmZTcyMjg2YjcxZmVhZWIzYTQ5YzJhMGQ4MS4uYTc0YmFkNDgzMGM4MTE4
MThjNTMyYTExMTNkZTliOWUzNGM2YjdhNAotLS0gYS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTV29y
a2VyQ29udGV4dEVycm9ySGFuZGxlci5oCisrKyBiL1dlYkNvcmUvYmluZGluZ3MvdjgvVjhXaW5k
b3dFcnJvckhhbmRsZXIuY3BwCkBAIC0yOCwzNyArMjgsMzUgQEAKICAqIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCiAg
Ki8KIAotI2lmbmRlZiBKU1dvcmtlckNvbnRleHRFcnJvckhhbmRsZXJfaAotI2RlZmluZSBKU1dv
cmtlckNvbnRleHRFcnJvckhhbmRsZXJfaAorI2luY2x1ZGUgImNvbmZpZy5oIgogCi0jaW5jbHVk
ZSAiSlNFdmVudExpc3RlbmVyLmgiCisjaW5jbHVkZSAiVjhXaW5kb3dFcnJvckhhbmRsZXIuaCIK
IAotbmFtZXNwYWNlIFdlYkNvcmUgewotCi1jbGFzcyBKU1dvcmtlckNvbnRleHRFcnJvckhhbmRs
ZXIgOiBwdWJsaWMgSlNFdmVudExpc3RlbmVyIHsKLXB1YmxpYzoKLSAgICBzdGF0aWMgUGFzc1Jl
ZlB0cjxKU1dvcmtlckNvbnRleHRFcnJvckhhbmRsZXI+IGNyZWF0ZShKU0M6OkpTT2JqZWN0KiBs
aXN0ZW5lciwgSlNDOjpKU09iamVjdCogd3JhcHBlciwgYm9vbCBpc0F0dHJpYnV0ZSwgRE9NV3Jh
cHBlcldvcmxkKiBpc29sYXRlZFdvcmxkKQotICAgIHsKLSAgICAgICAgcmV0dXJuIGFkb3B0UmVm
KG5ldyBKU1dvcmtlckNvbnRleHRFcnJvckhhbmRsZXIobGlzdGVuZXIsIHdyYXBwZXIsIGlzQXR0
cmlidXRlLCBpc29sYXRlZFdvcmxkKSk7Ci0gICAgfQorI2luY2x1ZGUgIkVycm9yRXZlbnQuaCIK
KyNpbmNsdWRlICJWOEJpbmRpbmcuaCIKIAotICAgIHZpcnR1YWwgfkpTV29ya2VyQ29udGV4dEVy
cm9ySGFuZGxlcigpOwotCi1wcml2YXRlOgotICAgIEpTV29ya2VyQ29udGV4dEVycm9ySGFuZGxl
cihKU0M6OkpTT2JqZWN0KiBmdW5jdGlvbiwgSlNDOjpKU09iamVjdCogd3JhcHBlciwgYm9vbCBp
c0F0dHJpYnV0ZSwgRE9NV3JhcHBlcldvcmxkKiBpc29sYXRlZFdvcmxkKTsKLSAgICB2aXJ0dWFs
IHZvaWQgaGFuZGxlRXZlbnQoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIEV2ZW50Kik7Ci19Owor
bmFtZXNwYWNlIFdlYkNvcmUgewogCi0vLyBDcmVhdGVzIGEgSlMgRXZlbnRMaXN0ZW5lciBmb3Ig
Im9uZXJyb3IiIGV2ZW50IGhhbmRsZXIgaW4gd29ya2VyIGNvbnRleHQuIEl0IGhhcyBjdXN0b20g
aW1wbGVtZW50YXRpb24gYmVjYXVzZQotLy8gdW5saWtlIG90aGVyIGV2ZW50IGxpc3RlbmVycyBp
dCBhY2NlcHRzIHRocmVlIHBhcmFtZXRlcnMuCi1pbmxpbmUgUGFzc1JlZlB0cjxKU1dvcmtlckNv
bnRleHRFcnJvckhhbmRsZXI+IGNyZWF0ZUpTV29ya2VyQ29udGV4dEVycm9ySGFuZGxlcihKU0M6
OkV4ZWNTdGF0ZSogZXhlYywgSlNDOjpKU1ZhbHVlIGxpc3RlbmVyLCBKU0M6OkpTT2JqZWN0KiB3
cmFwcGVyKQorVjhXaW5kb3dFcnJvckhhbmRsZXI6OlY4V2luZG93RXJyb3JIYW5kbGVyKHY4OjpM
b2NhbDx2ODo6T2JqZWN0PiBsaXN0ZW5lciwgYm9vbCBpc0lubGluZSwgY29uc3QgV29ybGRDb250
ZXh0SGFuZGxlJiB3b3JsZENvbnRleHQpCisgICAgOiBWOEV2ZW50TGlzdGVuZXIobGlzdGVuZXIs
IGlzSW5saW5lLCB3b3JsZENvbnRleHQpCiB7Ci0gICAgaWYgKCFsaXN0ZW5lci5pc09iamVjdCgp
KQotICAgICAgICByZXR1cm4gMDsKK30KIAotICAgIHJldHVybiBKU1dvcmtlckNvbnRleHRFcnJv
ckhhbmRsZXI6OmNyZWF0ZShhc09iamVjdChsaXN0ZW5lciksIHdyYXBwZXIsIHRydWUsIGN1cnJl
bnRXb3JsZChleGVjKSk7Cit2ODo6TG9jYWw8djg6OlZhbHVlPiBWOFdpbmRvd0Vycm9ySGFuZGxl
cjo6Y2FsbExpc3RlbmVyRnVuY3Rpb24oU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCwg
djg6OkhhbmRsZTx2ODo6VmFsdWU+IGpzRXZlbnQsIEV2ZW50KiBldmVudCkKK3sKKyAgICBBU1NF
UlQoZXZlbnQtPmlzRXJyb3JFdmVudCgpKTsKKyAgICBFcnJvckV2ZW50KiBlcnJvckV2ZW50ID0g
c3RhdGljX2Nhc3Q8RXJyb3JFdmVudCo+KGV2ZW50KTsKKyAgICB2ODo6TG9jYWw8djg6Ok9iamVj
dD4gbGlzdGVuZXIgPSBnZXRMaXN0ZW5lck9iamVjdChjb250ZXh0KTsKKyAgICB2ODo6TG9jYWw8
djg6OlZhbHVlPiByZXR1cm5WYWx1ZTsKKyAgICBpZiAoIWxpc3RlbmVyLklzRW1wdHkoKSAmJiBs
aXN0ZW5lci0+SXNGdW5jdGlvbigpKSB7CisgICAgICAgIHY4OjpMb2NhbDx2ODo6RnVuY3Rpb24+
IGNhbGxGdW5jdGlvbiA9IHY4OjpMb2NhbDx2ODo6RnVuY3Rpb24+OjpDYXN0KGxpc3RlbmVyKTsK
KyAgICAgICAgdjg6OkxvY2FsPHY4OjpPYmplY3Q+IHRoaXNWYWx1ZSA9IHY4OjpDb250ZXh0OjpH
ZXRDdXJyZW50KCktPkdsb2JhbCgpOworICAgICAgICB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gcGFy
YW1ldGVyc1szXSA9IHsgdjhTdHJpbmcoZXJyb3JFdmVudC0+bWVzc2FnZSgpKSwgdjhTdHJpbmco
ZXJyb3JFdmVudC0+ZmlsZW5hbWUoKSksIHY4OjpJbnRlZ2VyOjpOZXcoZXJyb3JFdmVudC0+bGlu
ZW5vKCkpIH07CisgICAgICAgIHJldHVyblZhbHVlID0gY2FsbEZ1bmN0aW9uLT5DYWxsKHRoaXNW
YWx1ZSwgMywgcGFyYW1ldGVycyk7CisgICAgICAgIGlmICghcmV0dXJuVmFsdWUuSXNFbXB0eSgp
ICYmIHJldHVyblZhbHVlLT5Jc0Jvb2xlYW4oKSAmJiAhcmV0dXJuVmFsdWUtPkJvb2xlYW5WYWx1
ZSgpKQorICAgICAgICAgICAgZXZlbnQtPnByZXZlbnREZWZhdWx0KCk7CisgICAgfQorICAgIHJl
dHVybiByZXR1cm5WYWx1ZTsKIH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQotCi0jZW5kaWYg
Ly8gSlNXb3JrZXJDb250ZXh0RXJyb3JIYW5kbGVyX2gKZGlmZiAtLWdpdCBhL1dlYkNvcmUvYmlu
ZGluZ3MvanMvSlNXb3JrZXJDb250ZXh0RXJyb3JIYW5kbGVyLmggYi9XZWJDb3JlL2JpbmRpbmdz
L3Y4L1Y4V2luZG93RXJyb3JIYW5kbGVyLmgKb2xkIG1vZGUgMTAwNjQ0Cm5ldyBtb2RlIDEwMDc1
NQpzaW1pbGFyaXR5IGluZGV4IDU4JQpyZW5hbWUgZnJvbSBXZWJDb3JlL2JpbmRpbmdzL2pzL0pT
V29ya2VyQ29udGV4dEVycm9ySGFuZGxlci5oCnJlbmFtZSB0byBXZWJDb3JlL2JpbmRpbmdzL3Y4
L1Y4V2luZG93RXJyb3JIYW5kbGVyLmgKaW5kZXggYTE4ODI5OTAzOGM5Y2RmZTcyMjg2YjcxZmVh
ZWIzYTQ5YzJhMGQ4MS4uMTY3Y2EwZDdkZjQ4NjFlMTE0ZjNhMmQ2NjMzYTc0MjEwYmY2OGY5Ywot
LS0gYS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTV29ya2VyQ29udGV4dEVycm9ySGFuZGxlci5oCisr
KyBiL1dlYkNvcmUvYmluZGluZ3MvdjgvVjhXaW5kb3dFcnJvckhhbmRsZXIuaApAQCAtMjgsMzcg
KzI4LDI4IEBACiAgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgogICovCiAKLSNpZm5kZWYgSlNXb3JrZXJDb250ZXh0
RXJyb3JIYW5kbGVyX2gKLSNkZWZpbmUgSlNXb3JrZXJDb250ZXh0RXJyb3JIYW5kbGVyX2gKKyNp
Zm5kZWYgVjhXaW5kb3dFcnJvckhhbmRsZXJfaAorI2RlZmluZSBWOFdpbmRvd0Vycm9ySGFuZGxl
cl9oCiAKLSNpbmNsdWRlICJKU0V2ZW50TGlzdGVuZXIuaCIKKyNpbmNsdWRlICJWOEN1c3RvbUV2
ZW50TGlzdGVuZXIuaCIKKyNpbmNsdWRlIDx2OC5oPgorI2luY2x1ZGUgPHd0Zi9QYXNzUmVmUHRy
Lmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotY2xhc3MgSlNXb3JrZXJDb250ZXh0RXJyb3JI
YW5kbGVyIDogcHVibGljIEpTRXZlbnRMaXN0ZW5lciB7CitjbGFzcyBWOFdpbmRvd0Vycm9ySGFu
ZGxlciA6IHB1YmxpYyBWOEV2ZW50TGlzdGVuZXIgewogcHVibGljOgotICAgIHN0YXRpYyBQYXNz
UmVmUHRyPEpTV29ya2VyQ29udGV4dEVycm9ySGFuZGxlcj4gY3JlYXRlKEpTQzo6SlNPYmplY3Qq
IGxpc3RlbmVyLCBKU0M6OkpTT2JqZWN0KiB3cmFwcGVyLCBib29sIGlzQXR0cmlidXRlLCBET01X
cmFwcGVyV29ybGQqIGlzb2xhdGVkV29ybGQpCisgICAgc3RhdGljIFBhc3NSZWZQdHI8VjhXaW5k
b3dFcnJvckhhbmRsZXI+IGNyZWF0ZSh2ODo6TG9jYWw8djg6Ok9iamVjdD4gbGlzdGVuZXIsIGJv
b2wgaXNJbmxpbmUsIGNvbnN0IFdvcmxkQ29udGV4dEhhbmRsZSYgd29ybGRDb250ZXh0KQogICAg
IHsKLSAgICAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBKU1dvcmtlckNvbnRleHRFcnJvckhhbmRs
ZXIobGlzdGVuZXIsIHdyYXBwZXIsIGlzQXR0cmlidXRlLCBpc29sYXRlZFdvcmxkKSk7CisgICAg
ICAgIHJldHVybiBhZG9wdFJlZihuZXcgVjhXaW5kb3dFcnJvckhhbmRsZXIobGlzdGVuZXIsIGlz
SW5saW5lLCB3b3JsZENvbnRleHQpKTsKICAgICB9CiAKLSAgICB2aXJ0dWFsIH5KU1dvcmtlckNv
bnRleHRFcnJvckhhbmRsZXIoKTsKLQogcHJpdmF0ZToKLSAgICBKU1dvcmtlckNvbnRleHRFcnJv
ckhhbmRsZXIoSlNDOjpKU09iamVjdCogZnVuY3Rpb24sIEpTQzo6SlNPYmplY3QqIHdyYXBwZXIs
IGJvb2wgaXNBdHRyaWJ1dGUsIERPTVdyYXBwZXJXb3JsZCogaXNvbGF0ZWRXb3JsZCk7Ci0gICAg
dmlydHVhbCB2b2lkIGhhbmRsZUV2ZW50KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqLCBFdmVudCop
OwotfTsKKyAgICBWOFdpbmRvd0Vycm9ySGFuZGxlcih2ODo6TG9jYWw8djg6Ok9iamVjdD4gbGlz
dGVuZXIsIGJvb2wgaXNJbmxpbmUsIGNvbnN0IFdvcmxkQ29udGV4dEhhbmRsZSYgd29ybGRDb250
ZXh0KTsKIAotLy8gQ3JlYXRlcyBhIEpTIEV2ZW50TGlzdGVuZXIgZm9yICJvbmVycm9yIiBldmVu
dCBoYW5kbGVyIGluIHdvcmtlciBjb250ZXh0LiBJdCBoYXMgY3VzdG9tIGltcGxlbWVudGF0aW9u
IGJlY2F1c2UKLS8vIHVubGlrZSBvdGhlciBldmVudCBsaXN0ZW5lcnMgaXQgYWNjZXB0cyB0aHJl
ZSBwYXJhbWV0ZXJzLgotaW5saW5lIFBhc3NSZWZQdHI8SlNXb3JrZXJDb250ZXh0RXJyb3JIYW5k
bGVyPiBjcmVhdGVKU1dvcmtlckNvbnRleHRFcnJvckhhbmRsZXIoSlNDOjpFeGVjU3RhdGUqIGV4
ZWMsIEpTQzo6SlNWYWx1ZSBsaXN0ZW5lciwgSlNDOjpKU09iamVjdCogd3JhcHBlcikKLXsKLSAg
ICBpZiAoIWxpc3RlbmVyLmlzT2JqZWN0KCkpCi0gICAgICAgIHJldHVybiAwOwotCi0gICAgcmV0
dXJuIEpTV29ya2VyQ29udGV4dEVycm9ySGFuZGxlcjo6Y3JlYXRlKGFzT2JqZWN0KGxpc3RlbmVy
KSwgd3JhcHBlciwgdHJ1ZSwgY3VycmVudFdvcmxkKGV4ZWMpKTsKLX0KKyAgICB2aXJ0dWFsIHY4
OjpMb2NhbDx2ODo6VmFsdWU+IGNhbGxMaXN0ZW5lckZ1bmN0aW9uKFNjcmlwdEV4ZWN1dGlvbkNv
bnRleHQqLCB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4ganNFdmVudCwgRXZlbnQqKTsKK307CiAKIH0g
Ly8gbmFtZXNwYWNlIFdlYkNvcmUKIAotI2VuZGlmIC8vIEpTV29ya2VyQ29udGV4dEVycm9ySGFu
ZGxlcl9oCisjZW5kaWYgLy8gVjhXaW5kb3dFcnJvckhhbmRsZXJfaApkaWZmIC0tZ2l0IGEvV2Vi
Q29yZS9iaW5kaW5ncy92OC9Xb3JrZXJDb250ZXh0RXhlY3V0aW9uUHJveHkuY3BwIGIvV2ViQ29y
ZS9iaW5kaW5ncy92OC9Xb3JrZXJDb250ZXh0RXhlY3V0aW9uUHJveHkuY3BwCm9sZCBtb2RlIDEw
MDY0NApuZXcgbW9kZSAxMDA3NTUKaW5kZXggMTZlMGI0MTAxZWZkYzM1YWU3NDQxODE3YjA2ODdk
YjZiNWE2NWEyNS4uZGQ5YThkMDE4ZDhiYzliMWE1M2QyNTJkNmRjODU0YTAxNGE0NTIyOAotLS0g
YS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1dvcmtlckNvbnRleHRFeGVjdXRpb25Qcm94eS5jcHAKKysr
IGIvV2ViQ29yZS9iaW5kaW5ncy92OC9Xb3JrZXJDb250ZXh0RXhlY3V0aW9uUHJveHkuY3BwCkBA
IC0zNyw2ICszNyw3IEBACiAKICNpbmNsdWRlICJEZWRpY2F0ZWRXb3JrZXJDb250ZXh0LmgiCiAj
aW5jbHVkZSAiRXZlbnQuaCIKKyNpbmNsdWRlICJTY3JpcHRDYWxsU3RhY2suaCIKICNpbmNsdWRl
ICJTaGFyZWRXb3JrZXIuaCIKICNpbmNsdWRlICJTaGFyZWRXb3JrZXJDb250ZXh0LmgiCiAjaW5j
bHVkZSAiVjhCaW5kaW5nLmgiCkBAIC03Miw3ICs3Myw3IEBAIHN0YXRpYyB2b2lkIHY4TWVzc2Fn
ZUhhbmRsZXIodjg6OkhhbmRsZTx2ODo6TWVzc2FnZT4gbWVzc2FnZSwgdjg6OkhhbmRsZTx2ODo6
VmFsCiAgICAgICAgIFN0cmluZyBlcnJvck1lc3NhZ2UgPSB0b1dlYkNvcmVTdHJpbmcobWVzc2Fn
ZS0+R2V0KCkpOwogICAgICAgICBpbnQgbGluZU51bWJlciA9IG1lc3NhZ2UtPkdldExpbmVOdW1i
ZXIoKTsKICAgICAgICAgU3RyaW5nIHNvdXJjZVVSTCA9IHRvV2ViQ29yZVN0cmluZyhtZXNzYWdl
LT5HZXRTY3JpcHRSZXNvdXJjZU5hbWUoKSk7Ci0gICAgICAgIGNvbnRleHQtPnJlcG9ydEV4Y2Vw
dGlvbihlcnJvck1lc3NhZ2UsIGxpbmVOdW1iZXIsIHNvdXJjZVVSTCk7CisgICAgICAgIGNvbnRl
eHQtPnJlcG9ydEV4Y2VwdGlvbihlcnJvck1lc3NhZ2UsIGxpbmVOdW1iZXIsIHNvdXJjZVVSTCwg
MCk7CiAgICAgfQogCiAgICAgaXNSZXBvcnRpbmdFeGNlcHRpb24gPSBmYWxzZTsKZGlmZiAtLWdp
dCBhL1dlYkNvcmUvYmluZGluZ3MvdjgvV29ya2VyU2NyaXB0Q29udHJvbGxlci5jcHAgYi9XZWJD
b3JlL2JpbmRpbmdzL3Y4L1dvcmtlclNjcmlwdENvbnRyb2xsZXIuY3BwCm9sZCBtb2RlIDEwMDY0
NApuZXcgbW9kZSAxMDA3NTUKaW5kZXggN2RiMGQ4ZDM3MzcwOWIyZTk3M2I2N2U3NzIzZTRmYzMx
MWZiY2E1OS4uYmY2OTNhODBiYWZhZmE3Mzg0YTI3MWEyMDk3YTMxODg2MGZmYTA1YgotLS0gYS9X
ZWJDb3JlL2JpbmRpbmdzL3Y4L1dvcmtlclNjcmlwdENvbnRyb2xsZXIuY3BwCisrKyBiL1dlYkNv
cmUvYmluZGluZ3MvdjgvV29ya2VyU2NyaXB0Q29udHJvbGxlci5jcHAKQEAgLTM0LDExICszNCwx
MCBAQAogCiAjaW5jbHVkZSAiV29ya2VyU2NyaXB0Q29udHJvbGxlci5oIgogCi0jaW5jbHVkZSA8
djguaD4KLQorI2luY2x1ZGUgIkRPTVRpbWVyLmgiCisjaW5jbHVkZSAiU2NyaXB0Q2FsbFN0YWNr
LmgiCiAjaW5jbHVkZSAiU2NyaXB0U291cmNlQ29kZS5oIgogI2luY2x1ZGUgIlNjcmlwdFZhbHVl
LmgiCi0jaW5jbHVkZSAiRE9NVGltZXIuaCIKICNpbmNsdWRlICJWOERPTU1hcC5oIgogI2luY2x1
ZGUgIlY4UHJveHkuaCIKICNpbmNsdWRlICJWOFdvcmtlckNvbnRleHQuaCIKQEAgLTQ2LDYgKzQ1
LDcgQEAKICNpbmNsdWRlICJXb3JrZXJDb250ZXh0RXhlY3V0aW9uUHJveHkuaCIKICNpbmNsdWRl
ICJXb3JrZXJPYmplY3RQcm94eS5oIgogI2luY2x1ZGUgIldvcmtlclRocmVhZC5oIgorI2luY2x1
ZGUgPHY4Lmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIApAQCAtODAsNyArODAsNyBAQCBTY3Jp
cHRWYWx1ZSBXb3JrZXJTY3JpcHRDb250cm9sbGVyOjpldmFsdWF0ZShjb25zdCBTY3JpcHRTb3Vy
Y2VDb2RlJiBzb3VyY2VDb2RlLAogICAgICAgICBpZiAoZXhjZXB0aW9uKQogICAgICAgICAgICAg
KmV4Y2VwdGlvbiA9IHN0YXRlLmV4Y2VwdGlvbjsKICAgICAgICAgZWxzZQotICAgICAgICAgICAg
bV93b3JrZXJDb250ZXh0LT5yZXBvcnRFeGNlcHRpb24oc3RhdGUuZXJyb3JNZXNzYWdlLCBzdGF0
ZS5saW5lTnVtYmVyLCBzdGF0ZS5zb3VyY2VVUkwpOworICAgICAgICAgICAgbV93b3JrZXJDb250
ZXh0LT5yZXBvcnRFeGNlcHRpb24oc3RhdGUuZXJyb3JNZXNzYWdlLCBzdGF0ZS5saW5lTnVtYmVy
LCBzdGF0ZS5zb3VyY2VVUkwsIDApOwogICAgIH0KIAogICAgIHJldHVybiByZXN1bHQ7CmRpZmYg
LS1naXQgYS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAgYi9XZWJDb3JlL2RvbS9Eb2N1bWVudC5j
cHAKaW5kZXggOTk5ODRiM2QzMGVhOGZlNjM5Y2FiNmU4NTk0ZTFlOWJkYjQ2ZTE0ZS4uYmVmMTk4
YTM4MDVkMGFjZWFmNjFjN2FhMWJjZTM2MTNmYzJmZTZkNiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9k
b20vRG9jdW1lbnQuY3BwCisrKyBiL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcApAQCAtMjE4NCw2
ICsyMTg0LDE3IEBAIEtVUkwgRG9jdW1lbnQ6OnZpcnR1YWxDb21wbGV0ZVVSTChjb25zdCBTdHJp
bmcmIHVybCkgY29uc3QKICAgICByZXR1cm4gY29tcGxldGVVUkwodXJsKTsKIH0KIAorRXZlbnRU
YXJnZXQqIERvY3VtZW50OjplcnJvckV2ZW50VGFyZ2V0KCkKK3sKKyAgICByZXR1cm4gZG9tV2lu
ZG93KCk7Cit9CisKK3ZvaWQgRG9jdW1lbnQ6OmxvZ0V4Y2VwdGlvblRvQ29uc29sZShjb25zdCBT
dHJpbmcmIGVycm9yTWVzc2FnZSwgaW50IGxpbmVOdW1iZXIsIGNvbnN0IFN0cmluZyYgc291cmNl
VVJMLCBTY3JpcHRDYWxsU3RhY2sqIGNhbGxTdGFjaykKK3sKKyAgICBNZXNzYWdlVHlwZSBtZXNz
YWdlVHlwZSA9IGNhbGxTdGFjayA/IFVuY2F1Z2h0RXhjZXB0aW9uTWVzc2FnZVR5cGUgOiBMb2dN
ZXNzYWdlVHlwZTsKKyAgICBhZGRNZXNzYWdlKEpTTWVzc2FnZVNvdXJjZSwgbWVzc2FnZVR5cGUs
IEVycm9yTWVzc2FnZUxldmVsLCBlcnJvck1lc3NhZ2UsIGxpbmVOdW1iZXIsIHNvdXJjZVVSTCk7
Cit9CisKIHZvaWQgRG9jdW1lbnQ6OnNldFVSTChjb25zdCBLVVJMJiB1cmwpCiB7CiAgICAgY29u
c3QgS1VSTCYgbmV3VVJMID0gdXJsLmlzRW1wdHkoKSA/IGJsYW5rVVJMKCkgOiB1cmw7CkBAIC00
NTQ4LDExICs0NTU5LDYgQEAgdm9pZCBEb2N1bWVudDo6cGFyc2VETlNQcmVmZXRjaENvbnRyb2xI
ZWFkZXIoY29uc3QgU3RyaW5nJiBkbnNQcmVmZXRjaENvbnRyb2wpCiAgICAgbV9oYXZlRXhwbGlj
aXRseURpc2FibGVkRE5TUHJlZmV0Y2ggPSB0cnVlOwogfQogCi12b2lkIERvY3VtZW50OjpyZXBv
cnRFeGNlcHRpb24oY29uc3QgU3RyaW5nJiBlcnJvck1lc3NhZ2UsIGludCBsaW5lTnVtYmVyLCBj
b25zdCBTdHJpbmcmIHNvdXJjZVVSTCkKLXsKLSAgICBhZGRNZXNzYWdlKEpTTWVzc2FnZVNvdXJj
ZSwgTG9nTWVzc2FnZVR5cGUsIEVycm9yTWVzc2FnZUxldmVsLCBlcnJvck1lc3NhZ2UsIGxpbmVO
dW1iZXIsIHNvdXJjZVVSTCk7Ci19Ci0KIHZvaWQgRG9jdW1lbnQ6OmFkZE1lc3NhZ2UoTWVzc2Fn
ZVNvdXJjZSBzb3VyY2UsIE1lc3NhZ2VUeXBlIHR5cGUsIE1lc3NhZ2VMZXZlbCBsZXZlbCwgY29u
c3QgU3RyaW5nJiBtZXNzYWdlLCB1bnNpZ25lZCBsaW5lTnVtYmVyLCBjb25zdCBTdHJpbmcmIHNv
dXJjZVVSTCkKIHsKICAgICBpZiAoRE9NV2luZG93KiB3aW5kb3cgPSBkb21XaW5kb3coKSkKZGlm
ZiAtLWdpdCBhL1dlYkNvcmUvZG9tL0RvY3VtZW50LmggYi9XZWJDb3JlL2RvbS9Eb2N1bWVudC5o
CmluZGV4IDdlOWRmN2NkMDM3ZWQ1N2ZiZmY2ZjgzM2FiZTdhOTJmZjg0MmE2ZDUuLmQ1NjUyYmM2
NjkwYTgwZTM3YTNjZTZkNWNmNjFjMzI4ZDdkMTBlMTEgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvZG9t
L0RvY3VtZW50LmgKKysrIGIvV2ViQ29yZS9kb20vRG9jdW1lbnQuaApAQCAtOTA1LDcgKzkwNSw2
IEBAIHB1YmxpYzoKICAgICBib29sIGlzRE5TUHJlZmV0Y2hFbmFibGVkKCkgY29uc3QgeyByZXR1
cm4gbV9pc0ROU1ByZWZldGNoRW5hYmxlZDsgfQogICAgIHZvaWQgcGFyc2VETlNQcmVmZXRjaENv
bnRyb2xIZWFkZXIoY29uc3QgU3RyaW5nJik7CiAKLSAgICB2aXJ0dWFsIHZvaWQgcmVwb3J0RXhj
ZXB0aW9uKGNvbnN0IFN0cmluZyYgZXJyb3JNZXNzYWdlLCBpbnQgbGluZU51bWJlciwgY29uc3Qg
U3RyaW5nJiBzb3VyY2VVUkwpOwogICAgIHZpcnR1YWwgdm9pZCBhZGRNZXNzYWdlKE1lc3NhZ2VT
b3VyY2UsIE1lc3NhZ2VUeXBlLCBNZXNzYWdlTGV2ZWwsIGNvbnN0IFN0cmluZyYgbWVzc2FnZSwg
dW5zaWduZWQgbGluZU51bWJlciwgY29uc3QgU3RyaW5nJiBzb3VyY2VVUkwpOwogICAgIHZpcnR1
YWwgdm9pZCBwb3N0VGFzayhQYXNzT3duUHRyPFRhc2s+KTsgLy8gRXhlY3V0ZXMgdGhlIHRhc2sg
b24gY29udGV4dCdzIHRocmVhZCBhc3luY2hyb25vdXNseS4KIApAQCAtMTA2MSw2ICsxMDYwLDkg
QEAgcHJpdmF0ZToKICAgICB2aXJ0dWFsIGNvbnN0IEtVUkwmIHZpcnR1YWxVUkwoKSBjb25zdDsg
Ly8gU2FtZSBhcyB1cmwoKSwgYnV0IG5lZWRlZCBmb3IgU2NyaXB0RXhlY3V0aW9uQ29udGV4dCB0
byBpbXBsZW1lbnQgaXQgd2l0aG91dCBhIHBlcmZvcm1hbmNlIGxvc3MgZm9yIGRpcmVjdCBjYWxs
cy4KICAgICB2aXJ0dWFsIEtVUkwgdmlydHVhbENvbXBsZXRlVVJMKGNvbnN0IFN0cmluZyYpIGNv
bnN0OyAvLyBTYW1lIGFzIGNvbXBsZXRlVVJMKCkgZm9yIHRoZSBzYW1lIHJlYXNvbiBhcyBhYm92
ZS4KIAorICAgIHZpcnR1YWwgRXZlbnRUYXJnZXQqIGVycm9yRXZlbnRUYXJnZXQoKTsKKyAgICB2
aXJ0dWFsIHZvaWQgbG9nRXhjZXB0aW9uVG9Db25zb2xlKGNvbnN0IFN0cmluZyYgZXJyb3JNZXNz
YWdlLCBpbnQgbGluZU51bWJlciwgY29uc3QgU3RyaW5nJiBzb3VyY2VVUkwsIFNjcmlwdENhbGxT
dGFjayopOworCiAgICAgdm9pZCBpbml0RE5TUHJlZmV0Y2goKTsKIAogICAgIFN0cmluZyBlbmNv
ZGluZygpIGNvbnN0OwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9kb20vU2NyaXB0RXhlY3V0aW9uQ29u
dGV4dC5jcHAgYi9XZWJDb3JlL2RvbS9TY3JpcHRFeGVjdXRpb25Db250ZXh0LmNwcAppbmRleCBi
ZmRhMTdiM2YxYjRkOTNkYWJkOGY2NDEwZGI3NjViNTAzNjdkZWM4Li4zZWJmNDNjMzMxYzNkZGFh
YTg5ZTY1MGUyOWQ5MzM4ZTNhYmM5ZTRkIDEwMDY0NAotLS0gYS9XZWJDb3JlL2RvbS9TY3JpcHRF
eGVjdXRpb25Db250ZXh0LmNwcAorKysgYi9XZWJDb3JlL2RvbS9TY3JpcHRFeGVjdXRpb25Db250
ZXh0LmNwcApAQCAtMzMsMTQgKzMzLDE5IEBACiAjaW5jbHVkZSAiRGF0YWJhc2UuaCIKICNpbmNs
dWRlICJEYXRhYmFzZVRhc2suaCIKICNpbmNsdWRlICJEYXRhYmFzZVRocmVhZC5oIgorI2luY2x1
ZGUgIkVycm9yRXZlbnQuaCIKKyNpbmNsdWRlICJFdmVudExpc3RlbmVyLmgiCisjaW5jbHVkZSAi
RXZlbnRUYXJnZXQuaCIKICNpbmNsdWRlICJGaWxlVGhyZWFkLmgiCiAjaW5jbHVkZSAiTWVzc2Fn
ZVBvcnQuaCIKKyNpbmNsdWRlICJTY3JpcHRDYWxsU3RhY2suaCIKICNpbmNsdWRlICJTZWN1cml0
eU9yaWdpbi5oIgogI2luY2x1ZGUgIlRocmVhZGFibGVCbG9iUmVnaXN0cnkuaCIKICNpbmNsdWRl
ICJXb3JrZXJDb250ZXh0LmgiCiAjaW5jbHVkZSAiV29ya2VyVGhyZWFkLmgiCiAjaW5jbHVkZSA8
d3RmL01haW5UaHJlYWQuaD4KICNpbmNsdWRlIDx3dGYvUGFzc1JlZlB0ci5oPgorI2luY2x1ZGUg
PHd0Zi9WZWN0b3IuaD4KIAogI2lmIFVTRShKU0MpCiAjaW5jbHVkZSAiSlNET01XaW5kb3cuaCIK
QEAgLTYxLDEwICs2NiwxOSBAQCBwdWJsaWM6CiAgICAgfQogfTsKIAorU2NyaXB0RXhlY3V0aW9u
Q29udGV4dDo6UGVuZGluZ0V4Y2VwdGlvbjo6UGVuZGluZ0V4Y2VwdGlvbihjb25zdCBTdHJpbmcm
IGVycm9yTWVzc2FnZSwgaW50IGxpbmVOdW1iZXIsIGNvbnN0IFN0cmluZyYgc291cmNlVVJMLCBQ
YXNzT3duUHRyPFNjcmlwdENhbGxTdGFjaz4gY2FsbFN0YWNrKQorICAgIDogbV9lcnJvck1lc3Nh
Z2UoZXJyb3JNZXNzYWdlKQorICAgICwgbV9saW5lTnVtYmVyKGxpbmVOdW1iZXIpCisgICAgLCBt
X3NvdXJjZVVSTChzb3VyY2VVUkwpCisgICAgLCBtX2NhbGxTdGFjayhjYWxsU3RhY2spCit7Cit9
CisKIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQ6OlNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKQogI2lm
IEVOQUJMRShEQVRBQkFTRSkKICAgICA6IG1faGFzT3BlbkRhdGFiYXNlcyhmYWxzZSkKICNlbmRp
ZgorICAgICwgbV9pbkRpc3BhdGNoRXJyb3JFdmVudChmYWxzZSkKIHsKIH0KIApAQCAtMjQzLDYg
KzI1Nyw0MyBAQCB2b2lkIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQ6OnNldFNlY3VyaXR5T3JpZ2lu
KFBhc3NSZWZQdHI8U2VjdXJpdHlPcmlnaW4+IHNlY3VyaQogICAgIG1fc2VjdXJpdHlPcmlnaW4g
PSBzZWN1cml0eU9yaWdpbjsKIH0KIAordm9pZCBTY3JpcHRFeGVjdXRpb25Db250ZXh0OjpyZXBv
cnRFeGNlcHRpb24oY29uc3QgU3RyaW5nJiBlcnJvck1lc3NhZ2UsIGludCBsaW5lTnVtYmVyLCBj
b25zdCBTdHJpbmcmIHNvdXJjZVVSTCwgUGFzc093blB0cjxTY3JpcHRDYWxsU3RhY2s+IGNhbGxT
dGFjaykKK3sKKyAgICBpZiAobV9pbkRpc3BhdGNoRXJyb3JFdmVudCkgeworICAgICAgICBpZiAo
IW1fcGVuZGluZ0V4Y2VwdGlvbnMpCisgICAgICAgICAgICBtX3BlbmRpbmdFeGNlcHRpb25zID0g
bmV3IFZlY3RvcjxPd25QdHI8UGVuZGluZ0V4Y2VwdGlvbj4gPigpOworICAgICAgICBtX3BlbmRp
bmdFeGNlcHRpb25zLT5hcHBlbmQobmV3IFBlbmRpbmdFeGNlcHRpb24oZXJyb3JNZXNzYWdlLCBs
aW5lTnVtYmVyLCBzb3VyY2VVUkwsIGNhbGxTdGFjaykpOworICAgICAgICByZXR1cm47CisgICAg
fQorCisgICAgLy8gRmlyc3QgcmVwb3J0IHRoZSBvcmlnaW5hbCBleGNlcHRpb24gYW5kIG9ubHkg
dGhlbiBhbGwgdGhlIG5lc3RlZCBvbmVzLgorICAgIGlmICghZGlzcGF0Y2hFcnJvckV2ZW50KGVy
cm9yTWVzc2FnZSwgbGluZU51bWJlciwgc291cmNlVVJMKSkKKyAgICAgICAgbG9nRXhjZXB0aW9u
VG9Db25zb2xlKGVycm9yTWVzc2FnZSwgbGluZU51bWJlciwgc291cmNlVVJMLCBjYWxsU3RhY2su
Z2V0KCkpOworCisgICAgaWYgKCFtX3BlbmRpbmdFeGNlcHRpb25zKQorICAgICAgICByZXR1cm47
CisKKyAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IG1fcGVuZGluZ0V4Y2VwdGlvbnMtPnNpemUo
KTsgaSsrKSB7CisgICAgICAgIFBlbmRpbmdFeGNlcHRpb24qIGUgPSBtX3BlbmRpbmdFeGNlcHRp
b25zLT5hdChpKS5nZXQoKTsKKyAgICAgICAgbG9nRXhjZXB0aW9uVG9Db25zb2xlKGUtPm1fZXJy
b3JNZXNzYWdlLCBlLT5tX2xpbmVOdW1iZXIsIGUtPm1fc291cmNlVVJMLCBlLT5tX2NhbGxTdGFj
ay5nZXQoKSk7CisgICAgfQorICAgIG1fcGVuZGluZ0V4Y2VwdGlvbnMuY2xlYXIoKTsKK30KKwor
Ym9vbCBTY3JpcHRFeGVjdXRpb25Db250ZXh0OjpkaXNwYXRjaEVycm9yRXZlbnQoY29uc3QgU3Ry
aW5nJiBlcnJvck1lc3NhZ2UsIGludCBsaW5lTnVtYmVyLCBjb25zdCBTdHJpbmcmIHNvdXJjZVVS
TCkKK3sKKyAgICBFdmVudFRhcmdldCogdGFyZ2V0ID0gZXJyb3JFdmVudFRhcmdldCgpOworICAg
IGlmICghdGFyZ2V0KQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICBBU1NFUlQoIW1faW5E
aXNwYXRjaEVycm9yRXZlbnQpOworICAgIG1faW5EaXNwYXRjaEVycm9yRXZlbnQgPSB0cnVlOwor
ICAgIFJlZlB0cjxFcnJvckV2ZW50PiBlcnJvckV2ZW50ID0gRXJyb3JFdmVudDo6Y3JlYXRlKGVy
cm9yTWVzc2FnZSwgc291cmNlVVJMLCBsaW5lTnVtYmVyKTsKKyAgICB0YXJnZXQtPmRpc3BhdGNo
RXZlbnQoZXJyb3JFdmVudCk7CisgICAgbV9pbkRpc3BhdGNoRXJyb3JFdmVudCA9IGZhbHNlOwor
ICAgIHJldHVybiBlcnJvckV2ZW50LT5kZWZhdWx0UHJldmVudGVkKCk7Cit9CisKIHZvaWQgU2Ny
aXB0RXhlY3V0aW9uQ29udGV4dDo6YWRkVGltZW91dChpbnQgdGltZW91dElkLCBET01UaW1lciog
dGltZXIpCiB7CiAgICAgQVNTRVJUKCFtX3RpbWVvdXRzLmNvbnRhaW5zKHRpbWVvdXRJZCkpOwpk
aWZmIC0tZ2l0IGEvV2ViQ29yZS9kb20vU2NyaXB0RXhlY3V0aW9uQ29udGV4dC5oIGIvV2ViQ29y
ZS9kb20vU2NyaXB0RXhlY3V0aW9uQ29udGV4dC5oCmluZGV4IGI0NmEwZjRmNWRkZDJiMGVlNTk0
NzlhNzlkMDNlN2JmZDM1ZTk2NDguLmViNDVkYmE2N2YwNmIxNTNmMjAzNGY5ZDg0NGMwMWVmOGYy
MTdlNDkgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvZG9tL1NjcmlwdEV4ZWN1dGlvbkNvbnRleHQuaAor
KysgYi9XZWJDb3JlL2RvbS9TY3JpcHRFeGVjdXRpb25Db250ZXh0LmgKQEAgLTMzLDYgKzMzLDcg
QEAKICNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgogI2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+CiAj
aW5jbHVkZSA8d3RmL0hhc2hTZXQuaD4KKyNpbmNsdWRlIDx3dGYvT3duUHRyLmg+CiAjaW5jbHVk
ZSA8d3RmL1Bhc3NPd25QdHIuaD4KICNpbmNsdWRlIDx3dGYvUGFzc1JlZlB0ci5oPgogI2luY2x1
ZGUgPHd0Zi9SZWZQdHIuaD4KQEAgLTUyLDExICs1MywxNCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7
CiAgICAgY2xhc3MgRGF0YWJhc2VUaHJlYWQ7CiAjZW5kaWYKICAgICBjbGFzcyBET01UaW1lcjsK
KyAgICBjbGFzcyBFdmVudExpc3RlbmVyOworICAgIGNsYXNzIEV2ZW50VGFyZ2V0OwogI2lmIEVO
QUJMRShCTE9CKSB8fCBFTkFCTEUoRklMRV9TWVNURU0pCiAgICAgY2xhc3MgRmlsZVRocmVhZDsK
ICNlbmRpZgogICAgIGNsYXNzIE1lc3NhZ2VQb3J0OwogICAgIGNsYXNzIFNlY3VyaXR5T3JpZ2lu
OworICAgIGNsYXNzIFNjcmlwdENhbGxTdGFjazsKICNpZiBFTkFCTEUoSU5TUEVDVE9SKQogICAg
IGNsYXNzIEluc3BlY3RvckNvbnRyb2xsZXI7CiAjZW5kaWYKQEAgLTkxLDcgKzk1LDcgQEAgbmFt
ZXNwYWNlIFdlYkNvcmUgewogICAgICAgICB2aXJ0dWFsIEluc3BlY3RvckNvbnRyb2xsZXIqIGlu
c3BlY3RvckNvbnRyb2xsZXIoKSBjb25zdCB7IHJldHVybiAwOyB9CiAjZW5kaWYKIAotICAgICAg
ICB2aXJ0dWFsIHZvaWQgcmVwb3J0RXhjZXB0aW9uKGNvbnN0IFN0cmluZyYgZXJyb3JNZXNzYWdl
LCBpbnQgbGluZU51bWJlciwgY29uc3QgU3RyaW5nJiBzb3VyY2VVUkwpID0gMDsKKyAgICAgICAg
dmlydHVhbCB2b2lkIHJlcG9ydEV4Y2VwdGlvbihjb25zdCBTdHJpbmcmIGVycm9yTWVzc2FnZSwg
aW50IGxpbmVOdW1iZXIsIGNvbnN0IFN0cmluZyYgc291cmNlVVJMLCBQYXNzT3duUHRyPFNjcmlw
dENhbGxTdGFjaz4pOwogICAgICAgICB2aXJ0dWFsIHZvaWQgYWRkTWVzc2FnZShNZXNzYWdlU291
cmNlLCBNZXNzYWdlVHlwZSwgTWVzc2FnZUxldmVsLCBjb25zdCBTdHJpbmcmIG1lc3NhZ2UsIHVu
c2lnbmVkIGxpbmVOdW1iZXIsIGNvbnN0IFN0cmluZyYgc291cmNlVVJMKSA9IDA7CiAKICAgICAg
ICAgLy8gQWN0aXZlIG9iamVjdHMgYXJlIG5vdCBnYXJiYWdlIGNvbGxlY3RlZCBldmVuIGlmIGlu
YWNjZXNzaWJsZSwgZS5nLiBiZWNhdXNlIHRoZWlyIGFjdGl2aXR5IG1heSByZXN1bHQgaW4gY2Fs
bGJhY2tzIGJlaW5nIGludm9rZWQuCkBAIC0xNTQsNiArMTU4LDEwIEBAIG5hbWVzcGFjZSBXZWJD
b3JlIHsKICAgICAgICAgdmlydHVhbCBjb25zdCBLVVJMJiB2aXJ0dWFsVVJMKCkgY29uc3QgPSAw
OwogICAgICAgICB2aXJ0dWFsIEtVUkwgdmlydHVhbENvbXBsZXRlVVJMKGNvbnN0IFN0cmluZyYp
IGNvbnN0ID0gMDsKIAorICAgICAgICB2aXJ0dWFsIEV2ZW50VGFyZ2V0KiBlcnJvckV2ZW50VGFy
Z2V0KCkgPSAwOworICAgICAgICB2aXJ0dWFsIHZvaWQgbG9nRXhjZXB0aW9uVG9Db25zb2xlKGNv
bnN0IFN0cmluZyYgZXJyb3JNZXNzYWdlLCBpbnQgbGluZU51bWJlciwgY29uc3QgU3RyaW5nJiBz
b3VyY2VVUkwsIFNjcmlwdENhbGxTdGFjayopID0gMDsKKyAgICAgICAgYm9vbCBkaXNwYXRjaEVy
cm9yRXZlbnQoY29uc3QgU3RyaW5nJiBlcnJvck1lc3NhZ2UsIGludCBsaW5lTnVtYmVyLCBjb25z
dCBTdHJpbmcmIHNvdXJjZVVSTCk7CisKICAgICAgICAgdm9pZCBjbG9zZU1lc3NhZ2VQb3J0cygp
OwogCiAgICAgICAgIFJlZlB0cjxTZWN1cml0eU9yaWdpbj4gbV9zZWN1cml0eU9yaWdpbjsKQEAg
LTE3OSw2ICsxODcsMTYgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogI2lmIEVOQUJMRShCTE9CKSB8
fCBFTkFCTEUoRklMRV9TWVNURU0pCiAgICAgICAgIFJlZlB0cjxGaWxlVGhyZWFkPiBtX2ZpbGVU
aHJlYWQ7CiAjZW5kaWYKKyAgICAgICAgYm9vbCBtX2luRGlzcGF0Y2hFcnJvckV2ZW50OworICAg
ICAgICBjbGFzcyBQZW5kaW5nRXhjZXB0aW9uIDogcHVibGljIE5vbmNvcHlhYmxlIHsKKyAgICAg
ICAgcHVibGljOgorICAgICAgICAgICAgUGVuZGluZ0V4Y2VwdGlvbihjb25zdCBTdHJpbmcmIGVy
cm9yTWVzc2FnZSwgaW50IGxpbmVOdW1iZXIsIGNvbnN0IFN0cmluZyYgc291cmNlVVJMLCBQYXNz
T3duUHRyPFNjcmlwdENhbGxTdGFjaz4gY2FsbFN0YWNrKTsKKyAgICAgICAgICAgIFN0cmluZyBt
X2Vycm9yTWVzc2FnZTsKKyAgICAgICAgICAgIGludCBtX2xpbmVOdW1iZXI7CisgICAgICAgICAg
ICBTdHJpbmcgbV9zb3VyY2VVUkw7CisgICAgICAgICAgICBPd25QdHI8U2NyaXB0Q2FsbFN0YWNr
PiBtX2NhbGxTdGFjazsKKyAgICAgICAgfTsKKyAgICAgICAgT3duUHRyPFZlY3RvcjxPd25QdHI8
UGVuZGluZ0V4Y2VwdGlvbj4gPiA+IG1fcGVuZGluZ0V4Y2VwdGlvbnM7CiAgICAgfTsKIAogfSAv
LyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS93b3JrZXJzL0RlZmF1bHRT
aGFyZWRXb3JrZXJSZXBvc2l0b3J5LmNwcCBiL1dlYkNvcmUvd29ya2Vycy9EZWZhdWx0U2hhcmVk
V29ya2VyUmVwb3NpdG9yeS5jcHAKaW5kZXggNGE4ZTk0NzMxYmFhNjIwZGJlOWRmNWQzNDA5Nzdi
MDk5YjBhMDY0NC4uMGIxYWZlNTJjMGM0ODgzYjM3NmU0NGI2NjU0MDU5M2UzNDZiM2M4ZSAxMDA2
NDQKLS0tIGEvV2ViQ29yZS93b3JrZXJzL0RlZmF1bHRTaGFyZWRXb3JrZXJSZXBvc2l0b3J5LmNw
cAorKysgYi9XZWJDb3JlL3dvcmtlcnMvRGVmYXVsdFNoYXJlZFdvcmtlclJlcG9zaXRvcnkuY3Bw
CkBAIC00Miw2ICs0Miw3IEBACiAjaW5jbHVkZSAiTWVzc2FnZVBvcnQuaCIKICNpbmNsdWRlICJO
b3RJbXBsZW1lbnRlZC5oIgogI2luY2x1ZGUgIlBsYXRmb3JtU3RyaW5nLmgiCisjaW5jbHVkZSAi
U2NyaXB0Q2FsbFN0YWNrLmgiCiAjaW5jbHVkZSAiU2VjdXJpdHlPcmlnaW4uaCIKICNpbmNsdWRl
ICJTZWN1cml0eU9yaWdpbkhhc2guaCIKICNpbmNsdWRlICJTaGFyZWRXb3JrZXIuaCIKQEAgLTE1
NSw3ICsxNTYsNyBAQCB2b2lkIFNoYXJlZFdvcmtlclByb3h5Ojpwb3N0VGFza0Zvck1vZGVUb1dv
cmtlckNvbnRleHQoUGFzc093blB0cjxTY3JpcHRFeGVjdXRpbwogCiBzdGF0aWMgdm9pZCBwb3N0
RXhjZXB0aW9uVGFzayhTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0LCBjb25zdCBTdHJp
bmcmIGVycm9yTWVzc2FnZSwgaW50IGxpbmVOdW1iZXIsIGNvbnN0IFN0cmluZyYgc291cmNlVVJM
KQogewotICAgIGNvbnRleHQtPnJlcG9ydEV4Y2VwdGlvbihlcnJvck1lc3NhZ2UsIGxpbmVOdW1i
ZXIsIHNvdXJjZVVSTCk7CisgICAgY29udGV4dC0+cmVwb3J0RXhjZXB0aW9uKGVycm9yTWVzc2Fn
ZSwgbGluZU51bWJlciwgc291cmNlVVJMLCAwKTsKIH0KIAogdm9pZCBTaGFyZWRXb3JrZXJQcm94
eTo6cG9zdEV4Y2VwdGlvblRvV29ya2VyT2JqZWN0KGNvbnN0IFN0cmluZyYgZXJyb3JNZXNzYWdl
LCBpbnQgbGluZU51bWJlciwgY29uc3QgU3RyaW5nJiBzb3VyY2VVUkwpCmRpZmYgLS1naXQgYS9X
ZWJDb3JlL3dvcmtlcnMvV29ya2VyQ29udGV4dC5jcHAgYi9XZWJDb3JlL3dvcmtlcnMvV29ya2Vy
Q29udGV4dC5jcHAKaW5kZXggNDc4YjM2MGY5ZDg0MzUzOTZmOGY4MmUxNDcwZTE5NmJmZjg4Y2Ey
OS4uMzY5MGJhMTc4MzZjODFlZjI2ZDdiODlkN2M5ZmRlMGNlODg4Yjc0ZSAxMDA2NDQKLS0tIGEv
V2ViQ29yZS93b3JrZXJzL1dvcmtlckNvbnRleHQuY3BwCisrKyBiL1dlYkNvcmUvd29ya2Vycy9X
b3JrZXJDb250ZXh0LmNwcApAQCAtMTAxLDcgKzEwMSw2IEBAIFdvcmtlckNvbnRleHQ6Oldvcmtl
ckNvbnRleHQoY29uc3QgS1VSTCYgdXJsLCBjb25zdCBTdHJpbmcmIHVzZXJBZ2VudCwgV29ya2Vy
VGhyCiAgICAgLCBtX3NjcmlwdChuZXcgV29ya2VyU2NyaXB0Q29udHJvbGxlcih0aGlzKSkKICAg
ICAsIG1fdGhyZWFkKHRocmVhZCkKICAgICAsIG1fY2xvc2luZyhmYWxzZSkKLSAgICAsIG1fcmVw
b3J0aW5nRXhjZXB0aW9uKGZhbHNlKQogewogICAgIHNldFNlY3VyaXR5T3JpZ2luKFNlY3VyaXR5
T3JpZ2luOjpjcmVhdGUodXJsKSk7CiB9CkBAIC0yNTgsMjAgKzI1NywxNCBAQCB2b2lkIFdvcmtl
ckNvbnRleHQ6OmltcG9ydFNjcmlwdHMoY29uc3QgVmVjdG9yPFN0cmluZz4mIHVybHMsIEV4Y2Vw
dGlvbkNvZGUmIGVjKQogICAgIH0KIH0KIAotdm9pZCBXb3JrZXJDb250ZXh0OjpyZXBvcnRFeGNl
cHRpb24oY29uc3QgU3RyaW5nJiBlcnJvck1lc3NhZ2UsIGludCBsaW5lTnVtYmVyLCBjb25zdCBT
dHJpbmcmIHNvdXJjZVVSTCkKK0V2ZW50VGFyZ2V0KiBXb3JrZXJDb250ZXh0OjplcnJvckV2ZW50
VGFyZ2V0KCkKIHsKLSAgICBib29sIGVycm9ySGFuZGxlZCA9IGZhbHNlOwotICAgIGlmICghbV9y
ZXBvcnRpbmdFeGNlcHRpb24pIHsKLSAgICAgICAgaWYgKG9uZXJyb3IoKSkgewotICAgICAgICAg
ICAgbV9yZXBvcnRpbmdFeGNlcHRpb24gPSB0cnVlOwotICAgICAgICAgICAgUmVmUHRyPEVycm9y
RXZlbnQ+IGVycm9yRXZlbnQoRXJyb3JFdmVudDo6Y3JlYXRlKGVycm9yTWVzc2FnZSwgc291cmNl
VVJMLCBsaW5lTnVtYmVyKSk7Ci0gICAgICAgICAgICBvbmVycm9yKCktPmhhbmRsZUV2ZW50KHRo
aXMsIGVycm9yRXZlbnQuZ2V0KCkpOwotICAgICAgICAgICAgZXJyb3JIYW5kbGVkID0gZXJyb3JF
dmVudC0+ZGVmYXVsdFByZXZlbnRlZCgpOwotICAgICAgICAgICAgbV9yZXBvcnRpbmdFeGNlcHRp
b24gPSBmYWxzZTsKLSAgICAgICAgfQotICAgIH0KLSAgICBpZiAoIWVycm9ySGFuZGxlZCkKLSAg
ICAgICAgdGhyZWFkKCktPndvcmtlclJlcG9ydGluZ1Byb3h5KCkucG9zdEV4Y2VwdGlvblRvV29y
a2VyT2JqZWN0KGVycm9yTWVzc2FnZSwgbGluZU51bWJlciwgc291cmNlVVJMKTsKKyAgICByZXR1
cm4gdGhpczsKK30KKwordm9pZCBXb3JrZXJDb250ZXh0Ojpsb2dFeGNlcHRpb25Ub0NvbnNvbGUo
Y29uc3QgU3RyaW5nJiBlcnJvck1lc3NhZ2UsIGludCBsaW5lTnVtYmVyLCBjb25zdCBTdHJpbmcm
IHNvdXJjZVVSTCwgU2NyaXB0Q2FsbFN0YWNrKikKK3sKKyAgICB0aHJlYWQoKS0+d29ya2VyUmVw
b3J0aW5nUHJveHkoKS5wb3N0RXhjZXB0aW9uVG9Xb3JrZXJPYmplY3QoZXJyb3JNZXNzYWdlLCBs
aW5lTnVtYmVyLCBzb3VyY2VVUkwpOwogfQogCiB2b2lkIFdvcmtlckNvbnRleHQ6OmFkZE1lc3Nh
Z2UoTWVzc2FnZVNvdXJjZSBzb3VyY2UsIE1lc3NhZ2VUeXBlIHR5cGUsIE1lc3NhZ2VMZXZlbCBs
ZXZlbCwgY29uc3QgU3RyaW5nJiBtZXNzYWdlLCB1bnNpZ25lZCBsaW5lTnVtYmVyLCBjb25zdCBT
dHJpbmcmIHNvdXJjZVVSTCkKZGlmZiAtLWdpdCBhL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJDb250
ZXh0LmggYi9XZWJDb3JlL3dvcmtlcnMvV29ya2VyQ29udGV4dC5oCmluZGV4IDA4ODA0ZDJhMGVk
Zjg2MWVhZTZmNzNjMGY2YjI2NzNmZDQ2NTg2OTAuLjFiNzNhZDc2ZmVjZmVkNDVlNWNkYzgyYTkz
NmYxODI2ZTliNzc0ZjIgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJDb250ZXh0
LmgKKysrIGIvV2ViQ29yZS93b3JrZXJzL1dvcmtlckNvbnRleHQuaApAQCAtMTAwLDcgKzEwMCw2
IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgdm9pZCBjbGVhckludGVydmFsKGludCB0
aW1lb3V0SWQpOwogCiAgICAgICAgIC8vIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQKLSAgICAgICAg
dmlydHVhbCB2b2lkIHJlcG9ydEV4Y2VwdGlvbihjb25zdCBTdHJpbmcmIGVycm9yTWVzc2FnZSwg
aW50IGxpbmVOdW1iZXIsIGNvbnN0IFN0cmluZyYgc291cmNlVVJMKTsKICAgICAgICAgdmlydHVh
bCB2b2lkIGFkZE1lc3NhZ2UoTWVzc2FnZVNvdXJjZSwgTWVzc2FnZVR5cGUsIE1lc3NhZ2VMZXZl
bCwgY29uc3QgU3RyaW5nJiBtZXNzYWdlLCB1bnNpZ25lZCBsaW5lTnVtYmVyLCBjb25zdCBTdHJp
bmcmIHNvdXJjZVVSTCk7CiAKICNpZiBFTkFCTEUoTk9USUZJQ0FUSU9OUykKQEAgLTE3NCw2ICsx
NzMsOSBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIHZpcnR1YWwgY29uc3QgS1VSTCYg
dmlydHVhbFVSTCgpIGNvbnN0OwogICAgICAgICB2aXJ0dWFsIEtVUkwgdmlydHVhbENvbXBsZXRl
VVJMKGNvbnN0IFN0cmluZyYpIGNvbnN0OwogCisgICAgICAgIHZpcnR1YWwgRXZlbnRUYXJnZXQq
IGVycm9yRXZlbnRUYXJnZXQoKTsKKyAgICAgICAgdmlydHVhbCB2b2lkIGxvZ0V4Y2VwdGlvblRv
Q29uc29sZShjb25zdCBTdHJpbmcmIGVycm9yTWVzc2FnZSwgaW50IGxpbmVOdW1iZXIsIGNvbnN0
IFN0cmluZyYgc291cmNlVVJMLCBTY3JpcHRDYWxsU3RhY2sqKTsKKwogICAgICAgICBLVVJMIG1f
dXJsOwogICAgICAgICBTdHJpbmcgbV91c2VyQWdlbnQ7CiAKQEAgLTE4Nyw3ICsxODksNiBAQCBu
YW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIG11dGFibGUgUmVmUHRyPE5vdGlmaWNhdGlvbkNl
bnRlcj4gbV9ub3RpZmljYXRpb25zOwogI2VuZGlmCiAgICAgICAgIGJvb2wgbV9jbG9zaW5nOwot
ICAgICAgICBib29sIG1fcmVwb3J0aW5nRXhjZXB0aW9uOwogICAgICAgICBFdmVudFRhcmdldERh
dGEgbV9ldmVudFRhcmdldERhdGE7CiAKICAgICAgICAgSGFzaFNldDxPYnNlcnZlcio+IG1fd29y
a2VyT2JzZXJ2ZXJzOwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS93b3JrZXJzL1dvcmtlck1lc3NhZ2lu
Z1Byb3h5LmNwcCBiL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJNZXNzYWdpbmdQcm94eS5jcHAKaW5k
ZXggMTA3MDBjNjRlZjY5ZTVhNWYzN2QwMWFmYjI0NDM2ZjVjNWZjZTFhMS4uMDY4NzAxNDg4NmQ5
NTJlOWI4ZWU4Y2E1MDk1Y2I2YzQ1NTMxNjMzNSAxMDA2NDQKLS0tIGEvV2ViQ29yZS93b3JrZXJz
L1dvcmtlck1lc3NhZ2luZ1Byb3h5LmNwcAorKysgYi9XZWJDb3JlL3dvcmtlcnMvV29ya2VyTWVz
c2FnaW5nUHJveHkuY3BwCkBAIC00MCw2ICs0MCw3IEBACiAjaW5jbHVkZSAiRXhjZXB0aW9uQ29k
ZS5oIgogI2luY2x1ZGUgIkluc3BlY3RvckNvbnRyb2xsZXIuaCIKICNpbmNsdWRlICJNZXNzYWdl
RXZlbnQuaCIKKyNpbmNsdWRlICJTY3JpcHRDYWxsU3RhY2suaCIKICNpbmNsdWRlICJTY3JpcHRF
eGVjdXRpb25Db250ZXh0LmgiCiAjaW5jbHVkZSAiV29ya2VyLmgiCiAKQEAgLTEzMSw3ICsxMzIs
NyBAQCBwcml2YXRlOgogCiAgICAgICAgIGJvb2wgZXJyb3JIYW5kbGVkID0gIXdvcmtlck9iamVj
dC0+ZGlzcGF0Y2hFdmVudChFcnJvckV2ZW50OjpjcmVhdGUobV9lcnJvck1lc3NhZ2UsIG1fc291
cmNlVVJMLCBtX2xpbmVOdW1iZXIpKTsKICAgICAgICAgaWYgKCFlcnJvckhhbmRsZWQpCi0gICAg
ICAgICAgICBjb250ZXh0LT5yZXBvcnRFeGNlcHRpb24obV9lcnJvck1lc3NhZ2UsIG1fbGluZU51
bWJlciwgbV9zb3VyY2VVUkwpOworICAgICAgICAgICAgY29udGV4dC0+cmVwb3J0RXhjZXB0aW9u
KG1fZXJyb3JNZXNzYWdlLCBtX2xpbmVOdW1iZXIsIG1fc291cmNlVVJMLCAwKTsKICAgICB9CiAK
ICAgICBTdHJpbmcgbV9lcnJvck1lc3NhZ2U7CmRpZmYgLS1naXQgYS9XZWJLaXQvY2hyb21pdW0v
Q2hhbmdlTG9nIGIvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwppbmRleCA3ODIwYjFhNTcxZmE2
NmY4N2Y5NWIzZWVmMWMzNzhjMDljN2I0ODQ3Li40ZmYxODJlNDhmODk3YWY4NDM2MGQ4YTI0NDBj
OGQzNzJkYWExNjRkIDEwMDY0NAotLS0gYS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCisrKyBi
L1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxOCBAQAorMjAxMC0xMC0xOSAg
YWxleEB3ZWJraXQub3JnICA8YWxleEB3ZWJraXQub3JnQDI2OGY0NWNjLWNkMDktMDQxMC1hYjNj
LWQ1MjY5MWI0ZGJmYz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICBXZWJDb3JlIGRvZXNuJ3QgZmlyZSB3aW5kb3cub25lcnJvciBldmVudCB3aGVuIHVu
Y2F1Z2h0IEphdmFTY3JpcHQgZXhjZXB0aW9ucyBhcmUgdGhyb3duCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04NTE5CisKKyAgICAgICAgVW5jYXVnaHQg
ZXhjZXB0aW9ucyBhcmUgcHJvcGFnYXRlZCB0byB3aW5kb3cub25lcnJvciBoYW5kZXIgaWYgb25l
IGlzIHByZXNlbnQuCisgICAgICAgIFRoZSBoYW5kbGVyIGlzIGV4cGVjdGVkIHRvIGJlIGEgZnVu
Y3Rpb24gYWNjZXB0aW5nIHRocmVlIGFyZ3VtZW50czogZXJyb3IgbWVzc2FnZSwKKyAgICAgICAg
cmVzb3VyY2UgdXJsIGFuZCBsaW5lIG51bWJlciB3aGVyZSB0aGUgZXhjZXB0aW9uIG9jY3VyZWQu
CisKKyAgICAgICAgKiBzcmMvV2ViV29ya2VyQ2xpZW50SW1wbC5jcHA6CisgICAgICAgIChXZWJL
aXQ6OldlYldvcmtlckNsaWVudEltcGw6OnBvc3RFeGNlcHRpb25Ub1dvcmtlck9iamVjdCk6Cisg
ICAgICAgIChXZWJLaXQ6OldlYldvcmtlckNsaWVudEltcGw6OnBvc3RFeGNlcHRpb25Ub1dvcmtl
ck9iamVjdFRhc2spOgorCiAyMDEwLTEwLTE3ICBQYXZlbCBGZWxkbWFuICA8cGZlbGRtYW5AY2hy
b21pdW0ub3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5IFl1cnkgU2VtaWtoYXRza3kuCmRpZmYg
LS1naXQgYS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYldvcmtlckNsaWVudEltcGwuY3BwIGIvV2Vi
S2l0L2Nocm9taXVtL3NyYy9XZWJXb3JrZXJDbGllbnRJbXBsLmNwcAppbmRleCAxODI4MmUzNDE2
YjczZGUyZWNkMDQ2MzJkNmJjZTc1MmZkZDMyOWE2Li5lM2NlMmJhNDRkYTVlZTYzMWRhM2U3ZjYz
NjQ1YzdlZTE5YTRhOTM2IDEwMDY0NAotLS0gYS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYldvcmtl
ckNsaWVudEltcGwuY3BwCisrKyBiL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViV29ya2VyQ2xpZW50
SW1wbC5jcHAKQEAgLTQxLDYgKzQxLDcgQEAKICNpbmNsdWRlICJNZXNzYWdlRXZlbnQuaCIKICNp
bmNsdWRlICJNZXNzYWdlUG9ydC5oIgogI2luY2x1ZGUgIk1lc3NhZ2VQb3J0Q2hhbm5lbC5oIgor
I2luY2x1ZGUgIlNjcmlwdENhbGxTdGFjay5oIgogI2luY2x1ZGUgIlNjcmlwdEV4ZWN1dGlvbkNv
bnRleHQuaCIKICNpbmNsdWRlICJXb3JrZXIuaCIKICNpbmNsdWRlICJXb3JrZXJDb250ZXh0Lmgi
CkBAIC0yNDcsNyArMjQ4LDcgQEAgdm9pZCBXZWJXb3JrZXJDbGllbnRJbXBsOjpwb3N0RXhjZXB0
aW9uVG9Xb3JrZXJPYmplY3QoY29uc3QgV2ViU3RyaW5nJiBlcnJvck1lc3MKICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzb3Vy
Y2VVUkwsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgbGluZU51bWJlcikpOwogICAgIGlmICh1bmhhbmRsZWQpCi0gICAgICAg
IG1fc2NyaXB0RXhlY3V0aW9uQ29udGV4dC0+cmVwb3J0RXhjZXB0aW9uKGVycm9yTWVzc2FnZSwg
bGluZU51bWJlciwgc291cmNlVVJMKTsKKyAgICAgICAgbV9zY3JpcHRFeGVjdXRpb25Db250ZXh0
LT5yZXBvcnRFeGNlcHRpb24oZXJyb3JNZXNzYWdlLCBsaW5lTnVtYmVyLCBzb3VyY2VVUkwsIDAp
OwogfQogCiB2b2lkIFdlYldvcmtlckNsaWVudEltcGw6OnBvc3RDb25zb2xlTWVzc2FnZVRvV29y
a2VyT2JqZWN0KGludCBkZXN0aW5hdGlvbiwKQEAgLTM4Myw3ICszODQsOCBAQCB2b2lkIFdlYldv
cmtlckNsaWVudEltcGw6OnBvc3RFeGNlcHRpb25Ub1dvcmtlck9iamVjdFRhc2soCiAgICAgaWYg
KCFoYW5kbGVkKQogICAgICAgICB0aGlzUHRyLT5tX3NjcmlwdEV4ZWN1dGlvbkNvbnRleHQtPnJl
cG9ydEV4Y2VwdGlvbihlcnJvck1lc3NhZ2UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpbmVOdW1iZXIsCi0gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNvdXJjZVVSTCk7
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIHNvdXJjZVVSTCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgMCk7CiB9CiAKIHZvaWQgV2ViV29ya2VyQ2xpZW50SW1wbDo6cG9z
dENvbnNvbGVNZXNzYWdlVG9Xb3JrZXJPYmplY3RUYXNrKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQq
IGNvbnRleHQsCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>71164</attachid>
            <date>2010-10-19 07:01:57 -0700</date>
            <delta_ts>2010-12-10 08:15:46 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-8519-20101019180154.patch</filename>
            <type>text/plain</type>
            <size>110732</size>
            <attacher name="Yury Semikhatsky">yurys</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCAzMzA0N2Q1OGIwMjY1OWRjZDlkMDA4ZDVmMWMxM2FlNmE0ZGUzOTIyLi5hN2E2OWUx
YzBlMzUwYzI4ZmJlNWMxNzkyY2IxMWZmZTcyMjIzYzVlIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNjMgQEAK
KzIwMTAtMTAtMTkgIGFsZXhAd2Via2l0Lm9yZyAgPGFsZXhAd2Via2l0Lm9yZ0AyNjhmNDVjYy1j
ZDA5LTA0MTAtYWIzYy1kNTI2OTFiNGRiZmM+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgV2ViQ29yZSBkb2Vzbid0IGZpcmUgd2luZG93Lm9uZXJyb3Ig
ZXZlbnQgd2hlbiB1bmNhdWdodCBKYXZhU2NyaXB0IGV4Y2VwdGlvbnMgYXJlIHRocm93bgorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODUxOQorCisgICAg
ICAgIFVuY2F1Z2h0IGV4Y2VwdGlvbnMgYXJlIHByb3BhZ2F0ZWQgdG8gd2luZG93Lm9uZXJyb3Ig
aGFuZGVyIGlmIG9uZSBpcyBwcmVzZW50LgorICAgICAgICBUaGUgaGFuZGxlciBpcyBleHBlY3Rl
ZCB0byBiZSBhIGZ1bmN0aW9uIGFjY2VwdGluZyB0aHJlZSBhcmd1bWVudHM6IGVycm9yIG1lc3Nh
Z2UsCisgICAgICAgIHJlc291cmNlIHVybCBhbmQgbGluZSBudW1iZXIgd2hlcmUgdGhlIGV4Y2Vw
dGlvbiBvY2N1cmVkLgorCisgICAgICAgICogZmFzdC9ldmVudHMvcmVzb3VyY2VzL3dpbmRvdy1v
bmVycm9yLmpzOiBBZGRlZC4KKyAgICAgICAgKHRocm93RXhjZXB0aW9uKToKKyAgICAgICAgKiBm
YXN0L2V2ZW50cy93aW5kb3ctb25lcnJvcjEtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAg
KiBmYXN0L2V2ZW50cy93aW5kb3ctb25lcnJvcjEuaHRtbDogQWRkZWQuCisgICAgICAgICogZmFz
dC9ldmVudHMvd2luZG93LW9uZXJyb3IxMC1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAq
IGZhc3QvZXZlbnRzL3dpbmRvdy1vbmVycm9yMTAuaHRtbDogQWRkZWQuCisgICAgICAgICogZmFz
dC9ldmVudHMvd2luZG93LW9uZXJyb3IxMS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAq
IGZhc3QvZXZlbnRzL3dpbmRvdy1vbmVycm9yMTEuaHRtbDogQWRkZWQuCisgICAgICAgICogZmFz
dC9ldmVudHMvd2luZG93LW9uZXJyb3IyLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICog
ZmFzdC9ldmVudHMvd2luZG93LW9uZXJyb3IyLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3Qv
ZXZlbnRzL3dpbmRvdy1vbmVycm9yMy1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZh
c3QvZXZlbnRzL3dpbmRvdy1vbmVycm9yMy5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2V2
ZW50cy93aW5kb3ctb25lcnJvcjQtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0
L2V2ZW50cy93aW5kb3ctb25lcnJvcjQuaHRtbDogQWRkZWQuCisgICAgICAgICogZmFzdC9ldmVu
dHMvd2luZG93LW9uZXJyb3I1LWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC9l
dmVudHMvd2luZG93LW9uZXJyb3I1Lmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZXZlbnRz
L3dpbmRvdy1vbmVycm9yNi1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZXZl
bnRzL3dpbmRvdy1vbmVycm9yNi5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2V2ZW50cy93
aW5kb3ctb25lcnJvcjctZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2V2ZW50
cy93aW5kb3ctb25lcnJvcjcuaHRtbDogQWRkZWQuCisgICAgICAgICogZmFzdC9ldmVudHMvd2lu
ZG93LW9uZXJyb3I4LWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC9ldmVudHMv
d2luZG93LW9uZXJyb3I4Lmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZXZlbnRzL3dpbmRv
dy1vbmVycm9yOS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZXZlbnRzL3dp
bmRvdy1vbmVycm9yOS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L3dvcmtlcnMvd29ya2Vy
LXNjcmlwdC1lcnJvci1leHBlY3RlZC50eHQ6CisgICAgICAgICogaHR0cC90ZXN0cy9zZWN1cml0
eS9yZXNvdXJjZXMvb25lcnJvci1pZnJhbWUuaHRtbDogQWRkZWQuCisgICAgICAgICogaHR0cC90
ZXN0cy9zZWN1cml0eS93aW5kb3ctb25lcnJvci1leGNlcHRpb24taW4taWZyYW1lLWV4cGVjdGVk
LnR4dDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9zZWN1cml0eS93aW5kb3ctb25lcnJv
ci1leGNlcHRpb24taW4taWZyYW1lLmh0bWw6IEFkZGVkLgorICAgICAgICAqIHBsYXRmb3JtL2No
cm9taXVtLXdpbi9mYXN0L3dvcmtlcnMvd29ya2VyLXNjcmlwdC1lcnJvci1leHBlY3RlZC50eHQ6
CisgICAgICAgICogcGxhdGZvcm0vY2hyb21pdW0vZmFzdC9ldmVudHMvd2luZG93LW9uZXJyb3Ix
LWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogcGxhdGZvcm0vY2hyb21pdW0vZmFzdC9l
dmVudHMvd2luZG93LW9uZXJyb3IxMC1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIHBs
YXRmb3JtL2Nocm9taXVtL2Zhc3QvZXZlbnRzL3dpbmRvdy1vbmVycm9yMTEtZXhwZWN0ZWQudHh0
OiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS9mYXN0L2V2ZW50cy93aW5kb3ct
b25lcnJvcjItZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1
bS9mYXN0L2V2ZW50cy93aW5kb3ctb25lcnJvcjMtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAg
ICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS9mYXN0L2V2ZW50cy93aW5kb3ctb25lcnJvcjQtZXhwZWN0
ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS9mYXN0L2V2ZW50cy93
aW5kb3ctb25lcnJvcjUtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9j
aHJvbWl1bS9mYXN0L2V2ZW50cy93aW5kb3ctb25lcnJvcjYtZXhwZWN0ZWQudHh0OiBBZGRlZC4K
KyAgICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS9mYXN0L2V2ZW50cy93aW5kb3ctb25lcnJvcjct
ZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS9mYXN0L2V2
ZW50cy93aW5kb3ctb25lcnJvcjgtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBwbGF0
Zm9ybS9jaHJvbWl1bS9mYXN0L2V2ZW50cy93aW5kb3ctb25lcnJvcjktZXhwZWN0ZWQudHh0OiBB
ZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS9odHRwL3Rlc3RzL3NlY3VyaXR5L3dp
bmRvdy1vbmVycm9yLWV4Y2VwdGlvbi1pbi1pZnJhbWUtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAg
ICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS91c2Vyc2NyaXB0cy93aW5kb3ctb25lcnJvci1mb3It
aXNvbGF0ZWQtd29ybGQtMS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIHBsYXRmb3Jt
L2Nocm9taXVtL3VzZXJzY3JpcHRzL3dpbmRvdy1vbmVycm9yLWZvci1pc29sYXRlZC13b3JsZC0y
LWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogdXNlcnNjcmlwdHMvd2luZG93LW9uZXJy
b3ItZm9yLWlzb2xhdGVkLXdvcmxkLTEtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiB1
c2Vyc2NyaXB0cy93aW5kb3ctb25lcnJvci1mb3ItaXNvbGF0ZWQtd29ybGQtMS5odG1sOiBBZGRl
ZC4KKyAgICAgICAgKiB1c2Vyc2NyaXB0cy93aW5kb3ctb25lcnJvci1mb3ItaXNvbGF0ZWQtd29y
bGQtMi1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIHVzZXJzY3JpcHRzL3dpbmRvdy1v
bmVycm9yLWZvci1pc29sYXRlZC13b3JsZC0yLmh0bWw6IEFkZGVkLgorICAgICAgICAqIHVzZXJz
Y3JpcHRzL3dpbmRvdy1vbmVycm9yLWZvci1pc29sYXRlZC13b3JsZC5odG1sOiBBZGRlZC4KKwog
MjAxMC0xMC0xOCAgQWRhbSBCYXJ0aCAgPGFiYXJ0aEB3ZWJraXQub3JnPgogCiAgICAgICAgIEFk
ZCBtb3JlIFNraXBwZWQgbGlzdCBlbnRyaWVzIGJlY2F1c2UgV2ViUCByZXF1aXJlcyBhbiBleHRl
cm5hbCBkZWNvZGVyCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9yZXNvdXJj
ZXMvd2luZG93LW9uZXJyb3IuanMgYi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9yZXNvdXJjZXMv
d2luZG93LW9uZXJyb3IuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMzQ0NTc0YmI2NTNjM2ZlZGYyMzE1MTZlMWQw
Yjk5NjAzODliYWY2MAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRz
L3Jlc291cmNlcy93aW5kb3ctb25lcnJvci5qcwpAQCAtMCwwICsxLDMgQEAKK2Z1bmN0aW9uIHRo
cm93RXhjZXB0aW9uKCkgeworICAgIHRocm93IG5ldyBFcnJvcigiQW4gZXhjZXB0aW9uIik7Cit9
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy93aW5kb3ctb25lcnJvcjEtZXhw
ZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvd2luZG93LW9uZXJyb3IxLWV4cGVj
dGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi5mZTUxYjcyMmYwYjM3MDlhZWNkNGI4MTVjZDIwNzA5NWMwMjQ2
NTQ1Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvd2luZG93LW9u
ZXJyb3IxLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDMgQEAKK1RoaXMgcGFnZSB0ZXN0cyBzZXR0
aW5nIG9uZXJyb3IgaGFuZGxlcnMgdGhyb3VnaCB0aGUgRE9NLiBJZiBpdCBwYXNzZXMsIHlvdSB3
aWxsIHNlZSAiUEFTUyIgbWVzc2FnZXMgYmVsb3cuQnVnIDg1MTkuCisKK1BBU1M6IGNhdWdodCBn
bG9iYWwgZXJyb3I6IFJlZmVyZW5jZUVycm9yOiBDYW4ndCBmaW5kIHZhcmlhYmxlOiBoYWhhaGFf
Z29vZF9sdWNrX2ZpbmRpbmdfbWUgYXQgd2luZG93LW9uZXJyb3IxLmh0bWw6MjUKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3dpbmRvdy1vbmVycm9yMS5odG1sIGIvTGF5b3V0
VGVzdHMvZmFzdC9ldmVudHMvd2luZG93LW9uZXJyb3IxLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNTlkMjQ5
NTg2ODg1NTc0YWUwOGIzNjVhYzIxYWQxMTFjYjczYTVmMwotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL2Zhc3QvZXZlbnRzL3dpbmRvdy1vbmVycm9yMS5odG1sCkBAIC0wLDAgKzEsMzUg
QEAKKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0PgoraWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJv
bGxlcikKKyAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7CisKK2Z1bmN0aW9u
IHByaW50KG1lc3NhZ2UsIGNvbG9yKQoreworICAgIHZhciBwYXJhZ3JhcGggPSBkb2N1bWVudC5j
cmVhdGVFbGVtZW50KCJkaXYiKTsKKyAgICBwYXJhZ3JhcGguYXBwZW5kQ2hpbGQoZG9jdW1lbnQu
Y3JlYXRlVGV4dE5vZGUobWVzc2FnZSkpOworICAgIHBhcmFncmFwaC5zdHlsZS5mb250RmFtaWx5
ID0gIm1vbm9zcGFjZSI7CisgICAgaWYgKGNvbG9yKQorICAgICAgICBwYXJhZ3JhcGguc3R5bGUu
Y29sb3IgPSBjb2xvcjsKKyAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY29uc29sZSIpLmFw
cGVuZENoaWxkKHBhcmFncmFwaCk7Cit9CisKK2Z1bmN0aW9uIHRlc3QoKQoreworICAgIC8vIG11
c3QgYmUgbGFzdCBiZWNhdXNlIHRoZSBleGNlcHRpb24gZW5kcyBKYXZhU2NyaXB0IGV4ZWN1dGlv
bgorICAgIHdpbmRvdy5vbmVycm9yID0gZnVuY3Rpb24gKGVycm9yLCB1cmwsIGxpbmUpIHsKKyAg
ICAgICAgdXJsID0gdXJsID8gdXJsLm1hdGNoKCAvW15cL10rXC8/JC8gKVswXSA6IHVybDsKKyAg
ICAgICAgcHJpbnQoIlBBU1M6IGNhdWdodCBnbG9iYWwgZXJyb3I6ICIgKyBlcnJvciArICIgYXQg
IiArIHVybCArICI6IiArIGxpbmUsICJncmVlbiIpOworICAgICAgICByZXR1cm4gZmFsc2U7Cisg
ICAgfTsKKyAgICBoYWhhaGFfZ29vZF9sdWNrX2ZpbmRpbmdfbWUoKTsgLy8gY2F1Z2h0IGJ5IHdp
bmRvdy5vbmVycm9yCit9Cis8L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5IG9ubG9hZD0idGVzdCgp
OyI+Cis8cD5UaGlzIHBhZ2UgdGVzdHMgc2V0dGluZyBvbmVycm9yIGhhbmRsZXJzIHRocm91Z2gg
dGhlIERPTS4gSWYgaXQgcGFzc2VzLCB5b3Ugd2lsbAorICAgc2VlICJQQVNTIiBtZXNzYWdlcyBi
ZWxvdy48YSBocmVmPSJodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODUx
OSI+QnVnIDg1MTk8L2E+LjwvcD4KKzxocj4KKzxkaXYgaWQ9J2NvbnNvbGUnPjwvZGl2PgorPC9i
b2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvd2luZG93
LW9uZXJyb3IxMC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy93aW5kb3ct
b25lcnJvcjEwLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iZmY1NjM2NTQxMWYxZDlmMDc5N2Jk
YjAwODc1MTE3NjY5YjQ5NGQxCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9l
dmVudHMvd2luZG93LW9uZXJyb3IxMC1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxMSBAQAorVGVz
dCB0aGF0ICJlcnJvciIgZXZlbnQgbGlzdGVuZXIgYWRkZWQgd2l0aCB3aW5kb3cuYWRkRXZlbnRM
aXN0ZW5lciBpcyBpbnZva2VkIGZvciB1bmNhdWNodCBleGNlcHRpb25zLiBCdWcgODUxOS4KKwor
ZXZlbnQgcGFzc2VkIHRvIHRoZSBsaXN0ZW5lciBpcyB0aGUgc2FtZSBhcyB3aW5kb3cuZXZlbnQ6
IHRydWUKK0V2ZW50IGRldGFpbHM6Cit0eXBlOiBlcnJvcgorcGhhc2U6IDIKK2N1cnJlbnRUYXJn
ZXQgaXMgdGhlIGdsb2JhbCBvYmplY3Q6IHRydWUKK21lc3NhZ2U6IEVycm9yOiBNeSBmYXVsdC4K
K2ZpbGVuYW1lOiB3aW5kb3ctb25lcnJvcjEwLmh0bWwKK2xpbmVubzogMjkKKwpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvd2luZG93LW9uZXJyb3IxMC5odG1sIGIvTGF5b3V0
VGVzdHMvZmFzdC9ldmVudHMvd2luZG93LW9uZXJyb3IxMC5odG1sCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjI2ZWQw
MThmZGYxOGEzNDczODUzZTFjMTA2ZGE4YzVlZDk2MDIxZmUKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy9mYXN0L2V2ZW50cy93aW5kb3ctb25lcnJvcjEwLmh0bWwKQEAgLTAsMCArMSwz
MyBAQAorPGh0bWw+Cis8Ym9keT4KKzxwPlRlc3QgdGhhdCAiZXJyb3IiIGV2ZW50IGxpc3RlbmVy
IGFkZGVkIHdpdGggd2luZG93LmFkZEV2ZW50TGlzdGVuZXIgaXMgaW52b2tlZCBmb3IgdW5jYXVj
aHQgZXhjZXB0aW9ucy4gPGEgaHJlZj0iaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTg1MTkiPkJ1ZyA4NTE5PC9hPi48L3A+Cis8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4K
KzxzY3JpcHQ+CitpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQorICAgIGxheW91dFRl
c3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKKworZnVuY3Rpb24gbG9nKG1zZykgeworICAgIGRv
Y3VtZW50LmdldEVsZW1lbnRCeUlkKCJjb25zb2xlIikuaW5uZXJIVE1MICs9IG1zZyArICI8YnI+
IjsKK30KKworZnVuY3Rpb24gbGFzdFBhdGhDb21wb25lbnQodXJsKSB7CisgICAgcmV0dXJuIHVy
bCA/IHVybC5tYXRjaCggL1teXC9dK1wvPyQvIClbMF0gOiB1cmw7Cit9CisKK3dpbmRvdy5hZGRF
dmVudExpc3RlbmVyKCJlcnJvciIsIGZ1bmN0aW9uKGUpIHsKKyAgICBsb2coImV2ZW50IHBhc3Nl
ZCB0byB0aGUgbGlzdGVuZXIgaXMgdGhlIHNhbWUgYXMgd2luZG93LmV2ZW50OiAiICsgKHdpbmRv
dy5ldmVudCA9PT0gZSkpOworICAgIGxvZygiRXZlbnQgZGV0YWlsczoiKTsKKyAgICBsb2coInR5
cGU6ICIgKyBlLnR5cGUpOworICAgIGxvZygicGhhc2U6ICIgKyBlLmV2ZW50UGhhc2UpCisgICAg
bG9nKCJjdXJyZW50VGFyZ2V0IGlzIHRoZSBnbG9iYWwgb2JqZWN0OiAiICsgKGUuY3VycmVudFRh
cmdldCA9PT0gd2luZG93KSk7CisgICAgbG9nKCJtZXNzYWdlOiAiICsgZS5tZXNzYWdlKTsKKyAg
ICBsb2coImZpbGVuYW1lOiAiICsgbGFzdFBhdGhDb21wb25lbnQoZS5maWxlbmFtZSkpOworICAg
IGxvZygibGluZW5vOiAiICsgZS5saW5lbm8pOworICAgIGUucHJldmVudERlZmF1bHQoKTsKK30s
IGZhbHNlKTsKKwordGhyb3cgbmV3IEVycm9yKCJNeSBmYXVsdC4iKTsKKworPC9zY3JpcHQ+Cis8
L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy93aW5k
b3ctb25lcnJvcjExLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3dpbmRv
dy1vbmVycm9yMTEtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjk2ZTIwY2MzZWMzYjEwYjc1M2Ni
YWNkNmQwYmEwOTQzZGNkZWUyNjQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0
L2V2ZW50cy93aW5kb3ctb25lcnJvcjExLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDQgQEAKK1Rl
c3QgdGhhdCB3aW5kb3cub25lcnJvciBpcyBjYWxsZWQgb24gd2luZG93IG9iamVjdC4gQnVnIDg1
MTkuCisKK01haW4gZnJhbWUgd2luZG93Lm9uZXJyb3I6IEVycm9yOiBBbiBleGNlcHRpb24gYXQg
d2luZG93LW9uZXJyb3IuanM6MgorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50
cy93aW5kb3ctb25lcnJvcjExLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy93aW5kb3ct
b25lcnJvcjExLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNzY1NWZhNzI3ZDhiNTYyYTBiZTQzZWFlMjNkMWMw
NjQxMDQyZTQ1MwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3dp
bmRvdy1vbmVycm9yMTEuaHRtbApAQCAtMCwwICsxLDI4IEBACis8aHRtbD4KKzxoZWFkPgorPHNj
cmlwdCBzcmM9InJlc291cmNlcy93aW5kb3ctb25lcnJvci5qcyI+Cis8L3NjcmlwdD4KKzwvaGVh
ZD4KKzxib2R5PgorPHA+VGVzdCB0aGF0IHdpbmRvdy5vbmVycm9yIGlzIGNhbGxlZCBvbiB3aW5k
b3cgb2JqZWN0LiA8YSBocmVmPSJodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9ODUxOSI+QnVnIDg1MTk8L2E+LjwvcD4KKzxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgorPHNj
cmlwdD4KK2lmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCisgICAgbGF5b3V0VGVzdENv
bnRyb2xsZXIuZHVtcEFzVGV4dCgpOworCitmdW5jdGlvbiBsb2cobXNnKSB7CisgICAgZG9jdW1l
bnQuZ2V0RWxlbWVudEJ5SWQoImNvbnNvbGUiKS5pbm5lckhUTUwgKz0gbXNnICsgIjxicj4iOwor
fQorCit3aW5kb3cub25lcnJvciA9IGZ1bmN0aW9uKG1zZywgdXJsLCBsaW5lKQoreworICAgIHVy
bCA9IHVybCA/IHVybC5tYXRjaCggL1teXC9dK1wvPyQvIClbMF0gOiB1cmw7CisgICAgbG9nKCJN
YWluIGZyYW1lIHdpbmRvdy5vbmVycm9yOiAiICsgbXNnICsgIiBhdCAiICsgdXJsICsgIjoiICsg
bGluZSk7CisgICAgcmV0dXJuIGZhbHNlOworfQorCit0aHJvd0V4Y2VwdGlvbigpOworCis8L3Nj
cmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZXZl
bnRzL3dpbmRvdy1vbmVycm9yMi1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50
cy93aW5kb3ctb25lcnJvcjItZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjkzYTJkM2YxM2IxZDFi
ODc5NjRmNjM4YzZmNWJmNzI2ZDkxMjc2NzgKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy9mYXN0L2V2ZW50cy93aW5kb3ctb25lcnJvcjItZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNiBA
QAorVGVzdCB0aGF0IHVuY2F1Z2h0IGV4Y2VwdGlvbnMgd2lsbCBiZSByZXBvcnRlZCB0byB0aGUg
d2luZG93Lm9uZXJyb3IgaGFuZGxlci4gQnVnIDg1MTkuCisKK01haW4gZnJhbWUgd2luZG93Lm9u
ZXJyb3I6IEVycm9yOiBJbmxpbmUgc2NyaXB0IGV4Y2VwdGlvbiBhdCB3aW5kb3ctb25lcnJvcjIu
aHRtbDozNQorTWFpbiBmcmFtZSB3aW5kb3cub25lcnJvcjogRXhjZXB0aW9uIGluIG9ubG9hZCBh
dCB1bmRlZmluZWQ6MAorTWFpbiBmcmFtZSB3aW5kb3cub25lcnJvcjogRXJyb3I6IEV4Y2VwdGlv
biBpbiBzZXRUaW1lb3V0IGF0IHdpbmRvdy1vbmVycm9yMi5odG1sOjI5CisKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3dpbmRvdy1vbmVycm9yMi5odG1sIGIvTGF5b3V0VGVz
dHMvZmFzdC9ldmVudHMvd2luZG93LW9uZXJyb3IyLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZGI5ZmI3NWVj
NDA2MmFjN2U0ZjNiZjU2MDNlNGE1OGJmZDU0ZTNmNwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL2Zhc3QvZXZlbnRzL3dpbmRvdy1vbmVycm9yMi5odG1sCkBAIC0wLDAgKzEsNDEgQEAK
KzxodG1sPgorPGJvZHkgb25sb2FkPSJ0aHJvdyAnRXhjZXB0aW9uIGluIG9ubG9hZCc7Ij4KKzxw
PlRlc3QgdGhhdCB1bmNhdWdodCBleGNlcHRpb25zIHdpbGwgYmUgcmVwb3J0ZWQgdG8gdGhlIHdp
bmRvdy5vbmVycm9yIGhhbmRsZXIuIDxhIGhyZWY9Imh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD04NTE5Ij5CdWcgODUxOTwvYT4uPC9wPgorPGRpdiBpZD0icmVzdWx0Ij48
L2Rpdj4KKzxzY3JpcHQ+CitpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKSB7CisgICAg
bGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOworICAgIGxheW91dFRlc3RDb250cm9s
bGVyLndhaXRVbnRpbERvbmUoKTsKK30KKworZnVuY3Rpb24gbG9nKG1zZykgeworICAgIGRvY3Vt
ZW50LmdldEVsZW1lbnRCeUlkKCJyZXN1bHQiKS5pbm5lckhUTUwgKz0gbXNnICsgIjxicj4iOwor
fQorCit2YXIgdW5oYW5kbGVkRXJyb3JDb3VudCA9IDA7Cit3aW5kb3cub25lcnJvciA9IGZ1bmN0
aW9uKG1zZywgdXJsLCBsaW5lKQoreworICAgIHVybCA9IHVybCA/IHVybC5tYXRjaCggL1teXC9d
K1wvPyQvIClbMF0gOiB1cmw7CisgICAgbG9nKCJNYWluIGZyYW1lIHdpbmRvdy5vbmVycm9yOiAi
ICsgbXNnICsgIiBhdCAiICsgdXJsICsgIjoiICsgbGluZSk7CisgICAgCisgICAgaWYgKCsrdW5o
YW5kbGVkRXJyb3JDb3VudCA9PT0gMyAmJiB3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCisg
ICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLm5vdGlmeURvbmUoKTsKKworICAgIHJldHVybiBm
YWxzZTsKK30KKworZnVuY3Rpb24gZGVsYXllZFRocm93RXhjZXB0aW9uKCkKK3sKKyAgICB0aHJv
dyBuZXcgRXJyb3IoIkV4Y2VwdGlvbiBpbiBzZXRUaW1lb3V0Iik7Cit9CitzZXRUaW1lb3V0KGRl
bGF5ZWRUaHJvd0V4Y2VwdGlvbiwgMCk7CisKK2Z1bmN0aW9uIHRocm93RXhjZXB0aW9uKCkKK3sK
KyAgICB0aHJvdyBuZXcgRXJyb3IoIklubGluZSBzY3JpcHQgZXhjZXB0aW9uIik7Cit9Cit0aHJv
d0V4Y2VwdGlvbigpOworCis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3dpbmRvdy1vbmVycm9yMy1leHBlY3RlZC50eHQgYi9M
YXlvdXRUZXN0cy9mYXN0L2V2ZW50cy93aW5kb3ctb25lcnJvcjMtZXhwZWN0ZWQudHh0Cm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLjcwMjVkYmI5N2EyY2Y0MjlkZjJhODExOTA5MWNhNzZlN2E4MDY3MzEKLS0tIC9kZXYv
bnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy93aW5kb3ctb25lcnJvcjMtZXhwZWN0
ZWQudHh0CkBAIC0wLDAgKzEsNCBAQAorWW91IHNob3VsZCBzZWUgYSBtZXNzYWdlIGlmIHdpbmRv
dy5vbmVycm9yIGlzIHdvcmtpbmcgcHJvcGVybHkgZm9yIHRoaXMgdGVzdC5CdWcgODUxOS4KKwor
RXJyb3IgY2F1Z2h0IHN1Y2Nlc3NmdWxseTogUmVmZXJlbmNlRXJyb3I6IENhbid0IGZpbmQgdmFy
aWFibGU6IHVua25vd25PYmplY3QgRmlsZTogd2luZG93LW9uZXJyb3IzLmh0bWwgTGluZTogMTYK
KwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvd2luZG93LW9uZXJyb3IzLmh0
bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy93aW5kb3ctb25lcnJvcjMuaHRtbApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi5lZTI4OTNmMGM3ZDk5MzIxNzZjMGVhMzFlYTRmMGQyMTBjZWYxM2NmCi0tLSAvZGV2L251
bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvd2luZG93LW9uZXJyb3IzLmh0bWwKQEAg
LTAsMCArMSwyMyBAQAorPHNjcmlwdD4KK2lmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIp
CisgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOworCitmdW5jdGlvbiBsb2co
bXNnKSB7CisgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNvbnNvbGUiKS5pbm5lckhUTUwg
Kz0gbXNnICsgIjxicj4iOworfQorCitmdW5jdGlvbiB0ZXN0MSgpCit7CisgICAgd2luZG93Lm9u
ZXJyb3IgPSBmdW5jdGlvbiAoZXJyb3IsIHVybCwgbGluZSkgeworICAgICAgICB1cmwgPSB1cmwg
PyB1cmwubWF0Y2goIC9bXlwvXStcLz8kLyApWzBdIDogdXJsOworICAgICAgICBsb2coIkVycm9y
IGNhdWdodCBzdWNjZXNzZnVsbHk6ICIgKyBlcnJvciArICJcbkZpbGU6ICIgKyB1cmwgKyAiXG5M
aW5lOiAiICsgbGluZSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH07CisgICAgdW5rbm93
bk9iamVjdC51bmtub3duUHJvcGVydHkrKzsKK30KKzwvc2NyaXB0PgorPGJvZHkgb25sb2FkPSJ0
ZXN0MSgpOyI+Cis8cD5Zb3Ugc2hvdWxkIHNlZSBhIG1lc3NhZ2UgaWYgd2luZG93Lm9uZXJyb3Ig
aXMgd29ya2luZyBwcm9wZXJseSBmb3IgdGhpcyB0ZXN0LjxhIGhyZWY9Imh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04NTE5Ij5CdWcgODUxOTwvYT4uPC9wPgorPGhyPgor
PGRpdiBpZD0nY29uc29sZSc+PC9kaXY+Cis8L2JvZHk+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9mYXN0L2V2ZW50cy93aW5kb3ctb25lcnJvcjQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMv
ZmFzdC9ldmVudHMvd2luZG93LW9uZXJyb3I0LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yNmFm
OGExZWE5YzgyZDFkZGIyMGJmYTA3MWJkYTdmOGM2NzdiNzY2Ci0tLSAvZGV2L251bGwKKysrIGIv
TGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvd2luZG93LW9uZXJyb3I0LWV4cGVjdGVkLnR4dApAQCAt
MCwwICsxLDQgQEAKK1lvdSBzaG91bGQgc2VlIGEgbG9nIHJlY29yZCBpZiB3aW5kb3cub25lcnJv
ciBpcyB3b3JraW5nIHByb3Blcmx5IGZvciB0aGlzIHRlc3QuQnVnIDg1MTkuCisKK0Vycm9yIGNh
dWdodCBzdWNjZXNzZnVsbHk6IFJlZmVyZW5jZUVycm9yOiBMZWZ0IHNpZGUgb2YgYXNzaWdubWVu
dCBpcyBub3QgYSByZWZlcmVuY2UuIEZpbGU6IHVuZGVmaW5lZCBMaW5lOiAxCisKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3dpbmRvdy1vbmVycm9yNC5odG1sIGIvTGF5b3V0
VGVzdHMvZmFzdC9ldmVudHMvd2luZG93LW9uZXJyb3I0Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYzUxODg3
ZGFmNjhmMTkwNjBlNzA2NDAxODQ4OWU1OWFkYjk3OGRlZgotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL2Zhc3QvZXZlbnRzL3dpbmRvdy1vbmVycm9yNC5odG1sCkBAIC0wLDAgKzEsMjMg
QEAKKzxzY3JpcHQ+CitpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQorICAgIGxheW91
dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKKworZnVuY3Rpb24gbG9nKG1zZykgeworICAg
IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjb25zb2xlIikuaW5uZXJIVE1MICs9IG1zZyArICI8
YnI+IjsKK30KKworZnVuY3Rpb24gdGVzdDEoKQoreworICAgIHdpbmRvdy5vbmVycm9yID0gZnVu
Y3Rpb24gKGVycm9yLCB1cmwsIGxpbmUpIHsKKyAgICAgICAgdXJsID0gdXJsID8gdXJsLm1hdGNo
KCAvW15cL10rXC8/JC8gKVswXSA6IHVybDsKKyAgICAgICAgbG9nKCJFcnJvciBjYXVnaHQgc3Vj
Y2Vzc2Z1bGx5OiAiICsgZXJyb3IgKyAiXG5GaWxlOiAiICsgdXJsICsgIlxuTGluZTogIiArIGxp
bmUpCisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9OworICAgIGV2YWwoIjE9MiIpOworfQor
PC9zY3JpcHQ+Cis8Ym9keSBvbmxvYWQ9InRlc3QxKCk7Ij4KKzxwPllvdSBzaG91bGQgc2VlIGEg
bG9nIHJlY29yZCBpZiB3aW5kb3cub25lcnJvciBpcyB3b3JraW5nIHByb3Blcmx5IGZvciB0aGlz
IHRlc3QuPGEgaHJlZj0iaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTg1
MTkiPkJ1ZyA4NTE5PC9hPi48L3A+Cis8aHI+Cis8ZGl2IGlkPSdjb25zb2xlJz48L2Rpdj4KKzwv
Ym9keT4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3dpbmRvdy1vbmVycm9y
NS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy93aW5kb3ctb25lcnJvcjUt
ZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjNlYzdmNWVmYzFkMDg2YTY1YzMyMzA0MjIxM2VmODIw
YTcxOTcxNTQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy93aW5k
b3ctb25lcnJvcjUtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNCBAQAorVGVzdCB0aGF0IHdpbmRv
dy5vbmVycm9yIGlzIGludm9rZWQgZm9yIHN5bnRheCBlcnJvciBpbiBldmFsLiBZb3Ugc2hvdWxk
IHNlZSBhIGxvZyByZWNvcmQgaWYgd2luZG93Lm9uZXJyb3IgaXMgd29ya2luZyBwcm9wZXJseSBm
b3IgdGhpcyB0ZXN0LkJ1ZyA4NTE5LgorCitFcnJvciBjYXVnaHQgc3VjY2Vzc2Z1bGx5OiBTeW50
YXhFcnJvcjogUGFyc2UgZXJyb3IgRmlsZTogdW5kZWZpbmVkIExpbmU6IDEKKwpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvd2luZG93LW9uZXJyb3I1Lmh0bWwgYi9MYXlvdXRU
ZXN0cy9mYXN0L2V2ZW50cy93aW5kb3ctb25lcnJvcjUuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45MzJkNDM4
YTU2ZWE4ODJmYjExN2IyMjEzOTVjNGEwZDgxOTk2NDRlCi0tLSAvZGV2L251bGwKKysrIGIvTGF5
b3V0VGVzdHMvZmFzdC9ldmVudHMvd2luZG93LW9uZXJyb3I1Lmh0bWwKQEAgLTAsMCArMSwyMyBA
QAorPHNjcmlwdD4KK2lmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCisgICAgbGF5b3V0
VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOworCitmdW5jdGlvbiBsb2cobXNnKSB7CisgICAg
ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNvbnNvbGUiKS5pbm5lckhUTUwgKz0gbXNnICsgIjxi
cj4iOworfQorCitmdW5jdGlvbiB0ZXN0MSgpCit7CisgICAgd2luZG93Lm9uZXJyb3IgPSBmdW5j
dGlvbiAoZXJyb3IsIHVybCwgbGluZSkgeworICAgICAgICB1cmwgPSB1cmwgPyB1cmwubWF0Y2go
IC9bXlwvXStcLz8kLyApWzBdIDogdXJsOworICAgICAgICBsb2coIkVycm9yIGNhdWdodCBzdWNj
ZXNzZnVsbHk6ICIgKyBlcnJvciArICJcbkZpbGU6ICIgKyB1cmwgKyAiXG5MaW5lOiAiICsgbGlu
ZSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH07CisgICAgZXZhbCgiYSgiKTsKK30KKzwv
c2NyaXB0PgorPGJvZHkgb25sb2FkPSJ0ZXN0MSgpOyI+Cis8cD5UZXN0IHRoYXQgd2luZG93Lm9u
ZXJyb3IgaXMgaW52b2tlZCBmb3Igc3ludGF4IGVycm9yIGluIGV2YWwuIFlvdSBzaG91bGQgc2Vl
IGEgbG9nIHJlY29yZCBpZiB3aW5kb3cub25lcnJvciBpcyB3b3JraW5nIHByb3Blcmx5IGZvciB0
aGlzIHRlc3QuPGEgaHJlZj0iaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTg1MTkiPkJ1ZyA4NTE5PC9hPi48L3A+Cis8aHI+Cis8ZGl2IGlkPSdjb25zb2xlJz48L2Rpdj4K
KzwvYm9keT4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3dpbmRvdy1vbmVy
cm9yNi1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy93aW5kb3ctb25lcnJv
cjYtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmU3YzI3YmI3NzUyMTFiNTEwMDEyNzY1MzY5ZGMw
ZTEzOTM0MjkwOTAKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy93
aW5kb3ctb25lcnJvcjYtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNCBAQAorVGVzdCB0aGF0IHN5
bnRheCBlcnJvciB3aWxsIGJlIHJlcG9ydGVkIHRvIHRoZSB3aW5kb3cub25lcnJvciBoYW5kbGVy
LiBCdWcgODUxOS4KKworTWFpbiBmcmFtZSB3aW5kb3cub25lcnJvcjogU3ludGF4RXJyb3I6IFBh
cnNlIGVycm9yIGF0IHdpbmRvdy1vbmVycm9yNi5odG1sOjIyCisKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2Zhc3QvZXZlbnRzL3dpbmRvdy1vbmVycm9yNi5odG1sIGIvTGF5b3V0VGVzdHMvZmFz
dC9ldmVudHMvd2luZG93LW9uZXJyb3I2Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMTk3ODQzNjg5NzMyNDEx
MzhhOWU2MGI3YjQ1NmQ1MWUzMGIxYWU0MAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3Rz
L2Zhc3QvZXZlbnRzL3dpbmRvdy1vbmVycm9yNi5odG1sCkBAIC0wLDAgKzEsMjYgQEAKKzxodG1s
PgorPGJvZHk+Cis8cD5UZXN0IHRoYXQgc3ludGF4IGVycm9yIHdpbGwgYmUgcmVwb3J0ZWQgdG8g
dGhlIHdpbmRvdy5vbmVycm9yIGhhbmRsZXIuIDxhIGhyZWY9Imh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD04NTE5Ij5CdWcgODUxOTwvYT4uPC9wPgorPGRpdiBpZD0iY29u
c29sZSI+PC9kaXY+Cis8c2NyaXB0PgoraWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikK
KyAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7CisKK2Z1bmN0aW9uIGxvZyht
c2cpIHsKKyAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY29uc29sZSIpLmlubmVySFRNTCAr
PSBtc2cgKyAiPGJyPiI7Cit9CisKK3dpbmRvdy5vbmVycm9yID0gZnVuY3Rpb24obXNnLCB1cmws
IGxpbmUpCit7CisgICAgdXJsID0gdXJsID8gdXJsLm1hdGNoKCAvW15cL10rXC8/JC8gKVswXSA6
IHVybDsKKyAgICBsb2coIk1haW4gZnJhbWUgd2luZG93Lm9uZXJyb3I6ICIgKyBtc2cgKyAiIGF0
ICIgKyB1cmwgKyAiOiIgKyBsaW5lKTsKKyAgICByZXR1cm4gZmFsc2U7Cit9Cis8L3NjcmlwdD4K
KzxzY3JpcHQ+CisKK2EpIC8vIHN5bnRheCBlcnJvcgorCis8L3NjcmlwdD4KKzwvYm9keT4KKzwv
aHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3dpbmRvdy1vbmVycm9y
Ny1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy93aW5kb3ctb25lcnJvcjct
ZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjVkMjJlN2U3NTU2OGEyNDk1OWNiZTYzZDlmYWFlMTRm
ZGFiY2YzNjAKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy93aW5k
b3ctb25lcnJvcjctZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNiBAQAorQ09OU09MRSBNRVNTQUdF
OiBsaW5lIDIwOiBFcnJvcjogT3JpZ2luYWwgZXJyb3IKK0NPTlNPTEUgTUVTU0FHRTogbGluZSAx
NzogRXJyb3I6IE5lc3RlZCBlcnJvcgorVGVzdCB0aGF0IGV4Y2VwdGlvbiBpbiB3aW5kb3cub25l
cnJvciB3b24ndCBsZWFkIHRvIHJlY3Vyc2l2ZSB3aW5kb3cub25lcnJvciBjYWxsLiBCdWcgODUx
OS4KKworTWFpbiBmcmFtZSB3aW5kb3cub25lcnJvcjogRXJyb3I6IE9yaWdpbmFsIGVycm9yIGF0
IHdpbmRvdy1vbmVycm9yNy5odG1sOjIwCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3Qv
ZXZlbnRzL3dpbmRvdy1vbmVycm9yNy5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvd2lu
ZG93LW9uZXJyb3I3Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZjY2NTY4NjZjYzE2YzgzZmVhMTg2NjNjMDg3
MGYzNmVjMDhiY2NhNAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRz
L3dpbmRvdy1vbmVycm9yNy5odG1sCkBAIC0wLDAgKzEsMjQgQEAKKzxodG1sPgorPGJvZHk+Cis8
cD5UZXN0IHRoYXQgZXhjZXB0aW9uIGluIHdpbmRvdy5vbmVycm9yIHdvbid0IGxlYWQgdG8gcmVj
dXJzaXZlIHdpbmRvdy5vbmVycm9yIGNhbGwuIDxhIGhyZWY9Imh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD04NTE5Ij5CdWcgODUxOTwvYT4uPC9wPgorPGRpdiBpZD0iY29u
c29sZSI+PC9kaXY+Cis8c2NyaXB0PgoraWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikK
KyAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7CisKK2Z1bmN0aW9uIGxvZyht
c2cpIHsKKyAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY29uc29sZSIpLmlubmVySFRNTCAr
PSBtc2cgKyAiPGJyPiI7Cit9CisKK3dpbmRvdy5vbmVycm9yID0gZnVuY3Rpb24obXNnLCB1cmws
IGxpbmUpCit7CisgICAgdXJsID0gdXJsID8gdXJsLm1hdGNoKCAvW15cL10rXC8/JC8gKVswXSA6
IHVybDsKKyAgICBsb2coIk1haW4gZnJhbWUgd2luZG93Lm9uZXJyb3I6ICIgKyBtc2cgKyAiIGF0
ICIgKyB1cmwgKyAiOiIgKyBsaW5lKTsKKyAgICB0aHJvdyBuZXcgRXJyb3IoIk5lc3RlZCBlcnJv
ciIpOworfQorCit0aHJvdyBuZXcgRXJyb3IoIk9yaWdpbmFsIGVycm9yIik7CisKKzwvc2NyaXB0
PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMv
d2luZG93LW9uZXJyb3I4LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3dp
bmRvdy1vbmVycm9yOC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZWZjNjMwOGQ4Mjk1ZjU1Mzhm
MzhkNmYzOGYwYjU0NmYzODhhNmE0OAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zh
c3QvZXZlbnRzL3dpbmRvdy1vbmVycm9yOC1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw1IEBACitU
ZXN0IHRoYXQgd2luZG93Lm9uZXJyb3IgaXMgY2FsbGVkIG9uIHdpbmRvdyBvYmplY3QuIEJ1ZyA4
NTE5LgorCitNYWluIGZyYW1lIHdpbmRvdy5vbmVycm9yOiAyMDEwIGF0IHVuZGVmaW5lZDowCitQ
QVNTRUQ6IHRoaXMgPT09IHdpbmRvdworCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2V2
ZW50cy93aW5kb3ctb25lcnJvcjguaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3dpbmRv
dy1vbmVycm9yOC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmJhZGU1Mzg4NmYyZmQ3Mzk5NTZiNjEwOTQ2Nzcz
MThhNWEyMWE4ODkKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy93
aW5kb3ctb25lcnJvcjguaHRtbApAQCAtMCwwICsxLDI4IEBACis8aHRtbD4KKzxib2R5PgorPHA+
VGVzdCB0aGF0IHdpbmRvdy5vbmVycm9yIGlzIGNhbGxlZCBvbiB3aW5kb3cgb2JqZWN0LiA8YSBo
cmVmPSJodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODUxOSI+QnVnIDg1
MTk8L2E+LjwvcD4KKzxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgorPHNjcmlwdD4KK2lmICh3aW5k
b3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCisgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFz
VGV4dCgpOworCitmdW5jdGlvbiBsb2cobXNnKSB7CisgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5
SWQoImNvbnNvbGUiKS5pbm5lckhUTUwgKz0gbXNnICsgIjxicj4iOworfQorCit3aW5kb3cub25l
cnJvciA9IGZ1bmN0aW9uKG1zZywgdXJsLCBsaW5lKQoreworICAgIHVybCA9IHVybCA/IHVybC5t
YXRjaCggL1teXC9dK1wvPyQvIClbMF0gOiB1cmw7CisgICAgbG9nKCJNYWluIGZyYW1lIHdpbmRv
dy5vbmVycm9yOiAiICsgbXNnICsgIiBhdCAiICsgdXJsICsgIjoiICsgbGluZSk7CisgICAgaWYg
KHRoaXMgPT09IHdpbmRvdykgCisgICAgICAgIGxvZygiUEFTU0VEOiB0aGlzID09PSB3aW5kb3ci
KTsKKyAgICBlbHNlCisgICAgICAgIGxvZygiRkFJTEVEOiB0aGlzID09PSB3aW5kb3ciKTsKKyAg
ICByZXR1cm4gZmFsc2U7Cit9CisKK3Rocm93IDIwMTA7CisKKzwvc2NyaXB0PgorPC9ib2R5Pgor
PC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvd2luZG93LW9uZXJy
b3I5LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3dpbmRvdy1vbmVycm9y
OS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOTQzMTZkM2YxMDdlOWNiNGY0OTk5NDhiMTlmZDll
MmU0YWUzZGFkNgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3dp
bmRvdy1vbmVycm9yOS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw4IEBACitUZXN0IHRoYXQgd2hl
biB3aW5kb3cub25lcnJvciBoYW5kbGVyIGlzIGNhbGxlZCwgd2luZG93LmV2ZW50IGlzIHRoZSBj
b3JyZXNwb25kaW5nIEVycm9yRXZlbnQgb2JqZWN0LiBCdWcgODUxOS4KKworTWFpbiBmcmFtZSB3
aW5kb3cub25lcnJvcjogRXJyb3I6IDIwMTAgYXQgd2luZG93LW9uZXJyb3I5Lmh0bWw6MzEKK3dp
bmRvdy5ldmVudC50eXBlID0gZXJyb3IKK3dpbmRvdy5ldmVudC5tZXNzYWdlID0gRXJyb3I6IDIw
MTAKK3dpbmRvdy5ldmVudC5maWxlbmFtZSA9IHdpbmRvdy1vbmVycm9yOS5odG1sCit3aW5kb3cu
ZXZlbnQubGluZW5vID0gMzEKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMv
d2luZG93LW9uZXJyb3I5Lmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy93aW5kb3ctb25l
cnJvcjkuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xMDg2YWNlOWM3YWQ3NjI5ZTcxMGEyNGJkYmI5ZjVjOTMx
NDViOTU0Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvd2luZG93
LW9uZXJyb3I5Lmh0bWwKQEAgLTAsMCArMSwzNSBAQAorPGh0bWw+Cis8Ym9keT4KKzxwPlRlc3Qg
dGhhdCB3aGVuIHdpbmRvdy5vbmVycm9yIGhhbmRsZXIgaXMgY2FsbGVkLCB3aW5kb3cuZXZlbnQg
aXMgdGhlIGNvcnJlc3BvbmRpbmcgRXJyb3JFdmVudCBvYmplY3QuIDxhIGhyZWY9Imh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04NTE5Ij5CdWcgODUxOTwvYT4uPC9wPgor
PGRpdiBpZD0iY29uc29sZSI+PC9kaXY+Cis8c2NyaXB0PgoraWYgKHdpbmRvdy5sYXlvdXRUZXN0
Q29udHJvbGxlcikgeworICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKKyAg
ICBsYXlvdXRUZXN0Q29udHJvbGxlci53YWl0VW50aWxEb25lKCk7Cit9CisKK2Z1bmN0aW9uIGxv
Zyhtc2cpIHsKKyAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY29uc29sZSIpLmlubmVySFRN
TCArPSBtc2cgKyAiPGJyPiI7Cit9CisKK2Z1bmN0aW9uIGxhc3RQYXRoQ29tcG9uZW50KHVybCkg
eworICAgIHJldHVybiB1cmwgPyB1cmwubWF0Y2goIC9bXlwvXStcLz8kLyApWzBdIDogdXJsOwor
fQorCit3aW5kb3cub25lcnJvciA9IGZ1bmN0aW9uKG1zZywgdXJsLCBsaW5lKQoreworICAgIGxv
ZygiTWFpbiBmcmFtZSB3aW5kb3cub25lcnJvcjogIiArIG1zZyArICIgYXQgIiArIGxhc3RQYXRo
Q29tcG9uZW50KHVybCkgKyAiOiIgKyBsaW5lKTsKKyAgICBsb2coIndpbmRvdy5ldmVudC50eXBl
ID0gIiArIHdpbmRvdy5ldmVudC50eXBlKTsKKyAgICBsb2coIndpbmRvdy5ldmVudC5tZXNzYWdl
ID0gIiArIHdpbmRvdy5ldmVudC5tZXNzYWdlKTsKKyAgICBsb2coIndpbmRvdy5ldmVudC5maWxl
bmFtZSA9ICIgKyBsYXN0UGF0aENvbXBvbmVudCh3aW5kb3cuZXZlbnQuZmlsZW5hbWUpKTsKKyAg
ICBsb2coIndpbmRvdy5ldmVudC5saW5lbm8gPSAiICsgd2luZG93LmV2ZW50LmxpbmVubyk7Cisg
ICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKKyAgICAgICAgbGF5b3V0VGVzdENv
bnRyb2xsZXIubm90aWZ5RG9uZSgpOworICAgIHJldHVybiBmYWxzZTsKK30KKwordGhyb3cgbmV3
IEVycm9yKDIwMTApOworCis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2Zhc3Qvd29ya2Vycy93b3JrZXItc2NyaXB0LWVycm9yLWV4cGVjdGVkLnR4
dCBiL0xheW91dFRlc3RzL2Zhc3Qvd29ya2Vycy93b3JrZXItc2NyaXB0LWVycm9yLWV4cGVjdGVk
LnR4dAppbmRleCAxMGFiMDQ5M2FiNDdhMjQyY2E2ZDczZmNmMDRiYWYzODZlNGY0NWY3Li40MDQx
NjQwODllODI0YTkwZTQwZGU5MmM3ZTEyNDk1MDFiNzg4NzE5IDEwMDY0NAotLS0gYS9MYXlvdXRU
ZXN0cy9mYXN0L3dvcmtlcnMvd29ya2VyLXNjcmlwdC1lcnJvci1leHBlY3RlZC50eHQKKysrIGIv
TGF5b3V0VGVzdHMvZmFzdC93b3JrZXJzL3dvcmtlci1zY3JpcHQtZXJyb3ItZXhwZWN0ZWQudHh0
CkBAIC00LDggKzQsOCBAQCBUZXN0IFdvcmtlciBzY3JpcHQgZXJyb3IgaGFuZGxpbmcgZnVuY3Rp
b25hbGl0eS4gU2hvdWxkIHByaW50IGEgc2VyaWVzIG9mIFBBU1MgbQogUEFTUzogb25lcnJvciBp
bnZva2VkIGZvciBhIHNjcmlwdCB0aGF0IGhhcyBpbnZhbGlkIHN5bnRheC4KIFBBU1M6IG9uZXJy
b3IgaW52b2tlZCBmb3IgYSBzY3JpcHQgdGhhdCBoYXMgc2NyaXB0IGVycm9yICdSZWZlcmVuY2VF
cnJvcjogQ2FuJ3QgZmluZCB2YXJpYWJsZTogZm9vJyBhdCBsaW5lIDEuCiBQQVNTOiBldmVudCBs
aXN0ZW5lciBpbnZva2VkIGZvciBhIHNjcmlwdCB0aGF0IGhhcyBzY3JpcHQgZXJyb3IgJ1JlZmVy
ZW5jZUVycm9yOiBDYW4ndCBmaW5kIHZhcmlhYmxlOiBmb28nIGF0IGxpbmUgMS4KLVBBU1M6IG9u
ZXJyb3IgaW52b2tlZCBmb3IgYSBzY3JpcHQgdGhhdCBoYXMgc2NyaXB0IGVycm9yICdSZWZlcmVu
Y2VFcnJvcjogQ2FuJ3QgZmluZCB2YXJpYWJsZTogYmFyJyBhdCBsaW5lIDMuCiBQQVNTOiBvbmVy
cm9yIGludm9rZWQgZm9yIGEgc2NyaXB0IHRoYXQgaGFzIHNjcmlwdCBlcnJvciAnUmVmZXJlbmNl
RXJyb3I6IENhbid0IGZpbmQgdmFyaWFibGU6IGZvbycgYXQgbGluZSA3LgorUEFTUzogb25lcnJv
ciBpbnZva2VkIGZvciBhIHNjcmlwdCB0aGF0IGhhcyBzY3JpcHQgZXJyb3IgJ1JlZmVyZW5jZUVy
cm9yOiBDYW4ndCBmaW5kIHZhcmlhYmxlOiBiYXInIGF0IGxpbmUgMy4KIFBBU1M6IG9uZXJyb3Ig
aW52b2tlZCBmb3IgYSBzY3JpcHQgdGhhdCBoYXMgc2NyaXB0IGVycm9yICdSZWZlcmVuY2VFcnJv
cjogQ2FuJ3QgZmluZCB2YXJpYWJsZTogZm9vJyBhdCBsaW5lIDcuCiBQQVNTOiBvbmVycm9yIGlu
dm9rZWQgZm9yIGEgc2NyaXB0IHRoYXQgaGFzIHNjcmlwdCBlcnJvciAnUmVmZXJlbmNlRXJyb3I6
IENhbid0IGZpbmQgdmFyaWFibGU6IGZvbycgYXQgbGluZSA3LgogUEFTUzogbWVzc2FnZSByZWNl
aXZlZCBmcm9tIFdvcmtlckdsb2JhbFNjb3BlLm9uZXJyb3I6IG9uZXJyb3IgaW52b2tlZCBmb3Ig
YSBzY3JpcHQgdGhhdCBoYXMgc2NyaXB0IGVycm9yICdSZWZlcmVuY2VFcnJvcjogQ2FuJ3QgZmlu
ZCB2YXJpYWJsZTogZm9vJyBhdCBsaW5lIDcuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL3NlY3VyaXR5L3Jlc291cmNlcy9vbmVycm9yLWlmcmFtZS5odG1sIGIvTGF5b3V0VGVz
dHMvaHR0cC90ZXN0cy9zZWN1cml0eS9yZXNvdXJjZXMvb25lcnJvci1pZnJhbWUuaHRtbApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi4zMTJmZDEyZDNhZDgxMDJhNWZlMWI1MTcwM2VjM2NiMDAxYTc0ZmM4Ci0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9yZXNvdXJjZXMvb25l
cnJvci1pZnJhbWUuaHRtbApAQCAtMCwwICsxLDExIEBACis8c2NyaXB0PgorZnVuY3Rpb24gaGFu
ZGxlTG9hZCgpCit7CisgICAgd2luZG93LnBhcmVudC5wb3N0TWVzc2FnZSgiSUZyYW1lTG9hZGVk
IiwgIioiKTsKK30KKwordGhyb3cgIklmcmFtZUV4Y2VwdGlvbiI7CisKKzwvc2NyaXB0PgorPGJv
ZHkgb25sb2FkPSJoYW5kbGVMb2FkKCkiPgorPC9ib2R5PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaHR0cC90ZXN0cy9zZWN1cml0eS93aW5kb3ctb25lcnJvci1leGNlcHRpb24taW4taWZyYW1l
LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvd2luZG93LW9u
ZXJyb3ItZXhjZXB0aW9uLWluLWlmcmFtZS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOGIxN2Q5
MjI4MWNmNWYxMDQxZjhkOTU3YjQ2MzY1MjAyNmFjMTdlYgotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvd2luZG93LW9uZXJyb3ItZXhjZXB0aW9uLWlu
LWlmcmFtZS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw2IEBACitDT05TT0xFIE1FU1NBR0U6IGxp
bmUgMDogSWZyYW1lRXhjZXB0aW9uCitUZXN0IHRoYXQgZXhjZXB0aW9ucyBpbiBpZnJhbWUgYXJl
IG5vdCByZXBvcnRlZCB0byB0aGUgbWFpbiBmcmFtZSB3aW5kb3cub25lcnJvciBoYW5kbGVyLiB3
aW5kb3cub25lcnJvciBzaG91bGQgcHJpbnQgZXhhY3RseSBvbmUgbGluZS4KKworTWFpbiBmcmFt
ZSB3aW5kb3cub25lcnJvcjogTWFpbkZyYW1lRXhjZXB0aW9uIGF0IHVuZGVmaW5lZDowCitET05F
CisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvd2luZG93LW9u
ZXJyb3ItZXhjZXB0aW9uLWluLWlmcmFtZS5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9z
ZWN1cml0eS93aW5kb3ctb25lcnJvci1leGNlcHRpb24taW4taWZyYW1lLmh0bWwKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uMDkwNGUzOTUyYjhhYTE5OWExYzNkNDVlYzYyNTg4MzkzNzMyY2ExYgotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvd2luZG93LW9uZXJyb3ItZXhj
ZXB0aW9uLWluLWlmcmFtZS5odG1sCkBAIC0wLDAgKzEsMzkgQEAKKzxodG1sPgorPGJvZHk+Cis8
cD5UZXN0IHRoYXQgZXhjZXB0aW9ucyBpbiBpZnJhbWUgYXJlIG5vdCByZXBvcnRlZCB0byB0aGUg
bWFpbiBmcmFtZSB3aW5kb3cub25lcnJvciBoYW5kbGVyLgord2luZG93Lm9uZXJyb3Igc2hvdWxk
IHByaW50IGV4YWN0bHkgb25lIGxpbmUuPC9wPgorPGRpdiBpZD0icmVzdWx0Ij48L2Rpdj4KKzxz
Y3JpcHQ+CitpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKSB7CisgICAgbGF5b3V0VGVz
dENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOworICAgIGxheW91dFRlc3RDb250cm9sbGVyLndhaXRV
bnRpbERvbmUoKTsKK30KKworZnVuY3Rpb24gbG9nKG1zZykgeworICAgIGRvY3VtZW50LmdldEVs
ZW1lbnRCeUlkKCJyZXN1bHQiKS5pbm5lckhUTUwgKz0gbXNnICsgIjxicj4iOworfQorCit3aW5k
b3cub25lcnJvciA9IGZ1bmN0aW9uKG1zZywgdXJsLCBsaW5lKQoreworICAgIHVybCA9IHVybCA/
IHVybC5tYXRjaCggL1teXC9dK1wvPyQvIClbMF0gOiB1cmw7CisgICAgbG9nKCJNYWluIGZyYW1l
IHdpbmRvdy5vbmVycm9yOiAiICsgbXNnICsgIiBhdCAiICsgdXJsICsgIjoiICsgbGluZSk7Cisg
ICAgcmV0dXJuIGZhbHNlOworfQorCitmdW5jdGlvbiByZWNlaXZlTWVzc2FnZShldmVudCkgewor
ICAgIGlmIChldmVudC5kYXRhID09PSAiSUZyYW1lTG9hZGVkIikgeworICAgICAgICBsb2coIkRP
TkUiKTsKKyAgICAgICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKKyAgICAgICAg
ICAgIGxheW91dFRlc3RDb250cm9sbGVyLm5vdGlmeURvbmUoKTsKKyAgICB9IGVsc2UKKyAgICAg
ICAgbG9nKCJGQUlMICIgKyBldmVudC5kYXRhKTsKK30KKword2luZG93LmFkZEV2ZW50TGlzdGVu
ZXIoIm1lc3NhZ2UiLCByZWNlaXZlTWVzc2FnZSwgZmFsc2UpOworCit0aHJvdyAiTWFpbkZyYW1l
RXhjZXB0aW9uIjsKKworPC9zY3JpcHQ+Cis8aWZyYW1lIHNyYz0iaHR0cDovL2xvY2FsaG9zdDo4
MDAwL3NlY3VyaXR5L3Jlc291cmNlcy9vbmVycm9yLWlmcmFtZS5odG1sIi8+Cis8L2JvZHk+Cis8
L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS13aW4vZmFz
dC93b3JrZXJzL3dvcmtlci1zY3JpcHQtZXJyb3ItZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMv
cGxhdGZvcm0vY2hyb21pdW0td2luL2Zhc3Qvd29ya2Vycy93b3JrZXItc2NyaXB0LWVycm9yLWV4
cGVjdGVkLnR4dAppbmRleCBmZGY2NjBiZDUwYzY2N2Q0MzBmMTY1YTdmYTgzNzQwMTY0MWExY2Ex
Li5lZjBhMzkxZTQ3ODdiMzNiYmJiMGQ5ZjcwNjAzODQ5M2ZlMzE4MTI5IDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS13aW4vZmFzdC93b3JrZXJzL3dvcmtlci1zY3Jp
cHQtZXJyb3ItZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVt
LXdpbi9mYXN0L3dvcmtlcnMvd29ya2VyLXNjcmlwdC1lcnJvci1leHBlY3RlZC50eHQKQEAgLTMs
OCArMyw4IEBAIFRlc3QgV29ya2VyIHNjcmlwdCBlcnJvciBoYW5kbGluZyBmdW5jdGlvbmFsaXR5
LiBTaG91bGQgcHJpbnQgYSBzZXJpZXMgb2YgUEFTUyBtCiBQQVNTOiBvbmVycm9yIGludm9rZWQg
Zm9yIGEgc2NyaXB0IHRoYXQgaGFzIGludmFsaWQgc3ludGF4LgogUEFTUzogb25lcnJvciBpbnZv
a2VkIGZvciBhIHNjcmlwdCB0aGF0IGhhcyBzY3JpcHQgZXJyb3IgJ1VuY2F1Z2h0IFJlZmVyZW5j
ZUVycm9yOiBmb28gaXMgbm90IGRlZmluZWQnIGF0IGxpbmUgMS4KIFBBU1M6IGV2ZW50IGxpc3Rl
bmVyIGludm9rZWQgZm9yIGEgc2NyaXB0IHRoYXQgaGFzIHNjcmlwdCBlcnJvciAnVW5jYXVnaHQg
UmVmZXJlbmNlRXJyb3I6IGZvbyBpcyBub3QgZGVmaW5lZCcgYXQgbGluZSAxLgotUEFTUzogb25l
cnJvciBpbnZva2VkIGZvciBhIHNjcmlwdCB0aGF0IGhhcyBzY3JpcHQgZXJyb3IgJ1VuY2F1Z2h0
IFJlZmVyZW5jZUVycm9yOiBiYXIgaXMgbm90IGRlZmluZWQnIGF0IGxpbmUgMy4KIFBBU1M6IG9u
ZXJyb3IgaW52b2tlZCBmb3IgYSBzY3JpcHQgdGhhdCBoYXMgc2NyaXB0IGVycm9yICdVbmNhdWdo
dCBSZWZlcmVuY2VFcnJvcjogZm9vIGlzIG5vdCBkZWZpbmVkJyBhdCBsaW5lIDcuCitQQVNTOiBv
bmVycm9yIGludm9rZWQgZm9yIGEgc2NyaXB0IHRoYXQgaGFzIHNjcmlwdCBlcnJvciAnVW5jYXVn
aHQgUmVmZXJlbmNlRXJyb3I6IGJhciBpcyBub3QgZGVmaW5lZCcgYXQgbGluZSAzLgogUEFTUzog
b25lcnJvciBpbnZva2VkIGZvciBhIHNjcmlwdCB0aGF0IGhhcyBzY3JpcHQgZXJyb3IgJ1VuY2F1
Z2h0IFJlZmVyZW5jZUVycm9yOiBmb28gaXMgbm90IGRlZmluZWQnIGF0IGxpbmUgNy4KIFBBU1M6
IG9uZXJyb3IgaW52b2tlZCBmb3IgYSBzY3JpcHQgdGhhdCBoYXMgc2NyaXB0IGVycm9yICdVbmNh
dWdodCBSZWZlcmVuY2VFcnJvcjogZm9vIGlzIG5vdCBkZWZpbmVkJyBhdCBsaW5lIDcuCiBQQVNT
OiBtZXNzYWdlIHJlY2VpdmVkIGZyb20gV29ya2VyR2xvYmFsU2NvcGUub25lcnJvcjogb25lcnJv
ciBpbnZva2VkIGZvciBhIHNjcmlwdCB0aGF0IGhhcyBzY3JpcHQgZXJyb3IgJ1VuY2F1Z2h0IFJl
ZmVyZW5jZUVycm9yOiBmb28gaXMgbm90IGRlZmluZWQnIGF0IGxpbmUgNy4KZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL2Zhc3QvZXZlbnRzL3dpbmRvdy1vbmVycm9y
MS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS9mYXN0L2V2ZW50
cy93aW5kb3ctb25lcnJvcjEtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjY1YjYyNGI5ZTk4Nzg5
N2FlZDgzZDFjYjdjYTQ1N2FjNzYzZjdjYzEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy9wbGF0Zm9ybS9jaHJvbWl1bS9mYXN0L2V2ZW50cy93aW5kb3ctb25lcnJvcjEtZXhwZWN0ZWQu
dHh0CkBAIC0wLDAgKzEsMyBAQAorVGhpcyBwYWdlIHRlc3RzIHNldHRpbmcgb25lcnJvciBoYW5k
bGVycyB0aHJvdWdoIHRoZSBET00uIElmIGl0IHBhc3NlcywgeW91IHdpbGwgc2VlICJQQVNTIiBt
ZXNzYWdlcyBiZWxvdy5CdWcgODUxOS4NCisNCitQQVNTOiBjYXVnaHQgZ2xvYmFsIGVycm9yOiBV
bmNhdWdodCBSZWZlcmVuY2VFcnJvcjogaGFoYWhhX2dvb2RfbHVja19maW5kaW5nX21lIGlzIG5v
dCBkZWZpbmVkIGF0IHdpbmRvdy1vbmVycm9yMS5odG1sOjI1DQpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vZmFzdC9ldmVudHMvd2luZG93LW9uZXJyb3IxMC1leHBl
Y3RlZC50eHQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS9mYXN0L2V2ZW50cy93aW5k
b3ctb25lcnJvcjEwLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iM2QyZDM5MDk3ZmJmNDk3NmYz
YjU3MzRmYWQ1OTdhZmE3ZDg0ZmNlCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvcGxh
dGZvcm0vY2hyb21pdW0vZmFzdC9ldmVudHMvd2luZG93LW9uZXJyb3IxMC1leHBlY3RlZC50eHQK
QEAgLTAsMCArMSwxMSBAQAorVGVzdCB0aGF0ICJlcnJvciIgZXZlbnQgbGlzdGVuZXIgYWRkZWQg
d2l0aCB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lciBpcyBpbnZva2VkIGZvciB1bmNhdWNodCBleGNl
cHRpb25zLiBCdWcgODUxOS4NCisNCitldmVudCBwYXNzZWQgdG8gdGhlIGxpc3RlbmVyIGlzIHRo
ZSBzYW1lIGFzIHdpbmRvdy5ldmVudDogdHJ1ZQ0KK0V2ZW50IGRldGFpbHM6DQordHlwZTogZXJy
b3INCitwaGFzZTogMg0KK2N1cnJlbnRUYXJnZXQgaXMgdGhlIGdsb2JhbCBvYmplY3Q6IHRydWUN
CittZXNzYWdlOiBVbmNhdWdodCBFcnJvcjogTXkgZmF1bHQuDQorZmlsZW5hbWU6IHdpbmRvdy1v
bmVycm9yMTAuaHRtbA0KK2xpbmVubzogMjkNCisNCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9w
bGF0Zm9ybS9jaHJvbWl1bS9mYXN0L2V2ZW50cy93aW5kb3ctb25lcnJvcjExLWV4cGVjdGVkLnR4
dCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL2Zhc3QvZXZlbnRzL3dpbmRvdy1vbmVy
cm9yMTEtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjkyZTNjZjU4YmZhNDQwOWIzMzY2ODRlZWQy
YzdiMDI1MDIwODY5YjcKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9j
aHJvbWl1bS9mYXN0L2V2ZW50cy93aW5kb3ctb25lcnJvcjExLWV4cGVjdGVkLnR4dApAQCAtMCww
ICsxLDQgQEAKK1Rlc3QgdGhhdCB3aW5kb3cub25lcnJvciBpcyBjYWxsZWQgb24gd2luZG93IG9i
amVjdC4gQnVnIDg1MTkuDQorDQorTWFpbiBmcmFtZSB3aW5kb3cub25lcnJvcjogVW5jYXVnaHQg
RXJyb3I6IEFuIGV4Y2VwdGlvbiBhdCB3aW5kb3ctb25lcnJvci5qczoyDQorDQpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vZmFzdC9ldmVudHMvd2luZG93LW9uZXJy
b3IyLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL2Zhc3QvZXZl
bnRzL3dpbmRvdy1vbmVycm9yMi1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZjdiMTYyMWMxOTYw
ODBjOTE0NzViYzliNjE2MjBlYjc5MDQ2ZTcyNwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL3BsYXRmb3JtL2Nocm9taXVtL2Zhc3QvZXZlbnRzL3dpbmRvdy1vbmVycm9yMi1leHBlY3Rl
ZC50eHQKQEAgLTAsMCArMSw2IEBACitUZXN0IHRoYXQgdW5jYXVnaHQgZXhjZXB0aW9ucyB3aWxs
IGJlIHJlcG9ydGVkIHRvIHRoZSB3aW5kb3cub25lcnJvciBoYW5kbGVyLiBCdWcgODUxOS4NCisN
CitNYWluIGZyYW1lIHdpbmRvdy5vbmVycm9yOiBVbmNhdWdodCBFcnJvcjogSW5saW5lIHNjcmlw
dCBleGNlcHRpb24gYXQgd2luZG93LW9uZXJyb3IyLmh0bWw6MzUNCitNYWluIGZyYW1lIHdpbmRv
dy5vbmVycm9yOiBVbmNhdWdodCBFeGNlcHRpb24gaW4gb25sb2FkIGF0IHdpbmRvdy1vbmVycm9y
Mi5odG1sOjINCitNYWluIGZyYW1lIHdpbmRvdy5vbmVycm9yOiBVbmNhdWdodCBFcnJvcjogRXhj
ZXB0aW9uIGluIHNldFRpbWVvdXQgYXQgd2luZG93LW9uZXJyb3IyLmh0bWw6MjkNCisNCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS9mYXN0L2V2ZW50cy93aW5kb3ct
b25lcnJvcjMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vZmFz
dC9ldmVudHMvd2luZG93LW9uZXJyb3IzLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5hMWI4YmQ1
NTgwMGYwOTBlOTRkOTljMDMxMjUxMTA4YTVlOWVlNDk1Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5
b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vZmFzdC9ldmVudHMvd2luZG93LW9uZXJyb3IzLWV4
cGVjdGVkLnR4dApAQCAtMCwwICsxLDQgQEAKK1lvdSBzaG91bGQgc2VlIGEgbWVzc2FnZSBpZiB3
aW5kb3cub25lcnJvciBpcyB3b3JraW5nIHByb3Blcmx5IGZvciB0aGlzIHRlc3QuQnVnIDg1MTku
DQorDQorRXJyb3IgY2F1Z2h0IHN1Y2Nlc3NmdWxseTogVW5jYXVnaHQgUmVmZXJlbmNlRXJyb3I6
IHVua25vd25PYmplY3QgaXMgbm90IGRlZmluZWQgRmlsZTogd2luZG93LW9uZXJyb3IzLmh0bWwg
TGluZTogMTYNCisNCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS9m
YXN0L2V2ZW50cy93aW5kb3ctb25lcnJvcjQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvcGxh
dGZvcm0vY2hyb21pdW0vZmFzdC9ldmVudHMvd2luZG93LW9uZXJyb3I0LWV4cGVjdGVkLnR4dApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi41MGYwOWUwMmU5OGEzMmQ4NjA0MTc0MTI0MTZmZGFmOGRkODY2Y2RjCi0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vZmFzdC9ldmVudHMv
d2luZG93LW9uZXJyb3I0LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDQgQEAKK1lvdSBzaG91bGQg
c2VlIGEgbG9nIHJlY29yZCBpZiB3aW5kb3cub25lcnJvciBpcyB3b3JraW5nIHByb3Blcmx5IGZv
ciB0aGlzIHRlc3QuQnVnIDg1MTkuDQorDQorRXJyb3IgY2F1Z2h0IHN1Y2Nlc3NmdWxseTogVW5j
YXVnaHQgUmVmZXJlbmNlRXJyb3I6IEludmFsaWQgbGVmdC1oYW5kIHNpZGUgaW4gYXNzaWdubWVu
dCBGaWxlOiB3aW5kb3ctb25lcnJvcjQuaHRtbCBMaW5lOiAxDQorDQpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vZmFzdC9ldmVudHMvd2luZG93LW9uZXJyb3I1LWV4
cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL2Zhc3QvZXZlbnRzL3dp
bmRvdy1vbmVycm9yNS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZTQ1MzY5ZTI5ZjExNWM1NWY0
N2IxZGI0YThmMWZmYmI2MTRjNDhiNwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3Bs
YXRmb3JtL2Nocm9taXVtL2Zhc3QvZXZlbnRzL3dpbmRvdy1vbmVycm9yNS1leHBlY3RlZC50eHQK
QEAgLTAsMCArMSw0IEBACitUZXN0IHRoYXQgd2luZG93Lm9uZXJyb3IgaXMgaW52b2tlZCBmb3Ig
c3ludGF4IGVycm9yIGluIGV2YWwuIFlvdSBzaG91bGQgc2VlIGEgbG9nIHJlY29yZCBpZiB3aW5k
b3cub25lcnJvciBpcyB3b3JraW5nIHByb3Blcmx5IGZvciB0aGlzIHRlc3QuQnVnIDg1MTkuDQor
DQorRXJyb3IgY2F1Z2h0IHN1Y2Nlc3NmdWxseTogVW5jYXVnaHQgU3ludGF4RXJyb3I6IFVuZXhw
ZWN0ZWQgZW5kIG9mIGlucHV0IEZpbGU6IHdpbmRvdy1vbmVycm9yNS5odG1sIExpbmU6IDENCisN
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS9mYXN0L2V2ZW50cy93
aW5kb3ctb25lcnJvcjYtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21p
dW0vZmFzdC9ldmVudHMvd2luZG93LW9uZXJyb3I2LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4x
OGVkODFhYTAyYTA1ZGVjYjVjYzAyNWFkZWZiMDFhMmRhNmU4NjdlCi0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vZmFzdC9ldmVudHMvd2luZG93LW9uZXJy
b3I2LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDQgQEAKK1Rlc3QgdGhhdCBzeW50YXggZXJyb3Ig
d2lsbCBiZSByZXBvcnRlZCB0byB0aGUgd2luZG93Lm9uZXJyb3IgaGFuZGxlci4gQnVnIDg1MTku
DQorDQorTWFpbiBmcmFtZSB3aW5kb3cub25lcnJvcjogVW5jYXVnaHQgU3ludGF4RXJyb3I6IFVu
ZXhwZWN0ZWQgdG9rZW4gKSBhdCB3aW5kb3ctb25lcnJvcjYuaHRtbDoyMg0KKw0KZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL2Zhc3QvZXZlbnRzL3dpbmRvdy1vbmVy
cm9yNy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS9mYXN0L2V2
ZW50cy93aW5kb3ctb25lcnJvcjctZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjIzZDA0MDc5MDZh
ODc4MDk4MTQ3NGIxMzAwNjYyOTRkYjNjMDk1MTUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRU
ZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS9mYXN0L2V2ZW50cy93aW5kb3ctb25lcnJvcjctZXhwZWN0
ZWQudHh0CkBAIC0wLDAgKzEsNiBAQAorQ09OU09MRSBNRVNTQUdFOiBsaW5lIDIwOiBVbmNhdWdo
dCBFcnJvcjogT3JpZ2luYWwgZXJyb3INCitDT05TT0xFIE1FU1NBR0U6IGxpbmUgMTc6IFVuY2F1
Z2h0IEVycm9yOiBOZXN0ZWQgZXJyb3INCitUZXN0IHRoYXQgZXhjZXB0aW9uIGluIHdpbmRvdy5v
bmVycm9yIHdvbid0IGxlYWQgdG8gcmVjdXJzaXZlIHdpbmRvdy5vbmVycm9yIGNhbGwuIEJ1ZyA4
NTE5Lg0KKw0KK01haW4gZnJhbWUgd2luZG93Lm9uZXJyb3I6IFVuY2F1Z2h0IEVycm9yOiBPcmln
aW5hbCBlcnJvciBhdCB3aW5kb3ctb25lcnJvcjcuaHRtbDoyMA0KKw0KZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL2Zhc3QvZXZlbnRzL3dpbmRvdy1vbmVycm9yOC1l
eHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS9mYXN0L2V2ZW50cy93
aW5kb3ctb25lcnJvcjgtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjEzZjJiMzI3NzY2M2FiZTE1
NmNkNTY4YzBhOTFhNGQzODg2YTE0YjAKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9w
bGF0Zm9ybS9jaHJvbWl1bS9mYXN0L2V2ZW50cy93aW5kb3ctb25lcnJvcjgtZXhwZWN0ZWQudHh0
CkBAIC0wLDAgKzEsNSBAQAorVGVzdCB0aGF0IHdpbmRvdy5vbmVycm9yIGlzIGNhbGxlZCBvbiB3
aW5kb3cgb2JqZWN0LiBCdWcgODUxOS4NCisNCitNYWluIGZyYW1lIHdpbmRvdy5vbmVycm9yOiBV
bmNhdWdodCAyMDEwIGF0IHdpbmRvdy1vbmVycm9yOC5odG1sOjI0DQorUEFTU0VEOiB0aGlzID09
PSB3aW5kb3cNCisNCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS9m
YXN0L2V2ZW50cy93aW5kb3ctb25lcnJvcjktZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvcGxh
dGZvcm0vY2hyb21pdW0vZmFzdC9ldmVudHMvd2luZG93LW9uZXJyb3I5LWV4cGVjdGVkLnR4dApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi4xNjc3ZTUwMjBkMDhlYjc1YTUwM2IzNDZiZDkzY2RmYzdiMGVhNzY5Ci0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vZmFzdC9ldmVudHMv
d2luZG93LW9uZXJyb3I5LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDggQEAKK1Rlc3QgdGhhdCB3
aGVuIHdpbmRvdy5vbmVycm9yIGhhbmRsZXIgaXMgY2FsbGVkLCB3aW5kb3cuZXZlbnQgaXMgdGhl
IGNvcnJlc3BvbmRpbmcgRXJyb3JFdmVudCBvYmplY3QuIEJ1ZyA4NTE5Lg0KKw0KK01haW4gZnJh
bWUgd2luZG93Lm9uZXJyb3I6IFVuY2F1Z2h0IEVycm9yOiAyMDEwIGF0IHdpbmRvdy1vbmVycm9y
OS5odG1sOjMxDQord2luZG93LmV2ZW50LnR5cGUgPSBlcnJvcg0KK3dpbmRvdy5ldmVudC5tZXNz
YWdlID0gVW5jYXVnaHQgRXJyb3I6IDIwMTANCit3aW5kb3cuZXZlbnQuZmlsZW5hbWUgPSB3aW5k
b3ctb25lcnJvcjkuaHRtbA0KK3dpbmRvdy5ldmVudC5saW5lbm8gPSAzMQ0KKw0KZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL2h0dHAvdGVzdHMvc2VjdXJpdHkvd2lu
ZG93LW9uZXJyb3ItZXhjZXB0aW9uLWluLWlmcmFtZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0
cy9wbGF0Zm9ybS9jaHJvbWl1bS9odHRwL3Rlc3RzL3NlY3VyaXR5L3dpbmRvdy1vbmVycm9yLWV4
Y2VwdGlvbi1pbi1pZnJhbWUtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjllOWMyZWE0YmI0Yjg5
MWMwNzUyZDI4NjM4NDY0MGMxMGU4NzkyMWYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy9wbGF0Zm9ybS9jaHJvbWl1bS9odHRwL3Rlc3RzL3NlY3VyaXR5L3dpbmRvdy1vbmVycm9yLWV4
Y2VwdGlvbi1pbi1pZnJhbWUtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNiBAQAorQ09OU09MRSBN
RVNTQUdFOiBsaW5lIDc6IFVuY2F1Z2h0IElmcmFtZUV4Y2VwdGlvbg0KK1Rlc3QgdGhhdCBleGNl
cHRpb25zIGluIGlmcmFtZSBhcmUgbm90IHJlcG9ydGVkIHRvIHRoZSBtYWluIGZyYW1lIHdpbmRv
dy5vbmVycm9yIGhhbmRsZXIuIHdpbmRvdy5vbmVycm9yIHNob3VsZCBwcmludCBleGFjdGx5IG9u
ZSBsaW5lLg0KKw0KK01haW4gZnJhbWUgd2luZG93Lm9uZXJyb3I6IFVuY2F1Z2h0IE1haW5GcmFt
ZUV4Y2VwdGlvbiBhdCB3aW5kb3ctb25lcnJvci1leGNlcHRpb24taW4taWZyYW1lLmh0bWw6MzQN
CitET05FDQorDQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vdXNl
cnNjcmlwdHMvd2luZG93LW9uZXJyb3ItZm9yLWlzb2xhdGVkLXdvcmxkLTEtZXhwZWN0ZWQudHh0
IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vdXNlcnNjcmlwdHMvd2luZG93LW9uZXJy
b3ItZm9yLWlzb2xhdGVkLXdvcmxkLTEtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNzU1
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjJhM2QwNjgw
MGY1MjVjNGZiNzRlZmY4MThlMzdkZWQyYjE4ZDkzZTkKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS91c2Vyc2NyaXB0cy93aW5kb3ctb25lcnJvci1mb3It
aXNvbGF0ZWQtd29ybGQtMS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxNCBAQAorVGVzdCB0aGF0
IHdpbmRvdy5vbmVycm9yIGFuZCAiZXJyb3IiIGV2ZW50IGxpc3RlbmVycyBmcm9tIG1haW4gd29y
bGQgYXJlIGludm9rZWQgZm9yIHVuY2F1Z2h0IGV4Y2VwdGlvbnMgaW4gdXNlciBzY3JpcHRzIHJ1
bm5pbmcgaW4gaXNvbGF0ZSB3b3JsZHMgYXMgd2VsbCBhcyBmb3IgZXhjZXB0aW9ucyBpbiB0aGUg
bWFpbiB3b3JsZC5CdWcgODUxOS4NCisNCitNYWluIHdvcmxkIHdpbmRvdy5vbmVycm9yOiBVbmNh
dWdodCBFcnJvcjogRXJyb3IgaW4gbWFpbiB3b3JsZCBpbmxpbmUgc2NyaXB0LiBhdCB3aW5kb3ct
b25lcnJvci1mb3ItaXNvbGF0ZWQtd29ybGQtMS5odG1sOjU0DQorTWFpbiB3b3JsZCBlcnJvciBl
dmVudCBsaXN0ZW5lcjogVW5jYXVnaHQgRXJyb3I6IEVycm9yIGluIG1haW4gd29ybGQgaW5saW5l
IHNjcmlwdC4gYXQgd2luZG93LW9uZXJyb3ItZm9yLWlzb2xhdGVkLXdvcmxkLTEuaHRtbDo1NA0K
K01haW4gd29ybGQgd2luZG93Lm9uZXJyb3I6IFVuY2F1Z2h0IEVycm9yOiBFcnJvciBpbiB1c2Vy
IHNjcmlwdCBpbmxpbmUgc2NyaXB0LiBhdCA6MTINCitNYWluIHdvcmxkIGVycm9yIGV2ZW50IGxp
c3RlbmVyOiBVbmNhdWdodCBFcnJvcjogRXJyb3IgaW4gdXNlciBzY3JpcHQgaW5saW5lIHNjcmlw
dC4gYXQgOjEyDQorTWFpbiB3b3JsZCB3aW5kb3cub25lcnJvcjogVW5jYXVnaHQgRXJyb3I6IEVy
cm9yIGluIG1haW4gd29ybGQgbG9hZCBoYW5kbGVyLiBhdCB3aW5kb3ctb25lcnJvci1mb3ItaXNv
bGF0ZWQtd29ybGQtMS5odG1sOjQ2DQorTWFpbiB3b3JsZCBlcnJvciBldmVudCBsaXN0ZW5lcjog
VW5jYXVnaHQgRXJyb3I6IEVycm9yIGluIG1haW4gd29ybGQgbG9hZCBoYW5kbGVyLiBhdCB3aW5k
b3ctb25lcnJvci1mb3ItaXNvbGF0ZWQtd29ybGQtMS5odG1sOjQ2DQorTWFpbiB3b3JsZCB3aW5k
b3cub25lcnJvcjogVW5jYXVnaHQgRXJyb3I6IEVycm9yIGluIHVzZXIgc2NyaXB0IGxvYWQgaGFu
ZGxlci4gYXQgOjQNCitNYWluIHdvcmxkIGVycm9yIGV2ZW50IGxpc3RlbmVyOiBVbmNhdWdodCBF
cnJvcjogRXJyb3IgaW4gdXNlciBzY3JpcHQgbG9hZCBoYW5kbGVyLiBhdCA6NA0KK01haW4gd29y
bGQgd2luZG93Lm9uZXJyb3I6IFVuY2F1Z2h0IEVycm9yOiBFcnJvciBpbiBtYWluIHdvcmxkIHNl
dFRpbWVvdXQgY2FsbGJhY2suIGF0IHdpbmRvdy1vbmVycm9yLWZvci1pc29sYXRlZC13b3JsZC0x
Lmh0bWw6NTENCitNYWluIHdvcmxkIGVycm9yIGV2ZW50IGxpc3RlbmVyOiBVbmNhdWdodCBFcnJv
cjogRXJyb3IgaW4gbWFpbiB3b3JsZCBzZXRUaW1lb3V0IGNhbGxiYWNrLiBhdCB3aW5kb3ctb25l
cnJvci1mb3ItaXNvbGF0ZWQtd29ybGQtMS5odG1sOjUxDQorTWFpbiB3b3JsZCB3aW5kb3cub25l
cnJvcjogVW5jYXVnaHQgRXJyb3I6IEVycm9yIGluIHVzZXIgc2NyaXB0IHNldFRpbWVvdXQgY2Fs
bGJhY2suIGF0IDo5DQorTWFpbiB3b3JsZCBlcnJvciBldmVudCBsaXN0ZW5lcjogVW5jYXVnaHQg
RXJyb3I6IEVycm9yIGluIHVzZXIgc2NyaXB0IHNldFRpbWVvdXQgY2FsbGJhY2suIGF0IDo5DQpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vdXNlcnNjcmlwdHMvd2lu
ZG93LW9uZXJyb3ItZm9yLWlzb2xhdGVkLXdvcmxkLTItZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVz
dHMvcGxhdGZvcm0vY2hyb21pdW0vdXNlcnNjcmlwdHMvd2luZG93LW9uZXJyb3ItZm9yLWlzb2xh
dGVkLXdvcmxkLTItZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjkzOTk0ZGIxMmNiMDhiZGYxNjRk
OTAxOGFkNDYwNTRiMGE0NTE5MGMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9wbGF0
Zm9ybS9jaHJvbWl1bS91c2Vyc2NyaXB0cy93aW5kb3ctb25lcnJvci1mb3ItaXNvbGF0ZWQtd29y
bGQtMi1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxMyBAQAorQ09OU09MRSBNRVNTQUdFOiBsaW5l
IDMwOiBVbmNhdWdodCBFcnJvcjogRXJyb3IgaW4gbWFpbiB3b3JsZCBpbmxpbmUgc2NyaXB0Lg0K
K1Rlc3QgdGhhdCB3aW5kb3cub25lcnJvciBhbmQgImVycm9yIiBldmVudCBsaXN0ZW5lcnMgZnJv
bSBpc29sYXRlZCB3b3JsZCBhcmUgaW52b2tlZCBmb3IgdW5jYXVnaHQgZXhjZXB0aW9ucyBpbiB1
c2VyIHNjcmlwdHMgcnVubmluZyBpbiBpc29sYXRlIHdvcmxkcyBhcyB3ZWxsIGFzIGZvciBleGNl
cHRpb25zIGluIHRoZSBtYWluIHdvcmxkLkJ1ZyA4NTE5Lg0KKw0KK3VzZXIgc2NyaXB0IHdpbmRv
dy5vbmVycm9yOiBVbmNhdWdodCBFcnJvcjogRXJyb3IgaW4gdXNlciBzY3JpcHQgaW5saW5lIHNj
cmlwdC4gYXQgOjMzDQordXNlciBzY3JpcHQgZXJyb3IgZXZlbnQgbGlzdGVuZXI6IFVuY2F1Z2h0
IEVycm9yOiBFcnJvciBpbiB1c2VyIHNjcmlwdCBpbmxpbmUgc2NyaXB0LiBhdCA6MzMNCit1c2Vy
IHNjcmlwdCB3aW5kb3cub25lcnJvcjogVW5jYXVnaHQgRXJyb3I6IEVycm9yIGluIG1haW4gd29y
bGQgbG9hZCBoYW5kbGVyLiBhdCB3aW5kb3ctb25lcnJvci1mb3ItaXNvbGF0ZWQtd29ybGQtMi5o
dG1sOjIzDQordXNlciBzY3JpcHQgZXJyb3IgZXZlbnQgbGlzdGVuZXI6IFVuY2F1Z2h0IEVycm9y
OiBFcnJvciBpbiBtYWluIHdvcmxkIGxvYWQgaGFuZGxlci4gYXQgd2luZG93LW9uZXJyb3ItZm9y
LWlzb2xhdGVkLXdvcmxkLTIuaHRtbDoyMw0KK3VzZXIgc2NyaXB0IHdpbmRvdy5vbmVycm9yOiBV
bmNhdWdodCBFcnJvcjogRXJyb3IgaW4gdXNlciBzY3JpcHQgbG9hZCBoYW5kbGVyLiBhdCA6MjYN
Cit1c2VyIHNjcmlwdCBlcnJvciBldmVudCBsaXN0ZW5lcjogVW5jYXVnaHQgRXJyb3I6IEVycm9y
IGluIHVzZXIgc2NyaXB0IGxvYWQgaGFuZGxlci4gYXQgOjI2DQordXNlciBzY3JpcHQgd2luZG93
Lm9uZXJyb3I6IFVuY2F1Z2h0IEVycm9yOiBFcnJvciBpbiBtYWluIHdvcmxkIHNldFRpbWVvdXQg
Y2FsbGJhY2suIGF0IHdpbmRvdy1vbmVycm9yLWZvci1pc29sYXRlZC13b3JsZC0yLmh0bWw6MjcN
Cit1c2VyIHNjcmlwdCBlcnJvciBldmVudCBsaXN0ZW5lcjogVW5jYXVnaHQgRXJyb3I6IEVycm9y
IGluIG1haW4gd29ybGQgc2V0VGltZW91dCBjYWxsYmFjay4gYXQgd2luZG93LW9uZXJyb3ItZm9y
LWlzb2xhdGVkLXdvcmxkLTIuaHRtbDoyNw0KK3VzZXIgc2NyaXB0IHdpbmRvdy5vbmVycm9yOiBV
bmNhdWdodCBFcnJvcjogRXJyb3IgaW4gdXNlciBzY3JpcHQgc2V0VGltZW91dCBjYWxsYmFjay4g
YXQgOjMwDQordXNlciBzY3JpcHQgZXJyb3IgZXZlbnQgbGlzdGVuZXI6IFVuY2F1Z2h0IEVycm9y
OiBFcnJvciBpbiB1c2VyIHNjcmlwdCBzZXRUaW1lb3V0IGNhbGxiYWNrLiBhdCA6MzANCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy91c2Vyc2NyaXB0cy93aW5kb3ctb25lcnJvci1mb3ItaXNvbGF0
ZWQtd29ybGQtMS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy91c2Vyc2NyaXB0cy93aW5kb3ct
b25lcnJvci1mb3ItaXNvbGF0ZWQtd29ybGQtMS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNjg5
NWM0MTJlNjRhNGM5Y2M4YmVlYzFhYTJiODIxOTljNTBiMTUzOQotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL3VzZXJzY3JpcHRzL3dpbmRvdy1vbmVycm9yLWZvci1pc29sYXRlZC13b3Js
ZC0xLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDE0IEBACitUZXN0IHRoYXQgd2luZG93Lm9uZXJy
b3IgYW5kICJlcnJvciIgZXZlbnQgbGlzdGVuZXJzIGZyb20gbWFpbiB3b3JsZCBhcmUgaW52b2tl
ZCBmb3IgdW5jYXVnaHQgZXhjZXB0aW9ucyBpbiB1c2VyIHNjcmlwdHMgcnVubmluZyBpbiBpc29s
YXRlIHdvcmxkcyBhcyB3ZWxsIGFzIGZvciBleGNlcHRpb25zIGluIHRoZSBtYWluIHdvcmxkLkJ1
ZyA4NTE5LgorCitNYWluIHdvcmxkIHdpbmRvdy5vbmVycm9yOiBFcnJvcjogRXJyb3IgaW4gbWFp
biB3b3JsZCBpbmxpbmUgc2NyaXB0LiBhdCB3aW5kb3ctb25lcnJvci1mb3ItaXNvbGF0ZWQtd29y
bGQtMS5odG1sOjU0CitNYWluIHdvcmxkIGVycm9yIGV2ZW50IGxpc3RlbmVyOiBFcnJvcjogRXJy
b3IgaW4gbWFpbiB3b3JsZCBpbmxpbmUgc2NyaXB0LiBhdCB3aW5kb3ctb25lcnJvci1mb3ItaXNv
bGF0ZWQtd29ybGQtMS5odG1sOjU0CitNYWluIHdvcmxkIHdpbmRvdy5vbmVycm9yOiBFcnJvcjog
RXJyb3IgaW4gdXNlciBzY3JpcHQgaW5saW5lIHNjcmlwdC4gYXQgdW5kZWZpbmVkOjExCitNYWlu
IHdvcmxkIGVycm9yIGV2ZW50IGxpc3RlbmVyOiBFcnJvcjogRXJyb3IgaW4gdXNlciBzY3JpcHQg
aW5saW5lIHNjcmlwdC4gYXQgdW5kZWZpbmVkOjExCitNYWluIHdvcmxkIHdpbmRvdy5vbmVycm9y
OiBFcnJvcjogRXJyb3IgaW4gbWFpbiB3b3JsZCBsb2FkIGhhbmRsZXIuIGF0IHdpbmRvdy1vbmVy
cm9yLWZvci1pc29sYXRlZC13b3JsZC0xLmh0bWw6NDYKK01haW4gd29ybGQgZXJyb3IgZXZlbnQg
bGlzdGVuZXI6IEVycm9yOiBFcnJvciBpbiBtYWluIHdvcmxkIGxvYWQgaGFuZGxlci4gYXQgd2lu
ZG93LW9uZXJyb3ItZm9yLWlzb2xhdGVkLXdvcmxkLTEuaHRtbDo0NgorTWFpbiB3b3JsZCB3aW5k
b3cub25lcnJvcjogRXJyb3I6IEVycm9yIGluIHVzZXIgc2NyaXB0IGxvYWQgaGFuZGxlci4gYXQg
dW5kZWZpbmVkOjMKK01haW4gd29ybGQgZXJyb3IgZXZlbnQgbGlzdGVuZXI6IEVycm9yOiBFcnJv
ciBpbiB1c2VyIHNjcmlwdCBsb2FkIGhhbmRsZXIuIGF0IHVuZGVmaW5lZDozCitNYWluIHdvcmxk
IHdpbmRvdy5vbmVycm9yOiBFcnJvcjogRXJyb3IgaW4gbWFpbiB3b3JsZCBzZXRUaW1lb3V0IGNh
bGxiYWNrLiBhdCB3aW5kb3ctb25lcnJvci1mb3ItaXNvbGF0ZWQtd29ybGQtMS5odG1sOjUxCitN
YWluIHdvcmxkIGVycm9yIGV2ZW50IGxpc3RlbmVyOiBFcnJvcjogRXJyb3IgaW4gbWFpbiB3b3Js
ZCBzZXRUaW1lb3V0IGNhbGxiYWNrLiBhdCB3aW5kb3ctb25lcnJvci1mb3ItaXNvbGF0ZWQtd29y
bGQtMS5odG1sOjUxCitNYWluIHdvcmxkIHdpbmRvdy5vbmVycm9yOiBFcnJvcjogRXJyb3IgaW4g
dXNlciBzY3JpcHQgc2V0VGltZW91dCBjYWxsYmFjay4gYXQgdW5kZWZpbmVkOjgKK01haW4gd29y
bGQgZXJyb3IgZXZlbnQgbGlzdGVuZXI6IEVycm9yOiBFcnJvciBpbiB1c2VyIHNjcmlwdCBzZXRU
aW1lb3V0IGNhbGxiYWNrLiBhdCB1bmRlZmluZWQ6OApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
dXNlcnNjcmlwdHMvd2luZG93LW9uZXJyb3ItZm9yLWlzb2xhdGVkLXdvcmxkLTEuaHRtbCBiL0xh
eW91dFRlc3RzL3VzZXJzY3JpcHRzL3dpbmRvdy1vbmVycm9yLWZvci1pc29sYXRlZC13b3JsZC0x
Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uM2M2YmFjMjI4MzUyZmIyZWZiODg2NDRjYjBjNTI0YmY2OWU2ZDkw
YgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3VzZXJzY3JpcHRzL3dpbmRvdy1vbmVy
cm9yLWZvci1pc29sYXRlZC13b3JsZC0xLmh0bWwKQEAgLTAsMCArMSw2NyBAQAorPCFET0NUWVBF
IEhUTUw+Cis8aHRtbD4KKzxoZWFkPgorPC9oZWFkPgorPGJvZHk+Cis8cD5UZXN0IHRoYXQgd2lu
ZG93Lm9uZXJyb3IgYW5kICJlcnJvciIgZXZlbnQgbGlzdGVuZXJzIGZyb20gbWFpbiB3b3JsZCBh
cmUKK2ludm9rZWQgZm9yIHVuY2F1Z2h0IGV4Y2VwdGlvbnMgaW4gdXNlciBzY3JpcHRzIHJ1bm5p
bmcgaW4gaXNvbGF0ZSB3b3JsZHMgYXMKK3dlbGwgYXMgZm9yIGV4Y2VwdGlvbnMgaW4gdGhlIG1h
aW4gd29ybGQuPGEgaHJlZj0iaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTg1MTkiPkJ1ZyA4NTE5LjwvYT4KKzwvcD4KKzxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgorPHNj
cmlwdD4KKwordmFyIGV4cGVjdGVkUmVjb3JkQ291bnQgPSAxMjsKK3ZhciByZWNvcmRDb3VudCA9
IDA7Citkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY29uc29sZSIpLmFkZEV2ZW50TGlzdGVuZXIo
IkRPTU5vZGVJbnNlcnRlZCIsIGZ1bmN0aW9uKGUpIHsKKyAgICByZWNvcmRDb3VudCsrOworICAg
IGlmIChyZWNvcmRDb3VudCA9PT0gZXhwZWN0ZWRSZWNvcmRDb3VudCAmJiB3aW5kb3cubGF5b3V0
VGVzdENvbnRyb2xsZXIpCisgICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLm5vdGlmeURvbmUo
KTsKK30sIGZhbHNlKTsKKworZnVuY3Rpb24gbG9nKG1zZykgeworICAgIHZhciByZWNvcmQgPSBk
b2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTsKKyAgICByZWNvcmQuaW5uZXJIVE1MID0gbXNn
OworICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjb25zb2xlIikuYXBwZW5kQ2hpbGQocmVj
b3JkKTsKK30KKworZnVuY3Rpb24gbGFzdFVybENvbXBvbmVudCh1cmwpIHsKKyAgICByZXR1cm4g
dXJsID8gdXJsLm1hdGNoKCAvW15cL10rXC8/JC8gKVswXSA6IHVybDsKK30KKword2luZG93Lm9u
ZXJyb3IgPSBmdW5jdGlvbihtc2csIHVybCwgbGluZSkKK3sKKyAgICBsb2coIk1haW4gd29ybGQg
d2luZG93Lm9uZXJyb3I6ICIgKyBtc2cgKyAiIGF0ICIgKyBsYXN0VXJsQ29tcG9uZW50KHVybCkg
KyAiOiIgKyBsaW5lKTsKKyAgICByZXR1cm4gZmFsc2U7Cit9CisKK3dpbmRvdy5hZGRFdmVudExp
c3RlbmVyKCJlcnJvciIsIGZ1bmN0aW9uKGUpCit7CisgICAgdmFyIHVybCA9IGxhc3RVcmxDb21w
b25lbnQoZS5maWxlbmFtZSk7CisgICAgbG9nKCJNYWluIHdvcmxkIGVycm9yIGV2ZW50IGxpc3Rl
bmVyOiAiICsgZS5tZXNzYWdlICsgIiBhdCAiICsgdXJsICsgIjoiICsgZS5saW5lbm8pOworfSwg
ZmFsc2UpOworCit2YXIgZXhjZXB0aW9ucyA9IGZ1bmN0aW9uKGlzb2xhdGVkV29ybGQpCit7Cisg
ICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoImxvYWQiLCBmdW5jdGlvbihlKSB7CisgICAgICAg
IHRocm93IG5ldyBFcnJvcigiRXJyb3IgaW4gIiArIGlzb2xhdGVkV29ybGQgKyAiIGxvYWQgaGFu
ZGxlci4iKTsKKyAgICB9LCBmYWxzZSk7CisKKworICAgIHNldFRpbWVvdXQoZnVuY3Rpb24oKSB7
CisgICAgICAgIHRocm93IG5ldyBFcnJvcigiRXJyb3IgaW4gIiArIGlzb2xhdGVkV29ybGQgKyAi
IHNldFRpbWVvdXQgY2FsbGJhY2suIik7CisgICAgfSwgMCk7CisKKyAgICB0aHJvdyBuZXcgRXJy
b3IoIkVycm9yIGluICIrIGlzb2xhdGVkV29ybGQgKyAiIGlubGluZSBzY3JpcHQuIik7Cit9CisK
K2lmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpIHsKKyAgICBsYXlvdXRUZXN0Q29udHJv
bGxlci5kdW1wQXNUZXh0KCk7CisgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIud2FpdFVudGlsRG9u
ZSgpOworICAgIGxheW91dFRlc3RDb250cm9sbGVyLmFkZFVzZXJTY3JpcHQoIigiICsgZXhjZXB0
aW9ucyArICIpKCd1c2VyIHNjcmlwdCcpIiwgZmFsc2UsIHRydWUpOworfQorCitleGNlcHRpb25z
KCJtYWluIHdvcmxkIik7CisKKzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvdXNlcnNjcmlwdHMvd2luZG93LW9uZXJyb3ItZm9yLWlzb2xhdGVkLXdv
cmxkLTItZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvdXNlcnNjcmlwdHMvd2luZG93LW9uZXJy
b3ItZm9yLWlzb2xhdGVkLXdvcmxkLTItZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmI5MDlhOTk3
NWJmZmE2MTI3MGZiZTQ4ZmY1NGY0OGI3OWEyODlhMmQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy91c2Vyc2NyaXB0cy93aW5kb3ctb25lcnJvci1mb3ItaXNvbGF0ZWQtd29ybGQtMi1l
eHBlY3RlZC50eHQKQEAgLTAsMCArMSwxMyBAQAorQ09OU09MRSBNRVNTQUdFOiBsaW5lIDMwOiBF
cnJvcjogRXJyb3IgaW4gbWFpbiB3b3JsZCBpbmxpbmUgc2NyaXB0LgorVGVzdCB0aGF0IHdpbmRv
dy5vbmVycm9yIGFuZCAiZXJyb3IiIGV2ZW50IGxpc3RlbmVycyBmcm9tIGlzb2xhdGVkIHdvcmxk
IGFyZSBpbnZva2VkIGZvciB1bmNhdWdodCBleGNlcHRpb25zIGluIHVzZXIgc2NyaXB0cyBydW5u
aW5nIGluIGlzb2xhdGUgd29ybGRzIGFzIHdlbGwgYXMgZm9yIGV4Y2VwdGlvbnMgaW4gdGhlIG1h
aW4gd29ybGQuQnVnIDg1MTkuCisKK3VzZXIgc2NyaXB0IHdpbmRvdy5vbmVycm9yOiBFcnJvcjog
RXJyb3IgaW4gdXNlciBzY3JpcHQgaW5saW5lIHNjcmlwdC4gYXQgdW5kZWZpbmVkOjMxCit1c2Vy
IHNjcmlwdCBlcnJvciBldmVudCBsaXN0ZW5lcjogRXJyb3I6IEVycm9yIGluIHVzZXIgc2NyaXB0
IGlubGluZSBzY3JpcHQuIGF0IHVuZGVmaW5lZDozMQordXNlciBzY3JpcHQgd2luZG93Lm9uZXJy
b3I6IEVycm9yOiBFcnJvciBpbiBtYWluIHdvcmxkIGxvYWQgaGFuZGxlci4gYXQgd2luZG93LW9u
ZXJyb3ItZm9yLWlzb2xhdGVkLXdvcmxkLTIuaHRtbDoyMwordXNlciBzY3JpcHQgZXJyb3IgZXZl
bnQgbGlzdGVuZXI6IEVycm9yOiBFcnJvciBpbiBtYWluIHdvcmxkIGxvYWQgaGFuZGxlci4gYXQg
d2luZG93LW9uZXJyb3ItZm9yLWlzb2xhdGVkLXdvcmxkLTIuaHRtbDoyMwordXNlciBzY3JpcHQg
d2luZG93Lm9uZXJyb3I6IEVycm9yOiBFcnJvciBpbiB1c2VyIHNjcmlwdCBsb2FkIGhhbmRsZXIu
IGF0IHVuZGVmaW5lZDoyNAordXNlciBzY3JpcHQgZXJyb3IgZXZlbnQgbGlzdGVuZXI6IEVycm9y
OiBFcnJvciBpbiB1c2VyIHNjcmlwdCBsb2FkIGhhbmRsZXIuIGF0IHVuZGVmaW5lZDoyNAordXNl
ciBzY3JpcHQgd2luZG93Lm9uZXJyb3I6IEVycm9yOiBFcnJvciBpbiBtYWluIHdvcmxkIHNldFRp
bWVvdXQgY2FsbGJhY2suIGF0IHdpbmRvdy1vbmVycm9yLWZvci1pc29sYXRlZC13b3JsZC0yLmh0
bWw6MjcKK3VzZXIgc2NyaXB0IGVycm9yIGV2ZW50IGxpc3RlbmVyOiBFcnJvcjogRXJyb3IgaW4g
bWFpbiB3b3JsZCBzZXRUaW1lb3V0IGNhbGxiYWNrLiBhdCB3aW5kb3ctb25lcnJvci1mb3ItaXNv
bGF0ZWQtd29ybGQtMi5odG1sOjI3Cit1c2VyIHNjcmlwdCB3aW5kb3cub25lcnJvcjogRXJyb3I6
IEVycm9yIGluIHVzZXIgc2NyaXB0IHNldFRpbWVvdXQgY2FsbGJhY2suIGF0IHVuZGVmaW5lZDoy
OAordXNlciBzY3JpcHQgZXJyb3IgZXZlbnQgbGlzdGVuZXI6IEVycm9yOiBFcnJvciBpbiB1c2Vy
IHNjcmlwdCBzZXRUaW1lb3V0IGNhbGxiYWNrLiBhdCB1bmRlZmluZWQ6MjgKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL3VzZXJzY3JpcHRzL3dpbmRvdy1vbmVycm9yLWZvci1pc29sYXRlZC13b3Js
ZC0yLmh0bWwgYi9MYXlvdXRUZXN0cy91c2Vyc2NyaXB0cy93aW5kb3ctb25lcnJvci1mb3ItaXNv
bGF0ZWQtd29ybGQtMi5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmE2ZWM2OTlmOGM2MGJiNTI0ZDkxNDQ4YjU3
YWQ3MzJhY2RhYzA5MTEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy91c2Vyc2NyaXB0
cy93aW5kb3ctb25lcnJvci1mb3ItaXNvbGF0ZWQtd29ybGQtMi5odG1sCkBAIC0wLDAgKzEsNjcg
QEAKKzwhRE9DVFlQRSBIVE1MPgorPGh0bWw+Cis8aGVhZD4KKzwvaGVhZD4KKzxib2R5PgorPHA+
VGVzdCB0aGF0IHdpbmRvdy5vbmVycm9yIGFuZCAiZXJyb3IiIGV2ZW50IGxpc3RlbmVycyBmcm9t
IGlzb2xhdGVkIHdvcmxkIGFyZQoraW52b2tlZCBmb3IgdW5jYXVnaHQgZXhjZXB0aW9ucyBpbiB1
c2VyIHNjcmlwdHMgcnVubmluZyBpbiBpc29sYXRlIHdvcmxkcyBhcword2VsbCBhcyBmb3IgZXhj
ZXB0aW9ucyBpbiB0aGUgbWFpbiB3b3JsZC48YSBocmVmPSJodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9ODUxOSI+QnVnIDg1MTkuPC9hPgorPC9wPgorPGRpdiBpZD0iY29u
c29sZSI+PC9kaXY+Cis8c2NyaXB0PgorCit2YXIgZXhwZWN0ZWRSZWNvcmRDb3VudCA9IDEwOwor
dmFyIHJlY29yZENvdW50ID0gMDsKK2RvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjb25zb2xlIiku
YWRkRXZlbnRMaXN0ZW5lcigiRE9NTm9kZUluc2VydGVkIiwgZnVuY3Rpb24oZSkgeworICAgIGlm
ICgrK3JlY29yZENvdW50ID09PSBleHBlY3RlZFJlY29yZENvdW50ICYmIHdpbmRvdy5sYXlvdXRU
ZXN0Q29udHJvbGxlcikKKyAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIubm90aWZ5RG9uZSgp
OworfSwgZmFsc2UpOworCit2YXIgdGhyb3dFeGNlcHRpb25zID0gZnVuY3Rpb24oaXNvbGF0ZWRX
b3JsZCkKK3sKKyAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigibG9hZCIsIGZ1bmN0aW9uKGUp
IHsKKyAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJFcnJvciBpbiAiICsgaXNvbGF0ZWRXb3JsZCAr
ICIgbG9hZCBoYW5kbGVyLiIpOworICAgIH0sIGZhbHNlKTsKKworICAgIHNldFRpbWVvdXQoZnVu
Y3Rpb24oKSB7CisgICAgICAgIHRocm93IG5ldyBFcnJvcigiRXJyb3IgaW4gIiArIGlzb2xhdGVk
V29ybGQgKyAiIHNldFRpbWVvdXQgY2FsbGJhY2suIik7CisgICAgfSwgMCk7CisgICAgCisgICAg
dGhyb3cgbmV3IEVycm9yKCJFcnJvciBpbiAiKyBpc29sYXRlZFdvcmxkICsgIiBpbmxpbmUgc2Ny
aXB0LiIpOworfTsKKwordmFyIGVycm9ySGFuZGxlcnMgPSBmdW5jdGlvbihpc29sYXRlZFdvcmxk
KQoreworICAgIGZ1bmN0aW9uIGxhc3RVcmxDb21wb25lbnQodXJsKSB7CisgICAgICAgIHJldHVy
biB1cmwgPyB1cmwubWF0Y2goIC9bXlwvXStcLz8kLyApWzBdIDogdXJsOworICAgIH0KKworICAg
IGZ1bmN0aW9uIGxvZyhtc2cpIHsKKyAgICAgICAgdmFyIHJlY29yZCA9IGRvY3VtZW50LmNyZWF0
ZUVsZW1lbnQoImRpdiIpOworICAgICAgICByZWNvcmQuaW5uZXJIVE1MID0gbXNnOworICAgICAg
ICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY29uc29sZSIpLmFwcGVuZENoaWxkKHJlY29yZCk7
CisgICAgfQorCisgICAgd2luZG93Lm9uZXJyb3IgPSBmdW5jdGlvbihtc2csIHVybCwgbGluZSkg
eworICAgICAgICBsb2coaXNvbGF0ZWRXb3JsZCArICIgd2luZG93Lm9uZXJyb3I6ICIgKyBtc2cg
KyAiIGF0ICIgKyBsYXN0VXJsQ29tcG9uZW50KHVybCkgKyAiOiIgKyBsaW5lLCAiKiIpOworICAg
ICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorCisgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIo
ImVycm9yIiwgZnVuY3Rpb24oZSkgeworICAgICAgICB2YXIgdXJsID0gbGFzdFVybENvbXBvbmVu
dChlLmZpbGVuYW1lKTsKKyAgICAgICAgbG9nKGlzb2xhdGVkV29ybGQgKyAiIGVycm9yIGV2ZW50
IGxpc3RlbmVyOiAiICsgZS5tZXNzYWdlICsgIiBhdCAiICsgdXJsICsgIjoiICsgZS5saW5lbm8s
ICIqIik7CisgICAgICAgIGUucHJldmVudERlZmF1bHQoKTsKKyAgICB9LCBmYWxzZSk7Cit9Owor
CitpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKSB7CisgICAgbGF5b3V0VGVzdENvbnRy
b2xsZXIuZHVtcEFzVGV4dCgpOworICAgIGxheW91dFRlc3RDb250cm9sbGVyLndhaXRVbnRpbERv
bmUoKTsKKyAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5hZGRVc2VyU2NyaXB0KCIoIiArIGVycm9y
SGFuZGxlcnMgKyAiKSgndXNlciBzY3JpcHQnKTsgKCIgKyB0aHJvd0V4Y2VwdGlvbnMgKyAiKSgn
dXNlciBzY3JpcHQnKSIsIGZhbHNlLCB0cnVlKTsKK30KKwordGhyb3dFeGNlcHRpb25zKCJtYWlu
IHdvcmxkIik7CisKKzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvV2Vi
Q29yZS9BbmRyb2lkLmpzY2JpbmRpbmdzLm1rIGIvV2ViQ29yZS9BbmRyb2lkLmpzY2JpbmRpbmdz
Lm1rCmluZGV4IDA4MTYxMTM0OTlmMzM1MDU0NWRhMDFkY2U5ZmE5ODkwZDQ0OTA1OTcuLmE0YjA5
MmY3ZTU3YTllZDk3MzU2ZDJmNzA5ZTFhY2EwZDk5YzlkZjcgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUv
QW5kcm9pZC5qc2NiaW5kaW5ncy5taworKysgYi9XZWJDb3JlL0FuZHJvaWQuanNjYmluZGluZ3Mu
bWsKQEAgLTk2LDYgKzk2LDcgQEAgTE9DQUxfU1JDX0ZJTEVTICs9IFwKIAliaW5kaW5ncy9qcy9K
U0RldmljZU9yaWVudGF0aW9uRXZlbnRDdXN0b20uY3BwIFwKIAliaW5kaW5ncy9qcy9KU0RvY3Vt
ZW50Q3VzdG9tLmNwcCBcCiAJYmluZGluZ3MvanMvSlNFbGVtZW50Q3VzdG9tLmNwcCBcCisJYmlu
ZGluZ3MvanMvSlNFcnJvckhhbmRsZXIuY3BwIFwKIAliaW5kaW5ncy9qcy9KU0V2ZW50Q3VzdG9t
LmNwcCBcCiAJYmluZGluZ3MvanMvSlNFdmVudExpc3RlbmVyLmNwcCBcCiAJYmluZGluZ3MvanMv
SlNFdmVudFRhcmdldC5jcHAgXApAQCAtMTU2LDcgKzE1Nyw2IEBAIExPQ0FMX1NSQ19GSUxFUyAr
PSBcCiAJYmluZGluZ3MvanMvSlNXZWJLaXRQb2ludEN1c3RvbS5jcHAgXAogCWJpbmRpbmdzL2pz
L0pTV29ya2VyQ29udGV4dEJhc2UuY3BwIFwKIAliaW5kaW5ncy9qcy9KU1dvcmtlckNvbnRleHRD
dXN0b20uY3BwIFwKLQliaW5kaW5ncy9qcy9KU1dvcmtlckNvbnRleHRFcnJvckhhbmRsZXIuY3Bw
IFwKIAliaW5kaW5ncy9qcy9KU1dvcmtlckN1c3RvbS5jcHAgXAogCWJpbmRpbmdzL2pzL0pTWE1M
SHR0cFJlcXVlc3RDdXN0b20uY3BwIFwKIAliaW5kaW5ncy9qcy9KU1hNTEh0dHBSZXF1ZXN0VXBs
b2FkQ3VzdG9tLmNwcCBcCmRpZmYgLS1naXQgYS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0IGIvV2Vi
Q29yZS9DTWFrZUxpc3RzLnR4dAppbmRleCA3NjAzM2NmNjljYmRmNmE2YjcyMGU5ZGQ5NzU1YTlm
NTczMjVkMzY1Li5jYTMwNWM0YzdkOWZjOTA0YjJhNTVmNzAyNTMzMzhiZmFkNWVjMDA2IDEwMDY0
NAotLS0gYS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CisrKyBiL1dlYkNvcmUvQ01ha2VMaXN0cy50
eHQKQEAgLTYxMyw2ICs2MTMsNyBAQCBTRVQoV2ViQ29yZV9TT1VSQ0VTCiAgICAgYmluZGluZ3Mv
anMvSlNET01XaW5kb3dTaGVsbC5jcHAKICAgICBiaW5kaW5ncy9qcy9KU0RPTVdyYXBwZXIuY3Bw
CiAgICAgYmluZGluZ3MvanMvSlNFbGVtZW50Q3VzdG9tLmNwcAorICAgIGJpbmRpbmdzL2pzL0pT
RXJyb3JIYW5kbGVyLmNwcAogICAgIGJpbmRpbmdzL2pzL0pTRXZlbnRDdXN0b20uY3BwCiAgICAg
YmluZGluZ3MvanMvSlNFdmVudExpc3RlbmVyLmNwcAogICAgIGJpbmRpbmdzL2pzL0pTRXZlbnRT
b3VyY2VDdXN0b20uY3BwCkBAIC02NzYsNyArNjc3LDYgQEAgU0VUKFdlYkNvcmVfU09VUkNFUwog
ICAgIGJpbmRpbmdzL2pzL0pTV2ViU29ja2V0Q3VzdG9tLmNwcAogICAgIGJpbmRpbmdzL2pzL0pT
V29ya2VyQ29udGV4dEJhc2UuY3BwCiAgICAgYmluZGluZ3MvanMvSlNXb3JrZXJDb250ZXh0Q3Vz
dG9tLmNwcAotICAgIGJpbmRpbmdzL2pzL0pTV29ya2VyQ29udGV4dEVycm9ySGFuZGxlci5jcHAK
ICAgICBiaW5kaW5ncy9qcy9KU1dvcmtlckN1c3RvbS5jcHAKICAgICBiaW5kaW5ncy9qcy9KU1hN
TEh0dHBSZXF1ZXN0Q3VzdG9tLmNwcAogICAgIGJpbmRpbmdzL2pzL0pTWE1MSHR0cFJlcXVlc3RV
cGxvYWRDdXN0b20uY3BwCmRpZmYgLS1naXQgYS9XZWJDb3JlL0NoYW5nZUxvZyBiL1dlYkNvcmUv
Q2hhbmdlTG9nCmluZGV4IDkxNWM1YjY1Nzc3NjhiNjhjODAzMzFlNGIxMWI4YmVjN2Y0MTY0NGIu
LjhiNTFhNGI3YzQ4MzdmOTg3YmQ3MzQzNjgwOTgyZTg0ZDhlZDQwMzkgMTAwNjQ0Ci0tLSBhL1dl
YkNvcmUvQ2hhbmdlTG9nCisrKyBiL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsOTIgQEAK
KzIwMTAtMTAtMTkgIGFsZXhAd2Via2l0Lm9yZyAgPGFsZXhAd2Via2l0Lm9yZ0AyNjhmNDVjYy1j
ZDA5LTA0MTAtYWIzYy1kNTI2OTFiNGRiZmM+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgV2ViQ29yZSBkb2Vzbid0IGZpcmUgd2luZG93Lm9uZXJyb3Ig
ZXZlbnQgd2hlbiB1bmNhdWdodCBKYXZhU2NyaXB0IGV4Y2VwdGlvbnMgYXJlIHRocm93bgorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODUxOQorCisgICAg
ICAgIFVuY2F1Z2h0IGV4Y2VwdGlvbnMgYXJlIHByb3BhZ2F0ZWQgdG8gd2luZG93Lm9uZXJyb3Ig
aGFuZGVyIGlmIG9uZSBpcyBwcmVzZW50LgorICAgICAgICBUaGUgaGFuZGxlciBpcyBleHBlY3Rl
ZCB0byBiZSBhIGZ1bmN0aW9uIGFjY2VwdGluZyB0aHJlZSBhcmd1bWVudHM6IGVycm9yIG1lc3Nh
Z2UsCisgICAgICAgIHJlc291cmNlIHVybCBhbmQgbGluZSBudW1iZXIgd2hlcmUgdGhlIGV4Y2Vw
dGlvbiBvY2N1cmVkLgorCisgICAgICAgIEl0IHdhcyBkZWNpZGVkIHRvIGRpc3BhdGNoIEVycm9y
RXZlbnQgdG8gYWxsIGxpc3RlbmVycy9oYW5kbGVycyBubyBtYXR0ZXIgaWYgdGhleQorICAgICAg
ICB3ZXJlIGNyZWF0ZWQgaW4gdGhlIHNhbWUgaXNvbGF0ZWQgd29ybGQgd2hlcmUgdGhlIGV4Y2Vw
dGlvbiBvY2N1cmVkIG9yIG5vdC4KKworICAgICAgICBUZXN0czogZmFzdC9ldmVudHMvd2luZG93
LW9uZXJyb3IxLmh0bWwKKyAgICAgICAgICAgICAgIGZhc3QvZXZlbnRzL3dpbmRvdy1vbmVycm9y
MTAuaHRtbAorICAgICAgICAgICAgICAgZmFzdC9ldmVudHMvd2luZG93LW9uZXJyb3IxMS5odG1s
CisgICAgICAgICAgICAgICBmYXN0L2V2ZW50cy93aW5kb3ctb25lcnJvcjIuaHRtbAorICAgICAg
ICAgICAgICAgZmFzdC9ldmVudHMvd2luZG93LW9uZXJyb3IzLmh0bWwKKyAgICAgICAgICAgICAg
IGZhc3QvZXZlbnRzL3dpbmRvdy1vbmVycm9yNC5odG1sCisgICAgICAgICAgICAgICBmYXN0L2V2
ZW50cy93aW5kb3ctb25lcnJvcjUuaHRtbAorICAgICAgICAgICAgICAgZmFzdC9ldmVudHMvd2lu
ZG93LW9uZXJyb3I2Lmh0bWwKKyAgICAgICAgICAgICAgIGZhc3QvZXZlbnRzL3dpbmRvdy1vbmVy
cm9yNy5odG1sCisgICAgICAgICAgICAgICBmYXN0L2V2ZW50cy93aW5kb3ctb25lcnJvcjguaHRt
bAorICAgICAgICAgICAgICAgZmFzdC9ldmVudHMvd2luZG93LW9uZXJyb3I5Lmh0bWwKKyAgICAg
ICAgICAgICAgIGh0dHAvdGVzdHMvc2VjdXJpdHkvd2luZG93LW9uZXJyb3ItZXhjZXB0aW9uLWlu
LWlmcmFtZS5odG1sCisgICAgICAgICAgICAgICB1c2Vyc2NyaXB0cy93aW5kb3ctb25lcnJvci1m
b3ItaXNvbGF0ZWQtd29ybGQtMS5odG1sCisgICAgICAgICAgICAgICB1c2Vyc2NyaXB0cy93aW5k
b3ctb25lcnJvci1mb3ItaXNvbGF0ZWQtd29ybGQtMi5odG1sCisKKyAgICAgICAgKiBBbmRyb2lk
LmpzY2JpbmRpbmdzLm1rOgorICAgICAgICAqIENNYWtlTGlzdHMudHh0OgorICAgICAgICAqIEdO
VW1ha2VmaWxlLmFtOgorICAgICAgICAqIFdlYkNvcmUuZ3lwaToKKyAgICAgICAgKiBXZWJDb3Jl
Lm9yZGVyOgorICAgICAgICAqIFdlYkNvcmUucHJvOgorICAgICAgICAqIFdlYkNvcmUudmNwcm9q
L1dlYkNvcmUudmNwcm9qOgorICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvajoKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU0JpbmRpbmdzQWxsSW5PbmUuY3BwOgorICAg
ICAgICAqIGJpbmRpbmdzL2pzL0pTRE9NQmluZGluZy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpy
ZXBvcnRFeGNlcHRpb24pOgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pTRXJyb3JIYW5kbGVyLmNw
cDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpKU0Vycm9ySGFuZGxlcjo6SlNFcnJvckhhbmRs
ZXIpOgorICAgICAgICAoV2ViQ29yZTo6SlNFcnJvckhhbmRsZXI6On5KU0Vycm9ySGFuZGxlcik6
CisgICAgICAgIChXZWJDb3JlOjpKU0Vycm9ySGFuZGxlcjo6aGFuZGxlRXZlbnQpOgorICAgICAg
ICAqIGJpbmRpbmdzL2pzL0pTRXJyb3JIYW5kbGVyLmg6IEFkZGVkLgorICAgICAgICAoV2ViQ29y
ZTo6SlNFcnJvckhhbmRsZXI6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpjcmVhdGVKU0Vy
cm9ySGFuZGxlcik6CisgICAgICAgICogYmluZGluZ3MvanMvSlNXb3JrZXJDb250ZXh0RXJyb3JI
YW5kbGVyLmNwcDogUmVtb3ZlZC4KKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU1dvcmtlckNvbnRl
eHRFcnJvckhhbmRsZXIuaDogUmVtb3ZlZC4gVGhpcyBjbGFzcyB3YXMgcmVmYWN0b3JlZCBpbnRv
IG1vcmUgZ2VuZXJhbAorICAgICAgICBKU0Vycm9ySGFuZGxlciB0aGF0IHJlcHJlc2VudHMgZ2xv
YmFsIG9uZXJybyBoYW5kZXIgb24gV29ya2VyIENvbnRleHQgb3Igb24gRE9NV2luZG93LgorICAg
ICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtOgorICAgICAgICAqIGJp
bmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvclY4LnBtOgorICAgICAgICAqIGJpbmRpbmdzL3Y4
L1Y4Q29uc29sZU1lc3NhZ2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6VjhDb25zb2xlTWVzc2Fn
ZTo6ZGlzcGF0Y2hOb3cpOgorICAgICAgICAoV2ViQ29yZTo6VjhDb25zb2xlTWVzc2FnZTo6aGFu
ZGxlcik6IHRoZSBtZXRob2Qgd2FzIGNoYW5nZWQgdG8gdXNlIGdlbmVyaWMgV2ViQ29yZSBleGNl
cHRpb24KKyAgICAgICAgcmVwb3J0aW5nIG1lY2hhbmlzbSB3aGljaCBpcyBhbHNvIHVzZWQgYnkg
SlNDIGJpbmRpbmdzLgorICAgICAgICAqIGJpbmRpbmdzL3Y4L1Y4Q29uc29sZU1lc3NhZ2UuaDoK
KyAgICAgICAgKFdlYkNvcmU6OlY4Q29uc29sZU1lc3NhZ2U6OlNjb3BlOjpTY29wZSk6CisgICAg
ICAgIChXZWJDb3JlOjpWOENvbnNvbGVNZXNzYWdlOjpTY29wZTo6flNjb3BlKToKKyAgICAgICAg
KiBiaW5kaW5ncy92OC9WOFdpbmRvd0Vycm9ySGFuZGxlci5jcHA6IEFkZGVkLgorICAgICAgICAo
V2ViQ29yZTo6VjhXaW5kb3dFcnJvckhhbmRsZXI6OlY4V2luZG93RXJyb3JIYW5kbGVyKToKKyAg
ICAgICAgKFdlYkNvcmU6OlY4V2luZG93RXJyb3JIYW5kbGVyOjpjYWxsTGlzdGVuZXJGdW5jdGlv
bik6CisgICAgICAgICogYmluZGluZ3MvdjgvVjhXaW5kb3dFcnJvckhhbmRsZXIuaDogQWRkZWQu
CisgICAgICAgIChXZWJDb3JlOjpWOFdpbmRvd0Vycm9ySGFuZGxlcjo6Y3JlYXRlKToKKyAgICAg
ICAgKiBiaW5kaW5ncy92OC9Xb3JrZXJDb250ZXh0RXhlY3V0aW9uUHJveHkuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6djhNZXNzYWdlSGFuZGxlcik6CisgICAgICAgICogYmluZGluZ3MvdjgvV29y
a2VyU2NyaXB0Q29udHJvbGxlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpXb3JrZXJTY3JpcHRD
b250cm9sbGVyOjpldmFsdWF0ZSk6CisgICAgICAgICogZG9tL0RvY3VtZW50LmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OkRvY3VtZW50OjplcnJvckV2ZW50VGFyZ2V0KToKKyAgICAgICAgKFdlYkNv
cmU6OkRvY3VtZW50Ojpsb2dFeGNlcHRpb25Ub0NvbnNvbGUpOgorICAgICAgICAqIGRvbS9Eb2N1
bWVudC5oOgorICAgICAgICAqIGRvbS9TY3JpcHRFeGVjdXRpb25Db250ZXh0LmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OlNjcmlwdEV4ZWN1dGlvbkNvbnRleHQ6OlBlbmRpbmdFeGNlcHRpb246OlBl
bmRpbmdFeGNlcHRpb24pOgorICAgICAgICAoV2ViQ29yZTo6U2NyaXB0RXhlY3V0aW9uQ29udGV4
dDo6U2NyaXB0RXhlY3V0aW9uQ29udGV4dCk6CisgICAgICAgIChXZWJDb3JlOjpTY3JpcHRFeGVj
dXRpb25Db250ZXh0OjpyZXBvcnRFeGNlcHRpb24pOiB0aGlzIG1ldGhvZCBpcyBub3QgdmlydHVh
bCBhbnltb3JlIHRvCisgICAgICAgIGVuc3VyZSB0aGF0IGVycm9yIGV2ZW50IGRpc3BhdGNoaW5n
IGFsZ29yaXRobSBpcyB0aGUgc2FtZSBpbiBXb3JrZXJDb250ZXh0IGFuZCBpbiBEb2N1bWVudC4K
KyAgICAgICAgKFdlYkNvcmU6OlNjcmlwdEV4ZWN1dGlvbkNvbnRleHQ6OmRpc3BhdGNoRXJyb3JF
dmVudCk6CisgICAgICAgICogZG9tL1NjcmlwdEV4ZWN1dGlvbkNvbnRleHQuaDoKKyAgICAgICAg
KiB3b3JrZXJzL0RlZmF1bHRTaGFyZWRXb3JrZXJSZXBvc2l0b3J5LmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OnBvc3RFeGNlcHRpb25UYXNrKToKKyAgICAgICAgKiB3b3JrZXJzL1dvcmtlckNvbnRl
eHQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6V29ya2VyQ29udGV4dDo6V29ya2VyQ29udGV4dCk6
CisgICAgICAgIChXZWJDb3JlOjpXb3JrZXJDb250ZXh0OjplcnJvckV2ZW50VGFyZ2V0KToKKyAg
ICAgICAgKFdlYkNvcmU6OldvcmtlckNvbnRleHQ6OmxvZ0V4Y2VwdGlvblRvQ29uc29sZSk6Cisg
ICAgICAgICogd29ya2Vycy9Xb3JrZXJDb250ZXh0Lmg6CisgICAgICAgICogd29ya2Vycy9Xb3Jr
ZXJNZXNzYWdpbmdQcm94eS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpXb3JrZXJFeGNlcHRpb25U
YXNrOjpwZXJmb3JtVGFzayk6CisKIDIwMTAtMTAtMTggIFBhdmVsIEZlbGRtYW4gIDxwZmVsZG1h
bkBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgTm90IHJldmlld2VkLiBCdWlsZCBmaXguCmRpZmYg
LS1naXQgYS9XZWJDb3JlL0dOVW1ha2VmaWxlLmFtIGIvV2ViQ29yZS9HTlVtYWtlZmlsZS5hbQpp
bmRleCA3MzVmNjFiM2VjYWVkODAyZGIyYTY0NzI1MTUwOWFlNDVhYTIxZTk1Li4wMWUzN2VhYTNm
NGJmM2RkZTEyMzA5NDE5ZGNhNTdhNzE5NjgwNWQ3IDEwMDY0NAotLS0gYS9XZWJDb3JlL0dOVW1h
a2VmaWxlLmFtCisrKyBiL1dlYkNvcmUvR05VbWFrZWZpbGUuYW0KQEAgLTcxNyw2ICs3MTcsOCBA
QCB3ZWJjb3JlX3NvdXJjZXMgKz0gXAogCVdlYkNvcmUvYmluZGluZ3MvanMvSlNFbGVtZW50Q3Vz
dG9tLmNwcCBcCiAJV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0VudHJ5Q3VzdG9tLmNwcCBcCiAJV2Vi
Q29yZS9iaW5kaW5ncy9qcy9KU0VudHJ5U3luY0N1c3RvbS5jcHAgXAorCVdlYkNvcmUvYmluZGlu
Z3MvanMvSlNFcnJvckhhbmRsZXIuY3BwIFwKKwlXZWJDb3JlL2JpbmRpbmdzL2pzL0pTRXJyb3JI
YW5kbGVyLmggXAogCVdlYkNvcmUvYmluZGluZ3MvanMvSlNFdmVudEN1c3RvbS5jcHAgXAogCVdl
YkNvcmUvYmluZGluZ3MvanMvSlNFdmVudExpc3RlbmVyLmNwcCBcCiAJV2ViQ29yZS9iaW5kaW5n
cy9qcy9KU0V2ZW50TGlzdGVuZXIuaCBcCkBAIC04MDMsOCArODA1LDYgQEAgd2ViY29yZV9zb3Vy
Y2VzICs9IFwKIAlXZWJDb3JlL2JpbmRpbmdzL2pzL0pTV29ya2VyQ29udGV4dEJhc2UuY3BwIFwK
IAlXZWJDb3JlL2JpbmRpbmdzL2pzL0pTV29ya2VyQ29udGV4dEJhc2UuaCBcCiAJV2ViQ29yZS9i
aW5kaW5ncy9qcy9KU1dvcmtlckNvbnRleHRDdXN0b20uY3BwIFwKLQlXZWJDb3JlL2JpbmRpbmdz
L2pzL0pTV29ya2VyQ29udGV4dEVycm9ySGFuZGxlci5jcHAgXAotCVdlYkNvcmUvYmluZGluZ3Mv
anMvSlNXb3JrZXJDb250ZXh0RXJyb3JIYW5kbGVyLmggXAogCVdlYkNvcmUvYmluZGluZ3MvanMv
SlNXb3JrZXJDdXN0b20uY3BwIFwKIAlXZWJDb3JlL2JpbmRpbmdzL2pzL0pTWE1MSHR0cFJlcXVl
c3RDdXN0b20uY3BwIFwKIAlXZWJDb3JlL2JpbmRpbmdzL2pzL0pTWE1MSHR0cFJlcXVlc3RVcGxv
YWRDdXN0b20uY3BwIFwKZGlmZiAtLWdpdCBhL1dlYkNvcmUvV2ViQ29yZS5neXBpIGIvV2ViQ29y
ZS9XZWJDb3JlLmd5cGkKaW5kZXggNzg4MDYwNjc4NDVkYTQxZDVmNWEwYTZiOWU4NmJjZjRjMjk5
ZDk5Mi4uYmYyNGY5ZGU5ZjQ1OTdiMDU1OTI0Njc3MzE0ODA4ZDMyNTcwMTE1NiAxMDA2NDQKLS0t
IGEvV2ViQ29yZS9XZWJDb3JlLmd5cGkKKysrIGIvV2ViQ29yZS9XZWJDb3JlLmd5cGkKQEAgLTU5
Myw2ICs1OTMsOCBAQAogICAgICAgICAgICAgJ2JpbmRpbmdzL2pzL0pTRWxlbWVudEN1c3RvbS5j
cHAnLAogICAgICAgICAgICAgJ2JpbmRpbmdzL2pzL0pTRW50cnlDdXN0b20uY3BwJywKICAgICAg
ICAgICAgICdiaW5kaW5ncy9qcy9KU0VudHJ5U3luY0N1c3RvbS5jcHAnLAorICAgICAgICAgICAg
J2JpbmRpbmdzL2pzL0pTRXJyb3JIYW5kbGVyLmNwcCcsCisgICAgICAgICAgICAnYmluZGluZ3Mv
anMvSlNFcnJvckhhbmRsZXIuaCcsCiAgICAgICAgICAgICAnYmluZGluZ3MvanMvSlNFdmVudEN1
c3RvbS5jcHAnLAogICAgICAgICAgICAgJ2JpbmRpbmdzL2pzL0pTRXZlbnRMaXN0ZW5lci5jcHAn
LAogICAgICAgICAgICAgJ2JpbmRpbmdzL2pzL0pTRXZlbnRMaXN0ZW5lci5oJywKQEAgLTY4NSw4
ICs2ODcsNiBAQAogICAgICAgICAgICAgJ2JpbmRpbmdzL2pzL0pTV29ya2VyQ29udGV4dEJhc2Uu
Y3BwJywKICAgICAgICAgICAgICdiaW5kaW5ncy9qcy9KU1dvcmtlckNvbnRleHRCYXNlLmgnLAog
ICAgICAgICAgICAgJ2JpbmRpbmdzL2pzL0pTV29ya2VyQ29udGV4dEN1c3RvbS5jcHAnLAotICAg
ICAgICAgICAgJ2JpbmRpbmdzL2pzL0pTV29ya2VyQ29udGV4dEVycm9ySGFuZGxlci5jcHAnLAot
ICAgICAgICAgICAgJ2JpbmRpbmdzL2pzL0pTV29ya2VyQ29udGV4dEVycm9ySGFuZGxlci5oJywK
ICAgICAgICAgICAgICdiaW5kaW5ncy9qcy9KU1dvcmtlckN1c3RvbS5jcHAnLAogICAgICAgICAg
ICAgJ2JpbmRpbmdzL2pzL0pTWE1MSHR0cFJlcXVlc3RDdXN0b20uY3BwJywKICAgICAgICAgICAg
ICdiaW5kaW5ncy9qcy9KU1hNTEh0dHBSZXF1ZXN0VXBsb2FkQ3VzdG9tLmNwcCcsCkBAIC05NDks
NiArOTQ5LDggQEAKICAgICAgICAgICAgICdiaW5kaW5ncy92OC9WOFNWR1BPRFR5cGVXcmFwcGVy
LmgnLAogICAgICAgICAgICAgJ2JpbmRpbmdzL3Y4L1Y4VXRpbGl0aWVzLmNwcCcsCiAgICAgICAg
ICAgICAnYmluZGluZ3MvdjgvVjhVdGlsaXRpZXMuaCcsCisgICAgICAgICAgICAnYmluZGluZ3Mv
djgvVjhXaW5kb3dFcnJvckhhbmRsZXIuY3BwJywKKyAgICAgICAgICAgICdiaW5kaW5ncy92OC9W
OFdpbmRvd0Vycm9ySGFuZGxlci5oJywKICAgICAgICAgICAgICdiaW5kaW5ncy92OC9WOFdvcmtl
ckNvbnRleHRFcnJvckhhbmRsZXIuY3BwJywKICAgICAgICAgICAgICdiaW5kaW5ncy92OC9WOFdv
cmtlckNvbnRleHRFcnJvckhhbmRsZXIuaCcsCiAgICAgICAgICAgICAnYmluZGluZ3MvdjgvVjhX
b3JrZXJDb250ZXh0RXZlbnRMaXN0ZW5lci5jcHAnLApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9XZWJD
b3JlLm9yZGVyIGIvV2ViQ29yZS9XZWJDb3JlLm9yZGVyCmluZGV4IDA2ZGZiM2Q3MzU5YmJkZWVm
NTg3Mjg2MjcyZThmYzQzMmZhZDBlODcuLmQwNWY1OTQ4MWViODM5YmM2YjBkODhmNDU0MjA3MGQ3
NzRmZWMzMTIgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvV2ViQ29yZS5vcmRlcgorKysgYi9XZWJDb3Jl
L1dlYkNvcmUub3JkZXIKQEAgLTI1MjEzLDEzICsyNTIxMyw5IEBAIF9fWk43V2ViQ29yZTE1SlNX
b3JrZXJDb250ZXh0MTBzZXRUaW1lb3V0RVBOM0pTQzlFeGVjU3RhdGVFUktOUzFfN0FyZ0xpc3RF
CiBfX1pON1dlYkNvcmUxM1dvcmtlckNvbnRleHQxMHNldFRpbWVvdXRFUE5TXzE1U2NoZWR1bGVk
QWN0aW9uRWkKIF9fWk43V2ViQ29yZTE3V29ya2VyU2hhcmVkVGltZXIxMXNldEZpcmVUaW1lRWQK
IF9fWk43V2ViQ29yZTE1U2NoZWR1bGVkQWN0aW9uN2V4ZWN1dGVFUE5TXzEzV29ya2VyQ29udGV4
dEUKLV9fWk43V2ViQ29yZTI3SlNXb3JrZXJDb250ZXh0RXJyb3JIYW5kbGVyQzFFUE4zSlNDOEpT
T2JqZWN0RVMzX2JQTlNfMTVET01XcmFwcGVyV29ybGRFCi1fX1pON1dlYkNvcmUyN0pTV29ya2Vy
Q29udGV4dEVycm9ySGFuZGxlckMyRVBOM0pTQzhKU09iamVjdEVTM19iUE5TXzE1RE9NV3JhcHBl
cldvcmxkRQogX19aTjdXZWJDb3JlMTBFcnJvckV2ZW50QzFFUktOU182U3RyaW5nRVMzX2oKIF9f
Wk43V2ViQ29yZTEwRXJyb3JFdmVudEMyRVJLTlNfNlN0cmluZ0VTM19qCi1fX1pON1dlYkNvcmUy
N0pTV29ya2VyQ29udGV4dEVycm9ySGFuZGxlcjExaGFuZGxlRXZlbnRFUE5TXzIyU2NyaXB0RXhl
Y3V0aW9uQ29udGV4dEVQTlNfNUV2ZW50RQogX19aTjdXZWJDb3JlMTBFcnJvckV2ZW50RDBFdgot
X19aTjdXZWJDb3JlMjdKU1dvcmtlckNvbnRleHRFcnJvckhhbmRsZXJEMEV2CiBfX1pON1dlYkNv
cmUxN2pzV29ya2VyT25tZXNzYWdlRVBOM0pTQzlFeGVjU3RhdGVFTlMwXzdKU1ZhbHVlRVJLTlMw
XzEwSWRlbnRpZmllckUKIF9fWk43V2ViQ29yZTM0anNXb3JrZXJQcm90b3R5cGVGdW5jdGlvblRl
cm1pbmF0ZUVQTjNKU0M5RXhlY1N0YXRlRVBOUzBfOEpTT2JqZWN0RU5TMF83SlNWYWx1ZUVSS05T
MF83QXJnTGlzdEUKIF9fWlRobjhfTjdXZWJDb3JlMjBXb3JrZXJNZXNzYWdpbmdQcm94eTE5d29y
a2VyQ29udGV4dENsb3NlZEV2CmRpZmYgLS1naXQgYS9XZWJDb3JlL1dlYkNvcmUucHJvIGIvV2Vi
Q29yZS9XZWJDb3JlLnBybwppbmRleCBmYTczNDUwNjkzYjEwNmU2ODM5OWZjOGIwYWJlNDcxY2Qw
ZDQzNDJkLi4xZTYxMThlMzNiZmE5ZTYwNWZlMzBkZTBkODkyYTNjOWY3ZjQzNTgzIDEwMDY0NAot
LS0gYS9XZWJDb3JlL1dlYkNvcmUucHJvCisrKyBiL1dlYkNvcmUvV2ViQ29yZS5wcm8KQEAgLTM4
Miw2ICszODIsNyBAQCB2OCB7CiAgICAgICAgIGJpbmRpbmdzL3Y4L1Y4Tm9kZUZpbHRlckNvbmRp
dGlvbi5jcHAgXAogICAgICAgICBiaW5kaW5ncy92OC9WOFByb3h5LmNwcCBcCiAgICAgICAgIGJp
bmRpbmdzL3Y4L1Y4VXRpbGl0aWVzLmNwcCBcCisgICAgICAgIGJpbmRpbmdzL3Y4L1Y4V2luZG93
RXJyb3JIYW5kbGVyLmNwcCBcCiAgICAgICAgIGJpbmRpbmdzL3Y4L1Y4V29ya2VyQ29udGV4dEV2
ZW50TGlzdGVuZXIuY3BwIFwKICAgICAgICAgYmluZGluZ3MvdjgvV29ya2VyQ29udGV4dEV4ZWN1
dGlvblByb3h5LmNwcCBcCiAgICAgICAgIGJpbmRpbmdzL3Y4L1dvcmtlclNjcmlwdENvbnRyb2xs
ZXIuY3BwIFwKQEAgLTU2NCwxMiArNTY1LDEyIEBAIHY4IHsKICAgICAgICAgYmluZGluZ3MvanMv
SlNNZXNzYWdlUG9ydEN1c3RvbS5oIFwKICAgICAgICAgYmluZGluZ3MvanMvSlNET01NaW1lVHlw
ZUFycmF5Q3VzdG9tLmNwcCBcCiAgICAgICAgIGJpbmRpbmdzL2pzL0pTRE9NQmluZGluZy5jcHAg
XAorICAgICAgICBiaW5kaW5ncy9qcy9KU0Vycm9ySGFuZGxlci5jcHAgXAogICAgICAgICBiaW5k
aW5ncy9qcy9KU0V2ZW50TGlzdGVuZXIuY3BwIFwKICAgICAgICAgYmluZGluZ3MvanMvSlNMYXp5
RXZlbnRMaXN0ZW5lci5jcHAgXAogICAgICAgICBiaW5kaW5ncy9qcy9KU01haW5UaHJlYWRFeGVj
U3RhdGUuY3BwIFwKICAgICAgICAgYmluZGluZ3MvanMvSlNQbHVnaW5FbGVtZW50RnVuY3Rpb25z
LmNwcCBcCiAgICAgICAgIGJpbmRpbmdzL2pzL0pTUG9wU3RhdGVFdmVudEN1c3RvbS5jcHAgXAot
ICAgICAgICBiaW5kaW5ncy9qcy9KU1dvcmtlckNvbnRleHRFcnJvckhhbmRsZXIuY3BwIFwKICAg
ICAgICAgYmluZGluZ3MvanMvU2NyaXB0Q2FjaGVkRnJhbWVEYXRhLmNwcCBcCiAgICAgICAgIGJp
bmRpbmdzL2pzL1NjcmlwdENhbGxGcmFtZS5jcHAgXAogICAgICAgICBiaW5kaW5ncy9qcy9TY3Jp
cHRDYWxsU3RhY2suY3BwIFwKQEAgLTE0MjAsNiArMTQyMSw3IEBAIHY4IHsKICAgICAgICAgYmlu
ZGluZ3MvdjgvVjhQcm94eS5oIFwKICAgICAgICAgYmluZGluZ3MvdjgvVjhTVkdQT0RUeXBlV3Jh
cHBlci5oIFwKICAgICAgICAgYmluZGluZ3MvdjgvVjhVdGlsaXRpZXMuaCBcCisgICAgICAgIGJp
bmRpbmdzL3Y4L1Y4V2luZG93RXJyb3JIYW5kbGVyLmggXAogICAgICAgICBiaW5kaW5ncy92OC9W
OFdvcmtlckNvbnRleHRFdmVudExpc3RlbmVyLmggXAogICAgICAgICBiaW5kaW5ncy92OC9Xb3Jr
ZXJDb250ZXh0RXhlY3V0aW9uUHJveHkuaCBcCiAgICAgICAgIGJpbmRpbmdzL3Y4L1dvcmtlclNj
cmlwdENvbnRyb2xsZXIuaCBcCkBAIC0xNDQ2LDYgKzE0NDgsNyBAQCB2OCB7CiAgICAgICAgIGJp
bmRpbmdzL2pzL0pTRE9NV2luZG93Q3VzdG9tLmggXAogICAgICAgICBiaW5kaW5ncy9qcy9KU0RP
TVdpbmRvd1NoZWxsLmggXAogICAgICAgICBiaW5kaW5ncy9qcy9KU0RPTVdyYXBwZXIuaCBcCisg
ICAgICAgIGJpbmRpbmdzL2pzL0pTRXJyb3JIYW5kbGVyLmggXAogICAgICAgICBiaW5kaW5ncy9q
cy9KU0V2ZW50TGlzdGVuZXIuaCBcCiAgICAgICAgIGJpbmRpbmdzL2pzL0pTRXZlbnRUYXJnZXQu
aCBcCiAgICAgICAgIGJpbmRpbmdzL2pzL0pTSGlzdG9yeUN1c3RvbS5oIFwKQEAgLTE0NjMsNyAr
MTQ2Niw2IEBAIHY4IHsKICAgICAgICAgYmluZGluZ3MvanMvSlNQbHVnaW5FbGVtZW50RnVuY3Rp
b25zLmggXAogICAgICAgICBiaW5kaW5ncy9qcy9KU1N0b3JhZ2VDdXN0b20uaCBcCiAgICAgICAg
IGJpbmRpbmdzL2pzL0pTV29ya2VyQ29udGV4dEJhc2UuaCBcCi0gICAgICAgIGJpbmRpbmdzL2pz
L0pTV29ya2VyQ29udGV4dEVycm9ySGFuZGxlci5oIFwKICAgICAgICAgYmluZGluZ3MvanMvSmF2
YVNjcmlwdENhbGxGcmFtZS5oIFwKICAgICAgICAgYmluZGluZ3MvanMvU2NoZWR1bGVkQWN0aW9u
LmggXAogICAgICAgICBiaW5kaW5ncy9qcy9TY3JpcHRDYWNoZWRGcmFtZURhdGEuaCBcCmRpZmYg
LS1naXQgYS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qIGIvV2ViQ29yZS9X
ZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvagppbmRleCBhN2NmZjUyMzk1ZGM2YzVmYWJhMzdk
ZDAwNzY0NWE2YzU0OTU5NzdmLi44ZjNlMTgwNWUxNGJkMzFkMzczNTIwNDZjZmJjMDZjNjAzM2Ni
ZDk3IDEwMDY0NAotLS0gYS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qCisr
KyBiL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oKQEAgLTU1NTExLDYgKzU1
NTExLDYzIEBACiAJCQkJPC9GaWxlPg0KIAkJCQk8RmlsZQ0KIAkJCQkJUmVsYXRpdmVQYXRoPSIu
LlxiaW5kaW5nc1xqc1xKU0RPTVdpbmRvd1NoZWxsLmNwcCINCisJCQkJCVJlbGF0aXZlUGF0aD0i
Li5cYmluZGluZ3NcanNcSlNFcnJvckhhbmRsZXIuY3BwIg0KKwkJCQkJPg0KKwkJCQkJPEZpbGVD
b25maWd1cmF0aW9uDQorCQkJCQkJTmFtZT0iRGVidWd8V2luMzIiDQorCQkJCQkJRXhjbHVkZWRG
cm9tQnVpbGQ9InRydWUiDQorCQkJCQkJPg0KKwkJCQkJCTxUb29sDQorCQkJCQkJCU5hbWU9IlZD
Q0xDb21waWxlclRvb2wiDQorCQkJCQkJLz4NCisJCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+DQor
CQkJCQk8RmlsZUNvbmZpZ3VyYXRpb24NCisJCQkJCQlOYW1lPSJSZWxlYXNlfFdpbjMyIg0KKwkJ
CQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIg0KKwkJCQkJCT4NCisJCQkJCQk8VG9vbA0KKwkJ
CQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIg0KKwkJCQkJCS8+DQorCQkJCQk8L0ZpbGVDb25m
aWd1cmF0aW9uPg0KKwkJCQkJPEZpbGVDb25maWd1cmF0aW9uDQorCQkJCQkJTmFtZT0iRGVidWdf
SW50ZXJuYWx8V2luMzIiDQorCQkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiDQorCQkJCQkJ
Pg0KKwkJCQkJCTxUb29sDQorCQkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiDQorCQkJCQkJ
Lz4NCisJCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+DQorCQkJCQk8RmlsZUNvbmZpZ3VyYXRpb24N
CisJCQkJCQlOYW1lPSJEZWJ1Z19DYWlyb3xXaW4zMiINCisJCQkJCQlFeGNsdWRlZEZyb21CdWls
ZD0idHJ1ZSINCisJCQkJCQk+DQorCQkJCQkJPFRvb2wNCisJCQkJCQkJTmFtZT0iVkNDTENvbXBp
bGVyVG9vbCINCisJCQkJCQkvPg0KKwkJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4NCisJCQkJCTxG
aWxlQ29uZmlndXJhdGlvbg0KKwkJCQkJCU5hbWU9IlJlbGVhc2VfQ2Fpcm98V2luMzIiDQorCQkJ
CQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiDQorCQkJCQkJPg0KKwkJCQkJCTxUb29sDQorCQkJ
CQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiDQorCQkJCQkJLz4NCisJCQkJCTwvRmlsZUNvbmZp
Z3VyYXRpb24+DQorCQkJCQk8RmlsZUNvbmZpZ3VyYXRpb24NCisJCQkJCQlOYW1lPSJEZWJ1Z19B
bGx8V2luMzIiDQorCQkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiDQorCQkJCQkJPg0KKwkJ
CQkJCTxUb29sDQorCQkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiDQorCQkJCQkJLz4NCisJ
CQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+DQorCQkJCTwvRmlsZT4NCisJCQkJPEZpbGUNCisJCQkJ
CVJlbGF0aXZlUGF0aD0iLi5cYmluZGluZ3NcanNcSlNFcnJvckhhbmRsZXIuaCINCisJCQkJCT4N
CisJCQkJPC9GaWxlPg0KKwkJCQk8RmlsZQ0KKwkJCQkJUmVsYXRpdmVQYXRoPSIuLlxiaW5kaW5n
c1xqc1xKU0V2ZW50Q3VzdG9tLmNwcCINCiAJCQkJCT4NCiAJCQkJCTxGaWxlQ29uZmlndXJhdGlv
bg0KIAkJCQkJCU5hbWU9IkRlYnVnfFdpbjMyIg0KQEAgLTYwMDc0LDYyICs2MDEzMSw2IEBACiAJ
CQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+DQogCQkJCTwvRmlsZT4NCiAJCQkJPEZpbGUNCi0JCQkJ
CVJlbGF0aXZlUGF0aD0iLi5cYmluZGluZ3NcanNcSlNXb3JrZXJDb250ZXh0RXJyb3JIYW5kbGVy
LmNwcCINCi0JCQkJCT4NCi0JCQkJCTxGaWxlQ29uZmlndXJhdGlvbg0KLQkJCQkJCU5hbWU9IkRl
YnVnfFdpbjMyIg0KLQkJCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIg0KLQkJCQkJCT4NCi0J
CQkJCQk8VG9vbA0KLQkJCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIg0KLQkJCQkJCS8+DQot
CQkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPg0KLQkJCQkJPEZpbGVDb25maWd1cmF0aW9uDQotCQkJ
CQkJTmFtZT0iUmVsZWFzZXxXaW4zMiINCi0JCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSIN
Ci0JCQkJCQk+DQotCQkJCQkJPFRvb2wNCi0JCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCIN
Ci0JCQkJCQkvPg0KLQkJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4NCi0JCQkJCTxGaWxlQ29uZmln
dXJhdGlvbg0KLQkJCQkJCU5hbWU9IkRlYnVnX0ludGVybmFsfFdpbjMyIg0KLQkJCQkJCUV4Y2x1
ZGVkRnJvbUJ1aWxkPSJ0cnVlIg0KLQkJCQkJCT4NCi0JCQkJCQk8VG9vbA0KLQkJCQkJCQlOYW1l
PSJWQ0NMQ29tcGlsZXJUb29sIg0KLQkJCQkJCS8+DQotCQkJCQk8L0ZpbGVDb25maWd1cmF0aW9u
Pg0KLQkJCQkJPEZpbGVDb25maWd1cmF0aW9uDQotCQkJCQkJTmFtZT0iRGVidWdfQ2Fpcm98V2lu
MzIiDQotCQkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiDQotCQkJCQkJPg0KLQkJCQkJCTxU
b29sDQotCQkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiDQotCQkJCQkJLz4NCi0JCQkJCTwv
RmlsZUNvbmZpZ3VyYXRpb24+DQotCQkJCQk8RmlsZUNvbmZpZ3VyYXRpb24NCi0JCQkJCQlOYW1l
PSJSZWxlYXNlX0NhaXJvfFdpbjMyIg0KLQkJCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIg0K
LQkJCQkJCT4NCi0JCQkJCQk8VG9vbA0KLQkJCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIg0K
LQkJCQkJCS8+DQotCQkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPg0KLQkJCQkJPEZpbGVDb25maWd1
cmF0aW9uDQotCQkJCQkJTmFtZT0iRGVidWdfQWxsfFdpbjMyIg0KLQkJCQkJCUV4Y2x1ZGVkRnJv
bUJ1aWxkPSJ0cnVlIg0KLQkJCQkJCT4NCi0JCQkJCQk8VG9vbA0KLQkJCQkJCQlOYW1lPSJWQ0NM
Q29tcGlsZXJUb29sIg0KLQkJCQkJCS8+DQotCQkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPg0KLQkJ
CQk8L0ZpbGU+DQotCQkJCTxGaWxlDQotCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGJpbmRpbmdzXGpz
XEpTV29ya2VyQ29udGV4dEVycm9ySGFuZGxlci5oIg0KLQkJCQkJPg0KLQkJCQk8L0ZpbGU+DQot
CQkJCTxGaWxlDQogCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGJpbmRpbmdzXGpzXEpTWE1MSHR0cFJl
cXVlc3RDdXN0b20uY3BwIg0KIAkJCQkJPg0KIAkJCQkJPEZpbGVDb25maWd1cmF0aW9uDQpkaWZm
IC0tZ2l0IGEvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9XZWJD
b3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCBjMzIzYzk0NTgyYTY1
MzU5NmRkYTYyZTNlZTQ0MDFjYWUzZWNlMWFhLi4zMjg4NDgwZjI0YzhhZjg4NmI4OTg1MWNkNmQy
OTQ4YjM3YzQyZTM3IDEwMDY0NAotLS0gYS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvagorKysgYi9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
agpAQCAtNTQ0Nyw4ICs1NDQ3LDggQEAKIAkJRjM2NDRBRkYxMTE5ODA1OTAwRTBENTM3IC8qIElu
amVjdGVkU2NyaXB0LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IEYzNjQ0QUZEMTExOTgwNTkwMEUwRDUzNyAvKiBJbmplY3RlZFNjcmlwdC5jcHAgKi87
IH07CiAJCUYzNjQ0QjAwMTExOTgwNTkwMEUwRDUzNyAvKiBJbmplY3RlZFNjcmlwdC5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjM2NDRBRkUxMTE5ODA1
OTAwRTBENTM3IC8qIEluamVjdGVkU2NyaXB0LmggKi87IH07CiAJCUYzNzVDQzA3MTE1MEQzMDAw
MDhEREI4MSAvKiBJbnNwZWN0b3JXb3JrZXJSZXNvdXJjZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjM3NUNDMDYxMTUwRDMwMDAwOEREQjgxIC8qIElu
c3BlY3RvcldvcmtlclJlc291cmNlLmggKi87IH07Ci0JCUYzRDQ2MTQ4MTE2MUQ1MzIwMENBMEQw
OSAvKiBKU1dvcmtlckNvbnRleHRFcnJvckhhbmRsZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjNENDYxNDYxMTYxRDUzMjAwQ0EwRDA5IC8qIEpT
V29ya2VyQ29udGV4dEVycm9ySGFuZGxlci5jcHAgKi87IH07Ci0JCUYzRDQ2MTQ5MTE2MUQ1MzIw
MENBMEQwOSAvKiBKU1dvcmtlckNvbnRleHRFcnJvckhhbmRsZXIuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEYzRDQ2MTQ3MTE2MUQ1MzIwMENBMEQwOSAv
KiBKU1dvcmtlckNvbnRleHRFcnJvckhhbmRsZXIuaCAqLzsgfTsKKwkJRjNENDYxNDgxMTYxRDUz
MjAwQ0EwRDA5IC8qIEpTRXJyb3JIYW5kbGVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEYzRDQ2MTQ2MTE2MUQ1MzIwMENBMEQwOSAvKiBKU0Vycm9y
SGFuZGxlci5jcHAgKi87IH07CisJCUYzRDQ2MTQ5MTE2MUQ1MzIwMENBMEQwOSAvKiBKU0Vycm9y
SGFuZGxlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
RjNENDYxNDcxMTYxRDUzMjAwQ0EwRDA5IC8qIEpTRXJyb3JIYW5kbGVyLmggKi87IH07CiAJCUY0
RUFGNEFFMTBDNzQyQjEwMDkxMDBEMyAvKiBPcGVuVHlwZVNhbml0aXplci5jcHAgaW4gU291cmNl
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNEVBRjRBQzEwQzc0MkIxMDA5
MTAwRDMgLyogT3BlblR5cGVTYW5pdGl6ZXIuY3BwICovOyB9OwogCQlGNEVBRjRBRjEwQzc0MkIx
MDA5MTAwRDMgLyogT3BlblR5cGVTYW5pdGl6ZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY0RUFGNEFEMTBDNzQyQjEwMDkxMDBEMyAvKiBPcGVuVHlw
ZVNhbml0aXplci5oICovOyB9OwogCQlGNTVCM0RBRDEyNTFGMTJEMDAzRUYyNjkgLyogQmFzZVRl
eHRJbnB1dFR5cGUuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gRjU1QjNENzkxMjUxRjEyRDAwM0VGMjY5IC8qIEJhc2VUZXh0SW5wdXRUeXBlLmNwcCAq
LzsgfTsKQEAgLTExNDYxLDggKzExNDYxLDggQEAKIAkJRjM2NDRBRkQxMTE5ODA1OTAwRTBENTM3
IC8qIEluamVjdGVkU2NyaXB0LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0
aCA9IEluamVjdGVkU2NyaXB0LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRjM2
NDRBRkUxMTE5ODA1OTAwRTBENTM3IC8qIEluamVjdGVkU2NyaXB0LmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IEluamVjdGVkU2NyaXB0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCUYzNzVDQzA2MTE1MEQzMDAwMDhEREI4MSAvKiBJbnNwZWN0b3JXb3JrZXJSZXNv
dXJjZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBJbnNwZWN0b3JXb3JrZXJS
ZXNvdXJjZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQlGM0Q0NjE0NjExNjFENTMy
MDBDQTBEMDkgLyogSlNXb3JrZXJDb250ZXh0RXJyb3JIYW5kbGVyLmNwcCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTV29ya2VyQ29udGV4dEVycm9ySGFuZGxlci5jcHA7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUYzRDQ2MTQ3MTE2MUQ1MzIwMENBMEQwOSAv
KiBKU1dvcmtlckNvbnRleHRFcnJvckhhbmRsZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gSlNXb3JrZXJDb250ZXh0RXJyb3JIYW5kbGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CisJCUYzRDQ2MTQ2MTE2MUQ1MzIwMENBMEQwOSAvKiBKU0Vycm9ySGFuZGxlci5j
cHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU0Vycm9ySGFuZGxlci5j
cHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUYzRDQ2MTQ3MTE2MUQ1MzIwMENBMEQw
OSAvKiBKU0Vycm9ySGFuZGxlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBK
U0Vycm9ySGFuZGxlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlGNEVBRjRBQzEw
Qzc0MkIxMDA5MTAwRDMgLyogT3BlblR5cGVTYW5pdGl6ZXIuY3BwICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAuY3BwOyBuYW1lID0gT3BlblR5cGVTYW5pdGl6ZXIuY3BwOyBwYXRoID0gb3BlbnR5
cGUvT3BlblR5cGVTYW5pdGl6ZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlG
NEVBRjRBRDEwQzc0MkIxMDA5MTAwRDMgLyogT3BlblR5cGVTYW5pdGl6ZXIuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gT3BlblR5cGVTYW5pdGl6ZXIuaDsgcGF0aCA9IG9wZW50
eXBlL09wZW5UeXBlU2FuaXRpemVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUY1
MjNEMjNCMDJERTQzOTYwMTg2MzVDQSAvKiBIVE1MRG9jdW1lbnQuY3BwICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBpbmRlbnRXaWR0aCA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSFRNTERvY3VtZW50LmNw
cDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgdGFiV2lkdGggPSA4OyB1c2VzVGFicyA9IDA7IH07
CkBAIC0xNjcxMiw2ICsxNjcxMiw4IEBACiAJCQkJQkNCRkI1M0IwRENEMjlDRjAwMTlCM0U1IC8q
IEpTRE9NV2luZG93U2hlbGwuaCAqLywKIAkJCQlCQzUzREFDNjExNDMzMDY0MDAwRDgxN0UgLyog
SlNET01XcmFwcGVyLmNwcCAqLywKIAkJCQk2NUUwRTk0MzExMzNDODlGMDBCNENCMTAgLyogSlNE
T01XcmFwcGVyLmggKi8sCisJCQkJRjNENDYxNDYxMTYxRDUzMjAwQ0EwRDA5IC8qIEpTRXJyb3JI
YW5kbGVyLmNwcCAqLywKKwkJCQlGM0Q0NjE0NzExNjFENTMyMDBDQTBEMDkgLyogSlNFcnJvckhh
bmRsZXIuaCAqLywKIAkJCQlCQzYwOTAxRTBFOTFCOEVDMDAwQzY4QjUgLyogSlNFdmVudFRhcmdl
dC5jcHAgKi8sCiAJCQkJQkM2MDkwMUQwRTkxQjhFQzAwMEM2OEI1IC8qIEpTRXZlbnRUYXJnZXQu
aCAqLywKIAkJCQkzMzE0QUNFOTEwODkyMDg2MDAwRjBFNTYgLyogSlNFeGNlcHRpb25CYXNlLmNw
cCAqLywKQEAgLTE2NzI0LDggKzE2NzI2LDYgQEAKIAkJCQlCMjExMjdBNTBCMzE4Njc3MDAwOUJF
NTMgLyogSlNTVkdQT0RUeXBlV3JhcHBlci5oICovLAogCQkJCUUxQzM2RDMyMEVCMEEwOTQwMDc0
MTBCQyAvKiBKU1dvcmtlckNvbnRleHRCYXNlLmNwcCAqLywKIAkJCQlFMUMzNkQzMzBFQjBBMDk0
MDA3NDEwQkMgLyogSlNXb3JrZXJDb250ZXh0QmFzZS5oICovLAotCQkJCUYzRDQ2MTQ2MTE2MUQ1
MzIwMENBMEQwOSAvKiBKU1dvcmtlckNvbnRleHRFcnJvckhhbmRsZXIuY3BwICovLAotCQkJCUYz
RDQ2MTQ3MTE2MUQ1MzIwMENBMEQwOSAvKiBKU1dvcmtlckNvbnRleHRFcnJvckhhbmRsZXIuaCAq
LywKIAkJCQlCQ0EzNzhCQTBEMTVGNjQyMDBCNzkzRDYgLyogU2NoZWR1bGVkQWN0aW9uLmNwcCAq
LywKIAkJCQlCQ0EzNzhCQjBEMTVGNjQyMDBCNzkzRDYgLyogU2NoZWR1bGVkQWN0aW9uLmggKi8s
CiAJCQkJNDFGMUQyMUUwRUYzNUMyQTAwREE4NzUzIC8qIFNjcmlwdENhY2hlZEZyYW1lRGF0YS5j
cHAgKi8sCkBAIC0yMDE1MCw3ICsyMDE1MCw3IEBACiAJCQkJRTFDQUE1QzYwRThCRDIzNjAwQTcz
RUNBIC8qIEpTV29ya2VyLmggaW4gSGVhZGVycyAqLywKIAkJCQlFMTgyNTY5MDBFRjJCMDJEMDA5
MzMyNDIgLyogSlNXb3JrZXJDb250ZXh0LmggaW4gSGVhZGVycyAqLywKIAkJCQlFMUMzNkQzNTBF
QjBBMDk0MDA3NDEwQkMgLyogSlNXb3JrZXJDb250ZXh0QmFzZS5oIGluIEhlYWRlcnMgKi8sCi0J
CQkJRjNENDYxNDkxMTYxRDUzMjAwQ0EwRDA5IC8qIEpTV29ya2VyQ29udGV4dEVycm9ySGFuZGxl
ci5oIGluIEhlYWRlcnMgKi8sCisJCQkJRjNENDYxNDkxMTYxRDUzMjAwQ0EwRDA5IC8qIEpTRXJy
b3JIYW5kbGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQlFMUMzNjJFRjBFQUYyQUE5MDA3NDEwQkMg
LyogSlNXb3JrZXJMb2NhdGlvbi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRTEyNzFBNTgwRUVFQ0RF
NDAwRjYxMjEzIC8qIEpTV29ya2VyTmF2aWdhdG9yLmggaW4gSGVhZGVycyAqLywKIAkJCQlCQzM0
OEJENDBEQjdGODA0MDA0QUJBQjkgLyogSlNYTUxIdHRwUmVxdWVzdC5oIGluIEhlYWRlcnMgKi8s
CkBAIC0yMjgxMCw3ICsyMjgxMCw3IEBACiAJCQkJRTE4MjU2OEYwRUYyQjAyRDAwOTMzMjQyIC8q
IEpTV29ya2VyQ29udGV4dC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlFMUMzNkQzNDBFQjBBMDk0
MDA3NDEwQkMgLyogSlNXb3JrZXJDb250ZXh0QmFzZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlF
MTgyNThBQzBFRjNDRDcwMDA5MzMyNDIgLyogSlNXb3JrZXJDb250ZXh0Q3VzdG9tLmNwcCBpbiBT
b3VyY2VzICovLAotCQkJCUYzRDQ2MTQ4MTE2MUQ1MzIwMENBMEQwOSAvKiBKU1dvcmtlckNvbnRl
eHRFcnJvckhhbmRsZXIuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJRjNENDYxNDgxMTYxRDUzMjAw
Q0EwRDA5IC8qIEpTRXJyb3JIYW5kbGVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUUxQ0E1Q0JD
MEU4Q0RDQUYwMEU4RUY5MCAvKiBKU1dvcmtlckN1c3RvbS5jcHAgaW4gU291cmNlcyAqLywKIAkJ
CQlFMUMzNjJGMDBFQUYyQUE5MDA3NDEwQkMgLyogSlNXb3JrZXJMb2NhdGlvbi5jcHAgaW4gU291
cmNlcyAqLywKIAkJCQlFMTI3MUE1OTBFRUVDREU0MDBGNjEyMTMgLyogSlNXb3JrZXJOYXZpZ2F0
b3IuY3BwIGluIFNvdXJjZXMgKi8sCmRpZmYgLS1naXQgYS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pT
QmluZGluZ3NBbGxJbk9uZS5jcHAgYi9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTQmluZGluZ3NBbGxJ
bk9uZS5jcHAKaW5kZXggNmUxY2MxZTIzYmExYWY4MzRjZjM3OWUzM2JhNWJjZmViOTNhYmZlNy4u
NTYwMTJmYTQ4YjE0ZjIwZTg2NDQ5OTk1ZDVmNGZjMmFkNmQ2OWEzNiAxMDA2NDQKLS0tIGEvV2Vi
Q29yZS9iaW5kaW5ncy9qcy9KU0JpbmRpbmdzQWxsSW5PbmUuY3BwCisrKyBiL1dlYkNvcmUvYmlu
ZGluZ3MvanMvSlNCaW5kaW5nc0FsbEluT25lLmNwcApAQCAtNjQsNiArNjQsNyBAQAogI2luY2x1
ZGUgIkpTRGV2aWNlT3JpZW50YXRpb25FdmVudEN1c3RvbS5jcHAiCiAjaW5jbHVkZSAiSlNEb2N1
bWVudEN1c3RvbS5jcHAiCiAjaW5jbHVkZSAiSlNFbGVtZW50Q3VzdG9tLmNwcCIKKyNpbmNsdWRl
ICJKU0Vycm9ySGFuZGxlci5jcHAiCiAjaW5jbHVkZSAiSlNFdmVudEN1c3RvbS5jcHAiCiAjaW5j
bHVkZSAiSlNFdmVudExpc3RlbmVyLmNwcCIKICNpbmNsdWRlICJKU0V2ZW50U291cmNlQ3VzdG9t
LmNwcCIKQEAgLTEzMCw3ICsxMzEsNiBAQAogI2luY2x1ZGUgIkpTV2ViU29ja2V0Q3VzdG9tLmNw
cCIKICNpbmNsdWRlICJKU1dvcmtlckNvbnRleHRCYXNlLmNwcCIKICNpbmNsdWRlICJKU1dvcmtl
ckNvbnRleHRDdXN0b20uY3BwIgotI2luY2x1ZGUgIkpTV29ya2VyQ29udGV4dEVycm9ySGFuZGxl
ci5jcHAiCiAjaW5jbHVkZSAiSlNXb3JrZXJDdXN0b20uY3BwIgogI2luY2x1ZGUgIkpTWE1MSHR0
cFJlcXVlc3RDdXN0b20uY3BwIgogI2luY2x1ZGUgIkpTWE1MSHR0cFJlcXVlc3RVcGxvYWRDdXN0
b20uY3BwIgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTUJpbmRpbmcuY3Bw
IGIvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTUJpbmRpbmcuY3BwCmluZGV4IDcyZTZkMDM5Y2Uw
MTRkN2E2MjYxMjRlNjhjZGM5ZWMzODFkZmI0NTYuLjdiN2M5ZDQ3MDQ1ODY1YTU0NjdlZGFmMjY5
MDk1Mjc4YjEzYTEwYzUgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01CaW5k
aW5nLmNwcAorKysgYi9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NQmluZGluZy5jcHAKQEAgLTUy
LDYgKzUyLDcgQEAKICNpbmNsdWRlICJNZXNzYWdlUG9ydC5oIgogI2luY2x1ZGUgIlJhbmdlRXhj
ZXB0aW9uLmgiCiAjaW5jbHVkZSAiU2NyaXB0Q2FjaGVkRnJhbWVEYXRhLmgiCisjaW5jbHVkZSAi
U2NyaXB0Q2FsbFN0YWNrLmgiCiAjaW5jbHVkZSAiU2NyaXB0Q29udHJvbGxlci5oIgogI2luY2x1
ZGUgIlNldHRpbmdzLmgiCiAjaW5jbHVkZSAiV2ViQ29yZUpTQ2xpZW50RGF0YS5oIgpAQCAtNTY3
LDcgKzU2OCw3IEBAIHZvaWQgcmVwb3J0RXhjZXB0aW9uKEV4ZWNTdGF0ZSogZXhlYywgSlNWYWx1
ZSBleGNlcHRpb24pCiAgICAgaWYgKCFzY3JpcHRFeGVjdXRpb25Db250ZXh0KQogICAgICAgICBy
ZXR1cm47CiAKLSAgICBzY3JpcHRFeGVjdXRpb25Db250ZXh0LT5yZXBvcnRFeGNlcHRpb24odXN0
cmluZ1RvU3RyaW5nKGVycm9yTWVzc2FnZSksIGxpbmVOdW1iZXIsIHVzdHJpbmdUb1N0cmluZyhl
eGNlcHRpb25Tb3VyY2VVUkwpKTsKKyAgICBzY3JpcHRFeGVjdXRpb25Db250ZXh0LT5yZXBvcnRF
eGNlcHRpb24odXN0cmluZ1RvU3RyaW5nKGVycm9yTWVzc2FnZSksIGxpbmVOdW1iZXIsIHVzdHJp
bmdUb1N0cmluZyhleGNlcHRpb25Tb3VyY2VVUkwpLCAwKTsKIH0KIAogdm9pZCByZXBvcnRDdXJy
ZW50RXhjZXB0aW9uKEV4ZWNTdGF0ZSogZXhlYykKZGlmZiAtLWdpdCBhL1dlYkNvcmUvYmluZGlu
Z3MvanMvSlNXb3JrZXJDb250ZXh0RXJyb3JIYW5kbGVyLmNwcCBiL1dlYkNvcmUvYmluZGluZ3Mv
anMvSlNFcnJvckhhbmRsZXIuY3BwCnNpbWlsYXJpdHkgaW5kZXggODclCnJlbmFtZSBmcm9tIFdl
YkNvcmUvYmluZGluZ3MvanMvSlNXb3JrZXJDb250ZXh0RXJyb3JIYW5kbGVyLmNwcApyZW5hbWUg
dG8gV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0Vycm9ySGFuZGxlci5jcHAKaW5kZXggYWQzZjVlYzE3
ZDNiNTgwY2I2ODA4OGRlYjYxOWZmNzA4YTcyYjc0ZC4uMTAwNGQ1Y2Y0ZmYxMmZhZThhMWNlZjJi
ZTRjZjczOTg4ODQ3M2I5NCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1dvcmtl
ckNvbnRleHRFcnJvckhhbmRsZXIuY3BwCisrKyBiL1dlYkNvcmUvYmluZGluZ3MvanMvSlNFcnJv
ckhhbmRsZXIuY3BwCkBAIC0zMCw5ICszMCw3IEBACiAKICNpbmNsdWRlICJjb25maWcuaCIKIAot
I2lmIEVOQUJMRShXT1JLRVJTKQotCi0jaW5jbHVkZSAiSlNXb3JrZXJDb250ZXh0RXJyb3JIYW5k
bGVyLmgiCisjaW5jbHVkZSAiSlNFcnJvckhhbmRsZXIuaCIKIAogI2luY2x1ZGUgIkVycm9yRXZl
bnQuaCIKICNpbmNsdWRlICJFdmVudC5oIgpAQCAtNDMsMjEgKzQxLDI0IEBAIHVzaW5nIG5hbWVz
cGFjZSBKU0M7CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotSlNXb3JrZXJDb250ZXh0RXJyb3JI
YW5kbGVyOjpKU1dvcmtlckNvbnRleHRFcnJvckhhbmRsZXIoSlNPYmplY3QqIGZ1bmN0aW9uLCBK
U09iamVjdCogd3JhcHBlciwgYm9vbCBpc0F0dHJpYnV0ZSwgRE9NV3JhcHBlcldvcmxkKiBpc29s
YXRlZFdvcmxkKQorSlNFcnJvckhhbmRsZXI6OkpTRXJyb3JIYW5kbGVyKEpTT2JqZWN0KiBmdW5j
dGlvbiwgSlNPYmplY3QqIHdyYXBwZXIsIGJvb2wgaXNBdHRyaWJ1dGUsIERPTVdyYXBwZXJXb3Js
ZCogaXNvbGF0ZWRXb3JsZCkKICAgICA6IEpTRXZlbnRMaXN0ZW5lcihmdW5jdGlvbiwgd3JhcHBl
ciwgaXNBdHRyaWJ1dGUsIGlzb2xhdGVkV29ybGQpCiB7CiB9CiAKLUpTV29ya2VyQ29udGV4dEVy
cm9ySGFuZGxlcjo6fkpTV29ya2VyQ29udGV4dEVycm9ySGFuZGxlcigpCitKU0Vycm9ySGFuZGxl
cjo6fkpTRXJyb3JIYW5kbGVyKCkKIHsKIH0KIAotdm9pZCBKU1dvcmtlckNvbnRleHRFcnJvckhh
bmRsZXI6OmhhbmRsZUV2ZW50KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIHNjcmlwdEV4ZWN1dGlv
bkNvbnRleHQsIEV2ZW50KiBldmVudCkKK3ZvaWQgSlNFcnJvckhhbmRsZXI6OmhhbmRsZUV2ZW50
KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQsIEV2ZW50KiBl
dmVudCkKIHsKICAgICBBU1NFUlQoc2NyaXB0RXhlY3V0aW9uQ29udGV4dCk7CiAgICAgaWYgKCFz
Y3JpcHRFeGVjdXRpb25Db250ZXh0KQogICAgICAgICByZXR1cm47CiAKKyAgICBBU1NFUlQoZXZl
bnQtPmlzRXJyb3JFdmVudCgpKTsKKyAgICBFcnJvckV2ZW50KiBlcnJvckV2ZW50ID0gc3RhdGlj
X2Nhc3Q8RXJyb3JFdmVudCo+KGV2ZW50KTsKKwogICAgIEpTTG9jayBsb2NrKFNpbGVuY2VBc3Nl
cnRpb25zT25seSk7CiAKICAgICBKU09iamVjdCoganNGdW5jdGlvbiA9IHRoaXMtPmpzRnVuY3Rp
b24oc2NyaXB0RXhlY3V0aW9uQ29udGV4dCk7CkBAIC04MCw5ICs4MSw2IEBAIHZvaWQgSlNXb3Jr
ZXJDb250ZXh0RXJyb3JIYW5kbGVyOjpoYW5kbGVFdmVudChTY3JpcHRFeGVjdXRpb25Db250ZXh0
KiBzY3JpcHRFeGVjCiAgICAgICAgIEV2ZW50KiBzYXZlZEV2ZW50ID0gZ2xvYmFsT2JqZWN0LT5j
dXJyZW50RXZlbnQoKTsKICAgICAgICAgZ2xvYmFsT2JqZWN0LT5zZXRDdXJyZW50RXZlbnQoZXZl
bnQpOwogCi0gICAgICAgIEFTU0VSVChldmVudC0+aXNFcnJvckV2ZW50KCkpOwotICAgICAgICBF
cnJvckV2ZW50KiBlcnJvckV2ZW50ID0gc3RhdGljX2Nhc3Q8RXJyb3JFdmVudCo+KGV2ZW50KTsK
LQogICAgICAgICBNYXJrZWRBcmd1bWVudEJ1ZmZlciBhcmdzOwogICAgICAgICBhcmdzLmFwcGVu
ZChqc1N0cmluZyhleGVjLCBlcnJvckV2ZW50LT5tZXNzYWdlKCkpKTsKICAgICAgICAgYXJncy5h
cHBlbmQoanNTdHJpbmcoZXhlYywgZXJyb3JFdmVudC0+ZmlsZW5hbWUoKSkpOwpAQCAtMTEyLDUg
KzExMCwzIEBAIHZvaWQgSlNXb3JrZXJDb250ZXh0RXJyb3JIYW5kbGVyOjpoYW5kbGVFdmVudChT
Y3JpcHRFeGVjdXRpb25Db250ZXh0KiBzY3JpcHRFeGVjCiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdl
YkNvcmUKLQotI2VuZGlmIC8vIEVOQUJMRShXT1JLRVJTKQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9i
aW5kaW5ncy9qcy9KU1dvcmtlckNvbnRleHRFcnJvckhhbmRsZXIuaCBiL1dlYkNvcmUvYmluZGlu
Z3MvanMvSlNFcnJvckhhbmRsZXIuaApzaW1pbGFyaXR5IGluZGV4IDY5JQpjb3B5IGZyb20gV2Vi
Q29yZS9iaW5kaW5ncy9qcy9KU1dvcmtlckNvbnRleHRFcnJvckhhbmRsZXIuaApjb3B5IHRvIFdl
YkNvcmUvYmluZGluZ3MvanMvSlNFcnJvckhhbmRsZXIuaAppbmRleCBhMTg4Mjk5MDM4YzljZGZl
NzIyODZiNzFmZWFlYjNhNDljMmEwZDgxLi45NTdmZDgxZGFhMDU3NDY5YjIxMTJlMTFkN2U3MDRh
ZDRlMjlkN2VkIDEwMDY0NAotLS0gYS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTV29ya2VyQ29udGV4
dEVycm9ySGFuZGxlci5oCisrKyBiL1dlYkNvcmUvYmluZGluZ3MvanMvSlNFcnJvckhhbmRsZXIu
aApAQCAtMjgsMzcgKzI4LDM3IEBACiAgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgogICovCiAKLSNpZm5kZWYgSlNX
b3JrZXJDb250ZXh0RXJyb3JIYW5kbGVyX2gKLSNkZWZpbmUgSlNXb3JrZXJDb250ZXh0RXJyb3JI
YW5kbGVyX2gKKyNpZm5kZWYgSlNFcnJvckhhbmRsZXJfaAorI2RlZmluZSBKU0Vycm9ySGFuZGxl
cl9oCiAKICNpbmNsdWRlICJKU0V2ZW50TGlzdGVuZXIuaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUg
ewogCi1jbGFzcyBKU1dvcmtlckNvbnRleHRFcnJvckhhbmRsZXIgOiBwdWJsaWMgSlNFdmVudExp
c3RlbmVyIHsKK2NsYXNzIEpTRXJyb3JIYW5kbGVyIDogcHVibGljIEpTRXZlbnRMaXN0ZW5lciB7
CiBwdWJsaWM6Ci0gICAgc3RhdGljIFBhc3NSZWZQdHI8SlNXb3JrZXJDb250ZXh0RXJyb3JIYW5k
bGVyPiBjcmVhdGUoSlNDOjpKU09iamVjdCogbGlzdGVuZXIsIEpTQzo6SlNPYmplY3QqIHdyYXBw
ZXIsIGJvb2wgaXNBdHRyaWJ1dGUsIERPTVdyYXBwZXJXb3JsZCogaXNvbGF0ZWRXb3JsZCkKKyAg
ICBzdGF0aWMgUGFzc1JlZlB0cjxKU0Vycm9ySGFuZGxlcj4gY3JlYXRlKEpTQzo6SlNPYmplY3Qq
IGxpc3RlbmVyLCBKU0M6OkpTT2JqZWN0KiB3cmFwcGVyLCBib29sIGlzQXR0cmlidXRlLCBET01X
cmFwcGVyV29ybGQqIGlzb2xhdGVkV29ybGQpCiAgICAgewotICAgICAgICByZXR1cm4gYWRvcHRS
ZWYobmV3IEpTV29ya2VyQ29udGV4dEVycm9ySGFuZGxlcihsaXN0ZW5lciwgd3JhcHBlciwgaXNB
dHRyaWJ1dGUsIGlzb2xhdGVkV29ybGQpKTsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBK
U0Vycm9ySGFuZGxlcihsaXN0ZW5lciwgd3JhcHBlciwgaXNBdHRyaWJ1dGUsIGlzb2xhdGVkV29y
bGQpKTsKICAgICB9CiAKLSAgICB2aXJ0dWFsIH5KU1dvcmtlckNvbnRleHRFcnJvckhhbmRsZXIo
KTsKKyAgICB2aXJ0dWFsIH5KU0Vycm9ySGFuZGxlcigpOwogCiBwcml2YXRlOgotICAgIEpTV29y
a2VyQ29udGV4dEVycm9ySGFuZGxlcihKU0M6OkpTT2JqZWN0KiBmdW5jdGlvbiwgSlNDOjpKU09i
amVjdCogd3JhcHBlciwgYm9vbCBpc0F0dHJpYnV0ZSwgRE9NV3JhcHBlcldvcmxkKiBpc29sYXRl
ZFdvcmxkKTsKKyAgICBKU0Vycm9ySGFuZGxlcihKU0M6OkpTT2JqZWN0KiBmdW5jdGlvbiwgSlND
OjpKU09iamVjdCogd3JhcHBlciwgYm9vbCBpc0F0dHJpYnV0ZSwgRE9NV3JhcHBlcldvcmxkKiBp
c29sYXRlZFdvcmxkKTsKICAgICB2aXJ0dWFsIHZvaWQgaGFuZGxlRXZlbnQoU2NyaXB0RXhlY3V0
aW9uQ29udGV4dCosIEV2ZW50Kik7CiB9OwogCiAvLyBDcmVhdGVzIGEgSlMgRXZlbnRMaXN0ZW5l
ciBmb3IgIm9uZXJyb3IiIGV2ZW50IGhhbmRsZXIgaW4gd29ya2VyIGNvbnRleHQuIEl0IGhhcyBj
dXN0b20gaW1wbGVtZW50YXRpb24gYmVjYXVzZQogLy8gdW5saWtlIG90aGVyIGV2ZW50IGxpc3Rl
bmVycyBpdCBhY2NlcHRzIHRocmVlIHBhcmFtZXRlcnMuCi1pbmxpbmUgUGFzc1JlZlB0cjxKU1dv
cmtlckNvbnRleHRFcnJvckhhbmRsZXI+IGNyZWF0ZUpTV29ya2VyQ29udGV4dEVycm9ySGFuZGxl
cihKU0M6OkV4ZWNTdGF0ZSogZXhlYywgSlNDOjpKU1ZhbHVlIGxpc3RlbmVyLCBKU0M6OkpTT2Jq
ZWN0KiB3cmFwcGVyKQoraW5saW5lIFBhc3NSZWZQdHI8SlNFcnJvckhhbmRsZXI+IGNyZWF0ZUpT
RXJyb3JIYW5kbGVyKEpTQzo6RXhlY1N0YXRlKiBleGVjLCBKU0M6OkpTVmFsdWUgbGlzdGVuZXIs
IEpTQzo6SlNPYmplY3QqIHdyYXBwZXIpCiB7CiAgICAgaWYgKCFsaXN0ZW5lci5pc09iamVjdCgp
KQogICAgICAgICByZXR1cm4gMDsKIAotICAgIHJldHVybiBKU1dvcmtlckNvbnRleHRFcnJvckhh
bmRsZXI6OmNyZWF0ZShhc09iamVjdChsaXN0ZW5lciksIHdyYXBwZXIsIHRydWUsIGN1cnJlbnRX
b3JsZChleGVjKSk7CisgICAgcmV0dXJuIEpTRXJyb3JIYW5kbGVyOjpjcmVhdGUoYXNPYmplY3Qo
bGlzdGVuZXIpLCB3cmFwcGVyLCB0cnVlLCBjdXJyZW50V29ybGQoZXhlYykpOwogfQogCiB9IC8v
IG5hbWVzcGFjZSBXZWJDb3JlCiAKLSNlbmRpZiAvLyBKU1dvcmtlckNvbnRleHRFcnJvckhhbmRs
ZXJfaAorI2VuZGlmIC8vIEpTRXJyb3JIYW5kbGVyX2gKZGlmZiAtLWdpdCBhL1dlYkNvcmUvYmlu
ZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG0gYi9XZWJDb3JlL2JpbmRpbmdzL3Njcmlw
dHMvQ29kZUdlbmVyYXRvckpTLnBtCmluZGV4IDU1NzlhMzVmMWZlMGQzZjI2ZDY2Y2FjZmZmMTVm
OTQ3MmIxNmMzNDQuLjU4Yzg3YjE4ZWIyOTI4YjUzYmM2MGM3NGU2NDRmYjhjZGUzNmE3OTggMTAw
NjQ0Ci0tLSBhL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG0KKysr
IGIvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbQpAQCAtMTcyMCw5
ICsxNzIwLDkgQEAgc3ViIEdlbmVyYXRlSW1wbGVtZW50YXRpb24KICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgSlNET01HbG9iYWxPYmplY3Qq
IGdsb2JhbE9iamVjdCA9IGNhc3RlZFRoaXMtPmdsb2JhbE9iamVjdCgpO1xuIik7CiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgIHB1c2go
QGltcGxDb250ZW50LCAiICAgICRpbXBsQ2xhc3NOYW1lKiBpbXAgPSBzdGF0aWNfY2FzdDwkaW1w
bENsYXNzTmFtZSo+KHN0YXRpY19jYXN0PCRjbGFzc05hbWUqPih0aGlzT2JqZWN0KS0+aW1wbCgp
KTtcbiIpOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICgkaW50ZXJmYWNlTmFtZSBl
cSAiV29ya2VyQ29udGV4dCIgYW5kICRuYW1lIGVxICJvbmVycm9yIikgewotICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAkaW1wbEluY2x1ZGVzeyJKU1dvcmtlckNvbnRleHRFcnJvckhh
bmRsZXIuaCJ9ID0gMTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHVzaChAaW1w
bENvbnRlbnQsICIgICAgaW1wLT5zZXQkaW1wbFNldHRlckZ1bmN0aW9uTmFtZShjcmVhdGVKU1dv
cmtlckNvbnRleHRFcnJvckhhbmRsZXIoZXhlYywgdmFsdWUsIHRoaXNPYmplY3QpKTtcbiIpOwor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICgoKCRpbnRlcmZhY2VOYW1lIGVxICJET01X
aW5kb3ciKSBvciAoJGludGVyZmFjZU5hbWUgZXEgIldvcmtlckNvbnRleHQiKSkgYW5kICRuYW1l
IGVxICJvbmVycm9yIikgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkaW1wbElu
Y2x1ZGVzeyJKU0Vycm9ySGFuZGxlci5oIn0gPSAxOworICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICBpbXAtPnNldCRpbXBsU2V0dGVyRnVuY3Rp
b25OYW1lKGNyZWF0ZUpTRXJyb3JIYW5kbGVyKGV4ZWMsIHZhbHVlLCB0aGlzT2JqZWN0KSk7XG4i
KTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgR2VuZXJhdGVBdHRyaWJ1dGVFdmVu
dExpc3RlbmVyQ2FsbCgkY2xhc3NOYW1lLCAkaW1wbFNldHRlckZ1bmN0aW9uTmFtZSwgJHdpbmRv
d0V2ZW50TGlzdGVuZXIpKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CmRpZmYgLS1n
aXQgYS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvclY4LnBtIGIvV2ViQ29y
ZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JWOC5wbQppbmRleCAxOGU4MGU0ZjdjYzZm
MWY1ZGU4N2JlZjZkZDBjYWQ0ODE3NWM2NDRhLi5kM2MwYmY5MjUwYTMzNTE5NWJkZjAwN2NhZjhk
YTc5ZjFmNDIwYzQzIDEwMDY0NAotLS0gYS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdl
bmVyYXRvclY4LnBtCisrKyBiL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9y
VjgucG0KQEAgLTk5NSw2ICs5OTUsMTAgQEAgRU5ECiAgICAgICAgICAgICAgICAgJGltcGxJbmNs
dWRlc3siVjhFdmVudExpc3RlbmVyTGlzdC5oIn0gPSAxOwogICAgICAgICAgICAgICAgICRpbXBs
SW5jbHVkZXN7IlY4V29ya2VyQ29udGV4dEVycm9ySGFuZGxlci5oIn0gPSAxOwogICAgICAgICAg
ICAgICAgIHB1c2goQGltcGxDb250ZW50RGVjbHMsICIgICAgaW1wLT5zZXQkaW1wbFNldHRlckZ1
bmN0aW9uTmFtZShWOEV2ZW50TGlzdGVuZXJMaXN0OjpmaW5kT3JDcmVhdGVXcmFwcGVyPFY4V29y
a2VyQ29udGV4dEVycm9ySGFuZGxlcj4odmFsdWUsIHRydWUpIik7CisgICAgICAgICAgICB9IGVs
c2lmICgkaW50ZXJmYWNlTmFtZSBlcSAiRE9NV2luZG93IiBhbmQgJGF0dHJpYnV0ZS0+c2lnbmF0
dXJlLT5uYW1lIGVxICJvbmVycm9yIikgeworICAgICAgICAgICAgICAgICRpbXBsSW5jbHVkZXN7
IlY4RXZlbnRMaXN0ZW5lckxpc3QuaCJ9ID0gMTsKKyAgICAgICAgICAgICAgICAkaW1wbEluY2x1
ZGVzeyJWOFdpbmRvd0Vycm9ySGFuZGxlci5oIn0gPSAxOworICAgICAgICAgICAgICAgIHB1c2go
QGltcGxDb250ZW50RGVjbHMsICIgICAgaW1wLT5zZXQkaW1wbFNldHRlckZ1bmN0aW9uTmFtZShW
OEV2ZW50TGlzdGVuZXJMaXN0OjpmaW5kT3JDcmVhdGVXcmFwcGVyPFY4V2luZG93RXJyb3JIYW5k
bGVyPih2YWx1ZSwgdHJ1ZSkiKTsKICAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAg
ICAgcHVzaChAaW1wbENvbnRlbnREZWNscywgIiAgICBpbXAtPnNldCRpbXBsU2V0dGVyRnVuY3Rp
b25OYW1lKFY4RE9NV3JhcHBlcjo6Z2V0RXZlbnRMaXN0ZW5lcih2YWx1ZSwgdHJ1ZSwgTGlzdGVu
ZXJGaW5kT3JDcmVhdGUpIik7CiAgICAgICAgICAgICB9CmRpZmYgLS1naXQgYS9XZWJDb3JlL2Jp
bmRpbmdzL3Y4L1Y4Q29uc29sZU1lc3NhZ2UuY3BwIGIvV2ViQ29yZS9iaW5kaW5ncy92OC9WOENv
bnNvbGVNZXNzYWdlLmNwcApvbGQgbW9kZSAxMDA2NDQKbmV3IG1vZGUgMTAwNzU1CmluZGV4IDhi
NmJiMTc4NmE4NWM3OWJjZjAyZmRkZTg1NDE2NTE3ZDFkMWE4NzMuLjRjYTUyNDc3ZGQ0MjU4MjAw
ZDcyOWVjZDI1YmRiM2MwNDc3MWJmNDcKLS0tIGEvV2ViQ29yZS9iaW5kaW5ncy92OC9WOENvbnNv
bGVNZXNzYWdlLmNwcAorKysgYi9XZWJDb3JlL2JpbmRpbmdzL3Y4L1Y4Q29uc29sZU1lc3NhZ2Uu
Y3BwCkBAIC01Myw3ICs1MywxNCBAQCBWOENvbnNvbGVNZXNzYWdlOjpWOENvbnNvbGVNZXNzYWdl
KGNvbnN0IFN0cmluZyYgc3RyaW5nLCBjb25zdCBTdHJpbmcmIHNvdXJjZUlELAogCiB2b2lkIFY4
Q29uc29sZU1lc3NhZ2U6OmRpc3BhdGNoTm93KFBhZ2UqIHBhZ2UpCiB7Ci0gICAgZGlzcGF0Y2hO
b3cocGFnZSwgMCk7CisgICAgQVNTRVJUKHBhZ2UpOworCisgICAgLy8gUHJvY2VzcyBhbnkgZGVs
YXllZCBtZXNzYWdlcyB0byBtYWtlIHN1cmUgdGhhdCBtZXNzYWdlcworICAgIC8vIGFwcGVhciBp
biB0aGUgcmlnaHQgb3JkZXIgaW4gdGhlIGNvbnNvbGUuCisgICAgcHJvY2Vzc0RlbGF5ZWQoKTsK
KworICAgIENvbnNvbGUqIGNvbnNvbGUgPSBwYWdlLT5tYWluRnJhbWUoKS0+ZG9tV2luZG93KCkt
PmNvbnNvbGUoKTsKKyAgICBjb25zb2xlLT5hZGRNZXNzYWdlKEpTTWVzc2FnZVNvdXJjZSwgTG9n
TWVzc2FnZVR5cGUsIEVycm9yTWVzc2FnZUxldmVsLCBtX3N0cmluZywgbV9saW5lTnVtYmVyLCBt
X3NvdXJjZUlEKTsKIH0KIAogdm9pZCBWOENvbnNvbGVNZXNzYWdlOjpkaXNwYXRjaExhdGVyKCkK
QEAgLTEwNCw4ICsxMTEsOCBAQCB2b2lkIFY4Q29uc29sZU1lc3NhZ2U6OmhhbmRsZXIodjg6Okhh
bmRsZTx2ODo6TWVzc2FnZT4gbWVzc2FnZSwgdjg6OkhhbmRsZTx2ODo6VgogICAgIEZyYW1lKiBm
cmFtZSA9IFY4UHJveHk6OnJldHJpZXZlRnJhbWVGb3JFbnRlcmVkQ29udGV4dCgpOwogICAgIGlm
ICghZnJhbWUpCiAgICAgICAgIHJldHVybjsKLSAgICBQYWdlKiBwYWdlID0gZnJhbWUtPnBhZ2Uo
KTsKLSAgICBpZiAoIXBhZ2UpCisgICAgRG9jdW1lbnQqIGRvY3VtZW50ID0gZnJhbWUtPmRvY3Vt
ZW50KCk7CisgICAgaWYgKCFkb2N1bWVudCkKICAgICAgICAgcmV0dXJuOwogCiAgICAgdjg6Okhh
bmRsZTx2ODo6U3RyaW5nPiBlcnJvck1lc3NhZ2VTdHJpbmcgPSBtZXNzYWdlLT5HZXQoKTsKQEAg
LTEyNCwyMSArMTMxLDkgQEAgdm9pZCBWOENvbnNvbGVNZXNzYWdlOjpoYW5kbGVyKHY4OjpIYW5k
bGU8djg6Ok1lc3NhZ2U+IG1lc3NhZ2UsIHY4OjpIYW5kbGU8djg6OlYKICAgICB2ODo6SGFuZGxl
PHY4OjpWYWx1ZT4gcmVzb3VyY2VOYW1lID0gbWVzc2FnZS0+R2V0U2NyaXB0UmVzb3VyY2VOYW1l
KCk7CiAgICAgYm9vbCB1c2VVUkwgPSByZXNvdXJjZU5hbWUuSXNFbXB0eSgpIHx8ICFyZXNvdXJj
ZU5hbWUtPklzU3RyaW5nKCk7CiAgICAgU3RyaW5nIHJlc291cmNlTmFtZVN0cmluZyA9IHVzZVVS
TCA/IGZyYW1lLT5kb2N1bWVudCgpLT51cmwoKSA6IHRvV2ViQ29yZVN0cmluZyhyZXNvdXJjZU5h
bWUpOwotICAgIFY4Q29uc29sZU1lc3NhZ2UgY29uc29sZU1lc3NhZ2UoZXJyb3JNZXNzYWdlLCBy
ZXNvdXJjZU5hbWVTdHJpbmcsIG1lc3NhZ2UtPkdldExpbmVOdW1iZXIoKSk7Ci0gICAgY29uc29s
ZU1lc3NhZ2UuZGlzcGF0Y2hOb3cocGFnZSwgY2FsbFN0YWNrLmdldCgpKTsKLX0KLQotdm9pZCBW
OENvbnNvbGVNZXNzYWdlOjpkaXNwYXRjaE5vdyhQYWdlKiBwYWdlLCBTY3JpcHRDYWxsU3RhY2sq
IGNhbGxTdGFjaykKLXsKLSAgICBBU1NFUlQocGFnZSk7CiAKLSAgICAvLyBQcm9jZXNzIGFueSBk
ZWxheWVkIG1lc3NhZ2VzIHRvIG1ha2Ugc3VyZSB0aGF0IG1lc3NhZ2VzCi0gICAgLy8gYXBwZWFy
IGluIHRoZSByaWdodCBvcmRlciBpbiB0aGUgY29uc29sZS4KICAgICBwcm9jZXNzRGVsYXllZCgp
OwotCi0gICAgQ29uc29sZSogY29uc29sZSA9IHBhZ2UtPm1haW5GcmFtZSgpLT5kb21XaW5kb3co
KS0+Y29uc29sZSgpOwotICAgIE1lc3NhZ2VUeXBlIG1lc3NhZ2VUeXBlID0gY2FsbFN0YWNrID8g
VW5jYXVnaHRFeGNlcHRpb25NZXNzYWdlVHlwZSA6IExvZ01lc3NhZ2VUeXBlOwotICAgIGNvbnNv
bGUtPmFkZE1lc3NhZ2UoSlNNZXNzYWdlU291cmNlLCBtZXNzYWdlVHlwZSwgRXJyb3JNZXNzYWdl
TGV2ZWwsIG1fc3RyaW5nLCBtX2xpbmVOdW1iZXIsIG1fc291cmNlSUQsIGNhbGxTdGFjayk7Cisg
ICAgZG9jdW1lbnQtPnJlcG9ydEV4Y2VwdGlvbihlcnJvck1lc3NhZ2UsIG1lc3NhZ2UtPkdldExp
bmVOdW1iZXIoKSwgcmVzb3VyY2VOYW1lU3RyaW5nLCBjYWxsU3RhY2sucmVsZWFzZSgpKTsKIH0K
IAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9iaW5kaW5ncy92
OC9WOENvbnNvbGVNZXNzYWdlLmggYi9XZWJDb3JlL2JpbmRpbmdzL3Y4L1Y4Q29uc29sZU1lc3Nh
Z2UuaApvbGQgbW9kZSAxMDA2NDQKbmV3IG1vZGUgMTAwNzU1CmluZGV4IDM4N2I1ZWUzNGI1Njhl
NjgzZjRjZTdlZWFlZjE0YzI2YjE1NjdlNTMuLmUyZmJjYTdkZjM2MjMyOThmMjQ1MDU1MjAxMTU4
ZTk1Njc5NmFmMTkKLS0tIGEvV2ViQ29yZS9iaW5kaW5ncy92OC9WOENvbnNvbGVNZXNzYWdlLmgK
KysrIGIvV2ViQ29yZS9iaW5kaW5ncy92OC9WOENvbnNvbGVNZXNzYWdlLmgKQEAgLTM3LDU2ICsz
Nyw1NSBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLSAgICBjbGFzcyBQYWdlOwotICAgIGNs
YXNzIFNjcmlwdENhbGxTdGFjazsKK2NsYXNzIEZyYW1lOworY2xhc3MgUGFnZTsKK2NsYXNzIFNj
cmlwdENhbGxTdGFjazsKIAotICAgIC8vIFY4Q29uc29sZU1lc3NhZ2UgZW5jYXBzdWxhdGVzIGV2
ZXJ5dGhpbmcgbmVlZGVkIHRvCi0gICAgLy8gbG9nIG1lc3NhZ2VzIG9yaWdpbmF0aW5nIGZyb20g
SmF2YVNjcmlwdCB0byB0aGUgY29uc29sZS4KLSAgICBjbGFzcyBWOENvbnNvbGVNZXNzYWdlIHsK
LSAgICBwdWJsaWM6Ci0gICAgICAgIFY4Q29uc29sZU1lc3NhZ2UoY29uc3QgU3RyaW5nJiBzdHJp
bmcsIGNvbnN0IFN0cmluZyYgc291cmNlSUQsIHVuc2lnbmVkIGxpbmVOdW1iZXIpOwotCi0gICAg
ICAgIC8vIEFkZCBhIG1lc3NhZ2UgdG8gdGhlIGNvbnNvbGUuIE1heSBlbmQgdXAgY2FsbGluZyBK
YXZhU2NyaXB0IGNvZGUKLSAgICAgICAgLy8gaW5kaXJlY3RseSB0aHJvdWdoIHRoZSBpbnNwZWN0
b3Igc28gb25seSBjYWxsIHRoaXMgZnVuY3Rpb24gd2hlbgotICAgICAgICAvLyBpdCBpcyBzYWZl
IHRvIGRvIGFsbG9jYXRpb25zLgotICAgICAgICB2b2lkIGRpc3BhdGNoTm93KFBhZ2UqKTsKKy8v
IFY4Q29uc29sZU1lc3NhZ2UgZW5jYXBzdWxhdGVzIGV2ZXJ5dGhpbmcgbmVlZGVkIHRvCisvLyBs
b2cgbWVzc2FnZXMgb3JpZ2luYXRpbmcgZnJvbSBKYXZhU2NyaXB0IHRvIHRoZSBjb25zb2xlLgor
Y2xhc3MgVjhDb25zb2xlTWVzc2FnZSB7CitwdWJsaWM6CisgICAgVjhDb25zb2xlTWVzc2FnZShj
b25zdCBTdHJpbmcmIHN0cmluZywgY29uc3QgU3RyaW5nJiBzb3VyY2VJRCwgdW5zaWduZWQgbGlu
ZU51bWJlcik7CiAKLSAgICAgICAgLy8gQWRkIGEgbWVzc2FnZSB0byB0aGUgY29uc29sZSBidXQg
ZGVsYXkgdGhlIHJlcG9ydGluZyB1bnRpbCBpdAotICAgICAgICAvLyBpcyBzYWZlIHRvIGRvIHNv
OiBFaXRoZXIgd2hlbiB3ZSBsZWF2ZSBKYXZhU2NyaXB0IGV4ZWN1dGlvbiBvcgotICAgICAgICAv
LyB3aGVuIGFkZGluZyBvdGhlciBjb25zb2xlIG1lc3NhZ2VzLiBUaGUgcHJpbWFyeSBwdXJwb3Nl
IG9mIHRoaXMKLSAgICAgICAgLy8gbWV0aG9kIGlzIHRvIGF2b2lkIGNhbGxpbmcgaW50byBWOCB0
byBoYW5kbGUgY29uc29sZSBtZXNzYWdlcwotICAgICAgICAvLyB3aGVuIHRoZSBWTSBpcyBpbiBh
IHN0YXRlIHRoYXQgZG9lcyBub3Qgc3VwcG9ydCBHQ3Mgb3IgYWxsb2NhdGlvbnMuCi0gICAgICAg
IC8vIERlbGF5ZWQgbWVzc2FnZXMgYXJlIGFsd2F5cyByZXBvcnRlZCBpbiB0aGUgcGFnZSBjb3Jy
ZXNwb25kaW5nCi0gICAgICAgIC8vIHRvIHRoZSBhY3RpdmUgY29udGV4dC4KLSAgICAgICAgdm9p
ZCBkaXNwYXRjaExhdGVyKCk7CisgICAgLy8gQWRkIGEgbWVzc2FnZSB0byB0aGUgY29uc29sZS4g
TWF5IGVuZCB1cCBjYWxsaW5nIEphdmFTY3JpcHQgY29kZQorICAgIC8vIGluZGlyZWN0bHkgdGhy
b3VnaCB0aGUgaW5zcGVjdG9yIHNvIG9ubHkgY2FsbCB0aGlzIGZ1bmN0aW9uIHdoZW4KKyAgICAv
LyBpdCBpcyBzYWZlIHRvIGRvIGFsbG9jYXRpb25zLgorICAgIHZvaWQgZGlzcGF0Y2hOb3coUGFn
ZSopOwogCi0gICAgICAgIC8vIFByb2Nlc3MgYW55IGRlbGF5ZWQgbWVzc2FnZXMuIE1heSBlbmQg
dXAgY2FsbGluZyBKYXZhU2NyaXB0IGNvZGUKLSAgICAgICAgLy8gaW5kaXJlY3RseSB0aHJvdWdo
IHRoZSBpbnNwZWN0b3Igc28gb25seSBjYWxsIHRoaXMgZnVuY3Rpb24gd2hlbgotICAgICAgICAv
LyBpdCBpcyBzYWZlIHRvIGRvIGFsbG9jYXRpb25zLgotICAgICAgICBzdGF0aWMgdm9pZCBwcm9j
ZXNzRGVsYXllZCgpOworICAgIC8vIEFkZCBhIG1lc3NhZ2UgdG8gdGhlIGNvbnNvbGUgYnV0IGRl
bGF5IHRoZSByZXBvcnRpbmcgdW50aWwgaXQKKyAgICAvLyBpcyBzYWZlIHRvIGRvIHNvOiBFaXRo
ZXIgd2hlbiB3ZSBsZWF2ZSBKYXZhU2NyaXB0IGV4ZWN1dGlvbiBvcgorICAgIC8vIHdoZW4gYWRk
aW5nIG90aGVyIGNvbnNvbGUgbWVzc2FnZXMuIFRoZSBwcmltYXJ5IHB1cnBvc2Ugb2YgdGhpcwor
ICAgIC8vIG1ldGhvZCBpcyB0byBhdm9pZCBjYWxsaW5nIGludG8gVjggdG8gaGFuZGxlIGNvbnNv
bGUgbWVzc2FnZXMKKyAgICAvLyB3aGVuIHRoZSBWTSBpcyBpbiBhIHN0YXRlIHRoYXQgZG9lcyBu
b3Qgc3VwcG9ydCBHQ3Mgb3IgYWxsb2NhdGlvbnMuCisgICAgLy8gRGVsYXllZCBtZXNzYWdlcyBh
cmUgYWx3YXlzIHJlcG9ydGVkIGluIHRoZSBwYWdlIGNvcnJlc3BvbmRpbmcKKyAgICAvLyB0byB0
aGUgYWN0aXZlIGNvbnRleHQuCisgICAgdm9pZCBkaXNwYXRjaExhdGVyKCk7CiAKLSAgICAgICAg
Ly8gQ29udmVuaWVuY2UgY2xhc3MgZm9yIGVuc3VyaW5nIHRoYXQgZGVsYXllZCBtZXNzYWdlcyBp
biB0aGUKLSAgICAgICAgLy8gQ29uc29sZU1lc3NhZ2VNYW5hZ2VyIGFyZSBwcm9jZXNzZWQgcXVp
Y2tseS4KLSAgICAgICAgY2xhc3MgU2NvcGUgewotICAgICAgICBwdWJsaWM6Ci0gICAgICAgICAg
ICBTY29wZSgpIHsgVjhDb25zb2xlTWVzc2FnZTo6cHJvY2Vzc0RlbGF5ZWQoKTsgfQotICAgICAg
ICAgICAgflNjb3BlKCkgeyBWOENvbnNvbGVNZXNzYWdlOjpwcm9jZXNzRGVsYXllZCgpOyB9Ci0g
ICAgICAgIH07CisgICAgLy8gUHJvY2VzcyBhbnkgZGVsYXllZCBtZXNzYWdlcy4gTWF5IGVuZCB1
cCBjYWxsaW5nIEphdmFTY3JpcHQgY29kZQorICAgIC8vIGluZGlyZWN0bHkgdGhyb3VnaCB0aGUg
aW5zcGVjdG9yIHNvIG9ubHkgY2FsbCB0aGlzIGZ1bmN0aW9uIHdoZW4KKyAgICAvLyBpdCBpcyBz
YWZlIHRvIGRvIGFsbG9jYXRpb25zLgorICAgIHN0YXRpYyB2b2lkIHByb2Nlc3NEZWxheWVkKCk7
CiAKLSAgICAgICAgLy8gQ2FsbGJhY2sgZnJvbSBWOC4KLSAgICAgICAgc3RhdGljIHZvaWQgaGFu
ZGxlcih2ODo6SGFuZGxlPHY4OjpNZXNzYWdlPiwgdjg6OkhhbmRsZTx2ODo6VmFsdWU+IGRhdGEp
OworICAgIC8vIENvbnZlbmllbmNlIGNsYXNzIGZvciBlbnN1cmluZyB0aGF0IGRlbGF5ZWQgbWVz
c2FnZXMgaW4gdGhlCisgICAgLy8gQ29uc29sZU1lc3NhZ2VNYW5hZ2VyIGFyZSBwcm9jZXNzZWQg
cXVpY2tseS4KKyAgICBjbGFzcyBTY29wZSB7CisgICAgcHVibGljOgorICAgICAgICBTY29wZSgp
IHsgVjhDb25zb2xlTWVzc2FnZTo6cHJvY2Vzc0RlbGF5ZWQoKTsgfQorICAgICAgICB+U2NvcGUo
KSB7IFY4Q29uc29sZU1lc3NhZ2U6OnByb2Nlc3NEZWxheWVkKCk7IH0KKyAgICB9OwogCi0gICAg
cHJpdmF0ZToKLSAgICAgICAgY29uc3QgU3RyaW5nIG1fc3RyaW5nOwotICAgICAgICBjb25zdCBT
dHJpbmcgbV9zb3VyY2VJRDsKLSAgICAgICAgY29uc3QgdW5zaWduZWQgbV9saW5lTnVtYmVyOwor
ICAgIC8vIENhbGxiYWNrIGZyb20gVjguCisgICAgc3RhdGljIHZvaWQgaGFuZGxlcih2ODo6SGFu
ZGxlPHY4OjpNZXNzYWdlPiwgdjg6OkhhbmRsZTx2ODo6VmFsdWU+IGRhdGEpOwogCi0gICAgICAg
IHZvaWQgZGlzcGF0Y2hOb3coUGFnZSosIFNjcmlwdENhbGxTdGFjayopOworcHJpdmF0ZToKKyAg
ICBjb25zdCBTdHJpbmcgbV9zdHJpbmc7CisgICAgY29uc3QgU3RyaW5nIG1fc291cmNlSUQ7Cisg
ICAgY29uc3QgdW5zaWduZWQgbV9saW5lTnVtYmVyOwogCi0gICAgICAgIC8vIEFsbCBkZWxheWVk
IG1lc3NhZ2VzIGFyZSBzdG9yZWQgaW4gdGhpcyB2ZWN0b3IuIElmIHRoZSB2ZWN0b3IKLSAgICAg
ICAgLy8gaXMgMCwgdGhlcmUgYXJlIG5vIGRlbGF5ZWQgbWVzc2FnZXMuCi0gICAgICAgIHN0YXRp
YyBWZWN0b3I8VjhDb25zb2xlTWVzc2FnZT4qIG1fZGVsYXllZE1lc3NhZ2VzOwotICAgIH07Cisg
ICAgLy8gQWxsIGRlbGF5ZWQgbWVzc2FnZXMgYXJlIHN0b3JlZCBpbiB0aGlzIHZlY3Rvci4gSWYg
dGhlIHZlY3RvcgorICAgIC8vIGlzIDAsIHRoZXJlIGFyZSBubyBkZWxheWVkIG1lc3NhZ2VzLgor
ICAgIHN0YXRpYyBWZWN0b3I8VjhDb25zb2xlTWVzc2FnZT4qIG1fZGVsYXllZE1lc3NhZ2VzOwor
fTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCmRpZmYgLS1naXQgYS9XZWJDb3JlL2JpbmRp
bmdzL2pzL0pTV29ya2VyQ29udGV4dEVycm9ySGFuZGxlci5oIGIvV2ViQ29yZS9iaW5kaW5ncy92
OC9WOFdpbmRvd0Vycm9ySGFuZGxlci5jcHAKb2xkIG1vZGUgMTAwNjQ0Cm5ldyBtb2RlIDEwMDc1
NQpzaW1pbGFyaXR5IGluZGV4IDU2JQpjb3B5IGZyb20gV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1dv
cmtlckNvbnRleHRFcnJvckhhbmRsZXIuaApjb3B5IHRvIFdlYkNvcmUvYmluZGluZ3MvdjgvVjhX
aW5kb3dFcnJvckhhbmRsZXIuY3BwCmluZGV4IGExODgyOTkwMzhjOWNkZmU3MjI4NmI3MWZlYWVi
M2E0OWMyYTBkODEuLmE3NGJhZDQ4MzBjODExODE4YzUzMmExMTEzZGU5YjllMzRjNmI3YTQKLS0t
IGEvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1dvcmtlckNvbnRleHRFcnJvckhhbmRsZXIuaAorKysg
Yi9XZWJDb3JlL2JpbmRpbmdzL3Y4L1Y4V2luZG93RXJyb3JIYW5kbGVyLmNwcApAQCAtMjgsMzcg
KzI4LDM1IEBACiAgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgogICovCiAKLSNpZm5kZWYgSlNXb3JrZXJDb250ZXh0
RXJyb3JIYW5kbGVyX2gKLSNkZWZpbmUgSlNXb3JrZXJDb250ZXh0RXJyb3JIYW5kbGVyX2gKKyNp
bmNsdWRlICJjb25maWcuaCIKIAotI2luY2x1ZGUgIkpTRXZlbnRMaXN0ZW5lci5oIgorI2luY2x1
ZGUgIlY4V2luZG93RXJyb3JIYW5kbGVyLmgiCiAKLW5hbWVzcGFjZSBXZWJDb3JlIHsKLQotY2xh
c3MgSlNXb3JrZXJDb250ZXh0RXJyb3JIYW5kbGVyIDogcHVibGljIEpTRXZlbnRMaXN0ZW5lciB7
Ci1wdWJsaWM6Ci0gICAgc3RhdGljIFBhc3NSZWZQdHI8SlNXb3JrZXJDb250ZXh0RXJyb3JIYW5k
bGVyPiBjcmVhdGUoSlNDOjpKU09iamVjdCogbGlzdGVuZXIsIEpTQzo6SlNPYmplY3QqIHdyYXBw
ZXIsIGJvb2wgaXNBdHRyaWJ1dGUsIERPTVdyYXBwZXJXb3JsZCogaXNvbGF0ZWRXb3JsZCkKLSAg
ICB7Ci0gICAgICAgIHJldHVybiBhZG9wdFJlZihuZXcgSlNXb3JrZXJDb250ZXh0RXJyb3JIYW5k
bGVyKGxpc3RlbmVyLCB3cmFwcGVyLCBpc0F0dHJpYnV0ZSwgaXNvbGF0ZWRXb3JsZCkpOwotICAg
IH0KKyNpbmNsdWRlICJFcnJvckV2ZW50LmgiCisjaW5jbHVkZSAiVjhCaW5kaW5nLmgiCiAKLSAg
ICB2aXJ0dWFsIH5KU1dvcmtlckNvbnRleHRFcnJvckhhbmRsZXIoKTsKLQotcHJpdmF0ZToKLSAg
ICBKU1dvcmtlckNvbnRleHRFcnJvckhhbmRsZXIoSlNDOjpKU09iamVjdCogZnVuY3Rpb24sIEpT
Qzo6SlNPYmplY3QqIHdyYXBwZXIsIGJvb2wgaXNBdHRyaWJ1dGUsIERPTVdyYXBwZXJXb3JsZCog
aXNvbGF0ZWRXb3JsZCk7Ci0gICAgdmlydHVhbCB2b2lkIGhhbmRsZUV2ZW50KFNjcmlwdEV4ZWN1
dGlvbkNvbnRleHQqLCBFdmVudCopOwotfTsKK25hbWVzcGFjZSBXZWJDb3JlIHsKIAotLy8gQ3Jl
YXRlcyBhIEpTIEV2ZW50TGlzdGVuZXIgZm9yICJvbmVycm9yIiBldmVudCBoYW5kbGVyIGluIHdv
cmtlciBjb250ZXh0LiBJdCBoYXMgY3VzdG9tIGltcGxlbWVudGF0aW9uIGJlY2F1c2UKLS8vIHVu
bGlrZSBvdGhlciBldmVudCBsaXN0ZW5lcnMgaXQgYWNjZXB0cyB0aHJlZSBwYXJhbWV0ZXJzLgot
aW5saW5lIFBhc3NSZWZQdHI8SlNXb3JrZXJDb250ZXh0RXJyb3JIYW5kbGVyPiBjcmVhdGVKU1dv
cmtlckNvbnRleHRFcnJvckhhbmRsZXIoSlNDOjpFeGVjU3RhdGUqIGV4ZWMsIEpTQzo6SlNWYWx1
ZSBsaXN0ZW5lciwgSlNDOjpKU09iamVjdCogd3JhcHBlcikKK1Y4V2luZG93RXJyb3JIYW5kbGVy
OjpWOFdpbmRvd0Vycm9ySGFuZGxlcih2ODo6TG9jYWw8djg6Ok9iamVjdD4gbGlzdGVuZXIsIGJv
b2wgaXNJbmxpbmUsIGNvbnN0IFdvcmxkQ29udGV4dEhhbmRsZSYgd29ybGRDb250ZXh0KQorICAg
IDogVjhFdmVudExpc3RlbmVyKGxpc3RlbmVyLCBpc0lubGluZSwgd29ybGRDb250ZXh0KQogewot
ICAgIGlmICghbGlzdGVuZXIuaXNPYmplY3QoKSkKLSAgICAgICAgcmV0dXJuIDA7Cit9CiAKLSAg
ICByZXR1cm4gSlNXb3JrZXJDb250ZXh0RXJyb3JIYW5kbGVyOjpjcmVhdGUoYXNPYmplY3QobGlz
dGVuZXIpLCB3cmFwcGVyLCB0cnVlLCBjdXJyZW50V29ybGQoZXhlYykpOwordjg6OkxvY2FsPHY4
OjpWYWx1ZT4gVjhXaW5kb3dFcnJvckhhbmRsZXI6OmNhbGxMaXN0ZW5lckZ1bmN0aW9uKFNjcmlw
dEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQsIHY4OjpIYW5kbGU8djg6OlZhbHVlPiBqc0V2ZW50
LCBFdmVudCogZXZlbnQpCit7CisgICAgQVNTRVJUKGV2ZW50LT5pc0Vycm9yRXZlbnQoKSk7Cisg
ICAgRXJyb3JFdmVudCogZXJyb3JFdmVudCA9IHN0YXRpY19jYXN0PEVycm9yRXZlbnQqPihldmVu
dCk7CisgICAgdjg6OkxvY2FsPHY4OjpPYmplY3Q+IGxpc3RlbmVyID0gZ2V0TGlzdGVuZXJPYmpl
Y3QoY29udGV4dCk7CisgICAgdjg6OkxvY2FsPHY4OjpWYWx1ZT4gcmV0dXJuVmFsdWU7CisgICAg
aWYgKCFsaXN0ZW5lci5Jc0VtcHR5KCkgJiYgbGlzdGVuZXItPklzRnVuY3Rpb24oKSkgeworICAg
ICAgICB2ODo6TG9jYWw8djg6OkZ1bmN0aW9uPiBjYWxsRnVuY3Rpb24gPSB2ODo6TG9jYWw8djg6
OkZ1bmN0aW9uPjo6Q2FzdChsaXN0ZW5lcik7CisgICAgICAgIHY4OjpMb2NhbDx2ODo6T2JqZWN0
PiB0aGlzVmFsdWUgPSB2ODo6Q29udGV4dDo6R2V0Q3VycmVudCgpLT5HbG9iYWwoKTsKKyAgICAg
ICAgdjg6OkhhbmRsZTx2ODo6VmFsdWU+IHBhcmFtZXRlcnNbM10gPSB7IHY4U3RyaW5nKGVycm9y
RXZlbnQtPm1lc3NhZ2UoKSksIHY4U3RyaW5nKGVycm9yRXZlbnQtPmZpbGVuYW1lKCkpLCB2ODo6
SW50ZWdlcjo6TmV3KGVycm9yRXZlbnQtPmxpbmVubygpKSB9OworICAgICAgICByZXR1cm5WYWx1
ZSA9IGNhbGxGdW5jdGlvbi0+Q2FsbCh0aGlzVmFsdWUsIDMsIHBhcmFtZXRlcnMpOworICAgICAg
ICBpZiAoIXJldHVyblZhbHVlLklzRW1wdHkoKSAmJiByZXR1cm5WYWx1ZS0+SXNCb29sZWFuKCkg
JiYgIXJldHVyblZhbHVlLT5Cb29sZWFuVmFsdWUoKSkKKyAgICAgICAgICAgIGV2ZW50LT5wcmV2
ZW50RGVmYXVsdCgpOworICAgIH0KKyAgICByZXR1cm4gcmV0dXJuVmFsdWU7CiB9CiAKIH0gLy8g
bmFtZXNwYWNlIFdlYkNvcmUKLQotI2VuZGlmIC8vIEpTV29ya2VyQ29udGV4dEVycm9ySGFuZGxl
cl9oCmRpZmYgLS1naXQgYS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTV29ya2VyQ29udGV4dEVycm9y
SGFuZGxlci5oIGIvV2ViQ29yZS9iaW5kaW5ncy92OC9WOFdpbmRvd0Vycm9ySGFuZGxlci5oCm9s
ZCBtb2RlIDEwMDY0NApuZXcgbW9kZSAxMDA3NTUKc2ltaWxhcml0eSBpbmRleCA1OCUKcmVuYW1l
IGZyb20gV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1dvcmtlckNvbnRleHRFcnJvckhhbmRsZXIuaApy
ZW5hbWUgdG8gV2ViQ29yZS9iaW5kaW5ncy92OC9WOFdpbmRvd0Vycm9ySGFuZGxlci5oCmluZGV4
IGExODgyOTkwMzhjOWNkZmU3MjI4NmI3MWZlYWViM2E0OWMyYTBkODEuLjE2N2NhMGQ3ZGY0ODYx
ZTExNGYzYTJkNjYzM2E3NDIxMGJmNjhmOWMKLS0tIGEvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1dv
cmtlckNvbnRleHRFcnJvckhhbmRsZXIuaAorKysgYi9XZWJDb3JlL2JpbmRpbmdzL3Y4L1Y4V2lu
ZG93RXJyb3JIYW5kbGVyLmgKQEAgLTI4LDM3ICsyOCwyOCBAQAogICogT0YgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KICAq
LwogCi0jaWZuZGVmIEpTV29ya2VyQ29udGV4dEVycm9ySGFuZGxlcl9oCi0jZGVmaW5lIEpTV29y
a2VyQ29udGV4dEVycm9ySGFuZGxlcl9oCisjaWZuZGVmIFY4V2luZG93RXJyb3JIYW5kbGVyX2gK
KyNkZWZpbmUgVjhXaW5kb3dFcnJvckhhbmRsZXJfaAogCi0jaW5jbHVkZSAiSlNFdmVudExpc3Rl
bmVyLmgiCisjaW5jbHVkZSAiVjhDdXN0b21FdmVudExpc3RlbmVyLmgiCisjaW5jbHVkZSA8djgu
aD4KKyNpbmNsdWRlIDx3dGYvUGFzc1JlZlB0ci5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAK
LWNsYXNzIEpTV29ya2VyQ29udGV4dEVycm9ySGFuZGxlciA6IHB1YmxpYyBKU0V2ZW50TGlzdGVu
ZXIgeworY2xhc3MgVjhXaW5kb3dFcnJvckhhbmRsZXIgOiBwdWJsaWMgVjhFdmVudExpc3RlbmVy
IHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxKU1dvcmtlckNvbnRleHRFcnJvckhh
bmRsZXI+IGNyZWF0ZShKU0M6OkpTT2JqZWN0KiBsaXN0ZW5lciwgSlNDOjpKU09iamVjdCogd3Jh
cHBlciwgYm9vbCBpc0F0dHJpYnV0ZSwgRE9NV3JhcHBlcldvcmxkKiBpc29sYXRlZFdvcmxkKQor
ICAgIHN0YXRpYyBQYXNzUmVmUHRyPFY4V2luZG93RXJyb3JIYW5kbGVyPiBjcmVhdGUodjg6Okxv
Y2FsPHY4OjpPYmplY3Q+IGxpc3RlbmVyLCBib29sIGlzSW5saW5lLCBjb25zdCBXb3JsZENvbnRl
eHRIYW5kbGUmIHdvcmxkQ29udGV4dCkKICAgICB7Ci0gICAgICAgIHJldHVybiBhZG9wdFJlZihu
ZXcgSlNXb3JrZXJDb250ZXh0RXJyb3JIYW5kbGVyKGxpc3RlbmVyLCB3cmFwcGVyLCBpc0F0dHJp
YnV0ZSwgaXNvbGF0ZWRXb3JsZCkpOworICAgICAgICByZXR1cm4gYWRvcHRSZWYobmV3IFY4V2lu
ZG93RXJyb3JIYW5kbGVyKGxpc3RlbmVyLCBpc0lubGluZSwgd29ybGRDb250ZXh0KSk7CiAgICAg
fQogCi0gICAgdmlydHVhbCB+SlNXb3JrZXJDb250ZXh0RXJyb3JIYW5kbGVyKCk7Ci0KIHByaXZh
dGU6Ci0gICAgSlNXb3JrZXJDb250ZXh0RXJyb3JIYW5kbGVyKEpTQzo6SlNPYmplY3QqIGZ1bmN0
aW9uLCBKU0M6OkpTT2JqZWN0KiB3cmFwcGVyLCBib29sIGlzQXR0cmlidXRlLCBET01XcmFwcGVy
V29ybGQqIGlzb2xhdGVkV29ybGQpOwotICAgIHZpcnR1YWwgdm9pZCBoYW5kbGVFdmVudChTY3Jp
cHRFeGVjdXRpb25Db250ZXh0KiwgRXZlbnQqKTsKLX07CisgICAgVjhXaW5kb3dFcnJvckhhbmRs
ZXIodjg6OkxvY2FsPHY4OjpPYmplY3Q+IGxpc3RlbmVyLCBib29sIGlzSW5saW5lLCBjb25zdCBX
b3JsZENvbnRleHRIYW5kbGUmIHdvcmxkQ29udGV4dCk7CiAKLS8vIENyZWF0ZXMgYSBKUyBFdmVu
dExpc3RlbmVyIGZvciAib25lcnJvciIgZXZlbnQgaGFuZGxlciBpbiB3b3JrZXIgY29udGV4dC4g
SXQgaGFzIGN1c3RvbSBpbXBsZW1lbnRhdGlvbiBiZWNhdXNlCi0vLyB1bmxpa2Ugb3RoZXIgZXZl
bnQgbGlzdGVuZXJzIGl0IGFjY2VwdHMgdGhyZWUgcGFyYW1ldGVycy4KLWlubGluZSBQYXNzUmVm
UHRyPEpTV29ya2VyQ29udGV4dEVycm9ySGFuZGxlcj4gY3JlYXRlSlNXb3JrZXJDb250ZXh0RXJy
b3JIYW5kbGVyKEpTQzo6RXhlY1N0YXRlKiBleGVjLCBKU0M6OkpTVmFsdWUgbGlzdGVuZXIsIEpT
Qzo6SlNPYmplY3QqIHdyYXBwZXIpCi17Ci0gICAgaWYgKCFsaXN0ZW5lci5pc09iamVjdCgpKQot
ICAgICAgICByZXR1cm4gMDsKLQotICAgIHJldHVybiBKU1dvcmtlckNvbnRleHRFcnJvckhhbmRs
ZXI6OmNyZWF0ZShhc09iamVjdChsaXN0ZW5lciksIHdyYXBwZXIsIHRydWUsIGN1cnJlbnRXb3Js
ZChleGVjKSk7Ci19CisgICAgdmlydHVhbCB2ODo6TG9jYWw8djg6OlZhbHVlPiBjYWxsTGlzdGVu
ZXJGdW5jdGlvbihTY3JpcHRFeGVjdXRpb25Db250ZXh0Kiwgdjg6OkhhbmRsZTx2ODo6VmFsdWU+
IGpzRXZlbnQsIEV2ZW50Kik7Cit9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKLSNlbmRp
ZiAvLyBKU1dvcmtlckNvbnRleHRFcnJvckhhbmRsZXJfaAorI2VuZGlmIC8vIFY4V2luZG93RXJy
b3JIYW5kbGVyX2gKZGlmZiAtLWdpdCBhL1dlYkNvcmUvYmluZGluZ3MvdjgvV29ya2VyQ29udGV4
dEV4ZWN1dGlvblByb3h5LmNwcCBiL1dlYkNvcmUvYmluZGluZ3MvdjgvV29ya2VyQ29udGV4dEV4
ZWN1dGlvblByb3h5LmNwcApvbGQgbW9kZSAxMDA2NDQKbmV3IG1vZGUgMTAwNzU1CmluZGV4IDE2
ZTBiNDEwMWVmZGMzNWFlNzQ0MTgxN2IwNjg3ZGI2YjVhNjVhMjUuLmRkOWE4ZDAxOGQ4YmM5YjFh
NTNkMjUyZDZkYzg1NGEwMTRhNDUyMjgKLS0tIGEvV2ViQ29yZS9iaW5kaW5ncy92OC9Xb3JrZXJD
b250ZXh0RXhlY3V0aW9uUHJveHkuY3BwCisrKyBiL1dlYkNvcmUvYmluZGluZ3MvdjgvV29ya2Vy
Q29udGV4dEV4ZWN1dGlvblByb3h5LmNwcApAQCAtMzcsNiArMzcsNyBAQAogCiAjaW5jbHVkZSAi
RGVkaWNhdGVkV29ya2VyQ29udGV4dC5oIgogI2luY2x1ZGUgIkV2ZW50LmgiCisjaW5jbHVkZSAi
U2NyaXB0Q2FsbFN0YWNrLmgiCiAjaW5jbHVkZSAiU2hhcmVkV29ya2VyLmgiCiAjaW5jbHVkZSAi
U2hhcmVkV29ya2VyQ29udGV4dC5oIgogI2luY2x1ZGUgIlY4QmluZGluZy5oIgpAQCAtNzIsNyAr
NzMsNyBAQCBzdGF0aWMgdm9pZCB2OE1lc3NhZ2VIYW5kbGVyKHY4OjpIYW5kbGU8djg6Ok1lc3Nh
Z2U+IG1lc3NhZ2UsIHY4OjpIYW5kbGU8djg6OlZhbAogICAgICAgICBTdHJpbmcgZXJyb3JNZXNz
YWdlID0gdG9XZWJDb3JlU3RyaW5nKG1lc3NhZ2UtPkdldCgpKTsKICAgICAgICAgaW50IGxpbmVO
dW1iZXIgPSBtZXNzYWdlLT5HZXRMaW5lTnVtYmVyKCk7CiAgICAgICAgIFN0cmluZyBzb3VyY2VV
UkwgPSB0b1dlYkNvcmVTdHJpbmcobWVzc2FnZS0+R2V0U2NyaXB0UmVzb3VyY2VOYW1lKCkpOwot
ICAgICAgICBjb250ZXh0LT5yZXBvcnRFeGNlcHRpb24oZXJyb3JNZXNzYWdlLCBsaW5lTnVtYmVy
LCBzb3VyY2VVUkwpOworICAgICAgICBjb250ZXh0LT5yZXBvcnRFeGNlcHRpb24oZXJyb3JNZXNz
YWdlLCBsaW5lTnVtYmVyLCBzb3VyY2VVUkwsIDApOwogICAgIH0KIAogICAgIGlzUmVwb3J0aW5n
RXhjZXB0aW9uID0gZmFsc2U7CmRpZmYgLS1naXQgYS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1dvcmtl
clNjcmlwdENvbnRyb2xsZXIuY3BwIGIvV2ViQ29yZS9iaW5kaW5ncy92OC9Xb3JrZXJTY3JpcHRD
b250cm9sbGVyLmNwcApvbGQgbW9kZSAxMDA2NDQKbmV3IG1vZGUgMTAwNzU1CmluZGV4IDdkYjBk
OGQzNzM3MDliMmU5NzNiNjdlNzcyM2U0ZmMzMTFmYmNhNTkuLmJmNjkzYTgwYmFmYWZhNzM4NGEy
NzFhMjA5N2EzMTg4NjBmZmEwNWIKLS0tIGEvV2ViQ29yZS9iaW5kaW5ncy92OC9Xb3JrZXJTY3Jp
cHRDb250cm9sbGVyLmNwcAorKysgYi9XZWJDb3JlL2JpbmRpbmdzL3Y4L1dvcmtlclNjcmlwdENv
bnRyb2xsZXIuY3BwCkBAIC0zNCwxMSArMzQsMTAgQEAKIAogI2luY2x1ZGUgIldvcmtlclNjcmlw
dENvbnRyb2xsZXIuaCIKIAotI2luY2x1ZGUgPHY4Lmg+Ci0KKyNpbmNsdWRlICJET01UaW1lci5o
IgorI2luY2x1ZGUgIlNjcmlwdENhbGxTdGFjay5oIgogI2luY2x1ZGUgIlNjcmlwdFNvdXJjZUNv
ZGUuaCIKICNpbmNsdWRlICJTY3JpcHRWYWx1ZS5oIgotI2luY2x1ZGUgIkRPTVRpbWVyLmgiCiAj
aW5jbHVkZSAiVjhET01NYXAuaCIKICNpbmNsdWRlICJWOFByb3h5LmgiCiAjaW5jbHVkZSAiVjhX
b3JrZXJDb250ZXh0LmgiCkBAIC00Niw2ICs0NSw3IEBACiAjaW5jbHVkZSAiV29ya2VyQ29udGV4
dEV4ZWN1dGlvblByb3h5LmgiCiAjaW5jbHVkZSAiV29ya2VyT2JqZWN0UHJveHkuaCIKICNpbmNs
dWRlICJXb3JrZXJUaHJlYWQuaCIKKyNpbmNsdWRlIDx2OC5oPgogCiBuYW1lc3BhY2UgV2ViQ29y
ZSB7CiAKQEAgLTgwLDcgKzgwLDcgQEAgU2NyaXB0VmFsdWUgV29ya2VyU2NyaXB0Q29udHJvbGxl
cjo6ZXZhbHVhdGUoY29uc3QgU2NyaXB0U291cmNlQ29kZSYgc291cmNlQ29kZSwKICAgICAgICAg
aWYgKGV4Y2VwdGlvbikKICAgICAgICAgICAgICpleGNlcHRpb24gPSBzdGF0ZS5leGNlcHRpb247
CiAgICAgICAgIGVsc2UKLSAgICAgICAgICAgIG1fd29ya2VyQ29udGV4dC0+cmVwb3J0RXhjZXB0
aW9uKHN0YXRlLmVycm9yTWVzc2FnZSwgc3RhdGUubGluZU51bWJlciwgc3RhdGUuc291cmNlVVJM
KTsKKyAgICAgICAgICAgIG1fd29ya2VyQ29udGV4dC0+cmVwb3J0RXhjZXB0aW9uKHN0YXRlLmVy
cm9yTWVzc2FnZSwgc3RhdGUubGluZU51bWJlciwgc3RhdGUuc291cmNlVVJMLCAwKTsKICAgICB9
CiAKICAgICByZXR1cm4gcmVzdWx0OwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9kb20vRG9jdW1lbnQu
Y3BwIGIvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCmluZGV4IDk5OTg0YjNkMzBlYThmZTYzOWNh
YjZlODU5NGUxZTliZGI0NmUxNGUuLmJlZjE5OGEzODA1ZDBhY2VhZjYxYzdhYTFiY2UzNjEzZmMy
ZmU2ZDYgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcAorKysgYi9XZWJDb3Jl
L2RvbS9Eb2N1bWVudC5jcHAKQEAgLTIxODQsNiArMjE4NCwxNyBAQCBLVVJMIERvY3VtZW50Ojp2
aXJ0dWFsQ29tcGxldGVVUkwoY29uc3QgU3RyaW5nJiB1cmwpIGNvbnN0CiAgICAgcmV0dXJuIGNv
bXBsZXRlVVJMKHVybCk7CiB9CiAKK0V2ZW50VGFyZ2V0KiBEb2N1bWVudDo6ZXJyb3JFdmVudFRh
cmdldCgpCit7CisgICAgcmV0dXJuIGRvbVdpbmRvdygpOworfQorCit2b2lkIERvY3VtZW50Ojps
b2dFeGNlcHRpb25Ub0NvbnNvbGUoY29uc3QgU3RyaW5nJiBlcnJvck1lc3NhZ2UsIGludCBsaW5l
TnVtYmVyLCBjb25zdCBTdHJpbmcmIHNvdXJjZVVSTCwgU2NyaXB0Q2FsbFN0YWNrKiBjYWxsU3Rh
Y2spCit7CisgICAgTWVzc2FnZVR5cGUgbWVzc2FnZVR5cGUgPSBjYWxsU3RhY2sgPyBVbmNhdWdo
dEV4Y2VwdGlvbk1lc3NhZ2VUeXBlIDogTG9nTWVzc2FnZVR5cGU7CisgICAgYWRkTWVzc2FnZShK
U01lc3NhZ2VTb3VyY2UsIG1lc3NhZ2VUeXBlLCBFcnJvck1lc3NhZ2VMZXZlbCwgZXJyb3JNZXNz
YWdlLCBsaW5lTnVtYmVyLCBzb3VyY2VVUkwpOworfQorCiB2b2lkIERvY3VtZW50OjpzZXRVUkwo
Y29uc3QgS1VSTCYgdXJsKQogewogICAgIGNvbnN0IEtVUkwmIG5ld1VSTCA9IHVybC5pc0VtcHR5
KCkgPyBibGFua1VSTCgpIDogdXJsOwpAQCAtNDU0OCwxMSArNDU1OSw2IEBAIHZvaWQgRG9jdW1l
bnQ6OnBhcnNlRE5TUHJlZmV0Y2hDb250cm9sSGVhZGVyKGNvbnN0IFN0cmluZyYgZG5zUHJlZmV0
Y2hDb250cm9sKQogICAgIG1faGF2ZUV4cGxpY2l0bHlEaXNhYmxlZEROU1ByZWZldGNoID0gdHJ1
ZTsKIH0KIAotdm9pZCBEb2N1bWVudDo6cmVwb3J0RXhjZXB0aW9uKGNvbnN0IFN0cmluZyYgZXJy
b3JNZXNzYWdlLCBpbnQgbGluZU51bWJlciwgY29uc3QgU3RyaW5nJiBzb3VyY2VVUkwpCi17Ci0g
ICAgYWRkTWVzc2FnZShKU01lc3NhZ2VTb3VyY2UsIExvZ01lc3NhZ2VUeXBlLCBFcnJvck1lc3Nh
Z2VMZXZlbCwgZXJyb3JNZXNzYWdlLCBsaW5lTnVtYmVyLCBzb3VyY2VVUkwpOwotfQotCiB2b2lk
IERvY3VtZW50OjphZGRNZXNzYWdlKE1lc3NhZ2VTb3VyY2Ugc291cmNlLCBNZXNzYWdlVHlwZSB0
eXBlLCBNZXNzYWdlTGV2ZWwgbGV2ZWwsIGNvbnN0IFN0cmluZyYgbWVzc2FnZSwgdW5zaWduZWQg
bGluZU51bWJlciwgY29uc3QgU3RyaW5nJiBzb3VyY2VVUkwpCiB7CiAgICAgaWYgKERPTVdpbmRv
dyogd2luZG93ID0gZG9tV2luZG93KCkpCmRpZmYgLS1naXQgYS9XZWJDb3JlL2RvbS9Eb2N1bWVu
dC5oIGIvV2ViQ29yZS9kb20vRG9jdW1lbnQuaAppbmRleCA3ZTlkZjdjZDAzN2VkNTdmYmZmNmY4
MzNhYmU3YTkyZmY4NDJhNmQ1Li5kNTY1MmJjNjY5MGE4MGUzN2EzY2U2ZDVjZjYxYzMyOGQ3ZDEw
ZTExIDEwMDY0NAotLS0gYS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oCisrKyBiL1dlYkNvcmUvZG9t
L0RvY3VtZW50LmgKQEAgLTkwNSw3ICs5MDUsNiBAQCBwdWJsaWM6CiAgICAgYm9vbCBpc0ROU1By
ZWZldGNoRW5hYmxlZCgpIGNvbnN0IHsgcmV0dXJuIG1faXNETlNQcmVmZXRjaEVuYWJsZWQ7IH0K
ICAgICB2b2lkIHBhcnNlRE5TUHJlZmV0Y2hDb250cm9sSGVhZGVyKGNvbnN0IFN0cmluZyYpOwog
Ci0gICAgdmlydHVhbCB2b2lkIHJlcG9ydEV4Y2VwdGlvbihjb25zdCBTdHJpbmcmIGVycm9yTWVz
c2FnZSwgaW50IGxpbmVOdW1iZXIsIGNvbnN0IFN0cmluZyYgc291cmNlVVJMKTsKICAgICB2aXJ0
dWFsIHZvaWQgYWRkTWVzc2FnZShNZXNzYWdlU291cmNlLCBNZXNzYWdlVHlwZSwgTWVzc2FnZUxl
dmVsLCBjb25zdCBTdHJpbmcmIG1lc3NhZ2UsIHVuc2lnbmVkIGxpbmVOdW1iZXIsIGNvbnN0IFN0
cmluZyYgc291cmNlVVJMKTsKICAgICB2aXJ0dWFsIHZvaWQgcG9zdFRhc2soUGFzc093blB0cjxU
YXNrPik7IC8vIEV4ZWN1dGVzIHRoZSB0YXNrIG9uIGNvbnRleHQncyB0aHJlYWQgYXN5bmNocm9u
b3VzbHkuCiAKQEAgLTEwNjEsNiArMTA2MCw5IEBAIHByaXZhdGU6CiAgICAgdmlydHVhbCBjb25z
dCBLVVJMJiB2aXJ0dWFsVVJMKCkgY29uc3Q7IC8vIFNhbWUgYXMgdXJsKCksIGJ1dCBuZWVkZWQg
Zm9yIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQgdG8gaW1wbGVtZW50IGl0IHdpdGhvdXQgYSBwZXJm
b3JtYW5jZSBsb3NzIGZvciBkaXJlY3QgY2FsbHMuCiAgICAgdmlydHVhbCBLVVJMIHZpcnR1YWxD
b21wbGV0ZVVSTChjb25zdCBTdHJpbmcmKSBjb25zdDsgLy8gU2FtZSBhcyBjb21wbGV0ZVVSTCgp
IGZvciB0aGUgc2FtZSByZWFzb24gYXMgYWJvdmUuCiAKKyAgICB2aXJ0dWFsIEV2ZW50VGFyZ2V0
KiBlcnJvckV2ZW50VGFyZ2V0KCk7CisgICAgdmlydHVhbCB2b2lkIGxvZ0V4Y2VwdGlvblRvQ29u
c29sZShjb25zdCBTdHJpbmcmIGVycm9yTWVzc2FnZSwgaW50IGxpbmVOdW1iZXIsIGNvbnN0IFN0
cmluZyYgc291cmNlVVJMLCBTY3JpcHRDYWxsU3RhY2sqKTsKKwogICAgIHZvaWQgaW5pdEROU1By
ZWZldGNoKCk7CiAKICAgICBTdHJpbmcgZW5jb2RpbmcoKSBjb25zdDsKZGlmZiAtLWdpdCBhL1dl
YkNvcmUvZG9tL1NjcmlwdEV4ZWN1dGlvbkNvbnRleHQuY3BwIGIvV2ViQ29yZS9kb20vU2NyaXB0
RXhlY3V0aW9uQ29udGV4dC5jcHAKaW5kZXggYmZkYTE3YjNmMWI0ZDkzZGFiZDhmNjQxMGRiNzY1
YjUwMzY3ZGVjOC4uM2ViZjQzYzMzMWMzZGRhYWE4OWU2NTBlMjlkOTMzOGUzYWJjOWU0ZCAxMDA2
NDQKLS0tIGEvV2ViQ29yZS9kb20vU2NyaXB0RXhlY3V0aW9uQ29udGV4dC5jcHAKKysrIGIvV2Vi
Q29yZS9kb20vU2NyaXB0RXhlY3V0aW9uQ29udGV4dC5jcHAKQEAgLTMzLDE0ICszMywxOSBAQAog
I2luY2x1ZGUgIkRhdGFiYXNlLmgiCiAjaW5jbHVkZSAiRGF0YWJhc2VUYXNrLmgiCiAjaW5jbHVk
ZSAiRGF0YWJhc2VUaHJlYWQuaCIKKyNpbmNsdWRlICJFcnJvckV2ZW50LmgiCisjaW5jbHVkZSAi
RXZlbnRMaXN0ZW5lci5oIgorI2luY2x1ZGUgIkV2ZW50VGFyZ2V0LmgiCiAjaW5jbHVkZSAiRmls
ZVRocmVhZC5oIgogI2luY2x1ZGUgIk1lc3NhZ2VQb3J0LmgiCisjaW5jbHVkZSAiU2NyaXB0Q2Fs
bFN0YWNrLmgiCiAjaW5jbHVkZSAiU2VjdXJpdHlPcmlnaW4uaCIKICNpbmNsdWRlICJUaHJlYWRh
YmxlQmxvYlJlZ2lzdHJ5LmgiCiAjaW5jbHVkZSAiV29ya2VyQ29udGV4dC5oIgogI2luY2x1ZGUg
IldvcmtlclRocmVhZC5oIgogI2luY2x1ZGUgPHd0Zi9NYWluVGhyZWFkLmg+CiAjaW5jbHVkZSA8
d3RmL1Bhc3NSZWZQdHIuaD4KKyNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CiAKICNpZiBVU0UoSlND
KQogI2luY2x1ZGUgIkpTRE9NV2luZG93LmgiCkBAIC02MSwxMCArNjYsMTkgQEAgcHVibGljOgog
ICAgIH0KIH07CiAKK1NjcmlwdEV4ZWN1dGlvbkNvbnRleHQ6OlBlbmRpbmdFeGNlcHRpb246OlBl
bmRpbmdFeGNlcHRpb24oY29uc3QgU3RyaW5nJiBlcnJvck1lc3NhZ2UsIGludCBsaW5lTnVtYmVy
LCBjb25zdCBTdHJpbmcmIHNvdXJjZVVSTCwgUGFzc093blB0cjxTY3JpcHRDYWxsU3RhY2s+IGNh
bGxTdGFjaykKKyAgICA6IG1fZXJyb3JNZXNzYWdlKGVycm9yTWVzc2FnZSkKKyAgICAsIG1fbGlu
ZU51bWJlcihsaW5lTnVtYmVyKQorICAgICwgbV9zb3VyY2VVUkwoc291cmNlVVJMKQorICAgICwg
bV9jYWxsU3RhY2soY2FsbFN0YWNrKQoreworfQorCiBTY3JpcHRFeGVjdXRpb25Db250ZXh0OjpT
Y3JpcHRFeGVjdXRpb25Db250ZXh0KCkKICNpZiBFTkFCTEUoREFUQUJBU0UpCiAgICAgOiBtX2hh
c09wZW5EYXRhYmFzZXMoZmFsc2UpCiAjZW5kaWYKKyAgICAsIG1faW5EaXNwYXRjaEVycm9yRXZl
bnQoZmFsc2UpCiB7CiB9CiAKQEAgLTI0Myw2ICsyNTcsNDMgQEAgdm9pZCBTY3JpcHRFeGVjdXRp
b25Db250ZXh0OjpzZXRTZWN1cml0eU9yaWdpbihQYXNzUmVmUHRyPFNlY3VyaXR5T3JpZ2luPiBz
ZWN1cmkKICAgICBtX3NlY3VyaXR5T3JpZ2luID0gc2VjdXJpdHlPcmlnaW47CiB9CiAKK3ZvaWQg
U2NyaXB0RXhlY3V0aW9uQ29udGV4dDo6cmVwb3J0RXhjZXB0aW9uKGNvbnN0IFN0cmluZyYgZXJy
b3JNZXNzYWdlLCBpbnQgbGluZU51bWJlciwgY29uc3QgU3RyaW5nJiBzb3VyY2VVUkwsIFBhc3NP
d25QdHI8U2NyaXB0Q2FsbFN0YWNrPiBjYWxsU3RhY2spCit7CisgICAgaWYgKG1faW5EaXNwYXRj
aEVycm9yRXZlbnQpIHsKKyAgICAgICAgaWYgKCFtX3BlbmRpbmdFeGNlcHRpb25zKQorICAgICAg
ICAgICAgbV9wZW5kaW5nRXhjZXB0aW9ucyA9IG5ldyBWZWN0b3I8T3duUHRyPFBlbmRpbmdFeGNl
cHRpb24+ID4oKTsKKyAgICAgICAgbV9wZW5kaW5nRXhjZXB0aW9ucy0+YXBwZW5kKG5ldyBQZW5k
aW5nRXhjZXB0aW9uKGVycm9yTWVzc2FnZSwgbGluZU51bWJlciwgc291cmNlVVJMLCBjYWxsU3Rh
Y2spKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIC8vIEZpcnN0IHJlcG9ydCB0aGUg
b3JpZ2luYWwgZXhjZXB0aW9uIGFuZCBvbmx5IHRoZW4gYWxsIHRoZSBuZXN0ZWQgb25lcy4KKyAg
ICBpZiAoIWRpc3BhdGNoRXJyb3JFdmVudChlcnJvck1lc3NhZ2UsIGxpbmVOdW1iZXIsIHNvdXJj
ZVVSTCkpCisgICAgICAgIGxvZ0V4Y2VwdGlvblRvQ29uc29sZShlcnJvck1lc3NhZ2UsIGxpbmVO
dW1iZXIsIHNvdXJjZVVSTCwgY2FsbFN0YWNrLmdldCgpKTsKKworICAgIGlmICghbV9wZW5kaW5n
RXhjZXB0aW9ucykKKyAgICAgICAgcmV0dXJuOworCisgICAgZm9yIChzaXplX3QgaSA9IDA7IGkg
PCBtX3BlbmRpbmdFeGNlcHRpb25zLT5zaXplKCk7IGkrKykgeworICAgICAgICBQZW5kaW5nRXhj
ZXB0aW9uKiBlID0gbV9wZW5kaW5nRXhjZXB0aW9ucy0+YXQoaSkuZ2V0KCk7CisgICAgICAgIGxv
Z0V4Y2VwdGlvblRvQ29uc29sZShlLT5tX2Vycm9yTWVzc2FnZSwgZS0+bV9saW5lTnVtYmVyLCBl
LT5tX3NvdXJjZVVSTCwgZS0+bV9jYWxsU3RhY2suZ2V0KCkpOworICAgIH0KKyAgICBtX3BlbmRp
bmdFeGNlcHRpb25zLmNsZWFyKCk7Cit9CisKK2Jvb2wgU2NyaXB0RXhlY3V0aW9uQ29udGV4dDo6
ZGlzcGF0Y2hFcnJvckV2ZW50KGNvbnN0IFN0cmluZyYgZXJyb3JNZXNzYWdlLCBpbnQgbGluZU51
bWJlciwgY29uc3QgU3RyaW5nJiBzb3VyY2VVUkwpCit7CisgICAgRXZlbnRUYXJnZXQqIHRhcmdl
dCA9IGVycm9yRXZlbnRUYXJnZXQoKTsKKyAgICBpZiAoIXRhcmdldCkKKyAgICAgICAgcmV0dXJu
IGZhbHNlOworCisgICAgQVNTRVJUKCFtX2luRGlzcGF0Y2hFcnJvckV2ZW50KTsKKyAgICBtX2lu
RGlzcGF0Y2hFcnJvckV2ZW50ID0gdHJ1ZTsKKyAgICBSZWZQdHI8RXJyb3JFdmVudD4gZXJyb3JF
dmVudCA9IEVycm9yRXZlbnQ6OmNyZWF0ZShlcnJvck1lc3NhZ2UsIHNvdXJjZVVSTCwgbGluZU51
bWJlcik7CisgICAgdGFyZ2V0LT5kaXNwYXRjaEV2ZW50KGVycm9yRXZlbnQpOworICAgIG1faW5E
aXNwYXRjaEVycm9yRXZlbnQgPSBmYWxzZTsKKyAgICByZXR1cm4gZXJyb3JFdmVudC0+ZGVmYXVs
dFByZXZlbnRlZCgpOworfQorCiB2b2lkIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQ6OmFkZFRpbWVv
dXQoaW50IHRpbWVvdXRJZCwgRE9NVGltZXIqIHRpbWVyKQogewogICAgIEFTU0VSVCghbV90aW1l
b3V0cy5jb250YWlucyh0aW1lb3V0SWQpKTsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvZG9tL1Njcmlw
dEV4ZWN1dGlvbkNvbnRleHQuaCBiL1dlYkNvcmUvZG9tL1NjcmlwdEV4ZWN1dGlvbkNvbnRleHQu
aAppbmRleCBiNDZhMGY0ZjVkZGQyYjBlZTU5NDc5YTc5ZDAzZTdiZmQzNWU5NjQ4Li5lYjQ1ZGJh
NjdmMDZiMTUzZjIwMzRmOWQ4NDRjMDFlZjhmMjE3ZTQ5IDEwMDY0NAotLS0gYS9XZWJDb3JlL2Rv
bS9TY3JpcHRFeGVjdXRpb25Db250ZXh0LmgKKysrIGIvV2ViQ29yZS9kb20vU2NyaXB0RXhlY3V0
aW9uQ29udGV4dC5oCkBAIC0zMyw2ICszMyw3IEBACiAjaW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4K
ICNpbmNsdWRlIDx3dGYvSGFzaE1hcC5oPgogI2luY2x1ZGUgPHd0Zi9IYXNoU2V0Lmg+CisjaW5j
bHVkZSA8d3RmL093blB0ci5oPgogI2luY2x1ZGUgPHd0Zi9QYXNzT3duUHRyLmg+CiAjaW5jbHVk
ZSA8d3RmL1Bhc3NSZWZQdHIuaD4KICNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+CkBAIC01MiwxMSAr
NTMsMTQgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgIGNsYXNzIERhdGFiYXNlVGhyZWFkOwog
I2VuZGlmCiAgICAgY2xhc3MgRE9NVGltZXI7CisgICAgY2xhc3MgRXZlbnRMaXN0ZW5lcjsKKyAg
ICBjbGFzcyBFdmVudFRhcmdldDsKICNpZiBFTkFCTEUoQkxPQikgfHwgRU5BQkxFKEZJTEVfU1lT
VEVNKQogICAgIGNsYXNzIEZpbGVUaHJlYWQ7CiAjZW5kaWYKICAgICBjbGFzcyBNZXNzYWdlUG9y
dDsKICAgICBjbGFzcyBTZWN1cml0eU9yaWdpbjsKKyAgICBjbGFzcyBTY3JpcHRDYWxsU3RhY2s7
CiAjaWYgRU5BQkxFKElOU1BFQ1RPUikKICAgICBjbGFzcyBJbnNwZWN0b3JDb250cm9sbGVyOwog
I2VuZGlmCkBAIC05MSw3ICs5NSw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgdmly
dHVhbCBJbnNwZWN0b3JDb250cm9sbGVyKiBpbnNwZWN0b3JDb250cm9sbGVyKCkgY29uc3QgeyBy
ZXR1cm4gMDsgfQogI2VuZGlmCiAKLSAgICAgICAgdmlydHVhbCB2b2lkIHJlcG9ydEV4Y2VwdGlv
bihjb25zdCBTdHJpbmcmIGVycm9yTWVzc2FnZSwgaW50IGxpbmVOdW1iZXIsIGNvbnN0IFN0cmlu
ZyYgc291cmNlVVJMKSA9IDA7CisgICAgICAgIHZpcnR1YWwgdm9pZCByZXBvcnRFeGNlcHRpb24o
Y29uc3QgU3RyaW5nJiBlcnJvck1lc3NhZ2UsIGludCBsaW5lTnVtYmVyLCBjb25zdCBTdHJpbmcm
IHNvdXJjZVVSTCwgUGFzc093blB0cjxTY3JpcHRDYWxsU3RhY2s+KTsKICAgICAgICAgdmlydHVh
bCB2b2lkIGFkZE1lc3NhZ2UoTWVzc2FnZVNvdXJjZSwgTWVzc2FnZVR5cGUsIE1lc3NhZ2VMZXZl
bCwgY29uc3QgU3RyaW5nJiBtZXNzYWdlLCB1bnNpZ25lZCBsaW5lTnVtYmVyLCBjb25zdCBTdHJp
bmcmIHNvdXJjZVVSTCkgPSAwOwogCiAgICAgICAgIC8vIEFjdGl2ZSBvYmplY3RzIGFyZSBub3Qg
Z2FyYmFnZSBjb2xsZWN0ZWQgZXZlbiBpZiBpbmFjY2Vzc2libGUsIGUuZy4gYmVjYXVzZSB0aGVp
ciBhY3Rpdml0eSBtYXkgcmVzdWx0IGluIGNhbGxiYWNrcyBiZWluZyBpbnZva2VkLgpAQCAtMTU0
LDYgKzE1OCwxMCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIHZpcnR1YWwgY29uc3Qg
S1VSTCYgdmlydHVhbFVSTCgpIGNvbnN0ID0gMDsKICAgICAgICAgdmlydHVhbCBLVVJMIHZpcnR1
YWxDb21wbGV0ZVVSTChjb25zdCBTdHJpbmcmKSBjb25zdCA9IDA7CiAKKyAgICAgICAgdmlydHVh
bCBFdmVudFRhcmdldCogZXJyb3JFdmVudFRhcmdldCgpID0gMDsKKyAgICAgICAgdmlydHVhbCB2
b2lkIGxvZ0V4Y2VwdGlvblRvQ29uc29sZShjb25zdCBTdHJpbmcmIGVycm9yTWVzc2FnZSwgaW50
IGxpbmVOdW1iZXIsIGNvbnN0IFN0cmluZyYgc291cmNlVVJMLCBTY3JpcHRDYWxsU3RhY2sqKSA9
IDA7CisgICAgICAgIGJvb2wgZGlzcGF0Y2hFcnJvckV2ZW50KGNvbnN0IFN0cmluZyYgZXJyb3JN
ZXNzYWdlLCBpbnQgbGluZU51bWJlciwgY29uc3QgU3RyaW5nJiBzb3VyY2VVUkwpOworCiAgICAg
ICAgIHZvaWQgY2xvc2VNZXNzYWdlUG9ydHMoKTsKIAogICAgICAgICBSZWZQdHI8U2VjdXJpdHlP
cmlnaW4+IG1fc2VjdXJpdHlPcmlnaW47CkBAIC0xNzksNiArMTg3LDE2IEBAIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKICNpZiBFTkFCTEUoQkxPQikgfHwgRU5BQkxFKEZJTEVfU1lTVEVNKQogICAgICAg
ICBSZWZQdHI8RmlsZVRocmVhZD4gbV9maWxlVGhyZWFkOwogI2VuZGlmCisgICAgICAgIGJvb2wg
bV9pbkRpc3BhdGNoRXJyb3JFdmVudDsKKyAgICAgICAgY2xhc3MgUGVuZGluZ0V4Y2VwdGlvbiA6
IHB1YmxpYyBOb25jb3B5YWJsZSB7CisgICAgICAgIHB1YmxpYzoKKyAgICAgICAgICAgIFBlbmRp
bmdFeGNlcHRpb24oY29uc3QgU3RyaW5nJiBlcnJvck1lc3NhZ2UsIGludCBsaW5lTnVtYmVyLCBj
b25zdCBTdHJpbmcmIHNvdXJjZVVSTCwgUGFzc093blB0cjxTY3JpcHRDYWxsU3RhY2s+IGNhbGxT
dGFjayk7CisgICAgICAgICAgICBTdHJpbmcgbV9lcnJvck1lc3NhZ2U7CisgICAgICAgICAgICBp
bnQgbV9saW5lTnVtYmVyOworICAgICAgICAgICAgU3RyaW5nIG1fc291cmNlVVJMOworICAgICAg
ICAgICAgT3duUHRyPFNjcmlwdENhbGxTdGFjaz4gbV9jYWxsU3RhY2s7CisgICAgICAgIH07Cisg
ICAgICAgIE93blB0cjxWZWN0b3I8T3duUHRyPFBlbmRpbmdFeGNlcHRpb24+ID4gPiBtX3BlbmRp
bmdFeGNlcHRpb25zOwogICAgIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdp
dCBhL1dlYkNvcmUvd29ya2Vycy9EZWZhdWx0U2hhcmVkV29ya2VyUmVwb3NpdG9yeS5jcHAgYi9X
ZWJDb3JlL3dvcmtlcnMvRGVmYXVsdFNoYXJlZFdvcmtlclJlcG9zaXRvcnkuY3BwCmluZGV4IDRh
OGU5NDczMWJhYTYyMGRiZTlkZjVkMzQwOTc3YjA5OWIwYTA2NDQuLjBiMWFmZTUyYzBjNDg4M2Iz
NzZlNDRiNjY1NDA1OTNlMzQ2YjNjOGUgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvd29ya2Vycy9EZWZh
dWx0U2hhcmVkV29ya2VyUmVwb3NpdG9yeS5jcHAKKysrIGIvV2ViQ29yZS93b3JrZXJzL0RlZmF1
bHRTaGFyZWRXb3JrZXJSZXBvc2l0b3J5LmNwcApAQCAtNDIsNiArNDIsNyBAQAogI2luY2x1ZGUg
Ik1lc3NhZ2VQb3J0LmgiCiAjaW5jbHVkZSAiTm90SW1wbGVtZW50ZWQuaCIKICNpbmNsdWRlICJQ
bGF0Zm9ybVN0cmluZy5oIgorI2luY2x1ZGUgIlNjcmlwdENhbGxTdGFjay5oIgogI2luY2x1ZGUg
IlNlY3VyaXR5T3JpZ2luLmgiCiAjaW5jbHVkZSAiU2VjdXJpdHlPcmlnaW5IYXNoLmgiCiAjaW5j
bHVkZSAiU2hhcmVkV29ya2VyLmgiCkBAIC0xNTUsNyArMTU2LDcgQEAgdm9pZCBTaGFyZWRXb3Jr
ZXJQcm94eTo6cG9zdFRhc2tGb3JNb2RlVG9Xb3JrZXJDb250ZXh0KFBhc3NPd25QdHI8U2NyaXB0
RXhlY3V0aW8KIAogc3RhdGljIHZvaWQgcG9zdEV4Y2VwdGlvblRhc2soU2NyaXB0RXhlY3V0aW9u
Q29udGV4dCogY29udGV4dCwgY29uc3QgU3RyaW5nJiBlcnJvck1lc3NhZ2UsIGludCBsaW5lTnVt
YmVyLCBjb25zdCBTdHJpbmcmIHNvdXJjZVVSTCkKIHsKLSAgICBjb250ZXh0LT5yZXBvcnRFeGNl
cHRpb24oZXJyb3JNZXNzYWdlLCBsaW5lTnVtYmVyLCBzb3VyY2VVUkwpOworICAgIGNvbnRleHQt
PnJlcG9ydEV4Y2VwdGlvbihlcnJvck1lc3NhZ2UsIGxpbmVOdW1iZXIsIHNvdXJjZVVSTCwgMCk7
CiB9CiAKIHZvaWQgU2hhcmVkV29ya2VyUHJveHk6OnBvc3RFeGNlcHRpb25Ub1dvcmtlck9iamVj
dChjb25zdCBTdHJpbmcmIGVycm9yTWVzc2FnZSwgaW50IGxpbmVOdW1iZXIsIGNvbnN0IFN0cmlu
ZyYgc291cmNlVVJMKQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS93b3JrZXJzL1dvcmtlckNvbnRleHQu
Y3BwIGIvV2ViQ29yZS93b3JrZXJzL1dvcmtlckNvbnRleHQuY3BwCmluZGV4IDQ3OGIzNjBmOWQ4
NDM1Mzk2ZjhmODJlMTQ3MGUxOTZiZmY4OGNhMjkuLjM2OTBiYTE3ODM2YzgxZWYyNmQ3Yjg5ZDdj
OWZkZTBjZTg4OGI3NGUgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJDb250ZXh0
LmNwcAorKysgYi9XZWJDb3JlL3dvcmtlcnMvV29ya2VyQ29udGV4dC5jcHAKQEAgLTEwMSw3ICsx
MDEsNiBAQCBXb3JrZXJDb250ZXh0OjpXb3JrZXJDb250ZXh0KGNvbnN0IEtVUkwmIHVybCwgY29u
c3QgU3RyaW5nJiB1c2VyQWdlbnQsIFdvcmtlclRocgogICAgICwgbV9zY3JpcHQobmV3IFdvcmtl
clNjcmlwdENvbnRyb2xsZXIodGhpcykpCiAgICAgLCBtX3RocmVhZCh0aHJlYWQpCiAgICAgLCBt
X2Nsb3NpbmcoZmFsc2UpCi0gICAgLCBtX3JlcG9ydGluZ0V4Y2VwdGlvbihmYWxzZSkKIHsKICAg
ICBzZXRTZWN1cml0eU9yaWdpbihTZWN1cml0eU9yaWdpbjo6Y3JlYXRlKHVybCkpOwogfQpAQCAt
MjU4LDIwICsyNTcsMTQgQEAgdm9pZCBXb3JrZXJDb250ZXh0OjppbXBvcnRTY3JpcHRzKGNvbnN0
IFZlY3RvcjxTdHJpbmc+JiB1cmxzLCBFeGNlcHRpb25Db2RlJiBlYykKICAgICB9CiB9CiAKLXZv
aWQgV29ya2VyQ29udGV4dDo6cmVwb3J0RXhjZXB0aW9uKGNvbnN0IFN0cmluZyYgZXJyb3JNZXNz
YWdlLCBpbnQgbGluZU51bWJlciwgY29uc3QgU3RyaW5nJiBzb3VyY2VVUkwpCitFdmVudFRhcmdl
dCogV29ya2VyQ29udGV4dDo6ZXJyb3JFdmVudFRhcmdldCgpCiB7Ci0gICAgYm9vbCBlcnJvckhh
bmRsZWQgPSBmYWxzZTsKLSAgICBpZiAoIW1fcmVwb3J0aW5nRXhjZXB0aW9uKSB7Ci0gICAgICAg
IGlmIChvbmVycm9yKCkpIHsKLSAgICAgICAgICAgIG1fcmVwb3J0aW5nRXhjZXB0aW9uID0gdHJ1
ZTsKLSAgICAgICAgICAgIFJlZlB0cjxFcnJvckV2ZW50PiBlcnJvckV2ZW50KEVycm9yRXZlbnQ6
OmNyZWF0ZShlcnJvck1lc3NhZ2UsIHNvdXJjZVVSTCwgbGluZU51bWJlcikpOwotICAgICAgICAg
ICAgb25lcnJvcigpLT5oYW5kbGVFdmVudCh0aGlzLCBlcnJvckV2ZW50LmdldCgpKTsKLSAgICAg
ICAgICAgIGVycm9ySGFuZGxlZCA9IGVycm9yRXZlbnQtPmRlZmF1bHRQcmV2ZW50ZWQoKTsKLSAg
ICAgICAgICAgIG1fcmVwb3J0aW5nRXhjZXB0aW9uID0gZmFsc2U7Ci0gICAgICAgIH0KLSAgICB9
Ci0gICAgaWYgKCFlcnJvckhhbmRsZWQpCi0gICAgICAgIHRocmVhZCgpLT53b3JrZXJSZXBvcnRp
bmdQcm94eSgpLnBvc3RFeGNlcHRpb25Ub1dvcmtlck9iamVjdChlcnJvck1lc3NhZ2UsIGxpbmVO
dW1iZXIsIHNvdXJjZVVSTCk7CisgICAgcmV0dXJuIHRoaXM7Cit9CisKK3ZvaWQgV29ya2VyQ29u
dGV4dDo6bG9nRXhjZXB0aW9uVG9Db25zb2xlKGNvbnN0IFN0cmluZyYgZXJyb3JNZXNzYWdlLCBp
bnQgbGluZU51bWJlciwgY29uc3QgU3RyaW5nJiBzb3VyY2VVUkwsIFNjcmlwdENhbGxTdGFjayop
Cit7CisgICAgdGhyZWFkKCktPndvcmtlclJlcG9ydGluZ1Byb3h5KCkucG9zdEV4Y2VwdGlvblRv
V29ya2VyT2JqZWN0KGVycm9yTWVzc2FnZSwgbGluZU51bWJlciwgc291cmNlVVJMKTsKIH0KIAog
dm9pZCBXb3JrZXJDb250ZXh0OjphZGRNZXNzYWdlKE1lc3NhZ2VTb3VyY2Ugc291cmNlLCBNZXNz
YWdlVHlwZSB0eXBlLCBNZXNzYWdlTGV2ZWwgbGV2ZWwsIGNvbnN0IFN0cmluZyYgbWVzc2FnZSwg
dW5zaWduZWQgbGluZU51bWJlciwgY29uc3QgU3RyaW5nJiBzb3VyY2VVUkwpCmRpZmYgLS1naXQg
YS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyQ29udGV4dC5oIGIvV2ViQ29yZS93b3JrZXJzL1dvcmtl
ckNvbnRleHQuaAppbmRleCAwODgwNGQyYTBlZGY4NjFlYWU2ZjczYzBmNmIyNjczZmQ0NjU4Njkw
Li4xYjczYWQ3NmZlY2ZlZDQ1ZTVjZGM4MmE5MzZmMTgyNmU5Yjc3NGYyIDEwMDY0NAotLS0gYS9X
ZWJDb3JlL3dvcmtlcnMvV29ya2VyQ29udGV4dC5oCisrKyBiL1dlYkNvcmUvd29ya2Vycy9Xb3Jr
ZXJDb250ZXh0LmgKQEAgLTEwMCw3ICsxMDAsNiBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAg
ICAgIHZvaWQgY2xlYXJJbnRlcnZhbChpbnQgdGltZW91dElkKTsKIAogICAgICAgICAvLyBTY3Jp
cHRFeGVjdXRpb25Db250ZXh0Ci0gICAgICAgIHZpcnR1YWwgdm9pZCByZXBvcnRFeGNlcHRpb24o
Y29uc3QgU3RyaW5nJiBlcnJvck1lc3NhZ2UsIGludCBsaW5lTnVtYmVyLCBjb25zdCBTdHJpbmcm
IHNvdXJjZVVSTCk7CiAgICAgICAgIHZpcnR1YWwgdm9pZCBhZGRNZXNzYWdlKE1lc3NhZ2VTb3Vy
Y2UsIE1lc3NhZ2VUeXBlLCBNZXNzYWdlTGV2ZWwsIGNvbnN0IFN0cmluZyYgbWVzc2FnZSwgdW5z
aWduZWQgbGluZU51bWJlciwgY29uc3QgU3RyaW5nJiBzb3VyY2VVUkwpOwogCiAjaWYgRU5BQkxF
KE5PVElGSUNBVElPTlMpCkBAIC0xNzQsNiArMTczLDkgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewog
ICAgICAgICB2aXJ0dWFsIGNvbnN0IEtVUkwmIHZpcnR1YWxVUkwoKSBjb25zdDsKICAgICAgICAg
dmlydHVhbCBLVVJMIHZpcnR1YWxDb21wbGV0ZVVSTChjb25zdCBTdHJpbmcmKSBjb25zdDsKIAor
ICAgICAgICB2aXJ0dWFsIEV2ZW50VGFyZ2V0KiBlcnJvckV2ZW50VGFyZ2V0KCk7CisgICAgICAg
IHZpcnR1YWwgdm9pZCBsb2dFeGNlcHRpb25Ub0NvbnNvbGUoY29uc3QgU3RyaW5nJiBlcnJvck1l
c3NhZ2UsIGludCBsaW5lTnVtYmVyLCBjb25zdCBTdHJpbmcmIHNvdXJjZVVSTCwgU2NyaXB0Q2Fs
bFN0YWNrKik7CisKICAgICAgICAgS1VSTCBtX3VybDsKICAgICAgICAgU3RyaW5nIG1fdXNlckFn
ZW50OwogCkBAIC0xODcsNyArMTg5LDYgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICBt
dXRhYmxlIFJlZlB0cjxOb3RpZmljYXRpb25DZW50ZXI+IG1fbm90aWZpY2F0aW9uczsKICNlbmRp
ZgogICAgICAgICBib29sIG1fY2xvc2luZzsKLSAgICAgICAgYm9vbCBtX3JlcG9ydGluZ0V4Y2Vw
dGlvbjsKICAgICAgICAgRXZlbnRUYXJnZXREYXRhIG1fZXZlbnRUYXJnZXREYXRhOwogCiAgICAg
ICAgIEhhc2hTZXQ8T2JzZXJ2ZXIqPiBtX3dvcmtlck9ic2VydmVyczsKZGlmZiAtLWdpdCBhL1dl
YkNvcmUvd29ya2Vycy9Xb3JrZXJNZXNzYWdpbmdQcm94eS5jcHAgYi9XZWJDb3JlL3dvcmtlcnMv
V29ya2VyTWVzc2FnaW5nUHJveHkuY3BwCmluZGV4IDEwNzAwYzY0ZWY2OWU1YTVmMzdkMDFhZmIy
NDQzNmY1YzVmY2UxYTEuLjA2ODcwMTQ4ODZkOTUyZTliOGVlOGNhNTA5NWNiNmM0NTUzMTYzMzUg
MTAwNjQ0Ci0tLSBhL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJNZXNzYWdpbmdQcm94eS5jcHAKKysr
IGIvV2ViQ29yZS93b3JrZXJzL1dvcmtlck1lc3NhZ2luZ1Byb3h5LmNwcApAQCAtNDAsNiArNDAs
NyBAQAogI2luY2x1ZGUgIkV4Y2VwdGlvbkNvZGUuaCIKICNpbmNsdWRlICJJbnNwZWN0b3JDb250
cm9sbGVyLmgiCiAjaW5jbHVkZSAiTWVzc2FnZUV2ZW50LmgiCisjaW5jbHVkZSAiU2NyaXB0Q2Fs
bFN0YWNrLmgiCiAjaW5jbHVkZSAiU2NyaXB0RXhlY3V0aW9uQ29udGV4dC5oIgogI2luY2x1ZGUg
Ildvcmtlci5oIgogCkBAIC0xMzEsNyArMTMyLDcgQEAgcHJpdmF0ZToKIAogICAgICAgICBib29s
IGVycm9ySGFuZGxlZCA9ICF3b3JrZXJPYmplY3QtPmRpc3BhdGNoRXZlbnQoRXJyb3JFdmVudDo6
Y3JlYXRlKG1fZXJyb3JNZXNzYWdlLCBtX3NvdXJjZVVSTCwgbV9saW5lTnVtYmVyKSk7CiAgICAg
ICAgIGlmICghZXJyb3JIYW5kbGVkKQotICAgICAgICAgICAgY29udGV4dC0+cmVwb3J0RXhjZXB0
aW9uKG1fZXJyb3JNZXNzYWdlLCBtX2xpbmVOdW1iZXIsIG1fc291cmNlVVJMKTsKKyAgICAgICAg
ICAgIGNvbnRleHQtPnJlcG9ydEV4Y2VwdGlvbihtX2Vycm9yTWVzc2FnZSwgbV9saW5lTnVtYmVy
LCBtX3NvdXJjZVVSTCwgMCk7CiAgICAgfQogCiAgICAgU3RyaW5nIG1fZXJyb3JNZXNzYWdlOwpk
aWZmIC0tZ2l0IGEvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZyBiL1dlYktpdC9jaHJvbWl1bS9D
aGFuZ2VMb2cKaW5kZXggNzgyMGIxYTU3MWZhNjZmODdmOTViM2VlZjFjMzc4YzA5YzdiNDg0Ny4u
NGZmMTgyZTQ4Zjg5N2FmODQzNjBkOGEyNDQwYzhkMzcyZGFhMTY0ZCAxMDA2NDQKLS0tIGEvV2Vi
S2l0L2Nocm9taXVtL0NoYW5nZUxvZworKysgYi9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCkBA
IC0xLDMgKzEsMTggQEAKKzIwMTAtMTAtMTkgIGFsZXhAd2Via2l0Lm9yZyAgPGFsZXhAd2Via2l0
Lm9yZ0AyNjhmNDVjYy1jZDA5LTA0MTAtYWIzYy1kNTI2OTFiNGRiZmM+CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgV2ViQ29yZSBkb2Vzbid0IGZpcmUg
d2luZG93Lm9uZXJyb3IgZXZlbnQgd2hlbiB1bmNhdWdodCBKYXZhU2NyaXB0IGV4Y2VwdGlvbnMg
YXJlIHRocm93bgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9ODUxOQorCisgICAgICAgIFVuY2F1Z2h0IGV4Y2VwdGlvbnMgYXJlIHByb3BhZ2F0ZWQgdG8g
d2luZG93Lm9uZXJyb3IgaGFuZGVyIGlmIG9uZSBpcyBwcmVzZW50LgorICAgICAgICBUaGUgaGFu
ZGxlciBpcyBleHBlY3RlZCB0byBiZSBhIGZ1bmN0aW9uIGFjY2VwdGluZyB0aHJlZSBhcmd1bWVu
dHM6IGVycm9yIG1lc3NhZ2UsCisgICAgICAgIHJlc291cmNlIHVybCBhbmQgbGluZSBudW1iZXIg
d2hlcmUgdGhlIGV4Y2VwdGlvbiBvY2N1cmVkLgorCisgICAgICAgICogc3JjL1dlYldvcmtlckNs
aWVudEltcGwuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJXb3JrZXJDbGllbnRJbXBsOjpwb3N0
RXhjZXB0aW9uVG9Xb3JrZXJPYmplY3QpOgorICAgICAgICAoV2ViS2l0OjpXZWJXb3JrZXJDbGll
bnRJbXBsOjpwb3N0RXhjZXB0aW9uVG9Xb3JrZXJPYmplY3RUYXNrKToKKwogMjAxMC0xMC0xNyAg
UGF2ZWwgRmVsZG1hbiAgPHBmZWxkbWFuQGNocm9taXVtLm9yZz4KIAogICAgICAgICBSZXZpZXdl
ZCBieSBZdXJ5IFNlbWlraGF0c2t5LgpkaWZmIC0tZ2l0IGEvV2ViS2l0L2Nocm9taXVtL3NyYy9X
ZWJXb3JrZXJDbGllbnRJbXBsLmNwcCBiL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViV29ya2VyQ2xp
ZW50SW1wbC5jcHAKaW5kZXggMTgyODJlMzQxNmI3M2RlMmVjZDA0NjMyZDZiY2U3NTJmZGQzMjlh
Ni4uZTNjZTJiYTQ0ZGE1ZWU2MzFkYTNlN2Y2MzY0NWM3ZWUxOWE0YTkzNiAxMDA2NDQKLS0tIGEv
V2ViS2l0L2Nocm9taXVtL3NyYy9XZWJXb3JrZXJDbGllbnRJbXBsLmNwcAorKysgYi9XZWJLaXQv
Y2hyb21pdW0vc3JjL1dlYldvcmtlckNsaWVudEltcGwuY3BwCkBAIC00MSw2ICs0MSw3IEBACiAj
aW5jbHVkZSAiTWVzc2FnZUV2ZW50LmgiCiAjaW5jbHVkZSAiTWVzc2FnZVBvcnQuaCIKICNpbmNs
dWRlICJNZXNzYWdlUG9ydENoYW5uZWwuaCIKKyNpbmNsdWRlICJTY3JpcHRDYWxsU3RhY2suaCIK
ICNpbmNsdWRlICJTY3JpcHRFeGVjdXRpb25Db250ZXh0LmgiCiAjaW5jbHVkZSAiV29ya2VyLmgi
CiAjaW5jbHVkZSAiV29ya2VyQ29udGV4dC5oIgpAQCAtMjQ3LDcgKzI0OCw3IEBAIHZvaWQgV2Vi
V29ya2VyQ2xpZW50SW1wbDo6cG9zdEV4Y2VwdGlvblRvV29ya2VyT2JqZWN0KGNvbnN0IFdlYlN0
cmluZyYgZXJyb3JNZXNzCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgc291cmNlVVJMLAogICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpbmVOdW1iZXIpKTsK
ICAgICBpZiAodW5oYW5kbGVkKQotICAgICAgICBtX3NjcmlwdEV4ZWN1dGlvbkNvbnRleHQtPnJl
cG9ydEV4Y2VwdGlvbihlcnJvck1lc3NhZ2UsIGxpbmVOdW1iZXIsIHNvdXJjZVVSTCk7CisgICAg
ICAgIG1fc2NyaXB0RXhlY3V0aW9uQ29udGV4dC0+cmVwb3J0RXhjZXB0aW9uKGVycm9yTWVzc2Fn
ZSwgbGluZU51bWJlciwgc291cmNlVVJMLCAwKTsKIH0KIAogdm9pZCBXZWJXb3JrZXJDbGllbnRJ
bXBsOjpwb3N0Q29uc29sZU1lc3NhZ2VUb1dvcmtlck9iamVjdChpbnQgZGVzdGluYXRpb24sCkBA
IC0zODMsNyArMzg0LDggQEAgdm9pZCBXZWJXb3JrZXJDbGllbnRJbXBsOjpwb3N0RXhjZXB0aW9u
VG9Xb3JrZXJPYmplY3RUYXNrKAogICAgIGlmICghaGFuZGxlZCkKICAgICAgICAgdGhpc1B0ci0+
bV9zY3JpcHRFeGVjdXRpb25Db250ZXh0LT5yZXBvcnRFeGNlcHRpb24oZXJyb3JNZXNzYWdlLAog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBsaW5lTnVtYmVyLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBzb3VyY2VVUkwpOworICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzb3VyY2VVUkwsCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDApOwogfQogCiB2
b2lkIFdlYldvcmtlckNsaWVudEltcGw6OnBvc3RDb25zb2xlTWVzc2FnZVRvV29ya2VyT2JqZWN0
VGFzayhTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0LAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>76202</attachid>
            <date>2010-12-10 08:16:02 -0800</date>
            <delta_ts>2010-12-10 08:40:08 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-8519-20101210191558.patch</filename>
            <type>text/plain</type>
            <size>96466</size>
            <attacher name="Yury Semikhatsky">yurys</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCBlNWMxYzYyNDlkYjE2MTY1MTY1NzJlNzM5ODljMjNjNmU0OGM3YjNiLi5hMjgzMTdh
OGUwNTU5YWIyMWVlMzc3MDA3ZGYwZmU3MTI0Y2I4MjgxIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNjMgQEAK
KzIwMTAtMTAtMTkgIGFsZXhAd2Via2l0Lm9yZyAgPGFsZXhAd2Via2l0Lm9yZ0AyNjhmNDVjYy1j
ZDA5LTA0MTAtYWIzYy1kNTI2OTFiNGRiZmM+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgV2ViQ29yZSBkb2Vzbid0IGZpcmUgd2luZG93Lm9uZXJyb3Ig
ZXZlbnQgd2hlbiB1bmNhdWdodCBKYXZhU2NyaXB0IGV4Y2VwdGlvbnMgYXJlIHRocm93bgorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODUxOQorCisgICAg
ICAgIFVuY2F1Z2h0IGV4Y2VwdGlvbnMgYXJlIHByb3BhZ2F0ZWQgdG8gd2luZG93Lm9uZXJyb3Ig
aGFuZGVyIGlmIG9uZSBpcyBwcmVzZW50LgorICAgICAgICBUaGUgaGFuZGxlciBpcyBleHBlY3Rl
ZCB0byBiZSBhIGZ1bmN0aW9uIGFjY2VwdGluZyB0aHJlZSBhcmd1bWVudHM6IGVycm9yIG1lc3Nh
Z2UsCisgICAgICAgIHJlc291cmNlIHVybCBhbmQgbGluZSBudW1iZXIgd2hlcmUgdGhlIGV4Y2Vw
dGlvbiBvY2N1cmVkLgorCisgICAgICAgICogZmFzdC9ldmVudHMvcmVzb3VyY2VzL3dpbmRvdy1v
bmVycm9yLmpzOiBBZGRlZC4KKyAgICAgICAgKHRocm93RXhjZXB0aW9uKToKKyAgICAgICAgKiBm
YXN0L2V2ZW50cy93aW5kb3ctb25lcnJvcjEtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAg
KiBmYXN0L2V2ZW50cy93aW5kb3ctb25lcnJvcjEuaHRtbDogQWRkZWQuCisgICAgICAgICogZmFz
dC9ldmVudHMvd2luZG93LW9uZXJyb3IxMC1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAq
IGZhc3QvZXZlbnRzL3dpbmRvdy1vbmVycm9yMTAuaHRtbDogQWRkZWQuCisgICAgICAgICogZmFz
dC9ldmVudHMvd2luZG93LW9uZXJyb3IxMS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAq
IGZhc3QvZXZlbnRzL3dpbmRvdy1vbmVycm9yMTEuaHRtbDogQWRkZWQuCisgICAgICAgICogZmFz
dC9ldmVudHMvd2luZG93LW9uZXJyb3IyLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICog
ZmFzdC9ldmVudHMvd2luZG93LW9uZXJyb3IyLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3Qv
ZXZlbnRzL3dpbmRvdy1vbmVycm9yMy1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZh
c3QvZXZlbnRzL3dpbmRvdy1vbmVycm9yMy5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2V2
ZW50cy93aW5kb3ctb25lcnJvcjQtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0
L2V2ZW50cy93aW5kb3ctb25lcnJvcjQuaHRtbDogQWRkZWQuCisgICAgICAgICogZmFzdC9ldmVu
dHMvd2luZG93LW9uZXJyb3I1LWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC9l
dmVudHMvd2luZG93LW9uZXJyb3I1Lmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZXZlbnRz
L3dpbmRvdy1vbmVycm9yNi1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZXZl
bnRzL3dpbmRvdy1vbmVycm9yNi5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2V2ZW50cy93
aW5kb3ctb25lcnJvcjctZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2V2ZW50
cy93aW5kb3ctb25lcnJvcjcuaHRtbDogQWRkZWQuCisgICAgICAgICogZmFzdC9ldmVudHMvd2lu
ZG93LW9uZXJyb3I4LWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC9ldmVudHMv
d2luZG93LW9uZXJyb3I4Lmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZXZlbnRzL3dpbmRv
dy1vbmVycm9yOS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZXZlbnRzL3dp
bmRvdy1vbmVycm9yOS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L3dvcmtlcnMvd29ya2Vy
LXNjcmlwdC1lcnJvci1leHBlY3RlZC50eHQ6CisgICAgICAgICogaHR0cC90ZXN0cy9zZWN1cml0
eS9yZXNvdXJjZXMvb25lcnJvci1pZnJhbWUuaHRtbDogQWRkZWQuCisgICAgICAgICogaHR0cC90
ZXN0cy9zZWN1cml0eS93aW5kb3ctb25lcnJvci1leGNlcHRpb24taW4taWZyYW1lLWV4cGVjdGVk
LnR4dDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9zZWN1cml0eS93aW5kb3ctb25lcnJv
ci1leGNlcHRpb24taW4taWZyYW1lLmh0bWw6IEFkZGVkLgorICAgICAgICAqIHBsYXRmb3JtL2No
cm9taXVtLXdpbi9mYXN0L3dvcmtlcnMvd29ya2VyLXNjcmlwdC1lcnJvci1leHBlY3RlZC50eHQ6
CisgICAgICAgICogcGxhdGZvcm0vY2hyb21pdW0vZmFzdC9ldmVudHMvd2luZG93LW9uZXJyb3Ix
LWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogcGxhdGZvcm0vY2hyb21pdW0vZmFzdC9l
dmVudHMvd2luZG93LW9uZXJyb3IxMC1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIHBs
YXRmb3JtL2Nocm9taXVtL2Zhc3QvZXZlbnRzL3dpbmRvdy1vbmVycm9yMTEtZXhwZWN0ZWQudHh0
OiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS9mYXN0L2V2ZW50cy93aW5kb3ct
b25lcnJvcjItZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1
bS9mYXN0L2V2ZW50cy93aW5kb3ctb25lcnJvcjMtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAg
ICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS9mYXN0L2V2ZW50cy93aW5kb3ctb25lcnJvcjQtZXhwZWN0
ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS9mYXN0L2V2ZW50cy93
aW5kb3ctb25lcnJvcjUtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9j
aHJvbWl1bS9mYXN0L2V2ZW50cy93aW5kb3ctb25lcnJvcjYtZXhwZWN0ZWQudHh0OiBBZGRlZC4K
KyAgICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS9mYXN0L2V2ZW50cy93aW5kb3ctb25lcnJvcjct
ZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS9mYXN0L2V2
ZW50cy93aW5kb3ctb25lcnJvcjgtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBwbGF0
Zm9ybS9jaHJvbWl1bS9mYXN0L2V2ZW50cy93aW5kb3ctb25lcnJvcjktZXhwZWN0ZWQudHh0OiBB
ZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS9odHRwL3Rlc3RzL3NlY3VyaXR5L3dp
bmRvdy1vbmVycm9yLWV4Y2VwdGlvbi1pbi1pZnJhbWUtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAg
ICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS91c2Vyc2NyaXB0cy93aW5kb3ctb25lcnJvci1mb3It
aXNvbGF0ZWQtd29ybGQtMS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIHBsYXRmb3Jt
L2Nocm9taXVtL3VzZXJzY3JpcHRzL3dpbmRvdy1vbmVycm9yLWZvci1pc29sYXRlZC13b3JsZC0y
LWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogdXNlcnNjcmlwdHMvd2luZG93LW9uZXJy
b3ItZm9yLWlzb2xhdGVkLXdvcmxkLTEtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiB1
c2Vyc2NyaXB0cy93aW5kb3ctb25lcnJvci1mb3ItaXNvbGF0ZWQtd29ybGQtMS5odG1sOiBBZGRl
ZC4KKyAgICAgICAgKiB1c2Vyc2NyaXB0cy93aW5kb3ctb25lcnJvci1mb3ItaXNvbGF0ZWQtd29y
bGQtMi1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIHVzZXJzY3JpcHRzL3dpbmRvdy1v
bmVycm9yLWZvci1pc29sYXRlZC13b3JsZC0yLmh0bWw6IEFkZGVkLgorICAgICAgICAqIHVzZXJz
Y3JpcHRzL3dpbmRvdy1vbmVycm9yLWZvci1pc29sYXRlZC13b3JsZC5odG1sOiBBZGRlZC4KKwog
MjAxMC0xMi0wOSAgWXVyeSBTZW1pa2hhdHNreSAgPHl1cnlzQGNocm9taXVtLm9yZz4KIAogICAg
ICAgICBSZXZpZXdlZCBieSBQYXZlbCBGZWxkbWFuLgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
ZmFzdC9ldmVudHMvcmVzb3VyY2VzL3dpbmRvdy1vbmVycm9yLmpzIGIvTGF5b3V0VGVzdHMvZmFz
dC9ldmVudHMvcmVzb3VyY2VzL3dpbmRvdy1vbmVycm9yLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjM0NDU3NGJi
NjUzYzNmZWRmMjMxNTE2ZTFkMGI5OTYwMzg5YmFmNjAKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy9mYXN0L2V2ZW50cy9yZXNvdXJjZXMvd2luZG93LW9uZXJyb3IuanMKQEAgLTAsMCAr
MSwzIEBACitmdW5jdGlvbiB0aHJvd0V4Y2VwdGlvbigpIHsKKyAgICB0aHJvdyBuZXcgRXJyb3Io
IkFuIGV4Y2VwdGlvbiIpOworfQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMv
d2luZG93LW9uZXJyb3IxLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3dp
bmRvdy1vbmVycm9yMS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZmU1MWI3MjJmMGIzNzA5YWVj
ZDRiODE1Y2QyMDcwOTVjMDI0NjU0NQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zh
c3QvZXZlbnRzL3dpbmRvdy1vbmVycm9yMS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwzIEBACitU
aGlzIHBhZ2UgdGVzdHMgc2V0dGluZyBvbmVycm9yIGhhbmRsZXJzIHRocm91Z2ggdGhlIERPTS4g
SWYgaXQgcGFzc2VzLCB5b3Ugd2lsbCBzZWUgIlBBU1MiIG1lc3NhZ2VzIGJlbG93LkJ1ZyA4NTE5
LgorCitQQVNTOiBjYXVnaHQgZ2xvYmFsIGVycm9yOiBSZWZlcmVuY2VFcnJvcjogQ2FuJ3QgZmlu
ZCB2YXJpYWJsZTogaGFoYWhhX2dvb2RfbHVja19maW5kaW5nX21lIGF0IHdpbmRvdy1vbmVycm9y
MS5odG1sOjI1CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy93aW5kb3ctb25l
cnJvcjEuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3dpbmRvdy1vbmVycm9yMS5odG1s
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLjU5ZDI0OTU4Njg4NTU3NGFlMDhiMzY1YWMyMWFkMTExY2I3M2E1ZjMKLS0t
IC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy93aW5kb3ctb25lcnJvcjEu
aHRtbApAQCAtMCwwICsxLDM1IEBACis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdD4KK2lmICh3aW5k
b3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCisgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFz
VGV4dCgpOworCitmdW5jdGlvbiBwcmludChtZXNzYWdlLCBjb2xvcikKK3sKKyAgICB2YXIgcGFy
YWdyYXBoID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7CisgICAgcGFyYWdyYXBoLmFw
cGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKG1lc3NhZ2UpKTsKKyAgICBwYXJhZ3Jh
cGguc3R5bGUuZm9udEZhbWlseSA9ICJtb25vc3BhY2UiOworICAgIGlmIChjb2xvcikKKyAgICAg
ICAgcGFyYWdyYXBoLnN0eWxlLmNvbG9yID0gY29sb3I7CisgICAgZG9jdW1lbnQuZ2V0RWxlbWVu
dEJ5SWQoImNvbnNvbGUiKS5hcHBlbmRDaGlsZChwYXJhZ3JhcGgpOworfQorCitmdW5jdGlvbiB0
ZXN0KCkKK3sKKyAgICAvLyBtdXN0IGJlIGxhc3QgYmVjYXVzZSB0aGUgZXhjZXB0aW9uIGVuZHMg
SmF2YVNjcmlwdCBleGVjdXRpb24KKyAgICB3aW5kb3cub25lcnJvciA9IGZ1bmN0aW9uIChlcnJv
ciwgdXJsLCBsaW5lKSB7CisgICAgICAgIHVybCA9IHVybCA/IHVybC5tYXRjaCggL1teXC9dK1wv
PyQvIClbMF0gOiB1cmw7CisgICAgICAgIHByaW50KCJQQVNTOiBjYXVnaHQgZ2xvYmFsIGVycm9y
OiAiICsgZXJyb3IgKyAiIGF0ICIgKyB1cmwgKyAiOiIgKyBsaW5lLCAiZ3JlZW4iKTsKKyAgICAg
ICAgcmV0dXJuIGZhbHNlOworICAgIH07CisgICAgaGFoYWhhX2dvb2RfbHVja19maW5kaW5nX21l
KCk7IC8vIGNhdWdodCBieSB3aW5kb3cub25lcnJvcgorfQorPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8
Ym9keSBvbmxvYWQ9InRlc3QoKTsiPgorPHA+VGhpcyBwYWdlIHRlc3RzIHNldHRpbmcgb25lcnJv
ciBoYW5kbGVycyB0aHJvdWdoIHRoZSBET00uIElmIGl0IHBhc3NlcywgeW91IHdpbGwKKyAgIHNl
ZSAiUEFTUyIgbWVzc2FnZXMgYmVsb3cuPGEgaHJlZj0iaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTg1MTkiPkJ1ZyA4NTE5PC9hPi48L3A+Cis8aHI+Cis8ZGl2IGlkPSdj
b25zb2xlJz48L2Rpdj4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2Zhc3QvZXZlbnRzL3dpbmRvdy1vbmVycm9yMTAtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMv
ZmFzdC9ldmVudHMvd2luZG93LW9uZXJyb3IxMC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYmZm
NTYzNjU0MTFmMWQ5ZjA3OTdiZGIwMDg3NTExNzY2OWI0OTRkMQotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3dpbmRvdy1vbmVycm9yMTAtZXhwZWN0ZWQudHh0CkBA
IC0wLDAgKzEsMTEgQEAKK1Rlc3QgdGhhdCAiZXJyb3IiIGV2ZW50IGxpc3RlbmVyIGFkZGVkIHdp
dGggd2luZG93LmFkZEV2ZW50TGlzdGVuZXIgaXMgaW52b2tlZCBmb3IgdW5jYXVjaHQgZXhjZXB0
aW9ucy4gQnVnIDg1MTkuCisKK2V2ZW50IHBhc3NlZCB0byB0aGUgbGlzdGVuZXIgaXMgdGhlIHNh
bWUgYXMgd2luZG93LmV2ZW50OiB0cnVlCitFdmVudCBkZXRhaWxzOgordHlwZTogZXJyb3IKK3Bo
YXNlOiAyCitjdXJyZW50VGFyZ2V0IGlzIHRoZSBnbG9iYWwgb2JqZWN0OiB0cnVlCittZXNzYWdl
OiBFcnJvcjogTXkgZmF1bHQuCitmaWxlbmFtZTogd2luZG93LW9uZXJyb3IxMC5odG1sCitsaW5l
bm86IDI5CisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3dpbmRvdy1vbmVy
cm9yMTAuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3dpbmRvdy1vbmVycm9yMTAuaHRt
bApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi4yNmVkMDE4ZmRmMThhMzQ3Mzg1M2UxYzEwNmRhOGM1ZWQ5NjAyMWZlCi0t
LSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvd2luZG93LW9uZXJyb3Ix
MC5odG1sCkBAIC0wLDAgKzEsMzMgQEAKKzxodG1sPgorPGJvZHk+Cis8cD5UZXN0IHRoYXQgImVy
cm9yIiBldmVudCBsaXN0ZW5lciBhZGRlZCB3aXRoIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyIGlz
IGludm9rZWQgZm9yIHVuY2F1Y2h0IGV4Y2VwdGlvbnMuIDxhIGhyZWY9Imh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04NTE5Ij5CdWcgODUxOTwvYT4uPC9wPgorPGRpdiBp
ZD0iY29uc29sZSI+PC9kaXY+Cis8c2NyaXB0PgoraWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJv
bGxlcikKKyAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7CisKK2Z1bmN0aW9u
IGxvZyhtc2cpIHsKKyAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY29uc29sZSIpLmlubmVy
SFRNTCArPSBtc2cgKyAiPGJyPiI7Cit9CisKK2Z1bmN0aW9uIGxhc3RQYXRoQ29tcG9uZW50KHVy
bCkgeworICAgIHJldHVybiB1cmwgPyB1cmwubWF0Y2goIC9bXlwvXStcLz8kLyApWzBdIDogdXJs
OworfQorCit3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigiZXJyb3IiLCBmdW5jdGlvbihlKSB7Cisg
ICAgbG9nKCJldmVudCBwYXNzZWQgdG8gdGhlIGxpc3RlbmVyIGlzIHRoZSBzYW1lIGFzIHdpbmRv
dy5ldmVudDogIiArICh3aW5kb3cuZXZlbnQgPT09IGUpKTsKKyAgICBsb2coIkV2ZW50IGRldGFp
bHM6Iik7CisgICAgbG9nKCJ0eXBlOiAiICsgZS50eXBlKTsKKyAgICBsb2coInBoYXNlOiAiICsg
ZS5ldmVudFBoYXNlKQorICAgIGxvZygiY3VycmVudFRhcmdldCBpcyB0aGUgZ2xvYmFsIG9iamVj
dDogIiArIChlLmN1cnJlbnRUYXJnZXQgPT09IHdpbmRvdykpOworICAgIGxvZygibWVzc2FnZTog
IiArIGUubWVzc2FnZSk7CisgICAgbG9nKCJmaWxlbmFtZTogIiArIGxhc3RQYXRoQ29tcG9uZW50
KGUuZmlsZW5hbWUpKTsKKyAgICBsb2coImxpbmVubzogIiArIGUubGluZW5vKTsKKyAgICBlLnBy
ZXZlbnREZWZhdWx0KCk7Cit9LCBmYWxzZSk7CisKK3Rocm93IG5ldyBFcnJvcigiTXkgZmF1bHQu
Iik7CisKKzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvZmFzdC9ldmVudHMvd2luZG93LW9uZXJyb3IxMS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0
cy9mYXN0L2V2ZW50cy93aW5kb3ctb25lcnJvcjExLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45
NmUyMGNjM2VjM2IxMGI3NTNjYmFjZDZkMGJhMDk0M2RjZGVlMjY0Ci0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvd2luZG93LW9uZXJyb3IxMS1leHBlY3RlZC50eHQK
QEAgLTAsMCArMSw0IEBACitUZXN0IHRoYXQgd2luZG93Lm9uZXJyb3IgaXMgY2FsbGVkIG9uIHdp
bmRvdyBvYmplY3QuIEJ1ZyA4NTE5LgorCitNYWluIGZyYW1lIHdpbmRvdy5vbmVycm9yOiBFcnJv
cjogQW4gZXhjZXB0aW9uIGF0IHdpbmRvdy1vbmVycm9yLmpzOjIKKwpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvZmFzdC9ldmVudHMvd2luZG93LW9uZXJyb3IxMS5odG1sIGIvTGF5b3V0VGVzdHMv
ZmFzdC9ldmVudHMvd2luZG93LW9uZXJyb3IxMS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjc2NTVmYTcyN2Q4
YjU2MmEwYmU0M2VhZTIzZDFjMDY0MTA0MmU0NTMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRU
ZXN0cy9mYXN0L2V2ZW50cy93aW5kb3ctb25lcnJvcjExLmh0bWwKQEAgLTAsMCArMSwyOCBAQAor
PGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvd2luZG93LW9uZXJyb3IuanMi
PgorPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxwPlRlc3QgdGhhdCB3aW5kb3cub25lcnJv
ciBpcyBjYWxsZWQgb24gd2luZG93IG9iamVjdC4gPGEgaHJlZj0iaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTg1MTkiPkJ1ZyA4NTE5PC9hPi48L3A+Cis8ZGl2IGlkPSJj
b25zb2xlIj48L2Rpdj4KKzxzY3JpcHQ+CitpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVy
KQorICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKKworZnVuY3Rpb24gbG9n
KG1zZykgeworICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjb25zb2xlIikuaW5uZXJIVE1M
ICs9IG1zZyArICI8YnI+IjsKK30KKword2luZG93Lm9uZXJyb3IgPSBmdW5jdGlvbihtc2csIHVy
bCwgbGluZSkKK3sKKyAgICB1cmwgPSB1cmwgPyB1cmwubWF0Y2goIC9bXlwvXStcLz8kLyApWzBd
IDogdXJsOworICAgIGxvZygiTWFpbiBmcmFtZSB3aW5kb3cub25lcnJvcjogIiArIG1zZyArICIg
YXQgIiArIHVybCArICI6IiArIGxpbmUpOworICAgIHJldHVybiBmYWxzZTsKK30KKwordGhyb3dF
eGNlcHRpb24oKTsKKworPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9mYXN0L2V2ZW50cy93aW5kb3ctb25lcnJvcjItZXhwZWN0ZWQudHh0IGIvTGF5
b3V0VGVzdHMvZmFzdC9ldmVudHMvd2luZG93LW9uZXJyb3IyLWV4cGVjdGVkLnR4dApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi45M2EyZDNmMTNiMWQxYjg3OTY0ZjYzOGM2ZjViZjcyNmQ5MTI3Njc4Ci0tLSAvZGV2L251
bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvd2luZG93LW9uZXJyb3IyLWV4cGVjdGVk
LnR4dApAQCAtMCwwICsxLDYgQEAKK1Rlc3QgdGhhdCB1bmNhdWdodCBleGNlcHRpb25zIHdpbGwg
YmUgcmVwb3J0ZWQgdG8gdGhlIHdpbmRvdy5vbmVycm9yIGhhbmRsZXIuIEJ1ZyA4NTE5LgorCitN
YWluIGZyYW1lIHdpbmRvdy5vbmVycm9yOiBFcnJvcjogSW5saW5lIHNjcmlwdCBleGNlcHRpb24g
YXQgd2luZG93LW9uZXJyb3IyLmh0bWw6MzUKK01haW4gZnJhbWUgd2luZG93Lm9uZXJyb3I6IEV4
Y2VwdGlvbiBpbiBvbmxvYWQgYXQgdW5kZWZpbmVkOjAKK01haW4gZnJhbWUgd2luZG93Lm9uZXJy
b3I6IEVycm9yOiBFeGNlcHRpb24gaW4gc2V0VGltZW91dCBhdCB3aW5kb3ctb25lcnJvcjIuaHRt
bDoyOQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy93aW5kb3ctb25lcnJv
cjIuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3dpbmRvdy1vbmVycm9yMi5odG1sCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLmRiOWZiNzVlYzQwNjJhYzdlNGYzYmY1NjAzZTRhNThiZmQ1NGUzZjcKLS0tIC9k
ZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy93aW5kb3ctb25lcnJvcjIuaHRt
bApAQCAtMCwwICsxLDQxIEBACis8aHRtbD4KKzxib2R5IG9ubG9hZD0idGhyb3cgJ0V4Y2VwdGlv
biBpbiBvbmxvYWQnOyI+Cis8cD5UZXN0IHRoYXQgdW5jYXVnaHQgZXhjZXB0aW9ucyB3aWxsIGJl
IHJlcG9ydGVkIHRvIHRoZSB3aW5kb3cub25lcnJvciBoYW5kbGVyLiA8YSBocmVmPSJodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODUxOSI+QnVnIDg1MTk8L2E+LjwvcD4K
KzxkaXYgaWQ9InJlc3VsdCI+PC9kaXY+Cis8c2NyaXB0PgoraWYgKHdpbmRvdy5sYXlvdXRUZXN0
Q29udHJvbGxlcikgeworICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKKyAg
ICBsYXlvdXRUZXN0Q29udHJvbGxlci53YWl0VW50aWxEb25lKCk7Cit9CisKK2Z1bmN0aW9uIGxv
Zyhtc2cpIHsKKyAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicmVzdWx0IikuaW5uZXJIVE1M
ICs9IG1zZyArICI8YnI+IjsKK30KKwordmFyIHVuaGFuZGxlZEVycm9yQ291bnQgPSAwOword2lu
ZG93Lm9uZXJyb3IgPSBmdW5jdGlvbihtc2csIHVybCwgbGluZSkKK3sKKyAgICB1cmwgPSB1cmwg
PyB1cmwubWF0Y2goIC9bXlwvXStcLz8kLyApWzBdIDogdXJsOworICAgIGxvZygiTWFpbiBmcmFt
ZSB3aW5kb3cub25lcnJvcjogIiArIG1zZyArICIgYXQgIiArIHVybCArICI6IiArIGxpbmUpOwor
ICAgIAorICAgIGlmICgrK3VuaGFuZGxlZEVycm9yQ291bnQgPT09IDMgJiYgd2luZG93LmxheW91
dFRlc3RDb250cm9sbGVyKQorICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5ub3RpZnlEb25l
KCk7CisKKyAgICByZXR1cm4gZmFsc2U7Cit9CisKK2Z1bmN0aW9uIGRlbGF5ZWRUaHJvd0V4Y2Vw
dGlvbigpCit7CisgICAgdGhyb3cgbmV3IEVycm9yKCJFeGNlcHRpb24gaW4gc2V0VGltZW91dCIp
OworfQorc2V0VGltZW91dChkZWxheWVkVGhyb3dFeGNlcHRpb24sIDApOworCitmdW5jdGlvbiB0
aHJvd0V4Y2VwdGlvbigpCit7CisgICAgdGhyb3cgbmV3IEVycm9yKCJJbmxpbmUgc2NyaXB0IGV4
Y2VwdGlvbiIpOworfQordGhyb3dFeGNlcHRpb24oKTsKKworPC9zY3JpcHQ+Cis8L2JvZHk+Cis8
L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy93aW5kb3ctb25lcnJv
cjMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvd2luZG93LW9uZXJyb3Iz
LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43MDI1ZGJiOTdhMmNmNDI5ZGYyYTgxMTkwOTFjYTc2
ZTdhODA2NzMxCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvd2lu
ZG93LW9uZXJyb3IzLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDQgQEAKK1lvdSBzaG91bGQgc2Vl
IGEgbWVzc2FnZSBpZiB3aW5kb3cub25lcnJvciBpcyB3b3JraW5nIHByb3Blcmx5IGZvciB0aGlz
IHRlc3QuQnVnIDg1MTkuCisKK0Vycm9yIGNhdWdodCBzdWNjZXNzZnVsbHk6IFJlZmVyZW5jZUVy
cm9yOiBDYW4ndCBmaW5kIHZhcmlhYmxlOiB1bmtub3duT2JqZWN0IEZpbGU6IHdpbmRvdy1vbmVy
cm9yMy5odG1sIExpbmU6IDE2CisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRz
L3dpbmRvdy1vbmVycm9yMy5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvd2luZG93LW9u
ZXJyb3IzLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZWUyODkzZjBjN2Q5OTMyMTc2YzBlYTMxZWE0ZjBkMjEw
Y2VmMTNjZgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3dpbmRv
dy1vbmVycm9yMy5odG1sCkBAIC0wLDAgKzEsMjMgQEAKKzxzY3JpcHQ+CitpZiAod2luZG93Lmxh
eW91dFRlc3RDb250cm9sbGVyKQorICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQo
KTsKKworZnVuY3Rpb24gbG9nKG1zZykgeworICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJj
b25zb2xlIikuaW5uZXJIVE1MICs9IG1zZyArICI8YnI+IjsKK30KKworZnVuY3Rpb24gdGVzdDEo
KQoreworICAgIHdpbmRvdy5vbmVycm9yID0gZnVuY3Rpb24gKGVycm9yLCB1cmwsIGxpbmUpIHsK
KyAgICAgICAgdXJsID0gdXJsID8gdXJsLm1hdGNoKCAvW15cL10rXC8/JC8gKVswXSA6IHVybDsK
KyAgICAgICAgbG9nKCJFcnJvciBjYXVnaHQgc3VjY2Vzc2Z1bGx5OiAiICsgZXJyb3IgKyAiXG5G
aWxlOiAiICsgdXJsICsgIlxuTGluZTogIiArIGxpbmUpCisgICAgICAgIHJldHVybiBmYWxzZTsK
KyAgICB9OworICAgIHVua25vd25PYmplY3QudW5rbm93blByb3BlcnR5Kys7Cit9Cis8L3Njcmlw
dD4KKzxib2R5IG9ubG9hZD0idGVzdDEoKTsiPgorPHA+WW91IHNob3VsZCBzZWUgYSBtZXNzYWdl
IGlmIHdpbmRvdy5vbmVycm9yIGlzIHdvcmtpbmcgcHJvcGVybHkgZm9yIHRoaXMgdGVzdC48YSBo
cmVmPSJodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODUxOSI+QnVnIDg1
MTk8L2E+LjwvcD4KKzxocj4KKzxkaXYgaWQ9J2NvbnNvbGUnPjwvZGl2PgorPC9ib2R5PgpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvd2luZG93LW9uZXJyb3I0LWV4cGVjdGVk
LnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3dpbmRvdy1vbmVycm9yNC1leHBlY3RlZC50
eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uMjZhZjhhMWVhOWM4MmQxZGRiMjBiZmEwNzFiZGE3ZjhjNjc3Yjc2Ngot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3dpbmRvdy1vbmVycm9y
NC1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw0IEBACitZb3Ugc2hvdWxkIHNlZSBhIGxvZyByZWNv
cmQgaWYgd2luZG93Lm9uZXJyb3IgaXMgd29ya2luZyBwcm9wZXJseSBmb3IgdGhpcyB0ZXN0LkJ1
ZyA4NTE5LgorCitFcnJvciBjYXVnaHQgc3VjY2Vzc2Z1bGx5OiBSZWZlcmVuY2VFcnJvcjogTGVm
dCBzaWRlIG9mIGFzc2lnbm1lbnQgaXMgbm90IGEgcmVmZXJlbmNlLiBGaWxlOiB1bmRlZmluZWQg
TGluZTogMQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy93aW5kb3ctb25l
cnJvcjQuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3dpbmRvdy1vbmVycm9yNC5odG1s
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLmM1MTg4N2RhZjY4ZjE5MDYwZTcwNjQwMTg0ODllNTlhZGI5NzhkZWYKLS0t
IC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy93aW5kb3ctb25lcnJvcjQu
aHRtbApAQCAtMCwwICsxLDIzIEBACis8c2NyaXB0PgoraWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29u
dHJvbGxlcikKKyAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7CisKK2Z1bmN0
aW9uIGxvZyhtc2cpIHsKKyAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY29uc29sZSIpLmlu
bmVySFRNTCArPSBtc2cgKyAiPGJyPiI7Cit9CisKK2Z1bmN0aW9uIHRlc3QxKCkKK3sKKyAgICB3
aW5kb3cub25lcnJvciA9IGZ1bmN0aW9uIChlcnJvciwgdXJsLCBsaW5lKSB7CisgICAgICAgIHVy
bCA9IHVybCA/IHVybC5tYXRjaCggL1teXC9dK1wvPyQvIClbMF0gOiB1cmw7CisgICAgICAgIGxv
ZygiRXJyb3IgY2F1Z2h0IHN1Y2Nlc3NmdWxseTogIiArIGVycm9yICsgIlxuRmlsZTogIiArIHVy
bCArICJcbkxpbmU6ICIgKyBsaW5lKQorICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfTsKKyAg
ICBldmFsKCIxPTIiKTsKK30KKzwvc2NyaXB0PgorPGJvZHkgb25sb2FkPSJ0ZXN0MSgpOyI+Cis8
cD5Zb3Ugc2hvdWxkIHNlZSBhIGxvZyByZWNvcmQgaWYgd2luZG93Lm9uZXJyb3IgaXMgd29ya2lu
ZyBwcm9wZXJseSBmb3IgdGhpcyB0ZXN0LjxhIGhyZWY9Imh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD04NTE5Ij5CdWcgODUxOTwvYT4uPC9wPgorPGhyPgorPGRpdiBpZD0n
Y29uc29sZSc+PC9kaXY+Cis8L2JvZHk+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2V2
ZW50cy93aW5kb3ctb25lcnJvcjUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVu
dHMvd2luZG93LW9uZXJyb3I1LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zZWM3ZjVlZmMxZDA4
NmE2NWMzMjMwNDIyMTNlZjgyMGE3MTk3MTU0Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvZmFzdC9ldmVudHMvd2luZG93LW9uZXJyb3I1LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDQg
QEAKK1Rlc3QgdGhhdCB3aW5kb3cub25lcnJvciBpcyBpbnZva2VkIGZvciBzeW50YXggZXJyb3Ig
aW4gZXZhbC4gWW91IHNob3VsZCBzZWUgYSBsb2cgcmVjb3JkIGlmIHdpbmRvdy5vbmVycm9yIGlz
IHdvcmtpbmcgcHJvcGVybHkgZm9yIHRoaXMgdGVzdC5CdWcgODUxOS4KKworRXJyb3IgY2F1Z2h0
IHN1Y2Nlc3NmdWxseTogU3ludGF4RXJyb3I6IFBhcnNlIGVycm9yIEZpbGU6IHVuZGVmaW5lZCBM
aW5lOiAxCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3dpbmRvdy1vbmVy
cm9yNS5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvd2luZG93LW9uZXJyb3I1Lmh0bWwK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uOTMyZDQzOGE1NmVhODgyZmIxMTdiMjIxMzk1YzRhMGQ4MTk5NjQ0ZQotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3dpbmRvdy1vbmVycm9yNS5o
dG1sCkBAIC0wLDAgKzEsMjMgQEAKKzxzY3JpcHQ+CitpZiAod2luZG93LmxheW91dFRlc3RDb250
cm9sbGVyKQorICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKKworZnVuY3Rp
b24gbG9nKG1zZykgeworICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjb25zb2xlIikuaW5u
ZXJIVE1MICs9IG1zZyArICI8YnI+IjsKK30KKworZnVuY3Rpb24gdGVzdDEoKQoreworICAgIHdp
bmRvdy5vbmVycm9yID0gZnVuY3Rpb24gKGVycm9yLCB1cmwsIGxpbmUpIHsKKyAgICAgICAgdXJs
ID0gdXJsID8gdXJsLm1hdGNoKCAvW15cL10rXC8/JC8gKVswXSA6IHVybDsKKyAgICAgICAgbG9n
KCJFcnJvciBjYXVnaHQgc3VjY2Vzc2Z1bGx5OiAiICsgZXJyb3IgKyAiXG5GaWxlOiAiICsgdXJs
ICsgIlxuTGluZTogIiArIGxpbmUpCisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9OworICAg
IGV2YWwoImEoIik7Cit9Cis8L3NjcmlwdD4KKzxib2R5IG9ubG9hZD0idGVzdDEoKTsiPgorPHA+
VGVzdCB0aGF0IHdpbmRvdy5vbmVycm9yIGlzIGludm9rZWQgZm9yIHN5bnRheCBlcnJvciBpbiBl
dmFsLiBZb3Ugc2hvdWxkIHNlZSBhIGxvZyByZWNvcmQgaWYgd2luZG93Lm9uZXJyb3IgaXMgd29y
a2luZyBwcm9wZXJseSBmb3IgdGhpcyB0ZXN0LjxhIGhyZWY9Imh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD04NTE5Ij5CdWcgODUxOTwvYT4uPC9wPgorPGhyPgorPGRpdiBp
ZD0nY29uc29sZSc+PC9kaXY+Cis8L2JvZHk+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0
L2V2ZW50cy93aW5kb3ctb25lcnJvcjYtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9l
dmVudHMvd2luZG93LW9uZXJyb3I2LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5lN2MyN2JiNzc1
MjExYjUxMDAxMjc2NTM2OWRjMGUxMzkzNDI5MDkwCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0
VGVzdHMvZmFzdC9ldmVudHMvd2luZG93LW9uZXJyb3I2LWV4cGVjdGVkLnR4dApAQCAtMCwwICsx
LDQgQEAKK1Rlc3QgdGhhdCBzeW50YXggZXJyb3Igd2lsbCBiZSByZXBvcnRlZCB0byB0aGUgd2lu
ZG93Lm9uZXJyb3IgaGFuZGxlci4gQnVnIDg1MTkuCisKK01haW4gZnJhbWUgd2luZG93Lm9uZXJy
b3I6IFN5bnRheEVycm9yOiBQYXJzZSBlcnJvciBhdCB3aW5kb3ctb25lcnJvcjYuaHRtbDoyMgor
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy93aW5kb3ctb25lcnJvcjYuaHRt
bCBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3dpbmRvdy1vbmVycm9yNi5odG1sCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjE5Nzg0MzY4OTczMjQxMTM4YTllNjBiN2I0NTZkNTFlMzBiMWFlNDAKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy93aW5kb3ctb25lcnJvcjYuaHRtbApAQCAt
MCwwICsxLDI2IEBACis8aHRtbD4KKzxib2R5PgorPHA+VGVzdCB0aGF0IHN5bnRheCBlcnJvciB3
aWxsIGJlIHJlcG9ydGVkIHRvIHRoZSB3aW5kb3cub25lcnJvciBoYW5kbGVyLiA8YSBocmVmPSJo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODUxOSI+QnVnIDg1MTk8L2E+
LjwvcD4KKzxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgorPHNjcmlwdD4KK2lmICh3aW5kb3cubGF5
b3V0VGVzdENvbnRyb2xsZXIpCisgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgp
OworCitmdW5jdGlvbiBsb2cobXNnKSB7CisgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNv
bnNvbGUiKS5pbm5lckhUTUwgKz0gbXNnICsgIjxicj4iOworfQorCit3aW5kb3cub25lcnJvciA9
IGZ1bmN0aW9uKG1zZywgdXJsLCBsaW5lKQoreworICAgIHVybCA9IHVybCA/IHVybC5tYXRjaCgg
L1teXC9dK1wvPyQvIClbMF0gOiB1cmw7CisgICAgbG9nKCJNYWluIGZyYW1lIHdpbmRvdy5vbmVy
cm9yOiAiICsgbXNnICsgIiBhdCAiICsgdXJsICsgIjoiICsgbGluZSk7CisgICAgcmV0dXJuIGZh
bHNlOworfQorPC9zY3JpcHQ+Cis8c2NyaXB0PgorCithKSAvLyBzeW50YXggZXJyb3IKKworPC9z
Y3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2V2
ZW50cy93aW5kb3ctb25lcnJvcjctZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVu
dHMvd2luZG93LW9uZXJyb3I3LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41ZDIyZTdlNzU1Njhh
MjQ5NTljYmU2M2Q5ZmFhZTE0ZmRhYmNmMzYwCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvZmFzdC9ldmVudHMvd2luZG93LW9uZXJyb3I3LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDYg
QEAKK0NPTlNPTEUgTUVTU0FHRTogbGluZSAyMDogRXJyb3I6IE9yaWdpbmFsIGVycm9yCitDT05T
T0xFIE1FU1NBR0U6IGxpbmUgMTc6IEVycm9yOiBOZXN0ZWQgZXJyb3IKK1Rlc3QgdGhhdCBleGNl
cHRpb24gaW4gd2luZG93Lm9uZXJyb3Igd29uJ3QgbGVhZCB0byByZWN1cnNpdmUgd2luZG93Lm9u
ZXJyb3IgY2FsbC4gQnVnIDg1MTkuCisKK01haW4gZnJhbWUgd2luZG93Lm9uZXJyb3I6IEVycm9y
OiBPcmlnaW5hbCBlcnJvciBhdCB3aW5kb3ctb25lcnJvcjcuaHRtbDoyMAorCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy93aW5kb3ctb25lcnJvcjcuaHRtbCBiL0xheW91dFRl
c3RzL2Zhc3QvZXZlbnRzL3dpbmRvdy1vbmVycm9yNy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmY2NjU2ODY2
Y2MxNmM4M2ZlYTE4NjYzYzA4NzBmMzZlYzA4YmNjYTQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy9mYXN0L2V2ZW50cy93aW5kb3ctb25lcnJvcjcuaHRtbApAQCAtMCwwICsxLDI0IEBA
Cis8aHRtbD4KKzxib2R5PgorPHA+VGVzdCB0aGF0IGV4Y2VwdGlvbiBpbiB3aW5kb3cub25lcnJv
ciB3b24ndCBsZWFkIHRvIHJlY3Vyc2l2ZSB3aW5kb3cub25lcnJvciBjYWxsLiA8YSBocmVmPSJo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODUxOSI+QnVnIDg1MTk8L2E+
LjwvcD4KKzxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgorPHNjcmlwdD4KK2lmICh3aW5kb3cubGF5
b3V0VGVzdENvbnRyb2xsZXIpCisgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgp
OworCitmdW5jdGlvbiBsb2cobXNnKSB7CisgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNv
bnNvbGUiKS5pbm5lckhUTUwgKz0gbXNnICsgIjxicj4iOworfQorCit3aW5kb3cub25lcnJvciA9
IGZ1bmN0aW9uKG1zZywgdXJsLCBsaW5lKQoreworICAgIHVybCA9IHVybCA/IHVybC5tYXRjaCgg
L1teXC9dK1wvPyQvIClbMF0gOiB1cmw7CisgICAgbG9nKCJNYWluIGZyYW1lIHdpbmRvdy5vbmVy
cm9yOiAiICsgbXNnICsgIiBhdCAiICsgdXJsICsgIjoiICsgbGluZSk7CisgICAgdGhyb3cgbmV3
IEVycm9yKCJOZXN0ZWQgZXJyb3IiKTsKK30KKwordGhyb3cgbmV3IEVycm9yKCJPcmlnaW5hbCBl
cnJvciIpOworCis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2Zhc3QvZXZlbnRzL3dpbmRvdy1vbmVycm9yOC1leHBlY3RlZC50eHQgYi9MYXlvdXRU
ZXN0cy9mYXN0L2V2ZW50cy93aW5kb3ctb25lcnJvcjgtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LmVmYzYzMDhkODI5NWY1NTM4ZjM4ZDZmMzhmMGI1NDZmMzg4YTZhNDgKLS0tIC9kZXYvbnVsbAor
KysgYi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy93aW5kb3ctb25lcnJvcjgtZXhwZWN0ZWQudHh0
CkBAIC0wLDAgKzEsNSBAQAorVGVzdCB0aGF0IHdpbmRvdy5vbmVycm9yIGlzIGNhbGxlZCBvbiB3
aW5kb3cgb2JqZWN0LiBCdWcgODUxOS4KKworTWFpbiBmcmFtZSB3aW5kb3cub25lcnJvcjogMjAx
MCBhdCB1bmRlZmluZWQ6MAorUEFTU0VEOiB0aGlzID09PSB3aW5kb3cKKwpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvd2luZG93LW9uZXJyb3I4Lmh0bWwgYi9MYXlvdXRUZXN0
cy9mYXN0L2V2ZW50cy93aW5kb3ctb25lcnJvcjguaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iYWRlNTM4ODZm
MmZkNzM5OTU2YjYxMDk0Njc3MzE4YTVhMjFhODg5Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0
VGVzdHMvZmFzdC9ldmVudHMvd2luZG93LW9uZXJyb3I4Lmh0bWwKQEAgLTAsMCArMSwyOCBAQAor
PGh0bWw+Cis8Ym9keT4KKzxwPlRlc3QgdGhhdCB3aW5kb3cub25lcnJvciBpcyBjYWxsZWQgb24g
d2luZG93IG9iamVjdC4gPGEgaHJlZj0iaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTg1MTkiPkJ1ZyA4NTE5PC9hPi48L3A+Cis8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4K
KzxzY3JpcHQ+CitpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQorICAgIGxheW91dFRl
c3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKKworZnVuY3Rpb24gbG9nKG1zZykgeworICAgIGRv
Y3VtZW50LmdldEVsZW1lbnRCeUlkKCJjb25zb2xlIikuaW5uZXJIVE1MICs9IG1zZyArICI8YnI+
IjsKK30KKword2luZG93Lm9uZXJyb3IgPSBmdW5jdGlvbihtc2csIHVybCwgbGluZSkKK3sKKyAg
ICB1cmwgPSB1cmwgPyB1cmwubWF0Y2goIC9bXlwvXStcLz8kLyApWzBdIDogdXJsOworICAgIGxv
ZygiTWFpbiBmcmFtZSB3aW5kb3cub25lcnJvcjogIiArIG1zZyArICIgYXQgIiArIHVybCArICI6
IiArIGxpbmUpOworICAgIGlmICh0aGlzID09PSB3aW5kb3cpIAorICAgICAgICBsb2coIlBBU1NF
RDogdGhpcyA9PT0gd2luZG93Iik7CisgICAgZWxzZQorICAgICAgICBsb2coIkZBSUxFRDogdGhp
cyA9PT0gd2luZG93Iik7CisgICAgcmV0dXJuIGZhbHNlOworfQorCit0aHJvdyAyMDEwOworCis8
L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3Qv
ZXZlbnRzL3dpbmRvdy1vbmVycm9yOS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2V2
ZW50cy93aW5kb3ctb25lcnJvcjktZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjk0MzE2ZDNmMTA3
ZTljYjRmNDk5OTQ4YjE5ZmQ5ZTJlNGFlM2RhZDYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRU
ZXN0cy9mYXN0L2V2ZW50cy93aW5kb3ctb25lcnJvcjktZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEs
OCBAQAorVGVzdCB0aGF0IHdoZW4gd2luZG93Lm9uZXJyb3IgaGFuZGxlciBpcyBjYWxsZWQsIHdp
bmRvdy5ldmVudCBpcyB0aGUgY29ycmVzcG9uZGluZyBFcnJvckV2ZW50IG9iamVjdC4gQnVnIDg1
MTkuCisKK01haW4gZnJhbWUgd2luZG93Lm9uZXJyb3I6IEVycm9yOiAyMDEwIGF0IHdpbmRvdy1v
bmVycm9yOS5odG1sOjMxCit3aW5kb3cuZXZlbnQudHlwZSA9IGVycm9yCit3aW5kb3cuZXZlbnQu
bWVzc2FnZSA9IEVycm9yOiAyMDEwCit3aW5kb3cuZXZlbnQuZmlsZW5hbWUgPSB3aW5kb3ctb25l
cnJvcjkuaHRtbAord2luZG93LmV2ZW50LmxpbmVubyA9IDMxCisKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2Zhc3QvZXZlbnRzL3dpbmRvdy1vbmVycm9yOS5odG1sIGIvTGF5b3V0VGVzdHMvZmFz
dC9ldmVudHMvd2luZG93LW9uZXJyb3I5Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMTA4NmFjZTljN2FkNzYy
OWU3MTBhMjRiZGJiOWY1YzkzMTQ1Yjk1NAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3Rz
L2Zhc3QvZXZlbnRzL3dpbmRvdy1vbmVycm9yOS5odG1sCkBAIC0wLDAgKzEsMzUgQEAKKzxodG1s
PgorPGJvZHk+Cis8cD5UZXN0IHRoYXQgd2hlbiB3aW5kb3cub25lcnJvciBoYW5kbGVyIGlzIGNh
bGxlZCwgd2luZG93LmV2ZW50IGlzIHRoZSBjb3JyZXNwb25kaW5nIEVycm9yRXZlbnQgb2JqZWN0
LiA8YSBocmVmPSJodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODUxOSI+
QnVnIDg1MTk8L2E+LjwvcD4KKzxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgorPHNjcmlwdD4KK2lm
ICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpIHsKKyAgICBsYXlvdXRUZXN0Q29udHJvbGxl
ci5kdW1wQXNUZXh0KCk7CisgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIud2FpdFVudGlsRG9uZSgp
OworfQorCitmdW5jdGlvbiBsb2cobXNnKSB7CisgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQo
ImNvbnNvbGUiKS5pbm5lckhUTUwgKz0gbXNnICsgIjxicj4iOworfQorCitmdW5jdGlvbiBsYXN0
UGF0aENvbXBvbmVudCh1cmwpIHsKKyAgICByZXR1cm4gdXJsID8gdXJsLm1hdGNoKCAvW15cL10r
XC8/JC8gKVswXSA6IHVybDsKK30KKword2luZG93Lm9uZXJyb3IgPSBmdW5jdGlvbihtc2csIHVy
bCwgbGluZSkKK3sKKyAgICBsb2coIk1haW4gZnJhbWUgd2luZG93Lm9uZXJyb3I6ICIgKyBtc2cg
KyAiIGF0ICIgKyBsYXN0UGF0aENvbXBvbmVudCh1cmwpICsgIjoiICsgbGluZSk7CisgICAgbG9n
KCJ3aW5kb3cuZXZlbnQudHlwZSA9ICIgKyB3aW5kb3cuZXZlbnQudHlwZSk7CisgICAgbG9nKCJ3
aW5kb3cuZXZlbnQubWVzc2FnZSA9ICIgKyB3aW5kb3cuZXZlbnQubWVzc2FnZSk7CisgICAgbG9n
KCJ3aW5kb3cuZXZlbnQuZmlsZW5hbWUgPSAiICsgbGFzdFBhdGhDb21wb25lbnQod2luZG93LmV2
ZW50LmZpbGVuYW1lKSk7CisgICAgbG9nKCJ3aW5kb3cuZXZlbnQubGluZW5vID0gIiArIHdpbmRv
dy5ldmVudC5saW5lbm8pOworICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCisg
ICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLm5vdGlmeURvbmUoKTsKKyAgICByZXR1cm4gZmFs
c2U7Cit9CisKK3Rocm93IG5ldyBFcnJvcigyMDEwKTsKKworPC9zY3JpcHQ+Cis8L2JvZHk+Cis8
L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3dvcmtlcnMvd29ya2VyLXNjcmlw
dC1lcnJvci1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L3dvcmtlcnMvd29ya2VyLXNj
cmlwdC1lcnJvci1leHBlY3RlZC50eHQKaW5kZXggMTBhYjA0OTNhYjQ3YTI0MmNhNmQ3M2ZjZjA0
YmFmMzg2ZTRmNDVmNy4uNDA0MTY0MDg5ZTgyNGE5MGU0MGRlOTJjN2UxMjQ5NTAxYjc4ODcxOSAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC93b3JrZXJzL3dvcmtlci1zY3JpcHQtZXJyb3It
ZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2Zhc3Qvd29ya2Vycy93b3JrZXItc2NyaXB0
LWVycm9yLWV4cGVjdGVkLnR4dApAQCAtNCw4ICs0LDggQEAgVGVzdCBXb3JrZXIgc2NyaXB0IGVy
cm9yIGhhbmRsaW5nIGZ1bmN0aW9uYWxpdHkuIFNob3VsZCBwcmludCBhIHNlcmllcyBvZiBQQVNT
IG0KIFBBU1M6IG9uZXJyb3IgaW52b2tlZCBmb3IgYSBzY3JpcHQgdGhhdCBoYXMgaW52YWxpZCBz
eW50YXguCiBQQVNTOiBvbmVycm9yIGludm9rZWQgZm9yIGEgc2NyaXB0IHRoYXQgaGFzIHNjcmlw
dCBlcnJvciAnUmVmZXJlbmNlRXJyb3I6IENhbid0IGZpbmQgdmFyaWFibGU6IGZvbycgYXQgbGlu
ZSAxLgogUEFTUzogZXZlbnQgbGlzdGVuZXIgaW52b2tlZCBmb3IgYSBzY3JpcHQgdGhhdCBoYXMg
c2NyaXB0IGVycm9yICdSZWZlcmVuY2VFcnJvcjogQ2FuJ3QgZmluZCB2YXJpYWJsZTogZm9vJyBh
dCBsaW5lIDEuCi1QQVNTOiBvbmVycm9yIGludm9rZWQgZm9yIGEgc2NyaXB0IHRoYXQgaGFzIHNj
cmlwdCBlcnJvciAnUmVmZXJlbmNlRXJyb3I6IENhbid0IGZpbmQgdmFyaWFibGU6IGJhcicgYXQg
bGluZSAzLgogUEFTUzogb25lcnJvciBpbnZva2VkIGZvciBhIHNjcmlwdCB0aGF0IGhhcyBzY3Jp
cHQgZXJyb3IgJ1JlZmVyZW5jZUVycm9yOiBDYW4ndCBmaW5kIHZhcmlhYmxlOiBmb28nIGF0IGxp
bmUgNy4KK1BBU1M6IG9uZXJyb3IgaW52b2tlZCBmb3IgYSBzY3JpcHQgdGhhdCBoYXMgc2NyaXB0
IGVycm9yICdSZWZlcmVuY2VFcnJvcjogQ2FuJ3QgZmluZCB2YXJpYWJsZTogYmFyJyBhdCBsaW5l
IDMuCiBQQVNTOiBvbmVycm9yIGludm9rZWQgZm9yIGEgc2NyaXB0IHRoYXQgaGFzIHNjcmlwdCBl
cnJvciAnUmVmZXJlbmNlRXJyb3I6IENhbid0IGZpbmQgdmFyaWFibGU6IGZvbycgYXQgbGluZSA3
LgogUEFTUzogb25lcnJvciBpbnZva2VkIGZvciBhIHNjcmlwdCB0aGF0IGhhcyBzY3JpcHQgZXJy
b3IgJ1JlZmVyZW5jZUVycm9yOiBDYW4ndCBmaW5kIHZhcmlhYmxlOiBmb28nIGF0IGxpbmUgNy4K
IFBBU1M6IG1lc3NhZ2UgcmVjZWl2ZWQgZnJvbSBXb3JrZXJHbG9iYWxTY29wZS5vbmVycm9yOiBv
bmVycm9yIGludm9rZWQgZm9yIGEgc2NyaXB0IHRoYXQgaGFzIHNjcmlwdCBlcnJvciAnUmVmZXJl
bmNlRXJyb3I6IENhbid0IGZpbmQgdmFyaWFibGU6IGZvbycgYXQgbGluZSA3LgpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9yZXNvdXJjZXMvb25lcnJvci1pZnJh
bWUuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvcmVzb3VyY2VzL29uZXJy
b3ItaWZyYW1lLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMzEyZmQxMmQzYWQ4MTAyYTVmZTFiNTE3MDNlYzNj
YjAwMWE3NGZjOAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2Vj
dXJpdHkvcmVzb3VyY2VzL29uZXJyb3ItaWZyYW1lLmh0bWwKQEAgLTAsMCArMSwxMSBAQAorPHNj
cmlwdD4KK2Z1bmN0aW9uIGhhbmRsZUxvYWQoKQoreworICAgIHdpbmRvdy5wYXJlbnQucG9zdE1l
c3NhZ2UoIklGcmFtZUxvYWRlZCIsICIqIik7Cit9CisKK3Rocm93ICJJZnJhbWVFeGNlcHRpb24i
OworCis8L3NjcmlwdD4KKzxib2R5IG9ubG9hZD0iaGFuZGxlTG9hZCgpIj4KKzwvYm9keT4KZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvd2luZG93LW9uZXJyb3It
ZXhjZXB0aW9uLWluLWlmcmFtZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3Rz
L3NlY3VyaXR5L3dpbmRvdy1vbmVycm9yLWV4Y2VwdGlvbi1pbi1pZnJhbWUtZXhwZWN0ZWQudHh0
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLjhiMTdkOTIyODFjZjVmMTA0MWY4ZDk1N2I0NjM2NTIwMjZhYzE3ZWIKLS0t
IC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L3dpbmRvdy1v
bmVycm9yLWV4Y2VwdGlvbi1pbi1pZnJhbWUtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNiBAQAor
Q09OU09MRSBNRVNTQUdFOiBsaW5lIDA6IElmcmFtZUV4Y2VwdGlvbgorVGVzdCB0aGF0IGV4Y2Vw
dGlvbnMgaW4gaWZyYW1lIGFyZSBub3QgcmVwb3J0ZWQgdG8gdGhlIG1haW4gZnJhbWUgd2luZG93
Lm9uZXJyb3IgaGFuZGxlci4gd2luZG93Lm9uZXJyb3Igc2hvdWxkIHByaW50IGV4YWN0bHkgb25l
IGxpbmUuCisKK01haW4gZnJhbWUgd2luZG93Lm9uZXJyb3I6IE1haW5GcmFtZUV4Y2VwdGlvbiBh
dCB1bmRlZmluZWQ6MAorRE9ORQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3Rz
L3NlY3VyaXR5L3dpbmRvdy1vbmVycm9yLWV4Y2VwdGlvbi1pbi1pZnJhbWUuaHRtbCBiL0xheW91
dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvd2luZG93LW9uZXJyb3ItZXhjZXB0aW9uLWluLWlm
cmFtZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLjA5MDRlMzk1MmI4YWExOTlhMWMzZDQ1ZWM2MjU4ODM5Mzcz
MmNhMWIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5
L3dpbmRvdy1vbmVycm9yLWV4Y2VwdGlvbi1pbi1pZnJhbWUuaHRtbApAQCAtMCwwICsxLDM5IEBA
Cis8aHRtbD4KKzxib2R5PgorPHA+VGVzdCB0aGF0IGV4Y2VwdGlvbnMgaW4gaWZyYW1lIGFyZSBu
b3QgcmVwb3J0ZWQgdG8gdGhlIG1haW4gZnJhbWUgd2luZG93Lm9uZXJyb3IgaGFuZGxlci4KK3dp
bmRvdy5vbmVycm9yIHNob3VsZCBwcmludCBleGFjdGx5IG9uZSBsaW5lLjwvcD4KKzxkaXYgaWQ9
InJlc3VsdCI+PC9kaXY+Cis8c2NyaXB0PgoraWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxl
cikgeworICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKKyAgICBsYXlvdXRU
ZXN0Q29udHJvbGxlci53YWl0VW50aWxEb25lKCk7Cit9CisKK2Z1bmN0aW9uIGxvZyhtc2cpIHsK
KyAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicmVzdWx0IikuaW5uZXJIVE1MICs9IG1zZyAr
ICI8YnI+IjsKK30KKword2luZG93Lm9uZXJyb3IgPSBmdW5jdGlvbihtc2csIHVybCwgbGluZSkK
K3sKKyAgICB1cmwgPSB1cmwgPyB1cmwubWF0Y2goIC9bXlwvXStcLz8kLyApWzBdIDogdXJsOwor
ICAgIGxvZygiTWFpbiBmcmFtZSB3aW5kb3cub25lcnJvcjogIiArIG1zZyArICIgYXQgIiArIHVy
bCArICI6IiArIGxpbmUpOworICAgIHJldHVybiBmYWxzZTsKK30KKworZnVuY3Rpb24gcmVjZWl2
ZU1lc3NhZ2UoZXZlbnQpIHsKKyAgICBpZiAoZXZlbnQuZGF0YSA9PT0gIklGcmFtZUxvYWRlZCIp
IHsKKyAgICAgICAgbG9nKCJET05FIik7CisgICAgICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENv
bnRyb2xsZXIpCisgICAgICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5ub3RpZnlEb25lKCk7
CisgICAgfSBlbHNlCisgICAgICAgIGxvZygiRkFJTCAiICsgZXZlbnQuZGF0YSk7Cit9CisKK3dp
bmRvdy5hZGRFdmVudExpc3RlbmVyKCJtZXNzYWdlIiwgcmVjZWl2ZU1lc3NhZ2UsIGZhbHNlKTsK
KwordGhyb3cgIk1haW5GcmFtZUV4Y2VwdGlvbiI7CisKKzwvc2NyaXB0PgorPGlmcmFtZSBzcmM9
Imh0dHA6Ly9sb2NhbGhvc3Q6ODAwMC9zZWN1cml0eS9yZXNvdXJjZXMvb25lcnJvci1pZnJhbWUu
aHRtbCIvPgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZv
cm0vY2hyb21pdW0td2luL2Zhc3Qvd29ya2Vycy93b3JrZXItc2NyaXB0LWVycm9yLWV4cGVjdGVk
LnR4dCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtLXdpbi9mYXN0L3dvcmtlcnMvd29y
a2VyLXNjcmlwdC1lcnJvci1leHBlY3RlZC50eHQKaW5kZXggZmRmNjYwYmQ1MGM2NjdkNDMwZjE2
NWE3ZmE4Mzc0MDE2NDFhMWNhMS4uZWYwYTM5MWU0Nzg3YjMzYmJiYjBkOWY3MDYwMzg0OTNmZTMx
ODEyOSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0td2luL2Zhc3Qv
d29ya2Vycy93b3JrZXItc2NyaXB0LWVycm9yLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0
cy9wbGF0Zm9ybS9jaHJvbWl1bS13aW4vZmFzdC93b3JrZXJzL3dvcmtlci1zY3JpcHQtZXJyb3It
ZXhwZWN0ZWQudHh0CkBAIC0zLDggKzMsOCBAQCBUZXN0IFdvcmtlciBzY3JpcHQgZXJyb3IgaGFu
ZGxpbmcgZnVuY3Rpb25hbGl0eS4gU2hvdWxkIHByaW50IGEgc2VyaWVzIG9mIFBBU1MgbQogUEFT
Uzogb25lcnJvciBpbnZva2VkIGZvciBhIHNjcmlwdCB0aGF0IGhhcyBpbnZhbGlkIHN5bnRheC4K
IFBBU1M6IG9uZXJyb3IgaW52b2tlZCBmb3IgYSBzY3JpcHQgdGhhdCBoYXMgc2NyaXB0IGVycm9y
ICdVbmNhdWdodCBSZWZlcmVuY2VFcnJvcjogZm9vIGlzIG5vdCBkZWZpbmVkJyBhdCBsaW5lIDEu
CiBQQVNTOiBldmVudCBsaXN0ZW5lciBpbnZva2VkIGZvciBhIHNjcmlwdCB0aGF0IGhhcyBzY3Jp
cHQgZXJyb3IgJ1VuY2F1Z2h0IFJlZmVyZW5jZUVycm9yOiBmb28gaXMgbm90IGRlZmluZWQnIGF0
IGxpbmUgMS4KLVBBU1M6IG9uZXJyb3IgaW52b2tlZCBmb3IgYSBzY3JpcHQgdGhhdCBoYXMgc2Ny
aXB0IGVycm9yICdVbmNhdWdodCBSZWZlcmVuY2VFcnJvcjogYmFyIGlzIG5vdCBkZWZpbmVkJyBh
dCBsaW5lIDMuCiBQQVNTOiBvbmVycm9yIGludm9rZWQgZm9yIGEgc2NyaXB0IHRoYXQgaGFzIHNj
cmlwdCBlcnJvciAnVW5jYXVnaHQgUmVmZXJlbmNlRXJyb3I6IGZvbyBpcyBub3QgZGVmaW5lZCcg
YXQgbGluZSA3LgorUEFTUzogb25lcnJvciBpbnZva2VkIGZvciBhIHNjcmlwdCB0aGF0IGhhcyBz
Y3JpcHQgZXJyb3IgJ1VuY2F1Z2h0IFJlZmVyZW5jZUVycm9yOiBiYXIgaXMgbm90IGRlZmluZWQn
IGF0IGxpbmUgMy4KIFBBU1M6IG9uZXJyb3IgaW52b2tlZCBmb3IgYSBzY3JpcHQgdGhhdCBoYXMg
c2NyaXB0IGVycm9yICdVbmNhdWdodCBSZWZlcmVuY2VFcnJvcjogZm9vIGlzIG5vdCBkZWZpbmVk
JyBhdCBsaW5lIDcuCiBQQVNTOiBvbmVycm9yIGludm9rZWQgZm9yIGEgc2NyaXB0IHRoYXQgaGFz
IHNjcmlwdCBlcnJvciAnVW5jYXVnaHQgUmVmZXJlbmNlRXJyb3I6IGZvbyBpcyBub3QgZGVmaW5l
ZCcgYXQgbGluZSA3LgogUEFTUzogbWVzc2FnZSByZWNlaXZlZCBmcm9tIFdvcmtlckdsb2JhbFNj
b3BlLm9uZXJyb3I6IG9uZXJyb3IgaW52b2tlZCBmb3IgYSBzY3JpcHQgdGhhdCBoYXMgc2NyaXB0
IGVycm9yICdVbmNhdWdodCBSZWZlcmVuY2VFcnJvcjogZm9vIGlzIG5vdCBkZWZpbmVkJyBhdCBs
aW5lIDcuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS9mYXN0L2V2
ZW50cy93aW5kb3ctb25lcnJvcjEtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0v
Y2hyb21pdW0vZmFzdC9ldmVudHMvd2luZG93LW9uZXJyb3IxLWV4cGVjdGVkLnR4dApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi42NWI2MjRiOWU5ODc4OTdhZWQ4M2QxY2I3Y2E0NTdhYzc2M2Y3Y2MxCi0tLSAvZGV2L251
bGwKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vZmFzdC9ldmVudHMvd2luZG93
LW9uZXJyb3IxLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDMgQEAKK1RoaXMgcGFnZSB0ZXN0cyBz
ZXR0aW5nIG9uZXJyb3IgaGFuZGxlcnMgdGhyb3VnaCB0aGUgRE9NLiBJZiBpdCBwYXNzZXMsIHlv
dSB3aWxsIHNlZSAiUEFTUyIgbWVzc2FnZXMgYmVsb3cuQnVnIDg1MTkuDQorDQorUEFTUzogY2F1
Z2h0IGdsb2JhbCBlcnJvcjogVW5jYXVnaHQgUmVmZXJlbmNlRXJyb3I6IGhhaGFoYV9nb29kX2x1
Y2tfZmluZGluZ19tZSBpcyBub3QgZGVmaW5lZCBhdCB3aW5kb3ctb25lcnJvcjEuaHRtbDoyNQ0K
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL2Zhc3QvZXZlbnRzL3dp
bmRvdy1vbmVycm9yMTAtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21p
dW0vZmFzdC9ldmVudHMvd2luZG93LW9uZXJyb3IxMC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
YjNkMmQzOTA5N2ZiZjQ5NzZmM2I1NzM0ZmFkNTk3YWZhN2Q4NGZjZQotLS0gL2Rldi9udWxsCisr
KyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL2Zhc3QvZXZlbnRzL3dpbmRvdy1vbmVy
cm9yMTAtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTEgQEAKK1Rlc3QgdGhhdCAiZXJyb3IiIGV2
ZW50IGxpc3RlbmVyIGFkZGVkIHdpdGggd2luZG93LmFkZEV2ZW50TGlzdGVuZXIgaXMgaW52b2tl
ZCBmb3IgdW5jYXVjaHQgZXhjZXB0aW9ucy4gQnVnIDg1MTkuDQorDQorZXZlbnQgcGFzc2VkIHRv
IHRoZSBsaXN0ZW5lciBpcyB0aGUgc2FtZSBhcyB3aW5kb3cuZXZlbnQ6IHRydWUNCitFdmVudCBk
ZXRhaWxzOg0KK3R5cGU6IGVycm9yDQorcGhhc2U6IDINCitjdXJyZW50VGFyZ2V0IGlzIHRoZSBn
bG9iYWwgb2JqZWN0OiB0cnVlDQorbWVzc2FnZTogVW5jYXVnaHQgRXJyb3I6IE15IGZhdWx0Lg0K
K2ZpbGVuYW1lOiB3aW5kb3ctb25lcnJvcjEwLmh0bWwNCitsaW5lbm86IDI5DQorDQpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vZmFzdC9ldmVudHMvd2luZG93LW9u
ZXJyb3IxMS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS9mYXN0
L2V2ZW50cy93aW5kb3ctb25lcnJvcjExLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45MmUzY2Y1
OGJmYTQ0MDliMzM2Njg0ZWVkMmM3YjAyNTAyMDg2OWI3Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5
b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vZmFzdC9ldmVudHMvd2luZG93LW9uZXJyb3IxMS1l
eHBlY3RlZC50eHQKQEAgLTAsMCArMSw0IEBACitUZXN0IHRoYXQgd2luZG93Lm9uZXJyb3IgaXMg
Y2FsbGVkIG9uIHdpbmRvdyBvYmplY3QuIEJ1ZyA4NTE5Lg0KKw0KK01haW4gZnJhbWUgd2luZG93
Lm9uZXJyb3I6IFVuY2F1Z2h0IEVycm9yOiBBbiBleGNlcHRpb24gYXQgd2luZG93LW9uZXJyb3Iu
anM6Mg0KKw0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL2Zhc3Qv
ZXZlbnRzL3dpbmRvdy1vbmVycm9yMi1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9y
bS9jaHJvbWl1bS9mYXN0L2V2ZW50cy93aW5kb3ctb25lcnJvcjItZXhwZWN0ZWQudHh0Cm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLmY3YjE2MjFjMTk2MDgwYzkxNDc1YmM5YjYxNjIwZWI3OTA0NmU3MjcKLS0tIC9kZXYv
bnVsbAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS9mYXN0L2V2ZW50cy93aW5k
b3ctb25lcnJvcjItZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNiBAQAorVGVzdCB0aGF0IHVuY2F1
Z2h0IGV4Y2VwdGlvbnMgd2lsbCBiZSByZXBvcnRlZCB0byB0aGUgd2luZG93Lm9uZXJyb3IgaGFu
ZGxlci4gQnVnIDg1MTkuDQorDQorTWFpbiBmcmFtZSB3aW5kb3cub25lcnJvcjogVW5jYXVnaHQg
RXJyb3I6IElubGluZSBzY3JpcHQgZXhjZXB0aW9uIGF0IHdpbmRvdy1vbmVycm9yMi5odG1sOjM1
DQorTWFpbiBmcmFtZSB3aW5kb3cub25lcnJvcjogVW5jYXVnaHQgRXhjZXB0aW9uIGluIG9ubG9h
ZCBhdCB3aW5kb3ctb25lcnJvcjIuaHRtbDoyDQorTWFpbiBmcmFtZSB3aW5kb3cub25lcnJvcjog
VW5jYXVnaHQgRXJyb3I6IEV4Y2VwdGlvbiBpbiBzZXRUaW1lb3V0IGF0IHdpbmRvdy1vbmVycm9y
Mi5odG1sOjI5DQorDQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0v
ZmFzdC9ldmVudHMvd2luZG93LW9uZXJyb3IzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3Bs
YXRmb3JtL2Nocm9taXVtL2Zhc3QvZXZlbnRzL3dpbmRvdy1vbmVycm9yMy1leHBlY3RlZC50eHQK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uYTFiOGJkNTU4MDBmMDkwZTk0ZDk5YzAzMTI1MTEwOGE1ZTllZTQ5NQotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL2Zhc3QvZXZlbnRz
L3dpbmRvdy1vbmVycm9yMy1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw0IEBACitZb3Ugc2hvdWxk
IHNlZSBhIG1lc3NhZ2UgaWYgd2luZG93Lm9uZXJyb3IgaXMgd29ya2luZyBwcm9wZXJseSBmb3Ig
dGhpcyB0ZXN0LkJ1ZyA4NTE5Lg0KKw0KK0Vycm9yIGNhdWdodCBzdWNjZXNzZnVsbHk6IFVuY2F1
Z2h0IFJlZmVyZW5jZUVycm9yOiB1bmtub3duT2JqZWN0IGlzIG5vdCBkZWZpbmVkIEZpbGU6IHdp
bmRvdy1vbmVycm9yMy5odG1sIExpbmU6IDE2DQorDQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
cGxhdGZvcm0vY2hyb21pdW0vZmFzdC9ldmVudHMvd2luZG93LW9uZXJyb3I0LWV4cGVjdGVkLnR4
dCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL2Zhc3QvZXZlbnRzL3dpbmRvdy1vbmVy
cm9yNC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNTBmMDllMDJlOThhMzJkODYwNDE3NDEyNDE2
ZmRhZjhkZDg2NmNkYwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2No
cm9taXVtL2Zhc3QvZXZlbnRzL3dpbmRvdy1vbmVycm9yNC1leHBlY3RlZC50eHQKQEAgLTAsMCAr
MSw0IEBACitZb3Ugc2hvdWxkIHNlZSBhIGxvZyByZWNvcmQgaWYgd2luZG93Lm9uZXJyb3IgaXMg
d29ya2luZyBwcm9wZXJseSBmb3IgdGhpcyB0ZXN0LkJ1ZyA4NTE5Lg0KKw0KK0Vycm9yIGNhdWdo
dCBzdWNjZXNzZnVsbHk6IFVuY2F1Z2h0IFJlZmVyZW5jZUVycm9yOiBJbnZhbGlkIGxlZnQtaGFu
ZCBzaWRlIGluIGFzc2lnbm1lbnQgRmlsZTogd2luZG93LW9uZXJyb3I0Lmh0bWwgTGluZTogMQ0K
Kw0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL2Zhc3QvZXZlbnRz
L3dpbmRvdy1vbmVycm9yNS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJv
bWl1bS9mYXN0L2V2ZW50cy93aW5kb3ctb25lcnJvcjUtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LmU0NTM2OWUyOWYxMTVjNTVmNDdiMWRiNGE4ZjFmZmJiNjE0YzQ4YjcKLS0tIC9kZXYvbnVsbAor
KysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS9mYXN0L2V2ZW50cy93aW5kb3ctb25l
cnJvcjUtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNCBAQAorVGVzdCB0aGF0IHdpbmRvdy5vbmVy
cm9yIGlzIGludm9rZWQgZm9yIHN5bnRheCBlcnJvciBpbiBldmFsLiBZb3Ugc2hvdWxkIHNlZSBh
IGxvZyByZWNvcmQgaWYgd2luZG93Lm9uZXJyb3IgaXMgd29ya2luZyBwcm9wZXJseSBmb3IgdGhp
cyB0ZXN0LkJ1ZyA4NTE5Lg0KKw0KK0Vycm9yIGNhdWdodCBzdWNjZXNzZnVsbHk6IFVuY2F1Z2h0
IFN5bnRheEVycm9yOiBVbmV4cGVjdGVkIGVuZCBvZiBpbnB1dCBGaWxlOiB3aW5kb3ctb25lcnJv
cjUuaHRtbCBMaW5lOiAxDQorDQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hy
b21pdW0vZmFzdC9ldmVudHMvd2luZG93LW9uZXJyb3I2LWV4cGVjdGVkLnR4dCBiL0xheW91dFRl
c3RzL3BsYXRmb3JtL2Nocm9taXVtL2Zhc3QvZXZlbnRzL3dpbmRvdy1vbmVycm9yNi1leHBlY3Rl
ZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uMThlZDgxYWEwMmEwNWRlY2I1Y2MwMjVhZGVmYjAxYTJkYTZlODY3
ZQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL2Zhc3Qv
ZXZlbnRzL3dpbmRvdy1vbmVycm9yNi1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw0IEBACitUZXN0
IHRoYXQgc3ludGF4IGVycm9yIHdpbGwgYmUgcmVwb3J0ZWQgdG8gdGhlIHdpbmRvdy5vbmVycm9y
IGhhbmRsZXIuIEJ1ZyA4NTE5Lg0KKw0KK01haW4gZnJhbWUgd2luZG93Lm9uZXJyb3I6IFVuY2F1
Z2h0IFN5bnRheEVycm9yOiBVbmV4cGVjdGVkIHRva2VuICkgYXQgd2luZG93LW9uZXJyb3I2Lmh0
bWw6MjINCisNCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS9mYXN0
L2V2ZW50cy93aW5kb3ctb25lcnJvcjctZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvcGxhdGZv
cm0vY2hyb21pdW0vZmFzdC9ldmVudHMvd2luZG93LW9uZXJyb3I3LWV4cGVjdGVkLnR4dApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi4yM2QwNDA3OTA2YTg3ODA5ODE0NzRiMTMwMDY2Mjk0ZGIzYzA5NTE1Ci0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vZmFzdC9ldmVudHMvd2lu
ZG93LW9uZXJyb3I3LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDYgQEAKK0NPTlNPTEUgTUVTU0FH
RTogbGluZSAyMDogVW5jYXVnaHQgRXJyb3I6IE9yaWdpbmFsIGVycm9yDQorQ09OU09MRSBNRVNT
QUdFOiBsaW5lIDE3OiBVbmNhdWdodCBFcnJvcjogTmVzdGVkIGVycm9yDQorVGVzdCB0aGF0IGV4
Y2VwdGlvbiBpbiB3aW5kb3cub25lcnJvciB3b24ndCBsZWFkIHRvIHJlY3Vyc2l2ZSB3aW5kb3cu
b25lcnJvciBjYWxsLiBCdWcgODUxOS4NCisNCitNYWluIGZyYW1lIHdpbmRvdy5vbmVycm9yOiBV
bmNhdWdodCBFcnJvcjogT3JpZ2luYWwgZXJyb3IgYXQgd2luZG93LW9uZXJyb3I3Lmh0bWw6MjAN
CisNCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS9mYXN0L2V2ZW50
cy93aW5kb3ctb25lcnJvcjgtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hy
b21pdW0vZmFzdC9ldmVudHMvd2luZG93LW9uZXJyb3I4LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li4xM2YyYjMyNzc2NjNhYmUxNTZjZDU2OGMwYTkxYTRkMzg4NmExNGIwCi0tLSAvZGV2L251bGwK
KysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vZmFzdC9ldmVudHMvd2luZG93LW9u
ZXJyb3I4LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDUgQEAKK1Rlc3QgdGhhdCB3aW5kb3cub25l
cnJvciBpcyBjYWxsZWQgb24gd2luZG93IG9iamVjdC4gQnVnIDg1MTkuDQorDQorTWFpbiBmcmFt
ZSB3aW5kb3cub25lcnJvcjogVW5jYXVnaHQgMjAxMCBhdCB3aW5kb3ctb25lcnJvcjguaHRtbDoy
NA0KK1BBU1NFRDogdGhpcyA9PT0gd2luZG93DQorDQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
cGxhdGZvcm0vY2hyb21pdW0vZmFzdC9ldmVudHMvd2luZG93LW9uZXJyb3I5LWV4cGVjdGVkLnR4
dCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL2Zhc3QvZXZlbnRzL3dpbmRvdy1vbmVy
cm9yOS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMTY3N2U1MDIwZDA4ZWI3NWE1MDNiMzQ2YmQ5
M2NkZmM3YjBlYTc2OQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2No
cm9taXVtL2Zhc3QvZXZlbnRzL3dpbmRvdy1vbmVycm9yOS1leHBlY3RlZC50eHQKQEAgLTAsMCAr
MSw4IEBACitUZXN0IHRoYXQgd2hlbiB3aW5kb3cub25lcnJvciBoYW5kbGVyIGlzIGNhbGxlZCwg
d2luZG93LmV2ZW50IGlzIHRoZSBjb3JyZXNwb25kaW5nIEVycm9yRXZlbnQgb2JqZWN0LiBCdWcg
ODUxOS4NCisNCitNYWluIGZyYW1lIHdpbmRvdy5vbmVycm9yOiBVbmNhdWdodCBFcnJvcjogMjAx
MCBhdCB3aW5kb3ctb25lcnJvcjkuaHRtbDozMQ0KK3dpbmRvdy5ldmVudC50eXBlID0gZXJyb3IN
Cit3aW5kb3cuZXZlbnQubWVzc2FnZSA9IFVuY2F1Z2h0IEVycm9yOiAyMDEwDQord2luZG93LmV2
ZW50LmZpbGVuYW1lID0gd2luZG93LW9uZXJyb3I5Lmh0bWwNCit3aW5kb3cuZXZlbnQubGluZW5v
ID0gMzENCisNCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS9odHRw
L3Rlc3RzL3NlY3VyaXR5L3dpbmRvdy1vbmVycm9yLWV4Y2VwdGlvbi1pbi1pZnJhbWUtZXhwZWN0
ZWQudHh0IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vaHR0cC90ZXN0cy9zZWN1cml0
eS93aW5kb3ctb25lcnJvci1leGNlcHRpb24taW4taWZyYW1lLWV4cGVjdGVkLnR4dApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi45ZTljMmVhNGJiNGI4OTFjMDc1MmQyODYzODQ2NDBjMTBlODc5MjFmCi0tLSAvZGV2L251
bGwKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vaHR0cC90ZXN0cy9zZWN1cml0
eS93aW5kb3ctb25lcnJvci1leGNlcHRpb24taW4taWZyYW1lLWV4cGVjdGVkLnR4dApAQCAtMCww
ICsxLDYgQEAKK0NPTlNPTEUgTUVTU0FHRTogbGluZSA3OiBVbmNhdWdodCBJZnJhbWVFeGNlcHRp
b24NCitUZXN0IHRoYXQgZXhjZXB0aW9ucyBpbiBpZnJhbWUgYXJlIG5vdCByZXBvcnRlZCB0byB0
aGUgbWFpbiBmcmFtZSB3aW5kb3cub25lcnJvciBoYW5kbGVyLiB3aW5kb3cub25lcnJvciBzaG91
bGQgcHJpbnQgZXhhY3RseSBvbmUgbGluZS4NCisNCitNYWluIGZyYW1lIHdpbmRvdy5vbmVycm9y
OiBVbmNhdWdodCBNYWluRnJhbWVFeGNlcHRpb24gYXQgd2luZG93LW9uZXJyb3ItZXhjZXB0aW9u
LWluLWlmcmFtZS5odG1sOjM0DQorRE9ORQ0KKw0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3Bs
YXRmb3JtL2Nocm9taXVtL3VzZXJzY3JpcHRzL3dpbmRvdy1vbmVycm9yLWZvci1pc29sYXRlZC13
b3JsZC0xLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL3VzZXJz
Y3JpcHRzL3dpbmRvdy1vbmVycm9yLWZvci1pc29sYXRlZC13b3JsZC0xLWV4cGVjdGVkLnR4dApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi4yYTNkMDY4MDBmNTI1YzRmYjc0ZWZmODE4ZTM3ZGVkMmIxOGQ5M2U5Ci0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vdXNlcnNjcmlwdHMv
d2luZG93LW9uZXJyb3ItZm9yLWlzb2xhdGVkLXdvcmxkLTEtZXhwZWN0ZWQudHh0CkBAIC0wLDAg
KzEsMTQgQEAKK1Rlc3QgdGhhdCB3aW5kb3cub25lcnJvciBhbmQgImVycm9yIiBldmVudCBsaXN0
ZW5lcnMgZnJvbSBtYWluIHdvcmxkIGFyZSBpbnZva2VkIGZvciB1bmNhdWdodCBleGNlcHRpb25z
IGluIHVzZXIgc2NyaXB0cyBydW5uaW5nIGluIGlzb2xhdGUgd29ybGRzIGFzIHdlbGwgYXMgZm9y
IGV4Y2VwdGlvbnMgaW4gdGhlIG1haW4gd29ybGQuQnVnIDg1MTkuDQorDQorTWFpbiB3b3JsZCB3
aW5kb3cub25lcnJvcjogVW5jYXVnaHQgRXJyb3I6IEVycm9yIGluIG1haW4gd29ybGQgaW5saW5l
IHNjcmlwdC4gYXQgd2luZG93LW9uZXJyb3ItZm9yLWlzb2xhdGVkLXdvcmxkLTEuaHRtbDo1NA0K
K01haW4gd29ybGQgZXJyb3IgZXZlbnQgbGlzdGVuZXI6IFVuY2F1Z2h0IEVycm9yOiBFcnJvciBp
biBtYWluIHdvcmxkIGlubGluZSBzY3JpcHQuIGF0IHdpbmRvdy1vbmVycm9yLWZvci1pc29sYXRl
ZC13b3JsZC0xLmh0bWw6NTQNCitNYWluIHdvcmxkIHdpbmRvdy5vbmVycm9yOiBVbmNhdWdodCBF
cnJvcjogRXJyb3IgaW4gdXNlciBzY3JpcHQgaW5saW5lIHNjcmlwdC4gYXQgOjEyDQorTWFpbiB3
b3JsZCBlcnJvciBldmVudCBsaXN0ZW5lcjogVW5jYXVnaHQgRXJyb3I6IEVycm9yIGluIHVzZXIg
c2NyaXB0IGlubGluZSBzY3JpcHQuIGF0IDoxMg0KK01haW4gd29ybGQgd2luZG93Lm9uZXJyb3I6
IFVuY2F1Z2h0IEVycm9yOiBFcnJvciBpbiBtYWluIHdvcmxkIGxvYWQgaGFuZGxlci4gYXQgd2lu
ZG93LW9uZXJyb3ItZm9yLWlzb2xhdGVkLXdvcmxkLTEuaHRtbDo0Ng0KK01haW4gd29ybGQgZXJy
b3IgZXZlbnQgbGlzdGVuZXI6IFVuY2F1Z2h0IEVycm9yOiBFcnJvciBpbiBtYWluIHdvcmxkIGxv
YWQgaGFuZGxlci4gYXQgd2luZG93LW9uZXJyb3ItZm9yLWlzb2xhdGVkLXdvcmxkLTEuaHRtbDo0
Ng0KK01haW4gd29ybGQgd2luZG93Lm9uZXJyb3I6IFVuY2F1Z2h0IEVycm9yOiBFcnJvciBpbiB1
c2VyIHNjcmlwdCBsb2FkIGhhbmRsZXIuIGF0IDo0DQorTWFpbiB3b3JsZCBlcnJvciBldmVudCBs
aXN0ZW5lcjogVW5jYXVnaHQgRXJyb3I6IEVycm9yIGluIHVzZXIgc2NyaXB0IGxvYWQgaGFuZGxl
ci4gYXQgOjQNCitNYWluIHdvcmxkIHdpbmRvdy5vbmVycm9yOiBVbmNhdWdodCBFcnJvcjogRXJy
b3IgaW4gbWFpbiB3b3JsZCBzZXRUaW1lb3V0IGNhbGxiYWNrLiBhdCB3aW5kb3ctb25lcnJvci1m
b3ItaXNvbGF0ZWQtd29ybGQtMS5odG1sOjUxDQorTWFpbiB3b3JsZCBlcnJvciBldmVudCBsaXN0
ZW5lcjogVW5jYXVnaHQgRXJyb3I6IEVycm9yIGluIG1haW4gd29ybGQgc2V0VGltZW91dCBjYWxs
YmFjay4gYXQgd2luZG93LW9uZXJyb3ItZm9yLWlzb2xhdGVkLXdvcmxkLTEuaHRtbDo1MQ0KK01h
aW4gd29ybGQgd2luZG93Lm9uZXJyb3I6IFVuY2F1Z2h0IEVycm9yOiBFcnJvciBpbiB1c2VyIHNj
cmlwdCBzZXRUaW1lb3V0IGNhbGxiYWNrLiBhdCA6OQ0KK01haW4gd29ybGQgZXJyb3IgZXZlbnQg
bGlzdGVuZXI6IFVuY2F1Z2h0IEVycm9yOiBFcnJvciBpbiB1c2VyIHNjcmlwdCBzZXRUaW1lb3V0
IGNhbGxiYWNrLiBhdCA6OQ0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9t
aXVtL3VzZXJzY3JpcHRzL3dpbmRvdy1vbmVycm9yLWZvci1pc29sYXRlZC13b3JsZC0yLWV4cGVj
dGVkLnR4dCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL3VzZXJzY3JpcHRzL3dpbmRv
dy1vbmVycm9yLWZvci1pc29sYXRlZC13b3JsZC0yLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45
Mzk5NGRiMTJjYjA4YmRmMTY0ZDkwMThhZDQ2MDU0YjBhNDUxOTBjCi0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vdXNlcnNjcmlwdHMvd2luZG93LW9uZXJy
b3ItZm9yLWlzb2xhdGVkLXdvcmxkLTItZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTMgQEAKK0NP
TlNPTEUgTUVTU0FHRTogbGluZSAzMDogVW5jYXVnaHQgRXJyb3I6IEVycm9yIGluIG1haW4gd29y
bGQgaW5saW5lIHNjcmlwdC4NCitUZXN0IHRoYXQgd2luZG93Lm9uZXJyb3IgYW5kICJlcnJvciIg
ZXZlbnQgbGlzdGVuZXJzIGZyb20gaXNvbGF0ZWQgd29ybGQgYXJlIGludm9rZWQgZm9yIHVuY2F1
Z2h0IGV4Y2VwdGlvbnMgaW4gdXNlciBzY3JpcHRzIHJ1bm5pbmcgaW4gaXNvbGF0ZSB3b3JsZHMg
YXMgd2VsbCBhcyBmb3IgZXhjZXB0aW9ucyBpbiB0aGUgbWFpbiB3b3JsZC5CdWcgODUxOS4NCisN
Cit1c2VyIHNjcmlwdCB3aW5kb3cub25lcnJvcjogVW5jYXVnaHQgRXJyb3I6IEVycm9yIGluIHVz
ZXIgc2NyaXB0IGlubGluZSBzY3JpcHQuIGF0IDozMw0KK3VzZXIgc2NyaXB0IGVycm9yIGV2ZW50
IGxpc3RlbmVyOiBVbmNhdWdodCBFcnJvcjogRXJyb3IgaW4gdXNlciBzY3JpcHQgaW5saW5lIHNj
cmlwdC4gYXQgOjMzDQordXNlciBzY3JpcHQgd2luZG93Lm9uZXJyb3I6IFVuY2F1Z2h0IEVycm9y
OiBFcnJvciBpbiBtYWluIHdvcmxkIGxvYWQgaGFuZGxlci4gYXQgd2luZG93LW9uZXJyb3ItZm9y
LWlzb2xhdGVkLXdvcmxkLTIuaHRtbDoyMw0KK3VzZXIgc2NyaXB0IGVycm9yIGV2ZW50IGxpc3Rl
bmVyOiBVbmNhdWdodCBFcnJvcjogRXJyb3IgaW4gbWFpbiB3b3JsZCBsb2FkIGhhbmRsZXIuIGF0
IHdpbmRvdy1vbmVycm9yLWZvci1pc29sYXRlZC13b3JsZC0yLmh0bWw6MjMNCit1c2VyIHNjcmlw
dCB3aW5kb3cub25lcnJvcjogVW5jYXVnaHQgRXJyb3I6IEVycm9yIGluIHVzZXIgc2NyaXB0IGxv
YWQgaGFuZGxlci4gYXQgOjI2DQordXNlciBzY3JpcHQgZXJyb3IgZXZlbnQgbGlzdGVuZXI6IFVu
Y2F1Z2h0IEVycm9yOiBFcnJvciBpbiB1c2VyIHNjcmlwdCBsb2FkIGhhbmRsZXIuIGF0IDoyNg0K
K3VzZXIgc2NyaXB0IHdpbmRvdy5vbmVycm9yOiBVbmNhdWdodCBFcnJvcjogRXJyb3IgaW4gbWFp
biB3b3JsZCBzZXRUaW1lb3V0IGNhbGxiYWNrLiBhdCB3aW5kb3ctb25lcnJvci1mb3ItaXNvbGF0
ZWQtd29ybGQtMi5odG1sOjI3DQordXNlciBzY3JpcHQgZXJyb3IgZXZlbnQgbGlzdGVuZXI6IFVu
Y2F1Z2h0IEVycm9yOiBFcnJvciBpbiBtYWluIHdvcmxkIHNldFRpbWVvdXQgY2FsbGJhY2suIGF0
IHdpbmRvdy1vbmVycm9yLWZvci1pc29sYXRlZC13b3JsZC0yLmh0bWw6MjcNCit1c2VyIHNjcmlw
dCB3aW5kb3cub25lcnJvcjogVW5jYXVnaHQgRXJyb3I6IEVycm9yIGluIHVzZXIgc2NyaXB0IHNl
dFRpbWVvdXQgY2FsbGJhY2suIGF0IDozMA0KK3VzZXIgc2NyaXB0IGVycm9yIGV2ZW50IGxpc3Rl
bmVyOiBVbmNhdWdodCBFcnJvcjogRXJyb3IgaW4gdXNlciBzY3JpcHQgc2V0VGltZW91dCBjYWxs
YmFjay4gYXQgOjMwDQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvdXNlcnNjcmlwdHMvd2luZG93
LW9uZXJyb3ItZm9yLWlzb2xhdGVkLXdvcmxkLTEtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMv
dXNlcnNjcmlwdHMvd2luZG93LW9uZXJyb3ItZm9yLWlzb2xhdGVkLXdvcmxkLTEtZXhwZWN0ZWQu
dHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjY4OTVjNDEyZTY0YTRjOWNjOGJlZWMxYWEyYjgyMTk5YzUwYjE1MzkK
LS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy91c2Vyc2NyaXB0cy93aW5kb3ctb25lcnJv
ci1mb3ItaXNvbGF0ZWQtd29ybGQtMS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxNCBAQAorVGVz
dCB0aGF0IHdpbmRvdy5vbmVycm9yIGFuZCAiZXJyb3IiIGV2ZW50IGxpc3RlbmVycyBmcm9tIG1h
aW4gd29ybGQgYXJlIGludm9rZWQgZm9yIHVuY2F1Z2h0IGV4Y2VwdGlvbnMgaW4gdXNlciBzY3Jp
cHRzIHJ1bm5pbmcgaW4gaXNvbGF0ZSB3b3JsZHMgYXMgd2VsbCBhcyBmb3IgZXhjZXB0aW9ucyBp
biB0aGUgbWFpbiB3b3JsZC5CdWcgODUxOS4KKworTWFpbiB3b3JsZCB3aW5kb3cub25lcnJvcjog
RXJyb3I6IEVycm9yIGluIG1haW4gd29ybGQgaW5saW5lIHNjcmlwdC4gYXQgd2luZG93LW9uZXJy
b3ItZm9yLWlzb2xhdGVkLXdvcmxkLTEuaHRtbDo1NAorTWFpbiB3b3JsZCBlcnJvciBldmVudCBs
aXN0ZW5lcjogRXJyb3I6IEVycm9yIGluIG1haW4gd29ybGQgaW5saW5lIHNjcmlwdC4gYXQgd2lu
ZG93LW9uZXJyb3ItZm9yLWlzb2xhdGVkLXdvcmxkLTEuaHRtbDo1NAorTWFpbiB3b3JsZCB3aW5k
b3cub25lcnJvcjogRXJyb3I6IEVycm9yIGluIHVzZXIgc2NyaXB0IGlubGluZSBzY3JpcHQuIGF0
IHVuZGVmaW5lZDoxMQorTWFpbiB3b3JsZCBlcnJvciBldmVudCBsaXN0ZW5lcjogRXJyb3I6IEVy
cm9yIGluIHVzZXIgc2NyaXB0IGlubGluZSBzY3JpcHQuIGF0IHVuZGVmaW5lZDoxMQorTWFpbiB3
b3JsZCB3aW5kb3cub25lcnJvcjogRXJyb3I6IEVycm9yIGluIG1haW4gd29ybGQgbG9hZCBoYW5k
bGVyLiBhdCB3aW5kb3ctb25lcnJvci1mb3ItaXNvbGF0ZWQtd29ybGQtMS5odG1sOjQ2CitNYWlu
IHdvcmxkIGVycm9yIGV2ZW50IGxpc3RlbmVyOiBFcnJvcjogRXJyb3IgaW4gbWFpbiB3b3JsZCBs
b2FkIGhhbmRsZXIuIGF0IHdpbmRvdy1vbmVycm9yLWZvci1pc29sYXRlZC13b3JsZC0xLmh0bWw6
NDYKK01haW4gd29ybGQgd2luZG93Lm9uZXJyb3I6IEVycm9yOiBFcnJvciBpbiB1c2VyIHNjcmlw
dCBsb2FkIGhhbmRsZXIuIGF0IHVuZGVmaW5lZDozCitNYWluIHdvcmxkIGVycm9yIGV2ZW50IGxp
c3RlbmVyOiBFcnJvcjogRXJyb3IgaW4gdXNlciBzY3JpcHQgbG9hZCBoYW5kbGVyLiBhdCB1bmRl
ZmluZWQ6MworTWFpbiB3b3JsZCB3aW5kb3cub25lcnJvcjogRXJyb3I6IEVycm9yIGluIG1haW4g
d29ybGQgc2V0VGltZW91dCBjYWxsYmFjay4gYXQgd2luZG93LW9uZXJyb3ItZm9yLWlzb2xhdGVk
LXdvcmxkLTEuaHRtbDo1MQorTWFpbiB3b3JsZCBlcnJvciBldmVudCBsaXN0ZW5lcjogRXJyb3I6
IEVycm9yIGluIG1haW4gd29ybGQgc2V0VGltZW91dCBjYWxsYmFjay4gYXQgd2luZG93LW9uZXJy
b3ItZm9yLWlzb2xhdGVkLXdvcmxkLTEuaHRtbDo1MQorTWFpbiB3b3JsZCB3aW5kb3cub25lcnJv
cjogRXJyb3I6IEVycm9yIGluIHVzZXIgc2NyaXB0IHNldFRpbWVvdXQgY2FsbGJhY2suIGF0IHVu
ZGVmaW5lZDo4CitNYWluIHdvcmxkIGVycm9yIGV2ZW50IGxpc3RlbmVyOiBFcnJvcjogRXJyb3Ig
aW4gdXNlciBzY3JpcHQgc2V0VGltZW91dCBjYWxsYmFjay4gYXQgdW5kZWZpbmVkOjgKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL3VzZXJzY3JpcHRzL3dpbmRvdy1vbmVycm9yLWZvci1pc29sYXRl
ZC13b3JsZC0xLmh0bWwgYi9MYXlvdXRUZXN0cy91c2Vyc2NyaXB0cy93aW5kb3ctb25lcnJvci1m
b3ItaXNvbGF0ZWQtd29ybGQtMS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjNjNmJhYzIyODM1MmZiMmVmYjg4
NjQ0Y2IwYzUyNGJmNjllNmQ5MGIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy91c2Vy
c2NyaXB0cy93aW5kb3ctb25lcnJvci1mb3ItaXNvbGF0ZWQtd29ybGQtMS5odG1sCkBAIC0wLDAg
KzEsNjcgQEAKKzwhRE9DVFlQRSBIVE1MPgorPGh0bWw+Cis8aGVhZD4KKzwvaGVhZD4KKzxib2R5
PgorPHA+VGVzdCB0aGF0IHdpbmRvdy5vbmVycm9yIGFuZCAiZXJyb3IiIGV2ZW50IGxpc3RlbmVy
cyBmcm9tIG1haW4gd29ybGQgYXJlCitpbnZva2VkIGZvciB1bmNhdWdodCBleGNlcHRpb25zIGlu
IHVzZXIgc2NyaXB0cyBydW5uaW5nIGluIGlzb2xhdGUgd29ybGRzIGFzCit3ZWxsIGFzIGZvciBl
eGNlcHRpb25zIGluIHRoZSBtYWluIHdvcmxkLjxhIGhyZWY9Imh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD04NTE5Ij5CdWcgODUxOS48L2E+Cis8L3A+Cis8ZGl2IGlkPSJj
b25zb2xlIj48L2Rpdj4KKzxzY3JpcHQ+CisKK3ZhciBleHBlY3RlZFJlY29yZENvdW50ID0gMTI7
Cit2YXIgcmVjb3JkQ291bnQgPSAwOworZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNvbnNvbGUi
KS5hZGRFdmVudExpc3RlbmVyKCJET01Ob2RlSW5zZXJ0ZWQiLCBmdW5jdGlvbihlKSB7CisgICAg
cmVjb3JkQ291bnQrKzsKKyAgICBpZiAocmVjb3JkQ291bnQgPT09IGV4cGVjdGVkUmVjb3JkQ291
bnQgJiYgd2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQorICAgICAgICBsYXlvdXRUZXN0Q29u
dHJvbGxlci5ub3RpZnlEb25lKCk7Cit9LCBmYWxzZSk7CisKK2Z1bmN0aW9uIGxvZyhtc2cpIHsK
KyAgICB2YXIgcmVjb3JkID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7CisgICAgcmVj
b3JkLmlubmVySFRNTCA9IG1zZzsKKyAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY29uc29s
ZSIpLmFwcGVuZENoaWxkKHJlY29yZCk7Cit9CisKK2Z1bmN0aW9uIGxhc3RVcmxDb21wb25lbnQo
dXJsKSB7CisgICAgcmV0dXJuIHVybCA/IHVybC5tYXRjaCggL1teXC9dK1wvPyQvIClbMF0gOiB1
cmw7Cit9CisKK3dpbmRvdy5vbmVycm9yID0gZnVuY3Rpb24obXNnLCB1cmwsIGxpbmUpCit7Cisg
ICAgbG9nKCJNYWluIHdvcmxkIHdpbmRvdy5vbmVycm9yOiAiICsgbXNnICsgIiBhdCAiICsgbGFz
dFVybENvbXBvbmVudCh1cmwpICsgIjoiICsgbGluZSk7CisgICAgcmV0dXJuIGZhbHNlOworfQor
Cit3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigiZXJyb3IiLCBmdW5jdGlvbihlKQoreworICAgIHZh
ciB1cmwgPSBsYXN0VXJsQ29tcG9uZW50KGUuZmlsZW5hbWUpOworICAgIGxvZygiTWFpbiB3b3Js
ZCBlcnJvciBldmVudCBsaXN0ZW5lcjogIiArIGUubWVzc2FnZSArICIgYXQgIiArIHVybCArICI6
IiArIGUubGluZW5vKTsKK30sIGZhbHNlKTsKKwordmFyIGV4Y2VwdGlvbnMgPSBmdW5jdGlvbihp
c29sYXRlZFdvcmxkKQoreworICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJsb2FkIiwgZnVu
Y3Rpb24oZSkgeworICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIkVycm9yIGluICIgKyBpc29sYXRl
ZFdvcmxkICsgIiBsb2FkIGhhbmRsZXIuIik7CisgICAgfSwgZmFsc2UpOworCisKKyAgICBzZXRU
aW1lb3V0KGZ1bmN0aW9uKCkgeworICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIkVycm9yIGluICIg
KyBpc29sYXRlZFdvcmxkICsgIiBzZXRUaW1lb3V0IGNhbGxiYWNrLiIpOworICAgIH0sIDApOwor
CisgICAgdGhyb3cgbmV3IEVycm9yKCJFcnJvciBpbiAiKyBpc29sYXRlZFdvcmxkICsgIiBpbmxp
bmUgc2NyaXB0LiIpOworfQorCitpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKSB7Cisg
ICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOworICAgIGxheW91dFRlc3RDb250
cm9sbGVyLndhaXRVbnRpbERvbmUoKTsKKyAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5hZGRVc2Vy
U2NyaXB0KCIoIiArIGV4Y2VwdGlvbnMgKyAiKSgndXNlciBzY3JpcHQnKSIsIGZhbHNlLCB0cnVl
KTsKK30KKworZXhjZXB0aW9ucygibWFpbiB3b3JsZCIpOworCis8L3NjcmlwdD4KKzwvYm9keT4K
KzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3VzZXJzY3JpcHRzL3dpbmRvdy1vbmVy
cm9yLWZvci1pc29sYXRlZC13b3JsZC0yLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3VzZXJz
Y3JpcHRzL3dpbmRvdy1vbmVycm9yLWZvci1pc29sYXRlZC13b3JsZC0yLWV4cGVjdGVkLnR4dApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi5iOTA5YTk5NzViZmZhNjEyNzBmYmU0OGZmNTRmNDhiNzlhMjg5YTJkCi0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvdXNlcnNjcmlwdHMvd2luZG93LW9uZXJyb3ItZm9y
LWlzb2xhdGVkLXdvcmxkLTItZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTMgQEAKK0NPTlNPTEUg
TUVTU0FHRTogbGluZSAzMDogRXJyb3I6IEVycm9yIGluIG1haW4gd29ybGQgaW5saW5lIHNjcmlw
dC4KK1Rlc3QgdGhhdCB3aW5kb3cub25lcnJvciBhbmQgImVycm9yIiBldmVudCBsaXN0ZW5lcnMg
ZnJvbSBpc29sYXRlZCB3b3JsZCBhcmUgaW52b2tlZCBmb3IgdW5jYXVnaHQgZXhjZXB0aW9ucyBp
biB1c2VyIHNjcmlwdHMgcnVubmluZyBpbiBpc29sYXRlIHdvcmxkcyBhcyB3ZWxsIGFzIGZvciBl
eGNlcHRpb25zIGluIHRoZSBtYWluIHdvcmxkLkJ1ZyA4NTE5LgorCit1c2VyIHNjcmlwdCB3aW5k
b3cub25lcnJvcjogRXJyb3I6IEVycm9yIGluIHVzZXIgc2NyaXB0IGlubGluZSBzY3JpcHQuIGF0
IHVuZGVmaW5lZDozMQordXNlciBzY3JpcHQgZXJyb3IgZXZlbnQgbGlzdGVuZXI6IEVycm9yOiBF
cnJvciBpbiB1c2VyIHNjcmlwdCBpbmxpbmUgc2NyaXB0LiBhdCB1bmRlZmluZWQ6MzEKK3VzZXIg
c2NyaXB0IHdpbmRvdy5vbmVycm9yOiBFcnJvcjogRXJyb3IgaW4gbWFpbiB3b3JsZCBsb2FkIGhh
bmRsZXIuIGF0IHdpbmRvdy1vbmVycm9yLWZvci1pc29sYXRlZC13b3JsZC0yLmh0bWw6MjMKK3Vz
ZXIgc2NyaXB0IGVycm9yIGV2ZW50IGxpc3RlbmVyOiBFcnJvcjogRXJyb3IgaW4gbWFpbiB3b3Js
ZCBsb2FkIGhhbmRsZXIuIGF0IHdpbmRvdy1vbmVycm9yLWZvci1pc29sYXRlZC13b3JsZC0yLmh0
bWw6MjMKK3VzZXIgc2NyaXB0IHdpbmRvdy5vbmVycm9yOiBFcnJvcjogRXJyb3IgaW4gdXNlciBz
Y3JpcHQgbG9hZCBoYW5kbGVyLiBhdCB1bmRlZmluZWQ6MjQKK3VzZXIgc2NyaXB0IGVycm9yIGV2
ZW50IGxpc3RlbmVyOiBFcnJvcjogRXJyb3IgaW4gdXNlciBzY3JpcHQgbG9hZCBoYW5kbGVyLiBh
dCB1bmRlZmluZWQ6MjQKK3VzZXIgc2NyaXB0IHdpbmRvdy5vbmVycm9yOiBFcnJvcjogRXJyb3Ig
aW4gbWFpbiB3b3JsZCBzZXRUaW1lb3V0IGNhbGxiYWNrLiBhdCB3aW5kb3ctb25lcnJvci1mb3It
aXNvbGF0ZWQtd29ybGQtMi5odG1sOjI3Cit1c2VyIHNjcmlwdCBlcnJvciBldmVudCBsaXN0ZW5l
cjogRXJyb3I6IEVycm9yIGluIG1haW4gd29ybGQgc2V0VGltZW91dCBjYWxsYmFjay4gYXQgd2lu
ZG93LW9uZXJyb3ItZm9yLWlzb2xhdGVkLXdvcmxkLTIuaHRtbDoyNwordXNlciBzY3JpcHQgd2lu
ZG93Lm9uZXJyb3I6IEVycm9yOiBFcnJvciBpbiB1c2VyIHNjcmlwdCBzZXRUaW1lb3V0IGNhbGxi
YWNrLiBhdCB1bmRlZmluZWQ6MjgKK3VzZXIgc2NyaXB0IGVycm9yIGV2ZW50IGxpc3RlbmVyOiBF
cnJvcjogRXJyb3IgaW4gdXNlciBzY3JpcHQgc2V0VGltZW91dCBjYWxsYmFjay4gYXQgdW5kZWZp
bmVkOjI4CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy91c2Vyc2NyaXB0cy93aW5kb3ctb25lcnJv
ci1mb3ItaXNvbGF0ZWQtd29ybGQtMi5odG1sIGIvTGF5b3V0VGVzdHMvdXNlcnNjcmlwdHMvd2lu
ZG93LW9uZXJyb3ItZm9yLWlzb2xhdGVkLXdvcmxkLTIuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5hNmVjNjk5
ZjhjNjBiYjUyNGQ5MTQ0OGI1N2FkNzMyYWNkYWMwOTExCi0tLSAvZGV2L251bGwKKysrIGIvTGF5
b3V0VGVzdHMvdXNlcnNjcmlwdHMvd2luZG93LW9uZXJyb3ItZm9yLWlzb2xhdGVkLXdvcmxkLTIu
aHRtbApAQCAtMCwwICsxLDY3IEBACis8IURPQ1RZUEUgSFRNTD4KKzxodG1sPgorPGhlYWQ+Cis8
L2hlYWQ+Cis8Ym9keT4KKzxwPlRlc3QgdGhhdCB3aW5kb3cub25lcnJvciBhbmQgImVycm9yIiBl
dmVudCBsaXN0ZW5lcnMgZnJvbSBpc29sYXRlZCB3b3JsZCBhcmUKK2ludm9rZWQgZm9yIHVuY2F1
Z2h0IGV4Y2VwdGlvbnMgaW4gdXNlciBzY3JpcHRzIHJ1bm5pbmcgaW4gaXNvbGF0ZSB3b3JsZHMg
YXMKK3dlbGwgYXMgZm9yIGV4Y2VwdGlvbnMgaW4gdGhlIG1haW4gd29ybGQuPGEgaHJlZj0iaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTg1MTkiPkJ1ZyA4NTE5LjwvYT4K
KzwvcD4KKzxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgorPHNjcmlwdD4KKwordmFyIGV4cGVjdGVk
UmVjb3JkQ291bnQgPSAxMDsKK3ZhciByZWNvcmRDb3VudCA9IDA7Citkb2N1bWVudC5nZXRFbGVt
ZW50QnlJZCgiY29uc29sZSIpLmFkZEV2ZW50TGlzdGVuZXIoIkRPTU5vZGVJbnNlcnRlZCIsIGZ1
bmN0aW9uKGUpIHsKKyAgICBpZiAoKytyZWNvcmRDb3VudCA9PT0gZXhwZWN0ZWRSZWNvcmRDb3Vu
dCAmJiB3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCisgICAgICAgIGxheW91dFRlc3RDb250
cm9sbGVyLm5vdGlmeURvbmUoKTsKK30sIGZhbHNlKTsKKwordmFyIHRocm93RXhjZXB0aW9ucyA9
IGZ1bmN0aW9uKGlzb2xhdGVkV29ybGQpCit7CisgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIo
ImxvYWQiLCBmdW5jdGlvbihlKSB7CisgICAgICAgIHRocm93IG5ldyBFcnJvcigiRXJyb3IgaW4g
IiArIGlzb2xhdGVkV29ybGQgKyAiIGxvYWQgaGFuZGxlci4iKTsKKyAgICB9LCBmYWxzZSk7CisK
KyAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uKCkgeworICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIkVy
cm9yIGluICIgKyBpc29sYXRlZFdvcmxkICsgIiBzZXRUaW1lb3V0IGNhbGxiYWNrLiIpOworICAg
IH0sIDApOworICAgIAorICAgIHRocm93IG5ldyBFcnJvcigiRXJyb3IgaW4gIisgaXNvbGF0ZWRX
b3JsZCArICIgaW5saW5lIHNjcmlwdC4iKTsKK307CisKK3ZhciBlcnJvckhhbmRsZXJzID0gZnVu
Y3Rpb24oaXNvbGF0ZWRXb3JsZCkKK3sKKyAgICBmdW5jdGlvbiBsYXN0VXJsQ29tcG9uZW50KHVy
bCkgeworICAgICAgICByZXR1cm4gdXJsID8gdXJsLm1hdGNoKCAvW15cL10rXC8/JC8gKVswXSA6
IHVybDsKKyAgICB9CisKKyAgICBmdW5jdGlvbiBsb2cobXNnKSB7CisgICAgICAgIHZhciByZWNv
cmQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTsKKyAgICAgICAgcmVjb3JkLmlubmVy
SFRNTCA9IG1zZzsKKyAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNvbnNvbGUiKS5h
cHBlbmRDaGlsZChyZWNvcmQpOworICAgIH0KKworICAgIHdpbmRvdy5vbmVycm9yID0gZnVuY3Rp
b24obXNnLCB1cmwsIGxpbmUpIHsKKyAgICAgICAgbG9nKGlzb2xhdGVkV29ybGQgKyAiIHdpbmRv
dy5vbmVycm9yOiAiICsgbXNnICsgIiBhdCAiICsgbGFzdFVybENvbXBvbmVudCh1cmwpICsgIjoi
ICsgbGluZSwgIioiKTsKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KKworICAgIHdpbmRv
dy5hZGRFdmVudExpc3RlbmVyKCJlcnJvciIsIGZ1bmN0aW9uKGUpIHsKKyAgICAgICAgdmFyIHVy
bCA9IGxhc3RVcmxDb21wb25lbnQoZS5maWxlbmFtZSk7CisgICAgICAgIGxvZyhpc29sYXRlZFdv
cmxkICsgIiBlcnJvciBldmVudCBsaXN0ZW5lcjogIiArIGUubWVzc2FnZSArICIgYXQgIiArIHVy
bCArICI6IiArIGUubGluZW5vLCAiKiIpOworICAgICAgICBlLnByZXZlbnREZWZhdWx0KCk7Cisg
ICAgfSwgZmFsc2UpOworfTsKKworaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikgewor
ICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKKyAgICBsYXlvdXRUZXN0Q29u
dHJvbGxlci53YWl0VW50aWxEb25lKCk7CisgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuYWRkVXNl
clNjcmlwdCgiKCIgKyBlcnJvckhhbmRsZXJzICsgIikoJ3VzZXIgc2NyaXB0Jyk7ICgiICsgdGhy
b3dFeGNlcHRpb25zICsgIikoJ3VzZXIgc2NyaXB0JykiLCBmYWxzZSwgdHJ1ZSk7Cit9CisKK3Ro
cm93RXhjZXB0aW9ucygibWFpbiB3b3JsZCIpOworCis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRt
bD4KZGlmZiAtLWdpdCBhL1dlYkNvcmUvQW5kcm9pZC5qc2NiaW5kaW5ncy5tayBiL1dlYkNvcmUv
QW5kcm9pZC5qc2NiaW5kaW5ncy5tawppbmRleCA2NTNkZmVjZTdmNmE2ZTMxMDMzMjYzMjFkNzY0
ZDNlMjUwMGYwMWQ1Li5lN2ZkMmZjYzEyM2FjYzkyNmRjMDUyOGUzNzkzZGEyNGVkNjVhZTAxIDEw
MDY0NAotLS0gYS9XZWJDb3JlL0FuZHJvaWQuanNjYmluZGluZ3MubWsKKysrIGIvV2ViQ29yZS9B
bmRyb2lkLmpzY2JpbmRpbmdzLm1rCkBAIC0xMDIsNiArMTAyLDcgQEAgTE9DQUxfU1JDX0ZJTEVT
ICs9IFwKIAliaW5kaW5ncy9qcy9KU0RldmljZU9yaWVudGF0aW9uRXZlbnRDdXN0b20uY3BwIFwK
IAliaW5kaW5ncy9qcy9KU0RvY3VtZW50Q3VzdG9tLmNwcCBcCiAJYmluZGluZ3MvanMvSlNFbGVt
ZW50Q3VzdG9tLmNwcCBcCisJYmluZGluZ3MvanMvSlNFcnJvckhhbmRsZXIuY3BwIFwKIAliaW5k
aW5ncy9qcy9KU0V2ZW50Q3VzdG9tLmNwcCBcCiAJYmluZGluZ3MvanMvSlNFdmVudExpc3RlbmVy
LmNwcCBcCiAJYmluZGluZ3MvanMvSlNFdmVudFRhcmdldC5jcHAgXApAQCAtMTcwLDcgKzE3MSw2
IEBAIExPQ0FMX1NSQ19GSUxFUyArPSBcCiAJYmluZGluZ3MvanMvSlNXZWJLaXRQb2ludEN1c3Rv
bS5jcHAgXAogCWJpbmRpbmdzL2pzL0pTV29ya2VyQ29udGV4dEJhc2UuY3BwIFwKIAliaW5kaW5n
cy9qcy9KU1dvcmtlckNvbnRleHRDdXN0b20uY3BwIFwKLQliaW5kaW5ncy9qcy9KU1dvcmtlckNv
bnRleHRFcnJvckhhbmRsZXIuY3BwIFwKIAliaW5kaW5ncy9qcy9KU1dvcmtlckN1c3RvbS5jcHAg
XAogCWJpbmRpbmdzL2pzL0pTWE1MSHR0cFJlcXVlc3RDdXN0b20uY3BwIFwKIAliaW5kaW5ncy9q
cy9KU1hNTEh0dHBSZXF1ZXN0VXBsb2FkQ3VzdG9tLmNwcCBcCmRpZmYgLS1naXQgYS9XZWJDb3Jl
L0NNYWtlTGlzdHMudHh0IGIvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAppbmRleCBhNGE2ODU5MTZj
YmRhOTk4NzM3NmY5NTgyN2VhMWQwMDMxNWY3OGViLi4zZDIzNmNlNmUwNzIxY2U2YjcwZjhhZmRk
ZjRhYmJiNmIxYjc2MjRiIDEwMDY0NAotLS0gYS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CisrKyBi
L1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKQEAgLTYyNCw2ICs2MjQsNyBAQCBTRVQoV2ViQ29yZV9T
T1VSQ0VTCiAgICAgYmluZGluZ3MvanMvSlNEZXZpY2VPcmllbnRhdGlvbkV2ZW50Q3VzdG9tLmNw
cAogICAgIGJpbmRpbmdzL2pzL0pTRG9jdW1lbnRDdXN0b20uY3BwCiAgICAgYmluZGluZ3MvanMv
SlNFbGVtZW50Q3VzdG9tLmNwcAorICAgIGJpbmRpbmdzL2pzL0pTRXJyb3JIYW5kbGVyLmNwcAog
ICAgIGJpbmRpbmdzL2pzL0pTRXZlbnRDdXN0b20uY3BwCiAgICAgYmluZGluZ3MvanMvSlNFdmVu
dExpc3RlbmVyLmNwcAogICAgIGJpbmRpbmdzL2pzL0pTRXZlbnRTb3VyY2VDdXN0b20uY3BwCkBA
IC02OTMsNyArNjk0LDYgQEAgU0VUKFdlYkNvcmVfU09VUkNFUwogICAgIGJpbmRpbmdzL2pzL0pT
V2ViU29ja2V0Q3VzdG9tLmNwcAogICAgIGJpbmRpbmdzL2pzL0pTV29ya2VyQ29udGV4dEJhc2Uu
Y3BwCiAgICAgYmluZGluZ3MvanMvSlNXb3JrZXJDb250ZXh0Q3VzdG9tLmNwcAotICAgIGJpbmRp
bmdzL2pzL0pTV29ya2VyQ29udGV4dEVycm9ySGFuZGxlci5jcHAKICAgICBiaW5kaW5ncy9qcy9K
U1dvcmtlckN1c3RvbS5jcHAKICAgICBiaW5kaW5ncy9qcy9KU1hNTEh0dHBSZXF1ZXN0Q3VzdG9t
LmNwcAogICAgIGJpbmRpbmdzL2pzL0pTWE1MSHR0cFJlcXVlc3RVcGxvYWRDdXN0b20uY3BwCmRp
ZmYgLS1naXQgYS9XZWJDb3JlL0NoYW5nZUxvZyBiL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IGFk
MGY1ZTNlMGY5YWExNmY0ZTQwYWQ5MjExZjJhNmQ2MWMwMWE0YjAuLjk3NjIyZWYzNzBjMTk2ZTU5
OTQ5ZTdjMDQxNzM5MGJmMDEyY2RiYjUgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvQ2hhbmdlTG9nCisr
KyBiL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsOTIgQEAKKzIwMTAtMTAtMTkgIGFsZXhA
d2Via2l0Lm9yZyAgPGFsZXhAd2Via2l0Lm9yZ0AyNjhmNDVjYy1jZDA5LTA0MTAtYWIzYy1kNTI2
OTFiNGRiZmM+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgV2ViQ29yZSBkb2Vzbid0IGZpcmUgd2luZG93Lm9uZXJyb3IgZXZlbnQgd2hlbiB1bmNhdWdo
dCBKYXZhU2NyaXB0IGV4Y2VwdGlvbnMgYXJlIHRocm93bgorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODUxOQorCisgICAgICAgIFVuY2F1Z2h0IGV4Y2Vw
dGlvbnMgYXJlIHByb3BhZ2F0ZWQgdG8gd2luZG93Lm9uZXJyb3IgaGFuZGVyIGlmIG9uZSBpcyBw
cmVzZW50LgorICAgICAgICBUaGUgaGFuZGxlciBpcyBleHBlY3RlZCB0byBiZSBhIGZ1bmN0aW9u
IGFjY2VwdGluZyB0aHJlZSBhcmd1bWVudHM6IGVycm9yIG1lc3NhZ2UsCisgICAgICAgIHJlc291
cmNlIHVybCBhbmQgbGluZSBudW1iZXIgd2hlcmUgdGhlIGV4Y2VwdGlvbiBvY2N1cmVkLgorCisg
ICAgICAgIEl0IHdhcyBkZWNpZGVkIHRvIGRpc3BhdGNoIEVycm9yRXZlbnQgdG8gYWxsIGxpc3Rl
bmVycy9oYW5kbGVycyBubyBtYXR0ZXIgaWYgdGhleQorICAgICAgICB3ZXJlIGNyZWF0ZWQgaW4g
dGhlIHNhbWUgaXNvbGF0ZWQgd29ybGQgd2hlcmUgdGhlIGV4Y2VwdGlvbiBvY2N1cmVkIG9yIG5v
dC4KKworICAgICAgICBUZXN0czogZmFzdC9ldmVudHMvd2luZG93LW9uZXJyb3IxLmh0bWwKKyAg
ICAgICAgICAgICAgIGZhc3QvZXZlbnRzL3dpbmRvdy1vbmVycm9yMTAuaHRtbAorICAgICAgICAg
ICAgICAgZmFzdC9ldmVudHMvd2luZG93LW9uZXJyb3IxMS5odG1sCisgICAgICAgICAgICAgICBm
YXN0L2V2ZW50cy93aW5kb3ctb25lcnJvcjIuaHRtbAorICAgICAgICAgICAgICAgZmFzdC9ldmVu
dHMvd2luZG93LW9uZXJyb3IzLmh0bWwKKyAgICAgICAgICAgICAgIGZhc3QvZXZlbnRzL3dpbmRv
dy1vbmVycm9yNC5odG1sCisgICAgICAgICAgICAgICBmYXN0L2V2ZW50cy93aW5kb3ctb25lcnJv
cjUuaHRtbAorICAgICAgICAgICAgICAgZmFzdC9ldmVudHMvd2luZG93LW9uZXJyb3I2Lmh0bWwK
KyAgICAgICAgICAgICAgIGZhc3QvZXZlbnRzL3dpbmRvdy1vbmVycm9yNy5odG1sCisgICAgICAg
ICAgICAgICBmYXN0L2V2ZW50cy93aW5kb3ctb25lcnJvcjguaHRtbAorICAgICAgICAgICAgICAg
ZmFzdC9ldmVudHMvd2luZG93LW9uZXJyb3I5Lmh0bWwKKyAgICAgICAgICAgICAgIGh0dHAvdGVz
dHMvc2VjdXJpdHkvd2luZG93LW9uZXJyb3ItZXhjZXB0aW9uLWluLWlmcmFtZS5odG1sCisgICAg
ICAgICAgICAgICB1c2Vyc2NyaXB0cy93aW5kb3ctb25lcnJvci1mb3ItaXNvbGF0ZWQtd29ybGQt
MS5odG1sCisgICAgICAgICAgICAgICB1c2Vyc2NyaXB0cy93aW5kb3ctb25lcnJvci1mb3ItaXNv
bGF0ZWQtd29ybGQtMi5odG1sCisKKyAgICAgICAgKiBBbmRyb2lkLmpzY2JpbmRpbmdzLm1rOgor
ICAgICAgICAqIENNYWtlTGlzdHMudHh0OgorICAgICAgICAqIEdOVW1ha2VmaWxlLmFtOgorICAg
ICAgICAqIFdlYkNvcmUuZ3lwaToKKyAgICAgICAgKiBXZWJDb3JlLm9yZGVyOgorICAgICAgICAq
IFdlYkNvcmUucHJvOgorICAgICAgICAqIFdlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qOgor
ICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBi
aW5kaW5ncy9qcy9KU0JpbmRpbmdzQWxsSW5PbmUuY3BwOgorICAgICAgICAqIGJpbmRpbmdzL2pz
L0pTRE9NQmluZGluZy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpyZXBvcnRFeGNlcHRpb24pOgor
ICAgICAgICAqIGJpbmRpbmdzL2pzL0pTRXJyb3JIYW5kbGVyLmNwcDogQWRkZWQuCisgICAgICAg
IChXZWJDb3JlOjpKU0Vycm9ySGFuZGxlcjo6SlNFcnJvckhhbmRsZXIpOgorICAgICAgICAoV2Vi
Q29yZTo6SlNFcnJvckhhbmRsZXI6On5KU0Vycm9ySGFuZGxlcik6CisgICAgICAgIChXZWJDb3Jl
OjpKU0Vycm9ySGFuZGxlcjo6aGFuZGxlRXZlbnQpOgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pT
RXJyb3JIYW5kbGVyLmg6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6SlNFcnJvckhhbmRsZXI6
OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpjcmVhdGVKU0Vycm9ySGFuZGxlcik6CisgICAg
ICAgICogYmluZGluZ3MvanMvSlNXb3JrZXJDb250ZXh0RXJyb3JIYW5kbGVyLmNwcDogUmVtb3Zl
ZC4KKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU1dvcmtlckNvbnRleHRFcnJvckhhbmRsZXIuaDog
UmVtb3ZlZC4gVGhpcyBjbGFzcyB3YXMgcmVmYWN0b3JlZCBpbnRvIG1vcmUgZ2VuZXJhbAorICAg
ICAgICBKU0Vycm9ySGFuZGxlciB0aGF0IHJlcHJlc2VudHMgZ2xvYmFsIG9uZXJybyBoYW5kZXIg
b24gV29ya2VyIENvbnRleHQgb3Igb24gRE9NV2luZG93LgorICAgICAgICAqIGJpbmRpbmdzL3Nj
cmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvQ29k
ZUdlbmVyYXRvclY4LnBtOgorICAgICAgICAqIGJpbmRpbmdzL3Y4L1Y4Q29uc29sZU1lc3NhZ2Uu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6VjhDb25zb2xlTWVzc2FnZTo6ZGlzcGF0Y2hOb3cpOgor
ICAgICAgICAoV2ViQ29yZTo6VjhDb25zb2xlTWVzc2FnZTo6aGFuZGxlcik6IHRoZSBtZXRob2Qg
d2FzIGNoYW5nZWQgdG8gdXNlIGdlbmVyaWMgV2ViQ29yZSBleGNlcHRpb24KKyAgICAgICAgcmVw
b3J0aW5nIG1lY2hhbmlzbSB3aGljaCBpcyBhbHNvIHVzZWQgYnkgSlNDIGJpbmRpbmdzLgorICAg
ICAgICAqIGJpbmRpbmdzL3Y4L1Y4Q29uc29sZU1lc3NhZ2UuaDoKKyAgICAgICAgKFdlYkNvcmU6
OlY4Q29uc29sZU1lc3NhZ2U6OlNjb3BlOjpTY29wZSk6CisgICAgICAgIChXZWJDb3JlOjpWOENv
bnNvbGVNZXNzYWdlOjpTY29wZTo6flNjb3BlKToKKyAgICAgICAgKiBiaW5kaW5ncy92OC9WOFdp
bmRvd0Vycm9ySGFuZGxlci5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6VjhXaW5kb3dF
cnJvckhhbmRsZXI6OlY4V2luZG93RXJyb3JIYW5kbGVyKToKKyAgICAgICAgKFdlYkNvcmU6OlY4
V2luZG93RXJyb3JIYW5kbGVyOjpjYWxsTGlzdGVuZXJGdW5jdGlvbik6CisgICAgICAgICogYmlu
ZGluZ3MvdjgvVjhXaW5kb3dFcnJvckhhbmRsZXIuaDogQWRkZWQuCisgICAgICAgIChXZWJDb3Jl
OjpWOFdpbmRvd0Vycm9ySGFuZGxlcjo6Y3JlYXRlKToKKyAgICAgICAgKiBiaW5kaW5ncy92OC9X
b3JrZXJDb250ZXh0RXhlY3V0aW9uUHJveHkuY3BwOgorICAgICAgICAoV2ViQ29yZTo6djhNZXNz
YWdlSGFuZGxlcik6CisgICAgICAgICogYmluZGluZ3MvdjgvV29ya2VyU2NyaXB0Q29udHJvbGxl
ci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpXb3JrZXJTY3JpcHRDb250cm9sbGVyOjpldmFsdWF0
ZSk6CisgICAgICAgICogZG9tL0RvY3VtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRvY3Vt
ZW50OjplcnJvckV2ZW50VGFyZ2V0KToKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50Ojpsb2dF
eGNlcHRpb25Ub0NvbnNvbGUpOgorICAgICAgICAqIGRvbS9Eb2N1bWVudC5oOgorICAgICAgICAq
IGRvbS9TY3JpcHRFeGVjdXRpb25Db250ZXh0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNjcmlw
dEV4ZWN1dGlvbkNvbnRleHQ6OlBlbmRpbmdFeGNlcHRpb246OlBlbmRpbmdFeGNlcHRpb24pOgor
ICAgICAgICAoV2ViQ29yZTo6U2NyaXB0RXhlY3V0aW9uQ29udGV4dDo6U2NyaXB0RXhlY3V0aW9u
Q29udGV4dCk6CisgICAgICAgIChXZWJDb3JlOjpTY3JpcHRFeGVjdXRpb25Db250ZXh0OjpyZXBv
cnRFeGNlcHRpb24pOiB0aGlzIG1ldGhvZCBpcyBub3QgdmlydHVhbCBhbnltb3JlIHRvCisgICAg
ICAgIGVuc3VyZSB0aGF0IGVycm9yIGV2ZW50IGRpc3BhdGNoaW5nIGFsZ29yaXRobSBpcyB0aGUg
c2FtZSBpbiBXb3JrZXJDb250ZXh0IGFuZCBpbiBEb2N1bWVudC4KKyAgICAgICAgKFdlYkNvcmU6
OlNjcmlwdEV4ZWN1dGlvbkNvbnRleHQ6OmRpc3BhdGNoRXJyb3JFdmVudCk6CisgICAgICAgICog
ZG9tL1NjcmlwdEV4ZWN1dGlvbkNvbnRleHQuaDoKKyAgICAgICAgKiB3b3JrZXJzL0RlZmF1bHRT
aGFyZWRXb3JrZXJSZXBvc2l0b3J5LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OnBvc3RFeGNlcHRp
b25UYXNrKToKKyAgICAgICAgKiB3b3JrZXJzL1dvcmtlckNvbnRleHQuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6V29ya2VyQ29udGV4dDo6V29ya2VyQ29udGV4dCk6CisgICAgICAgIChXZWJDb3Jl
OjpXb3JrZXJDb250ZXh0OjplcnJvckV2ZW50VGFyZ2V0KToKKyAgICAgICAgKFdlYkNvcmU6Oldv
cmtlckNvbnRleHQ6OmxvZ0V4Y2VwdGlvblRvQ29uc29sZSk6CisgICAgICAgICogd29ya2Vycy9X
b3JrZXJDb250ZXh0Lmg6CisgICAgICAgICogd29ya2Vycy9Xb3JrZXJNZXNzYWdpbmdQcm94eS5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpXb3JrZXJFeGNlcHRpb25UYXNrOjpwZXJmb3JtVGFzayk6
CisKIDIwMTAtMTItMDkgIFl1cnkgU2VtaWtoYXRza3kgIDx5dXJ5c0BjaHJvbWl1bS5vcmc+CiAK
ICAgICAgICAgUmV2aWV3ZWQgYnkgUGF2ZWwgRmVsZG1hbi4KZGlmZiAtLWdpdCBhL1dlYkNvcmUv
R05VbWFrZWZpbGUuYW0gYi9XZWJDb3JlL0dOVW1ha2VmaWxlLmFtCmluZGV4IGY0MTdhMjQzMDNl
NTc5MTA1YWQ0ZWVmOTk4NWY3MWZjZDg2YTdlZTcuLjE0MDUxMzJhZDdlM2Q3YzhkMzlmZTE0OTY2
MmZkMzdjYjM2NDA5NWYgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvR05VbWFrZWZpbGUuYW0KKysrIGIv
V2ViQ29yZS9HTlVtYWtlZmlsZS5hbQpAQCAtNzQ1LDYgKzc0NSw4IEBAIHdlYmNvcmVfc291cmNl
cyArPSBcCiAJV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0VsZW1lbnRDdXN0b20uY3BwIFwKIAlXZWJD
b3JlL2JpbmRpbmdzL2pzL0pTRW50cnlDdXN0b20uY3BwIFwKIAlXZWJDb3JlL2JpbmRpbmdzL2pz
L0pTRW50cnlTeW5jQ3VzdG9tLmNwcCBcCisJV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0Vycm9ySGFu
ZGxlci5jcHAgXAorCVdlYkNvcmUvYmluZGluZ3MvanMvSlNFcnJvckhhbmRsZXIuaCBcCiAJV2Vi
Q29yZS9iaW5kaW5ncy9qcy9KU0V2ZW50Q3VzdG9tLmNwcCBcCiAJV2ViQ29yZS9iaW5kaW5ncy9q
cy9KU0V2ZW50TGlzdGVuZXIuY3BwIFwKIAlXZWJDb3JlL2JpbmRpbmdzL2pzL0pTRXZlbnRMaXN0
ZW5lci5oIFwKQEAgLTg0Miw4ICs4NDQsNiBAQCB3ZWJjb3JlX3NvdXJjZXMgKz0gXAogCVdlYkNv
cmUvYmluZGluZ3MvanMvSlNXb3JrZXJDb250ZXh0QmFzZS5jcHAgXAogCVdlYkNvcmUvYmluZGlu
Z3MvanMvSlNXb3JrZXJDb250ZXh0QmFzZS5oIFwKIAlXZWJDb3JlL2JpbmRpbmdzL2pzL0pTV29y
a2VyQ29udGV4dEN1c3RvbS5jcHAgXAotCVdlYkNvcmUvYmluZGluZ3MvanMvSlNXb3JrZXJDb250
ZXh0RXJyb3JIYW5kbGVyLmNwcCBcCi0JV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1dvcmtlckNvbnRl
eHRFcnJvckhhbmRsZXIuaCBcCiAJV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1dvcmtlckN1c3RvbS5j
cHAgXAogCVdlYkNvcmUvYmluZGluZ3MvanMvSlNYTUxIdHRwUmVxdWVzdEN1c3RvbS5jcHAgXAog
CVdlYkNvcmUvYmluZGluZ3MvanMvSlNYTUxIdHRwUmVxdWVzdFVwbG9hZEN1c3RvbS5jcHAgXApk
aWZmIC0tZ2l0IGEvV2ViQ29yZS9XZWJDb3JlLmd5cGkgYi9XZWJDb3JlL1dlYkNvcmUuZ3lwaQpp
bmRleCA4ZDRlZDAyYzJhNDJlNjVhMmU4MzA0NjIyMDg5ZjdhMTgwNjQxY2U2Li5kNzYxZGQ2MjRk
M2QxZDRhMjZjODI2OTJiZTk1NDljZTZjMmEwN2NkIDEwMDY0NAotLS0gYS9XZWJDb3JlL1dlYkNv
cmUuZ3lwaQorKysgYi9XZWJDb3JlL1dlYkNvcmUuZ3lwaQpAQCAtNjI0LDYgKzYyNCw4IEBACiAg
ICAgICAgICAgICAnYmluZGluZ3MvanMvSlNFbGVtZW50Q3VzdG9tLmNwcCcsCiAgICAgICAgICAg
ICAnYmluZGluZ3MvanMvSlNFbnRyeUN1c3RvbS5jcHAnLAogICAgICAgICAgICAgJ2JpbmRpbmdz
L2pzL0pTRW50cnlTeW5jQ3VzdG9tLmNwcCcsCisgICAgICAgICAgICAnYmluZGluZ3MvanMvSlNF
cnJvckhhbmRsZXIuY3BwJywKKyAgICAgICAgICAgICdiaW5kaW5ncy9qcy9KU0Vycm9ySGFuZGxl
ci5oJywKICAgICAgICAgICAgICdiaW5kaW5ncy9qcy9KU0V2ZW50Q3VzdG9tLmNwcCcsCiAgICAg
ICAgICAgICAnYmluZGluZ3MvanMvSlNFdmVudExpc3RlbmVyLmNwcCcsCiAgICAgICAgICAgICAn
YmluZGluZ3MvanMvSlNFdmVudExpc3RlbmVyLmgnLApAQCAtNzIxLDggKzcyMyw2IEBACiAgICAg
ICAgICAgICAnYmluZGluZ3MvanMvSlNXb3JrZXJDb250ZXh0QmFzZS5jcHAnLAogICAgICAgICAg
ICAgJ2JpbmRpbmdzL2pzL0pTV29ya2VyQ29udGV4dEJhc2UuaCcsCiAgICAgICAgICAgICAnYmlu
ZGluZ3MvanMvSlNXb3JrZXJDb250ZXh0Q3VzdG9tLmNwcCcsCi0gICAgICAgICAgICAnYmluZGlu
Z3MvanMvSlNXb3JrZXJDb250ZXh0RXJyb3JIYW5kbGVyLmNwcCcsCi0gICAgICAgICAgICAnYmlu
ZGluZ3MvanMvSlNXb3JrZXJDb250ZXh0RXJyb3JIYW5kbGVyLmgnLAogICAgICAgICAgICAgJ2Jp
bmRpbmdzL2pzL0pTV29ya2VyQ3VzdG9tLmNwcCcsCiAgICAgICAgICAgICAnYmluZGluZ3MvanMv
SlNYTUxIdHRwUmVxdWVzdEN1c3RvbS5jcHAnLAogICAgICAgICAgICAgJ2JpbmRpbmdzL2pzL0pT
WE1MSHR0cFJlcXVlc3RVcGxvYWRDdXN0b20uY3BwJywKQEAgLTk4NSw2ICs5ODUsOCBAQAogICAg
ICAgICAgICAgJ2JpbmRpbmdzL3Y4L1Y4UHJveHkuaCcsCiAgICAgICAgICAgICAnYmluZGluZ3Mv
djgvVjhVdGlsaXRpZXMuY3BwJywKICAgICAgICAgICAgICdiaW5kaW5ncy92OC9WOFV0aWxpdGll
cy5oJywKKyAgICAgICAgICAgICdiaW5kaW5ncy92OC9WOFdpbmRvd0Vycm9ySGFuZGxlci5jcHAn
LAorICAgICAgICAgICAgJ2JpbmRpbmdzL3Y4L1Y4V2luZG93RXJyb3JIYW5kbGVyLmgnLAogICAg
ICAgICAgICAgJ2JpbmRpbmdzL3Y4L1Y4V29ya2VyQ29udGV4dEVycm9ySGFuZGxlci5jcHAnLAog
ICAgICAgICAgICAgJ2JpbmRpbmdzL3Y4L1Y4V29ya2VyQ29udGV4dEVycm9ySGFuZGxlci5oJywK
ICAgICAgICAgICAgICdiaW5kaW5ncy92OC9WOFdvcmtlckNvbnRleHRFdmVudExpc3RlbmVyLmNw
cCcsCmRpZmYgLS1naXQgYS9XZWJDb3JlL1dlYkNvcmUub3JkZXIgYi9XZWJDb3JlL1dlYkNvcmUu
b3JkZXIKaW5kZXggMGZkYWJiMTNiMzgzODI4MWQ3ODAxYWY4MzQyNGZmZmE3OTc4NGM3My4uMjA0
OWZlMWQ1Njc4NjQxZTYzYTA3N2JiNGY1ZWFkNTkxMjA0ZmFmZiAxMDA2NDQKLS0tIGEvV2ViQ29y
ZS9XZWJDb3JlLm9yZGVyCisrKyBiL1dlYkNvcmUvV2ViQ29yZS5vcmRlcgpAQCAtMjUyMDksMTMg
KzI1MjA5LDkgQEAgX19aTjdXZWJDb3JlMTVKU1dvcmtlckNvbnRleHQxMHNldFRpbWVvdXRFUE4z
SlNDOUV4ZWNTdGF0ZUVSS05TMV83QXJnTGlzdEUKIF9fWk43V2ViQ29yZTEzV29ya2VyQ29udGV4
dDEwc2V0VGltZW91dEVQTlNfMTVTY2hlZHVsZWRBY3Rpb25FaQogX19aTjdXZWJDb3JlMTdXb3Jr
ZXJTaGFyZWRUaW1lcjExc2V0RmlyZVRpbWVFZAogX19aTjdXZWJDb3JlMTVTY2hlZHVsZWRBY3Rp
b243ZXhlY3V0ZUVQTlNfMTNXb3JrZXJDb250ZXh0RQotX19aTjdXZWJDb3JlMjdKU1dvcmtlckNv
bnRleHRFcnJvckhhbmRsZXJDMUVQTjNKU0M4SlNPYmplY3RFUzNfYlBOU18xNURPTVdyYXBwZXJX
b3JsZEUKLV9fWk43V2ViQ29yZTI3SlNXb3JrZXJDb250ZXh0RXJyb3JIYW5kbGVyQzJFUE4zSlND
OEpTT2JqZWN0RVMzX2JQTlNfMTVET01XcmFwcGVyV29ybGRFCiBfX1pON1dlYkNvcmUxMEVycm9y
RXZlbnRDMUVSS05TXzZTdHJpbmdFUzNfagogX19aTjdXZWJDb3JlMTBFcnJvckV2ZW50QzJFUktO
U182U3RyaW5nRVMzX2oKLV9fWk43V2ViQ29yZTI3SlNXb3JrZXJDb250ZXh0RXJyb3JIYW5kbGVy
MTFoYW5kbGVFdmVudEVQTlNfMjJTY3JpcHRFeGVjdXRpb25Db250ZXh0RVBOU181RXZlbnRFCiBf
X1pON1dlYkNvcmUxMEVycm9yRXZlbnREMEV2Ci1fX1pON1dlYkNvcmUyN0pTV29ya2VyQ29udGV4
dEVycm9ySGFuZGxlckQwRXYKIF9fWk43V2ViQ29yZTE3anNXb3JrZXJPbm1lc3NhZ2VFUE4zSlND
OUV4ZWNTdGF0ZUVOUzBfN0pTVmFsdWVFUktOUzBfMTBJZGVudGlmaWVyRQogX19aTjdXZWJDb3Jl
MzRqc1dvcmtlclByb3RvdHlwZUZ1bmN0aW9uVGVybWluYXRlRVBOM0pTQzlFeGVjU3RhdGVFUE5T
MF84SlNPYmplY3RFTlMwXzdKU1ZhbHVlRVJLTlMwXzdBcmdMaXN0RQogX19aVGhuOF9ON1dlYkNv
cmUyMFdvcmtlck1lc3NhZ2luZ1Byb3h5MTl3b3JrZXJDb250ZXh0Q2xvc2VkRXYKZGlmZiAtLWdp
dCBhL1dlYkNvcmUvV2ViQ29yZS5wcm8gYi9XZWJDb3JlL1dlYkNvcmUucHJvCmluZGV4IDBlYWZm
NWFmN2E0MWFhM2Q4YTBhODg5YmFmNGE5NmExZTRmYTJiNWQuLmViNWZkMzRjMmNkYmM2YmYyYjk3
OTg3NzM4MTEwYzQwZmFkMWEyNmEgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvV2ViQ29yZS5wcm8KKysr
IGIvV2ViQ29yZS9XZWJDb3JlLnBybwpAQCAtMzg1LDYgKzM4NSw3IEBAIHY4IHsKICAgICAgICAg
YmluZGluZ3MvdjgvVjhOb2RlRmlsdGVyQ29uZGl0aW9uLmNwcCBcCiAgICAgICAgIGJpbmRpbmdz
L3Y4L1Y4UHJveHkuY3BwIFwKICAgICAgICAgYmluZGluZ3MvdjgvVjhVdGlsaXRpZXMuY3BwIFwK
KyAgICAgICAgYmluZGluZ3MvdjgvVjhXaW5kb3dFcnJvckhhbmRsZXIuY3BwIFwKICAgICAgICAg
YmluZGluZ3MvdjgvVjhXb3JrZXJDb250ZXh0RXZlbnRMaXN0ZW5lci5jcHAgXAogICAgICAgICBi
aW5kaW5ncy92OC9Xb3JrZXJDb250ZXh0RXhlY3V0aW9uUHJveHkuY3BwIFwKICAgICAgICAgYmlu
ZGluZ3MvdjgvV29ya2VyU2NyaXB0Q29udHJvbGxlci5jcHAgXApAQCAtNTg4LDcgKzU4OSw2IEBA
IHY4IHsKICAgICAgICAgYmluZGluZ3MvanMvSlNXZWJLaXRDU1NLZXlmcmFtZXNSdWxlQ3VzdG9t
LmNwcCBcCiAgICAgICAgIGJpbmRpbmdzL2pzL0pTV2ViS2l0Q1NTTWF0cml4Q3VzdG9tLmNwcCBc
CiAgICAgICAgIGJpbmRpbmdzL2pzL0pTV2ViS2l0UG9pbnRDdXN0b20uY3BwIFwKLSAgICAgICAg
YmluZGluZ3MvanMvSlNXb3JrZXJDb250ZXh0RXJyb3JIYW5kbGVyLmNwcCBcCiAgICAgICAgIGJp
bmRpbmdzL2pzL0pTWE1MSHR0cFJlcXVlc3RDdXN0b20uY3BwIFwKICAgICAgICAgYmluZGluZ3Mv
anMvSlNYTUxIdHRwUmVxdWVzdFVwbG9hZEN1c3RvbS5jcHAgXAogICAgICAgICBiaW5kaW5ncy9q
cy9TY2hlZHVsZWRBY3Rpb24uY3BwIFwKQEAgLTE0NTgsNiArMTQ1OCw3IEBAIHY4IHsKICAgICAg
ICAgYmluZGluZ3MvdjgvVjhOUFV0aWxzLmggXAogICAgICAgICBiaW5kaW5ncy92OC9WOFByb3h5
LmggXAogICAgICAgICBiaW5kaW5ncy92OC9WOFV0aWxpdGllcy5oIFwKKyAgICAgICAgYmluZGlu
Z3MvdjgvVjhXaW5kb3dFcnJvckhhbmRsZXIuaCBcCiAgICAgICAgIGJpbmRpbmdzL3Y4L1Y4V29y
a2VyQ29udGV4dEV2ZW50TGlzdGVuZXIuaCBcCiAgICAgICAgIGJpbmRpbmdzL3Y4L1dvcmtlckNv
bnRleHRFeGVjdXRpb25Qcm94eS5oIFwKICAgICAgICAgYmluZGluZ3MvdjgvV29ya2VyU2NyaXB0
Q29udHJvbGxlci5oIFwKQEAgLTE0ODQsNiArMTQ4NSw3IEBAIHY4IHsKICAgICAgICAgYmluZGlu
Z3MvanMvSlNET01XaW5kb3dDdXN0b20uaCBcCiAgICAgICAgIGJpbmRpbmdzL2pzL0pTRE9NV2lu
ZG93U2hlbGwuaCBcCiAgICAgICAgIGJpbmRpbmdzL2pzL0pTRE9NV3JhcHBlci5oIFwKKyAgICAg
ICAgYmluZGluZ3MvanMvSlNFcnJvckhhbmRsZXIuaCBcCiAgICAgICAgIGJpbmRpbmdzL2pzL0pT
RXZlbnRMaXN0ZW5lci5oIFwKICAgICAgICAgYmluZGluZ3MvanMvSlNFdmVudFRhcmdldC5oIFwK
ICAgICAgICAgYmluZGluZ3MvanMvSlNIaXN0b3J5Q3VzdG9tLmggXApAQCAtMTUwMSw3ICsxNTAz
LDYgQEAgdjggewogICAgICAgICBiaW5kaW5ncy9qcy9KU1BsdWdpbkVsZW1lbnRGdW5jdGlvbnMu
aCBcCiAgICAgICAgIGJpbmRpbmdzL2pzL0pTU3RvcmFnZUN1c3RvbS5oIFwKICAgICAgICAgYmlu
ZGluZ3MvanMvSlNXb3JrZXJDb250ZXh0QmFzZS5oIFwKLSAgICAgICAgYmluZGluZ3MvanMvSlNX
b3JrZXJDb250ZXh0RXJyb3JIYW5kbGVyLmggXAogICAgICAgICBiaW5kaW5ncy9qcy9KYXZhU2Ny
aXB0Q2FsbEZyYW1lLmggXAogICAgICAgICBiaW5kaW5ncy9qcy9TY2hlZHVsZWRBY3Rpb24uaCBc
CiAgICAgICAgIGJpbmRpbmdzL2pzL1NjcmlwdENhY2hlZEZyYW1lRGF0YS5oIFwKZGlmZiAtLWdp
dCBhL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2ogYi9XZWJDb3JlL1dlYkNv
cmUudmNwcm9qL1dlYkNvcmUudmNwcm9qCmluZGV4IDMwMDUxZGVlNzU3NGE3NDA2NTM0NjkzZjYw
MGNlZWM5ZGQ2NDE2ZGEuLmM5N2YwMWZlZTQwNDcxN2ZjODVmZGE3OGQyODQzY2EyMDg3NjY0NGIg
MTAwNzU1Ci0tLSBhL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oKKysrIGIv
V2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvagpAQCAtNTc4MDIsNiArNTc4MDIs
NjMgQEAKIAkJCQk8L0ZpbGU+CiAJCQkJPEZpbGUKIAkJCQkJUmVsYXRpdmVQYXRoPSIuLlxiaW5k
aW5nc1xqc1xKU0RPTVdpbmRvd1NoZWxsLmNwcCIKKwkJCQkJUmVsYXRpdmVQYXRoPSIuLlxiaW5k
aW5nc1xqc1xKU0Vycm9ySGFuZGxlci5jcHAiCisJCQkJCT4KKwkJCQkJPEZpbGVDb25maWd1cmF0
aW9uCisJCQkJCQlOYW1lPSJEZWJ1Z3xXaW4zMiIKKwkJCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0
cnVlIgorCQkJCQkJPgorCQkJCQkJPFRvb2wKKwkJCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29s
IgorCQkJCQkJLz4KKwkJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4KKwkJCQkJPEZpbGVDb25maWd1
cmF0aW9uCisJCQkJCQlOYW1lPSJSZWxlYXNlfFdpbjMyIgorCQkJCQkJRXhjbHVkZWRGcm9tQnVp
bGQ9InRydWUiCisJCQkJCQk+CisJCQkJCQk8VG9vbAorCQkJCQkJCU5hbWU9IlZDQ0xDb21waWxl
clRvb2wiCisJCQkJCQkvPgorCQkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPgorCQkJCQk8RmlsZUNv
bmZpZ3VyYXRpb24KKwkJCQkJCU5hbWU9IkRlYnVnX0ludGVybmFsfFdpbjMyIgorCQkJCQkJRXhj
bHVkZWRGcm9tQnVpbGQ9InRydWUiCisJCQkJCQk+CisJCQkJCQk8VG9vbAorCQkJCQkJCU5hbWU9
IlZDQ0xDb21waWxlclRvb2wiCisJCQkJCQkvPgorCQkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPgor
CQkJCQk8RmlsZUNvbmZpZ3VyYXRpb24KKwkJCQkJCU5hbWU9IkRlYnVnX0NhaXJvfFdpbjMyIgor
CQkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiCisJCQkJCQk+CisJCQkJCQk8VG9vbAorCQkJ
CQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiCisJCQkJCQkvPgorCQkJCQk8L0ZpbGVDb25maWd1
cmF0aW9uPgorCQkJCQk8RmlsZUNvbmZpZ3VyYXRpb24KKwkJCQkJCU5hbWU9IlJlbGVhc2VfQ2Fp
cm98V2luMzIiCisJCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSIKKwkJCQkJCT4KKwkJCQkJ
CTxUb29sCisJCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCIKKwkJCQkJCS8+CisJCQkJCTwv
RmlsZUNvbmZpZ3VyYXRpb24+CisJCQkJCTxGaWxlQ29uZmlndXJhdGlvbgorCQkJCQkJTmFtZT0i
RGVidWdfQWxsfFdpbjMyIgorCQkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiCisJCQkJCQk+
CisJCQkJCQk8VG9vbAorCQkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiCisJCQkJCQkvPgor
CQkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPgorCQkJCTwvRmlsZT4KKwkJCQk8RmlsZQorCQkJCQlS
ZWxhdGl2ZVBhdGg9Ii4uXGJpbmRpbmdzXGpzXEpTRXJyb3JIYW5kbGVyLmgiCisJCQkJCT4KKwkJ
CQk8L0ZpbGU+CisJCQkJPEZpbGUKKwkJCQkJUmVsYXRpdmVQYXRoPSIuLlxiaW5kaW5nc1xqc1xK
U0V2ZW50Q3VzdG9tLmNwcCIKIAkJCQkJPgogCQkJCQk8RmlsZUNvbmZpZ3VyYXRpb24KIAkJCQkJ
CU5hbWU9IkRlYnVnfFdpbjMyIgpAQCAtNjE1NDEsNjIgKzYxNTk4LDYgQEAKIAkJCQkJPC9GaWxl
Q29uZmlndXJhdGlvbj4KIAkJCQk8L0ZpbGU+CiAJCQkJPEZpbGUKLQkJCQkJUmVsYXRpdmVQYXRo
PSIuLlxiaW5kaW5nc1xqc1xKU1dvcmtlckNvbnRleHRFcnJvckhhbmRsZXIuY3BwIgotCQkJCQk+
Ci0JCQkJCTxGaWxlQ29uZmlndXJhdGlvbgotCQkJCQkJTmFtZT0iRGVidWd8V2luMzIiCi0JCQkJ
CQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSIKLQkJCQkJCT4KLQkJCQkJCTxUb29sCi0JCQkJCQkJ
TmFtZT0iVkNDTENvbXBpbGVyVG9vbCIKLQkJCQkJCS8+Ci0JCQkJCTwvRmlsZUNvbmZpZ3VyYXRp
b24+Ci0JCQkJCTxGaWxlQ29uZmlndXJhdGlvbgotCQkJCQkJTmFtZT0iUmVsZWFzZXxXaW4zMiIK
LQkJCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIgotCQkJCQkJPgotCQkJCQkJPFRvb2wKLQkJ
CQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIgotCQkJCQkJLz4KLQkJCQkJPC9GaWxlQ29uZmln
dXJhdGlvbj4KLQkJCQkJPEZpbGVDb25maWd1cmF0aW9uCi0JCQkJCQlOYW1lPSJEZWJ1Z19DYWly
b19DRkxpdGV8V2luMzIiCi0JCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSIKLQkJCQkJCT4K
LQkJCQkJCTxUb29sCi0JCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCIKLQkJCQkJCS8+Ci0J
CQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+Ci0JCQkJCTxGaWxlQ29uZmlndXJhdGlvbgotCQkJCQkJ
TmFtZT0iUmVsZWFzZV9DYWlyb19DRkxpdGV8V2luMzIiCi0JCQkJCQlFeGNsdWRlZEZyb21CdWls
ZD0idHJ1ZSIKLQkJCQkJCT4KLQkJCQkJCTxUb29sCi0JCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVy
VG9vbCIKLQkJCQkJCS8+Ci0JCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+Ci0JCQkJCTxGaWxlQ29u
ZmlndXJhdGlvbgotCQkJCQkJTmFtZT0iRGVidWdfQWxsfFdpbjMyIgotCQkJCQkJRXhjbHVkZWRG
cm9tQnVpbGQ9InRydWUiCi0JCQkJCQk+Ci0JCQkJCQk8VG9vbAotCQkJCQkJCU5hbWU9IlZDQ0xD
b21waWxlclRvb2wiCi0JCQkJCQkvPgotCQkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPgotCQkJCQk8
RmlsZUNvbmZpZ3VyYXRpb24KLQkJCQkJCU5hbWU9IlJlbGVhc2VfTFRDR3xXaW4zMiIKLQkJCQkJ
CUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIgotCQkJCQkJPgotCQkJCQkJPFRvb2wKLQkJCQkJCQlO
YW1lPSJWQ0NMQ29tcGlsZXJUb29sIgotCQkJCQkJLz4KLQkJCQkJPC9GaWxlQ29uZmlndXJhdGlv
bj4KLQkJCQk8L0ZpbGU+Ci0JCQkJPEZpbGUKLQkJCQkJUmVsYXRpdmVQYXRoPSIuLlxiaW5kaW5n
c1xqc1xKU1dvcmtlckNvbnRleHRFcnJvckhhbmRsZXIuaCIKLQkJCQkJPgotCQkJCTwvRmlsZT4K
LQkJCQk8RmlsZQogCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGJpbmRpbmdzXGpzXEpTV29ya2VyQ3Vz
dG9tLmNwcCIKIAkJCQkJPgogCQkJCQk8RmlsZUNvbmZpZ3VyYXRpb24KZGlmZiAtLWdpdCBhL1dl
YkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvV2ViQ29yZS9XZWJDb3Jl
Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggMmVhZjMzNzMwMjJkNThjN2FlMmQ4Zjdl
MzI4NzU5ZDZlOTM5MDQ0My4uZTM2YzZlNmE5MjI2OWVmZWUxMjhmZTk2M2MwMjk4ZTMwNjQ2NTNm
NiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oK
KysrIGIvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTU1NDgs
OCArNTU0OCw4IEBACiAJCUYzOTIyNDlEMTI2RjExQUUwMEE5MjZEOSAvKiBTY3JpcHRDYWxsU3Rh
Y2tGYWN0b3J5LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSBGMzkyMjQ5QjEyNkYxMUFFMDBBOTI2RDkgLyogU2NyaXB0Q2FsbFN0YWNrRmFjdG9yeS5oICov
OyB9OwogCQlGMzlCRTk1QjEyNjczQkY0MDBFMEE2NzQgLyogU2NyaXB0QXJndW1lbnRzLmNwcCBp
biBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEYzOUJFOTU5MTI2
NzNCRjQwMEUwQTY3NCAvKiBTY3JpcHRBcmd1bWVudHMuY3BwICovOyB9OwogCQlGMzlCRTk1QzEy
NjczQkY0MDBFMEE2NzQgLyogU2NyaXB0QXJndW1lbnRzLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGMzlCRTk1QTEyNjczQkY0MDBFMEE2NzQgLyogU2Ny
aXB0QXJndW1lbnRzLmggKi87IH07Ci0JCUYzRDQ2MTQ4MTE2MUQ1MzIwMENBMEQwOSAvKiBKU1dv
cmtlckNvbnRleHRFcnJvckhhbmRsZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gRjNENDYxNDYxMTYxRDUzMjAwQ0EwRDA5IC8qIEpTV29ya2VyQ29u
dGV4dEVycm9ySGFuZGxlci5jcHAgKi87IH07Ci0JCUYzRDQ2MTQ5MTE2MUQ1MzIwMENBMEQwOSAv
KiBKU1dvcmtlckNvbnRleHRFcnJvckhhbmRsZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEYzRDQ2MTQ3MTE2MUQ1MzIwMENBMEQwOSAvKiBKU1dvcmtl
ckNvbnRleHRFcnJvckhhbmRsZXIuaCAqLzsgfTsKKwkJRjNENDYxNDgxMTYxRDUzMjAwQ0EwRDA5
IC8qIEpTRXJyb3JIYW5kbGVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IEYzRDQ2MTQ2MTE2MUQ1MzIwMENBMEQwOSAvKiBKU0Vycm9ySGFuZGxlci5j
cHAgKi87IH07CisJCUYzRDQ2MTQ5MTE2MUQ1MzIwMENBMEQwOSAvKiBKU0Vycm9ySGFuZGxlci5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjNENDYxNDcx
MTYxRDUzMjAwQ0EwRDA5IC8qIEpTRXJyb3JIYW5kbGVyLmggKi87IH07CiAJCUY0RUFGNEFFMTBD
NzQyQjEwMDkxMDBEMyAvKiBPcGVuVHlwZVNhbml0aXplci5jcHAgaW4gU291cmNlcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNEVBRjRBQzEwQzc0MkIxMDA5MTAwRDMgLyog
T3BlblR5cGVTYW5pdGl6ZXIuY3BwICovOyB9OwogCQlGNEVBRjRBRjEwQzc0MkIxMDA5MTAwRDMg
LyogT3BlblR5cGVTYW5pdGl6ZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IEY0RUFGNEFEMTBDNzQyQjEwMDkxMDBEMyAvKiBPcGVuVHlwZVNhbml0aXpl
ci5oICovOyB9OwogCQlGNTVCM0RBRDEyNTFGMTJEMDAzRUYyNjkgLyogQmFzZVRleHRJbnB1dFR5
cGUuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjU1
QjNENzkxMjUxRjEyRDAwM0VGMjY5IC8qIEJhc2VUZXh0SW5wdXRUeXBlLmNwcCAqLzsgfTsKQEAg
LTExODM4LDggKzExODM4LDggQEAKIAkJRjM5MjI0OUIxMjZGMTFBRTAwQTkyNkQ5IC8qIFNjcmlw
dENhbGxTdGFja0ZhY3RvcnkuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU2Ny
aXB0Q2FsbFN0YWNrRmFjdG9yeS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlGMzlC
RTk1OTEyNjczQkY0MDBFMEE2NzQgLyogU2NyaXB0QXJndW1lbnRzLmNwcCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFNjcmlwdEFyZ3VtZW50cy5jcHA7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCUYzOUJFOTVBMTI2NzNCRjQwMEUwQTY3NCAvKiBTY3JpcHRBcmd1
bWVudHMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU2NyaXB0QXJndW1lbnRz
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUYzRDQ2MTQ2MTE2MUQ1MzIwMENBMEQw
OSAvKiBKU1dvcmtlckNvbnRleHRFcnJvckhhbmRsZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAuY3BwOyBwYXRoID0gSlNXb3JrZXJDb250ZXh0RXJyb3JIYW5kbGVyLmNwcDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJRjNENDYxNDcxMTYxRDUzMjAwQ0EwRDA5IC8qIEpTV29y
a2VyQ29udGV4dEVycm9ySGFuZGxlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBKU1dvcmtlckNvbnRleHRFcnJvckhhbmRsZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKKwkJRjNENDYxNDYxMTYxRDUzMjAwQ0EwRDA5IC8qIEpTRXJyb3JIYW5kbGVyLmNwcCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTRXJyb3JIYW5kbGVyLmNwcDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRjNENDYxNDcxMTYxRDUzMjAwQ0EwRDA5IC8qIEpT
RXJyb3JIYW5kbGVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTRXJyb3JI
YW5kbGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUY0RUFGNEFDMTBDNzQyQjEw
MDkxMDBEMyAvKiBPcGVuVHlwZVNhbml0aXplci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5jcHA7IG5hbWUgPSBPcGVuVHlwZVNhbml0aXplci5jcHA7IHBhdGggPSBvcGVudHlwZS9PcGVu
VHlwZVNhbml0aXplci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUY0RUFGNEFE
MTBDNzQyQjEwMDkxMDBEMyAvKiBPcGVuVHlwZVNhbml0aXplci5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IG5hbWUgPSBPcGVuVHlwZVNhbml0aXplci5oOyBwYXRoID0gb3BlbnR5cGUvT3Bl
blR5cGVTYW5pdGl6ZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRjUyM0QyM0Iw
MkRFNDM5NjAxODYzNUNBIC8qIEhUTUxEb2N1bWVudC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGluZGVudFdpZHRoID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBIVE1MRG9jdW1lbnQuY3BwOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB0YWJXaWR0aCA9IDg7IHVzZXNUYWJzID0gMDsgfTsKQEAgLTE3
NDI0LDYgKzE3NDI0LDggQEAKIAkJCQlCQ0JGQjUzQjBEQ0QyOUNGMDAxOUIzRTUgLyogSlNET01X
aW5kb3dTaGVsbC5oICovLAogCQkJCUJDNTNEQUM2MTE0MzMwNjQwMDBEODE3RSAvKiBKU0RPTVdy
YXBwZXIuY3BwICovLAogCQkJCTY1RTBFOTQzMTEzM0M4OUYwMEI0Q0IxMCAvKiBKU0RPTVdyYXBw
ZXIuaCAqLywKKwkJCQlGM0Q0NjE0NjExNjFENTMyMDBDQTBEMDkgLyogSlNFcnJvckhhbmRsZXIu
Y3BwICovLAorCQkJCUYzRDQ2MTQ3MTE2MUQ1MzIwMENBMEQwOSAvKiBKU0Vycm9ySGFuZGxlci5o
ICovLAogCQkJCUJDNjA5MDFFMEU5MUI4RUMwMDBDNjhCNSAvKiBKU0V2ZW50VGFyZ2V0LmNwcCAq
LywKIAkJCQlCQzYwOTAxRDBFOTFCOEVDMDAwQzY4QjUgLyogSlNFdmVudFRhcmdldC5oICovLAog
CQkJCTMzMTRBQ0U5MTA4OTIwODYwMDBGMEU1NiAvKiBKU0V4Y2VwdGlvbkJhc2UuY3BwICovLApA
QCAtMTc0MzUsOCArMTc0MzcsNiBAQAogCQkJCTE0Q0Q4RDgxMTA2QjUyOTAwMEE0NkQyMyAvKiBK
U1NoYXJlZFdvcmtlckN1c3RvbS5jcHAgKi8sCiAJCQkJRTFDMzZEMzIwRUIwQTA5NDAwNzQxMEJD
IC8qIEpTV29ya2VyQ29udGV4dEJhc2UuY3BwICovLAogCQkJCUUxQzM2RDMzMEVCMEEwOTQwMDc0
MTBCQyAvKiBKU1dvcmtlckNvbnRleHRCYXNlLmggKi8sCi0JCQkJRjNENDYxNDYxMTYxRDUzMjAw
Q0EwRDA5IC8qIEpTV29ya2VyQ29udGV4dEVycm9ySGFuZGxlci5jcHAgKi8sCi0JCQkJRjNENDYx
NDcxMTYxRDUzMjAwQ0EwRDA5IC8qIEpTV29ya2VyQ29udGV4dEVycm9ySGFuZGxlci5oICovLAog
CQkJCUJDQTM3OEJBMEQxNUY2NDIwMEI3OTNENiAvKiBTY2hlZHVsZWRBY3Rpb24uY3BwICovLAog
CQkJCUJDQTM3OEJCMEQxNUY2NDIwMEI3OTNENiAvKiBTY2hlZHVsZWRBY3Rpb24uaCAqLywKIAkJ
CQk0MUYxRDIxRTBFRjM1QzJBMDBEQTg3NTMgLyogU2NyaXB0Q2FjaGVkRnJhbWVEYXRhLmNwcCAq
LywKQEAgLTIxMTAwLDcgKzIxMTAwLDcgQEAKIAkJCQlFMUNBQTVDNjBFOEJEMjM2MDBBNzNFQ0Eg
LyogSlNXb3JrZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCUUxODI1NjkwMEVGMkIwMkQwMDkzMzI0
MiAvKiBKU1dvcmtlckNvbnRleHQuaCBpbiBIZWFkZXJzICovLAogCQkJCUUxQzM2RDM1MEVCMEEw
OTQwMDc0MTBCQyAvKiBKU1dvcmtlckNvbnRleHRCYXNlLmggaW4gSGVhZGVycyAqLywKLQkJCQlG
M0Q0NjE0OTExNjFENTMyMDBDQTBEMDkgLyogSlNXb3JrZXJDb250ZXh0RXJyb3JIYW5kbGVyLmgg
aW4gSGVhZGVycyAqLywKKwkJCQlGM0Q0NjE0OTExNjFENTMyMDBDQTBEMDkgLyogSlNFcnJvckhh
bmRsZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCUUxQzM2MkVGMEVBRjJBQTkwMDc0MTBCQyAvKiBK
U1dvcmtlckxvY2F0aW9uLmggaW4gSGVhZGVycyAqLywKIAkJCQlFMTI3MUE1ODBFRUVDREU0MDBG
NjEyMTMgLyogSlNXb3JrZXJOYXZpZ2F0b3IuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDMzQ4QkQ0
MERCN0Y4MDQwMDRBQkFCOSAvKiBKU1hNTEh0dHBSZXF1ZXN0LmggaW4gSGVhZGVycyAqLywKQEAg
LTIzOTE1LDcgKzIzOTE1LDcgQEAKIAkJCQlFMTgyNTY4RjBFRjJCMDJEMDA5MzMyNDIgLyogSlNX
b3JrZXJDb250ZXh0LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUUxQzM2RDM0MEVCMEEwOTQwMDc0
MTBCQyAvKiBKU1dvcmtlckNvbnRleHRCYXNlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUUxODI1
OEFDMEVGM0NENzAwMDkzMzI0MiAvKiBKU1dvcmtlckNvbnRleHRDdXN0b20uY3BwIGluIFNvdXJj
ZXMgKi8sCi0JCQkJRjNENDYxNDgxMTYxRDUzMjAwQ0EwRDA5IC8qIEpTV29ya2VyQ29udGV4dEVy
cm9ySGFuZGxlci5jcHAgaW4gU291cmNlcyAqLywKKwkJCQlGM0Q0NjE0ODExNjFENTMyMDBDQTBE
MDkgLyogSlNFcnJvckhhbmRsZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJRTFDQTVDQkMwRThD
RENBRjAwRThFRjkwIC8qIEpTV29ya2VyQ3VzdG9tLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUUx
QzM2MkYwMEVBRjJBQTkwMDc0MTBCQyAvKiBKU1dvcmtlckxvY2F0aW9uLmNwcCBpbiBTb3VyY2Vz
ICovLAogCQkJCUUxMjcxQTU5MEVFRUNERTQwMEY2MTIxMyAvKiBKU1dvcmtlck5hdmlnYXRvci5j
cHAgaW4gU291cmNlcyAqLywKZGlmZiAtLWdpdCBhL1dlYkNvcmUvYmluZGluZ3MvanMvSlNCaW5k
aW5nc0FsbEluT25lLmNwcCBiL1dlYkNvcmUvYmluZGluZ3MvanMvSlNCaW5kaW5nc0FsbEluT25l
LmNwcAppbmRleCA3ZmM1NzQwMmI3ZGU2MzgyZGY1OTI3Zjc2MDM4ODQwODRmMjcwMWUzLi5kMmMy
N2E5OTJkZTA3YTM1YjgyMGRjN2IyY2MzMDJlYWIwMTI5NTk5IDEwMDY0NAotLS0gYS9XZWJDb3Jl
L2JpbmRpbmdzL2pzL0pTQmluZGluZ3NBbGxJbk9uZS5jcHAKKysrIGIvV2ViQ29yZS9iaW5kaW5n
cy9qcy9KU0JpbmRpbmdzQWxsSW5PbmUuY3BwCkBAIC03Miw2ICs3Miw3IEBACiAjaW5jbHVkZSAi
SlNEZXZpY2VPcmllbnRhdGlvbkV2ZW50Q3VzdG9tLmNwcCIKICNpbmNsdWRlICJKU0RvY3VtZW50
Q3VzdG9tLmNwcCIKICNpbmNsdWRlICJKU0VsZW1lbnRDdXN0b20uY3BwIgorI2luY2x1ZGUgIkpT
RXJyb3JIYW5kbGVyLmNwcCIKICNpbmNsdWRlICJKU0V2ZW50Q3VzdG9tLmNwcCIKICNpbmNsdWRl
ICJKU0V2ZW50TGlzdGVuZXIuY3BwIgogI2luY2x1ZGUgIkpTRXZlbnRTb3VyY2VDdXN0b20uY3Bw
IgpAQCAtMTQxLDcgKzE0Miw2IEBACiAjaW5jbHVkZSAiSlNXZWJTb2NrZXRDdXN0b20uY3BwIgog
I2luY2x1ZGUgIkpTV29ya2VyQ29udGV4dEJhc2UuY3BwIgogI2luY2x1ZGUgIkpTV29ya2VyQ29u
dGV4dEN1c3RvbS5jcHAiCi0jaW5jbHVkZSAiSlNXb3JrZXJDb250ZXh0RXJyb3JIYW5kbGVyLmNw
cCIKICNpbmNsdWRlICJKU1dvcmtlckN1c3RvbS5jcHAiCiAjaW5jbHVkZSAiSlNYTUxIdHRwUmVx
dWVzdEN1c3RvbS5jcHAiCiAjaW5jbHVkZSAiSlNYTUxIdHRwUmVxdWVzdFVwbG9hZEN1c3RvbS5j
cHAiCmRpZmYgLS1naXQgYS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NQmluZGluZy5jcHAgYi9X
ZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NQmluZGluZy5jcHAKaW5kZXggY2YwYTE2YTY5ZTc1ZjBk
YTc3OTRmODA5NzMzZTgzMmE5NWE3OWE3OS4uZDc5ZWM1ZjdmMmQxYzhkNzMxYmVmNzAyYjFiYzA2
Mjc1MTFiOWFhYSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTUJpbmRpbmcu
Y3BwCisrKyBiL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01CaW5kaW5nLmNwcApAQCAtNTUsNiAr
NTUsNyBAQAogI2luY2x1ZGUgIlByb2Nlc3NpbmdJbnN0cnVjdGlvbi5oIgogI2luY2x1ZGUgIlJh
bmdlRXhjZXB0aW9uLmgiCiAjaW5jbHVkZSAiU2NyaXB0Q2FjaGVkRnJhbWVEYXRhLmgiCisjaW5j
bHVkZSAiU2NyaXB0Q2FsbFN0YWNrLmgiCiAjaW5jbHVkZSAiU2NyaXB0Q29udHJvbGxlci5oIgog
I2luY2x1ZGUgIlNldHRpbmdzLmgiCiAjaW5jbHVkZSAiV2ViQ29yZUpTQ2xpZW50RGF0YS5oIgpA
QCAtNTk4LDcgKzU5OSw3IEBAIHZvaWQgcmVwb3J0RXhjZXB0aW9uKEV4ZWNTdGF0ZSogZXhlYywg
SlNWYWx1ZSBleGNlcHRpb24pCiAgICAgaWYgKCFzY3JpcHRFeGVjdXRpb25Db250ZXh0KQogICAg
ICAgICByZXR1cm47CiAKLSAgICBzY3JpcHRFeGVjdXRpb25Db250ZXh0LT5yZXBvcnRFeGNlcHRp
b24odXN0cmluZ1RvU3RyaW5nKGVycm9yTWVzc2FnZSksIGxpbmVOdW1iZXIsIHVzdHJpbmdUb1N0
cmluZyhleGNlcHRpb25Tb3VyY2VVUkwpKTsKKyAgICBzY3JpcHRFeGVjdXRpb25Db250ZXh0LT5y
ZXBvcnRFeGNlcHRpb24odXN0cmluZ1RvU3RyaW5nKGVycm9yTWVzc2FnZSksIGxpbmVOdW1iZXIs
IHVzdHJpbmdUb1N0cmluZyhleGNlcHRpb25Tb3VyY2VVUkwpLCAwKTsKIH0KIAogdm9pZCByZXBv
cnRDdXJyZW50RXhjZXB0aW9uKEV4ZWNTdGF0ZSogZXhlYykKZGlmZiAtLWdpdCBhL1dlYkNvcmUv
YmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG0gYi9XZWJDb3JlL2JpbmRpbmdzL3Nj
cmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtCmluZGV4IDEzMjUxOGZkZTgwZWE4OTA3OWM2NmE1MDEz
ZmYwZTRjMWI4NTY5ZGYuLjUyYTYyOTFhZjgwOWIyYjFjNGM2YmUwY2U3YWIwN2Q0Zjk3NzRkOTMg
MTAwNjQ0Ci0tLSBhL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG0K
KysrIGIvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbQpAQCAtMTcw
OSw5ICsxNzA5LDkgQEAgc3ViIEdlbmVyYXRlSW1wbGVtZW50YXRpb24KICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgSlNET01HbG9iYWxPYmpl
Y3QqIGdsb2JhbE9iamVjdCA9IGNhc3RlZFRoaXMtPmdsb2JhbE9iamVjdCgpO1xuIik7CiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgIHB1
c2goQGltcGxDb250ZW50LCAiICAgICRpbXBsQ2xhc3NOYW1lKiBpbXAgPSBzdGF0aWNfY2FzdDwk
aW1wbENsYXNzTmFtZSo+KHN0YXRpY19jYXN0PCRjbGFzc05hbWUqPih0aGlzT2JqZWN0KS0+aW1w
bCgpKTtcbiIpOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICgkaW50ZXJmYWNlTmFt
ZSBlcSAiV29ya2VyQ29udGV4dCIgYW5kICRuYW1lIGVxICJvbmVycm9yIikgewotICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAkaW1wbEluY2x1ZGVzeyJKU1dvcmtlckNvbnRleHRFcnJv
ckhhbmRsZXIuaCJ9ID0gMTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHVzaChA
aW1wbENvbnRlbnQsICIgICAgaW1wLT5zZXQkaW1wbFNldHRlckZ1bmN0aW9uTmFtZShjcmVhdGVK
U1dvcmtlckNvbnRleHRFcnJvckhhbmRsZXIoZXhlYywgdmFsdWUsIHRoaXNPYmplY3QpKTtcbiIp
OworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICgoKCRpbnRlcmZhY2VOYW1lIGVxICJE
T01XaW5kb3ciKSBvciAoJGludGVyZmFjZU5hbWUgZXEgIldvcmtlckNvbnRleHQiKSkgYW5kICRu
YW1lIGVxICJvbmVycm9yIikgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkaW1w
bEluY2x1ZGVzeyJKU0Vycm9ySGFuZGxlci5oIn0gPSAxOworICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICBpbXAtPnNldCRpbXBsU2V0dGVyRnVu
Y3Rpb25OYW1lKGNyZWF0ZUpTRXJyb3JIYW5kbGVyKGV4ZWMsIHZhbHVlLCB0aGlzT2JqZWN0KSk7
XG4iKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgR2VuZXJhdGVBdHRyaWJ1dGVF
dmVudExpc3RlbmVyQ2FsbCgkY2xhc3NOYW1lLCAkaW1wbFNldHRlckZ1bmN0aW9uTmFtZSwgJHdp
bmRvd0V2ZW50TGlzdGVuZXIpKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CmRpZmYg
LS1naXQgYS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvclY4LnBtIGIvV2Vi
Q29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JWOC5wbQppbmRleCBkMzM5ZDZhMTNi
NGZjYTM5MGQ2NzE1ODMwNjMxYzkzZTBhMjViYmQyLi45MDkzNzU3YzU1ZmQ0ZjEzMzMyOWNjZjYz
ZjhkMDVjNGRlZDhmNmMyIDEwMDY0NAotLS0gYS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29k
ZUdlbmVyYXRvclY4LnBtCisrKyBiL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJh
dG9yVjgucG0KQEAgLTEwMDEsNiArMTAwMSwxMCBAQCBFTkQKICAgICAgICAgICAgICAgICAkaW1w
bEluY2x1ZGVzeyJWOEV2ZW50TGlzdGVuZXJMaXN0LmgifSA9IDE7CiAgICAgICAgICAgICAgICAg
JGltcGxJbmNsdWRlc3siVjhXb3JrZXJDb250ZXh0RXJyb3JIYW5kbGVyLmgifSA9IDE7CiAgICAg
ICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnREZWNscywgIiAgICBpbXAtPnNldCRpbXBsU2V0
dGVyRnVuY3Rpb25OYW1lKFY4RXZlbnRMaXN0ZW5lckxpc3Q6OmZpbmRPckNyZWF0ZVdyYXBwZXI8
VjhXb3JrZXJDb250ZXh0RXJyb3JIYW5kbGVyPih2YWx1ZSwgdHJ1ZSkiKTsKKyAgICAgICAgICAg
IH0gZWxzaWYgKCRpbnRlcmZhY2VOYW1lIGVxICJET01XaW5kb3ciIGFuZCAkYXR0cmlidXRlLT5z
aWduYXR1cmUtPm5hbWUgZXEgIm9uZXJyb3IiKSB7CisgICAgICAgICAgICAgICAgJGltcGxJbmNs
dWRlc3siVjhFdmVudExpc3RlbmVyTGlzdC5oIn0gPSAxOworICAgICAgICAgICAgICAgICRpbXBs
SW5jbHVkZXN7IlY4V2luZG93RXJyb3JIYW5kbGVyLmgifSA9IDE7CisgICAgICAgICAgICAgICAg
cHVzaChAaW1wbENvbnRlbnREZWNscywgIiAgICBpbXAtPnNldCRpbXBsU2V0dGVyRnVuY3Rpb25O
YW1lKFY4RXZlbnRMaXN0ZW5lckxpc3Q6OmZpbmRPckNyZWF0ZVdyYXBwZXI8VjhXaW5kb3dFcnJv
ckhhbmRsZXI+KHZhbHVlLCB0cnVlKSIpOwogICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAg
ICAgICAgICBwdXNoKEBpbXBsQ29udGVudERlY2xzLCAiICAgIGltcC0+c2V0JGltcGxTZXR0ZXJG
dW5jdGlvbk5hbWUoVjhET01XcmFwcGVyOjpnZXRFdmVudExpc3RlbmVyKHZhbHVlLCB0cnVlLCBM
aXN0ZW5lckZpbmRPckNyZWF0ZSkiKTsKICAgICAgICAgICAgIH0KZGlmZiAtLWdpdCBhL1dlYkNv
cmUvYmluZGluZ3MvdjgvVjhDb25zb2xlTWVzc2FnZS5jcHAgYi9XZWJDb3JlL2JpbmRpbmdzL3Y4
L1Y4Q29uc29sZU1lc3NhZ2UuY3BwCmluZGV4IGU2ODcxZmRjYTM5NzE2MjAyMmYyYjBiZmQ1MTlh
NzQzNzY1NGRmNTEuLmQ5MjgyMmNlZWFjNjY2OTQ1ZGJhMDI2YjVjMWZhMDk2YWZmODgxMDEgMTAw
NjQ0Ci0tLSBhL1dlYkNvcmUvYmluZGluZ3MvdjgvVjhDb25zb2xlTWVzc2FnZS5jcHAKKysrIGIv
V2ViQ29yZS9iaW5kaW5ncy92OC9WOENvbnNvbGVNZXNzYWdlLmNwcApAQCAtNTQsNyArNTQsMTQg
QEAgVjhDb25zb2xlTWVzc2FnZTo6VjhDb25zb2xlTWVzc2FnZShjb25zdCBTdHJpbmcmIHN0cmlu
ZywgY29uc3QgU3RyaW5nJiBzb3VyY2VJRCwKIAogdm9pZCBWOENvbnNvbGVNZXNzYWdlOjpkaXNw
YXRjaE5vdyhQYWdlKiBwYWdlKQogewotICAgIGRpc3BhdGNoTm93KHBhZ2UsIDApOworICAgIEFT
U0VSVChwYWdlKTsKKworICAgIC8vIFByb2Nlc3MgYW55IGRlbGF5ZWQgbWVzc2FnZXMgdG8gbWFr
ZSBzdXJlIHRoYXQgbWVzc2FnZXMKKyAgICAvLyBhcHBlYXIgaW4gdGhlIHJpZ2h0IG9yZGVyIGlu
IHRoZSBjb25zb2xlLgorICAgIHByb2Nlc3NEZWxheWVkKCk7CisKKyAgICBDb25zb2xlKiBjb25z
b2xlID0gcGFnZS0+bWFpbkZyYW1lKCktPmRvbVdpbmRvdygpLT5jb25zb2xlKCk7CisgICAgY29u
c29sZS0+YWRkTWVzc2FnZShKU01lc3NhZ2VTb3VyY2UsIExvZ01lc3NhZ2VUeXBlLCBFcnJvck1l
c3NhZ2VMZXZlbCwgbV9zdHJpbmcsIG1fbGluZU51bWJlciwgbV9zb3VyY2VJRCk7CiB9CiAKIHZv
aWQgVjhDb25zb2xlTWVzc2FnZTo6ZGlzcGF0Y2hMYXRlcigpCkBAIC0xMDUsOCArMTEyLDggQEAg
dm9pZCBWOENvbnNvbGVNZXNzYWdlOjpoYW5kbGVyKHY4OjpIYW5kbGU8djg6Ok1lc3NhZ2U+IG1l
c3NhZ2UsIHY4OjpIYW5kbGU8djg6OlYKICAgICBGcmFtZSogZnJhbWUgPSBWOFByb3h5OjpyZXRy
aWV2ZUZyYW1lRm9yRW50ZXJlZENvbnRleHQoKTsKICAgICBpZiAoIWZyYW1lKQogICAgICAgICBy
ZXR1cm47Ci0gICAgUGFnZSogcGFnZSA9IGZyYW1lLT5wYWdlKCk7Ci0gICAgaWYgKCFwYWdlKQor
ICAgIERvY3VtZW50KiBkb2N1bWVudCA9IGZyYW1lLT5kb2N1bWVudCgpOworICAgIGlmICghZG9j
dW1lbnQpCiAgICAgICAgIHJldHVybjsKIAogICAgIHY4OjpIYW5kbGU8djg6OlN0cmluZz4gZXJy
b3JNZXNzYWdlU3RyaW5nID0gbWVzc2FnZS0+R2V0KCk7CkBAIC0xMjIsMjEgKzEyOSw3IEBAIHZv
aWQgVjhDb25zb2xlTWVzc2FnZTo6aGFuZGxlcih2ODo6SGFuZGxlPHY4OjpNZXNzYWdlPiBtZXNz
YWdlLCB2ODo6SGFuZGxlPHY4OjpWCiAgICAgdjg6OkhhbmRsZTx2ODo6VmFsdWU+IHJlc291cmNl
TmFtZSA9IG1lc3NhZ2UtPkdldFNjcmlwdFJlc291cmNlTmFtZSgpOwogICAgIGJvb2wgdXNlVVJM
ID0gcmVzb3VyY2VOYW1lLklzRW1wdHkoKSB8fCAhcmVzb3VyY2VOYW1lLT5Jc1N0cmluZygpOwog
ICAgIFN0cmluZyByZXNvdXJjZU5hbWVTdHJpbmcgPSB1c2VVUkwgPyBmcmFtZS0+ZG9jdW1lbnQo
KS0+dXJsKCkgOiB0b1dlYkNvcmVTdHJpbmcocmVzb3VyY2VOYW1lKTsKLSAgICBWOENvbnNvbGVN
ZXNzYWdlIGNvbnNvbGVNZXNzYWdlKGVycm9yTWVzc2FnZSwgcmVzb3VyY2VOYW1lU3RyaW5nLCBt
ZXNzYWdlLT5HZXRMaW5lTnVtYmVyKCkpOwotICAgIGNvbnNvbGVNZXNzYWdlLmRpc3BhdGNoTm93
KHBhZ2UsIGNhbGxTdGFjayk7Ci19Ci0KLXZvaWQgVjhDb25zb2xlTWVzc2FnZTo6ZGlzcGF0Y2hO
b3coUGFnZSogcGFnZSwgUGFzc1JlZlB0cjxTY3JpcHRDYWxsU3RhY2s+IGNhbGxTdGFjaykKLXsK
LSAgICBBU1NFUlQocGFnZSk7Ci0KLSAgICAvLyBQcm9jZXNzIGFueSBkZWxheWVkIG1lc3NhZ2Vz
IHRvIG1ha2Ugc3VyZSB0aGF0IG1lc3NhZ2VzCi0gICAgLy8gYXBwZWFyIGluIHRoZSByaWdodCBv
cmRlciBpbiB0aGUgY29uc29sZS4KLSAgICBwcm9jZXNzRGVsYXllZCgpOwotCi0gICAgQ29uc29s
ZSogY29uc29sZSA9IHBhZ2UtPm1haW5GcmFtZSgpLT5kb21XaW5kb3coKS0+Y29uc29sZSgpOwot
ICAgIE1lc3NhZ2VUeXBlIG1lc3NhZ2VUeXBlID0gY2FsbFN0YWNrID8gVW5jYXVnaHRFeGNlcHRp
b25NZXNzYWdlVHlwZSA6IExvZ01lc3NhZ2VUeXBlOwotICAgIGNvbnNvbGUtPmFkZE1lc3NhZ2Uo
SlNNZXNzYWdlU291cmNlLCBtZXNzYWdlVHlwZSwgRXJyb3JNZXNzYWdlTGV2ZWwsIG1fc3RyaW5n
LCBtX2xpbmVOdW1iZXIsIG1fc291cmNlSUQsIGNhbGxTdGFjayk7CisgICAgZG9jdW1lbnQtPnJl
cG9ydEV4Y2VwdGlvbihlcnJvck1lc3NhZ2UsIG1lc3NhZ2UtPkdldExpbmVOdW1iZXIoKSwgcmVz
b3VyY2VOYW1lU3RyaW5nLCBjYWxsU3RhY2spOwogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3Jl
CmRpZmYgLS1naXQgYS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1Y4Q29uc29sZU1lc3NhZ2UuaCBiL1dl
YkNvcmUvYmluZGluZ3MvdjgvVjhDb25zb2xlTWVzc2FnZS5oCmluZGV4IDk3ZGUyNGYxMDIzZGRj
ZmM3ZTQwYjIyMGYzMmFkODc2MjA2MTAyN2EuLjYxODNmYzY4NjdkYzFhNWQwYTYyY2YyNjNlMDdi
NmJiYjhlOTk0N2IgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvYmluZGluZ3MvdjgvVjhDb25zb2xlTWVz
c2FnZS5oCisrKyBiL1dlYkNvcmUvYmluZGluZ3MvdjgvVjhDb25zb2xlTWVzc2FnZS5oCkBAIC04
Miw4ICs4Miw2IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgY29uc3QgU3RyaW5nIG1f
c291cmNlSUQ7CiAgICAgICAgIGNvbnN0IHVuc2lnbmVkIG1fbGluZU51bWJlcjsKIAotICAgICAg
ICB2b2lkIGRpc3BhdGNoTm93KFBhZ2UqLCBQYXNzUmVmUHRyPFNjcmlwdENhbGxTdGFjaz4pOwot
CiAgICAgICAgIC8vIEFsbCBkZWxheWVkIG1lc3NhZ2VzIGFyZSBzdG9yZWQgaW4gdGhpcyB2ZWN0
b3IuIElmIHRoZSB2ZWN0b3IKICAgICAgICAgLy8gaXMgMCwgdGhlcmUgYXJlIG5vIGRlbGF5ZWQg
bWVzc2FnZXMuCiAgICAgICAgIHN0YXRpYyBWZWN0b3I8VjhDb25zb2xlTWVzc2FnZT4qIG1fZGVs
YXllZE1lc3NhZ2VzOwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9iaW5kaW5ncy92OC9Xb3JrZXJDb250
ZXh0RXhlY3V0aW9uUHJveHkuY3BwIGIvV2ViQ29yZS9iaW5kaW5ncy92OC9Xb3JrZXJDb250ZXh0
RXhlY3V0aW9uUHJveHkuY3BwCmluZGV4IGNlZmIyZmFhNzM5MDg5NGIzNWQ2NWFkNTNmMjFhOGZi
YzdkZGE1NjEuLmViMjU4MTQ5ZjA2NjY1ZmUxMDdiOGZjYjViOTNiMjg5NDA3ZTY4YTkgMTAwNjQ0
Ci0tLSBhL1dlYkNvcmUvYmluZGluZ3MvdjgvV29ya2VyQ29udGV4dEV4ZWN1dGlvblByb3h5LmNw
cAorKysgYi9XZWJDb3JlL2JpbmRpbmdzL3Y4L1dvcmtlckNvbnRleHRFeGVjdXRpb25Qcm94eS5j
cHAKQEAgLTM3LDYgKzM3LDcgQEAKIAogI2luY2x1ZGUgIkRlZGljYXRlZFdvcmtlckNvbnRleHQu
aCIKICNpbmNsdWRlICJFdmVudC5oIgorI2luY2x1ZGUgIlNjcmlwdENhbGxTdGFjay5oIgogI2lu
Y2x1ZGUgIlNoYXJlZFdvcmtlci5oIgogI2luY2x1ZGUgIlNoYXJlZFdvcmtlckNvbnRleHQuaCIK
ICNpbmNsdWRlICJWOEJpbmRpbmcuaCIKQEAgLTcyLDcgKzczLDcgQEAgc3RhdGljIHZvaWQgdjhN
ZXNzYWdlSGFuZGxlcih2ODo6SGFuZGxlPHY4OjpNZXNzYWdlPiBtZXNzYWdlLCB2ODo6SGFuZGxl
PHY4OjpWYWwKICAgICAgICAgU3RyaW5nIGVycm9yTWVzc2FnZSA9IHRvV2ViQ29yZVN0cmluZyht
ZXNzYWdlLT5HZXQoKSk7CiAgICAgICAgIGludCBsaW5lTnVtYmVyID0gbWVzc2FnZS0+R2V0TGlu
ZU51bWJlcigpOwogICAgICAgICBTdHJpbmcgc291cmNlVVJMID0gdG9XZWJDb3JlU3RyaW5nKG1l
c3NhZ2UtPkdldFNjcmlwdFJlc291cmNlTmFtZSgpKTsKLSAgICAgICAgY29udGV4dC0+cmVwb3J0
RXhjZXB0aW9uKGVycm9yTWVzc2FnZSwgbGluZU51bWJlciwgc291cmNlVVJMKTsKKyAgICAgICAg
Y29udGV4dC0+cmVwb3J0RXhjZXB0aW9uKGVycm9yTWVzc2FnZSwgbGluZU51bWJlciwgc291cmNl
VVJMLCAwKTsKICAgICB9CiAKICAgICBpc1JlcG9ydGluZ0V4Y2VwdGlvbiA9IGZhbHNlOwpkaWZm
IC0tZ2l0IGEvV2ViQ29yZS9iaW5kaW5ncy92OC9Xb3JrZXJTY3JpcHRDb250cm9sbGVyLmNwcCBi
L1dlYkNvcmUvYmluZGluZ3MvdjgvV29ya2VyU2NyaXB0Q29udHJvbGxlci5jcHAKaW5kZXggYjU2
ZDM4MzZkN2U2YmIxYWM1ZDJjOGM1ZWQ2MzBmMDdjMjc2ZWYyMi4uNDJlMDJlNjZkMmU0MzNiNzkz
Yjg1NWIzYmUxMzlkN2VhOThjYTRkNSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9iaW5kaW5ncy92OC9X
b3JrZXJTY3JpcHRDb250cm9sbGVyLmNwcAorKysgYi9XZWJDb3JlL2JpbmRpbmdzL3Y4L1dvcmtl
clNjcmlwdENvbnRyb2xsZXIuY3BwCkBAIC0zNCwxMSArMzQsMTAgQEAKIAogI2luY2x1ZGUgIldv
cmtlclNjcmlwdENvbnRyb2xsZXIuaCIKIAotI2luY2x1ZGUgPHY4Lmg+Ci0KKyNpbmNsdWRlICJE
T01UaW1lci5oIgorI2luY2x1ZGUgIlNjcmlwdENhbGxTdGFjay5oIgogI2luY2x1ZGUgIlNjcmlw
dFNvdXJjZUNvZGUuaCIKICNpbmNsdWRlICJTY3JpcHRWYWx1ZS5oIgotI2luY2x1ZGUgIkRPTVRp
bWVyLmgiCiAjaW5jbHVkZSAiVjhET01NYXAuaCIKICNpbmNsdWRlICJWOFByb3h5LmgiCiAjaW5j
bHVkZSAiVjhXb3JrZXJDb250ZXh0LmgiCkBAIC00Niw2ICs0NSw3IEBACiAjaW5jbHVkZSAiV29y
a2VyQ29udGV4dEV4ZWN1dGlvblByb3h5LmgiCiAjaW5jbHVkZSAiV29ya2VyT2JqZWN0UHJveHku
aCIKICNpbmNsdWRlICJXb3JrZXJUaHJlYWQuaCIKKyNpbmNsdWRlIDx2OC5oPgogCiBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiAKQEAgLTgwLDcgKzgwLDcgQEAgU2NyaXB0VmFsdWUgV29ya2VyU2NyaXB0
Q29udHJvbGxlcjo6ZXZhbHVhdGUoY29uc3QgU2NyaXB0U291cmNlQ29kZSYgc291cmNlQ29kZSwK
ICAgICAgICAgaWYgKGV4Y2VwdGlvbikKICAgICAgICAgICAgICpleGNlcHRpb24gPSBzdGF0ZS5l
eGNlcHRpb247CiAgICAgICAgIGVsc2UKLSAgICAgICAgICAgIG1fd29ya2VyQ29udGV4dC0+cmVw
b3J0RXhjZXB0aW9uKHN0YXRlLmVycm9yTWVzc2FnZSwgc3RhdGUubGluZU51bWJlciwgc3RhdGUu
c291cmNlVVJMKTsKKyAgICAgICAgICAgIG1fd29ya2VyQ29udGV4dC0+cmVwb3J0RXhjZXB0aW9u
KHN0YXRlLmVycm9yTWVzc2FnZSwgc3RhdGUubGluZU51bWJlciwgc3RhdGUuc291cmNlVVJMLCAw
KTsKICAgICB9CiAKICAgICByZXR1cm4gcmVzdWx0OwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9kb20v
RG9jdW1lbnQuY3BwIGIvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCmluZGV4IDE1NTU0NmFiMTZi
OTA2YTU2MmNlM2VmNjI5Njc4NTgwYTZiODI0NTYuLjY4YTZkZGIwYmEwMWRjNjVkYzY4NzMyMThi
YmQwMTZhODVlMmIwMzAgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcAorKysg
Yi9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKQEAgLTExOCw2ICsxMTgsNyBAQAogI2luY2x1ZGUg
IlJlbmRlclRleHRDb250cm9sLmgiCiAjaW5jbHVkZSAiUmVuZGVyVmlldy5oIgogI2luY2x1ZGUg
IlJlbmRlcldpZGdldC5oIgorI2luY2x1ZGUgIlNjcmlwdENhbGxTdGFjay5oIgogI2luY2x1ZGUg
IlNjcmlwdENvbnRyb2xsZXIuaCIKICNpbmNsdWRlICJTY3JpcHRFbGVtZW50LmgiCiAjaW5jbHVk
ZSAiU2NyaXB0RXZlbnRMaXN0ZW5lci5oIgpAQCAtMjI3MSw2ICsyMjcyLDE3IEBAIEtVUkwgRG9j
dW1lbnQ6OnZpcnR1YWxDb21wbGV0ZVVSTChjb25zdCBTdHJpbmcmIHVybCkgY29uc3QKICAgICBy
ZXR1cm4gY29tcGxldGVVUkwodXJsKTsKIH0KIAorRXZlbnRUYXJnZXQqIERvY3VtZW50OjplcnJv
ckV2ZW50VGFyZ2V0KCkKK3sKKyAgICByZXR1cm4gZG9tV2luZG93KCk7Cit9CisKK3ZvaWQgRG9j
dW1lbnQ6OmxvZ0V4Y2VwdGlvblRvQ29uc29sZShjb25zdCBTdHJpbmcmIGVycm9yTWVzc2FnZSwg
aW50IGxpbmVOdW1iZXIsIGNvbnN0IFN0cmluZyYgc291cmNlVVJMLCBQYXNzUmVmUHRyPFNjcmlw
dENhbGxTdGFjaz4gY2FsbFN0YWNrKQoreworICAgIE1lc3NhZ2VUeXBlIG1lc3NhZ2VUeXBlID0g
Y2FsbFN0YWNrID8gVW5jYXVnaHRFeGNlcHRpb25NZXNzYWdlVHlwZSA6IExvZ01lc3NhZ2VUeXBl
OworICAgIGFkZE1lc3NhZ2UoSlNNZXNzYWdlU291cmNlLCBtZXNzYWdlVHlwZSwgRXJyb3JNZXNz
YWdlTGV2ZWwsIGVycm9yTWVzc2FnZSwgbGluZU51bWJlciwgc291cmNlVVJMKTsKK30KKwogdm9p
ZCBEb2N1bWVudDo6c2V0VVJMKGNvbnN0IEtVUkwmIHVybCkKIHsKICAgICBjb25zdCBLVVJMJiBu
ZXdVUkwgPSB1cmwuaXNFbXB0eSgpID8gYmxhbmtVUkwoKSA6IHVybDsKQEAgLTQ2NjAsMTEgKzQ2
NzIsNiBAQCB2b2lkIERvY3VtZW50OjpwYXJzZUROU1ByZWZldGNoQ29udHJvbEhlYWRlcihjb25z
dCBTdHJpbmcmIGRuc1ByZWZldGNoQ29udHJvbCkKICAgICBtX2hhdmVFeHBsaWNpdGx5RGlzYWJs
ZWRETlNQcmVmZXRjaCA9IHRydWU7CiB9CiAKLXZvaWQgRG9jdW1lbnQ6OnJlcG9ydEV4Y2VwdGlv
bihjb25zdCBTdHJpbmcmIGVycm9yTWVzc2FnZSwgaW50IGxpbmVOdW1iZXIsIGNvbnN0IFN0cmlu
ZyYgc291cmNlVVJMKQotewotICAgIGFkZE1lc3NhZ2UoSlNNZXNzYWdlU291cmNlLCBMb2dNZXNz
YWdlVHlwZSwgRXJyb3JNZXNzYWdlTGV2ZWwsIGVycm9yTWVzc2FnZSwgbGluZU51bWJlciwgc291
cmNlVVJMKTsKLX0KLQogdm9pZCBEb2N1bWVudDo6YWRkTWVzc2FnZShNZXNzYWdlU291cmNlIHNv
dXJjZSwgTWVzc2FnZVR5cGUgdHlwZSwgTWVzc2FnZUxldmVsIGxldmVsLCBjb25zdCBTdHJpbmcm
IG1lc3NhZ2UsIHVuc2lnbmVkIGxpbmVOdW1iZXIsIGNvbnN0IFN0cmluZyYgc291cmNlVVJMKQog
ewogICAgIGlmIChET01XaW5kb3cqIHdpbmRvdyA9IGRvbVdpbmRvdygpKQpkaWZmIC0tZ2l0IGEv
V2ViQ29yZS9kb20vRG9jdW1lbnQuaCBiL1dlYkNvcmUvZG9tL0RvY3VtZW50LmgKaW5kZXggZjFm
ZTQ0Y2JiODVmMzg3YWVlOGE4YWZhZWEwYmZmMDMyNDBjNDA5OS4uMTQyYWZmM2Q4NTgzNDM5YzY3
MzcwMDIyZmE3MDI3N2MwNGFhY2NjZiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9kb20vRG9jdW1lbnQu
aAorKysgYi9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oCkBAIC05MzAsNyArOTMwLDYgQEAgcHVibGlj
OgogICAgIGJvb2wgaXNETlNQcmVmZXRjaEVuYWJsZWQoKSBjb25zdCB7IHJldHVybiBtX2lzRE5T
UHJlZmV0Y2hFbmFibGVkOyB9CiAgICAgdm9pZCBwYXJzZUROU1ByZWZldGNoQ29udHJvbEhlYWRl
cihjb25zdCBTdHJpbmcmKTsKIAotICAgIHZpcnR1YWwgdm9pZCByZXBvcnRFeGNlcHRpb24oY29u
c3QgU3RyaW5nJiBlcnJvck1lc3NhZ2UsIGludCBsaW5lTnVtYmVyLCBjb25zdCBTdHJpbmcmIHNv
dXJjZVVSTCk7CiAgICAgdmlydHVhbCB2b2lkIGFkZE1lc3NhZ2UoTWVzc2FnZVNvdXJjZSwgTWVz
c2FnZVR5cGUsIE1lc3NhZ2VMZXZlbCwgY29uc3QgU3RyaW5nJiBtZXNzYWdlLCB1bnNpZ25lZCBs
aW5lTnVtYmVyLCBjb25zdCBTdHJpbmcmIHNvdXJjZVVSTCk7CiAgICAgdmlydHVhbCB2b2lkIHBv
c3RUYXNrKFBhc3NPd25QdHI8VGFzaz4pOyAvLyBFeGVjdXRlcyB0aGUgdGFzayBvbiBjb250ZXh0
J3MgdGhyZWFkIGFzeW5jaHJvbm91c2x5LgogCkBAIC0xMTE2LDYgKzExMTUsOSBAQCBwcml2YXRl
OgogICAgIHZpcnR1YWwgY29uc3QgS1VSTCYgdmlydHVhbFVSTCgpIGNvbnN0OyAvLyBTYW1lIGFz
IHVybCgpLCBidXQgbmVlZGVkIGZvciBTY3JpcHRFeGVjdXRpb25Db250ZXh0IHRvIGltcGxlbWVu
dCBpdCB3aXRob3V0IGEgcGVyZm9ybWFuY2UgbG9zcyBmb3IgZGlyZWN0IGNhbGxzLgogICAgIHZp
cnR1YWwgS1VSTCB2aXJ0dWFsQ29tcGxldGVVUkwoY29uc3QgU3RyaW5nJikgY29uc3Q7IC8vIFNh
bWUgYXMgY29tcGxldGVVUkwoKSBmb3IgdGhlIHNhbWUgcmVhc29uIGFzIGFib3ZlLgogCisgICAg
dmlydHVhbCBFdmVudFRhcmdldCogZXJyb3JFdmVudFRhcmdldCgpOworICAgIHZpcnR1YWwgdm9p
ZCBsb2dFeGNlcHRpb25Ub0NvbnNvbGUoY29uc3QgU3RyaW5nJiBlcnJvck1lc3NhZ2UsIGludCBs
aW5lTnVtYmVyLCBjb25zdCBTdHJpbmcmIHNvdXJjZVVSTCwgUGFzc1JlZlB0cjxTY3JpcHRDYWxs
U3RhY2s+KTsKKwogICAgIHZvaWQgaW5pdEROU1ByZWZldGNoKCk7CiAKICAgICBTdHJpbmcgZW5j
b2RpbmcoKSBjb25zdDsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvZG9tL1NjcmlwdEV4ZWN1dGlvbkNv
bnRleHQuY3BwIGIvV2ViQ29yZS9kb20vU2NyaXB0RXhlY3V0aW9uQ29udGV4dC5jcHAKaW5kZXgg
YmZkYTE3YjNmMWI0ZDkzZGFiZDhmNjQxMGRiNzY1YjUwMzY3ZGVjOC4uNWViYTkwZWJmMTI2N2Nj
ZTIzYTYzOWMxZDQ0MTJhNDU0OTM2YWZjNCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9kb20vU2NyaXB0
RXhlY3V0aW9uQ29udGV4dC5jcHAKKysrIGIvV2ViQ29yZS9kb20vU2NyaXB0RXhlY3V0aW9uQ29u
dGV4dC5jcHAKQEAgLTMzLDE0ICszMywxOSBAQAogI2luY2x1ZGUgIkRhdGFiYXNlLmgiCiAjaW5j
bHVkZSAiRGF0YWJhc2VUYXNrLmgiCiAjaW5jbHVkZSAiRGF0YWJhc2VUaHJlYWQuaCIKKyNpbmNs
dWRlICJFcnJvckV2ZW50LmgiCisjaW5jbHVkZSAiRXZlbnRMaXN0ZW5lci5oIgorI2luY2x1ZGUg
IkV2ZW50VGFyZ2V0LmgiCiAjaW5jbHVkZSAiRmlsZVRocmVhZC5oIgogI2luY2x1ZGUgIk1lc3Nh
Z2VQb3J0LmgiCisjaW5jbHVkZSAiU2NyaXB0Q2FsbFN0YWNrLmgiCiAjaW5jbHVkZSAiU2VjdXJp
dHlPcmlnaW4uaCIKICNpbmNsdWRlICJUaHJlYWRhYmxlQmxvYlJlZ2lzdHJ5LmgiCiAjaW5jbHVk
ZSAiV29ya2VyQ29udGV4dC5oIgogI2luY2x1ZGUgIldvcmtlclRocmVhZC5oIgogI2luY2x1ZGUg
PHd0Zi9NYWluVGhyZWFkLmg+CiAjaW5jbHVkZSA8d3RmL1Bhc3NSZWZQdHIuaD4KKyNpbmNsdWRl
IDx3dGYvVmVjdG9yLmg+CiAKICNpZiBVU0UoSlNDKQogI2luY2x1ZGUgIkpTRE9NV2luZG93Lmgi
CkBAIC02MSwxMCArNjYsMTkgQEAgcHVibGljOgogICAgIH0KIH07CiAKK1NjcmlwdEV4ZWN1dGlv
bkNvbnRleHQ6OlBlbmRpbmdFeGNlcHRpb246OlBlbmRpbmdFeGNlcHRpb24oY29uc3QgU3RyaW5n
JiBlcnJvck1lc3NhZ2UsIGludCBsaW5lTnVtYmVyLCBjb25zdCBTdHJpbmcmIHNvdXJjZVVSTCwg
UGFzc1JlZlB0cjxTY3JpcHRDYWxsU3RhY2s+IGNhbGxTdGFjaykKKyAgICA6IG1fZXJyb3JNZXNz
YWdlKGVycm9yTWVzc2FnZSkKKyAgICAsIG1fbGluZU51bWJlcihsaW5lTnVtYmVyKQorICAgICwg
bV9zb3VyY2VVUkwoc291cmNlVVJMKQorICAgICwgbV9jYWxsU3RhY2soY2FsbFN0YWNrKQorewor
fQorCiBTY3JpcHRFeGVjdXRpb25Db250ZXh0OjpTY3JpcHRFeGVjdXRpb25Db250ZXh0KCkKICNp
ZiBFTkFCTEUoREFUQUJBU0UpCiAgICAgOiBtX2hhc09wZW5EYXRhYmFzZXMoZmFsc2UpCiAjZW5k
aWYKKyAgICAsIG1faW5EaXNwYXRjaEVycm9yRXZlbnQoZmFsc2UpCiB7CiB9CiAKQEAgLTI0Myw2
ICsyNTcsNDMgQEAgdm9pZCBTY3JpcHRFeGVjdXRpb25Db250ZXh0OjpzZXRTZWN1cml0eU9yaWdp
bihQYXNzUmVmUHRyPFNlY3VyaXR5T3JpZ2luPiBzZWN1cmkKICAgICBtX3NlY3VyaXR5T3JpZ2lu
ID0gc2VjdXJpdHlPcmlnaW47CiB9CiAKK3ZvaWQgU2NyaXB0RXhlY3V0aW9uQ29udGV4dDo6cmVw
b3J0RXhjZXB0aW9uKGNvbnN0IFN0cmluZyYgZXJyb3JNZXNzYWdlLCBpbnQgbGluZU51bWJlciwg
Y29uc3QgU3RyaW5nJiBzb3VyY2VVUkwsIFBhc3NSZWZQdHI8U2NyaXB0Q2FsbFN0YWNrPiBjYWxs
U3RhY2spCit7CisgICAgaWYgKG1faW5EaXNwYXRjaEVycm9yRXZlbnQpIHsKKyAgICAgICAgaWYg
KCFtX3BlbmRpbmdFeGNlcHRpb25zKQorICAgICAgICAgICAgbV9wZW5kaW5nRXhjZXB0aW9ucyA9
IG5ldyBWZWN0b3I8T3duUHRyPFBlbmRpbmdFeGNlcHRpb24+ID4oKTsKKyAgICAgICAgbV9wZW5k
aW5nRXhjZXB0aW9ucy0+YXBwZW5kKG5ldyBQZW5kaW5nRXhjZXB0aW9uKGVycm9yTWVzc2FnZSwg
bGluZU51bWJlciwgc291cmNlVVJMLCBjYWxsU3RhY2spKTsKKyAgICAgICAgcmV0dXJuOworICAg
IH0KKworICAgIC8vIEZpcnN0IHJlcG9ydCB0aGUgb3JpZ2luYWwgZXhjZXB0aW9uIGFuZCBvbmx5
IHRoZW4gYWxsIHRoZSBuZXN0ZWQgb25lcy4KKyAgICBpZiAoIWRpc3BhdGNoRXJyb3JFdmVudChl
cnJvck1lc3NhZ2UsIGxpbmVOdW1iZXIsIHNvdXJjZVVSTCkpCisgICAgICAgIGxvZ0V4Y2VwdGlv
blRvQ29uc29sZShlcnJvck1lc3NhZ2UsIGxpbmVOdW1iZXIsIHNvdXJjZVVSTCwgY2FsbFN0YWNr
LmdldCgpKTsKKworICAgIGlmICghbV9wZW5kaW5nRXhjZXB0aW9ucykKKyAgICAgICAgcmV0dXJu
OworCisgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBtX3BlbmRpbmdFeGNlcHRpb25zLT5zaXpl
KCk7IGkrKykgeworICAgICAgICBQZW5kaW5nRXhjZXB0aW9uKiBlID0gbV9wZW5kaW5nRXhjZXB0
aW9ucy0+YXQoaSkuZ2V0KCk7CisgICAgICAgIGxvZ0V4Y2VwdGlvblRvQ29uc29sZShlLT5tX2Vy
cm9yTWVzc2FnZSwgZS0+bV9saW5lTnVtYmVyLCBlLT5tX3NvdXJjZVVSTCwgZS0+bV9jYWxsU3Rh
Y2suZ2V0KCkpOworICAgIH0KKyAgICBtX3BlbmRpbmdFeGNlcHRpb25zLmNsZWFyKCk7Cit9CisK
K2Jvb2wgU2NyaXB0RXhlY3V0aW9uQ29udGV4dDo6ZGlzcGF0Y2hFcnJvckV2ZW50KGNvbnN0IFN0
cmluZyYgZXJyb3JNZXNzYWdlLCBpbnQgbGluZU51bWJlciwgY29uc3QgU3RyaW5nJiBzb3VyY2VV
UkwpCit7CisgICAgRXZlbnRUYXJnZXQqIHRhcmdldCA9IGVycm9yRXZlbnRUYXJnZXQoKTsKKyAg
ICBpZiAoIXRhcmdldCkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgQVNTRVJUKCFtX2lu
RGlzcGF0Y2hFcnJvckV2ZW50KTsKKyAgICBtX2luRGlzcGF0Y2hFcnJvckV2ZW50ID0gdHJ1ZTsK
KyAgICBSZWZQdHI8RXJyb3JFdmVudD4gZXJyb3JFdmVudCA9IEVycm9yRXZlbnQ6OmNyZWF0ZShl
cnJvck1lc3NhZ2UsIHNvdXJjZVVSTCwgbGluZU51bWJlcik7CisgICAgdGFyZ2V0LT5kaXNwYXRj
aEV2ZW50KGVycm9yRXZlbnQpOworICAgIG1faW5EaXNwYXRjaEVycm9yRXZlbnQgPSBmYWxzZTsK
KyAgICByZXR1cm4gZXJyb3JFdmVudC0+ZGVmYXVsdFByZXZlbnRlZCgpOworfQorCiB2b2lkIFNj
cmlwdEV4ZWN1dGlvbkNvbnRleHQ6OmFkZFRpbWVvdXQoaW50IHRpbWVvdXRJZCwgRE9NVGltZXIq
IHRpbWVyKQogewogICAgIEFTU0VSVCghbV90aW1lb3V0cy5jb250YWlucyh0aW1lb3V0SWQpKTsK
ZGlmZiAtLWdpdCBhL1dlYkNvcmUvZG9tL1NjcmlwdEV4ZWN1dGlvbkNvbnRleHQuaCBiL1dlYkNv
cmUvZG9tL1NjcmlwdEV4ZWN1dGlvbkNvbnRleHQuaAppbmRleCBiNDZhMGY0ZjVkZGQyYjBlZTU5
NDc5YTc5ZDAzZTdiZmQzNWU5NjQ4Li4xMWI5M2FlNzhhOWU0M2E4ODA0M2U5NDY4ZjgxMjcxNDNj
NDE0ZjA3IDEwMDY0NAotLS0gYS9XZWJDb3JlL2RvbS9TY3JpcHRFeGVjdXRpb25Db250ZXh0LmgK
KysrIGIvV2ViQ29yZS9kb20vU2NyaXB0RXhlY3V0aW9uQ29udGV4dC5oCkBAIC0zMyw2ICszMyw3
IEBACiAjaW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4KICNpbmNsdWRlIDx3dGYvSGFzaE1hcC5oPgog
I2luY2x1ZGUgPHd0Zi9IYXNoU2V0Lmg+CisjaW5jbHVkZSA8d3RmL093blB0ci5oPgogI2luY2x1
ZGUgPHd0Zi9QYXNzT3duUHRyLmg+CiAjaW5jbHVkZSA8d3RmL1Bhc3NSZWZQdHIuaD4KICNpbmNs
dWRlIDx3dGYvUmVmUHRyLmg+CkBAIC01MiwxMSArNTMsMTQgQEAgbmFtZXNwYWNlIFdlYkNvcmUg
ewogICAgIGNsYXNzIERhdGFiYXNlVGhyZWFkOwogI2VuZGlmCiAgICAgY2xhc3MgRE9NVGltZXI7
CisgICAgY2xhc3MgRXZlbnRMaXN0ZW5lcjsKKyAgICBjbGFzcyBFdmVudFRhcmdldDsKICNpZiBF
TkFCTEUoQkxPQikgfHwgRU5BQkxFKEZJTEVfU1lTVEVNKQogICAgIGNsYXNzIEZpbGVUaHJlYWQ7
CiAjZW5kaWYKICAgICBjbGFzcyBNZXNzYWdlUG9ydDsKICAgICBjbGFzcyBTZWN1cml0eU9yaWdp
bjsKKyAgICBjbGFzcyBTY3JpcHRDYWxsU3RhY2s7CiAjaWYgRU5BQkxFKElOU1BFQ1RPUikKICAg
ICBjbGFzcyBJbnNwZWN0b3JDb250cm9sbGVyOwogI2VuZGlmCkBAIC05MSw3ICs5NSw3IEBAIG5h
bWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgdmlydHVhbCBJbnNwZWN0b3JDb250cm9sbGVyKiBp
bnNwZWN0b3JDb250cm9sbGVyKCkgY29uc3QgeyByZXR1cm4gMDsgfQogI2VuZGlmCiAKLSAgICAg
ICAgdmlydHVhbCB2b2lkIHJlcG9ydEV4Y2VwdGlvbihjb25zdCBTdHJpbmcmIGVycm9yTWVzc2Fn
ZSwgaW50IGxpbmVOdW1iZXIsIGNvbnN0IFN0cmluZyYgc291cmNlVVJMKSA9IDA7CisgICAgICAg
IHZpcnR1YWwgdm9pZCByZXBvcnRFeGNlcHRpb24oY29uc3QgU3RyaW5nJiBlcnJvck1lc3NhZ2Us
IGludCBsaW5lTnVtYmVyLCBjb25zdCBTdHJpbmcmIHNvdXJjZVVSTCwgUGFzc1JlZlB0cjxTY3Jp
cHRDYWxsU3RhY2s+KTsKICAgICAgICAgdmlydHVhbCB2b2lkIGFkZE1lc3NhZ2UoTWVzc2FnZVNv
dXJjZSwgTWVzc2FnZVR5cGUsIE1lc3NhZ2VMZXZlbCwgY29uc3QgU3RyaW5nJiBtZXNzYWdlLCB1
bnNpZ25lZCBsaW5lTnVtYmVyLCBjb25zdCBTdHJpbmcmIHNvdXJjZVVSTCkgPSAwOwogCiAgICAg
ICAgIC8vIEFjdGl2ZSBvYmplY3RzIGFyZSBub3QgZ2FyYmFnZSBjb2xsZWN0ZWQgZXZlbiBpZiBp
bmFjY2Vzc2libGUsIGUuZy4gYmVjYXVzZSB0aGVpciBhY3Rpdml0eSBtYXkgcmVzdWx0IGluIGNh
bGxiYWNrcyBiZWluZyBpbnZva2VkLgpAQCAtMTU0LDYgKzE1OCwxMCBAQCBuYW1lc3BhY2UgV2Vi
Q29yZSB7CiAgICAgICAgIHZpcnR1YWwgY29uc3QgS1VSTCYgdmlydHVhbFVSTCgpIGNvbnN0ID0g
MDsKICAgICAgICAgdmlydHVhbCBLVVJMIHZpcnR1YWxDb21wbGV0ZVVSTChjb25zdCBTdHJpbmcm
KSBjb25zdCA9IDA7CiAKKyAgICAgICAgdmlydHVhbCBFdmVudFRhcmdldCogZXJyb3JFdmVudFRh
cmdldCgpID0gMDsKKyAgICAgICAgdmlydHVhbCB2b2lkIGxvZ0V4Y2VwdGlvblRvQ29uc29sZShj
b25zdCBTdHJpbmcmIGVycm9yTWVzc2FnZSwgaW50IGxpbmVOdW1iZXIsIGNvbnN0IFN0cmluZyYg
c291cmNlVVJMLCBQYXNzUmVmUHRyPFNjcmlwdENhbGxTdGFjaz4pID0gMDsKKyAgICAgICAgYm9v
bCBkaXNwYXRjaEVycm9yRXZlbnQoY29uc3QgU3RyaW5nJiBlcnJvck1lc3NhZ2UsIGludCBsaW5l
TnVtYmVyLCBjb25zdCBTdHJpbmcmIHNvdXJjZVVSTCk7CisKICAgICAgICAgdm9pZCBjbG9zZU1l
c3NhZ2VQb3J0cygpOwogCiAgICAgICAgIFJlZlB0cjxTZWN1cml0eU9yaWdpbj4gbV9zZWN1cml0
eU9yaWdpbjsKQEAgLTE3OSw2ICsxODcsMTYgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogI2lmIEVO
QUJMRShCTE9CKSB8fCBFTkFCTEUoRklMRV9TWVNURU0pCiAgICAgICAgIFJlZlB0cjxGaWxlVGhy
ZWFkPiBtX2ZpbGVUaHJlYWQ7CiAjZW5kaWYKKyAgICAgICAgYm9vbCBtX2luRGlzcGF0Y2hFcnJv
ckV2ZW50OworICAgICAgICBjbGFzcyBQZW5kaW5nRXhjZXB0aW9uIDogcHVibGljIE5vbmNvcHlh
YmxlIHsKKyAgICAgICAgcHVibGljOgorICAgICAgICAgICAgUGVuZGluZ0V4Y2VwdGlvbihjb25z
dCBTdHJpbmcmIGVycm9yTWVzc2FnZSwgaW50IGxpbmVOdW1iZXIsIGNvbnN0IFN0cmluZyYgc291
cmNlVVJMLCBQYXNzUmVmUHRyPFNjcmlwdENhbGxTdGFjaz4gY2FsbFN0YWNrKTsKKyAgICAgICAg
ICAgIFN0cmluZyBtX2Vycm9yTWVzc2FnZTsKKyAgICAgICAgICAgIGludCBtX2xpbmVOdW1iZXI7
CisgICAgICAgICAgICBTdHJpbmcgbV9zb3VyY2VVUkw7CisgICAgICAgICAgICBSZWZQdHI8U2Ny
aXB0Q2FsbFN0YWNrPiBtX2NhbGxTdGFjazsKKyAgICAgICAgfTsKKyAgICAgICAgT3duUHRyPFZl
Y3RvcjxPd25QdHI8UGVuZGluZ0V4Y2VwdGlvbj4gPiA+IG1fcGVuZGluZ0V4Y2VwdGlvbnM7CiAg
ICAgfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS93b3Jr
ZXJzL0RlZmF1bHRTaGFyZWRXb3JrZXJSZXBvc2l0b3J5LmNwcCBiL1dlYkNvcmUvd29ya2Vycy9E
ZWZhdWx0U2hhcmVkV29ya2VyUmVwb3NpdG9yeS5jcHAKaW5kZXggNGE4ZTk0NzMxYmFhNjIwZGJl
OWRmNWQzNDA5NzdiMDk5YjBhMDY0NC4uMGIxYWZlNTJjMGM0ODgzYjM3NmU0NGI2NjU0MDU5M2Uz
NDZiM2M4ZSAxMDA2NDQKLS0tIGEvV2ViQ29yZS93b3JrZXJzL0RlZmF1bHRTaGFyZWRXb3JrZXJS
ZXBvc2l0b3J5LmNwcAorKysgYi9XZWJDb3JlL3dvcmtlcnMvRGVmYXVsdFNoYXJlZFdvcmtlclJl
cG9zaXRvcnkuY3BwCkBAIC00Miw2ICs0Miw3IEBACiAjaW5jbHVkZSAiTWVzc2FnZVBvcnQuaCIK
ICNpbmNsdWRlICJOb3RJbXBsZW1lbnRlZC5oIgogI2luY2x1ZGUgIlBsYXRmb3JtU3RyaW5nLmgi
CisjaW5jbHVkZSAiU2NyaXB0Q2FsbFN0YWNrLmgiCiAjaW5jbHVkZSAiU2VjdXJpdHlPcmlnaW4u
aCIKICNpbmNsdWRlICJTZWN1cml0eU9yaWdpbkhhc2guaCIKICNpbmNsdWRlICJTaGFyZWRXb3Jr
ZXIuaCIKQEAgLTE1NSw3ICsxNTYsNyBAQCB2b2lkIFNoYXJlZFdvcmtlclByb3h5Ojpwb3N0VGFz
a0Zvck1vZGVUb1dvcmtlckNvbnRleHQoUGFzc093blB0cjxTY3JpcHRFeGVjdXRpbwogCiBzdGF0
aWMgdm9pZCBwb3N0RXhjZXB0aW9uVGFzayhTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0
LCBjb25zdCBTdHJpbmcmIGVycm9yTWVzc2FnZSwgaW50IGxpbmVOdW1iZXIsIGNvbnN0IFN0cmlu
ZyYgc291cmNlVVJMKQogewotICAgIGNvbnRleHQtPnJlcG9ydEV4Y2VwdGlvbihlcnJvck1lc3Nh
Z2UsIGxpbmVOdW1iZXIsIHNvdXJjZVVSTCk7CisgICAgY29udGV4dC0+cmVwb3J0RXhjZXB0aW9u
KGVycm9yTWVzc2FnZSwgbGluZU51bWJlciwgc291cmNlVVJMLCAwKTsKIH0KIAogdm9pZCBTaGFy
ZWRXb3JrZXJQcm94eTo6cG9zdEV4Y2VwdGlvblRvV29ya2VyT2JqZWN0KGNvbnN0IFN0cmluZyYg
ZXJyb3JNZXNzYWdlLCBpbnQgbGluZU51bWJlciwgY29uc3QgU3RyaW5nJiBzb3VyY2VVUkwpCmRp
ZmYgLS1naXQgYS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyQ29udGV4dC5jcHAgYi9XZWJDb3JlL3dv
cmtlcnMvV29ya2VyQ29udGV4dC5jcHAKaW5kZXggMzQ1ZTViNzYwNDcyYmMxYjJmODJiOWM3ZWM1
NzljYzBkODBkNGQ1Yi4uOWQ5YWJjNTY5NjU0ODg4NzJmYzcyMmJiYzg1NGI2ZWEzOGVlZWU0YyAx
MDA2NDQKLS0tIGEvV2ViQ29yZS93b3JrZXJzL1dvcmtlckNvbnRleHQuY3BwCisrKyBiL1dlYkNv
cmUvd29ya2Vycy9Xb3JrZXJDb250ZXh0LmNwcApAQCAtNDYsNiArNDYsNyBAQAogI2luY2x1ZGUg
IktVUkwuaCIKICNpbmNsdWRlICJNZXNzYWdlUG9ydC5oIgogI2luY2x1ZGUgIk5vdEltcGxlbWVu
dGVkLmgiCisjaW5jbHVkZSAiU2NyaXB0Q2FsbFN0YWNrLmgiCiAjaW5jbHVkZSAiU2NyaXB0U291
cmNlQ29kZS5oIgogI2luY2x1ZGUgIlNjcmlwdFZhbHVlLmgiCiAjaW5jbHVkZSAiU2VjdXJpdHlP
cmlnaW4uaCIKQEAgLTEwMiw3ICsxMDMsNiBAQCBXb3JrZXJDb250ZXh0OjpXb3JrZXJDb250ZXh0
KGNvbnN0IEtVUkwmIHVybCwgY29uc3QgU3RyaW5nJiB1c2VyQWdlbnQsIFdvcmtlclRocgogICAg
ICwgbV9zY3JpcHQobmV3IFdvcmtlclNjcmlwdENvbnRyb2xsZXIodGhpcykpCiAgICAgLCBtX3Ro
cmVhZCh0aHJlYWQpCiAgICAgLCBtX2Nsb3NpbmcoZmFsc2UpCi0gICAgLCBtX3JlcG9ydGluZ0V4
Y2VwdGlvbihmYWxzZSkKIHsKICAgICBzZXRTZWN1cml0eU9yaWdpbihTZWN1cml0eU9yaWdpbjo6
Y3JlYXRlKHVybCkpOwogfQpAQCAtMjU5LDIwICsyNTksMTQgQEAgdm9pZCBXb3JrZXJDb250ZXh0
OjppbXBvcnRTY3JpcHRzKGNvbnN0IFZlY3RvcjxTdHJpbmc+JiB1cmxzLCBFeGNlcHRpb25Db2Rl
JiBlYykKICAgICB9CiB9CiAKLXZvaWQgV29ya2VyQ29udGV4dDo6cmVwb3J0RXhjZXB0aW9uKGNv
bnN0IFN0cmluZyYgZXJyb3JNZXNzYWdlLCBpbnQgbGluZU51bWJlciwgY29uc3QgU3RyaW5nJiBz
b3VyY2VVUkwpCitFdmVudFRhcmdldCogV29ya2VyQ29udGV4dDo6ZXJyb3JFdmVudFRhcmdldCgp
CiB7Ci0gICAgYm9vbCBlcnJvckhhbmRsZWQgPSBmYWxzZTsKLSAgICBpZiAoIW1fcmVwb3J0aW5n
RXhjZXB0aW9uKSB7Ci0gICAgICAgIGlmIChvbmVycm9yKCkpIHsKLSAgICAgICAgICAgIG1fcmVw
b3J0aW5nRXhjZXB0aW9uID0gdHJ1ZTsKLSAgICAgICAgICAgIFJlZlB0cjxFcnJvckV2ZW50PiBl
cnJvckV2ZW50KEVycm9yRXZlbnQ6OmNyZWF0ZShlcnJvck1lc3NhZ2UsIHNvdXJjZVVSTCwgbGlu
ZU51bWJlcikpOwotICAgICAgICAgICAgb25lcnJvcigpLT5oYW5kbGVFdmVudCh0aGlzLCBlcnJv
ckV2ZW50LmdldCgpKTsKLSAgICAgICAgICAgIGVycm9ySGFuZGxlZCA9IGVycm9yRXZlbnQtPmRl
ZmF1bHRQcmV2ZW50ZWQoKTsKLSAgICAgICAgICAgIG1fcmVwb3J0aW5nRXhjZXB0aW9uID0gZmFs
c2U7Ci0gICAgICAgIH0KLSAgICB9Ci0gICAgaWYgKCFlcnJvckhhbmRsZWQpCi0gICAgICAgIHRo
cmVhZCgpLT53b3JrZXJSZXBvcnRpbmdQcm94eSgpLnBvc3RFeGNlcHRpb25Ub1dvcmtlck9iamVj
dChlcnJvck1lc3NhZ2UsIGxpbmVOdW1iZXIsIHNvdXJjZVVSTCk7CisgICAgcmV0dXJuIHRoaXM7
Cit9CisKK3ZvaWQgV29ya2VyQ29udGV4dDo6bG9nRXhjZXB0aW9uVG9Db25zb2xlKGNvbnN0IFN0
cmluZyYgZXJyb3JNZXNzYWdlLCBpbnQgbGluZU51bWJlciwgY29uc3QgU3RyaW5nJiBzb3VyY2VV
UkwsIFBhc3NSZWZQdHI8U2NyaXB0Q2FsbFN0YWNrPikKK3sKKyAgICB0aHJlYWQoKS0+d29ya2Vy
UmVwb3J0aW5nUHJveHkoKS5wb3N0RXhjZXB0aW9uVG9Xb3JrZXJPYmplY3QoZXJyb3JNZXNzYWdl
LCBsaW5lTnVtYmVyLCBzb3VyY2VVUkwpOwogfQogCiB2b2lkIFdvcmtlckNvbnRleHQ6OmFkZE1l
c3NhZ2UoTWVzc2FnZVNvdXJjZSBzb3VyY2UsIE1lc3NhZ2VUeXBlIHR5cGUsIE1lc3NhZ2VMZXZl
bCBsZXZlbCwgY29uc3QgU3RyaW5nJiBtZXNzYWdlLCB1bnNpZ25lZCBsaW5lTnVtYmVyLCBjb25z
dCBTdHJpbmcmIHNvdXJjZVVSTCkKZGlmZiAtLWdpdCBhL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJD
b250ZXh0LmggYi9XZWJDb3JlL3dvcmtlcnMvV29ya2VyQ29udGV4dC5oCmluZGV4IDVkMTVkOTQy
ZmQxYTMxNjY3M2I5OWY2NWZkOGM2ZWQ5ZGFlNWZkOTMuLmZlZmQ2MGFmMDc1ZmJkNjE3ZDQ0ZjQx
OTk5MDczYzIzYmQ4ZGEyNmQgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJDb250
ZXh0LmgKKysrIGIvV2ViQ29yZS93b3JrZXJzL1dvcmtlckNvbnRleHQuaApAQCAtMTAwLDcgKzEw
MCw2IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgdm9pZCBjbGVhckludGVydmFsKGlu
dCB0aW1lb3V0SWQpOwogCiAgICAgICAgIC8vIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQKLSAgICAg
ICAgdmlydHVhbCB2b2lkIHJlcG9ydEV4Y2VwdGlvbihjb25zdCBTdHJpbmcmIGVycm9yTWVzc2Fn
ZSwgaW50IGxpbmVOdW1iZXIsIGNvbnN0IFN0cmluZyYgc291cmNlVVJMKTsKICAgICAgICAgdmly
dHVhbCB2b2lkIGFkZE1lc3NhZ2UoTWVzc2FnZVNvdXJjZSwgTWVzc2FnZVR5cGUsIE1lc3NhZ2VM
ZXZlbCwgY29uc3QgU3RyaW5nJiBtZXNzYWdlLCB1bnNpZ25lZCBsaW5lTnVtYmVyLCBjb25zdCBT
dHJpbmcmIHNvdXJjZVVSTCk7CiAKICNpZiBFTkFCTEUoTk9USUZJQ0FUSU9OUykKQEAgLTE3NCw2
ICsxNzMsOSBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIHZpcnR1YWwgY29uc3QgS1VS
TCYgdmlydHVhbFVSTCgpIGNvbnN0OwogICAgICAgICB2aXJ0dWFsIEtVUkwgdmlydHVhbENvbXBs
ZXRlVVJMKGNvbnN0IFN0cmluZyYpIGNvbnN0OwogCisgICAgICAgIHZpcnR1YWwgRXZlbnRUYXJn
ZXQqIGVycm9yRXZlbnRUYXJnZXQoKTsKKyAgICAgICAgdmlydHVhbCB2b2lkIGxvZ0V4Y2VwdGlv
blRvQ29uc29sZShjb25zdCBTdHJpbmcmIGVycm9yTWVzc2FnZSwgaW50IGxpbmVOdW1iZXIsIGNv
bnN0IFN0cmluZyYgc291cmNlVVJMLCBQYXNzUmVmUHRyPFNjcmlwdENhbGxTdGFjaz4pOworCiAg
ICAgICAgIEtVUkwgbV91cmw7CiAgICAgICAgIFN0cmluZyBtX3VzZXJBZ2VudDsKIApAQCAtMTg3
LDcgKzE4OSw2IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgbXV0YWJsZSBSZWZQdHI8
Tm90aWZpY2F0aW9uQ2VudGVyPiBtX25vdGlmaWNhdGlvbnM7CiAjZW5kaWYKICAgICAgICAgYm9v
bCBtX2Nsb3Npbmc7Ci0gICAgICAgIGJvb2wgbV9yZXBvcnRpbmdFeGNlcHRpb247CiAgICAgICAg
IEV2ZW50VGFyZ2V0RGF0YSBtX2V2ZW50VGFyZ2V0RGF0YTsKIAogICAgICAgICBIYXNoU2V0PE9i
c2VydmVyKj4gbV93b3JrZXJPYnNlcnZlcnM7CmRpZmYgLS1naXQgYS9XZWJDb3JlL3dvcmtlcnMv
V29ya2VyTWVzc2FnaW5nUHJveHkuY3BwIGIvV2ViQ29yZS93b3JrZXJzL1dvcmtlck1lc3NhZ2lu
Z1Byb3h5LmNwcAppbmRleCAxMDcwMGM2NGVmNjllNWE1ZjM3ZDAxYWZiMjQ0MzZmNWM1ZmNlMWEx
Li4wNjg3MDE0ODg2ZDk1MmU5YjhlZThjYTUwOTVjYjZjNDU1MzE2MzM1IDEwMDY0NAotLS0gYS9X
ZWJDb3JlL3dvcmtlcnMvV29ya2VyTWVzc2FnaW5nUHJveHkuY3BwCisrKyBiL1dlYkNvcmUvd29y
a2Vycy9Xb3JrZXJNZXNzYWdpbmdQcm94eS5jcHAKQEAgLTQwLDYgKzQwLDcgQEAKICNpbmNsdWRl
ICJFeGNlcHRpb25Db2RlLmgiCiAjaW5jbHVkZSAiSW5zcGVjdG9yQ29udHJvbGxlci5oIgogI2lu
Y2x1ZGUgIk1lc3NhZ2VFdmVudC5oIgorI2luY2x1ZGUgIlNjcmlwdENhbGxTdGFjay5oIgogI2lu
Y2x1ZGUgIlNjcmlwdEV4ZWN1dGlvbkNvbnRleHQuaCIKICNpbmNsdWRlICJXb3JrZXIuaCIKIApA
QCAtMTMxLDcgKzEzMiw3IEBAIHByaXZhdGU6CiAKICAgICAgICAgYm9vbCBlcnJvckhhbmRsZWQg
PSAhd29ya2VyT2JqZWN0LT5kaXNwYXRjaEV2ZW50KEVycm9yRXZlbnQ6OmNyZWF0ZShtX2Vycm9y
TWVzc2FnZSwgbV9zb3VyY2VVUkwsIG1fbGluZU51bWJlcikpOwogICAgICAgICBpZiAoIWVycm9y
SGFuZGxlZCkKLSAgICAgICAgICAgIGNvbnRleHQtPnJlcG9ydEV4Y2VwdGlvbihtX2Vycm9yTWVz
c2FnZSwgbV9saW5lTnVtYmVyLCBtX3NvdXJjZVVSTCk7CisgICAgICAgICAgICBjb250ZXh0LT5y
ZXBvcnRFeGNlcHRpb24obV9lcnJvck1lc3NhZ2UsIG1fbGluZU51bWJlciwgbV9zb3VyY2VVUkws
IDApOwogICAgIH0KIAogICAgIFN0cmluZyBtX2Vycm9yTWVzc2FnZTsKZGlmZiAtLWdpdCBhL1dl
YktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cgYi9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCmluZGV4
IDAzMzIwYmZlNjZmMjk2YjllNTM5OGVlZGEyMTcyYmU2YWYwYmRmNWMuLmRmZjkzODExNzI2ZDk5
NWU4MzY2OGMyM2I4ZmY0ZjNjOTYyNGY2MDggMTAwNjQ0Ci0tLSBhL1dlYktpdC9jaHJvbWl1bS9D
aGFuZ2VMb2cKKysrIGIvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE4IEBA
CisyMDEwLTEwLTE5ICBhbGV4QHdlYmtpdC5vcmcgIDxhbGV4QHdlYmtpdC5vcmdAMjY4ZjQ1Y2Mt
Y2QwOS0wNDEwLWFiM2MtZDUyNjkxYjRkYmZjPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIFdlYkNvcmUgZG9lc24ndCBmaXJlIHdpbmRvdy5vbmVycm9y
IGV2ZW50IHdoZW4gdW5jYXVnaHQgSmF2YVNjcmlwdCBleGNlcHRpb25zIGFyZSB0aHJvd24KKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTg1MTkKKworICAg
ICAgICBVbmNhdWdodCBleGNlcHRpb25zIGFyZSBwcm9wYWdhdGVkIHRvIHdpbmRvdy5vbmVycm9y
IGhhbmRlciBpZiBvbmUgaXMgcHJlc2VudC4KKyAgICAgICAgVGhlIGhhbmRsZXIgaXMgZXhwZWN0
ZWQgdG8gYmUgYSBmdW5jdGlvbiBhY2NlcHRpbmcgdGhyZWUgYXJndW1lbnRzOiBlcnJvciBtZXNz
YWdlLAorICAgICAgICByZXNvdXJjZSB1cmwgYW5kIGxpbmUgbnVtYmVyIHdoZXJlIHRoZSBleGNl
cHRpb24gb2NjdXJlZC4KKworICAgICAgICAqIHNyYy9XZWJXb3JrZXJDbGllbnRJbXBsLmNwcDoK
KyAgICAgICAgKFdlYktpdDo6V2ViV29ya2VyQ2xpZW50SW1wbDo6cG9zdEV4Y2VwdGlvblRvV29y
a2VyT2JqZWN0KToKKyAgICAgICAgKFdlYktpdDo6V2ViV29ya2VyQ2xpZW50SW1wbDo6cG9zdEV4
Y2VwdGlvblRvV29ya2VyT2JqZWN0VGFzayk6CisKIDIwMTAtMTItMDcgIEJyaWFuIFdlaW5zdGVp
biAgPGJ3ZWluc3RlaW5AYXBwbGUuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IEpvaG4gU3Vs
bGl2YW4uCmRpZmYgLS1naXQgYS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYldvcmtlckNsaWVudElt
cGwuY3BwIGIvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJXb3JrZXJDbGllbnRJbXBsLmNwcAppbmRl
eCAxODI4MmUzNDE2YjczZGUyZWNkMDQ2MzJkNmJjZTc1MmZkZDMyOWE2Li5lM2NlMmJhNDRkYTVl
ZTYzMWRhM2U3ZjYzNjQ1YzdlZTE5YTRhOTM2IDEwMDY0NAotLS0gYS9XZWJLaXQvY2hyb21pdW0v
c3JjL1dlYldvcmtlckNsaWVudEltcGwuY3BwCisrKyBiL1dlYktpdC9jaHJvbWl1bS9zcmMvV2Vi
V29ya2VyQ2xpZW50SW1wbC5jcHAKQEAgLTQxLDYgKzQxLDcgQEAKICNpbmNsdWRlICJNZXNzYWdl
RXZlbnQuaCIKICNpbmNsdWRlICJNZXNzYWdlUG9ydC5oIgogI2luY2x1ZGUgIk1lc3NhZ2VQb3J0
Q2hhbm5lbC5oIgorI2luY2x1ZGUgIlNjcmlwdENhbGxTdGFjay5oIgogI2luY2x1ZGUgIlNjcmlw
dEV4ZWN1dGlvbkNvbnRleHQuaCIKICNpbmNsdWRlICJXb3JrZXIuaCIKICNpbmNsdWRlICJXb3Jr
ZXJDb250ZXh0LmgiCkBAIC0yNDcsNyArMjQ4LDcgQEAgdm9pZCBXZWJXb3JrZXJDbGllbnRJbXBs
Ojpwb3N0RXhjZXB0aW9uVG9Xb3JrZXJPYmplY3QoY29uc3QgV2ViU3RyaW5nJiBlcnJvck1lc3MK
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBzb3VyY2VVUkwsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgbGluZU51bWJlcikpOwogICAgIGlmICh1bmhhbmRs
ZWQpCi0gICAgICAgIG1fc2NyaXB0RXhlY3V0aW9uQ29udGV4dC0+cmVwb3J0RXhjZXB0aW9uKGVy
cm9yTWVzc2FnZSwgbGluZU51bWJlciwgc291cmNlVVJMKTsKKyAgICAgICAgbV9zY3JpcHRFeGVj
dXRpb25Db250ZXh0LT5yZXBvcnRFeGNlcHRpb24oZXJyb3JNZXNzYWdlLCBsaW5lTnVtYmVyLCBz
b3VyY2VVUkwsIDApOwogfQogCiB2b2lkIFdlYldvcmtlckNsaWVudEltcGw6OnBvc3RDb25zb2xl
TWVzc2FnZVRvV29ya2VyT2JqZWN0KGludCBkZXN0aW5hdGlvbiwKQEAgLTM4Myw3ICszODQsOCBA
QCB2b2lkIFdlYldvcmtlckNsaWVudEltcGw6OnBvc3RFeGNlcHRpb25Ub1dvcmtlck9iamVjdFRh
c2soCiAgICAgaWYgKCFoYW5kbGVkKQogICAgICAgICB0aGlzUHRyLT5tX3NjcmlwdEV4ZWN1dGlv
bkNvbnRleHQtPnJlcG9ydEV4Y2VwdGlvbihlcnJvck1lc3NhZ2UsCiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpbmVOdW1iZXIsCi0g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IHNvdXJjZVVSTCk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIHNvdXJjZVVSTCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMCk7CiB9CiAKIHZvaWQgV2ViV29ya2VyQ2xp
ZW50SW1wbDo6cG9zdENvbnNvbGVNZXNzYWdlVG9Xb3JrZXJPYmplY3RUYXNrKFNjcmlwdEV4ZWN1
dGlvbkNvbnRleHQqIGNvbnRleHQsCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>76207</attachid>
            <date>2010-12-10 08:40:08 -0800</date>
            <delta_ts>2010-12-10 10:53:37 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>window.onerror.patch</filename>
            <type>text/plain</type>
            <size>111973</size>
            <attacher name="Yury Semikhatsky">yurys</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCBlNWMxYzYyLi5hMjgzMTdhIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNjMgQEAKKzIwMTAtMTAt
MTkgIGFsZXhAd2Via2l0Lm9yZyAgPGFsZXhAd2Via2l0Lm9yZ0AyNjhmNDVjYy1jZDA5LTA0MTAt
YWIzYy1kNTI2OTFiNGRiZmM+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgV2ViQ29yZSBkb2Vzbid0IGZpcmUgd2luZG93Lm9uZXJyb3IgZXZlbnQgd2hl
biB1bmNhdWdodCBKYXZhU2NyaXB0IGV4Y2VwdGlvbnMgYXJlIHRocm93bgorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODUxOQorCisgICAgICAgIFVuY2F1
Z2h0IGV4Y2VwdGlvbnMgYXJlIHByb3BhZ2F0ZWQgdG8gd2luZG93Lm9uZXJyb3IgaGFuZGVyIGlm
IG9uZSBpcyBwcmVzZW50LgorICAgICAgICBUaGUgaGFuZGxlciBpcyBleHBlY3RlZCB0byBiZSBh
IGZ1bmN0aW9uIGFjY2VwdGluZyB0aHJlZSBhcmd1bWVudHM6IGVycm9yIG1lc3NhZ2UsCisgICAg
ICAgIHJlc291cmNlIHVybCBhbmQgbGluZSBudW1iZXIgd2hlcmUgdGhlIGV4Y2VwdGlvbiBvY2N1
cmVkLgorCisgICAgICAgICogZmFzdC9ldmVudHMvcmVzb3VyY2VzL3dpbmRvdy1vbmVycm9yLmpz
OiBBZGRlZC4KKyAgICAgICAgKHRocm93RXhjZXB0aW9uKToKKyAgICAgICAgKiBmYXN0L2V2ZW50
cy93aW5kb3ctb25lcnJvcjEtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2V2
ZW50cy93aW5kb3ctb25lcnJvcjEuaHRtbDogQWRkZWQuCisgICAgICAgICogZmFzdC9ldmVudHMv
d2luZG93LW9uZXJyb3IxMC1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZXZl
bnRzL3dpbmRvdy1vbmVycm9yMTAuaHRtbDogQWRkZWQuCisgICAgICAgICogZmFzdC9ldmVudHMv
d2luZG93LW9uZXJyb3IxMS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZXZl
bnRzL3dpbmRvdy1vbmVycm9yMTEuaHRtbDogQWRkZWQuCisgICAgICAgICogZmFzdC9ldmVudHMv
d2luZG93LW9uZXJyb3IyLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC9ldmVu
dHMvd2luZG93LW9uZXJyb3IyLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZXZlbnRzL3dp
bmRvdy1vbmVycm9yMy1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZXZlbnRz
L3dpbmRvdy1vbmVycm9yMy5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2V2ZW50cy93aW5k
b3ctb25lcnJvcjQtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2V2ZW50cy93
aW5kb3ctb25lcnJvcjQuaHRtbDogQWRkZWQuCisgICAgICAgICogZmFzdC9ldmVudHMvd2luZG93
LW9uZXJyb3I1LWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC9ldmVudHMvd2lu
ZG93LW9uZXJyb3I1Lmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZXZlbnRzL3dpbmRvdy1v
bmVycm9yNi1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZXZlbnRzL3dpbmRv
dy1vbmVycm9yNi5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2V2ZW50cy93aW5kb3ctb25l
cnJvcjctZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2V2ZW50cy93aW5kb3ct
b25lcnJvcjcuaHRtbDogQWRkZWQuCisgICAgICAgICogZmFzdC9ldmVudHMvd2luZG93LW9uZXJy
b3I4LWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC9ldmVudHMvd2luZG93LW9u
ZXJyb3I4Lmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZXZlbnRzL3dpbmRvdy1vbmVycm9y
OS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZXZlbnRzL3dpbmRvdy1vbmVy
cm9yOS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L3dvcmtlcnMvd29ya2VyLXNjcmlwdC1l
cnJvci1leHBlY3RlZC50eHQ6CisgICAgICAgICogaHR0cC90ZXN0cy9zZWN1cml0eS9yZXNvdXJj
ZXMvb25lcnJvci1pZnJhbWUuaHRtbDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9zZWN1
cml0eS93aW5kb3ctb25lcnJvci1leGNlcHRpb24taW4taWZyYW1lLWV4cGVjdGVkLnR4dDogQWRk
ZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9zZWN1cml0eS93aW5kb3ctb25lcnJvci1leGNlcHRp
b24taW4taWZyYW1lLmh0bWw6IEFkZGVkLgorICAgICAgICAqIHBsYXRmb3JtL2Nocm9taXVtLXdp
bi9mYXN0L3dvcmtlcnMvd29ya2VyLXNjcmlwdC1lcnJvci1leHBlY3RlZC50eHQ6CisgICAgICAg
ICogcGxhdGZvcm0vY2hyb21pdW0vZmFzdC9ldmVudHMvd2luZG93LW9uZXJyb3IxLWV4cGVjdGVk
LnR4dDogQWRkZWQuCisgICAgICAgICogcGxhdGZvcm0vY2hyb21pdW0vZmFzdC9ldmVudHMvd2lu
ZG93LW9uZXJyb3IxMC1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIHBsYXRmb3JtL2No
cm9taXVtL2Zhc3QvZXZlbnRzL3dpbmRvdy1vbmVycm9yMTEtZXhwZWN0ZWQudHh0OiBBZGRlZC4K
KyAgICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS9mYXN0L2V2ZW50cy93aW5kb3ctb25lcnJvcjIt
ZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS9mYXN0L2V2
ZW50cy93aW5kb3ctb25lcnJvcjMtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBwbGF0
Zm9ybS9jaHJvbWl1bS9mYXN0L2V2ZW50cy93aW5kb3ctb25lcnJvcjQtZXhwZWN0ZWQudHh0OiBB
ZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS9mYXN0L2V2ZW50cy93aW5kb3ctb25l
cnJvcjUtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS9m
YXN0L2V2ZW50cy93aW5kb3ctb25lcnJvcjYtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAg
KiBwbGF0Zm9ybS9jaHJvbWl1bS9mYXN0L2V2ZW50cy93aW5kb3ctb25lcnJvcjctZXhwZWN0ZWQu
dHh0OiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS9mYXN0L2V2ZW50cy93aW5k
b3ctb25lcnJvcjgtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9jaHJv
bWl1bS9mYXN0L2V2ZW50cy93aW5kb3ctb25lcnJvcjktZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAg
ICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS9odHRwL3Rlc3RzL3NlY3VyaXR5L3dpbmRvdy1vbmVy
cm9yLWV4Y2VwdGlvbi1pbi1pZnJhbWUtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBw
bGF0Zm9ybS9jaHJvbWl1bS91c2Vyc2NyaXB0cy93aW5kb3ctb25lcnJvci1mb3ItaXNvbGF0ZWQt
d29ybGQtMS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIHBsYXRmb3JtL2Nocm9taXVt
L3VzZXJzY3JpcHRzL3dpbmRvdy1vbmVycm9yLWZvci1pc29sYXRlZC13b3JsZC0yLWV4cGVjdGVk
LnR4dDogQWRkZWQuCisgICAgICAgICogdXNlcnNjcmlwdHMvd2luZG93LW9uZXJyb3ItZm9yLWlz
b2xhdGVkLXdvcmxkLTEtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiB1c2Vyc2NyaXB0
cy93aW5kb3ctb25lcnJvci1mb3ItaXNvbGF0ZWQtd29ybGQtMS5odG1sOiBBZGRlZC4KKyAgICAg
ICAgKiB1c2Vyc2NyaXB0cy93aW5kb3ctb25lcnJvci1mb3ItaXNvbGF0ZWQtd29ybGQtMi1leHBl
Y3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIHVzZXJzY3JpcHRzL3dpbmRvdy1vbmVycm9yLWZv
ci1pc29sYXRlZC13b3JsZC0yLmh0bWw6IEFkZGVkLgorICAgICAgICAqIHVzZXJzY3JpcHRzL3dp
bmRvdy1vbmVycm9yLWZvci1pc29sYXRlZC13b3JsZC5odG1sOiBBZGRlZC4KKwogMjAxMC0xMi0w
OSAgWXVyeSBTZW1pa2hhdHNreSAgPHl1cnlzQGNocm9taXVtLm9yZz4KIAogICAgICAgICBSZXZp
ZXdlZCBieSBQYXZlbCBGZWxkbWFuLgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9ldmVu
dHMvcmVzb3VyY2VzL3dpbmRvdy1vbmVycm9yLmpzIGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMv
cmVzb3VyY2VzL3dpbmRvdy1vbmVycm9yLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAuLjM0NDU3NGIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50
cy9yZXNvdXJjZXMvd2luZG93LW9uZXJyb3IuanMKQEAgLTAsMCArMSwzIEBACitmdW5jdGlvbiB0
aHJvd0V4Y2VwdGlvbigpIHsKKyAgICB0aHJvdyBuZXcgRXJyb3IoIkFuIGV4Y2VwdGlvbiIpOwor
fQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvd2luZG93LW9uZXJyb3IxLWV4
cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3dpbmRvdy1vbmVycm9yMS1leHBl
Y3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZmU1MWI3MgotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3dpbmRvdy1vbmVycm9yMS1l
eHBlY3RlZC50eHQKQEAgLTAsMCArMSwzIEBACitUaGlzIHBhZ2UgdGVzdHMgc2V0dGluZyBvbmVy
cm9yIGhhbmRsZXJzIHRocm91Z2ggdGhlIERPTS4gSWYgaXQgcGFzc2VzLCB5b3Ugd2lsbCBzZWUg
IlBBU1MiIG1lc3NhZ2VzIGJlbG93LkJ1ZyA4NTE5LgorCitQQVNTOiBjYXVnaHQgZ2xvYmFsIGVy
cm9yOiBSZWZlcmVuY2VFcnJvcjogQ2FuJ3QgZmluZCB2YXJpYWJsZTogaGFoYWhhX2dvb2RfbHVj
a19maW5kaW5nX21lIGF0IHdpbmRvdy1vbmVycm9yMS5odG1sOjI1CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9mYXN0L2V2ZW50cy93aW5kb3ctb25lcnJvcjEuaHRtbCBiL0xheW91dFRlc3RzL2Zh
c3QvZXZlbnRzL3dpbmRvdy1vbmVycm9yMS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAuLjU5ZDI0OTUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2V2
ZW50cy93aW5kb3ctb25lcnJvcjEuaHRtbApAQCAtMCwwICsxLDM1IEBACis8aHRtbD4KKzxoZWFk
PgorPHNjcmlwdD4KK2lmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCisgICAgbGF5b3V0
VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOworCitmdW5jdGlvbiBwcmludChtZXNzYWdlLCBj
b2xvcikKK3sKKyAgICB2YXIgcGFyYWdyYXBoID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2
Iik7CisgICAgcGFyYWdyYXBoLmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKG1l
c3NhZ2UpKTsKKyAgICBwYXJhZ3JhcGguc3R5bGUuZm9udEZhbWlseSA9ICJtb25vc3BhY2UiOwor
ICAgIGlmIChjb2xvcikKKyAgICAgICAgcGFyYWdyYXBoLnN0eWxlLmNvbG9yID0gY29sb3I7Cisg
ICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNvbnNvbGUiKS5hcHBlbmRDaGlsZChwYXJhZ3Jh
cGgpOworfQorCitmdW5jdGlvbiB0ZXN0KCkKK3sKKyAgICAvLyBtdXN0IGJlIGxhc3QgYmVjYXVz
ZSB0aGUgZXhjZXB0aW9uIGVuZHMgSmF2YVNjcmlwdCBleGVjdXRpb24KKyAgICB3aW5kb3cub25l
cnJvciA9IGZ1bmN0aW9uIChlcnJvciwgdXJsLCBsaW5lKSB7CisgICAgICAgIHVybCA9IHVybCA/
IHVybC5tYXRjaCggL1teXC9dK1wvPyQvIClbMF0gOiB1cmw7CisgICAgICAgIHByaW50KCJQQVNT
OiBjYXVnaHQgZ2xvYmFsIGVycm9yOiAiICsgZXJyb3IgKyAiIGF0ICIgKyB1cmwgKyAiOiIgKyBs
aW5lLCAiZ3JlZW4iKTsKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH07CisgICAgaGFoYWhh
X2dvb2RfbHVja19maW5kaW5nX21lKCk7IC8vIGNhdWdodCBieSB3aW5kb3cub25lcnJvcgorfQor
PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keSBvbmxvYWQ9InRlc3QoKTsiPgorPHA+VGhpcyBwYWdl
IHRlc3RzIHNldHRpbmcgb25lcnJvciBoYW5kbGVycyB0aHJvdWdoIHRoZSBET00uIElmIGl0IHBh
c3NlcywgeW91IHdpbGwKKyAgIHNlZSAiUEFTUyIgbWVzc2FnZXMgYmVsb3cuPGEgaHJlZj0iaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTg1MTkiPkJ1ZyA4NTE5PC9hPi48
L3A+Cis8aHI+Cis8ZGl2IGlkPSdjb25zb2xlJz48L2Rpdj4KKzwvYm9keT4KKzwvaHRtbD4KZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3dpbmRvdy1vbmVycm9yMTAtZXhwZWN0
ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvd2luZG93LW9uZXJyb3IxMC1leHBlY3Rl
ZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYmZmNTYzNgotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3dpbmRvdy1vbmVycm9yMTAtZXhw
ZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTEgQEAKK1Rlc3QgdGhhdCAiZXJyb3IiIGV2ZW50IGxpc3Rl
bmVyIGFkZGVkIHdpdGggd2luZG93LmFkZEV2ZW50TGlzdGVuZXIgaXMgaW52b2tlZCBmb3IgdW5j
YXVjaHQgZXhjZXB0aW9ucy4gQnVnIDg1MTkuCisKK2V2ZW50IHBhc3NlZCB0byB0aGUgbGlzdGVu
ZXIgaXMgdGhlIHNhbWUgYXMgd2luZG93LmV2ZW50OiB0cnVlCitFdmVudCBkZXRhaWxzOgordHlw
ZTogZXJyb3IKK3BoYXNlOiAyCitjdXJyZW50VGFyZ2V0IGlzIHRoZSBnbG9iYWwgb2JqZWN0OiB0
cnVlCittZXNzYWdlOiBFcnJvcjogTXkgZmF1bHQuCitmaWxlbmFtZTogd2luZG93LW9uZXJyb3Ix
MC5odG1sCitsaW5lbm86IDI5CisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRz
L3dpbmRvdy1vbmVycm9yMTAuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3dpbmRvdy1v
bmVycm9yMTAuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yNmVkMDE4
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvd2luZG93LW9uZXJy
b3IxMC5odG1sCkBAIC0wLDAgKzEsMzMgQEAKKzxodG1sPgorPGJvZHk+Cis8cD5UZXN0IHRoYXQg
ImVycm9yIiBldmVudCBsaXN0ZW5lciBhZGRlZCB3aXRoIHdpbmRvdy5hZGRFdmVudExpc3RlbmVy
IGlzIGludm9rZWQgZm9yIHVuY2F1Y2h0IGV4Y2VwdGlvbnMuIDxhIGhyZWY9Imh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04NTE5Ij5CdWcgODUxOTwvYT4uPC9wPgorPGRp
diBpZD0iY29uc29sZSI+PC9kaXY+Cis8c2NyaXB0PgoraWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29u
dHJvbGxlcikKKyAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7CisKK2Z1bmN0
aW9uIGxvZyhtc2cpIHsKKyAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY29uc29sZSIpLmlu
bmVySFRNTCArPSBtc2cgKyAiPGJyPiI7Cit9CisKK2Z1bmN0aW9uIGxhc3RQYXRoQ29tcG9uZW50
KHVybCkgeworICAgIHJldHVybiB1cmwgPyB1cmwubWF0Y2goIC9bXlwvXStcLz8kLyApWzBdIDog
dXJsOworfQorCit3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigiZXJyb3IiLCBmdW5jdGlvbihlKSB7
CisgICAgbG9nKCJldmVudCBwYXNzZWQgdG8gdGhlIGxpc3RlbmVyIGlzIHRoZSBzYW1lIGFzIHdp
bmRvdy5ldmVudDogIiArICh3aW5kb3cuZXZlbnQgPT09IGUpKTsKKyAgICBsb2coIkV2ZW50IGRl
dGFpbHM6Iik7CisgICAgbG9nKCJ0eXBlOiAiICsgZS50eXBlKTsKKyAgICBsb2coInBoYXNlOiAi
ICsgZS5ldmVudFBoYXNlKQorICAgIGxvZygiY3VycmVudFRhcmdldCBpcyB0aGUgZ2xvYmFsIG9i
amVjdDogIiArIChlLmN1cnJlbnRUYXJnZXQgPT09IHdpbmRvdykpOworICAgIGxvZygibWVzc2Fn
ZTogIiArIGUubWVzc2FnZSk7CisgICAgbG9nKCJmaWxlbmFtZTogIiArIGxhc3RQYXRoQ29tcG9u
ZW50KGUuZmlsZW5hbWUpKTsKKyAgICBsb2coImxpbmVubzogIiArIGUubGluZW5vKTsKKyAgICBl
LnByZXZlbnREZWZhdWx0KCk7Cit9LCBmYWxzZSk7CisKK3Rocm93IG5ldyBFcnJvcigiTXkgZmF1
bHQuIik7CisKKzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvZmFzdC9ldmVudHMvd2luZG93LW9uZXJyb3IxMS1leHBlY3RlZC50eHQgYi9MYXlvdXRU
ZXN0cy9mYXN0L2V2ZW50cy93aW5kb3ctb25lcnJvcjExLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45NmUyMGNjCi0tLSAvZGV2L251bGwKKysrIGIvTGF5
b3V0VGVzdHMvZmFzdC9ldmVudHMvd2luZG93LW9uZXJyb3IxMS1leHBlY3RlZC50eHQKQEAgLTAs
MCArMSw0IEBACitUZXN0IHRoYXQgd2luZG93Lm9uZXJyb3IgaXMgY2FsbGVkIG9uIHdpbmRvdyBv
YmplY3QuIEJ1ZyA4NTE5LgorCitNYWluIGZyYW1lIHdpbmRvdy5vbmVycm9yOiBFcnJvcjogQW4g
ZXhjZXB0aW9uIGF0IHdpbmRvdy1vbmVycm9yLmpzOjIKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvZmFzdC9ldmVudHMvd2luZG93LW9uZXJyb3IxMS5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9l
dmVudHMvd2luZG93LW9uZXJyb3IxMS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAuLjc2NTVmYTcKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50
cy93aW5kb3ctb25lcnJvcjExLmh0bWwKQEAgLTAsMCArMSwyOCBAQAorPGh0bWw+Cis8aGVhZD4K
KzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvd2luZG93LW9uZXJyb3IuanMiPgorPC9zY3JpcHQ+Cis8
L2hlYWQ+Cis8Ym9keT4KKzxwPlRlc3QgdGhhdCB3aW5kb3cub25lcnJvciBpcyBjYWxsZWQgb24g
d2luZG93IG9iamVjdC4gPGEgaHJlZj0iaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTg1MTkiPkJ1ZyA4NTE5PC9hPi48L3A+Cis8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4K
KzxzY3JpcHQ+CitpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQorICAgIGxheW91dFRl
c3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKKworZnVuY3Rpb24gbG9nKG1zZykgeworICAgIGRv
Y3VtZW50LmdldEVsZW1lbnRCeUlkKCJjb25zb2xlIikuaW5uZXJIVE1MICs9IG1zZyArICI8YnI+
IjsKK30KKword2luZG93Lm9uZXJyb3IgPSBmdW5jdGlvbihtc2csIHVybCwgbGluZSkKK3sKKyAg
ICB1cmwgPSB1cmwgPyB1cmwubWF0Y2goIC9bXlwvXStcLz8kLyApWzBdIDogdXJsOworICAgIGxv
ZygiTWFpbiBmcmFtZSB3aW5kb3cub25lcnJvcjogIiArIG1zZyArICIgYXQgIiArIHVybCArICI6
IiArIGxpbmUpOworICAgIHJldHVybiBmYWxzZTsKK30KKwordGhyb3dFeGNlcHRpb24oKTsKKwor
PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0
L2V2ZW50cy93aW5kb3ctb25lcnJvcjItZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9l
dmVudHMvd2luZG93LW9uZXJyb3IyLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwLi45M2EyZDNmCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFz
dC9ldmVudHMvd2luZG93LW9uZXJyb3IyLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDYgQEAKK1Rl
c3QgdGhhdCB1bmNhdWdodCBleGNlcHRpb25zIHdpbGwgYmUgcmVwb3J0ZWQgdG8gdGhlIHdpbmRv
dy5vbmVycm9yIGhhbmRsZXIuIEJ1ZyA4NTE5LgorCitNYWluIGZyYW1lIHdpbmRvdy5vbmVycm9y
OiBFcnJvcjogSW5saW5lIHNjcmlwdCBleGNlcHRpb24gYXQgd2luZG93LW9uZXJyb3IyLmh0bWw6
MzUKK01haW4gZnJhbWUgd2luZG93Lm9uZXJyb3I6IEV4Y2VwdGlvbiBpbiBvbmxvYWQgYXQgdW5k
ZWZpbmVkOjAKK01haW4gZnJhbWUgd2luZG93Lm9uZXJyb3I6IEVycm9yOiBFeGNlcHRpb24gaW4g
c2V0VGltZW91dCBhdCB3aW5kb3ctb25lcnJvcjIuaHRtbDoyOQorCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9mYXN0L2V2ZW50cy93aW5kb3ctb25lcnJvcjIuaHRtbCBiL0xheW91dFRlc3RzL2Zh
c3QvZXZlbnRzL3dpbmRvdy1vbmVycm9yMi5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAuLmRiOWZiNzUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2V2
ZW50cy93aW5kb3ctb25lcnJvcjIuaHRtbApAQCAtMCwwICsxLDQxIEBACis8aHRtbD4KKzxib2R5
IG9ubG9hZD0idGhyb3cgJ0V4Y2VwdGlvbiBpbiBvbmxvYWQnOyI+Cis8cD5UZXN0IHRoYXQgdW5j
YXVnaHQgZXhjZXB0aW9ucyB3aWxsIGJlIHJlcG9ydGVkIHRvIHRoZSB3aW5kb3cub25lcnJvciBo
YW5kbGVyLiA8YSBocmVmPSJodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
ODUxOSI+QnVnIDg1MTk8L2E+LjwvcD4KKzxkaXYgaWQ9InJlc3VsdCI+PC9kaXY+Cis8c2NyaXB0
PgoraWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikgeworICAgIGxheW91dFRlc3RDb250
cm9sbGVyLmR1bXBBc1RleHQoKTsKKyAgICBsYXlvdXRUZXN0Q29udHJvbGxlci53YWl0VW50aWxE
b25lKCk7Cit9CisKK2Z1bmN0aW9uIGxvZyhtc2cpIHsKKyAgICBkb2N1bWVudC5nZXRFbGVtZW50
QnlJZCgicmVzdWx0IikuaW5uZXJIVE1MICs9IG1zZyArICI8YnI+IjsKK30KKwordmFyIHVuaGFu
ZGxlZEVycm9yQ291bnQgPSAwOword2luZG93Lm9uZXJyb3IgPSBmdW5jdGlvbihtc2csIHVybCwg
bGluZSkKK3sKKyAgICB1cmwgPSB1cmwgPyB1cmwubWF0Y2goIC9bXlwvXStcLz8kLyApWzBdIDog
dXJsOworICAgIGxvZygiTWFpbiBmcmFtZSB3aW5kb3cub25lcnJvcjogIiArIG1zZyArICIgYXQg
IiArIHVybCArICI6IiArIGxpbmUpOworICAgIAorICAgIGlmICgrK3VuaGFuZGxlZEVycm9yQ291
bnQgPT09IDMgJiYgd2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQorICAgICAgICBsYXlvdXRU
ZXN0Q29udHJvbGxlci5ub3RpZnlEb25lKCk7CisKKyAgICByZXR1cm4gZmFsc2U7Cit9CisKK2Z1
bmN0aW9uIGRlbGF5ZWRUaHJvd0V4Y2VwdGlvbigpCit7CisgICAgdGhyb3cgbmV3IEVycm9yKCJF
eGNlcHRpb24gaW4gc2V0VGltZW91dCIpOworfQorc2V0VGltZW91dChkZWxheWVkVGhyb3dFeGNl
cHRpb24sIDApOworCitmdW5jdGlvbiB0aHJvd0V4Y2VwdGlvbigpCit7CisgICAgdGhyb3cgbmV3
IEVycm9yKCJJbmxpbmUgc2NyaXB0IGV4Y2VwdGlvbiIpOworfQordGhyb3dFeGNlcHRpb24oKTsK
KworPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9m
YXN0L2V2ZW50cy93aW5kb3ctb25lcnJvcjMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFz
dC9ldmVudHMvd2luZG93LW9uZXJyb3IzLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwLi43MDI1ZGJiCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMv
ZmFzdC9ldmVudHMvd2luZG93LW9uZXJyb3IzLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDQgQEAK
K1lvdSBzaG91bGQgc2VlIGEgbWVzc2FnZSBpZiB3aW5kb3cub25lcnJvciBpcyB3b3JraW5nIHBy
b3Blcmx5IGZvciB0aGlzIHRlc3QuQnVnIDg1MTkuCisKK0Vycm9yIGNhdWdodCBzdWNjZXNzZnVs
bHk6IFJlZmVyZW5jZUVycm9yOiBDYW4ndCBmaW5kIHZhcmlhYmxlOiB1bmtub3duT2JqZWN0IEZp
bGU6IHdpbmRvdy1vbmVycm9yMy5odG1sIExpbmU6IDE2CisKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2Zhc3QvZXZlbnRzL3dpbmRvdy1vbmVycm9yMy5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9l
dmVudHMvd2luZG93LW9uZXJyb3IzLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMC4uZWUyODkzZgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRz
L3dpbmRvdy1vbmVycm9yMy5odG1sCkBAIC0wLDAgKzEsMjMgQEAKKzxzY3JpcHQ+CitpZiAod2lu
ZG93LmxheW91dFRlc3RDb250cm9sbGVyKQorICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBB
c1RleHQoKTsKKworZnVuY3Rpb24gbG9nKG1zZykgeworICAgIGRvY3VtZW50LmdldEVsZW1lbnRC
eUlkKCJjb25zb2xlIikuaW5uZXJIVE1MICs9IG1zZyArICI8YnI+IjsKK30KKworZnVuY3Rpb24g
dGVzdDEoKQoreworICAgIHdpbmRvdy5vbmVycm9yID0gZnVuY3Rpb24gKGVycm9yLCB1cmwsIGxp
bmUpIHsKKyAgICAgICAgdXJsID0gdXJsID8gdXJsLm1hdGNoKCAvW15cL10rXC8/JC8gKVswXSA6
IHVybDsKKyAgICAgICAgbG9nKCJFcnJvciBjYXVnaHQgc3VjY2Vzc2Z1bGx5OiAiICsgZXJyb3Ig
KyAiXG5GaWxlOiAiICsgdXJsICsgIlxuTGluZTogIiArIGxpbmUpCisgICAgICAgIHJldHVybiBm
YWxzZTsKKyAgICB9OworICAgIHVua25vd25PYmplY3QudW5rbm93blByb3BlcnR5Kys7Cit9Cis8
L3NjcmlwdD4KKzxib2R5IG9ubG9hZD0idGVzdDEoKTsiPgorPHA+WW91IHNob3VsZCBzZWUgYSBt
ZXNzYWdlIGlmIHdpbmRvdy5vbmVycm9yIGlzIHdvcmtpbmcgcHJvcGVybHkgZm9yIHRoaXMgdGVz
dC48YSBocmVmPSJodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODUxOSI+
QnVnIDg1MTk8L2E+LjwvcD4KKzxocj4KKzxkaXYgaWQ9J2NvbnNvbGUnPjwvZGl2PgorPC9ib2R5
PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvd2luZG93LW9uZXJyb3I0LWV4
cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3dpbmRvdy1vbmVycm9yNC1leHBl
Y3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMjZhZjhhMQotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3dpbmRvdy1vbmVycm9yNC1l
eHBlY3RlZC50eHQKQEAgLTAsMCArMSw0IEBACitZb3Ugc2hvdWxkIHNlZSBhIGxvZyByZWNvcmQg
aWYgd2luZG93Lm9uZXJyb3IgaXMgd29ya2luZyBwcm9wZXJseSBmb3IgdGhpcyB0ZXN0LkJ1ZyA4
NTE5LgorCitFcnJvciBjYXVnaHQgc3VjY2Vzc2Z1bGx5OiBSZWZlcmVuY2VFcnJvcjogTGVmdCBz
aWRlIG9mIGFzc2lnbm1lbnQgaXMgbm90IGEgcmVmZXJlbmNlLiBGaWxlOiB1bmRlZmluZWQgTGlu
ZTogMQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy93aW5kb3ctb25lcnJv
cjQuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3dpbmRvdy1vbmVycm9yNC5odG1sCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmM1MTg4N2QKLS0tIC9kZXYvbnVsbAor
KysgYi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy93aW5kb3ctb25lcnJvcjQuaHRtbApAQCAtMCww
ICsxLDIzIEBACis8c2NyaXB0PgoraWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKKyAg
ICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7CisKK2Z1bmN0aW9uIGxvZyhtc2cp
IHsKKyAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY29uc29sZSIpLmlubmVySFRNTCArPSBt
c2cgKyAiPGJyPiI7Cit9CisKK2Z1bmN0aW9uIHRlc3QxKCkKK3sKKyAgICB3aW5kb3cub25lcnJv
ciA9IGZ1bmN0aW9uIChlcnJvciwgdXJsLCBsaW5lKSB7CisgICAgICAgIHVybCA9IHVybCA/IHVy
bC5tYXRjaCggL1teXC9dK1wvPyQvIClbMF0gOiB1cmw7CisgICAgICAgIGxvZygiRXJyb3IgY2F1
Z2h0IHN1Y2Nlc3NmdWxseTogIiArIGVycm9yICsgIlxuRmlsZTogIiArIHVybCArICJcbkxpbmU6
ICIgKyBsaW5lKQorICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfTsKKyAgICBldmFsKCIxPTIi
KTsKK30KKzwvc2NyaXB0PgorPGJvZHkgb25sb2FkPSJ0ZXN0MSgpOyI+Cis8cD5Zb3Ugc2hvdWxk
IHNlZSBhIGxvZyByZWNvcmQgaWYgd2luZG93Lm9uZXJyb3IgaXMgd29ya2luZyBwcm9wZXJseSBm
b3IgdGhpcyB0ZXN0LjxhIGhyZWY9Imh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD04NTE5Ij5CdWcgODUxOTwvYT4uPC9wPgorPGhyPgorPGRpdiBpZD0nY29uc29sZSc+PC9k
aXY+Cis8L2JvZHk+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy93aW5kb3ct
b25lcnJvcjUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvd2luZG93LW9u
ZXJyb3I1LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4z
ZWM3ZjVlCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvd2luZG93
LW9uZXJyb3I1LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDQgQEAKK1Rlc3QgdGhhdCB3aW5kb3cu
b25lcnJvciBpcyBpbnZva2VkIGZvciBzeW50YXggZXJyb3IgaW4gZXZhbC4gWW91IHNob3VsZCBz
ZWUgYSBsb2cgcmVjb3JkIGlmIHdpbmRvdy5vbmVycm9yIGlzIHdvcmtpbmcgcHJvcGVybHkgZm9y
IHRoaXMgdGVzdC5CdWcgODUxOS4KKworRXJyb3IgY2F1Z2h0IHN1Y2Nlc3NmdWxseTogU3ludGF4
RXJyb3I6IFBhcnNlIGVycm9yIEZpbGU6IHVuZGVmaW5lZCBMaW5lOiAxCisKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3dpbmRvdy1vbmVycm9yNS5odG1sIGIvTGF5b3V0VGVz
dHMvZmFzdC9ldmVudHMvd2luZG93LW9uZXJyb3I1Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMC4uOTMyZDQzOAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zh
c3QvZXZlbnRzL3dpbmRvdy1vbmVycm9yNS5odG1sCkBAIC0wLDAgKzEsMjMgQEAKKzxzY3JpcHQ+
CitpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQorICAgIGxheW91dFRlc3RDb250cm9s
bGVyLmR1bXBBc1RleHQoKTsKKworZnVuY3Rpb24gbG9nKG1zZykgeworICAgIGRvY3VtZW50Lmdl
dEVsZW1lbnRCeUlkKCJjb25zb2xlIikuaW5uZXJIVE1MICs9IG1zZyArICI8YnI+IjsKK30KKwor
ZnVuY3Rpb24gdGVzdDEoKQoreworICAgIHdpbmRvdy5vbmVycm9yID0gZnVuY3Rpb24gKGVycm9y
LCB1cmwsIGxpbmUpIHsKKyAgICAgICAgdXJsID0gdXJsID8gdXJsLm1hdGNoKCAvW15cL10rXC8/
JC8gKVswXSA6IHVybDsKKyAgICAgICAgbG9nKCJFcnJvciBjYXVnaHQgc3VjY2Vzc2Z1bGx5OiAi
ICsgZXJyb3IgKyAiXG5GaWxlOiAiICsgdXJsICsgIlxuTGluZTogIiArIGxpbmUpCisgICAgICAg
IHJldHVybiBmYWxzZTsKKyAgICB9OworICAgIGV2YWwoImEoIik7Cit9Cis8L3NjcmlwdD4KKzxi
b2R5IG9ubG9hZD0idGVzdDEoKTsiPgorPHA+VGVzdCB0aGF0IHdpbmRvdy5vbmVycm9yIGlzIGlu
dm9rZWQgZm9yIHN5bnRheCBlcnJvciBpbiBldmFsLiBZb3Ugc2hvdWxkIHNlZSBhIGxvZyByZWNv
cmQgaWYgd2luZG93Lm9uZXJyb3IgaXMgd29ya2luZyBwcm9wZXJseSBmb3IgdGhpcyB0ZXN0Ljxh
IGhyZWY9Imh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04NTE5Ij5CdWcg
ODUxOTwvYT4uPC9wPgorPGhyPgorPGRpdiBpZD0nY29uc29sZSc+PC9kaXY+Cis8L2JvZHk+CmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy93aW5kb3ctb25lcnJvcjYtZXhwZWN0
ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvd2luZG93LW9uZXJyb3I2LWV4cGVjdGVk
LnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lN2MyN2JiCi0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvd2luZG93LW9uZXJyb3I2LWV4cGVj
dGVkLnR4dApAQCAtMCwwICsxLDQgQEAKK1Rlc3QgdGhhdCBzeW50YXggZXJyb3Igd2lsbCBiZSBy
ZXBvcnRlZCB0byB0aGUgd2luZG93Lm9uZXJyb3IgaGFuZGxlci4gQnVnIDg1MTkuCisKK01haW4g
ZnJhbWUgd2luZG93Lm9uZXJyb3I6IFN5bnRheEVycm9yOiBQYXJzZSBlcnJvciBhdCB3aW5kb3ct
b25lcnJvcjYuaHRtbDoyMgorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy93
aW5kb3ctb25lcnJvcjYuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3dpbmRvdy1vbmVy
cm9yNi5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjE5Nzg0MzYKLS0t
IC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy93aW5kb3ctb25lcnJvcjYu
aHRtbApAQCAtMCwwICsxLDI2IEBACis8aHRtbD4KKzxib2R5PgorPHA+VGVzdCB0aGF0IHN5bnRh
eCBlcnJvciB3aWxsIGJlIHJlcG9ydGVkIHRvIHRoZSB3aW5kb3cub25lcnJvciBoYW5kbGVyLiA8
YSBocmVmPSJodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODUxOSI+QnVn
IDg1MTk8L2E+LjwvcD4KKzxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgorPHNjcmlwdD4KK2lmICh3
aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCisgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVt
cEFzVGV4dCgpOworCitmdW5jdGlvbiBsb2cobXNnKSB7CisgICAgZG9jdW1lbnQuZ2V0RWxlbWVu
dEJ5SWQoImNvbnNvbGUiKS5pbm5lckhUTUwgKz0gbXNnICsgIjxicj4iOworfQorCit3aW5kb3cu
b25lcnJvciA9IGZ1bmN0aW9uKG1zZywgdXJsLCBsaW5lKQoreworICAgIHVybCA9IHVybCA/IHVy
bC5tYXRjaCggL1teXC9dK1wvPyQvIClbMF0gOiB1cmw7CisgICAgbG9nKCJNYWluIGZyYW1lIHdp
bmRvdy5vbmVycm9yOiAiICsgbXNnICsgIiBhdCAiICsgdXJsICsgIjoiICsgbGluZSk7CisgICAg
cmV0dXJuIGZhbHNlOworfQorPC9zY3JpcHQ+Cis8c2NyaXB0PgorCithKSAvLyBzeW50YXggZXJy
b3IKKworPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9mYXN0L2V2ZW50cy93aW5kb3ctb25lcnJvcjctZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMv
ZmFzdC9ldmVudHMvd2luZG93LW9uZXJyb3I3LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwLi41ZDIyZTdlCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvZmFzdC9ldmVudHMvd2luZG93LW9uZXJyb3I3LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDYg
QEAKK0NPTlNPTEUgTUVTU0FHRTogbGluZSAyMDogRXJyb3I6IE9yaWdpbmFsIGVycm9yCitDT05T
T0xFIE1FU1NBR0U6IGxpbmUgMTc6IEVycm9yOiBOZXN0ZWQgZXJyb3IKK1Rlc3QgdGhhdCBleGNl
cHRpb24gaW4gd2luZG93Lm9uZXJyb3Igd29uJ3QgbGVhZCB0byByZWN1cnNpdmUgd2luZG93Lm9u
ZXJyb3IgY2FsbC4gQnVnIDg1MTkuCisKK01haW4gZnJhbWUgd2luZG93Lm9uZXJyb3I6IEVycm9y
OiBPcmlnaW5hbCBlcnJvciBhdCB3aW5kb3ctb25lcnJvcjcuaHRtbDoyMAorCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy93aW5kb3ctb25lcnJvcjcuaHRtbCBiL0xheW91dFRl
c3RzL2Zhc3QvZXZlbnRzL3dpbmRvdy1vbmVycm9yNy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAuLmY2NjU2ODYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9m
YXN0L2V2ZW50cy93aW5kb3ctb25lcnJvcjcuaHRtbApAQCAtMCwwICsxLDI0IEBACis8aHRtbD4K
Kzxib2R5PgorPHA+VGVzdCB0aGF0IGV4Y2VwdGlvbiBpbiB3aW5kb3cub25lcnJvciB3b24ndCBs
ZWFkIHRvIHJlY3Vyc2l2ZSB3aW5kb3cub25lcnJvciBjYWxsLiA8YSBocmVmPSJodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODUxOSI+QnVnIDg1MTk8L2E+LjwvcD4KKzxk
aXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgorPHNjcmlwdD4KK2lmICh3aW5kb3cubGF5b3V0VGVzdENv
bnRyb2xsZXIpCisgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOworCitmdW5j
dGlvbiBsb2cobXNnKSB7CisgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNvbnNvbGUiKS5p
bm5lckhUTUwgKz0gbXNnICsgIjxicj4iOworfQorCit3aW5kb3cub25lcnJvciA9IGZ1bmN0aW9u
KG1zZywgdXJsLCBsaW5lKQoreworICAgIHVybCA9IHVybCA/IHVybC5tYXRjaCggL1teXC9dK1wv
PyQvIClbMF0gOiB1cmw7CisgICAgbG9nKCJNYWluIGZyYW1lIHdpbmRvdy5vbmVycm9yOiAiICsg
bXNnICsgIiBhdCAiICsgdXJsICsgIjoiICsgbGluZSk7CisgICAgdGhyb3cgbmV3IEVycm9yKCJO
ZXN0ZWQgZXJyb3IiKTsKK30KKwordGhyb3cgbmV3IEVycm9yKCJPcmlnaW5hbCBlcnJvciIpOwor
Cis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zh
c3QvZXZlbnRzL3dpbmRvdy1vbmVycm9yOC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0
L2V2ZW50cy93aW5kb3ctb25lcnJvcjgtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAuLmVmYzYzMDgKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9m
YXN0L2V2ZW50cy93aW5kb3ctb25lcnJvcjgtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNSBAQAor
VGVzdCB0aGF0IHdpbmRvdy5vbmVycm9yIGlzIGNhbGxlZCBvbiB3aW5kb3cgb2JqZWN0LiBCdWcg
ODUxOS4KKworTWFpbiBmcmFtZSB3aW5kb3cub25lcnJvcjogMjAxMCBhdCB1bmRlZmluZWQ6MAor
UEFTU0VEOiB0aGlzID09PSB3aW5kb3cKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9l
dmVudHMvd2luZG93LW9uZXJyb3I4Lmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy93aW5k
b3ctb25lcnJvcjguaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iYWRl
NTM4Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvd2luZG93LW9u
ZXJyb3I4Lmh0bWwKQEAgLTAsMCArMSwyOCBAQAorPGh0bWw+Cis8Ym9keT4KKzxwPlRlc3QgdGhh
dCB3aW5kb3cub25lcnJvciBpcyBjYWxsZWQgb24gd2luZG93IG9iamVjdC4gPGEgaHJlZj0iaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTg1MTkiPkJ1ZyA4NTE5PC9hPi48
L3A+Cis8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KKzxzY3JpcHQ+CitpZiAod2luZG93LmxheW91
dFRlc3RDb250cm9sbGVyKQorICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsK
KworZnVuY3Rpb24gbG9nKG1zZykgeworICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjb25z
b2xlIikuaW5uZXJIVE1MICs9IG1zZyArICI8YnI+IjsKK30KKword2luZG93Lm9uZXJyb3IgPSBm
dW5jdGlvbihtc2csIHVybCwgbGluZSkKK3sKKyAgICB1cmwgPSB1cmwgPyB1cmwubWF0Y2goIC9b
XlwvXStcLz8kLyApWzBdIDogdXJsOworICAgIGxvZygiTWFpbiBmcmFtZSB3aW5kb3cub25lcnJv
cjogIiArIG1zZyArICIgYXQgIiArIHVybCArICI6IiArIGxpbmUpOworICAgIGlmICh0aGlzID09
PSB3aW5kb3cpIAorICAgICAgICBsb2coIlBBU1NFRDogdGhpcyA9PT0gd2luZG93Iik7CisgICAg
ZWxzZQorICAgICAgICBsb2coIkZBSUxFRDogdGhpcyA9PT0gd2luZG93Iik7CisgICAgcmV0dXJu
IGZhbHNlOworfQorCit0aHJvdyAyMDEwOworCis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4K
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3dpbmRvdy1vbmVycm9yOS1leHBl
Y3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy93aW5kb3ctb25lcnJvcjktZXhwZWN0
ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjk0MzE2ZDMKLS0tIC9k
ZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy93aW5kb3ctb25lcnJvcjktZXhw
ZWN0ZWQudHh0CkBAIC0wLDAgKzEsOCBAQAorVGVzdCB0aGF0IHdoZW4gd2luZG93Lm9uZXJyb3Ig
aGFuZGxlciBpcyBjYWxsZWQsIHdpbmRvdy5ldmVudCBpcyB0aGUgY29ycmVzcG9uZGluZyBFcnJv
ckV2ZW50IG9iamVjdC4gQnVnIDg1MTkuCisKK01haW4gZnJhbWUgd2luZG93Lm9uZXJyb3I6IEVy
cm9yOiAyMDEwIGF0IHdpbmRvdy1vbmVycm9yOS5odG1sOjMxCit3aW5kb3cuZXZlbnQudHlwZSA9
IGVycm9yCit3aW5kb3cuZXZlbnQubWVzc2FnZSA9IEVycm9yOiAyMDEwCit3aW5kb3cuZXZlbnQu
ZmlsZW5hbWUgPSB3aW5kb3ctb25lcnJvcjkuaHRtbAord2luZG93LmV2ZW50LmxpbmVubyA9IDMx
CisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3dpbmRvdy1vbmVycm9yOS5o
dG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvd2luZG93LW9uZXJyb3I5Lmh0bWwKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMTA4NmFjZQotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3dpbmRvdy1vbmVycm9yOS5odG1sCkBAIC0wLDAgKzEs
MzUgQEAKKzxodG1sPgorPGJvZHk+Cis8cD5UZXN0IHRoYXQgd2hlbiB3aW5kb3cub25lcnJvciBo
YW5kbGVyIGlzIGNhbGxlZCwgd2luZG93LmV2ZW50IGlzIHRoZSBjb3JyZXNwb25kaW5nIEVycm9y
RXZlbnQgb2JqZWN0LiA8YSBocmVmPSJodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9ODUxOSI+QnVnIDg1MTk8L2E+LjwvcD4KKzxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2Pgor
PHNjcmlwdD4KK2lmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpIHsKKyAgICBsYXlvdXRU
ZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7CisgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIud2Fp
dFVudGlsRG9uZSgpOworfQorCitmdW5jdGlvbiBsb2cobXNnKSB7CisgICAgZG9jdW1lbnQuZ2V0
RWxlbWVudEJ5SWQoImNvbnNvbGUiKS5pbm5lckhUTUwgKz0gbXNnICsgIjxicj4iOworfQorCitm
dW5jdGlvbiBsYXN0UGF0aENvbXBvbmVudCh1cmwpIHsKKyAgICByZXR1cm4gdXJsID8gdXJsLm1h
dGNoKCAvW15cL10rXC8/JC8gKVswXSA6IHVybDsKK30KKword2luZG93Lm9uZXJyb3IgPSBmdW5j
dGlvbihtc2csIHVybCwgbGluZSkKK3sKKyAgICBsb2coIk1haW4gZnJhbWUgd2luZG93Lm9uZXJy
b3I6ICIgKyBtc2cgKyAiIGF0ICIgKyBsYXN0UGF0aENvbXBvbmVudCh1cmwpICsgIjoiICsgbGlu
ZSk7CisgICAgbG9nKCJ3aW5kb3cuZXZlbnQudHlwZSA9ICIgKyB3aW5kb3cuZXZlbnQudHlwZSk7
CisgICAgbG9nKCJ3aW5kb3cuZXZlbnQubWVzc2FnZSA9ICIgKyB3aW5kb3cuZXZlbnQubWVzc2Fn
ZSk7CisgICAgbG9nKCJ3aW5kb3cuZXZlbnQuZmlsZW5hbWUgPSAiICsgbGFzdFBhdGhDb21wb25l
bnQod2luZG93LmV2ZW50LmZpbGVuYW1lKSk7CisgICAgbG9nKCJ3aW5kb3cuZXZlbnQubGluZW5v
ID0gIiArIHdpbmRvdy5ldmVudC5saW5lbm8pOworICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENv
bnRyb2xsZXIpCisgICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLm5vdGlmeURvbmUoKTsKKyAg
ICByZXR1cm4gZmFsc2U7Cit9CisKK3Rocm93IG5ldyBFcnJvcigyMDEwKTsKKworPC9zY3JpcHQ+
Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3dvcmtlcnMv
d29ya2VyLXNjcmlwdC1lcnJvci1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L3dvcmtl
cnMvd29ya2VyLXNjcmlwdC1lcnJvci1leHBlY3RlZC50eHQKaW5kZXggMTBhYjA0OS4uNDA0MTY0
MCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC93b3JrZXJzL3dvcmtlci1zY3JpcHQtZXJy
b3ItZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2Zhc3Qvd29ya2Vycy93b3JrZXItc2Ny
aXB0LWVycm9yLWV4cGVjdGVkLnR4dApAQCAtNCw4ICs0LDggQEAgVGVzdCBXb3JrZXIgc2NyaXB0
IGVycm9yIGhhbmRsaW5nIGZ1bmN0aW9uYWxpdHkuIFNob3VsZCBwcmludCBhIHNlcmllcyBvZiBQ
QVNTIG0KIFBBU1M6IG9uZXJyb3IgaW52b2tlZCBmb3IgYSBzY3JpcHQgdGhhdCBoYXMgaW52YWxp
ZCBzeW50YXguCiBQQVNTOiBvbmVycm9yIGludm9rZWQgZm9yIGEgc2NyaXB0IHRoYXQgaGFzIHNj
cmlwdCBlcnJvciAnUmVmZXJlbmNlRXJyb3I6IENhbid0IGZpbmQgdmFyaWFibGU6IGZvbycgYXQg
bGluZSAxLgogUEFTUzogZXZlbnQgbGlzdGVuZXIgaW52b2tlZCBmb3IgYSBzY3JpcHQgdGhhdCBo
YXMgc2NyaXB0IGVycm9yICdSZWZlcmVuY2VFcnJvcjogQ2FuJ3QgZmluZCB2YXJpYWJsZTogZm9v
JyBhdCBsaW5lIDEuCi1QQVNTOiBvbmVycm9yIGludm9rZWQgZm9yIGEgc2NyaXB0IHRoYXQgaGFz
IHNjcmlwdCBlcnJvciAnUmVmZXJlbmNlRXJyb3I6IENhbid0IGZpbmQgdmFyaWFibGU6IGJhcicg
YXQgbGluZSAzLgogUEFTUzogb25lcnJvciBpbnZva2VkIGZvciBhIHNjcmlwdCB0aGF0IGhhcyBz
Y3JpcHQgZXJyb3IgJ1JlZmVyZW5jZUVycm9yOiBDYW4ndCBmaW5kIHZhcmlhYmxlOiBmb28nIGF0
IGxpbmUgNy4KK1BBU1M6IG9uZXJyb3IgaW52b2tlZCBmb3IgYSBzY3JpcHQgdGhhdCBoYXMgc2Ny
aXB0IGVycm9yICdSZWZlcmVuY2VFcnJvcjogQ2FuJ3QgZmluZCB2YXJpYWJsZTogYmFyJyBhdCBs
aW5lIDMuCiBQQVNTOiBvbmVycm9yIGludm9rZWQgZm9yIGEgc2NyaXB0IHRoYXQgaGFzIHNjcmlw
dCBlcnJvciAnUmVmZXJlbmNlRXJyb3I6IENhbid0IGZpbmQgdmFyaWFibGU6IGZvbycgYXQgbGlu
ZSA3LgogUEFTUzogb25lcnJvciBpbnZva2VkIGZvciBhIHNjcmlwdCB0aGF0IGhhcyBzY3JpcHQg
ZXJyb3IgJ1JlZmVyZW5jZUVycm9yOiBDYW4ndCBmaW5kIHZhcmlhYmxlOiBmb28nIGF0IGxpbmUg
Ny4KIFBBU1M6IG1lc3NhZ2UgcmVjZWl2ZWQgZnJvbSBXb3JrZXJHbG9iYWxTY29wZS5vbmVycm9y
OiBvbmVycm9yIGludm9rZWQgZm9yIGEgc2NyaXB0IHRoYXQgaGFzIHNjcmlwdCBlcnJvciAnUmVm
ZXJlbmNlRXJyb3I6IENhbid0IGZpbmQgdmFyaWFibGU6IGZvbycgYXQgbGluZSA3LgpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9yZXNvdXJjZXMvb25lcnJvci1p
ZnJhbWUuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvcmVzb3VyY2VzL29u
ZXJyb3ItaWZyYW1lLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMzEy
ZmQxMgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkv
cmVzb3VyY2VzL29uZXJyb3ItaWZyYW1lLmh0bWwKQEAgLTAsMCArMSwxMSBAQAorPHNjcmlwdD4K
K2Z1bmN0aW9uIGhhbmRsZUxvYWQoKQoreworICAgIHdpbmRvdy5wYXJlbnQucG9zdE1lc3NhZ2Uo
IklGcmFtZUxvYWRlZCIsICIqIik7Cit9CisKK3Rocm93ICJJZnJhbWVFeGNlcHRpb24iOworCis8
L3NjcmlwdD4KKzxib2R5IG9ubG9hZD0iaGFuZGxlTG9hZCgpIj4KKzwvYm9keT4KZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvd2luZG93LW9uZXJyb3ItZXhjZXB0
aW9uLWluLWlmcmFtZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3Vy
aXR5L3dpbmRvdy1vbmVycm9yLWV4Y2VwdGlvbi1pbi1pZnJhbWUtZXhwZWN0ZWQudHh0Cm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjhiMTdkOTIKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L3dpbmRvdy1vbmVycm9yLWV4Y2VwdGlv
bi1pbi1pZnJhbWUtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNiBAQAorQ09OU09MRSBNRVNTQUdF
OiBsaW5lIDA6IElmcmFtZUV4Y2VwdGlvbgorVGVzdCB0aGF0IGV4Y2VwdGlvbnMgaW4gaWZyYW1l
IGFyZSBub3QgcmVwb3J0ZWQgdG8gdGhlIG1haW4gZnJhbWUgd2luZG93Lm9uZXJyb3IgaGFuZGxl
ci4gd2luZG93Lm9uZXJyb3Igc2hvdWxkIHByaW50IGV4YWN0bHkgb25lIGxpbmUuCisKK01haW4g
ZnJhbWUgd2luZG93Lm9uZXJyb3I6IE1haW5GcmFtZUV4Y2VwdGlvbiBhdCB1bmRlZmluZWQ6MAor
RE9ORQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L3dpbmRv
dy1vbmVycm9yLWV4Y2VwdGlvbi1pbi1pZnJhbWUuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVz
dHMvc2VjdXJpdHkvd2luZG93LW9uZXJyb3ItZXhjZXB0aW9uLWluLWlmcmFtZS5odG1sCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjA5MDRlMzkKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L3dpbmRvdy1vbmVycm9yLWV4Y2VwdGlv
bi1pbi1pZnJhbWUuaHRtbApAQCAtMCwwICsxLDM5IEBACis8aHRtbD4KKzxib2R5PgorPHA+VGVz
dCB0aGF0IGV4Y2VwdGlvbnMgaW4gaWZyYW1lIGFyZSBub3QgcmVwb3J0ZWQgdG8gdGhlIG1haW4g
ZnJhbWUgd2luZG93Lm9uZXJyb3IgaGFuZGxlci4KK3dpbmRvdy5vbmVycm9yIHNob3VsZCBwcmlu
dCBleGFjdGx5IG9uZSBsaW5lLjwvcD4KKzxkaXYgaWQ9InJlc3VsdCI+PC9kaXY+Cis8c2NyaXB0
PgoraWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikgeworICAgIGxheW91dFRlc3RDb250
cm9sbGVyLmR1bXBBc1RleHQoKTsKKyAgICBsYXlvdXRUZXN0Q29udHJvbGxlci53YWl0VW50aWxE
b25lKCk7Cit9CisKK2Z1bmN0aW9uIGxvZyhtc2cpIHsKKyAgICBkb2N1bWVudC5nZXRFbGVtZW50
QnlJZCgicmVzdWx0IikuaW5uZXJIVE1MICs9IG1zZyArICI8YnI+IjsKK30KKword2luZG93Lm9u
ZXJyb3IgPSBmdW5jdGlvbihtc2csIHVybCwgbGluZSkKK3sKKyAgICB1cmwgPSB1cmwgPyB1cmwu
bWF0Y2goIC9bXlwvXStcLz8kLyApWzBdIDogdXJsOworICAgIGxvZygiTWFpbiBmcmFtZSB3aW5k
b3cub25lcnJvcjogIiArIG1zZyArICIgYXQgIiArIHVybCArICI6IiArIGxpbmUpOworICAgIHJl
dHVybiBmYWxzZTsKK30KKworZnVuY3Rpb24gcmVjZWl2ZU1lc3NhZ2UoZXZlbnQpIHsKKyAgICBp
ZiAoZXZlbnQuZGF0YSA9PT0gIklGcmFtZUxvYWRlZCIpIHsKKyAgICAgICAgbG9nKCJET05FIik7
CisgICAgICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCisgICAgICAgICAgICBs
YXlvdXRUZXN0Q29udHJvbGxlci5ub3RpZnlEb25lKCk7CisgICAgfSBlbHNlCisgICAgICAgIGxv
ZygiRkFJTCAiICsgZXZlbnQuZGF0YSk7Cit9CisKK3dpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJt
ZXNzYWdlIiwgcmVjZWl2ZU1lc3NhZ2UsIGZhbHNlKTsKKwordGhyb3cgIk1haW5GcmFtZUV4Y2Vw
dGlvbiI7CisKKzwvc2NyaXB0PgorPGlmcmFtZSBzcmM9Imh0dHA6Ly9sb2NhbGhvc3Q6ODAwMC9z
ZWN1cml0eS9yZXNvdXJjZXMvb25lcnJvci1pZnJhbWUuaHRtbCIvPgorPC9ib2R5PgorPC9odG1s
PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0td2luL2Zhc3Qvd29y
a2Vycy93b3JrZXItc2NyaXB0LWVycm9yLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3BsYXRm
b3JtL2Nocm9taXVtLXdpbi9mYXN0L3dvcmtlcnMvd29ya2VyLXNjcmlwdC1lcnJvci1leHBlY3Rl
ZC50eHQKaW5kZXggZmRmNjYwYi4uZWYwYTM5MSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxh
dGZvcm0vY2hyb21pdW0td2luL2Zhc3Qvd29ya2Vycy93b3JrZXItc2NyaXB0LWVycm9yLWV4cGVj
dGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS13aW4vZmFzdC93b3Jr
ZXJzL3dvcmtlci1zY3JpcHQtZXJyb3ItZXhwZWN0ZWQudHh0CkBAIC0zLDggKzMsOCBAQCBUZXN0
IFdvcmtlciBzY3JpcHQgZXJyb3IgaGFuZGxpbmcgZnVuY3Rpb25hbGl0eS4gU2hvdWxkIHByaW50
IGEgc2VyaWVzIG9mIFBBU1MgbQogUEFTUzogb25lcnJvciBpbnZva2VkIGZvciBhIHNjcmlwdCB0
aGF0IGhhcyBpbnZhbGlkIHN5bnRheC4KIFBBU1M6IG9uZXJyb3IgaW52b2tlZCBmb3IgYSBzY3Jp
cHQgdGhhdCBoYXMgc2NyaXB0IGVycm9yICdVbmNhdWdodCBSZWZlcmVuY2VFcnJvcjogZm9vIGlz
IG5vdCBkZWZpbmVkJyBhdCBsaW5lIDEuCiBQQVNTOiBldmVudCBsaXN0ZW5lciBpbnZva2VkIGZv
ciBhIHNjcmlwdCB0aGF0IGhhcyBzY3JpcHQgZXJyb3IgJ1VuY2F1Z2h0IFJlZmVyZW5jZUVycm9y
OiBmb28gaXMgbm90IGRlZmluZWQnIGF0IGxpbmUgMS4KLVBBU1M6IG9uZXJyb3IgaW52b2tlZCBm
b3IgYSBzY3JpcHQgdGhhdCBoYXMgc2NyaXB0IGVycm9yICdVbmNhdWdodCBSZWZlcmVuY2VFcnJv
cjogYmFyIGlzIG5vdCBkZWZpbmVkJyBhdCBsaW5lIDMuCiBQQVNTOiBvbmVycm9yIGludm9rZWQg
Zm9yIGEgc2NyaXB0IHRoYXQgaGFzIHNjcmlwdCBlcnJvciAnVW5jYXVnaHQgUmVmZXJlbmNlRXJy
b3I6IGZvbyBpcyBub3QgZGVmaW5lZCcgYXQgbGluZSA3LgorUEFTUzogb25lcnJvciBpbnZva2Vk
IGZvciBhIHNjcmlwdCB0aGF0IGhhcyBzY3JpcHQgZXJyb3IgJ1VuY2F1Z2h0IFJlZmVyZW5jZUVy
cm9yOiBiYXIgaXMgbm90IGRlZmluZWQnIGF0IGxpbmUgMy4KIFBBU1M6IG9uZXJyb3IgaW52b2tl
ZCBmb3IgYSBzY3JpcHQgdGhhdCBoYXMgc2NyaXB0IGVycm9yICdVbmNhdWdodCBSZWZlcmVuY2VF
cnJvcjogZm9vIGlzIG5vdCBkZWZpbmVkJyBhdCBsaW5lIDcuCiBQQVNTOiBvbmVycm9yIGludm9r
ZWQgZm9yIGEgc2NyaXB0IHRoYXQgaGFzIHNjcmlwdCBlcnJvciAnVW5jYXVnaHQgUmVmZXJlbmNl
RXJyb3I6IGZvbyBpcyBub3QgZGVmaW5lZCcgYXQgbGluZSA3LgogUEFTUzogbWVzc2FnZSByZWNl
aXZlZCBmcm9tIFdvcmtlckdsb2JhbFNjb3BlLm9uZXJyb3I6IG9uZXJyb3IgaW52b2tlZCBmb3Ig
YSBzY3JpcHQgdGhhdCBoYXMgc2NyaXB0IGVycm9yICdVbmNhdWdodCBSZWZlcmVuY2VFcnJvcjog
Zm9vIGlzIG5vdCBkZWZpbmVkJyBhdCBsaW5lIDcuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9w
bGF0Zm9ybS9jaHJvbWl1bS9mYXN0L2V2ZW50cy93aW5kb3ctb25lcnJvcjEtZXhwZWN0ZWQudHh0
IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vZmFzdC9ldmVudHMvd2luZG93LW9uZXJy
b3IxLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42NWI2
MjRiCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vZmFz
dC9ldmVudHMvd2luZG93LW9uZXJyb3IxLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDMgQEAKK1Ro
aXMgcGFnZSB0ZXN0cyBzZXR0aW5nIG9uZXJyb3IgaGFuZGxlcnMgdGhyb3VnaCB0aGUgRE9NLiBJ
ZiBpdCBwYXNzZXMsIHlvdSB3aWxsIHNlZSAiUEFTUyIgbWVzc2FnZXMgYmVsb3cuQnVnIDg1MTku
DQorDQorUEFTUzogY2F1Z2h0IGdsb2JhbCBlcnJvcjogVW5jYXVnaHQgUmVmZXJlbmNlRXJyb3I6
IGhhaGFoYV9nb29kX2x1Y2tfZmluZGluZ19tZSBpcyBub3QgZGVmaW5lZCBhdCB3aW5kb3ctb25l
cnJvcjEuaHRtbDoyNQ0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVt
L2Zhc3QvZXZlbnRzL3dpbmRvdy1vbmVycm9yMTAtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMv
cGxhdGZvcm0vY2hyb21pdW0vZmFzdC9ldmVudHMvd2luZG93LW9uZXJyb3IxMC1leHBlY3RlZC50
eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYjNkMmQzOQotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL2Zhc3QvZXZlbnRzL3dpbmRv
dy1vbmVycm9yMTAtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTEgQEAKK1Rlc3QgdGhhdCAiZXJy
b3IiIGV2ZW50IGxpc3RlbmVyIGFkZGVkIHdpdGggd2luZG93LmFkZEV2ZW50TGlzdGVuZXIgaXMg
aW52b2tlZCBmb3IgdW5jYXVjaHQgZXhjZXB0aW9ucy4gQnVnIDg1MTkuDQorDQorZXZlbnQgcGFz
c2VkIHRvIHRoZSBsaXN0ZW5lciBpcyB0aGUgc2FtZSBhcyB3aW5kb3cuZXZlbnQ6IHRydWUNCitF
dmVudCBkZXRhaWxzOg0KK3R5cGU6IGVycm9yDQorcGhhc2U6IDINCitjdXJyZW50VGFyZ2V0IGlz
IHRoZSBnbG9iYWwgb2JqZWN0OiB0cnVlDQorbWVzc2FnZTogVW5jYXVnaHQgRXJyb3I6IE15IGZh
dWx0Lg0KK2ZpbGVuYW1lOiB3aW5kb3ctb25lcnJvcjEwLmh0bWwNCitsaW5lbm86IDI5DQorDQpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vZmFzdC9ldmVudHMvd2lu
ZG93LW9uZXJyb3IxMS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1
bS9mYXN0L2V2ZW50cy93aW5kb3ctb25lcnJvcjExLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwLi45MmUzY2Y1Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0
VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vZmFzdC9ldmVudHMvd2luZG93LW9uZXJyb3IxMS1leHBl
Y3RlZC50eHQKQEAgLTAsMCArMSw0IEBACitUZXN0IHRoYXQgd2luZG93Lm9uZXJyb3IgaXMgY2Fs
bGVkIG9uIHdpbmRvdyBvYmplY3QuIEJ1ZyA4NTE5Lg0KKw0KK01haW4gZnJhbWUgd2luZG93Lm9u
ZXJyb3I6IFVuY2F1Z2h0IEVycm9yOiBBbiBleGNlcHRpb24gYXQgd2luZG93LW9uZXJyb3IuanM6
Mg0KKw0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL2Zhc3QvZXZl
bnRzL3dpbmRvdy1vbmVycm9yMi1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9j
aHJvbWl1bS9mYXN0L2V2ZW50cy93aW5kb3ctb25lcnJvcjItZXhwZWN0ZWQudHh0Cm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmY3YjE2MjEKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS9mYXN0L2V2ZW50cy93aW5kb3ctb25lcnJvcjIt
ZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNiBAQAorVGVzdCB0aGF0IHVuY2F1Z2h0IGV4Y2VwdGlv
bnMgd2lsbCBiZSByZXBvcnRlZCB0byB0aGUgd2luZG93Lm9uZXJyb3IgaGFuZGxlci4gQnVnIDg1
MTkuDQorDQorTWFpbiBmcmFtZSB3aW5kb3cub25lcnJvcjogVW5jYXVnaHQgRXJyb3I6IElubGlu
ZSBzY3JpcHQgZXhjZXB0aW9uIGF0IHdpbmRvdy1vbmVycm9yMi5odG1sOjM1DQorTWFpbiBmcmFt
ZSB3aW5kb3cub25lcnJvcjogVW5jYXVnaHQgRXhjZXB0aW9uIGluIG9ubG9hZCBhdCB3aW5kb3ct
b25lcnJvcjIuaHRtbDoyDQorTWFpbiBmcmFtZSB3aW5kb3cub25lcnJvcjogVW5jYXVnaHQgRXJy
b3I6IEV4Y2VwdGlvbiBpbiBzZXRUaW1lb3V0IGF0IHdpbmRvdy1vbmVycm9yMi5odG1sOjI5DQor
DQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vZmFzdC9ldmVudHMv
d2luZG93LW9uZXJyb3IzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9t
aXVtL2Zhc3QvZXZlbnRzL3dpbmRvdy1vbmVycm9yMy1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYTFiOGJkNQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL2Zhc3QvZXZlbnRzL3dpbmRvdy1vbmVycm9yMy1leHBl
Y3RlZC50eHQKQEAgLTAsMCArMSw0IEBACitZb3Ugc2hvdWxkIHNlZSBhIG1lc3NhZ2UgaWYgd2lu
ZG93Lm9uZXJyb3IgaXMgd29ya2luZyBwcm9wZXJseSBmb3IgdGhpcyB0ZXN0LkJ1ZyA4NTE5Lg0K
Kw0KK0Vycm9yIGNhdWdodCBzdWNjZXNzZnVsbHk6IFVuY2F1Z2h0IFJlZmVyZW5jZUVycm9yOiB1
bmtub3duT2JqZWN0IGlzIG5vdCBkZWZpbmVkIEZpbGU6IHdpbmRvdy1vbmVycm9yMy5odG1sIExp
bmU6IDE2DQorDQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vZmFz
dC9ldmVudHMvd2luZG93LW9uZXJyb3I0LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3BsYXRm
b3JtL2Nocm9taXVtL2Zhc3QvZXZlbnRzL3dpbmRvdy1vbmVycm9yNC1leHBlY3RlZC50eHQKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNTBmMDllMAotLS0gL2Rldi9udWxsCisr
KyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL2Zhc3QvZXZlbnRzL3dpbmRvdy1vbmVy
cm9yNC1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw0IEBACitZb3Ugc2hvdWxkIHNlZSBhIGxvZyBy
ZWNvcmQgaWYgd2luZG93Lm9uZXJyb3IgaXMgd29ya2luZyBwcm9wZXJseSBmb3IgdGhpcyB0ZXN0
LkJ1ZyA4NTE5Lg0KKw0KK0Vycm9yIGNhdWdodCBzdWNjZXNzZnVsbHk6IFVuY2F1Z2h0IFJlZmVy
ZW5jZUVycm9yOiBJbnZhbGlkIGxlZnQtaGFuZCBzaWRlIGluIGFzc2lnbm1lbnQgRmlsZTogd2lu
ZG93LW9uZXJyb3I0Lmh0bWwgTGluZTogMQ0KKw0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3Bs
YXRmb3JtL2Nocm9taXVtL2Zhc3QvZXZlbnRzL3dpbmRvdy1vbmVycm9yNS1leHBlY3RlZC50eHQg
Yi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS9mYXN0L2V2ZW50cy93aW5kb3ctb25lcnJv
cjUtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmU0NTM2
OWUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS9mYXN0
L2V2ZW50cy93aW5kb3ctb25lcnJvcjUtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNCBAQAorVGVz
dCB0aGF0IHdpbmRvdy5vbmVycm9yIGlzIGludm9rZWQgZm9yIHN5bnRheCBlcnJvciBpbiBldmFs
LiBZb3Ugc2hvdWxkIHNlZSBhIGxvZyByZWNvcmQgaWYgd2luZG93Lm9uZXJyb3IgaXMgd29ya2lu
ZyBwcm9wZXJseSBmb3IgdGhpcyB0ZXN0LkJ1ZyA4NTE5Lg0KKw0KK0Vycm9yIGNhdWdodCBzdWNj
ZXNzZnVsbHk6IFVuY2F1Z2h0IFN5bnRheEVycm9yOiBVbmV4cGVjdGVkIGVuZCBvZiBpbnB1dCBG
aWxlOiB3aW5kb3ctb25lcnJvcjUuaHRtbCBMaW5lOiAxDQorDQpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vZmFzdC9ldmVudHMvd2luZG93LW9uZXJyb3I2LWV4cGVj
dGVkLnR4dCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL2Zhc3QvZXZlbnRzL3dpbmRv
dy1vbmVycm9yNi1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MC4uMThlZDgxYQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9t
aXVtL2Zhc3QvZXZlbnRzL3dpbmRvdy1vbmVycm9yNi1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw0
IEBACitUZXN0IHRoYXQgc3ludGF4IGVycm9yIHdpbGwgYmUgcmVwb3J0ZWQgdG8gdGhlIHdpbmRv
dy5vbmVycm9yIGhhbmRsZXIuIEJ1ZyA4NTE5Lg0KKw0KK01haW4gZnJhbWUgd2luZG93Lm9uZXJy
b3I6IFVuY2F1Z2h0IFN5bnRheEVycm9yOiBVbmV4cGVjdGVkIHRva2VuICkgYXQgd2luZG93LW9u
ZXJyb3I2Lmh0bWw6MjINCisNCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJv
bWl1bS9mYXN0L2V2ZW50cy93aW5kb3ctb25lcnJvcjctZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVz
dHMvcGxhdGZvcm0vY2hyb21pdW0vZmFzdC9ldmVudHMvd2luZG93LW9uZXJyb3I3LWV4cGVjdGVk
LnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yM2QwNDA3Ci0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vZmFzdC9ldmVudHMvd2lu
ZG93LW9uZXJyb3I3LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDYgQEAKK0NPTlNPTEUgTUVTU0FH
RTogbGluZSAyMDogVW5jYXVnaHQgRXJyb3I6IE9yaWdpbmFsIGVycm9yDQorQ09OU09MRSBNRVNT
QUdFOiBsaW5lIDE3OiBVbmNhdWdodCBFcnJvcjogTmVzdGVkIGVycm9yDQorVGVzdCB0aGF0IGV4
Y2VwdGlvbiBpbiB3aW5kb3cub25lcnJvciB3b24ndCBsZWFkIHRvIHJlY3Vyc2l2ZSB3aW5kb3cu
b25lcnJvciBjYWxsLiBCdWcgODUxOS4NCisNCitNYWluIGZyYW1lIHdpbmRvdy5vbmVycm9yOiBV
bmNhdWdodCBFcnJvcjogT3JpZ2luYWwgZXJyb3IgYXQgd2luZG93LW9uZXJyb3I3Lmh0bWw6MjAN
CisNCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS9mYXN0L2V2ZW50
cy93aW5kb3ctb25lcnJvcjgtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hy
b21pdW0vZmFzdC9ldmVudHMvd2luZG93LW9uZXJyb3I4LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xM2YyYjMyCi0tLSAvZGV2L251bGwKKysrIGIvTGF5
b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vZmFzdC9ldmVudHMvd2luZG93LW9uZXJyb3I4LWV4
cGVjdGVkLnR4dApAQCAtMCwwICsxLDUgQEAKK1Rlc3QgdGhhdCB3aW5kb3cub25lcnJvciBpcyBj
YWxsZWQgb24gd2luZG93IG9iamVjdC4gQnVnIDg1MTkuDQorDQorTWFpbiBmcmFtZSB3aW5kb3cu
b25lcnJvcjogVW5jYXVnaHQgMjAxMCBhdCB3aW5kb3ctb25lcnJvcjguaHRtbDoyNA0KK1BBU1NF
RDogdGhpcyA9PT0gd2luZG93DQorDQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0v
Y2hyb21pdW0vZmFzdC9ldmVudHMvd2luZG93LW9uZXJyb3I5LWV4cGVjdGVkLnR4dCBiL0xheW91
dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL2Zhc3QvZXZlbnRzL3dpbmRvdy1vbmVycm9yOS1leHBl
Y3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMTY3N2U1MAotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL2Zhc3QvZXZlbnRz
L3dpbmRvdy1vbmVycm9yOS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw4IEBACitUZXN0IHRoYXQg
d2hlbiB3aW5kb3cub25lcnJvciBoYW5kbGVyIGlzIGNhbGxlZCwgd2luZG93LmV2ZW50IGlzIHRo
ZSBjb3JyZXNwb25kaW5nIEVycm9yRXZlbnQgb2JqZWN0LiBCdWcgODUxOS4NCisNCitNYWluIGZy
YW1lIHdpbmRvdy5vbmVycm9yOiBVbmNhdWdodCBFcnJvcjogMjAxMCBhdCB3aW5kb3ctb25lcnJv
cjkuaHRtbDozMQ0KK3dpbmRvdy5ldmVudC50eXBlID0gZXJyb3INCit3aW5kb3cuZXZlbnQubWVz
c2FnZSA9IFVuY2F1Z2h0IEVycm9yOiAyMDEwDQord2luZG93LmV2ZW50LmZpbGVuYW1lID0gd2lu
ZG93LW9uZXJyb3I5Lmh0bWwNCit3aW5kb3cuZXZlbnQubGluZW5vID0gMzENCisNCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS9odHRwL3Rlc3RzL3NlY3VyaXR5L3dp
bmRvdy1vbmVycm9yLWV4Y2VwdGlvbi1pbi1pZnJhbWUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVz
dHMvcGxhdGZvcm0vY2hyb21pdW0vaHR0cC90ZXN0cy9zZWN1cml0eS93aW5kb3ctb25lcnJvci1l
eGNlcHRpb24taW4taWZyYW1lLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwLi45ZTljMmVhCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZv
cm0vY2hyb21pdW0vaHR0cC90ZXN0cy9zZWN1cml0eS93aW5kb3ctb25lcnJvci1leGNlcHRpb24t
aW4taWZyYW1lLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDYgQEAKK0NPTlNPTEUgTUVTU0FHRTog
bGluZSA3OiBVbmNhdWdodCBJZnJhbWVFeGNlcHRpb24NCitUZXN0IHRoYXQgZXhjZXB0aW9ucyBp
biBpZnJhbWUgYXJlIG5vdCByZXBvcnRlZCB0byB0aGUgbWFpbiBmcmFtZSB3aW5kb3cub25lcnJv
ciBoYW5kbGVyLiB3aW5kb3cub25lcnJvciBzaG91bGQgcHJpbnQgZXhhY3RseSBvbmUgbGluZS4N
CisNCitNYWluIGZyYW1lIHdpbmRvdy5vbmVycm9yOiBVbmNhdWdodCBNYWluRnJhbWVFeGNlcHRp
b24gYXQgd2luZG93LW9uZXJyb3ItZXhjZXB0aW9uLWluLWlmcmFtZS5odG1sOjM0DQorRE9ORQ0K
Kw0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL3VzZXJzY3JpcHRz
L3dpbmRvdy1vbmVycm9yLWZvci1pc29sYXRlZC13b3JsZC0xLWV4cGVjdGVkLnR4dCBiL0xheW91
dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL3VzZXJzY3JpcHRzL3dpbmRvdy1vbmVycm9yLWZvci1p
c29sYXRlZC13b3JsZC0xLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwLi4yYTNkMDY4Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0v
Y2hyb21pdW0vdXNlcnNjcmlwdHMvd2luZG93LW9uZXJyb3ItZm9yLWlzb2xhdGVkLXdvcmxkLTEt
ZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTQgQEAKK1Rlc3QgdGhhdCB3aW5kb3cub25lcnJvciBh
bmQgImVycm9yIiBldmVudCBsaXN0ZW5lcnMgZnJvbSBtYWluIHdvcmxkIGFyZSBpbnZva2VkIGZv
ciB1bmNhdWdodCBleGNlcHRpb25zIGluIHVzZXIgc2NyaXB0cyBydW5uaW5nIGluIGlzb2xhdGUg
d29ybGRzIGFzIHdlbGwgYXMgZm9yIGV4Y2VwdGlvbnMgaW4gdGhlIG1haW4gd29ybGQuQnVnIDg1
MTkuDQorDQorTWFpbiB3b3JsZCB3aW5kb3cub25lcnJvcjogVW5jYXVnaHQgRXJyb3I6IEVycm9y
IGluIG1haW4gd29ybGQgaW5saW5lIHNjcmlwdC4gYXQgd2luZG93LW9uZXJyb3ItZm9yLWlzb2xh
dGVkLXdvcmxkLTEuaHRtbDo1NA0KK01haW4gd29ybGQgZXJyb3IgZXZlbnQgbGlzdGVuZXI6IFVu
Y2F1Z2h0IEVycm9yOiBFcnJvciBpbiBtYWluIHdvcmxkIGlubGluZSBzY3JpcHQuIGF0IHdpbmRv
dy1vbmVycm9yLWZvci1pc29sYXRlZC13b3JsZC0xLmh0bWw6NTQNCitNYWluIHdvcmxkIHdpbmRv
dy5vbmVycm9yOiBVbmNhdWdodCBFcnJvcjogRXJyb3IgaW4gdXNlciBzY3JpcHQgaW5saW5lIHNj
cmlwdC4gYXQgOjEyDQorTWFpbiB3b3JsZCBlcnJvciBldmVudCBsaXN0ZW5lcjogVW5jYXVnaHQg
RXJyb3I6IEVycm9yIGluIHVzZXIgc2NyaXB0IGlubGluZSBzY3JpcHQuIGF0IDoxMg0KK01haW4g
d29ybGQgd2luZG93Lm9uZXJyb3I6IFVuY2F1Z2h0IEVycm9yOiBFcnJvciBpbiBtYWluIHdvcmxk
IGxvYWQgaGFuZGxlci4gYXQgd2luZG93LW9uZXJyb3ItZm9yLWlzb2xhdGVkLXdvcmxkLTEuaHRt
bDo0Ng0KK01haW4gd29ybGQgZXJyb3IgZXZlbnQgbGlzdGVuZXI6IFVuY2F1Z2h0IEVycm9yOiBF
cnJvciBpbiBtYWluIHdvcmxkIGxvYWQgaGFuZGxlci4gYXQgd2luZG93LW9uZXJyb3ItZm9yLWlz
b2xhdGVkLXdvcmxkLTEuaHRtbDo0Ng0KK01haW4gd29ybGQgd2luZG93Lm9uZXJyb3I6IFVuY2F1
Z2h0IEVycm9yOiBFcnJvciBpbiB1c2VyIHNjcmlwdCBsb2FkIGhhbmRsZXIuIGF0IDo0DQorTWFp
biB3b3JsZCBlcnJvciBldmVudCBsaXN0ZW5lcjogVW5jYXVnaHQgRXJyb3I6IEVycm9yIGluIHVz
ZXIgc2NyaXB0IGxvYWQgaGFuZGxlci4gYXQgOjQNCitNYWluIHdvcmxkIHdpbmRvdy5vbmVycm9y
OiBVbmNhdWdodCBFcnJvcjogRXJyb3IgaW4gbWFpbiB3b3JsZCBzZXRUaW1lb3V0IGNhbGxiYWNr
LiBhdCB3aW5kb3ctb25lcnJvci1mb3ItaXNvbGF0ZWQtd29ybGQtMS5odG1sOjUxDQorTWFpbiB3
b3JsZCBlcnJvciBldmVudCBsaXN0ZW5lcjogVW5jYXVnaHQgRXJyb3I6IEVycm9yIGluIG1haW4g
d29ybGQgc2V0VGltZW91dCBjYWxsYmFjay4gYXQgd2luZG93LW9uZXJyb3ItZm9yLWlzb2xhdGVk
LXdvcmxkLTEuaHRtbDo1MQ0KK01haW4gd29ybGQgd2luZG93Lm9uZXJyb3I6IFVuY2F1Z2h0IEVy
cm9yOiBFcnJvciBpbiB1c2VyIHNjcmlwdCBzZXRUaW1lb3V0IGNhbGxiYWNrLiBhdCA6OQ0KK01h
aW4gd29ybGQgZXJyb3IgZXZlbnQgbGlzdGVuZXI6IFVuY2F1Z2h0IEVycm9yOiBFcnJvciBpbiB1
c2VyIHNjcmlwdCBzZXRUaW1lb3V0IGNhbGxiYWNrLiBhdCA6OQ0KZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL3VzZXJzY3JpcHRzL3dpbmRvdy1vbmVycm9yLWZvci1p
c29sYXRlZC13b3JsZC0yLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9t
aXVtL3VzZXJzY3JpcHRzL3dpbmRvdy1vbmVycm9yLWZvci1pc29sYXRlZC13b3JsZC0yLWV4cGVj
dGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45Mzk5NGRiCi0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vdXNlcnNjcmlwdHMv
d2luZG93LW9uZXJyb3ItZm9yLWlzb2xhdGVkLXdvcmxkLTItZXhwZWN0ZWQudHh0CkBAIC0wLDAg
KzEsMTMgQEAKK0NPTlNPTEUgTUVTU0FHRTogbGluZSAzMDogVW5jYXVnaHQgRXJyb3I6IEVycm9y
IGluIG1haW4gd29ybGQgaW5saW5lIHNjcmlwdC4NCitUZXN0IHRoYXQgd2luZG93Lm9uZXJyb3Ig
YW5kICJlcnJvciIgZXZlbnQgbGlzdGVuZXJzIGZyb20gaXNvbGF0ZWQgd29ybGQgYXJlIGludm9r
ZWQgZm9yIHVuY2F1Z2h0IGV4Y2VwdGlvbnMgaW4gdXNlciBzY3JpcHRzIHJ1bm5pbmcgaW4gaXNv
bGF0ZSB3b3JsZHMgYXMgd2VsbCBhcyBmb3IgZXhjZXB0aW9ucyBpbiB0aGUgbWFpbiB3b3JsZC5C
dWcgODUxOS4NCisNCit1c2VyIHNjcmlwdCB3aW5kb3cub25lcnJvcjogVW5jYXVnaHQgRXJyb3I6
IEVycm9yIGluIHVzZXIgc2NyaXB0IGlubGluZSBzY3JpcHQuIGF0IDozMw0KK3VzZXIgc2NyaXB0
IGVycm9yIGV2ZW50IGxpc3RlbmVyOiBVbmNhdWdodCBFcnJvcjogRXJyb3IgaW4gdXNlciBzY3Jp
cHQgaW5saW5lIHNjcmlwdC4gYXQgOjMzDQordXNlciBzY3JpcHQgd2luZG93Lm9uZXJyb3I6IFVu
Y2F1Z2h0IEVycm9yOiBFcnJvciBpbiBtYWluIHdvcmxkIGxvYWQgaGFuZGxlci4gYXQgd2luZG93
LW9uZXJyb3ItZm9yLWlzb2xhdGVkLXdvcmxkLTIuaHRtbDoyMw0KK3VzZXIgc2NyaXB0IGVycm9y
IGV2ZW50IGxpc3RlbmVyOiBVbmNhdWdodCBFcnJvcjogRXJyb3IgaW4gbWFpbiB3b3JsZCBsb2Fk
IGhhbmRsZXIuIGF0IHdpbmRvdy1vbmVycm9yLWZvci1pc29sYXRlZC13b3JsZC0yLmh0bWw6MjMN
Cit1c2VyIHNjcmlwdCB3aW5kb3cub25lcnJvcjogVW5jYXVnaHQgRXJyb3I6IEVycm9yIGluIHVz
ZXIgc2NyaXB0IGxvYWQgaGFuZGxlci4gYXQgOjI2DQordXNlciBzY3JpcHQgZXJyb3IgZXZlbnQg
bGlzdGVuZXI6IFVuY2F1Z2h0IEVycm9yOiBFcnJvciBpbiB1c2VyIHNjcmlwdCBsb2FkIGhhbmRs
ZXIuIGF0IDoyNg0KK3VzZXIgc2NyaXB0IHdpbmRvdy5vbmVycm9yOiBVbmNhdWdodCBFcnJvcjog
RXJyb3IgaW4gbWFpbiB3b3JsZCBzZXRUaW1lb3V0IGNhbGxiYWNrLiBhdCB3aW5kb3ctb25lcnJv
ci1mb3ItaXNvbGF0ZWQtd29ybGQtMi5odG1sOjI3DQordXNlciBzY3JpcHQgZXJyb3IgZXZlbnQg
bGlzdGVuZXI6IFVuY2F1Z2h0IEVycm9yOiBFcnJvciBpbiBtYWluIHdvcmxkIHNldFRpbWVvdXQg
Y2FsbGJhY2suIGF0IHdpbmRvdy1vbmVycm9yLWZvci1pc29sYXRlZC13b3JsZC0yLmh0bWw6MjcN
Cit1c2VyIHNjcmlwdCB3aW5kb3cub25lcnJvcjogVW5jYXVnaHQgRXJyb3I6IEVycm9yIGluIHVz
ZXIgc2NyaXB0IHNldFRpbWVvdXQgY2FsbGJhY2suIGF0IDozMA0KK3VzZXIgc2NyaXB0IGVycm9y
IGV2ZW50IGxpc3RlbmVyOiBVbmNhdWdodCBFcnJvcjogRXJyb3IgaW4gdXNlciBzY3JpcHQgc2V0
VGltZW91dCBjYWxsYmFjay4gYXQgOjMwDQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvdXNlcnNj
cmlwdHMvd2luZG93LW9uZXJyb3ItZm9yLWlzb2xhdGVkLXdvcmxkLTEtZXhwZWN0ZWQudHh0IGIv
TGF5b3V0VGVzdHMvdXNlcnNjcmlwdHMvd2luZG93LW9uZXJyb3ItZm9yLWlzb2xhdGVkLXdvcmxk
LTEtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjY4OTVj
NDEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy91c2Vyc2NyaXB0cy93aW5kb3ctb25l
cnJvci1mb3ItaXNvbGF0ZWQtd29ybGQtMS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxNCBAQAor
VGVzdCB0aGF0IHdpbmRvdy5vbmVycm9yIGFuZCAiZXJyb3IiIGV2ZW50IGxpc3RlbmVycyBmcm9t
IG1haW4gd29ybGQgYXJlIGludm9rZWQgZm9yIHVuY2F1Z2h0IGV4Y2VwdGlvbnMgaW4gdXNlciBz
Y3JpcHRzIHJ1bm5pbmcgaW4gaXNvbGF0ZSB3b3JsZHMgYXMgd2VsbCBhcyBmb3IgZXhjZXB0aW9u
cyBpbiB0aGUgbWFpbiB3b3JsZC5CdWcgODUxOS4KKworTWFpbiB3b3JsZCB3aW5kb3cub25lcnJv
cjogRXJyb3I6IEVycm9yIGluIG1haW4gd29ybGQgaW5saW5lIHNjcmlwdC4gYXQgd2luZG93LW9u
ZXJyb3ItZm9yLWlzb2xhdGVkLXdvcmxkLTEuaHRtbDo1NAorTWFpbiB3b3JsZCBlcnJvciBldmVu
dCBsaXN0ZW5lcjogRXJyb3I6IEVycm9yIGluIG1haW4gd29ybGQgaW5saW5lIHNjcmlwdC4gYXQg
d2luZG93LW9uZXJyb3ItZm9yLWlzb2xhdGVkLXdvcmxkLTEuaHRtbDo1NAorTWFpbiB3b3JsZCB3
aW5kb3cub25lcnJvcjogRXJyb3I6IEVycm9yIGluIHVzZXIgc2NyaXB0IGlubGluZSBzY3JpcHQu
IGF0IHVuZGVmaW5lZDoxMQorTWFpbiB3b3JsZCBlcnJvciBldmVudCBsaXN0ZW5lcjogRXJyb3I6
IEVycm9yIGluIHVzZXIgc2NyaXB0IGlubGluZSBzY3JpcHQuIGF0IHVuZGVmaW5lZDoxMQorTWFp
biB3b3JsZCB3aW5kb3cub25lcnJvcjogRXJyb3I6IEVycm9yIGluIG1haW4gd29ybGQgbG9hZCBo
YW5kbGVyLiBhdCB3aW5kb3ctb25lcnJvci1mb3ItaXNvbGF0ZWQtd29ybGQtMS5odG1sOjQ2CitN
YWluIHdvcmxkIGVycm9yIGV2ZW50IGxpc3RlbmVyOiBFcnJvcjogRXJyb3IgaW4gbWFpbiB3b3Js
ZCBsb2FkIGhhbmRsZXIuIGF0IHdpbmRvdy1vbmVycm9yLWZvci1pc29sYXRlZC13b3JsZC0xLmh0
bWw6NDYKK01haW4gd29ybGQgd2luZG93Lm9uZXJyb3I6IEVycm9yOiBFcnJvciBpbiB1c2VyIHNj
cmlwdCBsb2FkIGhhbmRsZXIuIGF0IHVuZGVmaW5lZDozCitNYWluIHdvcmxkIGVycm9yIGV2ZW50
IGxpc3RlbmVyOiBFcnJvcjogRXJyb3IgaW4gdXNlciBzY3JpcHQgbG9hZCBoYW5kbGVyLiBhdCB1
bmRlZmluZWQ6MworTWFpbiB3b3JsZCB3aW5kb3cub25lcnJvcjogRXJyb3I6IEVycm9yIGluIG1h
aW4gd29ybGQgc2V0VGltZW91dCBjYWxsYmFjay4gYXQgd2luZG93LW9uZXJyb3ItZm9yLWlzb2xh
dGVkLXdvcmxkLTEuaHRtbDo1MQorTWFpbiB3b3JsZCBlcnJvciBldmVudCBsaXN0ZW5lcjogRXJy
b3I6IEVycm9yIGluIG1haW4gd29ybGQgc2V0VGltZW91dCBjYWxsYmFjay4gYXQgd2luZG93LW9u
ZXJyb3ItZm9yLWlzb2xhdGVkLXdvcmxkLTEuaHRtbDo1MQorTWFpbiB3b3JsZCB3aW5kb3cub25l
cnJvcjogRXJyb3I6IEVycm9yIGluIHVzZXIgc2NyaXB0IHNldFRpbWVvdXQgY2FsbGJhY2suIGF0
IHVuZGVmaW5lZDo4CitNYWluIHdvcmxkIGVycm9yIGV2ZW50IGxpc3RlbmVyOiBFcnJvcjogRXJy
b3IgaW4gdXNlciBzY3JpcHQgc2V0VGltZW91dCBjYWxsYmFjay4gYXQgdW5kZWZpbmVkOjgKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL3VzZXJzY3JpcHRzL3dpbmRvdy1vbmVycm9yLWZvci1pc29s
YXRlZC13b3JsZC0xLmh0bWwgYi9MYXlvdXRUZXN0cy91c2Vyc2NyaXB0cy93aW5kb3ctb25lcnJv
ci1mb3ItaXNvbGF0ZWQtd29ybGQtMS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAuLjNjNmJhYzIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy91c2Vyc2NyaXB0
cy93aW5kb3ctb25lcnJvci1mb3ItaXNvbGF0ZWQtd29ybGQtMS5odG1sCkBAIC0wLDAgKzEsNjcg
QEAKKzwhRE9DVFlQRSBIVE1MPgorPGh0bWw+Cis8aGVhZD4KKzwvaGVhZD4KKzxib2R5PgorPHA+
VGVzdCB0aGF0IHdpbmRvdy5vbmVycm9yIGFuZCAiZXJyb3IiIGV2ZW50IGxpc3RlbmVycyBmcm9t
IG1haW4gd29ybGQgYXJlCitpbnZva2VkIGZvciB1bmNhdWdodCBleGNlcHRpb25zIGluIHVzZXIg
c2NyaXB0cyBydW5uaW5nIGluIGlzb2xhdGUgd29ybGRzIGFzCit3ZWxsIGFzIGZvciBleGNlcHRp
b25zIGluIHRoZSBtYWluIHdvcmxkLjxhIGhyZWY9Imh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD04NTE5Ij5CdWcgODUxOS48L2E+Cis8L3A+Cis8ZGl2IGlkPSJjb25zb2xl
Ij48L2Rpdj4KKzxzY3JpcHQ+CisKK3ZhciBleHBlY3RlZFJlY29yZENvdW50ID0gMTI7Cit2YXIg
cmVjb3JkQ291bnQgPSAwOworZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNvbnNvbGUiKS5hZGRF
dmVudExpc3RlbmVyKCJET01Ob2RlSW5zZXJ0ZWQiLCBmdW5jdGlvbihlKSB7CisgICAgcmVjb3Jk
Q291bnQrKzsKKyAgICBpZiAocmVjb3JkQ291bnQgPT09IGV4cGVjdGVkUmVjb3JkQ291bnQgJiYg
d2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQorICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxl
ci5ub3RpZnlEb25lKCk7Cit9LCBmYWxzZSk7CisKK2Z1bmN0aW9uIGxvZyhtc2cpIHsKKyAgICB2
YXIgcmVjb3JkID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7CisgICAgcmVjb3JkLmlu
bmVySFRNTCA9IG1zZzsKKyAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY29uc29sZSIpLmFw
cGVuZENoaWxkKHJlY29yZCk7Cit9CisKK2Z1bmN0aW9uIGxhc3RVcmxDb21wb25lbnQodXJsKSB7
CisgICAgcmV0dXJuIHVybCA/IHVybC5tYXRjaCggL1teXC9dK1wvPyQvIClbMF0gOiB1cmw7Cit9
CisKK3dpbmRvdy5vbmVycm9yID0gZnVuY3Rpb24obXNnLCB1cmwsIGxpbmUpCit7CisgICAgbG9n
KCJNYWluIHdvcmxkIHdpbmRvdy5vbmVycm9yOiAiICsgbXNnICsgIiBhdCAiICsgbGFzdFVybENv
bXBvbmVudCh1cmwpICsgIjoiICsgbGluZSk7CisgICAgcmV0dXJuIGZhbHNlOworfQorCit3aW5k
b3cuYWRkRXZlbnRMaXN0ZW5lcigiZXJyb3IiLCBmdW5jdGlvbihlKQoreworICAgIHZhciB1cmwg
PSBsYXN0VXJsQ29tcG9uZW50KGUuZmlsZW5hbWUpOworICAgIGxvZygiTWFpbiB3b3JsZCBlcnJv
ciBldmVudCBsaXN0ZW5lcjogIiArIGUubWVzc2FnZSArICIgYXQgIiArIHVybCArICI6IiArIGUu
bGluZW5vKTsKK30sIGZhbHNlKTsKKwordmFyIGV4Y2VwdGlvbnMgPSBmdW5jdGlvbihpc29sYXRl
ZFdvcmxkKQoreworICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJsb2FkIiwgZnVuY3Rpb24o
ZSkgeworICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIkVycm9yIGluICIgKyBpc29sYXRlZFdvcmxk
ICsgIiBsb2FkIGhhbmRsZXIuIik7CisgICAgfSwgZmFsc2UpOworCisKKyAgICBzZXRUaW1lb3V0
KGZ1bmN0aW9uKCkgeworICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIkVycm9yIGluICIgKyBpc29s
YXRlZFdvcmxkICsgIiBzZXRUaW1lb3V0IGNhbGxiYWNrLiIpOworICAgIH0sIDApOworCisgICAg
dGhyb3cgbmV3IEVycm9yKCJFcnJvciBpbiAiKyBpc29sYXRlZFdvcmxkICsgIiBpbmxpbmUgc2Ny
aXB0LiIpOworfQorCitpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKSB7CisgICAgbGF5
b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOworICAgIGxheW91dFRlc3RDb250cm9sbGVy
LndhaXRVbnRpbERvbmUoKTsKKyAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5hZGRVc2VyU2NyaXB0
KCIoIiArIGV4Y2VwdGlvbnMgKyAiKSgndXNlciBzY3JpcHQnKSIsIGZhbHNlLCB0cnVlKTsKK30K
KworZXhjZXB0aW9ucygibWFpbiB3b3JsZCIpOworCis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRt
bD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3VzZXJzY3JpcHRzL3dpbmRvdy1vbmVycm9yLWZv
ci1pc29sYXRlZC13b3JsZC0yLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3VzZXJzY3JpcHRz
L3dpbmRvdy1vbmVycm9yLWZvci1pc29sYXRlZC13b3JsZC0yLWV4cGVjdGVkLnR4dApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iOTA5YTk5Ci0tLSAvZGV2L251bGwKKysrIGIv
TGF5b3V0VGVzdHMvdXNlcnNjcmlwdHMvd2luZG93LW9uZXJyb3ItZm9yLWlzb2xhdGVkLXdvcmxk
LTItZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTMgQEAKK0NPTlNPTEUgTUVTU0FHRTogbGluZSAz
MDogRXJyb3I6IEVycm9yIGluIG1haW4gd29ybGQgaW5saW5lIHNjcmlwdC4KK1Rlc3QgdGhhdCB3
aW5kb3cub25lcnJvciBhbmQgImVycm9yIiBldmVudCBsaXN0ZW5lcnMgZnJvbSBpc29sYXRlZCB3
b3JsZCBhcmUgaW52b2tlZCBmb3IgdW5jYXVnaHQgZXhjZXB0aW9ucyBpbiB1c2VyIHNjcmlwdHMg
cnVubmluZyBpbiBpc29sYXRlIHdvcmxkcyBhcyB3ZWxsIGFzIGZvciBleGNlcHRpb25zIGluIHRo
ZSBtYWluIHdvcmxkLkJ1ZyA4NTE5LgorCit1c2VyIHNjcmlwdCB3aW5kb3cub25lcnJvcjogRXJy
b3I6IEVycm9yIGluIHVzZXIgc2NyaXB0IGlubGluZSBzY3JpcHQuIGF0IHVuZGVmaW5lZDozMQor
dXNlciBzY3JpcHQgZXJyb3IgZXZlbnQgbGlzdGVuZXI6IEVycm9yOiBFcnJvciBpbiB1c2VyIHNj
cmlwdCBpbmxpbmUgc2NyaXB0LiBhdCB1bmRlZmluZWQ6MzEKK3VzZXIgc2NyaXB0IHdpbmRvdy5v
bmVycm9yOiBFcnJvcjogRXJyb3IgaW4gbWFpbiB3b3JsZCBsb2FkIGhhbmRsZXIuIGF0IHdpbmRv
dy1vbmVycm9yLWZvci1pc29sYXRlZC13b3JsZC0yLmh0bWw6MjMKK3VzZXIgc2NyaXB0IGVycm9y
IGV2ZW50IGxpc3RlbmVyOiBFcnJvcjogRXJyb3IgaW4gbWFpbiB3b3JsZCBsb2FkIGhhbmRsZXIu
IGF0IHdpbmRvdy1vbmVycm9yLWZvci1pc29sYXRlZC13b3JsZC0yLmh0bWw6MjMKK3VzZXIgc2Ny
aXB0IHdpbmRvdy5vbmVycm9yOiBFcnJvcjogRXJyb3IgaW4gdXNlciBzY3JpcHQgbG9hZCBoYW5k
bGVyLiBhdCB1bmRlZmluZWQ6MjQKK3VzZXIgc2NyaXB0IGVycm9yIGV2ZW50IGxpc3RlbmVyOiBF
cnJvcjogRXJyb3IgaW4gdXNlciBzY3JpcHQgbG9hZCBoYW5kbGVyLiBhdCB1bmRlZmluZWQ6MjQK
K3VzZXIgc2NyaXB0IHdpbmRvdy5vbmVycm9yOiBFcnJvcjogRXJyb3IgaW4gbWFpbiB3b3JsZCBz
ZXRUaW1lb3V0IGNhbGxiYWNrLiBhdCB3aW5kb3ctb25lcnJvci1mb3ItaXNvbGF0ZWQtd29ybGQt
Mi5odG1sOjI3Cit1c2VyIHNjcmlwdCBlcnJvciBldmVudCBsaXN0ZW5lcjogRXJyb3I6IEVycm9y
IGluIG1haW4gd29ybGQgc2V0VGltZW91dCBjYWxsYmFjay4gYXQgd2luZG93LW9uZXJyb3ItZm9y
LWlzb2xhdGVkLXdvcmxkLTIuaHRtbDoyNwordXNlciBzY3JpcHQgd2luZG93Lm9uZXJyb3I6IEVy
cm9yOiBFcnJvciBpbiB1c2VyIHNjcmlwdCBzZXRUaW1lb3V0IGNhbGxiYWNrLiBhdCB1bmRlZmlu
ZWQ6MjgKK3VzZXIgc2NyaXB0IGVycm9yIGV2ZW50IGxpc3RlbmVyOiBFcnJvcjogRXJyb3IgaW4g
dXNlciBzY3JpcHQgc2V0VGltZW91dCBjYWxsYmFjay4gYXQgdW5kZWZpbmVkOjI4CmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy91c2Vyc2NyaXB0cy93aW5kb3ctb25lcnJvci1mb3ItaXNvbGF0ZWQt
d29ybGQtMi5odG1sIGIvTGF5b3V0VGVzdHMvdXNlcnNjcmlwdHMvd2luZG93LW9uZXJyb3ItZm9y
LWlzb2xhdGVkLXdvcmxkLTIuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
Li5hNmVjNjk5Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvdXNlcnNjcmlwdHMvd2lu
ZG93LW9uZXJyb3ItZm9yLWlzb2xhdGVkLXdvcmxkLTIuaHRtbApAQCAtMCwwICsxLDY3IEBACis8
IURPQ1RZUEUgSFRNTD4KKzxodG1sPgorPGhlYWQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxwPlRlc3Qg
dGhhdCB3aW5kb3cub25lcnJvciBhbmQgImVycm9yIiBldmVudCBsaXN0ZW5lcnMgZnJvbSBpc29s
YXRlZCB3b3JsZCBhcmUKK2ludm9rZWQgZm9yIHVuY2F1Z2h0IGV4Y2VwdGlvbnMgaW4gdXNlciBz
Y3JpcHRzIHJ1bm5pbmcgaW4gaXNvbGF0ZSB3b3JsZHMgYXMKK3dlbGwgYXMgZm9yIGV4Y2VwdGlv
bnMgaW4gdGhlIG1haW4gd29ybGQuPGEgaHJlZj0iaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTg1MTkiPkJ1ZyA4NTE5LjwvYT4KKzwvcD4KKzxkaXYgaWQ9ImNvbnNvbGUi
PjwvZGl2PgorPHNjcmlwdD4KKwordmFyIGV4cGVjdGVkUmVjb3JkQ291bnQgPSAxMDsKK3ZhciBy
ZWNvcmRDb3VudCA9IDA7Citkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY29uc29sZSIpLmFkZEV2
ZW50TGlzdGVuZXIoIkRPTU5vZGVJbnNlcnRlZCIsIGZ1bmN0aW9uKGUpIHsKKyAgICBpZiAoKyty
ZWNvcmRDb3VudCA9PT0gZXhwZWN0ZWRSZWNvcmRDb3VudCAmJiB3aW5kb3cubGF5b3V0VGVzdENv
bnRyb2xsZXIpCisgICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLm5vdGlmeURvbmUoKTsKK30s
IGZhbHNlKTsKKwordmFyIHRocm93RXhjZXB0aW9ucyA9IGZ1bmN0aW9uKGlzb2xhdGVkV29ybGQp
Cit7CisgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoImxvYWQiLCBmdW5jdGlvbihlKSB7Cisg
ICAgICAgIHRocm93IG5ldyBFcnJvcigiRXJyb3IgaW4gIiArIGlzb2xhdGVkV29ybGQgKyAiIGxv
YWQgaGFuZGxlci4iKTsKKyAgICB9LCBmYWxzZSk7CisKKyAgICBzZXRUaW1lb3V0KGZ1bmN0aW9u
KCkgeworICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIkVycm9yIGluICIgKyBpc29sYXRlZFdvcmxk
ICsgIiBzZXRUaW1lb3V0IGNhbGxiYWNrLiIpOworICAgIH0sIDApOworICAgIAorICAgIHRocm93
IG5ldyBFcnJvcigiRXJyb3IgaW4gIisgaXNvbGF0ZWRXb3JsZCArICIgaW5saW5lIHNjcmlwdC4i
KTsKK307CisKK3ZhciBlcnJvckhhbmRsZXJzID0gZnVuY3Rpb24oaXNvbGF0ZWRXb3JsZCkKK3sK
KyAgICBmdW5jdGlvbiBsYXN0VXJsQ29tcG9uZW50KHVybCkgeworICAgICAgICByZXR1cm4gdXJs
ID8gdXJsLm1hdGNoKCAvW15cL10rXC8/JC8gKVswXSA6IHVybDsKKyAgICB9CisKKyAgICBmdW5j
dGlvbiBsb2cobXNnKSB7CisgICAgICAgIHZhciByZWNvcmQgPSBkb2N1bWVudC5jcmVhdGVFbGVt
ZW50KCJkaXYiKTsKKyAgICAgICAgcmVjb3JkLmlubmVySFRNTCA9IG1zZzsKKyAgICAgICAgZG9j
dW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNvbnNvbGUiKS5hcHBlbmRDaGlsZChyZWNvcmQpOworICAg
IH0KKworICAgIHdpbmRvdy5vbmVycm9yID0gZnVuY3Rpb24obXNnLCB1cmwsIGxpbmUpIHsKKyAg
ICAgICAgbG9nKGlzb2xhdGVkV29ybGQgKyAiIHdpbmRvdy5vbmVycm9yOiAiICsgbXNnICsgIiBh
dCAiICsgbGFzdFVybENvbXBvbmVudCh1cmwpICsgIjoiICsgbGluZSwgIioiKTsKKyAgICAgICAg
cmV0dXJuIGZhbHNlOworICAgIH0KKworICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJlcnJv
ciIsIGZ1bmN0aW9uKGUpIHsKKyAgICAgICAgdmFyIHVybCA9IGxhc3RVcmxDb21wb25lbnQoZS5m
aWxlbmFtZSk7CisgICAgICAgIGxvZyhpc29sYXRlZFdvcmxkICsgIiBlcnJvciBldmVudCBsaXN0
ZW5lcjogIiArIGUubWVzc2FnZSArICIgYXQgIiArIHVybCArICI6IiArIGUubGluZW5vLCAiKiIp
OworICAgICAgICBlLnByZXZlbnREZWZhdWx0KCk7CisgICAgfSwgZmFsc2UpOworfTsKKworaWYg
KHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikgeworICAgIGxheW91dFRlc3RDb250cm9sbGVy
LmR1bXBBc1RleHQoKTsKKyAgICBsYXlvdXRUZXN0Q29udHJvbGxlci53YWl0VW50aWxEb25lKCk7
CisgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuYWRkVXNlclNjcmlwdCgiKCIgKyBlcnJvckhhbmRs
ZXJzICsgIikoJ3VzZXIgc2NyaXB0Jyk7ICgiICsgdGhyb3dFeGNlcHRpb25zICsgIikoJ3VzZXIg
c2NyaXB0JykiLCBmYWxzZSwgdHJ1ZSk7Cit9CisKK3Rocm93RXhjZXB0aW9ucygibWFpbiB3b3Js
ZCIpOworCis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL1dlYkNvcmUv
QW5kcm9pZC5qc2NiaW5kaW5ncy5tayBiL1dlYkNvcmUvQW5kcm9pZC5qc2NiaW5kaW5ncy5tawpp
bmRleCA2NTNkZmVjLi5lN2ZkMmZjIDEwMDY0NAotLS0gYS9XZWJDb3JlL0FuZHJvaWQuanNjYmlu
ZGluZ3MubWsKKysrIGIvV2ViQ29yZS9BbmRyb2lkLmpzY2JpbmRpbmdzLm1rCkBAIC0xMDIsNiAr
MTAyLDcgQEAgTE9DQUxfU1JDX0ZJTEVTICs9IFwKIAliaW5kaW5ncy9qcy9KU0RldmljZU9yaWVu
dGF0aW9uRXZlbnRDdXN0b20uY3BwIFwKIAliaW5kaW5ncy9qcy9KU0RvY3VtZW50Q3VzdG9tLmNw
cCBcCiAJYmluZGluZ3MvanMvSlNFbGVtZW50Q3VzdG9tLmNwcCBcCisJYmluZGluZ3MvanMvSlNF
cnJvckhhbmRsZXIuY3BwIFwKIAliaW5kaW5ncy9qcy9KU0V2ZW50Q3VzdG9tLmNwcCBcCiAJYmlu
ZGluZ3MvanMvSlNFdmVudExpc3RlbmVyLmNwcCBcCiAJYmluZGluZ3MvanMvSlNFdmVudFRhcmdl
dC5jcHAgXApAQCAtMTcwLDcgKzE3MSw2IEBAIExPQ0FMX1NSQ19GSUxFUyArPSBcCiAJYmluZGlu
Z3MvanMvSlNXZWJLaXRQb2ludEN1c3RvbS5jcHAgXAogCWJpbmRpbmdzL2pzL0pTV29ya2VyQ29u
dGV4dEJhc2UuY3BwIFwKIAliaW5kaW5ncy9qcy9KU1dvcmtlckNvbnRleHRDdXN0b20uY3BwIFwK
LQliaW5kaW5ncy9qcy9KU1dvcmtlckNvbnRleHRFcnJvckhhbmRsZXIuY3BwIFwKIAliaW5kaW5n
cy9qcy9KU1dvcmtlckN1c3RvbS5jcHAgXAogCWJpbmRpbmdzL2pzL0pTWE1MSHR0cFJlcXVlc3RD
dXN0b20uY3BwIFwKIAliaW5kaW5ncy9qcy9KU1hNTEh0dHBSZXF1ZXN0VXBsb2FkQ3VzdG9tLmNw
cCBcCmRpZmYgLS1naXQgYS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0IGIvV2ViQ29yZS9DTWFrZUxp
c3RzLnR4dAppbmRleCBhNGE2ODU5Li4zZDIzNmNlIDEwMDY0NAotLS0gYS9XZWJDb3JlL0NNYWtl
TGlzdHMudHh0CisrKyBiL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKQEAgLTYyNCw2ICs2MjQsNyBA
QCBTRVQoV2ViQ29yZV9TT1VSQ0VTCiAgICAgYmluZGluZ3MvanMvSlNEZXZpY2VPcmllbnRhdGlv
bkV2ZW50Q3VzdG9tLmNwcAogICAgIGJpbmRpbmdzL2pzL0pTRG9jdW1lbnRDdXN0b20uY3BwCiAg
ICAgYmluZGluZ3MvanMvSlNFbGVtZW50Q3VzdG9tLmNwcAorICAgIGJpbmRpbmdzL2pzL0pTRXJy
b3JIYW5kbGVyLmNwcAogICAgIGJpbmRpbmdzL2pzL0pTRXZlbnRDdXN0b20uY3BwCiAgICAgYmlu
ZGluZ3MvanMvSlNFdmVudExpc3RlbmVyLmNwcAogICAgIGJpbmRpbmdzL2pzL0pTRXZlbnRTb3Vy
Y2VDdXN0b20uY3BwCkBAIC02OTMsNyArNjk0LDYgQEAgU0VUKFdlYkNvcmVfU09VUkNFUwogICAg
IGJpbmRpbmdzL2pzL0pTV2ViU29ja2V0Q3VzdG9tLmNwcAogICAgIGJpbmRpbmdzL2pzL0pTV29y
a2VyQ29udGV4dEJhc2UuY3BwCiAgICAgYmluZGluZ3MvanMvSlNXb3JrZXJDb250ZXh0Q3VzdG9t
LmNwcAotICAgIGJpbmRpbmdzL2pzL0pTV29ya2VyQ29udGV4dEVycm9ySGFuZGxlci5jcHAKICAg
ICBiaW5kaW5ncy9qcy9KU1dvcmtlckN1c3RvbS5jcHAKICAgICBiaW5kaW5ncy9qcy9KU1hNTEh0
dHBSZXF1ZXN0Q3VzdG9tLmNwcAogICAgIGJpbmRpbmdzL2pzL0pTWE1MSHR0cFJlcXVlc3RVcGxv
YWRDdXN0b20uY3BwCmRpZmYgLS1naXQgYS9XZWJDb3JlL0NoYW5nZUxvZyBiL1dlYkNvcmUvQ2hh
bmdlTG9nCmluZGV4IGFkMGY1ZTMuLjk3NjIyZWYgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvQ2hhbmdl
TG9nCisrKyBiL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsOTIgQEAKKzIwMTAtMTAtMTkg
IGFsZXhAd2Via2l0Lm9yZyAgPGFsZXhAd2Via2l0Lm9yZ0AyNjhmNDVjYy1jZDA5LTA0MTAtYWIz
Yy1kNTI2OTFiNGRiZmM+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgV2ViQ29yZSBkb2Vzbid0IGZpcmUgd2luZG93Lm9uZXJyb3IgZXZlbnQgd2hlbiB1
bmNhdWdodCBKYXZhU2NyaXB0IGV4Y2VwdGlvbnMgYXJlIHRocm93bgorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODUxOQorCisgICAgICAgIFVuY2F1Z2h0
IGV4Y2VwdGlvbnMgYXJlIHByb3BhZ2F0ZWQgdG8gd2luZG93Lm9uZXJyb3IgaGFuZGVyIGlmIG9u
ZSBpcyBwcmVzZW50LgorICAgICAgICBUaGUgaGFuZGxlciBpcyBleHBlY3RlZCB0byBiZSBhIGZ1
bmN0aW9uIGFjY2VwdGluZyB0aHJlZSBhcmd1bWVudHM6IGVycm9yIG1lc3NhZ2UsCisgICAgICAg
IHJlc291cmNlIHVybCBhbmQgbGluZSBudW1iZXIgd2hlcmUgdGhlIGV4Y2VwdGlvbiBvY2N1cmVk
LgorCisgICAgICAgIEl0IHdhcyBkZWNpZGVkIHRvIGRpc3BhdGNoIEVycm9yRXZlbnQgdG8gYWxs
IGxpc3RlbmVycy9oYW5kbGVycyBubyBtYXR0ZXIgaWYgdGhleQorICAgICAgICB3ZXJlIGNyZWF0
ZWQgaW4gdGhlIHNhbWUgaXNvbGF0ZWQgd29ybGQgd2hlcmUgdGhlIGV4Y2VwdGlvbiBvY2N1cmVk
IG9yIG5vdC4KKworICAgICAgICBUZXN0czogZmFzdC9ldmVudHMvd2luZG93LW9uZXJyb3IxLmh0
bWwKKyAgICAgICAgICAgICAgIGZhc3QvZXZlbnRzL3dpbmRvdy1vbmVycm9yMTAuaHRtbAorICAg
ICAgICAgICAgICAgZmFzdC9ldmVudHMvd2luZG93LW9uZXJyb3IxMS5odG1sCisgICAgICAgICAg
ICAgICBmYXN0L2V2ZW50cy93aW5kb3ctb25lcnJvcjIuaHRtbAorICAgICAgICAgICAgICAgZmFz
dC9ldmVudHMvd2luZG93LW9uZXJyb3IzLmh0bWwKKyAgICAgICAgICAgICAgIGZhc3QvZXZlbnRz
L3dpbmRvdy1vbmVycm9yNC5odG1sCisgICAgICAgICAgICAgICBmYXN0L2V2ZW50cy93aW5kb3ct
b25lcnJvcjUuaHRtbAorICAgICAgICAgICAgICAgZmFzdC9ldmVudHMvd2luZG93LW9uZXJyb3I2
Lmh0bWwKKyAgICAgICAgICAgICAgIGZhc3QvZXZlbnRzL3dpbmRvdy1vbmVycm9yNy5odG1sCisg
ICAgICAgICAgICAgICBmYXN0L2V2ZW50cy93aW5kb3ctb25lcnJvcjguaHRtbAorICAgICAgICAg
ICAgICAgZmFzdC9ldmVudHMvd2luZG93LW9uZXJyb3I5Lmh0bWwKKyAgICAgICAgICAgICAgIGh0
dHAvdGVzdHMvc2VjdXJpdHkvd2luZG93LW9uZXJyb3ItZXhjZXB0aW9uLWluLWlmcmFtZS5odG1s
CisgICAgICAgICAgICAgICB1c2Vyc2NyaXB0cy93aW5kb3ctb25lcnJvci1mb3ItaXNvbGF0ZWQt
d29ybGQtMS5odG1sCisgICAgICAgICAgICAgICB1c2Vyc2NyaXB0cy93aW5kb3ctb25lcnJvci1m
b3ItaXNvbGF0ZWQtd29ybGQtMi5odG1sCisKKyAgICAgICAgKiBBbmRyb2lkLmpzY2JpbmRpbmdz
Lm1rOgorICAgICAgICAqIENNYWtlTGlzdHMudHh0OgorICAgICAgICAqIEdOVW1ha2VmaWxlLmFt
OgorICAgICAgICAqIFdlYkNvcmUuZ3lwaToKKyAgICAgICAgKiBXZWJDb3JlLm9yZGVyOgorICAg
ICAgICAqIFdlYkNvcmUucHJvOgorICAgICAgICAqIFdlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNw
cm9qOgorICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAg
ICAgKiBiaW5kaW5ncy9qcy9KU0JpbmRpbmdzQWxsSW5PbmUuY3BwOgorICAgICAgICAqIGJpbmRp
bmdzL2pzL0pTRE9NQmluZGluZy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpyZXBvcnRFeGNlcHRp
b24pOgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pTRXJyb3JIYW5kbGVyLmNwcDogQWRkZWQuCisg
ICAgICAgIChXZWJDb3JlOjpKU0Vycm9ySGFuZGxlcjo6SlNFcnJvckhhbmRsZXIpOgorICAgICAg
ICAoV2ViQ29yZTo6SlNFcnJvckhhbmRsZXI6On5KU0Vycm9ySGFuZGxlcik6CisgICAgICAgIChX
ZWJDb3JlOjpKU0Vycm9ySGFuZGxlcjo6aGFuZGxlRXZlbnQpOgorICAgICAgICAqIGJpbmRpbmdz
L2pzL0pTRXJyb3JIYW5kbGVyLmg6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6SlNFcnJvckhh
bmRsZXI6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpjcmVhdGVKU0Vycm9ySGFuZGxlcik6
CisgICAgICAgICogYmluZGluZ3MvanMvSlNXb3JrZXJDb250ZXh0RXJyb3JIYW5kbGVyLmNwcDog
UmVtb3ZlZC4KKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU1dvcmtlckNvbnRleHRFcnJvckhhbmRs
ZXIuaDogUmVtb3ZlZC4gVGhpcyBjbGFzcyB3YXMgcmVmYWN0b3JlZCBpbnRvIG1vcmUgZ2VuZXJh
bAorICAgICAgICBKU0Vycm9ySGFuZGxlciB0aGF0IHJlcHJlc2VudHMgZ2xvYmFsIG9uZXJybyBo
YW5kZXIgb24gV29ya2VyIENvbnRleHQgb3Igb24gRE9NV2luZG93LgorICAgICAgICAqIGJpbmRp
bmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtOgorICAgICAgICAqIGJpbmRpbmdzL3Njcmlw
dHMvQ29kZUdlbmVyYXRvclY4LnBtOgorICAgICAgICAqIGJpbmRpbmdzL3Y4L1Y4Q29uc29sZU1l
c3NhZ2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6VjhDb25zb2xlTWVzc2FnZTo6ZGlzcGF0Y2hO
b3cpOgorICAgICAgICAoV2ViQ29yZTo6VjhDb25zb2xlTWVzc2FnZTo6aGFuZGxlcik6IHRoZSBt
ZXRob2Qgd2FzIGNoYW5nZWQgdG8gdXNlIGdlbmVyaWMgV2ViQ29yZSBleGNlcHRpb24KKyAgICAg
ICAgcmVwb3J0aW5nIG1lY2hhbmlzbSB3aGljaCBpcyBhbHNvIHVzZWQgYnkgSlNDIGJpbmRpbmdz
LgorICAgICAgICAqIGJpbmRpbmdzL3Y4L1Y4Q29uc29sZU1lc3NhZ2UuaDoKKyAgICAgICAgKFdl
YkNvcmU6OlY4Q29uc29sZU1lc3NhZ2U6OlNjb3BlOjpTY29wZSk6CisgICAgICAgIChXZWJDb3Jl
OjpWOENvbnNvbGVNZXNzYWdlOjpTY29wZTo6flNjb3BlKToKKyAgICAgICAgKiBiaW5kaW5ncy92
OC9WOFdpbmRvd0Vycm9ySGFuZGxlci5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6VjhX
aW5kb3dFcnJvckhhbmRsZXI6OlY4V2luZG93RXJyb3JIYW5kbGVyKToKKyAgICAgICAgKFdlYkNv
cmU6OlY4V2luZG93RXJyb3JIYW5kbGVyOjpjYWxsTGlzdGVuZXJGdW5jdGlvbik6CisgICAgICAg
ICogYmluZGluZ3MvdjgvVjhXaW5kb3dFcnJvckhhbmRsZXIuaDogQWRkZWQuCisgICAgICAgIChX
ZWJDb3JlOjpWOFdpbmRvd0Vycm9ySGFuZGxlcjo6Y3JlYXRlKToKKyAgICAgICAgKiBiaW5kaW5n
cy92OC9Xb3JrZXJDb250ZXh0RXhlY3V0aW9uUHJveHkuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
djhNZXNzYWdlSGFuZGxlcik6CisgICAgICAgICogYmluZGluZ3MvdjgvV29ya2VyU2NyaXB0Q29u
dHJvbGxlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpXb3JrZXJTY3JpcHRDb250cm9sbGVyOjpl
dmFsdWF0ZSk6CisgICAgICAgICogZG9tL0RvY3VtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OkRvY3VtZW50OjplcnJvckV2ZW50VGFyZ2V0KToKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50
Ojpsb2dFeGNlcHRpb25Ub0NvbnNvbGUpOgorICAgICAgICAqIGRvbS9Eb2N1bWVudC5oOgorICAg
ICAgICAqIGRvbS9TY3JpcHRFeGVjdXRpb25Db250ZXh0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OlNjcmlwdEV4ZWN1dGlvbkNvbnRleHQ6OlBlbmRpbmdFeGNlcHRpb246OlBlbmRpbmdFeGNlcHRp
b24pOgorICAgICAgICAoV2ViQ29yZTo6U2NyaXB0RXhlY3V0aW9uQ29udGV4dDo6U2NyaXB0RXhl
Y3V0aW9uQ29udGV4dCk6CisgICAgICAgIChXZWJDb3JlOjpTY3JpcHRFeGVjdXRpb25Db250ZXh0
OjpyZXBvcnRFeGNlcHRpb24pOiB0aGlzIG1ldGhvZCBpcyBub3QgdmlydHVhbCBhbnltb3JlIHRv
CisgICAgICAgIGVuc3VyZSB0aGF0IGVycm9yIGV2ZW50IGRpc3BhdGNoaW5nIGFsZ29yaXRobSBp
cyB0aGUgc2FtZSBpbiBXb3JrZXJDb250ZXh0IGFuZCBpbiBEb2N1bWVudC4KKyAgICAgICAgKFdl
YkNvcmU6OlNjcmlwdEV4ZWN1dGlvbkNvbnRleHQ6OmRpc3BhdGNoRXJyb3JFdmVudCk6CisgICAg
ICAgICogZG9tL1NjcmlwdEV4ZWN1dGlvbkNvbnRleHQuaDoKKyAgICAgICAgKiB3b3JrZXJzL0Rl
ZmF1bHRTaGFyZWRXb3JrZXJSZXBvc2l0b3J5LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OnBvc3RF
eGNlcHRpb25UYXNrKToKKyAgICAgICAgKiB3b3JrZXJzL1dvcmtlckNvbnRleHQuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6V29ya2VyQ29udGV4dDo6V29ya2VyQ29udGV4dCk6CisgICAgICAgIChX
ZWJDb3JlOjpXb3JrZXJDb250ZXh0OjplcnJvckV2ZW50VGFyZ2V0KToKKyAgICAgICAgKFdlYkNv
cmU6OldvcmtlckNvbnRleHQ6OmxvZ0V4Y2VwdGlvblRvQ29uc29sZSk6CisgICAgICAgICogd29y
a2Vycy9Xb3JrZXJDb250ZXh0Lmg6CisgICAgICAgICogd29ya2Vycy9Xb3JrZXJNZXNzYWdpbmdQ
cm94eS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpXb3JrZXJFeGNlcHRpb25UYXNrOjpwZXJmb3Jt
VGFzayk6CisKIDIwMTAtMTItMDkgIFl1cnkgU2VtaWtoYXRza3kgIDx5dXJ5c0BjaHJvbWl1bS5v
cmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgUGF2ZWwgRmVsZG1hbi4KZGlmZiAtLWdpdCBhL1dl
YkNvcmUvR05VbWFrZWZpbGUuYW0gYi9XZWJDb3JlL0dOVW1ha2VmaWxlLmFtCmluZGV4IGY0MTdh
MjQuLjE0MDUxMzIgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvR05VbWFrZWZpbGUuYW0KKysrIGIvV2Vi
Q29yZS9HTlVtYWtlZmlsZS5hbQpAQCAtNzQ1LDYgKzc0NSw4IEBAIHdlYmNvcmVfc291cmNlcyAr
PSBcCiAJV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0VsZW1lbnRDdXN0b20uY3BwIFwKIAlXZWJDb3Jl
L2JpbmRpbmdzL2pzL0pTRW50cnlDdXN0b20uY3BwIFwKIAlXZWJDb3JlL2JpbmRpbmdzL2pzL0pT
RW50cnlTeW5jQ3VzdG9tLmNwcCBcCisJV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0Vycm9ySGFuZGxl
ci5jcHAgXAorCVdlYkNvcmUvYmluZGluZ3MvanMvSlNFcnJvckhhbmRsZXIuaCBcCiAJV2ViQ29y
ZS9iaW5kaW5ncy9qcy9KU0V2ZW50Q3VzdG9tLmNwcCBcCiAJV2ViQ29yZS9iaW5kaW5ncy9qcy9K
U0V2ZW50TGlzdGVuZXIuY3BwIFwKIAlXZWJDb3JlL2JpbmRpbmdzL2pzL0pTRXZlbnRMaXN0ZW5l
ci5oIFwKQEAgLTg0Miw4ICs4NDQsNiBAQCB3ZWJjb3JlX3NvdXJjZXMgKz0gXAogCVdlYkNvcmUv
YmluZGluZ3MvanMvSlNXb3JrZXJDb250ZXh0QmFzZS5jcHAgXAogCVdlYkNvcmUvYmluZGluZ3Mv
anMvSlNXb3JrZXJDb250ZXh0QmFzZS5oIFwKIAlXZWJDb3JlL2JpbmRpbmdzL2pzL0pTV29ya2Vy
Q29udGV4dEN1c3RvbS5jcHAgXAotCVdlYkNvcmUvYmluZGluZ3MvanMvSlNXb3JrZXJDb250ZXh0
RXJyb3JIYW5kbGVyLmNwcCBcCi0JV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1dvcmtlckNvbnRleHRF
cnJvckhhbmRsZXIuaCBcCiAJV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1dvcmtlckN1c3RvbS5jcHAg
XAogCVdlYkNvcmUvYmluZGluZ3MvanMvSlNYTUxIdHRwUmVxdWVzdEN1c3RvbS5jcHAgXAogCVdl
YkNvcmUvYmluZGluZ3MvanMvSlNYTUxIdHRwUmVxdWVzdFVwbG9hZEN1c3RvbS5jcHAgXApkaWZm
IC0tZ2l0IGEvV2ViQ29yZS9XZWJDb3JlLmd5cGkgYi9XZWJDb3JlL1dlYkNvcmUuZ3lwaQppbmRl
eCA4ZDRlZDAyLi5kNzYxZGQ2IDEwMDY0NAotLS0gYS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQorKysg
Yi9XZWJDb3JlL1dlYkNvcmUuZ3lwaQpAQCAtNjI0LDYgKzYyNCw4IEBACiAgICAgICAgICAgICAn
YmluZGluZ3MvanMvSlNFbGVtZW50Q3VzdG9tLmNwcCcsCiAgICAgICAgICAgICAnYmluZGluZ3Mv
anMvSlNFbnRyeUN1c3RvbS5jcHAnLAogICAgICAgICAgICAgJ2JpbmRpbmdzL2pzL0pTRW50cnlT
eW5jQ3VzdG9tLmNwcCcsCisgICAgICAgICAgICAnYmluZGluZ3MvanMvSlNFcnJvckhhbmRsZXIu
Y3BwJywKKyAgICAgICAgICAgICdiaW5kaW5ncy9qcy9KU0Vycm9ySGFuZGxlci5oJywKICAgICAg
ICAgICAgICdiaW5kaW5ncy9qcy9KU0V2ZW50Q3VzdG9tLmNwcCcsCiAgICAgICAgICAgICAnYmlu
ZGluZ3MvanMvSlNFdmVudExpc3RlbmVyLmNwcCcsCiAgICAgICAgICAgICAnYmluZGluZ3MvanMv
SlNFdmVudExpc3RlbmVyLmgnLApAQCAtNzIxLDggKzcyMyw2IEBACiAgICAgICAgICAgICAnYmlu
ZGluZ3MvanMvSlNXb3JrZXJDb250ZXh0QmFzZS5jcHAnLAogICAgICAgICAgICAgJ2JpbmRpbmdz
L2pzL0pTV29ya2VyQ29udGV4dEJhc2UuaCcsCiAgICAgICAgICAgICAnYmluZGluZ3MvanMvSlNX
b3JrZXJDb250ZXh0Q3VzdG9tLmNwcCcsCi0gICAgICAgICAgICAnYmluZGluZ3MvanMvSlNXb3Jr
ZXJDb250ZXh0RXJyb3JIYW5kbGVyLmNwcCcsCi0gICAgICAgICAgICAnYmluZGluZ3MvanMvSlNX
b3JrZXJDb250ZXh0RXJyb3JIYW5kbGVyLmgnLAogICAgICAgICAgICAgJ2JpbmRpbmdzL2pzL0pT
V29ya2VyQ3VzdG9tLmNwcCcsCiAgICAgICAgICAgICAnYmluZGluZ3MvanMvSlNYTUxIdHRwUmVx
dWVzdEN1c3RvbS5jcHAnLAogICAgICAgICAgICAgJ2JpbmRpbmdzL2pzL0pTWE1MSHR0cFJlcXVl
c3RVcGxvYWRDdXN0b20uY3BwJywKQEAgLTk4NSw2ICs5ODUsOCBAQAogICAgICAgICAgICAgJ2Jp
bmRpbmdzL3Y4L1Y4UHJveHkuaCcsCiAgICAgICAgICAgICAnYmluZGluZ3MvdjgvVjhVdGlsaXRp
ZXMuY3BwJywKICAgICAgICAgICAgICdiaW5kaW5ncy92OC9WOFV0aWxpdGllcy5oJywKKyAgICAg
ICAgICAgICdiaW5kaW5ncy92OC9WOFdpbmRvd0Vycm9ySGFuZGxlci5jcHAnLAorICAgICAgICAg
ICAgJ2JpbmRpbmdzL3Y4L1Y4V2luZG93RXJyb3JIYW5kbGVyLmgnLAogICAgICAgICAgICAgJ2Jp
bmRpbmdzL3Y4L1Y4V29ya2VyQ29udGV4dEVycm9ySGFuZGxlci5jcHAnLAogICAgICAgICAgICAg
J2JpbmRpbmdzL3Y4L1Y4V29ya2VyQ29udGV4dEVycm9ySGFuZGxlci5oJywKICAgICAgICAgICAg
ICdiaW5kaW5ncy92OC9WOFdvcmtlckNvbnRleHRFdmVudExpc3RlbmVyLmNwcCcsCmRpZmYgLS1n
aXQgYS9XZWJDb3JlL1dlYkNvcmUub3JkZXIgYi9XZWJDb3JlL1dlYkNvcmUub3JkZXIKaW5kZXgg
MGZkYWJiMS4uMjA0OWZlMSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9XZWJDb3JlLm9yZGVyCisrKyBi
L1dlYkNvcmUvV2ViQ29yZS5vcmRlcgpAQCAtMjUyMDksMTMgKzI1MjA5LDkgQEAgX19aTjdXZWJD
b3JlMTVKU1dvcmtlckNvbnRleHQxMHNldFRpbWVvdXRFUE4zSlNDOUV4ZWNTdGF0ZUVSS05TMV83
QXJnTGlzdEUKIF9fWk43V2ViQ29yZTEzV29ya2VyQ29udGV4dDEwc2V0VGltZW91dEVQTlNfMTVT
Y2hlZHVsZWRBY3Rpb25FaQogX19aTjdXZWJDb3JlMTdXb3JrZXJTaGFyZWRUaW1lcjExc2V0Rmly
ZVRpbWVFZAogX19aTjdXZWJDb3JlMTVTY2hlZHVsZWRBY3Rpb243ZXhlY3V0ZUVQTlNfMTNXb3Jr
ZXJDb250ZXh0RQotX19aTjdXZWJDb3JlMjdKU1dvcmtlckNvbnRleHRFcnJvckhhbmRsZXJDMUVQ
TjNKU0M4SlNPYmplY3RFUzNfYlBOU18xNURPTVdyYXBwZXJXb3JsZEUKLV9fWk43V2ViQ29yZTI3
SlNXb3JrZXJDb250ZXh0RXJyb3JIYW5kbGVyQzJFUE4zSlNDOEpTT2JqZWN0RVMzX2JQTlNfMTVE
T01XcmFwcGVyV29ybGRFCiBfX1pON1dlYkNvcmUxMEVycm9yRXZlbnRDMUVSS05TXzZTdHJpbmdF
UzNfagogX19aTjdXZWJDb3JlMTBFcnJvckV2ZW50QzJFUktOU182U3RyaW5nRVMzX2oKLV9fWk43
V2ViQ29yZTI3SlNXb3JrZXJDb250ZXh0RXJyb3JIYW5kbGVyMTFoYW5kbGVFdmVudEVQTlNfMjJT
Y3JpcHRFeGVjdXRpb25Db250ZXh0RVBOU181RXZlbnRFCiBfX1pON1dlYkNvcmUxMEVycm9yRXZl
bnREMEV2Ci1fX1pON1dlYkNvcmUyN0pTV29ya2VyQ29udGV4dEVycm9ySGFuZGxlckQwRXYKIF9f
Wk43V2ViQ29yZTE3anNXb3JrZXJPbm1lc3NhZ2VFUE4zSlNDOUV4ZWNTdGF0ZUVOUzBfN0pTVmFs
dWVFUktOUzBfMTBJZGVudGlmaWVyRQogX19aTjdXZWJDb3JlMzRqc1dvcmtlclByb3RvdHlwZUZ1
bmN0aW9uVGVybWluYXRlRVBOM0pTQzlFeGVjU3RhdGVFUE5TMF84SlNPYmplY3RFTlMwXzdKU1Zh
bHVlRVJLTlMwXzdBcmdMaXN0RQogX19aVGhuOF9ON1dlYkNvcmUyMFdvcmtlck1lc3NhZ2luZ1By
b3h5MTl3b3JrZXJDb250ZXh0Q2xvc2VkRXYKZGlmZiAtLWdpdCBhL1dlYkNvcmUvV2ViQ29yZS5w
cm8gYi9XZWJDb3JlL1dlYkNvcmUucHJvCmluZGV4IDBlYWZmNWEuLmViNWZkMzQgMTAwNjQ0Ci0t
LSBhL1dlYkNvcmUvV2ViQ29yZS5wcm8KKysrIGIvV2ViQ29yZS9XZWJDb3JlLnBybwpAQCAtMzg1
LDYgKzM4NSw3IEBAIHY4IHsKICAgICAgICAgYmluZGluZ3MvdjgvVjhOb2RlRmlsdGVyQ29uZGl0
aW9uLmNwcCBcCiAgICAgICAgIGJpbmRpbmdzL3Y4L1Y4UHJveHkuY3BwIFwKICAgICAgICAgYmlu
ZGluZ3MvdjgvVjhVdGlsaXRpZXMuY3BwIFwKKyAgICAgICAgYmluZGluZ3MvdjgvVjhXaW5kb3dF
cnJvckhhbmRsZXIuY3BwIFwKICAgICAgICAgYmluZGluZ3MvdjgvVjhXb3JrZXJDb250ZXh0RXZl
bnRMaXN0ZW5lci5jcHAgXAogICAgICAgICBiaW5kaW5ncy92OC9Xb3JrZXJDb250ZXh0RXhlY3V0
aW9uUHJveHkuY3BwIFwKICAgICAgICAgYmluZGluZ3MvdjgvV29ya2VyU2NyaXB0Q29udHJvbGxl
ci5jcHAgXApAQCAtNTg4LDcgKzU4OSw2IEBAIHY4IHsKICAgICAgICAgYmluZGluZ3MvanMvSlNX
ZWJLaXRDU1NLZXlmcmFtZXNSdWxlQ3VzdG9tLmNwcCBcCiAgICAgICAgIGJpbmRpbmdzL2pzL0pT
V2ViS2l0Q1NTTWF0cml4Q3VzdG9tLmNwcCBcCiAgICAgICAgIGJpbmRpbmdzL2pzL0pTV2ViS2l0
UG9pbnRDdXN0b20uY3BwIFwKLSAgICAgICAgYmluZGluZ3MvanMvSlNXb3JrZXJDb250ZXh0RXJy
b3JIYW5kbGVyLmNwcCBcCiAgICAgICAgIGJpbmRpbmdzL2pzL0pTWE1MSHR0cFJlcXVlc3RDdXN0
b20uY3BwIFwKICAgICAgICAgYmluZGluZ3MvanMvSlNYTUxIdHRwUmVxdWVzdFVwbG9hZEN1c3Rv
bS5jcHAgXAogICAgICAgICBiaW5kaW5ncy9qcy9TY2hlZHVsZWRBY3Rpb24uY3BwIFwKQEAgLTE0
NTgsNiArMTQ1OCw3IEBAIHY4IHsKICAgICAgICAgYmluZGluZ3MvdjgvVjhOUFV0aWxzLmggXAog
ICAgICAgICBiaW5kaW5ncy92OC9WOFByb3h5LmggXAogICAgICAgICBiaW5kaW5ncy92OC9WOFV0
aWxpdGllcy5oIFwKKyAgICAgICAgYmluZGluZ3MvdjgvVjhXaW5kb3dFcnJvckhhbmRsZXIuaCBc
CiAgICAgICAgIGJpbmRpbmdzL3Y4L1Y4V29ya2VyQ29udGV4dEV2ZW50TGlzdGVuZXIuaCBcCiAg
ICAgICAgIGJpbmRpbmdzL3Y4L1dvcmtlckNvbnRleHRFeGVjdXRpb25Qcm94eS5oIFwKICAgICAg
ICAgYmluZGluZ3MvdjgvV29ya2VyU2NyaXB0Q29udHJvbGxlci5oIFwKQEAgLTE0ODQsNiArMTQ4
NSw3IEBAIHY4IHsKICAgICAgICAgYmluZGluZ3MvanMvSlNET01XaW5kb3dDdXN0b20uaCBcCiAg
ICAgICAgIGJpbmRpbmdzL2pzL0pTRE9NV2luZG93U2hlbGwuaCBcCiAgICAgICAgIGJpbmRpbmdz
L2pzL0pTRE9NV3JhcHBlci5oIFwKKyAgICAgICAgYmluZGluZ3MvanMvSlNFcnJvckhhbmRsZXIu
aCBcCiAgICAgICAgIGJpbmRpbmdzL2pzL0pTRXZlbnRMaXN0ZW5lci5oIFwKICAgICAgICAgYmlu
ZGluZ3MvanMvSlNFdmVudFRhcmdldC5oIFwKICAgICAgICAgYmluZGluZ3MvanMvSlNIaXN0b3J5
Q3VzdG9tLmggXApAQCAtMTUwMSw3ICsxNTAzLDYgQEAgdjggewogICAgICAgICBiaW5kaW5ncy9q
cy9KU1BsdWdpbkVsZW1lbnRGdW5jdGlvbnMuaCBcCiAgICAgICAgIGJpbmRpbmdzL2pzL0pTU3Rv
cmFnZUN1c3RvbS5oIFwKICAgICAgICAgYmluZGluZ3MvanMvSlNXb3JrZXJDb250ZXh0QmFzZS5o
IFwKLSAgICAgICAgYmluZGluZ3MvanMvSlNXb3JrZXJDb250ZXh0RXJyb3JIYW5kbGVyLmggXAog
ICAgICAgICBiaW5kaW5ncy9qcy9KYXZhU2NyaXB0Q2FsbEZyYW1lLmggXAogICAgICAgICBiaW5k
aW5ncy9qcy9TY2hlZHVsZWRBY3Rpb24uaCBcCiAgICAgICAgIGJpbmRpbmdzL2pzL1NjcmlwdENh
Y2hlZEZyYW1lRGF0YS5oIFwKZGlmZiAtLWdpdCBhL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2Vi
Q29yZS52Y3Byb2ogYi9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qCmluZGV4
IDMwMDUxZGUuLmM5N2YwMWYgMTAwNzU1Ci0tLSBhL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2Vi
Q29yZS52Y3Byb2oKKysrIGIvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvagpA
QCAtNTc4MDIsNiArNTc4MDIsNjMgQEAKIAkJCQk8L0ZpbGU+CiAJCQkJPEZpbGUKIAkJCQkJUmVs
YXRpdmVQYXRoPSIuLlxiaW5kaW5nc1xqc1xKU0RPTVdpbmRvd1NoZWxsLmNwcCIKKwkJCQkJUmVs
YXRpdmVQYXRoPSIuLlxiaW5kaW5nc1xqc1xKU0Vycm9ySGFuZGxlci5jcHAiCisJCQkJCT4KKwkJ
CQkJPEZpbGVDb25maWd1cmF0aW9uCisJCQkJCQlOYW1lPSJEZWJ1Z3xXaW4zMiIKKwkJCQkJCUV4
Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIgorCQkJCQkJPgorCQkJCQkJPFRvb2wKKwkJCQkJCQlOYW1l
PSJWQ0NMQ29tcGlsZXJUb29sIgorCQkJCQkJLz4KKwkJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4K
KwkJCQkJPEZpbGVDb25maWd1cmF0aW9uCisJCQkJCQlOYW1lPSJSZWxlYXNlfFdpbjMyIgorCQkJ
CQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiCisJCQkJCQk+CisJCQkJCQk8VG9vbAorCQkJCQkJ
CU5hbWU9IlZDQ0xDb21waWxlclRvb2wiCisJCQkJCQkvPgorCQkJCQk8L0ZpbGVDb25maWd1cmF0
aW9uPgorCQkJCQk8RmlsZUNvbmZpZ3VyYXRpb24KKwkJCQkJCU5hbWU9IkRlYnVnX0ludGVybmFs
fFdpbjMyIgorCQkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiCisJCQkJCQk+CisJCQkJCQk8
VG9vbAorCQkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiCisJCQkJCQkvPgorCQkJCQk8L0Zp
bGVDb25maWd1cmF0aW9uPgorCQkJCQk8RmlsZUNvbmZpZ3VyYXRpb24KKwkJCQkJCU5hbWU9IkRl
YnVnX0NhaXJvfFdpbjMyIgorCQkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiCisJCQkJCQk+
CisJCQkJCQk8VG9vbAorCQkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiCisJCQkJCQkvPgor
CQkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPgorCQkJCQk8RmlsZUNvbmZpZ3VyYXRpb24KKwkJCQkJ
CU5hbWU9IlJlbGVhc2VfQ2Fpcm98V2luMzIiCisJCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1
ZSIKKwkJCQkJCT4KKwkJCQkJCTxUb29sCisJCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCIK
KwkJCQkJCS8+CisJCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+CisJCQkJCTxGaWxlQ29uZmlndXJh
dGlvbgorCQkJCQkJTmFtZT0iRGVidWdfQWxsfFdpbjMyIgorCQkJCQkJRXhjbHVkZWRGcm9tQnVp
bGQ9InRydWUiCisJCQkJCQk+CisJCQkJCQk8VG9vbAorCQkJCQkJCU5hbWU9IlZDQ0xDb21waWxl
clRvb2wiCisJCQkJCQkvPgorCQkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPgorCQkJCTwvRmlsZT4K
KwkJCQk8RmlsZQorCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGJpbmRpbmdzXGpzXEpTRXJyb3JIYW5k
bGVyLmgiCisJCQkJCT4KKwkJCQk8L0ZpbGU+CisJCQkJPEZpbGUKKwkJCQkJUmVsYXRpdmVQYXRo
PSIuLlxiaW5kaW5nc1xqc1xKU0V2ZW50Q3VzdG9tLmNwcCIKIAkJCQkJPgogCQkJCQk8RmlsZUNv
bmZpZ3VyYXRpb24KIAkJCQkJCU5hbWU9IkRlYnVnfFdpbjMyIgpAQCAtNjE1NDEsNjIgKzYxNTk4
LDYgQEAKIAkJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4KIAkJCQk8L0ZpbGU+CiAJCQkJPEZpbGUK
LQkJCQkJUmVsYXRpdmVQYXRoPSIuLlxiaW5kaW5nc1xqc1xKU1dvcmtlckNvbnRleHRFcnJvckhh
bmRsZXIuY3BwIgotCQkJCQk+Ci0JCQkJCTxGaWxlQ29uZmlndXJhdGlvbgotCQkJCQkJTmFtZT0i
RGVidWd8V2luMzIiCi0JCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSIKLQkJCQkJCT4KLQkJ
CQkJCTxUb29sCi0JCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCIKLQkJCQkJCS8+Ci0JCQkJ
CTwvRmlsZUNvbmZpZ3VyYXRpb24+Ci0JCQkJCTxGaWxlQ29uZmlndXJhdGlvbgotCQkJCQkJTmFt
ZT0iUmVsZWFzZXxXaW4zMiIKLQkJCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIgotCQkJCQkJ
PgotCQkJCQkJPFRvb2wKLQkJCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIgotCQkJCQkJLz4K
LQkJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4KLQkJCQkJPEZpbGVDb25maWd1cmF0aW9uCi0JCQkJ
CQlOYW1lPSJEZWJ1Z19DYWlyb19DRkxpdGV8V2luMzIiCi0JCQkJCQlFeGNsdWRlZEZyb21CdWls
ZD0idHJ1ZSIKLQkJCQkJCT4KLQkJCQkJCTxUb29sCi0JCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVy
VG9vbCIKLQkJCQkJCS8+Ci0JCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+Ci0JCQkJCTxGaWxlQ29u
ZmlndXJhdGlvbgotCQkJCQkJTmFtZT0iUmVsZWFzZV9DYWlyb19DRkxpdGV8V2luMzIiCi0JCQkJ
CQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSIKLQkJCQkJCT4KLQkJCQkJCTxUb29sCi0JCQkJCQkJ
TmFtZT0iVkNDTENvbXBpbGVyVG9vbCIKLQkJCQkJCS8+Ci0JCQkJCTwvRmlsZUNvbmZpZ3VyYXRp
b24+Ci0JCQkJCTxGaWxlQ29uZmlndXJhdGlvbgotCQkJCQkJTmFtZT0iRGVidWdfQWxsfFdpbjMy
IgotCQkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiCi0JCQkJCQk+Ci0JCQkJCQk8VG9vbAot
CQkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiCi0JCQkJCQkvPgotCQkJCQk8L0ZpbGVDb25m
aWd1cmF0aW9uPgotCQkJCQk8RmlsZUNvbmZpZ3VyYXRpb24KLQkJCQkJCU5hbWU9IlJlbGVhc2Vf
TFRDR3xXaW4zMiIKLQkJCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIgotCQkJCQkJPgotCQkJ
CQkJPFRvb2wKLQkJCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIgotCQkJCQkJLz4KLQkJCQkJ
PC9GaWxlQ29uZmlndXJhdGlvbj4KLQkJCQk8L0ZpbGU+Ci0JCQkJPEZpbGUKLQkJCQkJUmVsYXRp
dmVQYXRoPSIuLlxiaW5kaW5nc1xqc1xKU1dvcmtlckNvbnRleHRFcnJvckhhbmRsZXIuaCIKLQkJ
CQkJPgotCQkJCTwvRmlsZT4KLQkJCQk8RmlsZQogCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGJpbmRp
bmdzXGpzXEpTV29ya2VyQ3VzdG9tLmNwcCIKIAkJCQkJPgogCQkJCQk8RmlsZUNvbmZpZ3VyYXRp
b24KZGlmZiAtLWdpdCBhL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
IGIvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggMmVhZjMz
Ny4uZTM2YzZlNiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2oKKysrIGIvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oK
QEAgLTU1NDgsOCArNTU0OCw4IEBACiAJCUYzOTIyNDlEMTI2RjExQUUwMEE5MjZEOSAvKiBTY3Jp
cHRDYWxsU3RhY2tGYWN0b3J5LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSBGMzkyMjQ5QjEyNkYxMUFFMDBBOTI2RDkgLyogU2NyaXB0Q2FsbFN0YWNrRmFj
dG9yeS5oICovOyB9OwogCQlGMzlCRTk1QjEyNjczQkY0MDBFMEE2NzQgLyogU2NyaXB0QXJndW1l
bnRzLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEYz
OUJFOTU5MTI2NzNCRjQwMEUwQTY3NCAvKiBTY3JpcHRBcmd1bWVudHMuY3BwICovOyB9OwogCQlG
MzlCRTk1QzEyNjczQkY0MDBFMEE2NzQgLyogU2NyaXB0QXJndW1lbnRzLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGMzlCRTk1QTEyNjczQkY0MDBFMEE2
NzQgLyogU2NyaXB0QXJndW1lbnRzLmggKi87IH07Ci0JCUYzRDQ2MTQ4MTE2MUQ1MzIwMENBMEQw
OSAvKiBKU1dvcmtlckNvbnRleHRFcnJvckhhbmRsZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjNENDYxNDYxMTYxRDUzMjAwQ0EwRDA5IC8qIEpT
V29ya2VyQ29udGV4dEVycm9ySGFuZGxlci5jcHAgKi87IH07Ci0JCUYzRDQ2MTQ5MTE2MUQ1MzIw
MENBMEQwOSAvKiBKU1dvcmtlckNvbnRleHRFcnJvckhhbmRsZXIuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEYzRDQ2MTQ3MTE2MUQ1MzIwMENBMEQwOSAv
KiBKU1dvcmtlckNvbnRleHRFcnJvckhhbmRsZXIuaCAqLzsgfTsKKwkJRjNENDYxNDgxMTYxRDUz
MjAwQ0EwRDA5IC8qIEpTRXJyb3JIYW5kbGVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEYzRDQ2MTQ2MTE2MUQ1MzIwMENBMEQwOSAvKiBKU0Vycm9y
SGFuZGxlci5jcHAgKi87IH07CisJCUYzRDQ2MTQ5MTE2MUQ1MzIwMENBMEQwOSAvKiBKU0Vycm9y
SGFuZGxlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
RjNENDYxNDcxMTYxRDUzMjAwQ0EwRDA5IC8qIEpTRXJyb3JIYW5kbGVyLmggKi87IH07CiAJCUY0
RUFGNEFFMTBDNzQyQjEwMDkxMDBEMyAvKiBPcGVuVHlwZVNhbml0aXplci5jcHAgaW4gU291cmNl
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNEVBRjRBQzEwQzc0MkIxMDA5
MTAwRDMgLyogT3BlblR5cGVTYW5pdGl6ZXIuY3BwICovOyB9OwogCQlGNEVBRjRBRjEwQzc0MkIx
MDA5MTAwRDMgLyogT3BlblR5cGVTYW5pdGl6ZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY0RUFGNEFEMTBDNzQyQjEwMDkxMDBEMyAvKiBPcGVuVHlw
ZVNhbml0aXplci5oICovOyB9OwogCQlGNTVCM0RBRDEyNTFGMTJEMDAzRUYyNjkgLyogQmFzZVRl
eHRJbnB1dFR5cGUuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gRjU1QjNENzkxMjUxRjEyRDAwM0VGMjY5IC8qIEJhc2VUZXh0SW5wdXRUeXBlLmNwcCAq
LzsgfTsKQEAgLTExODM4LDggKzExODM4LDggQEAKIAkJRjM5MjI0OUIxMjZGMTFBRTAwQTkyNkQ5
IC8qIFNjcmlwdENhbGxTdGFja0ZhY3RvcnkuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gU2NyaXB0Q2FsbFN0YWNrRmFjdG9yeS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQlGMzlCRTk1OTEyNjczQkY0MDBFMEE2NzQgLyogU2NyaXB0QXJndW1lbnRzLmNwcCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFNjcmlwdEFyZ3VtZW50cy5jcHA7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUYzOUJFOTVBMTI2NzNCRjQwMEUwQTY3NCAvKiBT
Y3JpcHRBcmd1bWVudHMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU2NyaXB0
QXJndW1lbnRzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUYzRDQ2MTQ2MTE2MUQ1
MzIwMENBMEQwOSAvKiBKU1dvcmtlckNvbnRleHRFcnJvckhhbmRsZXIuY3BwICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNXb3JrZXJDb250ZXh0RXJyb3JIYW5kbGVyLmNw
cDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJRjNENDYxNDcxMTYxRDUzMjAwQ0EwRDA5
IC8qIEpTV29ya2VyQ29udGV4dEVycm9ySGFuZGxlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBKU1dvcmtlckNvbnRleHRFcnJvckhhbmRsZXIuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKKwkJRjNENDYxNDYxMTYxRDUzMjAwQ0EwRDA5IC8qIEpTRXJyb3JIYW5kbGVy
LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTRXJyb3JIYW5kbGVy
LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRjNENDYxNDcxMTYxRDUzMjAwQ0Ew
RDA5IC8qIEpTRXJyb3JIYW5kbGVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IEpTRXJyb3JIYW5kbGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUY0RUFGNEFD
MTBDNzQyQjEwMDkxMDBEMyAvKiBPcGVuVHlwZVNhbml0aXplci5jcHAgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBPcGVuVHlwZVNhbml0aXplci5jcHA7IHBhdGggPSBvcGVu
dHlwZS9PcGVuVHlwZVNhbml0aXplci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CUY0RUFGNEFEMTBDNzQyQjEwMDkxMDBEMyAvKiBPcGVuVHlwZVNhbml0aXplci5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBPcGVuVHlwZVNhbml0aXplci5oOyBwYXRoID0gb3Bl
bnR5cGUvT3BlblR5cGVTYW5pdGl6ZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
RjUyM0QyM0IwMkRFNDM5NjAxODYzNUNBIC8qIEhUTUxEb2N1bWVudC5jcHAgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGluZGVudFdpZHRoID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBIVE1MRG9jdW1lbnQu
Y3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB0YWJXaWR0aCA9IDg7IHVzZXNUYWJzID0gMDsg
fTsKQEAgLTE3NDI0LDYgKzE3NDI0LDggQEAKIAkJCQlCQ0JGQjUzQjBEQ0QyOUNGMDAxOUIzRTUg
LyogSlNET01XaW5kb3dTaGVsbC5oICovLAogCQkJCUJDNTNEQUM2MTE0MzMwNjQwMDBEODE3RSAv
KiBKU0RPTVdyYXBwZXIuY3BwICovLAogCQkJCTY1RTBFOTQzMTEzM0M4OUYwMEI0Q0IxMCAvKiBK
U0RPTVdyYXBwZXIuaCAqLywKKwkJCQlGM0Q0NjE0NjExNjFENTMyMDBDQTBEMDkgLyogSlNFcnJv
ckhhbmRsZXIuY3BwICovLAorCQkJCUYzRDQ2MTQ3MTE2MUQ1MzIwMENBMEQwOSAvKiBKU0Vycm9y
SGFuZGxlci5oICovLAogCQkJCUJDNjA5MDFFMEU5MUI4RUMwMDBDNjhCNSAvKiBKU0V2ZW50VGFy
Z2V0LmNwcCAqLywKIAkJCQlCQzYwOTAxRDBFOTFCOEVDMDAwQzY4QjUgLyogSlNFdmVudFRhcmdl
dC5oICovLAogCQkJCTMzMTRBQ0U5MTA4OTIwODYwMDBGMEU1NiAvKiBKU0V4Y2VwdGlvbkJhc2Uu
Y3BwICovLApAQCAtMTc0MzUsOCArMTc0MzcsNiBAQAogCQkJCTE0Q0Q4RDgxMTA2QjUyOTAwMEE0
NkQyMyAvKiBKU1NoYXJlZFdvcmtlckN1c3RvbS5jcHAgKi8sCiAJCQkJRTFDMzZEMzIwRUIwQTA5
NDAwNzQxMEJDIC8qIEpTV29ya2VyQ29udGV4dEJhc2UuY3BwICovLAogCQkJCUUxQzM2RDMzMEVC
MEEwOTQwMDc0MTBCQyAvKiBKU1dvcmtlckNvbnRleHRCYXNlLmggKi8sCi0JCQkJRjNENDYxNDYx
MTYxRDUzMjAwQ0EwRDA5IC8qIEpTV29ya2VyQ29udGV4dEVycm9ySGFuZGxlci5jcHAgKi8sCi0J
CQkJRjNENDYxNDcxMTYxRDUzMjAwQ0EwRDA5IC8qIEpTV29ya2VyQ29udGV4dEVycm9ySGFuZGxl
ci5oICovLAogCQkJCUJDQTM3OEJBMEQxNUY2NDIwMEI3OTNENiAvKiBTY2hlZHVsZWRBY3Rpb24u
Y3BwICovLAogCQkJCUJDQTM3OEJCMEQxNUY2NDIwMEI3OTNENiAvKiBTY2hlZHVsZWRBY3Rpb24u
aCAqLywKIAkJCQk0MUYxRDIxRTBFRjM1QzJBMDBEQTg3NTMgLyogU2NyaXB0Q2FjaGVkRnJhbWVE
YXRhLmNwcCAqLywKQEAgLTIxMTAwLDcgKzIxMTAwLDcgQEAKIAkJCQlFMUNBQTVDNjBFOEJEMjM2
MDBBNzNFQ0EgLyogSlNXb3JrZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCUUxODI1NjkwMEVGMkIw
MkQwMDkzMzI0MiAvKiBKU1dvcmtlckNvbnRleHQuaCBpbiBIZWFkZXJzICovLAogCQkJCUUxQzM2
RDM1MEVCMEEwOTQwMDc0MTBCQyAvKiBKU1dvcmtlckNvbnRleHRCYXNlLmggaW4gSGVhZGVycyAq
LywKLQkJCQlGM0Q0NjE0OTExNjFENTMyMDBDQTBEMDkgLyogSlNXb3JrZXJDb250ZXh0RXJyb3JI
YW5kbGVyLmggaW4gSGVhZGVycyAqLywKKwkJCQlGM0Q0NjE0OTExNjFENTMyMDBDQTBEMDkgLyog
SlNFcnJvckhhbmRsZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCUUxQzM2MkVGMEVBRjJBQTkwMDc0
MTBCQyAvKiBKU1dvcmtlckxvY2F0aW9uLmggaW4gSGVhZGVycyAqLywKIAkJCQlFMTI3MUE1ODBF
RUVDREU0MDBGNjEyMTMgLyogSlNXb3JrZXJOYXZpZ2F0b3IuaCBpbiBIZWFkZXJzICovLAogCQkJ
CUJDMzQ4QkQ0MERCN0Y4MDQwMDRBQkFCOSAvKiBKU1hNTEh0dHBSZXF1ZXN0LmggaW4gSGVhZGVy
cyAqLywKQEAgLTIzOTE1LDcgKzIzOTE1LDcgQEAKIAkJCQlFMTgyNTY4RjBFRjJCMDJEMDA5MzMy
NDIgLyogSlNXb3JrZXJDb250ZXh0LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUUxQzM2RDM0MEVC
MEEwOTQwMDc0MTBCQyAvKiBKU1dvcmtlckNvbnRleHRCYXNlLmNwcCBpbiBTb3VyY2VzICovLAog
CQkJCUUxODI1OEFDMEVGM0NENzAwMDkzMzI0MiAvKiBKU1dvcmtlckNvbnRleHRDdXN0b20uY3Bw
IGluIFNvdXJjZXMgKi8sCi0JCQkJRjNENDYxNDgxMTYxRDUzMjAwQ0EwRDA5IC8qIEpTV29ya2Vy
Q29udGV4dEVycm9ySGFuZGxlci5jcHAgaW4gU291cmNlcyAqLywKKwkJCQlGM0Q0NjE0ODExNjFE
NTMyMDBDQTBEMDkgLyogSlNFcnJvckhhbmRsZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJRTFD
QTVDQkMwRThDRENBRjAwRThFRjkwIC8qIEpTV29ya2VyQ3VzdG9tLmNwcCBpbiBTb3VyY2VzICov
LAogCQkJCUUxQzM2MkYwMEVBRjJBQTkwMDc0MTBCQyAvKiBKU1dvcmtlckxvY2F0aW9uLmNwcCBp
biBTb3VyY2VzICovLAogCQkJCUUxMjcxQTU5MEVFRUNERTQwMEY2MTIxMyAvKiBKU1dvcmtlck5h
dmlnYXRvci5jcHAgaW4gU291cmNlcyAqLywKZGlmZiAtLWdpdCBhL1dlYkNvcmUvYmluZGluZ3Mv
anMvSlNCaW5kaW5nc0FsbEluT25lLmNwcCBiL1dlYkNvcmUvYmluZGluZ3MvanMvSlNCaW5kaW5n
c0FsbEluT25lLmNwcAppbmRleCA3ZmM1NzQwLi5kMmMyN2E5IDEwMDY0NAotLS0gYS9XZWJDb3Jl
L2JpbmRpbmdzL2pzL0pTQmluZGluZ3NBbGxJbk9uZS5jcHAKKysrIGIvV2ViQ29yZS9iaW5kaW5n
cy9qcy9KU0JpbmRpbmdzQWxsSW5PbmUuY3BwCkBAIC03Miw2ICs3Miw3IEBACiAjaW5jbHVkZSAi
SlNEZXZpY2VPcmllbnRhdGlvbkV2ZW50Q3VzdG9tLmNwcCIKICNpbmNsdWRlICJKU0RvY3VtZW50
Q3VzdG9tLmNwcCIKICNpbmNsdWRlICJKU0VsZW1lbnRDdXN0b20uY3BwIgorI2luY2x1ZGUgIkpT
RXJyb3JIYW5kbGVyLmNwcCIKICNpbmNsdWRlICJKU0V2ZW50Q3VzdG9tLmNwcCIKICNpbmNsdWRl
ICJKU0V2ZW50TGlzdGVuZXIuY3BwIgogI2luY2x1ZGUgIkpTRXZlbnRTb3VyY2VDdXN0b20uY3Bw
IgpAQCAtMTQxLDcgKzE0Miw2IEBACiAjaW5jbHVkZSAiSlNXZWJTb2NrZXRDdXN0b20uY3BwIgog
I2luY2x1ZGUgIkpTV29ya2VyQ29udGV4dEJhc2UuY3BwIgogI2luY2x1ZGUgIkpTV29ya2VyQ29u
dGV4dEN1c3RvbS5jcHAiCi0jaW5jbHVkZSAiSlNXb3JrZXJDb250ZXh0RXJyb3JIYW5kbGVyLmNw
cCIKICNpbmNsdWRlICJKU1dvcmtlckN1c3RvbS5jcHAiCiAjaW5jbHVkZSAiSlNYTUxIdHRwUmVx
dWVzdEN1c3RvbS5jcHAiCiAjaW5jbHVkZSAiSlNYTUxIdHRwUmVxdWVzdFVwbG9hZEN1c3RvbS5j
cHAiCmRpZmYgLS1naXQgYS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NQmluZGluZy5jcHAgYi9X
ZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NQmluZGluZy5jcHAKaW5kZXggY2YwYTE2YS4uZDc5ZWM1
ZiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTUJpbmRpbmcuY3BwCisrKyBi
L1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01CaW5kaW5nLmNwcApAQCAtNTUsNiArNTUsNyBAQAog
I2luY2x1ZGUgIlByb2Nlc3NpbmdJbnN0cnVjdGlvbi5oIgogI2luY2x1ZGUgIlJhbmdlRXhjZXB0
aW9uLmgiCiAjaW5jbHVkZSAiU2NyaXB0Q2FjaGVkRnJhbWVEYXRhLmgiCisjaW5jbHVkZSAiU2Ny
aXB0Q2FsbFN0YWNrLmgiCiAjaW5jbHVkZSAiU2NyaXB0Q29udHJvbGxlci5oIgogI2luY2x1ZGUg
IlNldHRpbmdzLmgiCiAjaW5jbHVkZSAiV2ViQ29yZUpTQ2xpZW50RGF0YS5oIgpAQCAtNTk4LDcg
KzU5OSw3IEBAIHZvaWQgcmVwb3J0RXhjZXB0aW9uKEV4ZWNTdGF0ZSogZXhlYywgSlNWYWx1ZSBl
eGNlcHRpb24pCiAgICAgaWYgKCFzY3JpcHRFeGVjdXRpb25Db250ZXh0KQogICAgICAgICByZXR1
cm47CiAKLSAgICBzY3JpcHRFeGVjdXRpb25Db250ZXh0LT5yZXBvcnRFeGNlcHRpb24odXN0cmlu
Z1RvU3RyaW5nKGVycm9yTWVzc2FnZSksIGxpbmVOdW1iZXIsIHVzdHJpbmdUb1N0cmluZyhleGNl
cHRpb25Tb3VyY2VVUkwpKTsKKyAgICBzY3JpcHRFeGVjdXRpb25Db250ZXh0LT5yZXBvcnRFeGNl
cHRpb24odXN0cmluZ1RvU3RyaW5nKGVycm9yTWVzc2FnZSksIGxpbmVOdW1iZXIsIHVzdHJpbmdU
b1N0cmluZyhleGNlcHRpb25Tb3VyY2VVUkwpLCAwKTsKIH0KIAogdm9pZCByZXBvcnRDdXJyZW50
RXhjZXB0aW9uKEV4ZWNTdGF0ZSogZXhlYykKZGlmZiAtLWdpdCBhL1dlYkNvcmUvYmluZGluZ3Mv
anMvSlNFcnJvckhhbmRsZXIuY3BwIGIvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0Vycm9ySGFuZGxl
ci5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOWQ3NjI5MQotLS0gL2Rl
di9udWxsCisrKyBiL1dlYkNvcmUvYmluZGluZ3MvanMvSlNFcnJvckhhbmRsZXIuY3BwCkBAIC0w
LDAgKzEsMTEyIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEwIEdvb2dsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCisgKiBt
ZXQ6CisgKgorICogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqICAgICAqIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKKyAqIGNvcHlyaWdodCBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIKKyAqIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUKKyAqIGRpc3RyaWJ1dGlvbi4KKyAqICAgICAqIE5laXRoZXIgdGhlIG5hbWUg
b2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKKyAqIGNvbnRyaWJ1dG9ycyBtYXkg
YmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCisgKiB0
aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgor
ICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJT
IEFORCBDT05UUklCVVRPUlMKKyAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBUSEUgSU1QTElF
RCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKKyAqIEEgUEFS
VElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09Q
WVJJR0hUCisgKiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNU
LCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKKyAqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VR
VUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFBST0NV
UkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAorICog
REFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNF
RCBBTkQgT04gQU5ZCisgKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNU
LCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1Ig
T1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMg
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorCisjaW5jbHVkZSAiSlNFcnJvckhhbmRs
ZXIuaCIKKworI2luY2x1ZGUgIkVycm9yRXZlbnQuaCIKKyNpbmNsdWRlICJFdmVudC5oIgorI2lu
Y2x1ZGUgIkpTRXZlbnQuaCIKKyNpbmNsdWRlIDxydW50aW1lL0pTTG9jay5oPgorCit1c2luZyBu
YW1lc3BhY2UgSlNDOworCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK0pTRXJyb3JIYW5kbGVyOjpK
U0Vycm9ySGFuZGxlcihKU09iamVjdCogZnVuY3Rpb24sIEpTT2JqZWN0KiB3cmFwcGVyLCBib29s
IGlzQXR0cmlidXRlLCBET01XcmFwcGVyV29ybGQqIGlzb2xhdGVkV29ybGQpCisgICAgOiBKU0V2
ZW50TGlzdGVuZXIoZnVuY3Rpb24sIHdyYXBwZXIsIGlzQXR0cmlidXRlLCBpc29sYXRlZFdvcmxk
KQoreworfQorCitKU0Vycm9ySGFuZGxlcjo6fkpTRXJyb3JIYW5kbGVyKCkKK3sKK30KKwordm9p
ZCBKU0Vycm9ySGFuZGxlcjo6aGFuZGxlRXZlbnQoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogc2Ny
aXB0RXhlY3V0aW9uQ29udGV4dCwgRXZlbnQqIGV2ZW50KQoreworICAgIEFTU0VSVChzY3JpcHRF
eGVjdXRpb25Db250ZXh0KTsKKyAgICBpZiAoIXNjcmlwdEV4ZWN1dGlvbkNvbnRleHQpCisgICAg
ICAgIHJldHVybjsKKworICAgIEFTU0VSVChldmVudC0+aXNFcnJvckV2ZW50KCkpOworICAgIEVy
cm9yRXZlbnQqIGVycm9yRXZlbnQgPSBzdGF0aWNfY2FzdDxFcnJvckV2ZW50Kj4oZXZlbnQpOwor
CisgICAgSlNMb2NrIGxvY2soU2lsZW5jZUFzc2VydGlvbnNPbmx5KTsKKworICAgIEpTT2JqZWN0
KiBqc0Z1bmN0aW9uID0gdGhpcy0+anNGdW5jdGlvbihzY3JpcHRFeGVjdXRpb25Db250ZXh0KTsK
KyAgICBpZiAoIWpzRnVuY3Rpb24pCisgICAgICAgIHJldHVybjsKKworICAgIEpTRE9NR2xvYmFs
T2JqZWN0KiBnbG9iYWxPYmplY3QgPSB0b0pTRE9NR2xvYmFsT2JqZWN0KHNjcmlwdEV4ZWN1dGlv
bkNvbnRleHQsIGlzb2xhdGVkV29ybGQoKSk7CisgICAgaWYgKCFnbG9iYWxPYmplY3QpCisgICAg
ICAgIHJldHVybjsKKworICAgIEV4ZWNTdGF0ZSogZXhlYyA9IGdsb2JhbE9iamVjdC0+Z2xvYmFs
RXhlYygpOworCisgICAgQ2FsbERhdGEgY2FsbERhdGE7CisgICAgQ2FsbFR5cGUgY2FsbFR5cGUg
PSBqc0Z1bmN0aW9uLT5nZXRDYWxsRGF0YShjYWxsRGF0YSk7CisKKyAgICBpZiAoY2FsbFR5cGUg
IT0gQ2FsbFR5cGVOb25lKSB7CisKKyAgICAgICAgcmVmKCk7CisKKyAgICAgICAgRXZlbnQqIHNh
dmVkRXZlbnQgPSBnbG9iYWxPYmplY3QtPmN1cnJlbnRFdmVudCgpOworICAgICAgICBnbG9iYWxP
YmplY3QtPnNldEN1cnJlbnRFdmVudChldmVudCk7CisKKyAgICAgICAgTWFya2VkQXJndW1lbnRC
dWZmZXIgYXJnczsKKyAgICAgICAgYXJncy5hcHBlbmQoanNTdHJpbmcoZXhlYywgZXJyb3JFdmVu
dC0+bWVzc2FnZSgpKSk7CisgICAgICAgIGFyZ3MuYXBwZW5kKGpzU3RyaW5nKGV4ZWMsIGVycm9y
RXZlbnQtPmZpbGVuYW1lKCkpKTsKKyAgICAgICAgYXJncy5hcHBlbmQoanNOdW1iZXIoZXJyb3JF
dmVudC0+bGluZW5vKCkpKTsKKworICAgICAgICBKU0dsb2JhbERhdGEmIGdsb2JhbERhdGEgPSBn
bG9iYWxPYmplY3QtPmdsb2JhbERhdGEoKTsKKyAgICAgICAgRHluYW1pY0dsb2JhbE9iamVjdFNj
b3BlIGdsb2JhbE9iamVjdFNjb3BlKGV4ZWMsIGdsb2JhbERhdGEuZHluYW1pY0dsb2JhbE9iamVj
dCA/IGdsb2JhbERhdGEuZHluYW1pY0dsb2JhbE9iamVjdCA6IGdsb2JhbE9iamVjdCk7CisKKyAg
ICAgICAgSlNWYWx1ZSB0aGlzVmFsdWUgPSBnbG9iYWxPYmplY3QtPnRvVGhpc09iamVjdChleGVj
KTsKKworICAgICAgICBnbG9iYWxEYXRhLnRpbWVvdXRDaGVja2VyLnN0YXJ0KCk7CisgICAgICAg
IEpTVmFsdWUgcmV0dXJuVmFsdWUgPSBKU0M6OmNhbGwoZXhlYywganNGdW5jdGlvbiwgY2FsbFR5
cGUsIGNhbGxEYXRhLCB0aGlzVmFsdWUsIGFyZ3MpOworICAgICAgICBnbG9iYWxEYXRhLnRpbWVv
dXRDaGVja2VyLnN0b3AoKTsKKworICAgICAgICBnbG9iYWxPYmplY3QtPnNldEN1cnJlbnRFdmVu
dChzYXZlZEV2ZW50KTsKKworICAgICAgICBpZiAoZXhlYy0+aGFkRXhjZXB0aW9uKCkpCisgICAg
ICAgICAgICByZXBvcnRDdXJyZW50RXhjZXB0aW9uKGV4ZWMpOworICAgICAgICBlbHNlIHsKKyAg
ICAgICAgICAgIGJvb2wgcmV0dmFsYm9vbDsKKyAgICAgICAgICAgIGlmIChyZXR1cm5WYWx1ZS5n
ZXRCb29sZWFuKHJldHZhbGJvb2wpICYmICFyZXR2YWxib29sKQorICAgICAgICAgICAgICAgIGV2
ZW50LT5wcmV2ZW50RGVmYXVsdCgpOworICAgICAgICB9CisKKyAgICAgICAgZGVyZWYoKTsKKyAg
ICB9Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1dlYkNvcmUvYmlu
ZGluZ3MvanMvSlNFcnJvckhhbmRsZXIuaCBiL1dlYkNvcmUvYmluZGluZ3MvanMvSlNFcnJvckhh
bmRsZXIuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45NTdmZDgxCi0tLSAv
ZGV2L251bGwKKysrIGIvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0Vycm9ySGFuZGxlci5oCkBAIC0w
LDAgKzEsNjQgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgR29vZ2xlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKKyAqIG1l
dDoKKyAqCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogICAgICogUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQorICogY29weXJpZ2h0IG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
cgorICogaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZQorICogZGlzdHJpYnV0aW9uLgorICogICAgICogTmVpdGhlciB0aGUgbmFtZSBv
ZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cworICogY29udHJpYnV0b3JzIG1heSBi
ZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KKyAqIHRo
aXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisg
KgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMg
QU5EIENPTlRSSUJVVE9SUworICogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFRIRSBJTVBMSUVE
IFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgorICogQSBQQVJU
SUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZ
UklHSFQKKyAqIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLAorICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFV
RU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgUFJPQ1VS
RU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCisgKiBE
QVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VE
IEFORCBPTiBBTlkKKyAqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1Qs
IFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4KKyAqLworCisjaWZuZGVmIEpTRXJyb3JIYW5kbGVyX2gKKyNkZWZpbmUgSlNFcnJvckhhbmRs
ZXJfaAorCisjaW5jbHVkZSAiSlNFdmVudExpc3RlbmVyLmgiCisKK25hbWVzcGFjZSBXZWJDb3Jl
IHsKKworY2xhc3MgSlNFcnJvckhhbmRsZXIgOiBwdWJsaWMgSlNFdmVudExpc3RlbmVyIHsKK3B1
YmxpYzoKKyAgICBzdGF0aWMgUGFzc1JlZlB0cjxKU0Vycm9ySGFuZGxlcj4gY3JlYXRlKEpTQzo6
SlNPYmplY3QqIGxpc3RlbmVyLCBKU0M6OkpTT2JqZWN0KiB3cmFwcGVyLCBib29sIGlzQXR0cmli
dXRlLCBET01XcmFwcGVyV29ybGQqIGlzb2xhdGVkV29ybGQpCisgICAgeworICAgICAgICByZXR1
cm4gYWRvcHRSZWYobmV3IEpTRXJyb3JIYW5kbGVyKGxpc3RlbmVyLCB3cmFwcGVyLCBpc0F0dHJp
YnV0ZSwgaXNvbGF0ZWRXb3JsZCkpOworICAgIH0KKworICAgIHZpcnR1YWwgfkpTRXJyb3JIYW5k
bGVyKCk7CisKK3ByaXZhdGU6CisgICAgSlNFcnJvckhhbmRsZXIoSlNDOjpKU09iamVjdCogZnVu
Y3Rpb24sIEpTQzo6SlNPYmplY3QqIHdyYXBwZXIsIGJvb2wgaXNBdHRyaWJ1dGUsIERPTVdyYXBw
ZXJXb3JsZCogaXNvbGF0ZWRXb3JsZCk7CisgICAgdmlydHVhbCB2b2lkIGhhbmRsZUV2ZW50KFNj
cmlwdEV4ZWN1dGlvbkNvbnRleHQqLCBFdmVudCopOworfTsKKworLy8gQ3JlYXRlcyBhIEpTIEV2
ZW50TGlzdGVuZXIgZm9yICJvbmVycm9yIiBldmVudCBoYW5kbGVyIGluIHdvcmtlciBjb250ZXh0
LiBJdCBoYXMgY3VzdG9tIGltcGxlbWVudGF0aW9uIGJlY2F1c2UKKy8vIHVubGlrZSBvdGhlciBl
dmVudCBsaXN0ZW5lcnMgaXQgYWNjZXB0cyB0aHJlZSBwYXJhbWV0ZXJzLgoraW5saW5lIFBhc3NS
ZWZQdHI8SlNFcnJvckhhbmRsZXI+IGNyZWF0ZUpTRXJyb3JIYW5kbGVyKEpTQzo6RXhlY1N0YXRl
KiBleGVjLCBKU0M6OkpTVmFsdWUgbGlzdGVuZXIsIEpTQzo6SlNPYmplY3QqIHdyYXBwZXIpCit7
CisgICAgaWYgKCFsaXN0ZW5lci5pc09iamVjdCgpKQorICAgICAgICByZXR1cm4gMDsKKworICAg
IHJldHVybiBKU0Vycm9ySGFuZGxlcjo6Y3JlYXRlKGFzT2JqZWN0KGxpc3RlbmVyKSwgd3JhcHBl
ciwgdHJ1ZSwgY3VycmVudFdvcmxkKGV4ZWMpKTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29y
ZQorCisjZW5kaWYgLy8gSlNFcnJvckhhbmRsZXJfaApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9iaW5k
aW5ncy9qcy9KU1dvcmtlckNvbnRleHRFcnJvckhhbmRsZXIuY3BwIGIvV2ViQ29yZS9iaW5kaW5n
cy9qcy9KU1dvcmtlckNvbnRleHRFcnJvckhhbmRsZXIuY3BwCmRlbGV0ZWQgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCBmN2QyYjAyLi4wMDAwMDAwCi0tLSBhL1dlYkNvcmUvYmluZGluZ3MvanMvSlNX
b3JrZXJDb250ZXh0RXJyb3JIYW5kbGVyLmNwcAorKysgL2Rldi9udWxsCkBAIC0xLDExNiArMCww
IEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDEwIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCi0gKiBtZXQ6Ci0gKgot
ICogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKLSAqIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5h
cnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKLSAqIGNvcHlyaWdodCBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKLSAqIGlu
IHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0
aGUKLSAqIGRpc3RyaWJ1dGlvbi4KLSAqICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xl
IEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKLSAqIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0
byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCi0gKiB0aGlzIHNvZnR3
YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgotICoKLSAqIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05U
UklCVVRPUlMKLSAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElF
UywgSU5DTFVESU5HLCBCVVQgTk9UCi0gKiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5U
SUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKLSAqIEEgUEFSVElDVUxBUiBQ
VVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCi0g
KiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwKLSAqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBE
QU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKLSAqIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9G
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAotICogREFUQSwgT1Ig
UFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04g
QU5ZCi0gKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSAqIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8K
LQotI2luY2x1ZGUgImNvbmZpZy5oIgotCi0jaWYgRU5BQkxFKFdPUktFUlMpCi0KLSNpbmNsdWRl
ICJKU1dvcmtlckNvbnRleHRFcnJvckhhbmRsZXIuaCIKLQotI2luY2x1ZGUgIkVycm9yRXZlbnQu
aCIKLSNpbmNsdWRlICJFdmVudC5oIgotI2luY2x1ZGUgIkpTRXZlbnQuaCIKLSNpbmNsdWRlIDxy
dW50aW1lL0pTTG9jay5oPgotCi11c2luZyBuYW1lc3BhY2UgSlNDOwotCi1uYW1lc3BhY2UgV2Vi
Q29yZSB7Ci0KLUpTV29ya2VyQ29udGV4dEVycm9ySGFuZGxlcjo6SlNXb3JrZXJDb250ZXh0RXJy
b3JIYW5kbGVyKEpTT2JqZWN0KiBmdW5jdGlvbiwgSlNPYmplY3QqIHdyYXBwZXIsIGJvb2wgaXNB
dHRyaWJ1dGUsIERPTVdyYXBwZXJXb3JsZCogaXNvbGF0ZWRXb3JsZCkKLSAgICA6IEpTRXZlbnRM
aXN0ZW5lcihmdW5jdGlvbiwgd3JhcHBlciwgaXNBdHRyaWJ1dGUsIGlzb2xhdGVkV29ybGQpCi17
Ci19Ci0KLUpTV29ya2VyQ29udGV4dEVycm9ySGFuZGxlcjo6fkpTV29ya2VyQ29udGV4dEVycm9y
SGFuZGxlcigpCi17Ci19Ci0KLXZvaWQgSlNXb3JrZXJDb250ZXh0RXJyb3JIYW5kbGVyOjpoYW5k
bGVFdmVudChTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBzY3JpcHRFeGVjdXRpb25Db250ZXh0LCBF
dmVudCogZXZlbnQpCi17Ci0gICAgQVNTRVJUKHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQpOwotICAg
IGlmICghc2NyaXB0RXhlY3V0aW9uQ29udGV4dCkKLSAgICAgICAgcmV0dXJuOwotCi0gICAgSlNM
b2NrIGxvY2soU2lsZW5jZUFzc2VydGlvbnNPbmx5KTsKLQotICAgIEpTT2JqZWN0KiBqc0Z1bmN0
aW9uID0gdGhpcy0+anNGdW5jdGlvbihzY3JpcHRFeGVjdXRpb25Db250ZXh0KTsKLSAgICBpZiAo
IWpzRnVuY3Rpb24pCi0gICAgICAgIHJldHVybjsKLQotICAgIEpTRE9NR2xvYmFsT2JqZWN0KiBn
bG9iYWxPYmplY3QgPSB0b0pTRE9NR2xvYmFsT2JqZWN0KHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQs
IGlzb2xhdGVkV29ybGQoKSk7Ci0gICAgaWYgKCFnbG9iYWxPYmplY3QpCi0gICAgICAgIHJldHVy
bjsKLQotICAgIEV4ZWNTdGF0ZSogZXhlYyA9IGdsb2JhbE9iamVjdC0+Z2xvYmFsRXhlYygpOwot
Ci0gICAgQ2FsbERhdGEgY2FsbERhdGE7Ci0gICAgQ2FsbFR5cGUgY2FsbFR5cGUgPSBqc0Z1bmN0
aW9uLT5nZXRDYWxsRGF0YShjYWxsRGF0YSk7Ci0KLSAgICBpZiAoY2FsbFR5cGUgIT0gQ2FsbFR5
cGVOb25lKSB7Ci0KLSAgICAgICAgcmVmKCk7Ci0KLSAgICAgICAgRXZlbnQqIHNhdmVkRXZlbnQg
PSBnbG9iYWxPYmplY3QtPmN1cnJlbnRFdmVudCgpOwotICAgICAgICBnbG9iYWxPYmplY3QtPnNl
dEN1cnJlbnRFdmVudChldmVudCk7Ci0KLSAgICAgICAgQVNTRVJUKGV2ZW50LT5pc0Vycm9yRXZl
bnQoKSk7Ci0gICAgICAgIEVycm9yRXZlbnQqIGVycm9yRXZlbnQgPSBzdGF0aWNfY2FzdDxFcnJv
ckV2ZW50Kj4oZXZlbnQpOwotCi0gICAgICAgIE1hcmtlZEFyZ3VtZW50QnVmZmVyIGFyZ3M7Ci0g
ICAgICAgIGFyZ3MuYXBwZW5kKGpzU3RyaW5nKGV4ZWMsIGVycm9yRXZlbnQtPm1lc3NhZ2UoKSkp
OwotICAgICAgICBhcmdzLmFwcGVuZChqc1N0cmluZyhleGVjLCBlcnJvckV2ZW50LT5maWxlbmFt
ZSgpKSk7Ci0gICAgICAgIGFyZ3MuYXBwZW5kKGpzTnVtYmVyKGVycm9yRXZlbnQtPmxpbmVubygp
KSk7Ci0KLSAgICAgICAgSlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRhID0gZ2xvYmFsT2JqZWN0LT5n
bG9iYWxEYXRhKCk7Ci0gICAgICAgIER5bmFtaWNHbG9iYWxPYmplY3RTY29wZSBnbG9iYWxPYmpl
Y3RTY29wZShleGVjLCBnbG9iYWxEYXRhLmR5bmFtaWNHbG9iYWxPYmplY3QgPyBnbG9iYWxEYXRh
LmR5bmFtaWNHbG9iYWxPYmplY3QgOiBnbG9iYWxPYmplY3QpOwotCi0gICAgICAgIEpTVmFsdWUg
dGhpc1ZhbHVlID0gZ2xvYmFsT2JqZWN0LT50b1RoaXNPYmplY3QoZXhlYyk7Ci0KLSAgICAgICAg
Z2xvYmFsRGF0YS50aW1lb3V0Q2hlY2tlci5zdGFydCgpOwotICAgICAgICBKU1ZhbHVlIHJldHVy
blZhbHVlID0gSlNDOjpjYWxsKGV4ZWMsIGpzRnVuY3Rpb24sIGNhbGxUeXBlLCBjYWxsRGF0YSwg
dGhpc1ZhbHVlLCBhcmdzKTsKLSAgICAgICAgZ2xvYmFsRGF0YS50aW1lb3V0Q2hlY2tlci5zdG9w
KCk7Ci0KLSAgICAgICAgZ2xvYmFsT2JqZWN0LT5zZXRDdXJyZW50RXZlbnQoc2F2ZWRFdmVudCk7
Ci0KLSAgICAgICAgaWYgKGV4ZWMtPmhhZEV4Y2VwdGlvbigpKQotICAgICAgICAgICAgcmVwb3J0
Q3VycmVudEV4Y2VwdGlvbihleGVjKTsKLSAgICAgICAgZWxzZSB7Ci0gICAgICAgICAgICBib29s
IHJldHZhbGJvb2w7Ci0gICAgICAgICAgICBpZiAocmV0dXJuVmFsdWUuZ2V0Qm9vbGVhbihyZXR2
YWxib29sKSAmJiAhcmV0dmFsYm9vbCkKLSAgICAgICAgICAgICAgICBldmVudC0+cHJldmVudERl
ZmF1bHQoKTsKLSAgICAgICAgfQotCi0gICAgICAgIGRlcmVmKCk7Ci0gICAgfQotfQotCi19IC8v
IG5hbWVzcGFjZSBXZWJDb3JlCi0KLSNlbmRpZiAvLyBFTkFCTEUoV09SS0VSUykKZGlmZiAtLWdp
dCBhL1dlYkNvcmUvYmluZGluZ3MvanMvSlNXb3JrZXJDb250ZXh0RXJyb3JIYW5kbGVyLmggYi9X
ZWJDb3JlL2JpbmRpbmdzL2pzL0pTV29ya2VyQ29udGV4dEVycm9ySGFuZGxlci5oCmRlbGV0ZWQg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCBhMTg4Mjk5Li4wMDAwMDAwCi0tLSBhL1dlYkNvcmUvYmlu
ZGluZ3MvanMvSlNXb3JrZXJDb250ZXh0RXJyb3JIYW5kbGVyLmgKKysrIC9kZXYvbnVsbApAQCAt
MSw2NCArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDEwIEdvb2dsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCi0gKiBt
ZXQ6Ci0gKgotICogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqICAgICAqIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKLSAqIGNvcHlyaWdodCBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIKLSAqIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUKLSAqIGRpc3RyaWJ1dGlvbi4KLSAqICAgICAqIE5laXRoZXIgdGhlIG5hbWUg
b2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKLSAqIGNvbnRyaWJ1dG9ycyBtYXkg
YmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCi0gKiB0
aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgot
ICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJT
IEFORCBDT05UUklCVVRPUlMKLSAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCi0gKiBMSU1JVEVEIFRPLCBUSEUgSU1QTElF
RCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKLSAqIEEgUEFS
VElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09Q
WVJJR0hUCi0gKiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNU
LCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKLSAqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VR
VUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKLSAqIExJTUlURUQgVE8sIFBST0NV
UkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAotICog
REFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNF
RCBBTkQgT04gQU5ZCi0gKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNU
LCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1Ig
T1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSAqIE9GIFRISVMg
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuCi0gKi8KLQotI2lmbmRlZiBKU1dvcmtlckNvbnRleHRFcnJvckhhbmRsZXJfaAotI2RlZmlu
ZSBKU1dvcmtlckNvbnRleHRFcnJvckhhbmRsZXJfaAotCi0jaW5jbHVkZSAiSlNFdmVudExpc3Rl
bmVyLmgiCi0KLW5hbWVzcGFjZSBXZWJDb3JlIHsKLQotY2xhc3MgSlNXb3JrZXJDb250ZXh0RXJy
b3JIYW5kbGVyIDogcHVibGljIEpTRXZlbnRMaXN0ZW5lciB7Ci1wdWJsaWM6Ci0gICAgc3RhdGlj
IFBhc3NSZWZQdHI8SlNXb3JrZXJDb250ZXh0RXJyb3JIYW5kbGVyPiBjcmVhdGUoSlNDOjpKU09i
amVjdCogbGlzdGVuZXIsIEpTQzo6SlNPYmplY3QqIHdyYXBwZXIsIGJvb2wgaXNBdHRyaWJ1dGUs
IERPTVdyYXBwZXJXb3JsZCogaXNvbGF0ZWRXb3JsZCkKLSAgICB7Ci0gICAgICAgIHJldHVybiBh
ZG9wdFJlZihuZXcgSlNXb3JrZXJDb250ZXh0RXJyb3JIYW5kbGVyKGxpc3RlbmVyLCB3cmFwcGVy
LCBpc0F0dHJpYnV0ZSwgaXNvbGF0ZWRXb3JsZCkpOwotICAgIH0KLQotICAgIHZpcnR1YWwgfkpT
V29ya2VyQ29udGV4dEVycm9ySGFuZGxlcigpOwotCi1wcml2YXRlOgotICAgIEpTV29ya2VyQ29u
dGV4dEVycm9ySGFuZGxlcihKU0M6OkpTT2JqZWN0KiBmdW5jdGlvbiwgSlNDOjpKU09iamVjdCog
d3JhcHBlciwgYm9vbCBpc0F0dHJpYnV0ZSwgRE9NV3JhcHBlcldvcmxkKiBpc29sYXRlZFdvcmxk
KTsKLSAgICB2aXJ0dWFsIHZvaWQgaGFuZGxlRXZlbnQoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCos
IEV2ZW50Kik7Ci19OwotCi0vLyBDcmVhdGVzIGEgSlMgRXZlbnRMaXN0ZW5lciBmb3IgIm9uZXJy
b3IiIGV2ZW50IGhhbmRsZXIgaW4gd29ya2VyIGNvbnRleHQuIEl0IGhhcyBjdXN0b20gaW1wbGVt
ZW50YXRpb24gYmVjYXVzZQotLy8gdW5saWtlIG90aGVyIGV2ZW50IGxpc3RlbmVycyBpdCBhY2Nl
cHRzIHRocmVlIHBhcmFtZXRlcnMuCi1pbmxpbmUgUGFzc1JlZlB0cjxKU1dvcmtlckNvbnRleHRF
cnJvckhhbmRsZXI+IGNyZWF0ZUpTV29ya2VyQ29udGV4dEVycm9ySGFuZGxlcihKU0M6OkV4ZWNT
dGF0ZSogZXhlYywgSlNDOjpKU1ZhbHVlIGxpc3RlbmVyLCBKU0M6OkpTT2JqZWN0KiB3cmFwcGVy
KQotewotICAgIGlmICghbGlzdGVuZXIuaXNPYmplY3QoKSkKLSAgICAgICAgcmV0dXJuIDA7Ci0K
LSAgICByZXR1cm4gSlNXb3JrZXJDb250ZXh0RXJyb3JIYW5kbGVyOjpjcmVhdGUoYXNPYmplY3Qo
bGlzdGVuZXIpLCB3cmFwcGVyLCB0cnVlLCBjdXJyZW50V29ybGQoZXhlYykpOwotfQotCi19IC8v
IG5hbWVzcGFjZSBXZWJDb3JlCi0KLSNlbmRpZiAvLyBKU1dvcmtlckNvbnRleHRFcnJvckhhbmRs
ZXJfaApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JK
Uy5wbSBiL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG0KaW5kZXgg
MTMyNTE4Zi4uNTJhNjI5MSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0Nv
ZGVHZW5lcmF0b3JKUy5wbQorKysgYi9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVy
YXRvckpTLnBtCkBAIC0xNzA5LDkgKzE3MDksOSBAQCBzdWIgR2VuZXJhdGVJbXBsZW1lbnRhdGlv
bgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAg
ICBKU0RPTUdsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0ID0gY2FzdGVkVGhpcy0+Z2xvYmFsT2Jq
ZWN0KCk7XG4iKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgJGltcGxDbGFzc05hbWUqIGlt
cCA9IHN0YXRpY19jYXN0PCRpbXBsQ2xhc3NOYW1lKj4oc3RhdGljX2Nhc3Q8JGNsYXNzTmFtZSo+
KHRoaXNPYmplY3QpLT5pbXBsKCkpO1xuIik7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAg
aWYgKCRpbnRlcmZhY2VOYW1lIGVxICJXb3JrZXJDb250ZXh0IiBhbmQgJG5hbWUgZXEgIm9uZXJy
b3IiKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRpbXBsSW5jbHVkZXN7IkpT
V29ya2VyQ29udGV4dEVycm9ySGFuZGxlci5oIn0gPSAxOwotICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICBpbXAtPnNldCRpbXBsU2V0dGVyRnVu
Y3Rpb25OYW1lKGNyZWF0ZUpTV29ya2VyQ29udGV4dEVycm9ySGFuZGxlcihleGVjLCB2YWx1ZSwg
dGhpc09iamVjdCkpO1xuIik7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCgoJGlu
dGVyZmFjZU5hbWUgZXEgIkRPTVdpbmRvdyIpIG9yICgkaW50ZXJmYWNlTmFtZSBlcSAiV29ya2Vy
Q29udGV4dCIpKSBhbmQgJG5hbWUgZXEgIm9uZXJyb3IiKSB7CisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICRpbXBsSW5jbHVkZXN7IkpTRXJyb3JIYW5kbGVyLmgifSA9IDE7CisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgIGltcC0+
c2V0JGltcGxTZXR0ZXJGdW5jdGlvbk5hbWUoY3JlYXRlSlNFcnJvckhhbmRsZXIoZXhlYywgdmFs
dWUsIHRoaXNPYmplY3QpKTtcbiIpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxz
ZSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCBH
ZW5lcmF0ZUF0dHJpYnV0ZUV2ZW50TGlzdGVuZXJDYWxsKCRjbGFzc05hbWUsICRpbXBsU2V0dGVy
RnVuY3Rpb25OYW1lLCAkd2luZG93RXZlbnRMaXN0ZW5lcikpOwogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIH0KZGlmZiAtLWdpdCBhL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2Vu
ZXJhdG9yVjgucG0gYi9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvclY4LnBt
CmluZGV4IGQzMzlkNmEuLjkwOTM3NTcgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvYmluZGluZ3Mvc2Ny
aXB0cy9Db2RlR2VuZXJhdG9yVjgucG0KKysrIGIvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0Nv
ZGVHZW5lcmF0b3JWOC5wbQpAQCAtMTAwMSw2ICsxMDAxLDEwIEBAIEVORAogICAgICAgICAgICAg
ICAgICRpbXBsSW5jbHVkZXN7IlY4RXZlbnRMaXN0ZW5lckxpc3QuaCJ9ID0gMTsKICAgICAgICAg
ICAgICAgICAkaW1wbEluY2x1ZGVzeyJWOFdvcmtlckNvbnRleHRFcnJvckhhbmRsZXIuaCJ9ID0g
MTsKICAgICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudERlY2xzLCAiICAgIGltcC0+c2V0
JGltcGxTZXR0ZXJGdW5jdGlvbk5hbWUoVjhFdmVudExpc3RlbmVyTGlzdDo6ZmluZE9yQ3JlYXRl
V3JhcHBlcjxWOFdvcmtlckNvbnRleHRFcnJvckhhbmRsZXI+KHZhbHVlLCB0cnVlKSIpOworICAg
ICAgICAgICAgfSBlbHNpZiAoJGludGVyZmFjZU5hbWUgZXEgIkRPTVdpbmRvdyIgYW5kICRhdHRy
aWJ1dGUtPnNpZ25hdHVyZS0+bmFtZSBlcSAib25lcnJvciIpIHsKKyAgICAgICAgICAgICAgICAk
aW1wbEluY2x1ZGVzeyJWOEV2ZW50TGlzdGVuZXJMaXN0LmgifSA9IDE7CisgICAgICAgICAgICAg
ICAgJGltcGxJbmNsdWRlc3siVjhXaW5kb3dFcnJvckhhbmRsZXIuaCJ9ID0gMTsKKyAgICAgICAg
ICAgICAgICBwdXNoKEBpbXBsQ29udGVudERlY2xzLCAiICAgIGltcC0+c2V0JGltcGxTZXR0ZXJG
dW5jdGlvbk5hbWUoVjhFdmVudExpc3RlbmVyTGlzdDo6ZmluZE9yQ3JlYXRlV3JhcHBlcjxWOFdp
bmRvd0Vycm9ySGFuZGxlcj4odmFsdWUsIHRydWUpIik7CiAgICAgICAgICAgICB9IGVsc2Ugewog
ICAgICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50RGVjbHMsICIgICAgaW1wLT5zZXQkaW1w
bFNldHRlckZ1bmN0aW9uTmFtZShWOERPTVdyYXBwZXI6OmdldEV2ZW50TGlzdGVuZXIodmFsdWUs
IHRydWUsIExpc3RlbmVyRmluZE9yQ3JlYXRlKSIpOwogICAgICAgICAgICAgfQpkaWZmIC0tZ2l0
IGEvV2ViQ29yZS9iaW5kaW5ncy92OC9WOENvbnNvbGVNZXNzYWdlLmNwcCBiL1dlYkNvcmUvYmlu
ZGluZ3MvdjgvVjhDb25zb2xlTWVzc2FnZS5jcHAKaW5kZXggZTY4NzFmZC4uZDkyODIyYyAxMDA2
NDQKLS0tIGEvV2ViQ29yZS9iaW5kaW5ncy92OC9WOENvbnNvbGVNZXNzYWdlLmNwcAorKysgYi9X
ZWJDb3JlL2JpbmRpbmdzL3Y4L1Y4Q29uc29sZU1lc3NhZ2UuY3BwCkBAIC01NCw3ICs1NCwxNCBA
QCBWOENvbnNvbGVNZXNzYWdlOjpWOENvbnNvbGVNZXNzYWdlKGNvbnN0IFN0cmluZyYgc3RyaW5n
LCBjb25zdCBTdHJpbmcmIHNvdXJjZUlELAogCiB2b2lkIFY4Q29uc29sZU1lc3NhZ2U6OmRpc3Bh
dGNoTm93KFBhZ2UqIHBhZ2UpCiB7Ci0gICAgZGlzcGF0Y2hOb3cocGFnZSwgMCk7CisgICAgQVNT
RVJUKHBhZ2UpOworCisgICAgLy8gUHJvY2VzcyBhbnkgZGVsYXllZCBtZXNzYWdlcyB0byBtYWtl
IHN1cmUgdGhhdCBtZXNzYWdlcworICAgIC8vIGFwcGVhciBpbiB0aGUgcmlnaHQgb3JkZXIgaW4g
dGhlIGNvbnNvbGUuCisgICAgcHJvY2Vzc0RlbGF5ZWQoKTsKKworICAgIENvbnNvbGUqIGNvbnNv
bGUgPSBwYWdlLT5tYWluRnJhbWUoKS0+ZG9tV2luZG93KCktPmNvbnNvbGUoKTsKKyAgICBjb25z
b2xlLT5hZGRNZXNzYWdlKEpTTWVzc2FnZVNvdXJjZSwgTG9nTWVzc2FnZVR5cGUsIEVycm9yTWVz
c2FnZUxldmVsLCBtX3N0cmluZywgbV9saW5lTnVtYmVyLCBtX3NvdXJjZUlEKTsKIH0KIAogdm9p
ZCBWOENvbnNvbGVNZXNzYWdlOjpkaXNwYXRjaExhdGVyKCkKQEAgLTEwNSw4ICsxMTIsOCBAQCB2
b2lkIFY4Q29uc29sZU1lc3NhZ2U6OmhhbmRsZXIodjg6OkhhbmRsZTx2ODo6TWVzc2FnZT4gbWVz
c2FnZSwgdjg6OkhhbmRsZTx2ODo6VgogICAgIEZyYW1lKiBmcmFtZSA9IFY4UHJveHk6OnJldHJp
ZXZlRnJhbWVGb3JFbnRlcmVkQ29udGV4dCgpOwogICAgIGlmICghZnJhbWUpCiAgICAgICAgIHJl
dHVybjsKLSAgICBQYWdlKiBwYWdlID0gZnJhbWUtPnBhZ2UoKTsKLSAgICBpZiAoIXBhZ2UpCisg
ICAgRG9jdW1lbnQqIGRvY3VtZW50ID0gZnJhbWUtPmRvY3VtZW50KCk7CisgICAgaWYgKCFkb2N1
bWVudCkKICAgICAgICAgcmV0dXJuOwogCiAgICAgdjg6OkhhbmRsZTx2ODo6U3RyaW5nPiBlcnJv
ck1lc3NhZ2VTdHJpbmcgPSBtZXNzYWdlLT5HZXQoKTsKQEAgLTEyMiwyMSArMTI5LDcgQEAgdm9p
ZCBWOENvbnNvbGVNZXNzYWdlOjpoYW5kbGVyKHY4OjpIYW5kbGU8djg6Ok1lc3NhZ2U+IG1lc3Nh
Z2UsIHY4OjpIYW5kbGU8djg6OlYKICAgICB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gcmVzb3VyY2VO
YW1lID0gbWVzc2FnZS0+R2V0U2NyaXB0UmVzb3VyY2VOYW1lKCk7CiAgICAgYm9vbCB1c2VVUkwg
PSByZXNvdXJjZU5hbWUuSXNFbXB0eSgpIHx8ICFyZXNvdXJjZU5hbWUtPklzU3RyaW5nKCk7CiAg
ICAgU3RyaW5nIHJlc291cmNlTmFtZVN0cmluZyA9IHVzZVVSTCA/IGZyYW1lLT5kb2N1bWVudCgp
LT51cmwoKSA6IHRvV2ViQ29yZVN0cmluZyhyZXNvdXJjZU5hbWUpOwotICAgIFY4Q29uc29sZU1l
c3NhZ2UgY29uc29sZU1lc3NhZ2UoZXJyb3JNZXNzYWdlLCByZXNvdXJjZU5hbWVTdHJpbmcsIG1l
c3NhZ2UtPkdldExpbmVOdW1iZXIoKSk7Ci0gICAgY29uc29sZU1lc3NhZ2UuZGlzcGF0Y2hOb3co
cGFnZSwgY2FsbFN0YWNrKTsKLX0KLQotdm9pZCBWOENvbnNvbGVNZXNzYWdlOjpkaXNwYXRjaE5v
dyhQYWdlKiBwYWdlLCBQYXNzUmVmUHRyPFNjcmlwdENhbGxTdGFjaz4gY2FsbFN0YWNrKQotewot
ICAgIEFTU0VSVChwYWdlKTsKLQotICAgIC8vIFByb2Nlc3MgYW55IGRlbGF5ZWQgbWVzc2FnZXMg
dG8gbWFrZSBzdXJlIHRoYXQgbWVzc2FnZXMKLSAgICAvLyBhcHBlYXIgaW4gdGhlIHJpZ2h0IG9y
ZGVyIGluIHRoZSBjb25zb2xlLgotICAgIHByb2Nlc3NEZWxheWVkKCk7Ci0KLSAgICBDb25zb2xl
KiBjb25zb2xlID0gcGFnZS0+bWFpbkZyYW1lKCktPmRvbVdpbmRvdygpLT5jb25zb2xlKCk7Ci0g
ICAgTWVzc2FnZVR5cGUgbWVzc2FnZVR5cGUgPSBjYWxsU3RhY2sgPyBVbmNhdWdodEV4Y2VwdGlv
bk1lc3NhZ2VUeXBlIDogTG9nTWVzc2FnZVR5cGU7Ci0gICAgY29uc29sZS0+YWRkTWVzc2FnZShK
U01lc3NhZ2VTb3VyY2UsIG1lc3NhZ2VUeXBlLCBFcnJvck1lc3NhZ2VMZXZlbCwgbV9zdHJpbmcs
IG1fbGluZU51bWJlciwgbV9zb3VyY2VJRCwgY2FsbFN0YWNrKTsKKyAgICBkb2N1bWVudC0+cmVw
b3J0RXhjZXB0aW9uKGVycm9yTWVzc2FnZSwgbWVzc2FnZS0+R2V0TGluZU51bWJlcigpLCByZXNv
dXJjZU5hbWVTdHJpbmcsIGNhbGxTdGFjayk7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUK
ZGlmZiAtLWdpdCBhL1dlYkNvcmUvYmluZGluZ3MvdjgvVjhDb25zb2xlTWVzc2FnZS5oIGIvV2Vi
Q29yZS9iaW5kaW5ncy92OC9WOENvbnNvbGVNZXNzYWdlLmgKaW5kZXggOTdkZTI0Zi4uNjE4M2Zj
NiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9iaW5kaW5ncy92OC9WOENvbnNvbGVNZXNzYWdlLmgKKysr
IGIvV2ViQ29yZS9iaW5kaW5ncy92OC9WOENvbnNvbGVNZXNzYWdlLmgKQEAgLTgyLDggKzgyLDYg
QEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICBjb25zdCBTdHJpbmcgbV9zb3VyY2VJRDsK
ICAgICAgICAgY29uc3QgdW5zaWduZWQgbV9saW5lTnVtYmVyOwogCi0gICAgICAgIHZvaWQgZGlz
cGF0Y2hOb3coUGFnZSosIFBhc3NSZWZQdHI8U2NyaXB0Q2FsbFN0YWNrPik7Ci0KICAgICAgICAg
Ly8gQWxsIGRlbGF5ZWQgbWVzc2FnZXMgYXJlIHN0b3JlZCBpbiB0aGlzIHZlY3Rvci4gSWYgdGhl
IHZlY3RvcgogICAgICAgICAvLyBpcyAwLCB0aGVyZSBhcmUgbm8gZGVsYXllZCBtZXNzYWdlcy4K
ICAgICAgICAgc3RhdGljIFZlY3RvcjxWOENvbnNvbGVNZXNzYWdlPiogbV9kZWxheWVkTWVzc2Fn
ZXM7CmRpZmYgLS1naXQgYS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1Y4V2luZG93RXJyb3JIYW5kbGVy
LmNwcCBiL1dlYkNvcmUvYmluZGluZ3MvdjgvVjhXaW5kb3dFcnJvckhhbmRsZXIuY3BwCm5ldyBm
aWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmE3NGJhZDQKLS0tIC9kZXYvbnVsbAorKysg
Yi9XZWJDb3JlL2JpbmRpbmdzL3Y4L1Y4V2luZG93RXJyb3JIYW5kbGVyLmNwcApAQCAtMCwwICsx
LDYyIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEwIEdvb2dsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCisgKiBtZXQ6Cisg
KgorICogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKKyAqIGNvcHlyaWdodCBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKKyAq
IGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0
aCB0aGUKKyAqIGRpc3RyaWJ1dGlvbi4KKyAqICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29v
Z2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKKyAqIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNl
ZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCisgKiB0aGlzIHNv
ZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorICoKKyAq
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBD
T05UUklCVVRPUlMKKyAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKKyAqIEEgUEFSVElDVUxB
UiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hU
CisgKiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwKKyAqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElB
TCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFBST0NVUkVNRU5U
IE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAorICogREFUQSwg
T1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQg
T04gQU5ZCisgKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisg
Ki8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorCisjaW5jbHVkZSAiVjhXaW5kb3dFcnJvckhhbmRs
ZXIuaCIKKworI2luY2x1ZGUgIkVycm9yRXZlbnQuaCIKKyNpbmNsdWRlICJWOEJpbmRpbmcuaCIK
KworbmFtZXNwYWNlIFdlYkNvcmUgeworCitWOFdpbmRvd0Vycm9ySGFuZGxlcjo6VjhXaW5kb3dF
cnJvckhhbmRsZXIodjg6OkxvY2FsPHY4OjpPYmplY3Q+IGxpc3RlbmVyLCBib29sIGlzSW5saW5l
LCBjb25zdCBXb3JsZENvbnRleHRIYW5kbGUmIHdvcmxkQ29udGV4dCkKKyAgICA6IFY4RXZlbnRM
aXN0ZW5lcihsaXN0ZW5lciwgaXNJbmxpbmUsIHdvcmxkQ29udGV4dCkKK3sKK30KKwordjg6Okxv
Y2FsPHY4OjpWYWx1ZT4gVjhXaW5kb3dFcnJvckhhbmRsZXI6OmNhbGxMaXN0ZW5lckZ1bmN0aW9u
KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQsIHY4OjpIYW5kbGU8djg6OlZhbHVlPiBq
c0V2ZW50LCBFdmVudCogZXZlbnQpCit7CisgICAgQVNTRVJUKGV2ZW50LT5pc0Vycm9yRXZlbnQo
KSk7CisgICAgRXJyb3JFdmVudCogZXJyb3JFdmVudCA9IHN0YXRpY19jYXN0PEVycm9yRXZlbnQq
PihldmVudCk7CisgICAgdjg6OkxvY2FsPHY4OjpPYmplY3Q+IGxpc3RlbmVyID0gZ2V0TGlzdGVu
ZXJPYmplY3QoY29udGV4dCk7CisgICAgdjg6OkxvY2FsPHY4OjpWYWx1ZT4gcmV0dXJuVmFsdWU7
CisgICAgaWYgKCFsaXN0ZW5lci5Jc0VtcHR5KCkgJiYgbGlzdGVuZXItPklzRnVuY3Rpb24oKSkg
eworICAgICAgICB2ODo6TG9jYWw8djg6OkZ1bmN0aW9uPiBjYWxsRnVuY3Rpb24gPSB2ODo6TG9j
YWw8djg6OkZ1bmN0aW9uPjo6Q2FzdChsaXN0ZW5lcik7CisgICAgICAgIHY4OjpMb2NhbDx2ODo6
T2JqZWN0PiB0aGlzVmFsdWUgPSB2ODo6Q29udGV4dDo6R2V0Q3VycmVudCgpLT5HbG9iYWwoKTsK
KyAgICAgICAgdjg6OkhhbmRsZTx2ODo6VmFsdWU+IHBhcmFtZXRlcnNbM10gPSB7IHY4U3RyaW5n
KGVycm9yRXZlbnQtPm1lc3NhZ2UoKSksIHY4U3RyaW5nKGVycm9yRXZlbnQtPmZpbGVuYW1lKCkp
LCB2ODo6SW50ZWdlcjo6TmV3KGVycm9yRXZlbnQtPmxpbmVubygpKSB9OworICAgICAgICByZXR1
cm5WYWx1ZSA9IGNhbGxGdW5jdGlvbi0+Q2FsbCh0aGlzVmFsdWUsIDMsIHBhcmFtZXRlcnMpOwor
ICAgICAgICBpZiAoIXJldHVyblZhbHVlLklzRW1wdHkoKSAmJiByZXR1cm5WYWx1ZS0+SXNCb29s
ZWFuKCkgJiYgIXJldHVyblZhbHVlLT5Cb29sZWFuVmFsdWUoKSkKKyAgICAgICAgICAgIGV2ZW50
LT5wcmV2ZW50RGVmYXVsdCgpOworICAgIH0KKyAgICByZXR1cm4gcmV0dXJuVmFsdWU7Cit9CisK
K30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1dlYkNvcmUvYmluZGluZ3Mvdjgv
VjhXaW5kb3dFcnJvckhhbmRsZXIuaCBiL1dlYkNvcmUvYmluZGluZ3MvdjgvVjhXaW5kb3dFcnJv
ckhhbmRsZXIuaApuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi4xNjdjYTBkCi0t
LSAvZGV2L251bGwKKysrIGIvV2ViQ29yZS9iaW5kaW5ncy92OC9WOFdpbmRvd0Vycm9ySGFuZGxl
ci5oCkBAIC0wLDAgKzEsNTUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgR29vZ2xlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBh
cmUKKyAqIG1ldDoKKyAqCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogICAgICogUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQorICogY29w
eXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lcgorICogaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZQorICogZGlzdHJpYnV0aW9uLgorICogICAgICogTmVpdGhlciB0
aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cworICogY29udHJpYnV0
b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZy
b20KKyAqIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1p
c3Npb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hU
IEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUworICogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1Ig
SU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFRI
RSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgor
ICogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxM
IFRIRSBDT1BZUklHSFQKKyAqIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFO
WSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAorICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBP
UiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBU
TywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBV
U0UsCisgKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VW
RVIgQ0FVU0VEIEFORCBPTiBBTlkKKyAqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4g
Q09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICog
T0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIFY4V2luZG93RXJyb3JIYW5kbGVyX2gKKyNkZWZp
bmUgVjhXaW5kb3dFcnJvckhhbmRsZXJfaAorCisjaW5jbHVkZSAiVjhDdXN0b21FdmVudExpc3Rl
bmVyLmgiCisjaW5jbHVkZSA8djguaD4KKyNpbmNsdWRlIDx3dGYvUGFzc1JlZlB0ci5oPgorCitu
YW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIFY4V2luZG93RXJyb3JIYW5kbGVyIDogcHVibGlj
IFY4RXZlbnRMaXN0ZW5lciB7CitwdWJsaWM6CisgICAgc3RhdGljIFBhc3NSZWZQdHI8VjhXaW5k
b3dFcnJvckhhbmRsZXI+IGNyZWF0ZSh2ODo6TG9jYWw8djg6Ok9iamVjdD4gbGlzdGVuZXIsIGJv
b2wgaXNJbmxpbmUsIGNvbnN0IFdvcmxkQ29udGV4dEhhbmRsZSYgd29ybGRDb250ZXh0KQorICAg
IHsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBWOFdpbmRvd0Vycm9ySGFuZGxlcihsaXN0
ZW5lciwgaXNJbmxpbmUsIHdvcmxkQ29udGV4dCkpOworICAgIH0KKworcHJpdmF0ZToKKyAgICBW
OFdpbmRvd0Vycm9ySGFuZGxlcih2ODo6TG9jYWw8djg6Ok9iamVjdD4gbGlzdGVuZXIsIGJvb2wg
aXNJbmxpbmUsIGNvbnN0IFdvcmxkQ29udGV4dEhhbmRsZSYgd29ybGRDb250ZXh0KTsKKworICAg
IHZpcnR1YWwgdjg6OkxvY2FsPHY4OjpWYWx1ZT4gY2FsbExpc3RlbmVyRnVuY3Rpb24oU2NyaXB0
RXhlY3V0aW9uQ29udGV4dCosIHY4OjpIYW5kbGU8djg6OlZhbHVlPiBqc0V2ZW50LCBFdmVudCop
OworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gVjhXaW5kb3dFcnJv
ckhhbmRsZXJfaApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9iaW5kaW5ncy92OC9Xb3JrZXJDb250ZXh0
RXhlY3V0aW9uUHJveHkuY3BwIGIvV2ViQ29yZS9iaW5kaW5ncy92OC9Xb3JrZXJDb250ZXh0RXhl
Y3V0aW9uUHJveHkuY3BwCmluZGV4IGNlZmIyZmEuLmViMjU4MTQgMTAwNjQ0Ci0tLSBhL1dlYkNv
cmUvYmluZGluZ3MvdjgvV29ya2VyQ29udGV4dEV4ZWN1dGlvblByb3h5LmNwcAorKysgYi9XZWJD
b3JlL2JpbmRpbmdzL3Y4L1dvcmtlckNvbnRleHRFeGVjdXRpb25Qcm94eS5jcHAKQEAgLTM3LDYg
KzM3LDcgQEAKIAogI2luY2x1ZGUgIkRlZGljYXRlZFdvcmtlckNvbnRleHQuaCIKICNpbmNsdWRl
ICJFdmVudC5oIgorI2luY2x1ZGUgIlNjcmlwdENhbGxTdGFjay5oIgogI2luY2x1ZGUgIlNoYXJl
ZFdvcmtlci5oIgogI2luY2x1ZGUgIlNoYXJlZFdvcmtlckNvbnRleHQuaCIKICNpbmNsdWRlICJW
OEJpbmRpbmcuaCIKQEAgLTcyLDcgKzczLDcgQEAgc3RhdGljIHZvaWQgdjhNZXNzYWdlSGFuZGxl
cih2ODo6SGFuZGxlPHY4OjpNZXNzYWdlPiBtZXNzYWdlLCB2ODo6SGFuZGxlPHY4OjpWYWwKICAg
ICAgICAgU3RyaW5nIGVycm9yTWVzc2FnZSA9IHRvV2ViQ29yZVN0cmluZyhtZXNzYWdlLT5HZXQo
KSk7CiAgICAgICAgIGludCBsaW5lTnVtYmVyID0gbWVzc2FnZS0+R2V0TGluZU51bWJlcigpOwog
ICAgICAgICBTdHJpbmcgc291cmNlVVJMID0gdG9XZWJDb3JlU3RyaW5nKG1lc3NhZ2UtPkdldFNj
cmlwdFJlc291cmNlTmFtZSgpKTsKLSAgICAgICAgY29udGV4dC0+cmVwb3J0RXhjZXB0aW9uKGVy
cm9yTWVzc2FnZSwgbGluZU51bWJlciwgc291cmNlVVJMKTsKKyAgICAgICAgY29udGV4dC0+cmVw
b3J0RXhjZXB0aW9uKGVycm9yTWVzc2FnZSwgbGluZU51bWJlciwgc291cmNlVVJMLCAwKTsKICAg
ICB9CiAKICAgICBpc1JlcG9ydGluZ0V4Y2VwdGlvbiA9IGZhbHNlOwpkaWZmIC0tZ2l0IGEvV2Vi
Q29yZS9iaW5kaW5ncy92OC9Xb3JrZXJTY3JpcHRDb250cm9sbGVyLmNwcCBiL1dlYkNvcmUvYmlu
ZGluZ3MvdjgvV29ya2VyU2NyaXB0Q29udHJvbGxlci5jcHAKaW5kZXggYjU2ZDM4My4uNDJlMDJl
NiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9iaW5kaW5ncy92OC9Xb3JrZXJTY3JpcHRDb250cm9sbGVy
LmNwcAorKysgYi9XZWJDb3JlL2JpbmRpbmdzL3Y4L1dvcmtlclNjcmlwdENvbnRyb2xsZXIuY3Bw
CkBAIC0zNCwxMSArMzQsMTAgQEAKIAogI2luY2x1ZGUgIldvcmtlclNjcmlwdENvbnRyb2xsZXIu
aCIKIAotI2luY2x1ZGUgPHY4Lmg+Ci0KKyNpbmNsdWRlICJET01UaW1lci5oIgorI2luY2x1ZGUg
IlNjcmlwdENhbGxTdGFjay5oIgogI2luY2x1ZGUgIlNjcmlwdFNvdXJjZUNvZGUuaCIKICNpbmNs
dWRlICJTY3JpcHRWYWx1ZS5oIgotI2luY2x1ZGUgIkRPTVRpbWVyLmgiCiAjaW5jbHVkZSAiVjhE
T01NYXAuaCIKICNpbmNsdWRlICJWOFByb3h5LmgiCiAjaW5jbHVkZSAiVjhXb3JrZXJDb250ZXh0
LmgiCkBAIC00Niw2ICs0NSw3IEBACiAjaW5jbHVkZSAiV29ya2VyQ29udGV4dEV4ZWN1dGlvblBy
b3h5LmgiCiAjaW5jbHVkZSAiV29ya2VyT2JqZWN0UHJveHkuaCIKICNpbmNsdWRlICJXb3JrZXJU
aHJlYWQuaCIKKyNpbmNsdWRlIDx2OC5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKQEAgLTgw
LDcgKzgwLDcgQEAgU2NyaXB0VmFsdWUgV29ya2VyU2NyaXB0Q29udHJvbGxlcjo6ZXZhbHVhdGUo
Y29uc3QgU2NyaXB0U291cmNlQ29kZSYgc291cmNlQ29kZSwKICAgICAgICAgaWYgKGV4Y2VwdGlv
bikKICAgICAgICAgICAgICpleGNlcHRpb24gPSBzdGF0ZS5leGNlcHRpb247CiAgICAgICAgIGVs
c2UKLSAgICAgICAgICAgIG1fd29ya2VyQ29udGV4dC0+cmVwb3J0RXhjZXB0aW9uKHN0YXRlLmVy
cm9yTWVzc2FnZSwgc3RhdGUubGluZU51bWJlciwgc3RhdGUuc291cmNlVVJMKTsKKyAgICAgICAg
ICAgIG1fd29ya2VyQ29udGV4dC0+cmVwb3J0RXhjZXB0aW9uKHN0YXRlLmVycm9yTWVzc2FnZSwg
c3RhdGUubGluZU51bWJlciwgc3RhdGUuc291cmNlVVJMLCAwKTsKICAgICB9CiAKICAgICByZXR1
cm4gcmVzdWx0OwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwIGIvV2ViQ29y
ZS9kb20vRG9jdW1lbnQuY3BwCmluZGV4IDE1NTU0NmEuLjY4YTZkZGIgMTAwNjQ0Ci0tLSBhL1dl
YkNvcmUvZG9tL0RvY3VtZW50LmNwcAorKysgYi9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKQEAg
LTExOCw2ICsxMTgsNyBAQAogI2luY2x1ZGUgIlJlbmRlclRleHRDb250cm9sLmgiCiAjaW5jbHVk
ZSAiUmVuZGVyVmlldy5oIgogI2luY2x1ZGUgIlJlbmRlcldpZGdldC5oIgorI2luY2x1ZGUgIlNj
cmlwdENhbGxTdGFjay5oIgogI2luY2x1ZGUgIlNjcmlwdENvbnRyb2xsZXIuaCIKICNpbmNsdWRl
ICJTY3JpcHRFbGVtZW50LmgiCiAjaW5jbHVkZSAiU2NyaXB0RXZlbnRMaXN0ZW5lci5oIgpAQCAt
MjI3MSw2ICsyMjcyLDE3IEBAIEtVUkwgRG9jdW1lbnQ6OnZpcnR1YWxDb21wbGV0ZVVSTChjb25z
dCBTdHJpbmcmIHVybCkgY29uc3QKICAgICByZXR1cm4gY29tcGxldGVVUkwodXJsKTsKIH0KIAor
RXZlbnRUYXJnZXQqIERvY3VtZW50OjplcnJvckV2ZW50VGFyZ2V0KCkKK3sKKyAgICByZXR1cm4g
ZG9tV2luZG93KCk7Cit9CisKK3ZvaWQgRG9jdW1lbnQ6OmxvZ0V4Y2VwdGlvblRvQ29uc29sZShj
b25zdCBTdHJpbmcmIGVycm9yTWVzc2FnZSwgaW50IGxpbmVOdW1iZXIsIGNvbnN0IFN0cmluZyYg
c291cmNlVVJMLCBQYXNzUmVmUHRyPFNjcmlwdENhbGxTdGFjaz4gY2FsbFN0YWNrKQoreworICAg
IE1lc3NhZ2VUeXBlIG1lc3NhZ2VUeXBlID0gY2FsbFN0YWNrID8gVW5jYXVnaHRFeGNlcHRpb25N
ZXNzYWdlVHlwZSA6IExvZ01lc3NhZ2VUeXBlOworICAgIGFkZE1lc3NhZ2UoSlNNZXNzYWdlU291
cmNlLCBtZXNzYWdlVHlwZSwgRXJyb3JNZXNzYWdlTGV2ZWwsIGVycm9yTWVzc2FnZSwgbGluZU51
bWJlciwgc291cmNlVVJMKTsKK30KKwogdm9pZCBEb2N1bWVudDo6c2V0VVJMKGNvbnN0IEtVUkwm
IHVybCkKIHsKICAgICBjb25zdCBLVVJMJiBuZXdVUkwgPSB1cmwuaXNFbXB0eSgpID8gYmxhbmtV
UkwoKSA6IHVybDsKQEAgLTQ2NjAsMTEgKzQ2NzIsNiBAQCB2b2lkIERvY3VtZW50OjpwYXJzZURO
U1ByZWZldGNoQ29udHJvbEhlYWRlcihjb25zdCBTdHJpbmcmIGRuc1ByZWZldGNoQ29udHJvbCkK
ICAgICBtX2hhdmVFeHBsaWNpdGx5RGlzYWJsZWRETlNQcmVmZXRjaCA9IHRydWU7CiB9CiAKLXZv
aWQgRG9jdW1lbnQ6OnJlcG9ydEV4Y2VwdGlvbihjb25zdCBTdHJpbmcmIGVycm9yTWVzc2FnZSwg
aW50IGxpbmVOdW1iZXIsIGNvbnN0IFN0cmluZyYgc291cmNlVVJMKQotewotICAgIGFkZE1lc3Nh
Z2UoSlNNZXNzYWdlU291cmNlLCBMb2dNZXNzYWdlVHlwZSwgRXJyb3JNZXNzYWdlTGV2ZWwsIGVy
cm9yTWVzc2FnZSwgbGluZU51bWJlciwgc291cmNlVVJMKTsKLX0KLQogdm9pZCBEb2N1bWVudDo6
YWRkTWVzc2FnZShNZXNzYWdlU291cmNlIHNvdXJjZSwgTWVzc2FnZVR5cGUgdHlwZSwgTWVzc2Fn
ZUxldmVsIGxldmVsLCBjb25zdCBTdHJpbmcmIG1lc3NhZ2UsIHVuc2lnbmVkIGxpbmVOdW1iZXIs
IGNvbnN0IFN0cmluZyYgc291cmNlVVJMKQogewogICAgIGlmIChET01XaW5kb3cqIHdpbmRvdyA9
IGRvbVdpbmRvdygpKQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9kb20vRG9jdW1lbnQuaCBiL1dlYkNv
cmUvZG9tL0RvY3VtZW50LmgKaW5kZXggZjFmZTQ0Yy4uMTQyYWZmMyAxMDA2NDQKLS0tIGEvV2Vi
Q29yZS9kb20vRG9jdW1lbnQuaAorKysgYi9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oCkBAIC05MzAs
NyArOTMwLDYgQEAgcHVibGljOgogICAgIGJvb2wgaXNETlNQcmVmZXRjaEVuYWJsZWQoKSBjb25z
dCB7IHJldHVybiBtX2lzRE5TUHJlZmV0Y2hFbmFibGVkOyB9CiAgICAgdm9pZCBwYXJzZUROU1By
ZWZldGNoQ29udHJvbEhlYWRlcihjb25zdCBTdHJpbmcmKTsKIAotICAgIHZpcnR1YWwgdm9pZCBy
ZXBvcnRFeGNlcHRpb24oY29uc3QgU3RyaW5nJiBlcnJvck1lc3NhZ2UsIGludCBsaW5lTnVtYmVy
LCBjb25zdCBTdHJpbmcmIHNvdXJjZVVSTCk7CiAgICAgdmlydHVhbCB2b2lkIGFkZE1lc3NhZ2Uo
TWVzc2FnZVNvdXJjZSwgTWVzc2FnZVR5cGUsIE1lc3NhZ2VMZXZlbCwgY29uc3QgU3RyaW5nJiBt
ZXNzYWdlLCB1bnNpZ25lZCBsaW5lTnVtYmVyLCBjb25zdCBTdHJpbmcmIHNvdXJjZVVSTCk7CiAg
ICAgdmlydHVhbCB2b2lkIHBvc3RUYXNrKFBhc3NPd25QdHI8VGFzaz4pOyAvLyBFeGVjdXRlcyB0
aGUgdGFzayBvbiBjb250ZXh0J3MgdGhyZWFkIGFzeW5jaHJvbm91c2x5LgogCkBAIC0xMTE2LDYg
KzExMTUsOSBAQCBwcml2YXRlOgogICAgIHZpcnR1YWwgY29uc3QgS1VSTCYgdmlydHVhbFVSTCgp
IGNvbnN0OyAvLyBTYW1lIGFzIHVybCgpLCBidXQgbmVlZGVkIGZvciBTY3JpcHRFeGVjdXRpb25D
b250ZXh0IHRvIGltcGxlbWVudCBpdCB3aXRob3V0IGEgcGVyZm9ybWFuY2UgbG9zcyBmb3IgZGly
ZWN0IGNhbGxzLgogICAgIHZpcnR1YWwgS1VSTCB2aXJ0dWFsQ29tcGxldGVVUkwoY29uc3QgU3Ry
aW5nJikgY29uc3Q7IC8vIFNhbWUgYXMgY29tcGxldGVVUkwoKSBmb3IgdGhlIHNhbWUgcmVhc29u
IGFzIGFib3ZlLgogCisgICAgdmlydHVhbCBFdmVudFRhcmdldCogZXJyb3JFdmVudFRhcmdldCgp
OworICAgIHZpcnR1YWwgdm9pZCBsb2dFeGNlcHRpb25Ub0NvbnNvbGUoY29uc3QgU3RyaW5nJiBl
cnJvck1lc3NhZ2UsIGludCBsaW5lTnVtYmVyLCBjb25zdCBTdHJpbmcmIHNvdXJjZVVSTCwgUGFz
c1JlZlB0cjxTY3JpcHRDYWxsU3RhY2s+KTsKKwogICAgIHZvaWQgaW5pdEROU1ByZWZldGNoKCk7
CiAKICAgICBTdHJpbmcgZW5jb2RpbmcoKSBjb25zdDsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvZG9t
L1NjcmlwdEV4ZWN1dGlvbkNvbnRleHQuY3BwIGIvV2ViQ29yZS9kb20vU2NyaXB0RXhlY3V0aW9u
Q29udGV4dC5jcHAKaW5kZXggYmZkYTE3Yi4uNWViYTkwZSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9k
b20vU2NyaXB0RXhlY3V0aW9uQ29udGV4dC5jcHAKKysrIGIvV2ViQ29yZS9kb20vU2NyaXB0RXhl
Y3V0aW9uQ29udGV4dC5jcHAKQEAgLTMzLDE0ICszMywxOSBAQAogI2luY2x1ZGUgIkRhdGFiYXNl
LmgiCiAjaW5jbHVkZSAiRGF0YWJhc2VUYXNrLmgiCiAjaW5jbHVkZSAiRGF0YWJhc2VUaHJlYWQu
aCIKKyNpbmNsdWRlICJFcnJvckV2ZW50LmgiCisjaW5jbHVkZSAiRXZlbnRMaXN0ZW5lci5oIgor
I2luY2x1ZGUgIkV2ZW50VGFyZ2V0LmgiCiAjaW5jbHVkZSAiRmlsZVRocmVhZC5oIgogI2luY2x1
ZGUgIk1lc3NhZ2VQb3J0LmgiCisjaW5jbHVkZSAiU2NyaXB0Q2FsbFN0YWNrLmgiCiAjaW5jbHVk
ZSAiU2VjdXJpdHlPcmlnaW4uaCIKICNpbmNsdWRlICJUaHJlYWRhYmxlQmxvYlJlZ2lzdHJ5Lmgi
CiAjaW5jbHVkZSAiV29ya2VyQ29udGV4dC5oIgogI2luY2x1ZGUgIldvcmtlclRocmVhZC5oIgog
I2luY2x1ZGUgPHd0Zi9NYWluVGhyZWFkLmg+CiAjaW5jbHVkZSA8d3RmL1Bhc3NSZWZQdHIuaD4K
KyNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CiAKICNpZiBVU0UoSlNDKQogI2luY2x1ZGUgIkpTRE9N
V2luZG93LmgiCkBAIC02MSwxMCArNjYsMTkgQEAgcHVibGljOgogICAgIH0KIH07CiAKK1Njcmlw
dEV4ZWN1dGlvbkNvbnRleHQ6OlBlbmRpbmdFeGNlcHRpb246OlBlbmRpbmdFeGNlcHRpb24oY29u
c3QgU3RyaW5nJiBlcnJvck1lc3NhZ2UsIGludCBsaW5lTnVtYmVyLCBjb25zdCBTdHJpbmcmIHNv
dXJjZVVSTCwgUGFzc1JlZlB0cjxTY3JpcHRDYWxsU3RhY2s+IGNhbGxTdGFjaykKKyAgICA6IG1f
ZXJyb3JNZXNzYWdlKGVycm9yTWVzc2FnZSkKKyAgICAsIG1fbGluZU51bWJlcihsaW5lTnVtYmVy
KQorICAgICwgbV9zb3VyY2VVUkwoc291cmNlVVJMKQorICAgICwgbV9jYWxsU3RhY2soY2FsbFN0
YWNrKQoreworfQorCiBTY3JpcHRFeGVjdXRpb25Db250ZXh0OjpTY3JpcHRFeGVjdXRpb25Db250
ZXh0KCkKICNpZiBFTkFCTEUoREFUQUJBU0UpCiAgICAgOiBtX2hhc09wZW5EYXRhYmFzZXMoZmFs
c2UpCiAjZW5kaWYKKyAgICAsIG1faW5EaXNwYXRjaEVycm9yRXZlbnQoZmFsc2UpCiB7CiB9CiAK
QEAgLTI0Myw2ICsyNTcsNDMgQEAgdm9pZCBTY3JpcHRFeGVjdXRpb25Db250ZXh0OjpzZXRTZWN1
cml0eU9yaWdpbihQYXNzUmVmUHRyPFNlY3VyaXR5T3JpZ2luPiBzZWN1cmkKICAgICBtX3NlY3Vy
aXR5T3JpZ2luID0gc2VjdXJpdHlPcmlnaW47CiB9CiAKK3ZvaWQgU2NyaXB0RXhlY3V0aW9uQ29u
dGV4dDo6cmVwb3J0RXhjZXB0aW9uKGNvbnN0IFN0cmluZyYgZXJyb3JNZXNzYWdlLCBpbnQgbGlu
ZU51bWJlciwgY29uc3QgU3RyaW5nJiBzb3VyY2VVUkwsIFBhc3NSZWZQdHI8U2NyaXB0Q2FsbFN0
YWNrPiBjYWxsU3RhY2spCit7CisgICAgaWYgKG1faW5EaXNwYXRjaEVycm9yRXZlbnQpIHsKKyAg
ICAgICAgaWYgKCFtX3BlbmRpbmdFeGNlcHRpb25zKQorICAgICAgICAgICAgbV9wZW5kaW5nRXhj
ZXB0aW9ucyA9IG5ldyBWZWN0b3I8T3duUHRyPFBlbmRpbmdFeGNlcHRpb24+ID4oKTsKKyAgICAg
ICAgbV9wZW5kaW5nRXhjZXB0aW9ucy0+YXBwZW5kKG5ldyBQZW5kaW5nRXhjZXB0aW9uKGVycm9y
TWVzc2FnZSwgbGluZU51bWJlciwgc291cmNlVVJMLCBjYWxsU3RhY2spKTsKKyAgICAgICAgcmV0
dXJuOworICAgIH0KKworICAgIC8vIEZpcnN0IHJlcG9ydCB0aGUgb3JpZ2luYWwgZXhjZXB0aW9u
IGFuZCBvbmx5IHRoZW4gYWxsIHRoZSBuZXN0ZWQgb25lcy4KKyAgICBpZiAoIWRpc3BhdGNoRXJy
b3JFdmVudChlcnJvck1lc3NhZ2UsIGxpbmVOdW1iZXIsIHNvdXJjZVVSTCkpCisgICAgICAgIGxv
Z0V4Y2VwdGlvblRvQ29uc29sZShlcnJvck1lc3NhZ2UsIGxpbmVOdW1iZXIsIHNvdXJjZVVSTCwg
Y2FsbFN0YWNrLmdldCgpKTsKKworICAgIGlmICghbV9wZW5kaW5nRXhjZXB0aW9ucykKKyAgICAg
ICAgcmV0dXJuOworCisgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBtX3BlbmRpbmdFeGNlcHRp
b25zLT5zaXplKCk7IGkrKykgeworICAgICAgICBQZW5kaW5nRXhjZXB0aW9uKiBlID0gbV9wZW5k
aW5nRXhjZXB0aW9ucy0+YXQoaSkuZ2V0KCk7CisgICAgICAgIGxvZ0V4Y2VwdGlvblRvQ29uc29s
ZShlLT5tX2Vycm9yTWVzc2FnZSwgZS0+bV9saW5lTnVtYmVyLCBlLT5tX3NvdXJjZVVSTCwgZS0+
bV9jYWxsU3RhY2suZ2V0KCkpOworICAgIH0KKyAgICBtX3BlbmRpbmdFeGNlcHRpb25zLmNsZWFy
KCk7Cit9CisKK2Jvb2wgU2NyaXB0RXhlY3V0aW9uQ29udGV4dDo6ZGlzcGF0Y2hFcnJvckV2ZW50
KGNvbnN0IFN0cmluZyYgZXJyb3JNZXNzYWdlLCBpbnQgbGluZU51bWJlciwgY29uc3QgU3RyaW5n
JiBzb3VyY2VVUkwpCit7CisgICAgRXZlbnRUYXJnZXQqIHRhcmdldCA9IGVycm9yRXZlbnRUYXJn
ZXQoKTsKKyAgICBpZiAoIXRhcmdldCkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgQVNT
RVJUKCFtX2luRGlzcGF0Y2hFcnJvckV2ZW50KTsKKyAgICBtX2luRGlzcGF0Y2hFcnJvckV2ZW50
ID0gdHJ1ZTsKKyAgICBSZWZQdHI8RXJyb3JFdmVudD4gZXJyb3JFdmVudCA9IEVycm9yRXZlbnQ6
OmNyZWF0ZShlcnJvck1lc3NhZ2UsIHNvdXJjZVVSTCwgbGluZU51bWJlcik7CisgICAgdGFyZ2V0
LT5kaXNwYXRjaEV2ZW50KGVycm9yRXZlbnQpOworICAgIG1faW5EaXNwYXRjaEVycm9yRXZlbnQg
PSBmYWxzZTsKKyAgICByZXR1cm4gZXJyb3JFdmVudC0+ZGVmYXVsdFByZXZlbnRlZCgpOworfQor
CiB2b2lkIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQ6OmFkZFRpbWVvdXQoaW50IHRpbWVvdXRJZCwg
RE9NVGltZXIqIHRpbWVyKQogewogICAgIEFTU0VSVCghbV90aW1lb3V0cy5jb250YWlucyh0aW1l
b3V0SWQpKTsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvZG9tL1NjcmlwdEV4ZWN1dGlvbkNvbnRleHQu
aCBiL1dlYkNvcmUvZG9tL1NjcmlwdEV4ZWN1dGlvbkNvbnRleHQuaAppbmRleCBiNDZhMGY0Li4x
MWI5M2FlIDEwMDY0NAotLS0gYS9XZWJDb3JlL2RvbS9TY3JpcHRFeGVjdXRpb25Db250ZXh0LmgK
KysrIGIvV2ViQ29yZS9kb20vU2NyaXB0RXhlY3V0aW9uQ29udGV4dC5oCkBAIC0zMyw2ICszMyw3
IEBACiAjaW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4KICNpbmNsdWRlIDx3dGYvSGFzaE1hcC5oPgog
I2luY2x1ZGUgPHd0Zi9IYXNoU2V0Lmg+CisjaW5jbHVkZSA8d3RmL093blB0ci5oPgogI2luY2x1
ZGUgPHd0Zi9QYXNzT3duUHRyLmg+CiAjaW5jbHVkZSA8d3RmL1Bhc3NSZWZQdHIuaD4KICNpbmNs
dWRlIDx3dGYvUmVmUHRyLmg+CkBAIC01MiwxMSArNTMsMTQgQEAgbmFtZXNwYWNlIFdlYkNvcmUg
ewogICAgIGNsYXNzIERhdGFiYXNlVGhyZWFkOwogI2VuZGlmCiAgICAgY2xhc3MgRE9NVGltZXI7
CisgICAgY2xhc3MgRXZlbnRMaXN0ZW5lcjsKKyAgICBjbGFzcyBFdmVudFRhcmdldDsKICNpZiBF
TkFCTEUoQkxPQikgfHwgRU5BQkxFKEZJTEVfU1lTVEVNKQogICAgIGNsYXNzIEZpbGVUaHJlYWQ7
CiAjZW5kaWYKICAgICBjbGFzcyBNZXNzYWdlUG9ydDsKICAgICBjbGFzcyBTZWN1cml0eU9yaWdp
bjsKKyAgICBjbGFzcyBTY3JpcHRDYWxsU3RhY2s7CiAjaWYgRU5BQkxFKElOU1BFQ1RPUikKICAg
ICBjbGFzcyBJbnNwZWN0b3JDb250cm9sbGVyOwogI2VuZGlmCkBAIC05MSw3ICs5NSw3IEBAIG5h
bWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgdmlydHVhbCBJbnNwZWN0b3JDb250cm9sbGVyKiBp
bnNwZWN0b3JDb250cm9sbGVyKCkgY29uc3QgeyByZXR1cm4gMDsgfQogI2VuZGlmCiAKLSAgICAg
ICAgdmlydHVhbCB2b2lkIHJlcG9ydEV4Y2VwdGlvbihjb25zdCBTdHJpbmcmIGVycm9yTWVzc2Fn
ZSwgaW50IGxpbmVOdW1iZXIsIGNvbnN0IFN0cmluZyYgc291cmNlVVJMKSA9IDA7CisgICAgICAg
IHZpcnR1YWwgdm9pZCByZXBvcnRFeGNlcHRpb24oY29uc3QgU3RyaW5nJiBlcnJvck1lc3NhZ2Us
IGludCBsaW5lTnVtYmVyLCBjb25zdCBTdHJpbmcmIHNvdXJjZVVSTCwgUGFzc1JlZlB0cjxTY3Jp
cHRDYWxsU3RhY2s+KTsKICAgICAgICAgdmlydHVhbCB2b2lkIGFkZE1lc3NhZ2UoTWVzc2FnZVNv
dXJjZSwgTWVzc2FnZVR5cGUsIE1lc3NhZ2VMZXZlbCwgY29uc3QgU3RyaW5nJiBtZXNzYWdlLCB1
bnNpZ25lZCBsaW5lTnVtYmVyLCBjb25zdCBTdHJpbmcmIHNvdXJjZVVSTCkgPSAwOwogCiAgICAg
ICAgIC8vIEFjdGl2ZSBvYmplY3RzIGFyZSBub3QgZ2FyYmFnZSBjb2xsZWN0ZWQgZXZlbiBpZiBp
bmFjY2Vzc2libGUsIGUuZy4gYmVjYXVzZSB0aGVpciBhY3Rpdml0eSBtYXkgcmVzdWx0IGluIGNh
bGxiYWNrcyBiZWluZyBpbnZva2VkLgpAQCAtMTU0LDYgKzE1OCwxMCBAQCBuYW1lc3BhY2UgV2Vi
Q29yZSB7CiAgICAgICAgIHZpcnR1YWwgY29uc3QgS1VSTCYgdmlydHVhbFVSTCgpIGNvbnN0ID0g
MDsKICAgICAgICAgdmlydHVhbCBLVVJMIHZpcnR1YWxDb21wbGV0ZVVSTChjb25zdCBTdHJpbmcm
KSBjb25zdCA9IDA7CiAKKyAgICAgICAgdmlydHVhbCBFdmVudFRhcmdldCogZXJyb3JFdmVudFRh
cmdldCgpID0gMDsKKyAgICAgICAgdmlydHVhbCB2b2lkIGxvZ0V4Y2VwdGlvblRvQ29uc29sZShj
b25zdCBTdHJpbmcmIGVycm9yTWVzc2FnZSwgaW50IGxpbmVOdW1iZXIsIGNvbnN0IFN0cmluZyYg
c291cmNlVVJMLCBQYXNzUmVmUHRyPFNjcmlwdENhbGxTdGFjaz4pID0gMDsKKyAgICAgICAgYm9v
bCBkaXNwYXRjaEVycm9yRXZlbnQoY29uc3QgU3RyaW5nJiBlcnJvck1lc3NhZ2UsIGludCBsaW5l
TnVtYmVyLCBjb25zdCBTdHJpbmcmIHNvdXJjZVVSTCk7CisKICAgICAgICAgdm9pZCBjbG9zZU1l
c3NhZ2VQb3J0cygpOwogCiAgICAgICAgIFJlZlB0cjxTZWN1cml0eU9yaWdpbj4gbV9zZWN1cml0
eU9yaWdpbjsKQEAgLTE3OSw2ICsxODcsMTYgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogI2lmIEVO
QUJMRShCTE9CKSB8fCBFTkFCTEUoRklMRV9TWVNURU0pCiAgICAgICAgIFJlZlB0cjxGaWxlVGhy
ZWFkPiBtX2ZpbGVUaHJlYWQ7CiAjZW5kaWYKKyAgICAgICAgYm9vbCBtX2luRGlzcGF0Y2hFcnJv
ckV2ZW50OworICAgICAgICBjbGFzcyBQZW5kaW5nRXhjZXB0aW9uIDogcHVibGljIE5vbmNvcHlh
YmxlIHsKKyAgICAgICAgcHVibGljOgorICAgICAgICAgICAgUGVuZGluZ0V4Y2VwdGlvbihjb25z
dCBTdHJpbmcmIGVycm9yTWVzc2FnZSwgaW50IGxpbmVOdW1iZXIsIGNvbnN0IFN0cmluZyYgc291
cmNlVVJMLCBQYXNzUmVmUHRyPFNjcmlwdENhbGxTdGFjaz4gY2FsbFN0YWNrKTsKKyAgICAgICAg
ICAgIFN0cmluZyBtX2Vycm9yTWVzc2FnZTsKKyAgICAgICAgICAgIGludCBtX2xpbmVOdW1iZXI7
CisgICAgICAgICAgICBTdHJpbmcgbV9zb3VyY2VVUkw7CisgICAgICAgICAgICBSZWZQdHI8U2Ny
aXB0Q2FsbFN0YWNrPiBtX2NhbGxTdGFjazsKKyAgICAgICAgfTsKKyAgICAgICAgT3duUHRyPFZl
Y3RvcjxPd25QdHI8UGVuZGluZ0V4Y2VwdGlvbj4gPiA+IG1fcGVuZGluZ0V4Y2VwdGlvbnM7CiAg
ICAgfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS93b3Jr
ZXJzL0RlZmF1bHRTaGFyZWRXb3JrZXJSZXBvc2l0b3J5LmNwcCBiL1dlYkNvcmUvd29ya2Vycy9E
ZWZhdWx0U2hhcmVkV29ya2VyUmVwb3NpdG9yeS5jcHAKaW5kZXggNGE4ZTk0Ny4uMGIxYWZlNSAx
MDA2NDQKLS0tIGEvV2ViQ29yZS93b3JrZXJzL0RlZmF1bHRTaGFyZWRXb3JrZXJSZXBvc2l0b3J5
LmNwcAorKysgYi9XZWJDb3JlL3dvcmtlcnMvRGVmYXVsdFNoYXJlZFdvcmtlclJlcG9zaXRvcnku
Y3BwCkBAIC00Miw2ICs0Miw3IEBACiAjaW5jbHVkZSAiTWVzc2FnZVBvcnQuaCIKICNpbmNsdWRl
ICJOb3RJbXBsZW1lbnRlZC5oIgogI2luY2x1ZGUgIlBsYXRmb3JtU3RyaW5nLmgiCisjaW5jbHVk
ZSAiU2NyaXB0Q2FsbFN0YWNrLmgiCiAjaW5jbHVkZSAiU2VjdXJpdHlPcmlnaW4uaCIKICNpbmNs
dWRlICJTZWN1cml0eU9yaWdpbkhhc2guaCIKICNpbmNsdWRlICJTaGFyZWRXb3JrZXIuaCIKQEAg
LTE1NSw3ICsxNTYsNyBAQCB2b2lkIFNoYXJlZFdvcmtlclByb3h5Ojpwb3N0VGFza0Zvck1vZGVU
b1dvcmtlckNvbnRleHQoUGFzc093blB0cjxTY3JpcHRFeGVjdXRpbwogCiBzdGF0aWMgdm9pZCBw
b3N0RXhjZXB0aW9uVGFzayhTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0LCBjb25zdCBT
dHJpbmcmIGVycm9yTWVzc2FnZSwgaW50IGxpbmVOdW1iZXIsIGNvbnN0IFN0cmluZyYgc291cmNl
VVJMKQogewotICAgIGNvbnRleHQtPnJlcG9ydEV4Y2VwdGlvbihlcnJvck1lc3NhZ2UsIGxpbmVO
dW1iZXIsIHNvdXJjZVVSTCk7CisgICAgY29udGV4dC0+cmVwb3J0RXhjZXB0aW9uKGVycm9yTWVz
c2FnZSwgbGluZU51bWJlciwgc291cmNlVVJMLCAwKTsKIH0KIAogdm9pZCBTaGFyZWRXb3JrZXJQ
cm94eTo6cG9zdEV4Y2VwdGlvblRvV29ya2VyT2JqZWN0KGNvbnN0IFN0cmluZyYgZXJyb3JNZXNz
YWdlLCBpbnQgbGluZU51bWJlciwgY29uc3QgU3RyaW5nJiBzb3VyY2VVUkwpCmRpZmYgLS1naXQg
YS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyQ29udGV4dC5jcHAgYi9XZWJDb3JlL3dvcmtlcnMvV29y
a2VyQ29udGV4dC5jcHAKaW5kZXggMzQ1ZTViNy4uOWQ5YWJjNSAxMDA2NDQKLS0tIGEvV2ViQ29y
ZS93b3JrZXJzL1dvcmtlckNvbnRleHQuY3BwCisrKyBiL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJD
b250ZXh0LmNwcApAQCAtNDYsNiArNDYsNyBAQAogI2luY2x1ZGUgIktVUkwuaCIKICNpbmNsdWRl
ICJNZXNzYWdlUG9ydC5oIgogI2luY2x1ZGUgIk5vdEltcGxlbWVudGVkLmgiCisjaW5jbHVkZSAi
U2NyaXB0Q2FsbFN0YWNrLmgiCiAjaW5jbHVkZSAiU2NyaXB0U291cmNlQ29kZS5oIgogI2luY2x1
ZGUgIlNjcmlwdFZhbHVlLmgiCiAjaW5jbHVkZSAiU2VjdXJpdHlPcmlnaW4uaCIKQEAgLTEwMiw3
ICsxMDMsNiBAQCBXb3JrZXJDb250ZXh0OjpXb3JrZXJDb250ZXh0KGNvbnN0IEtVUkwmIHVybCwg
Y29uc3QgU3RyaW5nJiB1c2VyQWdlbnQsIFdvcmtlclRocgogICAgICwgbV9zY3JpcHQobmV3IFdv
cmtlclNjcmlwdENvbnRyb2xsZXIodGhpcykpCiAgICAgLCBtX3RocmVhZCh0aHJlYWQpCiAgICAg
LCBtX2Nsb3NpbmcoZmFsc2UpCi0gICAgLCBtX3JlcG9ydGluZ0V4Y2VwdGlvbihmYWxzZSkKIHsK
ICAgICBzZXRTZWN1cml0eU9yaWdpbihTZWN1cml0eU9yaWdpbjo6Y3JlYXRlKHVybCkpOwogfQpA
QCAtMjU5LDIwICsyNTksMTQgQEAgdm9pZCBXb3JrZXJDb250ZXh0OjppbXBvcnRTY3JpcHRzKGNv
bnN0IFZlY3RvcjxTdHJpbmc+JiB1cmxzLCBFeGNlcHRpb25Db2RlJiBlYykKICAgICB9CiB9CiAK
LXZvaWQgV29ya2VyQ29udGV4dDo6cmVwb3J0RXhjZXB0aW9uKGNvbnN0IFN0cmluZyYgZXJyb3JN
ZXNzYWdlLCBpbnQgbGluZU51bWJlciwgY29uc3QgU3RyaW5nJiBzb3VyY2VVUkwpCitFdmVudFRh
cmdldCogV29ya2VyQ29udGV4dDo6ZXJyb3JFdmVudFRhcmdldCgpCiB7Ci0gICAgYm9vbCBlcnJv
ckhhbmRsZWQgPSBmYWxzZTsKLSAgICBpZiAoIW1fcmVwb3J0aW5nRXhjZXB0aW9uKSB7Ci0gICAg
ICAgIGlmIChvbmVycm9yKCkpIHsKLSAgICAgICAgICAgIG1fcmVwb3J0aW5nRXhjZXB0aW9uID0g
dHJ1ZTsKLSAgICAgICAgICAgIFJlZlB0cjxFcnJvckV2ZW50PiBlcnJvckV2ZW50KEVycm9yRXZl
bnQ6OmNyZWF0ZShlcnJvck1lc3NhZ2UsIHNvdXJjZVVSTCwgbGluZU51bWJlcikpOwotICAgICAg
ICAgICAgb25lcnJvcigpLT5oYW5kbGVFdmVudCh0aGlzLCBlcnJvckV2ZW50LmdldCgpKTsKLSAg
ICAgICAgICAgIGVycm9ySGFuZGxlZCA9IGVycm9yRXZlbnQtPmRlZmF1bHRQcmV2ZW50ZWQoKTsK
LSAgICAgICAgICAgIG1fcmVwb3J0aW5nRXhjZXB0aW9uID0gZmFsc2U7Ci0gICAgICAgIH0KLSAg
ICB9Ci0gICAgaWYgKCFlcnJvckhhbmRsZWQpCi0gICAgICAgIHRocmVhZCgpLT53b3JrZXJSZXBv
cnRpbmdQcm94eSgpLnBvc3RFeGNlcHRpb25Ub1dvcmtlck9iamVjdChlcnJvck1lc3NhZ2UsIGxp
bmVOdW1iZXIsIHNvdXJjZVVSTCk7CisgICAgcmV0dXJuIHRoaXM7Cit9CisKK3ZvaWQgV29ya2Vy
Q29udGV4dDo6bG9nRXhjZXB0aW9uVG9Db25zb2xlKGNvbnN0IFN0cmluZyYgZXJyb3JNZXNzYWdl
LCBpbnQgbGluZU51bWJlciwgY29uc3QgU3RyaW5nJiBzb3VyY2VVUkwsIFBhc3NSZWZQdHI8U2Ny
aXB0Q2FsbFN0YWNrPikKK3sKKyAgICB0aHJlYWQoKS0+d29ya2VyUmVwb3J0aW5nUHJveHkoKS5w
b3N0RXhjZXB0aW9uVG9Xb3JrZXJPYmplY3QoZXJyb3JNZXNzYWdlLCBsaW5lTnVtYmVyLCBzb3Vy
Y2VVUkwpOwogfQogCiB2b2lkIFdvcmtlckNvbnRleHQ6OmFkZE1lc3NhZ2UoTWVzc2FnZVNvdXJj
ZSBzb3VyY2UsIE1lc3NhZ2VUeXBlIHR5cGUsIE1lc3NhZ2VMZXZlbCBsZXZlbCwgY29uc3QgU3Ry
aW5nJiBtZXNzYWdlLCB1bnNpZ25lZCBsaW5lTnVtYmVyLCBjb25zdCBTdHJpbmcmIHNvdXJjZVVS
TCkKZGlmZiAtLWdpdCBhL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJDb250ZXh0LmggYi9XZWJDb3Jl
L3dvcmtlcnMvV29ya2VyQ29udGV4dC5oCmluZGV4IDVkMTVkOTQuLmZlZmQ2MGEgMTAwNjQ0Ci0t
LSBhL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJDb250ZXh0LmgKKysrIGIvV2ViQ29yZS93b3JrZXJz
L1dvcmtlckNvbnRleHQuaApAQCAtMTAwLDcgKzEwMCw2IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsK
ICAgICAgICAgdm9pZCBjbGVhckludGVydmFsKGludCB0aW1lb3V0SWQpOwogCiAgICAgICAgIC8v
IFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQKLSAgICAgICAgdmlydHVhbCB2b2lkIHJlcG9ydEV4Y2Vw
dGlvbihjb25zdCBTdHJpbmcmIGVycm9yTWVzc2FnZSwgaW50IGxpbmVOdW1iZXIsIGNvbnN0IFN0
cmluZyYgc291cmNlVVJMKTsKICAgICAgICAgdmlydHVhbCB2b2lkIGFkZE1lc3NhZ2UoTWVzc2Fn
ZVNvdXJjZSwgTWVzc2FnZVR5cGUsIE1lc3NhZ2VMZXZlbCwgY29uc3QgU3RyaW5nJiBtZXNzYWdl
LCB1bnNpZ25lZCBsaW5lTnVtYmVyLCBjb25zdCBTdHJpbmcmIHNvdXJjZVVSTCk7CiAKICNpZiBF
TkFCTEUoTk9USUZJQ0FUSU9OUykKQEAgLTE3NCw2ICsxNzMsOSBAQCBuYW1lc3BhY2UgV2ViQ29y
ZSB7CiAgICAgICAgIHZpcnR1YWwgY29uc3QgS1VSTCYgdmlydHVhbFVSTCgpIGNvbnN0OwogICAg
ICAgICB2aXJ0dWFsIEtVUkwgdmlydHVhbENvbXBsZXRlVVJMKGNvbnN0IFN0cmluZyYpIGNvbnN0
OwogCisgICAgICAgIHZpcnR1YWwgRXZlbnRUYXJnZXQqIGVycm9yRXZlbnRUYXJnZXQoKTsKKyAg
ICAgICAgdmlydHVhbCB2b2lkIGxvZ0V4Y2VwdGlvblRvQ29uc29sZShjb25zdCBTdHJpbmcmIGVy
cm9yTWVzc2FnZSwgaW50IGxpbmVOdW1iZXIsIGNvbnN0IFN0cmluZyYgc291cmNlVVJMLCBQYXNz
UmVmUHRyPFNjcmlwdENhbGxTdGFjaz4pOworCiAgICAgICAgIEtVUkwgbV91cmw7CiAgICAgICAg
IFN0cmluZyBtX3VzZXJBZ2VudDsKIApAQCAtMTg3LDcgKzE4OSw2IEBAIG5hbWVzcGFjZSBXZWJD
b3JlIHsKICAgICAgICAgbXV0YWJsZSBSZWZQdHI8Tm90aWZpY2F0aW9uQ2VudGVyPiBtX25vdGlm
aWNhdGlvbnM7CiAjZW5kaWYKICAgICAgICAgYm9vbCBtX2Nsb3Npbmc7Ci0gICAgICAgIGJvb2wg
bV9yZXBvcnRpbmdFeGNlcHRpb247CiAgICAgICAgIEV2ZW50VGFyZ2V0RGF0YSBtX2V2ZW50VGFy
Z2V0RGF0YTsKIAogICAgICAgICBIYXNoU2V0PE9ic2VydmVyKj4gbV93b3JrZXJPYnNlcnZlcnM7
CmRpZmYgLS1naXQgYS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyTWVzc2FnaW5nUHJveHkuY3BwIGIv
V2ViQ29yZS93b3JrZXJzL1dvcmtlck1lc3NhZ2luZ1Byb3h5LmNwcAppbmRleCAxMDcwMGM2Li4w
Njg3MDE0IDEwMDY0NAotLS0gYS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyTWVzc2FnaW5nUHJveHku
Y3BwCisrKyBiL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJNZXNzYWdpbmdQcm94eS5jcHAKQEAgLTQw
LDYgKzQwLDcgQEAKICNpbmNsdWRlICJFeGNlcHRpb25Db2RlLmgiCiAjaW5jbHVkZSAiSW5zcGVj
dG9yQ29udHJvbGxlci5oIgogI2luY2x1ZGUgIk1lc3NhZ2VFdmVudC5oIgorI2luY2x1ZGUgIlNj
cmlwdENhbGxTdGFjay5oIgogI2luY2x1ZGUgIlNjcmlwdEV4ZWN1dGlvbkNvbnRleHQuaCIKICNp
bmNsdWRlICJXb3JrZXIuaCIKIApAQCAtMTMxLDcgKzEzMiw3IEBAIHByaXZhdGU6CiAKICAgICAg
ICAgYm9vbCBlcnJvckhhbmRsZWQgPSAhd29ya2VyT2JqZWN0LT5kaXNwYXRjaEV2ZW50KEVycm9y
RXZlbnQ6OmNyZWF0ZShtX2Vycm9yTWVzc2FnZSwgbV9zb3VyY2VVUkwsIG1fbGluZU51bWJlcikp
OwogICAgICAgICBpZiAoIWVycm9ySGFuZGxlZCkKLSAgICAgICAgICAgIGNvbnRleHQtPnJlcG9y
dEV4Y2VwdGlvbihtX2Vycm9yTWVzc2FnZSwgbV9saW5lTnVtYmVyLCBtX3NvdXJjZVVSTCk7Cisg
ICAgICAgICAgICBjb250ZXh0LT5yZXBvcnRFeGNlcHRpb24obV9lcnJvck1lc3NhZ2UsIG1fbGlu
ZU51bWJlciwgbV9zb3VyY2VVUkwsIDApOwogICAgIH0KIAogICAgIFN0cmluZyBtX2Vycm9yTWVz
c2FnZTsKZGlmZiAtLWdpdCBhL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cgYi9XZWJLaXQvY2hy
b21pdW0vQ2hhbmdlTG9nCmluZGV4IDAzMzIwYmYuLmRmZjkzODEgMTAwNjQ0Ci0tLSBhL1dlYktp
dC9jaHJvbWl1bS9DaGFuZ2VMb2cKKysrIGIvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwpAQCAt
MSwzICsxLDE4IEBACisyMDEwLTEwLTE5ICBhbGV4QHdlYmtpdC5vcmcgIDxhbGV4QHdlYmtpdC5v
cmdAMjY4ZjQ1Y2MtY2QwOS0wNDEwLWFiM2MtZDUyNjkxYjRkYmZjPgorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFdlYkNvcmUgZG9lc24ndCBmaXJlIHdp
bmRvdy5vbmVycm9yIGV2ZW50IHdoZW4gdW5jYXVnaHQgSmF2YVNjcmlwdCBleGNlcHRpb25zIGFy
ZSB0aHJvd24KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTg1MTkKKworICAgICAgICBVbmNhdWdodCBleGNlcHRpb25zIGFyZSBwcm9wYWdhdGVkIHRvIHdp
bmRvdy5vbmVycm9yIGhhbmRlciBpZiBvbmUgaXMgcHJlc2VudC4KKyAgICAgICAgVGhlIGhhbmRs
ZXIgaXMgZXhwZWN0ZWQgdG8gYmUgYSBmdW5jdGlvbiBhY2NlcHRpbmcgdGhyZWUgYXJndW1lbnRz
OiBlcnJvciBtZXNzYWdlLAorICAgICAgICByZXNvdXJjZSB1cmwgYW5kIGxpbmUgbnVtYmVyIHdo
ZXJlIHRoZSBleGNlcHRpb24gb2NjdXJlZC4KKworICAgICAgICAqIHNyYy9XZWJXb3JrZXJDbGll
bnRJbXBsLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViV29ya2VyQ2xpZW50SW1wbDo6cG9zdEV4
Y2VwdGlvblRvV29ya2VyT2JqZWN0KToKKyAgICAgICAgKFdlYktpdDo6V2ViV29ya2VyQ2xpZW50
SW1wbDo6cG9zdEV4Y2VwdGlvblRvV29ya2VyT2JqZWN0VGFzayk6CisKIDIwMTAtMTItMDcgIEJy
aWFuIFdlaW5zdGVpbiAgPGJ3ZWluc3RlaW5AYXBwbGUuY29tPgogCiAgICAgICAgIFJldmlld2Vk
IGJ5IEpvaG4gU3VsbGl2YW4uCmRpZmYgLS1naXQgYS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYldv
cmtlckNsaWVudEltcGwuY3BwIGIvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJXb3JrZXJDbGllbnRJ
bXBsLmNwcAppbmRleCAxODI4MmUzLi5lM2NlMmJhIDEwMDY0NAotLS0gYS9XZWJLaXQvY2hyb21p
dW0vc3JjL1dlYldvcmtlckNsaWVudEltcGwuY3BwCisrKyBiL1dlYktpdC9jaHJvbWl1bS9zcmMv
V2ViV29ya2VyQ2xpZW50SW1wbC5jcHAKQEAgLTQxLDYgKzQxLDcgQEAKICNpbmNsdWRlICJNZXNz
YWdlRXZlbnQuaCIKICNpbmNsdWRlICJNZXNzYWdlUG9ydC5oIgogI2luY2x1ZGUgIk1lc3NhZ2VQ
b3J0Q2hhbm5lbC5oIgorI2luY2x1ZGUgIlNjcmlwdENhbGxTdGFjay5oIgogI2luY2x1ZGUgIlNj
cmlwdEV4ZWN1dGlvbkNvbnRleHQuaCIKICNpbmNsdWRlICJXb3JrZXIuaCIKICNpbmNsdWRlICJX
b3JrZXJDb250ZXh0LmgiCkBAIC0yNDcsNyArMjQ4LDcgQEAgdm9pZCBXZWJXb3JrZXJDbGllbnRJ
bXBsOjpwb3N0RXhjZXB0aW9uVG9Xb3JrZXJPYmplY3QoY29uc3QgV2ViU3RyaW5nJiBlcnJvck1l
c3MKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBzb3VyY2VVUkwsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGluZU51bWJlcikpOwogICAgIGlmICh1bmhh
bmRsZWQpCi0gICAgICAgIG1fc2NyaXB0RXhlY3V0aW9uQ29udGV4dC0+cmVwb3J0RXhjZXB0aW9u
KGVycm9yTWVzc2FnZSwgbGluZU51bWJlciwgc291cmNlVVJMKTsKKyAgICAgICAgbV9zY3JpcHRF
eGVjdXRpb25Db250ZXh0LT5yZXBvcnRFeGNlcHRpb24oZXJyb3JNZXNzYWdlLCBsaW5lTnVtYmVy
LCBzb3VyY2VVUkwsIDApOwogfQogCiB2b2lkIFdlYldvcmtlckNsaWVudEltcGw6OnBvc3RDb25z
b2xlTWVzc2FnZVRvV29ya2VyT2JqZWN0KGludCBkZXN0aW5hdGlvbiwKQEAgLTM4Myw3ICszODQs
OCBAQCB2b2lkIFdlYldvcmtlckNsaWVudEltcGw6OnBvc3RFeGNlcHRpb25Ub1dvcmtlck9iamVj
dFRhc2soCiAgICAgaWYgKCFoYW5kbGVkKQogICAgICAgICB0aGlzUHRyLT5tX3NjcmlwdEV4ZWN1
dGlvbkNvbnRleHQtPnJlcG9ydEV4Y2VwdGlvbihlcnJvck1lc3NhZ2UsCiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpbmVOdW1iZXIs
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIHNvdXJjZVVSTCk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHNvdXJjZVVSTCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMCk7CiB9CiAKIHZvaWQgV2ViV29ya2Vy
Q2xpZW50SW1wbDo6cG9zdENvbnNvbGVNZXNzYWdlVG9Xb3JrZXJPYmplY3RUYXNrKFNjcmlwdEV4
ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQsCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>76222</attachid>
            <date>2010-12-10 10:53:37 -0800</date>
            <delta_ts>2010-12-27 06:24:33 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>window.onerror.patch</filename>
            <type>text/plain</type>
            <size>112151</size>
            <attacher name="Yury Semikhatsky">yurys</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCBlNWMxYzYyLi5hMjgzMTdhIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNjMgQEAKKzIwMTAtMTAt
MTkgIGFsZXhAd2Via2l0Lm9yZyAgPGFsZXhAd2Via2l0Lm9yZ0AyNjhmNDVjYy1jZDA5LTA0MTAt
YWIzYy1kNTI2OTFiNGRiZmM+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgV2ViQ29yZSBkb2Vzbid0IGZpcmUgd2luZG93Lm9uZXJyb3IgZXZlbnQgd2hl
biB1bmNhdWdodCBKYXZhU2NyaXB0IGV4Y2VwdGlvbnMgYXJlIHRocm93bgorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODUxOQorCisgICAgICAgIFVuY2F1
Z2h0IGV4Y2VwdGlvbnMgYXJlIHByb3BhZ2F0ZWQgdG8gd2luZG93Lm9uZXJyb3IgaGFuZGVyIGlm
IG9uZSBpcyBwcmVzZW50LgorICAgICAgICBUaGUgaGFuZGxlciBpcyBleHBlY3RlZCB0byBiZSBh
IGZ1bmN0aW9uIGFjY2VwdGluZyB0aHJlZSBhcmd1bWVudHM6IGVycm9yIG1lc3NhZ2UsCisgICAg
ICAgIHJlc291cmNlIHVybCBhbmQgbGluZSBudW1iZXIgd2hlcmUgdGhlIGV4Y2VwdGlvbiBvY2N1
cmVkLgorCisgICAgICAgICogZmFzdC9ldmVudHMvcmVzb3VyY2VzL3dpbmRvdy1vbmVycm9yLmpz
OiBBZGRlZC4KKyAgICAgICAgKHRocm93RXhjZXB0aW9uKToKKyAgICAgICAgKiBmYXN0L2V2ZW50
cy93aW5kb3ctb25lcnJvcjEtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2V2
ZW50cy93aW5kb3ctb25lcnJvcjEuaHRtbDogQWRkZWQuCisgICAgICAgICogZmFzdC9ldmVudHMv
d2luZG93LW9uZXJyb3IxMC1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZXZl
bnRzL3dpbmRvdy1vbmVycm9yMTAuaHRtbDogQWRkZWQuCisgICAgICAgICogZmFzdC9ldmVudHMv
d2luZG93LW9uZXJyb3IxMS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZXZl
bnRzL3dpbmRvdy1vbmVycm9yMTEuaHRtbDogQWRkZWQuCisgICAgICAgICogZmFzdC9ldmVudHMv
d2luZG93LW9uZXJyb3IyLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC9ldmVu
dHMvd2luZG93LW9uZXJyb3IyLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZXZlbnRzL3dp
bmRvdy1vbmVycm9yMy1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZXZlbnRz
L3dpbmRvdy1vbmVycm9yMy5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2V2ZW50cy93aW5k
b3ctb25lcnJvcjQtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2V2ZW50cy93
aW5kb3ctb25lcnJvcjQuaHRtbDogQWRkZWQuCisgICAgICAgICogZmFzdC9ldmVudHMvd2luZG93
LW9uZXJyb3I1LWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC9ldmVudHMvd2lu
ZG93LW9uZXJyb3I1Lmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZXZlbnRzL3dpbmRvdy1v
bmVycm9yNi1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZXZlbnRzL3dpbmRv
dy1vbmVycm9yNi5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2V2ZW50cy93aW5kb3ctb25l
cnJvcjctZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2V2ZW50cy93aW5kb3ct
b25lcnJvcjcuaHRtbDogQWRkZWQuCisgICAgICAgICogZmFzdC9ldmVudHMvd2luZG93LW9uZXJy
b3I4LWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC9ldmVudHMvd2luZG93LW9u
ZXJyb3I4Lmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZXZlbnRzL3dpbmRvdy1vbmVycm9y
OS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZXZlbnRzL3dpbmRvdy1vbmVy
cm9yOS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L3dvcmtlcnMvd29ya2VyLXNjcmlwdC1l
cnJvci1leHBlY3RlZC50eHQ6CisgICAgICAgICogaHR0cC90ZXN0cy9zZWN1cml0eS9yZXNvdXJj
ZXMvb25lcnJvci1pZnJhbWUuaHRtbDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9zZWN1
cml0eS93aW5kb3ctb25lcnJvci1leGNlcHRpb24taW4taWZyYW1lLWV4cGVjdGVkLnR4dDogQWRk
ZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9zZWN1cml0eS93aW5kb3ctb25lcnJvci1leGNlcHRp
b24taW4taWZyYW1lLmh0bWw6IEFkZGVkLgorICAgICAgICAqIHBsYXRmb3JtL2Nocm9taXVtLXdp
bi9mYXN0L3dvcmtlcnMvd29ya2VyLXNjcmlwdC1lcnJvci1leHBlY3RlZC50eHQ6CisgICAgICAg
ICogcGxhdGZvcm0vY2hyb21pdW0vZmFzdC9ldmVudHMvd2luZG93LW9uZXJyb3IxLWV4cGVjdGVk
LnR4dDogQWRkZWQuCisgICAgICAgICogcGxhdGZvcm0vY2hyb21pdW0vZmFzdC9ldmVudHMvd2lu
ZG93LW9uZXJyb3IxMC1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIHBsYXRmb3JtL2No
cm9taXVtL2Zhc3QvZXZlbnRzL3dpbmRvdy1vbmVycm9yMTEtZXhwZWN0ZWQudHh0OiBBZGRlZC4K
KyAgICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS9mYXN0L2V2ZW50cy93aW5kb3ctb25lcnJvcjIt
ZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS9mYXN0L2V2
ZW50cy93aW5kb3ctb25lcnJvcjMtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBwbGF0
Zm9ybS9jaHJvbWl1bS9mYXN0L2V2ZW50cy93aW5kb3ctb25lcnJvcjQtZXhwZWN0ZWQudHh0OiBB
ZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS9mYXN0L2V2ZW50cy93aW5kb3ctb25l
cnJvcjUtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS9m
YXN0L2V2ZW50cy93aW5kb3ctb25lcnJvcjYtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAg
KiBwbGF0Zm9ybS9jaHJvbWl1bS9mYXN0L2V2ZW50cy93aW5kb3ctb25lcnJvcjctZXhwZWN0ZWQu
dHh0OiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS9mYXN0L2V2ZW50cy93aW5k
b3ctb25lcnJvcjgtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9jaHJv
bWl1bS9mYXN0L2V2ZW50cy93aW5kb3ctb25lcnJvcjktZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAg
ICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS9odHRwL3Rlc3RzL3NlY3VyaXR5L3dpbmRvdy1vbmVy
cm9yLWV4Y2VwdGlvbi1pbi1pZnJhbWUtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBw
bGF0Zm9ybS9jaHJvbWl1bS91c2Vyc2NyaXB0cy93aW5kb3ctb25lcnJvci1mb3ItaXNvbGF0ZWQt
d29ybGQtMS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIHBsYXRmb3JtL2Nocm9taXVt
L3VzZXJzY3JpcHRzL3dpbmRvdy1vbmVycm9yLWZvci1pc29sYXRlZC13b3JsZC0yLWV4cGVjdGVk
LnR4dDogQWRkZWQuCisgICAgICAgICogdXNlcnNjcmlwdHMvd2luZG93LW9uZXJyb3ItZm9yLWlz
b2xhdGVkLXdvcmxkLTEtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiB1c2Vyc2NyaXB0
cy93aW5kb3ctb25lcnJvci1mb3ItaXNvbGF0ZWQtd29ybGQtMS5odG1sOiBBZGRlZC4KKyAgICAg
ICAgKiB1c2Vyc2NyaXB0cy93aW5kb3ctb25lcnJvci1mb3ItaXNvbGF0ZWQtd29ybGQtMi1leHBl
Y3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIHVzZXJzY3JpcHRzL3dpbmRvdy1vbmVycm9yLWZv
ci1pc29sYXRlZC13b3JsZC0yLmh0bWw6IEFkZGVkLgorICAgICAgICAqIHVzZXJzY3JpcHRzL3dp
bmRvdy1vbmVycm9yLWZvci1pc29sYXRlZC13b3JsZC5odG1sOiBBZGRlZC4KKwogMjAxMC0xMi0w
OSAgWXVyeSBTZW1pa2hhdHNreSAgPHl1cnlzQGNocm9taXVtLm9yZz4KIAogICAgICAgICBSZXZp
ZXdlZCBieSBQYXZlbCBGZWxkbWFuLgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9ldmVu
dHMvcmVzb3VyY2VzL3dpbmRvdy1vbmVycm9yLmpzIGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMv
cmVzb3VyY2VzL3dpbmRvdy1vbmVycm9yLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAuLjM0NDU3NGIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50
cy9yZXNvdXJjZXMvd2luZG93LW9uZXJyb3IuanMKQEAgLTAsMCArMSwzIEBACitmdW5jdGlvbiB0
aHJvd0V4Y2VwdGlvbigpIHsKKyAgICB0aHJvdyBuZXcgRXJyb3IoIkFuIGV4Y2VwdGlvbiIpOwor
fQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvd2luZG93LW9uZXJyb3IxLWV4
cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3dpbmRvdy1vbmVycm9yMS1leHBl
Y3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZmU1MWI3MgotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3dpbmRvdy1vbmVycm9yMS1l
eHBlY3RlZC50eHQKQEAgLTAsMCArMSwzIEBACitUaGlzIHBhZ2UgdGVzdHMgc2V0dGluZyBvbmVy
cm9yIGhhbmRsZXJzIHRocm91Z2ggdGhlIERPTS4gSWYgaXQgcGFzc2VzLCB5b3Ugd2lsbCBzZWUg
IlBBU1MiIG1lc3NhZ2VzIGJlbG93LkJ1ZyA4NTE5LgorCitQQVNTOiBjYXVnaHQgZ2xvYmFsIGVy
cm9yOiBSZWZlcmVuY2VFcnJvcjogQ2FuJ3QgZmluZCB2YXJpYWJsZTogaGFoYWhhX2dvb2RfbHVj
a19maW5kaW5nX21lIGF0IHdpbmRvdy1vbmVycm9yMS5odG1sOjI1CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9mYXN0L2V2ZW50cy93aW5kb3ctb25lcnJvcjEuaHRtbCBiL0xheW91dFRlc3RzL2Zh
c3QvZXZlbnRzL3dpbmRvdy1vbmVycm9yMS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAuLjU5ZDI0OTUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2V2
ZW50cy93aW5kb3ctb25lcnJvcjEuaHRtbApAQCAtMCwwICsxLDM1IEBACis8aHRtbD4KKzxoZWFk
PgorPHNjcmlwdD4KK2lmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCisgICAgbGF5b3V0
VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOworCitmdW5jdGlvbiBwcmludChtZXNzYWdlLCBj
b2xvcikKK3sKKyAgICB2YXIgcGFyYWdyYXBoID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2
Iik7CisgICAgcGFyYWdyYXBoLmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKG1l
c3NhZ2UpKTsKKyAgICBwYXJhZ3JhcGguc3R5bGUuZm9udEZhbWlseSA9ICJtb25vc3BhY2UiOwor
ICAgIGlmIChjb2xvcikKKyAgICAgICAgcGFyYWdyYXBoLnN0eWxlLmNvbG9yID0gY29sb3I7Cisg
ICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNvbnNvbGUiKS5hcHBlbmRDaGlsZChwYXJhZ3Jh
cGgpOworfQorCitmdW5jdGlvbiB0ZXN0KCkKK3sKKyAgICAvLyBtdXN0IGJlIGxhc3QgYmVjYXVz
ZSB0aGUgZXhjZXB0aW9uIGVuZHMgSmF2YVNjcmlwdCBleGVjdXRpb24KKyAgICB3aW5kb3cub25l
cnJvciA9IGZ1bmN0aW9uIChlcnJvciwgdXJsLCBsaW5lKSB7CisgICAgICAgIHVybCA9IHVybCA/
IHVybC5tYXRjaCggL1teXC9dK1wvPyQvIClbMF0gOiB1cmw7CisgICAgICAgIHByaW50KCJQQVNT
OiBjYXVnaHQgZ2xvYmFsIGVycm9yOiAiICsgZXJyb3IgKyAiIGF0ICIgKyB1cmwgKyAiOiIgKyBs
aW5lLCAiZ3JlZW4iKTsKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH07CisgICAgaGFoYWhh
X2dvb2RfbHVja19maW5kaW5nX21lKCk7IC8vIGNhdWdodCBieSB3aW5kb3cub25lcnJvcgorfQor
PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keSBvbmxvYWQ9InRlc3QoKTsiPgorPHA+VGhpcyBwYWdl
IHRlc3RzIHNldHRpbmcgb25lcnJvciBoYW5kbGVycyB0aHJvdWdoIHRoZSBET00uIElmIGl0IHBh
c3NlcywgeW91IHdpbGwKKyAgIHNlZSAiUEFTUyIgbWVzc2FnZXMgYmVsb3cuPGEgaHJlZj0iaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTg1MTkiPkJ1ZyA4NTE5PC9hPi48
L3A+Cis8aHI+Cis8ZGl2IGlkPSdjb25zb2xlJz48L2Rpdj4KKzwvYm9keT4KKzwvaHRtbD4KZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3dpbmRvdy1vbmVycm9yMTAtZXhwZWN0
ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvd2luZG93LW9uZXJyb3IxMC1leHBlY3Rl
ZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYmZmNTYzNgotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3dpbmRvdy1vbmVycm9yMTAtZXhw
ZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTEgQEAKK1Rlc3QgdGhhdCAiZXJyb3IiIGV2ZW50IGxpc3Rl
bmVyIGFkZGVkIHdpdGggd2luZG93LmFkZEV2ZW50TGlzdGVuZXIgaXMgaW52b2tlZCBmb3IgdW5j
YXVjaHQgZXhjZXB0aW9ucy4gQnVnIDg1MTkuCisKK2V2ZW50IHBhc3NlZCB0byB0aGUgbGlzdGVu
ZXIgaXMgdGhlIHNhbWUgYXMgd2luZG93LmV2ZW50OiB0cnVlCitFdmVudCBkZXRhaWxzOgordHlw
ZTogZXJyb3IKK3BoYXNlOiAyCitjdXJyZW50VGFyZ2V0IGlzIHRoZSBnbG9iYWwgb2JqZWN0OiB0
cnVlCittZXNzYWdlOiBFcnJvcjogTXkgZmF1bHQuCitmaWxlbmFtZTogd2luZG93LW9uZXJyb3Ix
MC5odG1sCitsaW5lbm86IDI5CisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRz
L3dpbmRvdy1vbmVycm9yMTAuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3dpbmRvdy1v
bmVycm9yMTAuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yNmVkMDE4
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvd2luZG93LW9uZXJy
b3IxMC5odG1sCkBAIC0wLDAgKzEsMzMgQEAKKzxodG1sPgorPGJvZHk+Cis8cD5UZXN0IHRoYXQg
ImVycm9yIiBldmVudCBsaXN0ZW5lciBhZGRlZCB3aXRoIHdpbmRvdy5hZGRFdmVudExpc3RlbmVy
IGlzIGludm9rZWQgZm9yIHVuY2F1Y2h0IGV4Y2VwdGlvbnMuIDxhIGhyZWY9Imh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04NTE5Ij5CdWcgODUxOTwvYT4uPC9wPgorPGRp
diBpZD0iY29uc29sZSI+PC9kaXY+Cis8c2NyaXB0PgoraWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29u
dHJvbGxlcikKKyAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7CisKK2Z1bmN0
aW9uIGxvZyhtc2cpIHsKKyAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY29uc29sZSIpLmlu
bmVySFRNTCArPSBtc2cgKyAiPGJyPiI7Cit9CisKK2Z1bmN0aW9uIGxhc3RQYXRoQ29tcG9uZW50
KHVybCkgeworICAgIHJldHVybiB1cmwgPyB1cmwubWF0Y2goIC9bXlwvXStcLz8kLyApWzBdIDog
dXJsOworfQorCit3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigiZXJyb3IiLCBmdW5jdGlvbihlKSB7
CisgICAgbG9nKCJldmVudCBwYXNzZWQgdG8gdGhlIGxpc3RlbmVyIGlzIHRoZSBzYW1lIGFzIHdp
bmRvdy5ldmVudDogIiArICh3aW5kb3cuZXZlbnQgPT09IGUpKTsKKyAgICBsb2coIkV2ZW50IGRl
dGFpbHM6Iik7CisgICAgbG9nKCJ0eXBlOiAiICsgZS50eXBlKTsKKyAgICBsb2coInBoYXNlOiAi
ICsgZS5ldmVudFBoYXNlKQorICAgIGxvZygiY3VycmVudFRhcmdldCBpcyB0aGUgZ2xvYmFsIG9i
amVjdDogIiArIChlLmN1cnJlbnRUYXJnZXQgPT09IHdpbmRvdykpOworICAgIGxvZygibWVzc2Fn
ZTogIiArIGUubWVzc2FnZSk7CisgICAgbG9nKCJmaWxlbmFtZTogIiArIGxhc3RQYXRoQ29tcG9u
ZW50KGUuZmlsZW5hbWUpKTsKKyAgICBsb2coImxpbmVubzogIiArIGUubGluZW5vKTsKKyAgICBl
LnByZXZlbnREZWZhdWx0KCk7Cit9LCBmYWxzZSk7CisKK3Rocm93IG5ldyBFcnJvcigiTXkgZmF1
bHQuIik7CisKKzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvZmFzdC9ldmVudHMvd2luZG93LW9uZXJyb3IxMS1leHBlY3RlZC50eHQgYi9MYXlvdXRU
ZXN0cy9mYXN0L2V2ZW50cy93aW5kb3ctb25lcnJvcjExLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45NmUyMGNjCi0tLSAvZGV2L251bGwKKysrIGIvTGF5
b3V0VGVzdHMvZmFzdC9ldmVudHMvd2luZG93LW9uZXJyb3IxMS1leHBlY3RlZC50eHQKQEAgLTAs
MCArMSw0IEBACitUZXN0IHRoYXQgd2luZG93Lm9uZXJyb3IgaXMgY2FsbGVkIG9uIHdpbmRvdyBv
YmplY3QuIEJ1ZyA4NTE5LgorCitNYWluIGZyYW1lIHdpbmRvdy5vbmVycm9yOiBFcnJvcjogQW4g
ZXhjZXB0aW9uIGF0IHdpbmRvdy1vbmVycm9yLmpzOjIKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvZmFzdC9ldmVudHMvd2luZG93LW9uZXJyb3IxMS5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9l
dmVudHMvd2luZG93LW9uZXJyb3IxMS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAuLjc2NTVmYTcKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50
cy93aW5kb3ctb25lcnJvcjExLmh0bWwKQEAgLTAsMCArMSwyOCBAQAorPGh0bWw+Cis8aGVhZD4K
KzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvd2luZG93LW9uZXJyb3IuanMiPgorPC9zY3JpcHQ+Cis8
L2hlYWQ+Cis8Ym9keT4KKzxwPlRlc3QgdGhhdCB3aW5kb3cub25lcnJvciBpcyBjYWxsZWQgb24g
d2luZG93IG9iamVjdC4gPGEgaHJlZj0iaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTg1MTkiPkJ1ZyA4NTE5PC9hPi48L3A+Cis8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4K
KzxzY3JpcHQ+CitpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQorICAgIGxheW91dFRl
c3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKKworZnVuY3Rpb24gbG9nKG1zZykgeworICAgIGRv
Y3VtZW50LmdldEVsZW1lbnRCeUlkKCJjb25zb2xlIikuaW5uZXJIVE1MICs9IG1zZyArICI8YnI+
IjsKK30KKword2luZG93Lm9uZXJyb3IgPSBmdW5jdGlvbihtc2csIHVybCwgbGluZSkKK3sKKyAg
ICB1cmwgPSB1cmwgPyB1cmwubWF0Y2goIC9bXlwvXStcLz8kLyApWzBdIDogdXJsOworICAgIGxv
ZygiTWFpbiBmcmFtZSB3aW5kb3cub25lcnJvcjogIiArIG1zZyArICIgYXQgIiArIHVybCArICI6
IiArIGxpbmUpOworICAgIHJldHVybiBmYWxzZTsKK30KKwordGhyb3dFeGNlcHRpb24oKTsKKwor
PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0
L2V2ZW50cy93aW5kb3ctb25lcnJvcjItZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9l
dmVudHMvd2luZG93LW9uZXJyb3IyLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwLi45M2EyZDNmCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFz
dC9ldmVudHMvd2luZG93LW9uZXJyb3IyLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDYgQEAKK1Rl
c3QgdGhhdCB1bmNhdWdodCBleGNlcHRpb25zIHdpbGwgYmUgcmVwb3J0ZWQgdG8gdGhlIHdpbmRv
dy5vbmVycm9yIGhhbmRsZXIuIEJ1ZyA4NTE5LgorCitNYWluIGZyYW1lIHdpbmRvdy5vbmVycm9y
OiBFcnJvcjogSW5saW5lIHNjcmlwdCBleGNlcHRpb24gYXQgd2luZG93LW9uZXJyb3IyLmh0bWw6
MzUKK01haW4gZnJhbWUgd2luZG93Lm9uZXJyb3I6IEV4Y2VwdGlvbiBpbiBvbmxvYWQgYXQgdW5k
ZWZpbmVkOjAKK01haW4gZnJhbWUgd2luZG93Lm9uZXJyb3I6IEVycm9yOiBFeGNlcHRpb24gaW4g
c2V0VGltZW91dCBhdCB3aW5kb3ctb25lcnJvcjIuaHRtbDoyOQorCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9mYXN0L2V2ZW50cy93aW5kb3ctb25lcnJvcjIuaHRtbCBiL0xheW91dFRlc3RzL2Zh
c3QvZXZlbnRzL3dpbmRvdy1vbmVycm9yMi5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAuLmRiOWZiNzUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2V2
ZW50cy93aW5kb3ctb25lcnJvcjIuaHRtbApAQCAtMCwwICsxLDQxIEBACis8aHRtbD4KKzxib2R5
IG9ubG9hZD0idGhyb3cgJ0V4Y2VwdGlvbiBpbiBvbmxvYWQnOyI+Cis8cD5UZXN0IHRoYXQgdW5j
YXVnaHQgZXhjZXB0aW9ucyB3aWxsIGJlIHJlcG9ydGVkIHRvIHRoZSB3aW5kb3cub25lcnJvciBo
YW5kbGVyLiA8YSBocmVmPSJodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
ODUxOSI+QnVnIDg1MTk8L2E+LjwvcD4KKzxkaXYgaWQ9InJlc3VsdCI+PC9kaXY+Cis8c2NyaXB0
PgoraWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikgeworICAgIGxheW91dFRlc3RDb250
cm9sbGVyLmR1bXBBc1RleHQoKTsKKyAgICBsYXlvdXRUZXN0Q29udHJvbGxlci53YWl0VW50aWxE
b25lKCk7Cit9CisKK2Z1bmN0aW9uIGxvZyhtc2cpIHsKKyAgICBkb2N1bWVudC5nZXRFbGVtZW50
QnlJZCgicmVzdWx0IikuaW5uZXJIVE1MICs9IG1zZyArICI8YnI+IjsKK30KKwordmFyIHVuaGFu
ZGxlZEVycm9yQ291bnQgPSAwOword2luZG93Lm9uZXJyb3IgPSBmdW5jdGlvbihtc2csIHVybCwg
bGluZSkKK3sKKyAgICB1cmwgPSB1cmwgPyB1cmwubWF0Y2goIC9bXlwvXStcLz8kLyApWzBdIDog
dXJsOworICAgIGxvZygiTWFpbiBmcmFtZSB3aW5kb3cub25lcnJvcjogIiArIG1zZyArICIgYXQg
IiArIHVybCArICI6IiArIGxpbmUpOworICAgIAorICAgIGlmICgrK3VuaGFuZGxlZEVycm9yQ291
bnQgPT09IDMgJiYgd2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQorICAgICAgICBsYXlvdXRU
ZXN0Q29udHJvbGxlci5ub3RpZnlEb25lKCk7CisKKyAgICByZXR1cm4gZmFsc2U7Cit9CisKK2Z1
bmN0aW9uIGRlbGF5ZWRUaHJvd0V4Y2VwdGlvbigpCit7CisgICAgdGhyb3cgbmV3IEVycm9yKCJF
eGNlcHRpb24gaW4gc2V0VGltZW91dCIpOworfQorc2V0VGltZW91dChkZWxheWVkVGhyb3dFeGNl
cHRpb24sIDApOworCitmdW5jdGlvbiB0aHJvd0V4Y2VwdGlvbigpCit7CisgICAgdGhyb3cgbmV3
IEVycm9yKCJJbmxpbmUgc2NyaXB0IGV4Y2VwdGlvbiIpOworfQordGhyb3dFeGNlcHRpb24oKTsK
KworPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9m
YXN0L2V2ZW50cy93aW5kb3ctb25lcnJvcjMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFz
dC9ldmVudHMvd2luZG93LW9uZXJyb3IzLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwLi43MDI1ZGJiCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMv
ZmFzdC9ldmVudHMvd2luZG93LW9uZXJyb3IzLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDQgQEAK
K1lvdSBzaG91bGQgc2VlIGEgbWVzc2FnZSBpZiB3aW5kb3cub25lcnJvciBpcyB3b3JraW5nIHBy
b3Blcmx5IGZvciB0aGlzIHRlc3QuQnVnIDg1MTkuCisKK0Vycm9yIGNhdWdodCBzdWNjZXNzZnVs
bHk6IFJlZmVyZW5jZUVycm9yOiBDYW4ndCBmaW5kIHZhcmlhYmxlOiB1bmtub3duT2JqZWN0IEZp
bGU6IHdpbmRvdy1vbmVycm9yMy5odG1sIExpbmU6IDE2CisKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2Zhc3QvZXZlbnRzL3dpbmRvdy1vbmVycm9yMy5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9l
dmVudHMvd2luZG93LW9uZXJyb3IzLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMC4uZWUyODkzZgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRz
L3dpbmRvdy1vbmVycm9yMy5odG1sCkBAIC0wLDAgKzEsMjMgQEAKKzxzY3JpcHQ+CitpZiAod2lu
ZG93LmxheW91dFRlc3RDb250cm9sbGVyKQorICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBB
c1RleHQoKTsKKworZnVuY3Rpb24gbG9nKG1zZykgeworICAgIGRvY3VtZW50LmdldEVsZW1lbnRC
eUlkKCJjb25zb2xlIikuaW5uZXJIVE1MICs9IG1zZyArICI8YnI+IjsKK30KKworZnVuY3Rpb24g
dGVzdDEoKQoreworICAgIHdpbmRvdy5vbmVycm9yID0gZnVuY3Rpb24gKGVycm9yLCB1cmwsIGxp
bmUpIHsKKyAgICAgICAgdXJsID0gdXJsID8gdXJsLm1hdGNoKCAvW15cL10rXC8/JC8gKVswXSA6
IHVybDsKKyAgICAgICAgbG9nKCJFcnJvciBjYXVnaHQgc3VjY2Vzc2Z1bGx5OiAiICsgZXJyb3Ig
KyAiXG5GaWxlOiAiICsgdXJsICsgIlxuTGluZTogIiArIGxpbmUpCisgICAgICAgIHJldHVybiBm
YWxzZTsKKyAgICB9OworICAgIHVua25vd25PYmplY3QudW5rbm93blByb3BlcnR5Kys7Cit9Cis8
L3NjcmlwdD4KKzxib2R5IG9ubG9hZD0idGVzdDEoKTsiPgorPHA+WW91IHNob3VsZCBzZWUgYSBt
ZXNzYWdlIGlmIHdpbmRvdy5vbmVycm9yIGlzIHdvcmtpbmcgcHJvcGVybHkgZm9yIHRoaXMgdGVz
dC48YSBocmVmPSJodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODUxOSI+
QnVnIDg1MTk8L2E+LjwvcD4KKzxocj4KKzxkaXYgaWQ9J2NvbnNvbGUnPjwvZGl2PgorPC9ib2R5
PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvd2luZG93LW9uZXJyb3I0LWV4
cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3dpbmRvdy1vbmVycm9yNC1leHBl
Y3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMjZhZjhhMQotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3dpbmRvdy1vbmVycm9yNC1l
eHBlY3RlZC50eHQKQEAgLTAsMCArMSw0IEBACitZb3Ugc2hvdWxkIHNlZSBhIGxvZyByZWNvcmQg
aWYgd2luZG93Lm9uZXJyb3IgaXMgd29ya2luZyBwcm9wZXJseSBmb3IgdGhpcyB0ZXN0LkJ1ZyA4
NTE5LgorCitFcnJvciBjYXVnaHQgc3VjY2Vzc2Z1bGx5OiBSZWZlcmVuY2VFcnJvcjogTGVmdCBz
aWRlIG9mIGFzc2lnbm1lbnQgaXMgbm90IGEgcmVmZXJlbmNlLiBGaWxlOiB1bmRlZmluZWQgTGlu
ZTogMQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy93aW5kb3ctb25lcnJv
cjQuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3dpbmRvdy1vbmVycm9yNC5odG1sCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmM1MTg4N2QKLS0tIC9kZXYvbnVsbAor
KysgYi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy93aW5kb3ctb25lcnJvcjQuaHRtbApAQCAtMCww
ICsxLDIzIEBACis8c2NyaXB0PgoraWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKKyAg
ICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7CisKK2Z1bmN0aW9uIGxvZyhtc2cp
IHsKKyAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY29uc29sZSIpLmlubmVySFRNTCArPSBt
c2cgKyAiPGJyPiI7Cit9CisKK2Z1bmN0aW9uIHRlc3QxKCkKK3sKKyAgICB3aW5kb3cub25lcnJv
ciA9IGZ1bmN0aW9uIChlcnJvciwgdXJsLCBsaW5lKSB7CisgICAgICAgIHVybCA9IHVybCA/IHVy
bC5tYXRjaCggL1teXC9dK1wvPyQvIClbMF0gOiB1cmw7CisgICAgICAgIGxvZygiRXJyb3IgY2F1
Z2h0IHN1Y2Nlc3NmdWxseTogIiArIGVycm9yICsgIlxuRmlsZTogIiArIHVybCArICJcbkxpbmU6
ICIgKyBsaW5lKQorICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfTsKKyAgICBldmFsKCIxPTIi
KTsKK30KKzwvc2NyaXB0PgorPGJvZHkgb25sb2FkPSJ0ZXN0MSgpOyI+Cis8cD5Zb3Ugc2hvdWxk
IHNlZSBhIGxvZyByZWNvcmQgaWYgd2luZG93Lm9uZXJyb3IgaXMgd29ya2luZyBwcm9wZXJseSBm
b3IgdGhpcyB0ZXN0LjxhIGhyZWY9Imh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD04NTE5Ij5CdWcgODUxOTwvYT4uPC9wPgorPGhyPgorPGRpdiBpZD0nY29uc29sZSc+PC9k
aXY+Cis8L2JvZHk+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy93aW5kb3ct
b25lcnJvcjUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvd2luZG93LW9u
ZXJyb3I1LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4z
ZWM3ZjVlCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvd2luZG93
LW9uZXJyb3I1LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDQgQEAKK1Rlc3QgdGhhdCB3aW5kb3cu
b25lcnJvciBpcyBpbnZva2VkIGZvciBzeW50YXggZXJyb3IgaW4gZXZhbC4gWW91IHNob3VsZCBz
ZWUgYSBsb2cgcmVjb3JkIGlmIHdpbmRvdy5vbmVycm9yIGlzIHdvcmtpbmcgcHJvcGVybHkgZm9y
IHRoaXMgdGVzdC5CdWcgODUxOS4KKworRXJyb3IgY2F1Z2h0IHN1Y2Nlc3NmdWxseTogU3ludGF4
RXJyb3I6IFBhcnNlIGVycm9yIEZpbGU6IHVuZGVmaW5lZCBMaW5lOiAxCisKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3dpbmRvdy1vbmVycm9yNS5odG1sIGIvTGF5b3V0VGVz
dHMvZmFzdC9ldmVudHMvd2luZG93LW9uZXJyb3I1Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMC4uOTMyZDQzOAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zh
c3QvZXZlbnRzL3dpbmRvdy1vbmVycm9yNS5odG1sCkBAIC0wLDAgKzEsMjMgQEAKKzxzY3JpcHQ+
CitpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQorICAgIGxheW91dFRlc3RDb250cm9s
bGVyLmR1bXBBc1RleHQoKTsKKworZnVuY3Rpb24gbG9nKG1zZykgeworICAgIGRvY3VtZW50Lmdl
dEVsZW1lbnRCeUlkKCJjb25zb2xlIikuaW5uZXJIVE1MICs9IG1zZyArICI8YnI+IjsKK30KKwor
ZnVuY3Rpb24gdGVzdDEoKQoreworICAgIHdpbmRvdy5vbmVycm9yID0gZnVuY3Rpb24gKGVycm9y
LCB1cmwsIGxpbmUpIHsKKyAgICAgICAgdXJsID0gdXJsID8gdXJsLm1hdGNoKCAvW15cL10rXC8/
JC8gKVswXSA6IHVybDsKKyAgICAgICAgbG9nKCJFcnJvciBjYXVnaHQgc3VjY2Vzc2Z1bGx5OiAi
ICsgZXJyb3IgKyAiXG5GaWxlOiAiICsgdXJsICsgIlxuTGluZTogIiArIGxpbmUpCisgICAgICAg
IHJldHVybiBmYWxzZTsKKyAgICB9OworICAgIGV2YWwoImEoIik7Cit9Cis8L3NjcmlwdD4KKzxi
b2R5IG9ubG9hZD0idGVzdDEoKTsiPgorPHA+VGVzdCB0aGF0IHdpbmRvdy5vbmVycm9yIGlzIGlu
dm9rZWQgZm9yIHN5bnRheCBlcnJvciBpbiBldmFsLiBZb3Ugc2hvdWxkIHNlZSBhIGxvZyByZWNv
cmQgaWYgd2luZG93Lm9uZXJyb3IgaXMgd29ya2luZyBwcm9wZXJseSBmb3IgdGhpcyB0ZXN0Ljxh
IGhyZWY9Imh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04NTE5Ij5CdWcg
ODUxOTwvYT4uPC9wPgorPGhyPgorPGRpdiBpZD0nY29uc29sZSc+PC9kaXY+Cis8L2JvZHk+CmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy93aW5kb3ctb25lcnJvcjYtZXhwZWN0
ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvd2luZG93LW9uZXJyb3I2LWV4cGVjdGVk
LnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lN2MyN2JiCi0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvd2luZG93LW9uZXJyb3I2LWV4cGVj
dGVkLnR4dApAQCAtMCwwICsxLDQgQEAKK1Rlc3QgdGhhdCBzeW50YXggZXJyb3Igd2lsbCBiZSBy
ZXBvcnRlZCB0byB0aGUgd2luZG93Lm9uZXJyb3IgaGFuZGxlci4gQnVnIDg1MTkuCisKK01haW4g
ZnJhbWUgd2luZG93Lm9uZXJyb3I6IFN5bnRheEVycm9yOiBQYXJzZSBlcnJvciBhdCB3aW5kb3ct
b25lcnJvcjYuaHRtbDoyMgorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy93
aW5kb3ctb25lcnJvcjYuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3dpbmRvdy1vbmVy
cm9yNi5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjE5Nzg0MzYKLS0t
IC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy93aW5kb3ctb25lcnJvcjYu
aHRtbApAQCAtMCwwICsxLDI2IEBACis8aHRtbD4KKzxib2R5PgorPHA+VGVzdCB0aGF0IHN5bnRh
eCBlcnJvciB3aWxsIGJlIHJlcG9ydGVkIHRvIHRoZSB3aW5kb3cub25lcnJvciBoYW5kbGVyLiA8
YSBocmVmPSJodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODUxOSI+QnVn
IDg1MTk8L2E+LjwvcD4KKzxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgorPHNjcmlwdD4KK2lmICh3
aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCisgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVt
cEFzVGV4dCgpOworCitmdW5jdGlvbiBsb2cobXNnKSB7CisgICAgZG9jdW1lbnQuZ2V0RWxlbWVu
dEJ5SWQoImNvbnNvbGUiKS5pbm5lckhUTUwgKz0gbXNnICsgIjxicj4iOworfQorCit3aW5kb3cu
b25lcnJvciA9IGZ1bmN0aW9uKG1zZywgdXJsLCBsaW5lKQoreworICAgIHVybCA9IHVybCA/IHVy
bC5tYXRjaCggL1teXC9dK1wvPyQvIClbMF0gOiB1cmw7CisgICAgbG9nKCJNYWluIGZyYW1lIHdp
bmRvdy5vbmVycm9yOiAiICsgbXNnICsgIiBhdCAiICsgdXJsICsgIjoiICsgbGluZSk7CisgICAg
cmV0dXJuIGZhbHNlOworfQorPC9zY3JpcHQ+Cis8c2NyaXB0PgorCithKSAvLyBzeW50YXggZXJy
b3IKKworPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9mYXN0L2V2ZW50cy93aW5kb3ctb25lcnJvcjctZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMv
ZmFzdC9ldmVudHMvd2luZG93LW9uZXJyb3I3LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwLi41ZDIyZTdlCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvZmFzdC9ldmVudHMvd2luZG93LW9uZXJyb3I3LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDYg
QEAKK0NPTlNPTEUgTUVTU0FHRTogbGluZSAyMDogRXJyb3I6IE9yaWdpbmFsIGVycm9yCitDT05T
T0xFIE1FU1NBR0U6IGxpbmUgMTc6IEVycm9yOiBOZXN0ZWQgZXJyb3IKK1Rlc3QgdGhhdCBleGNl
cHRpb24gaW4gd2luZG93Lm9uZXJyb3Igd29uJ3QgbGVhZCB0byByZWN1cnNpdmUgd2luZG93Lm9u
ZXJyb3IgY2FsbC4gQnVnIDg1MTkuCisKK01haW4gZnJhbWUgd2luZG93Lm9uZXJyb3I6IEVycm9y
OiBPcmlnaW5hbCBlcnJvciBhdCB3aW5kb3ctb25lcnJvcjcuaHRtbDoyMAorCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy93aW5kb3ctb25lcnJvcjcuaHRtbCBiL0xheW91dFRl
c3RzL2Zhc3QvZXZlbnRzL3dpbmRvdy1vbmVycm9yNy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAuLmY2NjU2ODYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9m
YXN0L2V2ZW50cy93aW5kb3ctb25lcnJvcjcuaHRtbApAQCAtMCwwICsxLDI0IEBACis8aHRtbD4K
Kzxib2R5PgorPHA+VGVzdCB0aGF0IGV4Y2VwdGlvbiBpbiB3aW5kb3cub25lcnJvciB3b24ndCBs
ZWFkIHRvIHJlY3Vyc2l2ZSB3aW5kb3cub25lcnJvciBjYWxsLiA8YSBocmVmPSJodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODUxOSI+QnVnIDg1MTk8L2E+LjwvcD4KKzxk
aXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgorPHNjcmlwdD4KK2lmICh3aW5kb3cubGF5b3V0VGVzdENv
bnRyb2xsZXIpCisgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOworCitmdW5j
dGlvbiBsb2cobXNnKSB7CisgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNvbnNvbGUiKS5p
bm5lckhUTUwgKz0gbXNnICsgIjxicj4iOworfQorCit3aW5kb3cub25lcnJvciA9IGZ1bmN0aW9u
KG1zZywgdXJsLCBsaW5lKQoreworICAgIHVybCA9IHVybCA/IHVybC5tYXRjaCggL1teXC9dK1wv
PyQvIClbMF0gOiB1cmw7CisgICAgbG9nKCJNYWluIGZyYW1lIHdpbmRvdy5vbmVycm9yOiAiICsg
bXNnICsgIiBhdCAiICsgdXJsICsgIjoiICsgbGluZSk7CisgICAgdGhyb3cgbmV3IEVycm9yKCJO
ZXN0ZWQgZXJyb3IiKTsKK30KKwordGhyb3cgbmV3IEVycm9yKCJPcmlnaW5hbCBlcnJvciIpOwor
Cis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zh
c3QvZXZlbnRzL3dpbmRvdy1vbmVycm9yOC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0
L2V2ZW50cy93aW5kb3ctb25lcnJvcjgtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAuLmVmYzYzMDgKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9m
YXN0L2V2ZW50cy93aW5kb3ctb25lcnJvcjgtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNSBAQAor
VGVzdCB0aGF0IHdpbmRvdy5vbmVycm9yIGlzIGNhbGxlZCBvbiB3aW5kb3cgb2JqZWN0LiBCdWcg
ODUxOS4KKworTWFpbiBmcmFtZSB3aW5kb3cub25lcnJvcjogMjAxMCBhdCB1bmRlZmluZWQ6MAor
UEFTU0VEOiB0aGlzID09PSB3aW5kb3cKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9l
dmVudHMvd2luZG93LW9uZXJyb3I4Lmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy93aW5k
b3ctb25lcnJvcjguaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iYWRl
NTM4Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvd2luZG93LW9u
ZXJyb3I4Lmh0bWwKQEAgLTAsMCArMSwyOCBAQAorPGh0bWw+Cis8Ym9keT4KKzxwPlRlc3QgdGhh
dCB3aW5kb3cub25lcnJvciBpcyBjYWxsZWQgb24gd2luZG93IG9iamVjdC4gPGEgaHJlZj0iaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTg1MTkiPkJ1ZyA4NTE5PC9hPi48
L3A+Cis8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KKzxzY3JpcHQ+CitpZiAod2luZG93LmxheW91
dFRlc3RDb250cm9sbGVyKQorICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsK
KworZnVuY3Rpb24gbG9nKG1zZykgeworICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjb25z
b2xlIikuaW5uZXJIVE1MICs9IG1zZyArICI8YnI+IjsKK30KKword2luZG93Lm9uZXJyb3IgPSBm
dW5jdGlvbihtc2csIHVybCwgbGluZSkKK3sKKyAgICB1cmwgPSB1cmwgPyB1cmwubWF0Y2goIC9b
XlwvXStcLz8kLyApWzBdIDogdXJsOworICAgIGxvZygiTWFpbiBmcmFtZSB3aW5kb3cub25lcnJv
cjogIiArIG1zZyArICIgYXQgIiArIHVybCArICI6IiArIGxpbmUpOworICAgIGlmICh0aGlzID09
PSB3aW5kb3cpIAorICAgICAgICBsb2coIlBBU1NFRDogdGhpcyA9PT0gd2luZG93Iik7CisgICAg
ZWxzZQorICAgICAgICBsb2coIkZBSUxFRDogdGhpcyA9PT0gd2luZG93Iik7CisgICAgcmV0dXJu
IGZhbHNlOworfQorCit0aHJvdyAyMDEwOworCis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4K
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3dpbmRvdy1vbmVycm9yOS1leHBl
Y3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy93aW5kb3ctb25lcnJvcjktZXhwZWN0
ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjk0MzE2ZDMKLS0tIC9k
ZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy93aW5kb3ctb25lcnJvcjktZXhw
ZWN0ZWQudHh0CkBAIC0wLDAgKzEsOCBAQAorVGVzdCB0aGF0IHdoZW4gd2luZG93Lm9uZXJyb3Ig
aGFuZGxlciBpcyBjYWxsZWQsIHdpbmRvdy5ldmVudCBpcyB0aGUgY29ycmVzcG9uZGluZyBFcnJv
ckV2ZW50IG9iamVjdC4gQnVnIDg1MTkuCisKK01haW4gZnJhbWUgd2luZG93Lm9uZXJyb3I6IEVy
cm9yOiAyMDEwIGF0IHdpbmRvdy1vbmVycm9yOS5odG1sOjMxCit3aW5kb3cuZXZlbnQudHlwZSA9
IGVycm9yCit3aW5kb3cuZXZlbnQubWVzc2FnZSA9IEVycm9yOiAyMDEwCit3aW5kb3cuZXZlbnQu
ZmlsZW5hbWUgPSB3aW5kb3ctb25lcnJvcjkuaHRtbAord2luZG93LmV2ZW50LmxpbmVubyA9IDMx
CisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3dpbmRvdy1vbmVycm9yOS5o
dG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvd2luZG93LW9uZXJyb3I5Lmh0bWwKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMTA4NmFjZQotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3dpbmRvdy1vbmVycm9yOS5odG1sCkBAIC0wLDAgKzEs
MzUgQEAKKzxodG1sPgorPGJvZHk+Cis8cD5UZXN0IHRoYXQgd2hlbiB3aW5kb3cub25lcnJvciBo
YW5kbGVyIGlzIGNhbGxlZCwgd2luZG93LmV2ZW50IGlzIHRoZSBjb3JyZXNwb25kaW5nIEVycm9y
RXZlbnQgb2JqZWN0LiA8YSBocmVmPSJodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9ODUxOSI+QnVnIDg1MTk8L2E+LjwvcD4KKzxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2Pgor
PHNjcmlwdD4KK2lmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpIHsKKyAgICBsYXlvdXRU
ZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7CisgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIud2Fp
dFVudGlsRG9uZSgpOworfQorCitmdW5jdGlvbiBsb2cobXNnKSB7CisgICAgZG9jdW1lbnQuZ2V0
RWxlbWVudEJ5SWQoImNvbnNvbGUiKS5pbm5lckhUTUwgKz0gbXNnICsgIjxicj4iOworfQorCitm
dW5jdGlvbiBsYXN0UGF0aENvbXBvbmVudCh1cmwpIHsKKyAgICByZXR1cm4gdXJsID8gdXJsLm1h
dGNoKCAvW15cL10rXC8/JC8gKVswXSA6IHVybDsKK30KKword2luZG93Lm9uZXJyb3IgPSBmdW5j
dGlvbihtc2csIHVybCwgbGluZSkKK3sKKyAgICBsb2coIk1haW4gZnJhbWUgd2luZG93Lm9uZXJy
b3I6ICIgKyBtc2cgKyAiIGF0ICIgKyBsYXN0UGF0aENvbXBvbmVudCh1cmwpICsgIjoiICsgbGlu
ZSk7CisgICAgbG9nKCJ3aW5kb3cuZXZlbnQudHlwZSA9ICIgKyB3aW5kb3cuZXZlbnQudHlwZSk7
CisgICAgbG9nKCJ3aW5kb3cuZXZlbnQubWVzc2FnZSA9ICIgKyB3aW5kb3cuZXZlbnQubWVzc2Fn
ZSk7CisgICAgbG9nKCJ3aW5kb3cuZXZlbnQuZmlsZW5hbWUgPSAiICsgbGFzdFBhdGhDb21wb25l
bnQod2luZG93LmV2ZW50LmZpbGVuYW1lKSk7CisgICAgbG9nKCJ3aW5kb3cuZXZlbnQubGluZW5v
ID0gIiArIHdpbmRvdy5ldmVudC5saW5lbm8pOworICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENv
bnRyb2xsZXIpCisgICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLm5vdGlmeURvbmUoKTsKKyAg
ICByZXR1cm4gZmFsc2U7Cit9CisKK3Rocm93IG5ldyBFcnJvcigyMDEwKTsKKworPC9zY3JpcHQ+
Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3dvcmtlcnMv
d29ya2VyLXNjcmlwdC1lcnJvci1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L3dvcmtl
cnMvd29ya2VyLXNjcmlwdC1lcnJvci1leHBlY3RlZC50eHQKaW5kZXggMTBhYjA0OS4uNDA0MTY0
MCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC93b3JrZXJzL3dvcmtlci1zY3JpcHQtZXJy
b3ItZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2Zhc3Qvd29ya2Vycy93b3JrZXItc2Ny
aXB0LWVycm9yLWV4cGVjdGVkLnR4dApAQCAtNCw4ICs0LDggQEAgVGVzdCBXb3JrZXIgc2NyaXB0
IGVycm9yIGhhbmRsaW5nIGZ1bmN0aW9uYWxpdHkuIFNob3VsZCBwcmludCBhIHNlcmllcyBvZiBQ
QVNTIG0KIFBBU1M6IG9uZXJyb3IgaW52b2tlZCBmb3IgYSBzY3JpcHQgdGhhdCBoYXMgaW52YWxp
ZCBzeW50YXguCiBQQVNTOiBvbmVycm9yIGludm9rZWQgZm9yIGEgc2NyaXB0IHRoYXQgaGFzIHNj
cmlwdCBlcnJvciAnUmVmZXJlbmNlRXJyb3I6IENhbid0IGZpbmQgdmFyaWFibGU6IGZvbycgYXQg
bGluZSAxLgogUEFTUzogZXZlbnQgbGlzdGVuZXIgaW52b2tlZCBmb3IgYSBzY3JpcHQgdGhhdCBo
YXMgc2NyaXB0IGVycm9yICdSZWZlcmVuY2VFcnJvcjogQ2FuJ3QgZmluZCB2YXJpYWJsZTogZm9v
JyBhdCBsaW5lIDEuCi1QQVNTOiBvbmVycm9yIGludm9rZWQgZm9yIGEgc2NyaXB0IHRoYXQgaGFz
IHNjcmlwdCBlcnJvciAnUmVmZXJlbmNlRXJyb3I6IENhbid0IGZpbmQgdmFyaWFibGU6IGJhcicg
YXQgbGluZSAzLgogUEFTUzogb25lcnJvciBpbnZva2VkIGZvciBhIHNjcmlwdCB0aGF0IGhhcyBz
Y3JpcHQgZXJyb3IgJ1JlZmVyZW5jZUVycm9yOiBDYW4ndCBmaW5kIHZhcmlhYmxlOiBmb28nIGF0
IGxpbmUgNy4KK1BBU1M6IG9uZXJyb3IgaW52b2tlZCBmb3IgYSBzY3JpcHQgdGhhdCBoYXMgc2Ny
aXB0IGVycm9yICdSZWZlcmVuY2VFcnJvcjogQ2FuJ3QgZmluZCB2YXJpYWJsZTogYmFyJyBhdCBs
aW5lIDMuCiBQQVNTOiBvbmVycm9yIGludm9rZWQgZm9yIGEgc2NyaXB0IHRoYXQgaGFzIHNjcmlw
dCBlcnJvciAnUmVmZXJlbmNlRXJyb3I6IENhbid0IGZpbmQgdmFyaWFibGU6IGZvbycgYXQgbGlu
ZSA3LgogUEFTUzogb25lcnJvciBpbnZva2VkIGZvciBhIHNjcmlwdCB0aGF0IGhhcyBzY3JpcHQg
ZXJyb3IgJ1JlZmVyZW5jZUVycm9yOiBDYW4ndCBmaW5kIHZhcmlhYmxlOiBmb28nIGF0IGxpbmUg
Ny4KIFBBU1M6IG1lc3NhZ2UgcmVjZWl2ZWQgZnJvbSBXb3JrZXJHbG9iYWxTY29wZS5vbmVycm9y
OiBvbmVycm9yIGludm9rZWQgZm9yIGEgc2NyaXB0IHRoYXQgaGFzIHNjcmlwdCBlcnJvciAnUmVm
ZXJlbmNlRXJyb3I6IENhbid0IGZpbmQgdmFyaWFibGU6IGZvbycgYXQgbGluZSA3LgpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9yZXNvdXJjZXMvb25lcnJvci1p
ZnJhbWUuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvcmVzb3VyY2VzL29u
ZXJyb3ItaWZyYW1lLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMzEy
ZmQxMgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkv
cmVzb3VyY2VzL29uZXJyb3ItaWZyYW1lLmh0bWwKQEAgLTAsMCArMSwxMSBAQAorPHNjcmlwdD4K
K2Z1bmN0aW9uIGhhbmRsZUxvYWQoKQoreworICAgIHdpbmRvdy5wYXJlbnQucG9zdE1lc3NhZ2Uo
IklGcmFtZUxvYWRlZCIsICIqIik7Cit9CisKK3Rocm93ICJJZnJhbWVFeGNlcHRpb24iOworCis8
L3NjcmlwdD4KKzxib2R5IG9ubG9hZD0iaGFuZGxlTG9hZCgpIj4KKzwvYm9keT4KZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvd2luZG93LW9uZXJyb3ItZXhjZXB0
aW9uLWluLWlmcmFtZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3Vy
aXR5L3dpbmRvdy1vbmVycm9yLWV4Y2VwdGlvbi1pbi1pZnJhbWUtZXhwZWN0ZWQudHh0Cm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjhiMTdkOTIKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L3dpbmRvdy1vbmVycm9yLWV4Y2VwdGlv
bi1pbi1pZnJhbWUtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNiBAQAorQ09OU09MRSBNRVNTQUdF
OiBsaW5lIDA6IElmcmFtZUV4Y2VwdGlvbgorVGVzdCB0aGF0IGV4Y2VwdGlvbnMgaW4gaWZyYW1l
IGFyZSBub3QgcmVwb3J0ZWQgdG8gdGhlIG1haW4gZnJhbWUgd2luZG93Lm9uZXJyb3IgaGFuZGxl
ci4gd2luZG93Lm9uZXJyb3Igc2hvdWxkIHByaW50IGV4YWN0bHkgb25lIGxpbmUuCisKK01haW4g
ZnJhbWUgd2luZG93Lm9uZXJyb3I6IE1haW5GcmFtZUV4Y2VwdGlvbiBhdCB1bmRlZmluZWQ6MAor
RE9ORQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L3dpbmRv
dy1vbmVycm9yLWV4Y2VwdGlvbi1pbi1pZnJhbWUuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVz
dHMvc2VjdXJpdHkvd2luZG93LW9uZXJyb3ItZXhjZXB0aW9uLWluLWlmcmFtZS5odG1sCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjA5MDRlMzkKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L3dpbmRvdy1vbmVycm9yLWV4Y2VwdGlv
bi1pbi1pZnJhbWUuaHRtbApAQCAtMCwwICsxLDM5IEBACis8aHRtbD4KKzxib2R5PgorPHA+VGVz
dCB0aGF0IGV4Y2VwdGlvbnMgaW4gaWZyYW1lIGFyZSBub3QgcmVwb3J0ZWQgdG8gdGhlIG1haW4g
ZnJhbWUgd2luZG93Lm9uZXJyb3IgaGFuZGxlci4KK3dpbmRvdy5vbmVycm9yIHNob3VsZCBwcmlu
dCBleGFjdGx5IG9uZSBsaW5lLjwvcD4KKzxkaXYgaWQ9InJlc3VsdCI+PC9kaXY+Cis8c2NyaXB0
PgoraWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikgeworICAgIGxheW91dFRlc3RDb250
cm9sbGVyLmR1bXBBc1RleHQoKTsKKyAgICBsYXlvdXRUZXN0Q29udHJvbGxlci53YWl0VW50aWxE
b25lKCk7Cit9CisKK2Z1bmN0aW9uIGxvZyhtc2cpIHsKKyAgICBkb2N1bWVudC5nZXRFbGVtZW50
QnlJZCgicmVzdWx0IikuaW5uZXJIVE1MICs9IG1zZyArICI8YnI+IjsKK30KKword2luZG93Lm9u
ZXJyb3IgPSBmdW5jdGlvbihtc2csIHVybCwgbGluZSkKK3sKKyAgICB1cmwgPSB1cmwgPyB1cmwu
bWF0Y2goIC9bXlwvXStcLz8kLyApWzBdIDogdXJsOworICAgIGxvZygiTWFpbiBmcmFtZSB3aW5k
b3cub25lcnJvcjogIiArIG1zZyArICIgYXQgIiArIHVybCArICI6IiArIGxpbmUpOworICAgIHJl
dHVybiBmYWxzZTsKK30KKworZnVuY3Rpb24gcmVjZWl2ZU1lc3NhZ2UoZXZlbnQpIHsKKyAgICBp
ZiAoZXZlbnQuZGF0YSA9PT0gIklGcmFtZUxvYWRlZCIpIHsKKyAgICAgICAgbG9nKCJET05FIik7
CisgICAgICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCisgICAgICAgICAgICBs
YXlvdXRUZXN0Q29udHJvbGxlci5ub3RpZnlEb25lKCk7CisgICAgfSBlbHNlCisgICAgICAgIGxv
ZygiRkFJTCAiICsgZXZlbnQuZGF0YSk7Cit9CisKK3dpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJt
ZXNzYWdlIiwgcmVjZWl2ZU1lc3NhZ2UsIGZhbHNlKTsKKwordGhyb3cgIk1haW5GcmFtZUV4Y2Vw
dGlvbiI7CisKKzwvc2NyaXB0PgorPGlmcmFtZSBzcmM9Imh0dHA6Ly9sb2NhbGhvc3Q6ODAwMC9z
ZWN1cml0eS9yZXNvdXJjZXMvb25lcnJvci1pZnJhbWUuaHRtbCIvPgorPC9ib2R5PgorPC9odG1s
PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0td2luL2Zhc3Qvd29y
a2Vycy93b3JrZXItc2NyaXB0LWVycm9yLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3BsYXRm
b3JtL2Nocm9taXVtLXdpbi9mYXN0L3dvcmtlcnMvd29ya2VyLXNjcmlwdC1lcnJvci1leHBlY3Rl
ZC50eHQKaW5kZXggZmRmNjYwYi4uZWYwYTM5MSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxh
dGZvcm0vY2hyb21pdW0td2luL2Zhc3Qvd29ya2Vycy93b3JrZXItc2NyaXB0LWVycm9yLWV4cGVj
dGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS13aW4vZmFzdC93b3Jr
ZXJzL3dvcmtlci1zY3JpcHQtZXJyb3ItZXhwZWN0ZWQudHh0CkBAIC0zLDggKzMsOCBAQCBUZXN0
IFdvcmtlciBzY3JpcHQgZXJyb3IgaGFuZGxpbmcgZnVuY3Rpb25hbGl0eS4gU2hvdWxkIHByaW50
IGEgc2VyaWVzIG9mIFBBU1MgbQogUEFTUzogb25lcnJvciBpbnZva2VkIGZvciBhIHNjcmlwdCB0
aGF0IGhhcyBpbnZhbGlkIHN5bnRheC4KIFBBU1M6IG9uZXJyb3IgaW52b2tlZCBmb3IgYSBzY3Jp
cHQgdGhhdCBoYXMgc2NyaXB0IGVycm9yICdVbmNhdWdodCBSZWZlcmVuY2VFcnJvcjogZm9vIGlz
IG5vdCBkZWZpbmVkJyBhdCBsaW5lIDEuCiBQQVNTOiBldmVudCBsaXN0ZW5lciBpbnZva2VkIGZv
ciBhIHNjcmlwdCB0aGF0IGhhcyBzY3JpcHQgZXJyb3IgJ1VuY2F1Z2h0IFJlZmVyZW5jZUVycm9y
OiBmb28gaXMgbm90IGRlZmluZWQnIGF0IGxpbmUgMS4KLVBBU1M6IG9uZXJyb3IgaW52b2tlZCBm
b3IgYSBzY3JpcHQgdGhhdCBoYXMgc2NyaXB0IGVycm9yICdVbmNhdWdodCBSZWZlcmVuY2VFcnJv
cjogYmFyIGlzIG5vdCBkZWZpbmVkJyBhdCBsaW5lIDMuCiBQQVNTOiBvbmVycm9yIGludm9rZWQg
Zm9yIGEgc2NyaXB0IHRoYXQgaGFzIHNjcmlwdCBlcnJvciAnVW5jYXVnaHQgUmVmZXJlbmNlRXJy
b3I6IGZvbyBpcyBub3QgZGVmaW5lZCcgYXQgbGluZSA3LgorUEFTUzogb25lcnJvciBpbnZva2Vk
IGZvciBhIHNjcmlwdCB0aGF0IGhhcyBzY3JpcHQgZXJyb3IgJ1VuY2F1Z2h0IFJlZmVyZW5jZUVy
cm9yOiBiYXIgaXMgbm90IGRlZmluZWQnIGF0IGxpbmUgMy4KIFBBU1M6IG9uZXJyb3IgaW52b2tl
ZCBmb3IgYSBzY3JpcHQgdGhhdCBoYXMgc2NyaXB0IGVycm9yICdVbmNhdWdodCBSZWZlcmVuY2VF
cnJvcjogZm9vIGlzIG5vdCBkZWZpbmVkJyBhdCBsaW5lIDcuCiBQQVNTOiBvbmVycm9yIGludm9r
ZWQgZm9yIGEgc2NyaXB0IHRoYXQgaGFzIHNjcmlwdCBlcnJvciAnVW5jYXVnaHQgUmVmZXJlbmNl
RXJyb3I6IGZvbyBpcyBub3QgZGVmaW5lZCcgYXQgbGluZSA3LgogUEFTUzogbWVzc2FnZSByZWNl
aXZlZCBmcm9tIFdvcmtlckdsb2JhbFNjb3BlLm9uZXJyb3I6IG9uZXJyb3IgaW52b2tlZCBmb3Ig
YSBzY3JpcHQgdGhhdCBoYXMgc2NyaXB0IGVycm9yICdVbmNhdWdodCBSZWZlcmVuY2VFcnJvcjog
Zm9vIGlzIG5vdCBkZWZpbmVkJyBhdCBsaW5lIDcuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9w
bGF0Zm9ybS9jaHJvbWl1bS9mYXN0L2V2ZW50cy93aW5kb3ctb25lcnJvcjEtZXhwZWN0ZWQudHh0
IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vZmFzdC9ldmVudHMvd2luZG93LW9uZXJy
b3IxLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42NWI2
MjRiCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vZmFz
dC9ldmVudHMvd2luZG93LW9uZXJyb3IxLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDMgQEAKK1Ro
aXMgcGFnZSB0ZXN0cyBzZXR0aW5nIG9uZXJyb3IgaGFuZGxlcnMgdGhyb3VnaCB0aGUgRE9NLiBJ
ZiBpdCBwYXNzZXMsIHlvdSB3aWxsIHNlZSAiUEFTUyIgbWVzc2FnZXMgYmVsb3cuQnVnIDg1MTku
DQorDQorUEFTUzogY2F1Z2h0IGdsb2JhbCBlcnJvcjogVW5jYXVnaHQgUmVmZXJlbmNlRXJyb3I6
IGhhaGFoYV9nb29kX2x1Y2tfZmluZGluZ19tZSBpcyBub3QgZGVmaW5lZCBhdCB3aW5kb3ctb25l
cnJvcjEuaHRtbDoyNQ0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVt
L2Zhc3QvZXZlbnRzL3dpbmRvdy1vbmVycm9yMTAtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMv
cGxhdGZvcm0vY2hyb21pdW0vZmFzdC9ldmVudHMvd2luZG93LW9uZXJyb3IxMC1leHBlY3RlZC50
eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYjNkMmQzOQotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL2Zhc3QvZXZlbnRzL3dpbmRv
dy1vbmVycm9yMTAtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTEgQEAKK1Rlc3QgdGhhdCAiZXJy
b3IiIGV2ZW50IGxpc3RlbmVyIGFkZGVkIHdpdGggd2luZG93LmFkZEV2ZW50TGlzdGVuZXIgaXMg
aW52b2tlZCBmb3IgdW5jYXVjaHQgZXhjZXB0aW9ucy4gQnVnIDg1MTkuDQorDQorZXZlbnQgcGFz
c2VkIHRvIHRoZSBsaXN0ZW5lciBpcyB0aGUgc2FtZSBhcyB3aW5kb3cuZXZlbnQ6IHRydWUNCitF
dmVudCBkZXRhaWxzOg0KK3R5cGU6IGVycm9yDQorcGhhc2U6IDINCitjdXJyZW50VGFyZ2V0IGlz
IHRoZSBnbG9iYWwgb2JqZWN0OiB0cnVlDQorbWVzc2FnZTogVW5jYXVnaHQgRXJyb3I6IE15IGZh
dWx0Lg0KK2ZpbGVuYW1lOiB3aW5kb3ctb25lcnJvcjEwLmh0bWwNCitsaW5lbm86IDI5DQorDQpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vZmFzdC9ldmVudHMvd2lu
ZG93LW9uZXJyb3IxMS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1
bS9mYXN0L2V2ZW50cy93aW5kb3ctb25lcnJvcjExLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwLi45MmUzY2Y1Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0
VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vZmFzdC9ldmVudHMvd2luZG93LW9uZXJyb3IxMS1leHBl
Y3RlZC50eHQKQEAgLTAsMCArMSw0IEBACitUZXN0IHRoYXQgd2luZG93Lm9uZXJyb3IgaXMgY2Fs
bGVkIG9uIHdpbmRvdyBvYmplY3QuIEJ1ZyA4NTE5Lg0KKw0KK01haW4gZnJhbWUgd2luZG93Lm9u
ZXJyb3I6IFVuY2F1Z2h0IEVycm9yOiBBbiBleGNlcHRpb24gYXQgd2luZG93LW9uZXJyb3IuanM6
Mg0KKw0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL2Zhc3QvZXZl
bnRzL3dpbmRvdy1vbmVycm9yMi1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9j
aHJvbWl1bS9mYXN0L2V2ZW50cy93aW5kb3ctb25lcnJvcjItZXhwZWN0ZWQudHh0Cm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmY3YjE2MjEKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS9mYXN0L2V2ZW50cy93aW5kb3ctb25lcnJvcjIt
ZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNiBAQAorVGVzdCB0aGF0IHVuY2F1Z2h0IGV4Y2VwdGlv
bnMgd2lsbCBiZSByZXBvcnRlZCB0byB0aGUgd2luZG93Lm9uZXJyb3IgaGFuZGxlci4gQnVnIDg1
MTkuDQorDQorTWFpbiBmcmFtZSB3aW5kb3cub25lcnJvcjogVW5jYXVnaHQgRXJyb3I6IElubGlu
ZSBzY3JpcHQgZXhjZXB0aW9uIGF0IHdpbmRvdy1vbmVycm9yMi5odG1sOjM1DQorTWFpbiBmcmFt
ZSB3aW5kb3cub25lcnJvcjogVW5jYXVnaHQgRXhjZXB0aW9uIGluIG9ubG9hZCBhdCB3aW5kb3ct
b25lcnJvcjIuaHRtbDoyDQorTWFpbiBmcmFtZSB3aW5kb3cub25lcnJvcjogVW5jYXVnaHQgRXJy
b3I6IEV4Y2VwdGlvbiBpbiBzZXRUaW1lb3V0IGF0IHdpbmRvdy1vbmVycm9yMi5odG1sOjI5DQor
DQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vZmFzdC9ldmVudHMv
d2luZG93LW9uZXJyb3IzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9t
aXVtL2Zhc3QvZXZlbnRzL3dpbmRvdy1vbmVycm9yMy1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYTFiOGJkNQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL2Zhc3QvZXZlbnRzL3dpbmRvdy1vbmVycm9yMy1leHBl
Y3RlZC50eHQKQEAgLTAsMCArMSw0IEBACitZb3Ugc2hvdWxkIHNlZSBhIG1lc3NhZ2UgaWYgd2lu
ZG93Lm9uZXJyb3IgaXMgd29ya2luZyBwcm9wZXJseSBmb3IgdGhpcyB0ZXN0LkJ1ZyA4NTE5Lg0K
Kw0KK0Vycm9yIGNhdWdodCBzdWNjZXNzZnVsbHk6IFVuY2F1Z2h0IFJlZmVyZW5jZUVycm9yOiB1
bmtub3duT2JqZWN0IGlzIG5vdCBkZWZpbmVkIEZpbGU6IHdpbmRvdy1vbmVycm9yMy5odG1sIExp
bmU6IDE2DQorDQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vZmFz
dC9ldmVudHMvd2luZG93LW9uZXJyb3I0LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3BsYXRm
b3JtL2Nocm9taXVtL2Zhc3QvZXZlbnRzL3dpbmRvdy1vbmVycm9yNC1leHBlY3RlZC50eHQKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNTBmMDllMAotLS0gL2Rldi9udWxsCisr
KyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL2Zhc3QvZXZlbnRzL3dpbmRvdy1vbmVy
cm9yNC1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw0IEBACitZb3Ugc2hvdWxkIHNlZSBhIGxvZyBy
ZWNvcmQgaWYgd2luZG93Lm9uZXJyb3IgaXMgd29ya2luZyBwcm9wZXJseSBmb3IgdGhpcyB0ZXN0
LkJ1ZyA4NTE5Lg0KKw0KK0Vycm9yIGNhdWdodCBzdWNjZXNzZnVsbHk6IFVuY2F1Z2h0IFJlZmVy
ZW5jZUVycm9yOiBJbnZhbGlkIGxlZnQtaGFuZCBzaWRlIGluIGFzc2lnbm1lbnQgRmlsZTogd2lu
ZG93LW9uZXJyb3I0Lmh0bWwgTGluZTogMQ0KKw0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3Bs
YXRmb3JtL2Nocm9taXVtL2Zhc3QvZXZlbnRzL3dpbmRvdy1vbmVycm9yNS1leHBlY3RlZC50eHQg
Yi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS9mYXN0L2V2ZW50cy93aW5kb3ctb25lcnJv
cjUtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmU0NTM2
OWUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS9mYXN0
L2V2ZW50cy93aW5kb3ctb25lcnJvcjUtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNCBAQAorVGVz
dCB0aGF0IHdpbmRvdy5vbmVycm9yIGlzIGludm9rZWQgZm9yIHN5bnRheCBlcnJvciBpbiBldmFs
LiBZb3Ugc2hvdWxkIHNlZSBhIGxvZyByZWNvcmQgaWYgd2luZG93Lm9uZXJyb3IgaXMgd29ya2lu
ZyBwcm9wZXJseSBmb3IgdGhpcyB0ZXN0LkJ1ZyA4NTE5Lg0KKw0KK0Vycm9yIGNhdWdodCBzdWNj
ZXNzZnVsbHk6IFVuY2F1Z2h0IFN5bnRheEVycm9yOiBVbmV4cGVjdGVkIGVuZCBvZiBpbnB1dCBG
aWxlOiB3aW5kb3ctb25lcnJvcjUuaHRtbCBMaW5lOiAxDQorDQpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vZmFzdC9ldmVudHMvd2luZG93LW9uZXJyb3I2LWV4cGVj
dGVkLnR4dCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL2Zhc3QvZXZlbnRzL3dpbmRv
dy1vbmVycm9yNi1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MC4uMThlZDgxYQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9t
aXVtL2Zhc3QvZXZlbnRzL3dpbmRvdy1vbmVycm9yNi1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw0
IEBACitUZXN0IHRoYXQgc3ludGF4IGVycm9yIHdpbGwgYmUgcmVwb3J0ZWQgdG8gdGhlIHdpbmRv
dy5vbmVycm9yIGhhbmRsZXIuIEJ1ZyA4NTE5Lg0KKw0KK01haW4gZnJhbWUgd2luZG93Lm9uZXJy
b3I6IFVuY2F1Z2h0IFN5bnRheEVycm9yOiBVbmV4cGVjdGVkIHRva2VuICkgYXQgd2luZG93LW9u
ZXJyb3I2Lmh0bWw6MjINCisNCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJv
bWl1bS9mYXN0L2V2ZW50cy93aW5kb3ctb25lcnJvcjctZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVz
dHMvcGxhdGZvcm0vY2hyb21pdW0vZmFzdC9ldmVudHMvd2luZG93LW9uZXJyb3I3LWV4cGVjdGVk
LnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yM2QwNDA3Ci0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vZmFzdC9ldmVudHMvd2lu
ZG93LW9uZXJyb3I3LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDYgQEAKK0NPTlNPTEUgTUVTU0FH
RTogbGluZSAyMDogVW5jYXVnaHQgRXJyb3I6IE9yaWdpbmFsIGVycm9yDQorQ09OU09MRSBNRVNT
QUdFOiBsaW5lIDE3OiBVbmNhdWdodCBFcnJvcjogTmVzdGVkIGVycm9yDQorVGVzdCB0aGF0IGV4
Y2VwdGlvbiBpbiB3aW5kb3cub25lcnJvciB3b24ndCBsZWFkIHRvIHJlY3Vyc2l2ZSB3aW5kb3cu
b25lcnJvciBjYWxsLiBCdWcgODUxOS4NCisNCitNYWluIGZyYW1lIHdpbmRvdy5vbmVycm9yOiBV
bmNhdWdodCBFcnJvcjogT3JpZ2luYWwgZXJyb3IgYXQgd2luZG93LW9uZXJyb3I3Lmh0bWw6MjAN
CisNCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS9mYXN0L2V2ZW50
cy93aW5kb3ctb25lcnJvcjgtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hy
b21pdW0vZmFzdC9ldmVudHMvd2luZG93LW9uZXJyb3I4LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xM2YyYjMyCi0tLSAvZGV2L251bGwKKysrIGIvTGF5
b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vZmFzdC9ldmVudHMvd2luZG93LW9uZXJyb3I4LWV4
cGVjdGVkLnR4dApAQCAtMCwwICsxLDUgQEAKK1Rlc3QgdGhhdCB3aW5kb3cub25lcnJvciBpcyBj
YWxsZWQgb24gd2luZG93IG9iamVjdC4gQnVnIDg1MTkuDQorDQorTWFpbiBmcmFtZSB3aW5kb3cu
b25lcnJvcjogVW5jYXVnaHQgMjAxMCBhdCB3aW5kb3ctb25lcnJvcjguaHRtbDoyNA0KK1BBU1NF
RDogdGhpcyA9PT0gd2luZG93DQorDQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0v
Y2hyb21pdW0vZmFzdC9ldmVudHMvd2luZG93LW9uZXJyb3I5LWV4cGVjdGVkLnR4dCBiL0xheW91
dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL2Zhc3QvZXZlbnRzL3dpbmRvdy1vbmVycm9yOS1leHBl
Y3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMTY3N2U1MAotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL2Zhc3QvZXZlbnRz
L3dpbmRvdy1vbmVycm9yOS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw4IEBACitUZXN0IHRoYXQg
d2hlbiB3aW5kb3cub25lcnJvciBoYW5kbGVyIGlzIGNhbGxlZCwgd2luZG93LmV2ZW50IGlzIHRo
ZSBjb3JyZXNwb25kaW5nIEVycm9yRXZlbnQgb2JqZWN0LiBCdWcgODUxOS4NCisNCitNYWluIGZy
YW1lIHdpbmRvdy5vbmVycm9yOiBVbmNhdWdodCBFcnJvcjogMjAxMCBhdCB3aW5kb3ctb25lcnJv
cjkuaHRtbDozMQ0KK3dpbmRvdy5ldmVudC50eXBlID0gZXJyb3INCit3aW5kb3cuZXZlbnQubWVz
c2FnZSA9IFVuY2F1Z2h0IEVycm9yOiAyMDEwDQord2luZG93LmV2ZW50LmZpbGVuYW1lID0gd2lu
ZG93LW9uZXJyb3I5Lmh0bWwNCit3aW5kb3cuZXZlbnQubGluZW5vID0gMzENCisNCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS9odHRwL3Rlc3RzL3NlY3VyaXR5L3dp
bmRvdy1vbmVycm9yLWV4Y2VwdGlvbi1pbi1pZnJhbWUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVz
dHMvcGxhdGZvcm0vY2hyb21pdW0vaHR0cC90ZXN0cy9zZWN1cml0eS93aW5kb3ctb25lcnJvci1l
eGNlcHRpb24taW4taWZyYW1lLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwLi45ZTljMmVhCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZv
cm0vY2hyb21pdW0vaHR0cC90ZXN0cy9zZWN1cml0eS93aW5kb3ctb25lcnJvci1leGNlcHRpb24t
aW4taWZyYW1lLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDYgQEAKK0NPTlNPTEUgTUVTU0FHRTog
bGluZSA3OiBVbmNhdWdodCBJZnJhbWVFeGNlcHRpb24NCitUZXN0IHRoYXQgZXhjZXB0aW9ucyBp
biBpZnJhbWUgYXJlIG5vdCByZXBvcnRlZCB0byB0aGUgbWFpbiBmcmFtZSB3aW5kb3cub25lcnJv
ciBoYW5kbGVyLiB3aW5kb3cub25lcnJvciBzaG91bGQgcHJpbnQgZXhhY3RseSBvbmUgbGluZS4N
CisNCitNYWluIGZyYW1lIHdpbmRvdy5vbmVycm9yOiBVbmNhdWdodCBNYWluRnJhbWVFeGNlcHRp
b24gYXQgd2luZG93LW9uZXJyb3ItZXhjZXB0aW9uLWluLWlmcmFtZS5odG1sOjM0DQorRE9ORQ0K
Kw0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL3VzZXJzY3JpcHRz
L3dpbmRvdy1vbmVycm9yLWZvci1pc29sYXRlZC13b3JsZC0xLWV4cGVjdGVkLnR4dCBiL0xheW91
dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL3VzZXJzY3JpcHRzL3dpbmRvdy1vbmVycm9yLWZvci1p
c29sYXRlZC13b3JsZC0xLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwLi4yYTNkMDY4Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0v
Y2hyb21pdW0vdXNlcnNjcmlwdHMvd2luZG93LW9uZXJyb3ItZm9yLWlzb2xhdGVkLXdvcmxkLTEt
ZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTQgQEAKK1Rlc3QgdGhhdCB3aW5kb3cub25lcnJvciBh
bmQgImVycm9yIiBldmVudCBsaXN0ZW5lcnMgZnJvbSBtYWluIHdvcmxkIGFyZSBpbnZva2VkIGZv
ciB1bmNhdWdodCBleGNlcHRpb25zIGluIHVzZXIgc2NyaXB0cyBydW5uaW5nIGluIGlzb2xhdGUg
d29ybGRzIGFzIHdlbGwgYXMgZm9yIGV4Y2VwdGlvbnMgaW4gdGhlIG1haW4gd29ybGQuQnVnIDg1
MTkuDQorDQorTWFpbiB3b3JsZCB3aW5kb3cub25lcnJvcjogVW5jYXVnaHQgRXJyb3I6IEVycm9y
IGluIG1haW4gd29ybGQgaW5saW5lIHNjcmlwdC4gYXQgd2luZG93LW9uZXJyb3ItZm9yLWlzb2xh
dGVkLXdvcmxkLTEuaHRtbDo1NA0KK01haW4gd29ybGQgZXJyb3IgZXZlbnQgbGlzdGVuZXI6IFVu
Y2F1Z2h0IEVycm9yOiBFcnJvciBpbiBtYWluIHdvcmxkIGlubGluZSBzY3JpcHQuIGF0IHdpbmRv
dy1vbmVycm9yLWZvci1pc29sYXRlZC13b3JsZC0xLmh0bWw6NTQNCitNYWluIHdvcmxkIHdpbmRv
dy5vbmVycm9yOiBVbmNhdWdodCBFcnJvcjogRXJyb3IgaW4gdXNlciBzY3JpcHQgaW5saW5lIHNj
cmlwdC4gYXQgOjEyDQorTWFpbiB3b3JsZCBlcnJvciBldmVudCBsaXN0ZW5lcjogVW5jYXVnaHQg
RXJyb3I6IEVycm9yIGluIHVzZXIgc2NyaXB0IGlubGluZSBzY3JpcHQuIGF0IDoxMg0KK01haW4g
d29ybGQgd2luZG93Lm9uZXJyb3I6IFVuY2F1Z2h0IEVycm9yOiBFcnJvciBpbiBtYWluIHdvcmxk
IGxvYWQgaGFuZGxlci4gYXQgd2luZG93LW9uZXJyb3ItZm9yLWlzb2xhdGVkLXdvcmxkLTEuaHRt
bDo0Ng0KK01haW4gd29ybGQgZXJyb3IgZXZlbnQgbGlzdGVuZXI6IFVuY2F1Z2h0IEVycm9yOiBF
cnJvciBpbiBtYWluIHdvcmxkIGxvYWQgaGFuZGxlci4gYXQgd2luZG93LW9uZXJyb3ItZm9yLWlz
b2xhdGVkLXdvcmxkLTEuaHRtbDo0Ng0KK01haW4gd29ybGQgd2luZG93Lm9uZXJyb3I6IFVuY2F1
Z2h0IEVycm9yOiBFcnJvciBpbiB1c2VyIHNjcmlwdCBsb2FkIGhhbmRsZXIuIGF0IDo0DQorTWFp
biB3b3JsZCBlcnJvciBldmVudCBsaXN0ZW5lcjogVW5jYXVnaHQgRXJyb3I6IEVycm9yIGluIHVz
ZXIgc2NyaXB0IGxvYWQgaGFuZGxlci4gYXQgOjQNCitNYWluIHdvcmxkIHdpbmRvdy5vbmVycm9y
OiBVbmNhdWdodCBFcnJvcjogRXJyb3IgaW4gbWFpbiB3b3JsZCBzZXRUaW1lb3V0IGNhbGxiYWNr
LiBhdCB3aW5kb3ctb25lcnJvci1mb3ItaXNvbGF0ZWQtd29ybGQtMS5odG1sOjUxDQorTWFpbiB3
b3JsZCBlcnJvciBldmVudCBsaXN0ZW5lcjogVW5jYXVnaHQgRXJyb3I6IEVycm9yIGluIG1haW4g
d29ybGQgc2V0VGltZW91dCBjYWxsYmFjay4gYXQgd2luZG93LW9uZXJyb3ItZm9yLWlzb2xhdGVk
LXdvcmxkLTEuaHRtbDo1MQ0KK01haW4gd29ybGQgd2luZG93Lm9uZXJyb3I6IFVuY2F1Z2h0IEVy
cm9yOiBFcnJvciBpbiB1c2VyIHNjcmlwdCBzZXRUaW1lb3V0IGNhbGxiYWNrLiBhdCA6OQ0KK01h
aW4gd29ybGQgZXJyb3IgZXZlbnQgbGlzdGVuZXI6IFVuY2F1Z2h0IEVycm9yOiBFcnJvciBpbiB1
c2VyIHNjcmlwdCBzZXRUaW1lb3V0IGNhbGxiYWNrLiBhdCA6OQ0KZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL3VzZXJzY3JpcHRzL3dpbmRvdy1vbmVycm9yLWZvci1p
c29sYXRlZC13b3JsZC0yLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9t
aXVtL3VzZXJzY3JpcHRzL3dpbmRvdy1vbmVycm9yLWZvci1pc29sYXRlZC13b3JsZC0yLWV4cGVj
dGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45Mzk5NGRiCi0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vdXNlcnNjcmlwdHMv
d2luZG93LW9uZXJyb3ItZm9yLWlzb2xhdGVkLXdvcmxkLTItZXhwZWN0ZWQudHh0CkBAIC0wLDAg
KzEsMTMgQEAKK0NPTlNPTEUgTUVTU0FHRTogbGluZSAzMDogVW5jYXVnaHQgRXJyb3I6IEVycm9y
IGluIG1haW4gd29ybGQgaW5saW5lIHNjcmlwdC4NCitUZXN0IHRoYXQgd2luZG93Lm9uZXJyb3Ig
YW5kICJlcnJvciIgZXZlbnQgbGlzdGVuZXJzIGZyb20gaXNvbGF0ZWQgd29ybGQgYXJlIGludm9r
ZWQgZm9yIHVuY2F1Z2h0IGV4Y2VwdGlvbnMgaW4gdXNlciBzY3JpcHRzIHJ1bm5pbmcgaW4gaXNv
bGF0ZSB3b3JsZHMgYXMgd2VsbCBhcyBmb3IgZXhjZXB0aW9ucyBpbiB0aGUgbWFpbiB3b3JsZC5C
dWcgODUxOS4NCisNCit1c2VyIHNjcmlwdCB3aW5kb3cub25lcnJvcjogVW5jYXVnaHQgRXJyb3I6
IEVycm9yIGluIHVzZXIgc2NyaXB0IGlubGluZSBzY3JpcHQuIGF0IDozMw0KK3VzZXIgc2NyaXB0
IGVycm9yIGV2ZW50IGxpc3RlbmVyOiBVbmNhdWdodCBFcnJvcjogRXJyb3IgaW4gdXNlciBzY3Jp
cHQgaW5saW5lIHNjcmlwdC4gYXQgOjMzDQordXNlciBzY3JpcHQgd2luZG93Lm9uZXJyb3I6IFVu
Y2F1Z2h0IEVycm9yOiBFcnJvciBpbiBtYWluIHdvcmxkIGxvYWQgaGFuZGxlci4gYXQgd2luZG93
LW9uZXJyb3ItZm9yLWlzb2xhdGVkLXdvcmxkLTIuaHRtbDoyMw0KK3VzZXIgc2NyaXB0IGVycm9y
IGV2ZW50IGxpc3RlbmVyOiBVbmNhdWdodCBFcnJvcjogRXJyb3IgaW4gbWFpbiB3b3JsZCBsb2Fk
IGhhbmRsZXIuIGF0IHdpbmRvdy1vbmVycm9yLWZvci1pc29sYXRlZC13b3JsZC0yLmh0bWw6MjMN
Cit1c2VyIHNjcmlwdCB3aW5kb3cub25lcnJvcjogVW5jYXVnaHQgRXJyb3I6IEVycm9yIGluIHVz
ZXIgc2NyaXB0IGxvYWQgaGFuZGxlci4gYXQgOjI2DQordXNlciBzY3JpcHQgZXJyb3IgZXZlbnQg
bGlzdGVuZXI6IFVuY2F1Z2h0IEVycm9yOiBFcnJvciBpbiB1c2VyIHNjcmlwdCBsb2FkIGhhbmRs
ZXIuIGF0IDoyNg0KK3VzZXIgc2NyaXB0IHdpbmRvdy5vbmVycm9yOiBVbmNhdWdodCBFcnJvcjog
RXJyb3IgaW4gbWFpbiB3b3JsZCBzZXRUaW1lb3V0IGNhbGxiYWNrLiBhdCB3aW5kb3ctb25lcnJv
ci1mb3ItaXNvbGF0ZWQtd29ybGQtMi5odG1sOjI3DQordXNlciBzY3JpcHQgZXJyb3IgZXZlbnQg
bGlzdGVuZXI6IFVuY2F1Z2h0IEVycm9yOiBFcnJvciBpbiBtYWluIHdvcmxkIHNldFRpbWVvdXQg
Y2FsbGJhY2suIGF0IHdpbmRvdy1vbmVycm9yLWZvci1pc29sYXRlZC13b3JsZC0yLmh0bWw6MjcN
Cit1c2VyIHNjcmlwdCB3aW5kb3cub25lcnJvcjogVW5jYXVnaHQgRXJyb3I6IEVycm9yIGluIHVz
ZXIgc2NyaXB0IHNldFRpbWVvdXQgY2FsbGJhY2suIGF0IDozMA0KK3VzZXIgc2NyaXB0IGVycm9y
IGV2ZW50IGxpc3RlbmVyOiBVbmNhdWdodCBFcnJvcjogRXJyb3IgaW4gdXNlciBzY3JpcHQgc2V0
VGltZW91dCBjYWxsYmFjay4gYXQgOjMwDQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvdXNlcnNj
cmlwdHMvd2luZG93LW9uZXJyb3ItZm9yLWlzb2xhdGVkLXdvcmxkLTEtZXhwZWN0ZWQudHh0IGIv
TGF5b3V0VGVzdHMvdXNlcnNjcmlwdHMvd2luZG93LW9uZXJyb3ItZm9yLWlzb2xhdGVkLXdvcmxk
LTEtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjY4OTVj
NDEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy91c2Vyc2NyaXB0cy93aW5kb3ctb25l
cnJvci1mb3ItaXNvbGF0ZWQtd29ybGQtMS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxNCBAQAor
VGVzdCB0aGF0IHdpbmRvdy5vbmVycm9yIGFuZCAiZXJyb3IiIGV2ZW50IGxpc3RlbmVycyBmcm9t
IG1haW4gd29ybGQgYXJlIGludm9rZWQgZm9yIHVuY2F1Z2h0IGV4Y2VwdGlvbnMgaW4gdXNlciBz
Y3JpcHRzIHJ1bm5pbmcgaW4gaXNvbGF0ZSB3b3JsZHMgYXMgd2VsbCBhcyBmb3IgZXhjZXB0aW9u
cyBpbiB0aGUgbWFpbiB3b3JsZC5CdWcgODUxOS4KKworTWFpbiB3b3JsZCB3aW5kb3cub25lcnJv
cjogRXJyb3I6IEVycm9yIGluIG1haW4gd29ybGQgaW5saW5lIHNjcmlwdC4gYXQgd2luZG93LW9u
ZXJyb3ItZm9yLWlzb2xhdGVkLXdvcmxkLTEuaHRtbDo1NAorTWFpbiB3b3JsZCBlcnJvciBldmVu
dCBsaXN0ZW5lcjogRXJyb3I6IEVycm9yIGluIG1haW4gd29ybGQgaW5saW5lIHNjcmlwdC4gYXQg
d2luZG93LW9uZXJyb3ItZm9yLWlzb2xhdGVkLXdvcmxkLTEuaHRtbDo1NAorTWFpbiB3b3JsZCB3
aW5kb3cub25lcnJvcjogRXJyb3I6IEVycm9yIGluIHVzZXIgc2NyaXB0IGlubGluZSBzY3JpcHQu
IGF0IHVuZGVmaW5lZDoxMQorTWFpbiB3b3JsZCBlcnJvciBldmVudCBsaXN0ZW5lcjogRXJyb3I6
IEVycm9yIGluIHVzZXIgc2NyaXB0IGlubGluZSBzY3JpcHQuIGF0IHVuZGVmaW5lZDoxMQorTWFp
biB3b3JsZCB3aW5kb3cub25lcnJvcjogRXJyb3I6IEVycm9yIGluIG1haW4gd29ybGQgbG9hZCBo
YW5kbGVyLiBhdCB3aW5kb3ctb25lcnJvci1mb3ItaXNvbGF0ZWQtd29ybGQtMS5odG1sOjQ2CitN
YWluIHdvcmxkIGVycm9yIGV2ZW50IGxpc3RlbmVyOiBFcnJvcjogRXJyb3IgaW4gbWFpbiB3b3Js
ZCBsb2FkIGhhbmRsZXIuIGF0IHdpbmRvdy1vbmVycm9yLWZvci1pc29sYXRlZC13b3JsZC0xLmh0
bWw6NDYKK01haW4gd29ybGQgd2luZG93Lm9uZXJyb3I6IEVycm9yOiBFcnJvciBpbiB1c2VyIHNj
cmlwdCBsb2FkIGhhbmRsZXIuIGF0IHVuZGVmaW5lZDozCitNYWluIHdvcmxkIGVycm9yIGV2ZW50
IGxpc3RlbmVyOiBFcnJvcjogRXJyb3IgaW4gdXNlciBzY3JpcHQgbG9hZCBoYW5kbGVyLiBhdCB1
bmRlZmluZWQ6MworTWFpbiB3b3JsZCB3aW5kb3cub25lcnJvcjogRXJyb3I6IEVycm9yIGluIG1h
aW4gd29ybGQgc2V0VGltZW91dCBjYWxsYmFjay4gYXQgd2luZG93LW9uZXJyb3ItZm9yLWlzb2xh
dGVkLXdvcmxkLTEuaHRtbDo1MQorTWFpbiB3b3JsZCBlcnJvciBldmVudCBsaXN0ZW5lcjogRXJy
b3I6IEVycm9yIGluIG1haW4gd29ybGQgc2V0VGltZW91dCBjYWxsYmFjay4gYXQgd2luZG93LW9u
ZXJyb3ItZm9yLWlzb2xhdGVkLXdvcmxkLTEuaHRtbDo1MQorTWFpbiB3b3JsZCB3aW5kb3cub25l
cnJvcjogRXJyb3I6IEVycm9yIGluIHVzZXIgc2NyaXB0IHNldFRpbWVvdXQgY2FsbGJhY2suIGF0
IHVuZGVmaW5lZDo4CitNYWluIHdvcmxkIGVycm9yIGV2ZW50IGxpc3RlbmVyOiBFcnJvcjogRXJy
b3IgaW4gdXNlciBzY3JpcHQgc2V0VGltZW91dCBjYWxsYmFjay4gYXQgdW5kZWZpbmVkOjgKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL3VzZXJzY3JpcHRzL3dpbmRvdy1vbmVycm9yLWZvci1pc29s
YXRlZC13b3JsZC0xLmh0bWwgYi9MYXlvdXRUZXN0cy91c2Vyc2NyaXB0cy93aW5kb3ctb25lcnJv
ci1mb3ItaXNvbGF0ZWQtd29ybGQtMS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAuLjNjNmJhYzIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy91c2Vyc2NyaXB0
cy93aW5kb3ctb25lcnJvci1mb3ItaXNvbGF0ZWQtd29ybGQtMS5odG1sCkBAIC0wLDAgKzEsNjcg
QEAKKzwhRE9DVFlQRSBIVE1MPgorPGh0bWw+Cis8aGVhZD4KKzwvaGVhZD4KKzxib2R5PgorPHA+
VGVzdCB0aGF0IHdpbmRvdy5vbmVycm9yIGFuZCAiZXJyb3IiIGV2ZW50IGxpc3RlbmVycyBmcm9t
IG1haW4gd29ybGQgYXJlCitpbnZva2VkIGZvciB1bmNhdWdodCBleGNlcHRpb25zIGluIHVzZXIg
c2NyaXB0cyBydW5uaW5nIGluIGlzb2xhdGUgd29ybGRzIGFzCit3ZWxsIGFzIGZvciBleGNlcHRp
b25zIGluIHRoZSBtYWluIHdvcmxkLjxhIGhyZWY9Imh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD04NTE5Ij5CdWcgODUxOS48L2E+Cis8L3A+Cis8ZGl2IGlkPSJjb25zb2xl
Ij48L2Rpdj4KKzxzY3JpcHQ+CisKK3ZhciBleHBlY3RlZFJlY29yZENvdW50ID0gMTI7Cit2YXIg
cmVjb3JkQ291bnQgPSAwOworZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNvbnNvbGUiKS5hZGRF
dmVudExpc3RlbmVyKCJET01Ob2RlSW5zZXJ0ZWQiLCBmdW5jdGlvbihlKSB7CisgICAgcmVjb3Jk
Q291bnQrKzsKKyAgICBpZiAocmVjb3JkQ291bnQgPT09IGV4cGVjdGVkUmVjb3JkQ291bnQgJiYg
d2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQorICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxl
ci5ub3RpZnlEb25lKCk7Cit9LCBmYWxzZSk7CisKK2Z1bmN0aW9uIGxvZyhtc2cpIHsKKyAgICB2
YXIgcmVjb3JkID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7CisgICAgcmVjb3JkLmlu
bmVySFRNTCA9IG1zZzsKKyAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY29uc29sZSIpLmFw
cGVuZENoaWxkKHJlY29yZCk7Cit9CisKK2Z1bmN0aW9uIGxhc3RVcmxDb21wb25lbnQodXJsKSB7
CisgICAgcmV0dXJuIHVybCA/IHVybC5tYXRjaCggL1teXC9dK1wvPyQvIClbMF0gOiB1cmw7Cit9
CisKK3dpbmRvdy5vbmVycm9yID0gZnVuY3Rpb24obXNnLCB1cmwsIGxpbmUpCit7CisgICAgbG9n
KCJNYWluIHdvcmxkIHdpbmRvdy5vbmVycm9yOiAiICsgbXNnICsgIiBhdCAiICsgbGFzdFVybENv
bXBvbmVudCh1cmwpICsgIjoiICsgbGluZSk7CisgICAgcmV0dXJuIGZhbHNlOworfQorCit3aW5k
b3cuYWRkRXZlbnRMaXN0ZW5lcigiZXJyb3IiLCBmdW5jdGlvbihlKQoreworICAgIHZhciB1cmwg
PSBsYXN0VXJsQ29tcG9uZW50KGUuZmlsZW5hbWUpOworICAgIGxvZygiTWFpbiB3b3JsZCBlcnJv
ciBldmVudCBsaXN0ZW5lcjogIiArIGUubWVzc2FnZSArICIgYXQgIiArIHVybCArICI6IiArIGUu
bGluZW5vKTsKK30sIGZhbHNlKTsKKwordmFyIGV4Y2VwdGlvbnMgPSBmdW5jdGlvbihpc29sYXRl
ZFdvcmxkKQoreworICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJsb2FkIiwgZnVuY3Rpb24o
ZSkgeworICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIkVycm9yIGluICIgKyBpc29sYXRlZFdvcmxk
ICsgIiBsb2FkIGhhbmRsZXIuIik7CisgICAgfSwgZmFsc2UpOworCisKKyAgICBzZXRUaW1lb3V0
KGZ1bmN0aW9uKCkgeworICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIkVycm9yIGluICIgKyBpc29s
YXRlZFdvcmxkICsgIiBzZXRUaW1lb3V0IGNhbGxiYWNrLiIpOworICAgIH0sIDApOworCisgICAg
dGhyb3cgbmV3IEVycm9yKCJFcnJvciBpbiAiKyBpc29sYXRlZFdvcmxkICsgIiBpbmxpbmUgc2Ny
aXB0LiIpOworfQorCitpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKSB7CisgICAgbGF5
b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOworICAgIGxheW91dFRlc3RDb250cm9sbGVy
LndhaXRVbnRpbERvbmUoKTsKKyAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5hZGRVc2VyU2NyaXB0
KCIoIiArIGV4Y2VwdGlvbnMgKyAiKSgndXNlciBzY3JpcHQnKSIsIGZhbHNlLCB0cnVlKTsKK30K
KworZXhjZXB0aW9ucygibWFpbiB3b3JsZCIpOworCis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRt
bD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3VzZXJzY3JpcHRzL3dpbmRvdy1vbmVycm9yLWZv
ci1pc29sYXRlZC13b3JsZC0yLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3VzZXJzY3JpcHRz
L3dpbmRvdy1vbmVycm9yLWZvci1pc29sYXRlZC13b3JsZC0yLWV4cGVjdGVkLnR4dApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iOTA5YTk5Ci0tLSAvZGV2L251bGwKKysrIGIv
TGF5b3V0VGVzdHMvdXNlcnNjcmlwdHMvd2luZG93LW9uZXJyb3ItZm9yLWlzb2xhdGVkLXdvcmxk
LTItZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTMgQEAKK0NPTlNPTEUgTUVTU0FHRTogbGluZSAz
MDogRXJyb3I6IEVycm9yIGluIG1haW4gd29ybGQgaW5saW5lIHNjcmlwdC4KK1Rlc3QgdGhhdCB3
aW5kb3cub25lcnJvciBhbmQgImVycm9yIiBldmVudCBsaXN0ZW5lcnMgZnJvbSBpc29sYXRlZCB3
b3JsZCBhcmUgaW52b2tlZCBmb3IgdW5jYXVnaHQgZXhjZXB0aW9ucyBpbiB1c2VyIHNjcmlwdHMg
cnVubmluZyBpbiBpc29sYXRlIHdvcmxkcyBhcyB3ZWxsIGFzIGZvciBleGNlcHRpb25zIGluIHRo
ZSBtYWluIHdvcmxkLkJ1ZyA4NTE5LgorCit1c2VyIHNjcmlwdCB3aW5kb3cub25lcnJvcjogRXJy
b3I6IEVycm9yIGluIHVzZXIgc2NyaXB0IGlubGluZSBzY3JpcHQuIGF0IHVuZGVmaW5lZDozMQor
dXNlciBzY3JpcHQgZXJyb3IgZXZlbnQgbGlzdGVuZXI6IEVycm9yOiBFcnJvciBpbiB1c2VyIHNj
cmlwdCBpbmxpbmUgc2NyaXB0LiBhdCB1bmRlZmluZWQ6MzEKK3VzZXIgc2NyaXB0IHdpbmRvdy5v
bmVycm9yOiBFcnJvcjogRXJyb3IgaW4gbWFpbiB3b3JsZCBsb2FkIGhhbmRsZXIuIGF0IHdpbmRv
dy1vbmVycm9yLWZvci1pc29sYXRlZC13b3JsZC0yLmh0bWw6MjMKK3VzZXIgc2NyaXB0IGVycm9y
IGV2ZW50IGxpc3RlbmVyOiBFcnJvcjogRXJyb3IgaW4gbWFpbiB3b3JsZCBsb2FkIGhhbmRsZXIu
IGF0IHdpbmRvdy1vbmVycm9yLWZvci1pc29sYXRlZC13b3JsZC0yLmh0bWw6MjMKK3VzZXIgc2Ny
aXB0IHdpbmRvdy5vbmVycm9yOiBFcnJvcjogRXJyb3IgaW4gdXNlciBzY3JpcHQgbG9hZCBoYW5k
bGVyLiBhdCB1bmRlZmluZWQ6MjQKK3VzZXIgc2NyaXB0IGVycm9yIGV2ZW50IGxpc3RlbmVyOiBF
cnJvcjogRXJyb3IgaW4gdXNlciBzY3JpcHQgbG9hZCBoYW5kbGVyLiBhdCB1bmRlZmluZWQ6MjQK
K3VzZXIgc2NyaXB0IHdpbmRvdy5vbmVycm9yOiBFcnJvcjogRXJyb3IgaW4gbWFpbiB3b3JsZCBz
ZXRUaW1lb3V0IGNhbGxiYWNrLiBhdCB3aW5kb3ctb25lcnJvci1mb3ItaXNvbGF0ZWQtd29ybGQt
Mi5odG1sOjI3Cit1c2VyIHNjcmlwdCBlcnJvciBldmVudCBsaXN0ZW5lcjogRXJyb3I6IEVycm9y
IGluIG1haW4gd29ybGQgc2V0VGltZW91dCBjYWxsYmFjay4gYXQgd2luZG93LW9uZXJyb3ItZm9y
LWlzb2xhdGVkLXdvcmxkLTIuaHRtbDoyNwordXNlciBzY3JpcHQgd2luZG93Lm9uZXJyb3I6IEVy
cm9yOiBFcnJvciBpbiB1c2VyIHNjcmlwdCBzZXRUaW1lb3V0IGNhbGxiYWNrLiBhdCB1bmRlZmlu
ZWQ6MjgKK3VzZXIgc2NyaXB0IGVycm9yIGV2ZW50IGxpc3RlbmVyOiBFcnJvcjogRXJyb3IgaW4g
dXNlciBzY3JpcHQgc2V0VGltZW91dCBjYWxsYmFjay4gYXQgdW5kZWZpbmVkOjI4CmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy91c2Vyc2NyaXB0cy93aW5kb3ctb25lcnJvci1mb3ItaXNvbGF0ZWQt
d29ybGQtMi5odG1sIGIvTGF5b3V0VGVzdHMvdXNlcnNjcmlwdHMvd2luZG93LW9uZXJyb3ItZm9y
LWlzb2xhdGVkLXdvcmxkLTIuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
Li5hNmVjNjk5Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvdXNlcnNjcmlwdHMvd2lu
ZG93LW9uZXJyb3ItZm9yLWlzb2xhdGVkLXdvcmxkLTIuaHRtbApAQCAtMCwwICsxLDY3IEBACis8
IURPQ1RZUEUgSFRNTD4KKzxodG1sPgorPGhlYWQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxwPlRlc3Qg
dGhhdCB3aW5kb3cub25lcnJvciBhbmQgImVycm9yIiBldmVudCBsaXN0ZW5lcnMgZnJvbSBpc29s
YXRlZCB3b3JsZCBhcmUKK2ludm9rZWQgZm9yIHVuY2F1Z2h0IGV4Y2VwdGlvbnMgaW4gdXNlciBz
Y3JpcHRzIHJ1bm5pbmcgaW4gaXNvbGF0ZSB3b3JsZHMgYXMKK3dlbGwgYXMgZm9yIGV4Y2VwdGlv
bnMgaW4gdGhlIG1haW4gd29ybGQuPGEgaHJlZj0iaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTg1MTkiPkJ1ZyA4NTE5LjwvYT4KKzwvcD4KKzxkaXYgaWQ9ImNvbnNvbGUi
PjwvZGl2PgorPHNjcmlwdD4KKwordmFyIGV4cGVjdGVkUmVjb3JkQ291bnQgPSAxMDsKK3ZhciBy
ZWNvcmRDb3VudCA9IDA7Citkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY29uc29sZSIpLmFkZEV2
ZW50TGlzdGVuZXIoIkRPTU5vZGVJbnNlcnRlZCIsIGZ1bmN0aW9uKGUpIHsKKyAgICBpZiAoKyty
ZWNvcmRDb3VudCA9PT0gZXhwZWN0ZWRSZWNvcmRDb3VudCAmJiB3aW5kb3cubGF5b3V0VGVzdENv
bnRyb2xsZXIpCisgICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLm5vdGlmeURvbmUoKTsKK30s
IGZhbHNlKTsKKwordmFyIHRocm93RXhjZXB0aW9ucyA9IGZ1bmN0aW9uKGlzb2xhdGVkV29ybGQp
Cit7CisgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoImxvYWQiLCBmdW5jdGlvbihlKSB7Cisg
ICAgICAgIHRocm93IG5ldyBFcnJvcigiRXJyb3IgaW4gIiArIGlzb2xhdGVkV29ybGQgKyAiIGxv
YWQgaGFuZGxlci4iKTsKKyAgICB9LCBmYWxzZSk7CisKKyAgICBzZXRUaW1lb3V0KGZ1bmN0aW9u
KCkgeworICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIkVycm9yIGluICIgKyBpc29sYXRlZFdvcmxk
ICsgIiBzZXRUaW1lb3V0IGNhbGxiYWNrLiIpOworICAgIH0sIDApOworICAgIAorICAgIHRocm93
IG5ldyBFcnJvcigiRXJyb3IgaW4gIisgaXNvbGF0ZWRXb3JsZCArICIgaW5saW5lIHNjcmlwdC4i
KTsKK307CisKK3ZhciBlcnJvckhhbmRsZXJzID0gZnVuY3Rpb24oaXNvbGF0ZWRXb3JsZCkKK3sK
KyAgICBmdW5jdGlvbiBsYXN0VXJsQ29tcG9uZW50KHVybCkgeworICAgICAgICByZXR1cm4gdXJs
ID8gdXJsLm1hdGNoKCAvW15cL10rXC8/JC8gKVswXSA6IHVybDsKKyAgICB9CisKKyAgICBmdW5j
dGlvbiBsb2cobXNnKSB7CisgICAgICAgIHZhciByZWNvcmQgPSBkb2N1bWVudC5jcmVhdGVFbGVt
ZW50KCJkaXYiKTsKKyAgICAgICAgcmVjb3JkLmlubmVySFRNTCA9IG1zZzsKKyAgICAgICAgZG9j
dW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNvbnNvbGUiKS5hcHBlbmRDaGlsZChyZWNvcmQpOworICAg
IH0KKworICAgIHdpbmRvdy5vbmVycm9yID0gZnVuY3Rpb24obXNnLCB1cmwsIGxpbmUpIHsKKyAg
ICAgICAgbG9nKGlzb2xhdGVkV29ybGQgKyAiIHdpbmRvdy5vbmVycm9yOiAiICsgbXNnICsgIiBh
dCAiICsgbGFzdFVybENvbXBvbmVudCh1cmwpICsgIjoiICsgbGluZSwgIioiKTsKKyAgICAgICAg
cmV0dXJuIGZhbHNlOworICAgIH0KKworICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJlcnJv
ciIsIGZ1bmN0aW9uKGUpIHsKKyAgICAgICAgdmFyIHVybCA9IGxhc3RVcmxDb21wb25lbnQoZS5m
aWxlbmFtZSk7CisgICAgICAgIGxvZyhpc29sYXRlZFdvcmxkICsgIiBlcnJvciBldmVudCBsaXN0
ZW5lcjogIiArIGUubWVzc2FnZSArICIgYXQgIiArIHVybCArICI6IiArIGUubGluZW5vLCAiKiIp
OworICAgICAgICBlLnByZXZlbnREZWZhdWx0KCk7CisgICAgfSwgZmFsc2UpOworfTsKKworaWYg
KHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikgeworICAgIGxheW91dFRlc3RDb250cm9sbGVy
LmR1bXBBc1RleHQoKTsKKyAgICBsYXlvdXRUZXN0Q29udHJvbGxlci53YWl0VW50aWxEb25lKCk7
CisgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuYWRkVXNlclNjcmlwdCgiKCIgKyBlcnJvckhhbmRs
ZXJzICsgIikoJ3VzZXIgc2NyaXB0Jyk7ICgiICsgdGhyb3dFeGNlcHRpb25zICsgIikoJ3VzZXIg
c2NyaXB0JykiLCBmYWxzZSwgdHJ1ZSk7Cit9CisKK3Rocm93RXhjZXB0aW9ucygibWFpbiB3b3Js
ZCIpOworCis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL1dlYkNvcmUv
QW5kcm9pZC5qc2NiaW5kaW5ncy5tayBiL1dlYkNvcmUvQW5kcm9pZC5qc2NiaW5kaW5ncy5tawpp
bmRleCA2NTNkZmVjLi5lN2ZkMmZjIDEwMDY0NAotLS0gYS9XZWJDb3JlL0FuZHJvaWQuanNjYmlu
ZGluZ3MubWsKKysrIGIvV2ViQ29yZS9BbmRyb2lkLmpzY2JpbmRpbmdzLm1rCkBAIC0xMDIsNiAr
MTAyLDcgQEAgTE9DQUxfU1JDX0ZJTEVTICs9IFwKIAliaW5kaW5ncy9qcy9KU0RldmljZU9yaWVu
dGF0aW9uRXZlbnRDdXN0b20uY3BwIFwKIAliaW5kaW5ncy9qcy9KU0RvY3VtZW50Q3VzdG9tLmNw
cCBcCiAJYmluZGluZ3MvanMvSlNFbGVtZW50Q3VzdG9tLmNwcCBcCisJYmluZGluZ3MvanMvSlNF
cnJvckhhbmRsZXIuY3BwIFwKIAliaW5kaW5ncy9qcy9KU0V2ZW50Q3VzdG9tLmNwcCBcCiAJYmlu
ZGluZ3MvanMvSlNFdmVudExpc3RlbmVyLmNwcCBcCiAJYmluZGluZ3MvanMvSlNFdmVudFRhcmdl
dC5jcHAgXApAQCAtMTcwLDcgKzE3MSw2IEBAIExPQ0FMX1NSQ19GSUxFUyArPSBcCiAJYmluZGlu
Z3MvanMvSlNXZWJLaXRQb2ludEN1c3RvbS5jcHAgXAogCWJpbmRpbmdzL2pzL0pTV29ya2VyQ29u
dGV4dEJhc2UuY3BwIFwKIAliaW5kaW5ncy9qcy9KU1dvcmtlckNvbnRleHRDdXN0b20uY3BwIFwK
LQliaW5kaW5ncy9qcy9KU1dvcmtlckNvbnRleHRFcnJvckhhbmRsZXIuY3BwIFwKIAliaW5kaW5n
cy9qcy9KU1dvcmtlckN1c3RvbS5jcHAgXAogCWJpbmRpbmdzL2pzL0pTWE1MSHR0cFJlcXVlc3RD
dXN0b20uY3BwIFwKIAliaW5kaW5ncy9qcy9KU1hNTEh0dHBSZXF1ZXN0VXBsb2FkQ3VzdG9tLmNw
cCBcCmRpZmYgLS1naXQgYS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0IGIvV2ViQ29yZS9DTWFrZUxp
c3RzLnR4dAppbmRleCBhNGE2ODU5Li4zZDIzNmNlIDEwMDY0NAotLS0gYS9XZWJDb3JlL0NNYWtl
TGlzdHMudHh0CisrKyBiL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKQEAgLTYyNCw2ICs2MjQsNyBA
QCBTRVQoV2ViQ29yZV9TT1VSQ0VTCiAgICAgYmluZGluZ3MvanMvSlNEZXZpY2VPcmllbnRhdGlv
bkV2ZW50Q3VzdG9tLmNwcAogICAgIGJpbmRpbmdzL2pzL0pTRG9jdW1lbnRDdXN0b20uY3BwCiAg
ICAgYmluZGluZ3MvanMvSlNFbGVtZW50Q3VzdG9tLmNwcAorICAgIGJpbmRpbmdzL2pzL0pTRXJy
b3JIYW5kbGVyLmNwcAogICAgIGJpbmRpbmdzL2pzL0pTRXZlbnRDdXN0b20uY3BwCiAgICAgYmlu
ZGluZ3MvanMvSlNFdmVudExpc3RlbmVyLmNwcAogICAgIGJpbmRpbmdzL2pzL0pTRXZlbnRTb3Vy
Y2VDdXN0b20uY3BwCkBAIC02OTMsNyArNjk0LDYgQEAgU0VUKFdlYkNvcmVfU09VUkNFUwogICAg
IGJpbmRpbmdzL2pzL0pTV2ViU29ja2V0Q3VzdG9tLmNwcAogICAgIGJpbmRpbmdzL2pzL0pTV29y
a2VyQ29udGV4dEJhc2UuY3BwCiAgICAgYmluZGluZ3MvanMvSlNXb3JrZXJDb250ZXh0Q3VzdG9t
LmNwcAotICAgIGJpbmRpbmdzL2pzL0pTV29ya2VyQ29udGV4dEVycm9ySGFuZGxlci5jcHAKICAg
ICBiaW5kaW5ncy9qcy9KU1dvcmtlckN1c3RvbS5jcHAKICAgICBiaW5kaW5ncy9qcy9KU1hNTEh0
dHBSZXF1ZXN0Q3VzdG9tLmNwcAogICAgIGJpbmRpbmdzL2pzL0pTWE1MSHR0cFJlcXVlc3RVcGxv
YWRDdXN0b20uY3BwCmRpZmYgLS1naXQgYS9XZWJDb3JlL0NoYW5nZUxvZyBiL1dlYkNvcmUvQ2hh
bmdlTG9nCmluZGV4IGFkMGY1ZTMuLjk3NjIyZWYgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvQ2hhbmdl
TG9nCisrKyBiL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsOTIgQEAKKzIwMTAtMTAtMTkg
IGFsZXhAd2Via2l0Lm9yZyAgPGFsZXhAd2Via2l0Lm9yZ0AyNjhmNDVjYy1jZDA5LTA0MTAtYWIz
Yy1kNTI2OTFiNGRiZmM+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgV2ViQ29yZSBkb2Vzbid0IGZpcmUgd2luZG93Lm9uZXJyb3IgZXZlbnQgd2hlbiB1
bmNhdWdodCBKYXZhU2NyaXB0IGV4Y2VwdGlvbnMgYXJlIHRocm93bgorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODUxOQorCisgICAgICAgIFVuY2F1Z2h0
IGV4Y2VwdGlvbnMgYXJlIHByb3BhZ2F0ZWQgdG8gd2luZG93Lm9uZXJyb3IgaGFuZGVyIGlmIG9u
ZSBpcyBwcmVzZW50LgorICAgICAgICBUaGUgaGFuZGxlciBpcyBleHBlY3RlZCB0byBiZSBhIGZ1
bmN0aW9uIGFjY2VwdGluZyB0aHJlZSBhcmd1bWVudHM6IGVycm9yIG1lc3NhZ2UsCisgICAgICAg
IHJlc291cmNlIHVybCBhbmQgbGluZSBudW1iZXIgd2hlcmUgdGhlIGV4Y2VwdGlvbiBvY2N1cmVk
LgorCisgICAgICAgIEl0IHdhcyBkZWNpZGVkIHRvIGRpc3BhdGNoIEVycm9yRXZlbnQgdG8gYWxs
IGxpc3RlbmVycy9oYW5kbGVycyBubyBtYXR0ZXIgaWYgdGhleQorICAgICAgICB3ZXJlIGNyZWF0
ZWQgaW4gdGhlIHNhbWUgaXNvbGF0ZWQgd29ybGQgd2hlcmUgdGhlIGV4Y2VwdGlvbiBvY2N1cmVk
IG9yIG5vdC4KKworICAgICAgICBUZXN0czogZmFzdC9ldmVudHMvd2luZG93LW9uZXJyb3IxLmh0
bWwKKyAgICAgICAgICAgICAgIGZhc3QvZXZlbnRzL3dpbmRvdy1vbmVycm9yMTAuaHRtbAorICAg
ICAgICAgICAgICAgZmFzdC9ldmVudHMvd2luZG93LW9uZXJyb3IxMS5odG1sCisgICAgICAgICAg
ICAgICBmYXN0L2V2ZW50cy93aW5kb3ctb25lcnJvcjIuaHRtbAorICAgICAgICAgICAgICAgZmFz
dC9ldmVudHMvd2luZG93LW9uZXJyb3IzLmh0bWwKKyAgICAgICAgICAgICAgIGZhc3QvZXZlbnRz
L3dpbmRvdy1vbmVycm9yNC5odG1sCisgICAgICAgICAgICAgICBmYXN0L2V2ZW50cy93aW5kb3ct
b25lcnJvcjUuaHRtbAorICAgICAgICAgICAgICAgZmFzdC9ldmVudHMvd2luZG93LW9uZXJyb3I2
Lmh0bWwKKyAgICAgICAgICAgICAgIGZhc3QvZXZlbnRzL3dpbmRvdy1vbmVycm9yNy5odG1sCisg
ICAgICAgICAgICAgICBmYXN0L2V2ZW50cy93aW5kb3ctb25lcnJvcjguaHRtbAorICAgICAgICAg
ICAgICAgZmFzdC9ldmVudHMvd2luZG93LW9uZXJyb3I5Lmh0bWwKKyAgICAgICAgICAgICAgIGh0
dHAvdGVzdHMvc2VjdXJpdHkvd2luZG93LW9uZXJyb3ItZXhjZXB0aW9uLWluLWlmcmFtZS5odG1s
CisgICAgICAgICAgICAgICB1c2Vyc2NyaXB0cy93aW5kb3ctb25lcnJvci1mb3ItaXNvbGF0ZWQt
d29ybGQtMS5odG1sCisgICAgICAgICAgICAgICB1c2Vyc2NyaXB0cy93aW5kb3ctb25lcnJvci1m
b3ItaXNvbGF0ZWQtd29ybGQtMi5odG1sCisKKyAgICAgICAgKiBBbmRyb2lkLmpzY2JpbmRpbmdz
Lm1rOgorICAgICAgICAqIENNYWtlTGlzdHMudHh0OgorICAgICAgICAqIEdOVW1ha2VmaWxlLmFt
OgorICAgICAgICAqIFdlYkNvcmUuZ3lwaToKKyAgICAgICAgKiBXZWJDb3JlLm9yZGVyOgorICAg
ICAgICAqIFdlYkNvcmUucHJvOgorICAgICAgICAqIFdlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNw
cm9qOgorICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAg
ICAgKiBiaW5kaW5ncy9qcy9KU0JpbmRpbmdzQWxsSW5PbmUuY3BwOgorICAgICAgICAqIGJpbmRp
bmdzL2pzL0pTRE9NQmluZGluZy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpyZXBvcnRFeGNlcHRp
b24pOgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pTRXJyb3JIYW5kbGVyLmNwcDogQWRkZWQuCisg
ICAgICAgIChXZWJDb3JlOjpKU0Vycm9ySGFuZGxlcjo6SlNFcnJvckhhbmRsZXIpOgorICAgICAg
ICAoV2ViQ29yZTo6SlNFcnJvckhhbmRsZXI6On5KU0Vycm9ySGFuZGxlcik6CisgICAgICAgIChX
ZWJDb3JlOjpKU0Vycm9ySGFuZGxlcjo6aGFuZGxlRXZlbnQpOgorICAgICAgICAqIGJpbmRpbmdz
L2pzL0pTRXJyb3JIYW5kbGVyLmg6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6SlNFcnJvckhh
bmRsZXI6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpjcmVhdGVKU0Vycm9ySGFuZGxlcik6
CisgICAgICAgICogYmluZGluZ3MvanMvSlNXb3JrZXJDb250ZXh0RXJyb3JIYW5kbGVyLmNwcDog
UmVtb3ZlZC4KKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU1dvcmtlckNvbnRleHRFcnJvckhhbmRs
ZXIuaDogUmVtb3ZlZC4gVGhpcyBjbGFzcyB3YXMgcmVmYWN0b3JlZCBpbnRvIG1vcmUgZ2VuZXJh
bAorICAgICAgICBKU0Vycm9ySGFuZGxlciB0aGF0IHJlcHJlc2VudHMgZ2xvYmFsIG9uZXJybyBo
YW5kZXIgb24gV29ya2VyIENvbnRleHQgb3Igb24gRE9NV2luZG93LgorICAgICAgICAqIGJpbmRp
bmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtOgorICAgICAgICAqIGJpbmRpbmdzL3Njcmlw
dHMvQ29kZUdlbmVyYXRvclY4LnBtOgorICAgICAgICAqIGJpbmRpbmdzL3Y4L1Y4Q29uc29sZU1l
c3NhZ2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6VjhDb25zb2xlTWVzc2FnZTo6ZGlzcGF0Y2hO
b3cpOgorICAgICAgICAoV2ViQ29yZTo6VjhDb25zb2xlTWVzc2FnZTo6aGFuZGxlcik6IHRoZSBt
ZXRob2Qgd2FzIGNoYW5nZWQgdG8gdXNlIGdlbmVyaWMgV2ViQ29yZSBleGNlcHRpb24KKyAgICAg
ICAgcmVwb3J0aW5nIG1lY2hhbmlzbSB3aGljaCBpcyBhbHNvIHVzZWQgYnkgSlNDIGJpbmRpbmdz
LgorICAgICAgICAqIGJpbmRpbmdzL3Y4L1Y4Q29uc29sZU1lc3NhZ2UuaDoKKyAgICAgICAgKFdl
YkNvcmU6OlY4Q29uc29sZU1lc3NhZ2U6OlNjb3BlOjpTY29wZSk6CisgICAgICAgIChXZWJDb3Jl
OjpWOENvbnNvbGVNZXNzYWdlOjpTY29wZTo6flNjb3BlKToKKyAgICAgICAgKiBiaW5kaW5ncy92
OC9WOFdpbmRvd0Vycm9ySGFuZGxlci5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6VjhX
aW5kb3dFcnJvckhhbmRsZXI6OlY4V2luZG93RXJyb3JIYW5kbGVyKToKKyAgICAgICAgKFdlYkNv
cmU6OlY4V2luZG93RXJyb3JIYW5kbGVyOjpjYWxsTGlzdGVuZXJGdW5jdGlvbik6CisgICAgICAg
ICogYmluZGluZ3MvdjgvVjhXaW5kb3dFcnJvckhhbmRsZXIuaDogQWRkZWQuCisgICAgICAgIChX
ZWJDb3JlOjpWOFdpbmRvd0Vycm9ySGFuZGxlcjo6Y3JlYXRlKToKKyAgICAgICAgKiBiaW5kaW5n
cy92OC9Xb3JrZXJDb250ZXh0RXhlY3V0aW9uUHJveHkuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
djhNZXNzYWdlSGFuZGxlcik6CisgICAgICAgICogYmluZGluZ3MvdjgvV29ya2VyU2NyaXB0Q29u
dHJvbGxlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpXb3JrZXJTY3JpcHRDb250cm9sbGVyOjpl
dmFsdWF0ZSk6CisgICAgICAgICogZG9tL0RvY3VtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OkRvY3VtZW50OjplcnJvckV2ZW50VGFyZ2V0KToKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50
Ojpsb2dFeGNlcHRpb25Ub0NvbnNvbGUpOgorICAgICAgICAqIGRvbS9Eb2N1bWVudC5oOgorICAg
ICAgICAqIGRvbS9TY3JpcHRFeGVjdXRpb25Db250ZXh0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OlNjcmlwdEV4ZWN1dGlvbkNvbnRleHQ6OlBlbmRpbmdFeGNlcHRpb246OlBlbmRpbmdFeGNlcHRp
b24pOgorICAgICAgICAoV2ViQ29yZTo6U2NyaXB0RXhlY3V0aW9uQ29udGV4dDo6U2NyaXB0RXhl
Y3V0aW9uQ29udGV4dCk6CisgICAgICAgIChXZWJDb3JlOjpTY3JpcHRFeGVjdXRpb25Db250ZXh0
OjpyZXBvcnRFeGNlcHRpb24pOiB0aGlzIG1ldGhvZCBpcyBub3QgdmlydHVhbCBhbnltb3JlIHRv
CisgICAgICAgIGVuc3VyZSB0aGF0IGVycm9yIGV2ZW50IGRpc3BhdGNoaW5nIGFsZ29yaXRobSBp
cyB0aGUgc2FtZSBpbiBXb3JrZXJDb250ZXh0IGFuZCBpbiBEb2N1bWVudC4KKyAgICAgICAgKFdl
YkNvcmU6OlNjcmlwdEV4ZWN1dGlvbkNvbnRleHQ6OmRpc3BhdGNoRXJyb3JFdmVudCk6CisgICAg
ICAgICogZG9tL1NjcmlwdEV4ZWN1dGlvbkNvbnRleHQuaDoKKyAgICAgICAgKiB3b3JrZXJzL0Rl
ZmF1bHRTaGFyZWRXb3JrZXJSZXBvc2l0b3J5LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OnBvc3RF
eGNlcHRpb25UYXNrKToKKyAgICAgICAgKiB3b3JrZXJzL1dvcmtlckNvbnRleHQuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6V29ya2VyQ29udGV4dDo6V29ya2VyQ29udGV4dCk6CisgICAgICAgIChX
ZWJDb3JlOjpXb3JrZXJDb250ZXh0OjplcnJvckV2ZW50VGFyZ2V0KToKKyAgICAgICAgKFdlYkNv
cmU6OldvcmtlckNvbnRleHQ6OmxvZ0V4Y2VwdGlvblRvQ29uc29sZSk6CisgICAgICAgICogd29y
a2Vycy9Xb3JrZXJDb250ZXh0Lmg6CisgICAgICAgICogd29ya2Vycy9Xb3JrZXJNZXNzYWdpbmdQ
cm94eS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpXb3JrZXJFeGNlcHRpb25UYXNrOjpwZXJmb3Jt
VGFzayk6CisKIDIwMTAtMTItMDkgIFl1cnkgU2VtaWtoYXRza3kgIDx5dXJ5c0BjaHJvbWl1bS5v
cmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgUGF2ZWwgRmVsZG1hbi4KZGlmZiAtLWdpdCBhL1dl
YkNvcmUvR05VbWFrZWZpbGUuYW0gYi9XZWJDb3JlL0dOVW1ha2VmaWxlLmFtCmluZGV4IGY0MTdh
MjQuLjE0MDUxMzIgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvR05VbWFrZWZpbGUuYW0KKysrIGIvV2Vi
Q29yZS9HTlVtYWtlZmlsZS5hbQpAQCAtNzQ1LDYgKzc0NSw4IEBAIHdlYmNvcmVfc291cmNlcyAr
PSBcCiAJV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0VsZW1lbnRDdXN0b20uY3BwIFwKIAlXZWJDb3Jl
L2JpbmRpbmdzL2pzL0pTRW50cnlDdXN0b20uY3BwIFwKIAlXZWJDb3JlL2JpbmRpbmdzL2pzL0pT
RW50cnlTeW5jQ3VzdG9tLmNwcCBcCisJV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0Vycm9ySGFuZGxl
ci5jcHAgXAorCVdlYkNvcmUvYmluZGluZ3MvanMvSlNFcnJvckhhbmRsZXIuaCBcCiAJV2ViQ29y
ZS9iaW5kaW5ncy9qcy9KU0V2ZW50Q3VzdG9tLmNwcCBcCiAJV2ViQ29yZS9iaW5kaW5ncy9qcy9K
U0V2ZW50TGlzdGVuZXIuY3BwIFwKIAlXZWJDb3JlL2JpbmRpbmdzL2pzL0pTRXZlbnRMaXN0ZW5l
ci5oIFwKQEAgLTg0Miw4ICs4NDQsNiBAQCB3ZWJjb3JlX3NvdXJjZXMgKz0gXAogCVdlYkNvcmUv
YmluZGluZ3MvanMvSlNXb3JrZXJDb250ZXh0QmFzZS5jcHAgXAogCVdlYkNvcmUvYmluZGluZ3Mv
anMvSlNXb3JrZXJDb250ZXh0QmFzZS5oIFwKIAlXZWJDb3JlL2JpbmRpbmdzL2pzL0pTV29ya2Vy
Q29udGV4dEN1c3RvbS5jcHAgXAotCVdlYkNvcmUvYmluZGluZ3MvanMvSlNXb3JrZXJDb250ZXh0
RXJyb3JIYW5kbGVyLmNwcCBcCi0JV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1dvcmtlckNvbnRleHRF
cnJvckhhbmRsZXIuaCBcCiAJV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1dvcmtlckN1c3RvbS5jcHAg
XAogCVdlYkNvcmUvYmluZGluZ3MvanMvSlNYTUxIdHRwUmVxdWVzdEN1c3RvbS5jcHAgXAogCVdl
YkNvcmUvYmluZGluZ3MvanMvSlNYTUxIdHRwUmVxdWVzdFVwbG9hZEN1c3RvbS5jcHAgXApkaWZm
IC0tZ2l0IGEvV2ViQ29yZS9XZWJDb3JlLmd5cGkgYi9XZWJDb3JlL1dlYkNvcmUuZ3lwaQppbmRl
eCA4ZDRlZDAyLi5kNzYxZGQ2IDEwMDY0NAotLS0gYS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQorKysg
Yi9XZWJDb3JlL1dlYkNvcmUuZ3lwaQpAQCAtNjI0LDYgKzYyNCw4IEBACiAgICAgICAgICAgICAn
YmluZGluZ3MvanMvSlNFbGVtZW50Q3VzdG9tLmNwcCcsCiAgICAgICAgICAgICAnYmluZGluZ3Mv
anMvSlNFbnRyeUN1c3RvbS5jcHAnLAogICAgICAgICAgICAgJ2JpbmRpbmdzL2pzL0pTRW50cnlT
eW5jQ3VzdG9tLmNwcCcsCisgICAgICAgICAgICAnYmluZGluZ3MvanMvSlNFcnJvckhhbmRsZXIu
Y3BwJywKKyAgICAgICAgICAgICdiaW5kaW5ncy9qcy9KU0Vycm9ySGFuZGxlci5oJywKICAgICAg
ICAgICAgICdiaW5kaW5ncy9qcy9KU0V2ZW50Q3VzdG9tLmNwcCcsCiAgICAgICAgICAgICAnYmlu
ZGluZ3MvanMvSlNFdmVudExpc3RlbmVyLmNwcCcsCiAgICAgICAgICAgICAnYmluZGluZ3MvanMv
SlNFdmVudExpc3RlbmVyLmgnLApAQCAtNzIxLDggKzcyMyw2IEBACiAgICAgICAgICAgICAnYmlu
ZGluZ3MvanMvSlNXb3JrZXJDb250ZXh0QmFzZS5jcHAnLAogICAgICAgICAgICAgJ2JpbmRpbmdz
L2pzL0pTV29ya2VyQ29udGV4dEJhc2UuaCcsCiAgICAgICAgICAgICAnYmluZGluZ3MvanMvSlNX
b3JrZXJDb250ZXh0Q3VzdG9tLmNwcCcsCi0gICAgICAgICAgICAnYmluZGluZ3MvanMvSlNXb3Jr
ZXJDb250ZXh0RXJyb3JIYW5kbGVyLmNwcCcsCi0gICAgICAgICAgICAnYmluZGluZ3MvanMvSlNX
b3JrZXJDb250ZXh0RXJyb3JIYW5kbGVyLmgnLAogICAgICAgICAgICAgJ2JpbmRpbmdzL2pzL0pT
V29ya2VyQ3VzdG9tLmNwcCcsCiAgICAgICAgICAgICAnYmluZGluZ3MvanMvSlNYTUxIdHRwUmVx
dWVzdEN1c3RvbS5jcHAnLAogICAgICAgICAgICAgJ2JpbmRpbmdzL2pzL0pTWE1MSHR0cFJlcXVl
c3RVcGxvYWRDdXN0b20uY3BwJywKQEAgLTk4NSw2ICs5ODUsOCBAQAogICAgICAgICAgICAgJ2Jp
bmRpbmdzL3Y4L1Y4UHJveHkuaCcsCiAgICAgICAgICAgICAnYmluZGluZ3MvdjgvVjhVdGlsaXRp
ZXMuY3BwJywKICAgICAgICAgICAgICdiaW5kaW5ncy92OC9WOFV0aWxpdGllcy5oJywKKyAgICAg
ICAgICAgICdiaW5kaW5ncy92OC9WOFdpbmRvd0Vycm9ySGFuZGxlci5jcHAnLAorICAgICAgICAg
ICAgJ2JpbmRpbmdzL3Y4L1Y4V2luZG93RXJyb3JIYW5kbGVyLmgnLAogICAgICAgICAgICAgJ2Jp
bmRpbmdzL3Y4L1Y4V29ya2VyQ29udGV4dEVycm9ySGFuZGxlci5jcHAnLAogICAgICAgICAgICAg
J2JpbmRpbmdzL3Y4L1Y4V29ya2VyQ29udGV4dEVycm9ySGFuZGxlci5oJywKICAgICAgICAgICAg
ICdiaW5kaW5ncy92OC9WOFdvcmtlckNvbnRleHRFdmVudExpc3RlbmVyLmNwcCcsCmRpZmYgLS1n
aXQgYS9XZWJDb3JlL1dlYkNvcmUub3JkZXIgYi9XZWJDb3JlL1dlYkNvcmUub3JkZXIKaW5kZXgg
MGZkYWJiMS4uMjA0OWZlMSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9XZWJDb3JlLm9yZGVyCisrKyBi
L1dlYkNvcmUvV2ViQ29yZS5vcmRlcgpAQCAtMjUyMDksMTMgKzI1MjA5LDkgQEAgX19aTjdXZWJD
b3JlMTVKU1dvcmtlckNvbnRleHQxMHNldFRpbWVvdXRFUE4zSlNDOUV4ZWNTdGF0ZUVSS05TMV83
QXJnTGlzdEUKIF9fWk43V2ViQ29yZTEzV29ya2VyQ29udGV4dDEwc2V0VGltZW91dEVQTlNfMTVT
Y2hlZHVsZWRBY3Rpb25FaQogX19aTjdXZWJDb3JlMTdXb3JrZXJTaGFyZWRUaW1lcjExc2V0Rmly
ZVRpbWVFZAogX19aTjdXZWJDb3JlMTVTY2hlZHVsZWRBY3Rpb243ZXhlY3V0ZUVQTlNfMTNXb3Jr
ZXJDb250ZXh0RQotX19aTjdXZWJDb3JlMjdKU1dvcmtlckNvbnRleHRFcnJvckhhbmRsZXJDMUVQ
TjNKU0M4SlNPYmplY3RFUzNfYlBOU18xNURPTVdyYXBwZXJXb3JsZEUKLV9fWk43V2ViQ29yZTI3
SlNXb3JrZXJDb250ZXh0RXJyb3JIYW5kbGVyQzJFUE4zSlNDOEpTT2JqZWN0RVMzX2JQTlNfMTVE
T01XcmFwcGVyV29ybGRFCiBfX1pON1dlYkNvcmUxMEVycm9yRXZlbnRDMUVSS05TXzZTdHJpbmdF
UzNfagogX19aTjdXZWJDb3JlMTBFcnJvckV2ZW50QzJFUktOU182U3RyaW5nRVMzX2oKLV9fWk43
V2ViQ29yZTI3SlNXb3JrZXJDb250ZXh0RXJyb3JIYW5kbGVyMTFoYW5kbGVFdmVudEVQTlNfMjJT
Y3JpcHRFeGVjdXRpb25Db250ZXh0RVBOU181RXZlbnRFCiBfX1pON1dlYkNvcmUxMEVycm9yRXZl
bnREMEV2Ci1fX1pON1dlYkNvcmUyN0pTV29ya2VyQ29udGV4dEVycm9ySGFuZGxlckQwRXYKIF9f
Wk43V2ViQ29yZTE3anNXb3JrZXJPbm1lc3NhZ2VFUE4zSlNDOUV4ZWNTdGF0ZUVOUzBfN0pTVmFs
dWVFUktOUzBfMTBJZGVudGlmaWVyRQogX19aTjdXZWJDb3JlMzRqc1dvcmtlclByb3RvdHlwZUZ1
bmN0aW9uVGVybWluYXRlRVBOM0pTQzlFeGVjU3RhdGVFUE5TMF84SlNPYmplY3RFTlMwXzdKU1Zh
bHVlRVJLTlMwXzdBcmdMaXN0RQogX19aVGhuOF9ON1dlYkNvcmUyMFdvcmtlck1lc3NhZ2luZ1By
b3h5MTl3b3JrZXJDb250ZXh0Q2xvc2VkRXYKZGlmZiAtLWdpdCBhL1dlYkNvcmUvV2ViQ29yZS5w
cm8gYi9XZWJDb3JlL1dlYkNvcmUucHJvCmluZGV4IDBlYWZmNWEuLjllM2RkZWYgMTAwNjQ0Ci0t
LSBhL1dlYkNvcmUvV2ViQ29yZS5wcm8KKysrIGIvV2ViQ29yZS9XZWJDb3JlLnBybwpAQCAtMzg1
LDYgKzM4NSw3IEBAIHY4IHsKICAgICAgICAgYmluZGluZ3MvdjgvVjhOb2RlRmlsdGVyQ29uZGl0
aW9uLmNwcCBcCiAgICAgICAgIGJpbmRpbmdzL3Y4L1Y4UHJveHkuY3BwIFwKICAgICAgICAgYmlu
ZGluZ3MvdjgvVjhVdGlsaXRpZXMuY3BwIFwKKyAgICAgICAgYmluZGluZ3MvdjgvVjhXaW5kb3dF
cnJvckhhbmRsZXIuY3BwIFwKICAgICAgICAgYmluZGluZ3MvdjgvVjhXb3JrZXJDb250ZXh0RXZl
bnRMaXN0ZW5lci5jcHAgXAogICAgICAgICBiaW5kaW5ncy92OC9Xb3JrZXJDb250ZXh0RXhlY3V0
aW9uUHJveHkuY3BwIFwKICAgICAgICAgYmluZGluZ3MvdjgvV29ya2VyU2NyaXB0Q29udHJvbGxl
ci5jcHAgXApAQCAtNTI5LDYgKzUzMCw3IEBAIHY4IHsKICAgICAgICAgYmluZGluZ3MvanMvSlNE
ZXZpY2VPcmllbnRhdGlvbkV2ZW50Q3VzdG9tLmNwcCBcCiAgICAgICAgIGJpbmRpbmdzL2pzL0pT
RG9jdW1lbnRDdXN0b20uY3BwIFwKICAgICAgICAgYmluZGluZ3MvanMvSlNFbGVtZW50Q3VzdG9t
LmNwcCBcCisgICAgICAgIGJpbmRpbmdzL2pzL0pTRXJyb3JIYW5kbGVyLmNwcCBcCiAgICAgICAg
IGJpbmRpbmdzL2pzL0pTRXZlbnRDdXN0b20uY3BwIFwKICAgICAgICAgYmluZGluZ3MvanMvSlNF
dmVudExpc3RlbmVyLmNwcCBcCiAgICAgICAgIGJpbmRpbmdzL2pzL0pTRXZlbnRTb3VyY2VDdXN0
b20uY3BwIFwKQEAgLTU4OCw3ICs1OTAsNiBAQCB2OCB7CiAgICAgICAgIGJpbmRpbmdzL2pzL0pT
V2ViS2l0Q1NTS2V5ZnJhbWVzUnVsZUN1c3RvbS5jcHAgXAogICAgICAgICBiaW5kaW5ncy9qcy9K
U1dlYktpdENTU01hdHJpeEN1c3RvbS5jcHAgXAogICAgICAgICBiaW5kaW5ncy9qcy9KU1dlYktp
dFBvaW50Q3VzdG9tLmNwcCBcCi0gICAgICAgIGJpbmRpbmdzL2pzL0pTV29ya2VyQ29udGV4dEVy
cm9ySGFuZGxlci5jcHAgXAogICAgICAgICBiaW5kaW5ncy9qcy9KU1hNTEh0dHBSZXF1ZXN0Q3Vz
dG9tLmNwcCBcCiAgICAgICAgIGJpbmRpbmdzL2pzL0pTWE1MSHR0cFJlcXVlc3RVcGxvYWRDdXN0
b20uY3BwIFwKICAgICAgICAgYmluZGluZ3MvanMvU2NoZWR1bGVkQWN0aW9uLmNwcCBcCkBAIC0x
NDU4LDYgKzE0NTksNyBAQCB2OCB7CiAgICAgICAgIGJpbmRpbmdzL3Y4L1Y4TlBVdGlscy5oIFwK
ICAgICAgICAgYmluZGluZ3MvdjgvVjhQcm94eS5oIFwKICAgICAgICAgYmluZGluZ3MvdjgvVjhV
dGlsaXRpZXMuaCBcCisgICAgICAgIGJpbmRpbmdzL3Y4L1Y4V2luZG93RXJyb3JIYW5kbGVyLmgg
XAogICAgICAgICBiaW5kaW5ncy92OC9WOFdvcmtlckNvbnRleHRFdmVudExpc3RlbmVyLmggXAog
ICAgICAgICBiaW5kaW5ncy92OC9Xb3JrZXJDb250ZXh0RXhlY3V0aW9uUHJveHkuaCBcCiAgICAg
ICAgIGJpbmRpbmdzL3Y4L1dvcmtlclNjcmlwdENvbnRyb2xsZXIuaCBcCkBAIC0xNDg0LDYgKzE0
ODYsNyBAQCB2OCB7CiAgICAgICAgIGJpbmRpbmdzL2pzL0pTRE9NV2luZG93Q3VzdG9tLmggXAog
ICAgICAgICBiaW5kaW5ncy9qcy9KU0RPTVdpbmRvd1NoZWxsLmggXAogICAgICAgICBiaW5kaW5n
cy9qcy9KU0RPTVdyYXBwZXIuaCBcCisgICAgICAgIGJpbmRpbmdzL2pzL0pTRXJyb3JIYW5kbGVy
LmggXAogICAgICAgICBiaW5kaW5ncy9qcy9KU0V2ZW50TGlzdGVuZXIuaCBcCiAgICAgICAgIGJp
bmRpbmdzL2pzL0pTRXZlbnRUYXJnZXQuaCBcCiAgICAgICAgIGJpbmRpbmdzL2pzL0pTSGlzdG9y
eUN1c3RvbS5oIFwKQEAgLTE1MDEsNyArMTUwNCw2IEBAIHY4IHsKICAgICAgICAgYmluZGluZ3Mv
anMvSlNQbHVnaW5FbGVtZW50RnVuY3Rpb25zLmggXAogICAgICAgICBiaW5kaW5ncy9qcy9KU1N0
b3JhZ2VDdXN0b20uaCBcCiAgICAgICAgIGJpbmRpbmdzL2pzL0pTV29ya2VyQ29udGV4dEJhc2Uu
aCBcCi0gICAgICAgIGJpbmRpbmdzL2pzL0pTV29ya2VyQ29udGV4dEVycm9ySGFuZGxlci5oIFwK
ICAgICAgICAgYmluZGluZ3MvanMvSmF2YVNjcmlwdENhbGxGcmFtZS5oIFwKICAgICAgICAgYmlu
ZGluZ3MvanMvU2NoZWR1bGVkQWN0aW9uLmggXAogICAgICAgICBiaW5kaW5ncy9qcy9TY3JpcHRD
YWNoZWRGcmFtZURhdGEuaCBcCmRpZmYgLS1naXQgYS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dl
YkNvcmUudmNwcm9qIGIvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvagppbmRl
eCAzMDA1MWRlLi5jOTdmMDFmIDEwMDc1NQotLS0gYS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dl
YkNvcmUudmNwcm9qCisrKyBiL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oK
QEAgLTU3ODAyLDYgKzU3ODAyLDYzIEBACiAJCQkJPC9GaWxlPgogCQkJCTxGaWxlCiAJCQkJCVJl
bGF0aXZlUGF0aD0iLi5cYmluZGluZ3NcanNcSlNET01XaW5kb3dTaGVsbC5jcHAiCisJCQkJCVJl
bGF0aXZlUGF0aD0iLi5cYmluZGluZ3NcanNcSlNFcnJvckhhbmRsZXIuY3BwIgorCQkJCQk+CisJ
CQkJCTxGaWxlQ29uZmlndXJhdGlvbgorCQkJCQkJTmFtZT0iRGVidWd8V2luMzIiCisJCQkJCQlF
eGNsdWRlZEZyb21CdWlsZD0idHJ1ZSIKKwkJCQkJCT4KKwkJCQkJCTxUb29sCisJCQkJCQkJTmFt
ZT0iVkNDTENvbXBpbGVyVG9vbCIKKwkJCQkJCS8+CisJCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+
CisJCQkJCTxGaWxlQ29uZmlndXJhdGlvbgorCQkJCQkJTmFtZT0iUmVsZWFzZXxXaW4zMiIKKwkJ
CQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIgorCQkJCQkJPgorCQkJCQkJPFRvb2wKKwkJCQkJ
CQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIgorCQkJCQkJLz4KKwkJCQkJPC9GaWxlQ29uZmlndXJh
dGlvbj4KKwkJCQkJPEZpbGVDb25maWd1cmF0aW9uCisJCQkJCQlOYW1lPSJEZWJ1Z19JbnRlcm5h
bHxXaW4zMiIKKwkJCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIgorCQkJCQkJPgorCQkJCQkJ
PFRvb2wKKwkJCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIgorCQkJCQkJLz4KKwkJCQkJPC9G
aWxlQ29uZmlndXJhdGlvbj4KKwkJCQkJPEZpbGVDb25maWd1cmF0aW9uCisJCQkJCQlOYW1lPSJE
ZWJ1Z19DYWlyb3xXaW4zMiIKKwkJCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIgorCQkJCQkJ
PgorCQkJCQkJPFRvb2wKKwkJCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIgorCQkJCQkJLz4K
KwkJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4KKwkJCQkJPEZpbGVDb25maWd1cmF0aW9uCisJCQkJ
CQlOYW1lPSJSZWxlYXNlX0NhaXJvfFdpbjMyIgorCQkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRy
dWUiCisJCQkJCQk+CisJCQkJCQk8VG9vbAorCQkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wi
CisJCQkJCQkvPgorCQkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPgorCQkJCQk8RmlsZUNvbmZpZ3Vy
YXRpb24KKwkJCQkJCU5hbWU9IkRlYnVnX0FsbHxXaW4zMiIKKwkJCQkJCUV4Y2x1ZGVkRnJvbUJ1
aWxkPSJ0cnVlIgorCQkJCQkJPgorCQkJCQkJPFRvb2wKKwkJCQkJCQlOYW1lPSJWQ0NMQ29tcGls
ZXJUb29sIgorCQkJCQkJLz4KKwkJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4KKwkJCQk8L0ZpbGU+
CisJCQkJPEZpbGUKKwkJCQkJUmVsYXRpdmVQYXRoPSIuLlxiaW5kaW5nc1xqc1xKU0Vycm9ySGFu
ZGxlci5oIgorCQkJCQk+CisJCQkJPC9GaWxlPgorCQkJCTxGaWxlCisJCQkJCVJlbGF0aXZlUGF0
aD0iLi5cYmluZGluZ3NcanNcSlNFdmVudEN1c3RvbS5jcHAiCiAJCQkJCT4KIAkJCQkJPEZpbGVD
b25maWd1cmF0aW9uCiAJCQkJCQlOYW1lPSJEZWJ1Z3xXaW4zMiIKQEAgLTYxNTQxLDYyICs2MTU5
OCw2IEBACiAJCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+CiAJCQkJPC9GaWxlPgogCQkJCTxGaWxl
Ci0JCQkJCVJlbGF0aXZlUGF0aD0iLi5cYmluZGluZ3NcanNcSlNXb3JrZXJDb250ZXh0RXJyb3JI
YW5kbGVyLmNwcCIKLQkJCQkJPgotCQkJCQk8RmlsZUNvbmZpZ3VyYXRpb24KLQkJCQkJCU5hbWU9
IkRlYnVnfFdpbjMyIgotCQkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiCi0JCQkJCQk+Ci0J
CQkJCQk8VG9vbAotCQkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiCi0JCQkJCQkvPgotCQkJ
CQk8L0ZpbGVDb25maWd1cmF0aW9uPgotCQkJCQk8RmlsZUNvbmZpZ3VyYXRpb24KLQkJCQkJCU5h
bWU9IlJlbGVhc2V8V2luMzIiCi0JCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSIKLQkJCQkJ
CT4KLQkJCQkJCTxUb29sCi0JCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCIKLQkJCQkJCS8+
Ci0JCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+Ci0JCQkJCTxGaWxlQ29uZmlndXJhdGlvbgotCQkJ
CQkJTmFtZT0iRGVidWdfQ2Fpcm9fQ0ZMaXRlfFdpbjMyIgotCQkJCQkJRXhjbHVkZWRGcm9tQnVp
bGQ9InRydWUiCi0JCQkJCQk+Ci0JCQkJCQk8VG9vbAotCQkJCQkJCU5hbWU9IlZDQ0xDb21waWxl
clRvb2wiCi0JCQkJCQkvPgotCQkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPgotCQkJCQk8RmlsZUNv
bmZpZ3VyYXRpb24KLQkJCQkJCU5hbWU9IlJlbGVhc2VfQ2Fpcm9fQ0ZMaXRlfFdpbjMyIgotCQkJ
CQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiCi0JCQkJCQk+Ci0JCQkJCQk8VG9vbAotCQkJCQkJ
CU5hbWU9IlZDQ0xDb21waWxlclRvb2wiCi0JCQkJCQkvPgotCQkJCQk8L0ZpbGVDb25maWd1cmF0
aW9uPgotCQkJCQk8RmlsZUNvbmZpZ3VyYXRpb24KLQkJCQkJCU5hbWU9IkRlYnVnX0FsbHxXaW4z
MiIKLQkJCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIgotCQkJCQkJPgotCQkJCQkJPFRvb2wK
LQkJCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIgotCQkJCQkJLz4KLQkJCQkJPC9GaWxlQ29u
ZmlndXJhdGlvbj4KLQkJCQkJPEZpbGVDb25maWd1cmF0aW9uCi0JCQkJCQlOYW1lPSJSZWxlYXNl
X0xUQ0d8V2luMzIiCi0JCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSIKLQkJCQkJCT4KLQkJ
CQkJCTxUb29sCi0JCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCIKLQkJCQkJCS8+Ci0JCQkJ
CTwvRmlsZUNvbmZpZ3VyYXRpb24+Ci0JCQkJPC9GaWxlPgotCQkJCTxGaWxlCi0JCQkJCVJlbGF0
aXZlUGF0aD0iLi5cYmluZGluZ3NcanNcSlNXb3JrZXJDb250ZXh0RXJyb3JIYW5kbGVyLmgiCi0J
CQkJCT4KLQkJCQk8L0ZpbGU+Ci0JCQkJPEZpbGUKIAkJCQkJUmVsYXRpdmVQYXRoPSIuLlxiaW5k
aW5nc1xqc1xKU1dvcmtlckN1c3RvbS5jcHAiCiAJCQkJCT4KIAkJCQkJPEZpbGVDb25maWd1cmF0
aW9uCmRpZmYgLS1naXQgYS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
aiBiL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDJlYWYz
MzcuLmUzNmM2ZTYgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qCisrKyBiL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
CkBAIC01NTQ4LDggKzU1NDgsOCBAQAogCQlGMzkyMjQ5RDEyNkYxMUFFMDBBOTI2RDkgLyogU2Ny
aXB0Q2FsbFN0YWNrRmFjdG9yeS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gRjM5MjI0OUIxMjZGMTFBRTAwQTkyNkQ5IC8qIFNjcmlwdENhbGxTdGFja0Zh
Y3RvcnkuaCAqLzsgfTsKIAkJRjM5QkU5NUIxMjY3M0JGNDAwRTBBNjc0IC8qIFNjcmlwdEFyZ3Vt
ZW50cy5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBG
MzlCRTk1OTEyNjczQkY0MDBFMEE2NzQgLyogU2NyaXB0QXJndW1lbnRzLmNwcCAqLzsgfTsKIAkJ
RjM5QkU5NUMxMjY3M0JGNDAwRTBBNjc0IC8qIFNjcmlwdEFyZ3VtZW50cy5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjM5QkU5NUExMjY3M0JGNDAwRTBB
Njc0IC8qIFNjcmlwdEFyZ3VtZW50cy5oICovOyB9OwotCQlGM0Q0NjE0ODExNjFENTMyMDBDQTBE
MDkgLyogSlNXb3JrZXJDb250ZXh0RXJyb3JIYW5kbGVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEYzRDQ2MTQ2MTE2MUQ1MzIwMENBMEQwOSAvKiBK
U1dvcmtlckNvbnRleHRFcnJvckhhbmRsZXIuY3BwICovOyB9OwotCQlGM0Q0NjE0OTExNjFENTMy
MDBDQTBEMDkgLyogSlNXb3JrZXJDb250ZXh0RXJyb3JIYW5kbGVyLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGM0Q0NjE0NzExNjFENTMyMDBDQTBEMDkg
LyogSlNXb3JrZXJDb250ZXh0RXJyb3JIYW5kbGVyLmggKi87IH07CisJCUYzRDQ2MTQ4MTE2MUQ1
MzIwMENBMEQwOSAvKiBKU0Vycm9ySGFuZGxlci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGM0Q0NjE0NjExNjFENTMyMDBDQTBEMDkgLyogSlNFcnJv
ckhhbmRsZXIuY3BwICovOyB9OworCQlGM0Q0NjE0OTExNjFENTMyMDBDQTBEMDkgLyogSlNFcnJv
ckhhbmRsZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IEYzRDQ2MTQ3MTE2MUQ1MzIwMENBMEQwOSAvKiBKU0Vycm9ySGFuZGxlci5oICovOyB9OwogCQlG
NEVBRjRBRTEwQzc0MkIxMDA5MTAwRDMgLyogT3BlblR5cGVTYW5pdGl6ZXIuY3BwIGluIFNvdXJj
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjRFQUY0QUMxMEM3NDJCMTAw
OTEwMEQzIC8qIE9wZW5UeXBlU2FuaXRpemVyLmNwcCAqLzsgfTsKIAkJRjRFQUY0QUYxMEM3NDJC
MTAwOTEwMEQzIC8qIE9wZW5UeXBlU2FuaXRpemVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNEVBRjRBRDEwQzc0MkIxMDA5MTAwRDMgLyogT3BlblR5
cGVTYW5pdGl6ZXIuaCAqLzsgfTsKIAkJRjU1QjNEQUQxMjUxRjEyRDAwM0VGMjY5IC8qIEJhc2VU
ZXh0SW5wdXRUeXBlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IEY1NUIzRDc5MTI1MUYxMkQwMDNFRjI2OSAvKiBCYXNlVGV4dElucHV0VHlwZS5jcHAg
Ki87IH07CkBAIC0xMTgzOCw4ICsxMTgzOCw4IEBACiAJCUYzOTIyNDlCMTI2RjExQUUwMEE5MjZE
OSAvKiBTY3JpcHRDYWxsU3RhY2tGYWN0b3J5LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IFNjcmlwdENhbGxTdGFja0ZhY3RvcnkuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJRjM5QkU5NTkxMjY3M0JGNDAwRTBBNjc0IC8qIFNjcmlwdEFyZ3VtZW50cy5jcHAgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBTY3JpcHRBcmd1bWVudHMuY3BwOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlGMzlCRTk1QTEyNjczQkY0MDBFMEE2NzQgLyog
U2NyaXB0QXJndW1lbnRzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNjcmlw
dEFyZ3VtZW50cy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQlGM0Q0NjE0NjExNjFE
NTMyMDBDQTBEMDkgLyogSlNXb3JrZXJDb250ZXh0RXJyb3JIYW5kbGVyLmNwcCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTV29ya2VyQ29udGV4dEVycm9ySGFuZGxlci5j
cHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUYzRDQ2MTQ3MTE2MUQ1MzIwMENBMEQw
OSAvKiBKU1dvcmtlckNvbnRleHRFcnJvckhhbmRsZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gSlNXb3JrZXJDb250ZXh0RXJyb3JIYW5kbGVyLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CisJCUYzRDQ2MTQ2MTE2MUQ1MzIwMENBMEQwOSAvKiBKU0Vycm9ySGFuZGxl
ci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU0Vycm9ySGFuZGxl
ci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUYzRDQ2MTQ3MTE2MUQ1MzIwMENB
MEQwOSAvKiBKU0Vycm9ySGFuZGxlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBKU0Vycm9ySGFuZGxlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlGNEVBRjRB
QzEwQzc0MkIxMDA5MTAwRDMgLyogT3BlblR5cGVTYW5pdGl6ZXIuY3BwICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gT3BlblR5cGVTYW5pdGl6ZXIuY3BwOyBwYXRoID0gb3Bl
bnR5cGUvT3BlblR5cGVTYW5pdGl6ZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQlGNEVBRjRBRDEwQzc0MkIxMDA5MTAwRDMgLyogT3BlblR5cGVTYW5pdGl6ZXIuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gT3BlblR5cGVTYW5pdGl6ZXIuaDsgcGF0aCA9IG9w
ZW50eXBlL09wZW5UeXBlU2FuaXRpemVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CUY1MjNEMjNCMDJERTQzOTYwMTg2MzVDQSAvKiBIVE1MRG9jdW1lbnQuY3BwICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBpbmRlbnRXaWR0aCA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSFRNTERvY3VtZW50
LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgdGFiV2lkdGggPSA4OyB1c2VzVGFicyA9IDA7
IH07CkBAIC0xNzQyNCw2ICsxNzQyNCw4IEBACiAJCQkJQkNCRkI1M0IwRENEMjlDRjAwMTlCM0U1
IC8qIEpTRE9NV2luZG93U2hlbGwuaCAqLywKIAkJCQlCQzUzREFDNjExNDMzMDY0MDAwRDgxN0Ug
LyogSlNET01XcmFwcGVyLmNwcCAqLywKIAkJCQk2NUUwRTk0MzExMzNDODlGMDBCNENCMTAgLyog
SlNET01XcmFwcGVyLmggKi8sCisJCQkJRjNENDYxNDYxMTYxRDUzMjAwQ0EwRDA5IC8qIEpTRXJy
b3JIYW5kbGVyLmNwcCAqLywKKwkJCQlGM0Q0NjE0NzExNjFENTMyMDBDQTBEMDkgLyogSlNFcnJv
ckhhbmRsZXIuaCAqLywKIAkJCQlCQzYwOTAxRTBFOTFCOEVDMDAwQzY4QjUgLyogSlNFdmVudFRh
cmdldC5jcHAgKi8sCiAJCQkJQkM2MDkwMUQwRTkxQjhFQzAwMEM2OEI1IC8qIEpTRXZlbnRUYXJn
ZXQuaCAqLywKIAkJCQkzMzE0QUNFOTEwODkyMDg2MDAwRjBFNTYgLyogSlNFeGNlcHRpb25CYXNl
LmNwcCAqLywKQEAgLTE3NDM1LDggKzE3NDM3LDYgQEAKIAkJCQkxNENEOEQ4MTEwNkI1MjkwMDBB
NDZEMjMgLyogSlNTaGFyZWRXb3JrZXJDdXN0b20uY3BwICovLAogCQkJCUUxQzM2RDMyMEVCMEEw
OTQwMDc0MTBCQyAvKiBKU1dvcmtlckNvbnRleHRCYXNlLmNwcCAqLywKIAkJCQlFMUMzNkQzMzBF
QjBBMDk0MDA3NDEwQkMgLyogSlNXb3JrZXJDb250ZXh0QmFzZS5oICovLAotCQkJCUYzRDQ2MTQ2
MTE2MUQ1MzIwMENBMEQwOSAvKiBKU1dvcmtlckNvbnRleHRFcnJvckhhbmRsZXIuY3BwICovLAot
CQkJCUYzRDQ2MTQ3MTE2MUQ1MzIwMENBMEQwOSAvKiBKU1dvcmtlckNvbnRleHRFcnJvckhhbmRs
ZXIuaCAqLywKIAkJCQlCQ0EzNzhCQTBEMTVGNjQyMDBCNzkzRDYgLyogU2NoZWR1bGVkQWN0aW9u
LmNwcCAqLywKIAkJCQlCQ0EzNzhCQjBEMTVGNjQyMDBCNzkzRDYgLyogU2NoZWR1bGVkQWN0aW9u
LmggKi8sCiAJCQkJNDFGMUQyMUUwRUYzNUMyQTAwREE4NzUzIC8qIFNjcmlwdENhY2hlZEZyYW1l
RGF0YS5jcHAgKi8sCkBAIC0yMTEwMCw3ICsyMTEwMCw3IEBACiAJCQkJRTFDQUE1QzYwRThCRDIz
NjAwQTczRUNBIC8qIEpTV29ya2VyLmggaW4gSGVhZGVycyAqLywKIAkJCQlFMTgyNTY5MDBFRjJC
MDJEMDA5MzMyNDIgLyogSlNXb3JrZXJDb250ZXh0LmggaW4gSGVhZGVycyAqLywKIAkJCQlFMUMz
NkQzNTBFQjBBMDk0MDA3NDEwQkMgLyogSlNXb3JrZXJDb250ZXh0QmFzZS5oIGluIEhlYWRlcnMg
Ki8sCi0JCQkJRjNENDYxNDkxMTYxRDUzMjAwQ0EwRDA5IC8qIEpTV29ya2VyQ29udGV4dEVycm9y
SGFuZGxlci5oIGluIEhlYWRlcnMgKi8sCisJCQkJRjNENDYxNDkxMTYxRDUzMjAwQ0EwRDA5IC8q
IEpTRXJyb3JIYW5kbGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQlFMUMzNjJFRjBFQUYyQUE5MDA3
NDEwQkMgLyogSlNXb3JrZXJMb2NhdGlvbi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRTEyNzFBNTgw
RUVFQ0RFNDAwRjYxMjEzIC8qIEpTV29ya2VyTmF2aWdhdG9yLmggaW4gSGVhZGVycyAqLywKIAkJ
CQlCQzM0OEJENDBEQjdGODA0MDA0QUJBQjkgLyogSlNYTUxIdHRwUmVxdWVzdC5oIGluIEhlYWRl
cnMgKi8sCkBAIC0yMzkxNSw3ICsyMzkxNSw3IEBACiAJCQkJRTE4MjU2OEYwRUYyQjAyRDAwOTMz
MjQyIC8qIEpTV29ya2VyQ29udGV4dC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlFMUMzNkQzNDBF
QjBBMDk0MDA3NDEwQkMgLyogSlNXb3JrZXJDb250ZXh0QmFzZS5jcHAgaW4gU291cmNlcyAqLywK
IAkJCQlFMTgyNThBQzBFRjNDRDcwMDA5MzMyNDIgLyogSlNXb3JrZXJDb250ZXh0Q3VzdG9tLmNw
cCBpbiBTb3VyY2VzICovLAotCQkJCUYzRDQ2MTQ4MTE2MUQ1MzIwMENBMEQwOSAvKiBKU1dvcmtl
ckNvbnRleHRFcnJvckhhbmRsZXIuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJRjNENDYxNDgxMTYx
RDUzMjAwQ0EwRDA5IC8qIEpTRXJyb3JIYW5kbGVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUUx
Q0E1Q0JDMEU4Q0RDQUYwMEU4RUY5MCAvKiBKU1dvcmtlckN1c3RvbS5jcHAgaW4gU291cmNlcyAq
LywKIAkJCQlFMUMzNjJGMDBFQUYyQUE5MDA3NDEwQkMgLyogSlNXb3JrZXJMb2NhdGlvbi5jcHAg
aW4gU291cmNlcyAqLywKIAkJCQlFMTI3MUE1OTBFRUVDREU0MDBGNjEyMTMgLyogSlNXb3JrZXJO
YXZpZ2F0b3IuY3BwIGluIFNvdXJjZXMgKi8sCmRpZmYgLS1naXQgYS9XZWJDb3JlL2JpbmRpbmdz
L2pzL0pTQmluZGluZ3NBbGxJbk9uZS5jcHAgYi9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTQmluZGlu
Z3NBbGxJbk9uZS5jcHAKaW5kZXggN2ZjNTc0MC4uZDJjMjdhOSAxMDA2NDQKLS0tIGEvV2ViQ29y
ZS9iaW5kaW5ncy9qcy9KU0JpbmRpbmdzQWxsSW5PbmUuY3BwCisrKyBiL1dlYkNvcmUvYmluZGlu
Z3MvanMvSlNCaW5kaW5nc0FsbEluT25lLmNwcApAQCAtNzIsNiArNzIsNyBAQAogI2luY2x1ZGUg
IkpTRGV2aWNlT3JpZW50YXRpb25FdmVudEN1c3RvbS5jcHAiCiAjaW5jbHVkZSAiSlNEb2N1bWVu
dEN1c3RvbS5jcHAiCiAjaW5jbHVkZSAiSlNFbGVtZW50Q3VzdG9tLmNwcCIKKyNpbmNsdWRlICJK
U0Vycm9ySGFuZGxlci5jcHAiCiAjaW5jbHVkZSAiSlNFdmVudEN1c3RvbS5jcHAiCiAjaW5jbHVk
ZSAiSlNFdmVudExpc3RlbmVyLmNwcCIKICNpbmNsdWRlICJKU0V2ZW50U291cmNlQ3VzdG9tLmNw
cCIKQEAgLTE0MSw3ICsxNDIsNiBAQAogI2luY2x1ZGUgIkpTV2ViU29ja2V0Q3VzdG9tLmNwcCIK
ICNpbmNsdWRlICJKU1dvcmtlckNvbnRleHRCYXNlLmNwcCIKICNpbmNsdWRlICJKU1dvcmtlckNv
bnRleHRDdXN0b20uY3BwIgotI2luY2x1ZGUgIkpTV29ya2VyQ29udGV4dEVycm9ySGFuZGxlci5j
cHAiCiAjaW5jbHVkZSAiSlNXb3JrZXJDdXN0b20uY3BwIgogI2luY2x1ZGUgIkpTWE1MSHR0cFJl
cXVlc3RDdXN0b20uY3BwIgogI2luY2x1ZGUgIkpTWE1MSHR0cFJlcXVlc3RVcGxvYWRDdXN0b20u
Y3BwIgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTUJpbmRpbmcuY3BwIGIv
V2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTUJpbmRpbmcuY3BwCmluZGV4IGNmMGExNmEuLmQ3OWVj
NWYgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01CaW5kaW5nLmNwcAorKysg
Yi9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NQmluZGluZy5jcHAKQEAgLTU1LDYgKzU1LDcgQEAK
ICNpbmNsdWRlICJQcm9jZXNzaW5nSW5zdHJ1Y3Rpb24uaCIKICNpbmNsdWRlICJSYW5nZUV4Y2Vw
dGlvbi5oIgogI2luY2x1ZGUgIlNjcmlwdENhY2hlZEZyYW1lRGF0YS5oIgorI2luY2x1ZGUgIlNj
cmlwdENhbGxTdGFjay5oIgogI2luY2x1ZGUgIlNjcmlwdENvbnRyb2xsZXIuaCIKICNpbmNsdWRl
ICJTZXR0aW5ncy5oIgogI2luY2x1ZGUgIldlYkNvcmVKU0NsaWVudERhdGEuaCIKQEAgLTU5OCw3
ICs1OTksNyBAQCB2b2lkIHJlcG9ydEV4Y2VwdGlvbihFeGVjU3RhdGUqIGV4ZWMsIEpTVmFsdWUg
ZXhjZXB0aW9uKQogICAgIGlmICghc2NyaXB0RXhlY3V0aW9uQ29udGV4dCkKICAgICAgICAgcmV0
dXJuOwogCi0gICAgc2NyaXB0RXhlY3V0aW9uQ29udGV4dC0+cmVwb3J0RXhjZXB0aW9uKHVzdHJp
bmdUb1N0cmluZyhlcnJvck1lc3NhZ2UpLCBsaW5lTnVtYmVyLCB1c3RyaW5nVG9TdHJpbmcoZXhj
ZXB0aW9uU291cmNlVVJMKSk7CisgICAgc2NyaXB0RXhlY3V0aW9uQ29udGV4dC0+cmVwb3J0RXhj
ZXB0aW9uKHVzdHJpbmdUb1N0cmluZyhlcnJvck1lc3NhZ2UpLCBsaW5lTnVtYmVyLCB1c3RyaW5n
VG9TdHJpbmcoZXhjZXB0aW9uU291cmNlVVJMKSwgMCk7CiB9CiAKIHZvaWQgcmVwb3J0Q3VycmVu
dEV4Y2VwdGlvbihFeGVjU3RhdGUqIGV4ZWMpCmRpZmYgLS1naXQgYS9XZWJDb3JlL2JpbmRpbmdz
L2pzL0pTRXJyb3JIYW5kbGVyLmNwcCBiL1dlYkNvcmUvYmluZGluZ3MvanMvSlNFcnJvckhhbmRs
ZXIuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjlkNzYyOTEKLS0tIC9k
ZXYvbnVsbAorKysgYi9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRXJyb3JIYW5kbGVyLmNwcApAQCAt
MCwwICsxLDExMiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMCBHb29nbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQorICog
bWV0OgorICoKKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJl
dGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlv
bnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCisgKiBjb3B5cmlnaHQg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyCisgKiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlCisgKiBkaXN0cmlidXRpb24uCisgKiAgICAgKiBOZWl0aGVyIHRoZSBuYW1l
IG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCisgKiBjb250cmlidXRvcnMgbWF5
IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQorICog
dGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4K
KyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVS
UyBBTkQgQ09OVFJJQlVUT1JTCisgKiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgVEhFIElNUExJ
RUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCisgKiBBIFBB
UlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENP
UFlSSUdIVAorICogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCisgKiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNF
UVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBQUk9D
VVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKKyAq
IERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5EIE9OIEFOWQorICogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKworI2luY2x1ZGUgIkpTRXJyb3JIYW5k
bGVyLmgiCisKKyNpbmNsdWRlICJFcnJvckV2ZW50LmgiCisjaW5jbHVkZSAiRXZlbnQuaCIKKyNp
bmNsdWRlICJKU0V2ZW50LmgiCisjaW5jbHVkZSA8cnVudGltZS9KU0xvY2suaD4KKwordXNpbmcg
bmFtZXNwYWNlIEpTQzsKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitKU0Vycm9ySGFuZGxlcjo6
SlNFcnJvckhhbmRsZXIoSlNPYmplY3QqIGZ1bmN0aW9uLCBKU09iamVjdCogd3JhcHBlciwgYm9v
bCBpc0F0dHJpYnV0ZSwgRE9NV3JhcHBlcldvcmxkKiBpc29sYXRlZFdvcmxkKQorICAgIDogSlNF
dmVudExpc3RlbmVyKGZ1bmN0aW9uLCB3cmFwcGVyLCBpc0F0dHJpYnV0ZSwgaXNvbGF0ZWRXb3Js
ZCkKK3sKK30KKworSlNFcnJvckhhbmRsZXI6On5KU0Vycm9ySGFuZGxlcigpCit7Cit9CisKK3Zv
aWQgSlNFcnJvckhhbmRsZXI6OmhhbmRsZUV2ZW50KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIHNj
cmlwdEV4ZWN1dGlvbkNvbnRleHQsIEV2ZW50KiBldmVudCkKK3sKKyAgICBBU1NFUlQoc2NyaXB0
RXhlY3V0aW9uQ29udGV4dCk7CisgICAgaWYgKCFzY3JpcHRFeGVjdXRpb25Db250ZXh0KQorICAg
ICAgICByZXR1cm47CisKKyAgICBBU1NFUlQoZXZlbnQtPmlzRXJyb3JFdmVudCgpKTsKKyAgICBF
cnJvckV2ZW50KiBlcnJvckV2ZW50ID0gc3RhdGljX2Nhc3Q8RXJyb3JFdmVudCo+KGV2ZW50KTsK
KworICAgIEpTTG9jayBsb2NrKFNpbGVuY2VBc3NlcnRpb25zT25seSk7CisKKyAgICBKU09iamVj
dCoganNGdW5jdGlvbiA9IHRoaXMtPmpzRnVuY3Rpb24oc2NyaXB0RXhlY3V0aW9uQ29udGV4dCk7
CisgICAgaWYgKCFqc0Z1bmN0aW9uKQorICAgICAgICByZXR1cm47CisKKyAgICBKU0RPTUdsb2Jh
bE9iamVjdCogZ2xvYmFsT2JqZWN0ID0gdG9KU0RPTUdsb2JhbE9iamVjdChzY3JpcHRFeGVjdXRp
b25Db250ZXh0LCBpc29sYXRlZFdvcmxkKCkpOworICAgIGlmICghZ2xvYmFsT2JqZWN0KQorICAg
ICAgICByZXR1cm47CisKKyAgICBFeGVjU3RhdGUqIGV4ZWMgPSBnbG9iYWxPYmplY3QtPmdsb2Jh
bEV4ZWMoKTsKKworICAgIENhbGxEYXRhIGNhbGxEYXRhOworICAgIENhbGxUeXBlIGNhbGxUeXBl
ID0ganNGdW5jdGlvbi0+Z2V0Q2FsbERhdGEoY2FsbERhdGEpOworCisgICAgaWYgKGNhbGxUeXBl
ICE9IENhbGxUeXBlTm9uZSkgeworCisgICAgICAgIHJlZigpOworCisgICAgICAgIEV2ZW50KiBz
YXZlZEV2ZW50ID0gZ2xvYmFsT2JqZWN0LT5jdXJyZW50RXZlbnQoKTsKKyAgICAgICAgZ2xvYmFs
T2JqZWN0LT5zZXRDdXJyZW50RXZlbnQoZXZlbnQpOworCisgICAgICAgIE1hcmtlZEFyZ3VtZW50
QnVmZmVyIGFyZ3M7CisgICAgICAgIGFyZ3MuYXBwZW5kKGpzU3RyaW5nKGV4ZWMsIGVycm9yRXZl
bnQtPm1lc3NhZ2UoKSkpOworICAgICAgICBhcmdzLmFwcGVuZChqc1N0cmluZyhleGVjLCBlcnJv
ckV2ZW50LT5maWxlbmFtZSgpKSk7CisgICAgICAgIGFyZ3MuYXBwZW5kKGpzTnVtYmVyKGVycm9y
RXZlbnQtPmxpbmVubygpKSk7CisKKyAgICAgICAgSlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRhID0g
Z2xvYmFsT2JqZWN0LT5nbG9iYWxEYXRhKCk7CisgICAgICAgIER5bmFtaWNHbG9iYWxPYmplY3RT
Y29wZSBnbG9iYWxPYmplY3RTY29wZShleGVjLCBnbG9iYWxEYXRhLmR5bmFtaWNHbG9iYWxPYmpl
Y3QgPyBnbG9iYWxEYXRhLmR5bmFtaWNHbG9iYWxPYmplY3QgOiBnbG9iYWxPYmplY3QpOworCisg
ICAgICAgIEpTVmFsdWUgdGhpc1ZhbHVlID0gZ2xvYmFsT2JqZWN0LT50b1RoaXNPYmplY3QoZXhl
Yyk7CisKKyAgICAgICAgZ2xvYmFsRGF0YS50aW1lb3V0Q2hlY2tlci5zdGFydCgpOworICAgICAg
ICBKU1ZhbHVlIHJldHVyblZhbHVlID0gSlNDOjpjYWxsKGV4ZWMsIGpzRnVuY3Rpb24sIGNhbGxU
eXBlLCBjYWxsRGF0YSwgdGhpc1ZhbHVlLCBhcmdzKTsKKyAgICAgICAgZ2xvYmFsRGF0YS50aW1l
b3V0Q2hlY2tlci5zdG9wKCk7CisKKyAgICAgICAgZ2xvYmFsT2JqZWN0LT5zZXRDdXJyZW50RXZl
bnQoc2F2ZWRFdmVudCk7CisKKyAgICAgICAgaWYgKGV4ZWMtPmhhZEV4Y2VwdGlvbigpKQorICAg
ICAgICAgICAgcmVwb3J0Q3VycmVudEV4Y2VwdGlvbihleGVjKTsKKyAgICAgICAgZWxzZSB7Cisg
ICAgICAgICAgICBib29sIHJldHZhbGJvb2w7CisgICAgICAgICAgICBpZiAocmV0dXJuVmFsdWUu
Z2V0Qm9vbGVhbihyZXR2YWxib29sKSAmJiAhcmV0dmFsYm9vbCkKKyAgICAgICAgICAgICAgICBl
dmVudC0+cHJldmVudERlZmF1bHQoKTsKKyAgICAgICAgfQorCisgICAgICAgIGRlcmVmKCk7Cisg
ICAgfQorfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9XZWJDb3JlL2Jp
bmRpbmdzL2pzL0pTRXJyb3JIYW5kbGVyLmggYi9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRXJyb3JI
YW5kbGVyLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOTU3ZmQ4MQotLS0g
L2Rldi9udWxsCisrKyBiL1dlYkNvcmUvYmluZGluZ3MvanMvSlNFcnJvckhhbmRsZXIuaApAQCAt
MCwwICsxLDY0IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEwIEdvb2dsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCisgKiBt
ZXQ6CisgKgorICogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqICAgICAqIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKKyAqIGNvcHlyaWdodCBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIKKyAqIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUKKyAqIGRpc3RyaWJ1dGlvbi4KKyAqICAgICAqIE5laXRoZXIgdGhlIG5hbWUg
b2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKKyAqIGNvbnRyaWJ1dG9ycyBtYXkg
YmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCisgKiB0
aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgor
ICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJT
IEFORCBDT05UUklCVVRPUlMKKyAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBUSEUgSU1QTElF
RCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKKyAqIEEgUEFS
VElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09Q
WVJJR0hUCisgKiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNU
LCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKKyAqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VR
VUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFBST0NV
UkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAorICog
REFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNF
RCBBTkQgT04gQU5ZCisgKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNU
LCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1Ig
T1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMg
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuCisgKi8KKworI2lmbmRlZiBKU0Vycm9ySGFuZGxlcl9oCisjZGVmaW5lIEpTRXJyb3JIYW5k
bGVyX2gKKworI2luY2x1ZGUgIkpTRXZlbnRMaXN0ZW5lci5oIgorCituYW1lc3BhY2UgV2ViQ29y
ZSB7CisKK2NsYXNzIEpTRXJyb3JIYW5kbGVyIDogcHVibGljIEpTRXZlbnRMaXN0ZW5lciB7Citw
dWJsaWM6CisgICAgc3RhdGljIFBhc3NSZWZQdHI8SlNFcnJvckhhbmRsZXI+IGNyZWF0ZShKU0M6
OkpTT2JqZWN0KiBsaXN0ZW5lciwgSlNDOjpKU09iamVjdCogd3JhcHBlciwgYm9vbCBpc0F0dHJp
YnV0ZSwgRE9NV3JhcHBlcldvcmxkKiBpc29sYXRlZFdvcmxkKQorICAgIHsKKyAgICAgICAgcmV0
dXJuIGFkb3B0UmVmKG5ldyBKU0Vycm9ySGFuZGxlcihsaXN0ZW5lciwgd3JhcHBlciwgaXNBdHRy
aWJ1dGUsIGlzb2xhdGVkV29ybGQpKTsKKyAgICB9CisKKyAgICB2aXJ0dWFsIH5KU0Vycm9ySGFu
ZGxlcigpOworCitwcml2YXRlOgorICAgIEpTRXJyb3JIYW5kbGVyKEpTQzo6SlNPYmplY3QqIGZ1
bmN0aW9uLCBKU0M6OkpTT2JqZWN0KiB3cmFwcGVyLCBib29sIGlzQXR0cmlidXRlLCBET01XcmFw
cGVyV29ybGQqIGlzb2xhdGVkV29ybGQpOworICAgIHZpcnR1YWwgdm9pZCBoYW5kbGVFdmVudChT
Y3JpcHRFeGVjdXRpb25Db250ZXh0KiwgRXZlbnQqKTsKK307CisKKy8vIENyZWF0ZXMgYSBKUyBF
dmVudExpc3RlbmVyIGZvciAib25lcnJvciIgZXZlbnQgaGFuZGxlciBpbiB3b3JrZXIgY29udGV4
dC4gSXQgaGFzIGN1c3RvbSBpbXBsZW1lbnRhdGlvbiBiZWNhdXNlCisvLyB1bmxpa2Ugb3RoZXIg
ZXZlbnQgbGlzdGVuZXJzIGl0IGFjY2VwdHMgdGhyZWUgcGFyYW1ldGVycy4KK2lubGluZSBQYXNz
UmVmUHRyPEpTRXJyb3JIYW5kbGVyPiBjcmVhdGVKU0Vycm9ySGFuZGxlcihKU0M6OkV4ZWNTdGF0
ZSogZXhlYywgSlNDOjpKU1ZhbHVlIGxpc3RlbmVyLCBKU0M6OkpTT2JqZWN0KiB3cmFwcGVyKQor
eworICAgIGlmICghbGlzdGVuZXIuaXNPYmplY3QoKSkKKyAgICAgICAgcmV0dXJuIDA7CisKKyAg
ICByZXR1cm4gSlNFcnJvckhhbmRsZXI6OmNyZWF0ZShhc09iamVjdChsaXN0ZW5lciksIHdyYXBw
ZXIsIHRydWUsIGN1cnJlbnRXb3JsZChleGVjKSk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNv
cmUKKworI2VuZGlmIC8vIEpTRXJyb3JIYW5kbGVyX2gKZGlmZiAtLWdpdCBhL1dlYkNvcmUvYmlu
ZGluZ3MvanMvSlNXb3JrZXJDb250ZXh0RXJyb3JIYW5kbGVyLmNwcCBiL1dlYkNvcmUvYmluZGlu
Z3MvanMvSlNXb3JrZXJDb250ZXh0RXJyb3JIYW5kbGVyLmNwcApkZWxldGVkIGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggZjdkMmIwMi4uMDAwMDAwMAotLS0gYS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pT
V29ya2VyQ29udGV4dEVycm9ySGFuZGxlci5jcHAKKysrIC9kZXYvbnVsbApAQCAtMSwxMTYgKzAs
MCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMCBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQotICogbWV0OgotICoK
LSAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUg
YWJvdmUgY29weXJpZ2h0Ci0gKiBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmlu
YXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCi0gKiBjb3B5cmlnaHQgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCi0gKiBp
biB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlCi0gKiBkaXN0cmlidXRpb24uCi0gKiAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2ds
ZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCi0gKiBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQg
dG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQotICogdGhpcyBzb2Z0
d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KLSAqCi0gKiBU
SElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09O
VFJJQlVUT1JTCi0gKiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVAotICogTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCi0gKiBBIFBBUlRJQ1VMQVIg
UFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAot
ICogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsCi0gKiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwg
REFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCi0gKiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBP
RiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKLSAqIERBVEEsIE9S
IFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9O
IEFOWQotICogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0gKiBPRiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICov
Ci0KLSNpbmNsdWRlICJjb25maWcuaCIKLQotI2lmIEVOQUJMRShXT1JLRVJTKQotCi0jaW5jbHVk
ZSAiSlNXb3JrZXJDb250ZXh0RXJyb3JIYW5kbGVyLmgiCi0KLSNpbmNsdWRlICJFcnJvckV2ZW50
LmgiCi0jaW5jbHVkZSAiRXZlbnQuaCIKLSNpbmNsdWRlICJKU0V2ZW50LmgiCi0jaW5jbHVkZSA8
cnVudGltZS9KU0xvY2suaD4KLQotdXNpbmcgbmFtZXNwYWNlIEpTQzsKLQotbmFtZXNwYWNlIFdl
YkNvcmUgewotCi1KU1dvcmtlckNvbnRleHRFcnJvckhhbmRsZXI6OkpTV29ya2VyQ29udGV4dEVy
cm9ySGFuZGxlcihKU09iamVjdCogZnVuY3Rpb24sIEpTT2JqZWN0KiB3cmFwcGVyLCBib29sIGlz
QXR0cmlidXRlLCBET01XcmFwcGVyV29ybGQqIGlzb2xhdGVkV29ybGQpCi0gICAgOiBKU0V2ZW50
TGlzdGVuZXIoZnVuY3Rpb24sIHdyYXBwZXIsIGlzQXR0cmlidXRlLCBpc29sYXRlZFdvcmxkKQot
ewotfQotCi1KU1dvcmtlckNvbnRleHRFcnJvckhhbmRsZXI6On5KU1dvcmtlckNvbnRleHRFcnJv
ckhhbmRsZXIoKQotewotfQotCi12b2lkIEpTV29ya2VyQ29udGV4dEVycm9ySGFuZGxlcjo6aGFu
ZGxlRXZlbnQoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogc2NyaXB0RXhlY3V0aW9uQ29udGV4dCwg
RXZlbnQqIGV2ZW50KQotewotICAgIEFTU0VSVChzY3JpcHRFeGVjdXRpb25Db250ZXh0KTsKLSAg
ICBpZiAoIXNjcmlwdEV4ZWN1dGlvbkNvbnRleHQpCi0gICAgICAgIHJldHVybjsKLQotICAgIEpT
TG9jayBsb2NrKFNpbGVuY2VBc3NlcnRpb25zT25seSk7Ci0KLSAgICBKU09iamVjdCoganNGdW5j
dGlvbiA9IHRoaXMtPmpzRnVuY3Rpb24oc2NyaXB0RXhlY3V0aW9uQ29udGV4dCk7Ci0gICAgaWYg
KCFqc0Z1bmN0aW9uKQotICAgICAgICByZXR1cm47Ci0KLSAgICBKU0RPTUdsb2JhbE9iamVjdCog
Z2xvYmFsT2JqZWN0ID0gdG9KU0RPTUdsb2JhbE9iamVjdChzY3JpcHRFeGVjdXRpb25Db250ZXh0
LCBpc29sYXRlZFdvcmxkKCkpOwotICAgIGlmICghZ2xvYmFsT2JqZWN0KQotICAgICAgICByZXR1
cm47Ci0KLSAgICBFeGVjU3RhdGUqIGV4ZWMgPSBnbG9iYWxPYmplY3QtPmdsb2JhbEV4ZWMoKTsK
LQotICAgIENhbGxEYXRhIGNhbGxEYXRhOwotICAgIENhbGxUeXBlIGNhbGxUeXBlID0ganNGdW5j
dGlvbi0+Z2V0Q2FsbERhdGEoY2FsbERhdGEpOwotCi0gICAgaWYgKGNhbGxUeXBlICE9IENhbGxU
eXBlTm9uZSkgewotCi0gICAgICAgIHJlZigpOwotCi0gICAgICAgIEV2ZW50KiBzYXZlZEV2ZW50
ID0gZ2xvYmFsT2JqZWN0LT5jdXJyZW50RXZlbnQoKTsKLSAgICAgICAgZ2xvYmFsT2JqZWN0LT5z
ZXRDdXJyZW50RXZlbnQoZXZlbnQpOwotCi0gICAgICAgIEFTU0VSVChldmVudC0+aXNFcnJvckV2
ZW50KCkpOwotICAgICAgICBFcnJvckV2ZW50KiBlcnJvckV2ZW50ID0gc3RhdGljX2Nhc3Q8RXJy
b3JFdmVudCo+KGV2ZW50KTsKLQotICAgICAgICBNYXJrZWRBcmd1bWVudEJ1ZmZlciBhcmdzOwot
ICAgICAgICBhcmdzLmFwcGVuZChqc1N0cmluZyhleGVjLCBlcnJvckV2ZW50LT5tZXNzYWdlKCkp
KTsKLSAgICAgICAgYXJncy5hcHBlbmQoanNTdHJpbmcoZXhlYywgZXJyb3JFdmVudC0+ZmlsZW5h
bWUoKSkpOwotICAgICAgICBhcmdzLmFwcGVuZChqc051bWJlcihlcnJvckV2ZW50LT5saW5lbm8o
KSkpOwotCi0gICAgICAgIEpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSA9IGdsb2JhbE9iamVjdC0+
Z2xvYmFsRGF0YSgpOwotICAgICAgICBEeW5hbWljR2xvYmFsT2JqZWN0U2NvcGUgZ2xvYmFsT2Jq
ZWN0U2NvcGUoZXhlYywgZ2xvYmFsRGF0YS5keW5hbWljR2xvYmFsT2JqZWN0ID8gZ2xvYmFsRGF0
YS5keW5hbWljR2xvYmFsT2JqZWN0IDogZ2xvYmFsT2JqZWN0KTsKLQotICAgICAgICBKU1ZhbHVl
IHRoaXNWYWx1ZSA9IGdsb2JhbE9iamVjdC0+dG9UaGlzT2JqZWN0KGV4ZWMpOwotCi0gICAgICAg
IGdsb2JhbERhdGEudGltZW91dENoZWNrZXIuc3RhcnQoKTsKLSAgICAgICAgSlNWYWx1ZSByZXR1
cm5WYWx1ZSA9IEpTQzo6Y2FsbChleGVjLCBqc0Z1bmN0aW9uLCBjYWxsVHlwZSwgY2FsbERhdGEs
IHRoaXNWYWx1ZSwgYXJncyk7Ci0gICAgICAgIGdsb2JhbERhdGEudGltZW91dENoZWNrZXIuc3Rv
cCgpOwotCi0gICAgICAgIGdsb2JhbE9iamVjdC0+c2V0Q3VycmVudEV2ZW50KHNhdmVkRXZlbnQp
OwotCi0gICAgICAgIGlmIChleGVjLT5oYWRFeGNlcHRpb24oKSkKLSAgICAgICAgICAgIHJlcG9y
dEN1cnJlbnRFeGNlcHRpb24oZXhlYyk7Ci0gICAgICAgIGVsc2UgewotICAgICAgICAgICAgYm9v
bCByZXR2YWxib29sOwotICAgICAgICAgICAgaWYgKHJldHVyblZhbHVlLmdldEJvb2xlYW4ocmV0
dmFsYm9vbCkgJiYgIXJldHZhbGJvb2wpCi0gICAgICAgICAgICAgICAgZXZlbnQtPnByZXZlbnRE
ZWZhdWx0KCk7Ci0gICAgICAgIH0KLQotICAgICAgICBkZXJlZigpOwotICAgIH0KLX0KLQotfSAv
LyBuYW1lc3BhY2UgV2ViQ29yZQotCi0jZW5kaWYgLy8gRU5BQkxFKFdPUktFUlMpCmRpZmYgLS1n
aXQgYS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTV29ya2VyQ29udGV4dEVycm9ySGFuZGxlci5oIGIv
V2ViQ29yZS9iaW5kaW5ncy9qcy9KU1dvcmtlckNvbnRleHRFcnJvckhhbmRsZXIuaApkZWxldGVk
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYTE4ODI5OS4uMDAwMDAwMAotLS0gYS9XZWJDb3JlL2Jp
bmRpbmdzL2pzL0pTV29ya2VyQ29udGV4dEVycm9ySGFuZGxlci5oCisrKyAvZGV2L251bGwKQEAg
LTEsNjQgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMCBHb29nbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQotICog
bWV0OgotICoKLSAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJl
dGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAgICAgKiBSZWRpc3RyaWJ1dGlv
bnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCi0gKiBjb3B5cmlnaHQg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyCi0gKiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlCi0gKiBkaXN0cmlidXRpb24uCi0gKiAgICAgKiBOZWl0aGVyIHRoZSBuYW1l
IG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCi0gKiBjb250cmlidXRvcnMgbWF5
IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQotICog
dGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4K
LSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVS
UyBBTkQgQ09OVFJJQlVUT1JTCi0gKiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAotICogTElNSVRFRCBUTywgVEhFIElNUExJ
RUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCi0gKiBBIFBB
UlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENP
UFlSSUdIVAotICogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCi0gKiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNF
UVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCi0gKiBMSU1JVEVEIFRPLCBQUk9D
VVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKLSAq
IERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5EIE9OIEFOWQotICogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0gKiBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLgotICovCi0KLSNpZm5kZWYgSlNXb3JrZXJDb250ZXh0RXJyb3JIYW5kbGVyX2gKLSNkZWZp
bmUgSlNXb3JrZXJDb250ZXh0RXJyb3JIYW5kbGVyX2gKLQotI2luY2x1ZGUgIkpTRXZlbnRMaXN0
ZW5lci5oIgotCi1uYW1lc3BhY2UgV2ViQ29yZSB7Ci0KLWNsYXNzIEpTV29ya2VyQ29udGV4dEVy
cm9ySGFuZGxlciA6IHB1YmxpYyBKU0V2ZW50TGlzdGVuZXIgewotcHVibGljOgotICAgIHN0YXRp
YyBQYXNzUmVmUHRyPEpTV29ya2VyQ29udGV4dEVycm9ySGFuZGxlcj4gY3JlYXRlKEpTQzo6SlNP
YmplY3QqIGxpc3RlbmVyLCBKU0M6OkpTT2JqZWN0KiB3cmFwcGVyLCBib29sIGlzQXR0cmlidXRl
LCBET01XcmFwcGVyV29ybGQqIGlzb2xhdGVkV29ybGQpCi0gICAgewotICAgICAgICByZXR1cm4g
YWRvcHRSZWYobmV3IEpTV29ya2VyQ29udGV4dEVycm9ySGFuZGxlcihsaXN0ZW5lciwgd3JhcHBl
ciwgaXNBdHRyaWJ1dGUsIGlzb2xhdGVkV29ybGQpKTsKLSAgICB9Ci0KLSAgICB2aXJ0dWFsIH5K
U1dvcmtlckNvbnRleHRFcnJvckhhbmRsZXIoKTsKLQotcHJpdmF0ZToKLSAgICBKU1dvcmtlckNv
bnRleHRFcnJvckhhbmRsZXIoSlNDOjpKU09iamVjdCogZnVuY3Rpb24sIEpTQzo6SlNPYmplY3Qq
IHdyYXBwZXIsIGJvb2wgaXNBdHRyaWJ1dGUsIERPTVdyYXBwZXJXb3JsZCogaXNvbGF0ZWRXb3Js
ZCk7Ci0gICAgdmlydHVhbCB2b2lkIGhhbmRsZUV2ZW50KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQq
LCBFdmVudCopOwotfTsKLQotLy8gQ3JlYXRlcyBhIEpTIEV2ZW50TGlzdGVuZXIgZm9yICJvbmVy
cm9yIiBldmVudCBoYW5kbGVyIGluIHdvcmtlciBjb250ZXh0LiBJdCBoYXMgY3VzdG9tIGltcGxl
bWVudGF0aW9uIGJlY2F1c2UKLS8vIHVubGlrZSBvdGhlciBldmVudCBsaXN0ZW5lcnMgaXQgYWNj
ZXB0cyB0aHJlZSBwYXJhbWV0ZXJzLgotaW5saW5lIFBhc3NSZWZQdHI8SlNXb3JrZXJDb250ZXh0
RXJyb3JIYW5kbGVyPiBjcmVhdGVKU1dvcmtlckNvbnRleHRFcnJvckhhbmRsZXIoSlNDOjpFeGVj
U3RhdGUqIGV4ZWMsIEpTQzo6SlNWYWx1ZSBsaXN0ZW5lciwgSlNDOjpKU09iamVjdCogd3JhcHBl
cikKLXsKLSAgICBpZiAoIWxpc3RlbmVyLmlzT2JqZWN0KCkpCi0gICAgICAgIHJldHVybiAwOwot
Ci0gICAgcmV0dXJuIEpTV29ya2VyQ29udGV4dEVycm9ySGFuZGxlcjo6Y3JlYXRlKGFzT2JqZWN0
KGxpc3RlbmVyKSwgd3JhcHBlciwgdHJ1ZSwgY3VycmVudFdvcmxkKGV4ZWMpKTsKLX0KLQotfSAv
LyBuYW1lc3BhY2UgV2ViQ29yZQotCi0jZW5kaWYgLy8gSlNXb3JrZXJDb250ZXh0RXJyb3JIYW5k
bGVyX2gKZGlmZiAtLWdpdCBhL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9y
SlMucG0gYi9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtCmluZGV4
IDEzMjUxOGYuLjUyYTYyOTEgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9D
b2RlR2VuZXJhdG9ySlMucG0KKysrIGIvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5l
cmF0b3JKUy5wbQpAQCAtMTcwOSw5ICsxNzA5LDkgQEAgc3ViIEdlbmVyYXRlSW1wbGVtZW50YXRp
b24KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIg
ICAgSlNET01HbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCA9IGNhc3RlZFRoaXMtPmdsb2JhbE9i
amVjdCgpO1xuIik7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgICRpbXBsQ2xhc3NOYW1lKiBp
bXAgPSBzdGF0aWNfY2FzdDwkaW1wbENsYXNzTmFtZSo+KHN0YXRpY19jYXN0PCRjbGFzc05hbWUq
Pih0aGlzT2JqZWN0KS0+aW1wbCgpKTtcbiIpOwotICAgICAgICAgICAgICAgICAgICAgICAgICAg
IGlmICgkaW50ZXJmYWNlTmFtZSBlcSAiV29ya2VyQ29udGV4dCIgYW5kICRuYW1lIGVxICJvbmVy
cm9yIikgewotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkaW1wbEluY2x1ZGVzeyJK
U1dvcmtlckNvbnRleHRFcnJvckhhbmRsZXIuaCJ9ID0gMTsKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgaW1wLT5zZXQkaW1wbFNldHRlckZ1
bmN0aW9uTmFtZShjcmVhdGVKU1dvcmtlckNvbnRleHRFcnJvckhhbmRsZXIoZXhlYywgdmFsdWUs
IHRoaXNPYmplY3QpKTtcbiIpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICgoKCRp
bnRlcmZhY2VOYW1lIGVxICJET01XaW5kb3ciKSBvciAoJGludGVyZmFjZU5hbWUgZXEgIldvcmtl
ckNvbnRleHQiKSkgYW5kICRuYW1lIGVxICJvbmVycm9yIikgeworICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAkaW1wbEluY2x1ZGVzeyJKU0Vycm9ySGFuZGxlci5oIn0gPSAxOworICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICBpbXAt
PnNldCRpbXBsU2V0dGVyRnVuY3Rpb25OYW1lKGNyZWF0ZUpTRXJyb3JIYW5kbGVyKGV4ZWMsIHZh
bHVlLCB0aGlzT2JqZWN0KSk7XG4iKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IGVs
c2UgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwg
R2VuZXJhdGVBdHRyaWJ1dGVFdmVudExpc3RlbmVyQ2FsbCgkY2xhc3NOYW1lLCAkaW1wbFNldHRl
ckZ1bmN0aW9uTmFtZSwgJHdpbmRvd0V2ZW50TGlzdGVuZXIpKTsKICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICB9CmRpZmYgLS1naXQgYS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdl
bmVyYXRvclY4LnBtIGIvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JWOC5w
bQppbmRleCBkMzM5ZDZhLi45MDkzNzU3IDEwMDY0NAotLS0gYS9XZWJDb3JlL2JpbmRpbmdzL3Nj
cmlwdHMvQ29kZUdlbmVyYXRvclY4LnBtCisrKyBiL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9D
b2RlR2VuZXJhdG9yVjgucG0KQEAgLTEwMDEsNiArMTAwMSwxMCBAQCBFTkQKICAgICAgICAgICAg
ICAgICAkaW1wbEluY2x1ZGVzeyJWOEV2ZW50TGlzdGVuZXJMaXN0LmgifSA9IDE7CiAgICAgICAg
ICAgICAgICAgJGltcGxJbmNsdWRlc3siVjhXb3JrZXJDb250ZXh0RXJyb3JIYW5kbGVyLmgifSA9
IDE7CiAgICAgICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnREZWNscywgIiAgICBpbXAtPnNl
dCRpbXBsU2V0dGVyRnVuY3Rpb25OYW1lKFY4RXZlbnRMaXN0ZW5lckxpc3Q6OmZpbmRPckNyZWF0
ZVdyYXBwZXI8VjhXb3JrZXJDb250ZXh0RXJyb3JIYW5kbGVyPih2YWx1ZSwgdHJ1ZSkiKTsKKyAg
ICAgICAgICAgIH0gZWxzaWYgKCRpbnRlcmZhY2VOYW1lIGVxICJET01XaW5kb3ciIGFuZCAkYXR0
cmlidXRlLT5zaWduYXR1cmUtPm5hbWUgZXEgIm9uZXJyb3IiKSB7CisgICAgICAgICAgICAgICAg
JGltcGxJbmNsdWRlc3siVjhFdmVudExpc3RlbmVyTGlzdC5oIn0gPSAxOworICAgICAgICAgICAg
ICAgICRpbXBsSW5jbHVkZXN7IlY4V2luZG93RXJyb3JIYW5kbGVyLmgifSA9IDE7CisgICAgICAg
ICAgICAgICAgcHVzaChAaW1wbENvbnRlbnREZWNscywgIiAgICBpbXAtPnNldCRpbXBsU2V0dGVy
RnVuY3Rpb25OYW1lKFY4RXZlbnRMaXN0ZW5lckxpc3Q6OmZpbmRPckNyZWF0ZVdyYXBwZXI8VjhX
aW5kb3dFcnJvckhhbmRsZXI+KHZhbHVlLCB0cnVlKSIpOwogICAgICAgICAgICAgfSBlbHNlIHsK
ICAgICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudERlY2xzLCAiICAgIGltcC0+c2V0JGlt
cGxTZXR0ZXJGdW5jdGlvbk5hbWUoVjhET01XcmFwcGVyOjpnZXRFdmVudExpc3RlbmVyKHZhbHVl
LCB0cnVlLCBMaXN0ZW5lckZpbmRPckNyZWF0ZSkiKTsKICAgICAgICAgICAgIH0KZGlmZiAtLWdp
dCBhL1dlYkNvcmUvYmluZGluZ3MvdjgvVjhDb25zb2xlTWVzc2FnZS5jcHAgYi9XZWJDb3JlL2Jp
bmRpbmdzL3Y4L1Y4Q29uc29sZU1lc3NhZ2UuY3BwCmluZGV4IGU2ODcxZmQuLmQ5MjgyMmMgMTAw
NjQ0Ci0tLSBhL1dlYkNvcmUvYmluZGluZ3MvdjgvVjhDb25zb2xlTWVzc2FnZS5jcHAKKysrIGIv
V2ViQ29yZS9iaW5kaW5ncy92OC9WOENvbnNvbGVNZXNzYWdlLmNwcApAQCAtNTQsNyArNTQsMTQg
QEAgVjhDb25zb2xlTWVzc2FnZTo6VjhDb25zb2xlTWVzc2FnZShjb25zdCBTdHJpbmcmIHN0cmlu
ZywgY29uc3QgU3RyaW5nJiBzb3VyY2VJRCwKIAogdm9pZCBWOENvbnNvbGVNZXNzYWdlOjpkaXNw
YXRjaE5vdyhQYWdlKiBwYWdlKQogewotICAgIGRpc3BhdGNoTm93KHBhZ2UsIDApOworICAgIEFT
U0VSVChwYWdlKTsKKworICAgIC8vIFByb2Nlc3MgYW55IGRlbGF5ZWQgbWVzc2FnZXMgdG8gbWFr
ZSBzdXJlIHRoYXQgbWVzc2FnZXMKKyAgICAvLyBhcHBlYXIgaW4gdGhlIHJpZ2h0IG9yZGVyIGlu
IHRoZSBjb25zb2xlLgorICAgIHByb2Nlc3NEZWxheWVkKCk7CisKKyAgICBDb25zb2xlKiBjb25z
b2xlID0gcGFnZS0+bWFpbkZyYW1lKCktPmRvbVdpbmRvdygpLT5jb25zb2xlKCk7CisgICAgY29u
c29sZS0+YWRkTWVzc2FnZShKU01lc3NhZ2VTb3VyY2UsIExvZ01lc3NhZ2VUeXBlLCBFcnJvck1l
c3NhZ2VMZXZlbCwgbV9zdHJpbmcsIG1fbGluZU51bWJlciwgbV9zb3VyY2VJRCk7CiB9CiAKIHZv
aWQgVjhDb25zb2xlTWVzc2FnZTo6ZGlzcGF0Y2hMYXRlcigpCkBAIC0xMDUsOCArMTEyLDggQEAg
dm9pZCBWOENvbnNvbGVNZXNzYWdlOjpoYW5kbGVyKHY4OjpIYW5kbGU8djg6Ok1lc3NhZ2U+IG1l
c3NhZ2UsIHY4OjpIYW5kbGU8djg6OlYKICAgICBGcmFtZSogZnJhbWUgPSBWOFByb3h5OjpyZXRy
aWV2ZUZyYW1lRm9yRW50ZXJlZENvbnRleHQoKTsKICAgICBpZiAoIWZyYW1lKQogICAgICAgICBy
ZXR1cm47Ci0gICAgUGFnZSogcGFnZSA9IGZyYW1lLT5wYWdlKCk7Ci0gICAgaWYgKCFwYWdlKQor
ICAgIERvY3VtZW50KiBkb2N1bWVudCA9IGZyYW1lLT5kb2N1bWVudCgpOworICAgIGlmICghZG9j
dW1lbnQpCiAgICAgICAgIHJldHVybjsKIAogICAgIHY4OjpIYW5kbGU8djg6OlN0cmluZz4gZXJy
b3JNZXNzYWdlU3RyaW5nID0gbWVzc2FnZS0+R2V0KCk7CkBAIC0xMjIsMjEgKzEyOSw3IEBAIHZv
aWQgVjhDb25zb2xlTWVzc2FnZTo6aGFuZGxlcih2ODo6SGFuZGxlPHY4OjpNZXNzYWdlPiBtZXNz
YWdlLCB2ODo6SGFuZGxlPHY4OjpWCiAgICAgdjg6OkhhbmRsZTx2ODo6VmFsdWU+IHJlc291cmNl
TmFtZSA9IG1lc3NhZ2UtPkdldFNjcmlwdFJlc291cmNlTmFtZSgpOwogICAgIGJvb2wgdXNlVVJM
ID0gcmVzb3VyY2VOYW1lLklzRW1wdHkoKSB8fCAhcmVzb3VyY2VOYW1lLT5Jc1N0cmluZygpOwog
ICAgIFN0cmluZyByZXNvdXJjZU5hbWVTdHJpbmcgPSB1c2VVUkwgPyBmcmFtZS0+ZG9jdW1lbnQo
KS0+dXJsKCkgOiB0b1dlYkNvcmVTdHJpbmcocmVzb3VyY2VOYW1lKTsKLSAgICBWOENvbnNvbGVN
ZXNzYWdlIGNvbnNvbGVNZXNzYWdlKGVycm9yTWVzc2FnZSwgcmVzb3VyY2VOYW1lU3RyaW5nLCBt
ZXNzYWdlLT5HZXRMaW5lTnVtYmVyKCkpOwotICAgIGNvbnNvbGVNZXNzYWdlLmRpc3BhdGNoTm93
KHBhZ2UsIGNhbGxTdGFjayk7Ci19Ci0KLXZvaWQgVjhDb25zb2xlTWVzc2FnZTo6ZGlzcGF0Y2hO
b3coUGFnZSogcGFnZSwgUGFzc1JlZlB0cjxTY3JpcHRDYWxsU3RhY2s+IGNhbGxTdGFjaykKLXsK
LSAgICBBU1NFUlQocGFnZSk7Ci0KLSAgICAvLyBQcm9jZXNzIGFueSBkZWxheWVkIG1lc3NhZ2Vz
IHRvIG1ha2Ugc3VyZSB0aGF0IG1lc3NhZ2VzCi0gICAgLy8gYXBwZWFyIGluIHRoZSByaWdodCBv
cmRlciBpbiB0aGUgY29uc29sZS4KLSAgICBwcm9jZXNzRGVsYXllZCgpOwotCi0gICAgQ29uc29s
ZSogY29uc29sZSA9IHBhZ2UtPm1haW5GcmFtZSgpLT5kb21XaW5kb3coKS0+Y29uc29sZSgpOwot
ICAgIE1lc3NhZ2VUeXBlIG1lc3NhZ2VUeXBlID0gY2FsbFN0YWNrID8gVW5jYXVnaHRFeGNlcHRp
b25NZXNzYWdlVHlwZSA6IExvZ01lc3NhZ2VUeXBlOwotICAgIGNvbnNvbGUtPmFkZE1lc3NhZ2Uo
SlNNZXNzYWdlU291cmNlLCBtZXNzYWdlVHlwZSwgRXJyb3JNZXNzYWdlTGV2ZWwsIG1fc3RyaW5n
LCBtX2xpbmVOdW1iZXIsIG1fc291cmNlSUQsIGNhbGxTdGFjayk7CisgICAgZG9jdW1lbnQtPnJl
cG9ydEV4Y2VwdGlvbihlcnJvck1lc3NhZ2UsIG1lc3NhZ2UtPkdldExpbmVOdW1iZXIoKSwgcmVz
b3VyY2VOYW1lU3RyaW5nLCBjYWxsU3RhY2spOwogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3Jl
CmRpZmYgLS1naXQgYS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1Y4Q29uc29sZU1lc3NhZ2UuaCBiL1dl
YkNvcmUvYmluZGluZ3MvdjgvVjhDb25zb2xlTWVzc2FnZS5oCmluZGV4IDk3ZGUyNGYuLjYxODNm
YzYgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvYmluZGluZ3MvdjgvVjhDb25zb2xlTWVzc2FnZS5oCisr
KyBiL1dlYkNvcmUvYmluZGluZ3MvdjgvVjhDb25zb2xlTWVzc2FnZS5oCkBAIC04Miw4ICs4Miw2
IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgY29uc3QgU3RyaW5nIG1fc291cmNlSUQ7
CiAgICAgICAgIGNvbnN0IHVuc2lnbmVkIG1fbGluZU51bWJlcjsKIAotICAgICAgICB2b2lkIGRp
c3BhdGNoTm93KFBhZ2UqLCBQYXNzUmVmUHRyPFNjcmlwdENhbGxTdGFjaz4pOwotCiAgICAgICAg
IC8vIEFsbCBkZWxheWVkIG1lc3NhZ2VzIGFyZSBzdG9yZWQgaW4gdGhpcyB2ZWN0b3IuIElmIHRo
ZSB2ZWN0b3IKICAgICAgICAgLy8gaXMgMCwgdGhlcmUgYXJlIG5vIGRlbGF5ZWQgbWVzc2FnZXMu
CiAgICAgICAgIHN0YXRpYyBWZWN0b3I8VjhDb25zb2xlTWVzc2FnZT4qIG1fZGVsYXllZE1lc3Nh
Z2VzOwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9iaW5kaW5ncy92OC9WOFdpbmRvd0Vycm9ySGFuZGxl
ci5jcHAgYi9XZWJDb3JlL2JpbmRpbmdzL3Y4L1Y4V2luZG93RXJyb3JIYW5kbGVyLmNwcApuZXcg
ZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5hNzRiYWQ0Ci0tLSAvZGV2L251bGwKKysr
IGIvV2ViQ29yZS9iaW5kaW5ncy92OC9WOFdpbmRvd0Vycm9ySGFuZGxlci5jcHAKQEAgLTAsMCAr
MSw2MiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMCBHb29nbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQorICogbWV0Ogor
ICoKKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCisgKiBjb3B5cmlnaHQgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCisg
KiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlCisgKiBkaXN0cmlidXRpb24uCisgKiAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdv
b2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCisgKiBjb250cmlidXRvcnMgbWF5IGJlIHVz
ZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQorICogdGhpcyBz
b2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAqCisg
KiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQg
Q09OVFJJQlVUT1JTCisgKiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJB
TlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FS
UkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCisgKiBBIFBBUlRJQ1VM
QVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdI
VAorICogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsCisgKiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJ
QUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVO
VCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKKyAqIERBVEEs
IE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWQorICogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgor
ICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKworI2luY2x1ZGUgIlY4V2luZG93RXJyb3JIYW5k
bGVyLmgiCisKKyNpbmNsdWRlICJFcnJvckV2ZW50LmgiCisjaW5jbHVkZSAiVjhCaW5kaW5nLmgi
CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworVjhXaW5kb3dFcnJvckhhbmRsZXI6OlY4V2luZG93
RXJyb3JIYW5kbGVyKHY4OjpMb2NhbDx2ODo6T2JqZWN0PiBsaXN0ZW5lciwgYm9vbCBpc0lubGlu
ZSwgY29uc3QgV29ybGRDb250ZXh0SGFuZGxlJiB3b3JsZENvbnRleHQpCisgICAgOiBWOEV2ZW50
TGlzdGVuZXIobGlzdGVuZXIsIGlzSW5saW5lLCB3b3JsZENvbnRleHQpCit7Cit9CisKK3Y4OjpM
b2NhbDx2ODo6VmFsdWU+IFY4V2luZG93RXJyb3JIYW5kbGVyOjpjYWxsTGlzdGVuZXJGdW5jdGlv
bihTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0LCB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4g
anNFdmVudCwgRXZlbnQqIGV2ZW50KQoreworICAgIEFTU0VSVChldmVudC0+aXNFcnJvckV2ZW50
KCkpOworICAgIEVycm9yRXZlbnQqIGVycm9yRXZlbnQgPSBzdGF0aWNfY2FzdDxFcnJvckV2ZW50
Kj4oZXZlbnQpOworICAgIHY4OjpMb2NhbDx2ODo6T2JqZWN0PiBsaXN0ZW5lciA9IGdldExpc3Rl
bmVyT2JqZWN0KGNvbnRleHQpOworICAgIHY4OjpMb2NhbDx2ODo6VmFsdWU+IHJldHVyblZhbHVl
OworICAgIGlmICghbGlzdGVuZXIuSXNFbXB0eSgpICYmIGxpc3RlbmVyLT5Jc0Z1bmN0aW9uKCkp
IHsKKyAgICAgICAgdjg6OkxvY2FsPHY4OjpGdW5jdGlvbj4gY2FsbEZ1bmN0aW9uID0gdjg6Okxv
Y2FsPHY4OjpGdW5jdGlvbj46OkNhc3QobGlzdGVuZXIpOworICAgICAgICB2ODo6TG9jYWw8djg6
Ok9iamVjdD4gdGhpc1ZhbHVlID0gdjg6OkNvbnRleHQ6OkdldEN1cnJlbnQoKS0+R2xvYmFsKCk7
CisgICAgICAgIHY4OjpIYW5kbGU8djg6OlZhbHVlPiBwYXJhbWV0ZXJzWzNdID0geyB2OFN0cmlu
ZyhlcnJvckV2ZW50LT5tZXNzYWdlKCkpLCB2OFN0cmluZyhlcnJvckV2ZW50LT5maWxlbmFtZSgp
KSwgdjg6OkludGVnZXI6Ok5ldyhlcnJvckV2ZW50LT5saW5lbm8oKSkgfTsKKyAgICAgICAgcmV0
dXJuVmFsdWUgPSBjYWxsRnVuY3Rpb24tPkNhbGwodGhpc1ZhbHVlLCAzLCBwYXJhbWV0ZXJzKTsK
KyAgICAgICAgaWYgKCFyZXR1cm5WYWx1ZS5Jc0VtcHR5KCkgJiYgcmV0dXJuVmFsdWUtPklzQm9v
bGVhbigpICYmICFyZXR1cm5WYWx1ZS0+Qm9vbGVhblZhbHVlKCkpCisgICAgICAgICAgICBldmVu
dC0+cHJldmVudERlZmF1bHQoKTsKKyAgICB9CisgICAgcmV0dXJuIHJldHVyblZhbHVlOworfQor
Cit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9XZWJDb3JlL2JpbmRpbmdzL3Y4
L1Y4V2luZG93RXJyb3JIYW5kbGVyLmggYi9XZWJDb3JlL2JpbmRpbmdzL3Y4L1Y4V2luZG93RXJy
b3JIYW5kbGVyLmgKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uMTY3Y2EwZAot
LS0gL2Rldi9udWxsCisrKyBiL1dlYkNvcmUvYmluZGluZ3MvdjgvVjhXaW5kb3dFcnJvckhhbmRs
ZXIuaApAQCAtMCwwICsxLDU1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEwIEdvb2dsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMg
YXJlCisgKiBtZXQ6CisgKgorICogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqICAgICAqIFJlZGlz
dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKKyAqIGNv
cHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIKKyAqIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUKKyAqIGRpc3RyaWJ1dGlvbi4KKyAqICAgICAqIE5laXRoZXIg
dGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKKyAqIGNvbnRyaWJ1
dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBm
cm9tCisgKiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJt
aXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdI
VCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKKyAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBU
SEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IK
KyAqIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFM
TCBUSEUgQ09QWVJJR0hUCisgKiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBB
TlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKKyAqIFNQRUNJQUwsIEVYRU1QTEFSWSwg
T1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQg
VE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0Yg
VVNFLAorICogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQgT04gQU5ZCisgKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElO
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAq
IE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBWOFdpbmRvd0Vycm9ySGFuZGxlcl9oCisjZGVm
aW5lIFY4V2luZG93RXJyb3JIYW5kbGVyX2gKKworI2luY2x1ZGUgIlY4Q3VzdG9tRXZlbnRMaXN0
ZW5lci5oIgorI2luY2x1ZGUgPHY4Lmg+CisjaW5jbHVkZSA8d3RmL1Bhc3NSZWZQdHIuaD4KKwor
bmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBWOFdpbmRvd0Vycm9ySGFuZGxlciA6IHB1Ymxp
YyBWOEV2ZW50TGlzdGVuZXIgeworcHVibGljOgorICAgIHN0YXRpYyBQYXNzUmVmUHRyPFY4V2lu
ZG93RXJyb3JIYW5kbGVyPiBjcmVhdGUodjg6OkxvY2FsPHY4OjpPYmplY3Q+IGxpc3RlbmVyLCBi
b29sIGlzSW5saW5lLCBjb25zdCBXb3JsZENvbnRleHRIYW5kbGUmIHdvcmxkQ29udGV4dCkKKyAg
ICB7CisgICAgICAgIHJldHVybiBhZG9wdFJlZihuZXcgVjhXaW5kb3dFcnJvckhhbmRsZXIobGlz
dGVuZXIsIGlzSW5saW5lLCB3b3JsZENvbnRleHQpKTsKKyAgICB9CisKK3ByaXZhdGU6CisgICAg
VjhXaW5kb3dFcnJvckhhbmRsZXIodjg6OkxvY2FsPHY4OjpPYmplY3Q+IGxpc3RlbmVyLCBib29s
IGlzSW5saW5lLCBjb25zdCBXb3JsZENvbnRleHRIYW5kbGUmIHdvcmxkQ29udGV4dCk7CisKKyAg
ICB2aXJ0dWFsIHY4OjpMb2NhbDx2ODo6VmFsdWU+IGNhbGxMaXN0ZW5lckZ1bmN0aW9uKFNjcmlw
dEV4ZWN1dGlvbkNvbnRleHQqLCB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4ganNFdmVudCwgRXZlbnQq
KTsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIFY4V2luZG93RXJy
b3JIYW5kbGVyX2gKZGlmZiAtLWdpdCBhL1dlYkNvcmUvYmluZGluZ3MvdjgvV29ya2VyQ29udGV4
dEV4ZWN1dGlvblByb3h5LmNwcCBiL1dlYkNvcmUvYmluZGluZ3MvdjgvV29ya2VyQ29udGV4dEV4
ZWN1dGlvblByb3h5LmNwcAppbmRleCBjZWZiMmZhLi5lYjI1ODE0IDEwMDY0NAotLS0gYS9XZWJD
b3JlL2JpbmRpbmdzL3Y4L1dvcmtlckNvbnRleHRFeGVjdXRpb25Qcm94eS5jcHAKKysrIGIvV2Vi
Q29yZS9iaW5kaW5ncy92OC9Xb3JrZXJDb250ZXh0RXhlY3V0aW9uUHJveHkuY3BwCkBAIC0zNyw2
ICszNyw3IEBACiAKICNpbmNsdWRlICJEZWRpY2F0ZWRXb3JrZXJDb250ZXh0LmgiCiAjaW5jbHVk
ZSAiRXZlbnQuaCIKKyNpbmNsdWRlICJTY3JpcHRDYWxsU3RhY2suaCIKICNpbmNsdWRlICJTaGFy
ZWRXb3JrZXIuaCIKICNpbmNsdWRlICJTaGFyZWRXb3JrZXJDb250ZXh0LmgiCiAjaW5jbHVkZSAi
VjhCaW5kaW5nLmgiCkBAIC03Miw3ICs3Myw3IEBAIHN0YXRpYyB2b2lkIHY4TWVzc2FnZUhhbmRs
ZXIodjg6OkhhbmRsZTx2ODo6TWVzc2FnZT4gbWVzc2FnZSwgdjg6OkhhbmRsZTx2ODo6VmFsCiAg
ICAgICAgIFN0cmluZyBlcnJvck1lc3NhZ2UgPSB0b1dlYkNvcmVTdHJpbmcobWVzc2FnZS0+R2V0
KCkpOwogICAgICAgICBpbnQgbGluZU51bWJlciA9IG1lc3NhZ2UtPkdldExpbmVOdW1iZXIoKTsK
ICAgICAgICAgU3RyaW5nIHNvdXJjZVVSTCA9IHRvV2ViQ29yZVN0cmluZyhtZXNzYWdlLT5HZXRT
Y3JpcHRSZXNvdXJjZU5hbWUoKSk7Ci0gICAgICAgIGNvbnRleHQtPnJlcG9ydEV4Y2VwdGlvbihl
cnJvck1lc3NhZ2UsIGxpbmVOdW1iZXIsIHNvdXJjZVVSTCk7CisgICAgICAgIGNvbnRleHQtPnJl
cG9ydEV4Y2VwdGlvbihlcnJvck1lc3NhZ2UsIGxpbmVOdW1iZXIsIHNvdXJjZVVSTCwgMCk7CiAg
ICAgfQogCiAgICAgaXNSZXBvcnRpbmdFeGNlcHRpb24gPSBmYWxzZTsKZGlmZiAtLWdpdCBhL1dl
YkNvcmUvYmluZGluZ3MvdjgvV29ya2VyU2NyaXB0Q29udHJvbGxlci5jcHAgYi9XZWJDb3JlL2Jp
bmRpbmdzL3Y4L1dvcmtlclNjcmlwdENvbnRyb2xsZXIuY3BwCmluZGV4IGI1NmQzODMuLjQyZTAy
ZTYgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvYmluZGluZ3MvdjgvV29ya2VyU2NyaXB0Q29udHJvbGxl
ci5jcHAKKysrIGIvV2ViQ29yZS9iaW5kaW5ncy92OC9Xb3JrZXJTY3JpcHRDb250cm9sbGVyLmNw
cApAQCAtMzQsMTEgKzM0LDEwIEBACiAKICNpbmNsdWRlICJXb3JrZXJTY3JpcHRDb250cm9sbGVy
LmgiCiAKLSNpbmNsdWRlIDx2OC5oPgotCisjaW5jbHVkZSAiRE9NVGltZXIuaCIKKyNpbmNsdWRl
ICJTY3JpcHRDYWxsU3RhY2suaCIKICNpbmNsdWRlICJTY3JpcHRTb3VyY2VDb2RlLmgiCiAjaW5j
bHVkZSAiU2NyaXB0VmFsdWUuaCIKLSNpbmNsdWRlICJET01UaW1lci5oIgogI2luY2x1ZGUgIlY4
RE9NTWFwLmgiCiAjaW5jbHVkZSAiVjhQcm94eS5oIgogI2luY2x1ZGUgIlY4V29ya2VyQ29udGV4
dC5oIgpAQCAtNDYsNiArNDUsNyBAQAogI2luY2x1ZGUgIldvcmtlckNvbnRleHRFeGVjdXRpb25Q
cm94eS5oIgogI2luY2x1ZGUgIldvcmtlck9iamVjdFByb3h5LmgiCiAjaW5jbHVkZSAiV29ya2Vy
VGhyZWFkLmgiCisjaW5jbHVkZSA8djguaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCkBAIC04
MCw3ICs4MCw3IEBAIFNjcmlwdFZhbHVlIFdvcmtlclNjcmlwdENvbnRyb2xsZXI6OmV2YWx1YXRl
KGNvbnN0IFNjcmlwdFNvdXJjZUNvZGUmIHNvdXJjZUNvZGUsCiAgICAgICAgIGlmIChleGNlcHRp
b24pCiAgICAgICAgICAgICAqZXhjZXB0aW9uID0gc3RhdGUuZXhjZXB0aW9uOwogICAgICAgICBl
bHNlCi0gICAgICAgICAgICBtX3dvcmtlckNvbnRleHQtPnJlcG9ydEV4Y2VwdGlvbihzdGF0ZS5l
cnJvck1lc3NhZ2UsIHN0YXRlLmxpbmVOdW1iZXIsIHN0YXRlLnNvdXJjZVVSTCk7CisgICAgICAg
ICAgICBtX3dvcmtlckNvbnRleHQtPnJlcG9ydEV4Y2VwdGlvbihzdGF0ZS5lcnJvck1lc3NhZ2Us
IHN0YXRlLmxpbmVOdW1iZXIsIHN0YXRlLnNvdXJjZVVSTCwgMCk7CiAgICAgfQogCiAgICAgcmV0
dXJuIHJlc3VsdDsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcCBiL1dlYkNv
cmUvZG9tL0RvY3VtZW50LmNwcAppbmRleCAxNTU1NDZhLi42OGE2ZGRiIDEwMDY0NAotLS0gYS9X
ZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKKysrIGIvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCkBA
IC0xMTgsNiArMTE4LDcgQEAKICNpbmNsdWRlICJSZW5kZXJUZXh0Q29udHJvbC5oIgogI2luY2x1
ZGUgIlJlbmRlclZpZXcuaCIKICNpbmNsdWRlICJSZW5kZXJXaWRnZXQuaCIKKyNpbmNsdWRlICJT
Y3JpcHRDYWxsU3RhY2suaCIKICNpbmNsdWRlICJTY3JpcHRDb250cm9sbGVyLmgiCiAjaW5jbHVk
ZSAiU2NyaXB0RWxlbWVudC5oIgogI2luY2x1ZGUgIlNjcmlwdEV2ZW50TGlzdGVuZXIuaCIKQEAg
LTIyNzEsNiArMjI3MiwxNyBAQCBLVVJMIERvY3VtZW50Ojp2aXJ0dWFsQ29tcGxldGVVUkwoY29u
c3QgU3RyaW5nJiB1cmwpIGNvbnN0CiAgICAgcmV0dXJuIGNvbXBsZXRlVVJMKHVybCk7CiB9CiAK
K0V2ZW50VGFyZ2V0KiBEb2N1bWVudDo6ZXJyb3JFdmVudFRhcmdldCgpCit7CisgICAgcmV0dXJu
IGRvbVdpbmRvdygpOworfQorCit2b2lkIERvY3VtZW50Ojpsb2dFeGNlcHRpb25Ub0NvbnNvbGUo
Y29uc3QgU3RyaW5nJiBlcnJvck1lc3NhZ2UsIGludCBsaW5lTnVtYmVyLCBjb25zdCBTdHJpbmcm
IHNvdXJjZVVSTCwgUGFzc1JlZlB0cjxTY3JpcHRDYWxsU3RhY2s+IGNhbGxTdGFjaykKK3sKKyAg
ICBNZXNzYWdlVHlwZSBtZXNzYWdlVHlwZSA9IGNhbGxTdGFjayA/IFVuY2F1Z2h0RXhjZXB0aW9u
TWVzc2FnZVR5cGUgOiBMb2dNZXNzYWdlVHlwZTsKKyAgICBhZGRNZXNzYWdlKEpTTWVzc2FnZVNv
dXJjZSwgbWVzc2FnZVR5cGUsIEVycm9yTWVzc2FnZUxldmVsLCBlcnJvck1lc3NhZ2UsIGxpbmVO
dW1iZXIsIHNvdXJjZVVSTCk7Cit9CisKIHZvaWQgRG9jdW1lbnQ6OnNldFVSTChjb25zdCBLVVJM
JiB1cmwpCiB7CiAgICAgY29uc3QgS1VSTCYgbmV3VVJMID0gdXJsLmlzRW1wdHkoKSA/IGJsYW5r
VVJMKCkgOiB1cmw7CkBAIC00NjYwLDExICs0NjcyLDYgQEAgdm9pZCBEb2N1bWVudDo6cGFyc2VE
TlNQcmVmZXRjaENvbnRyb2xIZWFkZXIoY29uc3QgU3RyaW5nJiBkbnNQcmVmZXRjaENvbnRyb2wp
CiAgICAgbV9oYXZlRXhwbGljaXRseURpc2FibGVkRE5TUHJlZmV0Y2ggPSB0cnVlOwogfQogCi12
b2lkIERvY3VtZW50OjpyZXBvcnRFeGNlcHRpb24oY29uc3QgU3RyaW5nJiBlcnJvck1lc3NhZ2Us
IGludCBsaW5lTnVtYmVyLCBjb25zdCBTdHJpbmcmIHNvdXJjZVVSTCkKLXsKLSAgICBhZGRNZXNz
YWdlKEpTTWVzc2FnZVNvdXJjZSwgTG9nTWVzc2FnZVR5cGUsIEVycm9yTWVzc2FnZUxldmVsLCBl
cnJvck1lc3NhZ2UsIGxpbmVOdW1iZXIsIHNvdXJjZVVSTCk7Ci19Ci0KIHZvaWQgRG9jdW1lbnQ6
OmFkZE1lc3NhZ2UoTWVzc2FnZVNvdXJjZSBzb3VyY2UsIE1lc3NhZ2VUeXBlIHR5cGUsIE1lc3Nh
Z2VMZXZlbCBsZXZlbCwgY29uc3QgU3RyaW5nJiBtZXNzYWdlLCB1bnNpZ25lZCBsaW5lTnVtYmVy
LCBjb25zdCBTdHJpbmcmIHNvdXJjZVVSTCkKIHsKICAgICBpZiAoRE9NV2luZG93KiB3aW5kb3cg
PSBkb21XaW5kb3coKSkKZGlmZiAtLWdpdCBhL1dlYkNvcmUvZG9tL0RvY3VtZW50LmggYi9XZWJD
b3JlL2RvbS9Eb2N1bWVudC5oCmluZGV4IGYxZmU0NGMuLjE0MmFmZjMgMTAwNjQ0Ci0tLSBhL1dl
YkNvcmUvZG9tL0RvY3VtZW50LmgKKysrIGIvV2ViQ29yZS9kb20vRG9jdW1lbnQuaApAQCAtOTMw
LDcgKzkzMCw2IEBAIHB1YmxpYzoKICAgICBib29sIGlzRE5TUHJlZmV0Y2hFbmFibGVkKCkgY29u
c3QgeyByZXR1cm4gbV9pc0ROU1ByZWZldGNoRW5hYmxlZDsgfQogICAgIHZvaWQgcGFyc2VETlNQ
cmVmZXRjaENvbnRyb2xIZWFkZXIoY29uc3QgU3RyaW5nJik7CiAKLSAgICB2aXJ0dWFsIHZvaWQg
cmVwb3J0RXhjZXB0aW9uKGNvbnN0IFN0cmluZyYgZXJyb3JNZXNzYWdlLCBpbnQgbGluZU51bWJl
ciwgY29uc3QgU3RyaW5nJiBzb3VyY2VVUkwpOwogICAgIHZpcnR1YWwgdm9pZCBhZGRNZXNzYWdl
KE1lc3NhZ2VTb3VyY2UsIE1lc3NhZ2VUeXBlLCBNZXNzYWdlTGV2ZWwsIGNvbnN0IFN0cmluZyYg
bWVzc2FnZSwgdW5zaWduZWQgbGluZU51bWJlciwgY29uc3QgU3RyaW5nJiBzb3VyY2VVUkwpOwog
ICAgIHZpcnR1YWwgdm9pZCBwb3N0VGFzayhQYXNzT3duUHRyPFRhc2s+KTsgLy8gRXhlY3V0ZXMg
dGhlIHRhc2sgb24gY29udGV4dCdzIHRocmVhZCBhc3luY2hyb25vdXNseS4KIApAQCAtMTExNiw2
ICsxMTE1LDkgQEAgcHJpdmF0ZToKICAgICB2aXJ0dWFsIGNvbnN0IEtVUkwmIHZpcnR1YWxVUkwo
KSBjb25zdDsgLy8gU2FtZSBhcyB1cmwoKSwgYnV0IG5lZWRlZCBmb3IgU2NyaXB0RXhlY3V0aW9u
Q29udGV4dCB0byBpbXBsZW1lbnQgaXQgd2l0aG91dCBhIHBlcmZvcm1hbmNlIGxvc3MgZm9yIGRp
cmVjdCBjYWxscy4KICAgICB2aXJ0dWFsIEtVUkwgdmlydHVhbENvbXBsZXRlVVJMKGNvbnN0IFN0
cmluZyYpIGNvbnN0OyAvLyBTYW1lIGFzIGNvbXBsZXRlVVJMKCkgZm9yIHRoZSBzYW1lIHJlYXNv
biBhcyBhYm92ZS4KIAorICAgIHZpcnR1YWwgRXZlbnRUYXJnZXQqIGVycm9yRXZlbnRUYXJnZXQo
KTsKKyAgICB2aXJ0dWFsIHZvaWQgbG9nRXhjZXB0aW9uVG9Db25zb2xlKGNvbnN0IFN0cmluZyYg
ZXJyb3JNZXNzYWdlLCBpbnQgbGluZU51bWJlciwgY29uc3QgU3RyaW5nJiBzb3VyY2VVUkwsIFBh
c3NSZWZQdHI8U2NyaXB0Q2FsbFN0YWNrPik7CisKICAgICB2b2lkIGluaXRETlNQcmVmZXRjaCgp
OwogCiAgICAgU3RyaW5nIGVuY29kaW5nKCkgY29uc3Q7CmRpZmYgLS1naXQgYS9XZWJDb3JlL2Rv
bS9TY3JpcHRFeGVjdXRpb25Db250ZXh0LmNwcCBiL1dlYkNvcmUvZG9tL1NjcmlwdEV4ZWN1dGlv
bkNvbnRleHQuY3BwCmluZGV4IGJmZGExN2IuLjg3YjdiZDIgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUv
ZG9tL1NjcmlwdEV4ZWN1dGlvbkNvbnRleHQuY3BwCisrKyBiL1dlYkNvcmUvZG9tL1NjcmlwdEV4
ZWN1dGlvbkNvbnRleHQuY3BwCkBAIC0zMywxNCArMzMsMTkgQEAKICNpbmNsdWRlICJEYXRhYmFz
ZS5oIgogI2luY2x1ZGUgIkRhdGFiYXNlVGFzay5oIgogI2luY2x1ZGUgIkRhdGFiYXNlVGhyZWFk
LmgiCisjaW5jbHVkZSAiRXJyb3JFdmVudC5oIgorI2luY2x1ZGUgIkV2ZW50TGlzdGVuZXIuaCIK
KyNpbmNsdWRlICJFdmVudFRhcmdldC5oIgogI2luY2x1ZGUgIkZpbGVUaHJlYWQuaCIKICNpbmNs
dWRlICJNZXNzYWdlUG9ydC5oIgorI2luY2x1ZGUgIlNjcmlwdENhbGxTdGFjay5oIgogI2luY2x1
ZGUgIlNlY3VyaXR5T3JpZ2luLmgiCiAjaW5jbHVkZSAiVGhyZWFkYWJsZUJsb2JSZWdpc3RyeS5o
IgogI2luY2x1ZGUgIldvcmtlckNvbnRleHQuaCIKICNpbmNsdWRlICJXb3JrZXJUaHJlYWQuaCIK
ICNpbmNsdWRlIDx3dGYvTWFpblRocmVhZC5oPgogI2luY2x1ZGUgPHd0Zi9QYXNzUmVmUHRyLmg+
CisjaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgogCiAjaWYgVVNFKEpTQykKICNpbmNsdWRlICJKU0RP
TVdpbmRvdy5oIgpAQCAtNjEsMTAgKzY2LDI2IEBAIHB1YmxpYzoKICAgICB9CiB9OwogCitjbGFz
cyBTY3JpcHRFeGVjdXRpb25Db250ZXh0OjpQZW5kaW5nRXhjZXB0aW9uIDogcHVibGljIE5vbmNv
cHlhYmxlIHsKK3B1YmxpYzoKKyAgICBQZW5kaW5nRXhjZXB0aW9uKGNvbnN0IFN0cmluZyYgZXJy
b3JNZXNzYWdlLCBpbnQgbGluZU51bWJlciwgY29uc3QgU3RyaW5nJiBzb3VyY2VVUkwsIFBhc3NS
ZWZQdHI8U2NyaXB0Q2FsbFN0YWNrPiBjYWxsU3RhY2spCisgICAgICAgIDogbV9lcnJvck1lc3Nh
Z2UoZXJyb3JNZXNzYWdlKQorICAgICAgICAsIG1fbGluZU51bWJlcihsaW5lTnVtYmVyKQorICAg
ICAgICAsIG1fc291cmNlVVJMKHNvdXJjZVVSTCkKKyAgICAgICAgLCBtX2NhbGxTdGFjayhjYWxs
U3RhY2spCisgICAgeworICAgIH0KKyAgICBTdHJpbmcgbV9lcnJvck1lc3NhZ2U7CisgICAgaW50
IG1fbGluZU51bWJlcjsKKyAgICBTdHJpbmcgbV9zb3VyY2VVUkw7CisgICAgUmVmUHRyPFNjcmlw
dENhbGxTdGFjaz4gbV9jYWxsU3RhY2s7Cit9OworCiBTY3JpcHRFeGVjdXRpb25Db250ZXh0OjpT
Y3JpcHRFeGVjdXRpb25Db250ZXh0KCkKICNpZiBFTkFCTEUoREFUQUJBU0UpCiAgICAgOiBtX2hh
c09wZW5EYXRhYmFzZXMoZmFsc2UpCiAjZW5kaWYKKyAgICAsIG1faW5EaXNwYXRjaEVycm9yRXZl
bnQoZmFsc2UpCiB7CiB9CiAKQEAgLTI0Myw2ICsyNjQsNDMgQEAgdm9pZCBTY3JpcHRFeGVjdXRp
b25Db250ZXh0OjpzZXRTZWN1cml0eU9yaWdpbihQYXNzUmVmUHRyPFNlY3VyaXR5T3JpZ2luPiBz
ZWN1cmkKICAgICBtX3NlY3VyaXR5T3JpZ2luID0gc2VjdXJpdHlPcmlnaW47CiB9CiAKK3ZvaWQg
U2NyaXB0RXhlY3V0aW9uQ29udGV4dDo6cmVwb3J0RXhjZXB0aW9uKGNvbnN0IFN0cmluZyYgZXJy
b3JNZXNzYWdlLCBpbnQgbGluZU51bWJlciwgY29uc3QgU3RyaW5nJiBzb3VyY2VVUkwsIFBhc3NS
ZWZQdHI8U2NyaXB0Q2FsbFN0YWNrPiBjYWxsU3RhY2spCit7CisgICAgaWYgKG1faW5EaXNwYXRj
aEVycm9yRXZlbnQpIHsKKyAgICAgICAgaWYgKCFtX3BlbmRpbmdFeGNlcHRpb25zKQorICAgICAg
ICAgICAgbV9wZW5kaW5nRXhjZXB0aW9ucyA9IG5ldyBWZWN0b3I8T3duUHRyPFBlbmRpbmdFeGNl
cHRpb24+ID4oKTsKKyAgICAgICAgbV9wZW5kaW5nRXhjZXB0aW9ucy0+YXBwZW5kKG5ldyBQZW5k
aW5nRXhjZXB0aW9uKGVycm9yTWVzc2FnZSwgbGluZU51bWJlciwgc291cmNlVVJMLCBjYWxsU3Rh
Y2spKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIC8vIEZpcnN0IHJlcG9ydCB0aGUg
b3JpZ2luYWwgZXhjZXB0aW9uIGFuZCBvbmx5IHRoZW4gYWxsIHRoZSBuZXN0ZWQgb25lcy4KKyAg
ICBpZiAoIWRpc3BhdGNoRXJyb3JFdmVudChlcnJvck1lc3NhZ2UsIGxpbmVOdW1iZXIsIHNvdXJj
ZVVSTCkpCisgICAgICAgIGxvZ0V4Y2VwdGlvblRvQ29uc29sZShlcnJvck1lc3NhZ2UsIGxpbmVO
dW1iZXIsIHNvdXJjZVVSTCwgY2FsbFN0YWNrKTsKKworICAgIGlmICghbV9wZW5kaW5nRXhjZXB0
aW9ucykKKyAgICAgICAgcmV0dXJuOworCisgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBtX3Bl
bmRpbmdFeGNlcHRpb25zLT5zaXplKCk7IGkrKykgeworICAgICAgICBQZW5kaW5nRXhjZXB0aW9u
KiBlID0gbV9wZW5kaW5nRXhjZXB0aW9ucy0+YXQoaSkuZ2V0KCk7CisgICAgICAgIGxvZ0V4Y2Vw
dGlvblRvQ29uc29sZShlLT5tX2Vycm9yTWVzc2FnZSwgZS0+bV9saW5lTnVtYmVyLCBlLT5tX3Nv
dXJjZVVSTCwgZS0+bV9jYWxsU3RhY2spOworICAgIH0KKyAgICBtX3BlbmRpbmdFeGNlcHRpb25z
LmNsZWFyKCk7Cit9CisKK2Jvb2wgU2NyaXB0RXhlY3V0aW9uQ29udGV4dDo6ZGlzcGF0Y2hFcnJv
ckV2ZW50KGNvbnN0IFN0cmluZyYgZXJyb3JNZXNzYWdlLCBpbnQgbGluZU51bWJlciwgY29uc3Qg
U3RyaW5nJiBzb3VyY2VVUkwpCit7CisgICAgRXZlbnRUYXJnZXQqIHRhcmdldCA9IGVycm9yRXZl
bnRUYXJnZXQoKTsKKyAgICBpZiAoIXRhcmdldCkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisg
ICAgQVNTRVJUKCFtX2luRGlzcGF0Y2hFcnJvckV2ZW50KTsKKyAgICBtX2luRGlzcGF0Y2hFcnJv
ckV2ZW50ID0gdHJ1ZTsKKyAgICBSZWZQdHI8RXJyb3JFdmVudD4gZXJyb3JFdmVudCA9IEVycm9y
RXZlbnQ6OmNyZWF0ZShlcnJvck1lc3NhZ2UsIHNvdXJjZVVSTCwgbGluZU51bWJlcik7CisgICAg
dGFyZ2V0LT5kaXNwYXRjaEV2ZW50KGVycm9yRXZlbnQpOworICAgIG1faW5EaXNwYXRjaEVycm9y
RXZlbnQgPSBmYWxzZTsKKyAgICByZXR1cm4gZXJyb3JFdmVudC0+ZGVmYXVsdFByZXZlbnRlZCgp
OworfQorCiB2b2lkIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQ6OmFkZFRpbWVvdXQoaW50IHRpbWVv
dXRJZCwgRE9NVGltZXIqIHRpbWVyKQogewogICAgIEFTU0VSVCghbV90aW1lb3V0cy5jb250YWlu
cyh0aW1lb3V0SWQpKTsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvZG9tL1NjcmlwdEV4ZWN1dGlvbkNv
bnRleHQuaCBiL1dlYkNvcmUvZG9tL1NjcmlwdEV4ZWN1dGlvbkNvbnRleHQuaAppbmRleCBiNDZh
MGY0Li4yN2QxYzQyIDEwMDY0NAotLS0gYS9XZWJDb3JlL2RvbS9TY3JpcHRFeGVjdXRpb25Db250
ZXh0LmgKKysrIGIvV2ViQ29yZS9kb20vU2NyaXB0RXhlY3V0aW9uQ29udGV4dC5oCkBAIC0zMyw2
ICszMyw3IEBACiAjaW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4KICNpbmNsdWRlIDx3dGYvSGFzaE1h
cC5oPgogI2luY2x1ZGUgPHd0Zi9IYXNoU2V0Lmg+CisjaW5jbHVkZSA8d3RmL093blB0ci5oPgog
I2luY2x1ZGUgPHd0Zi9QYXNzT3duUHRyLmg+CiAjaW5jbHVkZSA8d3RmL1Bhc3NSZWZQdHIuaD4K
ICNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+CkBAIC01MiwxMSArNTMsMTQgQEAgbmFtZXNwYWNlIFdl
YkNvcmUgewogICAgIGNsYXNzIERhdGFiYXNlVGhyZWFkOwogI2VuZGlmCiAgICAgY2xhc3MgRE9N
VGltZXI7CisgICAgY2xhc3MgRXZlbnRMaXN0ZW5lcjsKKyAgICBjbGFzcyBFdmVudFRhcmdldDsK
ICNpZiBFTkFCTEUoQkxPQikgfHwgRU5BQkxFKEZJTEVfU1lTVEVNKQogICAgIGNsYXNzIEZpbGVU
aHJlYWQ7CiAjZW5kaWYKICAgICBjbGFzcyBNZXNzYWdlUG9ydDsKICAgICBjbGFzcyBTZWN1cml0
eU9yaWdpbjsKKyAgICBjbGFzcyBTY3JpcHRDYWxsU3RhY2s7CiAjaWYgRU5BQkxFKElOU1BFQ1RP
UikKICAgICBjbGFzcyBJbnNwZWN0b3JDb250cm9sbGVyOwogI2VuZGlmCkBAIC05MSw3ICs5NSw3
IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgdmlydHVhbCBJbnNwZWN0b3JDb250cm9s
bGVyKiBpbnNwZWN0b3JDb250cm9sbGVyKCkgY29uc3QgeyByZXR1cm4gMDsgfQogI2VuZGlmCiAK
LSAgICAgICAgdmlydHVhbCB2b2lkIHJlcG9ydEV4Y2VwdGlvbihjb25zdCBTdHJpbmcmIGVycm9y
TWVzc2FnZSwgaW50IGxpbmVOdW1iZXIsIGNvbnN0IFN0cmluZyYgc291cmNlVVJMKSA9IDA7Cisg
ICAgICAgIHZpcnR1YWwgdm9pZCByZXBvcnRFeGNlcHRpb24oY29uc3QgU3RyaW5nJiBlcnJvck1l
c3NhZ2UsIGludCBsaW5lTnVtYmVyLCBjb25zdCBTdHJpbmcmIHNvdXJjZVVSTCwgUGFzc1JlZlB0
cjxTY3JpcHRDYWxsU3RhY2s+KTsKICAgICAgICAgdmlydHVhbCB2b2lkIGFkZE1lc3NhZ2UoTWVz
c2FnZVNvdXJjZSwgTWVzc2FnZVR5cGUsIE1lc3NhZ2VMZXZlbCwgY29uc3QgU3RyaW5nJiBtZXNz
YWdlLCB1bnNpZ25lZCBsaW5lTnVtYmVyLCBjb25zdCBTdHJpbmcmIHNvdXJjZVVSTCkgPSAwOwog
CiAgICAgICAgIC8vIEFjdGl2ZSBvYmplY3RzIGFyZSBub3QgZ2FyYmFnZSBjb2xsZWN0ZWQgZXZl
biBpZiBpbmFjY2Vzc2libGUsIGUuZy4gYmVjYXVzZSB0aGVpciBhY3Rpdml0eSBtYXkgcmVzdWx0
IGluIGNhbGxiYWNrcyBiZWluZyBpbnZva2VkLgpAQCAtMTU0LDYgKzE1OCwxMCBAQCBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiAgICAgICAgIHZpcnR1YWwgY29uc3QgS1VSTCYgdmlydHVhbFVSTCgpIGNv
bnN0ID0gMDsKICAgICAgICAgdmlydHVhbCBLVVJMIHZpcnR1YWxDb21wbGV0ZVVSTChjb25zdCBT
dHJpbmcmKSBjb25zdCA9IDA7CiAKKyAgICAgICAgdmlydHVhbCBFdmVudFRhcmdldCogZXJyb3JF
dmVudFRhcmdldCgpID0gMDsKKyAgICAgICAgdmlydHVhbCB2b2lkIGxvZ0V4Y2VwdGlvblRvQ29u
c29sZShjb25zdCBTdHJpbmcmIGVycm9yTWVzc2FnZSwgaW50IGxpbmVOdW1iZXIsIGNvbnN0IFN0
cmluZyYgc291cmNlVVJMLCBQYXNzUmVmUHRyPFNjcmlwdENhbGxTdGFjaz4pID0gMDsKKyAgICAg
ICAgYm9vbCBkaXNwYXRjaEVycm9yRXZlbnQoY29uc3QgU3RyaW5nJiBlcnJvck1lc3NhZ2UsIGlu
dCBsaW5lTnVtYmVyLCBjb25zdCBTdHJpbmcmIHNvdXJjZVVSTCk7CisKICAgICAgICAgdm9pZCBj
bG9zZU1lc3NhZ2VQb3J0cygpOwogCiAgICAgICAgIFJlZlB0cjxTZWN1cml0eU9yaWdpbj4gbV9z
ZWN1cml0eU9yaWdpbjsKQEAgLTE3OSw2ICsxODcsOSBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAj
aWYgRU5BQkxFKEJMT0IpIHx8IEVOQUJMRShGSUxFX1NZU1RFTSkKICAgICAgICAgUmVmUHRyPEZp
bGVUaHJlYWQ+IG1fZmlsZVRocmVhZDsKICNlbmRpZgorICAgICAgICBib29sIG1faW5EaXNwYXRj
aEVycm9yRXZlbnQ7CisgICAgICAgIGNsYXNzIFBlbmRpbmdFeGNlcHRpb247CisgICAgICAgIE93
blB0cjxWZWN0b3I8T3duUHRyPFBlbmRpbmdFeGNlcHRpb24+ID4gPiBtX3BlbmRpbmdFeGNlcHRp
b25zOwogICAgIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1dlYkNv
cmUvd29ya2Vycy9EZWZhdWx0U2hhcmVkV29ya2VyUmVwb3NpdG9yeS5jcHAgYi9XZWJDb3JlL3dv
cmtlcnMvRGVmYXVsdFNoYXJlZFdvcmtlclJlcG9zaXRvcnkuY3BwCmluZGV4IDRhOGU5NDcuLjBi
MWFmZTUgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvd29ya2Vycy9EZWZhdWx0U2hhcmVkV29ya2VyUmVw
b3NpdG9yeS5jcHAKKysrIGIvV2ViQ29yZS93b3JrZXJzL0RlZmF1bHRTaGFyZWRXb3JrZXJSZXBv
c2l0b3J5LmNwcApAQCAtNDIsNiArNDIsNyBAQAogI2luY2x1ZGUgIk1lc3NhZ2VQb3J0LmgiCiAj
aW5jbHVkZSAiTm90SW1wbGVtZW50ZWQuaCIKICNpbmNsdWRlICJQbGF0Zm9ybVN0cmluZy5oIgor
I2luY2x1ZGUgIlNjcmlwdENhbGxTdGFjay5oIgogI2luY2x1ZGUgIlNlY3VyaXR5T3JpZ2luLmgi
CiAjaW5jbHVkZSAiU2VjdXJpdHlPcmlnaW5IYXNoLmgiCiAjaW5jbHVkZSAiU2hhcmVkV29ya2Vy
LmgiCkBAIC0xNTUsNyArMTU2LDcgQEAgdm9pZCBTaGFyZWRXb3JrZXJQcm94eTo6cG9zdFRhc2tG
b3JNb2RlVG9Xb3JrZXJDb250ZXh0KFBhc3NPd25QdHI8U2NyaXB0RXhlY3V0aW8KIAogc3RhdGlj
IHZvaWQgcG9zdEV4Y2VwdGlvblRhc2soU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCwg
Y29uc3QgU3RyaW5nJiBlcnJvck1lc3NhZ2UsIGludCBsaW5lTnVtYmVyLCBjb25zdCBTdHJpbmcm
IHNvdXJjZVVSTCkKIHsKLSAgICBjb250ZXh0LT5yZXBvcnRFeGNlcHRpb24oZXJyb3JNZXNzYWdl
LCBsaW5lTnVtYmVyLCBzb3VyY2VVUkwpOworICAgIGNvbnRleHQtPnJlcG9ydEV4Y2VwdGlvbihl
cnJvck1lc3NhZ2UsIGxpbmVOdW1iZXIsIHNvdXJjZVVSTCwgMCk7CiB9CiAKIHZvaWQgU2hhcmVk
V29ya2VyUHJveHk6OnBvc3RFeGNlcHRpb25Ub1dvcmtlck9iamVjdChjb25zdCBTdHJpbmcmIGVy
cm9yTWVzc2FnZSwgaW50IGxpbmVOdW1iZXIsIGNvbnN0IFN0cmluZyYgc291cmNlVVJMKQpkaWZm
IC0tZ2l0IGEvV2ViQ29yZS93b3JrZXJzL1dvcmtlckNvbnRleHQuY3BwIGIvV2ViQ29yZS93b3Jr
ZXJzL1dvcmtlckNvbnRleHQuY3BwCmluZGV4IDM0NWU1YjcuLjlkOWFiYzUgMTAwNjQ0Ci0tLSBh
L1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJDb250ZXh0LmNwcAorKysgYi9XZWJDb3JlL3dvcmtlcnMv
V29ya2VyQ29udGV4dC5jcHAKQEAgLTQ2LDYgKzQ2LDcgQEAKICNpbmNsdWRlICJLVVJMLmgiCiAj
aW5jbHVkZSAiTWVzc2FnZVBvcnQuaCIKICNpbmNsdWRlICJOb3RJbXBsZW1lbnRlZC5oIgorI2lu
Y2x1ZGUgIlNjcmlwdENhbGxTdGFjay5oIgogI2luY2x1ZGUgIlNjcmlwdFNvdXJjZUNvZGUuaCIK
ICNpbmNsdWRlICJTY3JpcHRWYWx1ZS5oIgogI2luY2x1ZGUgIlNlY3VyaXR5T3JpZ2luLmgiCkBA
IC0xMDIsNyArMTAzLDYgQEAgV29ya2VyQ29udGV4dDo6V29ya2VyQ29udGV4dChjb25zdCBLVVJM
JiB1cmwsIGNvbnN0IFN0cmluZyYgdXNlckFnZW50LCBXb3JrZXJUaHIKICAgICAsIG1fc2NyaXB0
KG5ldyBXb3JrZXJTY3JpcHRDb250cm9sbGVyKHRoaXMpKQogICAgICwgbV90aHJlYWQodGhyZWFk
KQogICAgICwgbV9jbG9zaW5nKGZhbHNlKQotICAgICwgbV9yZXBvcnRpbmdFeGNlcHRpb24oZmFs
c2UpCiB7CiAgICAgc2V0U2VjdXJpdHlPcmlnaW4oU2VjdXJpdHlPcmlnaW46OmNyZWF0ZSh1cmwp
KTsKIH0KQEAgLTI1OSwyMCArMjU5LDE0IEBAIHZvaWQgV29ya2VyQ29udGV4dDo6aW1wb3J0U2Ny
aXB0cyhjb25zdCBWZWN0b3I8U3RyaW5nPiYgdXJscywgRXhjZXB0aW9uQ29kZSYgZWMpCiAgICAg
fQogfQogCi12b2lkIFdvcmtlckNvbnRleHQ6OnJlcG9ydEV4Y2VwdGlvbihjb25zdCBTdHJpbmcm
IGVycm9yTWVzc2FnZSwgaW50IGxpbmVOdW1iZXIsIGNvbnN0IFN0cmluZyYgc291cmNlVVJMKQor
RXZlbnRUYXJnZXQqIFdvcmtlckNvbnRleHQ6OmVycm9yRXZlbnRUYXJnZXQoKQogewotICAgIGJv
b2wgZXJyb3JIYW5kbGVkID0gZmFsc2U7Ci0gICAgaWYgKCFtX3JlcG9ydGluZ0V4Y2VwdGlvbikg
ewotICAgICAgICBpZiAob25lcnJvcigpKSB7Ci0gICAgICAgICAgICBtX3JlcG9ydGluZ0V4Y2Vw
dGlvbiA9IHRydWU7Ci0gICAgICAgICAgICBSZWZQdHI8RXJyb3JFdmVudD4gZXJyb3JFdmVudChF
cnJvckV2ZW50OjpjcmVhdGUoZXJyb3JNZXNzYWdlLCBzb3VyY2VVUkwsIGxpbmVOdW1iZXIpKTsK
LSAgICAgICAgICAgIG9uZXJyb3IoKS0+aGFuZGxlRXZlbnQodGhpcywgZXJyb3JFdmVudC5nZXQo
KSk7Ci0gICAgICAgICAgICBlcnJvckhhbmRsZWQgPSBlcnJvckV2ZW50LT5kZWZhdWx0UHJldmVu
dGVkKCk7Ci0gICAgICAgICAgICBtX3JlcG9ydGluZ0V4Y2VwdGlvbiA9IGZhbHNlOwotICAgICAg
ICB9Ci0gICAgfQotICAgIGlmICghZXJyb3JIYW5kbGVkKQotICAgICAgICB0aHJlYWQoKS0+d29y
a2VyUmVwb3J0aW5nUHJveHkoKS5wb3N0RXhjZXB0aW9uVG9Xb3JrZXJPYmplY3QoZXJyb3JNZXNz
YWdlLCBsaW5lTnVtYmVyLCBzb3VyY2VVUkwpOworICAgIHJldHVybiB0aGlzOworfQorCit2b2lk
IFdvcmtlckNvbnRleHQ6OmxvZ0V4Y2VwdGlvblRvQ29uc29sZShjb25zdCBTdHJpbmcmIGVycm9y
TWVzc2FnZSwgaW50IGxpbmVOdW1iZXIsIGNvbnN0IFN0cmluZyYgc291cmNlVVJMLCBQYXNzUmVm
UHRyPFNjcmlwdENhbGxTdGFjaz4pCit7CisgICAgdGhyZWFkKCktPndvcmtlclJlcG9ydGluZ1By
b3h5KCkucG9zdEV4Y2VwdGlvblRvV29ya2VyT2JqZWN0KGVycm9yTWVzc2FnZSwgbGluZU51bWJl
ciwgc291cmNlVVJMKTsKIH0KIAogdm9pZCBXb3JrZXJDb250ZXh0OjphZGRNZXNzYWdlKE1lc3Nh
Z2VTb3VyY2Ugc291cmNlLCBNZXNzYWdlVHlwZSB0eXBlLCBNZXNzYWdlTGV2ZWwgbGV2ZWwsIGNv
bnN0IFN0cmluZyYgbWVzc2FnZSwgdW5zaWduZWQgbGluZU51bWJlciwgY29uc3QgU3RyaW5nJiBz
b3VyY2VVUkwpCmRpZmYgLS1naXQgYS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyQ29udGV4dC5oIGIv
V2ViQ29yZS93b3JrZXJzL1dvcmtlckNvbnRleHQuaAppbmRleCA1ZDE1ZDk0Li5mZWZkNjBhIDEw
MDY0NAotLS0gYS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyQ29udGV4dC5oCisrKyBiL1dlYkNvcmUv
d29ya2Vycy9Xb3JrZXJDb250ZXh0LmgKQEAgLTEwMCw3ICsxMDAsNiBAQCBuYW1lc3BhY2UgV2Vi
Q29yZSB7CiAgICAgICAgIHZvaWQgY2xlYXJJbnRlcnZhbChpbnQgdGltZW91dElkKTsKIAogICAg
ICAgICAvLyBTY3JpcHRFeGVjdXRpb25Db250ZXh0Ci0gICAgICAgIHZpcnR1YWwgdm9pZCByZXBv
cnRFeGNlcHRpb24oY29uc3QgU3RyaW5nJiBlcnJvck1lc3NhZ2UsIGludCBsaW5lTnVtYmVyLCBj
b25zdCBTdHJpbmcmIHNvdXJjZVVSTCk7CiAgICAgICAgIHZpcnR1YWwgdm9pZCBhZGRNZXNzYWdl
KE1lc3NhZ2VTb3VyY2UsIE1lc3NhZ2VUeXBlLCBNZXNzYWdlTGV2ZWwsIGNvbnN0IFN0cmluZyYg
bWVzc2FnZSwgdW5zaWduZWQgbGluZU51bWJlciwgY29uc3QgU3RyaW5nJiBzb3VyY2VVUkwpOwog
CiAjaWYgRU5BQkxFKE5PVElGSUNBVElPTlMpCkBAIC0xNzQsNiArMTczLDkgQEAgbmFtZXNwYWNl
IFdlYkNvcmUgewogICAgICAgICB2aXJ0dWFsIGNvbnN0IEtVUkwmIHZpcnR1YWxVUkwoKSBjb25z
dDsKICAgICAgICAgdmlydHVhbCBLVVJMIHZpcnR1YWxDb21wbGV0ZVVSTChjb25zdCBTdHJpbmcm
KSBjb25zdDsKIAorICAgICAgICB2aXJ0dWFsIEV2ZW50VGFyZ2V0KiBlcnJvckV2ZW50VGFyZ2V0
KCk7CisgICAgICAgIHZpcnR1YWwgdm9pZCBsb2dFeGNlcHRpb25Ub0NvbnNvbGUoY29uc3QgU3Ry
aW5nJiBlcnJvck1lc3NhZ2UsIGludCBsaW5lTnVtYmVyLCBjb25zdCBTdHJpbmcmIHNvdXJjZVVS
TCwgUGFzc1JlZlB0cjxTY3JpcHRDYWxsU3RhY2s+KTsKKwogICAgICAgICBLVVJMIG1fdXJsOwog
ICAgICAgICBTdHJpbmcgbV91c2VyQWdlbnQ7CiAKQEAgLTE4Nyw3ICsxODksNiBAQCBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiAgICAgICAgIG11dGFibGUgUmVmUHRyPE5vdGlmaWNhdGlvbkNlbnRlcj4g
bV9ub3RpZmljYXRpb25zOwogI2VuZGlmCiAgICAgICAgIGJvb2wgbV9jbG9zaW5nOwotICAgICAg
ICBib29sIG1fcmVwb3J0aW5nRXhjZXB0aW9uOwogICAgICAgICBFdmVudFRhcmdldERhdGEgbV9l
dmVudFRhcmdldERhdGE7CiAKICAgICAgICAgSGFzaFNldDxPYnNlcnZlcio+IG1fd29ya2VyT2Jz
ZXJ2ZXJzOwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS93b3JrZXJzL1dvcmtlck1lc3NhZ2luZ1Byb3h5
LmNwcCBiL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJNZXNzYWdpbmdQcm94eS5jcHAKaW5kZXggMTA3
MDBjNi4uMDY4NzAxNCAxMDA2NDQKLS0tIGEvV2ViQ29yZS93b3JrZXJzL1dvcmtlck1lc3NhZ2lu
Z1Byb3h5LmNwcAorKysgYi9XZWJDb3JlL3dvcmtlcnMvV29ya2VyTWVzc2FnaW5nUHJveHkuY3Bw
CkBAIC00MCw2ICs0MCw3IEBACiAjaW5jbHVkZSAiRXhjZXB0aW9uQ29kZS5oIgogI2luY2x1ZGUg
Ikluc3BlY3RvckNvbnRyb2xsZXIuaCIKICNpbmNsdWRlICJNZXNzYWdlRXZlbnQuaCIKKyNpbmNs
dWRlICJTY3JpcHRDYWxsU3RhY2suaCIKICNpbmNsdWRlICJTY3JpcHRFeGVjdXRpb25Db250ZXh0
LmgiCiAjaW5jbHVkZSAiV29ya2VyLmgiCiAKQEAgLTEzMSw3ICsxMzIsNyBAQCBwcml2YXRlOgog
CiAgICAgICAgIGJvb2wgZXJyb3JIYW5kbGVkID0gIXdvcmtlck9iamVjdC0+ZGlzcGF0Y2hFdmVu
dChFcnJvckV2ZW50OjpjcmVhdGUobV9lcnJvck1lc3NhZ2UsIG1fc291cmNlVVJMLCBtX2xpbmVO
dW1iZXIpKTsKICAgICAgICAgaWYgKCFlcnJvckhhbmRsZWQpCi0gICAgICAgICAgICBjb250ZXh0
LT5yZXBvcnRFeGNlcHRpb24obV9lcnJvck1lc3NhZ2UsIG1fbGluZU51bWJlciwgbV9zb3VyY2VV
UkwpOworICAgICAgICAgICAgY29udGV4dC0+cmVwb3J0RXhjZXB0aW9uKG1fZXJyb3JNZXNzYWdl
LCBtX2xpbmVOdW1iZXIsIG1fc291cmNlVVJMLCAwKTsKICAgICB9CiAKICAgICBTdHJpbmcgbV9l
cnJvck1lc3NhZ2U7CmRpZmYgLS1naXQgYS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nIGIvV2Vi
S2l0L2Nocm9taXVtL0NoYW5nZUxvZwppbmRleCAwMzMyMGJmLi5kZmY5MzgxIDEwMDY0NAotLS0g
YS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCisrKyBiL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VM
b2cKQEAgLTEsMyArMSwxOCBAQAorMjAxMC0xMC0xOSAgYWxleEB3ZWJraXQub3JnICA8YWxleEB3
ZWJraXQub3JnQDI2OGY0NWNjLWNkMDktMDQxMC1hYjNjLWQ1MjY5MWI0ZGJmYz4KKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBXZWJDb3JlIGRvZXNuJ3Qg
ZmlyZSB3aW5kb3cub25lcnJvciBldmVudCB3aGVuIHVuY2F1Z2h0IEphdmFTY3JpcHQgZXhjZXB0
aW9ucyBhcmUgdGhyb3duCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD04NTE5CisKKyAgICAgICAgVW5jYXVnaHQgZXhjZXB0aW9ucyBhcmUgcHJvcGFnYXRl
ZCB0byB3aW5kb3cub25lcnJvciBoYW5kZXIgaWYgb25lIGlzIHByZXNlbnQuCisgICAgICAgIFRo
ZSBoYW5kbGVyIGlzIGV4cGVjdGVkIHRvIGJlIGEgZnVuY3Rpb24gYWNjZXB0aW5nIHRocmVlIGFy
Z3VtZW50czogZXJyb3IgbWVzc2FnZSwKKyAgICAgICAgcmVzb3VyY2UgdXJsIGFuZCBsaW5lIG51
bWJlciB3aGVyZSB0aGUgZXhjZXB0aW9uIG9jY3VyZWQuCisKKyAgICAgICAgKiBzcmMvV2ViV29y
a2VyQ2xpZW50SW1wbC5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYldvcmtlckNsaWVudEltcGw6
OnBvc3RFeGNlcHRpb25Ub1dvcmtlck9iamVjdCk6CisgICAgICAgIChXZWJLaXQ6OldlYldvcmtl
ckNsaWVudEltcGw6OnBvc3RFeGNlcHRpb25Ub1dvcmtlck9iamVjdFRhc2spOgorCiAyMDEwLTEy
LTA3ICBCcmlhbiBXZWluc3RlaW4gIDxid2VpbnN0ZWluQGFwcGxlLmNvbT4KIAogICAgICAgICBS
ZXZpZXdlZCBieSBKb2huIFN1bGxpdmFuLgpkaWZmIC0tZ2l0IGEvV2ViS2l0L2Nocm9taXVtL3Ny
Yy9XZWJXb3JrZXJDbGllbnRJbXBsLmNwcCBiL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViV29ya2Vy
Q2xpZW50SW1wbC5jcHAKaW5kZXggMTgyODJlMy4uZTNjZTJiYSAxMDA2NDQKLS0tIGEvV2ViS2l0
L2Nocm9taXVtL3NyYy9XZWJXb3JrZXJDbGllbnRJbXBsLmNwcAorKysgYi9XZWJLaXQvY2hyb21p
dW0vc3JjL1dlYldvcmtlckNsaWVudEltcGwuY3BwCkBAIC00MSw2ICs0MSw3IEBACiAjaW5jbHVk
ZSAiTWVzc2FnZUV2ZW50LmgiCiAjaW5jbHVkZSAiTWVzc2FnZVBvcnQuaCIKICNpbmNsdWRlICJN
ZXNzYWdlUG9ydENoYW5uZWwuaCIKKyNpbmNsdWRlICJTY3JpcHRDYWxsU3RhY2suaCIKICNpbmNs
dWRlICJTY3JpcHRFeGVjdXRpb25Db250ZXh0LmgiCiAjaW5jbHVkZSAiV29ya2VyLmgiCiAjaW5j
bHVkZSAiV29ya2VyQ29udGV4dC5oIgpAQCAtMjQ3LDcgKzI0OCw3IEBAIHZvaWQgV2ViV29ya2Vy
Q2xpZW50SW1wbDo6cG9zdEV4Y2VwdGlvblRvV29ya2VyT2JqZWN0KGNvbnN0IFdlYlN0cmluZyYg
ZXJyb3JNZXNzCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgc291cmNlVVJMLAogICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpbmVOdW1iZXIpKTsKICAgICBp
ZiAodW5oYW5kbGVkKQotICAgICAgICBtX3NjcmlwdEV4ZWN1dGlvbkNvbnRleHQtPnJlcG9ydEV4
Y2VwdGlvbihlcnJvck1lc3NhZ2UsIGxpbmVOdW1iZXIsIHNvdXJjZVVSTCk7CisgICAgICAgIG1f
c2NyaXB0RXhlY3V0aW9uQ29udGV4dC0+cmVwb3J0RXhjZXB0aW9uKGVycm9yTWVzc2FnZSwgbGlu
ZU51bWJlciwgc291cmNlVVJMLCAwKTsKIH0KIAogdm9pZCBXZWJXb3JrZXJDbGllbnRJbXBsOjpw
b3N0Q29uc29sZU1lc3NhZ2VUb1dvcmtlck9iamVjdChpbnQgZGVzdGluYXRpb24sCkBAIC0zODMs
NyArMzg0LDggQEAgdm9pZCBXZWJXb3JrZXJDbGllbnRJbXBsOjpwb3N0RXhjZXB0aW9uVG9Xb3Jr
ZXJPYmplY3RUYXNrKAogICAgIGlmICghaGFuZGxlZCkKICAgICAgICAgdGhpc1B0ci0+bV9zY3Jp
cHRFeGVjdXRpb25Db250ZXh0LT5yZXBvcnRFeGNlcHRpb24oZXJyb3JNZXNzYWdlLAogICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaW5l
TnVtYmVyLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBzb3VyY2VVUkwpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBzb3VyY2VVUkwsCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDApOwogfQogCiB2b2lkIFdl
YldvcmtlckNsaWVudEltcGw6OnBvc3RDb25zb2xlTWVzc2FnZVRvV29ya2VyT2JqZWN0VGFzayhT
Y3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0LAo=
</data>
<flag name="review"
          id="67132"
          type_id="1"
          status="-"
          setter="eric"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>77495</attachid>
            <date>2010-12-27 06:24:33 -0800</date>
            <delta_ts>2010-12-27 06:31:33 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>window-onerror</filename>
            <type>text/plain</type>
            <size>132239</size>
            <attacher name="Yury Semikhatsky">yurys</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3Jlc291cmNlcy93aW5kb3ctb25l
cnJvci5qcyBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3Jlc291cmNlcy93aW5kb3ctb25lcnJv
ci5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zNDQ1NzRiCi0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvcmVzb3VyY2VzL3dpbmRvdy1vbmVy
cm9yLmpzCkBAIC0wLDAgKzEsMyBAQAorZnVuY3Rpb24gdGhyb3dFeGNlcHRpb24oKSB7CisgICAg
dGhyb3cgbmV3IEVycm9yKCJBbiBleGNlcHRpb24iKTsKK30KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2Zhc3QvZXZlbnRzL3dpbmRvdy1vbmVycm9yMS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0
cy9mYXN0L2V2ZW50cy93aW5kb3ctb25lcnJvcjEtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAuLmZlNTFiNzIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRU
ZXN0cy9mYXN0L2V2ZW50cy93aW5kb3ctb25lcnJvcjEtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEs
MyBAQAorVGhpcyBwYWdlIHRlc3RzIHNldHRpbmcgb25lcnJvciBoYW5kbGVycyB0aHJvdWdoIHRo
ZSBET00uIElmIGl0IHBhc3NlcywgeW91IHdpbGwgc2VlICJQQVNTIiBtZXNzYWdlcyBiZWxvdy5C
dWcgODUxOS4KKworUEFTUzogY2F1Z2h0IGdsb2JhbCBlcnJvcjogUmVmZXJlbmNlRXJyb3I6IENh
bid0IGZpbmQgdmFyaWFibGU6IGhhaGFoYV9nb29kX2x1Y2tfZmluZGluZ19tZSBhdCB3aW5kb3ct
b25lcnJvcjEuaHRtbDoyNQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvd2lu
ZG93LW9uZXJyb3IxLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy93aW5kb3ctb25lcnJv
cjEuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41OWQyNDk1Ci0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvd2luZG93LW9uZXJyb3IxLmh0
bWwKQEAgLTAsMCArMSwzNSBAQAorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQ+CitpZiAod2luZG93
LmxheW91dFRlc3RDb250cm9sbGVyKQorICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1Rl
eHQoKTsKKworZnVuY3Rpb24gcHJpbnQobWVzc2FnZSwgY29sb3IpCit7CisgICAgdmFyIHBhcmFn
cmFwaCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpOworICAgIHBhcmFncmFwaC5hcHBl
bmRDaGlsZChkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZShtZXNzYWdlKSk7CisgICAgcGFyYWdyYXBo
LnN0eWxlLmZvbnRGYW1pbHkgPSAibW9ub3NwYWNlIjsKKyAgICBpZiAoY29sb3IpCisgICAgICAg
IHBhcmFncmFwaC5zdHlsZS5jb2xvciA9IGNvbG9yOworICAgIGRvY3VtZW50LmdldEVsZW1lbnRC
eUlkKCJjb25zb2xlIikuYXBwZW5kQ2hpbGQocGFyYWdyYXBoKTsKK30KKworZnVuY3Rpb24gdGVz
dCgpCit7CisgICAgLy8gbXVzdCBiZSBsYXN0IGJlY2F1c2UgdGhlIGV4Y2VwdGlvbiBlbmRzIEph
dmFTY3JpcHQgZXhlY3V0aW9uCisgICAgd2luZG93Lm9uZXJyb3IgPSBmdW5jdGlvbiAoZXJyb3Is
IHVybCwgbGluZSkgeworICAgICAgICB1cmwgPSB1cmwgPyB1cmwubWF0Y2goIC9bXlwvXStcLz8k
LyApWzBdIDogdXJsOworICAgICAgICBwcmludCgiUEFTUzogY2F1Z2h0IGdsb2JhbCBlcnJvcjog
IiArIGVycm9yICsgIiBhdCAiICsgdXJsICsgIjoiICsgbGluZSwgImdyZWVuIik7CisgICAgICAg
IHJldHVybiBmYWxzZTsKKyAgICB9OworICAgIGhhaGFoYV9nb29kX2x1Y2tfZmluZGluZ19tZSgp
OyAvLyBjYXVnaHQgYnkgd2luZG93Lm9uZXJyb3IKK30KKzwvc2NyaXB0PgorPC9oZWFkPgorPGJv
ZHkgb25sb2FkPSJ0ZXN0KCk7Ij4KKzxwPlRoaXMgcGFnZSB0ZXN0cyBzZXR0aW5nIG9uZXJyb3Ig
aGFuZGxlcnMgdGhyb3VnaCB0aGUgRE9NLiBJZiBpdCBwYXNzZXMsIHlvdSB3aWxsCisgICBzZWUg
IlBBU1MiIG1lc3NhZ2VzIGJlbG93LjxhIGhyZWY9Imh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD04NTE5Ij5CdWcgODUxOTwvYT4uPC9wPgorPGhyPgorPGRpdiBpZD0nY29u
c29sZSc+PC9kaXY+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9m
YXN0L2V2ZW50cy93aW5kb3ctb25lcnJvcjEwLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zh
c3QvZXZlbnRzL3dpbmRvdy1vbmVycm9yMTAtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAuLmJmZjU2MzYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy9mYXN0L2V2ZW50cy93aW5kb3ctb25lcnJvcjEwLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDEx
IEBACitUZXN0IHRoYXQgImVycm9yIiBldmVudCBsaXN0ZW5lciBhZGRlZCB3aXRoIHdpbmRvdy5h
ZGRFdmVudExpc3RlbmVyIGlzIGludm9rZWQgZm9yIHVuY2F1Y2h0IGV4Y2VwdGlvbnMuIEJ1ZyA4
NTE5LgorCitldmVudCBwYXNzZWQgdG8gdGhlIGxpc3RlbmVyIGlzIHRoZSBzYW1lIGFzIHdpbmRv
dy5ldmVudDogdHJ1ZQorRXZlbnQgZGV0YWlsczoKK3R5cGU6IGVycm9yCitwaGFzZTogMgorY3Vy
cmVudFRhcmdldCBpcyB0aGUgZ2xvYmFsIG9iamVjdDogdHJ1ZQorbWVzc2FnZTogRXJyb3I6IE15
IGZhdWx0LgorZmlsZW5hbWU6IHdpbmRvdy1vbmVycm9yMTAuaHRtbAorbGluZW5vOiAyOQorCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy93aW5kb3ctb25lcnJvcjEwLmh0bWwg
Yi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy93aW5kb3ctb25lcnJvcjEwLmh0bWwKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMjZlZDAxOAotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL2Zhc3QvZXZlbnRzL3dpbmRvdy1vbmVycm9yMTAuaHRtbApAQCAtMCwwICsxLDMz
IEBACis8aHRtbD4KKzxib2R5PgorPHA+VGVzdCB0aGF0ICJlcnJvciIgZXZlbnQgbGlzdGVuZXIg
YWRkZWQgd2l0aCB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lciBpcyBpbnZva2VkIGZvciB1bmNhdWNo
dCBleGNlcHRpb25zLiA8YSBocmVmPSJodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9ODUxOSI+QnVnIDg1MTk8L2E+LjwvcD4KKzxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2Pgor
PHNjcmlwdD4KK2lmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCisgICAgbGF5b3V0VGVz
dENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOworCitmdW5jdGlvbiBsb2cobXNnKSB7CisgICAgZG9j
dW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNvbnNvbGUiKS5pbm5lckhUTUwgKz0gbXNnICsgIjxicj4i
OworfQorCitmdW5jdGlvbiBsYXN0UGF0aENvbXBvbmVudCh1cmwpIHsKKyAgICByZXR1cm4gdXJs
ID8gdXJsLm1hdGNoKCAvW15cL10rXC8/JC8gKVswXSA6IHVybDsKK30KKword2luZG93LmFkZEV2
ZW50TGlzdGVuZXIoImVycm9yIiwgZnVuY3Rpb24oZSkgeworICAgIGxvZygiZXZlbnQgcGFzc2Vk
IHRvIHRoZSBsaXN0ZW5lciBpcyB0aGUgc2FtZSBhcyB3aW5kb3cuZXZlbnQ6ICIgKyAod2luZG93
LmV2ZW50ID09PSBlKSk7CisgICAgbG9nKCJFdmVudCBkZXRhaWxzOiIpOworICAgIGxvZygidHlw
ZTogIiArIGUudHlwZSk7CisgICAgbG9nKCJwaGFzZTogIiArIGUuZXZlbnRQaGFzZSkKKyAgICBs
b2coImN1cnJlbnRUYXJnZXQgaXMgdGhlIGdsb2JhbCBvYmplY3Q6ICIgKyAoZS5jdXJyZW50VGFy
Z2V0ID09PSB3aW5kb3cpKTsKKyAgICBsb2coIm1lc3NhZ2U6ICIgKyBlLm1lc3NhZ2UpOworICAg
IGxvZygiZmlsZW5hbWU6ICIgKyBsYXN0UGF0aENvbXBvbmVudChlLmZpbGVuYW1lKSk7CisgICAg
bG9nKCJsaW5lbm86ICIgKyBlLmxpbmVubyk7CisgICAgZS5wcmV2ZW50RGVmYXVsdCgpOworfSwg
ZmFsc2UpOworCit0aHJvdyBuZXcgRXJyb3IoIk15IGZhdWx0LiIpOworCis8L3NjcmlwdD4KKzwv
Ym9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3dpbmRv
dy1vbmVycm9yMTEtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvd2luZG93
LW9uZXJyb3IxMS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MC4uOTZlMjBjYwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3dp
bmRvdy1vbmVycm9yMTEtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNCBAQAorVGVzdCB0aGF0IHdp
bmRvdy5vbmVycm9yIGlzIGNhbGxlZCBvbiB3aW5kb3cgb2JqZWN0LiBCdWcgODUxOS4KKworTWFp
biBmcmFtZSB3aW5kb3cub25lcnJvcjogRXJyb3I6IEFuIGV4Y2VwdGlvbiBhdCB3aW5kb3ctb25l
cnJvci5qczoyCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3dpbmRvdy1v
bmVycm9yMTEuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3dpbmRvdy1vbmVycm9yMTEu
aHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43NjU1ZmE3Ci0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvd2luZG93LW9uZXJyb3IxMS5odG1s
CkBAIC0wLDAgKzEsMjggQEAKKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0icmVzb3VyY2Vz
L3dpbmRvdy1vbmVycm9yLmpzIj4KKzwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8cD5UZXN0
IHRoYXQgd2luZG93Lm9uZXJyb3IgaXMgY2FsbGVkIG9uIHdpbmRvdyBvYmplY3QuIDxhIGhyZWY9
Imh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04NTE5Ij5CdWcgODUxOTwv
YT4uPC9wPgorPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+Cis8c2NyaXB0PgoraWYgKHdpbmRvdy5s
YXlvdXRUZXN0Q29udHJvbGxlcikKKyAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0
KCk7CisKK2Z1bmN0aW9uIGxvZyhtc2cpIHsKKyAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgi
Y29uc29sZSIpLmlubmVySFRNTCArPSBtc2cgKyAiPGJyPiI7Cit9CisKK3dpbmRvdy5vbmVycm9y
ID0gZnVuY3Rpb24obXNnLCB1cmwsIGxpbmUpCit7CisgICAgdXJsID0gdXJsID8gdXJsLm1hdGNo
KCAvW15cL10rXC8/JC8gKVswXSA6IHVybDsKKyAgICBsb2coIk1haW4gZnJhbWUgd2luZG93Lm9u
ZXJyb3I6ICIgKyBtc2cgKyAiIGF0ICIgKyB1cmwgKyAiOiIgKyBsaW5lKTsKKyAgICByZXR1cm4g
ZmFsc2U7Cit9CisKK3Rocm93RXhjZXB0aW9uKCk7CisKKzwvc2NyaXB0PgorPC9ib2R5PgorPC9o
dG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvd2luZG93LW9uZXJyb3Ix
Mi1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy93aW5kb3ctb25lcnJvcjEy
LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5lMTZmZTk3
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvd2luZG93LW9uZXJy
b3IxMi1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw4IEBACitUZXN0IHRoYXQgd2luZG93Lm9uZXJy
b3IgaXMgY2FsbGVkIG9uIHdpbmRvdyBvYmplY3QgZm9yIGV2ZW50cyBjcmVhdGVkIHVzaW5nIGRv
Y3VtZW50LmNyZWF0ZUV2ZW50KCJlcnJvciIpLiBCdWcgODUxOS4KKworTWFpbiBmcmFtZSB3aW5k
b3cub25lcnJvcjogCittc2c6IFtvYmplY3QgRXZlbnRdCit1cmw6IHVuZGVmaW5lZAorbGluZTog
dW5kZWZpbmVkCitET05FLgorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy93
aW5kb3ctb25lcnJvcjEyLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy93aW5kb3ctb25l
cnJvcjEyLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uZGVkZTk3NQot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3dpbmRvdy1vbmVycm9y
MTIuaHRtbApAQCAtMCwwICsxLDMzIEBACis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdCBzcmM9InJl
c291cmNlcy93aW5kb3ctb25lcnJvci5qcyI+Cis8L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5Pgor
PHA+VGVzdCB0aGF0IHdpbmRvdy5vbmVycm9yIGlzIGNhbGxlZCBvbiB3aW5kb3cgb2JqZWN0IGZv
ciBldmVudHMgY3JlYXRlZCB1c2luZyBkb2N1bWVudC5jcmVhdGVFdmVudCgiZXJyb3IiKS4gPGEg
aHJlZj0iaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTg1MTkiPkJ1ZyA4
NTE5PC9hPi48L3A+Cis8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KKzxzY3JpcHQ+CitpZiAod2lu
ZG93LmxheW91dFRlc3RDb250cm9sbGVyKQorICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBB
c1RleHQoKTsKKworZnVuY3Rpb24gbG9nKG1zZykgeworICAgIGRvY3VtZW50LmdldEVsZW1lbnRC
eUlkKCJjb25zb2xlIikuaW5uZXJIVE1MICs9IG1zZyArICI8YnI+IjsKK30KKword2luZG93Lm9u
ZXJyb3IgPSBmdW5jdGlvbihtc2csIHVybCwgbGluZSkKK3sKKyAgICBsb2coIk1haW4gZnJhbWUg
d2luZG93Lm9uZXJyb3I6ICIpOworICAgIGxvZygibXNnOiAiICsgbXNnKTsKKyAgICBsb2coInVy
bDogIiArIHVybCk7CisgICAgbG9nKCJsaW5lOiAiICsgbGluZSk7CisgICAgcmV0dXJuIGZhbHNl
OworfQorCit2YXIgZXZ0ID0gZG9jdW1lbnQuY3JlYXRlRXZlbnQoIkV2ZW50Iik7CitldnQuaW5p
dEV2ZW50KCJlcnJvciIsIHRydWUsIHRydWUpOword2luZG93LmRpc3BhdGNoRXZlbnQoZXZ0KTsK
K2xvZygiRE9ORS4iKTsKKworPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy93aW5kb3ctb25lcnJvcjItZXhwZWN0ZWQudHh0IGIv
TGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvd2luZG93LW9uZXJyb3IyLWV4cGVjdGVkLnR4dApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45M2EyZDNmCi0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvd2luZG93LW9uZXJyb3IyLWV4cGVjdGVkLnR4dApA
QCAtMCwwICsxLDYgQEAKK1Rlc3QgdGhhdCB1bmNhdWdodCBleGNlcHRpb25zIHdpbGwgYmUgcmVw
b3J0ZWQgdG8gdGhlIHdpbmRvdy5vbmVycm9yIGhhbmRsZXIuIEJ1ZyA4NTE5LgorCitNYWluIGZy
YW1lIHdpbmRvdy5vbmVycm9yOiBFcnJvcjogSW5saW5lIHNjcmlwdCBleGNlcHRpb24gYXQgd2lu
ZG93LW9uZXJyb3IyLmh0bWw6MzUKK01haW4gZnJhbWUgd2luZG93Lm9uZXJyb3I6IEV4Y2VwdGlv
biBpbiBvbmxvYWQgYXQgdW5kZWZpbmVkOjAKK01haW4gZnJhbWUgd2luZG93Lm9uZXJyb3I6IEVy
cm9yOiBFeGNlcHRpb24gaW4gc2V0VGltZW91dCBhdCB3aW5kb3ctb25lcnJvcjIuaHRtbDoyOQor
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy93aW5kb3ctb25lcnJvcjIuaHRt
bCBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3dpbmRvdy1vbmVycm9yMi5odG1sCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmRiOWZiNzUKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy9mYXN0L2V2ZW50cy93aW5kb3ctb25lcnJvcjIuaHRtbApAQCAtMCwwICsxLDQx
IEBACis8aHRtbD4KKzxib2R5IG9ubG9hZD0idGhyb3cgJ0V4Y2VwdGlvbiBpbiBvbmxvYWQnOyI+
Cis8cD5UZXN0IHRoYXQgdW5jYXVnaHQgZXhjZXB0aW9ucyB3aWxsIGJlIHJlcG9ydGVkIHRvIHRo
ZSB3aW5kb3cub25lcnJvciBoYW5kbGVyLiA8YSBocmVmPSJodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9ODUxOSI+QnVnIDg1MTk8L2E+LjwvcD4KKzxkaXYgaWQ9InJlc3Vs
dCI+PC9kaXY+Cis8c2NyaXB0PgoraWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikgewor
ICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKKyAgICBsYXlvdXRUZXN0Q29u
dHJvbGxlci53YWl0VW50aWxEb25lKCk7Cit9CisKK2Z1bmN0aW9uIGxvZyhtc2cpIHsKKyAgICBk
b2N1bWVudC5nZXRFbGVtZW50QnlJZCgicmVzdWx0IikuaW5uZXJIVE1MICs9IG1zZyArICI8YnI+
IjsKK30KKwordmFyIHVuaGFuZGxlZEVycm9yQ291bnQgPSAwOword2luZG93Lm9uZXJyb3IgPSBm
dW5jdGlvbihtc2csIHVybCwgbGluZSkKK3sKKyAgICB1cmwgPSB1cmwgPyB1cmwubWF0Y2goIC9b
XlwvXStcLz8kLyApWzBdIDogdXJsOworICAgIGxvZygiTWFpbiBmcmFtZSB3aW5kb3cub25lcnJv
cjogIiArIG1zZyArICIgYXQgIiArIHVybCArICI6IiArIGxpbmUpOworICAgIAorICAgIGlmICgr
K3VuaGFuZGxlZEVycm9yQ291bnQgPT09IDMgJiYgd2luZG93LmxheW91dFRlc3RDb250cm9sbGVy
KQorICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5ub3RpZnlEb25lKCk7CisKKyAgICByZXR1
cm4gZmFsc2U7Cit9CisKK2Z1bmN0aW9uIGRlbGF5ZWRUaHJvd0V4Y2VwdGlvbigpCit7CisgICAg
dGhyb3cgbmV3IEVycm9yKCJFeGNlcHRpb24gaW4gc2V0VGltZW91dCIpOworfQorc2V0VGltZW91
dChkZWxheWVkVGhyb3dFeGNlcHRpb24sIDApOworCitmdW5jdGlvbiB0aHJvd0V4Y2VwdGlvbigp
Cit7CisgICAgdGhyb3cgbmV3IEVycm9yKCJJbmxpbmUgc2NyaXB0IGV4Y2VwdGlvbiIpOworfQor
dGhyb3dFeGNlcHRpb24oKTsKKworPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy93aW5kb3ctb25lcnJvcjMtZXhwZWN0ZWQudHh0
IGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvd2luZG93LW9uZXJyb3IzLWV4cGVjdGVkLnR4dApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43MDI1ZGJiCi0tLSAvZGV2L251bGwK
KysrIGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvd2luZG93LW9uZXJyb3IzLWV4cGVjdGVkLnR4
dApAQCAtMCwwICsxLDQgQEAKK1lvdSBzaG91bGQgc2VlIGEgbWVzc2FnZSBpZiB3aW5kb3cub25l
cnJvciBpcyB3b3JraW5nIHByb3Blcmx5IGZvciB0aGlzIHRlc3QuQnVnIDg1MTkuCisKK0Vycm9y
IGNhdWdodCBzdWNjZXNzZnVsbHk6IFJlZmVyZW5jZUVycm9yOiBDYW4ndCBmaW5kIHZhcmlhYmxl
OiB1bmtub3duT2JqZWN0IEZpbGU6IHdpbmRvdy1vbmVycm9yMy5odG1sIExpbmU6IDE2CisKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3dpbmRvdy1vbmVycm9yMy5odG1sIGIv
TGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvd2luZG93LW9uZXJyb3IzLmh0bWwKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZWUyODkzZgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL2Zhc3QvZXZlbnRzL3dpbmRvdy1vbmVycm9yMy5odG1sCkBAIC0wLDAgKzEsMjMgQEAK
KzxzY3JpcHQ+CitpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQorICAgIGxheW91dFRl
c3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKKworZnVuY3Rpb24gbG9nKG1zZykgeworICAgIGRv
Y3VtZW50LmdldEVsZW1lbnRCeUlkKCJjb25zb2xlIikuaW5uZXJIVE1MICs9IG1zZyArICI8YnI+
IjsKK30KKworZnVuY3Rpb24gdGVzdDEoKQoreworICAgIHdpbmRvdy5vbmVycm9yID0gZnVuY3Rp
b24gKGVycm9yLCB1cmwsIGxpbmUpIHsKKyAgICAgICAgdXJsID0gdXJsID8gdXJsLm1hdGNoKCAv
W15cL10rXC8/JC8gKVswXSA6IHVybDsKKyAgICAgICAgbG9nKCJFcnJvciBjYXVnaHQgc3VjY2Vz
c2Z1bGx5OiAiICsgZXJyb3IgKyAiXG5GaWxlOiAiICsgdXJsICsgIlxuTGluZTogIiArIGxpbmUp
CisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9OworICAgIHVua25vd25PYmplY3QudW5rbm93
blByb3BlcnR5Kys7Cit9Cis8L3NjcmlwdD4KKzxib2R5IG9ubG9hZD0idGVzdDEoKTsiPgorPHA+
WW91IHNob3VsZCBzZWUgYSBtZXNzYWdlIGlmIHdpbmRvdy5vbmVycm9yIGlzIHdvcmtpbmcgcHJv
cGVybHkgZm9yIHRoaXMgdGVzdC48YSBocmVmPSJodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9ODUxOSI+QnVnIDg1MTk8L2E+LjwvcD4KKzxocj4KKzxkaXYgaWQ9J2NvbnNv
bGUnPjwvZGl2PgorPC9ib2R5PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMv
d2luZG93LW9uZXJyb3I0LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3dp
bmRvdy1vbmVycm9yNC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMC4uMjZhZjhhMQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRz
L3dpbmRvdy1vbmVycm9yNC1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw0IEBACitZb3Ugc2hvdWxk
IHNlZSBhIGxvZyByZWNvcmQgaWYgd2luZG93Lm9uZXJyb3IgaXMgd29ya2luZyBwcm9wZXJseSBm
b3IgdGhpcyB0ZXN0LkJ1ZyA4NTE5LgorCitFcnJvciBjYXVnaHQgc3VjY2Vzc2Z1bGx5OiBSZWZl
cmVuY2VFcnJvcjogTGVmdCBzaWRlIG9mIGFzc2lnbm1lbnQgaXMgbm90IGEgcmVmZXJlbmNlLiBG
aWxlOiB1bmRlZmluZWQgTGluZTogMQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2V2
ZW50cy93aW5kb3ctb25lcnJvcjQuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3dpbmRv
dy1vbmVycm9yNC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmM1MTg4
N2QKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy93aW5kb3ctb25l
cnJvcjQuaHRtbApAQCAtMCwwICsxLDIzIEBACis8c2NyaXB0PgoraWYgKHdpbmRvdy5sYXlvdXRU
ZXN0Q29udHJvbGxlcikKKyAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7CisK
K2Z1bmN0aW9uIGxvZyhtc2cpIHsKKyAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY29uc29s
ZSIpLmlubmVySFRNTCArPSBtc2cgKyAiPGJyPiI7Cit9CisKK2Z1bmN0aW9uIHRlc3QxKCkKK3sK
KyAgICB3aW5kb3cub25lcnJvciA9IGZ1bmN0aW9uIChlcnJvciwgdXJsLCBsaW5lKSB7CisgICAg
ICAgIHVybCA9IHVybCA/IHVybC5tYXRjaCggL1teXC9dK1wvPyQvIClbMF0gOiB1cmw7CisgICAg
ICAgIGxvZygiRXJyb3IgY2F1Z2h0IHN1Y2Nlc3NmdWxseTogIiArIGVycm9yICsgIlxuRmlsZTog
IiArIHVybCArICJcbkxpbmU6ICIgKyBsaW5lKQorICAgICAgICByZXR1cm4gZmFsc2U7CisgICAg
fTsKKyAgICBldmFsKCIxPTIiKTsKK30KKzwvc2NyaXB0PgorPGJvZHkgb25sb2FkPSJ0ZXN0MSgp
OyI+Cis8cD5Zb3Ugc2hvdWxkIHNlZSBhIGxvZyByZWNvcmQgaWYgd2luZG93Lm9uZXJyb3IgaXMg
d29ya2luZyBwcm9wZXJseSBmb3IgdGhpcyB0ZXN0LjxhIGhyZWY9Imh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD04NTE5Ij5CdWcgODUxOTwvYT4uPC9wPgorPGhyPgorPGRp
diBpZD0nY29uc29sZSc+PC9kaXY+Cis8L2JvZHk+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9m
YXN0L2V2ZW50cy93aW5kb3ctb25lcnJvcjUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFz
dC9ldmVudHMvd2luZG93LW9uZXJyb3I1LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwLi4zZWM3ZjVlCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMv
ZmFzdC9ldmVudHMvd2luZG93LW9uZXJyb3I1LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDQgQEAK
K1Rlc3QgdGhhdCB3aW5kb3cub25lcnJvciBpcyBpbnZva2VkIGZvciBzeW50YXggZXJyb3IgaW4g
ZXZhbC4gWW91IHNob3VsZCBzZWUgYSBsb2cgcmVjb3JkIGlmIHdpbmRvdy5vbmVycm9yIGlzIHdv
cmtpbmcgcHJvcGVybHkgZm9yIHRoaXMgdGVzdC5CdWcgODUxOS4KKworRXJyb3IgY2F1Z2h0IHN1
Y2Nlc3NmdWxseTogU3ludGF4RXJyb3I6IFBhcnNlIGVycm9yIEZpbGU6IHVuZGVmaW5lZCBMaW5l
OiAxCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3dpbmRvdy1vbmVycm9y
NS5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvd2luZG93LW9uZXJyb3I1Lmh0bWwKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOTMyZDQzOAotLS0gL2Rldi9udWxsCisr
KyBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3dpbmRvdy1vbmVycm9yNS5odG1sCkBAIC0wLDAg
KzEsMjMgQEAKKzxzY3JpcHQ+CitpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQorICAg
IGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKKworZnVuY3Rpb24gbG9nKG1zZykg
eworICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjb25zb2xlIikuaW5uZXJIVE1MICs9IG1z
ZyArICI8YnI+IjsKK30KKworZnVuY3Rpb24gdGVzdDEoKQoreworICAgIHdpbmRvdy5vbmVycm9y
ID0gZnVuY3Rpb24gKGVycm9yLCB1cmwsIGxpbmUpIHsKKyAgICAgICAgdXJsID0gdXJsID8gdXJs
Lm1hdGNoKCAvW15cL10rXC8/JC8gKVswXSA6IHVybDsKKyAgICAgICAgbG9nKCJFcnJvciBjYXVn
aHQgc3VjY2Vzc2Z1bGx5OiAiICsgZXJyb3IgKyAiXG5GaWxlOiAiICsgdXJsICsgIlxuTGluZTog
IiArIGxpbmUpCisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9OworICAgIGV2YWwoImEoIik7
Cit9Cis8L3NjcmlwdD4KKzxib2R5IG9ubG9hZD0idGVzdDEoKTsiPgorPHA+VGVzdCB0aGF0IHdp
bmRvdy5vbmVycm9yIGlzIGludm9rZWQgZm9yIHN5bnRheCBlcnJvciBpbiBldmFsLiBZb3Ugc2hv
dWxkIHNlZSBhIGxvZyByZWNvcmQgaWYgd2luZG93Lm9uZXJyb3IgaXMgd29ya2luZyBwcm9wZXJs
eSBmb3IgdGhpcyB0ZXN0LjxhIGhyZWY9Imh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD04NTE5Ij5CdWcgODUxOTwvYT4uPC9wPgorPGhyPgorPGRpdiBpZD0nY29uc29sZSc+
PC9kaXY+Cis8L2JvZHk+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy93aW5k
b3ctb25lcnJvcjYtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvd2luZG93
LW9uZXJyb3I2LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
Li5lN2MyN2JiCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvd2lu
ZG93LW9uZXJyb3I2LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDQgQEAKK1Rlc3QgdGhhdCBzeW50
YXggZXJyb3Igd2lsbCBiZSByZXBvcnRlZCB0byB0aGUgd2luZG93Lm9uZXJyb3IgaGFuZGxlci4g
QnVnIDg1MTkuCisKK01haW4gZnJhbWUgd2luZG93Lm9uZXJyb3I6IFN5bnRheEVycm9yOiBQYXJz
ZSBlcnJvciBhdCB3aW5kb3ctb25lcnJvcjYuaHRtbDoyMgorCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9mYXN0L2V2ZW50cy93aW5kb3ctb25lcnJvcjYuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3Qv
ZXZlbnRzL3dpbmRvdy1vbmVycm9yNi5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAuLjE5Nzg0MzYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50
cy93aW5kb3ctb25lcnJvcjYuaHRtbApAQCAtMCwwICsxLDI2IEBACis8aHRtbD4KKzxib2R5Pgor
PHA+VGVzdCB0aGF0IHN5bnRheCBlcnJvciB3aWxsIGJlIHJlcG9ydGVkIHRvIHRoZSB3aW5kb3cu
b25lcnJvciBoYW5kbGVyLiA8YSBocmVmPSJodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9ODUxOSI+QnVnIDg1MTk8L2E+LjwvcD4KKzxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2
PgorPHNjcmlwdD4KK2lmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCisgICAgbGF5b3V0
VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOworCitmdW5jdGlvbiBsb2cobXNnKSB7CisgICAg
ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNvbnNvbGUiKS5pbm5lckhUTUwgKz0gbXNnICsgIjxi
cj4iOworfQorCit3aW5kb3cub25lcnJvciA9IGZ1bmN0aW9uKG1zZywgdXJsLCBsaW5lKQorewor
ICAgIHVybCA9IHVybCA/IHVybC5tYXRjaCggL1teXC9dK1wvPyQvIClbMF0gOiB1cmw7CisgICAg
bG9nKCJNYWluIGZyYW1lIHdpbmRvdy5vbmVycm9yOiAiICsgbXNnICsgIiBhdCAiICsgdXJsICsg
IjoiICsgbGluZSk7CisgICAgcmV0dXJuIGZhbHNlOworfQorPC9zY3JpcHQ+Cis8c2NyaXB0Pgor
CithKSAvLyBzeW50YXggZXJyb3IKKworPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy93aW5kb3ctb25lcnJvcjctZXhwZWN0ZWQu
dHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvd2luZG93LW9uZXJyb3I3LWV4cGVjdGVkLnR4
dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41ZDIyZTdlCi0tLSAvZGV2L251
bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvd2luZG93LW9uZXJyb3I3LWV4cGVjdGVk
LnR4dApAQCAtMCwwICsxLDYgQEAKK0NPTlNPTEUgTUVTU0FHRTogbGluZSAyMDogRXJyb3I6IE9y
aWdpbmFsIGVycm9yCitDT05TT0xFIE1FU1NBR0U6IGxpbmUgMTc6IEVycm9yOiBOZXN0ZWQgZXJy
b3IKK1Rlc3QgdGhhdCBleGNlcHRpb24gaW4gd2luZG93Lm9uZXJyb3Igd29uJ3QgbGVhZCB0byBy
ZWN1cnNpdmUgd2luZG93Lm9uZXJyb3IgY2FsbC4gQnVnIDg1MTkuCisKK01haW4gZnJhbWUgd2lu
ZG93Lm9uZXJyb3I6IEVycm9yOiBPcmlnaW5hbCBlcnJvciBhdCB3aW5kb3ctb25lcnJvcjcuaHRt
bDoyMAorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy93aW5kb3ctb25lcnJv
cjcuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3dpbmRvdy1vbmVycm9yNy5odG1sCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmY2NjU2ODYKLS0tIC9kZXYvbnVsbAor
KysgYi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy93aW5kb3ctb25lcnJvcjcuaHRtbApAQCAtMCww
ICsxLDI0IEBACis8aHRtbD4KKzxib2R5PgorPHA+VGVzdCB0aGF0IGV4Y2VwdGlvbiBpbiB3aW5k
b3cub25lcnJvciB3b24ndCBsZWFkIHRvIHJlY3Vyc2l2ZSB3aW5kb3cub25lcnJvciBjYWxsLiA8
YSBocmVmPSJodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODUxOSI+QnVn
IDg1MTk8L2E+LjwvcD4KKzxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgorPHNjcmlwdD4KK2lmICh3
aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCisgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVt
cEFzVGV4dCgpOworCitmdW5jdGlvbiBsb2cobXNnKSB7CisgICAgZG9jdW1lbnQuZ2V0RWxlbWVu
dEJ5SWQoImNvbnNvbGUiKS5pbm5lckhUTUwgKz0gbXNnICsgIjxicj4iOworfQorCit3aW5kb3cu
b25lcnJvciA9IGZ1bmN0aW9uKG1zZywgdXJsLCBsaW5lKQoreworICAgIHVybCA9IHVybCA/IHVy
bC5tYXRjaCggL1teXC9dK1wvPyQvIClbMF0gOiB1cmw7CisgICAgbG9nKCJNYWluIGZyYW1lIHdp
bmRvdy5vbmVycm9yOiAiICsgbXNnICsgIiBhdCAiICsgdXJsICsgIjoiICsgbGluZSk7CisgICAg
dGhyb3cgbmV3IEVycm9yKCJOZXN0ZWQgZXJyb3IiKTsKK30KKwordGhyb3cgbmV3IEVycm9yKCJP
cmlnaW5hbCBlcnJvciIpOworCis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3dpbmRvdy1vbmVycm9yOC1leHBlY3RlZC50eHQg
Yi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy93aW5kb3ctb25lcnJvcjgtZXhwZWN0ZWQudHh0Cm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmVmYzYzMDgKLS0tIC9kZXYvbnVsbAor
KysgYi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy93aW5kb3ctb25lcnJvcjgtZXhwZWN0ZWQudHh0
CkBAIC0wLDAgKzEsNSBAQAorVGVzdCB0aGF0IHdpbmRvdy5vbmVycm9yIGlzIGNhbGxlZCBvbiB3
aW5kb3cgb2JqZWN0LiBCdWcgODUxOS4KKworTWFpbiBmcmFtZSB3aW5kb3cub25lcnJvcjogMjAx
MCBhdCB1bmRlZmluZWQ6MAorUEFTU0VEOiB0aGlzID09PSB3aW5kb3cKKwpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvd2luZG93LW9uZXJyb3I4Lmh0bWwgYi9MYXlvdXRUZXN0
cy9mYXN0L2V2ZW50cy93aW5kb3ctb25lcnJvcjguaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwLi5iYWRlNTM4Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFz
dC9ldmVudHMvd2luZG93LW9uZXJyb3I4Lmh0bWwKQEAgLTAsMCArMSwyOCBAQAorPGh0bWw+Cis8
Ym9keT4KKzxwPlRlc3QgdGhhdCB3aW5kb3cub25lcnJvciBpcyBjYWxsZWQgb24gd2luZG93IG9i
amVjdC4gPGEgaHJlZj0iaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTg1
MTkiPkJ1ZyA4NTE5PC9hPi48L3A+Cis8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KKzxzY3JpcHQ+
CitpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQorICAgIGxheW91dFRlc3RDb250cm9s
bGVyLmR1bXBBc1RleHQoKTsKKworZnVuY3Rpb24gbG9nKG1zZykgeworICAgIGRvY3VtZW50Lmdl
dEVsZW1lbnRCeUlkKCJjb25zb2xlIikuaW5uZXJIVE1MICs9IG1zZyArICI8YnI+IjsKK30KKwor
d2luZG93Lm9uZXJyb3IgPSBmdW5jdGlvbihtc2csIHVybCwgbGluZSkKK3sKKyAgICB1cmwgPSB1
cmwgPyB1cmwubWF0Y2goIC9bXlwvXStcLz8kLyApWzBdIDogdXJsOworICAgIGxvZygiTWFpbiBm
cmFtZSB3aW5kb3cub25lcnJvcjogIiArIG1zZyArICIgYXQgIiArIHVybCArICI6IiArIGxpbmUp
OworICAgIGlmICh0aGlzID09PSB3aW5kb3cpIAorICAgICAgICBsb2coIlBBU1NFRDogdGhpcyA9
PT0gd2luZG93Iik7CisgICAgZWxzZQorICAgICAgICBsb2coIkZBSUxFRDogdGhpcyA9PT0gd2lu
ZG93Iik7CisgICAgcmV0dXJuIGZhbHNlOworfQorCit0aHJvdyAyMDEwOworCis8L3NjcmlwdD4K
KzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3dp
bmRvdy1vbmVycm9yOS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy93aW5k
b3ctb25lcnJvcjktZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAuLjk0MzE2ZDMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy93
aW5kb3ctb25lcnJvcjktZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsOCBAQAorVGVzdCB0aGF0IHdo
ZW4gd2luZG93Lm9uZXJyb3IgaGFuZGxlciBpcyBjYWxsZWQsIHdpbmRvdy5ldmVudCBpcyB0aGUg
Y29ycmVzcG9uZGluZyBFcnJvckV2ZW50IG9iamVjdC4gQnVnIDg1MTkuCisKK01haW4gZnJhbWUg
d2luZG93Lm9uZXJyb3I6IEVycm9yOiAyMDEwIGF0IHdpbmRvdy1vbmVycm9yOS5odG1sOjMxCit3
aW5kb3cuZXZlbnQudHlwZSA9IGVycm9yCit3aW5kb3cuZXZlbnQubWVzc2FnZSA9IEVycm9yOiAy
MDEwCit3aW5kb3cuZXZlbnQuZmlsZW5hbWUgPSB3aW5kb3ctb25lcnJvcjkuaHRtbAord2luZG93
LmV2ZW50LmxpbmVubyA9IDMxCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRz
L3dpbmRvdy1vbmVycm9yOS5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvd2luZG93LW9u
ZXJyb3I5Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMTA4NmFjZQot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3dpbmRvdy1vbmVycm9y
OS5odG1sCkBAIC0wLDAgKzEsMzUgQEAKKzxodG1sPgorPGJvZHk+Cis8cD5UZXN0IHRoYXQgd2hl
biB3aW5kb3cub25lcnJvciBoYW5kbGVyIGlzIGNhbGxlZCwgd2luZG93LmV2ZW50IGlzIHRoZSBj
b3JyZXNwb25kaW5nIEVycm9yRXZlbnQgb2JqZWN0LiA8YSBocmVmPSJodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODUxOSI+QnVnIDg1MTk8L2E+LjwvcD4KKzxkaXYgaWQ9
ImNvbnNvbGUiPjwvZGl2PgorPHNjcmlwdD4KK2lmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xs
ZXIpIHsKKyAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7CisgICAgbGF5b3V0
VGVzdENvbnRyb2xsZXIud2FpdFVudGlsRG9uZSgpOworfQorCitmdW5jdGlvbiBsb2cobXNnKSB7
CisgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNvbnNvbGUiKS5pbm5lckhUTUwgKz0gbXNn
ICsgIjxicj4iOworfQorCitmdW5jdGlvbiBsYXN0UGF0aENvbXBvbmVudCh1cmwpIHsKKyAgICBy
ZXR1cm4gdXJsID8gdXJsLm1hdGNoKCAvW15cL10rXC8/JC8gKVswXSA6IHVybDsKK30KKword2lu
ZG93Lm9uZXJyb3IgPSBmdW5jdGlvbihtc2csIHVybCwgbGluZSkKK3sKKyAgICBsb2coIk1haW4g
ZnJhbWUgd2luZG93Lm9uZXJyb3I6ICIgKyBtc2cgKyAiIGF0ICIgKyBsYXN0UGF0aENvbXBvbmVu
dCh1cmwpICsgIjoiICsgbGluZSk7CisgICAgbG9nKCJ3aW5kb3cuZXZlbnQudHlwZSA9ICIgKyB3
aW5kb3cuZXZlbnQudHlwZSk7CisgICAgbG9nKCJ3aW5kb3cuZXZlbnQubWVzc2FnZSA9ICIgKyB3
aW5kb3cuZXZlbnQubWVzc2FnZSk7CisgICAgbG9nKCJ3aW5kb3cuZXZlbnQuZmlsZW5hbWUgPSAi
ICsgbGFzdFBhdGhDb21wb25lbnQod2luZG93LmV2ZW50LmZpbGVuYW1lKSk7CisgICAgbG9nKCJ3
aW5kb3cuZXZlbnQubGluZW5vID0gIiArIHdpbmRvdy5ldmVudC5saW5lbm8pOworICAgIGlmICh3
aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCisgICAgICAgIGxheW91dFRlc3RDb250cm9sbGVy
Lm5vdGlmeURvbmUoKTsKKyAgICByZXR1cm4gZmFsc2U7Cit9CisKK3Rocm93IG5ldyBFcnJvcigy
MDEwKTsKKworPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9mYXN0L3dvcmtlcnMvd29ya2VyLXNjcmlwdC1lcnJvci1leHBlY3RlZC50eHQgYi9MYXlv
dXRUZXN0cy9mYXN0L3dvcmtlcnMvd29ya2VyLXNjcmlwdC1lcnJvci1leHBlY3RlZC50eHQKaW5k
ZXggMTBhYjA0OS4uNDA0MTY0MCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC93b3JrZXJz
L3dvcmtlci1zY3JpcHQtZXJyb3ItZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2Zhc3Qv
d29ya2Vycy93b3JrZXItc2NyaXB0LWVycm9yLWV4cGVjdGVkLnR4dApAQCAtNCw4ICs0LDggQEAg
VGVzdCBXb3JrZXIgc2NyaXB0IGVycm9yIGhhbmRsaW5nIGZ1bmN0aW9uYWxpdHkuIFNob3VsZCBw
cmludCBhIHNlcmllcyBvZiBQQVNTIG0KIFBBU1M6IG9uZXJyb3IgaW52b2tlZCBmb3IgYSBzY3Jp
cHQgdGhhdCBoYXMgaW52YWxpZCBzeW50YXguCiBQQVNTOiBvbmVycm9yIGludm9rZWQgZm9yIGEg
c2NyaXB0IHRoYXQgaGFzIHNjcmlwdCBlcnJvciAnUmVmZXJlbmNlRXJyb3I6IENhbid0IGZpbmQg
dmFyaWFibGU6IGZvbycgYXQgbGluZSAxLgogUEFTUzogZXZlbnQgbGlzdGVuZXIgaW52b2tlZCBm
b3IgYSBzY3JpcHQgdGhhdCBoYXMgc2NyaXB0IGVycm9yICdSZWZlcmVuY2VFcnJvcjogQ2FuJ3Qg
ZmluZCB2YXJpYWJsZTogZm9vJyBhdCBsaW5lIDEuCi1QQVNTOiBvbmVycm9yIGludm9rZWQgZm9y
IGEgc2NyaXB0IHRoYXQgaGFzIHNjcmlwdCBlcnJvciAnUmVmZXJlbmNlRXJyb3I6IENhbid0IGZp
bmQgdmFyaWFibGU6IGJhcicgYXQgbGluZSAzLgogUEFTUzogb25lcnJvciBpbnZva2VkIGZvciBh
IHNjcmlwdCB0aGF0IGhhcyBzY3JpcHQgZXJyb3IgJ1JlZmVyZW5jZUVycm9yOiBDYW4ndCBmaW5k
IHZhcmlhYmxlOiBmb28nIGF0IGxpbmUgNy4KK1BBU1M6IG9uZXJyb3IgaW52b2tlZCBmb3IgYSBz
Y3JpcHQgdGhhdCBoYXMgc2NyaXB0IGVycm9yICdSZWZlcmVuY2VFcnJvcjogQ2FuJ3QgZmluZCB2
YXJpYWJsZTogYmFyJyBhdCBsaW5lIDMuCiBQQVNTOiBvbmVycm9yIGludm9rZWQgZm9yIGEgc2Ny
aXB0IHRoYXQgaGFzIHNjcmlwdCBlcnJvciAnUmVmZXJlbmNlRXJyb3I6IENhbid0IGZpbmQgdmFy
aWFibGU6IGZvbycgYXQgbGluZSA3LgogUEFTUzogb25lcnJvciBpbnZva2VkIGZvciBhIHNjcmlw
dCB0aGF0IGhhcyBzY3JpcHQgZXJyb3IgJ1JlZmVyZW5jZUVycm9yOiBDYW4ndCBmaW5kIHZhcmlh
YmxlOiBmb28nIGF0IGxpbmUgNy4KIFBBU1M6IG1lc3NhZ2UgcmVjZWl2ZWQgZnJvbSBXb3JrZXJH
bG9iYWxTY29wZS5vbmVycm9yOiBvbmVycm9yIGludm9rZWQgZm9yIGEgc2NyaXB0IHRoYXQgaGFz
IHNjcmlwdCBlcnJvciAnUmVmZXJlbmNlRXJyb3I6IENhbid0IGZpbmQgdmFyaWFibGU6IGZvbycg
YXQgbGluZSA3LgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9y
ZXNvdXJjZXMvb25lcnJvci1pZnJhbWUuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2Vj
dXJpdHkvcmVzb3VyY2VzL29uZXJyb3ItaWZyYW1lLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMC4uMzEyZmQxMgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0
dHAvdGVzdHMvc2VjdXJpdHkvcmVzb3VyY2VzL29uZXJyb3ItaWZyYW1lLmh0bWwKQEAgLTAsMCAr
MSwxMSBAQAorPHNjcmlwdD4KK2Z1bmN0aW9uIGhhbmRsZUxvYWQoKQoreworICAgIHdpbmRvdy5w
YXJlbnQucG9zdE1lc3NhZ2UoIklGcmFtZUxvYWRlZCIsICIqIik7Cit9CisKK3Rocm93ICJJZnJh
bWVFeGNlcHRpb24iOworCis8L3NjcmlwdD4KKzxib2R5IG9ubG9hZD0iaGFuZGxlTG9hZCgpIj4K
KzwvYm9keT4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvd2lu
ZG93LW9uZXJyb3ItZXhjZXB0aW9uLWluLWlmcmFtZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0
cy9odHRwL3Rlc3RzL3NlY3VyaXR5L3dpbmRvdy1vbmVycm9yLWV4Y2VwdGlvbi1pbi1pZnJhbWUt
ZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjhiMTdkOTIK
LS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L3dpbmRv
dy1vbmVycm9yLWV4Y2VwdGlvbi1pbi1pZnJhbWUtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNiBA
QAorQ09OU09MRSBNRVNTQUdFOiBsaW5lIDA6IElmcmFtZUV4Y2VwdGlvbgorVGVzdCB0aGF0IGV4
Y2VwdGlvbnMgaW4gaWZyYW1lIGFyZSBub3QgcmVwb3J0ZWQgdG8gdGhlIG1haW4gZnJhbWUgd2lu
ZG93Lm9uZXJyb3IgaGFuZGxlci4gd2luZG93Lm9uZXJyb3Igc2hvdWxkIHByaW50IGV4YWN0bHkg
b25lIGxpbmUuCisKK01haW4gZnJhbWUgd2luZG93Lm9uZXJyb3I6IE1haW5GcmFtZUV4Y2VwdGlv
biBhdCB1bmRlZmluZWQ6MAorRE9ORQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL3NlY3VyaXR5L3dpbmRvdy1vbmVycm9yLWV4Y2VwdGlvbi1pbi1pZnJhbWUuaHRtbCBiL0xh
eW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvd2luZG93LW9uZXJyb3ItZXhjZXB0aW9uLWlu
LWlmcmFtZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjA5MDRlMzkK
LS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L3dpbmRv
dy1vbmVycm9yLWV4Y2VwdGlvbi1pbi1pZnJhbWUuaHRtbApAQCAtMCwwICsxLDM5IEBACis8aHRt
bD4KKzxib2R5PgorPHA+VGVzdCB0aGF0IGV4Y2VwdGlvbnMgaW4gaWZyYW1lIGFyZSBub3QgcmVw
b3J0ZWQgdG8gdGhlIG1haW4gZnJhbWUgd2luZG93Lm9uZXJyb3IgaGFuZGxlci4KK3dpbmRvdy5v
bmVycm9yIHNob3VsZCBwcmludCBleGFjdGx5IG9uZSBsaW5lLjwvcD4KKzxkaXYgaWQ9InJlc3Vs
dCI+PC9kaXY+Cis8c2NyaXB0PgoraWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikgewor
ICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKKyAgICBsYXlvdXRUZXN0Q29u
dHJvbGxlci53YWl0VW50aWxEb25lKCk7Cit9CisKK2Z1bmN0aW9uIGxvZyhtc2cpIHsKKyAgICBk
b2N1bWVudC5nZXRFbGVtZW50QnlJZCgicmVzdWx0IikuaW5uZXJIVE1MICs9IG1zZyArICI8YnI+
IjsKK30KKword2luZG93Lm9uZXJyb3IgPSBmdW5jdGlvbihtc2csIHVybCwgbGluZSkKK3sKKyAg
ICB1cmwgPSB1cmwgPyB1cmwubWF0Y2goIC9bXlwvXStcLz8kLyApWzBdIDogdXJsOworICAgIGxv
ZygiTWFpbiBmcmFtZSB3aW5kb3cub25lcnJvcjogIiArIG1zZyArICIgYXQgIiArIHVybCArICI6
IiArIGxpbmUpOworICAgIHJldHVybiBmYWxzZTsKK30KKworZnVuY3Rpb24gcmVjZWl2ZU1lc3Nh
Z2UoZXZlbnQpIHsKKyAgICBpZiAoZXZlbnQuZGF0YSA9PT0gIklGcmFtZUxvYWRlZCIpIHsKKyAg
ICAgICAgbG9nKCJET05FIik7CisgICAgICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xs
ZXIpCisgICAgICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5ub3RpZnlEb25lKCk7CisgICAg
fSBlbHNlCisgICAgICAgIGxvZygiRkFJTCAiICsgZXZlbnQuZGF0YSk7Cit9CisKK3dpbmRvdy5h
ZGRFdmVudExpc3RlbmVyKCJtZXNzYWdlIiwgcmVjZWl2ZU1lc3NhZ2UsIGZhbHNlKTsKKwordGhy
b3cgIk1haW5GcmFtZUV4Y2VwdGlvbiI7CisKKzwvc2NyaXB0PgorPGlmcmFtZSBzcmM9Imh0dHA6
Ly9sb2NhbGhvc3Q6ODAwMC9zZWN1cml0eS9yZXNvdXJjZXMvb25lcnJvci1pZnJhbWUuaHRtbCIv
PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hy
b21pdW0td2luL2Zhc3Qvd29ya2Vycy93b3JrZXItc2NyaXB0LWVycm9yLWV4cGVjdGVkLnR4dCBi
L0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtLXdpbi9mYXN0L3dvcmtlcnMvd29ya2VyLXNj
cmlwdC1lcnJvci1leHBlY3RlZC50eHQKaW5kZXggZmRmNjYwYi4uZWYwYTM5MSAxMDA2NDQKLS0t
IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0td2luL2Zhc3Qvd29ya2Vycy93b3JrZXIt
c2NyaXB0LWVycm9yLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJv
bWl1bS13aW4vZmFzdC93b3JrZXJzL3dvcmtlci1zY3JpcHQtZXJyb3ItZXhwZWN0ZWQudHh0CkBA
IC0zLDggKzMsOCBAQCBUZXN0IFdvcmtlciBzY3JpcHQgZXJyb3IgaGFuZGxpbmcgZnVuY3Rpb25h
bGl0eS4gU2hvdWxkIHByaW50IGEgc2VyaWVzIG9mIFBBU1MgbQogUEFTUzogb25lcnJvciBpbnZv
a2VkIGZvciBhIHNjcmlwdCB0aGF0IGhhcyBpbnZhbGlkIHN5bnRheC4KIFBBU1M6IG9uZXJyb3Ig
aW52b2tlZCBmb3IgYSBzY3JpcHQgdGhhdCBoYXMgc2NyaXB0IGVycm9yICdVbmNhdWdodCBSZWZl
cmVuY2VFcnJvcjogZm9vIGlzIG5vdCBkZWZpbmVkJyBhdCBsaW5lIDEuCiBQQVNTOiBldmVudCBs
aXN0ZW5lciBpbnZva2VkIGZvciBhIHNjcmlwdCB0aGF0IGhhcyBzY3JpcHQgZXJyb3IgJ1VuY2F1
Z2h0IFJlZmVyZW5jZUVycm9yOiBmb28gaXMgbm90IGRlZmluZWQnIGF0IGxpbmUgMS4KLVBBU1M6
IG9uZXJyb3IgaW52b2tlZCBmb3IgYSBzY3JpcHQgdGhhdCBoYXMgc2NyaXB0IGVycm9yICdVbmNh
dWdodCBSZWZlcmVuY2VFcnJvcjogYmFyIGlzIG5vdCBkZWZpbmVkJyBhdCBsaW5lIDMuCiBQQVNT
OiBvbmVycm9yIGludm9rZWQgZm9yIGEgc2NyaXB0IHRoYXQgaGFzIHNjcmlwdCBlcnJvciAnVW5j
YXVnaHQgUmVmZXJlbmNlRXJyb3I6IGZvbyBpcyBub3QgZGVmaW5lZCcgYXQgbGluZSA3LgorUEFT
Uzogb25lcnJvciBpbnZva2VkIGZvciBhIHNjcmlwdCB0aGF0IGhhcyBzY3JpcHQgZXJyb3IgJ1Vu
Y2F1Z2h0IFJlZmVyZW5jZUVycm9yOiBiYXIgaXMgbm90IGRlZmluZWQnIGF0IGxpbmUgMy4KIFBB
U1M6IG9uZXJyb3IgaW52b2tlZCBmb3IgYSBzY3JpcHQgdGhhdCBoYXMgc2NyaXB0IGVycm9yICdV
bmNhdWdodCBSZWZlcmVuY2VFcnJvcjogZm9vIGlzIG5vdCBkZWZpbmVkJyBhdCBsaW5lIDcuCiBQ
QVNTOiBvbmVycm9yIGludm9rZWQgZm9yIGEgc2NyaXB0IHRoYXQgaGFzIHNjcmlwdCBlcnJvciAn
VW5jYXVnaHQgUmVmZXJlbmNlRXJyb3I6IGZvbyBpcyBub3QgZGVmaW5lZCcgYXQgbGluZSA3Lgog
UEFTUzogbWVzc2FnZSByZWNlaXZlZCBmcm9tIFdvcmtlckdsb2JhbFNjb3BlLm9uZXJyb3I6IG9u
ZXJyb3IgaW52b2tlZCBmb3IgYSBzY3JpcHQgdGhhdCBoYXMgc2NyaXB0IGVycm9yICdVbmNhdWdo
dCBSZWZlcmVuY2VFcnJvcjogZm9vIGlzIG5vdCBkZWZpbmVkJyBhdCBsaW5lIDcuCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS9mYXN0L2V2ZW50cy93aW5kb3ctb25l
cnJvcjEtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vZmFzdC9l
dmVudHMvd2luZG93LW9uZXJyb3IxLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwLi42NWI2MjRiCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvcGxh
dGZvcm0vY2hyb21pdW0vZmFzdC9ldmVudHMvd2luZG93LW9uZXJyb3IxLWV4cGVjdGVkLnR4dApA
QCAtMCwwICsxLDMgQEAKK1RoaXMgcGFnZSB0ZXN0cyBzZXR0aW5nIG9uZXJyb3IgaGFuZGxlcnMg
dGhyb3VnaCB0aGUgRE9NLiBJZiBpdCBwYXNzZXMsIHlvdSB3aWxsIHNlZSAiUEFTUyIgbWVzc2Fn
ZXMgYmVsb3cuQnVnIDg1MTkuDQorDQorUEFTUzogY2F1Z2h0IGdsb2JhbCBlcnJvcjogVW5jYXVn
aHQgUmVmZXJlbmNlRXJyb3I6IGhhaGFoYV9nb29kX2x1Y2tfZmluZGluZ19tZSBpcyBub3QgZGVm
aW5lZCBhdCB3aW5kb3ctb25lcnJvcjEuaHRtbDoyNQ0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L3BsYXRmb3JtL2Nocm9taXVtL2Zhc3QvZXZlbnRzL3dpbmRvdy1vbmVycm9yMTAtZXhwZWN0ZWQu
dHh0IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vZmFzdC9ldmVudHMvd2luZG93LW9u
ZXJyb3IxMC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4u
YjNkMmQzOQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVt
L2Zhc3QvZXZlbnRzL3dpbmRvdy1vbmVycm9yMTAtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTEg
QEAKK1Rlc3QgdGhhdCAiZXJyb3IiIGV2ZW50IGxpc3RlbmVyIGFkZGVkIHdpdGggd2luZG93LmFk
ZEV2ZW50TGlzdGVuZXIgaXMgaW52b2tlZCBmb3IgdW5jYXVjaHQgZXhjZXB0aW9ucy4gQnVnIDg1
MTkuDQorDQorZXZlbnQgcGFzc2VkIHRvIHRoZSBsaXN0ZW5lciBpcyB0aGUgc2FtZSBhcyB3aW5k
b3cuZXZlbnQ6IHRydWUNCitFdmVudCBkZXRhaWxzOg0KK3R5cGU6IGVycm9yDQorcGhhc2U6IDIN
CitjdXJyZW50VGFyZ2V0IGlzIHRoZSBnbG9iYWwgb2JqZWN0OiB0cnVlDQorbWVzc2FnZTogVW5j
YXVnaHQgRXJyb3I6IE15IGZhdWx0Lg0KK2ZpbGVuYW1lOiB3aW5kb3ctb25lcnJvcjEwLmh0bWwN
CitsaW5lbm86IDI5DQorDQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21p
dW0vZmFzdC9ldmVudHMvd2luZG93LW9uZXJyb3IxMS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0
cy9wbGF0Zm9ybS9jaHJvbWl1bS9mYXN0L2V2ZW50cy93aW5kb3ctb25lcnJvcjExLWV4cGVjdGVk
LnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45MmUzY2Y1Ci0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vZmFzdC9ldmVudHMvd2lu
ZG93LW9uZXJyb3IxMS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw0IEBACitUZXN0IHRoYXQgd2lu
ZG93Lm9uZXJyb3IgaXMgY2FsbGVkIG9uIHdpbmRvdyBvYmplY3QuIEJ1ZyA4NTE5Lg0KKw0KK01h
aW4gZnJhbWUgd2luZG93Lm9uZXJyb3I6IFVuY2F1Z2h0IEVycm9yOiBBbiBleGNlcHRpb24gYXQg
d2luZG93LW9uZXJyb3IuanM6Mg0KKw0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3Jt
L2Nocm9taXVtL2Zhc3QvZXZlbnRzL3dpbmRvdy1vbmVycm9yMi1leHBlY3RlZC50eHQgYi9MYXlv
dXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS9mYXN0L2V2ZW50cy93aW5kb3ctb25lcnJvcjItZXhw
ZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmY3YjE2MjEKLS0t
IC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS9mYXN0L2V2ZW50
cy93aW5kb3ctb25lcnJvcjItZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNiBAQAorVGVzdCB0aGF0
IHVuY2F1Z2h0IGV4Y2VwdGlvbnMgd2lsbCBiZSByZXBvcnRlZCB0byB0aGUgd2luZG93Lm9uZXJy
b3IgaGFuZGxlci4gQnVnIDg1MTkuDQorDQorTWFpbiBmcmFtZSB3aW5kb3cub25lcnJvcjogVW5j
YXVnaHQgRXJyb3I6IElubGluZSBzY3JpcHQgZXhjZXB0aW9uIGF0IHdpbmRvdy1vbmVycm9yMi5o
dG1sOjM1DQorTWFpbiBmcmFtZSB3aW5kb3cub25lcnJvcjogVW5jYXVnaHQgRXhjZXB0aW9uIGlu
IG9ubG9hZCBhdCB3aW5kb3ctb25lcnJvcjIuaHRtbDoyDQorTWFpbiBmcmFtZSB3aW5kb3cub25l
cnJvcjogVW5jYXVnaHQgRXJyb3I6IEV4Y2VwdGlvbiBpbiBzZXRUaW1lb3V0IGF0IHdpbmRvdy1v
bmVycm9yMi5odG1sOjI5DQorDQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hy
b21pdW0vZmFzdC9ldmVudHMvd2luZG93LW9uZXJyb3IzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRl
c3RzL3BsYXRmb3JtL2Nocm9taXVtL2Zhc3QvZXZlbnRzL3dpbmRvdy1vbmVycm9yMy1leHBlY3Rl
ZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYTFiOGJkNQotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL2Zhc3QvZXZlbnRzL3dp
bmRvdy1vbmVycm9yMy1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw0IEBACitZb3Ugc2hvdWxkIHNl
ZSBhIG1lc3NhZ2UgaWYgd2luZG93Lm9uZXJyb3IgaXMgd29ya2luZyBwcm9wZXJseSBmb3IgdGhp
cyB0ZXN0LkJ1ZyA4NTE5Lg0KKw0KK0Vycm9yIGNhdWdodCBzdWNjZXNzZnVsbHk6IFVuY2F1Z2h0
IFJlZmVyZW5jZUVycm9yOiB1bmtub3duT2JqZWN0IGlzIG5vdCBkZWZpbmVkIEZpbGU6IHdpbmRv
dy1vbmVycm9yMy5odG1sIExpbmU6IDE2DQorDQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxh
dGZvcm0vY2hyb21pdW0vZmFzdC9ldmVudHMvd2luZG93LW9uZXJyb3I0LWV4cGVjdGVkLnR4dCBi
L0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL2Zhc3QvZXZlbnRzL3dpbmRvdy1vbmVycm9y
NC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNTBmMDll
MAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL2Zhc3Qv
ZXZlbnRzL3dpbmRvdy1vbmVycm9yNC1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw0IEBACitZb3Ug
c2hvdWxkIHNlZSBhIGxvZyByZWNvcmQgaWYgd2luZG93Lm9uZXJyb3IgaXMgd29ya2luZyBwcm9w
ZXJseSBmb3IgdGhpcyB0ZXN0LkJ1ZyA4NTE5Lg0KKw0KK0Vycm9yIGNhdWdodCBzdWNjZXNzZnVs
bHk6IFVuY2F1Z2h0IFJlZmVyZW5jZUVycm9yOiBJbnZhbGlkIGxlZnQtaGFuZCBzaWRlIGluIGFz
c2lnbm1lbnQgRmlsZTogd2luZG93LW9uZXJyb3I0Lmh0bWwgTGluZTogMQ0KKw0KZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL2Zhc3QvZXZlbnRzL3dpbmRvdy1vbmVy
cm9yNS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS9mYXN0L2V2
ZW50cy93aW5kb3ctb25lcnJvcjUtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAuLmU0NTM2OWUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9wbGF0
Zm9ybS9jaHJvbWl1bS9mYXN0L2V2ZW50cy93aW5kb3ctb25lcnJvcjUtZXhwZWN0ZWQudHh0CkBA
IC0wLDAgKzEsNCBAQAorVGVzdCB0aGF0IHdpbmRvdy5vbmVycm9yIGlzIGludm9rZWQgZm9yIHN5
bnRheCBlcnJvciBpbiBldmFsLiBZb3Ugc2hvdWxkIHNlZSBhIGxvZyByZWNvcmQgaWYgd2luZG93
Lm9uZXJyb3IgaXMgd29ya2luZyBwcm9wZXJseSBmb3IgdGhpcyB0ZXN0LkJ1ZyA4NTE5Lg0KKw0K
K0Vycm9yIGNhdWdodCBzdWNjZXNzZnVsbHk6IFVuY2F1Z2h0IFN5bnRheEVycm9yOiBVbmV4cGVj
dGVkIGVuZCBvZiBpbnB1dCBGaWxlOiB3aW5kb3ctb25lcnJvcjUuaHRtbCBMaW5lOiAxDQorDQpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vZmFzdC9ldmVudHMvd2lu
ZG93LW9uZXJyb3I2LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVt
L2Zhc3QvZXZlbnRzL3dpbmRvdy1vbmVycm9yNi1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMC4uMThlZDgxYQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL3BsYXRmb3JtL2Nocm9taXVtL2Zhc3QvZXZlbnRzL3dpbmRvdy1vbmVycm9yNi1leHBlY3Rl
ZC50eHQKQEAgLTAsMCArMSw0IEBACitUZXN0IHRoYXQgc3ludGF4IGVycm9yIHdpbGwgYmUgcmVw
b3J0ZWQgdG8gdGhlIHdpbmRvdy5vbmVycm9yIGhhbmRsZXIuIEJ1ZyA4NTE5Lg0KKw0KK01haW4g
ZnJhbWUgd2luZG93Lm9uZXJyb3I6IFVuY2F1Z2h0IFN5bnRheEVycm9yOiBVbmV4cGVjdGVkIHRv
a2VuICkgYXQgd2luZG93LW9uZXJyb3I2Lmh0bWw6MjINCisNCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS9mYXN0L2V2ZW50cy93aW5kb3ctb25lcnJvcjctZXhwZWN0
ZWQudHh0IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vZmFzdC9ldmVudHMvd2luZG93
LW9uZXJyb3I3LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
Li4yM2QwNDA3Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21p
dW0vZmFzdC9ldmVudHMvd2luZG93LW9uZXJyb3I3LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDYg
QEAKK0NPTlNPTEUgTUVTU0FHRTogbGluZSAyMDogVW5jYXVnaHQgRXJyb3I6IE9yaWdpbmFsIGVy
cm9yDQorQ09OU09MRSBNRVNTQUdFOiBsaW5lIDE3OiBVbmNhdWdodCBFcnJvcjogTmVzdGVkIGVy
cm9yDQorVGVzdCB0aGF0IGV4Y2VwdGlvbiBpbiB3aW5kb3cub25lcnJvciB3b24ndCBsZWFkIHRv
IHJlY3Vyc2l2ZSB3aW5kb3cub25lcnJvciBjYWxsLiBCdWcgODUxOS4NCisNCitNYWluIGZyYW1l
IHdpbmRvdy5vbmVycm9yOiBVbmNhdWdodCBFcnJvcjogT3JpZ2luYWwgZXJyb3IgYXQgd2luZG93
LW9uZXJyb3I3Lmh0bWw6MjANCisNCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9j
aHJvbWl1bS9mYXN0L2V2ZW50cy93aW5kb3ctb25lcnJvcjgtZXhwZWN0ZWQudHh0IGIvTGF5b3V0
VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vZmFzdC9ldmVudHMvd2luZG93LW9uZXJyb3I4LWV4cGVj
dGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xM2YyYjMyCi0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vZmFzdC9ldmVudHMv
d2luZG93LW9uZXJyb3I4LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDUgQEAKK1Rlc3QgdGhhdCB3
aW5kb3cub25lcnJvciBpcyBjYWxsZWQgb24gd2luZG93IG9iamVjdC4gQnVnIDg1MTkuDQorDQor
TWFpbiBmcmFtZSB3aW5kb3cub25lcnJvcjogVW5jYXVnaHQgMjAxMCBhdCB3aW5kb3ctb25lcnJv
cjguaHRtbDoyNA0KK1BBU1NFRDogdGhpcyA9PT0gd2luZG93DQorDQpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vZmFzdC9ldmVudHMvd2luZG93LW9uZXJyb3I5LWV4
cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL2Zhc3QvZXZlbnRzL3dp
bmRvdy1vbmVycm9yOS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMC4uMTY3N2U1MAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2No
cm9taXVtL2Zhc3QvZXZlbnRzL3dpbmRvdy1vbmVycm9yOS1leHBlY3RlZC50eHQKQEAgLTAsMCAr
MSw4IEBACitUZXN0IHRoYXQgd2hlbiB3aW5kb3cub25lcnJvciBoYW5kbGVyIGlzIGNhbGxlZCwg
d2luZG93LmV2ZW50IGlzIHRoZSBjb3JyZXNwb25kaW5nIEVycm9yRXZlbnQgb2JqZWN0LiBCdWcg
ODUxOS4NCisNCitNYWluIGZyYW1lIHdpbmRvdy5vbmVycm9yOiBVbmNhdWdodCBFcnJvcjogMjAx
MCBhdCB3aW5kb3ctb25lcnJvcjkuaHRtbDozMQ0KK3dpbmRvdy5ldmVudC50eXBlID0gZXJyb3IN
Cit3aW5kb3cuZXZlbnQubWVzc2FnZSA9IFVuY2F1Z2h0IEVycm9yOiAyMDEwDQord2luZG93LmV2
ZW50LmZpbGVuYW1lID0gd2luZG93LW9uZXJyb3I5Lmh0bWwNCit3aW5kb3cuZXZlbnQubGluZW5v
ID0gMzENCisNCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS9odHRw
L3Rlc3RzL3NlY3VyaXR5L3dpbmRvdy1vbmVycm9yLWV4Y2VwdGlvbi1pbi1pZnJhbWUtZXhwZWN0
ZWQudHh0IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vaHR0cC90ZXN0cy9zZWN1cml0
eS93aW5kb3ctb25lcnJvci1leGNlcHRpb24taW4taWZyYW1lLWV4cGVjdGVkLnR4dApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45ZTljMmVhCi0tLSAvZGV2L251bGwKKysrIGIv
TGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vaHR0cC90ZXN0cy9zZWN1cml0eS93aW5kb3ct
b25lcnJvci1leGNlcHRpb24taW4taWZyYW1lLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDYgQEAK
K0NPTlNPTEUgTUVTU0FHRTogbGluZSA3OiBVbmNhdWdodCBJZnJhbWVFeGNlcHRpb24NCitUZXN0
IHRoYXQgZXhjZXB0aW9ucyBpbiBpZnJhbWUgYXJlIG5vdCByZXBvcnRlZCB0byB0aGUgbWFpbiBm
cmFtZSB3aW5kb3cub25lcnJvciBoYW5kbGVyLiB3aW5kb3cub25lcnJvciBzaG91bGQgcHJpbnQg
ZXhhY3RseSBvbmUgbGluZS4NCisNCitNYWluIGZyYW1lIHdpbmRvdy5vbmVycm9yOiBVbmNhdWdo
dCBNYWluRnJhbWVFeGNlcHRpb24gYXQgd2luZG93LW9uZXJyb3ItZXhjZXB0aW9uLWluLWlmcmFt
ZS5odG1sOjM0DQorRE9ORQ0KKw0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2No
cm9taXVtL3VzZXJzY3JpcHRzL3dpbmRvdy1vbmVycm9yLWZvci1pc29sYXRlZC13b3JsZC0xLWV4
cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL3VzZXJzY3JpcHRzL3dp
bmRvdy1vbmVycm9yLWZvci1pc29sYXRlZC13b3JsZC0xLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yYTNkMDY4Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5
b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vdXNlcnNjcmlwdHMvd2luZG93LW9uZXJyb3ItZm9y
LWlzb2xhdGVkLXdvcmxkLTEtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTQgQEAKK1Rlc3QgdGhh
dCB3aW5kb3cub25lcnJvciBhbmQgImVycm9yIiBldmVudCBsaXN0ZW5lcnMgZnJvbSBtYWluIHdv
cmxkIGFyZSBpbnZva2VkIGZvciB1bmNhdWdodCBleGNlcHRpb25zIGluIHVzZXIgc2NyaXB0cyBy
dW5uaW5nIGluIGlzb2xhdGUgd29ybGRzIGFzIHdlbGwgYXMgZm9yIGV4Y2VwdGlvbnMgaW4gdGhl
IG1haW4gd29ybGQuQnVnIDg1MTkuDQorDQorTWFpbiB3b3JsZCB3aW5kb3cub25lcnJvcjogVW5j
YXVnaHQgRXJyb3I6IEVycm9yIGluIG1haW4gd29ybGQgaW5saW5lIHNjcmlwdC4gYXQgd2luZG93
LW9uZXJyb3ItZm9yLWlzb2xhdGVkLXdvcmxkLTEuaHRtbDo1NA0KK01haW4gd29ybGQgZXJyb3Ig
ZXZlbnQgbGlzdGVuZXI6IFVuY2F1Z2h0IEVycm9yOiBFcnJvciBpbiBtYWluIHdvcmxkIGlubGlu
ZSBzY3JpcHQuIGF0IHdpbmRvdy1vbmVycm9yLWZvci1pc29sYXRlZC13b3JsZC0xLmh0bWw6NTQN
CitNYWluIHdvcmxkIHdpbmRvdy5vbmVycm9yOiBVbmNhdWdodCBFcnJvcjogRXJyb3IgaW4gdXNl
ciBzY3JpcHQgaW5saW5lIHNjcmlwdC4gYXQgOjEyDQorTWFpbiB3b3JsZCBlcnJvciBldmVudCBs
aXN0ZW5lcjogVW5jYXVnaHQgRXJyb3I6IEVycm9yIGluIHVzZXIgc2NyaXB0IGlubGluZSBzY3Jp
cHQuIGF0IDoxMg0KK01haW4gd29ybGQgd2luZG93Lm9uZXJyb3I6IFVuY2F1Z2h0IEVycm9yOiBF
cnJvciBpbiBtYWluIHdvcmxkIGxvYWQgaGFuZGxlci4gYXQgd2luZG93LW9uZXJyb3ItZm9yLWlz
b2xhdGVkLXdvcmxkLTEuaHRtbDo0Ng0KK01haW4gd29ybGQgZXJyb3IgZXZlbnQgbGlzdGVuZXI6
IFVuY2F1Z2h0IEVycm9yOiBFcnJvciBpbiBtYWluIHdvcmxkIGxvYWQgaGFuZGxlci4gYXQgd2lu
ZG93LW9uZXJyb3ItZm9yLWlzb2xhdGVkLXdvcmxkLTEuaHRtbDo0Ng0KK01haW4gd29ybGQgd2lu
ZG93Lm9uZXJyb3I6IFVuY2F1Z2h0IEVycm9yOiBFcnJvciBpbiB1c2VyIHNjcmlwdCBsb2FkIGhh
bmRsZXIuIGF0IDo0DQorTWFpbiB3b3JsZCBlcnJvciBldmVudCBsaXN0ZW5lcjogVW5jYXVnaHQg
RXJyb3I6IEVycm9yIGluIHVzZXIgc2NyaXB0IGxvYWQgaGFuZGxlci4gYXQgOjQNCitNYWluIHdv
cmxkIHdpbmRvdy5vbmVycm9yOiBVbmNhdWdodCBFcnJvcjogRXJyb3IgaW4gbWFpbiB3b3JsZCBz
ZXRUaW1lb3V0IGNhbGxiYWNrLiBhdCB3aW5kb3ctb25lcnJvci1mb3ItaXNvbGF0ZWQtd29ybGQt
MS5odG1sOjUxDQorTWFpbiB3b3JsZCBlcnJvciBldmVudCBsaXN0ZW5lcjogVW5jYXVnaHQgRXJy
b3I6IEVycm9yIGluIG1haW4gd29ybGQgc2V0VGltZW91dCBjYWxsYmFjay4gYXQgd2luZG93LW9u
ZXJyb3ItZm9yLWlzb2xhdGVkLXdvcmxkLTEuaHRtbDo1MQ0KK01haW4gd29ybGQgd2luZG93Lm9u
ZXJyb3I6IFVuY2F1Z2h0IEVycm9yOiBFcnJvciBpbiB1c2VyIHNjcmlwdCBzZXRUaW1lb3V0IGNh
bGxiYWNrLiBhdCA6OQ0KK01haW4gd29ybGQgZXJyb3IgZXZlbnQgbGlzdGVuZXI6IFVuY2F1Z2h0
IEVycm9yOiBFcnJvciBpbiB1c2VyIHNjcmlwdCBzZXRUaW1lb3V0IGNhbGxiYWNrLiBhdCA6OQ0K
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL3VzZXJzY3JpcHRzL3dp
bmRvdy1vbmVycm9yLWZvci1pc29sYXRlZC13b3JsZC0yLWV4cGVjdGVkLnR4dCBiL0xheW91dFRl
c3RzL3BsYXRmb3JtL2Nocm9taXVtL3VzZXJzY3JpcHRzL3dpbmRvdy1vbmVycm9yLWZvci1pc29s
YXRlZC13b3JsZC0yLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwLi45Mzk5NGRiCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hy
b21pdW0vdXNlcnNjcmlwdHMvd2luZG93LW9uZXJyb3ItZm9yLWlzb2xhdGVkLXdvcmxkLTItZXhw
ZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTMgQEAKK0NPTlNPTEUgTUVTU0FHRTogbGluZSAzMDogVW5j
YXVnaHQgRXJyb3I6IEVycm9yIGluIG1haW4gd29ybGQgaW5saW5lIHNjcmlwdC4NCitUZXN0IHRo
YXQgd2luZG93Lm9uZXJyb3IgYW5kICJlcnJvciIgZXZlbnQgbGlzdGVuZXJzIGZyb20gaXNvbGF0
ZWQgd29ybGQgYXJlIGludm9rZWQgZm9yIHVuY2F1Z2h0IGV4Y2VwdGlvbnMgaW4gdXNlciBzY3Jp
cHRzIHJ1bm5pbmcgaW4gaXNvbGF0ZSB3b3JsZHMgYXMgd2VsbCBhcyBmb3IgZXhjZXB0aW9ucyBp
biB0aGUgbWFpbiB3b3JsZC5CdWcgODUxOS4NCisNCit1c2VyIHNjcmlwdCB3aW5kb3cub25lcnJv
cjogVW5jYXVnaHQgRXJyb3I6IEVycm9yIGluIHVzZXIgc2NyaXB0IGlubGluZSBzY3JpcHQuIGF0
IDozMw0KK3VzZXIgc2NyaXB0IGVycm9yIGV2ZW50IGxpc3RlbmVyOiBVbmNhdWdodCBFcnJvcjog
RXJyb3IgaW4gdXNlciBzY3JpcHQgaW5saW5lIHNjcmlwdC4gYXQgOjMzDQordXNlciBzY3JpcHQg
d2luZG93Lm9uZXJyb3I6IFVuY2F1Z2h0IEVycm9yOiBFcnJvciBpbiBtYWluIHdvcmxkIGxvYWQg
aGFuZGxlci4gYXQgd2luZG93LW9uZXJyb3ItZm9yLWlzb2xhdGVkLXdvcmxkLTIuaHRtbDoyMw0K
K3VzZXIgc2NyaXB0IGVycm9yIGV2ZW50IGxpc3RlbmVyOiBVbmNhdWdodCBFcnJvcjogRXJyb3Ig
aW4gbWFpbiB3b3JsZCBsb2FkIGhhbmRsZXIuIGF0IHdpbmRvdy1vbmVycm9yLWZvci1pc29sYXRl
ZC13b3JsZC0yLmh0bWw6MjMNCit1c2VyIHNjcmlwdCB3aW5kb3cub25lcnJvcjogVW5jYXVnaHQg
RXJyb3I6IEVycm9yIGluIHVzZXIgc2NyaXB0IGxvYWQgaGFuZGxlci4gYXQgOjI2DQordXNlciBz
Y3JpcHQgZXJyb3IgZXZlbnQgbGlzdGVuZXI6IFVuY2F1Z2h0IEVycm9yOiBFcnJvciBpbiB1c2Vy
IHNjcmlwdCBsb2FkIGhhbmRsZXIuIGF0IDoyNg0KK3VzZXIgc2NyaXB0IHdpbmRvdy5vbmVycm9y
OiBVbmNhdWdodCBFcnJvcjogRXJyb3IgaW4gbWFpbiB3b3JsZCBzZXRUaW1lb3V0IGNhbGxiYWNr
LiBhdCB3aW5kb3ctb25lcnJvci1mb3ItaXNvbGF0ZWQtd29ybGQtMi5odG1sOjI3DQordXNlciBz
Y3JpcHQgZXJyb3IgZXZlbnQgbGlzdGVuZXI6IFVuY2F1Z2h0IEVycm9yOiBFcnJvciBpbiBtYWlu
IHdvcmxkIHNldFRpbWVvdXQgY2FsbGJhY2suIGF0IHdpbmRvdy1vbmVycm9yLWZvci1pc29sYXRl
ZC13b3JsZC0yLmh0bWw6MjcNCit1c2VyIHNjcmlwdCB3aW5kb3cub25lcnJvcjogVW5jYXVnaHQg
RXJyb3I6IEVycm9yIGluIHVzZXIgc2NyaXB0IHNldFRpbWVvdXQgY2FsbGJhY2suIGF0IDozMA0K
K3VzZXIgc2NyaXB0IGVycm9yIGV2ZW50IGxpc3RlbmVyOiBVbmNhdWdodCBFcnJvcjogRXJyb3Ig
aW4gdXNlciBzY3JpcHQgc2V0VGltZW91dCBjYWxsYmFjay4gYXQgOjMwDQpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL1NraXBwZWQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9n
dGsvU2tpcHBlZAppbmRleCA1ZTYwNDNmLi45ZTVkN2I5IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9wbGF0Zm9ybS9ndGsvU2tpcHBlZAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvU2tp
cHBlZApAQCAtNDcxNCw2ICs0NzE0LDggQEAgdXNlcnNjcmlwdHMvdXNlci1zY3JpcHQtcGx1Z2lu
LWRvY3VtZW50Lmh0bWwKIHVzZXJzY3JpcHRzL3VzZXItc2NyaXB0LXRvcC1mcmFtZS1vbmx5Lmh0
bWwKIHVzZXJzY3JpcHRzL3VzZXItc2NyaXB0LXZpZGVvLWRvY3VtZW50Lmh0bWwKIHVzZXJzY3Jp
cHRzL3VzZXItc3R5bGUtdG9wLWZyYW1lLW9ubHkuaHRtbAordXNlcnNjcmlwdHMvd2luZG93LW9u
ZXJyb3ItZm9yLWlzb2xhdGVkLXdvcmxkLTEuaHRtbAordXNlcnNjcmlwdHMvd2luZG93LW9uZXJy
b3ItZm9yLWlzb2xhdGVkLXdvcmxkLTIuaHRtbAogCiAjIFhIUiBzZW5kcyBzb21ldGltZXMgeWll
bGQgbnVsbCBieXRlcyBzZW50IGluc3RlYWQgb2YgMC4KIGh0dHAvdGVzdHMveG1saHR0cHJlcXVl
c3Qvd29ya2Vycy9zaGFyZWQtd29ya2VyLW1ldGhvZHMuaHRtbApkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvdXNlcnNjcmlwdHMvd2luZG93LW9uZXJyb3ItZm9yLWlzb2xhdGVkLXdvcmxkLTEtZXhw
ZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvdXNlcnNjcmlwdHMvd2luZG93LW9uZXJyb3ItZm9yLWlz
b2xhdGVkLXdvcmxkLTEtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAuLjY4OTVjNDEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy91c2Vyc2NyaXB0
cy93aW5kb3ctb25lcnJvci1mb3ItaXNvbGF0ZWQtd29ybGQtMS1leHBlY3RlZC50eHQKQEAgLTAs
MCArMSwxNCBAQAorVGVzdCB0aGF0IHdpbmRvdy5vbmVycm9yIGFuZCAiZXJyb3IiIGV2ZW50IGxp
c3RlbmVycyBmcm9tIG1haW4gd29ybGQgYXJlIGludm9rZWQgZm9yIHVuY2F1Z2h0IGV4Y2VwdGlv
bnMgaW4gdXNlciBzY3JpcHRzIHJ1bm5pbmcgaW4gaXNvbGF0ZSB3b3JsZHMgYXMgd2VsbCBhcyBm
b3IgZXhjZXB0aW9ucyBpbiB0aGUgbWFpbiB3b3JsZC5CdWcgODUxOS4KKworTWFpbiB3b3JsZCB3
aW5kb3cub25lcnJvcjogRXJyb3I6IEVycm9yIGluIG1haW4gd29ybGQgaW5saW5lIHNjcmlwdC4g
YXQgd2luZG93LW9uZXJyb3ItZm9yLWlzb2xhdGVkLXdvcmxkLTEuaHRtbDo1NAorTWFpbiB3b3Js
ZCBlcnJvciBldmVudCBsaXN0ZW5lcjogRXJyb3I6IEVycm9yIGluIG1haW4gd29ybGQgaW5saW5l
IHNjcmlwdC4gYXQgd2luZG93LW9uZXJyb3ItZm9yLWlzb2xhdGVkLXdvcmxkLTEuaHRtbDo1NAor
TWFpbiB3b3JsZCB3aW5kb3cub25lcnJvcjogRXJyb3I6IEVycm9yIGluIHVzZXIgc2NyaXB0IGlu
bGluZSBzY3JpcHQuIGF0IHVuZGVmaW5lZDoxMQorTWFpbiB3b3JsZCBlcnJvciBldmVudCBsaXN0
ZW5lcjogRXJyb3I6IEVycm9yIGluIHVzZXIgc2NyaXB0IGlubGluZSBzY3JpcHQuIGF0IHVuZGVm
aW5lZDoxMQorTWFpbiB3b3JsZCB3aW5kb3cub25lcnJvcjogRXJyb3I6IEVycm9yIGluIG1haW4g
d29ybGQgbG9hZCBoYW5kbGVyLiBhdCB3aW5kb3ctb25lcnJvci1mb3ItaXNvbGF0ZWQtd29ybGQt
MS5odG1sOjQ2CitNYWluIHdvcmxkIGVycm9yIGV2ZW50IGxpc3RlbmVyOiBFcnJvcjogRXJyb3Ig
aW4gbWFpbiB3b3JsZCBsb2FkIGhhbmRsZXIuIGF0IHdpbmRvdy1vbmVycm9yLWZvci1pc29sYXRl
ZC13b3JsZC0xLmh0bWw6NDYKK01haW4gd29ybGQgd2luZG93Lm9uZXJyb3I6IEVycm9yOiBFcnJv
ciBpbiB1c2VyIHNjcmlwdCBsb2FkIGhhbmRsZXIuIGF0IHVuZGVmaW5lZDozCitNYWluIHdvcmxk
IGVycm9yIGV2ZW50IGxpc3RlbmVyOiBFcnJvcjogRXJyb3IgaW4gdXNlciBzY3JpcHQgbG9hZCBo
YW5kbGVyLiBhdCB1bmRlZmluZWQ6MworTWFpbiB3b3JsZCB3aW5kb3cub25lcnJvcjogRXJyb3I6
IEVycm9yIGluIG1haW4gd29ybGQgc2V0VGltZW91dCBjYWxsYmFjay4gYXQgd2luZG93LW9uZXJy
b3ItZm9yLWlzb2xhdGVkLXdvcmxkLTEuaHRtbDo1MQorTWFpbiB3b3JsZCBlcnJvciBldmVudCBs
aXN0ZW5lcjogRXJyb3I6IEVycm9yIGluIG1haW4gd29ybGQgc2V0VGltZW91dCBjYWxsYmFjay4g
YXQgd2luZG93LW9uZXJyb3ItZm9yLWlzb2xhdGVkLXdvcmxkLTEuaHRtbDo1MQorTWFpbiB3b3Js
ZCB3aW5kb3cub25lcnJvcjogRXJyb3I6IEVycm9yIGluIHVzZXIgc2NyaXB0IHNldFRpbWVvdXQg
Y2FsbGJhY2suIGF0IHVuZGVmaW5lZDo4CitNYWluIHdvcmxkIGVycm9yIGV2ZW50IGxpc3RlbmVy
OiBFcnJvcjogRXJyb3IgaW4gdXNlciBzY3JpcHQgc2V0VGltZW91dCBjYWxsYmFjay4gYXQgdW5k
ZWZpbmVkOjgKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3VzZXJzY3JpcHRzL3dpbmRvdy1vbmVy
cm9yLWZvci1pc29sYXRlZC13b3JsZC0xLmh0bWwgYi9MYXlvdXRUZXN0cy91c2Vyc2NyaXB0cy93
aW5kb3ctb25lcnJvci1mb3ItaXNvbGF0ZWQtd29ybGQtMS5odG1sCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAuLjNjNmJhYzIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy91c2Vyc2NyaXB0cy93aW5kb3ctb25lcnJvci1mb3ItaXNvbGF0ZWQtd29ybGQtMS5odG1sCkBA
IC0wLDAgKzEsNjcgQEAKKzwhRE9DVFlQRSBIVE1MPgorPGh0bWw+Cis8aGVhZD4KKzwvaGVhZD4K
Kzxib2R5PgorPHA+VGVzdCB0aGF0IHdpbmRvdy5vbmVycm9yIGFuZCAiZXJyb3IiIGV2ZW50IGxp
c3RlbmVycyBmcm9tIG1haW4gd29ybGQgYXJlCitpbnZva2VkIGZvciB1bmNhdWdodCBleGNlcHRp
b25zIGluIHVzZXIgc2NyaXB0cyBydW5uaW5nIGluIGlzb2xhdGUgd29ybGRzIGFzCit3ZWxsIGFz
IGZvciBleGNlcHRpb25zIGluIHRoZSBtYWluIHdvcmxkLjxhIGhyZWY9Imh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04NTE5Ij5CdWcgODUxOS48L2E+Cis8L3A+Cis8ZGl2
IGlkPSJjb25zb2xlIj48L2Rpdj4KKzxzY3JpcHQ+CisKK3ZhciBleHBlY3RlZFJlY29yZENvdW50
ID0gMTI7Cit2YXIgcmVjb3JkQ291bnQgPSAwOworZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNv
bnNvbGUiKS5hZGRFdmVudExpc3RlbmVyKCJET01Ob2RlSW5zZXJ0ZWQiLCBmdW5jdGlvbihlKSB7
CisgICAgcmVjb3JkQ291bnQrKzsKKyAgICBpZiAocmVjb3JkQ291bnQgPT09IGV4cGVjdGVkUmVj
b3JkQ291bnQgJiYgd2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQorICAgICAgICBsYXlvdXRU
ZXN0Q29udHJvbGxlci5ub3RpZnlEb25lKCk7Cit9LCBmYWxzZSk7CisKK2Z1bmN0aW9uIGxvZyht
c2cpIHsKKyAgICB2YXIgcmVjb3JkID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7Cisg
ICAgcmVjb3JkLmlubmVySFRNTCA9IG1zZzsKKyAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgi
Y29uc29sZSIpLmFwcGVuZENoaWxkKHJlY29yZCk7Cit9CisKK2Z1bmN0aW9uIGxhc3RVcmxDb21w
b25lbnQodXJsKSB7CisgICAgcmV0dXJuIHVybCA/IHVybC5tYXRjaCggL1teXC9dK1wvPyQvIClb
MF0gOiB1cmw7Cit9CisKK3dpbmRvdy5vbmVycm9yID0gZnVuY3Rpb24obXNnLCB1cmwsIGxpbmUp
Cit7CisgICAgbG9nKCJNYWluIHdvcmxkIHdpbmRvdy5vbmVycm9yOiAiICsgbXNnICsgIiBhdCAi
ICsgbGFzdFVybENvbXBvbmVudCh1cmwpICsgIjoiICsgbGluZSk7CisgICAgcmV0dXJuIGZhbHNl
OworfQorCit3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigiZXJyb3IiLCBmdW5jdGlvbihlKQorewor
ICAgIHZhciB1cmwgPSBsYXN0VXJsQ29tcG9uZW50KGUuZmlsZW5hbWUpOworICAgIGxvZygiTWFp
biB3b3JsZCBlcnJvciBldmVudCBsaXN0ZW5lcjogIiArIGUubWVzc2FnZSArICIgYXQgIiArIHVy
bCArICI6IiArIGUubGluZW5vKTsKK30sIGZhbHNlKTsKKwordmFyIGV4Y2VwdGlvbnMgPSBmdW5j
dGlvbihpc29sYXRlZFdvcmxkKQoreworICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJsb2Fk
IiwgZnVuY3Rpb24oZSkgeworICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIkVycm9yIGluICIgKyBp
c29sYXRlZFdvcmxkICsgIiBsb2FkIGhhbmRsZXIuIik7CisgICAgfSwgZmFsc2UpOworCisKKyAg
ICBzZXRUaW1lb3V0KGZ1bmN0aW9uKCkgeworICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIkVycm9y
IGluICIgKyBpc29sYXRlZFdvcmxkICsgIiBzZXRUaW1lb3V0IGNhbGxiYWNrLiIpOworICAgIH0s
IDApOworCisgICAgdGhyb3cgbmV3IEVycm9yKCJFcnJvciBpbiAiKyBpc29sYXRlZFdvcmxkICsg
IiBpbmxpbmUgc2NyaXB0LiIpOworfQorCitpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVy
KSB7CisgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOworICAgIGxheW91dFRl
c3RDb250cm9sbGVyLndhaXRVbnRpbERvbmUoKTsKKyAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5h
ZGRVc2VyU2NyaXB0KCIoIiArIGV4Y2VwdGlvbnMgKyAiKSgndXNlciBzY3JpcHQnKSIsIGZhbHNl
LCB0cnVlKTsKK30KKworZXhjZXB0aW9ucygibWFpbiB3b3JsZCIpOworCis8L3NjcmlwdD4KKzwv
Ym9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3VzZXJzY3JpcHRzL3dpbmRv
dy1vbmVycm9yLWZvci1pc29sYXRlZC13b3JsZC0yLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3Rz
L3VzZXJzY3JpcHRzL3dpbmRvdy1vbmVycm9yLWZvci1pc29sYXRlZC13b3JsZC0yLWV4cGVjdGVk
LnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iOTA5YTk5Ci0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvdXNlcnNjcmlwdHMvd2luZG93LW9uZXJyb3ItZm9yLWlz
b2xhdGVkLXdvcmxkLTItZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTMgQEAKK0NPTlNPTEUgTUVT
U0FHRTogbGluZSAzMDogRXJyb3I6IEVycm9yIGluIG1haW4gd29ybGQgaW5saW5lIHNjcmlwdC4K
K1Rlc3QgdGhhdCB3aW5kb3cub25lcnJvciBhbmQgImVycm9yIiBldmVudCBsaXN0ZW5lcnMgZnJv
bSBpc29sYXRlZCB3b3JsZCBhcmUgaW52b2tlZCBmb3IgdW5jYXVnaHQgZXhjZXB0aW9ucyBpbiB1
c2VyIHNjcmlwdHMgcnVubmluZyBpbiBpc29sYXRlIHdvcmxkcyBhcyB3ZWxsIGFzIGZvciBleGNl
cHRpb25zIGluIHRoZSBtYWluIHdvcmxkLkJ1ZyA4NTE5LgorCit1c2VyIHNjcmlwdCB3aW5kb3cu
b25lcnJvcjogRXJyb3I6IEVycm9yIGluIHVzZXIgc2NyaXB0IGlubGluZSBzY3JpcHQuIGF0IHVu
ZGVmaW5lZDozMQordXNlciBzY3JpcHQgZXJyb3IgZXZlbnQgbGlzdGVuZXI6IEVycm9yOiBFcnJv
ciBpbiB1c2VyIHNjcmlwdCBpbmxpbmUgc2NyaXB0LiBhdCB1bmRlZmluZWQ6MzEKK3VzZXIgc2Ny
aXB0IHdpbmRvdy5vbmVycm9yOiBFcnJvcjogRXJyb3IgaW4gbWFpbiB3b3JsZCBsb2FkIGhhbmRs
ZXIuIGF0IHdpbmRvdy1vbmVycm9yLWZvci1pc29sYXRlZC13b3JsZC0yLmh0bWw6MjMKK3VzZXIg
c2NyaXB0IGVycm9yIGV2ZW50IGxpc3RlbmVyOiBFcnJvcjogRXJyb3IgaW4gbWFpbiB3b3JsZCBs
b2FkIGhhbmRsZXIuIGF0IHdpbmRvdy1vbmVycm9yLWZvci1pc29sYXRlZC13b3JsZC0yLmh0bWw6
MjMKK3VzZXIgc2NyaXB0IHdpbmRvdy5vbmVycm9yOiBFcnJvcjogRXJyb3IgaW4gdXNlciBzY3Jp
cHQgbG9hZCBoYW5kbGVyLiBhdCB1bmRlZmluZWQ6MjQKK3VzZXIgc2NyaXB0IGVycm9yIGV2ZW50
IGxpc3RlbmVyOiBFcnJvcjogRXJyb3IgaW4gdXNlciBzY3JpcHQgbG9hZCBoYW5kbGVyLiBhdCB1
bmRlZmluZWQ6MjQKK3VzZXIgc2NyaXB0IHdpbmRvdy5vbmVycm9yOiBFcnJvcjogRXJyb3IgaW4g
bWFpbiB3b3JsZCBzZXRUaW1lb3V0IGNhbGxiYWNrLiBhdCB3aW5kb3ctb25lcnJvci1mb3ItaXNv
bGF0ZWQtd29ybGQtMi5odG1sOjI3Cit1c2VyIHNjcmlwdCBlcnJvciBldmVudCBsaXN0ZW5lcjog
RXJyb3I6IEVycm9yIGluIG1haW4gd29ybGQgc2V0VGltZW91dCBjYWxsYmFjay4gYXQgd2luZG93
LW9uZXJyb3ItZm9yLWlzb2xhdGVkLXdvcmxkLTIuaHRtbDoyNwordXNlciBzY3JpcHQgd2luZG93
Lm9uZXJyb3I6IEVycm9yOiBFcnJvciBpbiB1c2VyIHNjcmlwdCBzZXRUaW1lb3V0IGNhbGxiYWNr
LiBhdCB1bmRlZmluZWQ6MjgKK3VzZXIgc2NyaXB0IGVycm9yIGV2ZW50IGxpc3RlbmVyOiBFcnJv
cjogRXJyb3IgaW4gdXNlciBzY3JpcHQgc2V0VGltZW91dCBjYWxsYmFjay4gYXQgdW5kZWZpbmVk
OjI4CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy91c2Vyc2NyaXB0cy93aW5kb3ctb25lcnJvci1m
b3ItaXNvbGF0ZWQtd29ybGQtMi5odG1sIGIvTGF5b3V0VGVzdHMvdXNlcnNjcmlwdHMvd2luZG93
LW9uZXJyb3ItZm9yLWlzb2xhdGVkLXdvcmxkLTIuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwLi5hNmVjNjk5Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvdXNl
cnNjcmlwdHMvd2luZG93LW9uZXJyb3ItZm9yLWlzb2xhdGVkLXdvcmxkLTIuaHRtbApAQCAtMCww
ICsxLDY3IEBACis8IURPQ1RZUEUgSFRNTD4KKzxodG1sPgorPGhlYWQ+Cis8L2hlYWQ+Cis8Ym9k
eT4KKzxwPlRlc3QgdGhhdCB3aW5kb3cub25lcnJvciBhbmQgImVycm9yIiBldmVudCBsaXN0ZW5l
cnMgZnJvbSBpc29sYXRlZCB3b3JsZCBhcmUKK2ludm9rZWQgZm9yIHVuY2F1Z2h0IGV4Y2VwdGlv
bnMgaW4gdXNlciBzY3JpcHRzIHJ1bm5pbmcgaW4gaXNvbGF0ZSB3b3JsZHMgYXMKK3dlbGwgYXMg
Zm9yIGV4Y2VwdGlvbnMgaW4gdGhlIG1haW4gd29ybGQuPGEgaHJlZj0iaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTg1MTkiPkJ1ZyA4NTE5LjwvYT4KKzwvcD4KKzxkaXYg
aWQ9ImNvbnNvbGUiPjwvZGl2PgorPHNjcmlwdD4KKwordmFyIGV4cGVjdGVkUmVjb3JkQ291bnQg
PSAxMDsKK3ZhciByZWNvcmRDb3VudCA9IDA7Citkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY29u
c29sZSIpLmFkZEV2ZW50TGlzdGVuZXIoIkRPTU5vZGVJbnNlcnRlZCIsIGZ1bmN0aW9uKGUpIHsK
KyAgICBpZiAoKytyZWNvcmRDb3VudCA9PT0gZXhwZWN0ZWRSZWNvcmRDb3VudCAmJiB3aW5kb3cu
bGF5b3V0VGVzdENvbnRyb2xsZXIpCisgICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLm5vdGlm
eURvbmUoKTsKK30sIGZhbHNlKTsKKwordmFyIHRocm93RXhjZXB0aW9ucyA9IGZ1bmN0aW9uKGlz
b2xhdGVkV29ybGQpCit7CisgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoImxvYWQiLCBmdW5j
dGlvbihlKSB7CisgICAgICAgIHRocm93IG5ldyBFcnJvcigiRXJyb3IgaW4gIiArIGlzb2xhdGVk
V29ybGQgKyAiIGxvYWQgaGFuZGxlci4iKTsKKyAgICB9LCBmYWxzZSk7CisKKyAgICBzZXRUaW1l
b3V0KGZ1bmN0aW9uKCkgeworICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIkVycm9yIGluICIgKyBp
c29sYXRlZFdvcmxkICsgIiBzZXRUaW1lb3V0IGNhbGxiYWNrLiIpOworICAgIH0sIDApOworICAg
IAorICAgIHRocm93IG5ldyBFcnJvcigiRXJyb3IgaW4gIisgaXNvbGF0ZWRXb3JsZCArICIgaW5s
aW5lIHNjcmlwdC4iKTsKK307CisKK3ZhciBlcnJvckhhbmRsZXJzID0gZnVuY3Rpb24oaXNvbGF0
ZWRXb3JsZCkKK3sKKyAgICBmdW5jdGlvbiBsYXN0VXJsQ29tcG9uZW50KHVybCkgeworICAgICAg
ICByZXR1cm4gdXJsID8gdXJsLm1hdGNoKCAvW15cL10rXC8/JC8gKVswXSA6IHVybDsKKyAgICB9
CisKKyAgICBmdW5jdGlvbiBsb2cobXNnKSB7CisgICAgICAgIHZhciByZWNvcmQgPSBkb2N1bWVu
dC5jcmVhdGVFbGVtZW50KCJkaXYiKTsKKyAgICAgICAgcmVjb3JkLmlubmVySFRNTCA9IG1zZzsK
KyAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNvbnNvbGUiKS5hcHBlbmRDaGlsZChy
ZWNvcmQpOworICAgIH0KKworICAgIHdpbmRvdy5vbmVycm9yID0gZnVuY3Rpb24obXNnLCB1cmws
IGxpbmUpIHsKKyAgICAgICAgbG9nKGlzb2xhdGVkV29ybGQgKyAiIHdpbmRvdy5vbmVycm9yOiAi
ICsgbXNnICsgIiBhdCAiICsgbGFzdFVybENvbXBvbmVudCh1cmwpICsgIjoiICsgbGluZSwgIioi
KTsKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KKworICAgIHdpbmRvdy5hZGRFdmVudExp
c3RlbmVyKCJlcnJvciIsIGZ1bmN0aW9uKGUpIHsKKyAgICAgICAgdmFyIHVybCA9IGxhc3RVcmxD
b21wb25lbnQoZS5maWxlbmFtZSk7CisgICAgICAgIGxvZyhpc29sYXRlZFdvcmxkICsgIiBlcnJv
ciBldmVudCBsaXN0ZW5lcjogIiArIGUubWVzc2FnZSArICIgYXQgIiArIHVybCArICI6IiArIGUu
bGluZW5vLCAiKiIpOworICAgICAgICBlLnByZXZlbnREZWZhdWx0KCk7CisgICAgfSwgZmFsc2Up
OworfTsKKworaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikgeworICAgIGxheW91dFRl
c3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKKyAgICBsYXlvdXRUZXN0Q29udHJvbGxlci53YWl0
VW50aWxEb25lKCk7CisgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuYWRkVXNlclNjcmlwdCgiKCIg
KyBlcnJvckhhbmRsZXJzICsgIikoJ3VzZXIgc2NyaXB0Jyk7ICgiICsgdGhyb3dFeGNlcHRpb25z
ICsgIikoJ3VzZXIgc2NyaXB0JykiLCBmYWxzZSwgdHJ1ZSk7Cit9CisKK3Rocm93RXhjZXB0aW9u
cygibWFpbiB3b3JsZCIpOworCis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdp
dCBhL1dlYkNvcmUvQW5kcm9pZC5qc2NiaW5kaW5ncy5tayBiL1dlYkNvcmUvQW5kcm9pZC5qc2Ni
aW5kaW5ncy5tawppbmRleCA2NTNkZmVjLi5lN2ZkMmZjIDEwMDY0NAotLS0gYS9XZWJDb3JlL0Fu
ZHJvaWQuanNjYmluZGluZ3MubWsKKysrIGIvV2ViQ29yZS9BbmRyb2lkLmpzY2JpbmRpbmdzLm1r
CkBAIC0xMDIsNiArMTAyLDcgQEAgTE9DQUxfU1JDX0ZJTEVTICs9IFwKIAliaW5kaW5ncy9qcy9K
U0RldmljZU9yaWVudGF0aW9uRXZlbnRDdXN0b20uY3BwIFwKIAliaW5kaW5ncy9qcy9KU0RvY3Vt
ZW50Q3VzdG9tLmNwcCBcCiAJYmluZGluZ3MvanMvSlNFbGVtZW50Q3VzdG9tLmNwcCBcCisJYmlu
ZGluZ3MvanMvSlNFcnJvckhhbmRsZXIuY3BwIFwKIAliaW5kaW5ncy9qcy9KU0V2ZW50Q3VzdG9t
LmNwcCBcCiAJYmluZGluZ3MvanMvSlNFdmVudExpc3RlbmVyLmNwcCBcCiAJYmluZGluZ3MvanMv
SlNFdmVudFRhcmdldC5jcHAgXApAQCAtMTcwLDcgKzE3MSw2IEBAIExPQ0FMX1NSQ19GSUxFUyAr
PSBcCiAJYmluZGluZ3MvanMvSlNXZWJLaXRQb2ludEN1c3RvbS5jcHAgXAogCWJpbmRpbmdzL2pz
L0pTV29ya2VyQ29udGV4dEJhc2UuY3BwIFwKIAliaW5kaW5ncy9qcy9KU1dvcmtlckNvbnRleHRD
dXN0b20uY3BwIFwKLQliaW5kaW5ncy9qcy9KU1dvcmtlckNvbnRleHRFcnJvckhhbmRsZXIuY3Bw
IFwKIAliaW5kaW5ncy9qcy9KU1dvcmtlckN1c3RvbS5jcHAgXAogCWJpbmRpbmdzL2pzL0pTWE1M
SHR0cFJlcXVlc3RDdXN0b20uY3BwIFwKIAliaW5kaW5ncy9qcy9KU1hNTEh0dHBSZXF1ZXN0VXBs
b2FkQ3VzdG9tLmNwcCBcCmRpZmYgLS1naXQgYS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0IGIvV2Vi
Q29yZS9DTWFrZUxpc3RzLnR4dAppbmRleCA3YzZlM2U1Li43M2NjNzUxIDEwMDY0NAotLS0gYS9X
ZWJDb3JlL0NNYWtlTGlzdHMudHh0CisrKyBiL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKQEAgLTYz
NSw2ICs2MzUsNyBAQCBTRVQoV2ViQ29yZV9TT1VSQ0VTCiAgICAgYmluZGluZ3MvanMvSlNEZXZp
Y2VPcmllbnRhdGlvbkV2ZW50Q3VzdG9tLmNwcAogICAgIGJpbmRpbmdzL2pzL0pTRG9jdW1lbnRD
dXN0b20uY3BwCiAgICAgYmluZGluZ3MvanMvSlNFbGVtZW50Q3VzdG9tLmNwcAorICAgIGJpbmRp
bmdzL2pzL0pTRXJyb3JIYW5kbGVyLmNwcAogICAgIGJpbmRpbmdzL2pzL0pTRXZlbnRDdXN0b20u
Y3BwCiAgICAgYmluZGluZ3MvanMvSlNFdmVudExpc3RlbmVyLmNwcAogICAgIGJpbmRpbmdzL2pz
L0pTRXZlbnRTb3VyY2VDdXN0b20uY3BwCkBAIC03MDQsNyArNzA1LDYgQEAgU0VUKFdlYkNvcmVf
U09VUkNFUwogICAgIGJpbmRpbmdzL2pzL0pTV2ViU29ja2V0Q3VzdG9tLmNwcAogICAgIGJpbmRp
bmdzL2pzL0pTV29ya2VyQ29udGV4dEJhc2UuY3BwCiAgICAgYmluZGluZ3MvanMvSlNXb3JrZXJD
b250ZXh0Q3VzdG9tLmNwcAotICAgIGJpbmRpbmdzL2pzL0pTV29ya2VyQ29udGV4dEVycm9ySGFu
ZGxlci5jcHAKICAgICBiaW5kaW5ncy9qcy9KU1dvcmtlckN1c3RvbS5jcHAKICAgICBiaW5kaW5n
cy9qcy9KU1hNTEh0dHBSZXF1ZXN0Q3VzdG9tLmNwcAogICAgIGJpbmRpbmdzL2pzL0pTWE1MSHR0
cFJlcXVlc3RVcGxvYWRDdXN0b20uY3BwCmRpZmYgLS1naXQgYS9XZWJDb3JlL0NoYW5nZUxvZyBi
L1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IGViZjIzYzUuLmE5MzU1OTMgMTAwNjQ0Ci0tLSBhL1dl
YkNvcmUvQ2hhbmdlTG9nCisrKyBiL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC02MDMyLDc4ICs2MDMy
LDYgQEAKICAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRleHRDb250cm9sU2luZ2xlTGluZTo6bG9n
aWNhbFNjcm9sbCk6CiAgICAgICAgICogcmVuZGVyaW5nL1JlbmRlclRleHRDb250cm9sU2luZ2xl
TGluZS5oOgogCi0yMDEwLTEyLTEzICBZdXJ5IFNlbWlraGF0c2t5ICA8eXVyeXNAY2hyb21pdW0u
b3JnPgotCi0gICAgICAgIFVucmV2aWV3ZWQuIFJvbGxvdXQgNzM5MTQsIDczOTE1LCA3MzkxNywg
NzM5MjAgYW5kIDczOTIxLgotCi0gICAgICAgIFJFR1JFU1NJT04ocjczOTE0KTogIkNocm9taXVt
IHBhZ2VfY3ljbGVyX21vcmVqcyBmYWlscyIgKFJlcXVlc3RlZCBieSB5dXJ5cyBvbiAjd2Via2l0
KS4KLSAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTUwOTUw
Ci0KLSAgICAgICAgKiBBbmRyb2lkLmpzY2JpbmRpbmdzLm1rOgotICAgICAgICAqIENNYWtlTGlz
dHMudHh0OgotICAgICAgICAqIEdOVW1ha2VmaWxlLmFtOgotICAgICAgICAqIFdlYkNvcmUuZ3lw
aToKLSAgICAgICAgKiBXZWJDb3JlLm9yZGVyOgotICAgICAgICAqIFdlYkNvcmUucHJvOgotICAg
ICAgICAqIFdlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qOgotICAgICAgICAqIFdlYkNvcmUu
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKLSAgICAgICAgKiBiaW5kaW5ncy9qcy9KU0JpbmRp
bmdzQWxsSW5PbmUuY3BwOgotICAgICAgICAqIGJpbmRpbmdzL2pzL0pTRE9NQmluZGluZy5jcHA6
Ci0gICAgICAgIChXZWJDb3JlOjpyZXBvcnRFeGNlcHRpb24pOgotICAgICAgICAqIGJpbmRpbmdz
L2pzL0pTV29ya2VyQ29udGV4dEVycm9ySGFuZGxlci5jcHA6IFJlbmFtZWQgZnJvbSBXZWJDb3Jl
L2JpbmRpbmdzL2pzL0pTRXJyb3JIYW5kbGVyLmNwcC4KLSAgICAgICAgKFdlYkNvcmU6OkpTV29y
a2VyQ29udGV4dEVycm9ySGFuZGxlcjo6SlNXb3JrZXJDb250ZXh0RXJyb3JIYW5kbGVyKToKLSAg
ICAgICAgKFdlYkNvcmU6OkpTV29ya2VyQ29udGV4dEVycm9ySGFuZGxlcjo6fkpTV29ya2VyQ29u
dGV4dEVycm9ySGFuZGxlcik6Ci0gICAgICAgIChXZWJDb3JlOjpKU1dvcmtlckNvbnRleHRFcnJv
ckhhbmRsZXI6OmhhbmRsZUV2ZW50KToKLSAgICAgICAgKiBiaW5kaW5ncy9qcy9KU1dvcmtlckNv
bnRleHRFcnJvckhhbmRsZXIuaDogUmVuYW1lZCBmcm9tIFdlYkNvcmUvYmluZGluZ3MvanMvSlNF
cnJvckhhbmRsZXIuaC4KLSAgICAgICAgKFdlYkNvcmU6OkpTV29ya2VyQ29udGV4dEVycm9ySGFu
ZGxlcjo6Y3JlYXRlKToKLSAgICAgICAgKFdlYkNvcmU6OmNyZWF0ZUpTV29ya2VyQ29udGV4dEVy
cm9ySGFuZGxlcik6Ci0gICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMu
cG06Ci0gICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9yVjgucG06Ci0gICAg
ICAgICogYmluZGluZ3MvdjgvVjhDb25zb2xlTWVzc2FnZS5jcHA6Ci0gICAgICAgIChXZWJDb3Jl
OjpWOENvbnNvbGVNZXNzYWdlOjpkaXNwYXRjaE5vdyk6Ci0gICAgICAgIChXZWJDb3JlOjpWOENv
bnNvbGVNZXNzYWdlOjpoYW5kbGVyKToKLSAgICAgICAgKiBiaW5kaW5ncy92OC9WOENvbnNvbGVN
ZXNzYWdlLmg6Ci0gICAgICAgICogYmluZGluZ3MvdjgvVjhXaW5kb3dFcnJvckhhbmRsZXIuY3Bw
OiBSZW1vdmVkLgotICAgICAgICAqIGJpbmRpbmdzL3Y4L1Y4V2luZG93RXJyb3JIYW5kbGVyLmg6
IFJlbW92ZWQuCi0gICAgICAgICogYmluZGluZ3MvdjgvV29ya2VyQ29udGV4dEV4ZWN1dGlvblBy
b3h5LmNwcDoKLSAgICAgICAgKFdlYkNvcmU6OnY4TWVzc2FnZUhhbmRsZXIpOgotICAgICAgICAq
IGJpbmRpbmdzL3Y4L1dvcmtlclNjcmlwdENvbnRyb2xsZXIuY3BwOgotICAgICAgICAoV2ViQ29y
ZTo6V29ya2VyU2NyaXB0Q29udHJvbGxlcjo6ZXZhbHVhdGUpOgotICAgICAgICAqIGRvbS9Eb2N1
bWVudC5jcHA6Ci0gICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6cmVwb3J0RXhjZXB0aW9uKToK
LSAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50OjphZGRNZXNzYWdlKToKLSAgICAgICAgKiBkb20v
RG9jdW1lbnQuaDoKLSAgICAgICAgKiBkb20vRXJyb3JFdmVudC5jcHA6Ci0gICAgICAgICogZG9t
L0Vycm9yRXZlbnQuaDoKLSAgICAgICAgKiBkb20vRXZlbnQuY3BwOgotICAgICAgICAqIGRvbS9F
dmVudC5oOgotICAgICAgICAqIGRvbS9TY3JpcHRFeGVjdXRpb25Db250ZXh0LmNwcDoKLSAgICAg
ICAgKFdlYkNvcmU6OlNjcmlwdEV4ZWN1dGlvbkNvbnRleHQ6OlNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHQpOgotICAgICAgICAqIGRvbS9TY3JpcHRFeGVjdXRpb25Db250ZXh0Lmg6Ci0gICAgICAgICog
d2Vic29ja2V0cy9XZWJTb2NrZXQuY3BwOgotICAgICAgICAoV2ViQ29yZTo6V2ViU29ja2V0Ojpj
b25uZWN0KToKLSAgICAgICAgKiB3ZWJzb2NrZXRzL1dlYlNvY2tldENoYW5uZWwuY3BwOgotICAg
ICAgICAoV2ViQ29yZTo6V2ViU29ja2V0Q2hhbm5lbDo6ZGlkT3Blbik6Ci0gICAgICAgIChXZWJD
b3JlOjpXZWJTb2NrZXRDaGFubmVsOjphcHBlbmRUb0J1ZmZlcik6Ci0gICAgICAgICogd2Vic29j
a2V0cy9XZWJTb2NrZXRIYW5kc2hha2UuY3BwOgotICAgICAgICAoV2ViQ29yZTo6V2ViU29ja2V0
SGFuZHNoYWtlOjpyZWFkU2VydmVySGFuZHNoYWtlKToKLSAgICAgICAgKFdlYkNvcmU6OldlYlNv
Y2tldEhhbmRzaGFrZTo6cmVhZFN0YXR1c0xpbmUpOgotICAgICAgICAoV2ViQ29yZTo6V2ViU29j
a2V0SGFuZHNoYWtlOjpyZWFkSFRUUEhlYWRlcnMpOgotICAgICAgICAoV2ViQ29yZTo6V2ViU29j
a2V0SGFuZHNoYWtlOjpjaGVja1Jlc3BvbnNlSGVhZGVycyk6Ci0gICAgICAgICogd29ya2Vycy9E
ZWZhdWx0U2hhcmVkV29ya2VyUmVwb3NpdG9yeS5jcHA6Ci0gICAgICAgIChXZWJDb3JlOjpwb3N0
RXhjZXB0aW9uVGFzayk6Ci0gICAgICAgIChXZWJDb3JlOjpwb3N0Q29uc29sZU1lc3NhZ2VUYXNr
KToKLSAgICAgICAgKiB3b3JrZXJzL1dvcmtlckNvbnRleHQuY3BwOgotICAgICAgICAoV2ViQ29y
ZTo6V29ya2VyQ29udGV4dDo6V29ya2VyQ29udGV4dCk6Ci0gICAgICAgIChXZWJDb3JlOjpXb3Jr
ZXJDb250ZXh0OjpyZXBvcnRFeGNlcHRpb24pOgotICAgICAgICAoV2ViQ29yZTo6V29ya2VyQ29u
dGV4dDo6YWRkTWVzc2FnZSk6Ci0gICAgICAgICogd29ya2Vycy9Xb3JrZXJDb250ZXh0Lmg6Ci0g
ICAgICAgICogd29ya2Vycy9Xb3JrZXJNZXNzYWdpbmdQcm94eS5jcHA6Ci0gICAgICAgIChXZWJD
b3JlOjpXb3JrZXJFeGNlcHRpb25UYXNrOjpwZXJmb3JtVGFzayk6Ci0gICAgICAgIChXZWJDb3Jl
Ojpwb3N0Q29uc29sZU1lc3NhZ2VUYXNrKToKLSAgICAgICAgKiB4bWwvWE1MSHR0cFJlcXVlc3Qu
Y3BwOgotICAgICAgICAoV2ViQ29yZTo6cmVwb3J0VW5zYWZlVXNhZ2UpOgotCiAyMDEwLTEyLTEz
ICBBbnR0aSBLb2l2aXN0byAgPGFudHRpQGFwcGxlLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBi
eSBBbGV4ZXkgUHJvc2t1cnlha292LgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9HTlVtYWtlZmlsZS5h
bSBiL1dlYkNvcmUvR05VbWFrZWZpbGUuYW0KaW5kZXggZjEwOGY4Ni4uZWRmZTBlOSAxMDA2NDQK
LS0tIGEvV2ViQ29yZS9HTlVtYWtlZmlsZS5hbQorKysgYi9XZWJDb3JlL0dOVW1ha2VmaWxlLmFt
CkBAIC03NzUsNiArNzc1LDggQEAgd2ViY29yZV9zb3VyY2VzICs9IFwKIAlXZWJDb3JlL2JpbmRp
bmdzL2pzL0pTRWxlbWVudEN1c3RvbS5jcHAgXAogCVdlYkNvcmUvYmluZGluZ3MvanMvSlNFbnRy
eUN1c3RvbS5jcHAgXAogCVdlYkNvcmUvYmluZGluZ3MvanMvSlNFbnRyeVN5bmNDdXN0b20uY3Bw
IFwKKwlXZWJDb3JlL2JpbmRpbmdzL2pzL0pTRXJyb3JIYW5kbGVyLmNwcCBcCisJV2ViQ29yZS9i
aW5kaW5ncy9qcy9KU0Vycm9ySGFuZGxlci5oIFwKIAlXZWJDb3JlL2JpbmRpbmdzL2pzL0pTRXZl
bnRDdXN0b20uY3BwIFwKIAlXZWJDb3JlL2JpbmRpbmdzL2pzL0pTRXZlbnRMaXN0ZW5lci5jcHAg
XAogCVdlYkNvcmUvYmluZGluZ3MvanMvSlNFdmVudExpc3RlbmVyLmggXApAQCAtODcyLDggKzg3
NCw2IEBAIHdlYmNvcmVfc291cmNlcyArPSBcCiAJV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1dvcmtl
ckNvbnRleHRCYXNlLmNwcCBcCiAJV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1dvcmtlckNvbnRleHRC
YXNlLmggXAogCVdlYkNvcmUvYmluZGluZ3MvanMvSlNXb3JrZXJDb250ZXh0Q3VzdG9tLmNwcCBc
Ci0JV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1dvcmtlckNvbnRleHRFcnJvckhhbmRsZXIuY3BwIFwK
LQlXZWJDb3JlL2JpbmRpbmdzL2pzL0pTV29ya2VyQ29udGV4dEVycm9ySGFuZGxlci5oIFwKIAlX
ZWJDb3JlL2JpbmRpbmdzL2pzL0pTV29ya2VyQ3VzdG9tLmNwcCBcCiAJV2ViQ29yZS9iaW5kaW5n
cy9qcy9KU1hNTEh0dHBSZXF1ZXN0Q3VzdG9tLmNwcCBcCiAJV2ViQ29yZS9iaW5kaW5ncy9qcy9K
U1hNTEh0dHBSZXF1ZXN0VXBsb2FkQ3VzdG9tLmNwcCBcCmRpZmYgLS1naXQgYS9XZWJDb3JlL1dl
YkNvcmUuZ3lwaSBiL1dlYkNvcmUvV2ViQ29yZS5neXBpCmluZGV4IDRmNGI0NjMuLmRiZDk2NGYg
MTAwNjQ0Ci0tLSBhL1dlYkNvcmUvV2ViQ29yZS5neXBpCisrKyBiL1dlYkNvcmUvV2ViQ29yZS5n
eXBpCkBAIC02MjQsNiArNjI0LDggQEAKICAgICAgICAgICAgICdiaW5kaW5ncy9qcy9KU0VsZW1l
bnRDdXN0b20uY3BwJywKICAgICAgICAgICAgICdiaW5kaW5ncy9qcy9KU0VudHJ5Q3VzdG9tLmNw
cCcsCiAgICAgICAgICAgICAnYmluZGluZ3MvanMvSlNFbnRyeVN5bmNDdXN0b20uY3BwJywKKyAg
ICAgICAgICAgICdiaW5kaW5ncy9qcy9KU0Vycm9ySGFuZGxlci5jcHAnLAorICAgICAgICAgICAg
J2JpbmRpbmdzL2pzL0pTRXJyb3JIYW5kbGVyLmgnLAogICAgICAgICAgICAgJ2JpbmRpbmdzL2pz
L0pTRXZlbnRDdXN0b20uY3BwJywKICAgICAgICAgICAgICdiaW5kaW5ncy9qcy9KU0V2ZW50TGlz
dGVuZXIuY3BwJywKICAgICAgICAgICAgICdiaW5kaW5ncy9qcy9KU0V2ZW50TGlzdGVuZXIuaCcs
CkBAIC03MjEsOCArNzIzLDYgQEAKICAgICAgICAgICAgICdiaW5kaW5ncy9qcy9KU1dvcmtlckNv
bnRleHRCYXNlLmNwcCcsCiAgICAgICAgICAgICAnYmluZGluZ3MvanMvSlNXb3JrZXJDb250ZXh0
QmFzZS5oJywKICAgICAgICAgICAgICdiaW5kaW5ncy9qcy9KU1dvcmtlckNvbnRleHRDdXN0b20u
Y3BwJywKLSAgICAgICAgICAgICdiaW5kaW5ncy9qcy9KU1dvcmtlckNvbnRleHRFcnJvckhhbmRs
ZXIuY3BwJywKLSAgICAgICAgICAgICdiaW5kaW5ncy9qcy9KU1dvcmtlckNvbnRleHRFcnJvckhh
bmRsZXIuaCcsCiAgICAgICAgICAgICAnYmluZGluZ3MvanMvSlNXb3JrZXJDdXN0b20uY3BwJywK
ICAgICAgICAgICAgICdiaW5kaW5ncy9qcy9KU1hNTEh0dHBSZXF1ZXN0Q3VzdG9tLmNwcCcsCiAg
ICAgICAgICAgICAnYmluZGluZ3MvanMvSlNYTUxIdHRwUmVxdWVzdFVwbG9hZEN1c3RvbS5jcHAn
LApAQCAtOTg0LDYgKzk4NCw4IEBACiAgICAgICAgICAgICAnYmluZGluZ3MvdjgvVjhQcm94eS5o
JywKICAgICAgICAgICAgICdiaW5kaW5ncy92OC9WOFV0aWxpdGllcy5jcHAnLAogICAgICAgICAg
ICAgJ2JpbmRpbmdzL3Y4L1Y4VXRpbGl0aWVzLmgnLAorICAgICAgICAgICAgJ2JpbmRpbmdzL3Y4
L1Y4V2luZG93RXJyb3JIYW5kbGVyLmNwcCcsCisgICAgICAgICAgICAnYmluZGluZ3MvdjgvVjhX
aW5kb3dFcnJvckhhbmRsZXIuaCcsCiAgICAgICAgICAgICAnYmluZGluZ3MvdjgvVjhXb3JrZXJD
b250ZXh0RXJyb3JIYW5kbGVyLmNwcCcsCiAgICAgICAgICAgICAnYmluZGluZ3MvdjgvVjhXb3Jr
ZXJDb250ZXh0RXJyb3JIYW5kbGVyLmgnLAogICAgICAgICAgICAgJ2JpbmRpbmdzL3Y4L1Y4V29y
a2VyQ29udGV4dEV2ZW50TGlzdGVuZXIuY3BwJywKZGlmZiAtLWdpdCBhL1dlYkNvcmUvV2ViQ29y
ZS5vcmRlciBiL1dlYkNvcmUvV2ViQ29yZS5vcmRlcgppbmRleCAyNzFkZmM5Li4zYWI4OTM2IDEw
MDY0NAotLS0gYS9XZWJDb3JlL1dlYkNvcmUub3JkZXIKKysrIGIvV2ViQ29yZS9XZWJDb3JlLm9y
ZGVyCkBAIC0yNTIwOCwxMyArMjUyMDgsOSBAQCBfX1pON1dlYkNvcmUxNUpTV29ya2VyQ29udGV4
dDEwc2V0VGltZW91dEVQTjNKU0M5RXhlY1N0YXRlRVJLTlMxXzdBcmdMaXN0RQogX19aTjdXZWJD
b3JlMTNXb3JrZXJDb250ZXh0MTBzZXRUaW1lb3V0RVBOU18xNVNjaGVkdWxlZEFjdGlvbkVpCiBf
X1pON1dlYkNvcmUxN1dvcmtlclNoYXJlZFRpbWVyMTFzZXRGaXJlVGltZUVkCiBfX1pON1dlYkNv
cmUxNVNjaGVkdWxlZEFjdGlvbjdleGVjdXRlRVBOU18xM1dvcmtlckNvbnRleHRFCi1fX1pON1dl
YkNvcmUyN0pTV29ya2VyQ29udGV4dEVycm9ySGFuZGxlckMxRVBOM0pTQzhKU09iamVjdEVTM19i
UE5TXzE1RE9NV3JhcHBlcldvcmxkRQotX19aTjdXZWJDb3JlMjdKU1dvcmtlckNvbnRleHRFcnJv
ckhhbmRsZXJDMkVQTjNKU0M4SlNPYmplY3RFUzNfYlBOU18xNURPTVdyYXBwZXJXb3JsZEUKIF9f
Wk43V2ViQ29yZTEwRXJyb3JFdmVudEMxRVJLTlNfNlN0cmluZ0VTM19qCiBfX1pON1dlYkNvcmUx
MEVycm9yRXZlbnRDMkVSS05TXzZTdHJpbmdFUzNfagotX19aTjdXZWJDb3JlMjdKU1dvcmtlckNv
bnRleHRFcnJvckhhbmRsZXIxMWhhbmRsZUV2ZW50RVBOU18yMlNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHRFUE5TXzVFdmVudEUKIF9fWk43V2ViQ29yZTEwRXJyb3JFdmVudEQwRXYKLV9fWk43V2ViQ29y
ZTI3SlNXb3JrZXJDb250ZXh0RXJyb3JIYW5kbGVyRDBFdgogX19aTjdXZWJDb3JlMTdqc1dvcmtl
ck9ubWVzc2FnZUVQTjNKU0M5RXhlY1N0YXRlRU5TMF83SlNWYWx1ZUVSS05TMF8xMElkZW50aWZp
ZXJFCiBfX1pON1dlYkNvcmUzNGpzV29ya2VyUHJvdG90eXBlRnVuY3Rpb25UZXJtaW5hdGVFUE4z
SlNDOUV4ZWNTdGF0ZUVQTlMwXzhKU09iamVjdEVOUzBfN0pTVmFsdWVFUktOUzBfN0FyZ0xpc3RF
CiBfX1pUaG44X043V2ViQ29yZTIwV29ya2VyTWVzc2FnaW5nUHJveHkxOXdvcmtlckNvbnRleHRD
bG9zZWRFdgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9XZWJDb3JlLnBybyBiL1dlYkNvcmUvV2ViQ29y
ZS5wcm8KaW5kZXggYWFjNzYwYS4uZjcwODM5ZSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9XZWJDb3Jl
LnBybworKysgYi9XZWJDb3JlL1dlYkNvcmUucHJvCkBAIC00MDEsNiArNDAxLDcgQEAgdjggewog
ICAgICAgICBiaW5kaW5ncy92OC9WOE5vZGVGaWx0ZXJDb25kaXRpb24uY3BwIFwKICAgICAgICAg
YmluZGluZ3MvdjgvVjhQcm94eS5jcHAgXAogICAgICAgICBiaW5kaW5ncy92OC9WOFV0aWxpdGll
cy5jcHAgXAorICAgICAgICBiaW5kaW5ncy92OC9WOFdpbmRvd0Vycm9ySGFuZGxlci5jcHAgXAog
ICAgICAgICBiaW5kaW5ncy92OC9WOFdvcmtlckNvbnRleHRFdmVudExpc3RlbmVyLmNwcCBcCiAg
ICAgICAgIGJpbmRpbmdzL3Y4L1dvcmtlckNvbnRleHRFeGVjdXRpb25Qcm94eS5jcHAgXAogICAg
ICAgICBiaW5kaW5ncy92OC9Xb3JrZXJTY3JpcHRDb250cm9sbGVyLmNwcCBcCkBAIC01NDIsNiAr
NTQzLDcgQEAgdjggewogICAgICAgICBiaW5kaW5ncy9qcy9KU0RldmljZU9yaWVudGF0aW9uRXZl
bnRDdXN0b20uY3BwIFwKICAgICAgICAgYmluZGluZ3MvanMvSlNEb2N1bWVudEN1c3RvbS5jcHAg
XAogICAgICAgICBiaW5kaW5ncy9qcy9KU0VsZW1lbnRDdXN0b20uY3BwIFwKKyAgICAgICAgYmlu
ZGluZ3MvanMvSlNFcnJvckhhbmRsZXIuY3BwIFwKICAgICAgICAgYmluZGluZ3MvanMvSlNFdmVu
dEN1c3RvbS5jcHAgXAogICAgICAgICBiaW5kaW5ncy9qcy9KU0V2ZW50TGlzdGVuZXIuY3BwIFwK
ICAgICAgICAgYmluZGluZ3MvanMvSlNFdmVudFNvdXJjZUN1c3RvbS5jcHAgXApAQCAtNjAxLDcg
KzYwMyw2IEBAIHY4IHsKICAgICAgICAgYmluZGluZ3MvanMvSlNXZWJLaXRDU1NLZXlmcmFtZXNS
dWxlQ3VzdG9tLmNwcCBcCiAgICAgICAgIGJpbmRpbmdzL2pzL0pTV2ViS2l0Q1NTTWF0cml4Q3Vz
dG9tLmNwcCBcCiAgICAgICAgIGJpbmRpbmdzL2pzL0pTV2ViS2l0UG9pbnRDdXN0b20uY3BwIFwK
LSAgICAgICAgYmluZGluZ3MvanMvSlNXb3JrZXJDb250ZXh0RXJyb3JIYW5kbGVyLmNwcCBcCiAg
ICAgICAgIGJpbmRpbmdzL2pzL0pTWE1MSHR0cFJlcXVlc3RDdXN0b20uY3BwIFwKICAgICAgICAg
YmluZGluZ3MvanMvSlNYTUxIdHRwUmVxdWVzdFVwbG9hZEN1c3RvbS5jcHAgXAogICAgICAgICBi
aW5kaW5ncy9qcy9TY2hlZHVsZWRBY3Rpb24uY3BwIFwKQEAgLTE0NzMsNiArMTQ3NCw3IEBAIHY4
IHsKICAgICAgICAgYmluZGluZ3MvdjgvVjhOUFV0aWxzLmggXAogICAgICAgICBiaW5kaW5ncy92
OC9WOFByb3h5LmggXAogICAgICAgICBiaW5kaW5ncy92OC9WOFV0aWxpdGllcy5oIFwKKyAgICAg
ICAgYmluZGluZ3MvdjgvVjhXaW5kb3dFcnJvckhhbmRsZXIuaCBcCiAgICAgICAgIGJpbmRpbmdz
L3Y4L1Y4V29ya2VyQ29udGV4dEV2ZW50TGlzdGVuZXIuaCBcCiAgICAgICAgIGJpbmRpbmdzL3Y4
L1dvcmtlckNvbnRleHRFeGVjdXRpb25Qcm94eS5oIFwKICAgICAgICAgYmluZGluZ3MvdjgvV29y
a2VyU2NyaXB0Q29udHJvbGxlci5oIFwKQEAgLTE0OTksNiArMTUwMSw3IEBAIHY4IHsKICAgICAg
ICAgYmluZGluZ3MvanMvSlNET01XaW5kb3dDdXN0b20uaCBcCiAgICAgICAgIGJpbmRpbmdzL2pz
L0pTRE9NV2luZG93U2hlbGwuaCBcCiAgICAgICAgIGJpbmRpbmdzL2pzL0pTRE9NV3JhcHBlci5o
IFwKKyAgICAgICAgYmluZGluZ3MvanMvSlNFcnJvckhhbmRsZXIuaCBcCiAgICAgICAgIGJpbmRp
bmdzL2pzL0pTRXZlbnRMaXN0ZW5lci5oIFwKICAgICAgICAgYmluZGluZ3MvanMvSlNFdmVudFRh
cmdldC5oIFwKICAgICAgICAgYmluZGluZ3MvanMvSlNIaXN0b3J5Q3VzdG9tLmggXApAQCAtMTUx
Niw3ICsxNTE5LDYgQEAgdjggewogICAgICAgICBiaW5kaW5ncy9qcy9KU1BsdWdpbkVsZW1lbnRG
dW5jdGlvbnMuaCBcCiAgICAgICAgIGJpbmRpbmdzL2pzL0pTU3RvcmFnZUN1c3RvbS5oIFwKICAg
ICAgICAgYmluZGluZ3MvanMvSlNXb3JrZXJDb250ZXh0QmFzZS5oIFwKLSAgICAgICAgYmluZGlu
Z3MvanMvSlNXb3JrZXJDb250ZXh0RXJyb3JIYW5kbGVyLmggXAogICAgICAgICBiaW5kaW5ncy9q
cy9KYXZhU2NyaXB0Q2FsbEZyYW1lLmggXAogICAgICAgICBiaW5kaW5ncy9qcy9TY2hlZHVsZWRB
Y3Rpb24uaCBcCiAgICAgICAgIGJpbmRpbmdzL2pzL1NjcmlwdENhY2hlZEZyYW1lRGF0YS5oIFwK
ZGlmZiAtLWdpdCBhL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2ogYi9XZWJD
b3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qCmluZGV4IDMyM2U1MjYuLjU4NzMwNjQg
MTAwNzU1Ci0tLSBhL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oKKysrIGIv
V2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvagpAQCAtNTgxNjUsNiArNTgxNjUs
NjIgQEAKIAkJCQkJPgogCQkJCTwvRmlsZT4KIAkJCQk8RmlsZQorCQkJCQlSZWxhdGl2ZVBhdGg9
Ii4uXGJpbmRpbmdzXGpzXEpTRXJyb3JIYW5kbGVyLmNwcCIKKwkJCQkJPgorCQkJCQk8RmlsZUNv
bmZpZ3VyYXRpb24KKwkJCQkJCU5hbWU9IkRlYnVnfFdpbjMyIgorCQkJCQkJRXhjbHVkZWRGcm9t
QnVpbGQ9InRydWUiCisJCQkJCQk+CisJCQkJCQk8VG9vbAorCQkJCQkJCU5hbWU9IlZDQ0xDb21w
aWxlclRvb2wiCisJCQkJCQkvPgorCQkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPgorCQkJCQk8Rmls
ZUNvbmZpZ3VyYXRpb24KKwkJCQkJCU5hbWU9IlJlbGVhc2V8V2luMzIiCisJCQkJCQlFeGNsdWRl
ZEZyb21CdWlsZD0idHJ1ZSIKKwkJCQkJCT4KKwkJCQkJCTxUb29sCisJCQkJCQkJTmFtZT0iVkND
TENvbXBpbGVyVG9vbCIKKwkJCQkJCS8+CisJCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+CisJCQkJ
CTxGaWxlQ29uZmlndXJhdGlvbgorCQkJCQkJTmFtZT0iRGVidWdfQ2Fpcm9fQ0ZMaXRlfFdpbjMy
IgorCQkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiCisJCQkJCQk+CisJCQkJCQk8VG9vbAor
CQkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiCisJCQkJCQkvPgorCQkJCQk8L0ZpbGVDb25m
aWd1cmF0aW9uPgorCQkJCQk8RmlsZUNvbmZpZ3VyYXRpb24KKwkJCQkJCU5hbWU9IlJlbGVhc2Vf
Q2Fpcm9fQ0ZMaXRlfFdpbjMyIgorCQkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiCisJCQkJ
CQk+CisJCQkJCQk8VG9vbAorCQkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiCisJCQkJCQkv
PgorCQkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPgorCQkJCQk8RmlsZUNvbmZpZ3VyYXRpb24KKwkJ
CQkJCU5hbWU9IkRlYnVnX0FsbHxXaW4zMiIKKwkJCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVl
IgorCQkJCQkJPgorCQkJCQkJPFRvb2wKKwkJCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIgor
CQkJCQkJLz4KKwkJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4KKwkJCQkJPEZpbGVDb25maWd1cmF0
aW9uCisJCQkJCQlOYW1lPSJSZWxlYXNlX0xUQ0d8V2luMzIiCisJCQkJCQlFeGNsdWRlZEZyb21C
dWlsZD0idHJ1ZSIKKwkJCQkJCT4KKwkJCQkJCTxUb29sCisJCQkJCQkJTmFtZT0iVkNDTENvbXBp
bGVyVG9vbCIKKwkJCQkJCS8+CisJCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+CisJCQkJPC9GaWxl
PgorCQkJCTxGaWxlCisJCQkJCVJlbGF0aXZlUGF0aD0iLi5cYmluZGluZ3NcanNcSlNFcnJvckhh
bmRsZXIuaCIKKwkJCQkJPgorCQkJCTwvRmlsZT4KKwkJCQk8RmlsZQogCQkJCQlSZWxhdGl2ZVBh
dGg9Ii4uXGJpbmRpbmdzXGpzXEpTRXZlbnRDdXN0b20uY3BwIgogCQkJCQk+CiAJCQkJCTxGaWxl
Q29uZmlndXJhdGlvbgpAQCAtNjE3MzMsNjIgKzYxNzg5LDYgQEAKIAkJCQkJPC9GaWxlQ29uZmln
dXJhdGlvbj4KIAkJCQk8L0ZpbGU+CiAJCQkJPEZpbGUKLQkJCQkJUmVsYXRpdmVQYXRoPSIuLlxi
aW5kaW5nc1xqc1xKU1dvcmtlckNvbnRleHRFcnJvckhhbmRsZXIuY3BwIgotCQkJCQk+Ci0JCQkJ
CTxGaWxlQ29uZmlndXJhdGlvbgotCQkJCQkJTmFtZT0iRGVidWd8V2luMzIiCi0JCQkJCQlFeGNs
dWRlZEZyb21CdWlsZD0idHJ1ZSIKLQkJCQkJCT4KLQkJCQkJCTxUb29sCi0JCQkJCQkJTmFtZT0i
VkNDTENvbXBpbGVyVG9vbCIKLQkJCQkJCS8+Ci0JCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+Ci0J
CQkJCTxGaWxlQ29uZmlndXJhdGlvbgotCQkJCQkJTmFtZT0iUmVsZWFzZXxXaW4zMiIKLQkJCQkJ
CUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIgotCQkJCQkJPgotCQkJCQkJPFRvb2wKLQkJCQkJCQlO
YW1lPSJWQ0NMQ29tcGlsZXJUb29sIgotCQkJCQkJLz4KLQkJCQkJPC9GaWxlQ29uZmlndXJhdGlv
bj4KLQkJCQkJPEZpbGVDb25maWd1cmF0aW9uCi0JCQkJCQlOYW1lPSJEZWJ1Z19DYWlyb19DRkxp
dGV8V2luMzIiCi0JCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSIKLQkJCQkJCT4KLQkJCQkJ
CTxUb29sCi0JCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCIKLQkJCQkJCS8+Ci0JCQkJCTwv
RmlsZUNvbmZpZ3VyYXRpb24+Ci0JCQkJCTxGaWxlQ29uZmlndXJhdGlvbgotCQkJCQkJTmFtZT0i
UmVsZWFzZV9DYWlyb19DRkxpdGV8V2luMzIiCi0JCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1
ZSIKLQkJCQkJCT4KLQkJCQkJCTxUb29sCi0JCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCIK
LQkJCQkJCS8+Ci0JCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+Ci0JCQkJCTxGaWxlQ29uZmlndXJh
dGlvbgotCQkJCQkJTmFtZT0iRGVidWdfQWxsfFdpbjMyIgotCQkJCQkJRXhjbHVkZWRGcm9tQnVp
bGQ9InRydWUiCi0JCQkJCQk+Ci0JCQkJCQk8VG9vbAotCQkJCQkJCU5hbWU9IlZDQ0xDb21waWxl
clRvb2wiCi0JCQkJCQkvPgotCQkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPgotCQkJCQk8RmlsZUNv
bmZpZ3VyYXRpb24KLQkJCQkJCU5hbWU9IlJlbGVhc2VfTFRDR3xXaW4zMiIKLQkJCQkJCUV4Y2x1
ZGVkRnJvbUJ1aWxkPSJ0cnVlIgotCQkJCQkJPgotCQkJCQkJPFRvb2wKLQkJCQkJCQlOYW1lPSJW
Q0NMQ29tcGlsZXJUb29sIgotCQkJCQkJLz4KLQkJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4KLQkJ
CQk8L0ZpbGU+Ci0JCQkJPEZpbGUKLQkJCQkJUmVsYXRpdmVQYXRoPSIuLlxiaW5kaW5nc1xqc1xK
U1dvcmtlckNvbnRleHRFcnJvckhhbmRsZXIuaCIKLQkJCQkJPgotCQkJCTwvRmlsZT4KLQkJCQk8
RmlsZQogCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGJpbmRpbmdzXGpzXEpTV29ya2VyQ3VzdG9tLmNw
cCIKIAkJCQkJPgogCQkJCQk8RmlsZUNvbmZpZ3VyYXRpb24KZGlmZiAtLWdpdCBhL1dlYkNvcmUv
V2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvV2ViQ29yZS9XZWJDb3JlLnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggMTFkNmY2Ny4uODU0NzAyMiAxMDA2NDQKLS0tIGEv
V2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvV2ViQ29yZS9X
ZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTU1NjIsOCArNTU2Miw4IEBACiAJ
CUYzOTIyNDlEMTI2RjExQUUwMEE5MjZEOSAvKiBTY3JpcHRDYWxsU3RhY2tGYWN0b3J5LmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGMzkyMjQ5QjEyNkYx
MUFFMDBBOTI2RDkgLyogU2NyaXB0Q2FsbFN0YWNrRmFjdG9yeS5oICovOyB9OwogCQlGMzlCRTk1
QjEyNjczQkY0MDBFMEE2NzQgLyogU2NyaXB0QXJndW1lbnRzLmNwcCBpbiBTb3VyY2VzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEYzOUJFOTU5MTI2NzNCRjQwMEUwQTY3NCAv
KiBTY3JpcHRBcmd1bWVudHMuY3BwICovOyB9OwogCQlGMzlCRTk1QzEyNjczQkY0MDBFMEE2NzQg
LyogU2NyaXB0QXJndW1lbnRzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSBGMzlCRTk1QTEyNjczQkY0MDBFMEE2NzQgLyogU2NyaXB0QXJndW1lbnRzLmgg
Ki87IH07Ci0JCUYzRDQ2MTQ4MTE2MUQ1MzIwMENBMEQwOSAvKiBKU1dvcmtlckNvbnRleHRFcnJv
ckhhbmRsZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gRjNENDYxNDYxMTYxRDUzMjAwQ0EwRDA5IC8qIEpTV29ya2VyQ29udGV4dEVycm9ySGFuZGxl
ci5jcHAgKi87IH07Ci0JCUYzRDQ2MTQ5MTE2MUQ1MzIwMENBMEQwOSAvKiBKU1dvcmtlckNvbnRl
eHRFcnJvckhhbmRsZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IEYzRDQ2MTQ3MTE2MUQ1MzIwMENBMEQwOSAvKiBKU1dvcmtlckNvbnRleHRFcnJvckhh
bmRsZXIuaCAqLzsgfTsKKwkJRjNENDYxNDgxMTYxRDUzMjAwQ0EwRDA5IC8qIEpTRXJyb3JIYW5k
bGVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEYz
RDQ2MTQ2MTE2MUQ1MzIwMENBMEQwOSAvKiBKU0Vycm9ySGFuZGxlci5jcHAgKi87IH07CisJCUYz
RDQ2MTQ5MTE2MUQ1MzIwMENBMEQwOSAvKiBKU0Vycm9ySGFuZGxlci5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjNENDYxNDcxMTYxRDUzMjAwQ0EwRDA5
IC8qIEpTRXJyb3JIYW5kbGVyLmggKi87IH07CiAJCUY0RUFGNEFFMTBDNzQyQjEwMDkxMDBEMyAv
KiBPcGVuVHlwZVNhbml0aXplci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSBGNEVBRjRBQzEwQzc0MkIxMDA5MTAwRDMgLyogT3BlblR5cGVTYW5pdGl6
ZXIuY3BwICovOyB9OwogCQlGNEVBRjRBRjEwQzc0MkIxMDA5MTAwRDMgLyogT3BlblR5cGVTYW5p
dGl6ZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY0
RUFGNEFEMTBDNzQyQjEwMDkxMDBEMyAvKiBPcGVuVHlwZVNhbml0aXplci5oICovOyB9OwogCQlG
NTVCM0RBRDEyNTFGMTJEMDAzRUYyNjkgLyogQmFzZVRleHRJbnB1dFR5cGUuY3BwIGluIFNvdXJj
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjU1QjNENzkxMjUxRjEyRDAw
M0VGMjY5IC8qIEJhc2VUZXh0SW5wdXRUeXBlLmNwcCAqLzsgfTsKQEAgLTExODY4LDggKzExODY4
LDggQEAKIAkJRjM5MjI0OUIxMjZGMTFBRTAwQTkyNkQ5IC8qIFNjcmlwdENhbGxTdGFja0ZhY3Rv
cnkuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU2NyaXB0Q2FsbFN0YWNrRmFj
dG9yeS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlGMzlCRTk1OTEyNjczQkY0MDBF
MEE2NzQgLyogU2NyaXB0QXJndW1lbnRzLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNw
cDsgcGF0aCA9IFNjcmlwdEFyZ3VtZW50cy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCUYzOUJFOTVBMTI2NzNCRjQwMEUwQTY3NCAvKiBTY3JpcHRBcmd1bWVudHMuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU2NyaXB0QXJndW1lbnRzLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07Ci0JCUYzRDQ2MTQ2MTE2MUQ1MzIwMENBMEQwOSAvKiBKU1dvcmtlckNv
bnRleHRFcnJvckhhbmRsZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRo
ID0gSlNXb3JrZXJDb250ZXh0RXJyb3JIYW5kbGVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKLQkJRjNENDYxNDcxMTYxRDUzMjAwQ0EwRDA5IC8qIEpTV29ya2VyQ29udGV4dEVycm9y
SGFuZGxlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKU1dvcmtlckNvbnRl
eHRFcnJvckhhbmRsZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRjNENDYxNDYx
MTYxRDUzMjAwQ0EwRDA5IC8qIEpTRXJyb3JIYW5kbGVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLmNwcDsgcGF0aCA9IEpTRXJyb3JIYW5kbGVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKKwkJRjNENDYxNDcxMTYxRDUzMjAwQ0EwRDA5IC8qIEpTRXJyb3JIYW5kbGVyLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTRXJyb3JIYW5kbGVyLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUY0RUFGNEFDMTBDNzQyQjEwMDkxMDBEMyAvKiBPcGVu
VHlwZVNhbml0aXplci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBP
cGVuVHlwZVNhbml0aXplci5jcHA7IHBhdGggPSBvcGVudHlwZS9PcGVuVHlwZVNhbml0aXplci5j
cHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUY0RUFGNEFEMTBDNzQyQjEwMDkxMDBE
MyAvKiBPcGVuVHlwZVNhbml0aXplci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUg
PSBPcGVuVHlwZVNhbml0aXplci5oOyBwYXRoID0gb3BlbnR5cGUvT3BlblR5cGVTYW5pdGl6ZXIu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRjUyM0QyM0IwMkRFNDM5NjAxODYzNUNB
IC8qIEhUTUxEb2N1bWVudC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gMzA7IGluZGVudFdpZHRoID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5jcHA7IHBhdGggPSBIVE1MRG9jdW1lbnQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB0YWJXaWR0aCA9IDg7IHVzZXNUYWJzID0gMDsgfTsKQEAgLTE3NDc3LDYgKzE3NDc3LDgg
QEAKIAkJCQlCQ0JGQjUzQjBEQ0QyOUNGMDAxOUIzRTUgLyogSlNET01XaW5kb3dTaGVsbC5oICov
LAogCQkJCUJDNTNEQUM2MTE0MzMwNjQwMDBEODE3RSAvKiBKU0RPTVdyYXBwZXIuY3BwICovLAog
CQkJCTY1RTBFOTQzMTEzM0M4OUYwMEI0Q0IxMCAvKiBKU0RPTVdyYXBwZXIuaCAqLywKKwkJCQlG
M0Q0NjE0NjExNjFENTMyMDBDQTBEMDkgLyogSlNFcnJvckhhbmRsZXIuY3BwICovLAorCQkJCUYz
RDQ2MTQ3MTE2MUQ1MzIwMENBMEQwOSAvKiBKU0Vycm9ySGFuZGxlci5oICovLAogCQkJCUJDNjA5
MDFFMEU5MUI4RUMwMDBDNjhCNSAvKiBKU0V2ZW50VGFyZ2V0LmNwcCAqLywKIAkJCQlCQzYwOTAx
RDBFOTFCOEVDMDAwQzY4QjUgLyogSlNFdmVudFRhcmdldC5oICovLAogCQkJCTMzMTRBQ0U5MTA4
OTIwODYwMDBGMEU1NiAvKiBKU0V4Y2VwdGlvbkJhc2UuY3BwICovLApAQCAtMTc0ODgsOCArMTc0
OTAsNiBAQAogCQkJCTE0Q0Q4RDgxMTA2QjUyOTAwMEE0NkQyMyAvKiBKU1NoYXJlZFdvcmtlckN1
c3RvbS5jcHAgKi8sCiAJCQkJRTFDMzZEMzIwRUIwQTA5NDAwNzQxMEJDIC8qIEpTV29ya2VyQ29u
dGV4dEJhc2UuY3BwICovLAogCQkJCUUxQzM2RDMzMEVCMEEwOTQwMDc0MTBCQyAvKiBKU1dvcmtl
ckNvbnRleHRCYXNlLmggKi8sCi0JCQkJRjNENDYxNDYxMTYxRDUzMjAwQ0EwRDA5IC8qIEpTV29y
a2VyQ29udGV4dEVycm9ySGFuZGxlci5jcHAgKi8sCi0JCQkJRjNENDYxNDcxMTYxRDUzMjAwQ0Ew
RDA5IC8qIEpTV29ya2VyQ29udGV4dEVycm9ySGFuZGxlci5oICovLAogCQkJCUJDQTM3OEJBMEQx
NUY2NDIwMEI3OTNENiAvKiBTY2hlZHVsZWRBY3Rpb24uY3BwICovLAogCQkJCUJDQTM3OEJCMEQx
NUY2NDIwMEI3OTNENiAvKiBTY2hlZHVsZWRBY3Rpb24uaCAqLywKIAkJCQk0MUYxRDIxRTBFRjM1
QzJBMDBEQTg3NTMgLyogU2NyaXB0Q2FjaGVkRnJhbWVEYXRhLmNwcCAqLywKQEAgLTIxMTU1LDcg
KzIxMTU1LDcgQEAKIAkJCQlFMUNBQTVDNjBFOEJEMjM2MDBBNzNFQ0EgLyogSlNXb3JrZXIuaCBp
biBIZWFkZXJzICovLAogCQkJCUUxODI1NjkwMEVGMkIwMkQwMDkzMzI0MiAvKiBKU1dvcmtlckNv
bnRleHQuaCBpbiBIZWFkZXJzICovLAogCQkJCUUxQzM2RDM1MEVCMEEwOTQwMDc0MTBCQyAvKiBK
U1dvcmtlckNvbnRleHRCYXNlLmggaW4gSGVhZGVycyAqLywKLQkJCQlGM0Q0NjE0OTExNjFENTMy
MDBDQTBEMDkgLyogSlNXb3JrZXJDb250ZXh0RXJyb3JIYW5kbGVyLmggaW4gSGVhZGVycyAqLywK
KwkJCQlGM0Q0NjE0OTExNjFENTMyMDBDQTBEMDkgLyogSlNFcnJvckhhbmRsZXIuaCBpbiBIZWFk
ZXJzICovLAogCQkJCUUxQzM2MkVGMEVBRjJBQTkwMDc0MTBCQyAvKiBKU1dvcmtlckxvY2F0aW9u
LmggaW4gSGVhZGVycyAqLywKIAkJCQlFMTI3MUE1ODBFRUVDREU0MDBGNjEyMTMgLyogSlNXb3Jr
ZXJOYXZpZ2F0b3IuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDMzQ4QkQ0MERCN0Y4MDQwMDRBQkFC
OSAvKiBKU1hNTEh0dHBSZXF1ZXN0LmggaW4gSGVhZGVycyAqLywKQEAgLTIzOTc4LDcgKzIzOTc4
LDcgQEAKIAkJCQlFMTgyNTY4RjBFRjJCMDJEMDA5MzMyNDIgLyogSlNXb3JrZXJDb250ZXh0LmNw
cCBpbiBTb3VyY2VzICovLAogCQkJCUUxQzM2RDM0MEVCMEEwOTQwMDc0MTBCQyAvKiBKU1dvcmtl
ckNvbnRleHRCYXNlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUUxODI1OEFDMEVGM0NENzAwMDkz
MzI0MiAvKiBKU1dvcmtlckNvbnRleHRDdXN0b20uY3BwIGluIFNvdXJjZXMgKi8sCi0JCQkJRjNE
NDYxNDgxMTYxRDUzMjAwQ0EwRDA5IC8qIEpTV29ya2VyQ29udGV4dEVycm9ySGFuZGxlci5jcHAg
aW4gU291cmNlcyAqLywKKwkJCQlGM0Q0NjE0ODExNjFENTMyMDBDQTBEMDkgLyogSlNFcnJvckhh
bmRsZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJRTFDQTVDQkMwRThDRENBRjAwRThFRjkwIC8q
IEpTV29ya2VyQ3VzdG9tLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUUxQzM2MkYwMEVBRjJBQTkw
MDc0MTBCQyAvKiBKU1dvcmtlckxvY2F0aW9uLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUUxMjcx
QTU5MEVFRUNERTQwMEY2MTIxMyAvKiBKU1dvcmtlck5hdmlnYXRvci5jcHAgaW4gU291cmNlcyAq
LywKZGlmZiAtLWdpdCBhL1dlYkNvcmUvYmluZGluZ3MvanMvSlNCaW5kaW5nc0FsbEluT25lLmNw
cCBiL1dlYkNvcmUvYmluZGluZ3MvanMvSlNCaW5kaW5nc0FsbEluT25lLmNwcAppbmRleCA3ZmM1
NzQwLi5kMmMyN2E5IDEwMDY0NAotLS0gYS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTQmluZGluZ3NB
bGxJbk9uZS5jcHAKKysrIGIvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0JpbmRpbmdzQWxsSW5PbmUu
Y3BwCkBAIC03Miw2ICs3Miw3IEBACiAjaW5jbHVkZSAiSlNEZXZpY2VPcmllbnRhdGlvbkV2ZW50
Q3VzdG9tLmNwcCIKICNpbmNsdWRlICJKU0RvY3VtZW50Q3VzdG9tLmNwcCIKICNpbmNsdWRlICJK
U0VsZW1lbnRDdXN0b20uY3BwIgorI2luY2x1ZGUgIkpTRXJyb3JIYW5kbGVyLmNwcCIKICNpbmNs
dWRlICJKU0V2ZW50Q3VzdG9tLmNwcCIKICNpbmNsdWRlICJKU0V2ZW50TGlzdGVuZXIuY3BwIgog
I2luY2x1ZGUgIkpTRXZlbnRTb3VyY2VDdXN0b20uY3BwIgpAQCAtMTQxLDcgKzE0Miw2IEBACiAj
aW5jbHVkZSAiSlNXZWJTb2NrZXRDdXN0b20uY3BwIgogI2luY2x1ZGUgIkpTV29ya2VyQ29udGV4
dEJhc2UuY3BwIgogI2luY2x1ZGUgIkpTV29ya2VyQ29udGV4dEN1c3RvbS5jcHAiCi0jaW5jbHVk
ZSAiSlNXb3JrZXJDb250ZXh0RXJyb3JIYW5kbGVyLmNwcCIKICNpbmNsdWRlICJKU1dvcmtlckN1
c3RvbS5jcHAiCiAjaW5jbHVkZSAiSlNYTUxIdHRwUmVxdWVzdEN1c3RvbS5jcHAiCiAjaW5jbHVk
ZSAiSlNYTUxIdHRwUmVxdWVzdFVwbG9hZEN1c3RvbS5jcHAiCmRpZmYgLS1naXQgYS9XZWJDb3Jl
L2JpbmRpbmdzL2pzL0pTRE9NQmluZGluZy5jcHAgYi9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9N
QmluZGluZy5jcHAKaW5kZXggZWQ1NzlkMy4uNTY4ZjZjYiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9i
aW5kaW5ncy9qcy9KU0RPTUJpbmRpbmcuY3BwCisrKyBiL1dlYkNvcmUvYmluZGluZ3MvanMvSlNE
T01CaW5kaW5nLmNwcApAQCAtNTUsNiArNTUsNyBAQAogI2luY2x1ZGUgIlByb2Nlc3NpbmdJbnN0
cnVjdGlvbi5oIgogI2luY2x1ZGUgIlJhbmdlRXhjZXB0aW9uLmgiCiAjaW5jbHVkZSAiU2NyaXB0
Q2FjaGVkRnJhbWVEYXRhLmgiCisjaW5jbHVkZSAiU2NyaXB0Q2FsbFN0YWNrLmgiCiAjaW5jbHVk
ZSAiU2NyaXB0Q29udHJvbGxlci5oIgogI2luY2x1ZGUgIlNldHRpbmdzLmgiCiAjaW5jbHVkZSAi
V2ViQ29yZUpTQ2xpZW50RGF0YS5oIgpAQCAtNTk4LDcgKzU5OSw3IEBAIHZvaWQgcmVwb3J0RXhj
ZXB0aW9uKEV4ZWNTdGF0ZSogZXhlYywgSlNWYWx1ZSBleGNlcHRpb24pCiAgICAgaWYgKCFzY3Jp
cHRFeGVjdXRpb25Db250ZXh0KQogICAgICAgICByZXR1cm47CiAKLSAgICBzY3JpcHRFeGVjdXRp
b25Db250ZXh0LT5yZXBvcnRFeGNlcHRpb24odXN0cmluZ1RvU3RyaW5nKGVycm9yTWVzc2FnZSks
IGxpbmVOdW1iZXIsIHVzdHJpbmdUb1N0cmluZyhleGNlcHRpb25Tb3VyY2VVUkwpKTsKKyAgICBz
Y3JpcHRFeGVjdXRpb25Db250ZXh0LT5yZXBvcnRFeGNlcHRpb24odXN0cmluZ1RvU3RyaW5nKGVy
cm9yTWVzc2FnZSksIGxpbmVOdW1iZXIsIHVzdHJpbmdUb1N0cmluZyhleGNlcHRpb25Tb3VyY2VV
UkwpLCAwKTsKIH0KIAogdm9pZCByZXBvcnRDdXJyZW50RXhjZXB0aW9uKEV4ZWNTdGF0ZSogZXhl
YykKZGlmZiAtLWdpdCBhL1dlYkNvcmUvYmluZGluZ3MvanMvSlNFcnJvckhhbmRsZXIuY3BwIGIv
V2ViQ29yZS9iaW5kaW5ncy9qcy9KU0Vycm9ySGFuZGxlci5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMC4uYWU4ZTM2MwotLS0gL2Rldi9udWxsCisrKyBiL1dlYkNvcmUvYmlu
ZGluZ3MvanMvSlNFcnJvckhhbmRsZXIuY3BwCkBAIC0wLDAgKzEsMTExIEBACisvKgorICogQ29w
eXJpZ2h0IChDKSAyMDEwIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCisgKiBtZXQ6CisgKgorICogICAgICogUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lci4KKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUKKyAqIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKKyAqIGluIHRoZSBkb2N1bWVudGF0
aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKKyAqIGRpc3RyaWJ1
dGlvbi4KKyAqICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBu
YW1lcyBvZiBpdHMKKyAqIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHBy
b21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCisgKiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3Bl
Y2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKKyAqICJB
UyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBC
VVQgTk9UCisgKiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5U
QUJJTElUWSBBTkQgRklUTkVTUyBGT1IKKyAqIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVND
TEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCisgKiBPV05FUiBPUiBDT05U
UklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwK
KyAqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJ
TkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09P
RFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAorICogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVT
SU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisgKiBUSEVPUlkg
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBU
T1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNv
bmZpZy5oIgorCisjaW5jbHVkZSAiSlNFcnJvckhhbmRsZXIuaCIKKworI2luY2x1ZGUgIkVycm9y
RXZlbnQuaCIKKyNpbmNsdWRlICJFdmVudC5oIgorI2luY2x1ZGUgIkpTRXZlbnQuaCIKKyNpbmNs
dWRlIDxydW50aW1lL0pTTG9jay5oPgorCit1c2luZyBuYW1lc3BhY2UgSlNDOworCituYW1lc3Bh
Y2UgV2ViQ29yZSB7CisKK0pTRXJyb3JIYW5kbGVyOjpKU0Vycm9ySGFuZGxlcihKU09iamVjdCog
ZnVuY3Rpb24sIEpTT2JqZWN0KiB3cmFwcGVyLCBib29sIGlzQXR0cmlidXRlLCBET01XcmFwcGVy
V29ybGQqIGlzb2xhdGVkV29ybGQpCisgICAgOiBKU0V2ZW50TGlzdGVuZXIoZnVuY3Rpb24sIHdy
YXBwZXIsIGlzQXR0cmlidXRlLCBpc29sYXRlZFdvcmxkKQoreworfQorCitKU0Vycm9ySGFuZGxl
cjo6fkpTRXJyb3JIYW5kbGVyKCkKK3sKK30KKwordm9pZCBKU0Vycm9ySGFuZGxlcjo6aGFuZGxl
RXZlbnQoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogc2NyaXB0RXhlY3V0aW9uQ29udGV4dCwgRXZl
bnQqIGV2ZW50KQoreworICAgIGlmICghZXZlbnQtPmlzRXJyb3JFdmVudCgpKQorICAgICAgICBy
ZXR1cm4gSlNFdmVudExpc3RlbmVyOjpoYW5kbGVFdmVudChzY3JpcHRFeGVjdXRpb25Db250ZXh0
LCBldmVudCk7CisKKyAgICBBU1NFUlQoc2NyaXB0RXhlY3V0aW9uQ29udGV4dCk7CisgICAgaWYg
KCFzY3JpcHRFeGVjdXRpb25Db250ZXh0KQorICAgICAgICByZXR1cm47CisKKyAgICBFcnJvckV2
ZW50KiBlcnJvckV2ZW50ID0gc3RhdGljX2Nhc3Q8RXJyb3JFdmVudCo+KGV2ZW50KTsKKworICAg
IEpTTG9jayBsb2NrKFNpbGVuY2VBc3NlcnRpb25zT25seSk7CisKKyAgICBKU09iamVjdCoganNG
dW5jdGlvbiA9IHRoaXMtPmpzRnVuY3Rpb24oc2NyaXB0RXhlY3V0aW9uQ29udGV4dCk7CisgICAg
aWYgKCFqc0Z1bmN0aW9uKQorICAgICAgICByZXR1cm47CisKKyAgICBKU0RPTUdsb2JhbE9iamVj
dCogZ2xvYmFsT2JqZWN0ID0gdG9KU0RPTUdsb2JhbE9iamVjdChzY3JpcHRFeGVjdXRpb25Db250
ZXh0LCBpc29sYXRlZFdvcmxkKCkpOworICAgIGlmICghZ2xvYmFsT2JqZWN0KQorICAgICAgICBy
ZXR1cm47CisKKyAgICBFeGVjU3RhdGUqIGV4ZWMgPSBnbG9iYWxPYmplY3QtPmdsb2JhbEV4ZWMo
KTsKKworICAgIENhbGxEYXRhIGNhbGxEYXRhOworICAgIENhbGxUeXBlIGNhbGxUeXBlID0ganNG
dW5jdGlvbi0+Z2V0Q2FsbERhdGEoY2FsbERhdGEpOworCisgICAgaWYgKGNhbGxUeXBlICE9IENh
bGxUeXBlTm9uZSkgeworICAgICAgICBSZWZQdHI8SlNFcnJvckhhbmRsZXI+IHByb3RlY3RlZGN0
b3IodGhpcyk7CisKKyAgICAgICAgRXZlbnQqIHNhdmVkRXZlbnQgPSBnbG9iYWxPYmplY3QtPmN1
cnJlbnRFdmVudCgpOworICAgICAgICBnbG9iYWxPYmplY3QtPnNldEN1cnJlbnRFdmVudChldmVu
dCk7CisKKyAgICAgICAgTWFya2VkQXJndW1lbnRCdWZmZXIgYXJnczsKKyAgICAgICAgYXJncy5h
cHBlbmQoanNTdHJpbmcoZXhlYywgZXJyb3JFdmVudC0+bWVzc2FnZSgpKSk7CisgICAgICAgIGFy
Z3MuYXBwZW5kKGpzU3RyaW5nKGV4ZWMsIGVycm9yRXZlbnQtPmZpbGVuYW1lKCkpKTsKKyAgICAg
ICAgYXJncy5hcHBlbmQoanNOdW1iZXIoZXJyb3JFdmVudC0+bGluZW5vKCkpKTsKKworICAgICAg
ICBKU0dsb2JhbERhdGEmIGdsb2JhbERhdGEgPSBnbG9iYWxPYmplY3QtPmdsb2JhbERhdGEoKTsK
KyAgICAgICAgRHluYW1pY0dsb2JhbE9iamVjdFNjb3BlIGdsb2JhbE9iamVjdFNjb3BlKGV4ZWMs
IGdsb2JhbERhdGEuZHluYW1pY0dsb2JhbE9iamVjdCA/IGdsb2JhbERhdGEuZHluYW1pY0dsb2Jh
bE9iamVjdCA6IGdsb2JhbE9iamVjdCk7CisKKyAgICAgICAgSlNWYWx1ZSB0aGlzVmFsdWUgPSBn
bG9iYWxPYmplY3QtPnRvVGhpc09iamVjdChleGVjKTsKKworICAgICAgICBnbG9iYWxEYXRhLnRp
bWVvdXRDaGVja2VyLnN0YXJ0KCk7CisgICAgICAgIEpTVmFsdWUgcmV0dXJuVmFsdWUgPSBKU0M6
OmNhbGwoZXhlYywganNGdW5jdGlvbiwgY2FsbFR5cGUsIGNhbGxEYXRhLCB0aGlzVmFsdWUsIGFy
Z3MpOworICAgICAgICBnbG9iYWxEYXRhLnRpbWVvdXRDaGVja2VyLnN0b3AoKTsKKworICAgICAg
ICBnbG9iYWxPYmplY3QtPnNldEN1cnJlbnRFdmVudChzYXZlZEV2ZW50KTsKKworICAgICAgICBp
ZiAoZXhlYy0+aGFkRXhjZXB0aW9uKCkpCisgICAgICAgICAgICByZXBvcnRDdXJyZW50RXhjZXB0
aW9uKGV4ZWMpOworICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgIGJvb2wgcmV0dmFsYm9vbDsK
KyAgICAgICAgICAgIGlmIChyZXR1cm5WYWx1ZS5nZXRCb29sZWFuKHJldHZhbGJvb2wpICYmICFy
ZXR2YWxib29sKQorICAgICAgICAgICAgICAgIGV2ZW50LT5wcmV2ZW50RGVmYXVsdCgpOworICAg
ICAgICB9CisgICAgfQorfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9X
ZWJDb3JlL2JpbmRpbmdzL2pzL0pTRXJyb3JIYW5kbGVyLmggYi9XZWJDb3JlL2JpbmRpbmdzL2pz
L0pTRXJyb3JIYW5kbGVyLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOTU3
ZmQ4MQotLS0gL2Rldi9udWxsCisrKyBiL1dlYkNvcmUvYmluZGluZ3MvanMvSlNFcnJvckhhbmRs
ZXIuaApAQCAtMCwwICsxLDY0IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEwIEdvb2dsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMg
YXJlCisgKiBtZXQ6CisgKgorICogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqICAgICAqIFJlZGlz
dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKKyAqIGNv
cHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIKKyAqIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUKKyAqIGRpc3RyaWJ1dGlvbi4KKyAqICAgICAqIE5laXRoZXIg
dGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKKyAqIGNvbnRyaWJ1
dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBm
cm9tCisgKiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJt
aXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdI
VCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKKyAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBU
SEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IK
KyAqIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFM
TCBUSEUgQ09QWVJJR0hUCisgKiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBB
TlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKKyAqIFNQRUNJQUwsIEVYRU1QTEFSWSwg
T1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQg
VE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0Yg
VVNFLAorICogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQgT04gQU5ZCisgKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElO
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAq
IE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBKU0Vycm9ySGFuZGxlcl9oCisjZGVmaW5lIEpT
RXJyb3JIYW5kbGVyX2gKKworI2luY2x1ZGUgIkpTRXZlbnRMaXN0ZW5lci5oIgorCituYW1lc3Bh
Y2UgV2ViQ29yZSB7CisKK2NsYXNzIEpTRXJyb3JIYW5kbGVyIDogcHVibGljIEpTRXZlbnRMaXN0
ZW5lciB7CitwdWJsaWM6CisgICAgc3RhdGljIFBhc3NSZWZQdHI8SlNFcnJvckhhbmRsZXI+IGNy
ZWF0ZShKU0M6OkpTT2JqZWN0KiBsaXN0ZW5lciwgSlNDOjpKU09iamVjdCogd3JhcHBlciwgYm9v
bCBpc0F0dHJpYnV0ZSwgRE9NV3JhcHBlcldvcmxkKiBpc29sYXRlZFdvcmxkKQorICAgIHsKKyAg
ICAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBKU0Vycm9ySGFuZGxlcihsaXN0ZW5lciwgd3JhcHBl
ciwgaXNBdHRyaWJ1dGUsIGlzb2xhdGVkV29ybGQpKTsKKyAgICB9CisKKyAgICB2aXJ0dWFsIH5K
U0Vycm9ySGFuZGxlcigpOworCitwcml2YXRlOgorICAgIEpTRXJyb3JIYW5kbGVyKEpTQzo6SlNP
YmplY3QqIGZ1bmN0aW9uLCBKU0M6OkpTT2JqZWN0KiB3cmFwcGVyLCBib29sIGlzQXR0cmlidXRl
LCBET01XcmFwcGVyV29ybGQqIGlzb2xhdGVkV29ybGQpOworICAgIHZpcnR1YWwgdm9pZCBoYW5k
bGVFdmVudChTY3JpcHRFeGVjdXRpb25Db250ZXh0KiwgRXZlbnQqKTsKK307CisKKy8vIENyZWF0
ZXMgYSBKUyBFdmVudExpc3RlbmVyIGZvciAib25lcnJvciIgZXZlbnQgaGFuZGxlciBpbiB3b3Jr
ZXIgY29udGV4dC4gSXQgaGFzIGN1c3RvbSBpbXBsZW1lbnRhdGlvbiBiZWNhdXNlCisvLyB1bmxp
a2Ugb3RoZXIgZXZlbnQgbGlzdGVuZXJzIGl0IGFjY2VwdHMgdGhyZWUgcGFyYW1ldGVycy4KK2lu
bGluZSBQYXNzUmVmUHRyPEpTRXJyb3JIYW5kbGVyPiBjcmVhdGVKU0Vycm9ySGFuZGxlcihKU0M6
OkV4ZWNTdGF0ZSogZXhlYywgSlNDOjpKU1ZhbHVlIGxpc3RlbmVyLCBKU0M6OkpTT2JqZWN0KiB3
cmFwcGVyKQoreworICAgIGlmICghbGlzdGVuZXIuaXNPYmplY3QoKSkKKyAgICAgICAgcmV0dXJu
IDA7CisKKyAgICByZXR1cm4gSlNFcnJvckhhbmRsZXI6OmNyZWF0ZShhc09iamVjdChsaXN0ZW5l
ciksIHdyYXBwZXIsIHRydWUsIGN1cnJlbnRXb3JsZChleGVjKSk7Cit9CisKK30gLy8gbmFtZXNw
YWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIEpTRXJyb3JIYW5kbGVyX2gKZGlmZiAtLWdpdCBhL1dl
YkNvcmUvYmluZGluZ3MvanMvSlNFdmVudExpc3RlbmVyLmggYi9XZWJDb3JlL2JpbmRpbmdzL2pz
L0pTRXZlbnRMaXN0ZW5lci5oCmluZGV4IGIxNWM1ODkuLjgzZDBkMmUgMTAwNjQ0Ci0tLSBhL1dl
YkNvcmUvYmluZGluZ3MvanMvSlNFdmVudExpc3RlbmVyLmgKKysrIGIvV2ViQ29yZS9iaW5kaW5n
cy9qcy9KU0V2ZW50TGlzdGVuZXIuaApAQCAtNTksMTEgKzU5LDExIEBAIG5hbWVzcGFjZSBXZWJD
b3JlIHsKICAgICAgICAgdmlydHVhbCBKU0M6OkpTT2JqZWN0KiBpbml0aWFsaXplSlNGdW5jdGlv
bihTY3JpcHRFeGVjdXRpb25Db250ZXh0KikgY29uc3Q7CiAgICAgICAgIHZpcnR1YWwgdm9pZCBt
YXJrSlNGdW5jdGlvbihKU0M6Ok1hcmtTdGFjayYpOwogICAgICAgICB2aXJ0dWFsIHZvaWQgaW52
YWxpZGF0ZUpTRnVuY3Rpb24oSlNDOjpKU09iamVjdCopOwotICAgICAgICB2aXJ0dWFsIHZvaWQg
aGFuZGxlRXZlbnQoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIEV2ZW50Kik7CiAgICAgICAgIHZp
cnR1YWwgYm9vbCB2aXJ0dWFsaXNBdHRyaWJ1dGUoKSBjb25zdDsKIAogICAgIHByb3RlY3RlZDoK
ICAgICAgICAgSlNFdmVudExpc3RlbmVyKEpTQzo6SlNPYmplY3QqIGZ1bmN0aW9uLCBKU0M6OkpT
T2JqZWN0KiB3cmFwcGVyLCBib29sIGlzQXR0cmlidXRlLCBET01XcmFwcGVyV29ybGQqIGlzb2xh
dGVkV29ybGQpOworICAgICAgICB2aXJ0dWFsIHZvaWQgaGFuZGxlRXZlbnQoU2NyaXB0RXhlY3V0
aW9uQ29udGV4dCosIEV2ZW50Kik7CiAKICAgICBwcml2YXRlOgogICAgICAgICBtdXRhYmxlIEpT
Qzo6SlNPYmplY3QqIG1fanNGdW5jdGlvbjsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvYmluZGluZ3Mv
anMvSlNXb3JrZXJDb250ZXh0RXJyb3JIYW5kbGVyLmNwcCBiL1dlYkNvcmUvYmluZGluZ3MvanMv
SlNXb3JrZXJDb250ZXh0RXJyb3JIYW5kbGVyLmNwcApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggZjdkMmIwMi4uMDAwMDAwMAotLS0gYS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTV29ya2Vy
Q29udGV4dEVycm9ySGFuZGxlci5jcHAKKysrIC9kZXYvbnVsbApAQCAtMSwxMTYgKzAsMCBAQAot
LyoKLSAqIENvcHlyaWdodCAoQykgMjAxMCBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQotICogbWV0OgotICoKLSAqICAg
ICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0Ci0gKiBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIuCi0gKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCi0gKiBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCi0gKiBpbiB0aGUg
ZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCi0g
KiBkaXN0cmlidXRpb24uCi0gKiAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMu
IG5vciB0aGUgbmFtZXMgb2YgaXRzCi0gKiBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5k
b3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQotICogdGhpcyBzb2Z0d2FyZSB3
aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KLSAqCi0gKiBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVU
T1JTCi0gKiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElO
Q0xVRElORywgQlVUIE5PVAotICogTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCi0gKiBBIFBBUlRJQ1VMQVIgUFVSUE9T
RSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAotICogT1dO
RVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElO
Q0lERU5UQUwsCi0gKiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdF
UyAoSU5DTFVESU5HLCBCVVQgTk9UCi0gKiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJT
VElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKLSAqIERBVEEsIE9SIFBST0ZJ
VFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQot
ICogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJ
TElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJ
U0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0gKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVO
IElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNp
bmNsdWRlICJjb25maWcuaCIKLQotI2lmIEVOQUJMRShXT1JLRVJTKQotCi0jaW5jbHVkZSAiSlNX
b3JrZXJDb250ZXh0RXJyb3JIYW5kbGVyLmgiCi0KLSNpbmNsdWRlICJFcnJvckV2ZW50LmgiCi0j
aW5jbHVkZSAiRXZlbnQuaCIKLSNpbmNsdWRlICJKU0V2ZW50LmgiCi0jaW5jbHVkZSA8cnVudGlt
ZS9KU0xvY2suaD4KLQotdXNpbmcgbmFtZXNwYWNlIEpTQzsKLQotbmFtZXNwYWNlIFdlYkNvcmUg
ewotCi1KU1dvcmtlckNvbnRleHRFcnJvckhhbmRsZXI6OkpTV29ya2VyQ29udGV4dEVycm9ySGFu
ZGxlcihKU09iamVjdCogZnVuY3Rpb24sIEpTT2JqZWN0KiB3cmFwcGVyLCBib29sIGlzQXR0cmli
dXRlLCBET01XcmFwcGVyV29ybGQqIGlzb2xhdGVkV29ybGQpCi0gICAgOiBKU0V2ZW50TGlzdGVu
ZXIoZnVuY3Rpb24sIHdyYXBwZXIsIGlzQXR0cmlidXRlLCBpc29sYXRlZFdvcmxkKQotewotfQot
Ci1KU1dvcmtlckNvbnRleHRFcnJvckhhbmRsZXI6On5KU1dvcmtlckNvbnRleHRFcnJvckhhbmRs
ZXIoKQotewotfQotCi12b2lkIEpTV29ya2VyQ29udGV4dEVycm9ySGFuZGxlcjo6aGFuZGxlRXZl
bnQoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogc2NyaXB0RXhlY3V0aW9uQ29udGV4dCwgRXZlbnQq
IGV2ZW50KQotewotICAgIEFTU0VSVChzY3JpcHRFeGVjdXRpb25Db250ZXh0KTsKLSAgICBpZiAo
IXNjcmlwdEV4ZWN1dGlvbkNvbnRleHQpCi0gICAgICAgIHJldHVybjsKLQotICAgIEpTTG9jayBs
b2NrKFNpbGVuY2VBc3NlcnRpb25zT25seSk7Ci0KLSAgICBKU09iamVjdCoganNGdW5jdGlvbiA9
IHRoaXMtPmpzRnVuY3Rpb24oc2NyaXB0RXhlY3V0aW9uQ29udGV4dCk7Ci0gICAgaWYgKCFqc0Z1
bmN0aW9uKQotICAgICAgICByZXR1cm47Ci0KLSAgICBKU0RPTUdsb2JhbE9iamVjdCogZ2xvYmFs
T2JqZWN0ID0gdG9KU0RPTUdsb2JhbE9iamVjdChzY3JpcHRFeGVjdXRpb25Db250ZXh0LCBpc29s
YXRlZFdvcmxkKCkpOwotICAgIGlmICghZ2xvYmFsT2JqZWN0KQotICAgICAgICByZXR1cm47Ci0K
LSAgICBFeGVjU3RhdGUqIGV4ZWMgPSBnbG9iYWxPYmplY3QtPmdsb2JhbEV4ZWMoKTsKLQotICAg
IENhbGxEYXRhIGNhbGxEYXRhOwotICAgIENhbGxUeXBlIGNhbGxUeXBlID0ganNGdW5jdGlvbi0+
Z2V0Q2FsbERhdGEoY2FsbERhdGEpOwotCi0gICAgaWYgKGNhbGxUeXBlICE9IENhbGxUeXBlTm9u
ZSkgewotCi0gICAgICAgIHJlZigpOwotCi0gICAgICAgIEV2ZW50KiBzYXZlZEV2ZW50ID0gZ2xv
YmFsT2JqZWN0LT5jdXJyZW50RXZlbnQoKTsKLSAgICAgICAgZ2xvYmFsT2JqZWN0LT5zZXRDdXJy
ZW50RXZlbnQoZXZlbnQpOwotCi0gICAgICAgIEFTU0VSVChldmVudC0+aXNFcnJvckV2ZW50KCkp
OwotICAgICAgICBFcnJvckV2ZW50KiBlcnJvckV2ZW50ID0gc3RhdGljX2Nhc3Q8RXJyb3JFdmVu
dCo+KGV2ZW50KTsKLQotICAgICAgICBNYXJrZWRBcmd1bWVudEJ1ZmZlciBhcmdzOwotICAgICAg
ICBhcmdzLmFwcGVuZChqc1N0cmluZyhleGVjLCBlcnJvckV2ZW50LT5tZXNzYWdlKCkpKTsKLSAg
ICAgICAgYXJncy5hcHBlbmQoanNTdHJpbmcoZXhlYywgZXJyb3JFdmVudC0+ZmlsZW5hbWUoKSkp
OwotICAgICAgICBhcmdzLmFwcGVuZChqc051bWJlcihlcnJvckV2ZW50LT5saW5lbm8oKSkpOwot
Ci0gICAgICAgIEpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSA9IGdsb2JhbE9iamVjdC0+Z2xvYmFs
RGF0YSgpOwotICAgICAgICBEeW5hbWljR2xvYmFsT2JqZWN0U2NvcGUgZ2xvYmFsT2JqZWN0U2Nv
cGUoZXhlYywgZ2xvYmFsRGF0YS5keW5hbWljR2xvYmFsT2JqZWN0ID8gZ2xvYmFsRGF0YS5keW5h
bWljR2xvYmFsT2JqZWN0IDogZ2xvYmFsT2JqZWN0KTsKLQotICAgICAgICBKU1ZhbHVlIHRoaXNW
YWx1ZSA9IGdsb2JhbE9iamVjdC0+dG9UaGlzT2JqZWN0KGV4ZWMpOwotCi0gICAgICAgIGdsb2Jh
bERhdGEudGltZW91dENoZWNrZXIuc3RhcnQoKTsKLSAgICAgICAgSlNWYWx1ZSByZXR1cm5WYWx1
ZSA9IEpTQzo6Y2FsbChleGVjLCBqc0Z1bmN0aW9uLCBjYWxsVHlwZSwgY2FsbERhdGEsIHRoaXNW
YWx1ZSwgYXJncyk7Ci0gICAgICAgIGdsb2JhbERhdGEudGltZW91dENoZWNrZXIuc3RvcCgpOwot
Ci0gICAgICAgIGdsb2JhbE9iamVjdC0+c2V0Q3VycmVudEV2ZW50KHNhdmVkRXZlbnQpOwotCi0g
ICAgICAgIGlmIChleGVjLT5oYWRFeGNlcHRpb24oKSkKLSAgICAgICAgICAgIHJlcG9ydEN1cnJl
bnRFeGNlcHRpb24oZXhlYyk7Ci0gICAgICAgIGVsc2UgewotICAgICAgICAgICAgYm9vbCByZXR2
YWxib29sOwotICAgICAgICAgICAgaWYgKHJldHVyblZhbHVlLmdldEJvb2xlYW4ocmV0dmFsYm9v
bCkgJiYgIXJldHZhbGJvb2wpCi0gICAgICAgICAgICAgICAgZXZlbnQtPnByZXZlbnREZWZhdWx0
KCk7Ci0gICAgICAgIH0KLQotICAgICAgICBkZXJlZigpOwotICAgIH0KLX0KLQotfSAvLyBuYW1l
c3BhY2UgV2ViQ29yZQotCi0jZW5kaWYgLy8gRU5BQkxFKFdPUktFUlMpCmRpZmYgLS1naXQgYS9X
ZWJDb3JlL2JpbmRpbmdzL2pzL0pTV29ya2VyQ29udGV4dEVycm9ySGFuZGxlci5oIGIvV2ViQ29y
ZS9iaW5kaW5ncy9qcy9KU1dvcmtlckNvbnRleHRFcnJvckhhbmRsZXIuaApkZWxldGVkIGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggYTE4ODI5OS4uMDAwMDAwMAotLS0gYS9XZWJDb3JlL2JpbmRpbmdz
L2pzL0pTV29ya2VyQ29udGV4dEVycm9ySGFuZGxlci5oCisrKyAvZGV2L251bGwKQEAgLTEsNjQg
KzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMCBHb29nbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQotICogbWV0Ogot
ICoKLSAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCi0gKiBjb3B5cmlnaHQgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCi0g
KiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlCi0gKiBkaXN0cmlidXRpb24uCi0gKiAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdv
b2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCi0gKiBjb250cmlidXRvcnMgbWF5IGJlIHVz
ZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQotICogdGhpcyBz
b2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KLSAqCi0g
KiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQg
Q09OVFJJQlVUT1JTCi0gKiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJB
TlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAotICogTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FS
UkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCi0gKiBBIFBBUlRJQ1VM
QVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdI
VAotICogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsCi0gKiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJ
QUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCi0gKiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVO
VCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKLSAqIERBVEEs
IE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWQotICogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0gKiBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgot
ICovCi0KLSNpZm5kZWYgSlNXb3JrZXJDb250ZXh0RXJyb3JIYW5kbGVyX2gKLSNkZWZpbmUgSlNX
b3JrZXJDb250ZXh0RXJyb3JIYW5kbGVyX2gKLQotI2luY2x1ZGUgIkpTRXZlbnRMaXN0ZW5lci5o
IgotCi1uYW1lc3BhY2UgV2ViQ29yZSB7Ci0KLWNsYXNzIEpTV29ya2VyQ29udGV4dEVycm9ySGFu
ZGxlciA6IHB1YmxpYyBKU0V2ZW50TGlzdGVuZXIgewotcHVibGljOgotICAgIHN0YXRpYyBQYXNz
UmVmUHRyPEpTV29ya2VyQ29udGV4dEVycm9ySGFuZGxlcj4gY3JlYXRlKEpTQzo6SlNPYmplY3Qq
IGxpc3RlbmVyLCBKU0M6OkpTT2JqZWN0KiB3cmFwcGVyLCBib29sIGlzQXR0cmlidXRlLCBET01X
cmFwcGVyV29ybGQqIGlzb2xhdGVkV29ybGQpCi0gICAgewotICAgICAgICByZXR1cm4gYWRvcHRS
ZWYobmV3IEpTV29ya2VyQ29udGV4dEVycm9ySGFuZGxlcihsaXN0ZW5lciwgd3JhcHBlciwgaXNB
dHRyaWJ1dGUsIGlzb2xhdGVkV29ybGQpKTsKLSAgICB9Ci0KLSAgICB2aXJ0dWFsIH5KU1dvcmtl
ckNvbnRleHRFcnJvckhhbmRsZXIoKTsKLQotcHJpdmF0ZToKLSAgICBKU1dvcmtlckNvbnRleHRF
cnJvckhhbmRsZXIoSlNDOjpKU09iamVjdCogZnVuY3Rpb24sIEpTQzo6SlNPYmplY3QqIHdyYXBw
ZXIsIGJvb2wgaXNBdHRyaWJ1dGUsIERPTVdyYXBwZXJXb3JsZCogaXNvbGF0ZWRXb3JsZCk7Ci0g
ICAgdmlydHVhbCB2b2lkIGhhbmRsZUV2ZW50KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqLCBFdmVu
dCopOwotfTsKLQotLy8gQ3JlYXRlcyBhIEpTIEV2ZW50TGlzdGVuZXIgZm9yICJvbmVycm9yIiBl
dmVudCBoYW5kbGVyIGluIHdvcmtlciBjb250ZXh0LiBJdCBoYXMgY3VzdG9tIGltcGxlbWVudGF0
aW9uIGJlY2F1c2UKLS8vIHVubGlrZSBvdGhlciBldmVudCBsaXN0ZW5lcnMgaXQgYWNjZXB0cyB0
aHJlZSBwYXJhbWV0ZXJzLgotaW5saW5lIFBhc3NSZWZQdHI8SlNXb3JrZXJDb250ZXh0RXJyb3JI
YW5kbGVyPiBjcmVhdGVKU1dvcmtlckNvbnRleHRFcnJvckhhbmRsZXIoSlNDOjpFeGVjU3RhdGUq
IGV4ZWMsIEpTQzo6SlNWYWx1ZSBsaXN0ZW5lciwgSlNDOjpKU09iamVjdCogd3JhcHBlcikKLXsK
LSAgICBpZiAoIWxpc3RlbmVyLmlzT2JqZWN0KCkpCi0gICAgICAgIHJldHVybiAwOwotCi0gICAg
cmV0dXJuIEpTV29ya2VyQ29udGV4dEVycm9ySGFuZGxlcjo6Y3JlYXRlKGFzT2JqZWN0KGxpc3Rl
bmVyKSwgd3JhcHBlciwgdHJ1ZSwgY3VycmVudFdvcmxkKGV4ZWMpKTsKLX0KLQotfSAvLyBuYW1l
c3BhY2UgV2ViQ29yZQotCi0jZW5kaWYgLy8gSlNXb3JrZXJDb250ZXh0RXJyb3JIYW5kbGVyX2gK
ZGlmZiAtLWdpdCBhL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG0g
Yi9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtCmluZGV4IGNmZjUx
ZTkuLmFiZWYwNGUgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2Vu
ZXJhdG9ySlMucG0KKysrIGIvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JK
Uy5wbQpAQCAtMTcyMSw5ICsxNzIxLDkgQEAgc3ViIEdlbmVyYXRlSW1wbGVtZW50YXRpb24KICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgSlNE
T01HbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCA9IGNhc3RlZFRoaXMtPmdsb2JhbE9iamVjdCgp
O1xuIik7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgICRpbXBsQ2xhc3NOYW1lKiBpbXAgPSBz
dGF0aWNfY2FzdDwkaW1wbENsYXNzTmFtZSo+KHN0YXRpY19jYXN0PCRjbGFzc05hbWUqPih0aGlz
T2JqZWN0KS0+aW1wbCgpKTtcbiIpOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICgk
aW50ZXJmYWNlTmFtZSBlcSAiV29ya2VyQ29udGV4dCIgYW5kICRuYW1lIGVxICJvbmVycm9yIikg
ewotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkaW1wbEluY2x1ZGVzeyJKU1dvcmtl
ckNvbnRleHRFcnJvckhhbmRsZXIuaCJ9ID0gMTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgaW1wLT5zZXQkaW1wbFNldHRlckZ1bmN0aW9u
TmFtZShjcmVhdGVKU1dvcmtlckNvbnRleHRFcnJvckhhbmRsZXIoZXhlYywgdmFsdWUsIHRoaXNP
YmplY3QpKTtcbiIpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICgoKCRpbnRlcmZh
Y2VOYW1lIGVxICJET01XaW5kb3ciKSBvciAoJGludGVyZmFjZU5hbWUgZXEgIldvcmtlckNvbnRl
eHQiKSkgYW5kICRuYW1lIGVxICJvbmVycm9yIikgeworICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAkaW1wbEluY2x1ZGVzeyJKU0Vycm9ySGFuZGxlci5oIn0gPSAxOworICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICBpbXAtPnNldCRp
bXBsU2V0dGVyRnVuY3Rpb25OYW1lKGNyZWF0ZUpTRXJyb3JIYW5kbGVyKGV4ZWMsIHZhbHVlLCB0
aGlzT2JqZWN0KSk7XG4iKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2Ugewog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgR2VuZXJh
dGVBdHRyaWJ1dGVFdmVudExpc3RlbmVyQ2FsbCgkY2xhc3NOYW1lLCAkaW1wbFNldHRlckZ1bmN0
aW9uTmFtZSwgJHdpbmRvd0V2ZW50TGlzdGVuZXIpKTsKICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICB9CmRpZmYgLS1naXQgYS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRv
clY4LnBtIGIvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JWOC5wbQppbmRl
eCBmNTBlNzRhLi5jMDZmZTE3IDEwMDY0NAotLS0gYS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMv
Q29kZUdlbmVyYXRvclY4LnBtCisrKyBiL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2Vu
ZXJhdG9yVjgucG0KQEAgLTEwMDEsNiArMTAwMSwxMCBAQCBFTkQKICAgICAgICAgICAgICAgICAk
aW1wbEluY2x1ZGVzeyJWOEV2ZW50TGlzdGVuZXJMaXN0LmgifSA9IDE7CiAgICAgICAgICAgICAg
ICAgJGltcGxJbmNsdWRlc3siVjhXb3JrZXJDb250ZXh0RXJyb3JIYW5kbGVyLmgifSA9IDE7CiAg
ICAgICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnREZWNscywgIiAgICBpbXAtPnNldCRpbXBs
U2V0dGVyRnVuY3Rpb25OYW1lKFY4RXZlbnRMaXN0ZW5lckxpc3Q6OmZpbmRPckNyZWF0ZVdyYXBw
ZXI8VjhXb3JrZXJDb250ZXh0RXJyb3JIYW5kbGVyPih2YWx1ZSwgdHJ1ZSkiKTsKKyAgICAgICAg
ICAgIH0gZWxzaWYgKCRpbnRlcmZhY2VOYW1lIGVxICJET01XaW5kb3ciIGFuZCAkYXR0cmlidXRl
LT5zaWduYXR1cmUtPm5hbWUgZXEgIm9uZXJyb3IiKSB7CisgICAgICAgICAgICAgICAgJGltcGxJ
bmNsdWRlc3siVjhFdmVudExpc3RlbmVyTGlzdC5oIn0gPSAxOworICAgICAgICAgICAgICAgICRp
bXBsSW5jbHVkZXN7IlY4V2luZG93RXJyb3JIYW5kbGVyLmgifSA9IDE7CisgICAgICAgICAgICAg
ICAgcHVzaChAaW1wbENvbnRlbnREZWNscywgIiAgICBpbXAtPnNldCRpbXBsU2V0dGVyRnVuY3Rp
b25OYW1lKFY4RXZlbnRMaXN0ZW5lckxpc3Q6OmZpbmRPckNyZWF0ZVdyYXBwZXI8VjhXaW5kb3dF
cnJvckhhbmRsZXI+KHZhbHVlLCB0cnVlKSIpOwogICAgICAgICAgICAgfSBlbHNlIHsKICAgICAg
ICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudERlY2xzLCAiICAgIGltcC0+c2V0JGltcGxTZXR0
ZXJGdW5jdGlvbk5hbWUoVjhET01XcmFwcGVyOjpnZXRFdmVudExpc3RlbmVyKHZhbHVlLCB0cnVl
LCBMaXN0ZW5lckZpbmRPckNyZWF0ZSkiKTsKICAgICAgICAgICAgIH0KZGlmZiAtLWdpdCBhL1dl
YkNvcmUvYmluZGluZ3MvdjgvVjhDb25zb2xlTWVzc2FnZS5jcHAgYi9XZWJDb3JlL2JpbmRpbmdz
L3Y4L1Y4Q29uc29sZU1lc3NhZ2UuY3BwCmluZGV4IGU2ODcxZmQuLmQ5MjgyMmMgMTAwNjQ0Ci0t
LSBhL1dlYkNvcmUvYmluZGluZ3MvdjgvVjhDb25zb2xlTWVzc2FnZS5jcHAKKysrIGIvV2ViQ29y
ZS9iaW5kaW5ncy92OC9WOENvbnNvbGVNZXNzYWdlLmNwcApAQCAtNTQsNyArNTQsMTQgQEAgVjhD
b25zb2xlTWVzc2FnZTo6VjhDb25zb2xlTWVzc2FnZShjb25zdCBTdHJpbmcmIHN0cmluZywgY29u
c3QgU3RyaW5nJiBzb3VyY2VJRCwKIAogdm9pZCBWOENvbnNvbGVNZXNzYWdlOjpkaXNwYXRjaE5v
dyhQYWdlKiBwYWdlKQogewotICAgIGRpc3BhdGNoTm93KHBhZ2UsIDApOworICAgIEFTU0VSVChw
YWdlKTsKKworICAgIC8vIFByb2Nlc3MgYW55IGRlbGF5ZWQgbWVzc2FnZXMgdG8gbWFrZSBzdXJl
IHRoYXQgbWVzc2FnZXMKKyAgICAvLyBhcHBlYXIgaW4gdGhlIHJpZ2h0IG9yZGVyIGluIHRoZSBj
b25zb2xlLgorICAgIHByb2Nlc3NEZWxheWVkKCk7CisKKyAgICBDb25zb2xlKiBjb25zb2xlID0g
cGFnZS0+bWFpbkZyYW1lKCktPmRvbVdpbmRvdygpLT5jb25zb2xlKCk7CisgICAgY29uc29sZS0+
YWRkTWVzc2FnZShKU01lc3NhZ2VTb3VyY2UsIExvZ01lc3NhZ2VUeXBlLCBFcnJvck1lc3NhZ2VM
ZXZlbCwgbV9zdHJpbmcsIG1fbGluZU51bWJlciwgbV9zb3VyY2VJRCk7CiB9CiAKIHZvaWQgVjhD
b25zb2xlTWVzc2FnZTo6ZGlzcGF0Y2hMYXRlcigpCkBAIC0xMDUsOCArMTEyLDggQEAgdm9pZCBW
OENvbnNvbGVNZXNzYWdlOjpoYW5kbGVyKHY4OjpIYW5kbGU8djg6Ok1lc3NhZ2U+IG1lc3NhZ2Us
IHY4OjpIYW5kbGU8djg6OlYKICAgICBGcmFtZSogZnJhbWUgPSBWOFByb3h5OjpyZXRyaWV2ZUZy
YW1lRm9yRW50ZXJlZENvbnRleHQoKTsKICAgICBpZiAoIWZyYW1lKQogICAgICAgICByZXR1cm47
Ci0gICAgUGFnZSogcGFnZSA9IGZyYW1lLT5wYWdlKCk7Ci0gICAgaWYgKCFwYWdlKQorICAgIERv
Y3VtZW50KiBkb2N1bWVudCA9IGZyYW1lLT5kb2N1bWVudCgpOworICAgIGlmICghZG9jdW1lbnQp
CiAgICAgICAgIHJldHVybjsKIAogICAgIHY4OjpIYW5kbGU8djg6OlN0cmluZz4gZXJyb3JNZXNz
YWdlU3RyaW5nID0gbWVzc2FnZS0+R2V0KCk7CkBAIC0xMjIsMjEgKzEyOSw3IEBAIHZvaWQgVjhD
b25zb2xlTWVzc2FnZTo6aGFuZGxlcih2ODo6SGFuZGxlPHY4OjpNZXNzYWdlPiBtZXNzYWdlLCB2
ODo6SGFuZGxlPHY4OjpWCiAgICAgdjg6OkhhbmRsZTx2ODo6VmFsdWU+IHJlc291cmNlTmFtZSA9
IG1lc3NhZ2UtPkdldFNjcmlwdFJlc291cmNlTmFtZSgpOwogICAgIGJvb2wgdXNlVVJMID0gcmVz
b3VyY2VOYW1lLklzRW1wdHkoKSB8fCAhcmVzb3VyY2VOYW1lLT5Jc1N0cmluZygpOwogICAgIFN0
cmluZyByZXNvdXJjZU5hbWVTdHJpbmcgPSB1c2VVUkwgPyBmcmFtZS0+ZG9jdW1lbnQoKS0+dXJs
KCkgOiB0b1dlYkNvcmVTdHJpbmcocmVzb3VyY2VOYW1lKTsKLSAgICBWOENvbnNvbGVNZXNzYWdl
IGNvbnNvbGVNZXNzYWdlKGVycm9yTWVzc2FnZSwgcmVzb3VyY2VOYW1lU3RyaW5nLCBtZXNzYWdl
LT5HZXRMaW5lTnVtYmVyKCkpOwotICAgIGNvbnNvbGVNZXNzYWdlLmRpc3BhdGNoTm93KHBhZ2Us
IGNhbGxTdGFjayk7Ci19Ci0KLXZvaWQgVjhDb25zb2xlTWVzc2FnZTo6ZGlzcGF0Y2hOb3coUGFn
ZSogcGFnZSwgUGFzc1JlZlB0cjxTY3JpcHRDYWxsU3RhY2s+IGNhbGxTdGFjaykKLXsKLSAgICBB
U1NFUlQocGFnZSk7Ci0KLSAgICAvLyBQcm9jZXNzIGFueSBkZWxheWVkIG1lc3NhZ2VzIHRvIG1h
a2Ugc3VyZSB0aGF0IG1lc3NhZ2VzCi0gICAgLy8gYXBwZWFyIGluIHRoZSByaWdodCBvcmRlciBp
biB0aGUgY29uc29sZS4KLSAgICBwcm9jZXNzRGVsYXllZCgpOwotCi0gICAgQ29uc29sZSogY29u
c29sZSA9IHBhZ2UtPm1haW5GcmFtZSgpLT5kb21XaW5kb3coKS0+Y29uc29sZSgpOwotICAgIE1l
c3NhZ2VUeXBlIG1lc3NhZ2VUeXBlID0gY2FsbFN0YWNrID8gVW5jYXVnaHRFeGNlcHRpb25NZXNz
YWdlVHlwZSA6IExvZ01lc3NhZ2VUeXBlOwotICAgIGNvbnNvbGUtPmFkZE1lc3NhZ2UoSlNNZXNz
YWdlU291cmNlLCBtZXNzYWdlVHlwZSwgRXJyb3JNZXNzYWdlTGV2ZWwsIG1fc3RyaW5nLCBtX2xp
bmVOdW1iZXIsIG1fc291cmNlSUQsIGNhbGxTdGFjayk7CisgICAgZG9jdW1lbnQtPnJlcG9ydEV4
Y2VwdGlvbihlcnJvck1lc3NhZ2UsIG1lc3NhZ2UtPkdldExpbmVOdW1iZXIoKSwgcmVzb3VyY2VO
YW1lU3RyaW5nLCBjYWxsU3RhY2spOwogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYg
LS1naXQgYS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1Y4Q29uc29sZU1lc3NhZ2UuaCBiL1dlYkNvcmUv
YmluZGluZ3MvdjgvVjhDb25zb2xlTWVzc2FnZS5oCmluZGV4IDk3ZGUyNGYuLjYxODNmYzYgMTAw
NjQ0Ci0tLSBhL1dlYkNvcmUvYmluZGluZ3MvdjgvVjhDb25zb2xlTWVzc2FnZS5oCisrKyBiL1dl
YkNvcmUvYmluZGluZ3MvdjgvVjhDb25zb2xlTWVzc2FnZS5oCkBAIC04Miw4ICs4Miw2IEBAIG5h
bWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgY29uc3QgU3RyaW5nIG1fc291cmNlSUQ7CiAgICAg
ICAgIGNvbnN0IHVuc2lnbmVkIG1fbGluZU51bWJlcjsKIAotICAgICAgICB2b2lkIGRpc3BhdGNo
Tm93KFBhZ2UqLCBQYXNzUmVmUHRyPFNjcmlwdENhbGxTdGFjaz4pOwotCiAgICAgICAgIC8vIEFs
bCBkZWxheWVkIG1lc3NhZ2VzIGFyZSBzdG9yZWQgaW4gdGhpcyB2ZWN0b3IuIElmIHRoZSB2ZWN0
b3IKICAgICAgICAgLy8gaXMgMCwgdGhlcmUgYXJlIG5vIGRlbGF5ZWQgbWVzc2FnZXMuCiAgICAg
ICAgIHN0YXRpYyBWZWN0b3I8VjhDb25zb2xlTWVzc2FnZT4qIG1fZGVsYXllZE1lc3NhZ2VzOwpk
aWZmIC0tZ2l0IGEvV2ViQ29yZS9iaW5kaW5ncy92OC9WOEV2ZW50TGlzdGVuZXIuaCBiL1dlYkNv
cmUvYmluZGluZ3MvdjgvVjhFdmVudExpc3RlbmVyLmgKaW5kZXggZmI2YzBiYy4uYmNmNzIxMyAx
MDA2NDQKLS0tIGEvV2ViQ29yZS9iaW5kaW5ncy92OC9WOEV2ZW50TGlzdGVuZXIuaAorKysgYi9X
ZWJDb3JlL2JpbmRpbmdzL3Y4L1Y4RXZlbnRMaXN0ZW5lci5oCkBAIC01NCw4ICs1NCw3IEBAIG5h
bWVzcGFjZSBXZWJDb3JlIHsKIAogICAgICAgICB2ODo6TG9jYWw8djg6OkZ1bmN0aW9uPiBnZXRM
aXN0ZW5lckZ1bmN0aW9uKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqKTsKIAotICAgIHByaXZhdGU6
Ci0gICAgICB2aXJ0dWFsIHY4OjpMb2NhbDx2ODo6VmFsdWU+IGNhbGxMaXN0ZW5lckZ1bmN0aW9u
KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqLCB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4ganNFdmVudCwg
RXZlbnQqKTsKKyAgICAgICAgdmlydHVhbCB2ODo6TG9jYWw8djg6OlZhbHVlPiBjYWxsTGlzdGVu
ZXJGdW5jdGlvbihTY3JpcHRFeGVjdXRpb25Db250ZXh0Kiwgdjg6OkhhbmRsZTx2ODo6VmFsdWU+
IGpzRXZlbnQsIEV2ZW50Kik7CiAgICAgIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlm
ZiAtLWdpdCBhL1dlYkNvcmUvYmluZGluZ3MvdjgvVjhXaW5kb3dFcnJvckhhbmRsZXIuY3BwIGIv
V2ViQ29yZS9iaW5kaW5ncy92OC9WOFdpbmRvd0Vycm9ySGFuZGxlci5jcHAKbmV3IGZpbGUgbW9k
ZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uNDIwM2FkNQotLS0gL2Rldi9udWxsCisrKyBiL1dlYkNv
cmUvYmluZGluZ3MvdjgvVjhXaW5kb3dFcnJvckhhbmRsZXIuY3BwCkBAIC0wLDAgKzEsNjQgQEAK
Ky8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKKyAqIG1ldDoKKyAqCisgKiAg
ICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAorICogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgorICogICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQorICogY29weXJpZ2h0IG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgorICogaW4gdGhl
IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQor
ICogZGlzdHJpYnV0aW9uLgorICogICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5j
LiBub3IgdGhlIG5hbWVzIG9mIGl0cworICogY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVu
ZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KKyAqIHRoaXMgc29mdHdhcmUg
d2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisgKgorICogVEhJUyBT
T0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJV
VE9SUworICogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJ
TkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgorICogQSBQQVJUSUNVTEFSIFBVUlBP
U0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKKyAqIE9X
TkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLAorICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFH
RVMgKElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VC
U1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCisgKiBEQVRBLCBPUiBQUk9G
SVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkK
KyAqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFC
SUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFS
SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisj
aW5jbHVkZSAiY29uZmlnLmgiCisKKyNpbmNsdWRlICJWOFdpbmRvd0Vycm9ySGFuZGxlci5oIgor
CisjaW5jbHVkZSAiRXJyb3JFdmVudC5oIgorI2luY2x1ZGUgIlY4QmluZGluZy5oIgorCituYW1l
c3BhY2UgV2ViQ29yZSB7CisKK1Y4V2luZG93RXJyb3JIYW5kbGVyOjpWOFdpbmRvd0Vycm9ySGFu
ZGxlcih2ODo6TG9jYWw8djg6Ok9iamVjdD4gbGlzdGVuZXIsIGJvb2wgaXNJbmxpbmUsIGNvbnN0
IFdvcmxkQ29udGV4dEhhbmRsZSYgd29ybGRDb250ZXh0KQorICAgIDogVjhFdmVudExpc3RlbmVy
KGxpc3RlbmVyLCBpc0lubGluZSwgd29ybGRDb250ZXh0KQoreworfQorCit2ODo6TG9jYWw8djg6
OlZhbHVlPiBWOFdpbmRvd0Vycm9ySGFuZGxlcjo6Y2FsbExpc3RlbmVyRnVuY3Rpb24oU2NyaXB0
RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCwgdjg6OkhhbmRsZTx2ODo6VmFsdWU+IGpzRXZlbnQs
IEV2ZW50KiBldmVudCkKK3sKKyAgICBpZiAoIWV2ZW50LT5pc0Vycm9yRXZlbnQoKSkKKyAgICAg
ICAgcmV0dXJuIFY4RXZlbnRMaXN0ZW5lcjo6Y2FsbExpc3RlbmVyRnVuY3Rpb24oY29udGV4dCwg
anNFdmVudCwgZXZlbnQpOworICAgIAorICAgIEVycm9yRXZlbnQqIGVycm9yRXZlbnQgPSBzdGF0
aWNfY2FzdDxFcnJvckV2ZW50Kj4oZXZlbnQpOworICAgIHY4OjpMb2NhbDx2ODo6T2JqZWN0PiBs
aXN0ZW5lciA9IGdldExpc3RlbmVyT2JqZWN0KGNvbnRleHQpOworICAgIHY4OjpMb2NhbDx2ODo6
VmFsdWU+IHJldHVyblZhbHVlOworICAgIGlmICghbGlzdGVuZXIuSXNFbXB0eSgpICYmIGxpc3Rl
bmVyLT5Jc0Z1bmN0aW9uKCkpIHsKKyAgICAgICAgdjg6OkxvY2FsPHY4OjpGdW5jdGlvbj4gY2Fs
bEZ1bmN0aW9uID0gdjg6OkxvY2FsPHY4OjpGdW5jdGlvbj46OkNhc3QobGlzdGVuZXIpOworICAg
ICAgICB2ODo6TG9jYWw8djg6Ok9iamVjdD4gdGhpc1ZhbHVlID0gdjg6OkNvbnRleHQ6OkdldEN1
cnJlbnQoKS0+R2xvYmFsKCk7CisgICAgICAgIHY4OjpIYW5kbGU8djg6OlZhbHVlPiBwYXJhbWV0
ZXJzWzNdID0geyB2OFN0cmluZyhlcnJvckV2ZW50LT5tZXNzYWdlKCkpLCB2OFN0cmluZyhlcnJv
ckV2ZW50LT5maWxlbmFtZSgpKSwgdjg6OkludGVnZXI6Ok5ldyhlcnJvckV2ZW50LT5saW5lbm8o
KSkgfTsKKyAgICAgICAgcmV0dXJuVmFsdWUgPSBjYWxsRnVuY3Rpb24tPkNhbGwodGhpc1ZhbHVl
LCAzLCBwYXJhbWV0ZXJzKTsKKyAgICAgICAgaWYgKCFyZXR1cm5WYWx1ZS5Jc0VtcHR5KCkgJiYg
cmV0dXJuVmFsdWUtPklzQm9vbGVhbigpICYmICFyZXR1cm5WYWx1ZS0+Qm9vbGVhblZhbHVlKCkp
CisgICAgICAgICAgICBldmVudC0+cHJldmVudERlZmF1bHQoKTsKKyAgICB9CisgICAgcmV0dXJu
IHJldHVyblZhbHVlOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9X
ZWJDb3JlL2JpbmRpbmdzL3Y4L1Y4V2luZG93RXJyb3JIYW5kbGVyLmggYi9XZWJDb3JlL2JpbmRp
bmdzL3Y4L1Y4V2luZG93RXJyb3JIYW5kbGVyLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMC4uMTY3Y2EwZAotLS0gL2Rldi9udWxsCisrKyBiL1dlYkNvcmUvYmluZGluZ3Mvdjgv
VjhXaW5kb3dFcnJvckhhbmRsZXIuaApAQCAtMCwwICsxLDU1IEBACisvKgorICogQ29weXJpZ2h0
IChDKSAyMDEwIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMgYXJlCisgKiBtZXQ6CisgKgorICogICAgICogUmVkaXN0cmlidXRp
b25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ci4KKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVj
ZSB0aGUgYWJvdmUKKyAqIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKKyAqIGluIHRoZSBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKKyAqIGRpc3RyaWJ1dGlvbi4K
KyAqICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBv
ZiBpdHMKKyAqIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUg
cHJvZHVjdHMgZGVyaXZlZCBmcm9tCisgKiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMg
cHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKKyAqICJBUyBJUyIg
QU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
CisgKiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IKKyAqIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVE
LiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCisgKiBPV05FUiBPUiBDT05UUklCVVRP
UlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKKyAqIFNQ
RUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJV
VCBOT1QKKyAqIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1Ig
U0VSVklDRVM7IExPU1MgT0YgVVNFLAorICogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1Mg
SU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisgKiBUSEVPUlkgT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisg
KiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBWOFdpbmRvd0Vy
cm9ySGFuZGxlcl9oCisjZGVmaW5lIFY4V2luZG93RXJyb3JIYW5kbGVyX2gKKworI2luY2x1ZGUg
IlY4Q3VzdG9tRXZlbnRMaXN0ZW5lci5oIgorI2luY2x1ZGUgPHY4Lmg+CisjaW5jbHVkZSA8d3Rm
L1Bhc3NSZWZQdHIuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBWOFdpbmRvd0Vy
cm9ySGFuZGxlciA6IHB1YmxpYyBWOEV2ZW50TGlzdGVuZXIgeworcHVibGljOgorICAgIHN0YXRp
YyBQYXNzUmVmUHRyPFY4V2luZG93RXJyb3JIYW5kbGVyPiBjcmVhdGUodjg6OkxvY2FsPHY4OjpP
YmplY3Q+IGxpc3RlbmVyLCBib29sIGlzSW5saW5lLCBjb25zdCBXb3JsZENvbnRleHRIYW5kbGUm
IHdvcmxkQ29udGV4dCkKKyAgICB7CisgICAgICAgIHJldHVybiBhZG9wdFJlZihuZXcgVjhXaW5k
b3dFcnJvckhhbmRsZXIobGlzdGVuZXIsIGlzSW5saW5lLCB3b3JsZENvbnRleHQpKTsKKyAgICB9
CisKK3ByaXZhdGU6CisgICAgVjhXaW5kb3dFcnJvckhhbmRsZXIodjg6OkxvY2FsPHY4OjpPYmpl
Y3Q+IGxpc3RlbmVyLCBib29sIGlzSW5saW5lLCBjb25zdCBXb3JsZENvbnRleHRIYW5kbGUmIHdv
cmxkQ29udGV4dCk7CisKKyAgICB2aXJ0dWFsIHY4OjpMb2NhbDx2ODo6VmFsdWU+IGNhbGxMaXN0
ZW5lckZ1bmN0aW9uKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqLCB2ODo6SGFuZGxlPHY4OjpWYWx1
ZT4ganNFdmVudCwgRXZlbnQqKTsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2Vu
ZGlmIC8vIFY4V2luZG93RXJyb3JIYW5kbGVyX2gKZGlmZiAtLWdpdCBhL1dlYkNvcmUvYmluZGlu
Z3MvdjgvV29ya2VyQ29udGV4dEV4ZWN1dGlvblByb3h5LmNwcCBiL1dlYkNvcmUvYmluZGluZ3Mv
djgvV29ya2VyQ29udGV4dEV4ZWN1dGlvblByb3h5LmNwcAppbmRleCBjZWZiMmZhLi5lYjI1ODE0
IDEwMDY0NAotLS0gYS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1dvcmtlckNvbnRleHRFeGVjdXRpb25Q
cm94eS5jcHAKKysrIGIvV2ViQ29yZS9iaW5kaW5ncy92OC9Xb3JrZXJDb250ZXh0RXhlY3V0aW9u
UHJveHkuY3BwCkBAIC0zNyw2ICszNyw3IEBACiAKICNpbmNsdWRlICJEZWRpY2F0ZWRXb3JrZXJD
b250ZXh0LmgiCiAjaW5jbHVkZSAiRXZlbnQuaCIKKyNpbmNsdWRlICJTY3JpcHRDYWxsU3RhY2su
aCIKICNpbmNsdWRlICJTaGFyZWRXb3JrZXIuaCIKICNpbmNsdWRlICJTaGFyZWRXb3JrZXJDb250
ZXh0LmgiCiAjaW5jbHVkZSAiVjhCaW5kaW5nLmgiCkBAIC03Miw3ICs3Myw3IEBAIHN0YXRpYyB2
b2lkIHY4TWVzc2FnZUhhbmRsZXIodjg6OkhhbmRsZTx2ODo6TWVzc2FnZT4gbWVzc2FnZSwgdjg6
OkhhbmRsZTx2ODo6VmFsCiAgICAgICAgIFN0cmluZyBlcnJvck1lc3NhZ2UgPSB0b1dlYkNvcmVT
dHJpbmcobWVzc2FnZS0+R2V0KCkpOwogICAgICAgICBpbnQgbGluZU51bWJlciA9IG1lc3NhZ2Ut
PkdldExpbmVOdW1iZXIoKTsKICAgICAgICAgU3RyaW5nIHNvdXJjZVVSTCA9IHRvV2ViQ29yZVN0
cmluZyhtZXNzYWdlLT5HZXRTY3JpcHRSZXNvdXJjZU5hbWUoKSk7Ci0gICAgICAgIGNvbnRleHQt
PnJlcG9ydEV4Y2VwdGlvbihlcnJvck1lc3NhZ2UsIGxpbmVOdW1iZXIsIHNvdXJjZVVSTCk7Cisg
ICAgICAgIGNvbnRleHQtPnJlcG9ydEV4Y2VwdGlvbihlcnJvck1lc3NhZ2UsIGxpbmVOdW1iZXIs
IHNvdXJjZVVSTCwgMCk7CiAgICAgfQogCiAgICAgaXNSZXBvcnRpbmdFeGNlcHRpb24gPSBmYWxz
ZTsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvYmluZGluZ3MvdjgvV29ya2VyU2NyaXB0Q29udHJvbGxl
ci5jcHAgYi9XZWJDb3JlL2JpbmRpbmdzL3Y4L1dvcmtlclNjcmlwdENvbnRyb2xsZXIuY3BwCmlu
ZGV4IGI1NmQzODMuLjQyZTAyZTYgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvYmluZGluZ3MvdjgvV29y
a2VyU2NyaXB0Q29udHJvbGxlci5jcHAKKysrIGIvV2ViQ29yZS9iaW5kaW5ncy92OC9Xb3JrZXJT
Y3JpcHRDb250cm9sbGVyLmNwcApAQCAtMzQsMTEgKzM0LDEwIEBACiAKICNpbmNsdWRlICJXb3Jr
ZXJTY3JpcHRDb250cm9sbGVyLmgiCiAKLSNpbmNsdWRlIDx2OC5oPgotCisjaW5jbHVkZSAiRE9N
VGltZXIuaCIKKyNpbmNsdWRlICJTY3JpcHRDYWxsU3RhY2suaCIKICNpbmNsdWRlICJTY3JpcHRT
b3VyY2VDb2RlLmgiCiAjaW5jbHVkZSAiU2NyaXB0VmFsdWUuaCIKLSNpbmNsdWRlICJET01UaW1l
ci5oIgogI2luY2x1ZGUgIlY4RE9NTWFwLmgiCiAjaW5jbHVkZSAiVjhQcm94eS5oIgogI2luY2x1
ZGUgIlY4V29ya2VyQ29udGV4dC5oIgpAQCAtNDYsNiArNDUsNyBAQAogI2luY2x1ZGUgIldvcmtl
ckNvbnRleHRFeGVjdXRpb25Qcm94eS5oIgogI2luY2x1ZGUgIldvcmtlck9iamVjdFByb3h5Lmgi
CiAjaW5jbHVkZSAiV29ya2VyVGhyZWFkLmgiCisjaW5jbHVkZSA8djguaD4KIAogbmFtZXNwYWNl
IFdlYkNvcmUgewogCkBAIC04MCw3ICs4MCw3IEBAIFNjcmlwdFZhbHVlIFdvcmtlclNjcmlwdENv
bnRyb2xsZXI6OmV2YWx1YXRlKGNvbnN0IFNjcmlwdFNvdXJjZUNvZGUmIHNvdXJjZUNvZGUsCiAg
ICAgICAgIGlmIChleGNlcHRpb24pCiAgICAgICAgICAgICAqZXhjZXB0aW9uID0gc3RhdGUuZXhj
ZXB0aW9uOwogICAgICAgICBlbHNlCi0gICAgICAgICAgICBtX3dvcmtlckNvbnRleHQtPnJlcG9y
dEV4Y2VwdGlvbihzdGF0ZS5lcnJvck1lc3NhZ2UsIHN0YXRlLmxpbmVOdW1iZXIsIHN0YXRlLnNv
dXJjZVVSTCk7CisgICAgICAgICAgICBtX3dvcmtlckNvbnRleHQtPnJlcG9ydEV4Y2VwdGlvbihz
dGF0ZS5lcnJvck1lc3NhZ2UsIHN0YXRlLmxpbmVOdW1iZXIsIHN0YXRlLnNvdXJjZVVSTCwgMCk7
CiAgICAgfQogCiAgICAgcmV0dXJuIHJlc3VsdDsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvZG9tL0Rv
Y3VtZW50LmNwcCBiL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcAppbmRleCBhZTYwNGU5Li5mNzdi
MzkyIDEwMDY0NAotLS0gYS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKKysrIGIvV2ViQ29yZS9k
b20vRG9jdW1lbnQuY3BwCkBAIC0xMTksNiArMTE5LDcgQEAKICNpbmNsdWRlICJSZW5kZXJUZXh0
Q29udHJvbC5oIgogI2luY2x1ZGUgIlJlbmRlclZpZXcuaCIKICNpbmNsdWRlICJSZW5kZXJXaWRn
ZXQuaCIKKyNpbmNsdWRlICJTY3JpcHRDYWxsU3RhY2suaCIKICNpbmNsdWRlICJTY3JpcHRDb250
cm9sbGVyLmgiCiAjaW5jbHVkZSAiU2NyaXB0RWxlbWVudC5oIgogI2luY2x1ZGUgIlNjcmlwdEV2
ZW50TGlzdGVuZXIuaCIKQEAgLTIyNzIsNiArMjI3MywxNyBAQCBLVVJMIERvY3VtZW50Ojp2aXJ0
dWFsQ29tcGxldGVVUkwoY29uc3QgU3RyaW5nJiB1cmwpIGNvbnN0CiAgICAgcmV0dXJuIGNvbXBs
ZXRlVVJMKHVybCk7CiB9CiAKK0V2ZW50VGFyZ2V0KiBEb2N1bWVudDo6ZXJyb3JFdmVudFRhcmdl
dCgpCit7CisgICAgcmV0dXJuIGRvbVdpbmRvdygpOworfQorCit2b2lkIERvY3VtZW50Ojpsb2dF
eGNlcHRpb25Ub0NvbnNvbGUoY29uc3QgU3RyaW5nJiBlcnJvck1lc3NhZ2UsIGludCBsaW5lTnVt
YmVyLCBjb25zdCBTdHJpbmcmIHNvdXJjZVVSTCwgUGFzc1JlZlB0cjxTY3JpcHRDYWxsU3RhY2s+
IGNhbGxTdGFjaykKK3sKKyAgICBNZXNzYWdlVHlwZSBtZXNzYWdlVHlwZSA9IGNhbGxTdGFjayA/
IFVuY2F1Z2h0RXhjZXB0aW9uTWVzc2FnZVR5cGUgOiBMb2dNZXNzYWdlVHlwZTsKKyAgICBhZGRN
ZXNzYWdlKEpTTWVzc2FnZVNvdXJjZSwgbWVzc2FnZVR5cGUsIEVycm9yTWVzc2FnZUxldmVsLCBl
cnJvck1lc3NhZ2UsIGxpbmVOdW1iZXIsIHNvdXJjZVVSTCwgY2FsbFN0YWNrKTsKK30KKwogdm9p
ZCBEb2N1bWVudDo6c2V0VVJMKGNvbnN0IEtVUkwmIHVybCkKIHsKICAgICBjb25zdCBLVVJMJiBu
ZXdVUkwgPSB1cmwuaXNFbXB0eSgpID8gYmxhbmtVUkwoKSA6IHVybDsKQEAgLTQ2NDgsMTUgKzQ2
NjAsMTAgQEAgdm9pZCBEb2N1bWVudDo6cGFyc2VETlNQcmVmZXRjaENvbnRyb2xIZWFkZXIoY29u
c3QgU3RyaW5nJiBkbnNQcmVmZXRjaENvbnRyb2wpCiAgICAgbV9oYXZlRXhwbGljaXRseURpc2Fi
bGVkRE5TUHJlZmV0Y2ggPSB0cnVlOwogfQogCi12b2lkIERvY3VtZW50OjpyZXBvcnRFeGNlcHRp
b24oY29uc3QgU3RyaW5nJiBlcnJvck1lc3NhZ2UsIGludCBsaW5lTnVtYmVyLCBjb25zdCBTdHJp
bmcmIHNvdXJjZVVSTCkKLXsKLSAgICBhZGRNZXNzYWdlKEpTTWVzc2FnZVNvdXJjZSwgTG9nTWVz
c2FnZVR5cGUsIEVycm9yTWVzc2FnZUxldmVsLCBlcnJvck1lc3NhZ2UsIGxpbmVOdW1iZXIsIHNv
dXJjZVVSTCk7Ci19Ci0KLXZvaWQgRG9jdW1lbnQ6OmFkZE1lc3NhZ2UoTWVzc2FnZVNvdXJjZSBz
b3VyY2UsIE1lc3NhZ2VUeXBlIHR5cGUsIE1lc3NhZ2VMZXZlbCBsZXZlbCwgY29uc3QgU3RyaW5n
JiBtZXNzYWdlLCB1bnNpZ25lZCBsaW5lTnVtYmVyLCBjb25zdCBTdHJpbmcmIHNvdXJjZVVSTCkK
K3ZvaWQgRG9jdW1lbnQ6OmFkZE1lc3NhZ2UoTWVzc2FnZVNvdXJjZSBzb3VyY2UsIE1lc3NhZ2VU
eXBlIHR5cGUsIE1lc3NhZ2VMZXZlbCBsZXZlbCwgY29uc3QgU3RyaW5nJiBtZXNzYWdlLCB1bnNp
Z25lZCBsaW5lTnVtYmVyLCBjb25zdCBTdHJpbmcmIHNvdXJjZVVSTCwgUGFzc1JlZlB0cjxTY3Jp
cHRDYWxsU3RhY2s+IGNhbGxTdGFjaykKIHsKICAgICBpZiAoRE9NV2luZG93KiB3aW5kb3cgPSBk
b21XaW5kb3coKSkKLSAgICAgICAgd2luZG93LT5jb25zb2xlKCktPmFkZE1lc3NhZ2Uoc291cmNl
LCB0eXBlLCBsZXZlbCwgbWVzc2FnZSwgbGluZU51bWJlciwgc291cmNlVVJMKTsKKyAgICAgICAg
d2luZG93LT5jb25zb2xlKCktPmFkZE1lc3NhZ2Uoc291cmNlLCB0eXBlLCBsZXZlbCwgbWVzc2Fn
ZSwgbGluZU51bWJlciwgc291cmNlVVJMLCBjYWxsU3RhY2spOwogfQogCiBzdHJ1Y3QgUGVyZm9y
bVRhc2tDb250ZXh0IDogTm9uY29weWFibGUgewpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9kb20vRG9j
dW1lbnQuaCBiL1dlYkNvcmUvZG9tL0RvY3VtZW50LmgKaW5kZXggMzkwNzJkZC4uOWM5ZDc4OCAx
MDA2NDQKLS0tIGEvV2ViQ29yZS9kb20vRG9jdW1lbnQuaAorKysgYi9XZWJDb3JlL2RvbS9Eb2N1
bWVudC5oCkBAIC05MzEsOCArOTMxLDcgQEAgcHVibGljOgogICAgIGJvb2wgaXNETlNQcmVmZXRj
aEVuYWJsZWQoKSBjb25zdCB7IHJldHVybiBtX2lzRE5TUHJlZmV0Y2hFbmFibGVkOyB9CiAgICAg
dm9pZCBwYXJzZUROU1ByZWZldGNoQ29udHJvbEhlYWRlcihjb25zdCBTdHJpbmcmKTsKIAotICAg
IHZpcnR1YWwgdm9pZCByZXBvcnRFeGNlcHRpb24oY29uc3QgU3RyaW5nJiBlcnJvck1lc3NhZ2Us
IGludCBsaW5lTnVtYmVyLCBjb25zdCBTdHJpbmcmIHNvdXJjZVVSTCk7Ci0gICAgdmlydHVhbCB2
b2lkIGFkZE1lc3NhZ2UoTWVzc2FnZVNvdXJjZSwgTWVzc2FnZVR5cGUsIE1lc3NhZ2VMZXZlbCwg
Y29uc3QgU3RyaW5nJiBtZXNzYWdlLCB1bnNpZ25lZCBsaW5lTnVtYmVyLCBjb25zdCBTdHJpbmcm
IHNvdXJjZVVSTCk7CisgICAgdmlydHVhbCB2b2lkIGFkZE1lc3NhZ2UoTWVzc2FnZVNvdXJjZSwg
TWVzc2FnZVR5cGUsIE1lc3NhZ2VMZXZlbCwgY29uc3QgU3RyaW5nJiBtZXNzYWdlLCB1bnNpZ25l
ZCBsaW5lTnVtYmVyLCBjb25zdCBTdHJpbmcmIHNvdXJjZVVSTCwgUGFzc1JlZlB0cjxTY3JpcHRD
YWxsU3RhY2s+KTsKICAgICB2aXJ0dWFsIHZvaWQgcG9zdFRhc2soUGFzc093blB0cjxUYXNrPik7
IC8vIEV4ZWN1dGVzIHRoZSB0YXNrIG9uIGNvbnRleHQncyB0aHJlYWQgYXN5bmNocm9ub3VzbHku
CiAKICNpZiBVU0UoSlNDKQpAQCAtMTA2Niw2ICsxMDY1LDkgQEAgcHVibGljOgogCiAgICAgYm9v
bCBtYXlDYXVzZUZsYXNoT2ZVbnN0eWxlZENvbnRlbnQoKSBjb25zdDsKIAorICAgIHZpcnR1YWwg
RXZlbnRUYXJnZXQqIGVycm9yRXZlbnRUYXJnZXQoKTsKKyAgICB2aXJ0dWFsIHZvaWQgbG9nRXhj
ZXB0aW9uVG9Db25zb2xlKGNvbnN0IFN0cmluZyYgZXJyb3JNZXNzYWdlLCBpbnQgbGluZU51bWJl
ciwgY29uc3QgU3RyaW5nJiBzb3VyY2VVUkwsIFBhc3NSZWZQdHI8U2NyaXB0Q2FsbFN0YWNrPik7
CisKICAgICB2b2lkIGluaXRETlNQcmVmZXRjaCgpOwogCiBwcm90ZWN0ZWQ6CmRpZmYgLS1naXQg
YS9XZWJDb3JlL2RvbS9FcnJvckV2ZW50LmNwcCBiL1dlYkNvcmUvZG9tL0Vycm9yRXZlbnQuY3Bw
CmluZGV4IDI2MjdkMDEuLmM1OTg4MzYgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvZG9tL0Vycm9yRXZl
bnQuY3BwCisrKyBiL1dlYkNvcmUvZG9tL0Vycm9yRXZlbnQuY3BwCkBAIC0zMCw4ICszMCw2IEBA
CiAKICNpbmNsdWRlICJjb25maWcuaCIKIAotI2lmIEVOQUJMRShXT1JLRVJTKQotCiAjaW5jbHVk
ZSAiRXJyb3JFdmVudC5oIgogCiAjaW5jbHVkZSAiRXZlbnROYW1lcy5oIgpAQCAtNzIsNSArNzAs
MyBAQCBib29sIEVycm9yRXZlbnQ6OmlzRXJyb3JFdmVudCgpIGNvbnN0CiB9CiAKIH0gLy8gbmFt
ZXNwYWNlIFdlYkNvcmUKLQotI2VuZGlmIC8vIEVOQUJMRShXT1JLRVJTKQpkaWZmIC0tZ2l0IGEv
V2ViQ29yZS9kb20vRXJyb3JFdmVudC5oIGIvV2ViQ29yZS9kb20vRXJyb3JFdmVudC5oCmluZGV4
IGY4MTUzMGEuLjcxOWNhMmQgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvZG9tL0Vycm9yRXZlbnQuaAor
KysgYi9XZWJDb3JlL2RvbS9FcnJvckV2ZW50LmgKQEAgLTMxLDggKzMxLDYgQEAKICNpZm5kZWYg
RXJyb3JFdmVudF9oCiAjZGVmaW5lIEVycm9yRXZlbnRfaAogCi0jaWYgRU5BQkxFKFdPUktFUlMp
Ci0KICNpbmNsdWRlICJFdmVudC5oIgogI2luY2x1ZGUgIlBsYXRmb3JtU3RyaW5nLmgiCiAKQEAg
LTY5LDYgKzY3LDQgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiB9IC8vIG5hbWVzcGFjZSBXZWJD
b3JlCiAKLSNlbmRpZiAvLyBFTkFCTEUoV09SS0VSUykKLQogI2VuZGlmIC8vIEVycm9yRXZlbnRf
aApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9kb20vRXZlbnQuY3BwIGIvV2ViQ29yZS9kb20vRXZlbnQu
Y3BwCmluZGV4IGE5NDlmZDUuLmZjNmQyODIgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvZG9tL0V2ZW50
LmNwcAorKysgYi9XZWJDb3JlL2RvbS9FdmVudC5jcHAKQEAgLTIwMywxMiArMjAzLDEwIEBAIGJv
b2wgRXZlbnQ6OmlzSURCU3VjY2Vzc0V2ZW50KCkgY29uc3QKIH0KICNlbmRpZgogCi0jaWYgRU5B
QkxFKFdPUktFUlMpCiBib29sIEV2ZW50Ojppc0Vycm9yRXZlbnQoKSBjb25zdAogewogICAgIHJl
dHVybiBmYWxzZTsKIH0KLSNlbmRpZgogCiAjaWYgRU5BQkxFKFRPVUNIX0VWRU5UUykKIGJvb2wg
RXZlbnQ6OmlzVG91Y2hFdmVudCgpIGNvbnN0CmRpZmYgLS1naXQgYS9XZWJDb3JlL2RvbS9FdmVu
dC5oIGIvV2ViQ29yZS9kb20vRXZlbnQuaAppbmRleCBmMDVkMzZjLi45YWVmMjMzIDEwMDY0NAot
LS0gYS9XZWJDb3JlL2RvbS9FdmVudC5oCisrKyBiL1dlYkNvcmUvZG9tL0V2ZW50LmgKQEAgLTEz
Miw5ICsxMzIsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAjaWYgRU5BQkxFKFdFQl9BVURJTykK
ICAgICAgICAgdmlydHVhbCBib29sIGlzQXVkaW9Qcm9jZXNzaW5nRXZlbnQoKSBjb25zdDsKICNl
bmRpZgotI2lmIEVOQUJMRShXT1JLRVJTKQogICAgICAgICB2aXJ0dWFsIGJvb2wgaXNFcnJvckV2
ZW50KCkgY29uc3Q7Ci0jZW5kaWYKICNpZiBFTkFCTEUoVE9VQ0hfRVZFTlRTKQogICAgICAgICB2
aXJ0dWFsIGJvb2wgaXNUb3VjaEV2ZW50KCkgY29uc3Q7CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1dl
YkNvcmUvZG9tL1NjcmlwdEV4ZWN1dGlvbkNvbnRleHQuY3BwIGIvV2ViQ29yZS9kb20vU2NyaXB0
RXhlY3V0aW9uQ29udGV4dC5jcHAKaW5kZXggYmZkYTE3Yi4uZjQ5OGJlMCAxMDA2NDQKLS0tIGEv
V2ViQ29yZS9kb20vU2NyaXB0RXhlY3V0aW9uQ29udGV4dC5jcHAKKysrIGIvV2ViQ29yZS9kb20v
U2NyaXB0RXhlY3V0aW9uQ29udGV4dC5jcHAKQEAgLTMzLDE0ICszMywxOSBAQAogI2luY2x1ZGUg
IkRhdGFiYXNlLmgiCiAjaW5jbHVkZSAiRGF0YWJhc2VUYXNrLmgiCiAjaW5jbHVkZSAiRGF0YWJh
c2VUaHJlYWQuaCIKKyNpbmNsdWRlICJFcnJvckV2ZW50LmgiCisjaW5jbHVkZSAiRXZlbnRMaXN0
ZW5lci5oIgorI2luY2x1ZGUgIkV2ZW50VGFyZ2V0LmgiCiAjaW5jbHVkZSAiRmlsZVRocmVhZC5o
IgogI2luY2x1ZGUgIk1lc3NhZ2VQb3J0LmgiCisjaW5jbHVkZSAiU2NyaXB0Q2FsbFN0YWNrLmgi
CiAjaW5jbHVkZSAiU2VjdXJpdHlPcmlnaW4uaCIKICNpbmNsdWRlICJUaHJlYWRhYmxlQmxvYlJl
Z2lzdHJ5LmgiCiAjaW5jbHVkZSAiV29ya2VyQ29udGV4dC5oIgogI2luY2x1ZGUgIldvcmtlclRo
cmVhZC5oIgogI2luY2x1ZGUgPHd0Zi9NYWluVGhyZWFkLmg+CiAjaW5jbHVkZSA8d3RmL1Bhc3NS
ZWZQdHIuaD4KKyNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CiAKICNpZiBVU0UoSlNDKQogI2luY2x1
ZGUgIkpTRE9NV2luZG93LmgiCkBAIC02MSw5ICs2NiwyNSBAQCBwdWJsaWM6CiAgICAgfQogfTsK
IAorY2xhc3MgU2NyaXB0RXhlY3V0aW9uQ29udGV4dDo6UGVuZGluZ0V4Y2VwdGlvbiA6IHB1Ymxp
YyBOb25jb3B5YWJsZSB7CitwdWJsaWM6CisgICAgUGVuZGluZ0V4Y2VwdGlvbihjb25zdCBTdHJp
bmcmIGVycm9yTWVzc2FnZSwgaW50IGxpbmVOdW1iZXIsIGNvbnN0IFN0cmluZyYgc291cmNlVVJM
LCBQYXNzUmVmUHRyPFNjcmlwdENhbGxTdGFjaz4gY2FsbFN0YWNrKQorICAgICAgICA6IG1fZXJy
b3JNZXNzYWdlKGVycm9yTWVzc2FnZSkKKyAgICAgICAgLCBtX2xpbmVOdW1iZXIobGluZU51bWJl
cikKKyAgICAgICAgLCBtX3NvdXJjZVVSTChzb3VyY2VVUkwpCisgICAgICAgICwgbV9jYWxsU3Rh
Y2soY2FsbFN0YWNrKQorICAgIHsKKyAgICB9CisgICAgU3RyaW5nIG1fZXJyb3JNZXNzYWdlOwor
ICAgIGludCBtX2xpbmVOdW1iZXI7CisgICAgU3RyaW5nIG1fc291cmNlVVJMOworICAgIFJlZlB0
cjxTY3JpcHRDYWxsU3RhY2s+IG1fY2FsbFN0YWNrOworfTsKKwogU2NyaXB0RXhlY3V0aW9uQ29u
dGV4dDo6U2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpCisgICAgOiBtX2luRGlzcGF0Y2hFcnJvckV2
ZW50KGZhbHNlKQogI2lmIEVOQUJMRShEQVRBQkFTRSkKLSAgICA6IG1faGFzT3BlbkRhdGFiYXNl
cyhmYWxzZSkKKyAgICAsIG1faGFzT3BlbkRhdGFiYXNlcyhmYWxzZSkKICNlbmRpZgogewogfQpA
QCAtMjQzLDYgKzI2NCw0MyBAQCB2b2lkIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQ6OnNldFNlY3Vy
aXR5T3JpZ2luKFBhc3NSZWZQdHI8U2VjdXJpdHlPcmlnaW4+IHNlY3VyaQogICAgIG1fc2VjdXJp
dHlPcmlnaW4gPSBzZWN1cml0eU9yaWdpbjsKIH0KIAordm9pZCBTY3JpcHRFeGVjdXRpb25Db250
ZXh0OjpyZXBvcnRFeGNlcHRpb24oY29uc3QgU3RyaW5nJiBlcnJvck1lc3NhZ2UsIGludCBsaW5l
TnVtYmVyLCBjb25zdCBTdHJpbmcmIHNvdXJjZVVSTCwgUGFzc1JlZlB0cjxTY3JpcHRDYWxsU3Rh
Y2s+IGNhbGxTdGFjaykKK3sKKyAgICBpZiAobV9pbkRpc3BhdGNoRXJyb3JFdmVudCkgeworICAg
ICAgICBpZiAoIW1fcGVuZGluZ0V4Y2VwdGlvbnMpCisgICAgICAgICAgICBtX3BlbmRpbmdFeGNl
cHRpb25zID0gYWRvcHRQdHIobmV3IFZlY3RvcjxPd25QdHI8UGVuZGluZ0V4Y2VwdGlvbj4gPigp
KTsKKyAgICAgICAgbV9wZW5kaW5nRXhjZXB0aW9ucy0+YXBwZW5kKGFkb3B0UHRyKG5ldyBQZW5k
aW5nRXhjZXB0aW9uKGVycm9yTWVzc2FnZSwgbGluZU51bWJlciwgc291cmNlVVJMLCBjYWxsU3Rh
Y2spKSk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICAvLyBGaXJzdCByZXBvcnQgdGhl
IG9yaWdpbmFsIGV4Y2VwdGlvbiBhbmQgb25seSB0aGVuIGFsbCB0aGUgbmVzdGVkIG9uZXMuCisg
ICAgaWYgKCFkaXNwYXRjaEVycm9yRXZlbnQoZXJyb3JNZXNzYWdlLCBsaW5lTnVtYmVyLCBzb3Vy
Y2VVUkwpKQorICAgICAgICBsb2dFeGNlcHRpb25Ub0NvbnNvbGUoZXJyb3JNZXNzYWdlLCBsaW5l
TnVtYmVyLCBzb3VyY2VVUkwsIGNhbGxTdGFjayk7CisKKyAgICBpZiAoIW1fcGVuZGluZ0V4Y2Vw
dGlvbnMpCisgICAgICAgIHJldHVybjsKKworICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgbV9w
ZW5kaW5nRXhjZXB0aW9ucy0+c2l6ZSgpOyBpKyspIHsKKyAgICAgICAgUGVuZGluZ0V4Y2VwdGlv
biogZSA9IG1fcGVuZGluZ0V4Y2VwdGlvbnMtPmF0KGkpLmdldCgpOworICAgICAgICBsb2dFeGNl
cHRpb25Ub0NvbnNvbGUoZS0+bV9lcnJvck1lc3NhZ2UsIGUtPm1fbGluZU51bWJlciwgZS0+bV9z
b3VyY2VVUkwsIGUtPm1fY2FsbFN0YWNrKTsKKyAgICB9CisgICAgbV9wZW5kaW5nRXhjZXB0aW9u
cy5jbGVhcigpOworfQorCitib29sIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQ6OmRpc3BhdGNoRXJy
b3JFdmVudChjb25zdCBTdHJpbmcmIGVycm9yTWVzc2FnZSwgaW50IGxpbmVOdW1iZXIsIGNvbnN0
IFN0cmluZyYgc291cmNlVVJMKQoreworICAgIEV2ZW50VGFyZ2V0KiB0YXJnZXQgPSBlcnJvckV2
ZW50VGFyZ2V0KCk7CisgICAgaWYgKCF0YXJnZXQpCisgICAgICAgIHJldHVybiBmYWxzZTsKKwor
ICAgIEFTU0VSVCghbV9pbkRpc3BhdGNoRXJyb3JFdmVudCk7CisgICAgbV9pbkRpc3BhdGNoRXJy
b3JFdmVudCA9IHRydWU7CisgICAgUmVmUHRyPEVycm9yRXZlbnQ+IGVycm9yRXZlbnQgPSBFcnJv
ckV2ZW50OjpjcmVhdGUoZXJyb3JNZXNzYWdlLCBzb3VyY2VVUkwsIGxpbmVOdW1iZXIpOworICAg
IHRhcmdldC0+ZGlzcGF0Y2hFdmVudChlcnJvckV2ZW50KTsKKyAgICBtX2luRGlzcGF0Y2hFcnJv
ckV2ZW50ID0gZmFsc2U7CisgICAgcmV0dXJuIGVycm9yRXZlbnQtPmRlZmF1bHRQcmV2ZW50ZWQo
KTsKK30KKwogdm9pZCBTY3JpcHRFeGVjdXRpb25Db250ZXh0OjphZGRUaW1lb3V0KGludCB0aW1l
b3V0SWQsIERPTVRpbWVyKiB0aW1lcikKIHsKICAgICBBU1NFUlQoIW1fdGltZW91dHMuY29udGFp
bnModGltZW91dElkKSk7CmRpZmYgLS1naXQgYS9XZWJDb3JlL2RvbS9TY3JpcHRFeGVjdXRpb25D
b250ZXh0LmggYi9XZWJDb3JlL2RvbS9TY3JpcHRFeGVjdXRpb25Db250ZXh0LmgKaW5kZXggMTJl
Yjc3Ni4uMDE5YzVkNiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9kb20vU2NyaXB0RXhlY3V0aW9uQ29u
dGV4dC5oCisrKyBiL1dlYkNvcmUvZG9tL1NjcmlwdEV4ZWN1dGlvbkNvbnRleHQuaApAQCAtMzMs
NiArMzMsNyBAQAogI2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+CiAjaW5jbHVkZSA8d3RmL0hhc2hN
YXAuaD4KICNpbmNsdWRlIDx3dGYvSGFzaFNldC5oPgorI2luY2x1ZGUgPHd0Zi9Pd25QdHIuaD4K
ICNpbmNsdWRlIDx3dGYvUGFzc093blB0ci5oPgogI2luY2x1ZGUgPHd0Zi9QYXNzUmVmUHRyLmg+
CiAjaW5jbHVkZSA8d3RmL1JlZlB0ci5oPgpAQCAtNTIsMTEgKzUzLDE0IEBAIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKICAgICBjbGFzcyBEYXRhYmFzZVRocmVhZDsKICNlbmRpZgogICAgIGNsYXNzIERP
TVRpbWVyOworICAgIGNsYXNzIEV2ZW50TGlzdGVuZXI7CisgICAgY2xhc3MgRXZlbnRUYXJnZXQ7
CiAjaWYgRU5BQkxFKEJMT0IpIHx8IEVOQUJMRShGSUxFX1NZU1RFTSkKICAgICBjbGFzcyBGaWxl
VGhyZWFkOwogI2VuZGlmCiAgICAgY2xhc3MgTWVzc2FnZVBvcnQ7CiAgICAgY2xhc3MgU2VjdXJp
dHlPcmlnaW47CisgICAgY2xhc3MgU2NyaXB0Q2FsbFN0YWNrOwogI2lmIEVOQUJMRShJTlNQRUNU
T1IpCiAgICAgY2xhc3MgSW5zcGVjdG9yQ29udHJvbGxlcjsKICNlbmRpZgpAQCAtOTEsOCArOTUs
OCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIHZpcnR1YWwgSW5zcGVjdG9yQ29udHJv
bGxlciogaW5zcGVjdG9yQ29udHJvbGxlcigpIGNvbnN0IHsgcmV0dXJuIDA7IH0KICNlbmRpZgog
Ci0gICAgICAgIHZpcnR1YWwgdm9pZCByZXBvcnRFeGNlcHRpb24oY29uc3QgU3RyaW5nJiBlcnJv
ck1lc3NhZ2UsIGludCBsaW5lTnVtYmVyLCBjb25zdCBTdHJpbmcmIHNvdXJjZVVSTCkgPSAwOwot
ICAgICAgICB2aXJ0dWFsIHZvaWQgYWRkTWVzc2FnZShNZXNzYWdlU291cmNlLCBNZXNzYWdlVHlw
ZSwgTWVzc2FnZUxldmVsLCBjb25zdCBTdHJpbmcmIG1lc3NhZ2UsIHVuc2lnbmVkIGxpbmVOdW1i
ZXIsIGNvbnN0IFN0cmluZyYgc291cmNlVVJMKSA9IDA7CisgICAgICAgIHZvaWQgcmVwb3J0RXhj
ZXB0aW9uKGNvbnN0IFN0cmluZyYgZXJyb3JNZXNzYWdlLCBpbnQgbGluZU51bWJlciwgY29uc3Qg
U3RyaW5nJiBzb3VyY2VVUkwsIFBhc3NSZWZQdHI8U2NyaXB0Q2FsbFN0YWNrPik7CisgICAgICAg
IHZpcnR1YWwgdm9pZCBhZGRNZXNzYWdlKE1lc3NhZ2VTb3VyY2UsIE1lc3NhZ2VUeXBlLCBNZXNz
YWdlTGV2ZWwsIGNvbnN0IFN0cmluZyYgbWVzc2FnZSwgdW5zaWduZWQgbGluZU51bWJlciwgY29u
c3QgU3RyaW5nJiBzb3VyY2VVUkwsIFBhc3NSZWZQdHI8U2NyaXB0Q2FsbFN0YWNrPikgPSAwOwog
CiAgICAgICAgIC8vIEFjdGl2ZSBvYmplY3RzIGFyZSBub3QgZ2FyYmFnZSBjb2xsZWN0ZWQgZXZl
biBpZiBpbmFjY2Vzc2libGUsIGUuZy4gYmVjYXVzZSB0aGVpciBhY3Rpdml0eSBtYXkgcmVzdWx0
IGluIGNhbGxiYWNrcyBiZWluZyBpbnZva2VkLgogICAgICAgICBib29sIGNhblN1c3BlbmRBY3Rp
dmVET01PYmplY3RzKCk7CkBAIC0xNTQsNiArMTU4LDEwIEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsK
ICAgICAgICAgdmlydHVhbCBjb25zdCBLVVJMJiB2aXJ0dWFsVVJMKCkgY29uc3QgPSAwOwogICAg
ICAgICB2aXJ0dWFsIEtVUkwgdmlydHVhbENvbXBsZXRlVVJMKGNvbnN0IFN0cmluZyYpIGNvbnN0
ID0gMDsKIAorICAgICAgICB2aXJ0dWFsIEV2ZW50VGFyZ2V0KiBlcnJvckV2ZW50VGFyZ2V0KCkg
PSAwOworICAgICAgICB2aXJ0dWFsIHZvaWQgbG9nRXhjZXB0aW9uVG9Db25zb2xlKGNvbnN0IFN0
cmluZyYgZXJyb3JNZXNzYWdlLCBpbnQgbGluZU51bWJlciwgY29uc3QgU3RyaW5nJiBzb3VyY2VV
UkwsIFBhc3NSZWZQdHI8U2NyaXB0Q2FsbFN0YWNrPikgPSAwOworICAgICAgICBib29sIGRpc3Bh
dGNoRXJyb3JFdmVudChjb25zdCBTdHJpbmcmIGVycm9yTWVzc2FnZSwgaW50IGxpbmVOdW1iZXIs
IGNvbnN0IFN0cmluZyYgc291cmNlVVJMKTsKKwogICAgICAgICB2b2lkIGNsb3NlTWVzc2FnZVBv
cnRzKCk7CiAKICAgICAgICAgUmVmUHRyPFNlY3VyaXR5T3JpZ2luPiBtX3NlY3VyaXR5T3JpZ2lu
OwpAQCAtMTcxLDYgKzE3OSwxMCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIHZpcnR1
YWwgdm9pZCByZWZTY3JpcHRFeGVjdXRpb25Db250ZXh0KCkgPSAwOwogICAgICAgICB2aXJ0dWFs
IHZvaWQgZGVyZWZTY3JpcHRFeGVjdXRpb25Db250ZXh0KCkgPSAwOwogCisgICAgICAgIGJvb2wg
bV9pbkRpc3BhdGNoRXJyb3JFdmVudDsKKyAgICAgICAgY2xhc3MgUGVuZGluZ0V4Y2VwdGlvbjsK
KyAgICAgICAgT3duUHRyPFZlY3RvcjxPd25QdHI8UGVuZGluZ0V4Y2VwdGlvbj4gPiA+IG1fcGVu
ZGluZ0V4Y2VwdGlvbnM7CisKICNpZiBFTkFCTEUoREFUQUJBU0UpCiAgICAgICAgIFJlZlB0cjxE
YXRhYmFzZVRocmVhZD4gbV9kYXRhYmFzZVRocmVhZDsKICAgICAgICAgYm9vbCBtX2hhc09wZW5E
YXRhYmFzZXM7IC8vIFRoaXMgbmV2ZXIgY2hhbmdlcyBiYWNrIHRvIGZhbHNlLCBldmVuIGFmdGVy
IHRoZSBkYXRhYmFzZSB0aHJlYWQgaXMgY2xvc2VkLgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS93ZWJz
b2NrZXRzL1dlYlNvY2tldC5jcHAgYi9XZWJDb3JlL3dlYnNvY2tldHMvV2ViU29ja2V0LmNwcApp
bmRleCAzNThhNzQyLi5lMTVkMDc5IDEwMDY0NAotLS0gYS9XZWJDb3JlL3dlYnNvY2tldHMvV2Vi
U29ja2V0LmNwcAorKysgYi9XZWJDb3JlL3dlYnNvY2tldHMvV2ViU29ja2V0LmNwcApAQCAtNDEs
NiArNDEsNyBAQAogI2luY2x1ZGUgIkV2ZW50TmFtZXMuaCIKICNpbmNsdWRlICJMb2dnaW5nLmgi
CiAjaW5jbHVkZSAiTWVzc2FnZUV2ZW50LmgiCisjaW5jbHVkZSAiU2NyaXB0Q2FsbFN0YWNrLmgi
CiAjaW5jbHVkZSAiU2NyaXB0RXhlY3V0aW9uQ29udGV4dC5oIgogI2luY2x1ZGUgIlRocmVhZGFi
bGVXZWJTb2NrZXRDaGFubmVsLmgiCiAjaW5jbHVkZSAiV2ViU29ja2V0Q2hhbm5lbC5oIgpAQCAt
MTE2LDMyICsxMTcsMzIgQEAgdm9pZCBXZWJTb2NrZXQ6OmNvbm5lY3QoY29uc3QgS1VSTCYgdXJs
LCBjb25zdCBTdHJpbmcmIHByb3RvY29sLCBFeGNlcHRpb25Db2RlJgogICAgIG1fcHJvdG9jb2wg
PSBwcm90b2NvbDsKIAogICAgIGlmICghbV91cmwuaXNWYWxpZCgpKSB7Ci0gICAgICAgIHNjcmlw
dEV4ZWN1dGlvbkNvbnRleHQoKS0+YWRkTWVzc2FnZShKU01lc3NhZ2VTb3VyY2UsIExvZ01lc3Nh
Z2VUeXBlLCBFcnJvck1lc3NhZ2VMZXZlbCwgIkludmFsaWQgdXJsIGZvciBXZWJTb2NrZXQgIiAr
IHVybC5zdHJpbmcoKSwgMCwgc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpLT5zZWN1cml0eU9yaWdp
bigpLT50b1N0cmluZygpKTsKKyAgICAgICAgc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpLT5hZGRN
ZXNzYWdlKEpTTWVzc2FnZVNvdXJjZSwgTG9nTWVzc2FnZVR5cGUsIEVycm9yTWVzc2FnZUxldmVs
LCAiSW52YWxpZCB1cmwgZm9yIFdlYlNvY2tldCAiICsgdXJsLnN0cmluZygpLCAwLCBzY3JpcHRF
eGVjdXRpb25Db250ZXh0KCktPnNlY3VyaXR5T3JpZ2luKCktPnRvU3RyaW5nKCksIDApOwogICAg
ICAgICBtX3N0YXRlID0gQ0xPU0VEOwogICAgICAgICBlYyA9IFNZTlRBWF9FUlI7CiAgICAgICAg
IHJldHVybjsKICAgICB9CiAKICAgICBpZiAoIW1fdXJsLnByb3RvY29sSXMoIndzIikgJiYgIW1f
dXJsLnByb3RvY29sSXMoIndzcyIpKSB7Ci0gICAgICAgIHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQo
KS0+YWRkTWVzc2FnZShKU01lc3NhZ2VTb3VyY2UsIExvZ01lc3NhZ2VUeXBlLCBFcnJvck1lc3Nh
Z2VMZXZlbCwgIldyb25nIHVybCBzY2hlbWUgZm9yIFdlYlNvY2tldCAiICsgdXJsLnN0cmluZygp
LCAwLCBzY3JpcHRFeGVjdXRpb25Db250ZXh0KCktPnNlY3VyaXR5T3JpZ2luKCktPnRvU3RyaW5n
KCkpOworICAgICAgICBzY3JpcHRFeGVjdXRpb25Db250ZXh0KCktPmFkZE1lc3NhZ2UoSlNNZXNz
YWdlU291cmNlLCBMb2dNZXNzYWdlVHlwZSwgRXJyb3JNZXNzYWdlTGV2ZWwsICJXcm9uZyB1cmwg
c2NoZW1lIGZvciBXZWJTb2NrZXQgIiArIHVybC5zdHJpbmcoKSwgMCwgc2NyaXB0RXhlY3V0aW9u
Q29udGV4dCgpLT5zZWN1cml0eU9yaWdpbigpLT50b1N0cmluZygpLCAwKTsKICAgICAgICAgbV9z
dGF0ZSA9IENMT1NFRDsKICAgICAgICAgZWMgPSBTWU5UQVhfRVJSOwogICAgICAgICByZXR1cm47
CiAgICAgfQogICAgIGlmIChtX3VybC5oYXNGcmFnbWVudElkZW50aWZpZXIoKSkgewotICAgICAg
ICBzY3JpcHRFeGVjdXRpb25Db250ZXh0KCktPmFkZE1lc3NhZ2UoSlNNZXNzYWdlU291cmNlLCBM
b2dNZXNzYWdlVHlwZSwgRXJyb3JNZXNzYWdlTGV2ZWwsICJVUkwgaGFzIGZyYWdtZW50IGNvbXBv
bmVudCAiICsgdXJsLnN0cmluZygpLCAwLCBzY3JpcHRFeGVjdXRpb25Db250ZXh0KCktPnNlY3Vy
aXR5T3JpZ2luKCktPnRvU3RyaW5nKCkpOworICAgICAgICBzY3JpcHRFeGVjdXRpb25Db250ZXh0
KCktPmFkZE1lc3NhZ2UoSlNNZXNzYWdlU291cmNlLCBMb2dNZXNzYWdlVHlwZSwgRXJyb3JNZXNz
YWdlTGV2ZWwsICJVUkwgaGFzIGZyYWdtZW50IGNvbXBvbmVudCAiICsgdXJsLnN0cmluZygpLCAw
LCBzY3JpcHRFeGVjdXRpb25Db250ZXh0KCktPnNlY3VyaXR5T3JpZ2luKCktPnRvU3RyaW5nKCks
IDApOwogICAgICAgICBtX3N0YXRlID0gQ0xPU0VEOwogICAgICAgICBlYyA9IFNZTlRBWF9FUlI7
CiAgICAgICAgIHJldHVybjsKICAgICB9CiAgICAgaWYgKCFpc1ZhbGlkUHJvdG9jb2xTdHJpbmco
bV9wcm90b2NvbCkpIHsKLSAgICAgICAgc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpLT5hZGRNZXNz
YWdlKEpTTWVzc2FnZVNvdXJjZSwgTG9nTWVzc2FnZVR5cGUsIEVycm9yTWVzc2FnZUxldmVsLCAi
V3JvbmcgcHJvdG9jb2wgZm9yIFdlYlNvY2tldCAnIiArIGVuY29kZVByb3RvY29sU3RyaW5nKG1f
cHJvdG9jb2wpICsgIiciLCAwLCBzY3JpcHRFeGVjdXRpb25Db250ZXh0KCktPnNlY3VyaXR5T3Jp
Z2luKCktPnRvU3RyaW5nKCkpOworICAgICAgICBzY3JpcHRFeGVjdXRpb25Db250ZXh0KCktPmFk
ZE1lc3NhZ2UoSlNNZXNzYWdlU291cmNlLCBMb2dNZXNzYWdlVHlwZSwgRXJyb3JNZXNzYWdlTGV2
ZWwsICJXcm9uZyBwcm90b2NvbCBmb3IgV2ViU29ja2V0ICciICsgZW5jb2RlUHJvdG9jb2xTdHJp
bmcobV9wcm90b2NvbCkgKyAiJyIsIDAsIHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKS0+c2VjdXJp
dHlPcmlnaW4oKS0+dG9TdHJpbmcoKSwgMCk7CiAgICAgICAgIG1fc3RhdGUgPSBDTE9TRUQ7CiAg
ICAgICAgIGVjID0gU1lOVEFYX0VSUjsKICAgICAgICAgcmV0dXJuOwogICAgIH0KICAgICBpZiAo
IXBvcnRBbGxvd2VkKHVybCkpIHsKLSAgICAgICAgc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpLT5h
ZGRNZXNzYWdlKEpTTWVzc2FnZVNvdXJjZSwgTG9nTWVzc2FnZVR5cGUsIEVycm9yTWVzc2FnZUxl
dmVsLCBtYWtlU3RyaW5nKCJXZWJTb2NrZXQgcG9ydCAiLCBTdHJpbmc6Om51bWJlcih1cmwucG9y
dCgpKSwgIiBibG9ja2VkIiksIDAsIHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKS0+c2VjdXJpdHlP
cmlnaW4oKS0+dG9TdHJpbmcoKSk7CisgICAgICAgIHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKS0+
YWRkTWVzc2FnZShKU01lc3NhZ2VTb3VyY2UsIExvZ01lc3NhZ2VUeXBlLCBFcnJvck1lc3NhZ2VM
ZXZlbCwgbWFrZVN0cmluZygiV2ViU29ja2V0IHBvcnQgIiwgU3RyaW5nOjpudW1iZXIodXJsLnBv
cnQoKSksICIgYmxvY2tlZCIpLCAwLCBzY3JpcHRFeGVjdXRpb25Db250ZXh0KCktPnNlY3VyaXR5
T3JpZ2luKCktPnRvU3RyaW5nKCksIDApOwogICAgICAgICBtX3N0YXRlID0gQ0xPU0VEOwogICAg
ICAgICBlYyA9IFNFQ1VSSVRZX0VSUjsKICAgICAgICAgcmV0dXJuOwpkaWZmIC0tZ2l0IGEvV2Vi
Q29yZS93ZWJzb2NrZXRzL1dlYlNvY2tldENoYW5uZWwuY3BwIGIvV2ViQ29yZS93ZWJzb2NrZXRz
L1dlYlNvY2tldENoYW5uZWwuY3BwCmluZGV4IDA5ZmNkNmIuLmM0Y2IyZTIgMTAwNjQ0Ci0tLSBh
L1dlYkNvcmUvd2Vic29ja2V0cy9XZWJTb2NrZXRDaGFubmVsLmNwcAorKysgYi9XZWJDb3JlL3dl
YnNvY2tldHMvV2ViU29ja2V0Q2hhbm5lbC5jcHAKQEAgLTQxLDYgKzQxLDcgQEAKICNpbmNsdWRl
ICJQYWdlLmgiCiAjaW5jbHVkZSAiUGxhdGZvcm1TdHJpbmcuaCIKICNpbmNsdWRlICJQcm9ncmVz
c1RyYWNrZXIuaCIKKyNpbmNsdWRlICJTY3JpcHRDYWxsU3RhY2suaCIKICNpbmNsdWRlICJTY3Jp
cHRFeGVjdXRpb25Db250ZXh0LmgiCiAjaW5jbHVkZSAiU29ja2V0U3RyZWFtRXJyb3IuaCIKICNp
bmNsdWRlICJTb2NrZXRTdHJlYW1IYW5kbGUuaCIKQEAgLTE1NSw3ICsxNTYsNyBAQCB2b2lkIFdl
YlNvY2tldENoYW5uZWw6OmRpZE9wZW4oU29ja2V0U3RyZWFtSGFuZGxlKiBoYW5kbGUpCiAgICAg
ICAgIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6d2lsbFNlbmRXZWJTb2NrZXRIYW5kc2hha2VS
ZXF1ZXN0KG1fY29udGV4dCwgbV9pZGVudGlmaWVyLCBtX2hhbmRzaGFrZS5jbGllbnRIYW5kc2hh
a2VSZXF1ZXN0KCkpOwogICAgIENTdHJpbmcgaGFuZHNoYWtlTWVzc2FnZSA9IG1faGFuZHNoYWtl
LmNsaWVudEhhbmRzaGFrZU1lc3NhZ2UoKTsKICAgICBpZiAoIWhhbmRsZS0+c2VuZChoYW5kc2hh
a2VNZXNzYWdlLmRhdGEoKSwgaGFuZHNoYWtlTWVzc2FnZS5sZW5ndGgoKSkpIHsKLSAgICAgICAg
bV9jb250ZXh0LT5hZGRNZXNzYWdlKEpTTWVzc2FnZVNvdXJjZSwgTG9nTWVzc2FnZVR5cGUsIEVy
cm9yTWVzc2FnZUxldmVsLCAiRXJyb3Igc2VuZGluZyBoYW5kc2hha2UgbWVzc2FnZS4iLCAwLCBt
X2hhbmRzaGFrZS5jbGllbnRPcmlnaW4oKSk7CisgICAgICAgIG1fY29udGV4dC0+YWRkTWVzc2Fn
ZShKU01lc3NhZ2VTb3VyY2UsIExvZ01lc3NhZ2VUeXBlLCBFcnJvck1lc3NhZ2VMZXZlbCwgIkVy
cm9yIHNlbmRpbmcgaGFuZHNoYWtlIG1lc3NhZ2UuIiwgMCwgbV9oYW5kc2hha2UuY2xpZW50T3Jp
Z2luKCksIDApOwogICAgICAgICBoYW5kbGUtPmNsb3NlKCk7CiAgICAgfQogfQpAQCAtMjE4LDcg
KzIxOSw3IEBAIHZvaWQgV2ViU29ja2V0Q2hhbm5lbDo6ZGlkRmFpbChTb2NrZXRTdHJlYW1IYW5k
bGUqIGhhbmRsZSwgY29uc3QgU29ja2V0U3RyZWFtRXJyCiAgICAgICAgICAgICBtZXNzYWdlID0g
bWFrZVN0cmluZygiV2ViU29ja2V0IG5ldHdvcmsgZXJyb3I6IGVycm9yIGNvZGUgIiwgU3RyaW5n
OjpudW1iZXIoZXJyb3IuZXJyb3JDb2RlKCkpKTsKICAgICAgICAgZWxzZQogICAgICAgICAgICAg
bWVzc2FnZSA9IG1ha2VTdHJpbmcoIldlYlNvY2tldCBuZXR3b3JrIGVycm9yOiAiLCBlcnJvci5s
b2NhbGl6ZWREZXNjcmlwdGlvbigpKTsKLSAgICAgICAgbV9jb250ZXh0LT5hZGRNZXNzYWdlKE90
aGVyTWVzc2FnZVNvdXJjZSwgTmV0d29ya0Vycm9yTWVzc2FnZVR5cGUsIEVycm9yTWVzc2FnZUxl
dmVsLCBtZXNzYWdlLCAwLCBlcnJvci5mYWlsaW5nVVJMKCkpOworICAgICAgICBtX2NvbnRleHQt
PmFkZE1lc3NhZ2UoT3RoZXJNZXNzYWdlU291cmNlLCBOZXR3b3JrRXJyb3JNZXNzYWdlVHlwZSwg
RXJyb3JNZXNzYWdlTGV2ZWwsIG1lc3NhZ2UsIDAsIGVycm9yLmZhaWxpbmdVUkwoKSwgMCk7CiAg
ICAgfQogICAgIG1fc2hvdWxkRGlzY2FyZFJlY2VpdmVkRGF0YSA9IHRydWU7CiAgICAgaGFuZGxl
LT5jbG9zZSgpOwpAQCAtMjQ5LDcgKzI1MCw3IEBAIGJvb2wgV2ViU29ja2V0Q2hhbm5lbDo6YXBw
ZW5kVG9CdWZmZXIoY29uc3QgY2hhciogZGF0YSwgc2l6ZV90IGxlbikKICAgICAgICAgbV9idWZm
ZXJTaXplID0gbmV3QnVmZmVyU2l6ZTsKICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgfQotICAg
IG1fY29udGV4dC0+YWRkTWVzc2FnZShKU01lc3NhZ2VTb3VyY2UsIExvZ01lc3NhZ2VUeXBlLCBF
cnJvck1lc3NhZ2VMZXZlbCwgbWFrZVN0cmluZygiV2ViU29ja2V0IGZyYW1lIChhdCAiLCBTdHJp
bmc6Om51bWJlcihzdGF0aWNfY2FzdDx1bnNpZ25lZCBsb25nPihuZXdCdWZmZXJTaXplKSksICIg
Ynl0ZXMpIGlzIHRvbyBsb25nLiIpLCAwLCBtX2hhbmRzaGFrZS5jbGllbnRPcmlnaW4oKSk7Cisg
ICAgbV9jb250ZXh0LT5hZGRNZXNzYWdlKEpTTWVzc2FnZVNvdXJjZSwgTG9nTWVzc2FnZVR5cGUs
IEVycm9yTWVzc2FnZUxldmVsLCBtYWtlU3RyaW5nKCJXZWJTb2NrZXQgZnJhbWUgKGF0ICIsIFN0
cmluZzo6bnVtYmVyKHN0YXRpY19jYXN0PHVuc2lnbmVkIGxvbmc+KG5ld0J1ZmZlclNpemUpKSwg
IiBieXRlcykgaXMgdG9vIGxvbmcuIiksIDAsIG1faGFuZHNoYWtlLmNsaWVudE9yaWdpbigpLCAw
KTsKICAgICByZXR1cm4gZmFsc2U7CiB9CiAKZGlmZiAtLWdpdCBhL1dlYkNvcmUvd2Vic29ja2V0
cy9XZWJTb2NrZXRIYW5kc2hha2UuY3BwIGIvV2ViQ29yZS93ZWJzb2NrZXRzL1dlYlNvY2tldEhh
bmRzaGFrZS5jcHAKaW5kZXggNTA0OTA5OC4uZWQ5ODgzNCAxMDA2NDQKLS0tIGEvV2ViQ29yZS93
ZWJzb2NrZXRzL1dlYlNvY2tldEhhbmRzaGFrZS5jcHAKKysrIGIvV2ViQ29yZS93ZWJzb2NrZXRz
L1dlYlNvY2tldEhhbmRzaGFrZS5jcHAKQEAgLTQxLDYgKzQxLDcgQEAKICNpbmNsdWRlICJIVFRQ
SGVhZGVyTWFwLmgiCiAjaW5jbHVkZSAiS1VSTC5oIgogI2luY2x1ZGUgIkxvZ2dpbmcuaCIKKyNp
bmNsdWRlICJTY3JpcHRDYWxsU3RhY2suaCIKICNpbmNsdWRlICJTY3JpcHRFeGVjdXRpb25Db250
ZXh0LmgiCiAjaW5jbHVkZSAiU2VjdXJpdHlPcmlnaW4uaCIKIApAQCAtMzE5LDcgKzMyMCw3IEBA
IGludCBXZWJTb2NrZXRIYW5kc2hha2U6OnJlYWRTZXJ2ZXJIYW5kc2hha2UoY29uc3QgY2hhciog
aGVhZGVyLCBzaXplX3QgbGVuKQogICAgIG1fcmVzcG9uc2Uuc2V0U3RhdHVzVGV4dChzdGF0dXNU
ZXh0KTsKICAgICBpZiAoc3RhdHVzQ29kZSAhPSAxMDEpIHsKICAgICAgICAgbV9tb2RlID0gRmFp
bGVkOwotICAgICAgICBtX2NvbnRleHQtPmFkZE1lc3NhZ2UoSlNNZXNzYWdlU291cmNlLCBMb2dN
ZXNzYWdlVHlwZSwgRXJyb3JNZXNzYWdlTGV2ZWwsIG1ha2VTdHJpbmcoIlVuZXhwZWN0ZWQgcmVz
cG9uc2UgY29kZTogIiwgU3RyaW5nOjpudW1iZXIoc3RhdHVzQ29kZSkpLCAwLCBjbGllbnRPcmln
aW4oKSk7CisgICAgICAgIG1fY29udGV4dC0+YWRkTWVzc2FnZShKU01lc3NhZ2VTb3VyY2UsIExv
Z01lc3NhZ2VUeXBlLCBFcnJvck1lc3NhZ2VMZXZlbCwgbWFrZVN0cmluZygiVW5leHBlY3RlZCBy
ZXNwb25zZSBjb2RlOiAiLCBTdHJpbmc6Om51bWJlcihzdGF0dXNDb2RlKSksIDAsIGNsaWVudE9y
aWdpbigpLCAwKTsKICAgICAgICAgcmV0dXJuIGxlbjsKICAgICB9CiAgICAgbV9tb2RlID0gTm9y
bWFsOwpAQCAtNDQ5LDE5ICs0NTAsMTkgQEAgaW50IFdlYlNvY2tldEhhbmRzaGFrZTo6cmVhZFN0
YXR1c0xpbmUoY29uc3QgY2hhciogaGVhZGVyLCBzaXplX3QgaGVhZGVyTGVuZ3RoLAogCiAgICAg
Y29uc3QgY2hhciogZW5kID0gcCArIDE7CiAgICAgaWYgKGVuZCAtIGhlYWRlciA+IElOVF9NQVgp
IHsKLSAgICAgICAgbV9jb250ZXh0LT5hZGRNZXNzYWdlKEpTTWVzc2FnZVNvdXJjZSwgTG9nTWVz
c2FnZVR5cGUsIEVycm9yTWVzc2FnZUxldmVsLCAiU3RhdHVzIGxpbmUgaXMgdG9vIGxvbmc6ICIg
KyB0cmltQ29uc29sZU1lc3NhZ2UoaGVhZGVyLCBtYXhDb25zb2xlTWVzc2FnZVNpemUgKyAxKSwg
MCwgY2xpZW50T3JpZ2luKCkpOworICAgICAgICBtX2NvbnRleHQtPmFkZE1lc3NhZ2UoSlNNZXNz
YWdlU291cmNlLCBMb2dNZXNzYWdlVHlwZSwgRXJyb3JNZXNzYWdlTGV2ZWwsICJTdGF0dXMgbGlu
ZSBpcyB0b28gbG9uZzogIiArIHRyaW1Db25zb2xlTWVzc2FnZShoZWFkZXIsIG1heENvbnNvbGVN
ZXNzYWdlU2l6ZSArIDEpLCAwLCBjbGllbnRPcmlnaW4oKSwgMCk7CiAgICAgICAgIHJldHVybiBJ
TlRfTUFYOwogICAgIH0KICAgICBpbnQgbGluZUxlbmd0aCA9IGVuZCAtIGhlYWRlcjsKIAogICAg
IGlmICghc3BhY2UxIHx8ICFzcGFjZTIpIHsKLSAgICAgICAgbV9jb250ZXh0LT5hZGRNZXNzYWdl
KEpTTWVzc2FnZVNvdXJjZSwgTG9nTWVzc2FnZVR5cGUsIEVycm9yTWVzc2FnZUxldmVsLCAiTm8g
cmVzcG9uc2UgY29kZSBmb3VuZDogIiArIHRyaW1Db25zb2xlTWVzc2FnZShoZWFkZXIsIGxpbmVM
ZW5ndGggLSAxKSwgMCwgY2xpZW50T3JpZ2luKCkpOworICAgICAgICBtX2NvbnRleHQtPmFkZE1l
c3NhZ2UoSlNNZXNzYWdlU291cmNlLCBMb2dNZXNzYWdlVHlwZSwgRXJyb3JNZXNzYWdlTGV2ZWws
ICJObyByZXNwb25zZSBjb2RlIGZvdW5kOiAiICsgdHJpbUNvbnNvbGVNZXNzYWdlKGhlYWRlciwg
bGluZUxlbmd0aCAtIDEpLCAwLCBjbGllbnRPcmlnaW4oKSwgMCk7CiAgICAgICAgIHJldHVybiBs
aW5lTGVuZ3RoOwogICAgIH0KIAogICAgIC8vIFRoZSBsaW5lIG11c3QgZW5kIHdpdGggIlxyXG4i
LgogICAgIGlmICgqKGVuZCAtIDIpICE9ICdccicpIHsKLSAgICAgICAgbV9jb250ZXh0LT5hZGRN
ZXNzYWdlKEpTTWVzc2FnZVNvdXJjZSwgTG9nTWVzc2FnZVR5cGUsIEVycm9yTWVzc2FnZUxldmVs
LCAiU3RhdHVzIGxpbmUgZG9lcyBub3QgZW5kIHdpdGggQ1JMRiIsIDAsIGNsaWVudE9yaWdpbigp
KTsKKyAgICAgICAgbV9jb250ZXh0LT5hZGRNZXNzYWdlKEpTTWVzc2FnZVNvdXJjZSwgTG9nTWVz
c2FnZVR5cGUsIEVycm9yTWVzc2FnZUxldmVsLCAiU3RhdHVzIGxpbmUgZG9lcyBub3QgZW5kIHdp
dGggQ1JMRiIsIDAsIGNsaWVudE9yaWdpbigpLCAwKTsKICAgICAgICAgcmV0dXJuIGxpbmVMZW5n
dGg7CiAgICAgfQogCkBAIC00NzAsNyArNDcxLDcgQEAgaW50IFdlYlNvY2tldEhhbmRzaGFrZTo6
cmVhZFN0YXR1c0xpbmUoY29uc3QgY2hhciogaGVhZGVyLCBzaXplX3QgaGVhZGVyTGVuZ3RoLAog
ICAgICAgICByZXR1cm4gbGluZUxlbmd0aDsKICAgICBmb3IgKGludCBpID0gMDsgaSA8IDM7ICsr
aSkKICAgICAgICAgaWYgKHN0YXR1c0NvZGVTdHJpbmdbaV0gPCAnMCcgfHwgc3RhdHVzQ29kZVN0
cmluZ1tpXSA+ICc5JykgewotICAgICAgICAgICAgbV9jb250ZXh0LT5hZGRNZXNzYWdlKEpTTWVz
c2FnZVNvdXJjZSwgTG9nTWVzc2FnZVR5cGUsIEVycm9yTWVzc2FnZUxldmVsLCAiSW52YWxpZCBz
dGF0dXMgY29kZTogIiArIHN0YXR1c0NvZGVTdHJpbmcsIDAsIGNsaWVudE9yaWdpbigpKTsKKyAg
ICAgICAgICAgIG1fY29udGV4dC0+YWRkTWVzc2FnZShKU01lc3NhZ2VTb3VyY2UsIExvZ01lc3Nh
Z2VUeXBlLCBFcnJvck1lc3NhZ2VMZXZlbCwgIkludmFsaWQgc3RhdHVzIGNvZGU6ICIgKyBzdGF0
dXNDb2RlU3RyaW5nLCAwLCBjbGllbnRPcmlnaW4oKSwgMCk7CiAgICAgICAgICAgICByZXR1cm4g
bGluZUxlbmd0aDsKICAgICAgICAgfQogCkBAIC00OTgsMTMgKzQ5OSwxMyBAQCBjb25zdCBjaGFy
KiBXZWJTb2NrZXRIYW5kc2hha2U6OnJlYWRIVFRQSGVhZGVycyhjb25zdCBjaGFyKiBzdGFydCwg
Y29uc3QgY2hhciogZQogICAgICAgICAgICAgICAgIGlmIChuYW1lLmlzRW1wdHkoKSkgewogICAg
ICAgICAgICAgICAgICAgICBpZiAocCArIDEgPCBlbmQgJiYgKihwICsgMSkgPT0gJ1xuJykKICAg
ICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBwICsgMjsKLSAgICAgICAgICAgICAgICAgICAg
bV9jb250ZXh0LT5hZGRNZXNzYWdlKEpTTWVzc2FnZVNvdXJjZSwgTG9nTWVzc2FnZVR5cGUsIEVy
cm9yTWVzc2FnZUxldmVsLCAiQ1IgZG9lc24ndCBmb2xsb3cgTEYgYXQgIiArIHRyaW1Db25zb2xl
TWVzc2FnZShwLCBlbmQgLSBwKSwgMCwgY2xpZW50T3JpZ2luKCkpOworICAgICAgICAgICAgICAg
ICAgICBtX2NvbnRleHQtPmFkZE1lc3NhZ2UoSlNNZXNzYWdlU291cmNlLCBMb2dNZXNzYWdlVHlw
ZSwgRXJyb3JNZXNzYWdlTGV2ZWwsICJDUiBkb2Vzbid0IGZvbGxvdyBMRiBhdCAiICsgdHJpbUNv
bnNvbGVNZXNzYWdlKHAsIGVuZCAtIHApLCAwLCBjbGllbnRPcmlnaW4oKSwgMCk7CiAgICAgICAg
ICAgICAgICAgICAgIHJldHVybiAwOwogICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAg
ICBtX2NvbnRleHQtPmFkZE1lc3NhZ2UoSlNNZXNzYWdlU291cmNlLCBMb2dNZXNzYWdlVHlwZSwg
RXJyb3JNZXNzYWdlTGV2ZWwsICJVbmV4cGVjdGVkIENSIGluIG5hbWUgYXQgIiArIHRyaW1Db25z
b2xlTWVzc2FnZShuYW1lLmRhdGEoKSwgbmFtZS5zaXplKCkpLCAwLCBjbGllbnRPcmlnaW4oKSk7
CisgICAgICAgICAgICAgICAgbV9jb250ZXh0LT5hZGRNZXNzYWdlKEpTTWVzc2FnZVNvdXJjZSwg
TG9nTWVzc2FnZVR5cGUsIEVycm9yTWVzc2FnZUxldmVsLCAiVW5leHBlY3RlZCBDUiBpbiBuYW1l
IGF0ICIgKyB0cmltQ29uc29sZU1lc3NhZ2UobmFtZS5kYXRhKCksIG5hbWUuc2l6ZSgpKSwgMCwg
Y2xpZW50T3JpZ2luKCksIDApOwogICAgICAgICAgICAgICAgIHJldHVybiAwOwogICAgICAgICAg
ICAgY2FzZSAnXG4nOgotICAgICAgICAgICAgICAgIG1fY29udGV4dC0+YWRkTWVzc2FnZShKU01l
c3NhZ2VTb3VyY2UsIExvZ01lc3NhZ2VUeXBlLCBFcnJvck1lc3NhZ2VMZXZlbCwgIlVuZXhwZWN0
ZWQgTEYgaW4gbmFtZSBhdCAiICsgdHJpbUNvbnNvbGVNZXNzYWdlKG5hbWUuZGF0YSgpLCBuYW1l
LnNpemUoKSksIDAsIGNsaWVudE9yaWdpbigpKTsKKyAgICAgICAgICAgICAgICBtX2NvbnRleHQt
PmFkZE1lc3NhZ2UoSlNNZXNzYWdlU291cmNlLCBMb2dNZXNzYWdlVHlwZSwgRXJyb3JNZXNzYWdl
TGV2ZWwsICJVbmV4cGVjdGVkIExGIGluIG5hbWUgYXQgIiArIHRyaW1Db25zb2xlTWVzc2FnZShu
YW1lLmRhdGEoKSwgbmFtZS5zaXplKCkpLCAwLCBjbGllbnRPcmlnaW4oKSwgMCk7CiAgICAgICAg
ICAgICAgICAgcmV0dXJuIDA7CiAgICAgICAgICAgICBjYXNlICc6JzoKICAgICAgICAgICAgICAg
ICBicmVhazsKQEAgLTUyNSw3ICs1MjYsNyBAQCBjb25zdCBjaGFyKiBXZWJTb2NrZXRIYW5kc2hh
a2U6OnJlYWRIVFRQSGVhZGVycyhjb25zdCBjaGFyKiBzdGFydCwgY29uc3QgY2hhciogZQogICAg
ICAgICAgICAgY2FzZSAnXHInOgogICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAg
Y2FzZSAnXG4nOgotICAgICAgICAgICAgICAgIG1fY29udGV4dC0+YWRkTWVzc2FnZShKU01lc3Nh
Z2VTb3VyY2UsIExvZ01lc3NhZ2VUeXBlLCBFcnJvck1lc3NhZ2VMZXZlbCwgIlVuZXhwZWN0ZWQg
TEYgaW4gdmFsdWUgYXQgIiArIHRyaW1Db25zb2xlTWVzc2FnZSh2YWx1ZS5kYXRhKCksIHZhbHVl
LnNpemUoKSksIDAsIGNsaWVudE9yaWdpbigpKTsKKyAgICAgICAgICAgICAgICBtX2NvbnRleHQt
PmFkZE1lc3NhZ2UoSlNNZXNzYWdlU291cmNlLCBMb2dNZXNzYWdlVHlwZSwgRXJyb3JNZXNzYWdl
TGV2ZWwsICJVbmV4cGVjdGVkIExGIGluIHZhbHVlIGF0ICIgKyB0cmltQ29uc29sZU1lc3NhZ2Uo
dmFsdWUuZGF0YSgpLCB2YWx1ZS5zaXplKCkpLCAwLCBjbGllbnRPcmlnaW4oKSwgMCk7CiAgICAg
ICAgICAgICAgICAgcmV0dXJuIDA7CiAgICAgICAgICAgICBkZWZhdWx0OgogICAgICAgICAgICAg
ICAgIHZhbHVlLmFwcGVuZCgqcCk7CkBAIC01MzYsMTcgKzUzNywxNyBAQCBjb25zdCBjaGFyKiBX
ZWJTb2NrZXRIYW5kc2hha2U6OnJlYWRIVFRQSGVhZGVycyhjb25zdCBjaGFyKiBzdGFydCwgY29u
c3QgY2hhciogZQogICAgICAgICAgICAgfQogICAgICAgICB9CiAgICAgICAgIGlmIChwID49IGVu
ZCB8fCAqcCAhPSAnXG4nKSB7Ci0gICAgICAgICAgICBtX2NvbnRleHQtPmFkZE1lc3NhZ2UoSlNN
ZXNzYWdlU291cmNlLCBMb2dNZXNzYWdlVHlwZSwgRXJyb3JNZXNzYWdlTGV2ZWwsICJDUiBkb2Vz
bid0IGZvbGxvdyBMRiBhZnRlciB2YWx1ZSBhdCAiICsgdHJpbUNvbnNvbGVNZXNzYWdlKHAsIGVu
ZCAtIHApLCAwLCBjbGllbnRPcmlnaW4oKSk7CisgICAgICAgICAgICBtX2NvbnRleHQtPmFkZE1l
c3NhZ2UoSlNNZXNzYWdlU291cmNlLCBMb2dNZXNzYWdlVHlwZSwgRXJyb3JNZXNzYWdlTGV2ZWws
ICJDUiBkb2Vzbid0IGZvbGxvdyBMRiBhZnRlciB2YWx1ZSBhdCAiICsgdHJpbUNvbnNvbGVNZXNz
YWdlKHAsIGVuZCAtIHApLCAwLCBjbGllbnRPcmlnaW4oKSwgMCk7CiAgICAgICAgICAgICByZXR1
cm4gMDsKICAgICAgICAgfQogICAgICAgICBBdG9taWNTdHJpbmcgbmFtZVN0cihTdHJpbmc6OmZy
b21VVEY4KG5hbWUuZGF0YSgpLCBuYW1lLnNpemUoKSkpOwogICAgICAgICBTdHJpbmcgdmFsdWVT
dHIgPSBTdHJpbmc6OmZyb21VVEY4KHZhbHVlLmRhdGEoKSwgdmFsdWUuc2l6ZSgpKTsKICAgICAg
ICAgaWYgKG5hbWVTdHIuaXNOdWxsKCkpIHsKLSAgICAgICAgICAgIG1fY29udGV4dC0+YWRkTWVz
c2FnZShKU01lc3NhZ2VTb3VyY2UsIExvZ01lc3NhZ2VUeXBlLCBFcnJvck1lc3NhZ2VMZXZlbCwg
ImludmFsaWQgVVRGLTggc2VxdWVuY2UgaW4gaGVhZGVyIG5hbWUiLCAwLCBjbGllbnRPcmlnaW4o
KSk7CisgICAgICAgICAgICBtX2NvbnRleHQtPmFkZE1lc3NhZ2UoSlNNZXNzYWdlU291cmNlLCBM
b2dNZXNzYWdlVHlwZSwgRXJyb3JNZXNzYWdlTGV2ZWwsICJpbnZhbGlkIFVURi04IHNlcXVlbmNl
IGluIGhlYWRlciBuYW1lIiwgMCwgY2xpZW50T3JpZ2luKCksIDApOwogICAgICAgICAgICAgcmV0
dXJuIDA7CiAgICAgICAgIH0KICAgICAgICAgaWYgKHZhbHVlU3RyLmlzTnVsbCgpKSB7Ci0gICAg
ICAgICAgICBtX2NvbnRleHQtPmFkZE1lc3NhZ2UoSlNNZXNzYWdlU291cmNlLCBMb2dNZXNzYWdl
VHlwZSwgRXJyb3JNZXNzYWdlTGV2ZWwsICJpbnZhbGlkIFVURi04IHNlcXVlbmNlIGluIGhlYWRl
ciB2YWx1ZSIsIDAsIGNsaWVudE9yaWdpbigpKTsKKyAgICAgICAgICAgIG1fY29udGV4dC0+YWRk
TWVzc2FnZShKU01lc3NhZ2VTb3VyY2UsIExvZ01lc3NhZ2VUeXBlLCBFcnJvck1lc3NhZ2VMZXZl
bCwgImludmFsaWQgVVRGLTggc2VxdWVuY2UgaW4gaGVhZGVyIHZhbHVlIiwgMCwgY2xpZW50T3Jp
Z2luKCksIDApOwogICAgICAgICAgICAgcmV0dXJuIDA7CiAgICAgICAgIH0KICAgICAgICAgTE9H
KE5ldHdvcmssICJuYW1lPSVzIHZhbHVlPSVzIiwgbmFtZVN0ci5zdHJpbmcoKS51dGY4KCkuZGF0
YSgpLCB2YWx1ZVN0ci51dGY4KCkuZGF0YSgpKTsKQEAgLTU3MCwyNCArNTcxLDI0IEBAIHZvaWQg
V2ViU29ja2V0SGFuZHNoYWtlOjpwcm9jZXNzSGVhZGVycygpCiBib29sIFdlYlNvY2tldEhhbmRz
aGFrZTo6Y2hlY2tSZXNwb25zZUhlYWRlcnMoKQogewogICAgIGlmIChtX3dzT3JpZ2luLmlzTnVs
bCgpKSB7Ci0gICAgICAgIG1fY29udGV4dC0+YWRkTWVzc2FnZShKU01lc3NhZ2VTb3VyY2UsIExv
Z01lc3NhZ2VUeXBlLCBFcnJvck1lc3NhZ2VMZXZlbCwgIkVycm9yIGR1cmluZyBXZWJTb2NrZXQg
aGFuZHNoYWtlOiAnc2VjLXdlYnNvY2tldC1vcmlnaW4nIGhlYWRlciBpcyBtaXNzaW5nIiwgMCwg
Y2xpZW50T3JpZ2luKCkpOworICAgICAgICBtX2NvbnRleHQtPmFkZE1lc3NhZ2UoSlNNZXNzYWdl
U291cmNlLCBMb2dNZXNzYWdlVHlwZSwgRXJyb3JNZXNzYWdlTGV2ZWwsICJFcnJvciBkdXJpbmcg
V2ViU29ja2V0IGhhbmRzaGFrZTogJ3NlYy13ZWJzb2NrZXQtb3JpZ2luJyBoZWFkZXIgaXMgbWlz
c2luZyIsIDAsIGNsaWVudE9yaWdpbigpLCAwKTsKICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAg
IH0KICAgICBpZiAobV93c0xvY2F0aW9uLmlzTnVsbCgpKSB7Ci0gICAgICAgIG1fY29udGV4dC0+
YWRkTWVzc2FnZShKU01lc3NhZ2VTb3VyY2UsIExvZ01lc3NhZ2VUeXBlLCBFcnJvck1lc3NhZ2VM
ZXZlbCwgIkVycm9yIGR1cmluZyBXZWJTb2NrZXQgaGFuZHNoYWtlOiAnc2VjLXdlYnNvY2tldC1s
b2NhdGlvbicgaGVhZGVyIGlzIG1pc3NpbmciLCAwLCBjbGllbnRPcmlnaW4oKSk7CisgICAgICAg
IG1fY29udGV4dC0+YWRkTWVzc2FnZShKU01lc3NhZ2VTb3VyY2UsIExvZ01lc3NhZ2VUeXBlLCBF
cnJvck1lc3NhZ2VMZXZlbCwgIkVycm9yIGR1cmluZyBXZWJTb2NrZXQgaGFuZHNoYWtlOiAnc2Vj
LXdlYnNvY2tldC1sb2NhdGlvbicgaGVhZGVyIGlzIG1pc3NpbmciLCAwLCBjbGllbnRPcmlnaW4o
KSwgMCk7CiAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICB9CiAKICAgICBpZiAoY2xpZW50T3Jp
Z2luKCkgIT0gbV93c09yaWdpbikgewotICAgICAgICBtX2NvbnRleHQtPmFkZE1lc3NhZ2UoSlNN
ZXNzYWdlU291cmNlLCBMb2dNZXNzYWdlVHlwZSwgRXJyb3JNZXNzYWdlTGV2ZWwsICJFcnJvciBk
dXJpbmcgV2ViU29ja2V0IGhhbmRzaGFrZTogb3JpZ2luIG1pc21hdGNoOiAiICsgY2xpZW50T3Jp
Z2luKCkgKyAiICE9ICIgKyBtX3dzT3JpZ2luLCAwLCBjbGllbnRPcmlnaW4oKSk7CisgICAgICAg
IG1fY29udGV4dC0+YWRkTWVzc2FnZShKU01lc3NhZ2VTb3VyY2UsIExvZ01lc3NhZ2VUeXBlLCBF
cnJvck1lc3NhZ2VMZXZlbCwgIkVycm9yIGR1cmluZyBXZWJTb2NrZXQgaGFuZHNoYWtlOiBvcmln
aW4gbWlzbWF0Y2g6ICIgKyBjbGllbnRPcmlnaW4oKSArICIgIT0gIiArIG1fd3NPcmlnaW4sIDAs
IGNsaWVudE9yaWdpbigpLCAwKTsKICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIH0KICAgICBp
ZiAoY2xpZW50TG9jYXRpb24oKSAhPSBtX3dzTG9jYXRpb24pIHsKLSAgICAgICAgbV9jb250ZXh0
LT5hZGRNZXNzYWdlKEpTTWVzc2FnZVNvdXJjZSwgTG9nTWVzc2FnZVR5cGUsIEVycm9yTWVzc2Fn
ZUxldmVsLCAiRXJyb3IgZHVyaW5nIFdlYlNvY2tldCBoYW5kc2hha2U6IGxvY2F0aW9uIG1pc21h
dGNoOiAiICsgY2xpZW50TG9jYXRpb24oKSArICIgIT0gIiArIG1fd3NMb2NhdGlvbiwgMCwgY2xp
ZW50T3JpZ2luKCkpOworICAgICAgICBtX2NvbnRleHQtPmFkZE1lc3NhZ2UoSlNNZXNzYWdlU291
cmNlLCBMb2dNZXNzYWdlVHlwZSwgRXJyb3JNZXNzYWdlTGV2ZWwsICJFcnJvciBkdXJpbmcgV2Vi
U29ja2V0IGhhbmRzaGFrZTogbG9jYXRpb24gbWlzbWF0Y2g6ICIgKyBjbGllbnRMb2NhdGlvbigp
ICsgIiAhPSAiICsgbV93c0xvY2F0aW9uLCAwLCBjbGllbnRPcmlnaW4oKSwgMCk7CiAgICAgICAg
IHJldHVybiBmYWxzZTsKICAgICB9CiAgICAgaWYgKCFtX2NsaWVudFByb3RvY29sLmlzRW1wdHko
KSAmJiBtX2NsaWVudFByb3RvY29sICE9IG1fd3NQcm90b2NvbCkgewotICAgICAgICBtX2NvbnRl
eHQtPmFkZE1lc3NhZ2UoSlNNZXNzYWdlU291cmNlLCBMb2dNZXNzYWdlVHlwZSwgRXJyb3JNZXNz
YWdlTGV2ZWwsICJFcnJvciBkdXJpbmcgV2ViU29ja2V0IGhhbmRzaGFrZTogcHJvdG9jb2wgbWlz
bWF0Y2g6ICIgKyBtX2NsaWVudFByb3RvY29sICsgIiAhPSAiICsgbV93c1Byb3RvY29sLCAwLCBj
bGllbnRPcmlnaW4oKSk7CisgICAgICAgIG1fY29udGV4dC0+YWRkTWVzc2FnZShKU01lc3NhZ2VT
b3VyY2UsIExvZ01lc3NhZ2VUeXBlLCBFcnJvck1lc3NhZ2VMZXZlbCwgIkVycm9yIGR1cmluZyBX
ZWJTb2NrZXQgaGFuZHNoYWtlOiBwcm90b2NvbCBtaXNtYXRjaDogIiArIG1fY2xpZW50UHJvdG9j
b2wgKyAiICE9ICIgKyBtX3dzUHJvdG9jb2wsIDAsIGNsaWVudE9yaWdpbigpLCAwKTsKICAgICAg
ICAgcmV0dXJuIGZhbHNlOwogICAgIH0KICAgICByZXR1cm4gdHJ1ZTsKZGlmZiAtLWdpdCBhL1dl
YkNvcmUvd29ya2Vycy9EZWZhdWx0U2hhcmVkV29ya2VyUmVwb3NpdG9yeS5jcHAgYi9XZWJDb3Jl
L3dvcmtlcnMvRGVmYXVsdFNoYXJlZFdvcmtlclJlcG9zaXRvcnkuY3BwCmluZGV4IDRhOGU5NDcu
LjhlMWMxMDYgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvd29ya2Vycy9EZWZhdWx0U2hhcmVkV29ya2Vy
UmVwb3NpdG9yeS5jcHAKKysrIGIvV2ViQ29yZS93b3JrZXJzL0RlZmF1bHRTaGFyZWRXb3JrZXJS
ZXBvc2l0b3J5LmNwcApAQCAtNDIsNiArNDIsNyBAQAogI2luY2x1ZGUgIk1lc3NhZ2VQb3J0Lmgi
CiAjaW5jbHVkZSAiTm90SW1wbGVtZW50ZWQuaCIKICNpbmNsdWRlICJQbGF0Zm9ybVN0cmluZy5o
IgorI2luY2x1ZGUgIlNjcmlwdENhbGxTdGFjay5oIgogI2luY2x1ZGUgIlNlY3VyaXR5T3JpZ2lu
LmgiCiAjaW5jbHVkZSAiU2VjdXJpdHlPcmlnaW5IYXNoLmgiCiAjaW5jbHVkZSAiU2hhcmVkV29y
a2VyLmgiCkBAIC0xNTUsNyArMTU2LDcgQEAgdm9pZCBTaGFyZWRXb3JrZXJQcm94eTo6cG9zdFRh
c2tGb3JNb2RlVG9Xb3JrZXJDb250ZXh0KFBhc3NPd25QdHI8U2NyaXB0RXhlY3V0aW8KIAogc3Rh
dGljIHZvaWQgcG9zdEV4Y2VwdGlvblRhc2soU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4
dCwgY29uc3QgU3RyaW5nJiBlcnJvck1lc3NhZ2UsIGludCBsaW5lTnVtYmVyLCBjb25zdCBTdHJp
bmcmIHNvdXJjZVVSTCkKIHsKLSAgICBjb250ZXh0LT5yZXBvcnRFeGNlcHRpb24oZXJyb3JNZXNz
YWdlLCBsaW5lTnVtYmVyLCBzb3VyY2VVUkwpOworICAgIGNvbnRleHQtPnJlcG9ydEV4Y2VwdGlv
bihlcnJvck1lc3NhZ2UsIGxpbmVOdW1iZXIsIHNvdXJjZVVSTCwgMCk7CiB9CiAKIHZvaWQgU2hh
cmVkV29ya2VyUHJveHk6OnBvc3RFeGNlcHRpb25Ub1dvcmtlck9iamVjdChjb25zdCBTdHJpbmcm
IGVycm9yTWVzc2FnZSwgaW50IGxpbmVOdW1iZXIsIGNvbnN0IFN0cmluZyYgc291cmNlVVJMKQpA
QCAtMTY3LDcgKzE2OCw3IEBAIHZvaWQgU2hhcmVkV29ya2VyUHJveHk6OnBvc3RFeGNlcHRpb25U
b1dvcmtlck9iamVjdChjb25zdCBTdHJpbmcmIGVycm9yTWVzc2FnZSwKIAogc3RhdGljIHZvaWQg
cG9zdENvbnNvbGVNZXNzYWdlVGFzayhTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBkb2N1bWVudCwg
TWVzc2FnZVNvdXJjZSBzb3VyY2UsIE1lc3NhZ2VUeXBlIHR5cGUsIE1lc3NhZ2VMZXZlbCBsZXZl
bCwgY29uc3QgU3RyaW5nJiBtZXNzYWdlLCB1bnNpZ25lZCBsaW5lTnVtYmVyLCBjb25zdCBTdHJp
bmcmIHNvdXJjZVVSTCkKIHsKLSAgICBkb2N1bWVudC0+YWRkTWVzc2FnZShzb3VyY2UsIHR5cGUs
IGxldmVsLCBtZXNzYWdlLCBsaW5lTnVtYmVyLCBzb3VyY2VVUkwpOworICAgIGRvY3VtZW50LT5h
ZGRNZXNzYWdlKHNvdXJjZSwgdHlwZSwgbGV2ZWwsIG1lc3NhZ2UsIGxpbmVOdW1iZXIsIHNvdXJj
ZVVSTCwgMCk7CiB9CiAKIHZvaWQgU2hhcmVkV29ya2VyUHJveHk6OnBvc3RDb25zb2xlTWVzc2Fn
ZVRvV29ya2VyT2JqZWN0KE1lc3NhZ2VTb3VyY2Ugc291cmNlLCBNZXNzYWdlVHlwZSB0eXBlLCBN
ZXNzYWdlTGV2ZWwgbGV2ZWwsIGNvbnN0IFN0cmluZyYgbWVzc2FnZSwgaW50IGxpbmVOdW1iZXIs
IGNvbnN0IFN0cmluZyYgc291cmNlVVJMKQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS93b3JrZXJzL1dv
cmtlckNvbnRleHQuY3BwIGIvV2ViQ29yZS93b3JrZXJzL1dvcmtlckNvbnRleHQuY3BwCmluZGV4
IDM0NWU1YjcuLjAzZGVmYzcgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJDb250
ZXh0LmNwcAorKysgYi9XZWJDb3JlL3dvcmtlcnMvV29ya2VyQ29udGV4dC5jcHAKQEAgLTQ2LDYg
KzQ2LDcgQEAKICNpbmNsdWRlICJLVVJMLmgiCiAjaW5jbHVkZSAiTWVzc2FnZVBvcnQuaCIKICNp
bmNsdWRlICJOb3RJbXBsZW1lbnRlZC5oIgorI2luY2x1ZGUgIlNjcmlwdENhbGxTdGFjay5oIgog
I2luY2x1ZGUgIlNjcmlwdFNvdXJjZUNvZGUuaCIKICNpbmNsdWRlICJTY3JpcHRWYWx1ZS5oIgog
I2luY2x1ZGUgIlNlY3VyaXR5T3JpZ2luLmgiCkBAIC0xMDIsNyArMTAzLDYgQEAgV29ya2VyQ29u
dGV4dDo6V29ya2VyQ29udGV4dChjb25zdCBLVVJMJiB1cmwsIGNvbnN0IFN0cmluZyYgdXNlckFn
ZW50LCBXb3JrZXJUaHIKICAgICAsIG1fc2NyaXB0KG5ldyBXb3JrZXJTY3JpcHRDb250cm9sbGVy
KHRoaXMpKQogICAgICwgbV90aHJlYWQodGhyZWFkKQogICAgICwgbV9jbG9zaW5nKGZhbHNlKQot
ICAgICwgbV9yZXBvcnRpbmdFeGNlcHRpb24oZmFsc2UpCiB7CiAgICAgc2V0U2VjdXJpdHlPcmln
aW4oU2VjdXJpdHlPcmlnaW46OmNyZWF0ZSh1cmwpKTsKIH0KQEAgLTI1OSwyMyArMjU5LDE3IEBA
IHZvaWQgV29ya2VyQ29udGV4dDo6aW1wb3J0U2NyaXB0cyhjb25zdCBWZWN0b3I8U3RyaW5nPiYg
dXJscywgRXhjZXB0aW9uQ29kZSYgZWMpCiAgICAgfQogfQogCi12b2lkIFdvcmtlckNvbnRleHQ6
OnJlcG9ydEV4Y2VwdGlvbihjb25zdCBTdHJpbmcmIGVycm9yTWVzc2FnZSwgaW50IGxpbmVOdW1i
ZXIsIGNvbnN0IFN0cmluZyYgc291cmNlVVJMKQorRXZlbnRUYXJnZXQqIFdvcmtlckNvbnRleHQ6
OmVycm9yRXZlbnRUYXJnZXQoKQogewotICAgIGJvb2wgZXJyb3JIYW5kbGVkID0gZmFsc2U7Ci0g
ICAgaWYgKCFtX3JlcG9ydGluZ0V4Y2VwdGlvbikgewotICAgICAgICBpZiAob25lcnJvcigpKSB7
Ci0gICAgICAgICAgICBtX3JlcG9ydGluZ0V4Y2VwdGlvbiA9IHRydWU7Ci0gICAgICAgICAgICBS
ZWZQdHI8RXJyb3JFdmVudD4gZXJyb3JFdmVudChFcnJvckV2ZW50OjpjcmVhdGUoZXJyb3JNZXNz
YWdlLCBzb3VyY2VVUkwsIGxpbmVOdW1iZXIpKTsKLSAgICAgICAgICAgIG9uZXJyb3IoKS0+aGFu
ZGxlRXZlbnQodGhpcywgZXJyb3JFdmVudC5nZXQoKSk7Ci0gICAgICAgICAgICBlcnJvckhhbmRs
ZWQgPSBlcnJvckV2ZW50LT5kZWZhdWx0UHJldmVudGVkKCk7Ci0gICAgICAgICAgICBtX3JlcG9y
dGluZ0V4Y2VwdGlvbiA9IGZhbHNlOwotICAgICAgICB9Ci0gICAgfQotICAgIGlmICghZXJyb3JI
YW5kbGVkKQotICAgICAgICB0aHJlYWQoKS0+d29ya2VyUmVwb3J0aW5nUHJveHkoKS5wb3N0RXhj
ZXB0aW9uVG9Xb3JrZXJPYmplY3QoZXJyb3JNZXNzYWdlLCBsaW5lTnVtYmVyLCBzb3VyY2VVUkwp
OworICAgIHJldHVybiB0aGlzOworfQorCit2b2lkIFdvcmtlckNvbnRleHQ6OmxvZ0V4Y2VwdGlv
blRvQ29uc29sZShjb25zdCBTdHJpbmcmIGVycm9yTWVzc2FnZSwgaW50IGxpbmVOdW1iZXIsIGNv
bnN0IFN0cmluZyYgc291cmNlVVJMLCBQYXNzUmVmUHRyPFNjcmlwdENhbGxTdGFjaz4pCit7Cisg
ICAgdGhyZWFkKCktPndvcmtlclJlcG9ydGluZ1Byb3h5KCkucG9zdEV4Y2VwdGlvblRvV29ya2Vy
T2JqZWN0KGVycm9yTWVzc2FnZSwgbGluZU51bWJlciwgc291cmNlVVJMKTsKIH0KIAotdm9pZCBX
b3JrZXJDb250ZXh0OjphZGRNZXNzYWdlKE1lc3NhZ2VTb3VyY2Ugc291cmNlLCBNZXNzYWdlVHlw
ZSB0eXBlLCBNZXNzYWdlTGV2ZWwgbGV2ZWwsIGNvbnN0IFN0cmluZyYgbWVzc2FnZSwgdW5zaWdu
ZWQgbGluZU51bWJlciwgY29uc3QgU3RyaW5nJiBzb3VyY2VVUkwpCit2b2lkIFdvcmtlckNvbnRl
eHQ6OmFkZE1lc3NhZ2UoTWVzc2FnZVNvdXJjZSBzb3VyY2UsIE1lc3NhZ2VUeXBlIHR5cGUsIE1l
c3NhZ2VMZXZlbCBsZXZlbCwgY29uc3QgU3RyaW5nJiBtZXNzYWdlLCB1bnNpZ25lZCBsaW5lTnVt
YmVyLCBjb25zdCBTdHJpbmcmIHNvdXJjZVVSTCwgUGFzc1JlZlB0cjxTY3JpcHRDYWxsU3RhY2s+
KQogewogICAgIHRocmVhZCgpLT53b3JrZXJSZXBvcnRpbmdQcm94eSgpLnBvc3RDb25zb2xlTWVz
c2FnZVRvV29ya2VyT2JqZWN0KHNvdXJjZSwgdHlwZSwgbGV2ZWwsIG1lc3NhZ2UsIGxpbmVOdW1i
ZXIsIHNvdXJjZVVSTCk7CiB9CmRpZmYgLS1naXQgYS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyQ29u
dGV4dC5oIGIvV2ViQ29yZS93b3JrZXJzL1dvcmtlckNvbnRleHQuaAppbmRleCA3YjZjOWEyLi5l
MmUyZTk0IDEwMDY0NAotLS0gYS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyQ29udGV4dC5oCisrKyBi
L1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJDb250ZXh0LmgKQEAgLTEwMCw4ICsxMDAsNyBAQCBuYW1l
c3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIHZvaWQgY2xlYXJJbnRlcnZhbChpbnQgdGltZW91dElk
KTsKIAogICAgICAgICAvLyBTY3JpcHRFeGVjdXRpb25Db250ZXh0Ci0gICAgICAgIHZpcnR1YWwg
dm9pZCByZXBvcnRFeGNlcHRpb24oY29uc3QgU3RyaW5nJiBlcnJvck1lc3NhZ2UsIGludCBsaW5l
TnVtYmVyLCBjb25zdCBTdHJpbmcmIHNvdXJjZVVSTCk7Ci0gICAgICAgIHZpcnR1YWwgdm9pZCBh
ZGRNZXNzYWdlKE1lc3NhZ2VTb3VyY2UsIE1lc3NhZ2VUeXBlLCBNZXNzYWdlTGV2ZWwsIGNvbnN0
IFN0cmluZyYgbWVzc2FnZSwgdW5zaWduZWQgbGluZU51bWJlciwgY29uc3QgU3RyaW5nJiBzb3Vy
Y2VVUkwpOworICAgICAgICB2aXJ0dWFsIHZvaWQgYWRkTWVzc2FnZShNZXNzYWdlU291cmNlLCBN
ZXNzYWdlVHlwZSwgTWVzc2FnZUxldmVsLCBjb25zdCBTdHJpbmcmIG1lc3NhZ2UsIHVuc2lnbmVk
IGxpbmVOdW1iZXIsIGNvbnN0IFN0cmluZyYgc291cmNlVVJMLCBQYXNzUmVmUHRyPFNjcmlwdENh
bGxTdGFjaz4pOwogCiAjaWYgRU5BQkxFKE5PVElGSUNBVElPTlMpCiAgICAgICAgIE5vdGlmaWNh
dGlvbkNlbnRlciogd2Via2l0Tm90aWZpY2F0aW9ucygpIGNvbnN0OwpAQCAtMTc0LDYgKzE3Myw5
IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgdmlydHVhbCBjb25zdCBLVVJMJiB2aXJ0
dWFsVVJMKCkgY29uc3Q7CiAgICAgICAgIHZpcnR1YWwgS1VSTCB2aXJ0dWFsQ29tcGxldGVVUkwo
Y29uc3QgU3RyaW5nJikgY29uc3Q7CiAKKyAgICAgICAgdmlydHVhbCBFdmVudFRhcmdldCogZXJy
b3JFdmVudFRhcmdldCgpOworICAgICAgICB2aXJ0dWFsIHZvaWQgbG9nRXhjZXB0aW9uVG9Db25z
b2xlKGNvbnN0IFN0cmluZyYgZXJyb3JNZXNzYWdlLCBpbnQgbGluZU51bWJlciwgY29uc3QgU3Ry
aW5nJiBzb3VyY2VVUkwsIFBhc3NSZWZQdHI8U2NyaXB0Q2FsbFN0YWNrPik7CisKICAgICAgICAg
S1VSTCBtX3VybDsKICAgICAgICAgU3RyaW5nIG1fdXNlckFnZW50OwogCkBAIC0xODcsNyArMTg5
LDYgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICBtdXRhYmxlIFJlZlB0cjxOb3RpZmlj
YXRpb25DZW50ZXI+IG1fbm90aWZpY2F0aW9uczsKICNlbmRpZgogICAgICAgICBib29sIG1fY2xv
c2luZzsKLSAgICAgICAgYm9vbCBtX3JlcG9ydGluZ0V4Y2VwdGlvbjsKICAgICAgICAgRXZlbnRU
YXJnZXREYXRhIG1fZXZlbnRUYXJnZXREYXRhOwogCiAgICAgICAgIEhhc2hTZXQ8T2JzZXJ2ZXIq
PiBtX3dvcmtlck9ic2VydmVyczsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJN
ZXNzYWdpbmdQcm94eS5jcHAgYi9XZWJDb3JlL3dvcmtlcnMvV29ya2VyTWVzc2FnaW5nUHJveHku
Y3BwCmluZGV4IDEwNzAwYzYuLjczNWQxNDMgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvd29ya2Vycy9X
b3JrZXJNZXNzYWdpbmdQcm94eS5jcHAKKysrIGIvV2ViQ29yZS93b3JrZXJzL1dvcmtlck1lc3Nh
Z2luZ1Byb3h5LmNwcApAQCAtNDAsNiArNDAsNyBAQAogI2luY2x1ZGUgIkV4Y2VwdGlvbkNvZGUu
aCIKICNpbmNsdWRlICJJbnNwZWN0b3JDb250cm9sbGVyLmgiCiAjaW5jbHVkZSAiTWVzc2FnZUV2
ZW50LmgiCisjaW5jbHVkZSAiU2NyaXB0Q2FsbFN0YWNrLmgiCiAjaW5jbHVkZSAiU2NyaXB0RXhl
Y3V0aW9uQ29udGV4dC5oIgogI2luY2x1ZGUgIldvcmtlci5oIgogCkBAIC0xMzEsNyArMTMyLDcg
QEAgcHJpdmF0ZToKIAogICAgICAgICBib29sIGVycm9ySGFuZGxlZCA9ICF3b3JrZXJPYmplY3Qt
PmRpc3BhdGNoRXZlbnQoRXJyb3JFdmVudDo6Y3JlYXRlKG1fZXJyb3JNZXNzYWdlLCBtX3NvdXJj
ZVVSTCwgbV9saW5lTnVtYmVyKSk7CiAgICAgICAgIGlmICghZXJyb3JIYW5kbGVkKQotICAgICAg
ICAgICAgY29udGV4dC0+cmVwb3J0RXhjZXB0aW9uKG1fZXJyb3JNZXNzYWdlLCBtX2xpbmVOdW1i
ZXIsIG1fc291cmNlVVJMKTsKKyAgICAgICAgICAgIGNvbnRleHQtPnJlcG9ydEV4Y2VwdGlvbiht
X2Vycm9yTWVzc2FnZSwgbV9saW5lTnVtYmVyLCBtX3NvdXJjZVVSTCwgMCk7CiAgICAgfQogCiAg
ICAgU3RyaW5nIG1fZXJyb3JNZXNzYWdlOwpAQCAtMjgzLDcgKzI4NCw3IEBAIHN0YXRpYyB2b2lk
IHBvc3RDb25zb2xlTWVzc2FnZVRhc2soU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCwg
V29ya2VyTWVzc2FnCiB7CiAgICAgaWYgKG1lc3NhZ2luZ1Byb3h5LT5hc2tlZFRvVGVybWluYXRl
KCkpCiAgICAgICAgIHJldHVybjsKLSAgICBjb250ZXh0LT5hZGRNZXNzYWdlKHNvdXJjZSwgdHlw
ZSwgbGV2ZWwsIG1lc3NhZ2UsIGxpbmVOdW1iZXIsIHNvdXJjZVVSTCk7CisgICAgY29udGV4dC0+
YWRkTWVzc2FnZShzb3VyY2UsIHR5cGUsIGxldmVsLCBtZXNzYWdlLCBsaW5lTnVtYmVyLCBzb3Vy
Y2VVUkwsIDApOwogfQogCiB2b2lkIFdvcmtlck1lc3NhZ2luZ1Byb3h5Ojpwb3N0Q29uc29sZU1l
c3NhZ2VUb1dvcmtlck9iamVjdChNZXNzYWdlU291cmNlIHNvdXJjZSwgTWVzc2FnZVR5cGUgdHlw
ZSwgTWVzc2FnZUxldmVsIGxldmVsLCBjb25zdCBTdHJpbmcmIG1lc3NhZ2UsIGludCBsaW5lTnVt
YmVyLCBjb25zdCBTdHJpbmcmIHNvdXJjZVVSTCkKZGlmZiAtLWdpdCBhL1dlYkNvcmUveG1sL1hN
TEh0dHBSZXF1ZXN0LmNwcCBiL1dlYkNvcmUveG1sL1hNTEh0dHBSZXF1ZXN0LmNwcAppbmRleCBm
YzdlYjllLi5mNWIyZDhkIDEwMDY0NAotLS0gYS9XZWJDb3JlL3htbC9YTUxIdHRwUmVxdWVzdC5j
cHAKKysrIGIvV2ViQ29yZS94bWwvWE1MSHR0cFJlcXVlc3QuY3BwCkBAIC0zOSw2ICszOSw3IEBA
CiAjaW5jbHVkZSAiSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uLmgiCiAjaW5jbHVkZSAiUmVzb3Vy
Y2VFcnJvci5oIgogI2luY2x1ZGUgIlJlc291cmNlUmVxdWVzdC5oIgorI2luY2x1ZGUgIlNjcmlw
dENhbGxTdGFjay5oIgogI2luY2x1ZGUgIlNlY3VyaXR5T3JpZ2luLmgiCiAjaW5jbHVkZSAiU2V0
dGluZ3MuaCIKICNpbmNsdWRlICJTaGFyZWRCdWZmZXIuaCIKQEAgLTgxMSw3ICs4MTIsNyBAQCBz
dGF0aWMgdm9pZCByZXBvcnRVbnNhZmVVc2FnZShTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250
ZXh0LCBjb25zdCBTdHJpbmcmIG1lcwogICAgICAgICByZXR1cm47CiAgICAgLy8gRklYTUU6IEl0
J3Mgbm90IGdvb2QgdG8gcmVwb3J0IHRoZSBiYWQgdXNhZ2Ugd2l0aG91dCBpbmRpY2F0aW5nIHdo
YXQgc291cmNlIGxpbmUgaXQgY2FtZSBmcm9tLgogICAgIC8vIFdlIHNob3VsZCBwYXNzIGFkZGl0
aW9uYWwgcGFyYW1ldGVycyBzbyB3ZSBjYW4gdGVsbCB0aGUgY29uc29sZSB3aGVyZSB0aGUgbWlz
dGFrZSBvY2N1cnJlZC4KLSAgICBjb250ZXh0LT5hZGRNZXNzYWdlKEpTTWVzc2FnZVNvdXJjZSwg
TG9nTWVzc2FnZVR5cGUsIEVycm9yTWVzc2FnZUxldmVsLCBtZXNzYWdlLCAxLCBTdHJpbmcoKSk7
CisgICAgY29udGV4dC0+YWRkTWVzc2FnZShKU01lc3NhZ2VTb3VyY2UsIExvZ01lc3NhZ2VUeXBl
LCBFcnJvck1lc3NhZ2VMZXZlbCwgbWVzc2FnZSwgMSwgU3RyaW5nKCksIDApOwogfQogCiB2b2lk
IFhNTEh0dHBSZXF1ZXN0OjpzZXRSZXF1ZXN0SGVhZGVyKGNvbnN0IEF0b21pY1N0cmluZyYgbmFt
ZSwgY29uc3QgU3RyaW5nJiB2YWx1ZSwgRXhjZXB0aW9uQ29kZSYgZWMpCmRpZmYgLS1naXQgYS9X
ZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nIGIvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwppbmRl
eCBmMGU1Nzg0Li4zM2VkMDJiIDEwMDY0NAotLS0gYS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9n
CisrKyBiL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKQEAgLTMyNSwxOSArMzI1LDYgQEAKICAg
ICAgICAgKFdlYktpdDo6V2ViVmlld0ltcGw6OmFwcGx5QXV0b0ZpbGxTdWdnZXN0aW9ucyk6CiAg
ICAgICAgICogc3JjL1dlYlZpZXdJbXBsLmg6CiAKLTIwMTAtMTItMTMgIFl1cnkgU2VtaWtoYXRz
a3kgIDx5dXJ5c0BjaHJvbWl1bS5vcmc+Ci0KLSAgICAgICAgVW5yZXZpZXdlZC4gUm9sbG91dCA3
MzkxNCwgNzM5MTUsIDczOTE3LCA3MzkyMCBhbmQgNzM5MjEuCi0KLSAgICAgICAgUkVHUkVTU0lP
TihyNzM5MTQpOiAiQ2hyb21pdW0gcGFnZV9jeWNsZXJfbW9yZWpzIGZhaWxzIiAoUmVxdWVzdGVk
IGJ5IHl1cnlzIG9uICN3ZWJraXQpLgotICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9NTA5NTAKLQotICAgICAgICAqIHNyYy9XZWJXb3JrZXJDbGllbnRJbXBs
LmNwcDoKLSAgICAgICAgKFdlYktpdDo6V2ViV29ya2VyQ2xpZW50SW1wbDo6cG9zdEV4Y2VwdGlv
blRvV29ya2VyT2JqZWN0KToKLSAgICAgICAgKFdlYktpdDo6V2ViV29ya2VyQ2xpZW50SW1wbDo6
cG9zdENvbnNvbGVNZXNzYWdlVG9Xb3JrZXJPYmplY3QpOgotICAgICAgICAoV2ViS2l0OjpXZWJX
b3JrZXJDbGllbnRJbXBsOjpwb3N0RXhjZXB0aW9uVG9Xb3JrZXJPYmplY3RUYXNrKToKLSAgICAg
ICAgKFdlYktpdDo6V2ViV29ya2VyQ2xpZW50SW1wbDo6cG9zdENvbnNvbGVNZXNzYWdlVG9Xb3Jr
ZXJPYmplY3RUYXNrKToKLQogMjAxMC0xMi0xMyAgSWx5YSBUaWtob25vdnNreSAgPGxvaXNsb0Bj
aHJvbWl1bS5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgWXVyeSBTZW1pa2hhdHNreS4KZGlm
ZiAtLWdpdCBhL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViV29ya2VyQ2xpZW50SW1wbC5jcHAgYi9X
ZWJLaXQvY2hyb21pdW0vc3JjL1dlYldvcmtlckNsaWVudEltcGwuY3BwCmluZGV4IDE4MjgyZTMu
LmY5MGU3ZTggMTAwNjQ0Ci0tLSBhL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViV29ya2VyQ2xpZW50
SW1wbC5jcHAKKysrIGIvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJXb3JrZXJDbGllbnRJbXBsLmNw
cApAQCAtNDEsNiArNDEsNyBAQAogI2luY2x1ZGUgIk1lc3NhZ2VFdmVudC5oIgogI2luY2x1ZGUg
Ik1lc3NhZ2VQb3J0LmgiCiAjaW5jbHVkZSAiTWVzc2FnZVBvcnRDaGFubmVsLmgiCisjaW5jbHVk
ZSAiU2NyaXB0Q2FsbFN0YWNrLmgiCiAjaW5jbHVkZSAiU2NyaXB0RXhlY3V0aW9uQ29udGV4dC5o
IgogI2luY2x1ZGUgIldvcmtlci5oIgogI2luY2x1ZGUgIldvcmtlckNvbnRleHQuaCIKQEAgLTI0
Nyw3ICsyNDgsNyBAQCB2b2lkIFdlYldvcmtlckNsaWVudEltcGw6OnBvc3RFeGNlcHRpb25Ub1dv
cmtlck9iamVjdChjb25zdCBXZWJTdHJpbmcmIGVycm9yTWVzcwogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNvdXJjZVVSTCwK
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBsaW5lTnVtYmVyKSk7CiAgICAgaWYgKHVuaGFuZGxlZCkKLSAgICAgICAgbV9zY3Jp
cHRFeGVjdXRpb25Db250ZXh0LT5yZXBvcnRFeGNlcHRpb24oZXJyb3JNZXNzYWdlLCBsaW5lTnVt
YmVyLCBzb3VyY2VVUkwpOworICAgICAgICBtX3NjcmlwdEV4ZWN1dGlvbkNvbnRleHQtPnJlcG9y
dEV4Y2VwdGlvbihlcnJvck1lc3NhZ2UsIGxpbmVOdW1iZXIsIHNvdXJjZVVSTCwgMCk7CiB9CiAK
IHZvaWQgV2ViV29ya2VyQ2xpZW50SW1wbDo6cG9zdENvbnNvbGVNZXNzYWdlVG9Xb3JrZXJPYmpl
Y3QoaW50IGRlc3RpbmF0aW9uLApAQCAtMjc0LDcgKzI3NSw3IEBAIHZvaWQgV2ViV29ya2VyQ2xp
ZW50SW1wbDo6cG9zdENvbnNvbGVNZXNzYWdlVG9Xb3JrZXJPYmplY3QoaW50IGRlc3RpbmF0aW9u
LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGF0aWNfY2FzdDxN
ZXNzYWdlVHlwZT4obWVzc2FnZVR5cGUpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBzdGF0aWNfY2FzdDxNZXNzYWdlTGV2ZWw+KG1lc3NhZ2VMZXZlbCksCiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN0cmluZyhtZXNzYWdlKSwgbGlu
ZU51bWJlciwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU3RyaW5n
KHNvdXJjZVVSTCkpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBT
dHJpbmcoc291cmNlVVJMKSwgMCk7CiB9CiAKIHZvaWQgV2ViV29ya2VyQ2xpZW50SW1wbDo6cG9z
dENvbnNvbGVNZXNzYWdlVG9Xb3JrZXJPYmplY3QoaW50IHNvdXJjZUlkLApAQCAtMzgxLDkgKzM4
Miw3IEBAIHZvaWQgV2ViV29ya2VyQ2xpZW50SW1wbDo6cG9zdEV4Y2VwdGlvblRvV29ya2VyT2Jq
ZWN0VGFzaygKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBzb3VyY2VVUkwsCiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGluZU51bWJl
cikpOwogICAgIGlmICghaGFuZGxlZCkKLSAgICAgICAgdGhpc1B0ci0+bV9zY3JpcHRFeGVjdXRp
b25Db250ZXh0LT5yZXBvcnRFeGNlcHRpb24oZXJyb3JNZXNzYWdlLAotICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaW5lTnVtYmVyLAot
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBzb3VyY2VVUkwpOworICAgICAgICB0aGlzUHRyLT5tX3NjcmlwdEV4ZWN1dGlvbkNvbnRleHQt
PnJlcG9ydEV4Y2VwdGlvbihlcnJvck1lc3NhZ2UsIGxpbmVOdW1iZXIsIHNvdXJjZVVSTCwgMCk7
CiB9CiAKIHZvaWQgV2ViV29ya2VyQ2xpZW50SW1wbDo6cG9zdENvbnNvbGVNZXNzYWdlVG9Xb3Jr
ZXJPYmplY3RUYXNrKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQsCkBAIC0zOTgsOCAr
Mzk3LDcgQEAgdm9pZCBXZWJXb3JrZXJDbGllbnRJbXBsOjpwb3N0Q29uc29sZU1lc3NhZ2VUb1dv
cmtlck9iamVjdFRhc2soU2NyaXB0RXhlY3V0aW9uQ28KICAgICB0aGlzUHRyLT5tX3NjcmlwdEV4
ZWN1dGlvbkNvbnRleHQtPmFkZE1lc3NhZ2Uoc3RhdGljX2Nhc3Q8TWVzc2FnZVNvdXJjZT4oc291
cmNlSWQpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBzdGF0aWNfY2FzdDxNZXNzYWdlVHlwZT4obWVzc2FnZVR5cGUpLAogICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGF0aWNfY2FzdDxNZXNzYWdlTGV2
ZWw+KG1lc3NhZ2VMZXZlbCksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIG1lc3NhZ2UsIGxpbmVOdW1iZXIsCi0gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNvdXJjZVVSTCk7CisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1lc3NhZ2UsIGxpbmVOdW1iZXIsIHNv
dXJjZVVSTCwgMCk7CiB9CiAKIHZvaWQgV2ViV29ya2VyQ2xpZW50SW1wbDo6Y29uZmlybU1lc3Nh
Z2VGcm9tV29ya2VyT2JqZWN0VGFzayhTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0LAo=
</data>
<flag name="commit-queue"
          id="68632"
          type_id="3"
          status="-"
          setter="yurys"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>77497</attachid>
            <date>2010-12-27 06:31:33 -0800</date>
            <delta_ts>2010-12-27 07:09:31 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>window-onerror.patch</filename>
            <type>text/plain</type>
            <size>138912</size>
            <attacher name="Yury Semikhatsky">yurys</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCA1YTAwZmQ1Li41ZTkyOWM2IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNjUgQEAKKzIwMTAtMTIt
MjcgIFl1cnkgU2VtaWtoYXRza3kgIDx5dXJ5c0BjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgV2ViQ29yZSBkb2Vzbid0IGZpcmUg
d2luZG93Lm9uZXJyb3IgZXZlbnQgd2hlbiB1bmNhdWdodCBKYXZhU2NyaXB0IGV4Y2VwdGlvbnMg
YXJlIHRocm93bgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9ODUxOQorCisgICAgICAgIFVuY2F1Z2h0IGV4Y2VwdGlvbnMgYXJlIHByb3BhZ2F0ZWQgdG8g
d2luZG93Lm9uZXJyb3IgaGFuZGVyIGlmIG9uZSBpcyBwcmVzZW50LgorICAgICAgICBUaGUgaGFu
ZGxlciBpcyBleHBlY3RlZCB0byBiZSBhIGZ1bmN0aW9uIGFjY2VwdGluZyB0aHJlZSBhcmd1bWVu
dHM6IGVycm9yIG1lc3NhZ2UsCisgICAgICAgIHJlc291cmNlIHVybCBhbmQgbGluZSBudW1iZXIg
d2hlcmUgdGhlIGV4Y2VwdGlvbiBvY2N1cmVkLgorCisgICAgICAgICogZmFzdC9ldmVudHMvcmVz
b3VyY2VzL3dpbmRvdy1vbmVycm9yLmpzOiBBZGRlZC4KKyAgICAgICAgKHRocm93RXhjZXB0aW9u
KToKKyAgICAgICAgKiBmYXN0L2V2ZW50cy93aW5kb3ctb25lcnJvcjEtZXhwZWN0ZWQudHh0OiBB
ZGRlZC4KKyAgICAgICAgKiBmYXN0L2V2ZW50cy93aW5kb3ctb25lcnJvcjEuaHRtbDogQWRkZWQu
CisgICAgICAgICogZmFzdC9ldmVudHMvd2luZG93LW9uZXJyb3IxMC1leHBlY3RlZC50eHQ6IEFk
ZGVkLgorICAgICAgICAqIGZhc3QvZXZlbnRzL3dpbmRvdy1vbmVycm9yMTAuaHRtbDogQWRkZWQu
CisgICAgICAgICogZmFzdC9ldmVudHMvd2luZG93LW9uZXJyb3IxMS1leHBlY3RlZC50eHQ6IEFk
ZGVkLgorICAgICAgICAqIGZhc3QvZXZlbnRzL3dpbmRvdy1vbmVycm9yMTEuaHRtbDogQWRkZWQu
CisgICAgICAgICogZmFzdC9ldmVudHMvd2luZG93LW9uZXJyb3IxMi1leHBlY3RlZC50eHQ6IEFk
ZGVkLgorICAgICAgICAqIGZhc3QvZXZlbnRzL3dpbmRvdy1vbmVycm9yMTIuaHRtbDogQWRkZWQu
CisgICAgICAgICogZmFzdC9ldmVudHMvd2luZG93LW9uZXJyb3IyLWV4cGVjdGVkLnR4dDogQWRk
ZWQuCisgICAgICAgICogZmFzdC9ldmVudHMvd2luZG93LW9uZXJyb3IyLmh0bWw6IEFkZGVkLgor
ICAgICAgICAqIGZhc3QvZXZlbnRzL3dpbmRvdy1vbmVycm9yMy1leHBlY3RlZC50eHQ6IEFkZGVk
LgorICAgICAgICAqIGZhc3QvZXZlbnRzL3dpbmRvdy1vbmVycm9yMy5odG1sOiBBZGRlZC4KKyAg
ICAgICAgKiBmYXN0L2V2ZW50cy93aW5kb3ctb25lcnJvcjQtZXhwZWN0ZWQudHh0OiBBZGRlZC4K
KyAgICAgICAgKiBmYXN0L2V2ZW50cy93aW5kb3ctb25lcnJvcjQuaHRtbDogQWRkZWQuCisgICAg
ICAgICogZmFzdC9ldmVudHMvd2luZG93LW9uZXJyb3I1LWV4cGVjdGVkLnR4dDogQWRkZWQuCisg
ICAgICAgICogZmFzdC9ldmVudHMvd2luZG93LW9uZXJyb3I1Lmh0bWw6IEFkZGVkLgorICAgICAg
ICAqIGZhc3QvZXZlbnRzL3dpbmRvdy1vbmVycm9yNi1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAg
ICAgICAqIGZhc3QvZXZlbnRzL3dpbmRvdy1vbmVycm9yNi5odG1sOiBBZGRlZC4KKyAgICAgICAg
KiBmYXN0L2V2ZW50cy93aW5kb3ctb25lcnJvcjctZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAg
ICAgKiBmYXN0L2V2ZW50cy93aW5kb3ctb25lcnJvcjcuaHRtbDogQWRkZWQuCisgICAgICAgICog
ZmFzdC9ldmVudHMvd2luZG93LW9uZXJyb3I4LWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAg
ICogZmFzdC9ldmVudHMvd2luZG93LW9uZXJyb3I4Lmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZh
c3QvZXZlbnRzL3dpbmRvdy1vbmVycm9yOS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAq
IGZhc3QvZXZlbnRzL3dpbmRvdy1vbmVycm9yOS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0
L3dvcmtlcnMvd29ya2VyLXNjcmlwdC1lcnJvci1leHBlY3RlZC50eHQ6CisgICAgICAgICogaHR0
cC90ZXN0cy9zZWN1cml0eS9yZXNvdXJjZXMvb25lcnJvci1pZnJhbWUuaHRtbDogQWRkZWQuCisg
ICAgICAgICogaHR0cC90ZXN0cy9zZWN1cml0eS93aW5kb3ctb25lcnJvci1leGNlcHRpb24taW4t
aWZyYW1lLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9zZWN1cml0
eS93aW5kb3ctb25lcnJvci1leGNlcHRpb24taW4taWZyYW1lLmh0bWw6IEFkZGVkLgorICAgICAg
ICAqIHBsYXRmb3JtL2Nocm9taXVtLXdpbi9mYXN0L3dvcmtlcnMvd29ya2VyLXNjcmlwdC1lcnJv
ci1leHBlY3RlZC50eHQ6CisgICAgICAgICogcGxhdGZvcm0vY2hyb21pdW0vZmFzdC9ldmVudHMv
d2luZG93LW9uZXJyb3IxLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogcGxhdGZvcm0v
Y2hyb21pdW0vZmFzdC9ldmVudHMvd2luZG93LW9uZXJyb3IxMC1leHBlY3RlZC50eHQ6IEFkZGVk
LgorICAgICAgICAqIHBsYXRmb3JtL2Nocm9taXVtL2Zhc3QvZXZlbnRzL3dpbmRvdy1vbmVycm9y
MTEtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS9mYXN0
L2V2ZW50cy93aW5kb3ctb25lcnJvcjItZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBw
bGF0Zm9ybS9jaHJvbWl1bS9mYXN0L2V2ZW50cy93aW5kb3ctb25lcnJvcjMtZXhwZWN0ZWQudHh0
OiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS9mYXN0L2V2ZW50cy93aW5kb3ct
b25lcnJvcjQtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1
bS9mYXN0L2V2ZW50cy93aW5kb3ctb25lcnJvcjUtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAg
ICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS9mYXN0L2V2ZW50cy93aW5kb3ctb25lcnJvcjYtZXhwZWN0
ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS9mYXN0L2V2ZW50cy93
aW5kb3ctb25lcnJvcjctZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9j
aHJvbWl1bS9mYXN0L2V2ZW50cy93aW5kb3ctb25lcnJvcjgtZXhwZWN0ZWQudHh0OiBBZGRlZC4K
KyAgICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS9mYXN0L2V2ZW50cy93aW5kb3ctb25lcnJvcjkt
ZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS9odHRwL3Rl
c3RzL3NlY3VyaXR5L3dpbmRvdy1vbmVycm9yLWV4Y2VwdGlvbi1pbi1pZnJhbWUtZXhwZWN0ZWQu
dHh0OiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS91c2Vyc2NyaXB0cy93aW5k
b3ctb25lcnJvci1mb3ItaXNvbGF0ZWQtd29ybGQtMS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAg
ICAgICAqIHBsYXRmb3JtL2Nocm9taXVtL3VzZXJzY3JpcHRzL3dpbmRvdy1vbmVycm9yLWZvci1p
c29sYXRlZC13b3JsZC0yLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogcGxhdGZvcm0v
Z3RrL1NraXBwZWQ6CisgICAgICAgICogdXNlcnNjcmlwdHMvd2luZG93LW9uZXJyb3ItZm9yLWlz
b2xhdGVkLXdvcmxkLTEtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiB1c2Vyc2NyaXB0
cy93aW5kb3ctb25lcnJvci1mb3ItaXNvbGF0ZWQtd29ybGQtMS5odG1sOiBBZGRlZC4KKyAgICAg
ICAgKiB1c2Vyc2NyaXB0cy93aW5kb3ctb25lcnJvci1mb3ItaXNvbGF0ZWQtd29ybGQtMi1leHBl
Y3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIHVzZXJzY3JpcHRzL3dpbmRvdy1vbmVycm9yLWZv
ci1pc29sYXRlZC13b3JsZC0yLmh0bWw6IEFkZGVkLgorCiAyMDEwLTEyLTI3ICBNT1JJVEEgSGFq
aW1lICA8bW9ycml0YUBnb29nbGUuY29tPgogCiAgICAgICAgIFVucmV2aWV3ZWQgZXhwZWN0YXRp
b24gdXBkYXRlcy4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3Jlc291cmNl
cy93aW5kb3ctb25lcnJvci5qcyBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3Jlc291cmNlcy93
aW5kb3ctb25lcnJvci5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zNDQ1
NzRiCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvcmVzb3VyY2Vz
L3dpbmRvdy1vbmVycm9yLmpzCkBAIC0wLDAgKzEsMyBAQAorZnVuY3Rpb24gdGhyb3dFeGNlcHRp
b24oKSB7CisgICAgdGhyb3cgbmV3IEVycm9yKCJBbiBleGNlcHRpb24iKTsKK30KZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3dpbmRvdy1vbmVycm9yMS1leHBlY3RlZC50eHQg
Yi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy93aW5kb3ctb25lcnJvcjEtZXhwZWN0ZWQudHh0Cm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmZlNTFiNzIKLS0tIC9kZXYvbnVsbAor
KysgYi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy93aW5kb3ctb25lcnJvcjEtZXhwZWN0ZWQudHh0
CkBAIC0wLDAgKzEsMyBAQAorVGhpcyBwYWdlIHRlc3RzIHNldHRpbmcgb25lcnJvciBoYW5kbGVy
cyB0aHJvdWdoIHRoZSBET00uIElmIGl0IHBhc3NlcywgeW91IHdpbGwgc2VlICJQQVNTIiBtZXNz
YWdlcyBiZWxvdy5CdWcgODUxOS4KKworUEFTUzogY2F1Z2h0IGdsb2JhbCBlcnJvcjogUmVmZXJl
bmNlRXJyb3I6IENhbid0IGZpbmQgdmFyaWFibGU6IGhhaGFoYV9nb29kX2x1Y2tfZmluZGluZ19t
ZSBhdCB3aW5kb3ctb25lcnJvcjEuaHRtbDoyNQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFz
dC9ldmVudHMvd2luZG93LW9uZXJyb3IxLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy93
aW5kb3ctb25lcnJvcjEuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41
OWQyNDk1Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvd2luZG93
LW9uZXJyb3IxLmh0bWwKQEAgLTAsMCArMSwzNSBAQAorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQ+
CitpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQorICAgIGxheW91dFRlc3RDb250cm9s
bGVyLmR1bXBBc1RleHQoKTsKKworZnVuY3Rpb24gcHJpbnQobWVzc2FnZSwgY29sb3IpCit7Cisg
ICAgdmFyIHBhcmFncmFwaCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpOworICAgIHBh
cmFncmFwaC5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZShtZXNzYWdlKSk7Cisg
ICAgcGFyYWdyYXBoLnN0eWxlLmZvbnRGYW1pbHkgPSAibW9ub3NwYWNlIjsKKyAgICBpZiAoY29s
b3IpCisgICAgICAgIHBhcmFncmFwaC5zdHlsZS5jb2xvciA9IGNvbG9yOworICAgIGRvY3VtZW50
LmdldEVsZW1lbnRCeUlkKCJjb25zb2xlIikuYXBwZW5kQ2hpbGQocGFyYWdyYXBoKTsKK30KKwor
ZnVuY3Rpb24gdGVzdCgpCit7CisgICAgLy8gbXVzdCBiZSBsYXN0IGJlY2F1c2UgdGhlIGV4Y2Vw
dGlvbiBlbmRzIEphdmFTY3JpcHQgZXhlY3V0aW9uCisgICAgd2luZG93Lm9uZXJyb3IgPSBmdW5j
dGlvbiAoZXJyb3IsIHVybCwgbGluZSkgeworICAgICAgICB1cmwgPSB1cmwgPyB1cmwubWF0Y2go
IC9bXlwvXStcLz8kLyApWzBdIDogdXJsOworICAgICAgICBwcmludCgiUEFTUzogY2F1Z2h0IGds
b2JhbCBlcnJvcjogIiArIGVycm9yICsgIiBhdCAiICsgdXJsICsgIjoiICsgbGluZSwgImdyZWVu
Iik7CisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9OworICAgIGhhaGFoYV9nb29kX2x1Y2tf
ZmluZGluZ19tZSgpOyAvLyBjYXVnaHQgYnkgd2luZG93Lm9uZXJyb3IKK30KKzwvc2NyaXB0Pgor
PC9oZWFkPgorPGJvZHkgb25sb2FkPSJ0ZXN0KCk7Ij4KKzxwPlRoaXMgcGFnZSB0ZXN0cyBzZXR0
aW5nIG9uZXJyb3IgaGFuZGxlcnMgdGhyb3VnaCB0aGUgRE9NLiBJZiBpdCBwYXNzZXMsIHlvdSB3
aWxsCisgICBzZWUgIlBBU1MiIG1lc3NhZ2VzIGJlbG93LjxhIGhyZWY9Imh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04NTE5Ij5CdWcgODUxOTwvYT4uPC9wPgorPGhyPgor
PGRpdiBpZD0nY29uc29sZSc+PC9kaXY+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9mYXN0L2V2ZW50cy93aW5kb3ctb25lcnJvcjEwLWV4cGVjdGVkLnR4dCBiL0xh
eW91dFRlc3RzL2Zhc3QvZXZlbnRzL3dpbmRvdy1vbmVycm9yMTAtZXhwZWN0ZWQudHh0Cm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmJmZjU2MzYKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy93aW5kb3ctb25lcnJvcjEwLWV4cGVjdGVkLnR4dApA
QCAtMCwwICsxLDExIEBACitUZXN0IHRoYXQgImVycm9yIiBldmVudCBsaXN0ZW5lciBhZGRlZCB3
aXRoIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyIGlzIGludm9rZWQgZm9yIHVuY2F1Y2h0IGV4Y2Vw
dGlvbnMuIEJ1ZyA4NTE5LgorCitldmVudCBwYXNzZWQgdG8gdGhlIGxpc3RlbmVyIGlzIHRoZSBz
YW1lIGFzIHdpbmRvdy5ldmVudDogdHJ1ZQorRXZlbnQgZGV0YWlsczoKK3R5cGU6IGVycm9yCitw
aGFzZTogMgorY3VycmVudFRhcmdldCBpcyB0aGUgZ2xvYmFsIG9iamVjdDogdHJ1ZQorbWVzc2Fn
ZTogRXJyb3I6IE15IGZhdWx0LgorZmlsZW5hbWU6IHdpbmRvdy1vbmVycm9yMTAuaHRtbAorbGlu
ZW5vOiAyOQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy93aW5kb3ctb25l
cnJvcjEwLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy93aW5kb3ctb25lcnJvcjEwLmh0
bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMjZlZDAxOAotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3dpbmRvdy1vbmVycm9yMTAuaHRtbApA
QCAtMCwwICsxLDMzIEBACis8aHRtbD4KKzxib2R5PgorPHA+VGVzdCB0aGF0ICJlcnJvciIgZXZl
bnQgbGlzdGVuZXIgYWRkZWQgd2l0aCB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lciBpcyBpbnZva2Vk
IGZvciB1bmNhdWNodCBleGNlcHRpb25zLiA8YSBocmVmPSJodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9ODUxOSI+QnVnIDg1MTk8L2E+LjwvcD4KKzxkaXYgaWQ9ImNvbnNv
bGUiPjwvZGl2PgorPHNjcmlwdD4KK2lmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCisg
ICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOworCitmdW5jdGlvbiBsb2cobXNn
KSB7CisgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNvbnNvbGUiKS5pbm5lckhUTUwgKz0g
bXNnICsgIjxicj4iOworfQorCitmdW5jdGlvbiBsYXN0UGF0aENvbXBvbmVudCh1cmwpIHsKKyAg
ICByZXR1cm4gdXJsID8gdXJsLm1hdGNoKCAvW15cL10rXC8/JC8gKVswXSA6IHVybDsKK30KKwor
d2luZG93LmFkZEV2ZW50TGlzdGVuZXIoImVycm9yIiwgZnVuY3Rpb24oZSkgeworICAgIGxvZygi
ZXZlbnQgcGFzc2VkIHRvIHRoZSBsaXN0ZW5lciBpcyB0aGUgc2FtZSBhcyB3aW5kb3cuZXZlbnQ6
ICIgKyAod2luZG93LmV2ZW50ID09PSBlKSk7CisgICAgbG9nKCJFdmVudCBkZXRhaWxzOiIpOwor
ICAgIGxvZygidHlwZTogIiArIGUudHlwZSk7CisgICAgbG9nKCJwaGFzZTogIiArIGUuZXZlbnRQ
aGFzZSkKKyAgICBsb2coImN1cnJlbnRUYXJnZXQgaXMgdGhlIGdsb2JhbCBvYmplY3Q6ICIgKyAo
ZS5jdXJyZW50VGFyZ2V0ID09PSB3aW5kb3cpKTsKKyAgICBsb2coIm1lc3NhZ2U6ICIgKyBlLm1l
c3NhZ2UpOworICAgIGxvZygiZmlsZW5hbWU6ICIgKyBsYXN0UGF0aENvbXBvbmVudChlLmZpbGVu
YW1lKSk7CisgICAgbG9nKCJsaW5lbm86ICIgKyBlLmxpbmVubyk7CisgICAgZS5wcmV2ZW50RGVm
YXVsdCgpOworfSwgZmFsc2UpOworCit0aHJvdyBuZXcgRXJyb3IoIk15IGZhdWx0LiIpOworCis8
L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3Qv
ZXZlbnRzL3dpbmRvdy1vbmVycm9yMTEtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9l
dmVudHMvd2luZG93LW9uZXJyb3IxMS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMC4uOTZlMjBjYwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zh
c3QvZXZlbnRzL3dpbmRvdy1vbmVycm9yMTEtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNCBAQAor
VGVzdCB0aGF0IHdpbmRvdy5vbmVycm9yIGlzIGNhbGxlZCBvbiB3aW5kb3cgb2JqZWN0LiBCdWcg
ODUxOS4KKworTWFpbiBmcmFtZSB3aW5kb3cub25lcnJvcjogRXJyb3I6IEFuIGV4Y2VwdGlvbiBh
dCB3aW5kb3ctb25lcnJvci5qczoyCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZXZl
bnRzL3dpbmRvdy1vbmVycm9yMTEuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3dpbmRv
dy1vbmVycm9yMTEuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43NjU1
ZmE3Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvd2luZG93LW9u
ZXJyb3IxMS5odG1sCkBAIC0wLDAgKzEsMjggQEAKKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNy
Yz0icmVzb3VyY2VzL3dpbmRvdy1vbmVycm9yLmpzIj4KKzwvc2NyaXB0PgorPC9oZWFkPgorPGJv
ZHk+Cis8cD5UZXN0IHRoYXQgd2luZG93Lm9uZXJyb3IgaXMgY2FsbGVkIG9uIHdpbmRvdyBvYmpl
Y3QuIDxhIGhyZWY9Imh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04NTE5
Ij5CdWcgODUxOTwvYT4uPC9wPgorPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+Cis8c2NyaXB0Pgor
aWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKKyAgICBsYXlvdXRUZXN0Q29udHJvbGxl
ci5kdW1wQXNUZXh0KCk7CisKK2Z1bmN0aW9uIGxvZyhtc2cpIHsKKyAgICBkb2N1bWVudC5nZXRF
bGVtZW50QnlJZCgiY29uc29sZSIpLmlubmVySFRNTCArPSBtc2cgKyAiPGJyPiI7Cit9CisKK3dp
bmRvdy5vbmVycm9yID0gZnVuY3Rpb24obXNnLCB1cmwsIGxpbmUpCit7CisgICAgdXJsID0gdXJs
ID8gdXJsLm1hdGNoKCAvW15cL10rXC8/JC8gKVswXSA6IHVybDsKKyAgICBsb2coIk1haW4gZnJh
bWUgd2luZG93Lm9uZXJyb3I6ICIgKyBtc2cgKyAiIGF0ICIgKyB1cmwgKyAiOiIgKyBsaW5lKTsK
KyAgICByZXR1cm4gZmFsc2U7Cit9CisKK3Rocm93RXhjZXB0aW9uKCk7CisKKzwvc2NyaXB0Pgor
PC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvd2lu
ZG93LW9uZXJyb3IxMi1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy93aW5k
b3ctb25lcnJvcjEyLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAw
MDAwLi5lMTZmZTk3Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMv
d2luZG93LW9uZXJyb3IxMi1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw4IEBACitUZXN0IHRoYXQg
d2luZG93Lm9uZXJyb3IgaXMgY2FsbGVkIG9uIHdpbmRvdyBvYmplY3QgZm9yIGV2ZW50cyBjcmVh
dGVkIHVzaW5nIGRvY3VtZW50LmNyZWF0ZUV2ZW50KCJlcnJvciIpLiBCdWcgODUxOS4KKworTWFp
biBmcmFtZSB3aW5kb3cub25lcnJvcjogCittc2c6IFtvYmplY3QgRXZlbnRdCit1cmw6IHVuZGVm
aW5lZAorbGluZTogdW5kZWZpbmVkCitET05FLgorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9m
YXN0L2V2ZW50cy93aW5kb3ctb25lcnJvcjEyLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50
cy93aW5kb3ctb25lcnJvcjEyLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAw
MC4uZGVkZTk3NQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3dp
bmRvdy1vbmVycm9yMTIuaHRtbApAQCAtMCwwICsxLDMzIEBACis8aHRtbD4KKzxoZWFkPgorPHNj
cmlwdCBzcmM9InJlc291cmNlcy93aW5kb3ctb25lcnJvci5qcyI+Cis8L3NjcmlwdD4KKzwvaGVh
ZD4KKzxib2R5PgorPHA+VGVzdCB0aGF0IHdpbmRvdy5vbmVycm9yIGlzIGNhbGxlZCBvbiB3aW5k
b3cgb2JqZWN0IGZvciBldmVudHMgY3JlYXRlZCB1c2luZyBkb2N1bWVudC5jcmVhdGVFdmVudCgi
ZXJyb3IiKS4gPGEgaHJlZj0iaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTg1MTkiPkJ1ZyA4NTE5PC9hPi48L3A+Cis8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KKzxzY3Jp
cHQ+CitpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQorICAgIGxheW91dFRlc3RDb250
cm9sbGVyLmR1bXBBc1RleHQoKTsKKworZnVuY3Rpb24gbG9nKG1zZykgeworICAgIGRvY3VtZW50
LmdldEVsZW1lbnRCeUlkKCJjb25zb2xlIikuaW5uZXJIVE1MICs9IG1zZyArICI8YnI+IjsKK30K
Kword2luZG93Lm9uZXJyb3IgPSBmdW5jdGlvbihtc2csIHVybCwgbGluZSkKK3sKKyAgICBsb2co
Ik1haW4gZnJhbWUgd2luZG93Lm9uZXJyb3I6ICIpOworICAgIGxvZygibXNnOiAiICsgbXNnKTsK
KyAgICBsb2coInVybDogIiArIHVybCk7CisgICAgbG9nKCJsaW5lOiAiICsgbGluZSk7CisgICAg
cmV0dXJuIGZhbHNlOworfQorCit2YXIgZXZ0ID0gZG9jdW1lbnQuY3JlYXRlRXZlbnQoIkV2ZW50
Iik7CitldnQuaW5pdEV2ZW50KCJlcnJvciIsIHRydWUsIHRydWUpOword2luZG93LmRpc3BhdGNo
RXZlbnQoZXZ0KTsKK2xvZygiRE9ORS4iKTsKKworPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy93aW5kb3ctb25lcnJvcjItZXhw
ZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvd2luZG93LW9uZXJyb3IyLWV4cGVj
dGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45M2EyZDNmCi0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvd2luZG93LW9uZXJyb3IyLWV4
cGVjdGVkLnR4dApAQCAtMCwwICsxLDYgQEAKK1Rlc3QgdGhhdCB1bmNhdWdodCBleGNlcHRpb25z
IHdpbGwgYmUgcmVwb3J0ZWQgdG8gdGhlIHdpbmRvdy5vbmVycm9yIGhhbmRsZXIuIEJ1ZyA4NTE5
LgorCitNYWluIGZyYW1lIHdpbmRvdy5vbmVycm9yOiBFcnJvcjogSW5saW5lIHNjcmlwdCBleGNl
cHRpb24gYXQgd2luZG93LW9uZXJyb3IyLmh0bWw6MzUKK01haW4gZnJhbWUgd2luZG93Lm9uZXJy
b3I6IEV4Y2VwdGlvbiBpbiBvbmxvYWQgYXQgdW5kZWZpbmVkOjAKK01haW4gZnJhbWUgd2luZG93
Lm9uZXJyb3I6IEVycm9yOiBFeGNlcHRpb24gaW4gc2V0VGltZW91dCBhdCB3aW5kb3ctb25lcnJv
cjIuaHRtbDoyOQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy93aW5kb3ct
b25lcnJvcjIuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3dpbmRvdy1vbmVycm9yMi5o
dG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmRiOWZiNzUKLS0tIC9kZXYv
bnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy93aW5kb3ctb25lcnJvcjIuaHRtbApA
QCAtMCwwICsxLDQxIEBACis8aHRtbD4KKzxib2R5IG9ubG9hZD0idGhyb3cgJ0V4Y2VwdGlvbiBp
biBvbmxvYWQnOyI+Cis8cD5UZXN0IHRoYXQgdW5jYXVnaHQgZXhjZXB0aW9ucyB3aWxsIGJlIHJl
cG9ydGVkIHRvIHRoZSB3aW5kb3cub25lcnJvciBoYW5kbGVyLiA8YSBocmVmPSJodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODUxOSI+QnVnIDg1MTk8L2E+LjwvcD4KKzxk
aXYgaWQ9InJlc3VsdCI+PC9kaXY+Cis8c2NyaXB0PgoraWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29u
dHJvbGxlcikgeworICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKKyAgICBs
YXlvdXRUZXN0Q29udHJvbGxlci53YWl0VW50aWxEb25lKCk7Cit9CisKK2Z1bmN0aW9uIGxvZyht
c2cpIHsKKyAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicmVzdWx0IikuaW5uZXJIVE1MICs9
IG1zZyArICI8YnI+IjsKK30KKwordmFyIHVuaGFuZGxlZEVycm9yQ291bnQgPSAwOword2luZG93
Lm9uZXJyb3IgPSBmdW5jdGlvbihtc2csIHVybCwgbGluZSkKK3sKKyAgICB1cmwgPSB1cmwgPyB1
cmwubWF0Y2goIC9bXlwvXStcLz8kLyApWzBdIDogdXJsOworICAgIGxvZygiTWFpbiBmcmFtZSB3
aW5kb3cub25lcnJvcjogIiArIG1zZyArICIgYXQgIiArIHVybCArICI6IiArIGxpbmUpOworICAg
IAorICAgIGlmICgrK3VuaGFuZGxlZEVycm9yQ291bnQgPT09IDMgJiYgd2luZG93LmxheW91dFRl
c3RDb250cm9sbGVyKQorICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5ub3RpZnlEb25lKCk7
CisKKyAgICByZXR1cm4gZmFsc2U7Cit9CisKK2Z1bmN0aW9uIGRlbGF5ZWRUaHJvd0V4Y2VwdGlv
bigpCit7CisgICAgdGhyb3cgbmV3IEVycm9yKCJFeGNlcHRpb24gaW4gc2V0VGltZW91dCIpOwor
fQorc2V0VGltZW91dChkZWxheWVkVGhyb3dFeGNlcHRpb24sIDApOworCitmdW5jdGlvbiB0aHJv
d0V4Y2VwdGlvbigpCit7CisgICAgdGhyb3cgbmV3IEVycm9yKCJJbmxpbmUgc2NyaXB0IGV4Y2Vw
dGlvbiIpOworfQordGhyb3dFeGNlcHRpb24oKTsKKworPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0
bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy93aW5kb3ctb25lcnJvcjMt
ZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvd2luZG93LW9uZXJyb3IzLWV4
cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43MDI1ZGJiCi0t
LSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvd2luZG93LW9uZXJyb3Iz
LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDQgQEAKK1lvdSBzaG91bGQgc2VlIGEgbWVzc2FnZSBp
ZiB3aW5kb3cub25lcnJvciBpcyB3b3JraW5nIHByb3Blcmx5IGZvciB0aGlzIHRlc3QuQnVnIDg1
MTkuCisKK0Vycm9yIGNhdWdodCBzdWNjZXNzZnVsbHk6IFJlZmVyZW5jZUVycm9yOiBDYW4ndCBm
aW5kIHZhcmlhYmxlOiB1bmtub3duT2JqZWN0IEZpbGU6IHdpbmRvdy1vbmVycm9yMy5odG1sIExp
bmU6IDE2CisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3dpbmRvdy1vbmVy
cm9yMy5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvd2luZG93LW9uZXJyb3IzLmh0bWwK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZWUyODkzZgotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3dpbmRvdy1vbmVycm9yMy5odG1sCkBAIC0w
LDAgKzEsMjMgQEAKKzxzY3JpcHQ+CitpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQor
ICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKKworZnVuY3Rpb24gbG9nKG1z
ZykgeworICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjb25zb2xlIikuaW5uZXJIVE1MICs9
IG1zZyArICI8YnI+IjsKK30KKworZnVuY3Rpb24gdGVzdDEoKQoreworICAgIHdpbmRvdy5vbmVy
cm9yID0gZnVuY3Rpb24gKGVycm9yLCB1cmwsIGxpbmUpIHsKKyAgICAgICAgdXJsID0gdXJsID8g
dXJsLm1hdGNoKCAvW15cL10rXC8/JC8gKVswXSA6IHVybDsKKyAgICAgICAgbG9nKCJFcnJvciBj
YXVnaHQgc3VjY2Vzc2Z1bGx5OiAiICsgZXJyb3IgKyAiXG5GaWxlOiAiICsgdXJsICsgIlxuTGlu
ZTogIiArIGxpbmUpCisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9OworICAgIHVua25vd25P
YmplY3QudW5rbm93blByb3BlcnR5Kys7Cit9Cis8L3NjcmlwdD4KKzxib2R5IG9ubG9hZD0idGVz
dDEoKTsiPgorPHA+WW91IHNob3VsZCBzZWUgYSBtZXNzYWdlIGlmIHdpbmRvdy5vbmVycm9yIGlz
IHdvcmtpbmcgcHJvcGVybHkgZm9yIHRoaXMgdGVzdC48YSBocmVmPSJodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODUxOSI+QnVnIDg1MTk8L2E+LjwvcD4KKzxocj4KKzxk
aXYgaWQ9J2NvbnNvbGUnPjwvZGl2PgorPC9ib2R5PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
ZmFzdC9ldmVudHMvd2luZG93LW9uZXJyb3I0LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zh
c3QvZXZlbnRzL3dpbmRvdy1vbmVycm9yNC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMC4uMjZhZjhhMQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3Rz
L2Zhc3QvZXZlbnRzL3dpbmRvdy1vbmVycm9yNC1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw0IEBA
CitZb3Ugc2hvdWxkIHNlZSBhIGxvZyByZWNvcmQgaWYgd2luZG93Lm9uZXJyb3IgaXMgd29ya2lu
ZyBwcm9wZXJseSBmb3IgdGhpcyB0ZXN0LkJ1ZyA4NTE5LgorCitFcnJvciBjYXVnaHQgc3VjY2Vz
c2Z1bGx5OiBSZWZlcmVuY2VFcnJvcjogTGVmdCBzaWRlIG9mIGFzc2lnbm1lbnQgaXMgbm90IGEg
cmVmZXJlbmNlLiBGaWxlOiB1bmRlZmluZWQgTGluZTogMQorCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9mYXN0L2V2ZW50cy93aW5kb3ctb25lcnJvcjQuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3Qv
ZXZlbnRzL3dpbmRvdy1vbmVycm9yNC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAuLmM1MTg4N2QKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50
cy93aW5kb3ctb25lcnJvcjQuaHRtbApAQCAtMCwwICsxLDIzIEBACis8c2NyaXB0PgoraWYgKHdp
bmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKKyAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1w
QXNUZXh0KCk7CisKK2Z1bmN0aW9uIGxvZyhtc2cpIHsKKyAgICBkb2N1bWVudC5nZXRFbGVtZW50
QnlJZCgiY29uc29sZSIpLmlubmVySFRNTCArPSBtc2cgKyAiPGJyPiI7Cit9CisKK2Z1bmN0aW9u
IHRlc3QxKCkKK3sKKyAgICB3aW5kb3cub25lcnJvciA9IGZ1bmN0aW9uIChlcnJvciwgdXJsLCBs
aW5lKSB7CisgICAgICAgIHVybCA9IHVybCA/IHVybC5tYXRjaCggL1teXC9dK1wvPyQvIClbMF0g
OiB1cmw7CisgICAgICAgIGxvZygiRXJyb3IgY2F1Z2h0IHN1Y2Nlc3NmdWxseTogIiArIGVycm9y
ICsgIlxuRmlsZTogIiArIHVybCArICJcbkxpbmU6ICIgKyBsaW5lKQorICAgICAgICByZXR1cm4g
ZmFsc2U7CisgICAgfTsKKyAgICBldmFsKCIxPTIiKTsKK30KKzwvc2NyaXB0PgorPGJvZHkgb25s
b2FkPSJ0ZXN0MSgpOyI+Cis8cD5Zb3Ugc2hvdWxkIHNlZSBhIGxvZyByZWNvcmQgaWYgd2luZG93
Lm9uZXJyb3IgaXMgd29ya2luZyBwcm9wZXJseSBmb3IgdGhpcyB0ZXN0LjxhIGhyZWY9Imh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04NTE5Ij5CdWcgODUxOTwvYT4uPC9w
PgorPGhyPgorPGRpdiBpZD0nY29uc29sZSc+PC9kaXY+Cis8L2JvZHk+CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9mYXN0L2V2ZW50cy93aW5kb3ctb25lcnJvcjUtZXhwZWN0ZWQudHh0IGIvTGF5
b3V0VGVzdHMvZmFzdC9ldmVudHMvd2luZG93LW9uZXJyb3I1LWV4cGVjdGVkLnR4dApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zZWM3ZjVlCi0tLSAvZGV2L251bGwKKysrIGIv
TGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvd2luZG93LW9uZXJyb3I1LWV4cGVjdGVkLnR4dApAQCAt
MCwwICsxLDQgQEAKK1Rlc3QgdGhhdCB3aW5kb3cub25lcnJvciBpcyBpbnZva2VkIGZvciBzeW50
YXggZXJyb3IgaW4gZXZhbC4gWW91IHNob3VsZCBzZWUgYSBsb2cgcmVjb3JkIGlmIHdpbmRvdy5v
bmVycm9yIGlzIHdvcmtpbmcgcHJvcGVybHkgZm9yIHRoaXMgdGVzdC5CdWcgODUxOS4KKworRXJy
b3IgY2F1Z2h0IHN1Y2Nlc3NmdWxseTogU3ludGF4RXJyb3I6IFBhcnNlIGVycm9yIEZpbGU6IHVu
ZGVmaW5lZCBMaW5lOiAxCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3dp
bmRvdy1vbmVycm9yNS5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvd2luZG93LW9uZXJy
b3I1Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOTMyZDQzOAotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3dpbmRvdy1vbmVycm9yNS5o
dG1sCkBAIC0wLDAgKzEsMjMgQEAKKzxzY3JpcHQ+CitpZiAod2luZG93LmxheW91dFRlc3RDb250
cm9sbGVyKQorICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKKworZnVuY3Rp
b24gbG9nKG1zZykgeworICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjb25zb2xlIikuaW5u
ZXJIVE1MICs9IG1zZyArICI8YnI+IjsKK30KKworZnVuY3Rpb24gdGVzdDEoKQoreworICAgIHdp
bmRvdy5vbmVycm9yID0gZnVuY3Rpb24gKGVycm9yLCB1cmwsIGxpbmUpIHsKKyAgICAgICAgdXJs
ID0gdXJsID8gdXJsLm1hdGNoKCAvW15cL10rXC8/JC8gKVswXSA6IHVybDsKKyAgICAgICAgbG9n
KCJFcnJvciBjYXVnaHQgc3VjY2Vzc2Z1bGx5OiAiICsgZXJyb3IgKyAiXG5GaWxlOiAiICsgdXJs
ICsgIlxuTGluZTogIiArIGxpbmUpCisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9OworICAg
IGV2YWwoImEoIik7Cit9Cis8L3NjcmlwdD4KKzxib2R5IG9ubG9hZD0idGVzdDEoKTsiPgorPHA+
VGVzdCB0aGF0IHdpbmRvdy5vbmVycm9yIGlzIGludm9rZWQgZm9yIHN5bnRheCBlcnJvciBpbiBl
dmFsLiBZb3Ugc2hvdWxkIHNlZSBhIGxvZyByZWNvcmQgaWYgd2luZG93Lm9uZXJyb3IgaXMgd29y
a2luZyBwcm9wZXJseSBmb3IgdGhpcyB0ZXN0LjxhIGhyZWY9Imh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD04NTE5Ij5CdWcgODUxOTwvYT4uPC9wPgorPGhyPgorPGRpdiBp
ZD0nY29uc29sZSc+PC9kaXY+Cis8L2JvZHk+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0
L2V2ZW50cy93aW5kb3ctb25lcnJvcjYtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9l
dmVudHMvd2luZG93LW9uZXJyb3I2LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwLi5lN2MyN2JiCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFz
dC9ldmVudHMvd2luZG93LW9uZXJyb3I2LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDQgQEAKK1Rl
c3QgdGhhdCBzeW50YXggZXJyb3Igd2lsbCBiZSByZXBvcnRlZCB0byB0aGUgd2luZG93Lm9uZXJy
b3IgaGFuZGxlci4gQnVnIDg1MTkuCisKK01haW4gZnJhbWUgd2luZG93Lm9uZXJyb3I6IFN5bnRh
eEVycm9yOiBQYXJzZSBlcnJvciBhdCB3aW5kb3ctb25lcnJvcjYuaHRtbDoyMgorCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy93aW5kb3ctb25lcnJvcjYuaHRtbCBiL0xheW91
dFRlc3RzL2Zhc3QvZXZlbnRzL3dpbmRvdy1vbmVycm9yNi5odG1sCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAuLjE5Nzg0MzYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy9mYXN0L2V2ZW50cy93aW5kb3ctb25lcnJvcjYuaHRtbApAQCAtMCwwICsxLDI2IEBACis8aHRt
bD4KKzxib2R5PgorPHA+VGVzdCB0aGF0IHN5bnRheCBlcnJvciB3aWxsIGJlIHJlcG9ydGVkIHRv
IHRoZSB3aW5kb3cub25lcnJvciBoYW5kbGVyLiA8YSBocmVmPSJodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODUxOSI+QnVnIDg1MTk8L2E+LjwvcD4KKzxkaXYgaWQ9ImNv
bnNvbGUiPjwvZGl2PgorPHNjcmlwdD4KK2lmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIp
CisgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOworCitmdW5jdGlvbiBsb2co
bXNnKSB7CisgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNvbnNvbGUiKS5pbm5lckhUTUwg
Kz0gbXNnICsgIjxicj4iOworfQorCit3aW5kb3cub25lcnJvciA9IGZ1bmN0aW9uKG1zZywgdXJs
LCBsaW5lKQoreworICAgIHVybCA9IHVybCA/IHVybC5tYXRjaCggL1teXC9dK1wvPyQvIClbMF0g
OiB1cmw7CisgICAgbG9nKCJNYWluIGZyYW1lIHdpbmRvdy5vbmVycm9yOiAiICsgbXNnICsgIiBh
dCAiICsgdXJsICsgIjoiICsgbGluZSk7CisgICAgcmV0dXJuIGZhbHNlOworfQorPC9zY3JpcHQ+
Cis8c2NyaXB0PgorCithKSAvLyBzeW50YXggZXJyb3IKKworPC9zY3JpcHQ+Cis8L2JvZHk+Cis8
L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy93aW5kb3ctb25lcnJv
cjctZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvd2luZG93LW9uZXJyb3I3
LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41ZDIyZTdl
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvd2luZG93LW9uZXJy
b3I3LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDYgQEAKK0NPTlNPTEUgTUVTU0FHRTogbGluZSAy
MDogRXJyb3I6IE9yaWdpbmFsIGVycm9yCitDT05TT0xFIE1FU1NBR0U6IGxpbmUgMTc6IEVycm9y
OiBOZXN0ZWQgZXJyb3IKK1Rlc3QgdGhhdCBleGNlcHRpb24gaW4gd2luZG93Lm9uZXJyb3Igd29u
J3QgbGVhZCB0byByZWN1cnNpdmUgd2luZG93Lm9uZXJyb3IgY2FsbC4gQnVnIDg1MTkuCisKK01h
aW4gZnJhbWUgd2luZG93Lm9uZXJyb3I6IEVycm9yOiBPcmlnaW5hbCBlcnJvciBhdCB3aW5kb3ct
b25lcnJvcjcuaHRtbDoyMAorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy93
aW5kb3ctb25lcnJvcjcuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3dpbmRvdy1vbmVy
cm9yNy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmY2NjU2ODYKLS0t
IC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy93aW5kb3ctb25lcnJvcjcu
aHRtbApAQCAtMCwwICsxLDI0IEBACis8aHRtbD4KKzxib2R5PgorPHA+VGVzdCB0aGF0IGV4Y2Vw
dGlvbiBpbiB3aW5kb3cub25lcnJvciB3b24ndCBsZWFkIHRvIHJlY3Vyc2l2ZSB3aW5kb3cub25l
cnJvciBjYWxsLiA8YSBocmVmPSJodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9ODUxOSI+QnVnIDg1MTk8L2E+LjwvcD4KKzxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgorPHNj
cmlwdD4KK2lmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCisgICAgbGF5b3V0VGVzdENv
bnRyb2xsZXIuZHVtcEFzVGV4dCgpOworCitmdW5jdGlvbiBsb2cobXNnKSB7CisgICAgZG9jdW1l
bnQuZ2V0RWxlbWVudEJ5SWQoImNvbnNvbGUiKS5pbm5lckhUTUwgKz0gbXNnICsgIjxicj4iOwor
fQorCit3aW5kb3cub25lcnJvciA9IGZ1bmN0aW9uKG1zZywgdXJsLCBsaW5lKQoreworICAgIHVy
bCA9IHVybCA/IHVybC5tYXRjaCggL1teXC9dK1wvPyQvIClbMF0gOiB1cmw7CisgICAgbG9nKCJN
YWluIGZyYW1lIHdpbmRvdy5vbmVycm9yOiAiICsgbXNnICsgIiBhdCAiICsgdXJsICsgIjoiICsg
bGluZSk7CisgICAgdGhyb3cgbmV3IEVycm9yKCJOZXN0ZWQgZXJyb3IiKTsKK30KKwordGhyb3cg
bmV3IEVycm9yKCJPcmlnaW5hbCBlcnJvciIpOworCis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRt
bD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3dpbmRvdy1vbmVycm9yOC1l
eHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy93aW5kb3ctb25lcnJvcjgtZXhw
ZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmVmYzYzMDgKLS0t
IC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy93aW5kb3ctb25lcnJvcjgt
ZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNSBAQAorVGVzdCB0aGF0IHdpbmRvdy5vbmVycm9yIGlz
IGNhbGxlZCBvbiB3aW5kb3cgb2JqZWN0LiBCdWcgODUxOS4KKworTWFpbiBmcmFtZSB3aW5kb3cu
b25lcnJvcjogMjAxMCBhdCB1bmRlZmluZWQ6MAorUEFTU0VEOiB0aGlzID09PSB3aW5kb3cKKwpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvd2luZG93LW9uZXJyb3I4Lmh0bWwg
Yi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy93aW5kb3ctb25lcnJvcjguaHRtbApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iYWRlNTM4Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5
b3V0VGVzdHMvZmFzdC9ldmVudHMvd2luZG93LW9uZXJyb3I4Lmh0bWwKQEAgLTAsMCArMSwyOCBA
QAorPGh0bWw+Cis8Ym9keT4KKzxwPlRlc3QgdGhhdCB3aW5kb3cub25lcnJvciBpcyBjYWxsZWQg
b24gd2luZG93IG9iamVjdC4gPGEgaHJlZj0iaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTg1MTkiPkJ1ZyA4NTE5PC9hPi48L3A+Cis8ZGl2IGlkPSJjb25zb2xlIj48L2Rp
dj4KKzxzY3JpcHQ+CitpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQorICAgIGxheW91
dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKKworZnVuY3Rpb24gbG9nKG1zZykgeworICAg
IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjb25zb2xlIikuaW5uZXJIVE1MICs9IG1zZyArICI8
YnI+IjsKK30KKword2luZG93Lm9uZXJyb3IgPSBmdW5jdGlvbihtc2csIHVybCwgbGluZSkKK3sK
KyAgICB1cmwgPSB1cmwgPyB1cmwubWF0Y2goIC9bXlwvXStcLz8kLyApWzBdIDogdXJsOworICAg
IGxvZygiTWFpbiBmcmFtZSB3aW5kb3cub25lcnJvcjogIiArIG1zZyArICIgYXQgIiArIHVybCAr
ICI6IiArIGxpbmUpOworICAgIGlmICh0aGlzID09PSB3aW5kb3cpIAorICAgICAgICBsb2coIlBB
U1NFRDogdGhpcyA9PT0gd2luZG93Iik7CisgICAgZWxzZQorICAgICAgICBsb2coIkZBSUxFRDog
dGhpcyA9PT0gd2luZG93Iik7CisgICAgcmV0dXJuIGZhbHNlOworfQorCit0aHJvdyAyMDEwOwor
Cis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zh
c3QvZXZlbnRzL3dpbmRvdy1vbmVycm9yOS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0
L2V2ZW50cy93aW5kb3ctb25lcnJvcjktZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAuLjk0MzE2ZDMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9m
YXN0L2V2ZW50cy93aW5kb3ctb25lcnJvcjktZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsOCBAQAor
VGVzdCB0aGF0IHdoZW4gd2luZG93Lm9uZXJyb3IgaGFuZGxlciBpcyBjYWxsZWQsIHdpbmRvdy5l
dmVudCBpcyB0aGUgY29ycmVzcG9uZGluZyBFcnJvckV2ZW50IG9iamVjdC4gQnVnIDg1MTkuCisK
K01haW4gZnJhbWUgd2luZG93Lm9uZXJyb3I6IEVycm9yOiAyMDEwIGF0IHdpbmRvdy1vbmVycm9y
OS5odG1sOjMxCit3aW5kb3cuZXZlbnQudHlwZSA9IGVycm9yCit3aW5kb3cuZXZlbnQubWVzc2Fn
ZSA9IEVycm9yOiAyMDEwCit3aW5kb3cuZXZlbnQuZmlsZW5hbWUgPSB3aW5kb3ctb25lcnJvcjku
aHRtbAord2luZG93LmV2ZW50LmxpbmVubyA9IDMxCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2Zhc3QvZXZlbnRzL3dpbmRvdy1vbmVycm9yOS5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVu
dHMvd2luZG93LW9uZXJyb3I5Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MC4uMTA4NmFjZQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3dp
bmRvdy1vbmVycm9yOS5odG1sCkBAIC0wLDAgKzEsMzUgQEAKKzxodG1sPgorPGJvZHk+Cis8cD5U
ZXN0IHRoYXQgd2hlbiB3aW5kb3cub25lcnJvciBoYW5kbGVyIGlzIGNhbGxlZCwgd2luZG93LmV2
ZW50IGlzIHRoZSBjb3JyZXNwb25kaW5nIEVycm9yRXZlbnQgb2JqZWN0LiA8YSBocmVmPSJodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODUxOSI+QnVnIDg1MTk8L2E+Ljwv
cD4KKzxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgorPHNjcmlwdD4KK2lmICh3aW5kb3cubGF5b3V0
VGVzdENvbnRyb2xsZXIpIHsKKyAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7
CisgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIud2FpdFVudGlsRG9uZSgpOworfQorCitmdW5jdGlv
biBsb2cobXNnKSB7CisgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNvbnNvbGUiKS5pbm5l
ckhUTUwgKz0gbXNnICsgIjxicj4iOworfQorCitmdW5jdGlvbiBsYXN0UGF0aENvbXBvbmVudCh1
cmwpIHsKKyAgICByZXR1cm4gdXJsID8gdXJsLm1hdGNoKCAvW15cL10rXC8/JC8gKVswXSA6IHVy
bDsKK30KKword2luZG93Lm9uZXJyb3IgPSBmdW5jdGlvbihtc2csIHVybCwgbGluZSkKK3sKKyAg
ICBsb2coIk1haW4gZnJhbWUgd2luZG93Lm9uZXJyb3I6ICIgKyBtc2cgKyAiIGF0ICIgKyBsYXN0
UGF0aENvbXBvbmVudCh1cmwpICsgIjoiICsgbGluZSk7CisgICAgbG9nKCJ3aW5kb3cuZXZlbnQu
dHlwZSA9ICIgKyB3aW5kb3cuZXZlbnQudHlwZSk7CisgICAgbG9nKCJ3aW5kb3cuZXZlbnQubWVz
c2FnZSA9ICIgKyB3aW5kb3cuZXZlbnQubWVzc2FnZSk7CisgICAgbG9nKCJ3aW5kb3cuZXZlbnQu
ZmlsZW5hbWUgPSAiICsgbGFzdFBhdGhDb21wb25lbnQod2luZG93LmV2ZW50LmZpbGVuYW1lKSk7
CisgICAgbG9nKCJ3aW5kb3cuZXZlbnQubGluZW5vID0gIiArIHdpbmRvdy5ldmVudC5saW5lbm8p
OworICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCisgICAgICAgIGxheW91dFRl
c3RDb250cm9sbGVyLm5vdGlmeURvbmUoKTsKKyAgICByZXR1cm4gZmFsc2U7Cit9CisKK3Rocm93
IG5ldyBFcnJvcigyMDEwKTsKKworPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9mYXN0L3dvcmtlcnMvd29ya2VyLXNjcmlwdC1lcnJvci1leHBlY3Rl
ZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L3dvcmtlcnMvd29ya2VyLXNjcmlwdC1lcnJvci1leHBl
Y3RlZC50eHQKaW5kZXggMTBhYjA0OS4uNDA0MTY0MCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMv
ZmFzdC93b3JrZXJzL3dvcmtlci1zY3JpcHQtZXJyb3ItZXhwZWN0ZWQudHh0CisrKyBiL0xheW91
dFRlc3RzL2Zhc3Qvd29ya2Vycy93b3JrZXItc2NyaXB0LWVycm9yLWV4cGVjdGVkLnR4dApAQCAt
NCw4ICs0LDggQEAgVGVzdCBXb3JrZXIgc2NyaXB0IGVycm9yIGhhbmRsaW5nIGZ1bmN0aW9uYWxp
dHkuIFNob3VsZCBwcmludCBhIHNlcmllcyBvZiBQQVNTIG0KIFBBU1M6IG9uZXJyb3IgaW52b2tl
ZCBmb3IgYSBzY3JpcHQgdGhhdCBoYXMgaW52YWxpZCBzeW50YXguCiBQQVNTOiBvbmVycm9yIGlu
dm9rZWQgZm9yIGEgc2NyaXB0IHRoYXQgaGFzIHNjcmlwdCBlcnJvciAnUmVmZXJlbmNlRXJyb3I6
IENhbid0IGZpbmQgdmFyaWFibGU6IGZvbycgYXQgbGluZSAxLgogUEFTUzogZXZlbnQgbGlzdGVu
ZXIgaW52b2tlZCBmb3IgYSBzY3JpcHQgdGhhdCBoYXMgc2NyaXB0IGVycm9yICdSZWZlcmVuY2VF
cnJvcjogQ2FuJ3QgZmluZCB2YXJpYWJsZTogZm9vJyBhdCBsaW5lIDEuCi1QQVNTOiBvbmVycm9y
IGludm9rZWQgZm9yIGEgc2NyaXB0IHRoYXQgaGFzIHNjcmlwdCBlcnJvciAnUmVmZXJlbmNlRXJy
b3I6IENhbid0IGZpbmQgdmFyaWFibGU6IGJhcicgYXQgbGluZSAzLgogUEFTUzogb25lcnJvciBp
bnZva2VkIGZvciBhIHNjcmlwdCB0aGF0IGhhcyBzY3JpcHQgZXJyb3IgJ1JlZmVyZW5jZUVycm9y
OiBDYW4ndCBmaW5kIHZhcmlhYmxlOiBmb28nIGF0IGxpbmUgNy4KK1BBU1M6IG9uZXJyb3IgaW52
b2tlZCBmb3IgYSBzY3JpcHQgdGhhdCBoYXMgc2NyaXB0IGVycm9yICdSZWZlcmVuY2VFcnJvcjog
Q2FuJ3QgZmluZCB2YXJpYWJsZTogYmFyJyBhdCBsaW5lIDMuCiBQQVNTOiBvbmVycm9yIGludm9r
ZWQgZm9yIGEgc2NyaXB0IHRoYXQgaGFzIHNjcmlwdCBlcnJvciAnUmVmZXJlbmNlRXJyb3I6IENh
bid0IGZpbmQgdmFyaWFibGU6IGZvbycgYXQgbGluZSA3LgogUEFTUzogb25lcnJvciBpbnZva2Vk
IGZvciBhIHNjcmlwdCB0aGF0IGhhcyBzY3JpcHQgZXJyb3IgJ1JlZmVyZW5jZUVycm9yOiBDYW4n
dCBmaW5kIHZhcmlhYmxlOiBmb28nIGF0IGxpbmUgNy4KIFBBU1M6IG1lc3NhZ2UgcmVjZWl2ZWQg
ZnJvbSBXb3JrZXJHbG9iYWxTY29wZS5vbmVycm9yOiBvbmVycm9yIGludm9rZWQgZm9yIGEgc2Ny
aXB0IHRoYXQgaGFzIHNjcmlwdCBlcnJvciAnUmVmZXJlbmNlRXJyb3I6IENhbid0IGZpbmQgdmFy
aWFibGU6IGZvbycgYXQgbGluZSA3LgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy9zZWN1cml0eS9yZXNvdXJjZXMvb25lcnJvci1pZnJhbWUuaHRtbCBiL0xheW91dFRlc3RzL2h0
dHAvdGVzdHMvc2VjdXJpdHkvcmVzb3VyY2VzL29uZXJyb3ItaWZyYW1lLmh0bWwKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMzEyZmQxMgotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvcmVzb3VyY2VzL29uZXJyb3ItaWZyYW1lLmh0
bWwKQEAgLTAsMCArMSwxMSBAQAorPHNjcmlwdD4KK2Z1bmN0aW9uIGhhbmRsZUxvYWQoKQorewor
ICAgIHdpbmRvdy5wYXJlbnQucG9zdE1lc3NhZ2UoIklGcmFtZUxvYWRlZCIsICIqIik7Cit9CisK
K3Rocm93ICJJZnJhbWVFeGNlcHRpb24iOworCis8L3NjcmlwdD4KKzxib2R5IG9ubG9hZD0iaGFu
ZGxlTG9hZCgpIj4KKzwvYm9keT4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMv
c2VjdXJpdHkvd2luZG93LW9uZXJyb3ItZXhjZXB0aW9uLWluLWlmcmFtZS1leHBlY3RlZC50eHQg
Yi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L3dpbmRvdy1vbmVycm9yLWV4Y2VwdGlv
bi1pbi1pZnJhbWUtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAuLjhiMTdkOTIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Nl
Y3VyaXR5L3dpbmRvdy1vbmVycm9yLWV4Y2VwdGlvbi1pbi1pZnJhbWUtZXhwZWN0ZWQudHh0CkBA
IC0wLDAgKzEsNiBAQAorQ09OU09MRSBNRVNTQUdFOiBsaW5lIDA6IElmcmFtZUV4Y2VwdGlvbgor
VGVzdCB0aGF0IGV4Y2VwdGlvbnMgaW4gaWZyYW1lIGFyZSBub3QgcmVwb3J0ZWQgdG8gdGhlIG1h
aW4gZnJhbWUgd2luZG93Lm9uZXJyb3IgaGFuZGxlci4gd2luZG93Lm9uZXJyb3Igc2hvdWxkIHBy
aW50IGV4YWN0bHkgb25lIGxpbmUuCisKK01haW4gZnJhbWUgd2luZG93Lm9uZXJyb3I6IE1haW5G
cmFtZUV4Y2VwdGlvbiBhdCB1bmRlZmluZWQ6MAorRE9ORQorCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L3dpbmRvdy1vbmVycm9yLWV4Y2VwdGlvbi1pbi1pZnJh
bWUuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvd2luZG93LW9uZXJyb3It
ZXhjZXB0aW9uLWluLWlmcmFtZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAuLjA5MDRlMzkKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Nl
Y3VyaXR5L3dpbmRvdy1vbmVycm9yLWV4Y2VwdGlvbi1pbi1pZnJhbWUuaHRtbApAQCAtMCwwICsx
LDM5IEBACis8aHRtbD4KKzxib2R5PgorPHA+VGVzdCB0aGF0IGV4Y2VwdGlvbnMgaW4gaWZyYW1l
IGFyZSBub3QgcmVwb3J0ZWQgdG8gdGhlIG1haW4gZnJhbWUgd2luZG93Lm9uZXJyb3IgaGFuZGxl
ci4KK3dpbmRvdy5vbmVycm9yIHNob3VsZCBwcmludCBleGFjdGx5IG9uZSBsaW5lLjwvcD4KKzxk
aXYgaWQ9InJlc3VsdCI+PC9kaXY+Cis8c2NyaXB0PgoraWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29u
dHJvbGxlcikgeworICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKKyAgICBs
YXlvdXRUZXN0Q29udHJvbGxlci53YWl0VW50aWxEb25lKCk7Cit9CisKK2Z1bmN0aW9uIGxvZyht
c2cpIHsKKyAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicmVzdWx0IikuaW5uZXJIVE1MICs9
IG1zZyArICI8YnI+IjsKK30KKword2luZG93Lm9uZXJyb3IgPSBmdW5jdGlvbihtc2csIHVybCwg
bGluZSkKK3sKKyAgICB1cmwgPSB1cmwgPyB1cmwubWF0Y2goIC9bXlwvXStcLz8kLyApWzBdIDog
dXJsOworICAgIGxvZygiTWFpbiBmcmFtZSB3aW5kb3cub25lcnJvcjogIiArIG1zZyArICIgYXQg
IiArIHVybCArICI6IiArIGxpbmUpOworICAgIHJldHVybiBmYWxzZTsKK30KKworZnVuY3Rpb24g
cmVjZWl2ZU1lc3NhZ2UoZXZlbnQpIHsKKyAgICBpZiAoZXZlbnQuZGF0YSA9PT0gIklGcmFtZUxv
YWRlZCIpIHsKKyAgICAgICAgbG9nKCJET05FIik7CisgICAgICAgIGlmICh3aW5kb3cubGF5b3V0
VGVzdENvbnRyb2xsZXIpCisgICAgICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5ub3RpZnlE
b25lKCk7CisgICAgfSBlbHNlCisgICAgICAgIGxvZygiRkFJTCAiICsgZXZlbnQuZGF0YSk7Cit9
CisKK3dpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJtZXNzYWdlIiwgcmVjZWl2ZU1lc3NhZ2UsIGZh
bHNlKTsKKwordGhyb3cgIk1haW5GcmFtZUV4Y2VwdGlvbiI7CisKKzwvc2NyaXB0PgorPGlmcmFt
ZSBzcmM9Imh0dHA6Ly9sb2NhbGhvc3Q6ODAwMC9zZWN1cml0eS9yZXNvdXJjZXMvb25lcnJvci1p
ZnJhbWUuaHRtbCIvPgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
cGxhdGZvcm0vY2hyb21pdW0td2luL2Zhc3Qvd29ya2Vycy93b3JrZXItc2NyaXB0LWVycm9yLWV4
cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtLXdpbi9mYXN0L3dvcmtl
cnMvd29ya2VyLXNjcmlwdC1lcnJvci1leHBlY3RlZC50eHQKaW5kZXggZmRmNjYwYi4uZWYwYTM5
MSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0td2luL2Zhc3Qvd29y
a2Vycy93b3JrZXItc2NyaXB0LWVycm9yLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9w
bGF0Zm9ybS9jaHJvbWl1bS13aW4vZmFzdC93b3JrZXJzL3dvcmtlci1zY3JpcHQtZXJyb3ItZXhw
ZWN0ZWQudHh0CkBAIC0zLDggKzMsOCBAQCBUZXN0IFdvcmtlciBzY3JpcHQgZXJyb3IgaGFuZGxp
bmcgZnVuY3Rpb25hbGl0eS4gU2hvdWxkIHByaW50IGEgc2VyaWVzIG9mIFBBU1MgbQogUEFTUzog
b25lcnJvciBpbnZva2VkIGZvciBhIHNjcmlwdCB0aGF0IGhhcyBpbnZhbGlkIHN5bnRheC4KIFBB
U1M6IG9uZXJyb3IgaW52b2tlZCBmb3IgYSBzY3JpcHQgdGhhdCBoYXMgc2NyaXB0IGVycm9yICdV
bmNhdWdodCBSZWZlcmVuY2VFcnJvcjogZm9vIGlzIG5vdCBkZWZpbmVkJyBhdCBsaW5lIDEuCiBQ
QVNTOiBldmVudCBsaXN0ZW5lciBpbnZva2VkIGZvciBhIHNjcmlwdCB0aGF0IGhhcyBzY3JpcHQg
ZXJyb3IgJ1VuY2F1Z2h0IFJlZmVyZW5jZUVycm9yOiBmb28gaXMgbm90IGRlZmluZWQnIGF0IGxp
bmUgMS4KLVBBU1M6IG9uZXJyb3IgaW52b2tlZCBmb3IgYSBzY3JpcHQgdGhhdCBoYXMgc2NyaXB0
IGVycm9yICdVbmNhdWdodCBSZWZlcmVuY2VFcnJvcjogYmFyIGlzIG5vdCBkZWZpbmVkJyBhdCBs
aW5lIDMuCiBQQVNTOiBvbmVycm9yIGludm9rZWQgZm9yIGEgc2NyaXB0IHRoYXQgaGFzIHNjcmlw
dCBlcnJvciAnVW5jYXVnaHQgUmVmZXJlbmNlRXJyb3I6IGZvbyBpcyBub3QgZGVmaW5lZCcgYXQg
bGluZSA3LgorUEFTUzogb25lcnJvciBpbnZva2VkIGZvciBhIHNjcmlwdCB0aGF0IGhhcyBzY3Jp
cHQgZXJyb3IgJ1VuY2F1Z2h0IFJlZmVyZW5jZUVycm9yOiBiYXIgaXMgbm90IGRlZmluZWQnIGF0
IGxpbmUgMy4KIFBBU1M6IG9uZXJyb3IgaW52b2tlZCBmb3IgYSBzY3JpcHQgdGhhdCBoYXMgc2Ny
aXB0IGVycm9yICdVbmNhdWdodCBSZWZlcmVuY2VFcnJvcjogZm9vIGlzIG5vdCBkZWZpbmVkJyBh
dCBsaW5lIDcuCiBQQVNTOiBvbmVycm9yIGludm9rZWQgZm9yIGEgc2NyaXB0IHRoYXQgaGFzIHNj
cmlwdCBlcnJvciAnVW5jYXVnaHQgUmVmZXJlbmNlRXJyb3I6IGZvbyBpcyBub3QgZGVmaW5lZCcg
YXQgbGluZSA3LgogUEFTUzogbWVzc2FnZSByZWNlaXZlZCBmcm9tIFdvcmtlckdsb2JhbFNjb3Bl
Lm9uZXJyb3I6IG9uZXJyb3IgaW52b2tlZCBmb3IgYSBzY3JpcHQgdGhhdCBoYXMgc2NyaXB0IGVy
cm9yICdVbmNhdWdodCBSZWZlcmVuY2VFcnJvcjogZm9vIGlzIG5vdCBkZWZpbmVkJyBhdCBsaW5l
IDcuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS9mYXN0L2V2ZW50
cy93aW5kb3ctb25lcnJvcjEtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hy
b21pdW0vZmFzdC9ldmVudHMvd2luZG93LW9uZXJyb3IxLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42NWI2MjRiCi0tLSAvZGV2L251bGwKKysrIGIvTGF5
b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vZmFzdC9ldmVudHMvd2luZG93LW9uZXJyb3IxLWV4
cGVjdGVkLnR4dApAQCAtMCwwICsxLDMgQEAKK1RoaXMgcGFnZSB0ZXN0cyBzZXR0aW5nIG9uZXJy
b3IgaGFuZGxlcnMgdGhyb3VnaCB0aGUgRE9NLiBJZiBpdCBwYXNzZXMsIHlvdSB3aWxsIHNlZSAi
UEFTUyIgbWVzc2FnZXMgYmVsb3cuQnVnIDg1MTkuDQorDQorUEFTUzogY2F1Z2h0IGdsb2JhbCBl
cnJvcjogVW5jYXVnaHQgUmVmZXJlbmNlRXJyb3I6IGhhaGFoYV9nb29kX2x1Y2tfZmluZGluZ19t
ZSBpcyBub3QgZGVmaW5lZCBhdCB3aW5kb3ctb25lcnJvcjEuaHRtbDoyNQ0KZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL2Zhc3QvZXZlbnRzL3dpbmRvdy1vbmVycm9y
MTAtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vZmFzdC9ldmVu
dHMvd2luZG93LW9uZXJyb3IxMC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMC4uYjNkMmQzOQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3BsYXRm
b3JtL2Nocm9taXVtL2Zhc3QvZXZlbnRzL3dpbmRvdy1vbmVycm9yMTAtZXhwZWN0ZWQudHh0CkBA
IC0wLDAgKzEsMTEgQEAKK1Rlc3QgdGhhdCAiZXJyb3IiIGV2ZW50IGxpc3RlbmVyIGFkZGVkIHdp
dGggd2luZG93LmFkZEV2ZW50TGlzdGVuZXIgaXMgaW52b2tlZCBmb3IgdW5jYXVjaHQgZXhjZXB0
aW9ucy4gQnVnIDg1MTkuDQorDQorZXZlbnQgcGFzc2VkIHRvIHRoZSBsaXN0ZW5lciBpcyB0aGUg
c2FtZSBhcyB3aW5kb3cuZXZlbnQ6IHRydWUNCitFdmVudCBkZXRhaWxzOg0KK3R5cGU6IGVycm9y
DQorcGhhc2U6IDINCitjdXJyZW50VGFyZ2V0IGlzIHRoZSBnbG9iYWwgb2JqZWN0OiB0cnVlDQor
bWVzc2FnZTogVW5jYXVnaHQgRXJyb3I6IE15IGZhdWx0Lg0KK2ZpbGVuYW1lOiB3aW5kb3ctb25l
cnJvcjEwLmh0bWwNCitsaW5lbm86IDI5DQorDQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxh
dGZvcm0vY2hyb21pdW0vZmFzdC9ldmVudHMvd2luZG93LW9uZXJyb3IxMS1leHBlY3RlZC50eHQg
Yi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS9mYXN0L2V2ZW50cy93aW5kb3ctb25lcnJv
cjExLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45MmUz
Y2Y1Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vZmFz
dC9ldmVudHMvd2luZG93LW9uZXJyb3IxMS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw0IEBACitU
ZXN0IHRoYXQgd2luZG93Lm9uZXJyb3IgaXMgY2FsbGVkIG9uIHdpbmRvdyBvYmplY3QuIEJ1ZyA4
NTE5Lg0KKw0KK01haW4gZnJhbWUgd2luZG93Lm9uZXJyb3I6IFVuY2F1Z2h0IEVycm9yOiBBbiBl
eGNlcHRpb24gYXQgd2luZG93LW9uZXJyb3IuanM6Mg0KKw0KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL3BsYXRmb3JtL2Nocm9taXVtL2Zhc3QvZXZlbnRzL3dpbmRvdy1vbmVycm9yMi1leHBlY3Rl
ZC50eHQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS9mYXN0L2V2ZW50cy93aW5kb3ct
b25lcnJvcjItZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAu
LmY3YjE2MjEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1
bS9mYXN0L2V2ZW50cy93aW5kb3ctb25lcnJvcjItZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNiBA
QAorVGVzdCB0aGF0IHVuY2F1Z2h0IGV4Y2VwdGlvbnMgd2lsbCBiZSByZXBvcnRlZCB0byB0aGUg
d2luZG93Lm9uZXJyb3IgaGFuZGxlci4gQnVnIDg1MTkuDQorDQorTWFpbiBmcmFtZSB3aW5kb3cu
b25lcnJvcjogVW5jYXVnaHQgRXJyb3I6IElubGluZSBzY3JpcHQgZXhjZXB0aW9uIGF0IHdpbmRv
dy1vbmVycm9yMi5odG1sOjM1DQorTWFpbiBmcmFtZSB3aW5kb3cub25lcnJvcjogVW5jYXVnaHQg
RXhjZXB0aW9uIGluIG9ubG9hZCBhdCB3aW5kb3ctb25lcnJvcjIuaHRtbDoyDQorTWFpbiBmcmFt
ZSB3aW5kb3cub25lcnJvcjogVW5jYXVnaHQgRXJyb3I6IEV4Y2VwdGlvbiBpbiBzZXRUaW1lb3V0
IGF0IHdpbmRvdy1vbmVycm9yMi5odG1sOjI5DQorDQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
cGxhdGZvcm0vY2hyb21pdW0vZmFzdC9ldmVudHMvd2luZG93LW9uZXJyb3IzLWV4cGVjdGVkLnR4
dCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL2Zhc3QvZXZlbnRzL3dpbmRvdy1vbmVy
cm9yMy1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYTFi
OGJkNQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL2Zh
c3QvZXZlbnRzL3dpbmRvdy1vbmVycm9yMy1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw0IEBACitZ
b3Ugc2hvdWxkIHNlZSBhIG1lc3NhZ2UgaWYgd2luZG93Lm9uZXJyb3IgaXMgd29ya2luZyBwcm9w
ZXJseSBmb3IgdGhpcyB0ZXN0LkJ1ZyA4NTE5Lg0KKw0KK0Vycm9yIGNhdWdodCBzdWNjZXNzZnVs
bHk6IFVuY2F1Z2h0IFJlZmVyZW5jZUVycm9yOiB1bmtub3duT2JqZWN0IGlzIG5vdCBkZWZpbmVk
IEZpbGU6IHdpbmRvdy1vbmVycm9yMy5odG1sIExpbmU6IDE2DQorDQpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vZmFzdC9ldmVudHMvd2luZG93LW9uZXJyb3I0LWV4
cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL2Zhc3QvZXZlbnRzL3dp
bmRvdy1vbmVycm9yNC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMC4uNTBmMDllMAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2No
cm9taXVtL2Zhc3QvZXZlbnRzL3dpbmRvdy1vbmVycm9yNC1leHBlY3RlZC50eHQKQEAgLTAsMCAr
MSw0IEBACitZb3Ugc2hvdWxkIHNlZSBhIGxvZyByZWNvcmQgaWYgd2luZG93Lm9uZXJyb3IgaXMg
d29ya2luZyBwcm9wZXJseSBmb3IgdGhpcyB0ZXN0LkJ1ZyA4NTE5Lg0KKw0KK0Vycm9yIGNhdWdo
dCBzdWNjZXNzZnVsbHk6IFVuY2F1Z2h0IFJlZmVyZW5jZUVycm9yOiBJbnZhbGlkIGxlZnQtaGFu
ZCBzaWRlIGluIGFzc2lnbm1lbnQgRmlsZTogd2luZG93LW9uZXJyb3I0Lmh0bWwgTGluZTogMQ0K
Kw0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL2Zhc3QvZXZlbnRz
L3dpbmRvdy1vbmVycm9yNS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJv
bWl1bS9mYXN0L2V2ZW50cy93aW5kb3ctb25lcnJvcjUtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmU0NTM2OWUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS9mYXN0L2V2ZW50cy93aW5kb3ctb25lcnJvcjUtZXhw
ZWN0ZWQudHh0CkBAIC0wLDAgKzEsNCBAQAorVGVzdCB0aGF0IHdpbmRvdy5vbmVycm9yIGlzIGlu
dm9rZWQgZm9yIHN5bnRheCBlcnJvciBpbiBldmFsLiBZb3Ugc2hvdWxkIHNlZSBhIGxvZyByZWNv
cmQgaWYgd2luZG93Lm9uZXJyb3IgaXMgd29ya2luZyBwcm9wZXJseSBmb3IgdGhpcyB0ZXN0LkJ1
ZyA4NTE5Lg0KKw0KK0Vycm9yIGNhdWdodCBzdWNjZXNzZnVsbHk6IFVuY2F1Z2h0IFN5bnRheEVy
cm9yOiBVbmV4cGVjdGVkIGVuZCBvZiBpbnB1dCBGaWxlOiB3aW5kb3ctb25lcnJvcjUuaHRtbCBM
aW5lOiAxDQorDQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vZmFz
dC9ldmVudHMvd2luZG93LW9uZXJyb3I2LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3BsYXRm
b3JtL2Nocm9taXVtL2Zhc3QvZXZlbnRzL3dpbmRvdy1vbmVycm9yNi1leHBlY3RlZC50eHQKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMThlZDgxYQotLS0gL2Rldi9udWxsCisr
KyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL2Zhc3QvZXZlbnRzL3dpbmRvdy1vbmVy
cm9yNi1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw0IEBACitUZXN0IHRoYXQgc3ludGF4IGVycm9y
IHdpbGwgYmUgcmVwb3J0ZWQgdG8gdGhlIHdpbmRvdy5vbmVycm9yIGhhbmRsZXIuIEJ1ZyA4NTE5
Lg0KKw0KK01haW4gZnJhbWUgd2luZG93Lm9uZXJyb3I6IFVuY2F1Z2h0IFN5bnRheEVycm9yOiBV
bmV4cGVjdGVkIHRva2VuICkgYXQgd2luZG93LW9uZXJyb3I2Lmh0bWw6MjINCisNCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS9mYXN0L2V2ZW50cy93aW5kb3ctb25l
cnJvcjctZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vZmFzdC9l
dmVudHMvd2luZG93LW9uZXJyb3I3LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwLi4yM2QwNDA3Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvcGxh
dGZvcm0vY2hyb21pdW0vZmFzdC9ldmVudHMvd2luZG93LW9uZXJyb3I3LWV4cGVjdGVkLnR4dApA
QCAtMCwwICsxLDYgQEAKK0NPTlNPTEUgTUVTU0FHRTogbGluZSAyMDogVW5jYXVnaHQgRXJyb3I6
IE9yaWdpbmFsIGVycm9yDQorQ09OU09MRSBNRVNTQUdFOiBsaW5lIDE3OiBVbmNhdWdodCBFcnJv
cjogTmVzdGVkIGVycm9yDQorVGVzdCB0aGF0IGV4Y2VwdGlvbiBpbiB3aW5kb3cub25lcnJvciB3
b24ndCBsZWFkIHRvIHJlY3Vyc2l2ZSB3aW5kb3cub25lcnJvciBjYWxsLiBCdWcgODUxOS4NCisN
CitNYWluIGZyYW1lIHdpbmRvdy5vbmVycm9yOiBVbmNhdWdodCBFcnJvcjogT3JpZ2luYWwgZXJy
b3IgYXQgd2luZG93LW9uZXJyb3I3Lmh0bWw6MjANCisNCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9wbGF0Zm9ybS9jaHJvbWl1bS9mYXN0L2V2ZW50cy93aW5kb3ctb25lcnJvcjgtZXhwZWN0ZWQu
dHh0IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vZmFzdC9ldmVudHMvd2luZG93LW9u
ZXJyb3I4LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4x
M2YyYjMyCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0v
ZmFzdC9ldmVudHMvd2luZG93LW9uZXJyb3I4LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDUgQEAK
K1Rlc3QgdGhhdCB3aW5kb3cub25lcnJvciBpcyBjYWxsZWQgb24gd2luZG93IG9iamVjdC4gQnVn
IDg1MTkuDQorDQorTWFpbiBmcmFtZSB3aW5kb3cub25lcnJvcjogVW5jYXVnaHQgMjAxMCBhdCB3
aW5kb3ctb25lcnJvcjguaHRtbDoyNA0KK1BBU1NFRDogdGhpcyA9PT0gd2luZG93DQorDQpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vZmFzdC9ldmVudHMvd2luZG93
LW9uZXJyb3I5LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL2Zh
c3QvZXZlbnRzL3dpbmRvdy1vbmVycm9yOS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMC4uMTY3N2U1MAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3Rz
L3BsYXRmb3JtL2Nocm9taXVtL2Zhc3QvZXZlbnRzL3dpbmRvdy1vbmVycm9yOS1leHBlY3RlZC50
eHQKQEAgLTAsMCArMSw4IEBACitUZXN0IHRoYXQgd2hlbiB3aW5kb3cub25lcnJvciBoYW5kbGVy
IGlzIGNhbGxlZCwgd2luZG93LmV2ZW50IGlzIHRoZSBjb3JyZXNwb25kaW5nIEVycm9yRXZlbnQg
b2JqZWN0LiBCdWcgODUxOS4NCisNCitNYWluIGZyYW1lIHdpbmRvdy5vbmVycm9yOiBVbmNhdWdo
dCBFcnJvcjogMjAxMCBhdCB3aW5kb3ctb25lcnJvcjkuaHRtbDozMQ0KK3dpbmRvdy5ldmVudC50
eXBlID0gZXJyb3INCit3aW5kb3cuZXZlbnQubWVzc2FnZSA9IFVuY2F1Z2h0IEVycm9yOiAyMDEw
DQord2luZG93LmV2ZW50LmZpbGVuYW1lID0gd2luZG93LW9uZXJyb3I5Lmh0bWwNCit3aW5kb3cu
ZXZlbnQubGluZW5vID0gMzENCisNCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9j
aHJvbWl1bS9odHRwL3Rlc3RzL3NlY3VyaXR5L3dpbmRvdy1vbmVycm9yLWV4Y2VwdGlvbi1pbi1p
ZnJhbWUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vaHR0cC90
ZXN0cy9zZWN1cml0eS93aW5kb3ctb25lcnJvci1leGNlcHRpb24taW4taWZyYW1lLWV4cGVjdGVk
LnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45ZTljMmVhCi0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vaHR0cC90ZXN0cy9zZWN1
cml0eS93aW5kb3ctb25lcnJvci1leGNlcHRpb24taW4taWZyYW1lLWV4cGVjdGVkLnR4dApAQCAt
MCwwICsxLDYgQEAKK0NPTlNPTEUgTUVTU0FHRTogbGluZSA3OiBVbmNhdWdodCBJZnJhbWVFeGNl
cHRpb24NCitUZXN0IHRoYXQgZXhjZXB0aW9ucyBpbiBpZnJhbWUgYXJlIG5vdCByZXBvcnRlZCB0
byB0aGUgbWFpbiBmcmFtZSB3aW5kb3cub25lcnJvciBoYW5kbGVyLiB3aW5kb3cub25lcnJvciBz
aG91bGQgcHJpbnQgZXhhY3RseSBvbmUgbGluZS4NCisNCitNYWluIGZyYW1lIHdpbmRvdy5vbmVy
cm9yOiBVbmNhdWdodCBNYWluRnJhbWVFeGNlcHRpb24gYXQgd2luZG93LW9uZXJyb3ItZXhjZXB0
aW9uLWluLWlmcmFtZS5odG1sOjM0DQorRE9ORQ0KKw0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L3BsYXRmb3JtL2Nocm9taXVtL3VzZXJzY3JpcHRzL3dpbmRvdy1vbmVycm9yLWZvci1pc29sYXRl
ZC13b3JsZC0xLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL3Vz
ZXJzY3JpcHRzL3dpbmRvdy1vbmVycm9yLWZvci1pc29sYXRlZC13b3JsZC0xLWV4cGVjdGVkLnR4
dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yYTNkMDY4Ci0tLSAvZGV2L251
bGwKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vdXNlcnNjcmlwdHMvd2luZG93
LW9uZXJyb3ItZm9yLWlzb2xhdGVkLXdvcmxkLTEtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTQg
QEAKK1Rlc3QgdGhhdCB3aW5kb3cub25lcnJvciBhbmQgImVycm9yIiBldmVudCBsaXN0ZW5lcnMg
ZnJvbSBtYWluIHdvcmxkIGFyZSBpbnZva2VkIGZvciB1bmNhdWdodCBleGNlcHRpb25zIGluIHVz
ZXIgc2NyaXB0cyBydW5uaW5nIGluIGlzb2xhdGUgd29ybGRzIGFzIHdlbGwgYXMgZm9yIGV4Y2Vw
dGlvbnMgaW4gdGhlIG1haW4gd29ybGQuQnVnIDg1MTkuDQorDQorTWFpbiB3b3JsZCB3aW5kb3cu
b25lcnJvcjogVW5jYXVnaHQgRXJyb3I6IEVycm9yIGluIG1haW4gd29ybGQgaW5saW5lIHNjcmlw
dC4gYXQgd2luZG93LW9uZXJyb3ItZm9yLWlzb2xhdGVkLXdvcmxkLTEuaHRtbDo1NA0KK01haW4g
d29ybGQgZXJyb3IgZXZlbnQgbGlzdGVuZXI6IFVuY2F1Z2h0IEVycm9yOiBFcnJvciBpbiBtYWlu
IHdvcmxkIGlubGluZSBzY3JpcHQuIGF0IHdpbmRvdy1vbmVycm9yLWZvci1pc29sYXRlZC13b3Js
ZC0xLmh0bWw6NTQNCitNYWluIHdvcmxkIHdpbmRvdy5vbmVycm9yOiBVbmNhdWdodCBFcnJvcjog
RXJyb3IgaW4gdXNlciBzY3JpcHQgaW5saW5lIHNjcmlwdC4gYXQgOjEyDQorTWFpbiB3b3JsZCBl
cnJvciBldmVudCBsaXN0ZW5lcjogVW5jYXVnaHQgRXJyb3I6IEVycm9yIGluIHVzZXIgc2NyaXB0
IGlubGluZSBzY3JpcHQuIGF0IDoxMg0KK01haW4gd29ybGQgd2luZG93Lm9uZXJyb3I6IFVuY2F1
Z2h0IEVycm9yOiBFcnJvciBpbiBtYWluIHdvcmxkIGxvYWQgaGFuZGxlci4gYXQgd2luZG93LW9u
ZXJyb3ItZm9yLWlzb2xhdGVkLXdvcmxkLTEuaHRtbDo0Ng0KK01haW4gd29ybGQgZXJyb3IgZXZl
bnQgbGlzdGVuZXI6IFVuY2F1Z2h0IEVycm9yOiBFcnJvciBpbiBtYWluIHdvcmxkIGxvYWQgaGFu
ZGxlci4gYXQgd2luZG93LW9uZXJyb3ItZm9yLWlzb2xhdGVkLXdvcmxkLTEuaHRtbDo0Ng0KK01h
aW4gd29ybGQgd2luZG93Lm9uZXJyb3I6IFVuY2F1Z2h0IEVycm9yOiBFcnJvciBpbiB1c2VyIHNj
cmlwdCBsb2FkIGhhbmRsZXIuIGF0IDo0DQorTWFpbiB3b3JsZCBlcnJvciBldmVudCBsaXN0ZW5l
cjogVW5jYXVnaHQgRXJyb3I6IEVycm9yIGluIHVzZXIgc2NyaXB0IGxvYWQgaGFuZGxlci4gYXQg
OjQNCitNYWluIHdvcmxkIHdpbmRvdy5vbmVycm9yOiBVbmNhdWdodCBFcnJvcjogRXJyb3IgaW4g
bWFpbiB3b3JsZCBzZXRUaW1lb3V0IGNhbGxiYWNrLiBhdCB3aW5kb3ctb25lcnJvci1mb3ItaXNv
bGF0ZWQtd29ybGQtMS5odG1sOjUxDQorTWFpbiB3b3JsZCBlcnJvciBldmVudCBsaXN0ZW5lcjog
VW5jYXVnaHQgRXJyb3I6IEVycm9yIGluIG1haW4gd29ybGQgc2V0VGltZW91dCBjYWxsYmFjay4g
YXQgd2luZG93LW9uZXJyb3ItZm9yLWlzb2xhdGVkLXdvcmxkLTEuaHRtbDo1MQ0KK01haW4gd29y
bGQgd2luZG93Lm9uZXJyb3I6IFVuY2F1Z2h0IEVycm9yOiBFcnJvciBpbiB1c2VyIHNjcmlwdCBz
ZXRUaW1lb3V0IGNhbGxiYWNrLiBhdCA6OQ0KK01haW4gd29ybGQgZXJyb3IgZXZlbnQgbGlzdGVu
ZXI6IFVuY2F1Z2h0IEVycm9yOiBFcnJvciBpbiB1c2VyIHNjcmlwdCBzZXRUaW1lb3V0IGNhbGxi
YWNrLiBhdCA6OQ0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL3Vz
ZXJzY3JpcHRzL3dpbmRvdy1vbmVycm9yLWZvci1pc29sYXRlZC13b3JsZC0yLWV4cGVjdGVkLnR4
dCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL3VzZXJzY3JpcHRzL3dpbmRvdy1vbmVy
cm9yLWZvci1pc29sYXRlZC13b3JsZC0yLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwLi45Mzk5NGRiCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMv
cGxhdGZvcm0vY2hyb21pdW0vdXNlcnNjcmlwdHMvd2luZG93LW9uZXJyb3ItZm9yLWlzb2xhdGVk
LXdvcmxkLTItZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTMgQEAKK0NPTlNPTEUgTUVTU0FHRTog
bGluZSAzMDogVW5jYXVnaHQgRXJyb3I6IEVycm9yIGluIG1haW4gd29ybGQgaW5saW5lIHNjcmlw
dC4NCitUZXN0IHRoYXQgd2luZG93Lm9uZXJyb3IgYW5kICJlcnJvciIgZXZlbnQgbGlzdGVuZXJz
IGZyb20gaXNvbGF0ZWQgd29ybGQgYXJlIGludm9rZWQgZm9yIHVuY2F1Z2h0IGV4Y2VwdGlvbnMg
aW4gdXNlciBzY3JpcHRzIHJ1bm5pbmcgaW4gaXNvbGF0ZSB3b3JsZHMgYXMgd2VsbCBhcyBmb3Ig
ZXhjZXB0aW9ucyBpbiB0aGUgbWFpbiB3b3JsZC5CdWcgODUxOS4NCisNCit1c2VyIHNjcmlwdCB3
aW5kb3cub25lcnJvcjogVW5jYXVnaHQgRXJyb3I6IEVycm9yIGluIHVzZXIgc2NyaXB0IGlubGlu
ZSBzY3JpcHQuIGF0IDozMw0KK3VzZXIgc2NyaXB0IGVycm9yIGV2ZW50IGxpc3RlbmVyOiBVbmNh
dWdodCBFcnJvcjogRXJyb3IgaW4gdXNlciBzY3JpcHQgaW5saW5lIHNjcmlwdC4gYXQgOjMzDQor
dXNlciBzY3JpcHQgd2luZG93Lm9uZXJyb3I6IFVuY2F1Z2h0IEVycm9yOiBFcnJvciBpbiBtYWlu
IHdvcmxkIGxvYWQgaGFuZGxlci4gYXQgd2luZG93LW9uZXJyb3ItZm9yLWlzb2xhdGVkLXdvcmxk
LTIuaHRtbDoyMw0KK3VzZXIgc2NyaXB0IGVycm9yIGV2ZW50IGxpc3RlbmVyOiBVbmNhdWdodCBF
cnJvcjogRXJyb3IgaW4gbWFpbiB3b3JsZCBsb2FkIGhhbmRsZXIuIGF0IHdpbmRvdy1vbmVycm9y
LWZvci1pc29sYXRlZC13b3JsZC0yLmh0bWw6MjMNCit1c2VyIHNjcmlwdCB3aW5kb3cub25lcnJv
cjogVW5jYXVnaHQgRXJyb3I6IEVycm9yIGluIHVzZXIgc2NyaXB0IGxvYWQgaGFuZGxlci4gYXQg
OjI2DQordXNlciBzY3JpcHQgZXJyb3IgZXZlbnQgbGlzdGVuZXI6IFVuY2F1Z2h0IEVycm9yOiBF
cnJvciBpbiB1c2VyIHNjcmlwdCBsb2FkIGhhbmRsZXIuIGF0IDoyNg0KK3VzZXIgc2NyaXB0IHdp
bmRvdy5vbmVycm9yOiBVbmNhdWdodCBFcnJvcjogRXJyb3IgaW4gbWFpbiB3b3JsZCBzZXRUaW1l
b3V0IGNhbGxiYWNrLiBhdCB3aW5kb3ctb25lcnJvci1mb3ItaXNvbGF0ZWQtd29ybGQtMi5odG1s
OjI3DQordXNlciBzY3JpcHQgZXJyb3IgZXZlbnQgbGlzdGVuZXI6IFVuY2F1Z2h0IEVycm9yOiBF
cnJvciBpbiBtYWluIHdvcmxkIHNldFRpbWVvdXQgY2FsbGJhY2suIGF0IHdpbmRvdy1vbmVycm9y
LWZvci1pc29sYXRlZC13b3JsZC0yLmh0bWw6MjcNCit1c2VyIHNjcmlwdCB3aW5kb3cub25lcnJv
cjogVW5jYXVnaHQgRXJyb3I6IEVycm9yIGluIHVzZXIgc2NyaXB0IHNldFRpbWVvdXQgY2FsbGJh
Y2suIGF0IDozMA0KK3VzZXIgc2NyaXB0IGVycm9yIGV2ZW50IGxpc3RlbmVyOiBVbmNhdWdodCBF
cnJvcjogRXJyb3IgaW4gdXNlciBzY3JpcHQgc2V0VGltZW91dCBjYWxsYmFjay4gYXQgOjMwDQpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL1NraXBwZWQgYi9MYXlvdXRUZXN0
cy9wbGF0Zm9ybS9ndGsvU2tpcHBlZAppbmRleCA1ZTYwNDNmLi45ZTVkN2I5IDEwMDY0NAotLS0g
YS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvU2tpcHBlZAorKysgYi9MYXlvdXRUZXN0cy9wbGF0
Zm9ybS9ndGsvU2tpcHBlZApAQCAtNDcxNCw2ICs0NzE0LDggQEAgdXNlcnNjcmlwdHMvdXNlci1z
Y3JpcHQtcGx1Z2luLWRvY3VtZW50Lmh0bWwKIHVzZXJzY3JpcHRzL3VzZXItc2NyaXB0LXRvcC1m
cmFtZS1vbmx5Lmh0bWwKIHVzZXJzY3JpcHRzL3VzZXItc2NyaXB0LXZpZGVvLWRvY3VtZW50Lmh0
bWwKIHVzZXJzY3JpcHRzL3VzZXItc3R5bGUtdG9wLWZyYW1lLW9ubHkuaHRtbAordXNlcnNjcmlw
dHMvd2luZG93LW9uZXJyb3ItZm9yLWlzb2xhdGVkLXdvcmxkLTEuaHRtbAordXNlcnNjcmlwdHMv
d2luZG93LW9uZXJyb3ItZm9yLWlzb2xhdGVkLXdvcmxkLTIuaHRtbAogCiAjIFhIUiBzZW5kcyBz
b21ldGltZXMgeWllbGQgbnVsbCBieXRlcyBzZW50IGluc3RlYWQgb2YgMC4KIGh0dHAvdGVzdHMv
eG1saHR0cHJlcXVlc3Qvd29ya2Vycy9zaGFyZWQtd29ya2VyLW1ldGhvZHMuaHRtbApkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvdXNlcnNjcmlwdHMvd2luZG93LW9uZXJyb3ItZm9yLWlzb2xhdGVk
LXdvcmxkLTEtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvdXNlcnNjcmlwdHMvd2luZG93LW9u
ZXJyb3ItZm9yLWlzb2xhdGVkLXdvcmxkLTEtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAuLjY4OTVjNDEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy91c2Vyc2NyaXB0cy93aW5kb3ctb25lcnJvci1mb3ItaXNvbGF0ZWQtd29ybGQtMS1leHBlY3Rl
ZC50eHQKQEAgLTAsMCArMSwxNCBAQAorVGVzdCB0aGF0IHdpbmRvdy5vbmVycm9yIGFuZCAiZXJy
b3IiIGV2ZW50IGxpc3RlbmVycyBmcm9tIG1haW4gd29ybGQgYXJlIGludm9rZWQgZm9yIHVuY2F1
Z2h0IGV4Y2VwdGlvbnMgaW4gdXNlciBzY3JpcHRzIHJ1bm5pbmcgaW4gaXNvbGF0ZSB3b3JsZHMg
YXMgd2VsbCBhcyBmb3IgZXhjZXB0aW9ucyBpbiB0aGUgbWFpbiB3b3JsZC5CdWcgODUxOS4KKwor
TWFpbiB3b3JsZCB3aW5kb3cub25lcnJvcjogRXJyb3I6IEVycm9yIGluIG1haW4gd29ybGQgaW5s
aW5lIHNjcmlwdC4gYXQgd2luZG93LW9uZXJyb3ItZm9yLWlzb2xhdGVkLXdvcmxkLTEuaHRtbDo1
NAorTWFpbiB3b3JsZCBlcnJvciBldmVudCBsaXN0ZW5lcjogRXJyb3I6IEVycm9yIGluIG1haW4g
d29ybGQgaW5saW5lIHNjcmlwdC4gYXQgd2luZG93LW9uZXJyb3ItZm9yLWlzb2xhdGVkLXdvcmxk
LTEuaHRtbDo1NAorTWFpbiB3b3JsZCB3aW5kb3cub25lcnJvcjogRXJyb3I6IEVycm9yIGluIHVz
ZXIgc2NyaXB0IGlubGluZSBzY3JpcHQuIGF0IHVuZGVmaW5lZDoxMQorTWFpbiB3b3JsZCBlcnJv
ciBldmVudCBsaXN0ZW5lcjogRXJyb3I6IEVycm9yIGluIHVzZXIgc2NyaXB0IGlubGluZSBzY3Jp
cHQuIGF0IHVuZGVmaW5lZDoxMQorTWFpbiB3b3JsZCB3aW5kb3cub25lcnJvcjogRXJyb3I6IEVy
cm9yIGluIG1haW4gd29ybGQgbG9hZCBoYW5kbGVyLiBhdCB3aW5kb3ctb25lcnJvci1mb3ItaXNv
bGF0ZWQtd29ybGQtMS5odG1sOjQ2CitNYWluIHdvcmxkIGVycm9yIGV2ZW50IGxpc3RlbmVyOiBF
cnJvcjogRXJyb3IgaW4gbWFpbiB3b3JsZCBsb2FkIGhhbmRsZXIuIGF0IHdpbmRvdy1vbmVycm9y
LWZvci1pc29sYXRlZC13b3JsZC0xLmh0bWw6NDYKK01haW4gd29ybGQgd2luZG93Lm9uZXJyb3I6
IEVycm9yOiBFcnJvciBpbiB1c2VyIHNjcmlwdCBsb2FkIGhhbmRsZXIuIGF0IHVuZGVmaW5lZDoz
CitNYWluIHdvcmxkIGVycm9yIGV2ZW50IGxpc3RlbmVyOiBFcnJvcjogRXJyb3IgaW4gdXNlciBz
Y3JpcHQgbG9hZCBoYW5kbGVyLiBhdCB1bmRlZmluZWQ6MworTWFpbiB3b3JsZCB3aW5kb3cub25l
cnJvcjogRXJyb3I6IEVycm9yIGluIG1haW4gd29ybGQgc2V0VGltZW91dCBjYWxsYmFjay4gYXQg
d2luZG93LW9uZXJyb3ItZm9yLWlzb2xhdGVkLXdvcmxkLTEuaHRtbDo1MQorTWFpbiB3b3JsZCBl
cnJvciBldmVudCBsaXN0ZW5lcjogRXJyb3I6IEVycm9yIGluIG1haW4gd29ybGQgc2V0VGltZW91
dCBjYWxsYmFjay4gYXQgd2luZG93LW9uZXJyb3ItZm9yLWlzb2xhdGVkLXdvcmxkLTEuaHRtbDo1
MQorTWFpbiB3b3JsZCB3aW5kb3cub25lcnJvcjogRXJyb3I6IEVycm9yIGluIHVzZXIgc2NyaXB0
IHNldFRpbWVvdXQgY2FsbGJhY2suIGF0IHVuZGVmaW5lZDo4CitNYWluIHdvcmxkIGVycm9yIGV2
ZW50IGxpc3RlbmVyOiBFcnJvcjogRXJyb3IgaW4gdXNlciBzY3JpcHQgc2V0VGltZW91dCBjYWxs
YmFjay4gYXQgdW5kZWZpbmVkOjgKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3VzZXJzY3JpcHRz
L3dpbmRvdy1vbmVycm9yLWZvci1pc29sYXRlZC13b3JsZC0xLmh0bWwgYi9MYXlvdXRUZXN0cy91
c2Vyc2NyaXB0cy93aW5kb3ctb25lcnJvci1mb3ItaXNvbGF0ZWQtd29ybGQtMS5odG1sCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjNjNmJhYzIKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy91c2Vyc2NyaXB0cy93aW5kb3ctb25lcnJvci1mb3ItaXNvbGF0ZWQtd29y
bGQtMS5odG1sCkBAIC0wLDAgKzEsNjcgQEAKKzwhRE9DVFlQRSBIVE1MPgorPGh0bWw+Cis8aGVh
ZD4KKzwvaGVhZD4KKzxib2R5PgorPHA+VGVzdCB0aGF0IHdpbmRvdy5vbmVycm9yIGFuZCAiZXJy
b3IiIGV2ZW50IGxpc3RlbmVycyBmcm9tIG1haW4gd29ybGQgYXJlCitpbnZva2VkIGZvciB1bmNh
dWdodCBleGNlcHRpb25zIGluIHVzZXIgc2NyaXB0cyBydW5uaW5nIGluIGlzb2xhdGUgd29ybGRz
IGFzCit3ZWxsIGFzIGZvciBleGNlcHRpb25zIGluIHRoZSBtYWluIHdvcmxkLjxhIGhyZWY9Imh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04NTE5Ij5CdWcgODUxOS48L2E+
Cis8L3A+Cis8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KKzxzY3JpcHQ+CisKK3ZhciBleHBlY3Rl
ZFJlY29yZENvdW50ID0gMTI7Cit2YXIgcmVjb3JkQ291bnQgPSAwOworZG9jdW1lbnQuZ2V0RWxl
bWVudEJ5SWQoImNvbnNvbGUiKS5hZGRFdmVudExpc3RlbmVyKCJET01Ob2RlSW5zZXJ0ZWQiLCBm
dW5jdGlvbihlKSB7CisgICAgcmVjb3JkQ291bnQrKzsKKyAgICBpZiAocmVjb3JkQ291bnQgPT09
IGV4cGVjdGVkUmVjb3JkQ291bnQgJiYgd2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQorICAg
ICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5ub3RpZnlEb25lKCk7Cit9LCBmYWxzZSk7CisKK2Z1
bmN0aW9uIGxvZyhtc2cpIHsKKyAgICB2YXIgcmVjb3JkID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVu
dCgiZGl2Iik7CisgICAgcmVjb3JkLmlubmVySFRNTCA9IG1zZzsKKyAgICBkb2N1bWVudC5nZXRF
bGVtZW50QnlJZCgiY29uc29sZSIpLmFwcGVuZENoaWxkKHJlY29yZCk7Cit9CisKK2Z1bmN0aW9u
IGxhc3RVcmxDb21wb25lbnQodXJsKSB7CisgICAgcmV0dXJuIHVybCA/IHVybC5tYXRjaCggL1te
XC9dK1wvPyQvIClbMF0gOiB1cmw7Cit9CisKK3dpbmRvdy5vbmVycm9yID0gZnVuY3Rpb24obXNn
LCB1cmwsIGxpbmUpCit7CisgICAgbG9nKCJNYWluIHdvcmxkIHdpbmRvdy5vbmVycm9yOiAiICsg
bXNnICsgIiBhdCAiICsgbGFzdFVybENvbXBvbmVudCh1cmwpICsgIjoiICsgbGluZSk7CisgICAg
cmV0dXJuIGZhbHNlOworfQorCit3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigiZXJyb3IiLCBmdW5j
dGlvbihlKQoreworICAgIHZhciB1cmwgPSBsYXN0VXJsQ29tcG9uZW50KGUuZmlsZW5hbWUpOwor
ICAgIGxvZygiTWFpbiB3b3JsZCBlcnJvciBldmVudCBsaXN0ZW5lcjogIiArIGUubWVzc2FnZSAr
ICIgYXQgIiArIHVybCArICI6IiArIGUubGluZW5vKTsKK30sIGZhbHNlKTsKKwordmFyIGV4Y2Vw
dGlvbnMgPSBmdW5jdGlvbihpc29sYXRlZFdvcmxkKQoreworICAgIHdpbmRvdy5hZGRFdmVudExp
c3RlbmVyKCJsb2FkIiwgZnVuY3Rpb24oZSkgeworICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIkVy
cm9yIGluICIgKyBpc29sYXRlZFdvcmxkICsgIiBsb2FkIGhhbmRsZXIuIik7CisgICAgfSwgZmFs
c2UpOworCisKKyAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uKCkgeworICAgICAgICB0aHJvdyBuZXcg
RXJyb3IoIkVycm9yIGluICIgKyBpc29sYXRlZFdvcmxkICsgIiBzZXRUaW1lb3V0IGNhbGxiYWNr
LiIpOworICAgIH0sIDApOworCisgICAgdGhyb3cgbmV3IEVycm9yKCJFcnJvciBpbiAiKyBpc29s
YXRlZFdvcmxkICsgIiBpbmxpbmUgc2NyaXB0LiIpOworfQorCitpZiAod2luZG93LmxheW91dFRl
c3RDb250cm9sbGVyKSB7CisgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOwor
ICAgIGxheW91dFRlc3RDb250cm9sbGVyLndhaXRVbnRpbERvbmUoKTsKKyAgICBsYXlvdXRUZXN0
Q29udHJvbGxlci5hZGRVc2VyU2NyaXB0KCIoIiArIGV4Y2VwdGlvbnMgKyAiKSgndXNlciBzY3Jp
cHQnKSIsIGZhbHNlLCB0cnVlKTsKK30KKworZXhjZXB0aW9ucygibWFpbiB3b3JsZCIpOworCis8
L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3VzZXJz
Y3JpcHRzL3dpbmRvdy1vbmVycm9yLWZvci1pc29sYXRlZC13b3JsZC0yLWV4cGVjdGVkLnR4dCBi
L0xheW91dFRlc3RzL3VzZXJzY3JpcHRzL3dpbmRvdy1vbmVycm9yLWZvci1pc29sYXRlZC13b3Js
ZC0yLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iOTA5
YTk5Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvdXNlcnNjcmlwdHMvd2luZG93LW9u
ZXJyb3ItZm9yLWlzb2xhdGVkLXdvcmxkLTItZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTMgQEAK
K0NPTlNPTEUgTUVTU0FHRTogbGluZSAzMDogRXJyb3I6IEVycm9yIGluIG1haW4gd29ybGQgaW5s
aW5lIHNjcmlwdC4KK1Rlc3QgdGhhdCB3aW5kb3cub25lcnJvciBhbmQgImVycm9yIiBldmVudCBs
aXN0ZW5lcnMgZnJvbSBpc29sYXRlZCB3b3JsZCBhcmUgaW52b2tlZCBmb3IgdW5jYXVnaHQgZXhj
ZXB0aW9ucyBpbiB1c2VyIHNjcmlwdHMgcnVubmluZyBpbiBpc29sYXRlIHdvcmxkcyBhcyB3ZWxs
IGFzIGZvciBleGNlcHRpb25zIGluIHRoZSBtYWluIHdvcmxkLkJ1ZyA4NTE5LgorCit1c2VyIHNj
cmlwdCB3aW5kb3cub25lcnJvcjogRXJyb3I6IEVycm9yIGluIHVzZXIgc2NyaXB0IGlubGluZSBz
Y3JpcHQuIGF0IHVuZGVmaW5lZDozMQordXNlciBzY3JpcHQgZXJyb3IgZXZlbnQgbGlzdGVuZXI6
IEVycm9yOiBFcnJvciBpbiB1c2VyIHNjcmlwdCBpbmxpbmUgc2NyaXB0LiBhdCB1bmRlZmluZWQ6
MzEKK3VzZXIgc2NyaXB0IHdpbmRvdy5vbmVycm9yOiBFcnJvcjogRXJyb3IgaW4gbWFpbiB3b3Js
ZCBsb2FkIGhhbmRsZXIuIGF0IHdpbmRvdy1vbmVycm9yLWZvci1pc29sYXRlZC13b3JsZC0yLmh0
bWw6MjMKK3VzZXIgc2NyaXB0IGVycm9yIGV2ZW50IGxpc3RlbmVyOiBFcnJvcjogRXJyb3IgaW4g
bWFpbiB3b3JsZCBsb2FkIGhhbmRsZXIuIGF0IHdpbmRvdy1vbmVycm9yLWZvci1pc29sYXRlZC13
b3JsZC0yLmh0bWw6MjMKK3VzZXIgc2NyaXB0IHdpbmRvdy5vbmVycm9yOiBFcnJvcjogRXJyb3Ig
aW4gdXNlciBzY3JpcHQgbG9hZCBoYW5kbGVyLiBhdCB1bmRlZmluZWQ6MjQKK3VzZXIgc2NyaXB0
IGVycm9yIGV2ZW50IGxpc3RlbmVyOiBFcnJvcjogRXJyb3IgaW4gdXNlciBzY3JpcHQgbG9hZCBo
YW5kbGVyLiBhdCB1bmRlZmluZWQ6MjQKK3VzZXIgc2NyaXB0IHdpbmRvdy5vbmVycm9yOiBFcnJv
cjogRXJyb3IgaW4gbWFpbiB3b3JsZCBzZXRUaW1lb3V0IGNhbGxiYWNrLiBhdCB3aW5kb3ctb25l
cnJvci1mb3ItaXNvbGF0ZWQtd29ybGQtMi5odG1sOjI3Cit1c2VyIHNjcmlwdCBlcnJvciBldmVu
dCBsaXN0ZW5lcjogRXJyb3I6IEVycm9yIGluIG1haW4gd29ybGQgc2V0VGltZW91dCBjYWxsYmFj
ay4gYXQgd2luZG93LW9uZXJyb3ItZm9yLWlzb2xhdGVkLXdvcmxkLTIuaHRtbDoyNwordXNlciBz
Y3JpcHQgd2luZG93Lm9uZXJyb3I6IEVycm9yOiBFcnJvciBpbiB1c2VyIHNjcmlwdCBzZXRUaW1l
b3V0IGNhbGxiYWNrLiBhdCB1bmRlZmluZWQ6MjgKK3VzZXIgc2NyaXB0IGVycm9yIGV2ZW50IGxp
c3RlbmVyOiBFcnJvcjogRXJyb3IgaW4gdXNlciBzY3JpcHQgc2V0VGltZW91dCBjYWxsYmFjay4g
YXQgdW5kZWZpbmVkOjI4CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy91c2Vyc2NyaXB0cy93aW5k
b3ctb25lcnJvci1mb3ItaXNvbGF0ZWQtd29ybGQtMi5odG1sIGIvTGF5b3V0VGVzdHMvdXNlcnNj
cmlwdHMvd2luZG93LW9uZXJyb3ItZm9yLWlzb2xhdGVkLXdvcmxkLTIuaHRtbApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hNmVjNjk5Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5
b3V0VGVzdHMvdXNlcnNjcmlwdHMvd2luZG93LW9uZXJyb3ItZm9yLWlzb2xhdGVkLXdvcmxkLTIu
aHRtbApAQCAtMCwwICsxLDY3IEBACis8IURPQ1RZUEUgSFRNTD4KKzxodG1sPgorPGhlYWQ+Cis8
L2hlYWQ+Cis8Ym9keT4KKzxwPlRlc3QgdGhhdCB3aW5kb3cub25lcnJvciBhbmQgImVycm9yIiBl
dmVudCBsaXN0ZW5lcnMgZnJvbSBpc29sYXRlZCB3b3JsZCBhcmUKK2ludm9rZWQgZm9yIHVuY2F1
Z2h0IGV4Y2VwdGlvbnMgaW4gdXNlciBzY3JpcHRzIHJ1bm5pbmcgaW4gaXNvbGF0ZSB3b3JsZHMg
YXMKK3dlbGwgYXMgZm9yIGV4Y2VwdGlvbnMgaW4gdGhlIG1haW4gd29ybGQuPGEgaHJlZj0iaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTg1MTkiPkJ1ZyA4NTE5LjwvYT4K
KzwvcD4KKzxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgorPHNjcmlwdD4KKwordmFyIGV4cGVjdGVk
UmVjb3JkQ291bnQgPSAxMDsKK3ZhciByZWNvcmRDb3VudCA9IDA7Citkb2N1bWVudC5nZXRFbGVt
ZW50QnlJZCgiY29uc29sZSIpLmFkZEV2ZW50TGlzdGVuZXIoIkRPTU5vZGVJbnNlcnRlZCIsIGZ1
bmN0aW9uKGUpIHsKKyAgICBpZiAoKytyZWNvcmRDb3VudCA9PT0gZXhwZWN0ZWRSZWNvcmRDb3Vu
dCAmJiB3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCisgICAgICAgIGxheW91dFRlc3RDb250
cm9sbGVyLm5vdGlmeURvbmUoKTsKK30sIGZhbHNlKTsKKwordmFyIHRocm93RXhjZXB0aW9ucyA9
IGZ1bmN0aW9uKGlzb2xhdGVkV29ybGQpCit7CisgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIo
ImxvYWQiLCBmdW5jdGlvbihlKSB7CisgICAgICAgIHRocm93IG5ldyBFcnJvcigiRXJyb3IgaW4g
IiArIGlzb2xhdGVkV29ybGQgKyAiIGxvYWQgaGFuZGxlci4iKTsKKyAgICB9LCBmYWxzZSk7CisK
KyAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uKCkgeworICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIkVy
cm9yIGluICIgKyBpc29sYXRlZFdvcmxkICsgIiBzZXRUaW1lb3V0IGNhbGxiYWNrLiIpOworICAg
IH0sIDApOworICAgIAorICAgIHRocm93IG5ldyBFcnJvcigiRXJyb3IgaW4gIisgaXNvbGF0ZWRX
b3JsZCArICIgaW5saW5lIHNjcmlwdC4iKTsKK307CisKK3ZhciBlcnJvckhhbmRsZXJzID0gZnVu
Y3Rpb24oaXNvbGF0ZWRXb3JsZCkKK3sKKyAgICBmdW5jdGlvbiBsYXN0VXJsQ29tcG9uZW50KHVy
bCkgeworICAgICAgICByZXR1cm4gdXJsID8gdXJsLm1hdGNoKCAvW15cL10rXC8/JC8gKVswXSA6
IHVybDsKKyAgICB9CisKKyAgICBmdW5jdGlvbiBsb2cobXNnKSB7CisgICAgICAgIHZhciByZWNv
cmQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTsKKyAgICAgICAgcmVjb3JkLmlubmVy
SFRNTCA9IG1zZzsKKyAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNvbnNvbGUiKS5h
cHBlbmRDaGlsZChyZWNvcmQpOworICAgIH0KKworICAgIHdpbmRvdy5vbmVycm9yID0gZnVuY3Rp
b24obXNnLCB1cmwsIGxpbmUpIHsKKyAgICAgICAgbG9nKGlzb2xhdGVkV29ybGQgKyAiIHdpbmRv
dy5vbmVycm9yOiAiICsgbXNnICsgIiBhdCAiICsgbGFzdFVybENvbXBvbmVudCh1cmwpICsgIjoi
ICsgbGluZSwgIioiKTsKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KKworICAgIHdpbmRv
dy5hZGRFdmVudExpc3RlbmVyKCJlcnJvciIsIGZ1bmN0aW9uKGUpIHsKKyAgICAgICAgdmFyIHVy
bCA9IGxhc3RVcmxDb21wb25lbnQoZS5maWxlbmFtZSk7CisgICAgICAgIGxvZyhpc29sYXRlZFdv
cmxkICsgIiBlcnJvciBldmVudCBsaXN0ZW5lcjogIiArIGUubWVzc2FnZSArICIgYXQgIiArIHVy
bCArICI6IiArIGUubGluZW5vLCAiKiIpOworICAgICAgICBlLnByZXZlbnREZWZhdWx0KCk7Cisg
ICAgfSwgZmFsc2UpOworfTsKKworaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikgewor
ICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKKyAgICBsYXlvdXRUZXN0Q29u
dHJvbGxlci53YWl0VW50aWxEb25lKCk7CisgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuYWRkVXNl
clNjcmlwdCgiKCIgKyBlcnJvckhhbmRsZXJzICsgIikoJ3VzZXIgc2NyaXB0Jyk7ICgiICsgdGhy
b3dFeGNlcHRpb25zICsgIikoJ3VzZXIgc2NyaXB0JykiLCBmYWxzZSwgdHJ1ZSk7Cit9CisKK3Ro
cm93RXhjZXB0aW9ucygibWFpbiB3b3JsZCIpOworCis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRt
bD4KZGlmZiAtLWdpdCBhL1dlYkNvcmUvQW5kcm9pZC5qc2NiaW5kaW5ncy5tayBiL1dlYkNvcmUv
QW5kcm9pZC5qc2NiaW5kaW5ncy5tawppbmRleCA2NTNkZmVjLi5lN2ZkMmZjIDEwMDY0NAotLS0g
YS9XZWJDb3JlL0FuZHJvaWQuanNjYmluZGluZ3MubWsKKysrIGIvV2ViQ29yZS9BbmRyb2lkLmpz
Y2JpbmRpbmdzLm1rCkBAIC0xMDIsNiArMTAyLDcgQEAgTE9DQUxfU1JDX0ZJTEVTICs9IFwKIAli
aW5kaW5ncy9qcy9KU0RldmljZU9yaWVudGF0aW9uRXZlbnRDdXN0b20uY3BwIFwKIAliaW5kaW5n
cy9qcy9KU0RvY3VtZW50Q3VzdG9tLmNwcCBcCiAJYmluZGluZ3MvanMvSlNFbGVtZW50Q3VzdG9t
LmNwcCBcCisJYmluZGluZ3MvanMvSlNFcnJvckhhbmRsZXIuY3BwIFwKIAliaW5kaW5ncy9qcy9K
U0V2ZW50Q3VzdG9tLmNwcCBcCiAJYmluZGluZ3MvanMvSlNFdmVudExpc3RlbmVyLmNwcCBcCiAJ
YmluZGluZ3MvanMvSlNFdmVudFRhcmdldC5jcHAgXApAQCAtMTcwLDcgKzE3MSw2IEBAIExPQ0FM
X1NSQ19GSUxFUyArPSBcCiAJYmluZGluZ3MvanMvSlNXZWJLaXRQb2ludEN1c3RvbS5jcHAgXAog
CWJpbmRpbmdzL2pzL0pTV29ya2VyQ29udGV4dEJhc2UuY3BwIFwKIAliaW5kaW5ncy9qcy9KU1dv
cmtlckNvbnRleHRDdXN0b20uY3BwIFwKLQliaW5kaW5ncy9qcy9KU1dvcmtlckNvbnRleHRFcnJv
ckhhbmRsZXIuY3BwIFwKIAliaW5kaW5ncy9qcy9KU1dvcmtlckN1c3RvbS5jcHAgXAogCWJpbmRp
bmdzL2pzL0pTWE1MSHR0cFJlcXVlc3RDdXN0b20uY3BwIFwKIAliaW5kaW5ncy9qcy9KU1hNTEh0
dHBSZXF1ZXN0VXBsb2FkQ3VzdG9tLmNwcCBcCmRpZmYgLS1naXQgYS9XZWJDb3JlL0NNYWtlTGlz
dHMudHh0IGIvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAppbmRleCA3YzZlM2U1Li43M2NjNzUxIDEw
MDY0NAotLS0gYS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CisrKyBiL1dlYkNvcmUvQ01ha2VMaXN0
cy50eHQKQEAgLTYzNSw2ICs2MzUsNyBAQCBTRVQoV2ViQ29yZV9TT1VSQ0VTCiAgICAgYmluZGlu
Z3MvanMvSlNEZXZpY2VPcmllbnRhdGlvbkV2ZW50Q3VzdG9tLmNwcAogICAgIGJpbmRpbmdzL2pz
L0pTRG9jdW1lbnRDdXN0b20uY3BwCiAgICAgYmluZGluZ3MvanMvSlNFbGVtZW50Q3VzdG9tLmNw
cAorICAgIGJpbmRpbmdzL2pzL0pTRXJyb3JIYW5kbGVyLmNwcAogICAgIGJpbmRpbmdzL2pzL0pT
RXZlbnRDdXN0b20uY3BwCiAgICAgYmluZGluZ3MvanMvSlNFdmVudExpc3RlbmVyLmNwcAogICAg
IGJpbmRpbmdzL2pzL0pTRXZlbnRTb3VyY2VDdXN0b20uY3BwCkBAIC03MDQsNyArNzA1LDYgQEAg
U0VUKFdlYkNvcmVfU09VUkNFUwogICAgIGJpbmRpbmdzL2pzL0pTV2ViU29ja2V0Q3VzdG9tLmNw
cAogICAgIGJpbmRpbmdzL2pzL0pTV29ya2VyQ29udGV4dEJhc2UuY3BwCiAgICAgYmluZGluZ3Mv
anMvSlNXb3JrZXJDb250ZXh0Q3VzdG9tLmNwcAotICAgIGJpbmRpbmdzL2pzL0pTV29ya2VyQ29u
dGV4dEVycm9ySGFuZGxlci5jcHAKICAgICBiaW5kaW5ncy9qcy9KU1dvcmtlckN1c3RvbS5jcHAK
ICAgICBiaW5kaW5ncy9qcy9KU1hNTEh0dHBSZXF1ZXN0Q3VzdG9tLmNwcAogICAgIGJpbmRpbmdz
L2pzL0pTWE1MSHR0cFJlcXVlc3RVcGxvYWRDdXN0b20uY3BwCmRpZmYgLS1naXQgYS9XZWJDb3Jl
L0NoYW5nZUxvZyBiL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IGViZjIzYzUuLjE5YjEzZWQgMTAw
NjQ0Ci0tLSBhL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0x
LDMgKzEsMTEyIEBACisyMDEwLTEyLTI3ICBZdXJ5IFNlbWlraGF0c2t5ICA8eXVyeXNAY2hyb21p
dW0ub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IFdlYkNvcmUgZG9lc24ndCBmaXJlIHdpbmRvdy5vbmVycm9yIGV2ZW50IHdoZW4gdW5jYXVnaHQg
SmF2YVNjcmlwdCBleGNlcHRpb25zIGFyZSB0aHJvd24KKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTg1MTkKKworICAgICAgICBVbmNhdWdodCBleGNlcHRp
b25zIGFyZSBwcm9wYWdhdGVkIHRvIHdpbmRvdy5vbmVycm9yIGhhbmRlciBpZiBvbmUgaXMgcHJl
c2VudC4KKyAgICAgICAgVGhlIGhhbmRsZXIgaXMgZXhwZWN0ZWQgdG8gYmUgYSBmdW5jdGlvbiBh
Y2NlcHRpbmcgdGhyZWUgYXJndW1lbnRzOiBlcnJvciBtZXNzYWdlLAorICAgICAgICByZXNvdXJj
ZSB1cmwgYW5kIGxpbmUgbnVtYmVyIHdoZXJlIHRoZSBleGNlcHRpb24gb2NjdXJlZC4KKworICAg
ICAgICBJdCB3YXMgZGVjaWRlZCB0byBkaXNwYXRjaCBFcnJvckV2ZW50IHRvIGFsbCBsaXN0ZW5l
cnMvaGFuZGxlcnMgbm8gbWF0dGVyIGlmIHRoZXkKKyAgICAgICAgd2VyZSBjcmVhdGVkIGluIHRo
ZSBzYW1lIGlzb2xhdGVkIHdvcmxkIHdoZXJlIHRoZSBleGNlcHRpb24gb2NjdXJlZCBvciBub3Qu
CisKKyAgICAgICAgVGVzdHM6IGZhc3QvZXZlbnRzL3dpbmRvdy1vbmVycm9yMS5odG1sCisgICAg
ICAgICAgICAgICBmYXN0L2V2ZW50cy93aW5kb3ctb25lcnJvcjEwLmh0bWwKKyAgICAgICAgICAg
ICAgIGZhc3QvZXZlbnRzL3dpbmRvdy1vbmVycm9yMTEuaHRtbAorICAgICAgICAgICAgICAgZmFz
dC9ldmVudHMvd2luZG93LW9uZXJyb3IxMi5odG1sCisgICAgICAgICAgICAgICBmYXN0L2V2ZW50
cy93aW5kb3ctb25lcnJvcjIuaHRtbAorICAgICAgICAgICAgICAgZmFzdC9ldmVudHMvd2luZG93
LW9uZXJyb3IzLmh0bWwKKyAgICAgICAgICAgICAgIGZhc3QvZXZlbnRzL3dpbmRvdy1vbmVycm9y
NC5odG1sCisgICAgICAgICAgICAgICBmYXN0L2V2ZW50cy93aW5kb3ctb25lcnJvcjUuaHRtbAor
ICAgICAgICAgICAgICAgZmFzdC9ldmVudHMvd2luZG93LW9uZXJyb3I2Lmh0bWwKKyAgICAgICAg
ICAgICAgIGZhc3QvZXZlbnRzL3dpbmRvdy1vbmVycm9yNy5odG1sCisgICAgICAgICAgICAgICBm
YXN0L2V2ZW50cy93aW5kb3ctb25lcnJvcjguaHRtbAorICAgICAgICAgICAgICAgZmFzdC9ldmVu
dHMvd2luZG93LW9uZXJyb3I5Lmh0bWwKKyAgICAgICAgICAgICAgIGh0dHAvdGVzdHMvc2VjdXJp
dHkvd2luZG93LW9uZXJyb3ItZXhjZXB0aW9uLWluLWlmcmFtZS5odG1sCisgICAgICAgICAgICAg
ICB1c2Vyc2NyaXB0cy93aW5kb3ctb25lcnJvci1mb3ItaXNvbGF0ZWQtd29ybGQtMS5odG1sCisg
ICAgICAgICAgICAgICB1c2Vyc2NyaXB0cy93aW5kb3ctb25lcnJvci1mb3ItaXNvbGF0ZWQtd29y
bGQtMi5odG1sCisKKyAgICAgICAgKiBBbmRyb2lkLmpzY2JpbmRpbmdzLm1rOgorICAgICAgICAq
IENNYWtlTGlzdHMudHh0OgorICAgICAgICAqIEdOVW1ha2VmaWxlLmFtOgorICAgICAgICAqIFdl
YkNvcmUuZ3lwaToKKyAgICAgICAgKiBXZWJDb3JlLm9yZGVyOgorICAgICAgICAqIFdlYkNvcmUu
cHJvOgorICAgICAgICAqIFdlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qOgorICAgICAgICAq
IFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBiaW5kaW5ncy9q
cy9KU0JpbmRpbmdzQWxsSW5PbmUuY3BwOgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pTRE9NQmlu
ZGluZy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpyZXBvcnRFeGNlcHRpb24pOgorICAgICAgICAq
IGJpbmRpbmdzL2pzL0pTRXJyb3JIYW5kbGVyLmNwcDogUmVuYW1lZCBmcm9tIFdlYkNvcmUvYmlu
ZGluZ3MvanMvSlNXb3JrZXJDb250ZXh0RXJyb3JIYW5kbGVyLmNwcC4KKyAgICAgICAgKFdlYkNv
cmU6OkpTRXJyb3JIYW5kbGVyOjpKU0Vycm9ySGFuZGxlcik6CisgICAgICAgIChXZWJDb3JlOjpK
U0Vycm9ySGFuZGxlcjo6fkpTRXJyb3JIYW5kbGVyKToKKyAgICAgICAgKFdlYkNvcmU6OkpTRXJy
b3JIYW5kbGVyOjpoYW5kbGVFdmVudCk6CisgICAgICAgICogYmluZGluZ3MvanMvSlNFcnJvckhh
bmRsZXIuaDogQ29waWVkIGZyb20gV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1dvcmtlckNvbnRleHRF
cnJvckhhbmRsZXIuaC4KKyAgICAgICAgKFdlYkNvcmU6OkpTRXJyb3JIYW5kbGVyOjpjcmVhdGUp
OgorICAgICAgICAoV2ViQ29yZTo6Y3JlYXRlSlNFcnJvckhhbmRsZXIpOgorICAgICAgICAqIGJp
bmRpbmdzL2pzL0pTRXZlbnRMaXN0ZW5lci5oOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMv
Q29kZUdlbmVyYXRvckpTLnBtOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVy
YXRvclY4LnBtOgorICAgICAgICAqIGJpbmRpbmdzL3Y4L1Y4Q29uc29sZU1lc3NhZ2UuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6VjhDb25zb2xlTWVzc2FnZTo6ZGlzcGF0Y2hOb3cpOgorICAgICAg
ICAoV2ViQ29yZTo6VjhDb25zb2xlTWVzc2FnZTo6aGFuZGxlcik6IHRoZSBtZXRob2Qgd2FzIGNo
YW5nZWQgdG8gdXNlIGdlbmVyaWMgV2ViQ29yZSBleGNlcHRpb24KKyAgICAgICAgcmVwb3J0aW5n
IG1lY2hhbmlzbSB3aGljaCBpcyBhbHNvIHVzZWQgYnkgSlNDIGJpbmRpbmdzLgorICAgICAgICAq
IGJpbmRpbmdzL3Y4L1Y4Q29uc29sZU1lc3NhZ2UuaDoKKyAgICAgICAgKiBiaW5kaW5ncy92OC9W
OEV2ZW50TGlzdGVuZXIuaDoKKyAgICAgICAgKiBiaW5kaW5ncy92OC9WOFdpbmRvd0Vycm9ySGFu
ZGxlci5jcHA6IFJlbmFtZWQgZnJvbSBXZWJDb3JlL2JpbmRpbmdzL2pzL0pTV29ya2VyQ29udGV4
dEVycm9ySGFuZGxlci5oLgorICAgICAgICAoV2ViQ29yZTo6VjhXaW5kb3dFcnJvckhhbmRsZXI6
OlY4V2luZG93RXJyb3JIYW5kbGVyKToKKyAgICAgICAgKFdlYkNvcmU6OlY4V2luZG93RXJyb3JI
YW5kbGVyOjpjYWxsTGlzdGVuZXJGdW5jdGlvbik6CisgICAgICAgICogYmluZGluZ3MvdjgvVjhX
aW5kb3dFcnJvckhhbmRsZXIuaDogQ29waWVkIGZyb20gV2ViQ29yZS9kb20vRXJyb3JFdmVudC5j
cHAuCisgICAgICAgIChXZWJDb3JlOjpWOFdpbmRvd0Vycm9ySGFuZGxlcjo6Y3JlYXRlKToKKyAg
ICAgICAgKiBiaW5kaW5ncy92OC9Xb3JrZXJDb250ZXh0RXhlY3V0aW9uUHJveHkuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6djhNZXNzYWdlSGFuZGxlcik6CisgICAgICAgICogYmluZGluZ3Mvdjgv
V29ya2VyU2NyaXB0Q29udHJvbGxlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpXb3JrZXJTY3Jp
cHRDb250cm9sbGVyOjpldmFsdWF0ZSk6CisgICAgICAgICogZG9tL0RvY3VtZW50LmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OkRvY3VtZW50OjplcnJvckV2ZW50VGFyZ2V0KToKKyAgICAgICAgKFdl
YkNvcmU6OkRvY3VtZW50Ojpsb2dFeGNlcHRpb25Ub0NvbnNvbGUpOgorICAgICAgICAoV2ViQ29y
ZTo6RG9jdW1lbnQ6OmFkZE1lc3NhZ2UpOgorICAgICAgICAqIGRvbS9Eb2N1bWVudC5oOgorICAg
ICAgICAqIGRvbS9FcnJvckV2ZW50LmNwcDoKKyAgICAgICAgKiBkb20vRXJyb3JFdmVudC5oOgor
ICAgICAgICAqIGRvbS9FdmVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpFdmVudDo6aXNFcnJv
ckV2ZW50KToKKyAgICAgICAgKiBkb20vRXZlbnQuaDoKKyAgICAgICAgKiBkb20vU2NyaXB0RXhl
Y3V0aW9uQ29udGV4dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTY3JpcHRFeGVjdXRpb25Db250
ZXh0OjpQZW5kaW5nRXhjZXB0aW9uOjpQZW5kaW5nRXhjZXB0aW9uKToKKyAgICAgICAgKFdlYkNv
cmU6OlNjcmlwdEV4ZWN1dGlvbkNvbnRleHQ6OlNjcmlwdEV4ZWN1dGlvbkNvbnRleHQpOgorICAg
ICAgICAoV2ViQ29yZTo6U2NyaXB0RXhlY3V0aW9uQ29udGV4dDo6cmVwb3J0RXhjZXB0aW9uKTog
dGhpcyBtZXRob2QgaXMgbm90IHZpcnR1YWwgYW55bW9yZSB0bworICAgICAgICBlbnN1cmUgdGhh
dCBlcnJvciBldmVudCBkaXNwYXRjaGluZyBhbGdvcml0aG0gaXMgdGhlIHNhbWUgaW4gV29ya2Vy
Q29udGV4dCBhbmQgaW4gRG9jdW1lbnQuCisgICAgICAgIChXZWJDb3JlOjpTY3JpcHRFeGVjdXRp
b25Db250ZXh0OjpkaXNwYXRjaEVycm9yRXZlbnQpOgorICAgICAgICAqIGRvbS9TY3JpcHRFeGVj
dXRpb25Db250ZXh0Lmg6CisgICAgICAgICogd2Vic29ja2V0cy9XZWJTb2NrZXQuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6V2ViU29ja2V0Ojpjb25uZWN0KToKKyAgICAgICAgKiB3ZWJzb2NrZXRz
L1dlYlNvY2tldENoYW5uZWwuY3BwOgorICAgICAgICAoV2ViQ29yZTo6V2ViU29ja2V0Q2hhbm5l
bDo6ZGlkT3Blbik6CisgICAgICAgIChXZWJDb3JlOjpXZWJTb2NrZXRDaGFubmVsOjpkaWRGYWls
KToKKyAgICAgICAgKFdlYkNvcmU6OldlYlNvY2tldENoYW5uZWw6OmFwcGVuZFRvQnVmZmVyKToK
KyAgICAgICAgKiB3ZWJzb2NrZXRzL1dlYlNvY2tldEhhbmRzaGFrZS5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpXZWJTb2NrZXRIYW5kc2hha2U6OnJlYWRTZXJ2ZXJIYW5kc2hha2UpOgorICAgICAg
ICAoV2ViQ29yZTo6V2ViU29ja2V0SGFuZHNoYWtlOjpyZWFkU3RhdHVzTGluZSk6CisgICAgICAg
IChXZWJDb3JlOjpXZWJTb2NrZXRIYW5kc2hha2U6OnJlYWRIVFRQSGVhZGVycyk6CisgICAgICAg
IChXZWJDb3JlOjpXZWJTb2NrZXRIYW5kc2hha2U6OmNoZWNrUmVzcG9uc2VIZWFkZXJzKToKKyAg
ICAgICAgKiB3b3JrZXJzL0RlZmF1bHRTaGFyZWRXb3JrZXJSZXBvc2l0b3J5LmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OnBvc3RFeGNlcHRpb25UYXNrKToKKyAgICAgICAgKFdlYkNvcmU6OnBvc3RD
b25zb2xlTWVzc2FnZVRhc2spOgorICAgICAgICAqIHdvcmtlcnMvV29ya2VyQ29udGV4dC5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpXb3JrZXJDb250ZXh0OjpXb3JrZXJDb250ZXh0KToKKyAgICAg
ICAgKFdlYkNvcmU6OldvcmtlckNvbnRleHQ6OmVycm9yRXZlbnRUYXJnZXQpOgorICAgICAgICAo
V2ViQ29yZTo6V29ya2VyQ29udGV4dDo6bG9nRXhjZXB0aW9uVG9Db25zb2xlKToKKyAgICAgICAg
KFdlYkNvcmU6OldvcmtlckNvbnRleHQ6OmFkZE1lc3NhZ2UpOgorICAgICAgICAqIHdvcmtlcnMv
V29ya2VyQ29udGV4dC5oOgorICAgICAgICAqIHdvcmtlcnMvV29ya2VyTWVzc2FnaW5nUHJveHku
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6V29ya2VyRXhjZXB0aW9uVGFzazo6cGVyZm9ybVRhc2sp
OgorICAgICAgICAoV2ViQ29yZTo6cG9zdENvbnNvbGVNZXNzYWdlVGFzayk6CisgICAgICAgICog
eG1sL1hNTEh0dHBSZXF1ZXN0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OnJlcG9ydFVuc2FmZVVz
YWdlKToKKwogMjAxMC0xMi0yNiAgTU9SSVRBIEhhamltZSAgPG1vcnJpdGFAZ29vZ2xlLmNvbT4K
IAogICAgICAgICBSZXZpZXdlZCBieSBEYW4gQmVybnN0ZWluLgpkaWZmIC0tZ2l0IGEvV2ViQ29y
ZS9HTlVtYWtlZmlsZS5hbSBiL1dlYkNvcmUvR05VbWFrZWZpbGUuYW0KaW5kZXggZjEwOGY4Ni4u
ZWRmZTBlOSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9HTlVtYWtlZmlsZS5hbQorKysgYi9XZWJDb3Jl
L0dOVW1ha2VmaWxlLmFtCkBAIC03NzUsNiArNzc1LDggQEAgd2ViY29yZV9zb3VyY2VzICs9IFwK
IAlXZWJDb3JlL2JpbmRpbmdzL2pzL0pTRWxlbWVudEN1c3RvbS5jcHAgXAogCVdlYkNvcmUvYmlu
ZGluZ3MvanMvSlNFbnRyeUN1c3RvbS5jcHAgXAogCVdlYkNvcmUvYmluZGluZ3MvanMvSlNFbnRy
eVN5bmNDdXN0b20uY3BwIFwKKwlXZWJDb3JlL2JpbmRpbmdzL2pzL0pTRXJyb3JIYW5kbGVyLmNw
cCBcCisJV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0Vycm9ySGFuZGxlci5oIFwKIAlXZWJDb3JlL2Jp
bmRpbmdzL2pzL0pTRXZlbnRDdXN0b20uY3BwIFwKIAlXZWJDb3JlL2JpbmRpbmdzL2pzL0pTRXZl
bnRMaXN0ZW5lci5jcHAgXAogCVdlYkNvcmUvYmluZGluZ3MvanMvSlNFdmVudExpc3RlbmVyLmgg
XApAQCAtODcyLDggKzg3NCw2IEBAIHdlYmNvcmVfc291cmNlcyArPSBcCiAJV2ViQ29yZS9iaW5k
aW5ncy9qcy9KU1dvcmtlckNvbnRleHRCYXNlLmNwcCBcCiAJV2ViQ29yZS9iaW5kaW5ncy9qcy9K
U1dvcmtlckNvbnRleHRCYXNlLmggXAogCVdlYkNvcmUvYmluZGluZ3MvanMvSlNXb3JrZXJDb250
ZXh0Q3VzdG9tLmNwcCBcCi0JV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1dvcmtlckNvbnRleHRFcnJv
ckhhbmRsZXIuY3BwIFwKLQlXZWJDb3JlL2JpbmRpbmdzL2pzL0pTV29ya2VyQ29udGV4dEVycm9y
SGFuZGxlci5oIFwKIAlXZWJDb3JlL2JpbmRpbmdzL2pzL0pTV29ya2VyQ3VzdG9tLmNwcCBcCiAJ
V2ViQ29yZS9iaW5kaW5ncy9qcy9KU1hNTEh0dHBSZXF1ZXN0Q3VzdG9tLmNwcCBcCiAJV2ViQ29y
ZS9iaW5kaW5ncy9qcy9KU1hNTEh0dHBSZXF1ZXN0VXBsb2FkQ3VzdG9tLmNwcCBcCmRpZmYgLS1n
aXQgYS9XZWJDb3JlL1dlYkNvcmUuZ3lwaSBiL1dlYkNvcmUvV2ViQ29yZS5neXBpCmluZGV4IDRm
NGI0NjMuLmRiZDk2NGYgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvV2ViQ29yZS5neXBpCisrKyBiL1dl
YkNvcmUvV2ViQ29yZS5neXBpCkBAIC02MjQsNiArNjI0LDggQEAKICAgICAgICAgICAgICdiaW5k
aW5ncy9qcy9KU0VsZW1lbnRDdXN0b20uY3BwJywKICAgICAgICAgICAgICdiaW5kaW5ncy9qcy9K
U0VudHJ5Q3VzdG9tLmNwcCcsCiAgICAgICAgICAgICAnYmluZGluZ3MvanMvSlNFbnRyeVN5bmND
dXN0b20uY3BwJywKKyAgICAgICAgICAgICdiaW5kaW5ncy9qcy9KU0Vycm9ySGFuZGxlci5jcHAn
LAorICAgICAgICAgICAgJ2JpbmRpbmdzL2pzL0pTRXJyb3JIYW5kbGVyLmgnLAogICAgICAgICAg
ICAgJ2JpbmRpbmdzL2pzL0pTRXZlbnRDdXN0b20uY3BwJywKICAgICAgICAgICAgICdiaW5kaW5n
cy9qcy9KU0V2ZW50TGlzdGVuZXIuY3BwJywKICAgICAgICAgICAgICdiaW5kaW5ncy9qcy9KU0V2
ZW50TGlzdGVuZXIuaCcsCkBAIC03MjEsOCArNzIzLDYgQEAKICAgICAgICAgICAgICdiaW5kaW5n
cy9qcy9KU1dvcmtlckNvbnRleHRCYXNlLmNwcCcsCiAgICAgICAgICAgICAnYmluZGluZ3MvanMv
SlNXb3JrZXJDb250ZXh0QmFzZS5oJywKICAgICAgICAgICAgICdiaW5kaW5ncy9qcy9KU1dvcmtl
ckNvbnRleHRDdXN0b20uY3BwJywKLSAgICAgICAgICAgICdiaW5kaW5ncy9qcy9KU1dvcmtlckNv
bnRleHRFcnJvckhhbmRsZXIuY3BwJywKLSAgICAgICAgICAgICdiaW5kaW5ncy9qcy9KU1dvcmtl
ckNvbnRleHRFcnJvckhhbmRsZXIuaCcsCiAgICAgICAgICAgICAnYmluZGluZ3MvanMvSlNXb3Jr
ZXJDdXN0b20uY3BwJywKICAgICAgICAgICAgICdiaW5kaW5ncy9qcy9KU1hNTEh0dHBSZXF1ZXN0
Q3VzdG9tLmNwcCcsCiAgICAgICAgICAgICAnYmluZGluZ3MvanMvSlNYTUxIdHRwUmVxdWVzdFVw
bG9hZEN1c3RvbS5jcHAnLApAQCAtOTg0LDYgKzk4NCw4IEBACiAgICAgICAgICAgICAnYmluZGlu
Z3MvdjgvVjhQcm94eS5oJywKICAgICAgICAgICAgICdiaW5kaW5ncy92OC9WOFV0aWxpdGllcy5j
cHAnLAogICAgICAgICAgICAgJ2JpbmRpbmdzL3Y4L1Y4VXRpbGl0aWVzLmgnLAorICAgICAgICAg
ICAgJ2JpbmRpbmdzL3Y4L1Y4V2luZG93RXJyb3JIYW5kbGVyLmNwcCcsCisgICAgICAgICAgICAn
YmluZGluZ3MvdjgvVjhXaW5kb3dFcnJvckhhbmRsZXIuaCcsCiAgICAgICAgICAgICAnYmluZGlu
Z3MvdjgvVjhXb3JrZXJDb250ZXh0RXJyb3JIYW5kbGVyLmNwcCcsCiAgICAgICAgICAgICAnYmlu
ZGluZ3MvdjgvVjhXb3JrZXJDb250ZXh0RXJyb3JIYW5kbGVyLmgnLAogICAgICAgICAgICAgJ2Jp
bmRpbmdzL3Y4L1Y4V29ya2VyQ29udGV4dEV2ZW50TGlzdGVuZXIuY3BwJywKZGlmZiAtLWdpdCBh
L1dlYkNvcmUvV2ViQ29yZS5vcmRlciBiL1dlYkNvcmUvV2ViQ29yZS5vcmRlcgppbmRleCAyNzFk
ZmM5Li4zYWI4OTM2IDEwMDY0NAotLS0gYS9XZWJDb3JlL1dlYkNvcmUub3JkZXIKKysrIGIvV2Vi
Q29yZS9XZWJDb3JlLm9yZGVyCkBAIC0yNTIwOCwxMyArMjUyMDgsOSBAQCBfX1pON1dlYkNvcmUx
NUpTV29ya2VyQ29udGV4dDEwc2V0VGltZW91dEVQTjNKU0M5RXhlY1N0YXRlRVJLTlMxXzdBcmdM
aXN0RQogX19aTjdXZWJDb3JlMTNXb3JrZXJDb250ZXh0MTBzZXRUaW1lb3V0RVBOU18xNVNjaGVk
dWxlZEFjdGlvbkVpCiBfX1pON1dlYkNvcmUxN1dvcmtlclNoYXJlZFRpbWVyMTFzZXRGaXJlVGlt
ZUVkCiBfX1pON1dlYkNvcmUxNVNjaGVkdWxlZEFjdGlvbjdleGVjdXRlRVBOU18xM1dvcmtlckNv
bnRleHRFCi1fX1pON1dlYkNvcmUyN0pTV29ya2VyQ29udGV4dEVycm9ySGFuZGxlckMxRVBOM0pT
QzhKU09iamVjdEVTM19iUE5TXzE1RE9NV3JhcHBlcldvcmxkRQotX19aTjdXZWJDb3JlMjdKU1dv
cmtlckNvbnRleHRFcnJvckhhbmRsZXJDMkVQTjNKU0M4SlNPYmplY3RFUzNfYlBOU18xNURPTVdy
YXBwZXJXb3JsZEUKIF9fWk43V2ViQ29yZTEwRXJyb3JFdmVudEMxRVJLTlNfNlN0cmluZ0VTM19q
CiBfX1pON1dlYkNvcmUxMEVycm9yRXZlbnRDMkVSS05TXzZTdHJpbmdFUzNfagotX19aTjdXZWJD
b3JlMjdKU1dvcmtlckNvbnRleHRFcnJvckhhbmRsZXIxMWhhbmRsZUV2ZW50RVBOU18yMlNjcmlw
dEV4ZWN1dGlvbkNvbnRleHRFUE5TXzVFdmVudEUKIF9fWk43V2ViQ29yZTEwRXJyb3JFdmVudEQw
RXYKLV9fWk43V2ViQ29yZTI3SlNXb3JrZXJDb250ZXh0RXJyb3JIYW5kbGVyRDBFdgogX19aTjdX
ZWJDb3JlMTdqc1dvcmtlck9ubWVzc2FnZUVQTjNKU0M5RXhlY1N0YXRlRU5TMF83SlNWYWx1ZUVS
S05TMF8xMElkZW50aWZpZXJFCiBfX1pON1dlYkNvcmUzNGpzV29ya2VyUHJvdG90eXBlRnVuY3Rp
b25UZXJtaW5hdGVFUE4zSlNDOUV4ZWNTdGF0ZUVQTlMwXzhKU09iamVjdEVOUzBfN0pTVmFsdWVF
UktOUzBfN0FyZ0xpc3RFCiBfX1pUaG44X043V2ViQ29yZTIwV29ya2VyTWVzc2FnaW5nUHJveHkx
OXdvcmtlckNvbnRleHRDbG9zZWRFdgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9XZWJDb3JlLnBybyBi
L1dlYkNvcmUvV2ViQ29yZS5wcm8KaW5kZXggYWFjNzYwYS4uZjcwODM5ZSAxMDA2NDQKLS0tIGEv
V2ViQ29yZS9XZWJDb3JlLnBybworKysgYi9XZWJDb3JlL1dlYkNvcmUucHJvCkBAIC00MDEsNiAr
NDAxLDcgQEAgdjggewogICAgICAgICBiaW5kaW5ncy92OC9WOE5vZGVGaWx0ZXJDb25kaXRpb24u
Y3BwIFwKICAgICAgICAgYmluZGluZ3MvdjgvVjhQcm94eS5jcHAgXAogICAgICAgICBiaW5kaW5n
cy92OC9WOFV0aWxpdGllcy5jcHAgXAorICAgICAgICBiaW5kaW5ncy92OC9WOFdpbmRvd0Vycm9y
SGFuZGxlci5jcHAgXAogICAgICAgICBiaW5kaW5ncy92OC9WOFdvcmtlckNvbnRleHRFdmVudExp
c3RlbmVyLmNwcCBcCiAgICAgICAgIGJpbmRpbmdzL3Y4L1dvcmtlckNvbnRleHRFeGVjdXRpb25Q
cm94eS5jcHAgXAogICAgICAgICBiaW5kaW5ncy92OC9Xb3JrZXJTY3JpcHRDb250cm9sbGVyLmNw
cCBcCkBAIC01NDIsNiArNTQzLDcgQEAgdjggewogICAgICAgICBiaW5kaW5ncy9qcy9KU0Rldmlj
ZU9yaWVudGF0aW9uRXZlbnRDdXN0b20uY3BwIFwKICAgICAgICAgYmluZGluZ3MvanMvSlNEb2N1
bWVudEN1c3RvbS5jcHAgXAogICAgICAgICBiaW5kaW5ncy9qcy9KU0VsZW1lbnRDdXN0b20uY3Bw
IFwKKyAgICAgICAgYmluZGluZ3MvanMvSlNFcnJvckhhbmRsZXIuY3BwIFwKICAgICAgICAgYmlu
ZGluZ3MvanMvSlNFdmVudEN1c3RvbS5jcHAgXAogICAgICAgICBiaW5kaW5ncy9qcy9KU0V2ZW50
TGlzdGVuZXIuY3BwIFwKICAgICAgICAgYmluZGluZ3MvanMvSlNFdmVudFNvdXJjZUN1c3RvbS5j
cHAgXApAQCAtNjAxLDcgKzYwMyw2IEBAIHY4IHsKICAgICAgICAgYmluZGluZ3MvanMvSlNXZWJL
aXRDU1NLZXlmcmFtZXNSdWxlQ3VzdG9tLmNwcCBcCiAgICAgICAgIGJpbmRpbmdzL2pzL0pTV2Vi
S2l0Q1NTTWF0cml4Q3VzdG9tLmNwcCBcCiAgICAgICAgIGJpbmRpbmdzL2pzL0pTV2ViS2l0UG9p
bnRDdXN0b20uY3BwIFwKLSAgICAgICAgYmluZGluZ3MvanMvSlNXb3JrZXJDb250ZXh0RXJyb3JI
YW5kbGVyLmNwcCBcCiAgICAgICAgIGJpbmRpbmdzL2pzL0pTWE1MSHR0cFJlcXVlc3RDdXN0b20u
Y3BwIFwKICAgICAgICAgYmluZGluZ3MvanMvSlNYTUxIdHRwUmVxdWVzdFVwbG9hZEN1c3RvbS5j
cHAgXAogICAgICAgICBiaW5kaW5ncy9qcy9TY2hlZHVsZWRBY3Rpb24uY3BwIFwKQEAgLTE0NzMs
NiArMTQ3NCw3IEBAIHY4IHsKICAgICAgICAgYmluZGluZ3MvdjgvVjhOUFV0aWxzLmggXAogICAg
ICAgICBiaW5kaW5ncy92OC9WOFByb3h5LmggXAogICAgICAgICBiaW5kaW5ncy92OC9WOFV0aWxp
dGllcy5oIFwKKyAgICAgICAgYmluZGluZ3MvdjgvVjhXaW5kb3dFcnJvckhhbmRsZXIuaCBcCiAg
ICAgICAgIGJpbmRpbmdzL3Y4L1Y4V29ya2VyQ29udGV4dEV2ZW50TGlzdGVuZXIuaCBcCiAgICAg
ICAgIGJpbmRpbmdzL3Y4L1dvcmtlckNvbnRleHRFeGVjdXRpb25Qcm94eS5oIFwKICAgICAgICAg
YmluZGluZ3MvdjgvV29ya2VyU2NyaXB0Q29udHJvbGxlci5oIFwKQEAgLTE0OTksNiArMTUwMSw3
IEBAIHY4IHsKICAgICAgICAgYmluZGluZ3MvanMvSlNET01XaW5kb3dDdXN0b20uaCBcCiAgICAg
ICAgIGJpbmRpbmdzL2pzL0pTRE9NV2luZG93U2hlbGwuaCBcCiAgICAgICAgIGJpbmRpbmdzL2pz
L0pTRE9NV3JhcHBlci5oIFwKKyAgICAgICAgYmluZGluZ3MvanMvSlNFcnJvckhhbmRsZXIuaCBc
CiAgICAgICAgIGJpbmRpbmdzL2pzL0pTRXZlbnRMaXN0ZW5lci5oIFwKICAgICAgICAgYmluZGlu
Z3MvanMvSlNFdmVudFRhcmdldC5oIFwKICAgICAgICAgYmluZGluZ3MvanMvSlNIaXN0b3J5Q3Vz
dG9tLmggXApAQCAtMTUxNiw3ICsxNTE5LDYgQEAgdjggewogICAgICAgICBiaW5kaW5ncy9qcy9K
U1BsdWdpbkVsZW1lbnRGdW5jdGlvbnMuaCBcCiAgICAgICAgIGJpbmRpbmdzL2pzL0pTU3RvcmFn
ZUN1c3RvbS5oIFwKICAgICAgICAgYmluZGluZ3MvanMvSlNXb3JrZXJDb250ZXh0QmFzZS5oIFwK
LSAgICAgICAgYmluZGluZ3MvanMvSlNXb3JrZXJDb250ZXh0RXJyb3JIYW5kbGVyLmggXAogICAg
ICAgICBiaW5kaW5ncy9qcy9KYXZhU2NyaXB0Q2FsbEZyYW1lLmggXAogICAgICAgICBiaW5kaW5n
cy9qcy9TY2hlZHVsZWRBY3Rpb24uaCBcCiAgICAgICAgIGJpbmRpbmdzL2pzL1NjcmlwdENhY2hl
ZEZyYW1lRGF0YS5oIFwKZGlmZiAtLWdpdCBhL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29y
ZS52Y3Byb2ogYi9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qCmluZGV4IDMy
M2U1MjYuLjU4NzMwNjQgMTAwNzU1Ci0tLSBhL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29y
ZS52Y3Byb2oKKysrIGIvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvagpAQCAt
NTgxNjUsNiArNTgxNjUsNjIgQEAKIAkJCQkJPgogCQkJCTwvRmlsZT4KIAkJCQk8RmlsZQorCQkJ
CQlSZWxhdGl2ZVBhdGg9Ii4uXGJpbmRpbmdzXGpzXEpTRXJyb3JIYW5kbGVyLmNwcCIKKwkJCQkJ
PgorCQkJCQk8RmlsZUNvbmZpZ3VyYXRpb24KKwkJCQkJCU5hbWU9IkRlYnVnfFdpbjMyIgorCQkJ
CQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiCisJCQkJCQk+CisJCQkJCQk8VG9vbAorCQkJCQkJ
CU5hbWU9IlZDQ0xDb21waWxlclRvb2wiCisJCQkJCQkvPgorCQkJCQk8L0ZpbGVDb25maWd1cmF0
aW9uPgorCQkJCQk8RmlsZUNvbmZpZ3VyYXRpb24KKwkJCQkJCU5hbWU9IlJlbGVhc2V8V2luMzIi
CisJCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSIKKwkJCQkJCT4KKwkJCQkJCTxUb29sCisJ
CQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCIKKwkJCQkJCS8+CisJCQkJCTwvRmlsZUNvbmZp
Z3VyYXRpb24+CisJCQkJCTxGaWxlQ29uZmlndXJhdGlvbgorCQkJCQkJTmFtZT0iRGVidWdfQ2Fp
cm9fQ0ZMaXRlfFdpbjMyIgorCQkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiCisJCQkJCQk+
CisJCQkJCQk8VG9vbAorCQkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiCisJCQkJCQkvPgor
CQkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPgorCQkJCQk8RmlsZUNvbmZpZ3VyYXRpb24KKwkJCQkJ
CU5hbWU9IlJlbGVhc2VfQ2Fpcm9fQ0ZMaXRlfFdpbjMyIgorCQkJCQkJRXhjbHVkZWRGcm9tQnVp
bGQ9InRydWUiCisJCQkJCQk+CisJCQkJCQk8VG9vbAorCQkJCQkJCU5hbWU9IlZDQ0xDb21waWxl
clRvb2wiCisJCQkJCQkvPgorCQkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPgorCQkJCQk8RmlsZUNv
bmZpZ3VyYXRpb24KKwkJCQkJCU5hbWU9IkRlYnVnX0FsbHxXaW4zMiIKKwkJCQkJCUV4Y2x1ZGVk
RnJvbUJ1aWxkPSJ0cnVlIgorCQkJCQkJPgorCQkJCQkJPFRvb2wKKwkJCQkJCQlOYW1lPSJWQ0NM
Q29tcGlsZXJUb29sIgorCQkJCQkJLz4KKwkJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4KKwkJCQkJ
PEZpbGVDb25maWd1cmF0aW9uCisJCQkJCQlOYW1lPSJSZWxlYXNlX0xUQ0d8V2luMzIiCisJCQkJ
CQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSIKKwkJCQkJCT4KKwkJCQkJCTxUb29sCisJCQkJCQkJ
TmFtZT0iVkNDTENvbXBpbGVyVG9vbCIKKwkJCQkJCS8+CisJCQkJCTwvRmlsZUNvbmZpZ3VyYXRp
b24+CisJCQkJPC9GaWxlPgorCQkJCTxGaWxlCisJCQkJCVJlbGF0aXZlUGF0aD0iLi5cYmluZGlu
Z3NcanNcSlNFcnJvckhhbmRsZXIuaCIKKwkJCQkJPgorCQkJCTwvRmlsZT4KKwkJCQk8RmlsZQog
CQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGJpbmRpbmdzXGpzXEpTRXZlbnRDdXN0b20uY3BwIgogCQkJ
CQk+CiAJCQkJCTxGaWxlQ29uZmlndXJhdGlvbgpAQCAtNjE3MzMsNjIgKzYxNzg5LDYgQEAKIAkJ
CQkJPC9GaWxlQ29uZmlndXJhdGlvbj4KIAkJCQk8L0ZpbGU+CiAJCQkJPEZpbGUKLQkJCQkJUmVs
YXRpdmVQYXRoPSIuLlxiaW5kaW5nc1xqc1xKU1dvcmtlckNvbnRleHRFcnJvckhhbmRsZXIuY3Bw
IgotCQkJCQk+Ci0JCQkJCTxGaWxlQ29uZmlndXJhdGlvbgotCQkJCQkJTmFtZT0iRGVidWd8V2lu
MzIiCi0JCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSIKLQkJCQkJCT4KLQkJCQkJCTxUb29s
Ci0JCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCIKLQkJCQkJCS8+Ci0JCQkJCTwvRmlsZUNv
bmZpZ3VyYXRpb24+Ci0JCQkJCTxGaWxlQ29uZmlndXJhdGlvbgotCQkJCQkJTmFtZT0iUmVsZWFz
ZXxXaW4zMiIKLQkJCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIgotCQkJCQkJPgotCQkJCQkJ
PFRvb2wKLQkJCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIgotCQkJCQkJLz4KLQkJCQkJPC9G
aWxlQ29uZmlndXJhdGlvbj4KLQkJCQkJPEZpbGVDb25maWd1cmF0aW9uCi0JCQkJCQlOYW1lPSJE
ZWJ1Z19DYWlyb19DRkxpdGV8V2luMzIiCi0JCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSIK
LQkJCQkJCT4KLQkJCQkJCTxUb29sCi0JCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCIKLQkJ
CQkJCS8+Ci0JCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+Ci0JCQkJCTxGaWxlQ29uZmlndXJhdGlv
bgotCQkJCQkJTmFtZT0iUmVsZWFzZV9DYWlyb19DRkxpdGV8V2luMzIiCi0JCQkJCQlFeGNsdWRl
ZEZyb21CdWlsZD0idHJ1ZSIKLQkJCQkJCT4KLQkJCQkJCTxUb29sCi0JCQkJCQkJTmFtZT0iVkND
TENvbXBpbGVyVG9vbCIKLQkJCQkJCS8+Ci0JCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+Ci0JCQkJ
CTxGaWxlQ29uZmlndXJhdGlvbgotCQkJCQkJTmFtZT0iRGVidWdfQWxsfFdpbjMyIgotCQkJCQkJ
RXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiCi0JCQkJCQk+Ci0JCQkJCQk8VG9vbAotCQkJCQkJCU5h
bWU9IlZDQ0xDb21waWxlclRvb2wiCi0JCQkJCQkvPgotCQkJCQk8L0ZpbGVDb25maWd1cmF0aW9u
PgotCQkJCQk8RmlsZUNvbmZpZ3VyYXRpb24KLQkJCQkJCU5hbWU9IlJlbGVhc2VfTFRDR3xXaW4z
MiIKLQkJCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIgotCQkJCQkJPgotCQkJCQkJPFRvb2wK
LQkJCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIgotCQkJCQkJLz4KLQkJCQkJPC9GaWxlQ29u
ZmlndXJhdGlvbj4KLQkJCQk8L0ZpbGU+Ci0JCQkJPEZpbGUKLQkJCQkJUmVsYXRpdmVQYXRoPSIu
LlxiaW5kaW5nc1xqc1xKU1dvcmtlckNvbnRleHRFcnJvckhhbmRsZXIuaCIKLQkJCQkJPgotCQkJ
CTwvRmlsZT4KLQkJCQk8RmlsZQogCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGJpbmRpbmdzXGpzXEpT
V29ya2VyQ3VzdG9tLmNwcCIKIAkJCQkJPgogCQkJCQk8RmlsZUNvbmZpZ3VyYXRpb24KZGlmZiAt
LWdpdCBhL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvV2ViQ29y
ZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggMTFkNmY2Ny4uODU0NzAy
MiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oK
KysrIGIvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTU1NjIs
OCArNTU2Miw4IEBACiAJCUYzOTIyNDlEMTI2RjExQUUwMEE5MjZEOSAvKiBTY3JpcHRDYWxsU3Rh
Y2tGYWN0b3J5LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSBGMzkyMjQ5QjEyNkYxMUFFMDBBOTI2RDkgLyogU2NyaXB0Q2FsbFN0YWNrRmFjdG9yeS5oICov
OyB9OwogCQlGMzlCRTk1QjEyNjczQkY0MDBFMEE2NzQgLyogU2NyaXB0QXJndW1lbnRzLmNwcCBp
biBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEYzOUJFOTU5MTI2
NzNCRjQwMEUwQTY3NCAvKiBTY3JpcHRBcmd1bWVudHMuY3BwICovOyB9OwogCQlGMzlCRTk1QzEy
NjczQkY0MDBFMEE2NzQgLyogU2NyaXB0QXJndW1lbnRzLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGMzlCRTk1QTEyNjczQkY0MDBFMEE2NzQgLyogU2Ny
aXB0QXJndW1lbnRzLmggKi87IH07Ci0JCUYzRDQ2MTQ4MTE2MUQ1MzIwMENBMEQwOSAvKiBKU1dv
cmtlckNvbnRleHRFcnJvckhhbmRsZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gRjNENDYxNDYxMTYxRDUzMjAwQ0EwRDA5IC8qIEpTV29ya2VyQ29u
dGV4dEVycm9ySGFuZGxlci5jcHAgKi87IH07Ci0JCUYzRDQ2MTQ5MTE2MUQ1MzIwMENBMEQwOSAv
KiBKU1dvcmtlckNvbnRleHRFcnJvckhhbmRsZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEYzRDQ2MTQ3MTE2MUQ1MzIwMENBMEQwOSAvKiBKU1dvcmtl
ckNvbnRleHRFcnJvckhhbmRsZXIuaCAqLzsgfTsKKwkJRjNENDYxNDgxMTYxRDUzMjAwQ0EwRDA5
IC8qIEpTRXJyb3JIYW5kbGVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IEYzRDQ2MTQ2MTE2MUQ1MzIwMENBMEQwOSAvKiBKU0Vycm9ySGFuZGxlci5j
cHAgKi87IH07CisJCUYzRDQ2MTQ5MTE2MUQ1MzIwMENBMEQwOSAvKiBKU0Vycm9ySGFuZGxlci5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjNENDYxNDcx
MTYxRDUzMjAwQ0EwRDA5IC8qIEpTRXJyb3JIYW5kbGVyLmggKi87IH07CiAJCUY0RUFGNEFFMTBD
NzQyQjEwMDkxMDBEMyAvKiBPcGVuVHlwZVNhbml0aXplci5jcHAgaW4gU291cmNlcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNEVBRjRBQzEwQzc0MkIxMDA5MTAwRDMgLyog
T3BlblR5cGVTYW5pdGl6ZXIuY3BwICovOyB9OwogCQlGNEVBRjRBRjEwQzc0MkIxMDA5MTAwRDMg
LyogT3BlblR5cGVTYW5pdGl6ZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IEY0RUFGNEFEMTBDNzQyQjEwMDkxMDBEMyAvKiBPcGVuVHlwZVNhbml0aXpl
ci5oICovOyB9OwogCQlGNTVCM0RBRDEyNTFGMTJEMDAzRUYyNjkgLyogQmFzZVRleHRJbnB1dFR5
cGUuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjU1
QjNENzkxMjUxRjEyRDAwM0VGMjY5IC8qIEJhc2VUZXh0SW5wdXRUeXBlLmNwcCAqLzsgfTsKQEAg
LTExODY4LDggKzExODY4LDggQEAKIAkJRjM5MjI0OUIxMjZGMTFBRTAwQTkyNkQ5IC8qIFNjcmlw
dENhbGxTdGFja0ZhY3RvcnkuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU2Ny
aXB0Q2FsbFN0YWNrRmFjdG9yeS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlGMzlC
RTk1OTEyNjczQkY0MDBFMEE2NzQgLyogU2NyaXB0QXJndW1lbnRzLmNwcCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFNjcmlwdEFyZ3VtZW50cy5jcHA7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCUYzOUJFOTVBMTI2NzNCRjQwMEUwQTY3NCAvKiBTY3JpcHRBcmd1
bWVudHMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU2NyaXB0QXJndW1lbnRz
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUYzRDQ2MTQ2MTE2MUQ1MzIwMENBMEQw
OSAvKiBKU1dvcmtlckNvbnRleHRFcnJvckhhbmRsZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAuY3BwOyBwYXRoID0gSlNXb3JrZXJDb250ZXh0RXJyb3JIYW5kbGVyLmNwcDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJRjNENDYxNDcxMTYxRDUzMjAwQ0EwRDA5IC8qIEpTV29y
a2VyQ29udGV4dEVycm9ySGFuZGxlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBKU1dvcmtlckNvbnRleHRFcnJvckhhbmRsZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKKwkJRjNENDYxNDYxMTYxRDUzMjAwQ0EwRDA5IC8qIEpTRXJyb3JIYW5kbGVyLmNwcCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTRXJyb3JIYW5kbGVyLmNwcDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRjNENDYxNDcxMTYxRDUzMjAwQ0EwRDA5IC8qIEpT
RXJyb3JIYW5kbGVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTRXJyb3JI
YW5kbGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUY0RUFGNEFDMTBDNzQyQjEw
MDkxMDBEMyAvKiBPcGVuVHlwZVNhbml0aXplci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5jcHA7IG5hbWUgPSBPcGVuVHlwZVNhbml0aXplci5jcHA7IHBhdGggPSBvcGVudHlwZS9PcGVu
VHlwZVNhbml0aXplci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUY0RUFGNEFE
MTBDNzQyQjEwMDkxMDBEMyAvKiBPcGVuVHlwZVNhbml0aXplci5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IG5hbWUgPSBPcGVuVHlwZVNhbml0aXplci5oOyBwYXRoID0gb3BlbnR5cGUvT3Bl
blR5cGVTYW5pdGl6ZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRjUyM0QyM0Iw
MkRFNDM5NjAxODYzNUNBIC8qIEhUTUxEb2N1bWVudC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGluZGVudFdpZHRoID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBIVE1MRG9jdW1lbnQuY3BwOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB0YWJXaWR0aCA9IDg7IHVzZXNUYWJzID0gMDsgfTsKQEAgLTE3
NDc3LDYgKzE3NDc3LDggQEAKIAkJCQlCQ0JGQjUzQjBEQ0QyOUNGMDAxOUIzRTUgLyogSlNET01X
aW5kb3dTaGVsbC5oICovLAogCQkJCUJDNTNEQUM2MTE0MzMwNjQwMDBEODE3RSAvKiBKU0RPTVdy
YXBwZXIuY3BwICovLAogCQkJCTY1RTBFOTQzMTEzM0M4OUYwMEI0Q0IxMCAvKiBKU0RPTVdyYXBw
ZXIuaCAqLywKKwkJCQlGM0Q0NjE0NjExNjFENTMyMDBDQTBEMDkgLyogSlNFcnJvckhhbmRsZXIu
Y3BwICovLAorCQkJCUYzRDQ2MTQ3MTE2MUQ1MzIwMENBMEQwOSAvKiBKU0Vycm9ySGFuZGxlci5o
ICovLAogCQkJCUJDNjA5MDFFMEU5MUI4RUMwMDBDNjhCNSAvKiBKU0V2ZW50VGFyZ2V0LmNwcCAq
LywKIAkJCQlCQzYwOTAxRDBFOTFCOEVDMDAwQzY4QjUgLyogSlNFdmVudFRhcmdldC5oICovLAog
CQkJCTMzMTRBQ0U5MTA4OTIwODYwMDBGMEU1NiAvKiBKU0V4Y2VwdGlvbkJhc2UuY3BwICovLApA
QCAtMTc0ODgsOCArMTc0OTAsNiBAQAogCQkJCTE0Q0Q4RDgxMTA2QjUyOTAwMEE0NkQyMyAvKiBK
U1NoYXJlZFdvcmtlckN1c3RvbS5jcHAgKi8sCiAJCQkJRTFDMzZEMzIwRUIwQTA5NDAwNzQxMEJD
IC8qIEpTV29ya2VyQ29udGV4dEJhc2UuY3BwICovLAogCQkJCUUxQzM2RDMzMEVCMEEwOTQwMDc0
MTBCQyAvKiBKU1dvcmtlckNvbnRleHRCYXNlLmggKi8sCi0JCQkJRjNENDYxNDYxMTYxRDUzMjAw
Q0EwRDA5IC8qIEpTV29ya2VyQ29udGV4dEVycm9ySGFuZGxlci5jcHAgKi8sCi0JCQkJRjNENDYx
NDcxMTYxRDUzMjAwQ0EwRDA5IC8qIEpTV29ya2VyQ29udGV4dEVycm9ySGFuZGxlci5oICovLAog
CQkJCUJDQTM3OEJBMEQxNUY2NDIwMEI3OTNENiAvKiBTY2hlZHVsZWRBY3Rpb24uY3BwICovLAog
CQkJCUJDQTM3OEJCMEQxNUY2NDIwMEI3OTNENiAvKiBTY2hlZHVsZWRBY3Rpb24uaCAqLywKIAkJ
CQk0MUYxRDIxRTBFRjM1QzJBMDBEQTg3NTMgLyogU2NyaXB0Q2FjaGVkRnJhbWVEYXRhLmNwcCAq
LywKQEAgLTIxMTU1LDcgKzIxMTU1LDcgQEAKIAkJCQlFMUNBQTVDNjBFOEJEMjM2MDBBNzNFQ0Eg
LyogSlNXb3JrZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCUUxODI1NjkwMEVGMkIwMkQwMDkzMzI0
MiAvKiBKU1dvcmtlckNvbnRleHQuaCBpbiBIZWFkZXJzICovLAogCQkJCUUxQzM2RDM1MEVCMEEw
OTQwMDc0MTBCQyAvKiBKU1dvcmtlckNvbnRleHRCYXNlLmggaW4gSGVhZGVycyAqLywKLQkJCQlG
M0Q0NjE0OTExNjFENTMyMDBDQTBEMDkgLyogSlNXb3JrZXJDb250ZXh0RXJyb3JIYW5kbGVyLmgg
aW4gSGVhZGVycyAqLywKKwkJCQlGM0Q0NjE0OTExNjFENTMyMDBDQTBEMDkgLyogSlNFcnJvckhh
bmRsZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCUUxQzM2MkVGMEVBRjJBQTkwMDc0MTBCQyAvKiBK
U1dvcmtlckxvY2F0aW9uLmggaW4gSGVhZGVycyAqLywKIAkJCQlFMTI3MUE1ODBFRUVDREU0MDBG
NjEyMTMgLyogSlNXb3JrZXJOYXZpZ2F0b3IuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDMzQ4QkQ0
MERCN0Y4MDQwMDRBQkFCOSAvKiBKU1hNTEh0dHBSZXF1ZXN0LmggaW4gSGVhZGVycyAqLywKQEAg
LTIzOTc4LDcgKzIzOTc4LDcgQEAKIAkJCQlFMTgyNTY4RjBFRjJCMDJEMDA5MzMyNDIgLyogSlNX
b3JrZXJDb250ZXh0LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUUxQzM2RDM0MEVCMEEwOTQwMDc0
MTBCQyAvKiBKU1dvcmtlckNvbnRleHRCYXNlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUUxODI1
OEFDMEVGM0NENzAwMDkzMzI0MiAvKiBKU1dvcmtlckNvbnRleHRDdXN0b20uY3BwIGluIFNvdXJj
ZXMgKi8sCi0JCQkJRjNENDYxNDgxMTYxRDUzMjAwQ0EwRDA5IC8qIEpTV29ya2VyQ29udGV4dEVy
cm9ySGFuZGxlci5jcHAgaW4gU291cmNlcyAqLywKKwkJCQlGM0Q0NjE0ODExNjFENTMyMDBDQTBE
MDkgLyogSlNFcnJvckhhbmRsZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJRTFDQTVDQkMwRThD
RENBRjAwRThFRjkwIC8qIEpTV29ya2VyQ3VzdG9tLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUUx
QzM2MkYwMEVBRjJBQTkwMDc0MTBCQyAvKiBKU1dvcmtlckxvY2F0aW9uLmNwcCBpbiBTb3VyY2Vz
ICovLAogCQkJCUUxMjcxQTU5MEVFRUNERTQwMEY2MTIxMyAvKiBKU1dvcmtlck5hdmlnYXRvci5j
cHAgaW4gU291cmNlcyAqLywKZGlmZiAtLWdpdCBhL1dlYkNvcmUvYmluZGluZ3MvanMvSlNCaW5k
aW5nc0FsbEluT25lLmNwcCBiL1dlYkNvcmUvYmluZGluZ3MvanMvSlNCaW5kaW5nc0FsbEluT25l
LmNwcAppbmRleCA3ZmM1NzQwLi5kMmMyN2E5IDEwMDY0NAotLS0gYS9XZWJDb3JlL2JpbmRpbmdz
L2pzL0pTQmluZGluZ3NBbGxJbk9uZS5jcHAKKysrIGIvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0Jp
bmRpbmdzQWxsSW5PbmUuY3BwCkBAIC03Miw2ICs3Miw3IEBACiAjaW5jbHVkZSAiSlNEZXZpY2VP
cmllbnRhdGlvbkV2ZW50Q3VzdG9tLmNwcCIKICNpbmNsdWRlICJKU0RvY3VtZW50Q3VzdG9tLmNw
cCIKICNpbmNsdWRlICJKU0VsZW1lbnRDdXN0b20uY3BwIgorI2luY2x1ZGUgIkpTRXJyb3JIYW5k
bGVyLmNwcCIKICNpbmNsdWRlICJKU0V2ZW50Q3VzdG9tLmNwcCIKICNpbmNsdWRlICJKU0V2ZW50
TGlzdGVuZXIuY3BwIgogI2luY2x1ZGUgIkpTRXZlbnRTb3VyY2VDdXN0b20uY3BwIgpAQCAtMTQx
LDcgKzE0Miw2IEBACiAjaW5jbHVkZSAiSlNXZWJTb2NrZXRDdXN0b20uY3BwIgogI2luY2x1ZGUg
IkpTV29ya2VyQ29udGV4dEJhc2UuY3BwIgogI2luY2x1ZGUgIkpTV29ya2VyQ29udGV4dEN1c3Rv
bS5jcHAiCi0jaW5jbHVkZSAiSlNXb3JrZXJDb250ZXh0RXJyb3JIYW5kbGVyLmNwcCIKICNpbmNs
dWRlICJKU1dvcmtlckN1c3RvbS5jcHAiCiAjaW5jbHVkZSAiSlNYTUxIdHRwUmVxdWVzdEN1c3Rv
bS5jcHAiCiAjaW5jbHVkZSAiSlNYTUxIdHRwUmVxdWVzdFVwbG9hZEN1c3RvbS5jcHAiCmRpZmYg
LS1naXQgYS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NQmluZGluZy5jcHAgYi9XZWJDb3JlL2Jp
bmRpbmdzL2pzL0pTRE9NQmluZGluZy5jcHAKaW5kZXggZWQ1NzlkMy4uNTY4ZjZjYiAxMDA2NDQK
LS0tIGEvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTUJpbmRpbmcuY3BwCisrKyBiL1dlYkNvcmUv
YmluZGluZ3MvanMvSlNET01CaW5kaW5nLmNwcApAQCAtNTUsNiArNTUsNyBAQAogI2luY2x1ZGUg
IlByb2Nlc3NpbmdJbnN0cnVjdGlvbi5oIgogI2luY2x1ZGUgIlJhbmdlRXhjZXB0aW9uLmgiCiAj
aW5jbHVkZSAiU2NyaXB0Q2FjaGVkRnJhbWVEYXRhLmgiCisjaW5jbHVkZSAiU2NyaXB0Q2FsbFN0
YWNrLmgiCiAjaW5jbHVkZSAiU2NyaXB0Q29udHJvbGxlci5oIgogI2luY2x1ZGUgIlNldHRpbmdz
LmgiCiAjaW5jbHVkZSAiV2ViQ29yZUpTQ2xpZW50RGF0YS5oIgpAQCAtNTk4LDcgKzU5OSw3IEBA
IHZvaWQgcmVwb3J0RXhjZXB0aW9uKEV4ZWNTdGF0ZSogZXhlYywgSlNWYWx1ZSBleGNlcHRpb24p
CiAgICAgaWYgKCFzY3JpcHRFeGVjdXRpb25Db250ZXh0KQogICAgICAgICByZXR1cm47CiAKLSAg
ICBzY3JpcHRFeGVjdXRpb25Db250ZXh0LT5yZXBvcnRFeGNlcHRpb24odXN0cmluZ1RvU3RyaW5n
KGVycm9yTWVzc2FnZSksIGxpbmVOdW1iZXIsIHVzdHJpbmdUb1N0cmluZyhleGNlcHRpb25Tb3Vy
Y2VVUkwpKTsKKyAgICBzY3JpcHRFeGVjdXRpb25Db250ZXh0LT5yZXBvcnRFeGNlcHRpb24odXN0
cmluZ1RvU3RyaW5nKGVycm9yTWVzc2FnZSksIGxpbmVOdW1iZXIsIHVzdHJpbmdUb1N0cmluZyhl
eGNlcHRpb25Tb3VyY2VVUkwpLCAwKTsKIH0KIAogdm9pZCByZXBvcnRDdXJyZW50RXhjZXB0aW9u
KEV4ZWNTdGF0ZSogZXhlYykKZGlmZiAtLWdpdCBhL1dlYkNvcmUvYmluZGluZ3MvanMvSlNFcnJv
ckhhbmRsZXIuY3BwIGIvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0Vycm9ySGFuZGxlci5jcHAKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYWU4ZTM2MwotLS0gL2Rldi9udWxsCisr
KyBiL1dlYkNvcmUvYmluZGluZ3MvanMvSlNFcnJvckhhbmRsZXIuY3BwCkBAIC0wLDAgKzEsMTEx
IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEwIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCisgKiBtZXQ6CisgKgor
ICogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5h
cnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKKyAqIGNvcHlyaWdodCBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKKyAqIGlu
IHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0
aGUKKyAqIGRpc3RyaWJ1dGlvbi4KKyAqICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xl
IEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKKyAqIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0
byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCisgKiB0aGlzIHNvZnR3
YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorICoKKyAqIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05U
UklCVVRPUlMKKyAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElF
UywgSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5U
SUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKKyAqIEEgUEFSVElDVUxBUiBQ
VVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCisg
KiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwKKyAqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBE
QU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9G
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAorICogREFUQSwgT1Ig
UFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04g
QU5ZCisgKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8K
KworI2luY2x1ZGUgImNvbmZpZy5oIgorCisjaW5jbHVkZSAiSlNFcnJvckhhbmRsZXIuaCIKKwor
I2luY2x1ZGUgIkVycm9yRXZlbnQuaCIKKyNpbmNsdWRlICJFdmVudC5oIgorI2luY2x1ZGUgIkpT
RXZlbnQuaCIKKyNpbmNsdWRlIDxydW50aW1lL0pTTG9jay5oPgorCit1c2luZyBuYW1lc3BhY2Ug
SlNDOworCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK0pTRXJyb3JIYW5kbGVyOjpKU0Vycm9ySGFu
ZGxlcihKU09iamVjdCogZnVuY3Rpb24sIEpTT2JqZWN0KiB3cmFwcGVyLCBib29sIGlzQXR0cmli
dXRlLCBET01XcmFwcGVyV29ybGQqIGlzb2xhdGVkV29ybGQpCisgICAgOiBKU0V2ZW50TGlzdGVu
ZXIoZnVuY3Rpb24sIHdyYXBwZXIsIGlzQXR0cmlidXRlLCBpc29sYXRlZFdvcmxkKQoreworfQor
CitKU0Vycm9ySGFuZGxlcjo6fkpTRXJyb3JIYW5kbGVyKCkKK3sKK30KKwordm9pZCBKU0Vycm9y
SGFuZGxlcjo6aGFuZGxlRXZlbnQoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogc2NyaXB0RXhlY3V0
aW9uQ29udGV4dCwgRXZlbnQqIGV2ZW50KQoreworICAgIGlmICghZXZlbnQtPmlzRXJyb3JFdmVu
dCgpKQorICAgICAgICByZXR1cm4gSlNFdmVudExpc3RlbmVyOjpoYW5kbGVFdmVudChzY3JpcHRF
eGVjdXRpb25Db250ZXh0LCBldmVudCk7CisKKyAgICBBU1NFUlQoc2NyaXB0RXhlY3V0aW9uQ29u
dGV4dCk7CisgICAgaWYgKCFzY3JpcHRFeGVjdXRpb25Db250ZXh0KQorICAgICAgICByZXR1cm47
CisKKyAgICBFcnJvckV2ZW50KiBlcnJvckV2ZW50ID0gc3RhdGljX2Nhc3Q8RXJyb3JFdmVudCo+
KGV2ZW50KTsKKworICAgIEpTTG9jayBsb2NrKFNpbGVuY2VBc3NlcnRpb25zT25seSk7CisKKyAg
ICBKU09iamVjdCoganNGdW5jdGlvbiA9IHRoaXMtPmpzRnVuY3Rpb24oc2NyaXB0RXhlY3V0aW9u
Q29udGV4dCk7CisgICAgaWYgKCFqc0Z1bmN0aW9uKQorICAgICAgICByZXR1cm47CisKKyAgICBK
U0RPTUdsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0ID0gdG9KU0RPTUdsb2JhbE9iamVjdChzY3Jp
cHRFeGVjdXRpb25Db250ZXh0LCBpc29sYXRlZFdvcmxkKCkpOworICAgIGlmICghZ2xvYmFsT2Jq
ZWN0KQorICAgICAgICByZXR1cm47CisKKyAgICBFeGVjU3RhdGUqIGV4ZWMgPSBnbG9iYWxPYmpl
Y3QtPmdsb2JhbEV4ZWMoKTsKKworICAgIENhbGxEYXRhIGNhbGxEYXRhOworICAgIENhbGxUeXBl
IGNhbGxUeXBlID0ganNGdW5jdGlvbi0+Z2V0Q2FsbERhdGEoY2FsbERhdGEpOworCisgICAgaWYg
KGNhbGxUeXBlICE9IENhbGxUeXBlTm9uZSkgeworICAgICAgICBSZWZQdHI8SlNFcnJvckhhbmRs
ZXI+IHByb3RlY3RlZGN0b3IodGhpcyk7CisKKyAgICAgICAgRXZlbnQqIHNhdmVkRXZlbnQgPSBn
bG9iYWxPYmplY3QtPmN1cnJlbnRFdmVudCgpOworICAgICAgICBnbG9iYWxPYmplY3QtPnNldEN1
cnJlbnRFdmVudChldmVudCk7CisKKyAgICAgICAgTWFya2VkQXJndW1lbnRCdWZmZXIgYXJnczsK
KyAgICAgICAgYXJncy5hcHBlbmQoanNTdHJpbmcoZXhlYywgZXJyb3JFdmVudC0+bWVzc2FnZSgp
KSk7CisgICAgICAgIGFyZ3MuYXBwZW5kKGpzU3RyaW5nKGV4ZWMsIGVycm9yRXZlbnQtPmZpbGVu
YW1lKCkpKTsKKyAgICAgICAgYXJncy5hcHBlbmQoanNOdW1iZXIoZXJyb3JFdmVudC0+bGluZW5v
KCkpKTsKKworICAgICAgICBKU0dsb2JhbERhdGEmIGdsb2JhbERhdGEgPSBnbG9iYWxPYmplY3Qt
Pmdsb2JhbERhdGEoKTsKKyAgICAgICAgRHluYW1pY0dsb2JhbE9iamVjdFNjb3BlIGdsb2JhbE9i
amVjdFNjb3BlKGV4ZWMsIGdsb2JhbERhdGEuZHluYW1pY0dsb2JhbE9iamVjdCA/IGdsb2JhbERh
dGEuZHluYW1pY0dsb2JhbE9iamVjdCA6IGdsb2JhbE9iamVjdCk7CisKKyAgICAgICAgSlNWYWx1
ZSB0aGlzVmFsdWUgPSBnbG9iYWxPYmplY3QtPnRvVGhpc09iamVjdChleGVjKTsKKworICAgICAg
ICBnbG9iYWxEYXRhLnRpbWVvdXRDaGVja2VyLnN0YXJ0KCk7CisgICAgICAgIEpTVmFsdWUgcmV0
dXJuVmFsdWUgPSBKU0M6OmNhbGwoZXhlYywganNGdW5jdGlvbiwgY2FsbFR5cGUsIGNhbGxEYXRh
LCB0aGlzVmFsdWUsIGFyZ3MpOworICAgICAgICBnbG9iYWxEYXRhLnRpbWVvdXRDaGVja2VyLnN0
b3AoKTsKKworICAgICAgICBnbG9iYWxPYmplY3QtPnNldEN1cnJlbnRFdmVudChzYXZlZEV2ZW50
KTsKKworICAgICAgICBpZiAoZXhlYy0+aGFkRXhjZXB0aW9uKCkpCisgICAgICAgICAgICByZXBv
cnRDdXJyZW50RXhjZXB0aW9uKGV4ZWMpOworICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgIGJv
b2wgcmV0dmFsYm9vbDsKKyAgICAgICAgICAgIGlmIChyZXR1cm5WYWx1ZS5nZXRCb29sZWFuKHJl
dHZhbGJvb2wpICYmICFyZXR2YWxib29sKQorICAgICAgICAgICAgICAgIGV2ZW50LT5wcmV2ZW50
RGVmYXVsdCgpOworICAgICAgICB9CisgICAgfQorfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3Jl
CmRpZmYgLS1naXQgYS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRXJyb3JIYW5kbGVyLmggYi9XZWJD
b3JlL2JpbmRpbmdzL2pzL0pTRXJyb3JIYW5kbGVyLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMC4uOTU3ZmQ4MQotLS0gL2Rldi9udWxsCisrKyBiL1dlYkNvcmUvYmluZGluZ3Mv
anMvSlNFcnJvckhhbmRsZXIuaApAQCAtMCwwICsxLDY0IEBACisvKgorICogQ29weXJpZ2h0IChD
KSAyMDEwIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMgYXJlCisgKiBtZXQ6CisgKgorICogICAgICogUmVkaXN0cmlidXRpb25z
IG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4K
KyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0
aGUgYWJvdmUKKyAqIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKKyAqIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKKyAqIGRpc3RyaWJ1dGlvbi4KKyAq
ICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBp
dHMKKyAqIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJv
ZHVjdHMgZGVyaXZlZCBmcm9tCisgKiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJp
b3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKKyAqICJBUyBJUyIgQU5E
IEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCisg
KiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBB
TkQgRklUTkVTUyBGT1IKKyAqIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJ
TiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCisgKiBPV05FUiBPUiBDT05UUklCVVRPUlMg
QkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKKyAqIFNQRUNJ
QUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBO
T1QKKyAqIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VS
VklDRVM7IExPU1MgT0YgVVNFLAorICogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5U
RVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisgKiBUSEVPUlkgT0YgTElBQklM
SVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAo
SU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VU
IE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUg
UE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBKU0Vycm9ySGFuZGxl
cl9oCisjZGVmaW5lIEpTRXJyb3JIYW5kbGVyX2gKKworI2luY2x1ZGUgIkpTRXZlbnRMaXN0ZW5l
ci5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIEpTRXJyb3JIYW5kbGVyIDogcHVi
bGljIEpTRXZlbnRMaXN0ZW5lciB7CitwdWJsaWM6CisgICAgc3RhdGljIFBhc3NSZWZQdHI8SlNF
cnJvckhhbmRsZXI+IGNyZWF0ZShKU0M6OkpTT2JqZWN0KiBsaXN0ZW5lciwgSlNDOjpKU09iamVj
dCogd3JhcHBlciwgYm9vbCBpc0F0dHJpYnV0ZSwgRE9NV3JhcHBlcldvcmxkKiBpc29sYXRlZFdv
cmxkKQorICAgIHsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBKU0Vycm9ySGFuZGxlcihs
aXN0ZW5lciwgd3JhcHBlciwgaXNBdHRyaWJ1dGUsIGlzb2xhdGVkV29ybGQpKTsKKyAgICB9CisK
KyAgICB2aXJ0dWFsIH5KU0Vycm9ySGFuZGxlcigpOworCitwcml2YXRlOgorICAgIEpTRXJyb3JI
YW5kbGVyKEpTQzo6SlNPYmplY3QqIGZ1bmN0aW9uLCBKU0M6OkpTT2JqZWN0KiB3cmFwcGVyLCBi
b29sIGlzQXR0cmlidXRlLCBET01XcmFwcGVyV29ybGQqIGlzb2xhdGVkV29ybGQpOworICAgIHZp
cnR1YWwgdm9pZCBoYW5kbGVFdmVudChTY3JpcHRFeGVjdXRpb25Db250ZXh0KiwgRXZlbnQqKTsK
K307CisKKy8vIENyZWF0ZXMgYSBKUyBFdmVudExpc3RlbmVyIGZvciAib25lcnJvciIgZXZlbnQg
aGFuZGxlciBpbiB3b3JrZXIgY29udGV4dC4gSXQgaGFzIGN1c3RvbSBpbXBsZW1lbnRhdGlvbiBi
ZWNhdXNlCisvLyB1bmxpa2Ugb3RoZXIgZXZlbnQgbGlzdGVuZXJzIGl0IGFjY2VwdHMgdGhyZWUg
cGFyYW1ldGVycy4KK2lubGluZSBQYXNzUmVmUHRyPEpTRXJyb3JIYW5kbGVyPiBjcmVhdGVKU0Vy
cm9ySGFuZGxlcihKU0M6OkV4ZWNTdGF0ZSogZXhlYywgSlNDOjpKU1ZhbHVlIGxpc3RlbmVyLCBK
U0M6OkpTT2JqZWN0KiB3cmFwcGVyKQoreworICAgIGlmICghbGlzdGVuZXIuaXNPYmplY3QoKSkK
KyAgICAgICAgcmV0dXJuIDA7CisKKyAgICByZXR1cm4gSlNFcnJvckhhbmRsZXI6OmNyZWF0ZShh
c09iamVjdChsaXN0ZW5lciksIHdyYXBwZXIsIHRydWUsIGN1cnJlbnRXb3JsZChleGVjKSk7Cit9
CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIEpTRXJyb3JIYW5kbGVyX2gK
ZGlmZiAtLWdpdCBhL1dlYkNvcmUvYmluZGluZ3MvanMvSlNFdmVudExpc3RlbmVyLmggYi9XZWJD
b3JlL2JpbmRpbmdzL2pzL0pTRXZlbnRMaXN0ZW5lci5oCmluZGV4IGIxNWM1ODkuLjgzZDBkMmUg
MTAwNjQ0Ci0tLSBhL1dlYkNvcmUvYmluZGluZ3MvanMvSlNFdmVudExpc3RlbmVyLmgKKysrIGIv
V2ViQ29yZS9iaW5kaW5ncy9qcy9KU0V2ZW50TGlzdGVuZXIuaApAQCAtNTksMTEgKzU5LDExIEBA
IG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgdmlydHVhbCBKU0M6OkpTT2JqZWN0KiBpbml0
aWFsaXplSlNGdW5jdGlvbihTY3JpcHRFeGVjdXRpb25Db250ZXh0KikgY29uc3Q7CiAgICAgICAg
IHZpcnR1YWwgdm9pZCBtYXJrSlNGdW5jdGlvbihKU0M6Ok1hcmtTdGFjayYpOwogICAgICAgICB2
aXJ0dWFsIHZvaWQgaW52YWxpZGF0ZUpTRnVuY3Rpb24oSlNDOjpKU09iamVjdCopOwotICAgICAg
ICB2aXJ0dWFsIHZvaWQgaGFuZGxlRXZlbnQoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIEV2ZW50
Kik7CiAgICAgICAgIHZpcnR1YWwgYm9vbCB2aXJ0dWFsaXNBdHRyaWJ1dGUoKSBjb25zdDsKIAog
ICAgIHByb3RlY3RlZDoKICAgICAgICAgSlNFdmVudExpc3RlbmVyKEpTQzo6SlNPYmplY3QqIGZ1
bmN0aW9uLCBKU0M6OkpTT2JqZWN0KiB3cmFwcGVyLCBib29sIGlzQXR0cmlidXRlLCBET01XcmFw
cGVyV29ybGQqIGlzb2xhdGVkV29ybGQpOworICAgICAgICB2aXJ0dWFsIHZvaWQgaGFuZGxlRXZl
bnQoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIEV2ZW50Kik7CiAKICAgICBwcml2YXRlOgogICAg
ICAgICBtdXRhYmxlIEpTQzo6SlNPYmplY3QqIG1fanNGdW5jdGlvbjsKZGlmZiAtLWdpdCBhL1dl
YkNvcmUvYmluZGluZ3MvanMvSlNXb3JrZXJDb250ZXh0RXJyb3JIYW5kbGVyLmNwcCBiL1dlYkNv
cmUvYmluZGluZ3MvanMvSlNXb3JrZXJDb250ZXh0RXJyb3JIYW5kbGVyLmNwcApkZWxldGVkIGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggZjdkMmIwMi4uMDAwMDAwMAotLS0gYS9XZWJDb3JlL2JpbmRp
bmdzL2pzL0pTV29ya2VyQ29udGV4dEVycm9ySGFuZGxlci5jcHAKKysrIC9kZXYvbnVsbApAQCAt
MSwxMTYgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMCBHb29nbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQotICog
bWV0OgotICoKLSAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJl
dGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAgICAgKiBSZWRpc3RyaWJ1dGlv
bnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCi0gKiBjb3B5cmlnaHQg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyCi0gKiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlCi0gKiBkaXN0cmlidXRpb24uCi0gKiAgICAgKiBOZWl0aGVyIHRoZSBuYW1l
IG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCi0gKiBjb250cmlidXRvcnMgbWF5
IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQotICog
dGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4K
LSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVS
UyBBTkQgQ09OVFJJQlVUT1JTCi0gKiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAotICogTElNSVRFRCBUTywgVEhFIElNUExJ
RUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCi0gKiBBIFBB
UlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENP
UFlSSUdIVAotICogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCi0gKiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNF
UVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCi0gKiBMSU1JVEVEIFRPLCBQUk9D
VVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKLSAq
IERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5EIE9OIEFOWQotICogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0gKiBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLgotICovCi0KLSNpbmNsdWRlICJjb25maWcuaCIKLQotI2lmIEVOQUJMRShXT1JLRVJTKQot
Ci0jaW5jbHVkZSAiSlNXb3JrZXJDb250ZXh0RXJyb3JIYW5kbGVyLmgiCi0KLSNpbmNsdWRlICJF
cnJvckV2ZW50LmgiCi0jaW5jbHVkZSAiRXZlbnQuaCIKLSNpbmNsdWRlICJKU0V2ZW50LmgiCi0j
aW5jbHVkZSA8cnVudGltZS9KU0xvY2suaD4KLQotdXNpbmcgbmFtZXNwYWNlIEpTQzsKLQotbmFt
ZXNwYWNlIFdlYkNvcmUgewotCi1KU1dvcmtlckNvbnRleHRFcnJvckhhbmRsZXI6OkpTV29ya2Vy
Q29udGV4dEVycm9ySGFuZGxlcihKU09iamVjdCogZnVuY3Rpb24sIEpTT2JqZWN0KiB3cmFwcGVy
LCBib29sIGlzQXR0cmlidXRlLCBET01XcmFwcGVyV29ybGQqIGlzb2xhdGVkV29ybGQpCi0gICAg
OiBKU0V2ZW50TGlzdGVuZXIoZnVuY3Rpb24sIHdyYXBwZXIsIGlzQXR0cmlidXRlLCBpc29sYXRl
ZFdvcmxkKQotewotfQotCi1KU1dvcmtlckNvbnRleHRFcnJvckhhbmRsZXI6On5KU1dvcmtlckNv
bnRleHRFcnJvckhhbmRsZXIoKQotewotfQotCi12b2lkIEpTV29ya2VyQ29udGV4dEVycm9ySGFu
ZGxlcjo6aGFuZGxlRXZlbnQoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogc2NyaXB0RXhlY3V0aW9u
Q29udGV4dCwgRXZlbnQqIGV2ZW50KQotewotICAgIEFTU0VSVChzY3JpcHRFeGVjdXRpb25Db250
ZXh0KTsKLSAgICBpZiAoIXNjcmlwdEV4ZWN1dGlvbkNvbnRleHQpCi0gICAgICAgIHJldHVybjsK
LQotICAgIEpTTG9jayBsb2NrKFNpbGVuY2VBc3NlcnRpb25zT25seSk7Ci0KLSAgICBKU09iamVj
dCoganNGdW5jdGlvbiA9IHRoaXMtPmpzRnVuY3Rpb24oc2NyaXB0RXhlY3V0aW9uQ29udGV4dCk7
Ci0gICAgaWYgKCFqc0Z1bmN0aW9uKQotICAgICAgICByZXR1cm47Ci0KLSAgICBKU0RPTUdsb2Jh
bE9iamVjdCogZ2xvYmFsT2JqZWN0ID0gdG9KU0RPTUdsb2JhbE9iamVjdChzY3JpcHRFeGVjdXRp
b25Db250ZXh0LCBpc29sYXRlZFdvcmxkKCkpOwotICAgIGlmICghZ2xvYmFsT2JqZWN0KQotICAg
ICAgICByZXR1cm47Ci0KLSAgICBFeGVjU3RhdGUqIGV4ZWMgPSBnbG9iYWxPYmplY3QtPmdsb2Jh
bEV4ZWMoKTsKLQotICAgIENhbGxEYXRhIGNhbGxEYXRhOwotICAgIENhbGxUeXBlIGNhbGxUeXBl
ID0ganNGdW5jdGlvbi0+Z2V0Q2FsbERhdGEoY2FsbERhdGEpOwotCi0gICAgaWYgKGNhbGxUeXBl
ICE9IENhbGxUeXBlTm9uZSkgewotCi0gICAgICAgIHJlZigpOwotCi0gICAgICAgIEV2ZW50KiBz
YXZlZEV2ZW50ID0gZ2xvYmFsT2JqZWN0LT5jdXJyZW50RXZlbnQoKTsKLSAgICAgICAgZ2xvYmFs
T2JqZWN0LT5zZXRDdXJyZW50RXZlbnQoZXZlbnQpOwotCi0gICAgICAgIEFTU0VSVChldmVudC0+
aXNFcnJvckV2ZW50KCkpOwotICAgICAgICBFcnJvckV2ZW50KiBlcnJvckV2ZW50ID0gc3RhdGlj
X2Nhc3Q8RXJyb3JFdmVudCo+KGV2ZW50KTsKLQotICAgICAgICBNYXJrZWRBcmd1bWVudEJ1ZmZl
ciBhcmdzOwotICAgICAgICBhcmdzLmFwcGVuZChqc1N0cmluZyhleGVjLCBlcnJvckV2ZW50LT5t
ZXNzYWdlKCkpKTsKLSAgICAgICAgYXJncy5hcHBlbmQoanNTdHJpbmcoZXhlYywgZXJyb3JFdmVu
dC0+ZmlsZW5hbWUoKSkpOwotICAgICAgICBhcmdzLmFwcGVuZChqc051bWJlcihlcnJvckV2ZW50
LT5saW5lbm8oKSkpOwotCi0gICAgICAgIEpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSA9IGdsb2Jh
bE9iamVjdC0+Z2xvYmFsRGF0YSgpOwotICAgICAgICBEeW5hbWljR2xvYmFsT2JqZWN0U2NvcGUg
Z2xvYmFsT2JqZWN0U2NvcGUoZXhlYywgZ2xvYmFsRGF0YS5keW5hbWljR2xvYmFsT2JqZWN0ID8g
Z2xvYmFsRGF0YS5keW5hbWljR2xvYmFsT2JqZWN0IDogZ2xvYmFsT2JqZWN0KTsKLQotICAgICAg
ICBKU1ZhbHVlIHRoaXNWYWx1ZSA9IGdsb2JhbE9iamVjdC0+dG9UaGlzT2JqZWN0KGV4ZWMpOwot
Ci0gICAgICAgIGdsb2JhbERhdGEudGltZW91dENoZWNrZXIuc3RhcnQoKTsKLSAgICAgICAgSlNW
YWx1ZSByZXR1cm5WYWx1ZSA9IEpTQzo6Y2FsbChleGVjLCBqc0Z1bmN0aW9uLCBjYWxsVHlwZSwg
Y2FsbERhdGEsIHRoaXNWYWx1ZSwgYXJncyk7Ci0gICAgICAgIGdsb2JhbERhdGEudGltZW91dENo
ZWNrZXIuc3RvcCgpOwotCi0gICAgICAgIGdsb2JhbE9iamVjdC0+c2V0Q3VycmVudEV2ZW50KHNh
dmVkRXZlbnQpOwotCi0gICAgICAgIGlmIChleGVjLT5oYWRFeGNlcHRpb24oKSkKLSAgICAgICAg
ICAgIHJlcG9ydEN1cnJlbnRFeGNlcHRpb24oZXhlYyk7Ci0gICAgICAgIGVsc2UgewotICAgICAg
ICAgICAgYm9vbCByZXR2YWxib29sOwotICAgICAgICAgICAgaWYgKHJldHVyblZhbHVlLmdldEJv
b2xlYW4ocmV0dmFsYm9vbCkgJiYgIXJldHZhbGJvb2wpCi0gICAgICAgICAgICAgICAgZXZlbnQt
PnByZXZlbnREZWZhdWx0KCk7Ci0gICAgICAgIH0KLQotICAgICAgICBkZXJlZigpOwotICAgIH0K
LX0KLQotfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQotCi0jZW5kaWYgLy8gRU5BQkxFKFdPUktFUlMp
CmRpZmYgLS1naXQgYS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTV29ya2VyQ29udGV4dEVycm9ySGFu
ZGxlci5oIGIvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1dvcmtlckNvbnRleHRFcnJvckhhbmRsZXIu
aApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYTE4ODI5OS4uMDAwMDAwMAotLS0gYS9X
ZWJDb3JlL2JpbmRpbmdzL2pzL0pTV29ya2VyQ29udGV4dEVycm9ySGFuZGxlci5oCisrKyAvZGV2
L251bGwKQEAgLTEsNjQgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMCBHb29nbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
IGFyZQotICogbWV0OgotICoKLSAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAgICAgKiBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCi0gKiBj
b3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyCi0gKiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlCi0gKiBkaXN0cmlidXRpb24uCi0gKiAgICAgKiBOZWl0aGVy
IHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCi0gKiBjb250cmli
dXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQg
ZnJvbQotICogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVy
bWlzc2lvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklH
SFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCi0gKiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBP
UiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAotICogTElNSVRFRCBUTywg
VEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9S
Ci0gKiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hB
TEwgVEhFIENPUFlSSUdIVAotICogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCi0gKiBTUEVDSUFMLCBFWEVNUExBUlks
IE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCi0gKiBMSU1JVEVE
IFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwKLSAqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OIEFOWQotICogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0g
KiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgotICovCi0KLSNpZm5kZWYgSlNXb3JrZXJDb250ZXh0RXJyb3JIYW5kbGVy
X2gKLSNkZWZpbmUgSlNXb3JrZXJDb250ZXh0RXJyb3JIYW5kbGVyX2gKLQotI2luY2x1ZGUgIkpT
RXZlbnRMaXN0ZW5lci5oIgotCi1uYW1lc3BhY2UgV2ViQ29yZSB7Ci0KLWNsYXNzIEpTV29ya2Vy
Q29udGV4dEVycm9ySGFuZGxlciA6IHB1YmxpYyBKU0V2ZW50TGlzdGVuZXIgewotcHVibGljOgot
ICAgIHN0YXRpYyBQYXNzUmVmUHRyPEpTV29ya2VyQ29udGV4dEVycm9ySGFuZGxlcj4gY3JlYXRl
KEpTQzo6SlNPYmplY3QqIGxpc3RlbmVyLCBKU0M6OkpTT2JqZWN0KiB3cmFwcGVyLCBib29sIGlz
QXR0cmlidXRlLCBET01XcmFwcGVyV29ybGQqIGlzb2xhdGVkV29ybGQpCi0gICAgewotICAgICAg
ICByZXR1cm4gYWRvcHRSZWYobmV3IEpTV29ya2VyQ29udGV4dEVycm9ySGFuZGxlcihsaXN0ZW5l
ciwgd3JhcHBlciwgaXNBdHRyaWJ1dGUsIGlzb2xhdGVkV29ybGQpKTsKLSAgICB9Ci0KLSAgICB2
aXJ0dWFsIH5KU1dvcmtlckNvbnRleHRFcnJvckhhbmRsZXIoKTsKLQotcHJpdmF0ZToKLSAgICBK
U1dvcmtlckNvbnRleHRFcnJvckhhbmRsZXIoSlNDOjpKU09iamVjdCogZnVuY3Rpb24sIEpTQzo6
SlNPYmplY3QqIHdyYXBwZXIsIGJvb2wgaXNBdHRyaWJ1dGUsIERPTVdyYXBwZXJXb3JsZCogaXNv
bGF0ZWRXb3JsZCk7Ci0gICAgdmlydHVhbCB2b2lkIGhhbmRsZUV2ZW50KFNjcmlwdEV4ZWN1dGlv
bkNvbnRleHQqLCBFdmVudCopOwotfTsKLQotLy8gQ3JlYXRlcyBhIEpTIEV2ZW50TGlzdGVuZXIg
Zm9yICJvbmVycm9yIiBldmVudCBoYW5kbGVyIGluIHdvcmtlciBjb250ZXh0LiBJdCBoYXMgY3Vz
dG9tIGltcGxlbWVudGF0aW9uIGJlY2F1c2UKLS8vIHVubGlrZSBvdGhlciBldmVudCBsaXN0ZW5l
cnMgaXQgYWNjZXB0cyB0aHJlZSBwYXJhbWV0ZXJzLgotaW5saW5lIFBhc3NSZWZQdHI8SlNXb3Jr
ZXJDb250ZXh0RXJyb3JIYW5kbGVyPiBjcmVhdGVKU1dvcmtlckNvbnRleHRFcnJvckhhbmRsZXIo
SlNDOjpFeGVjU3RhdGUqIGV4ZWMsIEpTQzo6SlNWYWx1ZSBsaXN0ZW5lciwgSlNDOjpKU09iamVj
dCogd3JhcHBlcikKLXsKLSAgICBpZiAoIWxpc3RlbmVyLmlzT2JqZWN0KCkpCi0gICAgICAgIHJl
dHVybiAwOwotCi0gICAgcmV0dXJuIEpTV29ya2VyQ29udGV4dEVycm9ySGFuZGxlcjo6Y3JlYXRl
KGFzT2JqZWN0KGxpc3RlbmVyKSwgd3JhcHBlciwgdHJ1ZSwgY3VycmVudFdvcmxkKGV4ZWMpKTsK
LX0KLQotfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQotCi0jZW5kaWYgLy8gSlNXb3JrZXJDb250ZXh0
RXJyb3JIYW5kbGVyX2gKZGlmZiAtLWdpdCBhL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2Rl
R2VuZXJhdG9ySlMucG0gYi9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckpT
LnBtCmluZGV4IGNmZjUxZTkuLmFiZWYwNGUgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvYmluZGluZ3Mv
c2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG0KKysrIGIvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRz
L0NvZGVHZW5lcmF0b3JKUy5wbQpAQCAtMTcyMSw5ICsxNzIxLDkgQEAgc3ViIEdlbmVyYXRlSW1w
bGVtZW50YXRpb24KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHVzaChAaW1wbENv
bnRlbnQsICIgICAgSlNET01HbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCA9IGNhc3RlZFRoaXMt
Pmdsb2JhbE9iamVjdCgpO1xuIik7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgICRpbXBsQ2xh
c3NOYW1lKiBpbXAgPSBzdGF0aWNfY2FzdDwkaW1wbENsYXNzTmFtZSo+KHN0YXRpY19jYXN0PCRj
bGFzc05hbWUqPih0aGlzT2JqZWN0KS0+aW1wbCgpKTtcbiIpOwotICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGlmICgkaW50ZXJmYWNlTmFtZSBlcSAiV29ya2VyQ29udGV4dCIgYW5kICRuYW1l
IGVxICJvbmVycm9yIikgewotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkaW1wbElu
Y2x1ZGVzeyJKU1dvcmtlckNvbnRleHRFcnJvckhhbmRsZXIuaCJ9ID0gMTsKLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgaW1wLT5zZXQkaW1w
bFNldHRlckZ1bmN0aW9uTmFtZShjcmVhdGVKU1dvcmtlckNvbnRleHRFcnJvckhhbmRsZXIoZXhl
YywgdmFsdWUsIHRoaXNPYmplY3QpKTtcbiIpOworICAgICAgICAgICAgICAgICAgICAgICAgICAg
IGlmICgoKCRpbnRlcmZhY2VOYW1lIGVxICJET01XaW5kb3ciKSBvciAoJGludGVyZmFjZU5hbWUg
ZXEgIldvcmtlckNvbnRleHQiKSkgYW5kICRuYW1lIGVxICJvbmVycm9yIikgeworICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAkaW1wbEluY2x1ZGVzeyJKU0Vycm9ySGFuZGxlci5oIn0g
PSAxOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwg
IiAgICBpbXAtPnNldCRpbXBsU2V0dGVyRnVuY3Rpb25OYW1lKGNyZWF0ZUpTRXJyb3JIYW5kbGVy
KGV4ZWMsIHZhbHVlLCB0aGlzT2JqZWN0KSk7XG4iKTsKICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwdXNoKEBpbXBs
Q29udGVudCwgR2VuZXJhdGVBdHRyaWJ1dGVFdmVudExpc3RlbmVyQ2FsbCgkY2xhc3NOYW1lLCAk
aW1wbFNldHRlckZ1bmN0aW9uTmFtZSwgJHdpbmRvd0V2ZW50TGlzdGVuZXIpKTsKICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICB9CmRpZmYgLS1naXQgYS9XZWJDb3JlL2JpbmRpbmdzL3Njcmlw
dHMvQ29kZUdlbmVyYXRvclY4LnBtIGIvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5l
cmF0b3JWOC5wbQppbmRleCBmNTBlNzRhLi5jMDZmZTE3IDEwMDY0NAotLS0gYS9XZWJDb3JlL2Jp
bmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvclY4LnBtCisrKyBiL1dlYkNvcmUvYmluZGluZ3Mv
c2NyaXB0cy9Db2RlR2VuZXJhdG9yVjgucG0KQEAgLTEwMDEsNiArMTAwMSwxMCBAQCBFTkQKICAg
ICAgICAgICAgICAgICAkaW1wbEluY2x1ZGVzeyJWOEV2ZW50TGlzdGVuZXJMaXN0LmgifSA9IDE7
CiAgICAgICAgICAgICAgICAgJGltcGxJbmNsdWRlc3siVjhXb3JrZXJDb250ZXh0RXJyb3JIYW5k
bGVyLmgifSA9IDE7CiAgICAgICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnREZWNscywgIiAg
ICBpbXAtPnNldCRpbXBsU2V0dGVyRnVuY3Rpb25OYW1lKFY4RXZlbnRMaXN0ZW5lckxpc3Q6OmZp
bmRPckNyZWF0ZVdyYXBwZXI8VjhXb3JrZXJDb250ZXh0RXJyb3JIYW5kbGVyPih2YWx1ZSwgdHJ1
ZSkiKTsKKyAgICAgICAgICAgIH0gZWxzaWYgKCRpbnRlcmZhY2VOYW1lIGVxICJET01XaW5kb3ci
IGFuZCAkYXR0cmlidXRlLT5zaWduYXR1cmUtPm5hbWUgZXEgIm9uZXJyb3IiKSB7CisgICAgICAg
ICAgICAgICAgJGltcGxJbmNsdWRlc3siVjhFdmVudExpc3RlbmVyTGlzdC5oIn0gPSAxOworICAg
ICAgICAgICAgICAgICRpbXBsSW5jbHVkZXN7IlY4V2luZG93RXJyb3JIYW5kbGVyLmgifSA9IDE7
CisgICAgICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnREZWNscywgIiAgICBpbXAtPnNldCRp
bXBsU2V0dGVyRnVuY3Rpb25OYW1lKFY4RXZlbnRMaXN0ZW5lckxpc3Q6OmZpbmRPckNyZWF0ZVdy
YXBwZXI8VjhXaW5kb3dFcnJvckhhbmRsZXI+KHZhbHVlLCB0cnVlKSIpOwogICAgICAgICAgICAg
fSBlbHNlIHsKICAgICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudERlY2xzLCAiICAgIGlt
cC0+c2V0JGltcGxTZXR0ZXJGdW5jdGlvbk5hbWUoVjhET01XcmFwcGVyOjpnZXRFdmVudExpc3Rl
bmVyKHZhbHVlLCB0cnVlLCBMaXN0ZW5lckZpbmRPckNyZWF0ZSkiKTsKICAgICAgICAgICAgIH0K
ZGlmZiAtLWdpdCBhL1dlYkNvcmUvYmluZGluZ3MvdjgvVjhDb25zb2xlTWVzc2FnZS5jcHAgYi9X
ZWJDb3JlL2JpbmRpbmdzL3Y4L1Y4Q29uc29sZU1lc3NhZ2UuY3BwCmluZGV4IGU2ODcxZmQuLmQ5
MjgyMmMgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvYmluZGluZ3MvdjgvVjhDb25zb2xlTWVzc2FnZS5j
cHAKKysrIGIvV2ViQ29yZS9iaW5kaW5ncy92OC9WOENvbnNvbGVNZXNzYWdlLmNwcApAQCAtNTQs
NyArNTQsMTQgQEAgVjhDb25zb2xlTWVzc2FnZTo6VjhDb25zb2xlTWVzc2FnZShjb25zdCBTdHJp
bmcmIHN0cmluZywgY29uc3QgU3RyaW5nJiBzb3VyY2VJRCwKIAogdm9pZCBWOENvbnNvbGVNZXNz
YWdlOjpkaXNwYXRjaE5vdyhQYWdlKiBwYWdlKQogewotICAgIGRpc3BhdGNoTm93KHBhZ2UsIDAp
OworICAgIEFTU0VSVChwYWdlKTsKKworICAgIC8vIFByb2Nlc3MgYW55IGRlbGF5ZWQgbWVzc2Fn
ZXMgdG8gbWFrZSBzdXJlIHRoYXQgbWVzc2FnZXMKKyAgICAvLyBhcHBlYXIgaW4gdGhlIHJpZ2h0
IG9yZGVyIGluIHRoZSBjb25zb2xlLgorICAgIHByb2Nlc3NEZWxheWVkKCk7CisKKyAgICBDb25z
b2xlKiBjb25zb2xlID0gcGFnZS0+bWFpbkZyYW1lKCktPmRvbVdpbmRvdygpLT5jb25zb2xlKCk7
CisgICAgY29uc29sZS0+YWRkTWVzc2FnZShKU01lc3NhZ2VTb3VyY2UsIExvZ01lc3NhZ2VUeXBl
LCBFcnJvck1lc3NhZ2VMZXZlbCwgbV9zdHJpbmcsIG1fbGluZU51bWJlciwgbV9zb3VyY2VJRCk7
CiB9CiAKIHZvaWQgVjhDb25zb2xlTWVzc2FnZTo6ZGlzcGF0Y2hMYXRlcigpCkBAIC0xMDUsOCAr
MTEyLDggQEAgdm9pZCBWOENvbnNvbGVNZXNzYWdlOjpoYW5kbGVyKHY4OjpIYW5kbGU8djg6Ok1l
c3NhZ2U+IG1lc3NhZ2UsIHY4OjpIYW5kbGU8djg6OlYKICAgICBGcmFtZSogZnJhbWUgPSBWOFBy
b3h5OjpyZXRyaWV2ZUZyYW1lRm9yRW50ZXJlZENvbnRleHQoKTsKICAgICBpZiAoIWZyYW1lKQog
ICAgICAgICByZXR1cm47Ci0gICAgUGFnZSogcGFnZSA9IGZyYW1lLT5wYWdlKCk7Ci0gICAgaWYg
KCFwYWdlKQorICAgIERvY3VtZW50KiBkb2N1bWVudCA9IGZyYW1lLT5kb2N1bWVudCgpOworICAg
IGlmICghZG9jdW1lbnQpCiAgICAgICAgIHJldHVybjsKIAogICAgIHY4OjpIYW5kbGU8djg6OlN0
cmluZz4gZXJyb3JNZXNzYWdlU3RyaW5nID0gbWVzc2FnZS0+R2V0KCk7CkBAIC0xMjIsMjEgKzEy
OSw3IEBAIHZvaWQgVjhDb25zb2xlTWVzc2FnZTo6aGFuZGxlcih2ODo6SGFuZGxlPHY4OjpNZXNz
YWdlPiBtZXNzYWdlLCB2ODo6SGFuZGxlPHY4OjpWCiAgICAgdjg6OkhhbmRsZTx2ODo6VmFsdWU+
IHJlc291cmNlTmFtZSA9IG1lc3NhZ2UtPkdldFNjcmlwdFJlc291cmNlTmFtZSgpOwogICAgIGJv
b2wgdXNlVVJMID0gcmVzb3VyY2VOYW1lLklzRW1wdHkoKSB8fCAhcmVzb3VyY2VOYW1lLT5Jc1N0
cmluZygpOwogICAgIFN0cmluZyByZXNvdXJjZU5hbWVTdHJpbmcgPSB1c2VVUkwgPyBmcmFtZS0+
ZG9jdW1lbnQoKS0+dXJsKCkgOiB0b1dlYkNvcmVTdHJpbmcocmVzb3VyY2VOYW1lKTsKLSAgICBW
OENvbnNvbGVNZXNzYWdlIGNvbnNvbGVNZXNzYWdlKGVycm9yTWVzc2FnZSwgcmVzb3VyY2VOYW1l
U3RyaW5nLCBtZXNzYWdlLT5HZXRMaW5lTnVtYmVyKCkpOwotICAgIGNvbnNvbGVNZXNzYWdlLmRp
c3BhdGNoTm93KHBhZ2UsIGNhbGxTdGFjayk7Ci19Ci0KLXZvaWQgVjhDb25zb2xlTWVzc2FnZTo6
ZGlzcGF0Y2hOb3coUGFnZSogcGFnZSwgUGFzc1JlZlB0cjxTY3JpcHRDYWxsU3RhY2s+IGNhbGxT
dGFjaykKLXsKLSAgICBBU1NFUlQocGFnZSk7Ci0KLSAgICAvLyBQcm9jZXNzIGFueSBkZWxheWVk
IG1lc3NhZ2VzIHRvIG1ha2Ugc3VyZSB0aGF0IG1lc3NhZ2VzCi0gICAgLy8gYXBwZWFyIGluIHRo
ZSByaWdodCBvcmRlciBpbiB0aGUgY29uc29sZS4KLSAgICBwcm9jZXNzRGVsYXllZCgpOwotCi0g
ICAgQ29uc29sZSogY29uc29sZSA9IHBhZ2UtPm1haW5GcmFtZSgpLT5kb21XaW5kb3coKS0+Y29u
c29sZSgpOwotICAgIE1lc3NhZ2VUeXBlIG1lc3NhZ2VUeXBlID0gY2FsbFN0YWNrID8gVW5jYXVn
aHRFeGNlcHRpb25NZXNzYWdlVHlwZSA6IExvZ01lc3NhZ2VUeXBlOwotICAgIGNvbnNvbGUtPmFk
ZE1lc3NhZ2UoSlNNZXNzYWdlU291cmNlLCBtZXNzYWdlVHlwZSwgRXJyb3JNZXNzYWdlTGV2ZWws
IG1fc3RyaW5nLCBtX2xpbmVOdW1iZXIsIG1fc291cmNlSUQsIGNhbGxTdGFjayk7CisgICAgZG9j
dW1lbnQtPnJlcG9ydEV4Y2VwdGlvbihlcnJvck1lc3NhZ2UsIG1lc3NhZ2UtPkdldExpbmVOdW1i
ZXIoKSwgcmVzb3VyY2VOYW1lU3RyaW5nLCBjYWxsU3RhY2spOwogfQogCiB9IC8vIG5hbWVzcGFj
ZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1Y4Q29uc29sZU1lc3Nh
Z2UuaCBiL1dlYkNvcmUvYmluZGluZ3MvdjgvVjhDb25zb2xlTWVzc2FnZS5oCmluZGV4IDk3ZGUy
NGYuLjYxODNmYzYgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvYmluZGluZ3MvdjgvVjhDb25zb2xlTWVz
c2FnZS5oCisrKyBiL1dlYkNvcmUvYmluZGluZ3MvdjgvVjhDb25zb2xlTWVzc2FnZS5oCkBAIC04
Miw4ICs4Miw2IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgY29uc3QgU3RyaW5nIG1f
c291cmNlSUQ7CiAgICAgICAgIGNvbnN0IHVuc2lnbmVkIG1fbGluZU51bWJlcjsKIAotICAgICAg
ICB2b2lkIGRpc3BhdGNoTm93KFBhZ2UqLCBQYXNzUmVmUHRyPFNjcmlwdENhbGxTdGFjaz4pOwot
CiAgICAgICAgIC8vIEFsbCBkZWxheWVkIG1lc3NhZ2VzIGFyZSBzdG9yZWQgaW4gdGhpcyB2ZWN0
b3IuIElmIHRoZSB2ZWN0b3IKICAgICAgICAgLy8gaXMgMCwgdGhlcmUgYXJlIG5vIGRlbGF5ZWQg
bWVzc2FnZXMuCiAgICAgICAgIHN0YXRpYyBWZWN0b3I8VjhDb25zb2xlTWVzc2FnZT4qIG1fZGVs
YXllZE1lc3NhZ2VzOwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9iaW5kaW5ncy92OC9WOEV2ZW50TGlz
dGVuZXIuaCBiL1dlYkNvcmUvYmluZGluZ3MvdjgvVjhFdmVudExpc3RlbmVyLmgKaW5kZXggZmI2
YzBiYy4uYmNmNzIxMyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9iaW5kaW5ncy92OC9WOEV2ZW50TGlz
dGVuZXIuaAorKysgYi9XZWJDb3JlL2JpbmRpbmdzL3Y4L1Y4RXZlbnRMaXN0ZW5lci5oCkBAIC01
NCw4ICs1NCw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogICAgICAgICB2ODo6TG9jYWw8djg6
OkZ1bmN0aW9uPiBnZXRMaXN0ZW5lckZ1bmN0aW9uKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqKTsK
IAotICAgIHByaXZhdGU6Ci0gICAgICB2aXJ0dWFsIHY4OjpMb2NhbDx2ODo6VmFsdWU+IGNhbGxM
aXN0ZW5lckZ1bmN0aW9uKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqLCB2ODo6SGFuZGxlPHY4OjpW
YWx1ZT4ganNFdmVudCwgRXZlbnQqKTsKKyAgICAgICAgdmlydHVhbCB2ODo6TG9jYWw8djg6OlZh
bHVlPiBjYWxsTGlzdGVuZXJGdW5jdGlvbihTY3JpcHRFeGVjdXRpb25Db250ZXh0Kiwgdjg6Okhh
bmRsZTx2ODo6VmFsdWU+IGpzRXZlbnQsIEV2ZW50Kik7CiAgICAgIH07CiAKIH0gLy8gbmFtZXNw
YWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1dlYkNvcmUvYmluZGluZ3MvdjgvVjhXaW5kb3dFcnJv
ckhhbmRsZXIuY3BwIGIvV2ViQ29yZS9iaW5kaW5ncy92OC9WOFdpbmRvd0Vycm9ySGFuZGxlci5j
cHAKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uNDIwM2FkNQotLS0gL2Rldi9u
dWxsCisrKyBiL1dlYkNvcmUvYmluZGluZ3MvdjgvVjhXaW5kb3dFcnJvckhhbmRsZXIuY3BwCkBA
IC0wLDAgKzEsNjQgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgR29vZ2xlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKKyAq
IG1ldDoKKyAqCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogICAgICogUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQorICogY29weXJpZ2h0
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lcgorICogaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZQorICogZGlzdHJpYnV0aW9uLgorICogICAgICogTmVpdGhlciB0aGUgbmFt
ZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cworICogY29udHJpYnV0b3JzIG1h
eSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KKyAq
IHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24u
CisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERF
UlMgQU5EIENPTlRSSUJVVE9SUworICogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFRIRSBJTVBM
SUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgorICogQSBQ
QVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBD
T1BZUklHSFQKKyAqIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJF
Q1QsIElORElSRUNULCBJTkNJREVOVEFMLAorICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05T
RVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgUFJP
Q1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCisg
KiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FV
U0VEIEFORCBPTiBBTlkKKyAqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBP
UiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJ
UyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisKKyNpbmNsdWRlICJWOFdpbmRvd0Vy
cm9ySGFuZGxlci5oIgorCisjaW5jbHVkZSAiRXJyb3JFdmVudC5oIgorI2luY2x1ZGUgIlY4Qmlu
ZGluZy5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK1Y4V2luZG93RXJyb3JIYW5kbGVyOjpW
OFdpbmRvd0Vycm9ySGFuZGxlcih2ODo6TG9jYWw8djg6Ok9iamVjdD4gbGlzdGVuZXIsIGJvb2wg
aXNJbmxpbmUsIGNvbnN0IFdvcmxkQ29udGV4dEhhbmRsZSYgd29ybGRDb250ZXh0KQorICAgIDog
VjhFdmVudExpc3RlbmVyKGxpc3RlbmVyLCBpc0lubGluZSwgd29ybGRDb250ZXh0KQoreworfQor
Cit2ODo6TG9jYWw8djg6OlZhbHVlPiBWOFdpbmRvd0Vycm9ySGFuZGxlcjo6Y2FsbExpc3RlbmVy
RnVuY3Rpb24oU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCwgdjg6OkhhbmRsZTx2ODo6
VmFsdWU+IGpzRXZlbnQsIEV2ZW50KiBldmVudCkKK3sKKyAgICBpZiAoIWV2ZW50LT5pc0Vycm9y
RXZlbnQoKSkKKyAgICAgICAgcmV0dXJuIFY4RXZlbnRMaXN0ZW5lcjo6Y2FsbExpc3RlbmVyRnVu
Y3Rpb24oY29udGV4dCwganNFdmVudCwgZXZlbnQpOworICAgIAorICAgIEVycm9yRXZlbnQqIGVy
cm9yRXZlbnQgPSBzdGF0aWNfY2FzdDxFcnJvckV2ZW50Kj4oZXZlbnQpOworICAgIHY4OjpMb2Nh
bDx2ODo6T2JqZWN0PiBsaXN0ZW5lciA9IGdldExpc3RlbmVyT2JqZWN0KGNvbnRleHQpOworICAg
IHY4OjpMb2NhbDx2ODo6VmFsdWU+IHJldHVyblZhbHVlOworICAgIGlmICghbGlzdGVuZXIuSXNF
bXB0eSgpICYmIGxpc3RlbmVyLT5Jc0Z1bmN0aW9uKCkpIHsKKyAgICAgICAgdjg6OkxvY2FsPHY4
OjpGdW5jdGlvbj4gY2FsbEZ1bmN0aW9uID0gdjg6OkxvY2FsPHY4OjpGdW5jdGlvbj46OkNhc3Qo
bGlzdGVuZXIpOworICAgICAgICB2ODo6TG9jYWw8djg6Ok9iamVjdD4gdGhpc1ZhbHVlID0gdjg6
OkNvbnRleHQ6OkdldEN1cnJlbnQoKS0+R2xvYmFsKCk7CisgICAgICAgIHY4OjpIYW5kbGU8djg6
OlZhbHVlPiBwYXJhbWV0ZXJzWzNdID0geyB2OFN0cmluZyhlcnJvckV2ZW50LT5tZXNzYWdlKCkp
LCB2OFN0cmluZyhlcnJvckV2ZW50LT5maWxlbmFtZSgpKSwgdjg6OkludGVnZXI6Ok5ldyhlcnJv
ckV2ZW50LT5saW5lbm8oKSkgfTsKKyAgICAgICAgcmV0dXJuVmFsdWUgPSBjYWxsRnVuY3Rpb24t
PkNhbGwodGhpc1ZhbHVlLCAzLCBwYXJhbWV0ZXJzKTsKKyAgICAgICAgaWYgKCFyZXR1cm5WYWx1
ZS5Jc0VtcHR5KCkgJiYgcmV0dXJuVmFsdWUtPklzQm9vbGVhbigpICYmICFyZXR1cm5WYWx1ZS0+
Qm9vbGVhblZhbHVlKCkpCisgICAgICAgICAgICBldmVudC0+cHJldmVudERlZmF1bHQoKTsKKyAg
ICB9CisgICAgcmV0dXJuIHJldHVyblZhbHVlOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3Jl
CmRpZmYgLS1naXQgYS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1Y4V2luZG93RXJyb3JIYW5kbGVyLmgg
Yi9XZWJDb3JlL2JpbmRpbmdzL3Y4L1Y4V2luZG93RXJyb3JIYW5kbGVyLmgKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMTY3Y2EwZAotLS0gL2Rldi9udWxsCisrKyBiL1dlYkNv
cmUvYmluZGluZ3MvdjgvVjhXaW5kb3dFcnJvckhhbmRsZXIuaApAQCAtMCwwICsxLDU1IEBACisv
KgorICogQ29weXJpZ2h0IChDKSAyMDEwIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCisgKiBtZXQ6CisgKgorICogICAg
ICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lci4KKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9y
bSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKKyAqIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKKyAqIGluIHRoZSBk
b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKKyAq
IGRpc3RyaWJ1dGlvbi4KKyAqICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4g
bm9yIHRoZSBuYW1lcyBvZiBpdHMKKyAqIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRv
cnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCisgKiB0aGlzIHNvZnR3YXJlIHdp
dGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRP
UlMKKyAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKKyAqIEEgUEFSVElDVUxBUiBQVVJQT1NF
IEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCisgKiBPV05F
UiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwKKyAqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAorICogREFUQSwgT1IgUFJPRklU
UzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisg
KiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lm
bmRlZiBWOFdpbmRvd0Vycm9ySGFuZGxlcl9oCisjZGVmaW5lIFY4V2luZG93RXJyb3JIYW5kbGVy
X2gKKworI2luY2x1ZGUgIlY4Q3VzdG9tRXZlbnRMaXN0ZW5lci5oIgorI2luY2x1ZGUgPHY4Lmg+
CisjaW5jbHVkZSA8d3RmL1Bhc3NSZWZQdHIuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitj
bGFzcyBWOFdpbmRvd0Vycm9ySGFuZGxlciA6IHB1YmxpYyBWOEV2ZW50TGlzdGVuZXIgeworcHVi
bGljOgorICAgIHN0YXRpYyBQYXNzUmVmUHRyPFY4V2luZG93RXJyb3JIYW5kbGVyPiBjcmVhdGUo
djg6OkxvY2FsPHY4OjpPYmplY3Q+IGxpc3RlbmVyLCBib29sIGlzSW5saW5lLCBjb25zdCBXb3Js
ZENvbnRleHRIYW5kbGUmIHdvcmxkQ29udGV4dCkKKyAgICB7CisgICAgICAgIHJldHVybiBhZG9w
dFJlZihuZXcgVjhXaW5kb3dFcnJvckhhbmRsZXIobGlzdGVuZXIsIGlzSW5saW5lLCB3b3JsZENv
bnRleHQpKTsKKyAgICB9CisKK3ByaXZhdGU6CisgICAgVjhXaW5kb3dFcnJvckhhbmRsZXIodjg6
OkxvY2FsPHY4OjpPYmplY3Q+IGxpc3RlbmVyLCBib29sIGlzSW5saW5lLCBjb25zdCBXb3JsZENv
bnRleHRIYW5kbGUmIHdvcmxkQ29udGV4dCk7CisKKyAgICB2aXJ0dWFsIHY4OjpMb2NhbDx2ODo6
VmFsdWU+IGNhbGxMaXN0ZW5lckZ1bmN0aW9uKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqLCB2ODo6
SGFuZGxlPHY4OjpWYWx1ZT4ganNFdmVudCwgRXZlbnQqKTsKK307CisKK30gLy8gbmFtZXNwYWNl
IFdlYkNvcmUKKworI2VuZGlmIC8vIFY4V2luZG93RXJyb3JIYW5kbGVyX2gKZGlmZiAtLWdpdCBh
L1dlYkNvcmUvYmluZGluZ3MvdjgvV29ya2VyQ29udGV4dEV4ZWN1dGlvblByb3h5LmNwcCBiL1dl
YkNvcmUvYmluZGluZ3MvdjgvV29ya2VyQ29udGV4dEV4ZWN1dGlvblByb3h5LmNwcAppbmRleCBj
ZWZiMmZhLi5lYjI1ODE0IDEwMDY0NAotLS0gYS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1dvcmtlckNv
bnRleHRFeGVjdXRpb25Qcm94eS5jcHAKKysrIGIvV2ViQ29yZS9iaW5kaW5ncy92OC9Xb3JrZXJD
b250ZXh0RXhlY3V0aW9uUHJveHkuY3BwCkBAIC0zNyw2ICszNyw3IEBACiAKICNpbmNsdWRlICJE
ZWRpY2F0ZWRXb3JrZXJDb250ZXh0LmgiCiAjaW5jbHVkZSAiRXZlbnQuaCIKKyNpbmNsdWRlICJT
Y3JpcHRDYWxsU3RhY2suaCIKICNpbmNsdWRlICJTaGFyZWRXb3JrZXIuaCIKICNpbmNsdWRlICJT
aGFyZWRXb3JrZXJDb250ZXh0LmgiCiAjaW5jbHVkZSAiVjhCaW5kaW5nLmgiCkBAIC03Miw3ICs3
Myw3IEBAIHN0YXRpYyB2b2lkIHY4TWVzc2FnZUhhbmRsZXIodjg6OkhhbmRsZTx2ODo6TWVzc2Fn
ZT4gbWVzc2FnZSwgdjg6OkhhbmRsZTx2ODo6VmFsCiAgICAgICAgIFN0cmluZyBlcnJvck1lc3Nh
Z2UgPSB0b1dlYkNvcmVTdHJpbmcobWVzc2FnZS0+R2V0KCkpOwogICAgICAgICBpbnQgbGluZU51
bWJlciA9IG1lc3NhZ2UtPkdldExpbmVOdW1iZXIoKTsKICAgICAgICAgU3RyaW5nIHNvdXJjZVVS
TCA9IHRvV2ViQ29yZVN0cmluZyhtZXNzYWdlLT5HZXRTY3JpcHRSZXNvdXJjZU5hbWUoKSk7Ci0g
ICAgICAgIGNvbnRleHQtPnJlcG9ydEV4Y2VwdGlvbihlcnJvck1lc3NhZ2UsIGxpbmVOdW1iZXIs
IHNvdXJjZVVSTCk7CisgICAgICAgIGNvbnRleHQtPnJlcG9ydEV4Y2VwdGlvbihlcnJvck1lc3Nh
Z2UsIGxpbmVOdW1iZXIsIHNvdXJjZVVSTCwgMCk7CiAgICAgfQogCiAgICAgaXNSZXBvcnRpbmdF
eGNlcHRpb24gPSBmYWxzZTsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvYmluZGluZ3MvdjgvV29ya2Vy
U2NyaXB0Q29udHJvbGxlci5jcHAgYi9XZWJDb3JlL2JpbmRpbmdzL3Y4L1dvcmtlclNjcmlwdENv
bnRyb2xsZXIuY3BwCmluZGV4IGI1NmQzODMuLjQyZTAyZTYgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUv
YmluZGluZ3MvdjgvV29ya2VyU2NyaXB0Q29udHJvbGxlci5jcHAKKysrIGIvV2ViQ29yZS9iaW5k
aW5ncy92OC9Xb3JrZXJTY3JpcHRDb250cm9sbGVyLmNwcApAQCAtMzQsMTEgKzM0LDEwIEBACiAK
ICNpbmNsdWRlICJXb3JrZXJTY3JpcHRDb250cm9sbGVyLmgiCiAKLSNpbmNsdWRlIDx2OC5oPgot
CisjaW5jbHVkZSAiRE9NVGltZXIuaCIKKyNpbmNsdWRlICJTY3JpcHRDYWxsU3RhY2suaCIKICNp
bmNsdWRlICJTY3JpcHRTb3VyY2VDb2RlLmgiCiAjaW5jbHVkZSAiU2NyaXB0VmFsdWUuaCIKLSNp
bmNsdWRlICJET01UaW1lci5oIgogI2luY2x1ZGUgIlY4RE9NTWFwLmgiCiAjaW5jbHVkZSAiVjhQ
cm94eS5oIgogI2luY2x1ZGUgIlY4V29ya2VyQ29udGV4dC5oIgpAQCAtNDYsNiArNDUsNyBAQAog
I2luY2x1ZGUgIldvcmtlckNvbnRleHRFeGVjdXRpb25Qcm94eS5oIgogI2luY2x1ZGUgIldvcmtl
ck9iamVjdFByb3h5LmgiCiAjaW5jbHVkZSAiV29ya2VyVGhyZWFkLmgiCisjaW5jbHVkZSA8djgu
aD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCkBAIC04MCw3ICs4MCw3IEBAIFNjcmlwdFZhbHVl
IFdvcmtlclNjcmlwdENvbnRyb2xsZXI6OmV2YWx1YXRlKGNvbnN0IFNjcmlwdFNvdXJjZUNvZGUm
IHNvdXJjZUNvZGUsCiAgICAgICAgIGlmIChleGNlcHRpb24pCiAgICAgICAgICAgICAqZXhjZXB0
aW9uID0gc3RhdGUuZXhjZXB0aW9uOwogICAgICAgICBlbHNlCi0gICAgICAgICAgICBtX3dvcmtl
ckNvbnRleHQtPnJlcG9ydEV4Y2VwdGlvbihzdGF0ZS5lcnJvck1lc3NhZ2UsIHN0YXRlLmxpbmVO
dW1iZXIsIHN0YXRlLnNvdXJjZVVSTCk7CisgICAgICAgICAgICBtX3dvcmtlckNvbnRleHQtPnJl
cG9ydEV4Y2VwdGlvbihzdGF0ZS5lcnJvck1lc3NhZ2UsIHN0YXRlLmxpbmVOdW1iZXIsIHN0YXRl
LnNvdXJjZVVSTCwgMCk7CiAgICAgfQogCiAgICAgcmV0dXJuIHJlc3VsdDsKZGlmZiAtLWdpdCBh
L1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcCBiL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcAppbmRl
eCBhZTYwNGU5Li5mNzdiMzkyIDEwMDY0NAotLS0gYS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAK
KysrIGIvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCkBAIC0xMTksNiArMTE5LDcgQEAKICNpbmNs
dWRlICJSZW5kZXJUZXh0Q29udHJvbC5oIgogI2luY2x1ZGUgIlJlbmRlclZpZXcuaCIKICNpbmNs
dWRlICJSZW5kZXJXaWRnZXQuaCIKKyNpbmNsdWRlICJTY3JpcHRDYWxsU3RhY2suaCIKICNpbmNs
dWRlICJTY3JpcHRDb250cm9sbGVyLmgiCiAjaW5jbHVkZSAiU2NyaXB0RWxlbWVudC5oIgogI2lu
Y2x1ZGUgIlNjcmlwdEV2ZW50TGlzdGVuZXIuaCIKQEAgLTIyNzIsNiArMjI3MywxNyBAQCBLVVJM
IERvY3VtZW50Ojp2aXJ0dWFsQ29tcGxldGVVUkwoY29uc3QgU3RyaW5nJiB1cmwpIGNvbnN0CiAg
ICAgcmV0dXJuIGNvbXBsZXRlVVJMKHVybCk7CiB9CiAKK0V2ZW50VGFyZ2V0KiBEb2N1bWVudDo6
ZXJyb3JFdmVudFRhcmdldCgpCit7CisgICAgcmV0dXJuIGRvbVdpbmRvdygpOworfQorCit2b2lk
IERvY3VtZW50Ojpsb2dFeGNlcHRpb25Ub0NvbnNvbGUoY29uc3QgU3RyaW5nJiBlcnJvck1lc3Nh
Z2UsIGludCBsaW5lTnVtYmVyLCBjb25zdCBTdHJpbmcmIHNvdXJjZVVSTCwgUGFzc1JlZlB0cjxT
Y3JpcHRDYWxsU3RhY2s+IGNhbGxTdGFjaykKK3sKKyAgICBNZXNzYWdlVHlwZSBtZXNzYWdlVHlw
ZSA9IGNhbGxTdGFjayA/IFVuY2F1Z2h0RXhjZXB0aW9uTWVzc2FnZVR5cGUgOiBMb2dNZXNzYWdl
VHlwZTsKKyAgICBhZGRNZXNzYWdlKEpTTWVzc2FnZVNvdXJjZSwgbWVzc2FnZVR5cGUsIEVycm9y
TWVzc2FnZUxldmVsLCBlcnJvck1lc3NhZ2UsIGxpbmVOdW1iZXIsIHNvdXJjZVVSTCwgY2FsbFN0
YWNrKTsKK30KKwogdm9pZCBEb2N1bWVudDo6c2V0VVJMKGNvbnN0IEtVUkwmIHVybCkKIHsKICAg
ICBjb25zdCBLVVJMJiBuZXdVUkwgPSB1cmwuaXNFbXB0eSgpID8gYmxhbmtVUkwoKSA6IHVybDsK
QEAgLTQ2NDgsMTUgKzQ2NjAsMTAgQEAgdm9pZCBEb2N1bWVudDo6cGFyc2VETlNQcmVmZXRjaENv
bnRyb2xIZWFkZXIoY29uc3QgU3RyaW5nJiBkbnNQcmVmZXRjaENvbnRyb2wpCiAgICAgbV9oYXZl
RXhwbGljaXRseURpc2FibGVkRE5TUHJlZmV0Y2ggPSB0cnVlOwogfQogCi12b2lkIERvY3VtZW50
OjpyZXBvcnRFeGNlcHRpb24oY29uc3QgU3RyaW5nJiBlcnJvck1lc3NhZ2UsIGludCBsaW5lTnVt
YmVyLCBjb25zdCBTdHJpbmcmIHNvdXJjZVVSTCkKLXsKLSAgICBhZGRNZXNzYWdlKEpTTWVzc2Fn
ZVNvdXJjZSwgTG9nTWVzc2FnZVR5cGUsIEVycm9yTWVzc2FnZUxldmVsLCBlcnJvck1lc3NhZ2Us
IGxpbmVOdW1iZXIsIHNvdXJjZVVSTCk7Ci19Ci0KLXZvaWQgRG9jdW1lbnQ6OmFkZE1lc3NhZ2Uo
TWVzc2FnZVNvdXJjZSBzb3VyY2UsIE1lc3NhZ2VUeXBlIHR5cGUsIE1lc3NhZ2VMZXZlbCBsZXZl
bCwgY29uc3QgU3RyaW5nJiBtZXNzYWdlLCB1bnNpZ25lZCBsaW5lTnVtYmVyLCBjb25zdCBTdHJp
bmcmIHNvdXJjZVVSTCkKK3ZvaWQgRG9jdW1lbnQ6OmFkZE1lc3NhZ2UoTWVzc2FnZVNvdXJjZSBz
b3VyY2UsIE1lc3NhZ2VUeXBlIHR5cGUsIE1lc3NhZ2VMZXZlbCBsZXZlbCwgY29uc3QgU3RyaW5n
JiBtZXNzYWdlLCB1bnNpZ25lZCBsaW5lTnVtYmVyLCBjb25zdCBTdHJpbmcmIHNvdXJjZVVSTCwg
UGFzc1JlZlB0cjxTY3JpcHRDYWxsU3RhY2s+IGNhbGxTdGFjaykKIHsKICAgICBpZiAoRE9NV2lu
ZG93KiB3aW5kb3cgPSBkb21XaW5kb3coKSkKLSAgICAgICAgd2luZG93LT5jb25zb2xlKCktPmFk
ZE1lc3NhZ2Uoc291cmNlLCB0eXBlLCBsZXZlbCwgbWVzc2FnZSwgbGluZU51bWJlciwgc291cmNl
VVJMKTsKKyAgICAgICAgd2luZG93LT5jb25zb2xlKCktPmFkZE1lc3NhZ2Uoc291cmNlLCB0eXBl
LCBsZXZlbCwgbWVzc2FnZSwgbGluZU51bWJlciwgc291cmNlVVJMLCBjYWxsU3RhY2spOwogfQog
CiBzdHJ1Y3QgUGVyZm9ybVRhc2tDb250ZXh0IDogTm9uY29weWFibGUgewpkaWZmIC0tZ2l0IGEv
V2ViQ29yZS9kb20vRG9jdW1lbnQuaCBiL1dlYkNvcmUvZG9tL0RvY3VtZW50LmgKaW5kZXggMzkw
NzJkZC4uOWM5ZDc4OCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9kb20vRG9jdW1lbnQuaAorKysgYi9X
ZWJDb3JlL2RvbS9Eb2N1bWVudC5oCkBAIC05MzEsOCArOTMxLDcgQEAgcHVibGljOgogICAgIGJv
b2wgaXNETlNQcmVmZXRjaEVuYWJsZWQoKSBjb25zdCB7IHJldHVybiBtX2lzRE5TUHJlZmV0Y2hF
bmFibGVkOyB9CiAgICAgdm9pZCBwYXJzZUROU1ByZWZldGNoQ29udHJvbEhlYWRlcihjb25zdCBT
dHJpbmcmKTsKIAotICAgIHZpcnR1YWwgdm9pZCByZXBvcnRFeGNlcHRpb24oY29uc3QgU3RyaW5n
JiBlcnJvck1lc3NhZ2UsIGludCBsaW5lTnVtYmVyLCBjb25zdCBTdHJpbmcmIHNvdXJjZVVSTCk7
Ci0gICAgdmlydHVhbCB2b2lkIGFkZE1lc3NhZ2UoTWVzc2FnZVNvdXJjZSwgTWVzc2FnZVR5cGUs
IE1lc3NhZ2VMZXZlbCwgY29uc3QgU3RyaW5nJiBtZXNzYWdlLCB1bnNpZ25lZCBsaW5lTnVtYmVy
LCBjb25zdCBTdHJpbmcmIHNvdXJjZVVSTCk7CisgICAgdmlydHVhbCB2b2lkIGFkZE1lc3NhZ2Uo
TWVzc2FnZVNvdXJjZSwgTWVzc2FnZVR5cGUsIE1lc3NhZ2VMZXZlbCwgY29uc3QgU3RyaW5nJiBt
ZXNzYWdlLCB1bnNpZ25lZCBsaW5lTnVtYmVyLCBjb25zdCBTdHJpbmcmIHNvdXJjZVVSTCwgUGFz
c1JlZlB0cjxTY3JpcHRDYWxsU3RhY2s+KTsKICAgICB2aXJ0dWFsIHZvaWQgcG9zdFRhc2soUGFz
c093blB0cjxUYXNrPik7IC8vIEV4ZWN1dGVzIHRoZSB0YXNrIG9uIGNvbnRleHQncyB0aHJlYWQg
YXN5bmNocm9ub3VzbHkuCiAKICNpZiBVU0UoSlNDKQpAQCAtMTA2Niw2ICsxMDY1LDkgQEAgcHVi
bGljOgogCiAgICAgYm9vbCBtYXlDYXVzZUZsYXNoT2ZVbnN0eWxlZENvbnRlbnQoKSBjb25zdDsK
IAorICAgIHZpcnR1YWwgRXZlbnRUYXJnZXQqIGVycm9yRXZlbnRUYXJnZXQoKTsKKyAgICB2aXJ0
dWFsIHZvaWQgbG9nRXhjZXB0aW9uVG9Db25zb2xlKGNvbnN0IFN0cmluZyYgZXJyb3JNZXNzYWdl
LCBpbnQgbGluZU51bWJlciwgY29uc3QgU3RyaW5nJiBzb3VyY2VVUkwsIFBhc3NSZWZQdHI8U2Ny
aXB0Q2FsbFN0YWNrPik7CisKICAgICB2b2lkIGluaXRETlNQcmVmZXRjaCgpOwogCiBwcm90ZWN0
ZWQ6CmRpZmYgLS1naXQgYS9XZWJDb3JlL2RvbS9FcnJvckV2ZW50LmNwcCBiL1dlYkNvcmUvZG9t
L0Vycm9yRXZlbnQuY3BwCmluZGV4IDI2MjdkMDEuLmM1OTg4MzYgMTAwNjQ0Ci0tLSBhL1dlYkNv
cmUvZG9tL0Vycm9yRXZlbnQuY3BwCisrKyBiL1dlYkNvcmUvZG9tL0Vycm9yRXZlbnQuY3BwCkBA
IC0zMCw4ICszMCw2IEBACiAKICNpbmNsdWRlICJjb25maWcuaCIKIAotI2lmIEVOQUJMRShXT1JL
RVJTKQotCiAjaW5jbHVkZSAiRXJyb3JFdmVudC5oIgogCiAjaW5jbHVkZSAiRXZlbnROYW1lcy5o
IgpAQCAtNzIsNSArNzAsMyBAQCBib29sIEVycm9yRXZlbnQ6OmlzRXJyb3JFdmVudCgpIGNvbnN0
CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKLQotI2VuZGlmIC8vIEVOQUJMRShXT1JLRVJT
KQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9kb20vRXJyb3JFdmVudC5oIGIvV2ViQ29yZS9kb20vRXJy
b3JFdmVudC5oCmluZGV4IGY4MTUzMGEuLjcxOWNhMmQgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvZG9t
L0Vycm9yRXZlbnQuaAorKysgYi9XZWJDb3JlL2RvbS9FcnJvckV2ZW50LmgKQEAgLTMxLDggKzMx
LDYgQEAKICNpZm5kZWYgRXJyb3JFdmVudF9oCiAjZGVmaW5lIEVycm9yRXZlbnRfaAogCi0jaWYg
RU5BQkxFKFdPUktFUlMpCi0KICNpbmNsdWRlICJFdmVudC5oIgogI2luY2x1ZGUgIlBsYXRmb3Jt
U3RyaW5nLmgiCiAKQEAgLTY5LDYgKzY3LDQgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiB9IC8v
IG5hbWVzcGFjZSBXZWJDb3JlCiAKLSNlbmRpZiAvLyBFTkFCTEUoV09SS0VSUykKLQogI2VuZGlm
IC8vIEVycm9yRXZlbnRfaApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9kb20vRXZlbnQuY3BwIGIvV2Vi
Q29yZS9kb20vRXZlbnQuY3BwCmluZGV4IGE5NDlmZDUuLmZjNmQyODIgMTAwNjQ0Ci0tLSBhL1dl
YkNvcmUvZG9tL0V2ZW50LmNwcAorKysgYi9XZWJDb3JlL2RvbS9FdmVudC5jcHAKQEAgLTIwMywx
MiArMjAzLDEwIEBAIGJvb2wgRXZlbnQ6OmlzSURCU3VjY2Vzc0V2ZW50KCkgY29uc3QKIH0KICNl
bmRpZgogCi0jaWYgRU5BQkxFKFdPUktFUlMpCiBib29sIEV2ZW50Ojppc0Vycm9yRXZlbnQoKSBj
b25zdAogewogICAgIHJldHVybiBmYWxzZTsKIH0KLSNlbmRpZgogCiAjaWYgRU5BQkxFKFRPVUNI
X0VWRU5UUykKIGJvb2wgRXZlbnQ6OmlzVG91Y2hFdmVudCgpIGNvbnN0CmRpZmYgLS1naXQgYS9X
ZWJDb3JlL2RvbS9FdmVudC5oIGIvV2ViQ29yZS9kb20vRXZlbnQuaAppbmRleCBmMDVkMzZjLi45
YWVmMjMzIDEwMDY0NAotLS0gYS9XZWJDb3JlL2RvbS9FdmVudC5oCisrKyBiL1dlYkNvcmUvZG9t
L0V2ZW50LmgKQEAgLTEzMiw5ICsxMzIsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAjaWYgRU5B
QkxFKFdFQl9BVURJTykKICAgICAgICAgdmlydHVhbCBib29sIGlzQXVkaW9Qcm9jZXNzaW5nRXZl
bnQoKSBjb25zdDsKICNlbmRpZgotI2lmIEVOQUJMRShXT1JLRVJTKQogICAgICAgICB2aXJ0dWFs
IGJvb2wgaXNFcnJvckV2ZW50KCkgY29uc3Q7Ci0jZW5kaWYKICNpZiBFTkFCTEUoVE9VQ0hfRVZF
TlRTKQogICAgICAgICB2aXJ0dWFsIGJvb2wgaXNUb3VjaEV2ZW50KCkgY29uc3Q7CiAjZW5kaWYK
ZGlmZiAtLWdpdCBhL1dlYkNvcmUvZG9tL1NjcmlwdEV4ZWN1dGlvbkNvbnRleHQuY3BwIGIvV2Vi
Q29yZS9kb20vU2NyaXB0RXhlY3V0aW9uQ29udGV4dC5jcHAKaW5kZXggYmZkYTE3Yi4uZjQ5OGJl
MCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9kb20vU2NyaXB0RXhlY3V0aW9uQ29udGV4dC5jcHAKKysr
IGIvV2ViQ29yZS9kb20vU2NyaXB0RXhlY3V0aW9uQ29udGV4dC5jcHAKQEAgLTMzLDE0ICszMywx
OSBAQAogI2luY2x1ZGUgIkRhdGFiYXNlLmgiCiAjaW5jbHVkZSAiRGF0YWJhc2VUYXNrLmgiCiAj
aW5jbHVkZSAiRGF0YWJhc2VUaHJlYWQuaCIKKyNpbmNsdWRlICJFcnJvckV2ZW50LmgiCisjaW5j
bHVkZSAiRXZlbnRMaXN0ZW5lci5oIgorI2luY2x1ZGUgIkV2ZW50VGFyZ2V0LmgiCiAjaW5jbHVk
ZSAiRmlsZVRocmVhZC5oIgogI2luY2x1ZGUgIk1lc3NhZ2VQb3J0LmgiCisjaW5jbHVkZSAiU2Ny
aXB0Q2FsbFN0YWNrLmgiCiAjaW5jbHVkZSAiU2VjdXJpdHlPcmlnaW4uaCIKICNpbmNsdWRlICJU
aHJlYWRhYmxlQmxvYlJlZ2lzdHJ5LmgiCiAjaW5jbHVkZSAiV29ya2VyQ29udGV4dC5oIgogI2lu
Y2x1ZGUgIldvcmtlclRocmVhZC5oIgogI2luY2x1ZGUgPHd0Zi9NYWluVGhyZWFkLmg+CiAjaW5j
bHVkZSA8d3RmL1Bhc3NSZWZQdHIuaD4KKyNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CiAKICNpZiBV
U0UoSlNDKQogI2luY2x1ZGUgIkpTRE9NV2luZG93LmgiCkBAIC02MSw5ICs2NiwyNSBAQCBwdWJs
aWM6CiAgICAgfQogfTsKIAorY2xhc3MgU2NyaXB0RXhlY3V0aW9uQ29udGV4dDo6UGVuZGluZ0V4
Y2VwdGlvbiA6IHB1YmxpYyBOb25jb3B5YWJsZSB7CitwdWJsaWM6CisgICAgUGVuZGluZ0V4Y2Vw
dGlvbihjb25zdCBTdHJpbmcmIGVycm9yTWVzc2FnZSwgaW50IGxpbmVOdW1iZXIsIGNvbnN0IFN0
cmluZyYgc291cmNlVVJMLCBQYXNzUmVmUHRyPFNjcmlwdENhbGxTdGFjaz4gY2FsbFN0YWNrKQor
ICAgICAgICA6IG1fZXJyb3JNZXNzYWdlKGVycm9yTWVzc2FnZSkKKyAgICAgICAgLCBtX2xpbmVO
dW1iZXIobGluZU51bWJlcikKKyAgICAgICAgLCBtX3NvdXJjZVVSTChzb3VyY2VVUkwpCisgICAg
ICAgICwgbV9jYWxsU3RhY2soY2FsbFN0YWNrKQorICAgIHsKKyAgICB9CisgICAgU3RyaW5nIG1f
ZXJyb3JNZXNzYWdlOworICAgIGludCBtX2xpbmVOdW1iZXI7CisgICAgU3RyaW5nIG1fc291cmNl
VVJMOworICAgIFJlZlB0cjxTY3JpcHRDYWxsU3RhY2s+IG1fY2FsbFN0YWNrOworfTsKKwogU2Ny
aXB0RXhlY3V0aW9uQ29udGV4dDo6U2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpCisgICAgOiBtX2lu
RGlzcGF0Y2hFcnJvckV2ZW50KGZhbHNlKQogI2lmIEVOQUJMRShEQVRBQkFTRSkKLSAgICA6IG1f
aGFzT3BlbkRhdGFiYXNlcyhmYWxzZSkKKyAgICAsIG1faGFzT3BlbkRhdGFiYXNlcyhmYWxzZSkK
ICNlbmRpZgogewogfQpAQCAtMjQzLDYgKzI2NCw0MyBAQCB2b2lkIFNjcmlwdEV4ZWN1dGlvbkNv
bnRleHQ6OnNldFNlY3VyaXR5T3JpZ2luKFBhc3NSZWZQdHI8U2VjdXJpdHlPcmlnaW4+IHNlY3Vy
aQogICAgIG1fc2VjdXJpdHlPcmlnaW4gPSBzZWN1cml0eU9yaWdpbjsKIH0KIAordm9pZCBTY3Jp
cHRFeGVjdXRpb25Db250ZXh0OjpyZXBvcnRFeGNlcHRpb24oY29uc3QgU3RyaW5nJiBlcnJvck1l
c3NhZ2UsIGludCBsaW5lTnVtYmVyLCBjb25zdCBTdHJpbmcmIHNvdXJjZVVSTCwgUGFzc1JlZlB0
cjxTY3JpcHRDYWxsU3RhY2s+IGNhbGxTdGFjaykKK3sKKyAgICBpZiAobV9pbkRpc3BhdGNoRXJy
b3JFdmVudCkgeworICAgICAgICBpZiAoIW1fcGVuZGluZ0V4Y2VwdGlvbnMpCisgICAgICAgICAg
ICBtX3BlbmRpbmdFeGNlcHRpb25zID0gYWRvcHRQdHIobmV3IFZlY3RvcjxPd25QdHI8UGVuZGlu
Z0V4Y2VwdGlvbj4gPigpKTsKKyAgICAgICAgbV9wZW5kaW5nRXhjZXB0aW9ucy0+YXBwZW5kKGFk
b3B0UHRyKG5ldyBQZW5kaW5nRXhjZXB0aW9uKGVycm9yTWVzc2FnZSwgbGluZU51bWJlciwgc291
cmNlVVJMLCBjYWxsU3RhY2spKSk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICAvLyBG
aXJzdCByZXBvcnQgdGhlIG9yaWdpbmFsIGV4Y2VwdGlvbiBhbmQgb25seSB0aGVuIGFsbCB0aGUg
bmVzdGVkIG9uZXMuCisgICAgaWYgKCFkaXNwYXRjaEVycm9yRXZlbnQoZXJyb3JNZXNzYWdlLCBs
aW5lTnVtYmVyLCBzb3VyY2VVUkwpKQorICAgICAgICBsb2dFeGNlcHRpb25Ub0NvbnNvbGUoZXJy
b3JNZXNzYWdlLCBsaW5lTnVtYmVyLCBzb3VyY2VVUkwsIGNhbGxTdGFjayk7CisKKyAgICBpZiAo
IW1fcGVuZGluZ0V4Y2VwdGlvbnMpCisgICAgICAgIHJldHVybjsKKworICAgIGZvciAoc2l6ZV90
IGkgPSAwOyBpIDwgbV9wZW5kaW5nRXhjZXB0aW9ucy0+c2l6ZSgpOyBpKyspIHsKKyAgICAgICAg
UGVuZGluZ0V4Y2VwdGlvbiogZSA9IG1fcGVuZGluZ0V4Y2VwdGlvbnMtPmF0KGkpLmdldCgpOwor
ICAgICAgICBsb2dFeGNlcHRpb25Ub0NvbnNvbGUoZS0+bV9lcnJvck1lc3NhZ2UsIGUtPm1fbGlu
ZU51bWJlciwgZS0+bV9zb3VyY2VVUkwsIGUtPm1fY2FsbFN0YWNrKTsKKyAgICB9CisgICAgbV9w
ZW5kaW5nRXhjZXB0aW9ucy5jbGVhcigpOworfQorCitib29sIFNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHQ6OmRpc3BhdGNoRXJyb3JFdmVudChjb25zdCBTdHJpbmcmIGVycm9yTWVzc2FnZSwgaW50IGxp
bmVOdW1iZXIsIGNvbnN0IFN0cmluZyYgc291cmNlVVJMKQoreworICAgIEV2ZW50VGFyZ2V0KiB0
YXJnZXQgPSBlcnJvckV2ZW50VGFyZ2V0KCk7CisgICAgaWYgKCF0YXJnZXQpCisgICAgICAgIHJl
dHVybiBmYWxzZTsKKworICAgIEFTU0VSVCghbV9pbkRpc3BhdGNoRXJyb3JFdmVudCk7CisgICAg
bV9pbkRpc3BhdGNoRXJyb3JFdmVudCA9IHRydWU7CisgICAgUmVmUHRyPEVycm9yRXZlbnQ+IGVy
cm9yRXZlbnQgPSBFcnJvckV2ZW50OjpjcmVhdGUoZXJyb3JNZXNzYWdlLCBzb3VyY2VVUkwsIGxp
bmVOdW1iZXIpOworICAgIHRhcmdldC0+ZGlzcGF0Y2hFdmVudChlcnJvckV2ZW50KTsKKyAgICBt
X2luRGlzcGF0Y2hFcnJvckV2ZW50ID0gZmFsc2U7CisgICAgcmV0dXJuIGVycm9yRXZlbnQtPmRl
ZmF1bHRQcmV2ZW50ZWQoKTsKK30KKwogdm9pZCBTY3JpcHRFeGVjdXRpb25Db250ZXh0OjphZGRU
aW1lb3V0KGludCB0aW1lb3V0SWQsIERPTVRpbWVyKiB0aW1lcikKIHsKICAgICBBU1NFUlQoIW1f
dGltZW91dHMuY29udGFpbnModGltZW91dElkKSk7CmRpZmYgLS1naXQgYS9XZWJDb3JlL2RvbS9T
Y3JpcHRFeGVjdXRpb25Db250ZXh0LmggYi9XZWJDb3JlL2RvbS9TY3JpcHRFeGVjdXRpb25Db250
ZXh0LmgKaW5kZXggMTJlYjc3Ni4uMDE5YzVkNiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9kb20vU2Ny
aXB0RXhlY3V0aW9uQ29udGV4dC5oCisrKyBiL1dlYkNvcmUvZG9tL1NjcmlwdEV4ZWN1dGlvbkNv
bnRleHQuaApAQCAtMzMsNiArMzMsNyBAQAogI2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+CiAjaW5j
bHVkZSA8d3RmL0hhc2hNYXAuaD4KICNpbmNsdWRlIDx3dGYvSGFzaFNldC5oPgorI2luY2x1ZGUg
PHd0Zi9Pd25QdHIuaD4KICNpbmNsdWRlIDx3dGYvUGFzc093blB0ci5oPgogI2luY2x1ZGUgPHd0
Zi9QYXNzUmVmUHRyLmg+CiAjaW5jbHVkZSA8d3RmL1JlZlB0ci5oPgpAQCAtNTIsMTEgKzUzLDE0
IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICBjbGFzcyBEYXRhYmFzZVRocmVhZDsKICNlbmRp
ZgogICAgIGNsYXNzIERPTVRpbWVyOworICAgIGNsYXNzIEV2ZW50TGlzdGVuZXI7CisgICAgY2xh
c3MgRXZlbnRUYXJnZXQ7CiAjaWYgRU5BQkxFKEJMT0IpIHx8IEVOQUJMRShGSUxFX1NZU1RFTSkK
ICAgICBjbGFzcyBGaWxlVGhyZWFkOwogI2VuZGlmCiAgICAgY2xhc3MgTWVzc2FnZVBvcnQ7CiAg
ICAgY2xhc3MgU2VjdXJpdHlPcmlnaW47CisgICAgY2xhc3MgU2NyaXB0Q2FsbFN0YWNrOwogI2lm
IEVOQUJMRShJTlNQRUNUT1IpCiAgICAgY2xhc3MgSW5zcGVjdG9yQ29udHJvbGxlcjsKICNlbmRp
ZgpAQCAtOTEsOCArOTUsOCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIHZpcnR1YWwg
SW5zcGVjdG9yQ29udHJvbGxlciogaW5zcGVjdG9yQ29udHJvbGxlcigpIGNvbnN0IHsgcmV0dXJu
IDA7IH0KICNlbmRpZgogCi0gICAgICAgIHZpcnR1YWwgdm9pZCByZXBvcnRFeGNlcHRpb24oY29u
c3QgU3RyaW5nJiBlcnJvck1lc3NhZ2UsIGludCBsaW5lTnVtYmVyLCBjb25zdCBTdHJpbmcmIHNv
dXJjZVVSTCkgPSAwOwotICAgICAgICB2aXJ0dWFsIHZvaWQgYWRkTWVzc2FnZShNZXNzYWdlU291
cmNlLCBNZXNzYWdlVHlwZSwgTWVzc2FnZUxldmVsLCBjb25zdCBTdHJpbmcmIG1lc3NhZ2UsIHVu
c2lnbmVkIGxpbmVOdW1iZXIsIGNvbnN0IFN0cmluZyYgc291cmNlVVJMKSA9IDA7CisgICAgICAg
IHZvaWQgcmVwb3J0RXhjZXB0aW9uKGNvbnN0IFN0cmluZyYgZXJyb3JNZXNzYWdlLCBpbnQgbGlu
ZU51bWJlciwgY29uc3QgU3RyaW5nJiBzb3VyY2VVUkwsIFBhc3NSZWZQdHI8U2NyaXB0Q2FsbFN0
YWNrPik7CisgICAgICAgIHZpcnR1YWwgdm9pZCBhZGRNZXNzYWdlKE1lc3NhZ2VTb3VyY2UsIE1l
c3NhZ2VUeXBlLCBNZXNzYWdlTGV2ZWwsIGNvbnN0IFN0cmluZyYgbWVzc2FnZSwgdW5zaWduZWQg
bGluZU51bWJlciwgY29uc3QgU3RyaW5nJiBzb3VyY2VVUkwsIFBhc3NSZWZQdHI8U2NyaXB0Q2Fs
bFN0YWNrPikgPSAwOwogCiAgICAgICAgIC8vIEFjdGl2ZSBvYmplY3RzIGFyZSBub3QgZ2FyYmFn
ZSBjb2xsZWN0ZWQgZXZlbiBpZiBpbmFjY2Vzc2libGUsIGUuZy4gYmVjYXVzZSB0aGVpciBhY3Rp
dml0eSBtYXkgcmVzdWx0IGluIGNhbGxiYWNrcyBiZWluZyBpbnZva2VkLgogICAgICAgICBib29s
IGNhblN1c3BlbmRBY3RpdmVET01PYmplY3RzKCk7CkBAIC0xNTQsNiArMTU4LDEwIEBAIG5hbWVz
cGFjZSBXZWJDb3JlIHsKICAgICAgICAgdmlydHVhbCBjb25zdCBLVVJMJiB2aXJ0dWFsVVJMKCkg
Y29uc3QgPSAwOwogICAgICAgICB2aXJ0dWFsIEtVUkwgdmlydHVhbENvbXBsZXRlVVJMKGNvbnN0
IFN0cmluZyYpIGNvbnN0ID0gMDsKIAorICAgICAgICB2aXJ0dWFsIEV2ZW50VGFyZ2V0KiBlcnJv
ckV2ZW50VGFyZ2V0KCkgPSAwOworICAgICAgICB2aXJ0dWFsIHZvaWQgbG9nRXhjZXB0aW9uVG9D
b25zb2xlKGNvbnN0IFN0cmluZyYgZXJyb3JNZXNzYWdlLCBpbnQgbGluZU51bWJlciwgY29uc3Qg
U3RyaW5nJiBzb3VyY2VVUkwsIFBhc3NSZWZQdHI8U2NyaXB0Q2FsbFN0YWNrPikgPSAwOworICAg
ICAgICBib29sIGRpc3BhdGNoRXJyb3JFdmVudChjb25zdCBTdHJpbmcmIGVycm9yTWVzc2FnZSwg
aW50IGxpbmVOdW1iZXIsIGNvbnN0IFN0cmluZyYgc291cmNlVVJMKTsKKwogICAgICAgICB2b2lk
IGNsb3NlTWVzc2FnZVBvcnRzKCk7CiAKICAgICAgICAgUmVmUHRyPFNlY3VyaXR5T3JpZ2luPiBt
X3NlY3VyaXR5T3JpZ2luOwpAQCAtMTcxLDYgKzE3OSwxMCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7
CiAgICAgICAgIHZpcnR1YWwgdm9pZCByZWZTY3JpcHRFeGVjdXRpb25Db250ZXh0KCkgPSAwOwog
ICAgICAgICB2aXJ0dWFsIHZvaWQgZGVyZWZTY3JpcHRFeGVjdXRpb25Db250ZXh0KCkgPSAwOwog
CisgICAgICAgIGJvb2wgbV9pbkRpc3BhdGNoRXJyb3JFdmVudDsKKyAgICAgICAgY2xhc3MgUGVu
ZGluZ0V4Y2VwdGlvbjsKKyAgICAgICAgT3duUHRyPFZlY3RvcjxPd25QdHI8UGVuZGluZ0V4Y2Vw
dGlvbj4gPiA+IG1fcGVuZGluZ0V4Y2VwdGlvbnM7CisKICNpZiBFTkFCTEUoREFUQUJBU0UpCiAg
ICAgICAgIFJlZlB0cjxEYXRhYmFzZVRocmVhZD4gbV9kYXRhYmFzZVRocmVhZDsKICAgICAgICAg
Ym9vbCBtX2hhc09wZW5EYXRhYmFzZXM7IC8vIFRoaXMgbmV2ZXIgY2hhbmdlcyBiYWNrIHRvIGZh
bHNlLCBldmVuIGFmdGVyIHRoZSBkYXRhYmFzZSB0aHJlYWQgaXMgY2xvc2VkLgpkaWZmIC0tZ2l0
IGEvV2ViQ29yZS93ZWJzb2NrZXRzL1dlYlNvY2tldC5jcHAgYi9XZWJDb3JlL3dlYnNvY2tldHMv
V2ViU29ja2V0LmNwcAppbmRleCAzNThhNzQyLi5lMTVkMDc5IDEwMDY0NAotLS0gYS9XZWJDb3Jl
L3dlYnNvY2tldHMvV2ViU29ja2V0LmNwcAorKysgYi9XZWJDb3JlL3dlYnNvY2tldHMvV2ViU29j
a2V0LmNwcApAQCAtNDEsNiArNDEsNyBAQAogI2luY2x1ZGUgIkV2ZW50TmFtZXMuaCIKICNpbmNs
dWRlICJMb2dnaW5nLmgiCiAjaW5jbHVkZSAiTWVzc2FnZUV2ZW50LmgiCisjaW5jbHVkZSAiU2Ny
aXB0Q2FsbFN0YWNrLmgiCiAjaW5jbHVkZSAiU2NyaXB0RXhlY3V0aW9uQ29udGV4dC5oIgogI2lu
Y2x1ZGUgIlRocmVhZGFibGVXZWJTb2NrZXRDaGFubmVsLmgiCiAjaW5jbHVkZSAiV2ViU29ja2V0
Q2hhbm5lbC5oIgpAQCAtMTE2LDMyICsxMTcsMzIgQEAgdm9pZCBXZWJTb2NrZXQ6OmNvbm5lY3Qo
Y29uc3QgS1VSTCYgdXJsLCBjb25zdCBTdHJpbmcmIHByb3RvY29sLCBFeGNlcHRpb25Db2RlJgog
ICAgIG1fcHJvdG9jb2wgPSBwcm90b2NvbDsKIAogICAgIGlmICghbV91cmwuaXNWYWxpZCgpKSB7
Ci0gICAgICAgIHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKS0+YWRkTWVzc2FnZShKU01lc3NhZ2VT
b3VyY2UsIExvZ01lc3NhZ2VUeXBlLCBFcnJvck1lc3NhZ2VMZXZlbCwgIkludmFsaWQgdXJsIGZv
ciBXZWJTb2NrZXQgIiArIHVybC5zdHJpbmcoKSwgMCwgc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgp
LT5zZWN1cml0eU9yaWdpbigpLT50b1N0cmluZygpKTsKKyAgICAgICAgc2NyaXB0RXhlY3V0aW9u
Q29udGV4dCgpLT5hZGRNZXNzYWdlKEpTTWVzc2FnZVNvdXJjZSwgTG9nTWVzc2FnZVR5cGUsIEVy
cm9yTWVzc2FnZUxldmVsLCAiSW52YWxpZCB1cmwgZm9yIFdlYlNvY2tldCAiICsgdXJsLnN0cmlu
ZygpLCAwLCBzY3JpcHRFeGVjdXRpb25Db250ZXh0KCktPnNlY3VyaXR5T3JpZ2luKCktPnRvU3Ry
aW5nKCksIDApOwogICAgICAgICBtX3N0YXRlID0gQ0xPU0VEOwogICAgICAgICBlYyA9IFNZTlRB
WF9FUlI7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKICAgICBpZiAoIW1fdXJsLnByb3RvY29s
SXMoIndzIikgJiYgIW1fdXJsLnByb3RvY29sSXMoIndzcyIpKSB7Ci0gICAgICAgIHNjcmlwdEV4
ZWN1dGlvbkNvbnRleHQoKS0+YWRkTWVzc2FnZShKU01lc3NhZ2VTb3VyY2UsIExvZ01lc3NhZ2VU
eXBlLCBFcnJvck1lc3NhZ2VMZXZlbCwgIldyb25nIHVybCBzY2hlbWUgZm9yIFdlYlNvY2tldCAi
ICsgdXJsLnN0cmluZygpLCAwLCBzY3JpcHRFeGVjdXRpb25Db250ZXh0KCktPnNlY3VyaXR5T3Jp
Z2luKCktPnRvU3RyaW5nKCkpOworICAgICAgICBzY3JpcHRFeGVjdXRpb25Db250ZXh0KCktPmFk
ZE1lc3NhZ2UoSlNNZXNzYWdlU291cmNlLCBMb2dNZXNzYWdlVHlwZSwgRXJyb3JNZXNzYWdlTGV2
ZWwsICJXcm9uZyB1cmwgc2NoZW1lIGZvciBXZWJTb2NrZXQgIiArIHVybC5zdHJpbmcoKSwgMCwg
c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpLT5zZWN1cml0eU9yaWdpbigpLT50b1N0cmluZygpLCAw
KTsKICAgICAgICAgbV9zdGF0ZSA9IENMT1NFRDsKICAgICAgICAgZWMgPSBTWU5UQVhfRVJSOwog
ICAgICAgICByZXR1cm47CiAgICAgfQogICAgIGlmIChtX3VybC5oYXNGcmFnbWVudElkZW50aWZp
ZXIoKSkgewotICAgICAgICBzY3JpcHRFeGVjdXRpb25Db250ZXh0KCktPmFkZE1lc3NhZ2UoSlNN
ZXNzYWdlU291cmNlLCBMb2dNZXNzYWdlVHlwZSwgRXJyb3JNZXNzYWdlTGV2ZWwsICJVUkwgaGFz
IGZyYWdtZW50IGNvbXBvbmVudCAiICsgdXJsLnN0cmluZygpLCAwLCBzY3JpcHRFeGVjdXRpb25D
b250ZXh0KCktPnNlY3VyaXR5T3JpZ2luKCktPnRvU3RyaW5nKCkpOworICAgICAgICBzY3JpcHRF
eGVjdXRpb25Db250ZXh0KCktPmFkZE1lc3NhZ2UoSlNNZXNzYWdlU291cmNlLCBMb2dNZXNzYWdl
VHlwZSwgRXJyb3JNZXNzYWdlTGV2ZWwsICJVUkwgaGFzIGZyYWdtZW50IGNvbXBvbmVudCAiICsg
dXJsLnN0cmluZygpLCAwLCBzY3JpcHRFeGVjdXRpb25Db250ZXh0KCktPnNlY3VyaXR5T3JpZ2lu
KCktPnRvU3RyaW5nKCksIDApOwogICAgICAgICBtX3N0YXRlID0gQ0xPU0VEOwogICAgICAgICBl
YyA9IFNZTlRBWF9FUlI7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAgICAgaWYgKCFpc1ZhbGlk
UHJvdG9jb2xTdHJpbmcobV9wcm90b2NvbCkpIHsKLSAgICAgICAgc2NyaXB0RXhlY3V0aW9uQ29u
dGV4dCgpLT5hZGRNZXNzYWdlKEpTTWVzc2FnZVNvdXJjZSwgTG9nTWVzc2FnZVR5cGUsIEVycm9y
TWVzc2FnZUxldmVsLCAiV3JvbmcgcHJvdG9jb2wgZm9yIFdlYlNvY2tldCAnIiArIGVuY29kZVBy
b3RvY29sU3RyaW5nKG1fcHJvdG9jb2wpICsgIiciLCAwLCBzY3JpcHRFeGVjdXRpb25Db250ZXh0
KCktPnNlY3VyaXR5T3JpZ2luKCktPnRvU3RyaW5nKCkpOworICAgICAgICBzY3JpcHRFeGVjdXRp
b25Db250ZXh0KCktPmFkZE1lc3NhZ2UoSlNNZXNzYWdlU291cmNlLCBMb2dNZXNzYWdlVHlwZSwg
RXJyb3JNZXNzYWdlTGV2ZWwsICJXcm9uZyBwcm90b2NvbCBmb3IgV2ViU29ja2V0ICciICsgZW5j
b2RlUHJvdG9jb2xTdHJpbmcobV9wcm90b2NvbCkgKyAiJyIsIDAsIHNjcmlwdEV4ZWN1dGlvbkNv
bnRleHQoKS0+c2VjdXJpdHlPcmlnaW4oKS0+dG9TdHJpbmcoKSwgMCk7CiAgICAgICAgIG1fc3Rh
dGUgPSBDTE9TRUQ7CiAgICAgICAgIGVjID0gU1lOVEFYX0VSUjsKICAgICAgICAgcmV0dXJuOwog
ICAgIH0KICAgICBpZiAoIXBvcnRBbGxvd2VkKHVybCkpIHsKLSAgICAgICAgc2NyaXB0RXhlY3V0
aW9uQ29udGV4dCgpLT5hZGRNZXNzYWdlKEpTTWVzc2FnZVNvdXJjZSwgTG9nTWVzc2FnZVR5cGUs
IEVycm9yTWVzc2FnZUxldmVsLCBtYWtlU3RyaW5nKCJXZWJTb2NrZXQgcG9ydCAiLCBTdHJpbmc6
Om51bWJlcih1cmwucG9ydCgpKSwgIiBibG9ja2VkIiksIDAsIHNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHQoKS0+c2VjdXJpdHlPcmlnaW4oKS0+dG9TdHJpbmcoKSk7CisgICAgICAgIHNjcmlwdEV4ZWN1
dGlvbkNvbnRleHQoKS0+YWRkTWVzc2FnZShKU01lc3NhZ2VTb3VyY2UsIExvZ01lc3NhZ2VUeXBl
LCBFcnJvck1lc3NhZ2VMZXZlbCwgbWFrZVN0cmluZygiV2ViU29ja2V0IHBvcnQgIiwgU3RyaW5n
OjpudW1iZXIodXJsLnBvcnQoKSksICIgYmxvY2tlZCIpLCAwLCBzY3JpcHRFeGVjdXRpb25Db250
ZXh0KCktPnNlY3VyaXR5T3JpZ2luKCktPnRvU3RyaW5nKCksIDApOwogICAgICAgICBtX3N0YXRl
ID0gQ0xPU0VEOwogICAgICAgICBlYyA9IFNFQ1VSSVRZX0VSUjsKICAgICAgICAgcmV0dXJuOwpk
aWZmIC0tZ2l0IGEvV2ViQ29yZS93ZWJzb2NrZXRzL1dlYlNvY2tldENoYW5uZWwuY3BwIGIvV2Vi
Q29yZS93ZWJzb2NrZXRzL1dlYlNvY2tldENoYW5uZWwuY3BwCmluZGV4IDA5ZmNkNmIuLmM0Y2Iy
ZTIgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvd2Vic29ja2V0cy9XZWJTb2NrZXRDaGFubmVsLmNwcAor
KysgYi9XZWJDb3JlL3dlYnNvY2tldHMvV2ViU29ja2V0Q2hhbm5lbC5jcHAKQEAgLTQxLDYgKzQx
LDcgQEAKICNpbmNsdWRlICJQYWdlLmgiCiAjaW5jbHVkZSAiUGxhdGZvcm1TdHJpbmcuaCIKICNp
bmNsdWRlICJQcm9ncmVzc1RyYWNrZXIuaCIKKyNpbmNsdWRlICJTY3JpcHRDYWxsU3RhY2suaCIK
ICNpbmNsdWRlICJTY3JpcHRFeGVjdXRpb25Db250ZXh0LmgiCiAjaW5jbHVkZSAiU29ja2V0U3Ry
ZWFtRXJyb3IuaCIKICNpbmNsdWRlICJTb2NrZXRTdHJlYW1IYW5kbGUuaCIKQEAgLTE1NSw3ICsx
NTYsNyBAQCB2b2lkIFdlYlNvY2tldENoYW5uZWw6OmRpZE9wZW4oU29ja2V0U3RyZWFtSGFuZGxl
KiBoYW5kbGUpCiAgICAgICAgIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6d2lsbFNlbmRXZWJT
b2NrZXRIYW5kc2hha2VSZXF1ZXN0KG1fY29udGV4dCwgbV9pZGVudGlmaWVyLCBtX2hhbmRzaGFr
ZS5jbGllbnRIYW5kc2hha2VSZXF1ZXN0KCkpOwogICAgIENTdHJpbmcgaGFuZHNoYWtlTWVzc2Fn
ZSA9IG1faGFuZHNoYWtlLmNsaWVudEhhbmRzaGFrZU1lc3NhZ2UoKTsKICAgICBpZiAoIWhhbmRs
ZS0+c2VuZChoYW5kc2hha2VNZXNzYWdlLmRhdGEoKSwgaGFuZHNoYWtlTWVzc2FnZS5sZW5ndGgo
KSkpIHsKLSAgICAgICAgbV9jb250ZXh0LT5hZGRNZXNzYWdlKEpTTWVzc2FnZVNvdXJjZSwgTG9n
TWVzc2FnZVR5cGUsIEVycm9yTWVzc2FnZUxldmVsLCAiRXJyb3Igc2VuZGluZyBoYW5kc2hha2Ug
bWVzc2FnZS4iLCAwLCBtX2hhbmRzaGFrZS5jbGllbnRPcmlnaW4oKSk7CisgICAgICAgIG1fY29u
dGV4dC0+YWRkTWVzc2FnZShKU01lc3NhZ2VTb3VyY2UsIExvZ01lc3NhZ2VUeXBlLCBFcnJvck1l
c3NhZ2VMZXZlbCwgIkVycm9yIHNlbmRpbmcgaGFuZHNoYWtlIG1lc3NhZ2UuIiwgMCwgbV9oYW5k
c2hha2UuY2xpZW50T3JpZ2luKCksIDApOwogICAgICAgICBoYW5kbGUtPmNsb3NlKCk7CiAgICAg
fQogfQpAQCAtMjE4LDcgKzIxOSw3IEBAIHZvaWQgV2ViU29ja2V0Q2hhbm5lbDo6ZGlkRmFpbChT
b2NrZXRTdHJlYW1IYW5kbGUqIGhhbmRsZSwgY29uc3QgU29ja2V0U3RyZWFtRXJyCiAgICAgICAg
ICAgICBtZXNzYWdlID0gbWFrZVN0cmluZygiV2ViU29ja2V0IG5ldHdvcmsgZXJyb3I6IGVycm9y
IGNvZGUgIiwgU3RyaW5nOjpudW1iZXIoZXJyb3IuZXJyb3JDb2RlKCkpKTsKICAgICAgICAgZWxz
ZQogICAgICAgICAgICAgbWVzc2FnZSA9IG1ha2VTdHJpbmcoIldlYlNvY2tldCBuZXR3b3JrIGVy
cm9yOiAiLCBlcnJvci5sb2NhbGl6ZWREZXNjcmlwdGlvbigpKTsKLSAgICAgICAgbV9jb250ZXh0
LT5hZGRNZXNzYWdlKE90aGVyTWVzc2FnZVNvdXJjZSwgTmV0d29ya0Vycm9yTWVzc2FnZVR5cGUs
IEVycm9yTWVzc2FnZUxldmVsLCBtZXNzYWdlLCAwLCBlcnJvci5mYWlsaW5nVVJMKCkpOworICAg
ICAgICBtX2NvbnRleHQtPmFkZE1lc3NhZ2UoT3RoZXJNZXNzYWdlU291cmNlLCBOZXR3b3JrRXJy
b3JNZXNzYWdlVHlwZSwgRXJyb3JNZXNzYWdlTGV2ZWwsIG1lc3NhZ2UsIDAsIGVycm9yLmZhaWxp
bmdVUkwoKSwgMCk7CiAgICAgfQogICAgIG1fc2hvdWxkRGlzY2FyZFJlY2VpdmVkRGF0YSA9IHRy
dWU7CiAgICAgaGFuZGxlLT5jbG9zZSgpOwpAQCAtMjQ5LDcgKzI1MCw3IEBAIGJvb2wgV2ViU29j
a2V0Q2hhbm5lbDo6YXBwZW5kVG9CdWZmZXIoY29uc3QgY2hhciogZGF0YSwgc2l6ZV90IGxlbikK
ICAgICAgICAgbV9idWZmZXJTaXplID0gbmV3QnVmZmVyU2l6ZTsKICAgICAgICAgcmV0dXJuIHRy
dWU7CiAgICAgfQotICAgIG1fY29udGV4dC0+YWRkTWVzc2FnZShKU01lc3NhZ2VTb3VyY2UsIExv
Z01lc3NhZ2VUeXBlLCBFcnJvck1lc3NhZ2VMZXZlbCwgbWFrZVN0cmluZygiV2ViU29ja2V0IGZy
YW1lIChhdCAiLCBTdHJpbmc6Om51bWJlcihzdGF0aWNfY2FzdDx1bnNpZ25lZCBsb25nPihuZXdC
dWZmZXJTaXplKSksICIgYnl0ZXMpIGlzIHRvbyBsb25nLiIpLCAwLCBtX2hhbmRzaGFrZS5jbGll
bnRPcmlnaW4oKSk7CisgICAgbV9jb250ZXh0LT5hZGRNZXNzYWdlKEpTTWVzc2FnZVNvdXJjZSwg
TG9nTWVzc2FnZVR5cGUsIEVycm9yTWVzc2FnZUxldmVsLCBtYWtlU3RyaW5nKCJXZWJTb2NrZXQg
ZnJhbWUgKGF0ICIsIFN0cmluZzo6bnVtYmVyKHN0YXRpY19jYXN0PHVuc2lnbmVkIGxvbmc+KG5l
d0J1ZmZlclNpemUpKSwgIiBieXRlcykgaXMgdG9vIGxvbmcuIiksIDAsIG1faGFuZHNoYWtlLmNs
aWVudE9yaWdpbigpLCAwKTsKICAgICByZXR1cm4gZmFsc2U7CiB9CiAKZGlmZiAtLWdpdCBhL1dl
YkNvcmUvd2Vic29ja2V0cy9XZWJTb2NrZXRIYW5kc2hha2UuY3BwIGIvV2ViQ29yZS93ZWJzb2Nr
ZXRzL1dlYlNvY2tldEhhbmRzaGFrZS5jcHAKaW5kZXggNTA0OTA5OC4uZWQ5ODgzNCAxMDA2NDQK
LS0tIGEvV2ViQ29yZS93ZWJzb2NrZXRzL1dlYlNvY2tldEhhbmRzaGFrZS5jcHAKKysrIGIvV2Vi
Q29yZS93ZWJzb2NrZXRzL1dlYlNvY2tldEhhbmRzaGFrZS5jcHAKQEAgLTQxLDYgKzQxLDcgQEAK
ICNpbmNsdWRlICJIVFRQSGVhZGVyTWFwLmgiCiAjaW5jbHVkZSAiS1VSTC5oIgogI2luY2x1ZGUg
IkxvZ2dpbmcuaCIKKyNpbmNsdWRlICJTY3JpcHRDYWxsU3RhY2suaCIKICNpbmNsdWRlICJTY3Jp
cHRFeGVjdXRpb25Db250ZXh0LmgiCiAjaW5jbHVkZSAiU2VjdXJpdHlPcmlnaW4uaCIKIApAQCAt
MzE5LDcgKzMyMCw3IEBAIGludCBXZWJTb2NrZXRIYW5kc2hha2U6OnJlYWRTZXJ2ZXJIYW5kc2hh
a2UoY29uc3QgY2hhciogaGVhZGVyLCBzaXplX3QgbGVuKQogICAgIG1fcmVzcG9uc2Uuc2V0U3Rh
dHVzVGV4dChzdGF0dXNUZXh0KTsKICAgICBpZiAoc3RhdHVzQ29kZSAhPSAxMDEpIHsKICAgICAg
ICAgbV9tb2RlID0gRmFpbGVkOwotICAgICAgICBtX2NvbnRleHQtPmFkZE1lc3NhZ2UoSlNNZXNz
YWdlU291cmNlLCBMb2dNZXNzYWdlVHlwZSwgRXJyb3JNZXNzYWdlTGV2ZWwsIG1ha2VTdHJpbmco
IlVuZXhwZWN0ZWQgcmVzcG9uc2UgY29kZTogIiwgU3RyaW5nOjpudW1iZXIoc3RhdHVzQ29kZSkp
LCAwLCBjbGllbnRPcmlnaW4oKSk7CisgICAgICAgIG1fY29udGV4dC0+YWRkTWVzc2FnZShKU01l
c3NhZ2VTb3VyY2UsIExvZ01lc3NhZ2VUeXBlLCBFcnJvck1lc3NhZ2VMZXZlbCwgbWFrZVN0cmlu
ZygiVW5leHBlY3RlZCByZXNwb25zZSBjb2RlOiAiLCBTdHJpbmc6Om51bWJlcihzdGF0dXNDb2Rl
KSksIDAsIGNsaWVudE9yaWdpbigpLCAwKTsKICAgICAgICAgcmV0dXJuIGxlbjsKICAgICB9CiAg
ICAgbV9tb2RlID0gTm9ybWFsOwpAQCAtNDQ5LDE5ICs0NTAsMTkgQEAgaW50IFdlYlNvY2tldEhh
bmRzaGFrZTo6cmVhZFN0YXR1c0xpbmUoY29uc3QgY2hhciogaGVhZGVyLCBzaXplX3QgaGVhZGVy
TGVuZ3RoLAogCiAgICAgY29uc3QgY2hhciogZW5kID0gcCArIDE7CiAgICAgaWYgKGVuZCAtIGhl
YWRlciA+IElOVF9NQVgpIHsKLSAgICAgICAgbV9jb250ZXh0LT5hZGRNZXNzYWdlKEpTTWVzc2Fn
ZVNvdXJjZSwgTG9nTWVzc2FnZVR5cGUsIEVycm9yTWVzc2FnZUxldmVsLCAiU3RhdHVzIGxpbmUg
aXMgdG9vIGxvbmc6ICIgKyB0cmltQ29uc29sZU1lc3NhZ2UoaGVhZGVyLCBtYXhDb25zb2xlTWVz
c2FnZVNpemUgKyAxKSwgMCwgY2xpZW50T3JpZ2luKCkpOworICAgICAgICBtX2NvbnRleHQtPmFk
ZE1lc3NhZ2UoSlNNZXNzYWdlU291cmNlLCBMb2dNZXNzYWdlVHlwZSwgRXJyb3JNZXNzYWdlTGV2
ZWwsICJTdGF0dXMgbGluZSBpcyB0b28gbG9uZzogIiArIHRyaW1Db25zb2xlTWVzc2FnZShoZWFk
ZXIsIG1heENvbnNvbGVNZXNzYWdlU2l6ZSArIDEpLCAwLCBjbGllbnRPcmlnaW4oKSwgMCk7CiAg
ICAgICAgIHJldHVybiBJTlRfTUFYOwogICAgIH0KICAgICBpbnQgbGluZUxlbmd0aCA9IGVuZCAt
IGhlYWRlcjsKIAogICAgIGlmICghc3BhY2UxIHx8ICFzcGFjZTIpIHsKLSAgICAgICAgbV9jb250
ZXh0LT5hZGRNZXNzYWdlKEpTTWVzc2FnZVNvdXJjZSwgTG9nTWVzc2FnZVR5cGUsIEVycm9yTWVz
c2FnZUxldmVsLCAiTm8gcmVzcG9uc2UgY29kZSBmb3VuZDogIiArIHRyaW1Db25zb2xlTWVzc2Fn
ZShoZWFkZXIsIGxpbmVMZW5ndGggLSAxKSwgMCwgY2xpZW50T3JpZ2luKCkpOworICAgICAgICBt
X2NvbnRleHQtPmFkZE1lc3NhZ2UoSlNNZXNzYWdlU291cmNlLCBMb2dNZXNzYWdlVHlwZSwgRXJy
b3JNZXNzYWdlTGV2ZWwsICJObyByZXNwb25zZSBjb2RlIGZvdW5kOiAiICsgdHJpbUNvbnNvbGVN
ZXNzYWdlKGhlYWRlciwgbGluZUxlbmd0aCAtIDEpLCAwLCBjbGllbnRPcmlnaW4oKSwgMCk7CiAg
ICAgICAgIHJldHVybiBsaW5lTGVuZ3RoOwogICAgIH0KIAogICAgIC8vIFRoZSBsaW5lIG11c3Qg
ZW5kIHdpdGggIlxyXG4iLgogICAgIGlmICgqKGVuZCAtIDIpICE9ICdccicpIHsKLSAgICAgICAg
bV9jb250ZXh0LT5hZGRNZXNzYWdlKEpTTWVzc2FnZVNvdXJjZSwgTG9nTWVzc2FnZVR5cGUsIEVy
cm9yTWVzc2FnZUxldmVsLCAiU3RhdHVzIGxpbmUgZG9lcyBub3QgZW5kIHdpdGggQ1JMRiIsIDAs
IGNsaWVudE9yaWdpbigpKTsKKyAgICAgICAgbV9jb250ZXh0LT5hZGRNZXNzYWdlKEpTTWVzc2Fn
ZVNvdXJjZSwgTG9nTWVzc2FnZVR5cGUsIEVycm9yTWVzc2FnZUxldmVsLCAiU3RhdHVzIGxpbmUg
ZG9lcyBub3QgZW5kIHdpdGggQ1JMRiIsIDAsIGNsaWVudE9yaWdpbigpLCAwKTsKICAgICAgICAg
cmV0dXJuIGxpbmVMZW5ndGg7CiAgICAgfQogCkBAIC00NzAsNyArNDcxLDcgQEAgaW50IFdlYlNv
Y2tldEhhbmRzaGFrZTo6cmVhZFN0YXR1c0xpbmUoY29uc3QgY2hhciogaGVhZGVyLCBzaXplX3Qg
aGVhZGVyTGVuZ3RoLAogICAgICAgICByZXR1cm4gbGluZUxlbmd0aDsKICAgICBmb3IgKGludCBp
ID0gMDsgaSA8IDM7ICsraSkKICAgICAgICAgaWYgKHN0YXR1c0NvZGVTdHJpbmdbaV0gPCAnMCcg
fHwgc3RhdHVzQ29kZVN0cmluZ1tpXSA+ICc5JykgewotICAgICAgICAgICAgbV9jb250ZXh0LT5h
ZGRNZXNzYWdlKEpTTWVzc2FnZVNvdXJjZSwgTG9nTWVzc2FnZVR5cGUsIEVycm9yTWVzc2FnZUxl
dmVsLCAiSW52YWxpZCBzdGF0dXMgY29kZTogIiArIHN0YXR1c0NvZGVTdHJpbmcsIDAsIGNsaWVu
dE9yaWdpbigpKTsKKyAgICAgICAgICAgIG1fY29udGV4dC0+YWRkTWVzc2FnZShKU01lc3NhZ2VT
b3VyY2UsIExvZ01lc3NhZ2VUeXBlLCBFcnJvck1lc3NhZ2VMZXZlbCwgIkludmFsaWQgc3RhdHVz
IGNvZGU6ICIgKyBzdGF0dXNDb2RlU3RyaW5nLCAwLCBjbGllbnRPcmlnaW4oKSwgMCk7CiAgICAg
ICAgICAgICByZXR1cm4gbGluZUxlbmd0aDsKICAgICAgICAgfQogCkBAIC00OTgsMTMgKzQ5OSwx
MyBAQCBjb25zdCBjaGFyKiBXZWJTb2NrZXRIYW5kc2hha2U6OnJlYWRIVFRQSGVhZGVycyhjb25z
dCBjaGFyKiBzdGFydCwgY29uc3QgY2hhciogZQogICAgICAgICAgICAgICAgIGlmIChuYW1lLmlz
RW1wdHkoKSkgewogICAgICAgICAgICAgICAgICAgICBpZiAocCArIDEgPCBlbmQgJiYgKihwICsg
MSkgPT0gJ1xuJykKICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBwICsgMjsKLSAgICAg
ICAgICAgICAgICAgICAgbV9jb250ZXh0LT5hZGRNZXNzYWdlKEpTTWVzc2FnZVNvdXJjZSwgTG9n
TWVzc2FnZVR5cGUsIEVycm9yTWVzc2FnZUxldmVsLCAiQ1IgZG9lc24ndCBmb2xsb3cgTEYgYXQg
IiArIHRyaW1Db25zb2xlTWVzc2FnZShwLCBlbmQgLSBwKSwgMCwgY2xpZW50T3JpZ2luKCkpOwor
ICAgICAgICAgICAgICAgICAgICBtX2NvbnRleHQtPmFkZE1lc3NhZ2UoSlNNZXNzYWdlU291cmNl
LCBMb2dNZXNzYWdlVHlwZSwgRXJyb3JNZXNzYWdlTGV2ZWwsICJDUiBkb2Vzbid0IGZvbGxvdyBM
RiBhdCAiICsgdHJpbUNvbnNvbGVNZXNzYWdlKHAsIGVuZCAtIHApLCAwLCBjbGllbnRPcmlnaW4o
KSwgMCk7CiAgICAgICAgICAgICAgICAgICAgIHJldHVybiAwOwogICAgICAgICAgICAgICAgIH0K
LSAgICAgICAgICAgICAgICBtX2NvbnRleHQtPmFkZE1lc3NhZ2UoSlNNZXNzYWdlU291cmNlLCBM
b2dNZXNzYWdlVHlwZSwgRXJyb3JNZXNzYWdlTGV2ZWwsICJVbmV4cGVjdGVkIENSIGluIG5hbWUg
YXQgIiArIHRyaW1Db25zb2xlTWVzc2FnZShuYW1lLmRhdGEoKSwgbmFtZS5zaXplKCkpLCAwLCBj
bGllbnRPcmlnaW4oKSk7CisgICAgICAgICAgICAgICAgbV9jb250ZXh0LT5hZGRNZXNzYWdlKEpT
TWVzc2FnZVNvdXJjZSwgTG9nTWVzc2FnZVR5cGUsIEVycm9yTWVzc2FnZUxldmVsLCAiVW5leHBl
Y3RlZCBDUiBpbiBuYW1lIGF0ICIgKyB0cmltQ29uc29sZU1lc3NhZ2UobmFtZS5kYXRhKCksIG5h
bWUuc2l6ZSgpKSwgMCwgY2xpZW50T3JpZ2luKCksIDApOwogICAgICAgICAgICAgICAgIHJldHVy
biAwOwogICAgICAgICAgICAgY2FzZSAnXG4nOgotICAgICAgICAgICAgICAgIG1fY29udGV4dC0+
YWRkTWVzc2FnZShKU01lc3NhZ2VTb3VyY2UsIExvZ01lc3NhZ2VUeXBlLCBFcnJvck1lc3NhZ2VM
ZXZlbCwgIlVuZXhwZWN0ZWQgTEYgaW4gbmFtZSBhdCAiICsgdHJpbUNvbnNvbGVNZXNzYWdlKG5h
bWUuZGF0YSgpLCBuYW1lLnNpemUoKSksIDAsIGNsaWVudE9yaWdpbigpKTsKKyAgICAgICAgICAg
ICAgICBtX2NvbnRleHQtPmFkZE1lc3NhZ2UoSlNNZXNzYWdlU291cmNlLCBMb2dNZXNzYWdlVHlw
ZSwgRXJyb3JNZXNzYWdlTGV2ZWwsICJVbmV4cGVjdGVkIExGIGluIG5hbWUgYXQgIiArIHRyaW1D
b25zb2xlTWVzc2FnZShuYW1lLmRhdGEoKSwgbmFtZS5zaXplKCkpLCAwLCBjbGllbnRPcmlnaW4o
KSwgMCk7CiAgICAgICAgICAgICAgICAgcmV0dXJuIDA7CiAgICAgICAgICAgICBjYXNlICc6JzoK
ICAgICAgICAgICAgICAgICBicmVhazsKQEAgLTUyNSw3ICs1MjYsNyBAQCBjb25zdCBjaGFyKiBX
ZWJTb2NrZXRIYW5kc2hha2U6OnJlYWRIVFRQSGVhZGVycyhjb25zdCBjaGFyKiBzdGFydCwgY29u
c3QgY2hhciogZQogICAgICAgICAgICAgY2FzZSAnXHInOgogICAgICAgICAgICAgICAgIGJyZWFr
OwogICAgICAgICAgICAgY2FzZSAnXG4nOgotICAgICAgICAgICAgICAgIG1fY29udGV4dC0+YWRk
TWVzc2FnZShKU01lc3NhZ2VTb3VyY2UsIExvZ01lc3NhZ2VUeXBlLCBFcnJvck1lc3NhZ2VMZXZl
bCwgIlVuZXhwZWN0ZWQgTEYgaW4gdmFsdWUgYXQgIiArIHRyaW1Db25zb2xlTWVzc2FnZSh2YWx1
ZS5kYXRhKCksIHZhbHVlLnNpemUoKSksIDAsIGNsaWVudE9yaWdpbigpKTsKKyAgICAgICAgICAg
ICAgICBtX2NvbnRleHQtPmFkZE1lc3NhZ2UoSlNNZXNzYWdlU291cmNlLCBMb2dNZXNzYWdlVHlw
ZSwgRXJyb3JNZXNzYWdlTGV2ZWwsICJVbmV4cGVjdGVkIExGIGluIHZhbHVlIGF0ICIgKyB0cmlt
Q29uc29sZU1lc3NhZ2UodmFsdWUuZGF0YSgpLCB2YWx1ZS5zaXplKCkpLCAwLCBjbGllbnRPcmln
aW4oKSwgMCk7CiAgICAgICAgICAgICAgICAgcmV0dXJuIDA7CiAgICAgICAgICAgICBkZWZhdWx0
OgogICAgICAgICAgICAgICAgIHZhbHVlLmFwcGVuZCgqcCk7CkBAIC01MzYsMTcgKzUzNywxNyBA
QCBjb25zdCBjaGFyKiBXZWJTb2NrZXRIYW5kc2hha2U6OnJlYWRIVFRQSGVhZGVycyhjb25zdCBj
aGFyKiBzdGFydCwgY29uc3QgY2hhciogZQogICAgICAgICAgICAgfQogICAgICAgICB9CiAgICAg
ICAgIGlmIChwID49IGVuZCB8fCAqcCAhPSAnXG4nKSB7Ci0gICAgICAgICAgICBtX2NvbnRleHQt
PmFkZE1lc3NhZ2UoSlNNZXNzYWdlU291cmNlLCBMb2dNZXNzYWdlVHlwZSwgRXJyb3JNZXNzYWdl
TGV2ZWwsICJDUiBkb2Vzbid0IGZvbGxvdyBMRiBhZnRlciB2YWx1ZSBhdCAiICsgdHJpbUNvbnNv
bGVNZXNzYWdlKHAsIGVuZCAtIHApLCAwLCBjbGllbnRPcmlnaW4oKSk7CisgICAgICAgICAgICBt
X2NvbnRleHQtPmFkZE1lc3NhZ2UoSlNNZXNzYWdlU291cmNlLCBMb2dNZXNzYWdlVHlwZSwgRXJy
b3JNZXNzYWdlTGV2ZWwsICJDUiBkb2Vzbid0IGZvbGxvdyBMRiBhZnRlciB2YWx1ZSBhdCAiICsg
dHJpbUNvbnNvbGVNZXNzYWdlKHAsIGVuZCAtIHApLCAwLCBjbGllbnRPcmlnaW4oKSwgMCk7CiAg
ICAgICAgICAgICByZXR1cm4gMDsKICAgICAgICAgfQogICAgICAgICBBdG9taWNTdHJpbmcgbmFt
ZVN0cihTdHJpbmc6OmZyb21VVEY4KG5hbWUuZGF0YSgpLCBuYW1lLnNpemUoKSkpOwogICAgICAg
ICBTdHJpbmcgdmFsdWVTdHIgPSBTdHJpbmc6OmZyb21VVEY4KHZhbHVlLmRhdGEoKSwgdmFsdWUu
c2l6ZSgpKTsKICAgICAgICAgaWYgKG5hbWVTdHIuaXNOdWxsKCkpIHsKLSAgICAgICAgICAgIG1f
Y29udGV4dC0+YWRkTWVzc2FnZShKU01lc3NhZ2VTb3VyY2UsIExvZ01lc3NhZ2VUeXBlLCBFcnJv
ck1lc3NhZ2VMZXZlbCwgImludmFsaWQgVVRGLTggc2VxdWVuY2UgaW4gaGVhZGVyIG5hbWUiLCAw
LCBjbGllbnRPcmlnaW4oKSk7CisgICAgICAgICAgICBtX2NvbnRleHQtPmFkZE1lc3NhZ2UoSlNN
ZXNzYWdlU291cmNlLCBMb2dNZXNzYWdlVHlwZSwgRXJyb3JNZXNzYWdlTGV2ZWwsICJpbnZhbGlk
IFVURi04IHNlcXVlbmNlIGluIGhlYWRlciBuYW1lIiwgMCwgY2xpZW50T3JpZ2luKCksIDApOwog
ICAgICAgICAgICAgcmV0dXJuIDA7CiAgICAgICAgIH0KICAgICAgICAgaWYgKHZhbHVlU3RyLmlz
TnVsbCgpKSB7Ci0gICAgICAgICAgICBtX2NvbnRleHQtPmFkZE1lc3NhZ2UoSlNNZXNzYWdlU291
cmNlLCBMb2dNZXNzYWdlVHlwZSwgRXJyb3JNZXNzYWdlTGV2ZWwsICJpbnZhbGlkIFVURi04IHNl
cXVlbmNlIGluIGhlYWRlciB2YWx1ZSIsIDAsIGNsaWVudE9yaWdpbigpKTsKKyAgICAgICAgICAg
IG1fY29udGV4dC0+YWRkTWVzc2FnZShKU01lc3NhZ2VTb3VyY2UsIExvZ01lc3NhZ2VUeXBlLCBF
cnJvck1lc3NhZ2VMZXZlbCwgImludmFsaWQgVVRGLTggc2VxdWVuY2UgaW4gaGVhZGVyIHZhbHVl
IiwgMCwgY2xpZW50T3JpZ2luKCksIDApOwogICAgICAgICAgICAgcmV0dXJuIDA7CiAgICAgICAg
IH0KICAgICAgICAgTE9HKE5ldHdvcmssICJuYW1lPSVzIHZhbHVlPSVzIiwgbmFtZVN0ci5zdHJp
bmcoKS51dGY4KCkuZGF0YSgpLCB2YWx1ZVN0ci51dGY4KCkuZGF0YSgpKTsKQEAgLTU3MCwyNCAr
NTcxLDI0IEBAIHZvaWQgV2ViU29ja2V0SGFuZHNoYWtlOjpwcm9jZXNzSGVhZGVycygpCiBib29s
IFdlYlNvY2tldEhhbmRzaGFrZTo6Y2hlY2tSZXNwb25zZUhlYWRlcnMoKQogewogICAgIGlmICht
X3dzT3JpZ2luLmlzTnVsbCgpKSB7Ci0gICAgICAgIG1fY29udGV4dC0+YWRkTWVzc2FnZShKU01l
c3NhZ2VTb3VyY2UsIExvZ01lc3NhZ2VUeXBlLCBFcnJvck1lc3NhZ2VMZXZlbCwgIkVycm9yIGR1
cmluZyBXZWJTb2NrZXQgaGFuZHNoYWtlOiAnc2VjLXdlYnNvY2tldC1vcmlnaW4nIGhlYWRlciBp
cyBtaXNzaW5nIiwgMCwgY2xpZW50T3JpZ2luKCkpOworICAgICAgICBtX2NvbnRleHQtPmFkZE1l
c3NhZ2UoSlNNZXNzYWdlU291cmNlLCBMb2dNZXNzYWdlVHlwZSwgRXJyb3JNZXNzYWdlTGV2ZWws
ICJFcnJvciBkdXJpbmcgV2ViU29ja2V0IGhhbmRzaGFrZTogJ3NlYy13ZWJzb2NrZXQtb3JpZ2lu
JyBoZWFkZXIgaXMgbWlzc2luZyIsIDAsIGNsaWVudE9yaWdpbigpLCAwKTsKICAgICAgICAgcmV0
dXJuIGZhbHNlOwogICAgIH0KICAgICBpZiAobV93c0xvY2F0aW9uLmlzTnVsbCgpKSB7Ci0gICAg
ICAgIG1fY29udGV4dC0+YWRkTWVzc2FnZShKU01lc3NhZ2VTb3VyY2UsIExvZ01lc3NhZ2VUeXBl
LCBFcnJvck1lc3NhZ2VMZXZlbCwgIkVycm9yIGR1cmluZyBXZWJTb2NrZXQgaGFuZHNoYWtlOiAn
c2VjLXdlYnNvY2tldC1sb2NhdGlvbicgaGVhZGVyIGlzIG1pc3NpbmciLCAwLCBjbGllbnRPcmln
aW4oKSk7CisgICAgICAgIG1fY29udGV4dC0+YWRkTWVzc2FnZShKU01lc3NhZ2VTb3VyY2UsIExv
Z01lc3NhZ2VUeXBlLCBFcnJvck1lc3NhZ2VMZXZlbCwgIkVycm9yIGR1cmluZyBXZWJTb2NrZXQg
aGFuZHNoYWtlOiAnc2VjLXdlYnNvY2tldC1sb2NhdGlvbicgaGVhZGVyIGlzIG1pc3NpbmciLCAw
LCBjbGllbnRPcmlnaW4oKSwgMCk7CiAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICB9CiAKICAg
ICBpZiAoY2xpZW50T3JpZ2luKCkgIT0gbV93c09yaWdpbikgewotICAgICAgICBtX2NvbnRleHQt
PmFkZE1lc3NhZ2UoSlNNZXNzYWdlU291cmNlLCBMb2dNZXNzYWdlVHlwZSwgRXJyb3JNZXNzYWdl
TGV2ZWwsICJFcnJvciBkdXJpbmcgV2ViU29ja2V0IGhhbmRzaGFrZTogb3JpZ2luIG1pc21hdGNo
OiAiICsgY2xpZW50T3JpZ2luKCkgKyAiICE9ICIgKyBtX3dzT3JpZ2luLCAwLCBjbGllbnRPcmln
aW4oKSk7CisgICAgICAgIG1fY29udGV4dC0+YWRkTWVzc2FnZShKU01lc3NhZ2VTb3VyY2UsIExv
Z01lc3NhZ2VUeXBlLCBFcnJvck1lc3NhZ2VMZXZlbCwgIkVycm9yIGR1cmluZyBXZWJTb2NrZXQg
aGFuZHNoYWtlOiBvcmlnaW4gbWlzbWF0Y2g6ICIgKyBjbGllbnRPcmlnaW4oKSArICIgIT0gIiAr
IG1fd3NPcmlnaW4sIDAsIGNsaWVudE9yaWdpbigpLCAwKTsKICAgICAgICAgcmV0dXJuIGZhbHNl
OwogICAgIH0KICAgICBpZiAoY2xpZW50TG9jYXRpb24oKSAhPSBtX3dzTG9jYXRpb24pIHsKLSAg
ICAgICAgbV9jb250ZXh0LT5hZGRNZXNzYWdlKEpTTWVzc2FnZVNvdXJjZSwgTG9nTWVzc2FnZVR5
cGUsIEVycm9yTWVzc2FnZUxldmVsLCAiRXJyb3IgZHVyaW5nIFdlYlNvY2tldCBoYW5kc2hha2U6
IGxvY2F0aW9uIG1pc21hdGNoOiAiICsgY2xpZW50TG9jYXRpb24oKSArICIgIT0gIiArIG1fd3NM
b2NhdGlvbiwgMCwgY2xpZW50T3JpZ2luKCkpOworICAgICAgICBtX2NvbnRleHQtPmFkZE1lc3Nh
Z2UoSlNNZXNzYWdlU291cmNlLCBMb2dNZXNzYWdlVHlwZSwgRXJyb3JNZXNzYWdlTGV2ZWwsICJF
cnJvciBkdXJpbmcgV2ViU29ja2V0IGhhbmRzaGFrZTogbG9jYXRpb24gbWlzbWF0Y2g6ICIgKyBj
bGllbnRMb2NhdGlvbigpICsgIiAhPSAiICsgbV93c0xvY2F0aW9uLCAwLCBjbGllbnRPcmlnaW4o
KSwgMCk7CiAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICB9CiAgICAgaWYgKCFtX2NsaWVudFBy
b3RvY29sLmlzRW1wdHkoKSAmJiBtX2NsaWVudFByb3RvY29sICE9IG1fd3NQcm90b2NvbCkgewot
ICAgICAgICBtX2NvbnRleHQtPmFkZE1lc3NhZ2UoSlNNZXNzYWdlU291cmNlLCBMb2dNZXNzYWdl
VHlwZSwgRXJyb3JNZXNzYWdlTGV2ZWwsICJFcnJvciBkdXJpbmcgV2ViU29ja2V0IGhhbmRzaGFr
ZTogcHJvdG9jb2wgbWlzbWF0Y2g6ICIgKyBtX2NsaWVudFByb3RvY29sICsgIiAhPSAiICsgbV93
c1Byb3RvY29sLCAwLCBjbGllbnRPcmlnaW4oKSk7CisgICAgICAgIG1fY29udGV4dC0+YWRkTWVz
c2FnZShKU01lc3NhZ2VTb3VyY2UsIExvZ01lc3NhZ2VUeXBlLCBFcnJvck1lc3NhZ2VMZXZlbCwg
IkVycm9yIGR1cmluZyBXZWJTb2NrZXQgaGFuZHNoYWtlOiBwcm90b2NvbCBtaXNtYXRjaDogIiAr
IG1fY2xpZW50UHJvdG9jb2wgKyAiICE9ICIgKyBtX3dzUHJvdG9jb2wsIDAsIGNsaWVudE9yaWdp
bigpLCAwKTsKICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIH0KICAgICByZXR1cm4gdHJ1ZTsK
ZGlmZiAtLWdpdCBhL1dlYkNvcmUvd29ya2Vycy9EZWZhdWx0U2hhcmVkV29ya2VyUmVwb3NpdG9y
eS5jcHAgYi9XZWJDb3JlL3dvcmtlcnMvRGVmYXVsdFNoYXJlZFdvcmtlclJlcG9zaXRvcnkuY3Bw
CmluZGV4IDRhOGU5NDcuLjhlMWMxMDYgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvd29ya2Vycy9EZWZh
dWx0U2hhcmVkV29ya2VyUmVwb3NpdG9yeS5jcHAKKysrIGIvV2ViQ29yZS93b3JrZXJzL0RlZmF1
bHRTaGFyZWRXb3JrZXJSZXBvc2l0b3J5LmNwcApAQCAtNDIsNiArNDIsNyBAQAogI2luY2x1ZGUg
Ik1lc3NhZ2VQb3J0LmgiCiAjaW5jbHVkZSAiTm90SW1wbGVtZW50ZWQuaCIKICNpbmNsdWRlICJQ
bGF0Zm9ybVN0cmluZy5oIgorI2luY2x1ZGUgIlNjcmlwdENhbGxTdGFjay5oIgogI2luY2x1ZGUg
IlNlY3VyaXR5T3JpZ2luLmgiCiAjaW5jbHVkZSAiU2VjdXJpdHlPcmlnaW5IYXNoLmgiCiAjaW5j
bHVkZSAiU2hhcmVkV29ya2VyLmgiCkBAIC0xNTUsNyArMTU2LDcgQEAgdm9pZCBTaGFyZWRXb3Jr
ZXJQcm94eTo6cG9zdFRhc2tGb3JNb2RlVG9Xb3JrZXJDb250ZXh0KFBhc3NPd25QdHI8U2NyaXB0
RXhlY3V0aW8KIAogc3RhdGljIHZvaWQgcG9zdEV4Y2VwdGlvblRhc2soU2NyaXB0RXhlY3V0aW9u
Q29udGV4dCogY29udGV4dCwgY29uc3QgU3RyaW5nJiBlcnJvck1lc3NhZ2UsIGludCBsaW5lTnVt
YmVyLCBjb25zdCBTdHJpbmcmIHNvdXJjZVVSTCkKIHsKLSAgICBjb250ZXh0LT5yZXBvcnRFeGNl
cHRpb24oZXJyb3JNZXNzYWdlLCBsaW5lTnVtYmVyLCBzb3VyY2VVUkwpOworICAgIGNvbnRleHQt
PnJlcG9ydEV4Y2VwdGlvbihlcnJvck1lc3NhZ2UsIGxpbmVOdW1iZXIsIHNvdXJjZVVSTCwgMCk7
CiB9CiAKIHZvaWQgU2hhcmVkV29ya2VyUHJveHk6OnBvc3RFeGNlcHRpb25Ub1dvcmtlck9iamVj
dChjb25zdCBTdHJpbmcmIGVycm9yTWVzc2FnZSwgaW50IGxpbmVOdW1iZXIsIGNvbnN0IFN0cmlu
ZyYgc291cmNlVVJMKQpAQCAtMTY3LDcgKzE2OCw3IEBAIHZvaWQgU2hhcmVkV29ya2VyUHJveHk6
OnBvc3RFeGNlcHRpb25Ub1dvcmtlck9iamVjdChjb25zdCBTdHJpbmcmIGVycm9yTWVzc2FnZSwK
IAogc3RhdGljIHZvaWQgcG9zdENvbnNvbGVNZXNzYWdlVGFzayhTY3JpcHRFeGVjdXRpb25Db250
ZXh0KiBkb2N1bWVudCwgTWVzc2FnZVNvdXJjZSBzb3VyY2UsIE1lc3NhZ2VUeXBlIHR5cGUsIE1l
c3NhZ2VMZXZlbCBsZXZlbCwgY29uc3QgU3RyaW5nJiBtZXNzYWdlLCB1bnNpZ25lZCBsaW5lTnVt
YmVyLCBjb25zdCBTdHJpbmcmIHNvdXJjZVVSTCkKIHsKLSAgICBkb2N1bWVudC0+YWRkTWVzc2Fn
ZShzb3VyY2UsIHR5cGUsIGxldmVsLCBtZXNzYWdlLCBsaW5lTnVtYmVyLCBzb3VyY2VVUkwpOwor
ICAgIGRvY3VtZW50LT5hZGRNZXNzYWdlKHNvdXJjZSwgdHlwZSwgbGV2ZWwsIG1lc3NhZ2UsIGxp
bmVOdW1iZXIsIHNvdXJjZVVSTCwgMCk7CiB9CiAKIHZvaWQgU2hhcmVkV29ya2VyUHJveHk6OnBv
c3RDb25zb2xlTWVzc2FnZVRvV29ya2VyT2JqZWN0KE1lc3NhZ2VTb3VyY2Ugc291cmNlLCBNZXNz
YWdlVHlwZSB0eXBlLCBNZXNzYWdlTGV2ZWwgbGV2ZWwsIGNvbnN0IFN0cmluZyYgbWVzc2FnZSwg
aW50IGxpbmVOdW1iZXIsIGNvbnN0IFN0cmluZyYgc291cmNlVVJMKQpkaWZmIC0tZ2l0IGEvV2Vi
Q29yZS93b3JrZXJzL1dvcmtlckNvbnRleHQuY3BwIGIvV2ViQ29yZS93b3JrZXJzL1dvcmtlckNv
bnRleHQuY3BwCmluZGV4IDM0NWU1YjcuLjAzZGVmYzcgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvd29y
a2Vycy9Xb3JrZXJDb250ZXh0LmNwcAorKysgYi9XZWJDb3JlL3dvcmtlcnMvV29ya2VyQ29udGV4
dC5jcHAKQEAgLTQ2LDYgKzQ2LDcgQEAKICNpbmNsdWRlICJLVVJMLmgiCiAjaW5jbHVkZSAiTWVz
c2FnZVBvcnQuaCIKICNpbmNsdWRlICJOb3RJbXBsZW1lbnRlZC5oIgorI2luY2x1ZGUgIlNjcmlw
dENhbGxTdGFjay5oIgogI2luY2x1ZGUgIlNjcmlwdFNvdXJjZUNvZGUuaCIKICNpbmNsdWRlICJT
Y3JpcHRWYWx1ZS5oIgogI2luY2x1ZGUgIlNlY3VyaXR5T3JpZ2luLmgiCkBAIC0xMDIsNyArMTAz
LDYgQEAgV29ya2VyQ29udGV4dDo6V29ya2VyQ29udGV4dChjb25zdCBLVVJMJiB1cmwsIGNvbnN0
IFN0cmluZyYgdXNlckFnZW50LCBXb3JrZXJUaHIKICAgICAsIG1fc2NyaXB0KG5ldyBXb3JrZXJT
Y3JpcHRDb250cm9sbGVyKHRoaXMpKQogICAgICwgbV90aHJlYWQodGhyZWFkKQogICAgICwgbV9j
bG9zaW5nKGZhbHNlKQotICAgICwgbV9yZXBvcnRpbmdFeGNlcHRpb24oZmFsc2UpCiB7CiAgICAg
c2V0U2VjdXJpdHlPcmlnaW4oU2VjdXJpdHlPcmlnaW46OmNyZWF0ZSh1cmwpKTsKIH0KQEAgLTI1
OSwyMyArMjU5LDE3IEBAIHZvaWQgV29ya2VyQ29udGV4dDo6aW1wb3J0U2NyaXB0cyhjb25zdCBW
ZWN0b3I8U3RyaW5nPiYgdXJscywgRXhjZXB0aW9uQ29kZSYgZWMpCiAgICAgfQogfQogCi12b2lk
IFdvcmtlckNvbnRleHQ6OnJlcG9ydEV4Y2VwdGlvbihjb25zdCBTdHJpbmcmIGVycm9yTWVzc2Fn
ZSwgaW50IGxpbmVOdW1iZXIsIGNvbnN0IFN0cmluZyYgc291cmNlVVJMKQorRXZlbnRUYXJnZXQq
IFdvcmtlckNvbnRleHQ6OmVycm9yRXZlbnRUYXJnZXQoKQogewotICAgIGJvb2wgZXJyb3JIYW5k
bGVkID0gZmFsc2U7Ci0gICAgaWYgKCFtX3JlcG9ydGluZ0V4Y2VwdGlvbikgewotICAgICAgICBp
ZiAob25lcnJvcigpKSB7Ci0gICAgICAgICAgICBtX3JlcG9ydGluZ0V4Y2VwdGlvbiA9IHRydWU7
Ci0gICAgICAgICAgICBSZWZQdHI8RXJyb3JFdmVudD4gZXJyb3JFdmVudChFcnJvckV2ZW50Ojpj
cmVhdGUoZXJyb3JNZXNzYWdlLCBzb3VyY2VVUkwsIGxpbmVOdW1iZXIpKTsKLSAgICAgICAgICAg
IG9uZXJyb3IoKS0+aGFuZGxlRXZlbnQodGhpcywgZXJyb3JFdmVudC5nZXQoKSk7Ci0gICAgICAg
ICAgICBlcnJvckhhbmRsZWQgPSBlcnJvckV2ZW50LT5kZWZhdWx0UHJldmVudGVkKCk7Ci0gICAg
ICAgICAgICBtX3JlcG9ydGluZ0V4Y2VwdGlvbiA9IGZhbHNlOwotICAgICAgICB9Ci0gICAgfQot
ICAgIGlmICghZXJyb3JIYW5kbGVkKQotICAgICAgICB0aHJlYWQoKS0+d29ya2VyUmVwb3J0aW5n
UHJveHkoKS5wb3N0RXhjZXB0aW9uVG9Xb3JrZXJPYmplY3QoZXJyb3JNZXNzYWdlLCBsaW5lTnVt
YmVyLCBzb3VyY2VVUkwpOworICAgIHJldHVybiB0aGlzOworfQorCit2b2lkIFdvcmtlckNvbnRl
eHQ6OmxvZ0V4Y2VwdGlvblRvQ29uc29sZShjb25zdCBTdHJpbmcmIGVycm9yTWVzc2FnZSwgaW50
IGxpbmVOdW1iZXIsIGNvbnN0IFN0cmluZyYgc291cmNlVVJMLCBQYXNzUmVmUHRyPFNjcmlwdENh
bGxTdGFjaz4pCit7CisgICAgdGhyZWFkKCktPndvcmtlclJlcG9ydGluZ1Byb3h5KCkucG9zdEV4
Y2VwdGlvblRvV29ya2VyT2JqZWN0KGVycm9yTWVzc2FnZSwgbGluZU51bWJlciwgc291cmNlVVJM
KTsKIH0KIAotdm9pZCBXb3JrZXJDb250ZXh0OjphZGRNZXNzYWdlKE1lc3NhZ2VTb3VyY2Ugc291
cmNlLCBNZXNzYWdlVHlwZSB0eXBlLCBNZXNzYWdlTGV2ZWwgbGV2ZWwsIGNvbnN0IFN0cmluZyYg
bWVzc2FnZSwgdW5zaWduZWQgbGluZU51bWJlciwgY29uc3QgU3RyaW5nJiBzb3VyY2VVUkwpCit2
b2lkIFdvcmtlckNvbnRleHQ6OmFkZE1lc3NhZ2UoTWVzc2FnZVNvdXJjZSBzb3VyY2UsIE1lc3Nh
Z2VUeXBlIHR5cGUsIE1lc3NhZ2VMZXZlbCBsZXZlbCwgY29uc3QgU3RyaW5nJiBtZXNzYWdlLCB1
bnNpZ25lZCBsaW5lTnVtYmVyLCBjb25zdCBTdHJpbmcmIHNvdXJjZVVSTCwgUGFzc1JlZlB0cjxT
Y3JpcHRDYWxsU3RhY2s+KQogewogICAgIHRocmVhZCgpLT53b3JrZXJSZXBvcnRpbmdQcm94eSgp
LnBvc3RDb25zb2xlTWVzc2FnZVRvV29ya2VyT2JqZWN0KHNvdXJjZSwgdHlwZSwgbGV2ZWwsIG1l
c3NhZ2UsIGxpbmVOdW1iZXIsIHNvdXJjZVVSTCk7CiB9CmRpZmYgLS1naXQgYS9XZWJDb3JlL3dv
cmtlcnMvV29ya2VyQ29udGV4dC5oIGIvV2ViQ29yZS93b3JrZXJzL1dvcmtlckNvbnRleHQuaApp
bmRleCA3YjZjOWEyLi5lMmUyZTk0IDEwMDY0NAotLS0gYS9XZWJDb3JlL3dvcmtlcnMvV29ya2Vy
Q29udGV4dC5oCisrKyBiL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJDb250ZXh0LmgKQEAgLTEwMCw4
ICsxMDAsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIHZvaWQgY2xlYXJJbnRlcnZh
bChpbnQgdGltZW91dElkKTsKIAogICAgICAgICAvLyBTY3JpcHRFeGVjdXRpb25Db250ZXh0Ci0g
ICAgICAgIHZpcnR1YWwgdm9pZCByZXBvcnRFeGNlcHRpb24oY29uc3QgU3RyaW5nJiBlcnJvck1l
c3NhZ2UsIGludCBsaW5lTnVtYmVyLCBjb25zdCBTdHJpbmcmIHNvdXJjZVVSTCk7Ci0gICAgICAg
IHZpcnR1YWwgdm9pZCBhZGRNZXNzYWdlKE1lc3NhZ2VTb3VyY2UsIE1lc3NhZ2VUeXBlLCBNZXNz
YWdlTGV2ZWwsIGNvbnN0IFN0cmluZyYgbWVzc2FnZSwgdW5zaWduZWQgbGluZU51bWJlciwgY29u
c3QgU3RyaW5nJiBzb3VyY2VVUkwpOworICAgICAgICB2aXJ0dWFsIHZvaWQgYWRkTWVzc2FnZShN
ZXNzYWdlU291cmNlLCBNZXNzYWdlVHlwZSwgTWVzc2FnZUxldmVsLCBjb25zdCBTdHJpbmcmIG1l
c3NhZ2UsIHVuc2lnbmVkIGxpbmVOdW1iZXIsIGNvbnN0IFN0cmluZyYgc291cmNlVVJMLCBQYXNz
UmVmUHRyPFNjcmlwdENhbGxTdGFjaz4pOwogCiAjaWYgRU5BQkxFKE5PVElGSUNBVElPTlMpCiAg
ICAgICAgIE5vdGlmaWNhdGlvbkNlbnRlciogd2Via2l0Tm90aWZpY2F0aW9ucygpIGNvbnN0OwpA
QCAtMTc0LDYgKzE3Myw5IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgdmlydHVhbCBj
b25zdCBLVVJMJiB2aXJ0dWFsVVJMKCkgY29uc3Q7CiAgICAgICAgIHZpcnR1YWwgS1VSTCB2aXJ0
dWFsQ29tcGxldGVVUkwoY29uc3QgU3RyaW5nJikgY29uc3Q7CiAKKyAgICAgICAgdmlydHVhbCBF
dmVudFRhcmdldCogZXJyb3JFdmVudFRhcmdldCgpOworICAgICAgICB2aXJ0dWFsIHZvaWQgbG9n
RXhjZXB0aW9uVG9Db25zb2xlKGNvbnN0IFN0cmluZyYgZXJyb3JNZXNzYWdlLCBpbnQgbGluZU51
bWJlciwgY29uc3QgU3RyaW5nJiBzb3VyY2VVUkwsIFBhc3NSZWZQdHI8U2NyaXB0Q2FsbFN0YWNr
Pik7CisKICAgICAgICAgS1VSTCBtX3VybDsKICAgICAgICAgU3RyaW5nIG1fdXNlckFnZW50Owog
CkBAIC0xODcsNyArMTg5LDYgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICBtdXRhYmxl
IFJlZlB0cjxOb3RpZmljYXRpb25DZW50ZXI+IG1fbm90aWZpY2F0aW9uczsKICNlbmRpZgogICAg
ICAgICBib29sIG1fY2xvc2luZzsKLSAgICAgICAgYm9vbCBtX3JlcG9ydGluZ0V4Y2VwdGlvbjsK
ICAgICAgICAgRXZlbnRUYXJnZXREYXRhIG1fZXZlbnRUYXJnZXREYXRhOwogCiAgICAgICAgIEhh
c2hTZXQ8T2JzZXJ2ZXIqPiBtX3dvcmtlck9ic2VydmVyczsKZGlmZiAtLWdpdCBhL1dlYkNvcmUv
d29ya2Vycy9Xb3JrZXJNZXNzYWdpbmdQcm94eS5jcHAgYi9XZWJDb3JlL3dvcmtlcnMvV29ya2Vy
TWVzc2FnaW5nUHJveHkuY3BwCmluZGV4IDEwNzAwYzYuLjczNWQxNDMgMTAwNjQ0Ci0tLSBhL1dl
YkNvcmUvd29ya2Vycy9Xb3JrZXJNZXNzYWdpbmdQcm94eS5jcHAKKysrIGIvV2ViQ29yZS93b3Jr
ZXJzL1dvcmtlck1lc3NhZ2luZ1Byb3h5LmNwcApAQCAtNDAsNiArNDAsNyBAQAogI2luY2x1ZGUg
IkV4Y2VwdGlvbkNvZGUuaCIKICNpbmNsdWRlICJJbnNwZWN0b3JDb250cm9sbGVyLmgiCiAjaW5j
bHVkZSAiTWVzc2FnZUV2ZW50LmgiCisjaW5jbHVkZSAiU2NyaXB0Q2FsbFN0YWNrLmgiCiAjaW5j
bHVkZSAiU2NyaXB0RXhlY3V0aW9uQ29udGV4dC5oIgogI2luY2x1ZGUgIldvcmtlci5oIgogCkBA
IC0xMzEsNyArMTMyLDcgQEAgcHJpdmF0ZToKIAogICAgICAgICBib29sIGVycm9ySGFuZGxlZCA9
ICF3b3JrZXJPYmplY3QtPmRpc3BhdGNoRXZlbnQoRXJyb3JFdmVudDo6Y3JlYXRlKG1fZXJyb3JN
ZXNzYWdlLCBtX3NvdXJjZVVSTCwgbV9saW5lTnVtYmVyKSk7CiAgICAgICAgIGlmICghZXJyb3JI
YW5kbGVkKQotICAgICAgICAgICAgY29udGV4dC0+cmVwb3J0RXhjZXB0aW9uKG1fZXJyb3JNZXNz
YWdlLCBtX2xpbmVOdW1iZXIsIG1fc291cmNlVVJMKTsKKyAgICAgICAgICAgIGNvbnRleHQtPnJl
cG9ydEV4Y2VwdGlvbihtX2Vycm9yTWVzc2FnZSwgbV9saW5lTnVtYmVyLCBtX3NvdXJjZVVSTCwg
MCk7CiAgICAgfQogCiAgICAgU3RyaW5nIG1fZXJyb3JNZXNzYWdlOwpAQCAtMjgzLDcgKzI4NCw3
IEBAIHN0YXRpYyB2b2lkIHBvc3RDb25zb2xlTWVzc2FnZVRhc2soU2NyaXB0RXhlY3V0aW9uQ29u
dGV4dCogY29udGV4dCwgV29ya2VyTWVzc2FnCiB7CiAgICAgaWYgKG1lc3NhZ2luZ1Byb3h5LT5h
c2tlZFRvVGVybWluYXRlKCkpCiAgICAgICAgIHJldHVybjsKLSAgICBjb250ZXh0LT5hZGRNZXNz
YWdlKHNvdXJjZSwgdHlwZSwgbGV2ZWwsIG1lc3NhZ2UsIGxpbmVOdW1iZXIsIHNvdXJjZVVSTCk7
CisgICAgY29udGV4dC0+YWRkTWVzc2FnZShzb3VyY2UsIHR5cGUsIGxldmVsLCBtZXNzYWdlLCBs
aW5lTnVtYmVyLCBzb3VyY2VVUkwsIDApOwogfQogCiB2b2lkIFdvcmtlck1lc3NhZ2luZ1Byb3h5
Ojpwb3N0Q29uc29sZU1lc3NhZ2VUb1dvcmtlck9iamVjdChNZXNzYWdlU291cmNlIHNvdXJjZSwg
TWVzc2FnZVR5cGUgdHlwZSwgTWVzc2FnZUxldmVsIGxldmVsLCBjb25zdCBTdHJpbmcmIG1lc3Nh
Z2UsIGludCBsaW5lTnVtYmVyLCBjb25zdCBTdHJpbmcmIHNvdXJjZVVSTCkKZGlmZiAtLWdpdCBh
L1dlYkNvcmUveG1sL1hNTEh0dHBSZXF1ZXN0LmNwcCBiL1dlYkNvcmUveG1sL1hNTEh0dHBSZXF1
ZXN0LmNwcAppbmRleCBmYzdlYjllLi5mNWIyZDhkIDEwMDY0NAotLS0gYS9XZWJDb3JlL3htbC9Y
TUxIdHRwUmVxdWVzdC5jcHAKKysrIGIvV2ViQ29yZS94bWwvWE1MSHR0cFJlcXVlc3QuY3BwCkBA
IC0zOSw2ICszOSw3IEBACiAjaW5jbHVkZSAiSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uLmgiCiAj
aW5jbHVkZSAiUmVzb3VyY2VFcnJvci5oIgogI2luY2x1ZGUgIlJlc291cmNlUmVxdWVzdC5oIgor
I2luY2x1ZGUgIlNjcmlwdENhbGxTdGFjay5oIgogI2luY2x1ZGUgIlNlY3VyaXR5T3JpZ2luLmgi
CiAjaW5jbHVkZSAiU2V0dGluZ3MuaCIKICNpbmNsdWRlICJTaGFyZWRCdWZmZXIuaCIKQEAgLTgx
MSw3ICs4MTIsNyBAQCBzdGF0aWMgdm9pZCByZXBvcnRVbnNhZmVVc2FnZShTY3JpcHRFeGVjdXRp
b25Db250ZXh0KiBjb250ZXh0LCBjb25zdCBTdHJpbmcmIG1lcwogICAgICAgICByZXR1cm47CiAg
ICAgLy8gRklYTUU6IEl0J3Mgbm90IGdvb2QgdG8gcmVwb3J0IHRoZSBiYWQgdXNhZ2Ugd2l0aG91
dCBpbmRpY2F0aW5nIHdoYXQgc291cmNlIGxpbmUgaXQgY2FtZSBmcm9tLgogICAgIC8vIFdlIHNo
b3VsZCBwYXNzIGFkZGl0aW9uYWwgcGFyYW1ldGVycyBzbyB3ZSBjYW4gdGVsbCB0aGUgY29uc29s
ZSB3aGVyZSB0aGUgbWlzdGFrZSBvY2N1cnJlZC4KLSAgICBjb250ZXh0LT5hZGRNZXNzYWdlKEpT
TWVzc2FnZVNvdXJjZSwgTG9nTWVzc2FnZVR5cGUsIEVycm9yTWVzc2FnZUxldmVsLCBtZXNzYWdl
LCAxLCBTdHJpbmcoKSk7CisgICAgY29udGV4dC0+YWRkTWVzc2FnZShKU01lc3NhZ2VTb3VyY2Us
IExvZ01lc3NhZ2VUeXBlLCBFcnJvck1lc3NhZ2VMZXZlbCwgbWVzc2FnZSwgMSwgU3RyaW5nKCks
IDApOwogfQogCiB2b2lkIFhNTEh0dHBSZXF1ZXN0OjpzZXRSZXF1ZXN0SGVhZGVyKGNvbnN0IEF0
b21pY1N0cmluZyYgbmFtZSwgY29uc3QgU3RyaW5nJiB2YWx1ZSwgRXhjZXB0aW9uQ29kZSYgZWMp
CmRpZmYgLS1naXQgYS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nIGIvV2ViS2l0L2Nocm9taXVt
L0NoYW5nZUxvZwppbmRleCBmMGU1Nzg0Li4xMDRiY2EyIDEwMDY0NAotLS0gYS9XZWJLaXQvY2hy
b21pdW0vQ2hhbmdlTG9nCisrKyBiL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKQEAgLTEsMyAr
MSwxNyBAQAorMjAxMC0xMi0yNyAgWXVyeSBTZW1pa2hhdHNreSAgPHl1cnlzQGNocm9taXVtLm9y
Zz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBmaXgK
KworICAgICAgICBOZWVkIGEgc2hvcnQgZGVzY3JpcHRpb24gYW5kIGJ1ZyBVUkwgKE9PUFMhKQor
CisgICAgICAgICogc3JjL1dlYldvcmtlckNsaWVudEltcGwuY3BwOgorICAgICAgICAoV2ViS2l0
OjpXZWJXb3JrZXJDbGllbnRJbXBsOjpwb3N0RXhjZXB0aW9uVG9Xb3JrZXJPYmplY3QpOgorICAg
ICAgICAoV2ViS2l0OjpXZWJXb3JrZXJDbGllbnRJbXBsOjpwb3N0Q29uc29sZU1lc3NhZ2VUb1dv
cmtlck9iamVjdCk6CisgICAgICAgIChXZWJLaXQ6OldlYldvcmtlckNsaWVudEltcGw6OnBvc3RF
eGNlcHRpb25Ub1dvcmtlck9iamVjdFRhc2spOgorICAgICAgICAoV2ViS2l0OjpXZWJXb3JrZXJD
bGllbnRJbXBsOjpwb3N0Q29uc29sZU1lc3NhZ2VUb1dvcmtlck9iamVjdFRhc2spOgorCiAyMDEw
LTEyLTIzICBTaGVyaWZmIEJvdCAgPHdlYmtpdC5yZXZpZXcuYm90QGdtYWlsLmNvbT4KIAogICAg
ICAgICBVbnJldmlld2VkLCByb2xsaW5nIG91dCByNzQ1NjEuCkBAIC0zMjUsMTkgKzMzOSw2IEBA
CiAgICAgICAgIChXZWJLaXQ6OldlYlZpZXdJbXBsOjphcHBseUF1dG9GaWxsU3VnZ2VzdGlvbnMp
OgogICAgICAgICAqIHNyYy9XZWJWaWV3SW1wbC5oOgogCi0yMDEwLTEyLTEzICBZdXJ5IFNlbWlr
aGF0c2t5ICA8eXVyeXNAY2hyb21pdW0ub3JnPgotCi0gICAgICAgIFVucmV2aWV3ZWQuIFJvbGxv
dXQgNzM5MTQsIDczOTE1LCA3MzkxNywgNzM5MjAgYW5kIDczOTIxLgotCi0gICAgICAgIFJFR1JF
U1NJT04ocjczOTE0KTogIkNocm9taXVtIHBhZ2VfY3ljbGVyX21vcmVqcyBmYWlscyIgKFJlcXVl
c3RlZCBieSB5dXJ5cyBvbiAjd2Via2l0KS4KLSAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTUwOTUwCi0KLSAgICAgICAgKiBzcmMvV2ViV29ya2VyQ2xpZW50
SW1wbC5jcHA6Ci0gICAgICAgIChXZWJLaXQ6OldlYldvcmtlckNsaWVudEltcGw6OnBvc3RFeGNl
cHRpb25Ub1dvcmtlck9iamVjdCk6Ci0gICAgICAgIChXZWJLaXQ6OldlYldvcmtlckNsaWVudElt
cGw6OnBvc3RDb25zb2xlTWVzc2FnZVRvV29ya2VyT2JqZWN0KToKLSAgICAgICAgKFdlYktpdDo6
V2ViV29ya2VyQ2xpZW50SW1wbDo6cG9zdEV4Y2VwdGlvblRvV29ya2VyT2JqZWN0VGFzayk6Ci0g
ICAgICAgIChXZWJLaXQ6OldlYldvcmtlckNsaWVudEltcGw6OnBvc3RDb25zb2xlTWVzc2FnZVRv
V29ya2VyT2JqZWN0VGFzayk6Ci0KIDIwMTAtMTItMTMgIElseWEgVGlraG9ub3Zza3kgIDxsb2lz
bG9AY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5IFl1cnkgU2VtaWtoYXRza3ku
CmRpZmYgLS1naXQgYS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYldvcmtlckNsaWVudEltcGwuY3Bw
IGIvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJXb3JrZXJDbGllbnRJbXBsLmNwcAppbmRleCAxODI4
MmUzLi5mOTBlN2U4IDEwMDY0NAotLS0gYS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYldvcmtlckNs
aWVudEltcGwuY3BwCisrKyBiL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViV29ya2VyQ2xpZW50SW1w
bC5jcHAKQEAgLTQxLDYgKzQxLDcgQEAKICNpbmNsdWRlICJNZXNzYWdlRXZlbnQuaCIKICNpbmNs
dWRlICJNZXNzYWdlUG9ydC5oIgogI2luY2x1ZGUgIk1lc3NhZ2VQb3J0Q2hhbm5lbC5oIgorI2lu
Y2x1ZGUgIlNjcmlwdENhbGxTdGFjay5oIgogI2luY2x1ZGUgIlNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHQuaCIKICNpbmNsdWRlICJXb3JrZXIuaCIKICNpbmNsdWRlICJXb3JrZXJDb250ZXh0LmgiCkBA
IC0yNDcsNyArMjQ4LDcgQEAgdm9pZCBXZWJXb3JrZXJDbGllbnRJbXBsOjpwb3N0RXhjZXB0aW9u
VG9Xb3JrZXJPYmplY3QoY29uc3QgV2ViU3RyaW5nJiBlcnJvck1lc3MKICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzb3VyY2VV
UkwsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgbGluZU51bWJlcikpOwogICAgIGlmICh1bmhhbmRsZWQpCi0gICAgICAgIG1f
c2NyaXB0RXhlY3V0aW9uQ29udGV4dC0+cmVwb3J0RXhjZXB0aW9uKGVycm9yTWVzc2FnZSwgbGlu
ZU51bWJlciwgc291cmNlVVJMKTsKKyAgICAgICAgbV9zY3JpcHRFeGVjdXRpb25Db250ZXh0LT5y
ZXBvcnRFeGNlcHRpb24oZXJyb3JNZXNzYWdlLCBsaW5lTnVtYmVyLCBzb3VyY2VVUkwsIDApOwog
fQogCiB2b2lkIFdlYldvcmtlckNsaWVudEltcGw6OnBvc3RDb25zb2xlTWVzc2FnZVRvV29ya2Vy
T2JqZWN0KGludCBkZXN0aW5hdGlvbiwKQEAgLTI3NCw3ICsyNzUsNyBAQCB2b2lkIFdlYldvcmtl
ckNsaWVudEltcGw6OnBvc3RDb25zb2xlTWVzc2FnZVRvV29ya2VyT2JqZWN0KGludCBkZXN0aW5h
dGlvbiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhdGljX2Nh
c3Q8TWVzc2FnZVR5cGU+KG1lc3NhZ2VUeXBlKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgc3RhdGljX2Nhc3Q8TWVzc2FnZUxldmVsPihtZXNzYWdlTGV2ZWwpLAog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTdHJpbmcobWVzc2FnZSks
IGxpbmVOdW1iZXIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN0
cmluZyhzb3VyY2VVUkwpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgU3RyaW5nKHNvdXJjZVVSTCksIDApOwogfQogCiB2b2lkIFdlYldvcmtlckNsaWVudEltcGw6
OnBvc3RDb25zb2xlTWVzc2FnZVRvV29ya2VyT2JqZWN0KGludCBzb3VyY2VJZCwKQEAgLTM4MSw5
ICszODIsNyBAQCB2b2lkIFdlYldvcmtlckNsaWVudEltcGw6OnBvc3RFeGNlcHRpb25Ub1dvcmtl
ck9iamVjdFRhc2soCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgc291cmNlVVJMLAogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpbmVO
dW1iZXIpKTsKICAgICBpZiAoIWhhbmRsZWQpCi0gICAgICAgIHRoaXNQdHItPm1fc2NyaXB0RXhl
Y3V0aW9uQ29udGV4dC0+cmVwb3J0RXhjZXB0aW9uKGVycm9yTWVzc2FnZSwKLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGluZU51bWJl
ciwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgc291cmNlVVJMKTsKKyAgICAgICAgdGhpc1B0ci0+bV9zY3JpcHRFeGVjdXRpb25Db250
ZXh0LT5yZXBvcnRFeGNlcHRpb24oZXJyb3JNZXNzYWdlLCBsaW5lTnVtYmVyLCBzb3VyY2VVUkws
IDApOwogfQogCiB2b2lkIFdlYldvcmtlckNsaWVudEltcGw6OnBvc3RDb25zb2xlTWVzc2FnZVRv
V29ya2VyT2JqZWN0VGFzayhTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0LApAQCAtMzk4
LDggKzM5Nyw3IEBAIHZvaWQgV2ViV29ya2VyQ2xpZW50SW1wbDo6cG9zdENvbnNvbGVNZXNzYWdl
VG9Xb3JrZXJPYmplY3RUYXNrKFNjcmlwdEV4ZWN1dGlvbkNvCiAgICAgdGhpc1B0ci0+bV9zY3Jp
cHRFeGVjdXRpb25Db250ZXh0LT5hZGRNZXNzYWdlKHN0YXRpY19jYXN0PE1lc3NhZ2VTb3VyY2U+
KHNvdXJjZUlkKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgc3RhdGljX2Nhc3Q8TWVzc2FnZVR5cGU+KG1lc3NhZ2VUeXBlKSwKICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhdGljX2Nhc3Q8TWVzc2Fn
ZUxldmVsPihtZXNzYWdlTGV2ZWwpLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBtZXNzYWdlLCBsaW5lTnVtYmVyLAotICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzb3VyY2VVUkwpOworICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtZXNzYWdlLCBsaW5lTnVtYmVy
LCBzb3VyY2VVUkwsIDApOwogfQogCiB2b2lkIFdlYldvcmtlckNsaWVudEltcGw6OmNvbmZpcm1N
ZXNzYWdlRnJvbVdvcmtlck9iamVjdFRhc2soU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4
dCwK
</data>
<flag name="commit-queue"
          id="68634"
          type_id="3"
          status="-"
          setter="yurys"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>77504</attachid>
            <date>2010-12-27 07:09:31 -0800</date>
            <delta_ts>2011-01-19 06:42:08 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>window-onerror.patch</filename>
            <type>text/plain</type>
            <size>138906</size>
            <attacher name="Yury Semikhatsky">yurys</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCA1YTAwZmQ1Li41ZTkyOWM2IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNjUgQEAKKzIwMTAtMTIt
MjcgIFl1cnkgU2VtaWtoYXRza3kgIDx5dXJ5c0BjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgV2ViQ29yZSBkb2Vzbid0IGZpcmUg
d2luZG93Lm9uZXJyb3IgZXZlbnQgd2hlbiB1bmNhdWdodCBKYXZhU2NyaXB0IGV4Y2VwdGlvbnMg
YXJlIHRocm93bgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9ODUxOQorCisgICAgICAgIFVuY2F1Z2h0IGV4Y2VwdGlvbnMgYXJlIHByb3BhZ2F0ZWQgdG8g
d2luZG93Lm9uZXJyb3IgaGFuZGVyIGlmIG9uZSBpcyBwcmVzZW50LgorICAgICAgICBUaGUgaGFu
ZGxlciBpcyBleHBlY3RlZCB0byBiZSBhIGZ1bmN0aW9uIGFjY2VwdGluZyB0aHJlZSBhcmd1bWVu
dHM6IGVycm9yIG1lc3NhZ2UsCisgICAgICAgIHJlc291cmNlIHVybCBhbmQgbGluZSBudW1iZXIg
d2hlcmUgdGhlIGV4Y2VwdGlvbiBvY2N1cmVkLgorCisgICAgICAgICogZmFzdC9ldmVudHMvcmVz
b3VyY2VzL3dpbmRvdy1vbmVycm9yLmpzOiBBZGRlZC4KKyAgICAgICAgKHRocm93RXhjZXB0aW9u
KToKKyAgICAgICAgKiBmYXN0L2V2ZW50cy93aW5kb3ctb25lcnJvcjEtZXhwZWN0ZWQudHh0OiBB
ZGRlZC4KKyAgICAgICAgKiBmYXN0L2V2ZW50cy93aW5kb3ctb25lcnJvcjEuaHRtbDogQWRkZWQu
CisgICAgICAgICogZmFzdC9ldmVudHMvd2luZG93LW9uZXJyb3IxMC1leHBlY3RlZC50eHQ6IEFk
ZGVkLgorICAgICAgICAqIGZhc3QvZXZlbnRzL3dpbmRvdy1vbmVycm9yMTAuaHRtbDogQWRkZWQu
CisgICAgICAgICogZmFzdC9ldmVudHMvd2luZG93LW9uZXJyb3IxMS1leHBlY3RlZC50eHQ6IEFk
ZGVkLgorICAgICAgICAqIGZhc3QvZXZlbnRzL3dpbmRvdy1vbmVycm9yMTEuaHRtbDogQWRkZWQu
CisgICAgICAgICogZmFzdC9ldmVudHMvd2luZG93LW9uZXJyb3IxMi1leHBlY3RlZC50eHQ6IEFk
ZGVkLgorICAgICAgICAqIGZhc3QvZXZlbnRzL3dpbmRvdy1vbmVycm9yMTIuaHRtbDogQWRkZWQu
CisgICAgICAgICogZmFzdC9ldmVudHMvd2luZG93LW9uZXJyb3IyLWV4cGVjdGVkLnR4dDogQWRk
ZWQuCisgICAgICAgICogZmFzdC9ldmVudHMvd2luZG93LW9uZXJyb3IyLmh0bWw6IEFkZGVkLgor
ICAgICAgICAqIGZhc3QvZXZlbnRzL3dpbmRvdy1vbmVycm9yMy1leHBlY3RlZC50eHQ6IEFkZGVk
LgorICAgICAgICAqIGZhc3QvZXZlbnRzL3dpbmRvdy1vbmVycm9yMy5odG1sOiBBZGRlZC4KKyAg
ICAgICAgKiBmYXN0L2V2ZW50cy93aW5kb3ctb25lcnJvcjQtZXhwZWN0ZWQudHh0OiBBZGRlZC4K
KyAgICAgICAgKiBmYXN0L2V2ZW50cy93aW5kb3ctb25lcnJvcjQuaHRtbDogQWRkZWQuCisgICAg
ICAgICogZmFzdC9ldmVudHMvd2luZG93LW9uZXJyb3I1LWV4cGVjdGVkLnR4dDogQWRkZWQuCisg
ICAgICAgICogZmFzdC9ldmVudHMvd2luZG93LW9uZXJyb3I1Lmh0bWw6IEFkZGVkLgorICAgICAg
ICAqIGZhc3QvZXZlbnRzL3dpbmRvdy1vbmVycm9yNi1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAg
ICAgICAqIGZhc3QvZXZlbnRzL3dpbmRvdy1vbmVycm9yNi5odG1sOiBBZGRlZC4KKyAgICAgICAg
KiBmYXN0L2V2ZW50cy93aW5kb3ctb25lcnJvcjctZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAg
ICAgKiBmYXN0L2V2ZW50cy93aW5kb3ctb25lcnJvcjcuaHRtbDogQWRkZWQuCisgICAgICAgICog
ZmFzdC9ldmVudHMvd2luZG93LW9uZXJyb3I4LWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAg
ICogZmFzdC9ldmVudHMvd2luZG93LW9uZXJyb3I4Lmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZh
c3QvZXZlbnRzL3dpbmRvdy1vbmVycm9yOS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAq
IGZhc3QvZXZlbnRzL3dpbmRvdy1vbmVycm9yOS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0
L3dvcmtlcnMvd29ya2VyLXNjcmlwdC1lcnJvci1leHBlY3RlZC50eHQ6CisgICAgICAgICogaHR0
cC90ZXN0cy9zZWN1cml0eS9yZXNvdXJjZXMvb25lcnJvci1pZnJhbWUuaHRtbDogQWRkZWQuCisg
ICAgICAgICogaHR0cC90ZXN0cy9zZWN1cml0eS93aW5kb3ctb25lcnJvci1leGNlcHRpb24taW4t
aWZyYW1lLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9zZWN1cml0
eS93aW5kb3ctb25lcnJvci1leGNlcHRpb24taW4taWZyYW1lLmh0bWw6IEFkZGVkLgorICAgICAg
ICAqIHBsYXRmb3JtL2Nocm9taXVtLXdpbi9mYXN0L3dvcmtlcnMvd29ya2VyLXNjcmlwdC1lcnJv
ci1leHBlY3RlZC50eHQ6CisgICAgICAgICogcGxhdGZvcm0vY2hyb21pdW0vZmFzdC9ldmVudHMv
d2luZG93LW9uZXJyb3IxLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogcGxhdGZvcm0v
Y2hyb21pdW0vZmFzdC9ldmVudHMvd2luZG93LW9uZXJyb3IxMC1leHBlY3RlZC50eHQ6IEFkZGVk
LgorICAgICAgICAqIHBsYXRmb3JtL2Nocm9taXVtL2Zhc3QvZXZlbnRzL3dpbmRvdy1vbmVycm9y
MTEtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS9mYXN0
L2V2ZW50cy93aW5kb3ctb25lcnJvcjItZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBw
bGF0Zm9ybS9jaHJvbWl1bS9mYXN0L2V2ZW50cy93aW5kb3ctb25lcnJvcjMtZXhwZWN0ZWQudHh0
OiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS9mYXN0L2V2ZW50cy93aW5kb3ct
b25lcnJvcjQtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1
bS9mYXN0L2V2ZW50cy93aW5kb3ctb25lcnJvcjUtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAg
ICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS9mYXN0L2V2ZW50cy93aW5kb3ctb25lcnJvcjYtZXhwZWN0
ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS9mYXN0L2V2ZW50cy93
aW5kb3ctb25lcnJvcjctZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9j
aHJvbWl1bS9mYXN0L2V2ZW50cy93aW5kb3ctb25lcnJvcjgtZXhwZWN0ZWQudHh0OiBBZGRlZC4K
KyAgICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS9mYXN0L2V2ZW50cy93aW5kb3ctb25lcnJvcjkt
ZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS9odHRwL3Rl
c3RzL3NlY3VyaXR5L3dpbmRvdy1vbmVycm9yLWV4Y2VwdGlvbi1pbi1pZnJhbWUtZXhwZWN0ZWQu
dHh0OiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS91c2Vyc2NyaXB0cy93aW5k
b3ctb25lcnJvci1mb3ItaXNvbGF0ZWQtd29ybGQtMS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAg
ICAgICAqIHBsYXRmb3JtL2Nocm9taXVtL3VzZXJzY3JpcHRzL3dpbmRvdy1vbmVycm9yLWZvci1p
c29sYXRlZC13b3JsZC0yLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogcGxhdGZvcm0v
Z3RrL1NraXBwZWQ6CisgICAgICAgICogdXNlcnNjcmlwdHMvd2luZG93LW9uZXJyb3ItZm9yLWlz
b2xhdGVkLXdvcmxkLTEtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiB1c2Vyc2NyaXB0
cy93aW5kb3ctb25lcnJvci1mb3ItaXNvbGF0ZWQtd29ybGQtMS5odG1sOiBBZGRlZC4KKyAgICAg
ICAgKiB1c2Vyc2NyaXB0cy93aW5kb3ctb25lcnJvci1mb3ItaXNvbGF0ZWQtd29ybGQtMi1leHBl
Y3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIHVzZXJzY3JpcHRzL3dpbmRvdy1vbmVycm9yLWZv
ci1pc29sYXRlZC13b3JsZC0yLmh0bWw6IEFkZGVkLgorCiAyMDEwLTEyLTI3ICBNT1JJVEEgSGFq
aW1lICA8bW9ycml0YUBnb29nbGUuY29tPgogCiAgICAgICAgIFVucmV2aWV3ZWQgZXhwZWN0YXRp
b24gdXBkYXRlcy4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3Jlc291cmNl
cy93aW5kb3ctb25lcnJvci5qcyBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3Jlc291cmNlcy93
aW5kb3ctb25lcnJvci5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zNDQ1
NzRiCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvcmVzb3VyY2Vz
L3dpbmRvdy1vbmVycm9yLmpzCkBAIC0wLDAgKzEsMyBAQAorZnVuY3Rpb24gdGhyb3dFeGNlcHRp
b24oKSB7CisgICAgdGhyb3cgbmV3IEVycm9yKCJBbiBleGNlcHRpb24iKTsKK30KZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3dpbmRvdy1vbmVycm9yMS1leHBlY3RlZC50eHQg
Yi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy93aW5kb3ctb25lcnJvcjEtZXhwZWN0ZWQudHh0Cm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmZlNTFiNzIKLS0tIC9kZXYvbnVsbAor
KysgYi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy93aW5kb3ctb25lcnJvcjEtZXhwZWN0ZWQudHh0
CkBAIC0wLDAgKzEsMyBAQAorVGhpcyBwYWdlIHRlc3RzIHNldHRpbmcgb25lcnJvciBoYW5kbGVy
cyB0aHJvdWdoIHRoZSBET00uIElmIGl0IHBhc3NlcywgeW91IHdpbGwgc2VlICJQQVNTIiBtZXNz
YWdlcyBiZWxvdy5CdWcgODUxOS4KKworUEFTUzogY2F1Z2h0IGdsb2JhbCBlcnJvcjogUmVmZXJl
bmNlRXJyb3I6IENhbid0IGZpbmQgdmFyaWFibGU6IGhhaGFoYV9nb29kX2x1Y2tfZmluZGluZ19t
ZSBhdCB3aW5kb3ctb25lcnJvcjEuaHRtbDoyNQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFz
dC9ldmVudHMvd2luZG93LW9uZXJyb3IxLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy93
aW5kb3ctb25lcnJvcjEuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41
OWQyNDk1Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvd2luZG93
LW9uZXJyb3IxLmh0bWwKQEAgLTAsMCArMSwzNSBAQAorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQ+
CitpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQorICAgIGxheW91dFRlc3RDb250cm9s
bGVyLmR1bXBBc1RleHQoKTsKKworZnVuY3Rpb24gcHJpbnQobWVzc2FnZSwgY29sb3IpCit7Cisg
ICAgdmFyIHBhcmFncmFwaCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpOworICAgIHBh
cmFncmFwaC5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZShtZXNzYWdlKSk7Cisg
ICAgcGFyYWdyYXBoLnN0eWxlLmZvbnRGYW1pbHkgPSAibW9ub3NwYWNlIjsKKyAgICBpZiAoY29s
b3IpCisgICAgICAgIHBhcmFncmFwaC5zdHlsZS5jb2xvciA9IGNvbG9yOworICAgIGRvY3VtZW50
LmdldEVsZW1lbnRCeUlkKCJjb25zb2xlIikuYXBwZW5kQ2hpbGQocGFyYWdyYXBoKTsKK30KKwor
ZnVuY3Rpb24gdGVzdCgpCit7CisgICAgLy8gbXVzdCBiZSBsYXN0IGJlY2F1c2UgdGhlIGV4Y2Vw
dGlvbiBlbmRzIEphdmFTY3JpcHQgZXhlY3V0aW9uCisgICAgd2luZG93Lm9uZXJyb3IgPSBmdW5j
dGlvbiAoZXJyb3IsIHVybCwgbGluZSkgeworICAgICAgICB1cmwgPSB1cmwgPyB1cmwubWF0Y2go
IC9bXlwvXStcLz8kLyApWzBdIDogdXJsOworICAgICAgICBwcmludCgiUEFTUzogY2F1Z2h0IGds
b2JhbCBlcnJvcjogIiArIGVycm9yICsgIiBhdCAiICsgdXJsICsgIjoiICsgbGluZSwgImdyZWVu
Iik7CisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9OworICAgIGhhaGFoYV9nb29kX2x1Y2tf
ZmluZGluZ19tZSgpOyAvLyBjYXVnaHQgYnkgd2luZG93Lm9uZXJyb3IKK30KKzwvc2NyaXB0Pgor
PC9oZWFkPgorPGJvZHkgb25sb2FkPSJ0ZXN0KCk7Ij4KKzxwPlRoaXMgcGFnZSB0ZXN0cyBzZXR0
aW5nIG9uZXJyb3IgaGFuZGxlcnMgdGhyb3VnaCB0aGUgRE9NLiBJZiBpdCBwYXNzZXMsIHlvdSB3
aWxsCisgICBzZWUgIlBBU1MiIG1lc3NhZ2VzIGJlbG93LjxhIGhyZWY9Imh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04NTE5Ij5CdWcgODUxOTwvYT4uPC9wPgorPGhyPgor
PGRpdiBpZD0nY29uc29sZSc+PC9kaXY+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9mYXN0L2V2ZW50cy93aW5kb3ctb25lcnJvcjEwLWV4cGVjdGVkLnR4dCBiL0xh
eW91dFRlc3RzL2Zhc3QvZXZlbnRzL3dpbmRvdy1vbmVycm9yMTAtZXhwZWN0ZWQudHh0Cm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmJmZjU2MzYKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy93aW5kb3ctb25lcnJvcjEwLWV4cGVjdGVkLnR4dApA
QCAtMCwwICsxLDExIEBACitUZXN0IHRoYXQgImVycm9yIiBldmVudCBsaXN0ZW5lciBhZGRlZCB3
aXRoIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyIGlzIGludm9rZWQgZm9yIHVuY2F1Y2h0IGV4Y2Vw
dGlvbnMuIEJ1ZyA4NTE5LgorCitldmVudCBwYXNzZWQgdG8gdGhlIGxpc3RlbmVyIGlzIHRoZSBz
YW1lIGFzIHdpbmRvdy5ldmVudDogdHJ1ZQorRXZlbnQgZGV0YWlsczoKK3R5cGU6IGVycm9yCitw
aGFzZTogMgorY3VycmVudFRhcmdldCBpcyB0aGUgZ2xvYmFsIG9iamVjdDogdHJ1ZQorbWVzc2Fn
ZTogRXJyb3I6IE15IGZhdWx0LgorZmlsZW5hbWU6IHdpbmRvdy1vbmVycm9yMTAuaHRtbAorbGlu
ZW5vOiAyOQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy93aW5kb3ctb25l
cnJvcjEwLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy93aW5kb3ctb25lcnJvcjEwLmh0
bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMjZlZDAxOAotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3dpbmRvdy1vbmVycm9yMTAuaHRtbApA
QCAtMCwwICsxLDMzIEBACis8aHRtbD4KKzxib2R5PgorPHA+VGVzdCB0aGF0ICJlcnJvciIgZXZl
bnQgbGlzdGVuZXIgYWRkZWQgd2l0aCB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lciBpcyBpbnZva2Vk
IGZvciB1bmNhdWNodCBleGNlcHRpb25zLiA8YSBocmVmPSJodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9ODUxOSI+QnVnIDg1MTk8L2E+LjwvcD4KKzxkaXYgaWQ9ImNvbnNv
bGUiPjwvZGl2PgorPHNjcmlwdD4KK2lmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCisg
ICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOworCitmdW5jdGlvbiBsb2cobXNn
KSB7CisgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNvbnNvbGUiKS5pbm5lckhUTUwgKz0g
bXNnICsgIjxicj4iOworfQorCitmdW5jdGlvbiBsYXN0UGF0aENvbXBvbmVudCh1cmwpIHsKKyAg
ICByZXR1cm4gdXJsID8gdXJsLm1hdGNoKCAvW15cL10rXC8/JC8gKVswXSA6IHVybDsKK30KKwor
d2luZG93LmFkZEV2ZW50TGlzdGVuZXIoImVycm9yIiwgZnVuY3Rpb24oZSkgeworICAgIGxvZygi
ZXZlbnQgcGFzc2VkIHRvIHRoZSBsaXN0ZW5lciBpcyB0aGUgc2FtZSBhcyB3aW5kb3cuZXZlbnQ6
ICIgKyAod2luZG93LmV2ZW50ID09PSBlKSk7CisgICAgbG9nKCJFdmVudCBkZXRhaWxzOiIpOwor
ICAgIGxvZygidHlwZTogIiArIGUudHlwZSk7CisgICAgbG9nKCJwaGFzZTogIiArIGUuZXZlbnRQ
aGFzZSkKKyAgICBsb2coImN1cnJlbnRUYXJnZXQgaXMgdGhlIGdsb2JhbCBvYmplY3Q6ICIgKyAo
ZS5jdXJyZW50VGFyZ2V0ID09PSB3aW5kb3cpKTsKKyAgICBsb2coIm1lc3NhZ2U6ICIgKyBlLm1l
c3NhZ2UpOworICAgIGxvZygiZmlsZW5hbWU6ICIgKyBsYXN0UGF0aENvbXBvbmVudChlLmZpbGVu
YW1lKSk7CisgICAgbG9nKCJsaW5lbm86ICIgKyBlLmxpbmVubyk7CisgICAgZS5wcmV2ZW50RGVm
YXVsdCgpOworfSwgZmFsc2UpOworCit0aHJvdyBuZXcgRXJyb3IoIk15IGZhdWx0LiIpOworCis8
L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3Qv
ZXZlbnRzL3dpbmRvdy1vbmVycm9yMTEtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9l
dmVudHMvd2luZG93LW9uZXJyb3IxMS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMC4uOTZlMjBjYwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zh
c3QvZXZlbnRzL3dpbmRvdy1vbmVycm9yMTEtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNCBAQAor
VGVzdCB0aGF0IHdpbmRvdy5vbmVycm9yIGlzIGNhbGxlZCBvbiB3aW5kb3cgb2JqZWN0LiBCdWcg
ODUxOS4KKworTWFpbiBmcmFtZSB3aW5kb3cub25lcnJvcjogRXJyb3I6IEFuIGV4Y2VwdGlvbiBh
dCB3aW5kb3ctb25lcnJvci5qczoyCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZXZl
bnRzL3dpbmRvdy1vbmVycm9yMTEuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3dpbmRv
dy1vbmVycm9yMTEuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43NjU1
ZmE3Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvd2luZG93LW9u
ZXJyb3IxMS5odG1sCkBAIC0wLDAgKzEsMjggQEAKKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNy
Yz0icmVzb3VyY2VzL3dpbmRvdy1vbmVycm9yLmpzIj4KKzwvc2NyaXB0PgorPC9oZWFkPgorPGJv
ZHk+Cis8cD5UZXN0IHRoYXQgd2luZG93Lm9uZXJyb3IgaXMgY2FsbGVkIG9uIHdpbmRvdyBvYmpl
Y3QuIDxhIGhyZWY9Imh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04NTE5
Ij5CdWcgODUxOTwvYT4uPC9wPgorPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+Cis8c2NyaXB0Pgor
aWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKKyAgICBsYXlvdXRUZXN0Q29udHJvbGxl
ci5kdW1wQXNUZXh0KCk7CisKK2Z1bmN0aW9uIGxvZyhtc2cpIHsKKyAgICBkb2N1bWVudC5nZXRF
bGVtZW50QnlJZCgiY29uc29sZSIpLmlubmVySFRNTCArPSBtc2cgKyAiPGJyPiI7Cit9CisKK3dp
bmRvdy5vbmVycm9yID0gZnVuY3Rpb24obXNnLCB1cmwsIGxpbmUpCit7CisgICAgdXJsID0gdXJs
ID8gdXJsLm1hdGNoKCAvW15cL10rXC8/JC8gKVswXSA6IHVybDsKKyAgICBsb2coIk1haW4gZnJh
bWUgd2luZG93Lm9uZXJyb3I6ICIgKyBtc2cgKyAiIGF0ICIgKyB1cmwgKyAiOiIgKyBsaW5lKTsK
KyAgICByZXR1cm4gZmFsc2U7Cit9CisKK3Rocm93RXhjZXB0aW9uKCk7CisKKzwvc2NyaXB0Pgor
PC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvd2lu
ZG93LW9uZXJyb3IxMi1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy93aW5k
b3ctb25lcnJvcjEyLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAw
MDAwLi5lMTZmZTk3Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMv
d2luZG93LW9uZXJyb3IxMi1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw4IEBACitUZXN0IHRoYXQg
d2luZG93Lm9uZXJyb3IgaXMgY2FsbGVkIG9uIHdpbmRvdyBvYmplY3QgZm9yIGV2ZW50cyBjcmVh
dGVkIHVzaW5nIGRvY3VtZW50LmNyZWF0ZUV2ZW50KCJlcnJvciIpLiBCdWcgODUxOS4KKworTWFp
biBmcmFtZSB3aW5kb3cub25lcnJvcjogCittc2c6IFtvYmplY3QgRXZlbnRdCit1cmw6IHVuZGVm
aW5lZAorbGluZTogdW5kZWZpbmVkCitET05FLgorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9m
YXN0L2V2ZW50cy93aW5kb3ctb25lcnJvcjEyLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50
cy93aW5kb3ctb25lcnJvcjEyLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAw
MC4uZGVkZTk3NQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3dp
bmRvdy1vbmVycm9yMTIuaHRtbApAQCAtMCwwICsxLDMzIEBACis8aHRtbD4KKzxoZWFkPgorPHNj
cmlwdCBzcmM9InJlc291cmNlcy93aW5kb3ctb25lcnJvci5qcyI+Cis8L3NjcmlwdD4KKzwvaGVh
ZD4KKzxib2R5PgorPHA+VGVzdCB0aGF0IHdpbmRvdy5vbmVycm9yIGlzIGNhbGxlZCBvbiB3aW5k
b3cgb2JqZWN0IGZvciBldmVudHMgY3JlYXRlZCB1c2luZyBkb2N1bWVudC5jcmVhdGVFdmVudCgi
ZXJyb3IiKS4gPGEgaHJlZj0iaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTg1MTkiPkJ1ZyA4NTE5PC9hPi48L3A+Cis8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KKzxzY3Jp
cHQ+CitpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQorICAgIGxheW91dFRlc3RDb250
cm9sbGVyLmR1bXBBc1RleHQoKTsKKworZnVuY3Rpb24gbG9nKG1zZykgeworICAgIGRvY3VtZW50
LmdldEVsZW1lbnRCeUlkKCJjb25zb2xlIikuaW5uZXJIVE1MICs9IG1zZyArICI8YnI+IjsKK30K
Kword2luZG93Lm9uZXJyb3IgPSBmdW5jdGlvbihtc2csIHVybCwgbGluZSkKK3sKKyAgICBsb2co
Ik1haW4gZnJhbWUgd2luZG93Lm9uZXJyb3I6ICIpOworICAgIGxvZygibXNnOiAiICsgbXNnKTsK
KyAgICBsb2coInVybDogIiArIHVybCk7CisgICAgbG9nKCJsaW5lOiAiICsgbGluZSk7CisgICAg
cmV0dXJuIGZhbHNlOworfQorCit2YXIgZXZ0ID0gZG9jdW1lbnQuY3JlYXRlRXZlbnQoIkV2ZW50
Iik7CitldnQuaW5pdEV2ZW50KCJlcnJvciIsIHRydWUsIHRydWUpOword2luZG93LmRpc3BhdGNo
RXZlbnQoZXZ0KTsKK2xvZygiRE9ORS4iKTsKKworPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy93aW5kb3ctb25lcnJvcjItZXhw
ZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvd2luZG93LW9uZXJyb3IyLWV4cGVj
dGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45M2EyZDNmCi0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvd2luZG93LW9uZXJyb3IyLWV4
cGVjdGVkLnR4dApAQCAtMCwwICsxLDYgQEAKK1Rlc3QgdGhhdCB1bmNhdWdodCBleGNlcHRpb25z
IHdpbGwgYmUgcmVwb3J0ZWQgdG8gdGhlIHdpbmRvdy5vbmVycm9yIGhhbmRsZXIuIEJ1ZyA4NTE5
LgorCitNYWluIGZyYW1lIHdpbmRvdy5vbmVycm9yOiBFcnJvcjogSW5saW5lIHNjcmlwdCBleGNl
cHRpb24gYXQgd2luZG93LW9uZXJyb3IyLmh0bWw6MzUKK01haW4gZnJhbWUgd2luZG93Lm9uZXJy
b3I6IEV4Y2VwdGlvbiBpbiBvbmxvYWQgYXQgdW5kZWZpbmVkOjAKK01haW4gZnJhbWUgd2luZG93
Lm9uZXJyb3I6IEVycm9yOiBFeGNlcHRpb24gaW4gc2V0VGltZW91dCBhdCB3aW5kb3ctb25lcnJv
cjIuaHRtbDoyOQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy93aW5kb3ct
b25lcnJvcjIuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3dpbmRvdy1vbmVycm9yMi5o
dG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmRiOWZiNzUKLS0tIC9kZXYv
bnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy93aW5kb3ctb25lcnJvcjIuaHRtbApA
QCAtMCwwICsxLDQxIEBACis8aHRtbD4KKzxib2R5IG9ubG9hZD0idGhyb3cgJ0V4Y2VwdGlvbiBp
biBvbmxvYWQnOyI+Cis8cD5UZXN0IHRoYXQgdW5jYXVnaHQgZXhjZXB0aW9ucyB3aWxsIGJlIHJl
cG9ydGVkIHRvIHRoZSB3aW5kb3cub25lcnJvciBoYW5kbGVyLiA8YSBocmVmPSJodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODUxOSI+QnVnIDg1MTk8L2E+LjwvcD4KKzxk
aXYgaWQ9InJlc3VsdCI+PC9kaXY+Cis8c2NyaXB0PgoraWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29u
dHJvbGxlcikgeworICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKKyAgICBs
YXlvdXRUZXN0Q29udHJvbGxlci53YWl0VW50aWxEb25lKCk7Cit9CisKK2Z1bmN0aW9uIGxvZyht
c2cpIHsKKyAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicmVzdWx0IikuaW5uZXJIVE1MICs9
IG1zZyArICI8YnI+IjsKK30KKwordmFyIHVuaGFuZGxlZEVycm9yQ291bnQgPSAwOword2luZG93
Lm9uZXJyb3IgPSBmdW5jdGlvbihtc2csIHVybCwgbGluZSkKK3sKKyAgICB1cmwgPSB1cmwgPyB1
cmwubWF0Y2goIC9bXlwvXStcLz8kLyApWzBdIDogdXJsOworICAgIGxvZygiTWFpbiBmcmFtZSB3
aW5kb3cub25lcnJvcjogIiArIG1zZyArICIgYXQgIiArIHVybCArICI6IiArIGxpbmUpOworICAg
IAorICAgIGlmICgrK3VuaGFuZGxlZEVycm9yQ291bnQgPT09IDMgJiYgd2luZG93LmxheW91dFRl
c3RDb250cm9sbGVyKQorICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5ub3RpZnlEb25lKCk7
CisKKyAgICByZXR1cm4gZmFsc2U7Cit9CisKK2Z1bmN0aW9uIGRlbGF5ZWRUaHJvd0V4Y2VwdGlv
bigpCit7CisgICAgdGhyb3cgbmV3IEVycm9yKCJFeGNlcHRpb24gaW4gc2V0VGltZW91dCIpOwor
fQorc2V0VGltZW91dChkZWxheWVkVGhyb3dFeGNlcHRpb24sIDApOworCitmdW5jdGlvbiB0aHJv
d0V4Y2VwdGlvbigpCit7CisgICAgdGhyb3cgbmV3IEVycm9yKCJJbmxpbmUgc2NyaXB0IGV4Y2Vw
dGlvbiIpOworfQordGhyb3dFeGNlcHRpb24oKTsKKworPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0
bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy93aW5kb3ctb25lcnJvcjMt
ZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvd2luZG93LW9uZXJyb3IzLWV4
cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43MDI1ZGJiCi0t
LSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvd2luZG93LW9uZXJyb3Iz
LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDQgQEAKK1lvdSBzaG91bGQgc2VlIGEgbWVzc2FnZSBp
ZiB3aW5kb3cub25lcnJvciBpcyB3b3JraW5nIHByb3Blcmx5IGZvciB0aGlzIHRlc3QuQnVnIDg1
MTkuCisKK0Vycm9yIGNhdWdodCBzdWNjZXNzZnVsbHk6IFJlZmVyZW5jZUVycm9yOiBDYW4ndCBm
aW5kIHZhcmlhYmxlOiB1bmtub3duT2JqZWN0IEZpbGU6IHdpbmRvdy1vbmVycm9yMy5odG1sIExp
bmU6IDE2CisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3dpbmRvdy1vbmVy
cm9yMy5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvd2luZG93LW9uZXJyb3IzLmh0bWwK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZWUyODkzZgotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3dpbmRvdy1vbmVycm9yMy5odG1sCkBAIC0w
LDAgKzEsMjMgQEAKKzxzY3JpcHQ+CitpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQor
ICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKKworZnVuY3Rpb24gbG9nKG1z
ZykgeworICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjb25zb2xlIikuaW5uZXJIVE1MICs9
IG1zZyArICI8YnI+IjsKK30KKworZnVuY3Rpb24gdGVzdDEoKQoreworICAgIHdpbmRvdy5vbmVy
cm9yID0gZnVuY3Rpb24gKGVycm9yLCB1cmwsIGxpbmUpIHsKKyAgICAgICAgdXJsID0gdXJsID8g
dXJsLm1hdGNoKCAvW15cL10rXC8/JC8gKVswXSA6IHVybDsKKyAgICAgICAgbG9nKCJFcnJvciBj
YXVnaHQgc3VjY2Vzc2Z1bGx5OiAiICsgZXJyb3IgKyAiXG5GaWxlOiAiICsgdXJsICsgIlxuTGlu
ZTogIiArIGxpbmUpCisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9OworICAgIHVua25vd25P
YmplY3QudW5rbm93blByb3BlcnR5Kys7Cit9Cis8L3NjcmlwdD4KKzxib2R5IG9ubG9hZD0idGVz
dDEoKTsiPgorPHA+WW91IHNob3VsZCBzZWUgYSBtZXNzYWdlIGlmIHdpbmRvdy5vbmVycm9yIGlz
IHdvcmtpbmcgcHJvcGVybHkgZm9yIHRoaXMgdGVzdC48YSBocmVmPSJodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODUxOSI+QnVnIDg1MTk8L2E+LjwvcD4KKzxocj4KKzxk
aXYgaWQ9J2NvbnNvbGUnPjwvZGl2PgorPC9ib2R5PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
ZmFzdC9ldmVudHMvd2luZG93LW9uZXJyb3I0LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zh
c3QvZXZlbnRzL3dpbmRvdy1vbmVycm9yNC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMC4uMjZhZjhhMQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3Rz
L2Zhc3QvZXZlbnRzL3dpbmRvdy1vbmVycm9yNC1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw0IEBA
CitZb3Ugc2hvdWxkIHNlZSBhIGxvZyByZWNvcmQgaWYgd2luZG93Lm9uZXJyb3IgaXMgd29ya2lu
ZyBwcm9wZXJseSBmb3IgdGhpcyB0ZXN0LkJ1ZyA4NTE5LgorCitFcnJvciBjYXVnaHQgc3VjY2Vz
c2Z1bGx5OiBSZWZlcmVuY2VFcnJvcjogTGVmdCBzaWRlIG9mIGFzc2lnbm1lbnQgaXMgbm90IGEg
cmVmZXJlbmNlLiBGaWxlOiB1bmRlZmluZWQgTGluZTogMQorCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9mYXN0L2V2ZW50cy93aW5kb3ctb25lcnJvcjQuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3Qv
ZXZlbnRzL3dpbmRvdy1vbmVycm9yNC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAuLmM1MTg4N2QKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50
cy93aW5kb3ctb25lcnJvcjQuaHRtbApAQCAtMCwwICsxLDIzIEBACis8c2NyaXB0PgoraWYgKHdp
bmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKKyAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1w
QXNUZXh0KCk7CisKK2Z1bmN0aW9uIGxvZyhtc2cpIHsKKyAgICBkb2N1bWVudC5nZXRFbGVtZW50
QnlJZCgiY29uc29sZSIpLmlubmVySFRNTCArPSBtc2cgKyAiPGJyPiI7Cit9CisKK2Z1bmN0aW9u
IHRlc3QxKCkKK3sKKyAgICB3aW5kb3cub25lcnJvciA9IGZ1bmN0aW9uIChlcnJvciwgdXJsLCBs
aW5lKSB7CisgICAgICAgIHVybCA9IHVybCA/IHVybC5tYXRjaCggL1teXC9dK1wvPyQvIClbMF0g
OiB1cmw7CisgICAgICAgIGxvZygiRXJyb3IgY2F1Z2h0IHN1Y2Nlc3NmdWxseTogIiArIGVycm9y
ICsgIlxuRmlsZTogIiArIHVybCArICJcbkxpbmU6ICIgKyBsaW5lKQorICAgICAgICByZXR1cm4g
ZmFsc2U7CisgICAgfTsKKyAgICBldmFsKCIxPTIiKTsKK30KKzwvc2NyaXB0PgorPGJvZHkgb25s
b2FkPSJ0ZXN0MSgpOyI+Cis8cD5Zb3Ugc2hvdWxkIHNlZSBhIGxvZyByZWNvcmQgaWYgd2luZG93
Lm9uZXJyb3IgaXMgd29ya2luZyBwcm9wZXJseSBmb3IgdGhpcyB0ZXN0LjxhIGhyZWY9Imh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04NTE5Ij5CdWcgODUxOTwvYT4uPC9w
PgorPGhyPgorPGRpdiBpZD0nY29uc29sZSc+PC9kaXY+Cis8L2JvZHk+CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9mYXN0L2V2ZW50cy93aW5kb3ctb25lcnJvcjUtZXhwZWN0ZWQudHh0IGIvTGF5
b3V0VGVzdHMvZmFzdC9ldmVudHMvd2luZG93LW9uZXJyb3I1LWV4cGVjdGVkLnR4dApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zZWM3ZjVlCi0tLSAvZGV2L251bGwKKysrIGIv
TGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvd2luZG93LW9uZXJyb3I1LWV4cGVjdGVkLnR4dApAQCAt
MCwwICsxLDQgQEAKK1Rlc3QgdGhhdCB3aW5kb3cub25lcnJvciBpcyBpbnZva2VkIGZvciBzeW50
YXggZXJyb3IgaW4gZXZhbC4gWW91IHNob3VsZCBzZWUgYSBsb2cgcmVjb3JkIGlmIHdpbmRvdy5v
bmVycm9yIGlzIHdvcmtpbmcgcHJvcGVybHkgZm9yIHRoaXMgdGVzdC5CdWcgODUxOS4KKworRXJy
b3IgY2F1Z2h0IHN1Y2Nlc3NmdWxseTogU3ludGF4RXJyb3I6IFBhcnNlIGVycm9yIEZpbGU6IHVu
ZGVmaW5lZCBMaW5lOiAxCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3dp
bmRvdy1vbmVycm9yNS5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvd2luZG93LW9uZXJy
b3I1Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOTMyZDQzOAotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3dpbmRvdy1vbmVycm9yNS5o
dG1sCkBAIC0wLDAgKzEsMjMgQEAKKzxzY3JpcHQ+CitpZiAod2luZG93LmxheW91dFRlc3RDb250
cm9sbGVyKQorICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKKworZnVuY3Rp
b24gbG9nKG1zZykgeworICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjb25zb2xlIikuaW5u
ZXJIVE1MICs9IG1zZyArICI8YnI+IjsKK30KKworZnVuY3Rpb24gdGVzdDEoKQoreworICAgIHdp
bmRvdy5vbmVycm9yID0gZnVuY3Rpb24gKGVycm9yLCB1cmwsIGxpbmUpIHsKKyAgICAgICAgdXJs
ID0gdXJsID8gdXJsLm1hdGNoKCAvW15cL10rXC8/JC8gKVswXSA6IHVybDsKKyAgICAgICAgbG9n
KCJFcnJvciBjYXVnaHQgc3VjY2Vzc2Z1bGx5OiAiICsgZXJyb3IgKyAiXG5GaWxlOiAiICsgdXJs
ICsgIlxuTGluZTogIiArIGxpbmUpCisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9OworICAg
IGV2YWwoImEoIik7Cit9Cis8L3NjcmlwdD4KKzxib2R5IG9ubG9hZD0idGVzdDEoKTsiPgorPHA+
VGVzdCB0aGF0IHdpbmRvdy5vbmVycm9yIGlzIGludm9rZWQgZm9yIHN5bnRheCBlcnJvciBpbiBl
dmFsLiBZb3Ugc2hvdWxkIHNlZSBhIGxvZyByZWNvcmQgaWYgd2luZG93Lm9uZXJyb3IgaXMgd29y
a2luZyBwcm9wZXJseSBmb3IgdGhpcyB0ZXN0LjxhIGhyZWY9Imh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD04NTE5Ij5CdWcgODUxOTwvYT4uPC9wPgorPGhyPgorPGRpdiBp
ZD0nY29uc29sZSc+PC9kaXY+Cis8L2JvZHk+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0
L2V2ZW50cy93aW5kb3ctb25lcnJvcjYtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9l
dmVudHMvd2luZG93LW9uZXJyb3I2LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwLi5lN2MyN2JiCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFz
dC9ldmVudHMvd2luZG93LW9uZXJyb3I2LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDQgQEAKK1Rl
c3QgdGhhdCBzeW50YXggZXJyb3Igd2lsbCBiZSByZXBvcnRlZCB0byB0aGUgd2luZG93Lm9uZXJy
b3IgaGFuZGxlci4gQnVnIDg1MTkuCisKK01haW4gZnJhbWUgd2luZG93Lm9uZXJyb3I6IFN5bnRh
eEVycm9yOiBQYXJzZSBlcnJvciBhdCB3aW5kb3ctb25lcnJvcjYuaHRtbDoyMgorCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy93aW5kb3ctb25lcnJvcjYuaHRtbCBiL0xheW91
dFRlc3RzL2Zhc3QvZXZlbnRzL3dpbmRvdy1vbmVycm9yNi5odG1sCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAuLjE5Nzg0MzYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy9mYXN0L2V2ZW50cy93aW5kb3ctb25lcnJvcjYuaHRtbApAQCAtMCwwICsxLDI2IEBACis8aHRt
bD4KKzxib2R5PgorPHA+VGVzdCB0aGF0IHN5bnRheCBlcnJvciB3aWxsIGJlIHJlcG9ydGVkIHRv
IHRoZSB3aW5kb3cub25lcnJvciBoYW5kbGVyLiA8YSBocmVmPSJodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODUxOSI+QnVnIDg1MTk8L2E+LjwvcD4KKzxkaXYgaWQ9ImNv
bnNvbGUiPjwvZGl2PgorPHNjcmlwdD4KK2lmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIp
CisgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOworCitmdW5jdGlvbiBsb2co
bXNnKSB7CisgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNvbnNvbGUiKS5pbm5lckhUTUwg
Kz0gbXNnICsgIjxicj4iOworfQorCit3aW5kb3cub25lcnJvciA9IGZ1bmN0aW9uKG1zZywgdXJs
LCBsaW5lKQoreworICAgIHVybCA9IHVybCA/IHVybC5tYXRjaCggL1teXC9dK1wvPyQvIClbMF0g
OiB1cmw7CisgICAgbG9nKCJNYWluIGZyYW1lIHdpbmRvdy5vbmVycm9yOiAiICsgbXNnICsgIiBh
dCAiICsgdXJsICsgIjoiICsgbGluZSk7CisgICAgcmV0dXJuIGZhbHNlOworfQorPC9zY3JpcHQ+
Cis8c2NyaXB0PgorCithKSAvLyBzeW50YXggZXJyb3IKKworPC9zY3JpcHQ+Cis8L2JvZHk+Cis8
L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy93aW5kb3ctb25lcnJv
cjctZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvd2luZG93LW9uZXJyb3I3
LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41ZDIyZTdl
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvd2luZG93LW9uZXJy
b3I3LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDYgQEAKK0NPTlNPTEUgTUVTU0FHRTogbGluZSAy
MDogRXJyb3I6IE9yaWdpbmFsIGVycm9yCitDT05TT0xFIE1FU1NBR0U6IGxpbmUgMTc6IEVycm9y
OiBOZXN0ZWQgZXJyb3IKK1Rlc3QgdGhhdCBleGNlcHRpb24gaW4gd2luZG93Lm9uZXJyb3Igd29u
J3QgbGVhZCB0byByZWN1cnNpdmUgd2luZG93Lm9uZXJyb3IgY2FsbC4gQnVnIDg1MTkuCisKK01h
aW4gZnJhbWUgd2luZG93Lm9uZXJyb3I6IEVycm9yOiBPcmlnaW5hbCBlcnJvciBhdCB3aW5kb3ct
b25lcnJvcjcuaHRtbDoyMAorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy93
aW5kb3ctb25lcnJvcjcuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3dpbmRvdy1vbmVy
cm9yNy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmY2NjU2ODYKLS0t
IC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy93aW5kb3ctb25lcnJvcjcu
aHRtbApAQCAtMCwwICsxLDI0IEBACis8aHRtbD4KKzxib2R5PgorPHA+VGVzdCB0aGF0IGV4Y2Vw
dGlvbiBpbiB3aW5kb3cub25lcnJvciB3b24ndCBsZWFkIHRvIHJlY3Vyc2l2ZSB3aW5kb3cub25l
cnJvciBjYWxsLiA8YSBocmVmPSJodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9ODUxOSI+QnVnIDg1MTk8L2E+LjwvcD4KKzxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgorPHNj
cmlwdD4KK2lmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCisgICAgbGF5b3V0VGVzdENv
bnRyb2xsZXIuZHVtcEFzVGV4dCgpOworCitmdW5jdGlvbiBsb2cobXNnKSB7CisgICAgZG9jdW1l
bnQuZ2V0RWxlbWVudEJ5SWQoImNvbnNvbGUiKS5pbm5lckhUTUwgKz0gbXNnICsgIjxicj4iOwor
fQorCit3aW5kb3cub25lcnJvciA9IGZ1bmN0aW9uKG1zZywgdXJsLCBsaW5lKQoreworICAgIHVy
bCA9IHVybCA/IHVybC5tYXRjaCggL1teXC9dK1wvPyQvIClbMF0gOiB1cmw7CisgICAgbG9nKCJN
YWluIGZyYW1lIHdpbmRvdy5vbmVycm9yOiAiICsgbXNnICsgIiBhdCAiICsgdXJsICsgIjoiICsg
bGluZSk7CisgICAgdGhyb3cgbmV3IEVycm9yKCJOZXN0ZWQgZXJyb3IiKTsKK30KKwordGhyb3cg
bmV3IEVycm9yKCJPcmlnaW5hbCBlcnJvciIpOworCis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRt
bD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3dpbmRvdy1vbmVycm9yOC1l
eHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy93aW5kb3ctb25lcnJvcjgtZXhw
ZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmVmYzYzMDgKLS0t
IC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy93aW5kb3ctb25lcnJvcjgt
ZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNSBAQAorVGVzdCB0aGF0IHdpbmRvdy5vbmVycm9yIGlz
IGNhbGxlZCBvbiB3aW5kb3cgb2JqZWN0LiBCdWcgODUxOS4KKworTWFpbiBmcmFtZSB3aW5kb3cu
b25lcnJvcjogMjAxMCBhdCB1bmRlZmluZWQ6MAorUEFTU0VEOiB0aGlzID09PSB3aW5kb3cKKwpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvd2luZG93LW9uZXJyb3I4Lmh0bWwg
Yi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy93aW5kb3ctb25lcnJvcjguaHRtbApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iYWRlNTM4Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5
b3V0VGVzdHMvZmFzdC9ldmVudHMvd2luZG93LW9uZXJyb3I4Lmh0bWwKQEAgLTAsMCArMSwyOCBA
QAorPGh0bWw+Cis8Ym9keT4KKzxwPlRlc3QgdGhhdCB3aW5kb3cub25lcnJvciBpcyBjYWxsZWQg
b24gd2luZG93IG9iamVjdC4gPGEgaHJlZj0iaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTg1MTkiPkJ1ZyA4NTE5PC9hPi48L3A+Cis8ZGl2IGlkPSJjb25zb2xlIj48L2Rp
dj4KKzxzY3JpcHQ+CitpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQorICAgIGxheW91
dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKKworZnVuY3Rpb24gbG9nKG1zZykgeworICAg
IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjb25zb2xlIikuaW5uZXJIVE1MICs9IG1zZyArICI8
YnI+IjsKK30KKword2luZG93Lm9uZXJyb3IgPSBmdW5jdGlvbihtc2csIHVybCwgbGluZSkKK3sK
KyAgICB1cmwgPSB1cmwgPyB1cmwubWF0Y2goIC9bXlwvXStcLz8kLyApWzBdIDogdXJsOworICAg
IGxvZygiTWFpbiBmcmFtZSB3aW5kb3cub25lcnJvcjogIiArIG1zZyArICIgYXQgIiArIHVybCAr
ICI6IiArIGxpbmUpOworICAgIGlmICh0aGlzID09PSB3aW5kb3cpIAorICAgICAgICBsb2coIlBB
U1NFRDogdGhpcyA9PT0gd2luZG93Iik7CisgICAgZWxzZQorICAgICAgICBsb2coIkZBSUxFRDog
dGhpcyA9PT0gd2luZG93Iik7CisgICAgcmV0dXJuIGZhbHNlOworfQorCit0aHJvdyAyMDEwOwor
Cis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zh
c3QvZXZlbnRzL3dpbmRvdy1vbmVycm9yOS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0
L2V2ZW50cy93aW5kb3ctb25lcnJvcjktZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAuLjk0MzE2ZDMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9m
YXN0L2V2ZW50cy93aW5kb3ctb25lcnJvcjktZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsOCBAQAor
VGVzdCB0aGF0IHdoZW4gd2luZG93Lm9uZXJyb3IgaGFuZGxlciBpcyBjYWxsZWQsIHdpbmRvdy5l
dmVudCBpcyB0aGUgY29ycmVzcG9uZGluZyBFcnJvckV2ZW50IG9iamVjdC4gQnVnIDg1MTkuCisK
K01haW4gZnJhbWUgd2luZG93Lm9uZXJyb3I6IEVycm9yOiAyMDEwIGF0IHdpbmRvdy1vbmVycm9y
OS5odG1sOjMxCit3aW5kb3cuZXZlbnQudHlwZSA9IGVycm9yCit3aW5kb3cuZXZlbnQubWVzc2Fn
ZSA9IEVycm9yOiAyMDEwCit3aW5kb3cuZXZlbnQuZmlsZW5hbWUgPSB3aW5kb3ctb25lcnJvcjku
aHRtbAord2luZG93LmV2ZW50LmxpbmVubyA9IDMxCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2Zhc3QvZXZlbnRzL3dpbmRvdy1vbmVycm9yOS5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVu
dHMvd2luZG93LW9uZXJyb3I5Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MC4uMTA4NmFjZQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3dp
bmRvdy1vbmVycm9yOS5odG1sCkBAIC0wLDAgKzEsMzUgQEAKKzxodG1sPgorPGJvZHk+Cis8cD5U
ZXN0IHRoYXQgd2hlbiB3aW5kb3cub25lcnJvciBoYW5kbGVyIGlzIGNhbGxlZCwgd2luZG93LmV2
ZW50IGlzIHRoZSBjb3JyZXNwb25kaW5nIEVycm9yRXZlbnQgb2JqZWN0LiA8YSBocmVmPSJodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODUxOSI+QnVnIDg1MTk8L2E+Ljwv
cD4KKzxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgorPHNjcmlwdD4KK2lmICh3aW5kb3cubGF5b3V0
VGVzdENvbnRyb2xsZXIpIHsKKyAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7
CisgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIud2FpdFVudGlsRG9uZSgpOworfQorCitmdW5jdGlv
biBsb2cobXNnKSB7CisgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNvbnNvbGUiKS5pbm5l
ckhUTUwgKz0gbXNnICsgIjxicj4iOworfQorCitmdW5jdGlvbiBsYXN0UGF0aENvbXBvbmVudCh1
cmwpIHsKKyAgICByZXR1cm4gdXJsID8gdXJsLm1hdGNoKCAvW15cL10rXC8/JC8gKVswXSA6IHVy
bDsKK30KKword2luZG93Lm9uZXJyb3IgPSBmdW5jdGlvbihtc2csIHVybCwgbGluZSkKK3sKKyAg
ICBsb2coIk1haW4gZnJhbWUgd2luZG93Lm9uZXJyb3I6ICIgKyBtc2cgKyAiIGF0ICIgKyBsYXN0
UGF0aENvbXBvbmVudCh1cmwpICsgIjoiICsgbGluZSk7CisgICAgbG9nKCJ3aW5kb3cuZXZlbnQu
dHlwZSA9ICIgKyB3aW5kb3cuZXZlbnQudHlwZSk7CisgICAgbG9nKCJ3aW5kb3cuZXZlbnQubWVz
c2FnZSA9ICIgKyB3aW5kb3cuZXZlbnQubWVzc2FnZSk7CisgICAgbG9nKCJ3aW5kb3cuZXZlbnQu
ZmlsZW5hbWUgPSAiICsgbGFzdFBhdGhDb21wb25lbnQod2luZG93LmV2ZW50LmZpbGVuYW1lKSk7
CisgICAgbG9nKCJ3aW5kb3cuZXZlbnQubGluZW5vID0gIiArIHdpbmRvdy5ldmVudC5saW5lbm8p
OworICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCisgICAgICAgIGxheW91dFRl
c3RDb250cm9sbGVyLm5vdGlmeURvbmUoKTsKKyAgICByZXR1cm4gZmFsc2U7Cit9CisKK3Rocm93
IG5ldyBFcnJvcigyMDEwKTsKKworPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9mYXN0L3dvcmtlcnMvd29ya2VyLXNjcmlwdC1lcnJvci1leHBlY3Rl
ZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L3dvcmtlcnMvd29ya2VyLXNjcmlwdC1lcnJvci1leHBl
Y3RlZC50eHQKaW5kZXggMTBhYjA0OS4uNDA0MTY0MCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMv
ZmFzdC93b3JrZXJzL3dvcmtlci1zY3JpcHQtZXJyb3ItZXhwZWN0ZWQudHh0CisrKyBiL0xheW91
dFRlc3RzL2Zhc3Qvd29ya2Vycy93b3JrZXItc2NyaXB0LWVycm9yLWV4cGVjdGVkLnR4dApAQCAt
NCw4ICs0LDggQEAgVGVzdCBXb3JrZXIgc2NyaXB0IGVycm9yIGhhbmRsaW5nIGZ1bmN0aW9uYWxp
dHkuIFNob3VsZCBwcmludCBhIHNlcmllcyBvZiBQQVNTIG0KIFBBU1M6IG9uZXJyb3IgaW52b2tl
ZCBmb3IgYSBzY3JpcHQgdGhhdCBoYXMgaW52YWxpZCBzeW50YXguCiBQQVNTOiBvbmVycm9yIGlu
dm9rZWQgZm9yIGEgc2NyaXB0IHRoYXQgaGFzIHNjcmlwdCBlcnJvciAnUmVmZXJlbmNlRXJyb3I6
IENhbid0IGZpbmQgdmFyaWFibGU6IGZvbycgYXQgbGluZSAxLgogUEFTUzogZXZlbnQgbGlzdGVu
ZXIgaW52b2tlZCBmb3IgYSBzY3JpcHQgdGhhdCBoYXMgc2NyaXB0IGVycm9yICdSZWZlcmVuY2VF
cnJvcjogQ2FuJ3QgZmluZCB2YXJpYWJsZTogZm9vJyBhdCBsaW5lIDEuCi1QQVNTOiBvbmVycm9y
IGludm9rZWQgZm9yIGEgc2NyaXB0IHRoYXQgaGFzIHNjcmlwdCBlcnJvciAnUmVmZXJlbmNlRXJy
b3I6IENhbid0IGZpbmQgdmFyaWFibGU6IGJhcicgYXQgbGluZSAzLgogUEFTUzogb25lcnJvciBp
bnZva2VkIGZvciBhIHNjcmlwdCB0aGF0IGhhcyBzY3JpcHQgZXJyb3IgJ1JlZmVyZW5jZUVycm9y
OiBDYW4ndCBmaW5kIHZhcmlhYmxlOiBmb28nIGF0IGxpbmUgNy4KK1BBU1M6IG9uZXJyb3IgaW52
b2tlZCBmb3IgYSBzY3JpcHQgdGhhdCBoYXMgc2NyaXB0IGVycm9yICdSZWZlcmVuY2VFcnJvcjog
Q2FuJ3QgZmluZCB2YXJpYWJsZTogYmFyJyBhdCBsaW5lIDMuCiBQQVNTOiBvbmVycm9yIGludm9r
ZWQgZm9yIGEgc2NyaXB0IHRoYXQgaGFzIHNjcmlwdCBlcnJvciAnUmVmZXJlbmNlRXJyb3I6IENh
bid0IGZpbmQgdmFyaWFibGU6IGZvbycgYXQgbGluZSA3LgogUEFTUzogb25lcnJvciBpbnZva2Vk
IGZvciBhIHNjcmlwdCB0aGF0IGhhcyBzY3JpcHQgZXJyb3IgJ1JlZmVyZW5jZUVycm9yOiBDYW4n
dCBmaW5kIHZhcmlhYmxlOiBmb28nIGF0IGxpbmUgNy4KIFBBU1M6IG1lc3NhZ2UgcmVjZWl2ZWQg
ZnJvbSBXb3JrZXJHbG9iYWxTY29wZS5vbmVycm9yOiBvbmVycm9yIGludm9rZWQgZm9yIGEgc2Ny
aXB0IHRoYXQgaGFzIHNjcmlwdCBlcnJvciAnUmVmZXJlbmNlRXJyb3I6IENhbid0IGZpbmQgdmFy
aWFibGU6IGZvbycgYXQgbGluZSA3LgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy9zZWN1cml0eS9yZXNvdXJjZXMvb25lcnJvci1pZnJhbWUuaHRtbCBiL0xheW91dFRlc3RzL2h0
dHAvdGVzdHMvc2VjdXJpdHkvcmVzb3VyY2VzL29uZXJyb3ItaWZyYW1lLmh0bWwKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMzEyZmQxMgotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvcmVzb3VyY2VzL29uZXJyb3ItaWZyYW1lLmh0
bWwKQEAgLTAsMCArMSwxMSBAQAorPHNjcmlwdD4KK2Z1bmN0aW9uIGhhbmRsZUxvYWQoKQorewor
ICAgIHdpbmRvdy5wYXJlbnQucG9zdE1lc3NhZ2UoIklGcmFtZUxvYWRlZCIsICIqIik7Cit9CisK
K3Rocm93ICJJZnJhbWVFeGNlcHRpb24iOworCis8L3NjcmlwdD4KKzxib2R5IG9ubG9hZD0iaGFu
ZGxlTG9hZCgpIj4KKzwvYm9keT4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMv
c2VjdXJpdHkvd2luZG93LW9uZXJyb3ItZXhjZXB0aW9uLWluLWlmcmFtZS1leHBlY3RlZC50eHQg
Yi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L3dpbmRvdy1vbmVycm9yLWV4Y2VwdGlv
bi1pbi1pZnJhbWUtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAuLjhiMTdkOTIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Nl
Y3VyaXR5L3dpbmRvdy1vbmVycm9yLWV4Y2VwdGlvbi1pbi1pZnJhbWUtZXhwZWN0ZWQudHh0CkBA
IC0wLDAgKzEsNiBAQAorQ09OU09MRSBNRVNTQUdFOiBsaW5lIDA6IElmcmFtZUV4Y2VwdGlvbgor
VGVzdCB0aGF0IGV4Y2VwdGlvbnMgaW4gaWZyYW1lIGFyZSBub3QgcmVwb3J0ZWQgdG8gdGhlIG1h
aW4gZnJhbWUgd2luZG93Lm9uZXJyb3IgaGFuZGxlci4gd2luZG93Lm9uZXJyb3Igc2hvdWxkIHBy
aW50IGV4YWN0bHkgb25lIGxpbmUuCisKK01haW4gZnJhbWUgd2luZG93Lm9uZXJyb3I6IE1haW5G
cmFtZUV4Y2VwdGlvbiBhdCB1bmRlZmluZWQ6MAorRE9ORQorCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L3dpbmRvdy1vbmVycm9yLWV4Y2VwdGlvbi1pbi1pZnJh
bWUuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvd2luZG93LW9uZXJyb3It
ZXhjZXB0aW9uLWluLWlmcmFtZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAuLjA5MDRlMzkKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Nl
Y3VyaXR5L3dpbmRvdy1vbmVycm9yLWV4Y2VwdGlvbi1pbi1pZnJhbWUuaHRtbApAQCAtMCwwICsx
LDM5IEBACis8aHRtbD4KKzxib2R5PgorPHA+VGVzdCB0aGF0IGV4Y2VwdGlvbnMgaW4gaWZyYW1l
IGFyZSBub3QgcmVwb3J0ZWQgdG8gdGhlIG1haW4gZnJhbWUgd2luZG93Lm9uZXJyb3IgaGFuZGxl
ci4KK3dpbmRvdy5vbmVycm9yIHNob3VsZCBwcmludCBleGFjdGx5IG9uZSBsaW5lLjwvcD4KKzxk
aXYgaWQ9InJlc3VsdCI+PC9kaXY+Cis8c2NyaXB0PgoraWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29u
dHJvbGxlcikgeworICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKKyAgICBs
YXlvdXRUZXN0Q29udHJvbGxlci53YWl0VW50aWxEb25lKCk7Cit9CisKK2Z1bmN0aW9uIGxvZyht
c2cpIHsKKyAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicmVzdWx0IikuaW5uZXJIVE1MICs9
IG1zZyArICI8YnI+IjsKK30KKword2luZG93Lm9uZXJyb3IgPSBmdW5jdGlvbihtc2csIHVybCwg
bGluZSkKK3sKKyAgICB1cmwgPSB1cmwgPyB1cmwubWF0Y2goIC9bXlwvXStcLz8kLyApWzBdIDog
dXJsOworICAgIGxvZygiTWFpbiBmcmFtZSB3aW5kb3cub25lcnJvcjogIiArIG1zZyArICIgYXQg
IiArIHVybCArICI6IiArIGxpbmUpOworICAgIHJldHVybiBmYWxzZTsKK30KKworZnVuY3Rpb24g
cmVjZWl2ZU1lc3NhZ2UoZXZlbnQpIHsKKyAgICBpZiAoZXZlbnQuZGF0YSA9PT0gIklGcmFtZUxv
YWRlZCIpIHsKKyAgICAgICAgbG9nKCJET05FIik7CisgICAgICAgIGlmICh3aW5kb3cubGF5b3V0
VGVzdENvbnRyb2xsZXIpCisgICAgICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5ub3RpZnlE
b25lKCk7CisgICAgfSBlbHNlCisgICAgICAgIGxvZygiRkFJTCAiICsgZXZlbnQuZGF0YSk7Cit9
CisKK3dpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJtZXNzYWdlIiwgcmVjZWl2ZU1lc3NhZ2UsIGZh
bHNlKTsKKwordGhyb3cgIk1haW5GcmFtZUV4Y2VwdGlvbiI7CisKKzwvc2NyaXB0PgorPGlmcmFt
ZSBzcmM9Imh0dHA6Ly9sb2NhbGhvc3Q6ODAwMC9zZWN1cml0eS9yZXNvdXJjZXMvb25lcnJvci1p
ZnJhbWUuaHRtbCIvPgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
cGxhdGZvcm0vY2hyb21pdW0td2luL2Zhc3Qvd29ya2Vycy93b3JrZXItc2NyaXB0LWVycm9yLWV4
cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtLXdpbi9mYXN0L3dvcmtl
cnMvd29ya2VyLXNjcmlwdC1lcnJvci1leHBlY3RlZC50eHQKaW5kZXggZmRmNjYwYi4uZWYwYTM5
MSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0td2luL2Zhc3Qvd29y
a2Vycy93b3JrZXItc2NyaXB0LWVycm9yLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9w
bGF0Zm9ybS9jaHJvbWl1bS13aW4vZmFzdC93b3JrZXJzL3dvcmtlci1zY3JpcHQtZXJyb3ItZXhw
ZWN0ZWQudHh0CkBAIC0zLDggKzMsOCBAQCBUZXN0IFdvcmtlciBzY3JpcHQgZXJyb3IgaGFuZGxp
bmcgZnVuY3Rpb25hbGl0eS4gU2hvdWxkIHByaW50IGEgc2VyaWVzIG9mIFBBU1MgbQogUEFTUzog
b25lcnJvciBpbnZva2VkIGZvciBhIHNjcmlwdCB0aGF0IGhhcyBpbnZhbGlkIHN5bnRheC4KIFBB
U1M6IG9uZXJyb3IgaW52b2tlZCBmb3IgYSBzY3JpcHQgdGhhdCBoYXMgc2NyaXB0IGVycm9yICdV
bmNhdWdodCBSZWZlcmVuY2VFcnJvcjogZm9vIGlzIG5vdCBkZWZpbmVkJyBhdCBsaW5lIDEuCiBQ
QVNTOiBldmVudCBsaXN0ZW5lciBpbnZva2VkIGZvciBhIHNjcmlwdCB0aGF0IGhhcyBzY3JpcHQg
ZXJyb3IgJ1VuY2F1Z2h0IFJlZmVyZW5jZUVycm9yOiBmb28gaXMgbm90IGRlZmluZWQnIGF0IGxp
bmUgMS4KLVBBU1M6IG9uZXJyb3IgaW52b2tlZCBmb3IgYSBzY3JpcHQgdGhhdCBoYXMgc2NyaXB0
IGVycm9yICdVbmNhdWdodCBSZWZlcmVuY2VFcnJvcjogYmFyIGlzIG5vdCBkZWZpbmVkJyBhdCBs
aW5lIDMuCiBQQVNTOiBvbmVycm9yIGludm9rZWQgZm9yIGEgc2NyaXB0IHRoYXQgaGFzIHNjcmlw
dCBlcnJvciAnVW5jYXVnaHQgUmVmZXJlbmNlRXJyb3I6IGZvbyBpcyBub3QgZGVmaW5lZCcgYXQg
bGluZSA3LgorUEFTUzogb25lcnJvciBpbnZva2VkIGZvciBhIHNjcmlwdCB0aGF0IGhhcyBzY3Jp
cHQgZXJyb3IgJ1VuY2F1Z2h0IFJlZmVyZW5jZUVycm9yOiBiYXIgaXMgbm90IGRlZmluZWQnIGF0
IGxpbmUgMy4KIFBBU1M6IG9uZXJyb3IgaW52b2tlZCBmb3IgYSBzY3JpcHQgdGhhdCBoYXMgc2Ny
aXB0IGVycm9yICdVbmNhdWdodCBSZWZlcmVuY2VFcnJvcjogZm9vIGlzIG5vdCBkZWZpbmVkJyBh
dCBsaW5lIDcuCiBQQVNTOiBvbmVycm9yIGludm9rZWQgZm9yIGEgc2NyaXB0IHRoYXQgaGFzIHNj
cmlwdCBlcnJvciAnVW5jYXVnaHQgUmVmZXJlbmNlRXJyb3I6IGZvbyBpcyBub3QgZGVmaW5lZCcg
YXQgbGluZSA3LgogUEFTUzogbWVzc2FnZSByZWNlaXZlZCBmcm9tIFdvcmtlckdsb2JhbFNjb3Bl
Lm9uZXJyb3I6IG9uZXJyb3IgaW52b2tlZCBmb3IgYSBzY3JpcHQgdGhhdCBoYXMgc2NyaXB0IGVy
cm9yICdVbmNhdWdodCBSZWZlcmVuY2VFcnJvcjogZm9vIGlzIG5vdCBkZWZpbmVkJyBhdCBsaW5l
IDcuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS9mYXN0L2V2ZW50
cy93aW5kb3ctb25lcnJvcjEtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hy
b21pdW0vZmFzdC9ldmVudHMvd2luZG93LW9uZXJyb3IxLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42NWI2MjRiCi0tLSAvZGV2L251bGwKKysrIGIvTGF5
b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vZmFzdC9ldmVudHMvd2luZG93LW9uZXJyb3IxLWV4
cGVjdGVkLnR4dApAQCAtMCwwICsxLDMgQEAKK1RoaXMgcGFnZSB0ZXN0cyBzZXR0aW5nIG9uZXJy
b3IgaGFuZGxlcnMgdGhyb3VnaCB0aGUgRE9NLiBJZiBpdCBwYXNzZXMsIHlvdSB3aWxsIHNlZSAi
UEFTUyIgbWVzc2FnZXMgYmVsb3cuQnVnIDg1MTkuDQorDQorUEFTUzogY2F1Z2h0IGdsb2JhbCBl
cnJvcjogVW5jYXVnaHQgUmVmZXJlbmNlRXJyb3I6IGhhaGFoYV9nb29kX2x1Y2tfZmluZGluZ19t
ZSBpcyBub3QgZGVmaW5lZCBhdCB3aW5kb3ctb25lcnJvcjEuaHRtbDoyNQ0KZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL2Zhc3QvZXZlbnRzL3dpbmRvdy1vbmVycm9y
MTAtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vZmFzdC9ldmVu
dHMvd2luZG93LW9uZXJyb3IxMC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMC4uYjNkMmQzOQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3BsYXRm
b3JtL2Nocm9taXVtL2Zhc3QvZXZlbnRzL3dpbmRvdy1vbmVycm9yMTAtZXhwZWN0ZWQudHh0CkBA
IC0wLDAgKzEsMTEgQEAKK1Rlc3QgdGhhdCAiZXJyb3IiIGV2ZW50IGxpc3RlbmVyIGFkZGVkIHdp
dGggd2luZG93LmFkZEV2ZW50TGlzdGVuZXIgaXMgaW52b2tlZCBmb3IgdW5jYXVjaHQgZXhjZXB0
aW9ucy4gQnVnIDg1MTkuDQorDQorZXZlbnQgcGFzc2VkIHRvIHRoZSBsaXN0ZW5lciBpcyB0aGUg
c2FtZSBhcyB3aW5kb3cuZXZlbnQ6IHRydWUNCitFdmVudCBkZXRhaWxzOg0KK3R5cGU6IGVycm9y
DQorcGhhc2U6IDINCitjdXJyZW50VGFyZ2V0IGlzIHRoZSBnbG9iYWwgb2JqZWN0OiB0cnVlDQor
bWVzc2FnZTogVW5jYXVnaHQgRXJyb3I6IE15IGZhdWx0Lg0KK2ZpbGVuYW1lOiB3aW5kb3ctb25l
cnJvcjEwLmh0bWwNCitsaW5lbm86IDI5DQorDQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxh
dGZvcm0vY2hyb21pdW0vZmFzdC9ldmVudHMvd2luZG93LW9uZXJyb3IxMS1leHBlY3RlZC50eHQg
Yi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS9mYXN0L2V2ZW50cy93aW5kb3ctb25lcnJv
cjExLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45MmUz
Y2Y1Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vZmFz
dC9ldmVudHMvd2luZG93LW9uZXJyb3IxMS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw0IEBACitU
ZXN0IHRoYXQgd2luZG93Lm9uZXJyb3IgaXMgY2FsbGVkIG9uIHdpbmRvdyBvYmplY3QuIEJ1ZyA4
NTE5Lg0KKw0KK01haW4gZnJhbWUgd2luZG93Lm9uZXJyb3I6IFVuY2F1Z2h0IEVycm9yOiBBbiBl
eGNlcHRpb24gYXQgd2luZG93LW9uZXJyb3IuanM6Mg0KKw0KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL3BsYXRmb3JtL2Nocm9taXVtL2Zhc3QvZXZlbnRzL3dpbmRvdy1vbmVycm9yMi1leHBlY3Rl
ZC50eHQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS9mYXN0L2V2ZW50cy93aW5kb3ct
b25lcnJvcjItZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAu
LmY3YjE2MjEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1
bS9mYXN0L2V2ZW50cy93aW5kb3ctb25lcnJvcjItZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNiBA
QAorVGVzdCB0aGF0IHVuY2F1Z2h0IGV4Y2VwdGlvbnMgd2lsbCBiZSByZXBvcnRlZCB0byB0aGUg
d2luZG93Lm9uZXJyb3IgaGFuZGxlci4gQnVnIDg1MTkuDQorDQorTWFpbiBmcmFtZSB3aW5kb3cu
b25lcnJvcjogVW5jYXVnaHQgRXJyb3I6IElubGluZSBzY3JpcHQgZXhjZXB0aW9uIGF0IHdpbmRv
dy1vbmVycm9yMi5odG1sOjM1DQorTWFpbiBmcmFtZSB3aW5kb3cub25lcnJvcjogVW5jYXVnaHQg
RXhjZXB0aW9uIGluIG9ubG9hZCBhdCB3aW5kb3ctb25lcnJvcjIuaHRtbDoyDQorTWFpbiBmcmFt
ZSB3aW5kb3cub25lcnJvcjogVW5jYXVnaHQgRXJyb3I6IEV4Y2VwdGlvbiBpbiBzZXRUaW1lb3V0
IGF0IHdpbmRvdy1vbmVycm9yMi5odG1sOjI5DQorDQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
cGxhdGZvcm0vY2hyb21pdW0vZmFzdC9ldmVudHMvd2luZG93LW9uZXJyb3IzLWV4cGVjdGVkLnR4
dCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL2Zhc3QvZXZlbnRzL3dpbmRvdy1vbmVy
cm9yMy1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYTFi
OGJkNQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL2Zh
c3QvZXZlbnRzL3dpbmRvdy1vbmVycm9yMy1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw0IEBACitZ
b3Ugc2hvdWxkIHNlZSBhIG1lc3NhZ2UgaWYgd2luZG93Lm9uZXJyb3IgaXMgd29ya2luZyBwcm9w
ZXJseSBmb3IgdGhpcyB0ZXN0LkJ1ZyA4NTE5Lg0KKw0KK0Vycm9yIGNhdWdodCBzdWNjZXNzZnVs
bHk6IFVuY2F1Z2h0IFJlZmVyZW5jZUVycm9yOiB1bmtub3duT2JqZWN0IGlzIG5vdCBkZWZpbmVk
IEZpbGU6IHdpbmRvdy1vbmVycm9yMy5odG1sIExpbmU6IDE2DQorDQpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vZmFzdC9ldmVudHMvd2luZG93LW9uZXJyb3I0LWV4
cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL2Zhc3QvZXZlbnRzL3dp
bmRvdy1vbmVycm9yNC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMC4uNTBmMDllMAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2No
cm9taXVtL2Zhc3QvZXZlbnRzL3dpbmRvdy1vbmVycm9yNC1leHBlY3RlZC50eHQKQEAgLTAsMCAr
MSw0IEBACitZb3Ugc2hvdWxkIHNlZSBhIGxvZyByZWNvcmQgaWYgd2luZG93Lm9uZXJyb3IgaXMg
d29ya2luZyBwcm9wZXJseSBmb3IgdGhpcyB0ZXN0LkJ1ZyA4NTE5Lg0KKw0KK0Vycm9yIGNhdWdo
dCBzdWNjZXNzZnVsbHk6IFVuY2F1Z2h0IFJlZmVyZW5jZUVycm9yOiBJbnZhbGlkIGxlZnQtaGFu
ZCBzaWRlIGluIGFzc2lnbm1lbnQgRmlsZTogd2luZG93LW9uZXJyb3I0Lmh0bWwgTGluZTogMQ0K
Kw0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL2Zhc3QvZXZlbnRz
L3dpbmRvdy1vbmVycm9yNS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJv
bWl1bS9mYXN0L2V2ZW50cy93aW5kb3ctb25lcnJvcjUtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmU0NTM2OWUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS9mYXN0L2V2ZW50cy93aW5kb3ctb25lcnJvcjUtZXhw
ZWN0ZWQudHh0CkBAIC0wLDAgKzEsNCBAQAorVGVzdCB0aGF0IHdpbmRvdy5vbmVycm9yIGlzIGlu
dm9rZWQgZm9yIHN5bnRheCBlcnJvciBpbiBldmFsLiBZb3Ugc2hvdWxkIHNlZSBhIGxvZyByZWNv
cmQgaWYgd2luZG93Lm9uZXJyb3IgaXMgd29ya2luZyBwcm9wZXJseSBmb3IgdGhpcyB0ZXN0LkJ1
ZyA4NTE5Lg0KKw0KK0Vycm9yIGNhdWdodCBzdWNjZXNzZnVsbHk6IFVuY2F1Z2h0IFN5bnRheEVy
cm9yOiBVbmV4cGVjdGVkIGVuZCBvZiBpbnB1dCBGaWxlOiB3aW5kb3ctb25lcnJvcjUuaHRtbCBM
aW5lOiAxDQorDQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vZmFz
dC9ldmVudHMvd2luZG93LW9uZXJyb3I2LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3BsYXRm
b3JtL2Nocm9taXVtL2Zhc3QvZXZlbnRzL3dpbmRvdy1vbmVycm9yNi1leHBlY3RlZC50eHQKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMThlZDgxYQotLS0gL2Rldi9udWxsCisr
KyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL2Zhc3QvZXZlbnRzL3dpbmRvdy1vbmVy
cm9yNi1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw0IEBACitUZXN0IHRoYXQgc3ludGF4IGVycm9y
IHdpbGwgYmUgcmVwb3J0ZWQgdG8gdGhlIHdpbmRvdy5vbmVycm9yIGhhbmRsZXIuIEJ1ZyA4NTE5
Lg0KKw0KK01haW4gZnJhbWUgd2luZG93Lm9uZXJyb3I6IFVuY2F1Z2h0IFN5bnRheEVycm9yOiBV
bmV4cGVjdGVkIHRva2VuICkgYXQgd2luZG93LW9uZXJyb3I2Lmh0bWw6MjINCisNCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS9mYXN0L2V2ZW50cy93aW5kb3ctb25l
cnJvcjctZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vZmFzdC9l
dmVudHMvd2luZG93LW9uZXJyb3I3LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwLi4yM2QwNDA3Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvcGxh
dGZvcm0vY2hyb21pdW0vZmFzdC9ldmVudHMvd2luZG93LW9uZXJyb3I3LWV4cGVjdGVkLnR4dApA
QCAtMCwwICsxLDYgQEAKK0NPTlNPTEUgTUVTU0FHRTogbGluZSAyMDogVW5jYXVnaHQgRXJyb3I6
IE9yaWdpbmFsIGVycm9yDQorQ09OU09MRSBNRVNTQUdFOiBsaW5lIDE3OiBVbmNhdWdodCBFcnJv
cjogTmVzdGVkIGVycm9yDQorVGVzdCB0aGF0IGV4Y2VwdGlvbiBpbiB3aW5kb3cub25lcnJvciB3
b24ndCBsZWFkIHRvIHJlY3Vyc2l2ZSB3aW5kb3cub25lcnJvciBjYWxsLiBCdWcgODUxOS4NCisN
CitNYWluIGZyYW1lIHdpbmRvdy5vbmVycm9yOiBVbmNhdWdodCBFcnJvcjogT3JpZ2luYWwgZXJy
b3IgYXQgd2luZG93LW9uZXJyb3I3Lmh0bWw6MjANCisNCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9wbGF0Zm9ybS9jaHJvbWl1bS9mYXN0L2V2ZW50cy93aW5kb3ctb25lcnJvcjgtZXhwZWN0ZWQu
dHh0IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vZmFzdC9ldmVudHMvd2luZG93LW9u
ZXJyb3I4LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4x
M2YyYjMyCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0v
ZmFzdC9ldmVudHMvd2luZG93LW9uZXJyb3I4LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDUgQEAK
K1Rlc3QgdGhhdCB3aW5kb3cub25lcnJvciBpcyBjYWxsZWQgb24gd2luZG93IG9iamVjdC4gQnVn
IDg1MTkuDQorDQorTWFpbiBmcmFtZSB3aW5kb3cub25lcnJvcjogVW5jYXVnaHQgMjAxMCBhdCB3
aW5kb3ctb25lcnJvcjguaHRtbDoyNA0KK1BBU1NFRDogdGhpcyA9PT0gd2luZG93DQorDQpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vZmFzdC9ldmVudHMvd2luZG93
LW9uZXJyb3I5LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL2Zh
c3QvZXZlbnRzL3dpbmRvdy1vbmVycm9yOS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMC4uMTY3N2U1MAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3Rz
L3BsYXRmb3JtL2Nocm9taXVtL2Zhc3QvZXZlbnRzL3dpbmRvdy1vbmVycm9yOS1leHBlY3RlZC50
eHQKQEAgLTAsMCArMSw4IEBACitUZXN0IHRoYXQgd2hlbiB3aW5kb3cub25lcnJvciBoYW5kbGVy
IGlzIGNhbGxlZCwgd2luZG93LmV2ZW50IGlzIHRoZSBjb3JyZXNwb25kaW5nIEVycm9yRXZlbnQg
b2JqZWN0LiBCdWcgODUxOS4NCisNCitNYWluIGZyYW1lIHdpbmRvdy5vbmVycm9yOiBVbmNhdWdo
dCBFcnJvcjogMjAxMCBhdCB3aW5kb3ctb25lcnJvcjkuaHRtbDozMQ0KK3dpbmRvdy5ldmVudC50
eXBlID0gZXJyb3INCit3aW5kb3cuZXZlbnQubWVzc2FnZSA9IFVuY2F1Z2h0IEVycm9yOiAyMDEw
DQord2luZG93LmV2ZW50LmZpbGVuYW1lID0gd2luZG93LW9uZXJyb3I5Lmh0bWwNCit3aW5kb3cu
ZXZlbnQubGluZW5vID0gMzENCisNCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9j
aHJvbWl1bS9odHRwL3Rlc3RzL3NlY3VyaXR5L3dpbmRvdy1vbmVycm9yLWV4Y2VwdGlvbi1pbi1p
ZnJhbWUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vaHR0cC90
ZXN0cy9zZWN1cml0eS93aW5kb3ctb25lcnJvci1leGNlcHRpb24taW4taWZyYW1lLWV4cGVjdGVk
LnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45ZTljMmVhCi0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vaHR0cC90ZXN0cy9zZWN1
cml0eS93aW5kb3ctb25lcnJvci1leGNlcHRpb24taW4taWZyYW1lLWV4cGVjdGVkLnR4dApAQCAt
MCwwICsxLDYgQEAKK0NPTlNPTEUgTUVTU0FHRTogbGluZSA3OiBVbmNhdWdodCBJZnJhbWVFeGNl
cHRpb24NCitUZXN0IHRoYXQgZXhjZXB0aW9ucyBpbiBpZnJhbWUgYXJlIG5vdCByZXBvcnRlZCB0
byB0aGUgbWFpbiBmcmFtZSB3aW5kb3cub25lcnJvciBoYW5kbGVyLiB3aW5kb3cub25lcnJvciBz
aG91bGQgcHJpbnQgZXhhY3RseSBvbmUgbGluZS4NCisNCitNYWluIGZyYW1lIHdpbmRvdy5vbmVy
cm9yOiBVbmNhdWdodCBNYWluRnJhbWVFeGNlcHRpb24gYXQgd2luZG93LW9uZXJyb3ItZXhjZXB0
aW9uLWluLWlmcmFtZS5odG1sOjM0DQorRE9ORQ0KKw0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L3BsYXRmb3JtL2Nocm9taXVtL3VzZXJzY3JpcHRzL3dpbmRvdy1vbmVycm9yLWZvci1pc29sYXRl
ZC13b3JsZC0xLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL3Vz
ZXJzY3JpcHRzL3dpbmRvdy1vbmVycm9yLWZvci1pc29sYXRlZC13b3JsZC0xLWV4cGVjdGVkLnR4
dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yYTNkMDY4Ci0tLSAvZGV2L251
bGwKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vdXNlcnNjcmlwdHMvd2luZG93
LW9uZXJyb3ItZm9yLWlzb2xhdGVkLXdvcmxkLTEtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTQg
QEAKK1Rlc3QgdGhhdCB3aW5kb3cub25lcnJvciBhbmQgImVycm9yIiBldmVudCBsaXN0ZW5lcnMg
ZnJvbSBtYWluIHdvcmxkIGFyZSBpbnZva2VkIGZvciB1bmNhdWdodCBleGNlcHRpb25zIGluIHVz
ZXIgc2NyaXB0cyBydW5uaW5nIGluIGlzb2xhdGUgd29ybGRzIGFzIHdlbGwgYXMgZm9yIGV4Y2Vw
dGlvbnMgaW4gdGhlIG1haW4gd29ybGQuQnVnIDg1MTkuDQorDQorTWFpbiB3b3JsZCB3aW5kb3cu
b25lcnJvcjogVW5jYXVnaHQgRXJyb3I6IEVycm9yIGluIG1haW4gd29ybGQgaW5saW5lIHNjcmlw
dC4gYXQgd2luZG93LW9uZXJyb3ItZm9yLWlzb2xhdGVkLXdvcmxkLTEuaHRtbDo1NA0KK01haW4g
d29ybGQgZXJyb3IgZXZlbnQgbGlzdGVuZXI6IFVuY2F1Z2h0IEVycm9yOiBFcnJvciBpbiBtYWlu
IHdvcmxkIGlubGluZSBzY3JpcHQuIGF0IHdpbmRvdy1vbmVycm9yLWZvci1pc29sYXRlZC13b3Js
ZC0xLmh0bWw6NTQNCitNYWluIHdvcmxkIHdpbmRvdy5vbmVycm9yOiBVbmNhdWdodCBFcnJvcjog
RXJyb3IgaW4gdXNlciBzY3JpcHQgaW5saW5lIHNjcmlwdC4gYXQgOjEyDQorTWFpbiB3b3JsZCBl
cnJvciBldmVudCBsaXN0ZW5lcjogVW5jYXVnaHQgRXJyb3I6IEVycm9yIGluIHVzZXIgc2NyaXB0
IGlubGluZSBzY3JpcHQuIGF0IDoxMg0KK01haW4gd29ybGQgd2luZG93Lm9uZXJyb3I6IFVuY2F1
Z2h0IEVycm9yOiBFcnJvciBpbiBtYWluIHdvcmxkIGxvYWQgaGFuZGxlci4gYXQgd2luZG93LW9u
ZXJyb3ItZm9yLWlzb2xhdGVkLXdvcmxkLTEuaHRtbDo0Ng0KK01haW4gd29ybGQgZXJyb3IgZXZl
bnQgbGlzdGVuZXI6IFVuY2F1Z2h0IEVycm9yOiBFcnJvciBpbiBtYWluIHdvcmxkIGxvYWQgaGFu
ZGxlci4gYXQgd2luZG93LW9uZXJyb3ItZm9yLWlzb2xhdGVkLXdvcmxkLTEuaHRtbDo0Ng0KK01h
aW4gd29ybGQgd2luZG93Lm9uZXJyb3I6IFVuY2F1Z2h0IEVycm9yOiBFcnJvciBpbiB1c2VyIHNj
cmlwdCBsb2FkIGhhbmRsZXIuIGF0IDo0DQorTWFpbiB3b3JsZCBlcnJvciBldmVudCBsaXN0ZW5l
cjogVW5jYXVnaHQgRXJyb3I6IEVycm9yIGluIHVzZXIgc2NyaXB0IGxvYWQgaGFuZGxlci4gYXQg
OjQNCitNYWluIHdvcmxkIHdpbmRvdy5vbmVycm9yOiBVbmNhdWdodCBFcnJvcjogRXJyb3IgaW4g
bWFpbiB3b3JsZCBzZXRUaW1lb3V0IGNhbGxiYWNrLiBhdCB3aW5kb3ctb25lcnJvci1mb3ItaXNv
bGF0ZWQtd29ybGQtMS5odG1sOjUxDQorTWFpbiB3b3JsZCBlcnJvciBldmVudCBsaXN0ZW5lcjog
VW5jYXVnaHQgRXJyb3I6IEVycm9yIGluIG1haW4gd29ybGQgc2V0VGltZW91dCBjYWxsYmFjay4g
YXQgd2luZG93LW9uZXJyb3ItZm9yLWlzb2xhdGVkLXdvcmxkLTEuaHRtbDo1MQ0KK01haW4gd29y
bGQgd2luZG93Lm9uZXJyb3I6IFVuY2F1Z2h0IEVycm9yOiBFcnJvciBpbiB1c2VyIHNjcmlwdCBz
ZXRUaW1lb3V0IGNhbGxiYWNrLiBhdCA6OQ0KK01haW4gd29ybGQgZXJyb3IgZXZlbnQgbGlzdGVu
ZXI6IFVuY2F1Z2h0IEVycm9yOiBFcnJvciBpbiB1c2VyIHNjcmlwdCBzZXRUaW1lb3V0IGNhbGxi
YWNrLiBhdCA6OQ0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL3Vz
ZXJzY3JpcHRzL3dpbmRvdy1vbmVycm9yLWZvci1pc29sYXRlZC13b3JsZC0yLWV4cGVjdGVkLnR4
dCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL3VzZXJzY3JpcHRzL3dpbmRvdy1vbmVy
cm9yLWZvci1pc29sYXRlZC13b3JsZC0yLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwLi45Mzk5NGRiCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMv
cGxhdGZvcm0vY2hyb21pdW0vdXNlcnNjcmlwdHMvd2luZG93LW9uZXJyb3ItZm9yLWlzb2xhdGVk
LXdvcmxkLTItZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTMgQEAKK0NPTlNPTEUgTUVTU0FHRTog
bGluZSAzMDogVW5jYXVnaHQgRXJyb3I6IEVycm9yIGluIG1haW4gd29ybGQgaW5saW5lIHNjcmlw
dC4NCitUZXN0IHRoYXQgd2luZG93Lm9uZXJyb3IgYW5kICJlcnJvciIgZXZlbnQgbGlzdGVuZXJz
IGZyb20gaXNvbGF0ZWQgd29ybGQgYXJlIGludm9rZWQgZm9yIHVuY2F1Z2h0IGV4Y2VwdGlvbnMg
aW4gdXNlciBzY3JpcHRzIHJ1bm5pbmcgaW4gaXNvbGF0ZSB3b3JsZHMgYXMgd2VsbCBhcyBmb3Ig
ZXhjZXB0aW9ucyBpbiB0aGUgbWFpbiB3b3JsZC5CdWcgODUxOS4NCisNCit1c2VyIHNjcmlwdCB3
aW5kb3cub25lcnJvcjogVW5jYXVnaHQgRXJyb3I6IEVycm9yIGluIHVzZXIgc2NyaXB0IGlubGlu
ZSBzY3JpcHQuIGF0IDozMw0KK3VzZXIgc2NyaXB0IGVycm9yIGV2ZW50IGxpc3RlbmVyOiBVbmNh
dWdodCBFcnJvcjogRXJyb3IgaW4gdXNlciBzY3JpcHQgaW5saW5lIHNjcmlwdC4gYXQgOjMzDQor
dXNlciBzY3JpcHQgd2luZG93Lm9uZXJyb3I6IFVuY2F1Z2h0IEVycm9yOiBFcnJvciBpbiBtYWlu
IHdvcmxkIGxvYWQgaGFuZGxlci4gYXQgd2luZG93LW9uZXJyb3ItZm9yLWlzb2xhdGVkLXdvcmxk
LTIuaHRtbDoyMw0KK3VzZXIgc2NyaXB0IGVycm9yIGV2ZW50IGxpc3RlbmVyOiBVbmNhdWdodCBF
cnJvcjogRXJyb3IgaW4gbWFpbiB3b3JsZCBsb2FkIGhhbmRsZXIuIGF0IHdpbmRvdy1vbmVycm9y
LWZvci1pc29sYXRlZC13b3JsZC0yLmh0bWw6MjMNCit1c2VyIHNjcmlwdCB3aW5kb3cub25lcnJv
cjogVW5jYXVnaHQgRXJyb3I6IEVycm9yIGluIHVzZXIgc2NyaXB0IGxvYWQgaGFuZGxlci4gYXQg
OjI2DQordXNlciBzY3JpcHQgZXJyb3IgZXZlbnQgbGlzdGVuZXI6IFVuY2F1Z2h0IEVycm9yOiBF
cnJvciBpbiB1c2VyIHNjcmlwdCBsb2FkIGhhbmRsZXIuIGF0IDoyNg0KK3VzZXIgc2NyaXB0IHdp
bmRvdy5vbmVycm9yOiBVbmNhdWdodCBFcnJvcjogRXJyb3IgaW4gbWFpbiB3b3JsZCBzZXRUaW1l
b3V0IGNhbGxiYWNrLiBhdCB3aW5kb3ctb25lcnJvci1mb3ItaXNvbGF0ZWQtd29ybGQtMi5odG1s
OjI3DQordXNlciBzY3JpcHQgZXJyb3IgZXZlbnQgbGlzdGVuZXI6IFVuY2F1Z2h0IEVycm9yOiBF
cnJvciBpbiBtYWluIHdvcmxkIHNldFRpbWVvdXQgY2FsbGJhY2suIGF0IHdpbmRvdy1vbmVycm9y
LWZvci1pc29sYXRlZC13b3JsZC0yLmh0bWw6MjcNCit1c2VyIHNjcmlwdCB3aW5kb3cub25lcnJv
cjogVW5jYXVnaHQgRXJyb3I6IEVycm9yIGluIHVzZXIgc2NyaXB0IHNldFRpbWVvdXQgY2FsbGJh
Y2suIGF0IDozMA0KK3VzZXIgc2NyaXB0IGVycm9yIGV2ZW50IGxpc3RlbmVyOiBVbmNhdWdodCBF
cnJvcjogRXJyb3IgaW4gdXNlciBzY3JpcHQgc2V0VGltZW91dCBjYWxsYmFjay4gYXQgOjMwDQpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL1NraXBwZWQgYi9MYXlvdXRUZXN0
cy9wbGF0Zm9ybS9ndGsvU2tpcHBlZAppbmRleCA1ZTYwNDNmLi45ZTVkN2I5IDEwMDY0NAotLS0g
YS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvU2tpcHBlZAorKysgYi9MYXlvdXRUZXN0cy9wbGF0
Zm9ybS9ndGsvU2tpcHBlZApAQCAtNDcxNCw2ICs0NzE0LDggQEAgdXNlcnNjcmlwdHMvdXNlci1z
Y3JpcHQtcGx1Z2luLWRvY3VtZW50Lmh0bWwKIHVzZXJzY3JpcHRzL3VzZXItc2NyaXB0LXRvcC1m
cmFtZS1vbmx5Lmh0bWwKIHVzZXJzY3JpcHRzL3VzZXItc2NyaXB0LXZpZGVvLWRvY3VtZW50Lmh0
bWwKIHVzZXJzY3JpcHRzL3VzZXItc3R5bGUtdG9wLWZyYW1lLW9ubHkuaHRtbAordXNlcnNjcmlw
dHMvd2luZG93LW9uZXJyb3ItZm9yLWlzb2xhdGVkLXdvcmxkLTEuaHRtbAordXNlcnNjcmlwdHMv
d2luZG93LW9uZXJyb3ItZm9yLWlzb2xhdGVkLXdvcmxkLTIuaHRtbAogCiAjIFhIUiBzZW5kcyBz
b21ldGltZXMgeWllbGQgbnVsbCBieXRlcyBzZW50IGluc3RlYWQgb2YgMC4KIGh0dHAvdGVzdHMv
eG1saHR0cHJlcXVlc3Qvd29ya2Vycy9zaGFyZWQtd29ya2VyLW1ldGhvZHMuaHRtbApkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvdXNlcnNjcmlwdHMvd2luZG93LW9uZXJyb3ItZm9yLWlzb2xhdGVk
LXdvcmxkLTEtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvdXNlcnNjcmlwdHMvd2luZG93LW9u
ZXJyb3ItZm9yLWlzb2xhdGVkLXdvcmxkLTEtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAuLjY4OTVjNDEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy91c2Vyc2NyaXB0cy93aW5kb3ctb25lcnJvci1mb3ItaXNvbGF0ZWQtd29ybGQtMS1leHBlY3Rl
ZC50eHQKQEAgLTAsMCArMSwxNCBAQAorVGVzdCB0aGF0IHdpbmRvdy5vbmVycm9yIGFuZCAiZXJy
b3IiIGV2ZW50IGxpc3RlbmVycyBmcm9tIG1haW4gd29ybGQgYXJlIGludm9rZWQgZm9yIHVuY2F1
Z2h0IGV4Y2VwdGlvbnMgaW4gdXNlciBzY3JpcHRzIHJ1bm5pbmcgaW4gaXNvbGF0ZSB3b3JsZHMg
YXMgd2VsbCBhcyBmb3IgZXhjZXB0aW9ucyBpbiB0aGUgbWFpbiB3b3JsZC5CdWcgODUxOS4KKwor
TWFpbiB3b3JsZCB3aW5kb3cub25lcnJvcjogRXJyb3I6IEVycm9yIGluIG1haW4gd29ybGQgaW5s
aW5lIHNjcmlwdC4gYXQgd2luZG93LW9uZXJyb3ItZm9yLWlzb2xhdGVkLXdvcmxkLTEuaHRtbDo1
NAorTWFpbiB3b3JsZCBlcnJvciBldmVudCBsaXN0ZW5lcjogRXJyb3I6IEVycm9yIGluIG1haW4g
d29ybGQgaW5saW5lIHNjcmlwdC4gYXQgd2luZG93LW9uZXJyb3ItZm9yLWlzb2xhdGVkLXdvcmxk
LTEuaHRtbDo1NAorTWFpbiB3b3JsZCB3aW5kb3cub25lcnJvcjogRXJyb3I6IEVycm9yIGluIHVz
ZXIgc2NyaXB0IGlubGluZSBzY3JpcHQuIGF0IHVuZGVmaW5lZDoxMQorTWFpbiB3b3JsZCBlcnJv
ciBldmVudCBsaXN0ZW5lcjogRXJyb3I6IEVycm9yIGluIHVzZXIgc2NyaXB0IGlubGluZSBzY3Jp
cHQuIGF0IHVuZGVmaW5lZDoxMQorTWFpbiB3b3JsZCB3aW5kb3cub25lcnJvcjogRXJyb3I6IEVy
cm9yIGluIG1haW4gd29ybGQgbG9hZCBoYW5kbGVyLiBhdCB3aW5kb3ctb25lcnJvci1mb3ItaXNv
bGF0ZWQtd29ybGQtMS5odG1sOjQ2CitNYWluIHdvcmxkIGVycm9yIGV2ZW50IGxpc3RlbmVyOiBF
cnJvcjogRXJyb3IgaW4gbWFpbiB3b3JsZCBsb2FkIGhhbmRsZXIuIGF0IHdpbmRvdy1vbmVycm9y
LWZvci1pc29sYXRlZC13b3JsZC0xLmh0bWw6NDYKK01haW4gd29ybGQgd2luZG93Lm9uZXJyb3I6
IEVycm9yOiBFcnJvciBpbiB1c2VyIHNjcmlwdCBsb2FkIGhhbmRsZXIuIGF0IHVuZGVmaW5lZDoz
CitNYWluIHdvcmxkIGVycm9yIGV2ZW50IGxpc3RlbmVyOiBFcnJvcjogRXJyb3IgaW4gdXNlciBz
Y3JpcHQgbG9hZCBoYW5kbGVyLiBhdCB1bmRlZmluZWQ6MworTWFpbiB3b3JsZCB3aW5kb3cub25l
cnJvcjogRXJyb3I6IEVycm9yIGluIG1haW4gd29ybGQgc2V0VGltZW91dCBjYWxsYmFjay4gYXQg
d2luZG93LW9uZXJyb3ItZm9yLWlzb2xhdGVkLXdvcmxkLTEuaHRtbDo1MQorTWFpbiB3b3JsZCBl
cnJvciBldmVudCBsaXN0ZW5lcjogRXJyb3I6IEVycm9yIGluIG1haW4gd29ybGQgc2V0VGltZW91
dCBjYWxsYmFjay4gYXQgd2luZG93LW9uZXJyb3ItZm9yLWlzb2xhdGVkLXdvcmxkLTEuaHRtbDo1
MQorTWFpbiB3b3JsZCB3aW5kb3cub25lcnJvcjogRXJyb3I6IEVycm9yIGluIHVzZXIgc2NyaXB0
IHNldFRpbWVvdXQgY2FsbGJhY2suIGF0IHVuZGVmaW5lZDo4CitNYWluIHdvcmxkIGVycm9yIGV2
ZW50IGxpc3RlbmVyOiBFcnJvcjogRXJyb3IgaW4gdXNlciBzY3JpcHQgc2V0VGltZW91dCBjYWxs
YmFjay4gYXQgdW5kZWZpbmVkOjgKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3VzZXJzY3JpcHRz
L3dpbmRvdy1vbmVycm9yLWZvci1pc29sYXRlZC13b3JsZC0xLmh0bWwgYi9MYXlvdXRUZXN0cy91
c2Vyc2NyaXB0cy93aW5kb3ctb25lcnJvci1mb3ItaXNvbGF0ZWQtd29ybGQtMS5odG1sCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjNjNmJhYzIKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy91c2Vyc2NyaXB0cy93aW5kb3ctb25lcnJvci1mb3ItaXNvbGF0ZWQtd29y
bGQtMS5odG1sCkBAIC0wLDAgKzEsNjcgQEAKKzwhRE9DVFlQRSBIVE1MPgorPGh0bWw+Cis8aGVh
ZD4KKzwvaGVhZD4KKzxib2R5PgorPHA+VGVzdCB0aGF0IHdpbmRvdy5vbmVycm9yIGFuZCAiZXJy
b3IiIGV2ZW50IGxpc3RlbmVycyBmcm9tIG1haW4gd29ybGQgYXJlCitpbnZva2VkIGZvciB1bmNh
dWdodCBleGNlcHRpb25zIGluIHVzZXIgc2NyaXB0cyBydW5uaW5nIGluIGlzb2xhdGUgd29ybGRz
IGFzCit3ZWxsIGFzIGZvciBleGNlcHRpb25zIGluIHRoZSBtYWluIHdvcmxkLjxhIGhyZWY9Imh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04NTE5Ij5CdWcgODUxOS48L2E+
Cis8L3A+Cis8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KKzxzY3JpcHQ+CisKK3ZhciBleHBlY3Rl
ZFJlY29yZENvdW50ID0gMTI7Cit2YXIgcmVjb3JkQ291bnQgPSAwOworZG9jdW1lbnQuZ2V0RWxl
bWVudEJ5SWQoImNvbnNvbGUiKS5hZGRFdmVudExpc3RlbmVyKCJET01Ob2RlSW5zZXJ0ZWQiLCBm
dW5jdGlvbihlKSB7CisgICAgcmVjb3JkQ291bnQrKzsKKyAgICBpZiAocmVjb3JkQ291bnQgPT09
IGV4cGVjdGVkUmVjb3JkQ291bnQgJiYgd2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQorICAg
ICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5ub3RpZnlEb25lKCk7Cit9LCBmYWxzZSk7CisKK2Z1
bmN0aW9uIGxvZyhtc2cpIHsKKyAgICB2YXIgcmVjb3JkID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVu
dCgiZGl2Iik7CisgICAgcmVjb3JkLmlubmVySFRNTCA9IG1zZzsKKyAgICBkb2N1bWVudC5nZXRF
bGVtZW50QnlJZCgiY29uc29sZSIpLmFwcGVuZENoaWxkKHJlY29yZCk7Cit9CisKK2Z1bmN0aW9u
IGxhc3RVcmxDb21wb25lbnQodXJsKSB7CisgICAgcmV0dXJuIHVybCA/IHVybC5tYXRjaCggL1te
XC9dK1wvPyQvIClbMF0gOiB1cmw7Cit9CisKK3dpbmRvdy5vbmVycm9yID0gZnVuY3Rpb24obXNn
LCB1cmwsIGxpbmUpCit7CisgICAgbG9nKCJNYWluIHdvcmxkIHdpbmRvdy5vbmVycm9yOiAiICsg
bXNnICsgIiBhdCAiICsgbGFzdFVybENvbXBvbmVudCh1cmwpICsgIjoiICsgbGluZSk7CisgICAg
cmV0dXJuIGZhbHNlOworfQorCit3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigiZXJyb3IiLCBmdW5j
dGlvbihlKQoreworICAgIHZhciB1cmwgPSBsYXN0VXJsQ29tcG9uZW50KGUuZmlsZW5hbWUpOwor
ICAgIGxvZygiTWFpbiB3b3JsZCBlcnJvciBldmVudCBsaXN0ZW5lcjogIiArIGUubWVzc2FnZSAr
ICIgYXQgIiArIHVybCArICI6IiArIGUubGluZW5vKTsKK30sIGZhbHNlKTsKKwordmFyIGV4Y2Vw
dGlvbnMgPSBmdW5jdGlvbihpc29sYXRlZFdvcmxkKQoreworICAgIHdpbmRvdy5hZGRFdmVudExp
c3RlbmVyKCJsb2FkIiwgZnVuY3Rpb24oZSkgeworICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIkVy
cm9yIGluICIgKyBpc29sYXRlZFdvcmxkICsgIiBsb2FkIGhhbmRsZXIuIik7CisgICAgfSwgZmFs
c2UpOworCisKKyAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uKCkgeworICAgICAgICB0aHJvdyBuZXcg
RXJyb3IoIkVycm9yIGluICIgKyBpc29sYXRlZFdvcmxkICsgIiBzZXRUaW1lb3V0IGNhbGxiYWNr
LiIpOworICAgIH0sIDApOworCisgICAgdGhyb3cgbmV3IEVycm9yKCJFcnJvciBpbiAiKyBpc29s
YXRlZFdvcmxkICsgIiBpbmxpbmUgc2NyaXB0LiIpOworfQorCitpZiAod2luZG93LmxheW91dFRl
c3RDb250cm9sbGVyKSB7CisgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOwor
ICAgIGxheW91dFRlc3RDb250cm9sbGVyLndhaXRVbnRpbERvbmUoKTsKKyAgICBsYXlvdXRUZXN0
Q29udHJvbGxlci5hZGRVc2VyU2NyaXB0KCIoIiArIGV4Y2VwdGlvbnMgKyAiKSgndXNlciBzY3Jp
cHQnKSIsIGZhbHNlLCB0cnVlKTsKK30KKworZXhjZXB0aW9ucygibWFpbiB3b3JsZCIpOworCis8
L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3VzZXJz
Y3JpcHRzL3dpbmRvdy1vbmVycm9yLWZvci1pc29sYXRlZC13b3JsZC0yLWV4cGVjdGVkLnR4dCBi
L0xheW91dFRlc3RzL3VzZXJzY3JpcHRzL3dpbmRvdy1vbmVycm9yLWZvci1pc29sYXRlZC13b3Js
ZC0yLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iOTA5
YTk5Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvdXNlcnNjcmlwdHMvd2luZG93LW9u
ZXJyb3ItZm9yLWlzb2xhdGVkLXdvcmxkLTItZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTMgQEAK
K0NPTlNPTEUgTUVTU0FHRTogbGluZSAzMDogRXJyb3I6IEVycm9yIGluIG1haW4gd29ybGQgaW5s
aW5lIHNjcmlwdC4KK1Rlc3QgdGhhdCB3aW5kb3cub25lcnJvciBhbmQgImVycm9yIiBldmVudCBs
aXN0ZW5lcnMgZnJvbSBpc29sYXRlZCB3b3JsZCBhcmUgaW52b2tlZCBmb3IgdW5jYXVnaHQgZXhj
ZXB0aW9ucyBpbiB1c2VyIHNjcmlwdHMgcnVubmluZyBpbiBpc29sYXRlIHdvcmxkcyBhcyB3ZWxs
IGFzIGZvciBleGNlcHRpb25zIGluIHRoZSBtYWluIHdvcmxkLkJ1ZyA4NTE5LgorCit1c2VyIHNj
cmlwdCB3aW5kb3cub25lcnJvcjogRXJyb3I6IEVycm9yIGluIHVzZXIgc2NyaXB0IGlubGluZSBz
Y3JpcHQuIGF0IHVuZGVmaW5lZDozMQordXNlciBzY3JpcHQgZXJyb3IgZXZlbnQgbGlzdGVuZXI6
IEVycm9yOiBFcnJvciBpbiB1c2VyIHNjcmlwdCBpbmxpbmUgc2NyaXB0LiBhdCB1bmRlZmluZWQ6
MzEKK3VzZXIgc2NyaXB0IHdpbmRvdy5vbmVycm9yOiBFcnJvcjogRXJyb3IgaW4gbWFpbiB3b3Js
ZCBsb2FkIGhhbmRsZXIuIGF0IHdpbmRvdy1vbmVycm9yLWZvci1pc29sYXRlZC13b3JsZC0yLmh0
bWw6MjMKK3VzZXIgc2NyaXB0IGVycm9yIGV2ZW50IGxpc3RlbmVyOiBFcnJvcjogRXJyb3IgaW4g
bWFpbiB3b3JsZCBsb2FkIGhhbmRsZXIuIGF0IHdpbmRvdy1vbmVycm9yLWZvci1pc29sYXRlZC13
b3JsZC0yLmh0bWw6MjMKK3VzZXIgc2NyaXB0IHdpbmRvdy5vbmVycm9yOiBFcnJvcjogRXJyb3Ig
aW4gdXNlciBzY3JpcHQgbG9hZCBoYW5kbGVyLiBhdCB1bmRlZmluZWQ6MjQKK3VzZXIgc2NyaXB0
IGVycm9yIGV2ZW50IGxpc3RlbmVyOiBFcnJvcjogRXJyb3IgaW4gdXNlciBzY3JpcHQgbG9hZCBo
YW5kbGVyLiBhdCB1bmRlZmluZWQ6MjQKK3VzZXIgc2NyaXB0IHdpbmRvdy5vbmVycm9yOiBFcnJv
cjogRXJyb3IgaW4gbWFpbiB3b3JsZCBzZXRUaW1lb3V0IGNhbGxiYWNrLiBhdCB3aW5kb3ctb25l
cnJvci1mb3ItaXNvbGF0ZWQtd29ybGQtMi5odG1sOjI3Cit1c2VyIHNjcmlwdCBlcnJvciBldmVu
dCBsaXN0ZW5lcjogRXJyb3I6IEVycm9yIGluIG1haW4gd29ybGQgc2V0VGltZW91dCBjYWxsYmFj
ay4gYXQgd2luZG93LW9uZXJyb3ItZm9yLWlzb2xhdGVkLXdvcmxkLTIuaHRtbDoyNwordXNlciBz
Y3JpcHQgd2luZG93Lm9uZXJyb3I6IEVycm9yOiBFcnJvciBpbiB1c2VyIHNjcmlwdCBzZXRUaW1l
b3V0IGNhbGxiYWNrLiBhdCB1bmRlZmluZWQ6MjgKK3VzZXIgc2NyaXB0IGVycm9yIGV2ZW50IGxp
c3RlbmVyOiBFcnJvcjogRXJyb3IgaW4gdXNlciBzY3JpcHQgc2V0VGltZW91dCBjYWxsYmFjay4g
YXQgdW5kZWZpbmVkOjI4CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy91c2Vyc2NyaXB0cy93aW5k
b3ctb25lcnJvci1mb3ItaXNvbGF0ZWQtd29ybGQtMi5odG1sIGIvTGF5b3V0VGVzdHMvdXNlcnNj
cmlwdHMvd2luZG93LW9uZXJyb3ItZm9yLWlzb2xhdGVkLXdvcmxkLTIuaHRtbApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hNmVjNjk5Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5
b3V0VGVzdHMvdXNlcnNjcmlwdHMvd2luZG93LW9uZXJyb3ItZm9yLWlzb2xhdGVkLXdvcmxkLTIu
aHRtbApAQCAtMCwwICsxLDY3IEBACis8IURPQ1RZUEUgSFRNTD4KKzxodG1sPgorPGhlYWQ+Cis8
L2hlYWQ+Cis8Ym9keT4KKzxwPlRlc3QgdGhhdCB3aW5kb3cub25lcnJvciBhbmQgImVycm9yIiBl
dmVudCBsaXN0ZW5lcnMgZnJvbSBpc29sYXRlZCB3b3JsZCBhcmUKK2ludm9rZWQgZm9yIHVuY2F1
Z2h0IGV4Y2VwdGlvbnMgaW4gdXNlciBzY3JpcHRzIHJ1bm5pbmcgaW4gaXNvbGF0ZSB3b3JsZHMg
YXMKK3dlbGwgYXMgZm9yIGV4Y2VwdGlvbnMgaW4gdGhlIG1haW4gd29ybGQuPGEgaHJlZj0iaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTg1MTkiPkJ1ZyA4NTE5LjwvYT4K
KzwvcD4KKzxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgorPHNjcmlwdD4KKwordmFyIGV4cGVjdGVk
UmVjb3JkQ291bnQgPSAxMDsKK3ZhciByZWNvcmRDb3VudCA9IDA7Citkb2N1bWVudC5nZXRFbGVt
ZW50QnlJZCgiY29uc29sZSIpLmFkZEV2ZW50TGlzdGVuZXIoIkRPTU5vZGVJbnNlcnRlZCIsIGZ1
bmN0aW9uKGUpIHsKKyAgICBpZiAoKytyZWNvcmRDb3VudCA9PT0gZXhwZWN0ZWRSZWNvcmRDb3Vu
dCAmJiB3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCisgICAgICAgIGxheW91dFRlc3RDb250
cm9sbGVyLm5vdGlmeURvbmUoKTsKK30sIGZhbHNlKTsKKwordmFyIHRocm93RXhjZXB0aW9ucyA9
IGZ1bmN0aW9uKGlzb2xhdGVkV29ybGQpCit7CisgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIo
ImxvYWQiLCBmdW5jdGlvbihlKSB7CisgICAgICAgIHRocm93IG5ldyBFcnJvcigiRXJyb3IgaW4g
IiArIGlzb2xhdGVkV29ybGQgKyAiIGxvYWQgaGFuZGxlci4iKTsKKyAgICB9LCBmYWxzZSk7CisK
KyAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uKCkgeworICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIkVy
cm9yIGluICIgKyBpc29sYXRlZFdvcmxkICsgIiBzZXRUaW1lb3V0IGNhbGxiYWNrLiIpOworICAg
IH0sIDApOworICAgIAorICAgIHRocm93IG5ldyBFcnJvcigiRXJyb3IgaW4gIisgaXNvbGF0ZWRX
b3JsZCArICIgaW5saW5lIHNjcmlwdC4iKTsKK307CisKK3ZhciBlcnJvckhhbmRsZXJzID0gZnVu
Y3Rpb24oaXNvbGF0ZWRXb3JsZCkKK3sKKyAgICBmdW5jdGlvbiBsYXN0VXJsQ29tcG9uZW50KHVy
bCkgeworICAgICAgICByZXR1cm4gdXJsID8gdXJsLm1hdGNoKCAvW15cL10rXC8/JC8gKVswXSA6
IHVybDsKKyAgICB9CisKKyAgICBmdW5jdGlvbiBsb2cobXNnKSB7CisgICAgICAgIHZhciByZWNv
cmQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTsKKyAgICAgICAgcmVjb3JkLmlubmVy
SFRNTCA9IG1zZzsKKyAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNvbnNvbGUiKS5h
cHBlbmRDaGlsZChyZWNvcmQpOworICAgIH0KKworICAgIHdpbmRvdy5vbmVycm9yID0gZnVuY3Rp
b24obXNnLCB1cmwsIGxpbmUpIHsKKyAgICAgICAgbG9nKGlzb2xhdGVkV29ybGQgKyAiIHdpbmRv
dy5vbmVycm9yOiAiICsgbXNnICsgIiBhdCAiICsgbGFzdFVybENvbXBvbmVudCh1cmwpICsgIjoi
ICsgbGluZSwgIioiKTsKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KKworICAgIHdpbmRv
dy5hZGRFdmVudExpc3RlbmVyKCJlcnJvciIsIGZ1bmN0aW9uKGUpIHsKKyAgICAgICAgdmFyIHVy
bCA9IGxhc3RVcmxDb21wb25lbnQoZS5maWxlbmFtZSk7CisgICAgICAgIGxvZyhpc29sYXRlZFdv
cmxkICsgIiBlcnJvciBldmVudCBsaXN0ZW5lcjogIiArIGUubWVzc2FnZSArICIgYXQgIiArIHVy
bCArICI6IiArIGUubGluZW5vLCAiKiIpOworICAgICAgICBlLnByZXZlbnREZWZhdWx0KCk7Cisg
ICAgfSwgZmFsc2UpOworfTsKKworaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikgewor
ICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKKyAgICBsYXlvdXRUZXN0Q29u
dHJvbGxlci53YWl0VW50aWxEb25lKCk7CisgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuYWRkVXNl
clNjcmlwdCgiKCIgKyBlcnJvckhhbmRsZXJzICsgIikoJ3VzZXIgc2NyaXB0Jyk7ICgiICsgdGhy
b3dFeGNlcHRpb25zICsgIikoJ3VzZXIgc2NyaXB0JykiLCBmYWxzZSwgdHJ1ZSk7Cit9CisKK3Ro
cm93RXhjZXB0aW9ucygibWFpbiB3b3JsZCIpOworCis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRt
bD4KZGlmZiAtLWdpdCBhL1dlYkNvcmUvQW5kcm9pZC5qc2NiaW5kaW5ncy5tayBiL1dlYkNvcmUv
QW5kcm9pZC5qc2NiaW5kaW5ncy5tawppbmRleCA2NTNkZmVjLi5lN2ZkMmZjIDEwMDY0NAotLS0g
YS9XZWJDb3JlL0FuZHJvaWQuanNjYmluZGluZ3MubWsKKysrIGIvV2ViQ29yZS9BbmRyb2lkLmpz
Y2JpbmRpbmdzLm1rCkBAIC0xMDIsNiArMTAyLDcgQEAgTE9DQUxfU1JDX0ZJTEVTICs9IFwKIAli
aW5kaW5ncy9qcy9KU0RldmljZU9yaWVudGF0aW9uRXZlbnRDdXN0b20uY3BwIFwKIAliaW5kaW5n
cy9qcy9KU0RvY3VtZW50Q3VzdG9tLmNwcCBcCiAJYmluZGluZ3MvanMvSlNFbGVtZW50Q3VzdG9t
LmNwcCBcCisJYmluZGluZ3MvanMvSlNFcnJvckhhbmRsZXIuY3BwIFwKIAliaW5kaW5ncy9qcy9K
U0V2ZW50Q3VzdG9tLmNwcCBcCiAJYmluZGluZ3MvanMvSlNFdmVudExpc3RlbmVyLmNwcCBcCiAJ
YmluZGluZ3MvanMvSlNFdmVudFRhcmdldC5jcHAgXApAQCAtMTcwLDcgKzE3MSw2IEBAIExPQ0FM
X1NSQ19GSUxFUyArPSBcCiAJYmluZGluZ3MvanMvSlNXZWJLaXRQb2ludEN1c3RvbS5jcHAgXAog
CWJpbmRpbmdzL2pzL0pTV29ya2VyQ29udGV4dEJhc2UuY3BwIFwKIAliaW5kaW5ncy9qcy9KU1dv
cmtlckNvbnRleHRDdXN0b20uY3BwIFwKLQliaW5kaW5ncy9qcy9KU1dvcmtlckNvbnRleHRFcnJv
ckhhbmRsZXIuY3BwIFwKIAliaW5kaW5ncy9qcy9KU1dvcmtlckN1c3RvbS5jcHAgXAogCWJpbmRp
bmdzL2pzL0pTWE1MSHR0cFJlcXVlc3RDdXN0b20uY3BwIFwKIAliaW5kaW5ncy9qcy9KU1hNTEh0
dHBSZXF1ZXN0VXBsb2FkQ3VzdG9tLmNwcCBcCmRpZmYgLS1naXQgYS9XZWJDb3JlL0NNYWtlTGlz
dHMudHh0IGIvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAppbmRleCA3YzZlM2U1Li43M2NjNzUxIDEw
MDY0NAotLS0gYS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CisrKyBiL1dlYkNvcmUvQ01ha2VMaXN0
cy50eHQKQEAgLTYzNSw2ICs2MzUsNyBAQCBTRVQoV2ViQ29yZV9TT1VSQ0VTCiAgICAgYmluZGlu
Z3MvanMvSlNEZXZpY2VPcmllbnRhdGlvbkV2ZW50Q3VzdG9tLmNwcAogICAgIGJpbmRpbmdzL2pz
L0pTRG9jdW1lbnRDdXN0b20uY3BwCiAgICAgYmluZGluZ3MvanMvSlNFbGVtZW50Q3VzdG9tLmNw
cAorICAgIGJpbmRpbmdzL2pzL0pTRXJyb3JIYW5kbGVyLmNwcAogICAgIGJpbmRpbmdzL2pzL0pT
RXZlbnRDdXN0b20uY3BwCiAgICAgYmluZGluZ3MvanMvSlNFdmVudExpc3RlbmVyLmNwcAogICAg
IGJpbmRpbmdzL2pzL0pTRXZlbnRTb3VyY2VDdXN0b20uY3BwCkBAIC03MDQsNyArNzA1LDYgQEAg
U0VUKFdlYkNvcmVfU09VUkNFUwogICAgIGJpbmRpbmdzL2pzL0pTV2ViU29ja2V0Q3VzdG9tLmNw
cAogICAgIGJpbmRpbmdzL2pzL0pTV29ya2VyQ29udGV4dEJhc2UuY3BwCiAgICAgYmluZGluZ3Mv
anMvSlNXb3JrZXJDb250ZXh0Q3VzdG9tLmNwcAotICAgIGJpbmRpbmdzL2pzL0pTV29ya2VyQ29u
dGV4dEVycm9ySGFuZGxlci5jcHAKICAgICBiaW5kaW5ncy9qcy9KU1dvcmtlckN1c3RvbS5jcHAK
ICAgICBiaW5kaW5ncy9qcy9KU1hNTEh0dHBSZXF1ZXN0Q3VzdG9tLmNwcAogICAgIGJpbmRpbmdz
L2pzL0pTWE1MSHR0cFJlcXVlc3RVcGxvYWRDdXN0b20uY3BwCmRpZmYgLS1naXQgYS9XZWJDb3Jl
L0NoYW5nZUxvZyBiL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IGViZjIzYzUuLjE5YjEzZWQgMTAw
NjQ0Ci0tLSBhL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0x
LDMgKzEsMTEyIEBACisyMDEwLTEyLTI3ICBZdXJ5IFNlbWlraGF0c2t5ICA8eXVyeXNAY2hyb21p
dW0ub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IFdlYkNvcmUgZG9lc24ndCBmaXJlIHdpbmRvdy5vbmVycm9yIGV2ZW50IHdoZW4gdW5jYXVnaHQg
SmF2YVNjcmlwdCBleGNlcHRpb25zIGFyZSB0aHJvd24KKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTg1MTkKKworICAgICAgICBVbmNhdWdodCBleGNlcHRp
b25zIGFyZSBwcm9wYWdhdGVkIHRvIHdpbmRvdy5vbmVycm9yIGhhbmRlciBpZiBvbmUgaXMgcHJl
c2VudC4KKyAgICAgICAgVGhlIGhhbmRsZXIgaXMgZXhwZWN0ZWQgdG8gYmUgYSBmdW5jdGlvbiBh
Y2NlcHRpbmcgdGhyZWUgYXJndW1lbnRzOiBlcnJvciBtZXNzYWdlLAorICAgICAgICByZXNvdXJj
ZSB1cmwgYW5kIGxpbmUgbnVtYmVyIHdoZXJlIHRoZSBleGNlcHRpb24gb2NjdXJlZC4KKworICAg
ICAgICBJdCB3YXMgZGVjaWRlZCB0byBkaXNwYXRjaCBFcnJvckV2ZW50IHRvIGFsbCBsaXN0ZW5l
cnMvaGFuZGxlcnMgbm8gbWF0dGVyIGlmIHRoZXkKKyAgICAgICAgd2VyZSBjcmVhdGVkIGluIHRo
ZSBzYW1lIGlzb2xhdGVkIHdvcmxkIHdoZXJlIHRoZSBleGNlcHRpb24gb2NjdXJlZCBvciBub3Qu
CisKKyAgICAgICAgVGVzdHM6IGZhc3QvZXZlbnRzL3dpbmRvdy1vbmVycm9yMS5odG1sCisgICAg
ICAgICAgICAgICBmYXN0L2V2ZW50cy93aW5kb3ctb25lcnJvcjEwLmh0bWwKKyAgICAgICAgICAg
ICAgIGZhc3QvZXZlbnRzL3dpbmRvdy1vbmVycm9yMTEuaHRtbAorICAgICAgICAgICAgICAgZmFz
dC9ldmVudHMvd2luZG93LW9uZXJyb3IxMi5odG1sCisgICAgICAgICAgICAgICBmYXN0L2V2ZW50
cy93aW5kb3ctb25lcnJvcjIuaHRtbAorICAgICAgICAgICAgICAgZmFzdC9ldmVudHMvd2luZG93
LW9uZXJyb3IzLmh0bWwKKyAgICAgICAgICAgICAgIGZhc3QvZXZlbnRzL3dpbmRvdy1vbmVycm9y
NC5odG1sCisgICAgICAgICAgICAgICBmYXN0L2V2ZW50cy93aW5kb3ctb25lcnJvcjUuaHRtbAor
ICAgICAgICAgICAgICAgZmFzdC9ldmVudHMvd2luZG93LW9uZXJyb3I2Lmh0bWwKKyAgICAgICAg
ICAgICAgIGZhc3QvZXZlbnRzL3dpbmRvdy1vbmVycm9yNy5odG1sCisgICAgICAgICAgICAgICBm
YXN0L2V2ZW50cy93aW5kb3ctb25lcnJvcjguaHRtbAorICAgICAgICAgICAgICAgZmFzdC9ldmVu
dHMvd2luZG93LW9uZXJyb3I5Lmh0bWwKKyAgICAgICAgICAgICAgIGh0dHAvdGVzdHMvc2VjdXJp
dHkvd2luZG93LW9uZXJyb3ItZXhjZXB0aW9uLWluLWlmcmFtZS5odG1sCisgICAgICAgICAgICAg
ICB1c2Vyc2NyaXB0cy93aW5kb3ctb25lcnJvci1mb3ItaXNvbGF0ZWQtd29ybGQtMS5odG1sCisg
ICAgICAgICAgICAgICB1c2Vyc2NyaXB0cy93aW5kb3ctb25lcnJvci1mb3ItaXNvbGF0ZWQtd29y
bGQtMi5odG1sCisKKyAgICAgICAgKiBBbmRyb2lkLmpzY2JpbmRpbmdzLm1rOgorICAgICAgICAq
IENNYWtlTGlzdHMudHh0OgorICAgICAgICAqIEdOVW1ha2VmaWxlLmFtOgorICAgICAgICAqIFdl
YkNvcmUuZ3lwaToKKyAgICAgICAgKiBXZWJDb3JlLm9yZGVyOgorICAgICAgICAqIFdlYkNvcmUu
cHJvOgorICAgICAgICAqIFdlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qOgorICAgICAgICAq
IFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBiaW5kaW5ncy9q
cy9KU0JpbmRpbmdzQWxsSW5PbmUuY3BwOgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pTRE9NQmlu
ZGluZy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpyZXBvcnRFeGNlcHRpb24pOgorICAgICAgICAq
IGJpbmRpbmdzL2pzL0pTRXJyb3JIYW5kbGVyLmNwcDogUmVuYW1lZCBmcm9tIFdlYkNvcmUvYmlu
ZGluZ3MvanMvSlNXb3JrZXJDb250ZXh0RXJyb3JIYW5kbGVyLmNwcC4KKyAgICAgICAgKFdlYkNv
cmU6OkpTRXJyb3JIYW5kbGVyOjpKU0Vycm9ySGFuZGxlcik6CisgICAgICAgIChXZWJDb3JlOjpK
U0Vycm9ySGFuZGxlcjo6fkpTRXJyb3JIYW5kbGVyKToKKyAgICAgICAgKFdlYkNvcmU6OkpTRXJy
b3JIYW5kbGVyOjpoYW5kbGVFdmVudCk6CisgICAgICAgICogYmluZGluZ3MvanMvSlNFcnJvckhh
bmRsZXIuaDogQ29waWVkIGZyb20gV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1dvcmtlckNvbnRleHRF
cnJvckhhbmRsZXIuaC4KKyAgICAgICAgKFdlYkNvcmU6OkpTRXJyb3JIYW5kbGVyOjpjcmVhdGUp
OgorICAgICAgICAoV2ViQ29yZTo6Y3JlYXRlSlNFcnJvckhhbmRsZXIpOgorICAgICAgICAqIGJp
bmRpbmdzL2pzL0pTRXZlbnRMaXN0ZW5lci5oOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMv
Q29kZUdlbmVyYXRvckpTLnBtOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVy
YXRvclY4LnBtOgorICAgICAgICAqIGJpbmRpbmdzL3Y4L1Y4Q29uc29sZU1lc3NhZ2UuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6VjhDb25zb2xlTWVzc2FnZTo6ZGlzcGF0Y2hOb3cpOgorICAgICAg
ICAoV2ViQ29yZTo6VjhDb25zb2xlTWVzc2FnZTo6aGFuZGxlcik6IHRoZSBtZXRob2Qgd2FzIGNo
YW5nZWQgdG8gdXNlIGdlbmVyaWMgV2ViQ29yZSBleGNlcHRpb24KKyAgICAgICAgcmVwb3J0aW5n
IG1lY2hhbmlzbSB3aGljaCBpcyBhbHNvIHVzZWQgYnkgSlNDIGJpbmRpbmdzLgorICAgICAgICAq
IGJpbmRpbmdzL3Y4L1Y4Q29uc29sZU1lc3NhZ2UuaDoKKyAgICAgICAgKiBiaW5kaW5ncy92OC9W
OEV2ZW50TGlzdGVuZXIuaDoKKyAgICAgICAgKiBiaW5kaW5ncy92OC9WOFdpbmRvd0Vycm9ySGFu
ZGxlci5jcHA6IFJlbmFtZWQgZnJvbSBXZWJDb3JlL2JpbmRpbmdzL2pzL0pTV29ya2VyQ29udGV4
dEVycm9ySGFuZGxlci5oLgorICAgICAgICAoV2ViQ29yZTo6VjhXaW5kb3dFcnJvckhhbmRsZXI6
OlY4V2luZG93RXJyb3JIYW5kbGVyKToKKyAgICAgICAgKFdlYkNvcmU6OlY4V2luZG93RXJyb3JI
YW5kbGVyOjpjYWxsTGlzdGVuZXJGdW5jdGlvbik6CisgICAgICAgICogYmluZGluZ3MvdjgvVjhX
aW5kb3dFcnJvckhhbmRsZXIuaDogQ29waWVkIGZyb20gV2ViQ29yZS9kb20vRXJyb3JFdmVudC5j
cHAuCisgICAgICAgIChXZWJDb3JlOjpWOFdpbmRvd0Vycm9ySGFuZGxlcjo6Y3JlYXRlKToKKyAg
ICAgICAgKiBiaW5kaW5ncy92OC9Xb3JrZXJDb250ZXh0RXhlY3V0aW9uUHJveHkuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6djhNZXNzYWdlSGFuZGxlcik6CisgICAgICAgICogYmluZGluZ3Mvdjgv
V29ya2VyU2NyaXB0Q29udHJvbGxlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpXb3JrZXJTY3Jp
cHRDb250cm9sbGVyOjpldmFsdWF0ZSk6CisgICAgICAgICogZG9tL0RvY3VtZW50LmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OkRvY3VtZW50OjplcnJvckV2ZW50VGFyZ2V0KToKKyAgICAgICAgKFdl
YkNvcmU6OkRvY3VtZW50Ojpsb2dFeGNlcHRpb25Ub0NvbnNvbGUpOgorICAgICAgICAoV2ViQ29y
ZTo6RG9jdW1lbnQ6OmFkZE1lc3NhZ2UpOgorICAgICAgICAqIGRvbS9Eb2N1bWVudC5oOgorICAg
ICAgICAqIGRvbS9FcnJvckV2ZW50LmNwcDoKKyAgICAgICAgKiBkb20vRXJyb3JFdmVudC5oOgor
ICAgICAgICAqIGRvbS9FdmVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpFdmVudDo6aXNFcnJv
ckV2ZW50KToKKyAgICAgICAgKiBkb20vRXZlbnQuaDoKKyAgICAgICAgKiBkb20vU2NyaXB0RXhl
Y3V0aW9uQ29udGV4dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTY3JpcHRFeGVjdXRpb25Db250
ZXh0OjpQZW5kaW5nRXhjZXB0aW9uOjpQZW5kaW5nRXhjZXB0aW9uKToKKyAgICAgICAgKFdlYkNv
cmU6OlNjcmlwdEV4ZWN1dGlvbkNvbnRleHQ6OlNjcmlwdEV4ZWN1dGlvbkNvbnRleHQpOgorICAg
ICAgICAoV2ViQ29yZTo6U2NyaXB0RXhlY3V0aW9uQ29udGV4dDo6cmVwb3J0RXhjZXB0aW9uKTog
dGhpcyBtZXRob2QgaXMgbm90IHZpcnR1YWwgYW55bW9yZSB0bworICAgICAgICBlbnN1cmUgdGhh
dCBlcnJvciBldmVudCBkaXNwYXRjaGluZyBhbGdvcml0aG0gaXMgdGhlIHNhbWUgaW4gV29ya2Vy
Q29udGV4dCBhbmQgaW4gRG9jdW1lbnQuCisgICAgICAgIChXZWJDb3JlOjpTY3JpcHRFeGVjdXRp
b25Db250ZXh0OjpkaXNwYXRjaEVycm9yRXZlbnQpOgorICAgICAgICAqIGRvbS9TY3JpcHRFeGVj
dXRpb25Db250ZXh0Lmg6CisgICAgICAgICogd2Vic29ja2V0cy9XZWJTb2NrZXQuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6V2ViU29ja2V0Ojpjb25uZWN0KToKKyAgICAgICAgKiB3ZWJzb2NrZXRz
L1dlYlNvY2tldENoYW5uZWwuY3BwOgorICAgICAgICAoV2ViQ29yZTo6V2ViU29ja2V0Q2hhbm5l
bDo6ZGlkT3Blbik6CisgICAgICAgIChXZWJDb3JlOjpXZWJTb2NrZXRDaGFubmVsOjpkaWRGYWls
KToKKyAgICAgICAgKFdlYkNvcmU6OldlYlNvY2tldENoYW5uZWw6OmFwcGVuZFRvQnVmZmVyKToK
KyAgICAgICAgKiB3ZWJzb2NrZXRzL1dlYlNvY2tldEhhbmRzaGFrZS5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpXZWJTb2NrZXRIYW5kc2hha2U6OnJlYWRTZXJ2ZXJIYW5kc2hha2UpOgorICAgICAg
ICAoV2ViQ29yZTo6V2ViU29ja2V0SGFuZHNoYWtlOjpyZWFkU3RhdHVzTGluZSk6CisgICAgICAg
IChXZWJDb3JlOjpXZWJTb2NrZXRIYW5kc2hha2U6OnJlYWRIVFRQSGVhZGVycyk6CisgICAgICAg
IChXZWJDb3JlOjpXZWJTb2NrZXRIYW5kc2hha2U6OmNoZWNrUmVzcG9uc2VIZWFkZXJzKToKKyAg
ICAgICAgKiB3b3JrZXJzL0RlZmF1bHRTaGFyZWRXb3JrZXJSZXBvc2l0b3J5LmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OnBvc3RFeGNlcHRpb25UYXNrKToKKyAgICAgICAgKFdlYkNvcmU6OnBvc3RD
b25zb2xlTWVzc2FnZVRhc2spOgorICAgICAgICAqIHdvcmtlcnMvV29ya2VyQ29udGV4dC5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpXb3JrZXJDb250ZXh0OjpXb3JrZXJDb250ZXh0KToKKyAgICAg
ICAgKFdlYkNvcmU6OldvcmtlckNvbnRleHQ6OmVycm9yRXZlbnRUYXJnZXQpOgorICAgICAgICAo
V2ViQ29yZTo6V29ya2VyQ29udGV4dDo6bG9nRXhjZXB0aW9uVG9Db25zb2xlKToKKyAgICAgICAg
KFdlYkNvcmU6OldvcmtlckNvbnRleHQ6OmFkZE1lc3NhZ2UpOgorICAgICAgICAqIHdvcmtlcnMv
V29ya2VyQ29udGV4dC5oOgorICAgICAgICAqIHdvcmtlcnMvV29ya2VyTWVzc2FnaW5nUHJveHku
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6V29ya2VyRXhjZXB0aW9uVGFzazo6cGVyZm9ybVRhc2sp
OgorICAgICAgICAoV2ViQ29yZTo6cG9zdENvbnNvbGVNZXNzYWdlVGFzayk6CisgICAgICAgICog
eG1sL1hNTEh0dHBSZXF1ZXN0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OnJlcG9ydFVuc2FmZVVz
YWdlKToKKwogMjAxMC0xMi0yNiAgTU9SSVRBIEhhamltZSAgPG1vcnJpdGFAZ29vZ2xlLmNvbT4K
IAogICAgICAgICBSZXZpZXdlZCBieSBEYW4gQmVybnN0ZWluLgpkaWZmIC0tZ2l0IGEvV2ViQ29y
ZS9HTlVtYWtlZmlsZS5hbSBiL1dlYkNvcmUvR05VbWFrZWZpbGUuYW0KaW5kZXggZjEwOGY4Ni4u
ZWRmZTBlOSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9HTlVtYWtlZmlsZS5hbQorKysgYi9XZWJDb3Jl
L0dOVW1ha2VmaWxlLmFtCkBAIC03NzUsNiArNzc1LDggQEAgd2ViY29yZV9zb3VyY2VzICs9IFwK
IAlXZWJDb3JlL2JpbmRpbmdzL2pzL0pTRWxlbWVudEN1c3RvbS5jcHAgXAogCVdlYkNvcmUvYmlu
ZGluZ3MvanMvSlNFbnRyeUN1c3RvbS5jcHAgXAogCVdlYkNvcmUvYmluZGluZ3MvanMvSlNFbnRy
eVN5bmNDdXN0b20uY3BwIFwKKwlXZWJDb3JlL2JpbmRpbmdzL2pzL0pTRXJyb3JIYW5kbGVyLmNw
cCBcCisJV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0Vycm9ySGFuZGxlci5oIFwKIAlXZWJDb3JlL2Jp
bmRpbmdzL2pzL0pTRXZlbnRDdXN0b20uY3BwIFwKIAlXZWJDb3JlL2JpbmRpbmdzL2pzL0pTRXZl
bnRMaXN0ZW5lci5jcHAgXAogCVdlYkNvcmUvYmluZGluZ3MvanMvSlNFdmVudExpc3RlbmVyLmgg
XApAQCAtODcyLDggKzg3NCw2IEBAIHdlYmNvcmVfc291cmNlcyArPSBcCiAJV2ViQ29yZS9iaW5k
aW5ncy9qcy9KU1dvcmtlckNvbnRleHRCYXNlLmNwcCBcCiAJV2ViQ29yZS9iaW5kaW5ncy9qcy9K
U1dvcmtlckNvbnRleHRCYXNlLmggXAogCVdlYkNvcmUvYmluZGluZ3MvanMvSlNXb3JrZXJDb250
ZXh0Q3VzdG9tLmNwcCBcCi0JV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1dvcmtlckNvbnRleHRFcnJv
ckhhbmRsZXIuY3BwIFwKLQlXZWJDb3JlL2JpbmRpbmdzL2pzL0pTV29ya2VyQ29udGV4dEVycm9y
SGFuZGxlci5oIFwKIAlXZWJDb3JlL2JpbmRpbmdzL2pzL0pTV29ya2VyQ3VzdG9tLmNwcCBcCiAJ
V2ViQ29yZS9iaW5kaW5ncy9qcy9KU1hNTEh0dHBSZXF1ZXN0Q3VzdG9tLmNwcCBcCiAJV2ViQ29y
ZS9iaW5kaW5ncy9qcy9KU1hNTEh0dHBSZXF1ZXN0VXBsb2FkQ3VzdG9tLmNwcCBcCmRpZmYgLS1n
aXQgYS9XZWJDb3JlL1dlYkNvcmUuZ3lwaSBiL1dlYkNvcmUvV2ViQ29yZS5neXBpCmluZGV4IDRm
NGI0NjMuLmRiZDk2NGYgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvV2ViQ29yZS5neXBpCisrKyBiL1dl
YkNvcmUvV2ViQ29yZS5neXBpCkBAIC02MjQsNiArNjI0LDggQEAKICAgICAgICAgICAgICdiaW5k
aW5ncy9qcy9KU0VsZW1lbnRDdXN0b20uY3BwJywKICAgICAgICAgICAgICdiaW5kaW5ncy9qcy9K
U0VudHJ5Q3VzdG9tLmNwcCcsCiAgICAgICAgICAgICAnYmluZGluZ3MvanMvSlNFbnRyeVN5bmND
dXN0b20uY3BwJywKKyAgICAgICAgICAgICdiaW5kaW5ncy9qcy9KU0Vycm9ySGFuZGxlci5jcHAn
LAorICAgICAgICAgICAgJ2JpbmRpbmdzL2pzL0pTRXJyb3JIYW5kbGVyLmgnLAogICAgICAgICAg
ICAgJ2JpbmRpbmdzL2pzL0pTRXZlbnRDdXN0b20uY3BwJywKICAgICAgICAgICAgICdiaW5kaW5n
cy9qcy9KU0V2ZW50TGlzdGVuZXIuY3BwJywKICAgICAgICAgICAgICdiaW5kaW5ncy9qcy9KU0V2
ZW50TGlzdGVuZXIuaCcsCkBAIC03MjEsOCArNzIzLDYgQEAKICAgICAgICAgICAgICdiaW5kaW5n
cy9qcy9KU1dvcmtlckNvbnRleHRCYXNlLmNwcCcsCiAgICAgICAgICAgICAnYmluZGluZ3MvanMv
SlNXb3JrZXJDb250ZXh0QmFzZS5oJywKICAgICAgICAgICAgICdiaW5kaW5ncy9qcy9KU1dvcmtl
ckNvbnRleHRDdXN0b20uY3BwJywKLSAgICAgICAgICAgICdiaW5kaW5ncy9qcy9KU1dvcmtlckNv
bnRleHRFcnJvckhhbmRsZXIuY3BwJywKLSAgICAgICAgICAgICdiaW5kaW5ncy9qcy9KU1dvcmtl
ckNvbnRleHRFcnJvckhhbmRsZXIuaCcsCiAgICAgICAgICAgICAnYmluZGluZ3MvanMvSlNXb3Jr
ZXJDdXN0b20uY3BwJywKICAgICAgICAgICAgICdiaW5kaW5ncy9qcy9KU1hNTEh0dHBSZXF1ZXN0
Q3VzdG9tLmNwcCcsCiAgICAgICAgICAgICAnYmluZGluZ3MvanMvSlNYTUxIdHRwUmVxdWVzdFVw
bG9hZEN1c3RvbS5jcHAnLApAQCAtOTg0LDYgKzk4NCw4IEBACiAgICAgICAgICAgICAnYmluZGlu
Z3MvdjgvVjhQcm94eS5oJywKICAgICAgICAgICAgICdiaW5kaW5ncy92OC9WOFV0aWxpdGllcy5j
cHAnLAogICAgICAgICAgICAgJ2JpbmRpbmdzL3Y4L1Y4VXRpbGl0aWVzLmgnLAorICAgICAgICAg
ICAgJ2JpbmRpbmdzL3Y4L1Y4V2luZG93RXJyb3JIYW5kbGVyLmNwcCcsCisgICAgICAgICAgICAn
YmluZGluZ3MvdjgvVjhXaW5kb3dFcnJvckhhbmRsZXIuaCcsCiAgICAgICAgICAgICAnYmluZGlu
Z3MvdjgvVjhXb3JrZXJDb250ZXh0RXJyb3JIYW5kbGVyLmNwcCcsCiAgICAgICAgICAgICAnYmlu
ZGluZ3MvdjgvVjhXb3JrZXJDb250ZXh0RXJyb3JIYW5kbGVyLmgnLAogICAgICAgICAgICAgJ2Jp
bmRpbmdzL3Y4L1Y4V29ya2VyQ29udGV4dEV2ZW50TGlzdGVuZXIuY3BwJywKZGlmZiAtLWdpdCBh
L1dlYkNvcmUvV2ViQ29yZS5vcmRlciBiL1dlYkNvcmUvV2ViQ29yZS5vcmRlcgppbmRleCAyNzFk
ZmM5Li4zYWI4OTM2IDEwMDY0NAotLS0gYS9XZWJDb3JlL1dlYkNvcmUub3JkZXIKKysrIGIvV2Vi
Q29yZS9XZWJDb3JlLm9yZGVyCkBAIC0yNTIwOCwxMyArMjUyMDgsOSBAQCBfX1pON1dlYkNvcmUx
NUpTV29ya2VyQ29udGV4dDEwc2V0VGltZW91dEVQTjNKU0M5RXhlY1N0YXRlRVJLTlMxXzdBcmdM
aXN0RQogX19aTjdXZWJDb3JlMTNXb3JrZXJDb250ZXh0MTBzZXRUaW1lb3V0RVBOU18xNVNjaGVk
dWxlZEFjdGlvbkVpCiBfX1pON1dlYkNvcmUxN1dvcmtlclNoYXJlZFRpbWVyMTFzZXRGaXJlVGlt
ZUVkCiBfX1pON1dlYkNvcmUxNVNjaGVkdWxlZEFjdGlvbjdleGVjdXRlRVBOU18xM1dvcmtlckNv
bnRleHRFCi1fX1pON1dlYkNvcmUyN0pTV29ya2VyQ29udGV4dEVycm9ySGFuZGxlckMxRVBOM0pT
QzhKU09iamVjdEVTM19iUE5TXzE1RE9NV3JhcHBlcldvcmxkRQotX19aTjdXZWJDb3JlMjdKU1dv
cmtlckNvbnRleHRFcnJvckhhbmRsZXJDMkVQTjNKU0M4SlNPYmplY3RFUzNfYlBOU18xNURPTVdy
YXBwZXJXb3JsZEUKIF9fWk43V2ViQ29yZTEwRXJyb3JFdmVudEMxRVJLTlNfNlN0cmluZ0VTM19q
CiBfX1pON1dlYkNvcmUxMEVycm9yRXZlbnRDMkVSS05TXzZTdHJpbmdFUzNfagotX19aTjdXZWJD
b3JlMjdKU1dvcmtlckNvbnRleHRFcnJvckhhbmRsZXIxMWhhbmRsZUV2ZW50RVBOU18yMlNjcmlw
dEV4ZWN1dGlvbkNvbnRleHRFUE5TXzVFdmVudEUKIF9fWk43V2ViQ29yZTEwRXJyb3JFdmVudEQw
RXYKLV9fWk43V2ViQ29yZTI3SlNXb3JrZXJDb250ZXh0RXJyb3JIYW5kbGVyRDBFdgogX19aTjdX
ZWJDb3JlMTdqc1dvcmtlck9ubWVzc2FnZUVQTjNKU0M5RXhlY1N0YXRlRU5TMF83SlNWYWx1ZUVS
S05TMF8xMElkZW50aWZpZXJFCiBfX1pON1dlYkNvcmUzNGpzV29ya2VyUHJvdG90eXBlRnVuY3Rp
b25UZXJtaW5hdGVFUE4zSlNDOUV4ZWNTdGF0ZUVQTlMwXzhKU09iamVjdEVOUzBfN0pTVmFsdWVF
UktOUzBfN0FyZ0xpc3RFCiBfX1pUaG44X043V2ViQ29yZTIwV29ya2VyTWVzc2FnaW5nUHJveHkx
OXdvcmtlckNvbnRleHRDbG9zZWRFdgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9XZWJDb3JlLnBybyBi
L1dlYkNvcmUvV2ViQ29yZS5wcm8KaW5kZXggYWFjNzYwYS4uZjcwODM5ZSAxMDA2NDQKLS0tIGEv
V2ViQ29yZS9XZWJDb3JlLnBybworKysgYi9XZWJDb3JlL1dlYkNvcmUucHJvCkBAIC00MDEsNiAr
NDAxLDcgQEAgdjggewogICAgICAgICBiaW5kaW5ncy92OC9WOE5vZGVGaWx0ZXJDb25kaXRpb24u
Y3BwIFwKICAgICAgICAgYmluZGluZ3MvdjgvVjhQcm94eS5jcHAgXAogICAgICAgICBiaW5kaW5n
cy92OC9WOFV0aWxpdGllcy5jcHAgXAorICAgICAgICBiaW5kaW5ncy92OC9WOFdpbmRvd0Vycm9y
SGFuZGxlci5jcHAgXAogICAgICAgICBiaW5kaW5ncy92OC9WOFdvcmtlckNvbnRleHRFdmVudExp
c3RlbmVyLmNwcCBcCiAgICAgICAgIGJpbmRpbmdzL3Y4L1dvcmtlckNvbnRleHRFeGVjdXRpb25Q
cm94eS5jcHAgXAogICAgICAgICBiaW5kaW5ncy92OC9Xb3JrZXJTY3JpcHRDb250cm9sbGVyLmNw
cCBcCkBAIC01NDIsNiArNTQzLDcgQEAgdjggewogICAgICAgICBiaW5kaW5ncy9qcy9KU0Rldmlj
ZU9yaWVudGF0aW9uRXZlbnRDdXN0b20uY3BwIFwKICAgICAgICAgYmluZGluZ3MvanMvSlNEb2N1
bWVudEN1c3RvbS5jcHAgXAogICAgICAgICBiaW5kaW5ncy9qcy9KU0VsZW1lbnRDdXN0b20uY3Bw
IFwKKyAgICAgICAgYmluZGluZ3MvanMvSlNFcnJvckhhbmRsZXIuY3BwIFwKICAgICAgICAgYmlu
ZGluZ3MvanMvSlNFdmVudEN1c3RvbS5jcHAgXAogICAgICAgICBiaW5kaW5ncy9qcy9KU0V2ZW50
TGlzdGVuZXIuY3BwIFwKICAgICAgICAgYmluZGluZ3MvanMvSlNFdmVudFNvdXJjZUN1c3RvbS5j
cHAgXApAQCAtNjAxLDcgKzYwMyw2IEBAIHY4IHsKICAgICAgICAgYmluZGluZ3MvanMvSlNXZWJL
aXRDU1NLZXlmcmFtZXNSdWxlQ3VzdG9tLmNwcCBcCiAgICAgICAgIGJpbmRpbmdzL2pzL0pTV2Vi
S2l0Q1NTTWF0cml4Q3VzdG9tLmNwcCBcCiAgICAgICAgIGJpbmRpbmdzL2pzL0pTV2ViS2l0UG9p
bnRDdXN0b20uY3BwIFwKLSAgICAgICAgYmluZGluZ3MvanMvSlNXb3JrZXJDb250ZXh0RXJyb3JI
YW5kbGVyLmNwcCBcCiAgICAgICAgIGJpbmRpbmdzL2pzL0pTWE1MSHR0cFJlcXVlc3RDdXN0b20u
Y3BwIFwKICAgICAgICAgYmluZGluZ3MvanMvSlNYTUxIdHRwUmVxdWVzdFVwbG9hZEN1c3RvbS5j
cHAgXAogICAgICAgICBiaW5kaW5ncy9qcy9TY2hlZHVsZWRBY3Rpb24uY3BwIFwKQEAgLTE0NzMs
NiArMTQ3NCw3IEBAIHY4IHsKICAgICAgICAgYmluZGluZ3MvdjgvVjhOUFV0aWxzLmggXAogICAg
ICAgICBiaW5kaW5ncy92OC9WOFByb3h5LmggXAogICAgICAgICBiaW5kaW5ncy92OC9WOFV0aWxp
dGllcy5oIFwKKyAgICAgICAgYmluZGluZ3MvdjgvVjhXaW5kb3dFcnJvckhhbmRsZXIuaCBcCiAg
ICAgICAgIGJpbmRpbmdzL3Y4L1Y4V29ya2VyQ29udGV4dEV2ZW50TGlzdGVuZXIuaCBcCiAgICAg
ICAgIGJpbmRpbmdzL3Y4L1dvcmtlckNvbnRleHRFeGVjdXRpb25Qcm94eS5oIFwKICAgICAgICAg
YmluZGluZ3MvdjgvV29ya2VyU2NyaXB0Q29udHJvbGxlci5oIFwKQEAgLTE0OTksNiArMTUwMSw3
IEBAIHY4IHsKICAgICAgICAgYmluZGluZ3MvanMvSlNET01XaW5kb3dDdXN0b20uaCBcCiAgICAg
ICAgIGJpbmRpbmdzL2pzL0pTRE9NV2luZG93U2hlbGwuaCBcCiAgICAgICAgIGJpbmRpbmdzL2pz
L0pTRE9NV3JhcHBlci5oIFwKKyAgICAgICAgYmluZGluZ3MvanMvSlNFcnJvckhhbmRsZXIuaCBc
CiAgICAgICAgIGJpbmRpbmdzL2pzL0pTRXZlbnRMaXN0ZW5lci5oIFwKICAgICAgICAgYmluZGlu
Z3MvanMvSlNFdmVudFRhcmdldC5oIFwKICAgICAgICAgYmluZGluZ3MvanMvSlNIaXN0b3J5Q3Vz
dG9tLmggXApAQCAtMTUxNiw3ICsxNTE5LDYgQEAgdjggewogICAgICAgICBiaW5kaW5ncy9qcy9K
U1BsdWdpbkVsZW1lbnRGdW5jdGlvbnMuaCBcCiAgICAgICAgIGJpbmRpbmdzL2pzL0pTU3RvcmFn
ZUN1c3RvbS5oIFwKICAgICAgICAgYmluZGluZ3MvanMvSlNXb3JrZXJDb250ZXh0QmFzZS5oIFwK
LSAgICAgICAgYmluZGluZ3MvanMvSlNXb3JrZXJDb250ZXh0RXJyb3JIYW5kbGVyLmggXAogICAg
ICAgICBiaW5kaW5ncy9qcy9KYXZhU2NyaXB0Q2FsbEZyYW1lLmggXAogICAgICAgICBiaW5kaW5n
cy9qcy9TY2hlZHVsZWRBY3Rpb24uaCBcCiAgICAgICAgIGJpbmRpbmdzL2pzL1NjcmlwdENhY2hl
ZEZyYW1lRGF0YS5oIFwKZGlmZiAtLWdpdCBhL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29y
ZS52Y3Byb2ogYi9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qCmluZGV4IDMy
M2U1MjYuLjU4NzMwNjQgMTAwNzU1Ci0tLSBhL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29y
ZS52Y3Byb2oKKysrIGIvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvagpAQCAt
NTgxNjUsNiArNTgxNjUsNjIgQEAKIAkJCQkJPgogCQkJCTwvRmlsZT4KIAkJCQk8RmlsZQorCQkJ
CQlSZWxhdGl2ZVBhdGg9Ii4uXGJpbmRpbmdzXGpzXEpTRXJyb3JIYW5kbGVyLmNwcCIKKwkJCQkJ
PgorCQkJCQk8RmlsZUNvbmZpZ3VyYXRpb24KKwkJCQkJCU5hbWU9IkRlYnVnfFdpbjMyIgorCQkJ
CQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiCisJCQkJCQk+CisJCQkJCQk8VG9vbAorCQkJCQkJ
CU5hbWU9IlZDQ0xDb21waWxlclRvb2wiCisJCQkJCQkvPgorCQkJCQk8L0ZpbGVDb25maWd1cmF0
aW9uPgorCQkJCQk8RmlsZUNvbmZpZ3VyYXRpb24KKwkJCQkJCU5hbWU9IlJlbGVhc2V8V2luMzIi
CisJCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSIKKwkJCQkJCT4KKwkJCQkJCTxUb29sCisJ
CQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCIKKwkJCQkJCS8+CisJCQkJCTwvRmlsZUNvbmZp
Z3VyYXRpb24+CisJCQkJCTxGaWxlQ29uZmlndXJhdGlvbgorCQkJCQkJTmFtZT0iRGVidWdfQ2Fp
cm9fQ0ZMaXRlfFdpbjMyIgorCQkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiCisJCQkJCQk+
CisJCQkJCQk8VG9vbAorCQkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiCisJCQkJCQkvPgor
CQkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPgorCQkJCQk8RmlsZUNvbmZpZ3VyYXRpb24KKwkJCQkJ
CU5hbWU9IlJlbGVhc2VfQ2Fpcm9fQ0ZMaXRlfFdpbjMyIgorCQkJCQkJRXhjbHVkZWRGcm9tQnVp
bGQ9InRydWUiCisJCQkJCQk+CisJCQkJCQk8VG9vbAorCQkJCQkJCU5hbWU9IlZDQ0xDb21waWxl
clRvb2wiCisJCQkJCQkvPgorCQkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPgorCQkJCQk8RmlsZUNv
bmZpZ3VyYXRpb24KKwkJCQkJCU5hbWU9IkRlYnVnX0FsbHxXaW4zMiIKKwkJCQkJCUV4Y2x1ZGVk
RnJvbUJ1aWxkPSJ0cnVlIgorCQkJCQkJPgorCQkJCQkJPFRvb2wKKwkJCQkJCQlOYW1lPSJWQ0NM
Q29tcGlsZXJUb29sIgorCQkJCQkJLz4KKwkJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4KKwkJCQkJ
PEZpbGVDb25maWd1cmF0aW9uCisJCQkJCQlOYW1lPSJSZWxlYXNlX0xUQ0d8V2luMzIiCisJCQkJ
CQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSIKKwkJCQkJCT4KKwkJCQkJCTxUb29sCisJCQkJCQkJ
TmFtZT0iVkNDTENvbXBpbGVyVG9vbCIKKwkJCQkJCS8+CisJCQkJCTwvRmlsZUNvbmZpZ3VyYXRp
b24+CisJCQkJPC9GaWxlPgorCQkJCTxGaWxlCisJCQkJCVJlbGF0aXZlUGF0aD0iLi5cYmluZGlu
Z3NcanNcSlNFcnJvckhhbmRsZXIuaCIKKwkJCQkJPgorCQkJCTwvRmlsZT4KKwkJCQk8RmlsZQog
CQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGJpbmRpbmdzXGpzXEpTRXZlbnRDdXN0b20uY3BwIgogCQkJ
CQk+CiAJCQkJCTxGaWxlQ29uZmlndXJhdGlvbgpAQCAtNjE3MzMsNjIgKzYxNzg5LDYgQEAKIAkJ
CQkJPC9GaWxlQ29uZmlndXJhdGlvbj4KIAkJCQk8L0ZpbGU+CiAJCQkJPEZpbGUKLQkJCQkJUmVs
YXRpdmVQYXRoPSIuLlxiaW5kaW5nc1xqc1xKU1dvcmtlckNvbnRleHRFcnJvckhhbmRsZXIuY3Bw
IgotCQkJCQk+Ci0JCQkJCTxGaWxlQ29uZmlndXJhdGlvbgotCQkJCQkJTmFtZT0iRGVidWd8V2lu
MzIiCi0JCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSIKLQkJCQkJCT4KLQkJCQkJCTxUb29s
Ci0JCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCIKLQkJCQkJCS8+Ci0JCQkJCTwvRmlsZUNv
bmZpZ3VyYXRpb24+Ci0JCQkJCTxGaWxlQ29uZmlndXJhdGlvbgotCQkJCQkJTmFtZT0iUmVsZWFz
ZXxXaW4zMiIKLQkJCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIgotCQkJCQkJPgotCQkJCQkJ
PFRvb2wKLQkJCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIgotCQkJCQkJLz4KLQkJCQkJPC9G
aWxlQ29uZmlndXJhdGlvbj4KLQkJCQkJPEZpbGVDb25maWd1cmF0aW9uCi0JCQkJCQlOYW1lPSJE
ZWJ1Z19DYWlyb19DRkxpdGV8V2luMzIiCi0JCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSIK
LQkJCQkJCT4KLQkJCQkJCTxUb29sCi0JCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCIKLQkJ
CQkJCS8+Ci0JCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+Ci0JCQkJCTxGaWxlQ29uZmlndXJhdGlv
bgotCQkJCQkJTmFtZT0iUmVsZWFzZV9DYWlyb19DRkxpdGV8V2luMzIiCi0JCQkJCQlFeGNsdWRl
ZEZyb21CdWlsZD0idHJ1ZSIKLQkJCQkJCT4KLQkJCQkJCTxUb29sCi0JCQkJCQkJTmFtZT0iVkND
TENvbXBpbGVyVG9vbCIKLQkJCQkJCS8+Ci0JCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+Ci0JCQkJ
CTxGaWxlQ29uZmlndXJhdGlvbgotCQkJCQkJTmFtZT0iRGVidWdfQWxsfFdpbjMyIgotCQkJCQkJ
RXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiCi0JCQkJCQk+Ci0JCQkJCQk8VG9vbAotCQkJCQkJCU5h
bWU9IlZDQ0xDb21waWxlclRvb2wiCi0JCQkJCQkvPgotCQkJCQk8L0ZpbGVDb25maWd1cmF0aW9u
PgotCQkJCQk8RmlsZUNvbmZpZ3VyYXRpb24KLQkJCQkJCU5hbWU9IlJlbGVhc2VfTFRDR3xXaW4z
MiIKLQkJCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIgotCQkJCQkJPgotCQkJCQkJPFRvb2wK
LQkJCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIgotCQkJCQkJLz4KLQkJCQkJPC9GaWxlQ29u
ZmlndXJhdGlvbj4KLQkJCQk8L0ZpbGU+Ci0JCQkJPEZpbGUKLQkJCQkJUmVsYXRpdmVQYXRoPSIu
LlxiaW5kaW5nc1xqc1xKU1dvcmtlckNvbnRleHRFcnJvckhhbmRsZXIuaCIKLQkJCQkJPgotCQkJ
CTwvRmlsZT4KLQkJCQk8RmlsZQogCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGJpbmRpbmdzXGpzXEpT
V29ya2VyQ3VzdG9tLmNwcCIKIAkJCQkJPgogCQkJCQk8RmlsZUNvbmZpZ3VyYXRpb24KZGlmZiAt
LWdpdCBhL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvV2ViQ29y
ZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggMTFkNmY2Ny4uODU0NzAy
MiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oK
KysrIGIvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTU1NjIs
OCArNTU2Miw4IEBACiAJCUYzOTIyNDlEMTI2RjExQUUwMEE5MjZEOSAvKiBTY3JpcHRDYWxsU3Rh
Y2tGYWN0b3J5LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSBGMzkyMjQ5QjEyNkYxMUFFMDBBOTI2RDkgLyogU2NyaXB0Q2FsbFN0YWNrRmFjdG9yeS5oICov
OyB9OwogCQlGMzlCRTk1QjEyNjczQkY0MDBFMEE2NzQgLyogU2NyaXB0QXJndW1lbnRzLmNwcCBp
biBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEYzOUJFOTU5MTI2
NzNCRjQwMEUwQTY3NCAvKiBTY3JpcHRBcmd1bWVudHMuY3BwICovOyB9OwogCQlGMzlCRTk1QzEy
NjczQkY0MDBFMEE2NzQgLyogU2NyaXB0QXJndW1lbnRzLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGMzlCRTk1QTEyNjczQkY0MDBFMEE2NzQgLyogU2Ny
aXB0QXJndW1lbnRzLmggKi87IH07Ci0JCUYzRDQ2MTQ4MTE2MUQ1MzIwMENBMEQwOSAvKiBKU1dv
cmtlckNvbnRleHRFcnJvckhhbmRsZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gRjNENDYxNDYxMTYxRDUzMjAwQ0EwRDA5IC8qIEpTV29ya2VyQ29u
dGV4dEVycm9ySGFuZGxlci5jcHAgKi87IH07Ci0JCUYzRDQ2MTQ5MTE2MUQ1MzIwMENBMEQwOSAv
KiBKU1dvcmtlckNvbnRleHRFcnJvckhhbmRsZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEYzRDQ2MTQ3MTE2MUQ1MzIwMENBMEQwOSAvKiBKU1dvcmtl
ckNvbnRleHRFcnJvckhhbmRsZXIuaCAqLzsgfTsKKwkJRjNENDYxNDgxMTYxRDUzMjAwQ0EwRDA5
IC8qIEpTRXJyb3JIYW5kbGVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IEYzRDQ2MTQ2MTE2MUQ1MzIwMENBMEQwOSAvKiBKU0Vycm9ySGFuZGxlci5j
cHAgKi87IH07CisJCUYzRDQ2MTQ5MTE2MUQ1MzIwMENBMEQwOSAvKiBKU0Vycm9ySGFuZGxlci5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjNENDYxNDcx
MTYxRDUzMjAwQ0EwRDA5IC8qIEpTRXJyb3JIYW5kbGVyLmggKi87IH07CiAJCUY0RUFGNEFFMTBD
NzQyQjEwMDkxMDBEMyAvKiBPcGVuVHlwZVNhbml0aXplci5jcHAgaW4gU291cmNlcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNEVBRjRBQzEwQzc0MkIxMDA5MTAwRDMgLyog
T3BlblR5cGVTYW5pdGl6ZXIuY3BwICovOyB9OwogCQlGNEVBRjRBRjEwQzc0MkIxMDA5MTAwRDMg
LyogT3BlblR5cGVTYW5pdGl6ZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IEY0RUFGNEFEMTBDNzQyQjEwMDkxMDBEMyAvKiBPcGVuVHlwZVNhbml0aXpl
ci5oICovOyB9OwogCQlGNTVCM0RBRDEyNTFGMTJEMDAzRUYyNjkgLyogQmFzZVRleHRJbnB1dFR5
cGUuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjU1
QjNENzkxMjUxRjEyRDAwM0VGMjY5IC8qIEJhc2VUZXh0SW5wdXRUeXBlLmNwcCAqLzsgfTsKQEAg
LTExODY4LDggKzExODY4LDggQEAKIAkJRjM5MjI0OUIxMjZGMTFBRTAwQTkyNkQ5IC8qIFNjcmlw
dENhbGxTdGFja0ZhY3RvcnkuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU2Ny
aXB0Q2FsbFN0YWNrRmFjdG9yeS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlGMzlC
RTk1OTEyNjczQkY0MDBFMEE2NzQgLyogU2NyaXB0QXJndW1lbnRzLmNwcCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFNjcmlwdEFyZ3VtZW50cy5jcHA7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCUYzOUJFOTVBMTI2NzNCRjQwMEUwQTY3NCAvKiBTY3JpcHRBcmd1
bWVudHMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU2NyaXB0QXJndW1lbnRz
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUYzRDQ2MTQ2MTE2MUQ1MzIwMENBMEQw
OSAvKiBKU1dvcmtlckNvbnRleHRFcnJvckhhbmRsZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAuY3BwOyBwYXRoID0gSlNXb3JrZXJDb250ZXh0RXJyb3JIYW5kbGVyLmNwcDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJRjNENDYxNDcxMTYxRDUzMjAwQ0EwRDA5IC8qIEpTV29y
a2VyQ29udGV4dEVycm9ySGFuZGxlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBKU1dvcmtlckNvbnRleHRFcnJvckhhbmRsZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKKwkJRjNENDYxNDYxMTYxRDUzMjAwQ0EwRDA5IC8qIEpTRXJyb3JIYW5kbGVyLmNwcCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTRXJyb3JIYW5kbGVyLmNwcDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRjNENDYxNDcxMTYxRDUzMjAwQ0EwRDA5IC8qIEpT
RXJyb3JIYW5kbGVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTRXJyb3JI
YW5kbGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUY0RUFGNEFDMTBDNzQyQjEw
MDkxMDBEMyAvKiBPcGVuVHlwZVNhbml0aXplci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5jcHA7IG5hbWUgPSBPcGVuVHlwZVNhbml0aXplci5jcHA7IHBhdGggPSBvcGVudHlwZS9PcGVu
VHlwZVNhbml0aXplci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUY0RUFGNEFE
MTBDNzQyQjEwMDkxMDBEMyAvKiBPcGVuVHlwZVNhbml0aXplci5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IG5hbWUgPSBPcGVuVHlwZVNhbml0aXplci5oOyBwYXRoID0gb3BlbnR5cGUvT3Bl
blR5cGVTYW5pdGl6ZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRjUyM0QyM0Iw
MkRFNDM5NjAxODYzNUNBIC8qIEhUTUxEb2N1bWVudC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGluZGVudFdpZHRoID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBIVE1MRG9jdW1lbnQuY3BwOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB0YWJXaWR0aCA9IDg7IHVzZXNUYWJzID0gMDsgfTsKQEAgLTE3
NDc3LDYgKzE3NDc3LDggQEAKIAkJCQlCQ0JGQjUzQjBEQ0QyOUNGMDAxOUIzRTUgLyogSlNET01X
aW5kb3dTaGVsbC5oICovLAogCQkJCUJDNTNEQUM2MTE0MzMwNjQwMDBEODE3RSAvKiBKU0RPTVdy
YXBwZXIuY3BwICovLAogCQkJCTY1RTBFOTQzMTEzM0M4OUYwMEI0Q0IxMCAvKiBKU0RPTVdyYXBw
ZXIuaCAqLywKKwkJCQlGM0Q0NjE0NjExNjFENTMyMDBDQTBEMDkgLyogSlNFcnJvckhhbmRsZXIu
Y3BwICovLAorCQkJCUYzRDQ2MTQ3MTE2MUQ1MzIwMENBMEQwOSAvKiBKU0Vycm9ySGFuZGxlci5o
ICovLAogCQkJCUJDNjA5MDFFMEU5MUI4RUMwMDBDNjhCNSAvKiBKU0V2ZW50VGFyZ2V0LmNwcCAq
LywKIAkJCQlCQzYwOTAxRDBFOTFCOEVDMDAwQzY4QjUgLyogSlNFdmVudFRhcmdldC5oICovLAog
CQkJCTMzMTRBQ0U5MTA4OTIwODYwMDBGMEU1NiAvKiBKU0V4Y2VwdGlvbkJhc2UuY3BwICovLApA
QCAtMTc0ODgsOCArMTc0OTAsNiBAQAogCQkJCTE0Q0Q4RDgxMTA2QjUyOTAwMEE0NkQyMyAvKiBK
U1NoYXJlZFdvcmtlckN1c3RvbS5jcHAgKi8sCiAJCQkJRTFDMzZEMzIwRUIwQTA5NDAwNzQxMEJD
IC8qIEpTV29ya2VyQ29udGV4dEJhc2UuY3BwICovLAogCQkJCUUxQzM2RDMzMEVCMEEwOTQwMDc0
MTBCQyAvKiBKU1dvcmtlckNvbnRleHRCYXNlLmggKi8sCi0JCQkJRjNENDYxNDYxMTYxRDUzMjAw
Q0EwRDA5IC8qIEpTV29ya2VyQ29udGV4dEVycm9ySGFuZGxlci5jcHAgKi8sCi0JCQkJRjNENDYx
NDcxMTYxRDUzMjAwQ0EwRDA5IC8qIEpTV29ya2VyQ29udGV4dEVycm9ySGFuZGxlci5oICovLAog
CQkJCUJDQTM3OEJBMEQxNUY2NDIwMEI3OTNENiAvKiBTY2hlZHVsZWRBY3Rpb24uY3BwICovLAog
CQkJCUJDQTM3OEJCMEQxNUY2NDIwMEI3OTNENiAvKiBTY2hlZHVsZWRBY3Rpb24uaCAqLywKIAkJ
CQk0MUYxRDIxRTBFRjM1QzJBMDBEQTg3NTMgLyogU2NyaXB0Q2FjaGVkRnJhbWVEYXRhLmNwcCAq
LywKQEAgLTIxMTU1LDcgKzIxMTU1LDcgQEAKIAkJCQlFMUNBQTVDNjBFOEJEMjM2MDBBNzNFQ0Eg
LyogSlNXb3JrZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCUUxODI1NjkwMEVGMkIwMkQwMDkzMzI0
MiAvKiBKU1dvcmtlckNvbnRleHQuaCBpbiBIZWFkZXJzICovLAogCQkJCUUxQzM2RDM1MEVCMEEw
OTQwMDc0MTBCQyAvKiBKU1dvcmtlckNvbnRleHRCYXNlLmggaW4gSGVhZGVycyAqLywKLQkJCQlG
M0Q0NjE0OTExNjFENTMyMDBDQTBEMDkgLyogSlNXb3JrZXJDb250ZXh0RXJyb3JIYW5kbGVyLmgg
aW4gSGVhZGVycyAqLywKKwkJCQlGM0Q0NjE0OTExNjFENTMyMDBDQTBEMDkgLyogSlNFcnJvckhh
bmRsZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCUUxQzM2MkVGMEVBRjJBQTkwMDc0MTBCQyAvKiBK
U1dvcmtlckxvY2F0aW9uLmggaW4gSGVhZGVycyAqLywKIAkJCQlFMTI3MUE1ODBFRUVDREU0MDBG
NjEyMTMgLyogSlNXb3JrZXJOYXZpZ2F0b3IuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDMzQ4QkQ0
MERCN0Y4MDQwMDRBQkFCOSAvKiBKU1hNTEh0dHBSZXF1ZXN0LmggaW4gSGVhZGVycyAqLywKQEAg
LTIzOTc4LDcgKzIzOTc4LDcgQEAKIAkJCQlFMTgyNTY4RjBFRjJCMDJEMDA5MzMyNDIgLyogSlNX
b3JrZXJDb250ZXh0LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUUxQzM2RDM0MEVCMEEwOTQwMDc0
MTBCQyAvKiBKU1dvcmtlckNvbnRleHRCYXNlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUUxODI1
OEFDMEVGM0NENzAwMDkzMzI0MiAvKiBKU1dvcmtlckNvbnRleHRDdXN0b20uY3BwIGluIFNvdXJj
ZXMgKi8sCi0JCQkJRjNENDYxNDgxMTYxRDUzMjAwQ0EwRDA5IC8qIEpTV29ya2VyQ29udGV4dEVy
cm9ySGFuZGxlci5jcHAgaW4gU291cmNlcyAqLywKKwkJCQlGM0Q0NjE0ODExNjFENTMyMDBDQTBE
MDkgLyogSlNFcnJvckhhbmRsZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJRTFDQTVDQkMwRThD
RENBRjAwRThFRjkwIC8qIEpTV29ya2VyQ3VzdG9tLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUUx
QzM2MkYwMEVBRjJBQTkwMDc0MTBCQyAvKiBKU1dvcmtlckxvY2F0aW9uLmNwcCBpbiBTb3VyY2Vz
ICovLAogCQkJCUUxMjcxQTU5MEVFRUNERTQwMEY2MTIxMyAvKiBKU1dvcmtlck5hdmlnYXRvci5j
cHAgaW4gU291cmNlcyAqLywKZGlmZiAtLWdpdCBhL1dlYkNvcmUvYmluZGluZ3MvanMvSlNCaW5k
aW5nc0FsbEluT25lLmNwcCBiL1dlYkNvcmUvYmluZGluZ3MvanMvSlNCaW5kaW5nc0FsbEluT25l
LmNwcAppbmRleCA3ZmM1NzQwLi5kMmMyN2E5IDEwMDY0NAotLS0gYS9XZWJDb3JlL2JpbmRpbmdz
L2pzL0pTQmluZGluZ3NBbGxJbk9uZS5jcHAKKysrIGIvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0Jp
bmRpbmdzQWxsSW5PbmUuY3BwCkBAIC03Miw2ICs3Miw3IEBACiAjaW5jbHVkZSAiSlNEZXZpY2VP
cmllbnRhdGlvbkV2ZW50Q3VzdG9tLmNwcCIKICNpbmNsdWRlICJKU0RvY3VtZW50Q3VzdG9tLmNw
cCIKICNpbmNsdWRlICJKU0VsZW1lbnRDdXN0b20uY3BwIgorI2luY2x1ZGUgIkpTRXJyb3JIYW5k
bGVyLmNwcCIKICNpbmNsdWRlICJKU0V2ZW50Q3VzdG9tLmNwcCIKICNpbmNsdWRlICJKU0V2ZW50
TGlzdGVuZXIuY3BwIgogI2luY2x1ZGUgIkpTRXZlbnRTb3VyY2VDdXN0b20uY3BwIgpAQCAtMTQx
LDcgKzE0Miw2IEBACiAjaW5jbHVkZSAiSlNXZWJTb2NrZXRDdXN0b20uY3BwIgogI2luY2x1ZGUg
IkpTV29ya2VyQ29udGV4dEJhc2UuY3BwIgogI2luY2x1ZGUgIkpTV29ya2VyQ29udGV4dEN1c3Rv
bS5jcHAiCi0jaW5jbHVkZSAiSlNXb3JrZXJDb250ZXh0RXJyb3JIYW5kbGVyLmNwcCIKICNpbmNs
dWRlICJKU1dvcmtlckN1c3RvbS5jcHAiCiAjaW5jbHVkZSAiSlNYTUxIdHRwUmVxdWVzdEN1c3Rv
bS5jcHAiCiAjaW5jbHVkZSAiSlNYTUxIdHRwUmVxdWVzdFVwbG9hZEN1c3RvbS5jcHAiCmRpZmYg
LS1naXQgYS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NQmluZGluZy5jcHAgYi9XZWJDb3JlL2Jp
bmRpbmdzL2pzL0pTRE9NQmluZGluZy5jcHAKaW5kZXggZWQ1NzlkMy4uNTY4ZjZjYiAxMDA2NDQK
LS0tIGEvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTUJpbmRpbmcuY3BwCisrKyBiL1dlYkNvcmUv
YmluZGluZ3MvanMvSlNET01CaW5kaW5nLmNwcApAQCAtNTUsNiArNTUsNyBAQAogI2luY2x1ZGUg
IlByb2Nlc3NpbmdJbnN0cnVjdGlvbi5oIgogI2luY2x1ZGUgIlJhbmdlRXhjZXB0aW9uLmgiCiAj
aW5jbHVkZSAiU2NyaXB0Q2FjaGVkRnJhbWVEYXRhLmgiCisjaW5jbHVkZSAiU2NyaXB0Q2FsbFN0
YWNrLmgiCiAjaW5jbHVkZSAiU2NyaXB0Q29udHJvbGxlci5oIgogI2luY2x1ZGUgIlNldHRpbmdz
LmgiCiAjaW5jbHVkZSAiV2ViQ29yZUpTQ2xpZW50RGF0YS5oIgpAQCAtNTk4LDcgKzU5OSw3IEBA
IHZvaWQgcmVwb3J0RXhjZXB0aW9uKEV4ZWNTdGF0ZSogZXhlYywgSlNWYWx1ZSBleGNlcHRpb24p
CiAgICAgaWYgKCFzY3JpcHRFeGVjdXRpb25Db250ZXh0KQogICAgICAgICByZXR1cm47CiAKLSAg
ICBzY3JpcHRFeGVjdXRpb25Db250ZXh0LT5yZXBvcnRFeGNlcHRpb24odXN0cmluZ1RvU3RyaW5n
KGVycm9yTWVzc2FnZSksIGxpbmVOdW1iZXIsIHVzdHJpbmdUb1N0cmluZyhleGNlcHRpb25Tb3Vy
Y2VVUkwpKTsKKyAgICBzY3JpcHRFeGVjdXRpb25Db250ZXh0LT5yZXBvcnRFeGNlcHRpb24odXN0
cmluZ1RvU3RyaW5nKGVycm9yTWVzc2FnZSksIGxpbmVOdW1iZXIsIHVzdHJpbmdUb1N0cmluZyhl
eGNlcHRpb25Tb3VyY2VVUkwpLCAwKTsKIH0KIAogdm9pZCByZXBvcnRDdXJyZW50RXhjZXB0aW9u
KEV4ZWNTdGF0ZSogZXhlYykKZGlmZiAtLWdpdCBhL1dlYkNvcmUvYmluZGluZ3MvanMvSlNFcnJv
ckhhbmRsZXIuY3BwIGIvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0Vycm9ySGFuZGxlci5jcHAKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYWU4ZTM2MwotLS0gL2Rldi9udWxsCisr
KyBiL1dlYkNvcmUvYmluZGluZ3MvanMvSlNFcnJvckhhbmRsZXIuY3BwCkBAIC0wLDAgKzEsMTEx
IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEwIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCisgKiBtZXQ6CisgKgor
ICogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5h
cnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKKyAqIGNvcHlyaWdodCBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKKyAqIGlu
IHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0
aGUKKyAqIGRpc3RyaWJ1dGlvbi4KKyAqICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xl
IEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKKyAqIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0
byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCisgKiB0aGlzIHNvZnR3
YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorICoKKyAqIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05U
UklCVVRPUlMKKyAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElF
UywgSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5U
SUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKKyAqIEEgUEFSVElDVUxBUiBQ
VVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCisg
KiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwKKyAqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBE
QU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9G
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAorICogREFUQSwgT1Ig
UFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04g
QU5ZCisgKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8K
KworI2luY2x1ZGUgImNvbmZpZy5oIgorCisjaW5jbHVkZSAiSlNFcnJvckhhbmRsZXIuaCIKKwor
I2luY2x1ZGUgIkVycm9yRXZlbnQuaCIKKyNpbmNsdWRlICJFdmVudC5oIgorI2luY2x1ZGUgIkpT
RXZlbnQuaCIKKyNpbmNsdWRlIDxydW50aW1lL0pTTG9jay5oPgorCit1c2luZyBuYW1lc3BhY2Ug
SlNDOworCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK0pTRXJyb3JIYW5kbGVyOjpKU0Vycm9ySGFu
ZGxlcihKU09iamVjdCogZnVuY3Rpb24sIEpTT2JqZWN0KiB3cmFwcGVyLCBib29sIGlzQXR0cmli
dXRlLCBET01XcmFwcGVyV29ybGQqIGlzb2xhdGVkV29ybGQpCisgICAgOiBKU0V2ZW50TGlzdGVu
ZXIoZnVuY3Rpb24sIHdyYXBwZXIsIGlzQXR0cmlidXRlLCBpc29sYXRlZFdvcmxkKQoreworfQor
CitKU0Vycm9ySGFuZGxlcjo6fkpTRXJyb3JIYW5kbGVyKCkKK3sKK30KKwordm9pZCBKU0Vycm9y
SGFuZGxlcjo6aGFuZGxlRXZlbnQoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogc2NyaXB0RXhlY3V0
aW9uQ29udGV4dCwgRXZlbnQqIGV2ZW50KQoreworICAgIGlmICghZXZlbnQtPmlzRXJyb3JFdmVu
dCgpKQorICAgICAgICByZXR1cm4gSlNFdmVudExpc3RlbmVyOjpoYW5kbGVFdmVudChzY3JpcHRF
eGVjdXRpb25Db250ZXh0LCBldmVudCk7CisKKyAgICBBU1NFUlQoc2NyaXB0RXhlY3V0aW9uQ29u
dGV4dCk7CisgICAgaWYgKCFzY3JpcHRFeGVjdXRpb25Db250ZXh0KQorICAgICAgICByZXR1cm47
CisKKyAgICBFcnJvckV2ZW50KiBlcnJvckV2ZW50ID0gc3RhdGljX2Nhc3Q8RXJyb3JFdmVudCo+
KGV2ZW50KTsKKworICAgIEpTTG9jayBsb2NrKFNpbGVuY2VBc3NlcnRpb25zT25seSk7CisKKyAg
ICBKU09iamVjdCoganNGdW5jdGlvbiA9IHRoaXMtPmpzRnVuY3Rpb24oc2NyaXB0RXhlY3V0aW9u
Q29udGV4dCk7CisgICAgaWYgKCFqc0Z1bmN0aW9uKQorICAgICAgICByZXR1cm47CisKKyAgICBK
U0RPTUdsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0ID0gdG9KU0RPTUdsb2JhbE9iamVjdChzY3Jp
cHRFeGVjdXRpb25Db250ZXh0LCBpc29sYXRlZFdvcmxkKCkpOworICAgIGlmICghZ2xvYmFsT2Jq
ZWN0KQorICAgICAgICByZXR1cm47CisKKyAgICBFeGVjU3RhdGUqIGV4ZWMgPSBnbG9iYWxPYmpl
Y3QtPmdsb2JhbEV4ZWMoKTsKKworICAgIENhbGxEYXRhIGNhbGxEYXRhOworICAgIENhbGxUeXBl
IGNhbGxUeXBlID0ganNGdW5jdGlvbi0+Z2V0Q2FsbERhdGEoY2FsbERhdGEpOworCisgICAgaWYg
KGNhbGxUeXBlICE9IENhbGxUeXBlTm9uZSkgeworICAgICAgICBSZWZQdHI8SlNFcnJvckhhbmRs
ZXI+IHByb3RlY3RlZGN0b3IodGhpcyk7CisKKyAgICAgICAgRXZlbnQqIHNhdmVkRXZlbnQgPSBn
bG9iYWxPYmplY3QtPmN1cnJlbnRFdmVudCgpOworICAgICAgICBnbG9iYWxPYmplY3QtPnNldEN1
cnJlbnRFdmVudChldmVudCk7CisKKyAgICAgICAgTWFya2VkQXJndW1lbnRCdWZmZXIgYXJnczsK
KyAgICAgICAgYXJncy5hcHBlbmQoanNTdHJpbmcoZXhlYywgZXJyb3JFdmVudC0+bWVzc2FnZSgp
KSk7CisgICAgICAgIGFyZ3MuYXBwZW5kKGpzU3RyaW5nKGV4ZWMsIGVycm9yRXZlbnQtPmZpbGVu
YW1lKCkpKTsKKyAgICAgICAgYXJncy5hcHBlbmQoanNOdW1iZXIoZXJyb3JFdmVudC0+bGluZW5v
KCkpKTsKKworICAgICAgICBKU0dsb2JhbERhdGEmIGdsb2JhbERhdGEgPSBnbG9iYWxPYmplY3Qt
Pmdsb2JhbERhdGEoKTsKKyAgICAgICAgRHluYW1pY0dsb2JhbE9iamVjdFNjb3BlIGdsb2JhbE9i
amVjdFNjb3BlKGV4ZWMsIGdsb2JhbERhdGEuZHluYW1pY0dsb2JhbE9iamVjdCA/IGdsb2JhbERh
dGEuZHluYW1pY0dsb2JhbE9iamVjdCA6IGdsb2JhbE9iamVjdCk7CisKKyAgICAgICAgSlNWYWx1
ZSB0aGlzVmFsdWUgPSBnbG9iYWxPYmplY3QtPnRvVGhpc09iamVjdChleGVjKTsKKworICAgICAg
ICBnbG9iYWxEYXRhLnRpbWVvdXRDaGVja2VyLnN0YXJ0KCk7CisgICAgICAgIEpTVmFsdWUgcmV0
dXJuVmFsdWUgPSBKU0M6OmNhbGwoZXhlYywganNGdW5jdGlvbiwgY2FsbFR5cGUsIGNhbGxEYXRh
LCB0aGlzVmFsdWUsIGFyZ3MpOworICAgICAgICBnbG9iYWxEYXRhLnRpbWVvdXRDaGVja2VyLnN0
b3AoKTsKKworICAgICAgICBnbG9iYWxPYmplY3QtPnNldEN1cnJlbnRFdmVudChzYXZlZEV2ZW50
KTsKKworICAgICAgICBpZiAoZXhlYy0+aGFkRXhjZXB0aW9uKCkpCisgICAgICAgICAgICByZXBv
cnRDdXJyZW50RXhjZXB0aW9uKGV4ZWMpOworICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgIGJv
b2wgcmV0dmFsYm9vbDsKKyAgICAgICAgICAgIGlmIChyZXR1cm5WYWx1ZS5nZXRCb29sZWFuKHJl
dHZhbGJvb2wpICYmICFyZXR2YWxib29sKQorICAgICAgICAgICAgICAgIGV2ZW50LT5wcmV2ZW50
RGVmYXVsdCgpOworICAgICAgICB9CisgICAgfQorfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3Jl
CmRpZmYgLS1naXQgYS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRXJyb3JIYW5kbGVyLmggYi9XZWJD
b3JlL2JpbmRpbmdzL2pzL0pTRXJyb3JIYW5kbGVyLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMC4uOTU3ZmQ4MQotLS0gL2Rldi9udWxsCisrKyBiL1dlYkNvcmUvYmluZGluZ3Mv
anMvSlNFcnJvckhhbmRsZXIuaApAQCAtMCwwICsxLDY0IEBACisvKgorICogQ29weXJpZ2h0IChD
KSAyMDEwIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMgYXJlCisgKiBtZXQ6CisgKgorICogICAgICogUmVkaXN0cmlidXRpb25z
IG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4K
KyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0
aGUgYWJvdmUKKyAqIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKKyAqIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKKyAqIGRpc3RyaWJ1dGlvbi4KKyAq
ICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBp
dHMKKyAqIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJv
ZHVjdHMgZGVyaXZlZCBmcm9tCisgKiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJp
b3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKKyAqICJBUyBJUyIgQU5E
IEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCisg
KiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBB
TkQgRklUTkVTUyBGT1IKKyAqIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJ
TiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCisgKiBPV05FUiBPUiBDT05UUklCVVRPUlMg
QkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKKyAqIFNQRUNJ
QUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBO
T1QKKyAqIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VS
VklDRVM7IExPU1MgT0YgVVNFLAorICogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5U
RVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisgKiBUSEVPUlkgT0YgTElBQklM
SVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAo
SU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VU
IE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUg
UE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBKU0Vycm9ySGFuZGxl
cl9oCisjZGVmaW5lIEpTRXJyb3JIYW5kbGVyX2gKKworI2luY2x1ZGUgIkpTRXZlbnRMaXN0ZW5l
ci5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIEpTRXJyb3JIYW5kbGVyIDogcHVi
bGljIEpTRXZlbnRMaXN0ZW5lciB7CitwdWJsaWM6CisgICAgc3RhdGljIFBhc3NSZWZQdHI8SlNF
cnJvckhhbmRsZXI+IGNyZWF0ZShKU0M6OkpTT2JqZWN0KiBsaXN0ZW5lciwgSlNDOjpKU09iamVj
dCogd3JhcHBlciwgYm9vbCBpc0F0dHJpYnV0ZSwgRE9NV3JhcHBlcldvcmxkKiBpc29sYXRlZFdv
cmxkKQorICAgIHsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBKU0Vycm9ySGFuZGxlcihs
aXN0ZW5lciwgd3JhcHBlciwgaXNBdHRyaWJ1dGUsIGlzb2xhdGVkV29ybGQpKTsKKyAgICB9CisK
KyAgICB2aXJ0dWFsIH5KU0Vycm9ySGFuZGxlcigpOworCitwcml2YXRlOgorICAgIEpTRXJyb3JI
YW5kbGVyKEpTQzo6SlNPYmplY3QqIGZ1bmN0aW9uLCBKU0M6OkpTT2JqZWN0KiB3cmFwcGVyLCBi
b29sIGlzQXR0cmlidXRlLCBET01XcmFwcGVyV29ybGQqIGlzb2xhdGVkV29ybGQpOworICAgIHZp
cnR1YWwgdm9pZCBoYW5kbGVFdmVudChTY3JpcHRFeGVjdXRpb25Db250ZXh0KiwgRXZlbnQqKTsK
K307CisKKy8vIENyZWF0ZXMgYSBKUyBFdmVudExpc3RlbmVyIGZvciAib25lcnJvciIgZXZlbnQg
aGFuZGxlciBpbiB3b3JrZXIgY29udGV4dC4gSXQgaGFzIGN1c3RvbSBpbXBsZW1lbnRhdGlvbiBi
ZWNhdXNlCisvLyB1bmxpa2Ugb3RoZXIgZXZlbnQgbGlzdGVuZXJzIGl0IGFjY2VwdHMgdGhyZWUg
cGFyYW1ldGVycy4KK2lubGluZSBQYXNzUmVmUHRyPEpTRXJyb3JIYW5kbGVyPiBjcmVhdGVKU0Vy
cm9ySGFuZGxlcihKU0M6OkV4ZWNTdGF0ZSogZXhlYywgSlNDOjpKU1ZhbHVlIGxpc3RlbmVyLCBK
U0M6OkpTT2JqZWN0KiB3cmFwcGVyKQoreworICAgIGlmICghbGlzdGVuZXIuaXNPYmplY3QoKSkK
KyAgICAgICAgcmV0dXJuIDA7CisKKyAgICByZXR1cm4gSlNFcnJvckhhbmRsZXI6OmNyZWF0ZShh
c09iamVjdChsaXN0ZW5lciksIHdyYXBwZXIsIHRydWUsIGN1cnJlbnRXb3JsZChleGVjKSk7Cit9
CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIEpTRXJyb3JIYW5kbGVyX2gK
ZGlmZiAtLWdpdCBhL1dlYkNvcmUvYmluZGluZ3MvanMvSlNFdmVudExpc3RlbmVyLmggYi9XZWJD
b3JlL2JpbmRpbmdzL2pzL0pTRXZlbnRMaXN0ZW5lci5oCmluZGV4IGIxNWM1ODkuLjgzZDBkMmUg
MTAwNjQ0Ci0tLSBhL1dlYkNvcmUvYmluZGluZ3MvanMvSlNFdmVudExpc3RlbmVyLmgKKysrIGIv
V2ViQ29yZS9iaW5kaW5ncy9qcy9KU0V2ZW50TGlzdGVuZXIuaApAQCAtNTksMTEgKzU5LDExIEBA
IG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgdmlydHVhbCBKU0M6OkpTT2JqZWN0KiBpbml0
aWFsaXplSlNGdW5jdGlvbihTY3JpcHRFeGVjdXRpb25Db250ZXh0KikgY29uc3Q7CiAgICAgICAg
IHZpcnR1YWwgdm9pZCBtYXJrSlNGdW5jdGlvbihKU0M6Ok1hcmtTdGFjayYpOwogICAgICAgICB2
aXJ0dWFsIHZvaWQgaW52YWxpZGF0ZUpTRnVuY3Rpb24oSlNDOjpKU09iamVjdCopOwotICAgICAg
ICB2aXJ0dWFsIHZvaWQgaGFuZGxlRXZlbnQoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIEV2ZW50
Kik7CiAgICAgICAgIHZpcnR1YWwgYm9vbCB2aXJ0dWFsaXNBdHRyaWJ1dGUoKSBjb25zdDsKIAog
ICAgIHByb3RlY3RlZDoKICAgICAgICAgSlNFdmVudExpc3RlbmVyKEpTQzo6SlNPYmplY3QqIGZ1
bmN0aW9uLCBKU0M6OkpTT2JqZWN0KiB3cmFwcGVyLCBib29sIGlzQXR0cmlidXRlLCBET01XcmFw
cGVyV29ybGQqIGlzb2xhdGVkV29ybGQpOworICAgICAgICB2aXJ0dWFsIHZvaWQgaGFuZGxlRXZl
bnQoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIEV2ZW50Kik7CiAKICAgICBwcml2YXRlOgogICAg
ICAgICBtdXRhYmxlIEpTQzo6SlNPYmplY3QqIG1fanNGdW5jdGlvbjsKZGlmZiAtLWdpdCBhL1dl
YkNvcmUvYmluZGluZ3MvanMvSlNXb3JrZXJDb250ZXh0RXJyb3JIYW5kbGVyLmNwcCBiL1dlYkNv
cmUvYmluZGluZ3MvanMvSlNXb3JrZXJDb250ZXh0RXJyb3JIYW5kbGVyLmNwcApkZWxldGVkIGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggZjdkMmIwMi4uMDAwMDAwMAotLS0gYS9XZWJDb3JlL2JpbmRp
bmdzL2pzL0pTV29ya2VyQ29udGV4dEVycm9ySGFuZGxlci5jcHAKKysrIC9kZXYvbnVsbApAQCAt
MSwxMTYgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMCBHb29nbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQotICog
bWV0OgotICoKLSAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJl
dGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAgICAgKiBSZWRpc3RyaWJ1dGlv
bnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCi0gKiBjb3B5cmlnaHQg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyCi0gKiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlCi0gKiBkaXN0cmlidXRpb24uCi0gKiAgICAgKiBOZWl0aGVyIHRoZSBuYW1l
IG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCi0gKiBjb250cmlidXRvcnMgbWF5
IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQotICog
dGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4K
LSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVS
UyBBTkQgQ09OVFJJQlVUT1JTCi0gKiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAotICogTElNSVRFRCBUTywgVEhFIElNUExJ
RUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCi0gKiBBIFBB
UlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENP
UFlSSUdIVAotICogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCi0gKiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNF
UVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCi0gKiBMSU1JVEVEIFRPLCBQUk9D
VVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKLSAq
IERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5EIE9OIEFOWQotICogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0gKiBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLgotICovCi0KLSNpbmNsdWRlICJjb25maWcuaCIKLQotI2lmIEVOQUJMRShXT1JLRVJTKQot
Ci0jaW5jbHVkZSAiSlNXb3JrZXJDb250ZXh0RXJyb3JIYW5kbGVyLmgiCi0KLSNpbmNsdWRlICJF
cnJvckV2ZW50LmgiCi0jaW5jbHVkZSAiRXZlbnQuaCIKLSNpbmNsdWRlICJKU0V2ZW50LmgiCi0j
aW5jbHVkZSA8cnVudGltZS9KU0xvY2suaD4KLQotdXNpbmcgbmFtZXNwYWNlIEpTQzsKLQotbmFt
ZXNwYWNlIFdlYkNvcmUgewotCi1KU1dvcmtlckNvbnRleHRFcnJvckhhbmRsZXI6OkpTV29ya2Vy
Q29udGV4dEVycm9ySGFuZGxlcihKU09iamVjdCogZnVuY3Rpb24sIEpTT2JqZWN0KiB3cmFwcGVy
LCBib29sIGlzQXR0cmlidXRlLCBET01XcmFwcGVyV29ybGQqIGlzb2xhdGVkV29ybGQpCi0gICAg
OiBKU0V2ZW50TGlzdGVuZXIoZnVuY3Rpb24sIHdyYXBwZXIsIGlzQXR0cmlidXRlLCBpc29sYXRl
ZFdvcmxkKQotewotfQotCi1KU1dvcmtlckNvbnRleHRFcnJvckhhbmRsZXI6On5KU1dvcmtlckNv
bnRleHRFcnJvckhhbmRsZXIoKQotewotfQotCi12b2lkIEpTV29ya2VyQ29udGV4dEVycm9ySGFu
ZGxlcjo6aGFuZGxlRXZlbnQoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogc2NyaXB0RXhlY3V0aW9u
Q29udGV4dCwgRXZlbnQqIGV2ZW50KQotewotICAgIEFTU0VSVChzY3JpcHRFeGVjdXRpb25Db250
ZXh0KTsKLSAgICBpZiAoIXNjcmlwdEV4ZWN1dGlvbkNvbnRleHQpCi0gICAgICAgIHJldHVybjsK
LQotICAgIEpTTG9jayBsb2NrKFNpbGVuY2VBc3NlcnRpb25zT25seSk7Ci0KLSAgICBKU09iamVj
dCoganNGdW5jdGlvbiA9IHRoaXMtPmpzRnVuY3Rpb24oc2NyaXB0RXhlY3V0aW9uQ29udGV4dCk7
Ci0gICAgaWYgKCFqc0Z1bmN0aW9uKQotICAgICAgICByZXR1cm47Ci0KLSAgICBKU0RPTUdsb2Jh
bE9iamVjdCogZ2xvYmFsT2JqZWN0ID0gdG9KU0RPTUdsb2JhbE9iamVjdChzY3JpcHRFeGVjdXRp
b25Db250ZXh0LCBpc29sYXRlZFdvcmxkKCkpOwotICAgIGlmICghZ2xvYmFsT2JqZWN0KQotICAg
ICAgICByZXR1cm47Ci0KLSAgICBFeGVjU3RhdGUqIGV4ZWMgPSBnbG9iYWxPYmplY3QtPmdsb2Jh
bEV4ZWMoKTsKLQotICAgIENhbGxEYXRhIGNhbGxEYXRhOwotICAgIENhbGxUeXBlIGNhbGxUeXBl
ID0ganNGdW5jdGlvbi0+Z2V0Q2FsbERhdGEoY2FsbERhdGEpOwotCi0gICAgaWYgKGNhbGxUeXBl
ICE9IENhbGxUeXBlTm9uZSkgewotCi0gICAgICAgIHJlZigpOwotCi0gICAgICAgIEV2ZW50KiBz
YXZlZEV2ZW50ID0gZ2xvYmFsT2JqZWN0LT5jdXJyZW50RXZlbnQoKTsKLSAgICAgICAgZ2xvYmFs
T2JqZWN0LT5zZXRDdXJyZW50RXZlbnQoZXZlbnQpOwotCi0gICAgICAgIEFTU0VSVChldmVudC0+
aXNFcnJvckV2ZW50KCkpOwotICAgICAgICBFcnJvckV2ZW50KiBlcnJvckV2ZW50ID0gc3RhdGlj
X2Nhc3Q8RXJyb3JFdmVudCo+KGV2ZW50KTsKLQotICAgICAgICBNYXJrZWRBcmd1bWVudEJ1ZmZl
ciBhcmdzOwotICAgICAgICBhcmdzLmFwcGVuZChqc1N0cmluZyhleGVjLCBlcnJvckV2ZW50LT5t
ZXNzYWdlKCkpKTsKLSAgICAgICAgYXJncy5hcHBlbmQoanNTdHJpbmcoZXhlYywgZXJyb3JFdmVu
dC0+ZmlsZW5hbWUoKSkpOwotICAgICAgICBhcmdzLmFwcGVuZChqc051bWJlcihlcnJvckV2ZW50
LT5saW5lbm8oKSkpOwotCi0gICAgICAgIEpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSA9IGdsb2Jh
bE9iamVjdC0+Z2xvYmFsRGF0YSgpOwotICAgICAgICBEeW5hbWljR2xvYmFsT2JqZWN0U2NvcGUg
Z2xvYmFsT2JqZWN0U2NvcGUoZXhlYywgZ2xvYmFsRGF0YS5keW5hbWljR2xvYmFsT2JqZWN0ID8g
Z2xvYmFsRGF0YS5keW5hbWljR2xvYmFsT2JqZWN0IDogZ2xvYmFsT2JqZWN0KTsKLQotICAgICAg
ICBKU1ZhbHVlIHRoaXNWYWx1ZSA9IGdsb2JhbE9iamVjdC0+dG9UaGlzT2JqZWN0KGV4ZWMpOwot
Ci0gICAgICAgIGdsb2JhbERhdGEudGltZW91dENoZWNrZXIuc3RhcnQoKTsKLSAgICAgICAgSlNW
YWx1ZSByZXR1cm5WYWx1ZSA9IEpTQzo6Y2FsbChleGVjLCBqc0Z1bmN0aW9uLCBjYWxsVHlwZSwg
Y2FsbERhdGEsIHRoaXNWYWx1ZSwgYXJncyk7Ci0gICAgICAgIGdsb2JhbERhdGEudGltZW91dENo
ZWNrZXIuc3RvcCgpOwotCi0gICAgICAgIGdsb2JhbE9iamVjdC0+c2V0Q3VycmVudEV2ZW50KHNh
dmVkRXZlbnQpOwotCi0gICAgICAgIGlmIChleGVjLT5oYWRFeGNlcHRpb24oKSkKLSAgICAgICAg
ICAgIHJlcG9ydEN1cnJlbnRFeGNlcHRpb24oZXhlYyk7Ci0gICAgICAgIGVsc2UgewotICAgICAg
ICAgICAgYm9vbCByZXR2YWxib29sOwotICAgICAgICAgICAgaWYgKHJldHVyblZhbHVlLmdldEJv
b2xlYW4ocmV0dmFsYm9vbCkgJiYgIXJldHZhbGJvb2wpCi0gICAgICAgICAgICAgICAgZXZlbnQt
PnByZXZlbnREZWZhdWx0KCk7Ci0gICAgICAgIH0KLQotICAgICAgICBkZXJlZigpOwotICAgIH0K
LX0KLQotfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQotCi0jZW5kaWYgLy8gRU5BQkxFKFdPUktFUlMp
CmRpZmYgLS1naXQgYS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTV29ya2VyQ29udGV4dEVycm9ySGFu
ZGxlci5oIGIvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1dvcmtlckNvbnRleHRFcnJvckhhbmRsZXIu
aApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYTE4ODI5OS4uMDAwMDAwMAotLS0gYS9X
ZWJDb3JlL2JpbmRpbmdzL2pzL0pTV29ya2VyQ29udGV4dEVycm9ySGFuZGxlci5oCisrKyAvZGV2
L251bGwKQEAgLTEsNjQgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMCBHb29nbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
IGFyZQotICogbWV0OgotICoKLSAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAgICAgKiBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCi0gKiBj
b3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyCi0gKiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlCi0gKiBkaXN0cmlidXRpb24uCi0gKiAgICAgKiBOZWl0aGVy
IHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCi0gKiBjb250cmli
dXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQg
ZnJvbQotICogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVy
bWlzc2lvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklH
SFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCi0gKiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBP
UiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAotICogTElNSVRFRCBUTywg
VEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9S
Ci0gKiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hB
TEwgVEhFIENPUFlSSUdIVAotICogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCi0gKiBTUEVDSUFMLCBFWEVNUExBUlks
IE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCi0gKiBMSU1JVEVE
IFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwKLSAqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OIEFOWQotICogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0g
KiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgotICovCi0KLSNpZm5kZWYgSlNXb3JrZXJDb250ZXh0RXJyb3JIYW5kbGVy
X2gKLSNkZWZpbmUgSlNXb3JrZXJDb250ZXh0RXJyb3JIYW5kbGVyX2gKLQotI2luY2x1ZGUgIkpT
RXZlbnRMaXN0ZW5lci5oIgotCi1uYW1lc3BhY2UgV2ViQ29yZSB7Ci0KLWNsYXNzIEpTV29ya2Vy
Q29udGV4dEVycm9ySGFuZGxlciA6IHB1YmxpYyBKU0V2ZW50TGlzdGVuZXIgewotcHVibGljOgot
ICAgIHN0YXRpYyBQYXNzUmVmUHRyPEpTV29ya2VyQ29udGV4dEVycm9ySGFuZGxlcj4gY3JlYXRl
KEpTQzo6SlNPYmplY3QqIGxpc3RlbmVyLCBKU0M6OkpTT2JqZWN0KiB3cmFwcGVyLCBib29sIGlz
QXR0cmlidXRlLCBET01XcmFwcGVyV29ybGQqIGlzb2xhdGVkV29ybGQpCi0gICAgewotICAgICAg
ICByZXR1cm4gYWRvcHRSZWYobmV3IEpTV29ya2VyQ29udGV4dEVycm9ySGFuZGxlcihsaXN0ZW5l
ciwgd3JhcHBlciwgaXNBdHRyaWJ1dGUsIGlzb2xhdGVkV29ybGQpKTsKLSAgICB9Ci0KLSAgICB2
aXJ0dWFsIH5KU1dvcmtlckNvbnRleHRFcnJvckhhbmRsZXIoKTsKLQotcHJpdmF0ZToKLSAgICBK
U1dvcmtlckNvbnRleHRFcnJvckhhbmRsZXIoSlNDOjpKU09iamVjdCogZnVuY3Rpb24sIEpTQzo6
SlNPYmplY3QqIHdyYXBwZXIsIGJvb2wgaXNBdHRyaWJ1dGUsIERPTVdyYXBwZXJXb3JsZCogaXNv
bGF0ZWRXb3JsZCk7Ci0gICAgdmlydHVhbCB2b2lkIGhhbmRsZUV2ZW50KFNjcmlwdEV4ZWN1dGlv
bkNvbnRleHQqLCBFdmVudCopOwotfTsKLQotLy8gQ3JlYXRlcyBhIEpTIEV2ZW50TGlzdGVuZXIg
Zm9yICJvbmVycm9yIiBldmVudCBoYW5kbGVyIGluIHdvcmtlciBjb250ZXh0LiBJdCBoYXMgY3Vz
dG9tIGltcGxlbWVudGF0aW9uIGJlY2F1c2UKLS8vIHVubGlrZSBvdGhlciBldmVudCBsaXN0ZW5l
cnMgaXQgYWNjZXB0cyB0aHJlZSBwYXJhbWV0ZXJzLgotaW5saW5lIFBhc3NSZWZQdHI8SlNXb3Jr
ZXJDb250ZXh0RXJyb3JIYW5kbGVyPiBjcmVhdGVKU1dvcmtlckNvbnRleHRFcnJvckhhbmRsZXIo
SlNDOjpFeGVjU3RhdGUqIGV4ZWMsIEpTQzo6SlNWYWx1ZSBsaXN0ZW5lciwgSlNDOjpKU09iamVj
dCogd3JhcHBlcikKLXsKLSAgICBpZiAoIWxpc3RlbmVyLmlzT2JqZWN0KCkpCi0gICAgICAgIHJl
dHVybiAwOwotCi0gICAgcmV0dXJuIEpTV29ya2VyQ29udGV4dEVycm9ySGFuZGxlcjo6Y3JlYXRl
KGFzT2JqZWN0KGxpc3RlbmVyKSwgd3JhcHBlciwgdHJ1ZSwgY3VycmVudFdvcmxkKGV4ZWMpKTsK
LX0KLQotfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQotCi0jZW5kaWYgLy8gSlNXb3JrZXJDb250ZXh0
RXJyb3JIYW5kbGVyX2gKZGlmZiAtLWdpdCBhL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2Rl
R2VuZXJhdG9ySlMucG0gYi9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckpT
LnBtCmluZGV4IGNmZjUxZTkuLmFiZWYwNGUgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvYmluZGluZ3Mv
c2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG0KKysrIGIvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRz
L0NvZGVHZW5lcmF0b3JKUy5wbQpAQCAtMTcyMSw5ICsxNzIxLDkgQEAgc3ViIEdlbmVyYXRlSW1w
bGVtZW50YXRpb24KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHVzaChAaW1wbENv
bnRlbnQsICIgICAgSlNET01HbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCA9IGNhc3RlZFRoaXMt
Pmdsb2JhbE9iamVjdCgpO1xuIik7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgICRpbXBsQ2xh
c3NOYW1lKiBpbXAgPSBzdGF0aWNfY2FzdDwkaW1wbENsYXNzTmFtZSo+KHN0YXRpY19jYXN0PCRj
bGFzc05hbWUqPih0aGlzT2JqZWN0KS0+aW1wbCgpKTtcbiIpOwotICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGlmICgkaW50ZXJmYWNlTmFtZSBlcSAiV29ya2VyQ29udGV4dCIgYW5kICRuYW1l
IGVxICJvbmVycm9yIikgewotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkaW1wbElu
Y2x1ZGVzeyJKU1dvcmtlckNvbnRleHRFcnJvckhhbmRsZXIuaCJ9ID0gMTsKLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgaW1wLT5zZXQkaW1w
bFNldHRlckZ1bmN0aW9uTmFtZShjcmVhdGVKU1dvcmtlckNvbnRleHRFcnJvckhhbmRsZXIoZXhl
YywgdmFsdWUsIHRoaXNPYmplY3QpKTtcbiIpOworICAgICAgICAgICAgICAgICAgICAgICAgICAg
IGlmICgoKCRpbnRlcmZhY2VOYW1lIGVxICJET01XaW5kb3ciKSBvciAoJGludGVyZmFjZU5hbWUg
ZXEgIldvcmtlckNvbnRleHQiKSkgYW5kICRuYW1lIGVxICJvbmVycm9yIikgeworICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAkaW1wbEluY2x1ZGVzeyJKU0Vycm9ySGFuZGxlci5oIn0g
PSAxOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwg
IiAgICBpbXAtPnNldCRpbXBsU2V0dGVyRnVuY3Rpb25OYW1lKGNyZWF0ZUpTRXJyb3JIYW5kbGVy
KGV4ZWMsIHZhbHVlLCB0aGlzT2JqZWN0KSk7XG4iKTsKICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwdXNoKEBpbXBs
Q29udGVudCwgR2VuZXJhdGVBdHRyaWJ1dGVFdmVudExpc3RlbmVyQ2FsbCgkY2xhc3NOYW1lLCAk
aW1wbFNldHRlckZ1bmN0aW9uTmFtZSwgJHdpbmRvd0V2ZW50TGlzdGVuZXIpKTsKICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICB9CmRpZmYgLS1naXQgYS9XZWJDb3JlL2JpbmRpbmdzL3Njcmlw
dHMvQ29kZUdlbmVyYXRvclY4LnBtIGIvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5l
cmF0b3JWOC5wbQppbmRleCBmNTBlNzRhLi5jMDZmZTE3IDEwMDY0NAotLS0gYS9XZWJDb3JlL2Jp
bmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvclY4LnBtCisrKyBiL1dlYkNvcmUvYmluZGluZ3Mv
c2NyaXB0cy9Db2RlR2VuZXJhdG9yVjgucG0KQEAgLTEwMDEsNiArMTAwMSwxMCBAQCBFTkQKICAg
ICAgICAgICAgICAgICAkaW1wbEluY2x1ZGVzeyJWOEV2ZW50TGlzdGVuZXJMaXN0LmgifSA9IDE7
CiAgICAgICAgICAgICAgICAgJGltcGxJbmNsdWRlc3siVjhXb3JrZXJDb250ZXh0RXJyb3JIYW5k
bGVyLmgifSA9IDE7CiAgICAgICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnREZWNscywgIiAg
ICBpbXAtPnNldCRpbXBsU2V0dGVyRnVuY3Rpb25OYW1lKFY4RXZlbnRMaXN0ZW5lckxpc3Q6OmZp
bmRPckNyZWF0ZVdyYXBwZXI8VjhXb3JrZXJDb250ZXh0RXJyb3JIYW5kbGVyPih2YWx1ZSwgdHJ1
ZSkiKTsKKyAgICAgICAgICAgIH0gZWxzaWYgKCRpbnRlcmZhY2VOYW1lIGVxICJET01XaW5kb3ci
IGFuZCAkYXR0cmlidXRlLT5zaWduYXR1cmUtPm5hbWUgZXEgIm9uZXJyb3IiKSB7CisgICAgICAg
ICAgICAgICAgJGltcGxJbmNsdWRlc3siVjhFdmVudExpc3RlbmVyTGlzdC5oIn0gPSAxOworICAg
ICAgICAgICAgICAgICRpbXBsSW5jbHVkZXN7IlY4V2luZG93RXJyb3JIYW5kbGVyLmgifSA9IDE7
CisgICAgICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnREZWNscywgIiAgICBpbXAtPnNldCRp
bXBsU2V0dGVyRnVuY3Rpb25OYW1lKFY4RXZlbnRMaXN0ZW5lckxpc3Q6OmZpbmRPckNyZWF0ZVdy
YXBwZXI8VjhXaW5kb3dFcnJvckhhbmRsZXI+KHZhbHVlLCB0cnVlKSIpOwogICAgICAgICAgICAg
fSBlbHNlIHsKICAgICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudERlY2xzLCAiICAgIGlt
cC0+c2V0JGltcGxTZXR0ZXJGdW5jdGlvbk5hbWUoVjhET01XcmFwcGVyOjpnZXRFdmVudExpc3Rl
bmVyKHZhbHVlLCB0cnVlLCBMaXN0ZW5lckZpbmRPckNyZWF0ZSkiKTsKICAgICAgICAgICAgIH0K
ZGlmZiAtLWdpdCBhL1dlYkNvcmUvYmluZGluZ3MvdjgvVjhDb25zb2xlTWVzc2FnZS5jcHAgYi9X
ZWJDb3JlL2JpbmRpbmdzL3Y4L1Y4Q29uc29sZU1lc3NhZ2UuY3BwCmluZGV4IGU2ODcxZmQuLmQ5
MjgyMmMgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvYmluZGluZ3MvdjgvVjhDb25zb2xlTWVzc2FnZS5j
cHAKKysrIGIvV2ViQ29yZS9iaW5kaW5ncy92OC9WOENvbnNvbGVNZXNzYWdlLmNwcApAQCAtNTQs
NyArNTQsMTQgQEAgVjhDb25zb2xlTWVzc2FnZTo6VjhDb25zb2xlTWVzc2FnZShjb25zdCBTdHJp
bmcmIHN0cmluZywgY29uc3QgU3RyaW5nJiBzb3VyY2VJRCwKIAogdm9pZCBWOENvbnNvbGVNZXNz
YWdlOjpkaXNwYXRjaE5vdyhQYWdlKiBwYWdlKQogewotICAgIGRpc3BhdGNoTm93KHBhZ2UsIDAp
OworICAgIEFTU0VSVChwYWdlKTsKKworICAgIC8vIFByb2Nlc3MgYW55IGRlbGF5ZWQgbWVzc2Fn
ZXMgdG8gbWFrZSBzdXJlIHRoYXQgbWVzc2FnZXMKKyAgICAvLyBhcHBlYXIgaW4gdGhlIHJpZ2h0
IG9yZGVyIGluIHRoZSBjb25zb2xlLgorICAgIHByb2Nlc3NEZWxheWVkKCk7CisKKyAgICBDb25z
b2xlKiBjb25zb2xlID0gcGFnZS0+bWFpbkZyYW1lKCktPmRvbVdpbmRvdygpLT5jb25zb2xlKCk7
CisgICAgY29uc29sZS0+YWRkTWVzc2FnZShKU01lc3NhZ2VTb3VyY2UsIExvZ01lc3NhZ2VUeXBl
LCBFcnJvck1lc3NhZ2VMZXZlbCwgbV9zdHJpbmcsIG1fbGluZU51bWJlciwgbV9zb3VyY2VJRCk7
CiB9CiAKIHZvaWQgVjhDb25zb2xlTWVzc2FnZTo6ZGlzcGF0Y2hMYXRlcigpCkBAIC0xMDUsOCAr
MTEyLDggQEAgdm9pZCBWOENvbnNvbGVNZXNzYWdlOjpoYW5kbGVyKHY4OjpIYW5kbGU8djg6Ok1l
c3NhZ2U+IG1lc3NhZ2UsIHY4OjpIYW5kbGU8djg6OlYKICAgICBGcmFtZSogZnJhbWUgPSBWOFBy
b3h5OjpyZXRyaWV2ZUZyYW1lRm9yRW50ZXJlZENvbnRleHQoKTsKICAgICBpZiAoIWZyYW1lKQog
ICAgICAgICByZXR1cm47Ci0gICAgUGFnZSogcGFnZSA9IGZyYW1lLT5wYWdlKCk7Ci0gICAgaWYg
KCFwYWdlKQorICAgIERvY3VtZW50KiBkb2N1bWVudCA9IGZyYW1lLT5kb2N1bWVudCgpOworICAg
IGlmICghZG9jdW1lbnQpCiAgICAgICAgIHJldHVybjsKIAogICAgIHY4OjpIYW5kbGU8djg6OlN0
cmluZz4gZXJyb3JNZXNzYWdlU3RyaW5nID0gbWVzc2FnZS0+R2V0KCk7CkBAIC0xMjIsMjEgKzEy
OSw3IEBAIHZvaWQgVjhDb25zb2xlTWVzc2FnZTo6aGFuZGxlcih2ODo6SGFuZGxlPHY4OjpNZXNz
YWdlPiBtZXNzYWdlLCB2ODo6SGFuZGxlPHY4OjpWCiAgICAgdjg6OkhhbmRsZTx2ODo6VmFsdWU+
IHJlc291cmNlTmFtZSA9IG1lc3NhZ2UtPkdldFNjcmlwdFJlc291cmNlTmFtZSgpOwogICAgIGJv
b2wgdXNlVVJMID0gcmVzb3VyY2VOYW1lLklzRW1wdHkoKSB8fCAhcmVzb3VyY2VOYW1lLT5Jc1N0
cmluZygpOwogICAgIFN0cmluZyByZXNvdXJjZU5hbWVTdHJpbmcgPSB1c2VVUkwgPyBmcmFtZS0+
ZG9jdW1lbnQoKS0+dXJsKCkgOiB0b1dlYkNvcmVTdHJpbmcocmVzb3VyY2VOYW1lKTsKLSAgICBW
OENvbnNvbGVNZXNzYWdlIGNvbnNvbGVNZXNzYWdlKGVycm9yTWVzc2FnZSwgcmVzb3VyY2VOYW1l
U3RyaW5nLCBtZXNzYWdlLT5HZXRMaW5lTnVtYmVyKCkpOwotICAgIGNvbnNvbGVNZXNzYWdlLmRp
c3BhdGNoTm93KHBhZ2UsIGNhbGxTdGFjayk7Ci19Ci0KLXZvaWQgVjhDb25zb2xlTWVzc2FnZTo6
ZGlzcGF0Y2hOb3coUGFnZSogcGFnZSwgUGFzc1JlZlB0cjxTY3JpcHRDYWxsU3RhY2s+IGNhbGxT
dGFjaykKLXsKLSAgICBBU1NFUlQocGFnZSk7Ci0KLSAgICAvLyBQcm9jZXNzIGFueSBkZWxheWVk
IG1lc3NhZ2VzIHRvIG1ha2Ugc3VyZSB0aGF0IG1lc3NhZ2VzCi0gICAgLy8gYXBwZWFyIGluIHRo
ZSByaWdodCBvcmRlciBpbiB0aGUgY29uc29sZS4KLSAgICBwcm9jZXNzRGVsYXllZCgpOwotCi0g
ICAgQ29uc29sZSogY29uc29sZSA9IHBhZ2UtPm1haW5GcmFtZSgpLT5kb21XaW5kb3coKS0+Y29u
c29sZSgpOwotICAgIE1lc3NhZ2VUeXBlIG1lc3NhZ2VUeXBlID0gY2FsbFN0YWNrID8gVW5jYXVn
aHRFeGNlcHRpb25NZXNzYWdlVHlwZSA6IExvZ01lc3NhZ2VUeXBlOwotICAgIGNvbnNvbGUtPmFk
ZE1lc3NhZ2UoSlNNZXNzYWdlU291cmNlLCBtZXNzYWdlVHlwZSwgRXJyb3JNZXNzYWdlTGV2ZWws
IG1fc3RyaW5nLCBtX2xpbmVOdW1iZXIsIG1fc291cmNlSUQsIGNhbGxTdGFjayk7CisgICAgZG9j
dW1lbnQtPnJlcG9ydEV4Y2VwdGlvbihlcnJvck1lc3NhZ2UsIG1lc3NhZ2UtPkdldExpbmVOdW1i
ZXIoKSwgcmVzb3VyY2VOYW1lU3RyaW5nLCBjYWxsU3RhY2spOwogfQogCiB9IC8vIG5hbWVzcGFj
ZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1Y4Q29uc29sZU1lc3Nh
Z2UuaCBiL1dlYkNvcmUvYmluZGluZ3MvdjgvVjhDb25zb2xlTWVzc2FnZS5oCmluZGV4IDk3ZGUy
NGYuLjYxODNmYzYgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvYmluZGluZ3MvdjgvVjhDb25zb2xlTWVz
c2FnZS5oCisrKyBiL1dlYkNvcmUvYmluZGluZ3MvdjgvVjhDb25zb2xlTWVzc2FnZS5oCkBAIC04
Miw4ICs4Miw2IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgY29uc3QgU3RyaW5nIG1f
c291cmNlSUQ7CiAgICAgICAgIGNvbnN0IHVuc2lnbmVkIG1fbGluZU51bWJlcjsKIAotICAgICAg
ICB2b2lkIGRpc3BhdGNoTm93KFBhZ2UqLCBQYXNzUmVmUHRyPFNjcmlwdENhbGxTdGFjaz4pOwot
CiAgICAgICAgIC8vIEFsbCBkZWxheWVkIG1lc3NhZ2VzIGFyZSBzdG9yZWQgaW4gdGhpcyB2ZWN0
b3IuIElmIHRoZSB2ZWN0b3IKICAgICAgICAgLy8gaXMgMCwgdGhlcmUgYXJlIG5vIGRlbGF5ZWQg
bWVzc2FnZXMuCiAgICAgICAgIHN0YXRpYyBWZWN0b3I8VjhDb25zb2xlTWVzc2FnZT4qIG1fZGVs
YXllZE1lc3NhZ2VzOwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9iaW5kaW5ncy92OC9WOEV2ZW50TGlz
dGVuZXIuaCBiL1dlYkNvcmUvYmluZGluZ3MvdjgvVjhFdmVudExpc3RlbmVyLmgKaW5kZXggZmI2
YzBiYy4uYmNmNzIxMyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9iaW5kaW5ncy92OC9WOEV2ZW50TGlz
dGVuZXIuaAorKysgYi9XZWJDb3JlL2JpbmRpbmdzL3Y4L1Y4RXZlbnRMaXN0ZW5lci5oCkBAIC01
NCw4ICs1NCw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogICAgICAgICB2ODo6TG9jYWw8djg6
OkZ1bmN0aW9uPiBnZXRMaXN0ZW5lckZ1bmN0aW9uKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqKTsK
IAotICAgIHByaXZhdGU6Ci0gICAgICB2aXJ0dWFsIHY4OjpMb2NhbDx2ODo6VmFsdWU+IGNhbGxM
aXN0ZW5lckZ1bmN0aW9uKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqLCB2ODo6SGFuZGxlPHY4OjpW
YWx1ZT4ganNFdmVudCwgRXZlbnQqKTsKKyAgICAgICAgdmlydHVhbCB2ODo6TG9jYWw8djg6OlZh
bHVlPiBjYWxsTGlzdGVuZXJGdW5jdGlvbihTY3JpcHRFeGVjdXRpb25Db250ZXh0Kiwgdjg6Okhh
bmRsZTx2ODo6VmFsdWU+IGpzRXZlbnQsIEV2ZW50Kik7CiAgICAgIH07CiAKIH0gLy8gbmFtZXNw
YWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1dlYkNvcmUvYmluZGluZ3MvdjgvVjhXaW5kb3dFcnJv
ckhhbmRsZXIuY3BwIGIvV2ViQ29yZS9iaW5kaW5ncy92OC9WOFdpbmRvd0Vycm9ySGFuZGxlci5j
cHAKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uNDIwM2FkNQotLS0gL2Rldi9u
dWxsCisrKyBiL1dlYkNvcmUvYmluZGluZ3MvdjgvVjhXaW5kb3dFcnJvckhhbmRsZXIuY3BwCkBA
IC0wLDAgKzEsNjQgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgR29vZ2xlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKKyAq
IG1ldDoKKyAqCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogICAgICogUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQorICogY29weXJpZ2h0
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lcgorICogaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZQorICogZGlzdHJpYnV0aW9uLgorICogICAgICogTmVpdGhlciB0aGUgbmFt
ZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cworICogY29udHJpYnV0b3JzIG1h
eSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KKyAq
IHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24u
CisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERF
UlMgQU5EIENPTlRSSUJVVE9SUworICogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFRIRSBJTVBM
SUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgorICogQSBQ
QVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBD
T1BZUklHSFQKKyAqIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJF
Q1QsIElORElSRUNULCBJTkNJREVOVEFMLAorICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05T
RVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgUFJP
Q1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCisg
KiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FV
U0VEIEFORCBPTiBBTlkKKyAqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBP
UiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJ
UyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisKKyNpbmNsdWRlICJWOFdpbmRvd0Vy
cm9ySGFuZGxlci5oIgorCisjaW5jbHVkZSAiRXJyb3JFdmVudC5oIgorI2luY2x1ZGUgIlY4Qmlu
ZGluZy5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK1Y4V2luZG93RXJyb3JIYW5kbGVyOjpW
OFdpbmRvd0Vycm9ySGFuZGxlcih2ODo6TG9jYWw8djg6Ok9iamVjdD4gbGlzdGVuZXIsIGJvb2wg
aXNJbmxpbmUsIGNvbnN0IFdvcmxkQ29udGV4dEhhbmRsZSYgd29ybGRDb250ZXh0KQorICAgIDog
VjhFdmVudExpc3RlbmVyKGxpc3RlbmVyLCBpc0lubGluZSwgd29ybGRDb250ZXh0KQoreworfQor
Cit2ODo6TG9jYWw8djg6OlZhbHVlPiBWOFdpbmRvd0Vycm9ySGFuZGxlcjo6Y2FsbExpc3RlbmVy
RnVuY3Rpb24oU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCwgdjg6OkhhbmRsZTx2ODo6
VmFsdWU+IGpzRXZlbnQsIEV2ZW50KiBldmVudCkKK3sKKyAgICBpZiAoIWV2ZW50LT5pc0Vycm9y
RXZlbnQoKSkKKyAgICAgICAgcmV0dXJuIFY4RXZlbnRMaXN0ZW5lcjo6Y2FsbExpc3RlbmVyRnVu
Y3Rpb24oY29udGV4dCwganNFdmVudCwgZXZlbnQpOworICAgIAorICAgIEVycm9yRXZlbnQqIGVy
cm9yRXZlbnQgPSBzdGF0aWNfY2FzdDxFcnJvckV2ZW50Kj4oZXZlbnQpOworICAgIHY4OjpMb2Nh
bDx2ODo6T2JqZWN0PiBsaXN0ZW5lciA9IGdldExpc3RlbmVyT2JqZWN0KGNvbnRleHQpOworICAg
IHY4OjpMb2NhbDx2ODo6VmFsdWU+IHJldHVyblZhbHVlOworICAgIGlmICghbGlzdGVuZXIuSXNF
bXB0eSgpICYmIGxpc3RlbmVyLT5Jc0Z1bmN0aW9uKCkpIHsKKyAgICAgICAgdjg6OkxvY2FsPHY4
OjpGdW5jdGlvbj4gY2FsbEZ1bmN0aW9uID0gdjg6OkxvY2FsPHY4OjpGdW5jdGlvbj46OkNhc3Qo
bGlzdGVuZXIpOworICAgICAgICB2ODo6TG9jYWw8djg6Ok9iamVjdD4gdGhpc1ZhbHVlID0gdjg6
OkNvbnRleHQ6OkdldEN1cnJlbnQoKS0+R2xvYmFsKCk7CisgICAgICAgIHY4OjpIYW5kbGU8djg6
OlZhbHVlPiBwYXJhbWV0ZXJzWzNdID0geyB2OFN0cmluZyhlcnJvckV2ZW50LT5tZXNzYWdlKCkp
LCB2OFN0cmluZyhlcnJvckV2ZW50LT5maWxlbmFtZSgpKSwgdjg6OkludGVnZXI6Ok5ldyhlcnJv
ckV2ZW50LT5saW5lbm8oKSkgfTsKKyAgICAgICAgcmV0dXJuVmFsdWUgPSBjYWxsRnVuY3Rpb24t
PkNhbGwodGhpc1ZhbHVlLCAzLCBwYXJhbWV0ZXJzKTsKKyAgICAgICAgaWYgKCFyZXR1cm5WYWx1
ZS5Jc0VtcHR5KCkgJiYgcmV0dXJuVmFsdWUtPklzQm9vbGVhbigpICYmICFyZXR1cm5WYWx1ZS0+
Qm9vbGVhblZhbHVlKCkpCisgICAgICAgICAgICBldmVudC0+cHJldmVudERlZmF1bHQoKTsKKyAg
ICB9CisgICAgcmV0dXJuIHJldHVyblZhbHVlOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3Jl
CmRpZmYgLS1naXQgYS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1Y4V2luZG93RXJyb3JIYW5kbGVyLmgg
Yi9XZWJDb3JlL2JpbmRpbmdzL3Y4L1Y4V2luZG93RXJyb3JIYW5kbGVyLmgKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNDkzYTliZgotLS0gL2Rldi9udWxsCisrKyBiL1dlYkNv
cmUvYmluZGluZ3MvdjgvVjhXaW5kb3dFcnJvckhhbmRsZXIuaApAQCAtMCwwICsxLDU1IEBACisv
KgorICogQ29weXJpZ2h0IChDKSAyMDEwIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCisgKiBtZXQ6CisgKgorICogICAg
ICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lci4KKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9y
bSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKKyAqIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKKyAqIGluIHRoZSBk
b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKKyAq
IGRpc3RyaWJ1dGlvbi4KKyAqICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4g
bm9yIHRoZSBuYW1lcyBvZiBpdHMKKyAqIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRv
cnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCisgKiB0aGlzIHNvZnR3YXJlIHdp
dGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRP
UlMKKyAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKKyAqIEEgUEFSVElDVUxBUiBQVVJQT1NF
IEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCisgKiBPV05F
UiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwKKyAqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAorICogREFUQSwgT1IgUFJPRklU
UzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisg
KiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lm
bmRlZiBWOFdpbmRvd0Vycm9ySGFuZGxlcl9oCisjZGVmaW5lIFY4V2luZG93RXJyb3JIYW5kbGVy
X2gKKworI2luY2x1ZGUgIlY4RXZlbnRMaXN0ZW5lci5oIgorI2luY2x1ZGUgPHY4Lmg+CisjaW5j
bHVkZSA8d3RmL1Bhc3NSZWZQdHIuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBW
OFdpbmRvd0Vycm9ySGFuZGxlciA6IHB1YmxpYyBWOEV2ZW50TGlzdGVuZXIgeworcHVibGljOgor
ICAgIHN0YXRpYyBQYXNzUmVmUHRyPFY4V2luZG93RXJyb3JIYW5kbGVyPiBjcmVhdGUodjg6Okxv
Y2FsPHY4OjpPYmplY3Q+IGxpc3RlbmVyLCBib29sIGlzSW5saW5lLCBjb25zdCBXb3JsZENvbnRl
eHRIYW5kbGUmIHdvcmxkQ29udGV4dCkKKyAgICB7CisgICAgICAgIHJldHVybiBhZG9wdFJlZihu
ZXcgVjhXaW5kb3dFcnJvckhhbmRsZXIobGlzdGVuZXIsIGlzSW5saW5lLCB3b3JsZENvbnRleHQp
KTsKKyAgICB9CisKK3ByaXZhdGU6CisgICAgVjhXaW5kb3dFcnJvckhhbmRsZXIodjg6OkxvY2Fs
PHY4OjpPYmplY3Q+IGxpc3RlbmVyLCBib29sIGlzSW5saW5lLCBjb25zdCBXb3JsZENvbnRleHRI
YW5kbGUmIHdvcmxkQ29udGV4dCk7CisKKyAgICB2aXJ0dWFsIHY4OjpMb2NhbDx2ODo6VmFsdWU+
IGNhbGxMaXN0ZW5lckZ1bmN0aW9uKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqLCB2ODo6SGFuZGxl
PHY4OjpWYWx1ZT4ganNFdmVudCwgRXZlbnQqKTsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNv
cmUKKworI2VuZGlmIC8vIFY4V2luZG93RXJyb3JIYW5kbGVyX2gKZGlmZiAtLWdpdCBhL1dlYkNv
cmUvYmluZGluZ3MvdjgvV29ya2VyQ29udGV4dEV4ZWN1dGlvblByb3h5LmNwcCBiL1dlYkNvcmUv
YmluZGluZ3MvdjgvV29ya2VyQ29udGV4dEV4ZWN1dGlvblByb3h5LmNwcAppbmRleCBjZWZiMmZh
Li5lYjI1ODE0IDEwMDY0NAotLS0gYS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1dvcmtlckNvbnRleHRF
eGVjdXRpb25Qcm94eS5jcHAKKysrIGIvV2ViQ29yZS9iaW5kaW5ncy92OC9Xb3JrZXJDb250ZXh0
RXhlY3V0aW9uUHJveHkuY3BwCkBAIC0zNyw2ICszNyw3IEBACiAKICNpbmNsdWRlICJEZWRpY2F0
ZWRXb3JrZXJDb250ZXh0LmgiCiAjaW5jbHVkZSAiRXZlbnQuaCIKKyNpbmNsdWRlICJTY3JpcHRD
YWxsU3RhY2suaCIKICNpbmNsdWRlICJTaGFyZWRXb3JrZXIuaCIKICNpbmNsdWRlICJTaGFyZWRX
b3JrZXJDb250ZXh0LmgiCiAjaW5jbHVkZSAiVjhCaW5kaW5nLmgiCkBAIC03Miw3ICs3Myw3IEBA
IHN0YXRpYyB2b2lkIHY4TWVzc2FnZUhhbmRsZXIodjg6OkhhbmRsZTx2ODo6TWVzc2FnZT4gbWVz
c2FnZSwgdjg6OkhhbmRsZTx2ODo6VmFsCiAgICAgICAgIFN0cmluZyBlcnJvck1lc3NhZ2UgPSB0
b1dlYkNvcmVTdHJpbmcobWVzc2FnZS0+R2V0KCkpOwogICAgICAgICBpbnQgbGluZU51bWJlciA9
IG1lc3NhZ2UtPkdldExpbmVOdW1iZXIoKTsKICAgICAgICAgU3RyaW5nIHNvdXJjZVVSTCA9IHRv
V2ViQ29yZVN0cmluZyhtZXNzYWdlLT5HZXRTY3JpcHRSZXNvdXJjZU5hbWUoKSk7Ci0gICAgICAg
IGNvbnRleHQtPnJlcG9ydEV4Y2VwdGlvbihlcnJvck1lc3NhZ2UsIGxpbmVOdW1iZXIsIHNvdXJj
ZVVSTCk7CisgICAgICAgIGNvbnRleHQtPnJlcG9ydEV4Y2VwdGlvbihlcnJvck1lc3NhZ2UsIGxp
bmVOdW1iZXIsIHNvdXJjZVVSTCwgMCk7CiAgICAgfQogCiAgICAgaXNSZXBvcnRpbmdFeGNlcHRp
b24gPSBmYWxzZTsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvYmluZGluZ3MvdjgvV29ya2VyU2NyaXB0
Q29udHJvbGxlci5jcHAgYi9XZWJDb3JlL2JpbmRpbmdzL3Y4L1dvcmtlclNjcmlwdENvbnRyb2xs
ZXIuY3BwCmluZGV4IGI1NmQzODMuLjQyZTAyZTYgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvYmluZGlu
Z3MvdjgvV29ya2VyU2NyaXB0Q29udHJvbGxlci5jcHAKKysrIGIvV2ViQ29yZS9iaW5kaW5ncy92
OC9Xb3JrZXJTY3JpcHRDb250cm9sbGVyLmNwcApAQCAtMzQsMTEgKzM0LDEwIEBACiAKICNpbmNs
dWRlICJXb3JrZXJTY3JpcHRDb250cm9sbGVyLmgiCiAKLSNpbmNsdWRlIDx2OC5oPgotCisjaW5j
bHVkZSAiRE9NVGltZXIuaCIKKyNpbmNsdWRlICJTY3JpcHRDYWxsU3RhY2suaCIKICNpbmNsdWRl
ICJTY3JpcHRTb3VyY2VDb2RlLmgiCiAjaW5jbHVkZSAiU2NyaXB0VmFsdWUuaCIKLSNpbmNsdWRl
ICJET01UaW1lci5oIgogI2luY2x1ZGUgIlY4RE9NTWFwLmgiCiAjaW5jbHVkZSAiVjhQcm94eS5o
IgogI2luY2x1ZGUgIlY4V29ya2VyQ29udGV4dC5oIgpAQCAtNDYsNiArNDUsNyBAQAogI2luY2x1
ZGUgIldvcmtlckNvbnRleHRFeGVjdXRpb25Qcm94eS5oIgogI2luY2x1ZGUgIldvcmtlck9iamVj
dFByb3h5LmgiCiAjaW5jbHVkZSAiV29ya2VyVGhyZWFkLmgiCisjaW5jbHVkZSA8djguaD4KIAog
bmFtZXNwYWNlIFdlYkNvcmUgewogCkBAIC04MCw3ICs4MCw3IEBAIFNjcmlwdFZhbHVlIFdvcmtl
clNjcmlwdENvbnRyb2xsZXI6OmV2YWx1YXRlKGNvbnN0IFNjcmlwdFNvdXJjZUNvZGUmIHNvdXJj
ZUNvZGUsCiAgICAgICAgIGlmIChleGNlcHRpb24pCiAgICAgICAgICAgICAqZXhjZXB0aW9uID0g
c3RhdGUuZXhjZXB0aW9uOwogICAgICAgICBlbHNlCi0gICAgICAgICAgICBtX3dvcmtlckNvbnRl
eHQtPnJlcG9ydEV4Y2VwdGlvbihzdGF0ZS5lcnJvck1lc3NhZ2UsIHN0YXRlLmxpbmVOdW1iZXIs
IHN0YXRlLnNvdXJjZVVSTCk7CisgICAgICAgICAgICBtX3dvcmtlckNvbnRleHQtPnJlcG9ydEV4
Y2VwdGlvbihzdGF0ZS5lcnJvck1lc3NhZ2UsIHN0YXRlLmxpbmVOdW1iZXIsIHN0YXRlLnNvdXJj
ZVVSTCwgMCk7CiAgICAgfQogCiAgICAgcmV0dXJuIHJlc3VsdDsKZGlmZiAtLWdpdCBhL1dlYkNv
cmUvZG9tL0RvY3VtZW50LmNwcCBiL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcAppbmRleCBhZTYw
NGU5Li5mNzdiMzkyIDEwMDY0NAotLS0gYS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKKysrIGIv
V2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCkBAIC0xMTksNiArMTE5LDcgQEAKICNpbmNsdWRlICJS
ZW5kZXJUZXh0Q29udHJvbC5oIgogI2luY2x1ZGUgIlJlbmRlclZpZXcuaCIKICNpbmNsdWRlICJS
ZW5kZXJXaWRnZXQuaCIKKyNpbmNsdWRlICJTY3JpcHRDYWxsU3RhY2suaCIKICNpbmNsdWRlICJT
Y3JpcHRDb250cm9sbGVyLmgiCiAjaW5jbHVkZSAiU2NyaXB0RWxlbWVudC5oIgogI2luY2x1ZGUg
IlNjcmlwdEV2ZW50TGlzdGVuZXIuaCIKQEAgLTIyNzIsNiArMjI3MywxNyBAQCBLVVJMIERvY3Vt
ZW50Ojp2aXJ0dWFsQ29tcGxldGVVUkwoY29uc3QgU3RyaW5nJiB1cmwpIGNvbnN0CiAgICAgcmV0
dXJuIGNvbXBsZXRlVVJMKHVybCk7CiB9CiAKK0V2ZW50VGFyZ2V0KiBEb2N1bWVudDo6ZXJyb3JF
dmVudFRhcmdldCgpCit7CisgICAgcmV0dXJuIGRvbVdpbmRvdygpOworfQorCit2b2lkIERvY3Vt
ZW50Ojpsb2dFeGNlcHRpb25Ub0NvbnNvbGUoY29uc3QgU3RyaW5nJiBlcnJvck1lc3NhZ2UsIGlu
dCBsaW5lTnVtYmVyLCBjb25zdCBTdHJpbmcmIHNvdXJjZVVSTCwgUGFzc1JlZlB0cjxTY3JpcHRD
YWxsU3RhY2s+IGNhbGxTdGFjaykKK3sKKyAgICBNZXNzYWdlVHlwZSBtZXNzYWdlVHlwZSA9IGNh
bGxTdGFjayA/IFVuY2F1Z2h0RXhjZXB0aW9uTWVzc2FnZVR5cGUgOiBMb2dNZXNzYWdlVHlwZTsK
KyAgICBhZGRNZXNzYWdlKEpTTWVzc2FnZVNvdXJjZSwgbWVzc2FnZVR5cGUsIEVycm9yTWVzc2Fn
ZUxldmVsLCBlcnJvck1lc3NhZ2UsIGxpbmVOdW1iZXIsIHNvdXJjZVVSTCwgY2FsbFN0YWNrKTsK
K30KKwogdm9pZCBEb2N1bWVudDo6c2V0VVJMKGNvbnN0IEtVUkwmIHVybCkKIHsKICAgICBjb25z
dCBLVVJMJiBuZXdVUkwgPSB1cmwuaXNFbXB0eSgpID8gYmxhbmtVUkwoKSA6IHVybDsKQEAgLTQ2
NDgsMTUgKzQ2NjAsMTAgQEAgdm9pZCBEb2N1bWVudDo6cGFyc2VETlNQcmVmZXRjaENvbnRyb2xI
ZWFkZXIoY29uc3QgU3RyaW5nJiBkbnNQcmVmZXRjaENvbnRyb2wpCiAgICAgbV9oYXZlRXhwbGlj
aXRseURpc2FibGVkRE5TUHJlZmV0Y2ggPSB0cnVlOwogfQogCi12b2lkIERvY3VtZW50OjpyZXBv
cnRFeGNlcHRpb24oY29uc3QgU3RyaW5nJiBlcnJvck1lc3NhZ2UsIGludCBsaW5lTnVtYmVyLCBj
b25zdCBTdHJpbmcmIHNvdXJjZVVSTCkKLXsKLSAgICBhZGRNZXNzYWdlKEpTTWVzc2FnZVNvdXJj
ZSwgTG9nTWVzc2FnZVR5cGUsIEVycm9yTWVzc2FnZUxldmVsLCBlcnJvck1lc3NhZ2UsIGxpbmVO
dW1iZXIsIHNvdXJjZVVSTCk7Ci19Ci0KLXZvaWQgRG9jdW1lbnQ6OmFkZE1lc3NhZ2UoTWVzc2Fn
ZVNvdXJjZSBzb3VyY2UsIE1lc3NhZ2VUeXBlIHR5cGUsIE1lc3NhZ2VMZXZlbCBsZXZlbCwgY29u
c3QgU3RyaW5nJiBtZXNzYWdlLCB1bnNpZ25lZCBsaW5lTnVtYmVyLCBjb25zdCBTdHJpbmcmIHNv
dXJjZVVSTCkKK3ZvaWQgRG9jdW1lbnQ6OmFkZE1lc3NhZ2UoTWVzc2FnZVNvdXJjZSBzb3VyY2Us
IE1lc3NhZ2VUeXBlIHR5cGUsIE1lc3NhZ2VMZXZlbCBsZXZlbCwgY29uc3QgU3RyaW5nJiBtZXNz
YWdlLCB1bnNpZ25lZCBsaW5lTnVtYmVyLCBjb25zdCBTdHJpbmcmIHNvdXJjZVVSTCwgUGFzc1Jl
ZlB0cjxTY3JpcHRDYWxsU3RhY2s+IGNhbGxTdGFjaykKIHsKICAgICBpZiAoRE9NV2luZG93KiB3
aW5kb3cgPSBkb21XaW5kb3coKSkKLSAgICAgICAgd2luZG93LT5jb25zb2xlKCktPmFkZE1lc3Nh
Z2Uoc291cmNlLCB0eXBlLCBsZXZlbCwgbWVzc2FnZSwgbGluZU51bWJlciwgc291cmNlVVJMKTsK
KyAgICAgICAgd2luZG93LT5jb25zb2xlKCktPmFkZE1lc3NhZ2Uoc291cmNlLCB0eXBlLCBsZXZl
bCwgbWVzc2FnZSwgbGluZU51bWJlciwgc291cmNlVVJMLCBjYWxsU3RhY2spOwogfQogCiBzdHJ1
Y3QgUGVyZm9ybVRhc2tDb250ZXh0IDogTm9uY29weWFibGUgewpkaWZmIC0tZ2l0IGEvV2ViQ29y
ZS9kb20vRG9jdW1lbnQuaCBiL1dlYkNvcmUvZG9tL0RvY3VtZW50LmgKaW5kZXggMzkwNzJkZC4u
OWM5ZDc4OCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9kb20vRG9jdW1lbnQuaAorKysgYi9XZWJDb3Jl
L2RvbS9Eb2N1bWVudC5oCkBAIC05MzEsOCArOTMxLDcgQEAgcHVibGljOgogICAgIGJvb2wgaXNE
TlNQcmVmZXRjaEVuYWJsZWQoKSBjb25zdCB7IHJldHVybiBtX2lzRE5TUHJlZmV0Y2hFbmFibGVk
OyB9CiAgICAgdm9pZCBwYXJzZUROU1ByZWZldGNoQ29udHJvbEhlYWRlcihjb25zdCBTdHJpbmcm
KTsKIAotICAgIHZpcnR1YWwgdm9pZCByZXBvcnRFeGNlcHRpb24oY29uc3QgU3RyaW5nJiBlcnJv
ck1lc3NhZ2UsIGludCBsaW5lTnVtYmVyLCBjb25zdCBTdHJpbmcmIHNvdXJjZVVSTCk7Ci0gICAg
dmlydHVhbCB2b2lkIGFkZE1lc3NhZ2UoTWVzc2FnZVNvdXJjZSwgTWVzc2FnZVR5cGUsIE1lc3Nh
Z2VMZXZlbCwgY29uc3QgU3RyaW5nJiBtZXNzYWdlLCB1bnNpZ25lZCBsaW5lTnVtYmVyLCBjb25z
dCBTdHJpbmcmIHNvdXJjZVVSTCk7CisgICAgdmlydHVhbCB2b2lkIGFkZE1lc3NhZ2UoTWVzc2Fn
ZVNvdXJjZSwgTWVzc2FnZVR5cGUsIE1lc3NhZ2VMZXZlbCwgY29uc3QgU3RyaW5nJiBtZXNzYWdl
LCB1bnNpZ25lZCBsaW5lTnVtYmVyLCBjb25zdCBTdHJpbmcmIHNvdXJjZVVSTCwgUGFzc1JlZlB0
cjxTY3JpcHRDYWxsU3RhY2s+KTsKICAgICB2aXJ0dWFsIHZvaWQgcG9zdFRhc2soUGFzc093blB0
cjxUYXNrPik7IC8vIEV4ZWN1dGVzIHRoZSB0YXNrIG9uIGNvbnRleHQncyB0aHJlYWQgYXN5bmNo
cm9ub3VzbHkuCiAKICNpZiBVU0UoSlNDKQpAQCAtMTA2Niw2ICsxMDY1LDkgQEAgcHVibGljOgog
CiAgICAgYm9vbCBtYXlDYXVzZUZsYXNoT2ZVbnN0eWxlZENvbnRlbnQoKSBjb25zdDsKIAorICAg
IHZpcnR1YWwgRXZlbnRUYXJnZXQqIGVycm9yRXZlbnRUYXJnZXQoKTsKKyAgICB2aXJ0dWFsIHZv
aWQgbG9nRXhjZXB0aW9uVG9Db25zb2xlKGNvbnN0IFN0cmluZyYgZXJyb3JNZXNzYWdlLCBpbnQg
bGluZU51bWJlciwgY29uc3QgU3RyaW5nJiBzb3VyY2VVUkwsIFBhc3NSZWZQdHI8U2NyaXB0Q2Fs
bFN0YWNrPik7CisKICAgICB2b2lkIGluaXRETlNQcmVmZXRjaCgpOwogCiBwcm90ZWN0ZWQ6CmRp
ZmYgLS1naXQgYS9XZWJDb3JlL2RvbS9FcnJvckV2ZW50LmNwcCBiL1dlYkNvcmUvZG9tL0Vycm9y
RXZlbnQuY3BwCmluZGV4IDI2MjdkMDEuLmM1OTg4MzYgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvZG9t
L0Vycm9yRXZlbnQuY3BwCisrKyBiL1dlYkNvcmUvZG9tL0Vycm9yRXZlbnQuY3BwCkBAIC0zMCw4
ICszMCw2IEBACiAKICNpbmNsdWRlICJjb25maWcuaCIKIAotI2lmIEVOQUJMRShXT1JLRVJTKQot
CiAjaW5jbHVkZSAiRXJyb3JFdmVudC5oIgogCiAjaW5jbHVkZSAiRXZlbnROYW1lcy5oIgpAQCAt
NzIsNSArNzAsMyBAQCBib29sIEVycm9yRXZlbnQ6OmlzRXJyb3JFdmVudCgpIGNvbnN0CiB9CiAK
IH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKLQotI2VuZGlmIC8vIEVOQUJMRShXT1JLRVJTKQpkaWZm
IC0tZ2l0IGEvV2ViQ29yZS9kb20vRXJyb3JFdmVudC5oIGIvV2ViQ29yZS9kb20vRXJyb3JFdmVu
dC5oCmluZGV4IGY4MTUzMGEuLjcxOWNhMmQgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvZG9tL0Vycm9y
RXZlbnQuaAorKysgYi9XZWJDb3JlL2RvbS9FcnJvckV2ZW50LmgKQEAgLTMxLDggKzMxLDYgQEAK
ICNpZm5kZWYgRXJyb3JFdmVudF9oCiAjZGVmaW5lIEVycm9yRXZlbnRfaAogCi0jaWYgRU5BQkxF
KFdPUktFUlMpCi0KICNpbmNsdWRlICJFdmVudC5oIgogI2luY2x1ZGUgIlBsYXRmb3JtU3RyaW5n
LmgiCiAKQEAgLTY5LDYgKzY3LDQgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiB9IC8vIG5hbWVz
cGFjZSBXZWJDb3JlCiAKLSNlbmRpZiAvLyBFTkFCTEUoV09SS0VSUykKLQogI2VuZGlmIC8vIEVy
cm9yRXZlbnRfaApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9kb20vRXZlbnQuY3BwIGIvV2ViQ29yZS9k
b20vRXZlbnQuY3BwCmluZGV4IGE5NDlmZDUuLmZjNmQyODIgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUv
ZG9tL0V2ZW50LmNwcAorKysgYi9XZWJDb3JlL2RvbS9FdmVudC5jcHAKQEAgLTIwMywxMiArMjAz
LDEwIEBAIGJvb2wgRXZlbnQ6OmlzSURCU3VjY2Vzc0V2ZW50KCkgY29uc3QKIH0KICNlbmRpZgog
Ci0jaWYgRU5BQkxFKFdPUktFUlMpCiBib29sIEV2ZW50Ojppc0Vycm9yRXZlbnQoKSBjb25zdAog
ewogICAgIHJldHVybiBmYWxzZTsKIH0KLSNlbmRpZgogCiAjaWYgRU5BQkxFKFRPVUNIX0VWRU5U
UykKIGJvb2wgRXZlbnQ6OmlzVG91Y2hFdmVudCgpIGNvbnN0CmRpZmYgLS1naXQgYS9XZWJDb3Jl
L2RvbS9FdmVudC5oIGIvV2ViQ29yZS9kb20vRXZlbnQuaAppbmRleCBmMDVkMzZjLi45YWVmMjMz
IDEwMDY0NAotLS0gYS9XZWJDb3JlL2RvbS9FdmVudC5oCisrKyBiL1dlYkNvcmUvZG9tL0V2ZW50
LmgKQEAgLTEzMiw5ICsxMzIsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAjaWYgRU5BQkxFKFdF
Ql9BVURJTykKICAgICAgICAgdmlydHVhbCBib29sIGlzQXVkaW9Qcm9jZXNzaW5nRXZlbnQoKSBj
b25zdDsKICNlbmRpZgotI2lmIEVOQUJMRShXT1JLRVJTKQogICAgICAgICB2aXJ0dWFsIGJvb2wg
aXNFcnJvckV2ZW50KCkgY29uc3Q7Ci0jZW5kaWYKICNpZiBFTkFCTEUoVE9VQ0hfRVZFTlRTKQog
ICAgICAgICB2aXJ0dWFsIGJvb2wgaXNUb3VjaEV2ZW50KCkgY29uc3Q7CiAjZW5kaWYKZGlmZiAt
LWdpdCBhL1dlYkNvcmUvZG9tL1NjcmlwdEV4ZWN1dGlvbkNvbnRleHQuY3BwIGIvV2ViQ29yZS9k
b20vU2NyaXB0RXhlY3V0aW9uQ29udGV4dC5jcHAKaW5kZXggYmZkYTE3Yi4uZjQ5OGJlMCAxMDA2
NDQKLS0tIGEvV2ViQ29yZS9kb20vU2NyaXB0RXhlY3V0aW9uQ29udGV4dC5jcHAKKysrIGIvV2Vi
Q29yZS9kb20vU2NyaXB0RXhlY3V0aW9uQ29udGV4dC5jcHAKQEAgLTMzLDE0ICszMywxOSBAQAog
I2luY2x1ZGUgIkRhdGFiYXNlLmgiCiAjaW5jbHVkZSAiRGF0YWJhc2VUYXNrLmgiCiAjaW5jbHVk
ZSAiRGF0YWJhc2VUaHJlYWQuaCIKKyNpbmNsdWRlICJFcnJvckV2ZW50LmgiCisjaW5jbHVkZSAi
RXZlbnRMaXN0ZW5lci5oIgorI2luY2x1ZGUgIkV2ZW50VGFyZ2V0LmgiCiAjaW5jbHVkZSAiRmls
ZVRocmVhZC5oIgogI2luY2x1ZGUgIk1lc3NhZ2VQb3J0LmgiCisjaW5jbHVkZSAiU2NyaXB0Q2Fs
bFN0YWNrLmgiCiAjaW5jbHVkZSAiU2VjdXJpdHlPcmlnaW4uaCIKICNpbmNsdWRlICJUaHJlYWRh
YmxlQmxvYlJlZ2lzdHJ5LmgiCiAjaW5jbHVkZSAiV29ya2VyQ29udGV4dC5oIgogI2luY2x1ZGUg
IldvcmtlclRocmVhZC5oIgogI2luY2x1ZGUgPHd0Zi9NYWluVGhyZWFkLmg+CiAjaW5jbHVkZSA8
d3RmL1Bhc3NSZWZQdHIuaD4KKyNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CiAKICNpZiBVU0UoSlND
KQogI2luY2x1ZGUgIkpTRE9NV2luZG93LmgiCkBAIC02MSw5ICs2NiwyNSBAQCBwdWJsaWM6CiAg
ICAgfQogfTsKIAorY2xhc3MgU2NyaXB0RXhlY3V0aW9uQ29udGV4dDo6UGVuZGluZ0V4Y2VwdGlv
biA6IHB1YmxpYyBOb25jb3B5YWJsZSB7CitwdWJsaWM6CisgICAgUGVuZGluZ0V4Y2VwdGlvbihj
b25zdCBTdHJpbmcmIGVycm9yTWVzc2FnZSwgaW50IGxpbmVOdW1iZXIsIGNvbnN0IFN0cmluZyYg
c291cmNlVVJMLCBQYXNzUmVmUHRyPFNjcmlwdENhbGxTdGFjaz4gY2FsbFN0YWNrKQorICAgICAg
ICA6IG1fZXJyb3JNZXNzYWdlKGVycm9yTWVzc2FnZSkKKyAgICAgICAgLCBtX2xpbmVOdW1iZXIo
bGluZU51bWJlcikKKyAgICAgICAgLCBtX3NvdXJjZVVSTChzb3VyY2VVUkwpCisgICAgICAgICwg
bV9jYWxsU3RhY2soY2FsbFN0YWNrKQorICAgIHsKKyAgICB9CisgICAgU3RyaW5nIG1fZXJyb3JN
ZXNzYWdlOworICAgIGludCBtX2xpbmVOdW1iZXI7CisgICAgU3RyaW5nIG1fc291cmNlVVJMOwor
ICAgIFJlZlB0cjxTY3JpcHRDYWxsU3RhY2s+IG1fY2FsbFN0YWNrOworfTsKKwogU2NyaXB0RXhl
Y3V0aW9uQ29udGV4dDo6U2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpCisgICAgOiBtX2luRGlzcGF0
Y2hFcnJvckV2ZW50KGZhbHNlKQogI2lmIEVOQUJMRShEQVRBQkFTRSkKLSAgICA6IG1faGFzT3Bl
bkRhdGFiYXNlcyhmYWxzZSkKKyAgICAsIG1faGFzT3BlbkRhdGFiYXNlcyhmYWxzZSkKICNlbmRp
ZgogewogfQpAQCAtMjQzLDYgKzI2NCw0MyBAQCB2b2lkIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQ6
OnNldFNlY3VyaXR5T3JpZ2luKFBhc3NSZWZQdHI8U2VjdXJpdHlPcmlnaW4+IHNlY3VyaQogICAg
IG1fc2VjdXJpdHlPcmlnaW4gPSBzZWN1cml0eU9yaWdpbjsKIH0KIAordm9pZCBTY3JpcHRFeGVj
dXRpb25Db250ZXh0OjpyZXBvcnRFeGNlcHRpb24oY29uc3QgU3RyaW5nJiBlcnJvck1lc3NhZ2Us
IGludCBsaW5lTnVtYmVyLCBjb25zdCBTdHJpbmcmIHNvdXJjZVVSTCwgUGFzc1JlZlB0cjxTY3Jp
cHRDYWxsU3RhY2s+IGNhbGxTdGFjaykKK3sKKyAgICBpZiAobV9pbkRpc3BhdGNoRXJyb3JFdmVu
dCkgeworICAgICAgICBpZiAoIW1fcGVuZGluZ0V4Y2VwdGlvbnMpCisgICAgICAgICAgICBtX3Bl
bmRpbmdFeGNlcHRpb25zID0gYWRvcHRQdHIobmV3IFZlY3RvcjxPd25QdHI8UGVuZGluZ0V4Y2Vw
dGlvbj4gPigpKTsKKyAgICAgICAgbV9wZW5kaW5nRXhjZXB0aW9ucy0+YXBwZW5kKGFkb3B0UHRy
KG5ldyBQZW5kaW5nRXhjZXB0aW9uKGVycm9yTWVzc2FnZSwgbGluZU51bWJlciwgc291cmNlVVJM
LCBjYWxsU3RhY2spKSk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICAvLyBGaXJzdCBy
ZXBvcnQgdGhlIG9yaWdpbmFsIGV4Y2VwdGlvbiBhbmQgb25seSB0aGVuIGFsbCB0aGUgbmVzdGVk
IG9uZXMuCisgICAgaWYgKCFkaXNwYXRjaEVycm9yRXZlbnQoZXJyb3JNZXNzYWdlLCBsaW5lTnVt
YmVyLCBzb3VyY2VVUkwpKQorICAgICAgICBsb2dFeGNlcHRpb25Ub0NvbnNvbGUoZXJyb3JNZXNz
YWdlLCBsaW5lTnVtYmVyLCBzb3VyY2VVUkwsIGNhbGxTdGFjayk7CisKKyAgICBpZiAoIW1fcGVu
ZGluZ0V4Y2VwdGlvbnMpCisgICAgICAgIHJldHVybjsKKworICAgIGZvciAoc2l6ZV90IGkgPSAw
OyBpIDwgbV9wZW5kaW5nRXhjZXB0aW9ucy0+c2l6ZSgpOyBpKyspIHsKKyAgICAgICAgUGVuZGlu
Z0V4Y2VwdGlvbiogZSA9IG1fcGVuZGluZ0V4Y2VwdGlvbnMtPmF0KGkpLmdldCgpOworICAgICAg
ICBsb2dFeGNlcHRpb25Ub0NvbnNvbGUoZS0+bV9lcnJvck1lc3NhZ2UsIGUtPm1fbGluZU51bWJl
ciwgZS0+bV9zb3VyY2VVUkwsIGUtPm1fY2FsbFN0YWNrKTsKKyAgICB9CisgICAgbV9wZW5kaW5n
RXhjZXB0aW9ucy5jbGVhcigpOworfQorCitib29sIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQ6OmRp
c3BhdGNoRXJyb3JFdmVudChjb25zdCBTdHJpbmcmIGVycm9yTWVzc2FnZSwgaW50IGxpbmVOdW1i
ZXIsIGNvbnN0IFN0cmluZyYgc291cmNlVVJMKQoreworICAgIEV2ZW50VGFyZ2V0KiB0YXJnZXQg
PSBlcnJvckV2ZW50VGFyZ2V0KCk7CisgICAgaWYgKCF0YXJnZXQpCisgICAgICAgIHJldHVybiBm
YWxzZTsKKworICAgIEFTU0VSVCghbV9pbkRpc3BhdGNoRXJyb3JFdmVudCk7CisgICAgbV9pbkRp
c3BhdGNoRXJyb3JFdmVudCA9IHRydWU7CisgICAgUmVmUHRyPEVycm9yRXZlbnQ+IGVycm9yRXZl
bnQgPSBFcnJvckV2ZW50OjpjcmVhdGUoZXJyb3JNZXNzYWdlLCBzb3VyY2VVUkwsIGxpbmVOdW1i
ZXIpOworICAgIHRhcmdldC0+ZGlzcGF0Y2hFdmVudChlcnJvckV2ZW50KTsKKyAgICBtX2luRGlz
cGF0Y2hFcnJvckV2ZW50ID0gZmFsc2U7CisgICAgcmV0dXJuIGVycm9yRXZlbnQtPmRlZmF1bHRQ
cmV2ZW50ZWQoKTsKK30KKwogdm9pZCBTY3JpcHRFeGVjdXRpb25Db250ZXh0OjphZGRUaW1lb3V0
KGludCB0aW1lb3V0SWQsIERPTVRpbWVyKiB0aW1lcikKIHsKICAgICBBU1NFUlQoIW1fdGltZW91
dHMuY29udGFpbnModGltZW91dElkKSk7CmRpZmYgLS1naXQgYS9XZWJDb3JlL2RvbS9TY3JpcHRF
eGVjdXRpb25Db250ZXh0LmggYi9XZWJDb3JlL2RvbS9TY3JpcHRFeGVjdXRpb25Db250ZXh0LmgK
aW5kZXggMTJlYjc3Ni4uMDE5YzVkNiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9kb20vU2NyaXB0RXhl
Y3V0aW9uQ29udGV4dC5oCisrKyBiL1dlYkNvcmUvZG9tL1NjcmlwdEV4ZWN1dGlvbkNvbnRleHQu
aApAQCAtMzMsNiArMzMsNyBAQAogI2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+CiAjaW5jbHVkZSA8
d3RmL0hhc2hNYXAuaD4KICNpbmNsdWRlIDx3dGYvSGFzaFNldC5oPgorI2luY2x1ZGUgPHd0Zi9P
d25QdHIuaD4KICNpbmNsdWRlIDx3dGYvUGFzc093blB0ci5oPgogI2luY2x1ZGUgPHd0Zi9QYXNz
UmVmUHRyLmg+CiAjaW5jbHVkZSA8d3RmL1JlZlB0ci5oPgpAQCAtNTIsMTEgKzUzLDE0IEBAIG5h
bWVzcGFjZSBXZWJDb3JlIHsKICAgICBjbGFzcyBEYXRhYmFzZVRocmVhZDsKICNlbmRpZgogICAg
IGNsYXNzIERPTVRpbWVyOworICAgIGNsYXNzIEV2ZW50TGlzdGVuZXI7CisgICAgY2xhc3MgRXZl
bnRUYXJnZXQ7CiAjaWYgRU5BQkxFKEJMT0IpIHx8IEVOQUJMRShGSUxFX1NZU1RFTSkKICAgICBj
bGFzcyBGaWxlVGhyZWFkOwogI2VuZGlmCiAgICAgY2xhc3MgTWVzc2FnZVBvcnQ7CiAgICAgY2xh
c3MgU2VjdXJpdHlPcmlnaW47CisgICAgY2xhc3MgU2NyaXB0Q2FsbFN0YWNrOwogI2lmIEVOQUJM
RShJTlNQRUNUT1IpCiAgICAgY2xhc3MgSW5zcGVjdG9yQ29udHJvbGxlcjsKICNlbmRpZgpAQCAt
OTEsOCArOTUsOCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIHZpcnR1YWwgSW5zcGVj
dG9yQ29udHJvbGxlciogaW5zcGVjdG9yQ29udHJvbGxlcigpIGNvbnN0IHsgcmV0dXJuIDA7IH0K
ICNlbmRpZgogCi0gICAgICAgIHZpcnR1YWwgdm9pZCByZXBvcnRFeGNlcHRpb24oY29uc3QgU3Ry
aW5nJiBlcnJvck1lc3NhZ2UsIGludCBsaW5lTnVtYmVyLCBjb25zdCBTdHJpbmcmIHNvdXJjZVVS
TCkgPSAwOwotICAgICAgICB2aXJ0dWFsIHZvaWQgYWRkTWVzc2FnZShNZXNzYWdlU291cmNlLCBN
ZXNzYWdlVHlwZSwgTWVzc2FnZUxldmVsLCBjb25zdCBTdHJpbmcmIG1lc3NhZ2UsIHVuc2lnbmVk
IGxpbmVOdW1iZXIsIGNvbnN0IFN0cmluZyYgc291cmNlVVJMKSA9IDA7CisgICAgICAgIHZvaWQg
cmVwb3J0RXhjZXB0aW9uKGNvbnN0IFN0cmluZyYgZXJyb3JNZXNzYWdlLCBpbnQgbGluZU51bWJl
ciwgY29uc3QgU3RyaW5nJiBzb3VyY2VVUkwsIFBhc3NSZWZQdHI8U2NyaXB0Q2FsbFN0YWNrPik7
CisgICAgICAgIHZpcnR1YWwgdm9pZCBhZGRNZXNzYWdlKE1lc3NhZ2VTb3VyY2UsIE1lc3NhZ2VU
eXBlLCBNZXNzYWdlTGV2ZWwsIGNvbnN0IFN0cmluZyYgbWVzc2FnZSwgdW5zaWduZWQgbGluZU51
bWJlciwgY29uc3QgU3RyaW5nJiBzb3VyY2VVUkwsIFBhc3NSZWZQdHI8U2NyaXB0Q2FsbFN0YWNr
PikgPSAwOwogCiAgICAgICAgIC8vIEFjdGl2ZSBvYmplY3RzIGFyZSBub3QgZ2FyYmFnZSBjb2xs
ZWN0ZWQgZXZlbiBpZiBpbmFjY2Vzc2libGUsIGUuZy4gYmVjYXVzZSB0aGVpciBhY3Rpdml0eSBt
YXkgcmVzdWx0IGluIGNhbGxiYWNrcyBiZWluZyBpbnZva2VkLgogICAgICAgICBib29sIGNhblN1
c3BlbmRBY3RpdmVET01PYmplY3RzKCk7CkBAIC0xNTQsNiArMTU4LDEwIEBAIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKICAgICAgICAgdmlydHVhbCBjb25zdCBLVVJMJiB2aXJ0dWFsVVJMKCkgY29uc3Qg
PSAwOwogICAgICAgICB2aXJ0dWFsIEtVUkwgdmlydHVhbENvbXBsZXRlVVJMKGNvbnN0IFN0cmlu
ZyYpIGNvbnN0ID0gMDsKIAorICAgICAgICB2aXJ0dWFsIEV2ZW50VGFyZ2V0KiBlcnJvckV2ZW50
VGFyZ2V0KCkgPSAwOworICAgICAgICB2aXJ0dWFsIHZvaWQgbG9nRXhjZXB0aW9uVG9Db25zb2xl
KGNvbnN0IFN0cmluZyYgZXJyb3JNZXNzYWdlLCBpbnQgbGluZU51bWJlciwgY29uc3QgU3RyaW5n
JiBzb3VyY2VVUkwsIFBhc3NSZWZQdHI8U2NyaXB0Q2FsbFN0YWNrPikgPSAwOworICAgICAgICBi
b29sIGRpc3BhdGNoRXJyb3JFdmVudChjb25zdCBTdHJpbmcmIGVycm9yTWVzc2FnZSwgaW50IGxp
bmVOdW1iZXIsIGNvbnN0IFN0cmluZyYgc291cmNlVVJMKTsKKwogICAgICAgICB2b2lkIGNsb3Nl
TWVzc2FnZVBvcnRzKCk7CiAKICAgICAgICAgUmVmUHRyPFNlY3VyaXR5T3JpZ2luPiBtX3NlY3Vy
aXR5T3JpZ2luOwpAQCAtMTcxLDYgKzE3OSwxMCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAg
ICAgIHZpcnR1YWwgdm9pZCByZWZTY3JpcHRFeGVjdXRpb25Db250ZXh0KCkgPSAwOwogICAgICAg
ICB2aXJ0dWFsIHZvaWQgZGVyZWZTY3JpcHRFeGVjdXRpb25Db250ZXh0KCkgPSAwOwogCisgICAg
ICAgIGJvb2wgbV9pbkRpc3BhdGNoRXJyb3JFdmVudDsKKyAgICAgICAgY2xhc3MgUGVuZGluZ0V4
Y2VwdGlvbjsKKyAgICAgICAgT3duUHRyPFZlY3RvcjxPd25QdHI8UGVuZGluZ0V4Y2VwdGlvbj4g
PiA+IG1fcGVuZGluZ0V4Y2VwdGlvbnM7CisKICNpZiBFTkFCTEUoREFUQUJBU0UpCiAgICAgICAg
IFJlZlB0cjxEYXRhYmFzZVRocmVhZD4gbV9kYXRhYmFzZVRocmVhZDsKICAgICAgICAgYm9vbCBt
X2hhc09wZW5EYXRhYmFzZXM7IC8vIFRoaXMgbmV2ZXIgY2hhbmdlcyBiYWNrIHRvIGZhbHNlLCBl
dmVuIGFmdGVyIHRoZSBkYXRhYmFzZSB0aHJlYWQgaXMgY2xvc2VkLgpkaWZmIC0tZ2l0IGEvV2Vi
Q29yZS93ZWJzb2NrZXRzL1dlYlNvY2tldC5jcHAgYi9XZWJDb3JlL3dlYnNvY2tldHMvV2ViU29j
a2V0LmNwcAppbmRleCAzNThhNzQyLi5lMTVkMDc5IDEwMDY0NAotLS0gYS9XZWJDb3JlL3dlYnNv
Y2tldHMvV2ViU29ja2V0LmNwcAorKysgYi9XZWJDb3JlL3dlYnNvY2tldHMvV2ViU29ja2V0LmNw
cApAQCAtNDEsNiArNDEsNyBAQAogI2luY2x1ZGUgIkV2ZW50TmFtZXMuaCIKICNpbmNsdWRlICJM
b2dnaW5nLmgiCiAjaW5jbHVkZSAiTWVzc2FnZUV2ZW50LmgiCisjaW5jbHVkZSAiU2NyaXB0Q2Fs
bFN0YWNrLmgiCiAjaW5jbHVkZSAiU2NyaXB0RXhlY3V0aW9uQ29udGV4dC5oIgogI2luY2x1ZGUg
IlRocmVhZGFibGVXZWJTb2NrZXRDaGFubmVsLmgiCiAjaW5jbHVkZSAiV2ViU29ja2V0Q2hhbm5l
bC5oIgpAQCAtMTE2LDMyICsxMTcsMzIgQEAgdm9pZCBXZWJTb2NrZXQ6OmNvbm5lY3QoY29uc3Qg
S1VSTCYgdXJsLCBjb25zdCBTdHJpbmcmIHByb3RvY29sLCBFeGNlcHRpb25Db2RlJgogICAgIG1f
cHJvdG9jb2wgPSBwcm90b2NvbDsKIAogICAgIGlmICghbV91cmwuaXNWYWxpZCgpKSB7Ci0gICAg
ICAgIHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKS0+YWRkTWVzc2FnZShKU01lc3NhZ2VTb3VyY2Us
IExvZ01lc3NhZ2VUeXBlLCBFcnJvck1lc3NhZ2VMZXZlbCwgIkludmFsaWQgdXJsIGZvciBXZWJT
b2NrZXQgIiArIHVybC5zdHJpbmcoKSwgMCwgc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpLT5zZWN1
cml0eU9yaWdpbigpLT50b1N0cmluZygpKTsKKyAgICAgICAgc2NyaXB0RXhlY3V0aW9uQ29udGV4
dCgpLT5hZGRNZXNzYWdlKEpTTWVzc2FnZVNvdXJjZSwgTG9nTWVzc2FnZVR5cGUsIEVycm9yTWVz
c2FnZUxldmVsLCAiSW52YWxpZCB1cmwgZm9yIFdlYlNvY2tldCAiICsgdXJsLnN0cmluZygpLCAw
LCBzY3JpcHRFeGVjdXRpb25Db250ZXh0KCktPnNlY3VyaXR5T3JpZ2luKCktPnRvU3RyaW5nKCks
IDApOwogICAgICAgICBtX3N0YXRlID0gQ0xPU0VEOwogICAgICAgICBlYyA9IFNZTlRBWF9FUlI7
CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKICAgICBpZiAoIW1fdXJsLnByb3RvY29sSXMoIndz
IikgJiYgIW1fdXJsLnByb3RvY29sSXMoIndzcyIpKSB7Ci0gICAgICAgIHNjcmlwdEV4ZWN1dGlv
bkNvbnRleHQoKS0+YWRkTWVzc2FnZShKU01lc3NhZ2VTb3VyY2UsIExvZ01lc3NhZ2VUeXBlLCBF
cnJvck1lc3NhZ2VMZXZlbCwgIldyb25nIHVybCBzY2hlbWUgZm9yIFdlYlNvY2tldCAiICsgdXJs
LnN0cmluZygpLCAwLCBzY3JpcHRFeGVjdXRpb25Db250ZXh0KCktPnNlY3VyaXR5T3JpZ2luKCkt
PnRvU3RyaW5nKCkpOworICAgICAgICBzY3JpcHRFeGVjdXRpb25Db250ZXh0KCktPmFkZE1lc3Nh
Z2UoSlNNZXNzYWdlU291cmNlLCBMb2dNZXNzYWdlVHlwZSwgRXJyb3JNZXNzYWdlTGV2ZWwsICJX
cm9uZyB1cmwgc2NoZW1lIGZvciBXZWJTb2NrZXQgIiArIHVybC5zdHJpbmcoKSwgMCwgc2NyaXB0
RXhlY3V0aW9uQ29udGV4dCgpLT5zZWN1cml0eU9yaWdpbigpLT50b1N0cmluZygpLCAwKTsKICAg
ICAgICAgbV9zdGF0ZSA9IENMT1NFRDsKICAgICAgICAgZWMgPSBTWU5UQVhfRVJSOwogICAgICAg
ICByZXR1cm47CiAgICAgfQogICAgIGlmIChtX3VybC5oYXNGcmFnbWVudElkZW50aWZpZXIoKSkg
ewotICAgICAgICBzY3JpcHRFeGVjdXRpb25Db250ZXh0KCktPmFkZE1lc3NhZ2UoSlNNZXNzYWdl
U291cmNlLCBMb2dNZXNzYWdlVHlwZSwgRXJyb3JNZXNzYWdlTGV2ZWwsICJVUkwgaGFzIGZyYWdt
ZW50IGNvbXBvbmVudCAiICsgdXJsLnN0cmluZygpLCAwLCBzY3JpcHRFeGVjdXRpb25Db250ZXh0
KCktPnNlY3VyaXR5T3JpZ2luKCktPnRvU3RyaW5nKCkpOworICAgICAgICBzY3JpcHRFeGVjdXRp
b25Db250ZXh0KCktPmFkZE1lc3NhZ2UoSlNNZXNzYWdlU291cmNlLCBMb2dNZXNzYWdlVHlwZSwg
RXJyb3JNZXNzYWdlTGV2ZWwsICJVUkwgaGFzIGZyYWdtZW50IGNvbXBvbmVudCAiICsgdXJsLnN0
cmluZygpLCAwLCBzY3JpcHRFeGVjdXRpb25Db250ZXh0KCktPnNlY3VyaXR5T3JpZ2luKCktPnRv
U3RyaW5nKCksIDApOwogICAgICAgICBtX3N0YXRlID0gQ0xPU0VEOwogICAgICAgICBlYyA9IFNZ
TlRBWF9FUlI7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAgICAgaWYgKCFpc1ZhbGlkUHJvdG9j
b2xTdHJpbmcobV9wcm90b2NvbCkpIHsKLSAgICAgICAgc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgp
LT5hZGRNZXNzYWdlKEpTTWVzc2FnZVNvdXJjZSwgTG9nTWVzc2FnZVR5cGUsIEVycm9yTWVzc2Fn
ZUxldmVsLCAiV3JvbmcgcHJvdG9jb2wgZm9yIFdlYlNvY2tldCAnIiArIGVuY29kZVByb3RvY29s
U3RyaW5nKG1fcHJvdG9jb2wpICsgIiciLCAwLCBzY3JpcHRFeGVjdXRpb25Db250ZXh0KCktPnNl
Y3VyaXR5T3JpZ2luKCktPnRvU3RyaW5nKCkpOworICAgICAgICBzY3JpcHRFeGVjdXRpb25Db250
ZXh0KCktPmFkZE1lc3NhZ2UoSlNNZXNzYWdlU291cmNlLCBMb2dNZXNzYWdlVHlwZSwgRXJyb3JN
ZXNzYWdlTGV2ZWwsICJXcm9uZyBwcm90b2NvbCBmb3IgV2ViU29ja2V0ICciICsgZW5jb2RlUHJv
dG9jb2xTdHJpbmcobV9wcm90b2NvbCkgKyAiJyIsIDAsIHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQo
KS0+c2VjdXJpdHlPcmlnaW4oKS0+dG9TdHJpbmcoKSwgMCk7CiAgICAgICAgIG1fc3RhdGUgPSBD
TE9TRUQ7CiAgICAgICAgIGVjID0gU1lOVEFYX0VSUjsKICAgICAgICAgcmV0dXJuOwogICAgIH0K
ICAgICBpZiAoIXBvcnRBbGxvd2VkKHVybCkpIHsKLSAgICAgICAgc2NyaXB0RXhlY3V0aW9uQ29u
dGV4dCgpLT5hZGRNZXNzYWdlKEpTTWVzc2FnZVNvdXJjZSwgTG9nTWVzc2FnZVR5cGUsIEVycm9y
TWVzc2FnZUxldmVsLCBtYWtlU3RyaW5nKCJXZWJTb2NrZXQgcG9ydCAiLCBTdHJpbmc6Om51bWJl
cih1cmwucG9ydCgpKSwgIiBibG9ja2VkIiksIDAsIHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKS0+
c2VjdXJpdHlPcmlnaW4oKS0+dG9TdHJpbmcoKSk7CisgICAgICAgIHNjcmlwdEV4ZWN1dGlvbkNv
bnRleHQoKS0+YWRkTWVzc2FnZShKU01lc3NhZ2VTb3VyY2UsIExvZ01lc3NhZ2VUeXBlLCBFcnJv
ck1lc3NhZ2VMZXZlbCwgbWFrZVN0cmluZygiV2ViU29ja2V0IHBvcnQgIiwgU3RyaW5nOjpudW1i
ZXIodXJsLnBvcnQoKSksICIgYmxvY2tlZCIpLCAwLCBzY3JpcHRFeGVjdXRpb25Db250ZXh0KCkt
PnNlY3VyaXR5T3JpZ2luKCktPnRvU3RyaW5nKCksIDApOwogICAgICAgICBtX3N0YXRlID0gQ0xP
U0VEOwogICAgICAgICBlYyA9IFNFQ1VSSVRZX0VSUjsKICAgICAgICAgcmV0dXJuOwpkaWZmIC0t
Z2l0IGEvV2ViQ29yZS93ZWJzb2NrZXRzL1dlYlNvY2tldENoYW5uZWwuY3BwIGIvV2ViQ29yZS93
ZWJzb2NrZXRzL1dlYlNvY2tldENoYW5uZWwuY3BwCmluZGV4IDA5ZmNkNmIuLmM0Y2IyZTIgMTAw
NjQ0Ci0tLSBhL1dlYkNvcmUvd2Vic29ja2V0cy9XZWJTb2NrZXRDaGFubmVsLmNwcAorKysgYi9X
ZWJDb3JlL3dlYnNvY2tldHMvV2ViU29ja2V0Q2hhbm5lbC5jcHAKQEAgLTQxLDYgKzQxLDcgQEAK
ICNpbmNsdWRlICJQYWdlLmgiCiAjaW5jbHVkZSAiUGxhdGZvcm1TdHJpbmcuaCIKICNpbmNsdWRl
ICJQcm9ncmVzc1RyYWNrZXIuaCIKKyNpbmNsdWRlICJTY3JpcHRDYWxsU3RhY2suaCIKICNpbmNs
dWRlICJTY3JpcHRFeGVjdXRpb25Db250ZXh0LmgiCiAjaW5jbHVkZSAiU29ja2V0U3RyZWFtRXJy
b3IuaCIKICNpbmNsdWRlICJTb2NrZXRTdHJlYW1IYW5kbGUuaCIKQEAgLTE1NSw3ICsxNTYsNyBA
QCB2b2lkIFdlYlNvY2tldENoYW5uZWw6OmRpZE9wZW4oU29ja2V0U3RyZWFtSGFuZGxlKiBoYW5k
bGUpCiAgICAgICAgIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6d2lsbFNlbmRXZWJTb2NrZXRI
YW5kc2hha2VSZXF1ZXN0KG1fY29udGV4dCwgbV9pZGVudGlmaWVyLCBtX2hhbmRzaGFrZS5jbGll
bnRIYW5kc2hha2VSZXF1ZXN0KCkpOwogICAgIENTdHJpbmcgaGFuZHNoYWtlTWVzc2FnZSA9IG1f
aGFuZHNoYWtlLmNsaWVudEhhbmRzaGFrZU1lc3NhZ2UoKTsKICAgICBpZiAoIWhhbmRsZS0+c2Vu
ZChoYW5kc2hha2VNZXNzYWdlLmRhdGEoKSwgaGFuZHNoYWtlTWVzc2FnZS5sZW5ndGgoKSkpIHsK
LSAgICAgICAgbV9jb250ZXh0LT5hZGRNZXNzYWdlKEpTTWVzc2FnZVNvdXJjZSwgTG9nTWVzc2Fn
ZVR5cGUsIEVycm9yTWVzc2FnZUxldmVsLCAiRXJyb3Igc2VuZGluZyBoYW5kc2hha2UgbWVzc2Fn
ZS4iLCAwLCBtX2hhbmRzaGFrZS5jbGllbnRPcmlnaW4oKSk7CisgICAgICAgIG1fY29udGV4dC0+
YWRkTWVzc2FnZShKU01lc3NhZ2VTb3VyY2UsIExvZ01lc3NhZ2VUeXBlLCBFcnJvck1lc3NhZ2VM
ZXZlbCwgIkVycm9yIHNlbmRpbmcgaGFuZHNoYWtlIG1lc3NhZ2UuIiwgMCwgbV9oYW5kc2hha2Uu
Y2xpZW50T3JpZ2luKCksIDApOwogICAgICAgICBoYW5kbGUtPmNsb3NlKCk7CiAgICAgfQogfQpA
QCAtMjE4LDcgKzIxOSw3IEBAIHZvaWQgV2ViU29ja2V0Q2hhbm5lbDo6ZGlkRmFpbChTb2NrZXRT
dHJlYW1IYW5kbGUqIGhhbmRsZSwgY29uc3QgU29ja2V0U3RyZWFtRXJyCiAgICAgICAgICAgICBt
ZXNzYWdlID0gbWFrZVN0cmluZygiV2ViU29ja2V0IG5ldHdvcmsgZXJyb3I6IGVycm9yIGNvZGUg
IiwgU3RyaW5nOjpudW1iZXIoZXJyb3IuZXJyb3JDb2RlKCkpKTsKICAgICAgICAgZWxzZQogICAg
ICAgICAgICAgbWVzc2FnZSA9IG1ha2VTdHJpbmcoIldlYlNvY2tldCBuZXR3b3JrIGVycm9yOiAi
LCBlcnJvci5sb2NhbGl6ZWREZXNjcmlwdGlvbigpKTsKLSAgICAgICAgbV9jb250ZXh0LT5hZGRN
ZXNzYWdlKE90aGVyTWVzc2FnZVNvdXJjZSwgTmV0d29ya0Vycm9yTWVzc2FnZVR5cGUsIEVycm9y
TWVzc2FnZUxldmVsLCBtZXNzYWdlLCAwLCBlcnJvci5mYWlsaW5nVVJMKCkpOworICAgICAgICBt
X2NvbnRleHQtPmFkZE1lc3NhZ2UoT3RoZXJNZXNzYWdlU291cmNlLCBOZXR3b3JrRXJyb3JNZXNz
YWdlVHlwZSwgRXJyb3JNZXNzYWdlTGV2ZWwsIG1lc3NhZ2UsIDAsIGVycm9yLmZhaWxpbmdVUkwo
KSwgMCk7CiAgICAgfQogICAgIG1fc2hvdWxkRGlzY2FyZFJlY2VpdmVkRGF0YSA9IHRydWU7CiAg
ICAgaGFuZGxlLT5jbG9zZSgpOwpAQCAtMjQ5LDcgKzI1MCw3IEBAIGJvb2wgV2ViU29ja2V0Q2hh
bm5lbDo6YXBwZW5kVG9CdWZmZXIoY29uc3QgY2hhciogZGF0YSwgc2l6ZV90IGxlbikKICAgICAg
ICAgbV9idWZmZXJTaXplID0gbmV3QnVmZmVyU2l6ZTsKICAgICAgICAgcmV0dXJuIHRydWU7CiAg
ICAgfQotICAgIG1fY29udGV4dC0+YWRkTWVzc2FnZShKU01lc3NhZ2VTb3VyY2UsIExvZ01lc3Nh
Z2VUeXBlLCBFcnJvck1lc3NhZ2VMZXZlbCwgbWFrZVN0cmluZygiV2ViU29ja2V0IGZyYW1lIChh
dCAiLCBTdHJpbmc6Om51bWJlcihzdGF0aWNfY2FzdDx1bnNpZ25lZCBsb25nPihuZXdCdWZmZXJT
aXplKSksICIgYnl0ZXMpIGlzIHRvbyBsb25nLiIpLCAwLCBtX2hhbmRzaGFrZS5jbGllbnRPcmln
aW4oKSk7CisgICAgbV9jb250ZXh0LT5hZGRNZXNzYWdlKEpTTWVzc2FnZVNvdXJjZSwgTG9nTWVz
c2FnZVR5cGUsIEVycm9yTWVzc2FnZUxldmVsLCBtYWtlU3RyaW5nKCJXZWJTb2NrZXQgZnJhbWUg
KGF0ICIsIFN0cmluZzo6bnVtYmVyKHN0YXRpY19jYXN0PHVuc2lnbmVkIGxvbmc+KG5ld0J1ZmZl
clNpemUpKSwgIiBieXRlcykgaXMgdG9vIGxvbmcuIiksIDAsIG1faGFuZHNoYWtlLmNsaWVudE9y
aWdpbigpLCAwKTsKICAgICByZXR1cm4gZmFsc2U7CiB9CiAKZGlmZiAtLWdpdCBhL1dlYkNvcmUv
d2Vic29ja2V0cy9XZWJTb2NrZXRIYW5kc2hha2UuY3BwIGIvV2ViQ29yZS93ZWJzb2NrZXRzL1dl
YlNvY2tldEhhbmRzaGFrZS5jcHAKaW5kZXggNTA0OTA5OC4uZWQ5ODgzNCAxMDA2NDQKLS0tIGEv
V2ViQ29yZS93ZWJzb2NrZXRzL1dlYlNvY2tldEhhbmRzaGFrZS5jcHAKKysrIGIvV2ViQ29yZS93
ZWJzb2NrZXRzL1dlYlNvY2tldEhhbmRzaGFrZS5jcHAKQEAgLTQxLDYgKzQxLDcgQEAKICNpbmNs
dWRlICJIVFRQSGVhZGVyTWFwLmgiCiAjaW5jbHVkZSAiS1VSTC5oIgogI2luY2x1ZGUgIkxvZ2dp
bmcuaCIKKyNpbmNsdWRlICJTY3JpcHRDYWxsU3RhY2suaCIKICNpbmNsdWRlICJTY3JpcHRFeGVj
dXRpb25Db250ZXh0LmgiCiAjaW5jbHVkZSAiU2VjdXJpdHlPcmlnaW4uaCIKIApAQCAtMzE5LDcg
KzMyMCw3IEBAIGludCBXZWJTb2NrZXRIYW5kc2hha2U6OnJlYWRTZXJ2ZXJIYW5kc2hha2UoY29u
c3QgY2hhciogaGVhZGVyLCBzaXplX3QgbGVuKQogICAgIG1fcmVzcG9uc2Uuc2V0U3RhdHVzVGV4
dChzdGF0dXNUZXh0KTsKICAgICBpZiAoc3RhdHVzQ29kZSAhPSAxMDEpIHsKICAgICAgICAgbV9t
b2RlID0gRmFpbGVkOwotICAgICAgICBtX2NvbnRleHQtPmFkZE1lc3NhZ2UoSlNNZXNzYWdlU291
cmNlLCBMb2dNZXNzYWdlVHlwZSwgRXJyb3JNZXNzYWdlTGV2ZWwsIG1ha2VTdHJpbmcoIlVuZXhw
ZWN0ZWQgcmVzcG9uc2UgY29kZTogIiwgU3RyaW5nOjpudW1iZXIoc3RhdHVzQ29kZSkpLCAwLCBj
bGllbnRPcmlnaW4oKSk7CisgICAgICAgIG1fY29udGV4dC0+YWRkTWVzc2FnZShKU01lc3NhZ2VT
b3VyY2UsIExvZ01lc3NhZ2VUeXBlLCBFcnJvck1lc3NhZ2VMZXZlbCwgbWFrZVN0cmluZygiVW5l
eHBlY3RlZCByZXNwb25zZSBjb2RlOiAiLCBTdHJpbmc6Om51bWJlcihzdGF0dXNDb2RlKSksIDAs
IGNsaWVudE9yaWdpbigpLCAwKTsKICAgICAgICAgcmV0dXJuIGxlbjsKICAgICB9CiAgICAgbV9t
b2RlID0gTm9ybWFsOwpAQCAtNDQ5LDE5ICs0NTAsMTkgQEAgaW50IFdlYlNvY2tldEhhbmRzaGFr
ZTo6cmVhZFN0YXR1c0xpbmUoY29uc3QgY2hhciogaGVhZGVyLCBzaXplX3QgaGVhZGVyTGVuZ3Ro
LAogCiAgICAgY29uc3QgY2hhciogZW5kID0gcCArIDE7CiAgICAgaWYgKGVuZCAtIGhlYWRlciA+
IElOVF9NQVgpIHsKLSAgICAgICAgbV9jb250ZXh0LT5hZGRNZXNzYWdlKEpTTWVzc2FnZVNvdXJj
ZSwgTG9nTWVzc2FnZVR5cGUsIEVycm9yTWVzc2FnZUxldmVsLCAiU3RhdHVzIGxpbmUgaXMgdG9v
IGxvbmc6ICIgKyB0cmltQ29uc29sZU1lc3NhZ2UoaGVhZGVyLCBtYXhDb25zb2xlTWVzc2FnZVNp
emUgKyAxKSwgMCwgY2xpZW50T3JpZ2luKCkpOworICAgICAgICBtX2NvbnRleHQtPmFkZE1lc3Nh
Z2UoSlNNZXNzYWdlU291cmNlLCBMb2dNZXNzYWdlVHlwZSwgRXJyb3JNZXNzYWdlTGV2ZWwsICJT
dGF0dXMgbGluZSBpcyB0b28gbG9uZzogIiArIHRyaW1Db25zb2xlTWVzc2FnZShoZWFkZXIsIG1h
eENvbnNvbGVNZXNzYWdlU2l6ZSArIDEpLCAwLCBjbGllbnRPcmlnaW4oKSwgMCk7CiAgICAgICAg
IHJldHVybiBJTlRfTUFYOwogICAgIH0KICAgICBpbnQgbGluZUxlbmd0aCA9IGVuZCAtIGhlYWRl
cjsKIAogICAgIGlmICghc3BhY2UxIHx8ICFzcGFjZTIpIHsKLSAgICAgICAgbV9jb250ZXh0LT5h
ZGRNZXNzYWdlKEpTTWVzc2FnZVNvdXJjZSwgTG9nTWVzc2FnZVR5cGUsIEVycm9yTWVzc2FnZUxl
dmVsLCAiTm8gcmVzcG9uc2UgY29kZSBmb3VuZDogIiArIHRyaW1Db25zb2xlTWVzc2FnZShoZWFk
ZXIsIGxpbmVMZW5ndGggLSAxKSwgMCwgY2xpZW50T3JpZ2luKCkpOworICAgICAgICBtX2NvbnRl
eHQtPmFkZE1lc3NhZ2UoSlNNZXNzYWdlU291cmNlLCBMb2dNZXNzYWdlVHlwZSwgRXJyb3JNZXNz
YWdlTGV2ZWwsICJObyByZXNwb25zZSBjb2RlIGZvdW5kOiAiICsgdHJpbUNvbnNvbGVNZXNzYWdl
KGhlYWRlciwgbGluZUxlbmd0aCAtIDEpLCAwLCBjbGllbnRPcmlnaW4oKSwgMCk7CiAgICAgICAg
IHJldHVybiBsaW5lTGVuZ3RoOwogICAgIH0KIAogICAgIC8vIFRoZSBsaW5lIG11c3QgZW5kIHdp
dGggIlxyXG4iLgogICAgIGlmICgqKGVuZCAtIDIpICE9ICdccicpIHsKLSAgICAgICAgbV9jb250
ZXh0LT5hZGRNZXNzYWdlKEpTTWVzc2FnZVNvdXJjZSwgTG9nTWVzc2FnZVR5cGUsIEVycm9yTWVz
c2FnZUxldmVsLCAiU3RhdHVzIGxpbmUgZG9lcyBub3QgZW5kIHdpdGggQ1JMRiIsIDAsIGNsaWVu
dE9yaWdpbigpKTsKKyAgICAgICAgbV9jb250ZXh0LT5hZGRNZXNzYWdlKEpTTWVzc2FnZVNvdXJj
ZSwgTG9nTWVzc2FnZVR5cGUsIEVycm9yTWVzc2FnZUxldmVsLCAiU3RhdHVzIGxpbmUgZG9lcyBu
b3QgZW5kIHdpdGggQ1JMRiIsIDAsIGNsaWVudE9yaWdpbigpLCAwKTsKICAgICAgICAgcmV0dXJu
IGxpbmVMZW5ndGg7CiAgICAgfQogCkBAIC00NzAsNyArNDcxLDcgQEAgaW50IFdlYlNvY2tldEhh
bmRzaGFrZTo6cmVhZFN0YXR1c0xpbmUoY29uc3QgY2hhciogaGVhZGVyLCBzaXplX3QgaGVhZGVy
TGVuZ3RoLAogICAgICAgICByZXR1cm4gbGluZUxlbmd0aDsKICAgICBmb3IgKGludCBpID0gMDsg
aSA8IDM7ICsraSkKICAgICAgICAgaWYgKHN0YXR1c0NvZGVTdHJpbmdbaV0gPCAnMCcgfHwgc3Rh
dHVzQ29kZVN0cmluZ1tpXSA+ICc5JykgewotICAgICAgICAgICAgbV9jb250ZXh0LT5hZGRNZXNz
YWdlKEpTTWVzc2FnZVNvdXJjZSwgTG9nTWVzc2FnZVR5cGUsIEVycm9yTWVzc2FnZUxldmVsLCAi
SW52YWxpZCBzdGF0dXMgY29kZTogIiArIHN0YXR1c0NvZGVTdHJpbmcsIDAsIGNsaWVudE9yaWdp
bigpKTsKKyAgICAgICAgICAgIG1fY29udGV4dC0+YWRkTWVzc2FnZShKU01lc3NhZ2VTb3VyY2Us
IExvZ01lc3NhZ2VUeXBlLCBFcnJvck1lc3NhZ2VMZXZlbCwgIkludmFsaWQgc3RhdHVzIGNvZGU6
ICIgKyBzdGF0dXNDb2RlU3RyaW5nLCAwLCBjbGllbnRPcmlnaW4oKSwgMCk7CiAgICAgICAgICAg
ICByZXR1cm4gbGluZUxlbmd0aDsKICAgICAgICAgfQogCkBAIC00OTgsMTMgKzQ5OSwxMyBAQCBj
b25zdCBjaGFyKiBXZWJTb2NrZXRIYW5kc2hha2U6OnJlYWRIVFRQSGVhZGVycyhjb25zdCBjaGFy
KiBzdGFydCwgY29uc3QgY2hhciogZQogICAgICAgICAgICAgICAgIGlmIChuYW1lLmlzRW1wdHko
KSkgewogICAgICAgICAgICAgICAgICAgICBpZiAocCArIDEgPCBlbmQgJiYgKihwICsgMSkgPT0g
J1xuJykKICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBwICsgMjsKLSAgICAgICAgICAg
ICAgICAgICAgbV9jb250ZXh0LT5hZGRNZXNzYWdlKEpTTWVzc2FnZVNvdXJjZSwgTG9nTWVzc2Fn
ZVR5cGUsIEVycm9yTWVzc2FnZUxldmVsLCAiQ1IgZG9lc24ndCBmb2xsb3cgTEYgYXQgIiArIHRy
aW1Db25zb2xlTWVzc2FnZShwLCBlbmQgLSBwKSwgMCwgY2xpZW50T3JpZ2luKCkpOworICAgICAg
ICAgICAgICAgICAgICBtX2NvbnRleHQtPmFkZE1lc3NhZ2UoSlNNZXNzYWdlU291cmNlLCBMb2dN
ZXNzYWdlVHlwZSwgRXJyb3JNZXNzYWdlTGV2ZWwsICJDUiBkb2Vzbid0IGZvbGxvdyBMRiBhdCAi
ICsgdHJpbUNvbnNvbGVNZXNzYWdlKHAsIGVuZCAtIHApLCAwLCBjbGllbnRPcmlnaW4oKSwgMCk7
CiAgICAgICAgICAgICAgICAgICAgIHJldHVybiAwOwogICAgICAgICAgICAgICAgIH0KLSAgICAg
ICAgICAgICAgICBtX2NvbnRleHQtPmFkZE1lc3NhZ2UoSlNNZXNzYWdlU291cmNlLCBMb2dNZXNz
YWdlVHlwZSwgRXJyb3JNZXNzYWdlTGV2ZWwsICJVbmV4cGVjdGVkIENSIGluIG5hbWUgYXQgIiAr
IHRyaW1Db25zb2xlTWVzc2FnZShuYW1lLmRhdGEoKSwgbmFtZS5zaXplKCkpLCAwLCBjbGllbnRP
cmlnaW4oKSk7CisgICAgICAgICAgICAgICAgbV9jb250ZXh0LT5hZGRNZXNzYWdlKEpTTWVzc2Fn
ZVNvdXJjZSwgTG9nTWVzc2FnZVR5cGUsIEVycm9yTWVzc2FnZUxldmVsLCAiVW5leHBlY3RlZCBD
UiBpbiBuYW1lIGF0ICIgKyB0cmltQ29uc29sZU1lc3NhZ2UobmFtZS5kYXRhKCksIG5hbWUuc2l6
ZSgpKSwgMCwgY2xpZW50T3JpZ2luKCksIDApOwogICAgICAgICAgICAgICAgIHJldHVybiAwOwog
ICAgICAgICAgICAgY2FzZSAnXG4nOgotICAgICAgICAgICAgICAgIG1fY29udGV4dC0+YWRkTWVz
c2FnZShKU01lc3NhZ2VTb3VyY2UsIExvZ01lc3NhZ2VUeXBlLCBFcnJvck1lc3NhZ2VMZXZlbCwg
IlVuZXhwZWN0ZWQgTEYgaW4gbmFtZSBhdCAiICsgdHJpbUNvbnNvbGVNZXNzYWdlKG5hbWUuZGF0
YSgpLCBuYW1lLnNpemUoKSksIDAsIGNsaWVudE9yaWdpbigpKTsKKyAgICAgICAgICAgICAgICBt
X2NvbnRleHQtPmFkZE1lc3NhZ2UoSlNNZXNzYWdlU291cmNlLCBMb2dNZXNzYWdlVHlwZSwgRXJy
b3JNZXNzYWdlTGV2ZWwsICJVbmV4cGVjdGVkIExGIGluIG5hbWUgYXQgIiArIHRyaW1Db25zb2xl
TWVzc2FnZShuYW1lLmRhdGEoKSwgbmFtZS5zaXplKCkpLCAwLCBjbGllbnRPcmlnaW4oKSwgMCk7
CiAgICAgICAgICAgICAgICAgcmV0dXJuIDA7CiAgICAgICAgICAgICBjYXNlICc6JzoKICAgICAg
ICAgICAgICAgICBicmVhazsKQEAgLTUyNSw3ICs1MjYsNyBAQCBjb25zdCBjaGFyKiBXZWJTb2Nr
ZXRIYW5kc2hha2U6OnJlYWRIVFRQSGVhZGVycyhjb25zdCBjaGFyKiBzdGFydCwgY29uc3QgY2hh
ciogZQogICAgICAgICAgICAgY2FzZSAnXHInOgogICAgICAgICAgICAgICAgIGJyZWFrOwogICAg
ICAgICAgICAgY2FzZSAnXG4nOgotICAgICAgICAgICAgICAgIG1fY29udGV4dC0+YWRkTWVzc2Fn
ZShKU01lc3NhZ2VTb3VyY2UsIExvZ01lc3NhZ2VUeXBlLCBFcnJvck1lc3NhZ2VMZXZlbCwgIlVu
ZXhwZWN0ZWQgTEYgaW4gdmFsdWUgYXQgIiArIHRyaW1Db25zb2xlTWVzc2FnZSh2YWx1ZS5kYXRh
KCksIHZhbHVlLnNpemUoKSksIDAsIGNsaWVudE9yaWdpbigpKTsKKyAgICAgICAgICAgICAgICBt
X2NvbnRleHQtPmFkZE1lc3NhZ2UoSlNNZXNzYWdlU291cmNlLCBMb2dNZXNzYWdlVHlwZSwgRXJy
b3JNZXNzYWdlTGV2ZWwsICJVbmV4cGVjdGVkIExGIGluIHZhbHVlIGF0ICIgKyB0cmltQ29uc29s
ZU1lc3NhZ2UodmFsdWUuZGF0YSgpLCB2YWx1ZS5zaXplKCkpLCAwLCBjbGllbnRPcmlnaW4oKSwg
MCk7CiAgICAgICAgICAgICAgICAgcmV0dXJuIDA7CiAgICAgICAgICAgICBkZWZhdWx0OgogICAg
ICAgICAgICAgICAgIHZhbHVlLmFwcGVuZCgqcCk7CkBAIC01MzYsMTcgKzUzNywxNyBAQCBjb25z
dCBjaGFyKiBXZWJTb2NrZXRIYW5kc2hha2U6OnJlYWRIVFRQSGVhZGVycyhjb25zdCBjaGFyKiBz
dGFydCwgY29uc3QgY2hhciogZQogICAgICAgICAgICAgfQogICAgICAgICB9CiAgICAgICAgIGlm
IChwID49IGVuZCB8fCAqcCAhPSAnXG4nKSB7Ci0gICAgICAgICAgICBtX2NvbnRleHQtPmFkZE1l
c3NhZ2UoSlNNZXNzYWdlU291cmNlLCBMb2dNZXNzYWdlVHlwZSwgRXJyb3JNZXNzYWdlTGV2ZWws
ICJDUiBkb2Vzbid0IGZvbGxvdyBMRiBhZnRlciB2YWx1ZSBhdCAiICsgdHJpbUNvbnNvbGVNZXNz
YWdlKHAsIGVuZCAtIHApLCAwLCBjbGllbnRPcmlnaW4oKSk7CisgICAgICAgICAgICBtX2NvbnRl
eHQtPmFkZE1lc3NhZ2UoSlNNZXNzYWdlU291cmNlLCBMb2dNZXNzYWdlVHlwZSwgRXJyb3JNZXNz
YWdlTGV2ZWwsICJDUiBkb2Vzbid0IGZvbGxvdyBMRiBhZnRlciB2YWx1ZSBhdCAiICsgdHJpbUNv
bnNvbGVNZXNzYWdlKHAsIGVuZCAtIHApLCAwLCBjbGllbnRPcmlnaW4oKSwgMCk7CiAgICAgICAg
ICAgICByZXR1cm4gMDsKICAgICAgICAgfQogICAgICAgICBBdG9taWNTdHJpbmcgbmFtZVN0cihT
dHJpbmc6OmZyb21VVEY4KG5hbWUuZGF0YSgpLCBuYW1lLnNpemUoKSkpOwogICAgICAgICBTdHJp
bmcgdmFsdWVTdHIgPSBTdHJpbmc6OmZyb21VVEY4KHZhbHVlLmRhdGEoKSwgdmFsdWUuc2l6ZSgp
KTsKICAgICAgICAgaWYgKG5hbWVTdHIuaXNOdWxsKCkpIHsKLSAgICAgICAgICAgIG1fY29udGV4
dC0+YWRkTWVzc2FnZShKU01lc3NhZ2VTb3VyY2UsIExvZ01lc3NhZ2VUeXBlLCBFcnJvck1lc3Nh
Z2VMZXZlbCwgImludmFsaWQgVVRGLTggc2VxdWVuY2UgaW4gaGVhZGVyIG5hbWUiLCAwLCBjbGll
bnRPcmlnaW4oKSk7CisgICAgICAgICAgICBtX2NvbnRleHQtPmFkZE1lc3NhZ2UoSlNNZXNzYWdl
U291cmNlLCBMb2dNZXNzYWdlVHlwZSwgRXJyb3JNZXNzYWdlTGV2ZWwsICJpbnZhbGlkIFVURi04
IHNlcXVlbmNlIGluIGhlYWRlciBuYW1lIiwgMCwgY2xpZW50T3JpZ2luKCksIDApOwogICAgICAg
ICAgICAgcmV0dXJuIDA7CiAgICAgICAgIH0KICAgICAgICAgaWYgKHZhbHVlU3RyLmlzTnVsbCgp
KSB7Ci0gICAgICAgICAgICBtX2NvbnRleHQtPmFkZE1lc3NhZ2UoSlNNZXNzYWdlU291cmNlLCBM
b2dNZXNzYWdlVHlwZSwgRXJyb3JNZXNzYWdlTGV2ZWwsICJpbnZhbGlkIFVURi04IHNlcXVlbmNl
IGluIGhlYWRlciB2YWx1ZSIsIDAsIGNsaWVudE9yaWdpbigpKTsKKyAgICAgICAgICAgIG1fY29u
dGV4dC0+YWRkTWVzc2FnZShKU01lc3NhZ2VTb3VyY2UsIExvZ01lc3NhZ2VUeXBlLCBFcnJvck1l
c3NhZ2VMZXZlbCwgImludmFsaWQgVVRGLTggc2VxdWVuY2UgaW4gaGVhZGVyIHZhbHVlIiwgMCwg
Y2xpZW50T3JpZ2luKCksIDApOwogICAgICAgICAgICAgcmV0dXJuIDA7CiAgICAgICAgIH0KICAg
ICAgICAgTE9HKE5ldHdvcmssICJuYW1lPSVzIHZhbHVlPSVzIiwgbmFtZVN0ci5zdHJpbmcoKS51
dGY4KCkuZGF0YSgpLCB2YWx1ZVN0ci51dGY4KCkuZGF0YSgpKTsKQEAgLTU3MCwyNCArNTcxLDI0
IEBAIHZvaWQgV2ViU29ja2V0SGFuZHNoYWtlOjpwcm9jZXNzSGVhZGVycygpCiBib29sIFdlYlNv
Y2tldEhhbmRzaGFrZTo6Y2hlY2tSZXNwb25zZUhlYWRlcnMoKQogewogICAgIGlmIChtX3dzT3Jp
Z2luLmlzTnVsbCgpKSB7Ci0gICAgICAgIG1fY29udGV4dC0+YWRkTWVzc2FnZShKU01lc3NhZ2VT
b3VyY2UsIExvZ01lc3NhZ2VUeXBlLCBFcnJvck1lc3NhZ2VMZXZlbCwgIkVycm9yIGR1cmluZyBX
ZWJTb2NrZXQgaGFuZHNoYWtlOiAnc2VjLXdlYnNvY2tldC1vcmlnaW4nIGhlYWRlciBpcyBtaXNz
aW5nIiwgMCwgY2xpZW50T3JpZ2luKCkpOworICAgICAgICBtX2NvbnRleHQtPmFkZE1lc3NhZ2Uo
SlNNZXNzYWdlU291cmNlLCBMb2dNZXNzYWdlVHlwZSwgRXJyb3JNZXNzYWdlTGV2ZWwsICJFcnJv
ciBkdXJpbmcgV2ViU29ja2V0IGhhbmRzaGFrZTogJ3NlYy13ZWJzb2NrZXQtb3JpZ2luJyBoZWFk
ZXIgaXMgbWlzc2luZyIsIDAsIGNsaWVudE9yaWdpbigpLCAwKTsKICAgICAgICAgcmV0dXJuIGZh
bHNlOwogICAgIH0KICAgICBpZiAobV93c0xvY2F0aW9uLmlzTnVsbCgpKSB7Ci0gICAgICAgIG1f
Y29udGV4dC0+YWRkTWVzc2FnZShKU01lc3NhZ2VTb3VyY2UsIExvZ01lc3NhZ2VUeXBlLCBFcnJv
ck1lc3NhZ2VMZXZlbCwgIkVycm9yIGR1cmluZyBXZWJTb2NrZXQgaGFuZHNoYWtlOiAnc2VjLXdl
YnNvY2tldC1sb2NhdGlvbicgaGVhZGVyIGlzIG1pc3NpbmciLCAwLCBjbGllbnRPcmlnaW4oKSk7
CisgICAgICAgIG1fY29udGV4dC0+YWRkTWVzc2FnZShKU01lc3NhZ2VTb3VyY2UsIExvZ01lc3Nh
Z2VUeXBlLCBFcnJvck1lc3NhZ2VMZXZlbCwgIkVycm9yIGR1cmluZyBXZWJTb2NrZXQgaGFuZHNo
YWtlOiAnc2VjLXdlYnNvY2tldC1sb2NhdGlvbicgaGVhZGVyIGlzIG1pc3NpbmciLCAwLCBjbGll
bnRPcmlnaW4oKSwgMCk7CiAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICB9CiAKICAgICBpZiAo
Y2xpZW50T3JpZ2luKCkgIT0gbV93c09yaWdpbikgewotICAgICAgICBtX2NvbnRleHQtPmFkZE1l
c3NhZ2UoSlNNZXNzYWdlU291cmNlLCBMb2dNZXNzYWdlVHlwZSwgRXJyb3JNZXNzYWdlTGV2ZWws
ICJFcnJvciBkdXJpbmcgV2ViU29ja2V0IGhhbmRzaGFrZTogb3JpZ2luIG1pc21hdGNoOiAiICsg
Y2xpZW50T3JpZ2luKCkgKyAiICE9ICIgKyBtX3dzT3JpZ2luLCAwLCBjbGllbnRPcmlnaW4oKSk7
CisgICAgICAgIG1fY29udGV4dC0+YWRkTWVzc2FnZShKU01lc3NhZ2VTb3VyY2UsIExvZ01lc3Nh
Z2VUeXBlLCBFcnJvck1lc3NhZ2VMZXZlbCwgIkVycm9yIGR1cmluZyBXZWJTb2NrZXQgaGFuZHNo
YWtlOiBvcmlnaW4gbWlzbWF0Y2g6ICIgKyBjbGllbnRPcmlnaW4oKSArICIgIT0gIiArIG1fd3NP
cmlnaW4sIDAsIGNsaWVudE9yaWdpbigpLCAwKTsKICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAg
IH0KICAgICBpZiAoY2xpZW50TG9jYXRpb24oKSAhPSBtX3dzTG9jYXRpb24pIHsKLSAgICAgICAg
bV9jb250ZXh0LT5hZGRNZXNzYWdlKEpTTWVzc2FnZVNvdXJjZSwgTG9nTWVzc2FnZVR5cGUsIEVy
cm9yTWVzc2FnZUxldmVsLCAiRXJyb3IgZHVyaW5nIFdlYlNvY2tldCBoYW5kc2hha2U6IGxvY2F0
aW9uIG1pc21hdGNoOiAiICsgY2xpZW50TG9jYXRpb24oKSArICIgIT0gIiArIG1fd3NMb2NhdGlv
biwgMCwgY2xpZW50T3JpZ2luKCkpOworICAgICAgICBtX2NvbnRleHQtPmFkZE1lc3NhZ2UoSlNN
ZXNzYWdlU291cmNlLCBMb2dNZXNzYWdlVHlwZSwgRXJyb3JNZXNzYWdlTGV2ZWwsICJFcnJvciBk
dXJpbmcgV2ViU29ja2V0IGhhbmRzaGFrZTogbG9jYXRpb24gbWlzbWF0Y2g6ICIgKyBjbGllbnRM
b2NhdGlvbigpICsgIiAhPSAiICsgbV93c0xvY2F0aW9uLCAwLCBjbGllbnRPcmlnaW4oKSwgMCk7
CiAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICB9CiAgICAgaWYgKCFtX2NsaWVudFByb3RvY29s
LmlzRW1wdHkoKSAmJiBtX2NsaWVudFByb3RvY29sICE9IG1fd3NQcm90b2NvbCkgewotICAgICAg
ICBtX2NvbnRleHQtPmFkZE1lc3NhZ2UoSlNNZXNzYWdlU291cmNlLCBMb2dNZXNzYWdlVHlwZSwg
RXJyb3JNZXNzYWdlTGV2ZWwsICJFcnJvciBkdXJpbmcgV2ViU29ja2V0IGhhbmRzaGFrZTogcHJv
dG9jb2wgbWlzbWF0Y2g6ICIgKyBtX2NsaWVudFByb3RvY29sICsgIiAhPSAiICsgbV93c1Byb3Rv
Y29sLCAwLCBjbGllbnRPcmlnaW4oKSk7CisgICAgICAgIG1fY29udGV4dC0+YWRkTWVzc2FnZShK
U01lc3NhZ2VTb3VyY2UsIExvZ01lc3NhZ2VUeXBlLCBFcnJvck1lc3NhZ2VMZXZlbCwgIkVycm9y
IGR1cmluZyBXZWJTb2NrZXQgaGFuZHNoYWtlOiBwcm90b2NvbCBtaXNtYXRjaDogIiArIG1fY2xp
ZW50UHJvdG9jb2wgKyAiICE9ICIgKyBtX3dzUHJvdG9jb2wsIDAsIGNsaWVudE9yaWdpbigpLCAw
KTsKICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIH0KICAgICByZXR1cm4gdHJ1ZTsKZGlmZiAt
LWdpdCBhL1dlYkNvcmUvd29ya2Vycy9EZWZhdWx0U2hhcmVkV29ya2VyUmVwb3NpdG9yeS5jcHAg
Yi9XZWJDb3JlL3dvcmtlcnMvRGVmYXVsdFNoYXJlZFdvcmtlclJlcG9zaXRvcnkuY3BwCmluZGV4
IDRhOGU5NDcuLjhlMWMxMDYgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvd29ya2Vycy9EZWZhdWx0U2hh
cmVkV29ya2VyUmVwb3NpdG9yeS5jcHAKKysrIGIvV2ViQ29yZS93b3JrZXJzL0RlZmF1bHRTaGFy
ZWRXb3JrZXJSZXBvc2l0b3J5LmNwcApAQCAtNDIsNiArNDIsNyBAQAogI2luY2x1ZGUgIk1lc3Nh
Z2VQb3J0LmgiCiAjaW5jbHVkZSAiTm90SW1wbGVtZW50ZWQuaCIKICNpbmNsdWRlICJQbGF0Zm9y
bVN0cmluZy5oIgorI2luY2x1ZGUgIlNjcmlwdENhbGxTdGFjay5oIgogI2luY2x1ZGUgIlNlY3Vy
aXR5T3JpZ2luLmgiCiAjaW5jbHVkZSAiU2VjdXJpdHlPcmlnaW5IYXNoLmgiCiAjaW5jbHVkZSAi
U2hhcmVkV29ya2VyLmgiCkBAIC0xNTUsNyArMTU2LDcgQEAgdm9pZCBTaGFyZWRXb3JrZXJQcm94
eTo6cG9zdFRhc2tGb3JNb2RlVG9Xb3JrZXJDb250ZXh0KFBhc3NPd25QdHI8U2NyaXB0RXhlY3V0
aW8KIAogc3RhdGljIHZvaWQgcG9zdEV4Y2VwdGlvblRhc2soU2NyaXB0RXhlY3V0aW9uQ29udGV4
dCogY29udGV4dCwgY29uc3QgU3RyaW5nJiBlcnJvck1lc3NhZ2UsIGludCBsaW5lTnVtYmVyLCBj
b25zdCBTdHJpbmcmIHNvdXJjZVVSTCkKIHsKLSAgICBjb250ZXh0LT5yZXBvcnRFeGNlcHRpb24o
ZXJyb3JNZXNzYWdlLCBsaW5lTnVtYmVyLCBzb3VyY2VVUkwpOworICAgIGNvbnRleHQtPnJlcG9y
dEV4Y2VwdGlvbihlcnJvck1lc3NhZ2UsIGxpbmVOdW1iZXIsIHNvdXJjZVVSTCwgMCk7CiB9CiAK
IHZvaWQgU2hhcmVkV29ya2VyUHJveHk6OnBvc3RFeGNlcHRpb25Ub1dvcmtlck9iamVjdChjb25z
dCBTdHJpbmcmIGVycm9yTWVzc2FnZSwgaW50IGxpbmVOdW1iZXIsIGNvbnN0IFN0cmluZyYgc291
cmNlVVJMKQpAQCAtMTY3LDcgKzE2OCw3IEBAIHZvaWQgU2hhcmVkV29ya2VyUHJveHk6OnBvc3RF
eGNlcHRpb25Ub1dvcmtlck9iamVjdChjb25zdCBTdHJpbmcmIGVycm9yTWVzc2FnZSwKIAogc3Rh
dGljIHZvaWQgcG9zdENvbnNvbGVNZXNzYWdlVGFzayhTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBk
b2N1bWVudCwgTWVzc2FnZVNvdXJjZSBzb3VyY2UsIE1lc3NhZ2VUeXBlIHR5cGUsIE1lc3NhZ2VM
ZXZlbCBsZXZlbCwgY29uc3QgU3RyaW5nJiBtZXNzYWdlLCB1bnNpZ25lZCBsaW5lTnVtYmVyLCBj
b25zdCBTdHJpbmcmIHNvdXJjZVVSTCkKIHsKLSAgICBkb2N1bWVudC0+YWRkTWVzc2FnZShzb3Vy
Y2UsIHR5cGUsIGxldmVsLCBtZXNzYWdlLCBsaW5lTnVtYmVyLCBzb3VyY2VVUkwpOworICAgIGRv
Y3VtZW50LT5hZGRNZXNzYWdlKHNvdXJjZSwgdHlwZSwgbGV2ZWwsIG1lc3NhZ2UsIGxpbmVOdW1i
ZXIsIHNvdXJjZVVSTCwgMCk7CiB9CiAKIHZvaWQgU2hhcmVkV29ya2VyUHJveHk6OnBvc3RDb25z
b2xlTWVzc2FnZVRvV29ya2VyT2JqZWN0KE1lc3NhZ2VTb3VyY2Ugc291cmNlLCBNZXNzYWdlVHlw
ZSB0eXBlLCBNZXNzYWdlTGV2ZWwgbGV2ZWwsIGNvbnN0IFN0cmluZyYgbWVzc2FnZSwgaW50IGxp
bmVOdW1iZXIsIGNvbnN0IFN0cmluZyYgc291cmNlVVJMKQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS93
b3JrZXJzL1dvcmtlckNvbnRleHQuY3BwIGIvV2ViQ29yZS93b3JrZXJzL1dvcmtlckNvbnRleHQu
Y3BwCmluZGV4IDM0NWU1YjcuLjAzZGVmYzcgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvd29ya2Vycy9X
b3JrZXJDb250ZXh0LmNwcAorKysgYi9XZWJDb3JlL3dvcmtlcnMvV29ya2VyQ29udGV4dC5jcHAK
QEAgLTQ2LDYgKzQ2LDcgQEAKICNpbmNsdWRlICJLVVJMLmgiCiAjaW5jbHVkZSAiTWVzc2FnZVBv
cnQuaCIKICNpbmNsdWRlICJOb3RJbXBsZW1lbnRlZC5oIgorI2luY2x1ZGUgIlNjcmlwdENhbGxT
dGFjay5oIgogI2luY2x1ZGUgIlNjcmlwdFNvdXJjZUNvZGUuaCIKICNpbmNsdWRlICJTY3JpcHRW
YWx1ZS5oIgogI2luY2x1ZGUgIlNlY3VyaXR5T3JpZ2luLmgiCkBAIC0xMDIsNyArMTAzLDYgQEAg
V29ya2VyQ29udGV4dDo6V29ya2VyQ29udGV4dChjb25zdCBLVVJMJiB1cmwsIGNvbnN0IFN0cmlu
ZyYgdXNlckFnZW50LCBXb3JrZXJUaHIKICAgICAsIG1fc2NyaXB0KG5ldyBXb3JrZXJTY3JpcHRD
b250cm9sbGVyKHRoaXMpKQogICAgICwgbV90aHJlYWQodGhyZWFkKQogICAgICwgbV9jbG9zaW5n
KGZhbHNlKQotICAgICwgbV9yZXBvcnRpbmdFeGNlcHRpb24oZmFsc2UpCiB7CiAgICAgc2V0U2Vj
dXJpdHlPcmlnaW4oU2VjdXJpdHlPcmlnaW46OmNyZWF0ZSh1cmwpKTsKIH0KQEAgLTI1OSwyMyAr
MjU5LDE3IEBAIHZvaWQgV29ya2VyQ29udGV4dDo6aW1wb3J0U2NyaXB0cyhjb25zdCBWZWN0b3I8
U3RyaW5nPiYgdXJscywgRXhjZXB0aW9uQ29kZSYgZWMpCiAgICAgfQogfQogCi12b2lkIFdvcmtl
ckNvbnRleHQ6OnJlcG9ydEV4Y2VwdGlvbihjb25zdCBTdHJpbmcmIGVycm9yTWVzc2FnZSwgaW50
IGxpbmVOdW1iZXIsIGNvbnN0IFN0cmluZyYgc291cmNlVVJMKQorRXZlbnRUYXJnZXQqIFdvcmtl
ckNvbnRleHQ6OmVycm9yRXZlbnRUYXJnZXQoKQogewotICAgIGJvb2wgZXJyb3JIYW5kbGVkID0g
ZmFsc2U7Ci0gICAgaWYgKCFtX3JlcG9ydGluZ0V4Y2VwdGlvbikgewotICAgICAgICBpZiAob25l
cnJvcigpKSB7Ci0gICAgICAgICAgICBtX3JlcG9ydGluZ0V4Y2VwdGlvbiA9IHRydWU7Ci0gICAg
ICAgICAgICBSZWZQdHI8RXJyb3JFdmVudD4gZXJyb3JFdmVudChFcnJvckV2ZW50OjpjcmVhdGUo
ZXJyb3JNZXNzYWdlLCBzb3VyY2VVUkwsIGxpbmVOdW1iZXIpKTsKLSAgICAgICAgICAgIG9uZXJy
b3IoKS0+aGFuZGxlRXZlbnQodGhpcywgZXJyb3JFdmVudC5nZXQoKSk7Ci0gICAgICAgICAgICBl
cnJvckhhbmRsZWQgPSBlcnJvckV2ZW50LT5kZWZhdWx0UHJldmVudGVkKCk7Ci0gICAgICAgICAg
ICBtX3JlcG9ydGluZ0V4Y2VwdGlvbiA9IGZhbHNlOwotICAgICAgICB9Ci0gICAgfQotICAgIGlm
ICghZXJyb3JIYW5kbGVkKQotICAgICAgICB0aHJlYWQoKS0+d29ya2VyUmVwb3J0aW5nUHJveHko
KS5wb3N0RXhjZXB0aW9uVG9Xb3JrZXJPYmplY3QoZXJyb3JNZXNzYWdlLCBsaW5lTnVtYmVyLCBz
b3VyY2VVUkwpOworICAgIHJldHVybiB0aGlzOworfQorCit2b2lkIFdvcmtlckNvbnRleHQ6Omxv
Z0V4Y2VwdGlvblRvQ29uc29sZShjb25zdCBTdHJpbmcmIGVycm9yTWVzc2FnZSwgaW50IGxpbmVO
dW1iZXIsIGNvbnN0IFN0cmluZyYgc291cmNlVVJMLCBQYXNzUmVmUHRyPFNjcmlwdENhbGxTdGFj
az4pCit7CisgICAgdGhyZWFkKCktPndvcmtlclJlcG9ydGluZ1Byb3h5KCkucG9zdEV4Y2VwdGlv
blRvV29ya2VyT2JqZWN0KGVycm9yTWVzc2FnZSwgbGluZU51bWJlciwgc291cmNlVVJMKTsKIH0K
IAotdm9pZCBXb3JrZXJDb250ZXh0OjphZGRNZXNzYWdlKE1lc3NhZ2VTb3VyY2Ugc291cmNlLCBN
ZXNzYWdlVHlwZSB0eXBlLCBNZXNzYWdlTGV2ZWwgbGV2ZWwsIGNvbnN0IFN0cmluZyYgbWVzc2Fn
ZSwgdW5zaWduZWQgbGluZU51bWJlciwgY29uc3QgU3RyaW5nJiBzb3VyY2VVUkwpCit2b2lkIFdv
cmtlckNvbnRleHQ6OmFkZE1lc3NhZ2UoTWVzc2FnZVNvdXJjZSBzb3VyY2UsIE1lc3NhZ2VUeXBl
IHR5cGUsIE1lc3NhZ2VMZXZlbCBsZXZlbCwgY29uc3QgU3RyaW5nJiBtZXNzYWdlLCB1bnNpZ25l
ZCBsaW5lTnVtYmVyLCBjb25zdCBTdHJpbmcmIHNvdXJjZVVSTCwgUGFzc1JlZlB0cjxTY3JpcHRD
YWxsU3RhY2s+KQogewogICAgIHRocmVhZCgpLT53b3JrZXJSZXBvcnRpbmdQcm94eSgpLnBvc3RD
b25zb2xlTWVzc2FnZVRvV29ya2VyT2JqZWN0KHNvdXJjZSwgdHlwZSwgbGV2ZWwsIG1lc3NhZ2Us
IGxpbmVOdW1iZXIsIHNvdXJjZVVSTCk7CiB9CmRpZmYgLS1naXQgYS9XZWJDb3JlL3dvcmtlcnMv
V29ya2VyQ29udGV4dC5oIGIvV2ViQ29yZS93b3JrZXJzL1dvcmtlckNvbnRleHQuaAppbmRleCA3
YjZjOWEyLi5lMmUyZTk0IDEwMDY0NAotLS0gYS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyQ29udGV4
dC5oCisrKyBiL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJDb250ZXh0LmgKQEAgLTEwMCw4ICsxMDAs
NyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIHZvaWQgY2xlYXJJbnRlcnZhbChpbnQg
dGltZW91dElkKTsKIAogICAgICAgICAvLyBTY3JpcHRFeGVjdXRpb25Db250ZXh0Ci0gICAgICAg
IHZpcnR1YWwgdm9pZCByZXBvcnRFeGNlcHRpb24oY29uc3QgU3RyaW5nJiBlcnJvck1lc3NhZ2Us
IGludCBsaW5lTnVtYmVyLCBjb25zdCBTdHJpbmcmIHNvdXJjZVVSTCk7Ci0gICAgICAgIHZpcnR1
YWwgdm9pZCBhZGRNZXNzYWdlKE1lc3NhZ2VTb3VyY2UsIE1lc3NhZ2VUeXBlLCBNZXNzYWdlTGV2
ZWwsIGNvbnN0IFN0cmluZyYgbWVzc2FnZSwgdW5zaWduZWQgbGluZU51bWJlciwgY29uc3QgU3Ry
aW5nJiBzb3VyY2VVUkwpOworICAgICAgICB2aXJ0dWFsIHZvaWQgYWRkTWVzc2FnZShNZXNzYWdl
U291cmNlLCBNZXNzYWdlVHlwZSwgTWVzc2FnZUxldmVsLCBjb25zdCBTdHJpbmcmIG1lc3NhZ2Us
IHVuc2lnbmVkIGxpbmVOdW1iZXIsIGNvbnN0IFN0cmluZyYgc291cmNlVVJMLCBQYXNzUmVmUHRy
PFNjcmlwdENhbGxTdGFjaz4pOwogCiAjaWYgRU5BQkxFKE5PVElGSUNBVElPTlMpCiAgICAgICAg
IE5vdGlmaWNhdGlvbkNlbnRlciogd2Via2l0Tm90aWZpY2F0aW9ucygpIGNvbnN0OwpAQCAtMTc0
LDYgKzE3Myw5IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgdmlydHVhbCBjb25zdCBL
VVJMJiB2aXJ0dWFsVVJMKCkgY29uc3Q7CiAgICAgICAgIHZpcnR1YWwgS1VSTCB2aXJ0dWFsQ29t
cGxldGVVUkwoY29uc3QgU3RyaW5nJikgY29uc3Q7CiAKKyAgICAgICAgdmlydHVhbCBFdmVudFRh
cmdldCogZXJyb3JFdmVudFRhcmdldCgpOworICAgICAgICB2aXJ0dWFsIHZvaWQgbG9nRXhjZXB0
aW9uVG9Db25zb2xlKGNvbnN0IFN0cmluZyYgZXJyb3JNZXNzYWdlLCBpbnQgbGluZU51bWJlciwg
Y29uc3QgU3RyaW5nJiBzb3VyY2VVUkwsIFBhc3NSZWZQdHI8U2NyaXB0Q2FsbFN0YWNrPik7CisK
ICAgICAgICAgS1VSTCBtX3VybDsKICAgICAgICAgU3RyaW5nIG1fdXNlckFnZW50OwogCkBAIC0x
ODcsNyArMTg5LDYgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICBtdXRhYmxlIFJlZlB0
cjxOb3RpZmljYXRpb25DZW50ZXI+IG1fbm90aWZpY2F0aW9uczsKICNlbmRpZgogICAgICAgICBi
b29sIG1fY2xvc2luZzsKLSAgICAgICAgYm9vbCBtX3JlcG9ydGluZ0V4Y2VwdGlvbjsKICAgICAg
ICAgRXZlbnRUYXJnZXREYXRhIG1fZXZlbnRUYXJnZXREYXRhOwogCiAgICAgICAgIEhhc2hTZXQ8
T2JzZXJ2ZXIqPiBtX3dvcmtlck9ic2VydmVyczsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvd29ya2Vy
cy9Xb3JrZXJNZXNzYWdpbmdQcm94eS5jcHAgYi9XZWJDb3JlL3dvcmtlcnMvV29ya2VyTWVzc2Fn
aW5nUHJveHkuY3BwCmluZGV4IDEwNzAwYzYuLjczNWQxNDMgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUv
d29ya2Vycy9Xb3JrZXJNZXNzYWdpbmdQcm94eS5jcHAKKysrIGIvV2ViQ29yZS93b3JrZXJzL1dv
cmtlck1lc3NhZ2luZ1Byb3h5LmNwcApAQCAtNDAsNiArNDAsNyBAQAogI2luY2x1ZGUgIkV4Y2Vw
dGlvbkNvZGUuaCIKICNpbmNsdWRlICJJbnNwZWN0b3JDb250cm9sbGVyLmgiCiAjaW5jbHVkZSAi
TWVzc2FnZUV2ZW50LmgiCisjaW5jbHVkZSAiU2NyaXB0Q2FsbFN0YWNrLmgiCiAjaW5jbHVkZSAi
U2NyaXB0RXhlY3V0aW9uQ29udGV4dC5oIgogI2luY2x1ZGUgIldvcmtlci5oIgogCkBAIC0xMzEs
NyArMTMyLDcgQEAgcHJpdmF0ZToKIAogICAgICAgICBib29sIGVycm9ySGFuZGxlZCA9ICF3b3Jr
ZXJPYmplY3QtPmRpc3BhdGNoRXZlbnQoRXJyb3JFdmVudDo6Y3JlYXRlKG1fZXJyb3JNZXNzYWdl
LCBtX3NvdXJjZVVSTCwgbV9saW5lTnVtYmVyKSk7CiAgICAgICAgIGlmICghZXJyb3JIYW5kbGVk
KQotICAgICAgICAgICAgY29udGV4dC0+cmVwb3J0RXhjZXB0aW9uKG1fZXJyb3JNZXNzYWdlLCBt
X2xpbmVOdW1iZXIsIG1fc291cmNlVVJMKTsKKyAgICAgICAgICAgIGNvbnRleHQtPnJlcG9ydEV4
Y2VwdGlvbihtX2Vycm9yTWVzc2FnZSwgbV9saW5lTnVtYmVyLCBtX3NvdXJjZVVSTCwgMCk7CiAg
ICAgfQogCiAgICAgU3RyaW5nIG1fZXJyb3JNZXNzYWdlOwpAQCAtMjgzLDcgKzI4NCw3IEBAIHN0
YXRpYyB2b2lkIHBvc3RDb25zb2xlTWVzc2FnZVRhc2soU2NyaXB0RXhlY3V0aW9uQ29udGV4dCog
Y29udGV4dCwgV29ya2VyTWVzc2FnCiB7CiAgICAgaWYgKG1lc3NhZ2luZ1Byb3h5LT5hc2tlZFRv
VGVybWluYXRlKCkpCiAgICAgICAgIHJldHVybjsKLSAgICBjb250ZXh0LT5hZGRNZXNzYWdlKHNv
dXJjZSwgdHlwZSwgbGV2ZWwsIG1lc3NhZ2UsIGxpbmVOdW1iZXIsIHNvdXJjZVVSTCk7CisgICAg
Y29udGV4dC0+YWRkTWVzc2FnZShzb3VyY2UsIHR5cGUsIGxldmVsLCBtZXNzYWdlLCBsaW5lTnVt
YmVyLCBzb3VyY2VVUkwsIDApOwogfQogCiB2b2lkIFdvcmtlck1lc3NhZ2luZ1Byb3h5Ojpwb3N0
Q29uc29sZU1lc3NhZ2VUb1dvcmtlck9iamVjdChNZXNzYWdlU291cmNlIHNvdXJjZSwgTWVzc2Fn
ZVR5cGUgdHlwZSwgTWVzc2FnZUxldmVsIGxldmVsLCBjb25zdCBTdHJpbmcmIG1lc3NhZ2UsIGlu
dCBsaW5lTnVtYmVyLCBjb25zdCBTdHJpbmcmIHNvdXJjZVVSTCkKZGlmZiAtLWdpdCBhL1dlYkNv
cmUveG1sL1hNTEh0dHBSZXF1ZXN0LmNwcCBiL1dlYkNvcmUveG1sL1hNTEh0dHBSZXF1ZXN0LmNw
cAppbmRleCBmYzdlYjllLi5mNWIyZDhkIDEwMDY0NAotLS0gYS9XZWJDb3JlL3htbC9YTUxIdHRw
UmVxdWVzdC5jcHAKKysrIGIvV2ViQ29yZS94bWwvWE1MSHR0cFJlcXVlc3QuY3BwCkBAIC0zOSw2
ICszOSw3IEBACiAjaW5jbHVkZSAiSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uLmgiCiAjaW5jbHVk
ZSAiUmVzb3VyY2VFcnJvci5oIgogI2luY2x1ZGUgIlJlc291cmNlUmVxdWVzdC5oIgorI2luY2x1
ZGUgIlNjcmlwdENhbGxTdGFjay5oIgogI2luY2x1ZGUgIlNlY3VyaXR5T3JpZ2luLmgiCiAjaW5j
bHVkZSAiU2V0dGluZ3MuaCIKICNpbmNsdWRlICJTaGFyZWRCdWZmZXIuaCIKQEAgLTgxMSw3ICs4
MTIsNyBAQCBzdGF0aWMgdm9pZCByZXBvcnRVbnNhZmVVc2FnZShTY3JpcHRFeGVjdXRpb25Db250
ZXh0KiBjb250ZXh0LCBjb25zdCBTdHJpbmcmIG1lcwogICAgICAgICByZXR1cm47CiAgICAgLy8g
RklYTUU6IEl0J3Mgbm90IGdvb2QgdG8gcmVwb3J0IHRoZSBiYWQgdXNhZ2Ugd2l0aG91dCBpbmRp
Y2F0aW5nIHdoYXQgc291cmNlIGxpbmUgaXQgY2FtZSBmcm9tLgogICAgIC8vIFdlIHNob3VsZCBw
YXNzIGFkZGl0aW9uYWwgcGFyYW1ldGVycyBzbyB3ZSBjYW4gdGVsbCB0aGUgY29uc29sZSB3aGVy
ZSB0aGUgbWlzdGFrZSBvY2N1cnJlZC4KLSAgICBjb250ZXh0LT5hZGRNZXNzYWdlKEpTTWVzc2Fn
ZVNvdXJjZSwgTG9nTWVzc2FnZVR5cGUsIEVycm9yTWVzc2FnZUxldmVsLCBtZXNzYWdlLCAxLCBT
dHJpbmcoKSk7CisgICAgY29udGV4dC0+YWRkTWVzc2FnZShKU01lc3NhZ2VTb3VyY2UsIExvZ01l
c3NhZ2VUeXBlLCBFcnJvck1lc3NhZ2VMZXZlbCwgbWVzc2FnZSwgMSwgU3RyaW5nKCksIDApOwog
fQogCiB2b2lkIFhNTEh0dHBSZXF1ZXN0OjpzZXRSZXF1ZXN0SGVhZGVyKGNvbnN0IEF0b21pY1N0
cmluZyYgbmFtZSwgY29uc3QgU3RyaW5nJiB2YWx1ZSwgRXhjZXB0aW9uQ29kZSYgZWMpCmRpZmYg
LS1naXQgYS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nIGIvV2ViS2l0L2Nocm9taXVtL0NoYW5n
ZUxvZwppbmRleCBmMGU1Nzg0Li4xMDRiY2EyIDEwMDY0NAotLS0gYS9XZWJLaXQvY2hyb21pdW0v
Q2hhbmdlTG9nCisrKyBiL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNyBA
QAorMjAxMC0xMi0yNyAgWXVyeSBTZW1pa2hhdHNreSAgPHl1cnlzQGNocm9taXVtLm9yZz4KKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBmaXgKKworICAg
ICAgICBOZWVkIGEgc2hvcnQgZGVzY3JpcHRpb24gYW5kIGJ1ZyBVUkwgKE9PUFMhKQorCisgICAg
ICAgICogc3JjL1dlYldvcmtlckNsaWVudEltcGwuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJX
b3JrZXJDbGllbnRJbXBsOjpwb3N0RXhjZXB0aW9uVG9Xb3JrZXJPYmplY3QpOgorICAgICAgICAo
V2ViS2l0OjpXZWJXb3JrZXJDbGllbnRJbXBsOjpwb3N0Q29uc29sZU1lc3NhZ2VUb1dvcmtlck9i
amVjdCk6CisgICAgICAgIChXZWJLaXQ6OldlYldvcmtlckNsaWVudEltcGw6OnBvc3RFeGNlcHRp
b25Ub1dvcmtlck9iamVjdFRhc2spOgorICAgICAgICAoV2ViS2l0OjpXZWJXb3JrZXJDbGllbnRJ
bXBsOjpwb3N0Q29uc29sZU1lc3NhZ2VUb1dvcmtlck9iamVjdFRhc2spOgorCiAyMDEwLTEyLTIz
ICBTaGVyaWZmIEJvdCAgPHdlYmtpdC5yZXZpZXcuYm90QGdtYWlsLmNvbT4KIAogICAgICAgICBV
bnJldmlld2VkLCByb2xsaW5nIG91dCByNzQ1NjEuCkBAIC0zMjUsMTkgKzMzOSw2IEBACiAgICAg
ICAgIChXZWJLaXQ6OldlYlZpZXdJbXBsOjphcHBseUF1dG9GaWxsU3VnZ2VzdGlvbnMpOgogICAg
ICAgICAqIHNyYy9XZWJWaWV3SW1wbC5oOgogCi0yMDEwLTEyLTEzICBZdXJ5IFNlbWlraGF0c2t5
ICA8eXVyeXNAY2hyb21pdW0ub3JnPgotCi0gICAgICAgIFVucmV2aWV3ZWQuIFJvbGxvdXQgNzM5
MTQsIDczOTE1LCA3MzkxNywgNzM5MjAgYW5kIDczOTIxLgotCi0gICAgICAgIFJFR1JFU1NJT04o
cjczOTE0KTogIkNocm9taXVtIHBhZ2VfY3ljbGVyX21vcmVqcyBmYWlscyIgKFJlcXVlc3RlZCBi
eSB5dXJ5cyBvbiAjd2Via2l0KS4KLSAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTUwOTUwCi0KLSAgICAgICAgKiBzcmMvV2ViV29ya2VyQ2xpZW50SW1wbC5j
cHA6Ci0gICAgICAgIChXZWJLaXQ6OldlYldvcmtlckNsaWVudEltcGw6OnBvc3RFeGNlcHRpb25U
b1dvcmtlck9iamVjdCk6Ci0gICAgICAgIChXZWJLaXQ6OldlYldvcmtlckNsaWVudEltcGw6OnBv
c3RDb25zb2xlTWVzc2FnZVRvV29ya2VyT2JqZWN0KToKLSAgICAgICAgKFdlYktpdDo6V2ViV29y
a2VyQ2xpZW50SW1wbDo6cG9zdEV4Y2VwdGlvblRvV29ya2VyT2JqZWN0VGFzayk6Ci0gICAgICAg
IChXZWJLaXQ6OldlYldvcmtlckNsaWVudEltcGw6OnBvc3RDb25zb2xlTWVzc2FnZVRvV29ya2Vy
T2JqZWN0VGFzayk6Ci0KIDIwMTAtMTItMTMgIElseWEgVGlraG9ub3Zza3kgIDxsb2lzbG9AY2hy
b21pdW0ub3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5IFl1cnkgU2VtaWtoYXRza3kuCmRpZmYg
LS1naXQgYS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYldvcmtlckNsaWVudEltcGwuY3BwIGIvV2Vi
S2l0L2Nocm9taXVtL3NyYy9XZWJXb3JrZXJDbGllbnRJbXBsLmNwcAppbmRleCAxODI4MmUzLi5m
OTBlN2U4IDEwMDY0NAotLS0gYS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYldvcmtlckNsaWVudElt
cGwuY3BwCisrKyBiL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViV29ya2VyQ2xpZW50SW1wbC5jcHAK
QEAgLTQxLDYgKzQxLDcgQEAKICNpbmNsdWRlICJNZXNzYWdlRXZlbnQuaCIKICNpbmNsdWRlICJN
ZXNzYWdlUG9ydC5oIgogI2luY2x1ZGUgIk1lc3NhZ2VQb3J0Q2hhbm5lbC5oIgorI2luY2x1ZGUg
IlNjcmlwdENhbGxTdGFjay5oIgogI2luY2x1ZGUgIlNjcmlwdEV4ZWN1dGlvbkNvbnRleHQuaCIK
ICNpbmNsdWRlICJXb3JrZXIuaCIKICNpbmNsdWRlICJXb3JrZXJDb250ZXh0LmgiCkBAIC0yNDcs
NyArMjQ4LDcgQEAgdm9pZCBXZWJXb3JrZXJDbGllbnRJbXBsOjpwb3N0RXhjZXB0aW9uVG9Xb3Jr
ZXJPYmplY3QoY29uc3QgV2ViU3RyaW5nJiBlcnJvck1lc3MKICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzb3VyY2VVUkwsCiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgbGluZU51bWJlcikpOwogICAgIGlmICh1bmhhbmRsZWQpCi0gICAgICAgIG1fc2NyaXB0
RXhlY3V0aW9uQ29udGV4dC0+cmVwb3J0RXhjZXB0aW9uKGVycm9yTWVzc2FnZSwgbGluZU51bWJl
ciwgc291cmNlVVJMKTsKKyAgICAgICAgbV9zY3JpcHRFeGVjdXRpb25Db250ZXh0LT5yZXBvcnRF
eGNlcHRpb24oZXJyb3JNZXNzYWdlLCBsaW5lTnVtYmVyLCBzb3VyY2VVUkwsIDApOwogfQogCiB2
b2lkIFdlYldvcmtlckNsaWVudEltcGw6OnBvc3RDb25zb2xlTWVzc2FnZVRvV29ya2VyT2JqZWN0
KGludCBkZXN0aW5hdGlvbiwKQEAgLTI3NCw3ICsyNzUsNyBAQCB2b2lkIFdlYldvcmtlckNsaWVu
dEltcGw6OnBvc3RDb25zb2xlTWVzc2FnZVRvV29ya2VyT2JqZWN0KGludCBkZXN0aW5hdGlvbiwK
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhdGljX2Nhc3Q8TWVz
c2FnZVR5cGU+KG1lc3NhZ2VUeXBlKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgc3RhdGljX2Nhc3Q8TWVzc2FnZUxldmVsPihtZXNzYWdlTGV2ZWwpLAogICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTdHJpbmcobWVzc2FnZSksIGxpbmVO
dW1iZXIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN0cmluZyhz
b3VyY2VVUkwpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU3Ry
aW5nKHNvdXJjZVVSTCksIDApOwogfQogCiB2b2lkIFdlYldvcmtlckNsaWVudEltcGw6OnBvc3RD
b25zb2xlTWVzc2FnZVRvV29ya2VyT2JqZWN0KGludCBzb3VyY2VJZCwKQEAgLTM4MSw5ICszODIs
NyBAQCB2b2lkIFdlYldvcmtlckNsaWVudEltcGw6OnBvc3RFeGNlcHRpb25Ub1dvcmtlck9iamVj
dFRhc2soCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgc291cmNlVVJMLAogICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpbmVOdW1iZXIp
KTsKICAgICBpZiAoIWhhbmRsZWQpCi0gICAgICAgIHRoaXNQdHItPm1fc2NyaXB0RXhlY3V0aW9u
Q29udGV4dC0+cmVwb3J0RXhjZXB0aW9uKGVycm9yTWVzc2FnZSwKLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGluZU51bWJlciwKLSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
c291cmNlVVJMKTsKKyAgICAgICAgdGhpc1B0ci0+bV9zY3JpcHRFeGVjdXRpb25Db250ZXh0LT5y
ZXBvcnRFeGNlcHRpb24oZXJyb3JNZXNzYWdlLCBsaW5lTnVtYmVyLCBzb3VyY2VVUkwsIDApOwog
fQogCiB2b2lkIFdlYldvcmtlckNsaWVudEltcGw6OnBvc3RDb25zb2xlTWVzc2FnZVRvV29ya2Vy
T2JqZWN0VGFzayhTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0LApAQCAtMzk4LDggKzM5
Nyw3IEBAIHZvaWQgV2ViV29ya2VyQ2xpZW50SW1wbDo6cG9zdENvbnNvbGVNZXNzYWdlVG9Xb3Jr
ZXJPYmplY3RUYXNrKFNjcmlwdEV4ZWN1dGlvbkNvCiAgICAgdGhpc1B0ci0+bV9zY3JpcHRFeGVj
dXRpb25Db250ZXh0LT5hZGRNZXNzYWdlKHN0YXRpY19jYXN0PE1lc3NhZ2VTb3VyY2U+KHNvdXJj
ZUlkKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
c3RhdGljX2Nhc3Q8TWVzc2FnZVR5cGU+KG1lc3NhZ2VUeXBlKSwKICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhdGljX2Nhc3Q8TWVzc2FnZUxldmVs
PihtZXNzYWdlTGV2ZWwpLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBtZXNzYWdlLCBsaW5lTnVtYmVyLAotICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBzb3VyY2VVUkwpOworICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtZXNzYWdlLCBsaW5lTnVtYmVyLCBzb3Vy
Y2VVUkwsIDApOwogfQogCiB2b2lkIFdlYldvcmtlckNsaWVudEltcGw6OmNvbmZpcm1NZXNzYWdl
RnJvbVdvcmtlck9iamVjdFRhc2soU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCwK
</data>
<flag name="review"
          id="68641"
          type_id="1"
          status="+"
          setter="pfeldman"
    />
          </attachment>
      

    </bug>

</bugzilla>